@plumix/core 0.4.0 → 0.5.0

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 (199) hide show
  1. package/dist/auth/authenticator.d.ts +8 -1
  2. package/dist/auth/authenticator.d.ts.map +1 -1
  3. package/dist/auth/authenticator.js +15 -0
  4. package/dist/auth/authenticator.js.map +1 -1
  5. package/dist/auth/bearer.js +2 -2
  6. package/dist/auth/bearer.js.map +1 -1
  7. package/dist/cache/decision.d.ts +7 -3
  8. package/dist/cache/decision.d.ts.map +1 -1
  9. package/dist/cache/decision.js +8 -6
  10. package/dist/cache/decision.js.map +1 -1
  11. package/dist/cache/read-through.d.ts +3 -0
  12. package/dist/cache/read-through.d.ts.map +1 -1
  13. package/dist/cache/read-through.js +14 -7
  14. package/dist/cache/read-through.js.map +1 -1
  15. package/dist/config.d.ts +9 -0
  16. package/dist/config.d.ts.map +1 -1
  17. package/dist/config.js +1 -0
  18. package/dist/config.js.map +1 -1
  19. package/dist/context/app.d.ts +38 -6
  20. package/dist/context/app.d.ts.map +1 -1
  21. package/dist/context/app.js +41 -8
  22. package/dist/context/app.js.map +1 -1
  23. package/dist/context/collector.d.ts +9 -0
  24. package/dist/context/collector.d.ts.map +1 -0
  25. package/dist/context/collector.js +130 -0
  26. package/dist/context/collector.js.map +1 -0
  27. package/dist/context/index.d.ts +1 -0
  28. package/dist/context/index.d.ts.map +1 -1
  29. package/dist/context/index.js +1 -0
  30. package/dist/context/index.js.map +1 -1
  31. package/dist/context/stores.d.ts +2 -9
  32. package/dist/context/stores.d.ts.map +1 -1
  33. package/dist/context/stores.js.map +1 -1
  34. package/dist/context/telemetry.d.ts +148 -0
  35. package/dist/context/telemetry.d.ts.map +1 -0
  36. package/dist/context/telemetry.js +20 -0
  37. package/dist/context/telemetry.js.map +1 -0
  38. package/dist/context/traced-fetch.d.ts +14 -0
  39. package/dist/context/traced-fetch.d.ts.map +1 -0
  40. package/dist/context/traced-fetch.js +33 -0
  41. package/dist/context/traced-fetch.js.map +1 -0
  42. package/dist/db/libsql.d.ts.map +1 -1
  43. package/dist/db/libsql.js +6 -12
  44. package/dist/db/libsql.js.map +1 -1
  45. package/dist/db/query-kind.d.ts +8 -0
  46. package/dist/db/query-kind.d.ts.map +1 -0
  47. package/dist/db/query-kind.js +11 -0
  48. package/dist/db/query-kind.js.map +1 -0
  49. package/dist/db/trace-libsql.d.ts +15 -0
  50. package/dist/db/trace-libsql.d.ts.map +1 -0
  51. package/dist/db/trace-libsql.js +37 -0
  52. package/dist/db/trace-libsql.js.map +1 -0
  53. package/dist/db/trace.d.ts +21 -0
  54. package/dist/db/trace.d.ts.map +1 -0
  55. package/dist/db/trace.js +64 -0
  56. package/dist/db/trace.js.map +1 -0
  57. package/dist/debug-bar/consumer.d.ts +12 -0
  58. package/dist/debug-bar/consumer.d.ts.map +1 -0
  59. package/dist/debug-bar/consumer.js +13 -0
  60. package/dist/debug-bar/consumer.js.map +1 -0
  61. package/dist/debug-bar/format-param.d.ts +6 -4
  62. package/dist/debug-bar/format-param.d.ts.map +1 -1
  63. package/dist/debug-bar/format-param.js +6 -9
  64. package/dist/debug-bar/format-param.js.map +1 -1
  65. package/dist/debug-bar/highlight-sql.d.ts +0 -3
  66. package/dist/debug-bar/highlight-sql.d.ts.map +1 -1
  67. package/dist/debug-bar/highlight-sql.js +0 -6
  68. package/dist/debug-bar/highlight-sql.js.map +1 -1
  69. package/dist/debug-bar/panels/database.d.ts +6 -4
  70. package/dist/debug-bar/panels/database.d.ts.map +1 -1
  71. package/dist/debug-bar/panels/database.js +44 -8
  72. package/dist/debug-bar/panels/database.js.map +1 -1
  73. package/dist/debug-bar/panels/template.d.ts +1 -1
  74. package/dist/debug-bar/panels/template.d.ts.map +1 -1
  75. package/dist/debug-bar/panels/template.js +16 -2
  76. package/dist/debug-bar/panels/template.js.map +1 -1
  77. package/dist/debug-bar/panels/timeline.js +1 -1
  78. package/dist/debug-bar/panels/timeline.js.map +1 -1
  79. package/dist/debug-bar/styles.d.ts.map +1 -1
  80. package/dist/debug-bar/styles.js +5 -0
  81. package/dist/debug-bar/styles.js.map +1 -1
  82. package/dist/debug-bar/timeline-model.d.ts +3 -3
  83. package/dist/debug-bar/timeline-model.d.ts.map +1 -1
  84. package/dist/debug-bar/timeline-model.js +1 -1
  85. package/dist/debug-bar/timeline-model.js.map +1 -1
  86. package/dist/debug-bar/types.d.ts +1 -1
  87. package/dist/hooks/registry.d.ts.map +1 -1
  88. package/dist/hooks/registry.js +21 -3
  89. package/dist/hooks/registry.js.map +1 -1
  90. package/dist/index.d.ts +4 -2
  91. package/dist/index.d.ts.map +1 -1
  92. package/dist/index.js +4 -4
  93. package/dist/index.js.map +1 -1
  94. package/dist/mcp/server.d.ts.map +1 -1
  95. package/dist/mcp/server.js +9 -3
  96. package/dist/mcp/server.js.map +1 -1
  97. package/dist/plugin/manifest.d.ts +17 -0
  98. package/dist/plugin/manifest.d.ts.map +1 -1
  99. package/dist/plugin/manifest.js +7 -2
  100. package/dist/plugin/manifest.js.map +1 -1
  101. package/dist/plugin/provides-context.d.ts.map +1 -1
  102. package/dist/plugin/provides-context.js +5 -0
  103. package/dist/plugin/provides-context.js.map +1 -1
  104. package/dist/rest/build-handler.d.ts.map +1 -1
  105. package/dist/rest/build-handler.js +14 -1
  106. package/dist/rest/build-handler.js.map +1 -1
  107. package/dist/revisions/snapshot-envelope.d.ts +4 -2
  108. package/dist/revisions/snapshot-envelope.d.ts.map +1 -1
  109. package/dist/revisions/snapshot-envelope.js +6 -3
  110. package/dist/revisions/snapshot-envelope.js.map +1 -1
  111. package/dist/route/render/render-template.d.ts.map +1 -1
  112. package/dist/route/render/render-template.js +23 -14
  113. package/dist/route/render/render-template.js.map +1 -1
  114. package/dist/route/render/template-builders.d.ts +12 -0
  115. package/dist/route/render/template-builders.d.ts.map +1 -1
  116. package/dist/route/render/template-builders.js +20 -0
  117. package/dist/route/render/template-builders.js.map +1 -1
  118. package/dist/route/resolve.d.ts.map +1 -1
  119. package/dist/route/resolve.js +4 -1
  120. package/dist/route/resolve.js.map +1 -1
  121. package/dist/rpc/authenticated.d.ts.map +1 -1
  122. package/dist/rpc/authenticated.js +2 -1
  123. package/dist/rpc/authenticated.js.map +1 -1
  124. package/dist/rpc/build-handler.d.ts.map +1 -1
  125. package/dist/rpc/build-handler.js +12 -0
  126. package/dist/rpc/build-handler.js.map +1 -1
  127. package/dist/rpc/procedures/auth/session.d.ts.map +1 -1
  128. package/dist/rpc/procedures/auth/session.js +2 -1
  129. package/dist/rpc/procedures/auth/session.js.map +1 -1
  130. package/dist/rpc/procedures/entry/helpers.d.ts +21 -0
  131. package/dist/rpc/procedures/entry/helpers.d.ts.map +1 -1
  132. package/dist/rpc/procedures/entry/helpers.js +44 -0
  133. package/dist/rpc/procedures/entry/helpers.js.map +1 -1
  134. package/dist/rpc/procedures/entry/index.d.ts +1 -0
  135. package/dist/rpc/procedures/entry/index.d.ts.map +1 -1
  136. package/dist/rpc/procedures/entry/schemas.d.ts +2 -0
  137. package/dist/rpc/procedures/entry/schemas.d.ts.map +1 -1
  138. package/dist/rpc/procedures/entry/schemas.js +7 -0
  139. package/dist/rpc/procedures/entry/schemas.js.map +1 -1
  140. package/dist/rpc/procedures/entry/update.d.ts +1 -0
  141. package/dist/rpc/procedures/entry/update.d.ts.map +1 -1
  142. package/dist/rpc/procedures/entry/update.js +10 -5
  143. package/dist/rpc/procedures/entry/update.js.map +1 -1
  144. package/dist/rpc/procedures/user/index.d.ts +1 -0
  145. package/dist/rpc/procedures/user/index.d.ts.map +1 -1
  146. package/dist/rpc/procedures/user/schemas.d.ts +1 -0
  147. package/dist/rpc/procedures/user/schemas.d.ts.map +1 -1
  148. package/dist/rpc/procedures/user/schemas.js +5 -0
  149. package/dist/rpc/procedures/user/schemas.js.map +1 -1
  150. package/dist/rpc/procedures/user/update.d.ts +1 -0
  151. package/dist/rpc/procedures/user/update.d.ts.map +1 -1
  152. package/dist/rpc/procedures/user/update.js +10 -1
  153. package/dist/rpc/procedures/user/update.js.map +1 -1
  154. package/dist/rpc/router.d.ts +2 -0
  155. package/dist/rpc/router.d.ts.map +1 -1
  156. package/dist/rpc/schemas.js +6 -6
  157. package/dist/rpc/schemas.js.map +1 -1
  158. package/dist/rpc/validation.d.ts +10 -0
  159. package/dist/rpc/validation.d.ts.map +1 -1
  160. package/dist/rpc/validation.js +10 -0
  161. package/dist/rpc/validation.js.map +1 -1
  162. package/dist/runtime/dispatcher.d.ts.map +1 -1
  163. package/dist/runtime/dispatcher.js +35 -8
  164. package/dist/runtime/dispatcher.js.map +1 -1
  165. package/dist/runtime/load-user-for-public-request.d.ts.map +1 -1
  166. package/dist/runtime/load-user-for-public-request.js +2 -2
  167. package/dist/runtime/load-user-for-public-request.js.map +1 -1
  168. package/dist/runtime/scheduled.d.ts +3 -1
  169. package/dist/runtime/scheduled.d.ts.map +1 -1
  170. package/dist/runtime/scheduled.js +16 -2
  171. package/dist/runtime/scheduled.js.map +1 -1
  172. package/dist/runtime/telemetry-delivery.d.ts +14 -0
  173. package/dist/runtime/telemetry-delivery.d.ts.map +1 -0
  174. package/dist/runtime/telemetry-delivery.js +39 -0
  175. package/dist/runtime/telemetry-delivery.js.map +1 -0
  176. package/dist/test/dispatcher.d.ts +13 -0
  177. package/dist/test/dispatcher.d.ts.map +1 -1
  178. package/dist/test/dispatcher.js +9 -3
  179. package/dist/test/dispatcher.js.map +1 -1
  180. package/dist/test/harness.d.ts.map +1 -1
  181. package/dist/test/harness.js +4 -12
  182. package/dist/test/harness.js.map +1 -1
  183. package/package.json +2 -2
  184. package/dist/context/debug.d.ts +0 -25
  185. package/dist/context/debug.d.ts.map +0 -1
  186. package/dist/context/debug.js +0 -13
  187. package/dist/context/debug.js.map +0 -1
  188. package/dist/debug-bar/collector.d.ts +0 -9
  189. package/dist/debug-bar/collector.d.ts.map +0 -1
  190. package/dist/debug-bar/collector.js +0 -80
  191. package/dist/debug-bar/collector.js.map +0 -1
  192. package/dist/debug-bar/db-query.d.ts +0 -21
  193. package/dist/debug-bar/db-query.d.ts.map +0 -1
  194. package/dist/debug-bar/db-query.js +0 -23
  195. package/dist/debug-bar/db-query.js.map +0 -1
  196. package/dist/debug-bar/trace-libsql.d.ts +0 -18
  197. package/dist/debug-bar/trace-libsql.d.ts.map +0 -1
  198. package/dist/debug-bar/trace-libsql.js +0 -42
  199. package/dist/debug-bar/trace-libsql.js.map +0 -1
