@vestig/next 0.6.0 → 0.9.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 (144) hide show
  1. package/README.md +1 -1
  2. package/dist/__tests__/mocks/next-server.d.ts.map +1 -1
  3. package/dist/__tests__/mocks/next-server.js.map +1 -1
  4. package/dist/client/error-boundary.d.ts +80 -0
  5. package/dist/client/error-boundary.d.ts.map +1 -0
  6. package/dist/client/error-boundary.js +182 -0
  7. package/dist/client/error-boundary.js.map +1 -0
  8. package/dist/client/index.d.ts +2 -1
  9. package/dist/client/index.d.ts.map +1 -1
  10. package/dist/client/index.js +2 -0
  11. package/dist/client/index.js.map +1 -1
  12. package/dist/client/transport.d.ts +50 -0
  13. package/dist/client/transport.d.ts.map +1 -1
  14. package/dist/client/transport.js +200 -3
  15. package/dist/client/transport.js.map +1 -1
  16. package/dist/client.d.ts +2 -1
  17. package/dist/client.d.ts.map +1 -1
  18. package/dist/client.js +2 -0
  19. package/dist/client.js.map +1 -1
  20. package/dist/db/drizzle.d.ts +115 -0
  21. package/dist/db/drizzle.d.ts.map +1 -0
  22. package/dist/db/drizzle.js +174 -0
  23. package/dist/db/drizzle.js.map +1 -0
  24. package/dist/db/index.d.ts +49 -0
  25. package/dist/db/index.d.ts.map +1 -0
  26. package/dist/db/index.js +51 -0
  27. package/dist/db/index.js.map +1 -0
  28. package/dist/db/prisma.d.ts +114 -0
  29. package/dist/db/prisma.d.ts.map +1 -0
  30. package/dist/db/prisma.js +144 -0
  31. package/dist/db/prisma.js.map +1 -0
  32. package/dist/db/query-logger.d.ts +30 -0
  33. package/dist/db/query-logger.d.ts.map +1 -0
  34. package/dist/db/query-logger.js +169 -0
  35. package/dist/db/query-logger.js.map +1 -0
  36. package/dist/db/types.d.ts +102 -0
  37. package/dist/db/types.d.ts.map +1 -0
  38. package/dist/db/types.js +28 -0
  39. package/dist/db/types.js.map +1 -0
  40. package/dist/dev/api/index.d.ts +13 -0
  41. package/dist/dev/api/index.d.ts.map +1 -0
  42. package/dist/dev/api/index.js +13 -0
  43. package/dist/dev/api/index.js.map +1 -0
  44. package/dist/dev/api/logs-stream.d.ts +119 -0
  45. package/dist/dev/api/logs-stream.d.ts.map +1 -0
  46. package/dist/dev/api/logs-stream.js +156 -0
  47. package/dist/dev/api/logs-stream.js.map +1 -0
  48. package/dist/dev/filters.d.ts +17 -0
  49. package/dist/dev/filters.d.ts.map +1 -0
  50. package/dist/dev/filters.js +100 -0
  51. package/dist/dev/filters.js.map +1 -0
  52. package/dist/dev/hooks/use-logs.d.ts +55 -0
  53. package/dist/dev/hooks/use-logs.d.ts.map +1 -0
  54. package/dist/dev/hooks/use-logs.js +202 -0
  55. package/dist/dev/hooks/use-logs.js.map +1 -0
  56. package/dist/dev/index.d.ts +35 -0
  57. package/dist/dev/index.d.ts.map +1 -0
  58. package/dist/dev/index.js +41 -0
  59. package/dist/dev/index.js.map +1 -0
  60. package/dist/dev/log-entry.d.ts +12 -0
  61. package/dist/dev/log-entry.d.ts.map +1 -0
  62. package/dist/dev/log-entry.js +152 -0
  63. package/dist/dev/log-entry.js.map +1 -0
  64. package/dist/dev/log-viewer.d.ts +11 -0
  65. package/dist/dev/log-viewer.d.ts.map +1 -0
  66. package/dist/dev/log-viewer.js +49 -0
  67. package/dist/dev/log-viewer.js.map +1 -0
  68. package/dist/dev/metrics-card.d.ts +18 -0
  69. package/dist/dev/metrics-card.d.ts.map +1 -0
  70. package/dist/dev/metrics-card.js +75 -0
  71. package/dist/dev/metrics-card.js.map +1 -0
  72. package/dist/dev/metrics-histogram.d.ts +12 -0
  73. package/dist/dev/metrics-histogram.d.ts.map +1 -0
  74. package/dist/dev/metrics-histogram.js +69 -0
  75. package/dist/dev/metrics-histogram.js.map +1 -0
  76. package/dist/dev/metrics-panel.d.ts +10 -0
  77. package/dist/dev/metrics-panel.d.ts.map +1 -0
  78. package/dist/dev/metrics-panel.js +84 -0
  79. package/dist/dev/metrics-panel.js.map +1 -0
  80. package/dist/dev/overlay.d.ts +55 -0
  81. package/dist/dev/overlay.d.ts.map +1 -0
  82. package/dist/dev/overlay.js +216 -0
  83. package/dist/dev/overlay.js.map +1 -0
  84. package/dist/dev/store.d.ts +126 -0
  85. package/dist/dev/store.d.ts.map +1 -0
  86. package/dist/dev/store.js +210 -0
  87. package/dist/dev/store.js.map +1 -0
  88. package/dist/error/boundary.d.ts +36 -0
  89. package/dist/error/boundary.d.ts.map +1 -0
  90. package/dist/error/boundary.js +263 -0
  91. package/dist/error/boundary.js.map +1 -0
  92. package/dist/error/breadcrumbs.d.ts +95 -0
  93. package/dist/error/breadcrumbs.d.ts.map +1 -0
  94. package/dist/error/breadcrumbs.js +273 -0
  95. package/dist/error/breadcrumbs.js.map +1 -0
  96. package/dist/error/fingerprint.d.ts +42 -0
  97. package/dist/error/fingerprint.d.ts.map +1 -0
  98. package/dist/error/fingerprint.js +135 -0
  99. package/dist/error/fingerprint.js.map +1 -0
  100. package/dist/error/index.d.ts +52 -0
  101. package/dist/error/index.d.ts.map +1 -0
  102. package/dist/error/index.js +56 -0
  103. package/dist/error/index.js.map +1 -0
  104. package/dist/error/stack-parser.d.ts +43 -0
  105. package/dist/error/stack-parser.d.ts.map +1 -0
  106. package/dist/error/stack-parser.js +166 -0
  107. package/dist/error/stack-parser.js.map +1 -0
  108. package/dist/error/types.d.ts +152 -0
  109. package/dist/error/types.d.ts.map +1 -0
  110. package/dist/error/types.js +10 -0
  111. package/dist/error/types.js.map +1 -0
  112. package/dist/metrics/hooks/use-route-metrics.d.ts +93 -0
  113. package/dist/metrics/hooks/use-route-metrics.d.ts.map +1 -0
  114. package/dist/metrics/hooks/use-route-metrics.js +217 -0
  115. package/dist/metrics/hooks/use-route-metrics.js.map +1 -0
  116. package/dist/metrics/hooks/use-web-vitals.d.ts +73 -0
  117. package/dist/metrics/hooks/use-web-vitals.d.ts.map +1 -0
  118. package/dist/metrics/hooks/use-web-vitals.js +141 -0
  119. package/dist/metrics/hooks/use-web-vitals.js.map +1 -0
  120. package/dist/metrics/index.d.ts +51 -0
  121. package/dist/metrics/index.d.ts.map +1 -0
  122. package/dist/metrics/index.js +56 -0
  123. package/dist/metrics/index.js.map +1 -0
  124. package/dist/metrics/reporter.d.ts +87 -0
  125. package/dist/metrics/reporter.d.ts.map +1 -0
  126. package/dist/metrics/reporter.js +178 -0
  127. package/dist/metrics/reporter.js.map +1 -0
  128. package/dist/metrics/store.d.ts +67 -0
  129. package/dist/metrics/store.d.ts.map +1 -0
  130. package/dist/metrics/store.js +187 -0
  131. package/dist/metrics/store.js.map +1 -0
  132. package/dist/metrics/thresholds.d.ts +84 -0
  133. package/dist/metrics/thresholds.d.ts.map +1 -0
  134. package/dist/metrics/thresholds.js +148 -0
  135. package/dist/metrics/thresholds.js.map +1 -0
  136. package/dist/metrics/types.d.ts +215 -0
  137. package/dist/metrics/types.d.ts.map +1 -0
  138. package/dist/metrics/types.js +10 -0
  139. package/dist/metrics/types.js.map +1 -0
  140. package/dist/metrics/web-vitals.d.ts +72 -0
  141. package/dist/metrics/web-vitals.d.ts.map +1 -0
  142. package/dist/metrics/web-vitals.js +89 -0
  143. package/dist/metrics/web-vitals.js.map +1 -0
  144. package/package.json +28 -6
