apitally 0.25.1 → 0.25.3

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 (102) hide show
  1. package/README.md +131 -88
  2. package/dist/adonisjs/index.cjs +0 -3
  3. package/dist/adonisjs/index.cjs.map +1 -1
  4. package/dist/adonisjs/index.d.cts +2 -2
  5. package/dist/adonisjs/index.d.ts +2 -2
  6. package/dist/adonisjs/index.js +0 -2
  7. package/dist/adonisjs/index.js.map +1 -1
  8. package/dist/common/client.cjs +1 -1
  9. package/dist/common/client.cjs.map +1 -1
  10. package/dist/common/client.js +1 -1
  11. package/dist/common/client.js.map +1 -1
  12. package/dist/common/requestLogger.d.cts +0 -2
  13. package/dist/common/requestLogger.d.ts +0 -2
  14. package/dist/common/spanCollector.cjs +20 -38
  15. package/dist/common/spanCollector.cjs.map +1 -1
  16. package/dist/common/spanCollector.d.cts +1 -6
  17. package/dist/common/spanCollector.d.ts +1 -6
  18. package/dist/common/spanCollector.js +20 -38
  19. package/dist/common/spanCollector.js.map +1 -1
  20. package/dist/elysia/index.cjs +0 -3
  21. package/dist/elysia/index.cjs.map +1 -1
  22. package/dist/elysia/index.d.cts +2 -2
  23. package/dist/elysia/index.d.ts +2 -2
  24. package/dist/elysia/index.js +0 -2
  25. package/dist/elysia/index.js.map +1 -1
  26. package/dist/elysia/plugin.d.cts +2 -2
  27. package/dist/elysia/plugin.d.ts +2 -2
  28. package/dist/express/index.cjs +0 -3
  29. package/dist/express/index.cjs.map +1 -1
  30. package/dist/express/index.d.cts +2 -2
  31. package/dist/express/index.d.ts +2 -2
  32. package/dist/express/index.js +0 -2
  33. package/dist/express/index.js.map +1 -1
  34. package/dist/express/middleware.d.cts +2 -2
  35. package/dist/express/middleware.d.ts +2 -2
  36. package/dist/fastify/index.cjs +0 -3
  37. package/dist/fastify/index.cjs.map +1 -1
  38. package/dist/fastify/index.d.cts +2 -2
  39. package/dist/fastify/index.d.ts +2 -2
  40. package/dist/fastify/index.js +0 -2
  41. package/dist/fastify/index.js.map +1 -1
  42. package/dist/fastify/plugin.d.cts +2 -2
  43. package/dist/fastify/plugin.d.ts +2 -2
  44. package/dist/h3/index.cjs +0 -3
  45. package/dist/h3/index.cjs.map +1 -1
  46. package/dist/h3/index.d.cts +2 -2
  47. package/dist/h3/index.d.ts +2 -2
  48. package/dist/h3/index.js +0 -2
  49. package/dist/h3/index.js.map +1 -1
  50. package/dist/h3/plugin.d.cts +2 -2
  51. package/dist/h3/plugin.d.ts +2 -2
  52. package/dist/hapi/index.cjs +0 -3
  53. package/dist/hapi/index.cjs.map +1 -1
  54. package/dist/hapi/index.d.cts +2 -2
  55. package/dist/hapi/index.d.ts +2 -2
  56. package/dist/hapi/index.js +0 -2
  57. package/dist/hapi/index.js.map +1 -1
  58. package/dist/hapi/plugin.d.cts +2 -2
  59. package/dist/hapi/plugin.d.ts +2 -2
  60. package/dist/hono/index.cjs +0 -3
  61. package/dist/hono/index.cjs.map +1 -1
  62. package/dist/hono/index.d.cts +2 -2
  63. package/dist/hono/index.d.ts +2 -2
  64. package/dist/hono/index.js +0 -2
  65. package/dist/hono/index.js.map +1 -1
  66. package/dist/hono/middleware.d.cts +2 -2
  67. package/dist/hono/middleware.d.ts +2 -2
  68. package/dist/hono/utils.d.cts +1 -1
  69. package/dist/hono/utils.d.ts +1 -1
  70. package/dist/koa/index.cjs +0 -3
  71. package/dist/koa/index.cjs.map +1 -1
  72. package/dist/koa/index.d.cts +2 -2
  73. package/dist/koa/index.d.ts +2 -2
  74. package/dist/koa/index.js +0 -2
  75. package/dist/koa/index.js.map +1 -1
  76. package/dist/koa/middleware.d.cts +2 -2
  77. package/dist/koa/middleware.d.ts +2 -2
  78. package/dist/loggers/console.d.cts +0 -2
  79. package/dist/loggers/console.d.ts +0 -2
  80. package/dist/loggers/hapi.d.cts +0 -2
  81. package/dist/loggers/hapi.d.ts +0 -2
  82. package/dist/loggers/index.d.cts +0 -2
  83. package/dist/loggers/index.d.ts +0 -2
  84. package/dist/loggers/nestjs.d.cts +0 -2
  85. package/dist/loggers/nestjs.d.ts +0 -2
  86. package/dist/loggers/pino.d.cts +0 -2
  87. package/dist/loggers/pino.d.ts +0 -2
  88. package/dist/loggers/winston.d.cts +0 -2
  89. package/dist/loggers/winston.d.ts +0 -2
  90. package/dist/nestjs/index.cjs +0 -3
  91. package/dist/nestjs/index.cjs.map +1 -1
  92. package/dist/nestjs/index.d.cts +3 -3
  93. package/dist/nestjs/index.d.ts +3 -3
  94. package/dist/nestjs/index.js +0 -2
  95. package/dist/nestjs/index.js.map +1 -1
  96. package/dist/otel/index.cjs +29 -0
  97. package/dist/otel/index.cjs.map +1 -0
  98. package/dist/otel/index.d.cts +2 -0
  99. package/dist/otel/index.d.ts +2 -0
  100. package/dist/otel/index.js +5 -0
  101. package/dist/otel/index.js.map +1 -0
  102. package/package.json +15 -2
