@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
package/README.md CHANGED
@@ -24,9 +24,13 @@ createIsland({ root: document.body, component: Counter });
24
24
  ### Runtime
25
25
 
26
26
  `@askrjs/askr` exports the core runtime primitives: `state()`, `derive()`,
27
- `selector()`, `defineContext()`, `readContext()`, `getSignal()`, and the JSX
27
+ `selector()`, `defineScope()`, `readScope()`, `getSignal()`, and the JSX
28
28
  runtime exports.
29
29
 
30
+ Public APIs prefer functions and closures over classes. Lexical ownership uses
31
+ `defineScope()` and `readScope()`; there are no compatibility aliases for the
32
+ clean-break vocabulary.
33
+
30
34
  App startup, routing, async resources, data helpers, and error boundaries live
31
35
  on their own subpaths.
32
36
 
@@ -1,7 +1,93 @@
1
- import { isDevelopmentEnvironment } from "../common/env.js";
2
- import { assertSchedulingPrecondition, invariant } from "../common/invariant.js";
3
- import { logger } from "../common/logger.js";
4
- import { recordSchedulerFlushTaskCount } from "./perf-metrics.js";
1
+ //#region src/common/env.ts
2
+ function normalizeEnv(source) {
3
+ if (!source) return {};
4
+ const normalized = {};
5
+ for (const [key, value] of Object.entries(source)) if (typeof value === "string") normalized[key] = value;
6
+ else if (typeof value === "boolean" || typeof value === "number") normalized[key] = String(value);
7
+ return normalized;
8
+ }
9
+ function getBuildTimeEnv() {
10
+ const metaEnv = import.meta.env;
11
+ const normalized = normalizeEnv(metaEnv);
12
+ if (normalized.NODE_ENV == null && metaEnv) {
13
+ if (typeof metaEnv.MODE === "string" && metaEnv.MODE.length > 0) normalized.NODE_ENV = metaEnv.MODE;
14
+ else if (metaEnv.PROD === true || metaEnv.PROD === "true") normalized.NODE_ENV = "production";
15
+ else if (metaEnv.DEV === true || metaEnv.DEV === "true") normalized.NODE_ENV = "development";
16
+ }
17
+ return normalized;
18
+ }
19
+ function resolveNodeEnv(processNodeEnv, buildNodeEnv) {
20
+ if (buildNodeEnv === "production") return "production";
21
+ if (processNodeEnv != null) return processNodeEnv;
22
+ if (buildNodeEnv === "development") return "development";
23
+ return buildNodeEnv === "test" ? void 0 : buildNodeEnv;
24
+ }
25
+ function getRuntimeEnv() {
26
+ const processEnv = globalThis.process?.env ?? {};
27
+ const buildTimeEnv = getBuildTimeEnv();
28
+ return {
29
+ ...processEnv,
30
+ ...buildTimeEnv,
31
+ NODE_ENV: resolveNodeEnv(processEnv.NODE_ENV, buildTimeEnv.NODE_ENV)
32
+ };
33
+ }
34
+ function isProductionEnvironment() {
35
+ return getRuntimeEnv().NODE_ENV === "production";
36
+ }
37
+ function isDevelopmentEnvironment() {
38
+ return !isProductionEnvironment();
39
+ }
40
+ //#endregion
41
+ //#region src/common/invariant.ts
42
+ /**
43
+ * Invariant assertions shared by production runtime code.
44
+ */
45
+ function invariant(condition, message, context) {
46
+ if (!condition) {
47
+ const contextStr = context ? "\n" + JSON.stringify(context, null, 2) : "";
48
+ throw new Error(`[Askr Invariant] ${message}${contextStr}`);
49
+ }
50
+ }
51
+ function assertSchedulingPrecondition(condition, violationMessage) {
52
+ invariant(condition, `[Scheduler Precondition] ${violationMessage}`);
53
+ }
54
+ //#endregion
55
+ //#region src/common/logger.ts
56
+ /**
57
+ * Shared logger interface for runtime and tooling code.
58
+ *
59
+ * Debug, info, and warn stay silent in production. Errors always log.
60
+ */
61
+ function callConsole(method, args) {
62
+ const c = typeof console !== "undefined" ? console : void 0;
63
+ if (!c) return;
64
+ const fn = c[method];
65
+ if (typeof fn === "function") try {
66
+ fn.apply(console, args);
67
+ } catch {}
68
+ }
69
+ const logger = {
70
+ debug: (...args) => {
71
+ if (isProductionEnvironment()) return;
72
+ callConsole("debug", args);
73
+ },
74
+ info: (...args) => {
75
+ if (isProductionEnvironment()) return;
76
+ callConsole("info", args);
77
+ },
78
+ warn: (...args) => {
79
+ if (isProductionEnvironment()) return;
80
+ callConsole("warn", args);
81
+ },
82
+ error: (...args) => {
83
+ callConsole("error", args);
84
+ }
85
+ };
86
+ //#endregion
87
+ //#region src/runtime/perf-metrics.ts
88
+ const incrementPerfMetric = () => {};
89
+ const addPerfDuration = () => {};
90
+ //#endregion
5
91
  //#region src/runtime/scheduler.ts
