@trigger.dev/sdk 2.0.0-next.15 → 2.0.0-next.17
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.ts +18 -14
- package/dist/index.js +65 -36
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.d.ts
CHANGED
|
@@ -15,10 +15,10 @@ declare class Logger {
|
|
|
15
15
|
constructor(name: string, level?: LogLevel, filteredKeys?: string[], jsonReplacer?: (key: string, value: unknown) => unknown);
|
|
16
16
|
filter(...keys: string[]): Logger;
|
|
17
17
|
static satisfiesLogLevel(logLevel: LogLevel, setLevel: LogLevel): boolean;
|
|
18
|
-
log(...args:
|
|
19
|
-
error(...args:
|
|
20
|
-
warn(...args:
|
|
21
|
-
info(...args:
|
|
18
|
+
log(message: string, ...args: Array<Record<string, unknown> | undefined>): void;
|
|
19
|
+
error(message: string, ...args: Array<Record<string, unknown> | undefined>): void;
|
|
20
|
+
warn(message: string, ...args: Array<Record<string, unknown> | undefined>): void;
|
|
21
|
+
info(message: string, ...args: Array<Record<string, unknown> | undefined>): void;
|
|
22
22
|
debug(message: string, ...args: Array<Record<string, unknown> | undefined>): void;
|
|
23
23
|
}
|
|
24
24
|
|
|
@@ -48,7 +48,7 @@ declare const ServerTaskSchema: z.ZodObject<{
|
|
|
48
48
|
startedAt: z.ZodNullable<z.ZodOptional<z.ZodDate>>;
|
|
49
49
|
completedAt: z.ZodNullable<z.ZodOptional<z.ZodDate>>;
|
|
50
50
|
delayUntil: z.ZodNullable<z.ZodOptional<z.ZodDate>>;
|
|
51
|
-
status: z.ZodEnum<["PENDING", "WAITING", "RUNNING", "COMPLETED", "ERRORED"]>;
|
|
51
|
+
status: z.ZodEnum<["PENDING", "WAITING", "RUNNING", "COMPLETED", "ERRORED", "CANCELED"]>;
|
|
52
52
|
description: z.ZodNullable<z.ZodOptional<z.ZodString>>;
|
|
53
53
|
params: z.ZodNullable<z.ZodOptional<z.ZodType<DeserializedJson, z.ZodTypeDef, DeserializedJson>>>;
|
|
54
54
|
properties: z.ZodNullable<z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
@@ -97,7 +97,7 @@ declare const ServerTaskSchema: z.ZodObject<{
|
|
|
97
97
|
id: string;
|
|
98
98
|
name: string;
|
|
99
99
|
noop: boolean;
|
|
100
|
-
status: "PENDING" | "WAITING" | "RUNNING" | "COMPLETED" | "ERRORED";
|
|
100
|
+
status: "PENDING" | "WAITING" | "RUNNING" | "COMPLETED" | "ERRORED" | "CANCELED";
|
|
101
101
|
idempotencyKey: string;
|
|
102
102
|
attempts: number;
|
|
103
103
|
icon?: string | null | undefined;
|
|
@@ -128,7 +128,7 @@ declare const ServerTaskSchema: z.ZodObject<{
|
|
|
128
128
|
id: string;
|
|
129
129
|
name: string;
|
|
130
130
|
noop: boolean;
|
|
131
|
-
status: "PENDING" | "WAITING" | "RUNNING" | "COMPLETED" | "ERRORED";
|
|
131
|
+
status: "PENDING" | "WAITING" | "RUNNING" | "COMPLETED" | "ERRORED" | "CANCELED";
|
|
132
132
|
idempotencyKey: string;
|
|
133
133
|
attempts: number;
|
|
134
134
|
icon?: string | null | undefined;
|
|
@@ -160,20 +160,20 @@ type ServerTask = z.infer<typeof ServerTaskSchema>;
|
|
|
160
160
|
declare const CachedTaskSchema: z.ZodObject<{
|
|
161
161
|
id: z.ZodString;
|
|
162
162
|
idempotencyKey: z.ZodString;
|
|
163
|
-
status: z.ZodEnum<["PENDING", "WAITING", "RUNNING", "COMPLETED", "ERRORED"]>;
|
|
163
|
+
status: z.ZodEnum<["PENDING", "WAITING", "RUNNING", "COMPLETED", "ERRORED", "CANCELED"]>;
|
|
164
164
|
noop: z.ZodDefault<z.ZodBoolean>;
|
|
165
165
|
output: z.ZodNullable<z.ZodOptional<z.ZodType<DeserializedJson, z.ZodTypeDef, DeserializedJson>>>;
|
|
166
166
|
parentId: z.ZodNullable<z.ZodOptional<z.ZodString>>;
|
|
167
167
|
}, "strip", z.ZodTypeAny, {
|
|
168
168
|
id: string;
|
|
169
169
|
noop: boolean;
|
|
170
|
-
status: "PENDING" | "WAITING" | "RUNNING" | "COMPLETED" | "ERRORED";
|
|
170
|
+
status: "PENDING" | "WAITING" | "RUNNING" | "COMPLETED" | "ERRORED" | "CANCELED";
|
|
171
171
|
idempotencyKey: string;
|
|
172
172
|
output?: DeserializedJson | undefined;
|
|
173
173
|
parentId?: string | null | undefined;
|
|
174
174
|
}, {
|
|
175
175
|
id: string;
|
|
176
|
-
status: "PENDING" | "WAITING" | "RUNNING" | "COMPLETED" | "ERRORED";
|
|
176
|
+
status: "PENDING" | "WAITING" | "RUNNING" | "COMPLETED" | "ERRORED" | "CANCELED";
|
|
177
177
|
idempotencyKey: string;
|
|
178
178
|
noop?: boolean | undefined;
|
|
179
179
|
output?: DeserializedJson | undefined;
|
|
@@ -3168,7 +3168,7 @@ declare class ApiClient {
|
|
|
3168
3168
|
id: string;
|
|
3169
3169
|
name: string;
|
|
3170
3170
|
noop: boolean;
|
|
3171
|
-
status: "PENDING" | "WAITING" | "RUNNING" | "COMPLETED" | "ERRORED";
|
|
3171
|
+
status: "PENDING" | "WAITING" | "RUNNING" | "COMPLETED" | "ERRORED" | "CANCELED";
|
|
3172
3172
|
idempotencyKey: string;
|
|
3173
3173
|
attempts: number;
|
|
3174
3174
|
icon?: string | null | undefined;
|
|
@@ -3200,7 +3200,7 @@ declare class ApiClient {
|
|
|
3200
3200
|
id: string;
|
|
3201
3201
|
name: string;
|
|
3202
3202
|
noop: boolean;
|
|
3203
|
-
status: "PENDING" | "WAITING" | "RUNNING" | "COMPLETED" | "ERRORED";
|
|
3203
|
+
status: "PENDING" | "WAITING" | "RUNNING" | "COMPLETED" | "ERRORED" | "CANCELED";
|
|
3204
3204
|
idempotencyKey: string;
|
|
3205
3205
|
attempts: number;
|
|
3206
3206
|
icon?: string | null | undefined;
|
|
@@ -3232,7 +3232,7 @@ declare class ApiClient {
|
|
|
3232
3232
|
id: string;
|
|
3233
3233
|
name: string;
|
|
3234
3234
|
noop: boolean;
|
|
3235
|
-
status: "PENDING" | "WAITING" | "RUNNING" | "COMPLETED" | "ERRORED";
|
|
3235
|
+
status: "PENDING" | "WAITING" | "RUNNING" | "COMPLETED" | "ERRORED" | "CANCELED";
|
|
3236
3236
|
idempotencyKey: string;
|
|
3237
3237
|
attempts: number;
|
|
3238
3238
|
icon?: string | null | undefined;
|
|
@@ -4275,13 +4275,17 @@ declare class RetryWithTaskError {
|
|
|
4275
4275
|
retryAt: Date;
|
|
4276
4276
|
constructor(cause: ErrorWithStack, task: ServerTask, retryAt: Date);
|
|
4277
4277
|
}
|
|
4278
|
+
declare class CanceledWithTaskError {
|
|
4279
|
+
task: ServerTask;
|
|
4280
|
+
constructor(task: ServerTask);
|
|
4281
|
+
}
|
|
4278
4282
|
/** Use this function if you're using a `try/catch` block to catch errors.
|
|
4279
4283
|
* It checks if a thrown error is a special internal error that you should ignore.
|
|
4280
4284
|
* If this returns `true` then you must rethrow the error: `throw err;`
|
|
4281
4285
|
* @param err The error to check
|
|
4282
4286
|
* @returns `true` if the error is a Trigger Error, `false` otherwise.
|
|
4283
4287
|
*/
|
|
4284
|
-
declare function isTriggerError(err: unknown): err is ResumeWithTaskError | RetryWithTaskError;
|
|
4288
|
+
declare function isTriggerError(err: unknown): err is ResumeWithTaskError | RetryWithTaskError | CanceledWithTaskError;
|
|
4285
4289
|
|
|
4286
4290
|
type Task = ServerTask;
|
|
4287
4291
|
declare function redactString(strings: TemplateStringsArray, ...interpolations: string[]): RedactString;
|
package/dist/index.js
CHANGED
|
@@ -154,9 +154,10 @@ var logLevels = [
|
|
|
154
154
|
"info",
|
|
155
155
|
"debug"
|
|
156
156
|
];
|
|
157
|
-
var _name, _level, _filteredKeys, _jsonReplacer;
|
|
157
|
+
var _name, _level, _filteredKeys, _jsonReplacer, _structuredLog, structuredLog_fn;
|
|
158
158
|
var _Logger = class {
|
|
159
159
|
constructor(name, level = "info", filteredKeys = [], jsonReplacer) {
|
|
160
|
+
__privateAdd(this, _structuredLog);
|
|
160
161
|
__privateAdd(this, _name, void 0);
|
|
161
162
|
__privateAdd(this, _level, void 0);
|
|
162
163
|
__privateAdd(this, _filteredKeys, []);
|
|
@@ -172,36 +173,30 @@ var _Logger = class {
|
|
|
172
173
|
static satisfiesLogLevel(logLevel, setLevel) {
|
|
173
174
|
return logLevels.indexOf(logLevel) <= logLevels.indexOf(setLevel);
|
|
174
175
|
}
|
|
175
|
-
log(...args) {
|
|
176
|
+
log(message, ...args) {
|
|
176
177
|
if (__privateGet(this, _level) < 0)
|
|
177
178
|
return;
|
|
178
|
-
|
|
179
|
+
__privateMethod(this, _structuredLog, structuredLog_fn).call(this, console.log, message, ...args);
|
|
179
180
|
}
|
|
180
|
-
error(...args) {
|
|
181
|
+
error(message, ...args) {
|
|
181
182
|
if (__privateGet(this, _level) < 1)
|
|
182
183
|
return;
|
|
183
|
-
|
|
184
|
+
__privateMethod(this, _structuredLog, structuredLog_fn).call(this, console.error, message, ...args);
|
|
184
185
|
}
|
|
185
|
-
warn(...args) {
|
|
186
|
+
warn(message, ...args) {
|
|
186
187
|
if (__privateGet(this, _level) < 2)
|
|
187
188
|
return;
|
|
188
|
-
|
|
189
|
+
__privateMethod(this, _structuredLog, structuredLog_fn).call(this, console.warn, message, ...args);
|
|
189
190
|
}
|
|
190
|
-
info(...args) {
|
|
191
|
+
info(message, ...args) {
|
|
191
192
|
if (__privateGet(this, _level) < 3)
|
|
192
193
|
return;
|
|
193
|
-
|
|
194
|
+
__privateMethod(this, _structuredLog, structuredLog_fn).call(this, console.info, message, ...args);
|
|
194
195
|
}
|
|
195
196
|
debug(message, ...args) {
|
|
196
197
|
if (__privateGet(this, _level) < 4)
|
|
197
198
|
return;
|
|
198
|
-
|
|
199
|
-
timestamp: new Date(),
|
|
200
|
-
name: __privateGet(this, _name),
|
|
201
|
-
message,
|
|
202
|
-
args: structureArgs(safeJsonClone(args), __privateGet(this, _filteredKeys))
|
|
203
|
-
};
|
|
204
|
-
console.debug(JSON.stringify(structuredLog, createReplacer(__privateGet(this, _jsonReplacer))));
|
|
199
|
+
__privateMethod(this, _structuredLog, structuredLog_fn).call(this, console.debug, message, ...args);
|
|
205
200
|
}
|
|
206
201
|
};
|
|
207
202
|
var Logger = _Logger;
|
|
@@ -210,6 +205,16 @@ _name = new WeakMap();
|
|
|
210
205
|
_level = new WeakMap();
|
|
211
206
|
_filteredKeys = new WeakMap();
|
|
212
207
|
_jsonReplacer = new WeakMap();
|
|
208
|
+
_structuredLog = new WeakSet();
|
|
209
|
+
structuredLog_fn = /* @__PURE__ */ __name(function(loggerFunction, message, ...args) {
|
|
210
|
+
const structuredLog = {
|
|
211
|
+
...structureArgs(safeJsonClone(args), __privateGet(this, _filteredKeys)),
|
|
212
|
+
timestamp: new Date(),
|
|
213
|
+
name: __privateGet(this, _name),
|
|
214
|
+
message
|
|
215
|
+
};
|
|
216
|
+
loggerFunction(JSON.stringify(structuredLog, createReplacer(__privateGet(this, _jsonReplacer))));
|
|
217
|
+
}, "#structuredLog");
|
|
213
218
|
function createReplacer(replacer) {
|
|
214
219
|
return (key, value) => {
|
|
215
220
|
if (typeof value === "bigint") {
|
|
@@ -237,19 +242,6 @@ function safeJsonClone(obj) {
|
|
|
237
242
|
}
|
|
238
243
|
}
|
|
239
244
|
__name(safeJsonClone, "safeJsonClone");
|
|
240
|
-
function formattedDateTime() {
|
|
241
|
-
const date = new Date();
|
|
242
|
-
const hours = date.getHours();
|
|
243
|
-
const minutes = date.getMinutes();
|
|
244
|
-
const seconds = date.getSeconds();
|
|
245
|
-
const milliseconds = date.getMilliseconds();
|
|
246
|
-
const formattedHours = hours < 10 ? `0${hours}` : hours;
|
|
247
|
-
const formattedMinutes = minutes < 10 ? `0${minutes}` : minutes;
|
|
248
|
-
const formattedSeconds = seconds < 10 ? `0${seconds}` : seconds;
|
|
249
|
-
const formattedMilliseconds = milliseconds < 10 ? `00${milliseconds}` : milliseconds < 100 ? `0${milliseconds}` : milliseconds;
|
|
250
|
-
return `${formattedHours}:${formattedMinutes}:${formattedSeconds}.${formattedMilliseconds}`;
|
|
251
|
-
}
|
|
252
|
-
__name(formattedDateTime, "formattedDateTime");
|
|
253
245
|
function structureArgs(args, filteredKeys = []) {
|
|
254
246
|
if (args.length === 0) {
|
|
255
247
|
return;
|
|
@@ -417,7 +409,8 @@ var TaskStatusSchema = import_zod7.z.enum([
|
|
|
417
409
|
"WAITING",
|
|
418
410
|
"RUNNING",
|
|
419
411
|
"COMPLETED",
|
|
420
|
-
"ERRORED"
|
|
412
|
+
"ERRORED",
|
|
413
|
+
"CANCELED"
|
|
421
414
|
]);
|
|
422
415
|
var TaskSchema = import_zod7.z.object({
|
|
423
416
|
id: import_zod7.z.string(),
|
|
@@ -708,6 +701,10 @@ var RunJobRetryWithTaskSchema = import_zod9.z.object({
|
|
|
708
701
|
error: ErrorWithStackSchema,
|
|
709
702
|
retryAt: import_zod9.z.coerce.date()
|
|
710
703
|
});
|
|
704
|
+
var RunJobCanceledWithTaskSchema = import_zod9.z.object({
|
|
705
|
+
status: import_zod9.z.literal("CANCELED"),
|
|
706
|
+
task: TaskSchema
|
|
707
|
+
});
|
|
711
708
|
var RunJobSuccessSchema = import_zod9.z.object({
|
|
712
709
|
status: import_zod9.z.literal("SUCCESS"),
|
|
713
710
|
output: DeserializedJsonSchema.optional()
|
|
@@ -716,6 +713,7 @@ var RunJobResponseSchema = import_zod9.z.discriminatedUnion("status", [
|
|
|
716
713
|
RunJobErrorSchema,
|
|
717
714
|
RunJobResumeWithTaskSchema,
|
|
718
715
|
RunJobRetryWithTaskSchema,
|
|
716
|
+
RunJobCanceledWithTaskSchema,
|
|
719
717
|
RunJobSuccessSchema
|
|
720
718
|
]);
|
|
721
719
|
var PreprocessRunBodySchema = import_zod9.z.object({
|
|
@@ -1292,8 +1290,14 @@ var RetryWithTaskError = class {
|
|
|
1292
1290
|
}
|
|
1293
1291
|
};
|
|
1294
1292
|
__name(RetryWithTaskError, "RetryWithTaskError");
|
|
1293
|
+
var CanceledWithTaskError = class {
|
|
1294
|
+
constructor(task) {
|
|
1295
|
+
this.task = task;
|
|
1296
|
+
}
|
|
1297
|
+
};
|
|
1298
|
+
__name(CanceledWithTaskError, "CanceledWithTaskError");
|
|
1295
1299
|
function isTriggerError(err) {
|
|
1296
|
-
return err instanceof ResumeWithTaskError || err instanceof RetryWithTaskError;
|
|
1300
|
+
return err instanceof ResumeWithTaskError || err instanceof RetryWithTaskError || err instanceof CanceledWithTaskError;
|
|
1297
1301
|
}
|
|
1298
1302
|
__name(isTriggerError, "isTriggerError");
|
|
1299
1303
|
|
|
@@ -1505,7 +1509,8 @@ var IO = class {
|
|
|
1505
1509
|
paths: [
|
|
1506
1510
|
"secret"
|
|
1507
1511
|
]
|
|
1508
|
-
}
|
|
1512
|
+
},
|
|
1513
|
+
params: options
|
|
1509
1514
|
}, async (task) => {
|
|
1510
1515
|
return await this._apiClient.updateSource(this._triggerClient.id, options.key, options);
|
|
1511
1516
|
});
|
|
@@ -1673,6 +1678,13 @@ var IO = class {
|
|
|
1673
1678
|
...options,
|
|
1674
1679
|
parentId
|
|
1675
1680
|
});
|
|
1681
|
+
if (task.status === "CANCELED") {
|
|
1682
|
+
this._logger.debug("Task canceled", {
|
|
1683
|
+
idempotencyKey,
|
|
1684
|
+
task
|
|
1685
|
+
});
|
|
1686
|
+
throw new CanceledWithTaskError(task);
|
|
1687
|
+
}
|
|
1676
1688
|
if (task.status === "COMPLETED") {
|
|
1677
1689
|
this._logger.debug("Using task output", {
|
|
1678
1690
|
idempotencyKey,
|
|
@@ -1709,10 +1721,13 @@ var IO = class {
|
|
|
1709
1721
|
idempotencyKey,
|
|
1710
1722
|
task
|
|
1711
1723
|
});
|
|
1712
|
-
await this._apiClient.completeTask(this._id, task.id, {
|
|
1724
|
+
const completedTask = await this._apiClient.completeTask(this._id, task.id, {
|
|
1713
1725
|
output: result ?? void 0,
|
|
1714
1726
|
properties: task.outputProperties ?? void 0
|
|
1715
1727
|
});
|
|
1728
|
+
if (completedTask.status === "CANCELED") {
|
|
1729
|
+
throw new CanceledWithTaskError(completedTask);
|
|
1730
|
+
}
|
|
1716
1731
|
return result;
|
|
1717
1732
|
} catch (error) {
|
|
1718
1733
|
if (isTriggerError(error)) {
|
|
@@ -2118,11 +2133,19 @@ var TriggerClient = class {
|
|
|
2118
2133
|
}
|
|
2119
2134
|
};
|
|
2120
2135
|
}
|
|
2121
|
-
const
|
|
2136
|
+
const sourceRequestNeedsBody = headers.data["x-ts-http-method"] !== "GET";
|
|
2137
|
+
const sourceRequestInit = {
|
|
2122
2138
|
method: headers.data["x-ts-http-method"],
|
|
2123
2139
|
headers: headers.data["x-ts-http-headers"],
|
|
2124
|
-
body:
|
|
2125
|
-
}
|
|
2140
|
+
body: sourceRequestNeedsBody ? request.body : void 0
|
|
2141
|
+
};
|
|
2142
|
+
if (sourceRequestNeedsBody) {
|
|
2143
|
+
try {
|
|
2144
|
+
sourceRequestInit.duplex = "half";
|
|
2145
|
+
} catch (error) {
|
|
2146
|
+
}
|
|
2147
|
+
}
|
|
2148
|
+
const sourceRequest = new Request(headers.data["x-ts-http-url"], sourceRequestInit);
|
|
2126
2149
|
const key = headers.data["x-ts-key"];
|
|
2127
2150
|
const dynamicId = headers.data["x-ts-dynamic-id"];
|
|
2128
2151
|
const secret = headers.data["x-ts-secret"];
|
|
@@ -2355,6 +2378,12 @@ executeJob_fn = /* @__PURE__ */ __name(async function(body1, job1) {
|
|
|
2355
2378
|
retryAt: error.retryAt
|
|
2356
2379
|
};
|
|
2357
2380
|
}
|
|
2381
|
+
if (error instanceof CanceledWithTaskError) {
|
|
2382
|
+
return {
|
|
2383
|
+
status: "CANCELED",
|
|
2384
|
+
task: error.task
|
|
2385
|
+
};
|
|
2386
|
+
}
|
|
2358
2387
|
if (error instanceof RetryWithTaskError) {
|
|
2359
2388
|
const errorWithStack2 = ErrorWithStackSchema.safeParse(error.cause);
|
|
2360
2389
|
if (errorWithStack2.success) {
|