@@ -0,0 +1,64 @@
1
+ import { tryGetContext } from "../context/stores.js";
2
+ import { queryKind } from "./query-kind.js";
3
+ // Bound params may carry driver values (blobs, bigints, dates) that a
4
+ // JSON-serializable snapshot can't hold; degrade those to short descriptions.
5
+ function jsonParam(value) {
6
+ if (value === null ||
7
+ typeof value === "string" ||
8
+ typeof value === "number" ||
9
+ typeof value === "boolean") {
10
+ return value;
11
+ }
12
+ if (typeof value === "bigint")
13
+ return value.toString();
14
+ if (value instanceof Date)
15
+ return value.toISOString();
16
+ if (value instanceof Uint8Array || value instanceof ArrayBuffer) {
17
+ return `<blob ${value.byteLength} bytes>`;
18
+ }
19
+ return `<${typeof value}>`;
20
+ }
21
+ function dbSpan(name, setAttributes, run, countRows) {
22
+ const ctx = tryGetContext();
23
+ if (!ctx)
24
+ return run();
25
+ return ctx.telemetry.span(name, (s) => {
26
+ setAttributes(s);
27
+ return run().then((result) => {
28
+ s.set("db.rows", countRows(result));
29
+ return result;
30
+ });
31
+ });
32
+ }
33
+ /**
34
+ * Times one driver-level query as a `db: <kind>` span with the SQL, bound
35
+ * params, and row count as attributes — the single mechanism behind every
36
+ * `ctx.db` driver wrap (libsql, D1, demo proxy). A no-op outside a request;
37
+ * with an inactive collector the span passes through and the lazy params are
38
+ * never serialized. `countRows` reads the driver's result shape: rows
39
+ * returned, or rows affected for a write.
40
+ */
41
+ export function traceDbQuery(query, run, countRows) {
42
+ return dbSpan(`db: ${queryKind(query.sql)}`, (s) => {
43
+ s.set("db.sql", query.sql);
44
+ if (query.params.length > 0) {
45
+ s.set("db.params", () => query.params.map(jsonParam));
46
+ }
47
+ }, run, countRows);
48
+ }
49
+ /**
50
+ * Times a driver-level batch — one round-trip, so one span (labelled by kind
51
+ * when uniform, `db: batch` otherwise), with the per-statement sql/params under
52
+ * a `db.batch` attribute and the row counts summed across results.
53
+ */
54
+ export function traceDbBatch(queries, run, countRows) {
55
+ const kinds = new Set(queries.map((query) => queryKind(query.sql)));
56
+ const kind = kinds.size === 1 ? [...kinds][0] : "batch";
57
+ return dbSpan(`db: ${kind} (${queries.length})`, (s) => {
58
+ s.set("db.batch", () => queries.map((query) => ({
59
+ sql: query.sql,
60
+ params: query.params.map(jsonParam),
61
+ })));
62
+ }, run, (results) => results.reduce((total, result) => total + countRows(result), 0));
63
+ }
64
+ //# sourceMappingURL=trace.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"trace.js","sourceRoot":"","sources":["../../src/db/trace.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ import type { TelemetryConsumer } from "../context/telemetry.js";
2
+ import type { DebugBarInput } from "./config.js";
3
+ /**
4
+ * The debug bar as a telemetry consumer — the first one registered in dev, so
5
+ * the collector activates for the request the bar renders. It has no
6
+ * `onRequestEnd`: the bar reads the live collector mid-request while
7
+ * rendering. Returns null when the bar is configured off, so a disabled bar
8
+ * costs no collection either. Referenced only under the `PLUMIX_DEV` gate and
9
+ * dead-code-eliminated from production builds.
10
+ */
11
+ export declare function debugBarTelemetryConsumer(debugBar: DebugBarInput | undefined): TelemetryConsumer | null;
12
+ //# sourceMappingURL=consumer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"consumer.d.ts","sourceRoot":"","sources":["../../src/debug-bar/consumer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AACjE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAGjD;;;;;;;GAOG;AACH,wBAAgB,yBAAyB,CACvC,QAAQ,EAAE,aAAa,GAAG,SAAS,GAClC,iBAAiB,GAAG,IAAI,CAE1B"}
@@ -0,0 +1,13 @@
1
+ import { normalizeDebugBar } from "./config.js";
2
+ /**
3
+ * The debug bar as a telemetry consumer — the first one registered in dev, so
4
+ * the collector activates for the request the bar renders. It has no
5
+ * `onRequestEnd`: the bar reads the live collector mid-request while
6
+ * rendering. Returns null when the bar is configured off, so a disabled bar
7
+ * costs no collection either. Referenced only under the `PLUMIX_DEV` gate and
8
+ * dead-code-eliminated from production builds.
9
+ */
10
+ export function debugBarTelemetryConsumer(debugBar) {
11
+ return normalizeDebugBar(debugBar).enabled ? { id: "debug-bar" } : null;
12
+ }
13
+ //# sourceMappingURL=consumer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"consumer.js","sourceRoot":"","sources":["../../src/debug-bar/consumer.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAEhD;;;;;;;GAOG;AACH,MAAM,UAAU,yBAAyB,CACvC,QAAmC;IAEnC,OAAO,iBAAiB,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;AAC1E,CAAC"}
@@ -1,13 +1,15 @@
1
- type SqlParamKind = "string" | "number" | "boolean" | "null" | "blob";
1
+ type SqlParamKind = "string" | "number" | "boolean" | "null";
2
2
  export interface DescribedParam {
3
3
  readonly kind: SqlParamKind;
4
4
  readonly text: string;
5
5
  }
