autotel-tanstack 1.13.29 → 1.13.31
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/auto.d.ts +8 -35
- package/dist/auto.d.ts.map +1 -0
- package/dist/auto.js +41 -22
- package/dist/auto.js.map +1 -1
- package/dist/browser/context.d.ts +50 -0
- package/dist/browser/context.d.ts.map +1 -0
- package/dist/browser/context.js +54 -2
- package/dist/browser/context.js.map +1 -1
- package/dist/browser/debug-headers.d.ts +10 -0
- package/dist/browser/debug-headers.d.ts.map +1 -0
- package/dist/browser/debug-headers.js +12 -2
- package/dist/browser/debug-headers.js.map +1 -1
- package/dist/browser/error-reporting.d.ts +39 -0
- package/dist/browser/error-reporting.d.ts.map +1 -0
- package/dist/browser/error-reporting.js +35 -2
- package/dist/browser/error-reporting.js.map +1 -1
- package/dist/browser/handlers.d.ts +14 -0
- package/dist/browser/handlers.d.ts.map +1 -0
- package/dist/browser/handlers.js +10 -2
- package/dist/browser/handlers.js.map +1 -1
- package/dist/browser/index.d.ts +11 -0
- package/dist/browser/index.js +12 -12
- package/dist/browser/loaders.d.ts +31 -0
- package/dist/browser/loaders.d.ts.map +1 -0
- package/dist/browser/loaders.js +29 -2
- package/dist/browser/loaders.js.map +1 -1
- package/dist/browser/metrics.d.ts +56 -0
- package/dist/browser/metrics.d.ts.map +1 -0
- package/dist/browser/metrics.js +48 -2
- package/dist/browser/metrics.js.map +1 -1
- package/dist/browser/middleware.d.ts +42 -0
- package/dist/browser/middleware.d.ts.map +1 -0
- package/dist/browser/middleware.js +36 -2
- package/dist/browser/middleware.js.map +1 -1
- package/dist/browser/server-functions.d.ts +14 -0
- package/dist/browser/server-functions.d.ts.map +1 -0
- package/dist/browser/server-functions.js +16 -2
- package/dist/browser/server-functions.js.map +1 -1
- package/dist/browser/testing.d.ts +85 -0
- package/dist/browser/testing.d.ts.map +1 -0
- package/dist/browser/testing.js +43 -2
- package/dist/browser/testing.js.map +1 -1
- package/dist/browser/types.d.ts +2 -0
- package/dist/browser/types.js +37 -2
- package/dist/browser/types.js.map +1 -1
- package/dist/context.d.ts +5 -3
- package/dist/context.d.ts.map +1 -0
- package/dist/context.js +112 -3
- package/dist/context.js.map +1 -1
- package/dist/debug-headers.d.ts +14 -14
- package/dist/debug-headers.d.ts.map +1 -0
- package/dist/debug-headers.js +62 -4
- package/dist/debug-headers.js.map +1 -1
- package/dist/env-BpFWNnpL.js +30 -0
- package/dist/env-BpFWNnpL.js.map +1 -0
- package/dist/error-reporting.d.ts +37 -37
- package/dist/error-reporting.d.ts.map +1 -0
- package/dist/error-reporting.js +154 -3
- package/dist/error-reporting.js.map +1 -1
- package/dist/handlers.d.ts +5 -4
- package/dist/handlers.d.ts.map +1 -0
- package/dist/handlers.js +192 -6
- package/dist/handlers.js.map +1 -1
- package/dist/index.d.ts +15 -16
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +14 -16
- package/dist/instrument-DS7YCE1R.d.ts +10 -0
- package/dist/instrument-DS7YCE1R.d.ts.map +1 -0
- package/dist/instrument-DdLlMfRi.js +80 -0
- package/dist/instrument-DdLlMfRi.js.map +1 -0
- package/dist/loaders-DrVVY25K.d.ts +2402 -0
- package/dist/loaders-DrVVY25K.d.ts.map +1 -0
- package/dist/loaders.d.ts +2 -116
- package/dist/loaders.js +234 -5
- package/dist/loaders.js.map +1 -1
- package/dist/metrics.d.ts +39 -39
- package/dist/metrics.d.ts.map +1 -0
- package/dist/metrics.js +144 -3
- package/dist/metrics.js.map +1 -1
- package/dist/middleware.d.ts +16 -15
- package/dist/middleware.d.ts.map +1 -0
- package/dist/middleware.js +290 -7
- package/dist/middleware.js.map +1 -1
- package/dist/route-filter-dLg-j3jR.js +33 -0
- package/dist/route-filter-dLg-j3jR.js.map +1 -0
- package/dist/server-functions.d.ts +4 -3
- package/dist/server-functions.d.ts.map +1 -0
- package/dist/server-functions.js +133 -5
- package/dist/server-functions.js.map +1 -1
- package/dist/testing.d.ts +164 -65
- package/dist/testing.d.ts.map +1 -0
- package/dist/testing.js +212 -147
- package/dist/testing.js.map +1 -1
- package/dist/types-BJ7FyVoX.d.ts +87 -0
- package/dist/types-BJ7FyVoX.d.ts.map +1 -0
- package/dist/types-BrccP0yX.js +38 -0
- package/dist/types-BrccP0yX.js.map +1 -0
- package/dist/types-pQgmQa4j.d.ts +154 -0
- package/dist/types-pQgmQa4j.d.ts.map +1 -0
- package/package.json +7 -7
- package/dist/browser/index.js.map +0 -1
- package/dist/chunk-7OXOAS64.js +0 -41
- package/dist/chunk-7OXOAS64.js.map +0 -1
- package/dist/chunk-A7WMQ2BC.js +0 -25
- package/dist/chunk-A7WMQ2BC.js.map +0 -1
- package/dist/chunk-CCME55EK.js +0 -28
- package/dist/chunk-CCME55EK.js.map +0 -1
- package/dist/chunk-CSFIPJC2.js +0 -11
- package/dist/chunk-CSFIPJC2.js.map +0 -1
- package/dist/chunk-DTZCOB4W.js +0 -32
- package/dist/chunk-DTZCOB4W.js.map +0 -1
- package/dist/chunk-EFSKEYDJ.js +0 -20
- package/dist/chunk-EFSKEYDJ.js.map +0 -1
- package/dist/chunk-EGRHWZRV.js +0 -3
- package/dist/chunk-EGRHWZRV.js.map +0 -1
- package/dist/chunk-ESU66L3L.js +0 -92
- package/dist/chunk-ESU66L3L.js.map +0 -1
- package/dist/chunk-EUYFVNYE.js +0 -16
- package/dist/chunk-EUYFVNYE.js.map +0 -1
- package/dist/chunk-FFQ4FJKE.js +0 -185
- package/dist/chunk-FFQ4FJKE.js.map +0 -1
- package/dist/chunk-G526TOMY.js +0 -96
- package/dist/chunk-G526TOMY.js.map +0 -1
- package/dist/chunk-I4LX3LOG.js +0 -35
- package/dist/chunk-I4LX3LOG.js.map +0 -1
- package/dist/chunk-JXO7H6KO.js +0 -10
- package/dist/chunk-JXO7H6KO.js.map +0 -1
- package/dist/chunk-KPXGFKPU.js +0 -193
- package/dist/chunk-KPXGFKPU.js.map +0 -1
- package/dist/chunk-LRA2UVVS.js +0 -210
- package/dist/chunk-LRA2UVVS.js.map +0 -1
- package/dist/chunk-MFYOV2SF.js +0 -32
- package/dist/chunk-MFYOV2SF.js.map +0 -1
- package/dist/chunk-MNP65ZX7.js +0 -21
- package/dist/chunk-MNP65ZX7.js.map +0 -1
- package/dist/chunk-NTY64BKS.js +0 -38
- package/dist/chunk-NTY64BKS.js.map +0 -1
- package/dist/chunk-UMEJU65Q.js +0 -34
- package/dist/chunk-UMEJU65Q.js.map +0 -1
- package/dist/chunk-UTPW3QRT.js +0 -52
- package/dist/chunk-UTPW3QRT.js.map +0 -1
- package/dist/chunk-V3RO5N2M.js +0 -8
- package/dist/chunk-V3RO5N2M.js.map +0 -1
- package/dist/chunk-XXBHZR3M.js +0 -99
- package/dist/chunk-XXBHZR3M.js.map +0 -1
- package/dist/chunk-YQYYPJCK.js +0 -37
- package/dist/chunk-YQYYPJCK.js.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/instrument-DRR7VL63.d.ts +0 -46
- package/dist/types-m5OjZJ-4.d.ts +0 -152
package/dist/browser/metrics.js
CHANGED
|
@@ -1,3 +1,49 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
//#region src/browser/metrics.ts
|
|
2
|
+
/**
|
|
3
|
+
* Browser stub: Returns empty metrics
|
|
4
|
+
*/
|
|
5
|
+
function getMetrics() {
|
|
6
|
+
return {
|
|
7
|
+
requestCount: 0,
|
|
8
|
+
errorCount: 0,
|
|
9
|
+
avgLatency: 0,
|
|
10
|
+
p50Latency: 0,
|
|
11
|
+
p95Latency: 0,
|
|
12
|
+
p99Latency: 0,
|
|
13
|
+
requestsPerSecond: 0,
|
|
14
|
+
endpoints: {}
|
|
15
|
+
};
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Browser stub: No-op
|
|
19
|
+
*/
|
|
20
|
+
function recordTiming(name, durationMs) {}
|
|
21
|
+
/**
|
|
22
|
+
* Browser stub: No-op
|
|
23
|
+
*/
|
|
24
|
+
function recordError(name) {}
|
|
25
|
+
/**
|
|
26
|
+
* Browser stub: No-op
|
|
27
|
+
*/
|
|
28
|
+
function resetMetrics() {}
|
|
29
|
+
/**
|
|
30
|
+
* Browser stub: No-op metrics collector
|
|
31
|
+
*/
|
|
32
|
+
const metricsCollector = {
|
|
33
|
+
recordTiming,
|
|
34
|
+
recordError,
|
|
35
|
+
getMetrics,
|
|
36
|
+
reset: resetMetrics
|
|
37
|
+
};
|
|
38
|
+
/**
|
|
39
|
+
* Browser stub: Returns JSON Response with empty metrics
|
|
40
|
+
*/
|
|
41
|
+
function createMetricsHandler() {
|
|
42
|
+
return () => {
|
|
43
|
+
return Response.json(getMetrics());
|
|
44
|
+
};
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
//#endregion
|
|
48
|
+
export { createMetricsHandler, getMetrics, metricsCollector, recordError, recordTiming, resetMetrics };
|
|
3
49
|
//# sourceMappingURL=metrics.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"metrics.js","names":[],"sources":["../../src/browser/metrics.ts"],"sourcesContent":["/**\n * Browser stub for metrics module\n *\n * Metrics collection only happens on the server.\n * In browser, these are no-op functions.\n */\n\n/**\n * Metrics data structure (stub)\n */\nexport interface MetricsData {\n requestCount: number;\n errorCount: number;\n avgLatency: number;\n p50Latency: number;\n p95Latency: number;\n p99Latency: number;\n requestsPerSecond: number;\n endpoints: Record<\n string,\n {\n count: number;\n errors: number;\n avgLatency: number;\n }\n >;\n}\n\n/**\n * Browser stub: Returns empty metrics\n */\nexport function getMetrics(): MetricsData {\n return {\n requestCount: 0,\n errorCount: 0,\n avgLatency: 0,\n p50Latency: 0,\n p95Latency: 0,\n p99Latency: 0,\n requestsPerSecond: 0,\n endpoints: {},\n };\n}\n\n/**\n * Browser stub: No-op\n */\nexport function recordTiming(name: string, durationMs: number): void {\n void name;\n void durationMs;\n // No-op in browser\n}\n\n/**\n * Browser stub: No-op\n */\nexport function recordError(name: string): void {\n void name;\n // No-op in browser\n}\n\n/**\n * Browser stub: No-op\n */\nexport function resetMetrics(): void {\n // No-op in browser\n}\n\n/**\n * Browser stub: No-op metrics collector\n */\nexport const metricsCollector = {\n recordTiming: recordTiming,\n recordError: recordError,\n getMetrics: getMetrics,\n reset: resetMetrics,\n};\n\n/**\n * Browser stub: Returns JSON Response with empty metrics\n */\nexport function createMetricsHandler(): () => Response {\n return () => {\n return Response.json(getMetrics());\n };\n}\n"],"mappings":";;;;AA+BA,SAAgB,aAA0B;CACxC,OAAO;EACL,cAAc;EACd,YAAY;EACZ,YAAY;EACZ,YAAY;EACZ,YAAY;EACZ,YAAY;EACZ,mBAAmB;EACnB,WAAW,CAAC;CACd;AACF;;;;AAKA,SAAgB,aAAa,MAAc,YAA0B,CAIrE;;;;AAKA,SAAgB,YAAY,MAAoB,CAGhD;;;;AAKA,SAAgB,eAAqB,CAErC;;;;AAKA,MAAa,mBAAmB;CAChB;CACD;CACD;CACZ,OAAO;AACT;;;;AAKA,SAAgB,uBAAuC;CACrD,aAAa;EACX,OAAO,SAAS,KAAK,WAAW,CAAC;CACnC;AACF"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { s as TracingMiddlewareConfig } from "../types-BJ7FyVoX.js";
|
|
2
|
+
|
|
3
|
+
//#region src/browser/middleware.d.ts
|
|
4
|
+
/**
|
|
5
|
+
* Generic middleware handler type
|
|
6
|
+
*/
|
|
7
|
+
interface MiddlewareHandler<TContext = unknown> {
|
|
8
|
+
(opts: {
|
|
9
|
+
next: (ctx?: Partial<TContext>) => Promise<TContext>;
|
|
10
|
+
context: TContext;
|
|
11
|
+
request?: Request;
|
|
12
|
+
pathname?: string;
|
|
13
|
+
data?: unknown;
|
|
14
|
+
method?: string;
|
|
15
|
+
filename?: string;
|
|
16
|
+
functionId?: string;
|
|
17
|
+
signal?: AbortSignal;
|
|
18
|
+
}): Promise<TContext>;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Browser stub: Returns pass-through middleware
|
|
22
|
+
*/
|
|
23
|
+
declare function createTracingMiddleware<TContext = unknown>(config?: TracingMiddlewareConfig): MiddlewareHandler<TContext>;
|
|
24
|
+
/**
|
|
25
|
+
* Browser stub: Returns pass-through middleware
|
|
26
|
+
*/
|
|
27
|
+
declare function tracingMiddleware<TContext = unknown>(config?: TracingMiddlewareConfig): MiddlewareHandler<TContext>;
|
|
28
|
+
/**
|
|
29
|
+
* Browser stub: Returns pass-through middleware
|
|
30
|
+
*/
|
|
31
|
+
declare function functionTracingMiddleware<TContext = unknown>(config?: Omit<TracingMiddlewareConfig, 'type'>): MiddlewareHandler<TContext>;
|
|
32
|
+
/**
|
|
33
|
+
* Browser stub: Returns pass-through handler for createMiddleware().server()
|
|
34
|
+
*/
|
|
35
|
+
declare function createTracingServerHandler<TContext = unknown>(config?: TracingMiddlewareConfig): (opts: {
|
|
36
|
+
next: (ctx?: Partial<TContext>) => Promise<TContext>;
|
|
37
|
+
context: TContext;
|
|
38
|
+
request?: Request;
|
|
39
|
+
}) => Promise<TContext>;
|
|
40
|
+
//#endregion
|
|
41
|
+
export { MiddlewareHandler, createTracingMiddleware, createTracingServerHandler, functionTracingMiddleware, tracingMiddleware };
|
|
42
|
+
//# sourceMappingURL=middleware.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"middleware.d.ts","names":[],"sources":["../../src/browser/middleware.ts"],"mappings":";;;;;;UAYiB,iBAAA;EAAA,CACd,IAAA;IACC,IAAA,GAAO,GAAA,GAAM,OAAA,CAAQ,QAAA,MAAc,OAAA,CAAQ,QAAA;IAC3C,OAAA,EAAS,QAAA;IACT,OAAA,GAAU,OAAA;IACV,QAAA;IACA,IAAA;IACA,MAAA;IACA,QAAA;IACA,UAAA;IACA,MAAA,GAAS,WAAA;EAAA,IACP,OAAA,CAAQ,QAAA;AAAA;;;;iBAME,uBAAA,qBACd,MAAA,GAAS,uBAAA,GACR,iBAAA,CAAkB,QAAA;;;;iBAUL,iBAAA,qBACd,MAAA,GAAS,uBAAA,GACR,iBAAA,CAAkB,QAAA;;;;iBAUL,yBAAA,qBACd,MAAA,GAAS,IAAA,CAAK,uBAAA,YACb,iBAAA,CAAkB,QAAA;;;;iBAUL,0BAAA,qBACd,MAAA,GAAS,uBAAA,IACP,IAAA;EACF,IAAA,GAAO,GAAA,GAAM,OAAA,CAAQ,QAAA,MAAc,OAAA,CAAQ,QAAA;EAC3C,OAAA,EAAS,QAAA;EACT,OAAA,GAAU,OAAA;AAAA,MACN,OAAA,CAAQ,QAAA"}
|
|
@@ -1,3 +1,37 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
//#region src/browser/middleware.ts
|
|
2
|
+
/**
|
|
3
|
+
* Browser stub: Returns pass-through middleware
|
|
4
|
+
*/
|
|
5
|
+
function createTracingMiddleware(config) {
|
|
6
|
+
return async function noopMiddleware(opts) {
|
|
7
|
+
return opts.next();
|
|
8
|
+
};
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* Browser stub: Returns pass-through middleware
|
|
12
|
+
*/
|
|
13
|
+
function tracingMiddleware(config) {
|
|
14
|
+
return async function noopMiddleware(opts) {
|
|
15
|
+
return opts.next();
|
|
16
|
+
};
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Browser stub: Returns pass-through middleware
|
|
20
|
+
*/
|
|
21
|
+
function functionTracingMiddleware(config) {
|
|
22
|
+
return async function noopMiddleware(opts) {
|
|
23
|
+
return opts.next();
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Browser stub: Returns pass-through handler for createMiddleware().server()
|
|
28
|
+
*/
|
|
29
|
+
function createTracingServerHandler(config) {
|
|
30
|
+
return async function noopHandler(opts) {
|
|
31
|
+
return opts.next();
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
//#endregion
|
|
36
|
+
export { createTracingMiddleware, createTracingServerHandler, functionTracingMiddleware, tracingMiddleware };
|
|
3
37
|
//# sourceMappingURL=middleware.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"middleware.js","names":[],"sources":["../../src/browser/middleware.ts"],"sourcesContent":["/**\n * Browser stub for middleware module\n *\n * In browser environments, these functions return pass-through middleware\n * that just calls next() without any tracing overhead.\n */\n\nimport type { TracingMiddlewareConfig } from './types';\n\n/**\n * Generic middleware handler type\n */\nexport interface MiddlewareHandler<TContext = unknown> {\n (opts: {\n next: (ctx?: Partial<TContext>) => Promise<TContext>;\n context: TContext;\n request?: Request;\n pathname?: string;\n data?: unknown;\n method?: string;\n filename?: string;\n functionId?: string;\n signal?: AbortSignal;\n }): Promise<TContext>;\n}\n\n/**\n * Browser stub: Returns pass-through middleware\n */\nexport function createTracingMiddleware<TContext = unknown>(\n config?: TracingMiddlewareConfig,\n): MiddlewareHandler<TContext> {\n void config;\n return async function noopMiddleware(opts) {\n return opts.next();\n };\n}\n\n/**\n * Browser stub: Returns pass-through middleware\n */\nexport function tracingMiddleware<TContext = unknown>(\n config?: TracingMiddlewareConfig,\n): MiddlewareHandler<TContext> {\n void config;\n return async function noopMiddleware(opts) {\n return opts.next();\n };\n}\n\n/**\n * Browser stub: Returns pass-through middleware\n */\nexport function functionTracingMiddleware<TContext = unknown>(\n config?: Omit<TracingMiddlewareConfig, 'type'>,\n): MiddlewareHandler<TContext> {\n void config;\n return async function noopMiddleware(opts) {\n return opts.next();\n };\n}\n\n/**\n * Browser stub: Returns pass-through handler for createMiddleware().server()\n */\nexport function createTracingServerHandler<TContext = unknown>(\n config?: TracingMiddlewareConfig,\n): (opts: {\n next: (ctx?: Partial<TContext>) => Promise<TContext>;\n context: TContext;\n request?: Request;\n}) => Promise<TContext> {\n void config;\n return async function noopHandler(opts) {\n return opts.next();\n };\n}\n"],"mappings":";;;;AA6BA,SAAgB,wBACd,QAC6B;CAE7B,OAAO,eAAe,eAAe,MAAM;EACzC,OAAO,KAAK,KAAK;CACnB;AACF;;;;AAKA,SAAgB,kBACd,QAC6B;CAE7B,OAAO,eAAe,eAAe,MAAM;EACzC,OAAO,KAAK,KAAK;CACnB;AACF;;;;AAKA,SAAgB,0BACd,QAC6B;CAE7B,OAAO,eAAe,eAAe,MAAM;EACzC,OAAO,KAAK,KAAK;CACnB;AACF;;;;AAKA,SAAgB,2BACd,QAKsB;CAEtB,OAAO,eAAe,YAAY,MAAM;EACtC,OAAO,KAAK,KAAK;CACnB;AACF"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { o as TraceServerFnConfig } from "../types-BJ7FyVoX.js";
|
|
2
|
+
|
|
3
|
+
//#region src/browser/server-functions.d.ts
|
|
4
|
+
/**
|
|
5
|
+
* Browser stub: Returns the server function unchanged
|
|
6
|
+
*/
|
|
7
|
+
declare function traceServerFn<T extends (...args: unknown[]) => Promise<unknown>>(serverFn: T, config?: TraceServerFnConfig): T;
|
|
8
|
+
/**
|
|
9
|
+
* Browser stub: Returns the createServerFn unchanged
|
|
10
|
+
*/
|
|
11
|
+
declare function createTracedServerFnFactory<TCreateServerFn extends (...args: unknown[]) => unknown>(createServerFnOriginal: TCreateServerFn, defaultConfig?: Omit<TraceServerFnConfig, 'name'>): TCreateServerFn;
|
|
12
|
+
//#endregion
|
|
13
|
+
export { createTracedServerFnFactory, traceServerFn };
|
|
14
|
+
//# sourceMappingURL=server-functions.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"server-functions.d.ts","names":[],"sources":["../../src/browser/server-functions.ts"],"mappings":";;;;;;iBAYgB,aAAA,eACA,IAAA,gBAAoB,OAAA,WAClC,QAAA,EAAU,CAAA,EAAG,MAAA,GAAS,mBAAA,GAAsB,CAAA;;;;iBAQ9B,2BAAA,6BACc,IAAA,yBAE5B,sBAAA,EAAwB,eAAA,EACxB,aAAA,GAAgB,IAAA,CAAK,mBAAA,YACpB,eAAA"}
|
|
@@ -1,3 +1,17 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
//#region src/browser/server-functions.ts
|
|
2
|
+
/**
|
|
3
|
+
* Browser stub: Returns the server function unchanged
|
|
4
|
+
*/
|
|
5
|
+
function traceServerFn(serverFn, config) {
|
|
6
|
+
return serverFn;
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* Browser stub: Returns the createServerFn unchanged
|
|
10
|
+
*/
|
|
11
|
+
function createTracedServerFnFactory(createServerFnOriginal, defaultConfig) {
|
|
12
|
+
return createServerFnOriginal;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
//#endregion
|
|
16
|
+
export { createTracedServerFnFactory, traceServerFn };
|
|
3
17
|
//# sourceMappingURL=server-functions.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"server-functions.js","names":[],"sources":["../../src/browser/server-functions.ts"],"sourcesContent":["/**\n * Browser stub for server-functions module\n *\n * In browser environments, these functions are no-ops that just return\n * the original functions without any tracing overhead.\n */\n\nimport type { TraceServerFnConfig } from './types';\n\n/**\n * Browser stub: Returns the server function unchanged\n */\nexport function traceServerFn<\n T extends (...args: unknown[]) => Promise<unknown>,\n>(serverFn: T, config?: TraceServerFnConfig): T {\n void config;\n return serverFn;\n}\n\n/**\n * Browser stub: Returns the createServerFn unchanged\n */\nexport function createTracedServerFnFactory<\n TCreateServerFn extends (...args: unknown[]) => unknown,\n>(\n createServerFnOriginal: TCreateServerFn,\n defaultConfig?: Omit<TraceServerFnConfig, 'name'>,\n): TCreateServerFn {\n void defaultConfig;\n return createServerFnOriginal;\n}\n"],"mappings":";;;;AAYA,SAAgB,cAEd,UAAa,QAAiC;CAE9C,OAAO;AACT;;;;AAKA,SAAgB,4BAGd,wBACA,eACiB;CAEjB,OAAO;AACT"}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
//#region src/browser/testing.d.ts
|
|
2
|
+
/**
|
|
3
|
+
* Browser stub for testing module
|
|
4
|
+
*
|
|
5
|
+
* Testing utilities are server-side only.
|
|
6
|
+
* In browser, these return no-op implementations.
|
|
7
|
+
*/
|
|
8
|
+
/**
|
|
9
|
+
* Test span structure (stub)
|
|
10
|
+
*/
|
|
11
|
+
interface TestSpan {
|
|
12
|
+
name: string;
|
|
13
|
+
attributes: Record<string, unknown>;
|
|
14
|
+
status: {
|
|
15
|
+
code: number;
|
|
16
|
+
message?: string;
|
|
17
|
+
};
|
|
18
|
+
events: Array<{
|
|
19
|
+
name: string;
|
|
20
|
+
attributes?: Record<string, unknown>;
|
|
21
|
+
}>;
|
|
22
|
+
duration: number;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Test collector structure (stub)
|
|
26
|
+
*/
|
|
27
|
+
interface TestCollector {
|
|
28
|
+
getSpans(): TestSpan[];
|
|
29
|
+
getSpansByName(name: string): TestSpan[];
|
|
30
|
+
clear(): void;
|
|
31
|
+
waitForSpans(count: number, timeout?: number): Promise<TestSpan[]>;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Browser stub: Returns empty collector
|
|
35
|
+
*/
|
|
36
|
+
declare function createTestCollector(): TestCollector;
|
|
37
|
+
/**
|
|
38
|
+
* Browser stub: No-op
|
|
39
|
+
*/
|
|
40
|
+
declare function assertSpanCreated(collector: TestCollector, name: string): void;
|
|
41
|
+
/**
|
|
42
|
+
* Browser stub: No-op
|
|
43
|
+
*/
|
|
44
|
+
declare function assertSpanHasAttribute(collector: TestCollector, name: string, key: string, value?: unknown): void;
|
|
45
|
+
/**
|
|
46
|
+
* Serialized span type (browser stub - mirrors server SerializedSpan).
|
|
47
|
+
*
|
|
48
|
+
* Defined as a `type` (not `interface`) so it is assignable to
|
|
49
|
+
* `Record<string, unknown>` in TypeScript 6+ strict mode.
|
|
50
|
+
*/
|
|
51
|
+
type SerializedSpan = {
|
|
52
|
+
name: string;
|
|
53
|
+
spanId: string;
|
|
54
|
+
traceId: string;
|
|
55
|
+
parentSpanId?: string;
|
|
56
|
+
attributes?: Record<string, unknown>;
|
|
57
|
+
status: {
|
|
58
|
+
code: number;
|
|
59
|
+
message?: string;
|
|
60
|
+
};
|
|
61
|
+
durationMs: number;
|
|
62
|
+
};
|
|
63
|
+
/**
|
|
64
|
+
* Accepts either a raw `Request` (legacy) or a TanStack Router context
|
|
65
|
+
* object containing `{ request: Request }` (Router 1.168+).
|
|
66
|
+
*/
|
|
67
|
+
type HandlerInput = Request | {
|
|
68
|
+
request: Request;
|
|
69
|
+
};
|
|
70
|
+
type CreateFileRoute = (path: string) => (options: any) => any;
|
|
71
|
+
/**
|
|
72
|
+
* Browser stub: createTestSpansRoute is server-only.
|
|
73
|
+
*/
|
|
74
|
+
declare function createTestSpansRoute(createFileRoute: CreateFileRoute, path?: string): unknown;
|
|
75
|
+
/**
|
|
76
|
+
* Browser stub: test-spans handlers are server-only.
|
|
77
|
+
* Returns no-op handlers that always return 404.
|
|
78
|
+
*/
|
|
79
|
+
declare function createTestSpansHandlers(): {
|
|
80
|
+
GET: (input: HandlerInput) => Response;
|
|
81
|
+
DELETE: (input: HandlerInput) => Response;
|
|
82
|
+
};
|
|
83
|
+
//#endregion
|
|
84
|
+
export { SerializedSpan, TestCollector, TestSpan, assertSpanCreated, assertSpanHasAttribute, createTestCollector, createTestSpansHandlers, createTestSpansRoute };
|
|
85
|
+
//# sourceMappingURL=testing.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"testing.d.ts","names":[],"sources":["../../src/browser/testing.ts"],"mappings":";;AAUA;;;;;;;;UAAiB,QAAA;EACf,IAAA;EACA,UAAA,EAAY,MAAA;EACZ,MAAA;IAAU,IAAA;IAAc,OAAA;EAAA;EACxB,MAAA,EAAQ,KAAA;IAAQ,IAAA;IAAc,UAAA,GAAa,MAAA;EAAA;EAC3C,QAAA;AAAA;AAAQ;AAMV;;AANU,UAMO,aAAA;EACf,QAAA,IAAY,QAAA;EACZ,cAAA,CAAe,IAAA,WAAe,QAAA;EAC9B,KAAA;EACA,YAAA,CAAa,KAAA,UAAe,OAAA,YAAmB,OAAA,CAAQ,QAAA;AAAA;;;;iBAMzC,mBAAA,IAAuB,aAAa;;;;iBAYpC,iBAAA,CACd,SAAA,EAAW,aAAa,EACxB,IAAA;;;;iBAUc,sBAAA,CACd,SAAA,EAAW,aAAa,EACxB,IAAA,UACA,GAAA,UACA,KAAA;;AAlC+D;AAMjE;;;;KA2CY,cAAA;EACV,IAAA;EACA,MAAA;EACA,OAAA;EACA,YAAA;EACA,UAAA,GAAa,MAAM;EACnB,MAAA;IAAU,IAAA;IAAc,OAAA;EAAA;EACxB,UAAA;AAAA;;;;;KAOG,YAAA,GAAe,OAAA;EAAY,OAAA,EAAS,OAAO;AAAA;AAAA,KAG3C,eAAA,IAAmB,IAAA,cAAkB,OAAY;AAhCrC;AAejB;;AAfiB,iBAqCD,oBAAA,CACd,eAAA,EAAiB,eAAe,EAChC,IAAA;;;;;iBAWc,uBAAA;EACd,GAAA,GAAM,KAAA,EAAO,YAAA,KAAiB,QAAA;EAC9B,MAAA,GAAS,KAAA,EAAO,YAAA,KAAiB,QAAA;AAAA"}
|
package/dist/browser/testing.js
CHANGED
|
@@ -1,3 +1,44 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
//#region src/browser/testing.ts
|
|
2
|
+
/**
|
|
3
|
+
* Browser stub: Returns empty collector
|
|
4
|
+
*/
|
|
5
|
+
function createTestCollector() {
|
|
6
|
+
return {
|
|
7
|
+
getSpans: () => [],
|
|
8
|
+
getSpansByName: () => [],
|
|
9
|
+
clear: () => {},
|
|
10
|
+
waitForSpans: async () => []
|
|
11
|
+
};
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Browser stub: No-op
|
|
15
|
+
*/
|
|
16
|
+
function assertSpanCreated(collector, name) {}
|
|
17
|
+
/**
|
|
18
|
+
* Browser stub: No-op
|
|
19
|
+
*/
|
|
20
|
+
function assertSpanHasAttribute(collector, name, key, value) {}
|
|
21
|
+
/**
|
|
22
|
+
* Browser stub: createTestSpansRoute is server-only.
|
|
23
|
+
*/
|
|
24
|
+
function createTestSpansRoute(createFileRoute, path) {
|
|
25
|
+
throw new Error("createTestSpansRoute is server-only");
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Browser stub: test-spans handlers are server-only.
|
|
29
|
+
* Returns no-op handlers that always return 404.
|
|
30
|
+
*/
|
|
31
|
+
function createTestSpansHandlers() {
|
|
32
|
+
return {
|
|
33
|
+
GET(input) {
|
|
34
|
+
return Response.json({ error: "createTestSpansHandlers is server-only" }, { status: 404 });
|
|
35
|
+
},
|
|
36
|
+
DELETE(input) {
|
|
37
|
+
return Response.json({ error: "createTestSpansHandlers is server-only" }, { status: 404 });
|
|
38
|
+
}
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
//#endregion
|
|
43
|
+
export { assertSpanCreated, assertSpanHasAttribute, createTestCollector, createTestSpansHandlers, createTestSpansRoute };
|
|
3
44
|
//# sourceMappingURL=testing.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"testing.js","names":[],"sources":["../../src/browser/testing.ts"],"sourcesContent":["/**\n * Browser stub for testing module\n *\n * Testing utilities are server-side only.\n * In browser, these return no-op implementations.\n */\n\n/**\n * Test span structure (stub)\n */\nexport interface TestSpan {\n name: string;\n attributes: Record<string, unknown>;\n status: { code: number; message?: string };\n events: Array<{ name: string; attributes?: Record<string, unknown> }>;\n duration: number;\n}\n\n/**\n * Test collector structure (stub)\n */\nexport interface TestCollector {\n getSpans(): TestSpan[];\n getSpansByName(name: string): TestSpan[];\n clear(): void;\n waitForSpans(count: number, timeout?: number): Promise<TestSpan[]>;\n}\n\n/**\n * Browser stub: Returns empty collector\n */\nexport function createTestCollector(): TestCollector {\n return {\n getSpans: () => [],\n getSpansByName: () => [],\n clear: () => {},\n waitForSpans: async () => [],\n };\n}\n\n/**\n * Browser stub: No-op\n */\nexport function assertSpanCreated(\n collector: TestCollector,\n name: string,\n): void {\n void collector;\n void name;\n // No-op in browser\n}\n\n/**\n * Browser stub: No-op\n */\nexport function assertSpanHasAttribute(\n collector: TestCollector,\n name: string,\n key: string,\n value?: unknown,\n): void {\n void collector;\n void name;\n void key;\n void value;\n // No-op in browser\n}\n\n/**\n * Serialized span type (browser stub - mirrors server SerializedSpan).\n *\n * Defined as a `type` (not `interface`) so it is assignable to\n * `Record<string, unknown>` in TypeScript 6+ strict mode.\n */\nexport type SerializedSpan = {\n name: string;\n spanId: string;\n traceId: string;\n parentSpanId?: string;\n attributes?: Record<string, unknown>;\n status: { code: number; message?: string };\n durationMs: number;\n};\n\n/**\n * Accepts either a raw `Request` (legacy) or a TanStack Router context\n * object containing `{ request: Request }` (Router 1.168+).\n */\ntype HandlerInput = Request | { request: Request };\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\ntype CreateFileRoute = (path: string) => (options: any) => any;\n\n/**\n * Browser stub: createTestSpansRoute is server-only.\n */\nexport function createTestSpansRoute(\n createFileRoute: CreateFileRoute,\n path?: string,\n): unknown {\n void createFileRoute;\n void path;\n throw new Error('createTestSpansRoute is server-only');\n}\n\n/**\n * Browser stub: test-spans handlers are server-only.\n * Returns no-op handlers that always return 404.\n */\nexport function createTestSpansHandlers(): {\n GET: (input: HandlerInput) => Response;\n DELETE: (input: HandlerInput) => Response;\n} {\n return {\n GET(input: HandlerInput): Response {\n void input;\n return Response.json(\n { error: 'createTestSpansHandlers is server-only' },\n { status: 404 },\n );\n },\n DELETE(input: HandlerInput): Response {\n void input;\n return Response.json(\n { error: 'createTestSpansHandlers is server-only' },\n { status: 404 },\n );\n },\n };\n}\n"],"mappings":";;;;AA+BA,SAAgB,sBAAqC;CACnD,OAAO;EACL,gBAAgB,CAAC;EACjB,sBAAsB,CAAC;EACvB,aAAa,CAAC;EACd,cAAc,YAAY,CAAC;CAC7B;AACF;;;;AAKA,SAAgB,kBACd,WACA,MACM,CAIR;;;;AAKA,SAAgB,uBACd,WACA,MACA,KACA,OACM,CAMR;;;;AA8BA,SAAgB,qBACd,iBACA,MACS;CAGT,MAAM,IAAI,MAAM,qCAAqC;AACvD;;;;;AAMA,SAAgB,0BAGd;CACA,OAAO;EACL,IAAI,OAA+B;GAEjC,OAAO,SAAS,KACd,EAAE,OAAO,yCAAyC,GAClD,EAAE,QAAQ,IAAI,CAChB;EACF;EACA,OAAO,OAA+B;GAEpC,OAAO,SAAS,KACd,EAAE,OAAO,yCAAyC,GAClD,EAAE,QAAQ,IAAI,CAChB;EACF;CACF;AACF"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import { a as TraceLoaderConfig, c as WrapStartHandlerConfig, i as TanStackInstrumentationConfig, n as DEFAULT_CONFIG, o as TraceServerFnConfig, r as SPAN_ATTRIBUTES, s as TracingMiddlewareConfig, t as Attributes } from "../types-BJ7FyVoX.js";
|
|
2
|
+
export { Attributes, DEFAULT_CONFIG, SPAN_ATTRIBUTES, TanStackInstrumentationConfig, TraceLoaderConfig, TraceServerFnConfig, TracingMiddlewareConfig, WrapStartHandlerConfig };
|
package/dist/browser/types.js
CHANGED
|
@@ -1,3 +1,38 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
//#region src/browser/types.ts
|
|
2
|
+
/**
|
|
3
|
+
* Default configuration values
|
|
4
|
+
*/
|
|
5
|
+
const DEFAULT_CONFIG = {
|
|
6
|
+
captureArgs: true,
|
|
7
|
+
captureResults: false,
|
|
8
|
+
captureErrors: true,
|
|
9
|
+
captureHeaders: ["x-request-id"],
|
|
10
|
+
excludePaths: [],
|
|
11
|
+
sampling: "adaptive"
|
|
12
|
+
};
|
|
13
|
+
/**
|
|
14
|
+
* Span attribute keys (stub - values are strings)
|
|
15
|
+
*/
|
|
16
|
+
const SPAN_ATTRIBUTES = {
|
|
17
|
+
HTTP_REQUEST_METHOD: "http.request.method",
|
|
18
|
+
HTTP_RESPONSE_STATUS_CODE: "http.response.status_code",
|
|
19
|
+
URL_PATH: "url.path",
|
|
20
|
+
URL_QUERY: "url.query",
|
|
21
|
+
URL_FULL: "url.full",
|
|
22
|
+
RPC_SYSTEM: "rpc.system",
|
|
23
|
+
RPC_METHOD: "rpc.method",
|
|
24
|
+
TANSTACK_TYPE: "tanstack.type",
|
|
25
|
+
TANSTACK_SERVER_FN_NAME: "tanstack.server_function.name",
|
|
26
|
+
TANSTACK_SERVER_FN_METHOD: "tanstack.server_function.method",
|
|
27
|
+
TANSTACK_SERVER_FN_ARGS: "tanstack.server_function.args",
|
|
28
|
+
TANSTACK_SERVER_FN_RESULT: "tanstack.server_function.result",
|
|
29
|
+
TANSTACK_LOADER_ROUTE_ID: "tanstack.loader.route_id",
|
|
30
|
+
TANSTACK_LOADER_TYPE: "tanstack.loader.type",
|
|
31
|
+
TANSTACK_LOADER_PARAMS: "tanstack.loader.params",
|
|
32
|
+
TANSTACK_MIDDLEWARE_NAME: "tanstack.middleware.name",
|
|
33
|
+
TANSTACK_REQUEST_DURATION_MS: "tanstack.request.duration_ms"
|
|
34
|
+
};
|
|
35
|
+
|
|
36
|
+
//#endregion
|
|
37
|
+
export { DEFAULT_CONFIG, SPAN_ATTRIBUTES };
|
|
3
38
|
//# sourceMappingURL=types.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"types.js","names":[],"sources":["../../src/browser/types.ts"],"sourcesContent":["/**\n * Browser stub for types module\n *\n * Provides type definitions without importing from @opentelemetry/api\n */\n\n/**\n * OpenTelemetry-compatible Attributes type (browser stub)\n */\nexport type Attributes = Record<string, string | number | boolean | undefined>;\n\n/**\n * Configuration options for TanStack Start instrumentation\n */\nexport interface TanStackInstrumentationConfig {\n service?: string;\n captureArgs?: boolean;\n captureResults?: boolean;\n captureErrors?: boolean;\n captureHeaders?: string[];\n excludePaths?: (string | RegExp)[];\n sampling?: 'always' | 'adaptive' | 'never';\n customAttributes?: (context: {\n type: 'request' | 'serverFn' | 'loader' | 'beforeLoad' | 'middleware';\n name: string;\n request?: Request;\n args?: unknown;\n result?: unknown;\n }) => Attributes;\n}\n\n/**\n * Configuration specific to tracing middleware\n */\nexport interface TracingMiddlewareConfig extends TanStackInstrumentationConfig {\n type?: 'request' | 'function';\n}\n\n/**\n * Configuration for server function tracing\n */\nexport interface TraceServerFnConfig {\n name?: string;\n captureArgs?: boolean;\n captureResults?: boolean;\n}\n\n/**\n * Configuration for loader tracing\n */\nexport interface TraceLoaderConfig {\n name?: string;\n captureParams?: boolean;\n captureResult?: boolean;\n}\n\n/**\n * Configuration for handler wrapper\n */\nexport interface WrapStartHandlerConfig extends TanStackInstrumentationConfig {\n endpoint?: string;\n headers?: Record<string, string>;\n}\n\n/**\n * Default configuration values\n */\nexport const DEFAULT_CONFIG: Required<\n Omit<TanStackInstrumentationConfig, 'customAttributes' | 'service'>\n> = {\n captureArgs: true,\n captureResults: false,\n captureErrors: true,\n captureHeaders: ['x-request-id'],\n excludePaths: [],\n sampling: 'adaptive',\n};\n\n/**\n * Span attribute keys (stub - values are strings)\n */\nexport const SPAN_ATTRIBUTES = {\n HTTP_REQUEST_METHOD: 'http.request.method',\n HTTP_RESPONSE_STATUS_CODE: 'http.response.status_code',\n URL_PATH: 'url.path',\n URL_QUERY: 'url.query',\n URL_FULL: 'url.full',\n RPC_SYSTEM: 'rpc.system',\n RPC_METHOD: 'rpc.method',\n TANSTACK_TYPE: 'tanstack.type',\n TANSTACK_SERVER_FN_NAME: 'tanstack.server_function.name',\n TANSTACK_SERVER_FN_METHOD: 'tanstack.server_function.method',\n TANSTACK_SERVER_FN_ARGS: 'tanstack.server_function.args',\n TANSTACK_SERVER_FN_RESULT: 'tanstack.server_function.result',\n TANSTACK_LOADER_ROUTE_ID: 'tanstack.loader.route_id',\n TANSTACK_LOADER_TYPE: 'tanstack.loader.type',\n TANSTACK_LOADER_PARAMS: 'tanstack.loader.params',\n TANSTACK_MIDDLEWARE_NAME: 'tanstack.middleware.name',\n TANSTACK_REQUEST_DURATION_MS: 'tanstack.request.duration_ms',\n} as const;\n"],"mappings":";;;;AAmEA,MAAa,iBAET;CACF,aAAa;CACb,gBAAgB;CAChB,eAAe;CACf,gBAAgB,CAAC,cAAc;CAC/B,cAAc,CAAC;CACf,UAAU;AACZ;;;;AAKA,MAAa,kBAAkB;CAC7B,qBAAqB;CACrB,2BAA2B;CAC3B,UAAU;CACV,WAAW;CACX,UAAU;CACV,YAAY;CACZ,YAAY;CACZ,eAAe;CACf,yBAAyB;CACzB,2BAA2B;CAC3B,yBAAyB;CACzB,2BAA2B;CAC3B,0BAA0B;CAC1B,sBAAsB;CACtB,wBAAwB;CACxB,0BAA0B;CAC1B,8BAA8B;AAChC"}
|
package/dist/context.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import { Context } from
|
|
1
|
+
import { Context } from "@opentelemetry/api";
|
|
2
2
|
|
|
3
|
+
//#region src/context.d.ts
|
|
3
4
|
/**
|
|
4
5
|
* Type representing values that can be used to initialize Headers
|
|
5
6
|
* This is equivalent to the DOM's HeadersInit type but works in Node.js
|
|
@@ -90,5 +91,6 @@ declare function runInContext<T>(parentContext: Context, fn: () => T): T;
|
|
|
90
91
|
* @returns The current active OpenTelemetry context
|
|
91
92
|
*/
|
|
92
93
|
declare function getActiveContext(): Context;
|
|
93
|
-
|
|
94
|
-
export {
|
|
94
|
+
//#endregion
|
|
95
|
+
export { HeadersInitType, createTracedHeaders, extractContextFromRequest, getActiveContext, injectContextToHeaders, runInContext };
|
|
96
|
+
//# sourceMappingURL=context.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"context.d.ts","names":[],"sources":["../src/context.ts"],"mappings":";;;;;AAWA;;KAAY,eAAA,GACR,OAAA,GACA,MAAM;;AAAA;AAqBV;;;;;;;;AAAoE;AAuCpE;;;;;;;iBAvCgB,yBAAA,CAA0B,OAAA,EAAS,OAAA,GAAU,OAAO;;;;;;;AA0C1D;AA+BV;;;;;;;;;;;;iBAlCgB,sBAAA,CACd,OAAA,EAAS,OAAA,EACT,GAAA,GAAM,OAAA,GACL,OAAA;;AAkCO;AAuBV;;;;;;;;;;;;;;;AAAuE;AASvE;;iBAnCgB,mBAAA,CACd,eAAA,GAAkB,eAAA,EAClB,GAAA,GAAM,OAAA,GACL,OAAA;;AAgCwC;;;;;;;;;;;;;;;;;iBAT3B,YAAA,IAAgB,aAAA,EAAe,OAAA,EAAS,EAAA,QAAU,CAAA,GAAI,CAAA;;;;;;iBAStD,gBAAA,IAAoB,OAAO"}
|
package/dist/context.js
CHANGED
|
@@ -1,4 +1,113 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
//#
|
|
1
|
+
import { ROOT_CONTEXT, context, propagation } from "@opentelemetry/api";
|
|
2
|
+
|
|
3
|
+
//#region src/context.ts
|
|
4
|
+
/**
|
|
5
|
+
* Extract OpenTelemetry context from HTTP request headers
|
|
6
|
+
*
|
|
7
|
+
* This function extracts W3C Trace Context (traceparent, tracestate)
|
|
8
|
+
* and Baggage from request headers to enable distributed tracing.
|
|
9
|
+
*
|
|
10
|
+
* @param request - The incoming HTTP request
|
|
11
|
+
* @returns OpenTelemetry context with extracted trace information
|
|
12
|
+
*
|
|
13
|
+
* @example
|
|
14
|
+
* ```typescript
|
|
15
|
+
* const parentContext = extractContextFromRequest(request);
|
|
16
|
+
* context.with(parentContext, async () => {
|
|
17
|
+
* // Spans created here will be children of the extracted context
|
|
18
|
+
* await trace('my-operation', async (ctx) => { ... });
|
|
19
|
+
* });
|
|
20
|
+
* ```
|
|
21
|
+
*/
|
|
22
|
+
function extractContextFromRequest(request) {
|
|
23
|
+
const carrier = {};
|
|
24
|
+
const traceparent = request.headers.get("traceparent");
|
|
25
|
+
const tracestate = request.headers.get("tracestate");
|
|
26
|
+
const baggage = request.headers.get("baggage");
|
|
27
|
+
if (traceparent) carrier.traceparent = traceparent;
|
|
28
|
+
if (tracestate) carrier.tracestate = tracestate;
|
|
29
|
+
if (baggage) carrier.baggage = baggage;
|
|
30
|
+
if (Object.keys(carrier).length === 0) return ROOT_CONTEXT;
|
|
31
|
+
return propagation.extract(context.active(), carrier);
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Inject OpenTelemetry context into HTTP headers
|
|
35
|
+
*
|
|
36
|
+
* This function injects W3C Trace Context (traceparent, tracestate)
|
|
37
|
+
* and Baggage into headers for outgoing requests.
|
|
38
|
+
*
|
|
39
|
+
* @param headers - Headers object to inject context into
|
|
40
|
+
* @param ctx - Optional context to inject (defaults to active context)
|
|
41
|
+
* @returns The headers object with injected trace context
|
|
42
|
+
*
|
|
43
|
+
* @example
|
|
44
|
+
* ```typescript
|
|
45
|
+
* const headers = new Headers();
|
|
46
|
+
* injectContextToHeaders(headers);
|
|
47
|
+
*
|
|
48
|
+
* // Now use headers in outgoing fetch
|
|
49
|
+
* await fetch('https://api.example.com', { headers });
|
|
50
|
+
* ```
|
|
51
|
+
*/
|
|
52
|
+
function injectContextToHeaders(headers, ctx) {
|
|
53
|
+
const carrier = {};
|
|
54
|
+
propagation.inject(ctx ?? context.active(), carrier);
|
|
55
|
+
for (const [key, value] of Object.entries(carrier)) headers.set(key, value);
|
|
56
|
+
return headers;
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Create a new Headers object with injected trace context
|
|
60
|
+
*
|
|
61
|
+
* Convenience function that creates a new Headers object
|
|
62
|
+
* with the current trace context already injected.
|
|
63
|
+
*
|
|
64
|
+
* @param existingHeaders - Optional existing headers to include
|
|
65
|
+
* @param ctx - Optional context to inject (defaults to active context)
|
|
66
|
+
* @returns New Headers object with trace context
|
|
67
|
+
*
|
|
68
|
+
* @example
|
|
69
|
+
* ```typescript
|
|
70
|
+
* const headers = createTracedHeaders({ 'Content-Type': 'application/json' });
|
|
71
|
+
* await fetch('https://api.example.com', {
|
|
72
|
+
* method: 'POST',
|
|
73
|
+
* headers,
|
|
74
|
+
* body: JSON.stringify(data),
|
|
75
|
+
* });
|
|
76
|
+
* ```
|
|
77
|
+
*/
|
|
78
|
+
function createTracedHeaders(existingHeaders, ctx) {
|
|
79
|
+
return injectContextToHeaders(new Headers(existingHeaders), ctx);
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* Run a function within a specific OpenTelemetry context
|
|
83
|
+
*
|
|
84
|
+
* This is a convenience wrapper around context.with() that
|
|
85
|
+
* provides better TypeScript inference.
|
|
86
|
+
*
|
|
87
|
+
* @param parentContext - The context to run within
|
|
88
|
+
* @param fn - The function to execute
|
|
89
|
+
* @returns The result of the function
|
|
90
|
+
*
|
|
91
|
+
* @example
|
|
92
|
+
* ```typescript
|
|
93
|
+
* const parentContext = extractContextFromRequest(request);
|
|
94
|
+
* const result = await runInContext(parentContext, async () => {
|
|
95
|
+
* return await processRequest();
|
|
96
|
+
* });
|
|
97
|
+
* ```
|
|
98
|
+
*/
|
|
99
|
+
function runInContext(parentContext, fn) {
|
|
100
|
+
return context.with(parentContext, fn);
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
* Get the current active context
|
|
104
|
+
*
|
|
105
|
+
* @returns The current active OpenTelemetry context
|
|
106
|
+
*/
|
|
107
|
+
function getActiveContext() {
|
|
108
|
+
return context.active();
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
//#endregion
|
|
112
|
+
export { createTracedHeaders, extractContextFromRequest, getActiveContext, injectContextToHeaders, runInContext };
|
|
4
113
|
//# sourceMappingURL=context.js.map
|
package/dist/context.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"context.js","names":[],"sources":["../src/context.ts"],"sourcesContent":["import {\n context,\n propagation,\n type Context,\n ROOT_CONTEXT,\n} from '@opentelemetry/api';\n\n/**\n * Type representing values that can be used to initialize Headers\n * This is equivalent to the DOM's HeadersInit type but works in Node.js\n */\nexport type HeadersInitType =\n | Headers\n | Record<string, string>\n | [string, string][];\n\n/**\n * Extract OpenTelemetry context from HTTP request headers\n *\n * This function extracts W3C Trace Context (traceparent, tracestate)\n * and Baggage from request headers to enable distributed tracing.\n *\n * @param request - The incoming HTTP request\n * @returns OpenTelemetry context with extracted trace information\n *\n * @example\n * ```typescript\n * const parentContext = extractContextFromRequest(request);\n * context.with(parentContext, async () => {\n * // Spans created here will be children of the extracted context\n * await trace('my-operation', async (ctx) => { ... });\n * });\n * ```\n */\nexport function extractContextFromRequest(request: Request): Context {\n const carrier: Record<string, string> = {};\n\n // Extract W3C Trace Context headers\n const traceparent = request.headers.get('traceparent');\n const tracestate = request.headers.get('tracestate');\n const baggage = request.headers.get('baggage');\n\n if (traceparent) carrier.traceparent = traceparent;\n if (tracestate) carrier.tracestate = tracestate;\n if (baggage) carrier.baggage = baggage;\n\n // Return ROOT_CONTEXT if no trace headers present\n if (Object.keys(carrier).length === 0) {\n return ROOT_CONTEXT;\n }\n\n return propagation.extract(context.active(), carrier);\n}\n\n/**\n * Inject OpenTelemetry context into HTTP headers\n *\n * This function injects W3C Trace Context (traceparent, tracestate)\n * and Baggage into headers for outgoing requests.\n *\n * @param headers - Headers object to inject context into\n * @param ctx - Optional context to inject (defaults to active context)\n * @returns The headers object with injected trace context\n *\n * @example\n * ```typescript\n * const headers = new Headers();\n * injectContextToHeaders(headers);\n *\n * // Now use headers in outgoing fetch\n * await fetch('https://api.example.com', { headers });\n * ```\n */\nexport function injectContextToHeaders(\n headers: Headers,\n ctx?: Context,\n): Headers {\n const carrier: Record<string, string> = {};\n propagation.inject(ctx ?? context.active(), carrier);\n\n for (const [key, value] of Object.entries(carrier)) {\n headers.set(key, value);\n }\n\n return headers;\n}\n\n/**\n * Create a new Headers object with injected trace context\n *\n * Convenience function that creates a new Headers object\n * with the current trace context already injected.\n *\n * @param existingHeaders - Optional existing headers to include\n * @param ctx - Optional context to inject (defaults to active context)\n * @returns New Headers object with trace context\n *\n * @example\n * ```typescript\n * const headers = createTracedHeaders({ 'Content-Type': 'application/json' });\n * await fetch('https://api.example.com', {\n * method: 'POST',\n * headers,\n * body: JSON.stringify(data),\n * });\n * ```\n */\nexport function createTracedHeaders(\n existingHeaders?: HeadersInitType,\n ctx?: Context,\n): Headers {\n const headers = new Headers(existingHeaders);\n return injectContextToHeaders(headers, ctx);\n}\n\n/**\n * Run a function within a specific OpenTelemetry context\n *\n * This is a convenience wrapper around context.with() that\n * provides better TypeScript inference.\n *\n * @param parentContext - The context to run within\n * @param fn - The function to execute\n * @returns The result of the function\n *\n * @example\n * ```typescript\n * const parentContext = extractContextFromRequest(request);\n * const result = await runInContext(parentContext, async () => {\n * return await processRequest();\n * });\n * ```\n */\nexport function runInContext<T>(parentContext: Context, fn: () => T): T {\n return context.with(parentContext, fn);\n}\n\n/**\n * Get the current active context\n *\n * @returns The current active OpenTelemetry context\n */\nexport function getActiveContext(): Context {\n return context.active();\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAkCA,SAAgB,0BAA0B,SAA2B;CACnE,MAAM,UAAkC,CAAC;CAGzC,MAAM,cAAc,QAAQ,QAAQ,IAAI,aAAa;CACrD,MAAM,aAAa,QAAQ,QAAQ,IAAI,YAAY;CACnD,MAAM,UAAU,QAAQ,QAAQ,IAAI,SAAS;CAE7C,IAAI,aAAa,QAAQ,cAAc;CACvC,IAAI,YAAY,QAAQ,aAAa;CACrC,IAAI,SAAS,QAAQ,UAAU;CAG/B,IAAI,OAAO,KAAK,OAAO,CAAC,CAAC,WAAW,GAClC,OAAO;CAGT,OAAO,YAAY,QAAQ,QAAQ,OAAO,GAAG,OAAO;AACtD;;;;;;;;;;;;;;;;;;;;AAqBA,SAAgB,uBACd,SACA,KACS;CACT,MAAM,UAAkC,CAAC;CACzC,YAAY,OAAO,OAAO,QAAQ,OAAO,GAAG,OAAO;CAEnD,KAAK,MAAM,CAAC,KAAK,UAAU,OAAO,QAAQ,OAAO,GAC/C,QAAQ,IAAI,KAAK,KAAK;CAGxB,OAAO;AACT;;;;;;;;;;;;;;;;;;;;;AAsBA,SAAgB,oBACd,iBACA,KACS;CAET,OAAO,uBAAuB,IADV,QAAQ,eACQ,GAAG,GAAG;AAC5C;;;;;;;;;;;;;;;;;;;AAoBA,SAAgB,aAAgB,eAAwB,IAAgB;CACtE,OAAO,QAAQ,KAAK,eAAe,EAAE;AACvC;;;;;;AAOA,SAAgB,mBAA4B;CAC1C,OAAO,QAAQ,OAAO;AACxB"}
|
package/dist/debug-headers.d.ts
CHANGED
|
@@ -1,20 +1,19 @@
|
|
|
1
|
-
import { MiddlewareHandler } from
|
|
2
|
-
import './types-m5OjZJ-4.js';
|
|
3
|
-
import '@opentelemetry/api';
|
|
1
|
+
import { MiddlewareHandler } from "./middleware.js";
|
|
4
2
|
|
|
3
|
+
//#region src/debug-headers.d.ts
|
|
5
4
|
/**
|
|
6
5
|
* Configuration for debug headers middleware
|
|
7
6
|
*/
|
|
8
7
|
interface DebugHeadersConfig {
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
8
|
+
/**
|
|
9
|
+
* Whether to enable debug headers
|
|
10
|
+
* @default process.env.NODE_ENV === 'development'
|
|
11
|
+
*/
|
|
12
|
+
enabled?: boolean;
|
|
13
|
+
/**
|
|
14
|
+
* Custom headers to add
|
|
15
|
+
*/
|
|
16
|
+
customHeaders?: Record<string, string | (() => string)>;
|
|
18
17
|
}
|
|
19
18
|
/**
|
|
20
19
|
* Create middleware that adds debug headers to responses in development
|
|
@@ -39,5 +38,6 @@ interface DebugHeadersConfig {
|
|
|
39
38
|
* ```
|
|
40
39
|
*/
|
|
41
40
|
declare function debugHeadersMiddleware(config?: DebugHeadersConfig): MiddlewareHandler;
|
|
42
|
-
|
|
43
|
-
export {
|
|
41
|
+
//#endregion
|
|
42
|
+
export { DebugHeadersConfig, debugHeadersMiddleware };
|
|
43
|
+
//# sourceMappingURL=debug-headers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"debug-headers.d.ts","names":[],"sources":["../src/debug-headers.ts"],"mappings":";;;;;AAMA;UAAiB,kBAAA;;;;;EAKf,OAAA;EAKsB;AAAA;AAyBxB;EAzBE,aAAA,GAAgB,MAAM;AAAA;;;;;;AA2BJ;;;;;;;;;;;;;;;;;iBAFJ,sBAAA,CACd,MAAA,GAAQ,kBAAA,GACP,iBAAiB"}
|