@trigger.dev/core 3.0.0-beta.52 → 3.0.0-beta.54
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/index.d.mts +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/retry.d.mts +1 -1
- package/dist/retry.d.ts +1 -1
- package/dist/schemas/index.d.mts +6 -6
- package/dist/schemas/index.d.ts +6 -6
- package/dist/v3/index.js +1 -1
- package/dist/v3/index.js.map +1 -1
- package/dist/v3/index.mjs +1 -1
- package/dist/v3/index.mjs.map +1 -1
- package/dist/v3/otel/index.js +1 -1
- package/dist/v3/otel/index.js.map +1 -1
- package/dist/v3/otel/index.mjs +1 -1
- package/dist/v3/otel/index.mjs.map +1 -1
- package/dist/v3/utils/ioSerialization.js +1 -1
- package/dist/v3/utils/ioSerialization.js.map +1 -1
- package/dist/v3/utils/ioSerialization.mjs +1 -1
- package/dist/v3/utils/ioSerialization.mjs.map +1 -1
- package/dist/v3/workers/index.js +1 -1
- package/dist/v3/workers/index.js.map +1 -1
- package/dist/v3/workers/index.mjs +1 -1
- package/dist/v3/workers/index.mjs.map +1 -1
- package/package.json +1 -1
- package/dist/{api-a39zAY3E.d.mts → api-Pl9fxB8v.d.mts} +153 -153
- package/dist/{api--StDLb4h.d.ts → api-sNoooMbT.d.ts} +153 -153
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/v3/workers/taskExecutor.ts","../../../src/v3/errors.ts","../../../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","../../../src/v3/schemas/api.ts","../../../src/v3/schemas/resources.ts","../../../src/v3/schemas/schemas.ts","../../../src/v3/schemas/common.ts","../../../src/v3/apiClient/index.ts","../../../src/v3/apiClient/core.ts","../../../src/v3/utils/retries.ts","../../../src/v3/apiClient/errors.ts","../../../src/v3/utils/styleAttributes.ts","../../../src/v3/apiClient/pagination.ts","../../../src/v3/apiClientManager/index.ts","../../../src/v3/apiClientManager-api.ts","../../../src/v3/utils/ioSerialization.ts","../../../src/v3/clock/preciseWallClock.ts","../../../src/v3/logger/taskLogger.ts","../../../src/v3/icons.ts","../../../src/v3/clock/simpleClock.ts","../../../src/v3/clock/index.ts","../../../src/v3/clock-api.ts","../../../src/v3/consoleInterceptor.ts","../../../src/v3/task-catalog/standardTaskCatalog.ts","../../../src/v3/usage/noopUsageManager.ts","../../../src/v3/usage/api.ts","../../../src/v3/usage-api.ts","../../../src/v3/clock/clock.ts","../../../src/v3/usage/devUsageManager.ts","../../../src/v3/usage/prodUsageManager.ts","../../../src/v3/usage/usageClient.ts"],"names":["SpanKind","z","parseError","error","Error","type","name","message","stackTrace","stack","raw","JSON","stringify","e","String","SerializedError","object","string","optional","sanitizeError","replace","code","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","instance","allowOverride","api","err","getGlobal","unregisterGlobal","API_NAME","TaskContextAPI","getInstance","_instance","isInsideTask","ctx","worker","attributes","contextAttributes","workerAttributes","id","version","attempt","number","task","filePath","exportName","queue","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","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","recordException","sanitizeSpanError","setStatus","sanitizedError","MachineCpu","union","literal","MachineMemory","MachinePresetName","enum","MachineConfig","preset","MachinePreset","TaskRunBuiltInError","TaskRunCustomErrorObject","TaskRunStringError","TaskRunErrorCodes","COULD_NOT_FIND_EXECUTOR","COULD_NOT_FIND_TASK","CONFIGURED_INCORRECTLY","TASK_ALREADY_RUNNING","TASK_EXECUTION_FAILED","TASK_EXECUTION_ABORTED","TASK_PROCESS_EXITED_WITH_NON_ZERO_CODE","TASK_PROCESS_SIGKILL_TIMEOUT","TASK_RUN_CANCELLED","TASK_OUTPUT_ERROR","HANDLE_ERROR_ERROR","GRACEFUL_EXIT_TIMEOUT","TaskRunInternalError","TaskRunError","discriminatedUnion","TaskRun","payload","payloadType","any","tags","array","boolean","default","createdAt","coerce","date","startedAt","Date","maxAttempts","durationMs","costInCents","baseCostInCents","TaskRunExecutionTask","TaskRunExecutionAttempt","backgroundWorkerId","backgroundWorkerTaskId","status","TaskRunExecutionEnvironment","TaskRunExecutionOrganization","TaskRunExecutionProject","TaskRunExecutionQueue","TaskRunExecutionBatch","TaskRunExecution","TaskRunContext","omit","TaskRunExecutionRetry","timestamp","delay","unknown","TaskRunExecutionUsage","TaskRunFailedExecutionResult","ok","retry","skippedRetrying","usage","TaskRunSuccessfulExecutionResult","output","outputType","TaskRunExecutionResult","BatchTaskRunExecutionResult","items","EnvironmentType","TaskRunExecutionPayload","execution","traceContext","record","ProdTaskRunExecution","extend","contentHash","ProdTaskRunExecutionPayload","FixedWindowRateLimit","limit","window","seconds","minutes","hours","SlidingWindowRateLimit","RateLimitOptions","RetryOptions","int","factor","minTimeoutInMs","maxTimeoutInMs","randomize","QueueOptions","concurrencyLimit","min","max","rateLimit","ScheduleMetadata","cron","timezone","TaskMetadata","packageVersion","triggerSource","schedule","TaskFileMetadata","TaskMetadataWithFilePath","PostStartCauses","PreStopCauses","RegexSchema","custom","val","test","Config","triggerDirectories","triggerUrl","projectDir","tsconfigPath","retries","enabledInDev","additionalPackages","additionalFiles","dependenciesToBundle","logLevel","enableConsoleLogging","postInstall","extraCACerts","WaitReason","TaskRunExecutionLazyAttemptPayload","runId","attemptCount","messageId","TaskResource","BackgroundWorkerMetadata","cliPackageVersion","tasks","ImageDetailsMetadata","imageTag","WhoAmIResponseSchema","userId","email","dashboardUrl","GetProjectResponseBody","externalRef","title","GetProjectsResponseBody","GetProjectEnvResponse","apiKey","apiUrl","CreateBackgroundWorkerRequestBody","localOnly","metadata","supportsLazyAttempts","CreateBackgroundWorkerResponse","RunTag","RunTags","TriggerTaskRequestBody","options","dependentAttempt","dependentBatch","lockToVersion","concurrencyKey","or","ttl","nonnegative","TriggerTaskResponse","BatchTriggerTaskRequestBody","BatchTriggerTaskResponse","batchId","runs","GetBatchResponseBody","taskRunId","AddTagsRequestBody","RescheduleRunRequestBody","GetEnvironmentVariablesResponseBody","variables","StartDeploymentIndexingRequestBody","imageReference","selfHosted","StartDeploymentIndexingResponseBody","ExternalBuildData","buildId","buildToken","projectId","InitializeDeploymentResponseBody","shortCode","externalBuildData","nullable","registryHost","InitializeDeploymentRequestBody","DeploymentErrorData","stderr","GetDeploymentResponseBody","errorData","CreateUploadPayloadUrlResponseBody","presignedUrl","ReplayRunResponse","CanceledRunResponse","ScheduleType","ScheduledTaskPayload","scheduleId","lastTimestamp","externalId","upcoming","CreateScheduleOptions","deduplicationKey","UpdateScheduleOptions","ScheduleGenerator","expression","description","ScheduleObject","active","nullish","generator","nextRun","environments","userName","DeletedScheduleObject","ListSchedulesResult","data","pagination","currentPage","totalPages","count","ListScheduleOptions","page","perPage","TimezonesResult","timezones","RunStatus","AttemptStatus","RunEnvironmentDetails","user","RunScheduleDetails","CommonRunFields","taskIdentifier","isQueued","isExecuting","isCompleted","isSuccess","isFailed","isCancelled","updatedAt","finishedAt","delayedUntil","expiredAt","RetrieveRunResponse","payloadPresignedUrl","outputPresignedUrl","attempts","completedAt","ListRunResponseItem","ListRunResponse","next","previous","CreateEnvironmentVariableRequestBody","UpdateEnvironmentVariableRequestBody","ImportEnvironmentVariablesRequestBody","override","EnvironmentVariableResponseBody","success","EnvironmentVariableValue","EnvironmentVariable","EnvironmentVariables","propagation","fromZodError","defaultRetryOptions","defaultFetchRetryOptions","byStatus","strategy","connectionError","timeout","calculateNextRetryDelay","opts","random","Math","pow","round","ApiError","headers","makeMessage","param","msg","generate","errorResponse","ApiConnectionError","cause","castToError","BadRequestError","AuthenticationError","PermissionDeniedError","NotFoundError","ConflictError","UnprocessableEntityError","RateLimitError","InternalServerError","millisecondsUntilReset","resetAtUnixEpochMs","resetAtUnixEpoch","isNaN","now","floor","accessoryAttributes","accessory","CursorPage","pageFetcher","getPaginatedItems","hasNextPage","hasPreviousPage","getNextPage","after","getPreviousPage","before","iterPages","asyncIterator","item","OffsetLimitPage","zodfetch","schema","requestInit","ApiPromise","_doZodFetch","zodfetchCursorPage","params","query","URLSearchParams","set","cursorPageSchema","$url","URL","search","toString","fetchResult","href","CursorPagePromise","zodfetchOffsetLimitPage","offsetLimitPageSchema","OffsetLimitPagePromise","traceZodFetch","callback","tracer","method","pathname","startActiveSpan","icon","$requestInit","_doZodFetchWithRetries","onResponseBody","response","fetch","requestInitWithCache","responseHeaders","createResponseHeaders","retryResult","shouldRetry","waitForRetry","errText","text","catch","errJSON","safeJsonParse","errMessage","jsonBody","json","parsedResult","safeParse","retryOptions","shouldRetryForOptions","shouldRetryHeader","get","Proxy","fromEntries","target","toLowerCase","withCache","cache","_","Request","responsePromise","resolve","asResponse","then","p","withResponse","onfulfilled","onrejected","finally","onfinally","_fetchPage","fetchPage_fn","setTimeout","toUpperCase","variant","style","DEFAULT_ZOD_FETCH_OPTIONS","ApiClient","baseUrl","accessToken","requestOptions","defaultRequestOptions","mergeRequestOptions","getRunResult","getBatchResults","triggerTask","taskId","body","encodedTaskId","encodeURIComponent","spanParentAsLink","batchTriggerTask","createUploadPayloadUrl","filename","getPayloadUrl","retrieveRun","listRuns","searchParams","createSearchQueryForListRuns","listProjectRuns","projectRef","append","join","replayRun","cancelRun","rescheduleRun","addTags","createSchedule","listSchedules","retrieveSchedule","updateSchedule","deactivateSchedule","activateSchedule","deleteSchedule","listEnvVars","importEnvVars","retrieveEnvVar","createEnvVar","updateEnvVar","deleteEnvVar","Authorization","inject","bulkAction","tag","from","getTime","to","period","defaultOptions","APIClientManagerAPI","setGlobalAPIClientConfiguration","baseURL","store","secretKey","client","apiClientManager","parsePacket","dataType","loadSuperJSON","stringifyIO","conditionallyExportPacket","packet","pathPrefix","needsOffloading","size","packetRequiresOffloading","exportPacket","byteLength","lengthLimit","byteSize","Buffer","getPacketExtension","presignedResponse","uploadResponse","statusText","conditionallyImportPacket","importPacket","setAttribute","createPacketAttributes","dataKey","dataTypeKey","parsed","jsonified","safeReplacer","RegExp","Set","Map","forEach","v","k","TaskExecutor","_tracingSDK","tracingSDK","_tracer","_consoleInterceptor","consoleInterceptor","projectConfig","_importedConfig","importedConfig","_handleErrorFn","handleErrorFn","execute","attemptMessage","originalPacket","intercept","console","parsedPayload","initOutput","payloadPacket","stringifiedOutput","finalOutput","stringifyError","runError","handleErrorResult","handleErrorError","kind","CONSUMER","extractContext","init","runFn","fns","middlewareFn","middleware","initFn","onSuccess","onSuccessFn","onFailure","onFailureFn","onStartFn","cleanupFn","cleanup","retriesConfig","rateLimitError","handleError","retryDelayInMs","retryAt","skipRetrying","PreciseDate","PreciseWallClock","_origin","clockTime","origin","hrtime","preciseDate","preciseNow","elapsedHrTime","elapsedNanoseconds","BigInt","getFullTime","dateStruct","toStruct","nanos","reset","SeverityNumber","iconStringForSeverity","severityNumber","UNSPECIFIED","TRACE","TRACE2","TRACE3","TRACE4","DEBUG2","DEBUG3","DEBUG4","INFO2","INFO3","INFO4","WARN2","WARN3","WARN4","ERROR2","ERROR3","ERROR4","FATAL","FATAL2","FATAL3","FATAL4","SimpleClock","nowStruct","SIMPLE_CLOCK","ClockAPI","setGlobalClock","clock","logLevels","OtelTaskLogger","_level","indexOf","debug","properties","log","info","warn","trace","fn","severityText","safeJsonProcess","logger","emit","jsonErrorReplacer","util","_getTimestampInHrTime","getTimestampInHrTime_fn","ConsoleInterceptor","sendToStdIO","originalConsole","args","format","write","stdout","tryParseJSON","getLogMessage","fallback","StandardTaskCatalog","_taskMetadata","_taskFunctions","_taskFileMetadata","registerTaskMetadata","updateTaskMetadata","updates","existingMetadata","existingFunctions","registerTaskFileMetadata","getAllTaskMetadata","fileMetadata","push","getTaskMetadata","getTask","taskExists","has","NoopUsageManager","start","sample","cpuTime","wallTime","stop","measurement","pauseAsync","cb","NOOP_USAGE_MANAGER","UsageAPI","setGlobalUsageManager","manager","calculateDurationInMs","end","startSeconds","startNanoseconds","endSeconds","endNanoseconds","nanoseconds","_a","DevUsageMeasurement","_pauses","_endedAt","endedAt","totalPauses","values","reduce","total","pause","registerPause","pauseId","DevUsageManager","_currentMeasurements","_firstMeasurement","generateRandomString","delete","pauseStart","pauseEnd","characters","charactersLength","charAt","setInterval","UsageClient","jwt","sendUsageEvent","event","accept","authorization","renewedJwt","ProdUsageManager","delegageUsageManager","_usageClient","isReportingEnabled","_abortController","abort","_measurement","heartbeatIntervalMs","AbortController","signal","aborted","cpuTimeSinceLastSample","_lastSample"],"mappings":"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","sourcesContent":["import { SpanKind } from \"@opentelemetry/api\";\nimport { ConsoleInterceptor } from \"../consoleInterceptor\";\nimport { parseError, sanitizeError } from \"../errors\";\nimport { TracingSDK, recordSpanException } from \"../otel\";\nimport {\n BackgroundWorkerProperties,\n Config,\n TaskRunContext,\n TaskRunErrorCodes,\n TaskRunExecution,\n TaskRunExecutionResult,\n TaskRunExecutionRetry,\n} from \"../schemas\";\nimport { SemanticInternalAttributes } from \"../semanticInternalAttributes\";\nimport { taskContext } from \"../task-context-api\";\nimport { TriggerTracer } from \"../tracer\";\nimport { HandleErrorFunction, ProjectConfig, TaskMetadataWithFunctions } from \"../types\";\nimport {\n conditionallyExportPacket,\n conditionallyImportPacket,\n createPacketAttributes,\n parsePacket,\n stringifyIO,\n} from \"../utils/ioSerialization\";\nimport { calculateNextRetryDelay } from \"../utils/retries\";\nimport { accessoryAttributes } from \"../utils/styleAttributes\";\nimport { UsageMeasurement } from \"../usage/types\";\nimport { ApiError, RateLimitError } from \"../apiClient/errors\";\n\nexport type TaskExecutorOptions = {\n tracingSDK: TracingSDK;\n tracer: TriggerTracer;\n consoleInterceptor: ConsoleInterceptor;\n projectConfig: Config;\n importedConfig: ProjectConfig | undefined;\n handleErrorFn: HandleErrorFunction | undefined;\n};\n\nexport class TaskExecutor {\n private _tracingSDK: TracingSDK;\n private _tracer: TriggerTracer;\n private _consoleInterceptor: ConsoleInterceptor;\n private _config: Config;\n private _importedConfig: ProjectConfig | undefined;\n private _handleErrorFn: HandleErrorFunction | undefined;\n\n constructor(\n public task: TaskMetadataWithFunctions,\n options: TaskExecutorOptions\n ) {\n this._tracingSDK = options.tracingSDK;\n this._tracer = options.tracer;\n this._consoleInterceptor = options.consoleInterceptor;\n this._config = options.projectConfig;\n this._importedConfig = options.importedConfig;\n this._handleErrorFn = options.handleErrorFn;\n }\n\n async execute(\n execution: TaskRunExecution,\n worker: BackgroundWorkerProperties,\n traceContext: Record<string, unknown>,\n usage: UsageMeasurement\n ): Promise<{ result: TaskRunExecutionResult }> {\n const ctx = TaskRunContext.parse(execution);\n const attemptMessage = `Attempt ${execution.attempt.number}`;\n\n const originalPacket = {\n data: execution.run.payload,\n dataType: execution.run.payloadType,\n };\n\n taskContext.setGlobalTaskContext({\n ctx,\n worker,\n });\n\n this._tracingSDK.asyncResourceDetector.resolveWithAttributes({\n ...taskContext.attributes,\n [SemanticInternalAttributes.SDK_VERSION]: this.task.packageVersion,\n [SemanticInternalAttributes.SDK_LANGUAGE]: \"typescript\",\n });\n\n const result = await this._tracer.startActiveSpan(\n attemptMessage,\n async (span) => {\n return await this._consoleInterceptor.intercept(console, async () => {\n let parsedPayload: any;\n let initOutput: any;\n\n try {\n const payloadPacket = await conditionallyImportPacket(originalPacket, this._tracer);\n\n parsedPayload = await parsePacket(payloadPacket);\n\n if (execution.attempt.number === 1) {\n await this.#callOnStartFunctions(parsedPayload, ctx);\n }\n\n initOutput = await this.#callInitFunctions(parsedPayload, ctx);\n\n const output = await this.#callRun(parsedPayload, ctx, initOutput);\n\n await this.#callOnSuccessFunctions(parsedPayload, output, ctx, initOutput);\n\n try {\n const stringifiedOutput = await stringifyIO(output);\n\n const finalOutput = await conditionallyExportPacket(\n stringifiedOutput,\n `${execution.attempt.id}/output`,\n this._tracer\n );\n\n const attributes = await createPacketAttributes(\n finalOutput,\n SemanticInternalAttributes.OUTPUT,\n SemanticInternalAttributes.OUTPUT_TYPE\n );\n\n if (attributes) {\n span.setAttributes(attributes);\n }\n\n return {\n ok: true,\n id: execution.run.id,\n output: finalOutput.data,\n outputType: finalOutput.dataType,\n } satisfies TaskRunExecutionResult;\n } catch (stringifyError) {\n recordSpanException(span, stringifyError);\n\n return {\n ok: false,\n id: execution.run.id,\n error: {\n type: \"INTERNAL_ERROR\",\n code: TaskRunErrorCodes.TASK_OUTPUT_ERROR,\n message:\n stringifyError instanceof Error\n ? stringifyError.message\n : typeof stringifyError === \"string\"\n ? stringifyError\n : undefined,\n },\n } satisfies TaskRunExecutionResult;\n }\n } catch (runError) {\n try {\n const handleErrorResult = await this.#handleError(\n execution,\n runError,\n parsedPayload,\n ctx\n );\n\n recordSpanException(span, handleErrorResult.error ?? runError);\n\n if (handleErrorResult.status !== \"retry\") {\n await this.#callOnFailureFunctions(\n parsedPayload,\n handleErrorResult.error ?? runError,\n ctx,\n initOutput\n );\n }\n\n return {\n id: execution.run.id,\n ok: false,\n error: sanitizeError(\n handleErrorResult.error\n ? parseError(handleErrorResult.error)\n : parseError(runError)\n ),\n retry: handleErrorResult.status === \"retry\" ? handleErrorResult.retry : undefined,\n skippedRetrying: handleErrorResult.status === \"skipped\",\n } satisfies TaskRunExecutionResult;\n } catch (handleErrorError) {\n recordSpanException(span, handleErrorError);\n\n return {\n ok: false,\n id: execution.run.id,\n error: {\n type: \"INTERNAL_ERROR\",\n code: TaskRunErrorCodes.HANDLE_ERROR_ERROR,\n message:\n handleErrorError instanceof Error\n ? handleErrorError.message\n : typeof handleErrorError === \"string\"\n ? handleErrorError\n : undefined,\n },\n } satisfies TaskRunExecutionResult;\n }\n } finally {\n await this.#callTaskCleanup(parsedPayload, ctx, initOutput);\n }\n });\n },\n {\n kind: SpanKind.CONSUMER,\n attributes: {\n [SemanticInternalAttributes.STYLE_ICON]: \"attempt\",\n ...accessoryAttributes({\n items: [\n {\n text: ctx.task.filePath,\n },\n {\n text: `${ctx.task.exportName}.run()`,\n },\n ],\n style: \"codepath\",\n }),\n },\n },\n this._tracer.extractContext(traceContext)\n );\n\n return { result };\n }\n\n async #callRun(payload: unknown, ctx: TaskRunContext, init: unknown) {\n const runFn = this.task.fns.run;\n const middlewareFn = this.task.fns.middleware;\n\n if (!runFn) {\n throw new Error(\"Task does not have a run function\");\n }\n\n if (!middlewareFn) {\n return runFn(payload, { ctx, init });\n }\n\n return middlewareFn(payload, { ctx, next: async () => runFn(payload, { ctx, init }) });\n }\n\n async #callInitFunctions(payload: unknown, ctx: TaskRunContext) {\n await this.#callConfigInit(payload, ctx);\n\n const initFn = this.task.fns.init;\n\n if (!initFn) {\n return {};\n }\n\n return this._tracer.startActiveSpan(\n \"init\",\n async (span) => {\n return await initFn(payload, { ctx });\n },\n {\n attributes: {\n [SemanticInternalAttributes.STYLE_ICON]: \"function\",\n },\n }\n );\n }\n\n async #callConfigInit(payload: unknown, ctx: TaskRunContext) {\n const initFn = this._importedConfig?.init;\n\n if (!initFn) {\n return {};\n }\n\n return this._tracer.startActiveSpan(\n \"config.init\",\n async (span) => {\n return await initFn(payload, { ctx });\n },\n {\n attributes: {\n [SemanticInternalAttributes.STYLE_ICON]: \"function\",\n },\n }\n );\n }\n\n async #callOnSuccessFunctions(\n payload: unknown,\n output: any,\n ctx: TaskRunContext,\n initOutput: any\n ) {\n await this.#callOnSuccessFunction(\n this.task.fns.onSuccess,\n \"task.onSuccess\",\n payload,\n output,\n ctx,\n initOutput\n );\n\n await this.#callOnSuccessFunction(\n this._importedConfig?.onSuccess,\n \"config.onSuccess\",\n payload,\n output,\n ctx,\n initOutput\n );\n }\n\n async #callOnSuccessFunction(\n onSuccessFn: TaskMetadataWithFunctions[\"fns\"][\"onSuccess\"],\n name: string,\n payload: unknown,\n output: any,\n ctx: TaskRunContext,\n initOutput: any\n ) {\n if (!onSuccessFn) {\n return;\n }\n\n try {\n await this._tracer.startActiveSpan(\n name,\n async (span) => {\n return await onSuccessFn(payload, output, { ctx, init: initOutput });\n },\n {\n attributes: {\n [SemanticInternalAttributes.STYLE_ICON]: \"function\",\n },\n }\n );\n } catch {\n // Ignore errors from onSuccess functions\n }\n }\n\n async #callOnFailureFunctions(\n payload: unknown,\n error: unknown,\n ctx: TaskRunContext,\n initOutput: any\n ) {\n await this.#callOnFailureFunction(\n this.task.fns.onFailure,\n \"task.onFailure\",\n payload,\n error,\n ctx,\n initOutput\n );\n\n await this.#callOnFailureFunction(\n this._importedConfig?.onFailure,\n \"config.onFailure\",\n payload,\n error,\n ctx,\n initOutput\n );\n }\n\n async #callOnFailureFunction(\n onFailureFn: TaskMetadataWithFunctions[\"fns\"][\"onFailure\"],\n name: string,\n payload: unknown,\n error: unknown,\n ctx: TaskRunContext,\n initOutput: any\n ) {\n if (!onFailureFn) {\n return;\n }\n\n try {\n return await this._tracer.startActiveSpan(\n name,\n async (span) => {\n return await onFailureFn(payload, error, { ctx, init: initOutput });\n },\n {\n attributes: {\n [SemanticInternalAttributes.STYLE_ICON]: \"function\",\n },\n }\n );\n } catch (e) {\n // Ignore errors from onFailure functions\n }\n }\n\n async #callOnStartFunctions(payload: unknown, ctx: TaskRunContext) {\n await this.#callOnStartFunction(\n this._importedConfig?.onStart,\n \"config.onStart\",\n payload,\n ctx,\n {}\n );\n\n await this.#callOnStartFunction(this.task.fns.onStart, \"task.onStart\", payload, ctx, {});\n }\n\n async #callOnStartFunction(\n onStartFn: TaskMetadataWithFunctions[\"fns\"][\"onStart\"],\n name: string,\n payload: unknown,\n ctx: TaskRunContext,\n initOutput: any\n ) {\n if (!onStartFn) {\n return;\n }\n\n try {\n await this._tracer.startActiveSpan(\n name,\n async (span) => {\n return await onStartFn(payload, { ctx });\n },\n {\n attributes: {\n [SemanticInternalAttributes.STYLE_ICON]: \"function\",\n },\n }\n );\n } catch {\n // Ignore errors from onStart functions\n }\n }\n\n async #callTaskCleanup(payload: unknown, ctx: TaskRunContext, init: unknown) {\n const cleanupFn = this.task.fns.cleanup;\n\n if (!cleanupFn) {\n return;\n }\n\n return this._tracer.startActiveSpan(\"cleanup\", async (span) => {\n return await cleanupFn(payload, { ctx, init });\n });\n }\n\n async #handleError(\n execution: TaskRunExecution,\n error: unknown,\n payload: any,\n ctx: TaskRunContext\n ): Promise<\n | { status: \"retry\"; retry: TaskRunExecutionRetry; error?: unknown }\n | { status: \"skipped\"; error?: unknown } // skipped is different than noop, it means that the task was skipped from retrying, instead of just not retrying\n | { status: \"noop\"; error?: unknown }\n > {\n const retriesConfig = this._importedConfig?.retries ?? this._config.retries;\n\n const retry = this.task.retry ?? retriesConfig?.default;\n\n if (!retry) {\n return { status: \"noop\" };\n }\n\n if (error instanceof Error && error.name === \"AbortTaskRunError\") {\n return { status: \"skipped\" };\n }\n\n if (execution.run.maxAttempts) {\n retry.maxAttempts = Math.max(execution.run.maxAttempts, 1);\n }\n\n let delay = calculateNextRetryDelay(retry, execution.attempt.number);\n\n if (\n delay &&\n error instanceof Error &&\n error.name === \"TriggerApiError\" &&\n (error as ApiError).status === 429\n ) {\n const rateLimitError = error as RateLimitError;\n\n delay = rateLimitError.millisecondsUntilReset;\n }\n\n if (\n execution.environment.type === \"DEVELOPMENT\" &&\n typeof retriesConfig?.enabledInDev === \"boolean\" &&\n !retriesConfig.enabledInDev\n ) {\n return { status: \"skipped\" };\n }\n\n return this._tracer.startActiveSpan(\n \"handleError()\",\n async (span) => {\n const handleErrorResult = this.task.fns.handleError\n ? await this.task.fns.handleError(payload, error, {\n ctx,\n retry,\n retryDelayInMs: delay,\n retryAt: delay ? new Date(Date.now() + delay) : undefined,\n })\n : this._importedConfig\n ? await this._handleErrorFn?.(payload, error, {\n ctx,\n retry,\n retryDelayInMs: delay,\n retryAt: delay ? new Date(Date.now() + delay) : undefined,\n })\n : undefined;\n\n // If handleErrorResult\n if (!handleErrorResult) {\n return typeof delay === \"undefined\"\n ? { status: \"noop\" }\n : { status: \"retry\", retry: { timestamp: Date.now() + delay, delay } };\n }\n\n if (handleErrorResult.skipRetrying) {\n return { status: \"skipped\", error: handleErrorResult.error };\n }\n\n if (typeof handleErrorResult.retryAt !== \"undefined\") {\n return {\n status: \"retry\",\n retry: {\n timestamp: handleErrorResult.retryAt.getTime(),\n delay: handleErrorResult.retryAt.getTime() - Date.now(),\n },\n error: handleErrorResult.error,\n };\n }\n\n if (typeof handleErrorResult.retryDelayInMs === \"number\") {\n return {\n status: \"retry\",\n retry: {\n timestamp: Date.now() + handleErrorResult.retryDelayInMs,\n delay: handleErrorResult.retryDelayInMs,\n },\n error: handleErrorResult.error,\n };\n }\n\n if (handleErrorResult.retry && typeof handleErrorResult.retry === \"object\") {\n const delay = calculateNextRetryDelay(handleErrorResult.retry, execution.attempt.number);\n\n return typeof delay === \"undefined\"\n ? { status: \"noop\", error: handleErrorResult.error }\n : {\n status: \"retry\",\n retry: { timestamp: Date.now() + delay, delay },\n error: handleErrorResult.error,\n };\n }\n\n return { status: \"noop\", error: handleErrorResult.error };\n },\n {\n attributes: {\n [SemanticInternalAttributes.STYLE_ICON]: \"exclamation-circle\",\n },\n }\n );\n }\n}\n","import { z } from \"zod\";\nimport { TaskRunError } from \"./schemas/common\";\n\nexport class AbortTaskRunError extends Error {\n constructor(message: string) {\n super(message);\n this.name = \"AbortTaskRunError\";\n }\n}\n\nexport function parseError(error: unknown): TaskRunError {\n if (error instanceof Error) {\n return {\n type: \"BUILT_IN_ERROR\",\n name: error.name,\n message: error.message,\n stackTrace: error.stack ?? \"\",\n };\n }\n\n if (typeof error === \"string\") {\n return {\n type: \"STRING_ERROR\",\n raw: error,\n };\n }\n\n try {\n return {\n type: \"CUSTOM_ERROR\",\n raw: JSON.stringify(error),\n };\n } catch (e) {\n return {\n type: \"CUSTOM_ERROR\",\n raw: String(error),\n };\n }\n}\n\nexport function createErrorTaskError(error: TaskRunError): any {\n switch (error.type) {\n case \"BUILT_IN_ERROR\": {\n const e = new Error(error.message);\n\n e.name = error.name;\n e.stack = error.stackTrace;\n\n return e;\n }\n case \"STRING_ERROR\": {\n return error.raw;\n }\n case \"CUSTOM_ERROR\": {\n return JSON.parse(error.raw);\n }\n case \"INTERNAL_ERROR\": {\n return new Error(`trigger.dev internal error (${error.code})`);\n }\n }\n}\n\nexport const SerializedError = z.object({\n message: z.string(),\n name: z.string().optional(),\n stackTrace: z.string().optional(),\n});\n\nexport type SerializedError = z.infer<typeof SerializedError>;\n\nexport function createJsonErrorObject(error: TaskRunError): SerializedError {\n switch (error.type) {\n case \"BUILT_IN_ERROR\": {\n return {\n name: error.name,\n message: error.message,\n stackTrace: error.stackTrace,\n };\n }\n case \"STRING_ERROR\": {\n return {\n message: error.raw,\n };\n }\n case \"CUSTOM_ERROR\": {\n return {\n message: error.raw,\n };\n }\n case \"INTERNAL_ERROR\": {\n return {\n message: `trigger.dev internal error (${error.code})`,\n };\n }\n }\n}\n\n// Removes any null characters from the error message\nexport function sanitizeError(error: TaskRunError): TaskRunError {\n switch (error.type) {\n case \"BUILT_IN_ERROR\": {\n return {\n type: \"BUILT_IN_ERROR\",\n message: error.message?.replace(/\\0/g, \"\"),\n name: error.name?.replace(/\\0/g, \"\"),\n stackTrace: error.stackTrace?.replace(/\\0/g, \"\"),\n };\n }\n case \"STRING_ERROR\": {\n return {\n type: \"STRING_ERROR\",\n raw: error.raw.replace(/\\0/g, \"\"),\n };\n }\n case \"CUSTOM_ERROR\": {\n return {\n type: \"CUSTOM_ERROR\",\n raw: error.raw.replace(/\\0/g, \"\"),\n };\n }\n case \"INTERNAL_ERROR\": {\n return {\n type: \"INTERNAL_ERROR\",\n code: error.code,\n message: error.message?.replace(/\\0/g, \"\"),\n stackTrace: error.stackTrace?.replace(/\\0/g, \"\"),\n };\n }\n }\n}\n\nexport function correctErrorStackTrace(\n stackTrace: string,\n projectDir?: string,\n options?: { removeFirstLine?: boolean; isDev?: boolean }\n) {\n const [errorLine, ...traceLines] = stackTrace.split(\"\\n\");\n\n return [\n options?.removeFirstLine ? undefined : errorLine,\n ...traceLines.map((line) => correctStackTraceLine(line, projectDir, options?.isDev)),\n ]\n .filter(Boolean)\n .join(\"\\n\");\n}\n\nconst LINES_TO_IGNORE = [\n /ConsoleInterceptor/,\n /TriggerTracer/,\n /TaskExecutor/,\n /EXECUTE_TASK_RUN/,\n /@trigger.dev\\/core/,\n /packages\\/core\\/src\\/v3/,\n /safeJsonProcess/,\n /__entryPoint.ts/,\n /ZodIpc/,\n /startActiveSpan/,\n /processTicksAndRejections/,\n];\n\nfunction correctStackTraceLine(line: string, projectDir?: string, isDev?: boolean) {\n if (LINES_TO_IGNORE.some((regex) => regex.test(line))) {\n return;\n }\n\n // Check to see if the path is inside the project directory\n if (isDev && projectDir && !line.includes(projectDir)) {\n return;\n }\n\n return line.trim();\n}\n\nexport function groupTaskMetadataIssuesByTask(tasks: any, issues: z.ZodIssue[]) {\n return issues.reduce(\n (acc, issue) => {\n if (issue.path.length === 0) {\n return acc;\n }\n\n const taskIndex = issue.path[1];\n\n if (typeof taskIndex !== \"number\") {\n return acc;\n }\n\n const task = tasks[taskIndex];\n\n if (!task) {\n return acc;\n }\n\n const restOfPath = issue.path.slice(2);\n\n const taskId = task.id;\n const taskName = task.exportName;\n const filePath = task.filePath;\n\n const key = taskIndex;\n\n const existing = acc[key] ?? {\n id: taskId,\n exportName: taskName,\n filePath,\n issues: [] as Array<{ message: string; path?: string }>,\n };\n\n existing.issues.push({\n message: issue.message,\n path: restOfPath.length === 0 ? undefined : restOfPath.join(\".\"),\n });\n\n return {\n ...acc,\n [key]: existing,\n };\n },\n {} as Record<\n number,\n {\n id: any;\n exportName: string;\n filePath: string;\n issues: Array<{ message: string; path?: string }>;\n }\n >\n );\n}\n","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.52\",\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}","import { z } from \"zod\";\nimport { BackgroundWorkerMetadata, ImageDetailsMetadata } from \"./resources\";\nimport { QueueOptions } from \"./schemas\";\nimport { SerializedError } from \"../errors\";\n\nexport const WhoAmIResponseSchema = z.object({\n userId: z.string(),\n email: z.string().email(),\n dashboardUrl: z.string(),\n});\n\nexport type WhoAmIResponse = z.infer<typeof WhoAmIResponseSchema>;\n\nexport const GetProjectResponseBody = z.object({\n id: z.string(),\n externalRef: z.string(),\n name: z.string(),\n slug: z.string(),\n createdAt: z.coerce.date(),\n organization: z.object({\n id: z.string(),\n title: z.string(),\n slug: z.string(),\n createdAt: z.coerce.date(),\n }),\n});\n\nexport type GetProjectResponseBody = z.infer<typeof GetProjectResponseBody>;\n\nexport const GetProjectsResponseBody = z.array(GetProjectResponseBody);\n\nexport type GetProjectsResponseBody = z.infer<typeof GetProjectsResponseBody>;\n\nexport const GetProjectEnvResponse = z.object({\n apiKey: z.string(),\n name: z.string(),\n apiUrl: z.string(),\n});\n\nexport type GetProjectEnvResponse = z.infer<typeof GetProjectEnvResponse>;\n\nexport const CreateBackgroundWorkerRequestBody = z.object({\n localOnly: z.boolean(),\n metadata: BackgroundWorkerMetadata,\n supportsLazyAttempts: z.boolean().optional(),\n});\n\nexport type CreateBackgroundWorkerRequestBody = z.infer<typeof CreateBackgroundWorkerRequestBody>;\n\nexport const CreateBackgroundWorkerResponse = z.object({\n id: z.string(),\n version: z.string(),\n contentHash: z.string(),\n});\n\nexport type CreateBackgroundWorkerResponse = z.infer<typeof CreateBackgroundWorkerResponse>;\n\n//an array of 1, 2, or 3 strings\nconst RunTag = z.string().max(64, \"Tags must be less than 64 characters\");\nexport const RunTags = z.union([RunTag, RunTag.array()]);\n\nexport type RunTags = z.infer<typeof RunTags>;\n\nexport const TriggerTaskRequestBody = z.object({\n payload: z.any(),\n context: z.any(),\n options: z\n .object({\n dependentAttempt: z.string().optional(),\n dependentBatch: z.string().optional(),\n lockToVersion: z.string().optional(),\n queue: QueueOptions.optional(),\n concurrencyKey: z.string().optional(),\n idempotencyKey: z.string().optional(),\n test: z.boolean().optional(),\n payloadType: z.string().optional(),\n delay: z.string().or(z.coerce.date()).optional(),\n ttl: z.string().or(z.number().nonnegative().int()).optional(),\n tags: RunTags.optional(),\n maxAttempts: z.number().int().optional(),\n })\n .optional(),\n});\n\nexport type TriggerTaskRequestBody = z.infer<typeof TriggerTaskRequestBody>;\n\nexport const TriggerTaskResponse = z.object({\n id: z.string(),\n});\n\nexport type TriggerTaskResponse = z.infer<typeof TriggerTaskResponse>;\n\nexport const BatchTriggerTaskRequestBody = z.object({\n items: TriggerTaskRequestBody.array(),\n dependentAttempt: z.string().optional(),\n});\n\nexport type BatchTriggerTaskRequestBody = z.infer<typeof BatchTriggerTaskRequestBody>;\n\nexport const BatchTriggerTaskResponse = z.object({\n batchId: z.string(),\n runs: z.string().array(),\n});\n\nexport type BatchTriggerTaskResponse = z.infer<typeof BatchTriggerTaskResponse>;\n\nexport const GetBatchResponseBody = z.object({\n id: z.string(),\n items: z.array(\n z.object({\n id: z.string(),\n taskRunId: z.string(),\n status: z.enum([\"PENDING\", \"CANCELED\", \"COMPLETED\", \"FAILED\"]),\n })\n ),\n});\n\nexport type GetBatchResponseBody = z.infer<typeof GetBatchResponseBody>;\n\nexport const AddTagsRequestBody = z.object({\n tags: RunTags,\n});\n\nexport type AddTagsRequestBody = z.infer<typeof AddTagsRequestBody>;\n\nexport const RescheduleRunRequestBody = z.object({\n delay: z.string().or(z.coerce.date()),\n});\n\nexport type RescheduleRunRequestBody = z.infer<typeof RescheduleRunRequestBody>;\n\nexport const GetEnvironmentVariablesResponseBody = z.object({\n variables: z.record(z.string()),\n});\n\nexport type GetEnvironmentVariablesResponseBody = z.infer<\n typeof GetEnvironmentVariablesResponseBody\n>;\n\nexport const StartDeploymentIndexingRequestBody = z.object({\n imageReference: z.string(),\n selfHosted: z.boolean().optional(),\n});\n\nexport type StartDeploymentIndexingRequestBody = z.infer<typeof StartDeploymentIndexingRequestBody>;\n\nexport const StartDeploymentIndexingResponseBody = z.object({\n id: z.string(),\n contentHash: z.string(),\n});\n\nexport type StartDeploymentIndexingResponseBody = z.infer<\n typeof StartDeploymentIndexingResponseBody\n>;\n\nexport const ExternalBuildData = z.object({\n buildId: z.string(),\n buildToken: z.string(),\n projectId: z.string(),\n});\n\nexport type ExternalBuildData = z.infer<typeof ExternalBuildData>;\n\nexport const InitializeDeploymentResponseBody = z.object({\n id: z.string(),\n contentHash: z.string(),\n shortCode: z.string(),\n version: z.string(),\n imageTag: z.string(),\n externalBuildData: ExternalBuildData.optional().nullable(),\n registryHost: z.string().optional(),\n});\n\nexport type InitializeDeploymentResponseBody = z.infer<typeof InitializeDeploymentResponseBody>;\n\nexport const InitializeDeploymentRequestBody = z.object({\n contentHash: z.string(),\n userId: z.string().optional(),\n});\n\nexport type InitializeDeploymentRequestBody = z.infer<typeof InitializeDeploymentRequestBody>;\n\nexport const DeploymentErrorData = z.object({\n name: z.string(),\n message: z.string(),\n stack: z.string().optional(),\n stderr: z.string().optional(),\n});\n\nexport const GetDeploymentResponseBody = z.object({\n id: z.string(),\n status: z.enum([\n \"PENDING\",\n \"BUILDING\",\n \"DEPLOYING\",\n \"DEPLOYED\",\n \"FAILED\",\n \"CANCELED\",\n \"TIMED_OUT\",\n ]),\n contentHash: z.string(),\n shortCode: z.string(),\n version: z.string(),\n imageReference: z.string().optional(),\n errorData: DeploymentErrorData.optional().nullable(),\n worker: z\n .object({\n id: z.string(),\n version: z.string(),\n tasks: z.array(\n z.object({\n id: z.string(),\n slug: z.string(),\n filePath: z.string(),\n exportName: z.string(),\n })\n ),\n })\n .optional(),\n});\n\nexport type GetDeploymentResponseBody = z.infer<typeof GetDeploymentResponseBody>;\n\nexport const CreateUploadPayloadUrlResponseBody = z.object({\n presignedUrl: z.string(),\n});\n\nexport type CreateUploadPayloadUrlResponseBody = z.infer<typeof CreateUploadPayloadUrlResponseBody>;\n\nexport const ReplayRunResponse = z.object({\n id: z.string(),\n});\n\nexport type ReplayRunResponse = z.infer<typeof ReplayRunResponse>;\n\nexport const CanceledRunResponse = z.object({\n id: z.string(),\n});\n\nexport type CanceledRunResponse = z.infer<typeof CanceledRunResponse>;\n\nexport const ScheduleType = z.union([z.literal(\"DECLARATIVE\"), z.literal(\"IMPERATIVE\")]);\n\nexport const ScheduledTaskPayload = z.object({\n /** The schedule id associated with this run (you can have many schedules for the same task).\n You can use this to remove the schedule, update it, etc */\n scheduleId: z.string(),\n /** The type of schedule – `\"DECLARATIVE\"` or `\"IMPERATIVE\"`.\n *\n * **DECLARATIVE** – defined inline on your `schedules.task` using the `cron` property. They can only be created, updated or deleted by modifying the `cron` property on your task.\n *\n * **IMPERATIVE** – created using the `schedules.create` functions or in the dashboard.\n */\n type: ScheduleType,\n /** When the task was scheduled to run.\n * Note this will be slightly different from `new Date()` because it takes a few ms to run the task.\n * \n * This date is UTC. To output it as a string with a timezone you would do this: \n * ```ts\n * const formatted = payload.timestamp.toLocaleString(\"en-US\", {\n timeZone: payload.timezone,\n });\n ``` */\n timestamp: z.date(),\n /** When the task was last run (it has been).\n This can be undefined if it's never been run. This date is UTC. */\n lastTimestamp: z.date().optional(),\n /** You can optionally provide an external id when creating the schedule.\n Usually you would use a userId or some other unique identifier.\n This defaults to undefined if you didn't provide one. */\n externalId: z.string().optional(),\n /** The IANA timezone the schedule is set to. The default is UTC.\n * You can see the full list of supported timezones here: https://cloud.trigger.dev/timezones\n */\n timezone: z.string(),\n /** The next 5 dates this task is scheduled to run */\n upcoming: z.array(z.date()),\n});\n\nexport type ScheduledTaskPayload = z.infer<typeof ScheduledTaskPayload>;\n\nexport const CreateScheduleOptions = z.object({\n /** The id of the task you want to attach to. */\n task: z.string(),\n /** The schedule in CRON format.\n * \n * ```txt\n* * * * * *\n┬ ┬ ┬ ┬ ┬\n│ │ │ │ |\n│ │ │ │ └ day of week (0 - 7, 1L - 7L) (0 or 7 is Sun)\n│ │ │ └───── month (1 - 12)\n│ │ └────────── day of month (1 - 31, L)\n│ └─────────────── hour (0 - 23)\n└──────────────────── minute (0 - 59)\n * ```\n\n\"L\" means the last. In the \"day of week\" field, 1L means the last Monday of the month. In the day of month field, L means the last day of the month.\n\n */\n cron: z.string(),\n /** You can only create one schedule with this key. If you use it twice, the second call will update the schedule.\n *\n * This is required to prevent you from creating duplicate schedules. */\n deduplicationKey: z.string(),\n /** Optionally, you can specify your own IDs (like a user ID) and then use it inside the run function of your task.\n *\n * This allows you to have per-user CRON tasks.\n */\n externalId: z.string().optional(),\n /** Optionally, you can specify a timezone in the IANA format. If unset it will use UTC.\n * If specified then the CRON will be evaluated in that timezone and will respect daylight savings.\n *\n * If you set the CRON to `0 0 * * *` and the timezone to `America/New_York` then the task will run at midnight in New York time, no matter whether it's daylight savings or not.\n *\n * You can see the full list of supported timezones here: https://cloud.trigger.dev/timezones\n *\n * @example \"America/New_York\", \"Europe/London\", \"Asia/Tokyo\", \"Africa/Cairo\"\n *\n */\n timezone: z.string().optional(),\n});\n\nexport type CreateScheduleOptions = z.infer<typeof CreateScheduleOptions>;\n\nexport const UpdateScheduleOptions = CreateScheduleOptions.omit({ deduplicationKey: true });\n\nexport type UpdateScheduleOptions = z.infer<typeof UpdateScheduleOptions>;\n\nexport const ScheduleGenerator = z.object({\n type: z.literal(\"CRON\"),\n expression: z.string(),\n description: z.string(),\n});\n\nexport type ScheduleGenerator = z.infer<typeof ScheduleGenerator>;\n\nexport const ScheduleObject = z.object({\n id: z.string(),\n type: ScheduleType,\n task: z.string(),\n active: z.boolean(),\n deduplicationKey: z.string().nullish(),\n externalId: z.string().nullish(),\n generator: ScheduleGenerator,\n timezone: z.string(),\n nextRun: z.coerce.date().nullish(),\n environments: z.array(\n z.object({\n id: z.string(),\n type: z.string(),\n userName: z.string().nullish(),\n })\n ),\n});\n\nexport type ScheduleObject = z.infer<typeof ScheduleObject>;\n\nexport const DeletedScheduleObject = z.object({\n id: z.string(),\n});\n\nexport type DeletedScheduleObject = z.infer<typeof DeletedScheduleObject>;\n\nexport const ListSchedulesResult = z.object({\n data: z.array(ScheduleObject),\n pagination: z.object({\n currentPage: z.number(),\n totalPages: z.number(),\n count: z.number(),\n }),\n});\n\nexport type ListSchedulesResult = z.infer<typeof ListSchedulesResult>;\n\nexport const ListScheduleOptions = z.object({\n page: z.number().optional(),\n perPage: z.number().optional(),\n});\n\nexport type ListScheduleOptions = z.infer<typeof ListScheduleOptions>;\n\nexport const TimezonesResult = z.object({\n timezones: z.array(z.string()),\n});\n\nexport type TimezonesResult = z.infer<typeof TimezonesResult>;\n\nexport const RunStatus = z.enum([\n /// Task hasn't been deployed yet but is waiting to be executed\n \"WAITING_FOR_DEPLOY\",\n /// Task is waiting to be executed by a worker\n \"QUEUED\",\n /// Task is currently being executed by a worker\n \"EXECUTING\",\n /// Task has failed and is waiting to be retried\n \"REATTEMPTING\",\n /// Task has been paused by the system, and will be resumed by the system\n \"FROZEN\",\n /// Task has been completed successfully\n \"COMPLETED\",\n /// Task has been canceled by the user\n \"CANCELED\",\n /// Task has been completed with errors\n \"FAILED\",\n /// Task has crashed and won't be retried, most likely the worker ran out of resources, e.g. memory or storage\n \"CRASHED\",\n /// Task was interrupted during execution, mostly this happens in development environments\n \"INTERRUPTED\",\n /// Task has failed to complete, due to an error in the system\n \"SYSTEM_FAILURE\",\n /// Task has been scheduled to run at a specific time\n \"DELAYED\",\n /// Task has expired and won't be executed\n \"EXPIRED\",\n]);\n\nexport type RunStatus = z.infer<typeof RunStatus>;\n\nexport const AttemptStatus = z.enum([\n \"PENDING\",\n \"EXECUTING\",\n \"PAUSED\",\n \"COMPLETED\",\n \"FAILED\",\n \"CANCELED\",\n]);\n\nexport type AttemptStatus = z.infer<typeof AttemptStatus>;\n\nexport const RunEnvironmentDetails = z.object({\n id: z.string(),\n name: z.string(),\n user: z.string().optional(),\n});\n\nexport type RunEnvironmentDetails = z.infer<typeof RunEnvironmentDetails>;\n\nexport const RunScheduleDetails = z.object({\n id: z.string(),\n externalId: z.string().optional(),\n deduplicationKey: z.string().optional(),\n generator: ScheduleGenerator,\n});\n\nexport type RunScheduleDetails = z.infer<typeof RunScheduleDetails>;\n\nconst CommonRunFields = {\n id: z.string(),\n status: RunStatus,\n taskIdentifier: z.string(),\n idempotencyKey: z.string().optional(),\n version: z.string().optional(),\n isQueued: z.boolean(),\n isExecuting: z.boolean(),\n isCompleted: z.boolean(),\n isSuccess: z.boolean(),\n isFailed: z.boolean(),\n isCancelled: z.boolean(),\n isTest: z.boolean(),\n createdAt: z.coerce.date(),\n updatedAt: z.coerce.date(),\n startedAt: z.coerce.date().optional(),\n finishedAt: z.coerce.date().optional(),\n delayedUntil: z.coerce.date().optional(),\n ttl: z.string().optional(),\n expiredAt: z.coerce.date().optional(),\n tags: z.string().array(),\n costInCents: z.number(),\n baseCostInCents: z.number(),\n durationMs: z.number(),\n};\n\nexport const RetrieveRunResponse = z.object({\n ...CommonRunFields,\n payload: z.any().optional(),\n payloadPresignedUrl: z.string().optional(),\n output: z.any().optional(),\n outputPresignedUrl: z.string().optional(),\n schedule: RunScheduleDetails.optional(),\n attempts: z.array(\n z\n .object({\n id: z.string(),\n status: AttemptStatus,\n createdAt: z.coerce.date(),\n updatedAt: z.coerce.date(),\n startedAt: z.coerce.date().optional(),\n completedAt: z.coerce.date().optional(),\n error: SerializedError.optional(),\n })\n .optional()\n ),\n});\n\nexport type RetrieveRunResponse = z.infer<typeof RetrieveRunResponse>;\n\nexport const ListRunResponseItem = z.object({\n ...CommonRunFields,\n env: RunEnvironmentDetails,\n});\n\nexport type ListRunResponseItem = z.infer<typeof ListRunResponseItem>;\n\nexport const ListRunResponse = z.object({\n data: z.array(ListRunResponseItem),\n pagination: z.object({\n next: z.string().optional(),\n previous: z.string().optional(),\n }),\n});\n\nexport type ListRunResponse = z.infer<typeof ListRunResponse>;\n\nexport const CreateEnvironmentVariableRequestBody = z.object({\n name: z.string(),\n value: z.string(),\n});\n\nexport type CreateEnvironmentVariableRequestBody = z.infer<\n typeof CreateEnvironmentVariableRequestBody\n>;\n\nexport const UpdateEnvironmentVariableRequestBody = z.object({\n value: z.string(),\n});\n\nexport type UpdateEnvironmentVariableRequestBody = z.infer<\n typeof UpdateEnvironmentVariableRequestBody\n>;\n\nexport const ImportEnvironmentVariablesRequestBody = z.object({\n variables: z.record(z.string()),\n override: z.boolean().optional(),\n});\n\nexport type ImportEnvironmentVariablesRequestBody = z.infer<\n typeof ImportEnvironmentVariablesRequestBody\n>;\n\nexport const EnvironmentVariableResponseBody = z.object({\n success: z.boolean(),\n});\n\nexport type EnvironmentVariableResponseBody = z.infer<typeof EnvironmentVariableResponseBody>;\n\nexport const EnvironmentVariableValue = z.object({\n value: z.string(),\n});\n\nexport type EnvironmentVariableValue = z.infer<typeof EnvironmentVariableValue>;\n\nexport const EnvironmentVariable = z.object({\n name: z.string(),\n value: z.string(),\n});\n\nexport const EnvironmentVariables = z.array(EnvironmentVariable);\n\nexport type EnvironmentVariables = z.infer<typeof EnvironmentVariables>;\n","import { z } from \"zod\";\nimport { QueueOptions, RetryOptions, ScheduleMetadata } from \"./schemas\";\nimport { MachineConfig } from \"./common\";\n\nexport const TaskResource = z.object({\n id: z.string(),\n filePath: z.string(),\n exportName: z.string(),\n queue: QueueOptions.optional(),\n retry: RetryOptions.optional(),\n machine: MachineConfig.optional(),\n triggerSource: z.string().optional(),\n schedule: ScheduleMetadata.optional(),\n});\n\nexport type TaskResource = z.infer<typeof TaskResource>;\n\nexport const BackgroundWorkerMetadata = z.object({\n packageVersion: z.string(),\n contentHash: z.string(),\n cliPackageVersion: z.string().optional(),\n tasks: z.array(TaskResource),\n});\n\nexport type BackgroundWorkerMetadata = z.infer<typeof BackgroundWorkerMetadata>;\n\nexport const ImageDetailsMetadata = z.object({\n contentHash: z.string(),\n imageTag: z.string(),\n});\n\nexport type ImageDetailsMetadata = z.infer<typeof ImageDetailsMetadata>;\n","import { z } from \"zod\";\nimport { RequireKeys } from \"../types\";\nimport { MachineConfig, MachinePreset, TaskRunExecution } from \"./common\";\n\n/*\n WARNING: Never import anything from ./messages here. If it's needed in both, put it here instead.\n*/\nexport const EnvironmentType = z.enum([\"PRODUCTION\", \"STAGING\", \"DEVELOPMENT\", \"PREVIEW\"]);\nexport type EnvironmentType = z.infer<typeof EnvironmentType>;\n\nexport const TaskRunExecutionPayload = z.object({\n execution: TaskRunExecution,\n traceContext: z.record(z.unknown()),\n environment: z.record(z.string()).optional(),\n});\n\nexport type TaskRunExecutionPayload = z.infer<typeof TaskRunExecutionPayload>;\n\n// **IMPORTANT NOTE**: If you change this schema, make sure it is backwards compatible with the previous version as this also used when a worker signals to the coordinator that a TaskRun is complete.\n// Strategies for not breaking backwards compatibility:\n// 1. Add new fields as optional\n// 2. If a field is required, add a default value\nexport const ProdTaskRunExecution = TaskRunExecution.extend({\n worker: z.object({\n id: z.string(),\n contentHash: z.string(),\n version: z.string(),\n }),\n machine: MachinePreset.default({ name: \"small-1x\", cpu: 1, memory: 1, centsPerMs: 0 }),\n});\n\nexport type ProdTaskRunExecution = z.infer<typeof ProdTaskRunExecution>;\n\nexport const ProdTaskRunExecutionPayload = z.object({\n execution: ProdTaskRunExecution,\n traceContext: z.record(z.unknown()),\n environment: z.record(z.string()).optional(),\n});\n\nexport type ProdTaskRunExecutionPayload = z.infer<typeof ProdTaskRunExecutionPayload>;\n\nexport const FixedWindowRateLimit = z.object({\n type: z.literal(\"fixed-window\"),\n limit: z.number(),\n window: z.union([\n z.object({\n seconds: z.number(),\n }),\n z.object({\n minutes: z.number(),\n }),\n z.object({\n hours: z.number(),\n }),\n ]),\n});\n\nexport const SlidingWindowRateLimit = z.object({\n type: z.literal(\"sliding-window\"),\n limit: z.number(),\n window: z.union([\n z.object({\n seconds: z.number(),\n }),\n z.object({\n minutes: z.number(),\n }),\n z.object({\n hours: z.number(),\n }),\n ]),\n});\n\nexport const RateLimitOptions = z.discriminatedUnion(\"type\", [\n FixedWindowRateLimit,\n SlidingWindowRateLimit,\n]);\n\nexport type RateLimitOptions = z.infer<typeof RateLimitOptions>;\n\nexport const RetryOptions = z.object({\n /** The number of attempts before giving up */\n maxAttempts: z.number().int().optional(),\n /** The exponential factor to use when calculating the next retry time.\n *\n * Each subsequent retry will be calculated as `previousTimeout * factor`\n */\n factor: z.number().optional(),\n /** The minimum time to wait before retrying */\n minTimeoutInMs: z.number().int().optional(),\n /** The maximum time to wait before retrying */\n maxTimeoutInMs: z.number().int().optional(),\n /** Randomize the timeout between retries.\n *\n * This can be useful to prevent the thundering herd problem where all retries happen at the same time.\n */\n randomize: z.boolean().optional(),\n});\n\nexport type RetryOptions = z.infer<typeof RetryOptions>;\n\nexport const QueueOptions = z.object({\n /** You can define a shared queue and then pass the name in to your task.\n * \n * @example\n * \n * ```ts\n * const myQueue = queue({\n name: \"my-queue\",\n concurrencyLimit: 1,\n });\n\n export const task1 = task({\n id: \"task-1\",\n queue: {\n name: \"my-queue\",\n },\n run: async (payload: { message: string }) => {\n // ...\n },\n });\n\n export const task2 = task({\n id: \"task-2\",\n queue: {\n name: \"my-queue\",\n },\n run: async (payload: { message: string }) => {\n // ...\n },\n });\n * ```\n */\n name: z.string().optional(),\n /** An optional property that specifies the maximum number of concurrent run executions.\n *\n * If this property is omitted, the task can potentially use up the full concurrency of an environment. */\n concurrencyLimit: z.number().int().min(0).max(1000).optional(),\n /** @deprecated This feature is coming soon */\n rateLimit: RateLimitOptions.optional(),\n});\n\nexport type QueueOptions = z.infer<typeof QueueOptions>;\n\nexport const ScheduleMetadata = z.object({\n cron: z.string(),\n timezone: z.string(),\n});\n\nexport const TaskMetadata = z.object({\n id: z.string(),\n packageVersion: z.string(),\n queue: QueueOptions.optional(),\n retry: RetryOptions.optional(),\n machine: MachineConfig.optional(),\n triggerSource: z.string().optional(),\n schedule: ScheduleMetadata.optional(),\n});\n\nexport type TaskMetadata = z.infer<typeof TaskMetadata>;\n\nexport const TaskFileMetadata = z.object({\n filePath: z.string(),\n exportName: z.string(),\n});\n\nexport type TaskFileMetadata = z.infer<typeof TaskFileMetadata>;\n\nexport const TaskMetadataWithFilePath = z.object({\n id: z.string(),\n packageVersion: z.string(),\n queue: QueueOptions.optional(),\n retry: RetryOptions.optional(),\n machine: MachineConfig.optional(),\n triggerSource: z.string().optional(),\n schedule: ScheduleMetadata.optional(),\n filePath: z.string(),\n exportName: z.string(),\n});\n\nexport type TaskMetadataWithFilePath = z.infer<typeof TaskMetadataWithFilePath>;\n\nexport const PostStartCauses = z.enum([\"index\", \"create\", \"restore\"]);\nexport type PostStartCauses = z.infer<typeof PostStartCauses>;\n\nexport const PreStopCauses = z.enum([\"terminate\"]);\nexport type PreStopCauses = z.infer<typeof PreStopCauses>;\n\nconst RegexSchema = z.custom<RegExp>((val) => {\n try {\n // Check to see if val is a regex\n return typeof (val as RegExp).test === \"function\";\n } catch {\n return false;\n }\n});\n\nexport const Config = z.object({\n project: z.string(),\n triggerDirectories: z.string().array().optional(),\n triggerUrl: z.string().optional(),\n projectDir: z.string().optional(),\n tsconfigPath: z.string().optional(),\n retries: z\n .object({\n enabledInDev: z.boolean().default(true),\n default: RetryOptions.optional(),\n })\n .optional(),\n additionalPackages: z.string().array().optional(),\n additionalFiles: z.string().array().optional(),\n dependenciesToBundle: z.array(z.union([z.string(), RegexSchema])).optional(),\n logLevel: z.string().optional(),\n enableConsoleLogging: z.boolean().optional(),\n postInstall: z.string().optional(),\n extraCACerts: z.string().optional(),\n});\n\nexport type Config = z.infer<typeof Config>;\nexport type ResolvedConfig = RequireKeys<\n Config,\n \"triggerDirectories\" | \"triggerUrl\" | \"projectDir\" | \"tsconfigPath\"\n>;\n\nexport const WaitReason = z.enum([\"WAIT_FOR_DURATION\", \"WAIT_FOR_TASK\", \"WAIT_FOR_BATCH\"]);\n\nexport type WaitReason = z.infer<typeof WaitReason>;\n\nexport const TaskRunExecutionLazyAttemptPayload = z.object({\n runId: z.string(),\n attemptCount: z.number().optional(),\n messageId: z.string(),\n isTest: z.boolean(),\n traceContext: z.record(z.unknown()),\n environment: z.record(z.string()).optional(),\n});\n\nexport type TaskRunExecutionLazyAttemptPayload = z.infer<typeof TaskRunExecutionLazyAttemptPayload>;\n","import { z } from \"zod\";\n\n// Defaults to 0.5\nexport const MachineCpu = z.union([\n z.literal(0.25),\n z.literal(0.5),\n z.literal(1),\n z.literal(2),\n z.literal(4),\n]);\n\nexport type MachineCpu = z.infer<typeof MachineCpu>;\n\n// Defaults to 1\nexport const MachineMemory = z.union([\n z.literal(0.25),\n z.literal(0.5),\n z.literal(1),\n z.literal(2),\n z.literal(4),\n z.literal(8),\n]);\n\nexport type MachineMemory = z.infer<typeof MachineMemory>;\n\n// Default is small-1x\nexport const MachinePresetName = z.enum([\n \"micro\",\n \"small-1x\",\n \"small-2x\",\n \"medium-1x\",\n \"medium-2x\",\n \"large-1x\",\n \"large-2x\",\n]);\n\nexport type MachinePresetName = z.infer<typeof MachinePresetName>;\n\nexport const MachineConfig = z.object({\n cpu: MachineCpu.optional(),\n memory: MachineMemory.optional(),\n preset: MachinePresetName.optional(),\n});\n\nexport type MachineConfig = z.infer<typeof MachineConfig>;\n\nexport const MachinePreset = z.object({\n name: MachinePresetName,\n cpu: z.number(),\n memory: z.number(),\n centsPerMs: z.number(),\n});\n\nexport type MachinePreset = z.infer<typeof MachinePreset>;\n\nexport const TaskRunBuiltInError = z.object({\n type: z.literal(\"BUILT_IN_ERROR\"),\n name: z.string(),\n message: z.string(),\n stackTrace: z.string(),\n});\n\nexport type TaskRunBuiltInError = z.infer<typeof TaskRunBuiltInError>;\n\nexport const TaskRunCustomErrorObject = z.object({\n type: z.literal(\"CUSTOM_ERROR\"),\n raw: z.string(),\n});\n\nexport type TaskRunCustomErrorObject = z.infer<typeof TaskRunCustomErrorObject>;\n\nexport const TaskRunStringError = z.object({\n type: z.literal(\"STRING_ERROR\"),\n raw: z.string(),\n});\n\nexport type TaskRunStringError = z.infer<typeof TaskRunStringError>;\n\nexport const TaskRunErrorCodes = {\n COULD_NOT_FIND_EXECUTOR: \"COULD_NOT_FIND_EXECUTOR\",\n COULD_NOT_FIND_TASK: \"COULD_NOT_FIND_TASK\",\n CONFIGURED_INCORRECTLY: \"CONFIGURED_INCORRECTLY\",\n TASK_ALREADY_RUNNING: \"TASK_ALREADY_RUNNING\",\n TASK_EXECUTION_FAILED: \"TASK_EXECUTION_FAILED\",\n TASK_EXECUTION_ABORTED: \"TASK_EXECUTION_ABORTED\",\n TASK_PROCESS_EXITED_WITH_NON_ZERO_CODE: \"TASK_PROCESS_EXITED_WITH_NON_ZERO_CODE\",\n TASK_PROCESS_SIGKILL_TIMEOUT: \"TASK_PROCESS_SIGKILL_TIMEOUT\",\n TASK_RUN_CANCELLED: \"TASK_RUN_CANCELLED\",\n TASK_OUTPUT_ERROR: \"TASK_OUTPUT_ERROR\",\n HANDLE_ERROR_ERROR: \"HANDLE_ERROR_ERROR\",\n GRACEFUL_EXIT_TIMEOUT: \"GRACEFUL_EXIT_TIMEOUT\",\n} as const;\n\nexport const TaskRunInternalError = z.object({\n type: z.literal(\"INTERNAL_ERROR\"),\n code: z.enum([\n \"COULD_NOT_FIND_EXECUTOR\",\n \"COULD_NOT_FIND_TASK\",\n \"CONFIGURED_INCORRECTLY\",\n \"TASK_ALREADY_RUNNING\",\n \"TASK_EXECUTION_FAILED\",\n \"TASK_EXECUTION_ABORTED\",\n \"TASK_PROCESS_EXITED_WITH_NON_ZERO_CODE\",\n \"TASK_PROCESS_SIGKILL_TIMEOUT\",\n \"TASK_RUN_CANCELLED\",\n \"TASK_OUTPUT_ERROR\",\n \"HANDLE_ERROR_ERROR\",\n \"GRACEFUL_EXIT_TIMEOUT\",\n \"TASK_RUN_HEARTBEAT_TIMEOUT\",\n ]),\n message: z.string().optional(),\n stackTrace: z.string().optional(),\n});\n\nexport type TaskRunInternalError = z.infer<typeof TaskRunInternalError>;\n\nexport const TaskRunError = z.discriminatedUnion(\"type\", [\n TaskRunBuiltInError,\n TaskRunCustomErrorObject,\n TaskRunStringError,\n TaskRunInternalError,\n]);\n\nexport type TaskRunError = z.infer<typeof TaskRunError>;\n\nexport const TaskRun = z.object({\n id: z.string(),\n payload: z.string(),\n payloadType: z.string(),\n context: z.any(),\n tags: z.array(z.string()),\n isTest: z.boolean().default(false),\n createdAt: z.coerce.date(),\n startedAt: z.coerce.date().default(() => new Date()),\n idempotencyKey: z.string().optional(),\n maxAttempts: z.number().optional(),\n durationMs: z.number().default(0),\n costInCents: z.number().default(0),\n baseCostInCents: z.number().default(0),\n version: z.string().optional(),\n});\n\nexport type TaskRun = z.infer<typeof TaskRun>;\n\nexport const TaskRunExecutionTask = z.object({\n id: z.string(),\n filePath: z.string(),\n exportName: z.string(),\n});\n\nexport type TaskRunExecutionTask = z.infer<typeof TaskRunExecutionTask>;\n\nexport const TaskRunExecutionAttempt = z.object({\n id: z.string(),\n number: z.number(),\n startedAt: z.coerce.date(),\n backgroundWorkerId: z.string(),\n backgroundWorkerTaskId: z.string(),\n status: z.string(),\n});\n\nexport type TaskRunExecutionAttempt = z.infer<typeof TaskRunExecutionAttempt>;\n\nexport const TaskRunExecutionEnvironment = z.object({\n id: z.string(),\n slug: z.string(),\n type: z.enum([\"PRODUCTION\", \"STAGING\", \"DEVELOPMENT\", \"PREVIEW\"]),\n});\n\nexport type TaskRunExecutionEnvironment = z.infer<typeof TaskRunExecutionEnvironment>;\n\nexport const TaskRunExecutionOrganization = z.object({\n id: z.string(),\n slug: z.string(),\n name: z.string(),\n});\n\nexport type TaskRunExecutionOrganization = z.infer<typeof TaskRunExecutionOrganization>;\n\nexport const TaskRunExecutionProject = z.object({\n id: z.string(),\n ref: z.string(),\n slug: z.string(),\n name: z.string(),\n});\n\nexport type TaskRunExecutionProject = z.infer<typeof TaskRunExecutionProject>;\n\nexport const TaskRunExecutionQueue = z.object({\n id: z.string(),\n name: z.string(),\n});\n\nexport type TaskRunExecutionQueue = z.infer<typeof TaskRunExecutionQueue>;\n\nexport const TaskRunExecutionBatch = z.object({\n id: z.string(),\n});\n\nexport const TaskRunExecution = z.object({\n task: TaskRunExecutionTask,\n attempt: TaskRunExecutionAttempt,\n run: TaskRun,\n queue: TaskRunExecutionQueue,\n environment: TaskRunExecutionEnvironment,\n organization: TaskRunExecutionOrganization,\n project: TaskRunExecutionProject,\n batch: TaskRunExecutionBatch.optional(),\n machine: MachinePreset.optional(),\n});\n\nexport type TaskRunExecution = z.infer<typeof TaskRunExecution>;\n\nexport const TaskRunContext = z.object({\n task: TaskRunExecutionTask,\n attempt: TaskRunExecutionAttempt.omit({\n backgroundWorkerId: true,\n backgroundWorkerTaskId: true,\n }),\n run: TaskRun.omit({ payload: true, payloadType: true }),\n queue: TaskRunExecutionQueue,\n environment: TaskRunExecutionEnvironment,\n organization: TaskRunExecutionOrganization,\n project: TaskRunExecutionProject,\n batch: TaskRunExecutionBatch.optional(),\n machine: MachinePreset.optional(),\n});\n\nexport type TaskRunContext = z.infer<typeof TaskRunContext>;\n\nexport const TaskRunExecutionRetry = z.object({\n timestamp: z.number(),\n delay: z.number(),\n error: z.unknown().optional(),\n});\n\nexport type TaskRunExecutionRetry = z.infer<typeof TaskRunExecutionRetry>;\n\nexport const TaskRunExecutionUsage = z.object({\n durationMs: z.number(),\n});\n\nexport type TaskRunExecutionUsage = z.infer<typeof TaskRunExecutionUsage>;\n\nexport const TaskRunFailedExecutionResult = z.object({\n ok: z.literal(false),\n id: z.string(),\n error: TaskRunError,\n retry: TaskRunExecutionRetry.optional(),\n skippedRetrying: z.boolean().optional(),\n usage: TaskRunExecutionUsage.optional(),\n});\n\nexport type TaskRunFailedExecutionResult = z.infer<typeof TaskRunFailedExecutionResult>;\n\nexport const TaskRunSuccessfulExecutionResult = z.object({\n ok: z.literal(true),\n id: z.string(),\n output: z.string().optional(),\n outputType: z.string(),\n usage: TaskRunExecutionUsage.optional(),\n});\n\nexport type TaskRunSuccessfulExecutionResult = z.infer<typeof TaskRunSuccessfulExecutionResult>;\n\nexport const TaskRunExecutionResult = z.discriminatedUnion(\"ok\", [\n TaskRunSuccessfulExecutionResult,\n TaskRunFailedExecutionResult,\n]);\n\nexport type TaskRunExecutionResult = z.infer<typeof TaskRunExecutionResult>;\n\nexport const BatchTaskRunExecutionResult = z.object({\n id: z.string(),\n items: TaskRunExecutionResult.array(),\n});\n\nexport type BatchTaskRunExecutionResult = z.infer<typeof BatchTaskRunExecutionResult>;\n","import { context, propagation } from \"@opentelemetry/api\";\nimport { z } from \"zod\";\nimport { version } from \"../../../package.json\";\nimport {\n AddTagsRequestBody,\n BatchTaskRunExecutionResult,\n BatchTriggerTaskRequestBody,\n BatchTriggerTaskResponse,\n CanceledRunResponse,\n CreateEnvironmentVariableRequestBody,\n CreateScheduleOptions,\n CreateUploadPayloadUrlResponseBody,\n DeletedScheduleObject,\n EnvironmentVariableResponseBody,\n EnvironmentVariableValue,\n EnvironmentVariables,\n ListRunResponseItem,\n ListScheduleOptions,\n ReplayRunResponse,\n RescheduleRunRequestBody,\n RetrieveRunResponse,\n ScheduleObject,\n TaskRunExecutionResult,\n TriggerTaskRequestBody,\n TriggerTaskResponse,\n UpdateEnvironmentVariableRequestBody,\n UpdateScheduleOptions,\n} from \"../schemas\";\nimport { taskContext } from \"../task-context-api\";\nimport {\n ApiRequestOptions,\n CursorPagePromise,\n ZodFetchOptions,\n isRequestOptions,\n zodfetch,\n zodfetchCursorPage,\n zodfetchOffsetLimitPage,\n} from \"./core\";\nimport { ApiError } from \"./errors\";\nimport {\n CreateEnvironmentVariableParams,\n ImportEnvironmentVariablesParams,\n ListProjectRunsQueryParams,\n ListRunsQueryParams,\n UpdateEnvironmentVariableParams,\n} from \"./types\";\n\nexport type {\n CreateEnvironmentVariableParams,\n ImportEnvironmentVariablesParams,\n UpdateEnvironmentVariableParams,\n};\n\nexport type TriggerOptions = {\n spanParentAsLink?: boolean;\n};\n\nconst DEFAULT_ZOD_FETCH_OPTIONS: ZodFetchOptions = {\n retry: {\n maxAttempts: 3,\n minTimeoutInMs: 1000,\n maxTimeoutInMs: 30_000,\n factor: 2,\n randomize: false,\n },\n};\n\nexport { isRequestOptions };\nexport type { ApiRequestOptions };\n\n/**\n * Trigger.dev v3 API client\n */\nexport class ApiClient {\n private readonly baseUrl: string;\n private readonly defaultRequestOptions: ZodFetchOptions;\n\n constructor(\n baseUrl: string,\n private readonly accessToken: string,\n requestOptions: ApiRequestOptions = {}\n ) {\n this.baseUrl = baseUrl.replace(/\\/$/, \"\");\n this.defaultRequestOptions = mergeRequestOptions(DEFAULT_ZOD_FETCH_OPTIONS, requestOptions);\n }\n\n async getRunResult(\n runId: string,\n requestOptions?: ZodFetchOptions\n ): Promise<TaskRunExecutionResult | undefined> {\n try {\n return await zodfetch(\n TaskRunExecutionResult,\n `${this.baseUrl}/api/v1/runs/${runId}/result`,\n {\n method: \"GET\",\n headers: this.#getHeaders(false),\n },\n mergeRequestOptions(this.defaultRequestOptions, requestOptions)\n );\n } catch (error) {\n if (error instanceof ApiError) {\n if (error.status === 404) {\n return undefined;\n }\n }\n\n throw error;\n }\n }\n\n async getBatchResults(\n batchId: string,\n requestOptions?: ZodFetchOptions\n ): Promise<BatchTaskRunExecutionResult | undefined> {\n return await zodfetch(\n BatchTaskRunExecutionResult,\n `${this.baseUrl}/api/v1/batches/${batchId}/results`,\n {\n method: \"GET\",\n headers: this.#getHeaders(false),\n },\n mergeRequestOptions(this.defaultRequestOptions, requestOptions)\n );\n }\n\n triggerTask(\n taskId: string,\n body: TriggerTaskRequestBody,\n options?: TriggerOptions,\n requestOptions?: ZodFetchOptions\n ) {\n const encodedTaskId = encodeURIComponent(taskId);\n\n return zodfetch(\n TriggerTaskResponse,\n `${this.baseUrl}/api/v1/tasks/${encodedTaskId}/trigger`,\n {\n method: \"POST\",\n headers: this.#getHeaders(options?.spanParentAsLink ?? false),\n body: JSON.stringify(body),\n },\n mergeRequestOptions(this.defaultRequestOptions, requestOptions)\n );\n }\n\n batchTriggerTask(\n taskId: string,\n body: BatchTriggerTaskRequestBody,\n options?: TriggerOptions,\n requestOptions?: ZodFetchOptions\n ) {\n const encodedTaskId = encodeURIComponent(taskId);\n\n return zodfetch(\n BatchTriggerTaskResponse,\n `${this.baseUrl}/api/v1/tasks/${encodedTaskId}/batch`,\n {\n method: \"POST\",\n headers: this.#getHeaders(options?.spanParentAsLink ?? false),\n body: JSON.stringify(body),\n },\n mergeRequestOptions(this.defaultRequestOptions, requestOptions)\n );\n }\n\n createUploadPayloadUrl(filename: string, requestOptions?: ZodFetchOptions) {\n return zodfetch(\n CreateUploadPayloadUrlResponseBody,\n `${this.baseUrl}/api/v1/packets/${filename}`,\n {\n method: \"PUT\",\n headers: this.#getHeaders(false),\n },\n mergeRequestOptions(this.defaultRequestOptions, requestOptions)\n );\n }\n\n getPayloadUrl(filename: string, requestOptions?: ZodFetchOptions) {\n return zodfetch(\n CreateUploadPayloadUrlResponseBody,\n `${this.baseUrl}/api/v1/packets/${filename}`,\n {\n method: \"GET\",\n headers: this.#getHeaders(false),\n },\n mergeRequestOptions(this.defaultRequestOptions, requestOptions)\n );\n }\n\n retrieveRun(runId: string, requestOptions?: ZodFetchOptions) {\n return zodfetch(\n RetrieveRunResponse,\n `${this.baseUrl}/api/v3/runs/${runId}`,\n {\n method: \"GET\",\n headers: this.#getHeaders(false),\n },\n mergeRequestOptions(this.defaultRequestOptions, requestOptions)\n );\n }\n\n listRuns(\n query?: ListRunsQueryParams,\n requestOptions?: ZodFetchOptions\n ): CursorPagePromise<typeof ListRunResponseItem> {\n const searchParams = createSearchQueryForListRuns(query);\n\n return zodfetchCursorPage(\n ListRunResponseItem,\n `${this.baseUrl}/api/v1/runs`,\n {\n query: searchParams,\n limit: query?.limit,\n after: query?.after,\n before: query?.before,\n },\n {\n method: \"GET\",\n headers: this.#getHeaders(false),\n },\n mergeRequestOptions(this.defaultRequestOptions, requestOptions)\n );\n }\n\n listProjectRuns(\n projectRef: string,\n query?: ListProjectRunsQueryParams,\n requestOptions?: ZodFetchOptions\n ): CursorPagePromise<typeof ListRunResponseItem> {\n const searchParams = createSearchQueryForListRuns(query);\n\n if (query?.env) {\n searchParams.append(\n \"filter[env]\",\n Array.isArray(query.env) ? query.env.join(\",\") : query.env\n );\n }\n\n return zodfetchCursorPage(\n ListRunResponseItem,\n `${this.baseUrl}/api/v1/projects/${projectRef}/runs`,\n {\n query: searchParams,\n limit: query?.limit,\n after: query?.after,\n before: query?.before,\n },\n {\n method: \"GET\",\n headers: this.#getHeaders(false),\n },\n mergeRequestOptions(this.defaultRequestOptions, requestOptions)\n );\n }\n\n replayRun(runId: string, requestOptions?: ZodFetchOptions) {\n return zodfetch(\n ReplayRunResponse,\n `${this.baseUrl}/api/v1/runs/${runId}/replay`,\n {\n method: \"POST\",\n headers: this.#getHeaders(false),\n },\n mergeRequestOptions(this.defaultRequestOptions, requestOptions)\n );\n }\n\n cancelRun(runId: string, requestOptions?: ZodFetchOptions) {\n return zodfetch(\n CanceledRunResponse,\n `${this.baseUrl}/api/v2/runs/${runId}/cancel`,\n {\n method: \"POST\",\n headers: this.#getHeaders(false),\n },\n mergeRequestOptions(this.defaultRequestOptions, requestOptions)\n );\n }\n\n rescheduleRun(runId: string, body: RescheduleRunRequestBody, requestOptions?: ZodFetchOptions) {\n return zodfetch(\n RetrieveRunResponse,\n `${this.baseUrl}/api/v1/runs/${runId}/reschedule`,\n {\n method: \"POST\",\n headers: this.#getHeaders(false),\n body: JSON.stringify(body),\n },\n mergeRequestOptions(this.defaultRequestOptions, requestOptions)\n );\n }\n\n addTags(runId: string, body: AddTagsRequestBody, requestOptions?: ZodFetchOptions) {\n return zodfetch(\n z.object({ message: z.string() }),\n `${this.baseUrl}/api/v1/runs/${runId}/tags`,\n {\n method: \"POST\",\n headers: this.#getHeaders(false),\n body: JSON.stringify(body),\n },\n mergeRequestOptions(this.defaultRequestOptions, requestOptions)\n );\n }\n\n createSchedule(options: CreateScheduleOptions, requestOptions?: ZodFetchOptions) {\n return zodfetch(\n ScheduleObject,\n `${this.baseUrl}/api/v1/schedules`,\n {\n method: \"POST\",\n headers: this.#getHeaders(false),\n body: JSON.stringify(options),\n },\n mergeRequestOptions(this.defaultRequestOptions, requestOptions)\n );\n }\n\n listSchedules(options?: ListScheduleOptions, requestOptions?: ZodFetchOptions) {\n const searchParams = new URLSearchParams();\n\n if (options?.page) {\n searchParams.append(\"page\", options.page.toString());\n }\n\n if (options?.perPage) {\n searchParams.append(\"perPage\", options.perPage.toString());\n }\n\n return zodfetchOffsetLimitPage(\n ScheduleObject,\n `${this.baseUrl}/api/v1/schedules`,\n {\n page: options?.page,\n limit: options?.perPage,\n },\n {\n method: \"GET\",\n headers: this.#getHeaders(false),\n },\n mergeRequestOptions(this.defaultRequestOptions, requestOptions)\n );\n }\n\n retrieveSchedule(scheduleId: string, requestOptions?: ZodFetchOptions) {\n return zodfetch(\n ScheduleObject,\n `${this.baseUrl}/api/v1/schedules/${scheduleId}`,\n {\n method: \"GET\",\n headers: this.#getHeaders(false),\n },\n mergeRequestOptions(this.defaultRequestOptions, requestOptions)\n );\n }\n\n updateSchedule(\n scheduleId: string,\n options: UpdateScheduleOptions,\n requestOptions?: ZodFetchOptions\n ) {\n return zodfetch(\n ScheduleObject,\n `${this.baseUrl}/api/v1/schedules/${scheduleId}`,\n {\n method: \"PUT\",\n headers: this.#getHeaders(false),\n body: JSON.stringify(options),\n },\n mergeRequestOptions(this.defaultRequestOptions, requestOptions)\n );\n }\n\n deactivateSchedule(scheduleId: string, requestOptions?: ZodFetchOptions) {\n return zodfetch(\n ScheduleObject,\n `${this.baseUrl}/api/v1/schedules/${scheduleId}/deactivate`,\n {\n method: \"POST\",\n headers: this.#getHeaders(false),\n },\n mergeRequestOptions(this.defaultRequestOptions, requestOptions)\n );\n }\n\n activateSchedule(scheduleId: string, requestOptions?: ZodFetchOptions) {\n return zodfetch(\n ScheduleObject,\n `${this.baseUrl}/api/v1/schedules/${scheduleId}/activate`,\n {\n method: \"POST\",\n headers: this.#getHeaders(false),\n },\n mergeRequestOptions(this.defaultRequestOptions, requestOptions)\n );\n }\n\n deleteSchedule(scheduleId: string, requestOptions?: ZodFetchOptions) {\n return zodfetch(\n DeletedScheduleObject,\n `${this.baseUrl}/api/v1/schedules/${scheduleId}`,\n {\n method: \"DELETE\",\n headers: this.#getHeaders(false),\n },\n mergeRequestOptions(this.defaultRequestOptions, requestOptions)\n );\n }\n\n listEnvVars(projectRef: string, slug: string, requestOptions?: ZodFetchOptions) {\n return zodfetch(\n EnvironmentVariables,\n `${this.baseUrl}/api/v1/projects/${projectRef}/envvars/${slug}`,\n {\n method: \"GET\",\n headers: this.#getHeaders(false),\n },\n mergeRequestOptions(this.defaultRequestOptions, requestOptions)\n );\n }\n\n importEnvVars(\n projectRef: string,\n slug: string,\n body: ImportEnvironmentVariablesParams,\n requestOptions?: ZodFetchOptions\n ) {\n return zodfetch(\n EnvironmentVariableResponseBody,\n `${this.baseUrl}/api/v1/projects/${projectRef}/envvars/${slug}/import`,\n {\n method: \"POST\",\n headers: this.#getHeaders(false),\n body: JSON.stringify(body),\n },\n mergeRequestOptions(this.defaultRequestOptions, requestOptions)\n );\n }\n\n retrieveEnvVar(projectRef: string, slug: string, key: string, requestOptions?: ZodFetchOptions) {\n return zodfetch(\n EnvironmentVariableValue,\n `${this.baseUrl}/api/v1/projects/${projectRef}/envvars/${slug}/${key}`,\n {\n method: \"GET\",\n headers: this.#getHeaders(false),\n },\n mergeRequestOptions(this.defaultRequestOptions, requestOptions)\n );\n }\n\n createEnvVar(\n projectRef: string,\n slug: string,\n body: CreateEnvironmentVariableRequestBody,\n requestOptions?: ZodFetchOptions\n ) {\n return zodfetch(\n EnvironmentVariableResponseBody,\n `${this.baseUrl}/api/v1/projects/${projectRef}/envvars/${slug}`,\n {\n method: \"POST\",\n headers: this.#getHeaders(false),\n body: JSON.stringify(body),\n },\n mergeRequestOptions(this.defaultRequestOptions, requestOptions)\n );\n }\n\n updateEnvVar(\n projectRef: string,\n slug: string,\n key: string,\n body: UpdateEnvironmentVariableRequestBody,\n requestOptions?: ZodFetchOptions\n ) {\n return zodfetch(\n EnvironmentVariableResponseBody,\n `${this.baseUrl}/api/v1/projects/${projectRef}/envvars/${slug}/${key}`,\n {\n method: \"PUT\",\n headers: this.#getHeaders(false),\n body: JSON.stringify(body),\n },\n mergeRequestOptions(this.defaultRequestOptions, requestOptions)\n );\n }\n\n deleteEnvVar(projectRef: string, slug: string, key: string, requestOptions?: ZodFetchOptions) {\n return zodfetch(\n EnvironmentVariableResponseBody,\n `${this.baseUrl}/api/v1/projects/${projectRef}/envvars/${slug}/${key}`,\n {\n method: \"DELETE\",\n headers: this.#getHeaders(false),\n },\n mergeRequestOptions(this.defaultRequestOptions, requestOptions)\n );\n }\n\n #getHeaders(spanParentAsLink: boolean) {\n const headers: Record<string, string> = {\n \"Content-Type\": \"application/json\",\n Authorization: `Bearer ${this.accessToken}`,\n \"trigger-version\": version,\n };\n\n // Only inject the context if we are inside a task\n if (taskContext.isInsideTask) {\n headers[\"x-trigger-worker\"] = \"true\";\n propagation.inject(context.active(), headers);\n\n if (spanParentAsLink) {\n headers[\"x-trigger-span-parent-as-link\"] = \"1\";\n }\n }\n\n return headers;\n }\n}\n\nfunction createSearchQueryForListRuns(query?: ListRunsQueryParams): URLSearchParams {\n const searchParams = new URLSearchParams();\n\n if (query) {\n if (query.status) {\n searchParams.append(\n \"filter[status]\",\n Array.isArray(query.status) ? query.status.join(\",\") : query.status\n );\n }\n\n if (query.taskIdentifier) {\n searchParams.append(\n \"filter[taskIdentifier]\",\n Array.isArray(query.taskIdentifier) ? query.taskIdentifier.join(\",\") : query.taskIdentifier\n );\n }\n\n if (query.version) {\n searchParams.append(\n \"filter[version]\",\n Array.isArray(query.version) ? query.version.join(\",\") : query.version\n );\n }\n\n if (query.bulkAction) {\n searchParams.append(\"filter[bulkAction]\", query.bulkAction);\n }\n\n if (query.tag) {\n searchParams.append(\n \"filter[tag]\",\n Array.isArray(query.tag) ? query.tag.join(\",\") : query.tag\n );\n }\n\n if (query.schedule) {\n searchParams.append(\"filter[schedule]\", query.schedule);\n }\n\n if (typeof query.isTest === \"boolean\") {\n searchParams.append(\"filter[isTest]\", String(query.isTest));\n }\n\n if (query.from) {\n searchParams.append(\n \"filter[createdAt][from]\",\n query.from instanceof Date ? query.from.getTime().toString() : query.from.toString()\n );\n }\n\n if (query.to) {\n searchParams.append(\n \"filter[createdAt][to]\",\n query.to instanceof Date ? query.to.getTime().toString() : query.to.toString()\n );\n }\n\n if (query.period) {\n searchParams.append(\"filter[createdAt][period]\", query.period);\n }\n }\n\n return searchParams;\n}\n\nexport function mergeRequestOptions(\n defaultOptions: ZodFetchOptions,\n options?: ApiRequestOptions\n): ZodFetchOptions {\n if (!options) {\n return defaultOptions;\n }\n\n return {\n ...defaultOptions,\n ...options,\n retry: {\n ...defaultOptions.retry,\n ...options.retry,\n },\n };\n}\n","import { z } from \"zod\";\nimport { fromZodError } from \"zod-validation-error\";\nimport { RetryOptions } from \"../schemas\";\nimport { calculateNextRetryDelay } from \"../utils/retries\";\nimport { ApiConnectionError, ApiError } from \"./errors\";\n\nimport { Attributes, Span } from \"@opentelemetry/api\";\nimport { SemanticInternalAttributes } from \"../semanticInternalAttributes\";\nimport { TriggerTracer } from \"../tracer\";\nimport { accessoryAttributes } from \"../utils/styleAttributes\";\nimport {\n CursorPage,\n CursorPageParams,\n CursorPageResponse,\n OffsetLimitPage,\n OffsetLimitPageParams,\n OffsetLimitPageResponse,\n} from \"./pagination\";\n\nexport const defaultRetryOptions = {\n maxAttempts: 3,\n factor: 2,\n minTimeoutInMs: 1000,\n maxTimeoutInMs: 60000,\n randomize: false,\n} satisfies RetryOptions;\n\nexport type ZodFetchOptions = {\n retry?: RetryOptions;\n tracer?: TriggerTracer;\n name?: string;\n attributes?: Attributes;\n icon?: string;\n onResponseBody?: (body: unknown, span: Span) => void;\n};\n\nexport type ApiRequestOptions = Pick<ZodFetchOptions, \"retry\">;\ntype KeysEnum<T> = { [P in keyof Required<T>]: true };\n\n// This is required so that we can determine if a given object matches the ApiRequestOptions\n// type at runtime. While this requires duplication, it is enforced by the TypeScript\n// compiler such that any missing / extraneous keys will cause an error.\nconst requestOptionsKeys: KeysEnum<ApiRequestOptions> = {\n retry: true,\n};\n\nexport const isRequestOptions = (obj: unknown): obj is ApiRequestOptions => {\n return (\n typeof obj === \"object\" &&\n obj !== null &&\n !isEmptyObj(obj) &&\n Object.keys(obj).every((k) => hasOwn(requestOptionsKeys, k))\n );\n};\n\ninterface FetchCursorPageParams extends CursorPageParams {\n query?: URLSearchParams;\n}\n\ninterface FetchOffsetLimitPageParams extends OffsetLimitPageParams {\n query?: URLSearchParams;\n}\n\nexport function zodfetch<TResponseBodySchema extends z.ZodTypeAny>(\n schema: TResponseBodySchema,\n url: string,\n requestInit?: RequestInit,\n options?: ZodFetchOptions\n): ApiPromise<z.output<TResponseBodySchema>> {\n return new ApiPromise(_doZodFetch(schema, url, requestInit, options));\n}\n\nexport function zodfetchCursorPage<TItemSchema extends z.ZodTypeAny>(\n schema: TItemSchema,\n url: string,\n params: FetchCursorPageParams,\n requestInit?: RequestInit,\n options?: ZodFetchOptions\n) {\n const query = new URLSearchParams(params.query);\n\n if (params.limit) {\n query.set(\"page[size]\", String(params.limit));\n }\n\n if (params.after) {\n query.set(\"page[after]\", params.after);\n }\n\n if (params.before) {\n query.set(\"page[before]\", params.before);\n }\n\n const cursorPageSchema = z.object({\n data: z.array(schema),\n pagination: z.object({\n next: z.string().optional(),\n previous: z.string().optional(),\n }),\n });\n\n const $url = new URL(url);\n $url.search = query.toString();\n\n const fetchResult = _doZodFetch(cursorPageSchema, $url.href, requestInit, options);\n\n return new CursorPagePromise(fetchResult, schema, url, params, requestInit, options);\n}\n\nexport function zodfetchOffsetLimitPage<TItemSchema extends z.ZodTypeAny>(\n schema: TItemSchema,\n url: string,\n params: FetchOffsetLimitPageParams,\n requestInit?: RequestInit,\n options?: ZodFetchOptions\n) {\n const query = new URLSearchParams(params.query);\n\n if (params.limit) {\n query.set(\"perPage\", String(params.limit));\n }\n\n if (params.page) {\n query.set(\"page\", String(params.page));\n }\n\n const offsetLimitPageSchema = z.object({\n data: z.array(schema),\n pagination: z.object({\n currentPage: z.coerce.number(),\n totalPages: z.coerce.number(),\n count: z.coerce.number(),\n }),\n });\n\n const $url = new URL(url);\n $url.search = query.toString();\n\n const fetchResult = _doZodFetch(offsetLimitPageSchema, $url.href, requestInit, options);\n\n return new OffsetLimitPagePromise(fetchResult, schema, url, params, requestInit, options);\n}\n\ntype ZodFetchResult<T> = {\n data: T;\n response: Response;\n};\n\ntype PromiseOrValue<T> = T | Promise<T>;\n\nasync function traceZodFetch<T>(\n params: {\n url: string;\n requestInit?: RequestInit;\n options?: ZodFetchOptions;\n },\n callback: (span?: Span) => Promise<T>\n): Promise<T> {\n if (!params.options?.tracer) {\n return callback();\n }\n\n const url = new URL(params.url);\n const method = params.requestInit?.method ?? \"GET\";\n const name = params.options.name ?? `${method} ${url.pathname}`;\n\n return await params.options.tracer.startActiveSpan(\n name,\n async (span) => {\n return await callback(span);\n },\n {\n attributes: {\n [SemanticInternalAttributes.STYLE_ICON]: params.options?.icon ?? \"api\",\n ...params.options.attributes,\n },\n }\n );\n}\n\nasync function _doZodFetch<TResponseBodySchema extends z.ZodTypeAny>(\n schema: TResponseBodySchema,\n url: string,\n requestInit?: PromiseOrValue<RequestInit>,\n options?: ZodFetchOptions\n): Promise<ZodFetchResult<z.output<TResponseBodySchema>>> {\n const $requestInit = await requestInit;\n\n return traceZodFetch({ url, requestInit: $requestInit, options }, async (span) => {\n const result = await _doZodFetchWithRetries(schema, url, $requestInit, options);\n\n if (options?.onResponseBody && span) {\n options.onResponseBody(result.data, span);\n }\n\n return result;\n });\n}\n\nasync function _doZodFetchWithRetries<TResponseBodySchema extends z.ZodTypeAny>(\n schema: TResponseBodySchema,\n url: string,\n requestInit?: RequestInit,\n options?: ZodFetchOptions,\n attempt = 1\n): Promise<ZodFetchResult<z.output<TResponseBodySchema>>> {\n try {\n const response = await fetch(url, requestInitWithCache(requestInit));\n\n const responseHeaders = createResponseHeaders(response.headers);\n\n if (!response.ok) {\n const retryResult = shouldRetry(response, attempt, options?.retry);\n\n if (retryResult.retry) {\n await waitForRetry(url, attempt + 1, retryResult.delay, options, requestInit, response);\n\n return await _doZodFetchWithRetries(schema, url, requestInit, options, attempt + 1);\n } else {\n const errText = await response.text().catch((e) => castToError(e).message);\n const errJSON = safeJsonParse(errText);\n const errMessage = errJSON ? undefined : errText;\n\n throw ApiError.generate(response.status, errJSON, errMessage, responseHeaders);\n }\n }\n\n const jsonBody = await response.json();\n const parsedResult = schema.safeParse(jsonBody);\n\n if (parsedResult.success) {\n return { data: parsedResult.data, response };\n }\n\n throw fromZodError(parsedResult.error);\n } catch (error) {\n if (error instanceof ApiError) {\n throw error;\n }\n\n if (options?.retry) {\n const retry = { ...defaultRetryOptions, ...options.retry };\n\n const delay = calculateNextRetryDelay(retry, attempt);\n\n if (delay) {\n await waitForRetry(url, attempt + 1, delay, options, requestInit);\n\n return await _doZodFetchWithRetries(schema, url, requestInit, options, attempt + 1);\n }\n }\n\n throw new ApiConnectionError({ cause: castToError(error) });\n }\n}\n\nfunction castToError(err: any): Error {\n if (err instanceof Error) return err;\n return new Error(err);\n}\n\ntype ShouldRetryResult =\n | {\n retry: false;\n }\n | {\n retry: true;\n delay: number;\n };\n\nfunction shouldRetry(\n response: Response,\n attempt: number,\n retryOptions?: RetryOptions\n): ShouldRetryResult {\n function shouldRetryForOptions(): ShouldRetryResult {\n const retry = { ...defaultRetryOptions, ...retryOptions };\n\n const delay = calculateNextRetryDelay(retry, attempt);\n\n if (delay) {\n return { retry: true, delay };\n } else {\n return { retry: false };\n }\n }\n\n // Note this is not a standard header.\n const shouldRetryHeader = response.headers.get(\"x-should-retry\");\n\n // If the server explicitly says whether or not to retry, obey.\n if (shouldRetryHeader === \"true\") return shouldRetryForOptions();\n if (shouldRetryHeader === \"false\") return { retry: false };\n\n // Retry on request timeouts.\n if (response.status === 408) return shouldRetryForOptions();\n\n // Retry on lock timeouts.\n if (response.status === 409) return shouldRetryForOptions();\n\n // Retry on rate limits.\n if (response.status === 429) {\n if (\n attempt >= (typeof retryOptions?.maxAttempts === \"number\" ? retryOptions?.maxAttempts : 3)\n ) {\n return { retry: false };\n }\n\n // x-ratelimit-reset is the unix timestamp in milliseconds when the rate limit will reset.\n const resetAtUnixEpochMs = response.headers.get(\"x-ratelimit-reset\");\n\n if (resetAtUnixEpochMs) {\n const resetAtUnixEpoch = parseInt(resetAtUnixEpochMs, 10);\n const delay = resetAtUnixEpoch - Date.now() + Math.floor(Math.random() * 1000);\n\n if (delay > 0) {\n return { retry: true, delay };\n }\n }\n\n return shouldRetryForOptions();\n }\n\n // Retry internal errors.\n if (response.status >= 500) return shouldRetryForOptions();\n\n return { retry: false };\n}\n\nfunction safeJsonParse(text: string): any {\n try {\n return JSON.parse(text);\n } catch (e) {\n return undefined;\n }\n}\n\nfunction createResponseHeaders(headers: Response[\"headers\"]): Record<string, string> {\n return new Proxy(\n Object.fromEntries(\n // @ts-ignore\n headers.entries()\n ),\n {\n get(target, name) {\n const key = name.toString();\n return target[key.toLowerCase()] || target[key];\n },\n }\n );\n}\n\nfunction requestInitWithCache(requestInit?: RequestInit): RequestInit {\n try {\n const withCache: RequestInit = {\n ...requestInit,\n cache: \"no-cache\",\n };\n\n const _ = new Request(\"http://localhost\", withCache);\n\n return withCache;\n } catch (error) {\n return requestInit ?? {};\n }\n}\n\n/**\n * A subclass of `Promise` providing additional helper methods\n * for interacting with the SDK.\n */\nexport class ApiPromise<T> extends Promise<T> {\n constructor(private responsePromise: Promise<ZodFetchResult<T>>) {\n super((resolve) => {\n // this is maybe a bit weird but this has to be a no-op to not implicitly\n // parse the response body; instead .then, .catch, .finally are overridden\n // to parse the response\n resolve(null as any);\n });\n }\n\n /**\n * Gets the raw `Response` instance instead of parsing the response\n * data.\n *\n * If you want to parse the response body but still get the `Response`\n * instance, you can use {@link withResponse()}.\n */\n asResponse(): Promise<Response> {\n return this.responsePromise.then((p) => p.response);\n }\n\n /**\n * Gets the parsed response data and the raw `Response` instance.\n *\n * If you just want to get the raw `Response` instance without parsing it,\n * you can use {@link asResponse()}.\n */\n async withResponse(): Promise<{ data: T; response: Response }> {\n const [data, response] = await Promise.all([this.parse(), this.asResponse()]);\n return { data, response };\n }\n\n private parse(): Promise<T> {\n return this.responsePromise.then((result) => result.data);\n }\n\n override then<TResult1 = T, TResult2 = never>(\n onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | undefined | null,\n onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null\n ): Promise<TResult1 | TResult2> {\n return this.parse().then(onfulfilled, onrejected);\n }\n\n override catch<TResult = never>(\n onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | undefined | null\n ): Promise<T | TResult> {\n return this.parse().catch(onrejected);\n }\n\n override finally(onfinally?: (() => void) | undefined | null): Promise<T> {\n return this.parse().finally(onfinally);\n }\n}\n\nexport class CursorPagePromise<TItemSchema extends z.ZodTypeAny>\n extends ApiPromise<CursorPage<z.output<TItemSchema>>>\n implements AsyncIterable<z.output<TItemSchema>>\n{\n constructor(\n result: Promise<ZodFetchResult<CursorPageResponse<z.output<TItemSchema>>>>,\n private schema: TItemSchema,\n private url: string,\n private params: FetchCursorPageParams,\n private requestInit?: RequestInit,\n private options?: ZodFetchOptions\n ) {\n super(\n result.then((result) => ({\n data: new CursorPage(result.data.data, result.data.pagination, this.#fetchPage.bind(this)),\n response: result.response,\n }))\n );\n }\n\n #fetchPage(params: Omit<CursorPageParams, \"limit\">): Promise<CursorPage<z.output<TItemSchema>>> {\n return zodfetchCursorPage(\n this.schema,\n this.url,\n { ...this.params, ...params },\n this.requestInit,\n this.options\n );\n }\n\n /**\n * Allow auto-paginating iteration on an unawaited list call, eg:\n *\n * for await (const item of client.items.list()) {\n * console.log(item)\n * }\n */\n async *[Symbol.asyncIterator]() {\n const page = await this;\n for await (const item of page) {\n yield item;\n }\n }\n}\n\nexport class OffsetLimitPagePromise<TItemSchema extends z.ZodTypeAny>\n extends ApiPromise<OffsetLimitPage<z.output<TItemSchema>>>\n implements AsyncIterable<z.output<TItemSchema>>\n{\n constructor(\n result: Promise<ZodFetchResult<OffsetLimitPageResponse<z.output<TItemSchema>>>>,\n private schema: TItemSchema,\n private url: string,\n private params: FetchOffsetLimitPageParams,\n private requestInit?: RequestInit,\n private options?: ZodFetchOptions\n ) {\n super(\n result.then((result) => ({\n data: new OffsetLimitPage(\n result.data.data,\n result.data.pagination,\n this.#fetchPage.bind(this)\n ),\n response: result.response,\n }))\n );\n }\n\n #fetchPage(\n params: Omit<FetchOffsetLimitPageParams, \"limit\">\n ): Promise<OffsetLimitPage<z.output<TItemSchema>>> {\n return zodfetchOffsetLimitPage(\n this.schema,\n this.url,\n { ...this.params, ...params },\n this.requestInit,\n this.options\n );\n }\n\n /**\n * Allow auto-paginating iteration on an unawaited list call, eg:\n *\n * for await (const item of client.items.list()) {\n * console.log(item)\n * }\n */\n async *[Symbol.asyncIterator]() {\n const page = await this;\n for await (const item of page) {\n yield item;\n }\n }\n}\n\nasync function waitForRetry(\n url: string,\n attempt: number,\n delay: number,\n options?: ZodFetchOptions,\n requestInit?: RequestInit,\n response?: Response\n): Promise<void> {\n if (options?.tracer) {\n const method = requestInit?.method ?? \"GET\";\n\n return options.tracer.startActiveSpan(\n response ? `wait after ${response.status}` : `wait after error`,\n async (span) => {\n await new Promise((resolve) => setTimeout(resolve, delay));\n },\n {\n attributes: {\n [SemanticInternalAttributes.STYLE_ICON]: \"wait\",\n ...accessoryAttributes({\n items: [\n {\n text: `retrying ${options?.name ?? method.toUpperCase()} in ${delay}ms`,\n variant: \"normal\",\n },\n ],\n style: \"codepath\",\n }),\n },\n }\n );\n }\n\n await new Promise((resolve) => setTimeout(resolve, delay));\n}\n\n// https://stackoverflow.com/a/34491287\nexport function isEmptyObj(obj: Object | null | undefined): boolean {\n if (!obj) return true;\n for (const _k in obj) return false;\n return true;\n}\n\n// https://eslint.org/docs/latest/rules/no-prototype-builtins\nexport function hasOwn(obj: Object, key: string): boolean {\n return Object.prototype.hasOwnProperty.call(obj, key);\n}\n","import { calculateResetAt as calculateResetAtInternal } from \"../../retry\";\nimport { FetchRetryOptions, type RetryOptions } from \"../schemas\";\n\nexport const defaultRetryOptions = {\n maxAttempts: 3,\n factor: 2,\n minTimeoutInMs: 1000,\n maxTimeoutInMs: 60000,\n randomize: true,\n} satisfies RetryOptions;\n\nexport const defaultFetchRetryOptions = {\n byStatus: {\n \"429,408,409,5xx\": {\n strategy: \"backoff\",\n ...defaultRetryOptions,\n },\n },\n connectionError: defaultRetryOptions,\n timeout: defaultRetryOptions,\n} satisfies FetchRetryOptions;\n\n/**\n *\n * @param options\n * @param attempt - The current attempt number. If the first attempt has failed, this will be 1.\n * @returns\n */\nexport function calculateNextRetryDelay(options: RetryOptions, attempt: number) {\n const opts = { ...defaultRetryOptions, ...options };\n\n if (attempt >= opts.maxAttempts) {\n return;\n }\n\n const { factor, minTimeoutInMs, maxTimeoutInMs, randomize } = opts;\n\n const random = randomize ? Math.random() + 1 : 1;\n\n const timeout = Math.min(maxTimeoutInMs, random * minTimeoutInMs * Math.pow(factor, attempt - 1));\n\n // Round to the nearest integer\n return Math.round(timeout);\n}\n\nexport function calculateResetAt(\n resets: string | undefined | null,\n format:\n | \"unix_timestamp\"\n | \"iso_8601\"\n | \"iso_8601_duration_openai_variant\"\n | \"unix_timestamp_in_ms\",\n now: number = Date.now()\n): number | undefined {\n const resetAt = calculateResetAtInternal(resets, format, new Date(now));\n\n return resetAt?.getTime();\n}\n","export type APIHeaders = Record<string, string | null | undefined>;\n\nexport class ApiError extends Error {\n readonly status: number | undefined;\n readonly headers: APIHeaders | undefined;\n readonly error: Object | undefined;\n\n readonly code: string | null | undefined;\n readonly param: string | null | undefined;\n readonly type: string | undefined;\n\n constructor(\n status: number | undefined,\n error: Object | undefined,\n message: string | undefined,\n headers: APIHeaders | undefined\n ) {\n super(`${ApiError.makeMessage(status, error, message)}`);\n this.name = \"TriggerApiError\";\n this.status = status;\n this.headers = headers;\n\n const data = error as Record<string, any>;\n this.error = data;\n this.code = data?.[\"code\"];\n this.param = data?.[\"param\"];\n this.type = data?.[\"type\"];\n }\n\n private static makeMessage(status: number | undefined, error: any, message: string | undefined) {\n const msg = error?.message\n ? typeof error.message === \"string\"\n ? error.message\n : JSON.stringify(error.message)\n : error\n ? JSON.stringify(error)\n : message;\n\n if (status && msg) {\n return `${status} ${msg}`;\n }\n if (status) {\n return `${status} status code (no body)`;\n }\n if (msg) {\n return msg;\n }\n return \"(no status code or body)\";\n }\n\n static generate(\n status: number | undefined,\n errorResponse: Object | undefined,\n message: string | undefined,\n headers: APIHeaders | undefined\n ) {\n if (!status) {\n return new ApiConnectionError({ cause: castToError(errorResponse) });\n }\n\n const error = (errorResponse as Record<string, any>)?.[\"error\"];\n\n if (status === 400) {\n return new BadRequestError(status, error, message, headers);\n }\n\n if (status === 401) {\n return new AuthenticationError(status, error, message, headers);\n }\n\n if (status === 403) {\n return new PermissionDeniedError(status, error, message, headers);\n }\n\n if (status === 404) {\n return new NotFoundError(status, error, message, headers);\n }\n\n if (status === 409) {\n return new ConflictError(status, error, message, headers);\n }\n\n if (status === 422) {\n return new UnprocessableEntityError(status, error, message, headers);\n }\n\n if (status === 429) {\n return new RateLimitError(status, error, message, headers);\n }\n\n if (status >= 500) {\n return new InternalServerError(status, error, message, headers);\n }\n\n return new ApiError(status, error, message, headers);\n }\n}\n\nexport class ApiConnectionError extends ApiError {\n override readonly status: undefined = undefined;\n\n constructor({ message, cause }: { message?: string; cause?: Error | undefined }) {\n super(undefined, undefined, message || \"Connection error.\", undefined);\n // in some environments the 'cause' property is already declared\n // @ts-ignore\n if (cause) this.cause = cause;\n }\n}\n\nexport class BadRequestError extends ApiError {\n override readonly status: 400 = 400;\n}\n\nexport class AuthenticationError extends ApiError {\n override readonly status: 401 = 401;\n}\n\nexport class PermissionDeniedError extends ApiError {\n override readonly status: 403 = 403;\n}\n\nexport class NotFoundError extends ApiError {\n override readonly status: 404 = 404;\n}\n\nexport class ConflictError extends ApiError {\n override readonly status: 409 = 409;\n}\n\nexport class UnprocessableEntityError extends ApiError {\n override readonly status: 422 = 422;\n}\n\nexport class RateLimitError extends ApiError {\n override readonly status: 429 = 429;\n\n get millisecondsUntilReset(): number | undefined {\n // x-ratelimit-reset is the unix timestamp in milliseconds when the rate limit will reset.\n const resetAtUnixEpochMs = (this.headers ?? {})[\"x-ratelimit-reset\"];\n\n if (typeof resetAtUnixEpochMs === \"string\") {\n const resetAtUnixEpoch = parseInt(resetAtUnixEpochMs, 10);\n\n if (isNaN(resetAtUnixEpoch)) {\n return;\n }\n\n // Add between 0 and 2000ms to the reset time to add jitter\n return Math.max(resetAtUnixEpoch - Date.now() + Math.floor(Math.random() * 2000), 0);\n }\n }\n}\n\nexport class InternalServerError extends ApiError {}\n\nfunction castToError(err: any): Error {\n if (err instanceof Error) return err;\n return new Error(err);\n}\n","import { Attributes } from \"@opentelemetry/api\";\nimport { Accessory } from \"../schemas\";\nimport { flattenAttributes } from \"./flattenAttributes\";\nimport { SemanticInternalAttributes } from \"../semanticInternalAttributes\";\n\nexport function accessoryAttributes(accessory: Accessory): Attributes {\n return flattenAttributes(accessory, SemanticInternalAttributes.STYLE_ACCESSORY);\n}\n","export interface CursorPageParams {\n limit?: number;\n after?: string;\n before?: string;\n}\n\nexport interface OffsetLimitPageParams {\n limit?: number;\n page?: number;\n}\n\nexport interface PageResponse<Item> {\n data: Array<Item>;\n}\n\nexport interface CursorPageResponse<Item> extends PageResponse<Item> {\n pagination: {\n next?: string;\n previous?: string;\n };\n}\n\nexport interface OffsetLimitPageResponse<Item> extends PageResponse<Item> {\n pagination: {\n currentPage: number;\n totalPages: number;\n count: number;\n };\n}\n\nexport interface Page<Item> {\n getPaginatedItems(): Item[];\n hasNextPage(): boolean;\n hasPreviousPage(): boolean;\n}\n\nexport class CursorPage<Item> implements CursorPageResponse<Item>, Page<Item>, AsyncIterable<Item> {\n data: Array<Item>;\n pagination: { next?: string; previous?: string };\n\n constructor(\n data: Array<Item>,\n pagination: { next?: string; previous?: string },\n private pageFetcher: (params: Omit<CursorPageParams, \"limit\">) => Promise<CursorPage<Item>>\n ) {\n this.data = data;\n this.pagination = pagination;\n }\n\n getPaginatedItems(): Item[] {\n return this.data ?? [];\n }\n\n hasNextPage(): boolean {\n return !!this.pagination.next;\n }\n\n hasPreviousPage(): boolean {\n return !!this.pagination.previous;\n }\n\n getNextPage(): Promise<CursorPage<Item>> {\n if (!this.pagination.next) {\n throw new Error(\"No next page available\");\n }\n\n return this.pageFetcher({ after: this.pagination.next });\n }\n\n getPreviousPage(): Promise<CursorPage<Item>> {\n if (!this.pagination.previous) {\n throw new Error(\"No previous page available\");\n }\n\n return this.pageFetcher({ before: this.pagination.previous });\n }\n\n async *iterPages() {\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n let page: CursorPage<Item> = this;\n yield page;\n while (page.hasNextPage()) {\n page = await page.getNextPage();\n yield page;\n }\n }\n\n async *[Symbol.asyncIterator]() {\n for await (const page of this.iterPages()) {\n for (const item of page.getPaginatedItems()) {\n yield item;\n }\n }\n }\n}\n\nexport class OffsetLimitPage<Item>\n implements OffsetLimitPageResponse<Item>, Page<Item>, AsyncIterable<Item>\n{\n data: Array<Item>;\n pagination: { currentPage: number; totalPages: number; count: number };\n\n constructor(\n data: Array<Item>,\n pagination: { currentPage: number; totalPages: number; count: number },\n private pageFetcher: (\n params: Omit<OffsetLimitPageParams, \"limit\">\n ) => Promise<OffsetLimitPage<Item>>\n ) {\n this.data = data;\n this.pagination = pagination;\n }\n\n getPaginatedItems(): Item[] {\n return this.data ?? [];\n }\n\n hasNextPage(): boolean {\n return this.pagination.currentPage < this.pagination.totalPages;\n }\n\n hasPreviousPage(): boolean {\n return this.pagination.currentPage > 1;\n }\n\n getNextPage(): Promise<OffsetLimitPage<Item>> {\n if (!this.hasNextPage()) {\n throw new Error(\"No next page available\");\n }\n\n return this.pageFetcher({\n page: this.pagination.currentPage + 1,\n });\n }\n\n getPreviousPage(): Promise<OffsetLimitPage<Item>> {\n if (!this.hasPreviousPage()) {\n throw new Error(\"No previous page available\");\n }\n\n return this.pageFetcher({\n page: this.pagination.currentPage - 1,\n });\n }\n\n async *iterPages() {\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n let page: OffsetLimitPage<Item> = this;\n yield page;\n while (page.hasNextPage()) {\n page = await page.getNextPage();\n yield page;\n }\n }\n\n async *[Symbol.asyncIterator]() {\n for await (const page of this.iterPages()) {\n for (const item of page.getPaginatedItems()) {\n yield item;\n }\n }\n }\n}\n","import { ApiClient } from \"../apiClient\";\nimport { getGlobal, registerGlobal, unregisterGlobal } from \"../utils/globals\";\nimport { getEnvVar } from \"../utils/getEnv\";\nimport { ApiClientConfiguration } from \"./types\";\n\nconst API_NAME = \"api-client\";\n\nexport class APIClientManagerAPI {\n private static _instance?: APIClientManagerAPI;\n\n private constructor() {}\n\n public static getInstance(): APIClientManagerAPI {\n if (!this._instance) {\n this._instance = new APIClientManagerAPI();\n }\n\n return this._instance;\n }\n\n public disable() {\n unregisterGlobal(API_NAME);\n }\n\n public setGlobalAPIClientConfiguration(config: ApiClientConfiguration): boolean {\n return registerGlobal(API_NAME, config);\n }\n\n get baseURL(): string | undefined {\n const store = this.#getConfig();\n return store?.baseURL ?? getEnvVar(\"TRIGGER_API_URL\") ?? \"https://api.trigger.dev\";\n }\n\n get accessToken(): string | undefined {\n const store = this.#getConfig();\n return store?.secretKey ?? getEnvVar(\"TRIGGER_SECRET_KEY\") ?? getEnvVar(\"TRIGGER_ACCESS_TOKEN\");\n }\n\n get client(): ApiClient | undefined {\n if (!this.baseURL || !this.accessToken) {\n return undefined;\n }\n\n return new ApiClient(this.baseURL, this.accessToken);\n }\n\n #getConfig(): ApiClientConfiguration | 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 { APIClientManagerAPI } from \"./apiClientManager\";\n/** Entrypoint for logger API */\nexport const apiClientManager = APIClientManagerAPI.getInstance();\n\nexport type { ApiClientConfiguration } from \"./apiClientManager/types\";\n","import { Attributes, Span } from \"@opentelemetry/api\";\nimport { OFFLOAD_IO_PACKET_LENGTH_LIMIT, imposeAttributeLimits } from \"../limits\";\nimport { SemanticInternalAttributes } from \"../semanticInternalAttributes\";\nimport { TriggerTracer } from \"../tracer\";\nimport { flattenAttributes } from \"./flattenAttributes\";\nimport { apiClientManager } from \"../apiClientManager-api\";\n\nexport type IOPacket = {\n data?: string | undefined;\n dataType: string;\n};\n\nexport async function parsePacket(value: IOPacket): Promise<any> {\n if (!value.data) {\n return undefined;\n }\n\n switch (value.dataType) {\n case \"application/json\":\n return JSON.parse(value.data);\n case \"application/super+json\":\n const { parse } = await loadSuperJSON();\n\n return parse(value.data);\n case \"text/plain\":\n return value.data;\n case \"application/store\":\n throw new Error(\n `Cannot parse an application/store packet (${value.data}). Needs to be imported first.`\n );\n default:\n return value.data;\n }\n}\n\nexport async function stringifyIO(value: any): Promise<IOPacket> {\n if (value === undefined) {\n return { dataType: \"application/json\" };\n }\n\n if (typeof value === \"string\") {\n return { data: value, dataType: \"text/plain\" };\n }\n\n try {\n const { stringify } = await loadSuperJSON();\n const data = stringify(value);\n\n return { data, dataType: \"application/super+json\" };\n } catch {\n return { data: value, dataType: \"application/json\" };\n }\n}\n\nexport async function conditionallyExportPacket(\n packet: IOPacket,\n pathPrefix: string,\n tracer?: TriggerTracer\n): Promise<IOPacket> {\n if (apiClientManager.client) {\n const { needsOffloading, size } = packetRequiresOffloading(packet);\n\n if (needsOffloading) {\n if (!tracer) {\n return await exportPacket(packet, pathPrefix);\n } else {\n const result = await tracer.startActiveSpan(\n \"store.uploadOutput\",\n async (span) => {\n return await exportPacket(packet, pathPrefix);\n },\n {\n attributes: {\n byteLength: size,\n [SemanticInternalAttributes.STYLE_ICON]: \"cloud-upload\",\n },\n }\n );\n\n return result ?? packet;\n }\n }\n }\n\n return packet;\n}\n\nexport function packetRequiresOffloading(\n packet: IOPacket,\n lengthLimit?: number\n): {\n needsOffloading: boolean;\n size: number;\n} {\n if (!packet.data) {\n return {\n needsOffloading: false,\n size: 0,\n };\n }\n\n const byteSize = Buffer.byteLength(packet.data, \"utf8\");\n\n return {\n needsOffloading: byteSize >= (lengthLimit ?? OFFLOAD_IO_PACKET_LENGTH_LIMIT),\n size: byteSize,\n };\n}\n\nasync function exportPacket(packet: IOPacket, pathPrefix: string): Promise<IOPacket> {\n // Offload the output\n const filename = `${pathPrefix}.${getPacketExtension(packet.dataType)}`;\n\n const presignedResponse = await apiClientManager.client!.createUploadPayloadUrl(filename);\n\n const uploadResponse = await fetch(presignedResponse.presignedUrl, {\n method: \"PUT\",\n headers: {\n \"Content-Type\": packet.dataType,\n },\n body: packet.data,\n });\n\n if (!uploadResponse.ok) {\n throw new Error(\n `Failed to upload output to ${presignedResponse.presignedUrl}: ${uploadResponse.statusText}`\n );\n }\n\n return {\n data: filename,\n dataType: \"application/store\",\n };\n}\n\nexport async function conditionallyImportPacket(\n packet: IOPacket,\n tracer?: TriggerTracer\n): Promise<IOPacket> {\n if (packet.dataType !== \"application/store\") {\n return packet;\n }\n\n if (!tracer) {\n return await importPacket(packet);\n } else {\n const result = await tracer.startActiveSpan(\n \"store.downloadPayload\",\n async (span) => {\n return await importPacket(packet, span);\n },\n {\n attributes: {\n [SemanticInternalAttributes.STYLE_ICON]: \"cloud-download\",\n },\n }\n );\n\n return result ?? packet;\n }\n}\n\nasync function importPacket(packet: IOPacket, span?: Span): Promise<IOPacket> {\n if (!packet.data) {\n return packet;\n }\n\n if (!apiClientManager.client) {\n return packet;\n }\n\n const presignedResponse = await apiClientManager.client.getPayloadUrl(packet.data);\n\n const response = await fetch(presignedResponse.presignedUrl);\n\n if (!response.ok) {\n throw new Error(\n `Failed to import packet ${presignedResponse.presignedUrl}: ${response.statusText}`\n );\n }\n\n const data = await response.text();\n\n span?.setAttribute(\"size\", Buffer.byteLength(data, \"utf8\"));\n\n return {\n data,\n dataType: response.headers.get(\"content-type\") ?? \"application/json\",\n };\n}\n\nexport async function createPacketAttributes(\n packet: IOPacket,\n dataKey: string,\n dataTypeKey: string\n): Promise<Attributes | undefined> {\n if (!packet.data) {\n return;\n }\n\n switch (packet.dataType) {\n case \"application/json\":\n return {\n ...flattenAttributes(packet, dataKey),\n [dataTypeKey]: packet.dataType,\n };\n case \"application/super+json\":\n const { parse } = await loadSuperJSON();\n\n if (typeof packet.data === \"undefined\" || packet.data === null) {\n return;\n }\n\n try {\n const parsed = parse(packet.data) as any;\n const jsonified = JSON.parse(JSON.stringify(parsed, safeReplacer));\n\n const result = {\n ...flattenAttributes(jsonified, dataKey),\n [dataTypeKey]: \"application/json\",\n };\n\n return result;\n } catch (e) {\n return;\n }\n\n case \"application/store\":\n return {\n [dataKey]: packet.data,\n [dataTypeKey]: packet.dataType,\n };\n case \"text/plain\":\n return {\n [dataKey]: packet.data,\n [dataTypeKey]: packet.dataType,\n };\n default:\n return;\n }\n}\n\nexport async function createPacketAttributesAsJson(\n data: any,\n dataType: string\n): Promise<Attributes> {\n if (\n typeof data === \"string\" ||\n typeof data === \"number\" ||\n typeof data === \"boolean\" ||\n data === null ||\n data === undefined\n ) {\n return data;\n }\n\n switch (dataType) {\n case \"application/json\":\n return imposeAttributeLimits(flattenAttributes(data, undefined));\n case \"application/super+json\":\n const { deserialize } = await loadSuperJSON();\n\n const deserialized = deserialize(data) as any;\n const jsonify = safeJsonParse(JSON.stringify(deserialized, safeReplacer));\n\n return imposeAttributeLimits(flattenAttributes(jsonify, undefined));\n case \"application/store\":\n return data;\n default:\n return {};\n }\n}\n\nexport async function prettyPrintPacket(rawData: any, dataType?: string): Promise<string> {\n if (rawData === undefined) {\n return \"\";\n }\n\n if (dataType === \"application/super+json\") {\n if (typeof rawData === \"string\") {\n rawData = safeJsonParse(rawData);\n }\n const { deserialize } = await loadSuperJSON();\n\n return await prettyPrintPacket(deserialize(rawData), \"application/json\");\n }\n\n if (dataType === \"application/json\") {\n if (typeof rawData === \"string\") {\n rawData = safeJsonParse(rawData);\n }\n return JSON.stringify(rawData, safeReplacer, 2);\n }\n\n if (typeof rawData === \"string\") {\n return rawData;\n }\n\n return JSON.stringify(rawData, safeReplacer, 2);\n}\n\nfunction safeReplacer(key: string, value: any) {\n // If it is a BigInt\n if (typeof value === \"bigint\") {\n return value.toString(); // Convert to string\n }\n\n // if it is a Regex\n if (value instanceof RegExp) {\n return value.toString(); // Convert to string\n }\n\n // if it is a Set\n if (value instanceof Set) {\n return Array.from(value); // Convert to array\n }\n\n // if it is a Map, convert it to an object\n if (value instanceof Map) {\n const obj: Record<string, any> = {};\n value.forEach((v, k) => {\n obj[k] = v;\n });\n return obj;\n }\n\n return value; // Otherwise return the value as is\n}\n\nfunction getPacketExtension(outputType: string): string {\n switch (outputType) {\n case \"application/json\":\n return \"json\";\n case \"application/super+json\":\n return \"json\";\n case \"text/plain\":\n return \"txt\";\n default:\n return \"txt\";\n }\n}\n\nasync function loadSuperJSON(): Promise<typeof import(\"superjson\")> {\n return await import(\"superjson\");\n}\n\nfunction safeJsonParse(value: string): any {\n try {\n return JSON.parse(value);\n } catch {\n return;\n }\n}\n\nexport async function replaceSuperJsonPayload(original: string, newPayload: string) {\n const superjson = await loadSuperJSON();\n const originalObject = superjson.parse(original);\n const { meta } = superjson.serialize(originalObject);\n\n const newSuperJson = {\n json: JSON.parse(newPayload) as any,\n meta,\n };\n\n return superjson.deserialize(newSuperJson);\n}\n","import { PreciseDate } from \"@google-cloud/precise-date\";\nimport { Clock, ClockTime } from \"./clock\";\n\nexport type PreciseWallClockOptions = {\n origin?: ClockTime;\n now?: PreciseDate;\n};\n\nexport class PreciseWallClock implements Clock {\n private _origin: {\n clockTime: ClockTime;\n preciseDate: PreciseDate;\n };\n\n get #originClockTime() {\n return this._origin.clockTime;\n }\n\n get #originPreciseDate() {\n return this._origin.preciseDate;\n }\n\n constructor(options: PreciseWallClockOptions = {}) {\n this._origin = {\n clockTime: options.origin ?? process.hrtime(),\n preciseDate: options.now ?? new PreciseDate(),\n };\n }\n\n preciseNow(): [number, number] {\n const elapsedHrTime = process.hrtime(this.#originClockTime);\n const elapsedNanoseconds = BigInt(elapsedHrTime[0]) * BigInt(1e9) + BigInt(elapsedHrTime[1]);\n\n const preciseDate = new PreciseDate(this.#originPreciseDate.getFullTime() + elapsedNanoseconds);\n const dateStruct = preciseDate.toStruct();\n\n return [dateStruct.seconds, dateStruct.nanos];\n }\n\n reset() {\n this._origin = {\n clockTime: process.hrtime(),\n preciseDate: new PreciseDate(),\n };\n }\n}\n","import { Attributes, Span, SpanOptions } from \"@opentelemetry/api\";\nimport { Logger, SeverityNumber } from \"@opentelemetry/api-logs\";\nimport { iconStringForSeverity } from \"../icons\";\nimport { SemanticInternalAttributes } from \"../semanticInternalAttributes\";\nimport { TriggerTracer } from \"../tracer\";\nimport { flattenAttributes } from \"../utils/flattenAttributes\";\nimport { ClockTime } from \"../clock/clock\";\nimport { clock } from \"../clock-api\";\n\nexport type LogLevel = \"none\" | \"error\" | \"warn\" | \"info\" | \"debug\" | \"log\";\n\nexport const logLevels: Array<LogLevel> = [\"none\", \"error\", \"warn\", \"info\", \"debug\"];\n\nexport type TaskLoggerConfig = {\n logger: Logger;\n tracer: TriggerTracer;\n level: LogLevel;\n};\n\nexport interface TaskLogger {\n debug(message: string, properties?: Record<string, unknown>): void;\n log(message: string, properties?: Record<string, unknown>): void;\n info(message: string, properties?: Record<string, unknown>): void;\n warn(message: string, properties?: Record<string, unknown>): void;\n error(message: string, properties?: Record<string, unknown>): void;\n trace<T>(name: string, fn: (span: Span) => Promise<T>, options?: SpanOptions): Promise<T>;\n}\n\nexport class OtelTaskLogger implements TaskLogger {\n private readonly _level: number;\n\n constructor(private readonly _config: TaskLoggerConfig) {\n this._level = logLevels.indexOf(_config.level);\n }\n\n debug(message: string, properties?: Record<string, unknown>) {\n if (this._level < 4) return; // [\"none\", \"error\", \"warn\", \"info\", \"debug\"];\n\n this.#emitLog(message, this.#getTimestampInHrTime(), \"debug\", SeverityNumber.DEBUG, properties);\n }\n\n log(message: string, properties?: Record<string, unknown>) {\n if (this._level < 3) return; // [\"none\", \"error\", \"warn\", \"info\", \"debug\"];\n\n this.#emitLog(message, this.#getTimestampInHrTime(), \"log\", SeverityNumber.INFO, properties);\n }\n\n info(message: string, properties?: Record<string, unknown>) {\n if (this._level < 3) return; // [\"none\", \"error\", \"warn\", \"info\", \"debug\"];\n\n this.#emitLog(message, this.#getTimestampInHrTime(), \"info\", SeverityNumber.INFO, properties);\n }\n\n warn(message: string, properties?: Record<string, unknown>) {\n if (this._level < 2) return; // [\"none\", \"error\", \"warn\", \"info\", \"debug\"];\n\n this.#emitLog(message, this.#getTimestampInHrTime(), \"warn\", SeverityNumber.WARN, properties);\n }\n\n error(message: string, properties?: Record<string, unknown>) {\n if (this._level < 1) return; // [\"none\", \"error\", \"warn\", \"info\", \"debug\"];\n\n this.#emitLog(message, this.#getTimestampInHrTime(), \"error\", SeverityNumber.ERROR, properties);\n }\n\n #emitLog(\n message: string,\n timestamp: ClockTime,\n severityText: string,\n severityNumber: SeverityNumber,\n properties?: Record<string, unknown>\n ) {\n let attributes: Attributes = { ...flattenAttributes(safeJsonProcess(properties)) };\n\n const icon = iconStringForSeverity(severityNumber);\n if (icon !== undefined) {\n attributes[SemanticInternalAttributes.STYLE_ICON] = icon;\n }\n\n this._config.logger.emit({\n severityNumber,\n severityText,\n body: message,\n attributes,\n timestamp,\n });\n }\n\n trace<T>(name: string, fn: (span: Span) => Promise<T>, options?: SpanOptions): Promise<T> {\n return this._config.tracer.startActiveSpan(name, fn, options);\n }\n\n #getTimestampInHrTime(): ClockTime {\n return clock.preciseNow();\n }\n}\n\nexport class NoopTaskLogger implements TaskLogger {\n debug() {}\n log() {}\n info() {}\n warn() {}\n error() {}\n trace<T>(name: string, fn: (span: Span) => Promise<T>): Promise<T> {\n return fn({} as Span);\n }\n}\n\nfunction safeJsonProcess(value?: Record<string, unknown>): Record<string, unknown> | undefined {\n try {\n return JSON.parse(JSON.stringify(value, jsonErrorReplacer));\n } catch {\n return value;\n }\n}\n\nfunction jsonErrorReplacer(key: string, value: unknown) {\n if (value instanceof Error) {\n return {\n name: value.name,\n message: value.message,\n stack: value.stack,\n };\n }\n\n return value;\n}\n","import { SeverityNumber } from \"@opentelemetry/api-logs\";\n\nexport function iconStringForSeverity(severityNumber: SeverityNumber) {\n switch (severityNumber) {\n case SeverityNumber.UNSPECIFIED:\n return undefined;\n case SeverityNumber.TRACE:\n case SeverityNumber.TRACE2:\n case SeverityNumber.TRACE3:\n case SeverityNumber.TRACE4:\n return \"trace\";\n case SeverityNumber.DEBUG:\n case SeverityNumber.DEBUG2:\n case SeverityNumber.DEBUG3:\n case SeverityNumber.DEBUG4:\n return \"debug\";\n case SeverityNumber.INFO:\n case SeverityNumber.INFO2:\n case SeverityNumber.INFO3:\n case SeverityNumber.INFO4:\n return \"info\";\n case SeverityNumber.WARN:\n case SeverityNumber.WARN2:\n case SeverityNumber.WARN3:\n case SeverityNumber.WARN4:\n return \"warn\";\n case SeverityNumber.ERROR:\n case SeverityNumber.ERROR2:\n case SeverityNumber.ERROR3:\n case SeverityNumber.ERROR4:\n return \"error\";\n case SeverityNumber.FATAL:\n case SeverityNumber.FATAL2:\n case SeverityNumber.FATAL3:\n case SeverityNumber.FATAL4:\n return \"fatal\";\n }\n}\n","import { PreciseDate } from \"@google-cloud/precise-date\";\nimport { Clock } from \"./clock\";\n\nexport class SimpleClock implements Clock {\n preciseNow(): [number, number] {\n const now = new PreciseDate();\n const nowStruct = now.toStruct();\n\n return [nowStruct.seconds, nowStruct.nanos];\n }\n\n reset() {\n // do nothing\n }\n}\n","const API_NAME = \"clock\";\n\nimport { getGlobal, registerGlobal } from \"../utils/globals\";\nimport type { Clock, ClockTime } from \"./clock\";\nimport { SimpleClock } from \"./simpleClock\";\n\nconst SIMPLE_CLOCK = new SimpleClock();\n\nexport class ClockAPI {\n private static _instance?: ClockAPI;\n\n private constructor() {}\n\n public static getInstance(): ClockAPI {\n if (!this._instance) {\n this._instance = new ClockAPI();\n }\n\n return this._instance;\n }\n\n public setGlobalClock(clock: Clock): boolean {\n return registerGlobal(API_NAME, clock);\n }\n\n public preciseNow(): ClockTime {\n return this.#getClock().preciseNow();\n }\n\n public reset(): void {\n this.#getClock().reset();\n }\n\n #getClock(): Clock {\n return getGlobal(API_NAME) ?? SIMPLE_CLOCK;\n }\n}\n","// Split module-level variable definition into separate files to allow\n// tree-shaking on each api instance.\nimport { ClockAPI } from \"./clock\";\n/** Entrypoint for clock API */\nexport const clock = ClockAPI.getInstance();\n","import type * as logsAPI from \"@opentelemetry/api-logs\";\nimport { SeverityNumber } from \"@opentelemetry/api-logs\";\nimport util from \"node:util\";\nimport { iconStringForSeverity } from \"./icons\";\nimport { SemanticInternalAttributes } from \"./semanticInternalAttributes\";\nimport { flattenAttributes } from \"./utils/flattenAttributes\";\nimport { ClockTime } from \"./clock/clock\";\nimport { clock } from \"./clock-api\";\n\nexport class ConsoleInterceptor {\n constructor(\n private readonly logger: logsAPI.Logger,\n private readonly sendToStdIO: boolean\n ) {}\n\n // Intercept the console and send logs to the OpenTelemetry logger\n // during the execution of the callback\n async intercept<T>(console: Console, callback: () => Promise<T>): Promise<T> {\n // Save the original console methods\n const originalConsole = {\n log: console.log,\n info: console.info,\n warn: console.warn,\n error: console.error,\n debug: console.debug,\n };\n\n // Override the console methods\n console.log = this.log.bind(this);\n console.info = this.info.bind(this);\n console.warn = this.warn.bind(this);\n console.error = this.error.bind(this);\n console.debug = this.debug.bind(this);\n\n try {\n return await callback();\n } finally {\n // Restore the original console methods\n console.log = originalConsole.log;\n console.info = originalConsole.info;\n console.warn = originalConsole.warn;\n console.error = originalConsole.error;\n console.debug = originalConsole.debug;\n }\n }\n\n debug(...args: unknown[]): void {\n this.#handleLog(SeverityNumber.DEBUG, this.#getTimestampInHrTime(), \"Debug\", ...args);\n }\n\n log(...args: unknown[]): void {\n this.#handleLog(SeverityNumber.INFO, this.#getTimestampInHrTime(), \"Log\", ...args);\n }\n\n info(...args: unknown[]): void {\n this.#handleLog(SeverityNumber.INFO, this.#getTimestampInHrTime(), \"Info\", ...args);\n }\n\n warn(...args: unknown[]): void {\n this.#handleLog(SeverityNumber.WARN, this.#getTimestampInHrTime(), \"Warn\", ...args);\n }\n\n error(...args: unknown[]): void {\n this.#handleLog(SeverityNumber.ERROR, this.#getTimestampInHrTime(), \"Error\", ...args);\n }\n\n #handleLog(\n severityNumber: SeverityNumber,\n timestamp: ClockTime,\n severityText: string,\n ...args: unknown[]\n ): void {\n const body = util.format(...args);\n\n if (this.sendToStdIO) {\n if (severityNumber === SeverityNumber.ERROR) {\n process.stderr.write(body);\n } else {\n process.stdout.write(body);\n }\n }\n\n const parsed = tryParseJSON(body);\n\n if (parsed.ok) {\n this.logger.emit({\n severityNumber,\n severityText,\n body: getLogMessage(parsed.value, severityText),\n attributes: { ...this.#getAttributes(severityNumber), ...flattenAttributes(parsed.value) },\n timestamp,\n });\n\n return;\n }\n\n this.logger.emit({\n severityNumber,\n severityText,\n body,\n attributes: this.#getAttributes(severityNumber),\n timestamp,\n });\n }\n\n #getTimestampInHrTime(): ClockTime {\n return clock.preciseNow();\n }\n\n #getAttributes(severityNumber: SeverityNumber): logsAPI.LogAttributes {\n const icon = iconStringForSeverity(severityNumber);\n let result: logsAPI.LogAttributes = {};\n\n if (icon !== undefined) {\n result[SemanticInternalAttributes.STYLE_ICON] = icon;\n }\n\n return result;\n }\n}\n\nfunction getLogMessage(value: Record<string, unknown>, fallback: string): string {\n if (typeof value[\"message\"] === \"string\") {\n return value[\"message\"];\n }\n\n if (typeof value[\"msg\"] === \"string\") {\n return value[\"msg\"];\n }\n\n if (typeof value[\"body\"] === \"string\") {\n return value[\"body\"];\n }\n\n if (typeof value[\"error\"] === \"string\") {\n return value[\"error\"];\n }\n\n return fallback;\n}\n\nfunction tryParseJSON(\n value: string\n): { ok: true; value: Record<string, unknown> } | { ok: false; value: string } {\n try {\n const parsed = JSON.parse(value);\n\n if (typeof parsed === \"object\" && parsed !== null && !Array.isArray(parsed)) {\n return { ok: true, value: parsed };\n }\n\n return { ok: false, value };\n } catch (e) {\n return { ok: false, value };\n }\n}\n","import { TaskFileMetadata, TaskMetadata, TaskMetadataWithFilePath } from \"../schemas\";\nimport { TaskMetadataWithFunctions } from \"../types\";\nimport { TaskCatalog } from \"./catalog\";\n\nexport class StandardTaskCatalog implements TaskCatalog {\n private _taskMetadata: Map<string, TaskMetadata> = new Map();\n private _taskFunctions: Map<string, TaskMetadataWithFunctions[\"fns\"]> = new Map();\n private _taskFileMetadata: Map<string, TaskFileMetadata> = new Map();\n\n registerTaskMetadata(task: TaskMetadataWithFunctions): void {\n const { fns, ...metadata } = task;\n\n this._taskMetadata.set(task.id, metadata);\n this._taskFunctions.set(task.id, fns);\n }\n\n updateTaskMetadata(id: string, updates: Partial<TaskMetadataWithFunctions>): void {\n const existingMetadata = this._taskMetadata.get(id);\n\n if (existingMetadata) {\n this._taskMetadata.set(id, {\n ...existingMetadata,\n ...updates,\n });\n }\n\n if (updates.fns) {\n const existingFunctions = this._taskFunctions.get(id);\n\n if (existingFunctions) {\n this._taskFunctions.set(id, {\n ...existingFunctions,\n ...updates.fns,\n });\n }\n }\n }\n\n registerTaskFileMetadata(id: string, metadata: TaskFileMetadata): void {\n this._taskFileMetadata.set(id, metadata);\n }\n\n // Return all the tasks, without the functions\n getAllTaskMetadata(): Array<TaskMetadataWithFilePath> {\n const result: Array<TaskMetadataWithFilePath> = [];\n\n for (const [id, metadata] of this._taskMetadata) {\n const fileMetadata = this._taskFileMetadata.get(id);\n\n if (!fileMetadata) {\n continue;\n }\n\n result.push({\n ...metadata,\n ...fileMetadata,\n });\n }\n\n return result;\n }\n\n getTaskMetadata(id: string): TaskMetadataWithFilePath | undefined {\n const metadata = this._taskMetadata.get(id);\n const fileMetadata = this._taskFileMetadata.get(id);\n\n if (!metadata || !fileMetadata) {\n return undefined;\n }\n\n return {\n ...metadata,\n ...fileMetadata,\n };\n }\n\n getTask(id: string): TaskMetadataWithFunctions | undefined {\n const metadata = this._taskMetadata.get(id);\n const fileMetadata = this._taskFileMetadata.get(id);\n const fns = this._taskFunctions.get(id);\n\n if (!metadata || !fns || !fileMetadata) {\n return undefined;\n }\n\n return {\n ...metadata,\n ...fileMetadata,\n fns,\n };\n }\n\n taskExists(id: string): boolean {\n return this._taskMetadata.has(id);\n }\n\n disable() {\n // noop\n }\n}\n","import { UsageManager, UsageMeasurement, UsageSample } from \"./types\";\n\nexport class NoopUsageManager implements UsageManager {\n disable(): void {\n // Noop\n }\n\n start(): UsageMeasurement {\n return {\n sample: () => ({ cpuTime: 0, wallTime: 0 }),\n };\n }\n\n stop(measurement: UsageMeasurement): UsageSample {\n return measurement.sample();\n }\n\n pauseAsync<T>(cb: () => Promise<T>): Promise<T> {\n return cb();\n }\n\n sample(): UsageSample | undefined {\n return undefined;\n }\n}\n","const API_NAME = \"usage\";\n\nimport { getGlobal, registerGlobal, unregisterGlobal } from \"../utils/globals\";\nimport type { UsageManager, UsageMeasurement, UsageSample } from \"./types\";\nimport { NoopUsageManager } from \"./noopUsageManager\";\n\nconst NOOP_USAGE_MANAGER = new NoopUsageManager();\n\nexport class UsageAPI implements UsageManager {\n private static _instance?: UsageAPI;\n\n private constructor() {}\n\n public static getInstance(): UsageAPI {\n if (!this._instance) {\n this._instance = new UsageAPI();\n }\n\n return this._instance;\n }\n\n public setGlobalUsageManager(manager: UsageManager): boolean {\n return registerGlobal(API_NAME, manager);\n }\n\n public disable() {\n this.#getUsageManager().disable();\n unregisterGlobal(API_NAME);\n }\n\n public start(): UsageMeasurement {\n return this.#getUsageManager().start();\n }\n\n public stop(measurement: UsageMeasurement): UsageSample {\n return this.#getUsageManager().stop(measurement);\n }\n\n public pauseAsync<T>(cb: () => Promise<T>): Promise<T> {\n return this.#getUsageManager().pauseAsync(cb);\n }\n\n public sample(): UsageSample | undefined {\n return this.#getUsageManager().sample();\n }\n\n #getUsageManager(): UsageManager {\n return getGlobal(API_NAME) ?? NOOP_USAGE_MANAGER;\n }\n}\n","// Split module-level variable definition into separate files to allow\n// tree-shaking on each api instance.\nimport { UsageAPI } from \"./usage/api\";\n/** Entrypoint for usage API */\nexport const usage = UsageAPI.getInstance();\n","/**\n * Contains two parts: the first part is the seconds, the second part is the nanoseconds.\n *\n */\nexport type ClockTime = [number, number];\n\nexport interface Clock {\n preciseNow(): ClockTime;\n reset(): void;\n}\n\nexport function calculateDurationInMs(start: ClockTime, end: ClockTime): number {\n const [startSeconds, startNanoseconds] = start;\n const [endSeconds, endNanoseconds] = end;\n\n const seconds = endSeconds - startSeconds;\n const nanoseconds = endNanoseconds - startNanoseconds;\n\n return Math.floor(seconds * 1000 + nanoseconds / 1000000);\n}\n","import { UsageManager, UsageMeasurement, UsageSample } from \"./types\";\nimport { clock } from \"../clock-api\";\nimport { ClockTime, calculateDurationInMs } from \"../clock/clock\";\n\nclass DevUsageMeasurement implements UsageMeasurement {\n private _pauses: Map<string, { start: ClockTime; end?: ClockTime }> = new Map();\n private _endedAt: ClockTime | undefined;\n\n constructor(\n public readonly id: string,\n private startedAt: ClockTime = clock.preciseNow()\n ) {}\n\n stop() {\n this._endedAt = clock.preciseNow();\n }\n\n sample(): UsageSample {\n const endedAt = this._endedAt ?? clock.preciseNow();\n\n const wallTime = this.startedAt ? calculateDurationInMs(this.startedAt, endedAt) : 0;\n\n if (wallTime === 0) {\n return { cpuTime: 0, wallTime: 0 };\n }\n\n const totalPauses = Array.from(this._pauses.values()).reduce((total, pause) => {\n return total + calculateDurationInMs(pause.start, pause.end ?? endedAt);\n }, 0);\n\n const cpuTime = wallTime - totalPauses;\n\n return {\n wallTime,\n cpuTime,\n };\n }\n\n registerPause(pauseId: string, start: ClockTime, end?: ClockTime) {\n this._pauses.set(pauseId, { start, end });\n }\n}\n\nexport class DevUsageManager implements UsageManager {\n private _firstMeasurement?: DevUsageMeasurement;\n private _currentMeasurements: Map<string, DevUsageMeasurement> = new Map();\n private _pauses: Map<string, { start: ClockTime; end?: ClockTime }> = new Map();\n\n disable(): void {}\n\n sample(): UsageSample | undefined {\n return this._firstMeasurement?.sample();\n }\n\n start(): DevUsageMeasurement {\n // generate a random ID\n const id = generateRandomString();\n\n const measurement = new DevUsageMeasurement(id);\n\n if (!this._firstMeasurement) {\n this._firstMeasurement = measurement;\n }\n\n this._currentMeasurements.set(id, measurement);\n\n return measurement;\n }\n\n stop(measurement: DevUsageMeasurement): UsageSample {\n measurement.stop();\n\n const sample = measurement.sample();\n\n this._currentMeasurements.delete(measurement.id);\n\n return sample;\n }\n\n async pauseAsync<T>(cb: () => Promise<T>): Promise<T> {\n const pauseId = generateRandomString();\n\n const pauseStart = clock.preciseNow();\n\n try {\n this._pauses.set(pauseId, { start: pauseStart });\n\n for (const measurement of this._currentMeasurements.values()) {\n measurement.registerPause(pauseId, pauseStart);\n }\n\n return await cb();\n } finally {\n const pauseEnd = clock.preciseNow();\n\n this._pauses.set(pauseId, { start: pauseStart, end: pauseEnd });\n\n for (const measurement of this._currentMeasurements.values()) {\n measurement.registerPause(pauseId, pauseStart, pauseEnd);\n }\n }\n }\n}\n\nfunction generateRandomString() {\n let result = \"\";\n const characters = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\";\n const charactersLength = characters.length;\n\n for (var i = 0; i < 16; i++) {\n result += characters.charAt(Math.floor(Math.random() * charactersLength));\n }\n\n return result;\n}\n","import { setInterval } from \"node:timers/promises\";\nimport { UsageManager, UsageMeasurement, UsageSample } from \"./types\";\nimport { UsageClient } from \"./usageClient\";\n\nexport type ProdUsageManagerOptions = {\n heartbeatIntervalMs?: number;\n url?: string;\n jwt?: string;\n};\n\nexport class ProdUsageManager implements UsageManager {\n private _measurement: UsageMeasurement | undefined;\n private _abortController: AbortController | undefined;\n private _lastSample: UsageSample | undefined;\n private _usageClient: UsageClient | undefined;\n\n constructor(\n private readonly delegageUsageManager: UsageManager,\n private readonly options: ProdUsageManagerOptions\n ) {\n if (this.options.url && this.options.jwt) {\n this._usageClient = new UsageClient(this.options.url, this.options.jwt);\n }\n }\n\n get isReportingEnabled() {\n return typeof this._usageClient !== \"undefined\";\n }\n\n disable(): void {\n this.delegageUsageManager.disable();\n this._abortController?.abort();\n }\n\n sample(): UsageSample | undefined {\n return this._measurement?.sample();\n }\n\n start(): UsageMeasurement {\n if (!this.isReportingEnabled || !this.options.heartbeatIntervalMs) {\n return this.delegageUsageManager.start();\n }\n\n if (!this._measurement) {\n this._measurement = this.delegageUsageManager.start();\n\n this.#startReportingHeartbeat().catch(console.error);\n\n return this._measurement;\n }\n\n return this.delegageUsageManager.start();\n }\n\n stop(measurement: UsageMeasurement): UsageSample {\n return this.delegageUsageManager.stop(measurement);\n }\n\n async pauseAsync<T>(cb: () => Promise<T>): Promise<T> {\n return this.delegageUsageManager.pauseAsync(cb);\n }\n\n async #startReportingHeartbeat() {\n if (!this._measurement || !this.isReportingEnabled || !this.options.heartbeatIntervalMs) {\n return;\n }\n\n this._abortController = new AbortController();\n\n for await (const _ of setInterval(this.options.heartbeatIntervalMs)) {\n if (this._abortController.signal.aborted) {\n break;\n }\n\n await this.#reportUsage();\n }\n }\n\n async flush() {\n return await this.#reportUsage();\n }\n\n async #reportUsage() {\n if (!this._measurement) {\n return;\n }\n\n if (!this.isReportingEnabled) {\n return;\n }\n\n const client = this._usageClient;\n\n if (!client) {\n return;\n }\n\n const sample = this._measurement.sample();\n\n const cpuTimeSinceLastSample = this._lastSample\n ? sample.cpuTime - this._lastSample.cpuTime\n : sample.cpuTime;\n\n this._lastSample = sample;\n\n if (cpuTimeSinceLastSample <= 0) {\n return;\n }\n\n await client.sendUsageEvent({ durationMs: cpuTimeSinceLastSample });\n }\n}\n","import { apiClientManager } from \"../apiClientManager-api\";\n\nexport type UsageClientOptions = {\n token: string;\n baseUrl: string;\n};\n\nexport type UsageEvent = {\n durationMs: number;\n};\n\nexport class UsageClient {\n constructor(\n private readonly url: string,\n private jwt: string\n ) {}\n\n async sendUsageEvent(event: UsageEvent): Promise<void> {\n try {\n const response = await fetch(this.url, {\n method: \"POST\",\n body: JSON.stringify(event),\n headers: {\n \"content-type\": \"application/json\",\n \"x-trigger-jwt\": this.jwt,\n accept: \"application/json\",\n authorization: `Bearer ${apiClientManager.accessToken}`, // this is used to renew the JWT\n },\n });\n\n if (response.ok) {\n const renewedJwt = response.headers.get(\"x-trigger-jwt\");\n\n if (renewedJwt) {\n this.jwt = renewedJwt;\n }\n }\n } catch (error) {\n console.error(`Failed to send usage event: ${error}`);\n }\n }\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../../../src/v3/workers/taskExecutor.ts","../../../src/v3/errors.ts","../../../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","../../../src/v3/schemas/api.ts","../../../src/v3/schemas/resources.ts","../../../src/v3/schemas/schemas.ts","../../../src/v3/schemas/common.ts","../../../src/v3/apiClient/index.ts","../../../src/v3/apiClient/core.ts","../../../src/v3/utils/retries.ts","../../../src/v3/apiClient/errors.ts","../../../src/v3/utils/styleAttributes.ts","../../../src/v3/apiClient/pagination.ts","../../../src/v3/apiClientManager/index.ts","../../../src/v3/apiClientManager-api.ts","../../../src/v3/utils/ioSerialization.ts","../../../src/v3/clock/preciseWallClock.ts","../../../src/v3/logger/taskLogger.ts","../../../src/v3/icons.ts","../../../src/v3/clock/simpleClock.ts","../../../src/v3/clock/index.ts","../../../src/v3/clock-api.ts","../../../src/v3/consoleInterceptor.ts","../../../src/v3/task-catalog/standardTaskCatalog.ts","../../../src/v3/usage/noopUsageManager.ts","../../../src/v3/usage/api.ts","../../../src/v3/usage-api.ts","../../../src/v3/clock/clock.ts","../../../src/v3/usage/devUsageManager.ts","../../../src/v3/usage/prodUsageManager.ts","../../../src/v3/usage/usageClient.ts"],"names":["SpanKind","z","parseError","error","Error","type","name","message","stackTrace","stack","raw","JSON","stringify","e","String","SerializedError","object","string","optional","sanitizeError","replace","code","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","instance","allowOverride","api","err","getGlobal","unregisterGlobal","API_NAME","TaskContextAPI","getInstance","_instance","isInsideTask","ctx","worker","attributes","contextAttributes","workerAttributes","id","version","attempt","number","task","filePath","exportName","queue","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","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","recordException","sanitizeSpanError","setStatus","sanitizedError","MachineCpu","union","literal","MachineMemory","MachinePresetName","enum","MachineConfig","preset","MachinePreset","TaskRunBuiltInError","TaskRunCustomErrorObject","TaskRunStringError","TaskRunErrorCodes","COULD_NOT_FIND_EXECUTOR","COULD_NOT_FIND_TASK","CONFIGURED_INCORRECTLY","TASK_ALREADY_RUNNING","TASK_EXECUTION_FAILED","TASK_EXECUTION_ABORTED","TASK_PROCESS_EXITED_WITH_NON_ZERO_CODE","TASK_PROCESS_SIGKILL_TIMEOUT","TASK_RUN_CANCELLED","TASK_OUTPUT_ERROR","HANDLE_ERROR_ERROR","GRACEFUL_EXIT_TIMEOUT","TaskRunInternalError","TaskRunError","discriminatedUnion","TaskRun","payload","payloadType","any","tags","array","boolean","default","createdAt","coerce","date","startedAt","Date","maxAttempts","durationMs","costInCents","baseCostInCents","TaskRunExecutionTask","TaskRunExecutionAttempt","backgroundWorkerId","backgroundWorkerTaskId","status","TaskRunExecutionEnvironment","TaskRunExecutionOrganization","TaskRunExecutionProject","TaskRunExecutionQueue","TaskRunExecutionBatch","TaskRunExecution","TaskRunContext","omit","TaskRunExecutionRetry","timestamp","delay","unknown","TaskRunExecutionUsage","TaskRunFailedExecutionResult","ok","retry","skippedRetrying","usage","TaskRunSuccessfulExecutionResult","output","outputType","TaskRunExecutionResult","BatchTaskRunExecutionResult","items","EnvironmentType","TaskRunExecutionPayload","execution","traceContext","record","ProdTaskRunExecution","extend","contentHash","ProdTaskRunExecutionPayload","FixedWindowRateLimit","limit","window","seconds","minutes","hours","SlidingWindowRateLimit","RateLimitOptions","RetryOptions","int","factor","minTimeoutInMs","maxTimeoutInMs","randomize","QueueOptions","concurrencyLimit","min","max","rateLimit","ScheduleMetadata","cron","timezone","TaskMetadata","packageVersion","triggerSource","schedule","TaskFileMetadata","TaskMetadataWithFilePath","PostStartCauses","PreStopCauses","RegexSchema","custom","val","test","Config","triggerDirectories","triggerUrl","projectDir","tsconfigPath","retries","enabledInDev","additionalPackages","additionalFiles","dependenciesToBundle","logLevel","enableConsoleLogging","postInstall","extraCACerts","WaitReason","TaskRunExecutionLazyAttemptPayload","runId","attemptCount","messageId","TaskResource","BackgroundWorkerMetadata","cliPackageVersion","tasks","ImageDetailsMetadata","imageTag","WhoAmIResponseSchema","userId","email","dashboardUrl","GetProjectResponseBody","externalRef","title","GetProjectsResponseBody","GetProjectEnvResponse","apiKey","apiUrl","CreateBackgroundWorkerRequestBody","localOnly","metadata","supportsLazyAttempts","CreateBackgroundWorkerResponse","RunTag","RunTags","TriggerTaskRequestBody","options","dependentAttempt","dependentBatch","lockToVersion","concurrencyKey","or","ttl","nonnegative","TriggerTaskResponse","BatchTriggerTaskRequestBody","BatchTriggerTaskResponse","batchId","runs","GetBatchResponseBody","taskRunId","AddTagsRequestBody","RescheduleRunRequestBody","GetEnvironmentVariablesResponseBody","variables","StartDeploymentIndexingRequestBody","imageReference","selfHosted","StartDeploymentIndexingResponseBody","ExternalBuildData","buildId","buildToken","projectId","InitializeDeploymentResponseBody","shortCode","externalBuildData","nullable","registryHost","InitializeDeploymentRequestBody","DeploymentErrorData","stderr","GetDeploymentResponseBody","errorData","CreateUploadPayloadUrlResponseBody","presignedUrl","ReplayRunResponse","CanceledRunResponse","ScheduleType","ScheduledTaskPayload","scheduleId","lastTimestamp","externalId","upcoming","CreateScheduleOptions","deduplicationKey","UpdateScheduleOptions","ScheduleGenerator","expression","description","ScheduleObject","active","nullish","generator","nextRun","environments","userName","DeletedScheduleObject","ListSchedulesResult","data","pagination","currentPage","totalPages","count","ListScheduleOptions","page","perPage","TimezonesResult","timezones","RunStatus","AttemptStatus","RunEnvironmentDetails","user","RunScheduleDetails","CommonRunFields","taskIdentifier","isQueued","isExecuting","isCompleted","isSuccess","isFailed","isCancelled","updatedAt","finishedAt","delayedUntil","expiredAt","RetrieveRunResponse","payloadPresignedUrl","outputPresignedUrl","attempts","completedAt","ListRunResponseItem","ListRunResponse","next","previous","CreateEnvironmentVariableRequestBody","UpdateEnvironmentVariableRequestBody","ImportEnvironmentVariablesRequestBody","override","EnvironmentVariableResponseBody","success","EnvironmentVariableValue","EnvironmentVariable","EnvironmentVariables","propagation","fromZodError","defaultRetryOptions","defaultFetchRetryOptions","byStatus","strategy","connectionError","timeout","calculateNextRetryDelay","opts","random","Math","pow","round","ApiError","headers","makeMessage","param","msg","generate","errorResponse","ApiConnectionError","cause","castToError","BadRequestError","AuthenticationError","PermissionDeniedError","NotFoundError","ConflictError","UnprocessableEntityError","RateLimitError","InternalServerError","millisecondsUntilReset","resetAtUnixEpochMs","resetAtUnixEpoch","isNaN","now","floor","accessoryAttributes","accessory","CursorPage","pageFetcher","getPaginatedItems","hasNextPage","hasPreviousPage","getNextPage","after","getPreviousPage","before","iterPages","asyncIterator","item","OffsetLimitPage","zodfetch","schema","requestInit","ApiPromise","_doZodFetch","zodfetchCursorPage","params","query","URLSearchParams","set","cursorPageSchema","$url","URL","search","toString","fetchResult","href","CursorPagePromise","zodfetchOffsetLimitPage","offsetLimitPageSchema","OffsetLimitPagePromise","traceZodFetch","callback","tracer","method","pathname","startActiveSpan","icon","$requestInit","_doZodFetchWithRetries","onResponseBody","response","fetch","requestInitWithCache","responseHeaders","createResponseHeaders","retryResult","shouldRetry","waitForRetry","errText","text","catch","errJSON","safeJsonParse","errMessage","jsonBody","json","parsedResult","safeParse","retryOptions","shouldRetryForOptions","shouldRetryHeader","get","Proxy","fromEntries","target","toLowerCase","withCache","cache","_","Request","responsePromise","resolve","asResponse","then","p","withResponse","onfulfilled","onrejected","finally","onfinally","_fetchPage","fetchPage_fn","setTimeout","toUpperCase","variant","style","DEFAULT_ZOD_FETCH_OPTIONS","ApiClient","baseUrl","accessToken","requestOptions","defaultRequestOptions","mergeRequestOptions","getRunResult","getBatchResults","triggerTask","taskId","body","encodedTaskId","encodeURIComponent","spanParentAsLink","batchTriggerTask","createUploadPayloadUrl","filename","getPayloadUrl","retrieveRun","listRuns","searchParams","createSearchQueryForListRuns","listProjectRuns","projectRef","append","join","replayRun","cancelRun","rescheduleRun","addTags","createSchedule","listSchedules","retrieveSchedule","updateSchedule","deactivateSchedule","activateSchedule","deleteSchedule","listEnvVars","importEnvVars","retrieveEnvVar","createEnvVar","updateEnvVar","deleteEnvVar","Authorization","inject","bulkAction","tag","from","getTime","to","period","defaultOptions","APIClientManagerAPI","setGlobalAPIClientConfiguration","baseURL","store","secretKey","client","apiClientManager","parsePacket","dataType","loadSuperJSON","stringifyIO","conditionallyExportPacket","packet","pathPrefix","needsOffloading","size","packetRequiresOffloading","exportPacket","byteLength","lengthLimit","byteSize","Buffer","getPacketExtension","presignedResponse","uploadResponse","statusText","conditionallyImportPacket","importPacket","setAttribute","createPacketAttributes","dataKey","dataTypeKey","parsed","jsonified","safeReplacer","RegExp","Set","Map","forEach","v","k","TaskExecutor","_tracingSDK","tracingSDK","_tracer","_consoleInterceptor","consoleInterceptor","projectConfig","_importedConfig","importedConfig","_handleErrorFn","handleErrorFn","execute","attemptMessage","originalPacket","intercept","console","parsedPayload","initOutput","payloadPacket","stringifiedOutput","finalOutput","stringifyError","runError","handleErrorResult","handleErrorError","kind","CONSUMER","extractContext","init","runFn","fns","middlewareFn","middleware","initFn","onSuccess","onSuccessFn","onFailure","onFailureFn","onStartFn","cleanupFn","cleanup","retriesConfig","rateLimitError","handleError","retryDelayInMs","retryAt","skipRetrying","PreciseDate","PreciseWallClock","_origin","clockTime","origin","hrtime","preciseDate","preciseNow","elapsedHrTime","elapsedNanoseconds","BigInt","getFullTime","dateStruct","toStruct","nanos","reset","SeverityNumber","iconStringForSeverity","severityNumber","UNSPECIFIED","TRACE","TRACE2","TRACE3","TRACE4","DEBUG2","DEBUG3","DEBUG4","INFO2","INFO3","INFO4","WARN2","WARN3","WARN4","ERROR2","ERROR3","ERROR4","FATAL","FATAL2","FATAL3","FATAL4","SimpleClock","nowStruct","SIMPLE_CLOCK","ClockAPI","setGlobalClock","clock","logLevels","OtelTaskLogger","_level","indexOf","debug","properties","log","info","warn","trace","fn","severityText","safeJsonProcess","logger","emit","jsonErrorReplacer","util","_getTimestampInHrTime","getTimestampInHrTime_fn","ConsoleInterceptor","sendToStdIO","originalConsole","args","format","write","stdout","tryParseJSON","getLogMessage","fallback","StandardTaskCatalog","_taskMetadata","_taskFunctions","_taskFileMetadata","registerTaskMetadata","updateTaskMetadata","updates","existingMetadata","existingFunctions","registerTaskFileMetadata","getAllTaskMetadata","fileMetadata","push","getTaskMetadata","getTask","taskExists","has","NoopUsageManager","start","sample","cpuTime","wallTime","stop","measurement","pauseAsync","cb","NOOP_USAGE_MANAGER","UsageAPI","setGlobalUsageManager","manager","calculateDurationInMs","end","startSeconds","startNanoseconds","endSeconds","endNanoseconds","nanoseconds","_a","DevUsageMeasurement","_pauses","_endedAt","endedAt","totalPauses","values","reduce","total","pause","registerPause","pauseId","DevUsageManager","_currentMeasurements","_firstMeasurement","generateRandomString","delete","pauseStart","pauseEnd","characters","charactersLength","charAt","setInterval","UsageClient","jwt","sendUsageEvent","event","accept","authorization","renewedJwt","ProdUsageManager","delegageUsageManager","_usageClient","isReportingEnabled","_abortController","abort","_measurement","heartbeatIntervalMs","AbortController","signal","aborted","cpuTimeSinceLastSample","_lastSample"],"mappings":"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","sourcesContent":["import { SpanKind } from \"@opentelemetry/api\";\nimport { ConsoleInterceptor } from \"../consoleInterceptor\";\nimport { parseError, sanitizeError } from \"../errors\";\nimport { TracingSDK, recordSpanException } from \"../otel\";\nimport {\n BackgroundWorkerProperties,\n Config,\n TaskRunContext,\n TaskRunErrorCodes,\n TaskRunExecution,\n TaskRunExecutionResult,\n TaskRunExecutionRetry,\n} from \"../schemas\";\nimport { SemanticInternalAttributes } from \"../semanticInternalAttributes\";\nimport { taskContext } from \"../task-context-api\";\nimport { TriggerTracer } from \"../tracer\";\nimport { HandleErrorFunction, ProjectConfig, TaskMetadataWithFunctions } from \"../types\";\nimport {\n conditionallyExportPacket,\n conditionallyImportPacket,\n createPacketAttributes,\n parsePacket,\n stringifyIO,\n} from \"../utils/ioSerialization\";\nimport { calculateNextRetryDelay } from \"../utils/retries\";\nimport { accessoryAttributes } from \"../utils/styleAttributes\";\nimport { UsageMeasurement } from \"../usage/types\";\nimport { ApiError, RateLimitError } from \"../apiClient/errors\";\n\nexport type TaskExecutorOptions = {\n tracingSDK: TracingSDK;\n tracer: TriggerTracer;\n consoleInterceptor: ConsoleInterceptor;\n projectConfig: Config;\n importedConfig: ProjectConfig | undefined;\n handleErrorFn: HandleErrorFunction | undefined;\n};\n\nexport class TaskExecutor {\n private _tracingSDK: TracingSDK;\n private _tracer: TriggerTracer;\n private _consoleInterceptor: ConsoleInterceptor;\n private _config: Config;\n private _importedConfig: ProjectConfig | undefined;\n private _handleErrorFn: HandleErrorFunction | undefined;\n\n constructor(\n public task: TaskMetadataWithFunctions,\n options: TaskExecutorOptions\n ) {\n this._tracingSDK = options.tracingSDK;\n this._tracer = options.tracer;\n this._consoleInterceptor = options.consoleInterceptor;\n this._config = options.projectConfig;\n this._importedConfig = options.importedConfig;\n this._handleErrorFn = options.handleErrorFn;\n }\n\n async execute(\n execution: TaskRunExecution,\n worker: BackgroundWorkerProperties,\n traceContext: Record<string, unknown>,\n usage: UsageMeasurement\n ): Promise<{ result: TaskRunExecutionResult }> {\n const ctx = TaskRunContext.parse(execution);\n const attemptMessage = `Attempt ${execution.attempt.number}`;\n\n const originalPacket = {\n data: execution.run.payload,\n dataType: execution.run.payloadType,\n };\n\n taskContext.setGlobalTaskContext({\n ctx,\n worker,\n });\n\n this._tracingSDK.asyncResourceDetector.resolveWithAttributes({\n ...taskContext.attributes,\n [SemanticInternalAttributes.SDK_VERSION]: this.task.packageVersion,\n [SemanticInternalAttributes.SDK_LANGUAGE]: \"typescript\",\n });\n\n const result = await this._tracer.startActiveSpan(\n attemptMessage,\n async (span) => {\n return await this._consoleInterceptor.intercept(console, async () => {\n let parsedPayload: any;\n let initOutput: any;\n\n try {\n const payloadPacket = await conditionallyImportPacket(originalPacket, this._tracer);\n\n parsedPayload = await parsePacket(payloadPacket);\n\n if (execution.attempt.number === 1) {\n await this.#callOnStartFunctions(parsedPayload, ctx);\n }\n\n initOutput = await this.#callInitFunctions(parsedPayload, ctx);\n\n const output = await this.#callRun(parsedPayload, ctx, initOutput);\n\n await this.#callOnSuccessFunctions(parsedPayload, output, ctx, initOutput);\n\n try {\n const stringifiedOutput = await stringifyIO(output);\n\n const finalOutput = await conditionallyExportPacket(\n stringifiedOutput,\n `${execution.attempt.id}/output`,\n this._tracer\n );\n\n const attributes = await createPacketAttributes(\n finalOutput,\n SemanticInternalAttributes.OUTPUT,\n SemanticInternalAttributes.OUTPUT_TYPE\n );\n\n if (attributes) {\n span.setAttributes(attributes);\n }\n\n return {\n ok: true,\n id: execution.run.id,\n output: finalOutput.data,\n outputType: finalOutput.dataType,\n } satisfies TaskRunExecutionResult;\n } catch (stringifyError) {\n recordSpanException(span, stringifyError);\n\n return {\n ok: false,\n id: execution.run.id,\n error: {\n type: \"INTERNAL_ERROR\",\n code: TaskRunErrorCodes.TASK_OUTPUT_ERROR,\n message:\n stringifyError instanceof Error\n ? stringifyError.message\n : typeof stringifyError === \"string\"\n ? stringifyError\n : undefined,\n },\n } satisfies TaskRunExecutionResult;\n }\n } catch (runError) {\n try {\n const handleErrorResult = await this.#handleError(\n execution,\n runError,\n parsedPayload,\n ctx\n );\n\n recordSpanException(span, handleErrorResult.error ?? runError);\n\n if (handleErrorResult.status !== \"retry\") {\n await this.#callOnFailureFunctions(\n parsedPayload,\n handleErrorResult.error ?? runError,\n ctx,\n initOutput\n );\n }\n\n return {\n id: execution.run.id,\n ok: false,\n error: sanitizeError(\n handleErrorResult.error\n ? parseError(handleErrorResult.error)\n : parseError(runError)\n ),\n retry: handleErrorResult.status === \"retry\" ? handleErrorResult.retry : undefined,\n skippedRetrying: handleErrorResult.status === \"skipped\",\n } satisfies TaskRunExecutionResult;\n } catch (handleErrorError) {\n recordSpanException(span, handleErrorError);\n\n return {\n ok: false,\n id: execution.run.id,\n error: {\n type: \"INTERNAL_ERROR\",\n code: TaskRunErrorCodes.HANDLE_ERROR_ERROR,\n message:\n handleErrorError instanceof Error\n ? handleErrorError.message\n : typeof handleErrorError === \"string\"\n ? handleErrorError\n : undefined,\n },\n } satisfies TaskRunExecutionResult;\n }\n } finally {\n await this.#callTaskCleanup(parsedPayload, ctx, initOutput);\n }\n });\n },\n {\n kind: SpanKind.CONSUMER,\n attributes: {\n [SemanticInternalAttributes.STYLE_ICON]: \"attempt\",\n ...accessoryAttributes({\n items: [\n {\n text: ctx.task.filePath,\n },\n {\n text: `${ctx.task.exportName}.run()`,\n },\n ],\n style: \"codepath\",\n }),\n },\n },\n this._tracer.extractContext(traceContext)\n );\n\n return { result };\n }\n\n async #callRun(payload: unknown, ctx: TaskRunContext, init: unknown) {\n const runFn = this.task.fns.run;\n const middlewareFn = this.task.fns.middleware;\n\n if (!runFn) {\n throw new Error(\"Task does not have a run function\");\n }\n\n if (!middlewareFn) {\n return runFn(payload, { ctx, init });\n }\n\n return middlewareFn(payload, { ctx, next: async () => runFn(payload, { ctx, init }) });\n }\n\n async #callInitFunctions(payload: unknown, ctx: TaskRunContext) {\n await this.#callConfigInit(payload, ctx);\n\n const initFn = this.task.fns.init;\n\n if (!initFn) {\n return {};\n }\n\n return this._tracer.startActiveSpan(\n \"init\",\n async (span) => {\n return await initFn(payload, { ctx });\n },\n {\n attributes: {\n [SemanticInternalAttributes.STYLE_ICON]: \"function\",\n },\n }\n );\n }\n\n async #callConfigInit(payload: unknown, ctx: TaskRunContext) {\n const initFn = this._importedConfig?.init;\n\n if (!initFn) {\n return {};\n }\n\n return this._tracer.startActiveSpan(\n \"config.init\",\n async (span) => {\n return await initFn(payload, { ctx });\n },\n {\n attributes: {\n [SemanticInternalAttributes.STYLE_ICON]: \"function\",\n },\n }\n );\n }\n\n async #callOnSuccessFunctions(\n payload: unknown,\n output: any,\n ctx: TaskRunContext,\n initOutput: any\n ) {\n await this.#callOnSuccessFunction(\n this.task.fns.onSuccess,\n \"task.onSuccess\",\n payload,\n output,\n ctx,\n initOutput\n );\n\n await this.#callOnSuccessFunction(\n this._importedConfig?.onSuccess,\n \"config.onSuccess\",\n payload,\n output,\n ctx,\n initOutput\n );\n }\n\n async #callOnSuccessFunction(\n onSuccessFn: TaskMetadataWithFunctions[\"fns\"][\"onSuccess\"],\n name: string,\n payload: unknown,\n output: any,\n ctx: TaskRunContext,\n initOutput: any\n ) {\n if (!onSuccessFn) {\n return;\n }\n\n try {\n await this._tracer.startActiveSpan(\n name,\n async (span) => {\n return await onSuccessFn(payload, output, { ctx, init: initOutput });\n },\n {\n attributes: {\n [SemanticInternalAttributes.STYLE_ICON]: \"function\",\n },\n }\n );\n } catch {\n // Ignore errors from onSuccess functions\n }\n }\n\n async #callOnFailureFunctions(\n payload: unknown,\n error: unknown,\n ctx: TaskRunContext,\n initOutput: any\n ) {\n await this.#callOnFailureFunction(\n this.task.fns.onFailure,\n \"task.onFailure\",\n payload,\n error,\n ctx,\n initOutput\n );\n\n await this.#callOnFailureFunction(\n this._importedConfig?.onFailure,\n \"config.onFailure\",\n payload,\n error,\n ctx,\n initOutput\n );\n }\n\n async #callOnFailureFunction(\n onFailureFn: TaskMetadataWithFunctions[\"fns\"][\"onFailure\"],\n name: string,\n payload: unknown,\n error: unknown,\n ctx: TaskRunContext,\n initOutput: any\n ) {\n if (!onFailureFn) {\n return;\n }\n\n try {\n return await this._tracer.startActiveSpan(\n name,\n async (span) => {\n return await onFailureFn(payload, error, { ctx, init: initOutput });\n },\n {\n attributes: {\n [SemanticInternalAttributes.STYLE_ICON]: \"function\",\n },\n }\n );\n } catch (e) {\n // Ignore errors from onFailure functions\n }\n }\n\n async #callOnStartFunctions(payload: unknown, ctx: TaskRunContext) {\n await this.#callOnStartFunction(\n this._importedConfig?.onStart,\n \"config.onStart\",\n payload,\n ctx,\n {}\n );\n\n await this.#callOnStartFunction(this.task.fns.onStart, \"task.onStart\", payload, ctx, {});\n }\n\n async #callOnStartFunction(\n onStartFn: TaskMetadataWithFunctions[\"fns\"][\"onStart\"],\n name: string,\n payload: unknown,\n ctx: TaskRunContext,\n initOutput: any\n ) {\n if (!onStartFn) {\n return;\n }\n\n try {\n await this._tracer.startActiveSpan(\n name,\n async (span) => {\n return await onStartFn(payload, { ctx });\n },\n {\n attributes: {\n [SemanticInternalAttributes.STYLE_ICON]: \"function\",\n },\n }\n );\n } catch {\n // Ignore errors from onStart functions\n }\n }\n\n async #callTaskCleanup(payload: unknown, ctx: TaskRunContext, init: unknown) {\n const cleanupFn = this.task.fns.cleanup;\n\n if (!cleanupFn) {\n return;\n }\n\n return this._tracer.startActiveSpan(\"cleanup\", async (span) => {\n return await cleanupFn(payload, { ctx, init });\n });\n }\n\n async #handleError(\n execution: TaskRunExecution,\n error: unknown,\n payload: any,\n ctx: TaskRunContext\n ): Promise<\n | { status: \"retry\"; retry: TaskRunExecutionRetry; error?: unknown }\n | { status: \"skipped\"; error?: unknown } // skipped is different than noop, it means that the task was skipped from retrying, instead of just not retrying\n | { status: \"noop\"; error?: unknown }\n > {\n const retriesConfig = this._importedConfig?.retries ?? this._config.retries;\n\n const retry = this.task.retry ?? retriesConfig?.default;\n\n if (!retry) {\n return { status: \"noop\" };\n }\n\n if (error instanceof Error && error.name === \"AbortTaskRunError\") {\n return { status: \"skipped\" };\n }\n\n if (execution.run.maxAttempts) {\n retry.maxAttempts = Math.max(execution.run.maxAttempts, 1);\n }\n\n let delay = calculateNextRetryDelay(retry, execution.attempt.number);\n\n if (\n delay &&\n error instanceof Error &&\n error.name === \"TriggerApiError\" &&\n (error as ApiError).status === 429\n ) {\n const rateLimitError = error as RateLimitError;\n\n delay = rateLimitError.millisecondsUntilReset;\n }\n\n if (\n execution.environment.type === \"DEVELOPMENT\" &&\n typeof retriesConfig?.enabledInDev === \"boolean\" &&\n !retriesConfig.enabledInDev\n ) {\n return { status: \"skipped\" };\n }\n\n return this._tracer.startActiveSpan(\n \"handleError()\",\n async (span) => {\n const handleErrorResult = this.task.fns.handleError\n ? await this.task.fns.handleError(payload, error, {\n ctx,\n retry,\n retryDelayInMs: delay,\n retryAt: delay ? new Date(Date.now() + delay) : undefined,\n })\n : this._importedConfig\n ? await this._handleErrorFn?.(payload, error, {\n ctx,\n retry,\n retryDelayInMs: delay,\n retryAt: delay ? new Date(Date.now() + delay) : undefined,\n })\n : undefined;\n\n // If handleErrorResult\n if (!handleErrorResult) {\n return typeof delay === \"undefined\"\n ? { status: \"noop\" }\n : { status: \"retry\", retry: { timestamp: Date.now() + delay, delay } };\n }\n\n if (handleErrorResult.skipRetrying) {\n return { status: \"skipped\", error: handleErrorResult.error };\n }\n\n if (typeof handleErrorResult.retryAt !== \"undefined\") {\n return {\n status: \"retry\",\n retry: {\n timestamp: handleErrorResult.retryAt.getTime(),\n delay: handleErrorResult.retryAt.getTime() - Date.now(),\n },\n error: handleErrorResult.error,\n };\n }\n\n if (typeof handleErrorResult.retryDelayInMs === \"number\") {\n return {\n status: \"retry\",\n retry: {\n timestamp: Date.now() + handleErrorResult.retryDelayInMs,\n delay: handleErrorResult.retryDelayInMs,\n },\n error: handleErrorResult.error,\n };\n }\n\n if (handleErrorResult.retry && typeof handleErrorResult.retry === \"object\") {\n const delay = calculateNextRetryDelay(handleErrorResult.retry, execution.attempt.number);\n\n return typeof delay === \"undefined\"\n ? { status: \"noop\", error: handleErrorResult.error }\n : {\n status: \"retry\",\n retry: { timestamp: Date.now() + delay, delay },\n error: handleErrorResult.error,\n };\n }\n\n return { status: \"noop\", error: handleErrorResult.error };\n },\n {\n attributes: {\n [SemanticInternalAttributes.STYLE_ICON]: \"exclamation-circle\",\n },\n }\n );\n }\n}\n","import { z } from \"zod\";\nimport { TaskRunError } from \"./schemas/common\";\n\nexport class AbortTaskRunError extends Error {\n constructor(message: string) {\n super(message);\n this.name = \"AbortTaskRunError\";\n }\n}\n\nexport function parseError(error: unknown): TaskRunError {\n if (error instanceof Error) {\n return {\n type: \"BUILT_IN_ERROR\",\n name: error.name,\n message: error.message,\n stackTrace: error.stack ?? \"\",\n };\n }\n\n if (typeof error === \"string\") {\n return {\n type: \"STRING_ERROR\",\n raw: error,\n };\n }\n\n try {\n return {\n type: \"CUSTOM_ERROR\",\n raw: JSON.stringify(error),\n };\n } catch (e) {\n return {\n type: \"CUSTOM_ERROR\",\n raw: String(error),\n };\n }\n}\n\nexport function createErrorTaskError(error: TaskRunError): any {\n switch (error.type) {\n case \"BUILT_IN_ERROR\": {\n const e = new Error(error.message);\n\n e.name = error.name;\n e.stack = error.stackTrace;\n\n return e;\n }\n case \"STRING_ERROR\": {\n return error.raw;\n }\n case \"CUSTOM_ERROR\": {\n return JSON.parse(error.raw);\n }\n case \"INTERNAL_ERROR\": {\n return new Error(`trigger.dev internal error (${error.code})`);\n }\n }\n}\n\nexport const SerializedError = z.object({\n message: z.string(),\n name: z.string().optional(),\n stackTrace: z.string().optional(),\n});\n\nexport type SerializedError = z.infer<typeof SerializedError>;\n\nexport function createJsonErrorObject(error: TaskRunError): SerializedError {\n switch (error.type) {\n case \"BUILT_IN_ERROR\": {\n return {\n name: error.name,\n message: error.message,\n stackTrace: error.stackTrace,\n };\n }\n case \"STRING_ERROR\": {\n return {\n message: error.raw,\n };\n }\n case \"CUSTOM_ERROR\": {\n return {\n message: error.raw,\n };\n }\n case \"INTERNAL_ERROR\": {\n return {\n message: `trigger.dev internal error (${error.code})`,\n };\n }\n }\n}\n\n// Removes any null characters from the error message\nexport function sanitizeError(error: TaskRunError): TaskRunError {\n switch (error.type) {\n case \"BUILT_IN_ERROR\": {\n return {\n type: \"BUILT_IN_ERROR\",\n message: error.message?.replace(/\\0/g, \"\"),\n name: error.name?.replace(/\\0/g, \"\"),\n stackTrace: error.stackTrace?.replace(/\\0/g, \"\"),\n };\n }\n case \"STRING_ERROR\": {\n return {\n type: \"STRING_ERROR\",\n raw: error.raw.replace(/\\0/g, \"\"),\n };\n }\n case \"CUSTOM_ERROR\": {\n return {\n type: \"CUSTOM_ERROR\",\n raw: error.raw.replace(/\\0/g, \"\"),\n };\n }\n case \"INTERNAL_ERROR\": {\n return {\n type: \"INTERNAL_ERROR\",\n code: error.code,\n message: error.message?.replace(/\\0/g, \"\"),\n stackTrace: error.stackTrace?.replace(/\\0/g, \"\"),\n };\n }\n }\n}\n\nexport function correctErrorStackTrace(\n stackTrace: string,\n projectDir?: string,\n options?: { removeFirstLine?: boolean; isDev?: boolean }\n) {\n const [errorLine, ...traceLines] = stackTrace.split(\"\\n\");\n\n return [\n options?.removeFirstLine ? undefined : errorLine,\n ...traceLines.map((line) => correctStackTraceLine(line, projectDir, options?.isDev)),\n ]\n .filter(Boolean)\n .join(\"\\n\");\n}\n\nconst LINES_TO_IGNORE = [\n /ConsoleInterceptor/,\n /TriggerTracer/,\n /TaskExecutor/,\n /EXECUTE_TASK_RUN/,\n /@trigger.dev\\/core/,\n /packages\\/core\\/src\\/v3/,\n /safeJsonProcess/,\n /__entryPoint.ts/,\n /ZodIpc/,\n /startActiveSpan/,\n /processTicksAndRejections/,\n];\n\nfunction correctStackTraceLine(line: string, projectDir?: string, isDev?: boolean) {\n if (LINES_TO_IGNORE.some((regex) => regex.test(line))) {\n return;\n }\n\n // Check to see if the path is inside the project directory\n if (isDev && projectDir && !line.includes(projectDir)) {\n return;\n }\n\n return line.trim();\n}\n\nexport function groupTaskMetadataIssuesByTask(tasks: any, issues: z.ZodIssue[]) {\n return issues.reduce(\n (acc, issue) => {\n if (issue.path.length === 0) {\n return acc;\n }\n\n const taskIndex = issue.path[1];\n\n if (typeof taskIndex !== \"number\") {\n return acc;\n }\n\n const task = tasks[taskIndex];\n\n if (!task) {\n return acc;\n }\n\n const restOfPath = issue.path.slice(2);\n\n const taskId = task.id;\n const taskName = task.exportName;\n const filePath = task.filePath;\n\n const key = taskIndex;\n\n const existing = acc[key] ?? {\n id: taskId,\n exportName: taskName,\n filePath,\n issues: [] as Array<{ message: string; path?: string }>,\n };\n\n existing.issues.push({\n message: issue.message,\n path: restOfPath.length === 0 ? undefined : restOfPath.join(\".\"),\n });\n\n return {\n ...acc,\n [key]: existing,\n };\n },\n {} as Record<\n number,\n {\n id: any;\n exportName: string;\n filePath: string;\n issues: Array<{ message: string; path?: string }>;\n }\n >\n );\n}\n","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.54\",\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}","import { z } from \"zod\";\nimport { BackgroundWorkerMetadata, ImageDetailsMetadata } from \"./resources\";\nimport { QueueOptions } from \"./schemas\";\nimport { SerializedError } from \"../errors\";\n\nexport const WhoAmIResponseSchema = z.object({\n userId: z.string(),\n email: z.string().email(),\n dashboardUrl: z.string(),\n});\n\nexport type WhoAmIResponse = z.infer<typeof WhoAmIResponseSchema>;\n\nexport const GetProjectResponseBody = z.object({\n id: z.string(),\n externalRef: z.string(),\n name: z.string(),\n slug: z.string(),\n createdAt: z.coerce.date(),\n organization: z.object({\n id: z.string(),\n title: z.string(),\n slug: z.string(),\n createdAt: z.coerce.date(),\n }),\n});\n\nexport type GetProjectResponseBody = z.infer<typeof GetProjectResponseBody>;\n\nexport const GetProjectsResponseBody = z.array(GetProjectResponseBody);\n\nexport type GetProjectsResponseBody = z.infer<typeof GetProjectsResponseBody>;\n\nexport const GetProjectEnvResponse = z.object({\n apiKey: z.string(),\n name: z.string(),\n apiUrl: z.string(),\n});\n\nexport type GetProjectEnvResponse = z.infer<typeof GetProjectEnvResponse>;\n\nexport const CreateBackgroundWorkerRequestBody = z.object({\n localOnly: z.boolean(),\n metadata: BackgroundWorkerMetadata,\n supportsLazyAttempts: z.boolean().optional(),\n});\n\nexport type CreateBackgroundWorkerRequestBody = z.infer<typeof CreateBackgroundWorkerRequestBody>;\n\nexport const CreateBackgroundWorkerResponse = z.object({\n id: z.string(),\n version: z.string(),\n contentHash: z.string(),\n});\n\nexport type CreateBackgroundWorkerResponse = z.infer<typeof CreateBackgroundWorkerResponse>;\n\n//an array of 1, 2, or 3 strings\nconst RunTag = z.string().max(64, \"Tags must be less than 64 characters\");\nexport const RunTags = z.union([RunTag, RunTag.array()]);\n\nexport type RunTags = z.infer<typeof RunTags>;\n\nexport const TriggerTaskRequestBody = z.object({\n payload: z.any(),\n context: z.any(),\n options: z\n .object({\n dependentAttempt: z.string().optional(),\n dependentBatch: z.string().optional(),\n lockToVersion: z.string().optional(),\n queue: QueueOptions.optional(),\n concurrencyKey: z.string().optional(),\n idempotencyKey: z.string().optional(),\n test: z.boolean().optional(),\n payloadType: z.string().optional(),\n delay: z.string().or(z.coerce.date()).optional(),\n ttl: z.string().or(z.number().nonnegative().int()).optional(),\n tags: RunTags.optional(),\n maxAttempts: z.number().int().optional(),\n })\n .optional(),\n});\n\nexport type TriggerTaskRequestBody = z.infer<typeof TriggerTaskRequestBody>;\n\nexport const TriggerTaskResponse = z.object({\n id: z.string(),\n});\n\nexport type TriggerTaskResponse = z.infer<typeof TriggerTaskResponse>;\n\nexport const BatchTriggerTaskRequestBody = z.object({\n items: TriggerTaskRequestBody.array(),\n dependentAttempt: z.string().optional(),\n});\n\nexport type BatchTriggerTaskRequestBody = z.infer<typeof BatchTriggerTaskRequestBody>;\n\nexport const BatchTriggerTaskResponse = z.object({\n batchId: z.string(),\n runs: z.string().array(),\n});\n\nexport type BatchTriggerTaskResponse = z.infer<typeof BatchTriggerTaskResponse>;\n\nexport const GetBatchResponseBody = z.object({\n id: z.string(),\n items: z.array(\n z.object({\n id: z.string(),\n taskRunId: z.string(),\n status: z.enum([\"PENDING\", \"CANCELED\", \"COMPLETED\", \"FAILED\"]),\n })\n ),\n});\n\nexport type GetBatchResponseBody = z.infer<typeof GetBatchResponseBody>;\n\nexport const AddTagsRequestBody = z.object({\n tags: RunTags,\n});\n\nexport type AddTagsRequestBody = z.infer<typeof AddTagsRequestBody>;\n\nexport const RescheduleRunRequestBody = z.object({\n delay: z.string().or(z.coerce.date()),\n});\n\nexport type RescheduleRunRequestBody = z.infer<typeof RescheduleRunRequestBody>;\n\nexport const GetEnvironmentVariablesResponseBody = z.object({\n variables: z.record(z.string()),\n});\n\nexport type GetEnvironmentVariablesResponseBody = z.infer<\n typeof GetEnvironmentVariablesResponseBody\n>;\n\nexport const StartDeploymentIndexingRequestBody = z.object({\n imageReference: z.string(),\n selfHosted: z.boolean().optional(),\n});\n\nexport type StartDeploymentIndexingRequestBody = z.infer<typeof StartDeploymentIndexingRequestBody>;\n\nexport const StartDeploymentIndexingResponseBody = z.object({\n id: z.string(),\n contentHash: z.string(),\n});\n\nexport type StartDeploymentIndexingResponseBody = z.infer<\n typeof StartDeploymentIndexingResponseBody\n>;\n\nexport const ExternalBuildData = z.object({\n buildId: z.string(),\n buildToken: z.string(),\n projectId: z.string(),\n});\n\nexport type ExternalBuildData = z.infer<typeof ExternalBuildData>;\n\nexport const InitializeDeploymentResponseBody = z.object({\n id: z.string(),\n contentHash: z.string(),\n shortCode: z.string(),\n version: z.string(),\n imageTag: z.string(),\n externalBuildData: ExternalBuildData.optional().nullable(),\n registryHost: z.string().optional(),\n});\n\nexport type InitializeDeploymentResponseBody = z.infer<typeof InitializeDeploymentResponseBody>;\n\nexport const InitializeDeploymentRequestBody = z.object({\n contentHash: z.string(),\n userId: z.string().optional(),\n});\n\nexport type InitializeDeploymentRequestBody = z.infer<typeof InitializeDeploymentRequestBody>;\n\nexport const DeploymentErrorData = z.object({\n name: z.string(),\n message: z.string(),\n stack: z.string().optional(),\n stderr: z.string().optional(),\n});\n\nexport const GetDeploymentResponseBody = z.object({\n id: z.string(),\n status: z.enum([\n \"PENDING\",\n \"BUILDING\",\n \"DEPLOYING\",\n \"DEPLOYED\",\n \"FAILED\",\n \"CANCELED\",\n \"TIMED_OUT\",\n ]),\n contentHash: z.string(),\n shortCode: z.string(),\n version: z.string(),\n imageReference: z.string().optional(),\n errorData: DeploymentErrorData.optional().nullable(),\n worker: z\n .object({\n id: z.string(),\n version: z.string(),\n tasks: z.array(\n z.object({\n id: z.string(),\n slug: z.string(),\n filePath: z.string(),\n exportName: z.string(),\n })\n ),\n })\n .optional(),\n});\n\nexport type GetDeploymentResponseBody = z.infer<typeof GetDeploymentResponseBody>;\n\nexport const CreateUploadPayloadUrlResponseBody = z.object({\n presignedUrl: z.string(),\n});\n\nexport type CreateUploadPayloadUrlResponseBody = z.infer<typeof CreateUploadPayloadUrlResponseBody>;\n\nexport const ReplayRunResponse = z.object({\n id: z.string(),\n});\n\nexport type ReplayRunResponse = z.infer<typeof ReplayRunResponse>;\n\nexport const CanceledRunResponse = z.object({\n id: z.string(),\n});\n\nexport type CanceledRunResponse = z.infer<typeof CanceledRunResponse>;\n\nexport const ScheduleType = z.union([z.literal(\"DECLARATIVE\"), z.literal(\"IMPERATIVE\")]);\n\nexport const ScheduledTaskPayload = z.object({\n /** The schedule id associated with this run (you can have many schedules for the same task).\n You can use this to remove the schedule, update it, etc */\n scheduleId: z.string(),\n /** The type of schedule – `\"DECLARATIVE\"` or `\"IMPERATIVE\"`.\n *\n * **DECLARATIVE** – defined inline on your `schedules.task` using the `cron` property. They can only be created, updated or deleted by modifying the `cron` property on your task.\n *\n * **IMPERATIVE** – created using the `schedules.create` functions or in the dashboard.\n */\n type: ScheduleType,\n /** When the task was scheduled to run.\n * Note this will be slightly different from `new Date()` because it takes a few ms to run the task.\n * \n * This date is UTC. To output it as a string with a timezone you would do this: \n * ```ts\n * const formatted = payload.timestamp.toLocaleString(\"en-US\", {\n timeZone: payload.timezone,\n });\n ``` */\n timestamp: z.date(),\n /** When the task was last run (it has been).\n This can be undefined if it's never been run. This date is UTC. */\n lastTimestamp: z.date().optional(),\n /** You can optionally provide an external id when creating the schedule.\n Usually you would use a userId or some other unique identifier.\n This defaults to undefined if you didn't provide one. */\n externalId: z.string().optional(),\n /** The IANA timezone the schedule is set to. The default is UTC.\n * You can see the full list of supported timezones here: https://cloud.trigger.dev/timezones\n */\n timezone: z.string(),\n /** The next 5 dates this task is scheduled to run */\n upcoming: z.array(z.date()),\n});\n\nexport type ScheduledTaskPayload = z.infer<typeof ScheduledTaskPayload>;\n\nexport const CreateScheduleOptions = z.object({\n /** The id of the task you want to attach to. */\n task: z.string(),\n /** The schedule in CRON format.\n * \n * ```txt\n* * * * * *\n┬ ┬ ┬ ┬ ┬\n│ │ │ │ |\n│ │ │ │ └ day of week (0 - 7, 1L - 7L) (0 or 7 is Sun)\n│ │ │ └───── month (1 - 12)\n│ │ └────────── day of month (1 - 31, L)\n│ └─────────────── hour (0 - 23)\n└──────────────────── minute (0 - 59)\n * ```\n\n\"L\" means the last. In the \"day of week\" field, 1L means the last Monday of the month. In the day of month field, L means the last day of the month.\n\n */\n cron: z.string(),\n /** You can only create one schedule with this key. If you use it twice, the second call will update the schedule.\n *\n * This is required to prevent you from creating duplicate schedules. */\n deduplicationKey: z.string(),\n /** Optionally, you can specify your own IDs (like a user ID) and then use it inside the run function of your task.\n *\n * This allows you to have per-user CRON tasks.\n */\n externalId: z.string().optional(),\n /** Optionally, you can specify a timezone in the IANA format. If unset it will use UTC.\n * If specified then the CRON will be evaluated in that timezone and will respect daylight savings.\n *\n * If you set the CRON to `0 0 * * *` and the timezone to `America/New_York` then the task will run at midnight in New York time, no matter whether it's daylight savings or not.\n *\n * You can see the full list of supported timezones here: https://cloud.trigger.dev/timezones\n *\n * @example \"America/New_York\", \"Europe/London\", \"Asia/Tokyo\", \"Africa/Cairo\"\n *\n */\n timezone: z.string().optional(),\n});\n\nexport type CreateScheduleOptions = z.infer<typeof CreateScheduleOptions>;\n\nexport const UpdateScheduleOptions = CreateScheduleOptions.omit({ deduplicationKey: true });\n\nexport type UpdateScheduleOptions = z.infer<typeof UpdateScheduleOptions>;\n\nexport const ScheduleGenerator = z.object({\n type: z.literal(\"CRON\"),\n expression: z.string(),\n description: z.string(),\n});\n\nexport type ScheduleGenerator = z.infer<typeof ScheduleGenerator>;\n\nexport const ScheduleObject = z.object({\n id: z.string(),\n type: ScheduleType,\n task: z.string(),\n active: z.boolean(),\n deduplicationKey: z.string().nullish(),\n externalId: z.string().nullish(),\n generator: ScheduleGenerator,\n timezone: z.string(),\n nextRun: z.coerce.date().nullish(),\n environments: z.array(\n z.object({\n id: z.string(),\n type: z.string(),\n userName: z.string().nullish(),\n })\n ),\n});\n\nexport type ScheduleObject = z.infer<typeof ScheduleObject>;\n\nexport const DeletedScheduleObject = z.object({\n id: z.string(),\n});\n\nexport type DeletedScheduleObject = z.infer<typeof DeletedScheduleObject>;\n\nexport const ListSchedulesResult = z.object({\n data: z.array(ScheduleObject),\n pagination: z.object({\n currentPage: z.number(),\n totalPages: z.number(),\n count: z.number(),\n }),\n});\n\nexport type ListSchedulesResult = z.infer<typeof ListSchedulesResult>;\n\nexport const ListScheduleOptions = z.object({\n page: z.number().optional(),\n perPage: z.number().optional(),\n});\n\nexport type ListScheduleOptions = z.infer<typeof ListScheduleOptions>;\n\nexport const TimezonesResult = z.object({\n timezones: z.array(z.string()),\n});\n\nexport type TimezonesResult = z.infer<typeof TimezonesResult>;\n\nexport const RunStatus = z.enum([\n /// Task hasn't been deployed yet but is waiting to be executed\n \"WAITING_FOR_DEPLOY\",\n /// Task is waiting to be executed by a worker\n \"QUEUED\",\n /// Task is currently being executed by a worker\n \"EXECUTING\",\n /// Task has failed and is waiting to be retried\n \"REATTEMPTING\",\n /// Task has been paused by the system, and will be resumed by the system\n \"FROZEN\",\n /// Task has been completed successfully\n \"COMPLETED\",\n /// Task has been canceled by the user\n \"CANCELED\",\n /// Task has been completed with errors\n \"FAILED\",\n /// Task has crashed and won't be retried, most likely the worker ran out of resources, e.g. memory or storage\n \"CRASHED\",\n /// Task was interrupted during execution, mostly this happens in development environments\n \"INTERRUPTED\",\n /// Task has failed to complete, due to an error in the system\n \"SYSTEM_FAILURE\",\n /// Task has been scheduled to run at a specific time\n \"DELAYED\",\n /// Task has expired and won't be executed\n \"EXPIRED\",\n]);\n\nexport type RunStatus = z.infer<typeof RunStatus>;\n\nexport const AttemptStatus = z.enum([\n \"PENDING\",\n \"EXECUTING\",\n \"PAUSED\",\n \"COMPLETED\",\n \"FAILED\",\n \"CANCELED\",\n]);\n\nexport type AttemptStatus = z.infer<typeof AttemptStatus>;\n\nexport const RunEnvironmentDetails = z.object({\n id: z.string(),\n name: z.string(),\n user: z.string().optional(),\n});\n\nexport type RunEnvironmentDetails = z.infer<typeof RunEnvironmentDetails>;\n\nexport const RunScheduleDetails = z.object({\n id: z.string(),\n externalId: z.string().optional(),\n deduplicationKey: z.string().optional(),\n generator: ScheduleGenerator,\n});\n\nexport type RunScheduleDetails = z.infer<typeof RunScheduleDetails>;\n\nconst CommonRunFields = {\n id: z.string(),\n status: RunStatus,\n taskIdentifier: z.string(),\n idempotencyKey: z.string().optional(),\n version: z.string().optional(),\n isQueued: z.boolean(),\n isExecuting: z.boolean(),\n isCompleted: z.boolean(),\n isSuccess: z.boolean(),\n isFailed: z.boolean(),\n isCancelled: z.boolean(),\n isTest: z.boolean(),\n createdAt: z.coerce.date(),\n updatedAt: z.coerce.date(),\n startedAt: z.coerce.date().optional(),\n finishedAt: z.coerce.date().optional(),\n delayedUntil: z.coerce.date().optional(),\n ttl: z.string().optional(),\n expiredAt: z.coerce.date().optional(),\n tags: z.string().array(),\n costInCents: z.number(),\n baseCostInCents: z.number(),\n durationMs: z.number(),\n};\n\nexport const RetrieveRunResponse = z.object({\n ...CommonRunFields,\n payload: z.any().optional(),\n payloadPresignedUrl: z.string().optional(),\n output: z.any().optional(),\n outputPresignedUrl: z.string().optional(),\n schedule: RunScheduleDetails.optional(),\n attempts: z.array(\n z\n .object({\n id: z.string(),\n status: AttemptStatus,\n createdAt: z.coerce.date(),\n updatedAt: z.coerce.date(),\n startedAt: z.coerce.date().optional(),\n completedAt: z.coerce.date().optional(),\n error: SerializedError.optional(),\n })\n .optional()\n ),\n});\n\nexport type RetrieveRunResponse = z.infer<typeof RetrieveRunResponse>;\n\nexport const ListRunResponseItem = z.object({\n ...CommonRunFields,\n env: RunEnvironmentDetails,\n});\n\nexport type ListRunResponseItem = z.infer<typeof ListRunResponseItem>;\n\nexport const ListRunResponse = z.object({\n data: z.array(ListRunResponseItem),\n pagination: z.object({\n next: z.string().optional(),\n previous: z.string().optional(),\n }),\n});\n\nexport type ListRunResponse = z.infer<typeof ListRunResponse>;\n\nexport const CreateEnvironmentVariableRequestBody = z.object({\n name: z.string(),\n value: z.string(),\n});\n\nexport type CreateEnvironmentVariableRequestBody = z.infer<\n typeof CreateEnvironmentVariableRequestBody\n>;\n\nexport const UpdateEnvironmentVariableRequestBody = z.object({\n value: z.string(),\n});\n\nexport type UpdateEnvironmentVariableRequestBody = z.infer<\n typeof UpdateEnvironmentVariableRequestBody\n>;\n\nexport const ImportEnvironmentVariablesRequestBody = z.object({\n variables: z.record(z.string()),\n override: z.boolean().optional(),\n});\n\nexport type ImportEnvironmentVariablesRequestBody = z.infer<\n typeof ImportEnvironmentVariablesRequestBody\n>;\n\nexport const EnvironmentVariableResponseBody = z.object({\n success: z.boolean(),\n});\n\nexport type EnvironmentVariableResponseBody = z.infer<typeof EnvironmentVariableResponseBody>;\n\nexport const EnvironmentVariableValue = z.object({\n value: z.string(),\n});\n\nexport type EnvironmentVariableValue = z.infer<typeof EnvironmentVariableValue>;\n\nexport const EnvironmentVariable = z.object({\n name: z.string(),\n value: z.string(),\n});\n\nexport const EnvironmentVariables = z.array(EnvironmentVariable);\n\nexport type EnvironmentVariables = z.infer<typeof EnvironmentVariables>;\n","import { z } from \"zod\";\nimport { QueueOptions, RetryOptions, ScheduleMetadata } from \"./schemas\";\nimport { MachineConfig } from \"./common\";\n\nexport const TaskResource = z.object({\n id: z.string(),\n filePath: z.string(),\n exportName: z.string(),\n queue: QueueOptions.optional(),\n retry: RetryOptions.optional(),\n machine: MachineConfig.optional(),\n triggerSource: z.string().optional(),\n schedule: ScheduleMetadata.optional(),\n});\n\nexport type TaskResource = z.infer<typeof TaskResource>;\n\nexport const BackgroundWorkerMetadata = z.object({\n packageVersion: z.string(),\n contentHash: z.string(),\n cliPackageVersion: z.string().optional(),\n tasks: z.array(TaskResource),\n});\n\nexport type BackgroundWorkerMetadata = z.infer<typeof BackgroundWorkerMetadata>;\n\nexport const ImageDetailsMetadata = z.object({\n contentHash: z.string(),\n imageTag: z.string(),\n});\n\nexport type ImageDetailsMetadata = z.infer<typeof ImageDetailsMetadata>;\n","import { z } from \"zod\";\nimport { RequireKeys } from \"../types\";\nimport { MachineConfig, MachinePreset, TaskRunExecution } from \"./common\";\n\n/*\n WARNING: Never import anything from ./messages here. If it's needed in both, put it here instead.\n*/\nexport const EnvironmentType = z.enum([\"PRODUCTION\", \"STAGING\", \"DEVELOPMENT\", \"PREVIEW\"]);\nexport type EnvironmentType = z.infer<typeof EnvironmentType>;\n\nexport const TaskRunExecutionPayload = z.object({\n execution: TaskRunExecution,\n traceContext: z.record(z.unknown()),\n environment: z.record(z.string()).optional(),\n});\n\nexport type TaskRunExecutionPayload = z.infer<typeof TaskRunExecutionPayload>;\n\n// **IMPORTANT NOTE**: If you change this schema, make sure it is backwards compatible with the previous version as this also used when a worker signals to the coordinator that a TaskRun is complete.\n// Strategies for not breaking backwards compatibility:\n// 1. Add new fields as optional\n// 2. If a field is required, add a default value\nexport const ProdTaskRunExecution = TaskRunExecution.extend({\n worker: z.object({\n id: z.string(),\n contentHash: z.string(),\n version: z.string(),\n }),\n machine: MachinePreset.default({ name: \"small-1x\", cpu: 1, memory: 1, centsPerMs: 0 }),\n});\n\nexport type ProdTaskRunExecution = z.infer<typeof ProdTaskRunExecution>;\n\nexport const ProdTaskRunExecutionPayload = z.object({\n execution: ProdTaskRunExecution,\n traceContext: z.record(z.unknown()),\n environment: z.record(z.string()).optional(),\n});\n\nexport type ProdTaskRunExecutionPayload = z.infer<typeof ProdTaskRunExecutionPayload>;\n\nexport const FixedWindowRateLimit = z.object({\n type: z.literal(\"fixed-window\"),\n limit: z.number(),\n window: z.union([\n z.object({\n seconds: z.number(),\n }),\n z.object({\n minutes: z.number(),\n }),\n z.object({\n hours: z.number(),\n }),\n ]),\n});\n\nexport const SlidingWindowRateLimit = z.object({\n type: z.literal(\"sliding-window\"),\n limit: z.number(),\n window: z.union([\n z.object({\n seconds: z.number(),\n }),\n z.object({\n minutes: z.number(),\n }),\n z.object({\n hours: z.number(),\n }),\n ]),\n});\n\nexport const RateLimitOptions = z.discriminatedUnion(\"type\", [\n FixedWindowRateLimit,\n SlidingWindowRateLimit,\n]);\n\nexport type RateLimitOptions = z.infer<typeof RateLimitOptions>;\n\nexport const RetryOptions = z.object({\n /** The number of attempts before giving up */\n maxAttempts: z.number().int().optional(),\n /** The exponential factor to use when calculating the next retry time.\n *\n * Each subsequent retry will be calculated as `previousTimeout * factor`\n */\n factor: z.number().optional(),\n /** The minimum time to wait before retrying */\n minTimeoutInMs: z.number().int().optional(),\n /** The maximum time to wait before retrying */\n maxTimeoutInMs: z.number().int().optional(),\n /** Randomize the timeout between retries.\n *\n * This can be useful to prevent the thundering herd problem where all retries happen at the same time.\n */\n randomize: z.boolean().optional(),\n});\n\nexport type RetryOptions = z.infer<typeof RetryOptions>;\n\nexport const QueueOptions = z.object({\n /** You can define a shared queue and then pass the name in to your task.\n * \n * @example\n * \n * ```ts\n * const myQueue = queue({\n name: \"my-queue\",\n concurrencyLimit: 1,\n });\n\n export const task1 = task({\n id: \"task-1\",\n queue: {\n name: \"my-queue\",\n },\n run: async (payload: { message: string }) => {\n // ...\n },\n });\n\n export const task2 = task({\n id: \"task-2\",\n queue: {\n name: \"my-queue\",\n },\n run: async (payload: { message: string }) => {\n // ...\n },\n });\n * ```\n */\n name: z.string().optional(),\n /** An optional property that specifies the maximum number of concurrent run executions.\n *\n * If this property is omitted, the task can potentially use up the full concurrency of an environment. */\n concurrencyLimit: z.number().int().min(0).max(1000).optional(),\n /** @deprecated This feature is coming soon */\n rateLimit: RateLimitOptions.optional(),\n});\n\nexport type QueueOptions = z.infer<typeof QueueOptions>;\n\nexport const ScheduleMetadata = z.object({\n cron: z.string(),\n timezone: z.string(),\n});\n\nexport const TaskMetadata = z.object({\n id: z.string(),\n packageVersion: z.string(),\n queue: QueueOptions.optional(),\n retry: RetryOptions.optional(),\n machine: MachineConfig.optional(),\n triggerSource: z.string().optional(),\n schedule: ScheduleMetadata.optional(),\n});\n\nexport type TaskMetadata = z.infer<typeof TaskMetadata>;\n\nexport const TaskFileMetadata = z.object({\n filePath: z.string(),\n exportName: z.string(),\n});\n\nexport type TaskFileMetadata = z.infer<typeof TaskFileMetadata>;\n\nexport const TaskMetadataWithFilePath = z.object({\n id: z.string(),\n packageVersion: z.string(),\n queue: QueueOptions.optional(),\n retry: RetryOptions.optional(),\n machine: MachineConfig.optional(),\n triggerSource: z.string().optional(),\n schedule: ScheduleMetadata.optional(),\n filePath: z.string(),\n exportName: z.string(),\n});\n\nexport type TaskMetadataWithFilePath = z.infer<typeof TaskMetadataWithFilePath>;\n\nexport const PostStartCauses = z.enum([\"index\", \"create\", \"restore\"]);\nexport type PostStartCauses = z.infer<typeof PostStartCauses>;\n\nexport const PreStopCauses = z.enum([\"terminate\"]);\nexport type PreStopCauses = z.infer<typeof PreStopCauses>;\n\nconst RegexSchema = z.custom<RegExp>((val) => {\n try {\n // Check to see if val is a regex\n return typeof (val as RegExp).test === \"function\";\n } catch {\n return false;\n }\n});\n\nexport const Config = z.object({\n project: z.string(),\n triggerDirectories: z.string().array().optional(),\n triggerUrl: z.string().optional(),\n projectDir: z.string().optional(),\n tsconfigPath: z.string().optional(),\n retries: z\n .object({\n enabledInDev: z.boolean().default(true),\n default: RetryOptions.optional(),\n })\n .optional(),\n additionalPackages: z.string().array().optional(),\n additionalFiles: z.string().array().optional(),\n dependenciesToBundle: z.array(z.union([z.string(), RegexSchema])).optional(),\n logLevel: z.string().optional(),\n enableConsoleLogging: z.boolean().optional(),\n postInstall: z.string().optional(),\n extraCACerts: z.string().optional(),\n});\n\nexport type Config = z.infer<typeof Config>;\nexport type ResolvedConfig = RequireKeys<\n Config,\n \"triggerDirectories\" | \"triggerUrl\" | \"projectDir\" | \"tsconfigPath\"\n>;\n\nexport const WaitReason = z.enum([\"WAIT_FOR_DURATION\", \"WAIT_FOR_TASK\", \"WAIT_FOR_BATCH\"]);\n\nexport type WaitReason = z.infer<typeof WaitReason>;\n\nexport const TaskRunExecutionLazyAttemptPayload = z.object({\n runId: z.string(),\n attemptCount: z.number().optional(),\n messageId: z.string(),\n isTest: z.boolean(),\n traceContext: z.record(z.unknown()),\n environment: z.record(z.string()).optional(),\n});\n\nexport type TaskRunExecutionLazyAttemptPayload = z.infer<typeof TaskRunExecutionLazyAttemptPayload>;\n","import { z } from \"zod\";\n\n// Defaults to 0.5\nexport const MachineCpu = z.union([\n z.literal(0.25),\n z.literal(0.5),\n z.literal(1),\n z.literal(2),\n z.literal(4),\n]);\n\nexport type MachineCpu = z.infer<typeof MachineCpu>;\n\n// Defaults to 1\nexport const MachineMemory = z.union([\n z.literal(0.25),\n z.literal(0.5),\n z.literal(1),\n z.literal(2),\n z.literal(4),\n z.literal(8),\n]);\n\nexport type MachineMemory = z.infer<typeof MachineMemory>;\n\n// Default is small-1x\nexport const MachinePresetName = z.enum([\n \"micro\",\n \"small-1x\",\n \"small-2x\",\n \"medium-1x\",\n \"medium-2x\",\n \"large-1x\",\n \"large-2x\",\n]);\n\nexport type MachinePresetName = z.infer<typeof MachinePresetName>;\n\nexport const MachineConfig = z.object({\n cpu: MachineCpu.optional(),\n memory: MachineMemory.optional(),\n preset: MachinePresetName.optional(),\n});\n\nexport type MachineConfig = z.infer<typeof MachineConfig>;\n\nexport const MachinePreset = z.object({\n name: MachinePresetName,\n cpu: z.number(),\n memory: z.number(),\n centsPerMs: z.number(),\n});\n\nexport type MachinePreset = z.infer<typeof MachinePreset>;\n\nexport const TaskRunBuiltInError = z.object({\n type: z.literal(\"BUILT_IN_ERROR\"),\n name: z.string(),\n message: z.string(),\n stackTrace: z.string(),\n});\n\nexport type TaskRunBuiltInError = z.infer<typeof TaskRunBuiltInError>;\n\nexport const TaskRunCustomErrorObject = z.object({\n type: z.literal(\"CUSTOM_ERROR\"),\n raw: z.string(),\n});\n\nexport type TaskRunCustomErrorObject = z.infer<typeof TaskRunCustomErrorObject>;\n\nexport const TaskRunStringError = z.object({\n type: z.literal(\"STRING_ERROR\"),\n raw: z.string(),\n});\n\nexport type TaskRunStringError = z.infer<typeof TaskRunStringError>;\n\nexport const TaskRunErrorCodes = {\n COULD_NOT_FIND_EXECUTOR: \"COULD_NOT_FIND_EXECUTOR\",\n COULD_NOT_FIND_TASK: \"COULD_NOT_FIND_TASK\",\n CONFIGURED_INCORRECTLY: \"CONFIGURED_INCORRECTLY\",\n TASK_ALREADY_RUNNING: \"TASK_ALREADY_RUNNING\",\n TASK_EXECUTION_FAILED: \"TASK_EXECUTION_FAILED\",\n TASK_EXECUTION_ABORTED: \"TASK_EXECUTION_ABORTED\",\n TASK_PROCESS_EXITED_WITH_NON_ZERO_CODE: \"TASK_PROCESS_EXITED_WITH_NON_ZERO_CODE\",\n TASK_PROCESS_SIGKILL_TIMEOUT: \"TASK_PROCESS_SIGKILL_TIMEOUT\",\n TASK_RUN_CANCELLED: \"TASK_RUN_CANCELLED\",\n TASK_OUTPUT_ERROR: \"TASK_OUTPUT_ERROR\",\n HANDLE_ERROR_ERROR: \"HANDLE_ERROR_ERROR\",\n GRACEFUL_EXIT_TIMEOUT: \"GRACEFUL_EXIT_TIMEOUT\",\n} as const;\n\nexport const TaskRunInternalError = z.object({\n type: z.literal(\"INTERNAL_ERROR\"),\n code: z.enum([\n \"COULD_NOT_FIND_EXECUTOR\",\n \"COULD_NOT_FIND_TASK\",\n \"CONFIGURED_INCORRECTLY\",\n \"TASK_ALREADY_RUNNING\",\n \"TASK_EXECUTION_FAILED\",\n \"TASK_EXECUTION_ABORTED\",\n \"TASK_PROCESS_EXITED_WITH_NON_ZERO_CODE\",\n \"TASK_PROCESS_SIGKILL_TIMEOUT\",\n \"TASK_RUN_CANCELLED\",\n \"TASK_OUTPUT_ERROR\",\n \"HANDLE_ERROR_ERROR\",\n \"GRACEFUL_EXIT_TIMEOUT\",\n \"TASK_RUN_HEARTBEAT_TIMEOUT\",\n ]),\n message: z.string().optional(),\n stackTrace: z.string().optional(),\n});\n\nexport type TaskRunInternalError = z.infer<typeof TaskRunInternalError>;\n\nexport const TaskRunError = z.discriminatedUnion(\"type\", [\n TaskRunBuiltInError,\n TaskRunCustomErrorObject,\n TaskRunStringError,\n TaskRunInternalError,\n]);\n\nexport type TaskRunError = z.infer<typeof TaskRunError>;\n\nexport const TaskRun = z.object({\n id: z.string(),\n payload: z.string(),\n payloadType: z.string(),\n context: z.any(),\n tags: z.array(z.string()),\n isTest: z.boolean().default(false),\n createdAt: z.coerce.date(),\n startedAt: z.coerce.date().default(() => new Date()),\n idempotencyKey: z.string().optional(),\n maxAttempts: z.number().optional(),\n durationMs: z.number().default(0),\n costInCents: z.number().default(0),\n baseCostInCents: z.number().default(0),\n version: z.string().optional(),\n});\n\nexport type TaskRun = z.infer<typeof TaskRun>;\n\nexport const TaskRunExecutionTask = z.object({\n id: z.string(),\n filePath: z.string(),\n exportName: z.string(),\n});\n\nexport type TaskRunExecutionTask = z.infer<typeof TaskRunExecutionTask>;\n\nexport const TaskRunExecutionAttempt = z.object({\n id: z.string(),\n number: z.number(),\n startedAt: z.coerce.date(),\n backgroundWorkerId: z.string(),\n backgroundWorkerTaskId: z.string(),\n status: z.string(),\n});\n\nexport type TaskRunExecutionAttempt = z.infer<typeof TaskRunExecutionAttempt>;\n\nexport const TaskRunExecutionEnvironment = z.object({\n id: z.string(),\n slug: z.string(),\n type: z.enum([\"PRODUCTION\", \"STAGING\", \"DEVELOPMENT\", \"PREVIEW\"]),\n});\n\nexport type TaskRunExecutionEnvironment = z.infer<typeof TaskRunExecutionEnvironment>;\n\nexport const TaskRunExecutionOrganization = z.object({\n id: z.string(),\n slug: z.string(),\n name: z.string(),\n});\n\nexport type TaskRunExecutionOrganization = z.infer<typeof TaskRunExecutionOrganization>;\n\nexport const TaskRunExecutionProject = z.object({\n id: z.string(),\n ref: z.string(),\n slug: z.string(),\n name: z.string(),\n});\n\nexport type TaskRunExecutionProject = z.infer<typeof TaskRunExecutionProject>;\n\nexport const TaskRunExecutionQueue = z.object({\n id: z.string(),\n name: z.string(),\n});\n\nexport type TaskRunExecutionQueue = z.infer<typeof TaskRunExecutionQueue>;\n\nexport const TaskRunExecutionBatch = z.object({\n id: z.string(),\n});\n\nexport const TaskRunExecution = z.object({\n task: TaskRunExecutionTask,\n attempt: TaskRunExecutionAttempt,\n run: TaskRun,\n queue: TaskRunExecutionQueue,\n environment: TaskRunExecutionEnvironment,\n organization: TaskRunExecutionOrganization,\n project: TaskRunExecutionProject,\n batch: TaskRunExecutionBatch.optional(),\n machine: MachinePreset.optional(),\n});\n\nexport type TaskRunExecution = z.infer<typeof TaskRunExecution>;\n\nexport const TaskRunContext = z.object({\n task: TaskRunExecutionTask,\n attempt: TaskRunExecutionAttempt.omit({\n backgroundWorkerId: true,\n backgroundWorkerTaskId: true,\n }),\n run: TaskRun.omit({ payload: true, payloadType: true }),\n queue: TaskRunExecutionQueue,\n environment: TaskRunExecutionEnvironment,\n organization: TaskRunExecutionOrganization,\n project: TaskRunExecutionProject,\n batch: TaskRunExecutionBatch.optional(),\n machine: MachinePreset.optional(),\n});\n\nexport type TaskRunContext = z.infer<typeof TaskRunContext>;\n\nexport const TaskRunExecutionRetry = z.object({\n timestamp: z.number(),\n delay: z.number(),\n error: z.unknown().optional(),\n});\n\nexport type TaskRunExecutionRetry = z.infer<typeof TaskRunExecutionRetry>;\n\nexport const TaskRunExecutionUsage = z.object({\n durationMs: z.number(),\n});\n\nexport type TaskRunExecutionUsage = z.infer<typeof TaskRunExecutionUsage>;\n\nexport const TaskRunFailedExecutionResult = z.object({\n ok: z.literal(false),\n id: z.string(),\n error: TaskRunError,\n retry: TaskRunExecutionRetry.optional(),\n skippedRetrying: z.boolean().optional(),\n usage: TaskRunExecutionUsage.optional(),\n});\n\nexport type TaskRunFailedExecutionResult = z.infer<typeof TaskRunFailedExecutionResult>;\n\nexport const TaskRunSuccessfulExecutionResult = z.object({\n ok: z.literal(true),\n id: z.string(),\n output: z.string().optional(),\n outputType: z.string(),\n usage: TaskRunExecutionUsage.optional(),\n});\n\nexport type TaskRunSuccessfulExecutionResult = z.infer<typeof TaskRunSuccessfulExecutionResult>;\n\nexport const TaskRunExecutionResult = z.discriminatedUnion(\"ok\", [\n TaskRunSuccessfulExecutionResult,\n TaskRunFailedExecutionResult,\n]);\n\nexport type TaskRunExecutionResult = z.infer<typeof TaskRunExecutionResult>;\n\nexport const BatchTaskRunExecutionResult = z.object({\n id: z.string(),\n items: TaskRunExecutionResult.array(),\n});\n\nexport type BatchTaskRunExecutionResult = z.infer<typeof BatchTaskRunExecutionResult>;\n","import { context, propagation } from \"@opentelemetry/api\";\nimport { z } from \"zod\";\nimport { version } from \"../../../package.json\";\nimport {\n AddTagsRequestBody,\n BatchTaskRunExecutionResult,\n BatchTriggerTaskRequestBody,\n BatchTriggerTaskResponse,\n CanceledRunResponse,\n CreateEnvironmentVariableRequestBody,\n CreateScheduleOptions,\n CreateUploadPayloadUrlResponseBody,\n DeletedScheduleObject,\n EnvironmentVariableResponseBody,\n EnvironmentVariableValue,\n EnvironmentVariables,\n ListRunResponseItem,\n ListScheduleOptions,\n ReplayRunResponse,\n RescheduleRunRequestBody,\n RetrieveRunResponse,\n ScheduleObject,\n TaskRunExecutionResult,\n TriggerTaskRequestBody,\n TriggerTaskResponse,\n UpdateEnvironmentVariableRequestBody,\n UpdateScheduleOptions,\n} from \"../schemas\";\nimport { taskContext } from \"../task-context-api\";\nimport {\n ApiRequestOptions,\n CursorPagePromise,\n ZodFetchOptions,\n isRequestOptions,\n zodfetch,\n zodfetchCursorPage,\n zodfetchOffsetLimitPage,\n} from \"./core\";\nimport { ApiError } from \"./errors\";\nimport {\n CreateEnvironmentVariableParams,\n ImportEnvironmentVariablesParams,\n ListProjectRunsQueryParams,\n ListRunsQueryParams,\n UpdateEnvironmentVariableParams,\n} from \"./types\";\n\nexport type {\n CreateEnvironmentVariableParams,\n ImportEnvironmentVariablesParams,\n UpdateEnvironmentVariableParams,\n};\n\nexport type TriggerOptions = {\n spanParentAsLink?: boolean;\n};\n\nconst DEFAULT_ZOD_FETCH_OPTIONS: ZodFetchOptions = {\n retry: {\n maxAttempts: 3,\n minTimeoutInMs: 1000,\n maxTimeoutInMs: 30_000,\n factor: 2,\n randomize: false,\n },\n};\n\nexport { isRequestOptions };\nexport type { ApiRequestOptions };\n\n/**\n * Trigger.dev v3 API client\n */\nexport class ApiClient {\n private readonly baseUrl: string;\n private readonly defaultRequestOptions: ZodFetchOptions;\n\n constructor(\n baseUrl: string,\n private readonly accessToken: string,\n requestOptions: ApiRequestOptions = {}\n ) {\n this.baseUrl = baseUrl.replace(/\\/$/, \"\");\n this.defaultRequestOptions = mergeRequestOptions(DEFAULT_ZOD_FETCH_OPTIONS, requestOptions);\n }\n\n async getRunResult(\n runId: string,\n requestOptions?: ZodFetchOptions\n ): Promise<TaskRunExecutionResult | undefined> {\n try {\n return await zodfetch(\n TaskRunExecutionResult,\n `${this.baseUrl}/api/v1/runs/${runId}/result`,\n {\n method: \"GET\",\n headers: this.#getHeaders(false),\n },\n mergeRequestOptions(this.defaultRequestOptions, requestOptions)\n );\n } catch (error) {\n if (error instanceof ApiError) {\n if (error.status === 404) {\n return undefined;\n }\n }\n\n throw error;\n }\n }\n\n async getBatchResults(\n batchId: string,\n requestOptions?: ZodFetchOptions\n ): Promise<BatchTaskRunExecutionResult | undefined> {\n return await zodfetch(\n BatchTaskRunExecutionResult,\n `${this.baseUrl}/api/v1/batches/${batchId}/results`,\n {\n method: \"GET\",\n headers: this.#getHeaders(false),\n },\n mergeRequestOptions(this.defaultRequestOptions, requestOptions)\n );\n }\n\n triggerTask(\n taskId: string,\n body: TriggerTaskRequestBody,\n options?: TriggerOptions,\n requestOptions?: ZodFetchOptions\n ) {\n const encodedTaskId = encodeURIComponent(taskId);\n\n return zodfetch(\n TriggerTaskResponse,\n `${this.baseUrl}/api/v1/tasks/${encodedTaskId}/trigger`,\n {\n method: \"POST\",\n headers: this.#getHeaders(options?.spanParentAsLink ?? false),\n body: JSON.stringify(body),\n },\n mergeRequestOptions(this.defaultRequestOptions, requestOptions)\n );\n }\n\n batchTriggerTask(\n taskId: string,\n body: BatchTriggerTaskRequestBody,\n options?: TriggerOptions,\n requestOptions?: ZodFetchOptions\n ) {\n const encodedTaskId = encodeURIComponent(taskId);\n\n return zodfetch(\n BatchTriggerTaskResponse,\n `${this.baseUrl}/api/v1/tasks/${encodedTaskId}/batch`,\n {\n method: \"POST\",\n headers: this.#getHeaders(options?.spanParentAsLink ?? false),\n body: JSON.stringify(body),\n },\n mergeRequestOptions(this.defaultRequestOptions, requestOptions)\n );\n }\n\n createUploadPayloadUrl(filename: string, requestOptions?: ZodFetchOptions) {\n return zodfetch(\n CreateUploadPayloadUrlResponseBody,\n `${this.baseUrl}/api/v1/packets/${filename}`,\n {\n method: \"PUT\",\n headers: this.#getHeaders(false),\n },\n mergeRequestOptions(this.defaultRequestOptions, requestOptions)\n );\n }\n\n getPayloadUrl(filename: string, requestOptions?: ZodFetchOptions) {\n return zodfetch(\n CreateUploadPayloadUrlResponseBody,\n `${this.baseUrl}/api/v1/packets/${filename}`,\n {\n method: \"GET\",\n headers: this.#getHeaders(false),\n },\n mergeRequestOptions(this.defaultRequestOptions, requestOptions)\n );\n }\n\n retrieveRun(runId: string, requestOptions?: ZodFetchOptions) {\n return zodfetch(\n RetrieveRunResponse,\n `${this.baseUrl}/api/v3/runs/${runId}`,\n {\n method: \"GET\",\n headers: this.#getHeaders(false),\n },\n mergeRequestOptions(this.defaultRequestOptions, requestOptions)\n );\n }\n\n listRuns(\n query?: ListRunsQueryParams,\n requestOptions?: ZodFetchOptions\n ): CursorPagePromise<typeof ListRunResponseItem> {\n const searchParams = createSearchQueryForListRuns(query);\n\n return zodfetchCursorPage(\n ListRunResponseItem,\n `${this.baseUrl}/api/v1/runs`,\n {\n query: searchParams,\n limit: query?.limit,\n after: query?.after,\n before: query?.before,\n },\n {\n method: \"GET\",\n headers: this.#getHeaders(false),\n },\n mergeRequestOptions(this.defaultRequestOptions, requestOptions)\n );\n }\n\n listProjectRuns(\n projectRef: string,\n query?: ListProjectRunsQueryParams,\n requestOptions?: ZodFetchOptions\n ): CursorPagePromise<typeof ListRunResponseItem> {\n const searchParams = createSearchQueryForListRuns(query);\n\n if (query?.env) {\n searchParams.append(\n \"filter[env]\",\n Array.isArray(query.env) ? query.env.join(\",\") : query.env\n );\n }\n\n return zodfetchCursorPage(\n ListRunResponseItem,\n `${this.baseUrl}/api/v1/projects/${projectRef}/runs`,\n {\n query: searchParams,\n limit: query?.limit,\n after: query?.after,\n before: query?.before,\n },\n {\n method: \"GET\",\n headers: this.#getHeaders(false),\n },\n mergeRequestOptions(this.defaultRequestOptions, requestOptions)\n );\n }\n\n replayRun(runId: string, requestOptions?: ZodFetchOptions) {\n return zodfetch(\n ReplayRunResponse,\n `${this.baseUrl}/api/v1/runs/${runId}/replay`,\n {\n method: \"POST\",\n headers: this.#getHeaders(false),\n },\n mergeRequestOptions(this.defaultRequestOptions, requestOptions)\n );\n }\n\n cancelRun(runId: string, requestOptions?: ZodFetchOptions) {\n return zodfetch(\n CanceledRunResponse,\n `${this.baseUrl}/api/v2/runs/${runId}/cancel`,\n {\n method: \"POST\",\n headers: this.#getHeaders(false),\n },\n mergeRequestOptions(this.defaultRequestOptions, requestOptions)\n );\n }\n\n rescheduleRun(runId: string, body: RescheduleRunRequestBody, requestOptions?: ZodFetchOptions) {\n return zodfetch(\n RetrieveRunResponse,\n `${this.baseUrl}/api/v1/runs/${runId}/reschedule`,\n {\n method: \"POST\",\n headers: this.#getHeaders(false),\n body: JSON.stringify(body),\n },\n mergeRequestOptions(this.defaultRequestOptions, requestOptions)\n );\n }\n\n addTags(runId: string, body: AddTagsRequestBody, requestOptions?: ZodFetchOptions) {\n return zodfetch(\n z.object({ message: z.string() }),\n `${this.baseUrl}/api/v1/runs/${runId}/tags`,\n {\n method: \"POST\",\n headers: this.#getHeaders(false),\n body: JSON.stringify(body),\n },\n mergeRequestOptions(this.defaultRequestOptions, requestOptions)\n );\n }\n\n createSchedule(options: CreateScheduleOptions, requestOptions?: ZodFetchOptions) {\n return zodfetch(\n ScheduleObject,\n `${this.baseUrl}/api/v1/schedules`,\n {\n method: \"POST\",\n headers: this.#getHeaders(false),\n body: JSON.stringify(options),\n },\n mergeRequestOptions(this.defaultRequestOptions, requestOptions)\n );\n }\n\n listSchedules(options?: ListScheduleOptions, requestOptions?: ZodFetchOptions) {\n const searchParams = new URLSearchParams();\n\n if (options?.page) {\n searchParams.append(\"page\", options.page.toString());\n }\n\n if (options?.perPage) {\n searchParams.append(\"perPage\", options.perPage.toString());\n }\n\n return zodfetchOffsetLimitPage(\n ScheduleObject,\n `${this.baseUrl}/api/v1/schedules`,\n {\n page: options?.page,\n limit: options?.perPage,\n },\n {\n method: \"GET\",\n headers: this.#getHeaders(false),\n },\n mergeRequestOptions(this.defaultRequestOptions, requestOptions)\n );\n }\n\n retrieveSchedule(scheduleId: string, requestOptions?: ZodFetchOptions) {\n return zodfetch(\n ScheduleObject,\n `${this.baseUrl}/api/v1/schedules/${scheduleId}`,\n {\n method: \"GET\",\n headers: this.#getHeaders(false),\n },\n mergeRequestOptions(this.defaultRequestOptions, requestOptions)\n );\n }\n\n updateSchedule(\n scheduleId: string,\n options: UpdateScheduleOptions,\n requestOptions?: ZodFetchOptions\n ) {\n return zodfetch(\n ScheduleObject,\n `${this.baseUrl}/api/v1/schedules/${scheduleId}`,\n {\n method: \"PUT\",\n headers: this.#getHeaders(false),\n body: JSON.stringify(options),\n },\n mergeRequestOptions(this.defaultRequestOptions, requestOptions)\n );\n }\n\n deactivateSchedule(scheduleId: string, requestOptions?: ZodFetchOptions) {\n return zodfetch(\n ScheduleObject,\n `${this.baseUrl}/api/v1/schedules/${scheduleId}/deactivate`,\n {\n method: \"POST\",\n headers: this.#getHeaders(false),\n },\n mergeRequestOptions(this.defaultRequestOptions, requestOptions)\n );\n }\n\n activateSchedule(scheduleId: string, requestOptions?: ZodFetchOptions) {\n return zodfetch(\n ScheduleObject,\n `${this.baseUrl}/api/v1/schedules/${scheduleId}/activate`,\n {\n method: \"POST\",\n headers: this.#getHeaders(false),\n },\n mergeRequestOptions(this.defaultRequestOptions, requestOptions)\n );\n }\n\n deleteSchedule(scheduleId: string, requestOptions?: ZodFetchOptions) {\n return zodfetch(\n DeletedScheduleObject,\n `${this.baseUrl}/api/v1/schedules/${scheduleId}`,\n {\n method: \"DELETE\",\n headers: this.#getHeaders(false),\n },\n mergeRequestOptions(this.defaultRequestOptions, requestOptions)\n );\n }\n\n listEnvVars(projectRef: string, slug: string, requestOptions?: ZodFetchOptions) {\n return zodfetch(\n EnvironmentVariables,\n `${this.baseUrl}/api/v1/projects/${projectRef}/envvars/${slug}`,\n {\n method: \"GET\",\n headers: this.#getHeaders(false),\n },\n mergeRequestOptions(this.defaultRequestOptions, requestOptions)\n );\n }\n\n importEnvVars(\n projectRef: string,\n slug: string,\n body: ImportEnvironmentVariablesParams,\n requestOptions?: ZodFetchOptions\n ) {\n return zodfetch(\n EnvironmentVariableResponseBody,\n `${this.baseUrl}/api/v1/projects/${projectRef}/envvars/${slug}/import`,\n {\n method: \"POST\",\n headers: this.#getHeaders(false),\n body: JSON.stringify(body),\n },\n mergeRequestOptions(this.defaultRequestOptions, requestOptions)\n );\n }\n\n retrieveEnvVar(projectRef: string, slug: string, key: string, requestOptions?: ZodFetchOptions) {\n return zodfetch(\n EnvironmentVariableValue,\n `${this.baseUrl}/api/v1/projects/${projectRef}/envvars/${slug}/${key}`,\n {\n method: \"GET\",\n headers: this.#getHeaders(false),\n },\n mergeRequestOptions(this.defaultRequestOptions, requestOptions)\n );\n }\n\n createEnvVar(\n projectRef: string,\n slug: string,\n body: CreateEnvironmentVariableRequestBody,\n requestOptions?: ZodFetchOptions\n ) {\n return zodfetch(\n EnvironmentVariableResponseBody,\n `${this.baseUrl}/api/v1/projects/${projectRef}/envvars/${slug}`,\n {\n method: \"POST\",\n headers: this.#getHeaders(false),\n body: JSON.stringify(body),\n },\n mergeRequestOptions(this.defaultRequestOptions, requestOptions)\n );\n }\n\n updateEnvVar(\n projectRef: string,\n slug: string,\n key: string,\n body: UpdateEnvironmentVariableRequestBody,\n requestOptions?: ZodFetchOptions\n ) {\n return zodfetch(\n EnvironmentVariableResponseBody,\n `${this.baseUrl}/api/v1/projects/${projectRef}/envvars/${slug}/${key}`,\n {\n method: \"PUT\",\n headers: this.#getHeaders(false),\n body: JSON.stringify(body),\n },\n mergeRequestOptions(this.defaultRequestOptions, requestOptions)\n );\n }\n\n deleteEnvVar(projectRef: string, slug: string, key: string, requestOptions?: ZodFetchOptions) {\n return zodfetch(\n EnvironmentVariableResponseBody,\n `${this.baseUrl}/api/v1/projects/${projectRef}/envvars/${slug}/${key}`,\n {\n method: \"DELETE\",\n headers: this.#getHeaders(false),\n },\n mergeRequestOptions(this.defaultRequestOptions, requestOptions)\n );\n }\n\n #getHeaders(spanParentAsLink: boolean) {\n const headers: Record<string, string> = {\n \"Content-Type\": \"application/json\",\n Authorization: `Bearer ${this.accessToken}`,\n \"trigger-version\": version,\n };\n\n // Only inject the context if we are inside a task\n if (taskContext.isInsideTask) {\n headers[\"x-trigger-worker\"] = \"true\";\n propagation.inject(context.active(), headers);\n\n if (spanParentAsLink) {\n headers[\"x-trigger-span-parent-as-link\"] = \"1\";\n }\n }\n\n return headers;\n }\n}\n\nfunction createSearchQueryForListRuns(query?: ListRunsQueryParams): URLSearchParams {\n const searchParams = new URLSearchParams();\n\n if (query) {\n if (query.status) {\n searchParams.append(\n \"filter[status]\",\n Array.isArray(query.status) ? query.status.join(\",\") : query.status\n );\n }\n\n if (query.taskIdentifier) {\n searchParams.append(\n \"filter[taskIdentifier]\",\n Array.isArray(query.taskIdentifier) ? query.taskIdentifier.join(\",\") : query.taskIdentifier\n );\n }\n\n if (query.version) {\n searchParams.append(\n \"filter[version]\",\n Array.isArray(query.version) ? query.version.join(\",\") : query.version\n );\n }\n\n if (query.bulkAction) {\n searchParams.append(\"filter[bulkAction]\", query.bulkAction);\n }\n\n if (query.tag) {\n searchParams.append(\n \"filter[tag]\",\n Array.isArray(query.tag) ? query.tag.join(\",\") : query.tag\n );\n }\n\n if (query.schedule) {\n searchParams.append(\"filter[schedule]\", query.schedule);\n }\n\n if (typeof query.isTest === \"boolean\") {\n searchParams.append(\"filter[isTest]\", String(query.isTest));\n }\n\n if (query.from) {\n searchParams.append(\n \"filter[createdAt][from]\",\n query.from instanceof Date ? query.from.getTime().toString() : query.from.toString()\n );\n }\n\n if (query.to) {\n searchParams.append(\n \"filter[createdAt][to]\",\n query.to instanceof Date ? query.to.getTime().toString() : query.to.toString()\n );\n }\n\n if (query.period) {\n searchParams.append(\"filter[createdAt][period]\", query.period);\n }\n }\n\n return searchParams;\n}\n\nexport function mergeRequestOptions(\n defaultOptions: ZodFetchOptions,\n options?: ApiRequestOptions\n): ZodFetchOptions {\n if (!options) {\n return defaultOptions;\n }\n\n return {\n ...defaultOptions,\n ...options,\n retry: {\n ...defaultOptions.retry,\n ...options.retry,\n },\n };\n}\n","import { z } from \"zod\";\nimport { fromZodError } from \"zod-validation-error\";\nimport { RetryOptions } from \"../schemas\";\nimport { calculateNextRetryDelay } from \"../utils/retries\";\nimport { ApiConnectionError, ApiError } from \"./errors\";\n\nimport { Attributes, Span } from \"@opentelemetry/api\";\nimport { SemanticInternalAttributes } from \"../semanticInternalAttributes\";\nimport { TriggerTracer } from \"../tracer\";\nimport { accessoryAttributes } from \"../utils/styleAttributes\";\nimport {\n CursorPage,\n CursorPageParams,\n CursorPageResponse,\n OffsetLimitPage,\n OffsetLimitPageParams,\n OffsetLimitPageResponse,\n} from \"./pagination\";\n\nexport const defaultRetryOptions = {\n maxAttempts: 3,\n factor: 2,\n minTimeoutInMs: 1000,\n maxTimeoutInMs: 60000,\n randomize: false,\n} satisfies RetryOptions;\n\nexport type ZodFetchOptions = {\n retry?: RetryOptions;\n tracer?: TriggerTracer;\n name?: string;\n attributes?: Attributes;\n icon?: string;\n onResponseBody?: (body: unknown, span: Span) => void;\n};\n\nexport type ApiRequestOptions = Pick<ZodFetchOptions, \"retry\">;\ntype KeysEnum<T> = { [P in keyof Required<T>]: true };\n\n// This is required so that we can determine if a given object matches the ApiRequestOptions\n// type at runtime. While this requires duplication, it is enforced by the TypeScript\n// compiler such that any missing / extraneous keys will cause an error.\nconst requestOptionsKeys: KeysEnum<ApiRequestOptions> = {\n retry: true,\n};\n\nexport const isRequestOptions = (obj: unknown): obj is ApiRequestOptions => {\n return (\n typeof obj === \"object\" &&\n obj !== null &&\n !isEmptyObj(obj) &&\n Object.keys(obj).every((k) => hasOwn(requestOptionsKeys, k))\n );\n};\n\ninterface FetchCursorPageParams extends CursorPageParams {\n query?: URLSearchParams;\n}\n\ninterface FetchOffsetLimitPageParams extends OffsetLimitPageParams {\n query?: URLSearchParams;\n}\n\nexport function zodfetch<TResponseBodySchema extends z.ZodTypeAny>(\n schema: TResponseBodySchema,\n url: string,\n requestInit?: RequestInit,\n options?: ZodFetchOptions\n): ApiPromise<z.output<TResponseBodySchema>> {\n return new ApiPromise(_doZodFetch(schema, url, requestInit, options));\n}\n\nexport function zodfetchCursorPage<TItemSchema extends z.ZodTypeAny>(\n schema: TItemSchema,\n url: string,\n params: FetchCursorPageParams,\n requestInit?: RequestInit,\n options?: ZodFetchOptions\n) {\n const query = new URLSearchParams(params.query);\n\n if (params.limit) {\n query.set(\"page[size]\", String(params.limit));\n }\n\n if (params.after) {\n query.set(\"page[after]\", params.after);\n }\n\n if (params.before) {\n query.set(\"page[before]\", params.before);\n }\n\n const cursorPageSchema = z.object({\n data: z.array(schema),\n pagination: z.object({\n next: z.string().optional(),\n previous: z.string().optional(),\n }),\n });\n\n const $url = new URL(url);\n $url.search = query.toString();\n\n const fetchResult = _doZodFetch(cursorPageSchema, $url.href, requestInit, options);\n\n return new CursorPagePromise(fetchResult, schema, url, params, requestInit, options);\n}\n\nexport function zodfetchOffsetLimitPage<TItemSchema extends z.ZodTypeAny>(\n schema: TItemSchema,\n url: string,\n params: FetchOffsetLimitPageParams,\n requestInit?: RequestInit,\n options?: ZodFetchOptions\n) {\n const query = new URLSearchParams(params.query);\n\n if (params.limit) {\n query.set(\"perPage\", String(params.limit));\n }\n\n if (params.page) {\n query.set(\"page\", String(params.page));\n }\n\n const offsetLimitPageSchema = z.object({\n data: z.array(schema),\n pagination: z.object({\n currentPage: z.coerce.number(),\n totalPages: z.coerce.number(),\n count: z.coerce.number(),\n }),\n });\n\n const $url = new URL(url);\n $url.search = query.toString();\n\n const fetchResult = _doZodFetch(offsetLimitPageSchema, $url.href, requestInit, options);\n\n return new OffsetLimitPagePromise(fetchResult, schema, url, params, requestInit, options);\n}\n\ntype ZodFetchResult<T> = {\n data: T;\n response: Response;\n};\n\ntype PromiseOrValue<T> = T | Promise<T>;\n\nasync function traceZodFetch<T>(\n params: {\n url: string;\n requestInit?: RequestInit;\n options?: ZodFetchOptions;\n },\n callback: (span?: Span) => Promise<T>\n): Promise<T> {\n if (!params.options?.tracer) {\n return callback();\n }\n\n const url = new URL(params.url);\n const method = params.requestInit?.method ?? \"GET\";\n const name = params.options.name ?? `${method} ${url.pathname}`;\n\n return await params.options.tracer.startActiveSpan(\n name,\n async (span) => {\n return await callback(span);\n },\n {\n attributes: {\n [SemanticInternalAttributes.STYLE_ICON]: params.options?.icon ?? \"api\",\n ...params.options.attributes,\n },\n }\n );\n}\n\nasync function _doZodFetch<TResponseBodySchema extends z.ZodTypeAny>(\n schema: TResponseBodySchema,\n url: string,\n requestInit?: PromiseOrValue<RequestInit>,\n options?: ZodFetchOptions\n): Promise<ZodFetchResult<z.output<TResponseBodySchema>>> {\n const $requestInit = await requestInit;\n\n return traceZodFetch({ url, requestInit: $requestInit, options }, async (span) => {\n const result = await _doZodFetchWithRetries(schema, url, $requestInit, options);\n\n if (options?.onResponseBody && span) {\n options.onResponseBody(result.data, span);\n }\n\n return result;\n });\n}\n\nasync function _doZodFetchWithRetries<TResponseBodySchema extends z.ZodTypeAny>(\n schema: TResponseBodySchema,\n url: string,\n requestInit?: RequestInit,\n options?: ZodFetchOptions,\n attempt = 1\n): Promise<ZodFetchResult<z.output<TResponseBodySchema>>> {\n try {\n const response = await fetch(url, requestInitWithCache(requestInit));\n\n const responseHeaders = createResponseHeaders(response.headers);\n\n if (!response.ok) {\n const retryResult = shouldRetry(response, attempt, options?.retry);\n\n if (retryResult.retry) {\n await waitForRetry(url, attempt + 1, retryResult.delay, options, requestInit, response);\n\n return await _doZodFetchWithRetries(schema, url, requestInit, options, attempt + 1);\n } else {\n const errText = await response.text().catch((e) => castToError(e).message);\n const errJSON = safeJsonParse(errText);\n const errMessage = errJSON ? undefined : errText;\n\n throw ApiError.generate(response.status, errJSON, errMessage, responseHeaders);\n }\n }\n\n const jsonBody = await response.json();\n const parsedResult = schema.safeParse(jsonBody);\n\n if (parsedResult.success) {\n return { data: parsedResult.data, response };\n }\n\n throw fromZodError(parsedResult.error);\n } catch (error) {\n if (error instanceof ApiError) {\n throw error;\n }\n\n if (options?.retry) {\n const retry = { ...defaultRetryOptions, ...options.retry };\n\n const delay = calculateNextRetryDelay(retry, attempt);\n\n if (delay) {\n await waitForRetry(url, attempt + 1, delay, options, requestInit);\n\n return await _doZodFetchWithRetries(schema, url, requestInit, options, attempt + 1);\n }\n }\n\n throw new ApiConnectionError({ cause: castToError(error) });\n }\n}\n\nfunction castToError(err: any): Error {\n if (err instanceof Error) return err;\n return new Error(err);\n}\n\ntype ShouldRetryResult =\n | {\n retry: false;\n }\n | {\n retry: true;\n delay: number;\n };\n\nfunction shouldRetry(\n response: Response,\n attempt: number,\n retryOptions?: RetryOptions\n): ShouldRetryResult {\n function shouldRetryForOptions(): ShouldRetryResult {\n const retry = { ...defaultRetryOptions, ...retryOptions };\n\n const delay = calculateNextRetryDelay(retry, attempt);\n\n if (delay) {\n return { retry: true, delay };\n } else {\n return { retry: false };\n }\n }\n\n // Note this is not a standard header.\n const shouldRetryHeader = response.headers.get(\"x-should-retry\");\n\n // If the server explicitly says whether or not to retry, obey.\n if (shouldRetryHeader === \"true\") return shouldRetryForOptions();\n if (shouldRetryHeader === \"false\") return { retry: false };\n\n // Retry on request timeouts.\n if (response.status === 408) return shouldRetryForOptions();\n\n // Retry on lock timeouts.\n if (response.status === 409) return shouldRetryForOptions();\n\n // Retry on rate limits.\n if (response.status === 429) {\n if (\n attempt >= (typeof retryOptions?.maxAttempts === \"number\" ? retryOptions?.maxAttempts : 3)\n ) {\n return { retry: false };\n }\n\n // x-ratelimit-reset is the unix timestamp in milliseconds when the rate limit will reset.\n const resetAtUnixEpochMs = response.headers.get(\"x-ratelimit-reset\");\n\n if (resetAtUnixEpochMs) {\n const resetAtUnixEpoch = parseInt(resetAtUnixEpochMs, 10);\n const delay = resetAtUnixEpoch - Date.now() + Math.floor(Math.random() * 1000);\n\n if (delay > 0) {\n return { retry: true, delay };\n }\n }\n\n return shouldRetryForOptions();\n }\n\n // Retry internal errors.\n if (response.status >= 500) return shouldRetryForOptions();\n\n return { retry: false };\n}\n\nfunction safeJsonParse(text: string): any {\n try {\n return JSON.parse(text);\n } catch (e) {\n return undefined;\n }\n}\n\nfunction createResponseHeaders(headers: Response[\"headers\"]): Record<string, string> {\n return new Proxy(\n Object.fromEntries(\n // @ts-ignore\n headers.entries()\n ),\n {\n get(target, name) {\n const key = name.toString();\n return target[key.toLowerCase()] || target[key];\n },\n }\n );\n}\n\nfunction requestInitWithCache(requestInit?: RequestInit): RequestInit {\n try {\n const withCache: RequestInit = {\n ...requestInit,\n cache: \"no-cache\",\n };\n\n const _ = new Request(\"http://localhost\", withCache);\n\n return withCache;\n } catch (error) {\n return requestInit ?? {};\n }\n}\n\n/**\n * A subclass of `Promise` providing additional helper methods\n * for interacting with the SDK.\n */\nexport class ApiPromise<T> extends Promise<T> {\n constructor(private responsePromise: Promise<ZodFetchResult<T>>) {\n super((resolve) => {\n // this is maybe a bit weird but this has to be a no-op to not implicitly\n // parse the response body; instead .then, .catch, .finally are overridden\n // to parse the response\n resolve(null as any);\n });\n }\n\n /**\n * Gets the raw `Response` instance instead of parsing the response\n * data.\n *\n * If you want to parse the response body but still get the `Response`\n * instance, you can use {@link withResponse()}.\n */\n asResponse(): Promise<Response> {\n return this.responsePromise.then((p) => p.response);\n }\n\n /**\n * Gets the parsed response data and the raw `Response` instance.\n *\n * If you just want to get the raw `Response` instance without parsing it,\n * you can use {@link asResponse()}.\n */\n async withResponse(): Promise<{ data: T; response: Response }> {\n const [data, response] = await Promise.all([this.parse(), this.asResponse()]);\n return { data, response };\n }\n\n private parse(): Promise<T> {\n return this.responsePromise.then((result) => result.data);\n }\n\n override then<TResult1 = T, TResult2 = never>(\n onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | undefined | null,\n onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null\n ): Promise<TResult1 | TResult2> {\n return this.parse().then(onfulfilled, onrejected);\n }\n\n override catch<TResult = never>(\n onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | undefined | null\n ): Promise<T | TResult> {\n return this.parse().catch(onrejected);\n }\n\n override finally(onfinally?: (() => void) | undefined | null): Promise<T> {\n return this.parse().finally(onfinally);\n }\n}\n\nexport class CursorPagePromise<TItemSchema extends z.ZodTypeAny>\n extends ApiPromise<CursorPage<z.output<TItemSchema>>>\n implements AsyncIterable<z.output<TItemSchema>>\n{\n constructor(\n result: Promise<ZodFetchResult<CursorPageResponse<z.output<TItemSchema>>>>,\n private schema: TItemSchema,\n private url: string,\n private params: FetchCursorPageParams,\n private requestInit?: RequestInit,\n private options?: ZodFetchOptions\n ) {\n super(\n result.then((result) => ({\n data: new CursorPage(result.data.data, result.data.pagination, this.#fetchPage.bind(this)),\n response: result.response,\n }))\n );\n }\n\n #fetchPage(params: Omit<CursorPageParams, \"limit\">): Promise<CursorPage<z.output<TItemSchema>>> {\n return zodfetchCursorPage(\n this.schema,\n this.url,\n { ...this.params, ...params },\n this.requestInit,\n this.options\n );\n }\n\n /**\n * Allow auto-paginating iteration on an unawaited list call, eg:\n *\n * for await (const item of client.items.list()) {\n * console.log(item)\n * }\n */\n async *[Symbol.asyncIterator]() {\n const page = await this;\n for await (const item of page) {\n yield item;\n }\n }\n}\n\nexport class OffsetLimitPagePromise<TItemSchema extends z.ZodTypeAny>\n extends ApiPromise<OffsetLimitPage<z.output<TItemSchema>>>\n implements AsyncIterable<z.output<TItemSchema>>\n{\n constructor(\n result: Promise<ZodFetchResult<OffsetLimitPageResponse<z.output<TItemSchema>>>>,\n private schema: TItemSchema,\n private url: string,\n private params: FetchOffsetLimitPageParams,\n private requestInit?: RequestInit,\n private options?: ZodFetchOptions\n ) {\n super(\n result.then((result) => ({\n data: new OffsetLimitPage(\n result.data.data,\n result.data.pagination,\n this.#fetchPage.bind(this)\n ),\n response: result.response,\n }))\n );\n }\n\n #fetchPage(\n params: Omit<FetchOffsetLimitPageParams, \"limit\">\n ): Promise<OffsetLimitPage<z.output<TItemSchema>>> {\n return zodfetchOffsetLimitPage(\n this.schema,\n this.url,\n { ...this.params, ...params },\n this.requestInit,\n this.options\n );\n }\n\n /**\n * Allow auto-paginating iteration on an unawaited list call, eg:\n *\n * for await (const item of client.items.list()) {\n * console.log(item)\n * }\n */\n async *[Symbol.asyncIterator]() {\n const page = await this;\n for await (const item of page) {\n yield item;\n }\n }\n}\n\nasync function waitForRetry(\n url: string,\n attempt: number,\n delay: number,\n options?: ZodFetchOptions,\n requestInit?: RequestInit,\n response?: Response\n): Promise<void> {\n if (options?.tracer) {\n const method = requestInit?.method ?? \"GET\";\n\n return options.tracer.startActiveSpan(\n response ? `wait after ${response.status}` : `wait after error`,\n async (span) => {\n await new Promise((resolve) => setTimeout(resolve, delay));\n },\n {\n attributes: {\n [SemanticInternalAttributes.STYLE_ICON]: \"wait\",\n ...accessoryAttributes({\n items: [\n {\n text: `retrying ${options?.name ?? method.toUpperCase()} in ${delay}ms`,\n variant: \"normal\",\n },\n ],\n style: \"codepath\",\n }),\n },\n }\n );\n }\n\n await new Promise((resolve) => setTimeout(resolve, delay));\n}\n\n// https://stackoverflow.com/a/34491287\nexport function isEmptyObj(obj: Object | null | undefined): boolean {\n if (!obj) return true;\n for (const _k in obj) return false;\n return true;\n}\n\n// https://eslint.org/docs/latest/rules/no-prototype-builtins\nexport function hasOwn(obj: Object, key: string): boolean {\n return Object.prototype.hasOwnProperty.call(obj, key);\n}\n","import { calculateResetAt as calculateResetAtInternal } from \"../../retry\";\nimport { FetchRetryOptions, type RetryOptions } from \"../schemas\";\n\nexport const defaultRetryOptions = {\n maxAttempts: 3,\n factor: 2,\n minTimeoutInMs: 1000,\n maxTimeoutInMs: 60000,\n randomize: true,\n} satisfies RetryOptions;\n\nexport const defaultFetchRetryOptions = {\n byStatus: {\n \"429,408,409,5xx\": {\n strategy: \"backoff\",\n ...defaultRetryOptions,\n },\n },\n connectionError: defaultRetryOptions,\n timeout: defaultRetryOptions,\n} satisfies FetchRetryOptions;\n\n/**\n *\n * @param options\n * @param attempt - The current attempt number. If the first attempt has failed, this will be 1.\n * @returns\n */\nexport function calculateNextRetryDelay(options: RetryOptions, attempt: number) {\n const opts = { ...defaultRetryOptions, ...options };\n\n if (attempt >= opts.maxAttempts) {\n return;\n }\n\n const { factor, minTimeoutInMs, maxTimeoutInMs, randomize } = opts;\n\n const random = randomize ? Math.random() + 1 : 1;\n\n const timeout = Math.min(maxTimeoutInMs, random * minTimeoutInMs * Math.pow(factor, attempt - 1));\n\n // Round to the nearest integer\n return Math.round(timeout);\n}\n\nexport function calculateResetAt(\n resets: string | undefined | null,\n format:\n | \"unix_timestamp\"\n | \"iso_8601\"\n | \"iso_8601_duration_openai_variant\"\n | \"unix_timestamp_in_ms\",\n now: number = Date.now()\n): number | undefined {\n const resetAt = calculateResetAtInternal(resets, format, new Date(now));\n\n return resetAt?.getTime();\n}\n","export type APIHeaders = Record<string, string | null | undefined>;\n\nexport class ApiError extends Error {\n readonly status: number | undefined;\n readonly headers: APIHeaders | undefined;\n readonly error: Object | undefined;\n\n readonly code: string | null | undefined;\n readonly param: string | null | undefined;\n readonly type: string | undefined;\n\n constructor(\n status: number | undefined,\n error: Object | undefined,\n message: string | undefined,\n headers: APIHeaders | undefined\n ) {\n super(`${ApiError.makeMessage(status, error, message)}`);\n this.name = \"TriggerApiError\";\n this.status = status;\n this.headers = headers;\n\n const data = error as Record<string, any>;\n this.error = data;\n this.code = data?.[\"code\"];\n this.param = data?.[\"param\"];\n this.type = data?.[\"type\"];\n }\n\n private static makeMessage(status: number | undefined, error: any, message: string | undefined) {\n const msg = error?.message\n ? typeof error.message === \"string\"\n ? error.message\n : JSON.stringify(error.message)\n : error\n ? JSON.stringify(error)\n : message;\n\n if (status && msg) {\n return `${status} ${msg}`;\n }\n if (status) {\n return `${status} status code (no body)`;\n }\n if (msg) {\n return msg;\n }\n return \"(no status code or body)\";\n }\n\n static generate(\n status: number | undefined,\n errorResponse: Object | undefined,\n message: string | undefined,\n headers: APIHeaders | undefined\n ) {\n if (!status) {\n return new ApiConnectionError({ cause: castToError(errorResponse) });\n }\n\n const error = (errorResponse as Record<string, any>)?.[\"error\"];\n\n if (status === 400) {\n return new BadRequestError(status, error, message, headers);\n }\n\n if (status === 401) {\n return new AuthenticationError(status, error, message, headers);\n }\n\n if (status === 403) {\n return new PermissionDeniedError(status, error, message, headers);\n }\n\n if (status === 404) {\n return new NotFoundError(status, error, message, headers);\n }\n\n if (status === 409) {\n return new ConflictError(status, error, message, headers);\n }\n\n if (status === 422) {\n return new UnprocessableEntityError(status, error, message, headers);\n }\n\n if (status === 429) {\n return new RateLimitError(status, error, message, headers);\n }\n\n if (status >= 500) {\n return new InternalServerError(status, error, message, headers);\n }\n\n return new ApiError(status, error, message, headers);\n }\n}\n\nexport class ApiConnectionError extends ApiError {\n override readonly status: undefined = undefined;\n\n constructor({ message, cause }: { message?: string; cause?: Error | undefined }) {\n super(undefined, undefined, message || \"Connection error.\", undefined);\n // in some environments the 'cause' property is already declared\n // @ts-ignore\n if (cause) this.cause = cause;\n }\n}\n\nexport class BadRequestError extends ApiError {\n override readonly status: 400 = 400;\n}\n\nexport class AuthenticationError extends ApiError {\n override readonly status: 401 = 401;\n}\n\nexport class PermissionDeniedError extends ApiError {\n override readonly status: 403 = 403;\n}\n\nexport class NotFoundError extends ApiError {\n override readonly status: 404 = 404;\n}\n\nexport class ConflictError extends ApiError {\n override readonly status: 409 = 409;\n}\n\nexport class UnprocessableEntityError extends ApiError {\n override readonly status: 422 = 422;\n}\n\nexport class RateLimitError extends ApiError {\n override readonly status: 429 = 429;\n\n get millisecondsUntilReset(): number | undefined {\n // x-ratelimit-reset is the unix timestamp in milliseconds when the rate limit will reset.\n const resetAtUnixEpochMs = (this.headers ?? {})[\"x-ratelimit-reset\"];\n\n if (typeof resetAtUnixEpochMs === \"string\") {\n const resetAtUnixEpoch = parseInt(resetAtUnixEpochMs, 10);\n\n if (isNaN(resetAtUnixEpoch)) {\n return;\n }\n\n // Add between 0 and 2000ms to the reset time to add jitter\n return Math.max(resetAtUnixEpoch - Date.now() + Math.floor(Math.random() * 2000), 0);\n }\n }\n}\n\nexport class InternalServerError extends ApiError {}\n\nfunction castToError(err: any): Error {\n if (err instanceof Error) return err;\n return new Error(err);\n}\n","import { Attributes } from \"@opentelemetry/api\";\nimport { Accessory } from \"../schemas\";\nimport { flattenAttributes } from \"./flattenAttributes\";\nimport { SemanticInternalAttributes } from \"../semanticInternalAttributes\";\n\nexport function accessoryAttributes(accessory: Accessory): Attributes {\n return flattenAttributes(accessory, SemanticInternalAttributes.STYLE_ACCESSORY);\n}\n","export interface CursorPageParams {\n limit?: number;\n after?: string;\n before?: string;\n}\n\nexport interface OffsetLimitPageParams {\n limit?: number;\n page?: number;\n}\n\nexport interface PageResponse<Item> {\n data: Array<Item>;\n}\n\nexport interface CursorPageResponse<Item> extends PageResponse<Item> {\n pagination: {\n next?: string;\n previous?: string;\n };\n}\n\nexport interface OffsetLimitPageResponse<Item> extends PageResponse<Item> {\n pagination: {\n currentPage: number;\n totalPages: number;\n count: number;\n };\n}\n\nexport interface Page<Item> {\n getPaginatedItems(): Item[];\n hasNextPage(): boolean;\n hasPreviousPage(): boolean;\n}\n\nexport class CursorPage<Item> implements CursorPageResponse<Item>, Page<Item>, AsyncIterable<Item> {\n data: Array<Item>;\n pagination: { next?: string; previous?: string };\n\n constructor(\n data: Array<Item>,\n pagination: { next?: string; previous?: string },\n private pageFetcher: (params: Omit<CursorPageParams, \"limit\">) => Promise<CursorPage<Item>>\n ) {\n this.data = data;\n this.pagination = pagination;\n }\n\n getPaginatedItems(): Item[] {\n return this.data ?? [];\n }\n\n hasNextPage(): boolean {\n return !!this.pagination.next;\n }\n\n hasPreviousPage(): boolean {\n return !!this.pagination.previous;\n }\n\n getNextPage(): Promise<CursorPage<Item>> {\n if (!this.pagination.next) {\n throw new Error(\"No next page available\");\n }\n\n return this.pageFetcher({ after: this.pagination.next });\n }\n\n getPreviousPage(): Promise<CursorPage<Item>> {\n if (!this.pagination.previous) {\n throw new Error(\"No previous page available\");\n }\n\n return this.pageFetcher({ before: this.pagination.previous });\n }\n\n async *iterPages() {\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n let page: CursorPage<Item> = this;\n yield page;\n while (page.hasNextPage()) {\n page = await page.getNextPage();\n yield page;\n }\n }\n\n async *[Symbol.asyncIterator]() {\n for await (const page of this.iterPages()) {\n for (const item of page.getPaginatedItems()) {\n yield item;\n }\n }\n }\n}\n\nexport class OffsetLimitPage<Item>\n implements OffsetLimitPageResponse<Item>, Page<Item>, AsyncIterable<Item>\n{\n data: Array<Item>;\n pagination: { currentPage: number; totalPages: number; count: number };\n\n constructor(\n data: Array<Item>,\n pagination: { currentPage: number; totalPages: number; count: number },\n private pageFetcher: (\n params: Omit<OffsetLimitPageParams, \"limit\">\n ) => Promise<OffsetLimitPage<Item>>\n ) {\n this.data = data;\n this.pagination = pagination;\n }\n\n getPaginatedItems(): Item[] {\n return this.data ?? [];\n }\n\n hasNextPage(): boolean {\n return this.pagination.currentPage < this.pagination.totalPages;\n }\n\n hasPreviousPage(): boolean {\n return this.pagination.currentPage > 1;\n }\n\n getNextPage(): Promise<OffsetLimitPage<Item>> {\n if (!this.hasNextPage()) {\n throw new Error(\"No next page available\");\n }\n\n return this.pageFetcher({\n page: this.pagination.currentPage + 1,\n });\n }\n\n getPreviousPage(): Promise<OffsetLimitPage<Item>> {\n if (!this.hasPreviousPage()) {\n throw new Error(\"No previous page available\");\n }\n\n return this.pageFetcher({\n page: this.pagination.currentPage - 1,\n });\n }\n\n async *iterPages() {\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n let page: OffsetLimitPage<Item> = this;\n yield page;\n while (page.hasNextPage()) {\n page = await page.getNextPage();\n yield page;\n }\n }\n\n async *[Symbol.asyncIterator]() {\n for await (const page of this.iterPages()) {\n for (const item of page.getPaginatedItems()) {\n yield item;\n }\n }\n }\n}\n","import { ApiClient } from \"../apiClient\";\nimport { getGlobal, registerGlobal, unregisterGlobal } from \"../utils/globals\";\nimport { getEnvVar } from \"../utils/getEnv\";\nimport { ApiClientConfiguration } from \"./types\";\n\nconst API_NAME = \"api-client\";\n\nexport class APIClientManagerAPI {\n private static _instance?: APIClientManagerAPI;\n\n private constructor() {}\n\n public static getInstance(): APIClientManagerAPI {\n if (!this._instance) {\n this._instance = new APIClientManagerAPI();\n }\n\n return this._instance;\n }\n\n public disable() {\n unregisterGlobal(API_NAME);\n }\n\n public setGlobalAPIClientConfiguration(config: ApiClientConfiguration): boolean {\n return registerGlobal(API_NAME, config);\n }\n\n get baseURL(): string | undefined {\n const store = this.#getConfig();\n return store?.baseURL ?? getEnvVar(\"TRIGGER_API_URL\") ?? \"https://api.trigger.dev\";\n }\n\n get accessToken(): string | undefined {\n const store = this.#getConfig();\n return store?.secretKey ?? getEnvVar(\"TRIGGER_SECRET_KEY\") ?? getEnvVar(\"TRIGGER_ACCESS_TOKEN\");\n }\n\n get client(): ApiClient | undefined {\n if (!this.baseURL || !this.accessToken) {\n return undefined;\n }\n\n return new ApiClient(this.baseURL, this.accessToken);\n }\n\n #getConfig(): ApiClientConfiguration | 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 { APIClientManagerAPI } from \"./apiClientManager\";\n/** Entrypoint for logger API */\nexport const apiClientManager = APIClientManagerAPI.getInstance();\n\nexport type { ApiClientConfiguration } from \"./apiClientManager/types\";\n","import { Attributes, Span } from \"@opentelemetry/api\";\nimport { OFFLOAD_IO_PACKET_LENGTH_LIMIT, imposeAttributeLimits } from \"../limits\";\nimport { SemanticInternalAttributes } from \"../semanticInternalAttributes\";\nimport { TriggerTracer } from \"../tracer\";\nimport { flattenAttributes } from \"./flattenAttributes\";\nimport { apiClientManager } from \"../apiClientManager-api\";\n\nexport type IOPacket = {\n data?: string | undefined;\n dataType: string;\n};\n\nexport async function parsePacket(value: IOPacket): Promise<any> {\n if (!value.data) {\n return undefined;\n }\n\n switch (value.dataType) {\n case \"application/json\":\n return JSON.parse(value.data);\n case \"application/super+json\":\n const { parse } = await loadSuperJSON();\n\n return parse(value.data);\n case \"text/plain\":\n return value.data;\n case \"application/store\":\n throw new Error(\n `Cannot parse an application/store packet (${value.data}). Needs to be imported first.`\n );\n default:\n return value.data;\n }\n}\n\nexport async function stringifyIO(value: any): Promise<IOPacket> {\n if (value === undefined) {\n return { dataType: \"application/json\" };\n }\n\n if (typeof value === \"string\") {\n return { data: value, dataType: \"text/plain\" };\n }\n\n try {\n const { stringify } = await loadSuperJSON();\n const data = stringify(value);\n\n return { data, dataType: \"application/super+json\" };\n } catch {\n return { data: value, dataType: \"application/json\" };\n }\n}\n\nexport async function conditionallyExportPacket(\n packet: IOPacket,\n pathPrefix: string,\n tracer?: TriggerTracer\n): Promise<IOPacket> {\n if (apiClientManager.client) {\n const { needsOffloading, size } = packetRequiresOffloading(packet);\n\n if (needsOffloading) {\n if (!tracer) {\n return await exportPacket(packet, pathPrefix);\n } else {\n const result = await tracer.startActiveSpan(\n \"store.uploadOutput\",\n async (span) => {\n return await exportPacket(packet, pathPrefix);\n },\n {\n attributes: {\n byteLength: size,\n [SemanticInternalAttributes.STYLE_ICON]: \"cloud-upload\",\n },\n }\n );\n\n return result ?? packet;\n }\n }\n }\n\n return packet;\n}\n\nexport function packetRequiresOffloading(\n packet: IOPacket,\n lengthLimit?: number\n): {\n needsOffloading: boolean;\n size: number;\n} {\n if (!packet.data) {\n return {\n needsOffloading: false,\n size: 0,\n };\n }\n\n const byteSize = Buffer.byteLength(packet.data, \"utf8\");\n\n return {\n needsOffloading: byteSize >= (lengthLimit ?? OFFLOAD_IO_PACKET_LENGTH_LIMIT),\n size: byteSize,\n };\n}\n\nasync function exportPacket(packet: IOPacket, pathPrefix: string): Promise<IOPacket> {\n // Offload the output\n const filename = `${pathPrefix}.${getPacketExtension(packet.dataType)}`;\n\n const presignedResponse = await apiClientManager.client!.createUploadPayloadUrl(filename);\n\n const uploadResponse = await fetch(presignedResponse.presignedUrl, {\n method: \"PUT\",\n headers: {\n \"Content-Type\": packet.dataType,\n },\n body: packet.data,\n });\n\n if (!uploadResponse.ok) {\n throw new Error(\n `Failed to upload output to ${presignedResponse.presignedUrl}: ${uploadResponse.statusText}`\n );\n }\n\n return {\n data: filename,\n dataType: \"application/store\",\n };\n}\n\nexport async function conditionallyImportPacket(\n packet: IOPacket,\n tracer?: TriggerTracer\n): Promise<IOPacket> {\n if (packet.dataType !== \"application/store\") {\n return packet;\n }\n\n if (!tracer) {\n return await importPacket(packet);\n } else {\n const result = await tracer.startActiveSpan(\n \"store.downloadPayload\",\n async (span) => {\n return await importPacket(packet, span);\n },\n {\n attributes: {\n [SemanticInternalAttributes.STYLE_ICON]: \"cloud-download\",\n },\n }\n );\n\n return result ?? packet;\n }\n}\n\nasync function importPacket(packet: IOPacket, span?: Span): Promise<IOPacket> {\n if (!packet.data) {\n return packet;\n }\n\n if (!apiClientManager.client) {\n return packet;\n }\n\n const presignedResponse = await apiClientManager.client.getPayloadUrl(packet.data);\n\n const response = await fetch(presignedResponse.presignedUrl);\n\n if (!response.ok) {\n throw new Error(\n `Failed to import packet ${presignedResponse.presignedUrl}: ${response.statusText}`\n );\n }\n\n const data = await response.text();\n\n span?.setAttribute(\"size\", Buffer.byteLength(data, \"utf8\"));\n\n return {\n data,\n dataType: response.headers.get(\"content-type\") ?? \"application/json\",\n };\n}\n\nexport async function createPacketAttributes(\n packet: IOPacket,\n dataKey: string,\n dataTypeKey: string\n): Promise<Attributes | undefined> {\n if (!packet.data) {\n return;\n }\n\n switch (packet.dataType) {\n case \"application/json\":\n return {\n ...flattenAttributes(packet, dataKey),\n [dataTypeKey]: packet.dataType,\n };\n case \"application/super+json\":\n const { parse } = await loadSuperJSON();\n\n if (typeof packet.data === \"undefined\" || packet.data === null) {\n return;\n }\n\n try {\n const parsed = parse(packet.data) as any;\n const jsonified = JSON.parse(JSON.stringify(parsed, safeReplacer));\n\n const result = {\n ...flattenAttributes(jsonified, dataKey),\n [dataTypeKey]: \"application/json\",\n };\n\n return result;\n } catch (e) {\n return;\n }\n\n case \"application/store\":\n return {\n [dataKey]: packet.data,\n [dataTypeKey]: packet.dataType,\n };\n case \"text/plain\":\n return {\n [dataKey]: packet.data,\n [dataTypeKey]: packet.dataType,\n };\n default:\n return;\n }\n}\n\nexport async function createPacketAttributesAsJson(\n data: any,\n dataType: string\n): Promise<Attributes> {\n if (\n typeof data === \"string\" ||\n typeof data === \"number\" ||\n typeof data === \"boolean\" ||\n data === null ||\n data === undefined\n ) {\n return data;\n }\n\n switch (dataType) {\n case \"application/json\":\n return imposeAttributeLimits(flattenAttributes(data, undefined));\n case \"application/super+json\":\n const { deserialize } = await loadSuperJSON();\n\n const deserialized = deserialize(data) as any;\n const jsonify = safeJsonParse(JSON.stringify(deserialized, safeReplacer));\n\n return imposeAttributeLimits(flattenAttributes(jsonify, undefined));\n case \"application/store\":\n return data;\n default:\n return {};\n }\n}\n\nexport async function prettyPrintPacket(rawData: any, dataType?: string): Promise<string> {\n if (rawData === undefined) {\n return \"\";\n }\n\n if (dataType === \"application/super+json\") {\n if (typeof rawData === \"string\") {\n rawData = safeJsonParse(rawData);\n }\n const { deserialize } = await loadSuperJSON();\n\n return await prettyPrintPacket(deserialize(rawData), \"application/json\");\n }\n\n if (dataType === \"application/json\") {\n if (typeof rawData === \"string\") {\n rawData = safeJsonParse(rawData);\n }\n return JSON.stringify(rawData, safeReplacer, 2);\n }\n\n if (typeof rawData === \"string\") {\n return rawData;\n }\n\n return JSON.stringify(rawData, safeReplacer, 2);\n}\n\nfunction safeReplacer(key: string, value: any) {\n // If it is a BigInt\n if (typeof value === \"bigint\") {\n return value.toString(); // Convert to string\n }\n\n // if it is a Regex\n if (value instanceof RegExp) {\n return value.toString(); // Convert to string\n }\n\n // if it is a Set\n if (value instanceof Set) {\n return Array.from(value); // Convert to array\n }\n\n // if it is a Map, convert it to an object\n if (value instanceof Map) {\n const obj: Record<string, any> = {};\n value.forEach((v, k) => {\n obj[k] = v;\n });\n return obj;\n }\n\n return value; // Otherwise return the value as is\n}\n\nfunction getPacketExtension(outputType: string): string {\n switch (outputType) {\n case \"application/json\":\n return \"json\";\n case \"application/super+json\":\n return \"json\";\n case \"text/plain\":\n return \"txt\";\n default:\n return \"txt\";\n }\n}\n\nasync function loadSuperJSON(): Promise<typeof import(\"superjson\")> {\n return await import(\"superjson\");\n}\n\nfunction safeJsonParse(value: string): any {\n try {\n return JSON.parse(value);\n } catch {\n return;\n }\n}\n\nexport async function replaceSuperJsonPayload(original: string, newPayload: string) {\n const superjson = await loadSuperJSON();\n const originalObject = superjson.parse(original);\n const { meta } = superjson.serialize(originalObject);\n\n const newSuperJson = {\n json: JSON.parse(newPayload) as any,\n meta,\n };\n\n return superjson.deserialize(newSuperJson);\n}\n","import { PreciseDate } from \"@google-cloud/precise-date\";\nimport { Clock, ClockTime } from \"./clock\";\n\nexport type PreciseWallClockOptions = {\n origin?: ClockTime;\n now?: PreciseDate;\n};\n\nexport class PreciseWallClock implements Clock {\n private _origin: {\n clockTime: ClockTime;\n preciseDate: PreciseDate;\n };\n\n get #originClockTime() {\n return this._origin.clockTime;\n }\n\n get #originPreciseDate() {\n return this._origin.preciseDate;\n }\n\n constructor(options: PreciseWallClockOptions = {}) {\n this._origin = {\n clockTime: options.origin ?? process.hrtime(),\n preciseDate: options.now ?? new PreciseDate(),\n };\n }\n\n preciseNow(): [number, number] {\n const elapsedHrTime = process.hrtime(this.#originClockTime);\n const elapsedNanoseconds = BigInt(elapsedHrTime[0]) * BigInt(1e9) + BigInt(elapsedHrTime[1]);\n\n const preciseDate = new PreciseDate(this.#originPreciseDate.getFullTime() + elapsedNanoseconds);\n const dateStruct = preciseDate.toStruct();\n\n return [dateStruct.seconds, dateStruct.nanos];\n }\n\n reset() {\n this._origin = {\n clockTime: process.hrtime(),\n preciseDate: new PreciseDate(),\n };\n }\n}\n","import { Attributes, Span, SpanOptions } from \"@opentelemetry/api\";\nimport { Logger, SeverityNumber } from \"@opentelemetry/api-logs\";\nimport { iconStringForSeverity } from \"../icons\";\nimport { SemanticInternalAttributes } from \"../semanticInternalAttributes\";\nimport { TriggerTracer } from \"../tracer\";\nimport { flattenAttributes } from \"../utils/flattenAttributes\";\nimport { ClockTime } from \"../clock/clock\";\nimport { clock } from \"../clock-api\";\n\nexport type LogLevel = \"none\" | \"error\" | \"warn\" | \"info\" | \"debug\" | \"log\";\n\nexport const logLevels: Array<LogLevel> = [\"none\", \"error\", \"warn\", \"info\", \"debug\"];\n\nexport type TaskLoggerConfig = {\n logger: Logger;\n tracer: TriggerTracer;\n level: LogLevel;\n};\n\nexport interface TaskLogger {\n debug(message: string, properties?: Record<string, unknown>): void;\n log(message: string, properties?: Record<string, unknown>): void;\n info(message: string, properties?: Record<string, unknown>): void;\n warn(message: string, properties?: Record<string, unknown>): void;\n error(message: string, properties?: Record<string, unknown>): void;\n trace<T>(name: string, fn: (span: Span) => Promise<T>, options?: SpanOptions): Promise<T>;\n}\n\nexport class OtelTaskLogger implements TaskLogger {\n private readonly _level: number;\n\n constructor(private readonly _config: TaskLoggerConfig) {\n this._level = logLevels.indexOf(_config.level);\n }\n\n debug(message: string, properties?: Record<string, unknown>) {\n if (this._level < 4) return; // [\"none\", \"error\", \"warn\", \"info\", \"debug\"];\n\n this.#emitLog(message, this.#getTimestampInHrTime(), \"debug\", SeverityNumber.DEBUG, properties);\n }\n\n log(message: string, properties?: Record<string, unknown>) {\n if (this._level < 3) return; // [\"none\", \"error\", \"warn\", \"info\", \"debug\"];\n\n this.#emitLog(message, this.#getTimestampInHrTime(), \"log\", SeverityNumber.INFO, properties);\n }\n\n info(message: string, properties?: Record<string, unknown>) {\n if (this._level < 3) return; // [\"none\", \"error\", \"warn\", \"info\", \"debug\"];\n\n this.#emitLog(message, this.#getTimestampInHrTime(), \"info\", SeverityNumber.INFO, properties);\n }\n\n warn(message: string, properties?: Record<string, unknown>) {\n if (this._level < 2) return; // [\"none\", \"error\", \"warn\", \"info\", \"debug\"];\n\n this.#emitLog(message, this.#getTimestampInHrTime(), \"warn\", SeverityNumber.WARN, properties);\n }\n\n error(message: string, properties?: Record<string, unknown>) {\n if (this._level < 1) return; // [\"none\", \"error\", \"warn\", \"info\", \"debug\"];\n\n this.#emitLog(message, this.#getTimestampInHrTime(), \"error\", SeverityNumber.ERROR, properties);\n }\n\n #emitLog(\n message: string,\n timestamp: ClockTime,\n severityText: string,\n severityNumber: SeverityNumber,\n properties?: Record<string, unknown>\n ) {\n let attributes: Attributes = { ...flattenAttributes(safeJsonProcess(properties)) };\n\n const icon = iconStringForSeverity(severityNumber);\n if (icon !== undefined) {\n attributes[SemanticInternalAttributes.STYLE_ICON] = icon;\n }\n\n this._config.logger.emit({\n severityNumber,\n severityText,\n body: message,\n attributes,\n timestamp,\n });\n }\n\n trace<T>(name: string, fn: (span: Span) => Promise<T>, options?: SpanOptions): Promise<T> {\n return this._config.tracer.startActiveSpan(name, fn, options);\n }\n\n #getTimestampInHrTime(): ClockTime {\n return clock.preciseNow();\n }\n}\n\nexport class NoopTaskLogger implements TaskLogger {\n debug() {}\n log() {}\n info() {}\n warn() {}\n error() {}\n trace<T>(name: string, fn: (span: Span) => Promise<T>): Promise<T> {\n return fn({} as Span);\n }\n}\n\nfunction safeJsonProcess(value?: Record<string, unknown>): Record<string, unknown> | undefined {\n try {\n return JSON.parse(JSON.stringify(value, jsonErrorReplacer));\n } catch {\n return value;\n }\n}\n\nfunction jsonErrorReplacer(key: string, value: unknown) {\n if (value instanceof Error) {\n return {\n name: value.name,\n message: value.message,\n stack: value.stack,\n };\n }\n\n return value;\n}\n","import { SeverityNumber } from \"@opentelemetry/api-logs\";\n\nexport function iconStringForSeverity(severityNumber: SeverityNumber) {\n switch (severityNumber) {\n case SeverityNumber.UNSPECIFIED:\n return undefined;\n case SeverityNumber.TRACE:\n case SeverityNumber.TRACE2:\n case SeverityNumber.TRACE3:\n case SeverityNumber.TRACE4:\n return \"trace\";\n case SeverityNumber.DEBUG:\n case SeverityNumber.DEBUG2:\n case SeverityNumber.DEBUG3:\n case SeverityNumber.DEBUG4:\n return \"debug\";\n case SeverityNumber.INFO:\n case SeverityNumber.INFO2:\n case SeverityNumber.INFO3:\n case SeverityNumber.INFO4:\n return \"info\";\n case SeverityNumber.WARN:\n case SeverityNumber.WARN2:\n case SeverityNumber.WARN3:\n case SeverityNumber.WARN4:\n return \"warn\";\n case SeverityNumber.ERROR:\n case SeverityNumber.ERROR2:\n case SeverityNumber.ERROR3:\n case SeverityNumber.ERROR4:\n return \"error\";\n case SeverityNumber.FATAL:\n case SeverityNumber.FATAL2:\n case SeverityNumber.FATAL3:\n case SeverityNumber.FATAL4:\n return \"fatal\";\n }\n}\n","import { PreciseDate } from \"@google-cloud/precise-date\";\nimport { Clock } from \"./clock\";\n\nexport class SimpleClock implements Clock {\n preciseNow(): [number, number] {\n const now = new PreciseDate();\n const nowStruct = now.toStruct();\n\n return [nowStruct.seconds, nowStruct.nanos];\n }\n\n reset() {\n // do nothing\n }\n}\n","const API_NAME = \"clock\";\n\nimport { getGlobal, registerGlobal } from \"../utils/globals\";\nimport type { Clock, ClockTime } from \"./clock\";\nimport { SimpleClock } from \"./simpleClock\";\n\nconst SIMPLE_CLOCK = new SimpleClock();\n\nexport class ClockAPI {\n private static _instance?: ClockAPI;\n\n private constructor() {}\n\n public static getInstance(): ClockAPI {\n if (!this._instance) {\n this._instance = new ClockAPI();\n }\n\n return this._instance;\n }\n\n public setGlobalClock(clock: Clock): boolean {\n return registerGlobal(API_NAME, clock);\n }\n\n public preciseNow(): ClockTime {\n return this.#getClock().preciseNow();\n }\n\n public reset(): void {\n this.#getClock().reset();\n }\n\n #getClock(): Clock {\n return getGlobal(API_NAME) ?? SIMPLE_CLOCK;\n }\n}\n","// Split module-level variable definition into separate files to allow\n// tree-shaking on each api instance.\nimport { ClockAPI } from \"./clock\";\n/** Entrypoint for clock API */\nexport const clock = ClockAPI.getInstance();\n","import type * as logsAPI from \"@opentelemetry/api-logs\";\nimport { SeverityNumber } from \"@opentelemetry/api-logs\";\nimport util from \"node:util\";\nimport { iconStringForSeverity } from \"./icons\";\nimport { SemanticInternalAttributes } from \"./semanticInternalAttributes\";\nimport { flattenAttributes } from \"./utils/flattenAttributes\";\nimport { ClockTime } from \"./clock/clock\";\nimport { clock } from \"./clock-api\";\n\nexport class ConsoleInterceptor {\n constructor(\n private readonly logger: logsAPI.Logger,\n private readonly sendToStdIO: boolean\n ) {}\n\n // Intercept the console and send logs to the OpenTelemetry logger\n // during the execution of the callback\n async intercept<T>(console: Console, callback: () => Promise<T>): Promise<T> {\n // Save the original console methods\n const originalConsole = {\n log: console.log,\n info: console.info,\n warn: console.warn,\n error: console.error,\n debug: console.debug,\n };\n\n // Override the console methods\n console.log = this.log.bind(this);\n console.info = this.info.bind(this);\n console.warn = this.warn.bind(this);\n console.error = this.error.bind(this);\n console.debug = this.debug.bind(this);\n\n try {\n return await callback();\n } finally {\n // Restore the original console methods\n console.log = originalConsole.log;\n console.info = originalConsole.info;\n console.warn = originalConsole.warn;\n console.error = originalConsole.error;\n console.debug = originalConsole.debug;\n }\n }\n\n debug(...args: unknown[]): void {\n this.#handleLog(SeverityNumber.DEBUG, this.#getTimestampInHrTime(), \"Debug\", ...args);\n }\n\n log(...args: unknown[]): void {\n this.#handleLog(SeverityNumber.INFO, this.#getTimestampInHrTime(), \"Log\", ...args);\n }\n\n info(...args: unknown[]): void {\n this.#handleLog(SeverityNumber.INFO, this.#getTimestampInHrTime(), \"Info\", ...args);\n }\n\n warn(...args: unknown[]): void {\n this.#handleLog(SeverityNumber.WARN, this.#getTimestampInHrTime(), \"Warn\", ...args);\n }\n\n error(...args: unknown[]): void {\n this.#handleLog(SeverityNumber.ERROR, this.#getTimestampInHrTime(), \"Error\", ...args);\n }\n\n #handleLog(\n severityNumber: SeverityNumber,\n timestamp: ClockTime,\n severityText: string,\n ...args: unknown[]\n ): void {\n const body = util.format(...args);\n\n if (this.sendToStdIO) {\n if (severityNumber === SeverityNumber.ERROR) {\n process.stderr.write(body);\n } else {\n process.stdout.write(body);\n }\n }\n\n const parsed = tryParseJSON(body);\n\n if (parsed.ok) {\n this.logger.emit({\n severityNumber,\n severityText,\n body: getLogMessage(parsed.value, severityText),\n attributes: { ...this.#getAttributes(severityNumber), ...flattenAttributes(parsed.value) },\n timestamp,\n });\n\n return;\n }\n\n this.logger.emit({\n severityNumber,\n severityText,\n body,\n attributes: this.#getAttributes(severityNumber),\n timestamp,\n });\n }\n\n #getTimestampInHrTime(): ClockTime {\n return clock.preciseNow();\n }\n\n #getAttributes(severityNumber: SeverityNumber): logsAPI.LogAttributes {\n const icon = iconStringForSeverity(severityNumber);\n let result: logsAPI.LogAttributes = {};\n\n if (icon !== undefined) {\n result[SemanticInternalAttributes.STYLE_ICON] = icon;\n }\n\n return result;\n }\n}\n\nfunction getLogMessage(value: Record<string, unknown>, fallback: string): string {\n if (typeof value[\"message\"] === \"string\") {\n return value[\"message\"];\n }\n\n if (typeof value[\"msg\"] === \"string\") {\n return value[\"msg\"];\n }\n\n if (typeof value[\"body\"] === \"string\") {\n return value[\"body\"];\n }\n\n if (typeof value[\"error\"] === \"string\") {\n return value[\"error\"];\n }\n\n return fallback;\n}\n\nfunction tryParseJSON(\n value: string\n): { ok: true; value: Record<string, unknown> } | { ok: false; value: string } {\n try {\n const parsed = JSON.parse(value);\n\n if (typeof parsed === \"object\" && parsed !== null && !Array.isArray(parsed)) {\n return { ok: true, value: parsed };\n }\n\n return { ok: false, value };\n } catch (e) {\n return { ok: false, value };\n }\n}\n","import { TaskFileMetadata, TaskMetadata, TaskMetadataWithFilePath } from \"../schemas\";\nimport { TaskMetadataWithFunctions } from \"../types\";\nimport { TaskCatalog } from \"./catalog\";\n\nexport class StandardTaskCatalog implements TaskCatalog {\n private _taskMetadata: Map<string, TaskMetadata> = new Map();\n private _taskFunctions: Map<string, TaskMetadataWithFunctions[\"fns\"]> = new Map();\n private _taskFileMetadata: Map<string, TaskFileMetadata> = new Map();\n\n registerTaskMetadata(task: TaskMetadataWithFunctions): void {\n const { fns, ...metadata } = task;\n\n this._taskMetadata.set(task.id, metadata);\n this._taskFunctions.set(task.id, fns);\n }\n\n updateTaskMetadata(id: string, updates: Partial<TaskMetadataWithFunctions>): void {\n const existingMetadata = this._taskMetadata.get(id);\n\n if (existingMetadata) {\n this._taskMetadata.set(id, {\n ...existingMetadata,\n ...updates,\n });\n }\n\n if (updates.fns) {\n const existingFunctions = this._taskFunctions.get(id);\n\n if (existingFunctions) {\n this._taskFunctions.set(id, {\n ...existingFunctions,\n ...updates.fns,\n });\n }\n }\n }\n\n registerTaskFileMetadata(id: string, metadata: TaskFileMetadata): void {\n this._taskFileMetadata.set(id, metadata);\n }\n\n // Return all the tasks, without the functions\n getAllTaskMetadata(): Array<TaskMetadataWithFilePath> {\n const result: Array<TaskMetadataWithFilePath> = [];\n\n for (const [id, metadata] of this._taskMetadata) {\n const fileMetadata = this._taskFileMetadata.get(id);\n\n if (!fileMetadata) {\n continue;\n }\n\n result.push({\n ...metadata,\n ...fileMetadata,\n });\n }\n\n return result;\n }\n\n getTaskMetadata(id: string): TaskMetadataWithFilePath | undefined {\n const metadata = this._taskMetadata.get(id);\n const fileMetadata = this._taskFileMetadata.get(id);\n\n if (!metadata || !fileMetadata) {\n return undefined;\n }\n\n return {\n ...metadata,\n ...fileMetadata,\n };\n }\n\n getTask(id: string): TaskMetadataWithFunctions | undefined {\n const metadata = this._taskMetadata.get(id);\n const fileMetadata = this._taskFileMetadata.get(id);\n const fns = this._taskFunctions.get(id);\n\n if (!metadata || !fns || !fileMetadata) {\n return undefined;\n }\n\n return {\n ...metadata,\n ...fileMetadata,\n fns,\n };\n }\n\n taskExists(id: string): boolean {\n return this._taskMetadata.has(id);\n }\n\n disable() {\n // noop\n }\n}\n","import { UsageManager, UsageMeasurement, UsageSample } from \"./types\";\n\nexport class NoopUsageManager implements UsageManager {\n disable(): void {\n // Noop\n }\n\n start(): UsageMeasurement {\n return {\n sample: () => ({ cpuTime: 0, wallTime: 0 }),\n };\n }\n\n stop(measurement: UsageMeasurement): UsageSample {\n return measurement.sample();\n }\n\n pauseAsync<T>(cb: () => Promise<T>): Promise<T> {\n return cb();\n }\n\n sample(): UsageSample | undefined {\n return undefined;\n }\n}\n","const API_NAME = \"usage\";\n\nimport { getGlobal, registerGlobal, unregisterGlobal } from \"../utils/globals\";\nimport type { UsageManager, UsageMeasurement, UsageSample } from \"./types\";\nimport { NoopUsageManager } from \"./noopUsageManager\";\n\nconst NOOP_USAGE_MANAGER = new NoopUsageManager();\n\nexport class UsageAPI implements UsageManager {\n private static _instance?: UsageAPI;\n\n private constructor() {}\n\n public static getInstance(): UsageAPI {\n if (!this._instance) {\n this._instance = new UsageAPI();\n }\n\n return this._instance;\n }\n\n public setGlobalUsageManager(manager: UsageManager): boolean {\n return registerGlobal(API_NAME, manager);\n }\n\n public disable() {\n this.#getUsageManager().disable();\n unregisterGlobal(API_NAME);\n }\n\n public start(): UsageMeasurement {\n return this.#getUsageManager().start();\n }\n\n public stop(measurement: UsageMeasurement): UsageSample {\n return this.#getUsageManager().stop(measurement);\n }\n\n public pauseAsync<T>(cb: () => Promise<T>): Promise<T> {\n return this.#getUsageManager().pauseAsync(cb);\n }\n\n public sample(): UsageSample | undefined {\n return this.#getUsageManager().sample();\n }\n\n #getUsageManager(): UsageManager {\n return getGlobal(API_NAME) ?? NOOP_USAGE_MANAGER;\n }\n}\n","// Split module-level variable definition into separate files to allow\n// tree-shaking on each api instance.\nimport { UsageAPI } from \"./usage/api\";\n/** Entrypoint for usage API */\nexport const usage = UsageAPI.getInstance();\n","/**\n * Contains two parts: the first part is the seconds, the second part is the nanoseconds.\n *\n */\nexport type ClockTime = [number, number];\n\nexport interface Clock {\n preciseNow(): ClockTime;\n reset(): void;\n}\n\nexport function calculateDurationInMs(start: ClockTime, end: ClockTime): number {\n const [startSeconds, startNanoseconds] = start;\n const [endSeconds, endNanoseconds] = end;\n\n const seconds = endSeconds - startSeconds;\n const nanoseconds = endNanoseconds - startNanoseconds;\n\n return Math.floor(seconds * 1000 + nanoseconds / 1000000);\n}\n","import { UsageManager, UsageMeasurement, UsageSample } from \"./types\";\nimport { clock } from \"../clock-api\";\nimport { ClockTime, calculateDurationInMs } from \"../clock/clock\";\n\nclass DevUsageMeasurement implements UsageMeasurement {\n private _pauses: Map<string, { start: ClockTime; end?: ClockTime }> = new Map();\n private _endedAt: ClockTime | undefined;\n\n constructor(\n public readonly id: string,\n private startedAt: ClockTime = clock.preciseNow()\n ) {}\n\n stop() {\n this._endedAt = clock.preciseNow();\n }\n\n sample(): UsageSample {\n const endedAt = this._endedAt ?? clock.preciseNow();\n\n const wallTime = this.startedAt ? calculateDurationInMs(this.startedAt, endedAt) : 0;\n\n if (wallTime === 0) {\n return { cpuTime: 0, wallTime: 0 };\n }\n\n const totalPauses = Array.from(this._pauses.values()).reduce((total, pause) => {\n return total + calculateDurationInMs(pause.start, pause.end ?? endedAt);\n }, 0);\n\n const cpuTime = wallTime - totalPauses;\n\n return {\n wallTime,\n cpuTime,\n };\n }\n\n registerPause(pauseId: string, start: ClockTime, end?: ClockTime) {\n this._pauses.set(pauseId, { start, end });\n }\n}\n\nexport class DevUsageManager implements UsageManager {\n private _firstMeasurement?: DevUsageMeasurement;\n private _currentMeasurements: Map<string, DevUsageMeasurement> = new Map();\n private _pauses: Map<string, { start: ClockTime; end?: ClockTime }> = new Map();\n\n disable(): void {}\n\n sample(): UsageSample | undefined {\n return this._firstMeasurement?.sample();\n }\n\n start(): DevUsageMeasurement {\n // generate a random ID\n const id = generateRandomString();\n\n const measurement = new DevUsageMeasurement(id);\n\n if (!this._firstMeasurement) {\n this._firstMeasurement = measurement;\n }\n\n this._currentMeasurements.set(id, measurement);\n\n return measurement;\n }\n\n stop(measurement: DevUsageMeasurement): UsageSample {\n measurement.stop();\n\n const sample = measurement.sample();\n\n this._currentMeasurements.delete(measurement.id);\n\n return sample;\n }\n\n async pauseAsync<T>(cb: () => Promise<T>): Promise<T> {\n const pauseId = generateRandomString();\n\n const pauseStart = clock.preciseNow();\n\n try {\n this._pauses.set(pauseId, { start: pauseStart });\n\n for (const measurement of this._currentMeasurements.values()) {\n measurement.registerPause(pauseId, pauseStart);\n }\n\n return await cb();\n } finally {\n const pauseEnd = clock.preciseNow();\n\n this._pauses.set(pauseId, { start: pauseStart, end: pauseEnd });\n\n for (const measurement of this._currentMeasurements.values()) {\n measurement.registerPause(pauseId, pauseStart, pauseEnd);\n }\n }\n }\n}\n\nfunction generateRandomString() {\n let result = \"\";\n const characters = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\";\n const charactersLength = characters.length;\n\n for (var i = 0; i < 16; i++) {\n result += characters.charAt(Math.floor(Math.random() * charactersLength));\n }\n\n return result;\n}\n","import { setInterval } from \"node:timers/promises\";\nimport { UsageManager, UsageMeasurement, UsageSample } from \"./types\";\nimport { UsageClient } from \"./usageClient\";\n\nexport type ProdUsageManagerOptions = {\n heartbeatIntervalMs?: number;\n url?: string;\n jwt?: string;\n};\n\nexport class ProdUsageManager implements UsageManager {\n private _measurement: UsageMeasurement | undefined;\n private _abortController: AbortController | undefined;\n private _lastSample: UsageSample | undefined;\n private _usageClient: UsageClient | undefined;\n\n constructor(\n private readonly delegageUsageManager: UsageManager,\n private readonly options: ProdUsageManagerOptions\n ) {\n if (this.options.url && this.options.jwt) {\n this._usageClient = new UsageClient(this.options.url, this.options.jwt);\n }\n }\n\n get isReportingEnabled() {\n return typeof this._usageClient !== \"undefined\";\n }\n\n disable(): void {\n this.delegageUsageManager.disable();\n this._abortController?.abort();\n }\n\n sample(): UsageSample | undefined {\n return this._measurement?.sample();\n }\n\n start(): UsageMeasurement {\n if (!this.isReportingEnabled || !this.options.heartbeatIntervalMs) {\n return this.delegageUsageManager.start();\n }\n\n if (!this._measurement) {\n this._measurement = this.delegageUsageManager.start();\n\n this.#startReportingHeartbeat().catch(console.error);\n\n return this._measurement;\n }\n\n return this.delegageUsageManager.start();\n }\n\n stop(measurement: UsageMeasurement): UsageSample {\n return this.delegageUsageManager.stop(measurement);\n }\n\n async pauseAsync<T>(cb: () => Promise<T>): Promise<T> {\n return this.delegageUsageManager.pauseAsync(cb);\n }\n\n async #startReportingHeartbeat() {\n if (!this._measurement || !this.isReportingEnabled || !this.options.heartbeatIntervalMs) {\n return;\n }\n\n this._abortController = new AbortController();\n\n for await (const _ of setInterval(this.options.heartbeatIntervalMs)) {\n if (this._abortController.signal.aborted) {\n break;\n }\n\n await this.#reportUsage();\n }\n }\n\n async flush() {\n return await this.#reportUsage();\n }\n\n async #reportUsage() {\n if (!this._measurement) {\n return;\n }\n\n if (!this.isReportingEnabled) {\n return;\n }\n\n const client = this._usageClient;\n\n if (!client) {\n return;\n }\n\n const sample = this._measurement.sample();\n\n const cpuTimeSinceLastSample = this._lastSample\n ? sample.cpuTime - this._lastSample.cpuTime\n : sample.cpuTime;\n\n this._lastSample = sample;\n\n if (cpuTimeSinceLastSample <= 0) {\n return;\n }\n\n await client.sendUsageEvent({ durationMs: cpuTimeSinceLastSample });\n }\n}\n","import { apiClientManager } from \"../apiClientManager-api\";\n\nexport type UsageClientOptions = {\n token: string;\n baseUrl: string;\n};\n\nexport type UsageEvent = {\n durationMs: number;\n};\n\nexport class UsageClient {\n constructor(\n private readonly url: string,\n private jwt: string\n ) {}\n\n async sendUsageEvent(event: UsageEvent): Promise<void> {\n try {\n const response = await fetch(this.url, {\n method: \"POST\",\n body: JSON.stringify(event),\n headers: {\n \"content-type\": \"application/json\",\n \"x-trigger-jwt\": this.jwt,\n accept: \"application/json\",\n authorization: `Bearer ${apiClientManager.accessToken}`, // this is used to renew the JWT\n },\n });\n\n if (response.ok) {\n const renewedJwt = response.headers.get(\"x-trigger-jwt\");\n\n if (renewedJwt) {\n this.jwt = renewedJwt;\n }\n }\n } catch (error) {\n console.error(`Failed to send usage event: ${error}`);\n }\n }\n}\n"]}
|