@trigger.dev/core 0.0.0-prerelease-20240219135254 → 0.0.0-prerelease-20240408121557
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/eventFilterMatches-2kHImluE.d.mts +133 -0
- package/dist/eventFilterMatches-2kHImluE.d.ts +133 -0
- package/dist/index.d.mts +3 -131
- package/dist/index.d.ts +3 -131
- package/dist/v3/index.d.mts +19701 -2707
- package/dist/v3/index.d.ts +19701 -2707
- package/dist/v3/index.js +3958 -252
- package/dist/v3/index.js.map +1 -1
- package/dist/v3/index.mjs +3829 -248
- package/dist/v3/index.mjs.map +1 -1
- package/dist/v3/otel/index.d.mts +11 -6
- package/dist/v3/otel/index.d.ts +11 -6
- package/dist/v3/otel/index.js +334 -27
- package/dist/v3/otel/index.js.map +1 -1
- package/dist/v3/otel/index.mjs +337 -23
- package/dist/v3/otel/index.mjs.map +1 -1
- package/package.json +18 -16
package/dist/v3/index.mjs
CHANGED
|
@@ -1,8 +1,21 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
|
-
import { trace, propagation, context,
|
|
2
|
+
import { SpanStatusCode, trace, propagation, context, DiagLogLevel, diag, DiagConsoleLogger, SpanKind } from '@opentelemetry/api';
|
|
3
3
|
import { AsyncLocalStorage } from 'node:async_hooks';
|
|
4
|
+
import { io } from 'socket.io-client';
|
|
5
|
+
import { randomUUID } from 'crypto';
|
|
6
|
+
import nodePath from 'node:path';
|
|
4
7
|
import { SeverityNumber, logs } from '@opentelemetry/api-logs';
|
|
8
|
+
import { PreciseDate } from '@google-cloud/precise-date';
|
|
9
|
+
import humanizeDuration from 'humanize-duration';
|
|
10
|
+
import { setTimeout as setTimeout$1 } from 'node:timers/promises';
|
|
5
11
|
import util from 'node:util';
|
|
12
|
+
import { OTLPLogExporter } from '@opentelemetry/exporter-logs-otlp-http';
|
|
13
|
+
import { OTLPTraceExporter } from '@opentelemetry/exporter-trace-otlp-http';
|
|
14
|
+
import { registerInstrumentations } from '@opentelemetry/instrumentation';
|
|
15
|
+
import { Resource, detectResourcesSync, processDetectorSync } from '@opentelemetry/resources';
|
|
16
|
+
import { LoggerProvider, BatchLogRecordProcessor, SimpleLogRecordProcessor } from '@opentelemetry/sdk-logs';
|
|
17
|
+
import { NodeTracerProvider, BatchSpanProcessor, SimpleSpanProcessor } from '@opentelemetry/sdk-trace-node';
|
|
18
|
+
import { SemanticResourceAttributes } from '@opentelemetry/semantic-conventions';
|
|
6
19
|
|
|
7
20
|
var __defProp = Object.defineProperty;
|
|
8
21
|
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
@@ -29,6 +42,14 @@ var __privateSet = (obj, member, value, setter) => {
|
|
|
29
42
|
setter ? setter.call(obj, value) : member.set(obj, value);
|
|
30
43
|
return value;
|
|
31
44
|
};
|
|
45
|
+
var __privateWrapper = (obj, member, setter, getter) => ({
|
|
46
|
+
set _(value) {
|
|
47
|
+
__privateSet(obj, member, value, setter);
|
|
48
|
+
},
|
|
49
|
+
get _() {
|
|
50
|
+
return __privateGet(obj, member, getter);
|
|
51
|
+
}
|
|
52
|
+
});
|
|
32
53
|
var __privateMethod = (obj, member, method) => {
|
|
33
54
|
__accessCheck(obj, member, "access private method");
|
|
34
55
|
return method;
|
|
@@ -46,48 +67,6 @@ var GetPersonalAccessTokenResponseSchema = z.object({
|
|
|
46
67
|
obfuscatedToken: z.string()
|
|
47
68
|
}).nullable()
|
|
48
69
|
});
|
|
49
|
-
var TaskResource = z.object({
|
|
50
|
-
id: z.string(),
|
|
51
|
-
filePath: z.string(),
|
|
52
|
-
exportName: z.string()
|
|
53
|
-
});
|
|
54
|
-
var BackgroundWorkerMetadata = z.object({
|
|
55
|
-
packageVersion: z.string(),
|
|
56
|
-
contentHash: z.string(),
|
|
57
|
-
cliPackageVersion: z.string(),
|
|
58
|
-
tasks: z.array(TaskResource)
|
|
59
|
-
});
|
|
60
|
-
|
|
61
|
-
// src/v3/schemas/api.ts
|
|
62
|
-
var WhoAmIResponseSchema = z.object({
|
|
63
|
-
userId: z.string(),
|
|
64
|
-
email: z.string().email()
|
|
65
|
-
});
|
|
66
|
-
var GetProjectDevResponse = z.object({
|
|
67
|
-
apiKey: z.string(),
|
|
68
|
-
name: z.string()
|
|
69
|
-
});
|
|
70
|
-
var CreateBackgroundWorkerRequestBody = z.object({
|
|
71
|
-
localOnly: z.boolean(),
|
|
72
|
-
metadata: BackgroundWorkerMetadata
|
|
73
|
-
});
|
|
74
|
-
var CreateBackgroundWorkerResponse = z.object({
|
|
75
|
-
id: z.string(),
|
|
76
|
-
version: z.string(),
|
|
77
|
-
contentHash: z.string()
|
|
78
|
-
});
|
|
79
|
-
var BackgroundWorkerRecord = CreateBackgroundWorkerResponse;
|
|
80
|
-
var TriggerTaskRequestBody = z.object({
|
|
81
|
-
payload: z.any(),
|
|
82
|
-
context: z.any(),
|
|
83
|
-
options: z.object({
|
|
84
|
-
parentAttempt: z.string().optional(),
|
|
85
|
-
lockToCurrentVersion: z.boolean().optional()
|
|
86
|
-
}).optional()
|
|
87
|
-
});
|
|
88
|
-
var TriggerTaskResponse = z.object({
|
|
89
|
-
id: z.string()
|
|
90
|
-
});
|
|
91
70
|
var TaskRunBuiltInError = z.object({
|
|
92
71
|
type: z.literal("BUILT_IN_ERROR"),
|
|
93
72
|
name: z.string(),
|
|
@@ -103,13 +82,30 @@ var TaskRunStringError = z.object({
|
|
|
103
82
|
raw: z.string()
|
|
104
83
|
});
|
|
105
84
|
var TaskRunErrorCodes = {
|
|
106
|
-
COULD_NOT_FIND_EXECUTOR: "COULD_NOT_FIND_EXECUTOR"
|
|
85
|
+
COULD_NOT_FIND_EXECUTOR: "COULD_NOT_FIND_EXECUTOR",
|
|
86
|
+
CONFIGURED_INCORRECTLY: "CONFIGURED_INCORRECTLY",
|
|
87
|
+
TASK_ALREADY_RUNNING: "TASK_ALREADY_RUNNING",
|
|
88
|
+
TASK_EXECUTION_FAILED: "TASK_EXECUTION_FAILED",
|
|
89
|
+
TASK_EXECUTION_ABORTED: "TASK_EXECUTION_ABORTED",
|
|
90
|
+
TASK_PROCESS_EXITED_WITH_NON_ZERO_CODE: "TASK_PROCESS_EXITED_WITH_NON_ZERO_CODE",
|
|
91
|
+
TASK_RUN_CANCELLED: "TASK_RUN_CANCELLED",
|
|
92
|
+
TASK_OUTPUT_ERROR: "TASK_OUTPUT_ERROR",
|
|
93
|
+
HANDLE_ERROR_ERROR: "HANDLE_ERROR_ERROR"
|
|
107
94
|
};
|
|
108
95
|
var TaskRunInternalError = z.object({
|
|
109
96
|
type: z.literal("INTERNAL_ERROR"),
|
|
110
97
|
code: z.enum([
|
|
111
|
-
"COULD_NOT_FIND_EXECUTOR"
|
|
112
|
-
|
|
98
|
+
"COULD_NOT_FIND_EXECUTOR",
|
|
99
|
+
"CONFIGURED_INCORRECTLY",
|
|
100
|
+
"TASK_ALREADY_RUNNING",
|
|
101
|
+
"TASK_EXECUTION_FAILED",
|
|
102
|
+
"TASK_EXECUTION_ABORTED",
|
|
103
|
+
"TASK_PROCESS_EXITED_WITH_NON_ZERO_CODE",
|
|
104
|
+
"TASK_RUN_CANCELLED",
|
|
105
|
+
"TASK_OUTPUT_ERROR",
|
|
106
|
+
"HANDLE_ERROR_ERROR"
|
|
107
|
+
]),
|
|
108
|
+
message: z.string().optional()
|
|
113
109
|
});
|
|
114
110
|
var TaskRunError = z.discriminatedUnion("type", [
|
|
115
111
|
TaskRunBuiltInError,
|
|
@@ -123,6 +119,7 @@ var TaskRun = z.object({
|
|
|
123
119
|
payloadType: z.string(),
|
|
124
120
|
context: z.any(),
|
|
125
121
|
tags: z.array(z.string()),
|
|
122
|
+
isTest: z.boolean().default(false),
|
|
126
123
|
createdAt: z.coerce.date()
|
|
127
124
|
});
|
|
128
125
|
var TaskRunExecutionTask = z.object({
|
|
@@ -159,13 +156,22 @@ var TaskRunExecutionProject = z.object({
|
|
|
159
156
|
slug: z.string(),
|
|
160
157
|
name: z.string()
|
|
161
158
|
});
|
|
159
|
+
var TaskRunExecutionQueue = z.object({
|
|
160
|
+
id: z.string(),
|
|
161
|
+
name: z.string()
|
|
162
|
+
});
|
|
163
|
+
var TaskRunExecutionBatch = z.object({
|
|
164
|
+
id: z.string()
|
|
165
|
+
});
|
|
162
166
|
var TaskRunExecution = z.object({
|
|
163
167
|
task: TaskRunExecutionTask,
|
|
164
168
|
attempt: TaskRunExecutionAttempt,
|
|
165
169
|
run: TaskRun,
|
|
170
|
+
queue: TaskRunExecutionQueue,
|
|
166
171
|
environment: TaskRunExecutionEnvironment,
|
|
167
172
|
organization: TaskRunExecutionOrganization,
|
|
168
|
-
project: TaskRunExecutionProject
|
|
173
|
+
project: TaskRunExecutionProject,
|
|
174
|
+
batch: TaskRunExecutionBatch.optional()
|
|
169
175
|
});
|
|
170
176
|
var TaskRunContext = z.object({
|
|
171
177
|
task: TaskRunExecutionTask,
|
|
@@ -177,33 +183,105 @@ var TaskRunContext = z.object({
|
|
|
177
183
|
payload: true,
|
|
178
184
|
payloadType: true
|
|
179
185
|
}),
|
|
186
|
+
queue: TaskRunExecutionQueue,
|
|
180
187
|
environment: TaskRunExecutionEnvironment,
|
|
181
188
|
organization: TaskRunExecutionOrganization,
|
|
182
|
-
project: TaskRunExecutionProject
|
|
189
|
+
project: TaskRunExecutionProject,
|
|
190
|
+
batch: TaskRunExecutionBatch.optional()
|
|
191
|
+
});
|
|
192
|
+
var TaskRunExecutionRetry = z.object({
|
|
193
|
+
timestamp: z.number(),
|
|
194
|
+
delay: z.number(),
|
|
195
|
+
error: z.unknown().optional()
|
|
183
196
|
});
|
|
184
197
|
var TaskRunFailedExecutionResult = z.object({
|
|
185
198
|
ok: z.literal(false),
|
|
186
199
|
id: z.string(),
|
|
187
|
-
error: TaskRunError
|
|
200
|
+
error: TaskRunError,
|
|
201
|
+
retry: TaskRunExecutionRetry.optional(),
|
|
202
|
+
skippedRetrying: z.boolean().optional()
|
|
188
203
|
});
|
|
189
204
|
var TaskRunSuccessfulExecutionResult = z.object({
|
|
190
205
|
ok: z.literal(true),
|
|
191
206
|
id: z.string(),
|
|
192
|
-
output: z.string(),
|
|
207
|
+
output: z.string().optional(),
|
|
193
208
|
outputType: z.string()
|
|
194
209
|
});
|
|
195
210
|
var TaskRunExecutionResult = z.discriminatedUnion("ok", [
|
|
196
211
|
TaskRunSuccessfulExecutionResult,
|
|
197
212
|
TaskRunFailedExecutionResult
|
|
198
213
|
]);
|
|
214
|
+
var BatchTaskRunExecutionResult = z.object({
|
|
215
|
+
id: z.string(),
|
|
216
|
+
items: TaskRunExecutionResult.array()
|
|
217
|
+
});
|
|
218
|
+
|
|
219
|
+
// src/v3/schemas/messages.ts
|
|
220
|
+
var EnvironmentType = z.enum([
|
|
221
|
+
"PRODUCTION",
|
|
222
|
+
"STAGING",
|
|
223
|
+
"DEVELOPMENT",
|
|
224
|
+
"PREVIEW"
|
|
225
|
+
]);
|
|
226
|
+
var MachineCpu = z.union([
|
|
227
|
+
z.literal(0.25),
|
|
228
|
+
z.literal(0.5),
|
|
229
|
+
z.literal(1),
|
|
230
|
+
z.literal(2),
|
|
231
|
+
z.literal(4)
|
|
232
|
+
]).default(0.5);
|
|
233
|
+
var MachineMemory = z.union([
|
|
234
|
+
z.literal(0.25),
|
|
235
|
+
z.literal(0.5),
|
|
236
|
+
z.literal(1),
|
|
237
|
+
z.literal(2),
|
|
238
|
+
z.literal(4),
|
|
239
|
+
z.literal(8)
|
|
240
|
+
]).default(1);
|
|
241
|
+
var Machine = z.object({
|
|
242
|
+
version: z.literal("v1").default("v1"),
|
|
243
|
+
cpu: MachineCpu,
|
|
244
|
+
memory: MachineMemory
|
|
245
|
+
});
|
|
199
246
|
var TaskRunExecutionPayload = z.object({
|
|
200
247
|
execution: TaskRunExecution,
|
|
201
|
-
traceContext: z.record(z.unknown())
|
|
248
|
+
traceContext: z.record(z.unknown()),
|
|
249
|
+
environment: z.record(z.string()).optional()
|
|
250
|
+
});
|
|
251
|
+
var ProdTaskRunExecution = TaskRunExecution.extend({
|
|
252
|
+
worker: z.object({
|
|
253
|
+
id: z.string(),
|
|
254
|
+
contentHash: z.string(),
|
|
255
|
+
version: z.string()
|
|
256
|
+
})
|
|
257
|
+
});
|
|
258
|
+
var ProdTaskRunExecutionPayload = z.object({
|
|
259
|
+
execution: ProdTaskRunExecution,
|
|
260
|
+
traceContext: z.record(z.unknown()),
|
|
261
|
+
environment: z.record(z.string()).optional()
|
|
202
262
|
});
|
|
203
263
|
var BackgroundWorkerServerMessages = z.discriminatedUnion("type", [
|
|
204
264
|
z.object({
|
|
205
265
|
type: z.literal("EXECUTE_RUNS"),
|
|
206
266
|
payloads: z.array(TaskRunExecutionPayload)
|
|
267
|
+
}),
|
|
268
|
+
z.object({
|
|
269
|
+
type: z.literal("CANCEL_ATTEMPT"),
|
|
270
|
+
taskAttemptId: z.string(),
|
|
271
|
+
taskRunId: z.string()
|
|
272
|
+
}),
|
|
273
|
+
z.object({
|
|
274
|
+
type: z.literal("SCHEDULE_ATTEMPT"),
|
|
275
|
+
image: z.string(),
|
|
276
|
+
version: z.string(),
|
|
277
|
+
machine: Machine,
|
|
278
|
+
// identifiers
|
|
279
|
+
id: z.string(),
|
|
280
|
+
envId: z.string(),
|
|
281
|
+
envType: EnvironmentType,
|
|
282
|
+
orgId: z.string(),
|
|
283
|
+
projectId: z.string(),
|
|
284
|
+
runId: z.string()
|
|
207
285
|
})
|
|
208
286
|
]);
|
|
209
287
|
var serverWebsocketMessages = {
|
|
@@ -221,15 +299,26 @@ var BackgroundWorkerClientMessages = z.discriminatedUnion("type", [
|
|
|
221
299
|
z.object({
|
|
222
300
|
version: z.literal("v1").default("v1"),
|
|
223
301
|
type: z.literal("TASK_RUN_COMPLETED"),
|
|
224
|
-
completion: TaskRunExecutionResult
|
|
302
|
+
completion: TaskRunExecutionResult,
|
|
303
|
+
execution: TaskRunExecution
|
|
304
|
+
}),
|
|
305
|
+
z.object({
|
|
306
|
+
version: z.literal("v1").default("v1"),
|
|
307
|
+
type: z.literal("TASK_HEARTBEAT"),
|
|
308
|
+
id: z.string()
|
|
225
309
|
})
|
|
226
310
|
]);
|
|
311
|
+
var BackgroundWorkerProperties = z.object({
|
|
312
|
+
id: z.string(),
|
|
313
|
+
version: z.string(),
|
|
314
|
+
contentHash: z.string()
|
|
315
|
+
});
|
|
227
316
|
var clientWebsocketMessages = {
|
|
228
317
|
READY_FOR_TASKS: z.object({
|
|
229
318
|
version: z.literal("v1").default("v1"),
|
|
230
319
|
backgroundWorkerId: z.string()
|
|
231
320
|
}),
|
|
232
|
-
|
|
321
|
+
BACKGROUND_WORKER_DEPRECATED: z.object({
|
|
233
322
|
version: z.literal("v1").default("v1"),
|
|
234
323
|
backgroundWorkerId: z.string()
|
|
235
324
|
}),
|
|
@@ -244,40 +333,1112 @@ var workerToChildMessages = {
|
|
|
244
333
|
version: z.literal("v1").default("v1"),
|
|
245
334
|
execution: TaskRunExecution,
|
|
246
335
|
traceContext: z.record(z.unknown()),
|
|
247
|
-
metadata:
|
|
336
|
+
metadata: BackgroundWorkerProperties
|
|
248
337
|
}),
|
|
249
|
-
|
|
338
|
+
TASK_RUN_COMPLETED_NOTIFICATION: z.object({
|
|
250
339
|
version: z.literal("v1").default("v1"),
|
|
251
340
|
completion: TaskRunExecutionResult,
|
|
252
341
|
execution: TaskRunExecution
|
|
253
342
|
}),
|
|
254
343
|
CLEANUP: z.object({
|
|
255
344
|
version: z.literal("v1").default("v1"),
|
|
256
|
-
flush: z.boolean().default(false)
|
|
345
|
+
flush: z.boolean().default(false),
|
|
346
|
+
kill: z.boolean().default(true)
|
|
257
347
|
})
|
|
258
348
|
};
|
|
349
|
+
var FixedWindowRateLimit = z.object({
|
|
350
|
+
type: z.literal("fixed-window"),
|
|
351
|
+
limit: z.number(),
|
|
352
|
+
window: z.union([
|
|
353
|
+
z.object({
|
|
354
|
+
seconds: z.number()
|
|
355
|
+
}),
|
|
356
|
+
z.object({
|
|
357
|
+
minutes: z.number()
|
|
358
|
+
}),
|
|
359
|
+
z.object({
|
|
360
|
+
hours: z.number()
|
|
361
|
+
})
|
|
362
|
+
])
|
|
363
|
+
});
|
|
364
|
+
var SlidingWindowRateLimit = z.object({
|
|
365
|
+
type: z.literal("sliding-window"),
|
|
366
|
+
limit: z.number(),
|
|
367
|
+
window: z.union([
|
|
368
|
+
z.object({
|
|
369
|
+
seconds: z.number()
|
|
370
|
+
}),
|
|
371
|
+
z.object({
|
|
372
|
+
minutes: z.number()
|
|
373
|
+
}),
|
|
374
|
+
z.object({
|
|
375
|
+
hours: z.number()
|
|
376
|
+
})
|
|
377
|
+
])
|
|
378
|
+
});
|
|
379
|
+
var RateLimitOptions = z.discriminatedUnion("type", [
|
|
380
|
+
FixedWindowRateLimit,
|
|
381
|
+
SlidingWindowRateLimit
|
|
382
|
+
]);
|
|
383
|
+
var RetryOptions = z.object({
|
|
384
|
+
/** The number of attempts before giving up */
|
|
385
|
+
maxAttempts: z.number().int().optional(),
|
|
386
|
+
/** The exponential factor to use when calculating the next retry time.
|
|
387
|
+
*
|
|
388
|
+
* Each subsequent retry will be calculated as `previousTimeout * factor`
|
|
389
|
+
*/
|
|
390
|
+
factor: z.number().optional(),
|
|
391
|
+
/** The minimum time to wait before retrying */
|
|
392
|
+
minTimeoutInMs: z.number().int().optional(),
|
|
393
|
+
/** The maximum time to wait before retrying */
|
|
394
|
+
maxTimeoutInMs: z.number().int().optional(),
|
|
395
|
+
/** Randomize the timeout between retries.
|
|
396
|
+
*
|
|
397
|
+
* This can be useful to prevent the thundering herd problem where all retries happen at the same time.
|
|
398
|
+
*/
|
|
399
|
+
randomize: z.boolean().optional()
|
|
400
|
+
});
|
|
401
|
+
var QueueOptions = z.object({
|
|
402
|
+
/** You can define a shared queue and then pass the name in to your task.
|
|
403
|
+
*
|
|
404
|
+
* @example
|
|
405
|
+
*
|
|
406
|
+
* ```ts
|
|
407
|
+
* const myQueue = queue({
|
|
408
|
+
name: "my-queue",
|
|
409
|
+
concurrencyLimit: 1,
|
|
410
|
+
});
|
|
411
|
+
|
|
412
|
+
export const task1 = task({
|
|
413
|
+
id: "task-1",
|
|
414
|
+
queue: {
|
|
415
|
+
name: "my-queue",
|
|
416
|
+
},
|
|
417
|
+
run: async (payload: { message: string }) => {
|
|
418
|
+
// ...
|
|
419
|
+
},
|
|
420
|
+
});
|
|
421
|
+
|
|
422
|
+
export const task2 = task({
|
|
423
|
+
id: "task-2",
|
|
424
|
+
queue: {
|
|
425
|
+
name: "my-queue",
|
|
426
|
+
},
|
|
427
|
+
run: async (payload: { message: string }) => {
|
|
428
|
+
// ...
|
|
429
|
+
},
|
|
430
|
+
});
|
|
431
|
+
* ```
|
|
432
|
+
*/
|
|
433
|
+
name: z.string().optional(),
|
|
434
|
+
/** An optional property that specifies the maximum number of concurrent run executions.
|
|
435
|
+
*
|
|
436
|
+
* If this property is omitted, the task can potentially use up the full concurrency of an environment. */
|
|
437
|
+
concurrencyLimit: z.number().int().min(0).max(1e3).optional(),
|
|
438
|
+
/** @deprecated This feature is coming soon */
|
|
439
|
+
rateLimit: RateLimitOptions.optional()
|
|
440
|
+
});
|
|
259
441
|
var TaskMetadata = z.object({
|
|
260
442
|
id: z.string(),
|
|
261
443
|
exportName: z.string(),
|
|
262
|
-
packageVersion: z.string()
|
|
444
|
+
packageVersion: z.string(),
|
|
445
|
+
queue: QueueOptions.optional(),
|
|
446
|
+
retry: RetryOptions.optional(),
|
|
447
|
+
machine: Machine.partial().optional()
|
|
263
448
|
});
|
|
264
449
|
var TaskMetadataWithFilePath = TaskMetadata.extend({
|
|
265
450
|
filePath: z.string()
|
|
266
451
|
});
|
|
452
|
+
var UncaughtExceptionMessage = z.object({
|
|
453
|
+
version: z.literal("v1").default("v1"),
|
|
454
|
+
error: z.object({
|
|
455
|
+
name: z.string(),
|
|
456
|
+
message: z.string(),
|
|
457
|
+
stack: z.string().optional()
|
|
458
|
+
}),
|
|
459
|
+
origin: z.enum([
|
|
460
|
+
"uncaughtException",
|
|
461
|
+
"unhandledRejection"
|
|
462
|
+
])
|
|
463
|
+
});
|
|
464
|
+
var TaskMetadataFailedToParseData = z.object({
|
|
465
|
+
version: z.literal("v1").default("v1"),
|
|
466
|
+
tasks: z.unknown(),
|
|
467
|
+
zodIssues: z.custom((v) => {
|
|
468
|
+
return Array.isArray(v) && v.every((issue) => typeof issue === "object" && "message" in issue);
|
|
469
|
+
})
|
|
470
|
+
});
|
|
267
471
|
var childToWorkerMessages = {
|
|
268
472
|
TASK_RUN_COMPLETED: z.object({
|
|
269
473
|
version: z.literal("v1").default("v1"),
|
|
474
|
+
execution: TaskRunExecution,
|
|
270
475
|
result: TaskRunExecutionResult
|
|
271
476
|
}),
|
|
272
477
|
TASKS_READY: z.object({
|
|
273
478
|
version: z.literal("v1").default("v1"),
|
|
274
479
|
tasks: TaskMetadataWithFilePath.array()
|
|
275
480
|
}),
|
|
276
|
-
|
|
481
|
+
TASKS_FAILED_TO_PARSE: TaskMetadataFailedToParseData,
|
|
482
|
+
TASK_HEARTBEAT: z.object({
|
|
483
|
+
version: z.literal("v1").default("v1"),
|
|
484
|
+
id: z.string()
|
|
485
|
+
}),
|
|
486
|
+
READY_TO_DISPOSE: z.undefined(),
|
|
487
|
+
WAIT_FOR_DURATION: z.object({
|
|
488
|
+
version: z.literal("v1").default("v1"),
|
|
489
|
+
ms: z.number()
|
|
490
|
+
}),
|
|
491
|
+
WAIT_FOR_TASK: z.object({
|
|
492
|
+
version: z.literal("v1").default("v1"),
|
|
493
|
+
id: z.string()
|
|
494
|
+
}),
|
|
495
|
+
WAIT_FOR_BATCH: z.object({
|
|
496
|
+
version: z.literal("v1").default("v1"),
|
|
497
|
+
id: z.string(),
|
|
498
|
+
runs: z.string().array()
|
|
499
|
+
}),
|
|
500
|
+
UNCAUGHT_EXCEPTION: UncaughtExceptionMessage
|
|
501
|
+
};
|
|
502
|
+
var ProdChildToWorkerMessages = {
|
|
503
|
+
TASK_RUN_COMPLETED: {
|
|
504
|
+
message: z.object({
|
|
505
|
+
version: z.literal("v1").default("v1"),
|
|
506
|
+
execution: TaskRunExecution,
|
|
507
|
+
result: TaskRunExecutionResult
|
|
508
|
+
})
|
|
509
|
+
},
|
|
510
|
+
TASKS_READY: {
|
|
511
|
+
message: z.object({
|
|
512
|
+
version: z.literal("v1").default("v1"),
|
|
513
|
+
tasks: TaskMetadataWithFilePath.array()
|
|
514
|
+
})
|
|
515
|
+
},
|
|
516
|
+
TASKS_FAILED_TO_PARSE: {
|
|
517
|
+
message: TaskMetadataFailedToParseData
|
|
518
|
+
},
|
|
519
|
+
TASK_HEARTBEAT: {
|
|
520
|
+
message: z.object({
|
|
521
|
+
version: z.literal("v1").default("v1"),
|
|
522
|
+
id: z.string()
|
|
523
|
+
})
|
|
524
|
+
},
|
|
525
|
+
READY_TO_DISPOSE: {
|
|
526
|
+
message: z.undefined()
|
|
527
|
+
},
|
|
528
|
+
READY_FOR_CHECKPOINT: {
|
|
529
|
+
message: z.object({
|
|
530
|
+
version: z.literal("v1").default("v1")
|
|
531
|
+
})
|
|
532
|
+
},
|
|
533
|
+
CANCEL_CHECKPOINT: {
|
|
534
|
+
message: z.object({
|
|
535
|
+
version: z.literal("v1").default("v1")
|
|
536
|
+
})
|
|
537
|
+
},
|
|
538
|
+
WAIT_FOR_DURATION: {
|
|
539
|
+
message: z.object({
|
|
540
|
+
version: z.literal("v1").default("v1"),
|
|
541
|
+
ms: z.number(),
|
|
542
|
+
now: z.number()
|
|
543
|
+
}),
|
|
544
|
+
callback: z.object({
|
|
545
|
+
willCheckpointAndRestore: z.boolean()
|
|
546
|
+
})
|
|
547
|
+
},
|
|
548
|
+
WAIT_FOR_TASK: {
|
|
549
|
+
message: z.object({
|
|
550
|
+
version: z.literal("v1").default("v1"),
|
|
551
|
+
friendlyId: z.string()
|
|
552
|
+
})
|
|
553
|
+
},
|
|
554
|
+
WAIT_FOR_BATCH: {
|
|
555
|
+
message: z.object({
|
|
556
|
+
version: z.literal("v1").default("v1"),
|
|
557
|
+
batchFriendlyId: z.string(),
|
|
558
|
+
runFriendlyIds: z.string().array()
|
|
559
|
+
})
|
|
560
|
+
},
|
|
561
|
+
UNCAUGHT_EXCEPTION: {
|
|
562
|
+
message: UncaughtExceptionMessage
|
|
563
|
+
}
|
|
564
|
+
};
|
|
565
|
+
var ProdWorkerToChildMessages = {
|
|
566
|
+
EXECUTE_TASK_RUN: {
|
|
567
|
+
message: z.object({
|
|
568
|
+
version: z.literal("v1").default("v1"),
|
|
569
|
+
execution: TaskRunExecution,
|
|
570
|
+
traceContext: z.record(z.unknown()),
|
|
571
|
+
metadata: BackgroundWorkerProperties
|
|
572
|
+
})
|
|
573
|
+
},
|
|
574
|
+
TASK_RUN_COMPLETED_NOTIFICATION: {
|
|
575
|
+
message: z.object({
|
|
576
|
+
version: z.literal("v1").default("v1"),
|
|
577
|
+
completion: TaskRunExecutionResult,
|
|
578
|
+
execution: TaskRunExecution
|
|
579
|
+
})
|
|
580
|
+
},
|
|
581
|
+
CLEANUP: {
|
|
582
|
+
message: z.object({
|
|
583
|
+
version: z.literal("v1").default("v1"),
|
|
584
|
+
flush: z.boolean().default(false),
|
|
585
|
+
kill: z.boolean().default(true)
|
|
586
|
+
}),
|
|
587
|
+
callback: z.void()
|
|
588
|
+
},
|
|
589
|
+
WAIT_COMPLETED_NOTIFICATION: {
|
|
590
|
+
message: z.object({
|
|
591
|
+
version: z.literal("v1").default("v1")
|
|
592
|
+
})
|
|
593
|
+
}
|
|
594
|
+
};
|
|
595
|
+
|
|
596
|
+
// src/v3/schemas/resources.ts
|
|
597
|
+
var TaskResource = z.object({
|
|
598
|
+
id: z.string(),
|
|
599
|
+
filePath: z.string(),
|
|
600
|
+
exportName: z.string(),
|
|
601
|
+
queue: QueueOptions.optional(),
|
|
602
|
+
retry: RetryOptions.optional(),
|
|
603
|
+
machine: Machine.partial().optional()
|
|
604
|
+
});
|
|
605
|
+
var BackgroundWorkerMetadata = z.object({
|
|
606
|
+
packageVersion: z.string(),
|
|
607
|
+
contentHash: z.string(),
|
|
608
|
+
cliPackageVersion: z.string().optional(),
|
|
609
|
+
tasks: z.array(TaskResource)
|
|
610
|
+
});
|
|
611
|
+
var ImageDetailsMetadata = z.object({
|
|
612
|
+
contentHash: z.string(),
|
|
613
|
+
imageTag: z.string()
|
|
614
|
+
});
|
|
615
|
+
|
|
616
|
+
// src/v3/schemas/api.ts
|
|
617
|
+
var WhoAmIResponseSchema = z.object({
|
|
618
|
+
userId: z.string(),
|
|
619
|
+
email: z.string().email(),
|
|
620
|
+
dashboardUrl: z.string()
|
|
621
|
+
});
|
|
622
|
+
var GetProjectResponseBody = z.object({
|
|
623
|
+
id: z.string(),
|
|
624
|
+
externalRef: z.string(),
|
|
625
|
+
name: z.string(),
|
|
626
|
+
slug: z.string(),
|
|
627
|
+
createdAt: z.coerce.date(),
|
|
628
|
+
organization: z.object({
|
|
629
|
+
id: z.string(),
|
|
630
|
+
title: z.string(),
|
|
631
|
+
slug: z.string(),
|
|
632
|
+
createdAt: z.coerce.date()
|
|
633
|
+
})
|
|
634
|
+
});
|
|
635
|
+
var GetProjectsResponseBody = z.array(GetProjectResponseBody);
|
|
636
|
+
var GetProjectEnvResponse = z.object({
|
|
637
|
+
apiKey: z.string(),
|
|
638
|
+
name: z.string(),
|
|
639
|
+
apiUrl: z.string()
|
|
640
|
+
});
|
|
641
|
+
var CreateBackgroundWorkerRequestBody = z.object({
|
|
642
|
+
localOnly: z.boolean(),
|
|
643
|
+
metadata: BackgroundWorkerMetadata
|
|
644
|
+
});
|
|
645
|
+
var CreateBackgroundWorkerResponse = z.object({
|
|
646
|
+
id: z.string(),
|
|
647
|
+
version: z.string(),
|
|
648
|
+
contentHash: z.string()
|
|
649
|
+
});
|
|
650
|
+
var TriggerTaskRequestBody = z.object({
|
|
651
|
+
payload: z.any(),
|
|
652
|
+
context: z.any(),
|
|
653
|
+
options: z.object({
|
|
654
|
+
dependentAttempt: z.string().optional(),
|
|
655
|
+
dependentBatch: z.string().optional(),
|
|
656
|
+
lockToVersion: z.string().optional(),
|
|
657
|
+
queue: QueueOptions.optional(),
|
|
658
|
+
concurrencyKey: z.string().optional(),
|
|
659
|
+
test: z.boolean().optional()
|
|
660
|
+
}).optional()
|
|
661
|
+
});
|
|
662
|
+
var TriggerTaskResponse = z.object({
|
|
663
|
+
id: z.string()
|
|
664
|
+
});
|
|
665
|
+
var BatchTriggerTaskRequestBody = z.object({
|
|
666
|
+
items: TriggerTaskRequestBody.array(),
|
|
667
|
+
dependentAttempt: z.string().optional()
|
|
668
|
+
});
|
|
669
|
+
var BatchTriggerTaskResponse = z.object({
|
|
670
|
+
batchId: z.string(),
|
|
671
|
+
runs: z.string().array()
|
|
672
|
+
});
|
|
673
|
+
var GetBatchResponseBody = z.object({
|
|
674
|
+
id: z.string(),
|
|
675
|
+
items: z.array(z.object({
|
|
676
|
+
id: z.string(),
|
|
677
|
+
taskRunId: z.string(),
|
|
678
|
+
status: z.enum([
|
|
679
|
+
"PENDING",
|
|
680
|
+
"CANCELED",
|
|
681
|
+
"COMPLETED",
|
|
682
|
+
"FAILED"
|
|
683
|
+
])
|
|
684
|
+
}))
|
|
685
|
+
});
|
|
686
|
+
var GetEnvironmentVariablesResponseBody = z.object({
|
|
687
|
+
variables: z.record(z.string())
|
|
688
|
+
});
|
|
689
|
+
var StartDeploymentIndexingRequestBody = z.object({
|
|
690
|
+
imageReference: z.string()
|
|
691
|
+
});
|
|
692
|
+
var StartDeploymentIndexingResponseBody = z.object({
|
|
693
|
+
id: z.string(),
|
|
694
|
+
contentHash: z.string()
|
|
695
|
+
});
|
|
696
|
+
var ExternalBuildData = z.object({
|
|
697
|
+
buildId: z.string(),
|
|
698
|
+
buildToken: z.string(),
|
|
699
|
+
projectId: z.string()
|
|
700
|
+
});
|
|
701
|
+
var InitializeDeploymentResponseBody = z.object({
|
|
702
|
+
id: z.string(),
|
|
703
|
+
contentHash: z.string(),
|
|
704
|
+
shortCode: z.string(),
|
|
705
|
+
version: z.string(),
|
|
706
|
+
imageTag: z.string(),
|
|
707
|
+
externalBuildData: ExternalBuildData.optional().nullable(),
|
|
708
|
+
registryHost: z.string().optional()
|
|
709
|
+
});
|
|
710
|
+
var InitializeDeploymentRequestBody = z.object({
|
|
711
|
+
contentHash: z.string(),
|
|
712
|
+
userId: z.string().optional()
|
|
713
|
+
});
|
|
714
|
+
var DeploymentErrorData = z.object({
|
|
715
|
+
name: z.string(),
|
|
716
|
+
message: z.string(),
|
|
717
|
+
stack: z.string().optional()
|
|
718
|
+
});
|
|
719
|
+
var GetDeploymentResponseBody = z.object({
|
|
720
|
+
id: z.string(),
|
|
721
|
+
status: z.enum([
|
|
722
|
+
"PENDING",
|
|
723
|
+
"BUILDING",
|
|
724
|
+
"DEPLOYING",
|
|
725
|
+
"DEPLOYED",
|
|
726
|
+
"FAILED",
|
|
727
|
+
"CANCELED",
|
|
728
|
+
"TIMED_OUT"
|
|
729
|
+
]),
|
|
730
|
+
contentHash: z.string(),
|
|
731
|
+
shortCode: z.string(),
|
|
732
|
+
version: z.string(),
|
|
733
|
+
imageReference: z.string().optional(),
|
|
734
|
+
errorData: DeploymentErrorData.optional().nullable(),
|
|
735
|
+
worker: z.object({
|
|
736
|
+
id: z.string(),
|
|
737
|
+
version: z.string(),
|
|
738
|
+
tasks: z.array(z.object({
|
|
739
|
+
id: z.string(),
|
|
740
|
+
slug: z.string(),
|
|
741
|
+
filePath: z.string(),
|
|
742
|
+
exportName: z.string()
|
|
743
|
+
}))
|
|
744
|
+
}).optional()
|
|
745
|
+
});
|
|
746
|
+
var CreateUploadPayloadUrlResponseBody = z.object({
|
|
747
|
+
presignedUrl: z.string()
|
|
748
|
+
});
|
|
749
|
+
var PostStartCauses = z.enum([
|
|
750
|
+
"index",
|
|
751
|
+
"create",
|
|
752
|
+
"restore"
|
|
753
|
+
]);
|
|
754
|
+
var PreStopCauses = z.enum([
|
|
755
|
+
"terminate"
|
|
756
|
+
]);
|
|
757
|
+
var RegexSchema = z.custom((val) => {
|
|
758
|
+
try {
|
|
759
|
+
return typeof val.test === "function";
|
|
760
|
+
} catch {
|
|
761
|
+
return false;
|
|
762
|
+
}
|
|
763
|
+
});
|
|
764
|
+
var Config = z.object({
|
|
765
|
+
project: z.string(),
|
|
766
|
+
triggerDirectories: z.string().array().optional(),
|
|
767
|
+
triggerUrl: z.string().optional(),
|
|
768
|
+
projectDir: z.string().optional(),
|
|
769
|
+
tsconfigPath: z.string().optional(),
|
|
770
|
+
retries: z.object({
|
|
771
|
+
enabledInDev: z.boolean().default(true),
|
|
772
|
+
default: RetryOptions.optional()
|
|
773
|
+
}).optional(),
|
|
774
|
+
additionalPackages: z.string().array().optional(),
|
|
775
|
+
additionalFiles: z.string().array().optional(),
|
|
776
|
+
dependenciesToBundle: z.array(z.union([
|
|
777
|
+
z.string(),
|
|
778
|
+
RegexSchema
|
|
779
|
+
])).optional(),
|
|
780
|
+
logLevel: z.string().optional()
|
|
781
|
+
});
|
|
782
|
+
var WaitReason = z.enum([
|
|
783
|
+
"WAIT_FOR_DURATION",
|
|
784
|
+
"WAIT_FOR_TASK",
|
|
785
|
+
"WAIT_FOR_BATCH"
|
|
786
|
+
]);
|
|
787
|
+
var ProviderToPlatformMessages = {
|
|
788
|
+
LOG: {
|
|
789
|
+
message: z.object({
|
|
790
|
+
version: z.literal("v1").default("v1"),
|
|
791
|
+
data: z.string()
|
|
792
|
+
})
|
|
793
|
+
},
|
|
794
|
+
LOG_WITH_ACK: {
|
|
795
|
+
message: z.object({
|
|
796
|
+
version: z.literal("v1").default("v1"),
|
|
797
|
+
data: z.string()
|
|
798
|
+
}),
|
|
799
|
+
callback: z.object({
|
|
800
|
+
status: z.literal("ok")
|
|
801
|
+
})
|
|
802
|
+
},
|
|
803
|
+
WORKER_CRASHED: {
|
|
804
|
+
message: z.object({
|
|
805
|
+
version: z.literal("v1").default("v1"),
|
|
806
|
+
runId: z.string(),
|
|
807
|
+
reason: z.string().optional(),
|
|
808
|
+
exitCode: z.number().optional(),
|
|
809
|
+
message: z.string().optional(),
|
|
810
|
+
logs: z.string().optional()
|
|
811
|
+
})
|
|
812
|
+
},
|
|
813
|
+
INDEXING_FAILED: {
|
|
814
|
+
message: z.object({
|
|
815
|
+
version: z.literal("v1").default("v1"),
|
|
816
|
+
deploymentId: z.string(),
|
|
817
|
+
error: z.object({
|
|
818
|
+
name: z.string(),
|
|
819
|
+
message: z.string(),
|
|
820
|
+
stack: z.string().optional()
|
|
821
|
+
})
|
|
822
|
+
})
|
|
823
|
+
}
|
|
824
|
+
};
|
|
825
|
+
var PlatformToProviderMessages = {
|
|
826
|
+
HEALTH: {
|
|
827
|
+
message: z.object({
|
|
828
|
+
version: z.literal("v1").default("v1")
|
|
829
|
+
}),
|
|
830
|
+
callback: z.object({
|
|
831
|
+
status: z.literal("ok")
|
|
832
|
+
})
|
|
833
|
+
},
|
|
834
|
+
INDEX: {
|
|
835
|
+
message: z.object({
|
|
836
|
+
version: z.literal("v1").default("v1"),
|
|
837
|
+
imageTag: z.string(),
|
|
838
|
+
shortCode: z.string(),
|
|
839
|
+
apiKey: z.string(),
|
|
840
|
+
apiUrl: z.string(),
|
|
841
|
+
// identifiers
|
|
842
|
+
envId: z.string(),
|
|
843
|
+
envType: EnvironmentType,
|
|
844
|
+
orgId: z.string(),
|
|
845
|
+
projectId: z.string(),
|
|
846
|
+
deploymentId: z.string()
|
|
847
|
+
}),
|
|
848
|
+
callback: z.discriminatedUnion("success", [
|
|
849
|
+
z.object({
|
|
850
|
+
success: z.literal(false),
|
|
851
|
+
error: z.object({
|
|
852
|
+
name: z.string(),
|
|
853
|
+
message: z.string(),
|
|
854
|
+
stack: z.string().optional()
|
|
855
|
+
})
|
|
856
|
+
}),
|
|
857
|
+
z.object({
|
|
858
|
+
success: z.literal(true)
|
|
859
|
+
})
|
|
860
|
+
])
|
|
861
|
+
},
|
|
862
|
+
// TODO: this should be a shared queue message instead
|
|
863
|
+
RESTORE: {
|
|
864
|
+
message: z.object({
|
|
865
|
+
version: z.literal("v1").default("v1"),
|
|
866
|
+
type: z.enum([
|
|
867
|
+
"DOCKER",
|
|
868
|
+
"KUBERNETES"
|
|
869
|
+
]),
|
|
870
|
+
location: z.string(),
|
|
871
|
+
reason: z.string().optional(),
|
|
872
|
+
imageRef: z.string(),
|
|
873
|
+
machine: Machine,
|
|
874
|
+
// identifiers
|
|
875
|
+
checkpointId: z.string(),
|
|
876
|
+
envId: z.string(),
|
|
877
|
+
envType: EnvironmentType,
|
|
878
|
+
orgId: z.string(),
|
|
879
|
+
projectId: z.string(),
|
|
880
|
+
runId: z.string()
|
|
881
|
+
})
|
|
882
|
+
},
|
|
883
|
+
DELETE: {
|
|
884
|
+
message: z.object({
|
|
885
|
+
version: z.literal("v1").default("v1"),
|
|
886
|
+
name: z.string()
|
|
887
|
+
}),
|
|
888
|
+
callback: z.object({
|
|
889
|
+
message: z.string()
|
|
890
|
+
})
|
|
891
|
+
},
|
|
892
|
+
GET: {
|
|
893
|
+
message: z.object({
|
|
894
|
+
version: z.literal("v1").default("v1"),
|
|
895
|
+
name: z.string()
|
|
896
|
+
})
|
|
897
|
+
}
|
|
898
|
+
};
|
|
899
|
+
var CoordinatorToPlatformMessages = {
|
|
900
|
+
LOG: {
|
|
901
|
+
message: z.object({
|
|
902
|
+
version: z.literal("v1").default("v1"),
|
|
903
|
+
metadata: z.any(),
|
|
904
|
+
text: z.string()
|
|
905
|
+
})
|
|
906
|
+
},
|
|
907
|
+
CREATE_WORKER: {
|
|
908
|
+
message: z.object({
|
|
909
|
+
version: z.literal("v1").default("v1"),
|
|
910
|
+
projectRef: z.string(),
|
|
911
|
+
envId: z.string(),
|
|
912
|
+
deploymentId: z.string(),
|
|
913
|
+
metadata: z.object({
|
|
914
|
+
cliPackageVersion: z.string().optional(),
|
|
915
|
+
contentHash: z.string(),
|
|
916
|
+
packageVersion: z.string(),
|
|
917
|
+
tasks: TaskResource.array()
|
|
918
|
+
})
|
|
919
|
+
}),
|
|
920
|
+
callback: z.discriminatedUnion("success", [
|
|
921
|
+
z.object({
|
|
922
|
+
success: z.literal(false)
|
|
923
|
+
}),
|
|
924
|
+
z.object({
|
|
925
|
+
success: z.literal(true)
|
|
926
|
+
})
|
|
927
|
+
])
|
|
928
|
+
},
|
|
929
|
+
READY_FOR_EXECUTION: {
|
|
930
|
+
message: z.object({
|
|
931
|
+
version: z.literal("v1").default("v1"),
|
|
932
|
+
runId: z.string(),
|
|
933
|
+
totalCompletions: z.number()
|
|
934
|
+
}),
|
|
935
|
+
callback: z.discriminatedUnion("success", [
|
|
936
|
+
z.object({
|
|
937
|
+
success: z.literal(false)
|
|
938
|
+
}),
|
|
939
|
+
z.object({
|
|
940
|
+
success: z.literal(true),
|
|
941
|
+
payload: ProdTaskRunExecutionPayload
|
|
942
|
+
})
|
|
943
|
+
])
|
|
944
|
+
},
|
|
945
|
+
READY_FOR_RESUME: {
|
|
946
|
+
message: z.object({
|
|
947
|
+
version: z.literal("v1").default("v1"),
|
|
948
|
+
attemptFriendlyId: z.string(),
|
|
949
|
+
type: WaitReason
|
|
950
|
+
})
|
|
951
|
+
},
|
|
952
|
+
TASK_RUN_COMPLETED: {
|
|
953
|
+
message: z.object({
|
|
954
|
+
version: z.literal("v1").default("v1"),
|
|
955
|
+
execution: ProdTaskRunExecution,
|
|
956
|
+
completion: TaskRunExecutionResult,
|
|
957
|
+
checkpoint: z.object({
|
|
958
|
+
docker: z.boolean(),
|
|
959
|
+
location: z.string()
|
|
960
|
+
}).optional()
|
|
961
|
+
})
|
|
962
|
+
},
|
|
963
|
+
TASK_HEARTBEAT: {
|
|
964
|
+
message: z.object({
|
|
965
|
+
version: z.literal("v1").default("v1"),
|
|
966
|
+
attemptFriendlyId: z.string()
|
|
967
|
+
})
|
|
968
|
+
},
|
|
969
|
+
CHECKPOINT_CREATED: {
|
|
970
|
+
message: z.object({
|
|
971
|
+
version: z.literal("v1").default("v1"),
|
|
972
|
+
attemptFriendlyId: z.string(),
|
|
973
|
+
docker: z.boolean(),
|
|
974
|
+
location: z.string(),
|
|
975
|
+
reason: z.discriminatedUnion("type", [
|
|
976
|
+
z.object({
|
|
977
|
+
type: z.literal("WAIT_FOR_DURATION"),
|
|
978
|
+
ms: z.number(),
|
|
979
|
+
now: z.number()
|
|
980
|
+
}),
|
|
981
|
+
z.object({
|
|
982
|
+
type: z.literal("WAIT_FOR_BATCH"),
|
|
983
|
+
batchFriendlyId: z.string(),
|
|
984
|
+
runFriendlyIds: z.string().array()
|
|
985
|
+
}),
|
|
986
|
+
z.object({
|
|
987
|
+
type: z.literal("WAIT_FOR_TASK"),
|
|
988
|
+
friendlyId: z.string()
|
|
989
|
+
}),
|
|
990
|
+
z.object({
|
|
991
|
+
type: z.literal("RETRYING_AFTER_FAILURE"),
|
|
992
|
+
attemptNumber: z.number()
|
|
993
|
+
})
|
|
994
|
+
])
|
|
995
|
+
})
|
|
996
|
+
},
|
|
997
|
+
INDEXING_FAILED: {
|
|
998
|
+
message: z.object({
|
|
999
|
+
version: z.literal("v1").default("v1"),
|
|
1000
|
+
deploymentId: z.string(),
|
|
1001
|
+
error: z.object({
|
|
1002
|
+
name: z.string(),
|
|
1003
|
+
message: z.string(),
|
|
1004
|
+
stack: z.string().optional()
|
|
1005
|
+
})
|
|
1006
|
+
})
|
|
1007
|
+
}
|
|
1008
|
+
};
|
|
1009
|
+
var PlatformToCoordinatorMessages = {
|
|
1010
|
+
RESUME_AFTER_DEPENDENCY: {
|
|
1011
|
+
message: z.object({
|
|
1012
|
+
version: z.literal("v1").default("v1"),
|
|
1013
|
+
runId: z.string(),
|
|
1014
|
+
attemptId: z.string(),
|
|
1015
|
+
attemptFriendlyId: z.string(),
|
|
1016
|
+
completions: TaskRunExecutionResult.array(),
|
|
1017
|
+
executions: TaskRunExecution.array()
|
|
1018
|
+
})
|
|
1019
|
+
},
|
|
1020
|
+
RESUME_AFTER_DURATION: {
|
|
1021
|
+
message: z.object({
|
|
1022
|
+
version: z.literal("v1").default("v1"),
|
|
1023
|
+
attemptId: z.string(),
|
|
1024
|
+
attemptFriendlyId: z.string()
|
|
1025
|
+
})
|
|
1026
|
+
},
|
|
1027
|
+
REQUEST_ATTEMPT_CANCELLATION: {
|
|
1028
|
+
message: z.object({
|
|
1029
|
+
version: z.literal("v1").default("v1"),
|
|
1030
|
+
attemptId: z.string(),
|
|
1031
|
+
attemptFriendlyId: z.string()
|
|
1032
|
+
})
|
|
1033
|
+
},
|
|
1034
|
+
READY_FOR_RETRY: {
|
|
1035
|
+
message: z.object({
|
|
1036
|
+
version: z.literal("v1").default("v1"),
|
|
1037
|
+
runId: z.string()
|
|
1038
|
+
})
|
|
1039
|
+
}
|
|
1040
|
+
};
|
|
1041
|
+
var ClientToSharedQueueMessages = {
|
|
1042
|
+
READY_FOR_TASKS: {
|
|
1043
|
+
message: z.object({
|
|
1044
|
+
version: z.literal("v1").default("v1"),
|
|
1045
|
+
backgroundWorkerId: z.string()
|
|
1046
|
+
})
|
|
1047
|
+
},
|
|
1048
|
+
BACKGROUND_WORKER_DEPRECATED: {
|
|
1049
|
+
message: z.object({
|
|
1050
|
+
version: z.literal("v1").default("v1"),
|
|
1051
|
+
backgroundWorkerId: z.string()
|
|
1052
|
+
})
|
|
1053
|
+
},
|
|
1054
|
+
BACKGROUND_WORKER_MESSAGE: {
|
|
1055
|
+
message: z.object({
|
|
1056
|
+
version: z.literal("v1").default("v1"),
|
|
1057
|
+
backgroundWorkerId: z.string(),
|
|
1058
|
+
data: BackgroundWorkerClientMessages
|
|
1059
|
+
})
|
|
1060
|
+
}
|
|
1061
|
+
};
|
|
1062
|
+
var SharedQueueToClientMessages = {
|
|
1063
|
+
SERVER_READY: {
|
|
1064
|
+
message: z.object({
|
|
1065
|
+
version: z.literal("v1").default("v1"),
|
|
1066
|
+
id: z.string()
|
|
1067
|
+
})
|
|
1068
|
+
},
|
|
1069
|
+
BACKGROUND_WORKER_MESSAGE: {
|
|
1070
|
+
message: z.object({
|
|
1071
|
+
version: z.literal("v1").default("v1"),
|
|
1072
|
+
backgroundWorkerId: z.string(),
|
|
1073
|
+
data: BackgroundWorkerServerMessages
|
|
1074
|
+
})
|
|
1075
|
+
}
|
|
1076
|
+
};
|
|
1077
|
+
var ProdWorkerToCoordinatorMessages = {
|
|
1078
|
+
LOG: {
|
|
1079
|
+
message: z.object({
|
|
1080
|
+
version: z.literal("v1").default("v1"),
|
|
1081
|
+
text: z.string()
|
|
1082
|
+
}),
|
|
1083
|
+
callback: z.void()
|
|
1084
|
+
},
|
|
1085
|
+
INDEX_TASKS: {
|
|
1086
|
+
message: z.object({
|
|
1087
|
+
version: z.literal("v1").default("v1"),
|
|
1088
|
+
deploymentId: z.string(),
|
|
1089
|
+
tasks: TaskResource.array(),
|
|
1090
|
+
packageVersion: z.string()
|
|
1091
|
+
}),
|
|
1092
|
+
callback: z.discriminatedUnion("success", [
|
|
1093
|
+
z.object({
|
|
1094
|
+
success: z.literal(false)
|
|
1095
|
+
}),
|
|
1096
|
+
z.object({
|
|
1097
|
+
success: z.literal(true)
|
|
1098
|
+
})
|
|
1099
|
+
])
|
|
1100
|
+
},
|
|
1101
|
+
READY_FOR_EXECUTION: {
|
|
1102
|
+
message: z.object({
|
|
1103
|
+
version: z.literal("v1").default("v1"),
|
|
1104
|
+
runId: z.string(),
|
|
1105
|
+
totalCompletions: z.number()
|
|
1106
|
+
})
|
|
1107
|
+
},
|
|
1108
|
+
READY_FOR_RESUME: {
|
|
1109
|
+
message: z.object({
|
|
1110
|
+
version: z.literal("v1").default("v1"),
|
|
1111
|
+
attemptFriendlyId: z.string(),
|
|
1112
|
+
type: WaitReason
|
|
1113
|
+
})
|
|
1114
|
+
},
|
|
1115
|
+
READY_FOR_CHECKPOINT: {
|
|
1116
|
+
message: z.object({
|
|
1117
|
+
version: z.literal("v1").default("v1")
|
|
1118
|
+
})
|
|
1119
|
+
},
|
|
1120
|
+
CANCEL_CHECKPOINT: {
|
|
1121
|
+
message: z.object({
|
|
1122
|
+
version: z.literal("v1").default("v1")
|
|
1123
|
+
})
|
|
1124
|
+
},
|
|
1125
|
+
TASK_HEARTBEAT: {
|
|
1126
|
+
message: z.object({
|
|
1127
|
+
version: z.literal("v1").default("v1"),
|
|
1128
|
+
attemptFriendlyId: z.string()
|
|
1129
|
+
})
|
|
1130
|
+
},
|
|
1131
|
+
TASK_RUN_COMPLETED: {
|
|
1132
|
+
message: z.object({
|
|
1133
|
+
version: z.literal("v1").default("v1"),
|
|
1134
|
+
execution: ProdTaskRunExecution,
|
|
1135
|
+
completion: TaskRunExecutionResult
|
|
1136
|
+
}),
|
|
1137
|
+
callback: z.object({
|
|
1138
|
+
willCheckpointAndRestore: z.boolean(),
|
|
1139
|
+
shouldExit: z.boolean()
|
|
1140
|
+
})
|
|
1141
|
+
},
|
|
1142
|
+
WAIT_FOR_DURATION: {
|
|
1143
|
+
message: z.object({
|
|
1144
|
+
version: z.literal("v1").default("v1"),
|
|
1145
|
+
ms: z.number(),
|
|
1146
|
+
now: z.number(),
|
|
1147
|
+
attemptFriendlyId: z.string()
|
|
1148
|
+
}),
|
|
1149
|
+
callback: z.object({
|
|
1150
|
+
willCheckpointAndRestore: z.boolean()
|
|
1151
|
+
})
|
|
1152
|
+
},
|
|
1153
|
+
WAIT_FOR_TASK: {
|
|
1154
|
+
message: z.object({
|
|
1155
|
+
version: z.literal("v1").default("v1"),
|
|
1156
|
+
friendlyId: z.string(),
|
|
1157
|
+
// This is the attempt that is waiting
|
|
1158
|
+
attemptFriendlyId: z.string()
|
|
1159
|
+
}),
|
|
1160
|
+
callback: z.object({
|
|
1161
|
+
willCheckpointAndRestore: z.boolean()
|
|
1162
|
+
})
|
|
1163
|
+
},
|
|
1164
|
+
WAIT_FOR_BATCH: {
|
|
1165
|
+
message: z.object({
|
|
1166
|
+
version: z.literal("v1").default("v1"),
|
|
1167
|
+
batchFriendlyId: z.string(),
|
|
1168
|
+
runFriendlyIds: z.string().array(),
|
|
1169
|
+
// This is the attempt that is waiting
|
|
1170
|
+
attemptFriendlyId: z.string()
|
|
1171
|
+
}),
|
|
1172
|
+
callback: z.object({
|
|
1173
|
+
willCheckpointAndRestore: z.boolean()
|
|
1174
|
+
})
|
|
1175
|
+
},
|
|
1176
|
+
INDEXING_FAILED: {
|
|
1177
|
+
message: z.object({
|
|
1178
|
+
version: z.literal("v1").default("v1"),
|
|
1179
|
+
deploymentId: z.string(),
|
|
1180
|
+
error: z.object({
|
|
1181
|
+
name: z.string(),
|
|
1182
|
+
message: z.string(),
|
|
1183
|
+
stack: z.string().optional()
|
|
1184
|
+
})
|
|
1185
|
+
})
|
|
1186
|
+
}
|
|
1187
|
+
};
|
|
1188
|
+
var CoordinatorToProdWorkerMessages = {
|
|
1189
|
+
RESUME_AFTER_DEPENDENCY: {
|
|
1190
|
+
message: z.object({
|
|
1191
|
+
version: z.literal("v1").default("v1"),
|
|
1192
|
+
attemptId: z.string(),
|
|
1193
|
+
completions: TaskRunExecutionResult.array(),
|
|
1194
|
+
executions: TaskRunExecution.array()
|
|
1195
|
+
})
|
|
1196
|
+
},
|
|
1197
|
+
RESUME_AFTER_DURATION: {
|
|
1198
|
+
message: z.object({
|
|
1199
|
+
version: z.literal("v1").default("v1"),
|
|
1200
|
+
attemptId: z.string()
|
|
1201
|
+
})
|
|
1202
|
+
},
|
|
1203
|
+
EXECUTE_TASK_RUN: {
|
|
1204
|
+
message: z.object({
|
|
1205
|
+
version: z.literal("v1").default("v1"),
|
|
1206
|
+
executionPayload: ProdTaskRunExecutionPayload
|
|
1207
|
+
})
|
|
1208
|
+
},
|
|
1209
|
+
REQUEST_ATTEMPT_CANCELLATION: {
|
|
1210
|
+
message: z.object({
|
|
1211
|
+
version: z.literal("v1").default("v1"),
|
|
1212
|
+
attemptId: z.string()
|
|
1213
|
+
})
|
|
1214
|
+
},
|
|
1215
|
+
REQUEST_EXIT: {
|
|
1216
|
+
message: z.object({
|
|
1217
|
+
version: z.literal("v1").default("v1")
|
|
1218
|
+
})
|
|
1219
|
+
},
|
|
1220
|
+
READY_FOR_RETRY: {
|
|
1221
|
+
message: z.object({
|
|
1222
|
+
version: z.literal("v1").default("v1"),
|
|
1223
|
+
runId: z.string()
|
|
1224
|
+
})
|
|
1225
|
+
}
|
|
277
1226
|
};
|
|
1227
|
+
var ProdWorkerSocketData = z.object({
|
|
1228
|
+
contentHash: z.string(),
|
|
1229
|
+
projectRef: z.string(),
|
|
1230
|
+
envId: z.string(),
|
|
1231
|
+
runId: z.string(),
|
|
1232
|
+
attemptFriendlyId: z.string().optional(),
|
|
1233
|
+
podName: z.string(),
|
|
1234
|
+
deploymentId: z.string(),
|
|
1235
|
+
deploymentVersion: z.string()
|
|
1236
|
+
});
|
|
1237
|
+
var PRIMARY_VARIANT = "primary";
|
|
1238
|
+
var Variant = z.enum([
|
|
1239
|
+
PRIMARY_VARIANT
|
|
1240
|
+
]);
|
|
1241
|
+
var AccessoryItem = z.object({
|
|
1242
|
+
text: z.string(),
|
|
1243
|
+
variant: z.string().optional(),
|
|
1244
|
+
url: z.string().optional()
|
|
1245
|
+
});
|
|
1246
|
+
var Accessory = z.object({
|
|
1247
|
+
items: z.array(AccessoryItem),
|
|
1248
|
+
style: z.enum([
|
|
1249
|
+
"codepath"
|
|
1250
|
+
]).optional()
|
|
1251
|
+
});
|
|
1252
|
+
var TaskEventStyle = z.object({
|
|
1253
|
+
icon: z.string().optional(),
|
|
1254
|
+
variant: Variant.optional(),
|
|
1255
|
+
accessory: Accessory.optional()
|
|
1256
|
+
}).default({
|
|
1257
|
+
icon: void 0,
|
|
1258
|
+
variant: void 0
|
|
1259
|
+
});
|
|
1260
|
+
var stringPatternMatchers = [
|
|
1261
|
+
z.object({
|
|
1262
|
+
$endsWith: z.string()
|
|
1263
|
+
}),
|
|
1264
|
+
z.object({
|
|
1265
|
+
$startsWith: z.string()
|
|
1266
|
+
}),
|
|
1267
|
+
z.object({
|
|
1268
|
+
$ignoreCaseEquals: z.string()
|
|
1269
|
+
})
|
|
1270
|
+
];
|
|
1271
|
+
var EventMatcher = z.union([
|
|
1272
|
+
/** Match against a string */
|
|
1273
|
+
z.array(z.string()),
|
|
1274
|
+
/** Match against a number */
|
|
1275
|
+
z.array(z.number()),
|
|
1276
|
+
/** Match against a boolean */
|
|
1277
|
+
z.array(z.boolean()),
|
|
1278
|
+
z.array(z.union([
|
|
1279
|
+
...stringPatternMatchers,
|
|
1280
|
+
z.object({
|
|
1281
|
+
$exists: z.boolean()
|
|
1282
|
+
}),
|
|
1283
|
+
z.object({
|
|
1284
|
+
$isNull: z.boolean()
|
|
1285
|
+
}),
|
|
1286
|
+
z.object({
|
|
1287
|
+
$anythingBut: z.union([
|
|
1288
|
+
z.string(),
|
|
1289
|
+
z.number(),
|
|
1290
|
+
z.boolean()
|
|
1291
|
+
])
|
|
1292
|
+
}),
|
|
1293
|
+
z.object({
|
|
1294
|
+
$anythingBut: z.union([
|
|
1295
|
+
z.array(z.string()),
|
|
1296
|
+
z.array(z.number()),
|
|
1297
|
+
z.array(z.boolean())
|
|
1298
|
+
])
|
|
1299
|
+
}),
|
|
1300
|
+
z.object({
|
|
1301
|
+
$gt: z.number()
|
|
1302
|
+
}),
|
|
1303
|
+
z.object({
|
|
1304
|
+
$lt: z.number()
|
|
1305
|
+
}),
|
|
1306
|
+
z.object({
|
|
1307
|
+
$gte: z.number()
|
|
1308
|
+
}),
|
|
1309
|
+
z.object({
|
|
1310
|
+
$lte: z.number()
|
|
1311
|
+
}),
|
|
1312
|
+
z.object({
|
|
1313
|
+
$between: z.tuple([
|
|
1314
|
+
z.number(),
|
|
1315
|
+
z.number()
|
|
1316
|
+
])
|
|
1317
|
+
}),
|
|
1318
|
+
z.object({
|
|
1319
|
+
$includes: z.union([
|
|
1320
|
+
z.string(),
|
|
1321
|
+
z.number(),
|
|
1322
|
+
z.boolean()
|
|
1323
|
+
])
|
|
1324
|
+
}),
|
|
1325
|
+
z.object({
|
|
1326
|
+
$not: z.union([
|
|
1327
|
+
z.string(),
|
|
1328
|
+
z.number(),
|
|
1329
|
+
z.boolean()
|
|
1330
|
+
])
|
|
1331
|
+
})
|
|
1332
|
+
]))
|
|
1333
|
+
]);
|
|
1334
|
+
var EventFilter = z.lazy(() => z.record(z.union([
|
|
1335
|
+
EventMatcher,
|
|
1336
|
+
EventFilter
|
|
1337
|
+
])));
|
|
1338
|
+
|
|
1339
|
+
// src/v3/schemas/fetch.ts
|
|
1340
|
+
var FetchRetryHeadersStrategy = z.object({
|
|
1341
|
+
/** The `headers` strategy retries the request using info from the response headers. */
|
|
1342
|
+
strategy: z.literal("headers"),
|
|
1343
|
+
/** The header to use to determine the maximum number of times to retry the request. */
|
|
1344
|
+
limitHeader: z.string(),
|
|
1345
|
+
/** The header to use to determine the number of remaining retries. */
|
|
1346
|
+
remainingHeader: z.string(),
|
|
1347
|
+
/** The header to use to determine the time when the number of remaining retries will be reset. */
|
|
1348
|
+
resetHeader: z.string(),
|
|
1349
|
+
/** The event filter to use to determine if the request should be retried. */
|
|
1350
|
+
bodyFilter: EventFilter.optional(),
|
|
1351
|
+
/** The format of the `resetHeader` value. */
|
|
1352
|
+
resetFormat: z.enum([
|
|
1353
|
+
"unix_timestamp",
|
|
1354
|
+
"unix_timestamp_in_ms",
|
|
1355
|
+
"iso_8601",
|
|
1356
|
+
"iso_8601_duration_openai_variant"
|
|
1357
|
+
]).default("unix_timestamp").optional()
|
|
1358
|
+
});
|
|
1359
|
+
var FetchRetryBackoffStrategy = RetryOptions.extend({
|
|
1360
|
+
/** The `backoff` strategy retries the request with an exponential backoff. */
|
|
1361
|
+
strategy: z.literal("backoff"),
|
|
1362
|
+
/** The event filter to use to determine if the request should be retried. */
|
|
1363
|
+
bodyFilter: EventFilter.optional()
|
|
1364
|
+
});
|
|
1365
|
+
var FetchRetryStrategy = z.discriminatedUnion("strategy", [
|
|
1366
|
+
FetchRetryHeadersStrategy,
|
|
1367
|
+
FetchRetryBackoffStrategy
|
|
1368
|
+
]);
|
|
1369
|
+
var FetchRetryByStatusOptions = z.record(z.string(), FetchRetryStrategy);
|
|
1370
|
+
var FetchTimeoutOptions = z.object({
|
|
1371
|
+
/** The maximum time to wait for the request to complete. */
|
|
1372
|
+
durationInMs: z.number().optional(),
|
|
1373
|
+
retry: RetryOptions.optional()
|
|
1374
|
+
});
|
|
1375
|
+
var FetchRetryOptions = z.object({
|
|
1376
|
+
/** The retrying strategy for specific status codes. */
|
|
1377
|
+
byStatus: FetchRetryByStatusOptions.optional(),
|
|
1378
|
+
/** The timeout options for the request. */
|
|
1379
|
+
timeout: RetryOptions.optional(),
|
|
1380
|
+
/**
|
|
1381
|
+
* The retrying strategy for connection errors.
|
|
1382
|
+
*/
|
|
1383
|
+
connectionError: RetryOptions.optional()
|
|
1384
|
+
});
|
|
1385
|
+
var ExceptionEventProperties = z.object({
|
|
1386
|
+
type: z.string().optional(),
|
|
1387
|
+
message: z.string().optional(),
|
|
1388
|
+
stacktrace: z.string().optional()
|
|
1389
|
+
});
|
|
1390
|
+
var ExceptionSpanEvent = z.object({
|
|
1391
|
+
name: z.literal("exception"),
|
|
1392
|
+
time: z.coerce.date(),
|
|
1393
|
+
properties: z.object({
|
|
1394
|
+
exception: ExceptionEventProperties
|
|
1395
|
+
})
|
|
1396
|
+
});
|
|
1397
|
+
var CancellationSpanEvent = z.object({
|
|
1398
|
+
name: z.literal("cancellation"),
|
|
1399
|
+
time: z.coerce.date(),
|
|
1400
|
+
properties: z.object({
|
|
1401
|
+
reason: z.string()
|
|
1402
|
+
})
|
|
1403
|
+
});
|
|
1404
|
+
var OtherSpanEvent = z.object({
|
|
1405
|
+
name: z.string(),
|
|
1406
|
+
time: z.coerce.date(),
|
|
1407
|
+
properties: z.record(z.unknown())
|
|
1408
|
+
});
|
|
1409
|
+
var SpanEvent = z.union([
|
|
1410
|
+
ExceptionSpanEvent,
|
|
1411
|
+
CancellationSpanEvent,
|
|
1412
|
+
OtherSpanEvent
|
|
1413
|
+
]);
|
|
1414
|
+
var SpanEvents = z.array(SpanEvent);
|
|
1415
|
+
function isExceptionSpanEvent(event) {
|
|
1416
|
+
return event.name === "exception";
|
|
1417
|
+
}
|
|
1418
|
+
__name(isExceptionSpanEvent, "isExceptionSpanEvent");
|
|
1419
|
+
function isCancellationSpanEvent(event) {
|
|
1420
|
+
return event.name === "cancellation";
|
|
1421
|
+
}
|
|
1422
|
+
__name(isCancellationSpanEvent, "isCancellationSpanEvent");
|
|
1423
|
+
var SpanMessagingEvent = z.object({
|
|
1424
|
+
system: z.string().optional(),
|
|
1425
|
+
client_id: z.string().optional(),
|
|
1426
|
+
operation: z.enum([
|
|
1427
|
+
"publish",
|
|
1428
|
+
"create",
|
|
1429
|
+
"receive",
|
|
1430
|
+
"deliver"
|
|
1431
|
+
]),
|
|
1432
|
+
message: z.any(),
|
|
1433
|
+
destination: z.string().optional()
|
|
1434
|
+
});
|
|
278
1435
|
|
|
279
1436
|
// src/zodfetch.ts
|
|
280
|
-
async function zodfetch(schema, url, requestInit) {
|
|
1437
|
+
async function zodfetch(schema, url, requestInit, options) {
|
|
1438
|
+
return await _doZodFetch(schema, url, requestInit, options);
|
|
1439
|
+
}
|
|
1440
|
+
__name(zodfetch, "zodfetch");
|
|
1441
|
+
async function _doZodFetch(schema, url, requestInit, options, attempt = 1) {
|
|
281
1442
|
try {
|
|
282
1443
|
const response = await fetch(url, requestInit);
|
|
283
1444
|
if ((!requestInit || requestInit.method === "GET") && response.status === 404) {
|
|
@@ -286,7 +1447,7 @@ async function zodfetch(schema, url, requestInit) {
|
|
|
286
1447
|
error: `404: ${response.statusText}`
|
|
287
1448
|
};
|
|
288
1449
|
}
|
|
289
|
-
if (response.status >= 400 && response.status < 500) {
|
|
1450
|
+
if (response.status >= 400 && response.status < 500 && response.status !== 429) {
|
|
290
1451
|
const body = await response.json();
|
|
291
1452
|
if (!body.error) {
|
|
292
1453
|
return {
|
|
@@ -299,6 +1460,27 @@ async function zodfetch(schema, url, requestInit) {
|
|
|
299
1460
|
error: body.error
|
|
300
1461
|
};
|
|
301
1462
|
}
|
|
1463
|
+
if (response.status === 429 || response.status >= 500) {
|
|
1464
|
+
if (!options?.retry) {
|
|
1465
|
+
return {
|
|
1466
|
+
ok: false,
|
|
1467
|
+
error: `Failed to fetch ${url}, got status code ${response.status}`
|
|
1468
|
+
};
|
|
1469
|
+
}
|
|
1470
|
+
const retry = {
|
|
1471
|
+
...defaultRetryOptions,
|
|
1472
|
+
...options.retry
|
|
1473
|
+
};
|
|
1474
|
+
if (attempt > retry.maxAttempts) {
|
|
1475
|
+
return {
|
|
1476
|
+
ok: false,
|
|
1477
|
+
error: `Failed to fetch ${url}, got status code ${response.status}`
|
|
1478
|
+
};
|
|
1479
|
+
}
|
|
1480
|
+
const delay = calculateNextRetryDelay(retry, attempt);
|
|
1481
|
+
await new Promise((resolve) => setTimeout(resolve, delay));
|
|
1482
|
+
return await _doZodFetch(schema, url, requestInit, options, attempt + 1);
|
|
1483
|
+
}
|
|
302
1484
|
if (response.status !== 200) {
|
|
303
1485
|
return {
|
|
304
1486
|
ok: false,
|
|
@@ -324,31 +1506,45 @@ async function zodfetch(schema, url, requestInit) {
|
|
|
324
1506
|
error: parsedResult.error.message
|
|
325
1507
|
};
|
|
326
1508
|
} catch (error) {
|
|
1509
|
+
if (options?.retry) {
|
|
1510
|
+
const retry = {
|
|
1511
|
+
...defaultRetryOptions,
|
|
1512
|
+
...options.retry
|
|
1513
|
+
};
|
|
1514
|
+
if (attempt > retry.maxAttempts) {
|
|
1515
|
+
return {
|
|
1516
|
+
ok: false,
|
|
1517
|
+
error: error instanceof Error ? error.message : JSON.stringify(error)
|
|
1518
|
+
};
|
|
1519
|
+
}
|
|
1520
|
+
const delay = calculateNextRetryDelay(retry, attempt);
|
|
1521
|
+
await new Promise((resolve) => setTimeout(resolve, delay));
|
|
1522
|
+
return await _doZodFetch(schema, url, requestInit, options, attempt + 1);
|
|
1523
|
+
}
|
|
327
1524
|
return {
|
|
328
1525
|
ok: false,
|
|
329
1526
|
error: error instanceof Error ? error.message : JSON.stringify(error)
|
|
330
1527
|
};
|
|
331
1528
|
}
|
|
332
1529
|
}
|
|
333
|
-
__name(
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
1530
|
+
__name(_doZodFetch, "_doZodFetch");
|
|
1531
|
+
|
|
1532
|
+
// src/v3/utils/flattenAttributes.ts
|
|
1533
|
+
function flattenAttributes(obj, prefix) {
|
|
1534
|
+
const result = {};
|
|
1535
|
+
if (!obj) {
|
|
1536
|
+
return result;
|
|
337
1537
|
}
|
|
338
|
-
|
|
339
|
-
|
|
1538
|
+
if (typeof obj === "string") {
|
|
1539
|
+
result[prefix || ""] = obj;
|
|
1540
|
+
return result;
|
|
340
1541
|
}
|
|
341
|
-
|
|
342
|
-
|
|
1542
|
+
if (typeof obj === "number") {
|
|
1543
|
+
result[prefix || ""] = obj;
|
|
1544
|
+
return result;
|
|
343
1545
|
}
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
var SafeAsyncLocalStorage = _SafeAsyncLocalStorage;
|
|
347
|
-
|
|
348
|
-
// src/v3/utils/flattenAttributes.ts
|
|
349
|
-
function flattenAttributes(obj, prefix) {
|
|
350
|
-
const result = {};
|
|
351
|
-
if (obj == null) {
|
|
1546
|
+
if (typeof obj === "boolean") {
|
|
1547
|
+
result[prefix || ""] = obj;
|
|
352
1548
|
return result;
|
|
353
1549
|
}
|
|
354
1550
|
for (const [key, value] of Object.entries(obj)) {
|
|
@@ -356,9 +1552,9 @@ function flattenAttributes(obj, prefix) {
|
|
|
356
1552
|
if (Array.isArray(value)) {
|
|
357
1553
|
for (let i = 0; i < value.length; i++) {
|
|
358
1554
|
if (typeof value[i] === "object" && value[i] !== null) {
|
|
359
|
-
Object.assign(result, flattenAttributes(value[i], `${newPrefix}
|
|
1555
|
+
Object.assign(result, flattenAttributes(value[i], `${newPrefix}.[${i}]`));
|
|
360
1556
|
} else {
|
|
361
|
-
result[`${newPrefix}
|
|
1557
|
+
result[`${newPrefix}.[${i}]`] = value[i];
|
|
362
1558
|
}
|
|
363
1559
|
}
|
|
364
1560
|
} else if (isRecord(value)) {
|
|
@@ -376,6 +1572,115 @@ function isRecord(value) {
|
|
|
376
1572
|
return value !== null && typeof value === "object" && !Array.isArray(value);
|
|
377
1573
|
}
|
|
378
1574
|
__name(isRecord, "isRecord");
|
|
1575
|
+
function unflattenAttributes(obj) {
|
|
1576
|
+
if (typeof obj !== "object" || obj === null || Array.isArray(obj)) {
|
|
1577
|
+
return obj;
|
|
1578
|
+
}
|
|
1579
|
+
const result = {};
|
|
1580
|
+
for (const [key, value] of Object.entries(obj)) {
|
|
1581
|
+
const parts = key.split(".").reduce((acc, part) => {
|
|
1582
|
+
if (detectIsArrayIndex(part)) {
|
|
1583
|
+
acc.push(part);
|
|
1584
|
+
} else {
|
|
1585
|
+
acc.push(...part.split(/\.\[(.*?)\]/).filter(Boolean));
|
|
1586
|
+
}
|
|
1587
|
+
return acc;
|
|
1588
|
+
}, []);
|
|
1589
|
+
let current = result;
|
|
1590
|
+
for (let i = 0; i < parts.length - 1; i++) {
|
|
1591
|
+
const part = parts[i];
|
|
1592
|
+
const isArray = detectIsArrayIndex(part);
|
|
1593
|
+
const cleanPart = isArray ? part.substring(1, part.length - 1) : part;
|
|
1594
|
+
const nextIsArray = detectIsArrayIndex(parts[i + 1]);
|
|
1595
|
+
if (!current[cleanPart]) {
|
|
1596
|
+
current[cleanPart] = nextIsArray ? [] : {};
|
|
1597
|
+
}
|
|
1598
|
+
current = current[cleanPart];
|
|
1599
|
+
}
|
|
1600
|
+
const lastPart = parts[parts.length - 1];
|
|
1601
|
+
const cleanLastPart = detectIsArrayIndex(lastPart) ? parseInt(lastPart.substring(1, lastPart.length - 1), 10) : lastPart;
|
|
1602
|
+
current[cleanLastPart] = value;
|
|
1603
|
+
}
|
|
1604
|
+
return result;
|
|
1605
|
+
}
|
|
1606
|
+
__name(unflattenAttributes, "unflattenAttributes");
|
|
1607
|
+
function detectIsArrayIndex(key) {
|
|
1608
|
+
const match = key.match(/^\[(\d+)\]$/);
|
|
1609
|
+
if (match) {
|
|
1610
|
+
return true;
|
|
1611
|
+
}
|
|
1612
|
+
return false;
|
|
1613
|
+
}
|
|
1614
|
+
__name(detectIsArrayIndex, "detectIsArrayIndex");
|
|
1615
|
+
function primitiveValueOrflattenedAttributes(obj, prefix) {
|
|
1616
|
+
if (typeof obj === "string" || typeof obj === "number" || typeof obj === "boolean" || obj === null || obj === void 0) {
|
|
1617
|
+
return obj;
|
|
1618
|
+
}
|
|
1619
|
+
const attributes = flattenAttributes(obj, prefix);
|
|
1620
|
+
if (prefix !== void 0 && typeof attributes[prefix] !== "undefined" && attributes[prefix] !== null) {
|
|
1621
|
+
return attributes[prefix];
|
|
1622
|
+
}
|
|
1623
|
+
return attributes;
|
|
1624
|
+
}
|
|
1625
|
+
__name(primitiveValueOrflattenedAttributes, "primitiveValueOrflattenedAttributes");
|
|
1626
|
+
var _SafeAsyncLocalStorage = class _SafeAsyncLocalStorage {
|
|
1627
|
+
constructor() {
|
|
1628
|
+
this.storage = new AsyncLocalStorage();
|
|
1629
|
+
}
|
|
1630
|
+
runWith(context3, fn) {
|
|
1631
|
+
return this.storage.run(context3, fn);
|
|
1632
|
+
}
|
|
1633
|
+
getStore() {
|
|
1634
|
+
return this.storage.getStore();
|
|
1635
|
+
}
|
|
1636
|
+
};
|
|
1637
|
+
__name(_SafeAsyncLocalStorage, "SafeAsyncLocalStorage");
|
|
1638
|
+
var SafeAsyncLocalStorage = _SafeAsyncLocalStorage;
|
|
1639
|
+
|
|
1640
|
+
// src/v3/semanticInternalAttributes.ts
|
|
1641
|
+
var SemanticInternalAttributes = {
|
|
1642
|
+
ENVIRONMENT_ID: "ctx.environment.id",
|
|
1643
|
+
ENVIRONMENT_TYPE: "ctx.environment.type",
|
|
1644
|
+
ORGANIZATION_ID: "ctx.organization.id",
|
|
1645
|
+
ORGANIZATION_SLUG: "ctx.organization.slug",
|
|
1646
|
+
ORGANIZATION_NAME: "ctx.organization.name",
|
|
1647
|
+
PROJECT_ID: "ctx.project.id",
|
|
1648
|
+
PROJECT_REF: "ctx.project.ref",
|
|
1649
|
+
PROJECT_NAME: "ctx.project.title",
|
|
1650
|
+
PROJECT_DIR: "project.dir",
|
|
1651
|
+
ATTEMPT_ID: "ctx.attempt.id",
|
|
1652
|
+
ATTEMPT_NUMBER: "ctx.attempt.number",
|
|
1653
|
+
RUN_ID: "ctx.run.id",
|
|
1654
|
+
RUN_IS_TEST: "ctx.run.isTest",
|
|
1655
|
+
BATCH_ID: "ctx.batch.id",
|
|
1656
|
+
TASK_SLUG: "ctx.task.id",
|
|
1657
|
+
TASK_PATH: "ctx.task.filePath",
|
|
1658
|
+
TASK_EXPORT_NAME: "ctx.task.exportName",
|
|
1659
|
+
QUEUE_NAME: "ctx.queue.name",
|
|
1660
|
+
QUEUE_ID: "ctx.queue.id",
|
|
1661
|
+
SPAN_PARTIAL: "$span.partial",
|
|
1662
|
+
SPAN_ID: "$span.span_id",
|
|
1663
|
+
OUTPUT: "$output",
|
|
1664
|
+
OUTPUT_TYPE: "$mime_type_output",
|
|
1665
|
+
STYLE: "$style",
|
|
1666
|
+
STYLE_ICON: "$style.icon",
|
|
1667
|
+
STYLE_VARIANT: "$style.variant",
|
|
1668
|
+
STYLE_ACCESSORY: "$style.accessory",
|
|
1669
|
+
METADATA: "$metadata",
|
|
1670
|
+
TRIGGER: "$trigger",
|
|
1671
|
+
PAYLOAD: "$payload",
|
|
1672
|
+
PAYLOAD_TYPE: "$mime_type_payload",
|
|
1673
|
+
SHOW: "$show",
|
|
1674
|
+
SHOW_ACTIONS: "$show.actions",
|
|
1675
|
+
WORKER_ID: "worker.id",
|
|
1676
|
+
WORKER_VERSION: "worker.version",
|
|
1677
|
+
CLI_VERSION: "cli.version",
|
|
1678
|
+
SDK_VERSION: "sdk.version",
|
|
1679
|
+
SDK_LANGUAGE: "sdk.language",
|
|
1680
|
+
RETRY_AT: "retry.at",
|
|
1681
|
+
RETRY_DELAY: "retry.delay",
|
|
1682
|
+
RETRY_COUNT: "retry.count"
|
|
1683
|
+
};
|
|
379
1684
|
|
|
380
1685
|
// src/v3/tasks/taskContextManager.ts
|
|
381
1686
|
var _getStore, getStore_fn;
|
|
@@ -391,10 +1696,6 @@ var _TaskContextManager = class _TaskContextManager {
|
|
|
391
1696
|
const store = __privateMethod(this, _getStore, getStore_fn).call(this);
|
|
392
1697
|
return store?.ctx;
|
|
393
1698
|
}
|
|
394
|
-
get payload() {
|
|
395
|
-
const store = __privateMethod(this, _getStore, getStore_fn).call(this);
|
|
396
|
-
return store?.payload;
|
|
397
|
-
}
|
|
398
1699
|
get worker() {
|
|
399
1700
|
const store = __privateMethod(this, _getStore, getStore_fn).call(this);
|
|
400
1701
|
return store?.worker;
|
|
@@ -402,10 +1703,42 @@ var _TaskContextManager = class _TaskContextManager {
|
|
|
402
1703
|
get attributes() {
|
|
403
1704
|
if (this.ctx) {
|
|
404
1705
|
return {
|
|
405
|
-
...
|
|
406
|
-
...
|
|
407
|
-
|
|
408
|
-
|
|
1706
|
+
...this.contextAttributes,
|
|
1707
|
+
...this.workerAttributes
|
|
1708
|
+
};
|
|
1709
|
+
}
|
|
1710
|
+
return {};
|
|
1711
|
+
}
|
|
1712
|
+
get workerAttributes() {
|
|
1713
|
+
if (this.worker) {
|
|
1714
|
+
return {
|
|
1715
|
+
[SemanticInternalAttributes.WORKER_ID]: this.worker.id,
|
|
1716
|
+
[SemanticInternalAttributes.WORKER_VERSION]: this.worker.version
|
|
1717
|
+
};
|
|
1718
|
+
}
|
|
1719
|
+
return {};
|
|
1720
|
+
}
|
|
1721
|
+
get contextAttributes() {
|
|
1722
|
+
if (this.ctx) {
|
|
1723
|
+
return {
|
|
1724
|
+
[SemanticInternalAttributes.ATTEMPT_ID]: this.ctx.attempt.id,
|
|
1725
|
+
[SemanticInternalAttributes.ATTEMPT_NUMBER]: this.ctx.attempt.number,
|
|
1726
|
+
[SemanticInternalAttributes.TASK_SLUG]: this.ctx.task.id,
|
|
1727
|
+
[SemanticInternalAttributes.TASK_PATH]: this.ctx.task.filePath,
|
|
1728
|
+
[SemanticInternalAttributes.TASK_EXPORT_NAME]: this.ctx.task.exportName,
|
|
1729
|
+
[SemanticInternalAttributes.QUEUE_NAME]: this.ctx.queue.name,
|
|
1730
|
+
[SemanticInternalAttributes.QUEUE_ID]: this.ctx.queue.id,
|
|
1731
|
+
[SemanticInternalAttributes.ENVIRONMENT_ID]: this.ctx.environment.id,
|
|
1732
|
+
[SemanticInternalAttributes.ENVIRONMENT_TYPE]: this.ctx.environment.type,
|
|
1733
|
+
[SemanticInternalAttributes.ORGANIZATION_ID]: this.ctx.organization.id,
|
|
1734
|
+
[SemanticInternalAttributes.PROJECT_ID]: this.ctx.project.id,
|
|
1735
|
+
[SemanticInternalAttributes.PROJECT_REF]: this.ctx.project.ref,
|
|
1736
|
+
[SemanticInternalAttributes.PROJECT_NAME]: this.ctx.project.name,
|
|
1737
|
+
[SemanticInternalAttributes.RUN_ID]: this.ctx.run.id,
|
|
1738
|
+
[SemanticInternalAttributes.RUN_IS_TEST]: this.ctx.run.isTest,
|
|
1739
|
+
[SemanticInternalAttributes.ORGANIZATION_SLUG]: this.ctx.organization.slug,
|
|
1740
|
+
[SemanticInternalAttributes.ORGANIZATION_NAME]: this.ctx.organization.name,
|
|
1741
|
+
[SemanticInternalAttributes.BATCH_ID]: this.ctx.batch?.id
|
|
409
1742
|
};
|
|
410
1743
|
}
|
|
411
1744
|
return {};
|
|
@@ -421,37 +1754,165 @@ getStore_fn = /* @__PURE__ */ __name(function() {
|
|
|
421
1754
|
__name(_TaskContextManager, "TaskContextManager");
|
|
422
1755
|
var TaskContextManager = _TaskContextManager;
|
|
423
1756
|
var taskContextManager = new TaskContextManager();
|
|
1757
|
+
var _TaskContextSpanProcessor = class _TaskContextSpanProcessor {
|
|
1758
|
+
constructor(innerProcessor) {
|
|
1759
|
+
this._innerProcessor = innerProcessor;
|
|
1760
|
+
}
|
|
1761
|
+
// Called when a span starts
|
|
1762
|
+
onStart(span, parentContext) {
|
|
1763
|
+
if (taskContextManager.ctx) {
|
|
1764
|
+
span.setAttributes(flattenAttributes({
|
|
1765
|
+
[SemanticInternalAttributes.ATTEMPT_ID]: taskContextManager.ctx.attempt.id,
|
|
1766
|
+
[SemanticInternalAttributes.ATTEMPT_NUMBER]: taskContextManager.ctx.attempt.number
|
|
1767
|
+
}, SemanticInternalAttributes.METADATA));
|
|
1768
|
+
}
|
|
1769
|
+
this._innerProcessor.onStart(span, parentContext);
|
|
1770
|
+
}
|
|
1771
|
+
// Delegate the rest of the methods to the wrapped processor
|
|
1772
|
+
onEnd(span) {
|
|
1773
|
+
this._innerProcessor.onEnd(span);
|
|
1774
|
+
}
|
|
1775
|
+
shutdown() {
|
|
1776
|
+
return this._innerProcessor.shutdown();
|
|
1777
|
+
}
|
|
1778
|
+
forceFlush() {
|
|
1779
|
+
return this._innerProcessor.forceFlush();
|
|
1780
|
+
}
|
|
1781
|
+
};
|
|
1782
|
+
__name(_TaskContextSpanProcessor, "TaskContextSpanProcessor");
|
|
1783
|
+
var TaskContextSpanProcessor = _TaskContextSpanProcessor;
|
|
1784
|
+
var _TaskContextLogProcessor = class _TaskContextLogProcessor {
|
|
1785
|
+
constructor(innerProcessor) {
|
|
1786
|
+
this._innerProcessor = innerProcessor;
|
|
1787
|
+
}
|
|
1788
|
+
forceFlush() {
|
|
1789
|
+
return this._innerProcessor.forceFlush();
|
|
1790
|
+
}
|
|
1791
|
+
onEmit(logRecord, context3) {
|
|
1792
|
+
if (taskContextManager.ctx) {
|
|
1793
|
+
logRecord.setAttributes(flattenAttributes({
|
|
1794
|
+
[SemanticInternalAttributes.ATTEMPT_ID]: taskContextManager.ctx.attempt.id,
|
|
1795
|
+
[SemanticInternalAttributes.ATTEMPT_NUMBER]: taskContextManager.ctx.attempt.number
|
|
1796
|
+
}, SemanticInternalAttributes.METADATA));
|
|
1797
|
+
}
|
|
1798
|
+
this._innerProcessor.onEmit(logRecord, context3);
|
|
1799
|
+
}
|
|
1800
|
+
shutdown() {
|
|
1801
|
+
return this._innerProcessor.shutdown();
|
|
1802
|
+
}
|
|
1803
|
+
};
|
|
1804
|
+
__name(_TaskContextLogProcessor, "TaskContextLogProcessor");
|
|
1805
|
+
var TaskContextLogProcessor = _TaskContextLogProcessor;
|
|
1806
|
+
|
|
1807
|
+
// src/v3/utils/getEnv.ts
|
|
1808
|
+
function getEnvVar(name) {
|
|
1809
|
+
if (typeof process !== "undefined" && typeof process.env === "object" && process.env !== null) {
|
|
1810
|
+
return process.env[name];
|
|
1811
|
+
}
|
|
1812
|
+
}
|
|
1813
|
+
__name(getEnvVar, "getEnvVar");
|
|
424
1814
|
|
|
425
1815
|
// src/v3/apiClient/index.ts
|
|
1816
|
+
var zodFetchOptions = {
|
|
1817
|
+
retry: {
|
|
1818
|
+
maxAttempts: 5,
|
|
1819
|
+
minTimeoutInMs: 1e3,
|
|
1820
|
+
maxTimeoutInMs: 3e4,
|
|
1821
|
+
factor: 2,
|
|
1822
|
+
randomize: false
|
|
1823
|
+
}
|
|
1824
|
+
};
|
|
426
1825
|
var _getHeaders, getHeaders_fn;
|
|
427
1826
|
var _ApiClient = class _ApiClient {
|
|
428
1827
|
constructor(baseUrl, accessToken) {
|
|
429
1828
|
__privateAdd(this, _getHeaders);
|
|
430
|
-
this.baseUrl = baseUrl;
|
|
431
1829
|
this.accessToken = accessToken;
|
|
1830
|
+
this.baseUrl = baseUrl.replace(/\/$/, "");
|
|
432
1831
|
}
|
|
433
|
-
triggerTask(taskId, options) {
|
|
1832
|
+
triggerTask(taskId, body, options) {
|
|
434
1833
|
return zodfetch(TriggerTaskResponse, `${this.baseUrl}/api/v1/tasks/${taskId}/trigger`, {
|
|
435
1834
|
method: "POST",
|
|
436
|
-
headers: __privateMethod(this, _getHeaders, getHeaders_fn).call(this),
|
|
437
|
-
body: JSON.stringify(
|
|
438
|
-
});
|
|
1835
|
+
headers: __privateMethod(this, _getHeaders, getHeaders_fn).call(this, options?.spanParentAsLink ?? false),
|
|
1836
|
+
body: JSON.stringify(body)
|
|
1837
|
+
}, zodFetchOptions);
|
|
1838
|
+
}
|
|
1839
|
+
batchTriggerTask(taskId, body, options) {
|
|
1840
|
+
return zodfetch(BatchTriggerTaskResponse, `${this.baseUrl}/api/v1/tasks/${taskId}/batch`, {
|
|
1841
|
+
method: "POST",
|
|
1842
|
+
headers: __privateMethod(this, _getHeaders, getHeaders_fn).call(this, options?.spanParentAsLink ?? false),
|
|
1843
|
+
body: JSON.stringify(body)
|
|
1844
|
+
}, zodFetchOptions);
|
|
1845
|
+
}
|
|
1846
|
+
createUploadPayloadUrl(filename) {
|
|
1847
|
+
return zodfetch(CreateUploadPayloadUrlResponseBody, `${this.baseUrl}/api/v1/packets/${filename}`, {
|
|
1848
|
+
method: "PUT",
|
|
1849
|
+
headers: __privateMethod(this, _getHeaders, getHeaders_fn).call(this, false)
|
|
1850
|
+
}, zodFetchOptions);
|
|
1851
|
+
}
|
|
1852
|
+
getPayloadUrl(filename) {
|
|
1853
|
+
return zodfetch(CreateUploadPayloadUrlResponseBody, `${this.baseUrl}/api/v1/packets/${filename}`, {
|
|
1854
|
+
method: "GET",
|
|
1855
|
+
headers: __privateMethod(this, _getHeaders, getHeaders_fn).call(this, false)
|
|
1856
|
+
}, zodFetchOptions);
|
|
439
1857
|
}
|
|
440
1858
|
};
|
|
441
1859
|
_getHeaders = new WeakSet();
|
|
442
|
-
getHeaders_fn = /* @__PURE__ */ __name(function() {
|
|
1860
|
+
getHeaders_fn = /* @__PURE__ */ __name(function(spanParentAsLink) {
|
|
443
1861
|
const headers = {
|
|
444
1862
|
"Content-Type": "application/json",
|
|
445
1863
|
Authorization: `Bearer ${this.accessToken}`
|
|
446
1864
|
};
|
|
447
1865
|
if (taskContextManager.isInsideTask) {
|
|
448
1866
|
propagation.inject(context.active(), headers);
|
|
1867
|
+
if (spanParentAsLink) {
|
|
1868
|
+
headers["x-trigger-span-parent-as-link"] = "1";
|
|
1869
|
+
}
|
|
449
1870
|
}
|
|
450
1871
|
return headers;
|
|
451
1872
|
}, "#getHeaders");
|
|
452
1873
|
__name(_ApiClient, "ApiClient");
|
|
453
1874
|
var ApiClient = _ApiClient;
|
|
454
|
-
var
|
|
1875
|
+
var _getStore2, getStore_fn2;
|
|
1876
|
+
var _ApiClientManager = class _ApiClientManager {
|
|
1877
|
+
constructor() {
|
|
1878
|
+
__privateAdd(this, _getStore2);
|
|
1879
|
+
__publicField(this, "_storage", new SafeAsyncLocalStorage());
|
|
1880
|
+
}
|
|
1881
|
+
get baseURL() {
|
|
1882
|
+
const store = __privateMethod(this, _getStore2, getStore_fn2).call(this);
|
|
1883
|
+
return store?.baseURL ?? getEnvVar("TRIGGER_API_URL") ?? "https://api.trigger.dev";
|
|
1884
|
+
}
|
|
1885
|
+
get accessToken() {
|
|
1886
|
+
const store = __privateMethod(this, _getStore2, getStore_fn2).call(this);
|
|
1887
|
+
return store?.accessToken ?? getEnvVar("TRIGGER_SECRET_KEY");
|
|
1888
|
+
}
|
|
1889
|
+
get client() {
|
|
1890
|
+
if (!this.baseURL || !this.accessToken) {
|
|
1891
|
+
return void 0;
|
|
1892
|
+
}
|
|
1893
|
+
return new ApiClient(this.baseURL, this.accessToken);
|
|
1894
|
+
}
|
|
1895
|
+
runWith(context3, fn) {
|
|
1896
|
+
return this._storage.runWith(context3, fn);
|
|
1897
|
+
}
|
|
1898
|
+
};
|
|
1899
|
+
_getStore2 = new WeakSet();
|
|
1900
|
+
getStore_fn2 = /* @__PURE__ */ __name(function() {
|
|
1901
|
+
return this._storage.getStore();
|
|
1902
|
+
}, "#getStore");
|
|
1903
|
+
__name(_ApiClientManager, "ApiClientManager");
|
|
1904
|
+
var ApiClientManager = _ApiClientManager;
|
|
1905
|
+
var apiClientManager = new ApiClientManager();
|
|
1906
|
+
var _ZodSchemaParsedError = class _ZodSchemaParsedError extends Error {
|
|
1907
|
+
constructor(error, payload) {
|
|
1908
|
+
super(error.message);
|
|
1909
|
+
this.error = error;
|
|
1910
|
+
this.payload = payload;
|
|
1911
|
+
}
|
|
1912
|
+
};
|
|
1913
|
+
__name(_ZodSchemaParsedError, "ZodSchemaParsedError");
|
|
1914
|
+
var ZodSchemaParsedError = _ZodSchemaParsedError;
|
|
1915
|
+
var ZodMessageSchema = z.object({
|
|
455
1916
|
version: z.literal("v1").default("v1"),
|
|
456
1917
|
type: z.string(),
|
|
457
1918
|
payload: z.unknown()
|
|
@@ -471,12 +1932,14 @@ var _ZodMessageHandler = class _ZodMessageHandler {
|
|
|
471
1932
|
}
|
|
472
1933
|
const handler = __privateGet(this, _handlers)[parsedMessage.type];
|
|
473
1934
|
if (!handler) {
|
|
474
|
-
|
|
1935
|
+
console.error(`No handler for message type: ${String(parsedMessage.type)}`);
|
|
1936
|
+
return;
|
|
475
1937
|
}
|
|
476
|
-
await handler(parsedMessage.payload);
|
|
1938
|
+
const ack = await handler(parsedMessage.payload);
|
|
1939
|
+
return ack;
|
|
477
1940
|
}
|
|
478
1941
|
parseMessage(message) {
|
|
479
|
-
const parsedMessage =
|
|
1942
|
+
const parsedMessage = ZodMessageSchema.safeParse(message);
|
|
480
1943
|
if (!parsedMessage.success) {
|
|
481
1944
|
throw new Error(`Failed to parse message: ${JSON.stringify(parsedMessage.error)}`);
|
|
482
1945
|
}
|
|
@@ -493,6 +1956,38 @@ var _ZodMessageHandler = class _ZodMessageHandler {
|
|
|
493
1956
|
payload: parsedPayload.data
|
|
494
1957
|
};
|
|
495
1958
|
}
|
|
1959
|
+
registerHandlers(emitter, logger2) {
|
|
1960
|
+
const log = logger2 ?? console;
|
|
1961
|
+
if (!__privateGet(this, _handlers)) {
|
|
1962
|
+
log.info("No handlers provided");
|
|
1963
|
+
return;
|
|
1964
|
+
}
|
|
1965
|
+
for (const eventName of Object.keys(__privateGet(this, _schema))) {
|
|
1966
|
+
emitter.on(eventName, async (message, callback) => {
|
|
1967
|
+
log.info(`handling ${eventName}`, {
|
|
1968
|
+
payload: message,
|
|
1969
|
+
hasCallback: !!callback
|
|
1970
|
+
});
|
|
1971
|
+
let ack;
|
|
1972
|
+
if ("payload" in message) {
|
|
1973
|
+
ack = await this.handleMessage({
|
|
1974
|
+
type: eventName,
|
|
1975
|
+
...message
|
|
1976
|
+
});
|
|
1977
|
+
} else {
|
|
1978
|
+
const { version, ...payload } = message;
|
|
1979
|
+
ack = await this.handleMessage({
|
|
1980
|
+
type: eventName,
|
|
1981
|
+
version,
|
|
1982
|
+
payload
|
|
1983
|
+
});
|
|
1984
|
+
}
|
|
1985
|
+
if (callback && typeof callback === "function") {
|
|
1986
|
+
callback(ack);
|
|
1987
|
+
}
|
|
1988
|
+
});
|
|
1989
|
+
}
|
|
1990
|
+
}
|
|
496
1991
|
};
|
|
497
1992
|
_schema = new WeakMap();
|
|
498
1993
|
_handlers = new WeakMap();
|
|
@@ -513,7 +2008,7 @@ var _ZodMessageSender = class _ZodMessageSender {
|
|
|
513
2008
|
}
|
|
514
2009
|
const parsedPayload = schema.safeParse(payload);
|
|
515
2010
|
if (!parsedPayload.success) {
|
|
516
|
-
throw new
|
|
2011
|
+
throw new ZodSchemaParsedError(parsedPayload.error, payload);
|
|
517
2012
|
}
|
|
518
2013
|
await __privateGet(this, _sender).call(this, {
|
|
519
2014
|
type,
|
|
@@ -521,80 +2016,745 @@ var _ZodMessageSender = class _ZodMessageSender {
|
|
|
521
2016
|
version: "v1"
|
|
522
2017
|
});
|
|
523
2018
|
}
|
|
2019
|
+
async forwardMessage(message) {
|
|
2020
|
+
const parsedMessage = ZodMessageSchema.safeParse(message);
|
|
2021
|
+
if (!parsedMessage.success) {
|
|
2022
|
+
throw new Error(`Failed to parse message: ${JSON.stringify(parsedMessage.error)}`);
|
|
2023
|
+
}
|
|
2024
|
+
const schema = __privateGet(this, _schema2)[parsedMessage.data.type];
|
|
2025
|
+
if (!schema) {
|
|
2026
|
+
throw new Error(`Unknown message type: ${parsedMessage.data.type}`);
|
|
2027
|
+
}
|
|
2028
|
+
const parsedPayload = schema.safeParse(parsedMessage.data.payload);
|
|
2029
|
+
if (!parsedPayload.success) {
|
|
2030
|
+
throw new Error(`Failed to parse message payload: ${JSON.stringify(parsedPayload.error)}`);
|
|
2031
|
+
}
|
|
2032
|
+
await __privateGet(this, _sender).call(this, {
|
|
2033
|
+
type: parsedMessage.data.type,
|
|
2034
|
+
payload: parsedPayload.data,
|
|
2035
|
+
version: "v1"
|
|
2036
|
+
});
|
|
2037
|
+
}
|
|
524
2038
|
};
|
|
525
2039
|
_schema2 = new WeakMap();
|
|
526
2040
|
_sender = new WeakMap();
|
|
527
2041
|
__name(_ZodMessageSender, "ZodMessageSender");
|
|
528
2042
|
var ZodMessageSender = _ZodMessageSender;
|
|
529
|
-
|
|
530
|
-
|
|
531
|
-
|
|
532
|
-
|
|
533
|
-
|
|
534
|
-
|
|
535
|
-
|
|
536
|
-
|
|
537
|
-
|
|
538
|
-
|
|
2043
|
+
var messageSchema = z.object({
|
|
2044
|
+
version: z.literal("v1").default("v1"),
|
|
2045
|
+
type: z.string(),
|
|
2046
|
+
payload: z.unknown()
|
|
2047
|
+
});
|
|
2048
|
+
var _schema3, _handlers2;
|
|
2049
|
+
var _ZodSocketMessageHandler = class _ZodSocketMessageHandler {
|
|
2050
|
+
constructor(options) {
|
|
2051
|
+
__privateAdd(this, _schema3, void 0);
|
|
2052
|
+
__privateAdd(this, _handlers2, void 0);
|
|
2053
|
+
__privateSet(this, _schema3, options.schema);
|
|
2054
|
+
__privateSet(this, _handlers2, options.handlers);
|
|
539
2055
|
}
|
|
540
|
-
|
|
541
|
-
|
|
542
|
-
|
|
543
|
-
|
|
544
|
-
}
|
|
2056
|
+
async handleMessage(message) {
|
|
2057
|
+
const parsedMessage = this.parseMessage(message);
|
|
2058
|
+
if (!__privateGet(this, _handlers2)) {
|
|
2059
|
+
throw new Error("No handlers provided");
|
|
2060
|
+
}
|
|
2061
|
+
const handler = __privateGet(this, _handlers2)[parsedMessage.type];
|
|
2062
|
+
if (!handler) {
|
|
2063
|
+
console.error(`No handler for message type: ${String(parsedMessage.type)}`);
|
|
2064
|
+
return;
|
|
2065
|
+
}
|
|
2066
|
+
const ack = await handler(parsedMessage.payload);
|
|
2067
|
+
return ack;
|
|
545
2068
|
}
|
|
546
|
-
|
|
547
|
-
|
|
548
|
-
|
|
549
|
-
|
|
550
|
-
}
|
|
551
|
-
|
|
2069
|
+
parseMessage(message) {
|
|
2070
|
+
const parsedMessage = messageSchema.safeParse(message);
|
|
2071
|
+
if (!parsedMessage.success) {
|
|
2072
|
+
throw new Error(`Failed to parse message: ${JSON.stringify(parsedMessage.error)}`);
|
|
2073
|
+
}
|
|
2074
|
+
const schema = __privateGet(this, _schema3)[parsedMessage.data.type]["message"];
|
|
2075
|
+
if (!schema) {
|
|
2076
|
+
throw new Error(`Unknown message type: ${parsedMessage.data.type}`);
|
|
2077
|
+
}
|
|
2078
|
+
const parsedPayload = schema.safeParse(parsedMessage.data.payload);
|
|
2079
|
+
if (!parsedPayload.success) {
|
|
2080
|
+
throw new Error(`Failed to parse message payload: ${JSON.stringify(parsedPayload.error)}`);
|
|
2081
|
+
}
|
|
552
2082
|
return {
|
|
553
|
-
type:
|
|
554
|
-
|
|
2083
|
+
type: parsedMessage.data.type,
|
|
2084
|
+
payload: parsedPayload.data
|
|
555
2085
|
};
|
|
556
2086
|
}
|
|
557
|
-
|
|
558
|
-
|
|
559
|
-
|
|
560
|
-
|
|
561
|
-
|
|
562
|
-
const e = new Error(error.message);
|
|
563
|
-
e.name = error.name;
|
|
564
|
-
e.stack = error.stackTrace;
|
|
565
|
-
return e;
|
|
2087
|
+
registerHandlers(emitter, logger2) {
|
|
2088
|
+
const log = logger2 ?? console;
|
|
2089
|
+
if (!__privateGet(this, _handlers2)) {
|
|
2090
|
+
log.info("No handlers provided");
|
|
2091
|
+
return;
|
|
566
2092
|
}
|
|
567
|
-
|
|
568
|
-
|
|
2093
|
+
for (const eventName of Object.keys(__privateGet(this, _handlers2))) {
|
|
2094
|
+
emitter.on(eventName, async (message, callback) => {
|
|
2095
|
+
log.info(`handling ${eventName}`, {
|
|
2096
|
+
payload: message,
|
|
2097
|
+
hasCallback: !!callback
|
|
2098
|
+
});
|
|
2099
|
+
let ack;
|
|
2100
|
+
try {
|
|
2101
|
+
if ("payload" in message) {
|
|
2102
|
+
ack = await this.handleMessage({
|
|
2103
|
+
type: eventName,
|
|
2104
|
+
...message
|
|
2105
|
+
});
|
|
2106
|
+
} else {
|
|
2107
|
+
const { version, ...payload } = message;
|
|
2108
|
+
ack = await this.handleMessage({
|
|
2109
|
+
type: eventName,
|
|
2110
|
+
version,
|
|
2111
|
+
payload
|
|
2112
|
+
});
|
|
2113
|
+
}
|
|
2114
|
+
} catch (error) {
|
|
2115
|
+
log.error("Error while handling message", {
|
|
2116
|
+
error
|
|
2117
|
+
});
|
|
2118
|
+
return;
|
|
2119
|
+
}
|
|
2120
|
+
if (callback && typeof callback === "function") {
|
|
2121
|
+
callback(ack);
|
|
2122
|
+
}
|
|
2123
|
+
});
|
|
569
2124
|
}
|
|
570
|
-
|
|
571
|
-
|
|
2125
|
+
}
|
|
2126
|
+
};
|
|
2127
|
+
_schema3 = new WeakMap();
|
|
2128
|
+
_handlers2 = new WeakMap();
|
|
2129
|
+
__name(_ZodSocketMessageHandler, "ZodSocketMessageHandler");
|
|
2130
|
+
var ZodSocketMessageHandler = _ZodSocketMessageHandler;
|
|
2131
|
+
var _schema4, _socket;
|
|
2132
|
+
var _ZodSocketMessageSender = class _ZodSocketMessageSender {
|
|
2133
|
+
constructor(options) {
|
|
2134
|
+
__privateAdd(this, _schema4, void 0);
|
|
2135
|
+
__privateAdd(this, _socket, void 0);
|
|
2136
|
+
__privateSet(this, _schema4, options.schema);
|
|
2137
|
+
__privateSet(this, _socket, options.socket);
|
|
2138
|
+
}
|
|
2139
|
+
send(type, payload) {
|
|
2140
|
+
const schema = __privateGet(this, _schema4)[type]["message"];
|
|
2141
|
+
if (!schema) {
|
|
2142
|
+
throw new Error(`Unknown message type: ${type}`);
|
|
572
2143
|
}
|
|
573
|
-
|
|
574
|
-
|
|
2144
|
+
const parsedPayload = schema.safeParse(payload);
|
|
2145
|
+
if (!parsedPayload.success) {
|
|
2146
|
+
throw new Error(`Failed to parse message payload: ${JSON.stringify(parsedPayload.error)}`);
|
|
575
2147
|
}
|
|
2148
|
+
__privateGet(this, _socket).emit(type, {
|
|
2149
|
+
payload,
|
|
2150
|
+
version: "v1"
|
|
2151
|
+
});
|
|
2152
|
+
return;
|
|
576
2153
|
}
|
|
577
|
-
|
|
578
|
-
|
|
579
|
-
|
|
580
|
-
|
|
581
|
-
|
|
582
|
-
|
|
583
|
-
|
|
584
|
-
|
|
585
|
-
|
|
586
|
-
|
|
587
|
-
|
|
588
|
-
|
|
589
|
-
|
|
2154
|
+
async sendWithAck(type, payload) {
|
|
2155
|
+
const schema = __privateGet(this, _schema4)[type]["message"];
|
|
2156
|
+
if (!schema) {
|
|
2157
|
+
throw new Error(`Unknown message type: ${type}`);
|
|
2158
|
+
}
|
|
2159
|
+
const parsedPayload = schema.safeParse(payload);
|
|
2160
|
+
if (!parsedPayload.success) {
|
|
2161
|
+
throw new Error(`Failed to parse message payload: ${JSON.stringify(parsedPayload.error)}`);
|
|
2162
|
+
}
|
|
2163
|
+
const callbackResult = await __privateGet(this, _socket).emitWithAck(type, {
|
|
2164
|
+
payload,
|
|
2165
|
+
version: "v1"
|
|
2166
|
+
});
|
|
2167
|
+
return callbackResult;
|
|
590
2168
|
}
|
|
591
|
-
|
|
592
|
-
|
|
593
|
-
|
|
594
|
-
__name(
|
|
595
|
-
|
|
596
|
-
|
|
597
|
-
|
|
2169
|
+
};
|
|
2170
|
+
_schema4 = new WeakMap();
|
|
2171
|
+
_socket = new WeakMap();
|
|
2172
|
+
__name(_ZodSocketMessageSender, "ZodSocketMessageSender");
|
|
2173
|
+
var ZodSocketMessageSender = _ZodSocketMessageSender;
|
|
2174
|
+
var _sender2, _handler, _logger;
|
|
2175
|
+
var _ZodSocketConnection = class _ZodSocketConnection {
|
|
2176
|
+
constructor(opts) {
|
|
2177
|
+
__privateAdd(this, _sender2, void 0);
|
|
2178
|
+
__privateAdd(this, _handler, void 0);
|
|
2179
|
+
__privateAdd(this, _logger, void 0);
|
|
2180
|
+
const uri = `${opts.secure ? "wss" : "ws"}://${opts.host}:${opts.port ?? (opts.secure ? "443" : "80")}/${opts.namespace}`;
|
|
2181
|
+
const logger2 = new SimpleStructuredLogger(opts.namespace, LogLevel.info);
|
|
2182
|
+
logger2.log("new zod socket", {
|
|
2183
|
+
uri
|
|
2184
|
+
});
|
|
2185
|
+
this.socket = io(uri, {
|
|
2186
|
+
transports: [
|
|
2187
|
+
"websocket"
|
|
2188
|
+
],
|
|
2189
|
+
auth: {
|
|
2190
|
+
token: opts.authToken
|
|
2191
|
+
},
|
|
2192
|
+
extraHeaders: opts.extraHeaders,
|
|
2193
|
+
reconnectionDelay: 500,
|
|
2194
|
+
reconnectionDelayMax: 1e3
|
|
2195
|
+
});
|
|
2196
|
+
__privateSet(this, _logger, logger2.child({
|
|
2197
|
+
socketId: this.socket.id
|
|
2198
|
+
}));
|
|
2199
|
+
__privateSet(this, _handler, new ZodSocketMessageHandler({
|
|
2200
|
+
schema: opts.serverMessages,
|
|
2201
|
+
handlers: opts.handlers
|
|
2202
|
+
}));
|
|
2203
|
+
__privateGet(this, _handler).registerHandlers(this.socket, __privateGet(this, _logger));
|
|
2204
|
+
__privateSet(this, _sender2, new ZodSocketMessageSender({
|
|
2205
|
+
schema: opts.clientMessages,
|
|
2206
|
+
socket: this.socket
|
|
2207
|
+
}));
|
|
2208
|
+
this.socket.on("connect_error", async (error) => {
|
|
2209
|
+
__privateGet(this, _logger).error(`connect_error: ${error}`);
|
|
2210
|
+
if (opts.onError) {
|
|
2211
|
+
await opts.onError(this.socket, error, __privateGet(this, _logger));
|
|
2212
|
+
}
|
|
2213
|
+
});
|
|
2214
|
+
this.socket.on("connect", async () => {
|
|
2215
|
+
__privateGet(this, _logger).info("connect");
|
|
2216
|
+
if (opts.onConnection) {
|
|
2217
|
+
await opts.onConnection(this.socket, __privateGet(this, _handler), __privateGet(this, _sender2), __privateGet(this, _logger));
|
|
2218
|
+
}
|
|
2219
|
+
});
|
|
2220
|
+
this.socket.on("disconnect", async (reason, description) => {
|
|
2221
|
+
__privateGet(this, _logger).info("disconnect", {
|
|
2222
|
+
reason,
|
|
2223
|
+
description
|
|
2224
|
+
});
|
|
2225
|
+
if (opts.onDisconnect) {
|
|
2226
|
+
await opts.onDisconnect(this.socket, reason, description, __privateGet(this, _logger));
|
|
2227
|
+
}
|
|
2228
|
+
});
|
|
2229
|
+
}
|
|
2230
|
+
close() {
|
|
2231
|
+
this.socket.close();
|
|
2232
|
+
}
|
|
2233
|
+
connect() {
|
|
2234
|
+
this.socket.connect();
|
|
2235
|
+
}
|
|
2236
|
+
get send() {
|
|
2237
|
+
return __privateGet(this, _sender2).send.bind(__privateGet(this, _sender2));
|
|
2238
|
+
}
|
|
2239
|
+
get sendWithAck() {
|
|
2240
|
+
return __privateGet(this, _sender2).sendWithAck.bind(__privateGet(this, _sender2));
|
|
2241
|
+
}
|
|
2242
|
+
};
|
|
2243
|
+
_sender2 = new WeakMap();
|
|
2244
|
+
_handler = new WeakMap();
|
|
2245
|
+
_logger = new WeakMap();
|
|
2246
|
+
__name(_ZodSocketConnection, "ZodSocketConnection");
|
|
2247
|
+
var ZodSocketConnection = _ZodSocketConnection;
|
|
2248
|
+
|
|
2249
|
+
// src/v3/zodNamespace.ts
|
|
2250
|
+
var LogLevel;
|
|
2251
|
+
(function(LogLevel2) {
|
|
2252
|
+
LogLevel2[LogLevel2["log"] = 0] = "log";
|
|
2253
|
+
LogLevel2[LogLevel2["error"] = 1] = "error";
|
|
2254
|
+
LogLevel2[LogLevel2["warn"] = 2] = "warn";
|
|
2255
|
+
LogLevel2[LogLevel2["info"] = 3] = "info";
|
|
2256
|
+
LogLevel2[LogLevel2["debug"] = 4] = "debug";
|
|
2257
|
+
})(LogLevel || (LogLevel = {}));
|
|
2258
|
+
var _structuredLog, structuredLog_fn;
|
|
2259
|
+
var _SimpleStructuredLogger = class _SimpleStructuredLogger {
|
|
2260
|
+
constructor(name, level = [
|
|
2261
|
+
"1",
|
|
2262
|
+
"true"
|
|
2263
|
+
].includes(process.env.DEBUG ?? "") ? LogLevel.debug : LogLevel.info, fields) {
|
|
2264
|
+
__privateAdd(this, _structuredLog);
|
|
2265
|
+
this.name = name;
|
|
2266
|
+
this.level = level;
|
|
2267
|
+
this.fields = fields;
|
|
2268
|
+
}
|
|
2269
|
+
child(fields, level) {
|
|
2270
|
+
return new _SimpleStructuredLogger(this.name, level, {
|
|
2271
|
+
...this.fields,
|
|
2272
|
+
...fields
|
|
2273
|
+
});
|
|
2274
|
+
}
|
|
2275
|
+
log(message, ...args) {
|
|
2276
|
+
if (this.level < LogLevel.log)
|
|
2277
|
+
return;
|
|
2278
|
+
__privateMethod(this, _structuredLog, structuredLog_fn).call(this, console.log, message, "log", ...args);
|
|
2279
|
+
}
|
|
2280
|
+
error(message, ...args) {
|
|
2281
|
+
if (this.level < LogLevel.error)
|
|
2282
|
+
return;
|
|
2283
|
+
__privateMethod(this, _structuredLog, structuredLog_fn).call(this, console.error, message, "error", ...args);
|
|
2284
|
+
}
|
|
2285
|
+
warn(message, ...args) {
|
|
2286
|
+
if (this.level < LogLevel.warn)
|
|
2287
|
+
return;
|
|
2288
|
+
__privateMethod(this, _structuredLog, structuredLog_fn).call(this, console.warn, message, "warn", ...args);
|
|
2289
|
+
}
|
|
2290
|
+
info(message, ...args) {
|
|
2291
|
+
if (this.level < LogLevel.info)
|
|
2292
|
+
return;
|
|
2293
|
+
__privateMethod(this, _structuredLog, structuredLog_fn).call(this, console.info, message, "info", ...args);
|
|
2294
|
+
}
|
|
2295
|
+
debug(message, ...args) {
|
|
2296
|
+
if (this.level < LogLevel.debug)
|
|
2297
|
+
return;
|
|
2298
|
+
__privateMethod(this, _structuredLog, structuredLog_fn).call(this, console.debug, message, "debug", ...args);
|
|
2299
|
+
}
|
|
2300
|
+
};
|
|
2301
|
+
_structuredLog = new WeakSet();
|
|
2302
|
+
structuredLog_fn = /* @__PURE__ */ __name(function(loggerFunction, message, level, ...args) {
|
|
2303
|
+
const structuredLog = {
|
|
2304
|
+
...args.length === 1 ? args[0] : args,
|
|
2305
|
+
...this.fields,
|
|
2306
|
+
timestamp: /* @__PURE__ */ new Date(),
|
|
2307
|
+
name: this.name,
|
|
2308
|
+
message,
|
|
2309
|
+
level
|
|
2310
|
+
};
|
|
2311
|
+
loggerFunction(JSON.stringify(structuredLog));
|
|
2312
|
+
}, "#structuredLog");
|
|
2313
|
+
__name(_SimpleStructuredLogger, "SimpleStructuredLogger");
|
|
2314
|
+
var SimpleStructuredLogger = _SimpleStructuredLogger;
|
|
2315
|
+
var _logger2, _handler2;
|
|
2316
|
+
var _ZodNamespace = class _ZodNamespace {
|
|
2317
|
+
constructor(opts) {
|
|
2318
|
+
__privateAdd(this, _logger2, void 0);
|
|
2319
|
+
__privateAdd(this, _handler2, void 0);
|
|
2320
|
+
__privateSet(this, _logger2, opts.logger ?? new SimpleStructuredLogger(opts.name));
|
|
2321
|
+
__privateSet(this, _handler2, new ZodSocketMessageHandler({
|
|
2322
|
+
schema: opts.clientMessages,
|
|
2323
|
+
handlers: opts.handlers
|
|
2324
|
+
}));
|
|
2325
|
+
this.io = opts.io;
|
|
2326
|
+
this.namespace = this.io.of(opts.name);
|
|
2327
|
+
this.sender = new ZodMessageSender({
|
|
2328
|
+
schema: opts.serverMessages,
|
|
2329
|
+
sender: async (message) => {
|
|
2330
|
+
return new Promise((resolve, reject) => {
|
|
2331
|
+
try {
|
|
2332
|
+
this.namespace.emit(message.type, message.payload);
|
|
2333
|
+
resolve();
|
|
2334
|
+
} catch (err) {
|
|
2335
|
+
reject(err);
|
|
2336
|
+
}
|
|
2337
|
+
});
|
|
2338
|
+
}
|
|
2339
|
+
});
|
|
2340
|
+
if (opts.preAuth) {
|
|
2341
|
+
this.namespace.use(async (socket, next) => {
|
|
2342
|
+
const logger2 = __privateGet(this, _logger2).child({
|
|
2343
|
+
socketId: socket.id,
|
|
2344
|
+
socketStage: "preAuth"
|
|
2345
|
+
});
|
|
2346
|
+
if (typeof opts.preAuth === "function") {
|
|
2347
|
+
await opts.preAuth(socket, next, logger2);
|
|
2348
|
+
}
|
|
2349
|
+
});
|
|
2350
|
+
}
|
|
2351
|
+
if (opts.authToken) {
|
|
2352
|
+
this.namespace.use((socket, next) => {
|
|
2353
|
+
const logger2 = __privateGet(this, _logger2).child({
|
|
2354
|
+
socketId: socket.id,
|
|
2355
|
+
socketStage: "auth"
|
|
2356
|
+
});
|
|
2357
|
+
const { auth } = socket.handshake;
|
|
2358
|
+
if (!("token" in auth)) {
|
|
2359
|
+
logger2.error("no token");
|
|
2360
|
+
return socket.disconnect(true);
|
|
2361
|
+
}
|
|
2362
|
+
if (auth.token !== opts.authToken) {
|
|
2363
|
+
logger2.error("invalid token");
|
|
2364
|
+
return socket.disconnect(true);
|
|
2365
|
+
}
|
|
2366
|
+
logger2.info("success");
|
|
2367
|
+
next();
|
|
2368
|
+
});
|
|
2369
|
+
}
|
|
2370
|
+
if (opts.postAuth) {
|
|
2371
|
+
this.namespace.use(async (socket, next) => {
|
|
2372
|
+
const logger2 = __privateGet(this, _logger2).child({
|
|
2373
|
+
socketId: socket.id,
|
|
2374
|
+
socketStage: "auth"
|
|
2375
|
+
});
|
|
2376
|
+
if (typeof opts.postAuth === "function") {
|
|
2377
|
+
await opts.postAuth(socket, next, logger2);
|
|
2378
|
+
}
|
|
2379
|
+
});
|
|
2380
|
+
}
|
|
2381
|
+
this.namespace.on("connection", async (socket) => {
|
|
2382
|
+
const logger2 = __privateGet(this, _logger2).child({
|
|
2383
|
+
socketId: socket.id,
|
|
2384
|
+
socketStage: "connection"
|
|
2385
|
+
});
|
|
2386
|
+
logger2.info("connected");
|
|
2387
|
+
__privateGet(this, _handler2).registerHandlers(socket, logger2);
|
|
2388
|
+
socket.on("disconnect", async (reason, description) => {
|
|
2389
|
+
logger2.info("disconnect", {
|
|
2390
|
+
reason,
|
|
2391
|
+
description
|
|
2392
|
+
});
|
|
2393
|
+
if (opts.onDisconnect) {
|
|
2394
|
+
await opts.onDisconnect(socket, reason, description, logger2);
|
|
2395
|
+
}
|
|
2396
|
+
});
|
|
2397
|
+
socket.on("error", async (error) => {
|
|
2398
|
+
logger2.error("error", {
|
|
2399
|
+
error
|
|
2400
|
+
});
|
|
2401
|
+
if (opts.onError) {
|
|
2402
|
+
await opts.onError(socket, error, logger2);
|
|
2403
|
+
}
|
|
2404
|
+
});
|
|
2405
|
+
if (opts.onConnection) {
|
|
2406
|
+
await opts.onConnection(socket, __privateGet(this, _handler2), this.sender, logger2);
|
|
2407
|
+
}
|
|
2408
|
+
});
|
|
2409
|
+
}
|
|
2410
|
+
fetchSockets() {
|
|
2411
|
+
return this.namespace.fetchSockets();
|
|
2412
|
+
}
|
|
2413
|
+
};
|
|
2414
|
+
_logger2 = new WeakMap();
|
|
2415
|
+
_handler2 = new WeakMap();
|
|
2416
|
+
__name(_ZodNamespace, "ZodNamespace");
|
|
2417
|
+
var ZodNamespace = _ZodNamespace;
|
|
2418
|
+
var messageSchema2 = z.object({
|
|
2419
|
+
version: z.literal("v1").default("v1"),
|
|
2420
|
+
type: z.string(),
|
|
2421
|
+
payload: z.unknown()
|
|
2422
|
+
});
|
|
2423
|
+
var _schema5, _handlers3, _sender3, _a;
|
|
2424
|
+
var ZodIpcMessageHandler = (_a = class {
|
|
2425
|
+
constructor(options) {
|
|
2426
|
+
__privateAdd(this, _schema5, void 0);
|
|
2427
|
+
__privateAdd(this, _handlers3, void 0);
|
|
2428
|
+
__privateAdd(this, _sender3, void 0);
|
|
2429
|
+
__privateSet(this, _schema5, options.schema);
|
|
2430
|
+
__privateSet(this, _handlers3, options.handlers);
|
|
2431
|
+
__privateSet(this, _sender3, options.sender);
|
|
2432
|
+
}
|
|
2433
|
+
async handleMessage(message) {
|
|
2434
|
+
const parsedMessage = this.parseMessage(message);
|
|
2435
|
+
if (!__privateGet(this, _handlers3)) {
|
|
2436
|
+
throw new Error("No handlers provided");
|
|
2437
|
+
}
|
|
2438
|
+
const handler = __privateGet(this, _handlers3)[parsedMessage.type];
|
|
2439
|
+
if (!handler) {
|
|
2440
|
+
return;
|
|
2441
|
+
}
|
|
2442
|
+
const ack = await handler(parsedMessage.payload, __privateGet(this, _sender3));
|
|
2443
|
+
return ack;
|
|
2444
|
+
}
|
|
2445
|
+
parseMessage(message) {
|
|
2446
|
+
const parsedMessage = messageSchema2.safeParse(message);
|
|
2447
|
+
if (!parsedMessage.success) {
|
|
2448
|
+
throw new Error(`Failed to parse message: ${JSON.stringify(parsedMessage.error)}`);
|
|
2449
|
+
}
|
|
2450
|
+
const schema = __privateGet(this, _schema5)[parsedMessage.data.type]["message"];
|
|
2451
|
+
if (!schema) {
|
|
2452
|
+
throw new Error(`Unknown message type: ${parsedMessage.data.type}`);
|
|
2453
|
+
}
|
|
2454
|
+
const parsedPayload = schema.safeParse(parsedMessage.data.payload);
|
|
2455
|
+
if (!parsedPayload.success) {
|
|
2456
|
+
throw new Error(`Failed to parse message payload: ${JSON.stringify(parsedPayload.error)}`);
|
|
2457
|
+
}
|
|
2458
|
+
return {
|
|
2459
|
+
type: parsedMessage.data.type,
|
|
2460
|
+
payload: parsedPayload.data
|
|
2461
|
+
};
|
|
2462
|
+
}
|
|
2463
|
+
}, _schema5 = new WeakMap(), _handlers3 = new WeakMap(), _sender3 = new WeakMap(), __name(_a, "ZodIpcMessageHandler"), _a);
|
|
2464
|
+
var Packet = z.discriminatedUnion("type", [
|
|
2465
|
+
z.object({
|
|
2466
|
+
type: z.literal("CONNECT"),
|
|
2467
|
+
sessionId: z.string().optional()
|
|
2468
|
+
}),
|
|
2469
|
+
z.object({
|
|
2470
|
+
type: z.literal("ACK"),
|
|
2471
|
+
message: z.any(),
|
|
2472
|
+
id: z.number()
|
|
2473
|
+
}),
|
|
2474
|
+
z.object({
|
|
2475
|
+
type: z.literal("EVENT"),
|
|
2476
|
+
message: z.any(),
|
|
2477
|
+
id: z.number().optional()
|
|
2478
|
+
})
|
|
2479
|
+
]);
|
|
2480
|
+
var _sessionId, _messageCounter, _handler3, _acks, _registerHandlers, registerHandlers_fn, _handlePacket, handlePacket_fn, _sendPacket, sendPacket_fn;
|
|
2481
|
+
var _ZodIpcConnection = class _ZodIpcConnection {
|
|
2482
|
+
constructor(opts) {
|
|
2483
|
+
__privateAdd(this, _registerHandlers);
|
|
2484
|
+
__privateAdd(this, _handlePacket);
|
|
2485
|
+
__privateAdd(this, _sendPacket);
|
|
2486
|
+
__privateAdd(this, _sessionId, void 0);
|
|
2487
|
+
__privateAdd(this, _messageCounter, void 0);
|
|
2488
|
+
__privateAdd(this, _handler3, void 0);
|
|
2489
|
+
__privateAdd(this, _acks, void 0);
|
|
2490
|
+
this.opts = opts;
|
|
2491
|
+
__privateSet(this, _messageCounter, 0);
|
|
2492
|
+
__privateSet(this, _acks, /* @__PURE__ */ new Map());
|
|
2493
|
+
__privateSet(this, _handler3, new ZodIpcMessageHandler({
|
|
2494
|
+
schema: opts.listenSchema,
|
|
2495
|
+
handlers: opts.handlers,
|
|
2496
|
+
sender: {
|
|
2497
|
+
send: this.send.bind(this),
|
|
2498
|
+
sendWithAck: this.sendWithAck.bind(this)
|
|
2499
|
+
}
|
|
2500
|
+
}));
|
|
2501
|
+
__privateMethod(this, _registerHandlers, registerHandlers_fn).call(this);
|
|
2502
|
+
}
|
|
2503
|
+
async connect() {
|
|
2504
|
+
__privateMethod(this, _sendPacket, sendPacket_fn).call(this, {
|
|
2505
|
+
type: "CONNECT"
|
|
2506
|
+
});
|
|
2507
|
+
}
|
|
2508
|
+
async send(type, payload) {
|
|
2509
|
+
const schema = this.opts.emitSchema[type]["message"];
|
|
2510
|
+
if (!schema) {
|
|
2511
|
+
throw new Error(`Unknown message type: ${type}`);
|
|
2512
|
+
}
|
|
2513
|
+
const parsedPayload = schema.safeParse(payload);
|
|
2514
|
+
if (!parsedPayload.success) {
|
|
2515
|
+
throw new ZodSchemaParsedError(parsedPayload.error, payload);
|
|
2516
|
+
}
|
|
2517
|
+
await __privateMethod(this, _sendPacket, sendPacket_fn).call(this, {
|
|
2518
|
+
type: "EVENT",
|
|
2519
|
+
message: {
|
|
2520
|
+
type,
|
|
2521
|
+
payload,
|
|
2522
|
+
version: "v1"
|
|
2523
|
+
}
|
|
2524
|
+
});
|
|
2525
|
+
}
|
|
2526
|
+
async sendWithAck(type, payload, timeoutInMs) {
|
|
2527
|
+
const currentId = __privateWrapper(this, _messageCounter)._++;
|
|
2528
|
+
return new Promise(async (resolve, reject) => {
|
|
2529
|
+
const defaultTimeoutInMs = 2e3;
|
|
2530
|
+
const timeout = setTimeout(() => {
|
|
2531
|
+
reject(JSON.stringify({
|
|
2532
|
+
reason: "sendWithAck() timeout",
|
|
2533
|
+
timeoutInMs: timeoutInMs ?? defaultTimeoutInMs,
|
|
2534
|
+
type,
|
|
2535
|
+
payload
|
|
2536
|
+
}));
|
|
2537
|
+
}, timeoutInMs ?? defaultTimeoutInMs);
|
|
2538
|
+
__privateGet(this, _acks).set(currentId, {
|
|
2539
|
+
resolve,
|
|
2540
|
+
reject,
|
|
2541
|
+
timeout
|
|
2542
|
+
});
|
|
2543
|
+
const schema = this.opts.emitSchema[type]["message"];
|
|
2544
|
+
if (!schema) {
|
|
2545
|
+
clearTimeout(timeout);
|
|
2546
|
+
return reject(`Unknown message type: ${type}`);
|
|
2547
|
+
}
|
|
2548
|
+
const parsedPayload = schema.safeParse(payload);
|
|
2549
|
+
if (!parsedPayload.success) {
|
|
2550
|
+
clearTimeout(timeout);
|
|
2551
|
+
return reject(`Failed to parse message payload: ${JSON.stringify(parsedPayload.error)}`);
|
|
2552
|
+
}
|
|
2553
|
+
await __privateMethod(this, _sendPacket, sendPacket_fn).call(this, {
|
|
2554
|
+
type: "EVENT",
|
|
2555
|
+
message: {
|
|
2556
|
+
type,
|
|
2557
|
+
payload,
|
|
2558
|
+
version: "v1"
|
|
2559
|
+
},
|
|
2560
|
+
id: currentId
|
|
2561
|
+
});
|
|
2562
|
+
});
|
|
2563
|
+
}
|
|
2564
|
+
};
|
|
2565
|
+
_sessionId = new WeakMap();
|
|
2566
|
+
_messageCounter = new WeakMap();
|
|
2567
|
+
_handler3 = new WeakMap();
|
|
2568
|
+
_acks = new WeakMap();
|
|
2569
|
+
_registerHandlers = new WeakSet();
|
|
2570
|
+
registerHandlers_fn = /* @__PURE__ */ __name(async function() {
|
|
2571
|
+
if (!this.opts.process.on) {
|
|
2572
|
+
return;
|
|
2573
|
+
}
|
|
2574
|
+
this.opts.process.on("message", async (message) => {
|
|
2575
|
+
__privateMethod(this, _handlePacket, handlePacket_fn).call(this, message);
|
|
2576
|
+
});
|
|
2577
|
+
}, "#registerHandlers");
|
|
2578
|
+
_handlePacket = new WeakSet();
|
|
2579
|
+
handlePacket_fn = /* @__PURE__ */ __name(async function(packet) {
|
|
2580
|
+
const parsedPacket = Packet.safeParse(packet);
|
|
2581
|
+
if (!parsedPacket.success) {
|
|
2582
|
+
return;
|
|
2583
|
+
}
|
|
2584
|
+
switch (parsedPacket.data.type) {
|
|
2585
|
+
case "ACK": {
|
|
2586
|
+
const ack = __privateGet(this, _acks).get(parsedPacket.data.id);
|
|
2587
|
+
if (!ack) {
|
|
2588
|
+
return;
|
|
2589
|
+
}
|
|
2590
|
+
clearTimeout(ack.timeout);
|
|
2591
|
+
ack.resolve(parsedPacket.data.message);
|
|
2592
|
+
break;
|
|
2593
|
+
}
|
|
2594
|
+
case "CONNECT": {
|
|
2595
|
+
if (!parsedPacket.data.sessionId) {
|
|
2596
|
+
const id = randomUUID();
|
|
2597
|
+
await __privateMethod(this, _sendPacket, sendPacket_fn).call(this, {
|
|
2598
|
+
type: "CONNECT",
|
|
2599
|
+
sessionId: id
|
|
2600
|
+
});
|
|
2601
|
+
return;
|
|
2602
|
+
}
|
|
2603
|
+
if (__privateGet(this, _sessionId)) {
|
|
2604
|
+
return;
|
|
2605
|
+
}
|
|
2606
|
+
__privateSet(this, _sessionId, parsedPacket.data.sessionId);
|
|
2607
|
+
break;
|
|
2608
|
+
}
|
|
2609
|
+
case "EVENT": {
|
|
2610
|
+
const result = await __privateGet(this, _handler3).handleMessage(parsedPacket.data.message);
|
|
2611
|
+
if (typeof parsedPacket.data.id === "undefined") {
|
|
2612
|
+
return;
|
|
2613
|
+
}
|
|
2614
|
+
await __privateMethod(this, _sendPacket, sendPacket_fn).call(this, {
|
|
2615
|
+
type: "ACK",
|
|
2616
|
+
id: parsedPacket.data.id,
|
|
2617
|
+
message: result
|
|
2618
|
+
});
|
|
2619
|
+
break;
|
|
2620
|
+
}
|
|
2621
|
+
}
|
|
2622
|
+
}, "#handlePacket");
|
|
2623
|
+
_sendPacket = new WeakSet();
|
|
2624
|
+
sendPacket_fn = /* @__PURE__ */ __name(async function(packet1) {
|
|
2625
|
+
await this.opts.process.send?.(packet1);
|
|
2626
|
+
}, "#sendPacket");
|
|
2627
|
+
__name(_ZodIpcConnection, "ZodIpcConnection");
|
|
2628
|
+
var ZodIpcConnection = _ZodIpcConnection;
|
|
2629
|
+
function parseError(error) {
|
|
2630
|
+
if (error instanceof Error) {
|
|
2631
|
+
return {
|
|
2632
|
+
type: "BUILT_IN_ERROR",
|
|
2633
|
+
name: error.name,
|
|
2634
|
+
message: error.message,
|
|
2635
|
+
stackTrace: error.stack ?? ""
|
|
2636
|
+
};
|
|
2637
|
+
}
|
|
2638
|
+
if (typeof error === "string") {
|
|
2639
|
+
return {
|
|
2640
|
+
type: "STRING_ERROR",
|
|
2641
|
+
raw: error
|
|
2642
|
+
};
|
|
2643
|
+
}
|
|
2644
|
+
try {
|
|
2645
|
+
return {
|
|
2646
|
+
type: "CUSTOM_ERROR",
|
|
2647
|
+
raw: JSON.stringify(error)
|
|
2648
|
+
};
|
|
2649
|
+
} catch (e) {
|
|
2650
|
+
return {
|
|
2651
|
+
type: "CUSTOM_ERROR",
|
|
2652
|
+
raw: String(error)
|
|
2653
|
+
};
|
|
2654
|
+
}
|
|
2655
|
+
}
|
|
2656
|
+
__name(parseError, "parseError");
|
|
2657
|
+
function createErrorTaskError(error) {
|
|
2658
|
+
switch (error.type) {
|
|
2659
|
+
case "BUILT_IN_ERROR": {
|
|
2660
|
+
const e = new Error(error.message);
|
|
2661
|
+
e.name = error.name;
|
|
2662
|
+
e.stack = error.stackTrace;
|
|
2663
|
+
return e;
|
|
2664
|
+
}
|
|
2665
|
+
case "STRING_ERROR": {
|
|
2666
|
+
return error.raw;
|
|
2667
|
+
}
|
|
2668
|
+
case "CUSTOM_ERROR": {
|
|
2669
|
+
return JSON.parse(error.raw);
|
|
2670
|
+
}
|
|
2671
|
+
case "INTERNAL_ERROR": {
|
|
2672
|
+
return new Error(`trigger.dev internal error (${error.code})`);
|
|
2673
|
+
}
|
|
2674
|
+
}
|
|
2675
|
+
}
|
|
2676
|
+
__name(createErrorTaskError, "createErrorTaskError");
|
|
2677
|
+
function correctErrorStackTrace(stackTrace, projectDir, options) {
|
|
2678
|
+
const [errorLine, ...traceLines] = stackTrace.split("\n");
|
|
2679
|
+
return [
|
|
2680
|
+
options?.removeFirstLine ? void 0 : errorLine,
|
|
2681
|
+
...traceLines.map((line) => correctStackTraceLine(line, projectDir))
|
|
2682
|
+
].filter(Boolean).join("\n");
|
|
2683
|
+
}
|
|
2684
|
+
__name(correctErrorStackTrace, "correctErrorStackTrace");
|
|
2685
|
+
function correctStackTraceLine(line, projectDir) {
|
|
2686
|
+
const regex = /at (.*?) \(?file:\/\/(\/.*?\.ts):(\d+):(\d+)\)?/;
|
|
2687
|
+
const match = regex.exec(line);
|
|
2688
|
+
if (!match) {
|
|
2689
|
+
return;
|
|
2690
|
+
}
|
|
2691
|
+
const [_, identifier, path, lineNum, colNum] = match;
|
|
2692
|
+
if (!path) {
|
|
2693
|
+
return;
|
|
2694
|
+
}
|
|
2695
|
+
if (nodePath.basename(path) === "__entryPoint.ts") {
|
|
2696
|
+
return;
|
|
2697
|
+
}
|
|
2698
|
+
if (projectDir && !path.includes(projectDir)) {
|
|
2699
|
+
return;
|
|
2700
|
+
}
|
|
2701
|
+
return line;
|
|
2702
|
+
}
|
|
2703
|
+
__name(correctStackTraceLine, "correctStackTraceLine");
|
|
2704
|
+
function groupTaskMetadataIssuesByTask(tasks, issues) {
|
|
2705
|
+
return issues.reduce((acc, issue) => {
|
|
2706
|
+
if (issue.path.length === 0) {
|
|
2707
|
+
return acc;
|
|
2708
|
+
}
|
|
2709
|
+
const taskIndex = issue.path[1];
|
|
2710
|
+
if (typeof taskIndex !== "number") {
|
|
2711
|
+
return acc;
|
|
2712
|
+
}
|
|
2713
|
+
const task = tasks[taskIndex];
|
|
2714
|
+
if (!task) {
|
|
2715
|
+
return acc;
|
|
2716
|
+
}
|
|
2717
|
+
const restOfPath = issue.path.slice(2);
|
|
2718
|
+
const taskId = task.id;
|
|
2719
|
+
const taskName = task.exportName;
|
|
2720
|
+
const filePath = task.filePath;
|
|
2721
|
+
const key = taskIndex;
|
|
2722
|
+
const existing = acc[key] ?? {
|
|
2723
|
+
id: taskId,
|
|
2724
|
+
exportName: taskName,
|
|
2725
|
+
filePath,
|
|
2726
|
+
issues: []
|
|
2727
|
+
};
|
|
2728
|
+
existing.issues.push({
|
|
2729
|
+
message: issue.message,
|
|
2730
|
+
path: restOfPath.length === 0 ? void 0 : restOfPath.join(".")
|
|
2731
|
+
});
|
|
2732
|
+
return {
|
|
2733
|
+
...acc,
|
|
2734
|
+
[key]: existing
|
|
2735
|
+
};
|
|
2736
|
+
}, {});
|
|
2737
|
+
}
|
|
2738
|
+
__name(groupTaskMetadataIssuesByTask, "groupTaskMetadataIssuesByTask");
|
|
2739
|
+
|
|
2740
|
+
// src/v3/utils/platform.ts
|
|
2741
|
+
var _globalThis = typeof globalThis === "object" ? globalThis : global;
|
|
2742
|
+
|
|
2743
|
+
// src/v3/utils/globals.ts
|
|
2744
|
+
var GLOBAL_TRIGGER_DOT_DEV_KEY = Symbol.for(`dev.trigger.ts.api`);
|
|
2745
|
+
var _global = _globalThis;
|
|
2746
|
+
function registerGlobal(type, instance, allowOverride = false) {
|
|
2747
|
+
const api = _global[GLOBAL_TRIGGER_DOT_DEV_KEY] = _global[GLOBAL_TRIGGER_DOT_DEV_KEY] ?? {};
|
|
2748
|
+
if (!allowOverride && api[type]) {
|
|
2749
|
+
return false;
|
|
2750
|
+
}
|
|
2751
|
+
api[type] = instance;
|
|
2752
|
+
return true;
|
|
2753
|
+
}
|
|
2754
|
+
__name(registerGlobal, "registerGlobal");
|
|
2755
|
+
function getGlobal(type) {
|
|
2756
|
+
return _global[GLOBAL_TRIGGER_DOT_DEV_KEY]?.[type];
|
|
2757
|
+
}
|
|
598
2758
|
__name(getGlobal, "getGlobal");
|
|
599
2759
|
function unregisterGlobal(type) {
|
|
600
2760
|
const api = _global[GLOBAL_TRIGGER_DOT_DEV_KEY];
|
|
@@ -608,6 +2768,11 @@ __name(unregisterGlobal, "unregisterGlobal");
|
|
|
608
2768
|
var _NoopRuntimeManager = class _NoopRuntimeManager {
|
|
609
2769
|
disable() {
|
|
610
2770
|
}
|
|
2771
|
+
registerTasks() {
|
|
2772
|
+
}
|
|
2773
|
+
getTaskMetadata(id) {
|
|
2774
|
+
return void 0;
|
|
2775
|
+
}
|
|
611
2776
|
waitForDuration(ms) {
|
|
612
2777
|
return Promise.resolve();
|
|
613
2778
|
}
|
|
@@ -615,7 +2780,20 @@ var _NoopRuntimeManager = class _NoopRuntimeManager {
|
|
|
615
2780
|
return Promise.resolve();
|
|
616
2781
|
}
|
|
617
2782
|
waitForTask(params) {
|
|
618
|
-
|
|
2783
|
+
return Promise.resolve({
|
|
2784
|
+
ok: false,
|
|
2785
|
+
id: params.id,
|
|
2786
|
+
error: {
|
|
2787
|
+
type: "INTERNAL_ERROR",
|
|
2788
|
+
code: "CONFIGURED_INCORRECTLY"
|
|
2789
|
+
}
|
|
2790
|
+
});
|
|
2791
|
+
}
|
|
2792
|
+
waitForBatch(params) {
|
|
2793
|
+
return Promise.resolve({
|
|
2794
|
+
id: params.id,
|
|
2795
|
+
items: []
|
|
2796
|
+
});
|
|
619
2797
|
}
|
|
620
2798
|
};
|
|
621
2799
|
__name(_NoopRuntimeManager, "NoopRuntimeManager");
|
|
@@ -644,6 +2822,9 @@ var _RuntimeAPI = class _RuntimeAPI {
|
|
|
644
2822
|
waitForTask(params) {
|
|
645
2823
|
return __privateMethod(this, _getRuntimeManager, getRuntimeManager_fn).call(this).waitForTask(params);
|
|
646
2824
|
}
|
|
2825
|
+
waitForBatch(params) {
|
|
2826
|
+
return __privateMethod(this, _getRuntimeManager, getRuntimeManager_fn).call(this).waitForBatch(params);
|
|
2827
|
+
}
|
|
647
2828
|
setGlobalRuntimeManager(runtimeManager) {
|
|
648
2829
|
return registerGlobal(API_NAME, runtimeManager);
|
|
649
2830
|
}
|
|
@@ -651,6 +2832,12 @@ var _RuntimeAPI = class _RuntimeAPI {
|
|
|
651
2832
|
__privateMethod(this, _getRuntimeManager, getRuntimeManager_fn).call(this).disable();
|
|
652
2833
|
unregisterGlobal(API_NAME);
|
|
653
2834
|
}
|
|
2835
|
+
registerTasks(tasks) {
|
|
2836
|
+
__privateMethod(this, _getRuntimeManager, getRuntimeManager_fn).call(this).registerTasks(tasks);
|
|
2837
|
+
}
|
|
2838
|
+
getTaskMetadata(id) {
|
|
2839
|
+
return __privateMethod(this, _getRuntimeManager, getRuntimeManager_fn).call(this).getTaskMetadata(id);
|
|
2840
|
+
}
|
|
654
2841
|
};
|
|
655
2842
|
_getRuntimeManager = new WeakSet();
|
|
656
2843
|
getRuntimeManager_fn = /* @__PURE__ */ __name(function() {
|
|
@@ -661,58 +2848,159 @@ var RuntimeAPI = _RuntimeAPI;
|
|
|
661
2848
|
|
|
662
2849
|
// src/v3/runtime-api.ts
|
|
663
2850
|
var runtime = RuntimeAPI.getInstance();
|
|
2851
|
+
function iconStringForSeverity(severityNumber) {
|
|
2852
|
+
switch (severityNumber) {
|
|
2853
|
+
case SeverityNumber.UNSPECIFIED:
|
|
2854
|
+
return void 0;
|
|
2855
|
+
case SeverityNumber.TRACE:
|
|
2856
|
+
case SeverityNumber.TRACE2:
|
|
2857
|
+
case SeverityNumber.TRACE3:
|
|
2858
|
+
case SeverityNumber.TRACE4:
|
|
2859
|
+
return "trace";
|
|
2860
|
+
case SeverityNumber.DEBUG:
|
|
2861
|
+
case SeverityNumber.DEBUG2:
|
|
2862
|
+
case SeverityNumber.DEBUG3:
|
|
2863
|
+
case SeverityNumber.DEBUG4:
|
|
2864
|
+
return "debug";
|
|
2865
|
+
case SeverityNumber.INFO:
|
|
2866
|
+
case SeverityNumber.INFO2:
|
|
2867
|
+
case SeverityNumber.INFO3:
|
|
2868
|
+
case SeverityNumber.INFO4:
|
|
2869
|
+
return "info";
|
|
2870
|
+
case SeverityNumber.WARN:
|
|
2871
|
+
case SeverityNumber.WARN2:
|
|
2872
|
+
case SeverityNumber.WARN3:
|
|
2873
|
+
case SeverityNumber.WARN4:
|
|
2874
|
+
return "warn";
|
|
2875
|
+
case SeverityNumber.ERROR:
|
|
2876
|
+
case SeverityNumber.ERROR2:
|
|
2877
|
+
case SeverityNumber.ERROR3:
|
|
2878
|
+
case SeverityNumber.ERROR4:
|
|
2879
|
+
return "error";
|
|
2880
|
+
case SeverityNumber.FATAL:
|
|
2881
|
+
case SeverityNumber.FATAL2:
|
|
2882
|
+
case SeverityNumber.FATAL3:
|
|
2883
|
+
case SeverityNumber.FATAL4:
|
|
2884
|
+
return "fatal";
|
|
2885
|
+
}
|
|
2886
|
+
}
|
|
2887
|
+
__name(iconStringForSeverity, "iconStringForSeverity");
|
|
2888
|
+
var _SimpleClock = class _SimpleClock {
|
|
2889
|
+
preciseNow() {
|
|
2890
|
+
const now = new PreciseDate();
|
|
2891
|
+
const nowStruct = now.toStruct();
|
|
2892
|
+
return [
|
|
2893
|
+
nowStruct.seconds,
|
|
2894
|
+
nowStruct.nanos
|
|
2895
|
+
];
|
|
2896
|
+
}
|
|
2897
|
+
reset() {
|
|
2898
|
+
}
|
|
2899
|
+
};
|
|
2900
|
+
__name(_SimpleClock, "SimpleClock");
|
|
2901
|
+
var SimpleClock = _SimpleClock;
|
|
2902
|
+
|
|
2903
|
+
// src/v3/clock/index.ts
|
|
2904
|
+
var API_NAME2 = "clock";
|
|
2905
|
+
var SIMPLE_CLOCK = new SimpleClock();
|
|
2906
|
+
var _getClock, getClock_fn;
|
|
2907
|
+
var _ClockAPI = class _ClockAPI {
|
|
2908
|
+
constructor() {
|
|
2909
|
+
__privateAdd(this, _getClock);
|
|
2910
|
+
}
|
|
2911
|
+
static getInstance() {
|
|
2912
|
+
if (!this._instance) {
|
|
2913
|
+
this._instance = new _ClockAPI();
|
|
2914
|
+
}
|
|
2915
|
+
return this._instance;
|
|
2916
|
+
}
|
|
2917
|
+
setGlobalClock(clock2) {
|
|
2918
|
+
return registerGlobal(API_NAME2, clock2);
|
|
2919
|
+
}
|
|
2920
|
+
preciseNow() {
|
|
2921
|
+
return __privateMethod(this, _getClock, getClock_fn).call(this).preciseNow();
|
|
2922
|
+
}
|
|
2923
|
+
reset() {
|
|
2924
|
+
__privateMethod(this, _getClock, getClock_fn).call(this).reset();
|
|
2925
|
+
}
|
|
2926
|
+
};
|
|
2927
|
+
_getClock = new WeakSet();
|
|
2928
|
+
getClock_fn = /* @__PURE__ */ __name(function() {
|
|
2929
|
+
return getGlobal(API_NAME2) ?? SIMPLE_CLOCK;
|
|
2930
|
+
}, "#getClock");
|
|
2931
|
+
__name(_ClockAPI, "ClockAPI");
|
|
2932
|
+
var ClockAPI = _ClockAPI;
|
|
2933
|
+
|
|
2934
|
+
// src/v3/clock-api.ts
|
|
2935
|
+
var clock = ClockAPI.getInstance();
|
|
2936
|
+
|
|
2937
|
+
// src/v3/logger/taskLogger.ts
|
|
664
2938
|
var logLevels = [
|
|
2939
|
+
"none",
|
|
665
2940
|
"error",
|
|
666
2941
|
"warn",
|
|
667
2942
|
"log",
|
|
668
2943
|
"info",
|
|
669
2944
|
"debug"
|
|
670
2945
|
];
|
|
671
|
-
var _emitLog, emitLog_fn;
|
|
2946
|
+
var _emitLog, emitLog_fn, _getTimestampInHrTime, getTimestampInHrTime_fn;
|
|
672
2947
|
var _OtelTaskLogger = class _OtelTaskLogger {
|
|
673
2948
|
constructor(_config) {
|
|
674
2949
|
__privateAdd(this, _emitLog);
|
|
2950
|
+
__privateAdd(this, _getTimestampInHrTime);
|
|
675
2951
|
this._config = _config;
|
|
676
2952
|
this._level = logLevels.indexOf(_config.level);
|
|
677
2953
|
}
|
|
678
2954
|
debug(message, properties) {
|
|
679
|
-
if (this._level <
|
|
2955
|
+
if (this._level < 5)
|
|
680
2956
|
return;
|
|
681
|
-
__privateMethod(this, _emitLog, emitLog_fn).call(this, message, "debug", SeverityNumber.DEBUG, properties);
|
|
2957
|
+
__privateMethod(this, _emitLog, emitLog_fn).call(this, message, __privateMethod(this, _getTimestampInHrTime, getTimestampInHrTime_fn).call(this), "debug", SeverityNumber.DEBUG, properties);
|
|
682
2958
|
}
|
|
683
2959
|
log(message, properties) {
|
|
684
|
-
if (this._level <
|
|
2960
|
+
if (this._level < 3)
|
|
685
2961
|
return;
|
|
686
|
-
__privateMethod(this, _emitLog, emitLog_fn).call(this, message, "log", SeverityNumber.INFO, properties);
|
|
2962
|
+
__privateMethod(this, _emitLog, emitLog_fn).call(this, message, __privateMethod(this, _getTimestampInHrTime, getTimestampInHrTime_fn).call(this), "log", SeverityNumber.INFO, properties);
|
|
687
2963
|
}
|
|
688
2964
|
info(message, properties) {
|
|
689
|
-
if (this._level <
|
|
2965
|
+
if (this._level < 4)
|
|
690
2966
|
return;
|
|
691
|
-
__privateMethod(this, _emitLog, emitLog_fn).call(this, message, "info", SeverityNumber.INFO, properties);
|
|
2967
|
+
__privateMethod(this, _emitLog, emitLog_fn).call(this, message, __privateMethod(this, _getTimestampInHrTime, getTimestampInHrTime_fn).call(this), "info", SeverityNumber.INFO, properties);
|
|
692
2968
|
}
|
|
693
2969
|
warn(message, properties) {
|
|
694
|
-
if (this._level <
|
|
2970
|
+
if (this._level < 2)
|
|
695
2971
|
return;
|
|
696
|
-
__privateMethod(this, _emitLog, emitLog_fn).call(this, message, "warn", SeverityNumber.WARN, properties);
|
|
2972
|
+
__privateMethod(this, _emitLog, emitLog_fn).call(this, message, __privateMethod(this, _getTimestampInHrTime, getTimestampInHrTime_fn).call(this), "warn", SeverityNumber.WARN, properties);
|
|
697
2973
|
}
|
|
698
2974
|
error(message, properties) {
|
|
699
|
-
if (this._level <
|
|
2975
|
+
if (this._level < 1)
|
|
700
2976
|
return;
|
|
701
|
-
__privateMethod(this, _emitLog, emitLog_fn).call(this, message, "error", SeverityNumber.ERROR, properties);
|
|
2977
|
+
__privateMethod(this, _emitLog, emitLog_fn).call(this, message, __privateMethod(this, _getTimestampInHrTime, getTimestampInHrTime_fn).call(this), "error", SeverityNumber.ERROR, properties);
|
|
2978
|
+
}
|
|
2979
|
+
trace(name, fn, options) {
|
|
2980
|
+
return this._config.tracer.startActiveSpan(name, fn, options);
|
|
702
2981
|
}
|
|
703
2982
|
};
|
|
704
2983
|
_emitLog = new WeakSet();
|
|
705
|
-
emitLog_fn = /* @__PURE__ */ __name(function(message, severityText, severityNumber, properties) {
|
|
2984
|
+
emitLog_fn = /* @__PURE__ */ __name(function(message, timestamp, severityText, severityNumber, properties) {
|
|
2985
|
+
let attributes = {
|
|
2986
|
+
...flattenAttributes(properties)
|
|
2987
|
+
};
|
|
2988
|
+
const icon = iconStringForSeverity(severityNumber);
|
|
2989
|
+
if (icon !== void 0) {
|
|
2990
|
+
attributes[SemanticInternalAttributes.STYLE_ICON] = icon;
|
|
2991
|
+
}
|
|
706
2992
|
this._config.logger.emit({
|
|
707
2993
|
severityNumber,
|
|
708
2994
|
severityText,
|
|
709
2995
|
body: message,
|
|
710
|
-
attributes
|
|
711
|
-
|
|
712
|
-
"log.type": "logger"
|
|
713
|
-
}
|
|
2996
|
+
attributes,
|
|
2997
|
+
timestamp
|
|
714
2998
|
});
|
|
715
2999
|
}, "#emitLog");
|
|
3000
|
+
_getTimestampInHrTime = new WeakSet();
|
|
3001
|
+
getTimestampInHrTime_fn = /* @__PURE__ */ __name(function() {
|
|
3002
|
+
return clock.preciseNow();
|
|
3003
|
+
}, "#getTimestampInHrTime");
|
|
716
3004
|
__name(_OtelTaskLogger, "OtelTaskLogger");
|
|
717
3005
|
var OtelTaskLogger = _OtelTaskLogger;
|
|
718
3006
|
var _NoopTaskLogger = class _NoopTaskLogger {
|
|
@@ -726,12 +3014,15 @@ var _NoopTaskLogger = class _NoopTaskLogger {
|
|
|
726
3014
|
}
|
|
727
3015
|
error() {
|
|
728
3016
|
}
|
|
3017
|
+
trace(name, fn) {
|
|
3018
|
+
return fn({});
|
|
3019
|
+
}
|
|
729
3020
|
};
|
|
730
3021
|
__name(_NoopTaskLogger, "NoopTaskLogger");
|
|
731
3022
|
var NoopTaskLogger = _NoopTaskLogger;
|
|
732
3023
|
|
|
733
3024
|
// src/v3/logger/index.ts
|
|
734
|
-
var
|
|
3025
|
+
var API_NAME3 = "logger";
|
|
735
3026
|
var NOOP_TASK_LOGGER = new NoopTaskLogger();
|
|
736
3027
|
var _getTaskLogger, getTaskLogger_fn;
|
|
737
3028
|
var _LoggerAPI = class _LoggerAPI {
|
|
@@ -745,10 +3036,10 @@ var _LoggerAPI = class _LoggerAPI {
|
|
|
745
3036
|
return this._instance;
|
|
746
3037
|
}
|
|
747
3038
|
disable() {
|
|
748
|
-
unregisterGlobal(
|
|
3039
|
+
unregisterGlobal(API_NAME3);
|
|
749
3040
|
}
|
|
750
3041
|
setGlobalTaskLogger(taskLogger) {
|
|
751
|
-
return registerGlobal(
|
|
3042
|
+
return registerGlobal(API_NAME3, taskLogger);
|
|
752
3043
|
}
|
|
753
3044
|
debug(message, metadata) {
|
|
754
3045
|
__privateMethod(this, _getTaskLogger, getTaskLogger_fn).call(this).debug(message, metadata);
|
|
@@ -765,10 +3056,13 @@ var _LoggerAPI = class _LoggerAPI {
|
|
|
765
3056
|
error(message, metadata) {
|
|
766
3057
|
__privateMethod(this, _getTaskLogger, getTaskLogger_fn).call(this).error(message, metadata);
|
|
767
3058
|
}
|
|
3059
|
+
trace(name, fn) {
|
|
3060
|
+
return __privateMethod(this, _getTaskLogger, getTaskLogger_fn).call(this).trace(name, fn);
|
|
3061
|
+
}
|
|
768
3062
|
};
|
|
769
3063
|
_getTaskLogger = new WeakSet();
|
|
770
3064
|
getTaskLogger_fn = /* @__PURE__ */ __name(function() {
|
|
771
|
-
return getGlobal(
|
|
3065
|
+
return getGlobal(API_NAME3) ?? NOOP_TASK_LOGGER;
|
|
772
3066
|
}, "#getTaskLogger");
|
|
773
3067
|
__name(_LoggerAPI, "LoggerAPI");
|
|
774
3068
|
var LoggerAPI = _LoggerAPI;
|
|
@@ -776,47 +3070,145 @@ var LoggerAPI = _LoggerAPI;
|
|
|
776
3070
|
// src/v3/logger-api.ts
|
|
777
3071
|
var logger = LoggerAPI.getInstance();
|
|
778
3072
|
|
|
779
|
-
// src/v3/
|
|
780
|
-
var
|
|
781
|
-
|
|
782
|
-
|
|
783
|
-
|
|
784
|
-
|
|
785
|
-
|
|
786
|
-
|
|
787
|
-
|
|
788
|
-
|
|
789
|
-
|
|
790
|
-
|
|
791
|
-
|
|
792
|
-
|
|
793
|
-
|
|
794
|
-
|
|
795
|
-
|
|
796
|
-
|
|
797
|
-
|
|
798
|
-
|
|
799
|
-
|
|
800
|
-
|
|
801
|
-
|
|
802
|
-
|
|
803
|
-
|
|
804
|
-
|
|
805
|
-
|
|
3073
|
+
// src/v3/limits.ts
|
|
3074
|
+
var OTEL_SPAN_ATTRIBUTE_COUNT_LIMIT = 256;
|
|
3075
|
+
var OTEL_LOG_ATTRIBUTE_COUNT_LIMIT = 256;
|
|
3076
|
+
var OTEL_SPAN_ATTRIBUTE_VALUE_LENGTH_LIMIT = 1028;
|
|
3077
|
+
var OTEL_LOG_ATTRIBUTE_VALUE_LENGTH_LIMIT = 1028;
|
|
3078
|
+
var OTEL_SPAN_EVENT_COUNT_LIMIT = 10;
|
|
3079
|
+
var OTEL_LINK_COUNT_LIMIT = 2;
|
|
3080
|
+
var OTEL_ATTRIBUTE_PER_LINK_COUNT_LIMIT = 10;
|
|
3081
|
+
var OTEL_ATTRIBUTE_PER_EVENT_COUNT_LIMIT = 10;
|
|
3082
|
+
var OFFLOAD_IO_PACKET_LENGTH_LIMIT = 128 * 1024;
|
|
3083
|
+
function imposeAttributeLimits(attributes) {
|
|
3084
|
+
const newAttributes = {};
|
|
3085
|
+
for (const [key, value] of Object.entries(attributes)) {
|
|
3086
|
+
if (calculateAttributeValueLength(value) > OTEL_SPAN_ATTRIBUTE_VALUE_LENGTH_LIMIT) {
|
|
3087
|
+
continue;
|
|
3088
|
+
}
|
|
3089
|
+
if (Object.keys(newAttributes).length >= OTEL_SPAN_ATTRIBUTE_COUNT_LIMIT) {
|
|
3090
|
+
break;
|
|
3091
|
+
}
|
|
3092
|
+
newAttributes[key] = value;
|
|
3093
|
+
}
|
|
3094
|
+
return newAttributes;
|
|
3095
|
+
}
|
|
3096
|
+
__name(imposeAttributeLimits, "imposeAttributeLimits");
|
|
3097
|
+
function calculateAttributeValueLength(value) {
|
|
3098
|
+
if (value === void 0 || value === null) {
|
|
3099
|
+
return 0;
|
|
3100
|
+
}
|
|
3101
|
+
if (typeof value === "string") {
|
|
3102
|
+
return value.length;
|
|
3103
|
+
}
|
|
3104
|
+
if (typeof value === "number") {
|
|
3105
|
+
return 8;
|
|
3106
|
+
}
|
|
3107
|
+
if (typeof value === "boolean") {
|
|
3108
|
+
return 4;
|
|
3109
|
+
}
|
|
3110
|
+
if (Array.isArray(value)) {
|
|
3111
|
+
return value.reduce((acc, v) => acc + calculateAttributeValueLength(v), 0);
|
|
3112
|
+
}
|
|
3113
|
+
return 0;
|
|
3114
|
+
}
|
|
3115
|
+
__name(calculateAttributeValueLength, "calculateAttributeValueLength");
|
|
3116
|
+
function dateDifference(date1, date2) {
|
|
3117
|
+
return Math.abs(date1.getTime() - date2.getTime());
|
|
3118
|
+
}
|
|
3119
|
+
__name(dateDifference, "dateDifference");
|
|
3120
|
+
function formatDuration(start, end, options) {
|
|
3121
|
+
if (!start || !end) {
|
|
3122
|
+
return "\u2013";
|
|
3123
|
+
}
|
|
3124
|
+
return formatDurationMilliseconds(dateDifference(start, end), options);
|
|
3125
|
+
}
|
|
3126
|
+
__name(formatDuration, "formatDuration");
|
|
3127
|
+
function nanosecondsToMilliseconds(nanoseconds) {
|
|
3128
|
+
return nanoseconds / 1e6;
|
|
3129
|
+
}
|
|
3130
|
+
__name(nanosecondsToMilliseconds, "nanosecondsToMilliseconds");
|
|
3131
|
+
function millisecondsToNanoseconds(milliseconds) {
|
|
3132
|
+
return milliseconds * 1e6;
|
|
3133
|
+
}
|
|
3134
|
+
__name(millisecondsToNanoseconds, "millisecondsToNanoseconds");
|
|
3135
|
+
function formatDurationNanoseconds(nanoseconds, options) {
|
|
3136
|
+
return formatDurationMilliseconds(nanosecondsToMilliseconds(nanoseconds), options);
|
|
3137
|
+
}
|
|
3138
|
+
__name(formatDurationNanoseconds, "formatDurationNanoseconds");
|
|
3139
|
+
var aboveOneSecondUnits = [
|
|
3140
|
+
"d",
|
|
3141
|
+
"h",
|
|
3142
|
+
"m",
|
|
3143
|
+
"s"
|
|
3144
|
+
];
|
|
3145
|
+
var belowOneSecondUnits = [
|
|
3146
|
+
"ms"
|
|
3147
|
+
];
|
|
3148
|
+
function formatDurationMilliseconds(milliseconds, options) {
|
|
3149
|
+
let duration = humanizeDuration(milliseconds, {
|
|
3150
|
+
units: options?.units ? options.units : milliseconds < 1e3 ? belowOneSecondUnits : aboveOneSecondUnits,
|
|
3151
|
+
maxDecimalPoints: options?.maxDecimalPoints ?? 1,
|
|
3152
|
+
largest: 2
|
|
3153
|
+
});
|
|
3154
|
+
if (!options) {
|
|
3155
|
+
return duration;
|
|
3156
|
+
}
|
|
3157
|
+
switch (options.style) {
|
|
3158
|
+
case "short":
|
|
3159
|
+
duration = duration.replace(" milliseconds", "ms");
|
|
3160
|
+
duration = duration.replace(" millisecond", "ms");
|
|
3161
|
+
duration = duration.replace(" seconds", "s");
|
|
3162
|
+
duration = duration.replace(" second", "s");
|
|
3163
|
+
duration = duration.replace(" minutes", "m");
|
|
3164
|
+
duration = duration.replace(" minute", "m");
|
|
3165
|
+
duration = duration.replace(" hours", "h");
|
|
3166
|
+
duration = duration.replace(" hour", "h");
|
|
3167
|
+
duration = duration.replace(" days", "d");
|
|
3168
|
+
duration = duration.replace(" day", "d");
|
|
3169
|
+
duration = duration.replace(" weeks", "w");
|
|
3170
|
+
duration = duration.replace(" week", "w");
|
|
3171
|
+
duration = duration.replace(" months", "mo");
|
|
3172
|
+
duration = duration.replace(" month", "mo");
|
|
3173
|
+
duration = duration.replace(" years", "y");
|
|
3174
|
+
duration = duration.replace(" year", "y");
|
|
3175
|
+
}
|
|
3176
|
+
return duration;
|
|
3177
|
+
}
|
|
3178
|
+
__name(formatDurationMilliseconds, "formatDurationMilliseconds");
|
|
3179
|
+
function formatDurationInDays(milliseconds) {
|
|
3180
|
+
let duration = humanizeDuration(milliseconds, {
|
|
3181
|
+
maxDecimalPoints: 0,
|
|
3182
|
+
largest: 2,
|
|
3183
|
+
units: [
|
|
3184
|
+
"d"
|
|
3185
|
+
]
|
|
3186
|
+
});
|
|
3187
|
+
return duration;
|
|
3188
|
+
}
|
|
3189
|
+
__name(formatDurationInDays, "formatDurationInDays");
|
|
806
3190
|
|
|
807
3191
|
// src/v3/runtime/devRuntimeManager.ts
|
|
808
3192
|
var _DevRuntimeManager = class _DevRuntimeManager {
|
|
809
|
-
constructor(
|
|
810
|
-
this
|
|
811
|
-
this
|
|
3193
|
+
constructor() {
|
|
3194
|
+
__publicField(this, "_taskWaits", /* @__PURE__ */ new Map());
|
|
3195
|
+
__publicField(this, "_batchWaits", /* @__PURE__ */ new Map());
|
|
3196
|
+
__publicField(this, "_tasks", /* @__PURE__ */ new Map());
|
|
3197
|
+
__publicField(this, "_pendingCompletionNotifications", /* @__PURE__ */ new Map());
|
|
812
3198
|
}
|
|
813
3199
|
disable() {
|
|
814
3200
|
}
|
|
3201
|
+
registerTasks(tasks) {
|
|
3202
|
+
for (const task of tasks) {
|
|
3203
|
+
this._tasks.set(task.id, task);
|
|
3204
|
+
}
|
|
3205
|
+
}
|
|
3206
|
+
getTaskMetadata(id) {
|
|
3207
|
+
return this._tasks.get(id);
|
|
3208
|
+
}
|
|
815
3209
|
async waitForDuration(ms) {
|
|
816
|
-
return
|
|
817
|
-
|
|
818
|
-
setTimeout(resolve, ms);
|
|
819
|
-
});
|
|
3210
|
+
return new Promise((resolve) => {
|
|
3211
|
+
setTimeout(resolve, ms);
|
|
820
3212
|
});
|
|
821
3213
|
}
|
|
822
3214
|
async waitUntil(date) {
|
|
@@ -825,27 +3217,215 @@ var _DevRuntimeManager = class _DevRuntimeManager {
|
|
|
825
3217
|
});
|
|
826
3218
|
}
|
|
827
3219
|
async waitForTask(params) {
|
|
828
|
-
|
|
829
|
-
|
|
830
|
-
|
|
831
|
-
|
|
3220
|
+
const pendingCompletion = this._pendingCompletionNotifications.get(params.id);
|
|
3221
|
+
if (pendingCompletion) {
|
|
3222
|
+
this._pendingCompletionNotifications.delete(params.id);
|
|
3223
|
+
return pendingCompletion;
|
|
3224
|
+
}
|
|
3225
|
+
const promise = new Promise((resolve, reject) => {
|
|
3226
|
+
this._taskWaits.set(params.id, {
|
|
3227
|
+
resolve,
|
|
3228
|
+
reject
|
|
3229
|
+
});
|
|
3230
|
+
});
|
|
3231
|
+
return await promise;
|
|
3232
|
+
}
|
|
3233
|
+
async waitForBatch(params) {
|
|
3234
|
+
if (!params.runs.length) {
|
|
3235
|
+
return Promise.resolve({
|
|
3236
|
+
id: params.id,
|
|
3237
|
+
items: []
|
|
3238
|
+
});
|
|
3239
|
+
}
|
|
3240
|
+
const promise = Promise.all(params.runs.map((runId) => {
|
|
3241
|
+
return new Promise((resolve, reject) => {
|
|
3242
|
+
const pendingCompletion = this._pendingCompletionNotifications.get(runId);
|
|
3243
|
+
if (pendingCompletion) {
|
|
3244
|
+
this._pendingCompletionNotifications.delete(runId);
|
|
3245
|
+
if (pendingCompletion.ok) {
|
|
3246
|
+
resolve(pendingCompletion);
|
|
3247
|
+
} else {
|
|
3248
|
+
reject(pendingCompletion);
|
|
3249
|
+
}
|
|
3250
|
+
return;
|
|
3251
|
+
}
|
|
3252
|
+
this._taskWaits.set(runId, {
|
|
832
3253
|
resolve,
|
|
833
3254
|
reject
|
|
834
3255
|
});
|
|
835
3256
|
});
|
|
836
|
-
|
|
837
|
-
|
|
3257
|
+
}));
|
|
3258
|
+
const results = await promise;
|
|
3259
|
+
return {
|
|
3260
|
+
id: params.id,
|
|
3261
|
+
items: results
|
|
3262
|
+
};
|
|
838
3263
|
}
|
|
839
3264
|
resumeTask(completion, execution) {
|
|
840
3265
|
const wait = this._taskWaits.get(execution.run.id);
|
|
841
|
-
if (wait) {
|
|
3266
|
+
if (!wait) {
|
|
3267
|
+
this._pendingCompletionNotifications.set(execution.run.id, completion);
|
|
3268
|
+
return;
|
|
3269
|
+
}
|
|
3270
|
+
if (completion.ok) {
|
|
842
3271
|
wait.resolve(completion);
|
|
843
|
-
|
|
3272
|
+
} else {
|
|
3273
|
+
wait.reject(completion);
|
|
844
3274
|
}
|
|
3275
|
+
this._taskWaits.delete(execution.run.id);
|
|
845
3276
|
}
|
|
846
3277
|
};
|
|
847
3278
|
__name(_DevRuntimeManager, "DevRuntimeManager");
|
|
848
3279
|
var DevRuntimeManager = _DevRuntimeManager;
|
|
3280
|
+
var _ProdRuntimeManager = class _ProdRuntimeManager {
|
|
3281
|
+
constructor(ipc, options = {}) {
|
|
3282
|
+
this.ipc = ipc;
|
|
3283
|
+
this.options = options;
|
|
3284
|
+
this._taskWaits = /* @__PURE__ */ new Map();
|
|
3285
|
+
this._batchWaits = /* @__PURE__ */ new Map();
|
|
3286
|
+
this._tasks = /* @__PURE__ */ new Map();
|
|
3287
|
+
}
|
|
3288
|
+
disable() {
|
|
3289
|
+
}
|
|
3290
|
+
registerTasks(tasks) {
|
|
3291
|
+
for (const task of tasks) {
|
|
3292
|
+
this._tasks.set(task.id, task);
|
|
3293
|
+
}
|
|
3294
|
+
}
|
|
3295
|
+
getTaskMetadata(id) {
|
|
3296
|
+
return this._tasks.get(id);
|
|
3297
|
+
}
|
|
3298
|
+
async waitForDuration(ms) {
|
|
3299
|
+
const now = Date.now();
|
|
3300
|
+
const resolveAfterDuration = setTimeout$1(ms, "duration");
|
|
3301
|
+
if (ms <= this.waitThresholdInMs) {
|
|
3302
|
+
await resolveAfterDuration;
|
|
3303
|
+
return;
|
|
3304
|
+
}
|
|
3305
|
+
const waitForRestore = new Promise((resolve, reject) => {
|
|
3306
|
+
this._waitForRestore = {
|
|
3307
|
+
resolve,
|
|
3308
|
+
reject
|
|
3309
|
+
};
|
|
3310
|
+
});
|
|
3311
|
+
const { willCheckpointAndRestore } = await this.ipc.sendWithAck("WAIT_FOR_DURATION", {
|
|
3312
|
+
ms,
|
|
3313
|
+
now
|
|
3314
|
+
});
|
|
3315
|
+
if (!willCheckpointAndRestore) {
|
|
3316
|
+
await resolveAfterDuration;
|
|
3317
|
+
return;
|
|
3318
|
+
}
|
|
3319
|
+
this.ipc.send("READY_FOR_CHECKPOINT", {});
|
|
3320
|
+
await Promise.race([
|
|
3321
|
+
waitForRestore,
|
|
3322
|
+
resolveAfterDuration
|
|
3323
|
+
]);
|
|
3324
|
+
this.ipc.send("CANCEL_CHECKPOINT", {});
|
|
3325
|
+
}
|
|
3326
|
+
resumeAfterRestore() {
|
|
3327
|
+
if (!this._waitForRestore) {
|
|
3328
|
+
return;
|
|
3329
|
+
}
|
|
3330
|
+
clock.reset();
|
|
3331
|
+
this._waitForRestore.resolve("restore");
|
|
3332
|
+
this._waitForRestore = void 0;
|
|
3333
|
+
}
|
|
3334
|
+
async waitUntil(date) {
|
|
3335
|
+
return this.waitForDuration(date.getTime() - Date.now());
|
|
3336
|
+
}
|
|
3337
|
+
async waitForTask(params) {
|
|
3338
|
+
const promise = new Promise((resolve, reject) => {
|
|
3339
|
+
this._taskWaits.set(params.id, {
|
|
3340
|
+
resolve,
|
|
3341
|
+
reject
|
|
3342
|
+
});
|
|
3343
|
+
});
|
|
3344
|
+
await this.ipc.send("WAIT_FOR_TASK", {
|
|
3345
|
+
friendlyId: params.id
|
|
3346
|
+
});
|
|
3347
|
+
return await promise;
|
|
3348
|
+
}
|
|
3349
|
+
async waitForBatch(params) {
|
|
3350
|
+
if (!params.runs.length) {
|
|
3351
|
+
return Promise.resolve({
|
|
3352
|
+
id: params.id,
|
|
3353
|
+
items: []
|
|
3354
|
+
});
|
|
3355
|
+
}
|
|
3356
|
+
const promise = Promise.all(params.runs.map((runId) => {
|
|
3357
|
+
return new Promise((resolve, reject) => {
|
|
3358
|
+
this._taskWaits.set(runId, {
|
|
3359
|
+
resolve,
|
|
3360
|
+
reject
|
|
3361
|
+
});
|
|
3362
|
+
});
|
|
3363
|
+
}));
|
|
3364
|
+
await this.ipc.send("WAIT_FOR_BATCH", {
|
|
3365
|
+
batchFriendlyId: params.id,
|
|
3366
|
+
runFriendlyIds: params.runs
|
|
3367
|
+
});
|
|
3368
|
+
const results = await promise;
|
|
3369
|
+
return {
|
|
3370
|
+
id: params.id,
|
|
3371
|
+
items: results
|
|
3372
|
+
};
|
|
3373
|
+
}
|
|
3374
|
+
resumeTask(completion, execution) {
|
|
3375
|
+
const wait = this._taskWaits.get(execution.run.id);
|
|
3376
|
+
if (!wait) {
|
|
3377
|
+
return;
|
|
3378
|
+
}
|
|
3379
|
+
if (completion.ok) {
|
|
3380
|
+
wait.resolve(completion);
|
|
3381
|
+
} else {
|
|
3382
|
+
wait.reject(completion);
|
|
3383
|
+
}
|
|
3384
|
+
this._taskWaits.delete(execution.run.id);
|
|
3385
|
+
}
|
|
3386
|
+
get waitThresholdInMs() {
|
|
3387
|
+
return this.options.waitThresholdInMs ?? 3e4;
|
|
3388
|
+
}
|
|
3389
|
+
};
|
|
3390
|
+
__name(_ProdRuntimeManager, "ProdRuntimeManager");
|
|
3391
|
+
var ProdRuntimeManager = _ProdRuntimeManager;
|
|
3392
|
+
var _originClockTime, originClockTime_get, _originPreciseDate, originPreciseDate_get;
|
|
3393
|
+
var _PreciseWallClock = class _PreciseWallClock {
|
|
3394
|
+
constructor(options = {}) {
|
|
3395
|
+
__privateAdd(this, _originClockTime);
|
|
3396
|
+
__privateAdd(this, _originPreciseDate);
|
|
3397
|
+
this._origin = {
|
|
3398
|
+
clockTime: options.origin ?? process.hrtime(),
|
|
3399
|
+
preciseDate: options.now ?? new PreciseDate()
|
|
3400
|
+
};
|
|
3401
|
+
}
|
|
3402
|
+
preciseNow() {
|
|
3403
|
+
const elapsedHrTime = process.hrtime(__privateGet(this, _originClockTime, originClockTime_get));
|
|
3404
|
+
const elapsedNanoseconds = BigInt(elapsedHrTime[0]) * BigInt(1e9) + BigInt(elapsedHrTime[1]);
|
|
3405
|
+
const preciseDate = new PreciseDate(__privateGet(this, _originPreciseDate, originPreciseDate_get).getFullTime() + elapsedNanoseconds);
|
|
3406
|
+
const dateStruct = preciseDate.toStruct();
|
|
3407
|
+
return [
|
|
3408
|
+
dateStruct.seconds,
|
|
3409
|
+
dateStruct.nanos
|
|
3410
|
+
];
|
|
3411
|
+
}
|
|
3412
|
+
reset() {
|
|
3413
|
+
this._origin = {
|
|
3414
|
+
clockTime: process.hrtime(),
|
|
3415
|
+
preciseDate: new PreciseDate()
|
|
3416
|
+
};
|
|
3417
|
+
}
|
|
3418
|
+
};
|
|
3419
|
+
_originClockTime = new WeakSet();
|
|
3420
|
+
originClockTime_get = /* @__PURE__ */ __name(function() {
|
|
3421
|
+
return this._origin.clockTime;
|
|
3422
|
+
}, "#originClockTime");
|
|
3423
|
+
_originPreciseDate = new WeakSet();
|
|
3424
|
+
originPreciseDate_get = /* @__PURE__ */ __name(function() {
|
|
3425
|
+
return this._origin.preciseDate;
|
|
3426
|
+
}, "#originPreciseDate");
|
|
3427
|
+
__name(_PreciseWallClock, "PreciseWallClock");
|
|
3428
|
+
var PreciseWallClock = _PreciseWallClock;
|
|
849
3429
|
var _TriggerTracer = class _TriggerTracer {
|
|
850
3430
|
constructor(_config) {
|
|
851
3431
|
this._config = _config;
|
|
@@ -874,7 +3454,8 @@ var _TriggerTracer = class _TriggerTracer {
|
|
|
874
3454
|
const attributes = options?.attributes ?? {};
|
|
875
3455
|
return this.tracer.startActiveSpan(name, {
|
|
876
3456
|
...options,
|
|
877
|
-
attributes
|
|
3457
|
+
attributes,
|
|
3458
|
+
startTime: clock.preciseNow()
|
|
878
3459
|
}, parentContext, async (span) => {
|
|
879
3460
|
this.tracer.startSpan(name, {
|
|
880
3461
|
...options,
|
|
@@ -895,57 +3476,72 @@ var _TriggerTracer = class _TriggerTracer {
|
|
|
895
3476
|
});
|
|
896
3477
|
throw e;
|
|
897
3478
|
} finally {
|
|
898
|
-
span.end();
|
|
3479
|
+
span.end(clock.preciseNow());
|
|
3480
|
+
}
|
|
3481
|
+
});
|
|
3482
|
+
}
|
|
3483
|
+
startSpan(name, options, ctx) {
|
|
3484
|
+
const parentContext = ctx ?? context.active();
|
|
3485
|
+
const attributes = options?.attributes ?? {};
|
|
3486
|
+
const span = this.tracer.startSpan(name, options, ctx);
|
|
3487
|
+
this.tracer.startSpan(name, {
|
|
3488
|
+
...options,
|
|
3489
|
+
attributes: {
|
|
3490
|
+
...attributes,
|
|
3491
|
+
[SemanticInternalAttributes.SPAN_PARTIAL]: true,
|
|
3492
|
+
[SemanticInternalAttributes.SPAN_ID]: span.spanContext().spanId
|
|
899
3493
|
}
|
|
900
|
-
});
|
|
3494
|
+
}, parentContext).end();
|
|
3495
|
+
return span;
|
|
901
3496
|
}
|
|
902
3497
|
};
|
|
903
3498
|
__name(_TriggerTracer, "TriggerTracer");
|
|
904
3499
|
var TriggerTracer = _TriggerTracer;
|
|
905
|
-
var _handleLog, handleLog_fn, _getAttributes, getAttributes_fn;
|
|
3500
|
+
var _handleLog, handleLog_fn, _getTimestampInHrTime2, getTimestampInHrTime_fn2, _getAttributes, getAttributes_fn;
|
|
906
3501
|
var _ConsoleInterceptor = class _ConsoleInterceptor {
|
|
907
3502
|
constructor(logger2) {
|
|
908
3503
|
__privateAdd(this, _handleLog);
|
|
3504
|
+
__privateAdd(this, _getTimestampInHrTime2);
|
|
909
3505
|
__privateAdd(this, _getAttributes);
|
|
910
3506
|
this.logger = logger2;
|
|
911
3507
|
}
|
|
912
3508
|
// Intercept the console and send logs to the OpenTelemetry logger
|
|
913
3509
|
// during the execution of the callback
|
|
914
|
-
async intercept(
|
|
3510
|
+
async intercept(console2, callback) {
|
|
915
3511
|
const originalConsole = {
|
|
916
|
-
log:
|
|
917
|
-
info:
|
|
918
|
-
warn:
|
|
919
|
-
error:
|
|
3512
|
+
log: console2.log,
|
|
3513
|
+
info: console2.info,
|
|
3514
|
+
warn: console2.warn,
|
|
3515
|
+
error: console2.error
|
|
920
3516
|
};
|
|
921
|
-
|
|
922
|
-
|
|
923
|
-
|
|
924
|
-
|
|
3517
|
+
console2.log = this.log.bind(this);
|
|
3518
|
+
console2.info = this.info.bind(this);
|
|
3519
|
+
console2.warn = this.warn.bind(this);
|
|
3520
|
+
console2.error = this.error.bind(this);
|
|
925
3521
|
try {
|
|
926
3522
|
return await callback();
|
|
927
3523
|
} finally {
|
|
928
|
-
|
|
929
|
-
|
|
930
|
-
|
|
931
|
-
|
|
3524
|
+
console2.log = originalConsole.log;
|
|
3525
|
+
console2.info = originalConsole.info;
|
|
3526
|
+
console2.warn = originalConsole.warn;
|
|
3527
|
+
console2.error = originalConsole.error;
|
|
932
3528
|
}
|
|
933
3529
|
}
|
|
934
3530
|
log(...args) {
|
|
935
|
-
__privateMethod(this, _handleLog, handleLog_fn).call(this, SeverityNumber.INFO, "Log", ...args);
|
|
3531
|
+
__privateMethod(this, _handleLog, handleLog_fn).call(this, SeverityNumber.INFO, __privateMethod(this, _getTimestampInHrTime2, getTimestampInHrTime_fn2).call(this), "Log", ...args);
|
|
936
3532
|
}
|
|
937
3533
|
info(...args) {
|
|
938
|
-
__privateMethod(this, _handleLog, handleLog_fn).call(this, SeverityNumber.INFO, "Info", ...args);
|
|
3534
|
+
__privateMethod(this, _handleLog, handleLog_fn).call(this, SeverityNumber.INFO, __privateMethod(this, _getTimestampInHrTime2, getTimestampInHrTime_fn2).call(this), "Info", ...args);
|
|
939
3535
|
}
|
|
940
3536
|
warn(...args) {
|
|
941
|
-
__privateMethod(this, _handleLog, handleLog_fn).call(this, SeverityNumber.WARN, "Warn", ...args);
|
|
3537
|
+
__privateMethod(this, _handleLog, handleLog_fn).call(this, SeverityNumber.WARN, __privateMethod(this, _getTimestampInHrTime2, getTimestampInHrTime_fn2).call(this), "Warn", ...args);
|
|
942
3538
|
}
|
|
943
3539
|
error(...args) {
|
|
944
|
-
__privateMethod(this, _handleLog, handleLog_fn).call(this, SeverityNumber.ERROR, "Error", ...args);
|
|
3540
|
+
__privateMethod(this, _handleLog, handleLog_fn).call(this, SeverityNumber.ERROR, __privateMethod(this, _getTimestampInHrTime2, getTimestampInHrTime_fn2).call(this), "Error", ...args);
|
|
945
3541
|
}
|
|
946
3542
|
};
|
|
947
3543
|
_handleLog = new WeakSet();
|
|
948
|
-
handleLog_fn = /* @__PURE__ */ __name(function(severityNumber, severityText, ...args) {
|
|
3544
|
+
handleLog_fn = /* @__PURE__ */ __name(function(severityNumber, timestamp, severityText, ...args) {
|
|
949
3545
|
const body = util.format(...args);
|
|
950
3546
|
const parsed = tryParseJSON(body);
|
|
951
3547
|
if (parsed.ok) {
|
|
@@ -954,9 +3550,10 @@ handleLog_fn = /* @__PURE__ */ __name(function(severityNumber, severityText, ...
|
|
|
954
3550
|
severityText,
|
|
955
3551
|
body: getLogMessage(parsed.value, severityText),
|
|
956
3552
|
attributes: {
|
|
957
|
-
...__privateMethod(this, _getAttributes, getAttributes_fn).call(this),
|
|
3553
|
+
...__privateMethod(this, _getAttributes, getAttributes_fn).call(this, severityNumber),
|
|
958
3554
|
...flattenAttributes(parsed.value)
|
|
959
|
-
}
|
|
3555
|
+
},
|
|
3556
|
+
timestamp
|
|
960
3557
|
});
|
|
961
3558
|
return;
|
|
962
3559
|
}
|
|
@@ -964,14 +3561,22 @@ handleLog_fn = /* @__PURE__ */ __name(function(severityNumber, severityText, ...
|
|
|
964
3561
|
severityNumber,
|
|
965
3562
|
severityText,
|
|
966
3563
|
body,
|
|
967
|
-
attributes: __privateMethod(this, _getAttributes, getAttributes_fn).call(this)
|
|
3564
|
+
attributes: __privateMethod(this, _getAttributes, getAttributes_fn).call(this, severityNumber),
|
|
3565
|
+
timestamp
|
|
968
3566
|
});
|
|
969
3567
|
}, "#handleLog");
|
|
3568
|
+
_getTimestampInHrTime2 = new WeakSet();
|
|
3569
|
+
getTimestampInHrTime_fn2 = /* @__PURE__ */ __name(function() {
|
|
3570
|
+
return clock.preciseNow();
|
|
3571
|
+
}, "#getTimestampInHrTime");
|
|
970
3572
|
_getAttributes = new WeakSet();
|
|
971
|
-
getAttributes_fn = /* @__PURE__ */ __name(function() {
|
|
972
|
-
|
|
973
|
-
|
|
974
|
-
|
|
3573
|
+
getAttributes_fn = /* @__PURE__ */ __name(function(severityNumber1) {
|
|
3574
|
+
const icon = iconStringForSeverity(severityNumber1);
|
|
3575
|
+
let result = {};
|
|
3576
|
+
if (icon !== void 0) {
|
|
3577
|
+
result[SemanticInternalAttributes.STYLE_ICON] = icon;
|
|
3578
|
+
}
|
|
3579
|
+
return result;
|
|
975
3580
|
}, "#getAttributes");
|
|
976
3581
|
__name(_ConsoleInterceptor, "ConsoleInterceptor");
|
|
977
3582
|
var ConsoleInterceptor = _ConsoleInterceptor;
|
|
@@ -1013,12 +3618,988 @@ function tryParseJSON(value) {
|
|
|
1013
3618
|
}
|
|
1014
3619
|
__name(tryParseJSON, "tryParseJSON");
|
|
1015
3620
|
|
|
3621
|
+
// src/retry.ts
|
|
3622
|
+
function calculateResetAt(resets, format, now = /* @__PURE__ */ new Date()) {
|
|
3623
|
+
if (!resets)
|
|
3624
|
+
return;
|
|
3625
|
+
switch (format) {
|
|
3626
|
+
case "iso_8601_duration_openai_variant": {
|
|
3627
|
+
return calculateISO8601DurationOpenAIVariantResetAt(resets, now);
|
|
3628
|
+
}
|
|
3629
|
+
case "iso_8601": {
|
|
3630
|
+
return calculateISO8601ResetAt(resets, now);
|
|
3631
|
+
}
|
|
3632
|
+
case "unix_timestamp": {
|
|
3633
|
+
return calculateUnixTimestampResetAt(resets, now);
|
|
3634
|
+
}
|
|
3635
|
+
case "unix_timestamp_in_ms": {
|
|
3636
|
+
return calculateUnixTimestampInMsResetAt(resets, now);
|
|
3637
|
+
}
|
|
3638
|
+
}
|
|
3639
|
+
}
|
|
3640
|
+
__name(calculateResetAt, "calculateResetAt");
|
|
3641
|
+
function calculateUnixTimestampResetAt(resets, now = /* @__PURE__ */ new Date()) {
|
|
3642
|
+
if (!resets)
|
|
3643
|
+
return void 0;
|
|
3644
|
+
const resetAt = parseInt(resets, 10);
|
|
3645
|
+
if (isNaN(resetAt))
|
|
3646
|
+
return void 0;
|
|
3647
|
+
return new Date(resetAt * 1e3);
|
|
3648
|
+
}
|
|
3649
|
+
__name(calculateUnixTimestampResetAt, "calculateUnixTimestampResetAt");
|
|
3650
|
+
function calculateUnixTimestampInMsResetAt(resets, now = /* @__PURE__ */ new Date()) {
|
|
3651
|
+
if (!resets)
|
|
3652
|
+
return void 0;
|
|
3653
|
+
const resetAt = parseInt(resets, 10);
|
|
3654
|
+
if (isNaN(resetAt))
|
|
3655
|
+
return void 0;
|
|
3656
|
+
return new Date(resetAt);
|
|
3657
|
+
}
|
|
3658
|
+
__name(calculateUnixTimestampInMsResetAt, "calculateUnixTimestampInMsResetAt");
|
|
3659
|
+
function calculateISO8601ResetAt(resets, now = /* @__PURE__ */ new Date()) {
|
|
3660
|
+
if (!resets)
|
|
3661
|
+
return void 0;
|
|
3662
|
+
const resetAt = new Date(resets);
|
|
3663
|
+
if (isNaN(resetAt.getTime()))
|
|
3664
|
+
return void 0;
|
|
3665
|
+
return resetAt;
|
|
3666
|
+
}
|
|
3667
|
+
__name(calculateISO8601ResetAt, "calculateISO8601ResetAt");
|
|
3668
|
+
function calculateISO8601DurationOpenAIVariantResetAt(resets, now = /* @__PURE__ */ new Date()) {
|
|
3669
|
+
if (!resets)
|
|
3670
|
+
return void 0;
|
|
3671
|
+
const pattern = /^(?:(\d+)d)?(?:(\d+)h)?(?:(\d+)m)?(?:(\d+(?:\.\d+)?)s)?(?:(\d+)ms)?$/;
|
|
3672
|
+
const match = resets.match(pattern);
|
|
3673
|
+
if (!match)
|
|
3674
|
+
return void 0;
|
|
3675
|
+
const days = parseInt(match[1], 10) || 0;
|
|
3676
|
+
const hours = parseInt(match[2], 10) || 0;
|
|
3677
|
+
const minutes = parseInt(match[3], 10) || 0;
|
|
3678
|
+
const seconds = parseFloat(match[4]) || 0;
|
|
3679
|
+
const milliseconds = parseInt(match[5], 10) || 0;
|
|
3680
|
+
const resetAt = new Date(now);
|
|
3681
|
+
resetAt.setDate(resetAt.getDate() + days);
|
|
3682
|
+
resetAt.setHours(resetAt.getHours() + hours);
|
|
3683
|
+
resetAt.setMinutes(resetAt.getMinutes() + minutes);
|
|
3684
|
+
resetAt.setSeconds(resetAt.getSeconds() + Math.floor(seconds));
|
|
3685
|
+
resetAt.setMilliseconds(resetAt.getMilliseconds() + (seconds - Math.floor(seconds)) * 1e3 + milliseconds);
|
|
3686
|
+
return resetAt;
|
|
3687
|
+
}
|
|
3688
|
+
__name(calculateISO8601DurationOpenAIVariantResetAt, "calculateISO8601DurationOpenAIVariantResetAt");
|
|
3689
|
+
|
|
3690
|
+
// src/v3/utils/retries.ts
|
|
3691
|
+
var defaultRetryOptions = {
|
|
3692
|
+
maxAttempts: 3,
|
|
3693
|
+
factor: 2,
|
|
3694
|
+
minTimeoutInMs: 1e3,
|
|
3695
|
+
maxTimeoutInMs: 6e4,
|
|
3696
|
+
randomize: true
|
|
3697
|
+
};
|
|
3698
|
+
var defaultFetchRetryOptions = {
|
|
3699
|
+
byStatus: {
|
|
3700
|
+
"429,408,409,5xx": {
|
|
3701
|
+
strategy: "backoff",
|
|
3702
|
+
...defaultRetryOptions
|
|
3703
|
+
}
|
|
3704
|
+
},
|
|
3705
|
+
connectionError: defaultRetryOptions,
|
|
3706
|
+
timeout: defaultRetryOptions
|
|
3707
|
+
};
|
|
3708
|
+
function calculateNextRetryDelay(options, attempt) {
|
|
3709
|
+
const opts = {
|
|
3710
|
+
...defaultRetryOptions,
|
|
3711
|
+
...options
|
|
3712
|
+
};
|
|
3713
|
+
if (attempt >= opts.maxAttempts) {
|
|
3714
|
+
return;
|
|
3715
|
+
}
|
|
3716
|
+
const { factor, minTimeoutInMs, maxTimeoutInMs, randomize } = opts;
|
|
3717
|
+
const random = randomize ? Math.random() + 1 : 1;
|
|
3718
|
+
const timeout = Math.min(maxTimeoutInMs, random * minTimeoutInMs * Math.pow(factor, attempt - 1));
|
|
3719
|
+
return Math.round(timeout);
|
|
3720
|
+
}
|
|
3721
|
+
__name(calculateNextRetryDelay, "calculateNextRetryDelay");
|
|
3722
|
+
function calculateResetAt2(resets, format, now = Date.now()) {
|
|
3723
|
+
const resetAt = calculateResetAt(resets, format, new Date(now));
|
|
3724
|
+
return resetAt?.getTime();
|
|
3725
|
+
}
|
|
3726
|
+
__name(calculateResetAt2, "calculateResetAt");
|
|
3727
|
+
|
|
3728
|
+
// src/v3/utils/styleAttributes.ts
|
|
3729
|
+
function accessoryAttributes(accessory) {
|
|
3730
|
+
return flattenAttributes(accessory, SemanticInternalAttributes.STYLE_ACCESSORY);
|
|
3731
|
+
}
|
|
3732
|
+
__name(accessoryAttributes, "accessoryAttributes");
|
|
3733
|
+
|
|
3734
|
+
// src/eventFilterMatches.ts
|
|
3735
|
+
function eventFilterMatches(payload, filter) {
|
|
3736
|
+
if (payload === void 0 || payload === null) {
|
|
3737
|
+
if (Object.entries(filter).length === 0) {
|
|
3738
|
+
return true;
|
|
3739
|
+
} else {
|
|
3740
|
+
return false;
|
|
3741
|
+
}
|
|
3742
|
+
}
|
|
3743
|
+
for (const [patternKey, patternValue] of Object.entries(filter)) {
|
|
3744
|
+
const payloadValue = payload[patternKey];
|
|
3745
|
+
if (Array.isArray(patternValue)) {
|
|
3746
|
+
if (patternValue.length === 0) {
|
|
3747
|
+
continue;
|
|
3748
|
+
}
|
|
3749
|
+
if (patternValue.every((item) => typeof item === "string")) {
|
|
3750
|
+
if (patternValue.includes(payloadValue)) {
|
|
3751
|
+
continue;
|
|
3752
|
+
}
|
|
3753
|
+
return false;
|
|
3754
|
+
}
|
|
3755
|
+
if (patternValue.every((item) => typeof item === "number")) {
|
|
3756
|
+
if (patternValue.includes(payloadValue)) {
|
|
3757
|
+
continue;
|
|
3758
|
+
}
|
|
3759
|
+
return false;
|
|
3760
|
+
}
|
|
3761
|
+
if (patternValue.every((item) => typeof item === "boolean")) {
|
|
3762
|
+
if (patternValue.includes(payloadValue)) {
|
|
3763
|
+
continue;
|
|
3764
|
+
}
|
|
3765
|
+
return false;
|
|
3766
|
+
}
|
|
3767
|
+
const objectArray = patternValue;
|
|
3768
|
+
if (!contentFiltersMatches(payloadValue, objectArray)) {
|
|
3769
|
+
return false;
|
|
3770
|
+
}
|
|
3771
|
+
continue;
|
|
3772
|
+
} else if (typeof patternValue === "object") {
|
|
3773
|
+
if (Array.isArray(payloadValue)) {
|
|
3774
|
+
if (!payloadValue.some((item) => eventFilterMatches(item, patternValue))) {
|
|
3775
|
+
return false;
|
|
3776
|
+
}
|
|
3777
|
+
} else {
|
|
3778
|
+
if (!eventFilterMatches(payloadValue, patternValue)) {
|
|
3779
|
+
return false;
|
|
3780
|
+
}
|
|
3781
|
+
}
|
|
3782
|
+
}
|
|
3783
|
+
}
|
|
3784
|
+
return true;
|
|
3785
|
+
}
|
|
3786
|
+
__name(eventFilterMatches, "eventFilterMatches");
|
|
3787
|
+
function contentFiltersMatches(actualValue, contentFilters) {
|
|
3788
|
+
for (const contentFilter of contentFilters) {
|
|
3789
|
+
if (typeof contentFilter === "object") {
|
|
3790
|
+
Object.entries(contentFilter)[0];
|
|
3791
|
+
if (!contentFilterMatches(actualValue, contentFilter)) {
|
|
3792
|
+
return false;
|
|
3793
|
+
}
|
|
3794
|
+
}
|
|
3795
|
+
}
|
|
3796
|
+
return true;
|
|
3797
|
+
}
|
|
3798
|
+
__name(contentFiltersMatches, "contentFiltersMatches");
|
|
3799
|
+
function contentFilterMatches(actualValue, contentFilter) {
|
|
3800
|
+
if ("$endsWith" in contentFilter) {
|
|
3801
|
+
if (typeof actualValue !== "string") {
|
|
3802
|
+
return false;
|
|
3803
|
+
}
|
|
3804
|
+
return actualValue.endsWith(contentFilter.$endsWith);
|
|
3805
|
+
}
|
|
3806
|
+
if ("$startsWith" in contentFilter) {
|
|
3807
|
+
if (typeof actualValue !== "string") {
|
|
3808
|
+
return false;
|
|
3809
|
+
}
|
|
3810
|
+
return actualValue.startsWith(contentFilter.$startsWith);
|
|
3811
|
+
}
|
|
3812
|
+
if ("$anythingBut" in contentFilter) {
|
|
3813
|
+
if (Array.isArray(contentFilter.$anythingBut)) {
|
|
3814
|
+
if (contentFilter.$anythingBut.includes(actualValue)) {
|
|
3815
|
+
return false;
|
|
3816
|
+
}
|
|
3817
|
+
}
|
|
3818
|
+
if (contentFilter.$anythingBut === actualValue) {
|
|
3819
|
+
return false;
|
|
3820
|
+
}
|
|
3821
|
+
return true;
|
|
3822
|
+
}
|
|
3823
|
+
if ("$exists" in contentFilter) {
|
|
3824
|
+
if (contentFilter.$exists) {
|
|
3825
|
+
return actualValue !== void 0;
|
|
3826
|
+
}
|
|
3827
|
+
return actualValue === void 0;
|
|
3828
|
+
}
|
|
3829
|
+
if ("$gt" in contentFilter) {
|
|
3830
|
+
if (typeof actualValue !== "number") {
|
|
3831
|
+
return false;
|
|
3832
|
+
}
|
|
3833
|
+
return actualValue > contentFilter.$gt;
|
|
3834
|
+
}
|
|
3835
|
+
if ("$lt" in contentFilter) {
|
|
3836
|
+
if (typeof actualValue !== "number") {
|
|
3837
|
+
return false;
|
|
3838
|
+
}
|
|
3839
|
+
return actualValue < contentFilter.$lt;
|
|
3840
|
+
}
|
|
3841
|
+
if ("$gte" in contentFilter) {
|
|
3842
|
+
if (typeof actualValue !== "number") {
|
|
3843
|
+
return false;
|
|
3844
|
+
}
|
|
3845
|
+
return actualValue >= contentFilter.$gte;
|
|
3846
|
+
}
|
|
3847
|
+
if ("$lte" in contentFilter) {
|
|
3848
|
+
if (typeof actualValue !== "number") {
|
|
3849
|
+
return false;
|
|
3850
|
+
}
|
|
3851
|
+
return actualValue <= contentFilter.$lte;
|
|
3852
|
+
}
|
|
3853
|
+
if ("$between" in contentFilter) {
|
|
3854
|
+
if (typeof actualValue !== "number") {
|
|
3855
|
+
return false;
|
|
3856
|
+
}
|
|
3857
|
+
return actualValue >= contentFilter.$between[0] && actualValue <= contentFilter.$between[1];
|
|
3858
|
+
}
|
|
3859
|
+
if ("$includes" in contentFilter) {
|
|
3860
|
+
if (Array.isArray(actualValue)) {
|
|
3861
|
+
return actualValue.includes(contentFilter.$includes);
|
|
3862
|
+
}
|
|
3863
|
+
return false;
|
|
3864
|
+
}
|
|
3865
|
+
if ("$ignoreCaseEquals" in contentFilter) {
|
|
3866
|
+
if (typeof actualValue !== "string") {
|
|
3867
|
+
return false;
|
|
3868
|
+
}
|
|
3869
|
+
return actualValue.localeCompare(contentFilter.$ignoreCaseEquals, void 0, {
|
|
3870
|
+
sensitivity: "accent"
|
|
3871
|
+
}) === 0;
|
|
3872
|
+
}
|
|
3873
|
+
if ("$isNull" in contentFilter) {
|
|
3874
|
+
if (contentFilter.$isNull) {
|
|
3875
|
+
return actualValue === null;
|
|
3876
|
+
}
|
|
3877
|
+
return actualValue !== null;
|
|
3878
|
+
}
|
|
3879
|
+
if ("$not" in contentFilter) {
|
|
3880
|
+
if (Array.isArray(actualValue)) {
|
|
3881
|
+
return !actualValue.includes(contentFilter.$not);
|
|
3882
|
+
} else if (typeof actualValue === "number" || typeof actualValue === "boolean" || typeof actualValue === "string") {
|
|
3883
|
+
return actualValue !== contentFilter.$not;
|
|
3884
|
+
}
|
|
3885
|
+
return false;
|
|
3886
|
+
}
|
|
3887
|
+
return true;
|
|
3888
|
+
}
|
|
3889
|
+
__name(contentFilterMatches, "contentFilterMatches");
|
|
3890
|
+
|
|
3891
|
+
// src/v3/utils/omit.ts
|
|
3892
|
+
function omit(obj, ...keys) {
|
|
3893
|
+
const result = {};
|
|
3894
|
+
for (const key in obj) {
|
|
3895
|
+
if (!keys.includes(key)) {
|
|
3896
|
+
result[key] = obj[key];
|
|
3897
|
+
}
|
|
3898
|
+
}
|
|
3899
|
+
return result;
|
|
3900
|
+
}
|
|
3901
|
+
__name(omit, "omit");
|
|
3902
|
+
var _a2;
|
|
3903
|
+
var AsyncResourceDetector = (_a2 = class {
|
|
3904
|
+
constructor() {
|
|
3905
|
+
__publicField(this, "_resolved", false);
|
|
3906
|
+
this._promise = new Promise((resolver) => {
|
|
3907
|
+
this._resolver = resolver;
|
|
3908
|
+
});
|
|
3909
|
+
}
|
|
3910
|
+
detect(_config) {
|
|
3911
|
+
return new Resource({}, this._promise);
|
|
3912
|
+
}
|
|
3913
|
+
resolveWithAttributes(attributes) {
|
|
3914
|
+
if (!this._resolver) {
|
|
3915
|
+
throw new Error("Resolver not available");
|
|
3916
|
+
}
|
|
3917
|
+
if (this._resolved) {
|
|
3918
|
+
return;
|
|
3919
|
+
}
|
|
3920
|
+
this._resolved = true;
|
|
3921
|
+
this._resolver(attributes);
|
|
3922
|
+
}
|
|
3923
|
+
}, __name(_a2, "AsyncResourceDetector"), _a2);
|
|
3924
|
+
var _TracingSDK = class _TracingSDK {
|
|
3925
|
+
constructor(config) {
|
|
3926
|
+
this.config = config;
|
|
3927
|
+
this.asyncResourceDetector = new AsyncResourceDetector();
|
|
3928
|
+
setLogLevel(config.diagLogLevel ?? "none");
|
|
3929
|
+
const envResourceAttributesSerialized = getEnvVar("OTEL_RESOURCE_ATTRIBUTES");
|
|
3930
|
+
const envResourceAttributes = envResourceAttributesSerialized ? JSON.parse(envResourceAttributesSerialized) : {};
|
|
3931
|
+
const commonResources = detectResourcesSync({
|
|
3932
|
+
detectors: [
|
|
3933
|
+
this.asyncResourceDetector,
|
|
3934
|
+
processDetectorSync
|
|
3935
|
+
]
|
|
3936
|
+
}).merge(new Resource({
|
|
3937
|
+
[SemanticResourceAttributes.CLOUD_PROVIDER]: "trigger.dev",
|
|
3938
|
+
[SemanticInternalAttributes.TRIGGER]: true
|
|
3939
|
+
})).merge(config.resource ?? new Resource({})).merge(new Resource(envResourceAttributes));
|
|
3940
|
+
const traceProvider = new NodeTracerProvider({
|
|
3941
|
+
forceFlushTimeoutMillis: config.forceFlushTimeoutMillis ?? 500,
|
|
3942
|
+
resource: commonResources,
|
|
3943
|
+
spanLimits: {
|
|
3944
|
+
attributeCountLimit: OTEL_SPAN_ATTRIBUTE_COUNT_LIMIT,
|
|
3945
|
+
attributeValueLengthLimit: OTEL_SPAN_ATTRIBUTE_VALUE_LENGTH_LIMIT,
|
|
3946
|
+
eventCountLimit: OTEL_SPAN_EVENT_COUNT_LIMIT,
|
|
3947
|
+
attributePerEventCountLimit: OTEL_ATTRIBUTE_PER_EVENT_COUNT_LIMIT,
|
|
3948
|
+
linkCountLimit: OTEL_LINK_COUNT_LIMIT,
|
|
3949
|
+
attributePerLinkCountLimit: OTEL_ATTRIBUTE_PER_LINK_COUNT_LIMIT
|
|
3950
|
+
}
|
|
3951
|
+
});
|
|
3952
|
+
const spanExporter = new OTLPTraceExporter({
|
|
3953
|
+
url: `${config.url}/v1/traces`,
|
|
3954
|
+
timeoutMillis: config.forceFlushTimeoutMillis ?? 1e3
|
|
3955
|
+
});
|
|
3956
|
+
traceProvider.addSpanProcessor(new TaskContextSpanProcessor(getEnvVar("OTEL_BATCH_PROCESSING_ENABLED") === "1" ? new BatchSpanProcessor(spanExporter, {
|
|
3957
|
+
maxExportBatchSize: parseInt(getEnvVar("OTEL_SPAN_MAX_EXPORT_BATCH_SIZE") ?? "64"),
|
|
3958
|
+
scheduledDelayMillis: parseInt(getEnvVar("OTEL_SPAN_SCHEDULED_DELAY_MILLIS") ?? "200"),
|
|
3959
|
+
exportTimeoutMillis: parseInt(getEnvVar("OTEL_SPAN_EXPORT_TIMEOUT_MILLIS") ?? "30000"),
|
|
3960
|
+
maxQueueSize: parseInt(getEnvVar("OTEL_SPAN_MAX_QUEUE_SIZE") ?? "512")
|
|
3961
|
+
}) : new SimpleSpanProcessor(spanExporter)));
|
|
3962
|
+
traceProvider.register();
|
|
3963
|
+
registerInstrumentations({
|
|
3964
|
+
instrumentations: config.instrumentations ?? [],
|
|
3965
|
+
tracerProvider: traceProvider
|
|
3966
|
+
});
|
|
3967
|
+
const logExporter = new OTLPLogExporter({
|
|
3968
|
+
url: `${config.url}/v1/logs`
|
|
3969
|
+
});
|
|
3970
|
+
const loggerProvider = new LoggerProvider({
|
|
3971
|
+
resource: commonResources,
|
|
3972
|
+
logRecordLimits: {
|
|
3973
|
+
attributeCountLimit: OTEL_LOG_ATTRIBUTE_COUNT_LIMIT,
|
|
3974
|
+
attributeValueLengthLimit: OTEL_LOG_ATTRIBUTE_VALUE_LENGTH_LIMIT
|
|
3975
|
+
}
|
|
3976
|
+
});
|
|
3977
|
+
loggerProvider.addLogRecordProcessor(new TaskContextLogProcessor(getEnvVar("OTEL_BATCH_PROCESSING_ENABLED") === "1" ? new BatchLogRecordProcessor(logExporter, {
|
|
3978
|
+
maxExportBatchSize: parseInt(getEnvVar("OTEL_LOG_MAX_EXPORT_BATCH_SIZE") ?? "64"),
|
|
3979
|
+
scheduledDelayMillis: parseInt(getEnvVar("OTEL_LOG_SCHEDULED_DELAY_MILLIS") ?? "200"),
|
|
3980
|
+
exportTimeoutMillis: parseInt(getEnvVar("OTEL_LOG_EXPORT_TIMEOUT_MILLIS") ?? "30000"),
|
|
3981
|
+
maxQueueSize: parseInt(getEnvVar("OTEL_LOG_MAX_QUEUE_SIZE") ?? "512")
|
|
3982
|
+
}) : new SimpleLogRecordProcessor(logExporter)));
|
|
3983
|
+
this._logProvider = loggerProvider;
|
|
3984
|
+
this._spanExporter = spanExporter;
|
|
3985
|
+
this._traceProvider = traceProvider;
|
|
3986
|
+
logs.setGlobalLoggerProvider(loggerProvider);
|
|
3987
|
+
this.getLogger = loggerProvider.getLogger.bind(loggerProvider);
|
|
3988
|
+
this.getTracer = traceProvider.getTracer.bind(traceProvider);
|
|
3989
|
+
}
|
|
3990
|
+
async flush() {
|
|
3991
|
+
await this._traceProvider.forceFlush();
|
|
3992
|
+
await this._logProvider.forceFlush();
|
|
3993
|
+
}
|
|
3994
|
+
async shutdown() {
|
|
3995
|
+
await this._traceProvider.shutdown();
|
|
3996
|
+
await this._logProvider.shutdown();
|
|
3997
|
+
}
|
|
3998
|
+
};
|
|
3999
|
+
__name(_TracingSDK, "TracingSDK");
|
|
4000
|
+
var TracingSDK = _TracingSDK;
|
|
4001
|
+
function setLogLevel(level) {
|
|
4002
|
+
let diagLogLevel;
|
|
4003
|
+
switch (level) {
|
|
4004
|
+
case "none":
|
|
4005
|
+
diagLogLevel = DiagLogLevel.NONE;
|
|
4006
|
+
break;
|
|
4007
|
+
case "error":
|
|
4008
|
+
diagLogLevel = DiagLogLevel.ERROR;
|
|
4009
|
+
break;
|
|
4010
|
+
case "warn":
|
|
4011
|
+
diagLogLevel = DiagLogLevel.WARN;
|
|
4012
|
+
break;
|
|
4013
|
+
case "info":
|
|
4014
|
+
diagLogLevel = DiagLogLevel.INFO;
|
|
4015
|
+
break;
|
|
4016
|
+
case "debug":
|
|
4017
|
+
diagLogLevel = DiagLogLevel.DEBUG;
|
|
4018
|
+
break;
|
|
4019
|
+
case "verbose":
|
|
4020
|
+
diagLogLevel = DiagLogLevel.VERBOSE;
|
|
4021
|
+
break;
|
|
4022
|
+
case "all":
|
|
4023
|
+
diagLogLevel = DiagLogLevel.ALL;
|
|
4024
|
+
break;
|
|
4025
|
+
default:
|
|
4026
|
+
diagLogLevel = DiagLogLevel.NONE;
|
|
4027
|
+
}
|
|
4028
|
+
diag.setLogger(new DiagConsoleLogger(), diagLogLevel);
|
|
4029
|
+
}
|
|
4030
|
+
__name(setLogLevel, "setLogLevel");
|
|
4031
|
+
|
|
4032
|
+
// src/v3/otel/index.ts
|
|
4033
|
+
function recordSpanException(span, error) {
|
|
4034
|
+
if (error instanceof Error) {
|
|
4035
|
+
span.recordException(error);
|
|
4036
|
+
} else if (typeof error === "string") {
|
|
4037
|
+
span.recordException(new Error(error));
|
|
4038
|
+
} else {
|
|
4039
|
+
span.recordException(new Error(JSON.stringify(error)));
|
|
4040
|
+
}
|
|
4041
|
+
span.setStatus({
|
|
4042
|
+
code: SpanStatusCode.ERROR
|
|
4043
|
+
});
|
|
4044
|
+
}
|
|
4045
|
+
__name(recordSpanException, "recordSpanException");
|
|
4046
|
+
|
|
4047
|
+
// src/v3/utils/ioSerialization.ts
|
|
4048
|
+
async function parsePacket(value) {
|
|
4049
|
+
if (!value.data) {
|
|
4050
|
+
return void 0;
|
|
4051
|
+
}
|
|
4052
|
+
switch (value.dataType) {
|
|
4053
|
+
case "application/json":
|
|
4054
|
+
return JSON.parse(value.data);
|
|
4055
|
+
case "application/super+json":
|
|
4056
|
+
const { parse } = await loadSuperJSON();
|
|
4057
|
+
return parse(value.data);
|
|
4058
|
+
case "text/plain":
|
|
4059
|
+
return value.data;
|
|
4060
|
+
case "application/store":
|
|
4061
|
+
throw new Error(`Cannot parse an application/store packet (${value.data}). Needs to be imported first.`);
|
|
4062
|
+
default:
|
|
4063
|
+
return value.data;
|
|
4064
|
+
}
|
|
4065
|
+
}
|
|
4066
|
+
__name(parsePacket, "parsePacket");
|
|
4067
|
+
async function stringifyIO(value) {
|
|
4068
|
+
if (value === void 0) {
|
|
4069
|
+
return {
|
|
4070
|
+
dataType: "application/json"
|
|
4071
|
+
};
|
|
4072
|
+
}
|
|
4073
|
+
if (typeof value === "string") {
|
|
4074
|
+
return {
|
|
4075
|
+
data: value,
|
|
4076
|
+
dataType: "text/plain"
|
|
4077
|
+
};
|
|
4078
|
+
}
|
|
4079
|
+
try {
|
|
4080
|
+
const { stringify } = await loadSuperJSON();
|
|
4081
|
+
const data = stringify(value);
|
|
4082
|
+
return {
|
|
4083
|
+
data,
|
|
4084
|
+
dataType: "application/super+json"
|
|
4085
|
+
};
|
|
4086
|
+
} catch {
|
|
4087
|
+
return {
|
|
4088
|
+
dataType: "application/json"
|
|
4089
|
+
};
|
|
4090
|
+
}
|
|
4091
|
+
}
|
|
4092
|
+
__name(stringifyIO, "stringifyIO");
|
|
4093
|
+
async function conditionallyExportPacket(packet, pathPrefix, tracer) {
|
|
4094
|
+
if (apiClientManager.client) {
|
|
4095
|
+
const { needsOffloading, size } = packetRequiresOffloading(packet);
|
|
4096
|
+
if (needsOffloading) {
|
|
4097
|
+
if (!tracer) {
|
|
4098
|
+
return await exportPacket(packet, pathPrefix);
|
|
4099
|
+
} else {
|
|
4100
|
+
const result = await tracer.startActiveSpan("store.uploadOutput", async (span) => {
|
|
4101
|
+
return await exportPacket(packet, pathPrefix);
|
|
4102
|
+
}, {
|
|
4103
|
+
attributes: {
|
|
4104
|
+
byteLength: size,
|
|
4105
|
+
[SemanticInternalAttributes.STYLE_ICON]: "cloud-upload"
|
|
4106
|
+
}
|
|
4107
|
+
});
|
|
4108
|
+
return result ?? packet;
|
|
4109
|
+
}
|
|
4110
|
+
}
|
|
4111
|
+
}
|
|
4112
|
+
return packet;
|
|
4113
|
+
}
|
|
4114
|
+
__name(conditionallyExportPacket, "conditionallyExportPacket");
|
|
4115
|
+
function packetRequiresOffloading(packet) {
|
|
4116
|
+
if (!packet.data) {
|
|
4117
|
+
return {
|
|
4118
|
+
needsOffloading: false,
|
|
4119
|
+
size: 0
|
|
4120
|
+
};
|
|
4121
|
+
}
|
|
4122
|
+
const byteSize = Buffer.byteLength(packet.data, "utf8");
|
|
4123
|
+
return {
|
|
4124
|
+
needsOffloading: byteSize >= OFFLOAD_IO_PACKET_LENGTH_LIMIT,
|
|
4125
|
+
size: byteSize
|
|
4126
|
+
};
|
|
4127
|
+
}
|
|
4128
|
+
__name(packetRequiresOffloading, "packetRequiresOffloading");
|
|
4129
|
+
async function exportPacket(packet, pathPrefix) {
|
|
4130
|
+
const filename = `${pathPrefix}.${getPacketExtension(packet.dataType)}`;
|
|
4131
|
+
const presignedResponse = await apiClientManager.client.createUploadPayloadUrl(filename);
|
|
4132
|
+
if (presignedResponse.ok) {
|
|
4133
|
+
const uploadResponse = await fetch(presignedResponse.data.presignedUrl, {
|
|
4134
|
+
method: "PUT",
|
|
4135
|
+
headers: {
|
|
4136
|
+
"Content-Type": packet.dataType
|
|
4137
|
+
},
|
|
4138
|
+
body: packet.data
|
|
4139
|
+
});
|
|
4140
|
+
if (!uploadResponse.ok) {
|
|
4141
|
+
throw new Error(`Failed to upload output to ${presignedResponse.data.presignedUrl}: ${uploadResponse.statusText}`);
|
|
4142
|
+
}
|
|
4143
|
+
return {
|
|
4144
|
+
data: filename,
|
|
4145
|
+
dataType: "application/store"
|
|
4146
|
+
};
|
|
4147
|
+
}
|
|
4148
|
+
return packet;
|
|
4149
|
+
}
|
|
4150
|
+
__name(exportPacket, "exportPacket");
|
|
4151
|
+
async function conditionallyImportPacket(packet, tracer) {
|
|
4152
|
+
if (packet.dataType !== "application/store") {
|
|
4153
|
+
return packet;
|
|
4154
|
+
}
|
|
4155
|
+
if (!tracer) {
|
|
4156
|
+
return await importPacket(packet);
|
|
4157
|
+
} else {
|
|
4158
|
+
const result = await tracer.startActiveSpan("store.downloadPayload", async (span) => {
|
|
4159
|
+
return await importPacket(packet, span);
|
|
4160
|
+
}, {
|
|
4161
|
+
attributes: {
|
|
4162
|
+
[SemanticInternalAttributes.STYLE_ICON]: "cloud-download"
|
|
4163
|
+
}
|
|
4164
|
+
});
|
|
4165
|
+
return result ?? packet;
|
|
4166
|
+
}
|
|
4167
|
+
}
|
|
4168
|
+
__name(conditionallyImportPacket, "conditionallyImportPacket");
|
|
4169
|
+
async function importPacket(packet, span) {
|
|
4170
|
+
if (!packet.data) {
|
|
4171
|
+
return packet;
|
|
4172
|
+
}
|
|
4173
|
+
if (!apiClientManager.client) {
|
|
4174
|
+
return packet;
|
|
4175
|
+
}
|
|
4176
|
+
const presignedResponse = await apiClientManager.client.getPayloadUrl(packet.data);
|
|
4177
|
+
if (presignedResponse.ok) {
|
|
4178
|
+
const response = await fetch(presignedResponse.data.presignedUrl);
|
|
4179
|
+
if (!response.ok) {
|
|
4180
|
+
throw new Error(`Failed to import packet ${presignedResponse.data.presignedUrl}: ${response.statusText}`);
|
|
4181
|
+
}
|
|
4182
|
+
const data = await response.text();
|
|
4183
|
+
span?.setAttribute("size", Buffer.byteLength(data, "utf8"));
|
|
4184
|
+
return {
|
|
4185
|
+
data,
|
|
4186
|
+
dataType: response.headers.get("content-type") ?? "application/json"
|
|
4187
|
+
};
|
|
4188
|
+
}
|
|
4189
|
+
return packet;
|
|
4190
|
+
}
|
|
4191
|
+
__name(importPacket, "importPacket");
|
|
4192
|
+
async function createPacketAttributes(packet, dataKey, dataTypeKey) {
|
|
4193
|
+
if (!packet.data) {
|
|
4194
|
+
return;
|
|
4195
|
+
}
|
|
4196
|
+
switch (packet.dataType) {
|
|
4197
|
+
case "application/json":
|
|
4198
|
+
return {
|
|
4199
|
+
...flattenAttributes(packet, dataKey),
|
|
4200
|
+
[dataTypeKey]: packet.dataType
|
|
4201
|
+
};
|
|
4202
|
+
case "application/super+json":
|
|
4203
|
+
const { parse } = await loadSuperJSON();
|
|
4204
|
+
if (typeof packet.data === "undefined" || packet.data === null) {
|
|
4205
|
+
return;
|
|
4206
|
+
}
|
|
4207
|
+
try {
|
|
4208
|
+
const parsed = parse(packet.data);
|
|
4209
|
+
const jsonified = JSON.parse(JSON.stringify(parsed, safeReplacer));
|
|
4210
|
+
return {
|
|
4211
|
+
...flattenAttributes(jsonified, dataKey),
|
|
4212
|
+
[dataTypeKey]: "application/json"
|
|
4213
|
+
};
|
|
4214
|
+
} catch {
|
|
4215
|
+
return;
|
|
4216
|
+
}
|
|
4217
|
+
case "application/store":
|
|
4218
|
+
return {
|
|
4219
|
+
[dataKey]: packet.data,
|
|
4220
|
+
[dataTypeKey]: packet.dataType
|
|
4221
|
+
};
|
|
4222
|
+
case "text/plain":
|
|
4223
|
+
return {
|
|
4224
|
+
[dataKey]: packet.data,
|
|
4225
|
+
[dataTypeKey]: packet.dataType
|
|
4226
|
+
};
|
|
4227
|
+
default:
|
|
4228
|
+
return;
|
|
4229
|
+
}
|
|
4230
|
+
}
|
|
4231
|
+
__name(createPacketAttributes, "createPacketAttributes");
|
|
4232
|
+
async function createPacketAttributesAsJson(data, dataType) {
|
|
4233
|
+
if (typeof data === "string" || typeof data === "number" || typeof data === "boolean" || data === null || data === void 0) {
|
|
4234
|
+
return data;
|
|
4235
|
+
}
|
|
4236
|
+
switch (dataType) {
|
|
4237
|
+
case "application/json":
|
|
4238
|
+
return imposeAttributeLimits(flattenAttributes(data, void 0));
|
|
4239
|
+
case "application/super+json":
|
|
4240
|
+
const { deserialize } = await loadSuperJSON();
|
|
4241
|
+
const deserialized = deserialize(data);
|
|
4242
|
+
const jsonify = safeJsonParse(JSON.stringify(deserialized, safeReplacer));
|
|
4243
|
+
return imposeAttributeLimits(flattenAttributes(jsonify, void 0));
|
|
4244
|
+
case "application/store":
|
|
4245
|
+
return data;
|
|
4246
|
+
default:
|
|
4247
|
+
return {};
|
|
4248
|
+
}
|
|
4249
|
+
}
|
|
4250
|
+
__name(createPacketAttributesAsJson, "createPacketAttributesAsJson");
|
|
4251
|
+
async function prettyPrintPacket(rawData, dataType) {
|
|
4252
|
+
if (rawData === void 0) {
|
|
4253
|
+
return "";
|
|
4254
|
+
}
|
|
4255
|
+
if (dataType === "application/super+json") {
|
|
4256
|
+
const { deserialize } = await loadSuperJSON();
|
|
4257
|
+
return await prettyPrintPacket(deserialize(rawData), "application/json");
|
|
4258
|
+
}
|
|
4259
|
+
if (dataType === "application/json") {
|
|
4260
|
+
return JSON.stringify(rawData, safeReplacer, 2);
|
|
4261
|
+
}
|
|
4262
|
+
if (typeof rawData === "string") {
|
|
4263
|
+
return rawData;
|
|
4264
|
+
}
|
|
4265
|
+
return JSON.stringify(rawData, safeReplacer, 2);
|
|
4266
|
+
}
|
|
4267
|
+
__name(prettyPrintPacket, "prettyPrintPacket");
|
|
4268
|
+
function safeReplacer(key, value) {
|
|
4269
|
+
if (typeof value === "bigint") {
|
|
4270
|
+
return value.toString();
|
|
4271
|
+
}
|
|
4272
|
+
if (value instanceof RegExp) {
|
|
4273
|
+
return value.toString();
|
|
4274
|
+
}
|
|
4275
|
+
if (value instanceof Set) {
|
|
4276
|
+
return Array.from(value);
|
|
4277
|
+
}
|
|
4278
|
+
if (value instanceof Map) {
|
|
4279
|
+
const obj = {};
|
|
4280
|
+
value.forEach((v, k) => {
|
|
4281
|
+
obj[k] = v;
|
|
4282
|
+
});
|
|
4283
|
+
return obj;
|
|
4284
|
+
}
|
|
4285
|
+
return value;
|
|
4286
|
+
}
|
|
4287
|
+
__name(safeReplacer, "safeReplacer");
|
|
4288
|
+
function getPacketExtension(outputType) {
|
|
4289
|
+
switch (outputType) {
|
|
4290
|
+
case "application/json":
|
|
4291
|
+
return "json";
|
|
4292
|
+
case "application/super+json":
|
|
4293
|
+
return "json";
|
|
4294
|
+
case "text/plain":
|
|
4295
|
+
return "txt";
|
|
4296
|
+
default:
|
|
4297
|
+
return "txt";
|
|
4298
|
+
}
|
|
4299
|
+
}
|
|
4300
|
+
__name(getPacketExtension, "getPacketExtension");
|
|
4301
|
+
async function loadSuperJSON() {
|
|
4302
|
+
return await import('superjson');
|
|
4303
|
+
}
|
|
4304
|
+
__name(loadSuperJSON, "loadSuperJSON");
|
|
4305
|
+
function safeJsonParse(value) {
|
|
4306
|
+
try {
|
|
4307
|
+
return JSON.parse(value);
|
|
4308
|
+
} catch {
|
|
4309
|
+
return;
|
|
4310
|
+
}
|
|
4311
|
+
}
|
|
4312
|
+
__name(safeJsonParse, "safeJsonParse");
|
|
4313
|
+
|
|
4314
|
+
// src/v3/workers/taskExecutor.ts
|
|
4315
|
+
var _callRun, callRun_fn, _callTaskInit, callTaskInit_fn, _callTaskCleanup, callTaskCleanup_fn, _handleError, handleError_fn;
|
|
4316
|
+
var _TaskExecutor = class _TaskExecutor {
|
|
4317
|
+
constructor(task, options) {
|
|
4318
|
+
__privateAdd(this, _callRun);
|
|
4319
|
+
__privateAdd(this, _callTaskInit);
|
|
4320
|
+
__privateAdd(this, _callTaskCleanup);
|
|
4321
|
+
__privateAdd(this, _handleError);
|
|
4322
|
+
this.task = task;
|
|
4323
|
+
this._tracingSDK = options.tracingSDK;
|
|
4324
|
+
this._tracer = options.tracer;
|
|
4325
|
+
this._consoleInterceptor = options.consoleInterceptor;
|
|
4326
|
+
this._config = options.projectConfig;
|
|
4327
|
+
this._importedConfig = options.importedConfig;
|
|
4328
|
+
this._handleErrorFn = options.handleErrorFn;
|
|
4329
|
+
}
|
|
4330
|
+
async execute(execution, worker, traceContext) {
|
|
4331
|
+
const ctx = TaskRunContext.parse(execution);
|
|
4332
|
+
const attemptMessage = `Attempt ${execution.attempt.number}`;
|
|
4333
|
+
const originalPacket = {
|
|
4334
|
+
data: execution.run.payload,
|
|
4335
|
+
dataType: execution.run.payloadType
|
|
4336
|
+
};
|
|
4337
|
+
const result = await taskContextManager.runWith({
|
|
4338
|
+
ctx,
|
|
4339
|
+
worker
|
|
4340
|
+
}, async () => {
|
|
4341
|
+
this._tracingSDK.asyncResourceDetector.resolveWithAttributes({
|
|
4342
|
+
...taskContextManager.attributes,
|
|
4343
|
+
[SemanticInternalAttributes.SDK_VERSION]: this.task.packageVersion,
|
|
4344
|
+
[SemanticInternalAttributes.SDK_LANGUAGE]: "typescript"
|
|
4345
|
+
});
|
|
4346
|
+
return await this._tracer.startActiveSpan(attemptMessage, async (span) => {
|
|
4347
|
+
return await this._consoleInterceptor.intercept(console, async () => {
|
|
4348
|
+
let parsedPayload;
|
|
4349
|
+
let initOutput;
|
|
4350
|
+
try {
|
|
4351
|
+
const payloadPacket = await conditionallyImportPacket(originalPacket, this._tracer);
|
|
4352
|
+
parsedPayload = await parsePacket(payloadPacket);
|
|
4353
|
+
initOutput = await __privateMethod(this, _callTaskInit, callTaskInit_fn).call(this, parsedPayload, ctx);
|
|
4354
|
+
const output = await __privateMethod(this, _callRun, callRun_fn).call(this, parsedPayload, ctx, initOutput);
|
|
4355
|
+
try {
|
|
4356
|
+
const stringifiedOutput = await stringifyIO(output);
|
|
4357
|
+
const finalOutput = await conditionallyExportPacket(stringifiedOutput, `${execution.attempt.id}/output`, this._tracer);
|
|
4358
|
+
const attributes = await createPacketAttributes(finalOutput, SemanticInternalAttributes.OUTPUT, SemanticInternalAttributes.OUTPUT_TYPE);
|
|
4359
|
+
if (attributes) {
|
|
4360
|
+
span.setAttributes(attributes);
|
|
4361
|
+
}
|
|
4362
|
+
return {
|
|
4363
|
+
ok: true,
|
|
4364
|
+
id: execution.attempt.id,
|
|
4365
|
+
output: finalOutput.data,
|
|
4366
|
+
outputType: finalOutput.dataType
|
|
4367
|
+
};
|
|
4368
|
+
} catch (stringifyError) {
|
|
4369
|
+
recordSpanException(span, stringifyError);
|
|
4370
|
+
return {
|
|
4371
|
+
ok: false,
|
|
4372
|
+
id: execution.attempt.id,
|
|
4373
|
+
error: {
|
|
4374
|
+
type: "INTERNAL_ERROR",
|
|
4375
|
+
code: TaskRunErrorCodes.TASK_OUTPUT_ERROR,
|
|
4376
|
+
message: stringifyError instanceof Error ? stringifyError.message : typeof stringifyError === "string" ? stringifyError : void 0
|
|
4377
|
+
}
|
|
4378
|
+
};
|
|
4379
|
+
}
|
|
4380
|
+
} catch (runError) {
|
|
4381
|
+
try {
|
|
4382
|
+
const handleErrorResult = await __privateMethod(this, _handleError, handleError_fn).call(this, execution, runError, parsedPayload, ctx);
|
|
4383
|
+
recordSpanException(span, handleErrorResult.error ?? runError);
|
|
4384
|
+
return {
|
|
4385
|
+
id: execution.attempt.id,
|
|
4386
|
+
ok: false,
|
|
4387
|
+
error: handleErrorResult.error ? parseError(handleErrorResult.error) : parseError(runError),
|
|
4388
|
+
retry: handleErrorResult.status === "retry" ? handleErrorResult.retry : void 0,
|
|
4389
|
+
skippedRetrying: handleErrorResult.status === "skipped"
|
|
4390
|
+
};
|
|
4391
|
+
} catch (handleErrorError) {
|
|
4392
|
+
recordSpanException(span, handleErrorError);
|
|
4393
|
+
return {
|
|
4394
|
+
ok: false,
|
|
4395
|
+
id: execution.attempt.id,
|
|
4396
|
+
error: {
|
|
4397
|
+
type: "INTERNAL_ERROR",
|
|
4398
|
+
code: TaskRunErrorCodes.HANDLE_ERROR_ERROR,
|
|
4399
|
+
message: handleErrorError instanceof Error ? handleErrorError.message : typeof handleErrorError === "string" ? handleErrorError : void 0
|
|
4400
|
+
}
|
|
4401
|
+
};
|
|
4402
|
+
}
|
|
4403
|
+
} finally {
|
|
4404
|
+
await __privateMethod(this, _callTaskCleanup, callTaskCleanup_fn).call(this, parsedPayload, ctx, initOutput);
|
|
4405
|
+
}
|
|
4406
|
+
});
|
|
4407
|
+
}, {
|
|
4408
|
+
kind: SpanKind.CONSUMER,
|
|
4409
|
+
attributes: {
|
|
4410
|
+
[SemanticInternalAttributes.STYLE_ICON]: "attempt",
|
|
4411
|
+
...accessoryAttributes({
|
|
4412
|
+
items: [
|
|
4413
|
+
{
|
|
4414
|
+
text: ctx.task.filePath
|
|
4415
|
+
},
|
|
4416
|
+
{
|
|
4417
|
+
text: `${ctx.task.exportName}.run()`
|
|
4418
|
+
}
|
|
4419
|
+
],
|
|
4420
|
+
style: "codepath"
|
|
4421
|
+
})
|
|
4422
|
+
}
|
|
4423
|
+
}, this._tracer.extractContext(traceContext));
|
|
4424
|
+
});
|
|
4425
|
+
return result;
|
|
4426
|
+
}
|
|
4427
|
+
};
|
|
4428
|
+
_callRun = new WeakSet();
|
|
4429
|
+
callRun_fn = /* @__PURE__ */ __name(async function(payload, ctx, init) {
|
|
4430
|
+
const runFn = this.task.fns.run;
|
|
4431
|
+
const middlewareFn = this.task.fns.middleware;
|
|
4432
|
+
if (!runFn) {
|
|
4433
|
+
throw new Error("Task does not have a run function");
|
|
4434
|
+
}
|
|
4435
|
+
if (!middlewareFn) {
|
|
4436
|
+
return runFn(payload, {
|
|
4437
|
+
ctx
|
|
4438
|
+
});
|
|
4439
|
+
}
|
|
4440
|
+
return middlewareFn(payload, {
|
|
4441
|
+
ctx,
|
|
4442
|
+
next: async () => runFn(payload, {
|
|
4443
|
+
ctx,
|
|
4444
|
+
init
|
|
4445
|
+
})
|
|
4446
|
+
});
|
|
4447
|
+
}, "#callRun");
|
|
4448
|
+
_callTaskInit = new WeakSet();
|
|
4449
|
+
callTaskInit_fn = /* @__PURE__ */ __name(async function(payload1, ctx1) {
|
|
4450
|
+
const initFn = this.task.fns.init;
|
|
4451
|
+
if (!initFn) {
|
|
4452
|
+
return {};
|
|
4453
|
+
}
|
|
4454
|
+
return this._tracer.startActiveSpan("init", async (span) => {
|
|
4455
|
+
return await initFn(payload1, {
|
|
4456
|
+
ctx: ctx1
|
|
4457
|
+
});
|
|
4458
|
+
});
|
|
4459
|
+
}, "#callTaskInit");
|
|
4460
|
+
_callTaskCleanup = new WeakSet();
|
|
4461
|
+
callTaskCleanup_fn = /* @__PURE__ */ __name(async function(payload2, ctx2, init1) {
|
|
4462
|
+
const cleanupFn = this.task.fns.cleanup;
|
|
4463
|
+
if (!cleanupFn) {
|
|
4464
|
+
return;
|
|
4465
|
+
}
|
|
4466
|
+
return this._tracer.startActiveSpan("cleanup", async (span) => {
|
|
4467
|
+
return await cleanupFn(payload2, {
|
|
4468
|
+
ctx: ctx2,
|
|
4469
|
+
init: init1
|
|
4470
|
+
});
|
|
4471
|
+
});
|
|
4472
|
+
}, "#callTaskCleanup");
|
|
4473
|
+
_handleError = new WeakSet();
|
|
4474
|
+
handleError_fn = /* @__PURE__ */ __name(async function(execution, error, payload3, ctx3) {
|
|
4475
|
+
const retriesConfig = this._importedConfig?.retries ?? this._config.retries;
|
|
4476
|
+
const retry = this.task.retry ?? retriesConfig?.default;
|
|
4477
|
+
if (!retry) {
|
|
4478
|
+
return {
|
|
4479
|
+
status: "noop"
|
|
4480
|
+
};
|
|
4481
|
+
}
|
|
4482
|
+
const delay = calculateNextRetryDelay(retry, execution.attempt.number);
|
|
4483
|
+
if (execution.environment.type === "DEVELOPMENT" && typeof retriesConfig?.enabledInDev === "boolean" && !retriesConfig.enabledInDev) {
|
|
4484
|
+
return {
|
|
4485
|
+
status: "skipped"
|
|
4486
|
+
};
|
|
4487
|
+
}
|
|
4488
|
+
return this._tracer.startActiveSpan("handleError()", async (span) => {
|
|
4489
|
+
const handleErrorResult = this.task.fns.handleError ? await this.task.fns.handleError(payload3, error, {
|
|
4490
|
+
ctx: ctx3,
|
|
4491
|
+
retry,
|
|
4492
|
+
retryDelayInMs: delay,
|
|
4493
|
+
retryAt: delay ? new Date(Date.now() + delay) : void 0
|
|
4494
|
+
}) : this._importedConfig ? await this._handleErrorFn?.(payload3, error, {
|
|
4495
|
+
ctx: ctx3,
|
|
4496
|
+
retry,
|
|
4497
|
+
retryDelayInMs: delay,
|
|
4498
|
+
retryAt: delay ? new Date(Date.now() + delay) : void 0
|
|
4499
|
+
}) : void 0;
|
|
4500
|
+
if (!handleErrorResult) {
|
|
4501
|
+
return typeof delay === "undefined" ? {
|
|
4502
|
+
status: "noop"
|
|
4503
|
+
} : {
|
|
4504
|
+
status: "retry",
|
|
4505
|
+
retry: {
|
|
4506
|
+
timestamp: Date.now() + delay,
|
|
4507
|
+
delay
|
|
4508
|
+
}
|
|
4509
|
+
};
|
|
4510
|
+
}
|
|
4511
|
+
if (handleErrorResult.skipRetrying) {
|
|
4512
|
+
return {
|
|
4513
|
+
status: "skipped",
|
|
4514
|
+
error: handleErrorResult.error
|
|
4515
|
+
};
|
|
4516
|
+
}
|
|
4517
|
+
if (typeof handleErrorResult.retryAt !== "undefined") {
|
|
4518
|
+
return {
|
|
4519
|
+
status: "retry",
|
|
4520
|
+
retry: {
|
|
4521
|
+
timestamp: handleErrorResult.retryAt.getTime(),
|
|
4522
|
+
delay: handleErrorResult.retryAt.getTime() - Date.now()
|
|
4523
|
+
},
|
|
4524
|
+
error: handleErrorResult.error
|
|
4525
|
+
};
|
|
4526
|
+
}
|
|
4527
|
+
if (typeof handleErrorResult.retryDelayInMs === "number") {
|
|
4528
|
+
return {
|
|
4529
|
+
status: "retry",
|
|
4530
|
+
retry: {
|
|
4531
|
+
timestamp: Date.now() + handleErrorResult.retryDelayInMs,
|
|
4532
|
+
delay: handleErrorResult.retryDelayInMs
|
|
4533
|
+
},
|
|
4534
|
+
error: handleErrorResult.error
|
|
4535
|
+
};
|
|
4536
|
+
}
|
|
4537
|
+
if (handleErrorResult.retry && typeof handleErrorResult.retry === "object") {
|
|
4538
|
+
const delay2 = calculateNextRetryDelay(handleErrorResult.retry, execution.attempt.number);
|
|
4539
|
+
return typeof delay2 === "undefined" ? {
|
|
4540
|
+
status: "noop",
|
|
4541
|
+
error: handleErrorResult.error
|
|
4542
|
+
} : {
|
|
4543
|
+
status: "retry",
|
|
4544
|
+
retry: {
|
|
4545
|
+
timestamp: Date.now() + delay2,
|
|
4546
|
+
delay: delay2
|
|
4547
|
+
},
|
|
4548
|
+
error: handleErrorResult.error
|
|
4549
|
+
};
|
|
4550
|
+
}
|
|
4551
|
+
return {
|
|
4552
|
+
status: "noop",
|
|
4553
|
+
error: handleErrorResult.error
|
|
4554
|
+
};
|
|
4555
|
+
}, {
|
|
4556
|
+
attributes: {
|
|
4557
|
+
[SemanticInternalAttributes.STYLE_ICON]: "exclamation-circle"
|
|
4558
|
+
}
|
|
4559
|
+
});
|
|
4560
|
+
}, "#handleError");
|
|
4561
|
+
__name(_TaskExecutor, "TaskExecutor");
|
|
4562
|
+
var TaskExecutor = _TaskExecutor;
|
|
4563
|
+
|
|
4564
|
+
// package.json
|
|
4565
|
+
var dependencies = {
|
|
4566
|
+
"@google-cloud/precise-date": "^4.0.0",
|
|
4567
|
+
"@opentelemetry/api": "^1.8.0",
|
|
4568
|
+
"@opentelemetry/api-logs": "^0.48.0",
|
|
4569
|
+
"@opentelemetry/exporter-logs-otlp-http": "^0.49.1",
|
|
4570
|
+
"@opentelemetry/exporter-trace-otlp-http": "^0.49.1",
|
|
4571
|
+
"@opentelemetry/instrumentation": "^0.49.1",
|
|
4572
|
+
"@opentelemetry/resources": "^1.22.0",
|
|
4573
|
+
"@opentelemetry/sdk-logs": "^0.49.1",
|
|
4574
|
+
"@opentelemetry/sdk-node": "^0.49.1",
|
|
4575
|
+
"@opentelemetry/sdk-trace-base": "^1.22.0",
|
|
4576
|
+
"@opentelemetry/sdk-trace-node": "^1.22.0",
|
|
4577
|
+
"@opentelemetry/semantic-conventions": "^1.22.0",
|
|
4578
|
+
"humanize-duration": "^3.27.3",
|
|
4579
|
+
"socket.io": "^4.7.4",
|
|
4580
|
+
"socket.io-client": "^4.7.4",
|
|
4581
|
+
superjson: "^2.2.1",
|
|
4582
|
+
ulidx: "^2.2.1",
|
|
4583
|
+
zod: "3.22.3",
|
|
4584
|
+
"zod-error": "1.5.0"
|
|
4585
|
+
};
|
|
4586
|
+
|
|
4587
|
+
// src/v3/utils/detectDependencyVersion.ts
|
|
4588
|
+
function detectDependencyVersion(dependency) {
|
|
4589
|
+
return dependencies[dependency];
|
|
4590
|
+
}
|
|
4591
|
+
__name(detectDependencyVersion, "detectDependencyVersion");
|
|
4592
|
+
|
|
1016
4593
|
// src/v3/index.ts
|
|
1017
4594
|
function parseTriggerTaskRequestBody(body) {
|
|
1018
4595
|
return TriggerTaskRequestBody.safeParse(body);
|
|
1019
4596
|
}
|
|
1020
4597
|
__name(parseTriggerTaskRequestBody, "parseTriggerTaskRequestBody");
|
|
4598
|
+
function parseBatchTriggerTaskRequestBody(body) {
|
|
4599
|
+
return BatchTriggerTaskRequestBody.safeParse(body);
|
|
4600
|
+
}
|
|
4601
|
+
__name(parseBatchTriggerTaskRequestBody, "parseBatchTriggerTaskRequestBody");
|
|
1021
4602
|
|
|
1022
|
-
export { ApiClient, BackgroundWorkerClientMessages, BackgroundWorkerMetadata,
|
|
4603
|
+
export { ApiClient, ApiClientManager, BackgroundWorkerClientMessages, BackgroundWorkerMetadata, BackgroundWorkerProperties, BackgroundWorkerServerMessages, BatchTaskRunExecutionResult, BatchTriggerTaskRequestBody, BatchTriggerTaskResponse, CancellationSpanEvent, ClientToSharedQueueMessages, Config, ConsoleInterceptor, CoordinatorToPlatformMessages, CoordinatorToProdWorkerMessages, CreateAuthorizationCodeResponseSchema, CreateBackgroundWorkerRequestBody, CreateBackgroundWorkerResponse, CreateUploadPayloadUrlResponseBody, DeploymentErrorData, DevRuntimeManager, PreciseWallClock as DurableClock, EnvironmentType, EventFilter, ExceptionEventProperties, ExceptionSpanEvent, ExternalBuildData, FetchRetryBackoffStrategy, FetchRetryByStatusOptions, FetchRetryHeadersStrategy, FetchRetryOptions, FetchRetryStrategy, FetchTimeoutOptions, FixedWindowRateLimit, GetBatchResponseBody, GetDeploymentResponseBody, GetEnvironmentVariablesResponseBody, GetPersonalAccessTokenRequestSchema, GetPersonalAccessTokenResponseSchema, GetProjectEnvResponse, GetProjectResponseBody, GetProjectsResponseBody, ImageDetailsMetadata, InitializeDeploymentRequestBody, InitializeDeploymentResponseBody, LogLevel, Machine, MachineCpu, MachineMemory, OFFLOAD_IO_PACKET_LENGTH_LIMIT, OTEL_ATTRIBUTE_PER_EVENT_COUNT_LIMIT, OTEL_ATTRIBUTE_PER_LINK_COUNT_LIMIT, OTEL_LINK_COUNT_LIMIT, OTEL_LOG_ATTRIBUTE_COUNT_LIMIT, OTEL_LOG_ATTRIBUTE_VALUE_LENGTH_LIMIT, OTEL_SPAN_ATTRIBUTE_COUNT_LIMIT, OTEL_SPAN_ATTRIBUTE_VALUE_LENGTH_LIMIT, OTEL_SPAN_EVENT_COUNT_LIMIT, OtelTaskLogger, OtherSpanEvent, PRIMARY_VARIANT, PlatformToCoordinatorMessages, PlatformToProviderMessages, PostStartCauses, PreStopCauses, ProdChildToWorkerMessages, ProdRuntimeManager, ProdTaskRunExecution, ProdTaskRunExecutionPayload, ProdWorkerSocketData, ProdWorkerToChildMessages, ProdWorkerToCoordinatorMessages, ProviderToPlatformMessages, QueueOptions, RateLimitOptions, RetryOptions, SemanticInternalAttributes, SharedQueueToClientMessages, SimpleStructuredLogger, SlidingWindowRateLimit, SpanEvent, SpanEvents, SpanMessagingEvent, StartDeploymentIndexingRequestBody, StartDeploymentIndexingResponseBody, TaskContextSpanProcessor, TaskEventStyle, TaskExecutor, TaskMetadata, TaskMetadataFailedToParseData, TaskMetadataWithFilePath, TaskResource, TaskRun, TaskRunBuiltInError, TaskRunContext, TaskRunCustomErrorObject, TaskRunError, TaskRunErrorCodes, TaskRunExecution, TaskRunExecutionAttempt, TaskRunExecutionBatch, TaskRunExecutionEnvironment, TaskRunExecutionOrganization, TaskRunExecutionPayload, TaskRunExecutionProject, TaskRunExecutionQueue, TaskRunExecutionResult, TaskRunExecutionRetry, TaskRunExecutionTask, TaskRunFailedExecutionResult, TaskRunInternalError, TaskRunStringError, TaskRunSuccessfulExecutionResult, TracingSDK, TriggerTaskRequestBody, TriggerTaskResponse, TriggerTracer, UncaughtExceptionMessage, WaitReason, WhoAmIResponseSchema, ZodIpcConnection, ZodMessageHandler, ZodMessageSchema, ZodMessageSender, ZodNamespace, ZodSchemaParsedError, ZodSocketConnection, ZodSocketMessageHandler, ZodSocketMessageSender, accessoryAttributes, apiClientManager, calculateNextRetryDelay, calculateResetAt2 as calculateResetAt, childToWorkerMessages, clientWebsocketMessages, clock, conditionallyExportPacket, conditionallyImportPacket, correctErrorStackTrace, createErrorTaskError, createPacketAttributes, createPacketAttributesAsJson, defaultFetchRetryOptions, defaultRetryOptions, detectDependencyVersion, eventFilterMatches, flattenAttributes, formatDuration, formatDurationInDays, formatDurationMilliseconds, formatDurationNanoseconds, getEnvVar, groupTaskMetadataIssuesByTask, iconStringForSeverity, imposeAttributeLimits, isCancellationSpanEvent, isExceptionSpanEvent, logLevels, logger, millisecondsToNanoseconds, nanosecondsToMilliseconds, omit, packetRequiresOffloading, parseBatchTriggerTaskRequestBody, parseError, parsePacket, parseTriggerTaskRequestBody, prettyPrintPacket, primitiveValueOrflattenedAttributes, recordSpanException, runtime, serverWebsocketMessages, stringPatternMatchers, stringifyIO, taskContextManager, unflattenAttributes, workerToChildMessages };
|
|
1023
4604
|
//# sourceMappingURL=out.js.map
|
|
1024
4605
|
//# sourceMappingURL=index.mjs.map
|