@alloy-js/core 0.23.0-dev.11 → 0.23.0-dev.13

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 (380) hide show
  1. package/dist/dev/src/binder.js +488 -0
  2. package/dist/dev/src/binder.js.map +1 -0
  3. package/dist/dev/src/code.js +181 -0
  4. package/dist/dev/src/code.js.map +1 -0
  5. package/dist/dev/src/components/AccessExpression.js +230 -0
  6. package/dist/dev/src/components/AccessExpression.js.map +1 -0
  7. package/dist/dev/src/components/AccessExpression.test.js +237 -0
  8. package/dist/dev/src/components/AccessExpression.test.js.map +1 -0
  9. package/dist/dev/src/components/AppendFile.js +246 -0
  10. package/dist/dev/src/components/AppendFile.js.map +1 -0
  11. package/dist/dev/src/components/Block.js +66 -0
  12. package/dist/dev/src/components/Block.js.map +1 -0
  13. package/dist/dev/src/components/CopyFile.js +16 -0
  14. package/dist/dev/src/components/CopyFile.js.map +1 -0
  15. package/dist/dev/src/components/Declaration.js +70 -0
  16. package/dist/dev/src/components/Declaration.js.map +1 -0
  17. package/dist/dev/src/components/For.js +40 -0
  18. package/dist/dev/src/components/For.js.map +1 -0
  19. package/dist/dev/src/components/Indent.js +37 -0
  20. package/dist/dev/src/components/Indent.js.map +1 -0
  21. package/dist/dev/src/components/List.js +29 -0
  22. package/dist/dev/src/components/List.js.map +1 -0
  23. package/dist/dev/src/components/MemberDeclaration.js +70 -0
  24. package/dist/dev/src/components/MemberDeclaration.js.map +1 -0
  25. package/dist/dev/src/components/MemberName.js +11 -0
  26. package/dist/dev/src/components/MemberName.js.map +1 -0
  27. package/dist/dev/src/components/MemberScope.js +57 -0
  28. package/dist/dev/src/components/MemberScope.js.map +1 -0
  29. package/dist/dev/src/components/Name.js +11 -0
  30. package/dist/dev/src/components/Name.js.map +1 -0
  31. package/dist/dev/src/components/Output.js +72 -0
  32. package/dist/dev/src/components/Output.js.map +1 -0
  33. package/dist/dev/src/components/Prose.js +32 -0
  34. package/dist/dev/src/components/Prose.js.map +1 -0
  35. package/dist/dev/src/components/ReferenceOrContent.js +12 -0
  36. package/dist/dev/src/components/ReferenceOrContent.js.map +1 -0
  37. package/dist/dev/src/components/Scope.js +50 -0
  38. package/dist/dev/src/components/Scope.js.map +1 -0
  39. package/dist/dev/src/components/Show.js +4 -0
  40. package/dist/dev/src/components/Show.js.map +1 -0
  41. package/dist/dev/src/components/SourceDirectory.js +41 -0
  42. package/dist/dev/src/components/SourceDirectory.js.map +1 -0
  43. package/dist/dev/src/components/SourceFile.js +52 -0
  44. package/dist/dev/src/components/SourceFile.js.map +1 -0
  45. package/dist/dev/src/components/StatementList.js +20 -0
  46. package/dist/dev/src/components/StatementList.js.map +1 -0
  47. package/dist/dev/src/components/Switch.js +42 -0
  48. package/dist/dev/src/components/Switch.js.map +1 -0
  49. package/dist/dev/src/components/TemplateFile.js +153 -0
  50. package/dist/dev/src/components/TemplateFile.js.map +1 -0
  51. package/dist/dev/src/components/UpdateFile.js +71 -0
  52. package/dist/dev/src/components/UpdateFile.js.map +1 -0
  53. package/dist/dev/src/components/Wrap.js +18 -0
  54. package/dist/dev/src/components/Wrap.js.map +1 -0
  55. package/dist/dev/src/components/index.js +25 -0
  56. package/dist/dev/src/components/index.js.map +1 -0
  57. package/dist/dev/src/components/stc/index.js +27 -0
  58. package/dist/dev/src/components/stc/index.js.map +1 -0
  59. package/dist/dev/src/components/stc/sti.js +10 -0
  60. package/dist/dev/src/components/stc/sti.js.map +1 -0
  61. package/dist/dev/src/content-slot.js +78 -0
  62. package/dist/dev/src/content-slot.js.map +1 -0
  63. package/dist/dev/src/content-slot.test.js +89 -0
  64. package/dist/dev/src/content-slot.test.js.map +1 -0
  65. package/dist/dev/src/context/assignment.js +46 -0
  66. package/dist/dev/src/context/assignment.js.map +1 -0
  67. package/dist/dev/src/context/binder.js +12 -0
  68. package/dist/dev/src/context/binder.js.map +1 -0
  69. package/dist/dev/src/context/declaration.js +3 -0
  70. package/dist/dev/src/context/declaration.js.map +1 -0
  71. package/dist/dev/src/context/format-options.js +32 -0
  72. package/dist/dev/src/context/format-options.js.map +1 -0
  73. package/dist/dev/src/context/index.js +11 -0
  74. package/dist/dev/src/context/index.js.map +1 -0
  75. package/dist/dev/src/context/member-declaration.js +11 -0
  76. package/dist/dev/src/context/member-declaration.js.map +1 -0
  77. package/dist/dev/src/context/member-scope.js +12 -0
  78. package/dist/dev/src/context/member-scope.js.map +1 -0
  79. package/dist/dev/src/context/name-policy.js +13 -0
  80. package/dist/dev/src/context/name-policy.js.map +1 -0
  81. package/dist/dev/src/context/scope.js +13 -0
  82. package/dist/dev/src/context/scope.js.map +1 -0
  83. package/dist/dev/src/context/source-directory.js +3 -0
  84. package/dist/dev/src/context/source-directory.js.map +1 -0
  85. package/dist/dev/src/context/source-file.js +3 -0
  86. package/dist/dev/src/context/source-file.js.map +1 -0
  87. package/dist/dev/src/context.js +47 -0
  88. package/dist/dev/src/context.js.map +1 -0
  89. package/dist/dev/src/debug/cli.js +164 -0
  90. package/dist/dev/src/debug/cli.js.map +1 -0
  91. package/dist/dev/src/debug/diagnostics.test.js +50 -0
  92. package/dist/dev/src/debug/diagnostics.test.js.map +1 -0
  93. package/dist/dev/src/debug/effects.js +293 -0
  94. package/dist/dev/src/debug/effects.js.map +1 -0
  95. package/dist/dev/src/debug/effects.test.js +280 -0
  96. package/dist/dev/src/debug/effects.test.js.map +1 -0
  97. package/dist/dev/src/debug/files.js +29 -0
  98. package/dist/dev/src/debug/files.js.map +1 -0
  99. package/dist/dev/src/debug/files.test.js +78 -0
  100. package/dist/dev/src/debug/files.test.js.map +1 -0
  101. package/dist/dev/src/debug/index.js +71 -0
  102. package/dist/dev/src/debug/index.js.map +1 -0
  103. package/dist/dev/src/debug/message-format.test.js +836 -0
  104. package/dist/dev/src/debug/message-format.test.js.map +1 -0
  105. package/dist/dev/src/debug/render-tree-orphans.test.js +365 -0
  106. package/dist/dev/src/debug/render-tree-orphans.test.js.map +1 -0
  107. package/dist/dev/src/debug/render.js +479 -0
  108. package/dist/dev/src/debug/render.js.map +1 -0
  109. package/dist/dev/src/debug/render.test.js +363 -0
  110. package/dist/dev/src/debug/render.test.js.map +1 -0
  111. package/dist/dev/src/debug/serialize.js +70 -0
  112. package/dist/dev/src/debug/serialize.js.map +1 -0
  113. package/dist/dev/src/debug/source-map.browser.js +24 -0
  114. package/dist/dev/src/debug/source-map.browser.js.map +1 -0
  115. package/dist/dev/src/debug/source-map.js +111 -0
  116. package/dist/dev/src/debug/source-map.js.map +1 -0
  117. package/dist/dev/src/debug/symbols.js +196 -0
  118. package/dist/dev/src/debug/symbols.js.map +1 -0
  119. package/dist/dev/src/debug/symbols.test.js +93 -0
  120. package/dist/dev/src/debug/symbols.test.js.map +1 -0
  121. package/dist/dev/src/debug/trace-writer.js +658 -0
  122. package/dist/dev/src/debug/trace-writer.js.map +1 -0
  123. package/dist/dev/src/debug/trace.js +460 -0
  124. package/dist/dev/src/debug/trace.js.map +1 -0
  125. package/dist/dev/src/devtools/devtools-protocol.js +2 -0
  126. package/dist/dev/src/devtools/devtools-protocol.js.map +1 -0
  127. package/dist/dev/src/devtools/devtools-server.browser.js +33 -0
  128. package/dist/dev/src/devtools/devtools-server.browser.js.map +1 -0
  129. package/dist/dev/src/devtools/devtools-server.js +444 -0
  130. package/dist/dev/src/devtools/devtools-server.js.map +1 -0
  131. package/dist/dev/src/devtools/devtools-transport.js +114 -0
  132. package/dist/dev/src/devtools/devtools-transport.js.map +1 -0
  133. package/dist/dev/src/devtools-entry.browser.js +2 -0
  134. package/dist/dev/src/devtools-entry.browser.js.map +1 -0
  135. package/dist/dev/src/devtools-entry.js +2 -0
  136. package/dist/dev/src/devtools-entry.js.map +1 -0
  137. package/dist/dev/src/diagnostics.js +89 -0
  138. package/dist/dev/src/diagnostics.js.map +1 -0
  139. package/dist/dev/src/host/alloy-host.browser.js +32 -0
  140. package/dist/dev/src/host/alloy-host.browser.js.map +1 -0
  141. package/dist/dev/src/host/alloy-host.js +144 -0
  142. package/dist/dev/src/host/alloy-host.js.map +1 -0
  143. package/dist/dev/src/host/interface.js +2 -0
  144. package/dist/dev/src/host/interface.js.map +1 -0
  145. package/dist/dev/src/host/node-host.browser.js +21 -0
  146. package/dist/dev/src/host/node-host.browser.js.map +1 -0
  147. package/dist/dev/src/host/node-host.js +20 -0
  148. package/dist/dev/src/host/node-host.js.map +1 -0
  149. package/dist/dev/src/index.browser.js +3 -0
  150. package/dist/dev/src/index.browser.js.map +1 -0
  151. package/dist/dev/src/index.js +27 -0
  152. package/dist/dev/src/index.js.map +1 -0
  153. package/dist/dev/src/inspect.browser.js +6 -0
  154. package/dist/dev/src/inspect.browser.js.map +1 -0
  155. package/dist/dev/src/inspect.js +2 -0
  156. package/dist/dev/src/inspect.js.map +1 -0
  157. package/dist/dev/src/jsx-runtime.js +17 -0
  158. package/dist/dev/src/jsx-runtime.js.map +1 -0
  159. package/dist/dev/src/library-symbol-reference.js +5 -0
  160. package/dist/dev/src/library-symbol-reference.js.map +1 -0
  161. package/dist/dev/src/name-policy.js +24 -0
  162. package/dist/dev/src/name-policy.js.map +1 -0
  163. package/dist/dev/src/pretty-string/pretty-string.js +100 -0
  164. package/dist/dev/src/pretty-string/pretty-string.js.map +1 -0
  165. package/dist/dev/src/pretty-string/pretty-string.test.js +38 -0
  166. package/dist/dev/src/pretty-string/pretty-string.test.js.map +1 -0
  167. package/dist/dev/src/print-hook.js +10 -0
  168. package/dist/dev/src/print-hook.js.map +1 -0
  169. package/dist/dev/src/props-combinators.js +109 -0
  170. package/dist/dev/src/props-combinators.js.map +1 -0
  171. package/dist/dev/src/reactive-union-set.js +213 -0
  172. package/dist/dev/src/reactive-union-set.js.map +1 -0
  173. package/dist/dev/src/reactivity.js +426 -0
  174. package/dist/dev/src/reactivity.js.map +1 -0
  175. package/dist/dev/src/refkey.js +167 -0
  176. package/dist/dev/src/refkey.js.map +1 -0
  177. package/dist/dev/src/render-stack.js +252 -0
  178. package/dist/dev/src/render-stack.js.map +1 -0
  179. package/dist/dev/src/render.js +872 -0
  180. package/dist/dev/src/render.js.map +1 -0
  181. package/dist/dev/src/resource.js +124 -0
  182. package/dist/dev/src/resource.js.map +1 -0
  183. package/dist/dev/src/runtime/component.js +41 -0
  184. package/dist/dev/src/runtime/component.js.map +1 -0
  185. package/dist/dev/src/runtime/intrinsic.js +12 -0
  186. package/dist/dev/src/runtime/intrinsic.js.map +1 -0
  187. package/dist/dev/src/scheduler.js +217 -0
  188. package/dist/dev/src/scheduler.js.map +1 -0
  189. package/dist/dev/src/stc.js +40 -0
  190. package/dist/dev/src/stc.js.map +1 -0
  191. package/dist/dev/src/sti.js +31 -0
  192. package/dist/dev/src/sti.js.map +1 -0
  193. package/dist/dev/src/symbols/basic-scope.js +21 -0
  194. package/dist/dev/src/symbols/basic-scope.js.map +1 -0
  195. package/dist/dev/src/symbols/basic-symbol.js +34 -0
  196. package/dist/dev/src/symbols/basic-symbol.js.map +1 -0
  197. package/dist/dev/src/symbols/decl.js +26 -0
  198. package/dist/dev/src/symbols/decl.js.map +1 -0
  199. package/dist/dev/src/symbols/index.js +10 -0
  200. package/dist/dev/src/symbols/index.js.map +1 -0
  201. package/dist/dev/src/symbols/output-scope.js +202 -0
  202. package/dist/dev/src/symbols/output-scope.js.map +1 -0
  203. package/dist/dev/src/symbols/output-space.js +36 -0
  204. package/dist/dev/src/symbols/output-space.js.map +1 -0
  205. package/dist/dev/src/symbols/output-symbol.js +504 -0
  206. package/dist/dev/src/symbols/output-symbol.js.map +1 -0
  207. package/dist/dev/src/symbols/symbol-flow.js +106 -0
  208. package/dist/dev/src/symbols/symbol-flow.js.map +1 -0
  209. package/dist/dev/src/symbols/symbol-slot.js +68 -0
  210. package/dist/dev/src/symbols/symbol-slot.js.map +1 -0
  211. package/dist/dev/src/symbols/symbol-slot.test.js +43 -0
  212. package/dist/dev/src/symbols/symbol-slot.test.js.map +1 -0
  213. package/dist/dev/src/symbols/symbol-table.js +93 -0
  214. package/dist/dev/src/symbols/symbol-table.js.map +1 -0
  215. package/dist/dev/src/tap.js +109 -0
  216. package/dist/dev/src/tap.js.map +1 -0
  217. package/dist/dev/src/trace.js +2 -0
  218. package/dist/dev/src/trace.js.map +1 -0
  219. package/dist/dev/src/tracer.js +180 -0
  220. package/dist/dev/src/tracer.js.map +1 -0
  221. package/dist/dev/src/utils.js +487 -0
  222. package/dist/dev/src/utils.js.map +1 -0
  223. package/dist/dev/src/write-output.js +48 -0
  224. package/dist/dev/src/write-output.js.map +1 -0
  225. package/dist/dev/test/browser-build.test.js +85 -0
  226. package/dist/dev/test/browser-build.test.js.map +1 -0
  227. package/dist/dev/test/children.test.js +44 -0
  228. package/dist/dev/test/children.test.js.map +1 -0
  229. package/dist/dev/test/components/append-file.test.js +394 -0
  230. package/dist/dev/test/components/append-file.test.js.map +1 -0
  231. package/dist/dev/test/components/block.test.js +83 -0
  232. package/dist/dev/test/components/block.test.js.map +1 -0
  233. package/dist/dev/test/components/copy-file.test.js +119 -0
  234. package/dist/dev/test/components/copy-file.test.js.map +1 -0
  235. package/dist/dev/test/components/declaration.test.js +40 -0
  236. package/dist/dev/test/components/declaration.test.js.map +1 -0
  237. package/dist/dev/test/components/list.test.js +250 -0
  238. package/dist/dev/test/components/list.test.js.map +1 -0
  239. package/dist/dev/test/components/prose.test.js +42 -0
  240. package/dist/dev/test/components/prose.test.js.map +1 -0
  241. package/dist/dev/test/components/reference-or-content.test.js +246 -0
  242. package/dist/dev/test/components/reference-or-content.test.js.map +1 -0
  243. package/dist/dev/test/components/source-file.test.js +271 -0
  244. package/dist/dev/test/components/source-file.test.js.map +1 -0
  245. package/dist/dev/test/components/template-file.test.js +200 -0
  246. package/dist/dev/test/components/template-file.test.js.map +1 -0
  247. package/dist/dev/test/components/update-file.test.js +210 -0
  248. package/dist/dev/test/components/update-file.test.js.map +1 -0
  249. package/dist/dev/test/components/wrap.test.js +48 -0
  250. package/dist/dev/test/components/wrap.test.js.map +1 -0
  251. package/dist/dev/test/control-flow/for.test.js +318 -0
  252. package/dist/dev/test/control-flow/for.test.js.map +1 -0
  253. package/dist/dev/test/control-flow/match.test.js +112 -0
  254. package/dist/dev/test/control-flow/match.test.js.map +1 -0
  255. package/dist/dev/test/control-flow/show.test.js +38 -0
  256. package/dist/dev/test/control-flow/show.test.js.map +1 -0
  257. package/dist/dev/test/lazy-isempty.test.js +121 -0
  258. package/dist/dev/test/lazy-isempty.test.js.map +1 -0
  259. package/dist/dev/test/name-policy.test.js +28 -0
  260. package/dist/dev/test/name-policy.test.js.map +1 -0
  261. package/dist/dev/test/props-with-defaults.test.js +94 -0
  262. package/dist/dev/test/props-with-defaults.test.js.map +1 -0
  263. package/dist/dev/test/reactive-union-set-disposers.test.js +98 -0
  264. package/dist/dev/test/reactive-union-set-disposers.test.js.map +1 -0
  265. package/dist/dev/test/reactive-union-set.test.js +171 -0
  266. package/dist/dev/test/reactive-union-set.test.js.map +1 -0
  267. package/dist/dev/test/reactivity/circular-reactives.test.js +62 -0
  268. package/dist/dev/test/reactivity/circular-reactives.test.js.map +1 -0
  269. package/dist/dev/test/reactivity/cleanup.test.js +96 -0
  270. package/dist/dev/test/reactivity/cleanup.test.js.map +1 -0
  271. package/dist/dev/test/reactivity/memo.test.js +17 -0
  272. package/dist/dev/test/reactivity/memo.test.js.map +1 -0
  273. package/dist/dev/test/reactivity/ref-rendering.test.js +38 -0
  274. package/dist/dev/test/reactivity/ref-rendering.test.js.map +1 -0
  275. package/dist/dev/test/reactivity/shallow-reactive.test.js +52 -0
  276. package/dist/dev/test/reactivity/shallow-reactive.test.js.map +1 -0
  277. package/dist/dev/test/reactivity/test.test.js +74 -0
  278. package/dist/dev/test/reactivity/test.test.js.map +1 -0
  279. package/dist/dev/test/reactivity/untrack.test.js +27 -0
  280. package/dist/dev/test/reactivity/untrack.test.js.map +1 -0
  281. package/dist/dev/test/refkey.test.js +36 -0
  282. package/dist/dev/test/refkey.test.js.map +1 -0
  283. package/dist/dev/test/rendering/basic.test.js +194 -0
  284. package/dist/dev/test/rendering/basic.test.js.map +1 -0
  285. package/dist/dev/test/rendering/code.test.js +64 -0
  286. package/dist/dev/test/rendering/code.test.js.map +1 -0
  287. package/dist/dev/test/rendering/formatting.test.js +797 -0
  288. package/dist/dev/test/rendering/formatting.test.js.map +1 -0
  289. package/dist/dev/test/rendering/indent.test.js +183 -0
  290. package/dist/dev/test/rendering/indent.test.js.map +1 -0
  291. package/dist/dev/test/rendering/memoization.test.js +37 -0
  292. package/dist/dev/test/rendering/memoization.test.js.map +1 -0
  293. package/dist/dev/test/rendering/print-render-stack.test.js +287 -0
  294. package/dist/dev/test/rendering/print-render-stack.test.js.map +1 -0
  295. package/dist/dev/test/rendering/refkeys.test.js +37 -0
  296. package/dist/dev/test/rendering/refkeys.test.js.map +1 -0
  297. package/dist/dev/test/scheduler-extended.test.js +96 -0
  298. package/dist/dev/test/scheduler-extended.test.js.map +1 -0
  299. package/dist/dev/test/scheduler.test.js +46 -0
  300. package/dist/dev/test/scheduler.test.js.map +1 -0
  301. package/dist/dev/test/split-props.test.js +78 -0
  302. package/dist/dev/test/split-props.test.js.map +1 -0
  303. package/dist/dev/test/stc.test.js +35 -0
  304. package/dist/dev/test/stc.test.js.map +1 -0
  305. package/dist/dev/test/symbols/output-scope.test.js +180 -0
  306. package/dist/dev/test/symbols/output-scope.test.js.map +1 -0
  307. package/dist/dev/test/symbols/output-symbol.test.js +202 -0
  308. package/dist/dev/test/symbols/output-symbol.test.js.map +1 -0
  309. package/dist/dev/test/symbols/resolution.test.js +487 -0
  310. package/dist/dev/test/symbols/resolution.test.js.map +1 -0
  311. package/dist/dev/test/symbols/symbol-table.test.js +15 -0
  312. package/dist/dev/test/symbols/symbol-table.test.js.map +1 -0
  313. package/dist/dev/test/symbols/utils.js +26 -0
  314. package/dist/dev/test/symbols/utils.js.map +1 -0
  315. package/dist/dev/test/utils.test.js +317 -0
  316. package/dist/dev/test/utils.test.js.map +1 -0
  317. package/dist/dev/testing/create-test-wrapper.js +76 -0
  318. package/dist/dev/testing/create-test-wrapper.js.map +1 -0
  319. package/dist/dev/testing/devtools-utils.js +162 -0
  320. package/dist/dev/testing/devtools-utils.js.map +1 -0
  321. package/dist/dev/testing/extend-expect.js +167 -0
  322. package/dist/dev/testing/extend-expect.js.map +1 -0
  323. package/dist/dev/testing/extend-expect.test.js +234 -0
  324. package/dist/dev/testing/extend-expect.test.js.map +1 -0
  325. package/dist/dev/testing/index.js +4 -0
  326. package/dist/dev/testing/index.js.map +1 -0
  327. package/dist/dev/testing/render.js +23 -0
  328. package/dist/dev/testing/render.js.map +1 -0
  329. package/dist/dev/testing/vitest.d.js +2 -0
  330. package/dist/dev/testing/vitest.d.js.map +1 -0
  331. package/dist/src/debug/cli.d.ts.map +1 -1
  332. package/dist/src/debug/cli.js +3 -2
  333. package/dist/src/debug/cli.js.map +1 -1
  334. package/dist/src/debug/effects.d.ts.map +1 -1
  335. package/dist/src/debug/effects.js +2 -67
  336. package/dist/src/debug/effects.js.map +1 -1
  337. package/dist/src/debug/render.d.ts.map +1 -1
  338. package/dist/src/debug/render.js +15 -8
  339. package/dist/src/debug/render.js.map +1 -1
  340. package/dist/src/debug/source-map.browser.d.ts +16 -0
  341. package/dist/src/debug/source-map.browser.d.ts.map +1 -0
  342. package/dist/src/debug/source-map.browser.js +24 -0
  343. package/dist/src/debug/source-map.browser.js.map +1 -0
  344. package/dist/src/debug/source-map.d.ts +22 -0
  345. package/dist/src/debug/source-map.d.ts.map +1 -0
  346. package/dist/src/debug/source-map.js +111 -0
  347. package/dist/src/debug/source-map.js.map +1 -0
  348. package/dist/src/debug/trace.d.ts.map +1 -1
  349. package/dist/src/debug/trace.js +19 -5
  350. package/dist/src/debug/trace.js.map +1 -1
  351. package/dist/src/host/node-host.browser.d.ts +11 -0
  352. package/dist/src/host/node-host.browser.d.ts.map +1 -0
  353. package/dist/src/host/node-host.browser.js +21 -0
  354. package/dist/src/host/node-host.browser.js.map +1 -0
  355. package/dist/src/host/node-host.d.ts +11 -0
  356. package/dist/src/host/node-host.d.ts.map +1 -0
  357. package/dist/src/host/node-host.js +20 -0
  358. package/dist/src/host/node-host.js.map +1 -0
  359. package/dist/src/render-stack.d.ts.map +1 -1
  360. package/dist/src/render-stack.js +4 -3
  361. package/dist/src/render-stack.js.map +1 -1
  362. package/dist/src/write-output.d.ts.map +1 -1
  363. package/dist/src/write-output.js +6 -5
  364. package/dist/src/write-output.js.map +1 -1
  365. package/dist/test/browser-build.test.js +66 -67
  366. package/dist/test/browser-build.test.js.map +1 -1
  367. package/dist/tsconfig.tsbuildinfo +1 -1
  368. package/package.json +13 -3
  369. package/src/debug/cli.ts +3 -2
  370. package/src/debug/effects.ts +2 -82
  371. package/src/debug/render.ts +25 -13
  372. package/src/debug/source-map.browser.ts +30 -0
  373. package/src/debug/source-map.ts +135 -0
  374. package/src/debug/trace.ts +22 -5
  375. package/src/host/node-host.browser.ts +23 -0
  376. package/src/host/node-host.ts +22 -0
  377. package/src/render-stack.ts +4 -3
  378. package/src/write-output.ts +6 -5
  379. package/test/browser-build.test.ts +71 -78
  380. package/vitest.config.ts +8 -0
