@alloy-js/core 0.23.0-dev.10 → 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 (131) hide show
  1. package/dist/devtools/index.html +29 -17
  2. package/dist/src/binder.d.ts.map +1 -1
  3. package/dist/src/binder.js +5 -0
  4. package/dist/src/binder.js.map +1 -1
  5. package/dist/src/components/For.d.ts.map +1 -1
  6. package/dist/src/components/For.js +1 -1
  7. package/dist/src/components/For.js.map +1 -1
  8. package/dist/src/components/List.d.ts.map +1 -1
  9. package/dist/src/components/List.js +1 -1
  10. package/dist/src/components/List.js.map +1 -1
  11. package/dist/src/components/Switch.d.ts.map +1 -1
  12. package/dist/src/components/Switch.js +1 -1
  13. package/dist/src/components/Switch.js.map +1 -1
  14. package/dist/src/debug/diagnostics.test.js +3 -2
  15. package/dist/src/debug/diagnostics.test.js.map +1 -1
  16. package/dist/src/debug/effects.d.ts +12 -4
  17. package/dist/src/debug/effects.d.ts.map +1 -1
  18. package/dist/src/debug/effects.js +182 -52
  19. package/dist/src/debug/effects.js.map +1 -1
  20. package/dist/src/debug/effects.test.js +213 -41
  21. package/dist/src/debug/effects.test.js.map +1 -1
  22. package/dist/src/debug/files.d.ts.map +1 -1
  23. package/dist/src/debug/files.js +7 -18
  24. package/dist/src/debug/files.js.map +1 -1
  25. package/dist/src/debug/files.test.js +13 -36
  26. package/dist/src/debug/files.test.js.map +1 -1
  27. package/dist/src/debug/index.d.ts +4 -2
  28. package/dist/src/debug/index.d.ts.map +1 -1
  29. package/dist/src/debug/index.js +4 -2
  30. package/dist/src/debug/index.js.map +1 -1
  31. package/dist/src/debug/message-format.test.d.ts +2 -0
  32. package/dist/src/debug/message-format.test.d.ts.map +1 -0
  33. package/dist/src/debug/message-format.test.js +700 -0
  34. package/dist/src/debug/message-format.test.js.map +1 -0
  35. package/dist/src/debug/render-tree-orphans.test.d.ts +2 -0
  36. package/dist/src/debug/render-tree-orphans.test.d.ts.map +1 -0
  37. package/dist/src/debug/render-tree-orphans.test.js +297 -0
  38. package/dist/src/debug/render-tree-orphans.test.js.map +1 -0
  39. package/dist/src/debug/render.d.ts.map +1 -1
  40. package/dist/src/debug/render.js +83 -130
  41. package/dist/src/debug/render.js.map +1 -1
  42. package/dist/src/debug/render.test.js +91 -128
  43. package/dist/src/debug/render.test.js.map +1 -1
  44. package/dist/src/debug/symbols.d.ts +6 -5
  45. package/dist/src/debug/symbols.d.ts.map +1 -1
  46. package/dist/src/debug/symbols.js +46 -23
  47. package/dist/src/debug/symbols.js.map +1 -1
  48. package/dist/src/debug/symbols.test.js +15 -26
  49. package/dist/src/debug/symbols.test.js.map +1 -1
  50. package/dist/src/debug/trace-writer.d.ts +55 -0
  51. package/dist/src/debug/trace-writer.d.ts.map +1 -0
  52. package/dist/src/debug/trace-writer.js +658 -0
  53. package/dist/src/debug/trace-writer.js.map +1 -0
  54. package/dist/src/debug/trace.d.ts +10 -10
  55. package/dist/src/debug/trace.d.ts.map +1 -1
  56. package/dist/src/debug/trace.js +23 -20
  57. package/dist/src/debug/trace.js.map +1 -1
  58. package/dist/src/devtools/devtools-protocol.d.ts +318 -161
  59. package/dist/src/devtools/devtools-protocol.d.ts.map +1 -1
  60. package/dist/src/devtools/devtools-server.browser.d.ts +0 -5
  61. package/dist/src/devtools/devtools-server.browser.d.ts.map +1 -1
  62. package/dist/src/devtools/devtools-server.browser.js +0 -3
  63. package/dist/src/devtools/devtools-server.browser.js.map +1 -1
  64. package/dist/src/devtools/devtools-server.d.ts +0 -6
  65. package/dist/src/devtools/devtools-server.d.ts.map +1 -1
  66. package/dist/src/devtools/devtools-server.js +212 -24
  67. package/dist/src/devtools/devtools-server.js.map +1 -1
  68. package/dist/src/devtools/devtools-transport.d.ts +2 -2
  69. package/dist/src/devtools/devtools-transport.d.ts.map +1 -1
  70. package/dist/src/devtools/devtools-transport.js +2 -2
  71. package/dist/src/devtools/devtools-transport.js.map +1 -1
  72. package/dist/src/devtools-entry.browser.d.ts +1 -1
  73. package/dist/src/devtools-entry.browser.d.ts.map +1 -1
  74. package/dist/src/devtools-entry.browser.js.map +1 -1
  75. package/dist/src/devtools-entry.d.ts +1 -1
  76. package/dist/src/devtools-entry.d.ts.map +1 -1
  77. package/dist/src/devtools-entry.js.map +1 -1
  78. package/dist/src/diagnostics.d.ts.map +1 -1
  79. package/dist/src/diagnostics.js +5 -5
  80. package/dist/src/diagnostics.js.map +1 -1
  81. package/dist/src/reactivity.d.ts +13 -2
  82. package/dist/src/reactivity.d.ts.map +1 -1
  83. package/dist/src/reactivity.js +96 -13
  84. package/dist/src/reactivity.js.map +1 -1
  85. package/dist/src/render.d.ts.map +1 -1
  86. package/dist/src/render.js +84 -30
  87. package/dist/src/render.js.map +1 -1
  88. package/dist/src/scheduler.d.ts +5 -0
  89. package/dist/src/scheduler.d.ts.map +1 -1
  90. package/dist/src/scheduler.js +94 -23
  91. package/dist/src/scheduler.js.map +1 -1
  92. package/dist/src/utils.d.ts.map +1 -1
  93. package/dist/src/utils.js +11 -5
  94. package/dist/src/utils.js.map +1 -1
  95. package/dist/testing/devtools-utils.d.ts +12 -3
  96. package/dist/testing/devtools-utils.d.ts.map +1 -1
  97. package/dist/testing/devtools-utils.js +26 -4
  98. package/dist/testing/devtools-utils.js.map +1 -1
  99. package/dist/tsconfig.tsbuildinfo +1 -1
  100. package/package.json +1 -1
  101. package/src/binder.ts +47 -38
  102. package/src/components/For.tsx +14 -10
  103. package/src/components/List.tsx +7 -4
  104. package/src/components/Switch.tsx +11 -7
  105. package/src/debug/diagnostics.test.tsx +3 -2
  106. package/src/debug/effects.test.tsx +248 -36
  107. package/src/debug/effects.ts +276 -62
  108. package/src/debug/files.test.tsx +15 -35
  109. package/src/debug/files.ts +11 -11
  110. package/src/debug/index.ts +4 -0
  111. package/src/debug/message-format.test.tsx +759 -0
  112. package/src/debug/render-tree-orphans.test.tsx +344 -0
  113. package/src/debug/render.test.tsx +96 -118
  114. package/src/debug/render.ts +183 -124
  115. package/src/debug/symbols.test.tsx +19 -20
  116. package/src/debug/symbols.ts +106 -23
  117. package/src/debug/trace-writer.ts +969 -0
  118. package/src/debug/trace.ts +25 -28
  119. package/src/devtools/devtools-protocol.ts +361 -176
  120. package/src/devtools/devtools-server.browser.ts +0 -9
  121. package/src/devtools/devtools-server.ts +210 -32
  122. package/src/devtools/devtools-transport.ts +4 -4
  123. package/src/devtools-entry.browser.ts +11 -15
  124. package/src/devtools-entry.ts +9 -15
  125. package/src/diagnostics.ts +14 -5
  126. package/src/reactivity.ts +113 -17
  127. package/src/render.ts +104 -30
  128. package/src/scheduler.ts +145 -26
  129. package/src/utils.tsx +7 -4
  130. package/temp/api.json +142 -20
  131. package/testing/devtools-utils.ts +46 -4
