@plumix/core 0.1.4 → 0.2.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 (131) hide show
  1. package/dist/admin-bar/collect.d.ts.map +1 -1
  2. package/dist/admin-bar/collect.js +1 -15
  3. package/dist/admin-bar/collect.js.map +1 -1
  4. package/dist/admin-bar/styles.d.ts.map +1 -1
  5. package/dist/admin-bar/styles.js +1 -11
  6. package/dist/admin-bar/styles.js.map +1 -1
  7. package/dist/cli/worker-codegen.d.ts.map +1 -1
  8. package/dist/cli/worker-codegen.js +3 -5
  9. package/dist/cli/worker-codegen.js.map +1 -1
  10. package/dist/context/app.d.ts +8 -0
  11. package/dist/context/app.d.ts.map +1 -1
  12. package/dist/context/app.js +7 -0
  13. package/dist/context/app.js.map +1 -1
  14. package/dist/context/debug.d.ts +25 -0
  15. package/dist/context/debug.d.ts.map +1 -0
  16. package/dist/context/debug.js +13 -0
  17. package/dist/context/debug.js.map +1 -0
  18. package/dist/context/stores.d.ts +2 -0
  19. package/dist/context/stores.d.ts.map +1 -1
  20. package/dist/context/stores.js.map +1 -1
  21. package/dist/css-tag.d.ts +2 -0
  22. package/dist/css-tag.d.ts.map +1 -0
  23. package/dist/css-tag.js +13 -0
  24. package/dist/css-tag.js.map +1 -0
  25. package/dist/db/libsql.d.ts.map +1 -1
  26. package/dist/db/libsql.js +13 -2
  27. package/dist/db/libsql.js.map +1 -1
  28. package/dist/debug-bar/collect.d.ts.map +1 -1
  29. package/dist/debug-bar/collect.js +1 -15
  30. package/dist/debug-bar/collect.js.map +1 -1
  31. package/dist/debug-bar/collector.d.ts +9 -0
  32. package/dist/debug-bar/collector.d.ts.map +1 -0
  33. package/dist/debug-bar/collector.js +80 -0
  34. package/dist/debug-bar/collector.js.map +1 -0
  35. package/dist/debug-bar/component.d.ts.map +1 -1
  36. package/dist/debug-bar/component.js +15 -2
  37. package/dist/debug-bar/component.js.map +1 -1
  38. package/dist/debug-bar/core-panels.d.ts.map +1 -1
  39. package/dist/debug-bar/core-panels.js +12 -1
  40. package/dist/debug-bar/core-panels.js.map +1 -1
  41. package/dist/debug-bar/db-query.d.ts +21 -0
  42. package/dist/debug-bar/db-query.d.ts.map +1 -0
  43. package/dist/debug-bar/db-query.js +23 -0
  44. package/dist/debug-bar/db-query.js.map +1 -0
  45. package/dist/debug-bar/format-param.d.ts +14 -0
  46. package/dist/debug-bar/format-param.d.ts.map +1 -0
  47. package/dist/debug-bar/format-param.js +27 -0
  48. package/dist/debug-bar/format-param.js.map +1 -0
  49. package/dist/debug-bar/highlight-sql.d.ts +11 -0
  50. package/dist/debug-bar/highlight-sql.d.ts.map +1 -0
  51. package/dist/debug-bar/highlight-sql.js +82 -0
  52. package/dist/debug-bar/highlight-sql.js.map +1 -0
  53. package/dist/debug-bar/panels/app.d.ts +8 -0
  54. package/dist/debug-bar/panels/app.d.ts.map +1 -0
  55. package/dist/debug-bar/panels/app.js +32 -0
  56. package/dist/debug-bar/panels/app.js.map +1 -0
  57. package/dist/debug-bar/panels/database.d.ts +9 -0
  58. package/dist/debug-bar/panels/database.d.ts.map +1 -0
  59. package/dist/debug-bar/panels/database.js +33 -0
  60. package/dist/debug-bar/panels/database.js.map +1 -0
  61. package/dist/debug-bar/panels/request.d.ts +2 -2
  62. package/dist/debug-bar/panels/request.d.ts.map +1 -1
  63. package/dist/debug-bar/panels/request.js +24 -11
  64. package/dist/debug-bar/panels/request.js.map +1 -1
  65. package/dist/debug-bar/panels/template.d.ts +17 -0
  66. package/dist/debug-bar/panels/template.d.ts.map +1 -0
  67. package/dist/debug-bar/panels/template.js +26 -0
  68. package/dist/debug-bar/panels/template.js.map +1 -0
  69. package/dist/debug-bar/panels/timeline.d.ts +11 -0
  70. package/dist/debug-bar/panels/timeline.d.ts.map +1 -0
  71. package/dist/debug-bar/panels/timeline.js +46 -0
  72. package/dist/debug-bar/panels/timeline.js.map +1 -0
  73. package/dist/debug-bar/primitives.d.ts +12 -3
  74. package/dist/debug-bar/primitives.d.ts.map +1 -1
  75. package/dist/debug-bar/primitives.js +17 -1
  76. package/dist/debug-bar/primitives.js.map +1 -1
  77. package/dist/debug-bar/styles.d.ts.map +1 -1
  78. package/dist/debug-bar/styles.js +234 -17
  79. package/dist/debug-bar/styles.js.map +1 -1
  80. package/dist/debug-bar/template-node-label.d.ts +6 -0
  81. package/dist/debug-bar/template-node-label.d.ts.map +1 -0
  82. package/dist/debug-bar/template-node-label.js +20 -0
  83. package/dist/debug-bar/template-node-label.js.map +1 -0
  84. package/dist/debug-bar/timeline-geometry.d.ts +30 -0
  85. package/dist/debug-bar/timeline-geometry.d.ts.map +1 -0
  86. package/dist/debug-bar/timeline-geometry.js +26 -0
  87. package/dist/debug-bar/timeline-geometry.js.map +1 -0
  88. package/dist/debug-bar/timeline-model.d.ts +23 -0
  89. package/dist/debug-bar/timeline-model.d.ts.map +1 -0
  90. package/dist/debug-bar/timeline-model.js +34 -0
  91. package/dist/debug-bar/timeline-model.js.map +1 -0
  92. package/dist/debug-bar/trace-libsql.d.ts +18 -0
  93. package/dist/debug-bar/trace-libsql.d.ts.map +1 -0
  94. package/dist/debug-bar/trace-libsql.js +42 -0
  95. package/dist/debug-bar/trace-libsql.js.map +1 -0
  96. package/dist/debug-bar/types.d.ts +6 -0
  97. package/dist/debug-bar/types.d.ts.map +1 -1
  98. package/dist/hooks/registry.d.ts +14 -3
  99. package/dist/hooks/registry.d.ts.map +1 -1
  100. package/dist/hooks/registry.js +22 -0
  101. package/dist/hooks/registry.js.map +1 -1
  102. package/dist/index.d.ts +1 -0
  103. package/dist/index.d.ts.map +1 -1
  104. package/dist/index.js +3 -0
  105. package/dist/index.js.map +1 -1
  106. package/dist/plugin/manifest.d.ts +3 -0
  107. package/dist/plugin/manifest.d.ts.map +1 -1
  108. package/dist/plugin/manifest.js +1 -0
  109. package/dist/plugin/manifest.js.map +1 -1
  110. package/dist/plugin/register.d.ts.map +1 -1
  111. package/dist/plugin/register.js +1 -0
  112. package/dist/plugin/register.js.map +1 -1
  113. package/dist/route/render/render-template.d.ts +1 -1
  114. package/dist/route/render/render-template.d.ts.map +1 -1
  115. package/dist/route/render/render-template.js +17 -1
  116. package/dist/route/render/render-template.js.map +1 -1
  117. package/dist/runtime/app.d.ts +8 -5
  118. package/dist/runtime/app.d.ts.map +1 -1
  119. package/dist/runtime/app.js +1 -1
  120. package/dist/runtime/app.js.map +1 -1
  121. package/dist/runtime/dispatcher.d.ts.map +1 -1
  122. package/dist/runtime/dispatcher.js +4 -2
  123. package/dist/runtime/dispatcher.js.map +1 -1
  124. package/dist/test/dispatcher.d.ts +3 -0
  125. package/dist/test/dispatcher.d.ts.map +1 -1
  126. package/dist/test/dispatcher.js +8 -2
  127. package/dist/test/dispatcher.js.map +1 -1
  128. package/dist/test/harness.d.ts.map +1 -1
  129. package/dist/test/harness.js +12 -2
  130. package/dist/test/harness.js.map +1 -1
  131. package/package.json +2 -2
