@askrjs/askr 0.0.52 → 0.0.54

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 (386) hide show
  1. package/README.md +5 -1
  2. package/dist/{runtime/scheduler.js → access-Bg4RJNC8.js} +182 -9
  3. package/dist/actions/index.d.ts +2 -0
  4. package/dist/actions/index.js +103 -0
  5. package/dist/{common/attr-names.js → attr-names-CjhzmHOn.js} +1 -1
  6. package/dist/benchmark.d.ts +6 -2
  7. package/dist/benchmark.js +63 -11
  8. package/dist/boot/index.d.ts +61 -2
  9. package/dist/boot/index.js +1 -203
  10. package/dist/boot-2ZR3MtO0.js +647 -0
  11. package/dist/cleanup-DScKZG2i.js +487 -0
  12. package/dist/component-internal-D9PLuFUc.js +614 -0
  13. package/dist/component-lifecycle-C7lnU9Bt.js +359 -0
  14. package/dist/{runtime/component-scope.js → component-scope-CC3cojX9.js} +8 -1
  15. package/dist/component-scope-CvPba6O6.d.ts +12 -0
  16. package/dist/components/index.d.ts +17 -2
  17. package/dist/components/index.js +39 -1
  18. package/dist/compose-ref-Cc_YkUpM.js +92 -0
  19. package/dist/{foundations/utilities/compose-ref.d.ts → compose-ref-Cizq72-x.d.ts} +1 -1
  20. package/dist/control/index.d.ts +1 -3
  21. package/dist/control/index.js +1 -3
  22. package/dist/control-BI4RMD2z.d.ts +437 -0
  23. package/dist/control-Bf4Wkdvv.d.ts +9 -0
  24. package/dist/{common/control.js → control-DhFRTIoE.js} +1 -1
  25. package/dist/control-mXROCjL3.js +165 -0
  26. package/dist/data/index.d.ts +2 -6
  27. package/dist/data/index.js +4 -5
  28. package/dist/data-B9dauyDn.js +559 -0
  29. package/dist/{data/data-runtime.js → data-runtime-SJ1BSUvk.js} +32 -31
  30. package/dist/deferred-DklLG4qM.js +386 -0
  31. package/dist/{runtime/effect.js → effect-BwnIvLah.js} +4 -4
  32. package/dist/fastlane-Dw8SOBr9.js +343 -0
  33. package/dist/for-internal-CSz8Unkq.js +1563 -0
  34. package/dist/foundations/icon/index.d.ts +68 -2
  35. package/dist/foundations/icon/index.js +85 -1
  36. package/dist/foundations/index.d.ts +2 -5
  37. package/dist/foundations/index.js +2 -5
  38. package/dist/foundations/interactions/index.d.ts +264 -6
  39. package/dist/foundations/interactions/index.js +1 -6
  40. package/dist/foundations/state/index.d.ts +32 -1
  41. package/dist/foundations/state/index.js +78 -1
  42. package/dist/foundations/structures/index.d.ts +2 -7
  43. package/dist/foundations/structures/index.js +2 -7
  44. package/dist/foundations/utilities/index.d.ts +2 -6
  45. package/dist/foundations/utilities/index.js +2 -5
  46. package/dist/fx/index.d.ts +190 -3
  47. package/dist/fx/index.js +454 -4
  48. package/dist/index-B1LNotpU.d.ts +239 -0
  49. package/dist/index-Bki2rqcr.d.ts +233 -0
  50. package/dist/index-BnU0NPwM.d.ts +101 -0
  51. package/dist/index-C8iW3xCt.d.ts +44 -0
  52. package/dist/index-DwxdIA-t.d.ts +48 -0
  53. package/dist/{runtime/runtime.d.ts → index-Zb31mCiU.d.ts} +31 -8
  54. package/dist/index.d.ts +8 -13
  55. package/dist/index.js +150 -15
  56. package/dist/interactions-w7gQN4ha.js +280 -0
  57. package/dist/{data/invalidation-listeners.js → invalidation-listeners-Des3AHYs.js} +1 -1
  58. package/dist/{common/props.d.ts → jsx-CP0gmYwJ.d.ts} +17 -5
  59. package/dist/{common/jsx.js → jsx-CUpRxrLH.js} +1 -1
  60. package/dist/jsx-dev-runtime.d.ts +2 -4
  61. package/dist/jsx-dev-runtime.js +7 -5
  62. package/dist/jsx-runtime-92bV2hSa.d.ts +34 -0
  63. package/dist/jsx-runtime-BVVgDSdq.d.ts +1 -0
  64. package/dist/jsx-runtime.d.ts +2 -35
  65. package/dist/jsx-runtime.js +11 -5
  66. package/dist/{runtime/lifecycle-operations.js → lifecycle-operations-CdRjdsHo.js} +4 -5
  67. package/dist/navigate-BVDCzOuB.d.ts +34 -0
  68. package/dist/navigate-D17eVQyI.js +1449 -0
  69. package/dist/{runtime/portal.js → portal-C47xkwXj.js} +71 -41
  70. package/dist/query-registry-CQIT4mXr.js +73 -0
  71. package/dist/{common/render-context.js → render-context-Clw3rFiO.js} +14 -6
  72. package/dist/renderer-DrLRAD5y.js +6266 -0
  73. package/dist/{runtime/resource-operation.js → resource-operation-BNY29MVH.js} +118 -15
  74. package/dist/resources/index.d.ts +42 -3
  75. package/dist/resources/index.js +3 -4
  76. package/dist/{common/route-activity.js → route-activity-CNJfpwx-.js} +1 -1
  77. package/dist/route-matching-vJpvLVbX.js +515 -0
  78. package/dist/router/index.d.ts +166 -14
  79. package/dist/router/index.js +150 -12
  80. package/dist/{common/router.d.ts → router-DCfwLBr-.d.ts} +72 -28
  81. package/dist/{common/router-internal.js → router-internal-BC0w1_xk.js} +1 -1
  82. package/dist/{runtime/scheduler.d.ts → scheduler-CmLO4Dfm.d.ts} +1 -3
  83. package/dist/{runtime/selector.js → selector-DafVYzV4.js} +34 -11
  84. package/dist/{runtime/snapshot-source.js → snapshot-source-BB42xgwb.js} +1 -1
  85. package/dist/ssg/index.d.ts +252 -4
  86. package/dist/ssg/index.js +857 -1
  87. package/dist/ssr/index.d.ts +225 -8
  88. package/dist/ssr/index.js +3 -6
  89. package/dist/{common/ssr.js → ssr-CbQO5xd3.js} +1 -1
  90. package/dist/ssr-DEARZxJ5.js +1413 -0
  91. package/dist/{runtime/state.js → state-DPl8lffD.js} +3 -5
  92. package/dist/structures-DUB3HchX.js +221 -0
  93. package/dist/testing/index.d.ts +3 -2
  94. package/dist/testing/index.js +2 -5
  95. package/dist/{jsx/types.d.ts → types-DnQVG4ZY.d.ts} +2 -5
  96. package/dist/{foundations/utilities/use-id.js → utilities-C_CGX4Dz.js} +1 -1
  97. package/dist/{ssr/verify-hydration.js → verify-hydration-BWwu-mWu.js} +2 -2
  98. package/dist/{common/vnode.js → vnode-CGMJYPMB.js} +2 -2
  99. package/package.json +12 -7
  100. package/dist/bench/components/benchmark-row.d.ts +0 -20
  101. package/dist/bench/components/benchmark-row.js +0 -40
  102. package/dist/bench/components/benchmark-table.js +0 -23
  103. package/dist/bin/askr-ssg.d.ts +0 -27
  104. package/dist/bin/askr-ssg.js +0 -186
  105. package/dist/boot/hydration.js +0 -139
  106. package/dist/boot/root-lifecycle.d.ts +0 -18
  107. package/dist/boot/root-lifecycle.js +0 -209
  108. package/dist/boot/route-startup.js +0 -54
  109. package/dist/boot/types.d.ts +0 -61
  110. package/dist/common/component.d.ts +0 -18
  111. package/dist/common/control.d.ts +0 -12
  112. package/dist/common/dom-range.d.ts +0 -13
  113. package/dist/common/env.js +0 -41
  114. package/dist/common/error-boundary.d.ts +0 -15
  115. package/dist/common/invariant.js +0 -15
  116. package/dist/common/jsx.d.ts +0 -22
  117. package/dist/common/logger.js +0 -34
  118. package/dist/common/promise.js +0 -6
  119. package/dist/common/ssr-errors.d.ts +0 -10
  120. package/dist/common/ssr-errors.js +0 -14
  121. package/dist/common/ssr.d.ts +0 -41
  122. package/dist/common/vnode.d.ts +0 -21
  123. package/dist/components/error-boundary.d.ts +0 -14
  124. package/dist/components/error-boundary.js +0 -41
  125. package/dist/components/link.d.ts +0 -68
  126. package/dist/components/link.js +0 -74
  127. package/dist/control/case.d.ts +0 -18
  128. package/dist/control/case.js +0 -68
  129. package/dist/control/for.d.ts +0 -23
  130. package/dist/control/for.js +0 -61
  131. package/dist/control/shared.d.ts +0 -8
  132. package/dist/control/shared.js +0 -18
  133. package/dist/control/show.d.ts +0 -14
  134. package/dist/control/show.js +0 -32
  135. package/dist/data/data-runtime.d.ts +0 -27
  136. package/dist/data/invalidation.d.ts +0 -8
  137. package/dist/data/invalidation.js +0 -25
  138. package/dist/data/mutation-cell.d.ts +0 -27
  139. package/dist/data/mutation-cell.js +0 -133
  140. package/dist/data/query-cell.d.ts +0 -47
  141. package/dist/data/query-cell.js +0 -324
  142. package/dist/data/query-key.js +0 -40
  143. package/dist/data/shared.js +0 -20
  144. package/dist/data/testing.js +0 -2
  145. package/dist/data/types.d.ts +0 -160
  146. package/dist/foundations/icon/icon.d.ts +0 -52
  147. package/dist/foundations/icon/icon.js +0 -86
  148. package/dist/foundations/icon/icon.types.d.ts +0 -21
  149. package/dist/foundations/interactions/dismissable.d.ts +0 -71
  150. package/dist/foundations/interactions/dismissable.js +0 -24
  151. package/dist/foundations/interactions/focusable.d.ts +0 -21
  152. package/dist/foundations/interactions/focusable.js +0 -16
  153. package/dist/foundations/interactions/hoverable.d.ts +0 -25
  154. package/dist/foundations/interactions/hoverable.js +0 -13
  155. package/dist/foundations/interactions/interaction-policy.d.ts +0 -49
  156. package/dist/foundations/interactions/interaction-policy.js +0 -120
  157. package/dist/foundations/interactions/pressable.d.ts +0 -60
  158. package/dist/foundations/interactions/pressable.js +0 -49
  159. package/dist/foundations/interactions/roving-focus.d.ts +0 -51
  160. package/dist/foundations/interactions/roving-focus.js +0 -69
  161. package/dist/foundations/state/controllable.d.ts +0 -32
  162. package/dist/foundations/state/controllable.js +0 -80
  163. package/dist/foundations/structures/collection.d.ts +0 -51
  164. package/dist/foundations/structures/collection.js +0 -49
  165. package/dist/foundations/structures/layer.d.ts +0 -80
  166. package/dist/foundations/structures/layer.js +0 -79
  167. package/dist/foundations/structures/layout.d.ts +0 -32
  168. package/dist/foundations/structures/layout.js +0 -11
  169. package/dist/foundations/structures/portal.d.ts +0 -2
  170. package/dist/foundations/structures/portal.js +0 -3
  171. package/dist/foundations/structures/presence.d.ts +0 -36
  172. package/dist/foundations/structures/presence.js +0 -37
  173. package/dist/foundations/structures/slot.d.ts +0 -34
  174. package/dist/foundations/structures/slot.js +0 -39
  175. package/dist/foundations/utilities/aria.d.ts +0 -15
  176. package/dist/foundations/utilities/aria.js +0 -15
  177. package/dist/foundations/utilities/compose-handlers.d.ts +0 -36
  178. package/dist/foundations/utilities/compose-handlers.js +0 -18
  179. package/dist/foundations/utilities/compose-ref.js +0 -16
  180. package/dist/foundations/utilities/event-types.d.ts +0 -19
  181. package/dist/foundations/utilities/merge-props.d.ts +0 -4
  182. package/dist/foundations/utilities/merge-props.js +0 -47
  183. package/dist/foundations/utilities/use-id.d.ts +0 -31
  184. package/dist/fx/fx.d.ts +0 -32
  185. package/dist/fx/fx.js +0 -211
  186. package/dist/fx/noop.js +0 -7
  187. package/dist/fx/timing.d.ts +0 -158
  188. package/dist/fx/timing.js +0 -241
  189. package/dist/jsx/index.d.ts +0 -2
  190. package/dist/jsx/index.js +0 -4
  191. package/dist/jsx/types.js +0 -2
  192. package/dist/jsx/utils.d.ts +0 -4
  193. package/dist/jsx/utils.js +0 -17
  194. package/dist/jsx-runtime2.d.ts +0 -3
  195. package/dist/jsx-runtime2.js +0 -4
  196. package/dist/renderer/attributes.js +0 -254
  197. package/dist/renderer/boundaries.js +0 -142
  198. package/dist/renderer/boundary-materialization.js +0 -72
  199. package/dist/renderer/boundary-range-adoption.js +0 -76
  200. package/dist/renderer/boundary-range-sync.js +0 -101
  201. package/dist/renderer/boundary-state.js +0 -50
  202. package/dist/renderer/child-shape.js +0 -83
  203. package/dist/renderer/children-fastpath.js +0 -149
  204. package/dist/renderer/children.js +0 -158
  205. package/dist/renderer/cleanup.js +0 -267
  206. package/dist/renderer/component-host-cleanup.js +0 -143
  207. package/dist/renderer/component-host-instances.js +0 -116
  208. package/dist/renderer/component-host-replacement.js +0 -105
  209. package/dist/renderer/component-host-results.js +0 -138
  210. package/dist/renderer/component-host.js +0 -172
  211. package/dist/renderer/dom-host.js +0 -11
  212. package/dist/renderer/dom-internal.js +0 -243
  213. package/dist/renderer/dom-range.js +0 -161
  214. package/dist/renderer/dom.js +0 -11
  215. package/dist/renderer/element-children.js +0 -359
  216. package/dist/renderer/env.js +0 -2
  217. package/dist/renderer/error-boundary-dom.js +0 -86
  218. package/dist/renderer/evaluate-dom-range.js +0 -84
  219. package/dist/renderer/evaluate-reconcile.js +0 -257
  220. package/dist/renderer/evaluate.js +0 -95
  221. package/dist/renderer/fastpath.js +0 -142
  222. package/dist/renderer/for-commit-dom-map.js +0 -71
  223. package/dist/renderer/for-commit-removal.js +0 -27
  224. package/dist/renderer/for-commit-reorder.js +0 -87
  225. package/dist/renderer/for-commit.js +0 -442
  226. package/dist/renderer/hydration-boundaries.js +0 -60
  227. package/dist/renderer/hydration-listener-transaction.js +0 -49
  228. package/dist/renderer/index.js +0 -39
  229. package/dist/renderer/intrinsic-blueprint-analysis.js +0 -202
  230. package/dist/renderer/intrinsic-blueprint-bindings.js +0 -152
  231. package/dist/renderer/intrinsic-blueprint-materialization.js +0 -100
  232. package/dist/renderer/intrinsic-blueprint.js +0 -30
  233. package/dist/renderer/intrinsic-hydration-adoption.js +0 -66
  234. package/dist/renderer/keyed-children.js +0 -26
  235. package/dist/renderer/keyed.js +0 -167
  236. package/dist/renderer/namespaces.js +0 -21
  237. package/dist/renderer/prop-bindings.js +0 -315
  238. package/dist/renderer/reactive-child-dom.js +0 -139
  239. package/dist/renderer/reactive-child-sources.js +0 -182
  240. package/dist/renderer/reactive-children.js +0 -303
  241. package/dist/renderer/reconcile-commit.js +0 -36
  242. package/dist/renderer/reconcile-fastpaths.js +0 -100
  243. package/dist/renderer/reconcile-resolution.js +0 -163
  244. package/dist/renderer/reconcile.js +0 -37
  245. package/dist/renderer/retained-element-rollback.js +0 -288
  246. package/dist/renderer/stable-patch.js +0 -80
  247. package/dist/renderer/static-reuse.js +0 -94
  248. package/dist/renderer/types.js +0 -2
  249. package/dist/renderer/utils.js +0 -265
  250. package/dist/router/access.js +0 -34
  251. package/dist/router/activity.d.ts +0 -9
  252. package/dist/router/activity.js +0 -85
  253. package/dist/router/authoring.d.ts +0 -21
  254. package/dist/router/authoring.js +0 -196
  255. package/dist/router/internal-types.d.ts +0 -30
  256. package/dist/router/lazy.d.ts +0 -18
  257. package/dist/router/lazy.js +0 -50
  258. package/dist/router/manifest.d.ts +0 -9
  259. package/dist/router/manifest.js +0 -47
  260. package/dist/router/match.js +0 -120
  261. package/dist/router/navigate.d.ts +0 -10
  262. package/dist/router/navigate.js +0 -73
  263. package/dist/router/navigation-registry.d.ts +0 -31
  264. package/dist/router/navigation-registry.js +0 -103
  265. package/dist/router/navigation-scroll.d.ts +0 -13
  266. package/dist/router/navigation-scroll.js +0 -91
  267. package/dist/router/navigation-targets.d.ts +0 -30
  268. package/dist/router/navigation-targets.js +0 -634
  269. package/dist/router/policy.d.ts +0 -27
  270. package/dist/router/policy.js +0 -130
  271. package/dist/router/rendering.d.ts +0 -9
  272. package/dist/router/rendering.js +0 -47
  273. package/dist/router/resolution.d.ts +0 -3
  274. package/dist/router/resolution.js +0 -84
  275. package/dist/router/route-context.js +0 -77
  276. package/dist/router/route-matching.d.ts +0 -19
  277. package/dist/router/route-matching.js +0 -173
  278. package/dist/router/route-query.d.ts +0 -16
  279. package/dist/router/route-query.js +0 -45
  280. package/dist/router/route.d.ts +0 -8
  281. package/dist/router/route.js +0 -10
  282. package/dist/router/store.d.ts +0 -49
  283. package/dist/router/store.js +0 -169
  284. package/dist/router/testing.js +0 -4
  285. package/dist/runtime/access.d.ts +0 -19
  286. package/dist/runtime/access.js +0 -43
  287. package/dist/runtime/child-scope.d.ts +0 -41
  288. package/dist/runtime/child-scope.js +0 -134
  289. package/dist/runtime/component-cleanup.d.ts +0 -15
  290. package/dist/runtime/component-cleanup.js +0 -68
  291. package/dist/runtime/component-commit.js +0 -167
  292. package/dist/runtime/component-facade.d.ts +0 -5
  293. package/dist/runtime/component-facade.js +0 -6
  294. package/dist/runtime/component-internal.d.ts +0 -105
  295. package/dist/runtime/component-internal.js +0 -237
  296. package/dist/runtime/component-lifecycle.d.ts +0 -10
  297. package/dist/runtime/component-lifecycle.js +0 -33
  298. package/dist/runtime/component-scope.d.ts +0 -54
  299. package/dist/runtime/component.d.ts +0 -5
  300. package/dist/runtime/component.js +0 -6
  301. package/dist/runtime/context.d.ts +0 -72
  302. package/dist/runtime/context.js +0 -236
  303. package/dist/runtime/control.d.ts +0 -62
  304. package/dist/runtime/control.js +0 -239
  305. package/dist/runtime/derive.d.ts +0 -16
  306. package/dist/runtime/derive.js +0 -140
  307. package/dist/runtime/dev-namespace.d.ts +0 -30
  308. package/dist/runtime/dev-namespace.js +0 -64
  309. package/dist/runtime/effect.d.ts +0 -35
  310. package/dist/runtime/error-boundary.d.ts +0 -4
  311. package/dist/runtime/error-boundary.js +0 -29
  312. package/dist/runtime/events.d.ts +0 -58
  313. package/dist/runtime/events.js +0 -201
  314. package/dist/runtime/execution-model.d.ts +0 -6
  315. package/dist/runtime/execution-model.js +0 -13
  316. package/dist/runtime/fastlane.d.ts +0 -33
  317. package/dist/runtime/fastlane.js +0 -173
  318. package/dist/runtime/for-bench.d.ts +0 -40
  319. package/dist/runtime/for-bench.js +0 -13
  320. package/dist/runtime/for-internal.d.ts +0 -106
  321. package/dist/runtime/for-internal.js +0 -285
  322. package/dist/runtime/for-reconcile.d.ts +0 -7
  323. package/dist/runtime/for-reconcile.js +0 -442
  324. package/dist/runtime/for-scopes.d.ts +0 -26
  325. package/dist/runtime/for-scopes.js +0 -280
  326. package/dist/runtime/for-signals.d.ts +0 -39
  327. package/dist/runtime/for-signals.js +0 -213
  328. package/dist/runtime/for-types.d.ts +0 -8
  329. package/dist/runtime/for.d.ts +0 -4
  330. package/dist/runtime/for.js +0 -5
  331. package/dist/runtime/index.d.ts +0 -24
  332. package/dist/runtime/index.js +0 -33
  333. package/dist/runtime/lifecycle-batch.d.ts +0 -59
  334. package/dist/runtime/lifecycle-batch.js +0 -178
  335. package/dist/runtime/lifecycle-operation-settlement.d.ts +0 -5
  336. package/dist/runtime/lifecycle-operation-settlement.js +0 -51
  337. package/dist/runtime/lifecycle-operations.d.ts +0 -30
  338. package/dist/runtime/operations.d.ts +0 -3
  339. package/dist/runtime/operations.js +0 -3
  340. package/dist/runtime/perf-metrics.d.ts +0 -27
  341. package/dist/runtime/perf-metrics.js +0 -6
  342. package/dist/runtime/portal.d.ts +0 -21
  343. package/dist/runtime/readable.d.ts +0 -34
  344. package/dist/runtime/readable.js +0 -183
  345. package/dist/runtime/resource-cell.js +0 -112
  346. package/dist/runtime/resource-operation.d.ts +0 -12
  347. package/dist/runtime/runtime.js +0 -57
  348. package/dist/runtime/selector-store.js +0 -22
  349. package/dist/runtime/selector.d.ts +0 -10
  350. package/dist/runtime/snapshot-source.d.ts +0 -9
  351. package/dist/runtime/state.d.ts +0 -54
  352. package/dist/ssg/batch-render.js +0 -101
  353. package/dist/ssg/create-static-gen.d.ts +0 -66
  354. package/dist/ssg/create-static-gen.js +0 -250
  355. package/dist/ssg/generate-metadata.js +0 -92
  356. package/dist/ssg/generation-plan.js +0 -68
  357. package/dist/ssg/incremental-manifest.js +0 -54
  358. package/dist/ssg/resolve-ssg-data.js +0 -103
  359. package/dist/ssg/route-utils.js +0 -22
  360. package/dist/ssg/static-routes.js +0 -100
  361. package/dist/ssg/types.d.ts +0 -188
  362. package/dist/ssg/write-static-files.js +0 -77
  363. package/dist/ssr/attrs.js +0 -92
  364. package/dist/ssr/boundaries.js +0 -124
  365. package/dist/ssr/component-runtime.js +0 -85
  366. package/dist/ssr/context.d.ts +0 -49
  367. package/dist/ssr/context.js +0 -89
  368. package/dist/ssr/errors.d.ts +0 -9
  369. package/dist/ssr/errors.js +0 -12
  370. package/dist/ssr/escape.js +0 -191
  371. package/dist/ssr/hydration-data.js +0 -8
  372. package/dist/ssr/hydration-verify.d.ts +0 -11
  373. package/dist/ssr/hydration-verify.js +0 -171
  374. package/dist/ssr/index-internal.d.ts +0 -14
  375. package/dist/ssr/index-internal.js +0 -17
  376. package/dist/ssr/render-keys.js +0 -14
  377. package/dist/ssr/render-resolved.d.ts +0 -19
  378. package/dist/ssr/render-resolved.js +0 -33
  379. package/dist/ssr/render-sync.d.ts +0 -20
  380. package/dist/ssr/render-sync.js +0 -283
  381. package/dist/ssr/route-policy-resolution.js +0 -76
  382. package/dist/ssr/route-render.d.ts +0 -76
  383. package/dist/ssr/route-render.js +0 -118
  384. package/dist/ssr/sink.d.ts +0 -25
  385. package/dist/ssr/sink.js +0 -84
  386. package/dist/ssr/types.d.ts +0 -22
