@trigger.dev/core 3.0.0-beta.5 → 3.0.0-beta.50
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/dist/api-Pl9fxB8v.d.mts +13879 -0
- package/dist/api-sNoooMbT.d.ts +13879 -0
- package/dist/catalog-H7yFiZ60.d.mts +202 -0
- package/dist/catalog-h79CG5Wy.d.ts +202 -0
- package/dist/common-CLW82lkt.d.mts +1423 -0
- package/dist/common-CLW82lkt.d.ts +1423 -0
- package/dist/{eventFilterMatches-2kHImluE.d.mts → eventFilter-66NaBAMi.d.mts} +1 -3
- package/dist/{eventFilterMatches-2kHImluE.d.ts → eventFilter-66NaBAMi.d.ts} +1 -3
- package/dist/eventFilterMatches.d.mts +6 -0
- package/dist/eventFilterMatches.d.ts +6 -0
- package/dist/eventFilterMatches.js +165 -0
- package/dist/eventFilterMatches.js.map +1 -0
- package/dist/eventFilterMatches.mjs +163 -0
- package/dist/eventFilterMatches.mjs.map +1 -0
- package/dist/index.d.mts +14 -16657
- package/dist/index.d.ts +14 -16657
- package/dist/index.js +8 -1
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +8 -2
- package/dist/index.mjs.map +1 -1
- package/dist/json-DBPEJQRe.d.mts +16 -0
- package/dist/json-DBPEJQRe.d.ts +16 -0
- package/dist/manager-KvCabW1a.d.mts +18 -0
- package/dist/manager-OBA35PzR.d.ts +18 -0
- package/dist/messages-JvHJ83wv.d.mts +19428 -0
- package/dist/messages-JvHJ83wv.d.ts +19428 -0
- package/dist/replacements.d.mts +22 -0
- package/dist/replacements.d.ts +22 -0
- package/dist/replacements.js +33 -0
- package/dist/replacements.js.map +1 -0
- package/dist/replacements.mjs +28 -0
- package/dist/replacements.mjs.map +1 -0
- package/dist/requestFilter-HNZQEpQb.d.ts +180 -0
- package/dist/requestFilter-b5W2_1oP.d.mts +180 -0
- package/dist/requestFilterMatches.d.mts +13 -0
- package/dist/requestFilterMatches.d.ts +13 -0
- package/dist/requestFilterMatches.js +238 -0
- package/dist/requestFilterMatches.js.map +1 -0
- package/dist/requestFilterMatches.mjs +235 -0
- package/dist/requestFilterMatches.mjs.map +1 -0
- package/dist/retry.d.mts +10 -0
- package/dist/retry.d.ts +10 -0
- package/dist/retry.js +100 -0
- package/dist/retry.js.map +1 -0
- package/dist/retry.mjs +97 -0
- package/dist/retry.mjs.map +1 -0
- package/dist/schemas/index.d.mts +2611 -0
- package/dist/schemas/index.d.ts +2611 -0
- package/dist/schemas/index.js +1630 -0
- package/dist/schemas/index.js.map +1 -0
- package/dist/schemas/index.mjs +1463 -0
- package/dist/schemas/index.mjs.map +1 -0
- package/dist/schemas-C9ssfehv.d.mts +2568 -0
- package/dist/schemas-C9ssfehv.d.ts +2568 -0
- package/dist/taskLogger-CzADe4je.d.ts +33 -0
- package/dist/taskLogger-r_AFTX45.d.mts +33 -0
- package/dist/tracer-N0p2Fuuv.d.mts +23 -0
- package/dist/tracer-N0p2Fuuv.d.ts +23 -0
- package/dist/types.d.mts +11 -0
- package/dist/types.d.ts +11 -0
- package/dist/types.js +4 -0
- package/dist/types.js.map +1 -0
- package/dist/types.mjs +3 -0
- package/dist/types.mjs.map +1 -0
- package/dist/utils.d.mts +7 -0
- package/dist/utils.d.ts +7 -0
- package/dist/utils.js +33 -0
- package/dist/utils.js.map +1 -0
- package/dist/utils.mjs +30 -0
- package/dist/utils.mjs.map +1 -0
- package/dist/v3/dev/index.d.mts +29 -0
- package/dist/v3/dev/index.d.ts +29 -0
- package/dist/v3/dev/index.js +93 -0
- package/dist/v3/dev/index.js.map +1 -0
- package/dist/v3/dev/index.mjs +91 -0
- package/dist/v3/dev/index.mjs.map +1 -0
- package/dist/v3/errors.d.mts +39 -0
- package/dist/v3/errors.d.ts +39 -0
- package/dist/v3/errors.js +204 -0
- package/dist/v3/errors.js.map +1 -0
- package/dist/v3/errors.mjs +195 -0
- package/dist/v3/errors.mjs.map +1 -0
- package/dist/v3/index.d.mts +436 -20511
- package/dist/v3/index.d.ts +436 -20511
- package/dist/v3/index.js +2822 -2890
- package/dist/v3/index.js.map +1 -1
- package/dist/v3/index.mjs +2767 -2863
- package/dist/v3/index.mjs.map +1 -1
- package/dist/v3/logger-api.d.mts +24 -0
- package/dist/v3/logger-api.d.ts +24 -0
- package/dist/v3/logger-api.js +118 -0
- package/dist/v3/logger-api.js.map +1 -0
- package/dist/v3/logger-api.mjs +116 -0
- package/dist/v3/logger-api.mjs.map +1 -0
- package/dist/v3/otel/index.js +119 -53
- package/dist/v3/otel/index.js.map +1 -1
- package/dist/v3/otel/index.mjs +119 -53
- package/dist/v3/otel/index.mjs.map +1 -1
- package/dist/v3/prod/index.d.mts +46 -0
- package/dist/v3/prod/index.d.ts +46 -0
- package/dist/v3/prod/index.js +180 -0
- package/dist/v3/prod/index.js.map +1 -0
- package/dist/v3/prod/index.mjs +178 -0
- package/dist/v3/prod/index.mjs.map +1 -0
- package/dist/v3/schemas/index.d.mts +4741 -0
- package/dist/v3/schemas/index.d.ts +4741 -0
- package/dist/v3/schemas/index.js +2039 -0
- package/dist/v3/schemas/index.js.map +1 -0
- package/dist/v3/schemas/index.mjs +1900 -0
- package/dist/v3/schemas/index.mjs.map +1 -0
- package/dist/v3/semanticInternalAttributes.d.mts +56 -0
- package/dist/v3/semanticInternalAttributes.d.ts +56 -0
- package/dist/v3/semanticInternalAttributes.js +61 -0
- package/dist/v3/semanticInternalAttributes.js.map +1 -0
- package/dist/v3/semanticInternalAttributes.mjs +59 -0
- package/dist/v3/semanticInternalAttributes.mjs.map +1 -0
- package/dist/v3/utils/durations.d.mts +15 -0
- package/dist/v3/utils/durations.d.ts +15 -0
- package/dist/v3/utils/durations.js +93 -0
- package/dist/v3/utils/durations.js.map +1 -0
- package/dist/v3/utils/durations.mjs +82 -0
- package/dist/v3/utils/durations.mjs.map +1 -0
- package/dist/v3/utils/flattenAttributes.d.mts +8 -0
- package/dist/v3/utils/flattenAttributes.d.ts +8 -0
- package/dist/v3/utils/flattenAttributes.js +131 -0
- package/dist/v3/utils/flattenAttributes.js.map +1 -0
- package/dist/v3/utils/flattenAttributes.mjs +126 -0
- package/dist/v3/utils/flattenAttributes.mjs.map +1 -0
- package/dist/v3/utils/ioSerialization.d.mts +21 -0
- package/dist/v3/utils/ioSerialization.d.ts +21 -0
- package/dist/v3/utils/ioSerialization.js +2367 -0
- package/dist/v3/utils/ioSerialization.js.map +1 -0
- package/dist/v3/utils/ioSerialization.mjs +2358 -0
- package/dist/v3/utils/ioSerialization.mjs.map +1 -0
- package/dist/v3/utils/omit.d.mts +3 -0
- package/dist/v3/utils/omit.d.ts +3 -0
- package/dist/v3/utils/omit.js +20 -0
- package/dist/v3/utils/omit.js.map +1 -0
- package/dist/v3/utils/omit.mjs +18 -0
- package/dist/v3/utils/omit.mjs.map +1 -0
- package/dist/v3/utils/retries.d.mts +46 -0
- package/dist/v3/utils/retries.d.ts +46 -0
- package/dist/v3/utils/retries.js +118 -0
- package/dist/v3/utils/retries.js.map +1 -0
- package/dist/v3/utils/retries.mjs +113 -0
- package/dist/v3/utils/retries.mjs.map +1 -0
- package/dist/v3/utils/structuredLogger.d.mts +31 -0
- package/dist/v3/utils/structuredLogger.d.ts +31 -0
- package/dist/v3/utils/structuredLogger.js +88 -0
- package/dist/v3/utils/structuredLogger.js.map +1 -0
- package/dist/v3/utils/structuredLogger.mjs +86 -0
- package/dist/v3/utils/structuredLogger.mjs.map +1 -0
- package/dist/v3/utils/timers.d.mts +6 -0
- package/dist/v3/utils/timers.d.ts +6 -0
- package/dist/v3/utils/timers.js +31 -0
- package/dist/v3/utils/timers.js.map +1 -0
- package/dist/v3/utils/timers.mjs +28 -0
- package/dist/v3/utils/timers.mjs.map +1 -0
- package/dist/v3/workers/index.d.mts +144 -0
- package/dist/v3/workers/index.d.ts +144 -0
- package/dist/v3/workers/index.js +3683 -0
- package/dist/v3/workers/index.js.map +1 -0
- package/dist/v3/workers/index.mjs +3664 -0
- package/dist/v3/workers/index.mjs.map +1 -0
- package/dist/v3/zodIpc.d.mts +32 -0
- package/dist/v3/zodIpc.d.ts +32 -0
- package/dist/v3/zodIpc.js +268 -0
- package/dist/v3/zodIpc.js.map +1 -0
- package/dist/v3/zodIpc.mjs +266 -0
- package/dist/v3/zodIpc.mjs.map +1 -0
- package/dist/v3/zodMessageHandler.d.mts +82 -0
- package/dist/v3/zodMessageHandler.d.ts +82 -0
- package/dist/v3/zodMessageHandler.js +222 -0
- package/dist/v3/zodMessageHandler.js.map +1 -0
- package/dist/v3/zodMessageHandler.mjs +217 -0
- package/dist/v3/zodMessageHandler.mjs.map +1 -0
- package/dist/v3/zodNamespace.d.mts +3663 -0
- package/dist/v3/zodNamespace.d.ts +3663 -0
- package/dist/v3/zodNamespace.js +397 -0
- package/dist/v3/zodNamespace.js.map +1 -0
- package/dist/v3/zodNamespace.mjs +395 -0
- package/dist/v3/zodNamespace.mjs.map +1 -0
- package/dist/v3/zodSocket.d.mts +93 -0
- package/dist/v3/zodSocket.d.ts +93 -0
- package/dist/v3/zodSocket.js +350 -0
- package/dist/v3/zodSocket.js.map +1 -0
- package/dist/v3/zodSocket.mjs +346 -0
- package/dist/v3/zodSocket.mjs.map +1 -0
- package/dist/v3/zodfetch.d.mts +219 -0
- package/dist/v3/zodfetch.d.ts +219 -0
- package/dist/v3/zodfetch.js +834 -0
- package/dist/v3/zodfetch.js.map +1 -0
- package/dist/v3/zodfetch.mjs +811 -0
- package/dist/v3/zodfetch.mjs.map +1 -0
- package/dist/versions.d.mts +11 -0
- package/dist/versions.d.ts +11 -0
- package/dist/versions.js +31 -0
- package/dist/versions.js.map +1 -0
- package/dist/versions.mjs +27 -0
- package/dist/versions.mjs.map +1 -0
- package/package.json +223 -5
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/v3/otel/index.ts","../../../src/v3/otel/tracingSDK.ts","../../../src/v3/limits.ts","../../../src/v3/semanticInternalAttributes.ts","../../../src/v3/utils/flattenAttributes.ts","../../../src/v3/utils/safeAsyncLocalStorage.ts","../../../src/v3/tasks/taskContextManager.ts","../../../src/v3/utils/getEnv.ts"],"names":["SpanStatusCode","DiagConsoleLogger","DiagLogLevel","diag","logs","OTLPLogExporter","OTLPTraceExporter","registerInstrumentations","Resource","detectResourcesSync","processDetectorSync","BatchLogRecordProcessor","LoggerProvider","SimpleLogRecordProcessor","BatchSpanProcessor","NodeTracerProvider","SimpleSpanProcessor","SemanticResourceAttributes","OTEL_SPAN_ATTRIBUTE_COUNT_LIMIT","OTEL_LOG_ATTRIBUTE_COUNT_LIMIT","OTEL_SPAN_ATTRIBUTE_VALUE_LENGTH_LIMIT","OTEL_LOG_ATTRIBUTE_VALUE_LENGTH_LIMIT","OTEL_SPAN_EVENT_COUNT_LIMIT","OTEL_LINK_COUNT_LIMIT","OTEL_ATTRIBUTE_PER_LINK_COUNT_LIMIT","OTEL_ATTRIBUTE_PER_EVENT_COUNT_LIMIT","OFFLOAD_IO_PACKET_LENGTH_LIMIT","SemanticInternalAttributes","ENVIRONMENT_ID","ENVIRONMENT_TYPE","ORGANIZATION_ID","ORGANIZATION_SLUG","ORGANIZATION_NAME","PROJECT_ID","PROJECT_REF","PROJECT_NAME","PROJECT_DIR","ATTEMPT_ID","ATTEMPT_NUMBER","RUN_ID","RUN_IS_TEST","BATCH_ID","TASK_SLUG","TASK_PATH","TASK_EXPORT_NAME","QUEUE_NAME","QUEUE_ID","SPAN_PARTIAL","SPAN_ID","OUTPUT","OUTPUT_TYPE","STYLE","STYLE_ICON","STYLE_VARIANT","STYLE_ACCESSORY","METADATA","TRIGGER","PAYLOAD","PAYLOAD_TYPE","SHOW","SHOW_ACTIONS","WORKER_ID","WORKER_VERSION","CLI_VERSION","SDK_VERSION","SDK_LANGUAGE","RETRY_AT","RETRY_DELAY","RETRY_COUNT","flattenAttributes","obj","prefix","result","key","value","Object","entries","newPrefix","Array","isArray","i","length","assign","isRecord","AsyncLocalStorage","SafeAsyncLocalStorage","constructor","storage","runWith","context","fn","run","getStore","TaskContextManager","_storage","isInsideTask","undefined","ctx","store","worker","attributes","contextAttributes","workerAttributes","id","version","attempt","number","task","filePath","exportName","queue","name","environment","type","organization","project","ref","isTest","slug","batch","taskContextManager","TaskContextSpanProcessor","innerProcessor","_innerProcessor","onStart","span","parentContext","setAttributes","onEnd","shutdown","forceFlush","TaskContextLogProcessor","onEmit","logRecord","getEnvVar","process","env","AsyncResourceDetector","_resolved","_promise","Promise","resolver","_resolver","detect","_config","resolveWithAttributes","Error","TracingSDK","config","asyncResourceDetector","setLogLevel","diagLogLevel","envResourceAttributesSerialized","envResourceAttributes","JSON","parse","commonResources","detectors","merge","CLOUD_PROVIDER","resource","traceProvider","forceFlushTimeoutMillis","spanLimits","attributeCountLimit","attributeValueLengthLimit","eventCountLimit","attributePerEventCountLimit","linkCountLimit","attributePerLinkCountLimit","spanExporter","url","timeoutMillis","addSpanProcessor","maxExportBatchSize","parseInt","scheduledDelayMillis","exportTimeoutMillis","maxQueueSize","register","instrumentations","tracerProvider","logExporter","loggerProvider","logRecordLimits","addLogRecordProcessor","_logProvider","_spanExporter","_traceProvider","setGlobalLoggerProvider","getLogger","bind","getTracer","flush","level","NONE","ERROR","WARN","INFO","DEBUG","VERBOSE","ALL","setLogger","recordSpanException","error","recordException","stringify","setStatus","code"],"mappings":"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","sourcesContent":["import { Span, SpanStatusCode } from \"@opentelemetry/api\";\n\nexport { TracingSDK, type TracingSDKConfig, type TracingDiagnosticLogLevel } from \"./tracingSDK\";\n\nexport function recordSpanException(span: Span, error: unknown) {\n if (error instanceof Error) {\n span.recordException(error);\n } else if (typeof error === \"string\") {\n span.recordException(new Error(error));\n } else {\n span.recordException(new Error(JSON.stringify(error)));\n }\n\n span.setStatus({ code: SpanStatusCode.ERROR });\n}\n","import { DiagConsoleLogger, DiagLogLevel, TracerProvider, diag } from \"@opentelemetry/api\";\nimport { logs } from \"@opentelemetry/api-logs\";\nimport { OTLPLogExporter } from \"@opentelemetry/exporter-logs-otlp-http\";\nimport { OTLPTraceExporter } from \"@opentelemetry/exporter-trace-otlp-http\";\nimport {\n registerInstrumentations,\n type InstrumentationOption,\n} from \"@opentelemetry/instrumentation\";\nimport {\n DetectorSync,\n IResource,\n Resource,\n ResourceAttributes,\n ResourceDetectionConfig,\n detectResourcesSync,\n processDetectorSync,\n} from \"@opentelemetry/resources\";\nimport {\n BatchLogRecordProcessor,\n LoggerProvider,\n SimpleLogRecordProcessor,\n} from \"@opentelemetry/sdk-logs\";\nimport {\n BatchSpanProcessor,\n NodeTracerProvider,\n SimpleSpanProcessor,\n SpanExporter,\n} from \"@opentelemetry/sdk-trace-node\";\nimport { SemanticResourceAttributes } from \"@opentelemetry/semantic-conventions\";\nimport {\n OTEL_ATTRIBUTE_PER_EVENT_COUNT_LIMIT,\n OTEL_ATTRIBUTE_PER_LINK_COUNT_LIMIT,\n OTEL_LINK_COUNT_LIMIT,\n OTEL_LOG_ATTRIBUTE_COUNT_LIMIT,\n OTEL_LOG_ATTRIBUTE_VALUE_LENGTH_LIMIT,\n OTEL_SPAN_ATTRIBUTE_COUNT_LIMIT,\n OTEL_SPAN_ATTRIBUTE_VALUE_LENGTH_LIMIT,\n OTEL_SPAN_EVENT_COUNT_LIMIT,\n} from \"../limits\";\nimport { SemanticInternalAttributes } from \"../semanticInternalAttributes\";\nimport { TaskContextLogProcessor, TaskContextSpanProcessor } from \"../tasks/taskContextManager\";\nimport { getEnvVar } from \"../utils/getEnv\";\n\nclass AsyncResourceDetector implements DetectorSync {\n private _promise: Promise<ResourceAttributes>;\n private _resolver?: (value: ResourceAttributes) => void;\n private _resolved: boolean = false;\n\n constructor() {\n this._promise = new Promise((resolver) => {\n this._resolver = resolver;\n });\n }\n\n detect(_config?: ResourceDetectionConfig): Resource {\n return new Resource({}, this._promise);\n }\n\n resolveWithAttributes(attributes: ResourceAttributes) {\n if (!this._resolver) {\n throw new Error(\"Resolver not available\");\n }\n\n if (this._resolved) {\n return;\n }\n\n this._resolved = true;\n this._resolver(attributes);\n }\n}\n\nexport type TracingDiagnosticLogLevel =\n | \"none\"\n | \"error\"\n | \"warn\"\n | \"info\"\n | \"debug\"\n | \"verbose\"\n | \"all\";\n\nexport type TracingSDKConfig = {\n url: string;\n forceFlushTimeoutMillis?: number;\n resource?: IResource;\n instrumentations?: InstrumentationOption[];\n diagLogLevel?: TracingDiagnosticLogLevel;\n};\n\nexport class TracingSDK {\n public readonly asyncResourceDetector = new AsyncResourceDetector();\n private readonly _logProvider: LoggerProvider;\n private readonly _spanExporter: SpanExporter;\n private readonly _traceProvider: NodeTracerProvider;\n\n public readonly getLogger: LoggerProvider[\"getLogger\"];\n public readonly getTracer: TracerProvider[\"getTracer\"];\n\n constructor(private readonly config: TracingSDKConfig) {\n setLogLevel(config.diagLogLevel ?? \"none\");\n\n const envResourceAttributesSerialized = getEnvVar(\"OTEL_RESOURCE_ATTRIBUTES\");\n const envResourceAttributes = envResourceAttributesSerialized\n ? JSON.parse(envResourceAttributesSerialized)\n : {};\n\n const commonResources = detectResourcesSync({\n detectors: [this.asyncResourceDetector, processDetectorSync],\n })\n .merge(\n new Resource({\n [SemanticResourceAttributes.CLOUD_PROVIDER]: \"trigger.dev\",\n [SemanticInternalAttributes.TRIGGER]: true,\n })\n )\n .merge(config.resource ?? new Resource({}))\n .merge(new Resource(envResourceAttributes));\n\n const traceProvider = new NodeTracerProvider({\n forceFlushTimeoutMillis: config.forceFlushTimeoutMillis ?? 500,\n resource: commonResources,\n spanLimits: {\n attributeCountLimit: OTEL_SPAN_ATTRIBUTE_COUNT_LIMIT,\n attributeValueLengthLimit: OTEL_SPAN_ATTRIBUTE_VALUE_LENGTH_LIMIT,\n eventCountLimit: OTEL_SPAN_EVENT_COUNT_LIMIT,\n attributePerEventCountLimit: OTEL_ATTRIBUTE_PER_EVENT_COUNT_LIMIT,\n linkCountLimit: OTEL_LINK_COUNT_LIMIT,\n attributePerLinkCountLimit: OTEL_ATTRIBUTE_PER_LINK_COUNT_LIMIT,\n },\n });\n\n const spanExporter = new OTLPTraceExporter({\n url: `${config.url}/v1/traces`,\n timeoutMillis: config.forceFlushTimeoutMillis ?? 1000,\n });\n\n traceProvider.addSpanProcessor(\n new TaskContextSpanProcessor(\n getEnvVar(\"OTEL_BATCH_PROCESSING_ENABLED\") === \"1\"\n ? new BatchSpanProcessor(spanExporter, {\n maxExportBatchSize: parseInt(getEnvVar(\"OTEL_SPAN_MAX_EXPORT_BATCH_SIZE\") ?? \"64\"),\n scheduledDelayMillis: parseInt(\n getEnvVar(\"OTEL_SPAN_SCHEDULED_DELAY_MILLIS\") ?? \"200\"\n ),\n exportTimeoutMillis: parseInt(\n getEnvVar(\"OTEL_SPAN_EXPORT_TIMEOUT_MILLIS\") ?? \"30000\"\n ),\n maxQueueSize: parseInt(getEnvVar(\"OTEL_SPAN_MAX_QUEUE_SIZE\") ?? \"512\"),\n })\n : new SimpleSpanProcessor(spanExporter)\n )\n );\n\n traceProvider.register();\n\n registerInstrumentations({\n instrumentations: config.instrumentations ?? [],\n tracerProvider: traceProvider,\n });\n\n const logExporter = new OTLPLogExporter({\n url: `${config.url}/v1/logs`,\n });\n\n // To start a logger, you first need to initialize the Logger provider.\n const loggerProvider = new LoggerProvider({\n resource: commonResources,\n logRecordLimits: {\n attributeCountLimit: OTEL_LOG_ATTRIBUTE_COUNT_LIMIT,\n attributeValueLengthLimit: OTEL_LOG_ATTRIBUTE_VALUE_LENGTH_LIMIT,\n },\n });\n\n loggerProvider.addLogRecordProcessor(\n new TaskContextLogProcessor(\n getEnvVar(\"OTEL_BATCH_PROCESSING_ENABLED\") === \"1\"\n ? new BatchLogRecordProcessor(logExporter, {\n maxExportBatchSize: parseInt(getEnvVar(\"OTEL_LOG_MAX_EXPORT_BATCH_SIZE\") ?? \"64\"),\n scheduledDelayMillis: parseInt(getEnvVar(\"OTEL_LOG_SCHEDULED_DELAY_MILLIS\") ?? \"200\"),\n exportTimeoutMillis: parseInt(getEnvVar(\"OTEL_LOG_EXPORT_TIMEOUT_MILLIS\") ?? \"30000\"),\n maxQueueSize: parseInt(getEnvVar(\"OTEL_LOG_MAX_QUEUE_SIZE\") ?? \"512\"),\n })\n : new SimpleLogRecordProcessor(logExporter)\n )\n );\n\n this._logProvider = loggerProvider;\n this._spanExporter = spanExporter;\n this._traceProvider = traceProvider;\n\n logs.setGlobalLoggerProvider(loggerProvider);\n\n this.getLogger = loggerProvider.getLogger.bind(loggerProvider);\n this.getTracer = traceProvider.getTracer.bind(traceProvider);\n }\n\n public async flush() {\n await this._traceProvider.forceFlush();\n await this._logProvider.forceFlush();\n }\n\n public async shutdown() {\n await this._traceProvider.shutdown();\n await this._logProvider.shutdown();\n }\n}\n\nfunction setLogLevel(level: TracingDiagnosticLogLevel) {\n let diagLogLevel: DiagLogLevel;\n\n switch (level) {\n case \"none\":\n diagLogLevel = DiagLogLevel.NONE;\n break;\n case \"error\":\n diagLogLevel = DiagLogLevel.ERROR;\n break;\n case \"warn\":\n diagLogLevel = DiagLogLevel.WARN;\n break;\n case \"info\":\n diagLogLevel = DiagLogLevel.INFO;\n break;\n case \"debug\":\n diagLogLevel = DiagLogLevel.DEBUG;\n break;\n case \"verbose\":\n diagLogLevel = DiagLogLevel.VERBOSE;\n break;\n case \"all\":\n diagLogLevel = DiagLogLevel.ALL;\n break;\n default:\n diagLogLevel = DiagLogLevel.NONE;\n }\n\n diag.setLogger(new DiagConsoleLogger(), diagLogLevel);\n}\n","import { AttributeValue, Attributes } from \"@opentelemetry/api\";\n\nexport const OTEL_SPAN_ATTRIBUTE_COUNT_LIMIT = 256;\nexport const OTEL_LOG_ATTRIBUTE_COUNT_LIMIT = 256;\nexport const OTEL_SPAN_ATTRIBUTE_VALUE_LENGTH_LIMIT = 1028;\nexport const OTEL_LOG_ATTRIBUTE_VALUE_LENGTH_LIMIT = 1028;\nexport const OTEL_SPAN_EVENT_COUNT_LIMIT = 10;\nexport const OTEL_LINK_COUNT_LIMIT = 2;\nexport const OTEL_ATTRIBUTE_PER_LINK_COUNT_LIMIT = 10;\nexport const OTEL_ATTRIBUTE_PER_EVENT_COUNT_LIMIT = 10;\nexport const OFFLOAD_IO_PACKET_LENGTH_LIMIT = 128 * 1024;\n\nexport function imposeAttributeLimits(attributes: Attributes): Attributes {\n const newAttributes: Attributes = {};\n\n for (const [key, value] of Object.entries(attributes)) {\n if (calculateAttributeValueLength(value) > OTEL_SPAN_ATTRIBUTE_VALUE_LENGTH_LIMIT) {\n continue;\n }\n\n if (Object.keys(newAttributes).length >= OTEL_SPAN_ATTRIBUTE_COUNT_LIMIT) {\n break;\n }\n\n newAttributes[key] = value;\n }\n\n return newAttributes;\n}\n\nfunction calculateAttributeValueLength(value: AttributeValue | undefined | null): number {\n if (value === undefined || value === null) {\n return 0;\n }\n\n if (typeof value === \"string\") {\n return value.length;\n }\n\n if (typeof value === \"number\") {\n return 8;\n }\n\n if (typeof value === \"boolean\") {\n return 4;\n }\n\n if (Array.isArray(value)) {\n return value.reduce((acc: number, v) => acc + calculateAttributeValueLength(v), 0);\n }\n\n return 0;\n}\n","export const SemanticInternalAttributes = {\n ENVIRONMENT_ID: \"ctx.environment.id\",\n ENVIRONMENT_TYPE: \"ctx.environment.type\",\n ORGANIZATION_ID: \"ctx.organization.id\",\n ORGANIZATION_SLUG: \"ctx.organization.slug\",\n ORGANIZATION_NAME: \"ctx.organization.name\",\n PROJECT_ID: \"ctx.project.id\",\n PROJECT_REF: \"ctx.project.ref\",\n PROJECT_NAME: \"ctx.project.title\",\n PROJECT_DIR: \"project.dir\",\n ATTEMPT_ID: \"ctx.attempt.id\",\n ATTEMPT_NUMBER: \"ctx.attempt.number\",\n RUN_ID: \"ctx.run.id\",\n RUN_IS_TEST: \"ctx.run.isTest\",\n BATCH_ID: \"ctx.batch.id\",\n TASK_SLUG: \"ctx.task.id\",\n TASK_PATH: \"ctx.task.filePath\",\n TASK_EXPORT_NAME: \"ctx.task.exportName\",\n QUEUE_NAME: \"ctx.queue.name\",\n QUEUE_ID: \"ctx.queue.id\",\n SPAN_PARTIAL: \"$span.partial\",\n SPAN_ID: \"$span.span_id\",\n OUTPUT: \"$output\",\n OUTPUT_TYPE: \"$mime_type_output\",\n STYLE: \"$style\",\n STYLE_ICON: \"$style.icon\",\n STYLE_VARIANT: \"$style.variant\",\n STYLE_ACCESSORY: \"$style.accessory\",\n METADATA: \"$metadata\",\n TRIGGER: \"$trigger\",\n PAYLOAD: \"$payload\",\n PAYLOAD_TYPE: \"$mime_type_payload\",\n SHOW: \"$show\",\n SHOW_ACTIONS: \"$show.actions\",\n WORKER_ID: \"worker.id\",\n WORKER_VERSION: \"worker.version\",\n CLI_VERSION: \"cli.version\",\n SDK_VERSION: \"sdk.version\",\n SDK_LANGUAGE: \"sdk.language\",\n RETRY_AT: \"retry.at\",\n RETRY_DELAY: \"retry.delay\",\n RETRY_COUNT: \"retry.count\",\n};\n","import { Attributes } from \"@opentelemetry/api\";\n\nexport function flattenAttributes(\n obj: Record<string, unknown> | Array<unknown> | string | boolean | number | null | undefined,\n prefix?: string\n): Attributes {\n const result: Attributes = {};\n\n // Check if obj is null or undefined\n if (!obj) {\n return result;\n }\n\n if (typeof obj === \"string\") {\n result[prefix || \"\"] = obj;\n return result;\n }\n\n if (typeof obj === \"number\") {\n result[prefix || \"\"] = obj;\n return result;\n }\n\n if (typeof obj === \"boolean\") {\n result[prefix || \"\"] = obj;\n return result;\n }\n\n for (const [key, value] of Object.entries(obj)) {\n const newPrefix = `${prefix ? `${prefix}.` : \"\"}${key}`;\n if (Array.isArray(value)) {\n for (let i = 0; i < value.length; i++) {\n if (typeof value[i] === \"object\" && value[i] !== null) {\n // update null check here as well\n Object.assign(result, flattenAttributes(value[i], `${newPrefix}.[${i}]`));\n } else {\n result[`${newPrefix}.[${i}]`] = value[i];\n }\n }\n } else if (isRecord(value)) {\n // update null check here\n Object.assign(result, flattenAttributes(value, newPrefix));\n } else {\n if (typeof value === \"number\" || typeof value === \"string\" || typeof value === \"boolean\") {\n result[newPrefix] = value;\n }\n }\n }\n\n return result;\n}\n\nfunction isRecord(value: unknown): value is Record<string, unknown> {\n return value !== null && typeof value === \"object\" && !Array.isArray(value);\n}\n\nexport function unflattenAttributes(obj: Attributes): Record<string, unknown> {\n if (typeof obj !== \"object\" || obj === null || Array.isArray(obj)) {\n return obj;\n }\n\n const result: Record<string, unknown> = {};\n\n for (const [key, value] of Object.entries(obj)) {\n const parts = key.split(\".\").reduce((acc, part) => {\n // Splitting array indices as separate parts\n if (detectIsArrayIndex(part)) {\n acc.push(part);\n } else {\n acc.push(...part.split(/\\.\\[(.*?)\\]/).filter(Boolean));\n }\n return acc;\n }, [] as string[]);\n\n let current: Record<string, unknown> = result;\n for (let i = 0; i < parts.length - 1; i++) {\n const part = parts[i];\n const isArray = detectIsArrayIndex(part);\n const cleanPart = isArray ? part.substring(1, part.length - 1) : part;\n const nextIsArray = detectIsArrayIndex(parts[i + 1]);\n if (!current[cleanPart]) {\n current[cleanPart] = nextIsArray ? [] : {};\n }\n current = current[cleanPart] as Record<string, unknown>;\n }\n const lastPart = parts[parts.length - 1];\n const cleanLastPart = detectIsArrayIndex(lastPart)\n ? parseInt(lastPart.substring(1, lastPart.length - 1), 10)\n : lastPart;\n current[cleanLastPart] = value;\n }\n\n return result;\n}\n\nfunction detectIsArrayIndex(key: string): boolean {\n const match = key.match(/^\\[(\\d+)\\]$/);\n\n if (match) {\n return true;\n }\n\n return false;\n}\n\nexport function primitiveValueOrflattenedAttributes(\n obj: Record<string, unknown> | Array<unknown> | string | boolean | number | undefined,\n prefix: string | undefined\n): Attributes | string | number | boolean | undefined {\n if (\n typeof obj === \"string\" ||\n typeof obj === \"number\" ||\n typeof obj === \"boolean\" ||\n obj === null ||\n obj === undefined\n ) {\n return obj;\n }\n\n const attributes = flattenAttributes(obj, prefix);\n\n if (\n prefix !== undefined &&\n typeof attributes[prefix] !== \"undefined\" &&\n attributes[prefix] !== null\n ) {\n return attributes[prefix] as unknown as Attributes;\n }\n\n return attributes;\n}\n","import { AsyncLocalStorage } from \"node:async_hooks\";\n\nexport class SafeAsyncLocalStorage<T> {\n private storage: AsyncLocalStorage<T>;\n\n constructor() {\n this.storage = new AsyncLocalStorage<T>();\n }\n\n runWith<R extends (...args: any[]) => Promise<any>>(context: T, fn: R): Promise<ReturnType<R>> {\n return this.storage.run(context, fn);\n }\n\n getStore(): T | undefined {\n return this.storage.getStore();\n }\n}\n","import { Attributes, Context } from \"@opentelemetry/api\";\nimport { TaskRunContext, type BackgroundWorkerProperties } from \"../schemas\";\nimport { flattenAttributes } from \"../utils/flattenAttributes\";\nimport { SafeAsyncLocalStorage } from \"../utils/safeAsyncLocalStorage\";\n\ntype TaskContext = {\n ctx: TaskRunContext;\n worker: BackgroundWorkerProperties;\n};\n\nexport class TaskContextManager {\n private _storage: SafeAsyncLocalStorage<TaskContext> = new SafeAsyncLocalStorage<TaskContext>();\n\n get isInsideTask(): boolean {\n return this.#getStore() !== undefined;\n }\n\n get ctx(): TaskRunContext | undefined {\n const store = this.#getStore();\n return store?.ctx;\n }\n\n get worker(): BackgroundWorkerProperties | undefined {\n const store = this.#getStore();\n return store?.worker;\n }\n\n get attributes(): Attributes {\n if (this.ctx) {\n return {\n ...this.contextAttributes,\n ...this.workerAttributes,\n };\n }\n\n return {};\n }\n\n get workerAttributes(): Attributes {\n if (this.worker) {\n return {\n [SemanticInternalAttributes.WORKER_ID]: this.worker.id,\n [SemanticInternalAttributes.WORKER_VERSION]: this.worker.version,\n };\n }\n\n return {};\n }\n\n get contextAttributes(): Attributes {\n if (this.ctx) {\n return {\n [SemanticInternalAttributes.ATTEMPT_ID]: this.ctx.attempt.id,\n [SemanticInternalAttributes.ATTEMPT_NUMBER]: this.ctx.attempt.number,\n [SemanticInternalAttributes.TASK_SLUG]: this.ctx.task.id,\n [SemanticInternalAttributes.TASK_PATH]: this.ctx.task.filePath,\n [SemanticInternalAttributes.TASK_EXPORT_NAME]: this.ctx.task.exportName,\n [SemanticInternalAttributes.QUEUE_NAME]: this.ctx.queue.name,\n [SemanticInternalAttributes.QUEUE_ID]: this.ctx.queue.id,\n [SemanticInternalAttributes.ENVIRONMENT_ID]: this.ctx.environment.id,\n [SemanticInternalAttributes.ENVIRONMENT_TYPE]: this.ctx.environment.type,\n [SemanticInternalAttributes.ORGANIZATION_ID]: this.ctx.organization.id,\n [SemanticInternalAttributes.PROJECT_ID]: this.ctx.project.id,\n [SemanticInternalAttributes.PROJECT_REF]: this.ctx.project.ref,\n [SemanticInternalAttributes.PROJECT_NAME]: this.ctx.project.name,\n [SemanticInternalAttributes.RUN_ID]: this.ctx.run.id,\n [SemanticInternalAttributes.RUN_IS_TEST]: this.ctx.run.isTest,\n [SemanticInternalAttributes.ORGANIZATION_SLUG]: this.ctx.organization.slug,\n [SemanticInternalAttributes.ORGANIZATION_NAME]: this.ctx.organization.name,\n [SemanticInternalAttributes.BATCH_ID]: this.ctx.batch?.id,\n };\n }\n\n return {};\n }\n\n runWith<R extends (...args: any[]) => Promise<any>>(\n context: TaskContext,\n fn: R\n ): Promise<ReturnType<R>> {\n return this._storage.runWith(context, fn);\n }\n\n #getStore(): TaskContext | undefined {\n return this._storage.getStore();\n }\n}\n\nexport const taskContextManager = new TaskContextManager();\n\nimport { LogRecord, LogRecordProcessor } from \"@opentelemetry/sdk-logs\";\nimport { Span, SpanProcessor } from \"@opentelemetry/sdk-trace-base\";\nimport { SemanticInternalAttributes } from \"../semanticInternalAttributes\";\n\nexport class TaskContextSpanProcessor implements SpanProcessor {\n private _innerProcessor: SpanProcessor;\n\n constructor(innerProcessor: SpanProcessor) {\n this._innerProcessor = innerProcessor;\n }\n\n // Called when a span starts\n onStart(span: Span, parentContext: Context): void {\n if (taskContextManager.ctx) {\n span.setAttributes(\n flattenAttributes(\n {\n [SemanticInternalAttributes.ATTEMPT_ID]: taskContextManager.ctx.attempt.id,\n [SemanticInternalAttributes.ATTEMPT_NUMBER]: taskContextManager.ctx.attempt.number,\n },\n SemanticInternalAttributes.METADATA\n )\n );\n }\n\n this._innerProcessor.onStart(span, parentContext);\n }\n\n // Delegate the rest of the methods to the wrapped processor\n\n onEnd(span: Span): void {\n this._innerProcessor.onEnd(span);\n }\n\n shutdown(): Promise<void> {\n return this._innerProcessor.shutdown();\n }\n\n forceFlush(): Promise<void> {\n return this._innerProcessor.forceFlush();\n }\n}\n\nexport class TaskContextLogProcessor implements LogRecordProcessor {\n private _innerProcessor: LogRecordProcessor;\n\n constructor(innerProcessor: LogRecordProcessor) {\n this._innerProcessor = innerProcessor;\n }\n forceFlush(): Promise<void> {\n return this._innerProcessor.forceFlush();\n }\n onEmit(logRecord: LogRecord, context?: Context | undefined): void {\n // Adds in the context attributes to the log record\n if (taskContextManager.ctx) {\n logRecord.setAttributes(\n flattenAttributes(\n {\n [SemanticInternalAttributes.ATTEMPT_ID]: taskContextManager.ctx.attempt.id,\n [SemanticInternalAttributes.ATTEMPT_NUMBER]: taskContextManager.ctx.attempt.number,\n },\n SemanticInternalAttributes.METADATA\n )\n );\n }\n\n this._innerProcessor.onEmit(logRecord, context);\n }\n shutdown(): Promise<void> {\n return this._innerProcessor.shutdown();\n }\n}\n","export function getEnvVar(name: string): string | undefined {\n // This could run in a non-Node.js environment (Bun, Deno, CF Worker, etc.), so don't just assume process.env is a thing\n if (typeof process !== \"undefined\" && typeof process.env === \"object\" && process.env !== null) {\n return process.env[name];\n }\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../../../src/v3/otel/index.ts","../../../src/v3/otel/tracingSDK.ts","../../../src/v3/limits.ts","../../../src/v3/semanticInternalAttributes.ts","../../../src/v3/utils/flattenAttributes.ts","../../../src/v3/utils/platform.ts","../../../src/v3/utils/globals.ts","../../../src/v3/taskContext/index.ts","../../../src/v3/task-context-api.ts","../../../src/v3/taskContext/otelProcessors.ts","../../../src/v3/utils/getEnv.ts","../../../package.json"],"names":["SpanStatusCode","DiagConsoleLogger","DiagLogLevel","diag","logs","OTLPLogExporter","OTLPTraceExporter","registerInstrumentations","Resource","detectResourcesSync","processDetectorSync","BatchLogRecordProcessor","LoggerProvider","SimpleLogRecordProcessor","BatchSpanProcessor","NodeTracerProvider","SimpleSpanProcessor","SemanticResourceAttributes","OTEL_SPAN_ATTRIBUTE_COUNT_LIMIT","OTEL_LOG_ATTRIBUTE_COUNT_LIMIT","OTEL_SPAN_ATTRIBUTE_VALUE_LENGTH_LIMIT","OTEL_LOG_ATTRIBUTE_VALUE_LENGTH_LIMIT","OTEL_SPAN_EVENT_COUNT_LIMIT","OTEL_LINK_COUNT_LIMIT","OTEL_ATTRIBUTE_PER_LINK_COUNT_LIMIT","OTEL_ATTRIBUTE_PER_EVENT_COUNT_LIMIT","OFFLOAD_IO_PACKET_LENGTH_LIMIT","SemanticInternalAttributes","ENVIRONMENT_ID","ENVIRONMENT_TYPE","ORGANIZATION_ID","ORGANIZATION_SLUG","ORGANIZATION_NAME","PROJECT_ID","PROJECT_REF","PROJECT_NAME","PROJECT_DIR","ATTEMPT_ID","ATTEMPT_NUMBER","RUN_ID","RUN_IS_TEST","BATCH_ID","TASK_SLUG","TASK_PATH","TASK_EXPORT_NAME","QUEUE_NAME","QUEUE_ID","MACHINE_PRESET_NAME","MACHINE_PRESET_CPU","MACHINE_PRESET_MEMORY","MACHINE_PRESET_CENTS_PER_MS","SPAN_PARTIAL","SPAN_ID","OUTPUT","OUTPUT_TYPE","STYLE","STYLE_ICON","STYLE_VARIANT","STYLE_ACCESSORY","METADATA","TRIGGER","PAYLOAD","PAYLOAD_TYPE","SHOW","SHOW_ACTIONS","WORKER_ID","WORKER_VERSION","CLI_VERSION","SDK_VERSION","SDK_LANGUAGE","RETRY_AT","RETRY_DELAY","RETRY_COUNT","LINK_TITLE","IDEMPOTENCY_KEY","USAGE_DURATION_MS","USAGE_COST_IN_CENTS","RATE_LIMIT_LIMIT","RATE_LIMIT_REMAINING","RATE_LIMIT_RESET","NULL_SENTINEL","flattenAttributes","obj","prefix","result","undefined","key","value","Object","entries","newPrefix","Array","isArray","i","length","assign","isRecord","_globalThis","globalThis","global","GLOBAL_TRIGGER_DOT_DEV_KEY","Symbol","for","_global","registerGlobal","type","instance","allowOverride","api","err","Error","getGlobal","unregisterGlobal","API_NAME","TaskContextAPI","getInstance","_instance","isInsideTask","ctx","worker","attributes","contextAttributes","workerAttributes","id","version","attempt","number","task","filePath","exportName","queue","name","environment","organization","project","ref","run","isTest","slug","batch","idempotencyKey","machine","cpu","memory","centsPerMs","disable","setGlobalTaskContext","taskContext","TaskContextSpanProcessor","constructor","innerProcessor","_innerProcessor","onStart","span","parentContext","setAttributes","onEnd","shutdown","forceFlush","TaskContextLogProcessor","onEmit","logRecord","context","getEnvVar","process","env","AsyncResourceDetector","_resolved","_promise","Promise","resolver","_resolver","detect","_config","resolveWithAttributes","TracingSDK","config","asyncResourceDetector","setLogLevel","diagLogLevel","envResourceAttributesSerialized","envResourceAttributes","JSON","parse","commonResources","detectors","merge","CLOUD_PROVIDER","resource","traceProvider","forceFlushTimeoutMillis","spanLimits","attributeCountLimit","attributeValueLengthLimit","eventCountLimit","attributePerEventCountLimit","linkCountLimit","attributePerLinkCountLimit","spanExporter","url","timeoutMillis","addSpanProcessor","maxExportBatchSize","parseInt","scheduledDelayMillis","exportTimeoutMillis","maxQueueSize","register","instrumentations","tracerProvider","logExporter","loggerProvider","logRecordLimits","addLogRecordProcessor","_logProvider","_spanExporter","_traceProvider","setGlobalLoggerProvider","getLogger","bind","getTracer","flush","all","level","NONE","ERROR","WARN","INFO","DEBUG","VERBOSE","ALL","setLogger","recordSpanException","error","recordException","sanitizeSpanError","replace","stringify","setStatus","code","sanitizedError","message","stack"],"mappings":"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","sourcesContent":["import { Span, SpanStatusCode } from \"@opentelemetry/api\";\n\nexport { TracingSDK, type TracingSDKConfig, type TracingDiagnosticLogLevel } from \"./tracingSDK\";\n\nexport function recordSpanException(span: Span, error: unknown) {\n if (error instanceof Error) {\n span.recordException(sanitizeSpanError(error));\n } else if (typeof error === \"string\") {\n span.recordException(error.replace(/\\0/g, \"\"));\n } else {\n span.recordException(JSON.stringify(error).replace(/\\0/g, \"\"));\n }\n\n span.setStatus({ code: SpanStatusCode.ERROR });\n}\n\nfunction sanitizeSpanError(error: Error) {\n // Create a new error object with the same name, message and stack trace\n const sanitizedError = new Error(error.message.replace(/\\0/g, \"\"));\n sanitizedError.name = error.name.replace(/\\0/g, \"\");\n sanitizedError.stack = error.stack?.replace(/\\0/g, \"\");\n\n return sanitizedError;\n}\n","import { DiagConsoleLogger, DiagLogLevel, TracerProvider, diag } from \"@opentelemetry/api\";\nimport { logs } from \"@opentelemetry/api-logs\";\nimport { OTLPLogExporter } from \"@opentelemetry/exporter-logs-otlp-http\";\nimport { OTLPTraceExporter } from \"@opentelemetry/exporter-trace-otlp-http\";\nimport {\n registerInstrumentations,\n type InstrumentationOption,\n} from \"@opentelemetry/instrumentation\";\nimport {\n DetectorSync,\n IResource,\n Resource,\n ResourceAttributes,\n ResourceDetectionConfig,\n detectResourcesSync,\n processDetectorSync,\n} from \"@opentelemetry/resources\";\nimport {\n BatchLogRecordProcessor,\n LoggerProvider,\n SimpleLogRecordProcessor,\n} from \"@opentelemetry/sdk-logs\";\nimport {\n BatchSpanProcessor,\n NodeTracerProvider,\n SimpleSpanProcessor,\n SpanExporter,\n} from \"@opentelemetry/sdk-trace-node\";\nimport { SemanticResourceAttributes } from \"@opentelemetry/semantic-conventions\";\nimport {\n OTEL_ATTRIBUTE_PER_EVENT_COUNT_LIMIT,\n OTEL_ATTRIBUTE_PER_LINK_COUNT_LIMIT,\n OTEL_LINK_COUNT_LIMIT,\n OTEL_LOG_ATTRIBUTE_COUNT_LIMIT,\n OTEL_LOG_ATTRIBUTE_VALUE_LENGTH_LIMIT,\n OTEL_SPAN_ATTRIBUTE_COUNT_LIMIT,\n OTEL_SPAN_ATTRIBUTE_VALUE_LENGTH_LIMIT,\n OTEL_SPAN_EVENT_COUNT_LIMIT,\n} from \"../limits\";\nimport { SemanticInternalAttributes } from \"../semanticInternalAttributes\";\nimport { TaskContextLogProcessor, TaskContextSpanProcessor } from \"../taskContext/otelProcessors\";\nimport { getEnvVar } from \"../utils/getEnv\";\nimport { version } from \"../../../package.json\";\n\nclass AsyncResourceDetector implements DetectorSync {\n private _promise: Promise<ResourceAttributes>;\n private _resolver?: (value: ResourceAttributes) => void;\n private _resolved: boolean = false;\n\n constructor() {\n this._promise = new Promise((resolver) => {\n this._resolver = resolver;\n });\n }\n\n detect(_config?: ResourceDetectionConfig): Resource {\n return new Resource({}, this._promise);\n }\n\n resolveWithAttributes(attributes: ResourceAttributes) {\n if (!this._resolver) {\n throw new Error(\"Resolver not available\");\n }\n\n if (this._resolved) {\n return;\n }\n\n this._resolved = true;\n this._resolver(attributes);\n }\n}\n\nexport type TracingDiagnosticLogLevel =\n | \"none\"\n | \"error\"\n | \"warn\"\n | \"info\"\n | \"debug\"\n | \"verbose\"\n | \"all\";\n\nexport type TracingSDKConfig = {\n url: string;\n forceFlushTimeoutMillis?: number;\n resource?: IResource;\n instrumentations?: InstrumentationOption[];\n diagLogLevel?: TracingDiagnosticLogLevel;\n};\n\nexport class TracingSDK {\n public readonly asyncResourceDetector = new AsyncResourceDetector();\n private readonly _logProvider: LoggerProvider;\n private readonly _spanExporter: SpanExporter;\n private readonly _traceProvider: NodeTracerProvider;\n\n public readonly getLogger: LoggerProvider[\"getLogger\"];\n public readonly getTracer: TracerProvider[\"getTracer\"];\n\n constructor(private readonly config: TracingSDKConfig) {\n setLogLevel(config.diagLogLevel ?? \"none\");\n\n const envResourceAttributesSerialized = getEnvVar(\"OTEL_RESOURCE_ATTRIBUTES\");\n const envResourceAttributes = envResourceAttributesSerialized\n ? JSON.parse(envResourceAttributesSerialized)\n : {};\n\n const commonResources = detectResourcesSync({\n detectors: [this.asyncResourceDetector, processDetectorSync],\n })\n .merge(\n new Resource({\n [SemanticResourceAttributes.CLOUD_PROVIDER]: \"trigger.dev\",\n [SemanticInternalAttributes.TRIGGER]: true,\n [SemanticInternalAttributes.CLI_VERSION]: version,\n })\n )\n .merge(config.resource ?? new Resource({}))\n .merge(new Resource(envResourceAttributes));\n\n const traceProvider = new NodeTracerProvider({\n forceFlushTimeoutMillis: config.forceFlushTimeoutMillis,\n resource: commonResources,\n spanLimits: {\n attributeCountLimit: OTEL_SPAN_ATTRIBUTE_COUNT_LIMIT,\n attributeValueLengthLimit: OTEL_SPAN_ATTRIBUTE_VALUE_LENGTH_LIMIT,\n eventCountLimit: OTEL_SPAN_EVENT_COUNT_LIMIT,\n attributePerEventCountLimit: OTEL_ATTRIBUTE_PER_EVENT_COUNT_LIMIT,\n linkCountLimit: OTEL_LINK_COUNT_LIMIT,\n attributePerLinkCountLimit: OTEL_ATTRIBUTE_PER_LINK_COUNT_LIMIT,\n },\n });\n\n const spanExporter = new OTLPTraceExporter({\n url: `${config.url}/v1/traces`,\n timeoutMillis: config.forceFlushTimeoutMillis,\n });\n\n traceProvider.addSpanProcessor(\n new TaskContextSpanProcessor(\n getEnvVar(\"OTEL_BATCH_PROCESSING_ENABLED\") === \"1\"\n ? new BatchSpanProcessor(spanExporter, {\n maxExportBatchSize: parseInt(getEnvVar(\"OTEL_SPAN_MAX_EXPORT_BATCH_SIZE\") ?? \"64\"),\n scheduledDelayMillis: parseInt(\n getEnvVar(\"OTEL_SPAN_SCHEDULED_DELAY_MILLIS\") ?? \"200\"\n ),\n exportTimeoutMillis: parseInt(\n getEnvVar(\"OTEL_SPAN_EXPORT_TIMEOUT_MILLIS\") ?? \"30000\"\n ),\n maxQueueSize: parseInt(getEnvVar(\"OTEL_SPAN_MAX_QUEUE_SIZE\") ?? \"512\"),\n })\n : new SimpleSpanProcessor(spanExporter)\n )\n );\n\n traceProvider.register();\n\n registerInstrumentations({\n instrumentations: config.instrumentations ?? [],\n tracerProvider: traceProvider,\n });\n\n const logExporter = new OTLPLogExporter({\n url: `${config.url}/v1/logs`,\n });\n\n // To start a logger, you first need to initialize the Logger provider.\n const loggerProvider = new LoggerProvider({\n resource: commonResources,\n logRecordLimits: {\n attributeCountLimit: OTEL_LOG_ATTRIBUTE_COUNT_LIMIT,\n attributeValueLengthLimit: OTEL_LOG_ATTRIBUTE_VALUE_LENGTH_LIMIT,\n },\n });\n\n loggerProvider.addLogRecordProcessor(\n new TaskContextLogProcessor(\n getEnvVar(\"OTEL_BATCH_PROCESSING_ENABLED\") === \"1\"\n ? new BatchLogRecordProcessor(logExporter, {\n maxExportBatchSize: parseInt(getEnvVar(\"OTEL_LOG_MAX_EXPORT_BATCH_SIZE\") ?? \"64\"),\n scheduledDelayMillis: parseInt(getEnvVar(\"OTEL_LOG_SCHEDULED_DELAY_MILLIS\") ?? \"200\"),\n exportTimeoutMillis: parseInt(getEnvVar(\"OTEL_LOG_EXPORT_TIMEOUT_MILLIS\") ?? \"30000\"),\n maxQueueSize: parseInt(getEnvVar(\"OTEL_LOG_MAX_QUEUE_SIZE\") ?? \"512\"),\n })\n : new SimpleLogRecordProcessor(logExporter)\n )\n );\n\n this._logProvider = loggerProvider;\n this._spanExporter = spanExporter;\n this._traceProvider = traceProvider;\n\n logs.setGlobalLoggerProvider(loggerProvider);\n\n this.getLogger = loggerProvider.getLogger.bind(loggerProvider);\n this.getTracer = traceProvider.getTracer.bind(traceProvider);\n }\n\n public async flush() {\n await Promise.all([this._traceProvider.forceFlush(), this._logProvider.forceFlush()]);\n }\n\n public async shutdown() {\n await Promise.all([this._traceProvider.shutdown(), this._logProvider.shutdown()]);\n }\n}\n\nfunction setLogLevel(level: TracingDiagnosticLogLevel) {\n let diagLogLevel: DiagLogLevel;\n\n switch (level) {\n case \"none\":\n diagLogLevel = DiagLogLevel.NONE;\n break;\n case \"error\":\n diagLogLevel = DiagLogLevel.ERROR;\n break;\n case \"warn\":\n diagLogLevel = DiagLogLevel.WARN;\n break;\n case \"info\":\n diagLogLevel = DiagLogLevel.INFO;\n break;\n case \"debug\":\n diagLogLevel = DiagLogLevel.DEBUG;\n break;\n case \"verbose\":\n diagLogLevel = DiagLogLevel.VERBOSE;\n break;\n case \"all\":\n diagLogLevel = DiagLogLevel.ALL;\n break;\n default:\n diagLogLevel = DiagLogLevel.NONE;\n }\n\n diag.setLogger(new DiagConsoleLogger(), diagLogLevel);\n}\n","import { AttributeValue, Attributes } from \"@opentelemetry/api\";\n\nexport const OTEL_SPAN_ATTRIBUTE_COUNT_LIMIT = 256;\nexport const OTEL_LOG_ATTRIBUTE_COUNT_LIMIT = 256;\nexport const OTEL_SPAN_ATTRIBUTE_VALUE_LENGTH_LIMIT = 1028;\nexport const OTEL_LOG_ATTRIBUTE_VALUE_LENGTH_LIMIT = 1028;\nexport const OTEL_SPAN_EVENT_COUNT_LIMIT = 10;\nexport const OTEL_LINK_COUNT_LIMIT = 2;\nexport const OTEL_ATTRIBUTE_PER_LINK_COUNT_LIMIT = 10;\nexport const OTEL_ATTRIBUTE_PER_EVENT_COUNT_LIMIT = 10;\nexport const OFFLOAD_IO_PACKET_LENGTH_LIMIT = 128 * 1024;\n\nexport function imposeAttributeLimits(attributes: Attributes): Attributes {\n const newAttributes: Attributes = {};\n\n for (const [key, value] of Object.entries(attributes)) {\n if (calculateAttributeValueLength(value) > OTEL_SPAN_ATTRIBUTE_VALUE_LENGTH_LIMIT) {\n continue;\n }\n\n if (Object.keys(newAttributes).length >= OTEL_SPAN_ATTRIBUTE_COUNT_LIMIT) {\n break;\n }\n\n newAttributes[key] = value;\n }\n\n return newAttributes;\n}\n\nfunction calculateAttributeValueLength(value: AttributeValue | undefined | null): number {\n if (value === undefined || value === null) {\n return 0;\n }\n\n if (typeof value === \"string\") {\n return value.length;\n }\n\n if (typeof value === \"number\") {\n return 8;\n }\n\n if (typeof value === \"boolean\") {\n return 4;\n }\n\n if (Array.isArray(value)) {\n return value.reduce((acc: number, v) => acc + calculateAttributeValueLength(v), 0);\n }\n\n return 0;\n}\n","export const SemanticInternalAttributes = {\n ENVIRONMENT_ID: \"ctx.environment.id\",\n ENVIRONMENT_TYPE: \"ctx.environment.type\",\n ORGANIZATION_ID: \"ctx.organization.id\",\n ORGANIZATION_SLUG: \"ctx.organization.slug\",\n ORGANIZATION_NAME: \"ctx.organization.name\",\n PROJECT_ID: \"ctx.project.id\",\n PROJECT_REF: \"ctx.project.ref\",\n PROJECT_NAME: \"ctx.project.title\",\n PROJECT_DIR: \"project.dir\",\n ATTEMPT_ID: \"ctx.attempt.id\",\n ATTEMPT_NUMBER: \"ctx.attempt.number\",\n RUN_ID: \"ctx.run.id\",\n RUN_IS_TEST: \"ctx.run.isTest\",\n BATCH_ID: \"ctx.batch.id\",\n TASK_SLUG: \"ctx.task.id\",\n TASK_PATH: \"ctx.task.filePath\",\n TASK_EXPORT_NAME: \"ctx.task.exportName\",\n QUEUE_NAME: \"ctx.queue.name\",\n QUEUE_ID: \"ctx.queue.id\",\n MACHINE_PRESET_NAME: \"ctx.machine.name\",\n MACHINE_PRESET_CPU: \"ctx.machine.cpu\",\n MACHINE_PRESET_MEMORY: \"ctx.machine.memory\",\n MACHINE_PRESET_CENTS_PER_MS: \"ctx.machine.centsPerMs\",\n SPAN_PARTIAL: \"$span.partial\",\n SPAN_ID: \"$span.span_id\",\n OUTPUT: \"$output\",\n OUTPUT_TYPE: \"$mime_type_output\",\n STYLE: \"$style\",\n STYLE_ICON: \"$style.icon\",\n STYLE_VARIANT: \"$style.variant\",\n STYLE_ACCESSORY: \"$style.accessory\",\n METADATA: \"$metadata\",\n TRIGGER: \"$trigger\",\n PAYLOAD: \"$payload\",\n PAYLOAD_TYPE: \"$mime_type_payload\",\n SHOW: \"$show\",\n SHOW_ACTIONS: \"$show.actions\",\n WORKER_ID: \"worker.id\",\n WORKER_VERSION: \"worker.version\",\n CLI_VERSION: \"cli.version\",\n SDK_VERSION: \"sdk.version\",\n SDK_LANGUAGE: \"sdk.language\",\n RETRY_AT: \"retry.at\",\n RETRY_DELAY: \"retry.delay\",\n RETRY_COUNT: \"retry.count\",\n LINK_TITLE: \"$link.title\",\n IDEMPOTENCY_KEY: \"ctx.run.idempotencyKey\",\n USAGE_DURATION_MS: \"$usage.durationMs\",\n USAGE_COST_IN_CENTS: \"$usage.costInCents\",\n RATE_LIMIT_LIMIT: \"response.rateLimit.limit\",\n RATE_LIMIT_REMAINING: \"response.rateLimit.remaining\",\n RATE_LIMIT_RESET: \"response.rateLimit.reset\",\n};\n","import { Attributes } from \"@opentelemetry/api\";\n\nexport const NULL_SENTINEL = \"$@null((\";\n\nexport function flattenAttributes(\n obj: Record<string, unknown> | Array<unknown> | string | boolean | number | null | undefined,\n prefix?: string\n): Attributes {\n const result: Attributes = {};\n\n // Check if obj is null or undefined\n if (obj === undefined) {\n return result;\n }\n\n if (obj === null) {\n result[prefix || \"\"] = NULL_SENTINEL;\n return result;\n }\n\n if (typeof obj === \"string\") {\n result[prefix || \"\"] = obj;\n return result;\n }\n\n if (typeof obj === \"number\") {\n result[prefix || \"\"] = obj;\n return result;\n }\n\n if (typeof obj === \"boolean\") {\n result[prefix || \"\"] = obj;\n return result;\n }\n\n for (const [key, value] of Object.entries(obj)) {\n const newPrefix = `${prefix ? `${prefix}.` : \"\"}${Array.isArray(obj) ? `[${key}]` : key}`;\n if (Array.isArray(value)) {\n for (let i = 0; i < value.length; i++) {\n if (typeof value[i] === \"object\" && value[i] !== null) {\n // update null check here as well\n Object.assign(result, flattenAttributes(value[i], `${newPrefix}.[${i}]`));\n } else {\n if (value[i] === null) {\n result[`${newPrefix}.[${i}]`] = NULL_SENTINEL;\n } else {\n result[`${newPrefix}.[${i}]`] = value[i];\n }\n }\n }\n } else if (isRecord(value)) {\n // update null check here\n Object.assign(result, flattenAttributes(value, newPrefix));\n } else {\n if (typeof value === \"number\" || typeof value === \"string\" || typeof value === \"boolean\") {\n result[newPrefix] = value;\n } else if (value === null) {\n result[newPrefix] = NULL_SENTINEL;\n }\n }\n }\n\n return result;\n}\n\nfunction isRecord(value: unknown): value is Record<string, unknown> {\n return value !== null && typeof value === \"object\" && !Array.isArray(value);\n}\n\nexport function unflattenAttributes(\n obj: Attributes\n): Record<string, unknown> | string | number | boolean | null | undefined {\n if (typeof obj !== \"object\" || obj === null || Array.isArray(obj)) {\n return obj;\n }\n\n if (\n typeof obj === \"object\" &&\n obj !== null &&\n Object.keys(obj).length === 1 &&\n Object.keys(obj)[0] === \"\"\n ) {\n return rehydrateNull(obj[\"\"]) as any;\n }\n\n if (Object.keys(obj).length === 0) {\n return;\n }\n\n const result: Record<string, unknown> = {};\n\n for (const [key, value] of Object.entries(obj)) {\n const parts = key.split(\".\").reduce((acc, part) => {\n if (part.includes(\"[\")) {\n // Handling nested array indices\n const subparts = part.split(/\\[|\\]/).filter((p) => p !== \"\");\n acc.push(...subparts);\n } else {\n acc.push(part);\n }\n return acc;\n }, [] as string[]);\n\n let current: any = result;\n for (let i = 0; i < parts.length - 1; i++) {\n const part = parts[i];\n const nextPart = parts[i + 1];\n const isArray = /^\\d+$/.test(nextPart);\n if (isArray && !Array.isArray(current[part])) {\n current[part] = [];\n } else if (!isArray && current[part] === undefined) {\n current[part] = {};\n }\n current = current[part];\n }\n const lastPart = parts[parts.length - 1];\n current[lastPart] = rehydrateNull(value);\n }\n\n // Convert the result to an array if all top-level keys are numeric indices\n if (Object.keys(result).every((k) => /^\\d+$/.test(k))) {\n const maxIndex = Math.max(...Object.keys(result).map((k) => parseInt(k)));\n const arrayResult = Array(maxIndex + 1);\n for (const key in result) {\n arrayResult[parseInt(key)] = result[key];\n }\n return arrayResult as any;\n }\n\n return result;\n}\n\nexport function primitiveValueOrflattenedAttributes(\n obj: Record<string, unknown> | Array<unknown> | string | boolean | number | undefined,\n prefix: string | undefined\n): Attributes | string | number | boolean | undefined {\n if (\n typeof obj === \"string\" ||\n typeof obj === \"number\" ||\n typeof obj === \"boolean\" ||\n obj === null ||\n obj === undefined\n ) {\n return obj;\n }\n\n const attributes = flattenAttributes(obj, prefix);\n\n if (\n prefix !== undefined &&\n typeof attributes[prefix] !== \"undefined\" &&\n attributes[prefix] !== null\n ) {\n return attributes[prefix] as unknown as Attributes;\n }\n\n return attributes;\n}\n\nfunction rehydrateNull(value: any): any {\n if (value === NULL_SENTINEL) {\n return null;\n }\n\n return value;\n}\n","export const _globalThis = typeof globalThis === \"object\" ? globalThis : global;\n","import { ApiClientConfiguration } from \"../apiClientManager/types\";\nimport { Clock } from \"../clock/clock\";\nimport type { RuntimeManager } from \"../runtime/manager\";\nimport { TaskCatalog } from \"../task-catalog/catalog\";\nimport { TaskContext } from \"../taskContext/types\";\nimport { UsageManager } from \"../usage/types\";\nimport { _globalThis } from \"./platform\";\n\nconst GLOBAL_TRIGGER_DOT_DEV_KEY = Symbol.for(`dev.trigger.ts.api`);\n\nconst _global = _globalThis as TriggerDotDevGlobal;\n\nexport function registerGlobal<Type extends keyof TriggerDotDevGlobalAPI>(\n type: Type,\n instance: TriggerDotDevGlobalAPI[Type],\n allowOverride = false\n): boolean {\n const api = (_global[GLOBAL_TRIGGER_DOT_DEV_KEY] = _global[GLOBAL_TRIGGER_DOT_DEV_KEY] ?? {});\n\n if (!allowOverride && api[type]) {\n // already registered an API of this type\n const err = new Error(`trigger.dev: Attempted duplicate registration of API: ${type}`);\n return false;\n }\n\n api[type] = instance;\n\n return true;\n}\n\nexport function getGlobal<Type extends keyof TriggerDotDevGlobalAPI>(\n type: Type\n): TriggerDotDevGlobalAPI[Type] | undefined {\n return _global[GLOBAL_TRIGGER_DOT_DEV_KEY]?.[type];\n}\n\nexport function unregisterGlobal(type: keyof TriggerDotDevGlobalAPI) {\n const api = _global[GLOBAL_TRIGGER_DOT_DEV_KEY];\n\n if (api) {\n delete api[type];\n }\n}\n\ntype TriggerDotDevGlobal = {\n [GLOBAL_TRIGGER_DOT_DEV_KEY]?: TriggerDotDevGlobalAPI;\n};\n\ntype TriggerDotDevGlobalAPI = {\n runtime?: RuntimeManager;\n logger?: any;\n clock?: Clock;\n usage?: UsageManager;\n [\"task-catalog\"]?: TaskCatalog;\n [\"task-context\"]?: TaskContext;\n [\"api-client\"]?: ApiClientConfiguration;\n};\n","import { Attributes } from \"@opentelemetry/api\";\nimport { BackgroundWorkerProperties, TaskRunContext } from \"../schemas\";\nimport { getGlobal, registerGlobal, unregisterGlobal } from \"../utils/globals\";\nimport { TaskContext } from \"./types\";\nimport { SemanticInternalAttributes } from \"../semanticInternalAttributes\";\n\nconst API_NAME = \"task-context\";\n\nexport class TaskContextAPI {\n private static _instance?: TaskContextAPI;\n\n private constructor() {}\n\n public static getInstance(): TaskContextAPI {\n if (!this._instance) {\n this._instance = new TaskContextAPI();\n }\n\n return this._instance;\n }\n\n get isInsideTask(): boolean {\n return this.#getTaskContext() !== undefined;\n }\n\n get ctx(): TaskRunContext | undefined {\n return this.#getTaskContext()?.ctx;\n }\n\n get worker(): BackgroundWorkerProperties | undefined {\n return this.#getTaskContext()?.worker;\n }\n\n get attributes(): Attributes {\n if (this.ctx) {\n return {\n ...this.contextAttributes,\n ...this.workerAttributes,\n };\n }\n\n return {};\n }\n\n get workerAttributes(): Attributes {\n if (this.worker) {\n return {\n [SemanticInternalAttributes.WORKER_ID]: this.worker.id,\n [SemanticInternalAttributes.WORKER_VERSION]: this.worker.version,\n };\n }\n\n return {};\n }\n\n get contextAttributes(): Attributes {\n if (this.ctx) {\n return {\n [SemanticInternalAttributes.ATTEMPT_ID]: this.ctx.attempt.id,\n [SemanticInternalAttributes.ATTEMPT_NUMBER]: this.ctx.attempt.number,\n [SemanticInternalAttributes.TASK_SLUG]: this.ctx.task.id,\n [SemanticInternalAttributes.TASK_PATH]: this.ctx.task.filePath,\n [SemanticInternalAttributes.TASK_EXPORT_NAME]: this.ctx.task.exportName,\n [SemanticInternalAttributes.QUEUE_NAME]: this.ctx.queue.name,\n [SemanticInternalAttributes.QUEUE_ID]: this.ctx.queue.id,\n [SemanticInternalAttributes.ENVIRONMENT_ID]: this.ctx.environment.id,\n [SemanticInternalAttributes.ENVIRONMENT_TYPE]: this.ctx.environment.type,\n [SemanticInternalAttributes.ORGANIZATION_ID]: this.ctx.organization.id,\n [SemanticInternalAttributes.PROJECT_ID]: this.ctx.project.id,\n [SemanticInternalAttributes.PROJECT_REF]: this.ctx.project.ref,\n [SemanticInternalAttributes.PROJECT_NAME]: this.ctx.project.name,\n [SemanticInternalAttributes.RUN_ID]: this.ctx.run.id,\n [SemanticInternalAttributes.RUN_IS_TEST]: this.ctx.run.isTest,\n [SemanticInternalAttributes.ORGANIZATION_SLUG]: this.ctx.organization.slug,\n [SemanticInternalAttributes.ORGANIZATION_NAME]: this.ctx.organization.name,\n [SemanticInternalAttributes.BATCH_ID]: this.ctx.batch?.id,\n [SemanticInternalAttributes.IDEMPOTENCY_KEY]: this.ctx.run.idempotencyKey,\n [SemanticInternalAttributes.MACHINE_PRESET_NAME]: this.ctx.machine?.name,\n [SemanticInternalAttributes.MACHINE_PRESET_CPU]: this.ctx.machine?.cpu,\n [SemanticInternalAttributes.MACHINE_PRESET_MEMORY]: this.ctx.machine?.memory,\n [SemanticInternalAttributes.MACHINE_PRESET_CENTS_PER_MS]: this.ctx.machine?.centsPerMs,\n };\n }\n\n return {};\n }\n\n public disable() {\n unregisterGlobal(API_NAME);\n }\n\n public setGlobalTaskContext(taskContext: TaskContext): boolean {\n return registerGlobal(API_NAME, taskContext);\n }\n\n #getTaskContext(): TaskContext | undefined {\n return getGlobal(API_NAME);\n }\n}\n","// Split module-level variable definition into separate files to allow\n// tree-shaking on each api instance.\nimport { TaskContextAPI } from \"./taskContext\";\n/** Entrypoint for logger API */\nexport const taskContext = TaskContextAPI.getInstance();\n","import { LogRecord, LogRecordProcessor } from \"@opentelemetry/sdk-logs\";\nimport { Span, SpanProcessor } from \"@opentelemetry/sdk-trace-base\";\nimport { SemanticInternalAttributes } from \"../semanticInternalAttributes\";\nimport { Context } from \"@opentelemetry/api\";\nimport { flattenAttributes } from \"../utils/flattenAttributes\";\nimport { taskContext } from \"../task-context-api\";\n\nexport class TaskContextSpanProcessor implements SpanProcessor {\n private _innerProcessor: SpanProcessor;\n\n constructor(innerProcessor: SpanProcessor) {\n this._innerProcessor = innerProcessor;\n }\n\n // Called when a span starts\n onStart(span: Span, parentContext: Context): void {\n if (taskContext.ctx) {\n span.setAttributes(\n flattenAttributes(\n {\n [SemanticInternalAttributes.ATTEMPT_ID]: taskContext.ctx.attempt.id,\n [SemanticInternalAttributes.ATTEMPT_NUMBER]: taskContext.ctx.attempt.number,\n },\n SemanticInternalAttributes.METADATA\n )\n );\n }\n\n this._innerProcessor.onStart(span, parentContext);\n }\n\n // Delegate the rest of the methods to the wrapped processor\n\n onEnd(span: Span): void {\n this._innerProcessor.onEnd(span);\n }\n\n shutdown(): Promise<void> {\n return this._innerProcessor.shutdown();\n }\n\n forceFlush(): Promise<void> {\n return this._innerProcessor.forceFlush();\n }\n}\n\nexport class TaskContextLogProcessor implements LogRecordProcessor {\n private _innerProcessor: LogRecordProcessor;\n\n constructor(innerProcessor: LogRecordProcessor) {\n this._innerProcessor = innerProcessor;\n }\n forceFlush(): Promise<void> {\n return this._innerProcessor.forceFlush();\n }\n onEmit(logRecord: LogRecord, context?: Context | undefined): void {\n // Adds in the context attributes to the log record\n if (taskContext.ctx) {\n logRecord.setAttributes(\n flattenAttributes(\n {\n [SemanticInternalAttributes.ATTEMPT_ID]: taskContext.ctx.attempt.id,\n [SemanticInternalAttributes.ATTEMPT_NUMBER]: taskContext.ctx.attempt.number,\n },\n SemanticInternalAttributes.METADATA\n )\n );\n }\n\n this._innerProcessor.onEmit(logRecord, context);\n }\n shutdown(): Promise<void> {\n return this._innerProcessor.shutdown();\n }\n}\n","export function getEnvVar(name: string): string | undefined {\n // This could run in a non-Node.js environment (Bun, Deno, CF Worker, etc.), so don't just assume process.env is a thing\n if (typeof process !== \"undefined\" && typeof process.env === \"object\" && process.env !== null) {\n return process.env[name];\n }\n}\n","{\n \"name\": \"@trigger.dev/core\",\n \"version\": \"3.0.0-beta.50\",\n \"description\": \"Core code used across the Trigger.dev SDK and platform\",\n \"license\": \"MIT\",\n \"main\": \"./dist/index.js\",\n \"types\": \"./dist/index.d.ts\",\n \"module\": \"./dist/index.mjs\",\n \"publishConfig\": {\n \"access\": \"public\"\n },\n \"files\": [\n \"dist\"\n ],\n \"exports\": {\n \".\": {\n \"import\": {\n \"types\": \"./dist/index.d.mts\",\n \"default\": \"./dist/index.mjs\"\n },\n \"require\": \"./dist/index.js\",\n \"types\": \"./dist/index.d.ts\"\n },\n \"./eventFilterMatches\": {\n \"import\": {\n \"types\": \"./dist/eventFilterMatches.d.mts\",\n \"default\": \"./dist/eventFilterMatches.mjs\"\n },\n \"require\": \"./dist/eventFilterMatches.js\",\n \"types\": \"./dist/eventFilterMatches.d.ts\"\n },\n \"./replacements\": {\n \"import\": {\n \"types\": \"./dist/replacements.d.mts\",\n \"default\": \"./dist/replacements.mjs\"\n },\n \"require\": \"./dist/replacements.js\",\n \"types\": \"./dist/replacements.d.ts\"\n },\n \"./requestFilterMatches\": {\n \"import\": {\n \"types\": \"./dist/requestFilterMatches.d.mts\",\n \"default\": \"./dist/requestFilterMatches.mjs\"\n },\n \"require\": \"./dist/requestFilterMatches.js\",\n \"types\": \"./dist/requestFilterMatches.d.ts\"\n },\n \"./retry\": {\n \"import\": {\n \"types\": \"./dist/retry.d.mts\",\n \"default\": \"./dist/retry.mjs\"\n },\n \"require\": \"./dist/retry.js\",\n \"types\": \"./dist/retry.d.ts\"\n },\n \"./utils\": {\n \"import\": {\n \"types\": \"./dist/utils.d.mts\",\n \"default\": \"./dist/utils.mjs\"\n },\n \"require\": \"./dist/utils.js\",\n \"types\": \"./dist/utils.d.ts\"\n },\n \"./schemas\": {\n \"import\": {\n \"types\": \"./dist/schemas/index.d.mts\",\n \"default\": \"./dist/schemas/index.mjs\"\n },\n \"require\": \"./dist/schemas/index.js\",\n \"types\": \"./dist/schemas/index.d.ts\"\n },\n \"./types\": {\n \"import\": {\n \"types\": \"./dist/types.d.mts\",\n \"default\": \"./dist/types.mjs\"\n },\n \"require\": \"./dist/types.js\",\n \"types\": \"./dist/types.d.ts\"\n },\n \"./versions\": {\n \"import\": {\n \"types\": \"./dist/versions.d.mts\",\n \"default\": \"./dist/versions.mjs\"\n },\n \"require\": \"./dist/versions.js\",\n \"types\": \"./dist/versions.d.ts\"\n },\n \"./v3\": {\n \"import\": {\n \"types\": \"./dist/v3/index.d.mts\",\n \"default\": \"./dist/v3/index.mjs\"\n },\n \"require\": \"./dist/v3/index.js\",\n \"types\": \"./dist/v3/index.d.ts\"\n },\n \"./v3/errors\": {\n \"import\": {\n \"types\": \"./dist/v3/errors.d.mts\",\n \"default\": \"./dist/v3/errors.mjs\"\n },\n \"require\": \"./dist/v3/errors.js\",\n \"types\": \"./dist/v3/errors.d.ts\"\n },\n \"./v3/logger-api\": {\n \"import\": {\n \"types\": \"./dist/v3/logger-api.d.mts\",\n \"default\": \"./dist/v3/logger-api.mjs\"\n },\n \"require\": \"./dist/v3/logger-api.js\",\n \"types\": \"./dist/v3/logger-api.d.ts\"\n },\n \"./v3/otel\": {\n \"import\": {\n \"types\": \"./dist/v3/otel/index.d.mts\",\n \"default\": \"./dist/v3/otel/index.mjs\"\n },\n \"require\": \"./dist/v3/otel/index.js\",\n \"types\": \"./dist/v3/otel/index.d.ts\"\n },\n \"./v3/semanticInternalAttributes\": {\n \"import\": {\n \"types\": \"./dist/v3/semanticInternalAttributes.d.mts\",\n \"default\": \"./dist/v3/semanticInternalAttributes.mjs\"\n },\n \"require\": \"./dist/v3/semanticInternalAttributes.js\",\n \"types\": \"./dist/v3/semanticInternalAttributes.d.ts\"\n },\n \"./v3/utils/durations\": {\n \"import\": {\n \"types\": \"./dist/v3/utils/durations.d.mts\",\n \"default\": \"./dist/v3/utils/durations.mjs\"\n },\n \"require\": \"./dist/v3/utils/durations.js\",\n \"types\": \"./dist/v3/utils/durations.d.ts\"\n },\n \"./v3/utils/flattenAttributes\": {\n \"import\": {\n \"types\": \"./dist/v3/utils/flattenAttributes.d.mts\",\n \"default\": \"./dist/v3/utils/flattenAttributes.mjs\"\n },\n \"require\": \"./dist/v3/utils/flattenAttributes.js\",\n \"types\": \"./dist/v3/utils/flattenAttributes.d.ts\"\n },\n \"./v3/utils/ioSerialization\": {\n \"import\": {\n \"types\": \"./dist/v3/utils/ioSerialization.d.mts\",\n \"default\": \"./dist/v3/utils/ioSerialization.mjs\"\n },\n \"require\": \"./dist/v3/utils/ioSerialization.js\",\n \"types\": \"./dist/v3/utils/ioSerialization.d.ts\"\n },\n \"./v3/utils/omit\": {\n \"import\": {\n \"types\": \"./dist/v3/utils/omit.d.mts\",\n \"default\": \"./dist/v3/utils/omit.mjs\"\n },\n \"require\": \"./dist/v3/utils/omit.js\",\n \"types\": \"./dist/v3/utils/omit.d.ts\"\n },\n \"./v3/utils/retries\": {\n \"import\": {\n \"types\": \"./dist/v3/utils/retries.d.mts\",\n \"default\": \"./dist/v3/utils/retries.mjs\"\n },\n \"require\": \"./dist/v3/utils/retries.js\",\n \"types\": \"./dist/v3/utils/retries.d.ts\"\n },\n \"./v3/utils/structuredLogger\": {\n \"import\": {\n \"types\": \"./dist/v3/utils/structuredLogger.d.mts\",\n \"default\": \"./dist/v3/utils/structuredLogger.mjs\"\n },\n \"require\": \"./dist/v3/utils/structuredLogger.js\",\n \"types\": \"./dist/v3/utils/structuredLogger.d.ts\"\n },\n \"./v3/zodfetch\": {\n \"import\": {\n \"types\": \"./dist/v3/zodfetch.d.mts\",\n \"default\": \"./dist/v3/zodfetch.mjs\"\n },\n \"require\": \"./dist/v3/zodfetch.js\",\n \"types\": \"./dist/v3/zodfetch.d.ts\"\n },\n \"./v3/zodMessageHandler\": {\n \"import\": {\n \"types\": \"./dist/v3/zodMessageHandler.d.mts\",\n \"default\": \"./dist/v3/zodMessageHandler.mjs\"\n },\n \"require\": \"./dist/v3/zodMessageHandler.js\",\n \"types\": \"./dist/v3/zodMessageHandler.d.ts\"\n },\n \"./v3/zodNamespace\": {\n \"import\": {\n \"types\": \"./dist/v3/zodNamespace.d.mts\",\n \"default\": \"./dist/v3/zodNamespace.mjs\"\n },\n \"require\": \"./dist/v3/zodNamespace.js\",\n \"types\": \"./dist/v3/zodNamespace.d.ts\"\n },\n \"./v3/zodSocket\": {\n \"import\": {\n \"types\": \"./dist/v3/zodSocket.d.mts\",\n \"default\": \"./dist/v3/zodSocket.mjs\"\n },\n \"require\": \"./dist/v3/zodSocket.js\",\n \"types\": \"./dist/v3/zodSocket.d.ts\"\n },\n \"./v3/zodIpc\": {\n \"import\": {\n \"types\": \"./dist/v3/zodIpc.d.mts\",\n \"default\": \"./dist/v3/zodIpc.mjs\"\n },\n \"require\": \"./dist/v3/zodIpc.js\",\n \"types\": \"./dist/v3/zodIpc.d.ts\"\n },\n \"./v3/utils/timers\": {\n \"import\": {\n \"types\": \"./dist/v3/utils/timers.d.mts\",\n \"default\": \"./dist/v3/utils/timers.mjs\"\n },\n \"require\": \"./dist/v3/utils/timers.js\",\n \"types\": \"./dist/v3/utils/timers.d.ts\"\n },\n \"./v3/dev\": {\n \"import\": {\n \"types\": \"./dist/v3/dev/index.d.mts\",\n \"default\": \"./dist/v3/dev/index.mjs\"\n },\n \"require\": \"./dist/v3/dev/index.js\",\n \"types\": \"./dist/v3/dev/index.d.ts\"\n },\n \"./v3/prod\": {\n \"import\": {\n \"types\": \"./dist/v3/prod/index.d.mts\",\n \"default\": \"./dist/v3/prod/index.mjs\"\n },\n \"require\": \"./dist/v3/prod/index.js\",\n \"types\": \"./dist/v3/prod/index.d.ts\"\n },\n \"./v3/workers\": {\n \"import\": {\n \"types\": \"./dist/v3/workers/index.d.mts\",\n \"default\": \"./dist/v3/workers/index.mjs\"\n },\n \"require\": \"./dist/v3/workers/index.js\",\n \"types\": \"./dist/v3/workers/index.d.ts\"\n },\n \"./v3/schemas\": {\n \"import\": {\n \"types\": \"./dist/v3/schemas/index.d.mts\",\n \"default\": \"./dist/v3/schemas/index.mjs\"\n },\n \"require\": \"./dist/v3/schemas/index.js\",\n \"types\": \"./dist/v3/schemas/index.d.ts\"\n },\n \"./package.json\": \"./package.json\"\n },\n \"typesVersions\": {\n \"*\": {\n \"v3\": [\n \"./dist/v3/index.d.ts\"\n ],\n \"v3/otel\": [\n \"./dist/v3/otel/index.d.ts\"\n ]\n }\n },\n \"sideEffects\": false,\n \"scripts\": {\n \"clean\": \"rimraf dist\",\n \"build\": \"npm run clean && npm run build:tsup\",\n \"build:tsup\": \"tsup --dts-resolve\",\n \"typecheck\": \"tsc --noEmit\",\n \"test\": \"jest\"\n },\n \"dependencies\": {\n \"@google-cloud/precise-date\": \"^4.0.0\",\n \"@opentelemetry/api\": \"^1.8.0\",\n \"@opentelemetry/api-logs\": \"^0.48.0\",\n \"@opentelemetry/exporter-logs-otlp-http\": \"^0.49.1\",\n \"@opentelemetry/exporter-trace-otlp-http\": \"^0.49.1\",\n \"@opentelemetry/instrumentation\": \"^0.49.1\",\n \"@opentelemetry/resources\": \"^1.22.0\",\n \"@opentelemetry/sdk-logs\": \"^0.49.1\",\n \"@opentelemetry/sdk-node\": \"^0.49.1\",\n \"@opentelemetry/sdk-trace-base\": \"^1.22.0\",\n \"@opentelemetry/sdk-trace-node\": \"^1.22.0\",\n \"@opentelemetry/semantic-conventions\": \"^1.22.0\",\n \"humanize-duration\": \"^3.27.3\",\n \"socket.io-client\": \"4.7.5\",\n \"superjson\": \"^2.2.1\",\n \"ulidx\": \"^2.2.1\",\n \"zod\": \"3.22.3\",\n \"zod-error\": \"1.5.0\",\n \"zod-validation-error\": \"^1.5.0\"\n },\n \"devDependencies\": {\n \"@trigger.dev/tsconfig\": \"workspace:*\",\n \"@trigger.dev/tsup\": \"workspace:*\",\n \"@types/humanize-duration\": \"^3.27.1\",\n \"@types/jest\": \"^29.5.3\",\n \"@types/node\": \"20.12.7\",\n \"@types/readable-stream\": \"^4.0.14\",\n \"jest\": \"^29.6.2\",\n \"rimraf\": \"^3.0.2\",\n \"socket.io\": \"4.7.4\",\n \"ts-jest\": \"^29.1.1\",\n \"tsup\": \"^8.0.1\",\n \"typescript\": \"^5.3.0\"\n },\n \"engines\": {\n \"node\": \">=18.0.0\"\n }\n}"]}
|
package/dist/v3/otel/index.mjs
CHANGED
|
@@ -7,7 +7,6 @@ import { Resource, detectResourcesSync, processDetectorSync } from '@opentelemet
|
|
|
7
7
|
import { LoggerProvider, BatchLogRecordProcessor, SimpleLogRecordProcessor } from '@opentelemetry/sdk-logs';
|
|
8
8
|
import { NodeTracerProvider, BatchSpanProcessor, SimpleSpanProcessor } from '@opentelemetry/sdk-trace-node';
|
|
9
9
|
import { SemanticResourceAttributes } from '@opentelemetry/semantic-conventions';
|
|
10
|
-
import { AsyncLocalStorage } from 'node:async_hooks';
|
|
11
10
|
|
|
12
11
|
var __defProp = Object.defineProperty;
|
|
13
12
|
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
@@ -61,6 +60,10 @@ var SemanticInternalAttributes = {
|
|
|
61
60
|
TASK_EXPORT_NAME: "ctx.task.exportName",
|
|
62
61
|
QUEUE_NAME: "ctx.queue.name",
|
|
63
62
|
QUEUE_ID: "ctx.queue.id",
|
|
63
|
+
MACHINE_PRESET_NAME: "ctx.machine.name",
|
|
64
|
+
MACHINE_PRESET_CPU: "ctx.machine.cpu",
|
|
65
|
+
MACHINE_PRESET_MEMORY: "ctx.machine.memory",
|
|
66
|
+
MACHINE_PRESET_CENTS_PER_MS: "ctx.machine.centsPerMs",
|
|
64
67
|
SPAN_PARTIAL: "$span.partial",
|
|
65
68
|
SPAN_ID: "$span.span_id",
|
|
66
69
|
OUTPUT: "$output",
|
|
@@ -82,13 +85,25 @@ var SemanticInternalAttributes = {
|
|
|
82
85
|
SDK_LANGUAGE: "sdk.language",
|
|
83
86
|
RETRY_AT: "retry.at",
|
|
84
87
|
RETRY_DELAY: "retry.delay",
|
|
85
|
-
RETRY_COUNT: "retry.count"
|
|
88
|
+
RETRY_COUNT: "retry.count",
|
|
89
|
+
LINK_TITLE: "$link.title",
|
|
90
|
+
IDEMPOTENCY_KEY: "ctx.run.idempotencyKey",
|
|
91
|
+
USAGE_DURATION_MS: "$usage.durationMs",
|
|
92
|
+
USAGE_COST_IN_CENTS: "$usage.costInCents",
|
|
93
|
+
RATE_LIMIT_LIMIT: "response.rateLimit.limit",
|
|
94
|
+
RATE_LIMIT_REMAINING: "response.rateLimit.remaining",
|
|
95
|
+
RATE_LIMIT_RESET: "response.rateLimit.reset"
|
|
86
96
|
};
|
|
87
97
|
|
|
88
98
|
// src/v3/utils/flattenAttributes.ts
|
|
99
|
+
var NULL_SENTINEL = "$@null((";
|
|
89
100
|
function flattenAttributes(obj, prefix) {
|
|
90
101
|
const result = {};
|
|
91
|
-
if (
|
|
102
|
+
if (obj === void 0) {
|
|
103
|
+
return result;
|
|
104
|
+
}
|
|
105
|
+
if (obj === null) {
|
|
106
|
+
result[prefix || ""] = NULL_SENTINEL;
|
|
92
107
|
return result;
|
|
93
108
|
}
|
|
94
109
|
if (typeof obj === "string") {
|
|
@@ -104,13 +119,17 @@ function flattenAttributes(obj, prefix) {
|
|
|
104
119
|
return result;
|
|
105
120
|
}
|
|
106
121
|
for (const [key, value] of Object.entries(obj)) {
|
|
107
|
-
const newPrefix = `${prefix ? `${prefix}.` : ""}${key}`;
|
|
122
|
+
const newPrefix = `${prefix ? `${prefix}.` : ""}${Array.isArray(obj) ? `[${key}]` : key}`;
|
|
108
123
|
if (Array.isArray(value)) {
|
|
109
124
|
for (let i = 0; i < value.length; i++) {
|
|
110
125
|
if (typeof value[i] === "object" && value[i] !== null) {
|
|
111
126
|
Object.assign(result, flattenAttributes(value[i], `${newPrefix}.[${i}]`));
|
|
112
127
|
} else {
|
|
113
|
-
|
|
128
|
+
if (value[i] === null) {
|
|
129
|
+
result[`${newPrefix}.[${i}]`] = NULL_SENTINEL;
|
|
130
|
+
} else {
|
|
131
|
+
result[`${newPrefix}.[${i}]`] = value[i];
|
|
132
|
+
}
|
|
114
133
|
}
|
|
115
134
|
}
|
|
116
135
|
} else if (isRecord(value)) {
|
|
@@ -118,6 +137,8 @@ function flattenAttributes(obj, prefix) {
|
|
|
118
137
|
} else {
|
|
119
138
|
if (typeof value === "number" || typeof value === "string" || typeof value === "boolean") {
|
|
120
139
|
result[newPrefix] = value;
|
|
140
|
+
} else if (value === null) {
|
|
141
|
+
result[newPrefix] = NULL_SENTINEL;
|
|
121
142
|
}
|
|
122
143
|
}
|
|
123
144
|
}
|
|
@@ -128,37 +149,55 @@ function isRecord(value) {
|
|
|
128
149
|
return value !== null && typeof value === "object" && !Array.isArray(value);
|
|
129
150
|
}
|
|
130
151
|
__name(isRecord, "isRecord");
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
152
|
+
|
|
153
|
+
// src/v3/utils/platform.ts
|
|
154
|
+
var _globalThis = typeof globalThis === "object" ? globalThis : global;
|
|
155
|
+
|
|
156
|
+
// src/v3/utils/globals.ts
|
|
157
|
+
var GLOBAL_TRIGGER_DOT_DEV_KEY = Symbol.for(`dev.trigger.ts.api`);
|
|
158
|
+
var _global = _globalThis;
|
|
159
|
+
function registerGlobal(type, instance, allowOverride = false) {
|
|
160
|
+
const api = _global[GLOBAL_TRIGGER_DOT_DEV_KEY] = _global[GLOBAL_TRIGGER_DOT_DEV_KEY] ?? {};
|
|
161
|
+
if (!allowOverride && api[type]) {
|
|
162
|
+
return false;
|
|
163
|
+
}
|
|
164
|
+
api[type] = instance;
|
|
165
|
+
return true;
|
|
166
|
+
}
|
|
167
|
+
__name(registerGlobal, "registerGlobal");
|
|
168
|
+
function getGlobal(type) {
|
|
169
|
+
return _global[GLOBAL_TRIGGER_DOT_DEV_KEY]?.[type];
|
|
170
|
+
}
|
|
171
|
+
__name(getGlobal, "getGlobal");
|
|
172
|
+
function unregisterGlobal(type) {
|
|
173
|
+
const api = _global[GLOBAL_TRIGGER_DOT_DEV_KEY];
|
|
174
|
+
if (api) {
|
|
175
|
+
delete api[type];
|
|
140
176
|
}
|
|
141
|
-
}
|
|
142
|
-
__name(
|
|
143
|
-
var SafeAsyncLocalStorage = _SafeAsyncLocalStorage;
|
|
177
|
+
}
|
|
178
|
+
__name(unregisterGlobal, "unregisterGlobal");
|
|
144
179
|
|
|
145
|
-
// src/v3/
|
|
146
|
-
var
|
|
147
|
-
var
|
|
180
|
+
// src/v3/taskContext/index.ts
|
|
181
|
+
var API_NAME = "task-context";
|
|
182
|
+
var _getTaskContext, getTaskContext_fn;
|
|
183
|
+
var _TaskContextAPI = class _TaskContextAPI {
|
|
148
184
|
constructor() {
|
|
149
|
-
__privateAdd(this,
|
|
150
|
-
|
|
185
|
+
__privateAdd(this, _getTaskContext);
|
|
186
|
+
}
|
|
187
|
+
static getInstance() {
|
|
188
|
+
if (!this._instance) {
|
|
189
|
+
this._instance = new _TaskContextAPI();
|
|
190
|
+
}
|
|
191
|
+
return this._instance;
|
|
151
192
|
}
|
|
152
193
|
get isInsideTask() {
|
|
153
|
-
return __privateMethod(this,
|
|
194
|
+
return __privateMethod(this, _getTaskContext, getTaskContext_fn).call(this) !== void 0;
|
|
154
195
|
}
|
|
155
196
|
get ctx() {
|
|
156
|
-
|
|
157
|
-
return store?.ctx;
|
|
197
|
+
return __privateMethod(this, _getTaskContext, getTaskContext_fn).call(this)?.ctx;
|
|
158
198
|
}
|
|
159
199
|
get worker() {
|
|
160
|
-
|
|
161
|
-
return store?.worker;
|
|
200
|
+
return __privateMethod(this, _getTaskContext, getTaskContext_fn).call(this)?.worker;
|
|
162
201
|
}
|
|
163
202
|
get attributes() {
|
|
164
203
|
if (this.ctx) {
|
|
@@ -198,32 +237,44 @@ var _TaskContextManager = class _TaskContextManager {
|
|
|
198
237
|
[SemanticInternalAttributes.RUN_IS_TEST]: this.ctx.run.isTest,
|
|
199
238
|
[SemanticInternalAttributes.ORGANIZATION_SLUG]: this.ctx.organization.slug,
|
|
200
239
|
[SemanticInternalAttributes.ORGANIZATION_NAME]: this.ctx.organization.name,
|
|
201
|
-
[SemanticInternalAttributes.BATCH_ID]: this.ctx.batch?.id
|
|
240
|
+
[SemanticInternalAttributes.BATCH_ID]: this.ctx.batch?.id,
|
|
241
|
+
[SemanticInternalAttributes.IDEMPOTENCY_KEY]: this.ctx.run.idempotencyKey,
|
|
242
|
+
[SemanticInternalAttributes.MACHINE_PRESET_NAME]: this.ctx.machine?.name,
|
|
243
|
+
[SemanticInternalAttributes.MACHINE_PRESET_CPU]: this.ctx.machine?.cpu,
|
|
244
|
+
[SemanticInternalAttributes.MACHINE_PRESET_MEMORY]: this.ctx.machine?.memory,
|
|
245
|
+
[SemanticInternalAttributes.MACHINE_PRESET_CENTS_PER_MS]: this.ctx.machine?.centsPerMs
|
|
202
246
|
};
|
|
203
247
|
}
|
|
204
248
|
return {};
|
|
205
249
|
}
|
|
206
|
-
|
|
207
|
-
|
|
250
|
+
disable() {
|
|
251
|
+
unregisterGlobal(API_NAME);
|
|
252
|
+
}
|
|
253
|
+
setGlobalTaskContext(taskContext2) {
|
|
254
|
+
return registerGlobal(API_NAME, taskContext2);
|
|
208
255
|
}
|
|
209
256
|
};
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
return
|
|
213
|
-
}, "#
|
|
214
|
-
__name(
|
|
215
|
-
var
|
|
216
|
-
|
|
257
|
+
_getTaskContext = new WeakSet();
|
|
258
|
+
getTaskContext_fn = /* @__PURE__ */ __name(function() {
|
|
259
|
+
return getGlobal(API_NAME);
|
|
260
|
+
}, "#getTaskContext");
|
|
261
|
+
__name(_TaskContextAPI, "TaskContextAPI");
|
|
262
|
+
var TaskContextAPI = _TaskContextAPI;
|
|
263
|
+
|
|
264
|
+
// src/v3/task-context-api.ts
|
|
265
|
+
var taskContext = TaskContextAPI.getInstance();
|
|
266
|
+
|
|
267
|
+
// src/v3/taskContext/otelProcessors.ts
|
|
217
268
|
var _TaskContextSpanProcessor = class _TaskContextSpanProcessor {
|
|
218
269
|
constructor(innerProcessor) {
|
|
219
270
|
this._innerProcessor = innerProcessor;
|
|
220
271
|
}
|
|
221
272
|
// Called when a span starts
|
|
222
273
|
onStart(span, parentContext) {
|
|
223
|
-
if (
|
|
274
|
+
if (taskContext.ctx) {
|
|
224
275
|
span.setAttributes(flattenAttributes({
|
|
225
|
-
[SemanticInternalAttributes.ATTEMPT_ID]:
|
|
226
|
-
[SemanticInternalAttributes.ATTEMPT_NUMBER]:
|
|
276
|
+
[SemanticInternalAttributes.ATTEMPT_ID]: taskContext.ctx.attempt.id,
|
|
277
|
+
[SemanticInternalAttributes.ATTEMPT_NUMBER]: taskContext.ctx.attempt.number
|
|
227
278
|
}, SemanticInternalAttributes.METADATA));
|
|
228
279
|
}
|
|
229
280
|
this._innerProcessor.onStart(span, parentContext);
|
|
@@ -249,10 +300,10 @@ var _TaskContextLogProcessor = class _TaskContextLogProcessor {
|
|
|
249
300
|
return this._innerProcessor.forceFlush();
|
|
250
301
|
}
|
|
251
302
|
onEmit(logRecord, context) {
|
|
252
|
-
if (
|
|
303
|
+
if (taskContext.ctx) {
|
|
253
304
|
logRecord.setAttributes(flattenAttributes({
|
|
254
|
-
[SemanticInternalAttributes.ATTEMPT_ID]:
|
|
255
|
-
[SemanticInternalAttributes.ATTEMPT_NUMBER]:
|
|
305
|
+
[SemanticInternalAttributes.ATTEMPT_ID]: taskContext.ctx.attempt.id,
|
|
306
|
+
[SemanticInternalAttributes.ATTEMPT_NUMBER]: taskContext.ctx.attempt.number
|
|
256
307
|
}, SemanticInternalAttributes.METADATA));
|
|
257
308
|
}
|
|
258
309
|
this._innerProcessor.onEmit(logRecord, context);
|
|
@@ -272,6 +323,9 @@ function getEnvVar(name) {
|
|
|
272
323
|
}
|
|
273
324
|
__name(getEnvVar, "getEnvVar");
|
|
274
325
|
|
|
326
|
+
// package.json
|
|
327
|
+
var version = "3.0.0-beta.50";
|
|
328
|
+
|
|
275
329
|
// src/v3/otel/tracingSDK.ts
|
|
276
330
|
var _a;
|
|
277
331
|
var AsyncResourceDetector = (_a = class {
|
|
@@ -309,10 +363,11 @@ var _TracingSDK = class _TracingSDK {
|
|
|
309
363
|
]
|
|
310
364
|
}).merge(new Resource({
|
|
311
365
|
[SemanticResourceAttributes.CLOUD_PROVIDER]: "trigger.dev",
|
|
312
|
-
[SemanticInternalAttributes.TRIGGER]: true
|
|
366
|
+
[SemanticInternalAttributes.TRIGGER]: true,
|
|
367
|
+
[SemanticInternalAttributes.CLI_VERSION]: version
|
|
313
368
|
})).merge(config.resource ?? new Resource({})).merge(new Resource(envResourceAttributes));
|
|
314
369
|
const traceProvider = new NodeTracerProvider({
|
|
315
|
-
forceFlushTimeoutMillis: config.forceFlushTimeoutMillis
|
|
370
|
+
forceFlushTimeoutMillis: config.forceFlushTimeoutMillis,
|
|
316
371
|
resource: commonResources,
|
|
317
372
|
spanLimits: {
|
|
318
373
|
attributeCountLimit: OTEL_SPAN_ATTRIBUTE_COUNT_LIMIT,
|
|
@@ -325,7 +380,7 @@ var _TracingSDK = class _TracingSDK {
|
|
|
325
380
|
});
|
|
326
381
|
const spanExporter = new OTLPTraceExporter({
|
|
327
382
|
url: `${config.url}/v1/traces`,
|
|
328
|
-
timeoutMillis: config.forceFlushTimeoutMillis
|
|
383
|
+
timeoutMillis: config.forceFlushTimeoutMillis
|
|
329
384
|
});
|
|
330
385
|
traceProvider.addSpanProcessor(new TaskContextSpanProcessor(getEnvVar("OTEL_BATCH_PROCESSING_ENABLED") === "1" ? new BatchSpanProcessor(spanExporter, {
|
|
331
386
|
maxExportBatchSize: parseInt(getEnvVar("OTEL_SPAN_MAX_EXPORT_BATCH_SIZE") ?? "64"),
|
|
@@ -362,12 +417,16 @@ var _TracingSDK = class _TracingSDK {
|
|
|
362
417
|
this.getTracer = traceProvider.getTracer.bind(traceProvider);
|
|
363
418
|
}
|
|
364
419
|
async flush() {
|
|
365
|
-
await
|
|
366
|
-
|
|
420
|
+
await Promise.all([
|
|
421
|
+
this._traceProvider.forceFlush(),
|
|
422
|
+
this._logProvider.forceFlush()
|
|
423
|
+
]);
|
|
367
424
|
}
|
|
368
425
|
async shutdown() {
|
|
369
|
-
await
|
|
370
|
-
|
|
426
|
+
await Promise.all([
|
|
427
|
+
this._traceProvider.shutdown(),
|
|
428
|
+
this._logProvider.shutdown()
|
|
429
|
+
]);
|
|
371
430
|
}
|
|
372
431
|
};
|
|
373
432
|
__name(_TracingSDK, "TracingSDK");
|
|
@@ -406,17 +465,24 @@ __name(setLogLevel, "setLogLevel");
|
|
|
406
465
|
// src/v3/otel/index.ts
|
|
407
466
|
function recordSpanException(span, error) {
|
|
408
467
|
if (error instanceof Error) {
|
|
409
|
-
span.recordException(error);
|
|
468
|
+
span.recordException(sanitizeSpanError(error));
|
|
410
469
|
} else if (typeof error === "string") {
|
|
411
|
-
span.recordException(
|
|
470
|
+
span.recordException(error.replace(/\0/g, ""));
|
|
412
471
|
} else {
|
|
413
|
-
span.recordException(
|
|
472
|
+
span.recordException(JSON.stringify(error).replace(/\0/g, ""));
|
|
414
473
|
}
|
|
415
474
|
span.setStatus({
|
|
416
475
|
code: SpanStatusCode.ERROR
|
|
417
476
|
});
|
|
418
477
|
}
|
|
419
478
|
__name(recordSpanException, "recordSpanException");
|
|
479
|
+
function sanitizeSpanError(error) {
|
|
480
|
+
const sanitizedError = new Error(error.message.replace(/\0/g, ""));
|
|
481
|
+
sanitizedError.name = error.name.replace(/\0/g, "");
|
|
482
|
+
sanitizedError.stack = error.stack?.replace(/\0/g, "");
|
|
483
|
+
return sanitizedError;
|
|
484
|
+
}
|
|
485
|
+
__name(sanitizeSpanError, "sanitizeSpanError");
|
|
420
486
|
|
|
421
487
|
export { TracingSDK, recordSpanException };
|
|
422
488
|
//# sourceMappingURL=out.js.map
|