6
6
  /**
7
7
  * Describe a bound SQL parameter for the Database panel: its `kind` (for
8
- * per-type coloring) and display `text` (strings quoted, numbers/bigints/
9
- * booleans/null as literals, long strings truncated) — the `?`-form SQL stays
10
- * copyable. One pass so the kind and text can't drift apart.
8
+ * per-type coloring) and display `text` (strings quoted, numbers/booleans/null
9
+ * as literals, long strings truncated) — the `?`-form SQL stays copyable.
10
+ * Params arrive as span-attribute `JsonValue`s (driver values like blobs and
11
+ * bigints were already degraded to strings at record time). One pass so the
12
+ * kind and text can't drift apart.
11
13
  */
12
14
  export declare function describeSqlParam(value: unknown): DescribedParam;
13
15
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"format-param.d.ts","sourceRoot":"","sources":["../../src/debug-bar/format-param.ts"],"names":[],"mappings":"AAEA,KAAK,YAAY,GAAG,QAAQ,GAAG,QAAQ,GAAG,SAAS,GAAG,MAAM,GAAG,MAAM,CAAC;AAEtE,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC;IAC5B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,OAAO,GAAG,cAAc,CAiB/D"}
1
+ {"version":3,"file":"format-param.d.ts","sourceRoot":"","sources":["../../src/debug-bar/format-param.ts"],"names":[],"mappings":"AAEA,KAAK,YAAY,GAAG,QAAQ,GAAG,QAAQ,GAAG,SAAS,GAAG,MAAM,CAAC;AAE7D,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC;IAC5B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB;AAED;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,OAAO,GAAG,cAAc,CAY/D"}
@@ -1,9 +1,11 @@
1
1
  const MAX_LEN = 80;
2
2
  /**
3
3
  * Describe a bound SQL parameter for the Database panel: its `kind` (for
4
- * per-type coloring) and display `text` (strings quoted, numbers/bigints/
5
- * booleans/null as literals, long strings truncated) — the `?`-form SQL stays
6
- * copyable. One pass so the kind and text can't drift apart.
4
+ * per-type coloring) and display `text` (strings quoted, numbers/booleans/null
5
+ * as literals, long strings truncated) — the `?`-form SQL stays copyable.
6
+ * Params arrive as span-attribute `JsonValue`s (driver values like blobs and
7
+ * bigints were already degraded to strings at record time). One pass so the
8
+ * kind and text can't drift apart.
7
9
  */
8
10
  export function describeSqlParam(value) {
9
11
  if (value === null || value === undefined)
@@ -12,16 +14,11 @@ export function describeSqlParam(value) {
12
14
  const text = value.length > MAX_LEN ? `${value.slice(0, MAX_LEN)}…` : value;
13
15
  return { kind: "string", text: `"${text}"` };
14
16
  }
15
- if (typeof value === "bigint")
16
- return { kind: "number", text: value.toString() };
17
17
  if (typeof value === "number")
18
18
  return { kind: "number", text: String(value) };
19
19
  if (typeof value === "boolean")
20
20
  return { kind: "boolean", text: String(value) };
21
- if (value instanceof Uint8Array) {
22
- return { kind: "blob", text: `<blob ${value.byteLength} bytes>` };
23
- }
24
- // Objects/dates are unusual as bound params — JSON gives a readable form.
21
+ // Nested arrays/objects are unusual as params — JSON gives a readable form.
25
22
  return { kind: "string", text: JSON.stringify(value) };
26
23
  }
27
24
  //# sourceMappingURL=format-param.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"format-param.js","sourceRoot":"","sources":["../../src/debug-bar/format-param.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,GAAG,EAAE,CAAC;AASnB;;;;;GAKG;AACH,MAAM,UAAU,gBAAgB,CAAC,KAAc;IAC7C,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS;QACvC,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;IACxC,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,MAAM,IAAI,GAAG,KAAK,CAAC,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC;QAC5E,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,IAAI,GAAG,EAAE,CAAC;IAC/C,CAAC;IACD,IAAI,OAAO,KAAK,KAAK,QAAQ;QAC3B,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,CAAC,QAAQ,EAAE,EAAE,CAAC;IACpD,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;IAC9E,IAAI,OAAO,KAAK,KAAK,SAAS;QAC5B,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;IAClD,IAAI,KAAK,YAAY,UAAU,EAAE,CAAC;QAChC,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,KAAK,CAAC,UAAU,SAAS,EAAE,CAAC;IACpE,CAAC;IACD,0EAA0E;IAC1E,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC;AACzD,CAAC"}
1
+ {"version":3,"file":"format-param.js","sourceRoot":"","sources":["../../src/debug-bar/format-param.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,GAAG,EAAE,CAAC;AASnB;;;;;;;GAOG;AACH,MAAM,UAAU,gBAAgB,CAAC,KAAc;IAC7C,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS;QACvC,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;IACxC,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,MAAM,IAAI,GAAG,KAAK,CAAC,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC;QAC5E,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,IAAI,GAAG,EAAE,CAAC;IAC/C,CAAC;IACD,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;IAC9E,IAAI,OAAO,KAAK,KAAK,SAAS;QAC5B,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;IAClD,4EAA4E;IAC5E,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC;AACzD,CAAC"}
@@ -4,8 +4,5 @@ export interface SqlToken {
4
4
  readonly kind: SqlTokenKind;
5
5
  }
6
6
  export declare function tokenizeSql(sql: string): readonly SqlToken[];
7
- export type QueryKind = "select" | "insert" | "update" | "delete" | "other";
8
- /** The leading statement kind, for the per-query badge/color. */
9
- export declare function queryKind(sql: string): QueryKind;
10
7
  export {};
11
8
  //# sourceMappingURL=highlight-sql.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"highlight-sql.d.ts","sourceRoot":"","sources":["../../src/debug-bar/highlight-sql.ts"],"names":[],"mappings":"AAuDA,KAAK,YAAY,GAAG,SAAS,GAAG,QAAQ,GAAG,QAAQ,GAAG,MAAM,CAAC;AAE7D,MAAM,WAAW,QAAQ;IACvB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC;CAC7B;AAQD,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,QAAQ,EAAE,CAa5D;AAED,MAAM,MAAM,SAAS,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,GAAG,OAAO,CAAC;AAI5E,iEAAiE;AACjE,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,CAGhD"}
1
+ {"version":3,"file":"highlight-sql.d.ts","sourceRoot":"","sources":["../../src/debug-bar/highlight-sql.ts"],"names":[],"mappings":"AAuDA,KAAK,YAAY,GAAG,SAAS,GAAG,QAAQ,GAAG,QAAQ,GAAG,MAAM,CAAC;AAE7D,MAAM,WAAW,QAAQ;IACvB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC;CAC7B;AAQD,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,QAAQ,EAAE,CAa5D"}
@@ -73,10 +73,4 @@ export function tokenizeSql(sql) {
73
73
  }
74
74
  return tokens;
75
75
  }
76
- const KNOWN_KINDS = new Set(["select", "insert", "update", "delete"]);
77
- /** The leading statement kind, for the per-query badge/color. */
78
- export function queryKind(sql) {
79
- const first = sql.trimStart().split(/\s/, 1)[0]?.toLowerCase() ?? "";
80
- return (KNOWN_KINDS.has(first) ? first : "other");
81
- }
82
76
  //# sourceMappingURL=highlight-sql.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"highlight-sql.js","sourceRoot":"","sources":["../../src/debug-bar/highlight-sql.ts"],"names":[],"mappings":"AAAA,4EAA4E;AAC5E,0EAA0E;AAE1E,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC;IACvB,QAAQ;IACR,UAAU;IACV,MAAM;IACN,OAAO;IACP,KAAK;IACL,IAAI;IACJ,KAAK;IACL,IAAI;IACJ,IAAI;IACJ,MAAM;IACN,MAAM;IACN,SAAS;IACT,QAAQ;IACR,MAAM;IACN,QAAQ;IACR,QAAQ;IACR,KAAK;IACL,QAAQ;IACR,MAAM;IACN,MAAM;IACN,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,IAAI;IACJ,IAAI;IACJ,OAAO;IACP,IAAI;IACJ,OAAO;IACP,QAAQ;IACR,OAAO;IACP,QAAQ;IACR,KAAK;IACL,MAAM;IACN,OAAO;IACP,KAAK;IACL,OAAO;IACP,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,WAAW;IACX,QAAQ;IACR,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,KAAK;IACL,QAAQ;CACT,CAAC,CAAC;AASH,0EAA0E;AAC1E,2EAA2E;AAC3E,6CAA6C;AAC7C,MAAM,KAAK,GACT,8EAA8E,CAAC;AAEjF,MAAM,UAAU,WAAW,CAAC,GAAW;IACrC,MAAM,MAAM,GAAe,EAAE,CAAC;IAC9B,KAAK,MAAM,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QACpC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,SAAS;YAAE,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;aAC/D,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,SAAS;YAAE,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;aACpE,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,SAAS,EAAE,CAAC;YAC5B,MAAM,CAAC,IAAI,CAAC;gBACV,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;gBACV,IAAI,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM;aAC5D,CAAC,CAAC;QACL,CAAC;;YAAM,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;IACzD,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAID,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC;AAEtE,iEAAiE;AACjE,MAAM,UAAU,SAAS,CAAC,GAAW;IACnC,MAAM,KAAK,GAAG,GAAG,CAAC,SAAS,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;IACrE,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAc,CAAC;AACjE,CAAC"}
