@nifrajs/web 5.5.0 → 5.6.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 (457) hide show
  1. package/CHANGELOG.md +162 -0
  2. package/dist/boundary.d.ts +67 -7
  3. package/dist/boundary.d.ts.map +1 -1
  4. package/dist/boundary.js +6 -4
  5. package/dist/boundary.js.map +1 -1
  6. package/dist/build-plan.d.ts +3 -0
  7. package/dist/build-plan.d.ts.map +1 -1
  8. package/dist/build-plan.js.map +1 -1
  9. package/dist/build-vite.d.ts.map +1 -1
  10. package/dist/build-vite.js +2 -0
  11. package/dist/build-vite.js.map +1 -1
  12. package/dist/build.d.ts +9 -2
  13. package/dist/build.d.ts.map +1 -1
  14. package/dist/build.js +9 -0
  15. package/dist/build.js.map +1 -1
  16. package/dist/client.d.ts +2 -1
  17. package/dist/client.d.ts.map +1 -1
  18. package/dist/client.js +140 -12
  19. package/dist/client.js.map +1 -1
  20. package/dist/csp.d.ts +8 -0
  21. package/dist/csp.d.ts.map +1 -1
  22. package/dist/csp.js +11 -2
  23. package/dist/csp.js.map +1 -1
  24. package/dist/deferred.d.ts +6 -4
  25. package/dist/deferred.d.ts.map +1 -1
  26. package/dist/deferred.js +10 -6
  27. package/dist/deferred.js.map +1 -1
  28. package/dist/dev-feed.d.ts.map +1 -1
  29. package/dist/dev-feed.js +11 -2
  30. package/dist/dev-feed.js.map +1 -1
  31. package/dist/dev-session.d.ts.map +1 -1
  32. package/dist/dev-session.js +13 -6
  33. package/dist/dev-session.js.map +1 -1
  34. package/dist/dev.d.ts +4 -1
  35. package/dist/dev.d.ts.map +1 -1
  36. package/dist/dev.js +12 -5
  37. package/dist/dev.js.map +1 -1
  38. package/dist/diagnostic-catalog.d.ts +4 -0
  39. package/dist/diagnostic-catalog.d.ts.map +1 -1
  40. package/dist/diagnostic-catalog.js +48 -0
  41. package/dist/diagnostic-catalog.js.map +1 -1
  42. package/dist/diagnostic.d.ts +1 -1
  43. package/dist/diagnostic.d.ts.map +1 -1
  44. package/dist/diagnostic.js +1 -1
  45. package/dist/diagnostic.js.map +1 -1
  46. package/dist/fn.d.ts +5 -3
  47. package/dist/fn.d.ts.map +1 -1
  48. package/dist/fn.js +20 -5
  49. package/dist/fn.js.map +1 -1
  50. package/dist/fs.d.ts.map +1 -1
  51. package/dist/fs.js +13 -3
  52. package/dist/fs.js.map +1 -1
  53. package/dist/identity.d.ts +22 -0
  54. package/dist/identity.d.ts.map +1 -0
  55. package/dist/identity.js +60 -0
  56. package/dist/identity.js.map +1 -0
  57. package/dist/index.d.ts +7 -6
  58. package/dist/index.d.ts.map +1 -1
  59. package/dist/index.js +4 -2
  60. package/dist/index.js.map +1 -1
  61. package/dist/internal/cdn/cloudflare.d.ts +2 -1
  62. package/dist/internal/cdn/cloudflare.d.ts.map +1 -1
  63. package/dist/internal/cdn/cloudflare.js +2 -1
  64. package/dist/internal/cdn/cloudflare.js.map +1 -1
  65. package/dist/internal/certified-components.d.ts +1 -1
  66. package/dist/internal/certified-components.js +1 -1
  67. package/dist/internal/codegen.d.ts +11 -10
  68. package/dist/internal/codegen.d.ts.map +1 -1
  69. package/dist/internal/codegen.js +65 -8
  70. package/dist/internal/codegen.js.map +1 -1
  71. package/dist/internal/dev-websocket.d.ts +73 -0
  72. package/dist/internal/dev-websocket.d.ts.map +1 -0
  73. package/dist/internal/dev-websocket.js +145 -0
  74. package/dist/internal/dev-websocket.js.map +1 -0
  75. package/dist/internal/hole-runtime.d.ts +66 -0
  76. package/dist/internal/hole-runtime.d.ts.map +1 -0
  77. package/dist/internal/hole-runtime.js +211 -0
  78. package/dist/internal/hole-runtime.js.map +1 -0
  79. package/dist/internal/identity-epoch.d.ts +50 -0
  80. package/dist/internal/identity-epoch.d.ts.map +1 -0
  81. package/dist/internal/identity-epoch.js +179 -0
  82. package/dist/internal/identity-epoch.js.map +1 -0
  83. package/dist/internal/invalidation-contract.d.ts +23 -0
  84. package/dist/internal/invalidation-contract.d.ts.map +1 -0
  85. package/dist/internal/invalidation-contract.js +11 -0
  86. package/dist/internal/invalidation-contract.js.map +1 -0
  87. package/dist/internal/invalidation.d.ts +62 -0
  88. package/dist/internal/invalidation.d.ts.map +1 -0
  89. package/dist/internal/invalidation.js +149 -0
  90. package/dist/internal/invalidation.js.map +1 -0
  91. package/dist/internal/island-bindings.d.ts +51 -0
  92. package/dist/internal/island-bindings.d.ts.map +1 -0
  93. package/dist/internal/island-bindings.js +147 -0
  94. package/dist/internal/island-bindings.js.map +1 -0
  95. package/dist/internal/island-list.d.ts +26 -0
  96. package/dist/internal/island-list.d.ts.map +1 -0
  97. package/dist/internal/island-list.js +78 -0
  98. package/dist/internal/island-list.js.map +1 -0
  99. package/dist/internal/island-mount.d.ts +4 -0
  100. package/dist/internal/island-mount.d.ts.map +1 -0
  101. package/dist/internal/island-mount.js +66 -0
  102. package/dist/internal/island-mount.js.map +1 -0
  103. package/dist/internal/island-owner.d.ts +5 -0
  104. package/dist/internal/island-owner.d.ts.map +1 -0
  105. package/dist/internal/island-owner.js +20 -0
  106. package/dist/internal/island-owner.js.map +1 -0
  107. package/dist/internal/island-resource.d.ts +30 -0
  108. package/dist/internal/island-resource.d.ts.map +1 -0
  109. package/dist/internal/island-resource.js +57 -0
  110. package/dist/internal/island-resource.js.map +1 -0
  111. package/dist/internal/island-signals.d.ts +51 -0
  112. package/dist/internal/island-signals.d.ts.map +1 -0
  113. package/dist/internal/island-signals.js +220 -0
  114. package/dist/internal/island-signals.js.map +1 -0
  115. package/dist/internal/keep-alive-table.d.ts +23 -0
  116. package/dist/internal/keep-alive-table.d.ts.map +1 -0
  117. package/dist/internal/keep-alive-table.js +53 -0
  118. package/dist/internal/keep-alive-table.js.map +1 -0
  119. package/dist/internal/live-contract.d.ts +96 -0
  120. package/dist/internal/live-contract.d.ts.map +1 -0
  121. package/dist/internal/live-contract.js +5 -0
  122. package/dist/internal/live-contract.js.map +1 -0
  123. package/dist/internal/live-queries.d.ts +22 -0
  124. package/dist/internal/live-queries.d.ts.map +1 -0
  125. package/dist/internal/live-queries.js +54 -0
  126. package/dist/internal/live-queries.js.map +1 -0
  127. package/dist/internal/page-events.d.ts +10 -0
  128. package/dist/internal/page-events.d.ts.map +1 -0
  129. package/dist/internal/page-events.js +26 -0
  130. package/dist/internal/page-events.js.map +1 -0
  131. package/dist/internal/page-execution.d.ts +14 -1
  132. package/dist/internal/page-execution.d.ts.map +1 -1
  133. package/dist/internal/page-execution.js +415 -31
  134. package/dist/internal/page-execution.js.map +1 -1
  135. package/dist/internal/ppr/admission.d.ts +83 -0
  136. package/dist/internal/ppr/admission.d.ts.map +1 -0
  137. package/dist/internal/ppr/admission.js +221 -0
  138. package/dist/internal/ppr/admission.js.map +1 -0
  139. package/dist/internal/ppr/canary.d.ts +24 -0
  140. package/dist/internal/ppr/canary.d.ts.map +1 -0
  141. package/dist/internal/ppr/canary.js +102 -0
  142. package/dist/internal/ppr/canary.js.map +1 -0
  143. package/dist/internal/ppr/compile-shell.d.ts +39 -0
  144. package/dist/internal/ppr/compile-shell.d.ts.map +1 -0
  145. package/dist/internal/ppr/compile-shell.js +298 -0
  146. package/dist/internal/ppr/compile-shell.js.map +1 -0
  147. package/dist/internal/ppr/contract.d.ts +177 -0
  148. package/dist/internal/ppr/contract.d.ts.map +1 -0
  149. package/dist/internal/ppr/contract.js +80 -0
  150. package/dist/internal/ppr/contract.js.map +1 -0
  151. package/dist/internal/ppr/frames.d.ts +71 -0
  152. package/dist/internal/ppr/frames.d.ts.map +1 -0
  153. package/dist/internal/ppr/frames.js +119 -0
  154. package/dist/internal/ppr/frames.js.map +1 -0
  155. package/dist/internal/ppr/integration.d.ts +19 -0
  156. package/dist/internal/ppr/integration.d.ts.map +1 -0
  157. package/dist/internal/ppr/integration.js +106 -0
  158. package/dist/internal/ppr/integration.js.map +1 -0
  159. package/dist/internal/ppr/options.d.ts +96 -0
  160. package/dist/internal/ppr/options.d.ts.map +1 -0
  161. package/dist/internal/ppr/options.js +125 -0
  162. package/dist/internal/ppr/options.js.map +1 -0
  163. package/dist/internal/ppr/route-rules.d.ts +12 -0
  164. package/dist/internal/ppr/route-rules.d.ts.map +1 -0
  165. package/dist/internal/ppr/route-rules.js +53 -0
  166. package/dist/internal/ppr/route-rules.js.map +1 -0
  167. package/dist/internal/ppr/runtime.d.ts +29 -0
  168. package/dist/internal/ppr/runtime.d.ts.map +1 -0
  169. package/dist/internal/ppr/runtime.js +32 -0
  170. package/dist/internal/ppr/runtime.js.map +1 -0
  171. package/dist/internal/ppr/server.d.ts +29 -0
  172. package/dist/internal/ppr/server.d.ts.map +1 -0
  173. package/dist/internal/ppr/server.js +1407 -0
  174. package/dist/internal/ppr/server.js.map +1 -0
  175. package/dist/internal/ppr/shell-store.d.ts +38 -0
  176. package/dist/internal/ppr/shell-store.d.ts.map +1 -0
  177. package/dist/internal/ppr/shell-store.js +90 -0
  178. package/dist/internal/ppr/shell-store.js.map +1 -0
  179. package/dist/internal/prerendered-pages.d.ts +1 -1
  180. package/dist/internal/prerendered-pages.d.ts.map +1 -1
  181. package/dist/internal/prerendered-pages.js +7 -4
  182. package/dist/internal/prerendered-pages.js.map +1 -1
  183. package/dist/internal/query-digest.d.ts +9 -0
  184. package/dist/internal/query-digest.d.ts.map +1 -0
  185. package/dist/internal/query-digest.js +23 -0
  186. package/dist/internal/query-digest.js.map +1 -0
  187. package/dist/internal/query-runtime.d.ts +6 -1
  188. package/dist/internal/query-runtime.d.ts.map +1 -1
  189. package/dist/internal/query-runtime.js +9 -0
  190. package/dist/internal/query-runtime.js.map +1 -1
  191. package/dist/internal/query-seam.d.ts +29 -0
  192. package/dist/internal/query-seam.d.ts.map +1 -0
  193. package/dist/internal/query-seam.js +23 -0
  194. package/dist/internal/query-seam.js.map +1 -0
  195. package/dist/internal/render-document.d.ts +28 -1
  196. package/dist/internal/render-document.d.ts.map +1 -1
  197. package/dist/internal/render-document.js +83 -18
  198. package/dist/internal/render-document.js.map +1 -1
  199. package/dist/internal/request-abort.d.ts +8 -0
  200. package/dist/internal/request-abort.d.ts.map +1 -0
  201. package/dist/internal/request-abort.js +22 -0
  202. package/dist/internal/request-abort.js.map +1 -0
  203. package/dist/internal/server-boundary.d.ts +2 -0
  204. package/dist/internal/server-boundary.d.ts.map +1 -1
  205. package/dist/internal/server-boundary.js +8 -1
  206. package/dist/internal/server-boundary.js.map +1 -1
  207. package/dist/internal/share-data.d.ts +10 -0
  208. package/dist/internal/share-data.d.ts.map +1 -0
  209. package/dist/internal/share-data.js +135 -0
  210. package/dist/internal/share-data.js.map +1 -0
  211. package/dist/internal/store-signature.d.ts +15 -0
  212. package/dist/internal/store-signature.d.ts.map +1 -0
  213. package/dist/internal/store-signature.js +114 -0
  214. package/dist/internal/store-signature.js.map +1 -0
  215. package/dist/internal/vite-plugin-compat.d.ts +2 -2
  216. package/dist/internal/vite-plugin-compat.js +2 -2
  217. package/dist/internal/web-app.d.ts +25 -0
  218. package/dist/internal/web-app.d.ts.map +1 -1
  219. package/dist/internal/web-app.js +78 -3
  220. package/dist/internal/web-app.js.map +1 -1
  221. package/dist/islands-swap.d.ts +41 -0
  222. package/dist/islands-swap.d.ts.map +1 -0
  223. package/dist/islands-swap.js +270 -0
  224. package/dist/islands-swap.js.map +1 -0
  225. package/dist/islands.d.ts +86 -24
  226. package/dist/islands.d.ts.map +1 -1
  227. package/dist/islands.js +138 -78
  228. package/dist/islands.js.map +1 -1
  229. package/dist/isr.d.ts +67 -13
  230. package/dist/isr.d.ts.map +1 -1
  231. package/dist/isr.js +247 -99
  232. package/dist/isr.js.map +1 -1
  233. package/dist/keep-alive.d.ts +147 -0
  234. package/dist/keep-alive.d.ts.map +1 -0
  235. package/dist/keep-alive.js +1069 -0
  236. package/dist/keep-alive.js.map +1 -0
  237. package/dist/live/bus.d.ts +56 -0
  238. package/dist/live/bus.d.ts.map +1 -0
  239. package/dist/live/bus.js +32 -0
  240. package/dist/live/bus.js.map +1 -0
  241. package/dist/live/core.d.ts +25 -0
  242. package/dist/live/core.d.ts.map +1 -0
  243. package/dist/live/core.js +29 -0
  244. package/dist/live/core.js.map +1 -0
  245. package/dist/live/history.d.ts +38 -0
  246. package/dist/live/history.d.ts.map +1 -0
  247. package/dist/live/history.js +104 -0
  248. package/dist/live/history.js.map +1 -0
  249. package/dist/live/hub-protocol.d.ts +46 -0
  250. package/dist/live/hub-protocol.d.ts.map +1 -0
  251. package/dist/live/hub-protocol.js +108 -0
  252. package/dist/live/hub-protocol.js.map +1 -0
  253. package/dist/live/hub.d.ts +181 -0
  254. package/dist/live/hub.d.ts.map +1 -0
  255. package/dist/live/hub.js +539 -0
  256. package/dist/live/hub.js.map +1 -0
  257. package/dist/live/keyring.d.ts +87 -0
  258. package/dist/live/keyring.d.ts.map +1 -0
  259. package/dist/live/keyring.js +260 -0
  260. package/dist/live/keyring.js.map +1 -0
  261. package/dist/live/read-capped.d.ts +6 -0
  262. package/dist/live/read-capped.d.ts.map +1 -0
  263. package/dist/live/read-capped.js +42 -0
  264. package/dist/live/read-capped.js.map +1 -0
  265. package/dist/live/revocations.d.ts +52 -0
  266. package/dist/live/revocations.d.ts.map +1 -0
  267. package/dist/live/revocations.js +116 -0
  268. package/dist/live/revocations.js.map +1 -0
  269. package/dist/live/settings.d.ts +14 -0
  270. package/dist/live/settings.d.ts.map +1 -0
  271. package/dist/live/settings.js +38 -0
  272. package/dist/live/settings.js.map +1 -0
  273. package/dist/live-client.d.ts +34 -0
  274. package/dist/live-client.d.ts.map +1 -0
  275. package/dist/live-client.js +840 -0
  276. package/dist/live-client.js.map +1 -0
  277. package/dist/live-hub.d.ts +130 -0
  278. package/dist/live-hub.d.ts.map +1 -0
  279. package/dist/live-hub.js +507 -0
  280. package/dist/live-hub.js.map +1 -0
  281. package/dist/live-redis.d.ts +48 -0
  282. package/dist/live-redis.d.ts.map +1 -0
  283. package/dist/live-redis.js +201 -0
  284. package/dist/live-redis.js.map +1 -0
  285. package/dist/live.d.ts +94 -0
  286. package/dist/live.d.ts.map +1 -0
  287. package/dist/live.js +869 -0
  288. package/dist/live.js.map +1 -0
  289. package/dist/manifest.d.ts +113 -2
  290. package/dist/manifest.d.ts.map +1 -1
  291. package/dist/manifest.js +109 -5
  292. package/dist/manifest.js.map +1 -1
  293. package/dist/navigation.d.ts +9 -3
  294. package/dist/navigation.d.ts.map +1 -1
  295. package/dist/navigation.js +13 -3
  296. package/dist/navigation.js.map +1 -1
  297. package/dist/plugins/vite-zone-guard.d.ts +6 -0
  298. package/dist/plugins/vite-zone-guard.d.ts.map +1 -1
  299. package/dist/plugins/vite-zone-guard.js +8 -2
  300. package/dist/plugins/vite-zone-guard.js.map +1 -1
  301. package/dist/ppr.d.ts +73 -0
  302. package/dist/ppr.d.ts.map +1 -0
  303. package/dist/ppr.js +76 -0
  304. package/dist/ppr.js.map +1 -0
  305. package/dist/query.d.ts +8 -13
  306. package/dist/query.d.ts.map +1 -1
  307. package/dist/query.js +112 -18
  308. package/dist/query.js.map +1 -1
  309. package/dist/render-seam.d.ts +30 -0
  310. package/dist/render-seam.d.ts.map +1 -1
  311. package/dist/render-seam.js +5 -0
  312. package/dist/render-seam.js.map +1 -1
  313. package/dist/route-types.d.ts.map +1 -1
  314. package/dist/route-types.js +2 -2
  315. package/dist/route-types.js.map +1 -1
  316. package/dist/router.d.ts +72 -4
  317. package/dist/router.d.ts.map +1 -1
  318. package/dist/router.js +374 -99
  319. package/dist/router.js.map +1 -1
  320. package/dist/server-components/build.d.ts.map +1 -1
  321. package/dist/server-components/build.js +3 -3
  322. package/dist/server-components/build.js.map +1 -1
  323. package/dist/server-components/client.d.ts +23 -1
  324. package/dist/server-components/client.d.ts.map +1 -1
  325. package/dist/server-components/client.js +92 -5
  326. package/dist/server-components/client.js.map +1 -1
  327. package/dist/server-components/hole.d.ts +8 -0
  328. package/dist/server-components/hole.d.ts.map +1 -0
  329. package/dist/server-components/hole.js +20 -0
  330. package/dist/server-components/hole.js.map +1 -0
  331. package/dist/server-components/html-policy.d.ts.map +1 -1
  332. package/dist/server-components/html-policy.js +62 -4
  333. package/dist/server-components/html-policy.js.map +1 -1
  334. package/dist/server-components/html-scan.d.ts +17 -0
  335. package/dist/server-components/html-scan.d.ts.map +1 -0
  336. package/dist/server-components/html-scan.js +180 -0
  337. package/dist/server-components/html-scan.js.map +1 -0
  338. package/dist/server-components/html.d.ts.map +1 -1
  339. package/dist/server-components/html.js +19 -4
  340. package/dist/server-components/html.js.map +1 -1
  341. package/dist/server-components/router-integration.d.ts +4 -1
  342. package/dist/server-components/router-integration.d.ts.map +1 -1
  343. package/dist/server-components/router-integration.js +23 -2
  344. package/dist/server-components/router-integration.js.map +1 -1
  345. package/dist/server-components/runtime.d.ts +6 -1
  346. package/dist/server-components/runtime.d.ts.map +1 -1
  347. package/dist/server-components/runtime.js +86 -28
  348. package/dist/server-components/runtime.js.map +1 -1
  349. package/dist/server-components/state.d.ts +3 -1
  350. package/dist/server-components/state.d.ts.map +1 -1
  351. package/dist/server-components/state.js +50 -38
  352. package/dist/server-components/state.js.map +1 -1
  353. package/dist/server-components/types.d.ts +9 -0
  354. package/dist/server-components/types.d.ts.map +1 -1
  355. package/dist/vite.d.ts +5 -1
  356. package/dist/vite.d.ts.map +1 -1
  357. package/dist/vite.js +58 -4
  358. package/dist/vite.js.map +1 -1
  359. package/package.json +48 -8
  360. package/src/boundary.ts +77 -5
  361. package/src/build-plan.ts +3 -0
  362. package/src/build-vite.ts +2 -0
  363. package/src/build.ts +19 -1
  364. package/src/client.ts +147 -10
  365. package/src/csp.ts +16 -2
  366. package/src/deferred.ts +11 -5
  367. package/src/dev-feed.ts +11 -2
  368. package/src/dev-session.ts +22 -11
  369. package/src/dev.ts +29 -8
  370. package/src/diagnostic-catalog.ts +53 -0
  371. package/src/diagnostic.ts +1 -0
  372. package/src/fn.ts +24 -7
  373. package/src/fs.ts +22 -8
  374. package/src/identity.ts +61 -0
  375. package/src/index.ts +19 -0
  376. package/src/internal/cdn/cloudflare.ts +2 -1
  377. package/src/internal/certified-components.ts +1 -1
  378. package/src/internal/codegen.ts +87 -8
  379. package/src/internal/dev-websocket.ts +230 -0
  380. package/src/internal/hole-runtime.ts +286 -0
  381. package/src/internal/identity-epoch.ts +235 -0
  382. package/src/internal/invalidation-contract.ts +35 -0
  383. package/src/internal/invalidation.ts +213 -0
  384. package/src/internal/island-bindings.ts +191 -0
  385. package/src/internal/island-list.ts +92 -0
  386. package/src/internal/island-mount.ts +68 -0
  387. package/src/internal/island-owner.ts +20 -0
  388. package/src/internal/island-resource.ts +76 -0
  389. package/src/internal/island-signals.ts +249 -0
  390. package/src/internal/keep-alive-table.ts +72 -0
  391. package/src/internal/live-contract.ts +106 -0
  392. package/src/internal/live-queries.ts +60 -0
  393. package/src/internal/page-events.ts +27 -0
  394. package/src/internal/page-execution.ts +579 -40
  395. package/src/internal/ppr/admission.ts +300 -0
  396. package/src/internal/ppr/canary.ts +122 -0
  397. package/src/internal/ppr/compile-shell.ts +379 -0
  398. package/src/internal/ppr/contract.ts +265 -0
  399. package/src/internal/ppr/frames.ts +170 -0
  400. package/src/internal/ppr/integration.ts +137 -0
  401. package/src/internal/ppr/options.ts +221 -0
  402. package/src/internal/ppr/route-rules.ts +77 -0
  403. package/src/internal/ppr/runtime.ts +36 -0
  404. package/src/internal/ppr/server.ts +1764 -0
  405. package/src/internal/ppr/shell-store.ts +139 -0
  406. package/src/internal/prerendered-pages.ts +7 -4
  407. package/src/internal/query-digest.ts +34 -0
  408. package/src/internal/query-runtime.ts +14 -1
  409. package/src/internal/query-seam.ts +48 -0
  410. package/src/internal/render-document.ts +149 -22
  411. package/src/internal/request-abort.ts +26 -0
  412. package/src/internal/server-boundary.ts +10 -1
  413. package/src/internal/share-data.ts +136 -0
  414. package/src/internal/store-signature.ts +149 -0
  415. package/src/internal/vite-plugin-compat.ts +2 -2
  416. package/src/internal/web-app.ts +121 -3
  417. package/src/islands-swap.ts +283 -0
  418. package/src/islands.ts +169 -72
  419. package/src/isr.ts +348 -106
  420. package/src/keep-alive.ts +1315 -0
  421. package/src/live/bus.ts +77 -0
  422. package/src/live/core.ts +52 -0
  423. package/src/live/history.ts +109 -0
  424. package/src/live/hub-protocol.ts +133 -0
  425. package/src/live/hub.ts +615 -0
  426. package/src/live/keyring.ts +379 -0
  427. package/src/live/read-capped.ts +36 -0
  428. package/src/live/revocations.ts +155 -0
  429. package/src/live/settings.ts +46 -0
  430. package/src/live-client.ts +973 -0
  431. package/src/live-hub.ts +658 -0
  432. package/src/live-redis.ts +259 -0
  433. package/src/live.ts +1096 -0
  434. package/src/manifest.ts +274 -6
  435. package/src/navigation.ts +14 -2
  436. package/src/plugins/vite-zone-guard.ts +15 -2
  437. package/src/ppr.ts +153 -0
  438. package/src/query.ts +147 -20
  439. package/src/render-seam.ts +35 -0
  440. package/src/route-types.ts +3 -1
  441. package/src/router.ts +494 -101
  442. package/src/server-components/build.ts +9 -3
  443. package/src/server-components/client.ts +89 -5
  444. package/src/server-components/hole.ts +23 -0
  445. package/src/server-components/html-policy.ts +63 -4
  446. package/src/server-components/html-scan.ts +159 -0
  447. package/src/server-components/html.ts +18 -4
  448. package/src/server-components/router-integration.ts +21 -2
  449. package/src/server-components/runtime.ts +112 -30
  450. package/src/server-components/state.ts +66 -44
  451. package/src/server-components/types.ts +16 -0
  452. package/src/vite.ts +75 -6
  453. package/dist/nano.d.ts +0 -125
  454. package/dist/nano.d.ts.map +0 -1
  455. package/dist/nano.js +0 -190
  456. package/dist/nano.js.map +0 -1
  457. package/src/nano.ts +0 -246
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/server-components/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/server-components/client.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import type { ServerComponent } from "./types.js";
2
+ /**
3
+ * A `dynamic` hole's `render`: the hole shows `component`, given the hole loader's output as its
4
+ * input. The page's app lists the component under `createServerComponents({ holes })` for the route.
5
+ * The hole cannot be `interactive`; its client islands are.
6
+ */
7
+ export declare function serverHole<Input, Props, View>(component: ServerComponent<Input, Props, View>): (data: Input) => never;
8
+ //# sourceMappingURL=hole.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hole.d.ts","sourceRoot":"","sources":["../../src/server-components/hole.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AAEjD;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAC3C,SAAS,EAAE,eAAe,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,GAC7C,CAAC,IAAI,EAAE,KAAK,KAAK,KAAK,CAMxB"}
@@ -0,0 +1,20 @@
1
+ /**
2
+ * Experimental: a partially prerendered hole whose content is a server component. The hole's loader
3
+ * returns the component's input; the server runs the component for each visitor and sends its HTML,
4
+ * and the browser mounts only the client islands inside it. Under the coordinated compiler a browser
5
+ * import of a `*.component.server` module is an opaque handle, so the component never ships.
6
+ */
7
+ import { SERVER_HOLE } from "../internal/ppr/contract.js";
8
+ /**
9
+ * A `dynamic` hole's `render`: the hole shows `component`, given the hole loader's output as its
10
+ * input. The page's app lists the component under `createServerComponents({ holes })` for the route.
11
+ * The hole cannot be `interactive`; its client islands are.
12
+ */
13
+ export function serverHole(component) {
14
+ const render = () => {
15
+ throw new Error("[nifra/web] a server component hole renders on the server only");
16
+ };
17
+ Object.defineProperty(render, SERVER_HOLE, { value: component });
18
+ return Object.freeze(render);
19
+ }
20
+ //# sourceMappingURL=hole.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hole.js","sourceRoot":"","sources":["../../src/server-components/hole.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAA;AAGzD;;;;GAIG;AACH,MAAM,UAAU,UAAU,CACxB,SAA8C;IAE9C,MAAM,MAAM,GAAG,GAAU,EAAE;QACzB,MAAM,IAAI,KAAK,CAAC,gEAAgE,CAAC,CAAA;IACnF,CAAC,CAAA;IACD,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,WAAW,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAA;IAChE,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;AAC9B,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"html-policy.d.ts","sourceRoot":"","sources":["../../src/server-components/html-policy.ts"],"names":[],"mappings":"AA0DA,qFAAqF;AACrF,wBAAgB,oBAAoB,CAClC,GAAG,EAAE,MAAM,EACX,UAAU,EAAE,SAAS;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,EAAE,EACtD,MAAM,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,GAC3B,IAAI,CA8BN"}
1
+ {"version":3,"file":"html-policy.d.ts","sourceRoot":"","sources":["../../src/server-components/html-policy.ts"],"names":[],"mappings":"AA2GA,qFAAqF;AACrF,wBAAgB,oBAAoB,CAClC,GAAG,EAAE,MAAM,EACX,UAAU,EAAE,SAAS;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,EAAE,EACtD,MAAM,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,GAC3B,IAAI,CAwCN"}
@@ -34,9 +34,58 @@ const urls = new Set([
34
34
  "data",
35
35
  "codebase",
36
36
  ]);