@@ -1,12 +1,12 @@
1
- import '../common/spanCollector.js';
2
1
  import { ApitallyConsumer, ApitallyConfig } from '../common/types.js';
3
2
  import Koa from 'koa';
4
- import '@opentelemetry/sdk-trace-base';
5
3
  import '../common/logging.js';
6
4
  import 'winston';
7
5
  import '../common/requestLogger.js';
8
6
  import 'node:buffer';
9
7
  import 'node:http';
8
+ import '../common/spanCollector.js';
9
+ import '@opentelemetry/sdk-trace-base';
10
10
  import '../common/tempGzipFile.js';
11
11
 
12
12
  declare function useApitally(app: Koa, config: ApitallyConfig): void;
@@ -4,8 +4,6 @@ import 'node:buffer';
4
4
  import 'node:http';
5
5
  import '../common/spanCollector.cjs';
6
6
  import '@opentelemetry/sdk-trace-base';
7
- import '../common/logging.cjs';
8
- import 'winston';
9
7
  import '../common/tempGzipFile.cjs';
10
8
 
11
9
  declare function patchConsole(logsContext: AsyncLocalStorage<LogRecord[]>): void;
@@ -4,8 +4,6 @@ import 'node:buffer';
4
4
  import 'node:http';
5
5
  import '../common/spanCollector.js';
6
6
  import '@opentelemetry/sdk-trace-base';
7
- import '../common/logging.js';
8
- import 'winston';
9
7
  import '../common/tempGzipFile.js';
10
8
 
11
9
  declare function patchConsole(logsContext: AsyncLocalStorage<LogRecord[]>): void;
@@ -5,8 +5,6 @@ import 'node:buffer';
5
5
  import 'node:http';
6
6
  import '../common/spanCollector.cjs';
7
7
  import '@opentelemetry/sdk-trace-base';
8
- import '../common/logging.cjs';
9
- import 'winston';
10
8
  import '../common/tempGzipFile.cjs';
11
9
 
12
10
  declare function handleHapiRequestEvent(event: RequestEvent, logsContext: AsyncLocalStorage<LogRecord[]>): void;
@@ -5,8 +5,6 @@ import 'node:buffer';
5
5
  import 'node:http';
6
6
  import '../common/spanCollector.js';
7
7
  import '@opentelemetry/sdk-trace-base';
8
- import '../common/logging.js';
9
- import 'winston';
10
8
  import '../common/tempGzipFile.js';
11
9
 
12
10
  declare function handleHapiRequestEvent(event: RequestEvent, logsContext: AsyncLocalStorage<LogRecord[]>): void;
@@ -9,7 +9,5 @@ import 'node:buffer';
9
9
  import 'node:http';
10
10
  import '../common/spanCollector.cjs';
11
11
  import '@opentelemetry/sdk-trace-base';
12
- import '../common/logging.cjs';
13
- import 'winston';
14
12
  import '../common/tempGzipFile.cjs';
15
13
  import '@hapi/hapi';
@@ -9,7 +9,5 @@ import 'node:buffer';
9
9
  import 'node:http';
10
10
  import '../common/spanCollector.js';
11
11
  import '@opentelemetry/sdk-trace-base';
12
- import '../common/logging.js';
13
- import 'winston';
14
12
  import '../common/tempGzipFile.js';
15
13
  import '@hapi/hapi';
@@ -4,8 +4,6 @@ import 'node:buffer';
4
4
  import 'node:http';
5
5
  import '../common/spanCollector.cjs';
6
6
  import '@opentelemetry/sdk-trace-base';
7
- import '../common/logging.cjs';
8
- import 'winston';
9
7
  import '../common/tempGzipFile.cjs';
10
8
 
11
9
  declare function patchNestLogger(logsContext: AsyncLocalStorage<LogRecord[]>): Promise<void>;
@@ -4,8 +4,6 @@ import 'node:buffer';
4
4
  import 'node:http';
5
5
  import '../common/spanCollector.js';
6
6
  import '@opentelemetry/sdk-trace-base';
7
- import '../common/logging.js';
8
- import 'winston';
9
7
  import '../common/tempGzipFile.js';
10
8
 
11
9
  declare function patchNestLogger(logsContext: AsyncLocalStorage<LogRecord[]>): Promise<void>;
