@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,158 +0,0 @@
1
- import { getRuntimeEnv } from "../common/env.js";
2
- import { incDevCounter, setDevValue } from "../runtime/dev-namespace.js";
3
- import "../runtime/index.js";
4
- import { teardownNodeSubtree } from "./cleanup.js";
5
- import "./env.js";
6
- import { now, recordDOMReplace } from "./utils.js";
7
- import { keyedElements } from "./keyed.js";
8
- import { performBulkPositionalKeyedTextUpdate, tagsEqualIgnoreCase } from "./children-fastpath.js";
9
- import { createDOMNode, updateElementFromVnode } from "./dom-internal.js";
10
- import "./dom.js";
11
- //#region src/renderer/children.ts
12
- function performBulkTextReplace(parent, newChildren) {
13
- const start = now();
14
- const existing = Array.from(parent.childNodes);
15
- const finalNodes = [];
16
- let reused = 0;
17
- let created = 0;
18
- for (let index = 0; index < newChildren.length; index += 1) {
19
- const result = processChildNode(newChildren[index], existing[index], finalNodes);
20
- if (result === "reused") reused += 1;
21
- else if (result === "created") created += 1;
22
- }
23
- const tBuild = now() - start;
24
- const tCommit = commitBulkReplace(parent, finalNodes);
25
- keyedElements.delete(parent);
26
- const stats = {
27
- n: newChildren.length,
28
- reused,
29
- created,
30
- tBuild,
31
- tCommit
32
- };
33
- recordBulkTextStats(stats);
34
- return stats;
35
- }
36
- function processChildNode(vnode, existingNode, finalNodes) {
37
- if (typeof vnode === "string" || typeof vnode === "number") return processTextVnode(String(vnode), existingNode, finalNodes);
38
- if (typeof vnode === "object" && vnode !== null && "type" in vnode) return processElementVnode(vnode, existingNode, finalNodes);
39
- return "skipped";
40
- }
41
- function processTextVnode(text, existingNode, finalNodes) {
42
- if (existingNode && existingNode.nodeType === 3) {
43
- existingNode.data = text;
44
- finalNodes.push(existingNode);
45
- return "reused";
46
- }
47
- finalNodes.push(document.createTextNode(text));
48
- return "created";
49
- }
50
- function processElementVnode(vnode, existingNode, finalNodes) {
51
- const vnodeObj = vnode;
52
- if (typeof vnodeObj.type === "string") {
53
- const tag = vnodeObj.type;
54
- if (existingNode && existingNode.nodeType === 1 && tagsEqualIgnoreCase(existingNode.tagName, tag)) {
55
- updateElementFromVnode(existingNode, vnode);
56
- finalNodes.push(existingNode);
57
- return "reused";
58
- }
59
- }
60
- const dom = createDOMNode(vnode);
61
- if (dom) {
62
- finalNodes.push(dom);
63
- return "created";
64
- }
65
- return "skipped";
66
- }
67
- function commitBulkReplace(parent, nodes) {
68
- const startedAt = Date.now();
69
- const fragment = document.createDocumentFragment();
70
- for (let index = 0; index < nodes.length; index += 1) fragment.appendChild(nodes[index]);
71
- try {
72
- for (let node = parent.firstChild; node;) {
73
- const next = node.nextSibling;
74
- teardownNodeSubtree(node);
75
- node = next;
76
- }
77
- } catch {}
78
- recordDOMReplace("bulk-text-replace");
79
- parent.replaceChildren(fragment);
80
- return Date.now() - startedAt;
81
- }
82
- function recordBulkTextStats(stats) {
83
- try {
84
- setDevValue("__LAST_BULK_TEXT_FASTPATH_STATS", stats);
85
- setDevValue("__LAST_FASTPATH_STATS", stats);
86
- setDevValue("__LAST_FASTPATH_COMMIT_COUNT", 1);
87
- incDevCounter("bulkTextFastpathHits");
88
- } catch {}
89
- }
90
- function isBulkTextFastPathEligible(parent, newChildren) {
91
- const env = getRuntimeEnv();
92
- const threshold = Number(env.ASKR_BULK_TEXT_THRESHOLD) || 1024;
93
- const requiredFraction = .8;
94
- const total = Array.isArray(newChildren) ? newChildren.length : 0;
95
- if (total < threshold) {
96
- recordBulkDiag({
97
- phase: "bulk-unkeyed-eligible",
98
- reason: "too-small",
99
- total,
100
- threshold
101
- });
102
- return false;
103
- }
104
- const result = countSimpleChildren(newChildren);
105
- if (result.componentFound !== void 0) {
106
- recordBulkDiag({
107
- phase: "bulk-unkeyed-eligible",
108
- reason: "component-child",
109
- index: result.componentFound
110
- });
111
- return false;
112
- }
113
- const fraction = result.simple / total;
114
- const eligible = fraction >= requiredFraction && parent.childNodes.length >= total;
115
- recordBulkDiag({
116
- phase: "bulk-unkeyed-eligible",
117
- total,
118
- simple: result.simple,
119
- fraction,
120
- requiredFraction,
121
- eligible
122
- });
123
- return eligible;
124
- }
125
- function countSimpleChildren(children) {
126
- let simple = 0;
127
- for (let index = 0; index < children.length; index += 1) {
128
- const child = children[index];
129
- if (typeof child === "string" || typeof child === "number") {
130
- simple += 1;
131
- continue;
132
- }
133
- if (typeof child === "object" && child !== null && "type" in child) {
134
- const dom = child;
135
- if (typeof dom.type === "function") return {
136
- simple,
137
- componentFound: index
138
- };
139
- if (typeof dom.type === "string" && isSimpleElement(dom)) simple += 1;
140
- }
141
- }
142
- return { simple };
143
- }
144
- function isSimpleElement(dom) {
145
- const children = dom.props?.children ?? dom.children;
146
- if (children === null || children === void 0) return true;
147
- if (typeof children === "string" || typeof children === "number") return true;
148
- if (Array.isArray(children) && children.length === 1 && (typeof children[0] === "string" || typeof children[0] === "number")) return true;
149
- return false;
150
- }
151
- function recordBulkDiag(data) {
152
- const env = getRuntimeEnv();
153
- if (env.NODE_ENV !== "production" || env.ASKR_FASTPATH_DEBUG === "1") try {
154
- setDevValue("__BULK_DIAG", data);
155
- } catch {}
156
- }
157
- //#endregion
158
- export { isBulkTextFastPathEligible, performBulkPositionalKeyedTextUpdate, performBulkTextReplace };
@@ -1,267 +0,0 @@
1
- import { logger } from "../common/logger.js";
2
- import { incDevCounter } from "../runtime/dev-namespace.js";
3
- import { cleanupComponent } from "../runtime/component-cleanup.js";
4
- import { registerLifecycleTransaction } from "../runtime/lifecycle-batch.js";
5
- import { clearDelegatedHandlersForElement, removeDelegatedListener } from "../runtime/events.js";
6
- import "../runtime/index.js";
7
- //#region src/renderer/cleanup.ts
8
- const elementRefs = /* @__PURE__ */ new WeakMap();
9
- const refOwners = /* @__PURE__ */ new Map();
10
- function applyRefValue(ref, value) {
11
- const resolvedRef = ref;
12
- if (!resolvedRef) return;
13
- if (typeof resolvedRef === "function") {
14
- resolvedRef(value);
15
- return;
16
- }
17
- if (Object.isExtensible(resolvedRef)) resolvedRef.current = value;
18
- }
19
- function updateElementRef(element, ref) {
20
- if (registerLifecycleTransaction({}, () => updateElementRefImmediately(element, ref), () => void 0)) return;
21
- updateElementRefImmediately(element, ref);
22
- }
23
- function updateElementRefImmediately(element, ref) {
24
- const previousRef = elementRefs.get(element);
25
- if (previousRef === ref) return;
26
- if (previousRef) applyRefValue(previousRef, null);
27
- if (ref) {
28
- const previousOwner = refOwners.get(ref);
29
- if (typeof ref === "function" && previousOwner && previousOwner !== element) {
30
- elementRefs.set(element, ref);
31
- refOwners.set(ref, element);
32
- return;
33
- }
34
- applyRefValue(ref, element);
35
- elementRefs.set(element, ref);
36
- refOwners.set(ref, element);
37
- } else elementRefs.delete(element);
38
- }
39
- function removeElementRef(element) {
40
- const ref = elementRefs.get(element);
41
- if (!ref) return;
42
- if (typeof ref !== "function" && refOwners.get(ref) !== element) {
43
- elementRefs.delete(element);
44
- return;
45
- }
46
- applyRefValue(ref, null);
47
- const nextOwner = refOwners.get(ref);
48
- if (typeof ref === "function" && nextOwner && nextOwner !== element) applyRefValue(ref, nextOwner);
49
- elementRefs.delete(element);
50
- if (refOwners.get(ref) === element) refOwners.delete(ref);
51
- }
52
- function cleanupSingleInstance(node, errors, strict) {
53
- const instanceList = node.__ASKR_INSTANCES;
54
- const primaryInstance = node.__ASKR_INSTANCE;
55
- if (!instanceList && !primaryInstance) return;
56
- const instances = /* @__PURE__ */ new Set();
57
- if (Array.isArray(instanceList)) {
58
- for (const instance of instanceList) if (instance) instances.add(instance);
59
- }
60
- if (primaryInstance) instances.add(primaryInstance);
61
- for (const instance of instances) try {
62
- cleanupComponent(instance);
63
- } catch (err) {
64
- if (strict) errors.push(err);
65
- else logger.warn("[Askr] cleanupComponent failed:", err);
66
- }
67
- try {
68
- delete node.__ASKR_INSTANCE;
69
- delete node.__ASKR_INSTANCES;
70
- } catch (e) {
71
- if (strict) errors.push(e);
72
- }
73
- }
74
- function teardownSingleElement(element, errors, strict) {
75
- try {
76
- removeElementRef(element);
77
- } catch (err) {
78
- if (strict) errors.push(err);
79
- else logger.warn("[Askr] removeElementRef failed:", err);
80
- }
81
- try {
82
- removeElementListeners(element);
83
- } catch (err) {
84
- if (strict) errors.push(err);
85
- else logger.warn("[Askr] removeElementListeners failed:", err);
86
- }
87
- try {
88
- removeElementReactiveProps(element);
89
- } catch (err) {
90
- if (strict) errors.push(err);
91
- else logger.warn("[Askr] removeElementReactiveProps failed:", err);
92
- }
93
- try {
94
- cleanupSingleInstance(element, errors, strict);
95
- } catch (err) {
96
- if (strict) errors.push(err);
97
- else logger.warn("[Askr] cleanupSingleInstance failed:", err);
98
- }
99
- }
100
- function forEachDescendantElement(root, visit) {
101
- try {
102
- const doc = root.ownerDocument;
103
- const createTreeWalker = doc?.createTreeWalker;
104
- if (typeof createTreeWalker === "function") {
105
- const walker = createTreeWalker.call(doc, root, 1);
106
- let n = walker.firstChild();
107
- while (n) {
108
- visit(n);
109
- n = walker.nextNode();
110
- }
111
- return;
112
- }
113
- } catch {}
114
- const descendants = root.querySelectorAll("*");
115
- for (let i = 0; i < descendants.length; i++) visit(descendants[i]);
116
- }
117
- function forEachDescendantNode(root, visit) {
118
- try {
119
- const doc = root.ownerDocument;
120
- const createTreeWalker = doc?.createTreeWalker;
121
- if (typeof createTreeWalker === "function") {
122
- const walker = createTreeWalker.call(doc, root, 4294967295);
123
- let node = walker.nextNode();
124
- while (node) {
125
- visit(node);
126
- node = walker.nextNode();
127
- }
128
- return;
129
- }
130
- } catch {}
131
- const stack = Array.from(root.childNodes).reverse();
132
- while (stack.length > 0) {
133
- const node = stack.pop();
134
- visit(node);
135
- for (let child = node.lastChild; child; child = child.previousSibling) stack.push(child);
136
- }
137
- }
138
- function forEachElementInSubtree(root, visit) {
139
- visit(root);
140
- forEachDescendantElement(root, visit);
141
- }
142
- const elementListeners = /* @__PURE__ */ new WeakMap();
143
- /**
144
- * Clean up component instance attached to a DOM node
145
- * Accepts an optional `opts.strict` flag to surface errors instead of swallowing them.
146
- */
147
- function cleanupInstanceIfPresent(node, opts) {
148
- if (!node) return;
149
- const strict = opts?.strict ?? false;
150
- const errors = strict ? [] : null;
151
- try {
152
- cleanupSingleInstance(node, errors, strict);
153
- } catch (err) {
154
- if (strict) errors.push(err);
155
- else logger.warn("[Askr] cleanupInstanceIfPresent failed:", err);
156
- }
157
- try {
158
- forEachDescendantNode(node, (descendant) => {
159
- try {
160
- cleanupSingleInstance(descendant, errors, strict);
161
- } catch (err) {
162
- if (strict) errors.push(err);
163
- else logger.warn("[Askr] cleanupInstanceIfPresent descendant cleanup failed:", err);
164
- }
165
- });
166
- } catch (err) {
167
- if (strict) errors.push(err);
168
- else logger.warn("[Askr] cleanupInstanceIfPresent descendant query failed:", err);
169
- }
170
- if (errors && errors.length > 0) throw new AggregateError(errors, "cleanupInstanceIfPresent failed");
171
- }
172
- function cleanupInstancesUnder(node, opts) {
173
- cleanupInstanceIfPresent(node, opts);
174
- }
175
- function teardownNodeSubtree(node, opts) {
176
- if (!node) return;
177
- const strict = opts?.strict ?? false;
178
- const errors = strict ? [] : null;
179
- if (!(node instanceof Element)) {
180
- cleanupSingleInstance(node, errors, strict);
181
- if (errors && errors.length > 0) throw new AggregateError(errors, "teardownNodeSubtree failed");
182
- return;
183
- }
184
- try {
185
- teardownSingleElement(node, errors, strict);
186
- forEachDescendantNode(node, (descendant) => {
187
- if (descendant instanceof Element) teardownSingleElement(descendant, errors, strict);
188
- else cleanupSingleInstance(descendant, errors, strict);
189
- });
190
- } catch (err) {
191
- if (strict) errors.push(err);
192
- else logger.warn("[Askr] teardownNodeSubtree failed:", err);
193
- }
194
- if (errors && errors.length > 0) throw new AggregateError(errors, "teardownNodeSubtree failed");
195
- }
196
- const REACTIVE_CHILDREN_KEY = "__askr_reactive_children__";
197
- const elementReactivePropsCleanup = /* @__PURE__ */ new WeakMap();
198
- function getElementReactivePropsCleanupMap(element, create = false) {
199
- const store = elementReactivePropsCleanup.get(element);
200
- if (store instanceof Map) return store;
201
- if (store) {
202
- const map = /* @__PURE__ */ new Map([[store._bindingKey, store]]);
203
- elementReactivePropsCleanup.set(element, map);
204
- return map;
205
- }
206
- if (!create) return;
207
- const map = /* @__PURE__ */ new Map();
208
- elementReactivePropsCleanup.set(element, map);
209
- return map;
210
- }
211
- function setDirectElementReactivePropCleanup(element, bindingKey, entry) {
212
- if (!elementReactivePropsCleanup.get(element)) {
213
- entry._bindingKey = bindingKey;
214
- elementReactivePropsCleanup.set(element, entry);
215
- return;
216
- }
217
- getElementReactivePropsCleanupMap(element, true).set(bindingKey, entry);
218
- }
219
- /** @internal Publish the first reactive binding on a newly created element. */
220
- function setFreshElementReactivePropCleanup(element, bindingKey, entry) {
221
- entry._bindingKey = bindingKey;
222
- elementReactivePropsCleanup.set(element, entry);
223
- }
224
- function getElementReactivePropCleanupSize(element) {
225
- const store = elementReactivePropsCleanup.get(element);
226
- return store instanceof Map ? store.size : store ? 1 : 0;
227
- }
228
- function forEachElementReactivePropCleanup(element, visit) {
229
- const store = elementReactivePropsCleanup.get(element);
230
- if (store instanceof Map) for (const entry of store.values()) visit(entry);
231
- else if (store) visit(store);
232
- }
233
- function removeElementReactiveProps(element) {
234
- if (elementReactivePropsCleanup.has(element)) {
235
- forEachElementReactivePropCleanup(element, (entry) => {
236
- try {
237
- entry.cleanup();
238
- } catch (err) {
239
- logger.warn("[Askr] reactive prop cleanup failed:", err);
240
- }
241
- });
242
- elementReactivePropsCleanup.delete(element);
243
- }
244
- }
245
- function removeElementListeners(element) {
246
- const map = elementListeners.get(element);
247
- if (map) {
248
- for (const entry of map.values()) {
249
- incDevCounter("listenerRemoves");
250
- if (entry.isDelegated) removeDelegatedListener(element, entry.eventName);
251
- else if (entry.options !== void 0) element.removeEventListener(entry.eventName, entry.handler, entry.options);
252
- else element.removeEventListener(entry.eventName, entry.handler);
253
- }
254
- elementListeners.delete(element);
255
- }
256
- clearDelegatedHandlersForElement(element);
257
- }
258
- function removeAllListeners(root) {
259
- if (!root) return;
260
- forEachElementInSubtree(root, (el) => {
261
- removeElementRef(el);
262
- removeElementListeners(el);
263
- removeElementReactiveProps(el);
264
- });
265
- }
266
- //#endregion
267
- export { REACTIVE_CHILDREN_KEY, cleanupInstanceIfPresent, cleanupInstancesUnder, elementListeners, elementReactivePropsCleanup, elementRefs, forEachElementReactivePropCleanup, getElementReactivePropCleanupSize, getElementReactivePropsCleanupMap, removeAllListeners, removeElementListeners, removeElementReactiveProps, removeElementRef, setDirectElementReactivePropCleanup, setFreshElementReactivePropCleanup, teardownNodeSubtree, updateElementRef };
@@ -1,143 +0,0 @@
1
- import { incDevCounter } from "../runtime/dev-namespace.js";
2
- import { cleanupComponent } from "../runtime/component-cleanup.js";
3
- import { registerLifecycleTransaction } from "../runtime/lifecycle-batch.js";
4
- import { clearDelegatedHandlersForElement, removeDelegatedListener } from "../runtime/events.js";
5
- import "../runtime/index.js";
6
- import { elementListeners, elementReactivePropsCleanup, elementRefs, forEachElementReactivePropCleanup, removeElementRef } from "./cleanup.js";
7
- //#region src/renderer/component-host-cleanup.ts
8
- function cleanupDetachedComponentHost(host, retainedInstance) {
9
- const retainedInstances = retainedInstance instanceof Object && typeof retainedInstance[Symbol.iterator] === "function" ? new Set(retainedInstance) : /* @__PURE__ */ new Set([retainedInstance]);
10
- const cleanupErrors = [];
11
- const cleanedInstances = /* @__PURE__ */ new Set();
12
- const elements = [host];
13
- try {
14
- const descendants = host.querySelectorAll("*");
15
- for (let index = 0; index < descendants.length; index += 1) elements.push(descendants[index]);
16
- } catch (error) {
17
- cleanupErrors.push(error);
18
- }
19
- for (const element of elements) {
20
- cleanupElementListeners(element, cleanupErrors);
21
- cleanupElementReactiveProps(element, cleanupErrors);
22
- cleanupElementRef(element, cleanupErrors);
23
- cleanupElementInstances(element, retainedInstances, cleanedInstances, cleanupErrors);
24
- clearHostMetadata(element, cleanupErrors);
25
- }
26
- if (cleanupErrors.length > 0) throw new AggregateError(cleanupErrors, "Detached component host cleanup failed");
27
- }
28
- function cleanupElementListeners(element, cleanupErrors) {
29
- const listenerMap = elementListeners.get(element);
30
- if (listenerMap) {
31
- elementListeners.delete(element);
32
- for (const entry of listenerMap.values()) try {
33
- incDevCounter("listenerRemoves");
34
- if (entry.isDelegated) removeDelegatedListener(element, entry.eventName);
35
- else if (entry.options !== void 0) element.removeEventListener(entry.eventName, entry.handler, entry.options);
36
- else element.removeEventListener(entry.eventName, entry.handler);
37
- } catch (error) {
38
- cleanupErrors.push(error);
39
- }
40
- }
41
- try {
42
- clearDelegatedHandlersForElement(element);
43
- } catch (error) {
44
- cleanupErrors.push(error);
45
- }
46
- }
47
- function cleanupElementReactiveProps(element, cleanupErrors) {
48
- if (!elementReactivePropsCleanup.has(element)) return;
49
- const entries = [];
50
- forEachElementReactivePropCleanup(element, (entry) => entries.push(entry));
51
- elementReactivePropsCleanup.delete(element);
52
- for (const entry of entries) try {
53
- entry.cleanup();
54
- } catch (error) {
55
- cleanupErrors.push(error);
56
- }
57
- }
58
- function cleanupElementRef(element, cleanupErrors) {
59
- try {
60
- removeElementRef(element);
61
- } catch (error) {
62
- elementRefs.delete(element);
63
- cleanupErrors.push(error);
64
- }
65
- }
66
- function cleanupElementInstances(element, retainedInstances, cleanedInstances, cleanupErrors) {
67
- const instances = new Set(element.__ASKR_INSTANCES ?? []);
68
- if (element.__ASKR_INSTANCE) instances.add(element.__ASKR_INSTANCE);
69
- for (const instance of instances) {
70
- if (retainedInstances.has(instance) || cleanedInstances.has(instance)) continue;
71
- cleanedInstances.add(instance);
72
- try {
73
- cleanupComponent(instance);
74
- } catch (error) {
75
- cleanupErrors.push(error);
76
- }
77
- }
78
- }
79
- function clearHostMetadata(element, cleanupErrors) {
80
- for (const property of [
81
- "__ASKR_INSTANCE",
82
- "__ASKR_INSTANCES",
83
- "__ASKR_WRAPPER_HOST"
84
- ]) try {
85
- delete element[property];
86
- } catch (error) {
87
- cleanupErrors.push(error);
88
- }
89
- }
90
- function pruneComponentHostInstances(host, retainedInstances) {
91
- const hadInstanceList = Object.prototype.hasOwnProperty.call(host, "__ASKR_INSTANCES");
92
- const hadPrimaryInstance = Object.prototype.hasOwnProperty.call(host, "__ASKR_INSTANCE");
93
- const previousInstanceList = host.__ASKR_INSTANCES?.slice();
94
- const previousPrimaryInstance = host.__ASKR_INSTANCE;
95
- const previousInstances = collectHostInstances(host);
96
- const commit = () => {
97
- const retained = new Set(retainedInstances);
98
- const currentInstances = collectHostInstances(host);
99
- const nextInstances = Array.from(currentInstances).filter((instance) => retained.has(instance));
100
- for (const instance of retained) if (instance.target === host && !nextInstances.includes(instance)) nextInstances.push(instance);
101
- writeHostInstances(host, nextInstances);
102
- cleanupHostInstances(Array.from(currentInstances).filter((instance) => !retained.has(instance)), "Component host pruning failed");
103
- };
104
- const rollback = () => {
105
- const currentInstances = collectHostInstances(host);
106
- try {
107
- if (hadInstanceList) host.__ASKR_INSTANCES = previousInstanceList;
108
- else delete host.__ASKR_INSTANCES;
109
- if (hadPrimaryInstance) host.__ASKR_INSTANCE = previousPrimaryInstance;
110
- else delete host.__ASKR_INSTANCE;
111
- } catch {}
112
- cleanupHostInstances(Array.from(currentInstances).filter((instance) => !previousInstances.has(instance)), "Provisional component host cleanup failed");
113
- };
114
- if (!registerLifecycleTransaction({}, commit, rollback)) commit();
115
- }
116
- function collectHostInstances(host) {
117
- const instances = /* @__PURE__ */ new Set();
118
- for (const instance of host.__ASKR_INSTANCES ?? []) instances.add(instance);
119
- if (host.__ASKR_INSTANCE) instances.add(host.__ASKR_INSTANCE);
120
- return instances;
121
- }
122
- function writeHostInstances(host, instances) {
123
- try {
124
- if (instances.length > 0) {
125
- host.__ASKR_INSTANCES = instances;
126
- host.__ASKR_INSTANCE = instances[0];
127
- } else {
128
- delete host.__ASKR_INSTANCES;
129
- delete host.__ASKR_INSTANCE;
130
- }
131
- } catch {}
132
- }
133
- function cleanupHostInstances(instances, message) {
134
- const cleanupErrors = [];
135
- for (const instance of instances) try {
136
- cleanupComponent(instance);
137
- } catch (error) {
138
- cleanupErrors.push(error);
139
- }
140
- if (cleanupErrors.length > 0) throw new AggregateError(cleanupErrors, message);
141
- }
142
- //#endregion
143
- export { cleanupDetachedComponentHost, pruneComponentHostInstances };
@@ -1,116 +0,0 @@
1
- import { isProductionEnvironment } from "../common/env.js";
2
- import { getDevValue, incDevCounter } from "../runtime/dev-namespace.js";
3
- import { getCurrentInstance } from "../runtime/component-scope.js";
4
- import "../runtime/index.js";
5
- import { extractKey } from "./utils.js";
6
- import { ROUTE_ROOT_COMPONENT } from "../common/router-internal.js";
7
- //#region src/renderer/component-host-instances.ts
8
- function isRouteRootComponentVNode(node) {
9
- return typeof node === "object" && node !== null && node[ROUTE_ROOT_COMPONENT] === true;
10
- }
11
- function inheritComponentCleanupStrict(instance) {
12
- const owner = getCurrentInstance();
13
- if (owner) instance.cleanupStrict = owner.cleanupStrict;
14
- }
15
- const vnodeComponentInstances = /* @__PURE__ */ new WeakMap();
16
- function getVNodeComponentInstance(node) {
17
- if (typeof node !== "object" || node === null) return;
18
- return vnodeComponentInstances.get(node) ?? node.__instance;
19
- }
20
- function setVNodeComponentInstance(node, instance) {
21
- if (typeof node !== "object" || node === null) return;
22
- const objectNode = node;
23
- vnodeComponentInstances.delete(objectNode);
24
- if (Object.prototype.hasOwnProperty.call(objectNode, "__instance")) try {
25
- objectNode.__instance = instance;
26
- return;
27
- } catch {}
28
- if (Object.isExtensible(objectNode)) try {
29
- objectNode.__instance = instance;
30
- return;
31
- } catch {}
32
- vnodeComponentInstances.set(objectNode, instance);
33
- }
34
- /** @internal Restore component ownership after provisional creation fails. */
35
- function restoreVNodeComponentInstance(node, instance) {
36
- if (typeof node !== "object" || node === null) return;
37
- const objectNode = node;
38
- vnodeComponentInstances.delete(objectNode);
39
- if (instance) {
40
- setVNodeComponentInstance(objectNode, instance);
41
- return;
42
- }
43
- try {
44
- delete objectNode.__instance;
45
- } catch {
46
- try {
47
- objectNode.__instance = void 0;
48
- } catch {}
49
- }
50
- }
51
- let fallbackComponentInstanceId = 0;
52
- const PRODUCTION_BUILD_ENABLED = isProductionEnvironment();
53
- function nextComponentInstanceId() {
54
- if (PRODUCTION_BUILD_ENABLED || isProductionEnvironment()) {
55
- fallbackComponentInstanceId++;
56
- return `comp-${fallbackComponentInstanceId}`;
57
- }
58
- const key = "__COMPONENT_INSTANCE_ID";
59
- try {
60
- incDevCounter(key);
61
- const n = getDevValue(key);
62
- if (typeof n === "number" && Number.isFinite(n)) return `comp-${n}`;
63
- } catch {}
64
- fallbackComponentInstanceId++;
65
- return `comp-${fallbackComponentInstanceId}`;
66
- }
67
- function inheritComponentKey(target, source) {
68
- const inheritedKey = extractKey(source);
69
- if (inheritedKey === void 0 || extractKey(target) !== void 0) return target;
70
- target.key = inheritedKey;
71
- if (typeof target.type === "string") {
72
- if (!target.props) target.props = {};
73
- const props = target.props;
74
- if (props["data-key"] === void 0) props["data-key"] = String(inheritedKey);
75
- if (props["data-askr-key-kind"] === void 0) props["data-askr-key-kind"] = typeof inheritedKey;
76
- }
77
- return target;
78
- }
79
- function setComponentOwnershipIdentity(instance, node, parent, wrapperDepth = 0, position) {
80
- instance._vnodeOwner = typeof node === "object" && node !== null ? node : void 0;
81
- instance._vnodeParent = parent;
82
- const key = extractKey(node);
83
- if (key === void 0) delete instance._vnodeKey;
84
- else instance._vnodeKey = key;
85
- instance._vnodePosition = position;
86
- instance._wrapperDepth = wrapperDepth;
87
- }
88
- function findHostInstanceByType(host, type, node, parent, wrapperDepth) {
89
- const instances = host.__ASKR_INSTANCES;
90
- if (instances && instances.length > 0) {
91
- const vnodeOwner = getVNodeComponentInstance(node);
92
- if (vnodeOwner && vnodeOwner.fn === type && instances.includes(vnodeOwner)) return vnodeOwner;
93
- const key = extractKey(node);
94
- const identityMatches = instances.filter((instance) => {
95
- if (instance.fn !== type) return false;
96
- if (parent !== void 0 && instance._vnodeParent !== parent) return false;
97
- if (key !== void 0 && instance._vnodeKey !== key) return false;
98
- if (wrapperDepth !== void 0 && instance._wrapperDepth !== wrapperDepth) return false;
99
- return true;
100
- });
101
- if (identityMatches.length === 1) return identityMatches[0];
102
- if (identityMatches.length > 1 && key !== void 0) return identityMatches[identityMatches.length - 1];
103
- const sameType = instances.filter((instance) => instance.fn === type);
104
- if (sameType.length === 1) return sameType[0];
105
- return null;
106
- }
107
- if (host.__ASKR_INSTANCE?.fn === type) {
108
- const instance = host.__ASKR_INSTANCE;
109
- const key = extractKey(node);
110
- if ((parent === void 0 || instance._vnodeParent === parent) && (key === void 0 || instance._vnodeKey === key) && (wrapperDepth === void 0 || instance._wrapperDepth === wrapperDepth)) return instance;
111
- if (node === void 0 && parent === void 0 && wrapperDepth === void 0) return instance;
112
- }
113
- return null;
114
- }
115
- //#endregion
116
- export { findHostInstanceByType, getVNodeComponentInstance, inheritComponentCleanupStrict, inheritComponentKey, isRouteRootComponentVNode, nextComponentInstanceId, restoreVNodeComponentInstance, setComponentOwnershipIdentity, setVNodeComponentInstance };