@alloy-js/core 0.23.0-dev.0 → 0.23.0-dev.8

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 (269) hide show
  1. package/CHANGELOG.md +0 -22
  2. package/dist/devtools/index.html +68 -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 +55 -12
  6. package/dist/src/binder.js.map +1 -1
  7. package/dist/src/components/AppendFile.d.ts.map +1 -1
  8. package/dist/src/components/AppendFile.js +14 -3
  9. package/dist/src/components/AppendFile.js.map +1 -1
  10. package/dist/src/components/Block.js +1 -1
  11. package/dist/src/components/Block.js.map +1 -1
  12. package/dist/src/components/Declaration.d.ts.map +1 -1
  13. package/dist/src/components/Declaration.js +2 -1
  14. package/dist/src/components/Declaration.js.map +1 -1
  15. package/dist/src/components/Scope.d.ts.map +1 -1
  16. package/dist/src/components/Scope.js +4 -1
  17. package/dist/src/components/Scope.js.map +1 -1
  18. package/dist/src/components/TemplateFile.d.ts.map +1 -1
  19. package/dist/src/components/TemplateFile.js +18 -3
  20. package/dist/src/components/TemplateFile.js.map +1 -1
  21. package/dist/src/content-slot.d.ts.map +1 -1
  22. package/dist/src/content-slot.js +6 -5
  23. package/dist/src/content-slot.js.map +1 -1
  24. package/dist/src/context.d.ts.map +1 -1
  25. package/dist/src/context.js +8 -1
  26. package/dist/src/context.js.map +1 -1
  27. package/dist/src/debug/cli.d.ts +6 -0
  28. package/dist/src/debug/cli.d.ts.map +1 -0
  29. package/dist/src/{debug.js → debug/cli.js} +78 -84
  30. package/dist/src/debug/cli.js.map +1 -0
  31. package/dist/src/debug/diagnostics.test.d.ts +2 -0
  32. package/dist/src/debug/diagnostics.test.d.ts.map +1 -0
  33. package/dist/src/debug/diagnostics.test.js +45 -0
  34. package/dist/src/debug/diagnostics.test.js.map +1 -0
  35. package/dist/src/debug/effects.d.ts +69 -0
  36. package/dist/src/debug/effects.d.ts.map +1 -0
  37. package/dist/src/debug/effects.js +228 -0
  38. package/dist/src/debug/effects.js.map +1 -0
  39. package/dist/src/debug/effects.test.d.ts +2 -0
  40. package/dist/src/debug/effects.test.d.ts.map +1 -0
  41. package/dist/src/debug/effects.test.js +86 -0
  42. package/dist/src/debug/effects.test.js.map +1 -0
  43. package/dist/src/debug/files.d.ts +14 -0
  44. package/dist/src/debug/files.d.ts.map +1 -0
  45. package/dist/src/debug/files.js +40 -0
  46. package/dist/src/debug/files.js.map +1 -0
  47. package/dist/src/debug/files.test.d.ts +2 -0
  48. package/dist/src/debug/files.test.d.ts.map +1 -0
  49. package/dist/src/debug/files.test.js +89 -0
  50. package/dist/src/debug/files.test.js.map +1 -0
  51. package/dist/src/debug/index.d.ts +60 -0
  52. package/dist/src/debug/index.d.ts.map +1 -0
  53. package/dist/src/debug/index.js +68 -0
  54. package/dist/src/debug/index.js.map +1 -0
  55. package/dist/src/debug/render.d.ts +57 -0
  56. package/dist/src/debug/render.d.ts.map +1 -0
  57. package/dist/src/debug/render.js +519 -0
  58. package/dist/src/debug/render.js.map +1 -0
  59. package/dist/src/debug/render.test.d.ts +2 -0
  60. package/dist/src/debug/render.test.d.ts.map +1 -0
  61. package/dist/src/debug/render.test.js +328 -0
  62. package/dist/src/debug/render.test.js.map +1 -0
  63. package/dist/src/debug/serialize.d.ts +9 -0
  64. package/dist/src/debug/serialize.d.ts.map +1 -0
  65. package/dist/src/debug/serialize.js +70 -0
  66. package/dist/src/debug/serialize.js.map +1 -0
  67. package/dist/src/debug/symbols.d.ts +9 -0
  68. package/dist/src/debug/symbols.d.ts.map +1 -0
  69. package/dist/src/debug/symbols.js +164 -0
  70. package/dist/src/debug/symbols.js.map +1 -0
  71. package/dist/src/debug/symbols.test.d.ts +2 -0
  72. package/dist/src/debug/symbols.test.d.ts.map +1 -0
  73. package/dist/src/debug/symbols.test.js +104 -0
  74. package/dist/src/debug/symbols.test.js.map +1 -0
  75. package/dist/src/debug/trace.d.ts +342 -0
  76. package/dist/src/debug/trace.d.ts.map +1 -0
  77. package/dist/src/debug/trace.js +443 -0
  78. package/dist/src/debug/trace.js.map +1 -0
  79. package/dist/src/devtools/devtools-protocol.d.ts +232 -0
  80. package/dist/src/devtools/devtools-protocol.d.ts.map +1 -0
  81. package/dist/src/devtools/devtools-protocol.js +2 -0
  82. package/dist/src/devtools/devtools-protocol.js.map +1 -0
  83. package/dist/src/devtools/devtools-server.browser.d.ts +28 -0
  84. package/dist/src/devtools/devtools-server.browser.d.ts.map +1 -0
  85. package/dist/src/devtools/devtools-server.browser.js +36 -0
  86. package/dist/src/devtools/devtools-server.browser.js.map +1 -0
  87. package/dist/src/devtools/devtools-server.d.ts +72 -0
  88. package/dist/src/devtools/devtools-server.d.ts.map +1 -0
  89. package/dist/src/devtools/devtools-server.js +256 -0
  90. package/dist/src/devtools/devtools-server.js.map +1 -0
  91. package/dist/src/devtools/devtools-transport.d.ts +23 -0
  92. package/dist/src/devtools/devtools-transport.d.ts.map +1 -0
  93. package/dist/src/devtools/devtools-transport.js +114 -0
  94. package/dist/src/devtools/devtools-transport.js.map +1 -0
  95. package/dist/src/devtools-entry.browser.d.ts +4 -0
  96. package/dist/src/devtools-entry.browser.d.ts.map +1 -0
  97. package/dist/src/devtools-entry.browser.js +2 -0
  98. package/dist/src/devtools-entry.browser.js.map +1 -0
  99. package/dist/src/devtools-entry.d.ts +4 -0
  100. package/dist/src/devtools-entry.d.ts.map +1 -0
  101. package/dist/src/devtools-entry.js +2 -0
  102. package/dist/src/devtools-entry.js.map +1 -0
  103. package/dist/src/diagnostics.d.ts +34 -0
  104. package/dist/src/diagnostics.d.ts.map +1 -0
  105. package/dist/src/diagnostics.js +89 -0
  106. package/dist/src/diagnostics.js.map +1 -0
  107. package/dist/src/index.d.ts +3 -2
  108. package/dist/src/index.d.ts.map +1 -1
  109. package/dist/src/index.js +3 -2
  110. package/dist/src/index.js.map +1 -1
  111. package/dist/src/print-hook.d.ts +14 -0
  112. package/dist/src/print-hook.d.ts.map +1 -0
  113. package/dist/src/print-hook.js +10 -0
  114. package/dist/src/print-hook.js.map +1 -0
  115. package/dist/src/reactive-union-set.d.ts.map +1 -1
  116. package/dist/src/reactive-union-set.js +15 -0
  117. package/dist/src/reactive-union-set.js.map +1 -1
  118. package/dist/src/reactivity.d.ts +17 -3
  119. package/dist/src/reactivity.d.ts.map +1 -1
  120. package/dist/src/reactivity.js +162 -14
  121. package/dist/src/reactivity.js.map +1 -1
  122. package/dist/src/render-stack.d.ts +29 -0
  123. package/dist/src/render-stack.d.ts.map +1 -0
  124. package/dist/src/render-stack.js +247 -0
  125. package/dist/src/render-stack.js.map +1 -0
  126. package/dist/src/render.d.ts +9 -19
  127. package/dist/src/render.d.ts.map +1 -1
  128. package/dist/src/render.js +363 -153
  129. package/dist/src/render.js.map +1 -1
  130. package/dist/src/resource.d.ts.map +1 -1
  131. package/dist/src/resource.js +5 -0
  132. package/dist/src/resource.js.map +1 -1
  133. package/dist/src/runtime/component.d.ts +7 -1
  134. package/dist/src/runtime/component.d.ts.map +1 -1
  135. package/dist/src/runtime/component.js +4 -1
  136. package/dist/src/runtime/component.js.map +1 -1
  137. package/dist/src/scheduler.d.ts +3 -0
  138. package/dist/src/scheduler.d.ts.map +1 -1
  139. package/dist/src/scheduler.js +45 -2
  140. package/dist/src/scheduler.js.map +1 -1
  141. package/dist/src/symbols/basic-symbol.d.ts.map +1 -1
  142. package/dist/src/symbols/basic-symbol.js +6 -1
  143. package/dist/src/symbols/basic-symbol.js.map +1 -1
  144. package/dist/src/symbols/decl.d.ts.map +1 -1
  145. package/dist/src/symbols/decl.js +5 -1
  146. package/dist/src/symbols/decl.js.map +1 -1
  147. package/dist/src/symbols/output-scope.d.ts +2 -1
  148. package/dist/src/symbols/output-scope.d.ts.map +1 -1
  149. package/dist/src/symbols/output-scope.js +13 -8
  150. package/dist/src/symbols/output-scope.js.map +1 -1
  151. package/dist/src/symbols/output-symbol.d.ts +1 -0
  152. package/dist/src/symbols/output-symbol.d.ts.map +1 -1
  153. package/dist/src/symbols/output-symbol.js +23 -6
  154. package/dist/src/symbols/output-symbol.js.map +1 -1
  155. package/dist/src/symbols/symbol-flow.d.ts.map +1 -1
  156. package/dist/src/symbols/symbol-flow.js +22 -6
  157. package/dist/src/symbols/symbol-flow.js.map +1 -1
  158. package/dist/src/symbols/symbol-slot.d.ts.map +1 -1
  159. package/dist/src/symbols/symbol-slot.js +15 -0
  160. package/dist/src/symbols/symbol-slot.js.map +1 -1
  161. package/dist/src/symbols/symbol-slot.test.d.ts +2 -0
  162. package/dist/src/symbols/symbol-slot.test.d.ts.map +1 -0
  163. package/dist/src/symbols/symbol-slot.test.js +35 -0
  164. package/dist/src/symbols/symbol-slot.test.js.map +1 -0
  165. package/dist/src/symbols/symbol-table.d.ts.map +1 -1
  166. package/dist/src/symbols/symbol-table.js +6 -5
  167. package/dist/src/symbols/symbol-table.js.map +1 -1
  168. package/dist/src/trace.d.ts +2 -0
  169. package/dist/src/trace.d.ts.map +1 -0
  170. package/dist/src/trace.js +2 -0
  171. package/dist/src/trace.js.map +1 -0
  172. package/dist/src/tracer.d.ts +2 -228
  173. package/dist/src/tracer.d.ts.map +1 -1
  174. package/dist/src/tracer.js +5 -298
  175. package/dist/src/tracer.js.map +1 -1
  176. package/dist/src/utils.d.ts.map +1 -1
  177. package/dist/src/utils.js +5 -0
  178. package/dist/src/utils.js.map +1 -1
  179. package/dist/test/components/append-file.test.d.ts.map +1 -1
  180. package/dist/test/components/append-file.test.js +18 -10
  181. package/dist/test/components/append-file.test.js.map +1 -1
  182. package/dist/test/components/template-file.test.d.ts.map +1 -1
  183. package/dist/test/components/template-file.test.js +6 -4
  184. package/dist/test/components/template-file.test.js.map +1 -1
  185. package/dist/test/rendering/basic.test.js +3 -0
  186. package/dist/test/rendering/basic.test.js.map +1 -1
  187. package/dist/test/rendering/print-render-stack.test.d.ts +2 -0
  188. package/dist/test/rendering/print-render-stack.test.d.ts.map +1 -0
  189. package/dist/test/rendering/print-render-stack.test.js +207 -0
  190. package/dist/test/rendering/print-render-stack.test.js.map +1 -0
  191. package/dist/testing/create-test-wrapper.d.ts +1 -1
  192. package/dist/testing/create-test-wrapper.d.ts.map +1 -1
  193. package/dist/testing/create-test-wrapper.js +1 -1
  194. package/dist/testing/create-test-wrapper.js.map +1 -1
  195. package/dist/testing/devtools-utils.d.ts +26 -0
  196. package/dist/testing/devtools-utils.d.ts.map +1 -0
  197. package/dist/testing/devtools-utils.js +140 -0
  198. package/dist/testing/devtools-utils.js.map +1 -0
  199. package/dist/testing/extend-expect.d.ts.map +1 -1
  200. package/dist/testing/extend-expect.js +63 -1
  201. package/dist/testing/extend-expect.js.map +1 -1
  202. package/dist/testing/render.d.ts +2 -2
  203. package/dist/testing/render.d.ts.map +1 -1
  204. package/dist/testing/render.js +2 -2
  205. package/dist/testing/render.js.map +1 -1
  206. package/dist/tsconfig.tsbuildinfo +1 -1
  207. package/package.json +21 -7
  208. package/scripts/copy-devtools-ui.mjs +26 -0
  209. package/src/binder.ts +71 -16
  210. package/src/components/AppendFile.tsx +14 -9
  211. package/src/components/Block.tsx +1 -1
  212. package/src/components/Declaration.tsx +2 -1
  213. package/src/components/Scope.tsx +4 -1
  214. package/src/components/TemplateFile.tsx +18 -9
  215. package/src/content-slot.tsx +6 -6
  216. package/src/context.ts +15 -4
  217. package/src/{debug.ts → debug/cli.ts} +112 -127
  218. package/src/debug/diagnostics.test.tsx +55 -0
  219. package/src/debug/effects.test.tsx +96 -0
  220. package/src/debug/effects.ts +313 -0
  221. package/src/debug/files.test.tsx +96 -0
  222. package/src/debug/files.ts +40 -0
  223. package/src/debug/index.ts +126 -0
  224. package/src/debug/render.test.tsx +379 -0
  225. package/src/debug/render.ts +639 -0
  226. package/src/debug/serialize.ts +85 -0
  227. package/src/debug/symbols.test.tsx +106 -0
  228. package/src/debug/symbols.ts +230 -0
  229. package/src/debug/trace.ts +312 -0
  230. package/src/devtools/devtools-protocol.ts +312 -0
  231. package/src/devtools/devtools-server.browser.ts +71 -0
  232. package/src/devtools/devtools-server.ts +290 -0
  233. package/src/devtools/devtools-transport.ts +154 -0
  234. package/src/devtools-entry.browser.ts +52 -0
  235. package/src/devtools-entry.ts +54 -0
  236. package/src/diagnostics.ts +141 -0
  237. package/src/index.ts +2 -6
  238. package/src/print-hook.ts +22 -0
  239. package/src/reactive-union-set.ts +71 -41
  240. package/src/reactivity.ts +206 -23
  241. package/src/render-stack.ts +289 -0
  242. package/src/render.ts +464 -212
  243. package/src/resource.ts +28 -19
  244. package/src/runtime/component.ts +11 -0
  245. package/src/scheduler.ts +55 -3
  246. package/src/symbols/basic-symbol.ts +6 -1
  247. package/src/symbols/decl.ts +5 -1
  248. package/src/symbols/output-scope.ts +21 -12
  249. package/src/symbols/output-symbol.ts +33 -12
  250. package/src/symbols/symbol-flow.ts +68 -37
  251. package/src/symbols/symbol-slot.test.tsx +41 -0
  252. package/src/symbols/symbol-slot.tsx +47 -20
  253. package/src/symbols/symbol-table.ts +6 -10
  254. package/src/trace.ts +1 -0
  255. package/src/tracer.ts +13 -242
  256. package/src/utils.tsx +22 -13
  257. package/temp/api.json +1811 -277
  258. package/test/components/append-file.test.tsx +36 -29
  259. package/test/components/template-file.test.tsx +11 -11
  260. package/test/rendering/basic.test.tsx +4 -0
  261. package/test/rendering/print-render-stack.test.tsx +244 -0
  262. package/testing/create-test-wrapper.tsx +1 -1
  263. package/testing/devtools-utils.ts +203 -0
  264. package/testing/extend-expect.ts +89 -0
  265. package/testing/render.ts +2 -2
  266. package/testing/vitest.d.ts +9 -0
  267. package/dist/src/debug.d.ts +0 -15
  268. package/dist/src/debug.d.ts.map +0 -1
  269. package/dist/src/debug.js.map +0 -1
