@alloy-js/core 0.23.0-dev.1 → 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 (263) 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} +79 -82
  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 +17 -1
  123. package/dist/src/render-stack.d.ts.map +1 -1
  124. package/dist/src/render-stack.js +57 -1
  125. package/dist/src/render-stack.js.map +1 -1
  126. package/dist/src/render.d.ts +8 -15
  127. package/dist/src/render.d.ts.map +1 -1
  128. package/dist/src/render.js +362 -103
  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/scheduler.d.ts +3 -0
  134. package/dist/src/scheduler.d.ts.map +1 -1
  135. package/dist/src/scheduler.js +45 -2
  136. package/dist/src/scheduler.js.map +1 -1
  137. package/dist/src/symbols/basic-symbol.d.ts.map +1 -1
  138. package/dist/src/symbols/basic-symbol.js +6 -1
  139. package/dist/src/symbols/basic-symbol.js.map +1 -1
  140. package/dist/src/symbols/decl.d.ts.map +1 -1
  141. package/dist/src/symbols/decl.js +5 -1
  142. package/dist/src/symbols/decl.js.map +1 -1
  143. package/dist/src/symbols/output-scope.d.ts +2 -1
  144. package/dist/src/symbols/output-scope.d.ts.map +1 -1
  145. package/dist/src/symbols/output-scope.js +13 -8
  146. package/dist/src/symbols/output-scope.js.map +1 -1
  147. package/dist/src/symbols/output-symbol.d.ts +1 -0
  148. package/dist/src/symbols/output-symbol.d.ts.map +1 -1
  149. package/dist/src/symbols/output-symbol.js +23 -6
  150. package/dist/src/symbols/output-symbol.js.map +1 -1
  151. package/dist/src/symbols/symbol-flow.d.ts.map +1 -1
  152. package/dist/src/symbols/symbol-flow.js +22 -6
  153. package/dist/src/symbols/symbol-flow.js.map +1 -1
  154. package/dist/src/symbols/symbol-slot.d.ts.map +1 -1
  155. package/dist/src/symbols/symbol-slot.js +15 -0
  156. package/dist/src/symbols/symbol-slot.js.map +1 -1
  157. package/dist/src/symbols/symbol-slot.test.d.ts +2 -0
  158. package/dist/src/symbols/symbol-slot.test.d.ts.map +1 -0
  159. package/dist/src/symbols/symbol-slot.test.js +35 -0
  160. package/dist/src/symbols/symbol-slot.test.js.map +1 -0
  161. package/dist/src/symbols/symbol-table.d.ts.map +1 -1
  162. package/dist/src/symbols/symbol-table.js +6 -5
  163. package/dist/src/symbols/symbol-table.js.map +1 -1
  164. package/dist/src/trace.d.ts +2 -0
  165. package/dist/src/trace.d.ts.map +1 -0
  166. package/dist/src/trace.js +2 -0
  167. package/dist/src/trace.js.map +1 -0
  168. package/dist/src/tracer.d.ts +2 -228
  169. package/dist/src/tracer.d.ts.map +1 -1
  170. package/dist/src/tracer.js +5 -298
  171. package/dist/src/tracer.js.map +1 -1
  172. package/dist/src/utils.d.ts.map +1 -1
  173. package/dist/src/utils.js +5 -0
  174. package/dist/src/utils.js.map +1 -1
  175. package/dist/test/components/append-file.test.d.ts.map +1 -1
  176. package/dist/test/components/append-file.test.js +18 -10
  177. package/dist/test/components/append-file.test.js.map +1 -1
  178. package/dist/test/components/template-file.test.d.ts.map +1 -1
  179. package/dist/test/components/template-file.test.js +6 -4
  180. package/dist/test/components/template-file.test.js.map +1 -1
  181. package/dist/test/rendering/basic.test.js +3 -0
  182. package/dist/test/rendering/basic.test.js.map +1 -1
  183. package/dist/test/rendering/print-render-stack.test.d.ts.map +1 -1
  184. package/dist/test/rendering/print-render-stack.test.js +91 -98
  185. package/dist/test/rendering/print-render-stack.test.js.map +1 -1
  186. package/dist/testing/create-test-wrapper.d.ts +1 -1
  187. package/dist/testing/create-test-wrapper.d.ts.map +1 -1
  188. package/dist/testing/create-test-wrapper.js +1 -1
  189. package/dist/testing/create-test-wrapper.js.map +1 -1
  190. package/dist/testing/devtools-utils.d.ts +26 -0
  191. package/dist/testing/devtools-utils.d.ts.map +1 -0
  192. package/dist/testing/devtools-utils.js +140 -0
  193. package/dist/testing/devtools-utils.js.map +1 -0
  194. package/dist/testing/extend-expect.d.ts.map +1 -1
  195. package/dist/testing/extend-expect.js +63 -1
  196. package/dist/testing/extend-expect.js.map +1 -1
  197. package/dist/testing/render.d.ts +2 -2
  198. package/dist/testing/render.d.ts.map +1 -1
  199. package/dist/testing/render.js +2 -2
  200. package/dist/testing/render.js.map +1 -1
  201. package/dist/tsconfig.tsbuildinfo +1 -1
  202. package/package.json +21 -7
  203. package/scripts/copy-devtools-ui.mjs +26 -0
  204. package/src/binder.ts +71 -16
  205. package/src/components/AppendFile.tsx +14 -9
  206. package/src/components/Block.tsx +1 -1
  207. package/src/components/Declaration.tsx +2 -1
  208. package/src/components/Scope.tsx +4 -1
  209. package/src/components/TemplateFile.tsx +18 -9
  210. package/src/content-slot.tsx +6 -6
  211. package/src/context.ts +15 -4
  212. package/src/{debug.ts → debug/cli.ts} +114 -125
  213. package/src/debug/diagnostics.test.tsx +55 -0
  214. package/src/debug/effects.test.tsx +96 -0
  215. package/src/debug/effects.ts +313 -0
  216. package/src/debug/files.test.tsx +96 -0
  217. package/src/debug/files.ts +40 -0
  218. package/src/debug/index.ts +126 -0
  219. package/src/debug/render.test.tsx +379 -0
  220. package/src/debug/render.ts +639 -0
  221. package/src/debug/serialize.ts +85 -0
  222. package/src/debug/symbols.test.tsx +106 -0
  223. package/src/debug/symbols.ts +230 -0
  224. package/src/debug/trace.ts +312 -0
  225. package/src/devtools/devtools-protocol.ts +312 -0
  226. package/src/devtools/devtools-server.browser.ts +71 -0
  227. package/src/devtools/devtools-server.ts +290 -0
  228. package/src/devtools/devtools-transport.ts +154 -0
  229. package/src/devtools-entry.browser.ts +52 -0
  230. package/src/devtools-entry.ts +54 -0
  231. package/src/diagnostics.ts +141 -0
  232. package/src/index.ts +2 -6
  233. package/src/print-hook.ts +22 -0
  234. package/src/reactive-union-set.ts +71 -41
  235. package/src/reactivity.ts +206 -23
  236. package/src/render-stack.ts +68 -1
  237. package/src/render.ts +464 -157
  238. package/src/resource.ts +28 -19
  239. package/src/scheduler.ts +55 -3
  240. package/src/symbols/basic-symbol.ts +6 -1
  241. package/src/symbols/decl.ts +5 -1
  242. package/src/symbols/output-scope.ts +21 -12
  243. package/src/symbols/output-symbol.ts +33 -12
  244. package/src/symbols/symbol-flow.ts +68 -37
  245. package/src/symbols/symbol-slot.test.tsx +41 -0
  246. package/src/symbols/symbol-slot.tsx +47 -20
  247. package/src/symbols/symbol-table.ts +6 -10
  248. package/src/trace.ts +1 -0
  249. package/src/tracer.ts +13 -242
  250. package/src/utils.tsx +22 -13
  251. package/temp/api.json +1675 -162
  252. package/test/components/append-file.test.tsx +36 -29
  253. package/test/components/template-file.test.tsx +11 -11
  254. package/test/rendering/basic.test.tsx +4 -0
  255. package/test/rendering/print-render-stack.test.tsx +52 -43
  256. package/testing/create-test-wrapper.tsx +1 -1
  257. package/testing/devtools-utils.ts +203 -0
  258. package/testing/extend-expect.ts +89 -0
  259. package/testing/render.ts +2 -2
  260. package/testing/vitest.d.ts +9 -0
  261. package/dist/src/debug.d.ts +0 -14
  262. package/dist/src/debug.d.ts.map +0 -1
  263. package/dist/src/debug.js.map +0 -1