1
+ {"version":3,"file":"highlight-sql.js","sourceRoot":"","sources":["../../src/debug-bar/highlight-sql.ts"],"names":[],"mappings":"AAAA,4EAA4E;AAC5E,0EAA0E;AAE1E,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC;IACvB,QAAQ;IACR,UAAU;IACV,MAAM;IACN,OAAO;IACP,KAAK;IACL,IAAI;IACJ,KAAK;IACL,IAAI;IACJ,IAAI;IACJ,MAAM;IACN,MAAM;IACN,SAAS;IACT,QAAQ;IACR,MAAM;IACN,QAAQ;IACR,QAAQ;IACR,KAAK;IACL,QAAQ;IACR,MAAM;IACN,MAAM;IACN,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,IAAI;IACJ,IAAI;IACJ,OAAO;IACP,IAAI;IACJ,OAAO;IACP,QAAQ;IACR,OAAO;IACP,QAAQ;IACR,KAAK;IACL,MAAM;IACN,OAAO;IACP,KAAK;IACL,OAAO;IACP,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,WAAW;IACX,QAAQ;IACR,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,KAAK;IACL,QAAQ;CACT,CAAC,CAAC;AASH,0EAA0E;AAC1E,2EAA2E;AAC3E,6CAA6C;AAC7C,MAAM,KAAK,GACT,8EAA8E,CAAC;AAEjF,MAAM,UAAU,WAAW,CAAC,GAAW;IACrC,MAAM,MAAM,GAAe,EAAE,CAAC;IAC9B,KAAK,MAAM,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QACpC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,SAAS;YAAE,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;aAC/D,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,SAAS;YAAE,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;aACpE,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,SAAS,EAAE,CAAC;YAC5B,MAAM,CAAC,IAAI,CAAC;gBACV,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;gBACV,IAAI,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM;aAC5D,CAAC,CAAC;QACL,CAAC;;YAAM,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;IACzD,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC"}
@@ -1,9 +1,11 @@
1
1
  import type { DebugPanel } from "../types.js";
2
+ /** Panel id, also the disable-denylist key and tab testid suffix. */
3
+ export declare const DB_PANEL_ID = "database";
2
4
  /**
3
- * The Database panel: every query recorded for this request (via the drizzle
4
- * logger), with SQL syntax highlighting, a per-query kind badge, and the bound
5
- * params shown separately (typed-colored) — the `?`-form SQL stays copyable.
6
- * Per-query timing arrives with the Timeline slice.
5
+ * The Database panel: every query span this request's driver wrap emitted,
6
+ * with SQL syntax highlighting, a per-query kind badge, per-query duration,
7
+ * and the bound params shown separately (typed-colored) — the `?`-form SQL
8
+ * stays copyable.
7
9
  */
8
10
  export declare const databasePanel: DebugPanel;
9
11
  //# sourceMappingURL=database.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"database.d.ts","sourceRoot":"","sources":["../../../src/debug-bar/panels/database.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAsB9C;;;;;GAKG;AACH,eAAO,MAAM,aAAa,EAAE,UAgD3B,CAAC"}
