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
|
@@ -1,54 +1,108 @@
|
|
|
1
|
-
var __defProp = Object.defineProperty;
|
|
2
|
-
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
3
1
|
import { fileURLToPath } from "node:url";
|
|
4
|
-
import {
|
|
2
|
+
import { DEFAULT_ENV, isValidWriteToken } from "../config.js";
|
|
5
3
|
const STUBS_ROOT = fileURLToPath(new URL("./stubs/", import.meta.url));
|
|
4
|
+
const ENV_FORMAT = /^[a-z0-9-]{1,32}$/;
|
|
6
5
|
async function configure(command) {
|
|
7
|
-
const
|
|
8
|
-
result(value)
|
|
9
|
-
|
|
10
|
-
},
|
|
11
|
-
validate(value) {
|
|
12
|
-
return isValidClientId(value);
|
|
13
|
-
}
|
|
6
|
+
const writeToken = await command.prompt.ask("Apitally write token", {
|
|
7
|
+
result: (value) => value.trim(),
|
|
8
|
+
validate: (value) => isValidWriteToken(value.trim())
|
|
14
9
|
});
|
|
15
|
-
const env = await command.prompt.ask("Environment
|
|
16
|
-
default:
|
|
17
|
-
result
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
10
|
+
const env = await command.prompt.ask("Environment", {
|
|
11
|
+
default: DEFAULT_ENV,
|
|
12
|
+
result: normalizeEnv,
|
|
13
|
+
validate: (value) => ENV_FORMAT.test(normalizeEnv(value))
|
|
14
|
+
});
|
|
15
|
+
const captureRequestHeaders = await command.prompt.confirm("Capture request headers?", {
|
|
16
|
+
default: false
|
|
17
|
+
});
|
|
18
|
+
const captureRequestBody = await command.prompt.confirm("Capture request bodies?", {
|
|
19
|
+
default: false
|
|
23
20
|
});
|
|
24
|
-
const
|
|
21
|
+
const captureResponseBody = await command.prompt.confirm("Capture response bodies?", {
|
|
25
22
|
default: false
|
|
26
23
|
});
|
|
27
24
|
const codemods = await command.createCodemods();
|
|
28
25
|
await codemods.makeUsingStub(STUBS_ROOT, "config/apitally.stub", {
|
|
29
|
-
|
|
26
|
+
captureRequestHeaders,
|
|
27
|
+
captureRequestBody,
|
|
28
|
+
captureResponseBody
|
|
30
29
|
});
|
|
31
|
-
await codemods.registerMiddleware("router", [
|
|
32
|
-
{
|
|
33
|
-
path: "apitally/adonisjs/middleware"
|
|
34
|
-
}
|
|
35
|
-
]);
|
|
36
30
|
await codemods.updateRcFile((rcFile) => {
|
|
37
31
|
rcFile.addProvider("apitally/adonisjs/provider");
|
|
38
32
|
});
|
|
33
|
+
await codemods.registerMiddleware("server", [{ path: "apitally/adonisjs/middleware" }]);
|
|
39
34
|
await codemods.defineEnvVariables({
|
|
40
|
-
|
|
35
|
+
APITALLY_WRITE_TOKEN: writeToken,
|
|
41
36
|
APITALLY_ENV: env
|
|
42
37
|
});
|
|
43
38
|
await codemods.defineEnvValidations({
|
|
44
|
-
leadingComment: "Variables for configuring the apitally package",
|
|
45
39
|
variables: {
|
|
46
|
-
|
|
40
|
+
APITALLY_WRITE_TOKEN: "Env.schema.string.optional()",
|
|
47
41
|
APITALLY_ENV: "Env.schema.string.optional()"
|
|
48
42
|
}
|
|
49
43
|
});
|
|
44
|
+
await updateExceptionHandler(codemods, command);
|
|
45
|
+
}
|
|
46
|
+
function normalizeEnv(value) {
|
|
47
|
+
return value.trim().toLowerCase().replace(/[ _]/g, "-");
|
|
48
|
+
}
|
|
49
|
+
async function updateExceptionHandler(codemods, command) {
|
|
50
|
+
const project = await codemods.getTsMorphProject();
|
|
51
|
+
const handlerPath = command.app.makePath("app/exceptions/handler.ts");
|
|
52
|
+
const sourceFile = project?.getSourceFile(handlerPath) ?? project?.addSourceFileAtPathIfExists(handlerPath);
|
|
53
|
+
const handlerClass = sourceFile?.getClasses().find((candidate) => candidate.isDefaultExport());
|
|
54
|
+
const method = handlerClass?.getMethod("handle");
|
|
55
|
+
if (method) {
|
|
56
|
+
const alreadyConfigured = method.getDescendants().some((node) => {
|
|
57
|
+
if (node.getKindName() !== "CallExpression") {
|
|
58
|
+
return false;
|
|
59
|
+
}
|
|
60
|
+
const call = node;
|
|
61
|
+
return call.getExpression().getText() === "captureException" && call.getArguments().length === 2;
|
|
62
|
+
});
|
|
63
|
+
if (alreadyConfigured) {
|
|
64
|
+
return;
|
|
65
|
+
}
|
|
66
|
+
const parameters = method.getParameters();
|
|
67
|
+
const statements = method.getStatements();
|
|
68
|
+
const statement = statements[0];
|
|
69
|
+
if (method.isAsync() && parameters.length >= 2 && statements.length === 1 && statement?.getKindName() === "ReturnStatement") {
|
|
70
|
+
const returnExpression = statement.getExpression();
|
|
71
|
+
const errorName = parameters[0].getName();
|
|
72
|
+
const contextName = parameters[1].getName();
|
|
73
|
+
if (returnExpression?.getKindName() === "CallExpression" && returnExpression.getExpression().getText() === "super.handle" && returnExpression.getArguments().map((argument) => argument.getText()).join(",") === `${errorName},${contextName}`) {
|
|
74
|
+
const importDeclaration = sourceFile?.getImportDeclaration(
|
|
75
|
+
(candidate) => candidate.getModuleSpecifierValue() === "apitally/adonisjs"
|
|
76
|
+
);
|
|
77
|
+
if (importDeclaration) {
|
|
78
|
+
if (!importDeclaration.getNamedImports().some(
|
|
79
|
+
(namedImport) => namedImport.getName() === "captureException"
|
|
80
|
+
)) {
|
|
81
|
+
importDeclaration.addNamedImport("captureException");
|
|
82
|
+
}
|
|
83
|
+
} else {
|
|
84
|
+
sourceFile?.addImportDeclaration({
|
|
85
|
+
moduleSpecifier: "apitally/adonisjs",
|
|
86
|
+
namedImports: ["captureException"]
|
|
87
|
+
});
|
|
88
|
+
}
|
|
89
|
+
method.setBodyText(
|
|
90
|
+
`const result = await super.handle(${errorName}, ${contextName})
|
|
91
|
+
captureException(${errorName}, ${contextName})
|
|
92
|
+
return result`
|
|
93
|
+
);
|
|
94
|
+
await sourceFile?.save();
|
|
95
|
+
return;
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
command.logger.warning(
|
|
100
|
+
'Could not update "app/exceptions/handler.ts" automatically. Add the following import and method:'
|
|
101
|
+
);
|
|
102
|
+
command.logger.info(
|
|
103
|
+
'import { captureException } from "apitally/adonisjs"\n\nasync handle(error: unknown, ctx: HttpContext) {\n const result = await super.handle(error, ctx)\n captureException(error, ctx)\n return result\n}'
|
|
104
|
+
);
|
|
50
105
|
}
|
|
51
|
-
__name(configure, "configure");
|
|
52
106
|
export {
|
|
53
107
|
configure
|
|
54
108
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/adonisjs/configure.ts"],"sourcesContent":["
|
|
1
|
+
{"version":3,"sources":["../../src/adonisjs/configure.ts"],"sourcesContent":["import { fileURLToPath } from \"node:url\";\n\nimport type Configure from \"@adonisjs/core/commands/configure\";\n\nimport { DEFAULT_ENV, isValidWriteToken } from \"../config.js\";\n\nconst STUBS_ROOT = fileURLToPath(new URL(\"./stubs/\", import.meta.url));\nconst ENV_FORMAT = /^[a-z0-9-]{1,32}$/;\n\nexport async function configure(command: Configure): Promise<void> {\n const writeToken = await command.prompt.ask(\"Apitally write token\", {\n result: (value) => value.trim(),\n validate: (value) => isValidWriteToken(value.trim()),\n });\n const env = await command.prompt.ask(\"Environment\", {\n default: DEFAULT_ENV,\n result: normalizeEnv,\n validate: (value) => ENV_FORMAT.test(normalizeEnv(value)),\n });\n const captureRequestHeaders = await command.prompt.confirm(\"Capture request headers?\", {\n default: false,\n });\n const captureRequestBody = await command.prompt.confirm(\"Capture request bodies?\", {\n default: false,\n });\n const captureResponseBody = await command.prompt.confirm(\"Capture response bodies?\", {\n default: false,\n });\n\n const codemods = await command.createCodemods();\n await codemods.makeUsingStub(STUBS_ROOT, \"config/apitally.stub\", {\n captureRequestHeaders,\n captureRequestBody,\n captureResponseBody,\n });\n await codemods.updateRcFile((rcFile) => {\n rcFile.addProvider(\"apitally/adonisjs/provider\");\n });\n await codemods.registerMiddleware(\"server\", [{ path: \"apitally/adonisjs/middleware\" }]);\n await codemods.defineEnvVariables({\n APITALLY_WRITE_TOKEN: writeToken,\n APITALLY_ENV: env,\n });\n await codemods.defineEnvValidations({\n variables: {\n APITALLY_WRITE_TOKEN: \"Env.schema.string.optional()\",\n APITALLY_ENV: \"Env.schema.string.optional()\",\n },\n });\n await updateExceptionHandler(codemods, command);\n}\n\nfunction normalizeEnv(value: string): string {\n return value.trim().toLowerCase().replace(/[ _]/g, \"-\");\n}\n\nasync function updateExceptionHandler(\n codemods: Awaited<ReturnType<Configure[\"createCodemods\"]>>,\n command: Configure,\n): Promise<void> {\n const project = await codemods.getTsMorphProject();\n const handlerPath = command.app.makePath(\"app/exceptions/handler.ts\");\n const sourceFile =\n project?.getSourceFile(handlerPath) ?? project?.addSourceFileAtPathIfExists(handlerPath);\n const handlerClass = sourceFile\n ?.getClasses()\n .find((candidate: { isDefaultExport: () => boolean }) => candidate.isDefaultExport());\n const method = handlerClass?.getMethod(\"handle\");\n if (method) {\n const alreadyConfigured = method\n .getDescendants()\n .some((node: { getKindName: () => string }) => {\n if (node.getKindName() !== \"CallExpression\") {\n return false;\n }\n const call = node as typeof node & {\n getArguments: () => unknown[];\n getExpression: () => { getText: () => string };\n };\n return (\n call.getExpression().getText() === \"captureException\" && call.getArguments().length === 2\n );\n });\n if (alreadyConfigured) {\n return;\n }\n\n const parameters = method.getParameters();\n const statements = method.getStatements();\n const statement = statements[0];\n if (\n method.isAsync() &&\n parameters.length >= 2 &&\n statements.length === 1 &&\n statement?.getKindName() === \"ReturnStatement\"\n ) {\n const returnExpression = (\n statement as typeof statement & {\n getExpression: () =>\n | {\n getArguments: () => Array<{ getText: () => string }>;\n getExpression: () => { getText: () => string };\n getKindName: () => string;\n }\n | undefined;\n }\n ).getExpression();\n const errorName = parameters[0].getName();\n const contextName = parameters[1].getName();\n if (\n returnExpression?.getKindName() === \"CallExpression\" &&\n returnExpression.getExpression().getText() === \"super.handle\" &&\n returnExpression\n .getArguments()\n .map((argument: { getText: () => string }) => argument.getText())\n .join(\",\") === `${errorName},${contextName}`\n ) {\n const importDeclaration = sourceFile?.getImportDeclaration(\n (candidate: { getModuleSpecifierValue: () => string }) =>\n candidate.getModuleSpecifierValue() === \"apitally/adonisjs\",\n );\n if (importDeclaration) {\n if (\n !importDeclaration\n .getNamedImports()\n .some(\n (namedImport: { getName: () => string }) =>\n namedImport.getName() === \"captureException\",\n )\n ) {\n importDeclaration.addNamedImport(\"captureException\");\n }\n } else {\n sourceFile?.addImportDeclaration({\n moduleSpecifier: \"apitally/adonisjs\",\n namedImports: [\"captureException\"],\n });\n }\n method.setBodyText(\n `const result = await super.handle(${errorName}, ${contextName})\\n` +\n `captureException(${errorName}, ${contextName})\\n` +\n `return result`,\n );\n await sourceFile?.save();\n return;\n }\n }\n }\n\n command.logger.warning(\n 'Could not update \"app/exceptions/handler.ts\" automatically. Add the following import and method:',\n );\n command.logger.info(\n 'import { captureException } from \"apitally/adonisjs\"\\n\\n' +\n \"async handle(error: unknown, ctx: HttpContext) {\\n\" +\n \" const result = await super.handle(error, ctx)\\n\" +\n \" captureException(error, ctx)\\n\" +\n \" return result\\n\" +\n \"}\",\n );\n}\n"],"mappings":"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","names":[]}
|
package/dist/adonisjs/index.cjs
CHANGED
|
@@ -3,7 +3,6 @@ var __defProp = Object.defineProperty;
|
|
|
3
3
|
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
4
|
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
5
|
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
-
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
7
6
|
var __export = (target, all) => {
|
|
8
7
|
for (var name in all)
|
|
9
8
|
__defProp(target, name, { get: all[name], enumerable: true });
|
|
@@ -19,32 +18,50 @@ var __copyProps = (to, from, except, desc) => {
|
|
|
19
18
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
20
19
|
var adonisjs_exports = {};
|
|
21
20
|
__export(adonisjs_exports, {
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
defineConfig: () => defineConfig,
|
|
25
|
-
setConsumer: () => setConsumer
|
|
21
|
+
captureException: () => captureException,
|
|
22
|
+
defineConfig: () => defineConfig
|
|
26
23
|
});
|
|
27
24
|
module.exports = __toCommonJS(adonisjs_exports);
|
|
28
|
-
var
|
|
29
|
-
|
|
30
|
-
|
|
25
|
+
var import_context = require('../context.cjs');
|
|
26
|
+
var import_exceptions = require('../exceptions.cjs');
|
|
27
|
+
var import_logger = require('../logger.cjs');
|
|
28
|
+
var import_validationErrors = require('../validationErrors.cjs');
|
|
29
|
+
function defineConfig(options) {
|
|
30
|
+
return options;
|
|
31
31
|
}
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
32
|
+
function captureException(error, context) {
|
|
33
|
+
try {
|
|
34
|
+
const statusCode = context.response.getStatus();
|
|
35
|
+
if (statusCode >= 500) {
|
|
36
|
+
(0, import_exceptions.captureException)(error);
|
|
37
|
+
return;
|
|
38
|
+
}
|
|
39
|
+
if (!(0, import_validationErrors.isValidationResponseStatus)(statusCode) || !(0, import_validationErrors.isRecord)(error) || error.code !== "E_VALIDATION_ERROR" || !Array.isArray(error.messages)) {
|
|
40
|
+
return;
|
|
41
|
+
}
|
|
42
|
+
const requestRecord = (0, import_context.getRequestRecord)();
|
|
43
|
+
if (!requestRecord) {
|
|
44
|
+
return;
|
|
45
|
+
}
|
|
46
|
+
const validationErrors = [];
|
|
47
|
+
for (const message of error.messages) {
|
|
48
|
+
if ((0, import_validationErrors.isRecord)(message) && typeof message.field === "string" && typeof message.message === "string") {
|
|
49
|
+
validationErrors.push({
|
|
50
|
+
source: "",
|
|
51
|
+
field: message.field,
|
|
52
|
+
message: message.message,
|
|
53
|
+
type: typeof message.rule === "string" ? message.rule : ""
|
|
54
|
+
});
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
requestRecord.validationErrors = validationErrors;
|
|
58
|
+
} catch (captureError) {
|
|
59
|
+
(0, import_logger.logDebug)(`Error capturing an AdonisJS exception: ${String(captureError)}`);
|
|
36
60
|
}
|
|
37
61
|
}
|
|
38
|
-
__name(captureError, "captureError");
|
|
39
|
-
function setConsumer(ctx, consumer) {
|
|
40
|
-
ctx.apitallyConsumer = consumer || void 0;
|
|
41
|
-
}
|
|
42
|
-
__name(setConsumer, "setConsumer");
|
|
43
62
|
// Annotate the CommonJS export names for ESM import in node:
|
|
44
63
|
0 && (module.exports = {
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
defineConfig,
|
|
48
|
-
setConsumer
|
|
64
|
+
captureException,
|
|
65
|
+
defineConfig
|
|
49
66
|
});
|
|
50
67
|
//# sourceMappingURL=index.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/adonisjs/index.ts"],"sourcesContent":["import type { HttpContext } from \"@adonisjs/core/http\";\
|
|
1
|
+
{"version":3,"sources":["../../src/adonisjs/index.ts"],"sourcesContent":["import type { HttpContext } from \"@adonisjs/core/http\";\nimport type { ApitallyOptions } from \"../config.js\";\nimport { getRequestRecord } from \"../context.js\";\nimport { captureException as captureCurrentException } from \"../exceptions.js\";\nimport { logDebug } from \"../logger.js\";\nimport {\n isRecord,\n isValidationResponseStatus,\n type ValidationErrorDetail,\n} from \"../validationErrors.js\";\n\nexport type { ApitallyOptions } from \"../config.js\";\n\nexport function defineConfig(options: ApitallyOptions): ApitallyOptions {\n return options;\n}\n\nexport function captureException(error: unknown, context: HttpContext): void {\n try {\n const statusCode = context.response.getStatus();\n if (statusCode >= 500) {\n captureCurrentException(error);\n return;\n }\n if (\n !isValidationResponseStatus(statusCode) ||\n !isRecord(error) ||\n error.code !== \"E_VALIDATION_ERROR\" ||\n !Array.isArray(error.messages)\n ) {\n return;\n }\n const requestRecord = getRequestRecord();\n if (!requestRecord) {\n return;\n }\n const validationErrors: ValidationErrorDetail[] = [];\n for (const message of error.messages) {\n if (\n isRecord(message) &&\n typeof message.field === \"string\" &&\n typeof message.message === \"string\"\n ) {\n validationErrors.push({\n source: \"\",\n field: message.field,\n message: message.message,\n type: typeof message.rule === \"string\" ? message.rule : \"\",\n });\n }\n }\n requestRecord.validationErrors = validationErrors;\n } catch (captureError) {\n logDebug(`Error capturing an AdonisJS exception: ${String(captureError)}`);\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA,qBAAiC;AACjC,wBAA4D;AAC5D,oBAAyB;AACzB,8BAIO;AAIA,SAAS,aAAa,SAA2C;AACtE,SAAO;AACT;AAEO,SAAS,iBAAiB,OAAgB,SAA4B;AAC3E,MAAI;AACF,UAAM,aAAa,QAAQ,SAAS,UAAU;AAC9C,QAAI,cAAc,KAAK;AACrB,4BAAAA,kBAAwB,KAAK;AAC7B;AAAA,IACF;AACA,QACE,KAAC,oDAA2B,UAAU,KACtC,KAAC,kCAAS,KAAK,KACf,MAAM,SAAS,wBACf,CAAC,MAAM,QAAQ,MAAM,QAAQ,GAC7B;AACA;AAAA,IACF;AACA,UAAM,oBAAgB,iCAAiB;AACvC,QAAI,CAAC,eAAe;AAClB;AAAA,IACF;AACA,UAAM,mBAA4C,CAAC;AACnD,eAAW,WAAW,MAAM,UAAU;AACpC,cACE,kCAAS,OAAO,KAChB,OAAO,QAAQ,UAAU,YACzB,OAAO,QAAQ,YAAY,UAC3B;AACA,yBAAiB,KAAK;AAAA,UACpB,QAAQ;AAAA,UACR,OAAO,QAAQ;AAAA,UACf,SAAS,QAAQ;AAAA,UACjB,MAAM,OAAO,QAAQ,SAAS,WAAW,QAAQ,OAAO;AAAA,QAC1D,CAAC;AAAA,MACH;AAAA,IACF;AACA,kBAAc,mBAAmB;AAAA,EACnC,SAAS,cAAc;AACrB,gCAAS,0CAA0C,OAAO,YAAY,CAAC,EAAE;AAAA,EAC3E;AACF;","names":["captureCurrentException"]}
|
|
@@ -1,18 +1,9 @@
|
|
|
1
1
|
import { HttpContext } from '@adonisjs/core/http';
|
|
2
|
-
import {
|
|
3
|
-
|
|
4
|
-
import '../common/logging.cjs';
|
|
5
|
-
import 'winston';
|
|
6
|
-
import '../common/requestLogger.cjs';
|
|
7
|
-
import 'node:buffer';
|
|
8
|
-
import 'node:http';
|
|
9
|
-
import '../common/spanCollector.cjs';
|
|
2
|
+
import { ApitallyOptions } from '../config.cjs';
|
|
3
|
+
import '@opentelemetry/sdk-logs';
|
|
10
4
|
import '@opentelemetry/sdk-trace-base';
|
|
11
|
-
import '../common/tempGzipFile.cjs';
|
|
12
|
-
import '@adonisjs/core/commands/configure';
|
|
13
5
|
|
|
14
|
-
declare function defineConfig(
|
|
15
|
-
declare function
|
|
16
|
-
declare function setConsumer(ctx: HttpContext, consumer: ApitallyConsumer | string | null | undefined): void;
|
|
6
|
+
declare function defineConfig(options: ApitallyOptions): ApitallyOptions;
|
|
7
|
+
declare function captureException(error: unknown, context: HttpContext): void;
|
|
17
8
|
|
|
18
|
-
export {
|
|
9
|
+
export { ApitallyOptions, captureException, defineConfig };
|
package/dist/adonisjs/index.d.ts
CHANGED
|
@@ -1,18 +1,9 @@
|
|
|
1
1
|
import { HttpContext } from '@adonisjs/core/http';
|
|
2
|
-
import {
|
|
3
|
-
|
|
4
|
-
import '../common/logging.js';
|
|
5
|
-
import 'winston';
|
|
6
|
-
import '../common/requestLogger.js';
|
|
7
|
-
import 'node:buffer';
|
|
8
|
-
import 'node:http';
|
|
9
|
-
import '../common/spanCollector.js';
|
|
2
|
+
import { ApitallyOptions } from '../config.js';
|
|
3
|
+
import '@opentelemetry/sdk-logs';
|
|
10
4
|
import '@opentelemetry/sdk-trace-base';
|
|
11
|
-
import '../common/tempGzipFile.js';
|
|
12
|
-
import '@adonisjs/core/commands/configure';
|
|
13
5
|
|
|
14
|
-
declare function defineConfig(
|
|
15
|
-
declare function
|
|
16
|
-
declare function setConsumer(ctx: HttpContext, consumer: ApitallyConsumer | string | null | undefined): void;
|
|
6
|
+
declare function defineConfig(options: ApitallyOptions): ApitallyOptions;
|
|
7
|
+
declare function captureException(error: unknown, context: HttpContext): void;
|
|
17
8
|
|
|
18
|
-
export {
|
|
9
|
+
export { ApitallyOptions, captureException, defineConfig };
|
package/dist/adonisjs/index.js
CHANGED
|
@@ -1,24 +1,45 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
import {
|
|
4
|
-
|
|
5
|
-
|
|
1
|
+
import { getRequestRecord } from "../context.js";
|
|
2
|
+
import { captureException as captureCurrentException } from "../exceptions.js";
|
|
3
|
+
import { logDebug } from "../logger.js";
|
|
4
|
+
import {
|
|
5
|
+
isRecord,
|
|
6
|
+
isValidationResponseStatus
|
|
7
|
+
} from "../validationErrors.js";
|
|
8
|
+
function defineConfig(options) {
|
|
9
|
+
return options;
|
|
6
10
|
}
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
+
function captureException(error, context) {
|
|
12
|
+
try {
|
|
13
|
+
const statusCode = context.response.getStatus();
|
|
14
|
+
if (statusCode >= 500) {
|
|
15
|
+
captureCurrentException(error);
|
|
16
|
+
return;
|
|
17
|
+
}
|
|
18
|
+
if (!isValidationResponseStatus(statusCode) || !isRecord(error) || error.code !== "E_VALIDATION_ERROR" || !Array.isArray(error.messages)) {
|
|
19
|
+
return;
|
|
20
|
+
}
|
|
21
|
+
const requestRecord = getRequestRecord();
|
|
22
|
+
if (!requestRecord) {
|
|
23
|
+
return;
|
|
24
|
+
}
|
|
25
|
+
const validationErrors = [];
|
|
26
|
+
for (const message of error.messages) {
|
|
27
|
+
if (isRecord(message) && typeof message.field === "string" && typeof message.message === "string") {
|
|
28
|
+
validationErrors.push({
|
|
29
|
+
source: "",
|
|
30
|
+
field: message.field,
|
|
31
|
+
message: message.message,
|
|
32
|
+
type: typeof message.rule === "string" ? message.rule : ""
|
|
33
|
+
});
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
requestRecord.validationErrors = validationErrors;
|
|
37
|
+
} catch (captureError) {
|
|
38
|
+
logDebug(`Error capturing an AdonisJS exception: ${String(captureError)}`);
|
|
11
39
|
}
|
|
12
40
|
}
|
|
13
|
-
__name(captureError, "captureError");
|
|
14
|
-
function setConsumer(ctx, consumer) {
|
|
15
|
-
ctx.apitallyConsumer = consumer || void 0;
|
|
16
|
-
}
|
|
17
|
-
__name(setConsumer, "setConsumer");
|
|
18
41
|
export {
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
defineConfig,
|
|
22
|
-
setConsumer
|
|
42
|
+
captureException,
|
|
43
|
+
defineConfig
|
|
23
44
|
};
|
|
24
45
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/adonisjs/index.ts"],"sourcesContent":["import type { HttpContext } from \"@adonisjs/core/http\";\
|
|
1
|
+
{"version":3,"sources":["../../src/adonisjs/index.ts"],"sourcesContent":["import type { HttpContext } from \"@adonisjs/core/http\";\nimport type { ApitallyOptions } from \"../config.js\";\nimport { getRequestRecord } from \"../context.js\";\nimport { captureException as captureCurrentException } from \"../exceptions.js\";\nimport { logDebug } from \"../logger.js\";\nimport {\n isRecord,\n isValidationResponseStatus,\n type ValidationErrorDetail,\n} from \"../validationErrors.js\";\n\nexport type { ApitallyOptions } from \"../config.js\";\n\nexport function defineConfig(options: ApitallyOptions): ApitallyOptions {\n return options;\n}\n\nexport function captureException(error: unknown, context: HttpContext): void {\n try {\n const statusCode = context.response.getStatus();\n if (statusCode >= 500) {\n captureCurrentException(error);\n return;\n }\n if (\n !isValidationResponseStatus(statusCode) ||\n !isRecord(error) ||\n error.code !== \"E_VALIDATION_ERROR\" ||\n !Array.isArray(error.messages)\n ) {\n return;\n }\n const requestRecord = getRequestRecord();\n if (!requestRecord) {\n return;\n }\n const validationErrors: ValidationErrorDetail[] = [];\n for (const message of error.messages) {\n if (\n isRecord(message) &&\n typeof message.field === \"string\" &&\n typeof message.message === \"string\"\n ) {\n validationErrors.push({\n source: \"\",\n field: message.field,\n message: message.message,\n type: typeof message.rule === \"string\" ? message.rule : \"\",\n });\n }\n }\n requestRecord.validationErrors = validationErrors;\n } catch (captureError) {\n logDebug(`Error capturing an AdonisJS exception: ${String(captureError)}`);\n }\n}\n"],"mappings":"AAEA,SAAS,wBAAwB;AACjC,SAAS,oBAAoB,+BAA+B;AAC5D,SAAS,gBAAgB;AACzB;AAAA,EACE;AAAA,EACA;AAAA,OAEK;AAIA,SAAS,aAAa,SAA2C;AACtE,SAAO;AACT;AAEO,SAAS,iBAAiB,OAAgB,SAA4B;AAC3E,MAAI;AACF,UAAM,aAAa,QAAQ,SAAS,UAAU;AAC9C,QAAI,cAAc,KAAK;AACrB,8BAAwB,KAAK;AAC7B;AAAA,IACF;AACA,QACE,CAAC,2BAA2B,UAAU,KACtC,CAAC,SAAS,KAAK,KACf,MAAM,SAAS,wBACf,CAAC,MAAM,QAAQ,MAAM,QAAQ,GAC7B;AACA;AAAA,IACF;AACA,UAAM,gBAAgB,iBAAiB;AACvC,QAAI,CAAC,eAAe;AAClB;AAAA,IACF;AACA,UAAM,mBAA4C,CAAC;AACnD,eAAW,WAAW,MAAM,UAAU;AACpC,UACE,SAAS,OAAO,KAChB,OAAO,QAAQ,UAAU,YACzB,OAAO,QAAQ,YAAY,UAC3B;AACA,yBAAiB,KAAK;AAAA,UACpB,QAAQ;AAAA,UACR,OAAO,QAAQ;AAAA,UACf,SAAS,QAAQ;AAAA,UACjB,MAAM,OAAO,QAAQ,SAAS,WAAW,QAAQ,OAAO;AAAA,QAC1D,CAAC;AAAA,MACH;AAAA,IACF;AACA,kBAAc,mBAAmB;AAAA,EACnC,SAAS,cAAc;AACrB,aAAS,0CAA0C,OAAO,YAAY,CAAC,EAAE;AAAA,EAC3E;AACF;","names":[]}
|
|
@@ -3,7 +3,6 @@ var __defProp = Object.defineProperty;
|
|
|
3
3
|
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
4
|
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
5
|
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
-
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
7
6
|
var __export = (target, all) => {
|
|
8
7
|
for (var name in all)
|
|
9
8
|
__defProp(target, name, { get: all[name], enumerable: true });
|
|
@@ -22,115 +21,50 @@ __export(middleware_exports, {
|
|
|
22
21
|
default: () => ApitallyMiddleware
|
|
23
22
|
});
|
|
24
23
|
module.exports = __toCommonJS(middleware_exports);
|
|
25
|
-
var
|
|
26
|
-
var
|
|
27
|
-
var
|
|
28
|
-
var
|
|
29
|
-
|
|
24
|
+
var import_api = require("@opentelemetry/api");
|
|
25
|
+
var import_activation = require('../activation.cjs');
|
|
26
|
+
var import_config = require('../config.cjs');
|
|
27
|
+
var import_logger = require('../logger.cjs');
|
|
28
|
+
var import_requestObservation = require('../requestObservation.cjs');
|
|
29
|
+
var import_requestObservationNode = require('../requestObservationNode.cjs');
|
|
30
|
+
const TRACER_NAME = "apitally.adonisjs";
|
|
31
|
+
class ApitallyMiddleware {
|
|
30
32
|
async handle(ctx, next) {
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
if (!client.isEnabled() || ctx.request.method().toUpperCase() === "OPTIONS") {
|
|
34
|
-
await next();
|
|
35
|
-
return;
|
|
33
|
+
if (!(0, import_activation.isActivated)()) {
|
|
34
|
+
return next();
|
|
36
35
|
}
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
const
|
|
40
|
-
const
|
|
41
|
-
const
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
requestSize,
|
|
70
|
-
responseSize
|
|
71
|
-
});
|
|
72
|
-
if (responseStatus === 422 && ctx.apitallyError && "code" in ctx.apitallyError && "messages" in ctx.apitallyError && ctx.apitallyError.code === "E_VALIDATION_ERROR" && Array.isArray(ctx.apitallyError.messages)) {
|
|
73
|
-
ctx.apitallyError.messages.forEach((message) => {
|
|
74
|
-
client.validationErrorCounter.addValidationError({
|
|
75
|
-
consumer: consumer == null ? void 0 : consumer.identifier,
|
|
76
|
-
method: ctx.request.method(),
|
|
77
|
-
path,
|
|
78
|
-
loc: message.field,
|
|
79
|
-
msg: message.message,
|
|
80
|
-
type: message.rule
|
|
81
|
-
});
|
|
82
|
-
});
|
|
83
|
-
}
|
|
84
|
-
if (responseStatus === 500 && ctx.apitallyError) {
|
|
85
|
-
client.serverErrorCounter.addServerError({
|
|
86
|
-
consumer: consumer == null ? void 0 : consumer.identifier,
|
|
87
|
-
method: ctx.request.method(),
|
|
88
|
-
path,
|
|
89
|
-
type: ctx.apitallyError.name,
|
|
90
|
-
msg: ctx.apitallyError.message,
|
|
91
|
-
traceback: ctx.apitallyError.stack || ""
|
|
92
|
-
});
|
|
93
|
-
}
|
|
94
|
-
}
|
|
95
|
-
}, "onWriteHead");
|
|
96
|
-
const originalWriteHead = ctx.response.response.writeHead;
|
|
97
|
-
ctx.response.response.writeHead = (...args) => {
|
|
98
|
-
originalWriteHead.apply(ctx.response.response, args);
|
|
99
|
-
onWriteHead(args[0], typeof args[1] === "string" ? args[2] : args[1]);
|
|
100
|
-
return ctx.response.response;
|
|
101
|
-
};
|
|
102
|
-
if (client.requestLogger.enabled) {
|
|
103
|
-
const logs = logsContext.getStore();
|
|
104
|
-
const onEnd = /* @__PURE__ */ __name((chunk) => {
|
|
105
|
-
const requestBody = client.requestLogger.config.logRequestBody && client.requestLogger.isSupportedContentType(requestContentType) ? ctx.request.raw() : void 0;
|
|
106
|
-
const responseBody = client.requestLogger.config.logResponseBody && client.requestLogger.isSupportedContentType(responseContentType) ? chunk : void 0;
|
|
107
|
-
client.requestLogger.logRequest({
|
|
108
|
-
timestamp,
|
|
109
|
-
method: ctx.request.method(),
|
|
110
|
-
path,
|
|
111
|
-
url: ctx.request.completeUrl(true),
|
|
112
|
-
headers: (0, import_requestLogger.convertHeaders)(ctx.request.headers()),
|
|
113
|
-
size: requestSize,
|
|
114
|
-
consumer: consumer == null ? void 0 : consumer.identifier,
|
|
115
|
-
body: requestBody ? Buffer.from(requestBody) : void 0
|
|
116
|
-
}, {
|
|
117
|
-
statusCode: responseStatus,
|
|
118
|
-
responseTime: responseTime / 1e3,
|
|
119
|
-
headers: (0, import_requestLogger.convertHeaders)(responseHeaders),
|
|
120
|
-
size: responseSize,
|
|
121
|
-
body: responseBody ? Buffer.from(responseBody) : void 0
|
|
122
|
-
}, ctx.apitallyError, logs, spans, traceId);
|
|
123
|
-
}, "onEnd");
|
|
124
|
-
const originalEnd = ctx.response.response.end;
|
|
125
|
-
ctx.response.response.end = (...args) => {
|
|
126
|
-
originalEnd.apply(ctx.response.response, args);
|
|
127
|
-
onEnd(typeof args[0] !== "function" ? args[0] : void 0);
|
|
128
|
-
return ctx.response.response;
|
|
129
|
-
};
|
|
130
|
-
}
|
|
131
|
-
});
|
|
36
|
+
let requestContext;
|
|
37
|
+
try {
|
|
38
|
+
const request = ctx.request.request;
|
|
39
|
+
const response = ctx.response.response;
|
|
40
|
+
const started = (0, import_requestObservationNode.startNodeRequestObservation)({ request, tracerName: TRACER_NAME });
|
|
41
|
+
requestContext = started.requestContext;
|
|
42
|
+
import_api.context.bind(requestContext, request);
|
|
43
|
+
import_api.context.bind(requestContext, response);
|
|
44
|
+
(0, import_requestObservationNode.captureNodeResponse)(
|
|
45
|
+
response,
|
|
46
|
+
(0, import_config.getConfig)().captureResponseBody && started.observation.requestRecord.dropReason === void 0,
|
|
47
|
+
started.observation.requestBodyCapture,
|
|
48
|
+
(name) => ctx.response.getHeader(name)
|
|
49
|
+
).then((completion) => {
|
|
50
|
+
(0, import_requestObservation.finalizeRequestObservation)({
|
|
51
|
+
observation: started.observation,
|
|
52
|
+
completedAtMillis: completion.completedAtMillis,
|
|
53
|
+
statusCode: response.statusCode,
|
|
54
|
+
route: ctx.route?.pattern,
|
|
55
|
+
clientAddress: ctx.request.ip(),
|
|
56
|
+
requestHeaders: request.headers,
|
|
57
|
+
responseHeaders: ctx.response.getHeaders(),
|
|
58
|
+
capturedRequestBody: completion.requestBody,
|
|
59
|
+
capturedResponseBody: completion
|
|
60
|
+
});
|
|
61
|
+
}).catch((error) => {
|
|
62
|
+
(0, import_logger.logWarning)(`Error in the Apitally middleware: ${String(error)}`);
|
|
63
|
+
});
|
|
64
|
+
} catch (error) {
|
|
65
|
+
(0, import_logger.logWarning)(`Error in the Apitally middleware: ${String(error)}`);
|
|
66
|
+
}
|
|
67
|
+
return requestContext ? import_api.context.with(requestContext, next) : next();
|
|
132
68
|
}
|
|
133
|
-
}
|
|
134
|
-
__name(_ApitallyMiddleware, "ApitallyMiddleware");
|
|
135
|
-
let ApitallyMiddleware = _ApitallyMiddleware;
|
|
69
|
+
}
|
|
136
70
|
//# sourceMappingURL=middleware.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/adonisjs/middleware.ts"],"sourcesContent":["import { HttpContext } from \"@adonisjs/core/http\";\nimport { NextFn } from \"@adonisjs/core/types/http\";\nimport { AsyncLocalStorage } from \"node:async_hooks\";\nimport type { OutgoingHttpHeaders } from \"node:http\";\nimport { performance } from \"node:perf_hooks\";\n\nimport type { ApitallyClient } from \"../common/client.js\";\nimport { consumerFromStringOrObject } from \"../common/consumerRegistry.js\";\nimport { parseContentLength } from \"../common/headers.js\";\nimport type { LogRecord } from \"../common/requestLogger.js\";\nimport { convertHeaders } from \"../common/requestLogger.js\";\nimport type { ApitallyConsumer } from \"../common/types.js\";\n\ndeclare module \"@adonisjs/core/http\" {\n interface HttpContext {\n apitallyConsumer?: ApitallyConsumer | string;\n apitallyError?: Error;\n }\n}\n\nexport default class ApitallyMiddleware {\n async handle(ctx: HttpContext, next: NextFn) {\n const client: ApitallyClient =\n await ctx.containerResolver.make(\"apitallyClient\");\n const logsContext: AsyncLocalStorage<LogRecord[]> =\n await ctx.containerResolver.make(\"apitallyLogsContext\");\n\n if (\n !client.isEnabled() ||\n ctx.request.method().toUpperCase() === \"OPTIONS\"\n ) {\n await next();\n return;\n }\n\n return logsContext.run([], async () => {\n const path = ctx.route?.pattern;\n const timestamp = Date.now() / 1000;\n const startTime = performance.now();\n\n const spanHandle = client.spanCollector.startSpan();\n await spanHandle.runInContext(next);\n\n const responseTime = performance.now() - startTime;\n spanHandle.setName(`${ctx.request.method()} ${path}`);\n const spans = spanHandle.end();\n const traceId = spanHandle.traceId;\n\n const requestSize = parseContentLength(\n ctx.request.header(\"content-length\"),\n );\n const requestContentType = ctx.request.header(\"content-type\")?.toString();\n let responseStatus = ctx.response.getStatus();\n let responseHeaders = ctx.response.getHeaders();\n let responseSize: number | undefined;\n let responseContentType: string | undefined;\n\n const consumer = ctx.apitallyConsumer\n ? consumerFromStringOrObject(ctx.apitallyConsumer)\n : null;\n client.consumerRegistry.addOrUpdateConsumer(consumer);\n\n const onWriteHead = (\n statusCode: number,\n headers: OutgoingHttpHeaders,\n ) => {\n responseStatus = statusCode;\n responseHeaders = headers;\n responseSize = parseContentLength(headers[\"content-length\"]);\n responseContentType = headers[\"content-type\"]?.toString();\n\n if (path) {\n client.requestCounter.addRequest({\n consumer: consumer?.identifier,\n method: ctx.request.method(),\n path,\n statusCode: responseStatus,\n responseTime,\n requestSize,\n responseSize,\n });\n\n if (\n responseStatus === 422 &&\n ctx.apitallyError &&\n \"code\" in ctx.apitallyError &&\n \"messages\" in ctx.apitallyError &&\n ctx.apitallyError.code === \"E_VALIDATION_ERROR\" &&\n Array.isArray(ctx.apitallyError.messages)\n ) {\n ctx.apitallyError.messages.forEach((message) => {\n client.validationErrorCounter.addValidationError({\n consumer: consumer?.identifier,\n method: ctx.request.method(),\n path,\n loc: message.field,\n msg: message.message,\n type: message.rule,\n });\n });\n }\n\n if (responseStatus === 500 && ctx.apitallyError) {\n client.serverErrorCounter.addServerError({\n consumer: consumer?.identifier,\n method: ctx.request.method(),\n path,\n type: ctx.apitallyError.name,\n msg: ctx.apitallyError.message,\n traceback: ctx.apitallyError.stack || \"\",\n });\n }\n }\n };\n\n // Capture the final status code and response headers just before they are sent\n const originalWriteHead = ctx.response.response.writeHead;\n ctx.response.response.writeHead = (...args: any) => {\n originalWriteHead.apply(ctx.response.response, args);\n onWriteHead(args[0], typeof args[1] === \"string\" ? args[2] : args[1]);\n return ctx.response.response;\n };\n\n if (client.requestLogger.enabled) {\n const logs = logsContext.getStore();\n\n const onEnd = (chunk: any) => {\n const requestBody =\n client.requestLogger.config.logRequestBody &&\n client.requestLogger.isSupportedContentType(requestContentType)\n ? ctx.request.raw()\n : undefined;\n const responseBody =\n client.requestLogger.config.logResponseBody &&\n client.requestLogger.isSupportedContentType(responseContentType)\n ? chunk\n : undefined;\n\n client.requestLogger.logRequest(\n {\n timestamp,\n method: ctx.request.method(),\n path,\n url: ctx.request.completeUrl(true),\n headers: convertHeaders(ctx.request.headers()),\n size: requestSize,\n consumer: consumer?.identifier,\n body: requestBody ? Buffer.from(requestBody) : undefined,\n },\n {\n statusCode: responseStatus,\n responseTime: responseTime / 1000,\n headers: convertHeaders(responseHeaders),\n size: responseSize,\n body: responseBody ? Buffer.from(responseBody) : undefined,\n },\n ctx.apitallyError,\n logs,\n spans,\n traceId,\n );\n };\n\n // Capture the final response body just before it is sent\n const originalEnd = ctx.response.response.end;\n ctx.response.response.end = (...args: any) => {\n originalEnd.apply(ctx.response.response, args);\n onEnd(typeof args[0] !== \"function\" ? args[0] : undefined);\n return ctx.response.response;\n };\n }\n });\n }\n}\n"],"mappings":"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","names":["ApitallyMiddleware","handle","ctx","next","client","containerResolver","make","logsContext","isEnabled","request","method","toUpperCase","run","path","route","pattern","timestamp","Date","now","startTime","performance","spanHandle","spanCollector","startSpan","runInContext","responseTime","setName","spans","end","traceId","requestSize","parseContentLength","header","requestContentType","toString","responseStatus","response","getStatus","responseHeaders","getHeaders","responseSize","responseContentType","consumer","apitallyConsumer","consumerFromStringOrObject","consumerRegistry","addOrUpdateConsumer","onWriteHead","statusCode","headers","_a","requestCounter","addRequest","identifier","apitallyError","code","Array","isArray","messages","forEach","message","validationErrorCounter","addValidationError","loc","field","msg","type","rule","serverErrorCounter","addServerError","name","traceback","stack","originalWriteHead","writeHead","args","apply","requestLogger","enabled","logs","getStore","onEnd","chunk","requestBody","config","logRequestBody","isSupportedContentType","raw","undefined","responseBody","logResponseBody","logRequest","url","completeUrl","convertHeaders","size","body","Buffer","from","originalEnd"]}
|
|
1
|
+
{"version":3,"sources":["../../src/adonisjs/middleware.ts"],"sourcesContent":["import type { HttpContext } from \"@adonisjs/core/http\";\nimport type { NextFn } from \"@adonisjs/core/types/http\";\nimport { type Context, context } from \"@opentelemetry/api\";\n\nimport { isActivated } from \"../activation.js\";\nimport { getConfig } from \"../config.js\";\nimport { logWarning } from \"../logger.js\";\nimport { finalizeRequestObservation } from \"../requestObservation.js\";\nimport { captureNodeResponse, startNodeRequestObservation } from \"../requestObservationNode.js\";\n\nconst TRACER_NAME = \"apitally.adonisjs\";\n\nexport default class ApitallyMiddleware {\n async handle(ctx: HttpContext, next: NextFn): Promise<unknown> {\n if (!isActivated()) {\n return next();\n }\n\n let requestContext: Context | undefined;\n try {\n const request = ctx.request.request;\n const response = ctx.response.response;\n const started = startNodeRequestObservation({ request, tracerName: TRACER_NAME });\n requestContext = started.requestContext;\n context.bind(requestContext, request);\n context.bind(requestContext, response);\n captureNodeResponse(\n response,\n getConfig().captureResponseBody &&\n started.observation.requestRecord.dropReason === undefined,\n started.observation.requestBodyCapture,\n (name) => ctx.response.getHeader(name),\n )\n .then((completion) => {\n finalizeRequestObservation({\n observation: started.observation,\n completedAtMillis: completion.completedAtMillis,\n statusCode: response.statusCode,\n route: ctx.route?.pattern,\n clientAddress: ctx.request.ip(),\n requestHeaders: request.headers,\n responseHeaders: ctx.response.getHeaders(),\n capturedRequestBody: completion.requestBody,\n capturedResponseBody: completion,\n });\n })\n .catch((error: unknown) => {\n logWarning(`Error in the Apitally middleware: ${String(error)}`);\n });\n } catch (error) {\n logWarning(`Error in the Apitally middleware: ${String(error)}`);\n }\n\n return requestContext ? context.with(requestContext, next) : next();\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA,iBAAsC;AAEtC,wBAA4B;AAC5B,oBAA0B;AAC1B,oBAA2B;AAC3B,gCAA2C;AAC3C,oCAAiE;AAEjE,MAAM,cAAc;AAEpB,MAAO,mBAAiC;AAAA,EACtC,MAAM,OAAO,KAAkB,MAAgC;AAC7D,QAAI,KAAC,+BAAY,GAAG;AAClB,aAAO,KAAK;AAAA,IACd;AAEA,QAAI;AACJ,QAAI;AACF,YAAM,UAAU,IAAI,QAAQ;AAC5B,YAAM,WAAW,IAAI,SAAS;AAC9B,YAAM,cAAU,2DAA4B,EAAE,SAAS,YAAY,YAAY,CAAC;AAChF,uBAAiB,QAAQ;AACzB,yBAAQ,KAAK,gBAAgB,OAAO;AACpC,yBAAQ,KAAK,gBAAgB,QAAQ;AACrC;AAAA,QACE;AAAA,YACA,yBAAU,EAAE,uBACV,QAAQ,YAAY,cAAc,eAAe;AAAA,QACnD,QAAQ,YAAY;AAAA,QACpB,CAAC,SAAS,IAAI,SAAS,UAAU,IAAI;AAAA,MACvC,EACG,KAAK,CAAC,eAAe;AACpB,kEAA2B;AAAA,UACzB,aAAa,QAAQ;AAAA,UACrB,mBAAmB,WAAW;AAAA,UAC9B,YAAY,SAAS;AAAA,UACrB,OAAO,IAAI,OAAO;AAAA,UAClB,eAAe,IAAI,QAAQ,GAAG;AAAA,UAC9B,gBAAgB,QAAQ;AAAA,UACxB,iBAAiB,IAAI,SAAS,WAAW;AAAA,UACzC,qBAAqB,WAAW;AAAA,UAChC,sBAAsB;AAAA,QACxB,CAAC;AAAA,MACH,CAAC,EACA,MAAM,CAAC,UAAmB;AACzB,sCAAW,qCAAqC,OAAO,KAAK,CAAC,EAAE;AAAA,MACjE,CAAC;AAAA,IACL,SAAS,OAAO;AACd,oCAAW,qCAAqC,OAAO,KAAK,CAAC,EAAE;AAAA,IACjE;AAEA,WAAO,iBAAiB,mBAAQ,KAAK,gBAAgB,IAAI,IAAI,KAAK;AAAA,EACpE;AACF;","names":[]}
|