6
92
  /**
7
93
  * Serialized update scheduler — safer design (no inline execution, explicit flush)
@@ -166,7 +252,6 @@ var Scheduler = class {
166
252
  }
167
253
  this.flushVersion++;
168
254
  this.resolveWaiters();
169
- recordSchedulerFlushTaskCount(executedTaskCount);
170
255
  }
171
256
  if (failures.length === 1) throw failures[0];
172
257
  if (failures.length > 1) throw new AggregateError(failures, "Scheduler task failures");
@@ -197,14 +282,12 @@ var Scheduler = class {
197
282
  if (this.flushVersion >= target) return Promise.resolve();
198
283
  return new Promise((resolve, reject) => {
199
284
  const timer = setTimeout(() => {
200
- const ns = globalThis.__ASKR__ || {};
201
285
  const diag = {
202
286
  flushVersion: this.flushVersion,
203
287
  queueLen: this.getPendingTaskCount(),
204
288
  running: this.running,
205
289
  inHandler: this.inHandler,
206
- bulk: this.isBulkCommitActive(),
207
- namespace: ns
290
+ bulk: this.isBulkCommitActive()
208
291
  };
209
292
  reject(/* @__PURE__ */ new Error(`waitForFlush timeout ${timeoutMs}ms: ${JSON.stringify(diag)}`));
210
293
  }, timeoutMs);
@@ -313,4 +396,94 @@ function scheduleEventHandler(handler) {
313
396
  };
314
397
  }
315
398
  //#endregion
