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
|
@@ -0,0 +1,250 @@
|
|
|
1
|
+
import { context } from "@opentelemetry/api";
|
|
2
|
+
import {
|
|
3
|
+
activate,
|
|
4
|
+
configure,
|
|
5
|
+
flushTelemetry,
|
|
6
|
+
isActivated,
|
|
7
|
+
registerStartupEventInfo
|
|
8
|
+
} from "../activation.js";
|
|
9
|
+
import { getConfig } from "../config.js";
|
|
10
|
+
import { captureException } from "../exceptions.js";
|
|
11
|
+
import { logDebug, logWarning } from "../logger.js";
|
|
12
|
+
import { resolvePackageVersion } from "../packageVersion.js";
|
|
13
|
+
import {
|
|
14
|
+
finalizeRequestObservation,
|
|
15
|
+
finalizeRequestObservationWithError
|
|
16
|
+
} from "../requestObservation.js";
|
|
17
|
+
import {
|
|
18
|
+
captureWebRequestBody,
|
|
19
|
+
captureWebResponse,
|
|
20
|
+
isWebSocketUpgrade,
|
|
21
|
+
startWebRequestObservation
|
|
22
|
+
} from "../requestObservationWeb.js";
|
|
23
|
+
import { formatIssues, normalizeSource } from "../validationErrors.js";
|
|
24
|
+
import { resolveStartupPaths } from "./routes.js";
|
|
25
|
+
const INSTALL_MARKER = /* @__PURE__ */ Symbol.for("apitally.elysiaInstall");
|
|
26
|
+
const PLUGIN_NAME = "apitally";
|
|
27
|
+
const TRACER_NAME = "apitally.elysia";
|
|
28
|
+
function createElysiaPlugin(ElysiaClass, options) {
|
|
29
|
+
configure(options);
|
|
30
|
+
let app;
|
|
31
|
+
registerStartupEventInfo({
|
|
32
|
+
framework: "elysia",
|
|
33
|
+
frameworkVersion: resolvePackageVersion("elysia"),
|
|
34
|
+
resolvePaths: () => app ? resolveStartupPaths(app) : []
|
|
35
|
+
});
|
|
36
|
+
return buildElysiaPlugin(ElysiaClass, (startedApp) => {
|
|
37
|
+
app = startedApp;
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
function installElysiaIntegration(app, options) {
|
|
41
|
+
configure(options);
|
|
42
|
+
const markedApp = app;
|
|
43
|
+
if (markedApp[INSTALL_MARKER] === true) {
|
|
44
|
+
return;
|
|
45
|
+
}
|
|
46
|
+
if (app.routes.length > 0) {
|
|
47
|
+
logWarning(
|
|
48
|
+
"useApitally() was called after routes were registered on the Elysia app, so Apitally was not installed. To resolve this, call useApitally() immediately after creating the app, before registering routes or plugins that contain routes."
|
|
49
|
+
);
|
|
50
|
+
return;
|
|
51
|
+
}
|
|
52
|
+
markedApp[INSTALL_MARKER] = true;
|
|
53
|
+
registerStartupEventInfo({
|
|
54
|
+
framework: "elysia",
|
|
55
|
+
frameworkVersion: resolvePackageVersion("elysia"),
|
|
56
|
+
resolvePaths: () => resolveStartupPaths(app)
|
|
57
|
+
});
|
|
58
|
+
const ElysiaClass = app.constructor;
|
|
59
|
+
app.use(buildElysiaPlugin(ElysiaClass));
|
|
60
|
+
}
|
|
61
|
+
function buildElysiaPlugin(ElysiaClass, recordStartedApp) {
|
|
62
|
+
const observations = /* @__PURE__ */ new WeakMap();
|
|
63
|
+
const plugin = new ElysiaClass({ name: PLUGIN_NAME });
|
|
64
|
+
let startedApp;
|
|
65
|
+
plugin.wrap(
|
|
66
|
+
((dispatcher, request) => function(...args) {
|
|
67
|
+
let observation;
|
|
68
|
+
try {
|
|
69
|
+
activate();
|
|
70
|
+
if (!isActivated() || isWebSocketUpgrade(request)) {
|
|
71
|
+
return dispatcher.apply(this, args);
|
|
72
|
+
}
|
|
73
|
+
const started = startWebRequestObservation({
|
|
74
|
+
request,
|
|
75
|
+
tracerName: TRACER_NAME,
|
|
76
|
+
clientAddress: startedApp?.server?.requestIP(request)?.address
|
|
77
|
+
});
|
|
78
|
+
observation = {
|
|
79
|
+
...started.observation,
|
|
80
|
+
requestContext: started.requestContext,
|
|
81
|
+
requestBodyCompletion: captureWebRequestBody(
|
|
82
|
+
request,
|
|
83
|
+
started.observation.requestBodyCapture
|
|
84
|
+
)
|
|
85
|
+
};
|
|
86
|
+
observations.set(request, observation);
|
|
87
|
+
} catch (error) {
|
|
88
|
+
logWarning(`Error in the Apitally Elysia middleware: ${String(error)}`);
|
|
89
|
+
return dispatcher.apply(this, args);
|
|
90
|
+
}
|
|
91
|
+
let result;
|
|
92
|
+
try {
|
|
93
|
+
result = context.with(observation.requestContext, () => dispatcher.apply(this, args));
|
|
94
|
+
} catch (error) {
|
|
95
|
+
finalizeFailedRequestObservation(observations, request, error);
|
|
96
|
+
throw error;
|
|
97
|
+
}
|
|
98
|
+
if (typeof result?.then === "function") {
|
|
99
|
+
return Promise.resolve(result).then(
|
|
100
|
+
(response) => observeResponse(observations, request, response),
|
|
101
|
+
(error) => {
|
|
102
|
+
finalizeFailedRequestObservation(observations, request, error);
|
|
103
|
+
throw error;
|
|
104
|
+
}
|
|
105
|
+
);
|
|
106
|
+
}
|
|
107
|
+
return observeResponse(observations, request, result);
|
|
108
|
+
})
|
|
109
|
+
);
|
|
110
|
+
plugin.onStart((app) => {
|
|
111
|
+
startedApp = app;
|
|
112
|
+
recordStartedApp?.(app);
|
|
113
|
+
if (app.config.aot === false) {
|
|
114
|
+
logWarning(
|
|
115
|
+
"Apitally does not observe requests on an Elysia app with aot: false. To resolve this, remove the aot: false option."
|
|
116
|
+
);
|
|
117
|
+
}
|
|
118
|
+
});
|
|
119
|
+
plugin.onTransform({ as: "global" }, ({ request, route }) => {
|
|
120
|
+
try {
|
|
121
|
+
const observation = observations.get(request);
|
|
122
|
+
if (observation && typeof route === "string" && route.length > 0) {
|
|
123
|
+
observation.route = route;
|
|
124
|
+
}
|
|
125
|
+
} catch (error) {
|
|
126
|
+
logDebug(`Error recording the matched Elysia route: ${String(error)}`);
|
|
127
|
+
}
|
|
128
|
+
});
|
|
129
|
+
plugin.onError({ as: "global" }, ({ request, route, error }) => {
|
|
130
|
+
try {
|
|
131
|
+
const observation = observations.get(request);
|
|
132
|
+
if (!observation) {
|
|
133
|
+
return;
|
|
134
|
+
}
|
|
135
|
+
if (typeof route === "string" && route.length > 0) {
|
|
136
|
+
observation.route = route;
|
|
137
|
+
}
|
|
138
|
+
observation.error = error;
|
|
139
|
+
const { code, all, type } = error;
|
|
140
|
+
if (code === "VALIDATION") {
|
|
141
|
+
observation.requestRecord.validationErrors = formatIssues(all, normalizeSource(type));
|
|
142
|
+
}
|
|
143
|
+
} catch (hookError) {
|
|
144
|
+
logDebug(`Error recording an Elysia error: ${String(hookError)}`);
|
|
145
|
+
}
|
|
146
|
+
});
|
|
147
|
+
plugin.onStop(() => {
|
|
148
|
+
flushTelemetry().catch((error) => {
|
|
149
|
+
logWarning(`Error flushing Apitally telemetry: ${String(error)}`);
|
|
150
|
+
});
|
|
151
|
+
});
|
|
152
|
+
return plugin;
|
|
153
|
+
}
|
|
154
|
+
function observeResponse(observations, request, response) {
|
|
155
|
+
const observation = observations.get(request);
|
|
156
|
+
if (!observation) {
|
|
157
|
+
return response;
|
|
158
|
+
}
|
|
159
|
+
observations.delete(request);
|
|
160
|
+
const statusCode = response.status;
|
|
161
|
+
if (observation.route === void 0 && statusCode !== 404) {
|
|
162
|
+
logWarning(
|
|
163
|
+
"A request matched a route registered before the Apitally plugin was applied, so it is exported without a route template and is not counted in the request metrics. To resolve this, apply the Apitally plugin immediately after creating the app, before registering routes."
|
|
164
|
+
);
|
|
165
|
+
}
|
|
166
|
+
let responseHeaders = response.headers;
|
|
167
|
+
try {
|
|
168
|
+
responseHeaders = new Headers(response.headers);
|
|
169
|
+
const shouldAddContentType = shouldAddBunErrorContentType(observation, responseHeaders);
|
|
170
|
+
if (shouldAddContentType) {
|
|
171
|
+
responseHeaders.set("content-type", "text/plain;charset=utf-8");
|
|
172
|
+
}
|
|
173
|
+
if (observation.error !== void 0 && statusCode >= 500) {
|
|
174
|
+
context.with(observation.requestContext, () => captureException(observation.error));
|
|
175
|
+
}
|
|
176
|
+
const captured = captureWebResponse(
|
|
177
|
+
response,
|
|
178
|
+
getConfig().captureResponseBody && observation.requestRecord.dropReason === void 0
|
|
179
|
+
);
|
|
180
|
+
captured.completion.then(async (completion) => {
|
|
181
|
+
await observation.requestBodyCompletion;
|
|
182
|
+
finalizeRequestObservation({
|
|
183
|
+
observation,
|
|
184
|
+
completedAtMillis: completion.completedAtMillis,
|
|
185
|
+
statusCode,
|
|
186
|
+
route: observation.route,
|
|
187
|
+
requestHeaders: observation.requestHeaders,
|
|
188
|
+
responseHeaders,
|
|
189
|
+
capturedRequestBody: observation.requestBodyCapture,
|
|
190
|
+
capturedResponseBody: completion
|
|
191
|
+
});
|
|
192
|
+
}).catch((error) => {
|
|
193
|
+
logWarning(`Error in the Apitally Elysia middleware: ${String(error)}`);
|
|
194
|
+
});
|
|
195
|
+
if (!shouldAddContentType) {
|
|
196
|
+
return captured.response;
|
|
197
|
+
}
|
|
198
|
+
return new Response(captured.response.body, {
|
|
199
|
+
status: captured.response.status,
|
|
200
|
+
statusText: captured.response.statusText,
|
|
201
|
+
headers: responseHeaders
|
|
202
|
+
});
|
|
203
|
+
} catch (error) {
|
|
204
|
+
const completedAtMillis = performance.now();
|
|
205
|
+
logWarning(`Error in the Apitally Elysia middleware: ${String(error)}`);
|
|
206
|
+
observation.requestBodyCompletion.then(
|
|
207
|
+
() => finalizeRequestObservation({
|
|
208
|
+
observation,
|
|
209
|
+
completedAtMillis,
|
|
210
|
+
statusCode,
|
|
211
|
+
route: observation.route,
|
|
212
|
+
requestHeaders: observation.requestHeaders,
|
|
213
|
+
responseHeaders,
|
|
214
|
+
capturedRequestBody: observation.requestBodyCapture
|
|
215
|
+
})
|
|
216
|
+
).catch((completionError) => {
|
|
217
|
+
logWarning(`Error in the Apitally Elysia middleware: ${String(completionError)}`);
|
|
218
|
+
});
|
|
219
|
+
return response;
|
|
220
|
+
}
|
|
221
|
+
}
|
|
222
|
+
function shouldAddBunErrorContentType(observation, responseHeaders) {
|
|
223
|
+
if (typeof process.versions.bun !== "string" || responseHeaders.has("content-type")) {
|
|
224
|
+
return false;
|
|
225
|
+
}
|
|
226
|
+
const errorCode = observation.error?.code;
|
|
227
|
+
return errorCode === "NOT_FOUND" || errorCode === "VALIDATION";
|
|
228
|
+
}
|
|
229
|
+
function finalizeFailedRequestObservation(observations, request, error) {
|
|
230
|
+
const observation = observations.get(request);
|
|
231
|
+
if (!observation) {
|
|
232
|
+
return;
|
|
233
|
+
}
|
|
234
|
+
observations.delete(request);
|
|
235
|
+
try {
|
|
236
|
+
finalizeRequestObservationWithError({
|
|
237
|
+
requestRecord: observation.requestRecord,
|
|
238
|
+
spanHandle: observation.spanHandle,
|
|
239
|
+
error,
|
|
240
|
+
durationSeconds: (performance.now() - observation.startTimeMillis) / 1e3
|
|
241
|
+
});
|
|
242
|
+
} catch (finalizeError) {
|
|
243
|
+
logWarning(`Error in the Apitally Elysia middleware: ${String(finalizeError)}`);
|
|
244
|
+
}
|
|
245
|
+
}
|
|
246
|
+
export {
|
|
247
|
+
createElysiaPlugin,
|
|
248
|
+
installElysiaIntegration
|
|
249
|
+
};
|
|
250
|
+
//# sourceMappingURL=middleware.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/elysia/middleware.ts"],"sourcesContent":["import { type Context, context } from \"@opentelemetry/api\";\nimport type { AnyElysia } from \"elysia\";\nimport {\n activate,\n configure,\n flushTelemetry,\n isActivated,\n registerStartupEventInfo,\n} from \"../activation.js\";\nimport type { ApitallyOptions } from \"../config.js\";\nimport { getConfig } from \"../config.js\";\nimport { captureException } from \"../exceptions.js\";\nimport { logDebug, logWarning } from \"../logger.js\";\nimport { resolvePackageVersion } from \"../packageVersion.js\";\nimport {\n finalizeRequestObservation,\n finalizeRequestObservationWithError,\n} from \"../requestObservation.js\";\nimport {\n captureWebRequestBody,\n captureWebResponse,\n isWebSocketUpgrade,\n startWebRequestObservation,\n type WebRequestObservation,\n} from \"../requestObservationWeb.js\";\nimport { formatIssues, normalizeSource } from \"../validationErrors.js\";\nimport { resolveStartupPaths } from \"./routes.js\";\n\nconst INSTALL_MARKER = Symbol.for(\"apitally.elysiaInstall\");\nconst PLUGIN_NAME = \"apitally\";\nconst TRACER_NAME = \"apitally.elysia\";\n\ninterface ElysiaConstructor {\n new (config?: { name?: string }): AnyElysia;\n}\n\ntype ElysiaDispatcher = (this: unknown, ...args: unknown[]) => Response | Promise<Response>;\ntype ElysiaWrap = Parameters<AnyElysia[\"wrap\"]>[0];\n\ninterface ElysiaRequestObservation extends WebRequestObservation {\n requestContext: Context;\n requestBodyCompletion: Promise<void>;\n route?: string;\n error?: unknown;\n}\n\nexport function createElysiaPlugin(\n ElysiaClass: ElysiaConstructor,\n options?: ApitallyOptions,\n): AnyElysia {\n configure(options);\n let app: AnyElysia | undefined;\n registerStartupEventInfo({\n framework: \"elysia\",\n frameworkVersion: resolvePackageVersion(\"elysia\"),\n resolvePaths: () => (app ? resolveStartupPaths(app) : []),\n });\n return buildElysiaPlugin(ElysiaClass, (startedApp) => {\n app = startedApp;\n });\n}\n\nexport function installElysiaIntegration(app: AnyElysia, options?: ApitallyOptions): void {\n configure(options);\n const markedApp = app as unknown as Record<symbol, boolean | undefined>;\n if (markedApp[INSTALL_MARKER] === true) {\n return;\n }\n if (app.routes.length > 0) {\n logWarning(\n \"useApitally() was called after routes were registered on the Elysia app, so Apitally was not installed. To resolve this, call useApitally() immediately after creating the app, before registering routes or plugins that contain routes.\",\n );\n return;\n }\n markedApp[INSTALL_MARKER] = true;\n registerStartupEventInfo({\n framework: \"elysia\",\n frameworkVersion: resolvePackageVersion(\"elysia\"),\n resolvePaths: () => resolveStartupPaths(app),\n });\n const ElysiaClass = app.constructor as ElysiaConstructor;\n app.use(buildElysiaPlugin(ElysiaClass));\n}\n\nfunction buildElysiaPlugin(\n ElysiaClass: ElysiaConstructor,\n recordStartedApp?: (app: AnyElysia) => void,\n): AnyElysia {\n const observations = new WeakMap<Request, ElysiaRequestObservation>();\n const plugin = new ElysiaClass({ name: PLUGIN_NAME });\n let startedApp: AnyElysia | undefined;\n\n plugin.wrap(\n ((dispatcher: ElysiaDispatcher, request: Request) =>\n function (this: unknown, ...args: unknown[]): Response | Promise<Response> {\n let observation: ElysiaRequestObservation;\n try {\n activate();\n if (!isActivated() || isWebSocketUpgrade(request)) {\n return dispatcher.apply(this, args);\n }\n const started = startWebRequestObservation({\n request,\n tracerName: TRACER_NAME,\n clientAddress: startedApp?.server?.requestIP(request)?.address,\n });\n observation = {\n ...started.observation,\n requestContext: started.requestContext,\n requestBodyCompletion: captureWebRequestBody(\n request,\n started.observation.requestBodyCapture,\n ),\n };\n observations.set(request, observation);\n } catch (error) {\n logWarning(`Error in the Apitally Elysia middleware: ${String(error)}`);\n return dispatcher.apply(this, args);\n }\n\n let result: Response | Promise<Response>;\n try {\n result = context.with(observation.requestContext, () => dispatcher.apply(this, args));\n } catch (error) {\n finalizeFailedRequestObservation(observations, request, error);\n throw error;\n }\n if (typeof (result as PromiseLike<Response>)?.then === \"function\") {\n return Promise.resolve(result).then(\n (response) => observeResponse(observations, request, response),\n (error: unknown) => {\n finalizeFailedRequestObservation(observations, request, error);\n throw error;\n },\n );\n }\n return observeResponse(observations, request, result as Response);\n }) as unknown as ElysiaWrap,\n );\n\n plugin.onStart((app) => {\n startedApp = app;\n recordStartedApp?.(app);\n // Elysia's dynamic handler for aot: false never applies plugin wrap() functions.\n if (app.config.aot === false) {\n logWarning(\n \"Apitally does not observe requests on an Elysia app with aot: false. To resolve this, remove the aot: false option.\",\n );\n }\n });\n plugin.onTransform({ as: \"global\" }, ({ request, route }) => {\n try {\n const observation = observations.get(request);\n if (observation && typeof route === \"string\" && route.length > 0) {\n observation.route = route;\n }\n } catch (error) {\n logDebug(`Error recording the matched Elysia route: ${String(error)}`);\n }\n });\n plugin.onError({ as: \"global\" }, ({ request, route, error }) => {\n try {\n const observation = observations.get(request);\n if (!observation) {\n return;\n }\n if (typeof route === \"string\" && route.length > 0) {\n observation.route = route;\n }\n observation.error = error;\n const { code, all, type } = error as { code?: unknown; all?: unknown; type?: unknown };\n if (code === \"VALIDATION\") {\n observation.requestRecord.validationErrors = formatIssues(all, normalizeSource(type));\n }\n } catch (hookError) {\n logDebug(`Error recording an Elysia error: ${String(hookError)}`);\n }\n });\n plugin.onStop(() => {\n flushTelemetry().catch((error: unknown) => {\n logWarning(`Error flushing Apitally telemetry: ${String(error)}`);\n });\n });\n\n return plugin;\n}\n\nfunction observeResponse(\n observations: WeakMap<Request, ElysiaRequestObservation>,\n request: Request,\n response: Response,\n): Response {\n const observation = observations.get(request);\n if (!observation) {\n return response;\n }\n observations.delete(request);\n const statusCode = response.status;\n // A non-404 response without a recorded route matched a route registered\n // before the plugin was applied; the plugin cannot detect this at setup.\n if (observation.route === undefined && statusCode !== 404) {\n logWarning(\n \"A request matched a route registered before the Apitally plugin was applied, so it is exported without a route template and is not counted in the request metrics. To resolve this, apply the Apitally plugin immediately after creating the app, before registering routes.\",\n );\n }\n let responseHeaders = response.headers;\n try {\n responseHeaders = new Headers(response.headers);\n const shouldAddContentType = shouldAddBunErrorContentType(observation, responseHeaders);\n if (shouldAddContentType) {\n responseHeaders.set(\"content-type\", \"text/plain;charset=utf-8\");\n }\n if (observation.error !== undefined && statusCode >= 500) {\n context.with(observation.requestContext, () => captureException(observation.error));\n }\n const captured = captureWebResponse(\n response,\n getConfig().captureResponseBody && observation.requestRecord.dropReason === undefined,\n );\n captured.completion\n .then(async (completion) => {\n await observation.requestBodyCompletion;\n finalizeRequestObservation({\n observation,\n completedAtMillis: completion.completedAtMillis,\n statusCode,\n route: observation.route,\n requestHeaders: observation.requestHeaders,\n responseHeaders,\n capturedRequestBody: observation.requestBodyCapture,\n capturedResponseBody: completion,\n });\n })\n .catch((error: unknown) => {\n logWarning(`Error in the Apitally Elysia middleware: ${String(error)}`);\n });\n if (!shouldAddContentType) {\n return captured.response;\n }\n // Bun adds this header after .wrap(); retain it when replacing the body stream.\n return new Response(captured.response.body, {\n status: captured.response.status,\n statusText: captured.response.statusText,\n headers: responseHeaders,\n });\n } catch (error) {\n const completedAtMillis = performance.now();\n logWarning(`Error in the Apitally Elysia middleware: ${String(error)}`);\n observation.requestBodyCompletion\n .then(() =>\n finalizeRequestObservation({\n observation,\n completedAtMillis,\n statusCode,\n route: observation.route,\n requestHeaders: observation.requestHeaders,\n responseHeaders,\n capturedRequestBody: observation.requestBodyCapture,\n }),\n )\n .catch((completionError: unknown) => {\n logWarning(`Error in the Apitally Elysia middleware: ${String(completionError)}`);\n });\n return response;\n }\n}\n\nfunction shouldAddBunErrorContentType(\n observation: ElysiaRequestObservation,\n responseHeaders: Headers,\n): boolean {\n if (\n typeof (process.versions as { bun?: unknown }).bun !== \"string\" ||\n responseHeaders.has(\"content-type\")\n ) {\n return false;\n }\n const errorCode = (observation.error as { code?: unknown } | undefined)?.code;\n return errorCode === \"NOT_FOUND\" || errorCode === \"VALIDATION\";\n}\n\nfunction finalizeFailedRequestObservation(\n observations: WeakMap<Request, ElysiaRequestObservation>,\n request: Request,\n error: unknown,\n): void {\n const observation = observations.get(request);\n if (!observation) {\n return;\n }\n observations.delete(request);\n try {\n finalizeRequestObservationWithError({\n requestRecord: observation.requestRecord,\n spanHandle: observation.spanHandle,\n error,\n durationSeconds: (performance.now() - observation.startTimeMillis) / 1000,\n });\n } catch (finalizeError) {\n logWarning(`Error in the Apitally Elysia middleware: ${String(finalizeError)}`);\n }\n}\n"],"mappings":"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","names":[]}
|
|
@@ -16,14 +16,23 @@ var __copyProps = (to, from, except, desc) => {
|
|
|
16
16
|
return to;
|
|
17
17
|
};
|
|
18
18
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
-
var
|
|
20
|
-
__export(
|
|
21
|
-
|
|
19
|
+
var routes_exports = {};
|
|
20
|
+
__export(routes_exports, {
|
|
21
|
+
resolveStartupPaths: () => resolveStartupPaths
|
|
22
22
|
});
|
|
23
|
-
module.exports = __toCommonJS(
|
|
24
|
-
|
|
23
|
+
module.exports = __toCommonJS(routes_exports);
|
|
24
|
+
const WEBSOCKET_METHODS = /* @__PURE__ */ new Set(["WS", "$INTERNALWS"]);
|
|
25
|
+
function resolveStartupPaths(app) {
|
|
26
|
+
const paths = [];
|
|
27
|
+
for (const route of app.routes) {
|
|
28
|
+
if (typeof route.method === "string" && typeof route.path === "string" && !WEBSOCKET_METHODS.has(route.method.toUpperCase())) {
|
|
29
|
+
paths.push({ method: route.method, path: route.path });
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
return paths;
|
|
33
|
+
}
|
|
25
34
|
// Annotate the CommonJS export names for ESM import in node:
|
|
26
35
|
0 && (module.exports = {
|
|
27
|
-
|
|
36
|
+
resolveStartupPaths
|
|
28
37
|
});
|
|
29
|
-
//# sourceMappingURL=
|
|
38
|
+
//# sourceMappingURL=routes.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/elysia/routes.ts"],"sourcesContent":["import type { AnyElysia } from \"elysia\";\nimport type { RoutePath } from \"../startup.js\";\n\nconst WEBSOCKET_METHODS = new Set([\"WS\", \"$INTERNALWS\"]);\n\nexport function resolveStartupPaths(app: AnyElysia): RoutePath[] {\n const paths: RoutePath[] = [];\n for (const route of app.routes) {\n if (\n typeof route.method === \"string\" &&\n typeof route.path === \"string\" &&\n !WEBSOCKET_METHODS.has(route.method.toUpperCase())\n ) {\n paths.push({ method: route.method, path: route.path });\n }\n }\n return paths;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAGA,MAAM,oBAAoB,oBAAI,IAAI,CAAC,MAAM,aAAa,CAAC;AAEhD,SAAS,oBAAoB,KAA6B;AAC/D,QAAM,QAAqB,CAAC;AAC5B,aAAW,SAAS,IAAI,QAAQ;AAC9B,QACE,OAAO,MAAM,WAAW,YACxB,OAAO,MAAM,SAAS,YACtB,CAAC,kBAAkB,IAAI,MAAM,OAAO,YAAY,CAAC,GACjD;AACA,YAAM,KAAK,EAAE,QAAQ,MAAM,QAAQ,MAAM,MAAM,KAAK,CAAC;AAAA,IACvD;AAAA,EACF;AACA,SAAO;AACT;","names":[]}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
const WEBSOCKET_METHODS = /* @__PURE__ */ new Set(["WS", "$INTERNALWS"]);
|
|
2
|
+
function resolveStartupPaths(app) {
|
|
3
|
+
const paths = [];
|
|
4
|
+
for (const route of app.routes) {
|
|
5
|
+
if (typeof route.method === "string" && typeof route.path === "string" && !WEBSOCKET_METHODS.has(route.method.toUpperCase())) {
|
|
6
|
+
paths.push({ method: route.method, path: route.path });
|
|
7
|
+
}
|
|
8
|
+
}
|
|
9
|
+
return paths;
|
|
10
|
+
}
|
|
11
|
+
export {
|
|
12
|
+
resolveStartupPaths
|
|
13
|
+
};
|
|
14
|
+
//# sourceMappingURL=routes.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/elysia/routes.ts"],"sourcesContent":["import type { AnyElysia } from \"elysia\";\nimport type { RoutePath } from \"../startup.js\";\n\nconst WEBSOCKET_METHODS = new Set([\"WS\", \"$INTERNALWS\"]);\n\nexport function resolveStartupPaths(app: AnyElysia): RoutePath[] {\n const paths: RoutePath[] = [];\n for (const route of app.routes) {\n if (\n typeof route.method === \"string\" &&\n typeof route.path === \"string\" &&\n !WEBSOCKET_METHODS.has(route.method.toUpperCase())\n ) {\n paths.push({ method: route.method, path: route.path });\n }\n }\n return paths;\n}\n"],"mappings":"AAGA,MAAM,oBAAoB,oBAAI,IAAI,CAAC,MAAM,aAAa,CAAC;AAEhD,SAAS,oBAAoB,KAA6B;AAC/D,QAAM,QAAqB,CAAC;AAC5B,aAAW,SAAS,IAAI,QAAQ;AAC9B,QACE,OAAO,MAAM,WAAW,YACxB,OAAO,MAAM,SAAS,YACtB,CAAC,kBAAkB,IAAI,MAAM,OAAO,YAAY,CAAC,GACjD;AACA,YAAM,KAAK,EAAE,QAAQ,MAAM,QAAQ,MAAM,MAAM,KAAK,CAAC;AAAA,IACvD;AAAA,EACF;AACA,SAAO;AACT;","names":[]}
|
|
@@ -0,0 +1,81 @@
|
|
|
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 exceptions_exports = {};
|
|
20
|
+
__export(exceptions_exports, {
|
|
21
|
+
captureException: () => captureException,
|
|
22
|
+
coerceToException: () => coerceToException,
|
|
23
|
+
resolveErrorStatus: () => resolveErrorStatus
|
|
24
|
+
});
|
|
25
|
+
module.exports = __toCommonJS(exceptions_exports);
|
|
26
|
+
var import_context = require('./context.cjs');
|
|
27
|
+
var import_logger = require('./logger.cjs');
|
|
28
|
+
function captureException(error) {
|
|
29
|
+
try {
|
|
30
|
+
const requestRecord = (0, import_context.getRequestRecord)();
|
|
31
|
+
if (requestRecord?.exception !== void 0) {
|
|
32
|
+
return;
|
|
33
|
+
}
|
|
34
|
+
if (requestRecord) {
|
|
35
|
+
requestRecord.exception = error;
|
|
36
|
+
}
|
|
37
|
+
const span = (0, import_context.getServerSpan)();
|
|
38
|
+
if (span?.isRecording()) {
|
|
39
|
+
span.recordException(coerceToException(error));
|
|
40
|
+
}
|
|
41
|
+
} catch (captureError) {
|
|
42
|
+
(0, import_logger.logDebug)(`Error capturing exception: ${String(captureError)}`);
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
function resolveErrorStatus(error) {
|
|
46
|
+
const { status, statusCode } = error ?? {};
|
|
47
|
+
if (typeof status === "number") {
|
|
48
|
+
return status;
|
|
49
|
+
}
|
|
50
|
+
if (typeof statusCode === "number") {
|
|
51
|
+
return statusCode;
|
|
52
|
+
}
|
|
53
|
+
return void 0;
|
|
54
|
+
}
|
|
55
|
+
function coerceToException(error) {
|
|
56
|
+
if (typeof error === "string") {
|
|
57
|
+
return error;
|
|
58
|
+
}
|
|
59
|
+
if (error instanceof Error) {
|
|
60
|
+
if (error.name === "Error" && error.constructor.name !== "" && error.constructor.name !== error.name) {
|
|
61
|
+
return {
|
|
62
|
+
...error,
|
|
63
|
+
message: error.message,
|
|
64
|
+
name: error.constructor.name,
|
|
65
|
+
stack: error.stack
|
|
66
|
+
};
|
|
67
|
+
}
|
|
68
|
+
return error;
|
|
69
|
+
}
|
|
70
|
+
if (typeof error === "object" && error !== null) {
|
|
71
|
+
return error;
|
|
72
|
+
}
|
|
73
|
+
return String(error);
|
|
74
|
+
}
|
|
75
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
76
|
+
0 && (module.exports = {
|
|
77
|
+
captureException,
|
|
78
|
+
coerceToException,
|
|
79
|
+
resolveErrorStatus
|
|
80
|
+
});
|
|
81
|
+
//# sourceMappingURL=exceptions.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/exceptions.ts"],"sourcesContent":["import type { Exception } from \"@opentelemetry/api\";\nimport { getRequestRecord, getServerSpan } from \"./context.js\";\nimport { logDebug } from \"./logger.js\";\n\nexport function captureException(error: unknown): void {\n try {\n const requestRecord = getRequestRecord();\n if (requestRecord?.exception !== undefined) {\n return;\n }\n if (requestRecord) {\n requestRecord.exception = error;\n }\n const span = getServerSpan();\n if (span?.isRecording()) {\n span.recordException(coerceToException(error));\n }\n } catch (captureError) {\n logDebug(`Error capturing exception: ${String(captureError)}`);\n }\n}\n\nexport function resolveErrorStatus(error: unknown): number | undefined {\n const { status, statusCode } = (error ?? {}) as { status?: unknown; statusCode?: unknown };\n if (typeof status === \"number\") {\n return status;\n }\n if (typeof statusCode === \"number\") {\n return statusCode;\n }\n return undefined;\n}\n\nexport function coerceToException(error: unknown): Exception {\n if (typeof error === \"string\") {\n return error;\n }\n if (error instanceof Error) {\n if (\n error.name === \"Error\" &&\n error.constructor.name !== \"\" &&\n error.constructor.name !== error.name\n ) {\n return {\n ...error,\n message: error.message,\n name: error.constructor.name,\n stack: error.stack,\n };\n }\n return error;\n }\n if (typeof error === \"object\" && error !== null) {\n return error as Exception;\n }\n return String(error);\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,qBAAgD;AAChD,oBAAyB;AAElB,SAAS,iBAAiB,OAAsB;AACrD,MAAI;AACF,UAAM,oBAAgB,iCAAiB;AACvC,QAAI,eAAe,cAAc,QAAW;AAC1C;AAAA,IACF;AACA,QAAI,eAAe;AACjB,oBAAc,YAAY;AAAA,IAC5B;AACA,UAAM,WAAO,8BAAc;AAC3B,QAAI,MAAM,YAAY,GAAG;AACvB,WAAK,gBAAgB,kBAAkB,KAAK,CAAC;AAAA,IAC/C;AAAA,EACF,SAAS,cAAc;AACrB,gCAAS,8BAA8B,OAAO,YAAY,CAAC,EAAE;AAAA,EAC/D;AACF;AAEO,SAAS,mBAAmB,OAAoC;AACrE,QAAM,EAAE,QAAQ,WAAW,IAAK,SAAS,CAAC;AAC1C,MAAI,OAAO,WAAW,UAAU;AAC9B,WAAO;AAAA,EACT;AACA,MAAI,OAAO,eAAe,UAAU;AAClC,WAAO;AAAA,EACT;AACA,SAAO;AACT;AAEO,SAAS,kBAAkB,OAA2B;AAC3D,MAAI,OAAO,UAAU,UAAU;AAC7B,WAAO;AAAA,EACT;AACA,MAAI,iBAAiB,OAAO;AAC1B,QACE,MAAM,SAAS,WACf,MAAM,YAAY,SAAS,MAC3B,MAAM,YAAY,SAAS,MAAM,MACjC;AACA,aAAO;AAAA,QACL,GAAG;AAAA,QACH,SAAS,MAAM;AAAA,QACf,MAAM,MAAM,YAAY;AAAA,QACxB,OAAO,MAAM;AAAA,MACf;AAAA,IACF;AACA,WAAO;AAAA,EACT;AACA,MAAI,OAAO,UAAU,YAAY,UAAU,MAAM;AAC/C,WAAO;AAAA,EACT;AACA,SAAO,OAAO,KAAK;AACrB;","names":[]}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { Exception } from '@opentelemetry/api';
|
|
2
|
+
|
|
3
|
+
declare function captureException(error: unknown): void;
|
|
4
|
+
declare function resolveErrorStatus(error: unknown): number | undefined;
|
|
5
|
+
declare function coerceToException(error: unknown): Exception;
|
|
6
|
+
|
|
7
|
+
export { captureException, coerceToException, resolveErrorStatus };
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { Exception } from '@opentelemetry/api';
|
|
2
|
+
|
|
3
|
+
declare function captureException(error: unknown): void;
|
|
4
|
+
declare function resolveErrorStatus(error: unknown): number | undefined;
|
|
5
|
+
declare function coerceToException(error: unknown): Exception;
|
|
6
|
+
|
|
7
|
+
export { captureException, coerceToException, resolveErrorStatus };
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import { getRequestRecord, getServerSpan } from "./context.js";
|
|
2
|
+
import { logDebug } from "./logger.js";
|
|
3
|
+
function captureException(error) {
|
|
4
|
+
try {
|
|
5
|
+
const requestRecord = getRequestRecord();
|
|
6
|
+
if (requestRecord?.exception !== void 0) {
|
|
7
|
+
return;
|
|
8
|
+
}
|
|
9
|
+
if (requestRecord) {
|
|
10
|
+
requestRecord.exception = error;
|
|
11
|
+
}
|
|
12
|
+
const span = getServerSpan();
|
|
13
|
+
if (span?.isRecording()) {
|
|
14
|
+
span.recordException(coerceToException(error));
|
|
15
|
+
}
|
|
16
|
+
} catch (captureError) {
|
|
17
|
+
logDebug(`Error capturing exception: ${String(captureError)}`);
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
function resolveErrorStatus(error) {
|
|
21
|
+
const { status, statusCode } = error ?? {};
|
|
22
|
+
if (typeof status === "number") {
|
|
23
|
+
return status;
|
|
24
|
+
}
|
|
25
|
+
if (typeof statusCode === "number") {
|
|
26
|
+
return statusCode;
|
|
27
|
+
}
|
|
28
|
+
return void 0;
|
|
29
|
+
}
|
|
30
|
+
function coerceToException(error) {
|
|
31
|
+
if (typeof error === "string") {
|
|
32
|
+
return error;
|
|
33
|
+
}
|
|
34
|
+
if (error instanceof Error) {
|
|
35
|
+
if (error.name === "Error" && error.constructor.name !== "" && error.constructor.name !== error.name) {
|
|
36
|
+
return {
|
|
37
|
+
...error,
|
|
38
|
+
message: error.message,
|
|
39
|
+
name: error.constructor.name,
|
|
40
|
+
stack: error.stack
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
return error;
|
|
44
|
+
}
|
|
45
|
+
if (typeof error === "object" && error !== null) {
|
|
46
|
+
return error;
|
|
47
|
+
}
|
|
48
|
+
return String(error);
|
|
49
|
+
}
|
|
50
|
+
export {
|
|
51
|
+
captureException,
|
|
52
|
+
coerceToException,
|
|
53
|
+
resolveErrorStatus
|
|
54
|
+
};
|
|
55
|
+
//# sourceMappingURL=exceptions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/exceptions.ts"],"sourcesContent":["import type { Exception } from \"@opentelemetry/api\";\nimport { getRequestRecord, getServerSpan } from \"./context.js\";\nimport { logDebug } from \"./logger.js\";\n\nexport function captureException(error: unknown): void {\n try {\n const requestRecord = getRequestRecord();\n if (requestRecord?.exception !== undefined) {\n return;\n }\n if (requestRecord) {\n requestRecord.exception = error;\n }\n const span = getServerSpan();\n if (span?.isRecording()) {\n span.recordException(coerceToException(error));\n }\n } catch (captureError) {\n logDebug(`Error capturing exception: ${String(captureError)}`);\n }\n}\n\nexport function resolveErrorStatus(error: unknown): number | undefined {\n const { status, statusCode } = (error ?? {}) as { status?: unknown; statusCode?: unknown };\n if (typeof status === \"number\") {\n return status;\n }\n if (typeof statusCode === \"number\") {\n return statusCode;\n }\n return undefined;\n}\n\nexport function coerceToException(error: unknown): Exception {\n if (typeof error === \"string\") {\n return error;\n }\n if (error instanceof Error) {\n if (\n error.name === \"Error\" &&\n error.constructor.name !== \"\" &&\n error.constructor.name !== error.name\n ) {\n return {\n ...error,\n message: error.message,\n name: error.constructor.name,\n stack: error.stack,\n };\n }\n return error;\n }\n if (typeof error === \"object\" && error !== null) {\n return error as Exception;\n }\n return String(error);\n}\n"],"mappings":"AACA,SAAS,kBAAkB,qBAAqB;AAChD,SAAS,gBAAgB;AAElB,SAAS,iBAAiB,OAAsB;AACrD,MAAI;AACF,UAAM,gBAAgB,iBAAiB;AACvC,QAAI,eAAe,cAAc,QAAW;AAC1C;AAAA,IACF;AACA,QAAI,eAAe;AACjB,oBAAc,YAAY;AAAA,IAC5B;AACA,UAAM,OAAO,cAAc;AAC3B,QAAI,MAAM,YAAY,GAAG;AACvB,WAAK,gBAAgB,kBAAkB,KAAK,CAAC;AAAA,IAC/C;AAAA,EACF,SAAS,cAAc;AACrB,aAAS,8BAA8B,OAAO,YAAY,CAAC,EAAE;AAAA,EAC/D;AACF;AAEO,SAAS,mBAAmB,OAAoC;AACrE,QAAM,EAAE,QAAQ,WAAW,IAAK,SAAS,CAAC;AAC1C,MAAI,OAAO,WAAW,UAAU;AAC9B,WAAO;AAAA,EACT;AACA,MAAI,OAAO,eAAe,UAAU;AAClC,WAAO;AAAA,EACT;AACA,SAAO;AACT;AAEO,SAAS,kBAAkB,OAA2B;AAC3D,MAAI,OAAO,UAAU,UAAU;AAC7B,WAAO;AAAA,EACT;AACA,MAAI,iBAAiB,OAAO;AAC1B,QACE,MAAM,SAAS,WACf,MAAM,YAAY,SAAS,MAC3B,MAAM,YAAY,SAAS,MAAM,MACjC;AACA,aAAO;AAAA,QACL,GAAG;AAAA,QACH,SAAS,MAAM;AAAA,QACf,MAAM,MAAM,YAAY;AAAA,QACxB,OAAO,MAAM;AAAA,MACf;AAAA,IACF;AACA,WAAO;AAAA,EACT;AACA,MAAI,OAAO,UAAU,YAAY,UAAU,MAAM;AAC/C,WAAO;AAAA,EACT;AACA,SAAO,OAAO,KAAK;AACrB;","names":[]}
|
|
@@ -0,0 +1,56 @@
|
|
|
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 exportSerialization_exports = {};
|
|
20
|
+
__export(exportSerialization_exports, {
|
|
21
|
+
serializeInChunksToSpool: () => serializeInChunksToSpool
|
|
22
|
+
});
|
|
23
|
+
module.exports = __toCommonJS(exportSerialization_exports);
|
|
24
|
+
var import_core = require("@opentelemetry/core");
|
|
25
|
+
var import_logger = require('./logger.cjs');
|
|
26
|
+
const SERIALIZATION_CHUNK_SIZE = 32;
|
|
27
|
+
function serializeInChunksToSpool(items, serializeChunk, spool, signal, resultCallback) {
|
|
28
|
+
const appends = [];
|
|
29
|
+
try {
|
|
30
|
+
for (let start = 0; start < items.length; start += SERIALIZATION_CHUNK_SIZE) {
|
|
31
|
+
const payload = serializeChunk(items.slice(start, start + SERIALIZATION_CHUNK_SIZE));
|
|
32
|
+
if (payload) {
|
|
33
|
+
appends.push(spool.append(signal, payload));
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
} catch (error) {
|
|
37
|
+
(0, import_logger.logDebug)(`Error exporting ${signal}: ${String(error)}`);
|
|
38
|
+
resultCallback({ code: import_core.ExportResultCode.FAILED, error: toError(error) });
|
|
39
|
+
return;
|
|
40
|
+
}
|
|
41
|
+
Promise.all(appends).then(
|
|
42
|
+
() => resultCallback({ code: import_core.ExportResultCode.SUCCESS }),
|
|
43
|
+
(error) => resultCallback({
|
|
44
|
+
code: import_core.ExportResultCode.FAILED,
|
|
45
|
+
error: toError(error)
|
|
46
|
+
})
|
|
47
|
+
);
|
|
48
|
+
}
|
|
49
|
+
function toError(error) {
|
|
50
|
+
return error instanceof Error ? error : new Error(String(error));
|
|
51
|
+
}
|
|
52
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
53
|
+
0 && (module.exports = {
|
|
54
|
+
serializeInChunksToSpool
|
|
55
|
+
});
|
|
56
|
+
//# sourceMappingURL=exportSerialization.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/exportSerialization.ts"],"sourcesContent":["import { type ExportResult, ExportResultCode } from \"@opentelemetry/core\";\nimport { logDebug } from \"./logger.js\";\nimport type { Signal, Spool } from \"./spool.js\";\n\nconst SERIALIZATION_CHUNK_SIZE = 32;\n\nexport function serializeInChunksToSpool<Item>(\n items: Item[],\n serializeChunk: (chunk: Item[]) => Uint8Array | undefined,\n spool: Spool,\n signal: Signal,\n resultCallback: (result: ExportResult) => void,\n): void {\n const appends: Promise<void>[] = [];\n try {\n for (let start = 0; start < items.length; start += SERIALIZATION_CHUNK_SIZE) {\n const payload = serializeChunk(items.slice(start, start + SERIALIZATION_CHUNK_SIZE));\n if (payload) {\n appends.push(spool.append(signal, payload));\n }\n }\n } catch (error) {\n logDebug(`Error exporting ${signal}: ${String(error)}`);\n resultCallback({ code: ExportResultCode.FAILED, error: toError(error) });\n return;\n }\n Promise.all(appends).then(\n () => resultCallback({ code: ExportResultCode.SUCCESS }),\n (error: unknown) =>\n resultCallback({\n code: ExportResultCode.FAILED,\n error: toError(error),\n }),\n );\n}\n\nfunction toError(error: unknown): Error {\n return error instanceof Error ? error : new Error(String(error));\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,kBAAoD;AACpD,oBAAyB;AAGzB,MAAM,2BAA2B;AAE1B,SAAS,yBACd,OACA,gBACA,OACA,QACA,gBACM;AACN,QAAM,UAA2B,CAAC;AAClC,MAAI;AACF,aAAS,QAAQ,GAAG,QAAQ,MAAM,QAAQ,SAAS,0BAA0B;AAC3E,YAAM,UAAU,eAAe,MAAM,MAAM,OAAO,QAAQ,wBAAwB,CAAC;AACnF,UAAI,SAAS;AACX,gBAAQ,KAAK,MAAM,OAAO,QAAQ,OAAO,CAAC;AAAA,MAC5C;AAAA,IACF;AAAA,EACF,SAAS,OAAO;AACd,gCAAS,mBAAmB,MAAM,KAAK,OAAO,KAAK,CAAC,EAAE;AACtD,mBAAe,EAAE,MAAM,6BAAiB,QAAQ,OAAO,QAAQ,KAAK,EAAE,CAAC;AACvE;AAAA,EACF;AACA,UAAQ,IAAI,OAAO,EAAE;AAAA,IACnB,MAAM,eAAe,EAAE,MAAM,6BAAiB,QAAQ,CAAC;AAAA,IACvD,CAAC,UACC,eAAe;AAAA,MACb,MAAM,6BAAiB;AAAA,MACvB,OAAO,QAAQ,KAAK;AAAA,IACtB,CAAC;AAAA,EACL;AACF;AAEA,SAAS,QAAQ,OAAuB;AACtC,SAAO,iBAAiB,QAAQ,QAAQ,IAAI,MAAM,OAAO,KAAK,CAAC;AACjE;","names":[]}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { ExportResult } from '@opentelemetry/core';
|
|
2
|
+
import { Spool, Signal } from './spool.cjs';
|
|
3
|
+
import 'node:zlib';
|
|
4
|
+
|
|
5
|
+
declare function serializeInChunksToSpool<Item>(items: Item[], serializeChunk: (chunk: Item[]) => Uint8Array | undefined, spool: Spool, signal: Signal, resultCallback: (result: ExportResult) => void): void;
|
|
6
|
+
|
|
7
|
+
export { serializeInChunksToSpool };
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { ExportResult } from '@opentelemetry/core';
|
|
2
|
+
import { Spool, Signal } from './spool.js';
|
|
3
|
+
import 'node:zlib';
|
|
4
|
+
|
|
5
|
+
declare function serializeInChunksToSpool<Item>(items: Item[], serializeChunk: (chunk: Item[]) => Uint8Array | undefined, spool: Spool, signal: Signal, resultCallback: (result: ExportResult) => void): void;
|
|
6
|
+
|
|
7
|
+
export { serializeInChunksToSpool };
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { ExportResultCode } from "@opentelemetry/core";
|
|
2
|
+
import { logDebug } from "./logger.js";
|
|
3
|
+
const SERIALIZATION_CHUNK_SIZE = 32;
|
|
4
|
+
function serializeInChunksToSpool(items, serializeChunk, spool, signal, resultCallback) {
|
|
5
|
+
const appends = [];
|
|
6
|
+
try {
|
|
7
|
+
for (let start = 0; start < items.length; start += SERIALIZATION_CHUNK_SIZE) {
|
|
8
|
+
const payload = serializeChunk(items.slice(start, start + SERIALIZATION_CHUNK_SIZE));
|
|
9
|
+
if (payload) {
|
|
10
|
+
appends.push(spool.append(signal, payload));
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
} catch (error) {
|
|
14
|
+
logDebug(`Error exporting ${signal}: ${String(error)}`);
|
|
15
|
+
resultCallback({ code: ExportResultCode.FAILED, error: toError(error) });
|
|
16
|
+
return;
|
|
17
|
+
}
|
|
18
|
+
Promise.all(appends).then(
|
|
19
|
+
() => resultCallback({ code: ExportResultCode.SUCCESS }),
|
|
20
|
+
(error) => resultCallback({
|
|
21
|
+
code: ExportResultCode.FAILED,
|
|
22
|
+
error: toError(error)
|
|
23
|
+
})
|
|
24
|
+
);
|
|
25
|
+
}
|
|
26
|
+
function toError(error) {
|
|
27
|
+
return error instanceof Error ? error : new Error(String(error));
|
|
28
|
+
}
|
|
29
|
+
export {
|
|
30
|
+
serializeInChunksToSpool
|
|
31
|
+
};
|
|
32
|
+
//# sourceMappingURL=exportSerialization.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/exportSerialization.ts"],"sourcesContent":["import { type ExportResult, ExportResultCode } from \"@opentelemetry/core\";\nimport { logDebug } from \"./logger.js\";\nimport type { Signal, Spool } from \"./spool.js\";\n\nconst SERIALIZATION_CHUNK_SIZE = 32;\n\nexport function serializeInChunksToSpool<Item>(\n items: Item[],\n serializeChunk: (chunk: Item[]) => Uint8Array | undefined,\n spool: Spool,\n signal: Signal,\n resultCallback: (result: ExportResult) => void,\n): void {\n const appends: Promise<void>[] = [];\n try {\n for (let start = 0; start < items.length; start += SERIALIZATION_CHUNK_SIZE) {\n const payload = serializeChunk(items.slice(start, start + SERIALIZATION_CHUNK_SIZE));\n if (payload) {\n appends.push(spool.append(signal, payload));\n }\n }\n } catch (error) {\n logDebug(`Error exporting ${signal}: ${String(error)}`);\n resultCallback({ code: ExportResultCode.FAILED, error: toError(error) });\n return;\n }\n Promise.all(appends).then(\n () => resultCallback({ code: ExportResultCode.SUCCESS }),\n (error: unknown) =>\n resultCallback({\n code: ExportResultCode.FAILED,\n error: toError(error),\n }),\n );\n}\n\nfunction toError(error: unknown): Error {\n return error instanceof Error ? error : new Error(String(error));\n}\n"],"mappings":"AAAA,SAA4B,wBAAwB;AACpD,SAAS,gBAAgB;AAGzB,MAAM,2BAA2B;AAE1B,SAAS,yBACd,OACA,gBACA,OACA,QACA,gBACM;AACN,QAAM,UAA2B,CAAC;AAClC,MAAI;AACF,aAAS,QAAQ,GAAG,QAAQ,MAAM,QAAQ,SAAS,0BAA0B;AAC3E,YAAM,UAAU,eAAe,MAAM,MAAM,OAAO,QAAQ,wBAAwB,CAAC;AACnF,UAAI,SAAS;AACX,gBAAQ,KAAK,MAAM,OAAO,QAAQ,OAAO,CAAC;AAAA,MAC5C;AAAA,IACF;AAAA,EACF,SAAS,OAAO;AACd,aAAS,mBAAmB,MAAM,KAAK,OAAO,KAAK,CAAC,EAAE;AACtD,mBAAe,EAAE,MAAM,iBAAiB,QAAQ,OAAO,QAAQ,KAAK,EAAE,CAAC;AACvE;AAAA,EACF;AACA,UAAQ,IAAI,OAAO,EAAE;AAAA,IACnB,MAAM,eAAe,EAAE,MAAM,iBAAiB,QAAQ,CAAC;AAAA,IACvD,CAAC,UACC,eAAe;AAAA,MACb,MAAM,iBAAiB;AAAA,MACvB,OAAO,QAAQ,KAAK;AAAA,IACtB,CAAC;AAAA,EACL;AACF;AAEA,SAAS,QAAQ,OAAuB;AACtC,SAAO,iBAAiB,QAAQ,QAAQ,IAAI,MAAM,OAAO,KAAK,CAAC;AACjE;","names":[]}
|