@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,7 +1,7 @@
1
1
  import "./route-utils.js";
2
2
  import * as fs from "node:fs/promises";
3
- import * as fsSync from "node:fs";
4
3
  import * as pathModule from "node:path";
4
+ import * as fsSync from "node:fs";
5
5
  //#region src/ssg/write-static-files.ts
6
6
  /**
7
7
  * File I/O for Static Site Generation
@@ -13,14 +13,14 @@ import * as pathModule from "node:path";
13
13
  * Write rendered routes to disk
14
14
  * Creates outputDir/{route-path}/index.html structure
15
15
  */
16
- async function writeStaticFiles(results, outputDir, options = {}) {
17
- await fs.mkdir(outputDir, { recursive: true });
16
+ async function writeStaticFiles(results, outputDir, options = {}, fileOperations = fs) {
17
+ await fileOperations.mkdir(outputDir, { recursive: true });
18
18
  for (const result of results) {
19
19
  if (result.status !== "removed") continue;
20
20
  const fullPath = pathModule.join(outputDir, result.filePath);
21
21
  if (fsSync.existsSync(fullPath)) {
22
- await fs.rm(fullPath, { force: true });
23
- await pruneEmptyDirs(pathModule.dirname(fullPath), outputDir);
22
+ await fileOperations.rm(fullPath, { force: true });
23
+ await pruneEmptyDirs(pathModule.dirname(fullPath), outputDir, fileOperations);
24
24
  }
25
25
  }
26
26
  const pendingWrites = [];
@@ -41,7 +41,7 @@ async function writeStaticFiles(results, outputDir, options = {}) {
41
41
  directories.push(dir);
42
42
  }
43
43
  }
44
- for (const dir of directories) await fs.mkdir(dir, { recursive: true });
44
+ for (const dir of directories) await fileOperations.mkdir(dir, { recursive: true });
45
45
  const concurrency = Math.max(1, Math.min(options.concurrency ?? 8, pendingWrites.length || 1));
46
46
  let nextIndex = 0;
47
47
  const worker = async () => {
@@ -51,23 +51,27 @@ async function writeStaticFiles(results, outputDir, options = {}) {
51
51
  if (current >= pendingWrites.length) return;
52
52
  const result = pendingWrites[current];
53
53
  const fullPath = pathModule.join(outputDir, result.filePath);
54
- await fs.writeFile(fullPath, result.html, "utf8");
54
+ const tempPath = pathModule.join(pathModule.dirname(fullPath), `.${pathModule.basename(fullPath)}.askr-${process.pid}-${current}.tmp`);
55
+ try {
56
+ await fileOperations.writeFile(tempPath, result.html, "utf8");
57
+ await fileOperations.rename(tempPath, fullPath);
58
+ } finally {
59
+ await fileOperations.rm(tempPath, { force: true });
60
+ }
55
61
  }
56
62
  };
57
63
  await Promise.all(Array.from({ length: concurrency }, () => worker()));
58
64
  }
