@stainlessdev/xray-emitter 0.3.1 → 0.4.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 (75) hide show
  1. package/dist/{chunk-FGXXKIF7.js → chunk-447Z3SDN.js} +4 -4
  2. package/dist/{chunk-GYXI3DWB.js → chunk-7EKBXVZE.js} +59 -12
  3. package/dist/chunk-7EKBXVZE.js.map +1 -0
  4. package/dist/{chunk-NTIUR3OC.js → chunk-AKPTTC2I.js} +2 -2
  5. package/dist/{chunk-7KT6EPVZ.js → chunk-BKJO3FLI.js} +1 -1
  6. package/dist/{chunk-7KT6EPVZ.js.map → chunk-BKJO3FLI.js.map} +1 -1
  7. package/dist/{chunk-DNBARLGB.cjs → chunk-EPQTFPT7.cjs} +1 -1
  8. package/dist/{chunk-DNBARLGB.cjs.map → chunk-EPQTFPT7.cjs.map} +1 -1
  9. package/dist/{chunk-SUVCVINA.cjs → chunk-FZH3IY6R.cjs} +47 -47
  10. package/dist/{chunk-SUVCVINA.cjs.map → chunk-FZH3IY6R.cjs.map} +1 -1
  11. package/dist/{chunk-UJWD5CFA.cjs → chunk-IEWCR3GT.cjs} +86 -39
  12. package/dist/chunk-IEWCR3GT.cjs.map +1 -0
  13. package/dist/{chunk-CPHFCOA5.cjs → chunk-M6G4PEGF.cjs} +9 -9
  14. package/dist/{chunk-CPHFCOA5.cjs.map → chunk-M6G4PEGF.cjs.map} +1 -1
  15. package/dist/{chunk-55YD27PV.cjs → chunk-PIY7CFHY.cjs} +28 -28
  16. package/dist/{chunk-55YD27PV.cjs.map → chunk-PIY7CFHY.cjs.map} +1 -1
  17. package/dist/{chunk-DV3MVQBB.js → chunk-W42SQZKN.js} +4 -4
  18. package/dist/effect.cjs +19 -19
  19. package/dist/effect.d.cts +3 -3
  20. package/dist/effect.d.ts +3 -3
  21. package/dist/effect.js +4 -4
  22. package/dist/{emitter-Bi_m_w5h.d.cts → emitter-DKki0zYl.d.cts} +1 -1
  23. package/dist/{emitter-Dy7bRGTq.d.ts → emitter-DT-EuB8s.d.ts} +1 -1
  24. package/dist/express.cjs +7 -7
  25. package/dist/express.d.cts +2 -2
  26. package/dist/express.d.ts +2 -2
  27. package/dist/express.js +4 -4
  28. package/dist/fastify.cjs +10 -10
  29. package/dist/fastify.d.cts +2 -2
  30. package/dist/fastify.d.ts +2 -2
  31. package/dist/fastify.js +4 -4
  32. package/dist/fetch.cjs +5 -5
  33. package/dist/fetch.d.cts +2 -2
  34. package/dist/fetch.d.ts +2 -2
  35. package/dist/fetch.js +4 -4
  36. package/dist/hono.cjs +9 -9
  37. package/dist/hono.d.cts +3 -3
  38. package/dist/hono.d.ts +3 -3
  39. package/dist/hono.js +4 -4
  40. package/dist/index.cjs +3 -3
  41. package/dist/index.d.cts +2 -2
  42. package/dist/index.d.ts +2 -2
  43. package/dist/index.js +2 -2
  44. package/dist/internal.cjs +3 -3
  45. package/dist/internal.d.cts +1 -1
  46. package/dist/internal.d.ts +1 -1
  47. package/dist/internal.js +2 -2
  48. package/dist/next.cjs +42 -8
  49. package/dist/next.cjs.map +1 -1
  50. package/dist/next.d.cts +3 -3
  51. package/dist/next.d.ts +3 -3
  52. package/dist/next.js +39 -5
  53. package/dist/next.js.map +1 -1
  54. package/dist/node.cjs +5 -5
  55. package/dist/node.d.cts +1 -1
  56. package/dist/node.d.ts +1 -1
  57. package/dist/node.js +4 -4
  58. package/dist/remix.cjs +7 -7
  59. package/dist/remix.d.cts +3 -3
  60. package/dist/remix.d.ts +3 -3
  61. package/dist/remix.js +4 -4
  62. package/dist/stub.cjs +121 -0
  63. package/dist/stub.cjs.map +1 -0
  64. package/dist/stub.d.cts +12 -0
  65. package/dist/stub.d.ts +12 -0
  66. package/dist/stub.js +121 -0
  67. package/dist/stub.js.map +1 -0
  68. package/dist/{types-BrKvhHbn.d.cts → types-C44Eg-i_.d.cts} +6 -2
  69. package/dist/{types-BrKvhHbn.d.ts → types-C44Eg-i_.d.ts} +6 -2
  70. package/package.json +10 -3
  71. package/dist/chunk-GYXI3DWB.js.map +0 -1
  72. package/dist/chunk-UJWD5CFA.cjs.map +0 -1
  73. /package/dist/{chunk-FGXXKIF7.js.map → chunk-447Z3SDN.js.map} +0 -0
  74. /package/dist/{chunk-NTIUR3OC.js.map → chunk-AKPTTC2I.js.map} +0 -0
  75. /package/dist/{chunk-DV3MVQBB.js.map → chunk-W42SQZKN.js.map} +0 -0
package/dist/express.cjs CHANGED
@@ -1,14 +1,14 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }
2
2
 
3
3
 
4
- var _chunk55YD27PVcjs = require('./chunk-55YD27PV.cjs');
5
- require('./chunk-UJWD5CFA.cjs');
6
- require('./chunk-CPHFCOA5.cjs');
7
- require('./chunk-DNBARLGB.cjs');
4
+ var _chunkPIY7CFHYcjs = require('./chunk-PIY7CFHY.cjs');
5
+ require('./chunk-IEWCR3GT.cjs');
6
+ require('./chunk-M6G4PEGF.cjs');
7
+ require('./chunk-EPQTFPT7.cjs');
8
8
 
9
9
  // src/express/express.ts
