@trigger.dev/core 0.0.0-prerelease-20240112134133 → 0.0.0-prerelease-20240219135254

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.
@@ -0,0 +1,1082 @@
1
+ 'use strict';
2
+
3
+ var zod = require('zod');
4
+ var api = require('@opentelemetry/api');
5
+ var node_async_hooks = require('node:async_hooks');
6
+ var apiLogs = require('@opentelemetry/api-logs');
7
+ var util = require('node:util');
8
+
9
+ function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
10
+
11
+ var util__default = /*#__PURE__*/_interopDefault(util);
12
+
13
+ var __defProp = Object.defineProperty;
14
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
15
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
16
+ var __publicField = (obj, key, value) => {
17
+ __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
18
+ return value;
19
+ };
20
+ var __accessCheck = (obj, member, msg) => {
21
+ if (!member.has(obj))
22
+ throw TypeError("Cannot " + msg);
23
+ };
24
+ var __privateGet = (obj, member, getter) => {
25
+ __accessCheck(obj, member, "read from private field");
26
+ return getter ? getter.call(obj) : member.get(obj);
27
+ };
28
+ var __privateAdd = (obj, member, value) => {
29
+ if (member.has(obj))
30
+ throw TypeError("Cannot add the same private member more than once");
31
+ member instanceof WeakSet ? member.add(obj) : member.set(obj, value);
32
+ };
33
+ var __privateSet = (obj, member, value, setter) => {
34
+ __accessCheck(obj, member, "write to private field");
35
+ setter ? setter.call(obj, value) : member.set(obj, value);
36
+ return value;
37
+ };
38
+ var __privateMethod = (obj, member, method) => {
39
+ __accessCheck(obj, member, "access private method");
40
+ return method;
41
+ };
42
+ var CreateAuthorizationCodeResponseSchema = zod.z.object({
43
+ url: zod.z.string().url(),
44
+ authorizationCode: zod.z.string()
45
+ });
46
+ var GetPersonalAccessTokenRequestSchema = zod.z.object({
47
+ authorizationCode: zod.z.string()
48
+ });
49
+ var GetPersonalAccessTokenResponseSchema = zod.z.object({
50
+ token: zod.z.object({
51
+ token: zod.z.string(),
52
+ obfuscatedToken: zod.z.string()
53
+ }).nullable()
54
+ });
55
+ var TaskResource = zod.z.object({
56
+ id: zod.z.string(),
57
+ filePath: zod.z.string(),
58
+ exportName: zod.z.string()
59
+ });
60
+ var BackgroundWorkerMetadata = zod.z.object({
61
+ packageVersion: zod.z.string(),
62
+ contentHash: zod.z.string(),
63
+ cliPackageVersion: zod.z.string(),
64
+ tasks: zod.z.array(TaskResource)
65
+ });
66
+
67
+ // src/v3/schemas/api.ts
68
+ var WhoAmIResponseSchema = zod.z.object({
69
+ userId: zod.z.string(),
70
+ email: zod.z.string().email()
71
+ });
72
+ var GetProjectDevResponse = zod.z.object({
73
+ apiKey: zod.z.string(),
74
+ name: zod.z.string()
75
+ });
76
+ var CreateBackgroundWorkerRequestBody = zod.z.object({
77
+ localOnly: zod.z.boolean(),
78
+ metadata: BackgroundWorkerMetadata
79
+ });
80
+ var CreateBackgroundWorkerResponse = zod.z.object({
81
+ id: zod.z.string(),
82
+ version: zod.z.string(),
83
+ contentHash: zod.z.string()
84
+ });
85
+ var BackgroundWorkerRecord = CreateBackgroundWorkerResponse;
86
+ var TriggerTaskRequestBody = zod.z.object({
87
+ payload: zod.z.any(),
88
+ context: zod.z.any(),
89
+ options: zod.z.object({
90
+ parentAttempt: zod.z.string().optional(),
91
+ lockToCurrentVersion: zod.z.boolean().optional()
92
+ }).optional()
93
+ });
94
+ var TriggerTaskResponse = zod.z.object({
95
+ id: zod.z.string()
96
+ });
97
+ var TaskRunBuiltInError = zod.z.object({
98
+ type: zod.z.literal("BUILT_IN_ERROR"),
99
+ name: zod.z.string(),
100
+ message: zod.z.string(),
101
+ stackTrace: zod.z.string()
102
+ });
103
+ var TaskRunCustomErrorObject = zod.z.object({
104
+ type: zod.z.literal("CUSTOM_ERROR"),
105
+ raw: zod.z.string()
106
+ });
107
+ var TaskRunStringError = zod.z.object({
108
+ type: zod.z.literal("STRING_ERROR"),
109
+ raw: zod.z.string()
110
+ });
111
+ var TaskRunErrorCodes = {
112
+ COULD_NOT_FIND_EXECUTOR: "COULD_NOT_FIND_EXECUTOR"
113
+ };
114
+ var TaskRunInternalError = zod.z.object({
115
+ type: zod.z.literal("INTERNAL_ERROR"),
116
+ code: zod.z.enum([
117
+ "COULD_NOT_FIND_EXECUTOR"
118
+ ])
119
+ });
120
+ var TaskRunError = zod.z.discriminatedUnion("type", [
121
+ TaskRunBuiltInError,
122
+ TaskRunCustomErrorObject,
123
+ TaskRunStringError,
124
+ TaskRunInternalError
125
+ ]);
126
+ var TaskRun = zod.z.object({
127
+ id: zod.z.string(),
128
+ payload: zod.z.string(),
129
+ payloadType: zod.z.string(),
130
+ context: zod.z.any(),
131
+ tags: zod.z.array(zod.z.string()),
132
+ createdAt: zod.z.coerce.date()
133
+ });
134
+ var TaskRunExecutionTask = zod.z.object({
135
+ id: zod.z.string(),
136
+ filePath: zod.z.string(),
137
+ exportName: zod.z.string()
138
+ });
139
+ var TaskRunExecutionAttempt = zod.z.object({
140
+ id: zod.z.string(),
141
+ number: zod.z.number(),
142
+ startedAt: zod.z.coerce.date(),
143
+ backgroundWorkerId: zod.z.string(),
144
+ backgroundWorkerTaskId: zod.z.string(),
145
+ status: zod.z.string()
146
+ });
147
+ var TaskRunExecutionEnvironment = zod.z.object({
148
+ id: zod.z.string(),
149
+ slug: zod.z.string(),
150
+ type: zod.z.enum([
151
+ "PRODUCTION",
152
+ "STAGING",
153
+ "DEVELOPMENT",
154
+ "PREVIEW"
155
+ ])
156
+ });
157
+ var TaskRunExecutionOrganization = zod.z.object({
158
+ id: zod.z.string(),
159
+ slug: zod.z.string(),
160
+ name: zod.z.string()
161
+ });
162
+ var TaskRunExecutionProject = zod.z.object({
163
+ id: zod.z.string(),
164
+ ref: zod.z.string(),
165
+ slug: zod.z.string(),
166
+ name: zod.z.string()
167
+ });
168
+ var TaskRunExecution = zod.z.object({
169
+ task: TaskRunExecutionTask,
170
+ attempt: TaskRunExecutionAttempt,
171
+ run: TaskRun,
172
+ environment: TaskRunExecutionEnvironment,
173
+ organization: TaskRunExecutionOrganization,
174
+ project: TaskRunExecutionProject
175
+ });
176
+ var TaskRunContext = zod.z.object({
177
+ task: TaskRunExecutionTask,
178
+ attempt: TaskRunExecutionAttempt.omit({
179
+ backgroundWorkerId: true,
180
+ backgroundWorkerTaskId: true
181
+ }),
182
+ run: TaskRun.omit({
183
+ payload: true,
184
+ payloadType: true
185
+ }),
186
+ environment: TaskRunExecutionEnvironment,
187
+ organization: TaskRunExecutionOrganization,
188
+ project: TaskRunExecutionProject
189
+ });
190
+ var TaskRunFailedExecutionResult = zod.z.object({
191
+ ok: zod.z.literal(false),
192
+ id: zod.z.string(),
193
+ error: TaskRunError
194
+ });
195
+ var TaskRunSuccessfulExecutionResult = zod.z.object({
196
+ ok: zod.z.literal(true),
197
+ id: zod.z.string(),
198
+ output: zod.z.string(),
199
+ outputType: zod.z.string()
200
+ });
201
+ var TaskRunExecutionResult = zod.z.discriminatedUnion("ok", [
202
+ TaskRunSuccessfulExecutionResult,
203
+ TaskRunFailedExecutionResult
204
+ ]);
205
+ var TaskRunExecutionPayload = zod.z.object({
206
+ execution: TaskRunExecution,
207
+ traceContext: zod.z.record(zod.z.unknown())
208
+ });
209
+ var BackgroundWorkerServerMessages = zod.z.discriminatedUnion("type", [
210
+ zod.z.object({
211
+ type: zod.z.literal("EXECUTE_RUNS"),
212
+ payloads: zod.z.array(TaskRunExecutionPayload)
213
+ })
214
+ ]);
215
+ var serverWebsocketMessages = {
216
+ SERVER_READY: zod.z.object({
217
+ version: zod.z.literal("v1").default("v1"),
218
+ id: zod.z.string()
219
+ }),
220
+ BACKGROUND_WORKER_MESSAGE: zod.z.object({
221
+ version: zod.z.literal("v1").default("v1"),
222
+ backgroundWorkerId: zod.z.string(),
223
+ data: BackgroundWorkerServerMessages
224
+ })
225
+ };
226
+ var BackgroundWorkerClientMessages = zod.z.discriminatedUnion("type", [
227
+ zod.z.object({
228
+ version: zod.z.literal("v1").default("v1"),
229
+ type: zod.z.literal("TASK_RUN_COMPLETED"),
230
+ completion: TaskRunExecutionResult
231
+ })
232
+ ]);
233
+ var clientWebsocketMessages = {
234
+ READY_FOR_TASKS: zod.z.object({
235
+ version: zod.z.literal("v1").default("v1"),
236
+ backgroundWorkerId: zod.z.string()
237
+ }),
238
+ WORKER_DEPRECATED: zod.z.object({
239
+ version: zod.z.literal("v1").default("v1"),
240
+ backgroundWorkerId: zod.z.string()
241
+ }),
242
+ BACKGROUND_WORKER_MESSAGE: zod.z.object({
243
+ version: zod.z.literal("v1").default("v1"),
244
+ backgroundWorkerId: zod.z.string(),
245
+ data: BackgroundWorkerClientMessages
246
+ })
247
+ };
248
+ var workerToChildMessages = {
249
+ EXECUTE_TASK_RUN: zod.z.object({
250
+ version: zod.z.literal("v1").default("v1"),
251
+ execution: TaskRunExecution,
252
+ traceContext: zod.z.record(zod.z.unknown()),
253
+ metadata: BackgroundWorkerRecord
254
+ }),
255
+ TASK_RUN_COMPLETED: zod.z.object({
256
+ version: zod.z.literal("v1").default("v1"),
257
+ completion: TaskRunExecutionResult,
258
+ execution: TaskRunExecution
259
+ }),
260
+ CLEANUP: zod.z.object({
261
+ version: zod.z.literal("v1").default("v1"),
262
+ flush: zod.z.boolean().default(false)
263
+ })
264
+ };
265
+ var TaskMetadata = zod.z.object({
266
+ id: zod.z.string(),
267
+ exportName: zod.z.string(),
268
+ packageVersion: zod.z.string()
269
+ });
270
+ var TaskMetadataWithFilePath = TaskMetadata.extend({
271
+ filePath: zod.z.string()
272
+ });
273
+ var childToWorkerMessages = {
274
+ TASK_RUN_COMPLETED: zod.z.object({
275
+ version: zod.z.literal("v1").default("v1"),
276
+ result: TaskRunExecutionResult
277
+ }),
278
+ TASKS_READY: zod.z.object({
279
+ version: zod.z.literal("v1").default("v1"),
280
+ tasks: TaskMetadataWithFilePath.array()
281
+ }),
282
+ READY_TO_DISPOSE: zod.z.undefined()
283
+ };
284
+
285
+ // src/zodfetch.ts
286
+ async function zodfetch(schema, url, requestInit) {
287
+ try {
288
+ const response = await fetch(url, requestInit);
289
+ if ((!requestInit || requestInit.method === "GET") && response.status === 404) {
290
+ return {
291
+ ok: false,
292
+ error: `404: ${response.statusText}`
293
+ };
294
+ }
295
+ if (response.status >= 400 && response.status < 500) {
296
+ const body = await response.json();
297
+ if (!body.error) {
298
+ return {
299
+ ok: false,
300
+ error: "Something went wrong"
301
+ };
302
+ }
303
+ return {
304
+ ok: false,
305
+ error: body.error
306
+ };
307
+ }
308
+ if (response.status !== 200) {
309
+ return {
310
+ ok: false,
311
+ error: `Failed to fetch ${url}, got status code ${response.status}`
312
+ };
313
+ }
314
+ const jsonBody = await response.json();
315
+ const parsedResult = schema.safeParse(jsonBody);
316
+ if (parsedResult.success) {
317
+ return {
318
+ ok: true,
319
+ data: parsedResult.data
320
+ };
321
+ }
322
+ if ("error" in jsonBody) {
323
+ return {
324
+ ok: false,
325
+ error: typeof jsonBody.error === "string" ? jsonBody.error : JSON.stringify(jsonBody.error)
326
+ };
327
+ }
328
+ return {
329
+ ok: false,
330
+ error: parsedResult.error.message
331
+ };
332
+ } catch (error) {
333
+ return {
334
+ ok: false,
335
+ error: error instanceof Error ? error.message : JSON.stringify(error)
336
+ };
337
+ }
338
+ }
339
+ __name(zodfetch, "zodfetch");
340
+ var _SafeAsyncLocalStorage = class _SafeAsyncLocalStorage {
341
+ constructor() {
342
+ this.storage = new node_async_hooks.AsyncLocalStorage();
343
+ }
344
+ runWith(context3, fn) {
345
+ return this.storage.run(context3, fn);
346
+ }
347
+ getStore() {
348
+ return this.storage.getStore();
349
+ }
350
+ };
351
+ __name(_SafeAsyncLocalStorage, "SafeAsyncLocalStorage");
352
+ var SafeAsyncLocalStorage = _SafeAsyncLocalStorage;
353
+
354
+ // src/v3/utils/flattenAttributes.ts
355
+ function flattenAttributes(obj, prefix) {
356
+ const result = {};
357
+ if (obj == null) {
358
+ return result;
359
+ }
360
+ for (const [key, value] of Object.entries(obj)) {
361
+ const newPrefix = `${prefix ? `${prefix}.` : ""}${key}`;
362
+ if (Array.isArray(value)) {
363
+ for (let i = 0; i < value.length; i++) {
364
+ if (typeof value[i] === "object" && value[i] !== null) {
365
+ Object.assign(result, flattenAttributes(value[i], `${newPrefix}.${i}`));
366
+ } else {
367
+ result[`${newPrefix}.${i}`] = value[i];
368
+ }
369
+ }
370
+ } else if (isRecord(value)) {
371
+ Object.assign(result, flattenAttributes(value, newPrefix));
372
+ } else {
373
+ if (typeof value === "number" || typeof value === "string" || typeof value === "boolean") {
374
+ result[newPrefix] = value;
375
+ }
376
+ }
377
+ }
378
+ return result;
379
+ }
380
+ __name(flattenAttributes, "flattenAttributes");
381
+ function isRecord(value) {
382
+ return value !== null && typeof value === "object" && !Array.isArray(value);
383
+ }
384
+ __name(isRecord, "isRecord");
385
+
386
+ // src/v3/tasks/taskContextManager.ts
387
+ var _getStore, getStore_fn;
388
+ var _TaskContextManager = class _TaskContextManager {
389
+ constructor() {
390
+ __privateAdd(this, _getStore);
391
+ __publicField(this, "_storage", new SafeAsyncLocalStorage());
392
+ }
393
+ get isInsideTask() {
394
+ return __privateMethod(this, _getStore, getStore_fn).call(this) !== void 0;
395
+ }
396
+ get ctx() {
397
+ const store = __privateMethod(this, _getStore, getStore_fn).call(this);
398
+ return store?.ctx;
399
+ }
400
+ get payload() {
401
+ const store = __privateMethod(this, _getStore, getStore_fn).call(this);
402
+ return store?.payload;
403
+ }
404
+ get worker() {
405
+ const store = __privateMethod(this, _getStore, getStore_fn).call(this);
406
+ return store?.worker;
407
+ }
408
+ get attributes() {
409
+ if (this.ctx) {
410
+ return {
411
+ ...flattenAttributes(this.ctx, "ctx"),
412
+ ...flattenAttributes(this.payload, "payload"),
413
+ ...flattenAttributes(this.worker, "worker"),
414
+ "service.name": this.ctx.task.id
415
+ };
416
+ }
417
+ return {};
418
+ }
419
+ runWith(context3, fn) {
420
+ return this._storage.runWith(context3, fn);
421
+ }
422
+ };
423
+ _getStore = new WeakSet();
424
+ getStore_fn = /* @__PURE__ */ __name(function() {
425
+ return this._storage.getStore();
426
+ }, "#getStore");
427
+ __name(_TaskContextManager, "TaskContextManager");
428
+ var TaskContextManager = _TaskContextManager;
429
+ var taskContextManager = new TaskContextManager();
430
+
431
+ // src/v3/apiClient/index.ts
432
+ var _getHeaders, getHeaders_fn;
433
+ var _ApiClient = class _ApiClient {
434
+ constructor(baseUrl, accessToken) {
435
+ __privateAdd(this, _getHeaders);
436
+ this.baseUrl = baseUrl;
437
+ this.accessToken = accessToken;
438
+ }
439
+ triggerTask(taskId, options) {
440
+ return zodfetch(TriggerTaskResponse, `${this.baseUrl}/api/v1/tasks/${taskId}/trigger`, {
441
+ method: "POST",
442
+ headers: __privateMethod(this, _getHeaders, getHeaders_fn).call(this),
443
+ body: JSON.stringify(options)
444
+ });
445
+ }
446
+ };
447
+ _getHeaders = new WeakSet();
448
+ getHeaders_fn = /* @__PURE__ */ __name(function() {
449
+ const headers = {
450
+ "Content-Type": "application/json",
451
+ Authorization: `Bearer ${this.accessToken}`
452
+ };
453
+ if (taskContextManager.isInsideTask) {
454
+ api.propagation.inject(api.context.active(), headers);
455
+ }
456
+ return headers;
457
+ }, "#getHeaders");
458
+ __name(_ApiClient, "ApiClient");
459
+ var ApiClient = _ApiClient;
460
+ var messageSchema = zod.z.object({
461
+ version: zod.z.literal("v1").default("v1"),
462
+ type: zod.z.string(),
463
+ payload: zod.z.unknown()
464
+ });
465
+ var _schema, _handlers;
466
+ var _ZodMessageHandler = class _ZodMessageHandler {
467
+ constructor(options) {
468
+ __privateAdd(this, _schema, void 0);
469
+ __privateAdd(this, _handlers, void 0);
470
+ __privateSet(this, _schema, options.schema);
471
+ __privateSet(this, _handlers, options.messages);
472
+ }
473
+ async handleMessage(message) {
474
+ const parsedMessage = this.parseMessage(message);
475
+ if (!__privateGet(this, _handlers)) {
476
+ throw new Error("No handlers provided");
477
+ }
478
+ const handler = __privateGet(this, _handlers)[parsedMessage.type];
479
+ if (!handler) {
480
+ throw new Error(`Unknown message type: ${String(parsedMessage.type)}`);
481
+ }
482
+ await handler(parsedMessage.payload);
483
+ }
484
+ parseMessage(message) {
485
+ const parsedMessage = messageSchema.safeParse(message);
486
+ if (!parsedMessage.success) {
487
+ throw new Error(`Failed to parse message: ${JSON.stringify(parsedMessage.error)}`);
488
+ }
489
+ const schema = __privateGet(this, _schema)[parsedMessage.data.type];
490
+ if (!schema) {
491
+ throw new Error(`Unknown message type: ${parsedMessage.data.type}`);
492
+ }
493
+ const parsedPayload = schema.safeParse(parsedMessage.data.payload);
494
+ if (!parsedPayload.success) {
495
+ throw new Error(`Failed to parse message payload: ${JSON.stringify(parsedPayload.error)}`);
496
+ }
497
+ return {
498
+ type: parsedMessage.data.type,
499
+ payload: parsedPayload.data
500
+ };
501
+ }
502
+ };
503
+ _schema = new WeakMap();
504
+ _handlers = new WeakMap();
505
+ __name(_ZodMessageHandler, "ZodMessageHandler");
506
+ var ZodMessageHandler = _ZodMessageHandler;
507
+ var _schema2, _sender;
508
+ var _ZodMessageSender = class _ZodMessageSender {
509
+ constructor(options) {
510
+ __privateAdd(this, _schema2, void 0);
511
+ __privateAdd(this, _sender, void 0);
512
+ __privateSet(this, _schema2, options.schema);
513
+ __privateSet(this, _sender, options.sender);
514
+ }
515
+ async send(type, payload) {
516
+ const schema = __privateGet(this, _schema2)[type];
517
+ if (!schema) {
518
+ throw new Error(`Unknown message type: ${type}`);
519
+ }
520
+ const parsedPayload = schema.safeParse(payload);
521
+ if (!parsedPayload.success) {
522
+ throw new Error(`Failed to parse message payload: ${JSON.stringify(parsedPayload.error)}`);
523
+ }
524
+ await __privateGet(this, _sender).call(this, {
525
+ type,
526
+ payload,
527
+ version: "v1"
528
+ });
529
+ }
530
+ };
531
+ _schema2 = new WeakMap();
532
+ _sender = new WeakMap();
533
+ __name(_ZodMessageSender, "ZodMessageSender");
534
+ var ZodMessageSender = _ZodMessageSender;
535
+
536
+ // src/v3/errors.ts
537
+ function parseError(error) {
538
+ if (error instanceof Error) {
539
+ return {
540
+ type: "BUILT_IN_ERROR",
541
+ name: error.name,
542
+ message: error.message,
543
+ stackTrace: error.stack ?? ""
544
+ };
545
+ }
546
+ if (typeof error === "string") {
547
+ return {
548
+ type: "STRING_ERROR",
549
+ raw: error
550
+ };
551
+ }
552
+ try {
553
+ return {
554
+ type: "CUSTOM_ERROR",
555
+ raw: JSON.stringify(error)
556
+ };
557
+ } catch (e) {
558
+ return {
559
+ type: "CUSTOM_ERROR",
560
+ raw: String(error)
561
+ };
562
+ }
563
+ }
564
+ __name(parseError, "parseError");
565
+ function createErrorTaskError(error) {
566
+ switch (error.type) {
567
+ case "BUILT_IN_ERROR": {
568
+ const e = new Error(error.message);
569
+ e.name = error.name;
570
+ e.stack = error.stackTrace;
571
+ return e;
572
+ }
573
+ case "STRING_ERROR": {
574
+ return error.raw;
575
+ }
576
+ case "CUSTOM_ERROR": {
577
+ return JSON.parse(error.raw);
578
+ }
579
+ case "INTERNAL_ERROR": {
580
+ return new Error(`trigger.dev internal error (${error.code})`);
581
+ }
582
+ }
583
+ }
584
+ __name(createErrorTaskError, "createErrorTaskError");
585
+
586
+ // src/v3/utils/platform.ts
587
+ var _globalThis = typeof globalThis === "object" ? globalThis : global;
588
+
589
+ // src/v3/utils/globals.ts
590
+ var GLOBAL_TRIGGER_DOT_DEV_KEY = Symbol.for(`dev.trigger.ts.api`);
591
+ var _global = _globalThis;
592
+ function registerGlobal(type, instance, allowOverride = false) {
593
+ const api = _global[GLOBAL_TRIGGER_DOT_DEV_KEY] = _global[GLOBAL_TRIGGER_DOT_DEV_KEY] ?? {};
594
+ if (!allowOverride && api[type]) {
595
+ return false;
596
+ }
597
+ api[type] = instance;
598
+ return true;
599
+ }
600
+ __name(registerGlobal, "registerGlobal");
601
+ function getGlobal(type) {
602
+ return _global[GLOBAL_TRIGGER_DOT_DEV_KEY]?.[type];
603
+ }
604
+ __name(getGlobal, "getGlobal");
605
+ function unregisterGlobal(type) {
606
+ const api = _global[GLOBAL_TRIGGER_DOT_DEV_KEY];
607
+ if (api) {
608
+ delete api[type];
609
+ }
610
+ }
611
+ __name(unregisterGlobal, "unregisterGlobal");
612
+
613
+ // src/v3/runtime/noopRuntimeManager.ts
614
+ var _NoopRuntimeManager = class _NoopRuntimeManager {
615
+ disable() {
616
+ }
617
+ waitForDuration(ms) {
618
+ return Promise.resolve();
619
+ }
620
+ waitUntil(date) {
621
+ return Promise.resolve();
622
+ }
623
+ waitForTask(params) {
624
+ throw new Error("Method not implemented.");
625
+ }
626
+ };
627
+ __name(_NoopRuntimeManager, "NoopRuntimeManager");
628
+ var NoopRuntimeManager = _NoopRuntimeManager;
629
+
630
+ // src/v3/runtime/index.ts
631
+ var API_NAME = "runtime";
632
+ var NOOP_RUNTIME_MANAGER = new NoopRuntimeManager();
633
+ var _getRuntimeManager, getRuntimeManager_fn;
634
+ var _RuntimeAPI = class _RuntimeAPI {
635
+ constructor() {
636
+ __privateAdd(this, _getRuntimeManager);
637
+ }
638
+ static getInstance() {
639
+ if (!this._instance) {
640
+ this._instance = new _RuntimeAPI();
641
+ }
642
+ return this._instance;
643
+ }
644
+ waitForDuration(ms) {
645
+ return __privateMethod(this, _getRuntimeManager, getRuntimeManager_fn).call(this).waitForDuration(ms);
646
+ }
647
+ waitUntil(date) {
648
+ return __privateMethod(this, _getRuntimeManager, getRuntimeManager_fn).call(this).waitUntil(date);
649
+ }
650
+ waitForTask(params) {
651
+ return __privateMethod(this, _getRuntimeManager, getRuntimeManager_fn).call(this).waitForTask(params);
652
+ }
653
+ setGlobalRuntimeManager(runtimeManager) {
654
+ return registerGlobal(API_NAME, runtimeManager);
655
+ }
656
+ disable() {
657
+ __privateMethod(this, _getRuntimeManager, getRuntimeManager_fn).call(this).disable();
658
+ unregisterGlobal(API_NAME);
659
+ }
660
+ };
661
+ _getRuntimeManager = new WeakSet();
662
+ getRuntimeManager_fn = /* @__PURE__ */ __name(function() {
663
+ return getGlobal(API_NAME) ?? NOOP_RUNTIME_MANAGER;
664
+ }, "#getRuntimeManager");
665
+ __name(_RuntimeAPI, "RuntimeAPI");
666
+ var RuntimeAPI = _RuntimeAPI;
667
+
668
+ // src/v3/runtime-api.ts
669
+ var runtime = RuntimeAPI.getInstance();
670
+ var logLevels = [
671
+ "error",
672
+ "warn",
673
+ "log",
674
+ "info",
675
+ "debug"
676
+ ];
677
+ var _emitLog, emitLog_fn;
678
+ var _OtelTaskLogger = class _OtelTaskLogger {
679
+ constructor(_config) {
680
+ __privateAdd(this, _emitLog);
681
+ this._config = _config;
682
+ this._level = logLevels.indexOf(_config.level);
683
+ }
684
+ debug(message, properties) {
685
+ if (this._level < 4)
686
+ return;
687
+ __privateMethod(this, _emitLog, emitLog_fn).call(this, message, "debug", apiLogs.SeverityNumber.DEBUG, properties);
688
+ }
689
+ log(message, properties) {
690
+ if (this._level < 2)
691
+ return;
692
+ __privateMethod(this, _emitLog, emitLog_fn).call(this, message, "log", apiLogs.SeverityNumber.INFO, properties);
693
+ }
694
+ info(message, properties) {
695
+ if (this._level < 3)
696
+ return;
697
+ __privateMethod(this, _emitLog, emitLog_fn).call(this, message, "info", apiLogs.SeverityNumber.INFO, properties);
698
+ }
699
+ warn(message, properties) {
700
+ if (this._level < 1)
701
+ return;
702
+ __privateMethod(this, _emitLog, emitLog_fn).call(this, message, "warn", apiLogs.SeverityNumber.WARN, properties);
703
+ }
704
+ error(message, properties) {
705
+ if (this._level < 0)
706
+ return;
707
+ __privateMethod(this, _emitLog, emitLog_fn).call(this, message, "error", apiLogs.SeverityNumber.ERROR, properties);
708
+ }
709
+ };
710
+ _emitLog = new WeakSet();
711
+ emitLog_fn = /* @__PURE__ */ __name(function(message, severityText, severityNumber, properties) {
712
+ this._config.logger.emit({
713
+ severityNumber,
714
+ severityText,
715
+ body: message,
716
+ attributes: {
717
+ ...flattenAttributes(properties),
718
+ "log.type": "logger"
719
+ }
720
+ });
721
+ }, "#emitLog");
722
+ __name(_OtelTaskLogger, "OtelTaskLogger");
723
+ var OtelTaskLogger = _OtelTaskLogger;
724
+ var _NoopTaskLogger = class _NoopTaskLogger {
725
+ debug() {
726
+ }
727
+ log() {
728
+ }
729
+ info() {
730
+ }
731
+ warn() {
732
+ }
733
+ error() {
734
+ }
735
+ };
736
+ __name(_NoopTaskLogger, "NoopTaskLogger");
737
+ var NoopTaskLogger = _NoopTaskLogger;
738
+
739
+ // src/v3/logger/index.ts
740
+ var API_NAME2 = "logger";
741
+ var NOOP_TASK_LOGGER = new NoopTaskLogger();
742
+ var _getTaskLogger, getTaskLogger_fn;
743
+ var _LoggerAPI = class _LoggerAPI {
744
+ constructor() {
745
+ __privateAdd(this, _getTaskLogger);
746
+ }
747
+ static getInstance() {
748
+ if (!this._instance) {
749
+ this._instance = new _LoggerAPI();
750
+ }
751
+ return this._instance;
752
+ }
753
+ disable() {
754
+ unregisterGlobal(API_NAME2);
755
+ }
756
+ setGlobalTaskLogger(taskLogger) {
757
+ return registerGlobal(API_NAME2, taskLogger);
758
+ }
759
+ debug(message, metadata) {
760
+ __privateMethod(this, _getTaskLogger, getTaskLogger_fn).call(this).debug(message, metadata);
761
+ }
762
+ log(message, metadata) {
763
+ __privateMethod(this, _getTaskLogger, getTaskLogger_fn).call(this).log(message, metadata);
764
+ }
765
+ info(message, metadata) {
766
+ __privateMethod(this, _getTaskLogger, getTaskLogger_fn).call(this).info(message, metadata);
767
+ }
768
+ warn(message, metadata) {
769
+ __privateMethod(this, _getTaskLogger, getTaskLogger_fn).call(this).warn(message, metadata);
770
+ }
771
+ error(message, metadata) {
772
+ __privateMethod(this, _getTaskLogger, getTaskLogger_fn).call(this).error(message, metadata);
773
+ }
774
+ };
775
+ _getTaskLogger = new WeakSet();
776
+ getTaskLogger_fn = /* @__PURE__ */ __name(function() {
777
+ return getGlobal(API_NAME2) ?? NOOP_TASK_LOGGER;
778
+ }, "#getTaskLogger");
779
+ __name(_LoggerAPI, "LoggerAPI");
780
+ var LoggerAPI = _LoggerAPI;
781
+
782
+ // src/v3/logger-api.ts
783
+ var logger = LoggerAPI.getInstance();
784
+
785
+ // src/v3/semanticInternalAttributes.ts
786
+ var SemanticInternalAttributes = {
787
+ ENVIRONMENT_ID: "ctx.environment.id",
788
+ ENVIRONMENT_TYPE: "ctx.environment.type",
789
+ ORGANIZATION_ID: "ctx.organization.id",
790
+ PROJECT_ID: "ctx.project.id",
791
+ PROJECT_REF: "ctx.project.ref",
792
+ ATTEMPT_ID: "ctx.attempt.id",
793
+ ATTEMP_NUMBER: "ctx.attempt.number",
794
+ RUN_ID: "ctx.run.id",
795
+ TASK_SLUG: "ctx.task.id",
796
+ TASK_PATH: "ctx.task.filePath",
797
+ TASK_EXPORT_NAME: "ctx.task.exportName",
798
+ SPAN_PARTIAL: "$span.partial",
799
+ SPAN_ID: "$span.span_id",
800
+ OUTPUT: "$output",
801
+ STYLE: "$style",
802
+ STYLE_ICON: "$style.icon",
803
+ METADATA: "$metadata",
804
+ TRIGGER: "$trigger",
805
+ PAYLOAD: "$payload",
806
+ WORKER_ID: "worker.id",
807
+ WORKER_VERSION: "worker.version",
808
+ CLI_VERSION: "cli.version",
809
+ SDK_VERSION: "sdk.version",
810
+ SDK_LANGUAGE: "sdk.language"
811
+ };
812
+
813
+ // src/v3/runtime/devRuntimeManager.ts
814
+ var _DevRuntimeManager = class _DevRuntimeManager {
815
+ constructor(options) {
816
+ this.options = options;
817
+ this._taskWaits = /* @__PURE__ */ new Map();
818
+ }
819
+ disable() {
820
+ }
821
+ async waitForDuration(ms) {
822
+ return this.options.tracer.startActiveSpan("wait for duration", async (span) => {
823
+ return new Promise((resolve) => {
824
+ setTimeout(resolve, ms);
825
+ });
826
+ });
827
+ }
828
+ async waitUntil(date) {
829
+ return new Promise((resolve) => {
830
+ setTimeout(resolve, date.getTime() - Date.now());
831
+ });
832
+ }
833
+ async waitForTask(params) {
834
+ return this.options.tracer.startActiveSpan("wait for task", async (span) => {
835
+ span.setAttribute("trigger.task.run.id", params.id);
836
+ const promise = new Promise((resolve, reject) => {
837
+ this._taskWaits.set(params.id, {
838
+ resolve,
839
+ reject
840
+ });
841
+ });
842
+ return await promise;
843
+ });
844
+ }
845
+ resumeTask(completion, execution) {
846
+ const wait = this._taskWaits.get(execution.run.id);
847
+ if (wait) {
848
+ wait.resolve(completion);
849
+ this._taskWaits.delete(execution.run.id);
850
+ }
851
+ }
852
+ };
853
+ __name(_DevRuntimeManager, "DevRuntimeManager");
854
+ var DevRuntimeManager = _DevRuntimeManager;
855
+ var _TriggerTracer = class _TriggerTracer {
856
+ constructor(_config) {
857
+ this._config = _config;
858
+ }
859
+ get tracer() {
860
+ if (!this._tracer) {
861
+ if ("tracer" in this._config)
862
+ return this._config.tracer;
863
+ this._tracer = api.trace.getTracer(this._config.name, this._config.version);
864
+ }
865
+ return this._tracer;
866
+ }
867
+ get logger() {
868
+ if (!this._logger) {
869
+ if ("logger" in this._config)
870
+ return this._config.logger;
871
+ this._logger = apiLogs.logs.getLogger(this._config.name, this._config.version);
872
+ }
873
+ return this._logger;
874
+ }
875
+ extractContext(traceContext) {
876
+ return api.propagation.extract(api.context.active(), traceContext ?? {});
877
+ }
878
+ startActiveSpan(name, fn, options, ctx) {
879
+ const parentContext = ctx ?? api.context.active();
880
+ const attributes = options?.attributes ?? {};
881
+ return this.tracer.startActiveSpan(name, {
882
+ ...options,
883
+ attributes
884
+ }, parentContext, async (span) => {
885
+ this.tracer.startSpan(name, {
886
+ ...options,
887
+ attributes: {
888
+ ...attributes,
889
+ [SemanticInternalAttributes.SPAN_PARTIAL]: true,
890
+ [SemanticInternalAttributes.SPAN_ID]: span.spanContext().spanId
891
+ }
892
+ }, parentContext).end();
893
+ try {
894
+ return await fn(span);
895
+ } catch (e) {
896
+ if (typeof e === "string" || e instanceof Error) {
897
+ span.recordException(e);
898
+ }
899
+ span.setStatus({
900
+ code: api.SpanStatusCode.ERROR
901
+ });
902
+ throw e;
903
+ } finally {
904
+ span.end();
905
+ }
906
+ });
907
+ }
908
+ };
909
+ __name(_TriggerTracer, "TriggerTracer");
910
+ var TriggerTracer = _TriggerTracer;
911
+ var _handleLog, handleLog_fn, _getAttributes, getAttributes_fn;
912
+ var _ConsoleInterceptor = class _ConsoleInterceptor {
913
+ constructor(logger2) {
914
+ __privateAdd(this, _handleLog);
915
+ __privateAdd(this, _getAttributes);
916
+ this.logger = logger2;
917
+ }
918
+ // Intercept the console and send logs to the OpenTelemetry logger
919
+ // during the execution of the callback
920
+ async intercept(console, callback) {
921
+ const originalConsole = {
922
+ log: console.log,
923
+ info: console.info,
924
+ warn: console.warn,
925
+ error: console.error
926
+ };
927
+ console.log = this.log.bind(this);
928
+ console.info = this.info.bind(this);
929
+ console.warn = this.warn.bind(this);
930
+ console.error = this.error.bind(this);
931
+ try {
932
+ return await callback();
933
+ } finally {
934
+ console.log = originalConsole.log;
935
+ console.info = originalConsole.info;
936
+ console.warn = originalConsole.warn;
937
+ console.error = originalConsole.error;
938
+ }
939
+ }
940
+ log(...args) {
941
+ __privateMethod(this, _handleLog, handleLog_fn).call(this, apiLogs.SeverityNumber.INFO, "Log", ...args);
942
+ }
943
+ info(...args) {
944
+ __privateMethod(this, _handleLog, handleLog_fn).call(this, apiLogs.SeverityNumber.INFO, "Info", ...args);
945
+ }
946
+ warn(...args) {
947
+ __privateMethod(this, _handleLog, handleLog_fn).call(this, apiLogs.SeverityNumber.WARN, "Warn", ...args);
948
+ }
949
+ error(...args) {
950
+ __privateMethod(this, _handleLog, handleLog_fn).call(this, apiLogs.SeverityNumber.ERROR, "Error", ...args);
951
+ }
952
+ };
953
+ _handleLog = new WeakSet();
954
+ handleLog_fn = /* @__PURE__ */ __name(function(severityNumber, severityText, ...args) {
955
+ const body = util__default.default.format(...args);
956
+ const parsed = tryParseJSON(body);
957
+ if (parsed.ok) {
958
+ this.logger.emit({
959
+ severityNumber,
960
+ severityText,
961
+ body: getLogMessage(parsed.value, severityText),
962
+ attributes: {
963
+ ...__privateMethod(this, _getAttributes, getAttributes_fn).call(this),
964
+ ...flattenAttributes(parsed.value)
965
+ }
966
+ });
967
+ return;
968
+ }
969
+ this.logger.emit({
970
+ severityNumber,
971
+ severityText,
972
+ body,
973
+ attributes: __privateMethod(this, _getAttributes, getAttributes_fn).call(this)
974
+ });
975
+ }, "#handleLog");
976
+ _getAttributes = new WeakSet();
977
+ getAttributes_fn = /* @__PURE__ */ __name(function() {
978
+ return {
979
+ "log.type": "console"
980
+ };
981
+ }, "#getAttributes");
982
+ __name(_ConsoleInterceptor, "ConsoleInterceptor");
983
+ var ConsoleInterceptor = _ConsoleInterceptor;
984
+ function getLogMessage(value, fallback) {
985
+ if (typeof value["message"] === "string") {
986
+ return value["message"];
987
+ }
988
+ if (typeof value["msg"] === "string") {
989
+ return value["msg"];
990
+ }
991
+ if (typeof value["body"] === "string") {
992
+ return value["body"];
993
+ }
994
+ if (typeof value["error"] === "string") {
995
+ return value["error"];
996
+ }
997
+ return fallback;
998
+ }
999
+ __name(getLogMessage, "getLogMessage");
1000
+ function tryParseJSON(value) {
1001
+ try {
1002
+ const parsed = JSON.parse(value);
1003
+ if (typeof parsed === "object" && parsed !== null && !Array.isArray(parsed)) {
1004
+ return {
1005
+ ok: true,
1006
+ value: parsed
1007
+ };
1008
+ }
1009
+ return {
1010
+ ok: false,
1011
+ value
1012
+ };
1013
+ } catch (e) {
1014
+ return {
1015
+ ok: false,
1016
+ value
1017
+ };
1018
+ }
1019
+ }
1020
+ __name(tryParseJSON, "tryParseJSON");
1021
+
1022
+ // src/v3/index.ts
1023
+ function parseTriggerTaskRequestBody(body) {
1024
+ return TriggerTaskRequestBody.safeParse(body);
1025
+ }
1026
+ __name(parseTriggerTaskRequestBody, "parseTriggerTaskRequestBody");
1027
+
1028
+ exports.ApiClient = ApiClient;
1029
+ exports.BackgroundWorkerClientMessages = BackgroundWorkerClientMessages;
1030
+ exports.BackgroundWorkerMetadata = BackgroundWorkerMetadata;
1031
+ exports.BackgroundWorkerRecord = BackgroundWorkerRecord;
1032
+ exports.BackgroundWorkerServerMessages = BackgroundWorkerServerMessages;
1033
+ exports.ConsoleInterceptor = ConsoleInterceptor;
1034
+ exports.CreateAuthorizationCodeResponseSchema = CreateAuthorizationCodeResponseSchema;
1035
+ exports.CreateBackgroundWorkerRequestBody = CreateBackgroundWorkerRequestBody;
1036
+ exports.CreateBackgroundWorkerResponse = CreateBackgroundWorkerResponse;
1037
+ exports.DevRuntimeManager = DevRuntimeManager;
1038
+ exports.GetPersonalAccessTokenRequestSchema = GetPersonalAccessTokenRequestSchema;
1039
+ exports.GetPersonalAccessTokenResponseSchema = GetPersonalAccessTokenResponseSchema;
1040
+ exports.GetProjectDevResponse = GetProjectDevResponse;
1041
+ exports.OtelTaskLogger = OtelTaskLogger;
1042
+ exports.SemanticInternalAttributes = SemanticInternalAttributes;
1043
+ exports.TaskMetadata = TaskMetadata;
1044
+ exports.TaskMetadataWithFilePath = TaskMetadataWithFilePath;
1045
+ exports.TaskResource = TaskResource;
1046
+ exports.TaskRun = TaskRun;
1047
+ exports.TaskRunBuiltInError = TaskRunBuiltInError;
1048
+ exports.TaskRunContext = TaskRunContext;
1049
+ exports.TaskRunCustomErrorObject = TaskRunCustomErrorObject;
1050
+ exports.TaskRunError = TaskRunError;
1051
+ exports.TaskRunErrorCodes = TaskRunErrorCodes;
1052
+ exports.TaskRunExecution = TaskRunExecution;
1053
+ exports.TaskRunExecutionAttempt = TaskRunExecutionAttempt;
1054
+ exports.TaskRunExecutionEnvironment = TaskRunExecutionEnvironment;
1055
+ exports.TaskRunExecutionOrganization = TaskRunExecutionOrganization;
1056
+ exports.TaskRunExecutionPayload = TaskRunExecutionPayload;
1057
+ exports.TaskRunExecutionProject = TaskRunExecutionProject;
1058
+ exports.TaskRunExecutionResult = TaskRunExecutionResult;
1059
+ exports.TaskRunExecutionTask = TaskRunExecutionTask;
1060
+ exports.TaskRunFailedExecutionResult = TaskRunFailedExecutionResult;
1061
+ exports.TaskRunInternalError = TaskRunInternalError;
1062
+ exports.TaskRunStringError = TaskRunStringError;
1063
+ exports.TaskRunSuccessfulExecutionResult = TaskRunSuccessfulExecutionResult;
1064
+ exports.TriggerTaskRequestBody = TriggerTaskRequestBody;
1065
+ exports.TriggerTaskResponse = TriggerTaskResponse;
1066
+ exports.TriggerTracer = TriggerTracer;
1067
+ exports.WhoAmIResponseSchema = WhoAmIResponseSchema;
1068
+ exports.ZodMessageHandler = ZodMessageHandler;
1069
+ exports.ZodMessageSender = ZodMessageSender;
1070
+ exports.childToWorkerMessages = childToWorkerMessages;
1071
+ exports.clientWebsocketMessages = clientWebsocketMessages;
1072
+ exports.createErrorTaskError = createErrorTaskError;
1073
+ exports.flattenAttributes = flattenAttributes;
1074
+ exports.logger = logger;
1075
+ exports.parseError = parseError;
1076
+ exports.parseTriggerTaskRequestBody = parseTriggerTaskRequestBody;
1077
+ exports.runtime = runtime;
1078
+ exports.serverWebsocketMessages = serverWebsocketMessages;
1079
+ exports.taskContextManager = taskContextManager;
1080
+ exports.workerToChildMessages = workerToChildMessages;
1081
+ //# sourceMappingURL=out.js.map
1082
+ //# sourceMappingURL=index.js.map