@@ -1,6 +1,8 @@
1
1
  import {
2
2
  Children,
3
+ Diagnostic,
3
4
  getContextForRenderNode,
5
+ getDiagnosticsForTree,
4
6
  printTree,
5
7
  RenderedTextTree,
6
8
  renderTree,
@@ -16,6 +18,11 @@ interface ToRenderToOptions {
16
18
  useTabs?: boolean;
17
19
  }
18
20
 
21
+ interface ExpectedDiagnostic {
22
+ message: string | RegExp;
23
+ severity?: Diagnostic["severity"];
24
+ }
25
+
19
26
  expect.extend({
20
27
  toRenderTo(
21
28
  received: Children,
@@ -38,6 +45,24 @@ expect.extend({
38
45
  const actual = getFilesFromTree(tree, renderOptions);
39
46
  return validateRender(actual, expectedRaw, this.isNot);
40
47
  },
48
+ toHaveDiagnostics(
49
+ received: Children,
50
+ expectedDiagnostics: ExpectedDiagnostic[],
51
+ ) {
52
+ const tree = renderTree(received);
53
+ flushJobs();
54
+ const diagnostics = getDiagnosticsForTree(tree);
55
+ return validateDiagnostics(diagnostics, expectedDiagnostics, this.isNot);
56
+ },
57
+ async toHaveDiagnosticsAsync(
58
+ received: Children,
59
+ expectedDiagnostics: ExpectedDiagnostic[],
60
+ ) {
61
+ const tree = renderTree(received);
62
+ await flushJobsAsync();
63
+ const diagnostics = getDiagnosticsForTree(tree);
64
+ return validateDiagnostics(diagnostics, expectedDiagnostics, this.isNot);
65
+ },
41
66
  });
42
67
 
43
68
  function isAsymmetricMatcher(value: any): value is {
@@ -108,6 +133,70 @@ function validateRender(
108
133
  }
109
134
  }
110
135
 
136
+ function validateDiagnostics(
137
+ actual: Diagnostic[],
138
+ expected: ExpectedDiagnostic[],
139
+ isNot: boolean,
140
+ ) {
141
+ const message = () => `Diagnostics are${isNot ? " not" : ""} incorrect`;
142
+
143
+ if (actual.length !== expected.length) {
144
+ return {
145
+ pass: false,
146
+ message: () =>
147
+ `Expected ${expected.length} diagnostic(s), but got ${actual.length}`,
148
+ actual: actual.map((d) => ({ message: d.message, severity: d.severity })),
149
+ expected,
150
+ };
151
+ }
152
+
153
+ for (let i = 0; i < expected.length; i++) {
154
+ const actualDiag = actual[i];
155
+ const expectedDiag = expected[i];
156
+
157
+ const messageMatches =
158
+ expectedDiag.message instanceof RegExp ?
159
+ expectedDiag.message.test(actualDiag.message)
160
+ : actualDiag.message === expectedDiag.message;
161
+
162
+ if (!messageMatches) {
163
+ return {
164
+ pass: false,
165
+ message: () =>
166
+ `Diagnostic ${i} message mismatch: expected "${expectedDiag.message}", got "${actualDiag.message}"`,
167
+ actual: actual.map((d) => ({
168
+ message: d.message,
169
+ severity: d.severity,
170
+ })),
171
+ expected,
172
+ };
173
+ }
174
+
175
+ if (
176
+ expectedDiag.severity !== undefined &&
177
+ actualDiag.severity !== expectedDiag.severity
178
+ ) {
179
+ return {
180
+ pass: false,
181
+ message: () =>
182
+ `Diagnostic ${i} severity mismatch: expected "${expectedDiag.severity}", got "${actualDiag.severity}"`,
183
+ actual: actual.map((d) => ({
184
+ message: d.message,
185
+ severity: d.severity,
186
+ })),
187
+ expected,
188
+ };
189
+ }
190
+ }
191
+
192
+ return {
193
+ pass: true,
194
+ message,
195
+ actual: actual.map((d) => ({ message: d.message, severity: d.severity })),
196
+ expected,
197
+ };
198
+ }
199
+
111
200
  function getFilesFromTree(tree: RenderedTextTree, options?: ToRenderToOptions) {
112
201
  const files: Record<string, string> = {};
113
202
 
package/testing/render.ts CHANGED
@@ -1,6 +1,6 @@
1
- import { Children, printTree, renderTree } from "@alloy-js/core";
1
+ import { Children, printTree, renderTree } from "../src/index.js";
2
2
 
3
- export { printTree } from "@alloy-js/core";
3
+ export { printTree } from "../src/index.js";
4
4
 
5
5
  export function renderToString(element: Children) {
6
6
  return printTree(renderTree(element));
@@ -6,6 +6,11 @@ interface ToRenderToRenderOptions {
6
6
  useTabs?: boolean;
7
7
  }
8
8
 
9
+ interface ExpectedDiagnostic {
10
+ message: string | RegExp;
11
+ severity?: "info" | "warning" | "error";
12
+ }
13
+
9
14
  interface CustomMatchers<R = unknown> {
10
15
  toRenderTo: (
11
16
  str: string | Record<string, string>,
@@ -15,6 +20,10 @@ interface CustomMatchers<R = unknown> {
15
20
  str: string | Record<string, string>,
16
21
  options?: ToRenderToRenderOptions,
17
22
  ) => Promise<R>;
23
+ toHaveDiagnostics: (expectedDiagnostics: ExpectedDiagnostic[]) => R;
24
+ toHaveDiagnosticsAsync: (
25
+ expectedDiagnostics: ExpectedDiagnostic[],
26
+ ) => Promise<R>;
18
27
  }
19
28
 
20
29
  declare module "vitest" {
@@ -1,14 +0,0 @@
1
- interface DebugInterface {
2
- component: {
3
- stack(): void;
4
- tree(): void;
5
- watch(): void;
6
- render(): void;
7
- context(): void;
8
- };
9
- }
10
- declare global {
11
- var debug: DebugInterface;
12
- }
13
- export {};
14
- //# sourceMappingURL=debug.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"debug.d.ts","sourceRoot":"","sources":["../../src/debug.ts"],"names":[],"mappings":"AAMA,UAAU,cAAc;IACtB,SAAS,EAAE;QACT,KAAK,IAAI,IAAI,CAAC;QACd,IAAI,IAAI,IAAI,CAAC;QACb,KAAK,IAAI,IAAI,CAAC;QACd,MAAM,IAAI,IAAI,CAAC;QACf,OAAO,IAAI,IAAI,CAAC;KACjB,CAAC;CACH;AAwGD,OAAO,CAAC,MAAM,CAAC;IACb,IAAI,KAAK,EAAE,cAAc,CAAC;CAC3B"}
@@ -1 +0,0 @@
1
- {"version":3,"names":["isReactive","Table","pc","contextsByKey","getContext","debug","component","stack","debugStack","tree","console","log","watch","render","context","debugContext","currentContext","foundContexts","Object","getOwnPropertySymbols","push","componentOwner","name","process","stdout","write","style","table","kvTable","props","hAlign","content","keys","length","dumpValue","gray","map","c","printContext","join","toString","owner","omitOwner","key","contextDefinition","get","contextName","value","output","findContextOwner","undefined","globalThis","primitive","blue","String","symbol","bgBlack","white","bgBlue","reactiveTag","greenBright","level","propValue","entries","sep","chars","top","bottom","left","mid","right","middle"],"sources":["../../src/debug.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}