@vestig/next 0.5.0 → 0.6.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/dist/index.d.ts CHANGED
@@ -37,6 +37,6 @@
37
37
  export { getLogger, getRequestContext, createChildLogger } from './server/server-component';
38
38
  export { withVestig, createRouteHandlers } from './server/route-handler';
39
39
  export { vestigAction, createVestigAction } from './server/server-action';
40
- export type { Logger, LoggerConfig, LogLevel, LogEntry, LogMetadata, LogContext, Transport, SanitizePreset, SanitizeConfig, RouteHandlerContext, RouteHandler, WithVestigOptions, ActionContext, ServerAction, VestigActionOptions, VestigProviderProps, } from './types';
40
+ export type { Logger, LoggerConfig, LogLevel, LogEntry, LogMetadata, LogContext, Transport, SanitizePreset, SanitizeConfig, Span, RouteHandlerContext, RouteHandler, WithVestigOptions, ActionContext, ServerAction, VestigActionOptions, VestigProviderProps, } from './types';
41
41
  export type { VestigNextConfig, VestigNextOptions, VestigNextMiddlewareConfig, VestigNextServerConfig, VestigNextClientConfig, VestigNextDevToolsConfig, } from './config';
42
42
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AAGH,OAAO,EAAE,SAAS,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAA;AAG3F,OAAO,EAAE,UAAU,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAA;AAGxE,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAA;AAGzE,YAAY,EAEX,MAAM,EACN,YAAY,EACZ,QAAQ,EACR,QAAQ,EACR,WAAW,EACX,UAAU,EACV,SAAS,EACT,cAAc,EACd,cAAc,EAEd,mBAAmB,EACnB,YAAY,EACZ,iBAAiB,EACjB,aAAa,EACb,YAAY,EACZ,mBAAmB,EACnB,mBAAmB,GACnB,MAAM,SAAS,CAAA;AAGhB,YAAY,EACX,gBAAgB,EAChB,iBAAiB,EACjB,0BAA0B,EAC1B,sBAAsB,EACtB,sBAAsB,EACtB,wBAAwB,GACxB,MAAM,UAAU,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AAGH,OAAO,EAAE,SAAS,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAA;AAG3F,OAAO,EAAE,UAAU,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAA;AAGxE,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAA;AAGzE,YAAY,EAEX,MAAM,EACN,YAAY,EACZ,QAAQ,EACR,QAAQ,EACR,WAAW,EACX,UAAU,EACV,SAAS,EACT,cAAc,EACd,cAAc,EACd,IAAI,EAEJ,mBAAmB,EACnB,YAAY,EACZ,iBAAiB,EACjB,aAAa,EACb,YAAY,EACZ,mBAAmB,EACnB,mBAAmB,GACnB,MAAM,SAAS,CAAA;AAGhB,YAAY,EACX,gBAAgB,EAChB,iBAAiB,EACjB,0BAA0B,EAC1B,sBAAsB,EACtB,sBAAsB,EACtB,wBAAwB,GACxB,MAAM,UAAU,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"middleware.d.ts","sourceRoot":"","sources":["../../src/server/middleware.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAC1C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AAC9C,OAAO,EACN,KAAK,QAAQ,EAEb,KAAK,cAAc,EAKnB,MAAM,QAAQ,CAAA;AAIf,MAAM,WAAW,iBAAiB;IACjC,0CAA0C;IAC1C,KAAK,CAAC,EAAE,QAAQ,CAAA;IAChB,6BAA6B;IAC7B,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,8BAA8B;IAC9B,QAAQ,CAAC,EAAE,cAAc,CAAA;IACzB,oCAAoC;IACpC,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,sCAAsC;IACtC,SAAS,CAAC,EAAE,MAAM,EAAE,CAAA;IACpB,wCAAwC;IACxC,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,0CAA0C;IAC1C,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,sCAAsC;IACtC,eAAe,CAAC,EAAE,QAAQ,CAAA;IAC1B,uCAAuC;IACvC,gBAAgB,CAAC,EAAE,QAAQ,CAAA;IAC3B,iCAAiC;IACjC,UAAU,CAAC,EAAE,OAAO,CAAA;CACpB;AAmCD;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,GAAE,iBAAsB,IAGpC,SAAS,WAAW,2BA2ErD;AAED;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,gBAAgB,YA3Fc,WAAW,0BA2FE,CAAA;AAGxD,YAAY,EAAE,iBAAiB,IAAI,YAAY,EAAE,CAAA;AAEjD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,GAAE,iBAAsB,aApHtB,WAAW,2BAwHrD;AAED;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,WAAW,YAvImB,WAAW,0BAuIR,CAAA;AAE9C;;GAEG;AACH,wBAAgB,kBAAkB,CACjC,OAAO,GAAE;IACR,OAAO,CAAC,EAAE,MAAM,EAAE,CAAA;IAClB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAA;CACb;;EAMN;AAED;;GAEG;AACH,eAAO,MAAM,uBAAuB,2BAAqB,CAAA"}
1
+ {"version":3,"file":"middleware.d.ts","sourceRoot":"","sources":["../../src/server/middleware.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAC1C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AAC9C,OAAO,EACN,KAAK,QAAQ,EAEb,KAAK,cAAc,EAMnB,MAAM,QAAQ,CAAA;AAIf,MAAM,WAAW,iBAAiB;IACjC,0CAA0C;IAC1C,KAAK,CAAC,EAAE,QAAQ,CAAA;IAChB,6BAA6B;IAC7B,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,8BAA8B;IAC9B,QAAQ,CAAC,EAAE,cAAc,CAAA;IACzB,oCAAoC;IACpC,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,sCAAsC;IACtC,SAAS,CAAC,EAAE,MAAM,EAAE,CAAA;IACpB,wCAAwC;IACxC,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,0CAA0C;IAC1C,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,sCAAsC;IACtC,eAAe,CAAC,EAAE,QAAQ,CAAA;IAC1B,uCAAuC;IACvC,gBAAgB,CAAC,EAAE,QAAQ,CAAA;IAC3B,iCAAiC;IACjC,UAAU,CAAC,EAAE,OAAO,CAAA;CACpB;AAmCD;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,GAAE,iBAAsB,IAGpC,SAAS,WAAW,2BA4FrD;AAED;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,gBAAgB,YA5Gc,WAAW,0BA4GE,CAAA;AAGxD,YAAY,EAAE,iBAAiB,IAAI,YAAY,EAAE,CAAA;AAEjD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,GAAE,iBAAsB,aArItB,WAAW,2BAyIrD;AAED;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,WAAW,YAxJmB,WAAW,0BAwJR,CAAA;AAE9C;;GAEG;AACH,wBAAgB,kBAAkB,CACjC,OAAO,GAAE;IACR,OAAO,CAAC,EAAE,MAAM,EAAE,CAAA;IAClB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAA;CACb;;EAMN;AAED;;GAEG;AACH,eAAO,MAAM,uBAAuB,2BAAqB,CAAA"}
@@ -1,5 +1,5 @@
1
1
  import { NextResponse } from 'next/server';
2
- import { createCorrelationContext, createLogger, createTraceparent, parseTraceparent, } from 'vestig';
2
+ import { createCorrelationContext, createLogger, createTraceparent, parseTraceparent, spanSync, } from 'vestig';
3
3
  import { CORRELATION_HEADERS } from '../utils/headers';
4
4
  import { createRequestTiming, formatDuration } from '../utils/timing';
5
5
  // Default options
@@ -70,46 +70,60 @@ export function createVestigMiddleware(options = {}) {
70
70
  traceId: parsed?.traceId,
71
71
  spanId: parsed?.spanId,
72
72
  });
