@trigger.dev/core 3.2.0 → 3.2.1
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/commonjs/schemas/api.d.ts +1340 -1134
- package/dist/commonjs/schemas/eventFilter.d.ts +4 -4
- package/dist/commonjs/schemas/fetch.d.ts +66 -33
- package/dist/commonjs/schemas/notifications.d.ts +24 -16
- package/dist/commonjs/schemas/requestFilter.d.ts +52 -4
- package/dist/commonjs/schemas/runs.d.ts +29 -13
- package/dist/commonjs/schemas/schedules.d.ts +8 -8
- package/dist/commonjs/schemas/statuses.d.ts +9 -8
- package/dist/commonjs/schemas/tasks.d.ts +32 -31
- package/dist/commonjs/schemas/triggers.d.ts +36 -36
- package/dist/commonjs/v3/apiClient/index.d.ts +48 -42
- package/dist/commonjs/v3/apiClient/index.js +19 -3
- package/dist/commonjs/v3/apiClient/index.js.map +1 -1
- package/dist/commonjs/v3/apiClient/runStream.d.ts +53 -4
- package/dist/commonjs/v3/apiClient/runStream.js +114 -13
- package/dist/commonjs/v3/apiClient/runStream.js.map +1 -1
- package/dist/commonjs/v3/apiClient/stream.js +24 -10
- package/dist/commonjs/v3/apiClient/stream.js.map +1 -1
- package/dist/commonjs/v3/apiClientManager/index.d.ts +1 -1
- package/dist/commonjs/v3/build/extensions.d.ts +1 -0
- package/dist/commonjs/v3/idempotencyKeys.d.ts +41 -0
- package/dist/commonjs/v3/idempotencyKeys.js +83 -0
- package/dist/commonjs/v3/idempotencyKeys.js.map +1 -0
- package/dist/commonjs/v3/index.d.ts +2 -0
- package/dist/commonjs/v3/index.js +2 -0
- package/dist/commonjs/v3/index.js.map +1 -1
- package/dist/commonjs/v3/jwt.d.ts +10 -1
- package/dist/commonjs/v3/jwt.js +17 -4
- package/dist/commonjs/v3/jwt.js.map +1 -1
- package/dist/commonjs/v3/runMetadata/index.d.ts +5 -0
- package/dist/commonjs/v3/runMetadata/index.js +15 -0
- package/dist/commonjs/v3/runMetadata/index.js.map +1 -1
- package/dist/commonjs/v3/runMetadata/manager.d.ts +13 -0
- package/dist/commonjs/v3/runMetadata/manager.js +174 -12
- package/dist/commonjs/v3/runMetadata/manager.js.map +1 -1
- package/dist/commonjs/v3/runMetadata/metadataStream.d.ts +21 -0
- package/dist/commonjs/v3/runMetadata/metadataStream.js +71 -0
- package/dist/commonjs/v3/runMetadata/metadataStream.js.map +1 -0
- package/dist/commonjs/v3/runMetadata/noopManager.d.ts +5 -0
- package/dist/commonjs/v3/runMetadata/noopManager.js +15 -0
- package/dist/commonjs/v3/runMetadata/noopManager.js.map +1 -1
- package/dist/commonjs/v3/runMetadata/types.d.ts +5 -0
- package/dist/commonjs/v3/runtime/devRuntimeManager.js.map +1 -1
- package/dist/commonjs/v3/schemas/api.d.ts +457 -786
- package/dist/commonjs/v3/schemas/build.d.ts +270 -496
- package/dist/commonjs/v3/schemas/common.d.ts +23 -23
- package/dist/commonjs/v3/schemas/eventFilter.d.ts +2 -2
- package/dist/commonjs/v3/schemas/fetch.d.ts +57 -45
- package/dist/commonjs/v3/schemas/messages.d.ts +1346 -1759
- package/dist/commonjs/v3/schemas/openTelemetry.d.ts +22 -22
- package/dist/commonjs/v3/schemas/resources.d.ts +138 -298
- package/dist/commonjs/v3/schemas/resources.js +1 -0
- package/dist/commonjs/v3/schemas/resources.js.map +1 -1
- package/dist/commonjs/v3/schemas/schemas.d.ts +317 -517
- package/dist/commonjs/v3/schemas/schemas.js +1 -0
- package/dist/commonjs/v3/schemas/schemas.js.map +1 -1
- package/dist/commonjs/v3/schemas/style.d.ts +2 -2
- package/dist/commonjs/v3/types/index.d.ts +1 -0
- package/dist/commonjs/v3/types/index.js +1 -0
- package/dist/commonjs/v3/types/index.js.map +1 -1
- package/dist/commonjs/v3/types/tasks.d.ts +20 -7
- package/dist/commonjs/v3/types/tasks.js.map +1 -1
- package/dist/commonjs/v3/types/tools.d.ts +6 -0
- package/dist/commonjs/v3/types/tools.js +22 -0
- package/dist/commonjs/v3/types/tools.js.map +1 -0
- package/dist/commonjs/v3/utils/getEnv.d.ts +1 -1
- package/dist/commonjs/v3/utils/getEnv.js +3 -3
- package/dist/commonjs/v3/utils/getEnv.js.map +1 -1
- package/dist/commonjs/v3/utils/globals.d.ts +2 -0
- package/dist/commonjs/v3/utils/globals.js.map +1 -1
- package/dist/commonjs/v3/utils/ioSerialization.d.ts +8 -3
- package/dist/commonjs/v3/utils/ioSerialization.js +43 -36
- package/dist/commonjs/v3/utils/ioSerialization.js.map +1 -1
- package/dist/commonjs/v3/wait-until-api.d.ts +2 -0
- package/dist/commonjs/v3/wait-until-api.js +8 -0
- package/dist/commonjs/v3/wait-until-api.js.map +1 -0
- package/dist/commonjs/v3/waitUntil/index.d.ts +11 -0
- package/dist/commonjs/v3/waitUntil/index.js +44 -0
- package/dist/commonjs/v3/waitUntil/index.js.map +1 -0
- package/dist/commonjs/v3/waitUntil/manager.d.ts +8 -0
- package/dist/commonjs/v3/waitUntil/manager.js +28 -0
- package/dist/commonjs/v3/waitUntil/manager.js.map +1 -0
- package/dist/commonjs/v3/waitUntil/types.d.ts +9 -0
- package/dist/commonjs/v3/waitUntil/types.js +3 -0
- package/dist/commonjs/v3/waitUntil/types.js.map +1 -0
- package/dist/commonjs/v3/workers/index.d.ts +1 -0
- package/dist/commonjs/v3/workers/index.js +3 -1
- package/dist/commonjs/v3/workers/index.js.map +1 -1
- package/dist/commonjs/v3/workers/taskExecutor.js +13 -0
- package/dist/commonjs/v3/workers/taskExecutor.js.map +1 -1
- package/dist/commonjs/v3/zodMessageHandler.d.ts +1 -1
- package/dist/commonjs/version.js +1 -1
- package/dist/esm/schemas/api.d.ts +1340 -1134
- package/dist/esm/schemas/eventFilter.d.ts +4 -4
- package/dist/esm/schemas/fetch.d.ts +66 -33
- package/dist/esm/schemas/notifications.d.ts +24 -16
- package/dist/esm/schemas/requestFilter.d.ts +52 -4
- package/dist/esm/schemas/runs.d.ts +29 -13
- package/dist/esm/schemas/schedules.d.ts +8 -8
- package/dist/esm/schemas/statuses.d.ts +9 -8
- package/dist/esm/schemas/tasks.d.ts +32 -31
- package/dist/esm/schemas/triggers.d.ts +36 -36
- package/dist/esm/v3/apiClient/index.d.ts +48 -42
- package/dist/esm/v3/apiClient/index.js +19 -3
- package/dist/esm/v3/apiClient/index.js.map +1 -1
- package/dist/esm/v3/apiClient/runStream.d.ts +53 -4
- package/dist/esm/v3/apiClient/runStream.js +111 -12
- package/dist/esm/v3/apiClient/runStream.js.map +1 -1
- package/dist/esm/v3/apiClient/stream.js +24 -10
- package/dist/esm/v3/apiClient/stream.js.map +1 -1
- package/dist/esm/v3/apiClientManager/index.d.ts +1 -1
- package/dist/esm/v3/build/extensions.d.ts +1 -0
- package/dist/esm/v3/idempotencyKeys.d.ts +41 -0
- package/dist/esm/v3/idempotencyKeys.js +78 -0
- package/dist/esm/v3/idempotencyKeys.js.map +1 -0
- package/dist/esm/v3/index.d.ts +2 -0
- package/dist/esm/v3/index.js +2 -0
- package/dist/esm/v3/index.js.map +1 -1
- package/dist/esm/v3/jwt.d.ts +10 -1
- package/dist/esm/v3/jwt.js +17 -4
- package/dist/esm/v3/jwt.js.map +1 -1
- package/dist/esm/v3/runMetadata/index.d.ts +5 -0
- package/dist/esm/v3/runMetadata/index.js +15 -0
- package/dist/esm/v3/runMetadata/index.js.map +1 -1
- package/dist/esm/v3/runMetadata/manager.d.ts +13 -0
- package/dist/esm/v3/runMetadata/manager.js +174 -12
- package/dist/esm/v3/runMetadata/manager.js.map +1 -1
- package/dist/esm/v3/runMetadata/metadataStream.d.ts +21 -0
- package/dist/esm/v3/runMetadata/metadataStream.js +67 -0
- package/dist/esm/v3/runMetadata/metadataStream.js.map +1 -0
- package/dist/esm/v3/runMetadata/noopManager.d.ts +5 -0
- package/dist/esm/v3/runMetadata/noopManager.js +15 -0
- package/dist/esm/v3/runMetadata/noopManager.js.map +1 -1
- package/dist/esm/v3/runMetadata/types.d.ts +5 -0
- package/dist/esm/v3/runtime/devRuntimeManager.js.map +1 -1
- package/dist/esm/v3/schemas/api.d.ts +457 -786
- package/dist/esm/v3/schemas/build.d.ts +270 -496
- package/dist/esm/v3/schemas/common.d.ts +23 -23
- package/dist/esm/v3/schemas/eventFilter.d.ts +2 -2
- package/dist/esm/v3/schemas/fetch.d.ts +57 -45
- package/dist/esm/v3/schemas/messages.d.ts +1346 -1759
- package/dist/esm/v3/schemas/openTelemetry.d.ts +22 -22
- package/dist/esm/v3/schemas/resources.d.ts +138 -298
- package/dist/esm/v3/schemas/resources.js +1 -0
- package/dist/esm/v3/schemas/resources.js.map +1 -1
- package/dist/esm/v3/schemas/schemas.d.ts +317 -517
- package/dist/esm/v3/schemas/schemas.js +1 -0
- package/dist/esm/v3/schemas/schemas.js.map +1 -1
- package/dist/esm/v3/schemas/style.d.ts +2 -2
- package/dist/esm/v3/types/index.d.ts +1 -0
- package/dist/esm/v3/types/index.js +1 -0
- package/dist/esm/v3/types/index.js.map +1 -1
- package/dist/esm/v3/types/tasks.d.ts +20 -7
- package/dist/esm/v3/types/tasks.js.map +1 -1
- package/dist/esm/v3/types/tools.d.ts +6 -0
- package/dist/esm/v3/types/tools.js +19 -0
- package/dist/esm/v3/types/tools.js.map +1 -0
- package/dist/esm/v3/utils/getEnv.d.ts +1 -1
- package/dist/esm/v3/utils/getEnv.js +3 -3
- package/dist/esm/v3/utils/getEnv.js.map +1 -1
- package/dist/esm/v3/utils/globals.d.ts +2 -0
- package/dist/esm/v3/utils/globals.js.map +1 -1
- package/dist/esm/v3/utils/ioSerialization.d.ts +8 -3
- package/dist/esm/v3/utils/ioSerialization.js +43 -36
- package/dist/esm/v3/utils/ioSerialization.js.map +1 -1
- package/dist/esm/v3/wait-until-api.d.ts +2 -0
- package/dist/esm/v3/wait-until-api.js +5 -0
- package/dist/esm/v3/wait-until-api.js.map +1 -0
- package/dist/esm/v3/waitUntil/index.d.ts +11 -0
- package/dist/esm/v3/waitUntil/index.js +40 -0
- package/dist/esm/v3/waitUntil/index.js.map +1 -0
- package/dist/esm/v3/waitUntil/manager.d.ts +8 -0
- package/dist/esm/v3/waitUntil/manager.js +24 -0
- package/dist/esm/v3/waitUntil/manager.js.map +1 -0
- package/dist/esm/v3/waitUntil/types.d.ts +9 -0
- package/dist/esm/v3/waitUntil/types.js +2 -0
- package/dist/esm/v3/waitUntil/types.js.map +1 -0
- package/dist/esm/v3/workers/index.d.ts +1 -0
- package/dist/esm/v3/workers/index.js +1 -0
- package/dist/esm/v3/workers/index.js.map +1 -1
- package/dist/esm/v3/workers/taskExecutor.js +14 -1
- package/dist/esm/v3/workers/taskExecutor.js.map +1 -1
- package/dist/esm/v3/zodMessageHandler.d.ts +1 -1
- package/dist/esm/version.js +1 -1
- package/package.json +7 -3
|
@@ -1,34 +1,94 @@
|
|
|
1
1
|
import { SubscribeRunRawShape } from "../schemas/api.js";
|
|
2
|
+
import { getEnvVar } from "../utils/getEnv.js";
|
|
2
3
|
import { conditionallyImportAndParsePacket, parsePacket, } from "../utils/ioSerialization.js";
|
|
3
4
|
import { createAsyncIterableStream, zodShapeStream } from "./stream.js";
|
|
5
|
+
import { EventSourceParserStream } from "eventsource-parser/stream";
|
|
4
6
|
export function runShapeStream(url, options) {
|
|
5
|
-
|
|
7
|
+
const $options = {
|
|
8
|
+
provider: {
|
|
9
|
+
async onShape(callback) {
|
|
10
|
+
return zodShapeStream(SubscribeRunRawShape, url, callback, options);
|
|
11
|
+
},
|
|
12
|
+
},
|
|
13
|
+
streamFactory: new SSEStreamSubscriptionFactory(getEnvVar("TRIGGER_STREAM_URL", getEnvVar("TRIGGER_API_URL")) ?? "https://api.trigger.dev", {
|
|
14
|
+
headers: options?.headers,
|
|
15
|
+
signal: options?.signal,
|
|
16
|
+
}),
|
|
17
|
+
...options,
|
|
18
|
+
};
|
|
19
|
+
return new RunSubscription($options);
|
|
6
20
|
}
|
|
7
|
-
|
|
21
|
+
// Real implementation for production
|
|
22
|
+
export class SSEStreamSubscription {
|
|
8
23
|
url;
|
|
24
|
+
options;
|
|
25
|
+
constructor(url, options) {
|
|
26
|
+
this.url = url;
|
|
27
|
+
this.options = options;
|
|
28
|
+
}
|
|
29
|
+
async subscribe(onChunk) {
|
|
30
|
+
const response = await fetch(this.url, {
|
|
31
|
+
headers: {
|
|
32
|
+
Accept: "text/event-stream",
|
|
33
|
+
...this.options.headers,
|
|
34
|
+
},
|
|
35
|
+
signal: this.options.signal,
|
|
36
|
+
});
|
|
37
|
+
if (!response.body) {
|
|
38
|
+
throw new Error("No response body");
|
|
39
|
+
}
|
|
40
|
+
const reader = response.body
|
|
41
|
+
.pipeThrough(new TextDecoderStream())
|
|
42
|
+
.pipeThrough(new EventSourceParserStream())
|
|
43
|
+
.getReader();
|
|
44
|
+
while (true) {
|
|
45
|
+
const { done, value } = await reader.read();
|
|
46
|
+
if (done)
|
|
47
|
+
break;
|
|
48
|
+
await onChunk(safeParseJSON(value.data));
|
|
49
|
+
}
|
|
50
|
+
return () => reader.cancel();
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
export class SSEStreamSubscriptionFactory {
|
|
54
|
+
baseUrl;
|
|
55
|
+
options;
|
|
56
|
+
constructor(baseUrl, options) {
|
|
57
|
+
this.baseUrl = baseUrl;
|
|
58
|
+
this.options = options;
|
|
59
|
+
}
|
|
60
|
+
createSubscription(runId, streamKey, baseUrl) {
|
|
61
|
+
if (!runId || !streamKey) {
|
|
62
|
+
throw new Error("runId and streamKey are required");
|
|
63
|
+
}
|
|
64
|
+
const url = `${baseUrl ?? this.baseUrl}/realtime/v1/streams/${runId}/${streamKey}`;
|
|
65
|
+
return new SSEStreamSubscription(url, this.options);
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
export class RunSubscription {
|
|
9
69
|
options;
|
|
10
70
|
abortController;
|
|
11
71
|
unsubscribeShape;
|
|
12
72
|
stream;
|
|
13
73
|
packetCache = new Map();
|
|
14
|
-
|
|
15
|
-
|
|
74
|
+
_closeOnComplete;
|
|
75
|
+
_isRunComplete = false;
|
|
76
|
+
constructor(options) {
|
|
16
77
|
this.options = options;
|
|
17
78
|
this.abortController = new AbortController();
|
|
79
|
+
this._closeOnComplete =
|
|
80
|
+
typeof options.closeOnComplete === "undefined" ? true : options.closeOnComplete;
|
|
18
81
|
const source = new ReadableStream({
|
|
19
82
|
start: async (controller) => {
|
|
20
|
-
this.unsubscribeShape = await
|
|
83
|
+
this.unsubscribeShape = await this.options.provider.onShape(async (shape) => {
|
|
21
84
|
controller.enqueue(shape);
|
|
22
|
-
|
|
23
|
-
|
|
85
|
+
this._isRunComplete = !!shape.completedAt;
|
|
86
|
+
if (this._closeOnComplete &&
|
|
87
|
+
this._isRunComplete &&
|
|
24
88
|
!this.abortController.signal.aborted) {
|
|
25
89
|
controller.close();
|
|
26
90
|
this.abortController.abort();
|
|
27
91
|
}
|
|
28
|
-
}, {
|
|
29
|
-
signal: this.abortController.signal,
|
|
30
|
-
fetchClient: this.options?.fetchClient,
|
|
31
|
-
headers: this.options?.headers,
|
|
32
92
|
});
|
|
33
93
|
},
|
|
34
94
|
cancel: () => {
|
|
@@ -54,6 +114,37 @@ export class RunSubscription {
|
|
|
54
114
|
getReader() {
|
|
55
115
|
return this.stream.getReader();
|
|
56
116
|
}
|
|
117
|
+
withStreams() {
|
|
118
|
+
// Keep track of which streams we've already subscribed to
|
|
119
|
+
const activeStreams = new Set();
|
|
120
|
+
return createAsyncIterableStream(this.stream, {
|
|
121
|
+
transform: async (run, controller) => {
|
|
122
|
+
controller.enqueue({
|
|
123
|
+
type: "run",
|
|
124
|
+
run,
|
|
125
|
+
});
|
|
126
|
+
// Check for stream metadata
|
|
127
|
+
if (run.metadata && "$$streams" in run.metadata && Array.isArray(run.metadata.$$streams)) {
|
|
128
|
+
for (const streamKey of run.metadata.$$streams) {
|
|
129
|
+
if (typeof streamKey !== "string") {
|
|
130
|
+
continue;
|
|
131
|
+
}
|
|
132
|
+
if (!activeStreams.has(streamKey)) {
|
|
133
|
+
activeStreams.add(streamKey);
|
|
134
|
+
const subscription = this.options.streamFactory.createSubscription(run.id, streamKey, this.options.client?.baseUrl);
|
|
135
|
+
await subscription.subscribe(async (chunk) => {
|
|
136
|
+
controller.enqueue({
|
|
137
|
+
type: streamKey,
|
|
138
|
+
chunk: chunk,
|
|
139
|
+
run,
|
|
140
|
+
});
|
|
141
|
+
});
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
},
|
|
146
|
+
});
|
|
147
|
+
}
|
|
57
148
|
async transformRunShape(row) {
|
|
58
149
|
const payloadPacket = row.payloadType
|
|
59
150
|
? { data: row.payload ?? undefined, dataType: row.payloadType }
|
|
@@ -72,7 +163,7 @@ export class RunSubscription {
|
|
|
72
163
|
if (typeof cachedResult !== "undefined") {
|
|
73
164
|
return cachedResult;
|
|
74
165
|
}
|
|
75
|
-
const result = await conditionallyImportAndParsePacket(packet);
|
|
166
|
+
const result = await conditionallyImportAndParsePacket(packet, this.options.client);
|
|
76
167
|
this.packetCache.set(`${row.friendlyId}/${key}`, result);
|
|
77
168
|
return result;
|
|
78
169
|
}));
|
|
@@ -151,4 +242,12 @@ function apiStatusFromRunStatus(status) {
|
|
|
151
242
|
}
|
|
152
243
|
}
|
|
153
244
|
}
|
|
245
|
+
function safeParseJSON(data) {
|
|
246
|
+
try {
|
|
247
|
+
return JSON.parse(data);
|
|
248
|
+
}
|
|
249
|
+
catch (error) {
|
|
250
|
+
return data;
|
|
251
|
+
}
|
|
252
|
+
}
|
|
154
253
|
//# sourceMappingURL=runStream.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runStream.js","sourceRoot":"","sources":["../../../../src/v3/apiClient/runStream.ts"],"names":[],"mappings":"AACA,OAAO,EAAa,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAGpE,OAAO,EACL,iCAAiC,EAEjC,WAAW,GACZ,MAAM,6BAA6B,CAAC;
|
|
1
|
+
{"version":3,"file":"runStream.js","sourceRoot":"","sources":["../../../../src/v3/apiClient/runStream.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,21 +1,35 @@
|
|
|
1
|
+
import { ApiError } from "./errors.js";
|
|
1
2
|
export async function zodShapeStream(schema, url, callback, options) {
|
|
2
|
-
const { ShapeStream, Shape } = await import("@electric-sql/client");
|
|
3
|
+
const { ShapeStream, Shape, FetchError } = await import("@electric-sql/client");
|
|
3
4
|
const stream = new ShapeStream({
|
|
4
5
|
url,
|
|
5
|
-
headers:
|
|
6
|
+
headers: {
|
|
7
|
+
...options?.headers,
|
|
8
|
+
"x-trigger-electric-version": "0.8.1",
|
|
9
|
+
},
|
|
6
10
|
fetchClient: options?.fetchClient,
|
|
7
11
|
signal: options?.signal,
|
|
8
12
|
});
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
}
|
|
14
|
-
return shape.subscribe(async (newShape) => {
|
|
15
|
-
for (const shapeRow of newShape.values()) {
|
|
13
|
+
try {
|
|
14
|
+
const shape = new Shape(stream);
|
|
15
|
+
const initialRows = await shape.rows;
|
|
16
|
+
for (const shapeRow of initialRows) {
|
|
16
17
|
await callback(schema.parse(shapeRow));
|
|
17
18
|
}
|
|
18
|
-
|
|
19
|
+
return shape.subscribe(async (newShape) => {
|
|
20
|
+
for (const shapeRow of newShape.rows) {
|
|
21
|
+
await callback(schema.parse(shapeRow));
|
|
22
|
+
}
|
|
23
|
+
});
|
|
24
|
+
}
|
|
25
|
+
catch (error) {
|
|
26
|
+
if (error instanceof FetchError) {
|
|
27
|
+
throw ApiError.generate(error.status, error.json, error.message, error.headers);
|
|
28
|
+
}
|
|
29
|
+
else {
|
|
30
|
+
throw error;
|
|
31
|
+
}
|
|
32
|
+
}
|
|
19
33
|
}
|
|
20
34
|
export function createAsyncIterableStream(source, transformer) {
|
|
21
35
|
const transformedStream = source.pipeThrough(new TransformStream(transformer));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stream.js","sourceRoot":"","sources":["../../../../src/v3/apiClient/stream.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"stream.js","sourceRoot":"","sources":["../../../../src/v3/apiClient/stream.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAQvC,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,MAAoB,EACpB,GAAW,EACX,QAAiE,EACjE,OAA+B;IAE/B,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,UAAU,EAAE,GAAG,MAAM,MAAM,CAAC,sBAAsB,CAAC,CAAC;IAEhF,MAAM,MAAM,GAAG,IAAI,WAAW,CAAwB;QACpD,GAAG;QACH,OAAO,EAAE;YACP,GAAG,OAAO,EAAE,OAAO;YACnB,4BAA4B,EAAE,OAAO;SACtC;QACD,WAAW,EAAE,OAAO,EAAE,WAAW;QACjC,MAAM,EAAE,OAAO,EAAE,MAAM;KACxB,CAAC,CAAC;IAEH,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC;QAEhC,MAAM,WAAW,GAAG,MAAM,KAAK,CAAC,IAAI,CAAC;QAErC,KAAK,MAAM,QAAQ,IAAI,WAAW,EAAE,CAAC;YACnC,MAAM,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC;QACzC,CAAC;QAED,OAAO,KAAK,CAAC,SAAS,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE;YACxC,KAAK,MAAM,QAAQ,IAAI,QAAQ,CAAC,IAAI,EAAE,CAAC;gBACrC,MAAM,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC;YACzC,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,KAAK,YAAY,UAAU,EAAE,CAAC;YAChC,MAAM,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;QAClF,CAAC;aAAM,CAAC;YACN,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;AACH,CAAC;AAID,MAAM,UAAU,yBAAyB,CACvC,MAAyB,EACzB,WAA8B;IAE9B,MAAM,iBAAiB,GAAQ,MAAM,CAAC,WAAW,CAAC,IAAI,eAAe,CAAC,WAAW,CAAC,CAAC,CAAC;IAEpF,iBAAiB,CAAC,MAAM,CAAC,aAAa,CAAC,GAAG,GAAG,EAAE;QAC7C,MAAM,MAAM,GAAG,iBAAiB,CAAC,SAAS,EAAE,CAAC;QAC7C,OAAO;YACL,KAAK,CAAC,IAAI;gBACR,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;gBAC5C,OAAO,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;YAC1E,CAAC;SACF,CAAC;IACJ,CAAC,CAAC;IAEF,OAAO,iBAAiB,CAAC;AAC3B,CAAC"}
|
|
@@ -15,5 +15,5 @@ export declare class APIClientManagerAPI {
|
|
|
15
15
|
clientOrThrow(): ApiClient;
|
|
16
16
|
runWithConfig<R extends (...args: any[]) => Promise<any>>(config: ApiClientConfiguration, fn: R): Promise<ReturnType<R>>;
|
|
17
17
|
setGlobalAPIClientConfiguration(config: ApiClientConfiguration): boolean;
|
|
18
|
-
apiClientMissingError(): "You need to set the TRIGGER_API_URL and TRIGGER_SECRET_KEY environment variables. See https://trigger.dev/docs/management/overview#authentication" | "You need to set the TRIGGER_API_URL environment variable. See https://trigger.dev/docs/management/overview#authentication" | "You need to set the TRIGGER_SECRET_KEY environment variable. See https://trigger.dev/docs/management/overview#authentication"
|
|
18
|
+
apiClientMissingError(): "Unknown error" | "You need to set the TRIGGER_API_URL and TRIGGER_SECRET_KEY environment variables. See https://trigger.dev/docs/management/overview#authentication" | "You need to set the TRIGGER_API_URL environment variable. See https://trigger.dev/docs/management/overview#authentication" | "You need to set the TRIGGER_SECRET_KEY environment variable. See https://trigger.dev/docs/management/overview#authentication";
|
|
19
19
|
}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { IdempotencyKey } from "./types/idempotencyKeys.js";
|
|
2
|
+
export declare function isIdempotencyKey(value: string | string[] | IdempotencyKey): value is IdempotencyKey;
|
|
3
|
+
export declare function makeIdempotencyKey(idempotencyKey?: IdempotencyKey | string | string[]): Promise<IdempotencyKey | undefined>;
|
|
4
|
+
/**
|
|
5
|
+
* Creates a deterministic idempotency key based on the provided key material.
|
|
6
|
+
*
|
|
7
|
+
* If running inside a task, the task run ID is automatically included in the key material, giving you a unique key per task run.
|
|
8
|
+
* This ensures that a given child task is only triggered once per task run, even if the parent task is retried.
|
|
9
|
+
*
|
|
10
|
+
* @param {string | string[]} key The key material to create the idempotency key from.
|
|
11
|
+
* @param {object} [options] Additional options.
|
|
12
|
+
* @param {"run" | "attempt" | "global"} [options.scope="run"] The scope of the idempotency key.
|
|
13
|
+
*
|
|
14
|
+
* @returns {Promise<IdempotencyKey>} The idempotency key as a branded string.
|
|
15
|
+
*
|
|
16
|
+
* @example
|
|
17
|
+
*
|
|
18
|
+
* ```typescript
|
|
19
|
+
* import { idempotencyKeys, task } from "@trigger.dev/sdk/v3";
|
|
20
|
+
*
|
|
21
|
+
* export const myTask = task({
|
|
22
|
+
* id: "my-task",
|
|
23
|
+
* run: async (payload: any) => {
|
|
24
|
+
* const idempotencyKey = await idempotencyKeys.create("my-task-key");
|
|
25
|
+
*
|
|
26
|
+
* // Use the idempotency key when triggering child tasks
|
|
27
|
+
* await childTask.triggerAndWait(payload, { idempotencyKey });
|
|
28
|
+
* }
|
|
29
|
+
* });
|
|
30
|
+
* ```
|
|
31
|
+
*
|
|
32
|
+
* You can also use the `scope` parameter to create a key that is unique per task run, task run attempts (retries of the same run), or globally:
|
|
33
|
+
*
|
|
34
|
+
* ```typescript
|
|
35
|
+
* await idempotencyKeys.create("my-task-key", { scope: "attempt" }); // Creates a key that is unique per task run attempt
|
|
36
|
+
* await idempotencyKeys.create("my-task-key", { scope: "global" }); // Skips including the task run ID
|
|
37
|
+
* ```
|
|
38
|
+
*/
|
|
39
|
+
export declare function createIdempotencyKey(key: string | string[], options?: {
|
|
40
|
+
scope?: "run" | "attempt" | "global";
|
|
41
|
+
}): Promise<IdempotencyKey>;
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
import { taskContext } from "./task-context-api.js";
|
|
2
|
+
export function isIdempotencyKey(value) {
|
|
3
|
+
// Cannot check the brand at runtime because it doesn't exist (it's a TypeScript-only construct)
|
|
4
|
+
return typeof value === "string" && value.length === 64;
|
|
5
|
+
}
|
|
6
|
+
export async function makeIdempotencyKey(idempotencyKey) {
|
|
7
|
+
if (!idempotencyKey) {
|
|
8
|
+
return;
|
|
9
|
+
}
|
|
10
|
+
if (isIdempotencyKey(idempotencyKey)) {
|
|
11
|
+
return idempotencyKey;
|
|
12
|
+
}
|
|
13
|
+
return await createIdempotencyKey(idempotencyKey, { scope: "global" });
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Creates a deterministic idempotency key based on the provided key material.
|
|
17
|
+
*
|
|
18
|
+
* If running inside a task, the task run ID is automatically included in the key material, giving you a unique key per task run.
|
|
19
|
+
* This ensures that a given child task is only triggered once per task run, even if the parent task is retried.
|
|
20
|
+
*
|
|
21
|
+
* @param {string | string[]} key The key material to create the idempotency key from.
|
|
22
|
+
* @param {object} [options] Additional options.
|
|
23
|
+
* @param {"run" | "attempt" | "global"} [options.scope="run"] The scope of the idempotency key.
|
|
24
|
+
*
|
|
25
|
+
* @returns {Promise<IdempotencyKey>} The idempotency key as a branded string.
|
|
26
|
+
*
|
|
27
|
+
* @example
|
|
28
|
+
*
|
|
29
|
+
* ```typescript
|
|
30
|
+
* import { idempotencyKeys, task } from "@trigger.dev/sdk/v3";
|
|
31
|
+
*
|
|
32
|
+
* export const myTask = task({
|
|
33
|
+
* id: "my-task",
|
|
34
|
+
* run: async (payload: any) => {
|
|
35
|
+
* const idempotencyKey = await idempotencyKeys.create("my-task-key");
|
|
36
|
+
*
|
|
37
|
+
* // Use the idempotency key when triggering child tasks
|
|
38
|
+
* await childTask.triggerAndWait(payload, { idempotencyKey });
|
|
39
|
+
* }
|
|
40
|
+
* });
|
|
41
|
+
* ```
|
|
42
|
+
*
|
|
43
|
+
* You can also use the `scope` parameter to create a key that is unique per task run, task run attempts (retries of the same run), or globally:
|
|
44
|
+
*
|
|
45
|
+
* ```typescript
|
|
46
|
+
* await idempotencyKeys.create("my-task-key", { scope: "attempt" }); // Creates a key that is unique per task run attempt
|
|
47
|
+
* await idempotencyKeys.create("my-task-key", { scope: "global" }); // Skips including the task run ID
|
|
48
|
+
* ```
|
|
49
|
+
*/
|
|
50
|
+
export async function createIdempotencyKey(key, options) {
|
|
51
|
+
const idempotencyKey = await generateIdempotencyKey([...(Array.isArray(key) ? key : [key])].concat(injectScope(options?.scope ?? "run")));
|
|
52
|
+
return idempotencyKey;
|
|
53
|
+
}
|
|
54
|
+
function injectScope(scope) {
|
|
55
|
+
switch (scope) {
|
|
56
|
+
case "run": {
|
|
57
|
+
if (taskContext?.ctx) {
|
|
58
|
+
return [taskContext.ctx.run.id];
|
|
59
|
+
}
|
|
60
|
+
break;
|
|
61
|
+
}
|
|
62
|
+
case "attempt": {
|
|
63
|
+
if (taskContext?.ctx) {
|
|
64
|
+
return [taskContext.ctx.attempt.id];
|
|
65
|
+
}
|
|
66
|
+
break;
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
return [];
|
|
70
|
+
}
|
|
71
|
+
async function generateIdempotencyKey(keyMaterial) {
|
|
72
|
+
const hash = await crypto.subtle.digest("SHA-256", new TextEncoder().encode(keyMaterial.join("-")));
|
|
73
|
+
// Return a hex string, using cross-runtime compatible methods
|
|
74
|
+
return Array.from(new Uint8Array(hash))
|
|
75
|
+
.map((byte) => byte.toString(16).padStart(2, "0"))
|
|
76
|
+
.join("");
|
|
77
|
+
}
|
|
78
|
+
//# sourceMappingURL=idempotencyKeys.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"idempotencyKeys.js","sourceRoot":"","sources":["../../../src/v3/idempotencyKeys.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAGpD,MAAM,UAAU,gBAAgB,CAC9B,KAAyC;IAEzC,gGAAgG;IAChG,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,KAAK,EAAE,CAAC;AAC1D,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,cAAmD;IAEnD,IAAI,CAAC,cAAc,EAAE,CAAC;QACpB,OAAO;IACT,CAAC;IAED,IAAI,gBAAgB,CAAC,cAAc,CAAC,EAAE,CAAC;QACrC,OAAO,cAAc,CAAC;IACxB,CAAC;IAED,OAAO,MAAM,oBAAoB,CAAC,cAAc,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;AACzE,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,GAAsB,EACtB,OAAkD;IAElD,MAAM,cAAc,GAAG,MAAM,sBAAsB,CACjD,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,OAAO,EAAE,KAAK,IAAI,KAAK,CAAC,CAAC,CACrF,CAAC;IAEF,OAAO,cAAgC,CAAC;AAC1C,CAAC;AAED,SAAS,WAAW,CAAC,KAAmC;IACtD,QAAQ,KAAK,EAAE,CAAC;QACd,KAAK,KAAK,CAAC,CAAC,CAAC;YACX,IAAI,WAAW,EAAE,GAAG,EAAE,CAAC;gBACrB,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAClC,CAAC;YACD,MAAM;QACR,CAAC;QACD,KAAK,SAAS,CAAC,CAAC,CAAC;YACf,IAAI,WAAW,EAAE,GAAG,EAAE,CAAC;gBACrB,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;YACtC,CAAC;YACD,MAAM;QACR,CAAC;IACH,CAAC;IAED,OAAO,EAAE,CAAC;AACZ,CAAC;AAED,KAAK,UAAU,sBAAsB,CAAC,WAAqB;IACzD,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,MAAM,CACrC,SAAS,EACT,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAChD,CAAC;IAEF,8DAA8D;IAC9D,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC;SACpC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;SACjD,IAAI,CAAC,EAAE,CAAC,CAAC;AACd,CAAC"}
|
package/dist/esm/v3/index.d.ts
CHANGED
|
@@ -12,6 +12,7 @@ export * from "./task-context-api.js";
|
|
|
12
12
|
export * from "./apiClientManager-api.js";
|
|
13
13
|
export * from "./usage-api.js";
|
|
14
14
|
export * from "./run-metadata-api.js";
|
|
15
|
+
export * from "./wait-until-api.js";
|
|
15
16
|
export * from "./timeout-api.js";
|
|
16
17
|
export * from "./schemas/index.js";
|
|
17
18
|
export { SemanticInternalAttributes } from "./semanticInternalAttributes.js";
|
|
@@ -19,6 +20,7 @@ export * from "./task-catalog-api.js";
|
|
|
19
20
|
export * from "./types/index.js";
|
|
20
21
|
export { links } from "./links.js";
|
|
21
22
|
export * from "./jwt.js";
|
|
23
|
+
export * from "./idempotencyKeys.js";
|
|
22
24
|
export { formatDuration, formatDurationInDays, formatDurationMilliseconds, formatDurationNanoseconds, millisecondsToNanoseconds, nanosecondsToMilliseconds, } from "./utils/durations.js";
|
|
23
25
|
export type { LogLevel } from "./logger/taskLogger.js";
|
|
24
26
|
export { eventFilterMatches } from "../eventFilterMatches.js";
|
package/dist/esm/v3/index.js
CHANGED
|
@@ -11,6 +11,7 @@ export * from "./task-context-api.js";
|
|
|
11
11
|
export * from "./apiClientManager-api.js";
|
|
12
12
|
export * from "./usage-api.js";
|
|
13
13
|
export * from "./run-metadata-api.js";
|
|
14
|
+
export * from "./wait-until-api.js";
|
|
14
15
|
export * from "./timeout-api.js";
|
|
15
16
|
export * from "./schemas/index.js";
|
|
16
17
|
export { SemanticInternalAttributes } from "./semanticInternalAttributes.js";
|
|
@@ -18,6 +19,7 @@ export * from "./task-catalog-api.js";
|
|
|
18
19
|
export * from "./types/index.js";
|
|
19
20
|
export { links } from "./links.js";
|
|
20
21
|
export * from "./jwt.js";
|
|
22
|
+
export * from "./idempotencyKeys.js";
|
|
21
23
|
export { formatDuration, formatDurationInDays, formatDurationMilliseconds, formatDurationNanoseconds, millisecondsToNanoseconds, nanosecondsToMilliseconds, } from "./utils/durations.js";
|
|
22
24
|
export { eventFilterMatches } from "../eventFilterMatches.js";
|
|
23
25
|
export { flattenAttributes, primitiveValueOrflattenedAttributes, unflattenAttributes, NULL_SENTINEL, } from "./utils/flattenAttributes.js";
|
package/dist/esm/v3/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/v3/index.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAC;AACrC,cAAc,sBAAsB,CAAC;AACrC,cAAc,2BAA2B,CAAC;AAE1C,cAAc,uBAAuB,CAAC;AACtC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,cAAc,uBAAuB,CAAC;AACtC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,gBAAgB,CAAC;AAC/B,cAAc,uBAAuB,CAAC;AACtC,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC;AACnC,OAAO,EAAE,0BAA0B,EAAE,MAAM,iCAAiC,CAAC;AAC7E,cAAc,uBAAuB,CAAC;AACtC,cAAc,kBAAkB,CAAC;AACjC,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,cAAc,UAAU,CAAC;AACzB,OAAO,EACL,cAAc,EACd,oBAAoB,EACpB,0BAA0B,EAC1B,yBAAyB,EACzB,yBAAyB,EACzB,yBAAyB,GAC1B,MAAM,sBAAsB,CAAC;AAI9B,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,EACL,iBAAiB,EACjB,mCAAmC,EACnC,mBAAmB,EACnB,aAAa,GACd,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AACvC,OAAO,EACL,uBAAuB,EACvB,gBAAgB,EAChB,wBAAwB,EACxB,mBAAmB,GACpB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAEjE,OAAO,EACL,yBAAyB,EACzB,yBAAyB,EACzB,sBAAsB,EACtB,4BAA4B,EAC5B,wBAAwB,EACxB,WAAW,EACX,iBAAiB,EACjB,WAAW,GAEZ,MAAM,4BAA4B,CAAC;AAEpC,cAAc,aAAa,CAAC;AAC5B,OAAO,EAAE,gBAAgB,EAA6C,MAAM,oBAAoB,CAAC;AAEjG,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAExC,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/v3/index.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAC;AACrC,cAAc,sBAAsB,CAAC;AACrC,cAAc,2BAA2B,CAAC;AAE1C,cAAc,uBAAuB,CAAC;AACtC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,cAAc,uBAAuB,CAAC;AACtC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,gBAAgB,CAAC;AAC/B,cAAc,uBAAuB,CAAC;AACtC,cAAc,qBAAqB,CAAC;AACpC,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC;AACnC,OAAO,EAAE,0BAA0B,EAAE,MAAM,iCAAiC,CAAC;AAC7E,cAAc,uBAAuB,CAAC;AACtC,cAAc,kBAAkB,CAAC;AACjC,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,cAAc,UAAU,CAAC;AACzB,cAAc,sBAAsB,CAAC;AACrC,OAAO,EACL,cAAc,EACd,oBAAoB,EACpB,0BAA0B,EAC1B,yBAAyB,EACzB,yBAAyB,EACzB,yBAAyB,GAC1B,MAAM,sBAAsB,CAAC;AAI9B,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,EACL,iBAAiB,EACjB,mCAAmC,EACnC,mBAAmB,EACnB,aAAa,GACd,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AACvC,OAAO,EACL,uBAAuB,EACvB,gBAAgB,EAChB,wBAAwB,EACxB,mBAAmB,GACpB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAEjE,OAAO,EACL,yBAAyB,EACzB,yBAAyB,EACzB,sBAAsB,EACtB,4BAA4B,EAC5B,wBAAwB,EACxB,WAAW,EACX,iBAAiB,EACjB,WAAW,GAEZ,MAAM,4BAA4B,CAAC;AAEpC,cAAc,aAAa,CAAC;AAC5B,OAAO,EAAE,gBAAgB,EAA6C,MAAM,oBAAoB,CAAC;AAEjG,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAExC,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,CAAC"}
|
package/dist/esm/v3/jwt.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { JWTPayload } from "jose";
|
|
1
2
|
export type GenerateJWTOptions = {
|
|
2
3
|
secretKey: string;
|
|
3
4
|
payload: Record<string, any>;
|
|
@@ -7,4 +8,12 @@ export declare const JWT_ALGORITHM = "HS256";
|
|
|
7
8
|
export declare const JWT_ISSUER = "https://id.trigger.dev";
|
|
8
9
|
export declare const JWT_AUDIENCE = "https://api.trigger.dev";
|
|
9
10
|
export declare function generateJWT(options: GenerateJWTOptions): Promise<string>;
|
|
10
|
-
export
|
|
11
|
+
export type ValidationResult = {
|
|
12
|
+
ok: true;
|
|
13
|
+
payload: JWTPayload;
|
|
14
|
+
} | {
|
|
15
|
+
ok: false;
|
|
16
|
+
error: string;
|
|
17
|
+
code: string;
|
|
18
|
+
};
|
|
19
|
+
export declare function validateJWT(token: string, apiKey: string): Promise<ValidationResult>;
|
package/dist/esm/v3/jwt.js
CHANGED
|
@@ -13,17 +13,30 @@ export async function generateJWT(options) {
|
|
|
13
13
|
.sign(secret);
|
|
14
14
|
}
|
|
15
15
|
export async function validateJWT(token, apiKey) {
|
|
16
|
-
const { jwtVerify } = await import("jose");
|
|
16
|
+
const { jwtVerify, errors } = await import("jose");
|
|
17
17
|
const secret = new TextEncoder().encode(apiKey);
|
|
18
18
|
try {
|
|
19
19
|
const { payload } = await jwtVerify(token, secret, {
|
|
20
20
|
issuer: JWT_ISSUER,
|
|
21
21
|
audience: JWT_AUDIENCE,
|
|
22
22
|
});
|
|
23
|
-
return payload;
|
|
23
|
+
return { ok: true, payload };
|
|
24
24
|
}
|
|
25
|
-
catch (
|
|
26
|
-
|
|
25
|
+
catch (error) {
|
|
26
|
+
if (error instanceof errors.JOSEError) {
|
|
27
|
+
return {
|
|
28
|
+
ok: false,
|
|
29
|
+
error: error.message,
|
|
30
|
+
code: error.code,
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
else {
|
|
34
|
+
return {
|
|
35
|
+
ok: false,
|
|
36
|
+
error: error instanceof Error ? error.message : "Unknown error",
|
|
37
|
+
code: "ERR_UNKNOWN",
|
|
38
|
+
};
|
|
39
|
+
}
|
|
27
40
|
}
|
|
28
41
|
}
|
|
29
42
|
//# sourceMappingURL=jwt.js.map
|
package/dist/esm/v3/jwt.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"jwt.js","sourceRoot":"","sources":["../../../src/v3/jwt.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"jwt.js","sourceRoot":"","sources":["../../../src/v3/jwt.ts"],"names":[],"mappings":"AAQA,MAAM,CAAC,MAAM,aAAa,GAAG,OAAO,CAAC;AACrC,MAAM,CAAC,MAAM,UAAU,GAAG,wBAAwB,CAAC;AACnD,MAAM,CAAC,MAAM,YAAY,GAAG,yBAAyB,CAAC;AAEtD,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,OAA2B;IAC3D,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,CAAC;IAEzC,MAAM,MAAM,GAAG,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IAE3D,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC;SAChC,SAAS,CAAC,UAAU,CAAC;SACrB,WAAW,CAAC,YAAY,CAAC;SACzB,kBAAkB,CAAC,EAAE,GAAG,EAAE,aAAa,EAAE,CAAC;SAC1C,WAAW,EAAE;SACb,iBAAiB,CAAC,OAAO,CAAC,cAAc,IAAI,KAAK,CAAC;SAClD,IAAI,CAAC,MAAM,CAAC,CAAC;AAClB,CAAC;AAaD,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,KAAa,EAAE,MAAc;IAC7D,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,CAAC;IAEnD,MAAM,MAAM,GAAG,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAEhD,IAAI,CAAC;QACH,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE;YACjD,MAAM,EAAE,UAAU;YAClB,QAAQ,EAAE,YAAY;SACvB,CAAC,CAAC;QAEH,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;IAC/B,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,KAAK,YAAY,MAAM,CAAC,SAAS,EAAE,CAAC;YACtC,OAAO;gBACL,EAAE,EAAE,KAAK;gBACT,KAAK,EAAE,KAAK,CAAC,OAAO;gBACpB,IAAI,EAAE,KAAK,CAAC,IAAI;aACjB,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,OAAO;gBACL,EAAE,EAAE,KAAK;gBACT,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe;gBAC/D,IAAI,EAAE,aAAa;aACpB,CAAC;QACJ,CAAC;IACH,CAAC;AACH,CAAC"}
|
|
@@ -12,6 +12,11 @@ export declare class RunMetadataAPI implements RunMetadataManager {
|
|
|
12
12
|
getKey(key: string): DeserializedJson | undefined;
|
|
13
13
|
setKey(key: string, value: DeserializedJson): void;
|
|
14
14
|
deleteKey(key: string): void;
|
|
15
|
+
incrementKey(key: string, value: number): void;
|
|
16
|
+
decrementKey(key: string, value: number): void;
|
|
17
|
+
appendKey(key: string, value: DeserializedJson): void;
|
|
18
|
+
removeFromKey(key: string, value: DeserializedJson): void;
|
|
15
19
|
update(metadata: Record<string, DeserializedJson>): void;
|
|
20
|
+
stream<T>(key: string, value: AsyncIterable<T> | ReadableStream<T>, signal?: AbortSignal): Promise<AsyncIterable<T>>;
|
|
16
21
|
flush(requestOptions?: ApiRequestOptions): Promise<void>;
|
|
17
22
|
}
|
|
@@ -32,9 +32,24 @@ export class RunMetadataAPI {
|
|
|
32
32
|
deleteKey(key) {
|
|
33
33
|
return this.#getManager().deleteKey(key);
|
|
34
34
|
}
|
|
35
|
+
incrementKey(key, value) {
|
|
36
|
+
return this.#getManager().incrementKey(key, value);
|
|
37
|
+
}
|
|
38
|
+
decrementKey(key, value) {
|
|
39
|
+
return this.#getManager().decrementKey(key, value);
|
|
40
|
+
}
|
|
41
|
+
appendKey(key, value) {
|
|
42
|
+
this.#getManager().appendKey(key, value);
|
|
43
|
+
}
|
|
44
|
+
removeFromKey(key, value) {
|
|
45
|
+
this.#getManager().removeFromKey(key, value);
|
|
46
|
+
}
|
|
35
47
|
update(metadata) {
|
|
36
48
|
return this.#getManager().update(metadata);
|
|
37
49
|
}
|
|
50
|
+
stream(key, value, signal) {
|
|
51
|
+
return this.#getManager().stream(key, value, signal);
|
|
52
|
+
}
|
|
38
53
|
flush(requestOptions) {
|
|
39
54
|
return this.#getManager().flush(requestOptions);
|
|
40
55
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/v3/runMetadata/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAEhE,OAAO,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAC;AAG1D,MAAM,QAAQ,GAAG,cAAc,CAAC;AAEhC,MAAM,YAAY,GAAG,IAAI,sBAAsB,EAAE,CAAC;AAElD,MAAM,OAAO,cAAc;IACjB,MAAM,CAAC,SAAS,CAAkB;IAE1C,gBAAuB,CAAC;IAEjB,MAAM,CAAC,WAAW;QACvB,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;YACpB,IAAI,CAAC,SAAS,GAAG,IAAI,cAAc,EAAE,CAAC;QACxC,CAAC;QAED,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IAED,gBAAgB,CAAC,OAA2B;QAC1C,OAAO,cAAc,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IAC3C,CAAC;IAED,WAAW;QACT,OAAO,SAAS,CAAC,QAAQ,CAAC,IAAI,YAAY,CAAC;IAC7C,CAAC;IAEM,iBAAiB,CAAC,QAA0C;QACjE,IAAI,CAAC,WAAW,EAAE,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC;IACjD,CAAC;IAEM,OAAO;QACZ,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC,OAAO,EAAE,CAAC;IACtC,CAAC;IAEM,MAAM,CAAC,GAAW;QACvB,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IACxC,CAAC;IAEM,MAAM,CAAC,GAAW,EAAE,KAAuB;QAChD,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IAC/C,CAAC;IAEM,SAAS,CAAC,GAAW;QAC1B,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;IAC3C,CAAC;IAEM,MAAM,CAAC,QAA0C;QACtD,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAC7C,CAAC;IAED,KAAK,CAAC,cAAkC;QACtC,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;IAClD,CAAC;CACF"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/v3/runMetadata/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAEhE,OAAO,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAC;AAG1D,MAAM,QAAQ,GAAG,cAAc,CAAC;AAEhC,MAAM,YAAY,GAAG,IAAI,sBAAsB,EAAE,CAAC;AAElD,MAAM,OAAO,cAAc;IACjB,MAAM,CAAC,SAAS,CAAkB;IAE1C,gBAAuB,CAAC;IAEjB,MAAM,CAAC,WAAW;QACvB,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;YACpB,IAAI,CAAC,SAAS,GAAG,IAAI,cAAc,EAAE,CAAC;QACxC,CAAC;QAED,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IAED,gBAAgB,CAAC,OAA2B;QAC1C,OAAO,cAAc,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IAC3C,CAAC;IAED,WAAW;QACT,OAAO,SAAS,CAAC,QAAQ,CAAC,IAAI,YAAY,CAAC;IAC7C,CAAC;IAEM,iBAAiB,CAAC,QAA0C;QACjE,IAAI,CAAC,WAAW,EAAE,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC;IACjD,CAAC;IAEM,OAAO;QACZ,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC,OAAO,EAAE,CAAC;IACtC,CAAC;IAEM,MAAM,CAAC,GAAW;QACvB,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IACxC,CAAC;IAEM,MAAM,CAAC,GAAW,EAAE,KAAuB;QAChD,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IAC/C,CAAC;IAEM,SAAS,CAAC,GAAW;QAC1B,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;IAC3C,CAAC;IAEM,YAAY,CAAC,GAAW,EAAE,KAAa;QAC5C,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC,YAAY,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IACrD,CAAC;IAED,YAAY,CAAC,GAAW,EAAE,KAAa;QACrC,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC,YAAY,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IACrD,CAAC;IAED,SAAS,CAAC,GAAW,EAAE,KAAuB;QAC5C,IAAI,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IAC3C,CAAC;IAED,aAAa,CAAC,GAAW,EAAE,KAAuB;QAChD,IAAI,CAAC,WAAW,EAAE,CAAC,aAAa,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IAC/C,CAAC;IAEM,MAAM,CAAC,QAA0C;QACtD,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAC7C,CAAC;IAEM,MAAM,CACX,GAAW,EACX,KAA2C,EAC3C,MAAoB;QAEpB,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC,MAAM,CAAC,GAAG,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;IACvD,CAAC;IAED,KAAK,CAAC,cAAkC;QACtC,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;IAClD,CAAC;CACF"}
|
|
@@ -1,16 +1,29 @@
|
|
|
1
1
|
import { DeserializedJson } from "../../schemas/json.js";
|
|
2
2
|
import { ApiRequestOptions } from "../zodfetch.js";
|
|
3
3
|
import { RunMetadataManager } from "./types.js";
|
|
4
|
+
import { ApiClient } from "../apiClient/index.js";
|
|
4
5
|
export declare class StandardMetadataManager implements RunMetadataManager {
|
|
6
|
+
private apiClient;
|
|
7
|
+
private streamsBaseUrl;
|
|
5
8
|
private flushTimeoutId;
|
|
6
9
|
private hasChanges;
|
|
7
10
|
private store;
|
|
11
|
+
private activeStreams;
|
|
12
|
+
runId: string | undefined;
|
|
13
|
+
constructor(apiClient: ApiClient, streamsBaseUrl: string);
|
|
8
14
|
enterWithMetadata(metadata: Record<string, DeserializedJson>): void;
|
|
9
15
|
current(): Record<string, DeserializedJson> | undefined;
|
|
10
16
|
getKey(key: string): DeserializedJson | undefined;
|
|
11
17
|
setKey(key: string, value: DeserializedJson): void;
|
|
12
18
|
deleteKey(key: string): void;
|
|
19
|
+
appendKey(key: string, value: DeserializedJson): void;
|
|
20
|
+
removeFromKey(key: string, value: DeserializedJson): void;
|
|
21
|
+
incrementKey(key: string, increment?: number): void;
|
|
22
|
+
decrementKey(key: string, decrement?: number): void;
|
|
13
23
|
update(metadata: Record<string, DeserializedJson>): void;
|
|
24
|
+
stream<T>(key: string, value: AsyncIterable<T> | ReadableStream<T>, signal?: AbortSignal): Promise<AsyncIterable<T>>;
|
|
25
|
+
hasActiveStreams(): boolean;
|
|
26
|
+
waitForAllStreams(timeout?: number): Promise<void>;
|
|
14
27
|
flush(requestOptions?: ApiRequestOptions): Promise<void>;
|
|
15
28
|
startPeriodicFlush(intervalMs?: number): void;
|
|
16
29
|
stopPeriodicFlush(): void;
|