@@ -1 +1 @@
1
- {"version":3,"file":"collect.d.ts","sourceRoot":"","sources":["../../src/admin-bar/collect.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,KAAK,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAEjE,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,YAAY,EACnB,GAAG,EAAE,gBAAgB,GACpB,SAAS,YAAY,EAAE,CAoBzB"}
1
+ {"version":3,"file":"collect.d.ts","sourceRoot":"","sources":["../../src/admin-bar/collect.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,KAAK,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAEjE,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,YAAY,EACnB,GAAG,EAAE,gBAAgB,GACpB,SAAS,YAAY,EAAE,CAGzB"}
@@ -1,19 +1,5 @@
1
1
  export function collectAdminBarNodes(hooks, ctx) {
2
- let nodes = [];
3
- for (const { fn, plugin } of hooks.getFilterHandlers("admin_bar:nodes")) {
4
- try {
5
- const next = fn(nodes, ctx);
6
- if (Array.isArray(next)) {
7
- nodes = next;
8
- }
9
- else {
10
- console.error(`[plumix] admin_bar:nodes handler returned non-array plugin=${plugin ?? "core"}; contribution discarded`);
11
- }
12
- }
13
- catch (error) {
14
- console.error(`[plumix] admin_bar:nodes handler failed plugin=${plugin ?? "core"}`, error);
15
- }
16
- }
2
+ const nodes = hooks.applyFilterIsolated("admin_bar:nodes", [], ctx);
17
3
  return dedupeById(nodes);
18
4
  }
19
5
  function dedupeById(nodes) {
@@ -1 +1 @@
1
- {"version":3,"file":"collect.js","sourceRoot":"","sources":["../../src/admin-bar/collect.ts"],"names":[],"mappings":"AAGA,MAAM,UAAU,oBAAoB,CAClC,KAAmB,EACnB,GAAqB;IAErB,IAAI,KAAK,GAA4B,EAAE,CAAC;IACxC,KAAK,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,KAAK,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,EAAE,CAAC;QACxE,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,EAAE,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;YAC5B,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;gBACxB,KAAK,GAAG,IAAI,CAAC;YACf,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,KAAK,CACX,8DAA8D,MAAM,IAAI,MAAM,0BAA0B,CACzG,CAAC;YACJ,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CACX,kDAAkD,MAAM,IAAI,MAAM,EAAE,EACpE,KAAK,CACN,CAAC;QACJ,CAAC;IACH,CAAC;IACD,OAAO,UAAU,CAAC,KAAK,CAAC,CAAC;AAC3B,CAAC;AAED,SAAS,UAAU,CAAC,KAA8B;IAChD,MAAM,IAAI,GAAG,IAAI,GAAG,EAAwB,CAAC;IAC7C,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;YACtB,OAAO,CAAC,IAAI,CACV,0CAA0C,IAAI,CAAC,EAAE,2BAA2B,CAC7E,CAAC;QACJ,CAAC;QACD,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;IAC1B,CAAC;IACD,OAAO,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;AAC5B,CAAC"}
1
+ {"version":3,"file":"collect.js","sourceRoot":"","sources":["../../src/admin-bar/collect.ts"],"names":[],"mappings":"AAGA,MAAM,UAAU,oBAAoB,CAClC,KAAmB,EACnB,GAAqB;IAErB,MAAM,KAAK,GAAG,KAAK,CAAC,mBAAmB,CAAC,iBAAiB,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC;IACpE,OAAO,UAAU,CAAC,KAAK,CAAC,CAAC;AAC3B,CAAC;AAED,SAAS,UAAU,CAAC,KAA8B;IAChD,MAAM,IAAI,GAAG,IAAI,GAAG,EAAwB,CAAC;IAC7C,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;YACtB,OAAO,CAAC,IAAI,CACV,0CAA0C,IAAI,CAAC,EAAE,2BAA2B,CAC7E,CAAC;QACJ,CAAC;QACD,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;IAC1B,CAAC;IACD,OAAO,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;AAC5B,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"styles.d.ts","sourceRoot":"","sources":["../../src/admin-bar/styles.ts"],"names":[],"mappings":"AAuBA,eAAO,MAAM,aAAa,QA+LzB,CAAC;AAEF,eAAO,MAAM,yBAAyB,QASrC,CAAC;AAOF,eAAO,MAAM,wBAAwB,8uBAsBpC,CAAC;AAIF,eAAO,MAAM,sBAAsB,wCAAwC,CAAC"}
1
+ {"version":3,"file":"styles.d.ts","sourceRoot":"","sources":["../../src/admin-bar/styles.ts"],"names":[],"mappings":"AAUA,eAAO,MAAM,aAAa,QA+LzB,CAAC;AAEF,eAAO,MAAM,yBAAyB,QASrC,CAAC;AAOF,eAAO,MAAM,wBAAwB,8uBAsBpC,CAAC;AAIF,eAAO,MAAM,sBAAsB,wCAAwC,CAAC"}
@@ -5,17 +5,7 @@
5
5
  // (see [[plumix-admin-bar/issue-668]] for rationale). Multi-script glyph
6
6
  // rendering falls through `system-ui` to the OS UI font; missing-glyph
7
7
  // fallback is the browser's responsibility.
8
- // No-op tag the tooling marker that lets vscode-styled-components +
9
- // stylelint syntax-highlight + lint the CSS source. CSS Modules don't fit
10
- // because the bar is built with tsc-only and emits its CSS inline in the
11
- // SSR response, not as a separate stylesheet request.
12
- function css(strings, ...values) {
13
- let out = strings[0] ?? "";
14
- for (let i = 0; i < values.length; i++) {
15
- out += values[i] + (strings[i + 1] ?? "");
16
- }
17
- return out;
18
- }
8
+ import { css } from "../css-tag.js";
19
9
  export const ADMIN_BAR_CSS = css `
20
10
  .plumix-admin-bar {
21
11
  position: fixed;
@@ -1 +1 @@
1
- {"version":3,"file":"styles.js","sourceRoot":"","sources":["../../src/admin-bar/styles.ts"],"names":[],"mappings":"AAAA,oEAAoE;AACpE,2EAA2E;AAC3E,wEAAwE;AACxE,yEAAyE;AACzE,yEAAyE;AACzE,uEAAuE;AACvE,4CAA4C;AAE5C,sEAAsE;AACtE,0EAA0E;AAC1E,yEAAyE;AACzE,sDAAsD;AACtD,SAAS,GAAG,CACV,OAA6B,EAC7B,GAAG,MAAyB;IAE5B,IAAI,GAAG,GAAG,OAAO,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IAC3B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACvC,GAAG,IAAI,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IAC5C,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,MAAM,CAAC,MAAM,aAAa,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA+L/B,CAAC;AAEF,MAAM,CAAC,MAAM,yBAAyB,GAAG,GAAG,CAAA;;;;;;;;;CAS3C,CAAC;AAEF,uEAAuE;AACvE,0EAA0E;AAC1E,wEAAwE;AACxE,uEAAuE;AACvE,oEAAoE;AACpE,MAAM,CAAC,MAAM,wBAAwB,GAAG;;;;;;;;;;;;;;;;;;;;;;CAsBvC,CAAC;AAEF,0EAA0E;AAC1E,yEAAyE;AACzE,MAAM,CAAC,MAAM,sBAAsB,GAAG,qCAAqC,CAAC"}
1
+ {"version":3,"file":"styles.js","sourceRoot":"","sources":["../../src/admin-bar/styles.ts"],"names":[],"mappings":"AAAA,oEAAoE;AACpE,2EAA2E;AAC3E,wEAAwE;AACxE,yEAAyE;AACzE,yEAAyE;AACzE,uEAAuE;AACvE,4CAA4C;AAE5C,OAAO,EAAE,GAAG,EAAE,MAAM,eAAe,CAAC;AAEpC,MAAM,CAAC,MAAM,aAAa,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA+L/B,CAAC;AAEF,MAAM,CAAC,MAAM,yBAAyB,GAAG,GAAG,CAAA;;;;;;;;;CAS3C,CAAC;AAEF,uEAAuE;AACvE,0EAA0E;AAC1E,wEAAwE;AACxE,uEAAuE;AACvE,oEAAoE;AACpE,MAAM,CAAC,MAAM,wBAAwB,GAAG;;;;;;;;;;;;;;;;;;;;;;CAsBvC,CAAC;AAEF,0EAA0E;AAC1E,yEAAyE;AACzE,MAAM,CAAC,MAAM,sBAAsB,GAAG,qCAAqC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"worker-codegen.d.ts","sourceRoot":"","sources":["../../src/cli/worker-codegen.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;CAC/B;AAED,wBAAgB,oBAAoB,CAAC,EACnC,YAAY,GACb,EAAE,mBAAmB,GAAG,MAAM,CA6C9B"}
1
+ {"version":3,"file":"worker-codegen.d.ts","sourceRoot":"","sources":["../../src/cli/worker-codegen.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;CAC/B;AAED,wBAAgB,oBAAoB,CAAC,EACnC,YAAY,GACb,EAAE,mBAAmB,GAAG,MAAM,CA2C9B"}
@@ -17,13 +17,11 @@ export function generateWorkerSource({ configModule, }) {
17
17
  // when nothing is contributed, so this line is inert for most sites.
18
18
  'export * from "virtual:plumix/worker-exports";',
19
19
  "",
20
- // vite statically replaces `import.meta.env.DEV` (true under dev,
21
- // false in production builds) see RuntimeContext.devCsrfLocalhost.
22
- // Fail-closed: a bundler that leaves `import.meta.env` intact yields
23
- // undefined, which buildApp coerces to false.
20
+ // buildApp derives the dev-CSRF opt-in from `process.env.PLUMIX_DEV` (the
21
+ // single dev signal the plumix Vite plugin statically replaces), so the
22
+ // worker no longer passes it — see RuntimeContext.devCsrfLocalhost.
24
23
  "const appPromise = buildApp(config, {",
25
24
  " assetManifest,",
26
- " devCsrfLocalhost: import.meta.env.DEV,",
27
25
  "});",
28
26
  "let fetchHandler;",
29
27
  "let scheduledHandler;",
@@ -1 +1 @@
1
- {"version":3,"file":"worker-codegen.js","sourceRoot":"","sources":["../../src/cli/worker-codegen.ts"],"names":[],"mappings":"AAIA,MAAM,UAAU,oBAAoB,CAAC,EACnC,YAAY,GACQ;IACpB,MAAM,KAAK,GAAG;QACZ,uCAAuC;QACvC,qDAAqD;QACrD,EAAE;QACF,oCAAoC;QACpC,oEAAoE;QACpE,oEAAoE;QACpE,kEAAkE;QAClE,oEAAoE;QACpE,4DAA4D;QAC5D,sBAAsB,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,GAAG;QACrD,EAAE;QACF,qEAAqE;QACrE,qEAAqE;QACrE,oEAAoE;QACpE,qEAAqE;QACrE,gDAAgD;QAChD,EAAE;QACF,kEAAkE;QAClE,qEAAqE;QACrE,qEAAqE;QACrE,8CAA8C;QAC9C,uCAAuC;QACvC,kBAAkB;QAClB,0CAA0C;QAC1C,KAAK;QACL,mBAAmB;QACnB,uBAAuB;QACvB,EAAE;QACF,kBAAkB;QAClB,oCAAoC;QACpC,mCAAmC;QACnC,6DAA6D;QAC7D,6CAA6C;QAC7C,MAAM;QACN,sCAAsC;QACtC,mCAAmC;QACnC,uEAAuE;QACvE,oEAAoE;QACpE,MAAM;QACN,IAAI;QACJ,EAAE;KACH,CAAC;IACF,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC"}
1
+ {"version":3,"file":"worker-codegen.js","sourceRoot":"","sources":["../../src/cli/worker-codegen.ts"],"names":[],"mappings":"AAIA,MAAM,UAAU,oBAAoB,CAAC,EACnC,YAAY,GACQ;IACpB,MAAM,KAAK,GAAG;QACZ,uCAAuC;QACvC,qDAAqD;QACrD,EAAE;QACF,oCAAoC;QACpC,oEAAoE;QACpE,oEAAoE;QACpE,kEAAkE;QAClE,oEAAoE;QACpE,4DAA4D;QAC5D,sBAAsB,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,GAAG;QACrD,EAAE;QACF,qEAAqE;QACrE,qEAAqE;QACrE,oEAAoE;QACpE,qEAAqE;QACrE,gDAAgD;QAChD,EAAE;QACF,0EAA0E;QAC1E,wEAAwE;QACxE,oEAAoE;QACpE,uCAAuC;QACvC,kBAAkB;QAClB,KAAK;QACL,mBAAmB;QACnB,uBAAuB;QACvB,EAAE;QACF,kBAAkB;QAClB,oCAAoC;QACpC,mCAAmC;QACnC,6DAA6D;QAC7D,6CAA6C;QAC7C,MAAM;QACN,sCAAsC;QACtC,mCAAmC;QACnC,uEAAuE;QACvE,oEAAoE;QACpE,MAAM;QACN,IAAI;QACJ,EAAE;KACH,CAAC;IACF,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC"}
@@ -15,6 +15,7 @@ import type { ResolvedEntity } from "../route/current.js";
15
15
  import type { OAuthProviderSummary } from "../runtime/app.js";
16
16
  import type { PlumixEnv } from "../runtime/bindings.js";
17
17
  import type { AssetsBinding, ConnectedCache, ConnectedObjectStorage, ImageDelivery } from "../runtime/slots.js";
18
+ import type { DebugCollector } from "./debug.js";
18
19
  export type CoreSchema = typeof coreSchema;
19
20
  export type Db<TSchema extends Record<string, unknown> = CoreSchema> = BaseSQLiteDatabase<"async" | "sync", unknown, TSchema>;
20
21
  export interface AuthenticatedUser {
@@ -96,6 +97,13 @@ export interface AppContextBase<TSchema extends Record<string, unknown> = CoreSc
96
97
  */
97
98
  readonly shortcodes: ShortcodeRegistry;
98
99
  readonly logger: Logger;
100
+ /**
101
+ * Request-scoped debug collector. Core and plugins record per-request data
102
+ * for the dev debug bar via `ctx.debug.record`/`span`. Always present: the
103
+ * real collector in dev, {@link NOOP_DEBUG} in prod (so call sites are safe
104
+ * and the debug-bar module tree-shakes out of prod builds).
105
+ */
106
+ readonly debug: DebugCollector;
99
107
  readonly auth: AuthNamespace;
100
108
  /**
101
109
  * Resolved request authenticator — same instance the dispatcher
@@ -1 +1 @@
1
- {"version":3,"file":"app.d.ts","sourceRoot":"","sources":["../../src/context/app.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"app.d.ts","sourceRoot":"","sources":["../../src/context/app.ts"],"names":[],"mappings":"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"}
@@ -2,8 +2,10 @@ import { createBlockRegistry } from "@plumix/blocks";
2
2
  import { defaultAuthenticator } from "../auth/authenticator.js";
3
3
  import { resolveMailer } from "../auth/mailer/resolve.js";
4
4
  import { createCapabilityResolver } from "../auth/rbac.js";
5
+ import { createDebugCollector } from "../debug-bar/collector.js";
5
6
  import { resolveLocales } from "../i18n/locale-registry.js";
6
7
  import { resolveLocale } from "../i18n/resolve-locale.js";
8
+ import { NOOP_DEBUG } from "./debug.js";
7
9
  import { ContextError } from "./errors.js";
8
10
  const EMPTY_BLOCK_REGISTRY = createBlockRegistry([]);
9
11
  const EMPTY_MARK_LIST = Object.freeze([]);
@@ -106,6 +108,11 @@ export function createAppContext(args) {
106
108
  origin: args.origin ?? new URL(args.request.url).origin,
107
109
  basePath: args.basePath ?? "",
108
110
  debugBar: args.debugBar,
111
+ // Real collector only in dev; `process.env.PLUMIX_DEV` is Vite-empty in a
112
+ // build, so the prod branch keeps NOOP_DEBUG and tree-shakes the rest.
113
+ debug: process.env.PLUMIX_DEV
114
+ ? createDebugCollector(args.debugBar)
115
+ : NOOP_DEBUG,
109
116
  siteName: args.siteName,
110
117
  };
111
118
  // Spread plugin-contributed entries onto the base. The cast is the
@@ -1 +1 @@
1
- {"version":3,"file":"app.js","sourceRoot":"","sources":["../../src/context/app.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"app.js","sourceRoot":"","sources":["../../src/context/app.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,25 @@
1
+ import type { TraceSpan } from "./stores.js";
2
+ /**
3
+ * Request-scoped debug collector. Core and plugins record per-request data
4
+ * under a namespace (a panel id) and read it back when their panel renders.
5
+ * Two implementations: {@link NOOP_DEBUG} (always present in core, prod-safe)
6
+ * and the real accumulating collector in the dev-gated debug-bar module.
7
+ */
8
+ export interface DebugCollector {
9
+ /** Append an entry under `namespace` (the recording panel's id). */
10
+ record(namespace: string, entry: unknown): void;
11
+ /** Time `fn`, record a span, and return `fn`'s result unchanged. */
12
+ span<T>(name: string, fn: () => T): T;
13
+ /** Entries recorded under `namespace`, in record order. */
14
+ get(namespace: string): readonly unknown[];
15
+ /** The collected span tree (the Timeline panel consumes this). */
16
+ getSpans(): readonly TraceSpan[];
17
+ }
18
+ /**
19
+ * The permanent no-op collector. Lives in core proper so plugin `ctx.debug`
20
+ * call sites stay safe in production: `record` drops the entry, `span` calls
21
+ * through and returns the result, reads are empty. The real collector is
22
+ * swapped in only under the dev gate.
23
+ */
24
+ export declare const NOOP_DEBUG: DebugCollector;
25
+ //# sourceMappingURL=debug.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"debug.d.ts","sourceRoot":"","sources":["../../src/context/debug.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAE7C;;;;;GAKG;AACH,MAAM,WAAW,cAAc;IAC7B,oEAAoE;IACpE,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,IAAI,CAAC;IAChD,oEAAoE;IACpE,IAAI,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC;IACtC,2DAA2D;IAC3D,GAAG,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,OAAO,EAAE,CAAC;IAC3C,kEAAkE;IAClE,QAAQ,IAAI,SAAS,SAAS,EAAE,CAAC;CAClC;AAED;;;;;GAKG;AACH,eAAO,MAAM,UAAU,EAAE,cAKxB,CAAC"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * The permanent no-op collector. Lives in core proper so plugin `ctx.debug`
3
+ * call sites stay safe in production: `record` drops the entry, `span` calls
4
+ * through and returns the result, reads are empty. The real collector is
5
+ * swapped in only under the dev gate.
6
+ */
7
+ export const NOOP_DEBUG = {
8
+ record: () => undefined,
9
+ span: (_name, fn) => fn(),
10
+ get: () => [],
11
+ getSpans: () => [],
12
+ };
13
+ //# sourceMappingURL=debug.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"debug.js","sourceRoot":"","sources":["../../src/context/debug.ts"],"names":[],"mappings":"AAmBA;;;;;GAKG;AACH,MAAM,CAAC,MAAM,UAAU,GAAmB;IACxC,MAAM,EAAE,GAAG,EAAE,CAAC,SAAS;IACvB,IAAI,EAAE,CAAC,KAAK,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE;IACzB,GAAG,EAAE,GAAG,EAAE,CAAC,EAAE;IACb,QAAQ,EAAE,GAAG,EAAE,CAAC,EAAE;CACnB,CAAC"}
@@ -9,6 +9,8 @@ export declare const hookStore: AsyncLocalStorage<HookFrame>;
9
9
  export interface TraceSpan {
10
10
  readonly name: string;
11
11
  readonly startedAt: number;
12
+ /** Wall-clock duration; set when the span's work completes. */
13
+ durationMs: number;
12
14
  readonly children: TraceSpan[];
13
15
  readonly annotations: Record<string, unknown>;
14
16
  }
@@ -1 +1 @@
1
- {"version":3,"file":"stores.d.ts","sourceRoot":"","sources":["../../src/context/stores.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAErD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAG3C,eAAO,MAAM,YAAY,+BAAsC,CAAC;AAEhE,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;CAChC;AAED,eAAO,MAAM,SAAS,8BAAqC,CAAC;AAE5D,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,QAAQ,EAAE,SAAS,EAAE,CAAC;IAC/B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC/C;AAED,eAAO,MAAM,UAAU,8BAAqC,CAAC;AAE7D,eAAO,MAAM,OAAO,4BAAmC,CAAC;AAExD,wBAAgB,UAAU,IAAI,UAAU,CAIvC;AAED,wBAAgB,aAAa,IAAI,UAAU,GAAG,IAAI,CAEjD"}
1
+ {"version":3,"file":"stores.d.ts","sourceRoot":"","sources":["../../src/context/stores.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAErD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAG3C,eAAO,MAAM,YAAY,+BAAsC,CAAC;AAEhE,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;CAChC;AAED,eAAO,MAAM,SAAS,8BAAqC,CAAC;AAE5D,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,+DAA+D;IAC/D,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,QAAQ,EAAE,SAAS,EAAE,CAAC;IAC/B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC/C;AAED,eAAO,MAAM,UAAU,8BAAqC,CAAC;AAE7D,eAAO,MAAM,OAAO,4BAAmC,CAAC;AAExD,wBAAgB,UAAU,IAAI,UAAU,CAIvC;AAED,wBAAgB,aAAa,IAAI,UAAU,GAAG,IAAI,CAEjD"}
@@ -1 +1 @@
1
- {"version":3,"file":"stores.js","sourceRoot":"","sources":["../../src/context/stores.ts"],"names":[],"mappings":"AAAA,wEAAwE;AACxE,0EAA0E;AAC1E,gFAAgF;AAChF,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAGrD,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE3C,MAAM,CAAC,MAAM,YAAY,GAAG,IAAI,iBAAiB,EAAc,CAAC;AAOhE,MAAM,CAAC,MAAM,SAAS,GAAG,IAAI,iBAAiB,EAAa,CAAC;AAS5D,MAAM,CAAC,MAAM,UAAU,GAAG,IAAI,iBAAiB,EAAa,CAAC;AAE7D,MAAM,CAAC,MAAM,OAAO,GAAG,IAAI,iBAAiB,EAAW,CAAC;AAExD,MAAM,UAAU,UAAU;IACxB,MAAM,GAAG,GAAG,YAAY,CAAC,QAAQ,EAAE,CAAC;IACpC,IAAI,CAAC,GAAG;QAAE,MAAM,YAAY,CAAC,gBAAgB,EAAE,CAAC;IAChD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,MAAM,UAAU,aAAa;IAC3B,OAAO,YAAY,CAAC,QAAQ,EAAE,IAAI,IAAI,CAAC;AACzC,CAAC"}
1
+ {"version":3,"file":"stores.js","sourceRoot":"","sources":["../../src/context/stores.ts"],"names":[],"mappings":"AAAA,wEAAwE;AACxE,0EAA0E;AAC1E,gFAAgF;AAChF,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAGrD,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE3C,MAAM,CAAC,MAAM,YAAY,GAAG,IAAI,iBAAiB,EAAc,CAAC;AAOhE,MAAM,CAAC,MAAM,SAAS,GAAG,IAAI,iBAAiB,EAAa,CAAC;AAW5D,MAAM,CAAC,MAAM,UAAU,GAAG,IAAI,iBAAiB,EAAa,CAAC;AAE7D,MAAM,CAAC,MAAM,OAAO,GAAG,IAAI,iBAAiB,EAAW,CAAC;AAExD,MAAM,UAAU,UAAU;IACxB,MAAM,GAAG,GAAG,YAAY,CAAC,QAAQ,EAAE,CAAC;IACpC,IAAI,CAAC,GAAG;QAAE,MAAM,YAAY,CAAC,gBAAgB,EAAE,CAAC;IAChD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,MAAM,UAAU,aAAa;IAC3B,OAAO,YAAY,CAAC,QAAQ,EAAE,IAAI,IAAI,CAAC;AACzC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare function css(strings: TemplateStringsArray, ...values: readonly string[]): string;
2
+ //# sourceMappingURL=css-tag.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"css-tag.d.ts","sourceRoot":"","sources":["../src/css-tag.ts"],"names":[],"mappings":"AAKA,wBAAgB,GAAG,CACjB,OAAO,EAAE,oBAAoB,EAC7B,GAAG,MAAM,EAAE,SAAS,MAAM,EAAE,GAC3B,MAAM,CAMR"}
@@ -0,0 +1,13 @@
1
+ // No-op tagged-template marker: returns the interpolated string verbatim. Its
2
+ // only job is to let vscode-styled-components + stylelint syntax-highlight and
3
+ // lint the inline CSS the tsc-only bars (admin bar, debug bar) emit — those
4
+ // surfaces have no bundler CSS pipeline, so their styles live as template
5
+ // strings rather than a separate stylesheet request.
6
+ export function css(strings, ...values) {
7
+ let out = strings[0] ?? "";
8
+ for (let i = 0; i < values.length; i++) {
9
+ out += values[i] + (strings[i + 1] ?? "");
10
+ }
11
+ return out;
12
+ }
13
+ //# sourceMappingURL=css-tag.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"css-tag.js","sourceRoot":"","sources":["../src/css-tag.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,+EAA+E;AAC/E,4EAA4E;AAC5E,0EAA0E;AAC1E,qDAAqD;AACrD,MAAM,UAAU,GAAG,CACjB,OAA6B,EAC7B,GAAG,MAAyB;IAE5B,IAAI,GAAG,GAAG,OAAO,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IAC3B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACvC,GAAG,IAAI,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IAC5C,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"libsql.d.ts","sourceRoot":"","sources":["../../src/db/libsql.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAG3D,MAAM,WAAW,YAAY;IAC3B;;;OAGG;IACH,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED;;;;GAIG;AACH,MAAM,MAAM,iBAAiB,GAAG,QAAQ,CAAC,YAAY,CAAC,CAAC;AAEvD,MAAM,WAAW,qBAAsB,SAAQ,eAAe;IAC5D,QAAQ,CAAC,MAAM,EAAE,iBAAiB,CAAC;CACpC;AAED;;;;;;;;GAQG;AACH,wBAAgB,MAAM,CAAC,MAAM,EAAE,iBAAiB,GAAG,qBAAqB,CAmBvE"}
1
+ {"version":3,"file":"libsql.d.ts","sourceRoot":"","sources":["../../src/db/libsql.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAK3D,MAAM,WAAW,YAAY;IAC3B;;;OAGG;IACH,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED;;;;GAIG;AACH,MAAM,MAAM,iBAAiB,GAAG,QAAQ,CAAC,YAAY,CAAC,CAAC;AAEvD,MAAM,WAAW,qBAAsB,SAAQ,eAAe;IAC5D,QAAQ,CAAC,MAAM,EAAE,iBAAiB,CAAC;CACpC;AAED;;;;;;;;GAQG;AACH,wBAAgB,MAAM,CAAC,MAAM,EAAE,iBAAiB,GAAG,qBAAqB,CA4BvE"}
package/dist/db/libsql.js CHANGED
@@ -1,5 +1,7 @@
1
1
  import { createClient } from "@libsql/client";
2
2
  import { drizzle } from "drizzle-orm/libsql";
3
+ import { createDebugSqlLogger } from "../debug-bar/db-query.js";
4
+ import { traceSqlClient } from "../debug-bar/trace-libsql.js";
3
5
  import { resolveEnvInput } from "../runtime/env-input.js";
4
6
  /**
5
7
  * Database adapter for any libSQL-compatible SQLite endpoint. Lives behind
@@ -21,12 +23,21 @@ export function libsql(config) {
21
23
  connect: (env, _request, schema) => {
22
24
  if (!client) {
23
25
  const resolved = resolveEnvInput(config, env);
24
- client = createClient({
26
+ const raw = createClient({
25
27
  url: resolved.url,
26
28
  authToken: resolved.authToken,
27
29
  });
30
+ // Dev-only: time each query as a span for the Timeline panel.
31
+ client = process.env.PLUMIX_DEV ? traceSqlClient(raw) : raw;
28
32
  }
29
- return { db: drizzle(client, { schema, casing: "snake_case" }) };
33
+ return {
34
+ db: drizzle(client, {
35
+ schema,
36
+ casing: "snake_case",
37
+ // Dev-only: feed the debug bar's Database panel. Tree-shaken in prod.
38
+ logger: process.env.PLUMIX_DEV ? createDebugSqlLogger() : undefined,
39
+ }),
40
+ };
30
41
  },
31
42
  };
32
43
  }
@@ -1 +1 @@
1
- {"version":3,"file":"libsql.js","sourceRoot":"","sources":["../../src/db/libsql.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAK7C,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAsB1D;;;;;;;;GAQG;AACH,MAAM,UAAU,MAAM,CAAC,MAAyB;IAC9C,2EAA2E;IAC3E,qEAAqE;IACrE,0EAA0E;IAC1E,IAAI,MAAmD,CAAC;IACxD,OAAO;QACL,IAAI,EAAE,QAAQ;QACd,MAAM;QACN,OAAO,EAAE,CAAC,GAAG,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE;YACjC,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,MAAM,QAAQ,GAAG,eAAe,CAAC,MAAM,EAAE,GAAgB,CAAC,CAAC;gBAC3D,MAAM,GAAG,YAAY,CAAC;oBACpB,GAAG,EAAE,QAAQ,CAAC,GAAG;oBACjB,SAAS,EAAE,QAAQ,CAAC,SAAS;iBAC9B,CAAC,CAAC;YACL,CAAC;YACD,OAAO,EAAE,EAAE,EAAE,OAAO,CAAC,MAAM,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC,EAAE,CAAC;QACnE,CAAC;KACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"libsql.js","sourceRoot":"","sources":["../../src/db/libsql.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAK7C,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAsB1D;;;;;;;;GAQG;AACH,MAAM,UAAU,MAAM,CAAC,MAAyB;IAC9C,2EAA2E;IAC3E,qEAAqE;IACrE,0EAA0E;IAC1E,IAAI,MAAmD,CAAC;IACxD,OAAO;QACL,IAAI,EAAE,QAAQ;QACd,MAAM;QACN,OAAO,EAAE,CAAC,GAAG,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE;YACjC,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,MAAM,QAAQ,GAAG,eAAe,CAAC,MAAM,EAAE,GAAgB,CAAC,CAAC;gBAC3D,MAAM,GAAG,GAAG,YAAY,CAAC;oBACvB,GAAG,EAAE,QAAQ,CAAC,GAAG;oBACjB,SAAS,EAAE,QAAQ,CAAC,SAAS;iBAC9B,CAAC,CAAC;gBACH,8DAA8D;gBAC9D,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;YAC9D,CAAC;YACD,OAAO;gBACL,EAAE,EAAE,OAAO,CAAC,MAAM,EAAE;oBAClB,MAAM;oBACN,MAAM,EAAE,YAAY;oBACpB,sEAAsE;oBACtE,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,oBAAoB,EAAE,CAAC,CAAC,CAAC,SAAS;iBACpE,CAAC;aACH,CAAC;QACJ,CAAC;KACF,CAAC;AACJ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"collect.d.ts","sourceRoot":"","sources":["../../src/debug-bar/collect.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAM7C;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,YAAY,EACnB,GAAG,EAAE,UAAU,EACf,QAAQ,EAAE,WAAW,CAAC,MAAM,CAAC,GAC5B,SAAS,UAAU,EAAE,CA8BvB"}
1
+ {"version":3,"file":"collect.d.ts","sourceRoot":"","sources":["../../src/debug-bar/collect.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAM7C;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,YAAY,EACnB,GAAG,EAAE,UAAU,EACf,QAAQ,EAAE,WAAW,CAAC,MAAM,CAAC,GAC5B,SAAS,UAAU,EAAE,CAavB"}
@@ -10,21 +10,7 @@ const DEFAULT_PANEL_ORDER = Number.MAX_SAFE_INTEGER;
10
10
  * collector can't see.
11
11
  */
12
12
  export function collectDebugPanels(hooks, ctx, disabled) {
13
- let panels = [];
14
- for (const { fn, plugin } of hooks.getFilterHandlers("debug_bar:panels")) {
15
- try {
16
- const next = fn(panels, ctx);
17
- if (Array.isArray(next)) {
18
- panels = next;
19
- }
20
- else {
21
- console.error(`[plumix] debug_bar:panels handler returned non-array plugin=${plugin ?? "core"}; contribution discarded`);
22
- }
23
- }
24
- catch (error) {
25
- console.error(`[plumix] debug_bar:panels handler failed plugin=${plugin ?? "core"}`, error);
26
- }
27
- }
13
+ const panels = hooks.applyFilterIsolated("debug_bar:panels", [], ctx);
28
14
  const byId = new Map();
29
15
  for (const p of panels) {
30
16
  if (disabled.has(p.id))
@@ -1 +1 @@
1
- {"version":3,"file":"collect.js","sourceRoot":"","sources":["../../src/debug-bar/collect.ts"],"names":[],"mappings":"AAIA,wEAAwE;AACxE,2DAA2D;AAC3D,MAAM,mBAAmB,GAAG,MAAM,CAAC,gBAAgB,CAAC;AAEpD;;;;;;;GAOG;AACH,MAAM,UAAU,kBAAkB,CAChC,KAAmB,EACnB,GAAe,EACf,QAA6B;IAE7B,IAAI,MAAM,GAA0B,EAAE,CAAC;IACvC,KAAK,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,KAAK,CAAC,iBAAiB,CAAC,kBAAkB,CAAC,EAAE,CAAC;QACzE,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,EAAE,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;YAC7B,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;gBACxB,MAAM,GAAG,IAAI,CAAC;YAChB,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,KAAK,CACX,+DAA+D,MAAM,IAAI,MAAM,0BAA0B,CAC1G,CAAC;YACJ,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CACX,mDAAmD,MAAM,IAAI,MAAM,EAAE,EACrE,KAAK,CACN,CAAC;QACJ,CAAC;IACH,CAAC;IAED,MAAM,IAAI,GAAG,IAAI,GAAG,EAAsB,CAAC;IAC3C,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;QACvB,IAAI,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;YAAE,SAAS;QACjC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;IACpB,CAAC;IAED,OAAO,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAC5B,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CACP,CAAC,CAAC,CAAC,KAAK,IAAI,mBAAmB,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,IAAI,mBAAmB,CAAC,CACtE,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"collect.js","sourceRoot":"","sources":["../../src/debug-bar/collect.ts"],"names":[],"mappings":"AAIA,wEAAwE;AACxE,2DAA2D;AAC3D,MAAM,mBAAmB,GAAG,MAAM,CAAC,gBAAgB,CAAC;AAEpD;;;;;;;GAOG;AACH,MAAM,UAAU,kBAAkB,CAChC,KAAmB,EACnB,GAAe,EACf,QAA6B;IAE7B,MAAM,MAAM,GAAG,KAAK,CAAC,mBAAmB,CAAC,kBAAkB,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC;IAEtE,MAAM,IAAI,GAAG,IAAI,GAAG,EAAsB,CAAC;IAC3C,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;QACvB,IAAI,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;YAAE,SAAS;QACjC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;IACpB,CAAC;IAED,OAAO,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAC5B,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CACP,CAAC,CAAC,CAAC,KAAK,IAAI,mBAAmB,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,IAAI,mBAAmB,CAAC,CACtE,CAAC;AACJ,CAAC"}
@@ -0,0 +1,9 @@
1
+ import type { DebugCollector } from "../context/debug.js";
2
+ import type { DebugBarInput } from "./config.js";
3
+ /**
4
+ * The real, dev-only debug collector. Accumulates per-namespace entries and a
5
+ * span tree for the request. Created only under the dev gate; production uses
6
+ * {@link NOOP_DEBUG} instead, so this module tree-shakes out of prod builds.
7
+ */
8
+ export declare function createDebugCollector(debugBar: DebugBarInput | undefined): DebugCollector;
9
+ //# sourceMappingURL=collector.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"collector.d.ts","sourceRoot":"","sources":["../../src/debug-bar/collector.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAE1D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAWjD;;;;GAIG;AACH,wBAAgB,oBAAoB,CAClC,QAAQ,EAAE,aAAa,GAAG,SAAS,GAClC,cAAc,CAiEhB"}
@@ -0,0 +1,80 @@
1
+ import { NOOP_DEBUG } from "../context/debug.js";
2
+ import { traceStore } from "../context/stores.js";
3
+ import { normalizeDebugBar } from "./config.js";
4
+ function isThenable(value) {
5
+ return (value != null && typeof value.then === "function");
6
+ }
7
+ /**
8
+ * The real, dev-only debug collector. Accumulates per-namespace entries and a
9
+ * span tree for the request. Created only under the dev gate; production uses
10
+ * {@link NOOP_DEBUG} instead, so this module tree-shakes out of prod builds.
11
+ */
12
+ export function createDebugCollector(debugBar) {
13
+ const { enabled, disabled } = normalizeDebugBar(debugBar);
14
+ // Globally disabled in dev: skip all collection overhead, not just render.
15
+ if (!enabled)
16
+ return NOOP_DEBUG;
17
+ const entries = new Map();
18
+ const roots = [];
19
+ return {
20
+ record(namespace, entry) {
21
+ // A disabled panel stops collecting too (not just rendering): its
22
+ // namespace is its panel id, so denylisted namespaces drop at the source.
23
+ if (disabled.has(namespace))
24
+ return;
25
+ const bucket = entries.get(namespace);
26
+ if (bucket)
27
+ bucket.push(entry);
28
+ else
29
+ entries.set(namespace, [entry]);
30
+ },
31
+ span(name, fn) {
32
+ const startedAt = Date.now();
33
+ const span = {
34
+ name,
35
+ startedAt,
36
+ durationMs: 0,
37
+ children: [],
38
+ annotations: {},
39
+ };
40
+ // Attach to the enclosing span (via AsyncLocalStorage) so nesting
41
+ // reflects call structure; top-level spans become roots.
42
+ const parent = traceStore.getStore();
43
+ if (parent)
44
+ parent.children.push(span);
45
+ else
46
+ roots.push(span);
47
+ const stamp = () => {
48
+ span.durationMs = Date.now() - startedAt;
49
+ };
50
+ let result;
51
+ try {
52
+ result = traceStore.run(span, fn);
53
+ }
54
+ catch (error) {
55
+ stamp();
56
+ throw error;
57
+ }
58
+ // Await async work before stamping so I/O time is measured, not just the
59
+ // synchronous prelude. Nesting already survives awaits via ALS.
60
+ if (isThenable(result)) {
61
+ return result.then((value) => {
62
+ stamp();
63
+ return value;
64
+ }, (error) => {
65
+ stamp();
66
+ throw error;
67
+ });
68
+ }
69
+ stamp();
70
+ return result;
71
+ },
72
+ get(namespace) {
73
+ return entries.get(namespace) ?? [];
74
+ },
75
+ getSpans() {
76
+ return roots;
77
+ },
78
+ };
79
+ }
80
+ //# sourceMappingURL=collector.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"collector.js","sourceRoot":"","sources":["../../src/debug-bar/collector.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAEhD,SAAS,UAAU,CAAC,KAAc;IAChC,OAAO,CACL,KAAK,IAAI,IAAI,IAAI,OAAQ,KAA8B,CAAC,IAAI,KAAK,UAAU,CAC5E,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,oBAAoB,CAClC,QAAmC;IAEnC,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,iBAAiB,CAAC,QAAQ,CAAC,CAAC;IAC1D,2EAA2E;IAC3E,IAAI,CAAC,OAAO;QAAE,OAAO,UAAU,CAAC;IAEhC,MAAM,OAAO,GAAG,IAAI,GAAG,EAAqB,CAAC;IAC7C,MAAM,KAAK,GAAgB,EAAE,CAAC;IAE9B,OAAO;QACL,MAAM,CAAC,SAAS,EAAE,KAAK;YACrB,kEAAkE;YAClE,0EAA0E;YAC1E,IAAI,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC;gBAAE,OAAO;YACpC,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;YACtC,IAAI,MAAM;gBAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;;gBAC1B,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;QACvC,CAAC;QACD,IAAI,CAAC,IAAI,EAAE,EAAE;YACX,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YAC7B,MAAM,IAAI,GAAc;gBACtB,IAAI;gBACJ,SAAS;gBACT,UAAU,EAAE,CAAC;gBACb,QAAQ,EAAE,EAAE;gBACZ,WAAW,EAAE,EAAE;aAChB,CAAC;YACF,kEAAkE;YAClE,yDAAyD;YACzD,MAAM,MAAM,GAAG,UAAU,CAAC,QAAQ,EAAE,CAAC;YACrC,IAAI,MAAM;gBAAE,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;;gBAClC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACtB,MAAM,KAAK,GAAG,GAAS,EAAE;gBACvB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;YAC3C,CAAC,CAAC;YACF,IAAI,MAA6B,CAAC;YAClC,IAAI,CAAC;gBACH,MAAM,GAAG,UAAU,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YACpC,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,KAAK,EAAE,CAAC;gBACR,MAAM,KAAK,CAAC;YACd,CAAC;YACD,yEAAyE;YACzE,gEAAgE;YAChE,IAAI,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;gBACvB,OAAO,MAAM,CAAC,IAAI,CAChB,CAAC,KAAK,EAAE,EAAE;oBACR,KAAK,EAAE,CAAC;oBACR,OAAO,KAAK,CAAC;gBACf,CAAC,EACD,CAAC,KAAK,EAAE,EAAE;oBACR,KAAK,EAAE,CAAC;oBACR,MAAM,KAAK,CAAC;gBACd,CAAC,CACuB,CAAC;YAC7B,CAAC;YACD,KAAK,EAAE,CAAC;YACR,OAAO,MAAM,CAAC;QAChB,CAAC;QACD,GAAG,CAAC,SAAS;YACX,OAAO,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;QACtC,CAAC;QACD,QAAQ;YACN,OAAO,KAAK,CAAC;QACf,CAAC;KACF,CAAC;AACJ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"component.d.ts","sourceRoot":"","sources":["../../src/debug-bar/component.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEvC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAMpD;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,EAC7B,GAAG,GACJ,EAAE;IACD,QAAQ,CAAC,GAAG,EAAE,UAAU,CAAC;CAC1B,GAAG,SAAS,CAmDZ"}
1
+ {"version":3,"file":"component.d.ts","sourceRoot":"","sources":["../../src/debug-bar/component.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAGvC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAuBpD;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,EAC7B,GAAG,GACJ,EAAE;IACD,QAAQ,CAAC,GAAG,EAAE,UAAU,CAAC;CAC1B,GAAG,SAAS,CAkDZ"}
@@ -1,8 +1,21 @@
1
- import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
1
+ import { Fragment as _Fragment, jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { renderToStaticMarkup } from "react-dom/server";
2
3
  import { labelSourceText } from "../i18n/label.js";
3
4
  import { collectDebugPanels } from "./collect.js";
4
5
  import { normalizeDebugBar } from "./config.js";
5
6
  import { DEBUG_BAR_CSS } from "./styles.js";
7
+ // Render each panel in isolation: a panel that throws (author logic or a child
8
+ // component during SSR) yields a fallback instead of crashing the host page —
9
+ // exactly the page the bar is meant to help debug.
10
+ function renderPaneHtml(panel, ctx) {
11
+ try {
12
+ return renderToStaticMarkup(_jsx(_Fragment, { children: panel.render(ctx) }));
13
+ }
14
+ catch (error) {
15
+ console.error(`[plumix] debug panel "${panel.id}" failed to render`, error);
16
+ return renderToStaticMarkup(_jsxs("p", { className: "plumix-debug-bar__error", children: ["Panel \u201C", panel.id, "\u201D failed to render."] }));
17
+ }
18
+ }
6
19
  /**
7
20
  * The development-only debug bar. Standalone and auth-independent (unlike the
8
21
  * admin bar it does not gate on a user), fully server-rendered and zero-JS:
@@ -18,6 +31,6 @@ export function PlumixDebugBar({ ctx, }) {
18
31
  if (panels.length === 0)
19
32
  return null;
20
33
  const name = "plumix-debug-tab";
21
- return (_jsxs(_Fragment, { children: [_jsx("style", { "data-testid": "plumix-debug-bar-style", children: DEBUG_BAR_CSS }), _jsx("div", { className: "plumix-debug-bar", "data-testid": "plumix-debug-bar", "data-position": config.position, dir: "ltr", children: _jsxs("details", { open: config.defaultOpen, children: [_jsx("summary", { children: "Debug" }), panels.map((panel, index) => (_jsx("input", { className: "plumix-debug-bar__radio", type: "radio", name: name, id: `${name}-${panel.id}`, defaultChecked: index === 0 }, panel.id))), _jsx("nav", { className: "plumix-debug-bar__labels", children: panels.map((panel) => (_jsx("label", { htmlFor: `${name}-${panel.id}`, children: labelSourceText(panel.title) }, panel.id))) }), _jsx("div", { className: "plumix-debug-bar__panes", children: panels.map((panel) => (_jsx("section", { className: "plumix-debug-bar__pane", "data-testid": `plumix-debug-panel-${panel.id}`, children: panel.render(ctx) }, panel.id))) })] }) })] }));
34
+ return (_jsxs(_Fragment, { children: [_jsx("style", { "data-testid": "plumix-debug-bar-style", children: DEBUG_BAR_CSS }), _jsx("div", { className: "plumix-debug-bar", "data-testid": "plumix-debug-bar", "data-position": config.position, dir: "ltr", children: _jsxs("details", { open: config.defaultOpen, children: [_jsx("summary", { children: "Debug" }), panels.map((panel, index) => (_jsx("input", { className: "plumix-debug-bar__radio", type: "radio", name: name, id: `${name}-${panel.id}`, defaultChecked: index === 0 }, panel.id))), _jsx("nav", { className: "plumix-debug-bar__labels", children: panels.map((panel) => (_jsx("label", { htmlFor: `${name}-${panel.id}`, children: labelSourceText(panel.title) }, panel.id))) }), _jsx("div", { className: "plumix-debug-bar__panes", children: panels.map((panel) => (_jsx("section", { className: "plumix-debug-bar__pane", "data-testid": `plumix-debug-panel-${panel.id}`, dangerouslySetInnerHTML: { __html: renderPaneHtml(panel, ctx) } }, panel.id))) })] }) })] }));
22
35
  }
23
36
  //# sourceMappingURL=component.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"component.js","sourceRoot":"","sources":["../../src/debug-bar/component.tsx"],"names":[],"mappings":";AAGA,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE5C;;;;;;GAMG;AACH,MAAM,UAAU,cAAc,CAAC,EAC7B,GAAG,GAGJ;IACC,MAAM,MAAM,GAAG,iBAAiB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAC/C,IAAI,CAAC,MAAM,CAAC,OAAO;QAAE,OAAO,IAAI,CAAC;IAEjC,MAAM,MAAM,GAAG,kBAAkB,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;IACnE,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAErC,MAAM,IAAI,GAAG,kBAAkB,CAAC;IAChC,OAAO,CACL,8BACE,+BAAmB,wBAAwB,YAAE,aAAa,GAAS,EACnE,cACE,SAAS,EAAC,kBAAkB,iBAChB,kBAAkB,mBACf,MAAM,CAAC,QAAQ,EAC9B,GAAG,EAAC,KAAK,YAET,mBAAS,IAAI,EAAE,MAAM,CAAC,WAAW,aAC/B,sCAAwB,EACvB,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,CAC5B,gBAEE,SAAS,EAAC,yBAAyB,EACnC,IAAI,EAAC,OAAO,EACZ,IAAI,EAAE,IAAI,EACV,EAAE,EAAE,GAAG,IAAI,IAAI,KAAK,CAAC,EAAE,EAAE,EACzB,cAAc,EAAE,KAAK,KAAK,CAAC,IALtB,KAAK,CAAC,EAAE,CAMb,CACH,CAAC,EACF,cAAK,SAAS,EAAC,0BAA0B,YACtC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CACrB,gBAAsB,OAAO,EAAE,GAAG,IAAI,IAAI,KAAK,CAAC,EAAE,EAAE,YACjD,eAAe,CAAC,KAAK,CAAC,KAAK,CAAC,IADnB,KAAK,CAAC,EAAE,CAEZ,CACT,CAAC,GACE,EACN,cAAK,SAAS,EAAC,yBAAyB,YACrC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CACrB,kBAEE,SAAS,EAAC,wBAAwB,iBACrB,sBAAsB,KAAK,CAAC,EAAE,EAAE,YAE5C,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,IAJb,KAAK,CAAC,EAAE,CAKL,CACX,CAAC,GACE,IACE,GACN,IACL,CACJ,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"component.js","sourceRoot":"","sources":["../../src/debug-bar/component.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAIxD,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE5C,+EAA+E;AAC/E,8EAA8E;AAC9E,mDAAmD;AACnD,SAAS,cAAc,CAAC,KAAiB,EAAE,GAAe;IACxD,IAAI,CAAC;QACH,OAAO,oBAAoB,CAAC,4BAAG,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,GAAI,CAAC,CAAC;IACxD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,yBAAyB,KAAK,CAAC,EAAE,oBAAoB,EAAE,KAAK,CAAC,CAAC;QAC5E,OAAO,oBAAoB,CACzB,aAAG,SAAS,EAAC,yBAAyB,6BAC5B,KAAK,CAAC,EAAE,gCACd,CACL,CAAC;IACJ,CAAC;AACH,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,cAAc,CAAC,EAC7B,GAAG,GAGJ;IACC,MAAM,MAAM,GAAG,iBAAiB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAC/C,IAAI,CAAC,MAAM,CAAC,OAAO;QAAE,OAAO,IAAI,CAAC;IAEjC,MAAM,MAAM,GAAG,kBAAkB,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;IACnE,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAErC,MAAM,IAAI,GAAG,kBAAkB,CAAC;IAChC,OAAO,CACL,8BACE,+BAAmB,wBAAwB,YAAE,aAAa,GAAS,EACnE,cACE,SAAS,EAAC,kBAAkB,iBAChB,kBAAkB,mBACf,MAAM,CAAC,QAAQ,EAC9B,GAAG,EAAC,KAAK,YAET,mBAAS,IAAI,EAAE,MAAM,CAAC,WAAW,aAC/B,sCAAwB,EACvB,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,CAC5B,gBAEE,SAAS,EAAC,yBAAyB,EACnC,IAAI,EAAC,OAAO,EACZ,IAAI,EAAE,IAAI,EACV,EAAE,EAAE,GAAG,IAAI,IAAI,KAAK,CAAC,EAAE,EAAE,EACzB,cAAc,EAAE,KAAK,KAAK,CAAC,IALtB,KAAK,CAAC,EAAE,CAMb,CACH,CAAC,EACF,cAAK,SAAS,EAAC,0BAA0B,YACtC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CACrB,gBAAsB,OAAO,EAAE,GAAG,IAAI,IAAI,KAAK,CAAC,EAAE,EAAE,YACjD,eAAe,CAAC,KAAK,CAAC,KAAK,CAAC,IADnB,KAAK,CAAC,EAAE,CAEZ,CACT,CAAC,GACE,EACN,cAAK,SAAS,EAAC,yBAAyB,YACrC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CACrB,kBAEE,SAAS,EAAC,wBAAwB,iBACrB,sBAAsB,KAAK,CAAC,EAAE,EAAE,EAC7C,uBAAuB,EAAE,EAAE,MAAM,EAAE,cAAc,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE,IAH1D,KAAK,CAAC,EAAE,CAIb,CACH,CAAC,GACE,IACE,GACN,IACL,CACJ,CAAC;AACJ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"core-panels.d.ts","sourceRoot":"","sources":["../../src/debug-bar/core-panels.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAIzD;;;;GAIG;AACH,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,YAAY,GAAG,IAAI,CAMjE"}
1
+ {"version":3,"file":"core-panels.d.ts","sourceRoot":"","sources":["../../src/debug-bar/core-panels.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAQzD;;;;GAIG;AACH,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,YAAY,GAAG,IAAI,CAajE"}
@@ -1,10 +1,21 @@
1
+ import { appPanel } from "./panels/app.js";
2
+ import { databasePanel } from "./panels/database.js";
1
3
  import { requestPanel } from "./panels/request.js";
4
+ import { templatePanel } from "./panels/template.js";
5
+ import { timelinePanel } from "./panels/timeline.js";
2
6
  /**
3
7
  * Registers core's built-in debug panels. Wired at `buildApp` time behind
4
8
  * the dev gate, at low priority so plugin panels (default priority 100)
5
9
  * sort after core's. Mirrors `registerCoreAdminBarContributors`.
6
10
  */
7
11
  export function registerCoreDebugPanels(hooks) {
8
- hooks.addFilter("debug_bar:panels", (panels) => [...panels, requestPanel], { plugin: "core", priority: 10 });
12
+ hooks.addFilter("debug_bar:panels", (panels) => [
13
+ ...panels,
14
+ requestPanel,
15
+ templatePanel,
16
+ databasePanel,
17
+ timelinePanel,
18
+ appPanel,
19
+ ], { plugin: "core", priority: 10 });
9
20
  }
10
21
  //# sourceMappingURL=core-panels.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"core-panels.js","sourceRoot":"","sources":["../../src/debug-bar/core-panels.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAEnD;;;;GAIG;AACH,MAAM,UAAU,uBAAuB,CAAC,KAAmB;IACzD,KAAK,CAAC,SAAS,CACb,kBAAkB,EAClB,CAAC,MAA6B,EAAE,EAAE,CAAC,CAAC,GAAG,MAAM,EAAE,YAAY,CAAC,EAC5D,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,EAAE,CACjC,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"core-panels.js","sourceRoot":"","sources":["../../src/debug-bar/core-panels.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC3C,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAErD;;;;GAIG;AACH,MAAM,UAAU,uBAAuB,CAAC,KAAmB;IACzD,KAAK,CAAC,SAAS,CACb,kBAAkB,EAClB,CAAC,MAA6B,EAAE,EAAE,CAAC;QACjC,GAAG,MAAM;QACT,YAAY;QACZ,aAAa;QACb,aAAa;QACb,aAAa;QACb,QAAQ;KACT,EACD,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,EAAE,CACjC,CAAC;AACJ,CAAC"}
@@ -0,0 +1,21 @@
1
+ import type { Logger } from "drizzle-orm";
2
+ /** Panel id + collector namespace for database queries. */
3
+ export declare const DB_PANEL_ID = "database";
4
+ export interface DbQueryEntry {
5
+ readonly sql: string;
6
+ readonly params: readonly unknown[];
7
+ }
8
+ /**
9
+ * A drizzle `Logger` that feeds the Database panel. Pass it as the `logger`
10
+ * option to `drizzle(...)` (dev-gated) — one uniform mechanism across every
11
+ * driver, giving the `?`-form SQL plus the bound params. It reaches the
12
+ * request's collector via the request-store ALS, so it's a no-op outside a
13
+ * request (and in prod, where `ctx.debug` is the no-op collector). Per-query
14
+ * timing is not part of drizzle's logger contract; the Timeline panel measures
15
+ * it via spans instead.
16
+ *
17
+ * Driver-agnostic and free of any driver type import, so it can be shared with
18
+ * runtime adapters (D1) over a narrow subpath without dragging libsql types in.
19
+ */
20
+ export declare function createDebugSqlLogger(): Logger;
21
+ //# sourceMappingURL=db-query.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"db-query.d.ts","sourceRoot":"","sources":["../../src/debug-bar/db-query.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAI1C,2DAA2D;AAC3D,eAAO,MAAM,WAAW,aAAa,CAAC;AAEtC,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,MAAM,EAAE,SAAS,OAAO,EAAE,CAAC;CACrC;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,oBAAoB,IAAI,MAAM,CAM7C"}