@@ -4,8 +4,6 @@ import 'node:buffer';
4
4
  import 'node:http';
5
5
  import '../common/spanCollector.cjs';
6
6
  import '@opentelemetry/sdk-trace-base';
7
- import '../common/logging.cjs';
8
- import 'winston';
9
7
  import '../common/tempGzipFile.cjs';
10
8
 
11
9
  declare function patchPinoLogger(logger: any, logsContext: AsyncLocalStorage<LogRecord[]>): Promise<boolean>;
@@ -4,8 +4,6 @@ import 'node:buffer';
4
4
  import 'node:http';
5
5
  import '../common/spanCollector.js';
6
6
  import '@opentelemetry/sdk-trace-base';
7
- import '../common/logging.js';
8
- import 'winston';
9
7
  import '../common/tempGzipFile.js';
10
8
 
11
9
  declare function patchPinoLogger(logger: any, logsContext: AsyncLocalStorage<LogRecord[]>): Promise<boolean>;
@@ -4,8 +4,6 @@ import 'node:buffer';
4
4
  import 'node:http';
5
5
  import '../common/spanCollector.cjs';
6
6
  import '@opentelemetry/sdk-trace-base';
7
- import '../common/logging.cjs';
8
- import 'winston';
9
7
  import '../common/tempGzipFile.cjs';
10
8
 
11
9
  declare function patchWinston(logsContext: AsyncLocalStorage<LogRecord[]>): Promise<void>;
@@ -4,8 +4,6 @@ import 'node:buffer';
4
4
  import 'node:http';
5
5
  import '../common/spanCollector.js';
6
6
  import '@opentelemetry/sdk-trace-base';
7
- import '../common/logging.js';
8
- import 'winston';
9
7
  import '../common/tempGzipFile.js';
10
8
 
11
9
  declare function patchWinston(logsContext: AsyncLocalStorage<LogRecord[]>): Promise<void>;
@@ -29,14 +29,12 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
29
29
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
30
30
  var nestjs_exports = {};
31
31
  __export(nestjs_exports, {
32
- ApitallySpanProcessor: () => import_spanCollector.ApitallySpanProcessor,
33
32
  setConsumer: () => setConsumer,
34
33
  useApitally: () => useApitally
35
34
  });
36
35
  module.exports = __toCommonJS(nestjs_exports);
37
36
  var import_common = require("@nestjs/common");
38
37
  var import_rxjs = require("rxjs");
39
- var import_spanCollector = require('../common/spanCollector.cjs');
40
38
  var _a;
