@trigger.dev/sdk 0.2.22-next.0 → 0.2.22

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.js CHANGED
@@ -868,13 +868,17 @@ var Logger = class {
868
868
  ...__privateMethod(this, _formatTags, formatTags_fn).call(this)
869
869
  ]);
870
870
  }
871
- debug(...args) {
871
+ debug(message, ...args) {
872
872
  if (__privateGet(this, _level) < 5)
873
873
  return;
874
- console.debug(`[${formattedDateTime()}] ${__privateMethod(this, _formatName, formatName_fn).call(this)} `, ...[
875
- ...args,
876
- ...__privateMethod(this, _formatTags, formatTags_fn).call(this)
877
- ]);
874
+ const structuredLog = {
875
+ timestamp: formattedDateTime(),
876
+ name: __privateGet(this, _name),
877
+ tags: __privateGet(this, _tags),
878
+ message,
879
+ args: structureArgs(args)
880
+ };
881
+ console.debug(JSON.stringify(structuredLog));
878
882
  }
879
883
  };
880
884
  __name(Logger, "Logger");
@@ -905,6 +909,16 @@ function formattedDateTime() {
905
909
  return `${formattedHours}:${formattedMinutes}:${formattedSeconds}.${formattedMilliseconds}`;
906
910
  }
907
911
  __name(formattedDateTime, "formattedDateTime");
912
+ function structureArgs(args) {
913
+ if (args.length === 0) {
914
+ return;
915
+ }
916
+ if (args.length === 1 && typeof args[0] === "object") {
917
+ return args[0];
918
+ }
919
+ return args;
920
+ }
921
+ __name(structureArgs, "structureArgs");
908
922
 
909
923
  // ../internal-bridge/src/zodRPC.ts
