@askrjs/askr 0.0.50 → 0.0.52

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 (594) hide show
  1. package/dist/bench/components/benchmark-row.d.ts +2 -2
  2. package/dist/bench/components/benchmark-row.js +0 -2
  3. package/dist/bench/components/benchmark-table.js +0 -2
  4. package/dist/benchmark.d.ts +1 -2
  5. package/dist/benchmark.js +5 -6
  6. package/dist/bin/askr-ssg.d.ts +1 -2
  7. package/dist/bin/askr-ssg.js +21 -6
  8. package/dist/boot/hydration.js +10 -11
  9. package/dist/boot/index.d.ts +1 -2
  10. package/dist/boot/index.js +21 -11
  11. package/dist/boot/root-lifecycle.d.ts +6 -3
  12. package/dist/boot/root-lifecycle.js +18 -14
  13. package/dist/boot/route-startup.js +13 -4
  14. package/dist/boot/types.d.ts +1 -2
  15. package/dist/common/attr-names.js +0 -2
  16. package/dist/common/component.d.ts +1 -2
  17. package/dist/common/control.d.ts +1 -2
  18. package/dist/common/control.js +0 -2
  19. package/dist/common/dom-range.d.ts +13 -0
  20. package/dist/common/env.js +1 -7
  21. package/dist/common/error-boundary.d.ts +15 -0
  22. package/dist/common/invariant.js +15 -0
  23. package/dist/common/jsx.d.ts +1 -2
  24. package/dist/common/jsx.js +0 -2
  25. package/dist/{dev → common}/logger.js +5 -8
  26. package/dist/common/promise.js +0 -2
  27. package/dist/common/props.d.ts +1 -2
  28. package/dist/common/render-context.js +0 -2
  29. package/dist/common/route-activity.js +0 -2
  30. package/dist/common/router-internal.js +0 -2
  31. package/dist/common/router.d.ts +1 -2
  32. package/dist/common/ssr-errors.d.ts +1 -2
  33. package/dist/common/ssr-errors.js +0 -2
  34. package/dist/common/ssr.d.ts +1 -2
  35. package/dist/common/ssr.js +0 -2
  36. package/dist/common/vnode.d.ts +1 -2
  37. package/dist/common/vnode.js +0 -2
  38. package/dist/components/error-boundary.d.ts +2 -16
  39. package/dist/components/error-boundary.js +2 -76
  40. package/dist/components/index.d.ts +2 -1
  41. package/dist/components/link.d.ts +2 -2
  42. package/dist/components/link.js +2 -2
  43. package/dist/control/case.d.ts +1 -2
  44. package/dist/control/case.js +1 -2
  45. package/dist/control/for.d.ts +3 -4
  46. package/dist/control/for.js +2 -4
  47. package/dist/control/shared.d.ts +1 -2
  48. package/dist/control/shared.js +0 -2
  49. package/dist/control/show.d.ts +1 -2
  50. package/dist/control/show.js +1 -2
  51. package/dist/data/data-runtime.d.ts +1 -2
  52. package/dist/data/data-runtime.js +3 -5
  53. package/dist/data/invalidation-listeners.js +0 -2
  54. package/dist/data/invalidation.d.ts +1 -2
  55. package/dist/data/invalidation.js +2 -4
  56. package/dist/data/mutation-cell.d.ts +1 -2
  57. package/dist/data/mutation-cell.js +7 -6
  58. package/dist/data/query-cell.d.ts +3 -2
  59. package/dist/data/query-cell.js +45 -11
  60. package/dist/data/query-key.js +0 -2
  61. package/dist/data/shared.js +3 -3
  62. package/dist/data/testing.js +2 -0
  63. package/dist/data/types.d.ts +1 -2
  64. package/dist/foundations/icon/icon.d.ts +1 -2
  65. package/dist/foundations/icon/icon.js +0 -2
  66. package/dist/foundations/icon/icon.types.d.ts +1 -2
  67. package/dist/foundations/index.d.ts +1 -1
  68. package/dist/foundations/index.js +1 -1
  69. package/dist/foundations/interactions/dismissable.d.ts +1 -2
  70. package/dist/foundations/interactions/dismissable.js +0 -2
  71. package/dist/foundations/interactions/focusable.d.ts +1 -2
  72. package/dist/foundations/interactions/focusable.js +0 -2
  73. package/dist/foundations/interactions/hoverable.d.ts +1 -2
  74. package/dist/foundations/interactions/hoverable.js +0 -2
  75. package/dist/foundations/interactions/interaction-policy.d.ts +1 -2
  76. package/dist/foundations/interactions/interaction-policy.js +0 -2
  77. package/dist/foundations/interactions/pressable.d.ts +1 -2
  78. package/dist/foundations/interactions/pressable.js +0 -2
  79. package/dist/foundations/interactions/roving-focus.d.ts +1 -2
  80. package/dist/foundations/interactions/roving-focus.js +0 -2
  81. package/dist/foundations/state/controllable.d.ts +1 -3
  82. package/dist/foundations/state/controllable.js +1 -2
  83. package/dist/foundations/structures/collection.d.ts +1 -2
  84. package/dist/foundations/structures/collection.js +0 -2
  85. package/dist/foundations/structures/index.d.ts +1 -1
  86. package/dist/foundations/structures/index.js +2 -1
  87. package/dist/foundations/structures/layer.d.ts +1 -2
  88. package/dist/foundations/structures/layer.js +0 -2
  89. package/dist/foundations/structures/layout.d.ts +1 -2
  90. package/dist/foundations/structures/layout.js +0 -2
  91. package/dist/foundations/structures/portal.d.ts +2 -24
  92. package/dist/foundations/structures/portal.js +3 -187
  93. package/dist/foundations/structures/presence.d.ts +1 -2
  94. package/dist/foundations/structures/presence.js +0 -2
  95. package/dist/foundations/structures/slot.d.ts +1 -2
  96. package/dist/foundations/structures/slot.js +0 -2
  97. package/dist/foundations/utilities/aria.d.ts +1 -2
  98. package/dist/foundations/utilities/aria.js +0 -2
  99. package/dist/foundations/utilities/compose-handlers.d.ts +1 -2
  100. package/dist/foundations/utilities/compose-handlers.js +0 -2
  101. package/dist/foundations/utilities/compose-ref.d.ts +1 -2
  102. package/dist/foundations/utilities/compose-ref.js +0 -2
  103. package/dist/foundations/utilities/event-types.d.ts +1 -2
  104. package/dist/foundations/utilities/merge-props.d.ts +1 -2
  105. package/dist/foundations/utilities/merge-props.js +0 -2
  106. package/dist/foundations/utilities/use-id.d.ts +1 -2
  107. package/dist/foundations/utilities/use-id.js +0 -2
  108. package/dist/fx/fx.d.ts +1 -2
  109. package/dist/fx/fx.js +2 -4
  110. package/dist/fx/index.js +1 -0
  111. package/dist/fx/noop.js +0 -2
  112. package/dist/fx/timing.d.ts +1 -2
  113. package/dist/fx/timing.js +0 -2
  114. package/dist/index.d.ts +4 -4
  115. package/dist/index.js +4 -6
  116. package/dist/jsx/types.d.ts +1 -2
  117. package/dist/jsx/utils.d.ts +1 -2
  118. package/dist/jsx/utils.js +0 -2
  119. package/dist/jsx-dev-runtime.d.ts +16 -2
  120. package/dist/jsx-dev-runtime.js +4 -12
  121. package/dist/jsx-runtime.d.ts +16 -2
  122. package/dist/jsx-runtime.js +16 -24
  123. package/dist/jsx-runtime2.d.ts +1 -1
  124. package/dist/renderer/attributes.js +29 -6
  125. package/dist/renderer/boundaries.js +50 -174
  126. package/dist/renderer/boundary-materialization.js +72 -0
  127. package/dist/renderer/boundary-range-adoption.js +76 -0
  128. package/dist/renderer/boundary-range-sync.js +101 -0
  129. package/dist/renderer/boundary-state.js +50 -0
  130. package/dist/renderer/child-shape.js +2 -4
  131. package/dist/renderer/children-fastpath.js +149 -0
  132. package/dist/renderer/children.js +3 -140
  133. package/dist/renderer/cleanup.js +72 -15
  134. package/dist/renderer/component-host-cleanup.js +124 -49
  135. package/dist/renderer/component-host-instances.js +60 -9
  136. package/dist/renderer/component-host-replacement.js +105 -0
  137. package/dist/renderer/component-host-results.js +138 -0
  138. package/dist/renderer/component-host.js +95 -170
  139. package/dist/renderer/dom-host.js +0 -2
  140. package/dist/renderer/dom-internal.js +115 -57
  141. package/dist/renderer/dom-range.js +161 -0
  142. package/dist/renderer/dom.js +7 -5
  143. package/dist/renderer/element-children.js +112 -32
  144. package/dist/renderer/error-boundary-dom.js +70 -13
  145. package/dist/renderer/evaluate-dom-range.js +3 -4
  146. package/dist/renderer/evaluate-reconcile.js +18 -42
  147. package/dist/renderer/evaluate.js +14 -3
  148. package/dist/renderer/fastpath.js +7 -14
  149. package/dist/renderer/for-commit-dom-map.js +6 -18
  150. package/dist/renderer/for-commit-removal.js +8 -17
  151. package/dist/renderer/for-commit-reorder.js +2 -4
  152. package/dist/renderer/for-commit.js +173 -45
  153. package/dist/renderer/hydration-boundaries.js +60 -0
  154. package/dist/renderer/hydration-listener-transaction.js +49 -0
  155. package/dist/renderer/index.js +11 -8
  156. package/dist/renderer/intrinsic-blueprint-analysis.js +202 -0
  157. package/dist/renderer/intrinsic-blueprint-bindings.js +152 -0
  158. package/dist/renderer/intrinsic-blueprint-materialization.js +100 -0
  159. package/dist/renderer/intrinsic-blueprint.js +30 -0
  160. package/dist/renderer/intrinsic-hydration-adoption.js +66 -0
  161. package/dist/renderer/keyed-children.js +3 -9
  162. package/dist/renderer/keyed.js +10 -10
  163. package/dist/renderer/namespaces.js +0 -2
  164. package/dist/renderer/prop-bindings.js +59 -24
  165. package/dist/renderer/reactive-child-dom.js +10 -4
  166. package/dist/renderer/reactive-child-sources.js +0 -2
  167. package/dist/renderer/reactive-children.js +33 -24
  168. package/dist/renderer/reconcile-commit.js +0 -2
  169. package/dist/renderer/reconcile-fastpaths.js +6 -12
  170. package/dist/renderer/reconcile-resolution.js +32 -56
  171. package/dist/renderer/reconcile.js +0 -2
  172. package/dist/renderer/retained-element-rollback.js +161 -149
  173. package/dist/renderer/stable-patch.js +5 -7
  174. package/dist/renderer/static-reuse.js +0 -2
  175. package/dist/renderer/utils.js +20 -10
  176. package/dist/resources/index.js +1 -2
  177. package/dist/router/access.js +0 -2
  178. package/dist/router/activity.d.ts +1 -2
  179. package/dist/router/activity.js +20 -24
  180. package/dist/router/authoring.d.ts +1 -2
  181. package/dist/router/authoring.js +1 -3
  182. package/dist/router/index.d.ts +1 -1
  183. package/dist/router/internal-types.d.ts +1 -2
  184. package/dist/router/lazy.d.ts +1 -2
  185. package/dist/router/lazy.js +0 -2
  186. package/dist/router/manifest.d.ts +1 -2
  187. package/dist/router/manifest.js +0 -2
  188. package/dist/router/match.js +0 -2
  189. package/dist/router/navigate.d.ts +1 -2
  190. package/dist/router/navigate.js +5 -8
  191. package/dist/router/navigation-registry.d.ts +1 -2
  192. package/dist/router/navigation-registry.js +1 -3
  193. package/dist/router/navigation-scroll.d.ts +1 -2
  194. package/dist/router/navigation-scroll.js +0 -2
  195. package/dist/router/navigation-targets.d.ts +3 -4
  196. package/dist/router/navigation-targets.js +425 -44
  197. package/dist/router/policy.d.ts +1 -2
  198. package/dist/router/policy.js +0 -2
  199. package/dist/router/rendering.d.ts +1 -2
  200. package/dist/router/rendering.js +5 -3
  201. package/dist/router/resolution.d.ts +2 -16
  202. package/dist/router/resolution.js +6 -175
  203. package/dist/router/route-context.js +0 -2
  204. package/dist/router/route-matching.d.ts +19 -0
  205. package/dist/router/route-matching.js +173 -0
  206. package/dist/router/route-query.d.ts +1 -2
  207. package/dist/router/route-query.js +1 -3
  208. package/dist/router/route.js +4 -2
  209. package/dist/router/store.d.ts +1 -2
  210. package/dist/router/store.js +0 -2
  211. package/dist/router/testing.js +4 -0
  212. package/dist/runtime/access.d.ts +19 -0
  213. package/dist/runtime/access.js +0 -2
  214. package/dist/runtime/child-scope.d.ts +21 -2
  215. package/dist/runtime/child-scope.js +101 -54
  216. package/dist/runtime/component-cleanup.d.ts +1 -2
  217. package/dist/runtime/component-cleanup.js +3 -5
  218. package/dist/runtime/component-commit.js +26 -24
  219. package/dist/runtime/component-facade.js +5 -3
  220. package/dist/runtime/component-internal.d.ts +12 -7
  221. package/dist/runtime/component-internal.js +64 -46
  222. package/dist/runtime/component-lifecycle.d.ts +2 -41
  223. package/dist/runtime/component-lifecycle.js +6 -149
  224. package/dist/runtime/component-scope.d.ts +4 -5
  225. package/dist/runtime/component-scope.js +27 -8
  226. package/dist/runtime/component.js +4 -3
  227. package/dist/runtime/context.d.ts +5 -2
  228. package/dist/runtime/context.js +29 -3
  229. package/dist/runtime/control.d.ts +22 -3
  230. package/dist/runtime/control.js +168 -55
  231. package/dist/runtime/derive.d.ts +1 -2
  232. package/dist/runtime/derive.js +0 -2
  233. package/dist/runtime/dev-namespace.d.ts +30 -0
  234. package/dist/runtime/dev-namespace.js +32 -25
  235. package/dist/runtime/effect.d.ts +8 -5
  236. package/dist/runtime/effect.js +158 -75
  237. package/dist/runtime/error-boundary.d.ts +4 -0
  238. package/dist/runtime/error-boundary.js +29 -0
  239. package/dist/runtime/events.d.ts +58 -0
  240. package/dist/runtime/events.js +67 -70
  241. package/dist/runtime/execution-model.d.ts +6 -0
  242. package/dist/runtime/execution-model.js +0 -2
  243. package/dist/runtime/fastlane.d.ts +33 -0
  244. package/dist/runtime/fastlane.js +0 -2
  245. package/dist/runtime/for-bench.d.ts +1 -2
  246. package/dist/runtime/for-bench.js +9 -167
  247. package/dist/runtime/for-internal.d.ts +73 -10
  248. package/dist/runtime/for-internal.js +201 -14
  249. package/dist/runtime/for-reconcile.d.ts +1 -2
  250. package/dist/runtime/for-reconcile.js +76 -23
  251. package/dist/runtime/for-scopes.d.ts +5 -5
  252. package/dist/runtime/for-scopes.js +168 -48
  253. package/dist/runtime/for-signals.d.ts +14 -5
  254. package/dist/runtime/for-signals.js +157 -83
  255. package/dist/runtime/for-types.d.ts +8 -0
  256. package/dist/runtime/for.d.ts +2 -2
  257. package/dist/runtime/for.js +3 -3
  258. package/dist/runtime/index.d.ts +24 -0
  259. package/dist/runtime/index.js +33 -0
  260. package/dist/runtime/lifecycle-batch.d.ts +59 -0
  261. package/dist/runtime/lifecycle-batch.js +178 -0
  262. package/dist/runtime/lifecycle-operation-settlement.d.ts +5 -0
  263. package/dist/runtime/lifecycle-operation-settlement.js +51 -0
  264. package/dist/runtime/lifecycle-operations.d.ts +1 -2
  265. package/dist/runtime/lifecycle-operations.js +5 -6
  266. package/dist/runtime/perf-metrics.d.ts +27 -0
  267. package/dist/runtime/perf-metrics.js +4 -68
  268. package/dist/runtime/portal.d.ts +21 -0
  269. package/dist/runtime/portal.js +305 -0
  270. package/dist/runtime/readable.d.ts +9 -4
  271. package/dist/runtime/readable.js +41 -17
  272. package/dist/runtime/resource-cell.js +3 -5
  273. package/dist/runtime/resource-operation.d.ts +1 -2
  274. package/dist/runtime/resource-operation.js +38 -35
  275. package/dist/runtime/runtime.d.ts +2 -3
  276. package/dist/runtime/runtime.js +0 -2
  277. package/dist/runtime/scheduler.d.ts +1 -2
  278. package/dist/runtime/scheduler.js +10 -13
  279. package/dist/runtime/selector-store.js +22 -0
  280. package/dist/runtime/selector.d.ts +1 -2
  281. package/dist/runtime/selector.js +6 -29
  282. package/dist/runtime/snapshot-source.d.ts +1 -2
  283. package/dist/runtime/snapshot-source.js +0 -2
  284. package/dist/runtime/state.d.ts +1 -2
  285. package/dist/runtime/state.js +1 -3
  286. package/dist/ssg/batch-render.js +0 -2
  287. package/dist/ssg/create-static-gen.d.ts +4 -2
  288. package/dist/ssg/create-static-gen.js +66 -14
  289. package/dist/ssg/generate-metadata.js +0 -2
  290. package/dist/ssg/generation-plan.js +0 -2
  291. package/dist/ssg/incremental-manifest.js +1 -3
  292. package/dist/ssg/resolve-ssg-data.js +0 -2
  293. package/dist/ssg/route-utils.js +0 -2
  294. package/dist/ssg/static-routes.js +1 -2
  295. package/dist/ssg/types.d.ts +2 -3
  296. package/dist/ssg/write-static-files.js +16 -12
  297. package/dist/ssr/attrs.js +0 -2
  298. package/dist/ssr/boundaries.js +17 -6
  299. package/dist/ssr/component-runtime.js +4 -30
  300. package/dist/ssr/context.d.ts +1 -2
  301. package/dist/ssr/context.js +0 -2
  302. package/dist/ssr/errors.d.ts +1 -2
  303. package/dist/ssr/errors.js +0 -2
  304. package/dist/ssr/escape.js +0 -2
  305. package/dist/ssr/hydration-data.js +0 -2
  306. package/dist/ssr/hydration-verify.d.ts +1 -2
  307. package/dist/ssr/hydration-verify.js +34 -7
  308. package/dist/ssr/index-internal.d.ts +1 -2
  309. package/dist/ssr/index-internal.js +0 -2
  310. package/dist/ssr/render-keys.js +0 -2
  311. package/dist/ssr/render-resolved.d.ts +1 -2
  312. package/dist/ssr/render-resolved.js +1 -3
  313. package/dist/ssr/render-sync.d.ts +1 -2
  314. package/dist/ssr/render-sync.js +28 -20
  315. package/dist/ssr/route-policy-resolution.js +2 -3
  316. package/dist/ssr/route-render.d.ts +1 -2
  317. package/dist/ssr/route-render.js +2 -3
  318. package/dist/ssr/sink.d.ts +1 -2
  319. package/dist/ssr/sink.js +0 -2
  320. package/dist/ssr/types.d.ts +1 -2
  321. package/dist/ssr/verify-hydration.js +0 -2
  322. package/dist/testing/index.d.ts +1 -2
  323. package/dist/testing/index.js +3 -4
  324. package/package.json +60 -47
  325. package/dist/bench/components/benchmark-row.d.ts.map +0 -1
  326. package/dist/bench/components/benchmark-row.js.map +0 -1
  327. package/dist/bench/components/benchmark-table.js.map +0 -1
  328. package/dist/benchmark.d.ts.map +0 -1
  329. package/dist/benchmark.js.map +0 -1
  330. package/dist/bin/askr-ssg.d.ts.map +0 -1
  331. package/dist/bin/askr-ssg.js.map +0 -1
  332. package/dist/boot/hydration.js.map +0 -1
  333. package/dist/boot/index.d.ts.map +0 -1
  334. package/dist/boot/index.js.map +0 -1
  335. package/dist/boot/root-lifecycle.d.ts.map +0 -1
  336. package/dist/boot/root-lifecycle.js.map +0 -1
  337. package/dist/boot/route-startup.js.map +0 -1
  338. package/dist/boot/types.d.ts.map +0 -1
  339. package/dist/common/attr-names.js.map +0 -1
  340. package/dist/common/component.d.ts.map +0 -1
  341. package/dist/common/control.d.ts.map +0 -1
  342. package/dist/common/control.js.map +0 -1
  343. package/dist/common/env.js.map +0 -1
  344. package/dist/common/jsx.d.ts.map +0 -1
  345. package/dist/common/jsx.js.map +0 -1
  346. package/dist/common/promise.js.map +0 -1
  347. package/dist/common/props.d.ts.map +0 -1
  348. package/dist/common/render-context.js.map +0 -1
  349. package/dist/common/route-activity.js.map +0 -1
  350. package/dist/common/router-internal.js.map +0 -1
  351. package/dist/common/router.d.ts.map +0 -1
  352. package/dist/common/ssr-errors.d.ts.map +0 -1
  353. package/dist/common/ssr-errors.js.map +0 -1
  354. package/dist/common/ssr.d.ts.map +0 -1
  355. package/dist/common/ssr.js.map +0 -1
  356. package/dist/common/vnode.d.ts.map +0 -1
  357. package/dist/common/vnode.js.map +0 -1
  358. package/dist/components/error-boundary.d.ts.map +0 -1
  359. package/dist/components/error-boundary.js.map +0 -1
  360. package/dist/components/link.d.ts.map +0 -1
  361. package/dist/components/link.js.map +0 -1
  362. package/dist/control/case.d.ts.map +0 -1
  363. package/dist/control/case.js.map +0 -1
  364. package/dist/control/for.d.ts.map +0 -1
  365. package/dist/control/for.js.map +0 -1
  366. package/dist/control/shared.d.ts.map +0 -1
  367. package/dist/control/shared.js.map +0 -1
  368. package/dist/control/show.d.ts.map +0 -1
  369. package/dist/control/show.js.map +0 -1
  370. package/dist/data/data-runtime.d.ts.map +0 -1
  371. package/dist/data/data-runtime.js.map +0 -1
  372. package/dist/data/invalidation-listeners.js.map +0 -1
  373. package/dist/data/invalidation.d.ts.map +0 -1
  374. package/dist/data/invalidation.js.map +0 -1
  375. package/dist/data/mutation-cell.d.ts.map +0 -1
  376. package/dist/data/mutation-cell.js.map +0 -1
  377. package/dist/data/query-cell.d.ts.map +0 -1
  378. package/dist/data/query-cell.js.map +0 -1
  379. package/dist/data/query-key.js.map +0 -1
  380. package/dist/data/shared.js.map +0 -1
  381. package/dist/data/types.d.ts.map +0 -1
  382. package/dist/dev/invariant.js +0 -29
  383. package/dist/dev/invariant.js.map +0 -1
  384. package/dist/dev/logger.js.map +0 -1
  385. package/dist/foundations/icon/icon.d.ts.map +0 -1
  386. package/dist/foundations/icon/icon.js.map +0 -1
  387. package/dist/foundations/icon/icon.types.d.ts.map +0 -1
  388. package/dist/foundations/interactions/dismissable.d.ts.map +0 -1
  389. package/dist/foundations/interactions/dismissable.js.map +0 -1
  390. package/dist/foundations/interactions/focusable.d.ts.map +0 -1
  391. package/dist/foundations/interactions/focusable.js.map +0 -1
  392. package/dist/foundations/interactions/hoverable.d.ts.map +0 -1
  393. package/dist/foundations/interactions/hoverable.js.map +0 -1
  394. package/dist/foundations/interactions/interaction-policy.d.ts.map +0 -1
  395. package/dist/foundations/interactions/interaction-policy.js.map +0 -1
  396. package/dist/foundations/interactions/pressable.d.ts.map +0 -1
  397. package/dist/foundations/interactions/pressable.js.map +0 -1
  398. package/dist/foundations/interactions/roving-focus.d.ts.map +0 -1
  399. package/dist/foundations/interactions/roving-focus.js.map +0 -1
  400. package/dist/foundations/state/controllable.d.ts.map +0 -1
  401. package/dist/foundations/state/controllable.js.map +0 -1
  402. package/dist/foundations/structures/collection.d.ts.map +0 -1
  403. package/dist/foundations/structures/collection.js.map +0 -1
  404. package/dist/foundations/structures/layer.d.ts.map +0 -1
  405. package/dist/foundations/structures/layer.js.map +0 -1
  406. package/dist/foundations/structures/layout.d.ts.map +0 -1
  407. package/dist/foundations/structures/layout.js.map +0 -1
  408. package/dist/foundations/structures/portal.d.ts.map +0 -1
  409. package/dist/foundations/structures/portal.js.map +0 -1
  410. package/dist/foundations/structures/presence.d.ts.map +0 -1
  411. package/dist/foundations/structures/presence.js.map +0 -1
  412. package/dist/foundations/structures/slot.d.ts.map +0 -1
  413. package/dist/foundations/structures/slot.js.map +0 -1
  414. package/dist/foundations/utilities/aria.d.ts.map +0 -1
  415. package/dist/foundations/utilities/aria.js.map +0 -1
  416. package/dist/foundations/utilities/compose-handlers.d.ts.map +0 -1
  417. package/dist/foundations/utilities/compose-handlers.js.map +0 -1
  418. package/dist/foundations/utilities/compose-ref.d.ts.map +0 -1
  419. package/dist/foundations/utilities/compose-ref.js.map +0 -1
  420. package/dist/foundations/utilities/event-types.d.ts.map +0 -1
  421. package/dist/foundations/utilities/merge-props.d.ts.map +0 -1
  422. package/dist/foundations/utilities/merge-props.js.map +0 -1
  423. package/dist/foundations/utilities/use-id.d.ts.map +0 -1
  424. package/dist/foundations/utilities/use-id.js.map +0 -1
  425. package/dist/fx/fx.d.ts.map +0 -1
  426. package/dist/fx/fx.js.map +0 -1
  427. package/dist/fx/noop.js.map +0 -1
  428. package/dist/fx/timing.d.ts.map +0 -1
  429. package/dist/fx/timing.js.map +0 -1
  430. package/dist/index.js.map +0 -1
  431. package/dist/jsx/types.d.ts.map +0 -1
  432. package/dist/jsx/utils.d.ts.map +0 -1
  433. package/dist/jsx/utils.js.map +0 -1
  434. package/dist/jsx-dev-runtime.d.ts.map +0 -1
  435. package/dist/jsx-dev-runtime.js.map +0 -1
  436. package/dist/jsx-runtime.d.ts.map +0 -1
  437. package/dist/jsx-runtime.js.map +0 -1
  438. package/dist/renderer/attributes.js.map +0 -1
  439. package/dist/renderer/boundaries.js.map +0 -1
  440. package/dist/renderer/child-shape.js.map +0 -1
  441. package/dist/renderer/children.js.map +0 -1
  442. package/dist/renderer/cleanup.js.map +0 -1
  443. package/dist/renderer/component-host-cleanup.js.map +0 -1
  444. package/dist/renderer/component-host-instances.js.map +0 -1
  445. package/dist/renderer/component-host.js.map +0 -1
  446. package/dist/renderer/dom-host.js.map +0 -1
  447. package/dist/renderer/dom-internal.js.map +0 -1
  448. package/dist/renderer/element-children.js.map +0 -1
  449. package/dist/renderer/error-boundary-dom.js.map +0 -1
  450. package/dist/renderer/evaluate-dom-range.js.map +0 -1
  451. package/dist/renderer/evaluate-reconcile.js.map +0 -1
  452. package/dist/renderer/evaluate.js.map +0 -1
  453. package/dist/renderer/fastpath.js.map +0 -1
  454. package/dist/renderer/for-commit-dom-map.js.map +0 -1
  455. package/dist/renderer/for-commit-removal.js.map +0 -1
  456. package/dist/renderer/for-commit-reorder.js.map +0 -1
  457. package/dist/renderer/for-commit.js.map +0 -1
  458. package/dist/renderer/index.js.map +0 -1
  459. package/dist/renderer/keyed-children.js.map +0 -1
  460. package/dist/renderer/keyed.js.map +0 -1
  461. package/dist/renderer/namespaces.js.map +0 -1
  462. package/dist/renderer/prop-bindings.js.map +0 -1
  463. package/dist/renderer/reactive-child-dom.js.map +0 -1
  464. package/dist/renderer/reactive-child-sources.js.map +0 -1
  465. package/dist/renderer/reactive-children.js.map +0 -1
  466. package/dist/renderer/reconcile-commit.js.map +0 -1
  467. package/dist/renderer/reconcile-fastpaths.js.map +0 -1
  468. package/dist/renderer/reconcile-resolution.js.map +0 -1
  469. package/dist/renderer/reconcile.js.map +0 -1
  470. package/dist/renderer/retained-element-rollback.js.map +0 -1
  471. package/dist/renderer/stable-patch.js.map +0 -1
  472. package/dist/renderer/static-reuse.js.map +0 -1
  473. package/dist/renderer/utils.js.map +0 -1
  474. package/dist/router/access.js.map +0 -1
  475. package/dist/router/activity.d.ts.map +0 -1
  476. package/dist/router/activity.js.map +0 -1
  477. package/dist/router/authoring.d.ts.map +0 -1
  478. package/dist/router/authoring.js.map +0 -1
  479. package/dist/router/internal-types.d.ts.map +0 -1
  480. package/dist/router/lazy.d.ts.map +0 -1
  481. package/dist/router/lazy.js.map +0 -1
  482. package/dist/router/manifest.d.ts.map +0 -1
  483. package/dist/router/manifest.js.map +0 -1
  484. package/dist/router/match.js.map +0 -1
  485. package/dist/router/navigate.d.ts.map +0 -1
  486. package/dist/router/navigate.js.map +0 -1
  487. package/dist/router/navigation-registry.d.ts.map +0 -1
  488. package/dist/router/navigation-registry.js.map +0 -1
  489. package/dist/router/navigation-scroll.d.ts.map +0 -1
  490. package/dist/router/navigation-scroll.js.map +0 -1
  491. package/dist/router/navigation-targets.d.ts.map +0 -1
  492. package/dist/router/navigation-targets.js.map +0 -1
  493. package/dist/router/policy.d.ts.map +0 -1
  494. package/dist/router/policy.js.map +0 -1
  495. package/dist/router/rendering.d.ts.map +0 -1
  496. package/dist/router/rendering.js.map +0 -1
  497. package/dist/router/resolution.d.ts.map +0 -1
  498. package/dist/router/resolution.js.map +0 -1
  499. package/dist/router/route-context.js.map +0 -1
  500. package/dist/router/route-query.d.ts.map +0 -1
  501. package/dist/router/route-query.js.map +0 -1
  502. package/dist/router/store.d.ts.map +0 -1
  503. package/dist/router/store.js.map +0 -1
  504. package/dist/runtime/access.js.map +0 -1
  505. package/dist/runtime/child-scope.d.ts.map +0 -1
  506. package/dist/runtime/child-scope.js.map +0 -1
  507. package/dist/runtime/component-cleanup.d.ts.map +0 -1
  508. package/dist/runtime/component-cleanup.js.map +0 -1
  509. package/dist/runtime/component-commit.js.map +0 -1
  510. package/dist/runtime/component-contracts.js +0 -5
  511. package/dist/runtime/component-internal.d.ts.map +0 -1
  512. package/dist/runtime/component-internal.js.map +0 -1
  513. package/dist/runtime/component-lifecycle.d.ts.map +0 -1
  514. package/dist/runtime/component-lifecycle.js.map +0 -1
  515. package/dist/runtime/component-scope.d.ts.map +0 -1
  516. package/dist/runtime/component-scope.js.map +0 -1
  517. package/dist/runtime/context.d.ts.map +0 -1
  518. package/dist/runtime/context.js.map +0 -1
  519. package/dist/runtime/control.d.ts.map +0 -1
  520. package/dist/runtime/control.js.map +0 -1
  521. package/dist/runtime/derive.d.ts.map +0 -1
  522. package/dist/runtime/derive.js.map +0 -1
  523. package/dist/runtime/dev-namespace.js.map +0 -1
  524. package/dist/runtime/effect.d.ts.map +0 -1
  525. package/dist/runtime/effect.js.map +0 -1
  526. package/dist/runtime/events.js.map +0 -1
  527. package/dist/runtime/execution-model.js.map +0 -1
  528. package/dist/runtime/fastlane.js.map +0 -1
  529. package/dist/runtime/for-bench.d.ts.map +0 -1
  530. package/dist/runtime/for-bench.js.map +0 -1
  531. package/dist/runtime/for-internal.d.ts.map +0 -1
  532. package/dist/runtime/for-internal.js.map +0 -1
  533. package/dist/runtime/for-reconcile.d.ts.map +0 -1
  534. package/dist/runtime/for-reconcile.js.map +0 -1
  535. package/dist/runtime/for-scopes.d.ts.map +0 -1
  536. package/dist/runtime/for-scopes.js.map +0 -1
  537. package/dist/runtime/for-signals.d.ts.map +0 -1
  538. package/dist/runtime/for-signals.js.map +0 -1
  539. package/dist/runtime/lifecycle-operations.d.ts.map +0 -1
  540. package/dist/runtime/lifecycle-operations.js.map +0 -1
  541. package/dist/runtime/perf-metrics.js.map +0 -1
  542. package/dist/runtime/readable.d.ts.map +0 -1
  543. package/dist/runtime/readable.js.map +0 -1
  544. package/dist/runtime/resource-cell.js.map +0 -1
  545. package/dist/runtime/resource-operation.d.ts.map +0 -1
  546. package/dist/runtime/resource-operation.js.map +0 -1
  547. package/dist/runtime/runtime.d.ts.map +0 -1
  548. package/dist/runtime/runtime.js.map +0 -1
  549. package/dist/runtime/scheduler.d.ts.map +0 -1
  550. package/dist/runtime/scheduler.js.map +0 -1
  551. package/dist/runtime/selector.d.ts.map +0 -1
  552. package/dist/runtime/selector.js.map +0 -1
  553. package/dist/runtime/snapshot-source.d.ts.map +0 -1
  554. package/dist/runtime/snapshot-source.js.map +0 -1
  555. package/dist/runtime/state.d.ts.map +0 -1
  556. package/dist/runtime/state.js.map +0 -1
  557. package/dist/ssg/batch-render.js.map +0 -1
  558. package/dist/ssg/create-static-gen.d.ts.map +0 -1
  559. package/dist/ssg/create-static-gen.js.map +0 -1
  560. package/dist/ssg/generate-metadata.js.map +0 -1
  561. package/dist/ssg/generation-plan.js.map +0 -1
  562. package/dist/ssg/incremental-manifest.js.map +0 -1
  563. package/dist/ssg/resolve-ssg-data.js.map +0 -1
  564. package/dist/ssg/route-utils.js.map +0 -1
  565. package/dist/ssg/static-routes.js.map +0 -1
  566. package/dist/ssg/types.d.ts.map +0 -1
  567. package/dist/ssg/write-static-files.js.map +0 -1
  568. package/dist/ssr/attrs.js.map +0 -1
  569. package/dist/ssr/boundaries.js.map +0 -1
  570. package/dist/ssr/component-runtime.js.map +0 -1
  571. package/dist/ssr/context.d.ts.map +0 -1
  572. package/dist/ssr/context.js.map +0 -1
  573. package/dist/ssr/errors.d.ts.map +0 -1
  574. package/dist/ssr/errors.js.map +0 -1
  575. package/dist/ssr/escape.js.map +0 -1
  576. package/dist/ssr/hydration-data.js.map +0 -1
  577. package/dist/ssr/hydration-verify.d.ts.map +0 -1
  578. package/dist/ssr/hydration-verify.js.map +0 -1
  579. package/dist/ssr/index-internal.d.ts.map +0 -1
  580. package/dist/ssr/index-internal.js.map +0 -1
  581. package/dist/ssr/render-keys.js.map +0 -1
  582. package/dist/ssr/render-resolved.d.ts.map +0 -1
  583. package/dist/ssr/render-resolved.js.map +0 -1
  584. package/dist/ssr/render-sync.d.ts.map +0 -1
  585. package/dist/ssr/render-sync.js.map +0 -1
  586. package/dist/ssr/route-policy-resolution.js.map +0 -1
  587. package/dist/ssr/route-render.d.ts.map +0 -1
  588. package/dist/ssr/route-render.js.map +0 -1
  589. package/dist/ssr/sink.d.ts.map +0 -1
  590. package/dist/ssr/sink.js.map +0 -1
  591. package/dist/ssr/types.d.ts.map +0 -1
  592. package/dist/ssr/verify-hydration.js.map +0 -1
  593. package/dist/testing/index.d.ts.map +0 -1
  594. package/dist/testing/index.js.map +0 -1
