@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.
- package/README.md +1 -1
- package/dist/__tests__/mocks/next-server.d.ts.map +1 -1
- package/dist/__tests__/mocks/next-server.js.map +1 -1
- package/dist/client/error-boundary.d.ts +80 -0
- package/dist/client/error-boundary.d.ts.map +1 -0
- package/dist/client/error-boundary.js +182 -0
- package/dist/client/error-boundary.js.map +1 -0
- package/dist/client/index.d.ts +2 -1
- package/dist/client/index.d.ts.map +1 -1
- package/dist/client/index.js +2 -0
- package/dist/client/index.js.map +1 -1
- package/dist/client/transport.d.ts +50 -0
- package/dist/client/transport.d.ts.map +1 -1
- package/dist/client/transport.js +200 -3
- package/dist/client/transport.js.map +1 -1
- package/dist/client.d.ts +2 -1
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +2 -0
- package/dist/client.js.map +1 -1
- package/dist/db/drizzle.d.ts +115 -0
- package/dist/db/drizzle.d.ts.map +1 -0
- package/dist/db/drizzle.js +174 -0
- package/dist/db/drizzle.js.map +1 -0
- package/dist/db/index.d.ts +49 -0
- package/dist/db/index.d.ts.map +1 -0
- package/dist/db/index.js +51 -0
- package/dist/db/index.js.map +1 -0
- package/dist/db/prisma.d.ts +114 -0
- package/dist/db/prisma.d.ts.map +1 -0
- package/dist/db/prisma.js +144 -0
- package/dist/db/prisma.js.map +1 -0
- package/dist/db/query-logger.d.ts +30 -0
- package/dist/db/query-logger.d.ts.map +1 -0
- package/dist/db/query-logger.js +169 -0
- package/dist/db/query-logger.js.map +1 -0
- package/dist/db/types.d.ts +102 -0
- package/dist/db/types.d.ts.map +1 -0
- package/dist/db/types.js +28 -0
- package/dist/db/types.js.map +1 -0
- package/dist/dev/api/index.d.ts +13 -0
- package/dist/dev/api/index.d.ts.map +1 -0
- package/dist/dev/api/index.js +13 -0
- package/dist/dev/api/index.js.map +1 -0
- package/dist/dev/api/logs-stream.d.ts +119 -0
- package/dist/dev/api/logs-stream.d.ts.map +1 -0
- package/dist/dev/api/logs-stream.js +156 -0
- package/dist/dev/api/logs-stream.js.map +1 -0
- package/dist/dev/filters.d.ts +17 -0
- package/dist/dev/filters.d.ts.map +1 -0
- package/dist/dev/filters.js +100 -0
- package/dist/dev/filters.js.map +1 -0
- package/dist/dev/hooks/use-logs.d.ts +55 -0
- package/dist/dev/hooks/use-logs.d.ts.map +1 -0
- package/dist/dev/hooks/use-logs.js +202 -0
- package/dist/dev/hooks/use-logs.js.map +1 -0
- package/dist/dev/index.d.ts +35 -0
- package/dist/dev/index.d.ts.map +1 -0
- package/dist/dev/index.js +41 -0
- package/dist/dev/index.js.map +1 -0
- package/dist/dev/log-entry.d.ts +12 -0
- package/dist/dev/log-entry.d.ts.map +1 -0
- package/dist/dev/log-entry.js +152 -0
- package/dist/dev/log-entry.js.map +1 -0
- package/dist/dev/log-viewer.d.ts +11 -0
- package/dist/dev/log-viewer.d.ts.map +1 -0
- package/dist/dev/log-viewer.js +49 -0
- package/dist/dev/log-viewer.js.map +1 -0
- package/dist/dev/metrics-card.d.ts +18 -0
- package/dist/dev/metrics-card.d.ts.map +1 -0
- package/dist/dev/metrics-card.js +75 -0
- package/dist/dev/metrics-card.js.map +1 -0
- package/dist/dev/metrics-histogram.d.ts +12 -0
- package/dist/dev/metrics-histogram.d.ts.map +1 -0
- package/dist/dev/metrics-histogram.js +69 -0
- package/dist/dev/metrics-histogram.js.map +1 -0
- package/dist/dev/metrics-panel.d.ts +10 -0
- package/dist/dev/metrics-panel.d.ts.map +1 -0
- package/dist/dev/metrics-panel.js +84 -0
- package/dist/dev/metrics-panel.js.map +1 -0
- package/dist/dev/overlay.d.ts +55 -0
- package/dist/dev/overlay.d.ts.map +1 -0
- package/dist/dev/overlay.js +216 -0
- package/dist/dev/overlay.js.map +1 -0
- package/dist/dev/store.d.ts +126 -0
- package/dist/dev/store.d.ts.map +1 -0
- package/dist/dev/store.js +210 -0
- package/dist/dev/store.js.map +1 -0
- package/dist/error/boundary.d.ts +36 -0
- package/dist/error/boundary.d.ts.map +1 -0
- package/dist/error/boundary.js +263 -0
- package/dist/error/boundary.js.map +1 -0
- package/dist/error/breadcrumbs.d.ts +95 -0
- package/dist/error/breadcrumbs.d.ts.map +1 -0
- package/dist/error/breadcrumbs.js +273 -0
- package/dist/error/breadcrumbs.js.map +1 -0
- package/dist/error/fingerprint.d.ts +42 -0
- package/dist/error/fingerprint.d.ts.map +1 -0
- package/dist/error/fingerprint.js +135 -0
- package/dist/error/fingerprint.js.map +1 -0
- package/dist/error/index.d.ts +52 -0
- package/dist/error/index.d.ts.map +1 -0
- package/dist/error/index.js +56 -0
- package/dist/error/index.js.map +1 -0
- package/dist/error/stack-parser.d.ts +43 -0
- package/dist/error/stack-parser.d.ts.map +1 -0
- package/dist/error/stack-parser.js +166 -0
- package/dist/error/stack-parser.js.map +1 -0
- package/dist/error/types.d.ts +152 -0
- package/dist/error/types.d.ts.map +1 -0
- package/dist/error/types.js +10 -0
- package/dist/error/types.js.map +1 -0
- package/dist/metrics/hooks/use-route-metrics.d.ts +93 -0
- package/dist/metrics/hooks/use-route-metrics.d.ts.map +1 -0
- package/dist/metrics/hooks/use-route-metrics.js +217 -0
- package/dist/metrics/hooks/use-route-metrics.js.map +1 -0
- package/dist/metrics/hooks/use-web-vitals.d.ts +73 -0
- package/dist/metrics/hooks/use-web-vitals.d.ts.map +1 -0
- package/dist/metrics/hooks/use-web-vitals.js +141 -0
- package/dist/metrics/hooks/use-web-vitals.js.map +1 -0
- package/dist/metrics/index.d.ts +51 -0
- package/dist/metrics/index.d.ts.map +1 -0
- package/dist/metrics/index.js +56 -0
- package/dist/metrics/index.js.map +1 -0
- package/dist/metrics/reporter.d.ts +87 -0
- package/dist/metrics/reporter.d.ts.map +1 -0
- package/dist/metrics/reporter.js +178 -0
- package/dist/metrics/reporter.js.map +1 -0
- package/dist/metrics/store.d.ts +67 -0
- package/dist/metrics/store.d.ts.map +1 -0
- package/dist/metrics/store.js +187 -0
- package/dist/metrics/store.js.map +1 -0
- package/dist/metrics/thresholds.d.ts +84 -0
- package/dist/metrics/thresholds.d.ts.map +1 -0
- package/dist/metrics/thresholds.js +148 -0
- package/dist/metrics/thresholds.js.map +1 -0
- package/dist/metrics/types.d.ts +215 -0
- package/dist/metrics/types.d.ts.map +1 -0
- package/dist/metrics/types.js +10 -0
- package/dist/metrics/types.js.map +1 -0
- package/dist/metrics/web-vitals.d.ts +72 -0
- package/dist/metrics/web-vitals.d.ts.map +1 -0
- package/dist/metrics/web-vitals.js +89 -0
- package/dist/metrics/web-vitals.js.map +1 -0
- package/package.json +28 -6
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* VestigMetrics Component
|
|
3
|
+
*
|
|
4
|
+
* Drop-in component for capturing Core Web Vitals and route metrics.
|
|
5
|
+
* Add this to your root layout for automatic performance monitoring.
|
|
6
|
+
*
|
|
7
|
+
* @example
|
|
8
|
+
* ```tsx
|
|
9
|
+
* // app/layout.tsx
|
|
10
|
+
* import { VestigMetrics } from '@vestig/next/metrics'
|
|
11
|
+
*
|
|
12
|
+
* export default function RootLayout({ children }) {
|
|
13
|
+
* return (
|
|
14
|
+
* <html>
|
|
15
|
+
* <body>
|
|
16
|
+
* {children}
|
|
17
|
+
* <VestigMetrics
|
|
18
|
+
* sampleRate={0.1} // 10% sampling in production
|
|
19
|
+
* reportEndpoint="/api/vestig/metrics"
|
|
20
|
+
* />
|
|
21
|
+
* </body>
|
|
22
|
+
* </html>
|
|
23
|
+
* )
|
|
24
|
+
* }
|
|
25
|
+
* ```
|
|
26
|
+
*
|
|
27
|
+
* @packageDocumentation
|
|
28
|
+
*/
|
|
29
|
+
import type { VestigMetricsConfig } from './types';
|
|
30
|
+
/**
|
|
31
|
+
* Props for VestigMetrics component
|
|
32
|
+
*/
|
|
33
|
+
export interface VestigMetricsProps extends VestigMetricsConfig {
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* VestigMetrics - Core Web Vitals and Route Metrics Component
|
|
37
|
+
*
|
|
38
|
+
* This component automatically captures:
|
|
39
|
+
* - **LCP** (Largest Contentful Paint) - Loading performance
|
|
40
|
+
* - **CLS** (Cumulative Layout Shift) - Visual stability
|
|
41
|
+
* - **INP** (Interaction to Next Paint) - Interactivity
|
|
42
|
+
* - **TTFB** (Time to First Byte) - Server responsiveness
|
|
43
|
+
* - **FCP** (First Contentful Paint) - Perceived load speed
|
|
44
|
+
* - **Route metrics** - Navigation and hydration times
|
|
45
|
+
*
|
|
46
|
+
* @example Basic usage
|
|
47
|
+
* ```tsx
|
|
48
|
+
* <VestigMetrics />
|
|
49
|
+
* ```
|
|
50
|
+
*
|
|
51
|
+
* @example With configuration
|
|
52
|
+
* ```tsx
|
|
53
|
+
* <VestigMetrics
|
|
54
|
+
* sampleRate={0.1} // 10% of users
|
|
55
|
+
* reportEndpoint="/api/metrics"
|
|
56
|
+
* reportPoorImmediately // Alert on poor metrics
|
|
57
|
+
* captureRouteMetrics // Track route changes
|
|
58
|
+
* debug={process.env.NODE_ENV === 'development'}
|
|
59
|
+
* />
|
|
60
|
+
* ```
|
|
61
|
+
*
|
|
62
|
+
* @example Production setup
|
|
63
|
+
* ```tsx
|
|
64
|
+
* <VestigMetrics
|
|
65
|
+
* enabled={process.env.NODE_ENV === 'production'}
|
|
66
|
+
* sampleRate={0.1}
|
|
67
|
+
* reportPoorImmediately
|
|
68
|
+
* />
|
|
69
|
+
* ```
|
|
70
|
+
*/
|
|
71
|
+
export declare function VestigMetrics({ enabled, sampleRate, reportEndpoint, reportPoorImmediately, captureRouteMetrics, debug, }: VestigMetricsProps): null;
|
|
72
|
+
//# sourceMappingURL=web-vitals.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"web-vitals.d.ts","sourceRoot":"","sources":["../../src/metrics/web-vitals.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAMH,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAA;AAElD;;GAEG;AACH,MAAM,WAAW,kBAAmB,SAAQ,mBAAmB;CAAG;AAElE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AACH,wBAAgB,aAAa,CAAC,EAC7B,OAAc,EACd,UAAU,EACV,cAAsC,EACtC,qBAA4B,EAC5B,mBAA0B,EAC1B,KAAa,GACb,EAAE,kBAAkB,GAAG,IAAI,CAwB3B"}
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* VestigMetrics Component
|
|
3
|
+
*
|
|
4
|
+
* Drop-in component for capturing Core Web Vitals and route metrics.
|
|
5
|
+
* Add this to your root layout for automatic performance monitoring.
|
|
6
|
+
*
|
|
7
|
+
* @example
|
|
8
|
+
* ```tsx
|
|
9
|
+
* // app/layout.tsx
|
|
10
|
+
* import { VestigMetrics } from '@vestig/next/metrics'
|
|
11
|
+
*
|
|
12
|
+
* export default function RootLayout({ children }) {
|
|
13
|
+
* return (
|
|
14
|
+
* <html>
|
|
15
|
+
* <body>
|
|
16
|
+
* {children}
|
|
17
|
+
* <VestigMetrics
|
|
18
|
+
* sampleRate={0.1} // 10% sampling in production
|
|
19
|
+
* reportEndpoint="/api/vestig/metrics"
|
|
20
|
+
* />
|
|
21
|
+
* </body>
|
|
22
|
+
* </html>
|
|
23
|
+
* )
|
|
24
|
+
* }
|
|
25
|
+
* ```
|
|
26
|
+
*
|
|
27
|
+
* @packageDocumentation
|
|
28
|
+
*/
|
|
29
|
+
'use client';
|
|
30
|
+
import { useRouteMetrics } from './hooks/use-route-metrics';
|
|
31
|
+
import { useWebVitals } from './hooks/use-web-vitals';
|
|
32
|
+
/**
|
|
33
|
+
* VestigMetrics - Core Web Vitals and Route Metrics Component
|
|
34
|
+
*
|
|
35
|
+
* This component automatically captures:
|
|
36
|
+
* - **LCP** (Largest Contentful Paint) - Loading performance
|
|
37
|
+
* - **CLS** (Cumulative Layout Shift) - Visual stability
|
|
38
|
+
* - **INP** (Interaction to Next Paint) - Interactivity
|
|
39
|
+
* - **TTFB** (Time to First Byte) - Server responsiveness
|
|
40
|
+
* - **FCP** (First Contentful Paint) - Perceived load speed
|
|
41
|
+
* - **Route metrics** - Navigation and hydration times
|
|
42
|
+
*
|
|
43
|
+
* @example Basic usage
|
|
44
|
+
* ```tsx
|
|
45
|
+
* <VestigMetrics />
|
|
46
|
+
* ```
|
|
47
|
+
*
|
|
48
|
+
* @example With configuration
|
|
49
|
+
* ```tsx
|
|
50
|
+
* <VestigMetrics
|
|
51
|
+
* sampleRate={0.1} // 10% of users
|
|
52
|
+
* reportEndpoint="/api/metrics"
|
|
53
|
+
* reportPoorImmediately // Alert on poor metrics
|
|
54
|
+
* captureRouteMetrics // Track route changes
|
|
55
|
+
* debug={process.env.NODE_ENV === 'development'}
|
|
56
|
+
* />
|
|
57
|
+
* ```
|
|
58
|
+
*
|
|
59
|
+
* @example Production setup
|
|
60
|
+
* ```tsx
|
|
61
|
+
* <VestigMetrics
|
|
62
|
+
* enabled={process.env.NODE_ENV === 'production'}
|
|
63
|
+
* sampleRate={0.1}
|
|
64
|
+
* reportPoorImmediately
|
|
65
|
+
* />
|
|
66
|
+
* ```
|
|
67
|
+
*/
|
|
68
|
+
export function VestigMetrics({ enabled = true, sampleRate, reportEndpoint = '/api/vestig/metrics', reportPoorImmediately = true, captureRouteMetrics = true, debug = false, }) {
|
|
69
|
+
// Determine sample rate based on environment if not specified
|
|
70
|
+
const effectiveSampleRate = sampleRate ??
|
|
71
|
+
(typeof window !== 'undefined' && process.env.NODE_ENV === 'production' ? 0.1 : 1.0);
|
|
72
|
+
// Capture Core Web Vitals
|
|
73
|
+
useWebVitals({
|
|
74
|
+
enabled,
|
|
75
|
+
sampleRate: effectiveSampleRate,
|
|
76
|
+
reportEndpoint,
|
|
77
|
+
reportPoorImmediately,
|
|
78
|
+
debug,
|
|
79
|
+
});
|
|
80
|
+
// Capture route metrics
|
|
81
|
+
useRouteMetrics({
|
|
82
|
+
enabled: enabled && captureRouteMetrics,
|
|
83
|
+
reportEndpoint,
|
|
84
|
+
debug,
|
|
85
|
+
});
|
|
86
|
+
// This component doesn't render anything
|
|
87
|
+
return null;
|
|
88
|
+
}
|
|
89
|
+
//# sourceMappingURL=web-vitals.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"web-vitals.js","sourceRoot":"","sources":["../../src/metrics/web-vitals.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAEH,YAAY,CAAA;AAEZ,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAA;AAC3D,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAA;AAQrD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AACH,MAAM,UAAU,aAAa,CAAC,EAC7B,OAAO,GAAG,IAAI,EACd,UAAU,EACV,cAAc,GAAG,qBAAqB,EACtC,qBAAqB,GAAG,IAAI,EAC5B,mBAAmB,GAAG,IAAI,EAC1B,KAAK,GAAG,KAAK,GACO;IACpB,8DAA8D;IAC9D,MAAM,mBAAmB,GACxB,UAAU;QACV,CAAC,OAAO,MAAM,KAAK,WAAW,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,YAAY,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAA;IAErF,0BAA0B;IAC1B,YAAY,CAAC;QACZ,OAAO;QACP,UAAU,EAAE,mBAAmB;QAC/B,cAAc;QACd,qBAAqB;QACrB,KAAK;KACL,CAAC,CAAA;IAEF,wBAAwB;IACxB,eAAe,CAAC;QACf,OAAO,EAAE,OAAO,IAAI,mBAAmB;QACvC,cAAc;QACd,KAAK;KACL,CAAC,CAAA;IAEF,yCAAyC;IACzC,OAAO,IAAI,CAAA;AACZ,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@vestig/next",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.9.0",
|
|
4
4
|
"description": "First-class Next.js 15+ integration for vestig logging library. Zero boilerplate, automatic request correlation, full type safety.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -25,11 +25,29 @@
|
|
|
25
25
|
"./config": {
|
|
26
26
|
"types": "./dist/config/index.d.ts",
|
|
27
27
|
"import": "./dist/config/index.js"
|
|
28
|
+
},
|
|
29
|
+
"./dev": {
|
|
30
|
+
"types": "./dist/dev/index.d.ts",
|
|
31
|
+
"import": "./dist/dev/index.js"
|
|
32
|
+
},
|
|
33
|
+
"./dev/api": {
|
|
34
|
+
"types": "./dist/dev/api/index.d.ts",
|
|
35
|
+
"import": "./dist/dev/api/index.js"
|
|
36
|
+
},
|
|
37
|
+
"./metrics": {
|
|
38
|
+
"types": "./dist/metrics/index.d.ts",
|
|
39
|
+
"import": "./dist/metrics/index.js"
|
|
40
|
+
},
|
|
41
|
+
"./error": {
|
|
42
|
+
"types": "./dist/error/index.d.ts",
|
|
43
|
+
"import": "./dist/error/index.js"
|
|
44
|
+
},
|
|
45
|
+
"./db": {
|
|
46
|
+
"types": "./dist/db/index.d.ts",
|
|
47
|
+
"import": "./dist/db/index.js"
|
|
28
48
|
}
|
|
29
49
|
},
|
|
30
|
-
"files": [
|
|
31
|
-
"dist"
|
|
32
|
-
],
|
|
50
|
+
"files": ["dist"],
|
|
33
51
|
"sideEffects": false,
|
|
34
52
|
"scripts": {
|
|
35
53
|
"build": "tsc",
|
|
@@ -68,17 +86,21 @@
|
|
|
68
86
|
"peerDependencies": {
|
|
69
87
|
"next": ">=15.0.0",
|
|
70
88
|
"react": ">=19.0.0",
|
|
89
|
+
"react-dom": ">=19.0.0",
|
|
71
90
|
"vestig": ">=0.2.0"
|
|
72
91
|
},
|
|
73
92
|
"dependencies": {
|
|
74
|
-
"vestig": "workspace:*"
|
|
93
|
+
"vestig": "workspace:*",
|
|
94
|
+
"web-vitals": "^4.2.4"
|
|
75
95
|
},
|
|
76
96
|
"devDependencies": {
|
|
77
97
|
"typescript": "catalog:",
|
|
78
98
|
"@types/node": "catalog:",
|
|
79
99
|
"@types/react": "catalog:",
|
|
100
|
+
"@types/react-dom": "catalog:",
|
|
80
101
|
"next": "catalog:",
|
|
81
|
-
"react": "catalog:"
|
|
102
|
+
"react": "catalog:",
|
|
103
|
+
"react-dom": "catalog:"
|
|
82
104
|
},
|
|
83
105
|
"engines": {
|
|
84
106
|
"node": ">=18"
|