@askrjs/askr 0.0.52 → 0.0.53

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (386) hide show
  1. package/README.md +5 -1
  2. package/dist/{runtime/scheduler.js → access-Bg4RJNC8.js} +182 -9
  3. package/dist/actions/index.d.ts +2 -0
  4. package/dist/actions/index.js +103 -0
  5. package/dist/{common/attr-names.js → attr-names-CjhzmHOn.js} +1 -1
  6. package/dist/benchmark.d.ts +6 -2
  7. package/dist/benchmark.js +63 -11
  8. package/dist/boot/index.d.ts +61 -2
  9. package/dist/boot/index.js +1 -203
  10. package/dist/boot-j2KoN6ss.js +647 -0
  11. package/dist/cleanup-COv77su2.js +487 -0
  12. package/dist/component-internal-B3z7GXlD.js +614 -0
  13. package/dist/component-lifecycle-CO4hXlP4.js +357 -0
  14. package/dist/{runtime/component-scope.js → component-scope-CC3cojX9.js} +8 -1
  15. package/dist/component-scope-CvPba6O6.d.ts +12 -0
  16. package/dist/components/index.d.ts +17 -2
  17. package/dist/components/index.js +39 -1
  18. package/dist/compose-ref-Cc_YkUpM.js +92 -0
  19. package/dist/{foundations/utilities/compose-ref.d.ts → compose-ref-Cizq72-x.d.ts} +1 -1
  20. package/dist/control/index.d.ts +1 -3
  21. package/dist/control/index.js +1 -3
  22. package/dist/control-BQvNVfAd.d.ts +436 -0
  23. package/dist/control-BYyLTFyw.js +165 -0
  24. package/dist/control-Bf4Wkdvv.d.ts +9 -0
  25. package/dist/{common/control.js → control-DhFRTIoE.js} +1 -1
  26. package/dist/data/index.d.ts +2 -6
  27. package/dist/data/index.js +4 -5
  28. package/dist/data-DnxnDxD-.js +559 -0
  29. package/dist/{data/data-runtime.js → data-runtime-SJ1BSUvk.js} +32 -31
  30. package/dist/deferred-lKE8uR0z.js +386 -0
  31. package/dist/{runtime/effect.js → effect-BwnIvLah.js} +4 -4
  32. package/dist/fastlane-Dw8SOBr9.js +343 -0
  33. package/dist/for-internal-BKf_Tnv1.js +1563 -0
  34. package/dist/foundations/icon/index.d.ts +68 -2
  35. package/dist/foundations/icon/index.js +85 -1
  36. package/dist/foundations/index.d.ts +2 -5
  37. package/dist/foundations/index.js +2 -5
  38. package/dist/foundations/interactions/index.d.ts +264 -6
  39. package/dist/foundations/interactions/index.js +1 -6
  40. package/dist/foundations/state/index.d.ts +32 -1
  41. package/dist/foundations/state/index.js +78 -1
  42. package/dist/foundations/structures/index.d.ts +2 -7
  43. package/dist/foundations/structures/index.js +2 -7
  44. package/dist/foundations/utilities/index.d.ts +2 -6
  45. package/dist/foundations/utilities/index.js +2 -5
  46. package/dist/fx/index.d.ts +190 -3
  47. package/dist/fx/index.js +454 -4
  48. package/dist/index-31Uoz_NS.d.ts +239 -0
  49. package/dist/index-Bki2rqcr.d.ts +233 -0
  50. package/dist/index-BnU0NPwM.d.ts +101 -0
  51. package/dist/index-D73jgYx1.d.ts +48 -0
  52. package/dist/{runtime/runtime.d.ts → index-R2JJIbM-.d.ts} +31 -8
  53. package/dist/index-SJXJkssx.d.ts +44 -0
  54. package/dist/index.d.ts +8 -13
  55. package/dist/index.js +150 -15
  56. package/dist/interactions-w7gQN4ha.js +280 -0
  57. package/dist/{data/invalidation-listeners.js → invalidation-listeners-Des3AHYs.js} +1 -1
  58. package/dist/{common/props.d.ts → jsx-CP0gmYwJ.d.ts} +17 -5
  59. package/dist/{common/jsx.js → jsx-CUpRxrLH.js} +1 -1
  60. package/dist/jsx-dev-runtime.d.ts +2 -4
  61. package/dist/jsx-dev-runtime.js +7 -5
  62. package/dist/jsx-runtime-92bV2hSa.d.ts +34 -0
  63. package/dist/jsx-runtime-BVVgDSdq.d.ts +1 -0
  64. package/dist/jsx-runtime.d.ts +2 -35
  65. package/dist/jsx-runtime.js +11 -5
  66. package/dist/{runtime/lifecycle-operations.js → lifecycle-operations-D9va7GOU.js} +4 -5
  67. package/dist/navigate-BVDCzOuB.d.ts +34 -0
  68. package/dist/navigate-CmPLSXyw.js +1449 -0
  69. package/dist/{runtime/portal.js → portal-CyU3Ucf2.js} +33 -36
  70. package/dist/query-registry-CQIT4mXr.js +73 -0
  71. package/dist/{common/render-context.js → render-context-Clw3rFiO.js} +14 -6
  72. package/dist/renderer-DzPjeLby.js +6197 -0
  73. package/dist/{runtime/resource-operation.js → resource-operation-CEzfpnDk.js} +118 -15
  74. package/dist/resources/index.d.ts +42 -3
  75. package/dist/resources/index.js +3 -4
  76. package/dist/{common/route-activity.js → route-activity-CNJfpwx-.js} +1 -1
  77. package/dist/route-matching-vJpvLVbX.js +515 -0
  78. package/dist/router/index.d.ts +166 -14
  79. package/dist/router/index.js +150 -12
  80. package/dist/{common/router.d.ts → router-CeYvjj5_.d.ts} +72 -28
  81. package/dist/{common/router-internal.js → router-internal-BC0w1_xk.js} +1 -1
  82. package/dist/{runtime/scheduler.d.ts → scheduler-CmLO4Dfm.d.ts} +1 -3
  83. package/dist/{runtime/selector.js → selector-DafVYzV4.js} +34 -11
  84. package/dist/{runtime/snapshot-source.js → snapshot-source-BB42xgwb.js} +1 -1
  85. package/dist/ssg/index.d.ts +252 -4
  86. package/dist/ssg/index.js +857 -1
  87. package/dist/ssr/index.d.ts +225 -8
  88. package/dist/ssr/index.js +3 -6
  89. package/dist/{common/ssr.js → ssr-CbQO5xd3.js} +1 -1
  90. package/dist/ssr-D3t80Rc0.js +1413 -0
  91. package/dist/{runtime/state.js → state-DPl8lffD.js} +3 -5
  92. package/dist/structures-DUB3HchX.js +221 -0
  93. package/dist/testing/index.d.ts +3 -2
  94. package/dist/testing/index.js +2 -5
  95. package/dist/{jsx/types.d.ts → types-DnQVG4ZY.d.ts} +2 -5
  96. package/dist/{foundations/utilities/use-id.js → utilities-C_CGX4Dz.js} +1 -1
  97. package/dist/{ssr/verify-hydration.js → verify-hydration-io9ahUeq.js} +2 -2
  98. package/dist/{common/vnode.js → vnode-CGMJYPMB.js} +2 -2
  99. package/package.json +12 -7
  100. package/dist/bench/components/benchmark-row.d.ts +0 -20
  101. package/dist/bench/components/benchmark-row.js +0 -40
  102. package/dist/bench/components/benchmark-table.js +0 -23
  103. package/dist/bin/askr-ssg.d.ts +0 -27
  104. package/dist/bin/askr-ssg.js +0 -186
  105. package/dist/boot/hydration.js +0 -139
  106. package/dist/boot/root-lifecycle.d.ts +0 -18
  107. package/dist/boot/root-lifecycle.js +0 -209
  108. package/dist/boot/route-startup.js +0 -54
  109. package/dist/boot/types.d.ts +0 -61
  110. package/dist/common/component.d.ts +0 -18
  111. package/dist/common/control.d.ts +0 -12
  112. package/dist/common/dom-range.d.ts +0 -13
  113. package/dist/common/env.js +0 -41
  114. package/dist/common/error-boundary.d.ts +0 -15
  115. package/dist/common/invariant.js +0 -15
  116. package/dist/common/jsx.d.ts +0 -22
  117. package/dist/common/logger.js +0 -34
  118. package/dist/common/promise.js +0 -6
  119. package/dist/common/ssr-errors.d.ts +0 -10
  120. package/dist/common/ssr-errors.js +0 -14
  121. package/dist/common/ssr.d.ts +0 -41
  122. package/dist/common/vnode.d.ts +0 -21
  123. package/dist/components/error-boundary.d.ts +0 -14
  124. package/dist/components/error-boundary.js +0 -41
  125. package/dist/components/link.d.ts +0 -68
  126. package/dist/components/link.js +0 -74
  127. package/dist/control/case.d.ts +0 -18
  128. package/dist/control/case.js +0 -68
  129. package/dist/control/for.d.ts +0 -23
  130. package/dist/control/for.js +0 -61
  131. package/dist/control/shared.d.ts +0 -8
  132. package/dist/control/shared.js +0 -18
  133. package/dist/control/show.d.ts +0 -14
  134. package/dist/control/show.js +0 -32
  135. package/dist/data/data-runtime.d.ts +0 -27
  136. package/dist/data/invalidation.d.ts +0 -8
  137. package/dist/data/invalidation.js +0 -25
  138. package/dist/data/mutation-cell.d.ts +0 -27
  139. package/dist/data/mutation-cell.js +0 -133
  140. package/dist/data/query-cell.d.ts +0 -47
  141. package/dist/data/query-cell.js +0 -324
  142. package/dist/data/query-key.js +0 -40
  143. package/dist/data/shared.js +0 -20
  144. package/dist/data/testing.js +0 -2
  145. package/dist/data/types.d.ts +0 -160
  146. package/dist/foundations/icon/icon.d.ts +0 -52
  147. package/dist/foundations/icon/icon.js +0 -86
  148. package/dist/foundations/icon/icon.types.d.ts +0 -21
  149. package/dist/foundations/interactions/dismissable.d.ts +0 -71
  150. package/dist/foundations/interactions/dismissable.js +0 -24
  151. package/dist/foundations/interactions/focusable.d.ts +0 -21
  152. package/dist/foundations/interactions/focusable.js +0 -16
  153. package/dist/foundations/interactions/hoverable.d.ts +0 -25
  154. package/dist/foundations/interactions/hoverable.js +0 -13
  155. package/dist/foundations/interactions/interaction-policy.d.ts +0 -49
  156. package/dist/foundations/interactions/interaction-policy.js +0 -120
  157. package/dist/foundations/interactions/pressable.d.ts +0 -60
  158. package/dist/foundations/interactions/pressable.js +0 -49
  159. package/dist/foundations/interactions/roving-focus.d.ts +0 -51
  160. package/dist/foundations/interactions/roving-focus.js +0 -69
  161. package/dist/foundations/state/controllable.d.ts +0 -32
  162. package/dist/foundations/state/controllable.js +0 -80
  163. package/dist/foundations/structures/collection.d.ts +0 -51
  164. package/dist/foundations/structures/collection.js +0 -49
  165. package/dist/foundations/structures/layer.d.ts +0 -80
  166. package/dist/foundations/structures/layer.js +0 -79
  167. package/dist/foundations/structures/layout.d.ts +0 -32
  168. package/dist/foundations/structures/layout.js +0 -11
  169. package/dist/foundations/structures/portal.d.ts +0 -2
  170. package/dist/foundations/structures/portal.js +0 -3
  171. package/dist/foundations/structures/presence.d.ts +0 -36
  172. package/dist/foundations/structures/presence.js +0 -37
  173. package/dist/foundations/structures/slot.d.ts +0 -34
  174. package/dist/foundations/structures/slot.js +0 -39
  175. package/dist/foundations/utilities/aria.d.ts +0 -15
  176. package/dist/foundations/utilities/aria.js +0 -15
  177. package/dist/foundations/utilities/compose-handlers.d.ts +0 -36
  178. package/dist/foundations/utilities/compose-handlers.js +0 -18
  179. package/dist/foundations/utilities/compose-ref.js +0 -16
  180. package/dist/foundations/utilities/event-types.d.ts +0 -19
  181. package/dist/foundations/utilities/merge-props.d.ts +0 -4
  182. package/dist/foundations/utilities/merge-props.js +0 -47
  183. package/dist/foundations/utilities/use-id.d.ts +0 -31
  184. package/dist/fx/fx.d.ts +0 -32
  185. package/dist/fx/fx.js +0 -211
  186. package/dist/fx/noop.js +0 -7
  187. package/dist/fx/timing.d.ts +0 -158
  188. package/dist/fx/timing.js +0 -241
  189. package/dist/jsx/index.d.ts +0 -2
  190. package/dist/jsx/index.js +0 -4
  191. package/dist/jsx/types.js +0 -2
  192. package/dist/jsx/utils.d.ts +0 -4
  193. package/dist/jsx/utils.js +0 -17
  194. package/dist/jsx-runtime2.d.ts +0 -3
  195. package/dist/jsx-runtime2.js +0 -4
  196. package/dist/renderer/attributes.js +0 -254
  197. package/dist/renderer/boundaries.js +0 -142
  198. package/dist/renderer/boundary-materialization.js +0 -72
  199. package/dist/renderer/boundary-range-adoption.js +0 -76
  200. package/dist/renderer/boundary-range-sync.js +0 -101
  201. package/dist/renderer/boundary-state.js +0 -50
  202. package/dist/renderer/child-shape.js +0 -83
  203. package/dist/renderer/children-fastpath.js +0 -149
  204. package/dist/renderer/children.js +0 -158
  205. package/dist/renderer/cleanup.js +0 -267
  206. package/dist/renderer/component-host-cleanup.js +0 -143
  207. package/dist/renderer/component-host-instances.js +0 -116
  208. package/dist/renderer/component-host-replacement.js +0 -105
  209. package/dist/renderer/component-host-results.js +0 -138
  210. package/dist/renderer/component-host.js +0 -172
  211. package/dist/renderer/dom-host.js +0 -11
  212. package/dist/renderer/dom-internal.js +0 -243
  213. package/dist/renderer/dom-range.js +0 -161
  214. package/dist/renderer/dom.js +0 -11
  215. package/dist/renderer/element-children.js +0 -359
  216. package/dist/renderer/env.js +0 -2
  217. package/dist/renderer/error-boundary-dom.js +0 -86
  218. package/dist/renderer/evaluate-dom-range.js +0 -84
  219. package/dist/renderer/evaluate-reconcile.js +0 -257
  220. package/dist/renderer/evaluate.js +0 -95
  221. package/dist/renderer/fastpath.js +0 -142
  222. package/dist/renderer/for-commit-dom-map.js +0 -71
  223. package/dist/renderer/for-commit-removal.js +0 -27
  224. package/dist/renderer/for-commit-reorder.js +0 -87
  225. package/dist/renderer/for-commit.js +0 -442
  226. package/dist/renderer/hydration-boundaries.js +0 -60
  227. package/dist/renderer/hydration-listener-transaction.js +0 -49
  228. package/dist/renderer/index.js +0 -39
  229. package/dist/renderer/intrinsic-blueprint-analysis.js +0 -202
  230. package/dist/renderer/intrinsic-blueprint-bindings.js +0 -152
  231. package/dist/renderer/intrinsic-blueprint-materialization.js +0 -100
  232. package/dist/renderer/intrinsic-blueprint.js +0 -30
  233. package/dist/renderer/intrinsic-hydration-adoption.js +0 -66
  234. package/dist/renderer/keyed-children.js +0 -26
  235. package/dist/renderer/keyed.js +0 -167
  236. package/dist/renderer/namespaces.js +0 -21
  237. package/dist/renderer/prop-bindings.js +0 -315
  238. package/dist/renderer/reactive-child-dom.js +0 -139
  239. package/dist/renderer/reactive-child-sources.js +0 -182
  240. package/dist/renderer/reactive-children.js +0 -303
  241. package/dist/renderer/reconcile-commit.js +0 -36
  242. package/dist/renderer/reconcile-fastpaths.js +0 -100
  243. package/dist/renderer/reconcile-resolution.js +0 -163
  244. package/dist/renderer/reconcile.js +0 -37
  245. package/dist/renderer/retained-element-rollback.js +0 -288
  246. package/dist/renderer/stable-patch.js +0 -80
  247. package/dist/renderer/static-reuse.js +0 -94
  248. package/dist/renderer/types.js +0 -2
  249. package/dist/renderer/utils.js +0 -265
  250. package/dist/router/access.js +0 -34
  251. package/dist/router/activity.d.ts +0 -9
  252. package/dist/router/activity.js +0 -85
  253. package/dist/router/authoring.d.ts +0 -21
  254. package/dist/router/authoring.js +0 -196
  255. package/dist/router/internal-types.d.ts +0 -30
  256. package/dist/router/lazy.d.ts +0 -18
  257. package/dist/router/lazy.js +0 -50
  258. package/dist/router/manifest.d.ts +0 -9
  259. package/dist/router/manifest.js +0 -47
  260. package/dist/router/match.js +0 -120
  261. package/dist/router/navigate.d.ts +0 -10
  262. package/dist/router/navigate.js +0 -73
  263. package/dist/router/navigation-registry.d.ts +0 -31
  264. package/dist/router/navigation-registry.js +0 -103
  265. package/dist/router/navigation-scroll.d.ts +0 -13
  266. package/dist/router/navigation-scroll.js +0 -91
  267. package/dist/router/navigation-targets.d.ts +0 -30
  268. package/dist/router/navigation-targets.js +0 -634
  269. package/dist/router/policy.d.ts +0 -27
  270. package/dist/router/policy.js +0 -130
  271. package/dist/router/rendering.d.ts +0 -9
  272. package/dist/router/rendering.js +0 -47
  273. package/dist/router/resolution.d.ts +0 -3
  274. package/dist/router/resolution.js +0 -84
  275. package/dist/router/route-context.js +0 -77
  276. package/dist/router/route-matching.d.ts +0 -19
  277. package/dist/router/route-matching.js +0 -173
  278. package/dist/router/route-query.d.ts +0 -16
  279. package/dist/router/route-query.js +0 -45
  280. package/dist/router/route.d.ts +0 -8
  281. package/dist/router/route.js +0 -10
  282. package/dist/router/store.d.ts +0 -49
  283. package/dist/router/store.js +0 -169
  284. package/dist/router/testing.js +0 -4
  285. package/dist/runtime/access.d.ts +0 -19
  286. package/dist/runtime/access.js +0 -43
  287. package/dist/runtime/child-scope.d.ts +0 -41
  288. package/dist/runtime/child-scope.js +0 -134
  289. package/dist/runtime/component-cleanup.d.ts +0 -15
  290. package/dist/runtime/component-cleanup.js +0 -68
  291. package/dist/runtime/component-commit.js +0 -167
  292. package/dist/runtime/component-facade.d.ts +0 -5
  293. package/dist/runtime/component-facade.js +0 -6
  294. package/dist/runtime/component-internal.d.ts +0 -105
  295. package/dist/runtime/component-internal.js +0 -237
  296. package/dist/runtime/component-lifecycle.d.ts +0 -10
  297. package/dist/runtime/component-lifecycle.js +0 -33
  298. package/dist/runtime/component-scope.d.ts +0 -54
  299. package/dist/runtime/component.d.ts +0 -5
  300. package/dist/runtime/component.js +0 -6
  301. package/dist/runtime/context.d.ts +0 -72
  302. package/dist/runtime/context.js +0 -236
  303. package/dist/runtime/control.d.ts +0 -62
  304. package/dist/runtime/control.js +0 -239
  305. package/dist/runtime/derive.d.ts +0 -16
  306. package/dist/runtime/derive.js +0 -140
  307. package/dist/runtime/dev-namespace.d.ts +0 -30
  308. package/dist/runtime/dev-namespace.js +0 -64
  309. package/dist/runtime/effect.d.ts +0 -35
  310. package/dist/runtime/error-boundary.d.ts +0 -4
  311. package/dist/runtime/error-boundary.js +0 -29
  312. package/dist/runtime/events.d.ts +0 -58
  313. package/dist/runtime/events.js +0 -201
  314. package/dist/runtime/execution-model.d.ts +0 -6
  315. package/dist/runtime/execution-model.js +0 -13
  316. package/dist/runtime/fastlane.d.ts +0 -33
  317. package/dist/runtime/fastlane.js +0 -173
  318. package/dist/runtime/for-bench.d.ts +0 -40
  319. package/dist/runtime/for-bench.js +0 -13
  320. package/dist/runtime/for-internal.d.ts +0 -106
  321. package/dist/runtime/for-internal.js +0 -285
  322. package/dist/runtime/for-reconcile.d.ts +0 -7
  323. package/dist/runtime/for-reconcile.js +0 -442
  324. package/dist/runtime/for-scopes.d.ts +0 -26
  325. package/dist/runtime/for-scopes.js +0 -280
  326. package/dist/runtime/for-signals.d.ts +0 -39
  327. package/dist/runtime/for-signals.js +0 -213
  328. package/dist/runtime/for-types.d.ts +0 -8
  329. package/dist/runtime/for.d.ts +0 -4
  330. package/dist/runtime/for.js +0 -5
  331. package/dist/runtime/index.d.ts +0 -24
  332. package/dist/runtime/index.js +0 -33
  333. package/dist/runtime/lifecycle-batch.d.ts +0 -59
  334. package/dist/runtime/lifecycle-batch.js +0 -178
  335. package/dist/runtime/lifecycle-operation-settlement.d.ts +0 -5
  336. package/dist/runtime/lifecycle-operation-settlement.js +0 -51
  337. package/dist/runtime/lifecycle-operations.d.ts +0 -30
  338. package/dist/runtime/operations.d.ts +0 -3
  339. package/dist/runtime/operations.js +0 -3
  340. package/dist/runtime/perf-metrics.d.ts +0 -27
  341. package/dist/runtime/perf-metrics.js +0 -6
  342. package/dist/runtime/portal.d.ts +0 -21
  343. package/dist/runtime/readable.d.ts +0 -34
  344. package/dist/runtime/readable.js +0 -183
  345. package/dist/runtime/resource-cell.js +0 -112
  346. package/dist/runtime/resource-operation.d.ts +0 -12
  347. package/dist/runtime/runtime.js +0 -57
  348. package/dist/runtime/selector-store.js +0 -22
  349. package/dist/runtime/selector.d.ts +0 -10
  350. package/dist/runtime/snapshot-source.d.ts +0 -9
  351. package/dist/runtime/state.d.ts +0 -54
  352. package/dist/ssg/batch-render.js +0 -101
  353. package/dist/ssg/create-static-gen.d.ts +0 -66
  354. package/dist/ssg/create-static-gen.js +0 -250
  355. package/dist/ssg/generate-metadata.js +0 -92
  356. package/dist/ssg/generation-plan.js +0 -68
  357. package/dist/ssg/incremental-manifest.js +0 -54
  358. package/dist/ssg/resolve-ssg-data.js +0 -103
  359. package/dist/ssg/route-utils.js +0 -22
  360. package/dist/ssg/static-routes.js +0 -100
  361. package/dist/ssg/types.d.ts +0 -188
  362. package/dist/ssg/write-static-files.js +0 -77
  363. package/dist/ssr/attrs.js +0 -92
  364. package/dist/ssr/boundaries.js +0 -124
  365. package/dist/ssr/component-runtime.js +0 -85
  366. package/dist/ssr/context.d.ts +0 -49
  367. package/dist/ssr/context.js +0 -89
  368. package/dist/ssr/errors.d.ts +0 -9
  369. package/dist/ssr/errors.js +0 -12
  370. package/dist/ssr/escape.js +0 -191
  371. package/dist/ssr/hydration-data.js +0 -8
  372. package/dist/ssr/hydration-verify.d.ts +0 -11
  373. package/dist/ssr/hydration-verify.js +0 -171
  374. package/dist/ssr/index-internal.d.ts +0 -14
  375. package/dist/ssr/index-internal.js +0 -17
  376. package/dist/ssr/render-keys.js +0 -14
  377. package/dist/ssr/render-resolved.d.ts +0 -19
  378. package/dist/ssr/render-resolved.js +0 -33
  379. package/dist/ssr/render-sync.d.ts +0 -20
  380. package/dist/ssr/render-sync.js +0 -283
  381. package/dist/ssr/route-policy-resolution.js +0 -76
  382. package/dist/ssr/route-render.d.ts +0 -76
  383. package/dist/ssr/route-render.js +0 -118
  384. package/dist/ssr/sink.d.ts +0 -25
  385. package/dist/ssr/sink.js +0 -84
  386. package/dist/ssr/types.d.ts +0 -22
