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

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 (337) hide show
  1. package/CHANGELOG.md +0 -22
  2. package/dist/devtools/index.html +80 -0
  3. package/dist/src/binder.d.ts +2 -0
  4. package/dist/src/binder.d.ts.map +1 -1
  5. package/dist/src/binder.js +60 -12
  6. package/dist/src/binder.js.map +1 -1
  7. package/dist/src/components/AccessExpression.d.ts +78 -0
  8. package/dist/src/components/AccessExpression.d.ts.map +1 -0
  9. package/dist/src/components/AccessExpression.js +218 -0
  10. package/dist/src/components/AccessExpression.js.map +1 -0
  11. package/dist/src/components/AccessExpression.test.d.ts +2 -0
  12. package/dist/src/components/AccessExpression.test.d.ts.map +1 -0
  13. package/dist/src/components/AccessExpression.test.js +137 -0
  14. package/dist/src/components/AccessExpression.test.js.map +1 -0
  15. package/dist/src/components/AppendFile.d.ts.map +1 -1
  16. package/dist/src/components/AppendFile.js +14 -3
  17. package/dist/src/components/AppendFile.js.map +1 -1
  18. package/dist/src/components/Block.js +1 -1
  19. package/dist/src/components/Block.js.map +1 -1
  20. package/dist/src/components/Declaration.d.ts.map +1 -1
  21. package/dist/src/components/Declaration.js +2 -1
  22. package/dist/src/components/Declaration.js.map +1 -1
  23. package/dist/src/components/For.d.ts.map +1 -1
  24. package/dist/src/components/For.js +1 -1
  25. package/dist/src/components/For.js.map +1 -1
  26. package/dist/src/components/List.d.ts.map +1 -1
  27. package/dist/src/components/List.js +1 -1
  28. package/dist/src/components/List.js.map +1 -1
  29. package/dist/src/components/Prose.js +2 -2
  30. package/dist/src/components/Prose.js.map +1 -1
  31. package/dist/src/components/Scope.d.ts.map +1 -1
  32. package/dist/src/components/Scope.js +6 -1
  33. package/dist/src/components/Scope.js.map +1 -1
  34. package/dist/src/components/SourceDirectory.d.ts.map +1 -1
  35. package/dist/src/components/SourceDirectory.js +1 -2
  36. package/dist/src/components/SourceDirectory.js.map +1 -1
  37. package/dist/src/components/Switch.d.ts.map +1 -1
  38. package/dist/src/components/Switch.js +1 -1
  39. package/dist/src/components/Switch.js.map +1 -1
  40. package/dist/src/components/TemplateFile.d.ts.map +1 -1
  41. package/dist/src/components/TemplateFile.js +18 -3
  42. package/dist/src/components/TemplateFile.js.map +1 -1
  43. package/dist/src/components/index.d.ts +1 -0
  44. package/dist/src/components/index.d.ts.map +1 -1
  45. package/dist/src/components/index.js +1 -0
  46. package/dist/src/components/index.js.map +1 -1
  47. package/dist/src/content-slot.d.ts.map +1 -1
  48. package/dist/src/content-slot.js +7 -6
  49. package/dist/src/content-slot.js.map +1 -1
  50. package/dist/src/context.d.ts.map +1 -1
  51. package/dist/src/context.js +10 -3
  52. package/dist/src/context.js.map +1 -1
  53. package/dist/src/debug/cli.d.ts +6 -0
  54. package/dist/src/debug/cli.d.ts.map +1 -0
  55. package/dist/src/{debug.js → debug/cli.js} +79 -82
  56. package/dist/src/debug/cli.js.map +1 -0
  57. package/dist/src/debug/diagnostics.test.d.ts +2 -0
  58. package/dist/src/debug/diagnostics.test.d.ts.map +1 -0
  59. package/dist/src/debug/diagnostics.test.js +46 -0
  60. package/dist/src/debug/diagnostics.test.js.map +1 -0
  61. package/dist/src/debug/effects.d.ts +81 -0
  62. package/dist/src/debug/effects.d.ts.map +1 -0
  63. package/dist/src/debug/effects.js +358 -0
  64. package/dist/src/debug/effects.js.map +1 -0
  65. package/dist/src/debug/effects.test.d.ts +2 -0
  66. package/dist/src/debug/effects.test.d.ts.map +1 -0
  67. package/dist/src/debug/effects.test.js +256 -0
  68. package/dist/src/debug/effects.test.js.map +1 -0
  69. package/dist/src/debug/files.d.ts +14 -0
  70. package/dist/src/debug/files.d.ts.map +1 -0
  71. package/dist/src/debug/files.js +29 -0
  72. package/dist/src/debug/files.js.map +1 -0
  73. package/dist/src/debug/files.test.d.ts +2 -0
  74. package/dist/src/debug/files.test.d.ts.map +1 -0
  75. package/dist/src/debug/files.test.js +66 -0
  76. package/dist/src/debug/files.test.js.map +1 -0
  77. package/dist/src/debug/index.d.ts +63 -0
  78. package/dist/src/debug/index.d.ts.map +1 -0
  79. package/dist/src/debug/index.js +71 -0
  80. package/dist/src/debug/index.js.map +1 -0
  81. package/dist/src/debug/message-format.test.d.ts +2 -0
  82. package/dist/src/debug/message-format.test.d.ts.map +1 -0
  83. package/dist/src/debug/message-format.test.js +700 -0
  84. package/dist/src/debug/message-format.test.js.map +1 -0
  85. package/dist/src/debug/render-tree-orphans.test.d.ts +2 -0
  86. package/dist/src/debug/render-tree-orphans.test.d.ts.map +1 -0
  87. package/dist/src/debug/render-tree-orphans.test.js +297 -0
  88. package/dist/src/debug/render-tree-orphans.test.js.map +1 -0
  89. package/dist/src/debug/render.d.ts +57 -0
  90. package/dist/src/debug/render.d.ts.map +1 -0
  91. package/dist/src/debug/render.js +472 -0
  92. package/dist/src/debug/render.js.map +1 -0
  93. package/dist/src/debug/render.test.d.ts +2 -0
  94. package/dist/src/debug/render.test.d.ts.map +1 -0
  95. package/dist/src/debug/render.test.js +291 -0
  96. package/dist/src/debug/render.test.js.map +1 -0
  97. package/dist/src/debug/serialize.d.ts +9 -0
  98. package/dist/src/debug/serialize.d.ts.map +1 -0
  99. package/dist/src/debug/serialize.js +70 -0
  100. package/dist/src/debug/serialize.js.map +1 -0
  101. package/dist/src/debug/symbols.d.ts +16 -0
  102. package/dist/src/debug/symbols.d.ts.map +1 -0
  103. package/dist/src/debug/symbols.js +196 -0
  104. package/dist/src/debug/symbols.js.map +1 -0
  105. package/dist/src/debug/symbols.test.d.ts +2 -0
  106. package/dist/src/debug/symbols.test.d.ts.map +1 -0
  107. package/dist/src/debug/symbols.test.js +93 -0
  108. package/dist/src/debug/symbols.test.js.map +1 -0
  109. package/dist/src/debug/trace-writer.d.ts +55 -0
  110. package/dist/src/debug/trace-writer.d.ts.map +1 -0
  111. package/dist/src/debug/trace-writer.js +658 -0
  112. package/dist/src/debug/trace-writer.js.map +1 -0
  113. package/dist/src/debug/trace.d.ts +342 -0
  114. package/dist/src/debug/trace.d.ts.map +1 -0
  115. package/dist/src/debug/trace.js +446 -0
  116. package/dist/src/debug/trace.js.map +1 -0
  117. package/dist/src/devtools/devtools-protocol.d.ts +389 -0
  118. package/dist/src/devtools/devtools-protocol.d.ts.map +1 -0
  119. package/dist/src/devtools/devtools-protocol.js +2 -0
  120. package/dist/src/devtools/devtools-protocol.js.map +1 -0
  121. package/dist/src/devtools/devtools-server.browser.d.ts +23 -0
  122. package/dist/src/devtools/devtools-server.browser.d.ts.map +1 -0
  123. package/dist/src/devtools/devtools-server.browser.js +33 -0
  124. package/dist/src/devtools/devtools-server.browser.js.map +1 -0
  125. package/dist/src/devtools/devtools-server.d.ts +66 -0
  126. package/dist/src/devtools/devtools-server.d.ts.map +1 -0
  127. package/dist/src/devtools/devtools-server.js +444 -0
  128. package/dist/src/devtools/devtools-server.js.map +1 -0
  129. package/dist/src/devtools/devtools-transport.d.ts +23 -0
  130. package/dist/src/devtools/devtools-transport.d.ts.map +1 -0
  131. package/dist/src/devtools/devtools-transport.js +114 -0
  132. package/dist/src/devtools/devtools-transport.js.map +1 -0
  133. package/dist/src/devtools-entry.browser.d.ts +4 -0
  134. package/dist/src/devtools-entry.browser.d.ts.map +1 -0
  135. package/dist/src/devtools-entry.browser.js +2 -0
  136. package/dist/src/devtools-entry.browser.js.map +1 -0
  137. package/dist/src/devtools-entry.d.ts +4 -0
  138. package/dist/src/devtools-entry.d.ts.map +1 -0
  139. package/dist/src/devtools-entry.js +2 -0
  140. package/dist/src/devtools-entry.js.map +1 -0
  141. package/dist/src/diagnostics.d.ts +34 -0
  142. package/dist/src/diagnostics.d.ts.map +1 -0
  143. package/dist/src/diagnostics.js +89 -0
  144. package/dist/src/diagnostics.js.map +1 -0
  145. package/dist/src/index.d.ts +3 -2
  146. package/dist/src/index.d.ts.map +1 -1
  147. package/dist/src/index.js +3 -2
  148. package/dist/src/index.js.map +1 -1
  149. package/dist/src/print-hook.d.ts +14 -0
  150. package/dist/src/print-hook.d.ts.map +1 -0
  151. package/dist/src/print-hook.js +10 -0
  152. package/dist/src/print-hook.js.map +1 -0
  153. package/dist/src/reactive-union-set.d.ts.map +1 -1
  154. package/dist/src/reactive-union-set.js +28 -3
  155. package/dist/src/reactive-union-set.js.map +1 -1
  156. package/dist/src/reactivity.d.ts +60 -7
  157. package/dist/src/reactivity.d.ts.map +1 -1
  158. package/dist/src/reactivity.js +308 -39
  159. package/dist/src/reactivity.js.map +1 -1
  160. package/dist/src/render-stack.d.ts +18 -1
  161. package/dist/src/render-stack.d.ts.map +1 -1
  162. package/dist/src/render-stack.js +61 -1
  163. package/dist/src/render-stack.js.map +1 -1
  164. package/dist/src/render.d.ts +8 -15
  165. package/dist/src/render.d.ts.map +1 -1
  166. package/dist/src/render.js +424 -109
  167. package/dist/src/render.js.map +1 -1
  168. package/dist/src/resource.d.ts.map +1 -1
  169. package/dist/src/resource.js +5 -0
  170. package/dist/src/resource.js.map +1 -1
  171. package/dist/src/scheduler.d.ts +13 -0
  172. package/dist/src/scheduler.d.ts.map +1 -1
  173. package/dist/src/scheduler.js +150 -13
  174. package/dist/src/scheduler.js.map +1 -1
  175. package/dist/src/symbols/basic-symbol.d.ts.map +1 -1
  176. package/dist/src/symbols/basic-symbol.js +6 -1
  177. package/dist/src/symbols/basic-symbol.js.map +1 -1
  178. package/dist/src/symbols/decl.d.ts.map +1 -1
  179. package/dist/src/symbols/decl.js +5 -1
  180. package/dist/src/symbols/decl.js.map +1 -1
  181. package/dist/src/symbols/output-scope.d.ts +2 -1
  182. package/dist/src/symbols/output-scope.d.ts.map +1 -1
  183. package/dist/src/symbols/output-scope.js +13 -8
  184. package/dist/src/symbols/output-scope.js.map +1 -1
  185. package/dist/src/symbols/output-symbol.d.ts +1 -0
  186. package/dist/src/symbols/output-symbol.d.ts.map +1 -1
  187. package/dist/src/symbols/output-symbol.js +25 -8
  188. package/dist/src/symbols/output-symbol.js.map +1 -1
  189. package/dist/src/symbols/symbol-flow.d.ts.map +1 -1
  190. package/dist/src/symbols/symbol-flow.js +24 -8
  191. package/dist/src/symbols/symbol-flow.js.map +1 -1
  192. package/dist/src/symbols/symbol-slot.d.ts.map +1 -1
  193. package/dist/src/symbols/symbol-slot.js +15 -0
  194. package/dist/src/symbols/symbol-slot.js.map +1 -1
  195. package/dist/src/symbols/symbol-slot.test.d.ts +2 -0
  196. package/dist/src/symbols/symbol-slot.test.d.ts.map +1 -0
  197. package/dist/src/symbols/symbol-slot.test.js +35 -0
  198. package/dist/src/symbols/symbol-slot.test.js.map +1 -0
  199. package/dist/src/symbols/symbol-table.d.ts.map +1 -1
  200. package/dist/src/symbols/symbol-table.js +6 -5
  201. package/dist/src/symbols/symbol-table.js.map +1 -1
  202. package/dist/src/trace.d.ts +2 -0
  203. package/dist/src/trace.d.ts.map +1 -0
  204. package/dist/src/trace.js +2 -0
  205. package/dist/src/trace.js.map +1 -0
  206. package/dist/src/tracer.d.ts +2 -228
  207. package/dist/src/tracer.d.ts.map +1 -1
  208. package/dist/src/tracer.js +5 -298
  209. package/dist/src/tracer.js.map +1 -1
  210. package/dist/src/utils.d.ts.map +1 -1
  211. package/dist/src/utils.js +17 -9
  212. package/dist/src/utils.js.map +1 -1
  213. package/dist/test/components/append-file.test.d.ts.map +1 -1
  214. package/dist/test/components/append-file.test.js +18 -10
  215. package/dist/test/components/append-file.test.js.map +1 -1
  216. package/dist/test/components/template-file.test.d.ts.map +1 -1
  217. package/dist/test/components/template-file.test.js +6 -4
  218. package/dist/test/components/template-file.test.js.map +1 -1
  219. package/dist/test/lazy-isempty.test.d.ts +2 -0
  220. package/dist/test/lazy-isempty.test.d.ts.map +1 -0
  221. package/dist/test/lazy-isempty.test.js +89 -0
  222. package/dist/test/lazy-isempty.test.js.map +1 -0
  223. package/dist/test/reactive-union-set-disposers.test.d.ts +2 -0
  224. package/dist/test/reactive-union-set-disposers.test.d.ts.map +1 -0
  225. package/dist/test/reactive-union-set-disposers.test.js +98 -0
  226. package/dist/test/reactive-union-set-disposers.test.js.map +1 -0
  227. package/dist/test/reactivity/shallow-reactive.test.d.ts +2 -0
  228. package/dist/test/reactivity/shallow-reactive.test.d.ts.map +1 -0
  229. package/dist/test/reactivity/shallow-reactive.test.js +52 -0
  230. package/dist/test/reactivity/shallow-reactive.test.js.map +1 -0
  231. package/dist/test/rendering/basic.test.js +3 -0
  232. package/dist/test/rendering/basic.test.js.map +1 -1
  233. package/dist/test/rendering/print-render-stack.test.d.ts.map +1 -1
  234. package/dist/test/rendering/print-render-stack.test.js +91 -98
  235. package/dist/test/rendering/print-render-stack.test.js.map +1 -1
  236. package/dist/test/scheduler-extended.test.d.ts +2 -0
  237. package/dist/test/scheduler-extended.test.d.ts.map +1 -0
  238. package/dist/test/scheduler-extended.test.js +96 -0
  239. package/dist/test/scheduler-extended.test.js.map +1 -0
  240. package/dist/test/scheduler.test.d.ts +2 -0
  241. package/dist/test/scheduler.test.d.ts.map +1 -0
  242. package/dist/test/scheduler.test.js +46 -0
  243. package/dist/test/scheduler.test.js.map +1 -0
  244. package/dist/testing/create-test-wrapper.d.ts +1 -1
  245. package/dist/testing/create-test-wrapper.d.ts.map +1 -1
  246. package/dist/testing/create-test-wrapper.js +1 -1
  247. package/dist/testing/create-test-wrapper.js.map +1 -1
  248. package/dist/testing/devtools-utils.d.ts +35 -0
  249. package/dist/testing/devtools-utils.d.ts.map +1 -0
  250. package/dist/testing/devtools-utils.js +162 -0
  251. package/dist/testing/devtools-utils.js.map +1 -0
  252. package/dist/testing/extend-expect.d.ts.map +1 -1
  253. package/dist/testing/extend-expect.js +63 -1
  254. package/dist/testing/extend-expect.js.map +1 -1
  255. package/dist/testing/render.d.ts +2 -2
  256. package/dist/testing/render.d.ts.map +1 -1
  257. package/dist/testing/render.js +2 -2
  258. package/dist/testing/render.js.map +1 -1
  259. package/dist/tsconfig.tsbuildinfo +1 -1
  260. package/package.json +21 -7
  261. package/scripts/copy-devtools-ui.mjs +26 -0
  262. package/src/binder.ts +117 -53
  263. package/src/components/AccessExpression.test.tsx +132 -0
  264. package/src/components/AccessExpression.tsx +344 -0
  265. package/src/components/AppendFile.tsx +14 -9
  266. package/src/components/Block.tsx +1 -1
  267. package/src/components/Declaration.tsx +2 -1
  268. package/src/components/For.tsx +14 -10
  269. package/src/components/List.tsx +7 -4
  270. package/src/components/Prose.tsx +1 -1
  271. package/src/components/Scope.tsx +6 -1
  272. package/src/components/SourceDirectory.tsx +1 -2
  273. package/src/components/Switch.tsx +11 -7
  274. package/src/components/TemplateFile.tsx +18 -9
  275. package/src/components/index.tsx +1 -0
  276. package/src/content-slot.tsx +7 -7
  277. package/src/context.ts +17 -6
  278. package/src/{debug.ts → debug/cli.ts} +114 -125
  279. package/src/debug/diagnostics.test.tsx +56 -0
  280. package/src/debug/effects.test.tsx +301 -0
  281. package/src/debug/effects.ts +531 -0
  282. package/src/debug/files.test.tsx +76 -0
  283. package/src/debug/files.ts +40 -0
  284. package/src/debug/index.ts +132 -0
  285. package/src/debug/message-format.test.tsx +759 -0
  286. package/src/debug/render-tree-orphans.test.tsx +344 -0
  287. package/src/debug/render.test.tsx +357 -0
  288. package/src/debug/render.ts +698 -0
  289. package/src/debug/serialize.ts +85 -0
  290. package/src/debug/symbols.test.tsx +105 -0
  291. package/src/debug/symbols.ts +322 -0
  292. package/src/debug/trace-writer.ts +969 -0
  293. package/src/debug/trace.ts +309 -0
  294. package/src/devtools/devtools-protocol.ts +497 -0
  295. package/src/devtools/devtools-server.browser.ts +62 -0
  296. package/src/devtools/devtools-server.ts +468 -0
  297. package/src/devtools/devtools-transport.ts +154 -0
  298. package/src/devtools-entry.browser.ts +48 -0
  299. package/src/devtools-entry.ts +48 -0
  300. package/src/diagnostics.ts +150 -0
  301. package/src/index.ts +2 -7
  302. package/src/print-hook.ts +22 -0
  303. package/src/reactive-union-set.ts +85 -44
  304. package/src/reactivity.ts +396 -58
  305. package/src/render-stack.ts +73 -1
  306. package/src/render.ts +544 -161
  307. package/src/resource.ts +28 -19
  308. package/src/scheduler.ts +209 -14
  309. package/src/symbols/basic-symbol.ts +6 -1
  310. package/src/symbols/decl.ts +5 -1
  311. package/src/symbols/output-scope.ts +21 -13
  312. package/src/symbols/output-symbol.ts +34 -14
  313. package/src/symbols/symbol-flow.ts +76 -39
  314. package/src/symbols/symbol-slot.test.tsx +41 -0
  315. package/src/symbols/symbol-slot.tsx +47 -20
  316. package/src/symbols/symbol-table.ts +6 -10
  317. package/src/trace.ts +1 -0
  318. package/src/tracer.ts +13 -242
  319. package/src/utils.tsx +31 -21
  320. package/temp/api.json +5700 -3015
  321. package/test/components/append-file.test.tsx +36 -29
  322. package/test/components/template-file.test.tsx +11 -11
  323. package/test/lazy-isempty.test.tsx +106 -0
  324. package/test/reactive-union-set-disposers.test.tsx +112 -0
  325. package/test/reactivity/shallow-reactive.test.tsx +56 -0
  326. package/test/rendering/basic.test.tsx +4 -0
  327. package/test/rendering/print-render-stack.test.tsx +52 -43
  328. package/test/scheduler-extended.test.tsx +122 -0
  329. package/test/scheduler.test.tsx +50 -0
  330. package/testing/create-test-wrapper.tsx +1 -1
  331. package/testing/devtools-utils.ts +245 -0
  332. package/testing/extend-expect.ts +89 -0
  333. package/testing/render.ts +2 -2
  334. package/testing/vitest.d.ts +9 -0
  335. package/dist/src/debug.d.ts +0 -14
  336. package/dist/src/debug.d.ts.map +0 -1
  337. package/dist/src/debug.js.map +0 -1
