@askrjs/askr 0.0.52 → 0.0.53

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-j2KoN6ss.js +647 -0
  11. package/dist/cleanup-COv77su2.js +487 -0
  12. package/dist/component-internal-B3z7GXlD.js +614 -0
  13. package/dist/component-lifecycle-CO4hXlP4.js +357 -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-BQvNVfAd.d.ts +436 -0
  23. package/dist/control-BYyLTFyw.js +165 -0
  24. package/dist/control-Bf4Wkdvv.d.ts +9 -0
  25. package/dist/{common/control.js → control-DhFRTIoE.js} +1 -1
  26. package/dist/data/index.d.ts +2 -6
  27. package/dist/data/index.js +4 -5
  28. package/dist/data-DnxnDxD-.js +559 -0
  29. package/dist/{data/data-runtime.js → data-runtime-SJ1BSUvk.js} +32 -31
  30. package/dist/deferred-lKE8uR0z.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-BKf_Tnv1.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-31Uoz_NS.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-D73jgYx1.d.ts +48 -0
  52. package/dist/{runtime/runtime.d.ts → index-R2JJIbM-.d.ts} +31 -8
  53. package/dist/index-SJXJkssx.d.ts +44 -0
  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-D9va7GOU.js} +4 -5
  67. package/dist/navigate-BVDCzOuB.d.ts +34 -0
  68. package/dist/navigate-CmPLSXyw.js +1449 -0
  69. package/dist/{runtime/portal.js → portal-CyU3Ucf2.js} +33 -36
  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-DzPjeLby.js +6197 -0
  73. package/dist/{runtime/resource-operation.js → resource-operation-CEzfpnDk.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-CeYvjj5_.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-D3t80Rc0.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-io9ahUeq.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,133 +0,0 @@
1
- import { recordReadableRead } from "../runtime/readable.js";
2
- import { claimHookIndex, getCurrentComponentInstance } from "../runtime/component-scope.js";
3
- import "../runtime/index.js";
4
- import { ensureMutationCleanup, getMutationSlotStore, invalidateQueriesForRuntime, resolveDataRuntimeState } from "./data-runtime.js";
5
- import { createReadableSource, isAbortError, normalizeAsyncDataError, notifySource } from "./shared.js";
6
- //#region src/data/mutation-cell.ts
7
- var MutationCell = class {
8
- constructor(options, runtimeState) {
9
- this.source = createReadableSource();
10
- this.controller = null;
11
- this.generation = 0;
12
- this.state = {
13
- status: "idle",
14
- error: null,
15
- result: null
16
- };
17
- this.runtimeState = runtimeState;
18
- this.action = options.action;
19
- this.affects = options.affects;
20
- this.afterSuccess = options.afterSuccess;
21
- }
22
- setOptions(options) {
23
- this.action = options.action;
24
- this.affects = options.affects;
25
- this.afterSuccess = options.afterSuccess;
26
- }
27
- get status() {
28
- recordReadableRead(this.source);
29
- return this.state.status;
30
- }
31
- get pending() {
32
- recordReadableRead(this.source);
33
- return this.state.status === "pending";
34
- }
35
- get error() {
36
- recordReadableRead(this.source);
37
- return this.state.error;
38
- }
39
- get result() {
40
- recordReadableRead(this.source);
41
- return this.state.result;
42
- }
43
- setState(next) {
44
- this.state = {
45
- ...this.state,
46
- ...next
47
- };
48
- notifySource(this.source);
49
- }
50
- async execute(input) {
51
- const action = this.action;
52
- const affects = this.affects;
53
- const afterSuccess = this.afterSuccess;
54
- this.generation += 1;
55
- const generation = this.generation;
56
- this.controller?.abort();
57
- const controller = new AbortController();
58
- this.controller = controller;
59
- this.setState({
60
- status: "pending",
61
- error: null,
62
- result: null
63
- });
64
- let result;
65
- try {
66
- result = await action(input, { signal: controller.signal });
67
- } catch (error) {
68
- if (this.generation !== generation || this.controller !== controller) throw error;
69
- if (isAbortError(error, controller.signal)) {
70
- this.setState({
71
- status: "idle",
72
- error: null
73
- });
74
- throw error;
75
- }
76
- this.setState({
77
- status: "error",
78
- error: normalizeAsyncDataError(error, "Unknown mutation error")
79
- });
80
- throw error;
81
- }
82
- if (this.generation !== generation || this.controller !== controller) return result;
83
- this.setState({
84
- status: "success",
85
- error: null,
86
- result
87
- });
88
- if (afterSuccess === "invalidate") {
89
- const prefixes = affects?.(input, result) ?? [];
90
- for (const prefix of new Set(prefixes)) invalidateQueriesForRuntime(this.runtimeState, prefix, true);
91
- }
92
- return result;
93
- }
94
- abort() {
95
- if (this.state.status !== "pending") return;
96
- this.generation += 1;
97
- this.controller?.abort();
98
- this.controller = null;
99
- this.setState({
100
- status: "idle",
101
- error: null,
102
- result: null
103
- });
104
- }
105
- reset() {
106
- this.generation += 1;
107
- this.controller?.abort();
108
- this.controller = null;
109
- this.setState({
110
- status: "idle",
111
- error: null,
112
- result: null
113
- });
114
- }
115
- };
116
- function createMutation(options) {
117
- const instance = getCurrentComponentInstance();
118
- const runtimeState = resolveDataRuntimeState(options.runtime);
119
- if (!instance) return new MutationCell(options, runtimeState);
120
- const hookIndex = claimHookIndex(instance, "mutation");
121
- ensureMutationCleanup(runtimeState, instance);
122
- const slotStore = getMutationSlotStore(runtimeState, instance);
123
- const existing = slotStore.get(hookIndex);
124
- if (existing) {
125
- existing.setOptions(options);
126
- return existing;
127
- }
128
- const created = new MutationCell(options, runtimeState);
129
- slotStore.set(hookIndex, created);
130
- return created;
131
- }
132
- //#endregion
133
- export { MutationCell, createMutation };
@@ -1,47 +0,0 @@
1
- import { ComponentInstance } from "../runtime/component-internal.js";
2
- import { Query, QueryOptions, QueryState } from "./types.js";
3
-
4
- //#region src/data/query-cell.d.ts
5
- declare class QueryCell<T> {
6
- private readonly source;
7
- private readonly key;
8
- private readonly cache;
9
- private options;
10
- private controller;
11
- private generation;
12
- private startQueued;
13
- private pendingRefresh;
14
- private pendingRefreshResolve;
15
- private pendingRefreshToken;
16
- private reconcileAttemptCount;
17
- private destroyed;
18
- private ownerCount;
19
- private readonly owners;
20
- private readonly warnedDefinitionConflictKeys;
21
- private state;
22
- constructor(options: QueryOptions<T>, key: string, cache: Map<string, QueryCell<unknown>>);
23
- attach(instance: ComponentInstance, hookIndex: number): void;
24
- detach(instance: ComponentInstance, hookIndex: number): void;
25
- warnOnConflictingDefinition(options: QueryOptions<T>): void;
26
- private destroy;
27
- private getDefinitionConflicts;
28
- get data(): T | null;
29
- get error(): {} | null;
30
- get loading(): boolean;
31
- get refreshing(): boolean;
32
- get stale(): boolean;
33
- get consistency(): QueryState<T>['consistency'];
34
- get staleReason(): QueryState<T>['staleReason'];
35
- ensureStarted(): void;
36
- refresh(): Promise<void>;
37
- invalidate(): void;
38
- markPendingWrite(): void;
39
- private queueStart;
40
- private finishPendingRefresh;
41
- private setState;
42
- private start;
43
- private reconcile;
44
- }
45
- declare function createQuery<T extends {}>(options: QueryOptions<T>): Query<T>;
46
- //#endregion
47
- export { QueryCell, createQuery };
@@ -1,324 +0,0 @@
1
- import { logger } from "../common/logger.js";
2
- import { enqueueRuntimeTask } from "../runtime/access.js";
3
- import { recordReadableRead } from "../runtime/readable.js";
4
- import { claimHookIndex, getCurrentComponentInstance } from "../runtime/component-scope.js";
5
- import "../runtime/index.js";
6
- import { ensureQueryCleanup, getQuerySlotStore, resolveDataRuntimeState } from "./data-runtime.js";
7
- import { createReadableSource, isAbortError, normalizeAsyncDataError, notifySource } from "./shared.js";
8
- //#region src/data/query-cell.ts
9
- const RECONCILE_MAX_ATTEMPTS = 3;
10
- const RECONCILE_RETRY_DELAY_MS = 25;
11
- var QueryCell = class {
12
- constructor(options, key, cache) {
13
- this.source = createReadableSource();
14
- this.controller = null;
15
- this.generation = 0;
16
- this.startQueued = false;
17
- this.pendingRefresh = null;
18
- this.pendingRefreshResolve = null;
19
- this.pendingRefreshToken = 0;
20
- this.reconcileAttemptCount = 0;
21
- this.destroyed = false;
22
- this.ownerCount = 0;
23
- this.owners = /* @__PURE__ */ new Map();
24
- this.warnedDefinitionConflictKeys = /* @__PURE__ */ new Set();
25
- this.state = {
26
- data: null,
27
- error: null,
28
- loading: true,
29
- refreshing: false,
30
- stale: false,
31
- consistency: "fresh",
32
- staleReason: null
33
- };
34
- this.options = options;
35
- this.key = key;
36
- this.cache = cache;
37
- }
38
- attach(instance, hookIndex) {
39
- let hooks = this.owners.get(instance);
40
- if (!hooks) {
41
- hooks = /* @__PURE__ */ new Set();
42
- this.owners.set(instance, hooks);
43
- }
44
- if (hooks.has(hookIndex)) return;
45
- hooks.add(hookIndex);
46
- this.ownerCount += 1;
47
- }
48
- detach(instance, hookIndex) {
49
- const hooks = this.owners.get(instance);
50
- if (!hooks || !hooks.delete(hookIndex)) return;
51
- this.ownerCount -= 1;
52
- if (hooks.size === 0) this.owners.delete(instance);
53
- if (this.ownerCount <= 0) this.destroy();
54
- }
55
- warnOnConflictingDefinition(options) {
56
- const conflicts = this.getDefinitionConflicts(options);
57
- if (conflicts.length === 0) return;
58
- const conflictKey = conflicts.join(",");
59
- if (this.warnedDefinitionConflictKeys.has(conflictKey)) return;
60
- this.warnedDefinitionConflictKeys.add(conflictKey);
61
- const callbackLabel = conflicts.length === 1 ? `callback \`${conflicts[0]}\`` : `callbacks ${conflicts.map((field) => `\`${field}\``).join(", ")}`;
62
- 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.`);
63
- }
64
- destroy() {
65
- if (this.destroyed) return;
66
- this.destroyed = true;
67
- this.controller?.abort();
68
- this.controller = null;
69
- this.startQueued = false;
70
- this.reconcileAttemptCount = 0;
71
- this.ownerCount = 0;
72
- this.owners.clear();
73
- this.cache.delete(this.key);
74
- this.finishPendingRefresh();
75
- }
76
- getDefinitionConflicts(options) {
77
- const conflicts = [];
78
- if (this.options.fetch !== options.fetch) conflicts.push("fetch");
79
- if (this.options.isConsistent !== options.isConsistent) conflicts.push("isConsistent");
80
- if (this.options.reconcile !== options.reconcile) conflicts.push("reconcile");
81
- return conflicts;
82
- }
83
- get data() {
84
- recordReadableRead(this.source);
85
- return this.state.data;
86
- }
87
- get error() {
88
- recordReadableRead(this.source);
89
- return this.state.error;
90
- }
91
- get loading() {
92
- recordReadableRead(this.source);
93
- return this.state.loading;
94
- }
95
- get refreshing() {
96
- recordReadableRead(this.source);
97
- return this.state.refreshing;
98
- }
99
- get stale() {
100
- recordReadableRead(this.source);
101
- return this.state.stale;
102
- }
103
- get consistency() {
104
- recordReadableRead(this.source);
105
- return this.state.consistency;
106
- }
107
- get staleReason() {
108
- recordReadableRead(this.source);
109
- return this.state.staleReason;
110
- }
111
- ensureStarted() {
112
- if (this.destroyed || this.state.data !== null || this.pendingRefresh || this.startQueued) return;
113
- this.queueStart("initial");
114
- }
115
- refresh() {
116
- if (this.destroyed) return Promise.resolve();
117
- if (this.pendingRefresh) return this.pendingRefresh;
118
- this.queueStart("manual");
119
- return this.pendingRefresh ?? Promise.resolve();
120
- }
121
- invalidate() {
122
- if (this.destroyed) return;
123
- if (this.pendingRefresh) {
124
- this.controller?.abort();
125
- this.finishPendingRefresh(this.pendingRefreshToken);
126
- }
127
- this.queueStart("invalidate");
128
- }
129
- markPendingWrite() {
130
- if (this.destroyed) return;
131
- if (this.state.data === null) return;
132
- this.setState({
133
- loading: false,
134
- error: null,
135
- refreshing: true,
136
- stale: true,
137
- consistency: "pending-write",
138
- staleReason: null
139
- });
140
- }
141
- queueStart(reason) {
142
- if (this.destroyed) return;
143
- this.startQueued = true;
144
- const token = ++this.pendingRefreshToken;
145
- this.pendingRefresh = new Promise((resolve) => {
146
- this.pendingRefreshResolve = resolve;
147
- enqueueRuntimeTask(() => {
148
- this.startQueued = false;
149
- if (this.destroyed) {
150
- this.finishPendingRefresh(token);
151
- return;
152
- }
153
- this.start(reason).finally(() => {
154
- this.finishPendingRefresh(token);
155
- });
156
- });
157
- });
158
- }
159
- finishPendingRefresh(token = this.pendingRefreshToken) {
160
- if (token !== this.pendingRefreshToken) return;
161
- const resolve = this.pendingRefreshResolve;
162
- this.pendingRefresh = null;
163
- this.pendingRefreshResolve = null;
164
- resolve?.();
165
- }
166
- setState(next) {
167
- if (this.destroyed) return;
168
- this.state = {
169
- ...this.state,
170
- ...next
171
- };
172
- notifySource(this.source);
173
- }
174
- async start(reason) {
175
- if (this.destroyed) return;
176
- this.generation += 1;
177
- const generation = this.generation;
178
- this.controller?.abort();
179
- const controller = new AbortController();
180
- this.controller = controller;
181
- const hasData = this.state.data !== null;
182
- this.setState({
183
- loading: !hasData,
184
- refreshing: hasData,
185
- stale: hasData,
186
- consistency: reason === "pending-write" ? "pending-write" : hasData ? "refreshing" : "fresh",
187
- error: null,
188
- staleReason: null
189
- });
190
- let nextData;
191
- try {
192
- nextData = await this.options.fetch({ signal: controller.signal });
193
- } catch (error) {
194
- if (this.destroyed || this.generation !== generation || this.controller !== controller) return;
195
- if (isAbortError(error, controller.signal)) {
196
- this.setState(hasData ? {
197
- loading: false,
198
- refreshing: false,
199
- stale: true,
200
- consistency: "stale",
201
- error: null,
202
- staleReason: "aborted"
203
- } : {
204
- loading: true,
205
- refreshing: false,
206
- stale: false,
207
- consistency: "fresh",
208
- error: null,
209
- staleReason: null
210
- });
211
- return;
212
- }
213
- this.setState({
214
- loading: false,
215
- refreshing: false,
216
- stale: true,
217
- consistency: "stale",
218
- error: normalizeAsyncDataError(error, "Unknown query error"),
219
- staleReason: "error"
220
- });
221
- return;
222
- }
223
- if (this.destroyed || this.generation !== generation || this.controller !== controller) return;
224
- let isConsistent;
225
- try {
226
- isConsistent = this.options.isConsistent?.(nextData) ?? true;
227
- } catch (error) {
228
- this.setState({
229
- loading: false,
230
- refreshing: false,
231
- stale: true,
232
- consistency: "stale",
233
- error: normalizeAsyncDataError(error, "Query consistency check failed"),
234
- staleReason: "error"
235
- });
236
- return;
237
- }
238
- if (!isConsistent) {
239
- this.setState({
240
- data: nextData,
241
- loading: false,
242
- refreshing: false,
243
- stale: true,
244
- consistency: "stale",
245
- staleReason: "inconsistent"
246
- });
247
- try {
248
- await this.reconcile(nextData);
249
- } catch (error) {
250
- if (this.generation === generation && this.controller === controller) this.setState({
251
- loading: false,
252
- refreshing: false,
253
- stale: true,
254
- consistency: "stale",
255
- error: normalizeAsyncDataError(error, "Query reconciliation failed"),
256
- staleReason: "error"
257
- });
258
- }
259
- return;
260
- }
261
- this.reconcileAttemptCount = 0;
262
- this.setState({
263
- data: nextData,
264
- loading: false,
265
- refreshing: false,
266
- stale: false,
267
- consistency: "fresh",
268
- error: null,
269
- staleReason: null
270
- });
271
- }
272
- async reconcile(data) {
273
- if (!await (this.options.reconcile?.(data, { key: this.options.key }) ?? false) || this.destroyed) return;
274
- this.reconcileAttemptCount += 1;
275
- if (this.reconcileAttemptCount > RECONCILE_MAX_ATTEMPTS) {
276
- this.setState({
277
- consistency: "stale",
278
- refreshing: false,
279
- staleReason: "inconsistent"
280
- });
281
- return;
282
- }
283
- await new Promise((resolve) => setTimeout(resolve, RECONCILE_RETRY_DELAY_MS));
284
- if (this.destroyed || this.state.consistency === "fresh") return;
285
- this.invalidate();
286
- }
287
- };
288
- function createQuery(options) {
289
- const instance = getCurrentComponentInstance();
290
- const runtimeState = resolveDataRuntimeState(options.runtime);
291
- const cache = runtimeState.queryCache;
292
- if (!instance) {
293
- let cell = cache.get(options.key);
294
- if (!cell) {
295
- cell = new QueryCell(options, options.key, cache);
296
- cache.set(options.key, cell);
297
- cell.ensureStarted();
298
- } else cell.warnOnConflictingDefinition(options);
299
- return cell;
300
- }
301
- const hookIndex = claimHookIndex(instance, "query");
302
- ensureQueryCleanup(runtimeState, instance);
303
- const slotStore = getQuerySlotStore(runtimeState, instance);
304
- const existingSlot = slotStore.get(hookIndex);
305
- if (existingSlot && existingSlot.key === options.key) {
306
- existingSlot.cell.warnOnConflictingDefinition(options);
307
- return existingSlot.cell;
308
- }
309
- if (existingSlot) existingSlot.cell.detach(instance, hookIndex);
310
- let cell = cache.get(options.key);
311
- if (!cell) {
312
- cell = new QueryCell(options, options.key, cache);
313
- cache.set(options.key, cell);
314
- cell.ensureStarted();
315
- } else cell.warnOnConflictingDefinition(options);
316
- slotStore.set(hookIndex, {
317
- key: options.key,
318
- cell
319
- });
320
- cell.attach(instance, hookIndex);
321
- return cell;
322
- }
323
- //#endregion
324
- export { QueryCell, createQuery };
@@ -1,40 +0,0 @@
1
- //#region src/data/query-key.ts
2
- function serializeQueryKeyNumber(part) {
3
- if (Number.isNaN(part)) return "NaN";
4
- if (Object.is(part, -0)) return "-0";
5
- if (part === Infinity) return "Infinity";
6
- if (part === -Infinity) return "-Infinity";
7
- return String(part);
8
- }
9
- function serializeQueryKeyPart(part) {
10
- if (typeof part === "symbol") throw new Error("[Askr] queryScope() key parts cannot be symbols.");
11
- if (part === null) return "null";
12
- if (part === void 0) return "undefined";
13
- switch (typeof part) {
14
- case "string": return `s=${encodeURIComponent(part)}`;
15
- case "number": return `n=${serializeQueryKeyNumber(part)}`;
16
- case "boolean": return `b=${part ? "1" : "0"}`;
17
- case "object":
18
- if (Array.isArray(part)) return `a[${part.map((item) => serializeQueryKeyPart(item)).join(",")}]`;
19
- const objectPart = part;
20
- return `o{${Object.keys(objectPart).sort().map((key) => `${encodeURIComponent(key)}=${serializeQueryKeyPart(objectPart[key])}`).join(",")}}`;
21
- default: return String(part);
22
- }
23
- }
24
- function createQueryScope(namespace, invalidate) {
25
- if (typeof namespace !== "string" || namespace.trim().length === 0) throw new Error("[Askr] queryScope() requires a non-empty namespace string.");
26
- const build = (parts) => [namespace, ...parts].map(serializeQueryKeyPart).join(":") + ":";
27
- return {
28
- key(...parts) {
29
- return build(parts);
30
- },
31
- prefix(...parts) {
32
- return build(parts);
33
- },
34
- invalidate(parts, options) {
35
- invalidate(build(parts), options);
36
- }
37
- };
38
- }
39
- //#endregion
40
- export { createQueryScope };
@@ -1,20 +0,0 @@
1
- import { markReactivePropsDirtySource, markReadableDerivedSubscribersDirty, notifyReadableReaders } from "../runtime/readable.js";
2
- import "../runtime/index.js";
3
- //#region src/data/shared.ts
4
- function createReadableSource() {
5
- return (() => void 0);
6
- }
7
- function notifySource(source) {
8
- markReadableDerivedSubscribersDirty(source);
9
- markReactivePropsDirtySource(source);
10
- notifyReadableReaders(source);
11
- }
12
- function isAbortError(error, signal) {
13
- return signal.aborted || error instanceof Error && error.name === "AbortError" || typeof DOMException !== "undefined" && error instanceof DOMException && error.name === "AbortError";
14
- }
15
- function normalizeAsyncDataError(error, fallbackMessage) {
16
- if (error instanceof Error) return error;
17
- return new Error(error == null ? fallbackMessage : String(error));
18
- }
19
- //#endregion
20
- export { createReadableSource, isAbortError, normalizeAsyncDataError, notifySource };
@@ -1,2 +0,0 @@
1
- import { addInvalidationListener } from "./invalidation-listeners.js";
2
- export { addInvalidationListener };