316
- export { Scheduler, globalScheduler, scheduleEventHandler };
399
+ //#region src/runtime/runtime.ts
400
+ function createMissingRendererHost() {
401
+ const missing = (method) => {
402
+ throw new Error(`[Askr] renderer host is not configured; cannot call ${method}().`);
403
+ };
404
+ return {
405
+ evaluate() {
406
+ missing("evaluate");
407
+ },
408
+ cleanupInstancesUnder() {
409
+ missing("cleanupInstancesUnder");
410
+ },
411
+ teardownNodeSubtree() {
412
+ missing("teardownNodeSubtree");
413
+ },
414
+ populateKeyMapForElement() {},
415
+ getKeyMapForElement() {},
416
+ isKeyedReorderFastPathEligible() {
417
+ return {
418
+ useFastPath: false,
419
+ totalKeyed: 0,
420
+ totalChildren: 0,
421
+ currentKeyCount: 0,
422
+ moveCount: 0,
423
+ lisLen: 0,
424
+ hasPropChanges: false,
425
+ isWholeKeyedList: false
426
+ };
427
+ },
428
+ markReactivePropsDirtySource() {}
429
+ };
430
+ }
431
+ var AskrRuntime = class {
432
+ constructor(options = {}) {
433
+ this.scheduler = options.scheduler ?? globalScheduler;
434
+ this.rendererHost = options.renderer ?? createMissingRendererHost();
435
+ }
436
+ get renderer() {
437
+ return this.rendererHost;
438
+ }
439
+ configureRenderer(renderer) {
440
+ this.rendererHost = renderer;
441
+ }
442
+ };
443
+ const defaultRuntime = new AskrRuntime({ scheduler: globalScheduler });
444
+ function createRuntime(options = {}) {
445
+ return new AskrRuntime(options);
446
+ }
447
+ function getDefaultRuntime() {
448
+ return defaultRuntime;
449
+ }
450
+ function configureRuntimeRenderer(renderer, runtime = defaultRuntime) {
451
+ runtime.configureRenderer(renderer);
452
+ }
453
+ //#endregion
454
+ //#region src/runtime/access.ts
455
+ function getRuntimeScheduler() {
456
+ return getDefaultRuntime().scheduler;
457
+ }
458
+ function getDefaultRuntimeInstance() {
459
+ return getDefaultRuntime();
460
+ }
461
+ function getRuntimeRenderer() {
462
+ return getDefaultRuntime().renderer;
463
+ }
464
+ function enqueueRuntimeTask(task) {
465
+ getRuntimeScheduler().enqueue(task);
466
+ }
467
+ function enqueueRuntimeLane(lane, task) {
468
+ getRuntimeScheduler().enqueueInLane(lane, task);
469
+ }
470
+ function runRuntimeHandlerScope(fn, flushMode = "defer") {
471
+ return getRuntimeScheduler().runInHandlerScope(fn, flushMode);
472
+ }
473
+ function runRuntimeWithSyncProgress(fn) {
474
+ return getRuntimeScheduler().runWithSyncProgress(fn);
475
+ }
476
+ function getRuntimeFlushVersion() {
477
+ return getRuntimeScheduler().getFlushVersion();
478
+ }
479
+ function flushRuntimeScheduler() {
480
+ getRuntimeScheduler().flush();
481
+ }
482
+ function setRuntimeBulkCommitProbe(probe) {
483
+ getRuntimeScheduler().setBulkCommitProbe(probe);
484
+ }
485
+ function markRuntimeReactivePropsDirtySource(source) {
486
+ getRuntimeRenderer().markReactivePropsDirtySource(source);
487
+ }
488
+ //#endregion
489
+ export { incrementPerfMetric as _, getRuntimeFlushVersion as a, isDevelopmentEnvironment as b, runRuntimeHandlerScope as c, AskrRuntime as d, configureRuntimeRenderer as f, addPerfDuration as g, scheduleEventHandler as h, getDefaultRuntimeInstance as i, runRuntimeWithSyncProgress as l, getDefaultRuntime as m, enqueueRuntimeTask as n, getRuntimeRenderer as o, createRuntime as p, flushRuntimeScheduler as r, markRuntimeReactivePropsDirtySource as s, enqueueRuntimeLane as t, setRuntimeBulkCommitProbe as u, logger as v, isProductionEnvironment as x, getRuntimeEnv as y };
@@ -0,0 +1,2 @@
1
+ import { a as action, i as ActionValidationError, n as ActionForm, o as defineAction, r as ActionStatus, t as ActionDescriptor } from "../index-C8iW3xCt.js";
2
+ export { ActionDescriptor, ActionForm, ActionStatus, ActionValidationError, action, defineAction };
@@ -0,0 +1,103 @@
1
+ import { d as getCurrentAppRenderRuntime } from "../component-scope-CC3cojX9.js";
2
+ import { r as getCurrentRenderData } from "../render-context-Clw3rFiO.js";
3
+ import { t as state } from "../state-DPl8lffD.js";
4
+ import { jsx, jsxs } from "../jsx-runtime.js";
5
+ import { c as resolveDataRuntimeState, s as invalidateQueriesForRuntime } from "../data-runtime-SJ1BSUvk.js";
6
+ //#region src/actions/runtime.ts
7
+ const emptyFramework = Object.freeze({});
8
+ /** @internal Read Askr-owned state from the current application root. */
9
+ function readActionFramework() {
10
+ return getCurrentAppRenderRuntime()?.framework ?? emptyFramework;
11
+ }
12
+ //#endregion
13
+ //#region src/actions/index.tsx
14
+ function csrfToken() {
15
+ const value = getCurrentRenderData()?.framework.csrf ?? readActionFramework().csrf;
16
+ return typeof value === "string" ? value : void 0;
17
+ }
18
+ function defineAction(options) {
19
+ if (!options.id) throw new Error("defineAction requires a stable id.");
20
+ if (options.input.kind !== "object") throw new Error("defineAction input must be an object schema.");
21
+ return Object.freeze({
22
+ id: options.id,
23
+ input: options.input,
24
+ invalidates: Object.freeze([...options.invalidates ?? []])
25
+ });
26
+ }
27
+ /** A native form bound to a declared action; it is not a synthetic event API. */
28
+ function ActionForm({ action, children, ...props }) {
29
+ const token = csrfToken();
30
+ return /* @__PURE__ */ jsxs("form", {
31
+ ...props,
32
+ method: "post",
33
+ children: [
34
+ /* @__PURE__ */ jsx("input", {
35
+ type: "hidden",
36
+ name: "_askr_action",
37
+ value: action.id
38
+ }),
39
+ token ? /* @__PURE__ */ jsx("input", {
40
+ type: "hidden",
41
+ name: "_csrf",
42
+ value: token
43
+ }) : null,
44
+ children
45
+ ]
46
+ });
47
+ }
48
+ function validationError(value, actionId) {
49
+ if (!value || typeof value !== "object") return void 0;
50
+ const replay = value;
51
+ if (replay.kind !== "invalid" || replay.action !== actionId) return void 0;
52
+ if (!replay.values || !Array.isArray(replay.issues) || !replay.fieldErrors) return void 0;
53
+ return replay;
54
+ }
55
+ function initialStatus(actionId) {
56
+ const replay = validationError(getCurrentRenderData()?.framework.action ?? readActionFramework().action, actionId);
57
+ return replay ? {
58
+ pending: false,
59
+ error: replay
60
+ } : { pending: false };
61
+ }
62
+ /** Returns a command handle, rather than a hook. */
63
+ function action(descriptor) {
64
+ const token = csrfToken();
65
+ const runtime = resolveDataRuntimeState();
66
+ const value = state(initialStatus(descriptor.id));
67
+ const setValue = value.set;
68
+ return {
69
+ state: value,
70
+ async submit(input) {
71
+ setValue({ pending: true });
72
+ try {
73
+ const response = await fetch(location.href, {
74
+ method: "POST",
75
+ headers: {
76
+ "content-type": "application/json",
77
+ accept: "application/vnd.askr.action+json;v=1",
78
+ "x-askr-action": descriptor.id,
79
+ ...token ? { "x-askr-csrf-token": token } : {}
80
+ },
81
+ body: JSON.stringify(input)
82
+ });
83
+ const envelope = await response.json();
84
+ if (!response.ok) throw envelope.error ?? validationError(envelope, descriptor.id) ?? /* @__PURE__ */ new Error(`Action failed (${response.status}).`);
85
+ const invalidates = Array.isArray(envelope.invalidates) ? envelope.invalidates.filter((prefix) => typeof prefix === "string") : descriptor.invalidates;
86
+ for (const prefix of invalidates) invalidateQueriesForRuntime(runtime, prefix, true);
87
+ setValue({
88
+ pending: false,
89
+ result: envelope.result
90
+ });
91
+ return envelope.result;
92
+ } catch (error) {
93
+ setValue({
94
+ pending: false,
95
+ error
96
+ });
97
+ throw error;
98
+ }
99
+ }
100
+ };
101
+ }
102
+ //#endregion
103
+ export { ActionForm, action, defineAction };
@@ -12,4 +12,4 @@ function getPublicAttributeName(propName) {
12
12
  return PUBLIC_ATTRIBUTE_NAME_MAP[propName] ?? propName;
13
13
  }
