@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,112 +0,0 @@
1
- import { logger } from "../common/logger.js";
2
- import { withAsyncResourceContext } from "./context.js";
3
- import { isPromiseLike } from "../common/promise.js";
4
- import { brandSnapshotSource } from "./snapshot-source.js";
5
- import { throwSSRDataMissing } from "../common/render-context.js";
6
- //#region src/runtime/resource-cell.ts
7
- /**
8
- * Pure, component-agnostic ResourceCell state machine.
9
- * - Holds value/pending/error/generation/controller
10
- * - Exposes a stable `snapshot` object: { value, pending, error, refresh }
11
- * - Uses `withAsyncResourceContext` to bind the synchronous execution step
12
- * to a captured frame. Continuations after await do not see the frame.
13
- */
14
- var ResourceCell = class {
15
- constructor(fn, deps, resourceFrame) {
16
- this.value = null;
17
- this.pending = true;
18
- this.error = null;
19
- this.generation = 0;
20
- this.controller = null;
21
- this.deps = null;
22
- this.resourceFrame = null;
23
- this.subscribers = /* @__PURE__ */ new Set();
24
- this.disposed = false;
25
- this.fn = fn;
26
- this.deps = deps ? deps.slice() : null;
27
- this.resourceFrame = resourceFrame;
28
- this.snapshot = brandSnapshotSource({
29
- value: null,
30
- pending: true,
31
- error: null,
32
- refresh: () => this.refresh()
33
- });
34
- }
35
- setLoader(fn) {
36
- this.fn = fn;
37
- }
38
- subscribe(cb) {
39
- this.subscribers.add(cb);
40
- return () => this.subscribers.delete(cb);
41
- }
42
- notifySubscribers() {
43
- this.snapshot.value = this.value;
44
- this.snapshot.pending = this.pending;
45
- this.snapshot.error = this.error;
46
- for (const cb of this.subscribers) cb();
47
- }
48
- start(ssr = false, notify = true) {
49
- if (this.disposed) return;
50
- const generation = this.generation;
51
- this.controller?.abort();
52
- const controller = new AbortController();
53
- this.controller = controller;
54
- this.pending = true;
55
- this.error = null;
56
- if (notify) this.notifySubscribers();
57
- let result;
58
- try {
59
- result = withAsyncResourceContext(this.resourceFrame, () => this.fn({ signal: controller.signal }));
60
- } catch (err) {
61
- this.pending = false;
62
- this.error = err instanceof Error ? err : new Error(String(err));
63
- if (notify) this.notifySubscribers();
64
- return;
65
- }
66
- if (!isPromiseLike(result)) {
67
- this.value = result;
68
- this.pending = false;
69
- this.error = null;
70
- if (notify) this.notifySubscribers();
71
- return;
72
- }
73
- if (ssr) throwSSRDataMissing();
74
- Promise.resolve(result).then((val) => {
75
- if (this.generation !== generation) return;
76
- if (this.controller !== controller) return;
77
- if (controller.signal.aborted) return;
78
- this.value = val;
79
- this.pending = false;
80
- this.error = null;
81
- this.notifySubscribers();
82
- }).catch((err) => {
83
- if (this.generation !== generation) return;
84
- if (this.controller !== controller) return;
85
- if (controller.signal.aborted || err instanceof Error && err.name === "AbortError" || typeof DOMException !== "undefined" && err instanceof DOMException && err.name === "AbortError") return;
86
- this.pending = false;
87
- this.error = err instanceof Error ? err : new Error(String(err));
88
- try {
89
- if (this.ownerName) logger.error(`[Askr] Async resource error in ${this.ownerName}:`, err);
90
- else logger.error("[Askr] Async resource error:", err);
91
- } catch {}
92
- this.notifySubscribers();
93
- });
94
- }
95
- refresh() {
96
- if (this.disposed) return;
97
- this.generation++;
98
- this.controller?.abort();
99
- this.start();
100
- }
101
- abort() {
102
- this.controller?.abort();
103
- }
104
- dispose() {
105
- if (this.disposed) return;
106
- this.disposed = true;
107
- this.controller?.abort();
108
- this.subscribers.clear();
109
- }
110
- };
111
- //#endregion
112
- export { ResourceCell };
@@ -1,12 +0,0 @@
1
- //#region src/runtime/resource-operation.d.ts
2
- interface ResourceResult<T> {
3
- value: T | null;
4
- pending: boolean;
5
- error: Error | null;
6
- refresh(): void;
7
- }
8
- declare function resource<T, const TDeps extends readonly unknown[]>(fn: (opts: {
9
- signal: AbortSignal;
10
- }) => PromiseLike<T> | T, deps: TDeps): ResourceResult<T>;
11
- //#endregion
12
- export { ResourceResult, resource };
@@ -1,57 +0,0 @@
1
- import { globalScheduler } from "./scheduler.js";
2
- //#region src/runtime/runtime.ts
3
- function createMissingRendererHost() {
4
- const missing = (method) => {
5
- throw new Error(`[Askr] renderer host is not configured; cannot call ${method}().`);
6
- };
7
- return {
8
- evaluate() {
9
- missing("evaluate");
10
- },
11
- cleanupInstancesUnder() {
12
- missing("cleanupInstancesUnder");
13
- },
14
- teardownNodeSubtree() {
15
- missing("teardownNodeSubtree");
16
- },
17
- populateKeyMapForElement() {},
18
- getKeyMapForElement() {},
19
- isKeyedReorderFastPathEligible() {
20
- return {
21
- useFastPath: false,
22
- totalKeyed: 0,
23
- totalChildren: 0,
24
- currentKeyCount: 0,
25
- moveCount: 0,
26
- lisLen: 0,
27
- hasPropChanges: false,
28
- isWholeKeyedList: false
29
- };
30
- },
31
- markReactivePropsDirtySource() {}
32
- };
33
- }
34
- var AskrRuntime = class {
35
- constructor(options = {}) {
36
- this.scheduler = options.scheduler ?? globalScheduler;
37
- this.rendererHost = options.renderer ?? createMissingRendererHost();
38
- }
39
- get renderer() {
40
- return this.rendererHost;
41
- }
42
- configureRenderer(renderer) {
43
- this.rendererHost = renderer;
44
- }
45
- };
46
- const defaultRuntime = new AskrRuntime({ scheduler: globalScheduler });
47
- function createRuntime(options = {}) {
48
- return new AskrRuntime(options);
49
- }
50
- function getDefaultRuntime() {
51
- return defaultRuntime;
52
- }
53
- function configureRuntimeRenderer(renderer, runtime = defaultRuntime) {
54
- runtime.configureRenderer(renderer);
55
- }
56
- //#endregion
57
- export { AskrRuntime, configureRuntimeRenderer, createRuntime, defaultRuntime, getDefaultRuntime };
@@ -1,22 +0,0 @@
1
- import { enqueueRuntimeLane } from "./access.js";
2
- //#region src/runtime/selector-store.ts
3
- const dirtySelectorRecords = /* @__PURE__ */ new Set();
4
- let hasPendingSelectorFlush = false;
5
- function markDirtySelectorRecord(record, flush) {
6
- record._dirty = true;
7
- if (record._scheduled) return;
8
- record._scheduled = true;
9
- dirtySelectorRecords.add(record);
10
- if (hasPendingSelectorFlush) return;
11
- hasPendingSelectorFlush = true;
12
- enqueueRuntimeLane("derived", flush);
13
- }
14
- function takeDirtySelectorRecords() {
15
- hasPendingSelectorFlush = false;
16
- if (dirtySelectorRecords.size === 0) return [];
17
- const pending = Array.from(dirtySelectorRecords);
18
- dirtySelectorRecords.clear();
19
- return pending;
20
- }
21
- //#endregion
22
- export { markDirtySelectorRecord, takeDirtySelectorRecords };
@@ -1,10 +0,0 @@
1
- //#region src/runtime/selector.d.ts
2
- interface Selector<T> {
3
- (candidate: T): boolean;
4
- }
5
- type SelectorEquals<T> = {
6
- bivarianceHack(a: T, b: T): boolean;
7
- }['bivarianceHack'];
8
- declare function selector<T>(source: () => T, equals?: SelectorEquals<T>): Selector<T>;
9
- //#endregion
10
- export { Selector, selector };
@@ -1,9 +0,0 @@
1
- //#region src/runtime/snapshot-source.d.ts
2
- declare const SNAPSHOT_SOURCE_BRAND: unique symbol;
3
- type SnapshotSourceBrand = {
4
- readonly [SNAPSHOT_SOURCE_BRAND]: true;
5
- };
6
- declare function brandSnapshotSource<T extends object>(value: T): T & SnapshotSourceBrand;
7
- declare function isSnapshotSource(value: unknown): value is SnapshotSourceBrand;
8
- //#endregion
9
- export { SNAPSHOT_SOURCE_BRAND, SnapshotSourceBrand };
@@ -1,54 +0,0 @@
1
- import { ReadableSource } from "./readable.js";
2
-
3
- //#region src/runtime/state.d.ts
4
- /**
5
- * State value holder - callable to read, has set method to update
6
- * @example
7
- * const count = state(0);
8
- * count(); // read: 0
9
- * count.set(1); // write: triggers re-render
10
- */
11
- interface State<T> extends ReadableSource<T> {
12
- (): T;
13
- set(...args: StateSetterArgs<T>): void;
14
- [Symbol.iterator](): IterableIterator<StateTuple<T>[number]>;
15
- }
16
- type StateUpdater<T> = (prev: T) => T;
17
- type StateSetterArgs<T> = [Extract<T, (...args: any[]) => unknown>] extends [never] ? [value: T] | [updater: StateUpdater<T>] : [updater: StateUpdater<T>];
18
- /**
19
- * Public setter type for state cells.
20
- */
21
- type StateSetter<T> = (...args: StateSetterArgs<T>) => void;
22
- /**
23
- * Tuple-first state handle returned by `state()`.
24
- */
25
- type StateTuple<T> = [get: State<T>, set: StateSetter<T>] & State<T>;
26
- /**
27
- * Creates a local state value for a component
28
- * Optimized for:
29
- * - O(1) read performance
30
- * - Minimal allocation per state
31
- * - Fast scheduler integration
32
- *
33
- * IMPORTANT: state() must be called during component render execution.
34
- * It captures the current component instance from context.
35
- * Calling outside a component function will throw an error.
36
- *
37
- * @example
38
- * ```ts
39
- * // ✅ Correct: called during render
40
- * export function Counter() {
41
- * const [count, setCount] = state(0);
42
- * return { type: 'button', children: [count()] };
43
- * }
44
- *
45
- * // ❌ Wrong: called outside component
46
- * const count = state(0);
47
- * export function BadComponent() {
48
- * return { type: 'div' };
49
- * }
50
- * ```
51
- */
52
- declare function state<T>(initialValue: T): StateTuple<T>;
53
- //#endregion
54
- export { State, StateSetter, StateTuple, state };
@@ -1,101 +0,0 @@
1
- import { renderDocument } from "../common/ssr.js";
2
- import { renderToString } from "../ssr/index-internal.js";
3
- import "../ssr/index.js";
4
- import { getOutputFilePath, interpolateRoutePath } from "./route-utils.js";
5
- import { resolveSsgRouteData } from "./resolve-ssg-data.js";
6
- //#region src/ssg/batch-render.ts
7
- /**
8
- * Batch rendering of multiple routes for SSG
9
- */
10
- /**
11
- * Render multiple routes in parallel with error handling
12
- */
13
- async function batchRenderRoutes(routes, options = {}) {
14
- const { seed = 12345, dataMap = {}, concurrency = 1, document } = options;
15
- const workerCount = Math.max(1, Math.min(concurrency, routes.length || 1));
16
- const results = [];
17
- results.length = routes.length;
18
- let nextIndex = 0;
19
- const renderOne = async (route) => {
20
- const startTime = performance.now();
21
- const url = interpolateRoutePath(route.path, route.params);
22
- const requestUrl = new URL(url, "http://localhost");
23
- const resolvedData = resolveSsgRouteData(dataMap, route.path, url);
24
- const baseData = resolvedData.hasData ? resolvedData.data : void 0;
25
- const resourceCount = resolvedData.hasData && baseData ? Object.keys(baseData).length : 0;
26
- const mergedHandler = route.handler ? route.handler : (params, ctx) => {
27
- const component = route.component;
28
- return component({
29
- ...route.props,
30
- ...params
31
- }, ctx);
32
- };
33
- try {
34
- const html = renderToString({
35
- url,
36
- routes: [{
37
- path: route.path,
38
- handler: mergedHandler,
39
- namespace: route.namespace
40
- }],
41
- seed,
42
- data: baseData,
43
- document: document === void 0 ? void 0 : ({ appHtml }) => renderDocument(document, {
44
- appHtml,
45
- context: {
46
- mode: "ssg",
47
- url,
48
- pathname: requestUrl.pathname,
49
- search: requestUrl.search,
50
- hash: requestUrl.hash,
51
- params: route.params ?? {},
52
- data: baseData,
53
- seed,
54
- route: {
55
- path: route.path,
56
- namespace: route.namespace
57
- }
58
- }
59
- }, "createStaticGen()")
60
- });
61
- const duration = performance.now() - startTime;
62
- return {
63
- path: url,
64
- filePath: getOutputFilePath(url),
65
- html,
66
- fileSize: Buffer.byteLength(html, "utf8"),
67
- renderDuration: Math.round(duration),
68
- resourceCount,
69
- status: "success",
70
- reason: "full",
71
- written: false
72
- };
73
- } catch (error) {
74
- const duration = performance.now() - startTime;
75
- return {
76
- path: url,
77
- filePath: getOutputFilePath(url),
78
- html: "",
79
- fileSize: 0,
80
- renderDuration: Math.round(duration),
81
- resourceCount,
82
- status: "error",
83
- reason: "full",
84
- written: false,
85
- error: error instanceof Error ? error.message : String(error)
86
- };
87
- }
88
- };
89
- const worker = async () => {
90
- while (true) {
91
- const current = nextIndex;
92
- nextIndex += 1;
93
- if (current >= routes.length) return;
94
- results[current] = await renderOne(routes[current]);
95
- }
96
- };
97
- await Promise.all(Array.from({ length: workerCount }, () => worker()));
98
- return results;
99
- }
100
- //#endregion
101
- export { batchRenderRoutes };
@@ -1,66 +0,0 @@
1
- import { RouteRegistry } from "../common/router.js";
2
- import { RouteConfig, SSGGenerateOptions, SSGOptions, SSGResult } from "./types.js";
3
- import * as fs from "node:fs/promises";
4
-
5
- //#region src/ssg/create-static-gen.d.ts
6
- type AnyRouteConfig = RouteConfig<string>;
7
- type StrictRouteConfig<TRoute extends AnyRouteConfig> = Omit<TRoute, 'params' | 'entries'> & {
8
- params?: RouteConfig<TRoute['path']>['params'];
9
- entries?: RouteConfig<TRoute['path']>['entries'];
10
- };
11
- type StrictRouteConfigs<TRoutes extends readonly AnyRouteConfig[]> = { [TIndex in keyof TRoutes]: TRoutes[TIndex] extends AnyRouteConfig ? StrictRouteConfig<TRoutes[TIndex]> : never };
12
- type StaticGenRouteSource<TRoutes extends readonly AnyRouteConfig[]> = {
13
- routes: TRoutes & StrictRouteConfigs<TRoutes>;
14
- registry?: never;
15
- } | {
16
- registry: RouteRegistry;
17
- routes?: never;
18
- };
19
- type OutputDirectoryFileOperations = Pick<typeof fs, 'rename' | 'rm'>;
20
- declare function replaceOutputDirectory(stagingDir: string, outputDir: string, fileOperations?: OutputDirectoryFileOperations): Promise<void>;
21
- /**
22
- * Create a Static Site Generator
23
- *
24
- * Usage:
25
- * ```ts
26
- * const ssg = createStaticGen({
27
- * routes: [
28
- * { path: '/', component: HomePage },
29
- * { path: '/about', component: AboutPage },
30
- * ],
31
- * outputDir: './dist',
32
- * dataOverrides: {
33
- * '/api/posts': { posts: [...] }
34
- * }
35
- * });
36
- *
37
- * const result = await ssg.generate();
38
- * console.log(`Generated ${result.successful}/${result.totalRoutes} routes`);
39
- * ```
40
- */
41
- declare function createStaticGen<const TRoutes extends readonly AnyRouteConfig[]>(options: Omit<SSGOptions<TRoutes>, 'routes' | 'registry'> & StaticGenRouteSource<TRoutes>): {
42
- /**
43
- * Generate static HTML for all routes
44
- * Writes to outputDir with metadata.json
45
- * Returns detailed results
46
- */
47
- generate(generateOptions?: SSGGenerateOptions): Promise<SSGResult>;
48
- /**
49
- * Get effective config in a serializable form for diagnostics.
50
- */
51
- getConfig(): {
52
- routeCount: number;
53
- outputDir: string;
54
- seed: number;
55
- concurrency: number;
56
- parallelism: number;
57
- hasDataOverrides: boolean;
58
- };
59
- /**
60
- * Get the last generation result
61
- * Returns null if generate() hasn't been called
62
- */
63
- getResult(): SSGResult | null;
64
- };
65
- //#endregion
66
- export { createStaticGen };