41
39
  function _ts_decorate(decorators, target, key, desc) {
42
40
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
@@ -101,7 +99,6 @@ ApitallyInterceptor = _ts_decorate([
101
99
  ], ApitallyInterceptor);
102
100
  // Annotate the CommonJS export names for ESM import in node:
103
101
  0 && (module.exports = {
104
- ApitallySpanProcessor,
105
102
  setConsumer,
106
103
  useApitally
107
104
  });
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/nestjs/index.ts"],"sourcesContent":["import {\n CallHandler,\n ExecutionContext,\n INestApplication,\n Injectable,\n NestInterceptor,\n} from \"@nestjs/common\";\nimport { catchError, throwError } from \"rxjs\";\n\nimport type { ApitallyConfig, ApitallyConsumer } from \"../common/types.js\";\nexport { ApitallySpanProcessor } from \"../common/spanCollector.js\";\nexport type { ApitallyConfig, ApitallyConsumer } from \"../common/types.js\";\n\nlet setConsumerFn:\n | ((\n request: any,\n consumer: ApitallyConsumer | string | null | undefined,\n ) => void)\n | null = null;\n\nexport async function useApitally(\n app: INestApplication,\n config: ApitallyConfig,\n) {\n const httpAdapter = app.getHttpAdapter();\n const instance = httpAdapter.getInstance();\n const platform = httpAdapter.constructor.name\n .toLowerCase()\n .includes(\"fastify\")\n ? \"fastify\"\n : \"express\";\n\n if (platform === \"express\") {\n const { useApitally, setConsumer } = await import(\"../express/index.js\");\n setConsumerFn = setConsumer;\n useApitally(instance, config);\n } else if (platform === \"fastify\") {\n const { apitallyPlugin, setConsumer } = await import(\"../fastify/index.js\");\n setConsumerFn = setConsumer;\n await instance.register(apitallyPlugin, config);\n }\n\n app.useGlobalInterceptors(new ApitallyInterceptor(platform));\n}\n\nexport function setConsumer(\n request: any,\n consumer: ApitallyConsumer | string | null | undefined,\n) {\n if (setConsumerFn) {\n setConsumerFn(request, consumer);\n }\n}\n\n@Injectable()\nclass ApitallyInterceptor implements NestInterceptor {\n constructor(private readonly platform: \"express\" | \"fastify\") {}\n\n intercept(context: ExecutionContext, next: CallHandler) {\n return next.handle().pipe(\n catchError((exception) => {\n if (context.getType() === \"http\") {\n const ctx = context.switchToHttp();\n const res = ctx.getResponse();\n\n if (this.platform === \"express\" && res.locals) {\n res.locals.serverError = exception;\n } else if (\n this.platform === \"fastify\" &&\n (!exception.statusCode || exception.statusCode === 500)\n ) {\n res.serverError = exception;\n }\n }\n return throwError(() => exception);\n }),\n );\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,oBAMO;AACP,kBAAuC;AAGvC,2BAAsC;;;;;;;;;;;;;AAGtC,IAAIA,gBAKO;AAEX,eAAsBC,YACpBC,KACAC,QAAsB;AAEtB,QAAMC,cAAcF,IAAIG,eAAc;AACtC,QAAMC,WAAWF,YAAYG,YAAW;AACxC,QAAMC,WAAWJ,YAAY,YAAYK,KACtCC,YAAW,EACXC,SAAS,SAAA,IACR,YACA;AAEJ,MAAIH,aAAa,WAAW;AAC1B,UAAM,EAAEP,aAAAA,cAAaW,aAAAA,aAAW,IAAK,MAAM,OAAO,qBAAA;AAClDZ,oBAAgBY;AAChBX,IAAAA,aAAYK,UAAUH,MAAAA;EACxB,WAAWK,aAAa,WAAW;AACjC,UAAM,EAAEK,gBAAgBD,aAAAA,aAAW,IAAK,MAAM,OAAO,qBAAA;AACrDZ,oBAAgBY;AAChB,UAAMN,SAASQ,SAASD,gBAAgBV,MAAAA;EAC1C;AAEAD,MAAIa,sBAAsB,IAAIC,oBAAoBR,QAAAA,CAAAA;AACpD;AAvBsBP;AAyBf,SAASW,YACdK,SACAC,UAAsD;AAEtD,MAAIlB,eAAe;AACjBA,kBAAciB,SAASC,QAAAA;EACzB;AACF;AAPgBN;AAShB,IACMI,uBADN,WACMA;;EACJ,YAA6BR,UAAiC;SAAjCA,WAAAA;EAAkC;EAE/DW,UAAUC,SAA2BC,MAAmB;AACtD,WAAOA,KAAKC,OAAM,EAAGC,SACnBC,wBAAW,CAACC,cAAAA;AACV,UAAIL,QAAQM,QAAO,MAAO,QAAQ;AAChC,cAAMC,MAAMP,QAAQQ,aAAY;AAChC,cAAMC,MAAMF,IAAIG,YAAW;AAE3B,YAAI,KAAKtB,aAAa,aAAaqB,IAAIE,QAAQ;AAC7CF,cAAIE,OAAOC,cAAcP;QAC3B,WACE,KAAKjB,aAAa,cACjB,CAACiB,UAAUQ,cAAcR,UAAUQ,eAAe,MACnD;AACAJ,cAAIG,cAAcP;QACpB;MACF;AACA,iBAAOS,wBAAW,MAAMT,SAAAA;IAC1B,CAAA,CAAA;EAEJ;AACF,GAvBMT,mCADN;;;;;;;;","names":["setConsumerFn","useApitally","app","config","httpAdapter","getHttpAdapter","instance","getInstance","platform","name","toLowerCase","includes","setConsumer","apitallyPlugin","register","useGlobalInterceptors","ApitallyInterceptor","request","consumer","intercept","context","next","handle","pipe","catchError","exception","getType","ctx","switchToHttp","res","getResponse","locals","serverError","statusCode","throwError"]}
1
+ {"version":3,"sources":["../../src/nestjs/index.ts"],"sourcesContent":["import {\n CallHandler,\n ExecutionContext,\n INestApplication,\n Injectable,\n NestInterceptor,\n} from \"@nestjs/common\";\nimport { catchError, throwError } from \"rxjs\";\n\nimport type { ApitallyConfig, ApitallyConsumer } from \"../common/types.js\";\nexport type { ApitallyConfig, ApitallyConsumer } from \"../common/types.js\";\n\nlet setConsumerFn:\n | ((\n request: any,\n consumer: ApitallyConsumer | string | null | undefined,\n ) => void)\n | null = null;\n\nexport async function useApitally(\n app: INestApplication,\n config: ApitallyConfig,\n) {\n const httpAdapter = app.getHttpAdapter();\n const instance = httpAdapter.getInstance();\n const platform = httpAdapter.constructor.name\n .toLowerCase()\n .includes(\"fastify\")\n ? \"fastify\"\n : \"express\";\n\n if (platform === \"express\") {\n const { useApitally, setConsumer } = await import(\"../express/index.js\");\n setConsumerFn = setConsumer;\n useApitally(instance, config);\n } else if (platform === \"fastify\") {\n const { apitallyPlugin, setConsumer } = await import(\"../fastify/index.js\");\n setConsumerFn = setConsumer;\n await instance.register(apitallyPlugin, config);\n }\n\n app.useGlobalInterceptors(new ApitallyInterceptor(platform));\n}\n\nexport function setConsumer(\n request: any,\n consumer: ApitallyConsumer | string | null | undefined,\n) {\n if (setConsumerFn) {\n setConsumerFn(request, consumer);\n }\n}\n\n@Injectable()\nclass ApitallyInterceptor implements NestInterceptor {\n constructor(private readonly platform: \"express\" | \"fastify\") {}\n\n intercept(context: ExecutionContext, next: CallHandler) {\n return next.handle().pipe(\n catchError((exception) => {\n if (context.getType() === \"http\") {\n const ctx = context.switchToHttp();\n const res = ctx.getResponse();\n\n if (this.platform === \"express\" && res.locals) {\n res.locals.serverError = exception;\n } else if (\n this.platform === \"fastify\" &&\n (!exception.statusCode || exception.statusCode === 500)\n ) {\n res.serverError = exception;\n }\n }\n return throwError(() => exception);\n }),\n );\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,oBAMO;AACP,kBAAuC;;;;;;;;;;;;;AAKvC,IAAIA,gBAKO;AAEX,eAAsBC,YACpBC,KACAC,QAAsB;AAEtB,QAAMC,cAAcF,IAAIG,eAAc;AACtC,QAAMC,WAAWF,YAAYG,YAAW;AACxC,QAAMC,WAAWJ,YAAY,YAAYK,KACtCC,YAAW,EACXC,SAAS,SAAA,IACR,YACA;AAEJ,MAAIH,aAAa,WAAW;AAC1B,UAAM,EAAEP,aAAAA,cAAaW,aAAAA,aAAW,IAAK,MAAM,OAAO,qBAAA;AAClDZ,oBAAgBY;AAChBX,IAAAA,aAAYK,UAAUH,MAAAA;EACxB,WAAWK,aAAa,WAAW;AACjC,UAAM,EAAEK,gBAAgBD,aAAAA,aAAW,IAAK,MAAM,OAAO,qBAAA;AACrDZ,oBAAgBY;AAChB,UAAMN,SAASQ,SAASD,gBAAgBV,MAAAA;EAC1C;AAEAD,MAAIa,sBAAsB,IAAIC,oBAAoBR,QAAAA,CAAAA;AACpD;AAvBsBP;AAyBf,SAASW,YACdK,SACAC,UAAsD;AAEtD,MAAIlB,eAAe;AACjBA,kBAAciB,SAASC,QAAAA;EACzB;AACF;AAPgBN;AAShB,IACMI,uBADN,WACMA;;EACJ,YAA6BR,UAAiC;SAAjCA,WAAAA;EAAkC;EAE/DW,UAAUC,SAA2BC,MAAmB;AACtD,WAAOA,KAAKC,OAAM,EAAGC,SACnBC,wBAAW,CAACC,cAAAA;AACV,UAAIL,QAAQM,QAAO,MAAO,QAAQ;AAChC,cAAMC,MAAMP,QAAQQ,aAAY;AAChC,cAAMC,MAAMF,IAAIG,YAAW;AAE3B,YAAI,KAAKtB,aAAa,aAAaqB,IAAIE,QAAQ;AAC7CF,cAAIE,OAAOC,cAAcP;QAC3B,WACE,KAAKjB,aAAa,cACjB,CAACiB,UAAUQ,cAAcR,UAAUQ,eAAe,MACnD;AACAJ,cAAIG,cAAcP;QACpB;MACF;AACA,iBAAOS,wBAAW,MAAMT,SAAAA;IAC1B,CAAA,CAAA;EAEJ;AACF,GAvBMT,mCADN;;;;;;;;","names":["setConsumerFn","useApitally","app","config","httpAdapter","getHttpAdapter","instance","getInstance","platform","name","toLowerCase","includes","setConsumer","apitallyPlugin","register","useGlobalInterceptors","ApitallyInterceptor","request","consumer","intercept","context","next","handle","pipe","catchError","exception","getType","ctx","switchToHttp","res","getResponse","locals","serverError","statusCode","throwError"]}
@@ -1,13 +1,13 @@
1
1
  import { INestApplication } from '@nestjs/common';
2
- import { ApitallyConfig, ApitallyConsumer } from '../common/types.cjs';
3
- export { ApitallySpanProcessor } from '../common/spanCollector.cjs';
2
+ import { ApitallyConsumer, ApitallyConfig } from '../common/types.cjs';
4
3
  import '../common/logging.cjs';
5
4
  import 'winston';
6
5
  import '../common/requestLogger.cjs';
7
6
  import 'node:buffer';
8
7
  import 'node:http';
9
- import '../common/tempGzipFile.cjs';
8
+ import '../common/spanCollector.cjs';
10
9
  import '@opentelemetry/sdk-trace-base';
10
+ import '../common/tempGzipFile.cjs';
11
11
 
12
12
  declare function useApitally(app: INestApplication, config: ApitallyConfig): Promise<void>;
13
13
  declare function setConsumer(request: any, consumer: ApitallyConsumer | string | null | undefined): void;
@@ -1,13 +1,13 @@
1
1
  import { INestApplication } from '@nestjs/common';
2
- import { ApitallyConfig, ApitallyConsumer } from '../common/types.js';
3
- export { ApitallySpanProcessor } from '../common/spanCollector.js';
2
+ import { ApitallyConsumer, ApitallyConfig } from '../common/types.js';
4
3
  import '../common/logging.js';
5
4
  import 'winston';
6
5
  import '../common/requestLogger.js';
7
6
  import 'node:buffer';
8
7
  import 'node:http';
9
- import '../common/tempGzipFile.js';
8
+ import '../common/spanCollector.js';
10
9
  import '@opentelemetry/sdk-trace-base';
10
+ import '../common/tempGzipFile.js';
11
11
 
12
12
  declare function useApitally(app: INestApplication, config: ApitallyConfig): Promise<void>;
13
13
  declare function setConsumer(request: any, consumer: ApitallyConsumer | string | null | undefined): void;
@@ -14,7 +14,6 @@ function _ts_metadata(k, v) {
14
14
  __name(_ts_metadata, "_ts_metadata");
15
15
  import { Injectable } from "@nestjs/common";
16
16
  import { catchError, throwError } from "rxjs";
17
- import { ApitallySpanProcessor } from "../common/spanCollector.js";
18
17
  let setConsumerFn = null;
19
18
  async function useApitally(app, config) {
20
19
  const httpAdapter = app.getHttpAdapter();
@@ -66,7 +65,6 @@ ApitallyInterceptor = _ts_decorate([
66
65
  ])
67
66
  ], ApitallyInterceptor);
68
67
  export {
69
- ApitallySpanProcessor,
70
68
  setConsumer,
71
69
  useApitally
72
70
  };
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/nestjs/index.ts"],"sourcesContent":["import {\n CallHandler,\n ExecutionContext,\n INestApplication,\n Injectable,\n NestInterceptor,\n} from \"@nestjs/common\";\nimport { catchError, throwError } from \"rxjs\";\n\nimport type { ApitallyConfig, ApitallyConsumer } from \"../common/types.js\";\nexport { ApitallySpanProcessor } from \"../common/spanCollector.js\";\nexport type { ApitallyConfig, ApitallyConsumer } from \"../common/types.js\";\n\nlet setConsumerFn:\n | ((\n request: any,\n consumer: ApitallyConsumer | string | null | undefined,\n ) => void)\n | null = null;\n\nexport async function useApitally(\n app: INestApplication,\n config: ApitallyConfig,\n) {\n const httpAdapter = app.getHttpAdapter();\n const instance = httpAdapter.getInstance();\n const platform = httpAdapter.constructor.name\n .toLowerCase()\n .includes(\"fastify\")\n ? \"fastify\"\n : \"express\";\n\n if (platform === \"express\") {\n const { useApitally, setConsumer } = await import(\"../express/index.js\");\n setConsumerFn = setConsumer;\n useApitally(instance, config);\n } else if (platform === \"fastify\") {\n const { apitallyPlugin, setConsumer } = await import(\"../fastify/index.js\");\n setConsumerFn = setConsumer;\n await instance.register(apitallyPlugin, config);\n }\n\n app.useGlobalInterceptors(new ApitallyInterceptor(platform));\n}\n\nexport function setConsumer(\n request: any,\n consumer: ApitallyConsumer | string | null | undefined,\n) {\n if (setConsumerFn) {\n setConsumerFn(request, consumer);\n }\n}\n\n@Injectable()\nclass ApitallyInterceptor implements NestInterceptor {\n constructor(private readonly platform: \"express\" | \"fastify\") {}\n\n intercept(context: ExecutionContext, next: CallHandler) {\n return next.handle().pipe(\n catchError((exception) => {\n if (context.getType() === \"http\") {\n const ctx = context.switchToHttp();\n const res = ctx.getResponse();\n\n if (this.platform === \"express\" && res.locals) {\n res.locals.serverError = exception;\n } else if (\n this.platform === \"fastify\" &&\n (!exception.statusCode || exception.statusCode === 500)\n ) {\n res.serverError = exception;\n }\n }\n return throwError(() => exception);\n }),\n );\n }\n}\n"],"mappings":";;;;;;;;;;;;;;AAAA,SAIEA,kBAEK;AACP,SAASC,YAAYC,kBAAkB;AAGvC,SAASC,6BAA6B;AAGtC,IAAIC,gBAKO;AAEX,eAAsBC,YACpBC,KACAC,QAAsB;AAEtB,QAAMC,cAAcF,IAAIG,eAAc;AACtC,QAAMC,WAAWF,YAAYG,YAAW;AACxC,QAAMC,WAAWJ,YAAY,YAAYK,KACtCC,YAAW,EACXC,SAAS,SAAA,IACR,YACA;AAEJ,MAAIH,aAAa,WAAW;AAC1B,UAAM,EAAEP,aAAAA,cAAaW,aAAAA,aAAW,IAAK,MAAM,OAAO,qBAAA;AAClDZ,oBAAgBY;AAChBX,IAAAA,aAAYK,UAAUH,MAAAA;EACxB,WAAWK,aAAa,WAAW;AACjC,UAAM,EAAEK,gBAAgBD,aAAAA,aAAW,IAAK,MAAM,OAAO,qBAAA;AACrDZ,oBAAgBY;AAChB,UAAMN,SAASQ,SAASD,gBAAgBV,MAAAA;EAC1C;AAEAD,MAAIa,sBAAsB,IAAIC,oBAAoBR,QAAAA,CAAAA;AACpD;AAvBsBP;AAyBf,SAASW,YACdK,SACAC,UAAsD;AAEtD,MAAIlB,eAAe;AACjBA,kBAAciB,SAASC,QAAAA;EACzB;AACF;AAPgBN;AAShB,IACMI,uBADN,WACMA;;EACJ,YAA6BR,UAAiC;SAAjCA,WAAAA;EAAkC;EAE/DW,UAAUC,SAA2BC,MAAmB;AACtD,WAAOA,KAAKC,OAAM,EAAGC,KACnB1B,WAAW,CAAC2B,cAAAA;AACV,UAAIJ,QAAQK,QAAO,MAAO,QAAQ;AAChC,cAAMC,MAAMN,QAAQO,aAAY;AAChC,cAAMC,MAAMF,IAAIG,YAAW;AAE3B,YAAI,KAAKrB,aAAa,aAAaoB,IAAIE,QAAQ;AAC7CF,cAAIE,OAAOC,cAAcP;QAC3B,WACE,KAAKhB,aAAa,cACjB,CAACgB,UAAUQ,cAAcR,UAAUQ,eAAe,MACnD;AACAJ,cAAIG,cAAcP;QACpB;MACF;AACA,aAAO1B,WAAW,MAAM0B,SAAAA;IAC1B,CAAA,CAAA;EAEJ;AACF,GAvBMR,mCADN;;;;;;;;","names":["Injectable","catchError","throwError","ApitallySpanProcessor","setConsumerFn","useApitally","app","config","httpAdapter","getHttpAdapter","instance","getInstance","platform","name","toLowerCase","includes","setConsumer","apitallyPlugin","register","useGlobalInterceptors","ApitallyInterceptor","request","consumer","intercept","context","next","handle","pipe","exception","getType","ctx","switchToHttp","res","getResponse","locals","serverError","statusCode"]}
1
+ {"version":3,"sources":["../../src/nestjs/index.ts"],"sourcesContent":["import {\n CallHandler,\n ExecutionContext,\n INestApplication,\n Injectable,\n NestInterceptor,\n} from \"@nestjs/common\";\nimport { catchError, throwError } from \"rxjs\";\n\nimport type { ApitallyConfig, ApitallyConsumer } from \"../common/types.js\";\nexport type { ApitallyConfig, ApitallyConsumer } from \"../common/types.js\";\n\nlet setConsumerFn:\n | ((\n request: any,\n consumer: ApitallyConsumer | string | null | undefined,\n ) => void)\n | null = null;\n\nexport async function useApitally(\n app: INestApplication,\n config: ApitallyConfig,\n) {\n const httpAdapter = app.getHttpAdapter();\n const instance = httpAdapter.getInstance();\n const platform = httpAdapter.constructor.name\n .toLowerCase()\n .includes(\"fastify\")\n ? \"fastify\"\n : \"express\";\n\n if (platform === \"express\") {\n const { useApitally, setConsumer } = await import(\"../express/index.js\");\n setConsumerFn = setConsumer;\n useApitally(instance, config);\n } else if (platform === \"fastify\") {\n const { apitallyPlugin, setConsumer } = await import(\"../fastify/index.js\");\n setConsumerFn = setConsumer;\n await instance.register(apitallyPlugin, config);\n }\n\n app.useGlobalInterceptors(new ApitallyInterceptor(platform));\n}\n\nexport function setConsumer(\n request: any,\n consumer: ApitallyConsumer | string | null | undefined,\n) {\n if (setConsumerFn) {\n setConsumerFn(request, consumer);\n }\n}\n\n@Injectable()\nclass ApitallyInterceptor implements NestInterceptor {\n constructor(private readonly platform: \"express\" | \"fastify\") {}\n\n intercept(context: ExecutionContext, next: CallHandler) {\n return next.handle().pipe(\n catchError((exception) => {\n if (context.getType() === \"http\") {\n const ctx = context.switchToHttp();\n const res = ctx.getResponse();\n\n if (this.platform === \"express\" && res.locals) {\n res.locals.serverError = exception;\n } else if (\n this.platform === \"fastify\" &&\n (!exception.statusCode || exception.statusCode === 500)\n ) {\n res.serverError = exception;\n }\n }\n return throwError(() => exception);\n }),\n );\n }\n}\n"],"mappings":";;;;;;;;;;;;;;AAAA,SAIEA,kBAEK;AACP,SAASC,YAAYC,kBAAkB;AAKvC,IAAIC,gBAKO;AAEX,eAAsBC,YACpBC,KACAC,QAAsB;AAEtB,QAAMC,cAAcF,IAAIG,eAAc;AACtC,QAAMC,WAAWF,YAAYG,YAAW;AACxC,QAAMC,WAAWJ,YAAY,YAAYK,KACtCC,YAAW,EACXC,SAAS,SAAA,IACR,YACA;AAEJ,MAAIH,aAAa,WAAW;AAC1B,UAAM,EAAEP,aAAAA,cAAaW,aAAAA,aAAW,IAAK,MAAM,OAAO,qBAAA;AAClDZ,oBAAgBY;AAChBX,IAAAA,aAAYK,UAAUH,MAAAA;EACxB,WAAWK,aAAa,WAAW;AACjC,UAAM,EAAEK,gBAAgBD,aAAAA,aAAW,IAAK,MAAM,OAAO,qBAAA;AACrDZ,oBAAgBY;AAChB,UAAMN,SAASQ,SAASD,gBAAgBV,MAAAA;EAC1C;AAEAD,MAAIa,sBAAsB,IAAIC,oBAAoBR,QAAAA,CAAAA;AACpD;AAvBsBP;AAyBf,SAASW,YACdK,SACAC,UAAsD;AAEtD,MAAIlB,eAAe;AACjBA,kBAAciB,SAASC,QAAAA;EACzB;AACF;AAPgBN;AAShB,IACMI,uBADN,WACMA;;EACJ,YAA6BR,UAAiC;SAAjCA,WAAAA;EAAkC;EAE/DW,UAAUC,SAA2BC,MAAmB;AACtD,WAAOA,KAAKC,OAAM,EAAGC,KACnBzB,WAAW,CAAC0B,cAAAA;AACV,UAAIJ,QAAQK,QAAO,MAAO,QAAQ;AAChC,cAAMC,MAAMN,QAAQO,aAAY;AAChC,cAAMC,MAAMF,IAAIG,YAAW;AAE3B,YAAI,KAAKrB,aAAa,aAAaoB,IAAIE,QAAQ;AAC7CF,cAAIE,OAAOC,cAAcP;QAC3B,WACE,KAAKhB,aAAa,cACjB,CAACgB,UAAUQ,cAAcR,UAAUQ,eAAe,MACnD;AACAJ,cAAIG,cAAcP;QACpB;MACF;AACA,aAAOzB,WAAW,MAAMyB,SAAAA;IAC1B,CAAA,CAAA;EAEJ;AACF,GAvBMR,mCADN;;;;;;;;","names":["Injectable","catchError","throwError","setConsumerFn","useApitally","app","config","httpAdapter","getHttpAdapter","instance","getInstance","platform","name","toLowerCase","includes","setConsumer","apitallyPlugin","register","useGlobalInterceptors","ApitallyInterceptor","request","consumer","intercept","context","next","handle","pipe","exception","getType","ctx","switchToHttp","res","getResponse","locals","serverError","statusCode"]}
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+ var otel_exports = {};
20
+ __export(otel_exports, {
21
+ ApitallySpanProcessor: () => import_spanCollector.ApitallySpanProcessor
22
+ });
23
+ module.exports = __toCommonJS(otel_exports);
24
+ var import_spanCollector = require('../common/spanCollector.cjs');
25
+ // Annotate the CommonJS export names for ESM import in node:
26
+ 0 && (module.exports = {
27
+ ApitallySpanProcessor
28
+ });
29
+ //# sourceMappingURL=index.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/otel/index.ts"],"sourcesContent":["export { ApitallySpanProcessor } from \"../common/spanCollector.js\";\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;;;;;2BAAsC;","names":[]}
@@ -0,0 +1,2 @@
1
+ export { ApitallySpanProcessor } from '../common/spanCollector.cjs';
2
+ import '@opentelemetry/sdk-trace-base';
@@ -0,0 +1,2 @@
1
+ export { ApitallySpanProcessor } from '../common/spanCollector.js';
2
+ import '@opentelemetry/sdk-trace-base';
@@ -0,0 +1,5 @@
1
+ import { ApitallySpanProcessor } from "../common/spanCollector.js";
2
+ export {
3
+ ApitallySpanProcessor
4
+ };
5
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/otel/index.ts"],"sourcesContent":["export { ApitallySpanProcessor } from \"../common/spanCollector.js\";\n"],"mappings":"AAAA,SAASA,6BAA6B;","names":["ApitallySpanProcessor"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "apitally",
3
- "version": "0.25.1",
3
+ "version": "0.25.3",
4
4
  "description": "Simple API monitoring & analytics for REST APIs built with Express, Fastify, NestJS, AdonisJS, Hono, H3, Elysia, Hapi, and Koa.",
5
5
  "author": "Apitally <hello@apitally.io>",
6
6
  "license": "MIT",
@@ -160,6 +160,16 @@
160
160
  "default": "./dist/nestjs/index.cjs"
161
161
  }
162
162
  },
163
+ "./otel": {
164
+ "import": {
165
+ "types": "./dist/otel/index.d.ts",
166
+ "default": "./dist/otel/index.js"
167
+ },
168
+ "require": {
169
+ "types": "./dist/otel/index.d.cts",
170
+ "default": "./dist/otel/index.cjs"
171
+ }
172
+ },
163
173
  "./package.json": "./package.json"
164
174
  },
165
175
  "typesVersions": {
@@ -196,6 +206,9 @@
196
206
  ],
197
207
  "nestjs": [
198
208
  "./dist/nestjs/index.d.ts"
209
+ ],
210
+ "otel": [
211
+ "./dist/otel/index.d.ts"
199
212
  ]
200
213
  }
201
214
  },
@@ -310,7 +323,7 @@
310
323
  "fastify": "^5.0.0",
311
324
  "fastify-plugin": "^5.0.1",
312
325
  "globals": "^17.0.0",
313
- "h3": "2.0.1-rc.8",
326
+ "h3": "2.0.1-rc.14",
314
327
  "hono": "^4.6.5",
315
328
  "koa": "^3.0.0",
316
329
  "koa-bodyparser": "^4.4.1",