apitally 0.25.8 → 1.0.0-beta.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +228 -178
- package/dist/activation.cjs +393 -0
- package/dist/activation.cjs.map +1 -0
- package/dist/activation.d.cts +42 -0
- package/dist/activation.d.ts +42 -0
- package/dist/activation.js +383 -0
- package/dist/activation.js.map +1 -0
- package/dist/adonisjs/configure.cjs +86 -30
- package/dist/adonisjs/configure.cjs.map +1 -1
- package/dist/adonisjs/configure.d.cts +0 -4
- package/dist/adonisjs/configure.d.ts +0 -4
- package/dist/adonisjs/configure.js +83 -29
- package/dist/adonisjs/configure.js.map +1 -1
- package/dist/adonisjs/index.cjs +38 -21
- package/dist/adonisjs/index.cjs.map +1 -1
- package/dist/adonisjs/index.d.cts +5 -14
- package/dist/adonisjs/index.d.ts +5 -14
- package/dist/adonisjs/index.js +39 -18
- package/dist/adonisjs/index.js.map +1 -1
- package/dist/adonisjs/middleware.cjs +43 -109
- package/dist/adonisjs/middleware.cjs.map +1 -1
- package/dist/adonisjs/middleware.d.cts +1 -16
- package/dist/adonisjs/middleware.d.ts +1 -16
- package/dist/adonisjs/middleware.js +43 -110
- package/dist/adonisjs/middleware.js.map +1 -1
- package/dist/adonisjs/provider.cjs +19 -87
- package/dist/adonisjs/provider.cjs.map +1 -1
- package/dist/adonisjs/provider.d.cts +0 -22
- package/dist/adonisjs/provider.d.ts +0 -22
- package/dist/adonisjs/provider.js +19 -88
- package/dist/adonisjs/provider.js.map +1 -1
- package/dist/adonisjs/stubs/config/apitally.stub +11 -15
- package/dist/bodyCapture.cjs +128 -0
- package/dist/bodyCapture.cjs.map +1 -0
- package/dist/bodyCapture.d.cts +31 -0
- package/dist/bodyCapture.d.ts +31 -0
- package/dist/bodyCapture.js +101 -0
- package/dist/bodyCapture.js.map +1 -0
- package/dist/config.cjs +227 -0
- package/dist/config.cjs.map +1 -0
- package/dist/config.d.cts +45 -0
- package/dist/config.d.ts +45 -0
- package/dist/config.js +192 -0
- package/dist/config.js.map +1 -0
- package/dist/consumer.cjs +98 -0
- package/dist/consumer.cjs.map +1 -0
- package/dist/consumer.d.cts +15 -0
- package/dist/consumer.d.ts +15 -0
- package/dist/consumer.js +78 -0
- package/dist/consumer.js.map +1 -0
- package/dist/context.cjs +68 -0
- package/dist/context.cjs.map +1 -0
- package/dist/context.d.cts +33 -0
- package/dist/context.d.ts +33 -0
- package/dist/context.js +40 -0
- package/dist/context.js.map +1 -0
- package/dist/elysia/index.cjs +12 -3
- package/dist/elysia/index.cjs.map +1 -1
- package/dist/elysia/index.d.cts +8 -16
- package/dist/elysia/index.d.ts +8 -16
- package/dist/elysia/index.js +10 -2
- package/dist/elysia/index.js.map +1 -1
- package/dist/elysia/middleware.cjs +261 -0
- package/dist/elysia/middleware.cjs.map +1 -0
- package/dist/elysia/middleware.d.cts +14 -0
- package/dist/elysia/middleware.d.ts +14 -0
- package/dist/elysia/middleware.js +250 -0
- package/dist/elysia/middleware.js.map +1 -0
- package/dist/{otel/index.cjs → elysia/routes.cjs} +16 -7
- package/dist/elysia/routes.cjs.map +1 -0
- package/dist/elysia/routes.d.cts +7 -0
- package/dist/elysia/routes.d.ts +7 -0
- package/dist/elysia/routes.js +14 -0
- package/dist/elysia/routes.js.map +1 -0
- package/dist/exceptions.cjs +81 -0
- package/dist/exceptions.cjs.map +1 -0
- package/dist/exceptions.d.cts +7 -0
- package/dist/exceptions.d.ts +7 -0
- package/dist/exceptions.js +55 -0
- package/dist/exceptions.js.map +1 -0
- package/dist/exportSerialization.cjs +56 -0
- package/dist/exportSerialization.cjs.map +1 -0
- package/dist/exportSerialization.d.cts +7 -0
- package/dist/exportSerialization.d.ts +7 -0
- package/dist/exportSerialization.js +32 -0
- package/dist/exportSerialization.js.map +1 -0
- package/dist/exportWorker.cjs +305 -0
- package/dist/exportWorker.cjs.map +1 -0
- package/dist/exportWorker.d.cts +46 -0
- package/dist/exportWorker.d.ts +46 -0
- package/dist/exportWorker.js +279 -0
- package/dist/exportWorker.js.map +1 -0
- package/dist/express/index.cjs +9 -4
- package/dist/express/index.cjs.map +1 -1
- package/dist/express/index.d.cts +7 -10
- package/dist/express/index.d.ts +7 -10
- package/dist/express/index.js +8 -2
- package/dist/express/index.js.map +1 -1
- package/dist/express/install.cjs +45 -0
- package/dist/express/install.cjs.map +1 -0
- package/dist/express/install.d.cts +10 -0
- package/dist/express/install.d.ts +10 -0
- package/dist/express/install.js +21 -0
- package/dist/express/install.js.map +1 -0
- package/dist/express/middleware.cjs +87 -331
- package/dist/express/middleware.cjs.map +1 -1
- package/dist/express/middleware.d.cts +3 -21
- package/dist/express/middleware.d.ts +3 -21
- package/dist/express/middleware.js +91 -327
- package/dist/express/middleware.js.map +1 -1
- package/dist/express/register.cjs +20 -0
- package/dist/express/register.cjs.map +1 -0
- package/dist/express/register.d.cts +2 -0
- package/dist/express/register.d.ts +2 -0
- package/dist/express/register.js +19 -0
- package/dist/express/register.js.map +1 -0
- package/dist/express/routes.cjs +429 -0
- package/dist/express/routes.cjs.map +1 -0
- package/dist/express/routes.d.cts +14 -0
- package/dist/express/routes.d.ts +14 -0
- package/dist/express/routes.js +401 -0
- package/dist/express/routes.js.map +1 -0
- package/dist/fastify/index.cjs +10 -5
- package/dist/fastify/index.cjs.map +1 -1
- package/dist/fastify/index.d.cts +7 -11
- package/dist/fastify/index.d.ts +7 -11
- package/dist/fastify/index.js +9 -3
- package/dist/fastify/index.js.map +1 -1
- package/dist/{loggers/index.cjs → fastify/install.cjs} +17 -19
- package/dist/fastify/install.cjs.map +1 -0
- package/dist/fastify/install.d.cts +10 -0
- package/dist/fastify/install.d.ts +10 -0
- package/dist/fastify/install.js +15 -0
- package/dist/fastify/install.js.map +1 -0
- package/dist/fastify/middleware.cjs +135 -0
- package/dist/fastify/middleware.cjs.map +1 -0
- package/dist/fastify/middleware.d.cts +7 -0
- package/dist/fastify/middleware.d.ts +7 -0
- package/dist/fastify/middleware.js +114 -0
- package/dist/fastify/middleware.js.map +1 -0
- package/dist/{common/paramValidation.cjs → fastify/routes.cjs} +15 -17
- package/dist/fastify/routes.cjs.map +1 -0
- package/dist/fastify/routes.d.cts +8 -0
- package/dist/fastify/routes.d.ts +8 -0
- package/dist/fastify/routes.js +14 -0
- package/dist/fastify/routes.js.map +1 -0
- package/dist/h3/index.cjs +28 -4
- package/dist/h3/index.cjs.map +1 -1
- package/dist/h3/index.d.cts +8 -10
- package/dist/h3/index.d.ts +8 -10
- package/dist/h3/index.js +26 -2
- package/dist/h3/index.js.map +1 -1
- package/dist/h3/middleware.cjs +210 -0
- package/dist/h3/middleware.cjs.map +1 -0
- package/dist/h3/middleware.d.cts +5 -0
- package/dist/h3/middleware.d.ts +5 -0
- package/dist/h3/middleware.js +194 -0
- package/dist/h3/middleware.js.map +1 -0
- package/dist/h3/routes.cjs +66 -0
- package/dist/h3/routes.cjs.map +1 -0
- package/dist/h3/routes.d.cts +8 -0
- package/dist/h3/routes.d.ts +8 -0
- package/dist/h3/routes.js +41 -0
- package/dist/h3/routes.js.map +1 -0
- package/dist/hapi/index.cjs +15 -4
- package/dist/hapi/index.cjs.map +1 -1
- package/dist/hapi/index.d.cts +8 -10
- package/dist/hapi/index.d.ts +8 -10
- package/dist/hapi/index.js +13 -2
- package/dist/hapi/index.js.map +1 -1
- package/dist/{loggers/hapi.cjs → hapi/install.cjs} +20 -26
- package/dist/hapi/install.cjs.map +1 -0
- package/dist/hapi/install.d.cts +8 -0
- package/dist/hapi/install.d.ts +8 -0
- package/dist/hapi/install.js +22 -0
- package/dist/hapi/install.js.map +1 -0
- package/dist/hapi/middleware.cjs +158 -0
- package/dist/hapi/middleware.cjs.map +1 -0
- package/dist/hapi/middleware.d.cts +5 -0
- package/dist/hapi/middleware.d.ts +5 -0
- package/dist/hapi/middleware.js +137 -0
- package/dist/hapi/middleware.js.map +1 -0
- package/dist/{common/logging.cjs → hapi/routes.cjs} +14 -17
- package/dist/hapi/routes.cjs.map +1 -0
- package/dist/hapi/routes.d.cts +8 -0
- package/dist/hapi/routes.d.ts +8 -0
- package/dist/hapi/routes.js +12 -0
- package/dist/hapi/routes.js.map +1 -0
- package/dist/hono/index.cjs +13 -3
- package/dist/hono/index.cjs.map +1 -1
- package/dist/hono/index.d.cts +7 -10
- package/dist/hono/index.d.ts +7 -10
- package/dist/hono/index.js +13 -2
- package/dist/hono/index.js.map +1 -1
- package/dist/hono/middleware.cjs +219 -127
- package/dist/hono/middleware.cjs.map +1 -1
- package/dist/hono/middleware.d.cts +3 -18
- package/dist/hono/middleware.d.ts +3 -18
- package/dist/hono/middleware.js +229 -126
- package/dist/hono/middleware.js.map +1 -1
- package/dist/hono/routes.cjs +74 -0
- package/dist/hono/routes.cjs.map +1 -0
- package/dist/hono/routes.d.cts +8 -0
- package/dist/hono/routes.d.ts +8 -0
- package/dist/hono/routes.js +49 -0
- package/dist/hono/routes.js.map +1 -0
- package/dist/index.cjs +108 -0
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +29 -1
- package/dist/index.d.ts +29 -1
- package/dist/index.js +77 -0
- package/dist/index.js.map +1 -1
- package/dist/koa/index.cjs +13 -3
- package/dist/koa/index.cjs.map +1 -1
- package/dist/koa/index.d.cts +7 -10
- package/dist/koa/index.d.ts +7 -10
- package/dist/koa/index.js +13 -2
- package/dist/koa/index.js.map +1 -1
- package/dist/koa/middleware.cjs +85 -184
- package/dist/koa/middleware.cjs.map +1 -1
- package/dist/koa/middleware.d.cts +3 -13
- package/dist/koa/middleware.d.ts +3 -13
- package/dist/koa/middleware.js +88 -183
- package/dist/koa/middleware.js.map +1 -1
- package/dist/koa/routes.cjs +71 -0
- package/dist/koa/routes.cjs.map +1 -0
- package/dist/koa/routes.d.cts +8 -0
- package/dist/koa/routes.d.ts +8 -0
- package/dist/koa/routes.js +46 -0
- package/dist/koa/routes.js.map +1 -0
- package/dist/logCapture.cjs +417 -0
- package/dist/logCapture.cjs.map +1 -0
- package/dist/logCapture.d.cts +18 -0
- package/dist/logCapture.d.ts +18 -0
- package/dist/logCapture.js +390 -0
- package/dist/logCapture.js.map +1 -0
- package/dist/logRecordExporter.cjs +51 -0
- package/dist/logRecordExporter.cjs.map +1 -0
- package/dist/logRecordExporter.d.cts +14 -0
- package/dist/logRecordExporter.d.ts +14 -0
- package/dist/logRecordExporter.js +27 -0
- package/dist/logRecordExporter.js.map +1 -0
- package/dist/logRecordProcessor.cjs +137 -0
- package/dist/logRecordProcessor.cjs.map +1 -0
- package/dist/logRecordProcessor.d.cts +27 -0
- package/dist/logRecordProcessor.d.ts +27 -0
- package/dist/logRecordProcessor.js +113 -0
- package/dist/logRecordProcessor.js.map +1 -0
- package/dist/logger.cjs +62 -0
- package/dist/logger.cjs.map +1 -0
- package/dist/logger.d.cts +7 -0
- package/dist/logger.d.ts +7 -0
- package/dist/logger.js +34 -0
- package/dist/logger.js.map +1 -0
- package/dist/metrics.cjs +171 -0
- package/dist/metrics.cjs.map +1 -0
- package/dist/metrics.d.cts +26 -0
- package/dist/metrics.d.ts +26 -0
- package/dist/metrics.js +153 -0
- package/dist/metrics.js.map +1 -0
- package/dist/nestjs/index.cjs +81 -71
- package/dist/nestjs/index.cjs.map +1 -1
- package/dist/nestjs/index.d.cts +4 -11
- package/dist/nestjs/index.d.ts +4 -11
- package/dist/nestjs/index.js +81 -61
- package/dist/nestjs/index.js.map +1 -1
- package/dist/packageVersion.cjs +67 -0
- package/dist/packageVersion.cjs.map +1 -0
- package/dist/packageVersion.d.cts +5 -0
- package/dist/packageVersion.d.ts +5 -0
- package/dist/packageVersion.js +39 -0
- package/dist/packageVersion.js.map +1 -0
- package/dist/providers.cjs +149 -0
- package/dist/providers.cjs.map +1 -0
- package/dist/providers.d.cts +15 -0
- package/dist/providers.d.ts +15 -0
- package/dist/providers.js +136 -0
- package/dist/providers.js.map +1 -0
- package/dist/redaction.cjs +116 -0
- package/dist/redaction.cjs.map +1 -0
- package/dist/redaction.d.cts +17 -0
- package/dist/redaction.d.ts +17 -0
- package/dist/redaction.js +98 -0
- package/dist/redaction.js.map +1 -0
- package/dist/{common/packageVersions.cjs → requestAttributes.cjs} +21 -19
- package/dist/requestAttributes.cjs.map +1 -0
- package/dist/requestAttributes.d.cts +10 -0
- package/dist/requestAttributes.d.ts +10 -0
- package/dist/requestAttributes.js +22 -0
- package/dist/requestAttributes.js.map +1 -0
- package/dist/requestObservation.cjs +246 -0
- package/dist/requestObservation.cjs.map +1 -0
- package/dist/requestObservation.d.cts +62 -0
- package/dist/requestObservation.d.ts +62 -0
- package/dist/requestObservation.js +226 -0
- package/dist/requestObservation.js.map +1 -0
- package/dist/requestObservationNode.cjs +193 -0
- package/dist/requestObservationNode.cjs.map +1 -0
- package/dist/requestObservationNode.d.cts +31 -0
- package/dist/requestObservationNode.d.ts +31 -0
- package/dist/requestObservationNode.js +170 -0
- package/dist/requestObservationNode.js.map +1 -0
- package/dist/requestObservationWeb.cjs +202 -0
- package/dist/requestObservationWeb.cjs.map +1 -0
- package/dist/requestObservationWeb.d.cts +34 -0
- package/dist/requestObservationWeb.d.ts +34 -0
- package/dist/requestObservationWeb.js +182 -0
- package/dist/requestObservationWeb.js.map +1 -0
- package/dist/sentry.cjs +103 -0
- package/dist/sentry.cjs.map +1 -0
- package/dist/sentry.d.cts +3 -0
- package/dist/sentry.d.ts +3 -0
- package/dist/sentry.js +79 -0
- package/dist/sentry.js.map +1 -0
- package/dist/serverErrors.cjs +118 -0
- package/dist/serverErrors.cjs.map +1 -0
- package/dist/serverErrors.d.cts +8 -0
- package/dist/serverErrors.d.ts +8 -0
- package/dist/serverErrors.js +91 -0
- package/dist/serverErrors.js.map +1 -0
- package/dist/spanExporter.cjs +217 -0
- package/dist/spanExporter.cjs.map +1 -0
- package/dist/spanExporter.d.cts +34 -0
- package/dist/spanExporter.d.ts +34 -0
- package/dist/spanExporter.js +193 -0
- package/dist/spanExporter.js.map +1 -0
- package/dist/spanProcessor.cjs +535 -0
- package/dist/spanProcessor.cjs.map +1 -0
- package/dist/spanProcessor.d.cts +70 -0
- package/dist/spanProcessor.d.ts +70 -0
- package/dist/spanProcessor.js +513 -0
- package/dist/spanProcessor.js.map +1 -0
- package/dist/spool.cjs +314 -0
- package/dist/spool.cjs.map +1 -0
- package/dist/spool.d.cts +49 -0
- package/dist/spool.d.ts +49 -0
- package/dist/spool.js +297 -0
- package/dist/spool.js.map +1 -0
- package/dist/startup.cjs +98 -0
- package/dist/startup.cjs.map +1 -0
- package/dist/startup.d.cts +15 -0
- package/dist/startup.d.ts +15 -0
- package/dist/startup.js +73 -0
- package/dist/startup.js.map +1 -0
- package/dist/tracing.cjs +116 -0
- package/dist/tracing.cjs.map +1 -0
- package/dist/tracing.d.cts +5 -0
- package/dist/tracing.d.ts +5 -0
- package/dist/tracing.js +96 -0
- package/dist/tracing.js.map +1 -0
- package/dist/validationErrors.cjs +229 -0
- package/dist/validationErrors.cjs.map +1 -0
- package/dist/validationErrors.d.cts +21 -0
- package/dist/validationErrors.d.ts +21 -0
- package/dist/validationErrors.js +195 -0
- package/dist/validationErrors.js.map +1 -0
- package/package.json +113 -154
- package/dist/common/client.cjs +0 -335
- package/dist/common/client.cjs.map +0 -1
- package/dist/common/client.d.cts +0 -50
- package/dist/common/client.d.ts +0 -50
- package/dist/common/client.js +0 -302
- package/dist/common/client.js.map +0 -1
- package/dist/common/consumerRegistry.cjs +0 -86
- package/dist/common/consumerRegistry.cjs.map +0 -1
- package/dist/common/consumerRegistry.d.cts +0 -20
- package/dist/common/consumerRegistry.d.ts +0 -20
- package/dist/common/consumerRegistry.js +0 -62
- package/dist/common/consumerRegistry.js.map +0 -1
- package/dist/common/headers.cjs +0 -55
- package/dist/common/headers.cjs.map +0 -1
- package/dist/common/headers.d.cts +0 -6
- package/dist/common/headers.d.ts +0 -6
- package/dist/common/headers.js +0 -31
- package/dist/common/headers.js.map +0 -1
- package/dist/common/instance.cjs +0 -158
- package/dist/common/instance.cjs.map +0 -1
- package/dist/common/instance.d.cts +0 -4
- package/dist/common/instance.d.ts +0 -4
- package/dist/common/instance.js +0 -134
- package/dist/common/instance.js.map +0 -1
- package/dist/common/logging.cjs.map +0 -1
- package/dist/common/logging.d.cts +0 -11
- package/dist/common/logging.d.ts +0 -11
- package/dist/common/logging.js +0 -17
- package/dist/common/logging.js.map +0 -1
- package/dist/common/packageVersions.cjs.map +0 -1
- package/dist/common/packageVersions.d.cts +0 -3
- package/dist/common/packageVersions.d.ts +0 -3
- package/dist/common/packageVersions.js +0 -21
- package/dist/common/packageVersions.js.map +0 -1
- package/dist/common/paramValidation.cjs.map +0 -1
- package/dist/common/paramValidation.d.cts +0 -4
- package/dist/common/paramValidation.d.ts +0 -4
- package/dist/common/paramValidation.js +0 -17
- package/dist/common/paramValidation.js.map +0 -1
- package/dist/common/requestCounter.cjs +0 -114
- package/dist/common/requestCounter.cjs.map +0 -1
- package/dist/common/requestCounter.d.cts +0 -24
- package/dist/common/requestCounter.d.ts +0 -24
- package/dist/common/requestCounter.js +0 -91
- package/dist/common/requestCounter.js.map +0 -1
- package/dist/common/requestLogger.cjs +0 -543
- package/dist/common/requestLogger.cjs.map +0 -1
- package/dist/common/requestLogger.d.cts +0 -85
- package/dist/common/requestLogger.d.ts +0 -85
- package/dist/common/requestLogger.js +0 -508
- package/dist/common/requestLogger.js.map +0 -1
- package/dist/common/resources.cjs +0 -49
- package/dist/common/resources.cjs.map +0 -1
- package/dist/common/resources.d.cts +0 -6
- package/dist/common/resources.d.ts +0 -6
- package/dist/common/resources.js +0 -26
- package/dist/common/resources.js.map +0 -1
- package/dist/common/response.cjs +0 -104
- package/dist/common/response.cjs.map +0 -1
- package/dist/common/response.d.cts +0 -15
- package/dist/common/response.d.ts +0 -15
- package/dist/common/response.js +0 -80
- package/dist/common/response.js.map +0 -1
- package/dist/common/sentry.cjs +0 -56
- package/dist/common/sentry.cjs.map +0 -1
- package/dist/common/sentry.d.cts +0 -6
- package/dist/common/sentry.d.ts +0 -6
- package/dist/common/sentry.js +0 -23
- package/dist/common/sentry.js.map +0 -1
- package/dist/common/serverErrorCounter.cjs +0 -123
- package/dist/common/serverErrorCounter.cjs.map +0 -1
- package/dist/common/serverErrorCounter.d.cts +0 -23
- package/dist/common/serverErrorCounter.d.ts +0 -23
- package/dist/common/serverErrorCounter.js +0 -98
- package/dist/common/serverErrorCounter.js.map +0 -1
- package/dist/common/spanCollector.cjs +0 -201
- package/dist/common/spanCollector.cjs.map +0 -1
- package/dist/common/spanCollector.d.cts +0 -45
- package/dist/common/spanCollector.d.ts +0 -45
- package/dist/common/spanCollector.js +0 -177
- package/dist/common/spanCollector.js.map +0 -1
- package/dist/common/tempGzipFile.cjs +0 -127
- package/dist/common/tempGzipFile.cjs.map +0 -1
- package/dist/common/tempGzipFile.d.cts +0 -19
- package/dist/common/tempGzipFile.d.ts +0 -19
- package/dist/common/tempGzipFile.js +0 -103
- package/dist/common/tempGzipFile.js.map +0 -1
- package/dist/common/types.cjs +0 -17
- package/dist/common/types.cjs.map +0 -1
- package/dist/common/types.d.cts +0 -95
- package/dist/common/types.d.ts +0 -95
- package/dist/common/types.js +0 -1
- package/dist/common/types.js.map +0 -1
- package/dist/common/validationErrorCounter.cjs +0 -79
- package/dist/common/validationErrorCounter.cjs.map +0 -1
- package/dist/common/validationErrorCounter.d.cts +0 -20
- package/dist/common/validationErrorCounter.d.ts +0 -20
- package/dist/common/validationErrorCounter.js +0 -56
- package/dist/common/validationErrorCounter.js.map +0 -1
- package/dist/elysia/plugin.cjs +0 -242
- package/dist/elysia/plugin.cjs.map +0 -1
- package/dist/elysia/plugin.d.cts +0 -70
- package/dist/elysia/plugin.d.ts +0 -70
- package/dist/elysia/plugin.js +0 -219
- package/dist/elysia/plugin.js.map +0 -1
- package/dist/elysia/utils.cjs +0 -77
- package/dist/elysia/utils.cjs.map +0 -1
- package/dist/elysia/utils.d.cts +0 -14
- package/dist/elysia/utils.d.ts +0 -14
- package/dist/elysia/utils.js +0 -54
- package/dist/elysia/utils.js.map +0 -1
- package/dist/express/utils.cjs +0 -217
- package/dist/express/utils.cjs.map +0 -1
- package/dist/express/utils.d.cts +0 -37
- package/dist/express/utils.d.ts +0 -37
- package/dist/express/utils.js +0 -189
- package/dist/express/utils.js.map +0 -1
- package/dist/fastify/plugin.cjs +0 -319
- package/dist/fastify/plugin.cjs.map +0 -1
- package/dist/fastify/plugin.d.cts +0 -34
- package/dist/fastify/plugin.d.ts +0 -34
- package/dist/fastify/plugin.js +0 -284
- package/dist/fastify/plugin.js.map +0 -1
- package/dist/h3/plugin.cjs +0 -183
- package/dist/h3/plugin.cjs.map +0 -1
- package/dist/h3/plugin.d.cts +0 -27
- package/dist/h3/plugin.d.ts +0 -27
- package/dist/h3/plugin.js +0 -159
- package/dist/h3/plugin.js.map +0 -1
- package/dist/h3/utils.cjs +0 -77
- package/dist/h3/utils.cjs.map +0 -1
- package/dist/h3/utils.d.cts +0 -14
- package/dist/h3/utils.d.ts +0 -14
- package/dist/h3/utils.js +0 -54
- package/dist/h3/utils.js.map +0 -1
- package/dist/hapi/plugin.cjs +0 -212
- package/dist/hapi/plugin.cjs.map +0 -1
- package/dist/hapi/plugin.d.cts +0 -40
- package/dist/hapi/plugin.d.ts +0 -40
- package/dist/hapi/plugin.js +0 -188
- package/dist/hapi/plugin.js.map +0 -1
- package/dist/hapi/utils.cjs +0 -77
- package/dist/hapi/utils.cjs.map +0 -1
- package/dist/hapi/utils.d.cts +0 -16
- package/dist/hapi/utils.d.ts +0 -16
- package/dist/hapi/utils.js +0 -53
- package/dist/hapi/utils.js.map +0 -1
- package/dist/hono/utils.cjs +0 -113
- package/dist/hono/utils.cjs.map +0 -1
- package/dist/hono/utils.d.cts +0 -16
- package/dist/hono/utils.d.ts +0 -16
- package/dist/hono/utils.js +0 -88
- package/dist/hono/utils.js.map +0 -1
- package/dist/loggers/console.cjs +0 -67
- package/dist/loggers/console.cjs.map +0 -1
- package/dist/loggers/console.d.cts +0 -11
- package/dist/loggers/console.d.ts +0 -11
- package/dist/loggers/console.js +0 -44
- package/dist/loggers/console.js.map +0 -1
- package/dist/loggers/hapi.cjs.map +0 -1
- package/dist/loggers/hapi.d.cts +0 -12
- package/dist/loggers/hapi.d.ts +0 -12
- package/dist/loggers/hapi.js +0 -29
- package/dist/loggers/hapi.js.map +0 -1
- package/dist/loggers/index.cjs.map +0 -1
- package/dist/loggers/index.d.cts +0 -13
- package/dist/loggers/index.d.ts +0 -13
- package/dist/loggers/index.js +0 -13
- package/dist/loggers/index.js.map +0 -1
- package/dist/loggers/nestjs.cjs +0 -104
- package/dist/loggers/nestjs.cjs.map +0 -1
- package/dist/loggers/nestjs.d.cts +0 -11
- package/dist/loggers/nestjs.d.ts +0 -11
- package/dist/loggers/nestjs.js +0 -71
- package/dist/loggers/nestjs.js.map +0 -1
- package/dist/loggers/pino.cjs +0 -152
- package/dist/loggers/pino.cjs.map +0 -1
- package/dist/loggers/pino.d.cts +0 -11
- package/dist/loggers/pino.d.ts +0 -11
- package/dist/loggers/pino.js +0 -119
- package/dist/loggers/pino.js.map +0 -1
- package/dist/loggers/utils.cjs +0 -64
- package/dist/loggers/utils.cjs.map +0 -1
- package/dist/loggers/utils.d.cts +0 -6
- package/dist/loggers/utils.d.ts +0 -6
- package/dist/loggers/utils.js +0 -40
- package/dist/loggers/utils.js.map +0 -1
- package/dist/loggers/winston.cjs +0 -101
- package/dist/loggers/winston.cjs.map +0 -1
- package/dist/loggers/winston.d.cts +0 -11
- package/dist/loggers/winston.d.ts +0 -11
- package/dist/loggers/winston.js +0 -68
- package/dist/loggers/winston.js.map +0 -1
- package/dist/otel/index.cjs.map +0 -1
- package/dist/otel/index.d.cts +0 -2
- package/dist/otel/index.d.ts +0 -2
- package/dist/otel/index.js +0 -5
- package/dist/otel/index.js.map +0 -1
package/dist/nestjs/index.js
CHANGED
|
@@ -1,71 +1,91 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
}
|
|
10
|
-
__name(_ts_decorate, "_ts_decorate");
|
|
11
|
-
function _ts_metadata(k, v) {
|
|
12
|
-
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
13
|
-
}
|
|
14
|
-
__name(_ts_metadata, "_ts_metadata");
|
|
15
|
-
import { Injectable } from "@nestjs/common";
|
|
16
|
-
import { catchError, throwError } from "rxjs";
|
|
17
|
-
let setConsumerFn = null;
|
|
18
|
-
async function useApitally(app, config) {
|
|
1
|
+
import { createRequire } from "node:module";
|
|
2
|
+
import { getRequestRecord } from "../context.js";
|
|
3
|
+
import { captureException } from "../exceptions.js";
|
|
4
|
+
import { installExpressIntegration } from "../express/install.js";
|
|
5
|
+
import { installFastifyIntegration } from "../fastify/install.js";
|
|
6
|
+
import { resolvePackageEntryPath, resolvePackageVersion } from "../packageVersion.js";
|
|
7
|
+
const INTERCEPTOR_MARKER = /* @__PURE__ */ Symbol.for("apitally.nestInterceptor");
|
|
8
|
+
function useApitally(app, options) {
|
|
19
9
|
const httpAdapter = app.getHttpAdapter();
|
|
20
|
-
const
|
|
21
|
-
const
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
10
|
+
const adapterType = httpAdapter.getType();
|
|
11
|
+
const adapterInstance = httpAdapter.getInstance();
|
|
12
|
+
const frameworkInfo = {
|
|
13
|
+
framework: "nestjs",
|
|
14
|
+
frameworkVersion: resolvePackageVersion("@nestjs/core")
|
|
15
|
+
};
|
|
16
|
+
if (adapterType === "express") {
|
|
17
|
+
installExpressIntegration(adapterInstance, options, frameworkInfo);
|
|
18
|
+
} else if (adapterType === "fastify") {
|
|
19
|
+
installFastifyIntegration(adapterInstance, options, frameworkInfo);
|
|
20
|
+
} else {
|
|
21
|
+
throw new TypeError(
|
|
22
|
+
`Unsupported NestJS HTTP adapter ${JSON.stringify(adapterType)}. Supported adapters: express and fastify.`
|
|
23
|
+
);
|
|
30
24
|
}
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
if (setConsumerFn) {
|
|
36
|
-
setConsumerFn(request, consumer);
|
|
25
|
+
const markedInstance = adapterInstance;
|
|
26
|
+
if (markedInstance[INTERCEPTOR_MARKER] !== true) {
|
|
27
|
+
app.useGlobalInterceptors(createExceptionInterceptor());
|
|
28
|
+
markedInstance[INTERCEPTOR_MARKER] = true;
|
|
37
29
|
}
|
|
38
30
|
}
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
return next.handle().pipe(catchError((exception) => {
|
|
47
|
-
if (context.getType() === "http") {
|
|
48
|
-
const ctx = context.switchToHttp();
|
|
49
|
-
const res = ctx.getResponse();
|
|
50
|
-
if (this.platform === "express" && res.locals) {
|
|
51
|
-
res.locals.serverError = exception;
|
|
52
|
-
} else if (this.platform === "fastify" && (!exception.statusCode || exception.statusCode === 500)) {
|
|
53
|
-
res.serverError = exception;
|
|
54
|
-
}
|
|
31
|
+
function createExceptionInterceptor() {
|
|
32
|
+
const commonEntryPath = resolvePackageEntryPath("@nestjs/common");
|
|
33
|
+
const { catchError, throwError } = createRequire(commonEntryPath)("rxjs");
|
|
34
|
+
return {
|
|
35
|
+
intercept(executionContext, next) {
|
|
36
|
+
if (executionContext.getType() !== "http") {
|
|
37
|
+
return next.handle();
|
|
55
38
|
}
|
|
56
|
-
return
|
|
57
|
-
|
|
39
|
+
return next.handle().pipe(
|
|
40
|
+
catchError((exception) => {
|
|
41
|
+
const status = getExceptionStatus(exception);
|
|
42
|
+
if (status === void 0 || status >= 500) {
|
|
43
|
+
captureException(exception);
|
|
44
|
+
}
|
|
45
|
+
const requestRecord = getRequestRecord();
|
|
46
|
+
const messages = getExceptionResponseMessages(exception);
|
|
47
|
+
if (requestRecord && messages) {
|
|
48
|
+
requestRecord.validationErrors = messages.map((message) => ({
|
|
49
|
+
source: "",
|
|
50
|
+
field: "",
|
|
51
|
+
message,
|
|
52
|
+
type: ""
|
|
53
|
+
}));
|
|
54
|
+
}
|
|
55
|
+
return throwError(() => exception);
|
|
56
|
+
})
|
|
57
|
+
);
|
|
58
|
+
}
|
|
59
|
+
};
|
|
60
|
+
}
|
|
61
|
+
function getExceptionStatus(exception) {
|
|
62
|
+
if (typeof exception !== "object" && typeof exception !== "function" || exception === null) {
|
|
63
|
+
return void 0;
|
|
58
64
|
}
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
65
|
+
try {
|
|
66
|
+
const candidate = exception;
|
|
67
|
+
if (typeof candidate.getStatus === "function") {
|
|
68
|
+
const status = candidate.getStatus();
|
|
69
|
+
return typeof status === "number" ? status : void 0;
|
|
70
|
+
}
|
|
71
|
+
if (typeof candidate.status === "number") {
|
|
72
|
+
return candidate.status;
|
|
73
|
+
}
|
|
74
|
+
return typeof candidate.statusCode === "number" ? candidate.statusCode : void 0;
|
|
75
|
+
} catch {
|
|
76
|
+
return void 0;
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
function getExceptionResponseMessages(exception) {
|
|
80
|
+
const getResponse = exception?.getResponse;
|
|
81
|
+
if (typeof getResponse !== "function") {
|
|
82
|
+
return void 0;
|
|
83
|
+
}
|
|
84
|
+
const response = getResponse.call(exception);
|
|
85
|
+
const messages = response?.message;
|
|
86
|
+
return Array.isArray(messages) && messages.every((message) => typeof message === "string") ? messages : void 0;
|
|
87
|
+
}
|
|
67
88
|
export {
|
|
68
|
-
setConsumer,
|
|
69
89
|
useApitally
|
|
70
90
|
};
|
|
71
91
|
//# sourceMappingURL=index.js.map
|
package/dist/nestjs/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/nestjs/index.ts"],"sourcesContent":["import {\n CallHandler,\n ExecutionContext,\n INestApplication,\n
|
|
1
|
+
{"version":3,"sources":["../../src/nestjs/index.ts"],"sourcesContent":["import { createRequire } from \"node:module\";\nimport type {\n CallHandler,\n ExecutionContext,\n INestApplication,\n NestInterceptor,\n} from \"@nestjs/common\";\nimport type { Express } from \"express\";\nimport type { FastifyInstance } from \"fastify\";\nimport type * as rxjs from \"rxjs\";\nimport type { ApitallyOptions } from \"../config.js\";\nimport { getRequestRecord } from \"../context.js\";\nimport { captureException } from \"../exceptions.js\";\nimport { installExpressIntegration } from \"../express/install.js\";\nimport { installFastifyIntegration } from \"../fastify/install.js\";\nimport { resolvePackageEntryPath, resolvePackageVersion } from \"../packageVersion.js\";\n\nexport type { ApitallyOptions };\n\nconst INTERCEPTOR_MARKER = Symbol.for(\"apitally.nestInterceptor\");\n\nexport function useApitally(app: INestApplication, options?: ApitallyOptions): void {\n const httpAdapter = app.getHttpAdapter();\n const adapterType = httpAdapter.getType();\n const adapterInstance = httpAdapter.getInstance() as object;\n const frameworkInfo = {\n framework: \"nestjs\",\n frameworkVersion: resolvePackageVersion(\"@nestjs/core\"),\n };\n\n if (adapterType === \"express\") {\n installExpressIntegration(adapterInstance as Express, options, frameworkInfo);\n } else if (adapterType === \"fastify\") {\n installFastifyIntegration(adapterInstance as FastifyInstance, options, frameworkInfo);\n } else {\n throw new TypeError(\n `Unsupported NestJS HTTP adapter ${JSON.stringify(adapterType)}. Supported adapters: express and fastify.`,\n );\n }\n\n const markedInstance = adapterInstance as Record<symbol, boolean | undefined>;\n if (markedInstance[INTERCEPTOR_MARKER] !== true) {\n app.useGlobalInterceptors(createExceptionInterceptor());\n markedInstance[INTERCEPTOR_MARKER] = true;\n }\n}\n\nfunction createExceptionInterceptor(): NestInterceptor {\n const commonEntryPath = resolvePackageEntryPath(\"@nestjs/common\");\n const { catchError, throwError } = createRequire(commonEntryPath)(\"rxjs\") as Pick<\n typeof rxjs,\n \"catchError\" | \"throwError\"\n >;\n\n return {\n intercept(executionContext: ExecutionContext, next: CallHandler) {\n if (executionContext.getType() !== \"http\") {\n return next.handle();\n }\n return next.handle().pipe(\n catchError((exception: unknown) => {\n const status = getExceptionStatus(exception);\n if (status === undefined || status >= 500) {\n captureException(exception);\n }\n const requestRecord = getRequestRecord();\n const messages = getExceptionResponseMessages(exception);\n if (requestRecord && messages) {\n requestRecord.validationErrors = messages.map((message) => ({\n source: \"\",\n field: \"\",\n message,\n type: \"\",\n }));\n }\n return throwError(() => exception);\n }),\n );\n },\n };\n}\n\nfunction getExceptionStatus(exception: unknown): number | undefined {\n if ((typeof exception !== \"object\" && typeof exception !== \"function\") || exception === null) {\n return undefined;\n }\n try {\n const candidate = exception as {\n getStatus?: () => unknown;\n status?: unknown;\n statusCode?: unknown;\n };\n if (typeof candidate.getStatus === \"function\") {\n const status = candidate.getStatus();\n return typeof status === \"number\" ? status : undefined;\n }\n if (typeof candidate.status === \"number\") {\n return candidate.status;\n }\n return typeof candidate.statusCode === \"number\" ? candidate.statusCode : undefined;\n } catch {\n return undefined;\n }\n}\n\n// The ValidationPipe throws a BadRequestException whose response carries the\n// class-validator messages as an array of strings.\nfunction getExceptionResponseMessages(exception: unknown): string[] | undefined {\n const getResponse = (exception as { getResponse?: unknown } | null)?.getResponse;\n if (typeof getResponse !== \"function\") {\n return undefined;\n }\n const response = getResponse.call(exception) as { message?: unknown } | null;\n const messages = response?.message;\n return Array.isArray(messages) && messages.every((message) => typeof message === \"string\")\n ? messages\n : undefined;\n}\n"],"mappings":"AAAA,SAAS,qBAAqB;AAW9B,SAAS,wBAAwB;AACjC,SAAS,wBAAwB;AACjC,SAAS,iCAAiC;AAC1C,SAAS,iCAAiC;AAC1C,SAAS,yBAAyB,6BAA6B;AAI/D,MAAM,qBAAqB,uBAAO,IAAI,0BAA0B;AAEzD,SAAS,YAAY,KAAuB,SAAiC;AAClF,QAAM,cAAc,IAAI,eAAe;AACvC,QAAM,cAAc,YAAY,QAAQ;AACxC,QAAM,kBAAkB,YAAY,YAAY;AAChD,QAAM,gBAAgB;AAAA,IACpB,WAAW;AAAA,IACX,kBAAkB,sBAAsB,cAAc;AAAA,EACxD;AAEA,MAAI,gBAAgB,WAAW;AAC7B,8BAA0B,iBAA4B,SAAS,aAAa;AAAA,EAC9E,WAAW,gBAAgB,WAAW;AACpC,8BAA0B,iBAAoC,SAAS,aAAa;AAAA,EACtF,OAAO;AACL,UAAM,IAAI;AAAA,MACR,mCAAmC,KAAK,UAAU,WAAW,CAAC;AAAA,IAChE;AAAA,EACF;AAEA,QAAM,iBAAiB;AACvB,MAAI,eAAe,kBAAkB,MAAM,MAAM;AAC/C,QAAI,sBAAsB,2BAA2B,CAAC;AACtD,mBAAe,kBAAkB,IAAI;AAAA,EACvC;AACF;AAEA,SAAS,6BAA8C;AACrD,QAAM,kBAAkB,wBAAwB,gBAAgB;AAChE,QAAM,EAAE,YAAY,WAAW,IAAI,cAAc,eAAe,EAAE,MAAM;AAKxE,SAAO;AAAA,IACL,UAAU,kBAAoC,MAAmB;AAC/D,UAAI,iBAAiB,QAAQ,MAAM,QAAQ;AACzC,eAAO,KAAK,OAAO;AAAA,MACrB;AACA,aAAO,KAAK,OAAO,EAAE;AAAA,QACnB,WAAW,CAAC,cAAuB;AACjC,gBAAM,SAAS,mBAAmB,SAAS;AAC3C,cAAI,WAAW,UAAa,UAAU,KAAK;AACzC,6BAAiB,SAAS;AAAA,UAC5B;AACA,gBAAM,gBAAgB,iBAAiB;AACvC,gBAAM,WAAW,6BAA6B,SAAS;AACvD,cAAI,iBAAiB,UAAU;AAC7B,0BAAc,mBAAmB,SAAS,IAAI,CAAC,aAAa;AAAA,cAC1D,QAAQ;AAAA,cACR,OAAO;AAAA,cACP;AAAA,cACA,MAAM;AAAA,YACR,EAAE;AAAA,UACJ;AACA,iBAAO,WAAW,MAAM,SAAS;AAAA,QACnC,CAAC;AAAA,MACH;AAAA,IACF;AAAA,EACF;AACF;AAEA,SAAS,mBAAmB,WAAwC;AAClE,MAAK,OAAO,cAAc,YAAY,OAAO,cAAc,cAAe,cAAc,MAAM;AAC5F,WAAO;AAAA,EACT;AACA,MAAI;AACF,UAAM,YAAY;AAKlB,QAAI,OAAO,UAAU,cAAc,YAAY;AAC7C,YAAM,SAAS,UAAU,UAAU;AACnC,aAAO,OAAO,WAAW,WAAW,SAAS;AAAA,IAC/C;AACA,QAAI,OAAO,UAAU,WAAW,UAAU;AACxC,aAAO,UAAU;AAAA,IACnB;AACA,WAAO,OAAO,UAAU,eAAe,WAAW,UAAU,aAAa;AAAA,EAC3E,QAAQ;AACN,WAAO;AAAA,EACT;AACF;AAIA,SAAS,6BAA6B,WAA0C;AAC9E,QAAM,cAAe,WAAgD;AACrE,MAAI,OAAO,gBAAgB,YAAY;AACrC,WAAO;AAAA,EACT;AACA,QAAM,WAAW,YAAY,KAAK,SAAS;AAC3C,QAAM,WAAW,UAAU;AAC3B,SAAO,MAAM,QAAQ,QAAQ,KAAK,SAAS,MAAM,CAAC,YAAY,OAAO,YAAY,QAAQ,IACrF,WACA;AACN;","names":[]}
|
|
@@ -0,0 +1,67 @@
|
|
|
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 packageVersion_exports = {};
|
|
20
|
+
__export(packageVersion_exports, {
|
|
21
|
+
getDistroVersion: () => getDistroVersion,
|
|
22
|
+
resolvePackageEntryPath: () => resolvePackageEntryPath,
|
|
23
|
+
resolvePackageVersion: () => resolvePackageVersion
|
|
24
|
+
});
|
|
25
|
+
module.exports = __toCommonJS(packageVersion_exports);
|
|
26
|
+
var getImportMetaUrl = () => typeof document === "undefined" ? new URL(`file:${__filename}`).href : document.currentScript && document.currentScript.tagName.toUpperCase() === "SCRIPT" ? document.currentScript.src : new URL("main.js", document.baseURI).href;
|
|
27
|
+
var importMetaUrl = /* @__PURE__ */ getImportMetaUrl();
|
|
28
|
+
var import_node_module = require("node:module");
|
|
29
|
+
var import_node_path = require("node:path");
|
|
30
|
+
let distroVersion;
|
|
31
|
+
function getDistroVersion() {
|
|
32
|
+
distroVersion ??= (0, import_node_module.createRequire)(importMetaUrl)("../package.json").version;
|
|
33
|
+
return distroVersion;
|
|
34
|
+
}
|
|
35
|
+
function resolvePackageEntryPath(packageName) {
|
|
36
|
+
return (0, import_node_module.createRequire)(importMetaUrl).resolve(packageName);
|
|
37
|
+
}
|
|
38
|
+
function resolvePackageVersion(packageName) {
|
|
39
|
+
try {
|
|
40
|
+
const entryPath = resolvePackageEntryPath(packageName);
|
|
41
|
+
const requireFromEntry = (0, import_node_module.createRequire)(entryPath);
|
|
42
|
+
let directory = (0, import_node_path.dirname)(entryPath);
|
|
43
|
+
while (true) {
|
|
44
|
+
try {
|
|
45
|
+
const packageJson = requireFromEntry((0, import_node_path.join)(directory, "package.json"));
|
|
46
|
+
if (packageJson.name === packageName && typeof packageJson.version === "string") {
|
|
47
|
+
return packageJson.version;
|
|
48
|
+
}
|
|
49
|
+
} catch {
|
|
50
|
+
}
|
|
51
|
+
const parent = (0, import_node_path.dirname)(directory);
|
|
52
|
+
if (parent === directory) {
|
|
53
|
+
return void 0;
|
|
54
|
+
}
|
|
55
|
+
directory = parent;
|
|
56
|
+
}
|
|
57
|
+
} catch {
|
|
58
|
+
return void 0;
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
62
|
+
0 && (module.exports = {
|
|
63
|
+
getDistroVersion,
|
|
64
|
+
resolvePackageEntryPath,
|
|
65
|
+
resolvePackageVersion
|
|
66
|
+
});
|
|
67
|
+
//# sourceMappingURL=packageVersion.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/packageVersion.ts","../node_modules/tsup/assets/cjs_shims.js"],"sourcesContent":["import { createRequire } from \"node:module\";\nimport { dirname, join } from \"node:path\";\n\nlet distroVersion: string | undefined;\n\nexport function getDistroVersion(): string {\n distroVersion ??= (createRequire(import.meta.url)(\"../package.json\") as { version: string })\n .version;\n return distroVersion;\n}\n\n// createRequire resolves peer libraries from the user's installation.\nexport function resolvePackageEntryPath(packageName: string): string {\n return createRequire(import.meta.url).resolve(packageName);\n}\n\nexport function resolvePackageVersion(packageName: string): string | undefined {\n try {\n const entryPath = resolvePackageEntryPath(packageName);\n const requireFromEntry = createRequire(entryPath);\n let directory = dirname(entryPath);\n while (true) {\n try {\n const packageJson = requireFromEntry(join(directory, \"package.json\")) as {\n name?: unknown;\n version?: unknown;\n };\n if (packageJson.name === packageName && typeof packageJson.version === \"string\") {\n return packageJson.version;\n }\n } catch {\n // The entry may be nested below directories without package metadata.\n }\n const parent = dirname(directory);\n if (parent === directory) {\n return undefined;\n }\n directory = parent;\n }\n } catch {\n return undefined;\n }\n}\n","// Shim globals in cjs bundle\n// There's a weird bug that esbuild will always inject importMetaUrl\n// if we export it as `const importMetaUrl = ... __filename ...`\n// But using a function will not cause this issue\n\nconst getImportMetaUrl = () => \n typeof document === \"undefined\" \n ? new URL(`file:${__filename}`).href \n : (document.currentScript && document.currentScript.tagName.toUpperCase() === 'SCRIPT') \n ? document.currentScript.src \n : new URL(\"main.js\", document.baseURI).href;\n\nexport const importMetaUrl = /* @__PURE__ */ getImportMetaUrl()\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;ACKA,IAAM,mBAAmB,MACvB,OAAO,aAAa,cAChB,IAAI,IAAI,QAAQ,UAAU,EAAE,EAAE,OAC7B,SAAS,iBAAiB,SAAS,cAAc,QAAQ,YAAY,MAAM,WAC1E,SAAS,cAAc,MACvB,IAAI,IAAI,WAAW,SAAS,OAAO,EAAE;AAEtC,IAAM,gBAAgC,iCAAiB;ADZ9D,yBAA8B;AAC9B,uBAA8B;AAE9B,IAAI;AAEG,SAAS,mBAA2B;AACzC,wBAAmB,kCAAc,aAAe,EAAE,iBAAiB,EAChE;AACH,SAAO;AACT;AAGO,SAAS,wBAAwB,aAA6B;AACnE,aAAO,kCAAc,aAAe,EAAE,QAAQ,WAAW;AAC3D;AAEO,SAAS,sBAAsB,aAAyC;AAC7E,MAAI;AACF,UAAM,YAAY,wBAAwB,WAAW;AACrD,UAAM,uBAAmB,kCAAc,SAAS;AAChD,QAAI,gBAAY,0BAAQ,SAAS;AACjC,WAAO,MAAM;AACX,UAAI;AACF,cAAM,cAAc,qBAAiB,uBAAK,WAAW,cAAc,CAAC;AAIpE,YAAI,YAAY,SAAS,eAAe,OAAO,YAAY,YAAY,UAAU;AAC/E,iBAAO,YAAY;AAAA,QACrB;AAAA,MACF,QAAQ;AAAA,MAER;AACA,YAAM,aAAS,0BAAQ,SAAS;AAChC,UAAI,WAAW,WAAW;AACxB,eAAO;AAAA,MACT;AACA,kBAAY;AAAA,IACd;AAAA,EACF,QAAQ;AACN,WAAO;AAAA,EACT;AACF;","names":[]}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
declare function getDistroVersion(): string;
|
|
2
|
+
declare function resolvePackageEntryPath(packageName: string): string;
|
|
3
|
+
declare function resolvePackageVersion(packageName: string): string | undefined;
|
|
4
|
+
|
|
5
|
+
export { getDistroVersion, resolvePackageEntryPath, resolvePackageVersion };
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
declare function getDistroVersion(): string;
|
|
2
|
+
declare function resolvePackageEntryPath(packageName: string): string;
|
|
3
|
+
declare function resolvePackageVersion(packageName: string): string | undefined;
|
|
4
|
+
|
|
5
|
+
export { getDistroVersion, resolvePackageEntryPath, resolvePackageVersion };
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { createRequire } from "node:module";
|
|
2
|
+
import { dirname, join } from "node:path";
|
|
3
|
+
let distroVersion;
|
|
4
|
+
function getDistroVersion() {
|
|
5
|
+
distroVersion ??= createRequire(import.meta.url)("../package.json").version;
|
|
6
|
+
return distroVersion;
|
|
7
|
+
}
|
|
8
|
+
function resolvePackageEntryPath(packageName) {
|
|
9
|
+
return createRequire(import.meta.url).resolve(packageName);
|
|
10
|
+
}
|
|
11
|
+
function resolvePackageVersion(packageName) {
|
|
12
|
+
try {
|
|
13
|
+
const entryPath = resolvePackageEntryPath(packageName);
|
|
14
|
+
const requireFromEntry = createRequire(entryPath);
|
|
15
|
+
let directory = dirname(entryPath);
|
|
16
|
+
while (true) {
|
|
17
|
+
try {
|
|
18
|
+
const packageJson = requireFromEntry(join(directory, "package.json"));
|
|
19
|
+
if (packageJson.name === packageName && typeof packageJson.version === "string") {
|
|
20
|
+
return packageJson.version;
|
|
21
|
+
}
|
|
22
|
+
} catch {
|
|
23
|
+
}
|
|
24
|
+
const parent = dirname(directory);
|
|
25
|
+
if (parent === directory) {
|
|
26
|
+
return void 0;
|
|
27
|
+
}
|
|
28
|
+
directory = parent;
|
|
29
|
+
}
|
|
30
|
+
} catch {
|
|
31
|
+
return void 0;
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
export {
|
|
35
|
+
getDistroVersion,
|
|
36
|
+
resolvePackageEntryPath,
|
|
37
|
+
resolvePackageVersion
|
|
38
|
+
};
|
|
39
|
+
//# sourceMappingURL=packageVersion.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/packageVersion.ts"],"sourcesContent":["import { createRequire } from \"node:module\";\nimport { dirname, join } from \"node:path\";\n\nlet distroVersion: string | undefined;\n\nexport function getDistroVersion(): string {\n distroVersion ??= (createRequire(import.meta.url)(\"../package.json\") as { version: string })\n .version;\n return distroVersion;\n}\n\n// createRequire resolves peer libraries from the user's installation.\nexport function resolvePackageEntryPath(packageName: string): string {\n return createRequire(import.meta.url).resolve(packageName);\n}\n\nexport function resolvePackageVersion(packageName: string): string | undefined {\n try {\n const entryPath = resolvePackageEntryPath(packageName);\n const requireFromEntry = createRequire(entryPath);\n let directory = dirname(entryPath);\n while (true) {\n try {\n const packageJson = requireFromEntry(join(directory, \"package.json\")) as {\n name?: unknown;\n version?: unknown;\n };\n if (packageJson.name === packageName && typeof packageJson.version === \"string\") {\n return packageJson.version;\n }\n } catch {\n // The entry may be nested below directories without package metadata.\n }\n const parent = dirname(directory);\n if (parent === directory) {\n return undefined;\n }\n directory = parent;\n }\n } catch {\n return undefined;\n }\n}\n"],"mappings":"AAAA,SAAS,qBAAqB;AAC9B,SAAS,SAAS,YAAY;AAE9B,IAAI;AAEG,SAAS,mBAA2B;AACzC,oBAAmB,cAAc,YAAY,GAAG,EAAE,iBAAiB,EAChE;AACH,SAAO;AACT;AAGO,SAAS,wBAAwB,aAA6B;AACnE,SAAO,cAAc,YAAY,GAAG,EAAE,QAAQ,WAAW;AAC3D;AAEO,SAAS,sBAAsB,aAAyC;AAC7E,MAAI;AACF,UAAM,YAAY,wBAAwB,WAAW;AACrD,UAAM,mBAAmB,cAAc,SAAS;AAChD,QAAI,YAAY,QAAQ,SAAS;AACjC,WAAO,MAAM;AACX,UAAI;AACF,cAAM,cAAc,iBAAiB,KAAK,WAAW,cAAc,CAAC;AAIpE,YAAI,YAAY,SAAS,eAAe,OAAO,YAAY,YAAY,UAAU;AAC/E,iBAAO,YAAY;AAAA,QACrB;AAAA,MACF,QAAQ;AAAA,MAER;AACA,YAAM,SAAS,QAAQ,SAAS;AAChC,UAAI,WAAW,WAAW;AACxB,eAAO;AAAA,MACT;AACA,kBAAY;AAAA,IACd;AAAA,EACF,QAAQ;AACN,WAAO;AAAA,EACT;AACF;","names":[]}
|
|
@@ -0,0 +1,149 @@
|
|
|
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 providers_exports = {};
|
|
20
|
+
__export(providers_exports, {
|
|
21
|
+
createLoggerProvider: () => createLoggerProvider,
|
|
22
|
+
createMeterProvider: () => createMeterProvider,
|
|
23
|
+
resolveEnvAndCreateResource: () => resolveEnvAndCreateResource,
|
|
24
|
+
setupTracerProvider: () => setupTracerProvider
|
|
25
|
+
});
|
|
26
|
+
module.exports = __toCommonJS(providers_exports);
|
|
27
|
+
var import_node_crypto = require("node:crypto");
|
|
28
|
+
var import_api = require("@opentelemetry/api");
|
|
29
|
+
var import_context_async_hooks = require("@opentelemetry/context-async-hooks");
|
|
30
|
+
var import_core = require("@opentelemetry/core");
|
|
31
|
+
var import_resources = require("@opentelemetry/resources");
|
|
32
|
+
var import_sdk_logs = require("@opentelemetry/sdk-logs");
|
|
33
|
+
var import_sdk_metrics = require("@opentelemetry/sdk-metrics");
|
|
34
|
+
var import_sdk_trace_base = require("@opentelemetry/sdk-trace-base");
|
|
35
|
+
var import_sdk_trace_node = require("@opentelemetry/sdk-trace-node");
|
|
36
|
+
var import_config = require('./config.cjs');
|
|
37
|
+
var import_logger = require('./logger.cjs');
|
|
38
|
+
var import_packageVersion = require('./packageVersion.cjs');
|
|
39
|
+
const MAX_ATTRIBUTE_VALUE_LENGTH = 65536;
|
|
40
|
+
const DEPLOYMENT_ENVIRONMENT_NAME = "deployment.environment.name";
|
|
41
|
+
class RequestRootedSampler {
|
|
42
|
+
shouldSample(parentContext, _traceId, _spanName, spanKind) {
|
|
43
|
+
const parent = import_api.trace.getSpanContext(parentContext);
|
|
44
|
+
const shouldRecord = spanKind === import_api.SpanKind.SERVER || parent !== void 0 && !parent.isRemote && (parent.traceFlags & import_api.TraceFlags.SAMPLED) !== 0;
|
|
45
|
+
return {
|
|
46
|
+
decision: shouldRecord ? import_sdk_trace_base.SamplingDecision.RECORD_AND_SAMPLED : import_sdk_trace_base.SamplingDecision.NOT_RECORD
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
toString() {
|
|
50
|
+
return "RequestRootedSampler";
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
function resolveEnvAndCreateResource(hasUserProvider, triggeringResource) {
|
|
54
|
+
const environmentResource = (0, import_resources.detectResources)({ detectors: [import_resources.envDetector] });
|
|
55
|
+
const env = resolveEnv(hasUserProvider, triggeringResource, environmentResource);
|
|
56
|
+
const resource = (0, import_resources.defaultResource)().merge(environmentResource).merge(
|
|
57
|
+
(0, import_resources.resourceFromAttributes)({
|
|
58
|
+
"service.instance.id": (0, import_node_crypto.randomUUID)(),
|
|
59
|
+
[DEPLOYMENT_ENVIRONMENT_NAME]: env,
|
|
60
|
+
"telemetry.distro.name": "apitally-js",
|
|
61
|
+
"telemetry.distro.version": (0, import_packageVersion.getDistroVersion)()
|
|
62
|
+
})
|
|
63
|
+
);
|
|
64
|
+
return { env, resource };
|
|
65
|
+
}
|
|
66
|
+
function resolveEnv(hasUserProvider, triggeringResource, environmentResource) {
|
|
67
|
+
const configuredEnv = (0, import_config.getConfig)().env;
|
|
68
|
+
const triggeringResourceEnv = readDeploymentEnvironmentNameFromResource(triggeringResource);
|
|
69
|
+
if (triggeringResourceEnv !== void 0) {
|
|
70
|
+
if (configuredEnv !== import_config.DEFAULT_ENV && configuredEnv !== triggeringResourceEnv) {
|
|
71
|
+
(0, import_logger.logWarning)(
|
|
72
|
+
`The configured Apitally env "${configuredEnv}" conflicts with deployment.environment.name=${triggeringResourceEnv} on the OpenTelemetry SERVER span; using "${triggeringResourceEnv}". To resolve this, remove the env option from useApitally() or configure the provider resource with "${configuredEnv}".`
|
|
73
|
+
);
|
|
74
|
+
}
|
|
75
|
+
return triggeringResourceEnv;
|
|
76
|
+
}
|
|
77
|
+
const resourceAttributesEnv = readDeploymentEnvironmentNameFromResource(environmentResource);
|
|
78
|
+
if (!hasUserProvider) {
|
|
79
|
+
return configuredEnv !== import_config.DEFAULT_ENV ? configuredEnv : resourceAttributesEnv ?? import_config.DEFAULT_ENV;
|
|
80
|
+
}
|
|
81
|
+
if (resourceAttributesEnv === void 0) {
|
|
82
|
+
return configuredEnv;
|
|
83
|
+
}
|
|
84
|
+
if (configuredEnv !== import_config.DEFAULT_ENV && configuredEnv !== resourceAttributesEnv) {
|
|
85
|
+
(0, import_logger.logWarning)(
|
|
86
|
+
`The configured Apitally env "${configuredEnv}" conflicts with the OTEL_RESOURCE_ATTRIBUTES entry deployment.environment.name=${resourceAttributesEnv} of the existing OpenTelemetry setup; using "${resourceAttributesEnv}". To resolve this, remove the env option from useApitally() or change the OTEL_RESOURCE_ATTRIBUTES entry to "${configuredEnv}".`
|
|
87
|
+
);
|
|
88
|
+
}
|
|
89
|
+
return resourceAttributesEnv;
|
|
90
|
+
}
|
|
91
|
+
function setupTracerProvider(resource, spanProcessors) {
|
|
92
|
+
const provider = new import_sdk_trace_node.NodeTracerProvider({
|
|
93
|
+
sampler: new RequestRootedSampler(),
|
|
94
|
+
resource,
|
|
95
|
+
spanProcessors,
|
|
96
|
+
generalLimits: { attributeValueLengthLimit: MAX_ATTRIBUTE_VALUE_LENGTH },
|
|
97
|
+
spanLimits: { attributeValueLengthLimit: MAX_ATTRIBUTE_VALUE_LENGTH }
|
|
98
|
+
});
|
|
99
|
+
if (!import_api.trace.setGlobalTracerProvider(provider)) {
|
|
100
|
+
return void 0;
|
|
101
|
+
}
|
|
102
|
+
const contextManager = new import_context_async_hooks.AsyncLocalStorageContextManager();
|
|
103
|
+
contextManager.enable();
|
|
104
|
+
if (!import_api.context.setGlobalContextManager(contextManager)) {
|
|
105
|
+
try {
|
|
106
|
+
contextManager.disable();
|
|
107
|
+
} catch (error) {
|
|
108
|
+
(0, import_logger.logDebug)(`Error disabling an unused OpenTelemetry context manager: ${String(error)}`);
|
|
109
|
+
}
|
|
110
|
+
warnIfContextDoesNotPropagate();
|
|
111
|
+
}
|
|
112
|
+
import_api.propagation.setGlobalPropagator(new import_core.W3CTraceContextPropagator());
|
|
113
|
+
return provider;
|
|
114
|
+
}
|
|
115
|
+
function createMeterProvider(resource, readers) {
|
|
116
|
+
return new import_sdk_metrics.MeterProvider({ resource, readers });
|
|
117
|
+
}
|
|
118
|
+
function createLoggerProvider(resource, processors) {
|
|
119
|
+
return new import_sdk_logs.LoggerProvider({ resource, processors });
|
|
120
|
+
}
|
|
121
|
+
function readDeploymentEnvironmentNameFromResource(resource) {
|
|
122
|
+
const value = resource?.attributes[DEPLOYMENT_ENVIRONMENT_NAME];
|
|
123
|
+
return typeof value === "string" && value.length > 0 ? value : void 0;
|
|
124
|
+
}
|
|
125
|
+
function warnIfContextDoesNotPropagate() {
|
|
126
|
+
let isPropagated = false;
|
|
127
|
+
try {
|
|
128
|
+
const probeKey = (0, import_api.createContextKey)("apitally-context-probe");
|
|
129
|
+
isPropagated = import_api.context.with(
|
|
130
|
+
import_api.context.active().setValue(probeKey, true),
|
|
131
|
+
() => import_api.context.active().getValue(probeKey) === true
|
|
132
|
+
);
|
|
133
|
+
} catch (error) {
|
|
134
|
+
(0, import_logger.logDebug)(`Error probing OpenTelemetry context propagation: ${String(error)}`);
|
|
135
|
+
}
|
|
136
|
+
if (!isPropagated) {
|
|
137
|
+
(0, import_logger.logWarning)(
|
|
138
|
+
"OpenTelemetry context propagation is not working, so Apitally cannot associate telemetry with requests. This can happen when conflicting versions of @opentelemetry/api are installed."
|
|
139
|
+
);
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
143
|
+
0 && (module.exports = {
|
|
144
|
+
createLoggerProvider,
|
|
145
|
+
createMeterProvider,
|
|
146
|
+
resolveEnvAndCreateResource,
|
|
147
|
+
setupTracerProvider
|
|
148
|
+
});
|
|
149
|
+
//# sourceMappingURL=providers.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/providers.ts"],"sourcesContent":["import { randomUUID } from \"node:crypto\";\nimport {\n type Context,\n context,\n createContextKey,\n propagation,\n SpanKind,\n TraceFlags,\n trace,\n} from \"@opentelemetry/api\";\nimport { AsyncLocalStorageContextManager } from \"@opentelemetry/context-async-hooks\";\nimport { W3CTraceContextPropagator } from \"@opentelemetry/core\";\nimport {\n defaultResource,\n detectResources,\n envDetector,\n type Resource,\n resourceFromAttributes,\n} from \"@opentelemetry/resources\";\nimport { LoggerProvider, type LogRecordProcessor } from \"@opentelemetry/sdk-logs\";\nimport { type IMetricReader, MeterProvider } from \"@opentelemetry/sdk-metrics\";\nimport {\n type Sampler,\n SamplingDecision,\n type SamplingResult,\n type SpanProcessor,\n} from \"@opentelemetry/sdk-trace-base\";\nimport { NodeTracerProvider } from \"@opentelemetry/sdk-trace-node\";\nimport { DEFAULT_ENV, getConfig } from \"./config.js\";\nimport { logDebug, logWarning } from \"./logger.js\";\nimport { getDistroVersion } from \"./packageVersion.js\";\n\nconst MAX_ATTRIBUTE_VALUE_LENGTH = 65_536;\nconst DEPLOYMENT_ENVIRONMENT_NAME = \"deployment.environment.name\";\n\nclass RequestRootedSampler implements Sampler {\n shouldSample(\n parentContext: Context,\n _traceId: string,\n _spanName: string,\n spanKind: SpanKind,\n ): SamplingResult {\n const parent = trace.getSpanContext(parentContext);\n const shouldRecord =\n spanKind === SpanKind.SERVER ||\n (parent !== undefined && !parent.isRemote && (parent.traceFlags & TraceFlags.SAMPLED) !== 0);\n return {\n decision: shouldRecord ? SamplingDecision.RECORD_AND_SAMPLED : SamplingDecision.NOT_RECORD,\n };\n }\n\n toString(): string {\n return \"RequestRootedSampler\";\n }\n}\n\n// Apitally-Env and deployment.environment.name use the same detected resource\n// so they cannot disagree.\nexport function resolveEnvAndCreateResource(\n hasUserProvider: boolean,\n triggeringResource?: Pick<Resource, \"attributes\">,\n): { env: string; resource: Resource } {\n const environmentResource = detectResources({ detectors: [envDetector] });\n const env = resolveEnv(hasUserProvider, triggeringResource, environmentResource);\n // defaultResource() ignores environment variables. Apitally attributes merge\n // last to keep the resource aligned with Apitally-Env.\n const resource = defaultResource()\n .merge(environmentResource)\n .merge(\n resourceFromAttributes({\n \"service.instance.id\": randomUUID(),\n [DEPLOYMENT_ENVIRONMENT_NAME]: env,\n \"telemetry.distro.name\": \"apitally-js\",\n \"telemetry.distro.version\": getDistroVersion(),\n }),\n );\n return { env, resource };\n}\n\nfunction resolveEnv(\n hasUserProvider: boolean,\n triggeringResource: Pick<Resource, \"attributes\"> | undefined,\n environmentResource: Pick<Resource, \"attributes\">,\n): string {\n // The env option and APITALLY_ENV are already resolved into config.env; its\n // default also indicates that neither was configured.\n const configuredEnv = getConfig().env;\n const triggeringResourceEnv = readDeploymentEnvironmentNameFromResource(triggeringResource);\n if (triggeringResourceEnv !== undefined) {\n if (configuredEnv !== DEFAULT_ENV && configuredEnv !== triggeringResourceEnv) {\n logWarning(\n `The configured Apitally env \"${configuredEnv}\" conflicts with deployment.environment.name=${triggeringResourceEnv} on the OpenTelemetry SERVER span; using \"${triggeringResourceEnv}\". To resolve this, remove the env option from useApitally() or configure the provider resource with \"${configuredEnv}\".`,\n );\n }\n return triggeringResourceEnv;\n }\n const resourceAttributesEnv = readDeploymentEnvironmentNameFromResource(environmentResource);\n if (!hasUserProvider) {\n return configuredEnv !== DEFAULT_ENV ? configuredEnv : (resourceAttributesEnv ?? DEFAULT_ENV);\n }\n if (resourceAttributesEnv === undefined) {\n return configuredEnv;\n }\n if (configuredEnv !== DEFAULT_ENV && configuredEnv !== resourceAttributesEnv) {\n logWarning(\n `The configured Apitally env \"${configuredEnv}\" conflicts with the OTEL_RESOURCE_ATTRIBUTES entry deployment.environment.name=${resourceAttributesEnv} of the existing OpenTelemetry setup; using \"${resourceAttributesEnv}\". To resolve this, remove the env option from useApitally() or change the OTEL_RESOURCE_ATTRIBUTES entry to \"${configuredEnv}\".`,\n );\n }\n return resourceAttributesEnv;\n}\n\nexport function setupTracerProvider(\n resource: Resource,\n spanProcessors: SpanProcessor[],\n): NodeTracerProvider | undefined {\n // Explicit sampler and length limits prevent OTel environment variables from\n // dropping upstream-unsampled SERVER spans or truncating long attributes.\n const provider = new NodeTracerProvider({\n sampler: new RequestRootedSampler(),\n resource,\n spanProcessors,\n generalLimits: { attributeValueLengthLimit: MAX_ATTRIBUTE_VALUE_LENGTH },\n spanLimits: { attributeValueLengthLimit: MAX_ATTRIBUTE_VALUE_LENGTH },\n });\n // OTel global setters reject duplicate or version-mismatched registrations,\n // preserving existing registrations.\n if (!trace.setGlobalTracerProvider(provider)) {\n return undefined;\n }\n const contextManager = new AsyncLocalStorageContextManager();\n contextManager.enable();\n if (!context.setGlobalContextManager(contextManager)) {\n try {\n contextManager.disable();\n } catch (error) {\n logDebug(`Error disabling an unused OpenTelemetry context manager: ${String(error)}`);\n }\n warnIfContextDoesNotPropagate();\n }\n propagation.setGlobalPropagator(new W3CTraceContextPropagator());\n return provider;\n}\n\n// Meter and logger providers remain private because global registration could\n// replace or race a user's metrics or logs pipeline.\nexport function createMeterProvider(resource: Resource, readers: IMetricReader[]): MeterProvider {\n return new MeterProvider({ resource, readers });\n}\n\nexport function createLoggerProvider(\n resource: Resource,\n processors: LogRecordProcessor[],\n): LoggerProvider {\n return new LoggerProvider({ resource, processors });\n}\n\nfunction readDeploymentEnvironmentNameFromResource(\n resource: Pick<Resource, \"attributes\"> | undefined,\n): string | undefined {\n const value = resource?.attributes[DEPLOYMENT_ENVIRONMENT_NAME];\n return typeof value === \"string\" && value.length > 0 ? value : undefined;\n}\n\n// OTel exposes no context-manager getter, so a propagated probe verifies\n// registration. Without propagation, request contexts and suppression fail without an error.\nfunction warnIfContextDoesNotPropagate(): void {\n let isPropagated = false;\n try {\n const probeKey = createContextKey(\"apitally-context-probe\");\n isPropagated = context.with(\n context.active().setValue(probeKey, true),\n () => context.active().getValue(probeKey) === true,\n );\n } catch (error) {\n logDebug(`Error probing OpenTelemetry context propagation: ${String(error)}`);\n }\n if (!isPropagated) {\n logWarning(\n \"OpenTelemetry context propagation is not working, so Apitally cannot associate telemetry with requests. This can happen when conflicting versions of @opentelemetry/api are installed.\",\n );\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,yBAA2B;AAC3B,iBAQO;AACP,iCAAgD;AAChD,kBAA0C;AAC1C,uBAMO;AACP,sBAAwD;AACxD,yBAAkD;AAClD,4BAKO;AACP,4BAAmC;AACnC,oBAAuC;AACvC,oBAAqC;AACrC,4BAAiC;AAEjC,MAAM,6BAA6B;AACnC,MAAM,8BAA8B;AAEpC,MAAM,qBAAwC;AAAA,EAC5C,aACE,eACA,UACA,WACA,UACgB;AAChB,UAAM,SAAS,iBAAM,eAAe,aAAa;AACjD,UAAM,eACJ,aAAa,oBAAS,UACrB,WAAW,UAAa,CAAC,OAAO,aAAa,OAAO,aAAa,sBAAW,aAAa;AAC5F,WAAO;AAAA,MACL,UAAU,eAAe,uCAAiB,qBAAqB,uCAAiB;AAAA,IAClF;AAAA,EACF;AAAA,EAEA,WAAmB;AACjB,WAAO;AAAA,EACT;AACF;AAIO,SAAS,4BACd,iBACA,oBACqC;AACrC,QAAM,0BAAsB,kCAAgB,EAAE,WAAW,CAAC,4BAAW,EAAE,CAAC;AACxE,QAAM,MAAM,WAAW,iBAAiB,oBAAoB,mBAAmB;AAG/E,QAAM,eAAW,kCAAgB,EAC9B,MAAM,mBAAmB,EACzB;AAAA,QACC,yCAAuB;AAAA,MACrB,2BAAuB,+BAAW;AAAA,MAClC,CAAC,2BAA2B,GAAG;AAAA,MAC/B,yBAAyB;AAAA,MACzB,gCAA4B,wCAAiB;AAAA,IAC/C,CAAC;AAAA,EACH;AACF,SAAO,EAAE,KAAK,SAAS;AACzB;AAEA,SAAS,WACP,iBACA,oBACA,qBACQ;AAGR,QAAM,oBAAgB,yBAAU,EAAE;AAClC,QAAM,wBAAwB,0CAA0C,kBAAkB;AAC1F,MAAI,0BAA0B,QAAW;AACvC,QAAI,kBAAkB,6BAAe,kBAAkB,uBAAuB;AAC5E;AAAA,QACE,gCAAgC,aAAa,gDAAgD,qBAAqB,6CAA6C,qBAAqB,yGAAyG,aAAa;AAAA,MAC5S;AAAA,IACF;AACA,WAAO;AAAA,EACT;AACA,QAAM,wBAAwB,0CAA0C,mBAAmB;AAC3F,MAAI,CAAC,iBAAiB;AACpB,WAAO,kBAAkB,4BAAc,gBAAiB,yBAAyB;AAAA,EACnF;AACA,MAAI,0BAA0B,QAAW;AACvC,WAAO;AAAA,EACT;AACA,MAAI,kBAAkB,6BAAe,kBAAkB,uBAAuB;AAC5E;AAAA,MACE,gCAAgC,aAAa,mFAAmF,qBAAqB,gDAAgD,qBAAqB,iHAAiH,aAAa;AAAA,IAC1V;AAAA,EACF;AACA,SAAO;AACT;AAEO,SAAS,oBACd,UACA,gBACgC;AAGhC,QAAM,WAAW,IAAI,yCAAmB;AAAA,IACtC,SAAS,IAAI,qBAAqB;AAAA,IAClC;AAAA,IACA;AAAA,IACA,eAAe,EAAE,2BAA2B,2BAA2B;AAAA,IACvE,YAAY,EAAE,2BAA2B,2BAA2B;AAAA,EACtE,CAAC;AAGD,MAAI,CAAC,iBAAM,wBAAwB,QAAQ,GAAG;AAC5C,WAAO;AAAA,EACT;AACA,QAAM,iBAAiB,IAAI,2DAAgC;AAC3D,iBAAe,OAAO;AACtB,MAAI,CAAC,mBAAQ,wBAAwB,cAAc,GAAG;AACpD,QAAI;AACF,qBAAe,QAAQ;AAAA,IACzB,SAAS,OAAO;AACd,kCAAS,4DAA4D,OAAO,KAAK,CAAC,EAAE;AAAA,IACtF;AACA,kCAA8B;AAAA,EAChC;AACA,yBAAY,oBAAoB,IAAI,sCAA0B,CAAC;AAC/D,SAAO;AACT;AAIO,SAAS,oBAAoB,UAAoB,SAAyC;AAC/F,SAAO,IAAI,iCAAc,EAAE,UAAU,QAAQ,CAAC;AAChD;AAEO,SAAS,qBACd,UACA,YACgB;AAChB,SAAO,IAAI,+BAAe,EAAE,UAAU,WAAW,CAAC;AACpD;AAEA,SAAS,0CACP,UACoB;AACpB,QAAM,QAAQ,UAAU,WAAW,2BAA2B;AAC9D,SAAO,OAAO,UAAU,YAAY,MAAM,SAAS,IAAI,QAAQ;AACjE;AAIA,SAAS,gCAAsC;AAC7C,MAAI,eAAe;AACnB,MAAI;AACF,UAAM,eAAW,6BAAiB,wBAAwB;AAC1D,mBAAe,mBAAQ;AAAA,MACrB,mBAAQ,OAAO,EAAE,SAAS,UAAU,IAAI;AAAA,MACxC,MAAM,mBAAQ,OAAO,EAAE,SAAS,QAAQ,MAAM;AAAA,IAChD;AAAA,EACF,SAAS,OAAO;AACd,gCAAS,oDAAoD,OAAO,KAAK,CAAC,EAAE;AAAA,EAC9E;AACA,MAAI,CAAC,cAAc;AACjB;AAAA,MACE;AAAA,IACF;AAAA,EACF;AACF;","names":[]}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { Resource } from '@opentelemetry/resources';
|
|
2
|
+
import { LogRecordProcessor, LoggerProvider } from '@opentelemetry/sdk-logs';
|
|
3
|
+
import { IMetricReader, MeterProvider } from '@opentelemetry/sdk-metrics';
|
|
4
|
+
import { SpanProcessor } from '@opentelemetry/sdk-trace-base';
|
|
5
|
+
import { NodeTracerProvider } from '@opentelemetry/sdk-trace-node';
|
|
6
|
+
|
|
7
|
+
declare function resolveEnvAndCreateResource(hasUserProvider: boolean, triggeringResource?: Pick<Resource, "attributes">): {
|
|
8
|
+
env: string;
|
|
9
|
+
resource: Resource;
|
|
10
|
+
};
|
|
11
|
+
declare function setupTracerProvider(resource: Resource, spanProcessors: SpanProcessor[]): NodeTracerProvider | undefined;
|
|
12
|
+
declare function createMeterProvider(resource: Resource, readers: IMetricReader[]): MeterProvider;
|
|
13
|
+
declare function createLoggerProvider(resource: Resource, processors: LogRecordProcessor[]): LoggerProvider;
|
|
14
|
+
|
|
15
|
+
export { createLoggerProvider, createMeterProvider, resolveEnvAndCreateResource, setupTracerProvider };
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { Resource } from '@opentelemetry/resources';
|
|
2
|
+
import { LogRecordProcessor, LoggerProvider } from '@opentelemetry/sdk-logs';
|
|
3
|
+
import { IMetricReader, MeterProvider } from '@opentelemetry/sdk-metrics';
|
|
4
|
+
import { SpanProcessor } from '@opentelemetry/sdk-trace-base';
|
|
5
|
+
import { NodeTracerProvider } from '@opentelemetry/sdk-trace-node';
|
|
6
|
+
|
|
7
|
+
declare function resolveEnvAndCreateResource(hasUserProvider: boolean, triggeringResource?: Pick<Resource, "attributes">): {
|
|
8
|
+
env: string;
|
|
9
|
+
resource: Resource;
|
|
10
|
+
};
|
|
11
|
+
declare function setupTracerProvider(resource: Resource, spanProcessors: SpanProcessor[]): NodeTracerProvider | undefined;
|
|
12
|
+
declare function createMeterProvider(resource: Resource, readers: IMetricReader[]): MeterProvider;
|
|
13
|
+
declare function createLoggerProvider(resource: Resource, processors: LogRecordProcessor[]): LoggerProvider;
|
|
14
|
+
|
|
15
|
+
export { createLoggerProvider, createMeterProvider, resolveEnvAndCreateResource, setupTracerProvider };
|