@@ -2,14 +2,20 @@
2
2
  * Trace helpers and configuration.
3
3
  */
4
4
  import type { ServerToClientMessage } from "../devtools/devtools-protocol.js";
5
- import {
6
- broadcastDevtoolsMessage,
7
- isDevtoolsEnabled,
8
- type DevtoolsMessage,
9
- } from "../devtools/devtools-server.js";
5
+ import { isDevtoolsEnabled } from "../devtools/devtools-server.js";
10
6
  import { untrack } from "../reactivity.js";
7
+ import { initTrace, isTraceEnabled } from "./trace-writer.js";
11
8
 
12
9
  export { isDevtoolsEnabled } from "../devtools/devtools-server.js";
10
+ export { isTraceEnabled } from "./trace-writer.js";
11
+
12
+ /**
13
+ * Returns true when any debug instrumentation is active:
14
+ * devtools, console trace, or ALLOY_DEBUG_TRACE.
15
+ */
16
+ export function isDebugEnabled(): boolean {
17
+ return isDevtoolsEnabled() || isConsoleTraceEnabled() || isTraceEnabled();
18
+ }
13
19
 
14
20
  // ─────────────────────────────────────────────────────────────────────────────
15
21
  // Environment configuration
@@ -58,6 +64,19 @@ if (tracePhases.size > 0) {
58
64
  );