@@ -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,28 @@
1
+ export interface DevtoolsMessage {
2
+ type: string;
3
+ [key: string]: unknown;
4
+ }
5
+ export interface DevtoolsIncomingMessage {
6
+ type: string;
7
+ [key: string]: unknown;
8
+ }
9
+ export interface DevtoolsServerInfo {
10
+ port: number;
11
+ connected: boolean;
12
+ }
13
+ export declare function isDevtoolsEnabled(): boolean;
14
+ export declare function waitForDevtoolsConnection(): Promise<void>;
15
+ export interface EnableDevtoolsOptions {
16
+ port?: number;
17
+ waitForConnection?: boolean;
18
+ }
19
+ export declare function enableDevtools(_options?: EnableDevtoolsOptions): Promise<void>;
20
+ export declare function initDevtoolsIfEnabled(): Promise<void>;
21
+ export declare function broadcastDevtoolsMessage(_message: DevtoolsMessage): void;
22
+ export declare function registerDevtoolsMessageHandler(_handler: (message: DevtoolsIncomingMessage) => void): () => void;
23
+ export declare function assertDevtoolsConnectedForSyncRender(): void;
24
+ export declare function isDevtoolsConnected(): boolean;
25
+ export declare function getDevtoolsServerInfo(): DevtoolsServerInfo | null;
26
+ export declare function enableDevtoolsAndConnect(_options?: EnableDevtoolsOptions): Promise<DevtoolsServerInfo | null>;
27
+ export declare function resetDevtoolsServerForTests(): Promise<void>;
28
+ //# 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,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,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,wBAAwB,CAAC,QAAQ,EAAE,eAAe,GAAG,IAAI,CAExE;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,36 @@
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 broadcastDevtoolsMessage(_message) {
16
+ // No-op in browser
17
+ }
18
+ export function registerDevtoolsMessageHandler(_handler) {
19
+ return () => {};
20
+ }
21
+ export function assertDevtoolsConnectedForSyncRender() {
22
+ // No-op in browser
23
+ }
24
+ export function isDevtoolsConnected() {
25
+ return false;
26
+ }
27
+ export function getDevtoolsServerInfo() {
28
+ return null;
29
+ }
30
+ export async function enableDevtoolsAndConnect(_options) {
31
+ return null;
32
+ }
33
+ export async function resetDevtoolsServerForTests() {
34
+ // No-op in browser
35
+ }
36
+ //# sourceMappingURL=devtools-server.browser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["isDevtoolsEnabled","waitForDevtoolsConnection","enableDevtools","_options","initDevtoolsIfEnabled","broadcastDevtoolsMessage","_message","registerDevtoolsMessageHandler","_handler","assertDevtoolsConnectedForSyncRender","isDevtoolsConnected","getDevtoolsServerInfo","enableDevtoolsAndConnect","resetDevtoolsServerForTests"],"sources":["../../../src/devtools/devtools-server.browser.ts"],"sourcesContent":[null],"mappings":"AAAA;;AAiBA,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,wBAAwBA,CAACC,QAAyB,EAAQ;EACxE;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,CAC5CT,QAAgC,EACI;EACpC,OAAO,IAAI;AACb;AAEA,OAAO,eAAeU,2BAA2BA,CAAA,EAAkB;EACjE;AAAA","ignoreList":[]}
@@ -0,0 +1,72 @@
1
+ export interface DevtoolsMessage {
2
+ type: string;
3
+ [key: string]: unknown;
4
+ }
5
+ export interface DevtoolsIncomingMessage {
6
+ type: string;
7
+ [key: string]: unknown;
8
+ }
9
+ export interface DevtoolsServerInfo {
10
+ port: number;
11
+ connected: boolean;
12
+ }
13
+ export interface EnableDevtoolsOptions {
14
+ /** Port to listen on. Use 0 for a random available port. Defaults to ALLOY_DEBUG_PORT or 8123. */
15
+ port?: number;
16
+ }
17
+ /** Returns true when devtools are enabled (via env var or explicit call). */
18
+ export declare function isDevtoolsEnabled(): boolean;
19
+ /** Returns true when a devtools client is currently connected. */
20
+ export declare function isDevtoolsConnected(): boolean;
21
+ /** Get the current server info, or null if not running. */
22
+ export declare function getDevtoolsServerInfo(): DevtoolsServerInfo | null;
23
+ /**
24
+ * Wait for a devtools client to connect before proceeding.
25
+ *
26
+ * Starts the devtools server if not already running, and blocks until a
27
+ * devtools client connects via WebSocket.
28
+ *
29
+ * @example
30
+ * ```ts
31
+ * import { waitForDevtoolsConnection } from "@alloy-js/core/devtools";
32
+ * import { render } from "@alloy-js/core";
33
+ *
34
+ * await waitForDevtoolsConnection();
35
+ * const tree = render(<MyComponent />);
36
+ * ```
37
+ */
38
+ export declare function waitForDevtoolsConnection(): Promise<void>;
39
+ /**
40
+ * Enable devtools and start the server, returning when the server is ready.
41
+ * Use this in tests to enable devtools before connecting a client.
42
+ *
43
+ * @returns Server info with port number
44
+ */
45
+ export declare function enableDevtools(options?: EnableDevtoolsOptions): Promise<DevtoolsServerInfo>;
46
+ /**
47
+ * Initialize devtools if ALLOY_DEBUG is set. Called lazily by render functions.
48
+ * Returns immediately if devtools are not enabled or already initialized.
49
+ */
50
+ export declare function initDevtoolsIfEnabled(): Promise<void>;
51
+ /**
52
+ * Start the devtools server and wait for a client connection.
53
+ *
54
+ * @example
55
+ * ```ts
56
+ * const serverInfo = await enableDevtoolsAndConnect({ port: 0 });
57
+ * // ... run your test ...
58
+ * await resetDevtoolsServerForTests();
59
+ * ```
60
+ *
61
+ * @returns Server info once a client has connected
62
+ */
63
+ export declare function enableDevtoolsAndConnect(options?: EnableDevtoolsOptions): Promise<DevtoolsServerInfo>;
64
+ /** Broadcast a message to all connected devtools clients. */
65
+ export declare function broadcastDevtoolsMessage(message: DevtoolsMessage): void;
66
+ /** Register a handler for incoming devtools messages. Returns an unsubscribe function. */
67
+ export declare function registerDevtoolsMessageHandler(handler: (message: DevtoolsIncomingMessage) => void): () => boolean;
68
+ /** Throw if devtools are enabled but no client is connected (for sync render). */
69
+ export declare function assertDevtoolsConnectedForSyncRender(): void;
70
+ /** Reset all devtools state. For use in tests only. */
71
+ export declare function resetDevtoolsServerForTests(): Promise<void>;
72
+ //# 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":"AAiBA,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,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;AAgDD,6EAA6E;AAC7E,wBAAgB,iBAAiB,YAGhC;AAED,kEAAkE;AAClE,wBAAgB,mBAAmB,IAAI,OAAO,CAE7C;AAED,2DAA2D;AAC3D,wBAAgB,qBAAqB,IAAI,kBAAkB,GAAG,IAAI,CAGjE;AA2DD;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,yBAAyB,IAAI,OAAO,CAAC,IAAI,CAAC,CAK/D;AAED;;;;;GAKG;AACH,wBAAsB,cAAc,CAClC,OAAO,CAAC,EAAE,qBAAqB,GAC9B,OAAO,CAAC,kBAAkB,CAAC,CAQ7B;AAED;;;GAGG;AACH,wBAAsB,qBAAqB,IAAI,OAAO,CAAC,IAAI,CAAC,CAK3D;AAED;;;;;;;;;;;GAWG;AACH,wBAAsB,wBAAwB,CAC5C,OAAO,CAAC,EAAE,qBAAqB,GAC9B,OAAO,CAAC,kBAAkB,CAAC,CAM7B;AAMD,6DAA6D;AAC7D,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,eAAe,QAmBhE;AAED,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,kBAUhD"}
@@ -0,0 +1,256 @@
1
+ /**
2
+ * Devtools session manager.
3
+ *
4
+ * Manages the lifecycle of a devtools session: enable, connect, broadcast
5
+ * messages, and reset. Transport details (HTTP/WebSocket) are delegated
6
+ * to devtools-transport.ts.
7
+ */
8
+ import { createTransport, getAlloyVersion } from "./devtools-transport.js";
9
+
10
+ // ─────────────────────────────────────────────────────────────────────────────
11
+ // Public types
12
+ // ─────────────────────────────────────────────────────────────────────────────
13
+
14
+ // ─────────────────────────────────────────────────────────────────────────────
15
+ // Session state
16
+ // ─────────────────────────────────────────────────────────────────────────────
17
+
18
+ let transportState = null;
19
+ let transportPromise = null;
20
+ const messageHandlers = new Set();
21
+ let devtoolsExplicitlyEnabled = false;
22
+ let devtoolsInitialized = false;
23
+ let loggedDevtoolsLinks = false;
24
+ let waitingForConnection = false;
25
+ let configuredPort;
26
+
27
+ // ─────────────────────────────────────────────────────────────────────────────
28
+ // Environment helpers
29
+ // ─────────────────────────────────────────────────────────────────────────────
30
+
31
+ function isNodeEnvironment() {
32
+ return typeof process !== "undefined" && typeof process.versions === "object" && Boolean(process.versions?.node);
33
+ }
34
+ function getCwd() {
35
+ if (!isNodeEnvironment()) return undefined;
36
+ try {
37
+ return process.cwd();
38
+ } catch {
39
+ return undefined;
40
+ }
41
+ }
42
+ function resolveDebugPort() {
43
+ const raw = process.env.ALLOY_DEBUG_PORT;
44
+ if (!raw) return 8123;
45
+ const parsed = Number.parseInt(raw, 10);
46
+ if (Number.isNaN(parsed)) return 8123;
47
+ return parsed;
48
+ }
49
+
50
+ // ─────────────────────────────────────────────────────────────────────────────
51
+ // Query functions
52
+ // ─────────────────────────────────────────────────────────────────────────────
53
+
54
+ /** Returns true when devtools are enabled (via env var or explicit call). */
55
+ export function isDevtoolsEnabled() {
56
+ if (!isNodeEnvironment()) return false;
57
+ return devtoolsExplicitlyEnabled || Boolean(process.env.ALLOY_DEBUG);
58
+ }
59
+
60
+ /** Returns true when a devtools client is currently connected. */
61
+ export function isDevtoolsConnected() {
62
+ return Boolean(transportState?.connected);
63
+ }
64
+
65
+ /** Get the current server info, or null if not running. */
66
+ export function getDevtoolsServerInfo() {
67
+ if (!transportState) return null;
68
+ return {
69
+ port: transportState.port,
70
+ connected: transportState.connected
71
+ };
72
+ }
73
+
74
+ // ─────────────────────────────────────────────────────────────────────────────
75
+ // Server lifecycle
76
+ // ─────────────────────────────────────────────────────────────────────────────
77
+
78
+ async function ensureServer() {
79
+ if (transportState) return transportState;
80
+ if (!transportPromise) {
81
+ transportPromise = createTransport({
82
+ port: configuredPort ?? resolveDebugPort(),
83
+ onConnection(socket) {
84
+ if (waitingForConnection) {
85
+ waitingForConnection = false;
86
+ process.stdout.write(" Connected!\n");
87
+ }
88
+ socket.send(JSON.stringify({
89
+ type: "debugger:info",
90
+ version: getAlloyVersion(),
91
+ cwd: getCwd()
92
+ }));
93
+ },
94
+ onMessage(raw) {
95
+ const message = raw;
96
+ if (!message || !message.type) return;
97
+ for (const handler of messageHandlers) {
98
+ handler(message);
99
+ }
100
+ },
101
+ onDisconnect() {
102
+ // Currently no-op; transport handles client set management
103
+ }
104
+ }).then(state => {
105
+ transportState = state;
106
+ if (!loggedDevtoolsLinks) {
107
+ loggedDevtoolsLinks = true;
108
+ // eslint-disable-next-line no-console
109
+ console.log(`Alloy ${getAlloyVersion()}`);
110
+ // eslint-disable-next-line no-console
111
+ console.log(`➜ Debug UI: http://localhost:${state.port}/`);
112
+ // eslint-disable-next-line no-console
113
+ console.log(`➜ Websocket: ws://localhost:${state.port}/`);
114
+ // eslint-disable-next-line no-console
115
+ console.log("");
116
+ waitingForConnection = true;
117
+ process.stdout.write("Waiting for connection...");
118
+ }
119
+ return state;
120
+ });
121
+ }
122
+ return transportPromise;
123
+ }
124
+
125
+ // ─────────────────────────────────────────────────────────────────────────────
126
+ // Public API
127
+ // ─────────────────────────────────────────────────────────────────────────────
128
+
129
+ /**
130
+ * Wait for a devtools client to connect before proceeding.
131
+ *
132
+ * Starts the devtools server if not already running, and blocks until a
133
+ * devtools client connects via WebSocket.
134
+ *
135
+ * @example
136
+ * ```ts
137
+ * import { waitForDevtoolsConnection } from "@alloy-js/core/devtools";
138
+ * import { render } from "@alloy-js/core";
139
+ *
140
+ * await waitForDevtoolsConnection();
141
+ * const tree = render(<MyComponent />);
142
+ * ```
143
+ */
144
+ export async function waitForDevtoolsConnection() {
145
+ devtoolsExplicitlyEnabled = true;
146
+ const server = await ensureServer();
147
+ if (server.connected) return;
148
+ await server.ready;
149
+ }
150
+
151
+ /**
152
+ * Enable devtools and start the server, returning when the server is ready.
153
+ * Use this in tests to enable devtools before connecting a client.
154
+ *
155
+ * @returns Server info with port number
156
+ */
157
+ export async function enableDevtools(options) {
158
+ devtoolsExplicitlyEnabled = true;
159
+ devtoolsInitialized = true;
160
+ if (options?.port !== undefined) {
161
+ configuredPort = options.port;
162
+ }
163
+ const server = await ensureServer();
164
+ return {
165
+ port: server.port,
166
+ connected: server.connected
167
+ };
168
+ }
169
+
170
+ /**
171
+ * Initialize devtools if ALLOY_DEBUG is set. Called lazily by render functions.
172
+ * Returns immediately if devtools are not enabled or already initialized.
173
+ */
174
+ export async function initDevtoolsIfEnabled() {
175
+ if (devtoolsInitialized) return;
176
+ if (!isDevtoolsEnabled()) return;
177
+ devtoolsInitialized = true;
178
+ await waitForDevtoolsConnection();
179
+ }
180
+
181
+ /**
182
+ * Start the devtools server and wait for a client connection.
183
+ *
184
+ * @example
185
+ * ```ts
186
+ * const serverInfo = await enableDevtoolsAndConnect({ port: 0 });
187
+ * // ... run your test ...
188
+ * await resetDevtoolsServerForTests();
189
+ * ```
190
+ *
191
+ * @returns Server info once a client has connected
192
+ */
193
+ export async function enableDevtoolsAndConnect(options) {
194
+ const info = await enableDevtools(options);
195
+ if (!info.connected) {
196
+ await transportState.ready;
197
+ }
198
+ return {
199
+ port: transportState.port,
200
+ connected: true
201
+ };
202
+ }
203
+
204
+ // ─────────────────────────────────────────────────────────────────────────────
205
+ // Messaging
206
+ // ─────────────────────────────────────────────────────────────────────────────
207
+
208
+ /** Broadcast a message to all connected devtools clients. */
209
+ export function broadcastDevtoolsMessage(message) {
210
+ if (!isDevtoolsEnabled()) return;
211
+ if (!transportState) return;
212
+ if (transportState.clients.size === 0) return;
213
+ try {
214
+ const payload = JSON.stringify(message);
215
+ for (const client of transportState.clients) {
216
+ if (client.readyState === client.OPEN) {
217
+ client.send(payload);
218
+ }
219
+ }
220
+ } catch (err) {
221
+ // eslint-disable-next-line no-console
222
+ console.error(`Failed to send devtools message (type: ${message.type}):`, err);
223
+ }
224
+ }
225
+
226
+ /** Register a handler for incoming devtools messages. Returns an unsubscribe function. */
227
+ export function registerDevtoolsMessageHandler(handler) {
228
+ messageHandlers.add(handler);
229
+ return () => messageHandlers.delete(handler);
230
+ }
231
+
232
+ /** Throw if devtools are enabled but no client is connected (for sync render). */
233
+ export function assertDevtoolsConnectedForSyncRender() {
234
+ if (!isDevtoolsEnabled()) return;
235
+ if (!transportState || !transportState.connected) {
236
+ throw new Error("ALLOY_DEBUG is set but devtools are not connected. Use renderAsync or wait for the devtools client before rendering.");
237
+ }
238
+ }
239
+
240
+ // ─────────────────────────────────────────────────────────────────────────────
241
+ // Test utilities
242
+ // ─────────────────────────────────────────────────────────────────────────────
243
+
244
+ /** Reset all devtools state. For use in tests only. */
245
+ export async function resetDevtoolsServerForTests() {
246
+ if (transportState) {
247
+ await transportState.close();
248
+ }
249
+ transportState = null;
250
+ transportPromise = null;
251
+ devtoolsExplicitlyEnabled = false;
252
+ devtoolsInitialized = false;
253
+ configuredPort = undefined;
254
+ loggedDevtoolsLinks = false;
255
+ }
256
+ //# sourceMappingURL=devtools-server.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["createTransport","getAlloyVersion","transportState","transportPromise","messageHandlers","Set","devtoolsExplicitlyEnabled","devtoolsInitialized","loggedDevtoolsLinks","waitingForConnection","configuredPort","isNodeEnvironment","process","versions","Boolean","node","getCwd","undefined","cwd","resolveDebugPort","raw","env","ALLOY_DEBUG_PORT","parsed","Number","parseInt","isNaN","isDevtoolsEnabled","ALLOY_DEBUG","isDevtoolsConnected","connected","getDevtoolsServerInfo","port","ensureServer","onConnection","socket","stdout","write","send","JSON","stringify","type","version","onMessage","message","handler","onDisconnect","then","state","console","log","waitForDevtoolsConnection","server","ready","enableDevtools","options","initDevtoolsIfEnabled","enableDevtoolsAndConnect","info","broadcastDevtoolsMessage","clients","size","payload","client","readyState","OPEN","err","error","registerDevtoolsMessageHandler","add","delete","assertDevtoolsConnectedForSyncRender","Error","resetDevtoolsServerForTests","close"],"sources":["../../../src/devtools/devtools-server.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,23 @@
1
+ import { createServer as createHttpServer } from "node:http";
2
+ export interface DevtoolsTransportState {
3
+ port: number;
4
+ connected: boolean;
5
+ clients: Set<any>;
6
+ httpServer: ReturnType<typeof createHttpServer>;
7
+ ready: Promise<void>;
8
+ close(): Promise<void>;
9
+ }
10
+ /** Read the @alloy-js/core package version, cached after first call. */
11
+ export declare function getAlloyVersion(): string;
12
+ export interface CreateTransportOptions {
13
+ port: number;
14
+ onConnection(socket: any): void;
15
+ onMessage(message: unknown): void;
16
+ onDisconnect(): void;
17
+ }
18
+ /**
19
+ * Create the HTTP + WebSocket transport. Returns when the server is listening.
20
+ * Only accepts one concurrent WebSocket connection.
21
+ */
22
+ export declare function createTransport(options: CreateTransportOptions): Promise<DevtoolsTransportState>;
23
+ //# sourceMappingURL=devtools-transport.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"devtools-transport.d.ts","sourceRoot":"","sources":["../../../src/devtools/devtools-transport.ts"],"names":[],"mappings":"AAQA,OAAO,EACL,YAAY,IAAI,gBAAgB,EAGjC,MAAM,WAAW,CAAC;AAEnB,MAAM,WAAW,sBAAsB;IACrC,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC;IAClB,UAAU,EAAE,UAAU,CAAC,OAAO,gBAAgB,CAAC,CAAC;IAChD,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;IACrB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACxB;AAID,wEAAwE;AACxE,wBAAgB,eAAe,IAAI,MAAM,CAYxC;AAmBD,MAAM,WAAW,sBAAsB;IACrC,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,CAAC,MAAM,EAAE,GAAG,GAAG,IAAI,CAAC;IAChC,SAAS,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC;IAClC,YAAY,IAAI,IAAI,CAAC;CACtB;AAED;;;GAGG;AACH,wBAAsB,eAAe,CACnC,OAAO,EAAE,sBAAsB,GAC9B,OAAO,CAAC,sBAAsB,CAAC,CAmFjC"}
@@ -0,0 +1,114 @@
1
+ /**
2
+ * WebSocket transport for the Alloy devtools server.
3
+ *
4
+ * Handles HTTP serving of the devtools UI and WebSocket connection management.
5
+ * This module is concerned only with the transport layer — session lifecycle
6
+ * is managed by devtools-server.ts.
7
+ */
8
+ import { readFileSync } from "node:fs";
9
+ import { createServer as createHttpServer } from "node:http";
10
+ let cachedAlloyVersion = null;
11
+
12
+ /** Read the @alloy-js/core package version, cached after first call. */
13
+ export function getAlloyVersion() {
14
+ if (cachedAlloyVersion) return cachedAlloyVersion;
15
+ try {
16
+ const pkgUrl = new URL("../../../package.json", import.meta.url);
17
+ const pkg = JSON.parse(readFileSync(pkgUrl, "utf-8"));
18
+ cachedAlloyVersion = pkg.version ?? "0.0.0";
19
+ } catch {
20
+ cachedAlloyVersion = "0.0.0";
21
+ }
22
+ return cachedAlloyVersion;
23
+ }
24
+
25
+ /** Attempt to load the devtools UI HTML from known candidate paths. */
26
+ function loadDevtoolsUiHtml() {
27
+ const candidates = [new URL("../../dist/devtools/index.html", import.meta.url), new URL("../../devtools/index.html", import.meta.url), new URL("../../../devtools/dist/index.html", import.meta.url)];
28
+ for (const candidate of candidates) {
29
+ try {
30
+ return readFileSync(candidate, "utf-8");
31
+ } catch {
32
+ // try next
33
+ }
34
+ }
35
+ return null;
36
+ }
37
+ /**
38
+ * Create the HTTP + WebSocket transport. Returns when the server is listening.
39
+ * Only accepts one concurrent WebSocket connection.
40
+ */
41
+ export async function createTransport(options) {
42
+ const {
43
+ WebSocketServer
44
+ } = await import("ws");
45
+ const devtoolsUiHtml = loadDevtoolsUiHtml();
46
+ const httpServer = createHttpServer((req, res) => {
47
+ const url = req.url ?? "/";
48
+ if (url !== "/" && url !== "/index.html") {
49
+ res.statusCode = 404;
50
+ res.end("Not Found");
51
+ return;
52
+ }
53
+ if (!devtoolsUiHtml) {
54
+ res.statusCode = 404;
55
+ res.end("Not Found");
56
+ return;
57
+ }
58
+ res.statusCode = 200;
59
+ res.setHeader("Content-Type", "text/html; charset=utf-8");
60
+ res.end(devtoolsUiHtml);
61
+ });
62
+ const wss = new WebSocketServer({
63
+ server: httpServer
64
+ });
65
+ await new Promise((resolve, reject) => {
66
+ httpServer.once("listening", resolve);
67
+ httpServer.once("error", reject);
68
+ httpServer.listen(options.port);
69
+ });
70
+ const address = httpServer.address();
71
+ const actualPort = typeof address === "object" && address !== null ? address.port : options.port;
72
+ let resolveReady;
73
+ const ready = new Promise(resolve => {
74
+ resolveReady = resolve;
75
+ });
76
+ const clients = new Set();
77
+ const state = {
78
+ port: actualPort,
79
+ connected: false,
80
+ clients,
81
+ httpServer,
82
+ ready,
83
+ close: async () => {
84
+ await new Promise(resolve => wss.close(() => resolve()));
85
+ await new Promise(resolve => httpServer.close(() => resolve()));
86
+ clients.clear();
87
+ state.connected = false;
88
+ }
89
+ };
90
+ wss.on("connection", socket => {
91
+ if (state.connected) {
92
+ socket.close(1000, "Another devtools client is already connected");
93
+ return;
94
+ }
95
+ clients.add(socket);
96
+ state.connected = true;
97
+ resolveReady?.();
98
+ options.onConnection(socket);
99
+ socket.on("message", data => {
100
+ try {
101
+ options.onMessage(JSON.parse(String(data)));
102
+ } catch {
103
+ // ignore malformed messages
104
+ }
105
+ });
106
+ socket.on("close", () => {
107
+ clients.delete(socket);
108
+ state.connected = clients.size > 0;
109
+ options.onDisconnect();
110
+ });
111
+ });
112
+ return state;
113
+ }
114
+ //# sourceMappingURL=devtools-transport.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["readFileSync","createServer","createHttpServer","cachedAlloyVersion","getAlloyVersion","pkgUrl","URL","import","meta","url","pkg","JSON","parse","version","loadDevtoolsUiHtml","candidates","candidate","createTransport","options","WebSocketServer","devtoolsUiHtml","httpServer","req","res","statusCode","end","setHeader","wss","server","Promise","resolve","reject","once","listen","port","address","actualPort","resolveReady","ready","clients","Set","state","connected","close","clear","on","socket","add","onConnection","data","onMessage","String","delete","size","onDisconnect"],"sources":["../../../src/devtools/devtools-transport.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,4 @@
1
+ export type { BatchMessage, ClientToServerMessage, DebuggerInfoMessage, DiagnosticInfo, DiagnosticsReportMessage, DirectoryAddedMessage, DirectoryRemovedMessage, EffectAddedMessage, EffectEdgeInfo, EffectEdgeUpdatedMessage, EffectInfo, EffectTrackMessage, EffectTriggerMessage, EffectUpdatedMessage, FileAddedMessage, FileRemovedMessage, FileUpdatedMessage, FlushJobsCompleteMessage, RefAddedMessage, RefInfo, RenderCompleteMessage, RenderErrorMessage, RenderErrorStackEntry, RenderNodeAddedMessage, RenderNodeRemovedMessage, RenderNodeUpdatedMessage, RenderResetMessage, RenderTreeNode, RerenderBreakRequestMessage, RerenderRequestMessage, ScopeCreateMessage, ScopeDeleteMessage, ScopeInfo, ScopeUpdateMessage, ServerToClientMessage, SourceLocation, SymbolCreateMessage, SymbolDeleteMessage, SymbolInfo, SymbolUpdateMessage, } from "./devtools/devtools-protocol.js";
2
+ export { enableDevtools, enableDevtoolsAndConnect, resetDevtoolsServerForTests, waitForDevtoolsConnection, } from "./devtools/devtools-server.browser.js";
3
+ export type { DevtoolsServerInfo, EnableDevtoolsOptions, } from "./devtools/devtools-server.browser.js";
4
+ //# sourceMappingURL=devtools-entry.browser.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"devtools-entry.browser.d.ts","sourceRoot":"","sources":["../../src/devtools-entry.browser.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,YAAY,EACZ,qBAAqB,EACrB,mBAAmB,EACnB,cAAc,EACd,wBAAwB,EACxB,qBAAqB,EACrB,uBAAuB,EACvB,kBAAkB,EAClB,cAAc,EACd,wBAAwB,EACxB,UAAU,EACV,kBAAkB,EAClB,oBAAoB,EACpB,oBAAoB,EACpB,gBAAgB,EAChB,kBAAkB,EAClB,kBAAkB,EAClB,wBAAwB,EACxB,eAAe,EACf,OAAO,EACP,qBAAqB,EACrB,kBAAkB,EAClB,qBAAqB,EACrB,sBAAsB,EACtB,wBAAwB,EACxB,wBAAwB,EACxB,kBAAkB,EAClB,cAAc,EACd,2BAA2B,EAC3B,sBAAsB,EACtB,kBAAkB,EAClB,kBAAkB,EAClB,SAAS,EACT,kBAAkB,EAClB,qBAAqB,EACrB,cAAc,EACd,mBAAmB,EACnB,mBAAmB,EACnB,UAAU,EACV,mBAAmB,GACpB,MAAM,iCAAiC,CAAC;AACzC,OAAO,EACL,cAAc,EACd,wBAAwB,EACxB,2BAA2B,EAC3B,yBAAyB,GAC1B,MAAM,uCAAuC,CAAC;AAC/C,YAAY,EACV,kBAAkB,EAClB,qBAAqB,GACtB,MAAM,uCAAuC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { enableDevtools, enableDevtoolsAndConnect, resetDevtoolsServerForTests, waitForDevtoolsConnection } from "./devtools/devtools-server.browser.js";
2
+ //# sourceMappingURL=devtools-entry.browser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["enableDevtools","enableDevtoolsAndConnect","resetDevtoolsServerForTests","waitForDevtoolsConnection"],"sources":["../../src/devtools-entry.browser.ts"],"sourcesContent":[null],"mappings":"AA0CA,SACEA,cAAc,EACdC,wBAAwB,EACxBC,2BAA2B,EAC3BC,yBAAyB,QACpB,uCAAuC","ignoreList":[]}
@@ -0,0 +1,4 @@
1
+ export type { BatchMessage, ClientToServerMessage, DebuggerInfoMessage, DiagnosticInfo, DiagnosticsReportMessage, DirectoryAddedMessage, DirectoryRemovedMessage, EffectAddedMessage, EffectEdgeInfo, EffectEdgeUpdatedMessage, EffectInfo, EffectTrackMessage, EffectTriggerMessage, EffectUpdatedMessage, FileAddedMessage, FileRemovedMessage, FileUpdatedMessage, FlushJobsCompleteMessage, RefAddedMessage, RefInfo, RenderCompleteMessage, RenderErrorMessage, RenderErrorStackEntry, RenderNodeAddedMessage, RenderNodeRemovedMessage, RenderNodeUpdatedMessage, RenderResetMessage, RenderTreeNode, RerenderBreakRequestMessage, RerenderRequestMessage, ScopeCreateMessage, ScopeDeleteMessage, ScopeInfo, ScopeUpdateMessage, ServerToClientMessage, SourceLocation, SymbolCreateMessage, SymbolDeleteMessage, SymbolInfo, SymbolUpdateMessage, } from "./devtools/devtools-protocol.js";
2
+ export { enableDevtools, enableDevtoolsAndConnect, resetDevtoolsServerForTests, waitForDevtoolsConnection, } from "./devtools/devtools-server.js";
3
+ export type { DevtoolsServerInfo, EnableDevtoolsOptions, } from "./devtools/devtools-server.js";
4
+ //# sourceMappingURL=devtools-entry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"devtools-entry.d.ts","sourceRoot":"","sources":["../../src/devtools-entry.ts"],"names":[],"mappings":"AAAA,YAAY,EAEV,YAAY,EACZ,qBAAqB,EACrB,mBAAmB,EACnB,cAAc,EACd,wBAAwB,EACxB,qBAAqB,EACrB,uBAAuB,EACvB,kBAAkB,EAClB,cAAc,EACd,wBAAwB,EACxB,UAAU,EACV,kBAAkB,EAClB,oBAAoB,EACpB,oBAAoB,EACpB,gBAAgB,EAChB,kBAAkB,EAClB,kBAAkB,EAClB,wBAAwB,EACxB,eAAe,EACf,OAAO,EACP,qBAAqB,EACrB,kBAAkB,EAClB,qBAAqB,EACrB,sBAAsB,EACtB,wBAAwB,EACxB,wBAAwB,EACxB,kBAAkB,EAClB,cAAc,EAEd,2BAA2B,EAC3B,sBAAsB,EACtB,kBAAkB,EAClB,kBAAkB,EAClB,SAAS,EACT,kBAAkB,EAClB,qBAAqB,EACrB,cAAc,EACd,mBAAmB,EACnB,mBAAmB,EACnB,UAAU,EACV,mBAAmB,GACpB,MAAM,iCAAiC,CAAC;AACzC,OAAO,EACL,cAAc,EACd,wBAAwB,EACxB,2BAA2B,EAC3B,yBAAyB,GAC1B,MAAM,+BAA+B,CAAC;AACvC,YAAY,EACV,kBAAkB,EAClB,qBAAqB,GACtB,MAAM,+BAA+B,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { enableDevtools, enableDevtoolsAndConnect, resetDevtoolsServerForTests, waitForDevtoolsConnection } from "./devtools/devtools-server.js";
2
+ //# sourceMappingURL=devtools-entry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["enableDevtools","enableDevtoolsAndConnect","resetDevtoolsServerForTests","waitForDevtoolsConnection"],"sources":["../../src/devtools-entry.ts"],"sourcesContent":[null],"mappings":"AA4CA,SACEA,cAAc,EACdC,wBAAwB,EACxBC,2BAA2B,EAC3BC,yBAAyB,QACpB,+BAA+B","ignoreList":[]}