@trigger.dev/sdk 2.0.0-next.15 → 2.0.0-next.16
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 +63 -35
- 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
|
|
|
@@ -1673,6 +1677,13 @@ var IO = class {
|
|
|
1673
1677
|
...options,
|
|
1674
1678
|
parentId
|
|
1675
1679
|
});
|
|
1680
|
+
if (task.status === "CANCELED") {
|
|
1681
|
+
this._logger.debug("Task canceled", {
|
|
1682
|
+
idempotencyKey,
|
|
1683
|
+
task
|
|
1684
|
+
});
|
|
1685
|
+
throw new CanceledWithTaskError(task);
|
|
1686
|
+
}
|
|
1676
1687
|
if (task.status === "COMPLETED") {
|
|
1677
1688
|
this._logger.debug("Using task output", {
|
|
1678
1689
|
idempotencyKey,
|
|
@@ -1709,10 +1720,13 @@ var IO = class {
|
|
|
1709
1720
|
idempotencyKey,
|
|
1710
1721
|
task
|
|
1711
1722
|
});
|
|
1712
|
-
await this._apiClient.completeTask(this._id, task.id, {
|
|
1723
|
+
const completedTask = await this._apiClient.completeTask(this._id, task.id, {
|
|
1713
1724
|
output: result ?? void 0,
|
|
1714
1725
|
properties: task.outputProperties ?? void 0
|
|
1715
1726
|
});
|
|
1727
|
+
if (completedTask.status === "CANCELED") {
|
|
1728
|
+
throw new CanceledWithTaskError(completedTask);
|
|
1729
|
+
}
|
|
1716
1730
|
return result;
|
|
1717
1731
|
} catch (error) {
|
|
1718
1732
|
if (isTriggerError(error)) {
|
|
@@ -2118,11 +2132,19 @@ var TriggerClient = class {
|
|
|
2118
2132
|
}
|
|
2119
2133
|
};
|
|
2120
2134
|
}
|
|
2121
|
-
const
|
|
2135
|
+
const sourceRequestNeedsBody = headers.data["x-ts-http-method"] !== "GET";
|
|
2136
|
+
const sourceRequestInit = {
|
|
2122
2137
|
method: headers.data["x-ts-http-method"],
|
|
2123
2138
|
headers: headers.data["x-ts-http-headers"],
|
|
2124
|
-
body:
|
|
2125
|
-
}
|
|
2139
|
+
body: sourceRequestNeedsBody ? request.body : void 0
|
|
2140
|
+
};
|
|
2141
|
+
if (sourceRequestNeedsBody) {
|
|
2142
|
+
try {
|
|
2143
|
+
sourceRequestInit.duplex = "half";
|
|
2144
|
+
} catch (error) {
|
|
2145
|
+
}
|
|
2146
|
+
}
|
|
2147
|
+
const sourceRequest = new Request(headers.data["x-ts-http-url"], sourceRequestInit);
|
|
2126
2148
|
const key = headers.data["x-ts-key"];
|
|
2127
2149
|
const dynamicId = headers.data["x-ts-dynamic-id"];
|
|
2128
2150
|
const secret = headers.data["x-ts-secret"];
|
|
@@ -2355,6 +2377,12 @@ executeJob_fn = /* @__PURE__ */ __name(async function(body1, job1) {
|
|
|
2355
2377
|
retryAt: error.retryAt
|
|
2356
2378
|
};
|
|
2357
2379
|
}
|
|
2380
|
+
if (error instanceof CanceledWithTaskError) {
|
|
2381
|
+
return {
|
|
2382
|
+
status: "CANCELED",
|
|
2383
|
+
task: error.task
|
|
2384
|
+
};
|
|
2385
|
+
}
|
|
2358
2386
|
if (error instanceof RetryWithTaskError) {
|
|
2359
2387
|
const errorWithStack2 = ErrorWithStackSchema.safeParse(error.cause);
|
|
2360
2388
|
if (errorWithStack2.success) {
|