59
65
  }
60
66
 
67
+ // Initialize SQLite trace writer if ALLOY_DEBUG_TRACE is set
68
+ const traceDbEnv = process.env.ALLOY_DEBUG_TRACE;
69
+ if (traceDbEnv) {
70
+ const traceDbPath =
71
+ traceDbEnv === "1" || traceDbEnv === "true" ? "alloy-trace.db" : traceDbEnv;
72
+ try {
73
+ await initTrace(traceDbPath);
74
+ } catch (e) {
75
+ // eslint-disable-next-line no-console
76
+ console.warn(`Failed to initialize trace database at ${traceDbPath}:`, e);
77
+ }
78
+ }
79
+
61
80
  // ─────────────────────────────────────────────────────────────────────────────
62
81
  // Trace phases
63
82
  // ─────────────────────────────────────────────────────────────────────────────
@@ -240,7 +259,7 @@ export function traceType(phase: TracePhaseInfo): string {
240
259
  }
241
260
 
242
261
  export function logDevtoolsMessage(
243
- message: ServerToClientMessage | DevtoolsMessage,
262
+ message: ServerToClientMessage | { type: string; [key: string]: unknown },
244
263
  ) {
245
264
  if (!isConsoleTraceEnabled()) return;
246
265
  const type = String(message.type ?? "");
@@ -254,21 +273,6 @@ export function logDevtoolsMessage(
254
273
  console.log("devtools:", message.type, message);
255
274
  }
256
275
 
257
- /**
258
- * Emit a devtools message. Logs to console if tracing is enabled for the
259
- * message's area, and broadcasts over the WebSocket if devtools are connected.
260
- *
261
- * Accepts both strictly-typed protocol messages and loosely-typed trace
262
- * messages (which construct the type string dynamically).
263
- */
264
- export function emitDevtoolsMessage(
265
- message: ServerToClientMessage | DevtoolsMessage,
266
- ) {
267
- logDevtoolsMessage(message);
268
- if (!isDevtoolsEnabled()) return;
269
- broadcastDevtoolsMessage(message as DevtoolsMessage);
270
- }
271
-
272
276
  /**
273
277
  * Low-level trace function for emitting console output.
274
278
  * Use the `debug` object methods for most use cases.
@@ -302,11 +306,4 @@ export function trace(
302
306
  "\n",
303
307
  );
304
308
  }
305
-
306
- if (isDevtoolsEnabled()) {
307
- broadcastDevtoolsMessage({
308
- type: traceType(phase),
309
- triggerIds: [...triggerIds],
310
- });
311
- }
312
309
  }