@nifrajs/web 5.5.1 → 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 +154 -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
@@ -0,0 +1 @@
1
+ {"version":3,"file":"keep-alive.js","sourceRoot":"","sources":["../src/keep-alive.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,56 @@
1
+ /**
2
+ * The live bus: one ordered log of changes and revocations that every process serving the app reads.
3
+ * Its sequence numbers never leave the server.
4
+ *
5
+ * A bus assigns each appended event a seq from a hybrid logical clock in microseconds: never below
6
+ * `Date.now() * 1000` at the authority, always above the previous seq. A restarted authority therefore
7
+ * keeps counting upward, and an entry's age can be read off its seq.
8
+ */
9
+ /** Something a loader declared with `ctx.live` changed. */
10
+ export interface LiveChange {
11
+ readonly type: "change";
12
+ readonly keys: readonly string[];
13
+ }
14
+ /**
15
+ * Grants issued before this event stop working: every grant (`sub` and `key` null), one subject's
16
+ * (`key` null), or, with `key`, any grant holding that key (for everyone, or for `sub`).
17
+ */
18
+ export interface LiveRevocation {
19
+ readonly type: "revoke";
20
+ readonly sub: string | null;
21
+ readonly key: string | null;
22
+ }
23
+ export type LiveBusInput = LiveChange | LiveRevocation;
24
+ export type LiveBusEvent = LiveBusInput & {
25
+ readonly seq: number;
26
+ };
27
+ export interface LiveBusListener {
28
+ /** The next event, in seq order. */
29
+ event(event: LiveBusEvent): void;
30
+ /**
31
+ * Events up to `head` may be lost (a trimmed stream, a reconnect): what happened before `head` is
32
+ * unknown, and delivery resumes with the events after it.
33
+ */
34
+ gap(head: number): void;
35
+ /** The bus is unreachable; the next {@link gap} reports where delivery resumes. */
36
+ down(): void;
37
+ }
38
+ export interface LiveBusSubscription {
39
+ /** The seq of the last event before delivery starts. */
40
+ readonly head: number;
41
+ close(): void;
42
+ }
43
+ export interface LiveBus {
44
+ /** Append one event; resolves with its seq. */
45
+ append(input: LiveBusInput): Promise<number>;
46
+ /** Deliver every event after the returned head to `listener`, in seq order. */
47
+ subscribe(listener: LiveBusListener): Promise<LiveBusSubscription>;
48
+ }
49
+ /** The seq a clock reading allows, never at or below `last`. */
50
+ export declare const nextSeq: (last: number, nowMs: number) => number;
51
+ /**
52
+ * The single-process bus: an in-memory clock, events delivered to every subscriber before `append`
53
+ * resolves. Processes do not share it; run several behind a shared bus instead.
54
+ */
55
+ export declare function memoryBus(): LiveBus;
56
+ //# sourceMappingURL=bus.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bus.d.ts","sourceRoot":"","sources":["../../src/live/bus.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,2DAA2D;AAC3D,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAA;IACvB,QAAQ,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,CAAA;CACjC;AAED;;;GAGG;AACH,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAA;IACvB,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAA;IAC3B,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAA;CAC5B;AAED,MAAM,MAAM,YAAY,GAAG,UAAU,GAAG,cAAc,CAAA;AAEtD,MAAM,MAAM,YAAY,GAAG,YAAY,GAAG;IAAE,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;CAAE,CAAA;AAElE,MAAM,WAAW,eAAe;IAC9B,oCAAoC;IACpC,KAAK,CAAC,KAAK,EAAE,YAAY,GAAG,IAAI,CAAA;IAChC;;;OAGG;IACH,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;IACvB,mFAAmF;IACnF,IAAI,IAAI,IAAI,CAAA;CACb;AAED,MAAM,WAAW,mBAAmB;IAClC,wDAAwD;IACxD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,KAAK,IAAI,IAAI,CAAA;CACd;AAED,MAAM,WAAW,OAAO;IACtB,+CAA+C;IAC/C,MAAM,CAAC,KAAK,EAAE,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;IAC5C,+EAA+E;IAC/E,SAAS,CAAC,QAAQ,EAAE,eAAe,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAA;CACnE;AAED,gEAAgE;AAChE,eAAO,MAAM,OAAO,GAAI,MAAM,MAAM,EAAE,OAAO,MAAM,KAAG,MAA0C,CAAA;AAEhG;;;GAGG;AACH,wBAAgB,SAAS,IAAI,OAAO,CAenC"}
@@ -0,0 +1,32 @@
1
+ /**
2
+ * The live bus: one ordered log of changes and revocations that every process serving the app reads.
3
+ * Its sequence numbers never leave the server.
4
+ *
5
+ * A bus assigns each appended event a seq from a hybrid logical clock in microseconds: never below
6
+ * `Date.now() * 1000` at the authority, always above the previous seq. A restarted authority therefore
7
+ * keeps counting upward, and an entry's age can be read off its seq.
8
+ */
9
+ /** The seq a clock reading allows, never at or below `last`. */
10
+ export const nextSeq = (last, nowMs) => Math.max(last + 1, nowMs * 1000);
11
+ /**
12
+ * The single-process bus: an in-memory clock, events delivered to every subscriber before `append`
13
+ * resolves. Processes do not share it; run several behind a shared bus instead.
14
+ */
15
+ export function memoryBus() {
16
+ let last = nextSeq(0, Date.now());
17
+ const listeners = new Set();
18
+ return {
19
+ async append(input) {
20
+ last = nextSeq(last, Date.now());
21
+ const event = { ...input, seq: last };
22
+ for (const listener of listeners)
23
+ listener.event(event);
24
+ return last;
25
+ },
26
+ async subscribe(listener) {
27
+ listeners.add(listener);
28
+ return { head: last, close: () => listeners.delete(listener) };
29
+ },
30
+ };
31
+ }
32
+ //# sourceMappingURL=bus.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bus.js","sourceRoot":"","sources":["../../src/live/bus.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AA+CH,gEAAgE;AAChE,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,IAAY,EAAE,KAAa,EAAU,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC,CAAA;AAEhG;;;GAGG;AACH,MAAM,UAAU,SAAS;IACvB,IAAI,IAAI,GAAG,OAAO,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAA;IACjC,MAAM,SAAS,GAAG,IAAI,GAAG,EAAmB,CAAA;IAC5C,OAAO;QACL,KAAK,CAAC,MAAM,CAAC,KAAK;YAChB,IAAI,GAAG,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAA;YAChC,MAAM,KAAK,GAAiB,EAAE,GAAG,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,CAAA;YACnD,KAAK,MAAM,QAAQ,IAAI,SAAS;gBAAE,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;YACvD,OAAO,IAAI,CAAA;QACb,CAAC;QACD,KAAK,CAAC,SAAS,CAAC,QAAQ;YACtB,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;YACvB,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAA;QAChE,CAAC;KACF,CAAA;AACH,CAAC"}
@@ -0,0 +1,25 @@
1
+ /**
2
+ * What a process applies the ordered live events to, wherever they come from: a bus every process
3
+ * reads, or the Workers hub that owns the log.
4
+ */
5
+ import type { LiveBusEvent, LiveRevocation } from "./bus.js";
6
+ import type { History } from "./history.js";
7
+ import type { LiveHub } from "./hub.js";
8
+ import { type Keyring } from "./keyring.js";
9
+ import type { Revocations } from "./revocations.js";
10
+ export interface LiveCore {
11
+ readonly ring: Keyring;
12
+ readonly history: History;
13
+ readonly revocations: Revocations;
14
+ readonly hub: LiveHub;
15
+ }
16
+ /**
17
+ * Apply one event. A change is recorded in history and then fanned out in one synchronous step; a
18
+ * revocation is stored before any socket hears of it. Throws on an event it cannot apply, which
19
+ * leaves history and revocations unknown: the caller forgets everything up to its seq.
20
+ */
21
+ export declare function applyEvent(core: LiveCore, event: LiveBusEvent, hash: (key: string) => number): Promise<void>;
22
+ export declare function validRevocation(event: LiveBusEvent): event is LiveRevocation & {
23
+ readonly seq: number;
24
+ };
25
+ //# sourceMappingURL=core.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../../src/live/core.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,KAAK,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,UAAU,CAAA;AAC5D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AAC3C,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,UAAU,CAAA;AACvC,OAAO,EAAe,KAAK,OAAO,EAAE,MAAM,cAAc,CAAA;AACxD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAEnD,MAAM,WAAW,QAAQ;IACvB,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAA;IACtB,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAA;IACzB,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAA;IACjC,QAAQ,CAAC,GAAG,EAAE,OAAO,CAAA;CACtB;AAED;;;;GAIG;AACH,wBAAsB,UAAU,CAC9B,IAAI,EAAE,QAAQ,EACd,KAAK,EAAE,YAAY,EACnB,IAAI,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,GAC5B,OAAO,CAAC,IAAI,CAAC,CAiBf;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,YAAY,GAAG,KAAK,IAAI,cAAc,GAAG;IAC9E,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;CACrB,CAIA"}
@@ -0,0 +1,29 @@
1
+ import { KEY_PATTERN } from "./keyring.js";
2
+ /**
3
+ * Apply one event. A change is recorded in history and then fanned out in one synchronous step; a
4
+ * revocation is stored before any socket hears of it. Throws on an event it cannot apply, which
5
+ * leaves history and revocations unknown: the caller forgets everything up to its seq.
6
+ */
7
+ export async function applyEvent(core, event, hash) {
8
+ if (event.type === "change") {
9
+ const keys = event.keys.filter((key) => typeof key === "string" && KEY_PATTERN.test(key));
10
+ const tags = await Promise.all(keys.map((key) => core.hub.tagsOf(key)));
11
+ core.history.record(event.seq, keys.map((key) => hash(key)), Date.now());
12
+ core.hub.change(keys, tags);
13
+ return;
14
+ }
15
+ if (!validRevocation(event))
16
+ throw new TypeError("malformed revocation");
17
+ const tags = event.key === null ? [] : await core.hub.tagsOf(event.key);
18
+ core.revocations.apply(event, Date.now());
19
+ core.history.advance(event.seq, Date.now());
20
+ core.hub.revoke(event, tags);
21
+ }
22
+ export function validRevocation(event) {
23
+ if (event.type !== "revoke")
24
+ return false;
25
+ if (event.sub !== null && typeof event.sub !== "string")
26
+ return false;
27
+ return event.key === null || (typeof event.key === "string" && KEY_PATTERN.test(event.key));
28
+ }
29
+ //# sourceMappingURL=core.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"core.js","sourceRoot":"","sources":["../../src/live/core.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,WAAW,EAAgB,MAAM,cAAc,CAAA;AAUxD;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAC9B,IAAc,EACd,KAAmB,EACnB,IAA6B;IAE7B,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC5B,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,OAAO,GAAG,KAAK,QAAQ,IAAI,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAA;QACzF,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;QACvE,IAAI,CAAC,OAAO,CAAC,MAAM,CACjB,KAAK,CAAC,GAAG,EACT,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAC5B,IAAI,CAAC,GAAG,EAAE,CACX,CAAA;QACD,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;QAC3B,OAAM;IACR,CAAC;IACD,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC;QAAE,MAAM,IAAI,SAAS,CAAC,sBAAsB,CAAC,CAAA;IACxE,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;IACvE,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAA;IACzC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAA;IAC3C,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,CAAA;AAC9B,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,KAAmB;IAGjD,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAA;IACzC,IAAI,KAAK,CAAC,GAAG,KAAK,IAAI,IAAI,OAAO,KAAK,CAAC,GAAG,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAA;IACrE,OAAO,KAAK,CAAC,GAAG,KAAK,IAAI,IAAI,CAAC,OAAO,KAAK,CAAC,GAAG,KAAK,QAAQ,IAAI,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAA;AAC7F,CAAC"}
@@ -0,0 +1,38 @@
1
+ /**
2
+ * Which keys changed since a watermark: a ring of `(seq, key hash)` pairs, 16 bytes each, with the
3
+ * newest seq per hash beside it. History is complete for every seq above {@link History.floor}; a
4
+ * watermark at or below it, or one this process has not reached, is unknown and reads as changed.
5
+ */
6
+ export declare const HISTORY_ENTRIES = 100000;
7
+ export declare const HISTORY_MS = 120000;
8
+ export declare class History {
9
+ private readonly capacity;
10
+ private readonly maxAgeMs;
11
+ private readonly seqs;
12
+ private readonly hashes;
13
+ private readonly latest;
14
+ private start;
15
+ private size;
16
+ /** Every event with a seq above this is recorded. */
17
+ floor: number;
18
+ /** The last recorded event's seq. */
19
+ last: number;
20
+ constructor(head: number, capacity?: number, maxAgeMs?: number);
21
+ record(seq: number, hashes: readonly number[], nowMs: number): void;
22
+ /** Mark history up to `seq` as seen with nothing to record (a revocation). */
23
+ advance(seq: number, nowMs: number): void;
24
+ /** `true` when the key may have changed after `watermark`. */
25
+ changedSince(hash: number, watermark: number): boolean;
26
+ known(watermark: number): boolean;
27
+ /** Forget everything: what happened up to `head` is unknown. */
28
+ reset(head: number): void;
29
+ /** Seqs count microseconds, so an entry's age is read off its seq. */
30
+ private prune;
31
+ private evict;
32
+ }
33
+ /**
34
+ * A 53-bit keyed hash (cyrb53 with per-process seeds). A collision only costs a spurious reload, and
35
+ * the seeds keep anyone from choosing keys that collide with another.
36
+ */
37
+ export declare function keyHasher(): (key: string) => number;
38
+ //# sourceMappingURL=history.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"history.d.ts","sourceRoot":"","sources":["../../src/live/history.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,eAAO,MAAM,eAAe,SAAU,CAAA;AACtC,eAAO,MAAM,UAAU,SAAU,CAAA;AAEjC,qBAAa,OAAO;IAahB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAb3B,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAc;IACnC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAc;IACrC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA4B;IACnD,OAAO,CAAC,KAAK,CAAI;IACjB,OAAO,CAAC,IAAI,CAAI;IAChB,qDAAqD;IACrD,KAAK,EAAE,MAAM,CAAA;IACb,qCAAqC;IACrC,IAAI,EAAE,MAAM,CAAA;gBAGV,IAAI,EAAE,MAAM,EACK,QAAQ,SAAkB,EAC1B,QAAQ,SAAa;IAQxC,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,MAAM,EAAE,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAanE,8EAA8E;IAC9E,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAKzC,8DAA8D;IAC9D,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO;IAMtD,KAAK,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO;IAIjC,gEAAgE;IAChE,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAQzB,sEAAsE;IACtE,OAAO,CAAC,KAAK;IAKb,OAAO,CAAC,KAAK;CAQd;AAED;;;GAGG;AACH,wBAAgB,SAAS,IAAI,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,CAkBnD"}
@@ -0,0 +1,104 @@
1
+ /**
2
+ * Which keys changed since a watermark: a ring of `(seq, key hash)` pairs, 16 bytes each, with the
3
+ * newest seq per hash beside it. History is complete for every seq above {@link History.floor}; a
4
+ * watermark at or below it, or one this process has not reached, is unknown and reads as changed.
5
+ */
6
+ export const HISTORY_ENTRIES = 100_000;
7
+ export const HISTORY_MS = 120_000;
8
+ export class History {
9
+ capacity;
10
+ maxAgeMs;
11
+ seqs;
12
+ hashes;
13
+ latest = new Map();
14
+ start = 0;
15
+ size = 0;
16
+ /** Every event with a seq above this is recorded. */
17
+ floor;
18
+ /** The last recorded event's seq. */
19
+ last;
20
+ constructor(head, capacity = HISTORY_ENTRIES, maxAgeMs = HISTORY_MS) {
21
+ this.capacity = capacity;
22
+ this.maxAgeMs = maxAgeMs;
23
+ this.seqs = new Float64Array(capacity);
24
+ this.hashes = new Float64Array(capacity);
25
+ this.floor = head;
26
+ this.last = head;
27
+ }
28
+ record(seq, hashes, nowMs) {
29
+ for (const hash of hashes) {
30
+ if (this.size === this.capacity)
31
+ this.evict();
32
+ const at = (this.start + this.size) % this.capacity;
33
+ this.seqs[at] = seq;
34
+ this.hashes[at] = hash;
35
+ this.size++;
36
+ this.latest.set(hash, seq);
37
+ }
38
+ this.last = seq;
39
+ this.prune(nowMs);
40
+ }
41
+ /** Mark history up to `seq` as seen with nothing to record (a revocation). */
42
+ advance(seq, nowMs) {
43
+ this.last = seq;
44
+ this.prune(nowMs);
45
+ }
46
+ /** `true` when the key may have changed after `watermark`. */
47
+ changedSince(hash, watermark) {
48
+ if (!this.known(watermark))
49
+ return true;
50
+ const seq = this.latest.get(hash);
51
+ return seq !== undefined && seq > watermark;
52
+ }
53
+ known(watermark) {
54
+ return watermark >= this.floor && watermark <= this.last;
55
+ }
56
+ /** Forget everything: what happened up to `head` is unknown. */
57
+ reset(head) {
58
+ this.latest.clear();
59
+ this.start = 0;
60
+ this.size = 0;
61
+ this.floor = head;
62
+ this.last = head;
63
+ }
64
+ /** Seqs count microseconds, so an entry's age is read off its seq. */
65
+ prune(nowMs) {
66
+ const oldest = (nowMs - this.maxAgeMs) * 1000;
67
+ while (this.size > 0 && (this.seqs[this.start] ?? 0) < oldest)
68
+ this.evict();
69
+ }
70
+ evict() {
71
+ const seq = this.seqs[this.start] ?? 0;
72
+ const hash = this.hashes[this.start] ?? 0;
73
+ if (this.latest.get(hash) === seq)
74
+ this.latest.delete(hash);
75
+ if (seq > this.floor)
76
+ this.floor = seq;
77
+ this.start = (this.start + 1) % this.capacity;
78
+ this.size--;
79
+ }
80
+ }
81
+ /**
82
+ * A 53-bit keyed hash (cyrb53 with per-process seeds). A collision only costs a spurious reload, and
83
+ * the seeds keep anyone from choosing keys that collide with another.
84
+ */
85
+ export function keyHasher() {
86
+ const seeds = crypto.getRandomValues(new Uint32Array(2));
87
+ const seed1 = seeds[0] ?? 0;
88
+ const seed2 = seeds[1] ?? 0;
89
+ return (key) => {
90
+ let h1 = 0xdeadbeef ^ seed1;
91
+ let h2 = 0x41c6ce57 ^ seed2;
92
+ for (let i = 0; i < key.length; i++) {
93
+ const ch = key.charCodeAt(i);
94
+ h1 = Math.imul(h1 ^ ch, 2654435761);
95
+ h2 = Math.imul(h2 ^ ch, 1597334677);
96
+ }
97
+ h1 = Math.imul(h1 ^ (h1 >>> 16), 2246822507);
98
+ h1 ^= Math.imul(h2 ^ (h2 >>> 13), 3266489909);
99
+ h2 = Math.imul(h2 ^ (h2 >>> 16), 2246822507);
100
+ h2 ^= Math.imul(h1 ^ (h1 >>> 13), 3266489909);
101
+ return 4294967296 * (2097151 & h2) + (h1 >>> 0);
102
+ };
103
+ }
104
+ //# sourceMappingURL=history.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"history.js","sourceRoot":"","sources":["../../src/live/history.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,MAAM,CAAC,MAAM,eAAe,GAAG,OAAO,CAAA;AACtC,MAAM,CAAC,MAAM,UAAU,GAAG,OAAO,CAAA;AAEjC,MAAM,OAAO,OAAO;IAaC;IACA;IAbF,IAAI,CAAc;IAClB,MAAM,CAAc;IACpB,MAAM,GAAG,IAAI,GAAG,EAAkB,CAAA;IAC3C,KAAK,GAAG,CAAC,CAAA;IACT,IAAI,GAAG,CAAC,CAAA;IAChB,qDAAqD;IACrD,KAAK,CAAQ;IACb,qCAAqC;IACrC,IAAI,CAAQ;IAEZ,YACE,IAAY,EACK,WAAW,eAAe,EAC1B,WAAW,UAAU;QADrB,aAAQ,GAAR,QAAQ,CAAkB;QAC1B,aAAQ,GAAR,QAAQ,CAAa;QAEtC,IAAI,CAAC,IAAI,GAAG,IAAI,YAAY,CAAC,QAAQ,CAAC,CAAA;QACtC,IAAI,CAAC,MAAM,GAAG,IAAI,YAAY,CAAC,QAAQ,CAAC,CAAA;QACxC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAA;QACjB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;IAClB,CAAC;IAED,MAAM,CAAC,GAAW,EAAE,MAAyB,EAAE,KAAa;QAC1D,KAAK,MAAM,IAAI,IAAI,MAAM,EAAE,CAAC;YAC1B,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,QAAQ;gBAAE,IAAI,CAAC,KAAK,EAAE,CAAA;YAC7C,MAAM,EAAE,GAAG,CAAC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAA;YACnD,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,GAAG,CAAA;YACnB,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,IAAI,CAAA;YACtB,IAAI,CAAC,IAAI,EAAE,CAAA;YACX,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;QAC5B,CAAC;QACD,IAAI,CAAC,IAAI,GAAG,GAAG,CAAA;QACf,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;IACnB,CAAC;IAED,8EAA8E;IAC9E,OAAO,CAAC,GAAW,EAAE,KAAa;QAChC,IAAI,CAAC,IAAI,GAAG,GAAG,CAAA;QACf,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;IACnB,CAAC;IAED,8DAA8D;IAC9D,YAAY,CAAC,IAAY,EAAE,SAAiB;QAC1C,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC;YAAE,OAAO,IAAI,CAAA;QACvC,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;QACjC,OAAO,GAAG,KAAK,SAAS,IAAI,GAAG,GAAG,SAAS,CAAA;IAC7C,CAAC;IAED,KAAK,CAAC,SAAiB;QACrB,OAAO,SAAS,IAAI,IAAI,CAAC,KAAK,IAAI,SAAS,IAAI,IAAI,CAAC,IAAI,CAAA;IAC1D,CAAC;IAED,gEAAgE;IAChE,KAAK,CAAC,IAAY;QAChB,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAA;QACnB,IAAI,CAAC,KAAK,GAAG,CAAC,CAAA;QACd,IAAI,CAAC,IAAI,GAAG,CAAC,CAAA;QACb,IAAI,CAAC,KAAK,GAAG,IAAI,CAAA;QACjB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;IAClB,CAAC;IAED,sEAAsE;IAC9D,KAAK,CAAC,KAAa;QACzB,MAAM,MAAM,GAAG,CAAC,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAA;QAC7C,OAAO,IAAI,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,MAAM;YAAE,IAAI,CAAC,KAAK,EAAE,CAAA;IAC7E,CAAC;IAEO,KAAK;QACX,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;QACtC,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;QACzC,IAAI,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,GAAG;YAAE,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;QAC3D,IAAI,GAAG,GAAG,IAAI,CAAC,KAAK;YAAE,IAAI,CAAC,KAAK,GAAG,GAAG,CAAA;QACtC,IAAI,CAAC,KAAK,GAAG,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAA;QAC7C,IAAI,CAAC,IAAI,EAAE,CAAA;IACb,CAAC;CACF;AAED;;;GAGG;AACH,MAAM,UAAU,SAAS;IACvB,MAAM,KAAK,GAAG,MAAM,CAAC,eAAe,CAAC,IAAI,WAAW,CAAC,CAAC,CAAC,CAAC,CAAA;IACxD,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAA;IAC3B,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAA;IAC3B,OAAO,CAAC,GAAG,EAAE,EAAE;QACb,IAAI,EAAE,GAAG,UAAU,GAAG,KAAK,CAAA;QAC3B,IAAI,EAAE,GAAG,UAAU,GAAG,KAAK,CAAA;QAC3B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACpC,MAAM,EAAE,GAAG,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAA;YAC5B,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,EAAE,UAAU,CAAC,CAAA;YACnC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,EAAE,UAAU,CAAC,CAAA;QACrC,CAAC;QACD,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,UAAU,CAAC,CAAA;QAC5C,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,UAAU,CAAC,CAAA;QAC7C,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,UAAU,CAAC,CAAA;QAC5C,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,UAAU,CAAC,CAAA;QAC7C,OAAO,UAAU,GAAG,CAAC,OAAO,GAAG,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC,CAAC,CAAA;IACjD,CAAC,CAAA;AACH,CAAC"}
@@ -0,0 +1,46 @@
1
+ /**
2
+ * The private calls between a Workers isolate and the app's live hub, over the Durable Object binding.
3
+ * Nothing on the internet reaches a Durable Object except through the app's own isolate, which
4
+ * forwards only the socket handshake; the paths below are refused on every public route.
5
+ */
6
+ import type { LiveBusInput } from "./bus.js";
7
+ import { type Keyring } from "./keyring.js";
8
+ import type { RevocationSnapshot } from "./revocations.js";
9
+ /** A Durable Object namespace, as far as the runtime uses one (no Cloudflare types dependency). */
10
+ export interface LiveHubNamespace {
11
+ idFromName(name: string): unknown;
12
+ get(id: unknown): {
13
+ fetch(request: Request): Promise<Response>;
14
+ };
15
+ }
16
+ export declare const HUB_APPEND_PATH = "/__nifra_live_hub/append";
17
+ export declare const HUB_AUTHORITY_PATH = "/__nifra_live_hub/authority";
18
+ /** The host the calls name; a Durable Object stub ignores it. */
19
+ export declare const HUB_ORIGIN = "https://nifra-live-hub";
20
+ /** One hub per app. */
21
+ export declare const hubName: (appId: string) => string;
22
+ /**
23
+ * What an isolate's live runtime and its hub must agree on, sent with every call: the grant lifetime
24
+ * sets how long the hub keeps a revocation, so a hub with a shorter one would forget revocations of
25
+ * grants still valid. The secret is named by its public id only.
26
+ */
27
+ export declare const HUB_CONFIG_HEADER = "x-nifra-live-config";
28
+ export declare const hubConfigOf: (ring: Keyring) => string;
29
+ /** The caller's newest secret must be one the hub holds; the hub may already hold a newer one. */
30
+ export declare function hubConfigMatches(ring: Keyring, header: string | null): boolean;
31
+ /** Keys one append carries; a larger publish goes out as several. */
32
+ export declare const MAX_APPEND_KEYS: number;
33
+ export declare const MAX_SUBJECT_CHARS = 1024;
34
+ export interface AuthorityRequest {
35
+ readonly subjects: readonly string[];
36
+ readonly keys: readonly string[];
37
+ }
38
+ export interface AuthorityReply extends RevocationSnapshot {
39
+ /** The hub's seq: a load's watermark. */
40
+ readonly seq: number;
41
+ }
42
+ export declare function parseAppend(value: unknown): LiveBusInput | undefined;
43
+ export declare function parseAuthorityRequest(value: unknown): AuthorityRequest | undefined;
44
+ export declare function parseAuthorityReply(value: unknown): AuthorityReply | undefined;
45
+ export declare function parseSeq(value: unknown): number | undefined;
46
+ //# sourceMappingURL=hub-protocol.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hub-protocol.d.ts","sourceRoot":"","sources":["../../src/live/hub-protocol.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,UAAU,CAAA;AAC5C,OAAO,EAAe,KAAK,OAAO,EAAsB,MAAM,cAAc,CAAA;AAC5E,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAA;AAE1D,mGAAmG;AACnG,MAAM,WAAW,gBAAgB;IAC/B,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAA;IACjC,GAAG,CAAC,EAAE,EAAE,OAAO,GAAG;QAAE,KAAK,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAA;KAAE,CAAA;CACjE;AAED,eAAO,MAAM,eAAe,6BAA6B,CAAA;AACzD,eAAO,MAAM,kBAAkB,gCAAgC,CAAA;AAC/D,iEAAiE;AACjE,eAAO,MAAM,UAAU,2BAA2B,CAAA;AAElD,uBAAuB;AACvB,eAAO,MAAM,OAAO,GAAI,OAAO,MAAM,KAAG,MAA+B,CAAA;AAEvE;;;;GAIG;AACH,eAAO,MAAM,iBAAiB,wBAAwB,CAAA;AAEtD,eAAO,MAAM,WAAW,GAAI,MAAM,OAAO,KAAG,MAC+B,CAAA;AAE3E,kGAAkG;AAClG,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,CAS9E;AAKD,qEAAqE;AACrE,eAAO,MAAM,eAAe,QAAW,CAAA;AACvC,eAAO,MAAM,iBAAiB,OAAO,CAAA;AAErC,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAA;IACpC,QAAQ,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,CAAA;CACjC;AAED,MAAM,WAAW,cAAe,SAAQ,kBAAkB;IACxD,yCAAyC;IACzC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;CACrB;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,OAAO,GAAG,YAAY,GAAG,SAAS,CAiBpE;AAED,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,OAAO,GAAG,gBAAgB,GAAG,SAAS,CAgBlF;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,OAAO,GAAG,cAAc,GAAG,SAAS,CAS9E;AAED,wBAAgB,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAE3D"}
@@ -0,0 +1,108 @@
1
+ import { KEY_PATTERN, MAX_KEYS_PER_FRAME } from "./keyring.js";
2
+ export const HUB_APPEND_PATH = "/__nifra_live_hub/append";
3
+ export const HUB_AUTHORITY_PATH = "/__nifra_live_hub/authority";
4
+ /** The host the calls name; a Durable Object stub ignores it. */
5
+ export const HUB_ORIGIN = "https://nifra-live-hub";
6
+ /** One hub per app. */
7
+ export const hubName = (appId) => `nifra-live:${appId}`;
8
+ /**
9
+ * What an isolate's live runtime and its hub must agree on, sent with every call: the grant lifetime
10
+ * sets how long the hub keeps a revocation, so a hub with a shorter one would forget revocations of
11
+ * grants still valid. The secret is named by its public id only.
12
+ */
13
+ export const HUB_CONFIG_HEADER = "x-nifra-live-config";
14
+ export const hubConfigOf = (ring) => `${ring.ttl} ${ring.secretIds[0] ?? 0} ${encodeURIComponent(ring.appId)}`;
15
+ /** The caller's newest secret must be one the hub holds; the hub may already hold a newer one. */
16
+ export function hubConfigMatches(ring, header) {
17
+ const parts = header?.split(" ");
18
+ if (parts?.length !== 3)
19
+ return false;
20
+ const [ttl, id, appId] = parts;
21
+ return (ttl === String(ring.ttl) &&
22
+ ring.secretIds.some((own) => String(own) === id) &&
23
+ appId === encodeURIComponent(ring.appId));
24
+ }
25
+ /** Grants a load presents, at most. */
26
+ const MAX_SUBJECTS = 3;
27
+ const MAX_KEYS = MAX_SUBJECTS * MAX_KEYS_PER_FRAME;
28
+ /** Keys one append carries; a larger publish goes out as several. */
29
+ export const MAX_APPEND_KEYS = MAX_KEYS;
30
+ export const MAX_SUBJECT_CHARS = 1024;
31
+ export function parseAppend(value) {
32
+ if (!isRecord(value))
33
+ return undefined;
34
+ if (value.type === "change") {
35
+ const keys = value.keys;
36
+ if (!Array.isArray(keys) || keys.length === 0 || keys.length > MAX_APPEND_KEYS)
37
+ return undefined;
38
+ const list = [];
39
+ for (const key of keys) {
40
+ if (typeof key !== "string" || !KEY_PATTERN.test(key))
41
+ return undefined;
42
+ list.push(key);
43
+ }
44
+ return { type: "change", keys: list };
45
+ }
46
+ if (value.type !== "revoke")
47
+ return undefined;
48
+ const { sub, key } = value;
49
+ if (sub !== null && !subjectLike(sub))
50
+ return undefined;
51
+ if (key !== null && (typeof key !== "string" || !KEY_PATTERN.test(key)))
52
+ return undefined;
53
+ return { type: "revoke", sub, key };
54
+ }
55
+ export function parseAuthorityRequest(value) {
56
+ if (!isRecord(value))
57
+ return undefined;
58
+ const { subjects, keys } = value;
59
+ if (!Array.isArray(subjects) || subjects.length > MAX_SUBJECTS)
60
+ return undefined;
61
+ if (!Array.isArray(keys) || keys.length > MAX_KEYS)
62
+ return undefined;
63
+ const subjectList = [];
64
+ for (const sub of subjects) {
65
+ if (!subjectLike(sub))
66
+ return undefined;
67
+ subjectList.push(sub);
68
+ }
69
+ const keyList = [];
70
+ for (const key of keys) {
71
+ if (typeof key !== "string" || !KEY_PATTERN.test(key))
72
+ return undefined;
73
+ keyList.push(key);
74
+ }
75
+ return { subjects: subjectList, keys: keyList };
76
+ }
77
+ export function parseAuthorityReply(value) {
78
+ if (!isRecord(value))
79
+ return undefined;
80
+ const { seq, floor } = value;
81
+ if (!seqLike(seq) || !seqLike(floor))
82
+ return undefined;
83
+ const subjects = stampsOf(value.subjects);
84
+ const keys = stampsOf(value.keys);
85
+ const subjectKeys = stampsOf(value.subjectKeys);
86
+ if (subjects === undefined || keys === undefined || subjectKeys === undefined)
87
+ return undefined;
88
+ return { seq, floor, subjects, keys, subjectKeys };
89
+ }
90
+ export function parseSeq(value) {
91
+ return isRecord(value) && seqLike(value.seq) && value.seq > 0 ? value.seq : undefined;
92
+ }
93
+ /** Built from entries, so a subject named `__proto__` keeps its stamp. */
94
+ function stampsOf(value) {
95
+ if (!isRecord(value))
96
+ return undefined;
97
+ const out = [];
98
+ for (const [name, seq] of Object.entries(value)) {
99
+ if (!seqLike(seq))
100
+ return undefined;
101
+ out.push([name, seq]);
102
+ }
103
+ return Object.fromEntries(out);
104
+ }
105
+ const seqLike = (value) => typeof value === "number" && Number.isSafeInteger(value) && value >= 0;
106
+ const subjectLike = (value) => typeof value === "string" && value.length <= MAX_SUBJECT_CHARS;
107
+ const isRecord = (value) => typeof value === "object" && value !== null && !Array.isArray(value);
108
+ //# sourceMappingURL=hub-protocol.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hub-protocol.js","sourceRoot":"","sources":["../../src/live/hub-protocol.ts"],"names":[],"mappings":"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"}