@alloy-js/core 0.23.0-dev.11 → 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 (347) 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/src/debug/effects.d.ts.map +1 -1
  326. package/dist/src/debug/effects.js +2 -67
  327. package/dist/src/debug/effects.js.map +1 -1
  328. package/dist/src/debug/render.d.ts.map +1 -1
  329. package/dist/src/debug/render.js +15 -8
  330. package/dist/src/debug/render.js.map +1 -1
  331. package/dist/src/debug/source-map.d.ts +22 -0
  332. package/dist/src/debug/source-map.d.ts.map +1 -0
  333. package/dist/src/debug/source-map.js +111 -0
  334. package/dist/src/debug/source-map.js.map +1 -0
  335. package/dist/src/debug/trace.d.ts.map +1 -1
  336. package/dist/src/debug/trace.js +13 -0
  337. package/dist/src/debug/trace.js.map +1 -1
  338. package/dist/test/browser-build.test.js +1 -1
  339. package/dist/test/browser-build.test.js.map +1 -1
  340. package/dist/tsconfig.tsbuildinfo +1 -1
  341. package/package.json +9 -3
  342. package/src/debug/effects.ts +2 -82
  343. package/src/debug/render.ts +25 -13
  344. package/src/debug/source-map.ts +135 -0
  345. package/src/debug/trace.ts +16 -0
  346. package/test/browser-build.test.ts +1 -1
  347. package/vitest.config.ts +8 -0
