@alloy-js/core 0.23.0-dev.10 → 0.23.0-dev.12

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 (464) 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 +163 -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.js +111 -0
  114. package/dist/dev/src/debug/source-map.js.map +1 -0
  115. package/dist/dev/src/debug/symbols.js +196 -0
  116. package/dist/dev/src/debug/symbols.js.map +1 -0
  117. package/dist/dev/src/debug/symbols.test.js +93 -0
  118. package/dist/dev/src/debug/symbols.test.js.map +1 -0
  119. package/dist/dev/src/debug/trace-writer.js +658 -0
  120. package/dist/dev/src/debug/trace-writer.js.map +1 -0
  121. package/dist/dev/src/debug/trace.js +459 -0
  122. package/dist/dev/src/debug/trace.js.map +1 -0
  123. package/dist/dev/src/devtools/devtools-protocol.js +2 -0
  124. package/dist/dev/src/devtools/devtools-protocol.js.map +1 -0
  125. package/dist/dev/src/devtools/devtools-server.browser.js +33 -0
  126. package/dist/dev/src/devtools/devtools-server.browser.js.map +1 -0
  127. package/dist/dev/src/devtools/devtools-server.js +444 -0
  128. package/dist/dev/src/devtools/devtools-server.js.map +1 -0
  129. package/dist/dev/src/devtools/devtools-transport.js +114 -0
  130. package/dist/dev/src/devtools/devtools-transport.js.map +1 -0
  131. package/dist/dev/src/devtools-entry.browser.js +2 -0
  132. package/dist/dev/src/devtools-entry.browser.js.map +1 -0
  133. package/dist/dev/src/devtools-entry.js +2 -0
  134. package/dist/dev/src/devtools-entry.js.map +1 -0
  135. package/dist/dev/src/diagnostics.js +89 -0
  136. package/dist/dev/src/diagnostics.js.map +1 -0
  137. package/dist/dev/src/host/alloy-host.browser.js +32 -0
  138. package/dist/dev/src/host/alloy-host.browser.js.map +1 -0
  139. package/dist/dev/src/host/alloy-host.js +144 -0
  140. package/dist/dev/src/host/alloy-host.js.map +1 -0
  141. package/dist/dev/src/host/interface.js +2 -0
  142. package/dist/dev/src/host/interface.js.map +1 -0
  143. package/dist/dev/src/index.browser.js +3 -0
  144. package/dist/dev/src/index.browser.js.map +1 -0
  145. package/dist/dev/src/index.js +27 -0
  146. package/dist/dev/src/index.js.map +1 -0
  147. package/dist/dev/src/inspect.browser.js +6 -0
  148. package/dist/dev/src/inspect.browser.js.map +1 -0
  149. package/dist/dev/src/inspect.js +2 -0
  150. package/dist/dev/src/inspect.js.map +1 -0
  151. package/dist/dev/src/jsx-runtime.js +17 -0
  152. package/dist/dev/src/jsx-runtime.js.map +1 -0
  153. package/dist/dev/src/library-symbol-reference.js +5 -0
  154. package/dist/dev/src/library-symbol-reference.js.map +1 -0
  155. package/dist/dev/src/name-policy.js +24 -0
  156. package/dist/dev/src/name-policy.js.map +1 -0
  157. package/dist/dev/src/pretty-string/pretty-string.js +100 -0
  158. package/dist/dev/src/pretty-string/pretty-string.js.map +1 -0
  159. package/dist/dev/src/pretty-string/pretty-string.test.js +38 -0
  160. package/dist/dev/src/pretty-string/pretty-string.test.js.map +1 -0
  161. package/dist/dev/src/print-hook.js +10 -0
  162. package/dist/dev/src/print-hook.js.map +1 -0
  163. package/dist/dev/src/props-combinators.js +109 -0
  164. package/dist/dev/src/props-combinators.js.map +1 -0
  165. package/dist/dev/src/reactive-union-set.js +213 -0
  166. package/dist/dev/src/reactive-union-set.js.map +1 -0
  167. package/dist/dev/src/reactivity.js +426 -0
  168. package/dist/dev/src/reactivity.js.map +1 -0
  169. package/dist/dev/src/refkey.js +167 -0
  170. package/dist/dev/src/refkey.js.map +1 -0
  171. package/dist/dev/src/render-stack.js +251 -0
  172. package/dist/dev/src/render-stack.js.map +1 -0
  173. package/dist/dev/src/render.js +872 -0
  174. package/dist/dev/src/render.js.map +1 -0
  175. package/dist/dev/src/resource.js +124 -0
  176. package/dist/dev/src/resource.js.map +1 -0
  177. package/dist/dev/src/runtime/component.js +41 -0
  178. package/dist/dev/src/runtime/component.js.map +1 -0
  179. package/dist/dev/src/runtime/intrinsic.js +12 -0
  180. package/dist/dev/src/runtime/intrinsic.js.map +1 -0
  181. package/dist/dev/src/scheduler.js +217 -0
  182. package/dist/dev/src/scheduler.js.map +1 -0
  183. package/dist/dev/src/stc.js +40 -0
  184. package/dist/dev/src/stc.js.map +1 -0
  185. package/dist/dev/src/sti.js +31 -0
  186. package/dist/dev/src/sti.js.map +1 -0
  187. package/dist/dev/src/symbols/basic-scope.js +21 -0
  188. package/dist/dev/src/symbols/basic-scope.js.map +1 -0
  189. package/dist/dev/src/symbols/basic-symbol.js +34 -0
  190. package/dist/dev/src/symbols/basic-symbol.js.map +1 -0
  191. package/dist/dev/src/symbols/decl.js +26 -0
  192. package/dist/dev/src/symbols/decl.js.map +1 -0
  193. package/dist/dev/src/symbols/index.js +10 -0
  194. package/dist/dev/src/symbols/index.js.map +1 -0
  195. package/dist/dev/src/symbols/output-scope.js +202 -0
  196. package/dist/dev/src/symbols/output-scope.js.map +1 -0
  197. package/dist/dev/src/symbols/output-space.js +36 -0
  198. package/dist/dev/src/symbols/output-space.js.map +1 -0
  199. package/dist/dev/src/symbols/output-symbol.js +504 -0
  200. package/dist/dev/src/symbols/output-symbol.js.map +1 -0
  201. package/dist/dev/src/symbols/symbol-flow.js +106 -0
  202. package/dist/dev/src/symbols/symbol-flow.js.map +1 -0
  203. package/dist/dev/src/symbols/symbol-slot.js +68 -0
  204. package/dist/dev/src/symbols/symbol-slot.js.map +1 -0
  205. package/dist/dev/src/symbols/symbol-slot.test.js +43 -0
  206. package/dist/dev/src/symbols/symbol-slot.test.js.map +1 -0
  207. package/dist/dev/src/symbols/symbol-table.js +93 -0
  208. package/dist/dev/src/symbols/symbol-table.js.map +1 -0
  209. package/dist/dev/src/tap.js +109 -0
  210. package/dist/dev/src/tap.js.map +1 -0
  211. package/dist/dev/src/trace.js +2 -0
  212. package/dist/dev/src/trace.js.map +1 -0
  213. package/dist/dev/src/tracer.js +180 -0
  214. package/dist/dev/src/tracer.js.map +1 -0
  215. package/dist/dev/src/utils.js +487 -0
  216. package/dist/dev/src/utils.js.map +1 -0
  217. package/dist/dev/src/write-output.js +47 -0
  218. package/dist/dev/src/write-output.js.map +1 -0
  219. package/dist/dev/test/browser-build.test.js +86 -0
  220. package/dist/dev/test/browser-build.test.js.map +1 -0
  221. package/dist/dev/test/children.test.js +44 -0
  222. package/dist/dev/test/children.test.js.map +1 -0
  223. package/dist/dev/test/components/append-file.test.js +394 -0
  224. package/dist/dev/test/components/append-file.test.js.map +1 -0
  225. package/dist/dev/test/components/block.test.js +83 -0
  226. package/dist/dev/test/components/block.test.js.map +1 -0
  227. package/dist/dev/test/components/copy-file.test.js +119 -0
  228. package/dist/dev/test/components/copy-file.test.js.map +1 -0
  229. package/dist/dev/test/components/declaration.test.js +40 -0
  230. package/dist/dev/test/components/declaration.test.js.map +1 -0
  231. package/dist/dev/test/components/list.test.js +250 -0
  232. package/dist/dev/test/components/list.test.js.map +1 -0
  233. package/dist/dev/test/components/prose.test.js +42 -0
  234. package/dist/dev/test/components/prose.test.js.map +1 -0
  235. package/dist/dev/test/components/reference-or-content.test.js +246 -0
  236. package/dist/dev/test/components/reference-or-content.test.js.map +1 -0
  237. package/dist/dev/test/components/source-file.test.js +271 -0
  238. package/dist/dev/test/components/source-file.test.js.map +1 -0
  239. package/dist/dev/test/components/template-file.test.js +200 -0
  240. package/dist/dev/test/components/template-file.test.js.map +1 -0
  241. package/dist/dev/test/components/update-file.test.js +210 -0
  242. package/dist/dev/test/components/update-file.test.js.map +1 -0
  243. package/dist/dev/test/components/wrap.test.js +48 -0
  244. package/dist/dev/test/components/wrap.test.js.map +1 -0
  245. package/dist/dev/test/control-flow/for.test.js +318 -0
  246. package/dist/dev/test/control-flow/for.test.js.map +1 -0
  247. package/dist/dev/test/control-flow/match.test.js +112 -0
  248. package/dist/dev/test/control-flow/match.test.js.map +1 -0
  249. package/dist/dev/test/control-flow/show.test.js +38 -0
  250. package/dist/dev/test/control-flow/show.test.js.map +1 -0
  251. package/dist/dev/test/lazy-isempty.test.js +121 -0
  252. package/dist/dev/test/lazy-isempty.test.js.map +1 -0
  253. package/dist/dev/test/name-policy.test.js +28 -0
  254. package/dist/dev/test/name-policy.test.js.map +1 -0
  255. package/dist/dev/test/props-with-defaults.test.js +94 -0
  256. package/dist/dev/test/props-with-defaults.test.js.map +1 -0
  257. package/dist/dev/test/reactive-union-set-disposers.test.js +98 -0
  258. package/dist/dev/test/reactive-union-set-disposers.test.js.map +1 -0
  259. package/dist/dev/test/reactive-union-set.test.js +171 -0
  260. package/dist/dev/test/reactive-union-set.test.js.map +1 -0
  261. package/dist/dev/test/reactivity/circular-reactives.test.js +62 -0
  262. package/dist/dev/test/reactivity/circular-reactives.test.js.map +1 -0
  263. package/dist/dev/test/reactivity/cleanup.test.js +96 -0
  264. package/dist/dev/test/reactivity/cleanup.test.js.map +1 -0
  265. package/dist/dev/test/reactivity/memo.test.js +17 -0
  266. package/dist/dev/test/reactivity/memo.test.js.map +1 -0
  267. package/dist/dev/test/reactivity/ref-rendering.test.js +38 -0
  268. package/dist/dev/test/reactivity/ref-rendering.test.js.map +1 -0
  269. package/dist/dev/test/reactivity/shallow-reactive.test.js +52 -0
  270. package/dist/dev/test/reactivity/shallow-reactive.test.js.map +1 -0
  271. package/dist/dev/test/reactivity/test.test.js +74 -0
  272. package/dist/dev/test/reactivity/test.test.js.map +1 -0
  273. package/dist/dev/test/reactivity/untrack.test.js +27 -0
  274. package/dist/dev/test/reactivity/untrack.test.js.map +1 -0
  275. package/dist/dev/test/refkey.test.js +36 -0
  276. package/dist/dev/test/refkey.test.js.map +1 -0
  277. package/dist/dev/test/rendering/basic.test.js +194 -0
  278. package/dist/dev/test/rendering/basic.test.js.map +1 -0
  279. package/dist/dev/test/rendering/code.test.js +64 -0
  280. package/dist/dev/test/rendering/code.test.js.map +1 -0
  281. package/dist/dev/test/rendering/formatting.test.js +797 -0
  282. package/dist/dev/test/rendering/formatting.test.js.map +1 -0
  283. package/dist/dev/test/rendering/indent.test.js +183 -0
  284. package/dist/dev/test/rendering/indent.test.js.map +1 -0
  285. package/dist/dev/test/rendering/memoization.test.js +37 -0
  286. package/dist/dev/test/rendering/memoization.test.js.map +1 -0
  287. package/dist/dev/test/rendering/print-render-stack.test.js +287 -0
  288. package/dist/dev/test/rendering/print-render-stack.test.js.map +1 -0
  289. package/dist/dev/test/rendering/refkeys.test.js +37 -0
  290. package/dist/dev/test/rendering/refkeys.test.js.map +1 -0
  291. package/dist/dev/test/scheduler-extended.test.js +96 -0
  292. package/dist/dev/test/scheduler-extended.test.js.map +1 -0
  293. package/dist/dev/test/scheduler.test.js +46 -0
  294. package/dist/dev/test/scheduler.test.js.map +1 -0
  295. package/dist/dev/test/split-props.test.js +78 -0
  296. package/dist/dev/test/split-props.test.js.map +1 -0
  297. package/dist/dev/test/stc.test.js +35 -0
  298. package/dist/dev/test/stc.test.js.map +1 -0
  299. package/dist/dev/test/symbols/output-scope.test.js +180 -0
  300. package/dist/dev/test/symbols/output-scope.test.js.map +1 -0
  301. package/dist/dev/test/symbols/output-symbol.test.js +202 -0
  302. package/dist/dev/test/symbols/output-symbol.test.js.map +1 -0
  303. package/dist/dev/test/symbols/resolution.test.js +487 -0
  304. package/dist/dev/test/symbols/resolution.test.js.map +1 -0
  305. package/dist/dev/test/symbols/symbol-table.test.js +15 -0
  306. package/dist/dev/test/symbols/symbol-table.test.js.map +1 -0
  307. package/dist/dev/test/symbols/utils.js +26 -0
  308. package/dist/dev/test/symbols/utils.js.map +1 -0
  309. package/dist/dev/test/utils.test.js +317 -0
  310. package/dist/dev/test/utils.test.js.map +1 -0
  311. package/dist/dev/testing/create-test-wrapper.js +76 -0
  312. package/dist/dev/testing/create-test-wrapper.js.map +1 -0
  313. package/dist/dev/testing/devtools-utils.js +162 -0
  314. package/dist/dev/testing/devtools-utils.js.map +1 -0
  315. package/dist/dev/testing/extend-expect.js +167 -0
  316. package/dist/dev/testing/extend-expect.js.map +1 -0
  317. package/dist/dev/testing/extend-expect.test.js +234 -0
  318. package/dist/dev/testing/extend-expect.test.js.map +1 -0
  319. package/dist/dev/testing/index.js +4 -0
  320. package/dist/dev/testing/index.js.map +1 -0
  321. package/dist/dev/testing/render.js +23 -0
  322. package/dist/dev/testing/render.js.map +1 -0
  323. package/dist/dev/testing/vitest.d.js +2 -0
  324. package/dist/dev/testing/vitest.d.js.map +1 -0
  325. package/dist/devtools/index.html +29 -17
  326. package/dist/src/binder.d.ts.map +1 -1
  327. package/dist/src/binder.js +5 -0
  328. package/dist/src/binder.js.map +1 -1
  329. package/dist/src/components/For.d.ts.map +1 -1
  330. package/dist/src/components/For.js +1 -1
  331. package/dist/src/components/For.js.map +1 -1
  332. package/dist/src/components/List.d.ts.map +1 -1
  333. package/dist/src/components/List.js +1 -1
  334. package/dist/src/components/List.js.map +1 -1
  335. package/dist/src/components/Switch.d.ts.map +1 -1
  336. package/dist/src/components/Switch.js +1 -1
  337. package/dist/src/components/Switch.js.map +1 -1
  338. package/dist/src/debug/diagnostics.test.js +3 -2
  339. package/dist/src/debug/diagnostics.test.js.map +1 -1
  340. package/dist/src/debug/effects.d.ts +12 -4
  341. package/dist/src/debug/effects.d.ts.map +1 -1
  342. package/dist/src/debug/effects.js +119 -54
  343. package/dist/src/debug/effects.js.map +1 -1
  344. package/dist/src/debug/effects.test.js +213 -41
  345. package/dist/src/debug/effects.test.js.map +1 -1
  346. package/dist/src/debug/files.d.ts.map +1 -1
  347. package/dist/src/debug/files.js +7 -18
  348. package/dist/src/debug/files.js.map +1 -1
  349. package/dist/src/debug/files.test.js +13 -36
  350. package/dist/src/debug/files.test.js.map +1 -1
  351. package/dist/src/debug/index.d.ts +4 -2
  352. package/dist/src/debug/index.d.ts.map +1 -1
  353. package/dist/src/debug/index.js +4 -2
  354. package/dist/src/debug/index.js.map +1 -1
  355. package/dist/src/debug/message-format.test.d.ts +2 -0
  356. package/dist/src/debug/message-format.test.d.ts.map +1 -0
  357. package/dist/src/debug/message-format.test.js +700 -0
  358. package/dist/src/debug/message-format.test.js.map +1 -0
  359. package/dist/src/debug/render-tree-orphans.test.d.ts +2 -0
  360. package/dist/src/debug/render-tree-orphans.test.d.ts.map +1 -0
  361. package/dist/src/debug/render-tree-orphans.test.js +297 -0
  362. package/dist/src/debug/render-tree-orphans.test.js.map +1 -0
  363. package/dist/src/debug/render.d.ts.map +1 -1
  364. package/dist/src/debug/render.js +91 -131
  365. package/dist/src/debug/render.js.map +1 -1
  366. package/dist/src/debug/render.test.js +91 -128
  367. package/dist/src/debug/render.test.js.map +1 -1
  368. package/dist/src/debug/source-map.d.ts +22 -0
  369. package/dist/src/debug/source-map.d.ts.map +1 -0
  370. package/dist/src/debug/source-map.js +111 -0
  371. package/dist/src/debug/source-map.js.map +1 -0
  372. package/dist/src/debug/symbols.d.ts +6 -5
  373. package/dist/src/debug/symbols.d.ts.map +1 -1
  374. package/dist/src/debug/symbols.js +46 -23
  375. package/dist/src/debug/symbols.js.map +1 -1
  376. package/dist/src/debug/symbols.test.js +15 -26
  377. package/dist/src/debug/symbols.test.js.map +1 -1
  378. package/dist/src/debug/trace-writer.d.ts +55 -0
  379. package/dist/src/debug/trace-writer.d.ts.map +1 -0
  380. package/dist/src/debug/trace-writer.js +658 -0
  381. package/dist/src/debug/trace-writer.js.map +1 -0
  382. package/dist/src/debug/trace.d.ts +10 -10
  383. package/dist/src/debug/trace.d.ts.map +1 -1
  384. package/dist/src/debug/trace.js +36 -20
  385. package/dist/src/debug/trace.js.map +1 -1
  386. package/dist/src/devtools/devtools-protocol.d.ts +318 -161
  387. package/dist/src/devtools/devtools-protocol.d.ts.map +1 -1
  388. package/dist/src/devtools/devtools-server.browser.d.ts +0 -5
  389. package/dist/src/devtools/devtools-server.browser.d.ts.map +1 -1
  390. package/dist/src/devtools/devtools-server.browser.js +0 -3
  391. package/dist/src/devtools/devtools-server.browser.js.map +1 -1
  392. package/dist/src/devtools/devtools-server.d.ts +0 -6
  393. package/dist/src/devtools/devtools-server.d.ts.map +1 -1
  394. package/dist/src/devtools/devtools-server.js +212 -24
  395. package/dist/src/devtools/devtools-server.js.map +1 -1
  396. package/dist/src/devtools/devtools-transport.d.ts +2 -2
  397. package/dist/src/devtools/devtools-transport.d.ts.map +1 -1
  398. package/dist/src/devtools/devtools-transport.js +2 -2
  399. package/dist/src/devtools/devtools-transport.js.map +1 -1
  400. package/dist/src/devtools-entry.browser.d.ts +1 -1
  401. package/dist/src/devtools-entry.browser.d.ts.map +1 -1
  402. package/dist/src/devtools-entry.browser.js.map +1 -1
  403. package/dist/src/devtools-entry.d.ts +1 -1
  404. package/dist/src/devtools-entry.d.ts.map +1 -1
  405. package/dist/src/devtools-entry.js.map +1 -1
  406. package/dist/src/diagnostics.d.ts.map +1 -1
  407. package/dist/src/diagnostics.js +5 -5
  408. package/dist/src/diagnostics.js.map +1 -1
  409. package/dist/src/reactivity.d.ts +13 -2
  410. package/dist/src/reactivity.d.ts.map +1 -1
  411. package/dist/src/reactivity.js +96 -13
  412. package/dist/src/reactivity.js.map +1 -1
  413. package/dist/src/render.d.ts.map +1 -1
  414. package/dist/src/render.js +84 -30
  415. package/dist/src/render.js.map +1 -1
  416. package/dist/src/scheduler.d.ts +5 -0
  417. package/dist/src/scheduler.d.ts.map +1 -1
  418. package/dist/src/scheduler.js +94 -23
  419. package/dist/src/scheduler.js.map +1 -1
  420. package/dist/src/utils.d.ts.map +1 -1
  421. package/dist/src/utils.js +11 -5
  422. package/dist/src/utils.js.map +1 -1
  423. package/dist/test/browser-build.test.js +1 -1
  424. package/dist/test/browser-build.test.js.map +1 -1
  425. package/dist/testing/devtools-utils.d.ts +12 -3
  426. package/dist/testing/devtools-utils.d.ts.map +1 -1
  427. package/dist/testing/devtools-utils.js +26 -4
  428. package/dist/testing/devtools-utils.js.map +1 -1
  429. package/dist/tsconfig.tsbuildinfo +1 -1
  430. package/package.json +9 -3
  431. package/src/binder.ts +47 -38
  432. package/src/components/For.tsx +14 -10
  433. package/src/components/List.tsx +7 -4
  434. package/src/components/Switch.tsx +11 -7
  435. package/src/debug/diagnostics.test.tsx +3 -2
  436. package/src/debug/effects.test.tsx +248 -36
  437. package/src/debug/effects.ts +198 -64
  438. package/src/debug/files.test.tsx +15 -35
  439. package/src/debug/files.ts +11 -11
  440. package/src/debug/index.ts +4 -0
  441. package/src/debug/message-format.test.tsx +759 -0
  442. package/src/debug/render-tree-orphans.test.tsx +344 -0
  443. package/src/debug/render.test.tsx +96 -118
  444. package/src/debug/render.ts +196 -125
  445. package/src/debug/source-map.ts +135 -0
  446. package/src/debug/symbols.test.tsx +19 -20
  447. package/src/debug/symbols.ts +106 -23
  448. package/src/debug/trace-writer.ts +969 -0
  449. package/src/debug/trace.ts +41 -28
  450. package/src/devtools/devtools-protocol.ts +361 -176
  451. package/src/devtools/devtools-server.browser.ts +0 -9
  452. package/src/devtools/devtools-server.ts +210 -32
  453. package/src/devtools/devtools-transport.ts +4 -4
  454. package/src/devtools-entry.browser.ts +11 -15
  455. package/src/devtools-entry.ts +9 -15
  456. package/src/diagnostics.ts +14 -5
  457. package/src/reactivity.ts +113 -17
  458. package/src/render.ts +104 -30
  459. package/src/scheduler.ts +145 -26
  460. package/src/utils.tsx +7 -4
  461. package/temp/api.json +142 -20
  462. package/test/browser-build.test.ts +1 -1
  463. package/testing/devtools-utils.ts +46 -4
  464. 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":[]}