@@ -1,139 +0,0 @@
1
- import { isProductionEnvironment } from "../common/env.js";
2
- import { setStaticChildSlotsCacheEnabled } from "../renderer/static-reuse.js";
3
- import { registerDeferredHydrationBoundary } from "../renderer/hydration-boundaries.js";
4
- import "../renderer/dom.js";
5
- import "../renderer/index.js";
6
- import "../common/ssr.js";
7
- //#region src/boot/hydration.ts
8
- function takeHydrationRenderData(rootElement) {
9
- for (const child of Array.from(rootElement.children)) if (child instanceof HTMLScriptElement && child.getAttribute("data-askr-render-data") === "true") {
10
- const raw = child.textContent ?? "";
11
- child.remove();
12
- if (!raw) return {};
13
- try {
14
- return JSON.parse(raw);
15
- } catch (err) {
16
- const error = /* @__PURE__ */ new Error("[Askr] Failed to parse embedded SSR render data during hydration.");
17
- error.cause = err;
18
- throw error;
19
- }
20
- }
21
- return null;
22
- }
23
- function markSkippedElements(root, skipSelectors) {
24
- if (skipSelectors.length === 0) return;
25
- const selectorList = Array.from(new Set(skipSelectors)).join(", ");
26
- root.querySelectorAll(selectorList).forEach((el) => el.setAttribute("data-skip-hydrate", "true"));
27
- }
28
- function collectDeferredBelowFoldBoundaries(root, foldY) {
29
- const boundaries = [];
30
- const stack = [];
31
- for (let index = root.children.length - 1; index >= 0; index -= 1) stack.push(root.children[index]);
32
- while (stack.length > 0) {
33
- const element = stack.pop();
34
- if (element.hasAttribute("data-skip-hydrate")) continue;
35
- if (element.getBoundingClientRect().top >= foldY) {
36
- element.setAttribute("data-skip-hydrate", "true");
37
- registerDeferredHydrationBoundary(root, element);
38
- boundaries.push(element);
39
- continue;
40
- }
41
- for (let index = element.children.length - 1; index >= 0; index -= 1) stack.push(element.children[index]);
42
- }
43
- return boundaries;
44
- }
45
- function activateVisibleDeferredBoundaries(root, boundaries, foldY, activate) {
46
- let activated = false;
47
- let remaining = 0;
48
- for (const element of boundaries) {
49
- if (!element.hasAttribute("data-skip-hydrate")) continue;
50
- if (element.getBoundingClientRect().top < foldY) try {
51
- if (activate(root, element)) activated = true;
52
- } catch {}
53
- if (element.hasAttribute("data-skip-hydrate")) remaining += 1;
54
- }
55
- return {
56
- activated,
57
- remaining
58
- };
59
- }
60
- function queueIdleWork(work) {
61
- return new Promise((resolve) => {
62
- if (typeof requestIdleCallback !== "undefined") {
63
- requestIdleCallback(() => {
64
- work();
65
- resolve();
66
- }, { timeout: 2e3 });
67
- return;
68
- }
69
- setTimeout(() => {
70
- work();
71
- resolve();
72
- }, 0);
73
- });
74
- }
75
- function shouldVerifyHydrationMarkup(config) {
76
- const explicit = config.hydrate?.verifyMarkup;
77
- if (typeof explicit === "boolean") return explicit;
78
- return !isProductionEnvironment();
79
- }
80
- async function applySelectiveHydration(rootElement, resolved, path, cleanupStrict, hydrateOptions, source, hooks) {
81
- const hasPermanentSkips = (hydrateOptions.skipSelectors?.length ?? 0) > 0;
82
- const hasBelowFoldDeferral = !!hydrateOptions.deferBelowFold;
83
- const hasSelectiveBoundaries = hasPermanentSkips || hasBelowFoldDeferral;
84
- let staticChildSlotsCacheSuspended = false;
85
- let releaseSelectiveHydrationResources = () => {};
86
- const restoreStaticChildSlotsCache = () => {
87
- if (!staticChildSlotsCacheSuspended) return;
88
- setStaticChildSlotsCacheEnabled(true);
89
- staticChildSlotsCacheSuspended = false;
90
- };
91
- if (hydrateOptions.skipSelectors?.length) markSkippedElements(rootElement, hydrateOptions.skipSelectors);
92
- let deferredBoundaries = [];
93
- if (hydrateOptions.deferBelowFold) {
94
- setStaticChildSlotsCacheEnabled(false);
95
- staticChildSlotsCacheSuspended = true;
96
- const foldY = hydrateOptions.foldThreshold ?? window.innerHeight;
97
- deferredBoundaries = collectDeferredBelowFoldBoundaries(rootElement, foldY);
98
- let selectiveHydrationResourcesReleased = false;
99
- let unregisterRootCleanupCallback = () => {};
100
- function handleScroll() {
101
- const { activated, remaining } = activateVisibleDeferredBoundaries(rootElement, deferredBoundaries, foldY, hooks.activateHydrationBoundary);
102
- if (!activated) return;
103
- if (remaining === 0) releaseSelectiveHydrationResources();
104
- }
105
- releaseSelectiveHydrationResources = () => {
106
- if (selectiveHydrationResourcesReleased) return;
107
- selectiveHydrationResourcesReleased = true;
108
- unregisterRootCleanupCallback();
109
- window.removeEventListener("scroll", handleScroll);
110
- restoreStaticChildSlotsCache();
111
- };
112
- unregisterRootCleanupCallback = hooks.registerRootCleanupCallback(rootElement, releaseSelectiveHydrationResources);
113
- window.addEventListener("scroll", handleScroll, { passive: true });
114
- }
115
- if (hydrateOptions.deferUntilIdle && !hasSelectiveBoundaries) {
116
- await queueIdleWork(() => {
117
- hooks.mountOrUpdate(rootElement, (() => resolved.handler(resolved.params)), { cleanupStrict });
118
- });
119
- await hooks.registerAppNavigation(rootElement, path, source);
120
- return;
121
- }
122
- try {
123
- hooks.mountOrUpdate(rootElement, (() => resolved.handler(resolved.params)), { cleanupStrict });
124
- await hooks.registerAppNavigation(rootElement, path, source);
125
- } catch (error) {
126
- releaseSelectiveHydrationResources();
127
- throw error;
128
- }
129
- if (hydrateOptions.deferUntilIdle && deferredBoundaries.length > 0) await queueIdleWork(() => {
130
- try {
131
- activateVisibleDeferredBoundaries(rootElement, deferredBoundaries, Number.POSITIVE_INFINITY, hooks.activateHydrationBoundary);
132
- } finally {
133
- releaseSelectiveHydrationResources();
134
- }
135
- });
136
- if (deferredBoundaries.length === 0) releaseSelectiveHydrationResources();
137
- }
138
- //#endregion
139
- export { applySelectiveHydration, markSkippedElements, shouldVerifyHydrationMarkup, takeHydrationRenderData };
@@ -1,18 +0,0 @@
1
- import { ComponentInstance } from "../runtime/component-internal.js";
2
- import { ComponentFunction } from "../common/component.js";
3
- import { BootAppRouteSource } from "./types.js";
4
-
5
- //#region src/boot/root-lifecycle.d.ts
6
- declare function registerRootCleanupCallback(rootElement: Element, callback: () => void): () => void;
7
- declare function mountOrUpdate(rootElement: Element, componentFn: ComponentFunction, options?: {
8
- cleanupStrict?: boolean;
9
- }): void;
10
- /** @internal Activate one deferred boundary without rerunning its root. */
11
- declare function activateHydrationBoundary(rootElement: Element, boundary: Element): boolean;
12
- /** @internal Move a prepared, off-tree root instance into a mounted root. */
13
- declare function replaceMountedRootInstance(rootElement: Element, previousInstance: ComponentInstance, nextInstance: ComponentInstance): void;
14
- declare function registerAppNavigation(rootElement: Element, path: string, source?: BootAppRouteSource): Promise<void>;
15
- declare function cleanupApp(root: Element | string): void;
16
- declare function hasApp(root: Element | string): boolean;
17
- //#endregion
18
- export { cleanupApp, hasApp };
@@ -1,209 +0,0 @@
1
- import { isDevelopmentEnvironment } from "../common/env.js";
2
- import { logger } from "../common/logger.js";
3
- import { flushRuntimeScheduler } from "../runtime/access.js";
4
- import { ELEMENT_TYPE, Fragment } from "../common/jsx.js";
5
- import { cleanupComponent } from "../runtime/component-cleanup.js";
6
- import { isPromiseLike } from "../common/promise.js";
7
- import { createComponentInstance, mountComponent } from "../runtime/component-internal.js";
8
- import { DefaultPortal, disposeDefaultPortalScope } from "../runtime/portal.js";
9
- import "../runtime/index.js";
10
- import { removeAllListeners, teardownNodeSubtree } from "../renderer/cleanup.js";
11
- import "../jsx/index.js";
12
- import { clearDeferredHydrationBoundaries } from "../renderer/hydration-boundaries.js";
13
- import { activateHydrationBoundary as activateHydrationBoundary$1 } from "../renderer/dom-internal.js";
14
- import { installRendererBridge } from "../renderer/index.js";
15
- import { clearRoutes } from "../router/manifest.js";
16
- import "../router/route.js";
17
- import { registerAppInstance, unregisterAppInstance } from "../router/navigation-registry.js";
18
- import { initializeNavigation } from "../router/navigate.js";
19
- //#region src/boot/root-lifecycle.ts
20
- installRendererBridge();
21
- let componentIdCounter = 0;
22
- const instancesByRoot = /* @__PURE__ */ new WeakMap();
23
- const routedRoots = /* @__PURE__ */ new Set();
24
- const CLEANUP_SYMBOL = Symbol.for("__askrCleanup__");
25
- const ROOT_CLEANUP_CALLBACKS_SYMBOL = Symbol.for("__askrRootCleanupCallbacks__");
26
- function clearRootCleanupCallbacks(rootElement) {
27
- try {
28
- delete rootElement[ROOT_CLEANUP_CALLBACKS_SYMBOL];
29
- } catch {
30
- rootElement[ROOT_CLEANUP_CALLBACKS_SYMBOL]?.clear();
31
- }
32
- }
33
- function registerRootCleanupCallback(rootElement, callback) {
34
- const elementWithCleanup = rootElement;
35
- const callbacks = elementWithCleanup[ROOT_CLEANUP_CALLBACKS_SYMBOL] ?? /* @__PURE__ */ new Set();
36
- callbacks.add(callback);
37
- elementWithCleanup[ROOT_CLEANUP_CALLBACKS_SYMBOL] = callbacks;
38
- return () => {
39
- callbacks.delete(callback);
40
- if (callbacks.size === 0) clearRootCleanupCallbacks(rootElement);
41
- };
42
- }
43
- function runRootCleanupCallbacks(rootElement, errors) {
44
- const callbacks = rootElement[ROOT_CLEANUP_CALLBACKS_SYMBOL];
45
- if (!callbacks || callbacks.size === 0) {
46
- clearRootCleanupCallbacks(rootElement);
47
- return;
48
- }
49
- clearRootCleanupCallbacks(rootElement);
50
- for (const callback of callbacks) try {
51
- callback();
52
- } catch (e) {
53
- errors.push(e);
54
- }
55
- }
56
- function cleanupRootInstance(rootElement, instance, options) {
57
- const errors = [];
58
- try {
59
- teardownNodeSubtree(rootElement);
60
- } catch (e) {
61
- errors.push(e);
62
- }
63
- try {
64
- cleanupComponent(instance);
65
- } catch (e) {
66
- errors.push(e);
67
- }
68
- runRootCleanupCallbacks(rootElement, errors);
69
- clearDeferredHydrationBoundaries(rootElement);
70
- if (!options?.preserveInstance) {
71
- unregisterAppInstance(instance);
72
- instancesByRoot.delete(rootElement);
73
- clearRootCleanupCallbacks(rootElement);
74
- try {
75
- delete rootElement[CLEANUP_SYMBOL];
76
- } catch {}
77
- }
78
- if (errors.length > 0) {
79
- if (instance.cleanupStrict) throw new AggregateError(errors, `cleanup failed for app root`);
80
- else if (isDevelopmentEnvironment()) for (const err of errors) logger.warn("[Askr] cleanup error:", err);
81
- }
82
- }
83
- function attachCleanupForRoot(rootElement, instance) {
84
- rootElement[CLEANUP_SYMBOL] = (options) => {
85
- cleanupRootInstance(rootElement, instance, options);
86
- };
87
- try {
88
- const descriptor = Object.getOwnPropertyDescriptor(rootElement, "innerHTML") || Object.getOwnPropertyDescriptor(Object.getPrototypeOf(rootElement), "innerHTML") || Object.getOwnPropertyDescriptor(Element.prototype, "innerHTML");
89
- if (descriptor && (descriptor.get || descriptor.set)) Object.defineProperty(rootElement, "innerHTML", {
90
- get: descriptor.get ? function() {
91
- return descriptor.get.call(this);
92
- } : void 0,
93
- set: function(value) {
94
- if (value === "" && instancesByRoot.get(this) === instance) cleanupRootInstance(rootElement, instance);
95
- if (descriptor.set) return descriptor.set.call(this, value);
96
- },
97
- configurable: true
98
- });
99
- } catch {}
100
- }
101
- function mountOrUpdate(rootElement, componentFn, options) {
102
- const wrappedFn = (props, ctx) => {
103
- const out = componentFn(props, ctx);
104
- if (isPromiseLike(out)) throw new Error("Async components are not supported. Components must return synchronously.");
105
- const portalVNode = {
106
- $$typeof: ELEMENT_TYPE,
107
- type: DefaultPortal,
108
- props: { __askrAutoDefaultPortal: true },
109
- key: "__default_portal"
110
- };
111
- return {
112
- $$typeof: ELEMENT_TYPE,
113
- type: Fragment,
114
- props: { children: out === void 0 || out === null ? [portalVNode] : [out, portalVNode] }
115
- };
116
- };
117
- Object.defineProperty(wrappedFn, "name", { value: componentFn.name || "Component" });
118
- const existingCleanup = rootElement[CLEANUP_SYMBOL];
119
- const reusedExistingInstance = typeof existingCleanup === "function";
120
- if (reusedExistingInstance) existingCleanup({ preserveInstance: true });
121
- let instance = instancesByRoot.get(rootElement);
122
- if (instance) {
123
- const shouldResetHookState = instance._rootComponentFn !== componentFn;
124
- if (!reusedExistingInstance) {
125
- removeAllListeners(rootElement);
126
- try {
127
- cleanupComponent(instance);
128
- } catch (e) {
129
- if (isDevelopmentEnvironment()) logger.warn("[Askr] prior cleanup threw:", e);
130
- }
131
- }
132
- instance.fn = wrappedFn;
133
- instance._rootComponentFn = componentFn;
134
- instance.evaluationGeneration++;
135
- instance.mounted = false;
136
- instance.expectedStateIndices = [];
137
- instance.firstRenderComplete = false;
138
- instance.isRoot = true;
139
- instance.portalScope = instance;
140
- if (shouldResetHookState) {
141
- instance.stateValues = [];
142
- instance.hasPendingUpdate = false;
143
- instance.notifyUpdate = null;
144
- instance.stateIndexCheck = -1;
145
- instance.mountOperations = [];
146
- instance.commitOperations = [];
147
- instance.lifecycleSlots = [];
148
- instance.cleanupFns = [];
149
- instance._currentRenderToken = void 0;
150
- instance.lastRenderToken = 0;
151
- instance._pendingReadSources = void 0;
152
- instance._lastReadSources = void 0;
153
- instance._placeholder = void 0;
154
- instance.errorBoundaryState = void 0;
155
- instance.devWarningsEmitted = void 0;
156
- }
157
- if (options && typeof options.cleanupStrict === "boolean") instance.cleanupStrict = options.cleanupStrict;
158
- } else {
159
- instance = createComponentInstance(String(++componentIdCounter), wrappedFn, {}, rootElement);
160
- instancesByRoot.set(rootElement, instance);
161
- instance.isRoot = true;
162
- instance._rootComponentFn = componentFn;
163
- instance.portalScope = instance;
164
- if (options && typeof options.cleanupStrict === "boolean") instance.cleanupStrict = options.cleanupStrict;
165
- }
166
- attachCleanupForRoot(rootElement, instance);
167
- registerRootCleanupCallback(rootElement, () => {
168
- disposeDefaultPortalScope(instance.portalScope ?? instance);
169
- });
170
- mountComponent(instance);
171
- flushRuntimeScheduler();
172
- }
173
- /** @internal Activate one deferred boundary without rerunning its root. */
174
- function activateHydrationBoundary(rootElement, boundary) {
175
- if (!instancesByRoot.has(rootElement)) return false;
176
- const activated = activateHydrationBoundary$1(boundary);
177
- if (activated) flushRuntimeScheduler();
178
- return activated;
179
- }
180
- async function registerAppNavigation(rootElement, path, source) {
181
- const instance = instancesByRoot.get(rootElement);
182
- if (!instance) throw new Error("Internal error: app instance missing");
183
- routedRoots.add(rootElement);
184
- registerAppInstance(instance, path, source);
185
- initializeNavigation();
186
- }
187
- function cleanupApp(root) {
188
- const rootElement = typeof root === "string" ? document.getElementById(root) : root;
189
- if (!rootElement) return;
190
- const cleanupFn = rootElement[CLEANUP_SYMBOL];
191
- try {
192
- if (typeof cleanupFn === "function") cleanupFn();
193
- } finally {
194
- const wasRoutedRoot = routedRoots.delete(rootElement);
195
- instancesByRoot.delete(rootElement);
196
- clearRootCleanupCallbacks(rootElement);
197
- if (wasRoutedRoot && routedRoots.size === 0) clearRoutes();
198
- try {
199
- delete rootElement[CLEANUP_SYMBOL];
200
- } catch {}
201
- }
202
- }
203
- function hasApp(root) {
204
- const rootElement = typeof root === "string" ? document.getElementById(root) : root;
205
- if (!rootElement) return false;
206
- return instancesByRoot.has(rootElement);
207
- }
208
- //#endregion
209
- export { activateHydrationBoundary, cleanupApp, hasApp, mountOrUpdate, registerAppNavigation, registerRootCleanupCallback };
@@ -1,54 +0,0 @@
1
- import { resolveRouteFromRoutes } from "../router/route-matching.js";
2
- import { resolveRouteRequest } from "../router/resolution.js";
3
- import "../router/route.js";
4
- //#region src/boot/route-startup.ts
5
- const MAX_INITIAL_ROUTE_REDIRECTS = 20;
6
- function bindResolvedRouteHandler(resolved) {
7
- return () => resolved.handler(resolved.params);
8
- }
9
- function createDeniedStatusNode(status) {
10
- return {
11
- type: "div",
12
- props: { "data-route-denied": String(status) },
13
- children: [String(status)]
14
- };
15
- }
16
- function bindDeniedStatus(status) {
17
- return () => createDeniedStatusNode(status);
18
- }
19
- function bindDeniedRouteHandler(status) {
20
- return () => createDeniedStatusNode(status);
21
- }
22
- async function resolveInitialRoute(auth, source) {
23
- let path = typeof window !== "undefined" ? window.location.pathname : "/";
24
- let href = typeof window !== "undefined" ? `${window.location.pathname}${window.location.search}${window.location.hash}` : path;
25
- const visited = /* @__PURE__ */ new Set();
26
- for (let redirects = 0; redirects <= MAX_INITIAL_ROUTE_REDIRECTS; redirects++) {
27
- if (visited.has(href)) throw new Error(`[Askr] Route redirect cycle detected at ${href}.`);
28
- visited.add(href);
29
- const resolved = source?.manifest ? await resolveRouteRequest(href, {
30
- manifest: source.manifest,
31
- auth
32
- }) : source?.routes ? (() => {
33
- const match = resolveRouteFromRoutes(path, source.routes);
34
- return match ? {
35
- kind: "render",
36
- handler: match.handler,
37
- params: match.params
38
- } : null;
39
- })() : await resolveRouteRequest(href, { auth });
40
- if (typeof window === "undefined" || !resolved || resolved.kind !== "redirect") return {
41
- path,
42
- href,
43
- resolved
44
- };
45
- const redirectTarget = new URL(resolved.to, window.location.href);
46
- const redirectHref = `${redirectTarget.pathname}${redirectTarget.search}${redirectTarget.hash}`;
47
- window.history.replaceState({ path: redirectHref }, "", redirectHref);
48
- path = redirectTarget.pathname;
49
- href = redirectHref;
50
- }
51
- throw new Error(`[Askr] Route redirect limit exceeded (${MAX_INITIAL_ROUTE_REDIRECTS}).`);
52
- }
53
- //#endregion
54
- export { bindDeniedRouteHandler, bindDeniedStatus, bindResolvedRouteHandler, resolveInitialRoute };
@@ -1,61 +0,0 @@
1
- import { ComponentFunction } from "../common/component.js";
2
- import { Route, RouteAuthOptions, RouteManifest, RouteRegistry } from "../common/router.js";
3
- import { ScrollRestorationOptions } from "../router/navigation-scroll.js";
4
- //#region src/boot/types.d.ts
5
- type IslandConfig = {
6
- root: Element | string;
7
- component: ComponentFunction;
8
- cleanupStrict?: boolean;
9
- routes?: never;
10
- };
11
- type IslandsConfig = {
12
- islands: IslandConfig[];
13
- };
14
- type BootRouteSource = {
15
- registry: RouteRegistry;
16
- manifest?: RouteManifest;
17
- routes?: Route[];
18
- } | {
19
- manifest: RouteManifest;
20
- registry?: RouteRegistry;
21
- routes?: Route[];
22
- } | {
23
- manifest?: RouteManifest;
24
- registry?: RouteRegistry;
25
- routes: Route[];
26
- };
27
- type SPAConfig = BootRouteSource & {
28
- root: Element | string;
29
- /**
30
- * Preferred: pass a route registry built via `createRouteRegistry(() => { ... })`.
31
- * ```ts
32
- * import { createRouteRegistry } from '@askrjs/askr/router';
33
- * const registry = createRouteRegistry(() => { ... });
34
- * await createSPA({ root: '#app', registry });
35
- * ```
36
- */
37
- auth?: RouteAuthOptions;
38
- scrollRestoration?: boolean | ScrollRestorationOptions;
39
- cleanupStrict?: boolean;
40
- component?: never;
41
- };
42
- type HydrateSPAConfig = BootRouteSource & {
43
- root: Element | string; /** Preferred route input - see `SPAConfig`. */
44
- auth?: RouteAuthOptions;
45
- scrollRestoration?: boolean | ScrollRestorationOptions;
46
- cleanupStrict?: boolean;
47
- hydrate?: {
48
- verifyMarkup?: boolean;
49
- deferUntilIdle?: boolean;
50
- deferBelowFold?: boolean;
51
- foldThreshold?: number;
52
- skipSelectors?: string[];
53
- };
54
- };
55
- type BootAppRouteSource = {
56
- manifest?: RouteManifest;
57
- routes?: readonly Route[];
58
- auth?: RouteAuthOptions;
59
- };
60
- //#endregion
61
- export { BootAppRouteSource, HydrateSPAConfig, IslandConfig, IslandsConfig, SPAConfig };
@@ -1,18 +0,0 @@
1
- import { Props } from "./props.js";
2
- import { JSXElement } from "./jsx.js";
3
- import { SSRContext } from "./ssr.js";
4
- import { VNode } from "./vnode.js";
5
-
6
- //#region src/common/component.d.ts
7
- type ComponentContext = {
8
- signal: AbortSignal;
9
- ssr?: SSRContext;
10
- };
11
- type ComponentVNode = {
12
- type: string;
13
- props?: Props;
14
- children?: (string | ComponentVNode | null | undefined | false)[];
15
- };
16
- type ComponentFunction = (props: Props, context?: ComponentContext) => JSXElement | VNode;
17
- //#endregion
18
- export { ComponentContext, ComponentFunction, ComponentVNode };
@@ -1,12 +0,0 @@
1
- import { Props } from "./props.js";
2
-
3
- //#region src/common/control.d.ts
4
- declare const __CONTROL_BOUNDARY__: unique symbol;
5
- declare const EAGER_CONTROL_PRIMITIVE: unique symbol;
6
- type EagerControlPrimitive<P extends Props = Props> = ((props: P) => unknown) & {
7
- [EAGER_CONTROL_PRIMITIVE]?: true;
8
- };
9
- declare function markEagerControlPrimitive<T extends (...args: never[]) => unknown>(primitive: T): T;
10
- declare function isEagerControlPrimitive(value: unknown): value is EagerControlPrimitive;
11
- //#endregion
12
- export { EagerControlPrimitive };
@@ -1,13 +0,0 @@
1
- //#region src/common/dom-range.d.ts
2
- /**
3
- * Internal DOM range shape shared by runtime ownership records and the
4
- * renderer. A singleton range uses the node itself for both anchors; a
5
- * multi-node or empty range uses deterministic comment anchors.
6
- */
7
- interface DOMRange {
8
- start: Node;
9
- end: Node;
10
- single: boolean;
11
- }
12
- //#endregion
13
- export { DOMRange };
@@ -1,41 +0,0 @@
1
- //#region src/common/env.ts
2
- function normalizeEnv(source) {
3
- if (!source) return {};
4
- const normalized = {};
5
- for (const [key, value] of Object.entries(source)) if (typeof value === "string") normalized[key] = value;
6
- else if (typeof value === "boolean" || typeof value === "number") normalized[key] = String(value);
7
- return normalized;
8
- }
9
- function getBuildTimeEnv() {
10
- const metaEnv = import.meta.env;
11
- const normalized = normalizeEnv(metaEnv);
12
- if (normalized.NODE_ENV == null && metaEnv) {
13
- if (typeof metaEnv.MODE === "string" && metaEnv.MODE.length > 0) normalized.NODE_ENV = metaEnv.MODE;
14
- else if (metaEnv.PROD === true || metaEnv.PROD === "true") normalized.NODE_ENV = "production";
15
- else if (metaEnv.DEV === true || metaEnv.DEV === "true") normalized.NODE_ENV = "development";
16
- }
17
- return normalized;
18
- }
19
- function resolveNodeEnv(processNodeEnv, buildNodeEnv) {
20
- if (buildNodeEnv === "production") return "production";
21
- if (processNodeEnv != null) return processNodeEnv;
22
- if (buildNodeEnv === "development") return "development";
23
- return buildNodeEnv === "test" ? void 0 : buildNodeEnv;
24
- }
25
- function getRuntimeEnv() {
26
- const processEnv = globalThis.process?.env ?? {};
27
- const buildTimeEnv = getBuildTimeEnv();
28
- return {
29
- ...processEnv,
30
- ...buildTimeEnv,
31
- NODE_ENV: resolveNodeEnv(processEnv.NODE_ENV, buildTimeEnv.NODE_ENV)
32
- };
33
- }
34
- function isProductionEnvironment() {
35
- return getRuntimeEnv().NODE_ENV === "production";
36
- }
37
- function isDevelopmentEnvironment() {
38
- return !isProductionEnvironment();
39
- }
40
- //#endregion
41
- export { getRuntimeEnv, isDevelopmentEnvironment, isProductionEnvironment };
@@ -1,15 +0,0 @@
1
- import { Props } from "./props.js";
2
- import { VNode } from "./vnode.js";
3
-
4
- //#region src/common/error-boundary.d.ts
5
- type ErrorBoundaryContent = VNode | readonly VNode[];
6
- type ErrorBoundaryFallbackValue = ErrorBoundaryContent | Node;
7
- type ErrorBoundaryFallbackRender = (error: unknown, reset: () => void) => ErrorBoundaryFallbackValue;
8
- interface ErrorBoundaryProps extends Props {
9
- children?: ErrorBoundaryContent;
10
- fallback?: ErrorBoundaryFallbackValue | ErrorBoundaryFallbackRender;
11
- onError?: (error: unknown) => void;
12
- resetKey?: unknown;
13
- }
14
- //#endregion
15
- export { ErrorBoundaryContent, ErrorBoundaryFallbackRender, ErrorBoundaryFallbackValue, ErrorBoundaryProps };
@@ -1,15 +0,0 @@
1
- //#region src/common/invariant.ts
2
- /**
3
- * Invariant assertions shared by production runtime code.
4
- */
5
- function invariant(condition, message, context) {
6
- if (!condition) {
7
- const contextStr = context ? "\n" + JSON.stringify(context, null, 2) : "";
8
- throw new Error(`[Askr Invariant] ${message}${contextStr}`);
9
- }
10
- }
11
- function assertSchedulingPrecondition(condition, violationMessage) {
12
- invariant(condition, `[Scheduler Precondition] ${violationMessage}`);
13
- }
14
- //#endregion
15
- export { assertSchedulingPrecondition, invariant };
@@ -1,22 +0,0 @@
1
- import { Props } from "./props.js";
2
-
3
- //#region src/common/jsx.d.ts
4
- declare const ELEMENT_TYPE: unique symbol;
5
- declare const Fragment: unique symbol;
6
- declare const STATIC_CHILDREN: unique symbol;
7
- type JSXComponent<TProps extends object = Props> = {
8
- bivarianceHack(props: TProps): unknown;
9
- }['bivarianceHack'];
10
- type JSXElementType = string | JSXComponent | symbol;
11
- interface JSXElement {
12
- /** Internal element marker */
13
- $$typeof: symbol;
14
- /** Element type: string, component, Fragment, etc */
15
- type: JSXElementType;
16
- /** Props bag */
17
- props: Props;
18
- /** Optional key (normalized by runtime) */
19
- key?: string | number | null;
20
- }
21
- //#endregion
22
- export { Fragment, JSXComponent, JSXElement, JSXElementType };
@@ -1,34 +0,0 @@
1
- import { isProductionEnvironment } from "./env.js";
2
- //#region src/common/logger.ts
3
- /**
4
- * Shared logger interface for runtime and tooling code.
5
- *
6
- * Debug, info, and warn stay silent in production. Errors always log.
7
- */
8
- function callConsole(method, args) {
9
- const c = typeof console !== "undefined" ? console : void 0;
10
- if (!c) return;
11
- const fn = c[method];
12
- if (typeof fn === "function") try {
13
- fn.apply(console, args);
14
- } catch {}
15
- }
16
- const logger = {
17
- debug: (...args) => {
18
- if (isProductionEnvironment()) return;
19
- callConsole("debug", args);
20
- },
21
- info: (...args) => {
22
- if (isProductionEnvironment()) return;
23
- callConsole("info", args);
24
- },
25
- warn: (...args) => {
26
- if (isProductionEnvironment()) return;
27
- callConsole("warn", args);
28
- },
29
- error: (...args) => {
30
- callConsole("error", args);
31
- }
32
- };
33
- //#endregion
34
- export { logger };
@@ -1,6 +0,0 @@
1
- //#region src/common/promise.ts
2
- function isPromiseLike(value) {
3
- return value !== null && (typeof value === "object" || typeof value === "function") && typeof value.then === "function";
4
- }
5
- //#endregion
6
- export { isPromiseLike };