@sentry/node 8.54.0 → 9.0.0-alpha.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/cjs/cron/common.js +1 -1
- package/build/cjs/cron/cron.js +1 -1
- package/build/cjs/cron/index.js +1 -1
- package/build/cjs/cron/node-cron.js +10 -11
- package/build/cjs/cron/node-cron.js.map +1 -1
- package/build/cjs/cron/node-schedule.js +2 -6
- package/build/cjs/cron/node-schedule.js.map +1 -1
- package/build/cjs/debug-build.js +1 -1
- package/build/cjs/index.js +3 -15
- package/build/cjs/index.js.map +1 -1
- package/build/cjs/integrations/anr/index.js +8 -13
- package/build/cjs/integrations/anr/index.js.map +1 -1
- package/build/cjs/integrations/childProcess.js +19 -24
- package/build/cjs/integrations/childProcess.js.map +1 -1
- package/build/cjs/integrations/console.js +1 -1
- package/build/cjs/integrations/context.js +16 -19
- package/build/cjs/integrations/context.js.map +1 -1
- package/build/cjs/integrations/contextlines.js +6 -10
- package/build/cjs/integrations/contextlines.js.map +1 -1
- package/build/cjs/integrations/fs.js +1 -1
- package/build/cjs/integrations/http/SentryHttpInstrumentation.js +99 -19
- package/build/cjs/integrations/http/SentryHttpInstrumentation.js.map +1 -1
- package/build/cjs/integrations/http/index.js +32 -46
- package/build/cjs/integrations/http/index.js.map +1 -1
- package/build/cjs/integrations/http/vendor/getRequestInfo.js +1 -1
- package/build/cjs/integrations/http/vendor/getRequestInfo.js.map +1 -1
- package/build/cjs/integrations/local-variables/common.js +1 -1
- package/build/cjs/integrations/local-variables/index.js +1 -1
- package/build/cjs/integrations/local-variables/local-variables-async.js +4 -8
- package/build/cjs/integrations/local-variables/local-variables-async.js.map +1 -1
- package/build/cjs/integrations/local-variables/local-variables-sync.js +18 -22
- package/build/cjs/integrations/local-variables/local-variables-sync.js.map +1 -1
- package/build/cjs/integrations/modules.js +2 -2
- package/build/cjs/integrations/modules.js.map +1 -1
- package/build/cjs/integrations/node-fetch.js +3 -7
- package/build/cjs/integrations/node-fetch.js.map +1 -1
- package/build/cjs/integrations/onuncaughtexception.js +1 -1
- package/build/cjs/integrations/onunhandledrejection.js +1 -1
- package/build/cjs/integrations/processSession.js +36 -0
- package/build/cjs/integrations/processSession.js.map +1 -0
- package/build/cjs/integrations/spotlight.js +2 -2
- package/build/cjs/integrations/spotlight.js.map +1 -1
- package/build/cjs/integrations/tracing/amqplib.js +1 -1
- package/build/cjs/integrations/tracing/connect.js +2 -2
- package/build/cjs/integrations/tracing/connect.js.map +1 -1
- package/build/cjs/integrations/tracing/dataloader.js +2 -6
- package/build/cjs/integrations/tracing/dataloader.js.map +1 -1
- package/build/cjs/integrations/tracing/express.js +4 -31
- package/build/cjs/integrations/tracing/express.js.map +1 -1
- package/build/cjs/integrations/tracing/fastify.js +3 -7
- package/build/cjs/integrations/tracing/fastify.js.map +1 -1
- package/build/cjs/integrations/tracing/genericPool.js +1 -1
- package/build/cjs/integrations/tracing/graphql.js +5 -5
- package/build/cjs/integrations/tracing/graphql.js.map +1 -1
- package/build/cjs/integrations/tracing/hapi/index.js +5 -9
- package/build/cjs/integrations/tracing/hapi/index.js.map +1 -1
- package/build/cjs/integrations/tracing/index.js +1 -6
- package/build/cjs/integrations/tracing/index.js.map +1 -1
- package/build/cjs/integrations/tracing/kafka.js +1 -1
- package/build/cjs/integrations/tracing/knex.js +2 -2
- package/build/cjs/integrations/tracing/knex.js.map +1 -1
- package/build/cjs/integrations/tracing/koa.js +4 -8
- package/build/cjs/integrations/tracing/koa.js.map +1 -1
- package/build/cjs/integrations/tracing/lrumemoizer.js +1 -1
- package/build/cjs/integrations/tracing/mongo.js +1 -1
- package/build/cjs/integrations/tracing/mongoose.js +1 -1
- package/build/cjs/integrations/tracing/mysql.js +1 -1
- package/build/cjs/integrations/tracing/mysql2.js +1 -1
- package/build/cjs/integrations/tracing/postgres.js +1 -1
- package/build/cjs/integrations/tracing/prisma.js +21 -67
- package/build/cjs/integrations/tracing/prisma.js.map +1 -1
- package/build/cjs/integrations/tracing/redis.js +4 -8
- package/build/cjs/integrations/tracing/redis.js.map +1 -1
- package/build/cjs/integrations/tracing/tedious.js +3 -7
- package/build/cjs/integrations/tracing/tedious.js.map +1 -1
- package/build/cjs/integrations/tracing/vercelai/index.js +14 -20
- package/build/cjs/integrations/tracing/vercelai/index.js.map +1 -1
- package/build/cjs/integrations/tracing/vercelai/instrumentation.js +1 -1
- package/build/cjs/nodeVersion.js +1 -1
- package/build/cjs/otel/contextManager.js +2 -2
- package/build/cjs/otel/contextManager.js.map +1 -1
- package/build/cjs/otel/instrument.js +1 -1
- package/build/cjs/proxy/base.js +30 -33
- package/build/cjs/proxy/base.js.map +1 -1
- package/build/cjs/proxy/index.js +3 -8
- package/build/cjs/proxy/index.js.map +1 -1
- package/build/cjs/proxy/parse-proxy-response.js +2 -2
- package/build/cjs/proxy/parse-proxy-response.js.map +1 -1
- package/build/cjs/sdk/api.js +2 -2
- package/build/cjs/sdk/api.js.map +1 -1
- package/build/cjs/sdk/client.js +3 -8
- package/build/cjs/sdk/client.js.map +1 -1
- package/build/cjs/sdk/index.js +5 -58
- package/build/cjs/sdk/index.js.map +1 -1
- package/build/cjs/sdk/initOtel.js +8 -22
- package/build/cjs/sdk/initOtel.js.map +1 -1
- package/build/cjs/transports/http.js +10 -16
- package/build/cjs/transports/http.js.map +1 -1
- package/build/cjs/utils/addOriginToSpan.js +1 -1
- package/build/cjs/utils/commonjs.js +1 -1
- package/build/cjs/utils/createMissingInstrumentationContext.js +1 -1
- package/build/cjs/utils/debug.js +1 -1
- package/build/cjs/utils/ensureIsWrapped.js +2 -6
- package/build/cjs/utils/ensureIsWrapped.js.map +1 -1
- package/build/cjs/utils/envToBool.js +2 -2
- package/build/cjs/utils/envToBool.js.map +1 -1
- package/build/cjs/utils/errorhandling.js +2 -3
- package/build/cjs/utils/errorhandling.js.map +1 -1
- package/build/cjs/utils/getRequestUrl.js +1 -1
- package/build/cjs/utils/module.js +1 -1
- package/build/cjs/utils/module.js.map +1 -1
- package/build/cjs/utils/redisCache.js +1 -4
- package/build/cjs/utils/redisCache.js.map +1 -1
- package/build/esm/cron/node-cron.js +9 -7
- package/build/esm/cron/node-cron.js.map +1 -1
- package/build/esm/cron/node-schedule.js +1 -2
- package/build/esm/cron/node-schedule.js.map +1 -1
- package/build/esm/index.js +3 -4
- package/build/esm/index.js.map +1 -1
- package/build/esm/integrations/anr/index.js +8 -9
- package/build/esm/integrations/anr/index.js.map +1 -1
- package/build/esm/integrations/anr/worker-script.js +2 -2
- package/build/esm/integrations/childProcess.js +20 -24
- package/build/esm/integrations/childProcess.js.map +1 -1
- package/build/esm/integrations/context.js +15 -15
- package/build/esm/integrations/context.js.map +1 -1
- package/build/esm/integrations/contextlines.js +5 -6
- package/build/esm/integrations/contextlines.js.map +1 -1
- package/build/esm/integrations/http/SentryHttpInstrumentation.js +99 -20
- package/build/esm/integrations/http/SentryHttpInstrumentation.js.map +1 -1
- package/build/esm/integrations/http/index.js +32 -43
- package/build/esm/integrations/http/index.js.map +1 -1
- package/build/esm/integrations/http/vendor/getRequestInfo.js.map +1 -1
- package/build/esm/integrations/local-variables/local-variables-async.js +3 -4
- package/build/esm/integrations/local-variables/local-variables-async.js.map +1 -1
- package/build/esm/integrations/local-variables/local-variables-sync.js +17 -18
- package/build/esm/integrations/local-variables/local-variables-sync.js.map +1 -1
- package/build/esm/integrations/local-variables/worker-script.js +2 -2
- package/build/esm/integrations/modules.js +1 -1
- package/build/esm/integrations/modules.js.map +1 -1
- package/build/esm/integrations/node-fetch.js +3 -4
- package/build/esm/integrations/node-fetch.js.map +1 -1
- package/build/esm/integrations/processSession.js +34 -0
- package/build/esm/integrations/processSession.js.map +1 -0
- package/build/esm/integrations/spotlight.js +1 -1
- package/build/esm/integrations/spotlight.js.map +1 -1
- package/build/esm/integrations/tracing/connect.js +1 -1
- package/build/esm/integrations/tracing/connect.js.map +1 -1
- package/build/esm/integrations/tracing/dataloader.js +1 -2
- package/build/esm/integrations/tracing/dataloader.js.map +1 -1
- package/build/esm/integrations/tracing/express.js +4 -28
- package/build/esm/integrations/tracing/express.js.map +1 -1
- package/build/esm/integrations/tracing/fastify.js +2 -3
- package/build/esm/integrations/tracing/fastify.js.map +1 -1
- package/build/esm/integrations/tracing/graphql.js +4 -4
- package/build/esm/integrations/tracing/graphql.js.map +1 -1
- package/build/esm/integrations/tracing/hapi/index.js +4 -5
- package/build/esm/integrations/tracing/hapi/index.js.map +1 -1
- package/build/esm/integrations/tracing/index.js +0 -5
- package/build/esm/integrations/tracing/index.js.map +1 -1
- package/build/esm/integrations/tracing/knex.js +1 -1
- package/build/esm/integrations/tracing/knex.js.map +1 -1
- package/build/esm/integrations/tracing/koa.js +3 -4
- package/build/esm/integrations/tracing/koa.js.map +1 -1
- package/build/esm/integrations/tracing/prisma.js +21 -64
- package/build/esm/integrations/tracing/prisma.js.map +1 -1
- package/build/esm/integrations/tracing/redis.js +4 -5
- package/build/esm/integrations/tracing/redis.js.map +1 -1
- package/build/esm/integrations/tracing/tedious.js +2 -3
- package/build/esm/integrations/tracing/tedious.js.map +1 -1
- package/build/esm/integrations/tracing/vercelai/index.js +13 -16
- package/build/esm/integrations/tracing/vercelai/index.js.map +1 -1
- package/build/esm/otel/contextManager.js +1 -1
- package/build/esm/otel/contextManager.js.map +1 -1
- package/build/esm/package.json +1 -1
- package/build/esm/proxy/base.js +29 -29
- package/build/esm/proxy/base.js.map +1 -1
- package/build/esm/proxy/index.js +2 -3
- package/build/esm/proxy/index.js.map +1 -1
- package/build/esm/proxy/parse-proxy-response.js +1 -1
- package/build/esm/proxy/parse-proxy-response.js.map +1 -1
- package/build/esm/sdk/api.js +1 -1
- package/build/esm/sdk/api.js.map +1 -1
- package/build/esm/sdk/client.js +2 -3
- package/build/esm/sdk/client.js.map +1 -1
- package/build/esm/sdk/index.js +5 -58
- package/build/esm/sdk/index.js.map +1 -1
- package/build/esm/sdk/initOtel.js +7 -18
- package/build/esm/sdk/initOtel.js.map +1 -1
- package/build/esm/transports/http.js +9 -12
- package/build/esm/transports/http.js.map +1 -1
- package/build/esm/utils/ensureIsWrapped.js +1 -2
- package/build/esm/utils/ensureIsWrapped.js.map +1 -1
- package/build/esm/utils/envToBool.js +1 -1
- package/build/esm/utils/envToBool.js.map +1 -1
- package/build/esm/utils/errorhandling.js +1 -2
- package/build/esm/utils/errorhandling.js.map +1 -1
- package/build/esm/utils/module.js.map +1 -1
- package/build/esm/utils/redisCache.js +0 -3
- package/build/esm/utils/redisCache.js.map +1 -1
- package/build/types/cron/node-cron.d.ts +1 -1
- package/build/types/cron/node-cron.d.ts.map +1 -1
- package/build/types/index.d.ts +4 -6
- package/build/types/index.d.ts.map +1 -1
- package/build/types/integrations/childProcess.d.ts +7 -7
- package/build/types/integrations/childProcess.d.ts.map +1 -1
- package/build/types/integrations/http/SentryHttpInstrumentation.d.ts +30 -0
- package/build/types/integrations/http/SentryHttpInstrumentation.d.ts.map +1 -1
- package/build/types/integrations/http/index.d.ts +11 -8
- package/build/types/integrations/http/index.d.ts.map +1 -1
- package/build/types/integrations/processSession.d.ts +5 -0
- package/build/types/integrations/processSession.d.ts.map +1 -0
- package/build/types/integrations/tracing/express.d.ts.map +1 -1
- package/build/types/integrations/tracing/hapi/types.d.ts +1 -0
- package/build/types/integrations/tracing/hapi/types.d.ts.map +1 -1
- package/build/types/integrations/tracing/index.d.ts.map +1 -1
- package/build/types/integrations/tracing/prisma.d.ts +11 -12
- package/build/types/integrations/tracing/prisma.d.ts.map +1 -1
- package/build/types/integrations/tracing/vercelai/index.d.ts.map +1 -1
- package/build/types/otel/contextManager.d.ts +1 -1
- package/build/types/proxy/helpers.d.ts +1 -0
- package/build/types/proxy/helpers.d.ts.map +1 -1
- package/build/types/proxy/parse-proxy-response.d.ts +1 -0
- package/build/types/proxy/parse-proxy-response.d.ts.map +1 -1
- package/build/types/sdk/index.d.ts.map +1 -1
- package/build/types/sdk/initOtel.d.ts +1 -3
- package/build/types/sdk/initOtel.d.ts.map +1 -1
- package/build/types/transports/http-module.d.ts +1 -0
- package/build/types/transports/http-module.d.ts.map +1 -1
- package/build/types/transports/http.d.ts +1 -0
- package/build/types/transports/http.d.ts.map +1 -1
- package/build/types/types.d.ts +2 -48
- package/build/types/types.d.ts.map +1 -1
- package/build/types/utils/errorhandling.d.ts.map +1 -1
- package/build/types-ts3.8/cron/node-cron.d.ts +1 -1
- package/build/types-ts3.8/index.d.ts +4 -6
- package/build/types-ts3.8/integrations/childProcess.d.ts +7 -7
- package/build/types-ts3.8/integrations/http/SentryHttpInstrumentation.d.ts +29 -0
- package/build/types-ts3.8/integrations/http/index.d.ts +11 -8
- package/build/types-ts3.8/integrations/processSession.d.ts +5 -0
- package/build/types-ts3.8/integrations/tracing/prisma.d.ts +11 -12
- package/build/types-ts3.8/otel/contextManager.d.ts +1 -1
- package/build/types-ts3.8/sdk/initOtel.d.ts +1 -3
- package/build/types-ts3.8/types.d.ts +2 -48
- package/package.json +8 -9
- package/build/cjs/integrations/tracing/nest/helpers.js +0 -100
- package/build/cjs/integrations/tracing/nest/helpers.js.map +0 -1
- package/build/cjs/integrations/tracing/nest/nest.js +0 -148
- package/build/cjs/integrations/tracing/nest/nest.js.map +0 -1
- package/build/cjs/integrations/tracing/nest/sentry-nest-event-instrumentation.js +0 -117
- package/build/cjs/integrations/tracing/nest/sentry-nest-event-instrumentation.js.map +0 -1
- package/build/cjs/integrations/tracing/nest/sentry-nest-instrumentation.js +0 -301
- package/build/cjs/integrations/tracing/nest/sentry-nest-instrumentation.js.map +0 -1
- package/build/esm/integrations/tracing/nest/helpers.js +0 -91
- package/build/esm/integrations/tracing/nest/helpers.js.map +0 -1
- package/build/esm/integrations/tracing/nest/nest.js +0 -141
- package/build/esm/integrations/tracing/nest/nest.js.map +0 -1
- package/build/esm/integrations/tracing/nest/sentry-nest-event-instrumentation.js +0 -115
- package/build/esm/integrations/tracing/nest/sentry-nest-event-instrumentation.js.map +0 -1
- package/build/esm/integrations/tracing/nest/sentry-nest-instrumentation.js +0 -295
- package/build/esm/integrations/tracing/nest/sentry-nest-instrumentation.js.map +0 -1
- package/build/types/integrations/tracing/nest/helpers.d.ts +0 -36
- package/build/types/integrations/tracing/nest/helpers.d.ts.map +0 -1
- package/build/types/integrations/tracing/nest/nest.d.ts +0 -19
- package/build/types/integrations/tracing/nest/nest.d.ts.map +0 -1
- package/build/types/integrations/tracing/nest/sentry-nest-event-instrumentation.d.ts +0 -27
- package/build/types/integrations/tracing/nest/sentry-nest-event-instrumentation.d.ts.map +0 -1
- package/build/types/integrations/tracing/nest/sentry-nest-instrumentation.d.ts +0 -37
- package/build/types/integrations/tracing/nest/sentry-nest-instrumentation.d.ts.map +0 -1
- package/build/types/integrations/tracing/nest/types.d.ts +0 -84
- package/build/types/integrations/tracing/nest/types.d.ts.map +0 -1
- package/build/types/integrations/tracing/prisma/vendor/v5-tracing-helper.d.ts +0 -38
- package/build/types/integrations/tracing/prisma/vendor/v5-tracing-helper.d.ts.map +0 -1
- package/build/types/integrations/tracing/prisma/vendor/v6-tracing-helper.d.ts +0 -31
- package/build/types/integrations/tracing/prisma/vendor/v6-tracing-helper.d.ts.map +0 -1
- package/build/types-ts3.8/integrations/tracing/nest/helpers.d.ts +0 -36
- package/build/types-ts3.8/integrations/tracing/nest/nest.d.ts +0 -19
- package/build/types-ts3.8/integrations/tracing/nest/sentry-nest-event-instrumentation.d.ts +0 -27
- package/build/types-ts3.8/integrations/tracing/nest/sentry-nest-instrumentation.d.ts +0 -37
- package/build/types-ts3.8/integrations/tracing/nest/types.d.ts +0 -84
- package/build/types-ts3.8/integrations/tracing/prisma/vendor/v5-tracing-helper.d.ts +0 -44
- package/build/types-ts3.8/integrations/tracing/prisma/vendor/v6-tracing-helper.d.ts +0 -34
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"sentry-nest-instrumentation.js","sources":["../../../../../src/integrations/tracing/nest/sentry-nest-instrumentation.ts"],"sourcesContent":["import { isWrapped } from '@opentelemetry/core';\nimport type { InstrumentationConfig } from '@opentelemetry/instrumentation';\nimport {\n InstrumentationBase,\n InstrumentationNodeModuleDefinition,\n InstrumentationNodeModuleFile,\n} from '@opentelemetry/instrumentation';\nimport type { Span } from '@sentry/core';\nimport {\n SDK_VERSION,\n addNonEnumerableProperty,\n getActiveSpan,\n isThenable,\n startInactiveSpan,\n startSpan,\n startSpanManual,\n withActiveSpan,\n} from '@sentry/core';\nimport { getMiddlewareSpanOptions, getNextProxy, instrumentObservable, isPatched } from './helpers';\nimport type { CallHandler, CatchTarget, InjectableTarget, MinimalNestJsExecutionContext, Observable } from './types';\n\nconst supportedVersions = ['>=8.0.0 <11'];\n\n/**\n * Custom instrumentation for nestjs.\n *\n * This hooks into\n * 1. @Injectable decorator, which is applied on class middleware, interceptors and guards.\n * 2. @Catch decorator, which is applied on exception filters.\n */\nexport class SentryNestInstrumentation extends InstrumentationBase {\n public static readonly COMPONENT = '@nestjs/common';\n public static readonly COMMON_ATTRIBUTES = {\n component: SentryNestInstrumentation.COMPONENT,\n };\n\n public constructor(config: InstrumentationConfig = {}) {\n super('sentry-nestjs', SDK_VERSION, config);\n }\n\n /**\n * Initializes the instrumentation by defining the modules to be patched.\n */\n public init(): InstrumentationNodeModuleDefinition {\n const moduleDef = new InstrumentationNodeModuleDefinition(SentryNestInstrumentation.COMPONENT, supportedVersions);\n\n moduleDef.files.push(\n this._getInjectableFileInstrumentation(supportedVersions),\n this._getCatchFileInstrumentation(supportedVersions),\n );\n return moduleDef;\n }\n\n /**\n * Wraps the @Injectable decorator.\n */\n private _getInjectableFileInstrumentation(versions: string[]): InstrumentationNodeModuleFile {\n return new InstrumentationNodeModuleFile(\n '@nestjs/common/decorators/core/injectable.decorator.js',\n versions,\n (moduleExports: { Injectable: InjectableTarget }) => {\n if (isWrapped(moduleExports.Injectable)) {\n this._unwrap(moduleExports, 'Injectable');\n }\n this._wrap(moduleExports, 'Injectable', this._createWrapInjectable());\n return moduleExports;\n },\n (moduleExports: { Injectable: InjectableTarget }) => {\n this._unwrap(moduleExports, 'Injectable');\n },\n );\n }\n\n /**\n * Wraps the @Catch decorator.\n */\n private _getCatchFileInstrumentation(versions: string[]): InstrumentationNodeModuleFile {\n return new InstrumentationNodeModuleFile(\n '@nestjs/common/decorators/core/catch.decorator.js',\n versions,\n (moduleExports: { Catch: CatchTarget }) => {\n if (isWrapped(moduleExports.Catch)) {\n this._unwrap(moduleExports, 'Catch');\n }\n this._wrap(moduleExports, 'Catch', this._createWrapCatch());\n return moduleExports;\n },\n (moduleExports: { Catch: CatchTarget }) => {\n this._unwrap(moduleExports, 'Catch');\n },\n );\n }\n\n /**\n * Creates a wrapper function for the @Injectable decorator.\n */\n private _createWrapInjectable() {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return function wrapInjectable(original: any) {\n return function wrappedInjectable(options?: unknown) {\n return function (target: InjectableTarget) {\n // patch middleware\n if (typeof target.prototype.use === 'function' && !target.__SENTRY_INTERNAL__) {\n // patch only once\n if (isPatched(target)) {\n return original(options)(target);\n }\n\n target.prototype.use = new Proxy(target.prototype.use, {\n apply: (originalUse, thisArgUse, argsUse) => {\n const [req, res, next, ...args] = argsUse;\n\n // Check that we can reasonably assume that the target is a middleware.\n // Without these guards, instrumentation will fail if a function named 'use' on a service, which is\n // decorated with @Injectable, is called.\n if (!req || !res || !next || typeof next !== 'function') {\n return originalUse.apply(thisArgUse, argsUse);\n }\n\n const prevSpan = getActiveSpan();\n\n return startSpanManual(getMiddlewareSpanOptions(target), (span: Span) => {\n // proxy next to end span on call\n const nextProxy = getNextProxy(next, span, prevSpan);\n return originalUse.apply(thisArgUse, [req, res, nextProxy, args]);\n });\n },\n });\n }\n\n // patch guards\n if (typeof target.prototype.canActivate === 'function' && !target.__SENTRY_INTERNAL__) {\n // patch only once\n if (isPatched(target)) {\n return original(options)(target);\n }\n\n target.prototype.canActivate = new Proxy(target.prototype.canActivate, {\n apply: (originalCanActivate, thisArgCanActivate, argsCanActivate) => {\n const context: MinimalNestJsExecutionContext = argsCanActivate[0];\n\n if (!context) {\n return originalCanActivate.apply(thisArgCanActivate, argsCanActivate);\n }\n\n return startSpan(getMiddlewareSpanOptions(target), () => {\n return originalCanActivate.apply(thisArgCanActivate, argsCanActivate);\n });\n },\n });\n }\n\n // patch pipes\n if (typeof target.prototype.transform === 'function' && !target.__SENTRY_INTERNAL__) {\n if (isPatched(target)) {\n return original(options)(target);\n }\n\n target.prototype.transform = new Proxy(target.prototype.transform, {\n apply: (originalTransform, thisArgTransform, argsTransform) => {\n const value = argsTransform[0];\n const metadata = argsTransform[1];\n\n if (!value || !metadata) {\n return originalTransform.apply(thisArgTransform, argsTransform);\n }\n\n return startSpan(getMiddlewareSpanOptions(target), () => {\n return originalTransform.apply(thisArgTransform, argsTransform);\n });\n },\n });\n }\n\n // patch interceptors\n if (typeof target.prototype.intercept === 'function' && !target.__SENTRY_INTERNAL__) {\n if (isPatched(target)) {\n return original(options)(target);\n }\n\n target.prototype.intercept = new Proxy(target.prototype.intercept, {\n apply: (originalIntercept, thisArgIntercept, argsIntercept) => {\n const context: MinimalNestJsExecutionContext = argsIntercept[0];\n const next: CallHandler = argsIntercept[1];\n\n const parentSpan = getActiveSpan();\n let afterSpan: Span;\n\n // Check that we can reasonably assume that the target is an interceptor.\n if (!context || !next || typeof next.handle !== 'function') {\n return originalIntercept.apply(thisArgIntercept, argsIntercept);\n }\n\n return startSpanManual(getMiddlewareSpanOptions(target), (beforeSpan: Span) => {\n // eslint-disable-next-line @typescript-eslint/unbound-method\n next.handle = new Proxy(next.handle, {\n apply: (originalHandle, thisArgHandle, argsHandle) => {\n beforeSpan.end();\n\n if (parentSpan) {\n return withActiveSpan(parentSpan, () => {\n const handleReturnObservable = Reflect.apply(originalHandle, thisArgHandle, argsHandle);\n\n if (!context._sentryInterceptorInstrumented) {\n addNonEnumerableProperty(context, '_sentryInterceptorInstrumented', true);\n afterSpan = startInactiveSpan(\n getMiddlewareSpanOptions(target, 'Interceptors - After Route'),\n );\n }\n\n return handleReturnObservable;\n });\n } else {\n const handleReturnObservable = Reflect.apply(originalHandle, thisArgHandle, argsHandle);\n\n if (!context._sentryInterceptorInstrumented) {\n addNonEnumerableProperty(context, '_sentryInterceptorInstrumented', true);\n afterSpan = startInactiveSpan(getMiddlewareSpanOptions(target, 'Interceptors - After Route'));\n }\n\n return handleReturnObservable;\n }\n },\n });\n\n let returnedObservableInterceptMaybePromise: Observable<unknown> | Promise<Observable<unknown>>;\n\n try {\n returnedObservableInterceptMaybePromise = originalIntercept.apply(thisArgIntercept, argsIntercept);\n } catch (e) {\n beforeSpan?.end();\n afterSpan?.end();\n throw e;\n }\n\n if (!afterSpan) {\n return returnedObservableInterceptMaybePromise;\n }\n\n // handle async interceptor\n if (isThenable(returnedObservableInterceptMaybePromise)) {\n return returnedObservableInterceptMaybePromise.then(\n observable => {\n instrumentObservable(observable, afterSpan ?? parentSpan);\n return observable;\n },\n e => {\n beforeSpan?.end();\n afterSpan?.end();\n throw e;\n },\n );\n }\n\n // handle sync interceptor\n if (typeof returnedObservableInterceptMaybePromise.subscribe === 'function') {\n instrumentObservable(returnedObservableInterceptMaybePromise, afterSpan ?? parentSpan);\n }\n\n return returnedObservableInterceptMaybePromise;\n });\n },\n });\n }\n\n return original(options)(target);\n };\n };\n };\n }\n\n /**\n * Creates a wrapper function for the @Catch decorator. Used to instrument exception filters.\n */\n private _createWrapCatch() {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return function wrapCatch(original: any) {\n return function wrappedCatch(...exceptions: unknown[]) {\n return function (target: CatchTarget) {\n if (typeof target.prototype.catch === 'function' && !target.__SENTRY_INTERNAL__) {\n // patch only once\n if (isPatched(target)) {\n return original(...exceptions)(target);\n }\n\n target.prototype.catch = new Proxy(target.prototype.catch, {\n apply: (originalCatch, thisArgCatch, argsCatch) => {\n const exception = argsCatch[0];\n const host = argsCatch[1];\n\n if (!exception || !host) {\n return originalCatch.apply(thisArgCatch, argsCatch);\n }\n\n return startSpan(getMiddlewareSpanOptions(target), () => {\n return originalCatch.apply(thisArgCatch, argsCatch);\n });\n },\n });\n }\n\n return original(...exceptions)(target);\n };\n };\n };\n }\n}\n"],"names":["InstrumentationBase","SDK_VERSION","InstrumentationNodeModuleDefinition","InstrumentationNodeModuleFile","isWrapped","isPatched","getActiveSpan","startSpanManual","getMiddlewareSpanOptions","getNextProxy","startSpan","withActiveSpan","addNonEnumerableProperty","startInactiveSpan","isThenable","instrumentObservable"],"mappings":";;;;;;;;;;;;AAqBA,CAAA,CAAA,CAAA,CAAA,EAAM,CAAkB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,EAAE,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAa,CAAC;;AAEzC,CAAA,CAAA;CACA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;CACA;CACA,EAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA;CACA,EAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;CACA,EAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;CACA,CAAA;AACO,CAAM,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAkCA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAoB;GAC1D,CAAA,CAAA,CAAA,CAAA,CAAA,GAAgB,YAAA,CAAA,EAAA,CAAA,IAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAY,CAAgB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;GAC5C,QAAgB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,kBAAoB,EAAA;IACzC,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAE,CAAyB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;EAC/C,CAAA,CAAA;;GAEM,CAAW,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAM,CAAA,CAAA,CAAA,CAAA,EAAA,EAA0B,EAAE,EAAE;IACrD,KAAK,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAe,EAAEC,CAAW,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAE,MAAM,CAAC;EAC/C;;EAEA,CAAA,CAAA;GACA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;GACA,CAAA;GACS,IAAI,CAAwC,EAAA;IACjD,CAAA,CAAA,CAAA,CAAA,EAAM,CAAU,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,EAAE,CAAIC,CAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAmC,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAyB,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,EAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAiB,CAAC;;IAEjH,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAK,CAAA,CAAA,CAAA,CAAA,CAAC,CAAI,CAAA,CAAA,CAAA;MAClB,CAAI,CAAA,CAAA,CAAA,CAAC,CAAiC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,iBAAiB,CAAC;MACzD,CAAI,CAAA,CAAA,CAAA,CAAC,CAA4B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,iBAAiB,CAAC;IACrD,CAAA;IACD,OAAO,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;EACpB;;EAEA,CAAA,CAAA;GACA,EAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;GACA,CAAA;GACU,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAiC,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,EAA2C;IAC3F,CAAA,CAAA,CAAA,CAAA,CAAA,EAAO,IAAIC,CAA6B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;MACtC,CAAwD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;MACxD,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;MACR,CAAC,aAAa,EAAuC,CAAA,EAAA;QACnD,IAAIC,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,aAAa,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAAC,EAAE;UACvC,IAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAC,CAAa,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAE,YAAY,CAAC;QACnD;QACQ,CAAI,CAAA,CAAA,CAAA,CAAC,CAAK,CAAA,CAAA,CAAA,CAAA,CAAC,CAAa,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAE,CAAY,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAE,CAAI,CAAA,CAAA,CAAA,CAAC,CAAqB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAE,CAAC;QACrE,OAAO,CAAa,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;MACrB,CAAA;MACD,CAAC,aAAa,EAAuC,CAAA,EAAA;QACnD,IAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAC,CAAa,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAE,YAAY,CAAC;MAC1C,CAAA;IACF,CAAA;EACL;;EAEA,CAAA,CAAA;GACA,EAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;GACA,CAAA;GACU,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAA4B,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,EAA2C;IACtF,CAAA,CAAA,CAAA,CAAA,CAAA,EAAO,IAAID,CAA6B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;MACtC,CAAmD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;MACnD,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;MACR,CAAC,aAAa,EAA6B,CAAA,EAAA;QACzC,IAAIC,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,aAAa,CAAC,CAAA,CAAA,CAAA,CAAA,CAAK,CAAC,EAAE;UAClC,IAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAC,CAAa,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAE,OAAO,CAAC;QAC9C;QACQ,CAAI,CAAA,CAAA,CAAA,CAAC,CAAK,CAAA,CAAA,CAAA,CAAA,CAAC,CAAa,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAE,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAE,CAAI,CAAA,CAAA,CAAA,CAAC,CAAgB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAE,CAAC;QAC3D,OAAO,CAAa,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;MACrB,CAAA;MACD,CAAC,aAAa,EAA6B,CAAA,EAAA;QACzC,IAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAC,CAAa,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAE,OAAO,CAAC;MACrC,CAAA;IACF,CAAA;EACL;;EAEA,CAAA,CAAA;GACA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,EAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;GACA,CAAA;GACU,qBAAqB,CAAG,EAAA;IAClC,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;IACI,CAAO,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAS,CAAc,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,QAAQ,EAAO;MAC5C,CAAO,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAS,CAAiB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,OAAO,EAAY;QACnD,CAAA,CAAA,CAAA,CAAA,CAAA,EAAO,CAAU,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,EAAoB;UACnD,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;UACU,CAAI,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAO,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,SAAS,CAAC,CAAA,CAAA,EAAQ,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAc,CAAA,EAAA,CAAC,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,mBAAmB,EAAE;YACzF,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA;YACY,CAAIC,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAS,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,EAAE;cACrB,OAAO,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC;YAC9C;;YAEY,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,IAAM,EAAA,CAAA,CAAA,EAAI,CAAK,CAAA,CAAA,CAAA,CAAA,CAAC,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,GAAG,EAAE;cACrD,CAAA,CAAA,CAAA,CAAA,CAAK,EAAE,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW,EAAE,CAAU,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAE,OAAO,EAAK,CAAA,EAAA;gBAC3C,CAAM,CAAA,CAAA,CAAA,EAAA,CAAC,CAAG,CAAA,CAAA,EAAE,CAAG,CAAA,CAAA,EAAE,CAAI,CAAA,CAAA,CAAA,EAAE,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,EAAE,EAAE,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;;gBAEzD,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;gBACA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,EAAA,CAAA,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA;gBACA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;gBACgB,CAAI,EAAA,CAAA,CAAC,CAAA,CAAA,EAAA,CAAA,EAAO,CAAC,CAAA,CAAA,EAAA,CAAA,EAAO,CAAC,CAAA,CAAA,CAAA,EAAQ,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAO,CAAK,CAAA,CAAA,EAAA,CAAA,CAAA,EAAI,UAAU,EAAE;kBACvD,CAAA,CAAA,CAAA,CAAA,CAAA,EAAO,WAAW,CAAC,CAAA,CAAA,CAAA,CAAA,CAAK,CAAC,CAAU,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAE,OAAO,CAAC;gBAC/D;;gBAEgB,CAAM,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAWC,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAa,CAAE,CAAA;;gBAEhC,CAAA,CAAA,CAAA,CAAA,CAAA,EAAOC,CAAe,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAACC,CAAwB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA,CAAA,CAAA,CAAI,EAAW,CAAA,EAAA;kBACzF,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,CAAA;kBACkB,CAAA,CAAA,CAAA,CAAA,EAAM,CAAU,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,EAAEC,CAAY,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,IAAI,EAAE,CAAA,CAAA,CAAA,CAAI,EAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAC;kBACpD,OAAO,CAAW,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAK,CAAA,CAAA,CAAA,CAAA,CAAC,UAAU,EAAE,CAAC,CAAG,CAAA,CAAA,EAAE,GAAG,EAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,EAAE,CAAA,CAAA,CAAA,CAAI,CAAC,CAAC;gBACnF,CAAiB,CAAC;cACH,CAAA;YACf,CAAa,CAAC;UACd;;UAEA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA;UACU,CAAI,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAO,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,SAAS,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAgB,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAc,CAAA,EAAA,CAAC,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,mBAAmB,EAAE;YACjG,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA;YACY,CAAIJ,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAS,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,EAAE;cACrB,OAAO,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC;YAC9C;;YAEY,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,YAAc,EAAA,CAAA,CAAA,EAAI,CAAK,CAAA,CAAA,CAAA,CAAA,CAAC,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,WAAW,EAAE;cACrE,CAAA,CAAA,CAAA,CAAA,CAAK,EAAE,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAmB,EAAE,CAAkB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAE,eAAe,EAAK,CAAA,EAAA;gBACnE,MAAM,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,EAAkC,CAAe,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAC,CAAC;;gBAEjE,CAAA,EAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,EAAE;kBACZ,CAAA,CAAA,CAAA,CAAA,CAAA,EAAO,mBAAmB,CAAC,CAAA,CAAA,CAAA,CAAA,CAAK,CAAC,CAAkB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAE,eAAe,CAAC;gBACvF;;gBAEgB,CAAA,CAAA,CAAA,CAAA,CAAA,EAAOK,cAAS,CAACF,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAwB,CAAC,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,EAAE,CAAM,EAAA,CAAA,EAAA;kBACvD,CAAA,CAAA,CAAA,CAAA,CAAA,EAAO,mBAAmB,CAAC,CAAA,CAAA,CAAA,CAAA,CAAK,CAAC,CAAkB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAE,eAAe,CAAC;gBACvF,CAAiB,CAAC;cACH,CAAA;YACf,CAAa,CAAC;UACd;;UAEA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA;UACU,CAAI,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAO,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,SAAS,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAc,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAc,CAAA,EAAA,CAAC,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,mBAAmB,EAAE;YACnF,CAAIH,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAS,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,EAAE;cACrB,OAAO,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC;YAC9C;;YAEY,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,UAAY,EAAA,CAAA,CAAA,EAAI,CAAK,CAAA,CAAA,CAAA,CAAA,CAAC,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,SAAS,EAAE;cACjE,CAAA,CAAA,CAAA,CAAA,CAAK,EAAE,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAiB,EAAE,CAAgB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAE,aAAa,EAAK,CAAA,EAAA;gBAC7D,MAAM,CAAM,CAAA,CAAA,CAAA,EAAA,EAAE,CAAa,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAC,CAAC;gBAC9B,MAAM,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,EAAE,CAAa,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAC,CAAC;;gBAEjC,IAAI,CAAC,CAAA,CAAA,CAAA,CAAA,EAAS,CAAA,EAAA,CAAC,QAAQ,EAAE;kBACvB,CAAA,CAAA,CAAA,CAAA,CAAA,EAAO,iBAAiB,CAAC,CAAA,CAAA,CAAA,CAAA,CAAK,CAAC,CAAgB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAE,aAAa,CAAC;gBACjF;;gBAEgB,CAAA,CAAA,CAAA,CAAA,CAAA,EAAOK,cAAS,CAACF,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAwB,CAAC,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,EAAE,CAAM,EAAA,CAAA,EAAA;kBACvD,CAAA,CAAA,CAAA,CAAA,CAAA,EAAO,iBAAiB,CAAC,CAAA,CAAA,CAAA,CAAA,CAAK,CAAC,CAAgB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAE,aAAa,CAAC;gBACjF,CAAiB,CAAC;cACH,CAAA;YACf,CAAa,CAAC;UACd;;UAEA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;UACU,CAAI,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAO,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,SAAS,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAc,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAc,CAAA,EAAA,CAAC,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,mBAAmB,EAAE;YACnF,CAAIH,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAS,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,EAAE;cACrB,OAAO,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC;YAC9C;;YAEY,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,UAAY,EAAA,CAAA,CAAA,EAAI,CAAK,CAAA,CAAA,CAAA,CAAA,CAAC,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,SAAS,EAAE;cACjE,CAAA,CAAA,CAAA,CAAA,CAAK,EAAE,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAiB,EAAE,CAAgB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAE,aAAa,EAAK,CAAA,EAAA;gBAC7D,MAAM,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,EAAkC,CAAa,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAC,CAAC;gBAC/D,MAAM,CAAI,CAAA,CAAA,EAAA,EAAgB,CAAa,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAC,CAAC;;gBAE1C,CAAM,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAaC,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAa,CAAE,CAAA;gBAClC,IAAI,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;;gBAE7B,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;gBACgB,CAAI,EAAA,CAAA,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,EAAW,CAAC,CAAA,CAAA,CAAA,EAAQ,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAO,CAAI,CAAA,CAAA,CAAA,CAAC,CAAO,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,EAAI,UAAU,EAAE;kBAC1D,CAAA,CAAA,CAAA,CAAA,CAAA,EAAO,iBAAiB,CAAC,CAAA,CAAA,CAAA,CAAA,CAAK,CAAC,CAAgB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAE,aAAa,CAAC;gBACjF;;gBAEgB,CAAA,CAAA,CAAA,CAAA,CAAA,EAAOC,CAAe,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAACC,CAAwB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,EAAW,CAAA,EAAA;kBAC/F,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;kBACkB,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,EAAS,EAAA,CAAA,CAAA,EAAI,KAAK,CAAC,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,EAAE;oBACnC,CAAA,CAAA,CAAA,CAAA,CAAK,EAAE,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAc,EAAE,CAAa,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAE,UAAU,EAAK,CAAA,EAAA;sBACpD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAAC,CAAA,CAAA,CAAG,CAAE,CAAA;;sBAEhB,CAAA,EAAA,CAAI,UAAU,EAAE;wBACd,CAAOG,CAAAA,CAAAA,CAAAA,CAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAc,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,EAAE,CAAM,EAAA,CAAA,EAAA;0BACtC,CAAM,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAyB,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAC,CAAA,CAAA,CAAA,CAAA,CAAK,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAc,EAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAa,EAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAAC;;0BAEvF,CAAI,EAAA,CAAA,CAAC,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,8BAA8B,EAAE;4BAC3CC,6BAAwB,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,EAAE,CAAgC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAE,IAAI,CAAC;4BACzE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAYC,CAAiB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;8BAC3BL,CAAwB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,EAAE,4BAA4B,CAAC;4BAC/D,CAAA;0BAC7B;;0BAE0B,OAAO,CAAsB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;wBACvD,CAAyB,CAAC;sBAC1B,EAA6B,CAAA,CAAA,CAAA,EAAA;wBACL,CAAM,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAyB,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAC,CAAA,CAAA,CAAA,CAAA,CAAK,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAc,EAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAa,EAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAAC;;wBAEvF,CAAI,EAAA,CAAA,CAAC,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,8BAA8B,EAAE;0BAC3CI,6BAAwB,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,EAAE,CAAgC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAE,IAAI,CAAC;0BACzE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAYC,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAiB,CAACL,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAwB,CAAC,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,EAAE,CAA4B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAC;wBACvH;;wBAEwB,OAAO,CAAsB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;sBACrD;oBACqB,CAAA;kBACrB,CAAmB,CAAC;;kBAEF,IAAI,CAAuC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;;kBAE3C,CAAI,CAAA,EAAA;oBACF,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAA0C,CAAiB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,KAAK,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgB,EAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAa,CAAC;kBAClG,EAAA,CAAO,CAAA,CAAA,CAAA,EAAA,CAAA,CAAC,EAAE;oBAC9B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAoB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,EAAA,CAAA,EAAA,CAAA,CAAE,CAAG,CAAA,CAAA,EAAA,MAAA,EAAA,CAAA,KAAA,CAAA,CAAA,CAAA,CAAE,CAAA,CAAA;oBACrC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAoB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,GAAA,CAAA,EAAA,CAAA,CAAA,CAAE,CAAG,CAAA,CAAA,EAAA,MAAA,EAAA,CAAA,KAAA,CAAA,CAAA,CAAA,CAAE,CAAA,CAAA;oBAChB,MAAM,CAAC;kBAC3B;;kBAEkB,CAAA,EAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,EAAE;oBACd,OAAO,CAAuC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;kBAClE;;kBAEA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;kBACkB,CAAIM,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAU,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAuC,CAAC,EAAE;oBACvD,CAAA,CAAA,CAAA,CAAA,CAAA,EAAO,CAAuC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAI,CAAA,CAAA,CAAA;sBACjD,WAAc,CAAA,EAAA;wBACZC,CAAoB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAU,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,mBAAE,CAAU,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAG,EAAA,CAAA,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAAU,CAAC;wBACzD,OAAO,CAAU,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;sBAClB,CAAA;sBACD,EAAK,CAAA,EAAA;wBAC3B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAwB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,GAAA,CAAA,EAAA,CAAA,CAAA,CAAE,CAAG,CAAA,CAAA,EAAA,MAAA,EAAA,CAAA,KAAA,CAAA,CAAA,CAAA,CAAE,CAAA,CAAA;wBACzC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAwB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,GAAA,CAAA,EAAA,CAAA,CAAA,CAAE,CAAG,CAAA,CAAA,EAAA,MAAA,EAAA,CAAA,KAAA,CAAA,CAAA,CAAA,CAAE,CAAA,CAAA;wBAChB,MAAM,CAAC;sBACR,CAAA;oBACF,CAAA;kBACrB;;kBAEA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;kBACkB,IAAI,CAAO,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAuC,CAAC,CAAU,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,EAAI,UAAU,EAAE;oBAC3EA,CAAoB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAuC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,mBAAE,CAAU,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAG,EAAA,CAAA,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAAU,CAAC;kBAC1G;;kBAEkB,OAAO,CAAuC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;gBAChE,CAAiB,CAAC;cACH,CAAA;YACf,CAAa,CAAC;UACd;;UAEU,OAAO,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC;QACjC,CAAA;MACF,CAAA;IACF,CAAA;EACL;;EAEA,CAAA,CAAA;GACA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,EAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;GACA,CAAA;GACU,gBAAgB,CAAG,EAAA;IAC7B,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;IACI,CAAO,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAS,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,QAAQ,EAAO;MACvC,OAAO,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAC,CAAA,CAAA,CAAG,UAAU,EAAa;QACrD,CAAA,CAAA,CAAA,CAAA,CAAA,EAAO,CAAU,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,EAAe;UACpC,CAAI,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAO,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,SAAS,CAAC,CAAA,CAAA,CAAA,CAAA,EAAU,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAc,CAAA,EAAA,CAAC,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,mBAAmB,EAAE;YAC3F,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA;YACY,CAAIV,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAS,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,EAAE;cACrB,CAAA,CAAA,CAAA,CAAA,CAAA,EAAO,QAAQ,CAAC,CAAA,CAAA,CAAG,UAAU,CAAC,CAAC,MAAM,CAAC;YACpD;;YAEY,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,MAAQ,EAAA,CAAA,CAAA,EAAI,CAAK,CAAA,CAAA,CAAA,CAAA,CAAC,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,KAAK,EAAE;cACzD,CAAA,CAAA,CAAA,CAAA,CAAK,EAAE,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAa,EAAE,CAAY,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAE,SAAS,EAAK,CAAA,EAAA;gBACjD,MAAM,CAAU,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,EAAE,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAC,CAAC;gBAC9B,MAAM,CAAK,CAAA,CAAA,EAAA,EAAE,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAC,CAAC;;gBAEzB,IAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAa,CAAA,EAAA,CAAC,IAAI,EAAE;kBACvB,CAAA,CAAA,CAAA,CAAA,CAAA,EAAO,aAAa,CAAC,CAAA,CAAA,CAAA,CAAA,CAAK,CAAC,CAAY,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAE,SAAS,CAAC;gBACrE;;gBAEgB,CAAA,CAAA,CAAA,CAAA,CAAA,EAAOK,cAAS,CAACF,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAwB,CAAC,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,EAAE,CAAM,EAAA,CAAA,EAAA;kBACvD,CAAA,CAAA,CAAA,CAAA,CAAA,EAAO,aAAa,CAAC,CAAA,CAAA,CAAA,CAAA,CAAK,CAAC,CAAY,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAE,SAAS,CAAC;gBACrE,CAAiB,CAAC;cACH,CAAA;YACf,CAAa,CAAC;UACd;;UAEU,CAAA,CAAA,CAAA,CAAA,CAAA,EAAO,QAAQ,CAAC,CAAA,CAAA,CAAG,UAAU,CAAC,CAAC,MAAM,CAAC;QACvC,CAAA;MACF,CAAA;IACF,CAAA;EACL;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;;"}
|
|
@@ -1,91 +0,0 @@
|
|
|
1
|
-
import { _nullishCoalesce } from '@sentry/core';
|
|
2
|
-
import { addNonEnumerableProperty, SEMANTIC_ATTRIBUTE_SENTRY_OP, SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN, withActiveSpan } from '@sentry/core';
|
|
3
|
-
|
|
4
|
-
const sentryPatched = 'sentryPatched';
|
|
5
|
-
|
|
6
|
-
/**
|
|
7
|
-
* Helper checking if a concrete target class is already patched.
|
|
8
|
-
*
|
|
9
|
-
* We already guard duplicate patching with isWrapped. However, isWrapped checks whether a file has been patched, whereas we use this check for concrete target classes.
|
|
10
|
-
* This check might not be necessary, but better to play it safe.
|
|
11
|
-
*/
|
|
12
|
-
function isPatched(target) {
|
|
13
|
-
if (target.sentryPatched) {
|
|
14
|
-
return true;
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
addNonEnumerableProperty(target, sentryPatched, true);
|
|
18
|
-
return false;
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
/**
|
|
22
|
-
* Returns span options for nest middleware spans.
|
|
23
|
-
*/
|
|
24
|
-
// eslint-disable-next-line @typescript-eslint/explicit-function-return-type
|
|
25
|
-
function getMiddlewareSpanOptions(target, name = undefined) {
|
|
26
|
-
const span_name = _nullishCoalesce(name, () => ( target.name)); // fallback to class name if no name is provided
|
|
27
|
-
|
|
28
|
-
return {
|
|
29
|
-
name: span_name,
|
|
30
|
-
attributes: {
|
|
31
|
-
[SEMANTIC_ATTRIBUTE_SENTRY_OP]: 'middleware.nestjs',
|
|
32
|
-
[SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: 'auto.middleware.nestjs',
|
|
33
|
-
},
|
|
34
|
-
};
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
/**
|
|
38
|
-
* Returns span options for nest event spans.
|
|
39
|
-
*/
|
|
40
|
-
function getEventSpanOptions(event)
|
|
41
|
-
|
|
42
|
-
{
|
|
43
|
-
return {
|
|
44
|
-
name: `event ${event}`,
|
|
45
|
-
attributes: {
|
|
46
|
-
[SEMANTIC_ATTRIBUTE_SENTRY_OP]: 'event.nestjs',
|
|
47
|
-
[SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: 'auto.event.nestjs',
|
|
48
|
-
},
|
|
49
|
-
forceTransaction: true,
|
|
50
|
-
};
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
/**
|
|
54
|
-
* Adds instrumentation to a js observable and attaches the span to an active parent span.
|
|
55
|
-
*/
|
|
56
|
-
function instrumentObservable(observable, activeSpan) {
|
|
57
|
-
if (activeSpan) {
|
|
58
|
-
// eslint-disable-next-line @typescript-eslint/unbound-method
|
|
59
|
-
observable.subscribe = new Proxy(observable.subscribe, {
|
|
60
|
-
apply: (originalSubscribe, thisArgSubscribe, argsSubscribe) => {
|
|
61
|
-
return withActiveSpan(activeSpan, () => {
|
|
62
|
-
const subscription = originalSubscribe.apply(thisArgSubscribe, argsSubscribe);
|
|
63
|
-
subscription.add(() => activeSpan.end());
|
|
64
|
-
return subscription;
|
|
65
|
-
});
|
|
66
|
-
},
|
|
67
|
-
});
|
|
68
|
-
}
|
|
69
|
-
}
|
|
70
|
-
|
|
71
|
-
/**
|
|
72
|
-
* Proxies the next() call in a nestjs middleware to end the span when it is called.
|
|
73
|
-
*/
|
|
74
|
-
function getNextProxy(next, span, prevSpan) {
|
|
75
|
-
return new Proxy(next, {
|
|
76
|
-
apply: (originalNext, thisArgNext, argsNext) => {
|
|
77
|
-
span.end();
|
|
78
|
-
|
|
79
|
-
if (prevSpan) {
|
|
80
|
-
return withActiveSpan(prevSpan, () => {
|
|
81
|
-
return Reflect.apply(originalNext, thisArgNext, argsNext);
|
|
82
|
-
});
|
|
83
|
-
} else {
|
|
84
|
-
return Reflect.apply(originalNext, thisArgNext, argsNext);
|
|
85
|
-
}
|
|
86
|
-
},
|
|
87
|
-
});
|
|
88
|
-
}
|
|
89
|
-
|
|
90
|
-
export { getEventSpanOptions, getMiddlewareSpanOptions, getNextProxy, instrumentObservable, isPatched };
|
|
91
|
-
//# sourceMappingURL=helpers.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"helpers.js","sources":["../../../../../src/integrations/tracing/nest/helpers.ts"],"sourcesContent":["import type { Span } from '@sentry/core';\nimport {\n SEMANTIC_ATTRIBUTE_SENTRY_OP,\n SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN,\n addNonEnumerableProperty,\n withActiveSpan,\n} from '@sentry/core';\nimport type { CatchTarget, InjectableTarget, NextFunction, Observable, Subscription } from './types';\n\nconst sentryPatched = 'sentryPatched';\n\n/**\n * Helper checking if a concrete target class is already patched.\n *\n * We already guard duplicate patching with isWrapped. However, isWrapped checks whether a file has been patched, whereas we use this check for concrete target classes.\n * This check might not be necessary, but better to play it safe.\n */\nexport function isPatched(target: InjectableTarget | CatchTarget): boolean {\n if (target.sentryPatched) {\n return true;\n }\n\n addNonEnumerableProperty(target, sentryPatched, true);\n return false;\n}\n\n/**\n * Returns span options for nest middleware spans.\n */\n// eslint-disable-next-line @typescript-eslint/explicit-function-return-type\nexport function getMiddlewareSpanOptions(target: InjectableTarget | CatchTarget, name: string | undefined = undefined) {\n const span_name = name ?? target.name; // fallback to class name if no name is provided\n\n return {\n name: span_name,\n attributes: {\n [SEMANTIC_ATTRIBUTE_SENTRY_OP]: 'middleware.nestjs',\n [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: 'auto.middleware.nestjs',\n },\n };\n}\n\n/**\n * Returns span options for nest event spans.\n */\nexport function getEventSpanOptions(event: string): {\n name: string;\n attributes: Record<string, string>;\n forceTransaction: boolean;\n} {\n return {\n name: `event ${event}`,\n attributes: {\n [SEMANTIC_ATTRIBUTE_SENTRY_OP]: 'event.nestjs',\n [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: 'auto.event.nestjs',\n },\n forceTransaction: true,\n };\n}\n\n/**\n * Adds instrumentation to a js observable and attaches the span to an active parent span.\n */\nexport function instrumentObservable(observable: Observable<unknown>, activeSpan: Span | undefined): void {\n if (activeSpan) {\n // eslint-disable-next-line @typescript-eslint/unbound-method\n observable.subscribe = new Proxy(observable.subscribe, {\n apply: (originalSubscribe, thisArgSubscribe, argsSubscribe) => {\n return withActiveSpan(activeSpan, () => {\n const subscription: Subscription = originalSubscribe.apply(thisArgSubscribe, argsSubscribe);\n subscription.add(() => activeSpan.end());\n return subscription;\n });\n },\n });\n }\n}\n\n/**\n * Proxies the next() call in a nestjs middleware to end the span when it is called.\n */\nexport function getNextProxy(next: NextFunction, span: Span, prevSpan: undefined | Span): NextFunction {\n return new Proxy(next, {\n apply: (originalNext, thisArgNext, argsNext) => {\n span.end();\n\n if (prevSpan) {\n return withActiveSpan(prevSpan, () => {\n return Reflect.apply(originalNext, thisArgNext, argsNext);\n });\n } else {\n return Reflect.apply(originalNext, thisArgNext, argsNext);\n }\n },\n });\n}\n"],"names":[],"mappings":";;;AASA,CAAM,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAgB,CAAe,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;;AAErC,CAAA,CAAA;CACA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;CACA;CACA,EAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,EAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;CACA,EAAA,CAAA,CAAA,CAAA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,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;IACA,CAAA;IACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA;EACA,CAAA;AACA;;AAEA,CAAA,CAAA;CACA,EAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,EAAA,EAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,EAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA;CACA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,UAAA,EAAA;EACA,CAAA,EAAA,CAAA,UAAA,EAAA;IACA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;IACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,EAAA,CAAA,CAAA,EAAA,KAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA;MACA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,aAAA,EAAA,CAAA,EAAA;QACA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,EAAA,CAAA,EAAA;UACA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;UACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,MAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;UACA,OAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;QACA,CAAA,CAAA;MACA,CAAA;IACA,CAAA,CAAA;EACA;AACA;;AAEA,CAAA,CAAA;CACA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,EAAA,CAAA,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,EAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;CACA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,YAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,EAAA,QAAA,EAAA;EACA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAA,EAAA;IACA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,QAAA,EAAA,CAAA,EAAA;MACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;;MAEA,CAAA,EAAA,CAAA,QAAA,EAAA;QACA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,EAAA,CAAA,EAAA;UACA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,YAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;QACA,CAAA,CAAA;MACA,EAAA,CAAA,CAAA,CAAA,EAAA;QACA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,YAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;MACA;IACA,CAAA;EACA,CAAA,CAAA;AACA;;"}
|
|
@@ -1,141 +0,0 @@
|
|
|
1
|
-
import { _optionalChain } from '@sentry/core';
|
|
2
|
-
import { NestInstrumentation } from '@opentelemetry/instrumentation-nestjs-core';
|
|
3
|
-
import { defineIntegration, consoleSandbox, getClient, getIsolationScope, getDefaultIsolationScope, logger, captureException, spanToJSON, SEMANTIC_ATTRIBUTE_SENTRY_OP, SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN } from '@sentry/core';
|
|
4
|
-
import { generateInstrumentOnce } from '../../../otel/instrument.js';
|
|
5
|
-
import { SentryNestEventInstrumentation } from './sentry-nest-event-instrumentation.js';
|
|
6
|
-
import { SentryNestInstrumentation } from './sentry-nest-instrumentation.js';
|
|
7
|
-
|
|
8
|
-
const INTEGRATION_NAME = 'Nest';
|
|
9
|
-
|
|
10
|
-
const instrumentNestCore = generateInstrumentOnce('Nest-Core', () => {
|
|
11
|
-
return new NestInstrumentation();
|
|
12
|
-
});
|
|
13
|
-
|
|
14
|
-
const instrumentNestCommon = generateInstrumentOnce('Nest-Common', () => {
|
|
15
|
-
return new SentryNestInstrumentation();
|
|
16
|
-
});
|
|
17
|
-
|
|
18
|
-
const instrumentNestEvent = generateInstrumentOnce('Nest-Event', () => {
|
|
19
|
-
return new SentryNestEventInstrumentation();
|
|
20
|
-
});
|
|
21
|
-
|
|
22
|
-
const instrumentNest = Object.assign(
|
|
23
|
-
() => {
|
|
24
|
-
instrumentNestCore();
|
|
25
|
-
instrumentNestCommon();
|
|
26
|
-
instrumentNestEvent();
|
|
27
|
-
},
|
|
28
|
-
{ id: INTEGRATION_NAME },
|
|
29
|
-
);
|
|
30
|
-
|
|
31
|
-
/**
|
|
32
|
-
* Integration capturing tracing data for NestJS.
|
|
33
|
-
*
|
|
34
|
-
* @deprecated The `nestIntegration` is deprecated. Instead, use the NestJS SDK directly (`@sentry/nestjs`), or use the `nestIntegration` export from `@sentry/nestjs`.
|
|
35
|
-
*/
|
|
36
|
-
const nestIntegration = defineIntegration(() => {
|
|
37
|
-
return {
|
|
38
|
-
name: INTEGRATION_NAME,
|
|
39
|
-
setupOnce() {
|
|
40
|
-
instrumentNest();
|
|
41
|
-
},
|
|
42
|
-
};
|
|
43
|
-
});
|
|
44
|
-
|
|
45
|
-
/**
|
|
46
|
-
* Setup an error handler for Nest.
|
|
47
|
-
*
|
|
48
|
-
* @deprecated `setupNestErrorHandler` is deprecated.
|
|
49
|
-
* Instead use the `@sentry/nestjs` package, which has more functional APIs for capturing errors.
|
|
50
|
-
* See the [`@sentry/nestjs` Setup Guide](https://docs.sentry.io/platforms/javascript/guides/nestjs/) for how to set up the Sentry NestJS SDK.
|
|
51
|
-
*/
|
|
52
|
-
function setupNestErrorHandler(app, baseFilter) {
|
|
53
|
-
consoleSandbox(() => {
|
|
54
|
-
// eslint-disable-next-line no-console
|
|
55
|
-
console.warn(
|
|
56
|
-
'[Sentry] Warning: You used the `setupNestErrorHandler()` method to set up Sentry error monitoring. This function is deprecated and will be removed in the next major version. Instead, it is recommended to use the `@sentry/nestjs` package. To set up the NestJS SDK see: https://docs.sentry.io/platforms/javascript/guides/nestjs/',
|
|
57
|
-
);
|
|
58
|
-
});
|
|
59
|
-
|
|
60
|
-
// Sadly, NestInstrumentation has no requestHook, so we need to add the attributes here
|
|
61
|
-
// We register this hook in this method, because if we register it in the integration `setup`,
|
|
62
|
-
// it would always run even for users that are not even using Nest.js
|
|
63
|
-
const client = getClient();
|
|
64
|
-
if (client) {
|
|
65
|
-
client.on('spanStart', span => {
|
|
66
|
-
addNestSpanAttributes(span);
|
|
67
|
-
});
|
|
68
|
-
}
|
|
69
|
-
|
|
70
|
-
app.useGlobalInterceptors({
|
|
71
|
-
intercept(context, next) {
|
|
72
|
-
if (getIsolationScope() === getDefaultIsolationScope()) {
|
|
73
|
-
logger.warn('Isolation scope is still the default isolation scope, skipping setting transactionName.');
|
|
74
|
-
return next.handle();
|
|
75
|
-
}
|
|
76
|
-
|
|
77
|
-
if (context.getType() === 'http') {
|
|
78
|
-
// getRequest() returns either a FastifyRequest or ExpressRequest, depending on the used adapter
|
|
79
|
-
const req = context.switchToHttp().getRequest();
|
|
80
|
-
if ('routeOptions' in req && req.routeOptions && req.routeOptions.url) {
|
|
81
|
-
// fastify case
|
|
82
|
-
getIsolationScope().setTransactionName(`${_optionalChain([req, 'access', _ => _.method, 'optionalAccess', _2 => _2.toUpperCase, 'call', _3 => _3()]) || 'GET'} ${req.routeOptions.url}`);
|
|
83
|
-
} else if ('route' in req && req.route && req.route.path) {
|
|
84
|
-
// express case
|
|
85
|
-
getIsolationScope().setTransactionName(`${_optionalChain([req, 'access', _4 => _4.method, 'optionalAccess', _5 => _5.toUpperCase, 'call', _6 => _6()]) || 'GET'} ${req.route.path}`);
|
|
86
|
-
}
|
|
87
|
-
}
|
|
88
|
-
|
|
89
|
-
return next.handle();
|
|
90
|
-
},
|
|
91
|
-
});
|
|
92
|
-
|
|
93
|
-
const wrappedFilter = new Proxy(baseFilter, {
|
|
94
|
-
get(target, prop, receiver) {
|
|
95
|
-
if (prop === 'catch') {
|
|
96
|
-
const originalCatch = Reflect.get(target, prop, receiver);
|
|
97
|
-
|
|
98
|
-
return (exception, host) => {
|
|
99
|
-
const exceptionIsObject = typeof exception === 'object' && exception !== null;
|
|
100
|
-
const exceptionStatusCode = exceptionIsObject && 'status' in exception ? exception.status : null;
|
|
101
|
-
const exceptionErrorProperty = exceptionIsObject && 'error' in exception ? exception.error : null;
|
|
102
|
-
|
|
103
|
-
/*
|
|
104
|
-
Don't report expected NestJS control flow errors
|
|
105
|
-
- `HttpException` errors will have a `status` property
|
|
106
|
-
- `RpcException` errors will have an `error` property
|
|
107
|
-
*/
|
|
108
|
-
if (exceptionStatusCode !== null || exceptionErrorProperty !== null) {
|
|
109
|
-
return originalCatch.apply(target, [exception, host]);
|
|
110
|
-
}
|
|
111
|
-
|
|
112
|
-
captureException(exception);
|
|
113
|
-
return originalCatch.apply(target, [exception, host]);
|
|
114
|
-
};
|
|
115
|
-
}
|
|
116
|
-
return Reflect.get(target, prop, receiver);
|
|
117
|
-
},
|
|
118
|
-
});
|
|
119
|
-
|
|
120
|
-
app.useGlobalFilters(wrappedFilter);
|
|
121
|
-
}
|
|
122
|
-
|
|
123
|
-
function addNestSpanAttributes(span) {
|
|
124
|
-
const attributes = spanToJSON(span).data || {};
|
|
125
|
-
|
|
126
|
-
// this is one of: app_creation, request_context, handler
|
|
127
|
-
const type = attributes['nestjs.type'];
|
|
128
|
-
|
|
129
|
-
// If this is already set, or we have no nest.js span, no need to process again...
|
|
130
|
-
if (attributes[SEMANTIC_ATTRIBUTE_SENTRY_OP] || !type) {
|
|
131
|
-
return;
|
|
132
|
-
}
|
|
133
|
-
|
|
134
|
-
span.setAttributes({
|
|
135
|
-
[SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: 'auto.http.otel.nestjs',
|
|
136
|
-
[SEMANTIC_ATTRIBUTE_SENTRY_OP]: `${type}.nestjs`,
|
|
137
|
-
});
|
|
138
|
-
}
|
|
139
|
-
|
|
140
|
-
export { instrumentNest, nestIntegration, setupNestErrorHandler };
|
|
141
|
-
//# sourceMappingURL=nest.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"nest.js","sources":["../../../../../src/integrations/tracing/nest/nest.ts"],"sourcesContent":["import { NestInstrumentation } from '@opentelemetry/instrumentation-nestjs-core';\nimport type { Span } from '@sentry/core';\nimport {\n SEMANTIC_ATTRIBUTE_SENTRY_OP,\n SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN,\n captureException,\n consoleSandbox,\n defineIntegration,\n getClient,\n getDefaultIsolationScope,\n getIsolationScope,\n logger,\n spanToJSON,\n} from '@sentry/core';\nimport { generateInstrumentOnce } from '../../../otel/instrument';\nimport { SentryNestEventInstrumentation } from './sentry-nest-event-instrumentation';\nimport { SentryNestInstrumentation } from './sentry-nest-instrumentation';\nimport type { MinimalNestJsApp, NestJsErrorFilter } from './types';\n\nconst INTEGRATION_NAME = 'Nest';\n\nconst instrumentNestCore = generateInstrumentOnce('Nest-Core', () => {\n return new NestInstrumentation();\n});\n\nconst instrumentNestCommon = generateInstrumentOnce('Nest-Common', () => {\n return new SentryNestInstrumentation();\n});\n\nconst instrumentNestEvent = generateInstrumentOnce('Nest-Event', () => {\n return new SentryNestEventInstrumentation();\n});\n\nexport const instrumentNest = Object.assign(\n (): void => {\n instrumentNestCore();\n instrumentNestCommon();\n instrumentNestEvent();\n },\n { id: INTEGRATION_NAME },\n);\n\n/**\n * Integration capturing tracing data for NestJS.\n *\n * @deprecated The `nestIntegration` is deprecated. Instead, use the NestJS SDK directly (`@sentry/nestjs`), or use the `nestIntegration` export from `@sentry/nestjs`.\n */\nexport const nestIntegration = defineIntegration(() => {\n return {\n name: INTEGRATION_NAME,\n setupOnce() {\n instrumentNest();\n },\n };\n});\n\n/**\n * Setup an error handler for Nest.\n *\n * @deprecated `setupNestErrorHandler` is deprecated.\n * Instead use the `@sentry/nestjs` package, which has more functional APIs for capturing errors.\n * See the [`@sentry/nestjs` Setup Guide](https://docs.sentry.io/platforms/javascript/guides/nestjs/) for how to set up the Sentry NestJS SDK.\n */\nexport function setupNestErrorHandler(app: MinimalNestJsApp, baseFilter: NestJsErrorFilter): void {\n consoleSandbox(() => {\n // eslint-disable-next-line no-console\n console.warn(\n '[Sentry] Warning: You used the `setupNestErrorHandler()` method to set up Sentry error monitoring. This function is deprecated and will be removed in the next major version. Instead, it is recommended to use the `@sentry/nestjs` package. To set up the NestJS SDK see: https://docs.sentry.io/platforms/javascript/guides/nestjs/',\n );\n });\n\n // Sadly, NestInstrumentation has no requestHook, so we need to add the attributes here\n // We register this hook in this method, because if we register it in the integration `setup`,\n // it would always run even for users that are not even using Nest.js\n const client = getClient();\n if (client) {\n client.on('spanStart', span => {\n addNestSpanAttributes(span);\n });\n }\n\n app.useGlobalInterceptors({\n intercept(context, next) {\n if (getIsolationScope() === getDefaultIsolationScope()) {\n logger.warn('Isolation scope is still the default isolation scope, skipping setting transactionName.');\n return next.handle();\n }\n\n if (context.getType() === 'http') {\n // getRequest() returns either a FastifyRequest or ExpressRequest, depending on the used adapter\n const req = context.switchToHttp().getRequest();\n if ('routeOptions' in req && req.routeOptions && req.routeOptions.url) {\n // fastify case\n getIsolationScope().setTransactionName(`${req.method?.toUpperCase() || 'GET'} ${req.routeOptions.url}`);\n } else if ('route' in req && req.route && req.route.path) {\n // express case\n getIsolationScope().setTransactionName(`${req.method?.toUpperCase() || 'GET'} ${req.route.path}`);\n }\n }\n\n return next.handle();\n },\n });\n\n const wrappedFilter = new Proxy(baseFilter, {\n get(target, prop, receiver) {\n if (prop === 'catch') {\n const originalCatch = Reflect.get(target, prop, receiver);\n\n return (exception: unknown, host: unknown) => {\n const exceptionIsObject = typeof exception === 'object' && exception !== null;\n const exceptionStatusCode = exceptionIsObject && 'status' in exception ? exception.status : null;\n const exceptionErrorProperty = exceptionIsObject && 'error' in exception ? exception.error : null;\n\n /*\n Don't report expected NestJS control flow errors\n - `HttpException` errors will have a `status` property\n - `RpcException` errors will have an `error` property\n */\n if (exceptionStatusCode !== null || exceptionErrorProperty !== null) {\n return originalCatch.apply(target, [exception, host]);\n }\n\n captureException(exception);\n return originalCatch.apply(target, [exception, host]);\n };\n }\n return Reflect.get(target, prop, receiver);\n },\n });\n\n app.useGlobalFilters(wrappedFilter);\n}\n\nfunction addNestSpanAttributes(span: Span): void {\n const attributes = spanToJSON(span).data || {};\n\n // this is one of: app_creation, request_context, handler\n const type = attributes['nestjs.type'];\n\n // If this is already set, or we have no nest.js span, no need to process again...\n if (attributes[SEMANTIC_ATTRIBUTE_SENTRY_OP] || !type) {\n return;\n }\n\n span.setAttributes({\n [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: 'auto.http.otel.nestjs',\n [SEMANTIC_ATTRIBUTE_SENTRY_OP]: `${type}.nestjs`,\n });\n}\n"],"names":[],"mappings":"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AA,CAAA,CAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;CACA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,EAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;CACA,EAAA,CAAA,CAAA,EAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,EAAA,CAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA;CACA,CAAA;AACO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAS,CAAqB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAG,CAAA,CAAA,EAAoB,UAAU,EAA2B;EAChG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAc,CAAC,CAAM,EAAA,CAAA,EAAA;IACvB,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;IACI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAC,CAAI,CAAA,CAAA,CAAA;MACV,CAAwU,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;IACzU,CAAA;EACL,CAAG,CAAC;;EAEJ,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA;EACA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,EAAA,CAAA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A,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAA,CAAA,CAAA,CAAA,CAAA;UACA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAA,CAAA,CAAA,CAAA,CAAA;;UAEA,CAAA;UACA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA;UACA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;UACA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,CA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AAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,EAAA,CAAA,IAAA,EAAA;IACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;EACA;;EAEA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;IACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;IACA,CAAA,4BAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,OAAA,CAAA;EACA,CAAA,CAAA;AACA;;"}
|
|
@@ -1,115 +0,0 @@
|
|
|
1
|
-
import { isWrapped } from '@opentelemetry/core';
|
|
2
|
-
import { InstrumentationBase, InstrumentationNodeModuleDefinition, InstrumentationNodeModuleFile } from '@opentelemetry/instrumentation';
|
|
3
|
-
import { SDK_VERSION, startSpan, captureException } from '@sentry/core';
|
|
4
|
-
import { getEventSpanOptions } from './helpers.js';
|
|
5
|
-
|
|
6
|
-
const supportedVersions = ['>=2.0.0'];
|
|
7
|
-
|
|
8
|
-
/**
|
|
9
|
-
* Custom instrumentation for nestjs event-emitter
|
|
10
|
-
*
|
|
11
|
-
* This hooks into the `OnEvent` decorator, which is applied on event handlers.
|
|
12
|
-
*/
|
|
13
|
-
class SentryNestEventInstrumentation extends InstrumentationBase {
|
|
14
|
-
static __initStatic() {this.COMPONENT = '@nestjs/event-emitter';}
|
|
15
|
-
static __initStatic2() {this.COMMON_ATTRIBUTES = {
|
|
16
|
-
component: SentryNestEventInstrumentation.COMPONENT,
|
|
17
|
-
};}
|
|
18
|
-
|
|
19
|
-
constructor(config = {}) {
|
|
20
|
-
super('sentry-nestjs-event', SDK_VERSION, config);
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
/**
|
|
24
|
-
* Initializes the instrumentation by defining the modules to be patched.
|
|
25
|
-
*/
|
|
26
|
-
init() {
|
|
27
|
-
const moduleDef = new InstrumentationNodeModuleDefinition(
|
|
28
|
-
SentryNestEventInstrumentation.COMPONENT,
|
|
29
|
-
supportedVersions,
|
|
30
|
-
);
|
|
31
|
-
|
|
32
|
-
moduleDef.files.push(this._getOnEventFileInstrumentation(supportedVersions));
|
|
33
|
-
return moduleDef;
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
/**
|
|
37
|
-
* Wraps the @OnEvent decorator.
|
|
38
|
-
*/
|
|
39
|
-
_getOnEventFileInstrumentation(versions) {
|
|
40
|
-
return new InstrumentationNodeModuleFile(
|
|
41
|
-
'@nestjs/event-emitter/dist/decorators/on-event.decorator.js',
|
|
42
|
-
versions,
|
|
43
|
-
(moduleExports) => {
|
|
44
|
-
if (isWrapped(moduleExports.OnEvent)) {
|
|
45
|
-
this._unwrap(moduleExports, 'OnEvent');
|
|
46
|
-
}
|
|
47
|
-
this._wrap(moduleExports, 'OnEvent', this._createWrapOnEvent());
|
|
48
|
-
return moduleExports;
|
|
49
|
-
},
|
|
50
|
-
(moduleExports) => {
|
|
51
|
-
this._unwrap(moduleExports, 'OnEvent');
|
|
52
|
-
},
|
|
53
|
-
);
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
/**
|
|
57
|
-
* Creates a wrapper function for the @OnEvent decorator.
|
|
58
|
-
*/
|
|
59
|
-
_createWrapOnEvent() {
|
|
60
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
61
|
-
return function wrapOnEvent(original) {
|
|
62
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
63
|
-
return function wrappedOnEvent(event, options) {
|
|
64
|
-
const eventName = Array.isArray(event)
|
|
65
|
-
? event.join(',')
|
|
66
|
-
: typeof event === 'string' || typeof event === 'symbol'
|
|
67
|
-
? event.toString()
|
|
68
|
-
: '<unknown_event>';
|
|
69
|
-
|
|
70
|
-
// Get the original decorator result
|
|
71
|
-
const decoratorResult = original(event, options);
|
|
72
|
-
|
|
73
|
-
// Return a new decorator function that wraps the handler
|
|
74
|
-
return function (target, propertyKey, descriptor) {
|
|
75
|
-
if (!descriptor.value || typeof descriptor.value !== 'function' || target.__SENTRY_INTERNAL__) {
|
|
76
|
-
return decoratorResult(target, propertyKey, descriptor);
|
|
77
|
-
}
|
|
78
|
-
|
|
79
|
-
// Get the original handler
|
|
80
|
-
const originalHandler = descriptor.value;
|
|
81
|
-
// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
|
|
82
|
-
const handlerName = originalHandler.name || propertyKey;
|
|
83
|
-
|
|
84
|
-
// Instrument the handler
|
|
85
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
86
|
-
descriptor.value = async function (...args) {
|
|
87
|
-
return startSpan(getEventSpanOptions(eventName), async () => {
|
|
88
|
-
try {
|
|
89
|
-
// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
|
|
90
|
-
const result = await originalHandler.apply(this, args);
|
|
91
|
-
return result;
|
|
92
|
-
} catch (error) {
|
|
93
|
-
// exceptions from event handlers are not caught by global error filter
|
|
94
|
-
captureException(error);
|
|
95
|
-
throw error;
|
|
96
|
-
}
|
|
97
|
-
});
|
|
98
|
-
};
|
|
99
|
-
|
|
100
|
-
// Preserve the original function name
|
|
101
|
-
Object.defineProperty(descriptor.value, 'name', {
|
|
102
|
-
value: handlerName,
|
|
103
|
-
configurable: true,
|
|
104
|
-
});
|
|
105
|
-
|
|
106
|
-
// Apply the original decorator
|
|
107
|
-
return decoratorResult(target, propertyKey, descriptor);
|
|
108
|
-
};
|
|
109
|
-
};
|
|
110
|
-
};
|
|
111
|
-
}
|
|
112
|
-
} SentryNestEventInstrumentation.__initStatic(); SentryNestEventInstrumentation.__initStatic2();
|
|
113
|
-
|
|
114
|
-
export { SentryNestEventInstrumentation };
|
|
115
|
-
//# sourceMappingURL=sentry-nest-event-instrumentation.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"sentry-nest-event-instrumentation.js","sources":["../../../../../src/integrations/tracing/nest/sentry-nest-event-instrumentation.ts"],"sourcesContent":["import { isWrapped } from '@opentelemetry/core';\nimport type { InstrumentationConfig } from '@opentelemetry/instrumentation';\nimport {\n InstrumentationBase,\n InstrumentationNodeModuleDefinition,\n InstrumentationNodeModuleFile,\n} from '@opentelemetry/instrumentation';\nimport { SDK_VERSION, captureException, startSpan } from '@sentry/core';\nimport { getEventSpanOptions } from './helpers';\nimport type { OnEventTarget } from './types';\n\nconst supportedVersions = ['>=2.0.0'];\n\n/**\n * Custom instrumentation for nestjs event-emitter\n *\n * This hooks into the `OnEvent` decorator, which is applied on event handlers.\n */\nexport class SentryNestEventInstrumentation extends InstrumentationBase {\n public static readonly COMPONENT = '@nestjs/event-emitter';\n public static readonly COMMON_ATTRIBUTES = {\n component: SentryNestEventInstrumentation.COMPONENT,\n };\n\n public constructor(config: InstrumentationConfig = {}) {\n super('sentry-nestjs-event', SDK_VERSION, config);\n }\n\n /**\n * Initializes the instrumentation by defining the modules to be patched.\n */\n public init(): InstrumentationNodeModuleDefinition {\n const moduleDef = new InstrumentationNodeModuleDefinition(\n SentryNestEventInstrumentation.COMPONENT,\n supportedVersions,\n );\n\n moduleDef.files.push(this._getOnEventFileInstrumentation(supportedVersions));\n return moduleDef;\n }\n\n /**\n * Wraps the @OnEvent decorator.\n */\n private _getOnEventFileInstrumentation(versions: string[]): InstrumentationNodeModuleFile {\n return new InstrumentationNodeModuleFile(\n '@nestjs/event-emitter/dist/decorators/on-event.decorator.js',\n versions,\n (moduleExports: { OnEvent: OnEventTarget }) => {\n if (isWrapped(moduleExports.OnEvent)) {\n this._unwrap(moduleExports, 'OnEvent');\n }\n this._wrap(moduleExports, 'OnEvent', this._createWrapOnEvent());\n return moduleExports;\n },\n (moduleExports: { OnEvent: OnEventTarget }) => {\n this._unwrap(moduleExports, 'OnEvent');\n },\n );\n }\n\n /**\n * Creates a wrapper function for the @OnEvent decorator.\n */\n private _createWrapOnEvent() {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return function wrapOnEvent(original: any) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return function wrappedOnEvent(event: any, options?: any) {\n const eventName = Array.isArray(event)\n ? event.join(',')\n : typeof event === 'string' || typeof event === 'symbol'\n ? event.toString()\n : '<unknown_event>';\n\n // Get the original decorator result\n const decoratorResult = original(event, options);\n\n // Return a new decorator function that wraps the handler\n return function (target: OnEventTarget, propertyKey: string | symbol, descriptor: PropertyDescriptor) {\n if (!descriptor.value || typeof descriptor.value !== 'function' || target.__SENTRY_INTERNAL__) {\n return decoratorResult(target, propertyKey, descriptor);\n }\n\n // Get the original handler\n const originalHandler = descriptor.value;\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n const handlerName = originalHandler.name || propertyKey;\n\n // Instrument the handler\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n descriptor.value = async function (...args: any[]) {\n return startSpan(getEventSpanOptions(eventName), async () => {\n try {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n const result = await originalHandler.apply(this, args);\n return result;\n } catch (error) {\n // exceptions from event handlers are not caught by global error filter\n captureException(error);\n throw error;\n }\n });\n };\n\n // Preserve the original function name\n Object.defineProperty(descriptor.value, 'name', {\n value: handlerName,\n configurable: true,\n });\n\n // Apply the original decorator\n return decoratorResult(target, propertyKey, descriptor);\n };\n };\n };\n }\n}\n"],"names":[],"mappings":"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"}
|