@stainlessdev/xray-emitter 0.1.0 → 0.3.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 (86) hide show
  1. package/README.md +2 -2
  2. package/dist/{chunk-2HW4AEKB.cjs → chunk-55YD27PV.cjs} +28 -28
  3. package/dist/chunk-55YD27PV.cjs.map +1 -0
  4. package/dist/{chunk-YVMMCTXW.js → chunk-7KT6EPVZ.js} +1 -1
  5. package/dist/{chunk-YVMMCTXW.js.map → chunk-7KT6EPVZ.js.map} +1 -1
  6. package/dist/{chunk-GNSXLLEC.cjs → chunk-CPHFCOA5.cjs} +9 -9
  7. package/dist/{chunk-GNSXLLEC.cjs.map → chunk-CPHFCOA5.cjs.map} +1 -1
  8. package/dist/{chunk-JKW6E4L3.cjs → chunk-DNBARLGB.cjs} +1 -1
  9. package/dist/{chunk-JKW6E4L3.cjs.map → chunk-DNBARLGB.cjs.map} +1 -1
  10. package/dist/{chunk-ZP5OEA4I.js → chunk-DV3MVQBB.js} +4 -4
  11. package/dist/chunk-DV3MVQBB.js.map +1 -0
  12. package/dist/{chunk-WTHVUHGI.js → chunk-FGXXKIF7.js} +4 -4
  13. package/dist/chunk-FGXXKIF7.js.map +1 -0
  14. package/dist/{chunk-TSCMZ5TV.js → chunk-GYXI3DWB.js} +35 -3
  15. package/dist/chunk-GYXI3DWB.js.map +1 -0
  16. package/dist/{chunk-6UH43LVD.js → chunk-NTIUR3OC.js} +2 -2
  17. package/dist/{chunk-DBI3HXNR.cjs → chunk-SUVCVINA.cjs} +47 -47
  18. package/dist/chunk-SUVCVINA.cjs.map +1 -0
  19. package/dist/{chunk-XO6YWDFL.cjs → chunk-UJWD5CFA.cjs} +53 -21
  20. package/dist/chunk-UJWD5CFA.cjs.map +1 -0
  21. package/dist/effect.cjs +186 -0
  22. package/dist/effect.cjs.map +1 -0
  23. package/dist/effect.d.cts +60 -0
  24. package/dist/effect.d.ts +60 -0
  25. package/dist/effect.js +186 -0
  26. package/dist/effect.js.map +1 -0
  27. package/dist/emitter-Bi_m_w5h.d.cts +10 -0
  28. package/dist/emitter-Dy7bRGTq.d.ts +10 -0
  29. package/dist/express.cjs +7 -7
  30. package/dist/express.cjs.map +1 -1
  31. package/dist/express.d.cts +9 -2
  32. package/dist/express.d.ts +9 -2
  33. package/dist/express.js +4 -4
  34. package/dist/express.js.map +1 -1
  35. package/dist/fastify.cjs +10 -10
  36. package/dist/fastify.cjs.map +1 -1
  37. package/dist/fastify.d.cts +9 -2
  38. package/dist/fastify.d.ts +9 -2
  39. package/dist/fastify.js +4 -4
  40. package/dist/fastify.js.map +1 -1
  41. package/dist/fetch.cjs +5 -5
  42. package/dist/fetch.d.cts +40 -4
  43. package/dist/fetch.d.ts +40 -4
  44. package/dist/fetch.js +4 -4
  45. package/dist/hono.cjs +9 -9
  46. package/dist/hono.cjs.map +1 -1
  47. package/dist/hono.d.cts +15 -3
  48. package/dist/hono.d.ts +15 -3
  49. package/dist/hono.js +4 -4
  50. package/dist/hono.js.map +1 -1
  51. package/dist/index.cjs +3 -3
  52. package/dist/index.d.cts +8 -2
  53. package/dist/index.d.ts +8 -2
  54. package/dist/index.js +2 -2
  55. package/dist/internal.cjs +3 -3
  56. package/dist/internal.d.cts +1 -1
  57. package/dist/internal.d.ts +1 -1
  58. package/dist/internal.js +2 -2
  59. package/dist/next.cjs +7 -7
  60. package/dist/next.cjs.map +1 -1
  61. package/dist/next.d.cts +10 -3
  62. package/dist/next.d.ts +10 -3
  63. package/dist/next.js +4 -4
  64. package/dist/next.js.map +1 -1
  65. package/dist/node.cjs +5 -5
  66. package/dist/node.d.cts +42 -1
  67. package/dist/node.d.ts +42 -1
  68. package/dist/node.js +4 -4
  69. package/dist/remix.cjs +7 -7
  70. package/dist/remix.cjs.map +1 -1
  71. package/dist/remix.d.cts +11 -3
  72. package/dist/remix.d.ts +11 -3
  73. package/dist/remix.js +4 -4
  74. package/dist/remix.js.map +1 -1
  75. package/dist/types-BrKvhHbn.d.cts +446 -0
  76. package/dist/types-BrKvhHbn.d.ts +446 -0
  77. package/package.json +11 -1
  78. package/dist/chunk-2HW4AEKB.cjs.map +0 -1
  79. package/dist/chunk-DBI3HXNR.cjs.map +0 -1
  80. package/dist/chunk-TSCMZ5TV.js.map +0 -1
  81. package/dist/chunk-WTHVUHGI.js.map +0 -1
  82. package/dist/chunk-XO6YWDFL.cjs.map +0 -1
  83. package/dist/chunk-ZP5OEA4I.js.map +0 -1
  84. package/dist/types-Z1nirh-F.d.cts +0 -149
  85. package/dist/types-Z1nirh-F.d.ts +0 -149
  86. /package/dist/{chunk-6UH43LVD.js.map → chunk-NTIUR3OC.js.map} +0 -0
@@ -1,6 +1,6 @@
1
1
  import { IncomingMessage, ServerResponse } from 'node:http';
2
- import { j as XrayRuntimeConfig, a as XrayEmitter } from './types-Z1nirh-F.cjs';
3
- export { e as CaptureConfig, f as RedactionConfig, R as RequestLog, X as XrayConfig, d as XrayContext } from './types-Z1nirh-F.cjs';
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';
4
4
  import { WrapOptions } from './node.cjs';
5
5
  export { createEmitter as createCoreEmitter } from './node.cjs';
6
6
  import '@opentelemetry/sdk-trace-base';
@@ -11,7 +11,14 @@ type ExpressEmitter = ExpressMiddleware & {
11
11
  flush: XrayEmitter['flush'];
12
12
  shutdown: XrayEmitter['shutdown'];
13
13
  };
14
+ /**
15
+ * Create Express middleware that instruments requests and exposes
16
+ * `flush()`/`shutdown()` on the returned middleware function.
17
+ */
14
18
  declare function createEmitter(config: XrayRuntimeConfig, options?: WrapOptions): ExpressEmitter;
19
+ /**
20
+ * Create Express middleware from an existing core `XrayEmitter`.
21
+ */
15
22
  declare function createExpressMiddleware(xray: XrayEmitter, options?: WrapOptions): ExpressMiddleware;
16
23
 
17
24
  export { WrapOptions, XrayEmitter, XrayRuntimeConfig, createEmitter, createExpressMiddleware };
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-Z1nirh-F.js';
3
- export { e as CaptureConfig, f as RedactionConfig, R as RequestLog, X as XrayConfig, d as XrayContext } from './types-Z1nirh-F.js';
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';
4
4
  import { WrapOptions } from './node.js';
5
5
  export { createEmitter as createCoreEmitter } from './node.js';
6
6
  import '@opentelemetry/sdk-trace-base';
@@ -11,7 +11,14 @@ type ExpressEmitter = ExpressMiddleware & {
11
11
  flush: XrayEmitter['flush'];
12
12
  shutdown: XrayEmitter['shutdown'];
13
13
  };
14
+ /**
15
+ * Create Express middleware that instruments requests and exposes
16
+ * `flush()`/`shutdown()` on the returned middleware function.
17
+ */
14
18
  declare function createEmitter(config: XrayRuntimeConfig, options?: WrapOptions): ExpressEmitter;
19
+ /**
20
+ * Create Express middleware from an existing core `XrayEmitter`.
21
+ */
15
22
  declare function createExpressMiddleware(xray: XrayEmitter, options?: WrapOptions): ExpressMiddleware;
16
23
 
17
24
  export { WrapOptions, XrayEmitter, XrayRuntimeConfig, createEmitter, createExpressMiddleware };
package/dist/express.js CHANGED
@@ -1,10 +1,10 @@
1
1
  import {
2
2
  createEmitter,
3
3
  wrapHttpHandler
4
- } from "./chunk-WTHVUHGI.js";
5
- import "./chunk-TSCMZ5TV.js";
6
- import "./chunk-6UH43LVD.js";
7
- import "./chunk-YVMMCTXW.js";
4
+ } from "./chunk-FGXXKIF7.js";
5
+ import "./chunk-GYXI3DWB.js";
6
+ import "./chunk-NTIUR3OC.js";
7
+ import "./chunk-7KT6EPVZ.js";
8
8
 
9
9
  // src/express/express.ts