@@ -0,0 +1,389 @@
1
+ /**
2
+ * Alloy Devtools Protocol
3
+ * =======================
4
+ *
5
+ * Communication protocol between the Alloy debug runtime (core) and the
6
+ * devtools UI client, transported over WebSocket.
7
+ *
8
+ * Message shapes are flat snake_case objects that mirror the SQLite trace-writer
9
+ * row shapes so no format translation is needed on the wire.
10
+ *
11
+ * ─── IDs ─────────────────────────────────────────────────────────────────────
12
+ *
13
+ * All entity IDs (effects, refs, reactive-property refs, non-ref targets)
14
+ * are positive monotonically increasing integers drawn from their respective
15
+ * counters. Ref IDs and reactive-property IDs share a single counter so
16
+ * they never collide. There are no negative or sentinel IDs.
17
+ *
18
+ * ─── Effects ─────────────────────────────────────────────────────────────────
19
+ *
20
+ * An effect is any reactive computation tracked by Alloy's reactivity system.
21
+ *
22
+ * name Human-readable label. Format varies:
23
+ * "render:ComponentName" — render effect for a component
24
+ * "memo:For" — memo inside a For component
25
+ * "memo:props.children" — memo from JSX expression
26
+ * "binder:notifySymbolCreated" — binder infrastructure
27
+ * "myCallback" — user effect from fn.name
28
+ * For memos created by JSX expression tracking, the babel plugin
29
+ * generates a description of the expression (e.g. "props.foo").
30
+ *
31
+ * effect_type Optional effect category string. Set by framework code via
32
+ * the debug options on effect(). Values include "render",
33
+ * "content", "context", "resource", "binder", "list", "symbol",
34
+ * "collection", etc. null when no category was assigned (common
35
+ * for memos and user-created effects). Useful for display and
36
+ * grouping but NOT used for user-vs-external filtering.
37
+ *
38
+ * source_file / source_line / source_col
39
+ * Where the effect was created. Captured via V8 CallSite API
40
+ * with source map resolution (when --enable-source-maps is
41
+ * active). Points at the component or user code that called
42
+ * effect()/memo(), not the reactivity internals. May be null
43
+ * if the entire call stack is framework-internal.
44
+ *
45
+ * "User only" filtering:
46
+ * Based purely on source_file. An effect is "user code" when its
47
+ * source_file resolves to a path OUTSIDE node_modules (i.e. inside the
48
+ * user's project). Effects whose source_file is inside node_modules
49
+ * (including @alloy-js/* and any third-party library packages) or is
50
+ * null are "external" effects. The effect type and name are never used
51
+ * for this classification.
52
+ *
53
+ * ─── Refs ────────────────────────────────────────────────────────────────────
54
+ *
55
+ * A ref is any individually tracked reactive value. There are several kinds:
56
+ *
57
+ * kind="ref" Created by alloy's ref() wrapper.
58
+ * kind="shallowRef" Created by alloy's shallowRef() wrapper.
59
+ * kind="computed" Created by alloy's computed() wrapper.
60
+ * kind="reactive-property" A property of a reactive object, lazily
61
+ * registered on first track/trigger. Each
62
+ * (target, key) pair gets its own ref entry.
63
+ *
64
+ * Alloy wraps shallowReactive() to capture creation locations. Objects
65
+ * created via alloy's shallowReactive() wrapper have their creation site
66
+ * stored in a WeakMap. When a reactive-property ref is registered for such
67
+ * an object, the property ref inherits the shallowReactive() creation
68
+ * location. For objects using manual reactivity (e.g. OutputSymbol, which
69
+ * calls Vue's track()/trigger() directly on `this` rather than going through
70
+ * alloy's shallowReactive wrapper), the creation site is unknown and the
71
+ * first track/trigger site is used instead (flagged with is_approx_location).
72
+ *
73
+ * label Optional human-readable name. Takes priority over kind for
74
+ * display. Examples:
75
+ * "memo:For" — memo's internal ref
76
+ * "TSOutputSymbol \"Foo\".name" — reactive property
77
+ * When displaying, prefer: label ?? kind. The numeric ID is
78
+ * always shown separately as a dimmed suffix, never as part
79
+ * of the label text.
80
+ *
81
+ * is_infrastructure
82
+ * Boolean. True for refs created by framework internals that
83
+ * are implementation details (context.isEmpty, mapJoin index/
84
+ * joiner counters, devtools rerender tokens). These are not
85
+ * meaningful to end users and are always excluded in
86
+ * "user only" mode.
87
+ *
88
+ * is_approx_location
89
+ * Boolean. True when the source location was inferred from
90
+ * first usage rather than the actual creation site. Applies
91
+ * to reactive-property refs whose parent object was not
92
+ * created via alloy's shallowReactive() wrapper (e.g.
93
+ * OutputSymbol class instances with manual track/trigger).
94
+ * The UI should show a subtle indicator (e.g. a small muted
95
+ * icon with a tooltip), not a prominent warning.
96
+ *
97
+ * source_file / source_line / source_col
98
+ * Where the ref was created. For reactive-property refs from
99
+ * shallowReactive() objects, this is the shallowReactive()
100
+ * call site. For reactive-property refs from manual-reactivity
101
+ * objects, this is the first track site (is_approx_location=1).
102
+ * For regular refs/shallowRefs/computed, this is the call site
103
+ * with framework-internal stack frames skipped.
104
+ *
105
+ * "User only" filtering:
106
+ * A ref is "user code" when is_infrastructure is false AND source_file
107
+ * resolves to a path outside node_modules. Infrastructure refs are
108
+ * always excluded in user-only mode regardless of source location.
109
+ *
110
+ * ─── Edges ───────────────────────────────────────────────────────────────────
111
+ *
112
+ * Edges connect effects to refs via track/trigger relationships.
113
+ * ref_id points to a registered ref. target_id/target_key provide the
114
+ * raw reactive target info. For ref-backed edges, ref_id == target_id.
115
+ *
116
+ * ─── Source Location Resolution ──────────────────────────────────────────────
117
+ *
118
+ * Captured at entity creation time via V8's structured CallSite API.
119
+ * Framework-internal frames (reactivity engine, renderer, scheduler, debug
120
+ * infra) are skipped so the location points at the component or user code.
121
+ *
122
+ * When --enable-source-maps is active, paths and line numbers are resolved
123
+ * through source maps (.js → .ts). The server reports sourceMapEnabled in
124
+ * its handshake. Note: pnpm symlinks require realpathSync before
125
+ * findSourceMap lookup (Node's cache is keyed by real paths).
126
+ */
127
+ import type { SourceLocation } from "../debug/effects.js";
128
+ export type { SourceLocation };
129
+ export interface DiagnosticRow {
130
+ message: string;
131
+ severity?: string;
132
+ source_file?: string;
133
+ source_line?: number;
134
+ source_col?: number;
135
+ component_stack?: string;
136
+ }
137
+ /** @deprecated Use flat fields on RenderNodeAddedMessage instead. */
138
+ export interface RenderTreeNode {
139
+ id: number;
140
+ kind: string;
141
+ name?: string;
142
+ propsSerialized?: string;
143
+ value?: string;
144
+ source?: SourceLocation;
145
+ }
146
+ /** @deprecated Use flat fields on RenderErrorMessage instead. */
147
+ export interface RenderErrorStackEntry {
148
+ name: string;
149
+ propsSerialized?: string;
150
+ renderNodeId?: number;
151
+ source?: SourceLocation;
152
+ }
153
+ export interface DebuggerInfoMessage {
154
+ type: "debugger:info";
155
+ version: string;
156
+ cwd?: string;
157
+ sourceMapEnabled: boolean;
158
+ }
159
+ export interface RenderResetMessage {
160
+ type: "render:reset";
161
+ }
162
+ export interface RenderNodeAddedMessage {
163
+ type: "render:node_added";
164
+ id: number;
165
+ parent_id: number | null;
166
+ kind: string;
167
+ name?: string;
168
+ props?: string;
169
+ value?: string;
170
+ source_file?: string;
171
+ source_line?: number;
172
+ source_col?: number;
173
+ context_id?: number | null;
174
+ seq: number;
175
+ }
176
+ export interface RenderNodeUpdatedMessage {
177
+ type: "render:node_updated";
178
+ id: number;
179
+ props?: string;
180
+ }
181
+ export interface RenderNodeRemovedMessage {
182
+ type: "render:node_removed";
183
+ id: number;
184
+ }
185
+ export interface RenderErrorMessage {
186
+ type: "render:error";
187
+ name?: string;
188
+ message?: string;
189
+ stack?: string;
190
+ component_stack?: string;
191
+ seq: number;
192
+ }
193
+ export interface RenderCompleteMessage {
194
+ type: "render:complete";
195
+ }
196
+ export interface FlushJobsCompleteMessage {
197
+ type: "flush:complete";
198
+ }
199
+ export interface EffectAddedMessage {
200
+ type: "effect:added";
201
+ id: number;
202
+ name?: string;
203
+ effect_type?: string;
204
+ context_id?: number | null;
205
+ owner_context_id?: number | null;
206
+ component?: string;
207
+ source_file?: string;
208
+ source_line?: number;
209
+ source_col?: number;
210
+ source_package?: string;
211
+ is_infrastructure?: number;
212
+ seq: number;
213
+ }
214
+ export interface EffectUpdatedMessage {
215
+ type: "effect:updated";
216
+ id: number;
217
+ name?: string;
218
+ effect_type?: string;
219
+ context_id?: number | null;
220
+ owner_context_id?: number | null;
221
+ component?: string;
222
+ source_file?: string;
223
+ source_line?: number;
224
+ source_col?: number;
225
+ source_package?: string;
226
+ is_infrastructure?: number;
227
+ seq: number;
228
+ }
229
+ export interface RefAddedMessage {
230
+ type: "ref:added";
231
+ id: number;
232
+ kind?: string;
233
+ label?: string;
234
+ created_by_effect_id?: number;
235
+ source_file?: string;
236
+ source_line?: number;
237
+ source_col?: number;
238
+ source_package?: string;
239
+ is_approx_location?: number;
240
+ seq: number;
241
+ }
242
+ export interface EffectTrackMessage {
243
+ type: "edge:track";
244
+ seq: number;
245
+ effect_id: number;
246
+ ref_id?: number;
247
+ target_id?: number;
248
+ target_kind?: string;
249
+ target_label?: string;
250
+ target_key?: string;
251
+ }
252
+ export interface EffectTriggerMessage {
253
+ type: "edge:trigger";
254
+ seq: number;
255
+ effect_id: number;
256
+ caused_by?: number;
257
+ ref_id?: number;
258
+ target_id?: number;
259
+ target_kind?: string;
260
+ target_label?: string;
261
+ target_key?: string;
262
+ }
263
+ export interface EffectEdgeUpdatedMessage {
264
+ type: "edge:updated";
265
+ seq: number;
266
+ effect_id: number;
267
+ caused_by?: number;
268
+ ref_id?: number;
269
+ target_id?: number;
270
+ target_kind?: string;
271
+ target_label?: string;
272
+ target_key?: string;
273
+ }
274
+ export interface EffectLifecycleMessage {
275
+ type: "effect:lifecycle";
276
+ seq: number;
277
+ effect_id: number;
278
+ event: string;
279
+ trigger_ref_id?: number;
280
+ }
281
+ export interface ScopeAddedMessage {
282
+ type: "scope:added";
283
+ id: number;
284
+ name: string;
285
+ parent_id?: number | null;
286
+ owner_symbol_id?: number | null;
287
+ render_node_id?: number | null;
288
+ is_member_scope?: number;
289
+ is_transient?: number;
290
+ metadata?: string;
291
+ seq: number;
292
+ }
293
+ export interface ScopeUpdatedMessage {
294
+ type: "scope:updated";
295
+ id: number;
296
+ name: string;
297
+ parent_id?: number | null;
298
+ owner_symbol_id?: number | null;
299
+ render_node_id?: number | null;
300
+ is_member_scope?: number;
301
+ is_transient?: number;
302
+ metadata?: string;
303
+ seq: number;
304
+ }
305
+ export interface ScopeRemovedMessage {
306
+ type: "scope:removed";
307
+ id: number;
308
+ }
309
+ export interface SymbolAddedMessage {
310
+ type: "symbol:added";
311
+ id: number;
312
+ name: string;
313
+ original_name?: string;
314
+ scope_id?: number | null;
315
+ owner_symbol_id?: number | null;
316
+ render_node_id?: number | null;
317
+ is_member?: number;
318
+ is_transient?: number;
319
+ is_alias?: number;
320
+ moved_to_id?: number | null;
321
+ metadata?: string;
322
+ seq: number;
323
+ }
324
+ export interface SymbolUpdatedMessage {
325
+ type: "symbol:updated";
326
+ id: number;
327
+ name: string;
328
+ original_name?: string;
329
+ scope_id?: number | null;
330
+ owner_symbol_id?: number | null;
331
+ render_node_id?: number | null;
332
+ is_member?: number;
333
+ is_transient?: number;
334
+ is_alias?: number;
335
+ moved_to_id?: number | null;
336
+ metadata?: string;
337
+ seq: number;
338
+ }
339
+ export interface SymbolRemovedMessage {
340
+ type: "symbol:removed";
341
+ id: number;
342
+ }
343
+ export interface FileAddedMessage {
344
+ type: "file:added";
345
+ path: string;
346
+ filetype?: string;
347
+ render_node_id?: number;
348
+ seq: number;
349
+ }
350
+ export interface FileUpdatedMessage {
351
+ type: "file:updated";
352
+ path: string;
353
+ content?: string;
354
+ }
355
+ export interface FileRemovedMessage {
356
+ type: "file:removed";
357
+ path: string;
358
+ }
359
+ export interface DirectoryAddedMessage {
360
+ type: "directory:added";
361
+ path: string;
362
+ }
363
+ export interface DirectoryRemovedMessage {
364
+ type: "directory:removed";
365
+ path: string;
366
+ }
367
+ export interface DiagnosticsReportMessage {
368
+ type: "diagnostics:report";
369
+ diagnostics: DiagnosticRow[];
370
+ }
371
+ export type ServerToClientMessage = DebuggerInfoMessage | RenderResetMessage | RenderNodeAddedMessage | RenderNodeUpdatedMessage | RenderNodeRemovedMessage | RenderErrorMessage | RenderCompleteMessage | FlushJobsCompleteMessage | EffectAddedMessage | EffectUpdatedMessage | RefAddedMessage | EffectTrackMessage | EffectTriggerMessage | EffectEdgeUpdatedMessage | EffectLifecycleMessage | ScopeAddedMessage | ScopeUpdatedMessage | ScopeRemovedMessage | SymbolAddedMessage | SymbolUpdatedMessage | SymbolRemovedMessage | FileAddedMessage | FileUpdatedMessage | FileRemovedMessage | DirectoryAddedMessage | DirectoryRemovedMessage | DiagnosticsReportMessage;
372
+ export interface SubscribeMessage {
373
+ type: "subscribe";
374
+ channels: string[];
375
+ }
376
+ export interface UnsubscribeMessage {
377
+ type: "unsubscribe";
378
+ channels: string[];
379
+ }
380
+ export interface RerenderRequestMessage {
381
+ type: "render:rerender";
382
+ id: number;
383
+ }
384
+ export interface RerenderBreakRequestMessage {
385
+ type: "render:rerenderAndBreak";
386
+ id: number;
387
+ }
388
+ export type ClientToServerMessage = SubscribeMessage | UnsubscribeMessage | RerenderRequestMessage | RerenderBreakRequestMessage;
389
+ //# sourceMappingURL=devtools-protocol.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"devtools-protocol.d.ts","sourceRoot":"","sources":["../../../src/devtools/devtools-protocol.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=devtools-protocol.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sources":[],"sourcesContent":[],"mappings":"","ignoreList":[]}
@@ -0,0 +1,23 @@
1
+ export interface DevtoolsIncomingMessage {
2
+ type: string;
3
+ [key: string]: unknown;
4
+ }
5
+ export interface DevtoolsServerInfo {
6
+ port: number;
7
+ connected: boolean;
8
+ }
9
+ export declare function isDevtoolsEnabled(): boolean;
10
+ export declare function waitForDevtoolsConnection(): Promise<void>;
11
+ export interface EnableDevtoolsOptions {
12
+ port?: number;
13
+ waitForConnection?: boolean;
14
+ }
15
+ export declare function enableDevtools(_options?: EnableDevtoolsOptions): Promise<void>;
16
+ export declare function initDevtoolsIfEnabled(): Promise<void>;
17
+ export declare function registerDevtoolsMessageHandler(_handler: (message: DevtoolsIncomingMessage) => void): () => void;
18
+ export declare function assertDevtoolsConnectedForSyncRender(): void;
19
+ export declare function isDevtoolsConnected(): boolean;
20
+ export declare function getDevtoolsServerInfo(): DevtoolsServerInfo | null;
21
+ export declare function enableDevtoolsAndConnect(_options?: EnableDevtoolsOptions): Promise<DevtoolsServerInfo | null>;
22
+ export declare function resetDevtoolsServerForTests(): Promise<void>;
23
+ //# sourceMappingURL=devtools-server.browser.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"devtools-server.browser.d.ts","sourceRoot":"","sources":["../../../src/devtools/devtools-server.browser.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,uBAAuB;IACtC,IAAI,EAAE,MAAM,CAAC;IACb,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,OAAO,CAAC;CACpB;AAED,wBAAgB,iBAAiB,IAAI,OAAO,CAE3C;AAED,wBAAsB,yBAAyB,IAAI,OAAO,CAAC,IAAI,CAAC,CAE/D;AAED,MAAM,WAAW,qBAAqB;IACpC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B;AAED,wBAAsB,cAAc,CAClC,QAAQ,CAAC,EAAE,qBAAqB,GAC/B,OAAO,CAAC,IAAI,CAAC,CAEf;AAED,wBAAsB,qBAAqB,IAAI,OAAO,CAAC,IAAI,CAAC,CAE3D;AAED,wBAAgB,8BAA8B,CAC5C,QAAQ,EAAE,CAAC,OAAO,EAAE,uBAAuB,KAAK,IAAI,GACnD,MAAM,IAAI,CAEZ;AAED,wBAAgB,oCAAoC,IAAI,IAAI,CAE3D;AAED,wBAAgB,mBAAmB,IAAI,OAAO,CAE7C;AAED,wBAAgB,qBAAqB,IAAI,kBAAkB,GAAG,IAAI,CAEjE;AAED,wBAAsB,wBAAwB,CAC5C,QAAQ,CAAC,EAAE,qBAAqB,GAC/B,OAAO,CAAC,kBAAkB,GAAG,IAAI,CAAC,CAEpC;AAED,wBAAsB,2BAA2B,IAAI,OAAO,CAAC,IAAI,CAAC,CAEjE"}
@@ -0,0 +1,33 @@
1
+ // Browser stub for devtools-server - devtools are not supported in browsers
2
+
3
+ export function isDevtoolsEnabled() {
4
+ return false;
5
+ }
6
+ export async function waitForDevtoolsConnection() {
7
+ // No-op in browser
8
+ }
9
+ export async function enableDevtools(_options) {
10
+ // No-op in browser
11
+ }
12
+ export async function initDevtoolsIfEnabled() {
13
+ // No-op in browser
14
+ }
15
+ export function registerDevtoolsMessageHandler(_handler) {
16
+ return () => {};
17
+ }
18
+ export function assertDevtoolsConnectedForSyncRender() {
19
+ // No-op in browser
20
+ }
21
+ export function isDevtoolsConnected() {
22
+ return false;
23
+ }
24
+ export function getDevtoolsServerInfo() {
25
+ return null;
26
+ }
27
+ export async function enableDevtoolsAndConnect(_options) {
28
+ return null;
29
+ }
30
+ export async function resetDevtoolsServerForTests() {
31
+ // No-op in browser
32
+ }
33
+ //# sourceMappingURL=devtools-server.browser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["isDevtoolsEnabled","waitForDevtoolsConnection","enableDevtools","_options","initDevtoolsIfEnabled","registerDevtoolsMessageHandler","_handler","assertDevtoolsConnectedForSyncRender","isDevtoolsConnected","getDevtoolsServerInfo","enableDevtoolsAndConnect","resetDevtoolsServerForTests"],"sources":["../../../src/devtools/devtools-server.browser.ts"],"sourcesContent":[null],"mappings":"AAAA;;AAYA,OAAO,SAASA,iBAAiBA,CAAA,EAAY;EAC3C,OAAO,KAAK;AACd;AAEA,OAAO,eAAeC,yBAAyBA,CAAA,EAAkB;EAC/D;AAAA;AAQF,OAAO,eAAeC,cAAcA,CAClCC,QAAgC,EACjB;EACf;AAAA;AAGF,OAAO,eAAeC,qBAAqBA,CAAA,EAAkB;EAC3D;AAAA;AAGF,OAAO,SAASC,8BAA8BA,CAC5CC,QAAoD,EACxC;EACZ,OAAO,MAAM,CAAC,CAAC;AACjB;AAEA,OAAO,SAASC,oCAAoCA,CAAA,EAAS;EAC3D;AAAA;AAGF,OAAO,SAASC,mBAAmBA,CAAA,EAAY;EAC7C,OAAO,KAAK;AACd;AAEA,OAAO,SAASC,qBAAqBA,CAAA,EAA8B;EACjE,OAAO,IAAI;AACb;AAEA,OAAO,eAAeC,wBAAwBA,CAC5CP,QAAgC,EACI;EACpC,OAAO,IAAI;AACb;AAEA,OAAO,eAAeQ,2BAA2BA,CAAA,EAAkB;EACjE;AAAA","ignoreList":[]}
@@ -0,0 +1,66 @@
1
+ export interface DevtoolsIncomingMessage {
2
+ type: string;
3
+ [key: string]: unknown;
4
+ }
5
+ export interface DevtoolsServerInfo {
6
+ port: number;
7
+ connected: boolean;
8
+ }
9
+ export interface EnableDevtoolsOptions {
10
+ /** Port to listen on. Use 0 for a random available port. Defaults to ALLOY_DEBUG_PORT or 8123. */
11
+ port?: number;
12
+ }
13
+ /** Returns true when devtools are enabled (via env var or explicit call). */
14
+ export declare function isDevtoolsEnabled(): boolean;
15
+ /** Returns true when a devtools client is currently connected. */
16
+ export declare function isDevtoolsConnected(): boolean;
17
+ /** Get the current server info, or null if not running. */
18
+ export declare function getDevtoolsServerInfo(): DevtoolsServerInfo | null;
19
+ /**
20
+ * Wait for a devtools client to connect before proceeding.
21
+ *
22
+ * Starts the devtools server if not already running, and blocks until a
23
+ * devtools client connects via WebSocket.
24
+ *
25
+ * @example
26
+ * ```ts
27
+ * import { waitForDevtoolsConnection } from "@alloy-js/core/devtools";
28
+ * import { render } from "@alloy-js/core";
29
+ *
30
+ * await waitForDevtoolsConnection();
31
+ * const tree = render(<MyComponent />);
32
+ * ```
33
+ */
34
+ export declare function waitForDevtoolsConnection(): Promise<void>;
35
+ /**
36
+ * Enable devtools and start the server, returning when the server is ready.
37
+ * Use this in tests to enable devtools before connecting a client.
38
+ *
39
+ * @returns Server info with port number
40
+ */
41
+ export declare function enableDevtools(options?: EnableDevtoolsOptions): Promise<DevtoolsServerInfo>;
42
+ /**
43
+ * Initialize devtools if ALLOY_DEBUG is set. Called lazily by render functions.
44
+ * Returns immediately if devtools are not enabled or already initialized.
45
+ */
46
+ export declare function initDevtoolsIfEnabled(): Promise<void>;
47
+ /**
48
+ * Start the devtools server and wait for a client connection.
49
+ *
50
+ * @example
51
+ * ```ts
52
+ * const serverInfo = await enableDevtoolsAndConnect({ port: 0 });
53
+ * // ... run your test ...
54
+ * await resetDevtoolsServerForTests();
55
+ * ```
56
+ *
57
+ * @returns Server info once a client has connected
58
+ */
59
+ export declare function enableDevtoolsAndConnect(options?: EnableDevtoolsOptions): Promise<DevtoolsServerInfo>;
60
+ /** Register a handler for incoming devtools messages. Returns an unsubscribe function. */
61
+ export declare function registerDevtoolsMessageHandler(handler: (message: DevtoolsIncomingMessage) => void): () => boolean;
62
+ /** Throw if devtools are enabled but no client is connected (for sync render). */
63
+ export declare function assertDevtoolsConnectedForSyncRender(): void;
64
+ /** Reset all devtools state. For use in tests only. */
65
+ export declare function resetDevtoolsServerForTests(): Promise<void>;
66
+ //# sourceMappingURL=devtools-server.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"devtools-server.d.ts","sourceRoot":"","sources":["../../../src/devtools/devtools-server.ts"],"names":[],"mappings":"AA0BA,MAAM,WAAW,uBAAuB;IACtC,IAAI,EAAE,MAAM,CAAC;IACb,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,qBAAqB;IACpC,kGAAkG;IAClG,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAyID,6EAA6E;AAC7E,wBAAgB,iBAAiB,YAGhC;AAED,kEAAkE;AAClE,wBAAgB,mBAAmB,IAAI,OAAO,CAE7C;AAED,2DAA2D;AAC3D,wBAAgB,qBAAqB,IAAI,kBAAkB,GAAG,IAAI,CAGjE;AAwJD;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,yBAAyB,IAAI,OAAO,CAAC,IAAI,CAAC,CAW/D;AAED;;;;;GAKG;AACH,wBAAsB,cAAc,CAClC,OAAO,CAAC,EAAE,qBAAqB,GAC9B,OAAO,CAAC,kBAAkB,CAAC,CAS7B;AAED;;;GAGG;AACH,wBAAsB,qBAAqB,IAAI,OAAO,CAAC,IAAI,CAAC,CAM3D;AAED;;;;;;;;;;;GAWG;AACH,wBAAsB,wBAAwB,CAC5C,OAAO,CAAC,EAAE,qBAAqB,GAC9B,OAAO,CAAC,kBAAkB,CAAC,CAM7B;AAMD,0FAA0F;AAC1F,wBAAgB,8BAA8B,CAC5C,OAAO,EAAE,CAAC,OAAO,EAAE,uBAAuB,KAAK,IAAI,iBAIpD;AAED,kFAAkF;AAClF,wBAAgB,oCAAoC,SAOnD;AAMD,uDAAuD;AACvD,wBAAsB,2BAA2B,kBAgBhD"}