59
- async function pruneEmptyDirs(startDir, rootDir) {
65
+ async function pruneEmptyDirs(startDir, rootDir, fileOperations) {
60
66
  let current = startDir;
61
67
  const normalizedRoot = pathModule.resolve(rootDir);
62
68
  while (current.startsWith(normalizedRoot)) {
63
69
  if (!fsSync.existsSync(current)) break;
64
- if ((await fs.readdir(current)).length > 0) break;
65
- await fs.rmdir(current);
70
+ if ((await fileOperations.readdir(current)).length > 0) break;
71
+ await fileOperations.rmdir(current);
66
72
  if (pathModule.resolve(current) === normalizedRoot) break;
67
73
  current = pathModule.dirname(current);
68
74
  }
69
75
  }
70
76
  //#endregion
71
77
  export { writeStaticFiles };
72
-
73
- //# sourceMappingURL=write-static-files.js.map
package/dist/ssr/attrs.js CHANGED
@@ -90,5 +90,3 @@ function renderAttrs(props, opts) {
90
90
  }
91
91
  //#endregion
92
92
  export { renderAttrs, renderAttrsDirect };
93
-
94
- //# sourceMappingURL=attrs.js.map
@@ -1,8 +1,8 @@
1
1
  import { __CONTROL_BOUNDARY__ } from "../common/control.js";
2
2
  import { ELEMENT_TYPE } from "../common/jsx.js";
3
- import { evaluateForState } from "../runtime/for-internal.js";
4
- import "../runtime/for.js";
5
3
  import { evaluateCaseState, evaluateShowState } from "../runtime/control.js";
4
+ import { commitForStateTransaction, evaluateForState, rollbackForStateTransaction } from "../runtime/for-internal.js";
5
+ import "../runtime/index.js";
6
6
  import "../jsx/index.js";
7
7
  //#region src/ssr/boundaries.ts
8
8
  function normalizeRenderableChildren(value) {
@@ -68,7 +68,7 @@ function createDefaultErrorBoundaryFallbackVNode(error) {
68
68
  $$typeof: ELEMENT_TYPE,
69
69
  type: "details",
70
70
  props: {
71
- open: true,
71
+ open: false,
72
72
  children: [{
73
73
  $$typeof: ELEMENT_TYPE,
74
74
  type: "summary",
@@ -107,7 +107,18 @@ function evaluateControlBoundaryChildren(node) {
107
107
  if (controlState.kind === "show") return evaluateShowState(controlState);
108
108
  return evaluateCaseState(controlState);
109
109
  }
110
+ function withControlBoundaryChildren(node, render) {
111
+ const controlState = getControlBoundaryState(node);
112
+ if (!controlState || controlState.kind !== "for") return render(evaluateControlBoundaryChildren(node));
113
+ const children = evaluateForState(controlState);
114
+ try {
115
+ const result = render(children);
116
+ commitForStateTransaction(controlState);
117
+ return result;
118
+ } catch (error) {
119
+ rollbackForStateTransaction(controlState);
120
+ throw error;
121
+ }
122
+ }
110
123
  //#endregion
111
- export { createErrorBoundaryReset, evaluateControlBoundaryChildren, getControlBoundaryState, getErrorBoundaryState, getRenderableChildren, normalizeRenderableChildren, resetErrorBoundaryState, resolveErrorBoundaryFallbackNode };
112
-
113
- //# sourceMappingURL=boundaries.js.map
124
+ export { createErrorBoundaryReset, evaluateControlBoundaryChildren, getControlBoundaryState, getErrorBoundaryState, getRenderableChildren, normalizeRenderableChildren, resetErrorBoundaryState, resolveErrorBoundaryFallbackNode, withControlBoundaryChildren };
@@ -3,34 +3,12 @@ import { getCurrentComponentInstance, setCurrentComponentInstance } from "../run
3
3
  import { cleanupComponent } from "../runtime/component-cleanup.js";
4
4
  import { isPromiseLike } from "../common/promise.js";
5
5
  import { createComponentInstance } from "../runtime/component-internal.js";
6
- import "../runtime/component.js";
7
- import { DefaultPortal, disposeDefaultPortalScope } from "../foundations/structures/portal.js";
6
+ import { DefaultPortal, disposeDefaultPortalScope } from "../runtime/portal.js";
7
+ import "../runtime/index.js";
8
8
  import "../jsx/index.js";
9
9
  import { throwSSRDataMissing } from "./context.js";
10
- //#region src/ssr/component-runtime.ts
11
- const __ssrGuardStack = [];
12
- function pushSSRStrictPurityGuard() {
13
- __ssrGuardStack.push({
14
- random: Reflect.get(Math, "random"),
15
- now: Reflect.get(Date, "now")
16
- });
17
- Reflect.set(Math, "random", () => {
18
- throw new Error("SSR Strict Purity: Math.random is not allowed during synchronous SSR. Use the provided `ssr` context RNG instead.");
19
- });
20
- Reflect.set(Date, "now", () => {
21
- throw new Error("SSR Strict Purity: Date.now is not allowed during synchronous SSR. Pass timestamps explicitly or use deterministic helpers.");
22
- });
23
- }
24
- function popSSRStrictPurityGuard() {
25
- const prev = __ssrGuardStack.pop();
26
- if (prev) {
27
- Reflect.set(Math, "random", prev.random);
28
- Reflect.set(Date, "now", prev.now);
29
- }
30
- }
31
10
  function executeComponentSync(component, props, ctx) {
32
11
  try {
33
- pushSSRStrictPurityGuard();
34
12
  const prev = getCurrentComponentInstance();
35
13
  const temp = createComponentInstance("ssr-temp", component, props || {}, null);
36
14
  temp.ssr = true;
@@ -66,9 +44,7 @@ function executeComponentSync(component, props, ctx) {
66
44
  } finally {
67
45
  setCurrentComponentInstance(prev);
68
46
  }
69
- } finally {
70
- popSSRStrictPurityGuard();
71
- }
47
+ } finally {}
72
48
  }
73
49
  function disposeSSRTemporaryOwners(ctx) {
74
50
  const cleanupFns = ctx.ssrCleanupFns;
@@ -87,7 +63,7 @@ function wrapWithDefaultPortal(out) {
87
63
  const portalVNode = {
88
64
  $$typeof: ELEMENT_TYPE,
89
65
  type: DefaultPortal,
90
- props: {},
66
+ props: { __askrAutoDefaultPortal: true },
91
67
  key: "__default_portal"
92
68
  };
93
69
  if (out == null) return {
@@ -107,5 +83,3 @@ function renderSyncComponentRoot(component, props, ctx) {
107
83
  }
108
84
  //#endregion
109
85
  export { disposeSSRTemporaryOwners, executeComponentSync, renderSyncComponentRoot };
110
-
111
- //# sourceMappingURL=component-runtime.js.map
@@ -46,5 +46,4 @@ declare function runWithSSRContext<T>(ctx: RenderContext, fn: () => T): T;
46
46
  */
47
47
  declare function throwSSRDataMissing(): never;
48
48
  //#endregion
49
- export { RenderContext, type SSRData, SSRDataMissingError, getRenderContext, withRenderContext };
50
- //# sourceMappingURL=context.d.ts.map
49
+ export { RenderContext, type SSRData, SSRDataMissingError, getRenderContext, withRenderContext };
@@ -87,5 +87,3 @@ function throwSSRDataMissing() {
87
87
  }
88
88
  //#endregion
89
89
  export { SSRDataMissingError, createRenderContext, getRenderContext, throwSSRDataMissing, withRenderContext };
90
-
91
- //# sourceMappingURL=context.js.map
@@ -6,5 +6,4 @@ declare class SSRInvariantError extends Error {
6
6
  constructor(message: string);
7
7
  }
8
8
  //#endregion
9
- export { SSRDataMissingError };
10
- //# sourceMappingURL=errors.d.ts.map
9
+ export { SSRDataMissingError };
@@ -10,5 +10,3 @@ var SSRInvariantError = class SSRInvariantError extends Error {
10
10
  };
11
11
  //#endregion
12
12
  export { SSRDataMissingError, SSRInvariantError };
13
-
14
- //# sourceMappingURL=errors.js.map
@@ -189,5 +189,3 @@ function styleObjToCss(value) {
189
189
  }
190
190
  //#endregion
191
191
  export { VOID_ELEMENTS, clearEscapeCache, escapeAttr, escapeText, needsEscapeAttr, needsEscapeText, styleObjToCss };
192
-
193
- //# sourceMappingURL=escape.js.map
@@ -6,5 +6,3 @@ function serializeHydrationRenderData(data) {
6
6
  }
7
7
  //#endregion
8
8
  export { serializeHydrationRenderData };
9
-
10
- //# sourceMappingURL=hydration-data.js.map
@@ -8,5 +8,4 @@ type VerifyState = {
8
8
  declare function verifyRenderableNode(value: unknown, state: VerifyState, ctx: RenderContext): boolean;
9
9
  declare const hydrationVerifier: {
10
10
  verifyRenderableNode: typeof verifyRenderableNode;
11
- };
12
- //# sourceMappingURL=hydration-verify.d.ts.map
11
+ };
@@ -5,9 +5,26 @@ import { getPublicAttributeName } from "../common/attr-names.js";
5
5
  import "../jsx/index.js";
6
6
  import { VOID_ELEMENTS, styleObjToCss } from "./escape.js";
7
7
  import { executeComponentSync } from "./component-runtime.js";
8
- import { createErrorBoundaryReset, evaluateControlBoundaryChildren, getErrorBoundaryState, getRenderableChildren, normalizeRenderableChildren, resolveErrorBoundaryFallbackNode } from "./boundaries.js";
8
+ import { createErrorBoundaryReset, getErrorBoundaryState, getRenderableChildren, normalizeRenderableChildren, resolveErrorBoundaryFallbackNode, withControlBoundaryChildren } from "./boundaries.js";
9
9
  import { inheritRenderableKey } from "./render-sync.js";
10
10
  //#region src/ssr/hydration-verify.ts
11
+ const RANGE_START = "askr-range-start";
12
+ const RANGE_END = "askr-range-end";
13
+ function isMultiRangeChild(child) {
14
+ if (Array.isArray(child)) return child.length !== 1;
15
+ if (!child || typeof child !== "object" || !("type" in child)) return false;
16
+ const vnode = child;
17
+ return vnode.type === Fragment && (getRenderableChildren(vnode)?.length ?? 0) !== 1;
18
+ }
19
+ function verifyExpectedRangeChild(child, state, ctx) {
20
+ if (!isMultiRangeChild(child)) return verifyExpectedNode(child, state, ctx);
21
+ if (!state.current || state.current.nodeType !== Node.COMMENT_NODE || state.current.data !== RANGE_START) return false;
22
+ state.current = state.current.nextSibling;
23
+ if (!verifyExpectedNode(child, state, ctx)) return false;
24
+ if (!state.current || state.current.nodeType !== Node.COMMENT_NODE || state.current.data !== RANGE_END) return false;
25
+ state.current = state.current.nextSibling;
26
+ return true;
27
+ }
11
28
  function isSSRAttrEventHandler(key) {
12
29
  return key.length >= 3 && key.charCodeAt(0) === 111 && key.charCodeAt(1) === 110 && key.charCodeAt(2) >= 65 && key.charCodeAt(2) <= 90;
13
30
  }
@@ -70,12 +87,24 @@ function verifyExpectedNode(node, state, ctx) {
70
87
  const { type, props } = vnode;
71
88
  if (typeof type === "function") return verifyRenderableNode(inheritRenderableKey(vnode, executeComponentSync(type, props, ctx)), state, ctx);
72
89
  if (typeof type === "symbol") {
73
- if (type === __CONTROL_BOUNDARY__) {
74
- const children = evaluateControlBoundaryChildren(vnode);
90
+ if (type === __CONTROL_BOUNDARY__) return withControlBoundaryChildren(vnode, (children) => {
75
91
  if (!children || children.length === 0) return true;
76
- for (let index = 0; index < children.length; index += 1) if (!verifyExpectedNode(children[index], state, ctx)) return false;
92
+ if ((vnode._controlState ?? vnode._forState)?.kind === "for") {
93
+ for (const child of children) if (!verifyExpectedRangeChild(child, state, ctx)) return false;
94
+ return true;
95
+ }
96
+ const wrapped = children.length !== 1 || isMultiRangeChild(children[0]);
97
+ if (wrapped) {
98
+ if (!state.current || state.current.nodeType !== Node.COMMENT_NODE || state.current.data !== RANGE_START) return false;
99
+ state.current = state.current.nextSibling;
100
+ }
101
+ for (const child of children) if (!verifyExpectedNode(child, state, ctx)) return false;
102
+ if (wrapped) {
103
+ if (!state.current || state.current.nodeType !== Node.COMMENT_NODE || state.current.data !== RANGE_END) return false;
104
+ state.current = state.current.nextSibling;
105
+ }
77
106
  return true;
78
- }
107
+ });
79
108
  if (type === __ERROR_BOUNDARY__) {
80
109
  const boundaryState = getErrorBoundaryState(vnode);
81
110
  const fallback = props?.fallback;
@@ -140,5 +169,3 @@ function verifyRenderableNode(value, state, ctx) {
140
169
  return Array.isArray(value) ? verifyExpectedChildren(normalizeRenderableChildren(value), state, ctx) : verifyExpectedNode(value, state, ctx);
141
170
  }
142
171
  //#endregion
143
-
144
- //# sourceMappingURL=hydration-verify.js.map
@@ -11,5 +11,4 @@ declare function renderToString(component: (props?: Record<string, unknown>) =>
11
11
  declare function renderToString(opts: RouteRenderOptions): string;
12
12
  declare function renderToStream(opts: RouteStreamOptions): void;
13
13
  //#endregion
14
- export { type DocumentRenderArgs, type DocumentRenderContext, type DocumentRenderer, type SSRComponent, SSRDataMissingError, type SSRRoute, type VNode, renderResolvedToStringSync, renderToStream, renderToString, renderToStringSync, resolveRequest };
15
- //# sourceMappingURL=index-internal.d.ts.map
14
+ export { type DocumentRenderArgs, type DocumentRenderContext, type DocumentRenderer, type SSRComponent, SSRDataMissingError, type SSRRoute, type VNode, renderResolvedToStringSync, renderToStream, renderToString, renderToStringSync, resolveRequest };
@@ -15,5 +15,3 @@ function renderToStream(opts) {
15
15
  }
16
16
  //#endregion
17
17
  export { SSRDataMissingError, renderResolvedToStringSync, renderToStream, renderToString, renderToStringSync, resolveRequest };
18
-
19
- //# sourceMappingURL=index-internal.js.map
@@ -12,5 +12,3 @@ async function resolvePlan(_plan) {
12
12
  }
13
13
  //#endregion
14
14
  export { resolvePlan, startRenderPhase, stopRenderPhase };
15
-
16
- //# sourceMappingURL=render-keys.js.map
@@ -16,5 +16,4 @@ declare function renderResolvedToStringSync(opts: {
16
16
  };
17
17
  }): string;
18
18
  //#endregion
19
- export { renderResolvedToStringSync };
20
- //# sourceMappingURL=render-resolved.d.ts.map
19
+ export { renderResolvedToStringSync };
@@ -1,4 +1,4 @@
1
- import { resolveRouteFromRoutes } from "../router/resolution.js";
1
+ import { resolveRouteFromRoutes } from "../router/route-matching.js";
2
2
  import "../router/route.js";
3
3
  import { renderToString } from "./index-internal.js";
4
4
  import "./index.js";
@@ -31,5 +31,3 @@ function renderResolvedToStringSync(opts) {
31
31
  }
32
32
  //#endregion
33
33
  export { renderResolvedToStringSync };
34
-
35
- //# sourceMappingURL=render-resolved.js.map
@@ -17,5 +17,4 @@ declare function renderToStringSync(component: (props?: Record<string, unknown>)
17
17
  }): string;
18
18
  declare function renderSSRRouteAppToSink(input: RouteAppRenderInput): void;
19
19
  //#endregion
20
- export { renderToStringSync };
21
- //# sourceMappingURL=render-sync.d.ts.map
20
+ export { renderToStringSync };
@@ -1,18 +1,37 @@
1
1
  import { __CONTROL_BOUNDARY__ } from "../common/control.js";
2
2
  import { __ERROR_BOUNDARY__ } from "../common/vnode.js";
3
- import { logger } from "../dev/logger.js";
3
+ import { logger } from "../common/logger.js";
4
4
  import { Fragment } from "../common/jsx.js";
5
5
  import "../jsx/index.js";
6
6
  import { VOID_ELEMENTS, escapeText } from "./escape.js";
7
7
  import { createRenderContext, withRenderContext } from "./context.js";
8
8
  import { StringSink } from "./sink.js";
9
9
  import { disposeSSRTemporaryOwners, executeComponentSync, renderSyncComponentRoot } from "./component-runtime.js";
10
- import { createErrorBoundaryReset, evaluateControlBoundaryChildren, getErrorBoundaryState, getRenderableChildren, normalizeRenderableChildren, resolveErrorBoundaryFallbackNode } from "./boundaries.js";
10
+ import { createErrorBoundaryReset, getErrorBoundaryState, getRenderableChildren, normalizeRenderableChildren, resolveErrorBoundaryFallbackNode, withControlBoundaryChildren } from "./boundaries.js";
11
11
  import { renderAttrs, renderAttrsDirect } from "./attrs.js";
12
12
  import { serializeHydrationRenderData } from "./hydration-data.js";
13
13
  import { startRenderPhase, stopRenderPhase } from "./render-keys.js";
14
- //#region src/ssr/render-sync.ts
15
- const __SSR_DEBUG = process.env.ASKR_SSR_DEBUG === "1" || process.env.ASKR_SSR_DEBUG === "true";
14
+ const RANGE_START = "<!--askr-range-start-->";
15
+ const RANGE_END = "<!--askr-range-end-->";
16
+ function isMultiRangeChild(child) {
17
+ if (Array.isArray(child)) return child.length !== 1;
18
+ if (!child || typeof child !== "object" || !("type" in child)) return false;
19
+ const vnode = child;
20
+ if (vnode.type !== Fragment) return false;
21
+ return (getRenderableChildren(vnode)?.length ?? 0) !== 1;
22
+ }
23
+ function renderControlChildrenSync(node, ctx) {
24
+ const controlState = node._controlState ?? node._forState;
25
+ return withControlBoundaryChildren(node, (children) => {
26
+ const values = children ?? [];
27
+ if (controlState?.kind === "for") return values.map((child) => {
28
+ const rendered = renderChildSync(child, ctx);
29
+ return isMultiRangeChild(child) ? `${RANGE_START}${rendered}${RANGE_END}` : rendered;
30
+ }).join("");
31
+ const rendered = renderChildrenSync(values, ctx);
32
+ return values.length === 1 && isMultiRangeChild(values[0]) ? `${RANGE_START}${rendered}${RANGE_END}` : values.length !== 1 ? `${RANGE_START}${rendered}${RANGE_END}` : rendered;
33
+ });
34
+ }
16
35
  function inheritRenderableKey(source, result) {
17
36
  const inheritedKey = source.key;
18
37
  if (inheritedKey === void 0 || inheritedKey === null) return result;
@@ -22,6 +41,7 @@ function inheritRenderableKey(source, result) {
22
41
  if (typeof resultVNode.type === "string") {
23
42
  if (!resultVNode.props) resultVNode.props = {};
24
43
  if (resultVNode.props["data-key"] === void 0) resultVNode.props["data-key"] = String(inheritedKey);
44
+ if (resultVNode.props["data-askr-key-kind"] === void 0) resultVNode.props["data-askr-key-kind"] = typeof inheritedKey;
25
45
  }
26
46
  return result;
27
47
  }
@@ -99,21 +119,10 @@ function sinkWrite3(sink, a, b, c) {
99
119
  }
100
120
  function renderNodeSync(node, ctx) {
101
121
  const { type, props } = node;
102
- /* istanbul ignore if - dev-only debug */
103
- if (__SSR_DEBUG) try {
104
- logger.warn("[SSR] renderNodeSync type:", typeof type, type);
105
- } catch {}
106
122
  if (typeof type === "function") return renderRenderableSync(inheritRenderableKey(node, executeComponentSync(type, props, ctx)), ctx);
107
123
  if (typeof type === "symbol") {
108
- if (type === Fragment) {
109
- const childrenArr = getRenderableChildren(node);
110
- /* istanbul ignore if - dev-only debug */
111
- if (__SSR_DEBUG) try {
112
- logger.warn("[SSR] fragment children length:", childrenArr?.length);
113
- } catch {}
114
- return renderChildrenSync(childrenArr, ctx);
115
- }
116
- if (type === __CONTROL_BOUNDARY__) return renderChildrenSync(evaluateControlBoundaryChildren(node), ctx);
124
+ if (type === Fragment) return renderChildrenSync(getRenderableChildren(node), ctx);
125
+ if (type === __CONTROL_BOUNDARY__) return renderControlChildrenSync(node, ctx);
117
126
  if (type === __ERROR_BOUNDARY__) {
118
127
  const boundaryState = getErrorBoundaryState(node);
119
128
  const fallback = props?.fallback;
@@ -154,7 +163,8 @@ function renderNodeSyncToSink(node, sink, ctx) {
154
163
  return;
155
164
  }
156
165
  if (type === __CONTROL_BOUNDARY__) {
157
- renderChildrenSyncToSink(evaluateControlBoundaryChildren(node), sink, ctx);
166
+ const rendered = renderControlChildrenSync(node, ctx);
167
+ sink.write(rendered);
158
168
  return;
159
169
  }
160
170
  if (type === __ERROR_BOUNDARY__) {
@@ -271,5 +281,3 @@ function renderSSRRouteAppToSink(input) {
271
281
  }
272
282
  //#endregion
273
283
  export { inheritRenderableKey, renderRenderableSyncToSink, renderSSRRouteAppToSink, renderToStringSync };
274
-
275
- //# sourceMappingURL=render-sync.js.map
@@ -1,5 +1,6 @@
1
1
  import { isPromiseLike } from "../common/promise.js";
2
- import { _resolveRouteMatchFromRoutes, resolveRouteRequest } from "../router/resolution.js";
2
+ import { _resolveRouteMatchFromRoutes } from "../router/route-matching.js";
3
+ import { resolveRouteRequest } from "../router/resolution.js";
3
4
  import "../router/route.js";
4
5
  import { throwSSRDataMissing } from "./context.js";
5
6
  //#region src/ssr/route-policy-resolution.ts
@@ -73,5 +74,3 @@ function resolvePolicyAwareSSRRoute(opts, routeTable) {
73
74
  }
74
75
  //#endregion
75
76
  export { resolvePolicyAwareSSRRoute };
76
-
77
- //# sourceMappingURL=route-policy-resolution.js.map
@@ -73,5 +73,4 @@ declare function resolveRequest(opts: {
73
73
  declare function renderRouteToString(opts: RouteRenderOptions, host: RouteRenderHost): string;
74
74
  declare function renderRouteToStream(opts: RouteStreamOptions, host: RouteRenderHost): void;
75
75
  //#endregion
76
- export { RouteAppRenderInput, RouteRenderHost, RouteRenderOptions, RouteStreamOptions, SSRRoute, resolveRequest };
77
- //# sourceMappingURL=route-render.d.ts.map
76
+ export { RouteAppRenderInput, RouteRenderHost, RouteRenderOptions, RouteStreamOptions, SSRRoute, resolveRequest };
@@ -1,4 +1,5 @@
1
- import { resolveRouteFromRoutes, resolveRouteRequest } from "../router/resolution.js";
1
+ import { resolveRouteFromRoutes } from "../router/route-matching.js";
2
+ import { resolveRouteRequest } from "../router/resolution.js";
2
3
  import "../router/route.js";
3
4
  import { renderDocument } from "../common/ssr.js";
4
5
  import { createRenderContext } from "./context.js";
@@ -115,5 +116,3 @@ function renderRouteToStream(opts, host) {
115
116
  }
116
117
  //#endregion
117
118
  export { renderRouteToStream, renderRouteToString, resolveRequest };
118
-
119
- //# sourceMappingURL=route-render.js.map
@@ -22,5 +22,4 @@ declare class StreamSink implements RenderSink {
22
22
  end(): void;
23
23
  }
24
24
  //#endregion
25
- export { RenderSink };
26
- //# sourceMappingURL=sink.d.ts.map
25
+ export { RenderSink };
package/dist/ssr/sink.js CHANGED
@@ -82,5 +82,3 @@ var StreamSink = class {
82
82
  };
83
83
  //#endregion
84
84
  export { StreamSink, StringSink };
85
-
86
- //# sourceMappingURL=sink.js.map
@@ -19,5 +19,4 @@ type SSRComponent = (props: Props, context?: {
19
19
  ssr?: RenderContext;
20
20
  }) => VNode | JSXElement | string | number | boolean | null | undefined;
21
21
  //#endregion
22
- export { SSRComponent, VNode };
23
- //# sourceMappingURL=types.d.ts.map
22
+ export { SSRComponent, VNode };
@@ -20,5 +20,3 @@ function verifyHydrationSyncForUrl(opts) {
20
20
  }
21
21
  //#endregion
22
22
  export { verifyHydrationSyncForUrl };
23
-
24
- //# sourceMappingURL=verify-hydration.js.map
@@ -48,5 +48,4 @@ declare function createInvalidationRecorder(): InvalidationRecorder;
48
48
  declare function matchRoute(path: string, options?: MatchRouteOptions): RouteMatch | null;
49
49
  declare function getRouteWarnings(options?: MatchRouteOptions): RoutePatternWarning[];
50
50
  //#endregion
51
- export { InvalidationRecord, InvalidationRecorder, MockQueryOptions, MockRefresh, RoutePatternWarning, createInvalidationRecorder, getRouteWarnings, matchRoute, mockQuery, queryState };
52
- //# sourceMappingURL=index.d.ts.map
51
+ export { InvalidationRecord, InvalidationRecorder, MockQueryOptions, MockRefresh, RoutePatternWarning, createInvalidationRecorder, getRouteWarnings, matchRoute, mockQuery, queryState };
@@ -1,7 +1,8 @@
1
1
  import { parseSegments } from "../router/match.js";
2
- import { computeRouteActivityMatches } from "../router/resolution.js";
3
- import "../router/route.js";
2
+ import { computeRouteActivityMatches } from "../router/route-matching.js";
4
3
  import { addInvalidationListener } from "../data/invalidation-listeners.js";
4
+ import "../data/testing.js";
5
+ import "../router/testing.js";
5
6
  //#region src/testing/index.ts
6
7
  function normalizeRefresh(options) {
7
8
  return async () => {
@@ -169,5 +170,3 @@ function getRouteWarnings(options = {}) {
169
170
  }
170
171
  //#endregion
171
172
  export { createInvalidationRecorder, getRouteWarnings, matchRoute, mockQuery, queryState };
172
-
173
- //# sourceMappingURL=index.js.map