910
924
  var RPCMessageSchema = import_zod14.z.object({
@@ -1085,7 +1099,7 @@ var import_zod15 = require("zod");
1085
1099
 
1086
1100
  // package.json
1087
1101
  var name = "@trigger.dev/sdk";
1088
- var version = "0.2.22-next.0";
1102
+ var version = "0.2.22";
1089
1103
 
1090
1104
  // src/connection.ts
1091
1105
  var import_uuid = require("uuid");
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.ts","../../common-schemas/src/json.ts","../../common-schemas/src/error.ts","../../common-schemas/src/logs.ts","../../common-schemas/src/waits.ts","../../common-schemas/src/events.ts","../../common-schemas/src/triggers.ts","../../common-schemas/src/fetch.ts","../../common-schemas/src/runOnce.ts","../../common-schemas/src/kv.ts","../src/events.ts","../../internal-bridge/src/schemas/host.ts","../../internal-bridge/src/schemas/server.ts","../../internal-bridge/src/schemas/common.ts","../../internal-bridge/src/zodRPC.ts","../../internal-bridge/src/logger.ts","../src/client.ts","../src/connection.ts","../src/localStorage.ts","../src/logger.ts","../src/keyValueStorage.ts","../src/trigger/index.ts","../src/customEvents.ts","../src/fetch.ts"],"sourcesContent":["export * from \"./events\";\nexport * from \"./trigger\";\nexport * from \"./customEvents\";\nexport * from \"./fetch\";\n\nimport { triggerRunLocalStorage } from \"./localStorage\";\nimport { SecureString } from \"./types\";\n\nexport function getTriggerRun() {\n return triggerRunLocalStorage.getStore();\n}\n\n/*\n * This function is used to create a secure string that can be used in the headers of a fetch request.\n * It is used to prevent the string from being logged in trigger.dev.\n * You can use it like this:\n *\n * await ctx.fetch(\"https://example.com\", {\n * headers: {\n * Authorization: secureString`Bearer ${ACCESS_TOKEN}`,\n * },\n * })\n */\nexport function secureString(\n strings: TemplateStringsArray,\n ...interpolations: string[]\n): SecureString {\n return {\n __secureString: true,\n strings: strings.raw as string[],\n interpolations,\n };\n}\n","import { z } from \"zod\";\n\nconst LiteralSchema = z.union([z.string(), z.number(), z.boolean(), z.null()]);\ntype Literal = z.infer<typeof LiteralSchema>;\n\ntype Json = Literal | { [key: string]: Json } | Json[];\n\nexport const JsonSchema: z.ZodType<Json> = z.lazy(() =>\n z.union([LiteralSchema, z.array(JsonSchema), z.record(JsonSchema)])\n);\n\nconst SerializableSchema = z.union([\n z.string(),\n z.number(),\n z.boolean(),\n z.null(),\n z.date(),\n z.undefined(),\n]);\ntype Serializable = z.infer<typeof SerializableSchema>;\n\ntype SerializableJson =\n | Serializable\n | { [key: string]: SerializableJson }\n | SerializableJson[];\n\nexport const SerializableJsonSchema: z.ZodType<SerializableJson> = z.lazy(() =>\n z.union([\n SerializableSchema,\n z.array(SerializableJsonSchema),\n z.record(SerializableJsonSchema),\n ])\n);\n","import { z } from \"zod\";\n\nexport const ErrorSchema = z.object({\n name: z.string(),\n message: z.string(),\n stackTrace: z.string().optional(),\n});\n","import { z } from \"zod\";\nimport { JsonSchema } from \"./json\";\n\nexport const LogMessageSchema = z.object({\n level: z.enum([\"DEBUG\", \"INFO\", \"WARN\", \"ERROR\"]),\n message: z.string(),\n properties: JsonSchema.default({}),\n});\n","import { z } from \"zod\";\n\nexport const DelaySchema = z.object({\n type: z.literal(\"DELAY\"),\n seconds: z.number().optional(),\n minutes: z.number().optional(),\n hours: z.number().optional(),\n days: z.number().optional(),\n});\n\nexport type Delay = z.infer<typeof DelaySchema>;\n\nexport const ScheduledForSchema = z.object({\n type: z.literal(\"SCHEDULE_FOR\"),\n scheduledFor: z.string().datetime(),\n});\n\nexport type Scheduled = z.infer<typeof ScheduledForSchema>;\n\nexport const WaitSchema = z.discriminatedUnion(\"type\", [\n DelaySchema,\n ScheduledForSchema,\n]);\n","import { z } from \"zod\";\nimport { JsonSchema, SerializableJsonSchema } from \"./json\";\n\nexport const CustomEventSchema = z.object({\n name: z.string(),\n payload: JsonSchema,\n context: JsonSchema.optional(),\n timestamp: z.string().datetime().optional(),\n delay: z\n .union([\n z.object({ seconds: z.number().int() }),\n z.object({ minutes: z.number().int() }),\n z.object({ hours: z.number().int() }),\n z.object({ days: z.number().int() }),\n z.object({ until: z.string().datetime() }),\n ])\n .optional(),\n});\n\nexport const SerializableCustomEventSchema = z.object({\n name: z.string(),\n payload: SerializableJsonSchema,\n context: SerializableJsonSchema.optional(),\n timestamp: z.string().datetime().optional(),\n delay: z\n .union([\n z.object({ seconds: z.number().int() }),\n z.object({ minutes: z.number().int() }),\n z.object({ hours: z.number().int() }),\n z.object({ days: z.number().int() }),\n z.object({ until: z.date() }),\n ])\n .optional(),\n});\n\nconst EventMatcherSchema = z.union([\n z.array(z.string()),\n z.array(z.number()),\n z.array(z.boolean()),\n]);\ntype EventMatcher = z.infer<typeof EventMatcherSchema>;\n\nexport type EventFilter = { [key: string]: EventMatcher | EventFilter };\n\nexport const EventFilterSchema: z.ZodType<EventFilter> = z.lazy(() =>\n z.record(z.union([EventMatcherSchema, EventFilterSchema]))\n);\n\nexport const ScheduledEventPayloadSchema = z.object({\n lastRunAt: z.coerce.date().optional(),\n scheduledTime: z.coerce.date(),\n});\n\nexport type ScheduledEventPayload = z.infer<typeof ScheduledEventPayloadSchema>;\n\nexport const ScheduleSourceRateSchema = z.object({\n rateOf: z.union([\n z.object({\n minutes: z.number().min(1).max(1440).int(),\n }),\n z.object({\n hours: z.number().min(1).max(720).int(),\n }),\n z.object({\n days: z.number().min(1).max(365).int(),\n }),\n ]),\n});\n\nexport type ScheduleSourceRate = z.infer<typeof ScheduleSourceRateSchema>;\n\nexport const ScheduleSourceCronSchema = z.object({\n cron: z.string(),\n});\n\nexport type ScheduleSourceCron = z.infer<typeof ScheduleSourceCronSchema>;\n\nexport const ScheduleSourceSchema = z.union([\n ScheduleSourceRateSchema,\n ScheduleSourceCronSchema,\n]);\n\nexport type ScheduleSource = z.infer<typeof ScheduleSourceSchema>;\n\nexport const ManualWebhookSourceSchema = z.object({\n verifyPayload: z.object({\n enabled: z.boolean(),\n header: z.string().optional(),\n }),\n event: z.string(),\n});\n\nexport const SlackBlockInteractionSourceSchema = z.object({\n type: z.literal(\"block_action\"),\n blockId: z.string(),\n actionIds: z.array(z.string()),\n});\n\nexport const SlackViewSubmissionInteractionSourceSchema = z.object({\n type: z.literal(\"view_submission\"),\n callbackIds: z.array(z.string()),\n});\n\nexport const SlackInteractionSourceSchema = z.discriminatedUnion(\"type\", [\n SlackBlockInteractionSourceSchema,\n SlackViewSubmissionInteractionSourceSchema,\n]);\n\nexport type SlackInteractionSource = z.infer<\n typeof SlackInteractionSourceSchema\n>;\n","import { z } from \"zod\";\nimport {\n EventFilterSchema,\n ScheduleSourceSchema,\n SlackInteractionSourceSchema,\n} from \"./events\";\nimport { JsonSchema } from \"./json\";\n\nexport const CustomEventTriggerSchema = z.object({\n type: z.literal(\"CUSTOM_EVENT\"),\n service: z.literal(\"trigger\"),\n name: z.string(),\n filter: EventFilterSchema,\n schema: JsonSchema.optional(),\n});\nexport type CustomEventTrigger = z.infer<typeof CustomEventTriggerSchema>;\n\nexport const WebhookEventTriggerSchema = z.object({\n type: z.literal(\"WEBHOOK\"),\n service: z.string(),\n name: z.string(),\n filter: EventFilterSchema,\n source: JsonSchema.optional(),\n manualRegistration: z.boolean().default(false),\n schema: JsonSchema.optional(),\n});\nexport type WebhookEventTrigger = z.infer<typeof WebhookEventTriggerSchema>;\n\nexport const HttpEventTriggerSchema = z.object({\n type: z.literal(\"HTTP_ENDPOINT\"),\n service: z.literal(\"trigger\"),\n name: z.string(),\n filter: EventFilterSchema,\n});\nexport type HttpEventTrigger = z.infer<typeof HttpEventTriggerSchema>;\n\nexport const ScheduledEventTriggerSchema = z.object({\n type: z.literal(\"SCHEDULE\"),\n service: z.literal(\"scheduler\"),\n name: z.string(),\n source: ScheduleSourceSchema,\n});\nexport type ScheduledEventTrigger = z.infer<typeof ScheduledEventTriggerSchema>;\n\nexport const SlackInteractionTriggerSchema = z.object({\n type: z.literal(\"SLACK_INTERACTION\"),\n service: z.literal(\"slack\"),\n name: z.string(),\n filter: EventFilterSchema,\n source: SlackInteractionSourceSchema,\n});\nexport type SlackInteractionEventTrigger = z.infer<\n typeof SlackInteractionTriggerSchema\n>;\n\nexport const TriggerMetadataSchema = z.discriminatedUnion(\"type\", [\n CustomEventTriggerSchema,\n WebhookEventTriggerSchema,\n HttpEventTriggerSchema,\n ScheduledEventTriggerSchema,\n SlackInteractionTriggerSchema,\n]);\n\nexport type TriggerMetadata = z.infer<typeof TriggerMetadataSchema>;\n","import { z } from \"zod\";\n\nexport const SecureStringSchema = z.object({\n __secureString: z.literal(true),\n strings: z.array(z.string()),\n interpolations: z.array(z.string()),\n});\n\nexport type SecureString = z.infer<typeof SecureStringSchema>;\n\nexport const RetrySchema = z.object({\n enabled: z.boolean().default(true),\n factor: z.number().default(1.8),\n maxTimeout: z.number().default(60000),\n minTimeout: z.number().default(1000),\n maxAttempts: z.number().default(10),\n statusCodes: z.array(z.number()).default([408, 429, 500, 502, 503, 504]),\n});\n\nexport const FetchRequestSchema = z.object({\n url: z.string(),\n headers: z.record(z.union([z.string(), SecureStringSchema])).optional(),\n method: z.enum([\n \"GET\",\n \"POST\",\n \"PUT\",\n \"DELETE\",\n \"PATCH\",\n \"HEAD\",\n \"OPTIONS\",\n \"TRACE\",\n ]),\n body: z.any(),\n retry: RetrySchema.optional(),\n});\n\nexport const FetchOutputSchema = z.object({\n status: z.number(),\n ok: z.boolean(),\n headers: z.record(z.string()),\n body: z.any().optional(),\n});\n\nexport type FetchRequest = z.infer<typeof FetchRequestSchema>;\nexport type FetchOutput = z.infer<typeof FetchOutputSchema>;\n\nexport const FetchResponseSchema = z.object({\n status: z.number(),\n headers: z.record(z.string()),\n body: z.any().optional(),\n});\n","import { z } from \"zod\";\nimport { SerializableJsonSchema } from \"./json\";\n\nexport const InitializeRunOnceSchema = z.object({\n type: z.enum([\"REMOTE\", \"LOCAL_ONLY\"]),\n});\n\nexport const CompleteRunOnceSchema = z.object({\n type: z.enum([\"REMOTE\", \"LOCAL_ONLY\"]),\n idempotencyKey: z.string(),\n output: z.string().optional(),\n});\n\nexport const ResolveRunOnceOuputSchema = z.object({\n idempotencyKey: z.string(),\n hasRun: z.boolean(),\n output: SerializableJsonSchema.optional(),\n});\n","import { z } from \"zod\";\nimport { SerializableJsonSchema } from \"./json\";\n\nexport const KVGetSchema = z.object({\n key: z.string(),\n namespace: z.string(),\n});\n\nexport type KVGetOperation = z.infer<typeof KVGetSchema>;\n\nexport const KVDeleteSchema = z.object({\n key: z.string(),\n namespace: z.string(),\n});\n\nexport type KVDeleteOperation = z.infer<typeof KVDeleteSchema>;\n\nexport const KVSetSchema = z.object({\n key: z.string(),\n namespace: z.string(),\n value: SerializableJsonSchema,\n});\n\nexport type KVSetOperation = z.infer<typeof KVSetSchema>;\n","import {\n EventFilterSchema,\n TriggerMetadataSchema,\n ScheduleSourceSchema,\n ScheduledEventPayloadSchema,\n} from \"@trigger.dev/common-schemas\";\nimport type {\n CustomEventTrigger,\n EventFilter,\n WebhookEventTrigger,\n} from \"@trigger.dev/common-schemas\";\nimport { z } from \"zod\";\nimport slugify from \"slug\";\nimport zodToJsonSchema from \"zod-to-json-schema\";\n\nexport type EventRule = z.infer<typeof EventFilterSchema>;\n\nexport type TriggerEvent<TSchema extends z.ZodTypeAny> = {\n metadata: z.infer<typeof TriggerMetadataSchema>;\n schema: TSchema;\n};\n\nexport type TriggerCustomEventOptions<TSchema extends z.ZodTypeAny> = {\n name: string;\n schema?: TSchema;\n filter?: EventFilter;\n};\n\nexport function customEvent<TSchema extends z.ZodTypeAny>(\n options: TriggerCustomEventOptions<TSchema>\n): TriggerEvent<TSchema> {\n const schema = options.schema ?? z.any();\n\n return {\n metadata: {\n type: \"CUSTOM_EVENT\",\n service: \"trigger\",\n name: options.name,\n filter: { event: [options.name], payload: options.filter ?? {} },\n schema: zodToJsonSchema(schema) as CustomEventTrigger[\"schema\"],\n },\n // @ts-ignore\n schema,\n };\n}\n\nexport type TriggerScheduleOptions = z.infer<typeof ScheduleSourceSchema>;\n\nexport function scheduleEvent(\n options: TriggerScheduleOptions\n): TriggerEvent<typeof ScheduledEventPayloadSchema> {\n return {\n metadata: {\n type: \"SCHEDULE\",\n service: \"scheduler\",\n name: \"scheduled-event\",\n source: options,\n },\n schema: ScheduledEventPayloadSchema,\n };\n}\n\nexport type TriggerWebhookEventOptions<TSchema extends z.ZodTypeAny> = {\n schema?: TSchema;\n service: string;\n eventName: string;\n filter?: EventFilter;\n verifyPayload?: {\n enabled: boolean;\n header: string;\n };\n};\n\nexport function webhookEvent<TSchema extends z.ZodTypeAny>(\n options: TriggerWebhookEventOptions<TSchema>\n): TriggerEvent<TSchema> {\n const schema = options.schema ?? z.any();\n\n return {\n metadata: {\n type: \"WEBHOOK\",\n service: slugify(options.service),\n name: options.eventName,\n filter: {\n service: [slugify(options.service)],\n payload: options.filter ?? {},\n event: [options.eventName],\n },\n source: {\n verifyPayload: options.verifyPayload ?? { enabled: false },\n event: options.eventName,\n },\n manualRegistration: true,\n schema: zodToJsonSchema(schema) as WebhookEventTrigger[\"schema\"],\n },\n // @ts-ignore\n schema,\n };\n}\n","import { z } from \"zod\";\nimport {\n FetchOutputSchema,\n JsonSchema,\n ResolveRunOnceOuputSchema,\n SerializableJsonSchema,\n} from \"@trigger.dev/common-schemas\";\n\nexport const HostRPCSchema = {\n TRIGGER_WORKFLOW: {\n request: z.object({\n id: z.string(),\n trigger: z.object({\n input: JsonSchema.default({}),\n context: JsonSchema.default({}),\n }),\n meta: z.object({\n environment: z.string(),\n workflowId: z.string(),\n organizationId: z.string(),\n apiKey: z.string(),\n isTest: z.boolean().default(false),\n appOrigin: z.string(),\n attempt: z.number().optional(),\n }),\n }),\n response: z.boolean(),\n },\n RESOLVE_REQUEST: {\n request: z.object({\n id: z.string(),\n key: z.string(),\n output: JsonSchema.default({}),\n meta: z.object({\n environment: z.string(),\n workflowId: z.string(),\n organizationId: z.string(),\n apiKey: z.string(),\n runId: z.string(),\n }),\n }),\n response: z.boolean(),\n },\n RESOLVE_DELAY: {\n request: z.object({\n id: z.string(),\n key: z.string(),\n meta: z.object({\n environment: z.string(),\n workflowId: z.string(),\n organizationId: z.string(),\n apiKey: z.string(),\n runId: z.string(),\n }),\n }),\n response: z.boolean(),\n },\n REJECT_REQUEST: {\n request: z.object({\n id: z.string(),\n key: z.string(),\n error: JsonSchema.default({}),\n meta: z.object({\n environment: z.string(),\n workflowId: z.string(),\n organizationId: z.string(),\n apiKey: z.string(),\n runId: z.string(),\n }),\n }),\n response: z.boolean(),\n },\n RESOLVE_FETCH_REQUEST: {\n request: z.object({\n id: z.string(),\n key: z.string(),\n output: FetchOutputSchema,\n meta: z.object({\n environment: z.string(),\n workflowId: z.string(),\n organizationId: z.string(),\n apiKey: z.string(),\n runId: z.string(),\n }),\n }),\n response: z.boolean(),\n },\n REJECT_FETCH_REQUEST: {\n request: z.object({\n id: z.string(),\n key: z.string(),\n error: JsonSchema.default({}),\n meta: z.object({\n environment: z.string(),\n workflowId: z.string(),\n organizationId: z.string(),\n apiKey: z.string(),\n runId: z.string(),\n }),\n }),\n response: z.boolean(),\n },\n RESOLVE_RUN_ONCE: {\n request: z.object({\n id: z.string(),\n key: z.string(),\n output: ResolveRunOnceOuputSchema,\n meta: z.object({\n environment: z.string(),\n workflowId: z.string(),\n organizationId: z.string(),\n apiKey: z.string(),\n runId: z.string(),\n }),\n }),\n response: z.boolean(),\n },\n RESOLVE_KV_GET: {\n request: z.object({\n key: z.string(),\n output: SerializableJsonSchema,\n meta: z.object({\n environment: z.string(),\n workflowId: z.string(),\n organizationId: z.string(),\n apiKey: z.string(),\n runId: z.string(),\n }),\n }),\n response: z.boolean(),\n },\n RESOLVE_KV_SET: {\n request: z.object({\n key: z.string(),\n meta: z.object({\n environment: z.string(),\n workflowId: z.string(),\n organizationId: z.string(),\n apiKey: z.string(),\n runId: z.string(),\n }),\n }),\n response: z.boolean(),\n },\n RESOLVE_KV_DELETE: {\n request: z.object({\n key: z.string(),\n meta: z.object({\n environment: z.string(),\n workflowId: z.string(),\n organizationId: z.string(),\n apiKey: z.string(),\n runId: z.string(),\n }),\n }),\n response: z.boolean(),\n },\n};\n\nexport type HostRPC = typeof HostRPCSchema;\n","import {\n CompleteRunOnceSchema,\n CustomEventSchema,\n FetchRequestSchema,\n InitializeRunOnceSchema,\n RetrySchema,\n SerializableJsonSchema,\n TriggerMetadataSchema,\n WaitSchema,\n} from \"@trigger.dev/common-schemas\";\nimport { z } from \"zod\";\n\nexport const ServerRPCSchema = {\n INITIALIZE_DELAY: {\n request: z.object({\n runId: z.string(),\n key: z.string(),\n wait: WaitSchema,\n timestamp: z.string(),\n }),\n response: z.boolean(),\n },\n SEND_REQUEST: {\n request: z.object({\n runId: z.string(),\n key: z.string(),\n request: z.object({\n service: z.string(),\n endpoint: z.string(),\n params: z.any(),\n version: z.string().optional(),\n }),\n timestamp: z.string(),\n }),\n response: z.boolean(),\n },\n SEND_FETCH: {\n request: z.object({\n runId: z.string(),\n key: z.string(),\n fetch: FetchRequestSchema,\n timestamp: z.string(),\n }),\n response: z.boolean(),\n },\n SEND_LOG: {\n request: z.object({\n runId: z.string(),\n key: z.string(),\n log: z.object({\n message: z.string(),\n level: z.enum([\"DEBUG\", \"INFO\", \"WARN\", \"ERROR\"]),\n properties: z.string().optional(),\n }),\n timestamp: z.string(),\n }),\n response: z.boolean(),\n },\n SEND_EVENT: {\n request: z.object({\n runId: z.string(),\n key: z.string(),\n event: CustomEventSchema,\n timestamp: z.string(),\n }),\n response: z.boolean(),\n },\n INITIALIZE_HOST: {\n request: z.object({\n apiKey: z.string(),\n workflowId: z.string(),\n workflowName: z.string(),\n trigger: TriggerMetadataSchema,\n packageVersion: z.string(),\n packageName: z.string(),\n triggerTTL: z.number().optional(),\n }),\n response: z\n .discriminatedUnion(\"type\", [\n z.object({\n type: z.literal(\"success\"),\n }),\n z.object({\n type: z.literal(\"error\"),\n message: z.string(),\n }),\n ])\n .nullable(),\n },\n INITIALIZE_HOST_V2: {\n request: z.object({\n apiKey: z.string(),\n workflowId: z.string(),\n workflowName: z.string(),\n trigger: TriggerMetadataSchema,\n packageVersion: z.string(),\n packageName: z.string(),\n triggerTTL: z.number().optional(),\n metadata: SerializableJsonSchema.optional(),\n }),\n response: z\n .discriminatedUnion(\"type\", [\n z.object({\n type: z.literal(\"success\"),\n data: z.object({\n workflow: z.object({\n id: z.string(),\n slug: z.string(),\n }),\n environment: z.object({\n id: z.string(),\n slug: z.string(),\n }),\n organization: z.object({\n id: z.string(),\n slug: z.string(),\n }),\n isNew: z.boolean(),\n url: z.string(),\n }),\n }),\n z.object({\n type: z.literal(\"error\"),\n message: z.string(),\n }),\n ])\n .nullable(),\n },\n START_WORKFLOW_RUN: {\n request: z.object({\n runId: z.string(),\n timestamp: z.string(),\n }),\n response: z.boolean(),\n },\n COMPLETE_WORKFLOW_RUN: {\n request: z.object({\n runId: z.string(),\n output: z.string().optional(),\n timestamp: z.string(),\n }),\n response: z.boolean(),\n },\n SEND_WORKFLOW_ERROR: {\n request: z.object({\n runId: z.string(),\n error: z.object({\n name: z.string(),\n message: z.string(),\n stackTrace: z.string().optional(),\n }),\n timestamp: z.string(),\n }),\n response: z.boolean(),\n },\n INITIALIZE_RUN_ONCE: {\n request: z.object({\n runId: z.string(),\n key: z.string(),\n timestamp: z.string(),\n runOnce: InitializeRunOnceSchema,\n }),\n response: z.boolean(),\n },\n COMPLETE_RUN_ONCE: {\n request: z.object({\n runId: z.string(),\n key: z.string(),\n timestamp: z.string(),\n runOnce: CompleteRunOnceSchema,\n }),\n response: z.boolean(),\n },\n SEND_KV_GET: {\n request: z.object({\n runId: z.string(),\n key: z.string(),\n timestamp: z.string(),\n get: z.object({\n namespace: z.string(),\n key: z.string(),\n }),\n }),\n response: z.boolean(),\n },\n SEND_KV_SET: {\n request: z.object({\n runId: z.string(),\n key: z.string(),\n timestamp: z.string(),\n set: z.object({\n namespace: z.string(),\n key: z.string(),\n value: SerializableJsonSchema,\n }),\n }),\n response: z.boolean(),\n },\n SEND_KV_DELETE: {\n request: z.object({\n runId: z.string(),\n key: z.string(),\n timestamp: z.string(),\n delete: z.object({\n namespace: z.string(),\n key: z.string(),\n }),\n }),\n response: z.boolean(),\n },\n};\n\nexport type ServerRPC = typeof ServerRPCSchema;\n","import { z } from \"zod\";\n\nexport const MESSAGE_META = z.object({\n data: z.any(),\n id: z.string(),\n type: z.union([z.literal(\"ACK\"), z.literal(\"MESSAGE\")]),\n});\n\nexport const TriggerEnvironmentSchema = z.enum([\"live\", \"development\"]);\nexport type TriggerEnvironment = z.infer<typeof TriggerEnvironmentSchema>;\n","import { z, ZodError } from \"zod\";\nimport { createHash } from \"node:crypto\";\nimport { IConnection } from \"./types\";\nimport { Logger } from \"./logger\";\n\nexport const RPCMessageSchema = z.object({\n id: z.string(),\n methodName: z.string(),\n data: z.any(),\n kind: z.enum([\"CALL\", \"RESPONSE\"]),\n});\n\nexport type RPCMessage = z.infer<typeof RPCMessageSchema>;\n\ninterface TransmitterSchema {\n [key: string]: {\n request: z.ZodFirstPartySchemaTypes | z.ZodDiscriminatedUnion<any, any>;\n response: z.ZodFirstPartySchemaTypes | z.ZodDiscriminatedUnion<any, any>;\n };\n}\n\nexport type ZodRPCHandlers<ReceiverSchema extends TransmitterSchema> = {\n [K in keyof ReceiverSchema]: (\n data: z.infer<ReceiverSchema[K][\"request\"]>\n ) => Promise<z.infer<ReceiverSchema[K][\"response\"]>>;\n};\n\ntype ZodRPCOptions<\n SenderSchema extends TransmitterSchema,\n ReceiverSchema extends TransmitterSchema\n> = {\n connection: IConnection;\n sender: SenderSchema;\n receiver: ReceiverSchema;\n handlers: ZodRPCHandlers<ReceiverSchema>;\n};\n\ntype onResponseCallback = (data: any) => void;\n\nexport class ZodRPC<\n SenderSchema extends TransmitterSchema,\n ReceiverSchema extends TransmitterSchema\n> {\n #connection: IConnection;\n #sender: SenderSchema;\n #receiver: ReceiverSchema;\n #handlers: ZodRPCHandlers<ReceiverSchema>;\n #pendingCalls = new Map<string, onResponseCallback>();\n #logger: Logger = new Logger(\"ZodRPC\");\n\n constructor(options: ZodRPCOptions<SenderSchema, ReceiverSchema>) {\n this.#connection = options.connection;\n this.#sender = options.sender;\n this.#receiver = options.receiver;\n this.#handlers = options.handlers;\n\n this.#connection.onMessage.attach(this.#onMessage.bind(this));\n }\n\n public resetConnection(connection: IConnection) {\n this.#connection.onMessage.detach();\n this.#connection = connection;\n this.#connection.onMessage.attach(this.#onMessage.bind(this));\n }\n\n async #onMessage(rawData: unknown) {\n try {\n const data = RPCMessageSchema.parse(JSON.parse(rawData as string));\n\n if (data.kind === \"CALL\") {\n await this.#onCall(data);\n }\n\n if (data.kind === \"RESPONSE\") {\n await this.#onResponse(data);\n }\n } catch (err) {\n this.#logger.error(err);\n }\n }\n\n async #onCall(message: RPCMessage) {\n try {\n await this.#handleCall(message);\n } catch (callError) {\n if (callError instanceof ZodError) {\n this.#logger.error(\n `[ZodRPC] Received invalid call:\\n${JSON.stringify(message)}: `,\n callError.errors\n );\n } else {\n this.#logger.error(\n `[ZodRPC] Error handling call:\\n${JSON.stringify(message)}: `,\n callError\n );\n }\n }\n }\n\n async #onResponse(message: RPCMessage) {\n try {\n await this.#handleResponse(message);\n } catch (callError) {\n if (callError instanceof ZodError) {\n this.#logger.error(\n `[ZodRPC] Received invalid response\\n\\n${JSON.stringify(message)}: `,\n callError.flatten()\n );\n } else {\n this.#logger.error(\n `[ZodRPC] Error handling response\\n\\n${JSON.stringify(message)}: `,\n callError\n );\n }\n }\n }\n\n public send<K extends keyof SenderSchema>(\n key: K,\n data: z.input<SenderSchema[K][\"request\"]>\n ) {\n this.#logger.debug(\"Sending call\", { key, data });\n\n const id = generateStableId(this.#connection.id, key as string, data);\n\n const message = packageMessage({ id, methodName: key as string, data });\n\n return new Promise<z.infer<SenderSchema[K][\"response\"]>>(\n (resolve, reject) => {\n this.#pendingCalls.set(id, (rawResponseText: string) => {\n try {\n const parsed = this.#sender[key][\"response\"].parse(rawResponseText);\n\n return resolve(parsed);\n } catch (err) {\n reject(err);\n }\n });\n\n this.#connection.send(message).catch((err) => reject(err));\n }\n );\n }\n\n async #handleCall(message: RPCMessage) {\n const receiver = this.#receiver;\n type MethodKeys = keyof typeof receiver;\n\n const methodName = message.methodName as MethodKeys;\n\n const method: ReceiverSchema[MethodKeys] | undefined =\n this.#receiver[methodName];\n\n if (!method) {\n throw new Error(`There is no method for ${message.methodName}`);\n }\n\n this.#logger.debug(\"Received call\", { message });\n\n // struggling to get real inference here\n const inputs = method.request.parse(message.data);\n\n const handler = this.#handlers[methodName];\n\n const returnValue = await handler(inputs);\n\n const preparedResponseText = packageResponse({\n id: message.id,\n methodName: methodName as string, //??\n data: returnValue,\n });\n\n try {\n await this.#connection.send(preparedResponseText);\n } catch (err) {\n this.#logger.error(\"Failed sending response\", preparedResponseText, err);\n }\n\n return;\n }\n\n async #handleResponse(message: RPCMessage) {\n const responseCallback = this.#pendingCalls.get(message.id);\n if (!responseCallback) return;\n\n responseCallback(message.data);\n\n this.#pendingCalls.delete(message.id);\n }\n}\n\n// Generates a stableId for a given request, based on:\n// - The connection id\n// - The request key\n// - The request data (serialized)\n// Returns a hash of the above\nfunction generateStableId(\n connId: string,\n reqKey: string,\n reqData: any\n): string {\n // Serialize the request data\n const serializedData = JSON.stringify(reqData);\n\n // Concatenate the connection id, request key, and serialized data\n const inputString = connId + reqKey + serializedData;\n\n // Generate a hash of the input string using the SHA-256 algorithm\n const hash = createHash(\"sha256\").update(inputString).digest(\"hex\");\n\n // Return the hash\n return hash;\n}\n\nfunction packageMessage({ id, methodName, data }: Omit<RPCMessage, \"kind\">) {\n const callerData: RPCMessage = {\n id,\n kind: \"CALL\",\n data,\n methodName,\n };\n\n return JSON.stringify(callerData);\n}\n\nfunction packageResponse({ id, methodName, data }: Omit<RPCMessage, \"kind\">) {\n const preparedResponseText: RPCMessage = {\n id: id,\n kind: \"RESPONSE\",\n methodName: methodName,\n data,\n };\n return JSON.stringify(preparedResponseText);\n}\n","// Create a logger class that uses the debug package internally\n\nconst logLevels = [\n \"disabled\",\n \"error\",\n \"log\",\n \"warn\",\n \"info\",\n \"debug\",\n] as const;\n\nexport type LogLevel = (typeof logLevels)[number];\n\nexport class Logger {\n #name: string;\n #tags: string[];\n readonly #level: number;\n\n constructor(name: string | string[], level: LogLevel = \"log\") {\n if (typeof name === \"string\") {\n this.#name = name;\n this.#tags = [];\n } else {\n const [n, ...tags] = name;\n\n this.#name = n;\n this.#tags = tags;\n }\n\n this.#level = logLevels.indexOf(\n (process.env.TRIGGER_LOG_LEVEL ?? level) as LogLevel\n );\n }\n\n log(...args: any[]) {\n if (this.#level < 1) return;\n\n console.log(`${this.#formatName()} `, ...[...args, ...this.#formatTags()]);\n }\n\n logClean(...args: any[]) {\n if (this.#level < 1) return;\n\n console.log(`${this.#formatName()} `, ...args);\n }\n\n error(...args: any[]) {\n if (this.#level < 2) return;\n\n console.error(\n `[${formattedDateTime()}] ${this.#formatName()} `,\n ...[...args, ...this.#formatTags()]\n );\n }\n\n warn(...args: any[]) {\n if (this.#level < 3) return;\n\n console.warn(\n `[${formattedDateTime()}] ${this.#formatName()} `,\n ...[...args, ...this.#formatTags()]\n );\n }\n\n info(...args: any[]) {\n if (this.#level < 4) return;\n\n console.info(\n `[${formattedDateTime()}] ${this.#formatName()} `,\n ...[...args, ...this.#formatTags()]\n );\n }\n\n debug(...args: any[]) {\n if (this.#level < 5) return;\n\n console.debug(\n `[${formattedDateTime()}] ${this.#formatName()} `,\n ...[...args, ...this.#formatTags()]\n );\n }\n\n #formatName() {\n if (Array.isArray(this.#name)) {\n return this.#name.map((name) => `[${name}]`).join(\"\");\n }\n\n return `[${this.#name}]`;\n }\n\n #formatTags() {\n return this.#tags.map((tag) => `[${tag}]`);\n }\n}\n\nfunction formattedDateTime() {\n const date = new Date();\n\n const hours = date.getHours();\n const minutes = date.getMinutes();\n const seconds = date.getSeconds();\n const milliseconds = date.getMilliseconds();\n\n // Make sure the time is always 2 digits\n const formattedHours = hours < 10 ? `0${hours}` : hours;\n const formattedMinutes = minutes < 10 ? `0${minutes}` : minutes;\n const formattedSeconds = seconds < 10 ? `0${seconds}` : seconds;\n const formattedMilliseconds =\n milliseconds < 10\n ? `00${milliseconds}`\n : milliseconds < 100\n ? `0${milliseconds}`\n : milliseconds;\n\n return `${formattedHours}:${formattedMinutes}:${formattedSeconds}.${formattedMilliseconds}`;\n}\n","import { FetchOutput } from \"@trigger.dev/common-schemas\";\nimport {\n HostRPCSchema,\n Logger,\n ServerRPCSchema,\n ZodRPC,\n} from \"internal-bridge\";\nimport { v4 } from \"uuid\";\nimport { WebSocket } from \"ws\";\nimport { z } from \"zod\";\nimport * as pkg from \"../package.json\";\nimport { HostConnection, TimeoutError } from \"./connection\";\nimport { triggerRunLocalStorage } from \"./localStorage\";\nimport { ContextLogger } from \"./logger\";\nimport { Trigger, TriggerOptions } from \"./trigger\";\nimport { TriggerContext, TriggerFetch } from \"./types\";\nimport { generateErrorMessage, ErrorMessageOptions } from \"zod-error\";\nimport { readFile } from \"node:fs/promises\";\nimport {\n ContextKeyValueStorage,\n KvDeleteFunction,\n KvGetFunction,\n KvSetFunction,\n} from \"./keyValueStorage\";\n\nconst zodErrorMessageOptions: ErrorMessageOptions = {\n delimiter: {\n error: \" 🔥 \",\n },\n};\n\ntype RunOnceOutput = { idempotencyKey: string; hasRun: boolean; output?: any };\n\nexport class TriggerClient<TSchema extends z.ZodTypeAny> {\n #trigger: Trigger<TSchema>;\n #options: TriggerOptions<TSchema>;\n\n #connection?: HostConnection;\n #serverRPC?: ZodRPC<typeof ServerRPCSchema, typeof HostRPCSchema>;\n\n #apiKey: string;\n #endpoint: string;\n\n #isConnected = false;\n #retryIntervalMs: number = 3_000;\n #logger: Logger;\n #closedByUser = false;\n\n #registerResponse?: {\n workflow: {\n id: string;\n slug: string;\n };\n environment: {\n id: string;\n slug: string;\n };\n organization: {\n id: string;\n slug: string;\n };\n isNew: boolean;\n url: string;\n };\n\n #responseCompleteCallbacks = new Map<\n string,\n {\n resolve: (output: any) => void;\n reject: (err?: any) => void;\n }\n >();\n\n #waitForCallbacks = new Map<\n string,\n {\n resolve: () => void;\n reject: (err?: any) => void;\n }\n >();\n\n #fetchCallbacks = new Map<\n string,\n {\n resolve: (output: FetchOutput) => void;\n reject: (err?: any) => void;\n }\n >();\n\n #runOnceCallbacks = new Map<\n string,\n {\n resolve: (output: RunOnceOutput) => void;\n reject: (err?: any) => void;\n }\n >();\n\n #kvGetCallbacks = new Map<\n string,\n {\n resolve: (output: any) => void;\n reject: (err?: any) => void;\n }\n >();\n\n #kvSetCallbacks = new Map<\n string,\n {\n resolve: () => void;\n reject: (err?: any) => void;\n }\n >();\n\n #kvDeleteCallbacks = new Map<\n string,\n {\n resolve: () => void;\n reject: (err?: any) => void;\n }\n >();\n\n constructor(trigger: Trigger<TSchema>, options: TriggerOptions<TSchema>) {\n this.#trigger = trigger;\n this.#options = options;\n\n const apiKey = this.#options.apiKey ?? process.env.TRIGGER_API_KEY;\n\n if (!apiKey) {\n throw new Error(\n \"Cannot connect to Trigger because of invalid API Key: Please include an API Key in the `apiKey` option or in the `TRIGGER_API_KEY` environment variable.\"\n );\n }\n\n this.#apiKey = apiKey;\n this.#endpoint =\n this.#options.endpoint ??\n process.env.TRIGGER_WSS_URL ??\n \"wss://wss.trigger.dev/ws\";\n this.#logger = new Logger(\n [\"trigger.dev\", this.#options.id],\n this.#options.logLevel\n );\n }\n\n async listen(instanceId?: string) {\n try {\n await this.#initializeConnection(instanceId);\n this.#initializeRPC();\n await this.#initializeHost();\n\n // async import terminalLink to avoid ESM error\n const terminalLink = (await import(\"terminal-link\")).default;\n\n if (this.#registerResponse?.isNew) {\n this.#logger.logClean(\n `🎉 Successfully registered \"${\n this.#trigger.name\n }\" to trigger.dev 👉 ${terminalLink(\n \"View on dashboard\",\n this.#registerResponse.url,\n { fallback: (text, url) => `${text}: (${url})` }\n )}. Listening for events...`\n );\n } else {\n this.#logger.log(\n `✨ Connected and listening for events 👉 ${terminalLink(\n \"View on dashboard\",\n this.#registerResponse!.url,\n { fallback: (text, url) => `${text}: (${url})` }\n )}`\n );\n }\n } catch (error) {\n this.#logger.log(`🚩 Could not connect to trigger.dev`);\n\n this.close();\n }\n }\n\n close() {\n this.#closedByUser = true;\n\n if (this.#serverRPC) {\n this.#serverRPC = undefined;\n }\n\n this.#connection?.close();\n this.#isConnected = false;\n }\n\n async #initializeConnection(instanceId?: string) {\n const id = instanceId ?? v4();\n\n this.#logger.debug(\"Initializing connection\", {\n id,\n endpoint: this.#endpoint,\n });\n\n const headers = { Authorization: `Bearer ${this.#apiKey}` };\n\n const connection = new HostConnection(\n new WebSocket(this.#endpoint, {\n headers,\n followRedirects: true,\n }),\n { id }\n );\n\n connection.onClose.attach(async ([code, reason]) => {\n if (this.#closedByUser) {\n this.#logger.debug(\"Connection closed by user, so we won't reconnect\");\n this.#closedByUser = false;\n return;\n }\n\n const chalk = (await import(\"chalk\")).default;\n\n this.#logger.error(\n `${chalk.red(\"error\")} Could not connect to trigger.dev${\n reason ? `: ${reason}` : `(code ${code})`\n }`\n );\n\n // If #isConnected is already false, that means we are already trying to reconnect\n if (!this.#isConnected) return;\n\n this.#logger.log(\"🔌 Reconnecting to trigger.dev...\");\n\n this.#isConnected = false;\n\n while (!this.#isConnected) {\n this.#initializeConnection(id)\n .then(() => {\n this.#logger.log(\"⚡ Reconnection successful\");\n })\n .catch(() => {});\n\n this.#logger.debug(\n `Reconnection failed, retrying in ${Math.round(\n this.#retryIntervalMs / 1000\n )} seconds`,\n id\n );\n\n await new Promise((resolve) =>\n setTimeout(resolve, this.#retryIntervalMs)\n );\n }\n });\n\n await connection.connect();\n\n this.#logger.debug(\"Connection initialized\", id);\n\n this.#connection = connection;\n this.#isConnected = true;\n\n if (this.#serverRPC) {\n this.#serverRPC.resetConnection(connection);\n await this.#initializeHost();\n }\n }\n\n async #initializeRPC() {\n if (!this.#connection) {\n throw new Error(\"Cannot initialize RPC without a connection\");\n }\n\n const serverRPC = new ZodRPC({\n connection: this.#connection,\n sender: ServerRPCSchema,\n receiver: HostRPCSchema,\n handlers: {\n RESOLVE_DELAY: async (data) => {\n this.#logger.debug(\"Handling RESOLVE_DELAY\", data);\n\n const waitCallbacks = this.#waitForCallbacks.get(\n messageKey(data.meta.runId, data.key)\n );\n\n if (!waitCallbacks) {\n this.#logger.debug(\n `Could not find wait callbacks for wait ID ${messageKey(\n data.meta.runId,\n data.key\n )}. This can happen when a workflow run is resumed`\n );\n\n return true;\n }\n\n const { resolve } = waitCallbacks;\n\n resolve();\n\n return true;\n },\n RESOLVE_RUN_ONCE: async (data) => {\n this.#logger.debug(\"Handling RESOLVE_RUN_ONCE\", data);\n\n const runOnceCallbacks = this.#runOnceCallbacks.get(\n messageKey(data.meta.runId, data.key)\n );\n\n if (!runOnceCallbacks) {\n this.#logger.debug(\n `Could not find runOnce callbacks for request ID ${messageKey(\n data.meta.runId,\n data.key\n )}. This can happen when a workflow run is resumed`\n );\n\n return true;\n }\n\n const { resolve } = runOnceCallbacks;\n\n resolve(data.output);\n\n return true;\n },\n RESOLVE_REQUEST: async (data) => {\n this.#logger.debug(\"Handling RESOLVE_REQUEST\", data);\n\n const requestCallbacks = this.#responseCompleteCallbacks.get(\n messageKey(data.meta.runId, data.key)\n );\n\n if (!requestCallbacks) {\n this.#logger.debug(\n `Could not find request callbacks for request ID ${messageKey(\n data.meta.runId,\n data.key\n )}. This can happen when a workflow run is resumed`\n );\n\n return true;\n }\n\n const { resolve } = requestCallbacks;\n\n resolve(data.output);\n\n return true;\n },\n REJECT_REQUEST: async (data) => {\n this.#logger.debug(\"Handling REJECT_REQUEST\", data);\n\n const requestCallbacks = this.#responseCompleteCallbacks.get(\n messageKey(data.meta.runId, data.key)\n );\n\n if (!requestCallbacks) {\n this.#logger.debug(\n `Could not find request callbacks for request ID ${messageKey(\n data.meta.runId,\n data.key\n )}. This can happen when a workflow run is resumed`\n );\n\n return true;\n }\n\n const { reject } = requestCallbacks;\n\n reject(data.error);\n\n return true;\n },\n RESOLVE_FETCH_REQUEST: async (data) => {\n this.#logger.debug(\"Handling RESOLVE_FETCH_REQUEST\", data);\n\n const fetchCallbacks = this.#fetchCallbacks.get(\n messageKey(data.meta.runId, data.key)\n );\n\n if (!fetchCallbacks) {\n this.#logger.debug(\n `Could not find fetch callbacks for request ID ${messageKey(\n data.meta.runId,\n data.key\n )}. This can happen when a workflow run is resumed`\n );\n\n return true;\n }\n\n const { resolve } = fetchCallbacks;\n\n resolve(data.output);\n\n return true;\n },\n REJECT_FETCH_REQUEST: async (data) => {\n this.#logger.debug(\"Handling REJECT_FETCH_REQUEST\", data);\n\n const fetchCallbacks = this.#fetchCallbacks.get(\n messageKey(data.meta.runId, data.key)\n );\n\n if (!fetchCallbacks) {\n this.#logger.debug(\n `Could not find fetch callbacks for request ID ${messageKey(\n data.meta.runId,\n data.key\n )}. This can happen when a workflow run is resumed`\n );\n\n return true;\n }\n\n const { reject } = fetchCallbacks;\n\n reject(data.error);\n\n return true;\n },\n RESOLVE_KV_GET: async (data) => {\n this.#logger.debug(\"Handling RESOLVE_KV_GET\", data);\n\n const getCallbacks = this.#kvGetCallbacks.get(\n messageKey(data.meta.runId, data.key)\n );\n\n if (!getCallbacks) {\n this.#logger.debug(\n `Could not find kvGet callbacks for request ID ${messageKey(\n data.meta.runId,\n data.key\n )}. This can happen when a workflow run is resumed`\n );\n\n return true;\n }\n\n const { resolve } = getCallbacks;\n\n resolve(data.output);\n\n return true;\n },\n RESOLVE_KV_SET: async (data) => {\n this.#logger.debug(\"Handling RESOLVE_KV_SET\", data);\n\n const setCallbacks = this.#kvSetCallbacks.get(\n messageKey(data.meta.runId, data.key)\n );\n\n if (!setCallbacks) {\n this.#logger.debug(\n `Could not find kvSet callbacks for request ID ${messageKey(\n data.meta.runId,\n data.key\n )}. This can happen when a workflow run is resumed`\n );\n\n return true;\n }\n\n const { resolve } = setCallbacks;\n\n resolve();\n\n return true;\n },\n RESOLVE_KV_DELETE: async (data) => {\n this.#logger.debug(\"Handling RESOLVE_KV_DELETE\", data);\n\n const deleteCallbacks = this.#kvDeleteCallbacks.get(\n messageKey(data.meta.runId, data.key)\n );\n\n if (!deleteCallbacks) {\n this.#logger.debug(\n `Could not find kvDelete callbacks for request ID ${messageKey(\n data.meta.runId,\n data.key\n )}. This can happen when a workflow run is resumed`\n );\n\n return true;\n }\n\n const { resolve } = deleteCallbacks;\n\n resolve();\n\n return true;\n },\n TRIGGER_WORKFLOW: async (data) => {\n this.#logger.debug(\"Handling TRIGGER_WORKFLOW\", data);\n\n const parsedEventData = this.#options.on.schema.safeParse(\n data.trigger.input\n );\n\n if (!parsedEventData.success) {\n await serverRPC.send(\"SEND_WORKFLOW_ERROR\", {\n runId: data.id,\n timestamp: String(highPrecisionTimestamp()),\n error: {\n name: \"Event validation error\",\n message: generateErrorMessage(\n parsedEventData.error.issues,\n zodErrorMessageOptions\n ),\n },\n });\n\n return true;\n }\n\n const fetchFunction: TriggerFetch = async (key, url, options) => {\n const result = new Promise<FetchOutput>((resolve, reject) => {\n this.#fetchCallbacks.set(messageKey(data.id, key), {\n resolve,\n reject,\n });\n });\n\n await serverRPC.send(\"SEND_FETCH\", {\n runId: data.id,\n key,\n fetch: {\n url: url.toString(),\n method: options.method ?? \"GET\",\n headers: options.headers,\n body: options.body,\n retry: options.retry,\n },\n timestamp: String(highPrecisionTimestamp()),\n });\n\n const response = await result;\n\n return {\n status: response.status,\n ok: response.ok,\n headers: response.headers,\n body: response.body\n ? (options.responseSchema ?? z.any()).parse(response.body)\n : undefined,\n };\n };\n\n const kvGetFunction: KvGetFunction = async (op) => {\n const result = new Promise<any>((resolve, reject) => {\n this.#kvGetCallbacks.set(messageKey(data.id, op.idempotencyKey), {\n resolve,\n reject,\n });\n });\n\n await serverRPC.send(\"SEND_KV_GET\", {\n runId: data.id,\n key: op.idempotencyKey,\n get: {\n namespace: op.namespace,\n key: op.key,\n },\n timestamp: String(highPrecisionTimestamp()),\n });\n\n const output = await result;\n\n return output;\n };\n\n const kvSetFunction: KvSetFunction = async (op) => {\n const result = new Promise<void>((resolve, reject) => {\n this.#kvSetCallbacks.set(messageKey(data.id, op.idempotencyKey), {\n resolve,\n reject,\n });\n });\n\n await serverRPC.send(\"SEND_KV_SET\", {\n runId: data.id,\n key: op.idempotencyKey,\n set: {\n namespace: op.namespace,\n key: op.key,\n value: op.value,\n },\n timestamp: String(highPrecisionTimestamp()),\n });\n\n await result;\n\n return;\n };\n\n const kvDeleteFunction: KvDeleteFunction = async (op) => {\n const result = new Promise<void>((resolve, reject) => {\n this.#kvDeleteCallbacks.set(\n messageKey(data.id, op.idempotencyKey),\n {\n resolve,\n reject,\n }\n );\n });\n\n await serverRPC.send(\"SEND_KV_DELETE\", {\n runId: data.id,\n key: op.idempotencyKey,\n delete: {\n namespace: op.namespace,\n key: op.key,\n },\n timestamp: String(highPrecisionTimestamp()),\n });\n\n await result;\n\n return;\n };\n\n const ctx: TriggerContext = {\n id: data.id,\n environment: data.meta.environment,\n apiKey: data.meta.apiKey,\n organizationId: data.meta.organizationId,\n isTest: data.meta.isTest,\n kv: new ContextKeyValueStorage(\n `workflow:${data.meta.workflowId}`,\n kvGetFunction,\n kvSetFunction,\n kvDeleteFunction\n ),\n globalKv: new ContextKeyValueStorage(\n `org:${data.meta.organizationId}`,\n kvGetFunction,\n kvSetFunction,\n kvDeleteFunction\n ),\n runKv: new ContextKeyValueStorage(\n `run:${data.id}`,\n kvGetFunction,\n kvSetFunction,\n kvDeleteFunction\n ),\n logger: new ContextLogger(async (level, message, properties) => {\n await serverRPC.send(\"SEND_LOG\", {\n runId: data.id,\n key: message,\n log: {\n level,\n message,\n properties: JSON.stringify(properties ?? {}),\n },\n timestamp: String(highPrecisionTimestamp()),\n });\n }),\n sendEvent: async (key, event) => {\n await serverRPC.send(\"SEND_EVENT\", {\n runId: data.id,\n key,\n event: JSON.parse(JSON.stringify(event)),\n timestamp: String(highPrecisionTimestamp()),\n });\n },\n waitFor: async (key, options) => {\n const result = new Promise<void>((resolve, reject) => {\n this.#waitForCallbacks.set(messageKey(data.id, key), {\n resolve,\n reject,\n });\n });\n\n await serverRPC.send(\"INITIALIZE_DELAY\", {\n runId: data.id,\n key,\n wait: {\n type: \"DELAY\",\n seconds: options.seconds,\n minutes: options.minutes,\n hours: options.hours,\n days: options.days,\n },\n timestamp: String(highPrecisionTimestamp()),\n });\n\n await result;\n\n return;\n },\n waitUntil: async (key, date: Date) => {\n const result = new Promise<void>((resolve, reject) => {\n this.#waitForCallbacks.set(messageKey(data.id, key), {\n resolve,\n reject,\n });\n });\n\n await serverRPC.send(\"INITIALIZE_DELAY\", {\n runId: data.id,\n key,\n wait: {\n type: \"SCHEDULE_FOR\",\n scheduledFor: date.toISOString(),\n },\n timestamp: String(highPrecisionTimestamp()),\n });\n\n await result;\n\n return;\n },\n runOnce: async (key, callback) => {\n const result = new Promise<RunOnceOutput>((resolve, reject) => {\n this.#runOnceCallbacks.set(messageKey(data.id, key), {\n resolve,\n reject,\n });\n });\n\n await serverRPC.send(\"INITIALIZE_RUN_ONCE\", {\n runId: data.id,\n key,\n runOnce: {\n type: \"REMOTE\",\n },\n timestamp: String(highPrecisionTimestamp()),\n });\n\n const { idempotencyKey, hasRun, output } = await result;\n\n if (hasRun) {\n return output;\n }\n\n const callbackResult = await callback(idempotencyKey);\n\n await serverRPC.send(\"COMPLETE_RUN_ONCE\", {\n runId: data.id,\n key,\n runOnce: {\n type: \"REMOTE\",\n idempotencyKey,\n output: callbackResult\n ? JSON.stringify(callbackResult)\n : undefined,\n },\n timestamp: String(highPrecisionTimestamp()),\n });\n\n return callbackResult;\n },\n runOnceLocalOnly: async (key, callback) => {\n const result = new Promise<RunOnceOutput>((resolve, reject) => {\n this.#runOnceCallbacks.set(messageKey(data.id, key), {\n resolve,\n reject,\n });\n });\n\n await serverRPC.send(\"INITIALIZE_RUN_ONCE\", {\n runId: data.id,\n key,\n runOnce: {\n type: \"LOCAL_ONLY\",\n },\n timestamp: String(highPrecisionTimestamp()),\n });\n\n const { idempotencyKey } = await result;\n\n return callback(idempotencyKey);\n },\n fetch: fetchFunction,\n };\n\n const eventData = parsedEventData.data;\n\n this.#logger.debug(\"Parsed event data\", eventData);\n\n const terminalLink = (await import(\"terminal-link\")).default;\n\n triggerRunLocalStorage.run(\n {\n performRequest: async (key, options) => {\n const result = new Promise((resolve, reject) => {\n this.#responseCompleteCallbacks.set(\n messageKey(data.id, key),\n {\n resolve,\n reject,\n }\n );\n });\n\n await serverRPC.send(\"SEND_REQUEST\", {\n runId: data.id,\n key,\n request: {\n service: options.service,\n endpoint: options.endpoint,\n params: options.params,\n version: options.version,\n },\n timestamp: String(highPrecisionTimestamp()),\n });\n\n const output = await result;\n\n if (!options.response?.schema) {\n return output;\n }\n\n return options.response.schema.parse(output);\n },\n sendEvent: async (key, event) => {\n await serverRPC.send(\"SEND_EVENT\", {\n runId: data.id,\n key,\n event: JSON.parse(JSON.stringify(event)),\n timestamp: String(highPrecisionTimestamp()),\n });\n },\n fetch: fetchFunction,\n workflowId: data.meta.workflowId,\n appOrigin: data.meta.appOrigin,\n id: data.id,\n },\n () => {\n this.#logger.debug(\"Running trigger...\");\n\n if (\n typeof data.meta.attempt === \"number\" &&\n data.meta.attempt === 0\n ) {\n this.#logger.log(\n `Run ${data.id} started 👉 ${terminalLink(\n \"View on dashboard\",\n `${this.#registerResponse!.url}/runs/${data.id}`,\n { fallback: (text, url) => `${text}: (${url})` }\n )}`\n );\n }\n\n serverRPC\n .send(\"START_WORKFLOW_RUN\", {\n runId: data.id,\n timestamp: String(highPrecisionTimestamp()),\n })\n .then(() => {\n return this.#trigger.options\n .run(eventData, ctx)\n .then((output) => {\n this.#logger.log(\n `Run ${data.id} complete 👉 ${terminalLink(\n \"View on dashboard\",\n `${this.#registerResponse!.url}/runs/${data.id}`,\n { fallback: (text, url) => `${text}: (${url})` }\n )}`\n );\n\n return serverRPC.send(\"COMPLETE_WORKFLOW_RUN\", {\n runId: data.id,\n output: JSON.stringify(output),\n timestamp: String(highPrecisionTimestamp()),\n });\n })\n .catch((anyError) => {\n const parseAnyError = (\n error: any\n ): {\n name: string;\n message: string;\n stackTrace?: string;\n } => {\n if (error instanceof Error) {\n return {\n name: error.name,\n message: error.message,\n stackTrace: error.stack,\n };\n }\n\n const parsedError = z\n .object({ name: z.string(), message: z.string() })\n .passthrough()\n .safeParse(error);\n\n if (parsedError.success) {\n return parsedError.data;\n }\n\n return {\n name: \"UnknownError\",\n message: \"An unknown error occurred\",\n };\n };\n\n const error = parseAnyError(anyError);\n\n return serverRPC.send(\"SEND_WORKFLOW_ERROR\", {\n runId: data.id,\n error,\n timestamp: String(highPrecisionTimestamp()),\n });\n });\n })\n .catch((anyError) => {\n return serverRPC.send(\"SEND_WORKFLOW_ERROR\", {\n runId: data.id,\n error: anyError,\n timestamp: String(highPrecisionTimestamp()),\n });\n });\n }\n );\n\n return true;\n },\n },\n });\n\n this.#logger.debug(\"Successfully initialized RPC with server\");\n\n this.#serverRPC = serverRPC;\n }\n\n async #initializeHost() {\n if (!this.#connection) {\n throw new Error(\"Cannot initialize host without a connection\");\n }\n\n if (!this.#serverRPC) {\n throw new Error(\"Cannot initialize host without an RPC connection\");\n }\n\n const repoInfo = await safeGetRepoInfo();\n const remoteUrl = repoInfo\n ? await getRemoteUrl(repoInfo.commonGitDir)\n : undefined;\n\n const packageMetadata = await getTriggerPackageEnvVars(process.env);\n\n const response = await this.#send(\"INITIALIZE_HOST_V2\", {\n apiKey: this.#apiKey,\n workflowId: this.#trigger.id,\n workflowName: this.#trigger.name,\n trigger: this.#trigger.on.metadata,\n packageVersion: pkg.version,\n packageName: pkg.name,\n triggerTTL: this.#options.triggerTTL,\n metadata: {\n git: repoInfo\n ? {\n sha: repoInfo.sha,\n branch: repoInfo.branch,\n committer: repoInfo.committer,\n committerDate: repoInfo.committerDate,\n commitMessage: repoInfo.commitMessage,\n origin: remoteUrl,\n }\n : undefined,\n packageMetadata,\n env: gatherEnvVars(process.env),\n },\n });\n\n if (!response) {\n throw new Error(\"Could not initialize workflow with server\");\n }\n\n if (response?.type === \"error\") {\n throw new Error(response.message);\n }\n\n this.#registerResponse = response.data;\n\n this.#logger.debug(\"Successfully initialized workflow with server\");\n }\n\n async #send<MethodName extends keyof typeof ServerRPCSchema>(\n methodName: MethodName,\n request: z.input<(typeof ServerRPCSchema)[MethodName][\"request\"]>\n ) {\n if (!this.#serverRPC) throw new Error(\"serverRPC not initialized\");\n\n while (true) {\n try {\n this.#logger.debug(\n `Sending RPC request to server: ${methodName}`,\n request\n );\n\n return await this.#serverRPC.send(methodName, request);\n } catch (err) {\n if (err instanceof TimeoutError) {\n this.#logger.log(\n `RPC call timed out, retrying in ${Math.round(\n this.#retryIntervalMs / 1000\n )}s...`\n );\n\n this.#logger.error(err);\n\n await sleep(this.#retryIntervalMs);\n } else {\n throw err;\n }\n }\n }\n }\n}\n\nexport const sleep = (ms: number) =>\n new Promise((resolve) => setTimeout(resolve, ms));\n\nconst messageKey = (runId: string, key: string) => `${runId}:${key}`;\n\nfunction highPrecisionTimestamp() {\n const [seconds, nanoseconds] = process.hrtime();\n\n return seconds * 1e9 + nanoseconds;\n}\n\n// Gets the environment variables prefixed with npm_package_triggerdotdev_ and returns them as an object\n// Alternatively, if there is a npm_package_json env var set, we can try and read the file and parse it\nasync function getTriggerPackageEnvVars(\n env: NodeJS.ProcessEnv\n): Promise<Record<string, string | number | boolean>> {\n if (!env) {\n return {};\n }\n\n // Path to the package.json file\n if (env.npm_package_json) {\n try {\n const packageJson = JSON.parse(\n await readFile(env.npm_package_json, \"utf8\")\n );\n\n if (packageJson.triggerdotdev) {\n return packageJson.triggerdotdev;\n }\n } catch (err) {\n // Ignore\n }\n }\n\n const envVars = Object.entries(env)\n .filter(([key]) => key.startsWith(\"npm_package_triggerdotdev_\"))\n .map(([key, value]) => [\n key.replace(\"npm_package_triggerdotdev_\", \"\"),\n value,\n ]);\n\n return Object.fromEntries(envVars);\n}\n\nasync function getRemoteUrl(cwd: string) {\n try {\n const gitRemoteOriginUrl = (await import(\"git-remote-origin-url\")).default;\n return await gitRemoteOriginUrl({ cwd });\n } catch (err) {\n return;\n }\n}\n\nasync function safeGetRepoInfo() {\n try {\n const gitRepoInfo = (await import(\"git-repo-info\")).default;\n return gitRepoInfo();\n } catch (err) {\n return;\n }\n}\n\n// Get all env vars that are prefixed with TRIGGER_ (exccpt for TRIGGER_API_KEY)\nfunction gatherEnvVars(env: NodeJS.ProcessEnv): Record<string, string> {\n if (!env) {\n return {};\n }\n\n const envVars = Object.entries(env)\n .filter(([key]) => key.startsWith(\"TRIGGER_\") && key !== \"TRIGGER_API_KEY\")\n .map(([key, value]) => [key.replace(\"TRIGGER_\", \"\"), `${value}`]);\n\n return Object.fromEntries(envVars);\n}\n","import type { WebSocket as NodeWebSocket } from \"ws\";\nimport { v4 } from \"uuid\";\nimport { Evt } from \"evt\";\nimport { IConnection, Logger, MESSAGE_META } from \"internal-bridge\";\n\nexport class TimeoutError extends Error {}\nexport class NotConnectedError extends Error {}\n\ntype PendingMessage = {\n data: string;\n onAckReceived: () => void;\n};\n\nexport type ConnectionOptions = {\n connectTimeout?: number;\n sendTimeout?: number;\n pingTimeout?: number;\n id?: string;\n};\n\nexport class HostConnection implements IConnection {\n id: string;\n onMessage: Evt<string>;\n onAuthenticated: Evt<void>;\n onClose: Evt<[number, string]>;\n onOpen: Evt<void>;\n onError: Evt<Error>;\n\n #socket: WebSocket | NodeWebSocket;\n\n #connectTimeout: number;\n #sendTimeout: number;\n #pingTimeout: number;\n #isAuthenticated: boolean = false;\n #timeouts: Set<NodeJS.Timeout>;\n #isClosed: boolean = false;\n #pendingMessages = new Map<string, PendingMessage>();\n #logger: Logger;\n\n #pingIntervalHandle: NodeJS.Timeout | undefined;\n #pingIntervalMs: number = 30_000; // 30 seconds\n #closeUnresponsiveConnectionTimeoutMs: number = 3 * 60 * 1000; // 3 minutes\n\n constructor(socket: WebSocket | NodeWebSocket, options?: ConnectionOptions) {\n this.#socket = socket;\n this.id = options?.id ?? v4();\n\n this.onMessage = new Evt();\n this.onAuthenticated = new Evt<void>();\n this.onClose = new Evt<[number, string]>();\n this.onOpen = new Evt();\n this.onError = new Evt<Error>();\n\n this.#connectTimeout = options?.connectTimeout ?? 5000;\n this.#sendTimeout = options?.sendTimeout ?? 5000;\n this.#pingTimeout = options?.pingTimeout ?? 5000;\n\n this.#timeouts = new Set();\n\n this.#logger = new Logger(\"trigger.dev connection\");\n\n this.onClose.attach(() => {\n this.#isClosed = true;\n\n if (this.#pingIntervalHandle) {\n clearInterval(this.#pingIntervalHandle);\n this.#pingIntervalHandle = undefined;\n }\n\n for (const timeout of this.#timeouts) {\n clearTimeout(timeout);\n }\n\n this.#timeouts.clear();\n });\n\n this.#socket.onopen = () => {\n this.#isClosed = false;\n this.onOpen.post();\n\n this.#startPingInterval();\n };\n\n this.#socket.onclose = (ev: CloseEvent) => {\n this.onClose.post([ev.code, ev.reason]);\n };\n\n this.#socket.onerror = (ev: ErrorEvent | Event) => {\n const message = \"message\" in ev ? ev.message : \"Unknown error\";\n\n this.onError.post(new Error(message));\n };\n\n this.#socket.onmessage = (event: MessageEvent) => {\n if (this.#isClosed) return;\n\n const data = JSON.parse(event.data.toString());\n const metadata = MESSAGE_META.parse(data);\n\n if (metadata.type === \"ACK\") {\n const pendingMessage = this.#pendingMessages.get(metadata.id);\n\n if (pendingMessage) {\n pendingMessage.onAckReceived();\n this.#pendingMessages.delete(metadata.id);\n }\n }\n\n if (metadata.type === \"MESSAGE\") {\n socket.send(JSON.stringify({ type: \"ACK\", id: metadata.id }));\n\n if (metadata.data === \"AUTHENTICATED\") {\n this.#isAuthenticated = true;\n this.onAuthenticated.post();\n return;\n }\n\n this.onMessage.post(metadata.data);\n }\n };\n\n if (\"pong\" in socket) {\n socket.on(\"pong\", (buf) => {\n const id = buf.toString();\n const pendingMessage = this.#pendingMessages.get(id);\n\n if (pendingMessage?.data === \"ping\") {\n pendingMessage.onAckReceived();\n }\n });\n }\n }\n\n async connect() {\n this.#logger.debug(\"[connect] Attempting to connect\");\n\n return new Promise<void>((resolve, reject) => {\n if (\n this.#socket.readyState === this.#socket.OPEN &&\n this.#isAuthenticated\n ) {\n this.#logger.debug(\"[connect] Already connected, resolving\");\n\n return resolve();\n }\n\n const failTimeout = setTimeout(() => {\n this.#logger.debug(\"[connect] Connection timed out, rejecting\");\n\n reject(new TimeoutError());\n }, this.#connectTimeout);\n\n this.#timeouts.add(failTimeout);\n\n this.onAuthenticated.attach(() => {\n clearTimeout(failTimeout);\n this.#timeouts.delete(failTimeout);\n\n this.#logger.debug(\"[connect] Connected, resolving\");\n\n resolve();\n });\n });\n }\n\n async send(data: string) {\n if (this.#isClosed) throw new NotConnectedError();\n\n return new Promise<void>((resolve, reject) => {\n const id = v4();\n\n const failTimeout = setTimeout(() => {\n reject(new TimeoutError());\n }, this.#sendTimeout);\n\n this.#timeouts.add(failTimeout);\n\n this.#pendingMessages.set(id, {\n data,\n onAckReceived: () => {\n clearTimeout(failTimeout);\n\n this.#timeouts.delete(failTimeout);\n\n resolve();\n },\n });\n\n this.#socket.send(JSON.stringify({ id, data, type: \"MESSAGE\" }));\n });\n }\n\n close(code?: number, reason?: string) {\n this.#isClosed = true;\n this.onMessage.detach();\n return this.#socket.close(code, reason);\n }\n\n #startPingInterval() {\n // Do the ping stuff here\n let lastSuccessfulPing = new Date();\n this.#pingIntervalHandle = setInterval(async () => {\n if (!this.#socket.OPEN) {\n if (this.#pingIntervalHandle) {\n clearInterval(this.#pingIntervalHandle);\n this.#pingIntervalHandle = undefined;\n }\n\n return;\n }\n\n try {\n await this.#ping();\n lastSuccessfulPing = new Date();\n } catch (err) {\n this.#logger.warn(\"Pong not received in time\");\n if (!(err instanceof TimeoutError)) {\n this.#logger.error(err);\n }\n\n if (\n lastSuccessfulPing.getTime() <\n new Date().getTime() - this.#closeUnresponsiveConnectionTimeoutMs\n ) {\n this.#logger.error(\n \"No pong received in last three minutes, closing connection to Trigger.dev and retrying...\"\n );\n if (this.#pingIntervalHandle) {\n clearInterval(this.#pingIntervalHandle);\n this.#pingIntervalHandle = undefined;\n }\n this.#socket.close();\n }\n }\n }, this.#pingIntervalMs);\n }\n\n async #ping() {\n if (!this.#socket.OPEN) {\n throw new NotConnectedError();\n }\n\n if (!(\"ping\" in this.#socket)) {\n // Not supported in web client WebSocket\n throw new Error(\n \"ping not supported in this underlying websocket connection\"\n );\n }\n\n const socket = this.#socket;\n\n return new Promise<void>((resolve, reject) => {\n const id = v4();\n\n const failTimeout = setTimeout(() => {\n reject(new TimeoutError(\"Pong not received in time\"));\n }, this.#pingTimeout);\n\n this.#timeouts.add(failTimeout);\n\n this.#pendingMessages.set(id, {\n data: \"ping\",\n onAckReceived: () => {\n clearTimeout(failTimeout);\n\n this.#timeouts.delete(failTimeout);\n\n this.#logger.debug(`Resolving ping`);\n\n resolve();\n },\n });\n\n this.#logger.debug(`Sending ping ${id} to ${socket.url}`);\n\n socket.ping(id, undefined, (err) => {\n if (err) {\n reject(err);\n }\n });\n });\n }\n}\n","import { AsyncLocalStorage } from \"node:async_hooks\";\nimport { z } from \"zod\";\nimport { TriggerCustomEvent, TriggerFetch } from \"./types\";\n\ntype PerformRequestOptions<TSchema extends z.ZodTypeAny> = {\n version?: string;\n service: string;\n params: unknown;\n endpoint: string;\n response?: {\n schema: TSchema;\n };\n};\n\ntype TriggerRunLocalStorage = {\n performRequest: <TSchema extends z.ZodTypeAny>(\n key: string,\n options: PerformRequestOptions<TSchema>\n ) => Promise<z.infer<TSchema>>;\n sendEvent: (key: string, event: TriggerCustomEvent) => Promise<void>;\n fetch: TriggerFetch;\n workflowId: string;\n appOrigin: string;\n id: string;\n};\n\nexport const triggerRunLocalStorage =\n new AsyncLocalStorage<TriggerRunLocalStorage>();\n","import { TriggerLogger } from \"./types\";\n\ntype CallbackFunction = (\n level: \"DEBUG\" | \"INFO\" | \"WARN\" | \"ERROR\",\n message: string,\n properties?: Record<string, any>\n) => Promise<void>;\n\nexport class ContextLogger implements TriggerLogger {\n constructor(private callback: CallbackFunction) {}\n\n debug(message: string, properties?: Record<string, any>): Promise<void> {\n return this.callback(\"DEBUG\", message, properties);\n }\n info(message: string, properties?: Record<string, any>): Promise<void> {\n return this.callback(\"INFO\", message, properties);\n }\n warn(message: string, properties?: Record<string, any>): Promise<void> {\n return this.callback(\"WARN\", message, properties);\n }\n error(message: string, properties?: Record<string, any>): Promise<void> {\n return this.callback(\"ERROR\", message, properties);\n }\n}\n","import { TriggerKeyValueStorage } from \"./types\";\n\nexport type KvSetFunction = (operation: {\n key: string;\n namespace: string;\n idempotencyKey: string;\n value: any;\n}) => Promise<void>;\nexport type KvGetFunction = (operation: {\n key: string;\n namespace: string;\n idempotencyKey: string;\n}) => Promise<any>;\nexport type KvDeleteFunction = (operation: {\n key: string;\n namespace: string;\n idempotencyKey: string;\n}) => Promise<any>;\n\nexport class ContextKeyValueStorage implements TriggerKeyValueStorage {\n getCount: number = 0;\n setCount: number = 0;\n deleteCount: number = 0;\n\n constructor(\n private namespace: string,\n private onGet: KvGetFunction,\n private onSet: KvSetFunction,\n private onDelete: KvDeleteFunction\n ) {}\n\n get<T>(key: string): Promise<T | undefined> {\n const operation = {\n key,\n namespace: this.namespace,\n idempotencyKey: `get:${this.namespace}:${key}:${this.getCount++}`,\n };\n\n return this.onGet(operation);\n }\n set<T>(key: string, value: T): Promise<void> {\n const operation = {\n key,\n namespace: this.namespace,\n idempotencyKey: `set:${this.namespace}:${key}:${this.setCount++}`,\n value,\n };\n\n return this.onSet(operation);\n }\n\n delete(key: string): Promise<void> {\n const operation = {\n key,\n namespace: this.namespace,\n idempotencyKey: `delete:${this.namespace}:${key}:${this.deleteCount++}`,\n };\n\n return this.onDelete(operation);\n }\n}\n","import { TriggerClient } from \"../client\";\nimport { LogLevel } from \"internal-bridge\";\nimport { TriggerEvent } from \"../events\";\nimport type { TriggerContext } from \"../types\";\nimport { z } from \"zod\";\n\nexport type TriggerOptions<TSchema extends z.ZodTypeAny> = {\n id: string;\n name: string;\n on: TriggerEvent<TSchema>;\n apiKey?: string;\n endpoint?: string;\n logLevel?: LogLevel;\n\n /**\n * The TTL for the trigger in seconds. If the trigger is not run within this time, it will be aborted. Defaults to 3600 seconds (1 hour).\n * @type {number}\n */\n triggerTTL?: number;\n\n run: (event: z.infer<TSchema>, ctx: TriggerContext) => Promise<any>;\n};\n\nexport class Trigger<TSchema extends z.ZodTypeAny> {\n options: TriggerOptions<TSchema>;\n #client: TriggerClient<TSchema> | undefined;\n\n constructor(options: TriggerOptions<TSchema>) {\n this.options = options;\n }\n\n async listen() {\n const apiKey = this.#getApiKey();\n\n const chalk = (await import(\"chalk\")).default;\n const terminalLink = (await import(\"terminal-link\")).default;\n\n if (apiKey.status === \"invalid\") {\n console.log(\n `${chalk.red(\"Trigger.dev error\")}: ${chalk.bold(\n this.id\n )} is has an invalid API key (\"${chalk.italic(\n apiKey.apiKey\n )}\"), please set the TRIGGER_API_KEY environment variable or pass the apiKey option to a valid value. ${terminalLink(\n \"Get your API key here\",\n \"https://app.trigger.dev\",\n {\n fallback(text, url) {\n return `${text} 👉 ${url}`;\n },\n }\n )}`\n );\n\n return;\n } else if (apiKey.status === \"missing\") {\n console.log(\n `${chalk.red(\"Trigger.dev error\")}: ${chalk.bold(\n this.id\n )} is missing an API key, please set the TRIGGER_API_KEY environment variable or pass the apiKey option to the Trigger constructor. ${terminalLink(\n \"Get your API key here\",\n \"https://app.trigger.dev\",\n {\n fallback(text, url) {\n return `${text} 👉 ${url}`;\n },\n }\n )}`\n );\n\n return;\n }\n\n if (!this.#client) {\n this.#client = new TriggerClient(this, this.options);\n }\n\n return this.#client.listen();\n }\n\n get id() {\n return this.options.id;\n }\n\n get name() {\n return this.options.name;\n }\n\n get endpoint() {\n return this.options.endpoint;\n }\n\n get on() {\n return this.options.on;\n }\n\n #getApiKey() {\n const apiKey = this.options.apiKey ?? process.env.TRIGGER_API_KEY;\n\n if (!apiKey) {\n return { status: \"missing\" as const };\n }\n\n // Validate the api_key format (should be trigger_{env}_XXXXX)\n const isValid = apiKey.match(/^trigger_[a-z]+_[a-zA-Z0-9]+$/);\n\n if (!isValid) {\n return { status: \"invalid\" as const, apiKey };\n }\n\n return { status: \"valid\" as const, apiKey };\n }\n}\n","import { triggerRunLocalStorage } from \"./localStorage\";\nimport type { TriggerCustomEvent } from \"./types\";\nimport fetch from \"node-fetch\";\n\nexport function sendEvent(\n idOrKey: string,\n event: TriggerCustomEvent\n): Promise<void> {\n const triggerRun = triggerRunLocalStorage.getStore();\n\n if (!triggerRun) {\n // Do it through the API\n return sendEventFetch(idOrKey, event);\n }\n\n return triggerRun.sendEvent(idOrKey, event);\n}\n\nasync function sendEventFetch(\n id: string,\n event: TriggerCustomEvent\n): Promise<void> {\n if (!process.env.TRIGGER_API_KEY) {\n throw new Error(\n `There was a problem sending a custom event: the TRIGGER_API_KEY environment variable is not set`\n );\n }\n\n const baseUrl = process.env.TRIGGER_API_URL || \"https://app.trigger.dev\";\n const url = `${baseUrl}/api/v1/events`;\n\n const response = await fetch(url, {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n Authorization: `Bearer ${process.env.TRIGGER_API_KEY}`,\n },\n body: JSON.stringify({\n id,\n event,\n }),\n });\n\n if (!response.ok) {\n throw new Error(\n `There was a problem sending a custom event: ${response.statusText}`\n );\n }\n\n return;\n}\n","import { triggerRunLocalStorage } from \"./localStorage\";\nimport { z } from \"zod\";\nimport { FetchOptions, FetchResponse } from \"./types\";\n\nexport function fetch<TBodySchema extends z.ZodTypeAny = z.ZodTypeAny>(\n key: string,\n url: string | URL,\n options: FetchOptions<TBodySchema>\n): Promise<FetchResponse<TBodySchema>> {\n const triggerRun = triggerRunLocalStorage.getStore();\n\n if (!triggerRun) {\n throw new Error(\"Cannot call fetch outside of a trigger run\");\n }\n\n return triggerRun.fetch(key, url, options);\n}\n"],"mappings":"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","names":["fetch","LiteralSchema","z","union","string","number","boolean","null","JsonSchema","lazy","array","record","SerializableSchema","date","undefined","SerializableJsonSchema","import_zod","ErrorSchema","z","object","name","string","message","stackTrace","optional","import_zod","LogMessageSchema","z","object","level","enum","message","string","properties","JsonSchema","default","import_zod","DelaySchema","z","object","type","literal","seconds","number","optional","minutes","hours","days","ScheduledForSchema","scheduledFor","string","datetime","WaitSchema","discriminatedUnion","import_zod","CustomEventSchema","z","object","name","string","payload","JsonSchema","context","optional","timestamp","datetime","delay","union","seconds","number","int","minutes","hours","days","until","SerializableCustomEventSchema","SerializableJsonSchema","date","EventMatcherSchema","array","boolean","EventFilterSchema","lazy","record","ScheduledEventPayloadSchema","lastRunAt","coerce","scheduledTime","ScheduleSourceRateSchema","rateOf","min","max","ScheduleSourceCronSchema","cron","ScheduleSourceSchema","ManualWebhookSourceSchema","verifyPayload","enabled","header","event","SlackBlockInteractionSourceSchema","type","literal","blockId","actionIds","SlackViewSubmissionInteractionSourceSchema","callbackIds","SlackInteractionSourceSchema","discriminatedUnion","import_zod","CustomEventTriggerSchema","z","object","type","literal","service","name","string","filter","EventFilterSchema","schema","JsonSchema","optional","WebhookEventTriggerSchema","source","manualRegistration","boolean","default","HttpEventTriggerSchema","ScheduledEventTriggerSchema","ScheduleSourceSchema","SlackInteractionTriggerSchema","SlackInteractionSourceSchema","TriggerMetadataSchema","discriminatedUnion","import_zod","SecureStringSchema","z","object","__secureString","literal","strings","array","string","interpolations","RetrySchema","enabled","boolean","default","factor","number","maxTimeout","minTimeout","maxAttempts","statusCodes","FetchRequestSchema","url","headers","record","union","optional","method","enum","body","any","retry","FetchOutputSchema","status","ok","FetchResponseSchema","import_zod","InitializeRunOnceSchema","z","object","type","enum","CompleteRunOnceSchema","idempotencyKey","string","output","optional","ResolveRunOnceOuputSchema","hasRun","boolean","SerializableJsonSchema","import_zod","KVGetSchema","z","object","key","string","namespace","KVDeleteSchema","KVSetSchema","value","SerializableJsonSchema","import_zod","customEvent","options","schema","z","any","metadata","type","service","name","filter","event","payload","zodToJsonSchema","scheduleEvent","source","ScheduledEventPayloadSchema","webhookEvent","slugify","eventName","verifyPayload","enabled","manualRegistration","import_zod","HostRPCSchema","TRIGGER_WORKFLOW","request","z","object","id","string","trigger","input","JsonSchema","default","context","meta","environment","workflowId","organizationId","apiKey","isTest","boolean","appOrigin","attempt","number","optional","response","RESOLVE_REQUEST","key","output","runId","RESOLVE_DELAY","REJECT_REQUEST","error","RESOLVE_FETCH_REQUEST","FetchOutputSchema","REJECT_FETCH_REQUEST","RESOLVE_RUN_ONCE","ResolveRunOnceOuputSchema","RESOLVE_KV_GET","SerializableJsonSchema","RESOLVE_KV_SET","RESOLVE_KV_DELETE","import_zod","ServerRPCSchema","INITIALIZE_DELAY","request","z","object","runId","string","key","wait","WaitSchema","timestamp","response","boolean","SEND_REQUEST","service","endpoint","params","any","version","optional","SEND_FETCH","fetch","FetchRequestSchema","SEND_LOG","log","message","level","enum","properties","SEND_EVENT","event","CustomEventSchema","INITIALIZE_HOST","apiKey","workflowId","workflowName","trigger","TriggerMetadataSchema","packageVersion","packageName","triggerTTL","number","discriminatedUnion","type","literal","nullable","INITIALIZE_HOST_V2","metadata","SerializableJsonSchema","data","workflow","id","slug","environment","organization","isNew","url","START_WORKFLOW_RUN","COMPLETE_WORKFLOW_RUN","output","SEND_WORKFLOW_ERROR","error","name","stackTrace","INITIALIZE_RUN_ONCE","runOnce","InitializeRunOnceSchema","COMPLETE_RUN_ONCE","CompleteRunOnceSchema","SEND_KV_GET","get","namespace","SEND_KV_SET","set","value","SEND_KV_DELETE","delete","import_zod","MESSAGE_META","z","object","data","any","id","string","type","union","literal","TriggerEnvironmentSchema","enum","import_zod","logLevels","Logger","constructor","name","level","n","tags","indexOf","process","env","TRIGGER_LOG_LEVEL","log","args","console","logClean","error","formattedDateTime","warn","info","debug","Array","isArray","map","join","tag","date","Date","hours","getHours","minutes","getMinutes","seconds","getSeconds","milliseconds","getMilliseconds","formattedHours","formattedMinutes","formattedSeconds","formattedMilliseconds","RPCMessageSchema","z","object","id","string","methodName","data","any","kind","enum","ZodRPC","constructor","options","Map","Logger","connection","sender","receiver","handlers","onMessage","attach","bind","resetConnection","detach","send","key","debug","generateStableId","message","packageMessage","Promise","resolve","reject","set","rawResponseText","parsed","parse","err","catch","rawData","JSON","error","callError","ZodError","stringify","errors","flatten","method","Error","inputs","request","handler","returnValue","preparedResponseText","packageResponse","responseCallback","get","delete","connId","reqKey","reqData","serializedData","inputString","hash","createHash","update","digest","callerData","import_uuid","import_zod","TimeoutError","Error","NotConnectedError","_logger","HostConnection","constructor","socket","options","Map","id","v4","onMessage","Evt","onAuthenticated","onClose","onOpen","onError","connectTimeout","sendTimeout","pingTimeout","Set","Logger","attach","clearInterval","undefined","timeout","clearTimeout","clear","onopen","post","onclose","ev","code","reason","onerror","message","onmessage","event","data","JSON","parse","toString","metadata","MESSAGE_META","type","pendingMessage","get","onAckReceived","delete","send","stringify","on","buf","connect","debug","Promise","resolve","reject","readyState","OPEN","failTimeout","setTimeout","add","set","close","detach","lastSuccessfulPing","Date","setInterval","err","warn","error","getTime","url","ping","triggerRunLocalStorage","AsyncLocalStorage","ContextLogger","constructor","callback","debug","message","properties","info","warn","error","ContextKeyValueStorage","constructor","namespace","onGet","onSet","onDelete","getCount","setCount","deleteCount","get","key","operation","idempotencyKey","set","value","delete","zodErrorMessageOptions","delimiter","error","_connection","_logger","TriggerClient","constructor","trigger","options","Map","apiKey","process","env","TRIGGER_API_KEY","Error","endpoint","TRIGGER_WSS_URL","Logger","id","logLevel","listen","instanceId","terminalLink","default","isNew","logClean","name","url","fallback","text","log","close","undefined","v4","debug","headers","Authorization","connection","HostConnection","WebSocket","followRedirects","onClose","attach","code","reason","chalk","red","then","catch","Math","round","Promise","resolve","setTimeout","connect","resetConnection","serverRPC","ZodRPC","sender","ServerRPCSchema","receiver","HostRPCSchema","handlers","RESOLVE_DELAY","data","waitCallbacks","get","messageKey","meta","runId","key","RESOLVE_RUN_ONCE","runOnceCallbacks","output","RESOLVE_REQUEST","requestCallbacks","REJECT_REQUEST","reject","RESOLVE_FETCH_REQUEST","fetchCallbacks","REJECT_FETCH_REQUEST","RESOLVE_KV_GET","getCallbacks","RESOLVE_KV_SET","setCallbacks","RESOLVE_KV_DELETE","deleteCallbacks","TRIGGER_WORKFLOW","parsedEventData","on","schema","safeParse","input","success","send","timestamp","String","highPrecisionTimestamp","message","generateErrorMessage","issues","fetchFunction","result","set","fetch","toString","method","body","retry","response","status","ok","responseSchema","z","any","parse","kvGetFunction","op","idempotencyKey","namespace","kvSetFunction","value","kvDeleteFunction","delete","ctx","environment","organizationId","isTest","kv","ContextKeyValueStorage","workflowId","globalKv","runKv","logger","ContextLogger","level","properties","JSON","stringify","sendEvent","event","waitFor","wait","type","seconds","minutes","hours","days","waitUntil","date","scheduledFor","toISOString","runOnce","callback","hasRun","callbackResult","runOnceLocalOnly","eventData","triggerRunLocalStorage","run","performRequest","request","service","params","version","appOrigin","attempt","anyError","parseAnyError","stackTrace","stack","parsedError","object","string","passthrough","repoInfo","safeGetRepoInfo","remoteUrl","getRemoteUrl","commonGitDir","packageMetadata","getTriggerPackageEnvVars","workflowName","metadata","packageVersion","packageName","triggerTTL","git","sha","branch","committer","committerDate","commitMessage","origin","gatherEnvVars","methodName","err","TimeoutError","sleep","ms","nanoseconds","hrtime","npm_package_json","packageJson","readFile","triggerdotdev","envVars","Object","entries","filter","startsWith","map","replace","fromEntries","cwd","gitRemoteOriginUrl","gitRepoInfo","Trigger","constructor","options","listen","apiKey","chalk","default","terminalLink","status","console","log","red","bold","id","italic","fallback","text","url","TriggerClient","name","endpoint","on","process","env","TRIGGER_API_KEY","isValid","match","sendEvent","idOrKey","event","triggerRun","triggerRunLocalStorage","getStore","sendEventFetch","id","process","env","TRIGGER_API_KEY","Error","baseUrl","TRIGGER_API_URL","url","response","fetch","method","headers","Authorization","body","JSON","stringify","ok","statusText","fetch","key","url","options","triggerRun","triggerRunLocalStorage","getStore","Error","getTriggerRun","triggerRunLocalStorage","getStore","secureString","strings","interpolations","__secureString","raw"]}
1
+ {"version":3,"sources":["../src/index.ts","../../common-schemas/src/json.ts","../../common-schemas/src/error.ts","../../common-schemas/src/logs.ts","../../common-schemas/src/waits.ts","../../common-schemas/src/events.ts","../../common-schemas/src/triggers.ts","../../common-schemas/src/fetch.ts","../../common-schemas/src/runOnce.ts","../../common-schemas/src/kv.ts","../src/events.ts","../../internal-bridge/src/schemas/host.ts","../../internal-bridge/src/schemas/server.ts","../../internal-bridge/src/schemas/common.ts","../../internal-bridge/src/zodRPC.ts","../../internal-bridge/src/logger.ts","../src/client.ts","../src/connection.ts","../src/localStorage.ts","../src/logger.ts","../src/keyValueStorage.ts","../src/trigger/index.ts","../src/customEvents.ts","../src/fetch.ts"],"sourcesContent":["export * from \"./events\";\nexport * from \"./trigger\";\nexport * from \"./customEvents\";\nexport * from \"./fetch\";\n\nimport { triggerRunLocalStorage } from \"./localStorage\";\nimport { SecureString } from \"./types\";\n\nexport function getTriggerRun() {\n return triggerRunLocalStorage.getStore();\n}\n\n/*\n * This function is used to create a secure string that can be used in the headers of a fetch request.\n * It is used to prevent the string from being logged in trigger.dev.\n * You can use it like this:\n *\n * await ctx.fetch(\"https://example.com\", {\n * headers: {\n * Authorization: secureString`Bearer ${ACCESS_TOKEN}`,\n * },\n * })\n */\nexport function secureString(\n strings: TemplateStringsArray,\n ...interpolations: string[]\n): SecureString {\n return {\n __secureString: true,\n strings: strings.raw as string[],\n interpolations,\n };\n}\n","import { z } from \"zod\";\n\nconst LiteralSchema = z.union([z.string(), z.number(), z.boolean(), z.null()]);\ntype Literal = z.infer<typeof LiteralSchema>;\n\ntype Json = Literal | { [key: string]: Json } | Json[];\n\nexport const JsonSchema: z.ZodType<Json> = z.lazy(() =>\n z.union([LiteralSchema, z.array(JsonSchema), z.record(JsonSchema)])\n);\n\nconst SerializableSchema = z.union([\n z.string(),\n z.number(),\n z.boolean(),\n z.null(),\n z.date(),\n z.undefined(),\n]);\ntype Serializable = z.infer<typeof SerializableSchema>;\n\ntype SerializableJson =\n | Serializable\n | { [key: string]: SerializableJson }\n | SerializableJson[];\n\nexport const SerializableJsonSchema: z.ZodType<SerializableJson> = z.lazy(() =>\n z.union([\n SerializableSchema,\n z.array(SerializableJsonSchema),\n z.record(SerializableJsonSchema),\n ])\n);\n","import { z } from \"zod\";\n\nexport const ErrorSchema = z.object({\n name: z.string(),\n message: z.string(),\n stackTrace: z.string().optional(),\n});\n","import { z } from \"zod\";\nimport { JsonSchema } from \"./json\";\n\nexport const LogMessageSchema = z.object({\n level: z.enum([\"DEBUG\", \"INFO\", \"WARN\", \"ERROR\"]),\n message: z.string(),\n properties: JsonSchema.default({}),\n});\n","import { z } from \"zod\";\n\nexport const DelaySchema = z.object({\n type: z.literal(\"DELAY\"),\n seconds: z.number().optional(),\n minutes: z.number().optional(),\n hours: z.number().optional(),\n days: z.number().optional(),\n});\n\nexport type Delay = z.infer<typeof DelaySchema>;\n\nexport const ScheduledForSchema = z.object({\n type: z.literal(\"SCHEDULE_FOR\"),\n scheduledFor: z.string().datetime(),\n});\n\nexport type Scheduled = z.infer<typeof ScheduledForSchema>;\n\nexport const WaitSchema = z.discriminatedUnion(\"type\", [\n DelaySchema,\n ScheduledForSchema,\n]);\n","import { z } from \"zod\";\nimport { JsonSchema, SerializableJsonSchema } from \"./json\";\n\nexport const CustomEventSchema = z.object({\n name: z.string(),\n payload: JsonSchema,\n context: JsonSchema.optional(),\n timestamp: z.string().datetime().optional(),\n delay: z\n .union([\n z.object({ seconds: z.number().int() }),\n z.object({ minutes: z.number().int() }),\n z.object({ hours: z.number().int() }),\n z.object({ days: z.number().int() }),\n z.object({ until: z.string().datetime() }),\n ])\n .optional(),\n});\n\nexport const SerializableCustomEventSchema = z.object({\n name: z.string(),\n payload: SerializableJsonSchema,\n context: SerializableJsonSchema.optional(),\n timestamp: z.string().datetime().optional(),\n delay: z\n .union([\n z.object({ seconds: z.number().int() }),\n z.object({ minutes: z.number().int() }),\n z.object({ hours: z.number().int() }),\n z.object({ days: z.number().int() }),\n z.object({ until: z.date() }),\n ])\n .optional(),\n});\n\nconst EventMatcherSchema = z.union([\n z.array(z.string()),\n z.array(z.number()),\n z.array(z.boolean()),\n]);\ntype EventMatcher = z.infer<typeof EventMatcherSchema>;\n\nexport type EventFilter = { [key: string]: EventMatcher | EventFilter };\n\nexport const EventFilterSchema: z.ZodType<EventFilter> = z.lazy(() =>\n z.record(z.union([EventMatcherSchema, EventFilterSchema]))\n);\n\nexport const ScheduledEventPayloadSchema = z.object({\n lastRunAt: z.coerce.date().optional(),\n scheduledTime: z.coerce.date(),\n});\n\nexport type ScheduledEventPayload = z.infer<typeof ScheduledEventPayloadSchema>;\n\nexport const ScheduleSourceRateSchema = z.object({\n rateOf: z.union([\n z.object({\n minutes: z.number().min(1).max(1440).int(),\n }),\n z.object({\n hours: z.number().min(1).max(720).int(),\n }),\n z.object({\n days: z.number().min(1).max(365).int(),\n }),\n ]),\n});\n\nexport type ScheduleSourceRate = z.infer<typeof ScheduleSourceRateSchema>;\n\nexport const ScheduleSourceCronSchema = z.object({\n cron: z.string(),\n});\n\nexport type ScheduleSourceCron = z.infer<typeof ScheduleSourceCronSchema>;\n\nexport const ScheduleSourceSchema = z.union([\n ScheduleSourceRateSchema,\n ScheduleSourceCronSchema,\n]);\n\nexport type ScheduleSource = z.infer<typeof ScheduleSourceSchema>;\n\nexport const ManualWebhookSourceSchema = z.object({\n verifyPayload: z.object({\n enabled: z.boolean(),\n header: z.string().optional(),\n }),\n event: z.string(),\n});\n\nexport const SlackBlockInteractionSourceSchema = z.object({\n type: z.literal(\"block_action\"),\n blockId: z.string(),\n actionIds: z.array(z.string()),\n});\n\nexport const SlackViewSubmissionInteractionSourceSchema = z.object({\n type: z.literal(\"view_submission\"),\n callbackIds: z.array(z.string()),\n});\n\nexport const SlackInteractionSourceSchema = z.discriminatedUnion(\"type\", [\n SlackBlockInteractionSourceSchema,\n SlackViewSubmissionInteractionSourceSchema,\n]);\n\nexport type SlackInteractionSource = z.infer<\n typeof SlackInteractionSourceSchema\n>;\n","import { z } from \"zod\";\nimport {\n EventFilterSchema,\n ScheduleSourceSchema,\n SlackInteractionSourceSchema,\n} from \"./events\";\nimport { JsonSchema } from \"./json\";\n\nexport const CustomEventTriggerSchema = z.object({\n type: z.literal(\"CUSTOM_EVENT\"),\n service: z.literal(\"trigger\"),\n name: z.string(),\n filter: EventFilterSchema,\n schema: JsonSchema.optional(),\n});\nexport type CustomEventTrigger = z.infer<typeof CustomEventTriggerSchema>;\n\nexport const WebhookEventTriggerSchema = z.object({\n type: z.literal(\"WEBHOOK\"),\n service: z.string(),\n name: z.string(),\n filter: EventFilterSchema,\n source: JsonSchema.optional(),\n manualRegistration: z.boolean().default(false),\n schema: JsonSchema.optional(),\n});\nexport type WebhookEventTrigger = z.infer<typeof WebhookEventTriggerSchema>;\n\nexport const HttpEventTriggerSchema = z.object({\n type: z.literal(\"HTTP_ENDPOINT\"),\n service: z.literal(\"trigger\"),\n name: z.string(),\n filter: EventFilterSchema,\n});\nexport type HttpEventTrigger = z.infer<typeof HttpEventTriggerSchema>;\n\nexport const ScheduledEventTriggerSchema = z.object({\n type: z.literal(\"SCHEDULE\"),\n service: z.literal(\"scheduler\"),\n name: z.string(),\n source: ScheduleSourceSchema,\n});\nexport type ScheduledEventTrigger = z.infer<typeof ScheduledEventTriggerSchema>;\n\nexport const SlackInteractionTriggerSchema = z.object({\n type: z.literal(\"SLACK_INTERACTION\"),\n service: z.literal(\"slack\"),\n name: z.string(),\n filter: EventFilterSchema,\n source: SlackInteractionSourceSchema,\n});\nexport type SlackInteractionEventTrigger = z.infer<\n typeof SlackInteractionTriggerSchema\n>;\n\nexport const TriggerMetadataSchema = z.discriminatedUnion(\"type\", [\n CustomEventTriggerSchema,\n WebhookEventTriggerSchema,\n HttpEventTriggerSchema,\n ScheduledEventTriggerSchema,\n SlackInteractionTriggerSchema,\n]);\n\nexport type TriggerMetadata = z.infer<typeof TriggerMetadataSchema>;\n","import { z } from \"zod\";\n\nexport const SecureStringSchema = z.object({\n __secureString: z.literal(true),\n strings: z.array(z.string()),\n interpolations: z.array(z.string()),\n});\n\nexport type SecureString = z.infer<typeof SecureStringSchema>;\n\nexport const RetrySchema = z.object({\n enabled: z.boolean().default(true),\n factor: z.number().default(1.8),\n maxTimeout: z.number().default(60000),\n minTimeout: z.number().default(1000),\n maxAttempts: z.number().default(10),\n statusCodes: z.array(z.number()).default([408, 429, 500, 502, 503, 504]),\n});\n\nexport const FetchRequestSchema = z.object({\n url: z.string(),\n headers: z.record(z.union([z.string(), SecureStringSchema])).optional(),\n method: z.enum([\n \"GET\",\n \"POST\",\n \"PUT\",\n \"DELETE\",\n \"PATCH\",\n \"HEAD\",\n \"OPTIONS\",\n \"TRACE\",\n ]),\n body: z.any(),\n retry: RetrySchema.optional(),\n});\n\nexport const FetchOutputSchema = z.object({\n status: z.number(),\n ok: z.boolean(),\n headers: z.record(z.string()),\n body: z.any().optional(),\n});\n\nexport type FetchRequest = z.infer<typeof FetchRequestSchema>;\nexport type FetchOutput = z.infer<typeof FetchOutputSchema>;\n\nexport const FetchResponseSchema = z.object({\n status: z.number(),\n headers: z.record(z.string()),\n body: z.any().optional(),\n});\n","import { z } from \"zod\";\nimport { SerializableJsonSchema } from \"./json\";\n\nexport const InitializeRunOnceSchema = z.object({\n type: z.enum([\"REMOTE\", \"LOCAL_ONLY\"]),\n});\n\nexport const CompleteRunOnceSchema = z.object({\n type: z.enum([\"REMOTE\", \"LOCAL_ONLY\"]),\n idempotencyKey: z.string(),\n output: z.string().optional(),\n});\n\nexport const ResolveRunOnceOuputSchema = z.object({\n idempotencyKey: z.string(),\n hasRun: z.boolean(),\n output: SerializableJsonSchema.optional(),\n});\n","import { z } from \"zod\";\nimport { SerializableJsonSchema } from \"./json\";\n\nexport const KVGetSchema = z.object({\n key: z.string(),\n namespace: z.string(),\n});\n\nexport type KVGetOperation = z.infer<typeof KVGetSchema>;\n\nexport const KVDeleteSchema = z.object({\n key: z.string(),\n namespace: z.string(),\n});\n\nexport type KVDeleteOperation = z.infer<typeof KVDeleteSchema>;\n\nexport const KVSetSchema = z.object({\n key: z.string(),\n namespace: z.string(),\n value: SerializableJsonSchema,\n});\n\nexport type KVSetOperation = z.infer<typeof KVSetSchema>;\n","import {\n EventFilterSchema,\n TriggerMetadataSchema,\n ScheduleSourceSchema,\n ScheduledEventPayloadSchema,\n} from \"@trigger.dev/common-schemas\";\nimport type {\n CustomEventTrigger,\n EventFilter,\n WebhookEventTrigger,\n} from \"@trigger.dev/common-schemas\";\nimport { z } from \"zod\";\nimport slugify from \"slug\";\nimport zodToJsonSchema from \"zod-to-json-schema\";\n\nexport type EventRule = z.infer<typeof EventFilterSchema>;\n\nexport type TriggerEvent<TSchema extends z.ZodTypeAny> = {\n metadata: z.infer<typeof TriggerMetadataSchema>;\n schema: TSchema;\n};\n\nexport type TriggerCustomEventOptions<TSchema extends z.ZodTypeAny> = {\n name: string;\n schema?: TSchema;\n filter?: EventFilter;\n};\n\nexport function customEvent<TSchema extends z.ZodTypeAny>(\n options: TriggerCustomEventOptions<TSchema>\n): TriggerEvent<TSchema> {\n const schema = options.schema ?? z.any();\n\n return {\n metadata: {\n type: \"CUSTOM_EVENT\",\n service: \"trigger\",\n name: options.name,\n filter: { event: [options.name], payload: options.filter ?? {} },\n schema: zodToJsonSchema(schema) as CustomEventTrigger[\"schema\"],\n },\n // @ts-ignore\n schema,\n };\n}\n\nexport type TriggerScheduleOptions = z.infer<typeof ScheduleSourceSchema>;\n\nexport function scheduleEvent(\n options: TriggerScheduleOptions\n): TriggerEvent<typeof ScheduledEventPayloadSchema> {\n return {\n metadata: {\n type: \"SCHEDULE\",\n service: \"scheduler\",\n name: \"scheduled-event\",\n source: options,\n },\n schema: ScheduledEventPayloadSchema,\n };\n}\n\nexport type TriggerWebhookEventOptions<TSchema extends z.ZodTypeAny> = {\n schema?: TSchema;\n service: string;\n eventName: string;\n filter?: EventFilter;\n verifyPayload?: {\n enabled: boolean;\n header: string;\n };\n};\n\nexport function webhookEvent<TSchema extends z.ZodTypeAny>(\n options: TriggerWebhookEventOptions<TSchema>\n): TriggerEvent<TSchema> {\n const schema = options.schema ?? z.any();\n\n return {\n metadata: {\n type: \"WEBHOOK\",\n service: slugify(options.service),\n name: options.eventName,\n filter: {\n service: [slugify(options.service)],\n payload: options.filter ?? {},\n event: [options.eventName],\n },\n source: {\n verifyPayload: options.verifyPayload ?? { enabled: false },\n event: options.eventName,\n },\n manualRegistration: true,\n schema: zodToJsonSchema(schema) as WebhookEventTrigger[\"schema\"],\n },\n // @ts-ignore\n schema,\n };\n}\n","import { z } from \"zod\";\nimport {\n FetchOutputSchema,\n JsonSchema,\n ResolveRunOnceOuputSchema,\n SerializableJsonSchema,\n} from \"@trigger.dev/common-schemas\";\n\nexport const HostRPCSchema = {\n TRIGGER_WORKFLOW: {\n request: z.object({\n id: z.string(),\n trigger: z.object({\n input: JsonSchema.default({}),\n context: JsonSchema.default({}),\n }),\n meta: z.object({\n environment: z.string(),\n workflowId: z.string(),\n organizationId: z.string(),\n apiKey: z.string(),\n isTest: z.boolean().default(false),\n appOrigin: z.string(),\n attempt: z.number().optional(),\n }),\n }),\n response: z.boolean(),\n },\n RESOLVE_REQUEST: {\n request: z.object({\n id: z.string(),\n key: z.string(),\n output: JsonSchema.default({}),\n meta: z.object({\n environment: z.string(),\n workflowId: z.string(),\n organizationId: z.string(),\n apiKey: z.string(),\n runId: z.string(),\n }),\n }),\n response: z.boolean(),\n },\n RESOLVE_DELAY: {\n request: z.object({\n id: z.string(),\n key: z.string(),\n meta: z.object({\n environment: z.string(),\n workflowId: z.string(),\n organizationId: z.string(),\n apiKey: z.string(),\n runId: z.string(),\n }),\n }),\n response: z.boolean(),\n },\n REJECT_REQUEST: {\n request: z.object({\n id: z.string(),\n key: z.string(),\n error: JsonSchema.default({}),\n meta: z.object({\n environment: z.string(),\n workflowId: z.string(),\n organizationId: z.string(),\n apiKey: z.string(),\n runId: z.string(),\n }),\n }),\n response: z.boolean(),\n },\n RESOLVE_FETCH_REQUEST: {\n request: z.object({\n id: z.string(),\n key: z.string(),\n output: FetchOutputSchema,\n meta: z.object({\n environment: z.string(),\n workflowId: z.string(),\n organizationId: z.string(),\n apiKey: z.string(),\n runId: z.string(),\n }),\n }),\n response: z.boolean(),\n },\n REJECT_FETCH_REQUEST: {\n request: z.object({\n id: z.string(),\n key: z.string(),\n error: JsonSchema.default({}),\n meta: z.object({\n environment: z.string(),\n workflowId: z.string(),\n organizationId: z.string(),\n apiKey: z.string(),\n runId: z.string(),\n }),\n }),\n response: z.boolean(),\n },\n RESOLVE_RUN_ONCE: {\n request: z.object({\n id: z.string(),\n key: z.string(),\n output: ResolveRunOnceOuputSchema,\n meta: z.object({\n environment: z.string(),\n workflowId: z.string(),\n organizationId: z.string(),\n apiKey: z.string(),\n runId: z.string(),\n }),\n }),\n response: z.boolean(),\n },\n RESOLVE_KV_GET: {\n request: z.object({\n key: z.string(),\n output: SerializableJsonSchema,\n meta: z.object({\n environment: z.string(),\n workflowId: z.string(),\n organizationId: z.string(),\n apiKey: z.string(),\n runId: z.string(),\n }),\n }),\n response: z.boolean(),\n },\n RESOLVE_KV_SET: {\n request: z.object({\n key: z.string(),\n meta: z.object({\n environment: z.string(),\n workflowId: z.string(),\n organizationId: z.string(),\n apiKey: z.string(),\n runId: z.string(),\n }),\n }),\n response: z.boolean(),\n },\n RESOLVE_KV_DELETE: {\n request: z.object({\n key: z.string(),\n meta: z.object({\n environment: z.string(),\n workflowId: z.string(),\n organizationId: z.string(),\n apiKey: z.string(),\n runId: z.string(),\n }),\n }),\n response: z.boolean(),\n },\n};\n\nexport type HostRPC = typeof HostRPCSchema;\n","import {\n CompleteRunOnceSchema,\n CustomEventSchema,\n FetchRequestSchema,\n InitializeRunOnceSchema,\n RetrySchema,\n SerializableJsonSchema,\n TriggerMetadataSchema,\n WaitSchema,\n} from \"@trigger.dev/common-schemas\";\nimport { z } from \"zod\";\n\nexport const ServerRPCSchema = {\n INITIALIZE_DELAY: {\n request: z.object({\n runId: z.string(),\n key: z.string(),\n wait: WaitSchema,\n timestamp: z.string(),\n }),\n response: z.boolean(),\n },\n SEND_REQUEST: {\n request: z.object({\n runId: z.string(),\n key: z.string(),\n request: z.object({\n service: z.string(),\n endpoint: z.string(),\n params: z.any(),\n version: z.string().optional(),\n }),\n timestamp: z.string(),\n }),\n response: z.boolean(),\n },\n SEND_FETCH: {\n request: z.object({\n runId: z.string(),\n key: z.string(),\n fetch: FetchRequestSchema,\n timestamp: z.string(),\n }),\n response: z.boolean(),\n },\n SEND_LOG: {\n request: z.object({\n runId: z.string(),\n key: z.string(),\n log: z.object({\n message: z.string(),\n level: z.enum([\"DEBUG\", \"INFO\", \"WARN\", \"ERROR\"]),\n properties: z.string().optional(),\n }),\n timestamp: z.string(),\n }),\n response: z.boolean(),\n },\n SEND_EVENT: {\n request: z.object({\n runId: z.string(),\n key: z.string(),\n event: CustomEventSchema,\n timestamp: z.string(),\n }),\n response: z.boolean(),\n },\n INITIALIZE_HOST: {\n request: z.object({\n apiKey: z.string(),\n workflowId: z.string(),\n workflowName: z.string(),\n trigger: TriggerMetadataSchema,\n packageVersion: z.string(),\n packageName: z.string(),\n triggerTTL: z.number().optional(),\n }),\n response: z\n .discriminatedUnion(\"type\", [\n z.object({\n type: z.literal(\"success\"),\n }),\n z.object({\n type: z.literal(\"error\"),\n message: z.string(),\n }),\n ])\n .nullable(),\n },\n INITIALIZE_HOST_V2: {\n request: z.object({\n apiKey: z.string(),\n workflowId: z.string(),\n workflowName: z.string(),\n trigger: TriggerMetadataSchema,\n packageVersion: z.string(),\n packageName: z.string(),\n triggerTTL: z.number().optional(),\n metadata: SerializableJsonSchema.optional(),\n }),\n response: z\n .discriminatedUnion(\"type\", [\n z.object({\n type: z.literal(\"success\"),\n data: z.object({\n workflow: z.object({\n id: z.string(),\n slug: z.string(),\n }),\n environment: z.object({\n id: z.string(),\n slug: z.string(),\n }),\n organization: z.object({\n id: z.string(),\n slug: z.string(),\n }),\n isNew: z.boolean(),\n url: z.string(),\n }),\n }),\n z.object({\n type: z.literal(\"error\"),\n message: z.string(),\n }),\n ])\n .nullable(),\n },\n START_WORKFLOW_RUN: {\n request: z.object({\n runId: z.string(),\n timestamp: z.string(),\n }),\n response: z.boolean(),\n },\n COMPLETE_WORKFLOW_RUN: {\n request: z.object({\n runId: z.string(),\n output: z.string().optional(),\n timestamp: z.string(),\n }),\n response: z.boolean(),\n },\n SEND_WORKFLOW_ERROR: {\n request: z.object({\n runId: z.string(),\n error: z.object({\n name: z.string(),\n message: z.string(),\n stackTrace: z.string().optional(),\n }),\n timestamp: z.string(),\n }),\n response: z.boolean(),\n },\n INITIALIZE_RUN_ONCE: {\n request: z.object({\n runId: z.string(),\n key: z.string(),\n timestamp: z.string(),\n runOnce: InitializeRunOnceSchema,\n }),\n response: z.boolean(),\n },\n COMPLETE_RUN_ONCE: {\n request: z.object({\n runId: z.string(),\n key: z.string(),\n timestamp: z.string(),\n runOnce: CompleteRunOnceSchema,\n }),\n response: z.boolean(),\n },\n SEND_KV_GET: {\n request: z.object({\n runId: z.string(),\n key: z.string(),\n timestamp: z.string(),\n get: z.object({\n namespace: z.string(),\n key: z.string(),\n }),\n }),\n response: z.boolean(),\n },\n SEND_KV_SET: {\n request: z.object({\n runId: z.string(),\n key: z.string(),\n timestamp: z.string(),\n set: z.object({\n namespace: z.string(),\n key: z.string(),\n value: SerializableJsonSchema,\n }),\n }),\n response: z.boolean(),\n },\n SEND_KV_DELETE: {\n request: z.object({\n runId: z.string(),\n key: z.string(),\n timestamp: z.string(),\n delete: z.object({\n namespace: z.string(),\n key: z.string(),\n }),\n }),\n response: z.boolean(),\n },\n};\n\nexport type ServerRPC = typeof ServerRPCSchema;\n","import { z } from \"zod\";\n\nexport const MESSAGE_META = z.object({\n data: z.any(),\n id: z.string(),\n type: z.union([z.literal(\"ACK\"), z.literal(\"MESSAGE\")]),\n});\n\nexport const TriggerEnvironmentSchema = z.enum([\"live\", \"development\"]);\nexport type TriggerEnvironment = z.infer<typeof TriggerEnvironmentSchema>;\n","import { z, ZodError } from \"zod\";\nimport { createHash } from \"node:crypto\";\nimport { IConnection } from \"./types\";\nimport { Logger } from \"./logger\";\n\nexport const RPCMessageSchema = z.object({\n id: z.string(),\n methodName: z.string(),\n data: z.any(),\n kind: z.enum([\"CALL\", \"RESPONSE\"]),\n});\n\nexport type RPCMessage = z.infer<typeof RPCMessageSchema>;\n\ninterface TransmitterSchema {\n [key: string]: {\n request: z.ZodFirstPartySchemaTypes | z.ZodDiscriminatedUnion<any, any>;\n response: z.ZodFirstPartySchemaTypes | z.ZodDiscriminatedUnion<any, any>;\n };\n}\n\nexport type ZodRPCHandlers<ReceiverSchema extends TransmitterSchema> = {\n [K in keyof ReceiverSchema]: (\n data: z.infer<ReceiverSchema[K][\"request\"]>\n ) => Promise<z.infer<ReceiverSchema[K][\"response\"]>>;\n};\n\ntype ZodRPCOptions<\n SenderSchema extends TransmitterSchema,\n ReceiverSchema extends TransmitterSchema\n> = {\n connection: IConnection;\n sender: SenderSchema;\n receiver: ReceiverSchema;\n handlers: ZodRPCHandlers<ReceiverSchema>;\n};\n\ntype onResponseCallback = (data: any) => void;\n\nexport class ZodRPC<\n SenderSchema extends TransmitterSchema,\n ReceiverSchema extends TransmitterSchema\n> {\n #connection: IConnection;\n #sender: SenderSchema;\n #receiver: ReceiverSchema;\n #handlers: ZodRPCHandlers<ReceiverSchema>;\n #pendingCalls = new Map<string, onResponseCallback>();\n #logger: Logger = new Logger(\"ZodRPC\");\n\n constructor(options: ZodRPCOptions<SenderSchema, ReceiverSchema>) {\n this.#connection = options.connection;\n this.#sender = options.sender;\n this.#receiver = options.receiver;\n this.#handlers = options.handlers;\n\n this.#connection.onMessage.attach(this.#onMessage.bind(this));\n }\n\n public resetConnection(connection: IConnection) {\n this.#connection.onMessage.detach();\n this.#connection = connection;\n this.#connection.onMessage.attach(this.#onMessage.bind(this));\n }\n\n async #onMessage(rawData: unknown) {\n try {\n const data = RPCMessageSchema.parse(JSON.parse(rawData as string));\n\n if (data.kind === \"CALL\") {\n await this.#onCall(data);\n }\n\n if (data.kind === \"RESPONSE\") {\n await this.#onResponse(data);\n }\n } catch (err) {\n this.#logger.error(err);\n }\n }\n\n async #onCall(message: RPCMessage) {\n try {\n await this.#handleCall(message);\n } catch (callError) {\n if (callError instanceof ZodError) {\n this.#logger.error(\n `[ZodRPC] Received invalid call:\\n${JSON.stringify(message)}: `,\n callError.errors\n );\n } else {\n this.#logger.error(\n `[ZodRPC] Error handling call:\\n${JSON.stringify(message)}: `,\n callError\n );\n }\n }\n }\n\n async #onResponse(message: RPCMessage) {\n try {\n await this.#handleResponse(message);\n } catch (callError) {\n if (callError instanceof ZodError) {\n this.#logger.error(\n `[ZodRPC] Received invalid response\\n\\n${JSON.stringify(message)}: `,\n callError.flatten()\n );\n } else {\n this.#logger.error(\n `[ZodRPC] Error handling response\\n\\n${JSON.stringify(message)}: `,\n callError\n );\n }\n }\n }\n\n public send<K extends keyof SenderSchema>(\n key: K,\n data: z.input<SenderSchema[K][\"request\"]>\n ) {\n this.#logger.debug(\"Sending call\", { key, data });\n\n const id = generateStableId(this.#connection.id, key as string, data);\n\n const message = packageMessage({ id, methodName: key as string, data });\n\n return new Promise<z.infer<SenderSchema[K][\"response\"]>>(\n (resolve, reject) => {\n this.#pendingCalls.set(id, (rawResponseText: string) => {\n try {\n const parsed = this.#sender[key][\"response\"].parse(rawResponseText);\n\n return resolve(parsed);\n } catch (err) {\n reject(err);\n }\n });\n\n this.#connection.send(message).catch((err) => reject(err));\n }\n );\n }\n\n async #handleCall(message: RPCMessage) {\n const receiver = this.#receiver;\n type MethodKeys = keyof typeof receiver;\n\n const methodName = message.methodName as MethodKeys;\n\n const method: ReceiverSchema[MethodKeys] | undefined =\n this.#receiver[methodName];\n\n if (!method) {\n throw new Error(`There is no method for ${message.methodName}`);\n }\n\n this.#logger.debug(\"Received call\", { message });\n\n // struggling to get real inference here\n const inputs = method.request.parse(message.data);\n\n const handler = this.#handlers[methodName];\n\n const returnValue = await handler(inputs);\n\n const preparedResponseText = packageResponse({\n id: message.id,\n methodName: methodName as string, //??\n data: returnValue,\n });\n\n try {\n await this.#connection.send(preparedResponseText);\n } catch (err) {\n this.#logger.error(\"Failed sending response\", preparedResponseText, err);\n }\n\n return;\n }\n\n async #handleResponse(message: RPCMessage) {\n const responseCallback = this.#pendingCalls.get(message.id);\n if (!responseCallback) return;\n\n responseCallback(message.data);\n\n this.#pendingCalls.delete(message.id);\n }\n}\n\n// Generates a stableId for a given request, based on:\n// - The connection id\n// - The request key\n// - The request data (serialized)\n// Returns a hash of the above\nfunction generateStableId(\n connId: string,\n reqKey: string,\n reqData: any\n): string {\n // Serialize the request data\n const serializedData = JSON.stringify(reqData);\n\n // Concatenate the connection id, request key, and serialized data\n const inputString = connId + reqKey + serializedData;\n\n // Generate a hash of the input string using the SHA-256 algorithm\n const hash = createHash(\"sha256\").update(inputString).digest(\"hex\");\n\n // Return the hash\n return hash;\n}\n\nfunction packageMessage({ id, methodName, data }: Omit<RPCMessage, \"kind\">) {\n const callerData: RPCMessage = {\n id,\n kind: \"CALL\",\n data,\n methodName,\n };\n\n return JSON.stringify(callerData);\n}\n\nfunction packageResponse({ id, methodName, data }: Omit<RPCMessage, \"kind\">) {\n const preparedResponseText: RPCMessage = {\n id: id,\n kind: \"RESPONSE\",\n methodName: methodName,\n data,\n };\n return JSON.stringify(preparedResponseText);\n}\n","// Create a logger class that uses the debug package internally\n\nconst logLevels = [\n \"disabled\",\n \"error\",\n \"log\",\n \"warn\",\n \"info\",\n \"debug\",\n] as const;\n\nexport type LogLevel = (typeof logLevels)[number];\n\nexport class Logger {\n #name: string;\n #tags: string[];\n readonly #level: number;\n\n constructor(name: string | string[], level: LogLevel = \"log\") {\n if (typeof name === \"string\") {\n this.#name = name;\n this.#tags = [];\n } else {\n const [n, ...tags] = name;\n\n this.#name = n;\n this.#tags = tags;\n }\n\n this.#level = logLevels.indexOf(\n (process.env.TRIGGER_LOG_LEVEL ?? level) as LogLevel\n );\n }\n\n log(...args: any[]) {\n if (this.#level < 1) return;\n\n console.log(`${this.#formatName()} `, ...[...args, ...this.#formatTags()]);\n }\n\n logClean(...args: any[]) {\n if (this.#level < 1) return;\n\n console.log(`${this.#formatName()} `, ...args);\n }\n\n error(...args: any[]) {\n if (this.#level < 2) return;\n\n console.error(\n `[${formattedDateTime()}] ${this.#formatName()} `,\n ...[...args, ...this.#formatTags()]\n );\n }\n\n warn(...args: any[]) {\n if (this.#level < 3) return;\n\n console.warn(\n `[${formattedDateTime()}] ${this.#formatName()} `,\n ...[...args, ...this.#formatTags()]\n );\n }\n\n info(...args: any[]) {\n if (this.#level < 4) return;\n\n console.info(\n `[${formattedDateTime()}] ${this.#formatName()} `,\n ...[...args, ...this.#formatTags()]\n );\n }\n\n debug(message: string, ...args: any[]) {\n if (this.#level < 5) return;\n\n const structuredLog = {\n timestamp: formattedDateTime(),\n name: this.#name,\n tags: this.#tags,\n message,\n args: structureArgs(args),\n };\n\n console.debug(JSON.stringify(structuredLog));\n }\n\n #formatName() {\n if (Array.isArray(this.#name)) {\n return this.#name.map((name) => `[${name}]`).join(\"\");\n }\n\n return `[${this.#name}]`;\n }\n\n #formatTags() {\n return this.#tags.map((tag) => `[${tag}]`);\n }\n}\n\nfunction formattedDateTime() {\n const date = new Date();\n\n const hours = date.getHours();\n const minutes = date.getMinutes();\n const seconds = date.getSeconds();\n const milliseconds = date.getMilliseconds();\n\n // Make sure the time is always 2 digits\n const formattedHours = hours < 10 ? `0${hours}` : hours;\n const formattedMinutes = minutes < 10 ? `0${minutes}` : minutes;\n const formattedSeconds = seconds < 10 ? `0${seconds}` : seconds;\n const formattedMilliseconds =\n milliseconds < 10\n ? `00${milliseconds}`\n : milliseconds < 100\n ? `0${milliseconds}`\n : milliseconds;\n\n return `${formattedHours}:${formattedMinutes}:${formattedSeconds}.${formattedMilliseconds}`;\n}\n\n// If args is has a single item that is an object, return that object\nfunction structureArgs(args: any[]) {\n if (args.length === 0) {\n return;\n }\n\n if (args.length === 1 && typeof args[0] === \"object\") {\n return args[0];\n }\n\n return args;\n}\n","import { FetchOutput } from \"@trigger.dev/common-schemas\";\nimport {\n HostRPCSchema,\n Logger,\n ServerRPCSchema,\n ZodRPC,\n} from \"internal-bridge\";\nimport { v4 } from \"uuid\";\nimport { WebSocket } from \"ws\";\nimport { z } from \"zod\";\nimport * as pkg from \"../package.json\";\nimport { HostConnection, TimeoutError } from \"./connection\";\nimport { triggerRunLocalStorage } from \"./localStorage\";\nimport { ContextLogger } from \"./logger\";\nimport { Trigger, TriggerOptions } from \"./trigger\";\nimport { TriggerContext, TriggerFetch } from \"./types\";\nimport { generateErrorMessage, ErrorMessageOptions } from \"zod-error\";\nimport { readFile } from \"node:fs/promises\";\nimport {\n ContextKeyValueStorage,\n KvDeleteFunction,\n KvGetFunction,\n KvSetFunction,\n} from \"./keyValueStorage\";\n\nconst zodErrorMessageOptions: ErrorMessageOptions = {\n delimiter: {\n error: \" 🔥 \",\n },\n};\n\ntype RunOnceOutput = { idempotencyKey: string; hasRun: boolean; output?: any };\n\nexport class TriggerClient<TSchema extends z.ZodTypeAny> {\n #trigger: Trigger<TSchema>;\n #options: TriggerOptions<TSchema>;\n\n #connection?: HostConnection;\n #serverRPC?: ZodRPC<typeof ServerRPCSchema, typeof HostRPCSchema>;\n\n #apiKey: string;\n #endpoint: string;\n\n #isConnected = false;\n #retryIntervalMs: number = 3_000;\n #logger: Logger;\n #closedByUser = false;\n\n #registerResponse?: {\n workflow: {\n id: string;\n slug: string;\n };\n environment: {\n id: string;\n slug: string;\n };\n organization: {\n id: string;\n slug: string;\n };\n isNew: boolean;\n url: string;\n };\n\n #responseCompleteCallbacks = new Map<\n string,\n {\n resolve: (output: any) => void;\n reject: (err?: any) => void;\n }\n >();\n\n #waitForCallbacks = new Map<\n string,\n {\n resolve: () => void;\n reject: (err?: any) => void;\n }\n >();\n\n #fetchCallbacks = new Map<\n string,\n {\n resolve: (output: FetchOutput) => void;\n reject: (err?: any) => void;\n }\n >();\n\n #runOnceCallbacks = new Map<\n string,\n {\n resolve: (output: RunOnceOutput) => void;\n reject: (err?: any) => void;\n }\n >();\n\n #kvGetCallbacks = new Map<\n string,\n {\n resolve: (output: any) => void;\n reject: (err?: any) => void;\n }\n >();\n\n #kvSetCallbacks = new Map<\n string,\n {\n resolve: () => void;\n reject: (err?: any) => void;\n }\n >();\n\n #kvDeleteCallbacks = new Map<\n string,\n {\n resolve: () => void;\n reject: (err?: any) => void;\n }\n >();\n\n constructor(trigger: Trigger<TSchema>, options: TriggerOptions<TSchema>) {\n this.#trigger = trigger;\n this.#options = options;\n\n const apiKey = this.#options.apiKey ?? process.env.TRIGGER_API_KEY;\n\n if (!apiKey) {\n throw new Error(\n \"Cannot connect to Trigger because of invalid API Key: Please include an API Key in the `apiKey` option or in the `TRIGGER_API_KEY` environment variable.\"\n );\n }\n\n this.#apiKey = apiKey;\n this.#endpoint =\n this.#options.endpoint ??\n process.env.TRIGGER_WSS_URL ??\n \"wss://wss.trigger.dev/ws\";\n this.#logger = new Logger(\n [\"trigger.dev\", this.#options.id],\n this.#options.logLevel\n );\n }\n\n async listen(instanceId?: string) {\n try {\n await this.#initializeConnection(instanceId);\n this.#initializeRPC();\n await this.#initializeHost();\n\n // async import terminalLink to avoid ESM error\n const terminalLink = (await import(\"terminal-link\")).default;\n\n if (this.#registerResponse?.isNew) {\n this.#logger.logClean(\n `🎉 Successfully registered \"${\n this.#trigger.name\n }\" to trigger.dev 👉 ${terminalLink(\n \"View on dashboard\",\n this.#registerResponse.url,\n { fallback: (text, url) => `${text}: (${url})` }\n )}. Listening for events...`\n );\n } else {\n this.#logger.log(\n `✨ Connected and listening for events 👉 ${terminalLink(\n \"View on dashboard\",\n this.#registerResponse!.url,\n { fallback: (text, url) => `${text}: (${url})` }\n )}`\n );\n }\n } catch (error) {\n this.#logger.log(`🚩 Could not connect to trigger.dev`);\n\n this.close();\n }\n }\n\n close() {\n this.#closedByUser = true;\n\n if (this.#serverRPC) {\n this.#serverRPC = undefined;\n }\n\n this.#connection?.close();\n this.#isConnected = false;\n }\n\n async #initializeConnection(instanceId?: string) {\n const id = instanceId ?? v4();\n\n this.#logger.debug(\"Initializing connection\", {\n id,\n endpoint: this.#endpoint,\n });\n\n const headers = { Authorization: `Bearer ${this.#apiKey}` };\n\n const connection = new HostConnection(\n new WebSocket(this.#endpoint, {\n headers,\n followRedirects: true,\n }),\n { id }\n );\n\n connection.onClose.attach(async ([code, reason]) => {\n if (this.#closedByUser) {\n this.#logger.debug(\"Connection closed by user, so we won't reconnect\");\n this.#closedByUser = false;\n return;\n }\n\n const chalk = (await import(\"chalk\")).default;\n\n this.#logger.error(\n `${chalk.red(\"error\")} Could not connect to trigger.dev${\n reason ? `: ${reason}` : `(code ${code})`\n }`\n );\n\n // If #isConnected is already false, that means we are already trying to reconnect\n if (!this.#isConnected) return;\n\n this.#logger.log(\"🔌 Reconnecting to trigger.dev...\");\n\n this.#isConnected = false;\n\n while (!this.#isConnected) {\n this.#initializeConnection(id)\n .then(() => {\n this.#logger.log(\"⚡ Reconnection successful\");\n })\n .catch(() => {});\n\n this.#logger.debug(\n `Reconnection failed, retrying in ${Math.round(\n this.#retryIntervalMs / 1000\n )} seconds`,\n id\n );\n\n await new Promise((resolve) =>\n setTimeout(resolve, this.#retryIntervalMs)\n );\n }\n });\n\n await connection.connect();\n\n this.#logger.debug(\"Connection initialized\", id);\n\n this.#connection = connection;\n this.#isConnected = true;\n\n if (this.#serverRPC) {\n this.#serverRPC.resetConnection(connection);\n await this.#initializeHost();\n }\n }\n\n async #initializeRPC() {\n if (!this.#connection) {\n throw new Error(\"Cannot initialize RPC without a connection\");\n }\n\n const serverRPC = new ZodRPC({\n connection: this.#connection,\n sender: ServerRPCSchema,\n receiver: HostRPCSchema,\n handlers: {\n RESOLVE_DELAY: async (data) => {\n this.#logger.debug(\"Handling RESOLVE_DELAY\", data);\n\n const waitCallbacks = this.#waitForCallbacks.get(\n messageKey(data.meta.runId, data.key)\n );\n\n if (!waitCallbacks) {\n this.#logger.debug(\n `Could not find wait callbacks for wait ID ${messageKey(\n data.meta.runId,\n data.key\n )}. This can happen when a workflow run is resumed`\n );\n\n return true;\n }\n\n const { resolve } = waitCallbacks;\n\n resolve();\n\n return true;\n },\n RESOLVE_RUN_ONCE: async (data) => {\n this.#logger.debug(\"Handling RESOLVE_RUN_ONCE\", data);\n\n const runOnceCallbacks = this.#runOnceCallbacks.get(\n messageKey(data.meta.runId, data.key)\n );\n\n if (!runOnceCallbacks) {\n this.#logger.debug(\n `Could not find runOnce callbacks for request ID ${messageKey(\n data.meta.runId,\n data.key\n )}. This can happen when a workflow run is resumed`\n );\n\n return true;\n }\n\n const { resolve } = runOnceCallbacks;\n\n resolve(data.output);\n\n return true;\n },\n RESOLVE_REQUEST: async (data) => {\n this.#logger.debug(\"Handling RESOLVE_REQUEST\", data);\n\n const requestCallbacks = this.#responseCompleteCallbacks.get(\n messageKey(data.meta.runId, data.key)\n );\n\n if (!requestCallbacks) {\n this.#logger.debug(\n `Could not find request callbacks for request ID ${messageKey(\n data.meta.runId,\n data.key\n )}. This can happen when a workflow run is resumed`\n );\n\n return true;\n }\n\n const { resolve } = requestCallbacks;\n\n resolve(data.output);\n\n return true;\n },\n REJECT_REQUEST: async (data) => {\n this.#logger.debug(\"Handling REJECT_REQUEST\", data);\n\n const requestCallbacks = this.#responseCompleteCallbacks.get(\n messageKey(data.meta.runId, data.key)\n );\n\n if (!requestCallbacks) {\n this.#logger.debug(\n `Could not find request callbacks for request ID ${messageKey(\n data.meta.runId,\n data.key\n )}. This can happen when a workflow run is resumed`\n );\n\n return true;\n }\n\n const { reject } = requestCallbacks;\n\n reject(data.error);\n\n return true;\n },\n RESOLVE_FETCH_REQUEST: async (data) => {\n this.#logger.debug(\"Handling RESOLVE_FETCH_REQUEST\", data);\n\n const fetchCallbacks = this.#fetchCallbacks.get(\n messageKey(data.meta.runId, data.key)\n );\n\n if (!fetchCallbacks) {\n this.#logger.debug(\n `Could not find fetch callbacks for request ID ${messageKey(\n data.meta.runId,\n data.key\n )}. This can happen when a workflow run is resumed`\n );\n\n return true;\n }\n\n const { resolve } = fetchCallbacks;\n\n resolve(data.output);\n\n return true;\n },\n REJECT_FETCH_REQUEST: async (data) => {\n this.#logger.debug(\"Handling REJECT_FETCH_REQUEST\", data);\n\n const fetchCallbacks = this.#fetchCallbacks.get(\n messageKey(data.meta.runId, data.key)\n );\n\n if (!fetchCallbacks) {\n this.#logger.debug(\n `Could not find fetch callbacks for request ID ${messageKey(\n data.meta.runId,\n data.key\n )}. This can happen when a workflow run is resumed`\n );\n\n return true;\n }\n\n const { reject } = fetchCallbacks;\n\n reject(data.error);\n\n return true;\n },\n RESOLVE_KV_GET: async (data) => {\n this.#logger.debug(\"Handling RESOLVE_KV_GET\", data);\n\n const getCallbacks = this.#kvGetCallbacks.get(\n messageKey(data.meta.runId, data.key)\n );\n\n if (!getCallbacks) {\n this.#logger.debug(\n `Could not find kvGet callbacks for request ID ${messageKey(\n data.meta.runId,\n data.key\n )}. This can happen when a workflow run is resumed`\n );\n\n return true;\n }\n\n const { resolve } = getCallbacks;\n\n resolve(data.output);\n\n return true;\n },\n RESOLVE_KV_SET: async (data) => {\n this.#logger.debug(\"Handling RESOLVE_KV_SET\", data);\n\n const setCallbacks = this.#kvSetCallbacks.get(\n messageKey(data.meta.runId, data.key)\n );\n\n if (!setCallbacks) {\n this.#logger.debug(\n `Could not find kvSet callbacks for request ID ${messageKey(\n data.meta.runId,\n data.key\n )}. This can happen when a workflow run is resumed`\n );\n\n return true;\n }\n\n const { resolve } = setCallbacks;\n\n resolve();\n\n return true;\n },\n RESOLVE_KV_DELETE: async (data) => {\n this.#logger.debug(\"Handling RESOLVE_KV_DELETE\", data);\n\n const deleteCallbacks = this.#kvDeleteCallbacks.get(\n messageKey(data.meta.runId, data.key)\n );\n\n if (!deleteCallbacks) {\n this.#logger.debug(\n `Could not find kvDelete callbacks for request ID ${messageKey(\n data.meta.runId,\n data.key\n )}. This can happen when a workflow run is resumed`\n );\n\n return true;\n }\n\n const { resolve } = deleteCallbacks;\n\n resolve();\n\n return true;\n },\n TRIGGER_WORKFLOW: async (data) => {\n this.#logger.debug(\"Handling TRIGGER_WORKFLOW\", data);\n\n const parsedEventData = this.#options.on.schema.safeParse(\n data.trigger.input\n );\n\n if (!parsedEventData.success) {\n await serverRPC.send(\"SEND_WORKFLOW_ERROR\", {\n runId: data.id,\n timestamp: String(highPrecisionTimestamp()),\n error: {\n name: \"Event validation error\",\n message: generateErrorMessage(\n parsedEventData.error.issues,\n zodErrorMessageOptions\n ),\n },\n });\n\n return true;\n }\n\n const fetchFunction: TriggerFetch = async (key, url, options) => {\n const result = new Promise<FetchOutput>((resolve, reject) => {\n this.#fetchCallbacks.set(messageKey(data.id, key), {\n resolve,\n reject,\n });\n });\n\n await serverRPC.send(\"SEND_FETCH\", {\n runId: data.id,\n key,\n fetch: {\n url: url.toString(),\n method: options.method ?? \"GET\",\n headers: options.headers,\n body: options.body,\n retry: options.retry,\n },\n timestamp: String(highPrecisionTimestamp()),\n });\n\n const response = await result;\n\n return {\n status: response.status,\n ok: response.ok,\n headers: response.headers,\n body: response.body\n ? (options.responseSchema ?? z.any()).parse(response.body)\n : undefined,\n };\n };\n\n const kvGetFunction: KvGetFunction = async (op) => {\n const result = new Promise<any>((resolve, reject) => {\n this.#kvGetCallbacks.set(messageKey(data.id, op.idempotencyKey), {\n resolve,\n reject,\n });\n });\n\n await serverRPC.send(\"SEND_KV_GET\", {\n runId: data.id,\n key: op.idempotencyKey,\n get: {\n namespace: op.namespace,\n key: op.key,\n },\n timestamp: String(highPrecisionTimestamp()),\n });\n\n const output = await result;\n\n return output;\n };\n\n const kvSetFunction: KvSetFunction = async (op) => {\n const result = new Promise<void>((resolve, reject) => {\n this.#kvSetCallbacks.set(messageKey(data.id, op.idempotencyKey), {\n resolve,\n reject,\n });\n });\n\n await serverRPC.send(\"SEND_KV_SET\", {\n runId: data.id,\n key: op.idempotencyKey,\n set: {\n namespace: op.namespace,\n key: op.key,\n value: op.value,\n },\n timestamp: String(highPrecisionTimestamp()),\n });\n\n await result;\n\n return;\n };\n\n const kvDeleteFunction: KvDeleteFunction = async (op) => {\n const result = new Promise<void>((resolve, reject) => {\n this.#kvDeleteCallbacks.set(\n messageKey(data.id, op.idempotencyKey),\n {\n resolve,\n reject,\n }\n );\n });\n\n await serverRPC.send(\"SEND_KV_DELETE\", {\n runId: data.id,\n key: op.idempotencyKey,\n delete: {\n namespace: op.namespace,\n key: op.key,\n },\n timestamp: String(highPrecisionTimestamp()),\n });\n\n await result;\n\n return;\n };\n\n const ctx: TriggerContext = {\n id: data.id,\n environment: data.meta.environment,\n apiKey: data.meta.apiKey,\n organizationId: data.meta.organizationId,\n isTest: data.meta.isTest,\n kv: new ContextKeyValueStorage(\n `workflow:${data.meta.workflowId}`,\n kvGetFunction,\n kvSetFunction,\n kvDeleteFunction\n ),\n globalKv: new ContextKeyValueStorage(\n `org:${data.meta.organizationId}`,\n kvGetFunction,\n kvSetFunction,\n kvDeleteFunction\n ),\n runKv: new ContextKeyValueStorage(\n `run:${data.id}`,\n kvGetFunction,\n kvSetFunction,\n kvDeleteFunction\n ),\n logger: new ContextLogger(async (level, message, properties) => {\n await serverRPC.send(\"SEND_LOG\", {\n runId: data.id,\n key: message,\n log: {\n level,\n message,\n properties: JSON.stringify(properties ?? {}),\n },\n timestamp: String(highPrecisionTimestamp()),\n });\n }),\n sendEvent: async (key, event) => {\n await serverRPC.send(\"SEND_EVENT\", {\n runId: data.id,\n key,\n event: JSON.parse(JSON.stringify(event)),\n timestamp: String(highPrecisionTimestamp()),\n });\n },\n waitFor: async (key, options) => {\n const result = new Promise<void>((resolve, reject) => {\n this.#waitForCallbacks.set(messageKey(data.id, key), {\n resolve,\n reject,\n });\n });\n\n await serverRPC.send(\"INITIALIZE_DELAY\", {\n runId: data.id,\n key,\n wait: {\n type: \"DELAY\",\n seconds: options.seconds,\n minutes: options.minutes,\n hours: options.hours,\n days: options.days,\n },\n timestamp: String(highPrecisionTimestamp()),\n });\n\n await result;\n\n return;\n },\n waitUntil: async (key, date: Date) => {\n const result = new Promise<void>((resolve, reject) => {\n this.#waitForCallbacks.set(messageKey(data.id, key), {\n resolve,\n reject,\n });\n });\n\n await serverRPC.send(\"INITIALIZE_DELAY\", {\n runId: data.id,\n key,\n wait: {\n type: \"SCHEDULE_FOR\",\n scheduledFor: date.toISOString(),\n },\n timestamp: String(highPrecisionTimestamp()),\n });\n\n await result;\n\n return;\n },\n runOnce: async (key, callback) => {\n const result = new Promise<RunOnceOutput>((resolve, reject) => {\n this.#runOnceCallbacks.set(messageKey(data.id, key), {\n resolve,\n reject,\n });\n });\n\n await serverRPC.send(\"INITIALIZE_RUN_ONCE\", {\n runId: data.id,\n key,\n runOnce: {\n type: \"REMOTE\",\n },\n timestamp: String(highPrecisionTimestamp()),\n });\n\n const { idempotencyKey, hasRun, output } = await result;\n\n if (hasRun) {\n return output;\n }\n\n const callbackResult = await callback(idempotencyKey);\n\n await serverRPC.send(\"COMPLETE_RUN_ONCE\", {\n runId: data.id,\n key,\n runOnce: {\n type: \"REMOTE\",\n idempotencyKey,\n output: callbackResult\n ? JSON.stringify(callbackResult)\n : undefined,\n },\n timestamp: String(highPrecisionTimestamp()),\n });\n\n return callbackResult;\n },\n runOnceLocalOnly: async (key, callback) => {\n const result = new Promise<RunOnceOutput>((resolve, reject) => {\n this.#runOnceCallbacks.set(messageKey(data.id, key), {\n resolve,\n reject,\n });\n });\n\n await serverRPC.send(\"INITIALIZE_RUN_ONCE\", {\n runId: data.id,\n key,\n runOnce: {\n type: \"LOCAL_ONLY\",\n },\n timestamp: String(highPrecisionTimestamp()),\n });\n\n const { idempotencyKey } = await result;\n\n return callback(idempotencyKey);\n },\n fetch: fetchFunction,\n };\n\n const eventData = parsedEventData.data;\n\n this.#logger.debug(\"Parsed event data\", eventData);\n\n const terminalLink = (await import(\"terminal-link\")).default;\n\n triggerRunLocalStorage.run(\n {\n performRequest: async (key, options) => {\n const result = new Promise((resolve, reject) => {\n this.#responseCompleteCallbacks.set(\n messageKey(data.id, key),\n {\n resolve,\n reject,\n }\n );\n });\n\n await serverRPC.send(\"SEND_REQUEST\", {\n runId: data.id,\n key,\n request: {\n service: options.service,\n endpoint: options.endpoint,\n params: options.params,\n version: options.version,\n },\n timestamp: String(highPrecisionTimestamp()),\n });\n\n const output = await result;\n\n if (!options.response?.schema) {\n return output;\n }\n\n return options.response.schema.parse(output);\n },\n sendEvent: async (key, event) => {\n await serverRPC.send(\"SEND_EVENT\", {\n runId: data.id,\n key,\n event: JSON.parse(JSON.stringify(event)),\n timestamp: String(highPrecisionTimestamp()),\n });\n },\n fetch: fetchFunction,\n workflowId: data.meta.workflowId,\n appOrigin: data.meta.appOrigin,\n id: data.id,\n },\n () => {\n this.#logger.debug(\"Running trigger...\");\n\n if (\n typeof data.meta.attempt === \"number\" &&\n data.meta.attempt === 0\n ) {\n this.#logger.log(\n `Run ${data.id} started 👉 ${terminalLink(\n \"View on dashboard\",\n `${this.#registerResponse!.url}/runs/${data.id}`,\n { fallback: (text, url) => `${text}: (${url})` }\n )}`\n );\n }\n\n serverRPC\n .send(\"START_WORKFLOW_RUN\", {\n runId: data.id,\n timestamp: String(highPrecisionTimestamp()),\n })\n .then(() => {\n return this.#trigger.options\n .run(eventData, ctx)\n .then((output) => {\n this.#logger.log(\n `Run ${data.id} complete 👉 ${terminalLink(\n \"View on dashboard\",\n `${this.#registerResponse!.url}/runs/${data.id}`,\n { fallback: (text, url) => `${text}: (${url})` }\n )}`\n );\n\n return serverRPC.send(\"COMPLETE_WORKFLOW_RUN\", {\n runId: data.id,\n output: JSON.stringify(output),\n timestamp: String(highPrecisionTimestamp()),\n });\n })\n .catch((anyError) => {\n const parseAnyError = (\n error: any\n ): {\n name: string;\n message: string;\n stackTrace?: string;\n } => {\n if (error instanceof Error) {\n return {\n name: error.name,\n message: error.message,\n stackTrace: error.stack,\n };\n }\n\n const parsedError = z\n .object({ name: z.string(), message: z.string() })\n .passthrough()\n .safeParse(error);\n\n if (parsedError.success) {\n return parsedError.data;\n }\n\n return {\n name: \"UnknownError\",\n message: \"An unknown error occurred\",\n };\n };\n\n const error = parseAnyError(anyError);\n\n return serverRPC.send(\"SEND_WORKFLOW_ERROR\", {\n runId: data.id,\n error,\n timestamp: String(highPrecisionTimestamp()),\n });\n });\n })\n .catch((anyError) => {\n return serverRPC.send(\"SEND_WORKFLOW_ERROR\", {\n runId: data.id,\n error: anyError,\n timestamp: String(highPrecisionTimestamp()),\n });\n });\n }\n );\n\n return true;\n },\n },\n });\n\n this.#logger.debug(\"Successfully initialized RPC with server\");\n\n this.#serverRPC = serverRPC;\n }\n\n async #initializeHost() {\n if (!this.#connection) {\n throw new Error(\"Cannot initialize host without a connection\");\n }\n\n if (!this.#serverRPC) {\n throw new Error(\"Cannot initialize host without an RPC connection\");\n }\n\n const repoInfo = await safeGetRepoInfo();\n const remoteUrl = repoInfo\n ? await getRemoteUrl(repoInfo.commonGitDir)\n : undefined;\n\n const packageMetadata = await getTriggerPackageEnvVars(process.env);\n\n const response = await this.#send(\"INITIALIZE_HOST_V2\", {\n apiKey: this.#apiKey,\n workflowId: this.#trigger.id,\n workflowName: this.#trigger.name,\n trigger: this.#trigger.on.metadata,\n packageVersion: pkg.version,\n packageName: pkg.name,\n triggerTTL: this.#options.triggerTTL,\n metadata: {\n git: repoInfo\n ? {\n sha: repoInfo.sha,\n branch: repoInfo.branch,\n committer: repoInfo.committer,\n committerDate: repoInfo.committerDate,\n commitMessage: repoInfo.commitMessage,\n origin: remoteUrl,\n }\n : undefined,\n packageMetadata,\n env: gatherEnvVars(process.env),\n },\n });\n\n if (!response) {\n throw new Error(\"Could not initialize workflow with server\");\n }\n\n if (response?.type === \"error\") {\n throw new Error(response.message);\n }\n\n this.#registerResponse = response.data;\n\n this.#logger.debug(\"Successfully initialized workflow with server\");\n }\n\n async #send<MethodName extends keyof typeof ServerRPCSchema>(\n methodName: MethodName,\n request: z.input<(typeof ServerRPCSchema)[MethodName][\"request\"]>\n ) {\n if (!this.#serverRPC) throw new Error(\"serverRPC not initialized\");\n\n while (true) {\n try {\n this.#logger.debug(\n `Sending RPC request to server: ${methodName}`,\n request\n );\n\n return await this.#serverRPC.send(methodName, request);\n } catch (err) {\n if (err instanceof TimeoutError) {\n this.#logger.log(\n `RPC call timed out, retrying in ${Math.round(\n this.#retryIntervalMs / 1000\n )}s...`\n );\n\n this.#logger.error(err);\n\n await sleep(this.#retryIntervalMs);\n } else {\n throw err;\n }\n }\n }\n }\n}\n\nexport const sleep = (ms: number) =>\n new Promise((resolve) => setTimeout(resolve, ms));\n\nconst messageKey = (runId: string, key: string) => `${runId}:${key}`;\n\nfunction highPrecisionTimestamp() {\n const [seconds, nanoseconds] = process.hrtime();\n\n return seconds * 1e9 + nanoseconds;\n}\n\n// Gets the environment variables prefixed with npm_package_triggerdotdev_ and returns them as an object\n// Alternatively, if there is a npm_package_json env var set, we can try and read the file and parse it\nasync function getTriggerPackageEnvVars(\n env: NodeJS.ProcessEnv\n): Promise<Record<string, string | number | boolean>> {\n if (!env) {\n return {};\n }\n\n // Path to the package.json file\n if (env.npm_package_json) {\n try {\n const packageJson = JSON.parse(\n await readFile(env.npm_package_json, \"utf8\")\n );\n\n if (packageJson.triggerdotdev) {\n return packageJson.triggerdotdev;\n }\n } catch (err) {\n // Ignore\n }\n }\n\n const envVars = Object.entries(env)\n .filter(([key]) => key.startsWith(\"npm_package_triggerdotdev_\"))\n .map(([key, value]) => [\n key.replace(\"npm_package_triggerdotdev_\", \"\"),\n value,\n ]);\n\n return Object.fromEntries(envVars);\n}\n\nasync function getRemoteUrl(cwd: string) {\n try {\n const gitRemoteOriginUrl = (await import(\"git-remote-origin-url\")).default;\n return await gitRemoteOriginUrl({ cwd });\n } catch (err) {\n return;\n }\n}\n\nasync function safeGetRepoInfo() {\n try {\n const gitRepoInfo = (await import(\"git-repo-info\")).default;\n return gitRepoInfo();\n } catch (err) {\n return;\n }\n}\n\n// Get all env vars that are prefixed with TRIGGER_ (exccpt for TRIGGER_API_KEY)\nfunction gatherEnvVars(env: NodeJS.ProcessEnv): Record<string, string> {\n if (!env) {\n return {};\n }\n\n const envVars = Object.entries(env)\n .filter(([key]) => key.startsWith(\"TRIGGER_\") && key !== \"TRIGGER_API_KEY\")\n .map(([key, value]) => [key.replace(\"TRIGGER_\", \"\"), `${value}`]);\n\n return Object.fromEntries(envVars);\n}\n","import type { WebSocket as NodeWebSocket } from \"ws\";\nimport { v4 } from \"uuid\";\nimport { Evt } from \"evt\";\nimport { IConnection, Logger, MESSAGE_META } from \"internal-bridge\";\n\nexport class TimeoutError extends Error {}\nexport class NotConnectedError extends Error {}\n\ntype PendingMessage = {\n data: string;\n onAckReceived: () => void;\n};\n\nexport type ConnectionOptions = {\n connectTimeout?: number;\n sendTimeout?: number;\n pingTimeout?: number;\n id?: string;\n};\n\nexport class HostConnection implements IConnection {\n id: string;\n onMessage: Evt<string>;\n onAuthenticated: Evt<void>;\n onClose: Evt<[number, string]>;\n onOpen: Evt<void>;\n onError: Evt<Error>;\n\n #socket: WebSocket | NodeWebSocket;\n\n #connectTimeout: number;\n #sendTimeout: number;\n #pingTimeout: number;\n #isAuthenticated: boolean = false;\n #timeouts: Set<NodeJS.Timeout>;\n #isClosed: boolean = false;\n #pendingMessages = new Map<string, PendingMessage>();\n #logger: Logger;\n\n #pingIntervalHandle: NodeJS.Timeout | undefined;\n #pingIntervalMs: number = 30_000; // 30 seconds\n #closeUnresponsiveConnectionTimeoutMs: number = 3 * 60 * 1000; // 3 minutes\n\n constructor(socket: WebSocket | NodeWebSocket, options?: ConnectionOptions) {\n this.#socket = socket;\n this.id = options?.id ?? v4();\n\n this.onMessage = new Evt();\n this.onAuthenticated = new Evt<void>();\n this.onClose = new Evt<[number, string]>();\n this.onOpen = new Evt();\n this.onError = new Evt<Error>();\n\n this.#connectTimeout = options?.connectTimeout ?? 5000;\n this.#sendTimeout = options?.sendTimeout ?? 5000;\n this.#pingTimeout = options?.pingTimeout ?? 5000;\n\n this.#timeouts = new Set();\n\n this.#logger = new Logger(\"trigger.dev connection\");\n\n this.onClose.attach(() => {\n this.#isClosed = true;\n\n if (this.#pingIntervalHandle) {\n clearInterval(this.#pingIntervalHandle);\n this.#pingIntervalHandle = undefined;\n }\n\n for (const timeout of this.#timeouts) {\n clearTimeout(timeout);\n }\n\n this.#timeouts.clear();\n });\n\n this.#socket.onopen = () => {\n this.#isClosed = false;\n this.onOpen.post();\n\n this.#startPingInterval();\n };\n\n this.#socket.onclose = (ev: CloseEvent) => {\n this.onClose.post([ev.code, ev.reason]);\n };\n\n this.#socket.onerror = (ev: ErrorEvent | Event) => {\n const message = \"message\" in ev ? ev.message : \"Unknown error\";\n\n this.onError.post(new Error(message));\n };\n\n this.#socket.onmessage = (event: MessageEvent) => {\n if (this.#isClosed) return;\n\n const data = JSON.parse(event.data.toString());\n const metadata = MESSAGE_META.parse(data);\n\n if (metadata.type === \"ACK\") {\n const pendingMessage = this.#pendingMessages.get(metadata.id);\n\n if (pendingMessage) {\n pendingMessage.onAckReceived();\n this.#pendingMessages.delete(metadata.id);\n }\n }\n\n if (metadata.type === \"MESSAGE\") {\n socket.send(JSON.stringify({ type: \"ACK\", id: metadata.id }));\n\n if (metadata.data === \"AUTHENTICATED\") {\n this.#isAuthenticated = true;\n this.onAuthenticated.post();\n return;\n }\n\n this.onMessage.post(metadata.data);\n }\n };\n\n if (\"pong\" in socket) {\n socket.on(\"pong\", (buf) => {\n const id = buf.toString();\n const pendingMessage = this.#pendingMessages.get(id);\n\n if (pendingMessage?.data === \"ping\") {\n pendingMessage.onAckReceived();\n }\n });\n }\n }\n\n async connect() {\n this.#logger.debug(\"[connect] Attempting to connect\");\n\n return new Promise<void>((resolve, reject) => {\n if (\n this.#socket.readyState === this.#socket.OPEN &&\n this.#isAuthenticated\n ) {\n this.#logger.debug(\"[connect] Already connected, resolving\");\n\n return resolve();\n }\n\n const failTimeout = setTimeout(() => {\n this.#logger.debug(\"[connect] Connection timed out, rejecting\");\n\n reject(new TimeoutError());\n }, this.#connectTimeout);\n\n this.#timeouts.add(failTimeout);\n\n this.onAuthenticated.attach(() => {\n clearTimeout(failTimeout);\n this.#timeouts.delete(failTimeout);\n\n this.#logger.debug(\"[connect] Connected, resolving\");\n\n resolve();\n });\n });\n }\n\n async send(data: string) {\n if (this.#isClosed) throw new NotConnectedError();\n\n return new Promise<void>((resolve, reject) => {\n const id = v4();\n\n const failTimeout = setTimeout(() => {\n reject(new TimeoutError());\n }, this.#sendTimeout);\n\n this.#timeouts.add(failTimeout);\n\n this.#pendingMessages.set(id, {\n data,\n onAckReceived: () => {\n clearTimeout(failTimeout);\n\n this.#timeouts.delete(failTimeout);\n\n resolve();\n },\n });\n\n this.#socket.send(JSON.stringify({ id, data, type: \"MESSAGE\" }));\n });\n }\n\n close(code?: number, reason?: string) {\n this.#isClosed = true;\n this.onMessage.detach();\n return this.#socket.close(code, reason);\n }\n\n #startPingInterval() {\n // Do the ping stuff here\n let lastSuccessfulPing = new Date();\n this.#pingIntervalHandle = setInterval(async () => {\n if (!this.#socket.OPEN) {\n if (this.#pingIntervalHandle) {\n clearInterval(this.#pingIntervalHandle);\n this.#pingIntervalHandle = undefined;\n }\n\n return;\n }\n\n try {\n await this.#ping();\n lastSuccessfulPing = new Date();\n } catch (err) {\n this.#logger.warn(\"Pong not received in time\");\n if (!(err instanceof TimeoutError)) {\n this.#logger.error(err);\n }\n\n if (\n lastSuccessfulPing.getTime() <\n new Date().getTime() - this.#closeUnresponsiveConnectionTimeoutMs\n ) {\n this.#logger.error(\n \"No pong received in last three minutes, closing connection to Trigger.dev and retrying...\"\n );\n if (this.#pingIntervalHandle) {\n clearInterval(this.#pingIntervalHandle);\n this.#pingIntervalHandle = undefined;\n }\n this.#socket.close();\n }\n }\n }, this.#pingIntervalMs);\n }\n\n async #ping() {\n if (!this.#socket.OPEN) {\n throw new NotConnectedError();\n }\n\n if (!(\"ping\" in this.#socket)) {\n // Not supported in web client WebSocket\n throw new Error(\n \"ping not supported in this underlying websocket connection\"\n );\n }\n\n const socket = this.#socket;\n\n return new Promise<void>((resolve, reject) => {\n const id = v4();\n\n const failTimeout = setTimeout(() => {\n reject(new TimeoutError(\"Pong not received in time\"));\n }, this.#pingTimeout);\n\n this.#timeouts.add(failTimeout);\n\n this.#pendingMessages.set(id, {\n data: \"ping\",\n onAckReceived: () => {\n clearTimeout(failTimeout);\n\n this.#timeouts.delete(failTimeout);\n\n this.#logger.debug(`Resolving ping`);\n\n resolve();\n },\n });\n\n this.#logger.debug(`Sending ping ${id} to ${socket.url}`);\n\n socket.ping(id, undefined, (err) => {\n if (err) {\n reject(err);\n }\n });\n });\n }\n}\n","import { AsyncLocalStorage } from \"node:async_hooks\";\nimport { z } from \"zod\";\nimport { TriggerCustomEvent, TriggerFetch } from \"./types\";\n\ntype PerformRequestOptions<TSchema extends z.ZodTypeAny> = {\n version?: string;\n service: string;\n params: unknown;\n endpoint: string;\n response?: {\n schema: TSchema;\n };\n};\n\ntype TriggerRunLocalStorage = {\n performRequest: <TSchema extends z.ZodTypeAny>(\n key: string,\n options: PerformRequestOptions<TSchema>\n ) => Promise<z.infer<TSchema>>;\n sendEvent: (key: string, event: TriggerCustomEvent) => Promise<void>;\n fetch: TriggerFetch;\n workflowId: string;\n appOrigin: string;\n id: string;\n};\n\nexport const triggerRunLocalStorage =\n new AsyncLocalStorage<TriggerRunLocalStorage>();\n","import { TriggerLogger } from \"./types\";\n\ntype CallbackFunction = (\n level: \"DEBUG\" | \"INFO\" | \"WARN\" | \"ERROR\",\n message: string,\n properties?: Record<string, any>\n) => Promise<void>;\n\nexport class ContextLogger implements TriggerLogger {\n constructor(private callback: CallbackFunction) {}\n\n debug(message: string, properties?: Record<string, any>): Promise<void> {\n return this.callback(\"DEBUG\", message, properties);\n }\n info(message: string, properties?: Record<string, any>): Promise<void> {\n return this.callback(\"INFO\", message, properties);\n }\n warn(message: string, properties?: Record<string, any>): Promise<void> {\n return this.callback(\"WARN\", message, properties);\n }\n error(message: string, properties?: Record<string, any>): Promise<void> {\n return this.callback(\"ERROR\", message, properties);\n }\n}\n","import { TriggerKeyValueStorage } from \"./types\";\n\nexport type KvSetFunction = (operation: {\n key: string;\n namespace: string;\n idempotencyKey: string;\n value: any;\n}) => Promise<void>;\nexport type KvGetFunction = (operation: {\n key: string;\n namespace: string;\n idempotencyKey: string;\n}) => Promise<any>;\nexport type KvDeleteFunction = (operation: {\n key: string;\n namespace: string;\n idempotencyKey: string;\n}) => Promise<any>;\n\nexport class ContextKeyValueStorage implements TriggerKeyValueStorage {\n getCount: number = 0;\n setCount: number = 0;\n deleteCount: number = 0;\n\n constructor(\n private namespace: string,\n private onGet: KvGetFunction,\n private onSet: KvSetFunction,\n private onDelete: KvDeleteFunction\n ) {}\n\n get<T>(key: string): Promise<T | undefined> {\n const operation = {\n key,\n namespace: this.namespace,\n idempotencyKey: `get:${this.namespace}:${key}:${this.getCount++}`,\n };\n\n return this.onGet(operation);\n }\n set<T>(key: string, value: T): Promise<void> {\n const operation = {\n key,\n namespace: this.namespace,\n idempotencyKey: `set:${this.namespace}:${key}:${this.setCount++}`,\n value,\n };\n\n return this.onSet(operation);\n }\n\n delete(key: string): Promise<void> {\n const operation = {\n key,\n namespace: this.namespace,\n idempotencyKey: `delete:${this.namespace}:${key}:${this.deleteCount++}`,\n };\n\n return this.onDelete(operation);\n }\n}\n","import { TriggerClient } from \"../client\";\nimport { LogLevel } from \"internal-bridge\";\nimport { TriggerEvent } from \"../events\";\nimport type { TriggerContext } from \"../types\";\nimport { z } from \"zod\";\n\nexport type TriggerOptions<TSchema extends z.ZodTypeAny> = {\n id: string;\n name: string;\n on: TriggerEvent<TSchema>;\n apiKey?: string;\n endpoint?: string;\n logLevel?: LogLevel;\n\n /**\n * The TTL for the trigger in seconds. If the trigger is not run within this time, it will be aborted. Defaults to 3600 seconds (1 hour).\n * @type {number}\n */\n triggerTTL?: number;\n\n run: (event: z.infer<TSchema>, ctx: TriggerContext) => Promise<any>;\n};\n\nexport class Trigger<TSchema extends z.ZodTypeAny> {\n options: TriggerOptions<TSchema>;\n #client: TriggerClient<TSchema> | undefined;\n\n constructor(options: TriggerOptions<TSchema>) {\n this.options = options;\n }\n\n async listen() {\n const apiKey = this.#getApiKey();\n\n const chalk = (await import(\"chalk\")).default;\n const terminalLink = (await import(\"terminal-link\")).default;\n\n if (apiKey.status === \"invalid\") {\n console.log(\n `${chalk.red(\"Trigger.dev error\")}: ${chalk.bold(\n this.id\n )} is has an invalid API key (\"${chalk.italic(\n apiKey.apiKey\n )}\"), please set the TRIGGER_API_KEY environment variable or pass the apiKey option to a valid value. ${terminalLink(\n \"Get your API key here\",\n \"https://app.trigger.dev\",\n {\n fallback(text, url) {\n return `${text} 👉 ${url}`;\n },\n }\n )}`\n );\n\n return;\n } else if (apiKey.status === \"missing\") {\n console.log(\n `${chalk.red(\"Trigger.dev error\")}: ${chalk.bold(\n this.id\n )} is missing an API key, please set the TRIGGER_API_KEY environment variable or pass the apiKey option to the Trigger constructor. ${terminalLink(\n \"Get your API key here\",\n \"https://app.trigger.dev\",\n {\n fallback(text, url) {\n return `${text} 👉 ${url}`;\n },\n }\n )}`\n );\n\n return;\n }\n\n if (!this.#client) {\n this.#client = new TriggerClient(this, this.options);\n }\n\n return this.#client.listen();\n }\n\n get id() {\n return this.options.id;\n }\n\n get name() {\n return this.options.name;\n }\n\n get endpoint() {\n return this.options.endpoint;\n }\n\n get on() {\n return this.options.on;\n }\n\n #getApiKey() {\n const apiKey = this.options.apiKey ?? process.env.TRIGGER_API_KEY;\n\n if (!apiKey) {\n return { status: \"missing\" as const };\n }\n\n // Validate the api_key format (should be trigger_{env}_XXXXX)\n const isValid = apiKey.match(/^trigger_[a-z]+_[a-zA-Z0-9]+$/);\n\n if (!isValid) {\n return { status: \"invalid\" as const, apiKey };\n }\n\n return { status: \"valid\" as const, apiKey };\n }\n}\n","import { triggerRunLocalStorage } from \"./localStorage\";\nimport type { TriggerCustomEvent } from \"./types\";\nimport fetch from \"node-fetch\";\n\nexport function sendEvent(\n idOrKey: string,\n event: TriggerCustomEvent\n): Promise<void> {\n const triggerRun = triggerRunLocalStorage.getStore();\n\n if (!triggerRun) {\n // Do it through the API\n return sendEventFetch(idOrKey, event);\n }\n\n return triggerRun.sendEvent(idOrKey, event);\n}\n\nasync function sendEventFetch(\n id: string,\n event: TriggerCustomEvent\n): Promise<void> {\n if (!process.env.TRIGGER_API_KEY) {\n throw new Error(\n `There was a problem sending a custom event: the TRIGGER_API_KEY environment variable is not set`\n );\n }\n\n const baseUrl = process.env.TRIGGER_API_URL || \"https://app.trigger.dev\";\n const url = `${baseUrl}/api/v1/events`;\n\n const response = await fetch(url, {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n Authorization: `Bearer ${process.env.TRIGGER_API_KEY}`,\n },\n body: JSON.stringify({\n id,\n event,\n }),\n });\n\n if (!response.ok) {\n throw new Error(\n `There was a problem sending a custom event: ${response.statusText}`\n );\n }\n\n return;\n}\n","import { triggerRunLocalStorage } from \"./localStorage\";\nimport { z } from \"zod\";\nimport { FetchOptions, FetchResponse } from \"./types\";\n\nexport function fetch<TBodySchema extends z.ZodTypeAny = z.ZodTypeAny>(\n key: string,\n url: string | URL,\n options: FetchOptions<TBodySchema>\n): Promise<FetchResponse<TBodySchema>> {\n const triggerRun = triggerRunLocalStorage.getStore();\n\n if (!triggerRun) {\n throw new Error(\"Cannot call fetch outside of a trigger run\");\n }\n\n return triggerRun.fetch(key, url, options);\n}\n"],"mappings":"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","names":["fetch","LiteralSchema","z","union","string","number","boolean","null","JsonSchema","lazy","array","record","SerializableSchema","date","undefined","SerializableJsonSchema","import_zod","ErrorSchema","z","object","name","string","message","stackTrace","optional","import_zod","LogMessageSchema","z","object","level","enum","message","string","properties","JsonSchema","default","import_zod","DelaySchema","z","object","type","literal","seconds","number","optional","minutes","hours","days","ScheduledForSchema","scheduledFor","string","datetime","WaitSchema","discriminatedUnion","import_zod","CustomEventSchema","z","object","name","string","payload","JsonSchema","context","optional","timestamp","datetime","delay","union","seconds","number","int","minutes","hours","days","until","SerializableCustomEventSchema","SerializableJsonSchema","date","EventMatcherSchema","array","boolean","EventFilterSchema","lazy","record","ScheduledEventPayloadSchema","lastRunAt","coerce","scheduledTime","ScheduleSourceRateSchema","rateOf","min","max","ScheduleSourceCronSchema","cron","ScheduleSourceSchema","ManualWebhookSourceSchema","verifyPayload","enabled","header","event","SlackBlockInteractionSourceSchema","type","literal","blockId","actionIds","SlackViewSubmissionInteractionSourceSchema","callbackIds","SlackInteractionSourceSchema","discriminatedUnion","import_zod","CustomEventTriggerSchema","z","object","type","literal","service","name","string","filter","EventFilterSchema","schema","JsonSchema","optional","WebhookEventTriggerSchema","source","manualRegistration","boolean","default","HttpEventTriggerSchema","ScheduledEventTriggerSchema","ScheduleSourceSchema","SlackInteractionTriggerSchema","SlackInteractionSourceSchema","TriggerMetadataSchema","discriminatedUnion","import_zod","SecureStringSchema","z","object","__secureString","literal","strings","array","string","interpolations","RetrySchema","enabled","boolean","default","factor","number","maxTimeout","minTimeout","maxAttempts","statusCodes","FetchRequestSchema","url","headers","record","union","optional","method","enum","body","any","retry","FetchOutputSchema","status","ok","FetchResponseSchema","import_zod","InitializeRunOnceSchema","z","object","type","enum","CompleteRunOnceSchema","idempotencyKey","string","output","optional","ResolveRunOnceOuputSchema","hasRun","boolean","SerializableJsonSchema","import_zod","KVGetSchema","z","object","key","string","namespace","KVDeleteSchema","KVSetSchema","value","SerializableJsonSchema","import_zod","customEvent","options","schema","z","any","metadata","type","service","name","filter","event","payload","zodToJsonSchema","scheduleEvent","source","ScheduledEventPayloadSchema","webhookEvent","slugify","eventName","verifyPayload","enabled","manualRegistration","import_zod","HostRPCSchema","TRIGGER_WORKFLOW","request","z","object","id","string","trigger","input","JsonSchema","default","context","meta","environment","workflowId","organizationId","apiKey","isTest","boolean","appOrigin","attempt","number","optional","response","RESOLVE_REQUEST","key","output","runId","RESOLVE_DELAY","REJECT_REQUEST","error","RESOLVE_FETCH_REQUEST","FetchOutputSchema","REJECT_FETCH_REQUEST","RESOLVE_RUN_ONCE","ResolveRunOnceOuputSchema","RESOLVE_KV_GET","SerializableJsonSchema","RESOLVE_KV_SET","RESOLVE_KV_DELETE","import_zod","ServerRPCSchema","INITIALIZE_DELAY","request","z","object","runId","string","key","wait","WaitSchema","timestamp","response","boolean","SEND_REQUEST","service","endpoint","params","any","version","optional","SEND_FETCH","fetch","FetchRequestSchema","SEND_LOG","log","message","level","enum","properties","SEND_EVENT","event","CustomEventSchema","INITIALIZE_HOST","apiKey","workflowId","workflowName","trigger","TriggerMetadataSchema","packageVersion","packageName","triggerTTL","number","discriminatedUnion","type","literal","nullable","INITIALIZE_HOST_V2","metadata","SerializableJsonSchema","data","workflow","id","slug","environment","organization","isNew","url","START_WORKFLOW_RUN","COMPLETE_WORKFLOW_RUN","output","SEND_WORKFLOW_ERROR","error","name","stackTrace","INITIALIZE_RUN_ONCE","runOnce","InitializeRunOnceSchema","COMPLETE_RUN_ONCE","CompleteRunOnceSchema","SEND_KV_GET","get","namespace","SEND_KV_SET","set","value","SEND_KV_DELETE","delete","import_zod","MESSAGE_META","z","object","data","any","id","string","type","union","literal","TriggerEnvironmentSchema","enum","import_zod","logLevels","Logger","constructor","name","level","n","tags","indexOf","process","env","TRIGGER_LOG_LEVEL","log","args","console","logClean","error","formattedDateTime","warn","info","debug","message","structuredLog","timestamp","structureArgs","JSON","stringify","Array","isArray","map","join","tag","date","Date","hours","getHours","minutes","getMinutes","seconds","getSeconds","milliseconds","getMilliseconds","formattedHours","formattedMinutes","formattedSeconds","formattedMilliseconds","length","RPCMessageSchema","z","object","id","string","methodName","data","any","kind","enum","ZodRPC","constructor","options","Map","Logger","connection","sender","receiver","handlers","onMessage","attach","bind","resetConnection","detach","send","key","debug","generateStableId","message","packageMessage","Promise","resolve","reject","set","rawResponseText","parsed","parse","err","catch","rawData","JSON","error","callError","ZodError","stringify","errors","flatten","method","Error","inputs","request","handler","returnValue","preparedResponseText","packageResponse","responseCallback","get","delete","connId","reqKey","reqData","serializedData","inputString","hash","createHash","update","digest","callerData","import_uuid","import_zod","TimeoutError","Error","NotConnectedError","_logger","HostConnection","constructor","socket","options","Map","id","v4","onMessage","Evt","onAuthenticated","onClose","onOpen","onError","connectTimeout","sendTimeout","pingTimeout","Set","Logger","attach","clearInterval","undefined","timeout","clearTimeout","clear","onopen","post","onclose","ev","code","reason","onerror","message","onmessage","event","data","JSON","parse","toString","metadata","MESSAGE_META","type","pendingMessage","get","onAckReceived","delete","send","stringify","on","buf","connect","debug","Promise","resolve","reject","readyState","OPEN","failTimeout","setTimeout","add","set","close","detach","lastSuccessfulPing","Date","setInterval","err","warn","error","getTime","url","ping","triggerRunLocalStorage","AsyncLocalStorage","ContextLogger","constructor","callback","debug","message","properties","info","warn","error","ContextKeyValueStorage","constructor","namespace","onGet","onSet","onDelete","getCount","setCount","deleteCount","get","key","operation","idempotencyKey","set","value","delete","zodErrorMessageOptions","delimiter","error","_connection","_logger","TriggerClient","constructor","trigger","options","Map","apiKey","process","env","TRIGGER_API_KEY","Error","endpoint","TRIGGER_WSS_URL","Logger","id","logLevel","listen","instanceId","terminalLink","default","isNew","logClean","name","url","fallback","text","log","close","undefined","v4","debug","headers","Authorization","connection","HostConnection","WebSocket","followRedirects","onClose","attach","code","reason","chalk","red","then","catch","Math","round","Promise","resolve","setTimeout","connect","resetConnection","serverRPC","ZodRPC","sender","ServerRPCSchema","receiver","HostRPCSchema","handlers","RESOLVE_DELAY","data","waitCallbacks","get","messageKey","meta","runId","key","RESOLVE_RUN_ONCE","runOnceCallbacks","output","RESOLVE_REQUEST","requestCallbacks","REJECT_REQUEST","reject","RESOLVE_FETCH_REQUEST","fetchCallbacks","REJECT_FETCH_REQUEST","RESOLVE_KV_GET","getCallbacks","RESOLVE_KV_SET","setCallbacks","RESOLVE_KV_DELETE","deleteCallbacks","TRIGGER_WORKFLOW","parsedEventData","on","schema","safeParse","input","success","send","timestamp","String","highPrecisionTimestamp","message","generateErrorMessage","issues","fetchFunction","result","set","fetch","toString","method","body","retry","response","status","ok","responseSchema","z","any","parse","kvGetFunction","op","idempotencyKey","namespace","kvSetFunction","value","kvDeleteFunction","delete","ctx","environment","organizationId","isTest","kv","ContextKeyValueStorage","workflowId","globalKv","runKv","logger","ContextLogger","level","properties","JSON","stringify","sendEvent","event","waitFor","wait","type","seconds","minutes","hours","days","waitUntil","date","scheduledFor","toISOString","runOnce","callback","hasRun","callbackResult","runOnceLocalOnly","eventData","triggerRunLocalStorage","run","performRequest","request","service","params","version","appOrigin","attempt","anyError","parseAnyError","stackTrace","stack","parsedError","object","string","passthrough","repoInfo","safeGetRepoInfo","remoteUrl","getRemoteUrl","commonGitDir","packageMetadata","getTriggerPackageEnvVars","workflowName","metadata","packageVersion","packageName","triggerTTL","git","sha","branch","committer","committerDate","commitMessage","origin","gatherEnvVars","methodName","err","TimeoutError","sleep","ms","nanoseconds","hrtime","npm_package_json","packageJson","readFile","triggerdotdev","envVars","Object","entries","filter","startsWith","map","replace","fromEntries","cwd","gitRemoteOriginUrl","gitRepoInfo","Trigger","constructor","options","listen","apiKey","chalk","default","terminalLink","status","console","log","red","bold","id","italic","fallback","text","url","TriggerClient","name","endpoint","on","process","env","TRIGGER_API_KEY","isValid","match","sendEvent","idOrKey","event","triggerRun","triggerRunLocalStorage","getStore","sendEventFetch","id","process","env","TRIGGER_API_KEY","Error","baseUrl","TRIGGER_API_URL","url","response","fetch","method","headers","Authorization","body","JSON","stringify","ok","statusText","fetch","key","url","options","triggerRun","triggerRunLocalStorage","getStore","Error","getTriggerRun","triggerRunLocalStorage","getStore","secureString","strings","interpolations","__secureString","raw"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@trigger.dev/sdk",
3
- "version": "0.2.22-next.0",
3
+ "version": "0.2.22",
4
4
  "description": "trigger.dev Node.JS SDK",
5
5
  "main": "./dist/index.js",
6
6
  "types": "./dist/index.d.ts",