37
+ const IMAGE_HINT = new Set([
38
+ "rel",
39
+ "as",
40
+ "href",
41
+ "imagesrcset",
42
+ "imagesizes",
43
+ "crossorigin",
44
+ "fetchpriority",
45
+ "referrerpolicy",
46
+ ]);
37
47
  const fail = () => {
38
48
  throw new ServerComponentError("component_protocol", 400);
39
49
  };
50
+ const unsafeUrl = (value) => /^(?:javascript|vbscript|data):/.test(
51
+ // biome-ignore lint/suspicious/noControlCharactersInRegex: Browsers discard these controls when interpreting URL schemes.
52
+ value.replace(/[\u0000-\u0020\u007f]/g, "").toLowerCase());
53
+ const isSpace = (char) => char === " " || char === "\t" || char === "\n" || char === "\f" || char === "\r";
54
+ /**
55
+ * The image candidate URLs of a `srcset`, split as the HTML standard's "parse a srcset attribute"
56
+ * splits them, so each is the URL a browser would fetch: a URL is a run without whitespace, and its
57
+ * descriptors end at the first comma outside parentheses.
58
+ */
59
+ function srcsetUrls(value) {
60
+ const found = [];
61
+ let at = 0;
62
+ while (at < value.length) {
63
+ while (at < value.length && (isSpace(value[at] ?? "") || value[at] === ","))
64
+ at++;
65
+ const start = at;
66
+ while (at < value.length && !isSpace(value[at] ?? ""))
67
+ at++;
68
+ const url = value.slice(start, at);
69
+ if (url === "")
70
+ break;
71
+ if (url.endsWith(",")) {
72
+ found.push(url.replace(/,+$/, ""));
73
+ continue;
74
+ }
75
+ found.push(url);
76
+ let inParens = false;
77
+ for (; at < value.length; at++) {
78
+ const char = value[at];
79
+ if (char === "(")
80
+ inParens = true;
81
+ else if (char === ")")
82
+ inParens = false;
83
+ else if (char === "," && !inParens)
84
+ break;
85
+ }
86
+ }
87
+ return found;
88
+ }
40
89
  function css(value) {
41
90
  return (value
42
91
  .replace(/\/\*[\s\S]*?\*\//g, "")
@@ -51,6 +100,15 @@ function css(value) {
51
100
  export function validateComponentTag(tag, attributes, assets) {
52
101
  if (tag.toLowerCase() === "link" && assets !== undefined) {
53
102
  const attrs = new Map(attributes.map((attribute) => [attribute.name.toLowerCase(), attribute.value]));
103
+ // React writes an image's preload hint ahead of each `<img>` it renders without a document. Like
104
+ // every hint here it is cut from the range, so it only has to be a well-formed image hint.
105
+ if (attrs.get("rel") === "preload" && attrs.get("as") === "image") {
106
+ if ([...attrs.keys()].some((name) => !IMAGE_HINT.has(name)) ||
107
+ unsafeUrl(attrs.get("href") ?? "") ||
108
+ srcsetUrls(attrs.get("imagesrcset") ?? "").some(unsafeUrl))
109
+ fail();
110
+ return;
111
+ }
54
112
  if (!["preload", "modulepreload"].includes(attrs.get("rel") ?? "") ||
55
113
  !assets.has(attrs.get("href") ?? "") ||
56
114
  [...attrs.keys()].some((name) => !["rel", "href", "as", "crossorigin", "fetchpriority"].includes(name)))
@@ -61,11 +119,11 @@ export function validateComponentTag(tag, attributes, assets) {
61
119
  fail();
62
120
  for (const attribute of attributes) {
63
121
  const name = attribute.name.toLowerCase();
64
- // biome-ignore lint/suspicious/noControlCharactersInRegex: Browsers discard these controls when interpreting URL schemes.
65
- const value = attribute.value.replace(/[\u0000-\u0020\u007f]/g, "").toLowerCase();
66
- if (name.startsWith("on") || ["srcdoc", "is", "srcset", "ping"].includes(name))
122
+ if (name.startsWith("on") || ["srcdoc", "is", "ping"].includes(name))
123
+ fail();
124
+ if (urls.has(name) && unsafeUrl(attribute.value))
67
125
  fail();
68
- if (urls.has(name) && /^(?:javascript|vbscript|data):/.test(value))
126
+ if (name === "srcset" && srcsetUrls(attribute.value).some(unsafeUrl))
69
127
  fail();
70
128
  if (name === "style" &&
71
129
  /expression\(|@import|(?:javascript|vbscript|data):|-moz-binding|behavior:/.test(css(attribute.value)))
@@ -1 +1 @@
1
- {"version":3,"file":"html-policy.js","sourceRoot":"","sources":["../../src/server-components/html-policy.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"html-policy.js","sourceRoot":"","sources":["../../src/server-components/html-policy.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ /**
2
+ * A linear scan of the HTML a component renderer writes, for the validator's common case. It reads
3
+ * only a subset that parse5's tokenizer reads without a parse error and with the same start tags:
4
+ * ASCII tag and attribute names, double-quoted values, a few character references and plain
5
+ * comments. Anything else returns `undefined`, and the tokenizer decides. A differential test holds
6
+ * the two to the same tags (server-components-html-scan.test.ts).
7
+ */
8
+ export interface ScannedTag {
9
+ readonly tagName: string;
10
+ readonly attrs: {
11
+ readonly name: string;
12
+ readonly value: string;
13
+ }[];
14
+ }
15
+ /** The start tags of `html`, or `undefined` when it leaves the subset this scan reads. */
16
+ export declare function scanComponentHTML(html: string): ScannedTag[] | undefined;
17
+ //# sourceMappingURL=html-scan.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"html-scan.d.ts","sourceRoot":"","sources":["../../src/server-components/html-scan.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,KAAK,EAAE;QAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;KAAE,EAAE,CAAA;CACpE;AAmGD,0FAA0F;AAC1F,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,EAAE,GAAG,SAAS,CA+CxE"}
@@ -0,0 +1,180 @@
1
+ /**
2
+ * A linear scan of the HTML a component renderer writes, for the validator's common case. It reads
3
+ * only a subset that parse5's tokenizer reads without a parse error and with the same start tags:
4
+ * ASCII tag and attribute names, double-quoted values, a few character references and plain
5
+ * comments. Anything else returns `undefined`, and the tokenizer decides. A differential test holds
6
+ * the two to the same tags (server-components-html-scan.test.ts).
7
+ */
8
+ const REFERENCES = [
9
+ ["&amp;", "&"],
10
+ ["&lt;", "<"],
11
+ ["&gt;", ">"],
12
+ ["&quot;", '"'],
13
+ ["&#39;", "'"],
14
+ ["&#x27;", "'"],
15
+ ["&nbsp;", "\u00a0"],
16
+ ];
17
+ const referenceAt = (html, at) => {
18
+ for (const reference of REFERENCES)
19
+ if (html.startsWith(reference[0], at))
20
+ return reference;
21
+ return undefined;
22
+ };
23
+ const isSpace = (code) => code === 0x20 || code === 0x0a || code === 0x09 || code === 0x0c || code === 0x0d;
24
+ const isLetter = (code) => (code >= 0x61 && code <= 0x7a) || (code >= 0x41 && code <= 0x5a);
25
+ const isTagCode = (code) => isLetter(code) || (code >= 0x30 && code <= 0x39) || code === 0x2d;
26
+ const isAttributeStart = (code) => isLetter(code) || code === 0x5f || code === 0x3a;
27
+ const isAttributeCode = (code) => isAttributeStart(code) || (code >= 0x30 && code <= 0x39) || code === 0x2d || code === 0x2e;
28
+ /**
29
+ * The code units of the character at `at`, or 0 when parse5 reports it (NULL, a control, a
30
+ * noncharacter, a lone surrogate) or past the end.
31
+ */
32
+ function unitsAt(html, at) {
33
+ const code = html.charCodeAt(at);
34
+ if (code >= 0x20 && code < 0x7f)
35
+ return 1;
36
+ if (code >= 0xd800 && code <= 0xdbff) {
37
+ const low = html.charCodeAt(at + 1);
38
+ if (!(low >= 0xdc00 && low <= 0xdfff))
39
+ return 0;
40
+ const point = ((code - 0xd800) << 10) + (low - 0xdc00) + 0x10000;
41
+ return (point & 0xfffe) === 0xfffe ? 0 : 2;
42
+ }
43
+ if (Number.isNaN(code) || (code >= 0xdc00 && code <= 0xdfff))
44
+ return 0;
45
+ if (code < 0x20)
46
+ return isSpace(code) ? 1 : 0;
47
+ if (code <= 0x9f)
48
+ return 0;
49
+ return (code >= 0xfdd0 && code <= 0xfdef) || code === 0xfffe || code === 0xffff ? 0 : 1;
50
+ }
51
+ /** Where a start tag whose name begins at `at` ends, with `tags` given its tag, or -1. */
52
+ function scanStartTag(html, at, tags) {
53
+ let end = at;
54
+ while (isTagCode(html.charCodeAt(end)))
55
+ end++;
56
+ const tagName = html.slice(at, end).toLowerCase();
57
+ // The validator reads these two as a browser does, which needs the text after them.
58
+ if (tagName === "title" || tagName === "textarea")
59
+ return -1;
60
+ let code = html.charCodeAt(end);
61
+ if (!(isSpace(code) || code === 0x2f || code === 0x3e))
62
+ return -1;
63
+ const attrs = [];
64
+ for (;;) {
65
+ while (isSpace(html.charCodeAt(end)))
66
+ end++;
67
+ code = html.charCodeAt(end);
68
+ if (code === 0x3e || (code === 0x2f && html.charCodeAt(end + 1) === 0x3e)) {
69
+ tags.push({ tagName, attrs });
70
+ return end + (code === 0x3e ? 1 : 2);
71
+ }
72
+ if (!isAttributeStart(code))
73
+ return -1;
74
+ const nameStart = end;
75
+ while (isAttributeCode(html.charCodeAt(end)))
76
+ end++;
77
+ const name = html.slice(nameStart, end).toLowerCase();
78
+ if (attrs.some((attr) => attr.name === name))
79
+ return -1;
80
+ code = html.charCodeAt(end);
81
+ let value = "";
82
+ if (code === 0x3d) {
83
+ if (html.charCodeAt(end + 1) !== 0x22)
84
+ return -1;
85
+ let from = end + 2;
86
+ end = from;
87
+ for (;;) {
88
+ code = html.charCodeAt(end);
89
+ if (code === 0x22)
90
+ break;
91
+ if (code === 0x26) {
92
+ const reference = referenceAt(html, end);
93
+ if (reference === undefined)
94
+ return -1;
95
+ value += html.slice(from, end) + reference[1];
96
+ end += reference[0].length;
97
+ from = end;
98
+ continue;
99
+ }
100
+ // A CR would reach the tokenizer's value as LF.
101
+ const units = code === 0x0d ? 0 : unitsAt(html, end);
102
+ if (units === 0)
103
+ return -1;
104
+ end += units;
105
+ }
106
+ value += html.slice(from, end);
107
+ end++;
108
+ code = html.charCodeAt(end);
109
+ if (!(isSpace(code) || code === 0x2f || code === 0x3e))
110
+ return -1;
111
+ }
112
+ else if (!(isSpace(code) || code === 0x2f || code === 0x3e))
113
+ return -1;
114
+ attrs.push({ name, value });
115
+ }
116
+ }
117
+ /** The start tags of `html`, or `undefined` when it leaves the subset this scan reads. */
118
+ export function scanComponentHTML(html) {
119
+ const tags = [];
120
+ let at = 0;
121
+ while (at < html.length) {
122
+ const code = html.charCodeAt(at);
123
+ if (code === 0x3c) {
124
+ const next = html.charCodeAt(at + 1);
125
+ if (isLetter(next)) {
126
+ at = scanStartTag(html, at + 1, tags);
127
+ if (at === -1)
128
+ return undefined;
129
+ }
130
+ else if (next === 0x2f) {
131
+ let end = at + 2;
132
+ if (!isLetter(html.charCodeAt(end)))
133
+ return undefined;
134
+ while (isTagCode(html.charCodeAt(end)))
135
+ end++;
136
+ while (isSpace(html.charCodeAt(end)))
137
+ end++;
138
+ if (html.charCodeAt(end) !== 0x3e)
139
+ return undefined;
140
+ at = end + 1;
141
+ }
142
+ else if (html.startsWith("!--", at + 1)) {
143
+ const from = at + 4;
144
+ if (html.charCodeAt(from) === 0x3e || html.startsWith("->", from))
145
+ return undefined;
146
+ const close = html.indexOf("-->", from);
147
+ if (close === -1)
148
+ return undefined;
149
+ for (let inner = from; inner < close;) {
150
+ const units = unitsAt(html, inner);
151
+ if (units === 0)
152
+ return undefined;
153
+ // `<!` can open a nested comment and `--!` a `--!>` ending; both are parse errors.
154
+ if (html.charCodeAt(inner) === 0x21 &&
155
+ ((inner > from && html.charCodeAt(inner - 1) === 0x3c) ||
156
+ (inner - 2 >= from && html.startsWith("--", inner - 2))))
157
+ return undefined;
158
+ inner += units;
159
+ }
160
+ at = close + 3;
161
+ }
162
+ else
163
+ return undefined;
164
+ }
165
+ else if (code === 0x26) {
166
+ const reference = referenceAt(html, at);
167
+ if (reference === undefined)
168
+ return undefined;
169
+ at += reference[0].length;
170
+ }
171
+ else {
172
+ const units = unitsAt(html, at);
173
+ if (units === 0)
174
+ return undefined;
175
+ at += units;
176
+ }
177
+ }
178
+ return tags;
179
+ }
180
+ //# sourceMappingURL=html-scan.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"html-scan.js","sourceRoot":"","sources":["../../src/server-components/html-scan.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"html.d.ts","sourceRoot":"","sources":["../../src/server-components/html.ts"],"names":[],"mappings":"AAgEA,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,GAAG,IAAI,CAEtF;AAED,8FAA8F;AAC9F,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,CAAC,MAAM,CAAC,GAAG,MAAM,CAWpF"}
1
+ {"version":3,"file":"html.d.ts","sourceRoot":"","sources":["../../src/server-components/html.ts"],"names":[],"mappings":"AA2EA,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,GAAG,IAAI,CAKtF;AAED,8FAA8F;AAC9F,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,CAAC,MAAM,CAAC,GAAG,MAAM,CAWpF"}
@@ -1,6 +1,7 @@
1
1
  import { Tokenizer } from "parse5";
2
2
  import { ServerComponentError } from "./error.js";
3
3
  import { validateComponentTag } from "./html-policy.js";
4
+ import { scanComponentHTML } from "./html-scan.js";
4
5
  import { COMPONENT_LIMITS } from "./protocol.js";
5
6
  /**
6
7
  * A browser reads `title` and `textarea` content as RCDATA, where `<!--` and tags are text, but
@@ -15,11 +16,19 @@ function closesAsText(html, tag, from) {
15
16
  html.slice(next, after).toLowerCase() === `</${tag}` &&
16
17
  /^[\t\n\f />]$/.test(html[after] ?? ""));
17
18
  }
19
+ function assertOutputSize(html) {
20
+ // UTF-8 takes at most three bytes per UTF-16 unit, so only a long string is encoded to measure it.
21
+ if (html.length * 3 > COMPONENT_LIMITS.outputBytes &&
22
+ new TextEncoder().encode(html).length > COMPONENT_LIMITS.outputBytes)
23
+ throw new ServerComponentError("component_limit", 413);
24
+ }
18
25
  /** Tokenization validates attributes even in SVG/table contexts a document parser may discard. */
19
26
  function tokenize(html, assets, hints) {
20
- if (new TextEncoder().encode(html).length > COMPONENT_LIMITS.outputBytes)
21
- throw new ServerComponentError("component_limit", 413);
22
- const tokenizer = new Tokenizer({ sourceCodeLocationInfo: true }, {
27
+ assertOutputSize(html);
28
+ const tokenizer = new Tokenizer(
29
+ // Offsets are read only for hints and for `title`/`textarea`, whose names a tokenizer lowercases
30
+ // from ASCII alone; tracking them costs every other string about a tenth of its check.
31
+ { sourceCodeLocationInfo: hints !== undefined || /<(?:title|textarea)/i.test(html) }, {
23
32
  onStartTag(token) {
24
33
  validateComponentTag(token.tagName, token.attrs, assets);
25
34
  if ((token.tagName === "title" || token.tagName === "textarea") &&
@@ -49,7 +58,13 @@ function tokenize(html, assets, hints) {
49
58
  tokenizer.write(html, true);
50
59
  }
51
60
  export function validateComponentHTML(html, assets) {
52
- tokenize(html, assets);
61
+ assertOutputSize(html);
62
+ const tags = scanComponentHTML(html);
63
+ if (tags === undefined)
64
+ tokenize(html, assets);
65
+ else
66
+ for (const tag of tags)
67
+ validateComponentTag(tag.tagName, tag.attrs, assets);
53
68
  }
54
69
  /** React may produce resource hints while decoding Flight. They are not owned range nodes. */
55
70
  export function componentRangeHTML(html, assets) {
@@ -1 +1 @@
1
- {"version":3,"file":"html.js","sourceRoot":"","sources":["../../src/server-components/html.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"html.js","sourceRoot":"","sources":["../../src/server-components/html.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,9 @@
1
1
  import type { ClientRouter } from "../router.js";
2
2
  import type { ComponentController } from "./client.js";
3
- /** Optional router integration; imported only by opted-in application entries. */
3
+ /**
4
+ * Optional router integration; imported only by opted-in application entries. The components of a
5
+ * `keepAlive` page are parked while it is hidden, so navigation leaves them as they are.
6
+ */
4
7
  export declare function bindComponentRouter(router: Pick<ClientRouter, "snapshot" | "subscribe">): () => void;
5
8
  /** Refresh only after the existing mutation transport reports success. */
6
9
  export declare function refreshAfterComponentMutation<T extends {
@@ -1 +1 @@
1
- {"version":3,"file":"router-integration.d.ts","sourceRoot":"","sources":["../../src/server-components/router-integration.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAChD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAA;AAGtD,kFAAkF;AAClF,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,IAAI,CAAC,YAAY,EAAE,UAAU,GAAG,WAAW,CAAC,GACnD,MAAM,IAAI,CAoBZ;AAED,0EAA0E;AAC1E,wBAAsB,6BAA6B,CAAC,CAAC,SAAS;IAAE,QAAQ,CAAC,EAAE,EAAE,OAAO,CAAA;CAAE,EACpF,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC,EACpB,UAAU,EAAE,mBAAmB,EAC/B,SAAS,EAAE,SAAS,MAAM,EAAE,GAC3B,OAAO,CAAC,CAAC,CAAC,CAKZ"}
1
+ {"version":3,"file":"router-integration.d.ts","sourceRoot":"","sources":["../../src/server-components/router-integration.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAChD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAA;AAGtD;;;GAGG;AACH,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,IAAI,CAAC,YAAY,EAAE,UAAU,GAAG,WAAW,CAAC,GACnD,MAAM,IAAI,CAmCZ;AAED,0EAA0E;AAC1E,wBAAsB,6BAA6B,CAAC,CAAC,SAAS;IAAE,QAAQ,CAAC,EAAE,EAAE,OAAO,CAAA;CAAE,EACpF,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC,EACpB,UAAU,EAAE,mBAAmB,EAC/B,SAAS,EAAE,SAAS,MAAM,EAAE,GAC3B,OAAO,CAAC,CAAC,CAAC,CAKZ"}
@@ -1,8 +1,24 @@
1
+ import { PAGE_HIDE_EVENT, PAGE_SHOW_EVENT } from "../internal/page-events.js";
1
2
  import { componentControllers } from "./registry.js";
2
- /** Optional router integration; imported only by opted-in application entries. */
3
+ /**
4
+ * Optional router integration; imported only by opted-in application entries. The components of a
5
+ * `keepAlive` page are parked while it is hidden, so navigation leaves them as they are.
6
+ */
3
7
  export function bindComponentRouter(router) {
4
8
  let previous = router.snapshot();
5
- return router.subscribe(() => {
9
+ const onPage = (event) => {
10
+ const page = event.target;
11
+ if (page instanceof Node)
12
+ for (const controller of componentControllers)
13
+ if (event.type === PAGE_HIDE_EVENT)
14
+ controller.park(page);
15
+ else
16
+ controller.unpark(page);
17
+ };
18
+ const target = typeof document === "undefined" ? undefined : document;
19
+ target?.addEventListener(PAGE_HIDE_EVENT, onPage);
20
+ target?.addEventListener(PAGE_SHOW_EVENT, onPage);
21
+ const stop = router.subscribe(() => {
6
22
  const next = router.snapshot();
7
23
  if (next.pending && next.pendingPath !== previous.pendingPath)
8
24
  for (const controller of componentControllers)
@@ -18,6 +34,11 @@ export function bindComponentRouter(router) {
18
34
  }
19
35
  previous = next;
20
36
  });
37
+ return () => {
38
+ stop();
39
+ target?.removeEventListener(PAGE_HIDE_EVENT, onPage);
40
+ target?.removeEventListener(PAGE_SHOW_EVENT, onPage);
41
+ };
21
42
  }
22
43
  /** Refresh only after the existing mutation transport reports success. */
23
44
  export async function refreshAfterComponentMutation(mutation, controller, instances) {