10
10
  function createEmitter2(config, options) {
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/express/express.ts"],"sourcesContent":["import type { IncomingMessage, ServerResponse } from 'node:http';\nimport type { XrayEmitter, XrayContext, XrayRuntimeConfig } from '../core/index';\nimport {\n createEmitter as createNodeEmitter,\n wrapHttpHandler,\n type WrapOptions,\n} from '../node/node';\n\nexport { createNodeEmitter 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 '../node/node';\n\ntype NextFunction = (err?: unknown) => void;\n\n// copy types from Express to avoid a package dependency\ntype ExpressMiddleware = (req: IncomingMessage, res: ServerResponse, next: NextFunction) => void;\n\ntype ExpressEmitter = ExpressMiddleware & {\n flush: XrayEmitter['flush'];\n shutdown: XrayEmitter['shutdown'];\n};\n\nexport function createEmitter(config: XrayRuntimeConfig, options?: WrapOptions): ExpressEmitter {\n const emitter = createNodeEmitter(config);\n const middleware = createExpressMiddleware(emitter, options) as ExpressEmitter;\n middleware.flush = emitter.flush;\n middleware.shutdown = emitter.shutdown;\n return middleware;\n}\n\nexport function createExpressMiddleware(\n xray: XrayEmitter,\n options?: WrapOptions,\n): ExpressMiddleware {\n return (req, res, next) => {\n const wrapped = wrapHttpHandler(\n () => {\n next();\n },\n xray,\n {\n ...options,\n onRequest: (ctx: XrayContext) => {\n (req as typeof req & { xray?: XrayContext }).xray = ctx;\n (res as typeof res & { locals?: Record<string, unknown> }).locals ??= {};\n (\n (res as typeof res & { locals: Record<string, unknown> }).locals as {\n xray?: XrayContext;\n }\n ).xray = ctx;\n options?.onRequest?.(ctx);\n },\n },\n );\n\n const result = wrapped(req, res);\n if (result && typeof (result as Promise<void>).catch === 'function') {\n void (result as Promise<void>).catch(next);\n }\n };\n}\n"],"mappings":";;;;;;;;;AA8BO,SAASA,eAAc,QAA2B,SAAuC;AAC9F,QAAM,UAAU,cAAkB,MAAM;AACxC,QAAM,aAAa,wBAAwB,SAAS,OAAO;AAC3D,aAAW,QAAQ,QAAQ;AAC3B,aAAW,WAAW,QAAQ;AAC9B,SAAO;AACT;AAEO,SAAS,wBACd,MACA,SACmB;AACnB,SAAO,CAAC,KAAK,KAAK,SAAS;AACzB,UAAM,UAAU;AAAA,MACd,MAAM;AACJ,aAAK;AAAA,MACP;AAAA,MACA;AAAA,MACA;AAAA,QACE,GAAG;AAAA,QACH,WAAW,CAAC,QAAqB;AAC/B,UAAC,IAA4C,OAAO;AACpD,UAAC,IAA0D,WAA1D,IAA0D,SAAW,CAAC;AACvE,UACG,IAAyD,OAG1D,OAAO;AACT,mBAAS,YAAY,GAAG;AAAA,QAC1B;AAAA,MACF;AAAA,IACF;AAEA,UAAM,SAAS,QAAQ,KAAK,GAAG;AAC/B,QAAI,UAAU,OAAQ,OAAyB,UAAU,YAAY;AACnE,WAAM,OAAyB,MAAM,IAAI;AAAA,IAC3C;AAAA,EACF;AACF;","names":["createEmitter"]}
1
+ {"version":3,"sources":["../src/express/express.ts"],"sourcesContent":["import type { IncomingMessage, ServerResponse } from 'node:http';\nimport type { XrayEmitter, XrayContext, XrayRuntimeConfig } from '../core/index';\nimport {\n createEmitter as createNodeEmitter,\n wrapHttpHandler,\n type WrapOptions,\n} from '../node/node';\n\nexport { createNodeEmitter 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 '../node/node';\n\ntype NextFunction = (err?: unknown) => void;\n\n// copy types from Express to avoid a package dependency\ntype ExpressMiddleware = (req: IncomingMessage, res: ServerResponse, next: NextFunction) => void;\n\ntype ExpressEmitter = ExpressMiddleware & {\n flush: XrayEmitter['flush'];\n shutdown: XrayEmitter['shutdown'];\n};\n\n/**\n * Create Express middleware that instruments requests and exposes\n * `flush()`/`shutdown()` on the returned middleware function.\n */\nexport function createEmitter(config: XrayRuntimeConfig, options?: WrapOptions): ExpressEmitter {\n const emitter = createNodeEmitter(config);\n const middleware = createExpressMiddleware(emitter, options) as ExpressEmitter;\n middleware.flush = emitter.flush;\n middleware.shutdown = emitter.shutdown;\n return middleware;\n}\n\n/**\n * Create Express middleware from an existing core `XrayEmitter`.\n */\nexport function createExpressMiddleware(\n xray: XrayEmitter,\n options?: WrapOptions,\n): ExpressMiddleware {\n return (req, res, next) => {\n const wrapped = wrapHttpHandler(\n () => {\n next();\n },\n xray,\n {\n ...options,\n onRequest: (ctx: XrayContext) => {\n (req as typeof req & { xray?: XrayContext }).xray = ctx;\n (res as typeof res & { locals?: Record<string, unknown> }).locals ??= {};\n (\n (res as typeof res & { locals: Record<string, unknown> }).locals as {\n xray?: XrayContext;\n }\n ).xray = ctx;\n options?.onRequest?.(ctx);\n },\n },\n );\n\n const result = wrapped(req, res);\n if (result && typeof (result as Promise<void>).catch === 'function') {\n void (result as Promise<void>).catch(next);\n }\n };\n}\n"],"mappings":";;;;;;;;;AAkCO,SAASA,eAAc,QAA2B,SAAuC;AAC9F,QAAM,UAAU,cAAkB,MAAM;AACxC,QAAM,aAAa,wBAAwB,SAAS,OAAO;AAC3D,aAAW,QAAQ,QAAQ;AAC3B,aAAW,WAAW,QAAQ;AAC9B,SAAO;AACT;AAKO,SAAS,wBACd,MACA,SACmB;AACnB,SAAO,CAAC,KAAK,KAAK,SAAS;AACzB,UAAM,UAAU;AAAA,MACd,MAAM;AACJ,aAAK;AAAA,MACP;AAAA,MACA;AAAA,MACA;AAAA,QACE,GAAG;AAAA,QACH,WAAW,CAAC,QAAqB;AAC/B,UAAC,IAA4C,OAAO;AACpD,UAAC,IAA0D,WAA1D,IAA0D,SAAW,CAAC;AACvE,UACG,IAAyD,OAG1D,OAAO;AACT,mBAAS,YAAY,GAAG;AAAA,QAC1B;AAAA,MACF;AAAA,IACF;AAEA,UAAM,SAAS,QAAQ,KAAK,GAAG;AAC/B,QAAI,UAAU,OAAQ,OAAyB,UAAU,YAAY;AACnE,WAAM,OAAyB,MAAM,IAAI;AAAA,IAC3C;AAAA,EACF;AACF;","names":["createEmitter"]}
package/dist/fastify.cjs CHANGED
@@ -2,16 +2,16 @@
2
2
 
3
3
 
4
4
 
5
- var _chunk2HW4AEKBcjs = require('./chunk-2HW4AEKB.cjs');
6
- require('./chunk-XO6YWDFL.cjs');
5
+ var _chunk55YD27PVcjs = require('./chunk-55YD27PV.cjs');
6
+ require('./chunk-UJWD5CFA.cjs');
7
7
 
8
8
 
9
- var _chunkGNSXLLECcjs = require('./chunk-GNSXLLEC.cjs');
10
- require('./chunk-JKW6E4L3.cjs');
9
+ var _chunkCPHFCOA5cjs = require('./chunk-CPHFCOA5.cjs');
10
+ require('./chunk-DNBARLGB.cjs');
11
11
 
12
12
  // src/fastify/fastify.ts
13
13
  function createEmitter2(config, options) {
14
- const emitter = _chunk2HW4AEKBcjs.createEmitter.call(void 0, config);
14
+ const emitter = _chunk55YD27PVcjs.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 = _chunk2HW4AEKBcjs.wrapHttpHandler.call(void 0, () => {
23
+ const nodeHandler = _chunk55YD27PVcjs.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 = _chunk2HW4AEKBcjs.getXrayContext.call(void 0, req.raw);
40
+ req.xray = _chunk55YD27PVcjs.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 = _chunk2HW4AEKBcjs.getXrayContext.call(void 0, anyReq.raw);
50
+ const ctx = _chunk55YD27PVcjs.getXrayContext.call(void 0, anyReq.raw);
51
51
  if (ctx) {
52
- _chunkGNSXLLECcjs.setContextRoute.call(void 0, ctx, route);
52
+ _chunkCPHFCOA5cjs.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 = _chunk2HW4AEKBcjs.createEmitter; exports.createEmitter = createEmitter2;
63
+ exports.addFastifyHooks = addFastifyHooks; exports.createCoreEmitter = _chunk55YD27PVcjs.createEmitter; exports.createEmitter = createEmitter2;
64
64
  //# sourceMappingURL=fastify.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["/home/runner/work/xray-emitter-js/xray-emitter-js/dist/fastify.cjs","../src/fastify/fastify.ts"],"names":["createEmitter"],"mappings":"AAAA;AACE;AACA;AACA;AACF,wDAA6B;AAC7B,gCAA6B;AAC7B;AACE;AACF,wDAA6B;AAC7B,gCAA6B;AAC7B;AACA;ACuBO,SAASA,cAAAA,CAAc,MAAA,EAA2B,OAAA,EAAuC;AAC9F,EAAA,MAAM,QAAA,EAAU,6CAAA,MAAwB,CAAA;AACxC,EAAA,MAAM,SAAA,EAAA,CAAY,CAAC,QAAA,EAAA,GAA8B;AAC/C,IAAA,eAAA,CAAgB,QAAA,EAAU,OAAA,EAAS,OAAO,CAAA;AAAA,EAC5C,CAAA,CAAA;AACA,EAAA,QAAA,CAAS,MAAA,EAAQ,OAAA,CAAQ,KAAA;AACzB,EAAA,QAAA,CAAS,SAAA,EAAW,OAAA,CAAQ,QAAA;AAC5B,EAAA,OAAO,QAAA;AACT;AAEO,SAAS,eAAA,CACd,QAAA,EACA,IAAA,EACA,OAAA,EACM;AACN,EAAA,MAAM,YAAA,EAAc,+CAAA,CAAgB,EAAA,GAAM;AAAA,EAAC,CAAA,EAAG,IAAA,EAAM;AAAA,IAClD,GAAG,OAAA;AAAA,IACH,SAAA,EAAW,CAAC,GAAA,EAAA,GAAqB;AAC/B,sBAAA,OAAA,2BAAS,SAAA,0BAAA,CAAY,GAAG,GAAA;AAAA,IAC1B;AAAA,EACF,CAAC,CAAA;AAED,EAAA,QAAA,CAAS,OAAA;AAAA,IACP,WAAA;AAAA,IACA,CAAC,OAAA,EAAkB,KAAA,EAAgB,IAAA,EAAA,GAAkC;AACnE,MAAA,MAAM,IAAA,EAAM,OAAA;AAIZ,MAAA,MAAM,IAAA,EAAM,KAAA;AACZ,MAAA,GAAA,CAAI,CAAC,GAAA,CAAI,IAAA,GAAO,CAAC,GAAA,CAAI,GAAA,EAAK;AACxB,QAAA,IAAA,CAAK,CAAA;AACL,QAAA,MAAA;AAAA,MACF;AACA,MAAA,WAAA,CAAY,GAAA,CAAI,GAAA,EAAK,GAAA,CAAI,GAAG,CAAA;AAC5B,MAAA,GAAA,CAAI,KAAA,EAAO,8CAAA,GAAe,CAAI,GAAG,CAAA;AACjC,MAAA,IAAA,CAAK,CAAA;AAAA,IACP;AAAA,EACF,CAAA;AAEA,EAAA,QAAA,CAAS,OAAA;AAAA,IACP,YAAA;AAAA,IACA,CAAC,OAAA,EAAkB,MAAA,EAAiB,IAAA,EAAA,GAAkC;AACpE,MAAA,MAAM,OAAA,EAAS,OAAA;AAIf,MAAA,MAAM,MAAA,kBAAQ,MAAA,qBAAO,YAAA,6BAAc,KAAA;AACnC,MAAA,GAAA,CAAI,MAAA,GAAS,MAAA,CAAO,GAAA,EAAK;AACvB,QAAA,MAAM,IAAA,EAAM,8CAAA,MAAe,CAAO,GAAG,CAAA;AACrC,QAAA,GAAA,CAAI,GAAA,EAAK;AACP,UAAA,+CAAA,GAAgB,EAAK,KAAK,CAAA;AAAA,QAC5B;AAAA,MACF;AACA,MAAA,IAAA,CAAK,CAAA;AAAA,IACP;AAAA,EACF,CAAA;AACF;ADjCA;AACE;AACA;AACA;AACF,+IAAC","file":"/home/runner/work/xray-emitter-js/xray-emitter-js/dist/fastify.cjs","sourcesContent":[null,"import type { XrayEmitter, XrayContext, XrayRuntimeConfig } from '../core/index';\nimport { setContextRoute } from '../core/internal';\nimport {\n createEmitter as createNodeEmitter,\n wrapHttpHandler,\n getXrayContext,\n type WrapOptions,\n} from '../node/node';\n\nexport { createNodeEmitter 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 '../node/node';\n\n// copy types from Fastify to avoid a package dependency\ntype FastifyInstance = {\n addHook: {\n (name: 'onRequest', hook: (...args: any[]) => unknown): void;\n (name: 'preHandler', hook: (...args: any[]) => unknown): void;\n };\n};\n\ntype FastifyEmitter = ((instance: FastifyInstance) => void) & {\n flush: XrayEmitter['flush'];\n shutdown: XrayEmitter['shutdown'];\n};\n\nexport function createEmitter(config: XrayRuntimeConfig, options?: WrapOptions): FastifyEmitter {\n const emitter = createNodeEmitter(config);\n const register = ((instance: FastifyInstance) => {\n addFastifyHooks(instance, emitter, options);\n }) as FastifyEmitter;\n register.flush = emitter.flush;\n register.shutdown = emitter.shutdown;\n return register;\n}\n\nexport function addFastifyHooks(\n instance: FastifyInstance,\n xray: XrayEmitter,\n options?: WrapOptions,\n): void {\n const nodeHandler = wrapHttpHandler(() => {}, xray, {\n ...options,\n onRequest: (ctx: XrayContext) => {\n options?.onRequest?.(ctx);\n },\n });\n\n instance.addHook(\n 'onRequest',\n (request: unknown, reply: unknown, next: (err?: unknown) => void) => {\n const req = request as {\n raw?: Parameters<typeof nodeHandler>[0];\n xray?: XrayContext;\n };\n const res = reply as { raw?: Parameters<typeof nodeHandler>[1] };\n if (!req.raw || !res.raw) {\n next();\n return;\n }\n nodeHandler(req.raw, res.raw);\n req.xray = getXrayContext(req.raw);\n next();\n },\n );\n\n instance.addHook(\n 'preHandler',\n (request: unknown, _reply: unknown, next: (err?: unknown) => void) => {\n const anyReq = request as {\n routeOptions?: { url?: string };\n raw?: Parameters<typeof nodeHandler>[0];\n };\n const route = anyReq.routeOptions?.url;\n if (route && anyReq.raw) {\n const ctx = getXrayContext(anyReq.raw);\n if (ctx) {\n setContextRoute(ctx, route);\n }\n }\n next();\n },\n );\n}\n"]}
1
+ {"version":3,"sources":["/home/runner/work/xray-emitter-js/xray-emitter-js/dist/fastify.cjs","../src/fastify/fastify.ts"],"names":["createEmitter"],"mappings":"AAAA;AACE;AACA;AACA;AACF,wDAA6B;AAC7B,gCAA6B;AAC7B;AACE;AACF,wDAA6B;AAC7B,gCAA6B;AAC7B;AACA;AC2BO,SAASA,cAAAA,CAAc,MAAA,EAA2B,OAAA,EAAuC;AAC9F,EAAA,MAAM,QAAA,EAAU,6CAAA,MAAwB,CAAA;AACxC,EAAA,MAAM,SAAA,EAAA,CAAY,CAAC,QAAA,EAAA,GAA8B;AAC/C,IAAA,eAAA,CAAgB,QAAA,EAAU,OAAA,EAAS,OAAO,CAAA;AAAA,EAC5C,CAAA,CAAA;AACA,EAAA,QAAA,CAAS,MAAA,EAAQ,OAAA,CAAQ,KAAA;AACzB,EAAA,QAAA,CAAS,SAAA,EAAW,OAAA,CAAQ,QAAA;AAC5B,EAAA,OAAO,QAAA;AACT;AAKO,SAAS,eAAA,CACd,QAAA,EACA,IAAA,EACA,OAAA,EACM;AACN,EAAA,MAAM,YAAA,EAAc,+CAAA,CAAgB,EAAA,GAAM;AAAA,EAAC,CAAA,EAAG,IAAA,EAAM;AAAA,IAClD,GAAG,OAAA;AAAA,IACH,SAAA,EAAW,CAAC,GAAA,EAAA,GAAqB;AAC/B,sBAAA,OAAA,2BAAS,SAAA,0BAAA,CAAY,GAAG,GAAA;AAAA,IAC1B;AAAA,EACF,CAAC,CAAA;AAED,EAAA,QAAA,CAAS,OAAA;AAAA,IACP,WAAA;AAAA,IACA,CAAC,OAAA,EAAkB,KAAA,EAAgB,IAAA,EAAA,GAAkC;AACnE,MAAA,MAAM,IAAA,EAAM,OAAA;AAIZ,MAAA,MAAM,IAAA,EAAM,KAAA;AACZ,MAAA,GAAA,CAAI,CAAC,GAAA,CAAI,IAAA,GAAO,CAAC,GAAA,CAAI,GAAA,EAAK;AACxB,QAAA,IAAA,CAAK,CAAA;AACL,QAAA,MAAA;AAAA,MACF;AACA,MAAA,WAAA,CAAY,GAAA,CAAI,GAAA,EAAK,GAAA,CAAI,GAAG,CAAA;AAC5B,MAAA,GAAA,CAAI,KAAA,EAAO,8CAAA,GAAe,CAAI,GAAG,CAAA;AACjC,MAAA,IAAA,CAAK,CAAA;AAAA,IACP;AAAA,EACF,CAAA;AAEA,EAAA,QAAA,CAAS,OAAA;AAAA,IACP,YAAA;AAAA,IACA,CAAC,OAAA,EAAkB,MAAA,EAAiB,IAAA,EAAA,GAAkC;AACpE,MAAA,MAAM,OAAA,EAAS,OAAA;AAIf,MAAA,MAAM,MAAA,kBAAQ,MAAA,qBAAO,YAAA,6BAAc,KAAA;AACnC,MAAA,GAAA,CAAI,MAAA,GAAS,MAAA,CAAO,GAAA,EAAK;AACvB,QAAA,MAAM,IAAA,EAAM,8CAAA,MAAe,CAAO,GAAG,CAAA;AACrC,QAAA,GAAA,CAAI,GAAA,EAAK;AACP,UAAA,+CAAA,GAAgB,EAAK,KAAK,CAAA;AAAA,QAC5B;AAAA,MACF;AACA,MAAA,IAAA,CAAK,CAAA;AAAA,IACP;AAAA,EACF,CAAA;AACF;ADxCA;AACE;AACA;AACA;AACF,+IAAC","file":"/home/runner/work/xray-emitter-js/xray-emitter-js/dist/fastify.cjs","sourcesContent":[null,"import type { XrayEmitter, XrayContext, XrayRuntimeConfig } from '../core/index';\nimport { setContextRoute } from '../core/internal';\nimport {\n createEmitter as createNodeEmitter,\n wrapHttpHandler,\n getXrayContext,\n type WrapOptions,\n} from '../node/node';\n\nexport { createNodeEmitter 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 '../node/node';\n\n// copy types from Fastify to avoid a package dependency\ntype FastifyInstance = {\n addHook: {\n (name: 'onRequest', hook: (...args: any[]) => unknown): void;\n (name: 'preHandler', hook: (...args: any[]) => unknown): void;\n };\n};\n\ntype FastifyEmitter = ((instance: FastifyInstance) => void) & {\n flush: XrayEmitter['flush'];\n shutdown: XrayEmitter['shutdown'];\n};\n\n/**\n * Create a Fastify plugin-style registrar that installs X-ray hooks and\n * exposes `flush()`/`shutdown()`.\n */\nexport function createEmitter(config: XrayRuntimeConfig, options?: WrapOptions): FastifyEmitter {\n const emitter = createNodeEmitter(config);\n const register = ((instance: FastifyInstance) => {\n addFastifyHooks(instance, emitter, options);\n }) as FastifyEmitter;\n register.flush = emitter.flush;\n register.shutdown = emitter.shutdown;\n return register;\n}\n\n/**\n * Add X-ray request lifecycle hooks to an existing Fastify instance.\n */\nexport function addFastifyHooks(\n instance: FastifyInstance,\n xray: XrayEmitter,\n options?: WrapOptions,\n): void {\n const nodeHandler = wrapHttpHandler(() => {}, xray, {\n ...options,\n onRequest: (ctx: XrayContext) => {\n options?.onRequest?.(ctx);\n },\n });\n\n instance.addHook(\n 'onRequest',\n (request: unknown, reply: unknown, next: (err?: unknown) => void) => {\n const req = request as {\n raw?: Parameters<typeof nodeHandler>[0];\n xray?: XrayContext;\n };\n const res = reply as { raw?: Parameters<typeof nodeHandler>[1] };\n if (!req.raw || !res.raw) {\n next();\n return;\n }\n nodeHandler(req.raw, res.raw);\n req.xray = getXrayContext(req.raw);\n next();\n },\n );\n\n instance.addHook(\n 'preHandler',\n (request: unknown, _reply: unknown, next: (err?: unknown) => void) => {\n const anyReq = request as {\n routeOptions?: { url?: string };\n raw?: Parameters<typeof nodeHandler>[0];\n };\n const route = anyReq.routeOptions?.url;\n if (route && anyReq.raw) {\n const ctx = getXrayContext(anyReq.raw);\n if (ctx) {\n setContextRoute(ctx, route);\n }\n }\n next();\n },\n );\n}\n"]}
@@ -1,5 +1,5 @@
1
- import { j as XrayRuntimeConfig, a as XrayEmitter } from './types-Z1nirh-F.cjs';
2
- export { e as CaptureConfig, f as RedactionConfig, R as RequestLog, X as XrayConfig, d as XrayContext } from './types-Z1nirh-F.cjs';
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
3
  import { WrapOptions } from './node.cjs';
4
4
  export { createEmitter as createCoreEmitter } from './node.cjs';
5
5
  import '@opentelemetry/sdk-trace-base';
@@ -15,7 +15,14 @@ type FastifyEmitter = ((instance: FastifyInstance) => void) & {
15
15
  flush: XrayEmitter['flush'];
16
16
  shutdown: XrayEmitter['shutdown'];
17
17
  };
18
+ /**
19
+ * Create a Fastify plugin-style registrar that installs X-ray hooks and
20
+ * exposes `flush()`/`shutdown()`.
21
+ */
18
22
  declare function createEmitter(config: XrayRuntimeConfig, options?: WrapOptions): FastifyEmitter;
23
+ /**
24
+ * Add X-ray request lifecycle hooks to an existing Fastify instance.
25
+ */
19
26
  declare function addFastifyHooks(instance: FastifyInstance, xray: XrayEmitter, options?: WrapOptions): void;
20
27
 
21
28
  export { WrapOptions, XrayEmitter, XrayRuntimeConfig, addFastifyHooks, createEmitter };
package/dist/fastify.d.ts CHANGED
@@ -1,5 +1,5 @@
1
- import { j as XrayRuntimeConfig, a as XrayEmitter } from './types-Z1nirh-F.js';
2
- export { e as CaptureConfig, f as RedactionConfig, R as RequestLog, X as XrayConfig, d as XrayContext } from './types-Z1nirh-F.js';
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
3
  import { WrapOptions } from './node.js';
4
4
  export { createEmitter as createCoreEmitter } from './node.js';
5
5
  import '@opentelemetry/sdk-trace-base';
@@ -15,7 +15,14 @@ type FastifyEmitter = ((instance: FastifyInstance) => void) & {
15
15
  flush: XrayEmitter['flush'];
16
16
  shutdown: XrayEmitter['shutdown'];
17
17
  };
18
+ /**
19
+ * Create a Fastify plugin-style registrar that installs X-ray hooks and
20
+ * exposes `flush()`/`shutdown()`.
21
+ */
18
22
  declare function createEmitter(config: XrayRuntimeConfig, options?: WrapOptions): FastifyEmitter;
23
+ /**
24
+ * Add X-ray request lifecycle hooks to an existing Fastify instance.
25
+ */
19
26
  declare function addFastifyHooks(instance: FastifyInstance, xray: XrayEmitter, options?: WrapOptions): void;
20
27
 
21
28
  export { WrapOptions, XrayEmitter, XrayRuntimeConfig, addFastifyHooks, createEmitter };
package/dist/fastify.js CHANGED
@@ -2,12 +2,12 @@ import {
2
2
  createEmitter,
3
3
  getXrayContext,
4
4
  wrapHttpHandler
5
- } from "./chunk-WTHVUHGI.js";
6
- import "./chunk-TSCMZ5TV.js";
5
+ } from "./chunk-FGXXKIF7.js";
6
+ import "./chunk-GYXI3DWB.js";
7
7
  import {
8
8
  setContextRoute
9
- } from "./chunk-6UH43LVD.js";
10
- import "./chunk-YVMMCTXW.js";
9
+ } from "./chunk-NTIUR3OC.js";
10
+ import "./chunk-7KT6EPVZ.js";
11
11
 
12
12
  // src/fastify/fastify.ts
13
13
  function createEmitter2(config, options) {
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/fastify/fastify.ts"],"sourcesContent":["import type { XrayEmitter, XrayContext, XrayRuntimeConfig } from '../core/index';\nimport { setContextRoute } from '../core/internal';\nimport {\n createEmitter as createNodeEmitter,\n wrapHttpHandler,\n getXrayContext,\n type WrapOptions,\n} from '../node/node';\n\nexport { createNodeEmitter 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 '../node/node';\n\n// copy types from Fastify to avoid a package dependency\ntype FastifyInstance = {\n addHook: {\n (name: 'onRequest', hook: (...args: any[]) => unknown): void;\n (name: 'preHandler', hook: (...args: any[]) => unknown): void;\n };\n};\n\ntype FastifyEmitter = ((instance: FastifyInstance) => void) & {\n flush: XrayEmitter['flush'];\n shutdown: XrayEmitter['shutdown'];\n};\n\nexport function createEmitter(config: XrayRuntimeConfig, options?: WrapOptions): FastifyEmitter {\n const emitter = createNodeEmitter(config);\n const register = ((instance: FastifyInstance) => {\n addFastifyHooks(instance, emitter, options);\n }) as FastifyEmitter;\n register.flush = emitter.flush;\n register.shutdown = emitter.shutdown;\n return register;\n}\n\nexport function addFastifyHooks(\n instance: FastifyInstance,\n xray: XrayEmitter,\n options?: WrapOptions,\n): void {\n const nodeHandler = wrapHttpHandler(() => {}, xray, {\n ...options,\n onRequest: (ctx: XrayContext) => {\n options?.onRequest?.(ctx);\n },\n });\n\n instance.addHook(\n 'onRequest',\n (request: unknown, reply: unknown, next: (err?: unknown) => void) => {\n const req = request as {\n raw?: Parameters<typeof nodeHandler>[0];\n xray?: XrayContext;\n };\n const res = reply as { raw?: Parameters<typeof nodeHandler>[1] };\n if (!req.raw || !res.raw) {\n next();\n return;\n }\n nodeHandler(req.raw, res.raw);\n req.xray = getXrayContext(req.raw);\n next();\n },\n );\n\n instance.addHook(\n 'preHandler',\n (request: unknown, _reply: unknown, next: (err?: unknown) => void) => {\n const anyReq = request as {\n routeOptions?: { url?: string };\n raw?: Parameters<typeof nodeHandler>[0];\n };\n const route = anyReq.routeOptions?.url;\n if (route && anyReq.raw) {\n const ctx = getXrayContext(anyReq.raw);\n if (ctx) {\n setContextRoute(ctx, route);\n }\n }\n next();\n },\n );\n}\n"],"mappings":";;;;;;;;;;;;AAkCO,SAASA,eAAc,QAA2B,SAAuC;AAC9F,QAAM,UAAU,cAAkB,MAAM;AACxC,QAAM,YAAY,CAAC,aAA8B;AAC/C,oBAAgB,UAAU,SAAS,OAAO;AAAA,EAC5C;AACA,WAAS,QAAQ,QAAQ;AACzB,WAAS,WAAW,QAAQ;AAC5B,SAAO;AACT;AAEO,SAAS,gBACd,UACA,MACA,SACM;AACN,QAAM,cAAc,gBAAgB,MAAM;AAAA,EAAC,GAAG,MAAM;AAAA,IAClD,GAAG;AAAA,IACH,WAAW,CAAC,QAAqB;AAC/B,eAAS,YAAY,GAAG;AAAA,IAC1B;AAAA,EACF,CAAC;AAED,WAAS;AAAA,IACP;AAAA,IACA,CAAC,SAAkB,OAAgB,SAAkC;AACnE,YAAM,MAAM;AAIZ,YAAM,MAAM;AACZ,UAAI,CAAC,IAAI,OAAO,CAAC,IAAI,KAAK;AACxB,aAAK;AACL;AAAA,MACF;AACA,kBAAY,IAAI,KAAK,IAAI,GAAG;AAC5B,UAAI,OAAO,eAAe,IAAI,GAAG;AACjC,WAAK;AAAA,IACP;AAAA,EACF;AAEA,WAAS;AAAA,IACP;AAAA,IACA,CAAC,SAAkB,QAAiB,SAAkC;AACpE,YAAM,SAAS;AAIf,YAAM,QAAQ,OAAO,cAAc;AACnC,UAAI,SAAS,OAAO,KAAK;AACvB,cAAM,MAAM,eAAe,OAAO,GAAG;AACrC,YAAI,KAAK;AACP,0BAAgB,KAAK,KAAK;AAAA,QAC5B;AAAA,MACF;AACA,WAAK;AAAA,IACP;AAAA,EACF;AACF;","names":["createEmitter"]}
1
+ {"version":3,"sources":["../src/fastify/fastify.ts"],"sourcesContent":["import type { XrayEmitter, XrayContext, XrayRuntimeConfig } from '../core/index';\nimport { setContextRoute } from '../core/internal';\nimport {\n createEmitter as createNodeEmitter,\n wrapHttpHandler,\n getXrayContext,\n type WrapOptions,\n} from '../node/node';\n\nexport { createNodeEmitter 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 '../node/node';\n\n// copy types from Fastify to avoid a package dependency\ntype FastifyInstance = {\n addHook: {\n (name: 'onRequest', hook: (...args: any[]) => unknown): void;\n (name: 'preHandler', hook: (...args: any[]) => unknown): void;\n };\n};\n\ntype FastifyEmitter = ((instance: FastifyInstance) => void) & {\n flush: XrayEmitter['flush'];\n shutdown: XrayEmitter['shutdown'];\n};\n\n/**\n * Create a Fastify plugin-style registrar that installs X-ray hooks and\n * exposes `flush()`/`shutdown()`.\n */\nexport function createEmitter(config: XrayRuntimeConfig, options?: WrapOptions): FastifyEmitter {\n const emitter = createNodeEmitter(config);\n const register = ((instance: FastifyInstance) => {\n addFastifyHooks(instance, emitter, options);\n }) as FastifyEmitter;\n register.flush = emitter.flush;\n register.shutdown = emitter.shutdown;\n return register;\n}\n\n/**\n * Add X-ray request lifecycle hooks to an existing Fastify instance.\n */\nexport function addFastifyHooks(\n instance: FastifyInstance,\n xray: XrayEmitter,\n options?: WrapOptions,\n): void {\n const nodeHandler = wrapHttpHandler(() => {}, xray, {\n ...options,\n onRequest: (ctx: XrayContext) => {\n options?.onRequest?.(ctx);\n },\n });\n\n instance.addHook(\n 'onRequest',\n (request: unknown, reply: unknown, next: (err?: unknown) => void) => {\n const req = request as {\n raw?: Parameters<typeof nodeHandler>[0];\n xray?: XrayContext;\n };\n const res = reply as { raw?: Parameters<typeof nodeHandler>[1] };\n if (!req.raw || !res.raw) {\n next();\n return;\n }\n nodeHandler(req.raw, res.raw);\n req.xray = getXrayContext(req.raw);\n next();\n },\n );\n\n instance.addHook(\n 'preHandler',\n (request: unknown, _reply: unknown, next: (err?: unknown) => void) => {\n const anyReq = request as {\n routeOptions?: { url?: string };\n raw?: Parameters<typeof nodeHandler>[0];\n };\n const route = anyReq.routeOptions?.url;\n if (route && anyReq.raw) {\n const ctx = getXrayContext(anyReq.raw);\n if (ctx) {\n setContextRoute(ctx, route);\n }\n }\n next();\n },\n );\n}\n"],"mappings":";;;;;;;;;;;;AAsCO,SAASA,eAAc,QAA2B,SAAuC;AAC9F,QAAM,UAAU,cAAkB,MAAM;AACxC,QAAM,YAAY,CAAC,aAA8B;AAC/C,oBAAgB,UAAU,SAAS,OAAO;AAAA,EAC5C;AACA,WAAS,QAAQ,QAAQ;AACzB,WAAS,WAAW,QAAQ;AAC5B,SAAO;AACT;AAKO,SAAS,gBACd,UACA,MACA,SACM;AACN,QAAM,cAAc,gBAAgB,MAAM;AAAA,EAAC,GAAG,MAAM;AAAA,IAClD,GAAG;AAAA,IACH,WAAW,CAAC,QAAqB;AAC/B,eAAS,YAAY,GAAG;AAAA,IAC1B;AAAA,EACF,CAAC;AAED,WAAS;AAAA,IACP;AAAA,IACA,CAAC,SAAkB,OAAgB,SAAkC;AACnE,YAAM,MAAM;AAIZ,YAAM,MAAM;AACZ,UAAI,CAAC,IAAI,OAAO,CAAC,IAAI,KAAK;AACxB,aAAK;AACL;AAAA,MACF;AACA,kBAAY,IAAI,KAAK,IAAI,GAAG;AAC5B,UAAI,OAAO,eAAe,IAAI,GAAG;AACjC,WAAK;AAAA,IACP;AAAA,EACF;AAEA,WAAS;AAAA,IACP;AAAA,IACA,CAAC,SAAkB,QAAiB,SAAkC;AACpE,YAAM,SAAS;AAIf,YAAM,QAAQ,OAAO,cAAc;AACnC,UAAI,SAAS,OAAO,KAAK;AACvB,cAAM,MAAM,eAAe,OAAO,GAAG;AACrC,YAAI,KAAK;AACP,0BAAgB,KAAK,KAAK;AAAA,QAC5B;AAAA,MACF;AACA,WAAK;AAAA,IACP;AAAA,EACF;AACF;","names":["createEmitter"]}
package/dist/fetch.cjs CHANGED
@@ -3,14 +3,14 @@
3
3
 
4
4
 
5
5
 
6
- var _chunkDBI3HXNRcjs = require('./chunk-DBI3HXNR.cjs');
7
- require('./chunk-XO6YWDFL.cjs');
8
- require('./chunk-GNSXLLEC.cjs');
9
- require('./chunk-JKW6E4L3.cjs');
6
+ var _chunkSUVCVINAcjs = require('./chunk-SUVCVINA.cjs');
7
+ require('./chunk-UJWD5CFA.cjs');
8
+ require('./chunk-CPHFCOA5.cjs');
9
+ require('./chunk-DNBARLGB.cjs');
10
10
 
11
11
 
12
12
 
13
13
 
14
14
 
15
- exports.createEmitter = _chunkDBI3HXNRcjs.createEmitter; exports.getXrayContext = _chunkDBI3HXNRcjs.getXrayContext; exports.wrapFetch = _chunkDBI3HXNRcjs.wrapFetch; exports.wrapFetchPreserve = _chunkDBI3HXNRcjs.wrapFetchPreserve;
15
+ exports.createEmitter = _chunkSUVCVINAcjs.createEmitter; exports.getXrayContext = _chunkSUVCVINAcjs.getXrayContext; exports.wrapFetch = _chunkSUVCVINAcjs.wrapFetch; exports.wrapFetchPreserve = _chunkSUVCVINAcjs.wrapFetchPreserve;
16
16
  //# sourceMappingURL=fetch.cjs.map
package/dist/fetch.d.cts CHANGED
@@ -1,19 +1,55 @@
1
- import { j as XrayRuntimeConfig, a as XrayEmitter, e as CaptureConfig, f as RedactionConfig, d as XrayContext, R as RequestLog } from './types-Z1nirh-F.cjs';
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';
2
3
  import '@opentelemetry/sdk-trace-base';
3
4
 
4
- declare function createEmitter(config: XrayRuntimeConfig): XrayEmitter;
5
-
6
5
  interface WrapOptions {
6
+ /**
7
+ * Explicit route pattern for this handler (for example `/users/:id`).
8
+ */
7
9
  route?: string;
10
+ /**
11
+ * Explicit request ID. Skips header lookup/generation when provided.
12
+ */
8
13
  requestId?: string;
14
+ /**
15
+ * Per-handler capture overrides.
16
+ */
9
17
  capture?: Partial<CaptureConfig>;
18
+ /**
19
+ * Per-handler redaction overrides.
20
+ */
10
21
  redaction?: Partial<RedactionConfig>;
22
+ /**
23
+ * Hook called after request context is created.
24
+ */
11
25
  onRequest?: (ctx: XrayContext) => void;
26
+ /**
27
+ * Hook called after the request has been finalized and logged.
28
+ */
12
29
  onResponse?: (ctx: XrayContext, log: RequestLog) => void;
30
+ /**
31
+ * Hook called when request handling fails.
32
+ */
13
33
  onError?: (ctx: XrayContext, err: unknown) => void;
14
34
  }
35
+ /**
36
+ * Wrap a fetch-style handler with X-ray instrumentation.
37
+ *
38
+ * This variant may replace the request/response objects to safely capture
39
+ * bodies and inject a request ID response header when needed.
40
+ */
15
41
  declare function wrapFetch(handler: (req: Request) => Response | Promise<Response>, xray: XrayEmitter, options?: WrapOptions): (req: Request) => Promise<Response>;
42
+ /**
43
+ * Wrap a fetch-style handler while preserving original request/response objects
44
+ * whenever possible.
45
+ *
46
+ * If a missing request ID header must be injected and response headers are
47
+ * immutable, this wrapper may still replace the response object.
48
+ */
16
49
  declare function wrapFetchPreserve(handler: (req: Request) => Response | Promise<Response>, xray: XrayEmitter, options?: WrapOptions): (req: Request) => Promise<Response>;
50
+ /**
51
+ * Retrieve the `XrayContext` bound to a fetch `Request`.
52
+ */
17
53
  declare function getXrayContext(req: Request): XrayContext | undefined;
18
54
 
19
- export { type WrapOptions, createEmitter, getXrayContext, wrapFetch, wrapFetchPreserve };
55
+ export { type WrapOptions, getXrayContext, wrapFetch, wrapFetchPreserve };
package/dist/fetch.d.ts CHANGED
@@ -1,19 +1,55 @@
1
- import { j as XrayRuntimeConfig, a as XrayEmitter, e as CaptureConfig, f as RedactionConfig, d as XrayContext, R as RequestLog } from './types-Z1nirh-F.js';
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';
2
3
  import '@opentelemetry/sdk-trace-base';
3
4
 
4
- declare function createEmitter(config: XrayRuntimeConfig): XrayEmitter;
5
-
6
5
  interface WrapOptions {
6
+ /**
7
+ * Explicit route pattern for this handler (for example `/users/:id`).
8
+ */
7
9
  route?: string;
10
+ /**
11
+ * Explicit request ID. Skips header lookup/generation when provided.
12
+ */
8
13
  requestId?: string;
14
+ /**
15
+ * Per-handler capture overrides.
16
+ */
9
17
  capture?: Partial<CaptureConfig>;
18
+ /**
19
+ * Per-handler redaction overrides.
20
+ */
10
21
  redaction?: Partial<RedactionConfig>;
22
+ /**
23
+ * Hook called after request context is created.
24
+ */
11
25
  onRequest?: (ctx: XrayContext) => void;
26
+ /**
27
+ * Hook called after the request has been finalized and logged.
28
+ */
12
29
  onResponse?: (ctx: XrayContext, log: RequestLog) => void;
30
+ /**
31
+ * Hook called when request handling fails.
32
+ */
13
33
  onError?: (ctx: XrayContext, err: unknown) => void;
14
34
  }
35
+ /**
36
+ * Wrap a fetch-style handler with X-ray instrumentation.
37
+ *
38
+ * This variant may replace the request/response objects to safely capture
39
+ * bodies and inject a request ID response header when needed.
40
+ */
15
41
  declare function wrapFetch(handler: (req: Request) => Response | Promise<Response>, xray: XrayEmitter, options?: WrapOptions): (req: Request) => Promise<Response>;
42
+ /**
43
+ * Wrap a fetch-style handler while preserving original request/response objects
44
+ * whenever possible.
45
+ *
46
+ * If a missing request ID header must be injected and response headers are
47
+ * immutable, this wrapper may still replace the response object.
48
+ */
16
49
  declare function wrapFetchPreserve(handler: (req: Request) => Response | Promise<Response>, xray: XrayEmitter, options?: WrapOptions): (req: Request) => Promise<Response>;
50
+ /**
51
+ * Retrieve the `XrayContext` bound to a fetch `Request`.
52
+ */
17
53
  declare function getXrayContext(req: Request): XrayContext | undefined;
18
54
 
19
- export { type WrapOptions, createEmitter, getXrayContext, wrapFetch, wrapFetchPreserve };
55
+ export { type WrapOptions, getXrayContext, wrapFetch, wrapFetchPreserve };
package/dist/fetch.js CHANGED
@@ -3,10 +3,10 @@ import {
3
3
  getXrayContext,
4
4
  wrapFetch,
5
5
  wrapFetchPreserve
6
- } from "./chunk-ZP5OEA4I.js";
7
- import "./chunk-TSCMZ5TV.js";
8
- import "./chunk-6UH43LVD.js";
9
- import "./chunk-YVMMCTXW.js";
6
+ } from "./chunk-DV3MVQBB.js";
7
+ import "./chunk-GYXI3DWB.js";
8
+ import "./chunk-NTIUR3OC.js";
9
+ import "./chunk-7KT6EPVZ.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 _chunkDBI3HXNRcjs = require('./chunk-DBI3HXNR.cjs');
6
- require('./chunk-XO6YWDFL.cjs');
5
+ var _chunkSUVCVINAcjs = require('./chunk-SUVCVINA.cjs');
6
+ require('./chunk-UJWD5CFA.cjs');
7
7
 
8
8
 
9
- var _chunkGNSXLLECcjs = require('./chunk-GNSXLLEC.cjs');
10
- require('./chunk-JKW6E4L3.cjs');
9
+ var _chunkCPHFCOA5cjs = require('./chunk-CPHFCOA5.cjs');
10
+ require('./chunk-DNBARLGB.cjs');
11
11
 
12
12
  // src/hono/hono.ts
13
13
  function createEmitter2(config, options) {
14
- const emitter = _chunkDBI3HXNRcjs.createEmitter.call(void 0, config);
14
+ const emitter = _chunkSUVCVINAcjs.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 = _chunkDBI3HXNRcjs.wrapFetchPreserve.call(void 0,
28
+ const wrapped = _chunkSUVCVINAcjs.wrapFetchPreserve.call(void 0,
29
29
  async (req) => {
30
- const ctx = _chunkDBI3HXNRcjs.getXrayContext.call(void 0, req);
30
+ const ctx = _chunkSUVCVINAcjs.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
- _chunkGNSXLLECcjs.setContextRoute.call(void 0, ctx, route);
43
+ _chunkCPHFCOA5cjs.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 = _chunkDBI3HXNRcjs.createEmitter; exports.createEmitter = createEmitter2; exports.createHonoMiddleware = createHonoMiddleware;
70
+ exports.createCoreEmitter = _chunkSUVCVINAcjs.createEmitter; exports.createEmitter = createEmitter2; exports.createHonoMiddleware = createHonoMiddleware;
71
71
  //# sourceMappingURL=hono.cjs.map
package/dist/hono.cjs.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["/home/runner/work/xray-emitter-js/xray-emitter-js/dist/hono.cjs","../src/hono/hono.ts"],"names":["createEmitter"],"mappings":"AAAA;AACE;AACA;AACA;AACF,wDAA6B;AAC7B,gCAA6B;AAC7B;AACE;AACF,wDAA6B;AAC7B,gCAA6B;AAC7B;AACA;ACmCO,SAASA,cAAAA,CAAc,MAAA,EAA2B,OAAA,EAAwC;AAC/F,EAAA,MAAM,QAAA,EAAU,6CAAA,MAAyB,CAAA;AACzC,EAAA,MAAM,WAAA,EAAa,oBAAA,CAAqB,OAAA,EAAS,OAAO,CAAA;AACxD,EAAA,UAAA,CAAW,MAAA,EAAQ,OAAA,CAAQ,KAAA;AAC3B,EAAA,UAAA,CAAW,SAAA,EAAW,OAAA,CAAQ,QAAA;AAC9B,EAAA,OAAO,UAAA;AACT;AAEO,SAAS,oBAAA,CAAqB,IAAA,EAAmB,OAAA,EAA2C;AACjG,EAAA,MAAM,YAAA,kBAAc,OAAA,2BAAS,WAAA;AAE7B,EAAA,OAAO,MAAA,CAAO,CAAA,EAAG,IAAA,EAAA,GAAS;AACxB,IAAA,MAAM,QAAA,EAAU,CAAA,CAAE,GAAA,CAAI,GAAA;AACtB,IAAA,GAAA,CAAI,CAAC,OAAA,EAAS;AACZ,MAAA,MAAM,IAAA,CAAK,CAAA;AACX,MAAA,MAAA;AAAA,IACF;AAEA,IAAA,MAAM,QAAA,EAAU,iDAAA;AAAA,MACd,MAAA,CAAO,GAAA,EAAA,GAAQ;AACb,QAAA,MAAM,IAAA,EAAM,8CAAA,GAAkB,CAAA;AAC9B,QAAA,GAAA,CAAI,GAAA,EAAK;AACP,UAAA,CAAA,CAAE,GAAA,CAAI,MAAA,EAAQ,GAAG,CAAA;AAAA,QACnB;AAEA,QAAA,IAAI,MAAA,EAAQ,gBAAA,CAAiB,WAAA,EAAa,CAAA,EAAG,CAAA,CAAE,CAAA;AAC/C,QAAA,IAAI;AACF,UAAA,MAAM,IAAA,CAAK,CAAA;AACX,UAAA,OAAO,CAAA,CAAE,GAAA;AAAA,QACX,EAAA,QAAE;AACA,UAAA,GAAA,CAAI,CAAC,KAAA,EAAO;AACV,YAAA,MAAA,EAAQ,gBAAA,CAAiB,WAAA,EAAa,CAAC,CAAA;AAAA,UACzC;AACA,UAAA,GAAA,CAAI,MAAA,GAAS,GAAA,EAAK;AAChB,YAAA,+CAAA,GAAgB,EAAK,KAAK,CAAA;AAAA,UAC5B;AAAA,QACF;AAAA,MACF,CAAA;AAAA,MACA,IAAA;AAAA,MACA;AAAA,IACF,CAAA;AAEA,IAAA,MAAM,SAAA,EAAW,MAAM,OAAA,CAAQ,OAAO,CAAA;AACtC,IAAA,GAAA,CAAI,SAAA,WAAoB,SAAA,GAAY,SAAA,IAAa,CAAA,CAAE,GAAA,EAAK;AACtD,MAAA,CAAA,CAAE,IAAA,EAAM,QAAA;AAAA,IACV;AAAA,EACF,CAAA;AACF;AAEA,SAAS,gBAAA,CACP,EAAA,EACA,GAAA,EACA,KAAA,EACoB;AACpB,EAAA,GAAA,CAAI,CAAC,EAAA,EAAI;AACP,IAAA,OAAO,KAAA,CAAA;AAAA,EACT;AACA,EAAA,IAAI;AACF,IAAA,OAAO,MAAA,IAAU,KAAA,EAAA,EAAY,EAAA,CAAG,GAAG,EAAA,EAAI,EAAA,CAAG,GAAA,EAAK,KAAK,CAAA;AAAA,EACtD,EAAA,UAAQ;AACN,IAAA,OAAO,KAAA,CAAA;AAAA,EACT;AACF;AD3CA;AACE;AACA;AACA;AACF,yJAAC","file":"/home/runner/work/xray-emitter-js/xray-emitter-js/dist/hono.cjs","sourcesContent":[null,"import type { XrayEmitter, XrayContext, XrayRuntimeConfig } from '../core/index';\nimport { setContextRoute } from '../core/internal';\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';\n\n// copy types from Hono to avoid a package dependency\ninterface HonoCompatibleContext {\n req: { raw: Request };\n res: Response;\n set(key: string, value: unknown): void;\n}\n\ntype HonoMiddleware = (\n c: HonoCompatibleContext,\n next: () => Promise<void>,\n) => Promise<void | Response>;\n\nexport type HonoXrayEnv = {\n Variables: { xray?: XrayContext };\n};\n\ntype HonoEmitter = HonoMiddleware & {\n flush: XrayEmitter['flush'];\n shutdown: XrayEmitter['shutdown'];\n};\n\nexport interface HonoWrapOptions extends WrapOptions {\n routePath?(ctx: HonoCompatibleContext, index?: number): string;\n}\n\nexport function createEmitter(config: XrayRuntimeConfig, options?: HonoWrapOptions): HonoEmitter {\n const emitter = createFetchEmitter(config);\n const middleware = createHonoMiddleware(emitter, options) as HonoEmitter;\n middleware.flush = emitter.flush;\n middleware.shutdown = emitter.shutdown;\n return middleware;\n}\n\nexport function createHonoMiddleware(xray: XrayEmitter, options?: HonoWrapOptions): HonoMiddleware {\n const routePathFn = options?.routePath;\n\n return async (c, next) => {\n const request = c.req.raw;\n if (!request) {\n await next();\n return;\n }\n\n const wrapped = wrapFetchPreserve(\n async (req) => {\n const ctx = getXrayContext(req);\n if (ctx) {\n c.set('xray', ctx);\n }\n\n let route = resolveRoutePath(routePathFn, c, -1);\n try {\n await next();\n return c.res;\n } finally {\n if (!route) {\n route = resolveRoutePath(routePathFn, c);\n }\n if (route && ctx) {\n setContextRoute(ctx, route);\n }\n }\n },\n xray,\n options,\n );\n\n const response = await wrapped(request);\n if (response instanceof Response && response !== c.res) {\n c.res = response;\n }\n };\n}\n\nfunction resolveRoutePath(\n fn: ((ctx: HonoCompatibleContext, index?: number) => string) | undefined,\n ctx: HonoCompatibleContext,\n index?: number,\n): string | undefined {\n if (!fn) {\n return undefined;\n }\n try {\n return index === undefined ? fn(ctx) : fn(ctx, index);\n } catch {\n return undefined;\n }\n}\n"]}
1
+ {"version":3,"sources":["/home/runner/work/xray-emitter-js/xray-emitter-js/dist/hono.cjs","../src/hono/hono.ts"],"names":["createEmitter"],"mappings":"AAAA;AACE;AACA;AACA;AACF,wDAA6B;AAC7B,gCAA6B;AAC7B;AACE;AACF,wDAA6B;AAC7B,gCAA6B;AAC7B;AACA;AC4CO,SAASA,cAAAA,CAAc,MAAA,EAA2B,OAAA,EAAwC;AAC/F,EAAA,MAAM,QAAA,EAAU,6CAAA,MAAyB,CAAA;AACzC,EAAA,MAAM,WAAA,EAAa,oBAAA,CAAqB,OAAA,EAAS,OAAO,CAAA;AACxD,EAAA,UAAA,CAAW,MAAA,EAAQ,OAAA,CAAQ,KAAA;AAC3B,EAAA,UAAA,CAAW,SAAA,EAAW,OAAA,CAAQ,QAAA;AAC9B,EAAA,OAAO,UAAA;AACT;AAKO,SAAS,oBAAA,CAAqB,IAAA,EAAmB,OAAA,EAA2C;AACjG,EAAA,MAAM,YAAA,kBAAc,OAAA,2BAAS,WAAA;AAE7B,EAAA,OAAO,MAAA,CAAO,CAAA,EAAG,IAAA,EAAA,GAAS;AACxB,IAAA,MAAM,QAAA,EAAU,CAAA,CAAE,GAAA,CAAI,GAAA;AACtB,IAAA,GAAA,CAAI,CAAC,OAAA,EAAS;AACZ,MAAA,MAAM,IAAA,CAAK,CAAA;AACX,MAAA,MAAA;AAAA,IACF;AAEA,IAAA,MAAM,QAAA,EAAU,iDAAA;AAAA,MACd,MAAA,CAAO,GAAA,EAAA,GAAQ;AACb,QAAA,MAAM,IAAA,EAAM,8CAAA,GAAkB,CAAA;AAC9B,QAAA,GAAA,CAAI,GAAA,EAAK;AACP,UAAA,CAAA,CAAE,GAAA,CAAI,MAAA,EAAQ,GAAG,CAAA;AAAA,QACnB;AAEA,QAAA,IAAI,MAAA,EAAQ,gBAAA,CAAiB,WAAA,EAAa,CAAA,EAAG,CAAA,CAAE,CAAA;AAC/C,QAAA,IAAI;AACF,UAAA,MAAM,IAAA,CAAK,CAAA;AACX,UAAA,OAAO,CAAA,CAAE,GAAA;AAAA,QACX,EAAA,QAAE;AACA,UAAA,GAAA,CAAI,CAAC,KAAA,EAAO;AACV,YAAA,MAAA,EAAQ,gBAAA,CAAiB,WAAA,EAAa,CAAC,CAAA;AAAA,UACzC;AACA,UAAA,GAAA,CAAI,MAAA,GAAS,GAAA,EAAK;AAChB,YAAA,+CAAA,GAAgB,EAAK,KAAK,CAAA;AAAA,UAC5B;AAAA,QACF;AAAA,MACF,CAAA;AAAA,MACA,IAAA;AAAA,MACA;AAAA,IACF,CAAA;AAEA,IAAA,MAAM,SAAA,EAAW,MAAM,OAAA,CAAQ,OAAO,CAAA;AACtC,IAAA,GAAA,CAAI,SAAA,WAAoB,SAAA,GAAY,SAAA,IAAa,CAAA,CAAE,GAAA,EAAK;AACtD,MAAA,CAAA,CAAE,IAAA,EAAM,QAAA;AAAA,IACV;AAAA,EACF,CAAA;AACF;AAEA,SAAS,gBAAA,CACP,EAAA,EACA,GAAA,EACA,KAAA,EACoB;AACpB,EAAA,GAAA,CAAI,CAAC,EAAA,EAAI;AACP,IAAA,OAAO,KAAA,CAAA;AAAA,EACT;AACA,EAAA,IAAI;AACF,IAAA,OAAO,MAAA,IAAU,KAAA,EAAA,EAAY,EAAA,CAAG,GAAG,EAAA,EAAI,EAAA,CAAG,GAAA,EAAK,KAAK,CAAA;AAAA,EACtD,EAAA,UAAQ;AACN,IAAA,OAAO,KAAA,CAAA;AAAA,EACT;AACF;ADvDA;AACE;AACA;AACA;AACF,yJAAC","file":"/home/runner/work/xray-emitter-js/xray-emitter-js/dist/hono.cjs","sourcesContent":[null,"import type { XrayEmitter, XrayContext, XrayRuntimeConfig } from '../core/index';\nimport { setContextRoute } from '../core/internal';\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';\n\n// copy types from Hono to avoid a package dependency\ninterface HonoCompatibleContext {\n req: { raw: Request };\n res: Response;\n set(key: string, value: unknown): void;\n}\n\ntype HonoMiddleware = (\n c: HonoCompatibleContext,\n next: () => Promise<void>,\n) => Promise<void | Response>;\n\n/**\n * Hono env helper that adds `xray` to `c.get(...)` variables.\n */\nexport type HonoXrayEnv = {\n Variables: { xray?: XrayContext };\n};\n\ntype HonoEmitter = HonoMiddleware & {\n flush: XrayEmitter['flush'];\n shutdown: XrayEmitter['shutdown'];\n};\n\nexport interface HonoWrapOptions extends WrapOptions {\n /**\n * Optional route resolver used to capture Hono route patterns.\n */\n routePath?(ctx: HonoCompatibleContext, index?: number): string;\n}\n\n/**\n * Create Hono middleware and expose `flush()`/`shutdown()` helpers.\n */\nexport function createEmitter(config: XrayRuntimeConfig, options?: HonoWrapOptions): HonoEmitter {\n const emitter = createFetchEmitter(config);\n const middleware = createHonoMiddleware(emitter, options) as HonoEmitter;\n middleware.flush = emitter.flush;\n middleware.shutdown = emitter.shutdown;\n return middleware;\n}\n\n/**\n * Create Hono middleware from an existing core `XrayEmitter`.\n */\nexport function createHonoMiddleware(xray: XrayEmitter, options?: HonoWrapOptions): HonoMiddleware {\n const routePathFn = options?.routePath;\n\n return async (c, next) => {\n const request = c.req.raw;\n if (!request) {\n await next();\n return;\n }\n\n const wrapped = wrapFetchPreserve(\n async (req) => {\n const ctx = getXrayContext(req);\n if (ctx) {\n c.set('xray', ctx);\n }\n\n let route = resolveRoutePath(routePathFn, c, -1);\n try {\n await next();\n return c.res;\n } finally {\n if (!route) {\n route = resolveRoutePath(routePathFn, c);\n }\n if (route && ctx) {\n setContextRoute(ctx, route);\n }\n }\n },\n xray,\n options,\n );\n\n const response = await wrapped(request);\n if (response instanceof Response && response !== c.res) {\n c.res = response;\n }\n };\n}\n\nfunction resolveRoutePath(\n fn: ((ctx: HonoCompatibleContext, index?: number) => string) | undefined,\n ctx: HonoCompatibleContext,\n index?: number,\n): string | undefined {\n if (!fn) {\n return undefined;\n }\n try {\n return index === undefined ? fn(ctx) : fn(ctx, index);\n } catch {\n return undefined;\n }\n}\n"]}
package/dist/hono.d.cts CHANGED
@@ -1,7 +1,7 @@
1
- import { d as XrayContext, j as XrayRuntimeConfig, a as XrayEmitter } from './types-Z1nirh-F.cjs';
2
- export { e as CaptureConfig, f as RedactionConfig, R as RequestLog, X as XrayConfig } from './types-Z1nirh-F.cjs';
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';
3
4
  import { WrapOptions } from './fetch.cjs';
4
- export { createEmitter as createCoreEmitter } from './fetch.cjs';
5
5
  import '@opentelemetry/sdk-trace-base';
6
6
 
7
7
  interface HonoCompatibleContext {
@@ -12,6 +12,9 @@ interface HonoCompatibleContext {
12
12
  set(key: string, value: unknown): void;
13
13
  }
14
14
  type HonoMiddleware = (c: HonoCompatibleContext, next: () => Promise<void>) => Promise<void | Response>;
15
+ /**
16
+ * Hono env helper that adds `xray` to `c.get(...)` variables.
17
+ */
15
18
  type HonoXrayEnv = {
16
19
  Variables: {
17
20
  xray?: XrayContext;
@@ -22,9 +25,18 @@ type HonoEmitter = HonoMiddleware & {
22
25
  shutdown: XrayEmitter['shutdown'];
23
26
  };
24
27
  interface HonoWrapOptions extends WrapOptions {
28
+ /**
29
+ * Optional route resolver used to capture Hono route patterns.
30
+ */
25
31
  routePath?(ctx: HonoCompatibleContext, index?: number): string;
26
32
  }
33
+ /**
34
+ * Create Hono middleware and expose `flush()`/`shutdown()` helpers.
35
+ */
27
36
  declare function createEmitter(config: XrayRuntimeConfig, options?: HonoWrapOptions): HonoEmitter;
37
+ /**
38
+ * Create Hono middleware from an existing core `XrayEmitter`.
39
+ */
28
40
  declare function createHonoMiddleware(xray: XrayEmitter, options?: HonoWrapOptions): HonoMiddleware;
29
41
 
30
42
  export { type HonoWrapOptions, type HonoXrayEnv, WrapOptions, XrayContext, XrayEmitter, XrayRuntimeConfig, createEmitter, createHonoMiddleware };
package/dist/hono.d.ts CHANGED
@@ -1,7 +1,7 @@
1
- import { d as XrayContext, j as XrayRuntimeConfig, a as XrayEmitter } from './types-Z1nirh-F.js';
2
- export { e as CaptureConfig, f as RedactionConfig, R as RequestLog, X as XrayConfig } from './types-Z1nirh-F.js';
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';
3
4
  import { WrapOptions } from './fetch.js';
4
- export { createEmitter as createCoreEmitter } from './fetch.js';
5
5
  import '@opentelemetry/sdk-trace-base';
6
6
 
7
7
  interface HonoCompatibleContext {
@@ -12,6 +12,9 @@ interface HonoCompatibleContext {
12
12
  set(key: string, value: unknown): void;
13
13
  }
14
14
  type HonoMiddleware = (c: HonoCompatibleContext, next: () => Promise<void>) => Promise<void | Response>;
15
+ /**
16
+ * Hono env helper that adds `xray` to `c.get(...)` variables.
17
+ */
15
18
  type HonoXrayEnv = {
16
19
  Variables: {
17
20
  xray?: XrayContext;
@@ -22,9 +25,18 @@ type HonoEmitter = HonoMiddleware & {
22
25
  shutdown: XrayEmitter['shutdown'];
23
26
  };
24
27
  interface HonoWrapOptions extends WrapOptions {
28
+ /**
29
+ * Optional route resolver used to capture Hono route patterns.
30
+ */
25
31
  routePath?(ctx: HonoCompatibleContext, index?: number): string;
26
32
  }
33
+ /**
34
+ * Create Hono middleware and expose `flush()`/`shutdown()` helpers.
35
+ */
27
36
  declare function createEmitter(config: XrayRuntimeConfig, options?: HonoWrapOptions): HonoEmitter;
37
+ /**
38
+ * Create Hono middleware from an existing core `XrayEmitter`.
39
+ */
28
40
  declare function createHonoMiddleware(xray: XrayEmitter, options?: HonoWrapOptions): HonoMiddleware;
29
41
 
30
42
  export { type HonoWrapOptions, type HonoXrayEnv, WrapOptions, XrayContext, XrayEmitter, XrayRuntimeConfig, createEmitter, createHonoMiddleware };
package/dist/hono.js CHANGED
@@ -2,12 +2,12 @@ import {
2
2
  createEmitter,
3
3
  getXrayContext,
4
4
  wrapFetchPreserve
5
- } from "./chunk-ZP5OEA4I.js";
6
- import "./chunk-TSCMZ5TV.js";
5
+ } from "./chunk-DV3MVQBB.js";
6
+ import "./chunk-GYXI3DWB.js";
7
7
  import {
8
8
  setContextRoute
9
- } from "./chunk-6UH43LVD.js";
10
- import "./chunk-YVMMCTXW.js";
9
+ } from "./chunk-NTIUR3OC.js";
10
+ import "./chunk-7KT6EPVZ.js";
11
11
 
12
12
  // src/hono/hono.ts
13
13
  function createEmitter2(config, options) {
package/dist/hono.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/hono/hono.ts"],"sourcesContent":["import type { XrayEmitter, XrayContext, XrayRuntimeConfig } from '../core/index';\nimport { setContextRoute } from '../core/internal';\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';\n\n// copy types from Hono to avoid a package dependency\ninterface HonoCompatibleContext {\n req: { raw: Request };\n res: Response;\n set(key: string, value: unknown): void;\n}\n\ntype HonoMiddleware = (\n c: HonoCompatibleContext,\n next: () => Promise<void>,\n) => Promise<void | Response>;\n\nexport type HonoXrayEnv = {\n Variables: { xray?: XrayContext };\n};\n\ntype HonoEmitter = HonoMiddleware & {\n flush: XrayEmitter['flush'];\n shutdown: XrayEmitter['shutdown'];\n};\n\nexport interface HonoWrapOptions extends WrapOptions {\n routePath?(ctx: HonoCompatibleContext, index?: number): string;\n}\n\nexport function createEmitter(config: XrayRuntimeConfig, options?: HonoWrapOptions): HonoEmitter {\n const emitter = createFetchEmitter(config);\n const middleware = createHonoMiddleware(emitter, options) as HonoEmitter;\n middleware.flush = emitter.flush;\n middleware.shutdown = emitter.shutdown;\n return middleware;\n}\n\nexport function createHonoMiddleware(xray: XrayEmitter, options?: HonoWrapOptions): HonoMiddleware {\n const routePathFn = options?.routePath;\n\n return async (c, next) => {\n const request = c.req.raw;\n if (!request) {\n await next();\n return;\n }\n\n const wrapped = wrapFetchPreserve(\n async (req) => {\n const ctx = getXrayContext(req);\n if (ctx) {\n c.set('xray', ctx);\n }\n\n let route = resolveRoutePath(routePathFn, c, -1);\n try {\n await next();\n return c.res;\n } finally {\n if (!route) {\n route = resolveRoutePath(routePathFn, c);\n }\n if (route && ctx) {\n setContextRoute(ctx, route);\n }\n }\n },\n xray,\n options,\n );\n\n const response = await wrapped(request);\n if (response instanceof Response && response !== c.res) {\n c.res = response;\n }\n };\n}\n\nfunction resolveRoutePath(\n fn: ((ctx: HonoCompatibleContext, index?: number) => string) | undefined,\n ctx: HonoCompatibleContext,\n index?: number,\n): string | undefined {\n if (!fn) {\n return undefined;\n }\n try {\n return index === undefined ? fn(ctx) : fn(ctx, index);\n } catch {\n return undefined;\n }\n}\n"],"mappings":";;;;;;;;;;;;AA8CO,SAASA,eAAc,QAA2B,SAAwC;AAC/F,QAAM,UAAU,cAAmB,MAAM;AACzC,QAAM,aAAa,qBAAqB,SAAS,OAAO;AACxD,aAAW,QAAQ,QAAQ;AAC3B,aAAW,WAAW,QAAQ;AAC9B,SAAO;AACT;AAEO,SAAS,qBAAqB,MAAmB,SAA2C;AACjG,QAAM,cAAc,SAAS;AAE7B,SAAO,OAAO,GAAG,SAAS;AACxB,UAAM,UAAU,EAAE,IAAI;AACtB,QAAI,CAAC,SAAS;AACZ,YAAM,KAAK;AACX;AAAA,IACF;AAEA,UAAM,UAAU;AAAA,MACd,OAAO,QAAQ;AACb,cAAM,MAAM,eAAe,GAAG;AAC9B,YAAI,KAAK;AACP,YAAE,IAAI,QAAQ,GAAG;AAAA,QACnB;AAEA,YAAI,QAAQ,iBAAiB,aAAa,GAAG,EAAE;AAC/C,YAAI;AACF,gBAAM,KAAK;AACX,iBAAO,EAAE;AAAA,QACX,UAAE;AACA,cAAI,CAAC,OAAO;AACV,oBAAQ,iBAAiB,aAAa,CAAC;AAAA,UACzC;AACA,cAAI,SAAS,KAAK;AAChB,4BAAgB,KAAK,KAAK;AAAA,UAC5B;AAAA,QACF;AAAA,MACF;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAEA,UAAM,WAAW,MAAM,QAAQ,OAAO;AACtC,QAAI,oBAAoB,YAAY,aAAa,EAAE,KAAK;AACtD,QAAE,MAAM;AAAA,IACV;AAAA,EACF;AACF;AAEA,SAAS,iBACP,IACA,KACA,OACoB;AACpB,MAAI,CAAC,IAAI;AACP,WAAO;AAAA,EACT;AACA,MAAI;AACF,WAAO,UAAU,SAAY,GAAG,GAAG,IAAI,GAAG,KAAK,KAAK;AAAA,EACtD,QAAQ;AACN,WAAO;AAAA,EACT;AACF;","names":["createEmitter"]}
1
+ {"version":3,"sources":["../src/hono/hono.ts"],"sourcesContent":["import type { XrayEmitter, XrayContext, XrayRuntimeConfig } from '../core/index';\nimport { setContextRoute } from '../core/internal';\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';\n\n// copy types from Hono to avoid a package dependency\ninterface HonoCompatibleContext {\n req: { raw: Request };\n res: Response;\n set(key: string, value: unknown): void;\n}\n\ntype HonoMiddleware = (\n c: HonoCompatibleContext,\n next: () => Promise<void>,\n) => Promise<void | Response>;\n\n/**\n * Hono env helper that adds `xray` to `c.get(...)` variables.\n */\nexport type HonoXrayEnv = {\n Variables: { xray?: XrayContext };\n};\n\ntype HonoEmitter = HonoMiddleware & {\n flush: XrayEmitter['flush'];\n shutdown: XrayEmitter['shutdown'];\n};\n\nexport interface HonoWrapOptions extends WrapOptions {\n /**\n * Optional route resolver used to capture Hono route patterns.\n */\n routePath?(ctx: HonoCompatibleContext, index?: number): string;\n}\n\n/**\n * Create Hono middleware and expose `flush()`/`shutdown()` helpers.\n */\nexport function createEmitter(config: XrayRuntimeConfig, options?: HonoWrapOptions): HonoEmitter {\n const emitter = createFetchEmitter(config);\n const middleware = createHonoMiddleware(emitter, options) as HonoEmitter;\n middleware.flush = emitter.flush;\n middleware.shutdown = emitter.shutdown;\n return middleware;\n}\n\n/**\n * Create Hono middleware from an existing core `XrayEmitter`.\n */\nexport function createHonoMiddleware(xray: XrayEmitter, options?: HonoWrapOptions): HonoMiddleware {\n const routePathFn = options?.routePath;\n\n return async (c, next) => {\n const request = c.req.raw;\n if (!request) {\n await next();\n return;\n }\n\n const wrapped = wrapFetchPreserve(\n async (req) => {\n const ctx = getXrayContext(req);\n if (ctx) {\n c.set('xray', ctx);\n }\n\n let route = resolveRoutePath(routePathFn, c, -1);\n try {\n await next();\n return c.res;\n } finally {\n if (!route) {\n route = resolveRoutePath(routePathFn, c);\n }\n if (route && ctx) {\n setContextRoute(ctx, route);\n }\n }\n },\n xray,\n options,\n );\n\n const response = await wrapped(request);\n if (response instanceof Response && response !== c.res) {\n c.res = response;\n }\n };\n}\n\nfunction resolveRoutePath(\n fn: ((ctx: HonoCompatibleContext, index?: number) => string) | undefined,\n ctx: HonoCompatibleContext,\n index?: number,\n): string | undefined {\n if (!fn) {\n return undefined;\n }\n try {\n return index === undefined ? fn(ctx) : fn(ctx, index);\n } catch {\n return undefined;\n }\n}\n"],"mappings":";;;;;;;;;;;;AAuDO,SAASA,eAAc,QAA2B,SAAwC;AAC/F,QAAM,UAAU,cAAmB,MAAM;AACzC,QAAM,aAAa,qBAAqB,SAAS,OAAO;AACxD,aAAW,QAAQ,QAAQ;AAC3B,aAAW,WAAW,QAAQ;AAC9B,SAAO;AACT;AAKO,SAAS,qBAAqB,MAAmB,SAA2C;AACjG,QAAM,cAAc,SAAS;AAE7B,SAAO,OAAO,GAAG,SAAS;AACxB,UAAM,UAAU,EAAE,IAAI;AACtB,QAAI,CAAC,SAAS;AACZ,YAAM,KAAK;AACX;AAAA,IACF;AAEA,UAAM,UAAU;AAAA,MACd,OAAO,QAAQ;AACb,cAAM,MAAM,eAAe,GAAG;AAC9B,YAAI,KAAK;AACP,YAAE,IAAI,QAAQ,GAAG;AAAA,QACnB;AAEA,YAAI,QAAQ,iBAAiB,aAAa,GAAG,EAAE;AAC/C,YAAI;AACF,gBAAM,KAAK;AACX,iBAAO,EAAE;AAAA,QACX,UAAE;AACA,cAAI,CAAC,OAAO;AACV,oBAAQ,iBAAiB,aAAa,CAAC;AAAA,UACzC;AACA,cAAI,SAAS,KAAK;AAChB,4BAAgB,KAAK,KAAK;AAAA,UAC5B;AAAA,QACF;AAAA,MACF;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAEA,UAAM,WAAW,MAAM,QAAQ,OAAO;AACtC,QAAI,oBAAoB,YAAY,aAAa,EAAE,KAAK;AACtD,QAAE,MAAM;AAAA,IACV;AAAA,EACF;AACF;AAEA,SAAS,iBACP,IACA,KACA,OACoB;AACpB,MAAI,CAAC,IAAI;AACP,WAAO;AAAA,EACT;AACA,MAAI;AACF,WAAO,UAAU,SAAY,GAAG,GAAG,IAAI,GAAG,KAAK,KAAK;AAAA,EACtD,QAAQ;AACN,WAAO;AAAA,EACT;AACF;","names":["createEmitter"]}
package/dist/index.cjs CHANGED
@@ -2,11 +2,11 @@
2
2
 
3
3
 
4
4
 
5
- var _chunkXO6YWDFLcjs = require('./chunk-XO6YWDFL.cjs');
6
- require('./chunk-JKW6E4L3.cjs');
5
+ var _chunkUJWD5CFAcjs = require('./chunk-UJWD5CFA.cjs');
6
+ require('./chunk-DNBARLGB.cjs');
7
7
 
8
8
 
9
9
 
10
10
 
11
- exports.XrayConfigError = _chunkXO6YWDFLcjs.XrayConfigError; exports.createEmitter = _chunkXO6YWDFLcjs.createEmitter; exports.normalizeConfig = _chunkXO6YWDFLcjs.normalizeConfig;
11
+ exports.XrayConfigError = _chunkUJWD5CFAcjs.XrayConfigError; exports.createEmitter = _chunkUJWD5CFAcjs.createEmitter; exports.normalizeConfig = _chunkUJWD5CFAcjs.normalizeConfig;
12
12
  //# sourceMappingURL=index.cjs.map