73
- // Log incoming request
74
- const requestLogLevel = mergedOptions.requestLogLevel;
75
- log[requestLogLevel]('Request received', {
76
- method: request.method,
77
- path: pathname,
78
- search: request.nextUrl.search || undefined,
79
- userAgent: request.headers.get('user-agent')?.slice(0, 100),
80
- ip: request.headers.get('x-forwarded-for')?.split(',')[0]?.trim() ??
81
- request.headers.get('x-real-ip'),
82
- requestId: ctx.requestId,
83
- traceId: ctx.traceId,
84
- });
85
- // Create new headers with correlation IDs
86
- const requestHeaders = new Headers(request.headers);
87
- requestHeaders.set(CORRELATION_HEADERS.REQUEST_ID, ctx.requestId);
88
- requestHeaders.set(CORRELATION_HEADERS.TRACE_ID, ctx.traceId);
89
- requestHeaders.set(CORRELATION_HEADERS.SPAN_ID, ctx.spanId);
90
- requestHeaders.set(CORRELATION_HEADERS.TRACEPARENT, createTraceparent(ctx.traceId, ctx.spanId));
91
- // Create response with updated headers
92
- const response = NextResponse.next({
93
- request: {
94
- headers: requestHeaders,
95
- },
96
- });
97
- // Add correlation headers to response
98
- response.headers.set(CORRELATION_HEADERS.REQUEST_ID, ctx.requestId);
99
- response.headers.set(CORRELATION_HEADERS.TRACE_ID, ctx.traceId);
100
- // Log response with timing if enabled
101
- if (mergedOptions.timing) {
102
- const duration = timing.complete();
103
- const responseLogLevel = mergedOptions.responseLogLevel;
104
- log[responseLogLevel]('Response sent', {
73
+ // Wrap middleware processing in a span
74
+ return spanSync(`middleware:${mergedOptions.namespace}`, (s) => {
75
+ // Set HTTP attributes on span
76
+ s.setAttributes({
77
+ 'http.method': request.method,
78
+ 'http.path': pathname,
79
+ 'http.request_id': ctx.requestId,
80
+ 'http.trace_id': ctx.traceId,
81
+ });
82
+ // Log incoming request
83
+ const requestLogLevel = mergedOptions.requestLogLevel;
84
+ log[requestLogLevel]('Request received', {
105
85
  method: request.method,
106
86
  path: pathname,
107
- duration: formatDuration(duration),
108
- durationMs: duration,
87
+ search: request.nextUrl.search || undefined,
88
+ userAgent: request.headers.get('user-agent')?.slice(0, 100),
89
+ ip: request.headers.get('x-forwarded-for')?.split(',')[0]?.trim() ??
90
+ request.headers.get('x-real-ip'),
109
91
  requestId: ctx.requestId,
92
+ traceId: ctx.traceId,
110
93
  });
111
- }
112
- return response;
94
+ s.addEvent('request-received');
95
+ // Create new headers with correlation IDs
96
+ const requestHeaders = new Headers(request.headers);
97
+ requestHeaders.set(CORRELATION_HEADERS.REQUEST_ID, ctx.requestId);
98
+ requestHeaders.set(CORRELATION_HEADERS.TRACE_ID, ctx.traceId);
99
+ requestHeaders.set(CORRELATION_HEADERS.SPAN_ID, ctx.spanId);
100
+ requestHeaders.set(CORRELATION_HEADERS.TRACEPARENT, createTraceparent(ctx.traceId, ctx.spanId));
101
+ // Create response with updated headers
102
+ const response = NextResponse.next({
103
+ request: {
104
+ headers: requestHeaders,
105
+ },
106
+ });
107
+ // Add correlation headers to response
108
+ response.headers.set(CORRELATION_HEADERS.REQUEST_ID, ctx.requestId);
109
+ response.headers.set(CORRELATION_HEADERS.TRACE_ID, ctx.traceId);
110
+ // Log response with timing if enabled
111
+ if (mergedOptions.timing) {
112
+ const duration = timing.complete();
113
+ s.setAttribute('http.duration_ms', duration);
114
+ s.addEvent('response-sent');
115
+ const responseLogLevel = mergedOptions.responseLogLevel;
116
+ log[responseLogLevel]('Response sent', {
117
+ method: request.method,
118
+ path: pathname,
119
+ duration: formatDuration(duration),
120
+ durationMs: duration,
121
+ requestId: ctx.requestId,
122
+ });
123
+ }
124
+ s.setStatus('ok');
125
+ return response;
126
+ });
113
127
  };
114
128
  }