@@ -0,0 +1,504 @@
1
+ import { isRef, reactive, ReactiveFlags, track, TrackOpTypes, trigger, TriggerOpTypes, watch } from "@vue/reactivity";
2
+ import { useBinder } from "../context/binder.js";
3
+ import { debug, TracePhase } from "../debug/index.js";
4
+ import { inspect } from "../inspect.js";
5
+ import { shallowReactive, untrack } from "../reactivity.js";
6
+ import { isMemberRefkey, isNamekey, isSymbolRefkey, toRefkey } from "../refkey.js";
7
+ import { formatSymbolName } from "../tracer.js";
8
+ import { OutputMemberSpace } from "./output-space.js";
9
+ let symbolCount = 0;
10
+
11
+ /**
12
+ * An output symbol is a named entity that can be referenced in your output
13
+ * code.
14
+ *
15
+ * @remarks
16
+ *
17
+ * This class is the base implementation of symbol. Most languages will have
18
+ * subtypes that provide additional metadata. Symbols are reactive values, so
19
+ * you can observe changes to their properties in a reactive context.
20
+ */
21
+ export class OutputSymbol {
22
+ static memberSpaces = [];
23
+ #originalName;
24
+ /**
25
+ * Read only. The requested name of this symbol. The symbol's actual name may
26
+ * be different depending on naming policy or conflicts with other symbols.
27
+ *
28
+ * @readonly
29
+ */
30
+ get originalName() {
31
+ return this.#originalName;
32
+ }
33
+
34
+ // this field is set by calling the name accessor.
35
+ #name;
36
+ /**
37
+ * The name of this symbol.
38
+ *
39
+ * @reactive
40
+ */
41
+ get name() {
42
+ track(this, TrackOpTypes.GET, "name");
43
+ return this.#name;
44
+ }
45
+ set name(name) {
46
+ const old = this.#name;
47
+ if (old === name) {
48
+ return;
49
+ }
50
+ this.#name = this.#namePolicy && !this.#ignoreNamePolicy ? this.#namePolicy(name) : name;
51
+ trigger(this, TriggerOpTypes.SET, "name", name, old);
52
+ }
53
+ #id;
54
+ /**
55
+ * The unique id of this symbol.
56
+ *
57
+ * @readonly
58
+ */
59
+ get id() {
60
+ return this.#id;
61
+ }
62
+ #ignoreNamePolicy = false;
63
+ /**
64
+ * Whether the name of this symbol bypasses the active name policy. When true,
65
+ * the name of this symbol will be fixed, though it may conflict with other
66
+ * symbols which are also ignoring the name policy.
67
+ *
68
+ * @readonly
69
+ */
70
+ get ignoreNamePolicy() {
71
+ return this.#ignoreNamePolicy;
72
+ }
73
+ #ignoreNameConflict = false;
74
+
75
+ /**
76
+ * Whether the name of this symbol bypasses the active name conflict
77
+ * resolution. When true, the name of this symbol will be fixed, though it may
78
+ * conflict with other symbols which are also ignoring name conflict
79
+ * resolution.
80
+ */
81
+ get ignoreNameConflict() {
82
+ return this.#ignoreNameConflict;
83
+ }
84
+ #memberSpaces = shallowReactive({});
85
+ /**
86
+ * The member spaces of this symbol.
87
+ *
88
+ * @readonly
89
+ */
90
+ get memberSpaces() {
91
+ return Object.values(this.#memberSpaces);
92
+ }
93
+
94
+ /**
95
+ * Get the member space for the given key.
96
+ */
97
+ memberSpaceFor(spaceKey) {
98
+ return this.#memberSpaces[spaceKey];
99
+ }
100
+
101
+ /**
102
+ * The scope this symbol is in. When this symbol is a member symbol, this will
103
+ * return undefined.
104
+ *
105
+ * @readonly
106
+ */
107
+ get scope() {
108
+ if (this.isMemberSymbol) {
109
+ return undefined;
110
+ }
111
+ if (this.spaces.length === 0) {
112
+ return undefined;
113
+ }
114
+ return this.spaces[0].scope;
115
+ }
116
+ #spaces;
117
+ /**
118
+ * The declaration or member spaces this symbol belongs to.
119
+ *
120
+ * @reactive
121
+ */
122
+ get spaces() {
123
+ track(this, TrackOpTypes.GET, "spaces");
124
+ return this.#spaces;
125
+ }
126
+ set spaces(spaces) {
127
+ const old = this.#spaces;
128
+ if (old === spaces) {
129
+ return;
130
+ }
131
+ const spacesArray = spaces === undefined ? [] : Array.isArray(spaces) ? spaces : [spaces];
132
+ this.#handleNewSpaces(spacesArray, old);
133
+ this.#spaces = spacesArray;
134
+ trigger(this, TriggerOpTypes.SET, "spaces", spaces, old);
135
+ }
136
+ #handleNewSpaces(newSpaces, oldSpaces) {
137
+ if (oldSpaces) {
138
+ // ensure when changing scope that this symbol only belongs to one of them
139
+ oldSpaces.forEach(oldSpace => oldSpace.delete(this));
140
+ }
141
+ if (newSpaces) {
142
+ newSpaces.forEach(newSpace => newSpace.add(this));
143
+ }
144
+ }
145
+ #binder;
146
+ /**
147
+ * The binder that is tracking this symbol.
148
+ *
149
+ * @readonly
150
+ */
151
+ get binder() {
152
+ return this.#binder;
153
+ }
154
+ #refkeys;
155
+
156
+ /**
157
+ * The refkeys for this symbol.
158
+ *
159
+ * @reactive
160
+ */
161
+ get refkeys() {
162
+ track(this, TrackOpTypes.GET, "refkeys");
163
+ return this.#refkeys;
164
+ }
165
+ set refkeys(refkeys) {
166
+ const old = this.#refkeys;
167
+ if (old === refkeys) {
168
+ return;
169
+ }
170
+ this.#refkeys = shallowReactive(Array.isArray(refkeys) ? refkeys : [refkeys]);
171
+ trigger(this, TriggerOpTypes.SET, "refkeys", this.#refkeys, old);
172
+ }
173
+ #aliasTarget;
174
+ /**
175
+ * The symbol that this symbol is an alias for.
176
+ *
177
+ * @readonly
178
+ */
179
+ get aliasTarget() {
180
+ return this.#aliasTarget;
181
+ }
182
+
183
+ /**
184
+ * If this symbol is an alias for another symbol, return the the aliased symbol. Otherwise, return this symbol.
185
+ */
186
+ dealias() {
187
+ if (this.#aliasTarget) {
188
+ return this.#aliasTarget.dealias();
189
+ }
190
+ return this;
191
+ }
192
+
193
+ /**
194
+ * Whether this symbol is an alias for another symbol.
195
+ *
196
+ * @readonly
197
+ */
198
+ get isAlias() {
199
+ return !!this.#aliasTarget;
200
+ }
201
+ #metadata;
202
+ /**
203
+ * An arbitrary bag of metadata for this symbol. This property is read only,
204
+ * but the metadata is a reactive object.
205
+ *
206
+ * @readonly
207
+ */
208
+ get metadata() {
209
+ return this.#metadata;
210
+ }
211
+ copyToSpace(space) {
212
+ const copy = this.copy();
213
+ copy.spaces = space;
214
+ return copy;
215
+ }
216
+
217
+ /**
218
+ * Whether this symbol is a member of another symbol.
219
+ *
220
+ * @readonly
221
+ */
222
+ get isMemberSymbol() {
223
+ return this.spaces[0] instanceof OutputMemberSpace;
224
+ }
225
+
226
+ /**
227
+ * When this is a member symbol, this returns the symbol that this is symbol
228
+ * is a member of.
229
+ */
230
+ get ownerSymbol() {
231
+ if (!this.isMemberSymbol) {
232
+ return undefined;
233
+ }
234
+ return this.spaces[0].symbol;
235
+ }
236
+ #isTransient;
237
+
238
+ /**
239
+ * Whether this symbol is a transient symbol. Transient symbols cannot be
240
+ * referenced and are meant to be combined with other symbols.
241
+ *
242
+ * @readonly
243
+ */
244
+ get isTransient() {
245
+ if (this.#isTransient) {
246
+ return true;
247
+ }
248
+ if (this.ownerSymbol) {
249
+ return this.ownerSymbol.isTransient;
250
+ }
251
+ return false;
252
+ }
253
+ #movedTo;
254
+ /**
255
+ * The symbol that this symbol's members have been moved to.
256
+ *
257
+ * @readonly
258
+ * @reactive
259
+ */
260
+ get movedTo() {
261
+ track(this, TrackOpTypes.GET, "movedTo");
262
+ return this.#movedTo;
263
+ }
264
+ #setMovedTo(value) {
265
+ this.#movedTo = value;
266
+ trigger(this, TriggerOpTypes.SET, "movedTo");
267
+ }
268
+
269
+ /**
270
+ * Whether this symbol's members have been moved to another symbol.
271
+ *
272
+ * @reactive
273
+ */
274
+ get isMoved() {
275
+ return this.movedTo !== undefined;
276
+ }
277
+ #type;
278
+
279
+ /**
280
+ * The symbol which defines the type of this symbol. The type symbol provides
281
+ * information about the value this symbol contains, such as what members it
282
+ * has.
283
+ *
284
+ * @reactive
285
+ */
286
+ get type() {
287
+ track(this, TrackOpTypes.GET, "type");
288
+ return this.#type;
289
+ }
290
+ set type(value) {
291
+ if (isRef(value)) {
292
+ watch(value, newValue => {
293
+ const old = this.#type;
294
+ this.#type = newValue && newValue.dealias();
295
+ trigger(this, TriggerOpTypes.SET, "type", newValue, old);
296
+ });
297
+ } else {
298
+ const old = this.#type;
299
+ this.#type = value && value.dealias();
300
+ trigger(this, TriggerOpTypes.SET, "type", value, old);
301
+ }
302
+ }
303
+
304
+ /**
305
+ * Whether this symbol has its symbol representing its type available.
306
+ *
307
+ * @readonly
308
+ * @reactive
309
+ */
310
+ get hasTypeSymbol() {
311
+ return this.type !== undefined;
312
+ }
313
+ #isTyped = false;
314
+
315
+ /**
316
+ * Whether this symbol's members are provided by a type symbol. The
317
+ * `typeSymbol` property is this symbol. It may not be available yet, so check
318
+ * `hasTypeSymbol`.
319
+ */
320
+ get isTyped() {
321
+ return this.#isTyped;
322
+ }
323
+ get debugInfo() {
324
+ return {};
325
+ }
326
+ #namePolicy;
327
+ get namePolicy() {
328
+ return this.#namePolicy;
329
+ }
330
+ #lazyMemberInitializer;
331
+ #lazyMembersInitialized = false;
332
+ #initializeMembers() {
333
+ if (this.#lazyMemberInitializer && !this.#lazyMembersInitialized) {
334
+ this.#lazyMemberInitializer();
335
+ }
336
+ this.#lazyMembersInitialized = true;
337
+ }
338
+
339
+ /**
340
+ * Get a member symbol by name from this symbol's member spaces. Checks member
341
+ * spaces in order until it finds a member with that name.
342
+ */
343
+ resolveMemberByName(name) {
344
+ this.#initializeMembers();
345
+ if (this.isTyped) {
346
+ if (!this.hasTypeSymbol) {
347
+ return undefined;
348
+ }
349
+ return this.type.resolveMemberByName(name);
350
+ }
351
+ for (const space of this.memberSpaces) {
352
+ const member = space.symbolNames.get(name);
353
+ if (member) {
354
+ return member;
355
+ }
356
+ }
357
+ return undefined;
358
+ }
359
+
360
+ // Tell \@vue/reactivity that this symbol should never be wrapped in a reactive
361
+ // proxy.
362
+ [ReactiveFlags.SKIP] = true;
363
+ constructor(name, spaces, options = {}) {
364
+ this.#binder = options.binder ?? useBinder();
365
+ this.#namePolicy = options.namePolicy;
366
+ if (typeof name === "string") {
367
+ this.#ignoreNameConflict = !!options.ignoreNameConflict;
368
+ this.#ignoreNamePolicy = !!options.ignoreNamePolicy;
369
+ this.name = name;
370
+ this.#originalName = name;
371
+ this.#refkeys = shallowReactive(this.#normalizeRefkeyOption(options.refkeys));
372
+ } else {
373
+ this.#ignoreNameConflict = name.options.ignoreNameConflict ?? !!options.ignoreNameConflict;
374
+ this.#ignoreNamePolicy = name.options.ignoreNamePolicy ?? !!options.ignoreNamePolicy;
375
+ this.name = name.name;
376
+ this.#originalName = name.name;
377
+ this.#refkeys = shallowReactive([name, ...this.#normalizeRefkeyOption(options.refkeys)]);
378
+ }
379
+ this.#id = symbolCount++;
380
+ this.#spaces = Array.isArray(spaces) ? spaces : spaces === undefined ? [] : [spaces];
381
+ this.#aliasTarget = options.aliasTarget;
382
+ this.#metadata = reactive(options.metadata ?? {});
383
+ this.#isTransient = !!options.transient;
384
+ this.#isTyped = !!options.type;
385
+ this.type = options.type;
386
+ this.#lazyMemberInitializer = options.lazyMemberInitializer;
387
+ this.#handleNewSpaces(this.#spaces);
388
+ const constructor = this.constructor;
389
+ this.#memberSpaces = Object.fromEntries(constructor.memberSpaces.map(spaceKey => [spaceKey, new OutputMemberSpace(this, spaceKey, this.#binder)]));
390
+
391
+ // Notify binder so resolution tracking works even without createSymbol
392
+ this.#binder?.notifySymbolCreated(this);
393
+ }
394
+ #normalizeRefkeyOption(refkeys) {
395
+ if (refkeys === undefined) {
396
+ return [];
397
+ } else if (Array.isArray(refkeys)) {
398
+ return refkeys;
399
+ } else {
400
+ return [refkeys];
401
+ }
402
+ }
403
+ delete() {
404
+ debug.trace(TracePhase.symbol.delete, () => `${formatSymbolName(this)}`);
405
+ if (this.#spaces) {
406
+ this.#spaces.forEach(space => space.delete(this));
407
+ }
408
+ this.#binder?.notifySymbolDeleted(this);
409
+ }
410
+
411
+ /**
412
+ * Move member symbols from this transient symbol to the target symbol. This is reactive -
413
+ * whenever a member is added to this symbol, it will be moved to the target
414
+ * symbol.
415
+ */
416
+ moveMembersTo(targetSymbol) {
417
+ if (this.#aliasTarget) {
418
+ return this.#aliasTarget.moveMembersTo(targetSymbol);
419
+ }
420
+ if (!this.isTransient) {
421
+ throw new Error("Can only move members from transient symbols");
422
+ }
423
+ for (const sourceSpace of this.memberSpaces) {
424
+ const targetSpace = targetSymbol.memberSpaceFor(sourceSpace.key);
425
+ if (!targetSpace) {
426
+ throw new Error("Target symbol doesn't have member space " + sourceSpace.key);
427
+ }
428
+ sourceSpace.moveTo(targetSpace);
429
+ }
430
+ this.#setMovedTo(targetSymbol);
431
+ }
432
+
433
+ /**
434
+ * Copy the members of this symbol to the target symbol. This is reactive -
435
+ * whenever a member is added to this symbol, it will be copied to the target
436
+ * symbol.
437
+ */
438
+ copyMembersTo(targetSymbol) {
439
+ if (this.#aliasTarget) {
440
+ return this.#aliasTarget.copyMembersTo(targetSymbol);
441
+ }
442
+ for (const sourceSpace of this.memberSpaces) {
443
+ const targetSpace = targetSymbol.memberSpaceFor(sourceSpace.key);
444
+ if (!targetSpace) {
445
+ throw new Error("Target symbol doesn't have member space " + sourceSpace.key);
446
+ }
447
+ sourceSpace.copyTo(targetSpace);
448
+ }
449
+ }
450
+
451
+ /**
452
+ * Makes a copy of this symbol which will update the name and flags
453
+ * of the clone when the original symbol is updated.
454
+ *
455
+ * @remarks
456
+ *
457
+ * This is used to create a symbol that is a copy of this symbol, but
458
+ * with a different scope. Changes to the copy will not affect the
459
+ * original symbol, and changes to the original symbol's name and flags
460
+ * will overwrite the copy's name and flags.
461
+ *
462
+ * @param newScope - The scope to use for the copy.
463
+ */
464
+
465
+ getCopyOptions() {
466
+ return {
467
+ binder: this.binder,
468
+ aliasTarget: this.aliasTarget,
469
+ metadata: this.metadata,
470
+ transient: this.isTransient
471
+ };
472
+ }
473
+ initializeCopy(copy) {
474
+ for (const sourceSpace of this.memberSpaces) {
475
+ const targetSpace = copy.memberSpaceFor(sourceSpace.key);
476
+ if (!targetSpace) {
477
+ throw new Error("Target doesn't have space " + sourceSpace.key);
478
+ }
479
+ sourceSpace.copyTo(targetSpace);
480
+ }
481
+ watch(() => this.name, newName => copy.name = newName);
482
+ }
483
+ [inspect.custom]() {
484
+ return this.toString();
485
+ }
486
+ toString() {
487
+ return untrack(() => `${this.constructor.name} "${this.name}"[${this.id}]`);
488
+ }
489
+ }
490
+ function _formatRefkey(refkey) {
491
+ if (isNamekey(refkey)) {
492
+ return `name:${refkey.name}`;
493
+ }
494
+ if (isMemberRefkey(refkey)) {
495
+ const base = _formatRefkey(toRefkey(refkey.base));
496
+ const member = typeof refkey.member === "string" ? refkey.member : _formatRefkey(toRefkey(refkey.member));
497
+ return `member:${base}.${member}`;
498
+ }
499
+ if (isSymbolRefkey(refkey)) {
500
+ return `key:${refkey.key}`;
501
+ }
502
+ return "refkey";
503
+ }
504
+ //# sourceMappingURL=output-symbol.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["isRef","reactive","ReactiveFlags","track","TrackOpTypes","trigger","TriggerOpTypes","watch","useBinder","debug","TracePhase","inspect","shallowReactive","untrack","isMemberRefkey","isNamekey","isSymbolRefkey","toRefkey","formatSymbolName","OutputMemberSpace","symbolCount","OutputSymbol","memberSpaces","originalName","name","GET","old","namePolicy","ignoreNamePolicy","SET","id","ignoreNameConflict","Object","values","memberSpaceFor","spaceKey","scope","isMemberSymbol","undefined","spaces","length","spacesArray","Array","isArray","handleNewSpaces","#handleNewSpaces","newSpaces","oldSpaces","forEach","oldSpace","delete","newSpace","add","binder","refkeys","aliasTarget","dealias","isAlias","metadata","copyToSpace","space","copy","ownerSymbol","symbol","isTransient","movedTo","setMovedTo","#setMovedTo","value","isMoved","type","newValue","hasTypeSymbol","isTyped","debugInfo","lazyMemberInitializer","lazyMembersInitialized","initializeMembers","#initializeMembers","resolveMemberByName","member","symbolNames","get","SKIP","constructor","options","normalizeRefkeyOption","transient","fromEntries","map","notifySymbolCreated","#normalizeRefkeyOption","trace","notifySymbolDeleted","moveMembersTo","targetSymbol","Error","sourceSpace","targetSpace","key","moveTo","copyMembersTo","copyTo","getCopyOptions","initializeCopy","newName","custom","toString","_formatRefkey","refkey","base"],"sources":["../../../../src/symbols/output-symbol.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,106 @@
1
+ import { isRef } from "@vue/reactivity";
2
+ import { effect, getContext, onCleanup, shallowReactive } from "../reactivity.js";
3
+ import { MemberContext } from "../context/member-scope.js";
4
+ import { ScopeContext } from "../context/scope.js";
5
+ import { debug, TracePhase } from "../debug/index.js";
6
+ import { formatSymbolName } from "../tracer.js";
7
+ export function takeSymbols(cb) {
8
+ const context = getContext();
9
+ context.takesSymbols = true;
10
+ context.takenSymbols = shallowReactive(new Set());
11
+ if (cb) {
12
+ effect(oldSymbols => {
13
+ for (const symbol of context.takenSymbols) {
14
+ if (oldSymbols && oldSymbols.has(symbol)) {
15
+ continue;
16
+ }
17
+ cb(symbol);
18
+ }
19
+ return new Set(context.takenSymbols);
20
+ }, undefined, {
21
+ debug: {
22
+ name: "symbolFlow:takeSymbols",
23
+ type: "symbol"
24
+ }
25
+ });
26
+ }
27
+ return context.takenSymbols;
28
+ }
29
+ export function emitSymbol(symbol) {
30
+ if (isRef(symbol)) {
31
+ debug.trace(TracePhase.symbol.flow, () => `Emitting ref to symbol`);
32
+ } else {
33
+ debug.trace(TracePhase.symbol.flow, () => `Emitting symbol ${formatSymbolName(symbol)}`);
34
+ }
35
+ let symbolTaker;
36
+ let context = getContext().owner;
37
+ while (context) {
38
+ if (context.takesSymbols) {
39
+ symbolTaker = context;
40
+ break;
41
+ }
42
+ if (context.context && (context.context[ScopeContext.id] || context.context[MemberContext.id])) {
43
+ // don't cross scope boundaries.
44
+ debug.trace(TracePhase.symbol.flow, () => `Not emitting symbol across scope boundary`);
45
+ break;
46
+ }
47
+ context = context.owner;
48
+ }
49
+ if (!symbolTaker) {
50
+ debug.trace(TracePhase.symbol.flow, () => `No symbol taker found, not emitting`);
51
+ return;
52
+ }
53
+ if (isRef(symbol)) {
54
+ effect(prevSymbol => {
55
+ onCleanup(() => {
56
+ if (symbol.value) {
57
+ symbolTaker.takenSymbols.delete(symbol.value);
58
+ }
59
+ });
60
+ if (symbol.value === undefined) {
61
+ symbolTaker.takenSymbols.delete(prevSymbol);
62
+ return undefined;
63
+ } else {
64
+ symbolTaker.takenSymbols.add(symbol.value);
65
+ return symbol.value;
66
+ }
67
+ }, undefined, {
68
+ debug: {
69
+ name: "symbolFlow:emitRef",
70
+ type: "symbol"
71
+ }
72
+ });
73
+ } else {
74
+ debug.trace(TracePhase.symbol.flow, () => `Emitting symbol ${formatSymbolName(symbol)} taken by ${symbolTaker.componentOwner?.name ?? "unknown component"}`);
75
+ symbolTaker.takenSymbols.add(symbol);
76
+ onCleanup(() => {
77
+ context.takenSymbols.delete(symbol);
78
+ });
79
+ }
80
+ }
81
+ export function moveTakenMembersTo(baseSymbol) {
82
+ const taken = takeSymbols();
83
+ effect(() => {
84
+ for (const symbol of taken) {
85
+ if (symbol.isTransient) {
86
+ symbol.moveMembersTo(baseSymbol);
87
+ }
88
+ for (const refkey of symbol.refkeys) {
89
+ if (!baseSymbol.refkeys.includes(refkey)) {
90
+ baseSymbol.refkeys.push(refkey);
91
+ }
92
+ }
93
+ }
94
+ }, undefined, {
95
+ debug: {
96
+ name: "symbolFlow:moveTakenMembers",
97
+ type: "symbol"
98
+ }
99
+ });
100
+ }
101
+ export function instantiateTakenMembersTo(baseSymbol, toSpaceKey, fromSpaceKey) {
102
+ takeSymbols(symbol => {
103
+ baseSymbol.type = symbol;
104
+ });
105
+ }
106
+ //# sourceMappingURL=symbol-flow.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["isRef","effect","getContext","onCleanup","shallowReactive","MemberContext","ScopeContext","debug","TracePhase","formatSymbolName","takeSymbols","cb","context","takesSymbols","takenSymbols","Set","oldSymbols","symbol","has","undefined","name","type","emitSymbol","trace","flow","symbolTaker","owner","id","prevSymbol","value","delete","add","componentOwner","moveTakenMembersTo","baseSymbol","taken","isTransient","moveMembersTo","refkey","refkeys","includes","push","instantiateTakenMembersTo","toSpaceKey","fromSpaceKey"],"sources":["../../../../src/symbols/symbol-flow.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}