@vestig/next 0.11.5 → 0.13.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 (37) hide show
  1. package/dist/client/error-boundary.d.ts +22 -0
  2. package/dist/client/error-boundary.d.ts.map +1 -1
  3. package/dist/client/error-boundary.js +89 -2
  4. package/dist/client/error-boundary.js.map +1 -1
  5. package/dist/client/provider.d.ts +2 -0
  6. package/dist/client/provider.d.ts.map +1 -1
  7. package/dist/client/provider.js +16 -2
  8. package/dist/client/provider.js.map +1 -1
  9. package/dist/db/index.d.ts +1 -1
  10. package/dist/db/index.d.ts.map +1 -1
  11. package/dist/db/index.js +1 -1
  12. package/dist/db/index.js.map +1 -1
  13. package/dist/db/query-logger.d.ts +6 -0
  14. package/dist/db/query-logger.d.ts.map +1 -1
  15. package/dist/db/query-logger.js +77 -7
  16. package/dist/db/query-logger.js.map +1 -1
  17. package/dist/wide-events/context.d.ts +73 -0
  18. package/dist/wide-events/context.d.ts.map +1 -0
  19. package/dist/wide-events/context.js +86 -0
  20. package/dist/wide-events/context.js.map +1 -0
  21. package/dist/wide-events/helpers.d.ts +138 -0
  22. package/dist/wide-events/helpers.d.ts.map +1 -0
  23. package/dist/wide-events/helpers.js +182 -0
  24. package/dist/wide-events/helpers.js.map +1 -0
  25. package/dist/wide-events/index.d.ts +63 -0
  26. package/dist/wide-events/index.d.ts.map +1 -0
  27. package/dist/wide-events/index.js +67 -0
  28. package/dist/wide-events/index.js.map +1 -0
  29. package/dist/wide-events/middleware.d.ts +65 -0
  30. package/dist/wide-events/middleware.d.ts.map +1 -0
  31. package/dist/wide-events/middleware.js +160 -0
  32. package/dist/wide-events/middleware.js.map +1 -0
  33. package/dist/wide-events/server-action.d.ts +91 -0
  34. package/dist/wide-events/server-action.d.ts.map +1 -0
  35. package/dist/wide-events/server-action.js +158 -0
  36. package/dist/wide-events/server-action.js.map +1 -0
  37. package/package.json +9 -2
@@ -1,5 +1,27 @@
1
1
  import { type ErrorInfo, type ReactNode } from 'react';
2
2
  import type { LogEntry } from 'vestig';
3
+ /**
4
+ * Filter stack trace for production logging
5
+ *
6
+ * Removes noisy framework internals while keeping user code frames.
7
+ * Returns full stack in development for debugging.
8
+ *
9
+ * @param stack - The raw error stack trace
10
+ * @param isDev - Whether we're in development mode
11
+ * @returns Filtered stack trace (or original in development)
12
+ */
13
+ export declare function filterStackTrace(stack: string | undefined, isDev: boolean): string | undefined;
14
+ /**
15
+ * Filter component stack for production logging
16
+ *
17
+ * In production, limits the component stack to a reasonable size
18
+ * to reduce log volume while preserving debugging context.
19
+ *
20
+ * @param stack - The React component stack
21
+ * @param isDev - Whether we're in development mode
22
+ * @returns Filtered component stack (or original in development)
23
+ */
24
+ export declare function filterComponentStack(stack: string | null | undefined, isDev: boolean): string | undefined;
3
25
  /**
4
26
  * Breadcrumb entry for error context
5
27
  */