package/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # @vestig/next
2
2
 
3
- First-class structured logging for Next.js applications. Built on top of [vestig](https://github.com/your-repo/vestig), this package provides automatic request correlation, middleware integration, and seamless client/server logging.
3
+ First-class structured logging for Next.js 15+ applications. Built on top of [vestig](https://github.com/Arakiss/vestig), this package provides automatic request correlation, middleware integration, and seamless client/server logging.
4
4
 
5
5
  ## Features
6
6
 
@@ -1 +1 @@
1
- {"version":3,"file":"next-server.d.ts","sourceRoot":"","sources":["../../../src/__tests__/mocks/next-server.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;GAEG;AACH,wBAAgB,qBAAqB,CACpC,GAAG,EAAE,MAAM,EACX,OAAO,GAAE;IACR,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAChC,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;CACjB,GACJ,eAAe,CAyCjB;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC/B,MAAM,EAAE,MAAM,CAAA;IACd,GAAG,EAAE,MAAM,CAAA;IACX,OAAO,EAAE,OAAO,CAAA;IAChB,OAAO,EAAE;QACR,QAAQ,EAAE,MAAM,CAAA;QAChB,MAAM,EAAE,MAAM,CAAA;QACd,YAAY,EAAE,eAAe,CAAA;QAC7B,IAAI,EAAE,MAAM,CAAA;QACZ,MAAM,EAAE,MAAM,CAAA;QACd,IAAI,EAAE,MAAM,CAAA;QACZ,QAAQ,EAAE,MAAM,CAAA;QAChB,IAAI,EAAE,MAAM,CAAA;QACZ,QAAQ,EAAE,MAAM,CAAA;QAChB,IAAI,EAAE,MAAM,CAAA;QACZ,QAAQ,EAAE,MAAM,MAAM,CAAA;KACtB,CAAA;IACD,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,GAAG,CAAC,EAAE;QACL,IAAI,CAAC,EAAE,MAAM,CAAA;QACb,OAAO,CAAC,EAAE,MAAM,CAAA;QAChB,MAAM,CAAC,EAAE,MAAM,CAAA;KACf,CAAA;IACD,IAAI,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,CAAA;IAC5B,IAAI,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,CAAA;IAC3B,KAAK,EAAE,MAAM,eAAe,CAAA;CAC5B;AAED;;GAEG;AACH,qBAAa,gBAAgB;IAC5B,SAAgB,MAAM,EAAE,MAAM,CAAA;IAC9B,SAAgB,UAAU,EAAE,MAAM,CAAA;IAClC,SAAgB,OAAO,EAAE,OAAO,CAAA;IAChC,OAAO,CAAC,KAAK,CAAS;gBAEV,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,YAAY;IAO/C,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,YAAY;IAM9C,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE;YAAE,OAAO,CAAC,EAAE,OAAO,CAAA;SAAE,CAAA;KAAE,GAMrC,2BAA2B;IAG/C,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,EAAE,MAAM,SAAM;IAM/C,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG;IAM1B,IAAI;IAIJ,IAAI;CAGV;AAED,UAAU,2BAA4B,SAAQ,gBAAgB;IAC7D,eAAe,CAAC,EAAE,OAAO,CAAA;CACzB;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAChC,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAA;CACvC;AAED,wBAAgB,sBAAsB,CACrC,MAAM,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAM,GACjC,gBAAgB,CAIlB"}
1
+ {"version":3,"file":"next-server.d.ts","sourceRoot":"","sources":["../../../src/__tests__/mocks/next-server.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;GAEG;AACH,wBAAgB,qBAAqB,CACpC,GAAG,EAAE,MAAM,EACX,OAAO,GAAE;IACR,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAChC,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;CACjB,GACJ,eAAe,CAyCjB;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC/B,MAAM,EAAE,MAAM,CAAA;IACd,GAAG,EAAE,MAAM,CAAA;IACX,OAAO,EAAE,OAAO,CAAA;IAChB,OAAO,EAAE;QACR,QAAQ,EAAE,MAAM,CAAA;QAChB,MAAM,EAAE,MAAM,CAAA;QACd,YAAY,EAAE,eAAe,CAAA;QAC7B,IAAI,EAAE,MAAM,CAAA;QACZ,MAAM,EAAE,MAAM,CAAA;QACd,IAAI,EAAE,MAAM,CAAA;QACZ,QAAQ,EAAE,MAAM,CAAA;QAChB,IAAI,EAAE,MAAM,CAAA;QACZ,QAAQ,EAAE,MAAM,CAAA;QAChB,IAAI,EAAE,MAAM,CAAA;QACZ,QAAQ,EAAE,MAAM,MAAM,CAAA;KACtB,CAAA;IACD,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,GAAG,CAAC,EAAE;QACL,IAAI,CAAC,EAAE,MAAM,CAAA;QACb,OAAO,CAAC,EAAE,MAAM,CAAA;QAChB,MAAM,CAAC,EAAE,MAAM,CAAA;KACf,CAAA;IACD,IAAI,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,CAAA;IAC5B,IAAI,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,CAAA;IAC3B,KAAK,EAAE,MAAM,eAAe,CAAA;CAC5B;AAED;;GAEG;AACH,qBAAa,gBAAgB;IAC5B,SAAgB,MAAM,EAAE,MAAM,CAAA;IAC9B,SAAgB,UAAU,EAAE,MAAM,CAAA;IAClC,SAAgB,OAAO,EAAE,OAAO,CAAA;IAChC,OAAO,CAAC,KAAK,CAAS;gBAEV,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,YAAY;IAO/C,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,YAAY;IAM9C,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE;YAAE,OAAO,CAAC,EAAE,OAAO,CAAA;SAAE,CAAA;KAAE,GAMrC,2BAA2B;IAG/C,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,EAAE,MAAM,SAAM;IAM/C,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG;IAM1B,IAAI;IAIJ,IAAI;CAGV;AAED,UAAU,2BAA4B,SAAQ,gBAAgB;IAC7D,eAAe,CAAC,EAAE,OAAO,CAAA;CACzB;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAChC,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAA;CACvC;AAED,wBAAgB,sBAAsB,CAAC,MAAM,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAM,GAAG,gBAAgB,CAI5F"}
@@ -1 +1 @@
1
- {"version":3,"file":"next-server.js","sourceRoot":"","sources":["../../../src/__tests__/mocks/next-server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"next-server.js","sourceRoot":"","sources":["../../../src/__tests__/mocks/next-server.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,80 @@
1
+ import { type ErrorInfo, type ReactNode } from 'react';
2
+ import type { LogEntry } from 'vestig';
3
+ /**
4
+ * Breadcrumb entry for error context
5
+ */
6
+ export interface Breadcrumb {
7
+ timestamp: string;
8
+ level: string;
9
+ message: string;
10
+ namespace?: string;
11
+ }
12
+ /**
13
+ * Props for VestigErrorBoundary
14
+ */
15
+ export interface VestigErrorBoundaryProps {
16
+ children: ReactNode;
17
+ /** Custom fallback UI (string, ReactNode, or function) */
18
+ fallback?: ReactNode | ((error: Error, errorInfo: ErrorInfo) => ReactNode);
19
+ /** Callback when error is caught */
20
+ onError?: (error: Error, errorInfo: ErrorInfo) => void;
21
+ /** Maximum breadcrumbs to keep (default: 20) */
22
+ maxBreadcrumbs?: number;
23
+ /** Whether to reset error state on navigation (default: true) */
24
+ resetOnNavigation?: boolean;
25
+ }
26
+ /**
27
+ * Add a breadcrumb (called from logging hooks)
28
+ */
29
+ export declare function addBreadcrumb(entry: Partial<LogEntry>): void;
30
+ /**
31
+ * Get recent breadcrumbs
32
+ */
33
+ export declare function getBreadcrumbs(): readonly Breadcrumb[];
34
+ /**
35
+ * Clear all breadcrumbs
36
+ */
37
+ export declare function clearBreadcrumbs(): void;
38
+ /**
39
+ * Error boundary component that automatically logs errors to Vestig
40
+ *
41
+ * Features:
42
+ * - Automatic error logging with full stack trace
43
+ * - Breadcrumb trail of recent logs before error
44
+ * - Component stack for debugging
45
+ * - Customizable fallback UI
46
+ *
47
+ * @example
48
+ * ```tsx
49
+ * import { VestigErrorBoundary } from '@vestig/next/client'
50
+ *
51
+ * export default function Layout({ children }) {
52
+ * return (
53
+ * <VestigProvider>
54
+ * <VestigErrorBoundary
55
+ * fallback={<ErrorPage />}
56
+ * onError={(error) => console.error('Caught:', error)}
57
+ * >
58
+ * {children}
59
+ * </VestigErrorBoundary>
60
+ * </VestigProvider>
61
+ * )
62
+ * }
63
+ * ```
64
+ *
65
+ * @example Custom fallback function
66
+ * ```tsx
67
+ * <VestigErrorBoundary
68
+ * fallback={(error, errorInfo) => (
69
+ * <div>
70
+ * <h1>Error: {error.message}</h1>
71
+ * <pre>{errorInfo.componentStack}</pre>
72
+ * </div>
73
+ * )}
74
+ * >
75
+ * {children}
76
+ * </VestigErrorBoundary>
77
+ * ```
78
+ */
79
+ export declare function VestigErrorBoundary(props: VestigErrorBoundaryProps): ReactNode;
80
+ //# sourceMappingURL=error-boundary.d.ts.map
@@ -0,0 +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"}
@@ -0,0 +1,182 @@
1
+ 'use client';
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import { Component } from 'react';
4
+ import { useVestigContext } from './provider';
5
+ /**
6
+ * Breadcrumb storage (module-level for simplicity)
7
+ */
8
+ const breadcrumbs = [];
9
+ let maxBreadcrumbSize = 20;
10
+ /**
11
+ * Add a breadcrumb (called from logging hooks)
12
+ */
13
+ export function addBreadcrumb(entry) {
14
+ breadcrumbs.push({
15
+ timestamp: entry.timestamp ?? new Date().toISOString(),
16
+ level: entry.level ?? 'info',
17
+ message: entry.message ?? '',
18
+ namespace: entry.namespace,
19
+ });
20
+ // Trim to max size
21
+ while (breadcrumbs.length > maxBreadcrumbSize) {
22
+ breadcrumbs.shift();
23
+ }
24
+ }
25
+ /**
26
+ * Get recent breadcrumbs
27
+ */
28
+ export function getBreadcrumbs() {
29
+ return breadcrumbs;
30
+ }
31
+ /**
32
+ * Clear all breadcrumbs
33
+ */
34
+ export function clearBreadcrumbs() {
35
+ breadcrumbs.length = 0;
36
+ }
37
+ /**
38
+ * Inner error boundary class component
39
+ */
40
+ class VestigErrorBoundaryInner extends Component {
41
+ constructor(props) {
42
+ super(props);
43
+ this.state = {
44
+ hasError: false,
45
+ error: null,
46
+ errorInfo: null,
47
+ };
48
+ // Update max breadcrumb size
49
+ if (props.maxBreadcrumbs !== undefined) {
50
+ maxBreadcrumbSize = props.maxBreadcrumbs;
51
+ }
52
+ }
53
+ static getDerivedStateFromError(error) {
54
+ return { hasError: true, error };
55
+ }
56
+ componentDidCatch(error, errorInfo) {
57
+ this.setState({ errorInfo });
58
+ // Log the error with vestig
59
+ if (this.props.logger) {
60
+ this.props.logger.error('React component error', {
61
+ error: {
62
+ name: error.name,
63
+ message: error.message,
64
+ stack: error.stack,
65
+ },
66
+ componentStack: errorInfo.componentStack,
67
+ breadcrumbs: getBreadcrumbs(),
68
+ });
69
+ }
70
+ // Call custom error handler
71
+ this.props.onError?.(error, errorInfo);
72
+ }
73
+ /**
74
+ * Reset error state
75
+ */
76
+ resetError = () => {
77
+ this.setState({
78
+ hasError: false,
79
+ error: null,
80
+ errorInfo: null,
81
+ });
82
+ clearBreadcrumbs();
83
+ };
84
+ render() {
85
+ const { hasError, error, errorInfo } = this.state;
86
+ const { children, fallback } = this.props;
87
+ if (hasError && error) {
88
+ // Render fallback UI
89
+ if (typeof fallback === 'function') {
90
+ return fallback(error, errorInfo);
91
+ }
92
+ if (fallback !== undefined) {
93
+ return fallback;
94
+ }
95
+ // Default fallback
96
+ return (_jsxs("div", { role: "alert", style: {
97
+ padding: '20px',
98
+ margin: '20px',
99
+ backgroundColor: '#fee2e2',
100
+ border: '1px solid #ef4444',
101
+ borderRadius: '8px',
102
+ fontFamily: 'system-ui, sans-serif',
103
+ }, children: [_jsx("h2", { style: { color: '#dc2626', marginTop: 0 }, children: "Something went wrong" }), _jsx("p", { style: { color: '#7f1d1d' }, children: error.message }), _jsx("button", { onClick: this.resetError, style: {
104
+ padding: '8px 16px',
105
+ backgroundColor: '#dc2626',
106
+ color: 'white',
107
+ border: 'none',
108
+ borderRadius: '4px',
109
+ cursor: 'pointer',
110
+ }, children: "Try again" }), process.env.NODE_ENV === 'development' && error.stack && (_jsx("pre", { style: {
111
+ marginTop: '16px',
112
+ padding: '12px',
113
+ backgroundColor: '#fecaca',
114
+ borderRadius: '4px',
115
+ fontSize: '12px',
116
+ overflow: 'auto',
117
+ whiteSpace: 'pre-wrap',
118
+ wordBreak: 'break-word',
119
+ }, children: error.stack }))] }));
120
+ }
121
+ return children;
122
+ }
123
+ }
124
+ /**
125
+ * Wrapper to inject logger from context
126
+ */
127
+ function VestigErrorBoundaryWrapper(props) {
128
+ let logger = null;
129
+ try {
130
+ const context = useVestigContext();
131
+ logger = context.logger;
132
+ }
133
+ catch {
134
+ // VestigProvider not available, log will be skipped
135
+ }
136
+ return _jsx(VestigErrorBoundaryInner, { ...props, logger: logger });
137
+ }
138
+ /**
139
+ * Error boundary component that automatically logs errors to Vestig
140
+ *
141
+ * Features:
142
+ * - Automatic error logging with full stack trace
143
+ * - Breadcrumb trail of recent logs before error
144
+ * - Component stack for debugging
145
+ * - Customizable fallback UI
146
+ *
147
+ * @example
148
+ * ```tsx
149
+ * import { VestigErrorBoundary } from '@vestig/next/client'
150
+ *
151
+ * export default function Layout({ children }) {
152
+ * return (
153
+ * <VestigProvider>
154
+ * <VestigErrorBoundary
155
+ * fallback={<ErrorPage />}
156
+ * onError={(error) => console.error('Caught:', error)}
157
+ * >
158
+ * {children}
159
+ * </VestigErrorBoundary>
160
+ * </VestigProvider>
161
+ * )
162
+ * }
163
+ * ```
164
+ *
165
+ * @example Custom fallback function
166
+ * ```tsx
167
+ * <VestigErrorBoundary
168
+ * fallback={(error, errorInfo) => (
169
+ * <div>
170
+ * <h1>Error: {error.message}</h1>
171
+ * <pre>{errorInfo.componentStack}</pre>
172
+ * </div>
173
+ * )}
174
+ * >
175
+ * {children}
176
+ * </VestigErrorBoundary>
177
+ * ```
178
+ */
179
+ export function VestigErrorBoundary(props) {
180
+ return _jsx(VestigErrorBoundaryWrapper, { ...props });
181
+ }
182
+ //# sourceMappingURL=error-boundary.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"error-boundary.js","sourceRoot":"","sources":["../../src/client/error-boundary.tsx"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  export { VestigProvider, useVestigContext, type VestigProviderProps } from './provider';
2
2
  export { useLogger, useCorrelationContext, useVestigConnection, useComponentLogger, useRenderLogger, } from './hooks';
3
- export { ClientHTTPTransport, createClientTransport, type ClientHTTPTransportConfig, } from './transport';
3
+ export { VestigErrorBoundary, addBreadcrumb, getBreadcrumbs, clearBreadcrumbs, type VestigErrorBoundaryProps, type Breadcrumb, } from './error-boundary';
4
+ export { ClientHTTPTransport, createClientTransport, type ClientHTTPTransportConfig, type OfflineQueueConfig, } from './transport';
4
5
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/client/index.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,KAAK,mBAAmB,EAAE,MAAM,YAAY,CAAA;AAGvF,OAAO,EACN,SAAS,EACT,qBAAqB,EACrB,mBAAmB,EACnB,kBAAkB,EAClB,eAAe,GACf,MAAM,SAAS,CAAA;AAGhB,OAAO,EACN,mBAAmB,EACnB,qBAAqB,EACrB,KAAK,yBAAyB,GAC9B,MAAM,aAAa,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/client/index.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,KAAK,mBAAmB,EAAE,MAAM,YAAY,CAAA;AAGvF,OAAO,EACN,SAAS,EACT,qBAAqB,EACrB,mBAAmB,EACnB,kBAAkB,EAClB,eAAe,GACf,MAAM,SAAS,CAAA;AAGhB,OAAO,EACN,mBAAmB,EACnB,aAAa,EACb,cAAc,EACd,gBAAgB,EAChB,KAAK,wBAAwB,EAC7B,KAAK,UAAU,GACf,MAAM,kBAAkB,CAAA;AAGzB,OAAO,EACN,mBAAmB,EACnB,qBAAqB,EACrB,KAAK,yBAAyB,EAC9B,KAAK,kBAAkB,GACvB,MAAM,aAAa,CAAA"}
@@ -4,6 +4,8 @@
4
4
  export { VestigProvider, useVestigContext } from './provider';
5
5
  // Hooks
6
6
  export { useLogger, useCorrelationContext, useVestigConnection, useComponentLogger, useRenderLogger, } from './hooks';
7
+ // Error Boundary
8
+ export { VestigErrorBoundary, addBreadcrumb, getBreadcrumbs, clearBreadcrumbs, } from './error-boundary';
7
9
  // Transport (for advanced use cases)
8
10
  export { ClientHTTPTransport, createClientTransport, } from './transport';
9
11
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/client/index.ts"],"names":[],"mappings":"AAAA,YAAY,CAAA;AAEZ,8CAA8C;AAE9C,WAAW;AACX,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAA4B,MAAM,YAAY,CAAA;AAEvF,QAAQ;AACR,OAAO,EACN,SAAS,EACT,qBAAqB,EACrB,mBAAmB,EACnB,kBAAkB,EAClB,eAAe,GACf,MAAM,SAAS,CAAA;AAEhB,qCAAqC;AACrC,OAAO,EACN,mBAAmB,EACnB,qBAAqB,GAErB,MAAM,aAAa,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/client/index.ts"],"names":[],"mappings":"AAAA,YAAY,CAAA;AAEZ,8CAA8C;AAE9C,WAAW;AACX,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAA4B,MAAM,YAAY,CAAA;AAEvF,QAAQ;AACR,OAAO,EACN,SAAS,EACT,qBAAqB,EACrB,mBAAmB,EACnB,kBAAkB,EAClB,eAAe,GACf,MAAM,SAAS,CAAA;AAEhB,iBAAiB;AACjB,OAAO,EACN,mBAAmB,EACnB,aAAa,EACb,cAAc,EACd,gBAAgB,GAGhB,MAAM,kBAAkB,CAAA;AAEzB,qCAAqC;AACrC,OAAO,EACN,mBAAmB,EACnB,qBAAqB,GAGrB,MAAM,aAAa,CAAA"}
@@ -1,4 +1,19 @@
1
1
  import type { LogEntry, Transport, TransportConfig } from 'vestig';
2
+ /**
3
+ * Configuration for offline queue persistence
4
+ */
5
+ export interface OfflineQueueConfig {
6
+ /** Enable offline queue persistence (default: true) */
7
+ enabled?: boolean;
8
+ /** localStorage key for persisted queue (default: 'vestig:offline-queue') */
9
+ storageKey?: string;
10
+ /** Maximum entries to persist (default: 1000) */
11
+ maxSize?: number;
12
+ /** Callback when queue is restored from storage */
13
+ onRestore?: (count: number) => void;
14
+ /** Callback when queue is persisted to storage */
15
+ onPersist?: (count: number) => void;
16
+ }
2
17
  /**
3
18
  * Configuration for ClientHTTPTransport
4
19
  */
@@ -19,6 +34,8 @@ export interface ClientHTTPTransportConfig extends TransportConfig {
19
34
  onFlushError?: (error: Error) => void;
20
35
  /** Callback when logs are dropped */
21
36
  onDrop?: (count: number) => void;
37
+ /** Offline queue configuration for persistence */
38
+ offlineQueue?: OfflineQueueConfig;
22
39
  }
23
40
  /**
24
41
  * HTTP transport for client-side log batching
@@ -28,6 +45,7 @@ export interface ClientHTTPTransportConfig extends TransportConfig {
28
45
  * - Retry with exponential backoff
29
46
  * - Uses keepalive for beforeunload reliability
30
47
  * - Automatic page metadata enrichment
48
+ * - Offline queue persistence with localStorage
31
49
  */
32
50
  export declare class ClientHTTPTransport implements Transport {
33
51
  readonly name: string;
@@ -40,17 +58,49 @@ export declare class ClientHTTPTransport implements Transport {
40
58
  private onFlushSuccess?;
41
59
  private onFlushError?;
42
60
  private onDrop?;
61
+ private offlineEnabled;
62
+ private offlineStorageKey;
63
+ private offlineMaxSize;
64
+ private onOfflineRestore?;
65
+ private onOfflinePersist?;
43
66
  private buffer;
44
67
  private flushTimer;
45
68
  private isFlushing;
46
69
  private isDestroyed;
47
70
  private maxBufferSize;
71
+ private isOnline;
72
+ private boundOnlineHandler;
73
+ private boundOfflineHandler;
74
+ private flushQueue;
75
+ private pendingFlush;
48
76
  constructor(config: ClientHTTPTransportConfig);
49
77
  init(): Promise<void>;
78
+ private handleOnline;
79
+ private handleOffline;
80
+ private restoreOfflineQueue;
81
+ private persistOfflineQueue;
82
+ /**
83
+ * Safely set localStorage with quota handling
84
+ * Removes oldest entries if quota is exceeded
85
+ */
86
+ private safeLocalStorageSet;
50
87
  log(entry: LogEntry): void;
51
88
  flush(): Promise<void>;
89
+ private doFlush;
52
90
  private sendWithRetry;
53
91
  destroy(): Promise<void>;
92
+ /**
93
+ * Get current online status
94
+ */
95
+ getOnlineStatus(): boolean;
96
+ /**
97
+ * Get current buffer size
98
+ */
99
+ getBufferSize(): number;
100
+ /**
101
+ * Manually trigger offline queue persistence
102
+ */
103
+ persistNow(): void;
54
104
  }
55
105
  /**
56
106
  * Create a client HTTP transport with default configuration
@@ -1 +1 @@
1
- {"version":3,"file":"transport.d.ts","sourceRoot":"","sources":["../../src/client/transport.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,QAAQ,CAAA;AAElE;;GAEG;AACH,MAAM,WAAW,yBAA0B,SAAQ,eAAe;IACjE,mDAAmD;IACnD,GAAG,EAAE,MAAM,CAAA;IACX,iDAAiD;IACjD,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,2CAA2C;IAC3C,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,sCAAsC;IACtC,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,wCAAwC;IACxC,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,mCAAmC;IACnC,cAAc,CAAC,EAAE,MAAM,IAAI,CAAA;IAC3B,8BAA8B;IAC9B,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAA;IACrC,qCAAqC;IACrC,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;CAChC;AAED;;;;;;;;GAQG;AACH,qBAAa,mBAAoB,YAAW,SAAS;IACpD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,MAAM,EAAE,eAAe,CAAA;IAEhC,OAAO,CAAC,GAAG,CAAQ;IACnB,OAAO,CAAC,SAAS,CAAQ;IACzB,OAAO,CAAC,aAAa,CAAQ;IAC7B,OAAO,CAAC,UAAU,CAAQ;IAC1B,OAAO,CAAC,UAAU,CAAQ;IAC1B,OAAO,CAAC,cAAc,CAAC,CAAY;IACnC,OAAO,CAAC,YAAY,CAAC,CAAwB;IAC7C,OAAO,CAAC,MAAM,CAAC,CAAyB;IAExC,OAAO,CAAC,MAAM,CAAiB;IAC/B,OAAO,CAAC,UAAU,CAA8C;IAChE,OAAO,CAAC,UAAU,CAAQ;IAC1B,OAAO,CAAC,WAAW,CAAQ;IAC3B,OAAO,CAAC,aAAa,CAAM;gBAEf,MAAM,EAAE,yBAAyB;IAavC,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAO3B,GAAG,CAAC,KAAK,EAAE,QAAQ,GAAG,IAAI;IAiCpB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;YA6Bd,aAAa;IA+BrB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;CAc9B;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CACpC,OAAO,GAAE,OAAO,CAAC,yBAAyB,CAAM,GAC9C,mBAAmB,CAMrB"}
1
+ {"version":3,"file":"transport.d.ts","sourceRoot":"","sources":["../../src/client/transport.ts"],"names":[],"mappings":"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"}