@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
@@ -0,0 +1,559 @@
1
+ import { n as enqueueRuntimeTask, v as logger } from "./access-Bg4RJNC8.js";
2
+ import { f as notifyReadableReaders, l as markReactivePropsDirtySource, p as recordReadableRead, u as markReadableDerivedSubscribersDirty } from "./fastlane-Dw8SOBr9.js";
3
+ import { f as getCurrentComponentInstance, i as claimHookIndex } from "./component-scope-CC3cojX9.js";
4
+ import { n as getActiveRenderContext } from "./render-context-Clw3rFiO.js";
5
+ import { c as windowFocused, i as routeActive, n as documentVisible, s as timer } from "./lifecycle-operations-CdRjdsHo.js";
6
+ import { a as getMutationSlotStore, c as resolveDataRuntimeState, i as getDefaultDataRuntime, n as ensureMutationCleanup, o as getQuerySlotStore, r as ensureQueryCleanup, s as invalidateQueriesForRuntime } from "./data-runtime-SJ1BSUvk.js";
7
+ //#region src/data/query-key.ts
8
+ function serializeQueryKeyNumber(part) {
9
+ if (Number.isNaN(part)) return "NaN";
10
+ if (Object.is(part, -0)) return "-0";
11
+ if (part === Infinity) return "Infinity";
12
+ if (part === -Infinity) return "-Infinity";
13
+ return String(part);
14
+ }
15
+ function serializeQueryKeyPart(part) {
16
+ if (typeof part === "symbol") throw new Error("[Askr] queryScope() key parts cannot be symbols.");
17
+ if (part === null) return "null";
18
+ if (part === void 0) return "undefined";
19
+ switch (typeof part) {
20
+ case "string": return `s=${encodeURIComponent(part)}`;
21
+ case "number": return `n=${serializeQueryKeyNumber(part)}`;
22
+ case "boolean": return `b=${part ? "1" : "0"}`;
23
+ case "object":
24
+ if (Array.isArray(part)) return `a[${part.map((item) => serializeQueryKeyPart(item)).join(",")}]`;
25
+ const objectPart = part;
26
+ return `o{${Object.keys(objectPart).sort().map((key) => `${encodeURIComponent(key)}=${serializeQueryKeyPart(objectPart[key])}`).join(",")}}`;
27
+ default: return String(part);
28
+ }
29
+ }
30
+ function createQueryScope(namespace, invalidate) {
31
+ if (typeof namespace !== "string" || namespace.trim().length === 0) throw new Error("[Askr] queryScope() requires a non-empty namespace string.");
32
+ const build = (parts) => [namespace, ...parts].map(serializeQueryKeyPart).join(":") + ":";
33
+ return {
34
+ key(...parts) {
35
+ return build(parts);
36
+ },
37
+ prefix(...parts) {
38
+ return build(parts);
39
+ },
40
+ invalidate(parts, options) {
41
+ invalidate(build(parts), options);
42
+ }
43
+ };
44
+ }
45
+ //#endregion
46
+ //#region src/data/invalidation.ts
47
+ function invalidate(prefix, options) {
48
+ invalidateQueriesForRuntime(resolveDataRuntimeState(options?.runtime), prefix, options?.markPendingWrite ?? false);
49
+ }
50
+ function queryScope(namespace) {
51
+ return createQueryScope(namespace, invalidate);
52
+ }
53
+ const INVALIDATE_ON_INTERVAL_OPTIONS_ERROR = "[Askr] invalidateOnInterval() requires an options object with a finite numeric intervalMs.";
54
+ function invalidateOnInterval(prefix, options) {
55
+ if (!options || typeof options !== "object" || typeof options.intervalMs !== "number" || !Number.isFinite(options.intervalMs)) throw new Error(INVALIDATE_ON_INTERVAL_OPTIONS_ERROR);
56
+ const runtimeState = resolveDataRuntimeState(options.runtime);
57
+ const when = [];
58
+ if (options.activeOn) when.push(routeActive(options.activeOn));
59
+ if (options.visibleOnly) when.push(documentVisible());
60
+ if (options.focusedOnly) when.push(windowFocused());
61
+ timer(options.intervalMs, () => {
62
+ invalidateQueriesForRuntime(runtimeState, prefix, options.markPendingWrite ?? false);
63
+ }, when.length > 0 ? { when } : void 0);
64
+ }
65
+ //#endregion
66
+ //#region src/data/shared.ts
67
+ function createReadableSource() {
68
+ return (() => void 0);
69
+ }
70
+ function notifySource(source) {
71
+ markReadableDerivedSubscribersDirty(source);
72
+ markReactivePropsDirtySource(source);
73
+ notifyReadableReaders(source);
74
+ }
75
+ function isAbortError(error, signal) {
76
+ return signal.aborted || error instanceof Error && error.name === "AbortError" || typeof DOMException !== "undefined" && error instanceof DOMException && error.name === "AbortError";
77
+ }
78
+ function normalizeAsyncDataError(error, fallbackMessage) {
79
+ if (error instanceof Error) return error;
80
+ return new Error(error == null ? fallbackMessage : String(error));
81
+ }
82
+ //#endregion
83
+ //#region src/data/mutation-cell.ts
84
+ var MutationCell = class {
85
+ constructor(options, runtimeState) {
86
+ this.source = createReadableSource();
87
+ this.controller = null;
88
+ this.generation = 0;
89
+ this.state = {
90
+ status: "idle",
91
+ error: null,
92
+ result: null
93
+ };
94
+ this.runtimeState = runtimeState;
95
+ this.action = options.action;
96
+ this.affects = options.affects;
97
+ this.afterSuccess = options.afterSuccess;
98
+ }
99
+ setOptions(options) {
100
+ this.action = options.action;
101
+ this.affects = options.affects;
102
+ this.afterSuccess = options.afterSuccess;
103
+ }
104
+ get status() {
105
+ recordReadableRead(this.source);
106
+ return this.state.status;
107
+ }
108
+ get pending() {
109
+ recordReadableRead(this.source);
110
+ return this.state.status === "pending";
111
+ }
112
+ get error() {
113
+ recordReadableRead(this.source);
114
+ return this.state.error;
115
+ }
116
+ get result() {
117
+ recordReadableRead(this.source);
118
+ return this.state.result;
119
+ }
120
+ setState(next) {
121
+ this.state = {
122
+ ...this.state,
123
+ ...next
124
+ };
125
+ notifySource(this.source);
126
+ }
127
+ async execute(input) {
128
+ const action = this.action;
129
+ const affects = this.affects;
130
+ const afterSuccess = this.afterSuccess;
131
+ this.generation += 1;
132
+ const generation = this.generation;
133
+ this.controller?.abort();
134
+ const controller = new AbortController();
135
+ this.controller = controller;
136
+ this.setState({
137
+ status: "pending",
138
+ error: null,
139
+ result: null
140
+ });
141
+ let result;
142
+ try {
143
+ result = await action(input, { signal: controller.signal });
144
+ } catch (error) {
145
+ if (this.generation !== generation || this.controller !== controller) throw error;
146
+ if (isAbortError(error, controller.signal)) {
147
+ this.setState({
148
+ status: "idle",
149
+ error: null
150
+ });
151
+ throw error;
152
+ }
153
+ this.setState({
154
+ status: "error",
155
+ error: normalizeAsyncDataError(error, "Unknown mutation error")
156
+ });
157
+ throw error;
158
+ }
159
+ if (this.generation !== generation || this.controller !== controller) return result;
160
+ this.setState({
161
+ status: "success",
162
+ error: null,
163
+ result
164
+ });
165
+ if (afterSuccess === "invalidate") {
166
+ const prefixes = affects?.(input, result) ?? [];
167
+ for (const prefix of new Set(prefixes)) invalidateQueriesForRuntime(this.runtimeState, prefix, true);
168
+ }
169
+ return result;
170
+ }
171
+ abort() {
172
+ if (this.state.status !== "pending") return;
173
+ this.generation += 1;
174
+ this.controller?.abort();
175
+ this.controller = null;
176
+ this.setState({
177
+ status: "idle",
178
+ error: null,
179
+ result: null
180
+ });
181
+ }
182
+ reset() {
183
+ this.generation += 1;
184
+ this.controller?.abort();
185
+ this.controller = null;
186
+ this.setState({
187
+ status: "idle",
188
+ error: null,
189
+ result: null
190
+ });
191
+ }
192
+ };
193
+ function createMutation(options) {
194
+ const instance = getCurrentComponentInstance();
195
+ const runtimeState = resolveDataRuntimeState(options.runtime);
196
+ if (!instance) return new MutationCell(options, runtimeState);
197
+ const hookIndex = claimHookIndex(instance, "mutation");
198
+ ensureMutationCleanup(runtimeState, instance);
199
+ const slotStore = getMutationSlotStore(runtimeState, instance);
200
+ const existing = slotStore.get(hookIndex);
201
+ if (existing) {
202
+ existing.setOptions(options);
203
+ return existing;
204
+ }
205
+ const created = new MutationCell(options, runtimeState);
206
+ slotStore.set(hookIndex, created);
207
+ return created;
208
+ }
209
+ //#endregion
210
+ //#region src/data/query-cell.ts
211
+ const RECONCILE_MAX_ATTEMPTS = 3;
212
+ const RECONCILE_RETRY_DELAY_MS = 25;
213
+ var QueryCell = class {
214
+ constructor(options, key, cache) {
215
+ this.source = createReadableSource();
216
+ this.controller = null;
217
+ this.generation = 0;
218
+ this.startQueued = false;
219
+ this.pendingRefresh = null;
220
+ this.pendingRefreshResolve = null;
221
+ this.pendingRefreshToken = 0;
222
+ this.reconcileAttemptCount = 0;
223
+ this.destroyed = false;
224
+ this.ownerCount = 0;
225
+ this.owners = /* @__PURE__ */ new Map();
226
+ this.warnedDefinitionConflictKeys = /* @__PURE__ */ new Set();
227
+ this.state = {
228
+ data: null,
229
+ error: null,
230
+ loading: true,
231
+ refreshing: false,
232
+ stale: false,
233
+ consistency: "fresh",
234
+ staleReason: null
235
+ };
236
+ this.options = options;
237
+ this.key = key;
238
+ this.cache = cache;
239
+ if (options.initialData !== void 0) this.state = {
240
+ data: options.initialData,
241
+ error: null,
242
+ loading: false,
243
+ refreshing: false,
244
+ stale: false,
245
+ consistency: "fresh",
246
+ staleReason: null
247
+ };
248
+ }
249
+ attach(generation, hookIndex) {
250
+ let hooks = this.owners.get(generation);
251
+ if (!hooks) {
252
+ hooks = /* @__PURE__ */ new Set();
253
+ this.owners.set(generation, hooks);
254
+ }
255
+ if (hooks.has(hookIndex)) return;
256
+ hooks.add(hookIndex);
257
+ this.ownerCount += 1;
258
+ }
259
+ detach(generation, hookIndex) {
260
+ const hooks = this.owners.get(generation);
261
+ if (!hooks || !hooks.delete(hookIndex)) return;
262
+ this.ownerCount -= 1;
263
+ if (hooks.size === 0) this.owners.delete(generation);
264
+ if (this.ownerCount <= 0) this.destroy();
265
+ }
266
+ warnOnConflictingDefinition(options) {
267
+ const conflicts = this.getDefinitionConflicts(options);
268
+ if (conflicts.length === 0) return;
269
+ const conflictKey = conflicts.join(",");
270
+ if (this.warnedDefinitionConflictKeys.has(conflictKey)) return;
271
+ this.warnedDefinitionConflictKeys.add(conflictKey);
272
+ const callbackLabel = conflicts.length === 1 ? `callback \`${conflicts[0]}\`` : `callbacks ${conflicts.map((field) => `\`${field}\``).join(", ")}`;
273
+ logger.warn(`[askr] Conflicting shared query definition for key "${this.key}". Shared queries are canonical by key, so reuse the same ${callbackLabel} for every reader of that key.`);
274
+ }
275
+ destroy() {
276
+ if (this.destroyed) return;
277
+ this.destroyed = true;
278
+ this.controller?.abort();
279
+ this.controller = null;
280
+ this.startQueued = false;
281
+ this.reconcileAttemptCount = 0;
282
+ this.ownerCount = 0;
283
+ this.owners.clear();
284
+ this.cache.delete(this.key);
285
+ this.finishPendingRefresh();
286
+ }
287
+ getDefinitionConflicts(options) {
288
+ const conflicts = [];
289
+ if (this.options.fetch !== options.fetch) conflicts.push("fetch");
290
+ if (this.options.isConsistent !== options.isConsistent) conflicts.push("isConsistent");
291
+ if (this.options.reconcile !== options.reconcile) conflicts.push("reconcile");
292
+ return conflicts;
293
+ }
294
+ get data() {
295
+ recordReadableRead(this.source);
296
+ return this.state.data;
297
+ }
298
+ get error() {
299
+ recordReadableRead(this.source);
300
+ return this.state.error;
301
+ }
302
+ get loading() {
303
+ recordReadableRead(this.source);
304
+ return this.state.loading;
305
+ }
306
+ get refreshing() {
307
+ recordReadableRead(this.source);
308
+ return this.state.refreshing;
309
+ }
310
+ get stale() {
311
+ recordReadableRead(this.source);
312
+ return this.state.stale;
313
+ }
314
+ get consistency() {
315
+ recordReadableRead(this.source);
316
+ return this.state.consistency;
317
+ }
318
+ get staleReason() {
319
+ recordReadableRead(this.source);
320
+ return this.state.staleReason;
321
+ }
322
+ ensureStarted() {
323
+ if (this.destroyed || this.state.data !== null || this.pendingRefresh || this.startQueued || this.options.skipInitialFetch) return;
324
+ this.queueStart("initial");
325
+ }
326
+ refresh() {
327
+ if (this.destroyed) return Promise.resolve();
328
+ if (this.pendingRefresh) return this.pendingRefresh;
329
+ this.queueStart("manual");
330
+ return this.pendingRefresh ?? Promise.resolve();
331
+ }
332
+ invalidate() {
333
+ if (this.destroyed) return;
334
+ if (this.pendingRefresh) {
335
+ this.controller?.abort();
336
+ this.finishPendingRefresh(this.pendingRefreshToken);
337
+ }
338
+ this.queueStart("invalidate");
339
+ }
340
+ markPendingWrite() {
341
+ if (this.destroyed) return;
342
+ if (this.state.data === null) return;
343
+ this.setState({
344
+ loading: false,
345
+ error: null,
346
+ refreshing: true,
347
+ stale: true,
348
+ consistency: "pending-write",
349
+ staleReason: null
350
+ });
351
+ }
352
+ queueStart(reason) {
353
+ if (this.destroyed) return;
354
+ this.startQueued = true;
355
+ const token = ++this.pendingRefreshToken;
356
+ this.pendingRefresh = new Promise((resolve) => {
357
+ this.pendingRefreshResolve = resolve;
358
+ enqueueRuntimeTask(() => {
359
+ this.startQueued = false;
360
+ if (this.destroyed) {
361
+ this.finishPendingRefresh(token);
362
+ return;
363
+ }
364
+ this.start(reason).finally(() => {
365
+ this.finishPendingRefresh(token);
366
+ });
367
+ });
368
+ });
369
+ }
370
+ finishPendingRefresh(token = this.pendingRefreshToken) {
371
+ if (token !== this.pendingRefreshToken) return;
372
+ const resolve = this.pendingRefreshResolve;
373
+ this.pendingRefresh = null;
374
+ this.pendingRefreshResolve = null;
375
+ resolve?.();
376
+ }
377
+ setState(next) {
378
+ if (this.destroyed) return;
379
+ this.state = {
380
+ ...this.state,
381
+ ...next
382
+ };
383
+ notifySource(this.source);
384
+ }
385
+ async start(reason) {
386
+ if (this.destroyed) return;
387
+ this.generation += 1;
388
+ const generation = this.generation;
389
+ this.controller?.abort();
390
+ const controller = new AbortController();
391
+ this.controller = controller;
392
+ const hasData = this.state.data !== null;
393
+ this.setState({
394
+ loading: !hasData,
395
+ refreshing: hasData,
396
+ stale: hasData,
397
+ consistency: reason === "pending-write" ? "pending-write" : hasData ? "refreshing" : "fresh",
398
+ error: null,
399
+ staleReason: null
400
+ });
401
+ let nextData;
402
+ try {
403
+ nextData = await this.options.fetch({ signal: controller.signal });
404
+ } catch (error) {
405
+ if (this.destroyed || this.generation !== generation || this.controller !== controller) return;
406
+ if (isAbortError(error, controller.signal)) {
407
+ this.setState(hasData ? {
408
+ loading: false,
409
+ refreshing: false,
410
+ stale: true,
411
+ consistency: "stale",
412
+ error: null,
413
+ staleReason: "aborted"
414
+ } : {
415
+ loading: true,
416
+ refreshing: false,
417
+ stale: false,
418
+ consistency: "fresh",
419
+ error: null,
420
+ staleReason: null
421
+ });
422
+ return;
423
+ }
424
+ this.setState({
425
+ loading: false,
426
+ refreshing: false,
427
+ stale: true,
428
+ consistency: "stale",
429
+ error: normalizeAsyncDataError(error, "Unknown query error"),
430
+ staleReason: "error"
431
+ });
432
+ return;
433
+ }
434
+ if (this.destroyed || this.generation !== generation || this.controller !== controller) return;
435
+ let isConsistent;
436
+ try {
437
+ isConsistent = this.options.isConsistent?.(nextData) ?? true;
438
+ } catch (error) {
439
+ this.setState({
440
+ loading: false,
441
+ refreshing: false,
442
+ stale: true,
443
+ consistency: "stale",
444
+ error: normalizeAsyncDataError(error, "Query consistency check failed"),
445
+ staleReason: "error"
446
+ });
447
+ return;
448
+ }
449
+ if (!isConsistent) {
450
+ this.setState({
451
+ data: nextData,
452
+ loading: false,
453
+ refreshing: false,
454
+ stale: true,
455
+ consistency: "stale",
456
+ staleReason: "inconsistent"
457
+ });
458
+ try {
459
+ await this.reconcile(nextData);
460
+ } catch (error) {
461
+ if (this.generation === generation && this.controller === controller) this.setState({
462
+ loading: false,
463
+ refreshing: false,
464
+ stale: true,
465
+ consistency: "stale",
466
+ error: normalizeAsyncDataError(error, "Query reconciliation failed"),
467
+ staleReason: "error"
468
+ });
469
+ }
470
+ return;
471
+ }
472
+ this.reconcileAttemptCount = 0;
473
+ this.setState({
474
+ data: nextData,
475
+ loading: false,
476
+ refreshing: false,
477
+ stale: false,
478
+ consistency: "fresh",
479
+ error: null,
480
+ staleReason: null
481
+ });
482
+ }
483
+ async reconcile(data) {
484
+ if (!await (this.options.reconcile?.(data, { key: this.options.key }) ?? false) || this.destroyed) return;
485
+ this.reconcileAttemptCount += 1;
486
+ if (this.reconcileAttemptCount > RECONCILE_MAX_ATTEMPTS) {
487
+ this.setState({
488
+ consistency: "stale",
489
+ refreshing: false,
490
+ staleReason: "inconsistent"
491
+ });
492
+ return;
493
+ }
494
+ await new Promise((resolve) => setTimeout(resolve, RECONCILE_RETRY_DELAY_MS));
495
+ if (this.destroyed || this.state.consistency === "fresh") return;
496
+ this.invalidate();
497
+ }
498
+ };
499
+ function createLegacyQuery(options) {
500
+ const instance = getCurrentComponentInstance();
501
+ const runtimeState = resolveDataRuntimeState(options.runtime);
502
+ const cache = runtimeState.queryCache;
503
+ if (!instance) {
504
+ let cell = cache.get(options.key);
505
+ if (!cell) {
506
+ cell = new QueryCell(options, options.key, cache);
507
+ cache.set(options.key, cell);
508
+ cell.ensureStarted();
509
+ } else cell.warnOnConflictingDefinition(options);
510
+ return cell;
511
+ }
512
+ const hookIndex = claimHookIndex(instance, "query");
513
+ ensureQueryCleanup(runtimeState, instance);
514
+ const slotStore = getQuerySlotStore(runtimeState, instance);
515
+ const existingSlot = slotStore.get(hookIndex);
516
+ if (existingSlot && existingSlot.key === options.key) {
517
+ existingSlot.cell.warnOnConflictingDefinition(options);
518
+ return existingSlot.cell;
519
+ }
520
+ if (existingSlot) existingSlot.cell.detach(instance._ownershipGeneration, hookIndex);
521
+ let cell = cache.get(options.key);
522
+ if (!cell) {
523
+ cell = new QueryCell(options, options.key, cache);
524
+ cache.set(options.key, cell);
525
+ cell.ensureStarted();
526
+ } else cell.warnOnConflictingDefinition(options);
527
+ slotStore.set(hookIndex, {
528
+ key: options.key,
529
+ cell
530
+ });
531
+ cell.attach(instance._ownershipGeneration, hookIndex);
532
+ return cell;
533
+ }
534
+ function createDefinedQuery(definition, input, options = {}) {
535
+ const runtime = options.runtime;
536
+ const context = getActiveRenderContext();
537
+ const key = definition.key(input);
538
+ const dataRuntime = runtime ?? getActiveRenderContext()?.dataRuntime ?? getDefaultDataRuntime();
539
+ const initialData = dataRuntime?.queryData.get(key);
540
+ return createLegacyQuery({
541
+ ...options,
542
+ key,
543
+ fetch: ({ signal }) => definition.fetch({
544
+ ...input,
545
+ signal
546
+ }),
547
+ isConsistent: definition.isConsistent,
548
+ reconcile: definition.reconcile,
549
+ initialData,
550
+ skipInitialFetch: context?.mode === "ssr" || context?.mode === void 0 && typeof window === "undefined",
551
+ runtime: dataRuntime ?? options.runtime
552
+ });
553
+ }
554
+ function createQuery(optionsOrDefinition, input, options) {
555
+ if (typeof optionsOrDefinition === "object" && "key" in optionsOrDefinition && typeof optionsOrDefinition.key === "function") return createDefinedQuery(optionsOrDefinition, input, options);
556
+ return createLegacyQuery(optionsOrDefinition);
557
+ }
558
+ //#endregion
559
+ export { queryScope as a, invalidateOnInterval as i, createMutation as n, invalidate as r, createQuery as t };
@@ -1,20 +1,24 @@
1
- import { getActiveRenderContext } from "../common/render-context.js";
2
- import { emitInvalidation } from "./invalidation-listeners.js";
1
+ import { n as getActiveRenderContext } from "./render-context-Clw3rFiO.js";
2
+ import { n as emitInvalidation } from "./invalidation-listeners-Des3AHYs.js";
3
3
  //#region src/data/data-runtime.ts
4
4
  const dataRuntimeStates = /* @__PURE__ */ new WeakMap();
5
5
  const dataRuntimeByQueryCache = /* @__PURE__ */ new WeakMap();
6
- function createDataRuntimeState(queryCache) {
6
+ function createDataRuntimeState(queryCache, queryData) {
7
7
  return {
8
8
  queryCache,
9
- querySlotsByInstance: /* @__PURE__ */ new WeakMap(),
10
- mutationSlotsByInstance: /* @__PURE__ */ new WeakMap(),
9
+ queryData,
10
+ querySlotsByGeneration: /* @__PURE__ */ new WeakMap(),
11
+ mutationSlotsByGeneration: /* @__PURE__ */ new WeakMap(),
11
12
  queryCleanupRegistered: /* @__PURE__ */ new WeakSet(),
12
13
  mutationCleanupRegistered: /* @__PURE__ */ new WeakSet()
13
14
  };
14
15
  }
15
16
  function createDataRuntime(options = {}) {
16
- const runtime = Object.freeze({ queryCache: options.queryCache ?? /* @__PURE__ */ new Map() });
17
- dataRuntimeStates.set(runtime, createDataRuntimeState(runtime.queryCache));
17
+ const runtime = Object.freeze({
18
+ queryCache: options.queryCache ?? /* @__PURE__ */ new Map(),
19
+ queryData: options.queryData ?? /* @__PURE__ */ new Map()
20
+ });
21
+ dataRuntimeStates.set(runtime, createDataRuntimeState(runtime.queryCache, runtime.queryData));
18
22
  dataRuntimeByQueryCache.set(runtime.queryCache, runtime);
19
23
  return runtime;
20
24
  }
@@ -51,49 +55,45 @@ function resolveDataRuntimeState(runtime) {
51
55
  return runtime ? getDataRuntimeState(runtime) : getActiveDataRuntimeState();
52
56
  }
53
57
  function getQuerySlotStore(runtimeState, instance) {
54
- let store = runtimeState.querySlotsByInstance.get(instance);
58
+ const generation = instance._ownershipGeneration;
59
+ let store = runtimeState.querySlotsByGeneration.get(generation);
55
60
  if (!store) {
56
61
  store = /* @__PURE__ */ new Map();
57
- runtimeState.querySlotsByInstance.set(instance, store);
62
+ runtimeState.querySlotsByGeneration.set(generation, store);
58
63
  }
59
64
  return store;
60
65
  }
61
66
  function getMutationSlotStore(runtimeState, instance) {
62
- let store = runtimeState.mutationSlotsByInstance.get(instance);
67
+ const generation = instance._ownershipGeneration;
68
+ let store = runtimeState.mutationSlotsByGeneration.get(generation);
63
69
  if (!store) {
64
70
  store = /* @__PURE__ */ new Map();
65
- runtimeState.mutationSlotsByInstance.set(instance, store);
71
+ runtimeState.mutationSlotsByGeneration.set(generation, store);
66
72
  }
67
73
  return store;
68
74
  }
69
75
  function ensureQueryCleanup(runtimeState, instance) {
70
- if (runtimeState.queryCleanupRegistered.has(instance)) return;
71
- runtimeState.queryCleanupRegistered.add(instance);
76
+ const generation = instance._ownershipGeneration;
77
+ if (runtimeState.queryCleanupRegistered.has(generation)) return;
78
+ runtimeState.queryCleanupRegistered.add(generation);
79
+ const slots = getQuerySlotStore(runtimeState, instance);
72
80
  (instance.cleanupFns ??= []).push(() => {
73
- const slots = runtimeState.querySlotsByInstance.get(instance);
74
- if (!slots) {
75
- runtimeState.queryCleanupRegistered.delete(instance);
76
- return;
77
- }
78
- for (const [hookIndex, slot] of slots) slot.cell.detach(instance, hookIndex);
81
+ for (const [hookIndex, slot] of slots) slot.cell.detach(generation, hookIndex);
79
82
  slots.clear();
80
- runtimeState.querySlotsByInstance.delete(instance);
81
- runtimeState.queryCleanupRegistered.delete(instance);
83
+ runtimeState.querySlotsByGeneration.delete(generation);
84
+ runtimeState.queryCleanupRegistered.delete(generation);
82
85
  });
83
86
  }
84
87
  function ensureMutationCleanup(runtimeState, instance) {
85
- if (runtimeState.mutationCleanupRegistered.has(instance)) return;
86
- runtimeState.mutationCleanupRegistered.add(instance);
88
+ const generation = instance._ownershipGeneration;
89
+ if (runtimeState.mutationCleanupRegistered.has(generation)) return;
90
+ runtimeState.mutationCleanupRegistered.add(generation);
91
+ const slots = getMutationSlotStore(runtimeState, instance);
87
92
  (instance.cleanupFns ??= []).push(() => {
88
- const slots = runtimeState.mutationSlotsByInstance.get(instance);
89
- if (!slots) {
90
- runtimeState.mutationCleanupRegistered.delete(instance);
91
- return;
92
- }
93
93
  for (const cell of slots.values()) cell.abort();
94
94
  slots.clear();
95
- runtimeState.mutationSlotsByInstance.delete(instance);
96
- runtimeState.mutationCleanupRegistered.delete(instance);
95
+ runtimeState.mutationSlotsByGeneration.delete(generation);
96
+ runtimeState.mutationCleanupRegistered.delete(generation);
97
97
  });
98
98
  }
99
99
  function invalidateQueriesForRuntime(runtimeState, prefix, markPendingWrite) {
@@ -101,6 +101,7 @@ function invalidateQueriesForRuntime(runtimeState, prefix, markPendingWrite) {
101
101
  prefix,
102
102
  markPendingWrite
103
103
  });
104
+ for (const key of runtimeState.queryData.keys()) if (key.startsWith(prefix)) runtimeState.queryData.delete(key);
104
105
  const cache = runtimeState.queryCache;
105
106
  for (const [key, query] of cache) {
106
107
  if (!key.startsWith(prefix)) continue;
@@ -109,4 +110,4 @@ function invalidateQueriesForRuntime(runtimeState, prefix, markPendingWrite) {
109
110
  }
110
111
  }
111
112
  //#endregion
112
- export { createDataRuntime, ensureMutationCleanup, ensureQueryCleanup, getDefaultDataRuntime, getMutationSlotStore, getQuerySlotStore, invalidateQueriesForRuntime, resolveDataRuntimeState };
113
+ export { getMutationSlotStore as a, resolveDataRuntimeState as c, getDefaultDataRuntime as i, ensureMutationCleanup as n, getQuerySlotStore as o, ensureQueryCleanup as r, invalidateQueriesForRuntime as s, createDataRuntime as t };