1
+ {"version":3,"file":"database.d.ts","sourceRoot":"","sources":["../../../src/debug-bar/panels/database.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAM9C,qEAAqE;AACrE,eAAO,MAAM,WAAW,aAAa,CAAC;AAgEtC;;;;;GAKG;AACH,eAAO,MAAM,aAAa,EAAE,UAqD3B,CAAC"}
@@ -1,29 +1,65 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { DB_PANEL_ID } from "../db-query.js";
2
+ import { queryKind } from "../../db/query-kind.js";
3
3
  import { describeSqlParam } from "../format-param.js";
4
- import { queryKind, tokenizeSql } from "../highlight-sql.js";
4
+ import { tokenizeSql } from "../highlight-sql.js";
5
5
  import { DebugSection } from "../primitives.js";
6
+ /** Panel id, also the disable-denylist key and tab testid suffix. */
7
+ export const DB_PANEL_ID = "database";
8
+ function asParams(value) {
9
+ return Array.isArray(value) ? value : [];
10
+ }
11
+ // `Array.isArray` narrows a readonly-array union to `any[]`; a dedicated
12
+ // guard keeps the elements typed as JsonValue.
13
+ function isJsonArray(value) {
14
+ return Array.isArray(value);
15
+ }
16
+ // Walks the span tree collecting what the driver wraps emit: a `db.sql` span
17
+ // is one query row; a `db.batch` span flattens into one row per statement.
18
+ function collectQueryRows(spans) {
19
+ const rows = [];
20
+ const visit = (span) => {
21
+ const { "db.sql": sql, "db.params": params, "db.batch": batch, } = span.attributes;
22
+ if (typeof sql === "string") {
23
+ rows.push({ sql, params: asParams(params), durationMs: span.durationMs });
24
+ }
25
+ else if (isJsonArray(batch)) {
26
+ for (const stmt of batch) {
27
+ if (typeof stmt !== "object" || stmt === null || isJsonArray(stmt)) {
28
+ continue;
29
+ }
30
+ if (typeof stmt.sql !== "string")
31
+ continue;
32
+ rows.push({ sql: stmt.sql, params: asParams(stmt.params) });
33
+ }
34
+ }
35
+ for (const child of span.children)
36
+ visit(child);
37
+ };
38
+ for (const span of spans)
39
+ visit(span);
40
+ return rows;
41
+ }
6
42
  function HighlightedSql({ sql }) {
7
43
  return (_jsx("code", { className: "plumix-debug-bar__sql", children: tokenizeSql(sql).map((token, i) => token.kind === "text" ? (token.text) : (_jsx("span", { className: `plumix-debug-bar__tok--${token.kind}`, children: token.text }, i))) }));
8
44
  }
9
45
  /**
10
- * The Database panel: every query recorded for this request (via the drizzle
11
- * logger), with SQL syntax highlighting, a per-query kind badge, and the bound
12
- * params shown separately (typed-colored) — the `?`-form SQL stays copyable.
13
- * Per-query timing arrives with the Timeline slice.
46
+ * The Database panel: every query span this request's driver wrap emitted,
47
+ * with SQL syntax highlighting, a per-query kind badge, per-query duration,
48
+ * and the bound params shown separately (typed-colored) — the `?`-form SQL
49
+ * stays copyable.
14
50
  */
15
51
  export const databasePanel = {
16
52
  id: DB_PANEL_ID,
17
53
  title: "Database",
18
54
  order: 20,
19
55
  render: (ctx) => {
20
- const queries = ctx.debug.get(DB_PANEL_ID);
56
+ const queries = collectQueryRows(ctx.telemetry.getSpans());
21
57
  if (queries.length === 0) {
22
58
  return _jsx("p", { className: "plumix-debug-bar__empty", children: "No queries recorded." });
23
59
  }
24
60
  return (_jsx(DebugSection, { title: `${queries.length} ${queries.length === 1 ? "query" : "queries"}`, children: _jsx("ol", { className: "plumix-debug-bar__queries", children: queries.map((query, i) => {
25
61
  const kind = queryKind(query.sql);
26
- return (_jsxs("li", { className: "plumix-debug-bar__query", children: [_jsxs("div", { className: "plumix-debug-bar__query-head", children: [_jsx("span", { className: `plumix-debug-bar__kind plumix-debug-bar__kind--${kind}`, children: kind }), _jsx(HighlightedSql, { sql: query.sql })] }), query.params.length > 0 ? (_jsx("div", { className: "plumix-debug-bar__params", children: query.params.map((param, j) => {
62
+ return (_jsxs("li", { className: "plumix-debug-bar__query", children: [_jsxs("div", { className: "plumix-debug-bar__query-head", children: [_jsx("span", { className: `plumix-debug-bar__kind plumix-debug-bar__kind--${kind}`, children: kind }), _jsx(HighlightedSql, { sql: query.sql }), query.durationMs !== undefined ? (_jsxs("span", { className: "plumix-debug-bar__query-ms", children: [query.durationMs, "ms"] })) : null] }), query.params.length > 0 ? (_jsx("div", { className: "plumix-debug-bar__params", children: query.params.map((param, j) => {
27
63
  const { kind: paramKind, text } = describeSqlParam(param);
28
64
  return (_jsx("span", { className: `plumix-debug-bar__param plumix-debug-bar__param--${paramKind}`, children: text }, j));
29
65
  }) })) : null] }, i));
@@ -1 +1 @@
1
- {"version":3,"file":"database.js","sourceRoot":"","sources":["../../../src/debug-bar/panels/database.tsx"],"names":[],"mappings":";AAKA,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAEhD,SAAS,cAAc,CAAC,EAAE,GAAG,EAA4B;IACvD,OAAO,CACL,eAAM,SAAS,EAAC,uBAAuB,YACpC,WAAW,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,CACjC,KAAK,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,CACtB,KAAK,CAAC,IAAI,CACX,CAAC,CAAC,CAAC,CACF,eAAc,SAAS,EAAE,0BAA0B,KAAK,CAAC,IAAI,EAAE,YAC5D,KAAK,CAAC,IAAI,IADF,CAAC,CAEL,CACR,CACF,GACI,CACR,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,MAAM,aAAa,GAAe;IACvC,EAAE,EAAE,WAAW;IACf,KAAK,EAAE,UAAU;IACjB,KAAK,EAAE,EAAE;IACT,MAAM,EAAE,CAAC,GAAe,EAAE,EAAE;QAC1B,MAAM,OAAO,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,WAAW,CAA4B,CAAC;QACtE,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACzB,OAAO,YAAG,SAAS,EAAC,yBAAyB,qCAAyB,CAAC;QACzE,CAAC;QACD,OAAO,CACL,KAAC,YAAY,IACX,KAAK,EAAE,GAAG,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,EAAE,YAExE,aAAI,SAAS,EAAC,2BAA2B,YACtC,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE;oBACxB,MAAM,IAAI,GAAG,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;oBAClC,OAAO,CACL,cAAY,SAAS,EAAC,yBAAyB,aAC7C,eAAK,SAAS,EAAC,8BAA8B,aAC3C,eACE,SAAS,EAAE,kDAAkD,IAAI,EAAE,YAElE,IAAI,GACA,EACP,KAAC,cAAc,IAAC,GAAG,EAAE,KAAK,CAAC,GAAG,GAAI,IAC9B,EACL,KAAK,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CACzB,cAAK,SAAS,EAAC,0BAA0B,YACtC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE;oCAC7B,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC;oCAC1D,OAAO,CACL,eAEE,SAAS,EAAE,oDAAoD,SAAS,EAAE,YAEzE,IAAI,IAHA,CAAC,CAID,CACR,CAAC;gCACJ,CAAC,CAAC,GACE,CACP,CAAC,CAAC,CAAC,IAAI,KAvBD,CAAC,CAwBL,CACN,CAAC;gBACJ,CAAC,CAAC,GACC,GACQ,CAChB,CAAC;IACJ,CAAC;CACF,CAAC"}
1
+ {"version":3,"file":"database.js","sourceRoot":"","sources":["../../../src/debug-bar/panels/database.tsx"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import type { ResolutionTrace } from "../../route/render/template-hierarchy.js";
2
2
  import type { DebugPanel } from "../types.js";
3
- /** Recorded by the renderer; read by the panel. */
3
+ /** Set as the `template` span's `resolution` attribute by the renderer. */
4
4
  export interface TemplateResolution extends ResolutionTrace {
5
5
  /** Human label for the resolved route node, e.g. "post: hello-world". */
6
6
  readonly nodeLabel: string;
@@ -1 +1 @@
1
- {"version":3,"file":"template.d.ts","sourceRoot":"","sources":["../../../src/debug-bar/panels/template.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAEV,eAAe,EAChB,MAAM,0CAA0C,CAAC;AAClD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAI9C,mDAAmD;AACnD,MAAM,WAAW,kBAAmB,SAAQ,eAAe;IACzD,yEAAyE;IACzE,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC5B;AAUD;;;;GAIG;AACH,eAAO,MAAM,aAAa,EAAE,UA4C3B,CAAC"}
1
+ {"version":3,"file":"template.d.ts","sourceRoot":"","sources":["../../../src/debug-bar/panels/template.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAEV,eAAe,EAChB,MAAM,0CAA0C,CAAC;AAClD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAI9C,2EAA2E;AAC3E,MAAM,WAAW,kBAAmB,SAAQ,eAAe;IACzD,yEAAyE;IACzE,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC5B;AAyBD;;;;GAIG;AACH,eAAO,MAAM,aAAa,EAAE,UA4C3B,CAAC"}
@@ -1,6 +1,19 @@
1
1
  import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { DebugKV, DebugSection, DebugTable } from "../primitives.js";
3
3
  import { TEMPLATE_PANEL_ID } from "../template-node-label.js";
4
+ // Matches on the resolution attribute too, so an unrelated span that happens
5
+ // to share the `template` name can't shadow the renderer's span.
6
+ function findResolutionSpan(spans) {
7
+ for (const span of spans) {
8
+ if (span.name === TEMPLATE_PANEL_ID && "resolution" in span.attributes) {
9
+ return span;
10
+ }
11
+ const nested = findResolutionSpan(span.children);
12
+ if (nested)
13
+ return nested;
14
+ }
15
+ return undefined;
16
+ }
4
17
  /** How a predicate reads in the table — or an em dash when the rule has none. */
5
18
  function predicateCell(predicate) {
6
19
  if (predicate === undefined)
@@ -20,9 +33,10 @@ export const templatePanel = {
20
33
  title: "Template",
21
34
  order: 15,
22
35
  render: (ctx) => {
23
- const resolution = ctx.debug.get(TEMPLATE_PANEL_ID)[0];
36
+ const resolution = findResolutionSpan(ctx.telemetry.getSpans())?.attributes
37
+ .resolution;
24
38
  if (!resolution) {
25
- return (_jsx("p", { className: "plumix-debug-bar__empty", children: "No template resolution \u2014 this is likely an error page." }));
39
+ return (_jsx("p", { className: "plumix-debug-bar__empty", children: "No template resolution recorded \u2014 error pages don't resolve one." }));
26
40
  }
27
41
  return (_jsxs(_Fragment, { children: [_jsx(DebugSection, { title: "Resolution", children: _jsx(DebugKV, { rows: [
28
42
  { label: "Resolved", value: resolution.nodeLabel },
@@ -1 +1 @@
1
- {"version":3,"file":"template.js","sourceRoot":"","sources":["../../../src/debug-bar/panels/template.tsx"],"names":[],"mappings":";AAMA,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACrE,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAQ9D,iFAAiF;AACjF,SAAS,aAAa,CAAC,SAAsC;IAC3D,IAAI,SAAS,KAAK,SAAS;QAAE,OAAO,GAAG,CAAC;IACxC,2EAA2E;IAC3E,IAAI,CAAC,SAAS,CAAC,KAAK;QAAE,OAAO,KAAK,CAAC;IACnC,OAAO,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC;AAChD,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,MAAM,aAAa,GAAe;IACvC,EAAE,EAAE,iBAAiB;IACrB,KAAK,EAAE,UAAU;IACjB,KAAK,EAAE,EAAE;IACT,MAAM,EAAE,CAAC,GAAe,EAAE,EAAE;QAC1B,MAAM,UAAU,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC,CAAC,CACrB,CAAC;QACjC,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,OAAO,CACL,YAAG,SAAS,EAAC,yBAAyB,4EAElC,CACL,CAAC;QACJ,CAAC;QACD,OAAO,CACL,8BACE,KAAC,YAAY,IAAC,KAAK,EAAC,YAAY,YAC9B,KAAC,OAAO,IACN,IAAI,EAAE;4BACJ,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,CAAC,SAAS,EAAE;4BAClD;gCACE,KAAK,EAAE,SAAS;gCAChB,KAAK,EAAE,UAAU,CAAC,MAAM,IAAI,oBAAoB;6BACjD;yBACF,GACD,GACW,EACf,KAAC,YAAY,IAAC,KAAK,EAAC,OAAO,YACzB,KAAC,UAAU,IACT,OAAO,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,WAAW,CAAC,EACxC,IAAI,EAAE,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC;4BACnC,IAAI,CAAC,KAAK;4BACV,eACE,SAAS,EAAE,sDAAsD,IAAI,CAAC,MAAM,EAAE,YAE7E,IAAI,CAAC,MAAM,GACP;4BACP,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC;yBAC9B,CAAC,GACF,GACW,IACd,CACJ,CAAC;IACJ,CAAC;CACF,CAAC"}
1
+ {"version":3,"file":"template.js","sourceRoot":"","sources":["../../../src/debug-bar/panels/template.tsx"],"names":[],"mappings":";AAOA,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACrE,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAQ9D,6EAA6E;AAC7E,iEAAiE;AACjE,SAAS,kBAAkB,CACzB,KAA+B;IAE/B,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,IAAI,CAAC,IAAI,KAAK,iBAAiB,IAAI,YAAY,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACvE,OAAO,IAAI,CAAC;QACd,CAAC;QACD,MAAM,MAAM,GAAG,kBAAkB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACjD,IAAI,MAAM;YAAE,OAAO,MAAM,CAAC;IAC5B,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,iFAAiF;AACjF,SAAS,aAAa,CAAC,SAAsC;IAC3D,IAAI,SAAS,KAAK,SAAS;QAAE,OAAO,GAAG,CAAC;IACxC,2EAA2E;IAC3E,IAAI,CAAC,SAAS,CAAC,KAAK;QAAE,OAAO,KAAK,CAAC;IACnC,OAAO,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC;AAChD,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,MAAM,aAAa,GAAe;IACvC,EAAE,EAAE,iBAAiB;IACrB,KAAK,EAAE,UAAU;IACjB,KAAK,EAAE,EAAE;IACT,MAAM,EAAE,CAAC,GAAe,EAAE,EAAE;QAC1B,MAAM,UAAU,GAAG,kBAAkB,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC,EAAE,UAAU;aACxE,UAAuD,CAAC;QAC3D,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,OAAO,CACL,YAAG,SAAS,EAAC,yBAAyB,sFAElC,CACL,CAAC;QACJ,CAAC;QACD,OAAO,CACL,8BACE,KAAC,YAAY,IAAC,KAAK,EAAC,YAAY,YAC9B,KAAC,OAAO,IACN,IAAI,EAAE;4BACJ,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,CAAC,SAAS,EAAE;4BAClD;gCACE,KAAK,EAAE,SAAS;gCAChB,KAAK,EAAE,UAAU,CAAC,MAAM,IAAI,oBAAoB;6BACjD;yBACF,GACD,GACW,EACf,KAAC,YAAY,IAAC,KAAK,EAAC,OAAO,YACzB,KAAC,UAAU,IACT,OAAO,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,WAAW,CAAC,EACxC,IAAI,EAAE,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC;4BACnC,IAAI,CAAC,KAAK;4BACV,eACE,SAAS,EAAE,sDAAsD,IAAI,CAAC,MAAM,EAAE,YAE7E,IAAI,CAAC,MAAM,GACP;4BACP,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC;yBAC9B,CAAC,GACF,GACW,IACd,CACJ,CAAC;IACJ,CAAC;CACF,CAAC"}
@@ -36,7 +36,7 @@ export const timelinePanel = {
36
36
  title: "Timeline",
37
37
  order: 50,
38
38
  render: (ctx) => {
39
- const timeline = buildTimeline(ctx.debug.getSpans());
39
+ const timeline = buildTimeline(ctx.telemetry.getSpans());
40
40
  if (timeline.rows.length === 0) {
41
41
  return _jsx("p", { className: "plumix-debug-bar__empty", children: "No spans recorded." });
42
42
  }
@@ -1 +1 @@
1
- {"version":3,"file":"timeline.js","sourceRoot":"","sources":["../../../src/debug-bar/panels/timeline.tsx"],"names":[],"mappings":";AAKA,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAErD,qEAAqE;AACrE,MAAM,CAAC,MAAM,iBAAiB,GAAG,UAAU,CAAC;AAE5C,6EAA6E;AAC7E,8EAA8E;AAC9E,8EAA8E;AAC9E,MAAM,UAAU,GAAG,GAAG,CAAC;AACvB,MAAM,MAAM,GAAG,GAAG,CAAC;AACnB,MAAM,MAAM,GAAG,EAAE,CAAC;AAClB,MAAM,UAAU,GAAG,EAAE,CAAC;AACtB,MAAM,OAAO,GAAG,CAAC,CAAC;AAElB,SAAS,aAAa,CAAC,EACrB,QAAQ,GAGT;IACC,MAAM,QAAQ,GAAG,gBAAgB,CAAC,QAAQ,EAAE;QAC1C,KAAK,EAAE,UAAU,GAAG,MAAM,GAAG,MAAM;QACnC,SAAS,EAAE,UAAU;QACrB,MAAM,EAAE,OAAO;QACf,WAAW,EAAE,CAAC;KACf,CAAC,CAAC;IAEH,OAAO,CACL,cACE,SAAS,EAAC,4BAA4B,EACtC,OAAO,EAAE,OAAO,UAAU,IAAI,QAAQ,CAAC,MAAM,EAAE,EAC/C,KAAK,EAAC,MAAM,EACZ,MAAM,EAAE,QAAQ,CAAC,MAAM,EACvB,IAAI,EAAC,KAAK,YAET,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE;YAC9B,MAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC,CAAC;YAC3C,MAAM,KAAK,GAAG,IAAI,CAAC,CAAC,GAAG,UAAU,GAAG,CAAC,CAAC;YACtC,OAAO,CACL,wBACE,eACE,SAAS,EAAC,iCAAiC,EAC3C,CAAC,EAAE,CAAC,GAAG,KAAK,GAAG,CAAC,EAChB,CAAC,EAAE,KAAK,YAEP,IAAI,CAAC,IAAI,GACL,EACP,eACE,SAAS,EAAC,gCAAgC,EAC1C,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC,CAAC,EAClB,CAAC,EAAE,IAAI,CAAC,CAAC,EACT,KAAK,EAAE,IAAI,CAAC,KAAK,EACjB,MAAM,EAAE,IAAI,CAAC,MAAM,EACnB,EAAE,EAAE,CAAC,GACL,EACF,gBACE,SAAS,EAAC,+BAA+B,EACzC,CAAC,EAAE,UAAU,EACb,CAAC,EAAE,KAAK,EACR,UAAU,EAAC,KAAK,aAEf,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,UAAU,IAAI,CAAC,UAC7B,KAvBD,CAAC,CAwBL,CACL,CAAC;QACJ,CAAC,CAAC,GACE,CACP,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,MAAM,aAAa,GAAe;IACvC,EAAE,EAAE,iBAAiB;IACrB,KAAK,EAAE,UAAU;IACjB,KAAK,EAAE,EAAE;IACT,MAAM,EAAE,CAAC,GAAe,EAAE,EAAE;QAC1B,MAAM,QAAQ,GAAG,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;QACrD,IAAI,QAAQ,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC/B,OAAO,YAAG,SAAS,EAAC,yBAAyB,mCAAuB,CAAC;QACvE,CAAC;QACD,OAAO,CACL,KAAC,YAAY,IAAC,KAAK,EAAE,SAAS,QAAQ,CAAC,OAAO,IAAI,YAChD,KAAC,aAAa,IAAC,QAAQ,EAAE,QAAQ,GAAI,GACxB,CAChB,CAAC;IACJ,CAAC;CACF,CAAC"}
1
+ {"version":3,"file":"timeline.js","sourceRoot":"","sources":["../../../src/debug-bar/panels/timeline.tsx"],"names":[],"mappings":";AAKA,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAErD,qEAAqE;AACrE,MAAM,CAAC,MAAM,iBAAiB,GAAG,UAAU,CAAC;AAE5C,6EAA6E;AAC7E,8EAA8E;AAC9E,8EAA8E;AAC9E,MAAM,UAAU,GAAG,GAAG,CAAC;AACvB,MAAM,MAAM,GAAG,GAAG,CAAC;AACnB,MAAM,MAAM,GAAG,EAAE,CAAC;AAClB,MAAM,UAAU,GAAG,EAAE,CAAC;AACtB,MAAM,OAAO,GAAG,CAAC,CAAC;AAElB,SAAS,aAAa,CAAC,EACrB,QAAQ,GAGT;IACC,MAAM,QAAQ,GAAG,gBAAgB,CAAC,QAAQ,EAAE;QAC1C,KAAK,EAAE,UAAU,GAAG,MAAM,GAAG,MAAM;QACnC,SAAS,EAAE,UAAU;QACrB,MAAM,EAAE,OAAO;QACf,WAAW,EAAE,CAAC;KACf,CAAC,CAAC;IAEH,OAAO,CACL,cACE,SAAS,EAAC,4BAA4B,EACtC,OAAO,EAAE,OAAO,UAAU,IAAI,QAAQ,CAAC,MAAM,EAAE,EAC/C,KAAK,EAAC,MAAM,EACZ,MAAM,EAAE,QAAQ,CAAC,MAAM,EACvB,IAAI,EAAC,KAAK,YAET,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE;YAC9B,MAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC,CAAC;YAC3C,MAAM,KAAK,GAAG,IAAI,CAAC,CAAC,GAAG,UAAU,GAAG,CAAC,CAAC;YACtC,OAAO,CACL,wBACE,eACE,SAAS,EAAC,iCAAiC,EAC3C,CAAC,EAAE,CAAC,GAAG,KAAK,GAAG,CAAC,EAChB,CAAC,EAAE,KAAK,YAEP,IAAI,CAAC,IAAI,GACL,EACP,eACE,SAAS,EAAC,gCAAgC,EAC1C,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC,CAAC,EAClB,CAAC,EAAE,IAAI,CAAC,CAAC,EACT,KAAK,EAAE,IAAI,CAAC,KAAK,EACjB,MAAM,EAAE,IAAI,CAAC,MAAM,EACnB,EAAE,EAAE,CAAC,GACL,EACF,gBACE,SAAS,EAAC,+BAA+B,EACzC,CAAC,EAAE,UAAU,EACb,CAAC,EAAE,KAAK,EACR,UAAU,EAAC,KAAK,aAEf,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,UAAU,IAAI,CAAC,UAC7B,KAvBD,CAAC,CAwBL,CACL,CAAC;QACJ,CAAC,CAAC,GACE,CACP,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,MAAM,aAAa,GAAe;IACvC,EAAE,EAAE,iBAAiB;IACrB,KAAK,EAAE,UAAU;IACjB,KAAK,EAAE,EAAE;IACT,MAAM,EAAE,CAAC,GAAe,EAAE,EAAE;QAC1B,MAAM,QAAQ,GAAG,aAAa,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC,CAAC;QACzD,IAAI,QAAQ,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC/B,OAAO,YAAG,SAAS,EAAC,yBAAyB,mCAAuB,CAAC;QACvE,CAAC;QACD,OAAO,CACL,KAAC,YAAY,IAAC,KAAK,EAAE,SAAS,QAAQ,CAAC,OAAO,IAAI,YAChD,KAAC,aAAa,IAAC,QAAQ,EAAE,QAAQ,GAAI,GACxB,CAChB,CAAC;IACJ,CAAC;CACF,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"styles.d.ts","sourceRoot":"","sources":["../../src/debug-bar/styles.ts"],"names":[],"mappings":"AAyCA,eAAO,MAAM,aAAa,QA0Ud,CAAC"}
1
+ {"version":3,"file":"styles.d.ts","sourceRoot":"","sources":["../../src/debug-bar/styles.ts"],"names":[],"mappings":"AAyCA,eAAO,MAAM,aAAa,QA+Ud,CAAC"}
@@ -300,6 +300,11 @@ export const DEBUG_BAR_CSS = css `
300
300
  gap: 6px;
301
301
  align-items: baseline;
302
302
  }
303
+ .plumix-debug-bar__query-ms {
304
+ flex: 0 0 auto;
305
+ margin-left: auto;
306
+ color: #8a929a;
307
+ }
303
308
  .plumix-debug-bar__kind {
304
309
  flex: 0 0 auto;
305
310
  font-size: 9px;
@@ -1 +1 @@
1
- {"version":3,"file":"styles.js","sourceRoot":"","sources":["../../src/debug-bar/styles.ts"],"names":[],"mappings":"AAAA,yEAAyE;AACzE,4EAA4E;AAC5E,8EAA8E;AAC9E,8EAA8E;AAC9E,uEAAuE;AACvE,gFAAgF;AAChF,8EAA8E;AAC9E,wEAAwE;AAExE,OAAO,EAAE,GAAG,EAAE,MAAM,eAAe,CAAC;AAEpC,0EAA0E;AAC1E,0DAA0D;AAC1D,MAAM,QAAQ,GAAG,EAAE,CAAC;AAEpB,SAAS,QAAQ;IACf,IAAI,GAAG,GAAG,EAAE,CAAC;IACb,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,QAAQ,EAAE,CAAC,EAAE,EAAE,CAAC;QACnC,iCAAiC;QACjC,GAAG,IAAI,wCAAwC,CAAC,8EAA8E,CAAC,kBAAkB,CAAC;QAClJ,2DAA2D;QAC3D,GAAG,IAAI,wCAAwC,CAAC,6DAA6D,CAAC,kCAAkC,CAAC;IACnJ,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,MAAM,YAAY,GAAG,GAAG,CAAA;;;;;;;;;;;;;CAavB,CAAC;AAEF,MAAM,CAAC,MAAM,aAAa,GACxB,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuUF;IACD,YAAY;IACZ,QAAQ,EAAE,CAAC"}
1
+ {"version":3,"file":"styles.js","sourceRoot":"","sources":["../../src/debug-bar/styles.ts"],"names":[],"mappings":"AAAA,yEAAyE;AACzE,4EAA4E;AAC5E,8EAA8E;AAC9E,8EAA8E;AAC9E,uEAAuE;AACvE,gFAAgF;AAChF,8EAA8E;AAC9E,wEAAwE;AAExE,OAAO,EAAE,GAAG,EAAE,MAAM,eAAe,CAAC;AAEpC,0EAA0E;AAC1E,0DAA0D;AAC1D,MAAM,QAAQ,GAAG,EAAE,CAAC;AAEpB,SAAS,QAAQ;IACf,IAAI,GAAG,GAAG,EAAE,CAAC;IACb,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,QAAQ,EAAE,CAAC,EAAE,EAAE,CAAC;QACnC,iCAAiC;QACjC,GAAG,IAAI,wCAAwC,CAAC,8EAA8E,CAAC,kBAAkB,CAAC;QAClJ,2DAA2D;QAC3D,GAAG,IAAI,wCAAwC,CAAC,6DAA6D,CAAC,kCAAkC,CAAC;IACnJ,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,MAAM,YAAY,GAAG,GAAG,CAAA;;;;;;;;;;;;;CAavB,CAAC;AAEF,MAAM,CAAC,MAAM,aAAa,GACxB,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4UF;IACD,YAAY;IACZ,QAAQ,EAAE,CAAC"}
@@ -1,4 +1,4 @@
1
- import type { TraceSpan } from "../context/stores.js";
1
+ import type { TelemetrySpan } from "../context/telemetry.js";
2
2
  /** A span flattened into a single waterfall row. */
3
3
  interface TimelineRow {
4
4
  readonly name: string;
@@ -16,8 +16,8 @@ export interface Timeline {
16
16
  /**
17
17
  * Flattens a trace-span tree into an ordered list of waterfall rows, each
18
18
  * positioned relative to the request's overall time window. Pure — the panel
19
- * feeds it {@link TraceSpan} roots from the collector and renders the result.
19
+ * feeds it {@link TelemetrySpan} roots from the collector and renders the result.
20
20
  */
21
- export declare function buildTimeline(roots: readonly TraceSpan[]): Timeline;
21
+ export declare function buildTimeline(roots: readonly TelemetrySpan[]): Timeline;
22
22
  export {};
23
23
  //# sourceMappingURL=timeline-model.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"timeline-model.d.ts","sourceRoot":"","sources":["../../src/debug-bar/timeline-model.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAEtD,oDAAoD;AACpD,UAAU,WAAW;IACnB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,wCAAwC;IACxC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,4DAA4D;IAC5D,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC7B;AAED,MAAM,WAAW,QAAQ;IACvB,QAAQ,CAAC,IAAI,EAAE,SAAS,WAAW,EAAE,CAAC;IACtC,2DAA2D;IAC3D,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,SAAS,SAAS,EAAE,GAAG,QAAQ,CAwBnE"}
1
+ {"version":3,"file":"timeline-model.d.ts","sourceRoot":"","sources":["../../src/debug-bar/timeline-model.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAE7D,oDAAoD;AACpD,UAAU,WAAW;IACnB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,wCAAwC;IACxC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,4DAA4D;IAC5D,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC7B;AAED,MAAM,WAAW,QAAQ;IACvB,QAAQ,CAAC,IAAI,EAAE,SAAS,WAAW,EAAE,CAAC;IACtC,2DAA2D;IAC3D,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,SAAS,aAAa,EAAE,GAAG,QAAQ,CAwBvE"}
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * Flattens a trace-span tree into an ordered list of waterfall rows, each
3
3
  * positioned relative to the request's overall time window. Pure — the panel
4
- * feeds it {@link TraceSpan} roots from the collector and renders the result.
4
+ * feeds it {@link TelemetrySpan} roots from the collector and renders the result.
5
5
  */
6
6
  export function buildTimeline(roots) {
7
7
  let windowStart = Infinity;
@@ -1 +1 @@
1
- {"version":3,"file":"timeline-model.js","sourceRoot":"","sources":["../../src/debug-bar/timeline-model.ts"],"names":[],"mappings":"AAkBA;;;;GAIG;AACH,MAAM,UAAU,aAAa,CAAC,KAA2B;IACvD,IAAI,WAAW,GAAG,QAAQ,CAAC;IAC3B,IAAI,SAAS,GAAG,CAAC,QAAQ,CAAC;IAC1B,MAAM,KAAK,GAAG,CAAC,IAAe,EAAQ,EAAE;QACtC,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;QACpD,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC;QAClE,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,QAAQ;YAAE,KAAK,CAAC,KAAK,CAAC,CAAC;IAClD,CAAC,CAAC;IACF,KAAK,MAAM,IAAI,IAAI,KAAK;QAAE,KAAK,CAAC,IAAI,CAAC,CAAC;IACtC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;IAExD,MAAM,IAAI,GAAkB,EAAE,CAAC;IAC/B,MAAM,OAAO,GAAG,CAAC,IAAe,EAAE,KAAa,EAAQ,EAAE;QACvD,IAAI,CAAC,IAAI,CAAC;YACR,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,KAAK;YACL,QAAQ,EAAE,IAAI,CAAC,SAAS,GAAG,WAAW;YACtC,UAAU,EAAE,IAAI,CAAC,UAAU;SAC5B,CAAC,CAAC;QACH,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,QAAQ;YAAE,OAAO,CAAC,KAAK,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;IAC/D,CAAC,CAAC;IACF,KAAK,MAAM,IAAI,IAAI,KAAK;QAAE,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;IAE3C,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,GAAG,WAAW,EAAE,CAAC;AACpD,CAAC"}
1
+ {"version":3,"file":"timeline-model.js","sourceRoot":"","sources":["../../src/debug-bar/timeline-model.ts"],"names":[],"mappings":"AAkBA;;;;GAIG;AACH,MAAM,UAAU,aAAa,CAAC,KAA+B;IAC3D,IAAI,WAAW,GAAG,QAAQ,CAAC;IAC3B,IAAI,SAAS,GAAG,CAAC,QAAQ,CAAC;IAC1B,MAAM,KAAK,GAAG,CAAC,IAAmB,EAAQ,EAAE;QAC1C,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;QACpD,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC;QAClE,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,QAAQ;YAAE,KAAK,CAAC,KAAK,CAAC,CAAC;IAClD,CAAC,CAAC;IACF,KAAK,MAAM,IAAI,IAAI,KAAK;QAAE,KAAK,CAAC,IAAI,CAAC,CAAC;IACtC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;IAExD,MAAM,IAAI,GAAkB,EAAE,CAAC;IAC/B,MAAM,OAAO,GAAG,CAAC,IAAmB,EAAE,KAAa,EAAQ,EAAE;QAC3D,IAAI,CAAC,IAAI,CAAC;YACR,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,KAAK;YACL,QAAQ,EAAE,IAAI,CAAC,SAAS,GAAG,WAAW;YACtC,UAAU,EAAE,IAAI,CAAC,UAAU;SAC5B,CAAC,CAAC;QACH,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,QAAQ;YAAE,OAAO,CAAC,KAAK,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;IAC/D,CAAC,CAAC;IACF,KAAK,MAAM,IAAI,IAAI,KAAK;QAAE,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;IAE3C,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,GAAG,WAAW,EAAE,CAAC;AACpD,CAAC"}
@@ -14,7 +14,7 @@ export interface DebugPanel {
14
14
  readonly order?: number;
15
15
  /**
16
16
  * Rendered in isolation (its own SSR pass) so a throw can't crash the host
17
- * page. Read request data off `ctx` (and `ctx.debug.get(id)` for your own
17
+ * page. Read request data off `ctx` (and `ctx.telemetry.get(id)` for your own
18
18
  * recorded entries) — outer React context providers are NOT visible across
19
19
  * the isolated render, so don't rely on `useContext` from the page tree.
20
20
  */
@@ -1 +1 @@
1
- {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/hooks/registry.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/hooks/registry.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,UAAU,EACV,QAAQ,EACR,UAAU,EACV,QAAQ,EACR,WAAW,EACX,UAAU,EACV,UAAU,EACV,WAAW,EACZ,MAAM,YAAY,CAAC;AAoBpB,MAAM,WAAW,YAAY;IAC3B,WAAW,CAAC,KAAK,SAAS,UAAU,EAClC,IAAI,EAAE,KAAK,EACX,KAAK,EAAE,WAAW,CAAC,KAAK,CAAC,EACzB,GAAG,IAAI,EAAE,UAAU,CAAC,KAAK,CAAC,GACzB,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC;IAC/B;;;;;;;OAOG;IACH,eAAe,CAAC,KAAK,SAAS,UAAU,EACtC,IAAI,EAAE,KAAK,EACX,KAAK,EAAE,WAAW,CAAC,KAAK,CAAC,EACzB,GAAG,IAAI,EAAE,UAAU,CAAC,KAAK,CAAC,GACzB,WAAW,CAAC,KAAK,CAAC,CAAC;IACtB;;;;;;;;OAQG;IACH,mBAAmB,CAAC,KAAK,SAAS,UAAU,EAC1C,IAAI,EAAE,KAAK,EACX,IAAI,EAAE,WAAW,CAAC,KAAK,CAAC,EACxB,GAAG,IAAI,EAAE,UAAU,CAAC,KAAK,CAAC,GACzB,WAAW,CAAC,KAAK,CAAC,CAAC;IACtB;;;;;OAKG;IACH,iBAAiB,CAAC,KAAK,SAAS,UAAU,EACxC,IAAI,EAAE,KAAK,GACV,SAAS;QACV,QAAQ,CAAC,EAAE,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC;QAC7B,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;KAChC,EAAE,CAAC;IACJ,QAAQ,CAAC,KAAK,SAAS,UAAU,EAC/B,IAAI,EAAE,KAAK,EACX,GAAG,IAAI,EAAE,UAAU,CAAC,KAAK,CAAC,GACzB,OAAO,CAAC,IAAI,CAAC,CAAC;CAClB;AAED,KAAK,eAAe,GAAG,CAAC,IAAI,EAAE;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,KAAK,EAAE,OAAO,CAAC;CAChB,KAAK,IAAI,CAAC;AAEX,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,eAAe,CAAC,EAAE,eAAe,CAAC;CAC5C;AAED,qBAAa,YAAa,YAAW,YAAY;;gBAMnC,OAAO,GAAE,mBAAwB;IAW7C,SAAS,CAAC,KAAK,SAAS,UAAU,EAChC,IAAI,EAAE,KAAK,EACX,EAAE,EAAE,QAAQ,CAAC,KAAK,CAAC,EACnB,OAAO,GAAE,WAAW,GAAG;QAAE,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;KAAO,GACrD,IAAI;IAWP,SAAS,CAAC,KAAK,SAAS,UAAU,EAChC,IAAI,EAAE,KAAK,EACX,EAAE,EAAE,QAAQ,CAAC,KAAK,CAAC,EACnB,OAAO,GAAE,WAAW,GAAG;QAAE,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;KAAO,GACrD,IAAI;IAWD,WAAW,CAAC,KAAK,SAAS,UAAU,EACxC,IAAI,EAAE,KAAK,EACX,KAAK,EAAE,WAAW,CAAC,KAAK,CAAC,EACzB,GAAG,IAAI,EAAE,UAAU,CAAC,KAAK,CAAC,GACzB,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;IAkB9B,eAAe,CAAC,KAAK,SAAS,UAAU,EACtC,IAAI,EAAE,KAAK,EACX,KAAK,EAAE,WAAW,CAAC,KAAK,CAAC,EACzB,GAAG,IAAI,EAAE,UAAU,CAAC,KAAK,CAAC,GACzB,WAAW,CAAC,KAAK,CAAC;IAgBrB,mBAAmB,CAAC,KAAK,SAAS,UAAU,EAC1C,IAAI,EAAE,KAAK,EACX,IAAI,EAAE,WAAW,CAAC,KAAK,CAAC,EACxB,GAAG,IAAI,EAAE,UAAU,CAAC,KAAK,CAAC,GACzB,WAAW,CAAC,KAAK,CAAC;IA0BrB,iBAAiB,CAAC,KAAK,SAAS,UAAU,EACxC,IAAI,EAAE,KAAK,GACV,SAAS;QACV,QAAQ,CAAC,EAAE,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC;QAC7B,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;KAChC,EAAE;IASG,QAAQ,CAAC,KAAK,SAAS,UAAU,EACrC,IAAI,EAAE,KAAK,EACX,GAAG,IAAI,EAAE,UAAU,CAAC,KAAK,CAAC,GACzB,OAAO,CAAC,IAAI,CAAC;CA2BjB"}
@@ -1,4 +1,5 @@
1
- import { hookStore } from "../context/stores.js";
1
+ import { hookStore, tryGetContext } from "../context/stores.js";
2
+ import { NOOP_TELEMETRY } from "../context/telemetry.js";
2
3
  import { HookExecutionError } from "./errors.js";
3
4
  import { DEFAULT_HOOK_PRIORITY } from "./types.js";
4
5
  export class HookRegistry {
@@ -38,12 +39,13 @@ export class HookRegistry {
38
39
  if (!entries || entries.length === 0)
39
40
  return input;
40
41
  const sorted = sortEntries(entries);
42
+ const telemetry = requestTelemetry();
41
43
  let current = input;
42
44
  for (const entry of sorted) {
43
45
  // structuredClone isolates each filter — mutations inside one filter
44
46
  // can't leak into the next. Clone cost is negligible vs. hook work.
45
47
  const snapshot = structuredClone(current);
46
- current = await hookStore.run({ hook: name, plugin: entry.plugin }, () => entry.fn(snapshot, ...rest));
48
+ current = await runHandlerTraced(telemetry, name, entry.plugin, () => entry.fn(snapshot, ...rest));
47
49
  }
48
50
  return current;
49
51
  }
@@ -98,7 +100,8 @@ export class HookRegistry {
98
100
  if (!entries || entries.length === 0)
99
101
  return;
100
102
  const sorted = sortEntries(entries);
101
- const invocations = sorted.map((entry) => hookStore.run({ hook: name, plugin: entry.plugin }, () => Promise.resolve().then(() => entry.fn(...args))));
103
+ const telemetry = requestTelemetry();
104
+ const invocations = sorted.map((entry) => runHandlerTraced(telemetry, name, entry.plugin, () => Promise.resolve().then(() => entry.fn(...args))));
102
105
  const results = await Promise.allSettled(invocations);
103
106
  for (let i = 0; i < results.length; i++) {
104
107
  const result = results[i];
@@ -115,6 +118,21 @@ export class HookRegistry {
115
118
  }
116
119
  }
117
120
  }
121
+ // The registry is app-scoped while telemetry is request-scoped; the request
122
+ // context store bridges the two. Outside a request (build time, tests calling
123
+ // hooks directly) the no-op collector applies and handlers run untraced.
124
+ function requestTelemetry() {
125
+ return tryGetContext()?.telemetry ?? NOOP_TELEMETRY;
126
+ }
127
+ // One handler execution = one `hook:` span wrapping the existing hookStore
128
+ // frame — shared by the traced pipelines (applyFilter, doAction).
129
+ function runHandlerTraced(telemetry, name, plugin, fn) {
130
+ return telemetry.span(`hook: ${name}`, (s) => {
131
+ s.set("hook.name", name);
132
+ s.set("hook.plugin", plugin);
133
+ return hookStore.run({ hook: name, plugin }, fn);
134
+ });
135
+ }
118
136
  function isPromiseLike(value) {
119
137
  return (typeof value === "object" &&
120
138
  value !== null &&
@@ -1 +1 @@
1
- {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/hooks/registry.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/hooks/registry.ts"],"names":[],"mappings":"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"}