@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
@@ -1,80 +0,0 @@
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
@@ -1 +0,0 @@
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,21 +0,0 @@
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
@@ -1 +0,0 @@
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"}
@@ -1,23 +0,0 @@
1
- import { tryGetContext } from "../context/stores.js";
2
- /** Panel id + collector namespace for database queries. */
3
- export const DB_PANEL_ID = "database";
4
- /**
5
- * A drizzle `Logger` that feeds the Database panel. Pass it as the `logger`
6
- * option to `drizzle(...)` (dev-gated) — one uniform mechanism across every
7
- * driver, giving the `?`-form SQL plus the bound params. It reaches the
8
- * request's collector via the request-store ALS, so it's a no-op outside a
9
- * request (and in prod, where `ctx.debug` is the no-op collector). Per-query
10
- * timing is not part of drizzle's logger contract; the Timeline panel measures
11
- * it via spans instead.
12
- *
13
- * Driver-agnostic and free of any driver type import, so it can be shared with
14
- * runtime adapters (D1) over a narrow subpath without dragging libsql types in.
15
- */
16
- export function createDebugSqlLogger() {
17
- return {
18
- logQuery(sql, params) {
19
- tryGetContext()?.debug.record(DB_PANEL_ID, { sql, params });
20
- },
21
- };
22
- }
23
- //# sourceMappingURL=db-query.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"db-query.js","sourceRoot":"","sources":["../../src/debug-bar/db-query.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAErD,2DAA2D;AAC3D,MAAM,CAAC,MAAM,WAAW,GAAG,UAAU,CAAC;AAOtC;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,oBAAoB;IAClC,OAAO;QACL,QAAQ,CAAC,GAAG,EAAE,MAAM;YAClB,aAAa,EAAE,EAAE,KAAK,CAAC,MAAM,CAAC,WAAW,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC,CAAC;QAC9D,CAAC;KACF,CAAC;AACJ,CAAC"}
@@ -1,18 +0,0 @@
1
- import type { Client } from "@libsql/client";
2
- /**
3
- * Wraps a libsql client so every `execute` runs inside a timed `ctx.debug.span`
4
- * — the Timeline panel's source of per-query durations, which drizzle's logger
5
- * contract can't provide. Dev-only (call it behind the `PLUMIX_DEV` gate); a
6
- * no-op outside a request, and tree-shaken from prod along with its callers.
7
- *
8
- * Lives apart from the driver-agnostic query logger so the libsql type import
9
- * stays out of adapters that don't use libsql (e.g. the D1 runtime).
10
- *
11
- * Assumes drizzle's single-argument call convention (`execute(stmt)`,
12
- * `batch(stmts)`); it forwards only that first argument, so a direct
13
- * `execute(sql, args)` call would drop its params. Queries inside a drizzle
14
- * transaction run through `tx.execute` and aren't timed — acceptable for a dev
15
- * panel.
16
- */
17
- export declare function traceSqlClient(client: Client): Client;
18
- //# sourceMappingURL=trace-libsql.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"trace-libsql.d.ts","sourceRoot":"","sources":["../../src/debug-bar/trace-libsql.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAe,MAAM,gBAAgB,CAAC;AAK1D;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CA0BrD"}
@@ -1,42 +0,0 @@
1
- import { tryGetContext } from "../context/stores.js";
2
- import { queryKind } from "./highlight-sql.js";
3
- /**
4
- * Wraps a libsql client so every `execute` runs inside a timed `ctx.debug.span`
5
- * — the Timeline panel's source of per-query durations, which drizzle's logger
6
- * contract can't provide. Dev-only (call it behind the `PLUMIX_DEV` gate); a
7
- * no-op outside a request, and tree-shaken from prod along with its callers.
8
- *
9
- * Lives apart from the driver-agnostic query logger so the libsql type import
10
- * stays out of adapters that don't use libsql (e.g. the D1 runtime).
11
- *
12
- * Assumes drizzle's single-argument call convention (`execute(stmt)`,
13
- * `batch(stmts)`); it forwards only that first argument, so a direct
14
- * `execute(sql, args)` call would drop its params. Queries inside a drizzle
15
- * transaction run through `tx.execute` and aren't timed — acceptable for a dev
16
- * panel.
17
- */
18
- export function traceSqlClient(client) {
19
- const stmtSql = (stmt) => typeof stmt === "string" ? stmt : stmt.sql;
20
- const rawExecute = client.execute.bind(client);
21
- client.execute = (stmt) => {
22
- const ctx = tryGetContext();
23
- const run = () => rawExecute(stmt);
24
- if (!ctx)
25
- return run();
26
- return ctx.debug.span(`db: ${queryKind(stmtSql(stmt))}`, run);
27
- };
28
- // Relational reads and transactions run as one batched round-trip; time the
29
- // whole batch as a single span (labelled by kind when uniform).
30
- const rawBatch = client.batch.bind(client);
31
- client.batch = (stmts, ...rest) => {
32
- const ctx = tryGetContext();
33
- const run = () => rawBatch(stmts, ...rest);
34
- if (!ctx || !Array.isArray(stmts))
35
- return run();
36
- const kinds = new Set(stmts.map((stmt) => queryKind(stmtSql(stmt))));
37
- const label = kinds.size === 1 ? `db: ${[...kinds][0]}` : "db: batch";
38
- return ctx.debug.span(`${label} (${stmts.length})`, run);
39
- };
40
- return client;
41
- }
42
- //# sourceMappingURL=trace-libsql.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"trace-libsql.js","sourceRoot":"","sources":["../../src/debug-bar/trace-libsql.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAE/C;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,cAAc,CAAC,MAAc;IAC3C,MAAM,OAAO,GAAG,CAAC,IAAiB,EAAU,EAAE,CAC5C,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;IAE7C,MAAM,UAAU,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC/C,MAAM,CAAC,OAAO,GAAG,CAAC,IAAiB,EAAE,EAAE;QACrC,MAAM,GAAG,GAAG,aAAa,EAAE,CAAC;QAC5B,MAAM,GAAG,GAAG,GAAkC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QAClE,IAAI,CAAC,GAAG;YAAE,OAAO,GAAG,EAAE,CAAC;QACvB,OAAO,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;IAChE,CAAC,CAAC;IAEF,4EAA4E;IAC5E,gEAAgE;IAChE,MAAM,QAAQ,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC3C,MAAM,CAAC,KAAK,GAAG,CAAC,KAAoB,EAAE,GAAG,IAAe,EAAE,EAAE;QAC1D,MAAM,GAAG,GAAG,aAAa,EAAE,CAAC;QAC5B,MAAM,GAAG,GAAG,GAAgC,EAAE,CAC5C,QAAQ,CAAC,KAAK,EAAE,GAAI,IAAgB,CAAC,CAAC;QACxC,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;YAAE,OAAO,GAAG,EAAE,CAAC;QAChD,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QACrE,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC;QACtE,OAAO,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,KAAK,KAAK,KAAK,CAAC,MAAM,GAAG,EAAE,GAAG,CAAC,CAAC;IAC3D,CAAC,CAAC;IAEF,OAAO,MAAM,CAAC;AAChB,CAAC"}