10
10
  function createEmitter2(config, options) {
11
- const emitter = _chunk55YD27PVcjs.createEmitter.call(void 0, config);
11
+ const emitter = _chunkPIY7CFHYcjs.createEmitter.call(void 0, config);
12
12
  const middleware = createExpressMiddleware(emitter, options);
13
13
  middleware.flush = emitter.flush;
14
14
  middleware.shutdown = emitter.shutdown;
@@ -16,7 +16,7 @@ function createEmitter2(config, options) {
16
16
  }
17
17
  function createExpressMiddleware(xray, options) {
18
18
  return (req, res, next) => {
19
- const wrapped = _chunk55YD27PVcjs.wrapHttpHandler.call(void 0,
19
+ const wrapped = _chunkPIY7CFHYcjs.wrapHttpHandler.call(void 0,
20
20
  () => {
21
21
  next();
22
22
  },
@@ -41,5 +41,5 @@ function createExpressMiddleware(xray, options) {
41
41
 
42
42
 
43
43
 
44
- exports.createCoreEmitter = _chunk55YD27PVcjs.createEmitter; exports.createEmitter = createEmitter2; exports.createExpressMiddleware = createExpressMiddleware;
44
+ exports.createCoreEmitter = _chunkPIY7CFHYcjs.createEmitter; exports.createEmitter = createEmitter2; exports.createExpressMiddleware = createExpressMiddleware;
45
45
  //# sourceMappingURL=express.cjs.map
@@ -1,6 +1,6 @@
1
1
  import { IncomingMessage, ServerResponse } from 'node:http';
2
- import { j as XrayRuntimeConfig, a as XrayEmitter } from './types-BrKvhHbn.cjs';
3
- export { e as CaptureConfig, f as RedactionConfig, R as RequestLog, X as XrayConfig, d as XrayContext } from './types-BrKvhHbn.cjs';
2
+ import { j as XrayRuntimeConfig, a as XrayEmitter } from './types-C44Eg-i_.cjs';
3
+ export { e as CaptureConfig, f as RedactionConfig, R as RequestLog, X as XrayConfig, d as XrayContext } from './types-C44Eg-i_.cjs';
4
4
  import { WrapOptions } from './node.cjs';
5
5
  export { createEmitter as createCoreEmitter } from './node.cjs';
6
6
  import '@opentelemetry/sdk-trace-base';
package/dist/express.d.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  import { IncomingMessage, ServerResponse } from 'node:http';
2
- import { j as XrayRuntimeConfig, a as XrayEmitter } from './types-BrKvhHbn.js';
3
- export { e as CaptureConfig, f as RedactionConfig, R as RequestLog, X as XrayConfig, d as XrayContext } from './types-BrKvhHbn.js';
2
+ import { j as XrayRuntimeConfig, a as XrayEmitter } from './types-C44Eg-i_.js';
3
+ export { e as CaptureConfig, f as RedactionConfig, R as RequestLog, X as XrayConfig, d as XrayContext } from './types-C44Eg-i_.js';
4
4
  import { WrapOptions } from './node.js';
5
5
  export { createEmitter as createCoreEmitter } from './node.js';
6
6
  import '@opentelemetry/sdk-trace-base';
package/dist/express.js CHANGED
@@ -1,10 +1,10 @@
1
1
  import {
2
2
  createEmitter,
3
3
  wrapHttpHandler
4
- } from "./chunk-FGXXKIF7.js";
5
- import "./chunk-GYXI3DWB.js";
6
- import "./chunk-NTIUR3OC.js";
7
- import "./chunk-7KT6EPVZ.js";
4
+ } from "./chunk-447Z3SDN.js";
5
+ import "./chunk-7EKBXVZE.js";
6
+ import "./chunk-AKPTTC2I.js";
7
+ import "./chunk-BKJO3FLI.js";
8
8
 
9
9
  // src/express/express.ts
10
10
  function createEmitter2(config, options) {
package/dist/fastify.cjs CHANGED
@@ -2,16 +2,16 @@
2
2
 
3
3
 
4
4
 
5
- var _chunk55YD27PVcjs = require('./chunk-55YD27PV.cjs');
6
- require('./chunk-UJWD5CFA.cjs');
5
+ var _chunkPIY7CFHYcjs = require('./chunk-PIY7CFHY.cjs');
6
+ require('./chunk-IEWCR3GT.cjs');
7
7
 
8
8
 
9
- var _chunkCPHFCOA5cjs = require('./chunk-CPHFCOA5.cjs');
10
- require('./chunk-DNBARLGB.cjs');
9
+ var _chunkM6G4PEGFcjs = require('./chunk-M6G4PEGF.cjs');
10
+ require('./chunk-EPQTFPT7.cjs');
11
11
 
12
12
  // src/fastify/fastify.ts
13
13
  function createEmitter2(config, options) {
14
- const emitter = _chunk55YD27PVcjs.createEmitter.call(void 0, config);
14
+ const emitter = _chunkPIY7CFHYcjs.createEmitter.call(void 0, config);
15
15
  const register = ((instance) => {
16
16
  addFastifyHooks(instance, emitter, options);
17
17
  });
@@ -20,7 +20,7 @@ function createEmitter2(config, options) {
20
20
  return register;
21
21
  }
22
22
  function addFastifyHooks(instance, xray, options) {
23
- const nodeHandler = _chunk55YD27PVcjs.wrapHttpHandler.call(void 0, () => {
23
+ const nodeHandler = _chunkPIY7CFHYcjs.wrapHttpHandler.call(void 0, () => {
24
24
  }, xray, {
25
25
  ...options,
26
26
  onRequest: (ctx) => {
@@ -37,7 +37,7 @@ function addFastifyHooks(instance, xray, options) {
37
37
  return;
38
38
  }
39
39
  nodeHandler(req.raw, res.raw);
40
- req.xray = _chunk55YD27PVcjs.getXrayContext.call(void 0, req.raw);
40
+ req.xray = _chunkPIY7CFHYcjs.getXrayContext.call(void 0, req.raw);
41
41
  next();
42
42
  }
43
43
  );
@@ -47,9 +47,9 @@ function addFastifyHooks(instance, xray, options) {
47
47
  const anyReq = request;
48
48
  const route = _optionalChain([anyReq, 'access', _3 => _3.routeOptions, 'optionalAccess', _4 => _4.url]);
49
49
  if (route && anyReq.raw) {
50
- const ctx = _chunk55YD27PVcjs.getXrayContext.call(void 0, anyReq.raw);
50
+ const ctx = _chunkPIY7CFHYcjs.getXrayContext.call(void 0, anyReq.raw);
51
51
  if (ctx) {
52
- _chunkCPHFCOA5cjs.setContextRoute.call(void 0, ctx, route);
52
+ _chunkM6G4PEGFcjs.setContextRoute.call(void 0, ctx, route);
53
53
  }
54
54
  }
55
55
  next();
@@ -60,5 +60,5 @@ function addFastifyHooks(instance, xray, options) {
60
60
 
61
61
 
62
62
 
63
- exports.addFastifyHooks = addFastifyHooks; exports.createCoreEmitter = _chunk55YD27PVcjs.createEmitter; exports.createEmitter = createEmitter2;
63
+ exports.addFastifyHooks = addFastifyHooks; exports.createCoreEmitter = _chunkPIY7CFHYcjs.createEmitter; exports.createEmitter = createEmitter2;
64
64
  //# sourceMappingURL=fastify.cjs.map
@@ -1,5 +1,5 @@
1
- import { j as XrayRuntimeConfig, a as XrayEmitter } from './types-BrKvhHbn.cjs';
2
- export { e as CaptureConfig, f as RedactionConfig, R as RequestLog, X as XrayConfig, d as XrayContext } from './types-BrKvhHbn.cjs';
1
+ import { j as XrayRuntimeConfig, a as XrayEmitter } from './types-C44Eg-i_.cjs';
2
+ export { e as CaptureConfig, f as RedactionConfig, R as RequestLog, X as XrayConfig, d as XrayContext } from './types-C44Eg-i_.cjs';
3
3
  import { WrapOptions } from './node.cjs';
4
4
  export { createEmitter as createCoreEmitter } from './node.cjs';
5
5
  import '@opentelemetry/sdk-trace-base';
package/dist/fastify.d.ts CHANGED
@@ -1,5 +1,5 @@
1
- import { j as XrayRuntimeConfig, a as XrayEmitter } from './types-BrKvhHbn.js';
2
- export { e as CaptureConfig, f as RedactionConfig, R as RequestLog, X as XrayConfig, d as XrayContext } from './types-BrKvhHbn.js';
1
+ import { j as XrayRuntimeConfig, a as XrayEmitter } from './types-C44Eg-i_.js';
2
+ export { e as CaptureConfig, f as RedactionConfig, R as RequestLog, X as XrayConfig, d as XrayContext } from './types-C44Eg-i_.js';
3
3
  import { WrapOptions } from './node.js';
4
4
  export { createEmitter as createCoreEmitter } from './node.js';
5
5
  import '@opentelemetry/sdk-trace-base';
package/dist/fastify.js CHANGED
@@ -2,12 +2,12 @@ import {
2
2
  createEmitter,
3
3
  getXrayContext,
4
4
  wrapHttpHandler
5
- } from "./chunk-FGXXKIF7.js";
6
- import "./chunk-GYXI3DWB.js";
5
+ } from "./chunk-447Z3SDN.js";
6
+ import "./chunk-7EKBXVZE.js";
7
7
  import {
8
8
  setContextRoute
9
- } from "./chunk-NTIUR3OC.js";
10
- import "./chunk-7KT6EPVZ.js";
9
+ } from "./chunk-AKPTTC2I.js";
10
+ import "./chunk-BKJO3FLI.js";
11
11
 
12
12
  // src/fastify/fastify.ts
13
13
  function createEmitter2(config, options) {
package/dist/fetch.cjs CHANGED
@@ -3,14 +3,14 @@
3
3
 
4
4
 
5
5
 
6
- var _chunkSUVCVINAcjs = require('./chunk-SUVCVINA.cjs');
7
- require('./chunk-UJWD5CFA.cjs');
8
- require('./chunk-CPHFCOA5.cjs');
9
- require('./chunk-DNBARLGB.cjs');
6
+ var _chunkFZH3IY6Rcjs = require('./chunk-FZH3IY6R.cjs');
7
+ require('./chunk-IEWCR3GT.cjs');
8
+ require('./chunk-M6G4PEGF.cjs');
9
+ require('./chunk-EPQTFPT7.cjs');
10
10
 
11
11
 
12
12
 
13
13
 
14
14
 
15
- exports.createEmitter = _chunkSUVCVINAcjs.createEmitter; exports.getXrayContext = _chunkSUVCVINAcjs.getXrayContext; exports.wrapFetch = _chunkSUVCVINAcjs.wrapFetch; exports.wrapFetchPreserve = _chunkSUVCVINAcjs.wrapFetchPreserve;
15
+ exports.createEmitter = _chunkFZH3IY6Rcjs.createEmitter; exports.getXrayContext = _chunkFZH3IY6Rcjs.getXrayContext; exports.wrapFetch = _chunkFZH3IY6Rcjs.wrapFetch; exports.wrapFetchPreserve = _chunkFZH3IY6Rcjs.wrapFetchPreserve;
16
16
  //# sourceMappingURL=fetch.cjs.map
package/dist/fetch.d.cts CHANGED
@@ -1,5 +1,5 @@
1
- export { c as createEmitter } from './emitter-Bi_m_w5h.cjs';
2
- import { a as XrayEmitter, e as CaptureConfig, f as RedactionConfig, d as XrayContext, R as RequestLog } from './types-BrKvhHbn.cjs';
1
+ export { c as createEmitter } from './emitter-DKki0zYl.cjs';
2
+ import { a as XrayEmitter, e as CaptureConfig, f as RedactionConfig, d as XrayContext, R as RequestLog } from './types-C44Eg-i_.cjs';
3
3
  import '@opentelemetry/sdk-trace-base';
4
4
 
5
5
  interface WrapOptions {
package/dist/fetch.d.ts CHANGED
@@ -1,5 +1,5 @@
1
- export { c as createEmitter } from './emitter-Dy7bRGTq.js';
2
- import { a as XrayEmitter, e as CaptureConfig, f as RedactionConfig, d as XrayContext, R as RequestLog } from './types-BrKvhHbn.js';
1
+ export { c as createEmitter } from './emitter-DT-EuB8s.js';
2
+ import { a as XrayEmitter, e as CaptureConfig, f as RedactionConfig, d as XrayContext, R as RequestLog } from './types-C44Eg-i_.js';
3
3
  import '@opentelemetry/sdk-trace-base';
4
4
 
5
5
  interface WrapOptions {
package/dist/fetch.js CHANGED
@@ -3,10 +3,10 @@ import {
3
3
  getXrayContext,
4
4
  wrapFetch,
5
5
  wrapFetchPreserve
6
- } from "./chunk-DV3MVQBB.js";
7
- import "./chunk-GYXI3DWB.js";
8
- import "./chunk-NTIUR3OC.js";
9
- import "./chunk-7KT6EPVZ.js";
6
+ } from "./chunk-W42SQZKN.js";
7
+ import "./chunk-7EKBXVZE.js";
8
+ import "./chunk-AKPTTC2I.js";
9
+ import "./chunk-BKJO3FLI.js";
10
10
  export {
11
11
  createEmitter,
12
12
  getXrayContext,
package/dist/hono.cjs CHANGED
@@ -2,16 +2,16 @@
2
2
 
3
3
 
4
4
 
5
- var _chunkSUVCVINAcjs = require('./chunk-SUVCVINA.cjs');
6
- require('./chunk-UJWD5CFA.cjs');
5
+ var _chunkFZH3IY6Rcjs = require('./chunk-FZH3IY6R.cjs');
6
+ require('./chunk-IEWCR3GT.cjs');
7
7
 
8
8
 
9
- var _chunkCPHFCOA5cjs = require('./chunk-CPHFCOA5.cjs');
10
- require('./chunk-DNBARLGB.cjs');
9
+ var _chunkM6G4PEGFcjs = require('./chunk-M6G4PEGF.cjs');
10
+ require('./chunk-EPQTFPT7.cjs');
11
11
 
12
12
  // src/hono/hono.ts
13
13
  function createEmitter2(config, options) {
14
- const emitter = _chunkSUVCVINAcjs.createEmitter.call(void 0, config);
14
+ const emitter = _chunkFZH3IY6Rcjs.createEmitter.call(void 0, config);
15
15
  const middleware = createHonoMiddleware(emitter, options);
16
16
  middleware.flush = emitter.flush;
17
17
  middleware.shutdown = emitter.shutdown;
@@ -25,9 +25,9 @@ function createHonoMiddleware(xray, options) {
25
25
  await next();
26
26
  return;
27
27
  }
28
- const wrapped = _chunkSUVCVINAcjs.wrapFetchPreserve.call(void 0,
28
+ const wrapped = _chunkFZH3IY6Rcjs.wrapFetchPreserve.call(void 0,
29
29
  async (req) => {
30
- const ctx = _chunkSUVCVINAcjs.getXrayContext.call(void 0, req);
30
+ const ctx = _chunkFZH3IY6Rcjs.getXrayContext.call(void 0, req);
31
31
  if (ctx) {
32
32
  c.set("xray", ctx);
33
33
  }
@@ -40,7 +40,7 @@ function createHonoMiddleware(xray, options) {
40
40
  route = resolveRoutePath(routePathFn, c);
41
41
  }
42
42
  if (route && ctx) {
43
- _chunkCPHFCOA5cjs.setContextRoute.call(void 0, ctx, route);
43
+ _chunkM6G4PEGFcjs.setContextRoute.call(void 0, ctx, route);
44
44
  }
45
45
  }
46
46
  },
@@ -67,5 +67,5 @@ function resolveRoutePath(fn, ctx, index) {
67
67
 
68
68
 
69
69
 
70
- exports.createCoreEmitter = _chunkSUVCVINAcjs.createEmitter; exports.createEmitter = createEmitter2; exports.createHonoMiddleware = createHonoMiddleware;
70
+ exports.createCoreEmitter = _chunkFZH3IY6Rcjs.createEmitter; exports.createEmitter = createEmitter2; exports.createHonoMiddleware = createHonoMiddleware;
71
71
  //# sourceMappingURL=hono.cjs.map
package/dist/hono.d.cts CHANGED
@@ -1,6 +1,6 @@
1
- import { d as XrayContext, j as XrayRuntimeConfig, a as XrayEmitter } from './types-BrKvhHbn.cjs';
2
- export { e as CaptureConfig, f as RedactionConfig, R as RequestLog, X as XrayConfig } from './types-BrKvhHbn.cjs';
3
- export { c as createCoreEmitter } from './emitter-Bi_m_w5h.cjs';
1
+ import { d as XrayContext, j as XrayRuntimeConfig, a as XrayEmitter } from './types-C44Eg-i_.cjs';
2
+ export { e as CaptureConfig, f as RedactionConfig, R as RequestLog, X as XrayConfig } from './types-C44Eg-i_.cjs';
3
+ export { c as createCoreEmitter } from './emitter-DKki0zYl.cjs';
4
4
  import { WrapOptions } from './fetch.cjs';
5
5
  import '@opentelemetry/sdk-trace-base';
6
6
 
package/dist/hono.d.ts CHANGED
@@ -1,6 +1,6 @@
1
- import { d as XrayContext, j as XrayRuntimeConfig, a as XrayEmitter } from './types-BrKvhHbn.js';
2
- export { e as CaptureConfig, f as RedactionConfig, R as RequestLog, X as XrayConfig } from './types-BrKvhHbn.js';
3
- export { c as createCoreEmitter } from './emitter-Dy7bRGTq.js';
1
+ import { d as XrayContext, j as XrayRuntimeConfig, a as XrayEmitter } from './types-C44Eg-i_.js';
2
+ export { e as CaptureConfig, f as RedactionConfig, R as RequestLog, X as XrayConfig } from './types-C44Eg-i_.js';
3
+ export { c as createCoreEmitter } from './emitter-DT-EuB8s.js';
4
4
  import { WrapOptions } from './fetch.js';
5
5
  import '@opentelemetry/sdk-trace-base';
6
6
 
package/dist/hono.js CHANGED
@@ -2,12 +2,12 @@ import {
2
2
  createEmitter,
3
3
  getXrayContext,
4
4
  wrapFetchPreserve
5
- } from "./chunk-DV3MVQBB.js";
6
- import "./chunk-GYXI3DWB.js";
5
+ } from "./chunk-W42SQZKN.js";
6
+ import "./chunk-7EKBXVZE.js";
7
7
  import {
8
8
  setContextRoute
9
- } from "./chunk-NTIUR3OC.js";
10
- import "./chunk-7KT6EPVZ.js";
9
+ } from "./chunk-AKPTTC2I.js";
10
+ import "./chunk-BKJO3FLI.js";
11
11
 
12
12
  // src/hono/hono.ts
13
13
  function createEmitter2(config, options) {
package/dist/index.cjs CHANGED
@@ -2,11 +2,11 @@
2
2
 
3
3
 
4
4
 
5
- var _chunkUJWD5CFAcjs = require('./chunk-UJWD5CFA.cjs');
6
- require('./chunk-DNBARLGB.cjs');
5
+ var _chunkIEWCR3GTcjs = require('./chunk-IEWCR3GT.cjs');
6
+ require('./chunk-EPQTFPT7.cjs');
7
7
 
8
8
 
9
9
 
10
10
 
11
- exports.XrayConfigError = _chunkUJWD5CFAcjs.XrayConfigError; exports.createEmitter = _chunkUJWD5CFAcjs.createEmitter; exports.normalizeConfig = _chunkUJWD5CFAcjs.normalizeConfig;
11
+ exports.XrayConfigError = _chunkIEWCR3GTcjs.XrayConfigError; exports.createEmitter = _chunkIEWCR3GTcjs.createEmitter; exports.normalizeConfig = _chunkIEWCR3GTcjs.normalizeConfig;
12
12
  //# sourceMappingURL=index.cjs.map
package/dist/index.d.cts CHANGED
@@ -1,5 +1,5 @@
1
- import { X as XrayConfig, a as XrayEmitter } from './types-BrKvhHbn.cjs';
2
- export { A as AttributeValue, e as CaptureConfig, C as CapturedBody, E as ExporterConfig, L as LogLevel, b as Logger, N as NormalizedRequest, c as NormalizedResponse, f as RedactionConfig, g as RequestIdConfig, R as RequestLog, h as ResolvedXrayConfig, i as RouteConfig, k as XrayConfigError, d as XrayContext, j as XrayRuntimeConfig, n as normalizeConfig } from './types-BrKvhHbn.cjs';
1
+ import { X as XrayConfig, a as XrayEmitter } from './types-C44Eg-i_.cjs';
2
+ export { A as AttributeValue, e as CaptureConfig, C as CapturedBody, E as ExporterConfig, L as LogLevel, b as Logger, N as NormalizedRequest, c as NormalizedResponse, f as RedactionConfig, g as RequestIdConfig, R as RequestLog, h as ResolvedXrayConfig, i as RouteConfig, k as XrayConfigError, d as XrayContext, j as XrayRuntimeConfig, n as normalizeConfig } from './types-C44Eg-i_.cjs';
3
3
  import { SpanExporter } from '@opentelemetry/sdk-trace-base';
4
4
 
5
5
  /**
package/dist/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
- import { X as XrayConfig, a as XrayEmitter } from './types-BrKvhHbn.js';
2
- export { A as AttributeValue, e as CaptureConfig, C as CapturedBody, E as ExporterConfig, L as LogLevel, b as Logger, N as NormalizedRequest, c as NormalizedResponse, f as RedactionConfig, g as RequestIdConfig, R as RequestLog, h as ResolvedXrayConfig, i as RouteConfig, k as XrayConfigError, d as XrayContext, j as XrayRuntimeConfig, n as normalizeConfig } from './types-BrKvhHbn.js';
1
+ import { X as XrayConfig, a as XrayEmitter } from './types-C44Eg-i_.js';
2
+ export { A as AttributeValue, e as CaptureConfig, C as CapturedBody, E as ExporterConfig, L as LogLevel, b as Logger, N as NormalizedRequest, c as NormalizedResponse, f as RedactionConfig, g as RequestIdConfig, R as RequestLog, h as ResolvedXrayConfig, i as RouteConfig, k as XrayConfigError, d as XrayContext, j as XrayRuntimeConfig, n as normalizeConfig } from './types-C44Eg-i_.js';
3
3
  import { SpanExporter } from '@opentelemetry/sdk-trace-base';
4
4
 
5
5
  /**
package/dist/index.js CHANGED
@@ -2,8 +2,8 @@ import {
2
2
  XrayConfigError,
3
3
  createEmitter,
4
4
  normalizeConfig
5
- } from "./chunk-GYXI3DWB.js";
6
- import "./chunk-7KT6EPVZ.js";
5
+ } from "./chunk-7EKBXVZE.js";
6
+ import "./chunk-BKJO3FLI.js";
7
7
  export {
8
8
  XrayConfigError,
9
9
  createEmitter,
package/dist/internal.cjs CHANGED
@@ -12,7 +12,7 @@
12
12
 
13
13
 
14
14
 
15
- var _chunkCPHFCOA5cjs = require('./chunk-CPHFCOA5.cjs');
15
+ var _chunkM6G4PEGFcjs = require('./chunk-M6G4PEGF.cjs');
16
16
 
17
17
 
18
18
 
@@ -20,7 +20,7 @@ var _chunkCPHFCOA5cjs = require('./chunk-CPHFCOA5.cjs');
20
20
 
21
21
 
22
22
 
23
- var _chunkDNBARLGBcjs = require('./chunk-DNBARLGB.cjs');
23
+ var _chunkEPQTFPT7cjs = require('./chunk-EPQTFPT7.cjs');
24
24
 
25
25
 
26
26
 
@@ -41,5 +41,5 @@ var _chunkDNBARLGBcjs = require('./chunk-DNBARLGB.cjs');
41
41
 
42
42
 
43
43
 
44
- exports.LimitedBuffer = _chunkCPHFCOA5cjs.LimitedBuffer; exports.bindContextToObject = _chunkCPHFCOA5cjs.bindContextToObject; exports.generateRequestId = _chunkDNBARLGBcjs.generateRequestId; exports.getXrayContextFromObject = _chunkCPHFCOA5cjs.getXrayContextFromObject; exports.headerTokenList = _chunkCPHFCOA5cjs.headerTokenList; exports.headerValuesFromFetchHeaders = _chunkCPHFCOA5cjs.headerValuesFromFetchHeaders; exports.headerValuesFromFetchHeadersWithLimit = _chunkCPHFCOA5cjs.headerValuesFromFetchHeadersWithLimit; exports.headerValuesFromNodeHeaders = _chunkCPHFCOA5cjs.headerValuesFromNodeHeaders; exports.isWebsocketUpgrade = _chunkCPHFCOA5cjs.isWebsocketUpgrade; exports.isWebsocketUpgradeFetch = _chunkCPHFCOA5cjs.isWebsocketUpgradeFetch; exports.logWithLevel = _chunkDNBARLGBcjs.logWithLevel; exports.makeCapturedBody = _chunkDNBARLGBcjs.makeCapturedBody; exports.setCaptureOverride = _chunkCPHFCOA5cjs.setCaptureOverride; exports.setContextRequestId = _chunkCPHFCOA5cjs.setContextRequestId; exports.setContextRoute = _chunkCPHFCOA5cjs.setContextRoute; exports.setRedactionOverride = _chunkCPHFCOA5cjs.setRedactionOverride; exports.uuidv7 = _chunkDNBARLGBcjs.uuidv7; exports.uuidv7base48 = _chunkDNBARLGBcjs.uuidv7base48; exports.uuidv7base62 = _chunkDNBARLGBcjs.uuidv7base62;
44
+ exports.LimitedBuffer = _chunkM6G4PEGFcjs.LimitedBuffer; exports.bindContextToObject = _chunkM6G4PEGFcjs.bindContextToObject; exports.generateRequestId = _chunkEPQTFPT7cjs.generateRequestId; exports.getXrayContextFromObject = _chunkM6G4PEGFcjs.getXrayContextFromObject; exports.headerTokenList = _chunkM6G4PEGFcjs.headerTokenList; exports.headerValuesFromFetchHeaders = _chunkM6G4PEGFcjs.headerValuesFromFetchHeaders; exports.headerValuesFromFetchHeadersWithLimit = _chunkM6G4PEGFcjs.headerValuesFromFetchHeadersWithLimit; exports.headerValuesFromNodeHeaders = _chunkM6G4PEGFcjs.headerValuesFromNodeHeaders; exports.isWebsocketUpgrade = _chunkM6G4PEGFcjs.isWebsocketUpgrade; exports.isWebsocketUpgradeFetch = _chunkM6G4PEGFcjs.isWebsocketUpgradeFetch; exports.logWithLevel = _chunkEPQTFPT7cjs.logWithLevel; exports.makeCapturedBody = _chunkEPQTFPT7cjs.makeCapturedBody; exports.setCaptureOverride = _chunkM6G4PEGFcjs.setCaptureOverride; exports.setContextRequestId = _chunkM6G4PEGFcjs.setContextRequestId; exports.setContextRoute = _chunkM6G4PEGFcjs.setContextRoute; exports.setRedactionOverride = _chunkM6G4PEGFcjs.setRedactionOverride; exports.uuidv7 = _chunkEPQTFPT7cjs.uuidv7; exports.uuidv7base48 = _chunkEPQTFPT7cjs.uuidv7base48; exports.uuidv7base62 = _chunkEPQTFPT7cjs.uuidv7base62;
45
45
  //# sourceMappingURL=internal.cjs.map
@@ -1,4 +1,4 @@
1
- import { C as CapturedBody, b as Logger, L as LogLevel, d as XrayContext, e as CaptureConfig, f as RedactionConfig } from './types-BrKvhHbn.cjs';
1
+ import { C as CapturedBody, b as Logger, L as LogLevel, d as XrayContext, e as CaptureConfig, f as RedactionConfig } from './types-C44Eg-i_.cjs';
2
2
  import '@opentelemetry/sdk-trace-base';
3
3
 
4
4
  declare function makeCapturedBody(bytes: Uint8Array | undefined, totalBytes: number, truncated: boolean, mode: 'text' | 'base64'): CapturedBody | undefined;
@@ -1,4 +1,4 @@
1
- import { C as CapturedBody, b as Logger, L as LogLevel, d as XrayContext, e as CaptureConfig, f as RedactionConfig } from './types-BrKvhHbn.js';
1
+ import { C as CapturedBody, b as Logger, L as LogLevel, d as XrayContext, e as CaptureConfig, f as RedactionConfig } from './types-C44Eg-i_.js';
2
2
  import '@opentelemetry/sdk-trace-base';
3
3
 
4
4
  declare function makeCapturedBody(bytes: Uint8Array | undefined, totalBytes: number, truncated: boolean, mode: 'text' | 'base64'): CapturedBody | undefined;
package/dist/internal.js CHANGED
@@ -12,7 +12,7 @@ import {
12
12
  setContextRequestId,
13
13
  setContextRoute,
14
14
  setRedactionOverride
15
- } from "./chunk-NTIUR3OC.js";
15
+ } from "./chunk-AKPTTC2I.js";
16
16
  import {
17
17
  generateRequestId,
18
18
  logWithLevel,
@@ -20,7 +20,7 @@ import {
20
20
  uuidv7,
21
21
  uuidv7base48,
22
22
  uuidv7base62
23
- } from "./chunk-7KT6EPVZ.js";
23
+ } from "./chunk-BKJO3FLI.js";
24
24
  export {
25
25
  LimitedBuffer,
26
26
  bindContextToObject,
package/dist/next.cjs CHANGED
@@ -1,15 +1,15 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true});
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }
2
2
 
3
3
 
4
4
 
5
- var _chunkSUVCVINAcjs = require('./chunk-SUVCVINA.cjs');
6
- require('./chunk-UJWD5CFA.cjs');
7
- require('./chunk-CPHFCOA5.cjs');
8
- require('./chunk-DNBARLGB.cjs');
5
+ var _chunkFZH3IY6Rcjs = require('./chunk-FZH3IY6R.cjs');
6
+ require('./chunk-IEWCR3GT.cjs');
7
+ require('./chunk-M6G4PEGF.cjs');
8
+ require('./chunk-EPQTFPT7.cjs');
9
9
 
10
10
  // src/next/next.ts
11
11
  function createEmitter2(config, options) {
12
- const emitter = _chunkSUVCVINAcjs.createEmitter.call(void 0, config);
12
+ const emitter = _chunkFZH3IY6Rcjs.createEmitter.call(void 0, config);
13
13
  const wrap = ((handler) => wrapNextRoute(handler, emitter, options));
14
14
  wrap.flush = emitter.flush;
15
15
  wrap.shutdown = emitter.shutdown;
@@ -17,14 +17,48 @@ function createEmitter2(config, options) {
17
17
  }
18
18
  function wrapNextRoute(handler, xray, options) {
19
19
  return async (request, context) => {
20
- const wrapped = _chunkSUVCVINAcjs.wrapFetchPreserve.call(void 0, (req) => handler(req, context), xray, options);
20
+ let effectiveOptions = options;
21
+ if (!_optionalChain([options, 'optionalAccess', _ => _.route])) {
22
+ const params = await context.params;
23
+ const route = inferRoute(new URL(request.url).pathname, params);
24
+ if (route) {
25
+ effectiveOptions = { ...options, route };
26
+ }
27
+ }
28
+ const wrapped = _chunkFZH3IY6Rcjs.wrapFetchPreserve.call(void 0,
29
+ (req) => handler(req, context),
30
+ xray,
31
+ effectiveOptions
32
+ );
21
33
  return wrapped(request);
22
34
  };
23
35
  }
36
+ function inferRoute(pathname, params) {
37
+ const replacements = /* @__PURE__ */ new Map();
38
+ for (const [key, value] of Object.entries(params)) {
39
+ if (typeof value === "string") {
40
+ replacements.set(value, `[${key}]`);
41
+ }
42
+ }
43
+ if (replacements.size === 0) return void 0;
44
+ const segments = pathname.split("/");
45
+ let replaced = false;
46
+ for (let i = 0; i < segments.length; i++) {
47
+ const seg = segments[i];
48
+ const placeholder = replacements.get(seg);
49
+ if (placeholder) {
50
+ if (segments.indexOf(seg, i + 1) !== -1) return void 0;
51
+ segments[i] = placeholder;
52
+ replacements.delete(seg);
53
+ replaced = true;
54
+ }
55
+ }
56
+ return replaced ? segments.join("/") : void 0;
57
+ }
24
58
 
25
59
 
26
60
 
27
61
 
28
62
 
29
- exports.createCoreEmitter = _chunkSUVCVINAcjs.createEmitter; exports.createEmitter = createEmitter2; exports.getXrayContext = _chunkSUVCVINAcjs.getXrayContext; exports.wrapNextRoute = wrapNextRoute;
63
+ exports.createCoreEmitter = _chunkFZH3IY6Rcjs.createEmitter; exports.createEmitter = createEmitter2; exports.getXrayContext = _chunkFZH3IY6Rcjs.getXrayContext; exports.wrapNextRoute = wrapNextRoute;
30
64
  //# sourceMappingURL=next.cjs.map
package/dist/next.cjs.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["/home/runner/work/xray-emitter-js/xray-emitter-js/dist/next.cjs","../src/next/next.ts"],"names":["createEmitter"],"mappings":"AAAA;AACE;AACA;AACA;AACF,wDAA6B;AAC7B,gCAA6B;AAC7B,gCAA6B;AAC7B,gCAA6B;AAC7B;AACA;AC8BO,SAASA,cAAAA,CAAc,MAAA,EAA2B,OAAA,EAAoC;AAC3F,EAAA,MAAM,QAAA,EAAU,6CAAA,MAAyB,CAAA;AACzC,EAAA,MAAM,KAAA,EAAA,CAAQ,CAAC,OAAA,EAAA,GACb,aAAA,CAAc,OAAA,EAAS,OAAA,EAAS,OAAO,CAAA,CAAA;AACzC,EAAA,IAAA,CAAK,MAAA,EAAQ,OAAA,CAAQ,KAAA;AACrB,EAAA,IAAA,CAAK,SAAA,EAAW,OAAA,CAAQ,QAAA;AACxB,EAAA,OAAO,IAAA;AACT;AAKO,SAAS,aAAA,CACd,OAAA,EACA,IAAA,EACA,OAAA,EACoE;AACpE,EAAA,OAAO,MAAA,CAAO,OAAA,EAAS,OAAA,EAAA,GAAY;AACjC,IAAA,MAAM,QAAA,EAAU,iDAAA,CAAmB,GAAA,EAAA,GAAiB,OAAA,CAAQ,GAAA,EAAK,OAAO,CAAA,EAAG,IAAA,EAAM,OAAO,CAAA;AACxF,IAAA,OAAO,OAAA,CAAQ,OAAO,CAAA;AAAA,EACxB,CAAA;AACF;ADrCA;AACE;AACA;AACA;AACA;AACF,sMAAC","file":"/home/runner/work/xray-emitter-js/xray-emitter-js/dist/next.cjs","sourcesContent":[null,"import type { XrayEmitter, XrayRuntimeConfig } from '../core/index';\nimport {\n createEmitter as createFetchEmitter,\n getXrayContext,\n wrapFetchPreserve,\n type WrapOptions,\n} from '../fetch/fetch';\n\nexport { createFetchEmitter as createCoreEmitter };\nexport type {\n CaptureConfig,\n RedactionConfig,\n RequestLog,\n XrayConfig,\n XrayContext,\n XrayEmitter,\n XrayRuntimeConfig,\n} from '../core/index';\nexport type { WrapOptions } from '../fetch/fetch';\nexport { getXrayContext };\n\n// copy types from Next.js to avoid a package dependency\ntype NextRouteContext = {\n params: Promise<Record<string, string | string[]>>;\n};\n\ntype NextRouteHandler = (\n request: Request,\n context: NextRouteContext,\n) => Response | Promise<Response>;\n\ntype NextEmitter = ((handler: NextRouteHandler) => ReturnType<typeof wrapNextRoute>) & {\n flush: XrayEmitter['flush'];\n shutdown: XrayEmitter['shutdown'];\n};\n\n/**\n * Create a Next.js App Router wrapper and expose `flush()`/`shutdown()`.\n */\nexport function createEmitter(config: XrayRuntimeConfig, options?: WrapOptions): NextEmitter {\n const emitter = createFetchEmitter(config);\n const wrap = ((handler: NextRouteHandler) =>\n wrapNextRoute(handler, emitter, options)) as NextEmitter;\n wrap.flush = emitter.flush;\n wrap.shutdown = emitter.shutdown;\n return wrap;\n}\n\n/**\n * Wrap a Next.js route handler using an existing core `XrayEmitter`.\n */\nexport function wrapNextRoute(\n handler: NextRouteHandler,\n xray: XrayEmitter,\n options?: WrapOptions,\n): (request: Request, context: NextRouteContext) => Promise<Response> {\n return async (request, context) => {\n const wrapped = wrapFetchPreserve((req: Request) => handler(req, context), xray, options);\n return wrapped(request);\n };\n}\n"]}
1
+ {"version":3,"sources":["/home/runner/work/xray-emitter-js/xray-emitter-js/dist/next.cjs","../src/next/next.ts"],"names":["createEmitter"],"mappings":"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","file":"/home/runner/work/xray-emitter-js/xray-emitter-js/dist/next.cjs","sourcesContent":[null,"import type { XrayEmitter, XrayRuntimeConfig } from '../core/index';\nimport {\n createEmitter as createFetchEmitter,\n getXrayContext,\n wrapFetchPreserve,\n type WrapOptions,\n} from '../fetch/fetch';\n\nexport { createFetchEmitter as createCoreEmitter };\nexport type {\n CaptureConfig,\n RedactionConfig,\n RequestLog,\n XrayConfig,\n XrayContext,\n XrayEmitter,\n XrayRuntimeConfig,\n} from '../core/index';\nexport type { WrapOptions } from '../fetch/fetch';\nexport { getXrayContext };\n\n// copy types from Next.js to avoid a package dependency\ntype NextRouteContext = {\n params: Promise<Record<string, string | string[]>>;\n};\n\ntype NextRouteHandler = (\n request: Request,\n context: NextRouteContext,\n) => Response | Promise<Response>;\n\ntype NextEmitter = ((handler: NextRouteHandler) => ReturnType<typeof wrapNextRoute>) & {\n flush: XrayEmitter['flush'];\n shutdown: XrayEmitter['shutdown'];\n};\n\n/**\n * Create a Next.js App Router wrapper and expose `flush()`/`shutdown()`.\n */\nexport function createEmitter(config: XrayRuntimeConfig, options?: WrapOptions): NextEmitter {\n const emitter = createFetchEmitter(config);\n const wrap = ((handler: NextRouteHandler) =>\n wrapNextRoute(handler, emitter, options)) as NextEmitter;\n wrap.flush = emitter.flush;\n wrap.shutdown = emitter.shutdown;\n return wrap;\n}\n\n/**\n * Wrap a Next.js route handler using an existing core `XrayEmitter`.\n */\nexport function wrapNextRoute(\n handler: NextRouteHandler,\n xray: XrayEmitter,\n options?: WrapOptions,\n): (request: Request, context: NextRouteContext) => Promise<Response> {\n return async (request, context) => {\n // When no explicit route option was provided, infer the route pattern\n // from the URL pathname and the resolved params (e.g. { subject: \"test\" }\n // turns /hello/test into /hello/[subject]).\n let effectiveOptions = options;\n if (!options?.route) {\n const params = await context.params;\n const route = inferRoute(new URL(request.url).pathname, params);\n if (route) {\n effectiveOptions = { ...options, route };\n }\n }\n\n const wrapped = wrapFetchPreserve(\n (req: Request) => handler(req, context),\n xray,\n effectiveOptions,\n );\n return wrapped(request);\n };\n}\n\nfunction inferRoute(\n pathname: string,\n params: Record<string, string | string[]>,\n): string | undefined {\n // Build a map from param value → placeholder for single-segment params.\n const replacements = new Map<string, string>();\n for (const [key, value] of Object.entries(params)) {\n if (typeof value === 'string') {\n replacements.set(value, `[${key}]`);\n }\n }\n if (replacements.size === 0) return undefined;\n\n const segments = pathname.split('/');\n let replaced = false;\n for (let i = 0; i < segments.length; i++) {\n const seg = segments[i]!;\n const placeholder = replacements.get(seg);\n if (placeholder) {\n // If this param value appears in more than one segment we cannot\n // tell which is the dynamic one — bail out entirely.\n if (segments.indexOf(seg, i + 1) !== -1) return undefined;\n segments[i] = placeholder;\n replacements.delete(seg);\n replaced = true;\n }\n }\n return replaced ? segments.join('/') : undefined;\n}\n"]}
package/dist/next.d.cts CHANGED
@@ -1,6 +1,6 @@
1
- import { j as XrayRuntimeConfig, a as XrayEmitter } from './types-BrKvhHbn.cjs';
2
- export { e as CaptureConfig, f as RedactionConfig, R as RequestLog, X as XrayConfig, d as XrayContext } from './types-BrKvhHbn.cjs';
3
- export { c as createCoreEmitter } from './emitter-Bi_m_w5h.cjs';
1
+ import { j as XrayRuntimeConfig, a as XrayEmitter } from './types-C44Eg-i_.cjs';
2
+ export { e as CaptureConfig, f as RedactionConfig, R as RequestLog, X as XrayConfig, d as XrayContext } from './types-C44Eg-i_.cjs';
3
+ export { c as createCoreEmitter } from './emitter-DKki0zYl.cjs';
4
4
  import { WrapOptions } from './fetch.cjs';
5
5
  export { getXrayContext } from './fetch.cjs';
6
6
  import '@opentelemetry/sdk-trace-base';
package/dist/next.d.ts CHANGED
@@ -1,6 +1,6 @@
1
- import { j as XrayRuntimeConfig, a as XrayEmitter } from './types-BrKvhHbn.js';
2
- export { e as CaptureConfig, f as RedactionConfig, R as RequestLog, X as XrayConfig, d as XrayContext } from './types-BrKvhHbn.js';
3
- export { c as createCoreEmitter } from './emitter-Dy7bRGTq.js';
1
+ import { j as XrayRuntimeConfig, a as XrayEmitter } from './types-C44Eg-i_.js';
2
+ export { e as CaptureConfig, f as RedactionConfig, R as RequestLog, X as XrayConfig, d as XrayContext } from './types-C44Eg-i_.js';
3
+ export { c as createCoreEmitter } from './emitter-DT-EuB8s.js';
4
4
  import { WrapOptions } from './fetch.js';
5
5
  export { getXrayContext } from './fetch.js';
6
6
  import '@opentelemetry/sdk-trace-base';
package/dist/next.js CHANGED
@@ -2,10 +2,10 @@ import {
2
2
  createEmitter,
3
3
  getXrayContext,
4
4
  wrapFetchPreserve
5
- } from "./chunk-DV3MVQBB.js";
6
- import "./chunk-GYXI3DWB.js";
7
- import "./chunk-NTIUR3OC.js";
8
- import "./chunk-7KT6EPVZ.js";
5
+ } from "./chunk-W42SQZKN.js";
6
+ import "./chunk-7EKBXVZE.js";
7
+ import "./chunk-AKPTTC2I.js";
8
+ import "./chunk-BKJO3FLI.js";
9
9
 
10
10
  // src/next/next.ts
11
11
  function createEmitter2(config, options) {
@@ -17,10 +17,44 @@ function createEmitter2(config, options) {
17
17
  }
18
18
  function wrapNextRoute(handler, xray, options) {
19
19
  return async (request, context) => {
20
- const wrapped = wrapFetchPreserve((req) => handler(req, context), xray, options);
20
+ let effectiveOptions = options;
21
+ if (!options?.route) {
22
+ const params = await context.params;
23
+ const route = inferRoute(new URL(request.url).pathname, params);
24
+ if (route) {
25
+ effectiveOptions = { ...options, route };
26
+ }
27
+ }
28
+ const wrapped = wrapFetchPreserve(
29
+ (req) => handler(req, context),
30
+ xray,
31
+ effectiveOptions
32
+ );
21
33
  return wrapped(request);
22
34
  };
23
35
  }
36
+ function inferRoute(pathname, params) {
37
+ const replacements = /* @__PURE__ */ new Map();
38
+ for (const [key, value] of Object.entries(params)) {
39
+ if (typeof value === "string") {
40
+ replacements.set(value, `[${key}]`);
41
+ }
42
+ }
43
+ if (replacements.size === 0) return void 0;
44
+ const segments = pathname.split("/");
45
+ let replaced = false;
46
+ for (let i = 0; i < segments.length; i++) {
47
+ const seg = segments[i];
48
+ const placeholder = replacements.get(seg);
49
+ if (placeholder) {
50
+ if (segments.indexOf(seg, i + 1) !== -1) return void 0;
51
+ segments[i] = placeholder;
52
+ replacements.delete(seg);
53
+ replaced = true;
54
+ }
55
+ }
56
+ return replaced ? segments.join("/") : void 0;
57
+ }
24
58
  export {
25
59
  createEmitter as createCoreEmitter,
26
60
  createEmitter2 as createEmitter,
package/dist/next.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/next/next.ts"],"sourcesContent":["import type { XrayEmitter, XrayRuntimeConfig } from '../core/index';\nimport {\n createEmitter as createFetchEmitter,\n getXrayContext,\n wrapFetchPreserve,\n type WrapOptions,\n} from '../fetch/fetch';\n\nexport { createFetchEmitter as createCoreEmitter };\nexport type {\n CaptureConfig,\n RedactionConfig,\n RequestLog,\n XrayConfig,\n XrayContext,\n XrayEmitter,\n XrayRuntimeConfig,\n} from '../core/index';\nexport type { WrapOptions } from '../fetch/fetch';\nexport { getXrayContext };\n\n// copy types from Next.js to avoid a package dependency\ntype NextRouteContext = {\n params: Promise<Record<string, string | string[]>>;\n};\n\ntype NextRouteHandler = (\n request: Request,\n context: NextRouteContext,\n) => Response | Promise<Response>;\n\ntype NextEmitter = ((handler: NextRouteHandler) => ReturnType<typeof wrapNextRoute>) & {\n flush: XrayEmitter['flush'];\n shutdown: XrayEmitter['shutdown'];\n};\n\n/**\n * Create a Next.js App Router wrapper and expose `flush()`/`shutdown()`.\n */\nexport function createEmitter(config: XrayRuntimeConfig, options?: WrapOptions): NextEmitter {\n const emitter = createFetchEmitter(config);\n const wrap = ((handler: NextRouteHandler) =>\n wrapNextRoute(handler, emitter, options)) as NextEmitter;\n wrap.flush = emitter.flush;\n wrap.shutdown = emitter.shutdown;\n return wrap;\n}\n\n/**\n * Wrap a Next.js route handler using an existing core `XrayEmitter`.\n */\nexport function wrapNextRoute(\n handler: NextRouteHandler,\n xray: XrayEmitter,\n options?: WrapOptions,\n): (request: Request, context: NextRouteContext) => Promise<Response> {\n return async (request, context) => {\n const wrapped = wrapFetchPreserve((req: Request) => handler(req, context), xray, options);\n return wrapped(request);\n };\n}\n"],"mappings":";;;;;;;;;;AAuCO,SAASA,eAAc,QAA2B,SAAoC;AAC3F,QAAM,UAAU,cAAmB,MAAM;AACzC,QAAM,QAAQ,CAAC,YACb,cAAc,SAAS,SAAS,OAAO;AACzC,OAAK,QAAQ,QAAQ;AACrB,OAAK,WAAW,QAAQ;AACxB,SAAO;AACT;AAKO,SAAS,cACd,SACA,MACA,SACoE;AACpE,SAAO,OAAO,SAAS,YAAY;AACjC,UAAM,UAAU,kBAAkB,CAAC,QAAiB,QAAQ,KAAK,OAAO,GAAG,MAAM,OAAO;AACxF,WAAO,QAAQ,OAAO;AAAA,EACxB;AACF;","names":["createEmitter"]}
1
+ {"version":3,"sources":["../src/next/next.ts"],"sourcesContent":["import type { XrayEmitter, XrayRuntimeConfig } from '../core/index';\nimport {\n createEmitter as createFetchEmitter,\n getXrayContext,\n wrapFetchPreserve,\n type WrapOptions,\n} from '../fetch/fetch';\n\nexport { createFetchEmitter as createCoreEmitter };\nexport type {\n CaptureConfig,\n RedactionConfig,\n RequestLog,\n XrayConfig,\n XrayContext,\n XrayEmitter,\n XrayRuntimeConfig,\n} from '../core/index';\nexport type { WrapOptions } from '../fetch/fetch';\nexport { getXrayContext };\n\n// copy types from Next.js to avoid a package dependency\ntype NextRouteContext = {\n params: Promise<Record<string, string | string[]>>;\n};\n\ntype NextRouteHandler = (\n request: Request,\n context: NextRouteContext,\n) => Response | Promise<Response>;\n\ntype NextEmitter = ((handler: NextRouteHandler) => ReturnType<typeof wrapNextRoute>) & {\n flush: XrayEmitter['flush'];\n shutdown: XrayEmitter['shutdown'];\n};\n\n/**\n * Create a Next.js App Router wrapper and expose `flush()`/`shutdown()`.\n */\nexport function createEmitter(config: XrayRuntimeConfig, options?: WrapOptions): NextEmitter {\n const emitter = createFetchEmitter(config);\n const wrap = ((handler: NextRouteHandler) =>\n wrapNextRoute(handler, emitter, options)) as NextEmitter;\n wrap.flush = emitter.flush;\n wrap.shutdown = emitter.shutdown;\n return wrap;\n}\n\n/**\n * Wrap a Next.js route handler using an existing core `XrayEmitter`.\n */\nexport function wrapNextRoute(\n handler: NextRouteHandler,\n xray: XrayEmitter,\n options?: WrapOptions,\n): (request: Request, context: NextRouteContext) => Promise<Response> {\n return async (request, context) => {\n // When no explicit route option was provided, infer the route pattern\n // from the URL pathname and the resolved params (e.g. { subject: \"test\" }\n // turns /hello/test into /hello/[subject]).\n let effectiveOptions = options;\n if (!options?.route) {\n const params = await context.params;\n const route = inferRoute(new URL(request.url).pathname, params);\n if (route) {\n effectiveOptions = { ...options, route };\n }\n }\n\n const wrapped = wrapFetchPreserve(\n (req: Request) => handler(req, context),\n xray,\n effectiveOptions,\n );\n return wrapped(request);\n };\n}\n\nfunction inferRoute(\n pathname: string,\n params: Record<string, string | string[]>,\n): string | undefined {\n // Build a map from param value → placeholder for single-segment params.\n const replacements = new Map<string, string>();\n for (const [key, value] of Object.entries(params)) {\n if (typeof value === 'string') {\n replacements.set(value, `[${key}]`);\n }\n }\n if (replacements.size === 0) return undefined;\n\n const segments = pathname.split('/');\n let replaced = false;\n for (let i = 0; i < segments.length; i++) {\n const seg = segments[i]!;\n const placeholder = replacements.get(seg);\n if (placeholder) {\n // If this param value appears in more than one segment we cannot\n // tell which is the dynamic one — bail out entirely.\n if (segments.indexOf(seg, i + 1) !== -1) return undefined;\n segments[i] = placeholder;\n replacements.delete(seg);\n replaced = true;\n }\n }\n return replaced ? segments.join('/') : undefined;\n}\n"],"mappings":";;;;;;;;;;AAuCO,SAASA,eAAc,QAA2B,SAAoC;AAC3F,QAAM,UAAU,cAAmB,MAAM;AACzC,QAAM,QAAQ,CAAC,YACb,cAAc,SAAS,SAAS,OAAO;AACzC,OAAK,QAAQ,QAAQ;AACrB,OAAK,WAAW,QAAQ;AACxB,SAAO;AACT;AAKO,SAAS,cACd,SACA,MACA,SACoE;AACpE,SAAO,OAAO,SAAS,YAAY;AAIjC,QAAI,mBAAmB;AACvB,QAAI,CAAC,SAAS,OAAO;AACnB,YAAM,SAAS,MAAM,QAAQ;AAC7B,YAAM,QAAQ,WAAW,IAAI,IAAI,QAAQ,GAAG,EAAE,UAAU,MAAM;AAC9D,UAAI,OAAO;AACT,2BAAmB,EAAE,GAAG,SAAS,MAAM;AAAA,MACzC;AAAA,IACF;AAEA,UAAM,UAAU;AAAA,MACd,CAAC,QAAiB,QAAQ,KAAK,OAAO;AAAA,MACtC;AAAA,MACA;AAAA,IACF;AACA,WAAO,QAAQ,OAAO;AAAA,EACxB;AACF;AAEA,SAAS,WACP,UACA,QACoB;AAEpB,QAAM,eAAe,oBAAI,IAAoB;AAC7C,aAAW,CAAC,KAAK,KAAK,KAAK,OAAO,QAAQ,MAAM,GAAG;AACjD,QAAI,OAAO,UAAU,UAAU;AAC7B,mBAAa,IAAI,OAAO,IAAI,GAAG,GAAG;AAAA,IACpC;AAAA,EACF;AACA,MAAI,aAAa,SAAS,EAAG,QAAO;AAEpC,QAAM,WAAW,SAAS,MAAM,GAAG;AACnC,MAAI,WAAW;AACf,WAAS,IAAI,GAAG,IAAI,SAAS,QAAQ,KAAK;AACxC,UAAM,MAAM,SAAS,CAAC;AACtB,UAAM,cAAc,aAAa,IAAI,GAAG;AACxC,QAAI,aAAa;AAGf,UAAI,SAAS,QAAQ,KAAK,IAAI,CAAC,MAAM,GAAI,QAAO;AAChD,eAAS,CAAC,IAAI;AACd,mBAAa,OAAO,GAAG;AACvB,iBAAW;AAAA,IACb;AAAA,EACF;AACA,SAAO,WAAW,SAAS,KAAK,GAAG,IAAI;AACzC;","names":["createEmitter"]}