115
129
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"middleware.js","sourceRoot":"","sources":["../../src/server/middleware.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"middleware.js","sourceRoot":"","sources":["../../src/server/middleware.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"route-handler.d.ts","sourceRoot":"","sources":["../../src/server/route-handler.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,KAAK,QAAQ,EAEb,KAAK,cAAc,EAInB,MAAM,QAAQ,CAAA;AACf,OAAO,KAAK,EAAE,YAAY,EAAuB,iBAAiB,EAAE,MAAM,UAAU,CAAA;AAKpF,KAAK,WAAW,GAAG,OAAO,GAAG;IAAE,OAAO,CAAC,EAAE,GAAG,CAAA;CAAE,CAAA;AAC9C,KAAK,YAAY,GAAG;IAAE,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAA;CAAE,CAAA;AAE/D,MAAM,WAAW,mBAAoB,SAAQ,iBAAiB;IAC7D,6CAA6C;IAC7C,KAAK,CAAC,EAAE,QAAQ,CAAA;IAChB,6BAA6B;IAC7B,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,8BAA8B;IAC9B,QAAQ,CAAC,EAAE,cAAc,CAAA;IACzB,iCAAiC;IACjC,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,gDAAgD;IAChD,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CACjC;AAWD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,wBAAgB,UAAU,CAAC,CAAC,GAAG,QAAQ,EACtC,OAAO,EAAE,YAAY,CAAC,CAAC,CAAC,EACxB,OAAO,GAAE,mBAAwB,GAC/B,CAAC,OAAO,EAAE,WAAW,EAAE,YAAY,CAAC,EAAE,YAAY,KAAK,OAAO,CAAC,CAAC,CAAC,CAmFnE;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,wBAAgB,mBAAmB,CAClC,QAAQ,EAAE;IACT,GAAG,CAAC,EAAE,YAAY,CAAA;IAClB,IAAI,CAAC,EAAE,YAAY,CAAA;IACnB,GAAG,CAAC,EAAE,YAAY,CAAA;IAClB,KAAK,CAAC,EAAE,YAAY,CAAA;IACpB,MAAM,CAAC,EAAE,YAAY,CAAA;IACrB,IAAI,CAAC,EAAE,YAAY,CAAA;IACnB,OAAO,CAAC,EAAE,YAAY,CAAA;CACtB,EACD,OAAO,GAAE,mBAAwB,GAC/B,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,OAAO,UAAU,CAAC,CAAC,CAa/C"}
1
+ {"version":3,"file":"route-handler.d.ts","sourceRoot":"","sources":["../../src/server/route-handler.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,KAAK,QAAQ,EAEb,KAAK,cAAc,EAMnB,MAAM,QAAQ,CAAA;AACf,OAAO,KAAK,EAAE,YAAY,EAAuB,iBAAiB,EAAE,MAAM,UAAU,CAAA;AAKpF,KAAK,WAAW,GAAG,OAAO,GAAG;IAAE,OAAO,CAAC,EAAE,GAAG,CAAA;CAAE,CAAA;AAC9C,KAAK,YAAY,GAAG;IAAE,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAA;CAAE,CAAA;AAE/D,MAAM,WAAW,mBAAoB,SAAQ,iBAAiB;IAC7D,6CAA6C;IAC7C,KAAK,CAAC,EAAE,QAAQ,CAAA;IAChB,6BAA6B;IAC7B,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,8BAA8B;IAC9B,QAAQ,CAAC,EAAE,cAAc,CAAA;IACzB,iCAAiC;IACjC,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,gDAAgD;IAChD,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CACjC;AAWD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,wBAAgB,UAAU,CAAC,CAAC,GAAG,QAAQ,EACtC,OAAO,EAAE,YAAY,CAAC,CAAC,CAAC,EACxB,OAAO,GAAE,mBAAwB,GAC/B,CAAC,OAAO,EAAE,WAAW,EAAE,YAAY,CAAC,EAAE,YAAY,KAAK,OAAO,CAAC,CAAC,CAAC,CA2GnE;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,wBAAgB,mBAAmB,CAClC,QAAQ,EAAE;IACT,GAAG,CAAC,EAAE,YAAY,CAAA;IAClB,IAAI,CAAC,EAAE,YAAY,CAAA;IACnB,GAAG,CAAC,EAAE,YAAY,CAAA;IAClB,KAAK,CAAC,EAAE,YAAY,CAAA;IACpB,MAAM,CAAC,EAAE,YAAY,CAAA;IACrB,IAAI,CAAC,EAAE,YAAY,CAAA;IACnB,OAAO,CAAC,EAAE,YAAY,CAAA;CACtB,EACD,OAAO,GAAE,mBAAwB,GAC/B,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,OAAO,UAAU,CAAC,CAAC,CAa/C"}
@@ -1,4 +1,4 @@
1
- import { createCorrelationContext, createLogger, withContext, } from 'vestig';
1
+ import { createCorrelationContext, createLogger, span as createSpan, withContext, } from 'vestig';
2
2
  import { extractCorrelationHeaders, setCorrelationHeaders } from '../utils/headers';
3
3
  import { extractRequestMetadata } from '../utils/metadata';
4
4
  import { createRequestTiming, formatDuration } from '../utils/timing';
@@ -68,53 +68,74 @@ export function withVestig(handler, options = {}) {
68
68
  });
69
69
  // Get route params
70
70
  const params = routeContext?.params ? await routeContext.params : {};
71
- // Create handler context
72
- const handlerContext = {
73
- log,
74
- ctx,
75
- params,
76
- timing: {
77
- start: timing.start,
78
- elapsed: () => timing.elapsed(),
79
- mark: (name) => timing.mark(name),
80
- },
81
- };
71
+ // Get URL info for span name
72
+ const url = request.nextUrl ?? new URL(request.url);
73
+ const namespace = mergedOptions.namespace ?? 'api';
82
74
  return withContext(ctx, async () => {
83
- // Log request if enabled
84
- if (mergedOptions.logRequest !== false) {
85
- const metadata = extractRequestMetadata(request);
86
- log.info('Request received', {
87
- ...metadata,
88
- requestId: ctx.requestId,
89
- traceId: ctx.traceId,
75
+ // Wrap entire request handling in a span
76
+ return createSpan(`route:${namespace}`, async (s) => {
77
+ // Set HTTP attributes on span
78
+ s.setAttributes({
79
+ 'http.method': request.method,
80
+ 'http.url': url.pathname,
81
+ 'http.request_id': ctx.requestId,
90
82
  });
91
- }
92
- try {
93
- const result = await handler(request, handlerContext);
94
- // Log response if enabled and result is Response
95
- if (mergedOptions.logResponse !== false && result instanceof Response) {
83
+ // Create handler context with span
84
+ const handlerContext = {
85
+ log,
86
+ ctx,
87
+ params,
88
+ timing: {
89
+ start: timing.start,
90
+ elapsed: () => timing.elapsed(),
91
+ mark: (name) => timing.mark(name),
92
+ },
93
+ span: s,
94
+ };
95
+ // Log request if enabled
96
+ if (mergedOptions.logRequest !== false) {
97
+ const metadata = extractRequestMetadata(request);
98
+ log.info('Request received', {
99
+ ...metadata,
100
+ requestId: ctx.requestId,
101
+ traceId: ctx.traceId,
102
+ });
103
+ }
104
+ try {
105
+ const result = await handler(request, handlerContext);
106
+ // Log response if enabled and result is Response
107
+ if (result instanceof Response) {
108
+ const duration = timing.complete();
109
+ s.setAttribute('http.status_code', result.status);
110
+ s.setStatus(result.ok ? 'ok' : 'error');
111
+ if (mergedOptions.logResponse !== false) {
112
+ log.info('Response sent', {
113
+ status: result.status,
114
+ duration: formatDuration(duration),
115
+ durationMs: duration,
116
+ requestId: ctx.requestId,
117
+ });
118
+ }
119
+ // Add correlation headers to response
120
+ setCorrelationHeaders(result.headers, ctx);
121
+ }
122
+ else {
123
+ s.setStatus('ok');
124
+ }
125
+ return result;
126
+ }
127
+ catch (error) {
96
128
  const duration = timing.complete();
97
- log.info('Response sent', {
98
- status: result.status,
129
+ s.setStatus('error', error instanceof Error ? error.message : String(error));
130
+ log.error('Request failed', {
131
+ error,
99
132
  duration: formatDuration(duration),
100
133
  durationMs: duration,
101
134
  requestId: ctx.requestId,
102
135
  });
103
- // Add correlation headers to response
104
- setCorrelationHeaders(result.headers, ctx);
136
+ throw error;
105
137
  }
106
- return result;
107
- }
108
- catch (error) {
109
- const duration = timing.complete();
110
- log.error('Request failed', {
111
- error,
112
- duration: formatDuration(duration),
113
- durationMs: duration,
114
- requestId: ctx.requestId,
115
- });
116
- throw error;
117
- }
138
+ });
118
139
  });
119
140
  };
120
141
  }
@@ -1 +1 @@
1
- {"version":3,"file":"route-handler.js","sourceRoot":"","sources":["../../src/server/route-handler.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"route-handler.js","sourceRoot":"","sources":["../../src/server/route-handler.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"server-action.d.ts","sourceRoot":"","sources":["../../src/server/server-action.ts"],"names":[],"mappings":"AACA,OAAO,EACN,KAAK,QAAQ,EAEb,KAAK,cAAc,EAInB,MAAM,QAAQ,CAAA;AACf,OAAO,KAAK,EAAiB,YAAY,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAA;AAIhF,MAAM,WAAW,aAAc,SAAQ,mBAAmB;IACzD,sCAAsC;IACtC,KAAK,CAAC,EAAE,QAAQ,CAAA;IAChB,6BAA6B;IAC7B,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,8BAA8B;IAC9B,QAAQ,CAAC,EAAE,cAAc,CAAA;IACzB,iCAAiC;IACjC,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,gDAAgD;IAChD,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CACjC;AAWD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,OAAO,EAC3C,MAAM,EAAE,YAAY,CAAC,MAAM,EAAE,OAAO,CAAC,EACrC,OAAO,GAAE,aAAkB,GACzB,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAuErC;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE;IAC3D,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,KAAK,CAAC,EAAE,QAAQ,CAAA;IAChB,QAAQ,CAAC,EAAE,cAAc,CAAA;IACzB,MAAM,EAAE,YAAY,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CACrC,GAAG,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAQtC"}
1
+ {"version":3,"file":"server-action.d.ts","sourceRoot":"","sources":["../../src/server/server-action.ts"],"names":[],"mappings":"AACA,OAAO,EACN,KAAK,QAAQ,EAEb,KAAK,cAAc,EAMnB,MAAM,QAAQ,CAAA;AACf,OAAO,KAAK,EAAiB,YAAY,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAA;AAIhF,MAAM,WAAW,aAAc,SAAQ,mBAAmB;IACzD,sCAAsC;IACtC,KAAK,CAAC,EAAE,QAAQ,CAAA;IAChB,6BAA6B;IAC7B,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,8BAA8B;IAC9B,QAAQ,CAAC,EAAE,cAAc,CAAA;IACzB,iCAAiC;IACjC,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,gDAAgD;IAChD,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CACjC;AAWD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,OAAO,EAC3C,MAAM,EAAE,YAAY,CAAC,MAAM,EAAE,OAAO,CAAC,EACrC,OAAO,GAAE,aAAkB,GACzB,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAiGrC;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE;IAC3D,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,KAAK,CAAC,EAAE,QAAQ,CAAA;IAChB,QAAQ,CAAC,EAAE,cAAc,CAAA;IACzB,MAAM,EAAE,YAAY,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CACrC,GAAG,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAQtC"}
@@ -1,5 +1,5 @@
1
1
  import { headers } from 'next/headers';
2
- import { createCorrelationContext, createLogger, withContext, } from 'vestig';
2
+ import { createCorrelationContext, createLogger, span as createSpan, withContext, } from 'vestig';
3
3
  import { CORRELATION_HEADERS } from '../utils/headers';
4
4
  import { createRequestTiming, formatDuration } from '../utils/timing';
5
5
  const DEFAULT_OPTIONS = {
@@ -67,42 +67,63 @@ export function vestigAction(action, options = {}) {
67
67
  const traceId = headersList.get(CORRELATION_HEADERS.TRACE_ID) ?? undefined;
68
68
  const spanId = headersList.get(CORRELATION_HEADERS.SPAN_ID) ?? undefined;
69
69
  const ctx = createCorrelationContext({ requestId, traceId, spanId });
70
- const actionContext = { log, ctx };
70
+ const namespace = mergedOptions.namespace ?? 'action';
71
71
  return withContext(ctx, async () => {
72
- // Log action start
73
- const startLog = {
74
- requestId: ctx.requestId,
75
- inputType: typeof input,
76
- };
77
- if (mergedOptions.logInput) {
78
- startLog.input = input;
79
- }
80
- log.info('Action started', startLog);
81
- try {
82
- const result = await action(input, actionContext);
83
- const duration = timing.complete();
84
- const endLog = {
85
- duration: formatDuration(duration),
86
- durationMs: duration,
72
+ // Wrap entire action in a span
73
+ return createSpan(`action:${namespace}`, async (s) => {
74
+ // Set initial attributes
75
+ s.setAttributes({
76
+ 'action.namespace': namespace,
77
+ 'action.request_id': ctx.requestId,
78
+ 'action.input_type': typeof input,
79
+ });
80
+ // Create action context with span
81
+ const actionContext = { log, ctx, span: s };
82
+ // Log action start
83
+ const startLog = {
87
84
  requestId: ctx.requestId,
88
- success: true,
85
+ inputType: typeof input,
89
86
  };
90
- if (mergedOptions.logOutput) {
91
- endLog.output = result;
87
+ if (mergedOptions.logInput) {
88
+ startLog.input = input;
89
+ s.setAttribute('action.has_input', true);
92
90
  }
93
- log.info('Action completed', endLog);
94
- return result;
95
- }
96
- catch (error) {
97
- const duration = timing.complete();
98
- log.error('Action failed', {
99
- error,
100
- duration: formatDuration(duration),
101
- durationMs: duration,
102
- requestId: ctx.requestId,
103
- });
104
- throw error;
105
- }
91
+ log.info('Action started', startLog);
92
+ s.addEvent('action-start');
93
+ try {
94
+ const result = await action(input, actionContext);
95
+ const duration = timing.complete();
96
+ s.addEvent('action-complete');
97
+ s.setAttribute('action.duration_ms', duration);
98
+ s.setStatus('ok');
99
+ const endLog = {
100
+ duration: formatDuration(duration),
101
+ durationMs: duration,
102
+ requestId: ctx.requestId,
103
+ success: true,
104
+ };
105
+ if (mergedOptions.logOutput) {
106
+ endLog.output = result;
107
+ }
108
+ log.info('Action completed', endLog);
109
+ return result;
110
+ }
111
+ catch (error) {
112
+ const duration = timing.complete();
113
+ s.addEvent('action-error', {
114
+ error: error instanceof Error ? error.message : String(error),
115
+ });
116
+ s.setAttribute('action.duration_ms', duration);
117
+ s.setStatus('error', error instanceof Error ? error.message : String(error));
118
+ log.error('Action failed', {
119
+ error,
120
+ duration: formatDuration(duration),
121
+ durationMs: duration,
122
+ requestId: ctx.requestId,
123
+ });
124
+ throw error;
125
+ }
126
+ });
106
127
  });
107
128
  };
108
129
  }
@@ -1 +1 @@
1
- {"version":3,"file":"server-action.js","sourceRoot":"","sources":["../../src/server/server-action.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"server-action.js","sourceRoot":"","sources":["../../src/server/server-action.ts"],"names":[],"mappings":"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"}
package/dist/types.d.ts CHANGED
@@ -1,8 +1,8 @@
1
1
  /**
2
2
  * Shared types for @vestig/next
3
3
  */
4
- import type { LogContext, LogEntry, LogLevel, LogMetadata, Logger, LoggerConfig, SanitizeConfig, SanitizePreset, Transport } from 'vestig';
5
- export type { Logger, LoggerConfig, LogLevel, LogEntry, LogMetadata, LogContext, Transport, SanitizePreset, SanitizeConfig, };
4
+ import type { LogContext, LogEntry, LogLevel, LogMetadata, Logger, LoggerConfig, SanitizeConfig, SanitizePreset, Span, Transport } from 'vestig';
5
+ export type { Logger, LoggerConfig, LogLevel, LogEntry, LogMetadata, LogContext, Transport, SanitizePreset, SanitizeConfig, Span, };
6
6
  export type { VestigNextConfig, VestigNextOptions, VestigNextMiddlewareConfig, VestigNextServerConfig, VestigNextClientConfig, VestigNextDevToolsConfig, } from './config';
7
7
  /**
8
8
  * Context provided to route handlers wrapped with withVestig
@@ -23,6 +23,8 @@ export interface RouteHandlerContext {
23
23
  /** Mark a checkpoint */
24
24
  mark: (name: string) => void;
25
25
  };
26
+ /** Active span for the request - use for adding attributes, events */
27
+ span: Span;
26
28
  }
27
29
  /**
28
30
  * Route handler function type
@@ -47,6 +49,8 @@ export interface ActionContext {
47
49
  log: Logger;
48
50
  /** Correlation context */
49
51
  ctx: LogContext;
52
+ /** Active span for the action - use for adding attributes, events */
53
+ span: Span;
50
54
  }
51
55
  /**
52
56
  * Server action function type
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EACX,UAAU,EACV,QAAQ,EACR,QAAQ,EACR,WAAW,EACX,MAAM,EACN,YAAY,EACZ,cAAc,EACd,cAAc,EACd,SAAS,EACT,MAAM,QAAQ,CAAA;AAGf,YAAY,EACX,MAAM,EACN,YAAY,EACZ,QAAQ,EACR,QAAQ,EACR,WAAW,EACX,UAAU,EACV,SAAS,EACT,cAAc,EACd,cAAc,GACd,CAAA;AAGD,YAAY,EACX,gBAAgB,EAChB,iBAAiB,EACjB,0BAA0B,EAC1B,sBAAsB,EACtB,sBAAsB,EACtB,wBAAwB,GACxB,MAAM,UAAU,CAAA;AAEjB;;GAEG;AACH,MAAM,WAAW,mBAAmB;IACnC,+CAA+C;IAC/C,GAAG,EAAE,MAAM,CAAA;IACX,uDAAuD;IACvD,GAAG,EAAE,UAAU,CAAA;IACf,gCAAgC;IAChC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC9B,+BAA+B;IAC/B,MAAM,EAAE;QACP,uBAAuB;QACvB,KAAK,EAAE,MAAM,CAAA;QACb,6BAA6B;QAC7B,OAAO,EAAE,MAAM,MAAM,CAAA;QACrB,wBAAwB;QACxB,IAAI,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;KAC5B,CAAA;CACD;AAED;;GAEG;AACH,MAAM,MAAM,YAAY,CAAC,CAAC,GAAG,QAAQ,IAAI,CACxC,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,mBAAmB,KACxB,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAA;AAEnB;;GAEG;AACH,MAAM,WAAW,iBAAiB;IACjC,2CAA2C;IAC3C,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,2CAA2C;IAC3C,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,4CAA4C;IAC5C,WAAW,CAAC,EAAE,OAAO,CAAA;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC7B,+CAA+C;IAC/C,GAAG,EAAE,MAAM,CAAA;IACX,0BAA0B;IAC1B,GAAG,EAAE,UAAU,CAAA;CACf;AAED;;GAEG;AACH,MAAM,MAAM,YAAY,CAAC,MAAM,EAAE,OAAO,IAAI,CAC3C,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,aAAa,KAClB,OAAO,CAAC,OAAO,CAAC,CAAA;AAErB;;GAEG;AACH,MAAM,WAAW,mBAAmB;IACnC,uBAAuB;IACvB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,mDAAmD;IACnD,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,uCAAuC;IACvC,SAAS,CAAC,EAAE,OAAO,CAAA;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IACnC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;IACzB,sDAAsD;IACtD,cAAc,CAAC,EAAE,UAAU,CAAA;IAC3B,4BAA4B;IAC5B,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,uBAAuB;IACvB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,gCAAgC;IAChC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CACjC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EACX,UAAU,EACV,QAAQ,EACR,QAAQ,EACR,WAAW,EACX,MAAM,EACN,YAAY,EACZ,cAAc,EACd,cAAc,EACd,IAAI,EACJ,SAAS,EACT,MAAM,QAAQ,CAAA;AAGf,YAAY,EACX,MAAM,EACN,YAAY,EACZ,QAAQ,EACR,QAAQ,EACR,WAAW,EACX,UAAU,EACV,SAAS,EACT,cAAc,EACd,cAAc,EACd,IAAI,GACJ,CAAA;AAGD,YAAY,EACX,gBAAgB,EAChB,iBAAiB,EACjB,0BAA0B,EAC1B,sBAAsB,EACtB,sBAAsB,EACtB,wBAAwB,GACxB,MAAM,UAAU,CAAA;AAEjB;;GAEG;AACH,MAAM,WAAW,mBAAmB;IACnC,+CAA+C;IAC/C,GAAG,EAAE,MAAM,CAAA;IACX,uDAAuD;IACvD,GAAG,EAAE,UAAU,CAAA;IACf,gCAAgC;IAChC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC9B,+BAA+B;IAC/B,MAAM,EAAE;QACP,uBAAuB;QACvB,KAAK,EAAE,MAAM,CAAA;QACb,6BAA6B;QAC7B,OAAO,EAAE,MAAM,MAAM,CAAA;QACrB,wBAAwB;QACxB,IAAI,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;KAC5B,CAAA;IACD,sEAAsE;IACtE,IAAI,EAAE,IAAI,CAAA;CACV;AAED;;GAEG;AACH,MAAM,MAAM,YAAY,CAAC,CAAC,GAAG,QAAQ,IAAI,CACxC,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,mBAAmB,KACxB,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAA;AAEnB;;GAEG;AACH,MAAM,WAAW,iBAAiB;IACjC,2CAA2C;IAC3C,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,2CAA2C;IAC3C,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,4CAA4C;IAC5C,WAAW,CAAC,EAAE,OAAO,CAAA;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC7B,+CAA+C;IAC/C,GAAG,EAAE,MAAM,CAAA;IACX,0BAA0B;IAC1B,GAAG,EAAE,UAAU,CAAA;IACf,qEAAqE;IACrE,IAAI,EAAE,IAAI,CAAA;CACV;AAED;;GAEG;AACH,MAAM,MAAM,YAAY,CAAC,MAAM,EAAE,OAAO,IAAI,CAC3C,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,aAAa,KAClB,OAAO,CAAC,OAAO,CAAC,CAAA;AAErB;;GAEG;AACH,MAAM,WAAW,mBAAmB;IACnC,uBAAuB;IACvB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,mDAAmD;IACnD,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,uCAAuC;IACvC,SAAS,CAAC,EAAE,OAAO,CAAA;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IACnC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;IACzB,sDAAsD;IACtD,cAAc,CAAC,EAAE,UAAU,CAAA;IAC3B,4BAA4B;IAC5B,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,uBAAuB;IACvB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,gCAAgC;IAChC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CACjC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vestig/next",
3
- "version": "0.5.0",
3
+ "version": "0.6.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",