@@ -0,0 +1,57 @@
1
+ import { memo as _$memo, createComponent as _$createComponent, mergeProps as _$mergeProps } from "@alloy-js/core/jsx-runtime";
2
+ import { MemberContext } from "../context/member-scope.js";
3
+
4
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
5
+
6
+ import { Scope } from "./Scope.js";
7
+
8
+ /**
9
+ * Declare a member scope by providing an already created scope. The scope is
10
+ * exposed via {@link ScopeContext}.
11
+ */
12
+
13
+ /**
14
+ * Create a member scope by providing a name and optional metadata.
15
+ */
16
+
17
+ /**
18
+ * Declare a member scope, which is a lexical scope whose symbols are provided
19
+ * by the owner symbol.
20
+ *
21
+ * @remarks
22
+ *
23
+ * This is used to create members of a symbol, e.g. for class members and the
24
+ * like. In some languages, this scope may provide symbols which are can be
25
+ * referenced lexically, but in other languages, these members may not be in
26
+ * scope and instead must be referenced via the owner symbol itself.
27
+ */
28
+ export function MemberScope(props) {
29
+ if ("value" in props) {
30
+ const sym = props.value;
31
+ if (!sym.isMemberScope) {
32
+ throw new Error("MemberScope must be passed a value that is a member scope.");
33
+ }
34
+ }
35
+ const context = {
36
+ ownerSymbol: "value" in props ? props.value.ownerSymbol : props.ownerSymbol
37
+ };
38
+ return _$createComponent(Scope, _$mergeProps(props, {
39
+ get children() {
40
+ return _$createComponent(MemberContext.Provider, {
41
+ value: context,
42
+ get children() {
43
+ return props.children;
44
+ }
45
+ }, {
46
+ fileName: import.meta.url,
47
+ lineNumber: 77,
48
+ columnNumber: 7
49
+ });
50
+ }
51
+ }), {
52
+ fileName: import.meta.url,
53
+ lineNumber: 76,
54
+ columnNumber: 5
55
+ });
56
+ }
57
+ //# sourceMappingURL=MemberScope.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["MemberContext","Scope","MemberScope","props","sym","value","isMemberScope","Error","context","ownerSymbol","_$createComponent","_$mergeProps","children","Provider","fileName","import","meta","url","lineNumber","columnNumber"],"sources":["../../../../src/components/MemberScope.tsx"],"sourcesContent":[null],"mappings":";AAAA,SAASA,aAAa,QAAQ,4BAA4B;;AAE1D;;AAKA,SAASC,KAAK;;AAEd;AACA;AACA;AACA;;AAUA;AACA;AACA;;AAwBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,WAAWA,CAACC,KAAuB,EAAE;EACnD,IAAI,OAAO,IAAIA,KAAK,EAAE;IACpB,MAAMC,GAAG,GAAGD,KAAK,CAACE,KAAK;IACvB,IAAI,CAACD,GAAG,CAACE,aAAa,EAAE;MACtB,MAAM,IAAIC,KAAK,CACb,4DACF,CAAC;IACH;EACF;EAEA,MAAMC,OAAsB,GAAG;IAC7BC,WAAW,EACT,OAAO,IAAIN,KAAK,GAAGA,KAAK,CAACE,KAAK,CAACI,WAAW,GAAIN,KAAK,CAACM;EACxD,CAAC;EAED,OAAAC,iBAAA,CACGT,KAAK,EAAAU,YAAA,CAAKR,KAAK;IAAA,IAAAS,SAAA;MAAA,OAAAF,iBAAA,CACbV,aAAa,CAACa,QAAQ;QAACR,KAAK,EAAEG,OAAO;QAAA,IAAAI,SAAA;UAAA,OACnCT,KAAK,CAACS,QAAQ;QAAA;MAAA;QAAAE,QAAA,EAAAC,MAAA,CAAAC,IAAA,CAAAC,GAAA;QAAAC,UAAA;QAAAC,YAAA;MAAA;IAAA;EAAA;IAAAL,QAAA,EAAAC,MAAA,CAAAC,IAAA,CAAAC,GAAA;IAAAC,UAAA;IAAAC,YAAA;EAAA;AAIvB","ignoreList":[]}
@@ -0,0 +1,11 @@
1
+ import { memo as _$memo } from "@alloy-js/core/jsx-runtime";
2
+ import { useContext } from "../context.js";
3
+ import { DeclarationContext } from "../context/declaration.js";
4
+ export function Name() {
5
+ const declSymbol = useContext(DeclarationContext);
6
+ if (!declSymbol) {
7
+ return "";
8
+ }
9
+ return [_$memo(() => declSymbol.name, false, "declSymbol.name")];
10
+ }
11
+ //# sourceMappingURL=Name.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["useContext","DeclarationContext","Name","declSymbol","_$memo","name"],"sources":["../../../../src/components/Name.tsx"],"sourcesContent":[null],"mappings":";AAAA,SAASA,UAAU,QAAQ,eAAe;AAC1C,SAASC,kBAAkB,QAAQ,2BAA2B;AAE9D,OAAO,SAASC,IAAIA,CAAA,EAAG;EACrB,MAAMC,UAAU,GAAGH,UAAU,CAACC,kBAAkB,CAAC;EACjD,IAAI,CAACE,UAAU,EAAE;IACf,OAAO,EAAE;EACX;EAEA,QAAAC,MAAA,OAAUD,UAAU,CAACE,IAAI;AAC3B","ignoreList":[]}
@@ -0,0 +1,72 @@
1
+ import { createComponent as _$createComponent, memo as _$memo } from "@alloy-js/core/jsx-runtime";
2
+ import { createOutputBinder, getSymbolCreator } from "../binder.js";
3
+ import { BinderContext } from "../context/binder.js";
4
+ import { FormatOptions } from "../context/format-options.js";
5
+ import { NamePolicyContext } from "../context/name-policy.js";
6
+ import { SourceDirectory } from "./SourceDirectory.js";
7
+
8
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
9
+
10
+ /**
11
+ * This component is the root component for all your emitted output. Place your
12
+ * various {@link SourceDirectory} and {@link SourceFile} components inside
13
+ * `Output` to create directories and files in your output directory.
14
+ *
15
+ * @see {@link NamePolicyContext}
16
+ */
17
+ export function Output(props) {
18
+ const basePath = props.basePath ?? "./";
19
+ const binder = createOutputBinder({
20
+ nameConflictResolver: props.nameConflictResolver
21
+ });
22
+ const dir = _$createComponent(SourceDirectory, {
23
+ path: basePath,
24
+ get children() {
25
+ return props.children;
26
+ }
27
+ }, {
28
+ fileName: import.meta.url,
29
+ lineNumber: 54,
30
+ columnNumber: 5
31
+ });
32
+ if (props.externals) {
33
+ for (const global of props.externals) {
34
+ getSymbolCreator(global)(binder);
35
+ }
36
+ }
37
+ return _$createComponent(BinderContext.Provider, {
38
+ value: binder,
39
+ get children() {
40
+ return _$createComponent(FormatOptions, {
41
+ get value() {
42
+ return {
43
+ printWidth: props.printWidth,
44
+ tabWidth: props.tabWidth,
45
+ useTabs: props.useTabs
46
+ };
47
+ },
48
+ get children() {
49
+ return _$memo(() => !!props.namePolicy)() ? _$createComponent(NamePolicyContext.Provider, {
50
+ get value() {
51
+ return props.namePolicy;
52
+ },
53
+ children: dir
54
+ }, {
55
+ fileName: import.meta.url,
56
+ lineNumber: 73,
57
+ columnNumber: 11
58
+ }) : dir;
59
+ }
60
+ }, {
61
+ fileName: import.meta.url,
62
+ lineNumber: 65,
63
+ columnNumber: 7
64
+ });
65
+ }
66
+ }, {
67
+ fileName: import.meta.url,
68
+ lineNumber: 64,
69
+ columnNumber: 5
70
+ });
71
+ }
72
+ //# sourceMappingURL=Output.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["createOutputBinder","getSymbolCreator","BinderContext","FormatOptions","NamePolicyContext","SourceDirectory","Output","props","basePath","binder","nameConflictResolver","dir","_$createComponent","path","children","fileName","import","meta","url","lineNumber","columnNumber","externals","global","Provider","value","printWidth","tabWidth","useTabs","_$memo","namePolicy"],"sources":["../../../../src/components/Output.tsx"],"sourcesContent":[null],"mappings":";AAAA,SACEA,kBAAkB,EAClBC,gBAAgB,QAEX,cAAc;AACrB,SAASC,aAAa,QAAQ,sBAAsB;AACpD,SAASC,aAAa,QAAQ,8BAA8B;AAC5D,SAASC,iBAAiB,QAAQ,2BAA2B;AAI7D,SAASC,eAAe,QAAQ,sBAAsB;;AAEtD;;AA0BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,MAAMA,CAACC,KAAkB,EAAE;EACzC,MAAMC,QAAQ,GAAGD,KAAK,CAACC,QAAQ,IAAI,IAAI;EACvC,MAAMC,MAAM,GAAGT,kBAAkB,CAAC;IAChCU,oBAAoB,EAAEH,KAAK,CAACG;EAC9B,CAAC,CAAC;EAEF,MAAMC,GAAG,GAAAC,iBAAA,CACNP,eAAe;IAACQ,IAAI,EAAEL,QAAQ;IAAA,IAAAM,SAAA;MAAA,OAAGP,KAAK,CAACO,QAAQ;IAAA;EAAA;IAAAC,QAAA,EAAAC,MAAA,CAAAC,IAAA,CAAAC,GAAA;IAAAC,UAAA;IAAAC,YAAA;EAAA,EACjD;EAED,IAAIb,KAAK,CAACc,SAAS,EAAE;IACnB,KAAK,MAAMC,MAAM,IAAIf,KAAK,CAACc,SAAS,EAAE;MACpCpB,gBAAgB,CAACqB,MAAM,CAAC,CAACb,MAAM,CAAC;IAClC;EACF;EAEA,OAAAG,iBAAA,CACGV,aAAa,CAACqB,QAAQ;IAACC,KAAK,EAAEf,MAAM;IAAA,IAAAK,SAAA;MAAA,OAAAF,iBAAA,CAClCT,aAAa;QAAA,IACZqB,KAAKA,CAAA;UAAA,OAAE;YACLC,UAAU,EAAElB,KAAK,CAACkB,UAAU;YAC5BC,QAAQ,EAAEnB,KAAK,CAACmB,QAAQ;YACxBC,OAAO,EAAEpB,KAAK,CAACoB;UACjB,CAAC;QAAA;QAAA,IAAAb,SAAA;UAAA,OAEAc,MAAA,SAAArB,KAAK,CAACsB,UAAU,MAAAjB,iBAAA,CACdR,iBAAiB,CAACmB,QAAQ;YAAA,IAACC,KAAKA,CAAA;cAAA,OAAEjB,KAAK,CAACsB,UAAU;YAAA;YAAAf,QAAA,EAChDH;UAAG;YAAAI,QAAA,EAAAC,MAAA,CAAAC,IAAA,CAAAC,GAAA;YAAAC,UAAA;YAAAC,YAAA;UAAA,KAENT,GAAG;QAAA;MAAA;QAAAI,QAAA,EAAAC,MAAA,CAAAC,IAAA,CAAAC,GAAA;QAAAC,UAAA;QAAAC,YAAA;MAAA;IAAA;EAAA;IAAAL,QAAA,EAAAC,MAAA,CAAAC,IAAA,CAAAC,GAAA;IAAAC,UAAA;IAAAC,YAAA;EAAA;AAIb","ignoreList":[]}
@@ -0,0 +1,32 @@
1
+ import { createIntrinsic as _$createIntrinsic } from "@alloy-js/core/jsx-runtime";
2
+ import { computed } from "@vue/reactivity";
3
+ import { childrenArray } from "../utils.js";
4
+ /**
5
+ * Create a block of text which will break once a word exceeds the configured line width.
6
+ * The children are expected to be strings, and a <br /> is added between each word.
7
+ */
8
+ export function Prose(props) {
9
+ const brokenChildren = computed(() => {
10
+ const children = childrenArray(() => props.children);
11
+ return children.map(child => {
12
+ if (typeof child === "string") {
13
+ return child.trim().split(/\s+/).map((word, index, array) => [word, index < array.length - 1 && _$createIntrinsic("br", {}, {
14
+ fileName: import.meta.url,
15
+ lineNumber: 25,
16
+ columnNumber: 56
17
+ })]);
18
+ }
19
+ return child;
20
+ }).flat(2);
21
+ });
22
+ return _$createIntrinsic("fill", {
23
+ get children() {
24
+ return brokenChildren.value;
25
+ }
26
+ }, {
27
+ fileName: import.meta.url,
28
+ lineNumber: 35,
29
+ columnNumber: 10
30
+ });
31
+ }
32
+ //# sourceMappingURL=Prose.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["computed","childrenArray","Prose","props","brokenChildren","children","map","child","trim","split","word","index","array","length","_$createIntrinsic","fileName","import","meta","url","lineNumber","columnNumber","flat","value"],"sources":["../../../../src/components/Prose.tsx"],"sourcesContent":[null],"mappings":";AAAA,SAASA,QAAQ,QAAQ,iBAAiB;AAE1C,SAASC,aAAa;AAMtB;AACA;AACA;AACA;AACA,OAAO,SAASC,KAAKA,CAACC,KAAY,EAAE;EAClC,MAAMC,cAAc,GAAGJ,QAAQ,CAAC,MAAM;IACpC,MAAMK,QAAQ,GAAGJ,aAAa,CAAC,MAAME,KAAK,CAACE,QAAQ,CAAC;IACpD,OAAOA,QAAQ,CACZC,GAAG,CAAEC,KAAK,IAAK;MACd,IAAI,OAAOA,KAAK,KAAK,QAAQ,EAAE;QAC7B,OAAOA,KAAK,CACTC,IAAI,CAAC,CAAC,CACNC,KAAK,CAAC,KAAK,CAAC,CACZH,GAAG,CAAC,CAACI,IAAI,EAAEC,KAAK,EAAEC,KAAK,MAEnBF,IAAI,EACMC,KAAK,GAAGC,KAAK,CAACC,MAAM,GAAG,CAAC,IAAAC,iBAAA;UAAAC,QAAA,EAAAC,MAAA,CAAAC,IAAA,CAAAC,GAAA;UAAAC,UAAA;UAAAC,YAAA;QAAA,EAAU,CAEhD,CAAC;MACN;MAEA,OAAOb,KAAK;IACd,CAAC,CAAC,CACDc,IAAI,CAAC,CAAC,CAAC;EACZ,CAAC,CAAC;EAEF,OAAAP,iBAAA;IAAA,IAAAT,SAAA;MAAA,OAAcD,cAAc,CAACkB,KAAK;IAAA;EAAA;IAAAP,QAAA,EAAAC,MAAA,CAAAC,IAAA,CAAAC,GAAA;IAAAC,UAAA;IAAAC,YAAA;EAAA;AACpC","ignoreList":[]}
@@ -0,0 +1,12 @@
1
+ import { computed } from "@vue/reactivity";
2
+ import { useContext } from "../context.js";
3
+ import { BinderContext } from "../context/binder.js";
4
+ export function ReferenceOrContent(props) {
5
+ const binder = useContext(BinderContext);
6
+ if (!binder) {
7
+ throw new Error("Need binder context to create declarations");
8
+ }
9
+ const sym = binder.getSymbolForRefkey(props.refkey);
10
+ return computed(() => sym.value === undefined ? props.children : props.refkey);
11
+ }
12
+ //# sourceMappingURL=ReferenceOrContent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["computed","useContext","BinderContext","ReferenceOrContent","props","binder","Error","sym","getSymbolForRefkey","refkey","value","undefined","children"],"sources":["../../../../src/components/ReferenceOrContent.tsx"],"sourcesContent":[null],"mappings":"AAAA,SAASA,QAAQ,QAAQ,iBAAiB;AAC1C,SAASC,UAAU,QAAQ,eAAe;AAC1C,SAASC,aAAa,QAAQ,sBAAsB;AASpD,OAAO,SAASC,kBAAkBA,CAACC,KAA8B,EAAE;EACjE,MAAMC,MAAM,GAAGJ,UAAU,CAACC,aAAa,CAAC;EACxC,IAAI,CAACG,MAAM,EAAE;IACX,MAAM,IAAIC,KAAK,CAAC,4CAA4C,CAAC;EAC/D;EAEA,MAAMC,GAAG,GAAGF,MAAM,CAACG,kBAAkB,CAACJ,KAAK,CAACK,MAAM,CAAC;EACnD,OAAOT,QAAQ,CAAC,MACdO,GAAG,CAACG,KAAK,KAAKC,SAAS,GAAGP,KAAK,CAACQ,QAAQ,GAAGR,KAAK,CAACK,MACnD,CAAC;AACH","ignoreList":[]}
@@ -0,0 +1,50 @@
1
+ import { memo as _$memo, createComponent as _$createComponent } from "@alloy-js/core/jsx-runtime";
2
+ import { createScope } from "../binder.js";
3
+ import { ScopeContext, useScope } from "../context/scope.js";
4
+ import { debug } from "../debug/index.js";
5
+ import { BasicScope } from "../symbols/basic-scope.js";
6
+
7
+ /**
8
+ * Declare a scope by providing an already created scope. The scope is merely
9
+ * exposed via {@link ScopeContext}.
10
+ */
11
+
12
+ /**
13
+ * Create a scope by providing a name and optional metadata.
14
+ */
15
+
16
+ /**
17
+ * Declare a scope for this component's children. Any symbols and scopes
18
+ * declared in the children of this component will be in this scope.
19
+ *
20
+ * @see {@link ScopeContext}
21
+ */
22
+ export function Scope(props) {
23
+ let scope;
24
+ if ("value" in props) {
25
+ scope = props.value;
26
+ debug.symbols.relocateScope(scope);
27
+ } else {
28
+ const parentScope = useScope();
29
+ if (parentScope && !(parentScope instanceof BasicScope)) {
30
+ throw new Error("Scope component can only make scopes within a BasicScope");
31
+ }
32
+ const binder = parentScope?.binder;
33
+ scope = createScope(BasicScope, props.name ?? "", parentScope, {
34
+ binder,
35
+ metadata: props.metadata,
36
+ ownerSymbol: props.ownerSymbol
37
+ });
38
+ }
39
+ return _$createComponent(ScopeContext.Provider, {
40
+ value: scope,
41
+ get children() {
42
+ return props.children;
43
+ }
44
+ }, {
45
+ fileName: import.meta.url,
46
+ lineNumber: 73,
47
+ columnNumber: 5
48
+ });
49
+ }
50
+ //# sourceMappingURL=Scope.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["createScope","ScopeContext","useScope","debug","BasicScope","Scope","props","scope","value","symbols","relocateScope","parentScope","Error","binder","name","metadata","ownerSymbol","_$createComponent","Provider","children","fileName","import","meta","url","lineNumber","columnNumber"],"sources":["../../../../src/components/Scope.tsx"],"sourcesContent":[null],"mappings":";AAAA,SAASA,WAAW,QAAQ,cAAc;AAC1C,SAASC,YAAY,EAAEC,QAAQ,QAAQ,qBAAqB;AAC5D,SAASC,KAAK,QAAQ,mBAAmB;AAEzC,SAASC,UAAU,QAAQ,2BAA2B;;AAItD;AACA;AACA;AACA;;AAUA;AACA;AACA;;AAsBA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,KAAKA,CAACC,KAAiB,EAAE;EACvC,IAAIC,KAAkB;EACtB,IAAI,OAAO,IAAID,KAAK,EAAE;IACpBC,KAAK,GAAGD,KAAK,CAACE,KAAK;IACnBL,KAAK,CAACM,OAAO,CAACC,aAAa,CAACH,KAAK,CAAC;EACpC,CAAC,MAAM;IACL,MAAMI,WAAW,GAAGT,QAAQ,CAAC,CAAC;IAC9B,IAAIS,WAAW,IAAI,EAAEA,WAAW,YAAYP,UAAU,CAAC,EAAE;MACvD,MAAM,IAAIQ,KAAK,CACb,0DACF,CAAC;IACH;IACA,MAAMC,MAAM,GAAGF,WAAW,EAAEE,MAAM;IAClCN,KAAK,GAAGP,WAAW,CAACI,UAAU,EAAEE,KAAK,CAACQ,IAAI,IAAI,EAAE,EAAEH,WAAW,EAAE;MAC7DE,MAAM;MACNE,QAAQ,EAAET,KAAK,CAACS,QAAQ;MACxBC,WAAW,EAAEV,KAAK,CAACU;IACrB,CAAC,CAAC;EACJ;EAEA,OAAAC,iBAAA,CACGhB,YAAY,CAACiB,QAAQ;IAACV,KAAK,EAAED,KAAK;IAAA,IAAAY,SAAA;MAAA,OAChCb,KAAK,CAACa,QAAQ;IAAA;EAAA;IAAAC,QAAA,EAAAC,MAAA,CAAAC,IAAA,CAAAC,GAAA;IAAAC,UAAA;IAAAC,YAAA;EAAA;AAGrB","ignoreList":[]}
@@ -0,0 +1,4 @@
1
+ export function Show(props) {
2
+ return () => props.when ? props.children : props.fallback;
3
+ }
4
+ //# sourceMappingURL=Show.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["Show","props","when","children","fallback"],"sources":["../../../../src/components/Show.tsx"],"sourcesContent":[null],"mappings":"AAQA,OAAO,SAASA,IAAIA,CAACC,KAAgB,EAAE;EACrC,OAAO,MAAOA,KAAK,CAACC,IAAI,GAAGD,KAAK,CAACE,QAAQ,GAAGF,KAAK,CAACG,QAAS;AAC7D","ignoreList":[]}
@@ -0,0 +1,41 @@
1
+ import { memo as _$memo, createComponent as _$createComponent } from "@alloy-js/core/jsx-runtime";
2
+ import { join } from "pathe";
3
+ import { useContext } from "../context.js";
4
+ import { SourceDirectoryContext } from "../context/source-directory.js";
5
+ import { getContext, shallowReactive } from "../reactivity.js";
6
+ export function SourceDirectory(props) {
7
+ const parentDir = useContext(SourceDirectoryContext);
8
+ // todo: this can probably just use context.
9
+ const sdPath = parentDir ? join(parentDir.path, props.path) : props.path;
10
+ const nodeContext = getContext();
11
+ const context = createSourceDirectoryContext(props.path, parentDir);
12
+ nodeContext.meta ??= {};
13
+ nodeContext.meta.directory = {
14
+ path: sdPath
15
+ };
16
+ return _$createComponent(SourceDirectoryContext.Provider, {
17
+ value: context,
18
+ get children() {
19
+ return props.children;
20
+ }
21
+ }, {
22
+ fileName: import.meta.url,
23
+ lineNumber: 24,
24
+ columnNumber: 5
25
+ });
26
+ }
27
+ function createSourceDirectoryContext(path = "./", parentDir) {
28
+ const contents = shallowReactive([]);
29
+ const context = {
30
+ path: parentDir ? join(parentDir.path, path) : path,
31
+ contents,
32
+ addContent(content) {
33
+ contents.push(content);
34
+ }
35
+ };
36
+ if (parentDir) {
37
+ parentDir.addContent(context);
38
+ }
39
+ return context;
40
+ }
41
+ //# sourceMappingURL=SourceDirectory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["join","useContext","SourceDirectoryContext","getContext","shallowReactive","SourceDirectory","props","parentDir","sdPath","path","nodeContext","context","createSourceDirectoryContext","meta","directory","_$createComponent","Provider","value","children","fileName","import","url","lineNumber","columnNumber","contents","addContent","content","push"],"sources":["../../../../src/components/SourceDirectory.tsx"],"sourcesContent":[null],"mappings":";AAAA,SAASA,IAAI,QAAQ,OAAO;AAC5B,SAASC,UAAU,QAAQ,eAAe;AAC1C,SAASC,sBAAsB,QAAQ,gCAAgC;AACvE,SAASC,UAAU,EAAEC,eAAe,QAAQ,kBAAkB;AAQ9D,OAAO,SAASC,eAAeA,CAACC,KAA2B,EAAE;EAC3D,MAAMC,SAAS,GAAGN,UAAU,CAACC,sBAAsB,CAAC;EACpD;EACA,MAAMM,MAAM,GAAGD,SAAS,GAAGP,IAAI,CAACO,SAAS,CAACE,IAAI,EAAEH,KAAK,CAACG,IAAI,CAAC,GAAGH,KAAK,CAACG,IAAI;EACxE,MAAMC,WAAW,GAAGP,UAAU,CAAC,CAAE;EACjC,MAAMQ,OAAO,GAAGC,4BAA4B,CAACN,KAAK,CAACG,IAAI,EAAEF,SAAS,CAAC;EAEnEG,WAAW,CAACG,IAAI,KAAK,CAAC,CAAC;EACvBH,WAAW,CAACG,IAAI,CAACC,SAAS,GAAG;IAC3BL,IAAI,EAAED;EACR,CAAC;EACD,OAAAO,iBAAA,CACGb,sBAAsB,CAACc,QAAQ;IAACC,KAAK,EAAEN,OAAO;IAAA,IAAAO,SAAA;MAAA,OAC5CZ,KAAK,CAACY,QAAQ;IAAA;EAAA;IAAAC,QAAA,EAAAC,MAAA,CAAAP,IAAA,CAAAQ,GAAA;IAAAC,UAAA;IAAAC,YAAA;EAAA;AAGrB;AAEA,SAASX,4BAA4BA,CACnCH,IAAY,GAAG,IAAI,EACnBF,SAAkC,EACV;EACxB,MAAMiB,QAAQ,GAAGpB,eAAe,CAAC,EAAS,CAAC;EAC3C,MAAMO,OAA+B,GAAG;IACtCF,IAAI,EAAEF,SAAS,GAAGP,IAAI,CAACO,SAAS,CAACE,IAAI,EAAEA,IAAI,CAAC,GAAGA,IAAI;IACnDe,QAAQ;IACRC,UAAUA,CAACC,OAAO,EAAE;MAClBF,QAAQ,CAACG,IAAI,CAACD,OAAO,CAAC;IACxB;EACF,CAAC;EACD,IAAInB,SAAS,EAAE;IACbA,SAAS,CAACkB,UAAU,CAACd,OAAO,CAAC;EAC/B;EAEA,OAAOA,OAAO;AAChB","ignoreList":[]}
@@ -0,0 +1,52 @@
1
+ import { memo as _$memo, createIntrinsic as _$createIntrinsic, createComponent as _$createComponent } from "@alloy-js/core/jsx-runtime";
2
+ import { join } from "pathe";
3
+ import { useContext } from "../context.js";
4
+ import { useFormatOptions } from "../context/format-options.js";
5
+ import { SourceDirectoryContext } from "../context/source-directory.js";
6
+ import { SourceFileContext } from "../context/source-file.js";
7
+ import { getContext } from "../reactivity.js";
8
+ import { Show } from "./Show.js";
9
+ export function SourceFile(props) {
10
+ const parentDirectory = useContext(SourceDirectoryContext);
11
+ const context = {
12
+ path: join(parentDirectory ? parentDirectory.path : "", props.path),
13
+ filetype: props.filetype,
14
+ reference: props.reference
15
+ };
16
+ parentDirectory?.addContent(context);
17
+ const nodeContext = getContext();
18
+ nodeContext.meta ??= {};
19
+ nodeContext.meta.sourceFile = context;
20
+ nodeContext.meta.printOptions = useFormatOptions({
21
+ printWidth: props.printWidth,
22
+ tabWidth: props.tabWidth,
23
+ useTabs: props.useTabs,
24
+ insertFinalNewLine: props.insertFinalNewLine
25
+ });
26
+ return _$createComponent(SourceFileContext.Provider, {
27
+ value: context,
28
+ get children() {
29
+ return [_$createComponent(Show, {
30
+ get when() {
31
+ return props.header !== undefined;
32
+ },
33
+ get children() {
34
+ return [_$memo(() => props.header, false, "props.header"), _$createIntrinsic("hbr", {}, {
35
+ fileName: import.meta.url,
36
+ lineNumber: 59,
37
+ columnNumber: 9
38
+ })];
39
+ }
40
+ }, {
41
+ fileName: import.meta.url,
42
+ lineNumber: 57,
43
+ columnNumber: 7
44
+ }), _$memo(() => props.children, false, "props.children")];
45
+ }
46
+ }, {
47
+ fileName: import.meta.url,
48
+ lineNumber: 56,
49
+ columnNumber: 5
50
+ });
51
+ }
52
+ //# sourceMappingURL=SourceFile.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["join","useContext","useFormatOptions","SourceDirectoryContext","SourceFileContext","getContext","Show","SourceFile","props","parentDirectory","context","path","filetype","reference","addContent","nodeContext","meta","sourceFile","printOptions","printWidth","tabWidth","useTabs","insertFinalNewLine","_$createComponent","Provider","value","children","when","header","undefined","_$memo","_$createIntrinsic","fileName","import","url","lineNumber","columnNumber"],"sources":["../../../../src/components/SourceFile.tsx"],"sourcesContent":[null],"mappings":";AAAA,SAASA,IAAI,QAAQ,OAAO;AAC5B,SAASC,UAAU,QAAQ,eAAe;AAC1C,SAASC,gBAAgB,QAAQ,8BAA8B;AAC/D,SAASC,sBAAsB,QAAQ,gCAAgC;AACvE,SAASC,iBAAiB,QAAQ,2BAA2B;AAC7D,SAASC,UAAU,QAAQ,kBAAkB;AAI7C,SAASC,IAAI;AA2Bb,OAAO,SAASC,UAAUA,CAACC,KAAsB,EAAE;EACjD,MAAMC,eAAe,GAAGR,UAAU,CAACE,sBAAsB,CAAE;EAC3D,MAAMO,OAA0B,GAAG;IACjCC,IAAI,EAAEX,IAAI,CAACS,eAAe,GAAGA,eAAe,CAACE,IAAI,GAAG,EAAE,EAAEH,KAAK,CAACG,IAAI,CAAC;IACnEC,QAAQ,EAAEJ,KAAK,CAACI,QAAQ;IACxBC,SAAS,EAAEL,KAAK,CAACK;EACnB,CAAC;EACDJ,eAAe,EAAEK,UAAU,CAACJ,OAAO,CAAC;EACpC,MAAMK,WAAW,GAAGV,UAAU,CAAC,CAAE;EACjCU,WAAW,CAACC,IAAI,KAAK,CAAC,CAAC;EACvBD,WAAW,CAACC,IAAI,CAACC,UAAU,GAAGP,OAAO;EACrCK,WAAW,CAACC,IAAI,CAACE,YAAY,GAAGhB,gBAAgB,CAAC;IAC/CiB,UAAU,EAAEX,KAAK,CAACW,UAAU;IAC5BC,QAAQ,EAAEZ,KAAK,CAACY,QAAQ;IACxBC,OAAO,EAAEb,KAAK,CAACa,OAAO;IACtBC,kBAAkB,EAAEd,KAAK,CAACc;EAC5B,CAAC,CAAC;EAEF,OAAAC,iBAAA,CACGnB,iBAAiB,CAACoB,QAAQ;IAACC,KAAK,EAAEf,OAAO;IAAA,IAAAgB,SAAA;MAAA,QAAAH,iBAAA,CACvCjB,IAAI;QAAA,IAACqB,IAAIA,CAAA;UAAA,OAAEnB,KAAK,CAACoB,MAAM,KAAKC,SAAS;QAAA;QAAA,IAAAH,SAAA;UAAA,QAAAI,MAAA,OACnCtB,KAAK,CAACoB,MAAM,0BAAAG,iBAAA;YAAAC,QAAA,EAAAC,MAAA,CAAAjB,IAAA,CAAAkB,GAAA;YAAAC,UAAA;YAAAC,YAAA;UAAA;QAAA;MAAA;QAAAJ,QAAA,EAAAC,MAAA,CAAAjB,IAAA,CAAAkB,GAAA;QAAAC,UAAA;QAAAC,YAAA;MAAA,IAAAN,MAAA,OAGdtB,KAAK,CAACkB,QAAQ;IAAA;EAAA;IAAAM,QAAA,EAAAC,MAAA,CAAAjB,IAAA,CAAAkB,GAAA;IAAAC,UAAA;IAAAC,YAAA;EAAA;AAGrB","ignoreList":[]}
@@ -0,0 +1,20 @@
1
+ import { memo as _$memo, createComponent as _$createComponent } from "@alloy-js/core/jsx-runtime";
2
+ import { List } from "./List.js";
3
+ /**
4
+ * Join child elements with semicolons and hardlines.
5
+ */
6
+ export function StatementList(props) {
7
+ return _$createComponent(List, {
8
+ semicolon: true,
9
+ hardline: true,
10
+ enderPunctuation: true,
11
+ get children() {
12
+ return props.children;
13
+ }
14
+ }, {
15
+ fileName: import.meta.url,
16
+ lineNumber: 13,
17
+ columnNumber: 5
18
+ });
19
+ }
20
+ //# sourceMappingURL=StatementList.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["List","StatementList","props","_$createComponent","semicolon","hardline","enderPunctuation","children","fileName","import","meta","url","lineNumber","columnNumber"],"sources":["../../../../src/components/StatementList.tsx"],"sourcesContent":[null],"mappings":";AACA,SAASA,IAAI;AAMb;AACA;AACA;AACA,OAAO,SAASC,aAAaA,CAACC,KAAyB,EAAE;EACvD,OAAAC,iBAAA,CACGH,IAAI;IAACI,SAAS;IAACC,QAAQ;IAACC,gBAAgB;IAAA,IAAAC,SAAA;MAAA,OACtCL,KAAK,CAACK,QAAQ;IAAA;EAAA;IAAAC,QAAA,EAAAC,MAAA,CAAAC,IAAA,CAAAC,GAAA;IAAAC,UAAA;IAAAC,YAAA;EAAA;AAGrB","ignoreList":[]}
@@ -0,0 +1,42 @@
1
+ import { memo } from "../reactivity.js";
2
+ import { taggedComponent } from "../runtime/component.js";
3
+ import { childrenArray, findKeyedChildren } from "../utils.js";
4
+ /**
5
+ * Conditionally render blocks of content based on the `when` prop of nested
6
+ * {@link Match} components.
7
+ *
8
+ * @example
9
+ *
10
+ * ```tsx
11
+ * <Switch>
12
+ * <Match when={someCondition}>
13
+ * <div>Condition met!</div>
14
+ * </Match>
15
+ * <Match else>
16
+ * <div>Condition not met!</div>
17
+ * </Match>
18
+ * </Switch>
19
+ * ```
20
+ */
21
+ export function Switch(props) {
22
+ const children = childrenArray(() => props.children);
23
+ const matches = findKeyedChildren(children, matchTag);
24
+ return memo(() => {
25
+ for (const match of matches) {
26
+ if (match.props.when || match.props.else) {
27
+ return match.props.children;
28
+ }
29
+ }
30
+ return undefined;
31
+ }, undefined, "Switch");
32
+ }
33
+ export const matchTag = Symbol();
34
+
35
+ /**
36
+ * The Match component is used inside of a {@link Switch} component to
37
+ * define conditionally rendered blocks of content.
38
+ */
39
+ export const Match = taggedComponent(matchTag, props => {
40
+ return () => props.when ? props.children : undefined;
41
+ });
42
+ //# sourceMappingURL=Switch.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["memo","taggedComponent","childrenArray","findKeyedChildren","Switch","props","children","matches","matchTag","match","when","else","undefined","Symbol","Match"],"sources":["../../../../src/components/Switch.tsx"],"sourcesContent":[null],"mappings":"AAAA,SAASA,IAAI,QAAQ,kBAAkB;AACvC,SAAwBC,eAAe,QAAQ,yBAAyB;AACxE,SAASC,aAAa,EAAEC,iBAAiB,QAAQ,aAAa;AAM9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,MAAMA,CAACC,KAAkB,EAAE;EACzC,MAAMC,QAAQ,GAAGJ,aAAa,CAAC,MAAMG,KAAK,CAACC,QAAQ,CAAC;EACpD,MAAMC,OAAO,GAAGJ,iBAAiB,CAACG,QAAQ,EAAEE,QAAQ,CAAC;EAErD,OAAOR,IAAI,CACT,MAAM;IACJ,KAAK,MAAMS,KAAK,IAAIF,OAAO,EAAE;MAC3B,IAAIE,KAAK,CAACJ,KAAK,CAACK,IAAI,IAAID,KAAK,CAACJ,KAAK,CAACM,IAAI,EAAE;QACxC,OAAOF,KAAK,CAACJ,KAAK,CAACC,QAAQ;MAC7B;IACF;IAEA,OAAOM,SAAS;EAClB,CAAC,EACDA,SAAS,EACT,QACF,CAAC;AACH;AAgBA,OAAO,MAAMJ,QAAQ,GAAGK,MAAM,CAAC,CAAC;;AAEhC;AACA;AACA;AACA;AACA,OAAO,MAAMC,KAAK,GAAGb,eAAe,CAACO,QAAQ,EAAGH,KAAiB,IAAK;EACpE,OAAO,MAAOA,KAAK,CAACK,IAAI,GAAGL,KAAK,CAACC,QAAQ,GAAGM,SAAU;AACxD,CAAC,CAAC","ignoreList":[]}
@@ -0,0 +1,153 @@
1
+ import { createComponent as _$createComponent } from "@alloy-js/core/jsx-runtime";
2
+ import { computed } from "@vue/reactivity";
3
+ import { emitDiagnostic } from "../diagnostics.js";
4
+ import { createFileResource } from "../resource.js";
5
+ import { isComponentCreator } from "../runtime/component.js";
6
+ import { childrenArray } from "../utils.js";
7
+ import { SourceFile } from "./SourceFile.js";
8
+ /**
9
+ * A component that reads a template file and replaces variable placeholders
10
+ * with actual values.
11
+ *
12
+ * Template files can contain variable placeholders in the format
13
+ * `{{ variable_name }}` which will be replaced with values from `TemplateVariable`
14
+ * children components. Whitespace around variable names is ignored, so
15
+ * `{{ name }}`, `{{name}}`, and `{{ name }}` are all equivalent.
16
+ *
17
+ * @example
18
+ * Basic usage with template variables:
19
+ * ```tsx
20
+ * // Template file content (greeting.txt):
21
+ * // "Hello {{ name }}! You are {{ age }} years old."
22
+ *
23
+ * <TemplateFile src="greeting.txt" path="output.txt">
24
+ * <TemplateVariable name="name" value="John" />
25
+ * <TemplateVariable name="age" value="25" />
26
+ * </TemplateFile>
27
+ * ```
28
+ *
29
+ * @example
30
+ * Using children instead of value prop:
31
+ * ```tsx
32
+ * // Template file content (welcome.txt):
33
+ * // "Welcome {{ greeting }}!"
34
+ *
35
+ * <TemplateFile src="welcome.txt" path="output.txt">
36
+ * <TemplateVariable name="greeting">Hello World</TemplateVariable>
37
+ * </TemplateFile>
38
+ * ```
39
+ *
40
+ * @example
41
+ * Complex template with multiple variables:
42
+ * ```tsx
43
+ * // Template file content (profile.txt):
44
+ * // "Name: {{ name }}\nAge: {{ age }}\nLocation: {{ location }}"
45
+ *
46
+ * <TemplateFile src="profile.txt" path="profile-output.txt">
47
+ * <TemplateVariable name="name" value="Alice" />
48
+ * <TemplateVariable name="age">30</TemplateVariable>
49
+ * <TemplateVariable name="location" value="New York" />
50
+ * </TemplateFile>
51
+ * ```
52
+ */
53
+ export function TemplateFile(props) {
54
+ // Get all children and filter for TemplateVariable components
55
+ const children = childrenArray(() => props.children);
56
+ const templateVariables = {};
57
+
58
+ // Extract variable values from TemplateVariable children
59
+ for (const child of children) {
60
+ if (!isComponentCreator(child, TemplateVariable)) {
61
+ continue;
62
+ }
63
+ const variableProps = child.props;
64
+ let value;
65
+ if ("children" in variableProps && variableProps.children !== undefined) {
66
+ value = variableProps.children;
67
+ } else if ("value" in variableProps) {
68
+ value = variableProps.value;
69
+ } else {
70
+ emitDiagnostic({
71
+ message: `TemplateVariable "${variableProps.name}" must have either children or value`,
72
+ severity: "error"
73
+ });
74
+ // Still register the variable to avoid duplicate diagnostics
75
+ value = "";
76
+ }
77
+ templateVariables[variableProps.name] = value;
78
+ }
79
+ const templateResource = createFileResource(props.src);
80
+ const fileContent = computed(() => {
81
+ if (templateResource.loading) {
82
+ return;
83
+ }
84
+ if (templateResource.error) {
85
+ emitDiagnostic({
86
+ message: `Failed to read template file "${props.src}": ${templateResource.error}`,
87
+ severity: "error"
88
+ });
89
+ return "";
90
+ }
91
+ const templateContent = templateResource.data;
92
+
93
+ // Parse template and replace variables
94
+ const result = [];
95
+ let lastIndex = 0;
96
+
97
+ // Match {{ var_name }} patterns
98
+ const variableRegex = /\{\{\s*(\w+)\s*\}\}/g;
99
+ let match;
100
+ while ((match = variableRegex.exec(templateContent)) !== null) {
101
+ const [fullMatch, variableName] = match;
102
+ const matchStart = match.index;
103
+
104
+ // Add content before the variable
105
+ if (matchStart > lastIndex) {
106
+ const beforeContent = templateContent.slice(lastIndex, matchStart);
107
+ if (beforeContent) {
108
+ result.push(beforeContent);
109
+ }
110
+ }
111
+
112
+ // Add the variable value
113
+ if (variableName in templateVariables) {
114
+ result.push(templateVariables[variableName]);
115
+ } else {
116
+ emitDiagnostic({
117
+ message: `Template variable "${variableName}" not found in TemplateVariable children`,
118
+ severity: "error"
119
+ });
120
+ // Keep the placeholder in the output to make the error visible
121
+ result.push(`{{ ${variableName} }}`);
122
+ }
123
+ lastIndex = matchStart + fullMatch.length;
124
+ }
125
+
126
+ // Add remaining content after the last variable
127
+ if (lastIndex < templateContent.length) {
128
+ const remainingContent = templateContent.slice(lastIndex);
129
+ if (remainingContent) {
130
+ result.push(remainingContent);
131
+ }
132
+ }
133
+ return result;
134
+ });
135
+ return _$createComponent(SourceFile, {
136
+ get path() {
137
+ return props.path;
138
+ },
139
+ filetype: "text/plain",
140
+ children: fileContent
141
+ }, {
142
+ fileName: import.meta.url,
143
+ lineNumber: 163,
144
+ columnNumber: 5
145
+ });
146
+ }
147
+ export function TemplateVariable(props) {
148
+ /**
149
+ * This component does nothing except hold props which are retrieved by
150
+ * the `TemplateFile` component.
151
+ */
152
+ }
153
+ //# sourceMappingURL=TemplateFile.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["computed","emitDiagnostic","createFileResource","isComponentCreator","childrenArray","SourceFile","TemplateFile","props","children","templateVariables","child","TemplateVariable","variableProps","value","undefined","message","name","severity","templateResource","src","fileContent","loading","error","templateContent","data","result","lastIndex","variableRegex","match","exec","fullMatch","variableName","matchStart","index","beforeContent","slice","push","length","remainingContent","_$createComponent","path","filetype","fileName","import","meta","url","lineNumber","columnNumber"],"sources":["../../../../src/components/TemplateFile.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}