14
14
  //#endregion
15
- export { getPublicAttributeName };
15
+ export { getPublicAttributeName as t };
@@ -1,5 +1,9 @@
1
- import { BenchmarkRowData } from "./bench/components/benchmark-row.js";
2
-
1
+ //#region src/bench/components/benchmark-row.d.ts
2
+ interface BenchmarkRowData {
3
+ id: number;
4
+ label: string;
5
+ }
6
+ //#endregion
3
7
  //#region src/bench/benchmark-entry.d.ts
4
8
  type RowData = BenchmarkRowData;
5
9
  interface BenchmarkMetadata {
package/dist/benchmark.js CHANGED
@@ -1,18 +1,70 @@
1
- import { flushRuntimeScheduler } from "./runtime/access.js";
2
- import { state } from "./runtime/state.js";
3
- import { selector } from "./runtime/selector.js";
4
- import "./runtime/index.js";
5
- import { jsx } from "./jsx-runtime.js";
6
- import { installRendererBridge } from "./renderer/index.js";
7
- import "./jsx-runtime2.js";
8
- import { createIsland } from "./boot/index.js";
9
- import { BenchmarkTable } from "./bench/components/benchmark-table.js";
1
+ import { r as flushRuntimeScheduler } from "./access-Bg4RJNC8.js";
2
+ import { t as installRendererBridge } from "./renderer-DrLRAD5y.js";
3
+ import { t as state } from "./state-DPl8lffD.js";
4
+ import { t as selector } from "./selector-DafVYzV4.js";
5
+ import { jsx, jsxs } from "./jsx-runtime.js";
6
+ import { i as For } from "./control-mXROCjL3.js";
7
+ import { t as createIsland } from "./boot-2ZR3MtO0.js";
8
+ //#region src/bench/components/benchmark-row.tsx
9
+ function BenchmarkRow({ item, isSelected, onSelect, onRemove }) {
10
+ return /* @__PURE__ */ jsxs("tr", {
11
+ class: () => isSelected(item.id) ? "danger" : "",
12
+ children: [
13
+ /* @__PURE__ */ jsx("td", {
14
+ class: "col-md-1",
15
+ children: () => item.id
16
+ }, "id"),
17
+ /* @__PURE__ */ jsx("td", {
18
+ class: "col-md-4",
19
+ children: /* @__PURE__ */ jsx("a", {
20
+ onClick: (event) => {
21
+ event.preventDefault();
22
+ onSelect(item.id);
23
+ },
24
+ children: () => item.label
25
+ })
26
+ }, "label"),
27
+ /* @__PURE__ */ jsx("td", {
28
+ class: "col-md-1",
29
+ children: /* @__PURE__ */ jsx("a", {
30
+ onClick: (event) => {
31
+ event.preventDefault();
32
+ onRemove(item.id);
33
+ },
34
+ children: /* @__PURE__ */ jsx("span", {
35
+ class: "glyphicon glyphicon-remove",
36
+ "aria-hidden": "true"
37
+ })
38
+ })
39
+ }, "remove"),
40
+ /* @__PURE__ */ jsx("td", { class: "col-md-6" }, "spacer")
41
+ ]
42
+ });
43
+ }
44
+ //#endregion
45
+ //#region src/bench/components/benchmark-table.tsx
46
+ function BenchmarkTable({ rows, isSelected, onSelect, onRemove }) {
47
+ return /* @__PURE__ */ jsx("table", {
48
+ class: "table table-hover table-striped test-data",
49
+ children: /* @__PURE__ */ jsx("tbody", { children: /* @__PURE__ */ jsx(For, {
50
+ each: () => rows(),
51
+ by: (item) => item.id,
52
+ children: (item) => /* @__PURE__ */ jsx(BenchmarkRow, {
53
+ item,
54
+ isSelected,
55
+ onSelect,
56
+ onRemove
57
+ })
58
+ }) })
59
+ });
60
+ }
61
+ //#endregion
10
62
  //#region src/bench/benchmark-entry.tsx
11
63
  installRendererBridge();
12
64
  const benchmarkMetadata = {
13
65
  packageName: "@askrjs/askr",
14
- packageVersion: "0.0.52",
15
- buildLabel: "0.0.52-local"
66
+ packageVersion: "0.0.54",
67
+ buildLabel: "0.0.54-local"
16
68
  };
17
69
  function getBenchmarkMetadata() {
18
70
  return { ...benchmarkMetadata };
@@ -1,6 +1,65 @@
1
- import { HydrateSPAConfig, IslandConfig, IslandsConfig, SPAConfig } from "./types.js";
2
- import { cleanupApp, hasApp } from "./root-lifecycle.js";
1
+ import { s as ComponentFunction } from "../control-BI4RMD2z.js";
2
+ import { v as DataRuntime } from "../index-Bki2rqcr.js";
3
+ import { P as RouteRegistry, m as RouteAuthOptions, p as Route, x as RouteManifest } from "../router-DCfwLBr-.js";
4
+ import { d as ScrollRestorationOptions } from "../navigate-BVDCzOuB.js";
3
5
 
6
+ //#region src/boot/types.d.ts
7
+ type IslandConfig = {
8
+ root: Element | string;
9
+ component: ComponentFunction;
10
+ cleanupStrict?: boolean;
11
+ routes?: never;
12
+ };
13
+ type IslandsConfig = {
14
+ islands: IslandConfig[];
15
+ };
16
+ type BootRouteSource = {
17
+ registry: RouteRegistry;
18
+ manifest?: RouteManifest;
19
+ routes?: Route[];
20
+ } | {
21
+ manifest: RouteManifest;
22
+ registry?: RouteRegistry;
23
+ routes?: Route[];
24
+ } | {
25
+ manifest?: RouteManifest;
26
+ registry?: RouteRegistry;
27
+ routes: Route[];
28
+ };
29
+ type SPAConfig = BootRouteSource & {
30
+ root: Element | string;
31
+ /**
32
+ * Preferred: pass a route registry built via `createRouteRegistry(() => { ... })`.
33
+ * ```ts
34
+ * import { createRouteRegistry } from '@askrjs/askr/router';
35
+ * const registry = createRouteRegistry(() => { ... });
36
+ * await createSPA({ root: '#app', registry });
37
+ * ```
38
+ */
39
+ auth?: RouteAuthOptions;
40
+ scrollRestoration?: boolean | ScrollRestorationOptions;
41
+ cleanupStrict?: boolean;
42
+ component?: never;
43
+ };
44
+ type HydrateSPAConfig = BootRouteSource & {
45
+ root: Element | string;
46
+ dataRuntime?: DataRuntime; /** Preferred route input - see `SPAConfig`. */
47
+ auth?: RouteAuthOptions;
48
+ scrollRestoration?: boolean | ScrollRestorationOptions;
49
+ cleanupStrict?: boolean;
50
+ hydrate?: {
51
+ verifyMarkup?: boolean;
52
+ deferUntilIdle?: boolean;
53
+ deferBelowFold?: boolean;
54
+ foldThreshold?: number;
55
+ skipSelectors?: string[];
56
+ };
57
+ };
58
+ //#endregion
59
+ //#region src/boot/root-lifecycle.d.ts
60
+ declare function cleanupApp(root: Element | string): void;
61
+ declare function hasApp(root: Element | string): boolean;
62
+ //#endregion
4
63
  //#region src/boot/index.d.ts
5
64
  /**
6
65
  * createIsland: Enhances existing DOM (no router, mounts once)