@@ -1 +1 @@
1
- {"version":3,"file":"error-boundary.d.ts","sourceRoot":"","sources":["../../src/client/error-boundary.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAa,KAAK,SAAS,EAAE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAA;AACjE,OAAO,KAAK,EAAE,QAAQ,EAAU,MAAM,QAAQ,CAAA;AAG9C;;GAEG;AACH,MAAM,WAAW,UAAU;IAC1B,SAAS,EAAE,MAAM,CAAA;IACjB,KAAK,EAAE,MAAM,CAAA;IACb,OAAO,EAAE,MAAM,CAAA;IACf,SAAS,CAAC,EAAE,MAAM,CAAA;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,wBAAwB;IACxC,QAAQ,EAAE,SAAS,CAAA;IACnB,0DAA0D;IAC1D,QAAQ,CAAC,EAAE,SAAS,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,SAAS,KAAK,SAAS,CAAC,CAAA;IAC1E,oCAAoC;IACpC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,SAAS,KAAK,IAAI,CAAA;IACtD,gDAAgD;IAChD,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,iEAAiE;IACjE,iBAAiB,CAAC,EAAE,OAAO,CAAA;CAC3B;AAiBD;;GAEG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,CAAC,QAAQ,CAAC,GAAG,IAAI,CAY5D;AAED;;GAEG;AACH,wBAAgB,cAAc,IAAI,SAAS,UAAU,EAAE,CAEtD;AAED;;GAEG;AACH,wBAAgB,gBAAgB,IAAI,IAAI,CAEvC;AA6ID;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwCG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,wBAAwB,GAAG,SAAS,CAE9E"}
1
+ {"version":3,"file":"error-boundary.d.ts","sourceRoot":"","sources":["../../src/client/error-boundary.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAa,KAAK,SAAS,EAAE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAA;AACjE,OAAO,KAAK,EAAE,QAAQ,EAAU,MAAM,QAAQ,CAAA;AA6B9C;;;;;;;;;GASG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,EAAE,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAgC9F;AAED;;;;;;;;;GASG;AACH,wBAAgB,oBAAoB,CACnC,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EAChC,KAAK,EAAE,OAAO,GACZ,MAAM,GAAG,SAAS,CAcpB;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IAC1B,SAAS,EAAE,MAAM,CAAA;IACjB,KAAK,EAAE,MAAM,CAAA;IACb,OAAO,EAAE,MAAM,CAAA;IACf,SAAS,CAAC,EAAE,MAAM,CAAA;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,wBAAwB;IACxC,QAAQ,EAAE,SAAS,CAAA;IACnB,0DAA0D;IAC1D,QAAQ,CAAC,EAAE,SAAS,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,SAAS,KAAK,SAAS,CAAC,CAAA;IAC1E,oCAAoC;IACpC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,SAAS,KAAK,IAAI,CAAA;IACtD,gDAAgD;IAChD,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,iEAAiE;IACjE,iBAAiB,CAAC,EAAE,OAAO,CAAA;CAC3B;AAiBD;;GAEG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,CAAC,QAAQ,CAAC,GAAG,IAAI,CAY5D;AAED;;GAEG;AACH,wBAAgB,cAAc,IAAI,SAAS,UAAU,EAAE,CAEtD;AAED;;GAEG;AACH,wBAAgB,gBAAgB,IAAI,IAAI,CAEvC;AAiJD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwCG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,wBAAwB,GAAG,SAAS,CAE9E"}
@@ -2,6 +2,90 @@
2
2
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
3
  import { Component } from 'react';
4
4
  import { useVestigContext } from './provider';
5
+ /**
6
+ * Patterns to filter from stack traces in production
7
+ * These are internal framework frames that add noise without helping debug user code
8
+ */
9
+ const FILTERED_STACK_PATTERNS = [
10
+ // React internals
11
+ /at (renderWithHooks|mountIndeterminateComponent|beginWork|performUnitOfWork)/,
12
+ /at ReactDOMRoot\.render/,
13
+ /at scheduleUpdateOnFiber/,
14
+ /at (dispatchAction|dispatchSetState)/,
15
+ /at Object\.invokeGuardedCallbackDev/,
16
+ /at invokeGuardedCallback/,
17
+ /at HTMLUnknownElement\.callCallback/,
18
+ // Next.js internals
19
+ /at (AppRouter|HotReload|DevRoot)/,
20
+ /at __webpack_require__/,
21
+ /at __next_route_loader__/,
22
+ /webpack-internal:\/\/\/\(app-pages-browser\)/,
23
+ // Node.js internals
24
+ /at Module\._compile/,
25
+ /at processTicksAndRejections/,
26
+ /at runMicrotasks/,
27
+ // Build/bundle internals
28
+ /node_modules\/(react|react-dom|next|webpack)/,
29
+ ];
30
+ /**
31
+ * Filter stack trace for production logging
32
+ *
33
+ * Removes noisy framework internals while keeping user code frames.
34
+ * Returns full stack in development for debugging.
35
+ *
36
+ * @param stack - The raw error stack trace
37
+ * @param isDev - Whether we're in development mode
38
+ * @returns Filtered stack trace (or original in development)
39
+ */
40
+ export function filterStackTrace(stack, isDev) {
41
+ if (!stack || isDev) {
42
+ return stack;
43
+ }
44
+ const lines = stack.split('\n');
45
+ const filteredLines = [];
46
+ // Always keep the first line (error message)
47
+ if (lines.length > 0 && lines[0]) {
48
+ filteredLines.push(lines[0]);
49
+ }
50
+ // Filter remaining lines
51
+ for (let i = 1; i < lines.length; i++) {
52
+ const line = lines[i];
53
+ if (!line)
54
+ continue;
55
+ // Check if line matches any filter pattern
56
+ const shouldFilter = FILTERED_STACK_PATTERNS.some((pattern) => pattern.test(line));
57
+ if (!shouldFilter) {
58
+ filteredLines.push(line);
59
+ }
60
+ }
61
+ // If we filtered everything except the message, include a note
62
+ if (filteredLines.length === 1) {
63
+ filteredLines.push(' (stack frames filtered in production)');
64
+ }
65
+ return filteredLines.join('\n');
66
+ }
67
+ /**
68
+ * Filter component stack for production logging
69
+ *
70
+ * In production, limits the component stack to a reasonable size
71
+ * to reduce log volume while preserving debugging context.
72
+ *
73
+ * @param stack - The React component stack
74
+ * @param isDev - Whether we're in development mode
75
+ * @returns Filtered component stack (or original in development)
76
+ */
77
+ export function filterComponentStack(stack, isDev) {
78
+ if (!stack || isDev) {
79
+ return stack ?? undefined;
80
+ }
81
+ const lines = stack.split('\n').filter((line) => line.trim());
82
+ // In production, limit to 10 most relevant frames
83
+ const maxFrames = 10;
84
+ if (lines.length > maxFrames) {
85
+ return [...lines.slice(0, maxFrames), ` ... and ${lines.length - maxFrames} more`].join('\n');
86
+ }
87
+ return lines.join('\n');
88
+ }
5
89
  /**
6
90
  * Breadcrumb storage (module-level for simplicity)
7
91
  */
@@ -57,13 +141,16 @@ class VestigErrorBoundaryInner extends Component {
57
141
  this.setState({ errorInfo });
58
142
  // Log the error with vestig
59
143
  if (this.props.logger) {
144
+ const isDev = process.env.NODE_ENV === 'development';
60
145
  this.props.logger.error('React component error', {
61
146
  error: {
62
147
  name: error.name,
63
148
  message: error.message,
64
- stack: error.stack,
149
+ // Filter stack traces in production to reduce noise
150
+ stack: filterStackTrace(error.stack, isDev),
65
151
  },
66
- componentStack: errorInfo.componentStack,
152
+ // Filter component stack in production to limit size
153
+ componentStack: filterComponentStack(errorInfo.componentStack, isDev),
67
154
  breadcrumbs: getBreadcrumbs(),
68
155
  });
69
156
  }
@@ -1 +1 @@
1
- {"version":3,"file":"error-boundary.js","sourceRoot":"","sources":["../../src/client/error-boundary.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"error-boundary.js","sourceRoot":"","sources":["../../src/client/error-boundary.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;AAEZ,OAAO,EAAE,SAAS,EAAkC,MAAM,OAAO,CAAA;AAEjE,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAA;AAE7C;;;GAGG;AACH,MAAM,uBAAuB,GAAG;IAC/B,kBAAkB;IAClB,8EAA8E;IAC9E,yBAAyB;IACzB,0BAA0B;IAC1B,sCAAsC;IACtC,qCAAqC;IACrC,0BAA0B;IAC1B,qCAAqC;IACrC,oBAAoB;IACpB,kCAAkC;IAClC,wBAAwB;IACxB,0BAA0B;IAC1B,8CAA8C;IAC9C,oBAAoB;IACpB,qBAAqB;IACrB,8BAA8B;IAC9B,kBAAkB;IAClB,yBAAyB;IACzB,8CAA8C;CAC9C,CAAA;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,gBAAgB,CAAC,KAAyB,EAAE,KAAc;IACzE,IAAI,CAAC,KAAK,IAAI,KAAK,EAAE,CAAC;QACrB,OAAO,KAAK,CAAA;IACb,CAAC;IAED,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;IAC/B,MAAM,aAAa,GAAa,EAAE,CAAA;IAElC,6CAA6C;IAC7C,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;QAClC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;IAC7B,CAAC;IAED,yBAAyB;IACzB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACvC,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAA;QACrB,IAAI,CAAC,IAAI;YAAE,SAAQ;QAEnB,2CAA2C;QAC3C,MAAM,YAAY,GAAG,uBAAuB,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAA;QAElF,IAAI,CAAC,YAAY,EAAE,CAAC;YACnB,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QACzB,CAAC;IACF,CAAC;IAED,+DAA+D;IAC/D,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAChC,aAAa,CAAC,IAAI,CAAC,2CAA2C,CAAC,CAAA;IAChE,CAAC;IAED,OAAO,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AAChC,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,oBAAoB,CACnC,KAAgC,EAChC,KAAc;IAEd,IAAI,CAAC,KAAK,IAAI,KAAK,EAAE,CAAC;QACrB,OAAO,KAAK,IAAI,SAAS,CAAA;IAC1B,CAAC;IAED,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAA;IAE7D,kDAAkD;IAClD,MAAM,SAAS,GAAG,EAAE,CAAA;IACpB,IAAI,KAAK,CAAC,MAAM,GAAG,SAAS,EAAE,CAAC;QAC9B,OAAO,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,SAAS,CAAC,EAAE,eAAe,KAAK,CAAC,MAAM,GAAG,SAAS,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IACjG,CAAC;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AACxB,CAAC;AAoCD;;GAEG;AACH,MAAM,WAAW,GAAiB,EAAE,CAAA;AACpC,IAAI,iBAAiB,GAAG,EAAE,CAAA;AAE1B;;GAEG;AACH,MAAM,UAAU,aAAa,CAAC,KAAwB;IACrD,WAAW,CAAC,IAAI,CAAC;QAChB,SAAS,EAAE,KAAK,CAAC,SAAS,IAAI,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACtD,KAAK,EAAE,KAAK,CAAC,KAAK,IAAI,MAAM;QAC5B,OAAO,EAAE,KAAK,CAAC,OAAO,IAAI,EAAE;QAC5B,SAAS,EAAE,KAAK,CAAC,SAAS;KAC1B,CAAC,CAAA;IAEF,mBAAmB;IACnB,OAAO,WAAW,CAAC,MAAM,GAAG,iBAAiB,EAAE,CAAC;QAC/C,WAAW,CAAC,KAAK,EAAE,CAAA;IACpB,CAAC;AACF,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,cAAc;IAC7B,OAAO,WAAW,CAAA;AACnB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,gBAAgB;IAC/B,WAAW,CAAC,MAAM,GAAG,CAAC,CAAA;AACvB,CAAC;AAED;;GAEG;AACH,MAAM,wBAAyB,SAAQ,SAGtC;IACA,YAAY,KAA2D;QACtE,KAAK,CAAC,KAAK,CAAC,CAAA;QACZ,IAAI,CAAC,KAAK,GAAG;YACZ,QAAQ,EAAE,KAAK;YACf,KAAK,EAAE,IAAI;YACX,SAAS,EAAE,IAAI;SACf,CAAA;QAED,6BAA6B;QAC7B,IAAI,KAAK,CAAC,cAAc,KAAK,SAAS,EAAE,CAAC;YACxC,iBAAiB,GAAG,KAAK,CAAC,cAAc,CAAA;QACzC,CAAC;IACF,CAAC;IAED,MAAM,CAAC,wBAAwB,CAAC,KAAY;QAC3C,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,CAAA;IACjC,CAAC;IAEQ,iBAAiB,CAAC,KAAY,EAAE,SAAoB;QAC5D,IAAI,CAAC,QAAQ,CAAC,EAAE,SAAS,EAAE,CAAC,CAAA;QAE5B,4BAA4B;QAC5B,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;YACvB,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,aAAa,CAAA;YAEpD,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,uBAAuB,EAAE;gBAChD,KAAK,EAAE;oBACN,IAAI,EAAE,KAAK,CAAC,IAAI;oBAChB,OAAO,EAAE,KAAK,CAAC,OAAO;oBACtB,oDAAoD;oBACpD,KAAK,EAAE,gBAAgB,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC;iBAC3C;gBACD,qDAAqD;gBACrD,cAAc,EAAE,oBAAoB,CAAC,SAAS,CAAC,cAAc,EAAE,KAAK,CAAC;gBACrE,WAAW,EAAE,cAAc,EAAE;aAC7B,CAAC,CAAA;QACH,CAAC;QAED,4BAA4B;QAC5B,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,SAAS,CAAC,CAAA;IACvC,CAAC;IAED;;OAEG;IACH,UAAU,GAAG,GAAS,EAAE;QACvB,IAAI,CAAC,QAAQ,CAAC;YACb,QAAQ,EAAE,KAAK;YACf,KAAK,EAAE,IAAI;YACX,SAAS,EAAE,IAAI;SACf,CAAC,CAAA;QACF,gBAAgB,EAAE,CAAA;IACnB,CAAC,CAAA;IAEQ,MAAM;QACd,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC,KAAK,CAAA;QACjD,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC,KAAK,CAAA;QAEzC,IAAI,QAAQ,IAAI,KAAK,EAAE,CAAC;YACvB,qBAAqB;YACrB,IAAI,OAAO,QAAQ,KAAK,UAAU,EAAE,CAAC;gBACpC,OAAO,QAAQ,CAAC,KAAK,EAAE,SAAU,CAAC,CAAA;YACnC,CAAC;YAED,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;gBAC5B,OAAO,QAAQ,CAAA;YAChB,CAAC;YAED,mBAAmB;YACnB,OAAO,CACN,eACC,IAAI,EAAC,OAAO,EACZ,KAAK,EAAE;oBACN,OAAO,EAAE,MAAM;oBACf,MAAM,EAAE,MAAM;oBACd,eAAe,EAAE,SAAS;oBAC1B,MAAM,EAAE,mBAAmB;oBAC3B,YAAY,EAAE,KAAK;oBACnB,UAAU,EAAE,uBAAuB;iBACnC,aAED,aAAI,KAAK,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC,EAAE,qCAA2B,EACxE,YAAG,KAAK,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,YAAG,KAAK,CAAC,OAAO,GAAK,EACnD,iBACC,OAAO,EAAE,IAAI,CAAC,UAAU,EACxB,KAAK,EAAE;4BACN,OAAO,EAAE,UAAU;4BACnB,eAAe,EAAE,SAAS;4BAC1B,KAAK,EAAE,OAAO;4BACd,MAAM,EAAE,MAAM;4BACd,YAAY,EAAE,KAAK;4BACnB,MAAM,EAAE,SAAS;yBACjB,0BAGO,EACR,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,aAAa,IAAI,KAAK,CAAC,KAAK,IAAI,CACzD,cACC,KAAK,EAAE;4BACN,SAAS,EAAE,MAAM;4BACjB,OAAO,EAAE,MAAM;4BACf,eAAe,EAAE,SAAS;4BAC1B,YAAY,EAAE,KAAK;4BACnB,QAAQ,EAAE,MAAM;4BAChB,QAAQ,EAAE,MAAM;4BAChB,UAAU,EAAE,UAAU;4BACtB,SAAS,EAAE,YAAY;yBACvB,YAEA,KAAK,CAAC,KAAK,GACP,CACN,IACI,CACN,CAAA;QACF,CAAC;QAED,OAAO,QAAQ,CAAA;IAChB,CAAC;CACD;AAED;;GAEG;AACH,SAAS,0BAA0B,CAAC,KAA+B;IAClE,IAAI,MAAM,GAAkB,IAAI,CAAA;IAEhC,IAAI,CAAC;QACJ,MAAM,OAAO,GAAG,gBAAgB,EAAE,CAAA;QAClC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAA;IACxB,CAAC;IAAC,MAAM,CAAC;QACR,oDAAoD;IACrD,CAAC;IAED,OAAO,KAAC,wBAAwB,OAAK,KAAK,EAAE,MAAM,EAAE,MAAM,GAAI,CAAA;AAC/D,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwCG;AACH,MAAM,UAAU,mBAAmB,CAAC,KAA+B;IAClE,OAAO,KAAC,0BAA0B,OAAK,KAAK,GAAI,CAAA;AACjD,CAAC"}
@@ -10,6 +10,8 @@ interface VestigContextValue {
10
10
  context: LogContext;
11
11
  /** Whether client is connected to server */
12
12
  isConnected: boolean;
13
+ /** Error that occurred during transport initialization */
14
+ initError: Error | null;
13
15
  }
14
16
  /**
15
17
  * Props for VestigProvider
@@ -1 +1 @@
1
- {"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../../src/client/provider.tsx"],"names":[],"mappings":"AAEA,OAAO,EACN,KAAK,SAAS,EAOd,MAAM,OAAO,CAAA;AACd,OAAO,EAAE,KAAK,UAAU,EAAE,KAAK,MAAM,EAAgB,MAAM,QAAQ,CAAA;AAGnE;;GAEG;AACH,UAAU,kBAAkB;IAC3B,sBAAsB;IACtB,MAAM,EAAE,MAAM,CAAA;IACd,0BAA0B;IAC1B,OAAO,EAAE,UAAU,CAAA;IACnB,4CAA4C;IAC5C,WAAW,EAAE,OAAO,CAAA;CACpB;AAID;;GAEG;AACH,MAAM,WAAW,mBAAmB;IACnC,QAAQ,EAAE,SAAS,CAAA;IACnB,sDAAsD;IACtD,cAAc,CAAC,EAAE,UAAU,CAAA;IAC3B,qDAAqD;IACrD,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,2CAA2C;IAC3C,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,gCAAgC;IAChC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CACjC;AASD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,wBAAgB,cAAc,CAAC,EAC9B,QAAQ,EACR,cAAc,EACd,QAAwB,EACxB,SAAoB,EACpB,OAAO,EAAE,aAAa,GACtB,EAAE,mBAAmB,2CAyFrB;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,IAAI,kBAAkB,CAMrD"}
1
+ {"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../../src/client/provider.tsx"],"names":[],"mappings":"AAEA,OAAO,EACN,KAAK,SAAS,EAOd,MAAM,OAAO,CAAA;AACd,OAAO,EAAE,KAAK,UAAU,EAAE,KAAK,MAAM,EAAgB,MAAM,QAAQ,CAAA;AAGnE;;GAEG;AACH,UAAU,kBAAkB;IAC3B,sBAAsB;IACtB,MAAM,EAAE,MAAM,CAAA;IACd,0BAA0B;IAC1B,OAAO,EAAE,UAAU,CAAA;IACnB,4CAA4C;IAC5C,WAAW,EAAE,OAAO,CAAA;IACpB,0DAA0D;IAC1D,SAAS,EAAE,KAAK,GAAG,IAAI,CAAA;CACvB;AAID;;GAEG;AACH,MAAM,WAAW,mBAAmB;IACnC,QAAQ,EAAE,SAAS,CAAA;IACnB,sDAAsD;IACtD,cAAc,CAAC,EAAE,UAAU,CAAA;IAC3B,qDAAqD;IACrD,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,2CAA2C;IAC3C,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,gCAAgC;IAChC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CACjC;AASD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,wBAAgB,cAAc,CAAC,EAC9B,QAAQ,EACR,cAAc,EACd,QAAwB,EACxB,SAAoB,EACpB,OAAO,EAAE,aAAa,GACtB,EAAE,mBAAmB,2CAuGrB;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,IAAI,kBAAkB,CAMrD"}
@@ -42,6 +42,7 @@ function generateClientRequestId() {
42
42
  */
43
43
  export function VestigProvider({ children, initialContext, endpoint = '/api/vestig', namespace = 'client', context: staticContext, }) {
44
44
  const [isConnected, setIsConnected] = useState(false);
45
+ const [initError, setInitError] = useState(null);
45
46
  const transportRef = useRef(null);
46
47
  const loggerRef = useRef(null);
47
48
  // Create transport once
@@ -85,7 +86,19 @@ export function VestigProvider({ children, initialContext, endpoint = '/api/vest
85
86
  }, [transport, namespace, staticContext, context]);
86
87
  // Initialize transport on mount
87
88
  useEffect(() => {
88
- transport.init().then(() => setIsConnected(true));
89
+ transport
90
+ .init()
91
+ .then(() => {
92
+ setIsConnected(true);
93
+ setInitError(null);
94
+ })
95
+ .catch((err) => {
96
+ const error = err instanceof Error ? err : new Error(String(err));
97
+ setInitError(error);
98
+ setIsConnected(false);
99
+ // Log to console since transport failed
100
+ console.error('[vestig] Transport initialization failed:', error);
101
+ });
89
102
  // Flush on page unload
90
103
  const handleUnload = () => {
91
104
  transport.flush();
@@ -108,7 +121,8 @@ export function VestigProvider({ children, initialContext, endpoint = '/api/vest
108
121
  logger,
109
122
  context,
110
123
  isConnected,
111
- }), [logger, context, isConnected]);
124
+ initError,
125
+ }), [logger, context, isConnected, initError]);
112
126
  return _jsx(VestigContext.Provider, { value: value, children: children });
113
127
  }
114
128
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"provider.js","sourceRoot":"","sources":["../../src/client/provider.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;AAEZ,OAAO,EAEN,aAAa,EACb,UAAU,EACV,SAAS,EACT,OAAO,EACP,MAAM,EACN,QAAQ,GACR,MAAM,OAAO,CAAA;AACd,OAAO,EAAgC,YAAY,EAAE,MAAM,QAAQ,CAAA;AACnE,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAA;AAcjD,MAAM,aAAa,GAAG,aAAa,CAA4B,IAAI,CAAC,CAAA;AAiBpE;;GAEG;AACH,SAAS,uBAAuB;IAC/B,OAAO,UAAU,MAAM,CAAC,UAAU,EAAE,EAAE,CAAA;AACvC,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,MAAM,UAAU,cAAc,CAAC,EAC9B,QAAQ,EACR,cAAc,EACd,QAAQ,GAAG,aAAa,EACxB,SAAS,GAAG,QAAQ,EACpB,OAAO,EAAE,aAAa,GACD;IACrB,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAA;IACrD,MAAM,YAAY,GAAG,MAAM,CAA6B,IAAI,CAAC,CAAA;IAC7D,MAAM,SAAS,GAAG,MAAM,CAAgB,IAAI,CAAC,CAAA;IAE7C,wBAAwB;IACxB,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,EAAE;QAC9B,IAAI,YAAY,CAAC,OAAO;YAAE,OAAO,YAAY,CAAC,OAAO,CAAA;QAErD,YAAY,CAAC,OAAO,GAAG,IAAI,mBAAmB,CAAC;YAC9C,IAAI,EAAE,eAAe;YACrB,GAAG,EAAE,QAAQ;YACb,SAAS,EAAE,EAAE;YACb,aAAa,EAAE,IAAI;YACnB,cAAc,EAAE,GAAG,EAAE,CAAC,cAAc,CAAC,IAAI,CAAC;YAC1C,YAAY,EAAE,GAAG,EAAE,CAAC,cAAc,CAAC,KAAK,CAAC;SACzC,CAAC,CAAA;QAEF,OAAO,YAAY,CAAC,OAAO,CAAA;IAC5B,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAA;IAEd,6BAA6B;IAC7B,MAAM,OAAO,GAAG,OAAO,CACtB,GAAG,EAAE,CAAC,CAAC;QACN,SAAS,EAAE,cAAc,EAAE,SAAS,IAAI,uBAAuB,EAAE;QACjE,OAAO,EAAE,cAAc,EAAE,OAAO;QAChC,MAAM,EAAE,cAAc,EAAE,MAAM;QAC9B,GAAG,cAAc;KACjB,CAAC,EACF,CAAC,cAAc,CAAC,CAChB,CAAA;IAED,+BAA+B;IAC/B,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,EAAE;QAC3B,IAAI,SAAS,CAAC,OAAO;YAAE,OAAO,SAAS,CAAC,OAAO,CAAA;QAE/C,MAAM,GAAG,GAAG,YAAY,CAAC;YACxB,KAAK,EAAE,OAAO,EAAE,kDAAkD;YAClE,QAAQ,EAAE,SAAS;YACnB,UAAU,EAAE,KAAK,EAAE,sCAAsC;YACzD,SAAS;YACT,OAAO,EAAE;gBACR,GAAG,aAAa;gBAChB,GAAG,OAAO;aACV;SACD,CAAC,CAAA;QAEF,GAAG,CAAC,YAAY,CAAC,SAAS,CAAC,CAAA;QAC3B,SAAS,CAAC,OAAO,GAAG,GAAG,CAAA;QAEvB,OAAO,GAAG,CAAA;IACX,CAAC,EAAE,CAAC,SAAS,EAAE,SAAS,EAAE,aAAa,EAAE,OAAO,CAAC,CAAC,CAAA;IAElD,gCAAgC;IAChC,SAAS,CAAC,GAAG,EAAE;QACd,SAAS,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAA;QAEjD,uBAAuB;QACvB,MAAM,YAAY,GAAG,GAAG,EAAE;YACzB,SAAS,CAAC,KAAK,EAAE,CAAA;QAClB,CAAC,CAAA;QAED,0CAA0C;QAC1C,MAAM,sBAAsB,GAAG,GAAG,EAAE;YACnC,IAAI,QAAQ,CAAC,eAAe,KAAK,QAAQ,EAAE,CAAC;gBAC3C,SAAS,CAAC,KAAK,EAAE,CAAA;YAClB,CAAC;QACF,CAAC,CAAA;QAED,MAAM,CAAC,gBAAgB,CAAC,cAAc,EAAE,YAAY,CAAC,CAAA;QACrD,QAAQ,CAAC,gBAAgB,CAAC,kBAAkB,EAAE,sBAAsB,CAAC,CAAA;QAErE,OAAO,GAAG,EAAE;YACX,MAAM,CAAC,mBAAmB,CAAC,cAAc,EAAE,YAAY,CAAC,CAAA;YACxD,QAAQ,CAAC,mBAAmB,CAAC,kBAAkB,EAAE,sBAAsB,CAAC,CAAA;YACxE,SAAS,CAAC,OAAO,EAAE,CAAA;QACpB,CAAC,CAAA;IACF,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAA;IAEf,MAAM,KAAK,GAAG,OAAO,CACpB,GAAG,EAAE,CAAC,CAAC;QACN,MAAM;QACN,OAAO;QACP,WAAW;KACX,CAAC,EACF,CAAC,MAAM,EAAE,OAAO,EAAE,WAAW,CAAC,CAC9B,CAAA;IAED,OAAO,KAAC,aAAa,CAAC,QAAQ,IAAC,KAAK,EAAE,KAAK,YAAG,QAAQ,GAA0B,CAAA;AACjF,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,gBAAgB;IAC/B,MAAM,OAAO,GAAG,UAAU,CAAC,aAAa,CAAC,CAAA;IACzC,IAAI,CAAC,OAAO,EAAE,CAAC;QACd,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAA;IACvE,CAAC;IACD,OAAO,OAAO,CAAA;AACf,CAAC"}
1
+ {"version":3,"file":"provider.js","sourceRoot":"","sources":["../../src/client/provider.tsx"],"names":[],"mappings":"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"}
@@ -44,6 +44,6 @@
44
44
  */
45
45
  export { withVestigPrisma, createPrismaQueryHandler, createPrismaLogConfig, type VestigPrismaOptions, } from './prisma';
46
46
  export { createVestigDrizzleLogger, createDrizzleQueryLogger, measureQuery, type VestigDrizzleLoggerOptions, } from './drizzle';
47
- export { formatDuration, createQueryLogEntry, logQuery, mergeConfig } from './query-logger';
47
+ export { formatDuration, createQueryLogEntry, logQuery, mergeConfig, extractAllTableNames, } from './query-logger';
48
48
  export type { QueryLogEntry, DbLoggerConfig, PrismaQueryEvent, PrismaLogEvent, DrizzleLogger, } from './types';
49
49
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/db/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2CG;AAGH,OAAO,EACN,gBAAgB,EAChB,wBAAwB,EACxB,qBAAqB,EACrB,KAAK,mBAAmB,GACxB,MAAM,UAAU,CAAA;AAGjB,OAAO,EACN,yBAAyB,EACzB,wBAAwB,EACxB,YAAY,EACZ,KAAK,0BAA0B,GAC/B,MAAM,WAAW,CAAA;AAGlB,OAAO,EAAE,cAAc,EAAE,mBAAmB,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAA;AAG3F,YAAY,EACX,aAAa,EACb,cAAc,EACd,gBAAgB,EAChB,cAAc,EACd,aAAa,GACb,MAAM,SAAS,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/db/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2CG;AAGH,OAAO,EACN,gBAAgB,EAChB,wBAAwB,EACxB,qBAAqB,EACrB,KAAK,mBAAmB,GACxB,MAAM,UAAU,CAAA;AAGjB,OAAO,EACN,yBAAyB,EACzB,wBAAwB,EACxB,YAAY,EACZ,KAAK,0BAA0B,GAC/B,MAAM,WAAW,CAAA;AAGlB,OAAO,EACN,cAAc,EACd,mBAAmB,EACnB,QAAQ,EACR,WAAW,EACX,oBAAoB,GACpB,MAAM,gBAAgB,CAAA;AAGvB,YAAY,EACX,aAAa,EACb,cAAc,EACd,gBAAgB,EAChB,cAAc,EACd,aAAa,GACb,MAAM,SAAS,CAAA"}
package/dist/db/index.js CHANGED
@@ -47,5 +47,5 @@ export { withVestigPrisma, createPrismaQueryHandler, createPrismaLogConfig, } fr
47
47
  // Drizzle integration
48
48
  export { createVestigDrizzleLogger, createDrizzleQueryLogger, measureQuery, } from './drizzle';
49
49
  // Core utilities
50
- export { formatDuration, createQueryLogEntry, logQuery, mergeConfig } from './query-logger';
50
+ export { formatDuration, createQueryLogEntry, logQuery, mergeConfig, extractAllTableNames, } from './query-logger';
51
51
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/db/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2CG;AAEH,qBAAqB;AACrB,OAAO,EACN,gBAAgB,EAChB,wBAAwB,EACxB,qBAAqB,GAErB,MAAM,UAAU,CAAA;AAEjB,sBAAsB;AACtB,OAAO,EACN,yBAAyB,EACzB,wBAAwB,EACxB,YAAY,GAEZ,MAAM,WAAW,CAAA;AAElB,iBAAiB;AACjB,OAAO,EAAE,cAAc,EAAE,mBAAmB,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/db/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2CG;AAEH,qBAAqB;AACrB,OAAO,EACN,gBAAgB,EAChB,wBAAwB,EACxB,qBAAqB,GAErB,MAAM,UAAU,CAAA;AAEjB,sBAAsB;AACtB,OAAO,EACN,yBAAyB,EACzB,wBAAwB,EACxB,YAAY,GAEZ,MAAM,WAAW,CAAA;AAElB,iBAAiB;AACjB,OAAO,EACN,cAAc,EACd,mBAAmB,EACnB,QAAQ,EACR,WAAW,EACX,oBAAoB,GACpB,MAAM,gBAAgB,CAAA"}
@@ -8,6 +8,12 @@
8
8
  */
9
9
  import type { Logger } from 'vestig';
10
10
  import type { DbLoggerConfig, QueryLogEntry } from './types';
11
+ /**
12
+ * Extract all table names from a query (including JOINs)
13
+ *
14
+ * @returns Array of table names found in the query
15
+ */
16
+ export declare function extractAllTableNames(query: string): string[];
11
17
  /**
12
18
  * Format duration for logging
13
19
  */
@@ -1 +1 @@
1
- {"version":3,"file":"query-logger.d.ts","sourceRoot":"","sources":["../../src/db/query-logger.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AACpC,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;AAmG5D;;GAEG;AACH,wBAAgB,cAAc,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,CAIjD;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAClC,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,OAAO,EAAE,GAAG,SAAS,EAC7B,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,QAAQ,CAAC,cAAc,CAAC,EAChC,OAAO,CAAC,EAAE;IAAE,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,GAChD,aAAa,CAgBf;AAED;;GAEG;AACH,wBAAgB,QAAQ,CACvB,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,aAAa,EACpB,MAAM,EAAE,QAAQ,CAAC,cAAc,CAAC,GAC9B,IAAI,CA6BN;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,MAAM,CAAC,EAAE,cAAc,GAAG,QAAQ,CAAC,cAAc,CAAC,CAE7E"}
1
+ {"version":3,"file":"query-logger.d.ts","sourceRoot":"","sources":["../../src/db/query-logger.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AACpC,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;AA8F5D;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,CAkC5D;AA6CD;;GAEG;AACH,wBAAgB,cAAc,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,CAIjD;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAClC,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,OAAO,EAAE,GAAG,SAAS,EAC7B,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,QAAQ,CAAC,cAAc,CAAC,EAChC,OAAO,CAAC,EAAE;IAAE,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,GAChD,aAAa,CAgBf;AAED;;GAEG;AACH,wBAAgB,QAAQ,CACvB,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,aAAa,EACpB,MAAM,EAAE,QAAQ,CAAC,cAAc,CAAC,GAC9B,IAAI,CA6BN;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,MAAM,CAAC,EAAE,cAAc,GAAG,QAAQ,CAAC,cAAc,CAAC,CAE7E"}
@@ -40,24 +40,94 @@ function detectOperation(query) {
40
40
  return 'DELETE';
41
41
  return 'OTHER';
42
42
  }
43
+ /**
44
+ * Pattern for matching quoted or unquoted table identifiers
45
+ * Supports: table, "table", `table`, 'table', schema.table, "schema"."table"
46
+ */
47
+ const TABLE_IDENTIFIER = /["'`]?([\w]+)["'`]?(?:\.["'`]?([\w]+)["'`]?)?/;
43
48
  /**
44
49
  * Extract table name from query (best effort)
50
+ *
51
+ * Handles:
52
+ * - SELECT ... FROM table
53
+ * - INSERT INTO table
54
+ * - UPDATE table SET ...
55
+ * - DELETE FROM table
56
+ * - TRUNCATE table
57
+ * - JOIN table ON ...
58
+ * - Schema-qualified names (schema.table)
59
+ * - Quoted identifiers ("table", `table`)
45
60
  */
46
61
  function extractTableName(query) {
62
+ // Normalize whitespace (replace newlines, multiple spaces with single space)
63
+ const normalized = query.replace(/\s+/g, ' ').trim();
64
+ // Table name patterns in order of specificity
47
65
  const patterns = [
48
- /FROM\s+["'`]?(\w+)["'`]?/i,
49
- /INTO\s+["'`]?(\w+)["'`]?/i,
50
- /UPDATE\s+["'`]?(\w+)["'`]?/i,
51
- /DELETE\s+FROM\s+["'`]?(\w+)["'`]?/i,
66
+ // DELETE FROM [schema.]table
67
+ new RegExp(`DELETE\\s+FROM\\s+${TABLE_IDENTIFIER.source}`, 'i'),
68
+ // INSERT INTO [schema.]table
69
+ new RegExp(`INTO\\s+${TABLE_IDENTIFIER.source}`, 'i'),
70
+ // UPDATE [schema.]table SET
71
+ new RegExp(`UPDATE\\s+${TABLE_IDENTIFIER.source}`, 'i'),
72
+ // TRUNCATE [TABLE] [schema.]table
73
+ new RegExp(`TRUNCATE\\s+(?:TABLE\\s+)?${TABLE_IDENTIFIER.source}`, 'i'),
74
+ // SELECT ... FROM [schema.]table (primary table)
75
+ new RegExp(`FROM\\s+${TABLE_IDENTIFIER.source}(?:\\s+(?:AS\\s+)?\\w+)?(?:\\s*,|\\s+(?:WHERE|LEFT|RIGHT|INNER|OUTER|CROSS|JOIN|ON|GROUP|ORDER|LIMIT|OFFSET|$))`, 'i'),
76
+ // Fallback: just FROM [schema.]table
77
+ new RegExp(`FROM\\s+${TABLE_IDENTIFIER.source}`, 'i'),
52
78
  ];
53
79
  for (const pattern of patterns) {
54
- const match = pattern.exec(query);
55
- if (match?.[1]) {
56
- return match[1];
80
+ const match = pattern.exec(normalized);
81
+ if (match) {
82
+ // If we have both schema and table (groups 1 and 2), return schema.table
83
+ if (match[2]) {
84
+ return `${match[1]}.${match[2]}`;
85
+ }
86
+ // Otherwise just return the table name
87
+ if (match[1]) {
88
+ return match[1];
89
+ }
57
90
  }
58
91
  }
59
92
  return undefined;
60
93
  }
94
+ /**
95
+ * Extract all table names from a query (including JOINs)
96
+ *
97
+ * @returns Array of table names found in the query
98
+ */
99
+ export function extractAllTableNames(query) {
100
+ const normalized = query.replace(/\s+/g, ' ').trim();
101
+ const tables = new Set();
102
+ // Patterns that capture table names
103
+ const tablePatterns = [
104
+ // FROM clause (can have multiple tables separated by commas)
105
+ /FROM\s+(["'`]?[\w]+["'`]?(?:\.["'`]?[\w]+["'`]?)?)/gi,
106
+ // JOIN clauses
107
+ /JOIN\s+(["'`]?[\w]+["'`]?(?:\.["'`]?[\w]+["'`]?)?)/gi,
108
+ // INSERT INTO
109
+ /INTO\s+(["'`]?[\w]+["'`]?(?:\.["'`]?[\w]+["'`]?)?)/gi,
110
+ // UPDATE
111
+ /UPDATE\s+(["'`]?[\w]+["'`]?(?:\.["'`]?[\w]+["'`]?)?)/gi,
112
+ // DELETE FROM
113
+ /DELETE\s+FROM\s+(["'`]?[\w]+["'`]?(?:\.["'`]?[\w]+["'`]?)?)/gi,
114
+ // TRUNCATE
115
+ /TRUNCATE\s+(?:TABLE\s+)?(["'`]?[\w]+["'`]?(?:\.["'`]?[\w]+["'`]?)?)/gi,
116
+ ];
117
+ for (const pattern of tablePatterns) {
118
+ let match = pattern.exec(normalized);
119
+ while (match !== null) {
120
+ if (match[1]) {
121
+ const tableName = match[1]
122
+ // Remove quotes
123
+ .replace(/["'`]/g, '');
124
+ tables.add(tableName);
125
+ }
126
+ match = pattern.exec(normalized);
127
+ }
128
+ }
129
+ return Array.from(tables);
130
+ }
61
131
  /**
62
132
  * Sanitize query parameters to hide sensitive data
63
133
  */
@@ -1 +1 @@
1
- {"version":3,"file":"query-logger.js","sourceRoot":"","sources":["../../src/db/query-logger.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"query-logger.js","sourceRoot":"","sources":["../../src/db/query-logger.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,73 @@
1
+ import type { WideEventBuilder } from 'vestig';
2
+ /**
3
+ * Context for the current wide event in a request
4
+ */
5
+ export interface WideEventRequestContext {
6
+ /** The wide event builder for this request */
7
+ event: WideEventBuilder;
8
+ /** Request start time for timing */
9
+ startTime: number;
10
+ }
11
+ /**
12
+ * Get the current wide event from the request context.
13
+ *
14
+ * Returns undefined if called outside of a wide event context
15
+ * (e.g., not in a route handler wrapped with withWideEvent).
16
+ *
17
+ * @returns The current WideEventBuilder or undefined
18
+ *
19
+ * @example
20
+ * ```typescript
21
+ * import { getWideEvent } from '@vestig/next/wide-events'
22
+ *
23
+ * export async function fetchUsers() {
24
+ * const event = getWideEvent()
25
+ * if (event) {
26
+ * event.set('db', 'query', 'users.findMany')
27
+ * event.set('db', 'count', users.length)
28
+ * }
29
+ * return users
30
+ * }
31
+ * ```
32
+ */
33
+ export declare function getWideEvent(): WideEventBuilder | undefined;
34
+ /**
35
+ * Get the current wide event or throw if not in context.
36
+ *
37
+ * Use this when you expect to always be in a wide event context.
38
+ *
39
+ * @returns The current WideEventBuilder
40
+ * @throws Error if not in a wide event context
41
+ *
42
+ * @example
43
+ * ```typescript
44
+ * import { requireWideEvent } from '@vestig/next/wide-events'
45
+ *
46
+ * export async function createOrder(data: OrderData) {
47
+ * const event = requireWideEvent()
48
+ * event.set('order', 'items', data.items.length)
49
+ * event.set('order', 'total', data.total)
50
+ * // ...
51
+ * }
52
+ * ```
53
+ */
54
+ export declare function requireWideEvent(): WideEventBuilder;
55
+ /**
56
+ * Get the elapsed time since the request started.
57
+ *
58
+ * @returns Elapsed time in milliseconds, or undefined if not in context
59
+ */
60
+ export declare function getWideEventElapsed(): number | undefined;
61
+ /**
62
+ * Run a function within a wide event context.
63
+ *
64
+ * @internal Used by middleware and wrappers
65
+ */
66
+ export declare function runWithWideEvent<T>(ctx: WideEventRequestContext, fn: () => T): T;
67
+ /**
68
+ * Run an async function within a wide event context.
69
+ *
70
+ * @internal Used by middleware and wrappers
71
+ */
72
+ export declare function runWithWideEventAsync<T>(ctx: WideEventRequestContext, fn: () => Promise<T>): Promise<T>;
73
+ //# sourceMappingURL=context.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../src/wide-events/context.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,QAAQ,CAAA;AAE9C;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACvC,8CAA8C;IAC9C,KAAK,EAAE,gBAAgB,CAAA;IACvB,oCAAoC;IACpC,SAAS,EAAE,MAAM,CAAA;CACjB;AAOD;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,YAAY,IAAI,gBAAgB,GAAG,SAAS,CAE3D;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,gBAAgB,IAAI,gBAAgB,CASnD;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,IAAI,MAAM,GAAG,SAAS,CAIxD;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,GAAG,EAAE,uBAAuB,EAAE,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC,CAEhF;AAED;;;;GAIG;AACH,wBAAsB,qBAAqB,CAAC,CAAC,EAC5C,GAAG,EAAE,uBAAuB,EAC5B,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAClB,OAAO,CAAC,CAAC,CAAC,CAEZ"}
@@ -0,0 +1,86 @@
1
+ import { AsyncLocalStorage } from 'node:async_hooks';
2
+ /**
3
+ * AsyncLocalStorage for request-scoped wide events
4
+ */
5
+ const wideEventStorage = new AsyncLocalStorage();
6
+ /**
7
+ * Get the current wide event from the request context.
8
+ *
9
+ * Returns undefined if called outside of a wide event context
10
+ * (e.g., not in a route handler wrapped with withWideEvent).
11
+ *
12
+ * @returns The current WideEventBuilder or undefined
13
+ *
14
+ * @example
15
+ * ```typescript
16
+ * import { getWideEvent } from '@vestig/next/wide-events'
17
+ *
18
+ * export async function fetchUsers() {
19
+ * const event = getWideEvent()
20
+ * if (event) {
21
+ * event.set('db', 'query', 'users.findMany')
22
+ * event.set('db', 'count', users.length)
23
+ * }
24
+ * return users
25
+ * }
26
+ * ```
27
+ */
28
+ export function getWideEvent() {
29
+ return wideEventStorage.getStore()?.event;
30
+ }
31
+ /**
32
+ * Get the current wide event or throw if not in context.
33
+ *
34
+ * Use this when you expect to always be in a wide event context.
35
+ *
36
+ * @returns The current WideEventBuilder
37
+ * @throws Error if not in a wide event context
38
+ *
39
+ * @example
40
+ * ```typescript
41
+ * import { requireWideEvent } from '@vestig/next/wide-events'
42
+ *
43
+ * export async function createOrder(data: OrderData) {
44
+ * const event = requireWideEvent()
45
+ * event.set('order', 'items', data.items.length)
46
+ * event.set('order', 'total', data.total)
47
+ * // ...
48
+ * }
49
+ * ```
50
+ */
51
+ export function requireWideEvent() {
52
+ const event = getWideEvent();
53
+ if (!event) {
54
+ throw new Error('requireWideEvent() called outside of a wide event context. ' +
55
+ 'Ensure you are using withWideEvent() or vestigWideEventMiddleware().');
56
+ }
57
+ return event;
58
+ }
59
+ /**
60
+ * Get the elapsed time since the request started.
61
+ *
62
+ * @returns Elapsed time in milliseconds, or undefined if not in context
63
+ */
64
+ export function getWideEventElapsed() {
65
+ const ctx = wideEventStorage.getStore();
66
+ if (!ctx)
67
+ return undefined;
68
+ return performance.now() - ctx.startTime;
69
+ }
70
+ /**
71
+ * Run a function within a wide event context.
72
+ *
73
+ * @internal Used by middleware and wrappers
74
+ */
75
+ export function runWithWideEvent(ctx, fn) {
76
+ return wideEventStorage.run(ctx, fn);
77
+ }
78
+ /**
79
+ * Run an async function within a wide event context.
80
+ *
81
+ * @internal Used by middleware and wrappers
82
+ */
83
+ export async function runWithWideEventAsync(ctx, fn) {
84
+ return wideEventStorage.run(ctx, fn);
85
+ }
86
+ //# sourceMappingURL=context.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context.js","sourceRoot":"","sources":["../../src/wide-events/context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAA;AAapD;;GAEG;AACH,MAAM,gBAAgB,GAAG,IAAI,iBAAiB,EAA2B,CAAA;AAEzE;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,UAAU,YAAY;IAC3B,OAAO,gBAAgB,CAAC,QAAQ,EAAE,EAAE,KAAK,CAAA;AAC1C,CAAC;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,UAAU,gBAAgB;IAC/B,MAAM,KAAK,GAAG,YAAY,EAAE,CAAA;IAC5B,IAAI,CAAC,KAAK,EAAE,CAAC;QACZ,MAAM,IAAI,KAAK,CACd,6DAA6D;YAC5D,sEAAsE,CACvE,CAAA;IACF,CAAC;IACD,OAAO,KAAK,CAAA;AACb,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,mBAAmB;IAClC,MAAM,GAAG,GAAG,gBAAgB,CAAC,QAAQ,EAAE,CAAA;IACvC,IAAI,CAAC,GAAG;QAAE,OAAO,SAAS,CAAA;IAC1B,OAAO,WAAW,CAAC,GAAG,EAAE,GAAG,GAAG,CAAC,SAAS,CAAA;AACzC,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,gBAAgB,CAAI,GAA4B,EAAE,EAAW;IAC5E,OAAO,gBAAgB,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,CAAC,CAAA;AACrC,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,qBAAqB,CAC1C,GAA4B,EAC5B,EAAoB;IAEpB,OAAO,gBAAgB,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,CAAC,CAAA;AACrC,CAAC"}