@@ -1,59 +0,0 @@
1
- import { Props } from "../common/props.js";
2
- import { ContextFrame } from "./context.js";
3
- import { ComponentInstance } from "./component-internal.js";
4
- import { ReadableSource } from "./readable.js";
5
-
6
- //#region src/runtime/lifecycle-batch.d.ts
7
- type LifecycleOperation = () => void | (() => void) | PromiseLike<void | (() => void)>;
8
- type LifecycleCommitBatchEntry = {
9
- instance: ComponentInstance;
10
- wasFirstMount: boolean;
11
- };
12
- type ReadSubscriptionCommit = {
13
- instance: ComponentInstance;
14
- token: number;
15
- pendingReadSources: Set<ReadableSource<unknown>> | undefined;
16
- pendingReadSourceVersions: Map<ReadableSource<unknown>, number> | undefined;
17
- };
18
- type InlineRenderSnapshot = {
19
- instance: ComponentInstance;
20
- props: Props;
21
- ownerFrame: ContextFrame | null;
22
- portalScope: object | null;
23
- parentInstance: ComponentInstance | null;
24
- isRoot: boolean | undefined;
25
- };
26
- type LifecycleTransaction = {
27
- key: object;
28
- commit(): void;
29
- rollback(): void;
30
- merge?(parentTransaction: LifecycleTransaction): void;
31
- };
32
- type LifecycleRollback = () => void;
33
- type LifecycleTransactionEntry = LifecycleTransaction | LifecycleRollback;
34
- type LifecycleCommitBatch = {
35
- parent: LifecycleCommitBatch | null;
36
- entries: LifecycleCommitBatchEntry[];
37
- entriesByInstance: Map<ComponentInstance, LifecycleCommitBatchEntry>;
38
- readCommits: ReadSubscriptionCommit[];
39
- readCommitsByInstance: Map<ComponentInstance, ReadSubscriptionCommit>;
40
- renderSnapshots: InlineRenderSnapshot[];
41
- renderSnapshotsByInstance: Map<ComponentInstance, InlineRenderSnapshot>;
42
- transactions: LifecycleTransactionEntry[];
43
- transactionsByKey: Map<object, LifecycleTransaction>;
44
- retainedElementSnapshots: Map<Element, unknown>;
45
- active: boolean;
46
- };
47
- /** @internal Drain commit-time cleanup errors for transaction owners such as the router. */
48
- declare function drainLifecycleCommitErrors(): unknown[];
49
- declare function beginLifecycleCommitBatch(): LifecycleCommitBatch;
50
- declare function getCurrentLifecycleCommitBatch(): LifecycleCommitBatch | null;
51
- declare function registerLifecycleTransaction(key: object, commit: () => void, rollback: () => void, merge?: (parentTransaction: LifecycleTransaction) => void): boolean;
52
- declare function registerLifecycleRollback(rollback: LifecycleRollback): boolean;
53
- declare function enqueueLifecycleCommitForInstance(instance: ComponentInstance, wasFirstMount: boolean): boolean;
54
- declare function captureInlineRenderSnapshot(instance: ComponentInstance): void;
55
- declare function finalizeInlineReadSubscriptions(instance: ComponentInstance, token: number, pendingReadSources: Set<ReadableSource<unknown>> | undefined, pendingReadSourceVersions: Map<ReadableSource<unknown>, number> | undefined): void;
56
- declare function flushLifecycleCommitBatch(batch: LifecycleCommitBatch): void;
57
- declare function discardLifecycleCommitBatch(batch: LifecycleCommitBatch): void;
58
- //#endregion
59
- export { LifecycleCommitBatch, LifecycleOperation, LifecycleTransaction };
@@ -1,178 +0,0 @@
1
- import { logger } from "../common/logger.js";
2
- import { finalizeReadableSubscriptionsFromSnapshot } from "./readable.js";
3
- import { discardCommitOperations, executeCommittedLifecycleOperations } from "./lifecycle-operation-settlement.js";
4
- //#region src/runtime/lifecycle-batch.ts
5
- let currentLifecycleCommitBatch = null;
6
- const pendingLifecycleCommitErrors = [];
7
- /** @internal Drain commit-time cleanup errors for transaction owners such as the router. */
8
- function drainLifecycleCommitErrors() {
9
- if (pendingLifecycleCommitErrors.length === 0) return [];
10
- return pendingLifecycleCommitErrors.splice(0);
11
- }
12
- function beginLifecycleCommitBatch() {
13
- const batch = {
14
- parent: currentLifecycleCommitBatch,
15
- entries: [],
16
- entriesByInstance: /* @__PURE__ */ new Map(),
17
- readCommits: [],
18
- readCommitsByInstance: /* @__PURE__ */ new Map(),
19
- renderSnapshots: [],
20
- renderSnapshotsByInstance: /* @__PURE__ */ new Map(),
21
- transactions: [],
22
- transactionsByKey: /* @__PURE__ */ new Map(),
23
- retainedElementSnapshots: /* @__PURE__ */ new Map(),
24
- active: true
25
- };
26
- currentLifecycleCommitBatch = batch;
27
- return batch;
28
- }
29
- function getCurrentLifecycleCommitBatch() {
30
- return currentLifecycleCommitBatch?.active ? currentLifecycleCommitBatch : null;
31
- }
32
- function enqueueLifecycleTransaction(batch, transaction) {
33
- if (batch.transactionsByKey.has(transaction.key)) return;
34
- batch.transactionsByKey.set(transaction.key, transaction);
35
- batch.transactions.push(transaction);
36
- }
37
- function registerLifecycleTransaction(key, commit, rollback, merge) {
38
- if (!currentLifecycleCommitBatch?.active) return false;
39
- enqueueLifecycleTransaction(currentLifecycleCommitBatch, {
40
- key,
41
- commit,
42
- rollback,
43
- merge
44
- });
45
- return true;
46
- }
47
- function registerLifecycleRollback(rollback) {
48
- if (!currentLifecycleCommitBatch?.active) return false;
49
- currentLifecycleCommitBatch.transactions.push(rollback);
50
- return true;
51
- }
52
- function closeLifecycleCommitBatch(batch) {
53
- if (!batch.active) return false;
54
- batch.active = false;
55
- currentLifecycleCommitBatch = batch.parent;
56
- return true;
57
- }
58
- function enqueueLifecycleCommit(batch, instance, wasFirstMount) {
59
- const existing = batch.entriesByInstance.get(instance);
60
- if (existing) {
61
- existing.wasFirstMount = existing.wasFirstMount || wasFirstMount;
62
- return;
63
- }
64
- const entry = {
65
- instance,
66
- wasFirstMount
67
- };
68
- batch.entriesByInstance.set(instance, entry);
69
- batch.entries.push(entry);
70
- }
71
- function enqueueLifecycleCommitForInstance(instance, wasFirstMount) {
72
- if (!currentLifecycleCommitBatch?.active) return false;
73
- enqueueLifecycleCommit(currentLifecycleCommitBatch, instance, wasFirstMount);
74
- return true;
75
- }
76
- function enqueueReadSubscriptionCommit(batch, instance, token, pendingReadSources, pendingReadSourceVersions) {
77
- const existing = batch.readCommitsByInstance.get(instance);
78
- const commit = existing ?? {
79
- instance,
80
- token,
81
- pendingReadSources,
82
- pendingReadSourceVersions
83
- };
84
- commit.token = token;
85
- commit.pendingReadSources = pendingReadSources ? new Set(pendingReadSources) : void 0;
86
- commit.pendingReadSourceVersions = pendingReadSourceVersions ? new Map(pendingReadSourceVersions) : void 0;
87
- if (!existing) {
88
- batch.readCommitsByInstance.set(instance, commit);
89
- batch.readCommits.push(commit);
90
- }
91
- }
92
- function enqueueInlineRenderSnapshot(batch, snapshot) {
93
- if (batch.renderSnapshotsByInstance.has(snapshot.instance)) return;
94
- batch.renderSnapshotsByInstance.set(snapshot.instance, snapshot);
95
- batch.renderSnapshots.push(snapshot);
96
- }
97
- function captureInlineRenderSnapshot(instance) {
98
- if (!currentLifecycleCommitBatch?.active) return;
99
- enqueueInlineRenderSnapshot(currentLifecycleCommitBatch, {
100
- instance,
101
- props: instance.props,
102
- ownerFrame: instance.ownerFrame,
103
- portalScope: instance.portalScope,
104
- parentInstance: instance.parentInstance,
105
- isRoot: instance.isRoot
106
- });
107
- }
108
- function finalizeInlineReadSubscriptions(instance, token, pendingReadSources, pendingReadSourceVersions) {
109
- if ((!pendingReadSources || pendingReadSources.size === 0) && (!instance._lastReadSources || instance._lastReadSources.size === 0)) return;
110
- if (currentLifecycleCommitBatch?.active) {
111
- enqueueReadSubscriptionCommit(currentLifecycleCommitBatch, instance, token, pendingReadSources, pendingReadSourceVersions);
112
- return;
113
- }
114
- finalizeReadableSubscriptionsFromSnapshot(instance, token, pendingReadSources, pendingReadSourceVersions);
115
- }
116
- function flushLifecycleCommitBatch(batch) {
117
- if (!closeLifecycleCommitBatch(batch)) return;
118
- if (batch.parent?.active) {
119
- for (const [element, snapshot] of batch.retainedElementSnapshots) if (!batch.parent.retainedElementSnapshots.has(element)) batch.parent.retainedElementSnapshots.set(element, snapshot);
120
- for (const entry of batch.transactions) if (typeof entry === "function") batch.parent.transactions.push(entry);
121
- else {
122
- const existing = batch.parent.transactionsByKey.get(entry.key);
123
- if (existing && entry.merge) entry.merge(existing);
124
- else enqueueLifecycleTransaction(batch.parent, entry);
125
- }
126
- for (const snapshot of batch.renderSnapshots) enqueueInlineRenderSnapshot(batch.parent, snapshot);
127
- for (const commit of batch.readCommits) enqueueReadSubscriptionCommit(batch.parent, commit.instance, commit.token, commit.pendingReadSources, commit.pendingReadSourceVersions);
128
- for (const entry of batch.entries) enqueueLifecycleCommit(batch.parent, entry.instance, entry.wasFirstMount);
129
- return;
130
- }
131
- const commitErrors = [];
132
- for (const commit of batch.readCommits) try {
133
- finalizeReadableSubscriptionsFromSnapshot(commit.instance, commit.token, commit.pendingReadSources, commit.pendingReadSourceVersions);
134
- } catch (error) {
135
- commitErrors.push(error);
136
- }
137
- for (const transaction of batch.transactions) {
138
- if (typeof transaction === "function") continue;
139
- try {
140
- transaction.commit();
141
- } catch (error) {
142
- commitErrors.push(error);
143
- }
144
- }
145
- for (const entry of batch.entries) try {
146
- executeCommittedLifecycleOperations(entry.instance, entry.wasFirstMount);
147
- } catch (error) {
148
- commitErrors.push(error);
149
- }
150
- if (commitErrors.length > 0) {
151
- pendingLifecycleCommitErrors.push(...commitErrors);
152
- logger.error("[Askr] committed lifecycle work failed:", new AggregateError(commitErrors, "Committed lifecycle work failed"));
153
- }
154
- }
155
- function discardLifecycleCommitBatch(batch) {
156
- if (!closeLifecycleCommitBatch(batch)) return;
157
- for (let index = batch.transactions.length - 1; index >= 0; index -= 1) try {
158
- const transaction = batch.transactions[index];
159
- if (typeof transaction === "function") transaction();
160
- else transaction.rollback();
161
- } catch (error) {
162
- logger.error("[Askr] transaction rollback failed:", error);
163
- }
164
- for (let index = batch.renderSnapshots.length - 1; index >= 0; index -= 1) {
165
- const snapshot = batch.renderSnapshots[index];
166
- snapshot.instance.props = snapshot.props;
167
- snapshot.instance.ownerFrame = snapshot.ownerFrame;
168
- snapshot.instance.portalScope = snapshot.portalScope;
169
- snapshot.instance.parentInstance = snapshot.parentInstance;
170
- snapshot.instance.isRoot = snapshot.isRoot;
171
- }
172
- for (const entry of batch.entries) {
173
- if (entry.wasFirstMount) entry.instance.mountOperations = [];
174
- discardCommitOperations(entry.instance);
175
- }
176
- }
177
- //#endregion
178
- export { beginLifecycleCommitBatch, captureInlineRenderSnapshot, discardLifecycleCommitBatch, drainLifecycleCommitErrors, enqueueLifecycleCommitForInstance, finalizeInlineReadSubscriptions, flushLifecycleCommitBatch, getCurrentLifecycleCommitBatch, registerLifecycleRollback, registerLifecycleTransaction };
@@ -1,5 +0,0 @@
1
- import { ComponentInstance } from "./component-internal.js";
2
-
3
- //#region src/runtime/lifecycle-operation-settlement.d.ts
4
- declare function discardCommitOperations(instance: ComponentInstance): void;
5
- declare function executeCommittedLifecycleOperations(instance: ComponentInstance, wasFirstMount: boolean): void;
@@ -1,51 +0,0 @@
1
- import { logger } from "../common/logger.js";
2
- import { isPromiseLike } from "../common/promise.js";
3
- //#region src/runtime/lifecycle-operation-settlement.ts
4
- function settleLifecycleOperationResult(instance, lifecycleGeneration, result) {
5
- if (isPromiseLike(result)) Promise.resolve(result).then((cleanup) => {
6
- if (typeof cleanup === "function") {
7
- if (instance.lifecycleGeneration === lifecycleGeneration && instance.mounted) {
8
- (instance.cleanupFns ??= []).push(cleanup);
9
- return;
10
- }
11
- try {
12
- cleanup();
13
- } catch (err) {
14
- logger.error("[Askr] async mount cleanup failed:", err);
15
- }
16
- }
17
- }, (err) => {
18
- logger.error("[Askr] async mount operation failed:", err);
19
- });
20
- else if (typeof result === "function") (instance.cleanupFns ??= []).push(result);
21
- }
22
- function executeOperations(instance, operations) {
23
- if (operations.length === 0) return [];
24
- const lifecycleGeneration = instance.lifecycleGeneration;
25
- const errors = [];
26
- for (const operation of operations) try {
27
- settleLifecycleOperationResult(instance, lifecycleGeneration, operation());
28
- } catch (error) {
29
- errors.push(error);
30
- }
31
- return errors;
32
- }
33
- function discardCommitOperations(instance) {
34
- instance.commitOperations = [];
35
- }
36
- function executeCommittedLifecycleOperations(instance, wasFirstMount) {
37
- const errors = [];
38
- if (wasFirstMount && (instance.mountOperations?.length ?? 0) > 0) {
39
- const operations = instance.mountOperations;
40
- instance.mountOperations = [];
41
- errors.push(...executeOperations(instance, operations));
42
- }
43
- if ((instance.commitOperations?.length ?? 0) > 0) {
44
- const operations = instance.commitOperations;
45
- instance.commitOperations = [];
46
- errors.push(...executeOperations(instance, operations));
47
- }
48
- if (errors.length > 0) throw new AggregateError(errors, `Committed lifecycle operations failed for ${instance.id}`);
49
- }
50
- //#endregion
51
- export { discardCommitOperations, executeCommittedLifecycleOperations };
@@ -1,30 +0,0 @@
1
- //#region src/runtime/lifecycle-operations.d.ts
2
- type ActivityPredicate = () => boolean;
3
- interface TimerOptions {
4
- when?: ActivityPredicate | readonly ActivityPredicate[];
5
- }
6
- declare function routeActive(pathOrPaths: string | readonly string[]): ActivityPredicate;
7
- declare function documentVisible(): ActivityPredicate;
8
- declare function windowFocused(): ActivityPredicate;
9
- type ListenerOptions = boolean | AddEventListenerOptions | undefined;
10
- declare function on(target: EventTarget, event: string, handler: EventListener, options?: ListenerOptions): void;
11
- declare function timer(intervalMs: number, fn: () => void, options?: TimerOptions): void;
12
- declare function stream<T>(_source: unknown, _options?: Record<string, unknown>): {
13
- value: T | null;
14
- pending: boolean;
15
- error: Error | null;
16
- };
17
- declare function task(fn: () => void | (() => void) | PromiseLike<void | (() => void)>): void;
18
- /**
19
- * Capture the result of a synchronous expression at call time and return a
20
- * thunk that returns the captured value later. This is a low-level helper for
21
- * cases where async continuations need to observe a snapshot of values at the
22
- * moment scheduling occurred.
23
- *
24
- * Usage (public API):
25
- * const snapshot = capture(() => someState());
26
- * Promise.resolve().then(() => { use(snapshot()); });
27
- */
28
- declare function capture<T>(fn: () => T): () => T;
29
- //#endregion
30
- export { ActivityPredicate, TimerOptions, capture, documentVisible, on, routeActive, stream, task, timer, windowFocused };
@@ -1,3 +0,0 @@
1
- import { ResourceResult, resource } from "./resource-operation.js";
2
- import { ActivityPredicate, TimerOptions, capture, documentVisible, on, routeActive, stream, task, timer, windowFocused } from "./lifecycle-operations.js";
3
- export { type ActivityPredicate, type ResourceResult, type TimerOptions, capture, documentVisible, on, resource, routeActive, stream, task, timer, windowFocused };
@@ -1,3 +0,0 @@
1
- import { resource } from "./resource-operation.js";
2
- import { capture, documentVisible, on, routeActive, stream, task, timer, windowFocused } from "./lifecycle-operations.js";
3
- export { capture, documentVisible, on, resource, routeActive, stream, task, timer, windowFocused };
@@ -1,27 +0,0 @@
1
- //#region src/runtime/perf-metrics.d.ts
2
- type PerfMetrics = {
3
- selectorInvalidations: number;
4
- selectorCandidateReads: number;
5
- reactivePropReevaluations: number;
6
- skippedDomPropWrites: number;
7
- classListPatchOps: number;
8
- delegatedAncestorHops: number;
9
- hydrationBoundaryActivations: number;
10
- ssrTagCacheHits: number;
11
- lastSchedulerTaskCountPerFlush: number;
12
- maxSchedulerTaskCountPerFlush: number;
13
- schedulerFlushCount: number;
14
- schedulerTaskExecutions: number;
15
- ssgWorkerCount: number;
16
- ssgRenderTimeMs: number;
17
- ssgWorkerRenderTimeMs: number;
18
- ssgWriteTimeMs: number;
19
- };
20
- type IncrementPerfMetric = (key: 'selectorInvalidations' | 'selectorCandidateReads' | 'reactivePropReevaluations' | 'skippedDomPropWrites' | 'classListPatchOps' | 'delegatedAncestorHops' | 'hydrationBoundaryActivations' | 'ssrTagCacheHits' | 'ssgWorkerCount', delta?: number) => void;
21
- type AddPerfDuration = (key: 'ssgRenderTimeMs' | 'ssgWorkerRenderTimeMs' | 'ssgWriteTimeMs', deltaMs: number) => void;
22
- declare const getPerfMetricsStore: () => PerfMetrics | null;
23
- declare const incrementPerfMetric: IncrementPerfMetric;
24
- declare const addPerfDuration: AddPerfDuration;
25
- declare const recordSchedulerFlushTaskCount: (taskCount: number) => void;
26
- declare const getPerfMetrics: () => Readonly<PerfMetrics> | undefined;
27
- declare const resetPerfMetrics: () => void;
@@ -1,6 +0,0 @@
1
- const getPerfMetricsStore = () => null;
2
- const incrementPerfMetric = () => {};
3
- const addPerfDuration = () => {};
4
- const recordSchedulerFlushTaskCount = () => {};
5
- //#endregion
6
- export { addPerfDuration, getPerfMetricsStore, incrementPerfMetric, recordSchedulerFlushTaskCount };
@@ -1,21 +0,0 @@
1
- import { ComponentInstance } from "./component-internal.js";
2
- import { RenderableChild } from "../common/vnode.js";
3
-
4
- //#region src/runtime/portal.d.ts
5
- interface Portal<T extends RenderableChild = RenderableChild> {
6
- (): unknown;
7
- render(props: {
8
- children?: T;
9
- }): unknown;
10
- }
11
- interface PortalProps {
12
- children?: RenderableChild;
13
- }
14
- declare function definePortal<T extends RenderableChild = RenderableChild>(): Portal<T>;
15
- declare function _resetDefaultPortal(): void;
16
- declare function disposeDefaultPortalScope(scope: object | null): void;
17
- declare function clearDefaultPortalForInstance(instance: ComponentInstance): void;
18
- declare const DefaultPortal: Portal<RenderableChild>;
19
- declare function Portal(props: PortalProps): null;
20
- //#endregion
21
- export { DefaultPortal, Portal, PortalProps, definePortal };
@@ -1,34 +0,0 @@
1
- import { ComponentInstance } from "./component-internal.js";
2
- //#region src/runtime/readable.d.ts
3
- interface DerivedSubscriber {
4
- _markDirty(): void;
5
- _pendingDependencySources?: Set<ReadableSource<unknown>>;
6
- }
7
- interface ReadableSource<T = unknown> {
8
- (): T;
9
- _hasBeenRead?: boolean;
10
- _hasEverBeenRead?: boolean;
11
- _readers?: Map<ComponentInstance, number>;
12
- _derivedSubscribers?: Set<DerivedSubscriber>;
13
- _version?: number;
14
- }
15
- interface FineGrainedReadCollector {
16
- _pendingFineGrainedReadSource: ReadableSource<unknown> | null;
17
- _pendingFineGrainedReadSources: ReadableSource<unknown> | ReadableSource<unknown>[] | Set<ReadableSource<unknown>> | null;
18
- }
19
- declare function markReadableUsage(source: unknown): void;
20
- declare function recordReadableRead(source: ReadableSource<unknown>): void;
21
- declare function withFineGrainedReadTracking<T>(collector: FineGrainedReadCollector, fn: () => T): T;
22
- /** @internal Whether the active grouped effect coalesces item-property reads. */
23
- declare function shouldCoalesceFineGrainedItemReads(): boolean;
24
- declare function finalizeReadableSubscriptions(instance: ComponentInstance): void;
25
- declare function finalizeReadableSubscriptionsFromSnapshot(instance: ComponentInstance, token: number | undefined, newSet: Set<ReadableSource<unknown>> | undefined, pendingReadSourceVersions?: Map<ReadableSource<unknown>, number> | undefined): void;
26
- declare function cleanupReadableSubscriptions(instance: ComponentInstance): void;
27
- declare function withDerivedReadTracking<T>(subscriber: DerivedSubscriber, fn: () => T): T;
28
- declare function syncDerivedDependencySubscriptions(subscriber: DerivedSubscriber, prevSources: Set<ReadableSource<unknown>>, nextSources: Set<ReadableSource<unknown>>): void;
29
- declare function clearDerivedDependencySubscriptions(subscriber: DerivedSubscriber, sources: Set<ReadableSource<unknown>>): void;
30
- declare function markReadableDerivedSubscribersDirty(source: ReadableSource<unknown>): void;
31
- declare function markReactivePropsDirtySource(source: ReadableSource<unknown>): void;
32
- declare function notifyReadableReaders(source: ReadableSource<unknown>, skipInstance?: ComponentInstance | null, skipOwnedBy?: ComponentInstance | null): boolean;
33
- //#endregion
34
- export { DerivedSubscriber, FineGrainedReadCollector, ReadableSource };
@@ -1,183 +0,0 @@
1
- import { enqueueRuntimeTask, markRuntimeReactivePropsDirtySource } from "./access.js";
2
- import { getCurrentInstance } from "./component-scope.js";
3
- import "./component.js";
4
- function markReadableUsage(source) {
5
- if (source && typeof source === "function" && ("_hasBeenRead" in source || "_readers" in source)) {
6
- const readable = source;
7
- readable._hasBeenRead = true;
8
- }
9
- }
10
- let currentDerivedSubscriber = null;
11
- let suppressComponentReadTrackingDepth = 0;
12
- let currentFineGrainedReadCollector = null;
13
- function scheduleReadableInstanceUpdate(instance) {
14
- if (instance.hasPendingUpdate) return;
15
- instance.hasPendingUpdate = true;
16
- const task = instance._pendingFlushTask;
17
- if (task) {
18
- enqueueRuntimeTask(task);
19
- return;
20
- }
21
- enqueueRuntimeTask(() => {
22
- instance.hasPendingUpdate = false;
23
- instance.notifyUpdate?.();
24
- });
25
- }
26
- function recordReadableRead(source) {
27
- if (currentFineGrainedReadCollector) {
28
- const first = currentFineGrainedReadCollector._pendingFineGrainedReadSource;
29
- if (!first) currentFineGrainedReadCollector._pendingFineGrainedReadSource = source;
30
- else if (first !== source) {
31
- let sources = currentFineGrainedReadCollector._pendingFineGrainedReadSources;
32
- if (!sources) currentFineGrainedReadCollector._pendingFineGrainedReadSources = source;
33
- else if (Array.isArray(sources)) {
34
- if (!sources.includes(source)) sources.push(source);
35
- } else if (sources instanceof Set) sources.add(source);
36
- else if (sources !== source) currentFineGrainedReadCollector._pendingFineGrainedReadSources = [
37
- first,
38
- sources,
39
- source
40
- ];
41
- }
42
- return;
43
- }
44
- if (currentDerivedSubscriber) {
45
- if (!currentDerivedSubscriber._pendingDependencySources) currentDerivedSubscriber._pendingDependencySources = /* @__PURE__ */ new Set();
46
- currentDerivedSubscriber._pendingDependencySources.add(source);
47
- }
48
- if (suppressComponentReadTrackingDepth > 0) return;
49
- const inst = getCurrentInstance();
50
- if (!inst || inst._currentRenderToken === void 0) return;
51
- if (!inst._pendingReadSources) inst._pendingReadSources = /* @__PURE__ */ new Set();
52
- inst._pendingReadSources.add(source);
53
- const sourceVersion = source._version ?? 0;
54
- let pendingVersions = inst._pendingReadSourceVersions;
55
- if (!pendingVersions) {
56
- pendingVersions = /* @__PURE__ */ new Map();
57
- inst._pendingReadSourceVersions = pendingVersions;
58
- }
59
- pendingVersions.set(source, sourceVersion);
60
- }
61
- function withFineGrainedReadTracking(collector, fn) {
62
- const previousCollector = currentFineGrainedReadCollector;
63
- currentFineGrainedReadCollector = collector;
64
- try {
65
- return fn.call(collector);
66
- } finally {
67
- currentFineGrainedReadCollector = previousCollector;
68
- }
69
- }
70
- /** @internal Whether the active grouped effect coalesces item-property reads. */
71
- function shouldCoalesceFineGrainedItemReads() {
72
- return (currentFineGrainedReadCollector?._owner)?._coalesceForItemReads === true;
73
- }
74
- function finalizeReadableSubscriptions(instance) {
75
- const newSet = instance._pendingReadSources;
76
- const token = instance._currentRenderToken;
77
- const pendingVersions = instance._pendingReadSourceVersions;
78
- finalizeReadableSubscriptionsFromSnapshot(instance, token, newSet, pendingVersions);
79
- instance._pendingReadSources = void 0;
80
- instance._currentRenderToken = void 0;
81
- instance._pendingReadSourceVersions = void 0;
82
- }
83
- function finalizeReadableSubscriptionsFromSnapshot(instance, token, newSet, pendingReadSourceVersions = instance._pendingReadSourceVersions) {
84
- if (token === void 0) return;
85
- const oldSet = instance._lastReadSources;
86
- const pendingVersions = pendingReadSourceVersions;
87
- let needsFollowUpUpdate = false;
88
- if (oldSet) {
89
- for (const source of oldSet) if (!newSet?.has(source)) source._readers?.delete(instance);
90
- }
91
- instance.lastRenderToken = token;
92
- if (newSet) for (const source of newSet) {
93
- if (pendingVersions && (!oldSet || oldSet.has(source))) {
94
- const sourceVersion = source._version ?? 0;
95
- const readVersion = pendingVersions.get(source);
96
- if (readVersion !== void 0 && sourceVersion !== readVersion) needsFollowUpUpdate = true;
97
- }
98
- let readers = source._readers;
99
- if (!readers) {
100
- readers = /* @__PURE__ */ new Map();
101
- source._readers = readers;
102
- }
103
- readers.set(instance, instance.lastRenderToken ?? 0);
104
- }
105
- instance._lastReadSources = newSet?.size ? newSet : void 0;
106
- if (needsFollowUpUpdate) scheduleReadableInstanceUpdate(instance);
107
- }
108
- function cleanupReadableSubscriptions(instance) {
109
- const sources = instance._lastReadSources;
110
- if (!sources || sources.size === 0) {
111
- instance._pendingReadSources = void 0;
112
- instance._pendingReadSourceVersions = void 0;
113
- return;
114
- }
115
- for (const source of sources) source._readers?.delete(instance);
116
- instance._lastReadSources = void 0;
117
- instance._pendingReadSources = void 0;
118
- instance._pendingReadSourceVersions = void 0;
119
- }
120
- function withDerivedReadTracking(subscriber, fn) {
121
- const prevDerivedSubscriber = currentDerivedSubscriber;
122
- currentDerivedSubscriber = subscriber;
123
- suppressComponentReadTrackingDepth += 1;
124
- try {
125
- return fn();
126
- } finally {
127
- suppressComponentReadTrackingDepth -= 1;
128
- currentDerivedSubscriber = prevDerivedSubscriber;
129
- }
130
- }
131
- function syncDerivedDependencySubscriptions(subscriber, prevSources, nextSources) {
132
- for (const source of prevSources) if (!nextSources.has(source)) source._derivedSubscribers?.delete(subscriber);
133
- for (const source of nextSources) {
134
- let subscribers = source._derivedSubscribers;
135
- if (!subscribers) {
136
- subscribers = /* @__PURE__ */ new Set();
137
- source._derivedSubscribers = subscribers;
138
- }
139
- subscribers.add(subscriber);
140
- }
141
- }
142
- function clearDerivedDependencySubscriptions(subscriber, sources) {
143
- for (const source of sources) source._derivedSubscribers?.delete(subscriber);
144
- sources.clear();
145
- }
146
- function markReadableDerivedSubscribersDirty(source) {
147
- const subscribers = source._derivedSubscribers;
148
- if (!subscribers || subscribers.size === 0) return;
149
- for (const subscriber of subscribers) subscriber._markDirty();
150
- }
151
- function markReactivePropsDirtySource(source) {
152
- try {
153
- markRuntimeReactivePropsDirtySource(source);
154
- } catch {}
155
- }
156
- function notifyReadableReaders(source, skipInstance, skipOwnedBy) {
157
- source._version = (source._version ?? 0) + 1;
158
- const readers = source._readers;
159
- let didScheduleUpdate = false;
160
- if (!readers || readers.size === 0) return false;
161
- for (const [instance, token] of readers) {
162
- if (skipInstance && instance === skipInstance) continue;
163
- if (skipOwnedBy) {
164
- let owner = instance;
165
- let isOwned = false;
166
- while (owner) {
167
- if (owner === skipOwnedBy) {
168
- isOwned = true;
169
- break;
170
- }
171
- owner = owner.parentInstance;
172
- }
173
- if (isOwned) continue;
174
- }
175
- if (instance.lastRenderToken !== token) continue;
176
- if (instance.hasPendingUpdate) continue;
177
- scheduleReadableInstanceUpdate(instance);
178
- didScheduleUpdate = true;
179
- }
180
- return didScheduleUpdate;
181
- }
182
- //#endregion
183
- export { cleanupReadableSubscriptions, clearDerivedDependencySubscriptions, finalizeReadableSubscriptions, finalizeReadableSubscriptionsFromSnapshot, markReactivePropsDirtySource, markReadableDerivedSubscribersDirty, markReadableUsage, notifyReadableReaders, recordReadableRead, shouldCoalesceFineGrainedItemReads, syncDerivedDependencySubscriptions, withDerivedReadTracking, withFineGrainedReadTracking };