@@ -1,4 +1,4 @@
1
- import { logger } from "../dev/logger.js";
1
+ import { logger } from "../common/logger.js";
2
2
  import { withAsyncResourceContext } from "./context.js";
3
3
  import { isPromiseLike } from "../common/promise.js";
4
4
  import { brandSnapshotSource } from "./snapshot-source.js";
@@ -59,7 +59,7 @@ var ResourceCell = class {
59
59
  result = withAsyncResourceContext(this.resourceFrame, () => this.fn({ signal: controller.signal }));
60
60
  } catch (err) {
61
61
  this.pending = false;
62
- this.error = err;
62
+ this.error = err instanceof Error ? err : new Error(String(err));
63
63
  if (notify) this.notifySubscribers();
64
64
  return;
65
65
  }
@@ -84,7 +84,7 @@ var ResourceCell = class {
84
84
  if (this.controller !== controller) return;
85
85
  if (controller.signal.aborted || err instanceof Error && err.name === "AbortError" || typeof DOMException !== "undefined" && err instanceof DOMException && err.name === "AbortError") return;
86
86
  this.pending = false;
87
- this.error = err;
87
+ this.error = err instanceof Error ? err : new Error(String(err));
88
88
  try {
89
89
  if (this.ownerName) logger.error(`[Askr] Async resource error in ${this.ownerName}:`, err);
90
90
  else logger.error("[Askr] Async resource error:", err);
@@ -110,5 +110,3 @@ var ResourceCell = class {
110
110
  };
111
111
  //#endregion
112
112
  export { ResourceCell };
113
-
114
- //# sourceMappingURL=resource-cell.js.map
@@ -9,5 +9,4 @@ declare function resource<T, const TDeps extends readonly unknown[]>(fn: (opts:
9
9
  signal: AbortSignal;
10
10
  }) => PromiseLike<T> | T, deps: TDeps): ResourceResult<T>;
11
11
  //#endregion
12
- export { ResourceResult, resource };
13
- //# sourceMappingURL=resource-operation.d.ts.map
12
+ export { ResourceResult, resource };
@@ -1,12 +1,13 @@
1
1
  import { enqueueRuntimeLane } from "./access.js";
2
2
  import { getCurrentContextFrame } from "./context.js";
3
3
  import { getCurrentComponentInstance } from "./component-scope.js";
4
+ import { registerCommitOperationForInstance } from "./component-lifecycle.js";
4
5
  import "./component.js";
5
- import { state } from "./state.js";
6
6
  import { brandSnapshotSource } from "./snapshot-source.js";
7
7
  import { SSRDataMissingError } from "../common/ssr-errors.js";
8
8
  import { getActiveRenderContext, getCurrentRenderData, getNextRenderKey, throwSSRDataMissing } from "../common/render-context.js";
9
9
  import { ResourceCell } from "./resource-cell.js";
10
+ import { state } from "./state.js";
10
11
  //#region src/runtime/resource-operation.ts
11
12
  /**
12
13
  * Resource primitive — simple, deterministic async primitive
@@ -95,27 +96,29 @@ function resource(fn, deps = []) {
95
96
  }
96
97
  } else {
97
98
  const scheduledGeneration = cell.generation;
98
- enqueueRuntimeLane("post", () => {
99
- if (!inst.notifyUpdate || cell.generation !== scheduledGeneration) return;
100
- try {
101
- cell.start(false, false);
102
- } catch (err) {
103
- const cur = holder();
104
- cur.snapshot.value = cell.value;
105
- cur.snapshot.pending = cell.pending;
106
- cur.snapshot.error = err ?? null;
107
- holder.set(cur);
108
- inst.notifyUpdate?.();
109
- return;
110
- }
111
- if (!cell.pending) {
112
- const cur = holder();
113
- cur.snapshot.value = cell.value;
114
- cur.snapshot.pending = cell.pending;
115
- cur.snapshot.error = cell.error;
116
- holder.set(cur);
117
- inst.notifyUpdate?.();
118
- }
99
+ registerCommitOperationForInstance(inst, () => {
100
+ enqueueRuntimeLane("post", () => {
101
+ if (!inst.notifyUpdate || cell.generation !== scheduledGeneration) return;
102
+ try {
103
+ cell.start(false, false);
104
+ } catch (err) {
105
+ const cur = holder();
106
+ cur.snapshot.value = cell.value;
107
+ cur.snapshot.pending = cell.pending;
108
+ cur.snapshot.error = err ?? null;
109
+ holder.set(cur);
110
+ inst.notifyUpdate?.();
111
+ return;
112
+ }
113
+ if (!cell.pending) {
114
+ const cur = holder();
115
+ cur.snapshot.value = cell.value;
116
+ cur.snapshot.pending = cell.pending;
117
+ cur.snapshot.error = cell.error;
118
+ holder.set(cur);
119
+ inst.notifyUpdate?.();
120
+ }
121
+ });
119
122
  });
120
123
  }
121
124
  }
@@ -139,17 +142,19 @@ function resource(fn, deps = []) {
139
142
  }
140
143
  } else {
141
144
  const scheduledGeneration = cell.generation;
142
- enqueueRuntimeLane("post", () => {
143
- if (!inst.notifyUpdate || cell.generation !== scheduledGeneration) return;
144
- cell.start(false, false);
145
- if (!cell.pending) {
146
- const cur = holder();
147
- cur.snapshot.value = cell.value;
148
- cur.snapshot.pending = cell.pending;
149
- cur.snapshot.error = cell.error;
150
- holder.set(cur);
151
- inst.notifyUpdate?.();
152
- }
145
+ registerCommitOperationForInstance(inst, () => {
146
+ enqueueRuntimeLane("post", () => {
147
+ if (!inst.notifyUpdate || cell.generation !== scheduledGeneration) return;
148
+ cell.start(false, false);
149
+ if (!cell.pending) {
150
+ const cur = holder();
151
+ cur.snapshot.value = cell.value;
152
+ cur.snapshot.pending = cell.pending;
153
+ cur.snapshot.error = cell.error;
154
+ holder.set(cur);
155
+ inst.notifyUpdate?.();
156
+ }
157
+ });
153
158
  });
154
159
  }
155
160
  } catch (err) {
@@ -166,5 +171,3 @@ function resource(fn, deps = []) {
166
171
  }
167
172
  //#endregion
168
173
  export { resource };
169
-
170
- //# sourceMappingURL=resource-operation.js.map
@@ -1,5 +1,5 @@
1
- import { ReadableSource } from "./readable.js";
2
1
  import { ComponentInstance } from "./component-internal.js";
2
+ import { ReadableSource } from "./readable.js";
3
3
  import { Scheduler } from "./scheduler.js";
4
4
 
5
5
  //#region src/runtime/runtime.d.ts
@@ -38,5 +38,4 @@ declare function createRuntime(options?: AskrRuntimeOptions): AskrRuntime;
38
38
  declare function getDefaultRuntime(): AskrRuntime;
39
39
  declare function configureRuntimeRenderer(renderer: RuntimeRendererHost, runtime?: AskrRuntime): void;
40
40
  //#endregion
41
- export { AskrRuntime, AskrRuntimeOptions, RuntimeKeyedReorderDecision, RuntimeRendererHost, createRuntime, getDefaultRuntime };
42
- //# sourceMappingURL=runtime.d.ts.map
41
+ export { AskrRuntime, AskrRuntimeOptions, RuntimeKeyedReorderDecision, RuntimeRendererHost, createRuntime, getDefaultRuntime };
@@ -55,5 +55,3 @@ function configureRuntimeRenderer(renderer, runtime = defaultRuntime) {
55
55
  }
56
56
  //#endregion
57
57
  export { AskrRuntime, configureRuntimeRenderer, createRuntime, defaultRuntime, getDefaultRuntime };
58
-
59
- //# sourceMappingURL=runtime.js.map
@@ -64,5 +64,4 @@ declare const globalScheduler: Scheduler;
64
64
  declare function isSchedulerExecuting(): boolean;
65
65
  declare function scheduleEventHandler(handler: EventListener): EventListener;
66
66
  //#endregion
67
- export { Scheduler, SchedulerBulkCommitProbe, SchedulerLane, scheduleEventHandler };
68
- //# sourceMappingURL=scheduler.d.ts.map
67
+ export { Scheduler, SchedulerBulkCommitProbe, SchedulerLane, scheduleEventHandler };
@@ -1,6 +1,6 @@
1
1
  import { isDevelopmentEnvironment } from "../common/env.js";
2
- import { assertSchedulingPrecondition, invariant } from "../dev/invariant.js";
3
- import { logger } from "../dev/logger.js";
2
+ import { assertSchedulingPrecondition, invariant } from "../common/invariant.js";
3
+ import { logger } from "../common/logger.js";
4
4
  import { recordSchedulerFlushTaskCount } from "./perf-metrics.js";
5
5
  //#region src/runtime/scheduler.ts
6
6
  /**
@@ -123,11 +123,11 @@ var Scheduler = class {
123
123
  }
124
124
  this.running = true;
125
125
  this.depth = 0;
126
- let fatal = null;
126
+ const failures = [];
127
127
  let executedTaskCount = 0;
128
128
  const executionsByTask = isDevelopmentEnvironment() ? /* @__PURE__ */ new Map() : null;
129
129
  try {
130
- while (fatal === null) {
130
+ while (true) {
131
131
  let didRunTask = false;
132
132
  for (const lane of SCHEDULER_LANES) {
133
133
  const laneQueue = this.lanes[lane];
@@ -143,18 +143,16 @@ var Scheduler = class {
143
143
  try {
144
144
  this.executionDepth++;
145
145
  task();
146
- this.executionDepth--;
146
+ } catch (err) {
147
+ failures.push(err);
148
+ } finally {
149
+ if (this.executionDepth > 0) this.executionDepth--;
147
150
  executedTaskCount++;
148
151
  executedInLane++;
149
152
  didRunTask = true;
150
- } catch (err) {
151
- if (this.executionDepth > 0) this.executionDepth--;
152
- fatal = err;
153
- break;
154
153
  }
155
154
  }
156
155
  if (executedInLane > 0) this.taskCount = Math.max(0, this.taskCount - executedInLane);
157
- if (fatal !== null) break;
158
156
  }
159
157
  if (!didRunTask) break;
160
158
  }
@@ -170,7 +168,8 @@ var Scheduler = class {
170
168
  this.resolveWaiters();
171
169
  recordSchedulerFlushTaskCount(executedTaskCount);
172
170
  }
173
- if (fatal) throw fatal;
171
+ if (failures.length === 1) throw failures[0];
172
+ if (failures.length > 1) throw new AggregateError(failures, "Scheduler task failures");
174
173
  }
175
174
  runWithSyncProgress(fn) {
176
175
  const prev = this.allowSyncProgress;
@@ -315,5 +314,3 @@ function scheduleEventHandler(handler) {
315
314
  }
316
315
  //#endregion
317
316
  export { Scheduler, globalScheduler, scheduleEventHandler };
318
-
319
- //# sourceMappingURL=scheduler.js.map
@@ -0,0 +1,22 @@
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 };
@@ -7,5 +7,4 @@ type SelectorEquals<T> = {
7
7
  }['bivarianceHack'];
8
8
  declare function selector<T>(source: () => T, equals?: SelectorEquals<T>): Selector<T>;
9
9
  //#endregion
10
- export { Selector, selector };
11
- //# sourceMappingURL=selector.d.ts.map
10
+ export { Selector, selector };
@@ -1,13 +1,10 @@
1
- import { getPerfMetricsStore, incrementPerfMetric } from "./perf-metrics.js";
2
- import { enqueueRuntimeLane } from "./access.js";
1
+ import "./perf-metrics.js";
3
2
  import { clearDerivedDependencySubscriptions, markReactivePropsDirtySource, markReadableDerivedSubscribersDirty, markReadableUsage, notifyReadableReaders, recordReadableRead, syncDerivedDependencySubscriptions, withDerivedReadTracking } from "./readable.js";
4
3
  import { claimHookIndex, getCurrentInstance } from "./component-scope.js";
5
4
  import "./component.js";
6
- //#region src/runtime/selector.ts
5
+ import { markDirtySelectorRecord, takeDirtySelectorRecords } from "./selector-store.js";
7
6
  const selectorCells = /* @__PURE__ */ new WeakMap();
8
7
  const selectorRecords = /* @__PURE__ */ new WeakMap();
9
- const dirtySelectorRecords = /* @__PURE__ */ new Set();
10
- let hasPendingSelectorFlush = false;
11
8
  function getSelectorStore(instance) {
12
9
  let store = selectorCells.get(instance);
13
10
  if (!store) {
@@ -16,24 +13,11 @@ function getSelectorStore(instance) {
16
13
  }
17
14
  return store;
18
15
  }
19
- function scheduleSelectorFlush() {
20
- if (hasPendingSelectorFlush) return;
21
- hasPendingSelectorFlush = true;
22
- enqueueRuntimeLane("derived", flushDirtySelectorRecords);
23
- }
24
16
  function markSelectorRecordDirty(record) {
25
- record._dirty = true;
26
- if (record._scheduled) return;
27
- record._scheduled = true;
28
- dirtySelectorRecords.add(record);
29
- scheduleSelectorFlush();
17
+ markDirtySelectorRecord(record, flushDirtySelectorRecords);
30
18
  }
31
19
  function flushDirtySelectorRecords() {
32
- hasPendingSelectorFlush = false;
33
- if (dirtySelectorRecords.size === 0) return;
34
- const pending = Array.from(dirtySelectorRecords);
35
- dirtySelectorRecords.clear();
36
- for (const record of pending) {
20
+ for (const record of takeDirtySelectorRecords()) {
37
21
  record._scheduled = false;
38
22
  if (!record._dirty) continue;
39
23
  recomputeSelectorSourceRecord(record, true);
@@ -46,9 +30,7 @@ function isDefaultSelectorEquals(equals) {
46
30
  return equals === Object.is;
47
31
  }
48
32
  function createCandidateSource(candidate) {
49
- const source = (() => false);
50
- source._candidate = candidate;
51
- return source;
33
+ return { _candidate: candidate };
52
34
  }
53
35
  function getCandidateSource(lane, candidate) {
54
36
  if (isObjectCandidate(candidate)) {
@@ -136,7 +118,6 @@ function createSelectorLane(record, equals) {
136
118
  return lane;
137
119
  }
138
120
  function notifySelectorSource(source) {
139
- incrementPerfMetric("selectorInvalidations");
140
121
  markReadableDerivedSubscribersDirty(source);
141
122
  markReactivePropsDirtySource(source);
142
123
  notifyReadableReaders(source);
@@ -220,12 +201,10 @@ function ensureSelectorHookBinding(hook) {
220
201
  function createSelectorHook(instance, hookIndex, source, equals) {
221
202
  const hook = function selectorPredicate(candidate) {
222
203
  const selectorHook = hook;
223
- const record = ensureSelectorHookBinding(selectorHook);
204
+ const record = selectorHook._record ?? ensureSelectorHookBinding(selectorHook);
224
205
  const lane = selectorHook._lane;
225
206
  if (!lane) throw new Error("selector() binding could not be established.");
226
207
  recordReadableRead(getCandidateSource(lane, candidate));
227
- const perfMetricsStore = getPerfMetricsStore();
228
- if (perfMetricsStore) perfMetricsStore.selectorCandidateReads += 1;
229
208
  const current = record._dirty || !record._hasValue ? recomputeSelectorSourceRecord(record, record._scheduled) : record._value;
230
209
  return lane._equals(current, candidate);
231
210
  };
@@ -270,5 +249,3 @@ function selector(source, equals = Object.is) {
270
249
  }
271
250
  //#endregion
272
251
  export { selector };
273
-
274
- //# sourceMappingURL=selector.js.map
@@ -6,5 +6,4 @@ type SnapshotSourceBrand = {
6
6
  declare function brandSnapshotSource<T extends object>(value: T): T & SnapshotSourceBrand;
7
7
  declare function isSnapshotSource(value: unknown): value is SnapshotSourceBrand;
8
8
  //#endregion
9
- export { SNAPSHOT_SOURCE_BRAND, SnapshotSourceBrand };
10
- //# sourceMappingURL=snapshot-source.d.ts.map
9
+ export { SNAPSHOT_SOURCE_BRAND, SnapshotSourceBrand };
@@ -13,5 +13,3 @@ function isSnapshotSource(value) {
13
13
  }
14
14
  //#endregion
15
15
  export { SNAPSHOT_SOURCE_BRAND, brandSnapshotSource, isSnapshotSource };
16
-
17
- //# sourceMappingURL=snapshot-source.js.map
@@ -51,5 +51,4 @@ type StateTuple<T> = [get: State<T>, set: StateSetter<T>] & State<T>;
51
51
  */
52
52
  declare function state<T>(initialValue: T): StateTuple<T>;
53
53
  //#endregion
54
- export { State, StateSetter, StateTuple, state };
55
- //# sourceMappingURL=state.d.ts.map
54
+ export { State, StateSetter, StateTuple, state };
@@ -45,7 +45,7 @@ function state(initialValue) {
45
45
  const instance = getCurrentInstance();
46
46
  if (!instance) throw new Error("state() can only be called during component render execution. Move state() calls to the top level of your component function.");
47
47
  const index = claimHookIndex(instance, "state");
48
- const stateValues = instance.stateValues;
48
+ const stateValues = instance.stateValues ??= [];
49
49
  if (stateValues[index]) {
50
50
  const existing = stateValues[index];
51
51
  if (existing._owner !== instance) throw new Error(`State ownership violation: state() called at index ${index} is owned by a different component instance. State ownership is positional and immutable.`);
@@ -92,5 +92,3 @@ function createStateCell(initialValue, instance) {
92
92
  }
93
93
  //#endregion
94
94
  export { state };
95
-
96
- //# sourceMappingURL=state.js.map
@@ -99,5 +99,3 @@ async function batchRenderRoutes(routes, options = {}) {
99
99
  }
100
100
  //#endregion
101
101
  export { batchRenderRoutes };
102
-
103
- //# sourceMappingURL=batch-render.js.map
@@ -1,5 +1,6 @@
1
1
  import { RouteRegistry } from "../common/router.js";
2
2
  import { RouteConfig, SSGGenerateOptions, SSGOptions, SSGResult } from "./types.js";
3
+ import * as fs from "node:fs/promises";
3
4
 
4
5
  //#region src/ssg/create-static-gen.d.ts
5
6
  type AnyRouteConfig = RouteConfig<string>;
@@ -15,6 +16,8 @@ type StaticGenRouteSource<TRoutes extends readonly AnyRouteConfig[]> = {
15
16
  registry: RouteRegistry;
16
17
  routes?: never;
17
18
  };
19
+ type OutputDirectoryFileOperations = Pick<typeof fs, 'rename' | 'rm'>;
20
+ declare function replaceOutputDirectory(stagingDir: string, outputDir: string, fileOperations?: OutputDirectoryFileOperations): Promise<void>;
18
21
  /**
19
22
  * Create a Static Site Generator
20
23
  *
@@ -60,5 +63,4 @@ declare function createStaticGen<const TRoutes extends readonly AnyRouteConfig[]
60
63
  getResult(): SSGResult | null;
61
64
  };
62
65
  //#endregion
63
- export { createStaticGen };
64
- //# sourceMappingURL=create-static-gen.d.ts.map
66
+ export { createStaticGen };
@@ -1,4 +1,5 @@
1
1
  import { addPerfDuration, incrementPerfMetric } from "../runtime/perf-metrics.js";
2
+ import "../runtime/index.js";
2
3
  import { resolveRouteDescriptor } from "./route-utils.js";
3
4
  import { resolveSsgData, resolveSsgRouteData, validateRoutes } from "./resolve-ssg-data.js";
4
5
  import { batchRenderRoutes } from "./batch-render.js";
@@ -7,6 +8,9 @@ import { generateSSGResult, resultToMetadata, writeMetadata } from "./generate-m
7
8
  import { getExistingOutputFileSize, hashHtml, outputFileExists, readIncrementalManifest, writeIncrementalManifest } from "./incremental-manifest.js";
8
9
  import { collectRemovedRouteResults, dedupeStrings, getRoutesToRender, selectRouteForGeneration } from "./generation-plan.js";
9
10
  import { normalizeStaticRoutes, splitStaticRoutes } from "./static-routes.js";
11
+ import * as fs from "node:fs/promises";
12
+ import * as pathModule from "node:path";
13
+ import * as os from "node:os";
10
14
  //#region src/ssg/create-static-gen.ts
11
15
  function resolveParallelism(requested) {
12
16
  if (requested !== "auto") return Math.max(1, requested ?? 1);
@@ -14,7 +18,46 @@ function resolveParallelism(requested) {
14
18
  const envWorkers = Number(maybeNavigator.process?.env?.ASKR_SSG_WORKERS ?? maybeNavigator.process?.env?.NUMBER_OF_PROCESSORS ?? maybeNavigator.process?.env?.UV_THREADPOOL_SIZE);
15
19
  if (Number.isFinite(envWorkers) && envWorkers > 0) return Math.max(1, Math.trunc(envWorkers));
16
20
  if (typeof maybeNavigator.navigator?.hardwareConcurrency === "number") return Math.max(1, maybeNavigator.navigator.hardwareConcurrency);
17
- return 1;
21
+ const availableParallelism = os.availableParallelism;
22
+ return Math.max(1, availableParallelism?.() ?? os.cpus().length ?? 1);
23
+ }
24
+ async function createStagingDirectory(outputDir) {
25
+ const parent = pathModule.dirname(outputDir);
26
+ const base = pathModule.basename(outputDir);
27
+ await fs.mkdir(parent, { recursive: true });
28
+ return fs.mkdtemp(pathModule.join(parent, `.${base}.askr-staging-`));
29
+ }
30
+ async function replaceOutputDirectory(stagingDir, outputDir, fileOperations = fs) {
31
+ const parent = pathModule.dirname(outputDir);
32
+ const backupDir = pathModule.join(parent, `.${pathModule.basename(outputDir)}.askr-backup-${Date.now()}`);
33
+ let backedUp = false;
34
+ try {
35
+ try {
36
+ await fileOperations.rename(outputDir, backupDir);
37
+ backedUp = true;
38
+ } catch (error) {
39
+ if (error.code !== "ENOENT") throw error;
40
+ }
41
+ await fileOperations.rename(stagingDir, outputDir);
42
+ await fileOperations.rm(backupDir, {
43
+ recursive: true,
44
+ force: true
45
+ });
46
+ } catch (error) {
47
+ if (backedUp) {
48
+ await fileOperations.rm(outputDir, {
49
+ recursive: true,
50
+ force: true
51
+ });
52
+ await fileOperations.rename(backupDir, outputDir);
53
+ }
54
+ throw error;
55
+ } finally {
56
+ await fileOperations.rm(stagingDir, {
57
+ recursive: true,
58
+ force: true
59
+ });
60
+ }
18
61
  }
19
62
  /**
20
63
  * Create a Static Site Generator
@@ -152,22 +195,33 @@ function createStaticGen(options) {
152
195
  if (routeResult) routeResults.push(routeResult);
153
196
  }
154
197
  routeResults.push(...removedResults);
155
- const writeStartTime = performance.now();
156
- await writeStaticFiles(routeResults, options.outputDir, { concurrency: resolvedConcurrency });
157
- addPerfDuration("ssgWriteTimeMs", performance.now() - writeStartTime);
158
198
  result = generateSSGResult(routeResults, {
159
199
  mode: effectiveMode,
160
200
  cacheHits,
161
201
  invalidatedKeys: changedKeys,
162
202
  invalidatedRoutes: changedRoutes
163
203
  });
164
- await writeMetadata(resultToMetadata(result), options.outputDir);
165
- await writeIncrementalManifest({
166
- schemaVersion: 1,
167
- seed,
168
- mode: effectiveMode,
169
- routes: nextManifestRoutes
170
- }, options.outputDir);
204
+ if (effectiveMode === "full" && result.failed > 0) return result;
205
+ const targetOutputDir = effectiveMode === "full" ? await createStagingDirectory(options.outputDir) : options.outputDir;
206
+ try {
207
+ const writeStartTime = performance.now();
208
+ await writeStaticFiles(routeResults, targetOutputDir, { concurrency: resolvedConcurrency });
209
+ addPerfDuration("ssgWriteTimeMs", performance.now() - writeStartTime);
210
+ await writeMetadata(resultToMetadata(result), targetOutputDir);
211
+ await writeIncrementalManifest({
212
+ schemaVersion: 1,
213
+ seed,
214
+ mode: effectiveMode,
215
+ routes: nextManifestRoutes
216
+ }, targetOutputDir);
217
+ if (effectiveMode === "full") await replaceOutputDirectory(targetOutputDir, options.outputDir);
218
+ } catch (error) {
219
+ if (effectiveMode === "full") await fs.rm(targetOutputDir, {
220
+ recursive: true,
221
+ force: true
222
+ });
223
+ throw error;
224
+ }
171
225
  return result;
172
226
  },
173
227
  /**
@@ -193,6 +247,4 @@ function createStaticGen(options) {
193
247
  };
194
248
  }
195
249
  //#endregion
196
- export { createStaticGen };
197
-
198
- //# sourceMappingURL=create-static-gen.js.map
250
+ export { createStaticGen, replaceOutputDirectory };
@@ -90,5 +90,3 @@ async function writeMetadata(metadata, outputDir) {
90
90
  }
91
91
  //#endregion
92
92
  export { generateSSGResult, resultToMetadata, writeMetadata };
93
-
94
- //# sourceMappingURL=generate-metadata.js.map
@@ -66,5 +66,3 @@ function collectRemovedRouteResults(manifest, currentRouteIds) {
66
66
  }
67
67
  //#endregion
68
68
  export { collectRemovedRouteResults, dedupeStrings, getRoutesToRender, selectRouteForGeneration };
69
-
70
- //# sourceMappingURL=generation-plan.js.map
@@ -1,6 +1,6 @@
1
1
  import * as fsPromises from "node:fs/promises";
2
- import * as fs from "node:fs";
3
2
  import * as pathModule from "node:path";
3
+ import * as fs from "node:fs";
4
4
  const MANIFEST_DIR = ".askr";
5
5
  const MANIFEST_FILE = "ssg-manifest.json";
6
6
  function hashHtml(html) {
@@ -52,5 +52,3 @@ function outputFileExists(outputDir, filePath) {
52
52
  }
53
53
  //#endregion
54
54
  export { getExistingOutputFileSize, getIncrementalManifestPath, hashHtml, outputFileExists, readIncrementalManifest, writeIncrementalManifest };
55
-
56
- //# sourceMappingURL=incremental-manifest.js.map
@@ -101,5 +101,3 @@ function validateRoutes(routes) {
101
101
  }
102
102
  //#endregion
103
103
  export { expandRoutes, resolveSsgData, resolveSsgRouteData, validateRoutes };
104
-
105
- //# sourceMappingURL=resolve-ssg-data.js.map
@@ -20,5 +20,3 @@ function resolveRouteDescriptor(route) {
20
20
  }
21
21
  //#endregion
22
22
  export { getOutputFilePath, interpolateRoutePath, resolveRouteDescriptor };
23
-
24
- //# sourceMappingURL=route-utils.js.map
@@ -1,4 +1,5 @@
1
1
  import { _getBuiltInRoutePolicy } from "../router/policy.js";
2
+ import "../router/route.js";
2
3
  import { getOutputFilePath, interpolateRoutePath, resolveRouteDescriptor } from "./route-utils.js";
3
4
  import { expandRoutes } from "./resolve-ssg-data.js";
4
5
  //#region src/ssg/static-routes.ts
@@ -97,5 +98,3 @@ function stripRegistryGuestPolicies(policies) {
97
98
  }
98
99
  //#endregion
99
100
  export { normalizeStaticRoutes, splitStaticRoutes };
100
-
101
- //# sourceMappingURL=static-routes.js.map
@@ -62,7 +62,7 @@ interface SSGBaseOptions {
62
62
  dataOverrides?: Record<string, unknown>;
63
63
  /** Optional document wrapper for full HTML output */
64
64
  document?: DocumentRenderer;
65
- /** Optional concurrency limit for rendering (default: 10) */
65
+ /** Optional concurrency limit for rendering (default: 1) */
66
66
  concurrency?: number;
67
67
  /** Preferred render parallelism. `'auto'` resolves from the host machine. */
68
68
  parallelism?: number | 'auto';
@@ -185,5 +185,4 @@ interface DiscoveredResources {
185
185
  };
186
186
  }
187
187
  //#endregion
188
- export { DiscoveredResources, RouteConfig, RouteRenderReason, RouteRenderResult, RouteRenderStatus, SSGGenerateOptions, SSGMetadata, SSGMode, SSGOptions, SSGResult };
189
- //# sourceMappingURL=types.d.ts.map
188
+ export { DiscoveredResources, RouteConfig, RouteRenderReason, RouteRenderResult, RouteRenderStatus, SSGGenerateOptions, SSGMetadata, SSGMode, SSGOptions, SSGResult };