@trigger.dev/core 3.0.0-beta.36 → 3.0.0-beta.38
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/{catalog-dRKTgwQ7.d.ts → catalog-Tdea4K0I.d.mts} +43 -3
- package/dist/{catalog-XTlJQaMn.d.mts → catalog-yeAHwmSe.d.ts} +43 -3
- package/dist/{manager-JkbddlcO.d.mts → manager-S98VaLUy.d.mts} +244 -1
- package/dist/{manager-JkbddlcO.d.ts → manager-S98VaLUy.d.ts} +244 -1
- package/dist/{messages-6_-q72KG.d.mts → messages-BD0yXLtn.d.mts} +2390 -188
- package/dist/{messages-6_-q72KG.d.ts → messages-BD0yXLtn.d.ts} +2390 -188
- package/dist/{schemas-r4ZP9S-F.d.mts → schemas-XNxZYXOy.d.mts} +199 -33
- package/dist/{schemas-r4ZP9S-F.d.ts → schemas-XNxZYXOy.d.ts} +199 -33
- package/dist/v3/dev/index.d.mts +1 -1
- package/dist/v3/dev/index.d.ts +1 -1
- package/dist/v3/index.d.mts +125 -52
- package/dist/v3/index.d.ts +125 -52
- package/dist/v3/index.js +214 -87
- package/dist/v3/index.js.map +1 -1
- package/dist/v3/index.mjs +209 -87
- package/dist/v3/index.mjs.map +1 -1
- package/dist/v3/otel/index.js +15 -5
- package/dist/v3/otel/index.js.map +1 -1
- package/dist/v3/otel/index.mjs +15 -5
- package/dist/v3/otel/index.mjs.map +1 -1
- package/dist/v3/prod/index.d.mts +2 -2
- package/dist/v3/prod/index.d.ts +2 -2
- package/dist/v3/prod/index.js.map +1 -1
- package/dist/v3/prod/index.mjs.map +1 -1
- package/dist/v3/workers/index.d.mts +54 -8
- package/dist/v3/workers/index.d.ts +54 -8
- package/dist/v3/workers/index.js +406 -44
- package/dist/v3/workers/index.js.map +1 -1
- package/dist/v3/workers/index.mjs +404 -45
- package/dist/v3/workers/index.mjs.map +1 -1
- package/dist/v3/zodIpc.js.map +1 -1
- package/dist/v3/zodIpc.mjs.map +1 -1
- package/dist/v3/zodMessageHandler.d.mts +1 -1
- package/dist/v3/zodMessageHandler.d.ts +1 -1
- package/dist/v3/zodfetch.d.mts +1 -1
- package/dist/v3/zodfetch.d.ts +1 -1
- package/package.json +1 -1
package/dist/v3/workers/index.js
CHANGED
|
@@ -15,6 +15,7 @@ var formDataEncoder = require('form-data-encoder');
|
|
|
15
15
|
var stream = require('stream');
|
|
16
16
|
var preciseDate = require('@google-cloud/precise-date');
|
|
17
17
|
var util = require('util');
|
|
18
|
+
var promises = require('timers/promises');
|
|
18
19
|
|
|
19
20
|
function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
|
|
20
21
|
|
|
@@ -110,6 +111,10 @@ var SemanticInternalAttributes = {
|
|
|
110
111
|
TASK_EXPORT_NAME: "ctx.task.exportName",
|
|
111
112
|
QUEUE_NAME: "ctx.queue.name",
|
|
112
113
|
QUEUE_ID: "ctx.queue.id",
|
|
114
|
+
MACHINE_PRESET_NAME: "ctx.machine.name",
|
|
115
|
+
MACHINE_PRESET_CPU: "ctx.machine.cpu",
|
|
116
|
+
MACHINE_PRESET_MEMORY: "ctx.machine.memory",
|
|
117
|
+
MACHINE_PRESET_CENTS_PER_MS: "ctx.machine.centsPerMs",
|
|
113
118
|
SPAN_PARTIAL: "$span.partial",
|
|
114
119
|
SPAN_ID: "$span.span_id",
|
|
115
120
|
OUTPUT: "$output",
|
|
@@ -133,7 +138,9 @@ var SemanticInternalAttributes = {
|
|
|
133
138
|
RETRY_DELAY: "retry.delay",
|
|
134
139
|
RETRY_COUNT: "retry.count",
|
|
135
140
|
LINK_TITLE: "$link.title",
|
|
136
|
-
IDEMPOTENCY_KEY: "ctx.run.idempotencyKey"
|
|
141
|
+
IDEMPOTENCY_KEY: "ctx.run.idempotencyKey",
|
|
142
|
+
USAGE_DURATION_MS: "$usage.durationMs",
|
|
143
|
+
USAGE_COST_IN_CENTS: "$usage.costInCents"
|
|
137
144
|
};
|
|
138
145
|
|
|
139
146
|
// src/v3/utils/flattenAttributes.ts
|
|
@@ -279,7 +286,11 @@ var _TaskContextAPI = class _TaskContextAPI {
|
|
|
279
286
|
[SemanticInternalAttributes.ORGANIZATION_SLUG]: this.ctx.organization.slug,
|
|
280
287
|
[SemanticInternalAttributes.ORGANIZATION_NAME]: this.ctx.organization.name,
|
|
281
288
|
[SemanticInternalAttributes.BATCH_ID]: this.ctx.batch?.id,
|
|
282
|
-
[SemanticInternalAttributes.IDEMPOTENCY_KEY]: this.ctx.run.idempotencyKey
|
|
289
|
+
[SemanticInternalAttributes.IDEMPOTENCY_KEY]: this.ctx.run.idempotencyKey,
|
|
290
|
+
[SemanticInternalAttributes.MACHINE_PRESET_NAME]: this.ctx.machine?.name,
|
|
291
|
+
[SemanticInternalAttributes.MACHINE_PRESET_CPU]: this.ctx.machine?.cpu,
|
|
292
|
+
[SemanticInternalAttributes.MACHINE_PRESET_MEMORY]: this.ctx.machine?.memory,
|
|
293
|
+
[SemanticInternalAttributes.MACHINE_PRESET_CENTS_PER_MS]: this.ctx.machine?.centsPerMs
|
|
283
294
|
};
|
|
284
295
|
}
|
|
285
296
|
return {};
|
|
@@ -361,7 +372,7 @@ function getEnvVar(name) {
|
|
|
361
372
|
__name(getEnvVar, "getEnvVar");
|
|
362
373
|
|
|
363
374
|
// package.json
|
|
364
|
-
var version = "3.0.0-beta.
|
|
375
|
+
var version = "3.0.0-beta.38";
|
|
365
376
|
|
|
366
377
|
// src/v3/otel/tracingSDK.ts
|
|
367
378
|
var _a;
|
|
@@ -404,7 +415,7 @@ var _TracingSDK = class _TracingSDK {
|
|
|
404
415
|
[SemanticInternalAttributes.CLI_VERSION]: version
|
|
405
416
|
})).merge(config.resource ?? new resources.Resource({})).merge(new resources.Resource(envResourceAttributes));
|
|
406
417
|
const traceProvider = new sdkTraceNode.NodeTracerProvider({
|
|
407
|
-
forceFlushTimeoutMillis: config.forceFlushTimeoutMillis
|
|
418
|
+
forceFlushTimeoutMillis: config.forceFlushTimeoutMillis,
|
|
408
419
|
resource: commonResources,
|
|
409
420
|
spanLimits: {
|
|
410
421
|
attributeCountLimit: OTEL_SPAN_ATTRIBUTE_COUNT_LIMIT,
|
|
@@ -417,7 +428,7 @@ var _TracingSDK = class _TracingSDK {
|
|
|
417
428
|
});
|
|
418
429
|
const spanExporter = new exporterTraceOtlpHttp.OTLPTraceExporter({
|
|
419
430
|
url: `${config.url}/v1/traces`,
|
|
420
|
-
timeoutMillis: config.forceFlushTimeoutMillis
|
|
431
|
+
timeoutMillis: config.forceFlushTimeoutMillis
|
|
421
432
|
});
|
|
422
433
|
traceProvider.addSpanProcessor(new TaskContextSpanProcessor(getEnvVar("OTEL_BATCH_PROCESSING_ENABLED") === "1" ? new sdkTraceNode.BatchSpanProcessor(spanExporter, {
|
|
423
434
|
maxExportBatchSize: parseInt(getEnvVar("OTEL_SPAN_MAX_EXPORT_BATCH_SIZE") ?? "64"),
|
|
@@ -509,6 +520,41 @@ function recordSpanException(span, error) {
|
|
|
509
520
|
});
|
|
510
521
|
}
|
|
511
522
|
__name(recordSpanException, "recordSpanException");
|
|
523
|
+
var MachineCpu = zod.z.union([
|
|
524
|
+
zod.z.literal(0.25),
|
|
525
|
+
zod.z.literal(0.5),
|
|
526
|
+
zod.z.literal(1),
|
|
527
|
+
zod.z.literal(2),
|
|
528
|
+
zod.z.literal(4)
|
|
529
|
+
]);
|
|
530
|
+
var MachineMemory = zod.z.union([
|
|
531
|
+
zod.z.literal(0.25),
|
|
532
|
+
zod.z.literal(0.5),
|
|
533
|
+
zod.z.literal(1),
|
|
534
|
+
zod.z.literal(2),
|
|
535
|
+
zod.z.literal(4),
|
|
536
|
+
zod.z.literal(8)
|
|
537
|
+
]);
|
|
538
|
+
var MachinePresetName = zod.z.enum([
|
|
539
|
+
"micro",
|
|
540
|
+
"small-1x",
|
|
541
|
+
"small-2x",
|
|
542
|
+
"medium-1x",
|
|
543
|
+
"medium-2x",
|
|
544
|
+
"large-1x",
|
|
545
|
+
"large-2x"
|
|
546
|
+
]);
|
|
547
|
+
var MachineConfig = zod.z.object({
|
|
548
|
+
cpu: MachineCpu.optional(),
|
|
549
|
+
memory: MachineMemory.optional(),
|
|
550
|
+
preset: MachinePresetName.optional()
|
|
551
|
+
});
|
|
552
|
+
var MachinePreset = zod.z.object({
|
|
553
|
+
name: MachinePresetName,
|
|
554
|
+
cpu: zod.z.number(),
|
|
555
|
+
memory: zod.z.number(),
|
|
556
|
+
centsPerMs: zod.z.number()
|
|
557
|
+
});
|
|
512
558
|
var TaskRunBuiltInError = zod.z.object({
|
|
513
559
|
type: zod.z.literal("BUILT_IN_ERROR"),
|
|
514
560
|
name: zod.z.string(),
|
|
@@ -570,7 +616,11 @@ var TaskRun = zod.z.object({
|
|
|
570
616
|
tags: zod.z.array(zod.z.string()),
|
|
571
617
|
isTest: zod.z.boolean().default(false),
|
|
572
618
|
createdAt: zod.z.coerce.date(),
|
|
573
|
-
|
|
619
|
+
startedAt: zod.z.coerce.date().default(() => /* @__PURE__ */ new Date()),
|
|
620
|
+
idempotencyKey: zod.z.string().optional(),
|
|
621
|
+
durationMs: zod.z.number().default(0),
|
|
622
|
+
costInCents: zod.z.number().default(0),
|
|
623
|
+
baseCostInCents: zod.z.number().default(0)
|
|
574
624
|
});
|
|
575
625
|
var TaskRunExecutionTask = zod.z.object({
|
|
576
626
|
id: zod.z.string(),
|
|
@@ -621,7 +671,8 @@ var TaskRunExecution = zod.z.object({
|
|
|
621
671
|
environment: TaskRunExecutionEnvironment,
|
|
622
672
|
organization: TaskRunExecutionOrganization,
|
|
623
673
|
project: TaskRunExecutionProject,
|
|
624
|
-
batch: TaskRunExecutionBatch.optional()
|
|
674
|
+
batch: TaskRunExecutionBatch.optional(),
|
|
675
|
+
machine: MachinePreset.optional()
|
|
625
676
|
});
|
|
626
677
|
var TaskRunContext = zod.z.object({
|
|
627
678
|
task: TaskRunExecutionTask,
|
|
@@ -637,25 +688,31 @@ var TaskRunContext = zod.z.object({
|
|
|
637
688
|
environment: TaskRunExecutionEnvironment,
|
|
638
689
|
organization: TaskRunExecutionOrganization,
|
|
639
690
|
project: TaskRunExecutionProject,
|
|
640
|
-
batch: TaskRunExecutionBatch.optional()
|
|
691
|
+
batch: TaskRunExecutionBatch.optional(),
|
|
692
|
+
machine: MachinePreset.optional()
|
|
641
693
|
});
|
|
642
694
|
var TaskRunExecutionRetry = zod.z.object({
|
|
643
695
|
timestamp: zod.z.number(),
|
|
644
696
|
delay: zod.z.number(),
|
|
645
697
|
error: zod.z.unknown().optional()
|
|
646
698
|
});
|
|
699
|
+
var TaskRunExecutionUsage = zod.z.object({
|
|
700
|
+
durationMs: zod.z.number()
|
|
701
|
+
});
|
|
647
702
|
var TaskRunFailedExecutionResult = zod.z.object({
|
|
648
703
|
ok: zod.z.literal(false),
|
|
649
704
|
id: zod.z.string(),
|
|
650
705
|
error: TaskRunError,
|
|
651
706
|
retry: TaskRunExecutionRetry.optional(),
|
|
652
|
-
skippedRetrying: zod.z.boolean().optional()
|
|
707
|
+
skippedRetrying: zod.z.boolean().optional(),
|
|
708
|
+
usage: TaskRunExecutionUsage.optional()
|
|
653
709
|
});
|
|
654
710
|
var TaskRunSuccessfulExecutionResult = zod.z.object({
|
|
655
711
|
ok: zod.z.literal(true),
|
|
656
712
|
id: zod.z.string(),
|
|
657
713
|
output: zod.z.string().optional(),
|
|
658
|
-
outputType: zod.z.string()
|
|
714
|
+
outputType: zod.z.string(),
|
|
715
|
+
usage: TaskRunExecutionUsage.optional()
|
|
659
716
|
});
|
|
660
717
|
var TaskRunExecutionResult = zod.z.discriminatedUnion("ok", [
|
|
661
718
|
TaskRunSuccessfulExecutionResult,
|
|
@@ -673,26 +730,6 @@ zod.z.enum([
|
|
|
673
730
|
"DEVELOPMENT",
|
|
674
731
|
"PREVIEW"
|
|
675
732
|
]);
|
|
676
|
-
var MachineCpu = zod.z.union([
|
|
677
|
-
zod.z.literal(0.25),
|
|
678
|
-
zod.z.literal(0.5),
|
|
679
|
-
zod.z.literal(1),
|
|
680
|
-
zod.z.literal(2),
|
|
681
|
-
zod.z.literal(4)
|
|
682
|
-
]).default(0.5);
|
|
683
|
-
var MachineMemory = zod.z.union([
|
|
684
|
-
zod.z.literal(0.25),
|
|
685
|
-
zod.z.literal(0.5),
|
|
686
|
-
zod.z.literal(1),
|
|
687
|
-
zod.z.literal(2),
|
|
688
|
-
zod.z.literal(4),
|
|
689
|
-
zod.z.literal(8)
|
|
690
|
-
]).default(1);
|
|
691
|
-
var Machine = zod.z.object({
|
|
692
|
-
version: zod.z.literal("v1").default("v1"),
|
|
693
|
-
cpu: MachineCpu,
|
|
694
|
-
memory: MachineMemory
|
|
695
|
-
});
|
|
696
733
|
zod.z.object({
|
|
697
734
|
execution: TaskRunExecution,
|
|
698
735
|
traceContext: zod.z.record(zod.z.unknown()),
|
|
@@ -703,7 +740,8 @@ var ProdTaskRunExecution = TaskRunExecution.extend({
|
|
|
703
740
|
id: zod.z.string(),
|
|
704
741
|
contentHash: zod.z.string(),
|
|
705
742
|
version: zod.z.string()
|
|
706
|
-
})
|
|
743
|
+
}),
|
|
744
|
+
machine: MachinePreset
|
|
707
745
|
});
|
|
708
746
|
zod.z.object({
|
|
709
747
|
execution: ProdTaskRunExecution,
|
|
@@ -807,7 +845,7 @@ zod.z.object({
|
|
|
807
845
|
packageVersion: zod.z.string(),
|
|
808
846
|
queue: QueueOptions.optional(),
|
|
809
847
|
retry: RetryOptions.optional(),
|
|
810
|
-
machine:
|
|
848
|
+
machine: MachineConfig.optional(),
|
|
811
849
|
triggerSource: zod.z.string().optional()
|
|
812
850
|
});
|
|
813
851
|
zod.z.object({
|
|
@@ -819,7 +857,7 @@ zod.z.object({
|
|
|
819
857
|
packageVersion: zod.z.string(),
|
|
820
858
|
queue: QueueOptions.optional(),
|
|
821
859
|
retry: RetryOptions.optional(),
|
|
822
|
-
machine:
|
|
860
|
+
machine: MachineConfig.optional(),
|
|
823
861
|
triggerSource: zod.z.string().optional(),
|
|
824
862
|
filePath: zod.z.string(),
|
|
825
863
|
exportName: zod.z.string()
|
|
@@ -879,7 +917,7 @@ var TaskResource = zod.z.object({
|
|
|
879
917
|
exportName: zod.z.string(),
|
|
880
918
|
queue: QueueOptions.optional(),
|
|
881
919
|
retry: RetryOptions.optional(),
|
|
882
|
-
machine:
|
|
920
|
+
machine: MachineConfig.optional(),
|
|
883
921
|
triggerSource: zod.z.string().optional()
|
|
884
922
|
});
|
|
885
923
|
var BackgroundWorkerMetadata = zod.z.object({
|
|
@@ -998,7 +1036,8 @@ zod.z.object({
|
|
|
998
1036
|
var DeploymentErrorData = zod.z.object({
|
|
999
1037
|
name: zod.z.string(),
|
|
1000
1038
|
message: zod.z.string(),
|
|
1001
|
-
stack: zod.z.string().optional()
|
|
1039
|
+
stack: zod.z.string().optional(),
|
|
1040
|
+
stderr: zod.z.string().optional()
|
|
1002
1041
|
});
|
|
1003
1042
|
zod.z.object({
|
|
1004
1043
|
id: zod.z.string(),
|
|
@@ -1041,19 +1080,30 @@ zod.z.object({
|
|
|
1041
1080
|
You can use this to remove the schedule, update it, etc */
|
|
1042
1081
|
scheduleId: zod.z.string(),
|
|
1043
1082
|
/** When the task was scheduled to run.
|
|
1044
|
-
* Note this will be slightly different from `new Date()` because it takes a few ms to run the task.
|
|
1083
|
+
* Note this will be slightly different from `new Date()` because it takes a few ms to run the task.
|
|
1084
|
+
*
|
|
1085
|
+
* This date is UTC. To output it as a string with a timezone you would do this:
|
|
1086
|
+
* ```ts
|
|
1087
|
+
* const formatted = payload.timestamp.toLocaleString("en-US", {
|
|
1088
|
+
timeZone: payload.timezone,
|
|
1089
|
+
});
|
|
1090
|
+
``` */
|
|
1045
1091
|
timestamp: zod.z.date(),
|
|
1046
1092
|
/** When the task was last run (it has been).
|
|
1047
|
-
This can be undefined if it's never been run */
|
|
1093
|
+
This can be undefined if it's never been run. This date is UTC. */
|
|
1048
1094
|
lastTimestamp: zod.z.date().optional(),
|
|
1049
1095
|
/** You can optionally provide an external id when creating the schedule.
|
|
1050
1096
|
Usually you would use a userId or some other unique identifier.
|
|
1051
1097
|
This defaults to undefined if you didn't provide one. */
|
|
1052
1098
|
externalId: zod.z.string().optional(),
|
|
1099
|
+
/** The IANA timezone the schedule is set to. The default is UTC.
|
|
1100
|
+
* You can see the full list of supported timezones here: https://cloud.trigger.dev/timezones
|
|
1101
|
+
*/
|
|
1102
|
+
timezone: zod.z.string(),
|
|
1053
1103
|
/** The next 5 dates this task is scheduled to run */
|
|
1054
1104
|
upcoming: zod.z.array(zod.z.date())
|
|
1055
1105
|
});
|
|
1056
|
-
zod.z.object({
|
|
1106
|
+
var CreateScheduleOptions = zod.z.object({
|
|
1057
1107
|
/** The id of the task you want to attach to. */
|
|
1058
1108
|
task: zod.z.string(),
|
|
1059
1109
|
/** The schedule in CRON format.
|
|
@@ -1073,15 +1123,29 @@ zod.z.object({
|
|
|
1073
1123
|
|
|
1074
1124
|
*/
|
|
1075
1125
|
cron: zod.z.string(),
|
|
1076
|
-
/**
|
|
1126
|
+
/** You can only create one schedule with this key. If you use it twice, the second call will update the schedule.
|
|
1077
1127
|
*
|
|
1078
|
-
* This is
|
|
1079
|
-
deduplicationKey: zod.z.string()
|
|
1128
|
+
* This is required to prevent you from creating duplicate schedules. */
|
|
1129
|
+
deduplicationKey: zod.z.string(),
|
|
1080
1130
|
/** Optionally, you can specify your own IDs (like a user ID) and then use it inside the run function of your task.
|
|
1081
1131
|
*
|
|
1082
1132
|
* This allows you to have per-user CRON tasks.
|
|
1083
1133
|
*/
|
|
1084
|
-
externalId: zod.z.string().optional()
|
|
1134
|
+
externalId: zod.z.string().optional(),
|
|
1135
|
+
/** Optionally, you can specify a timezone in the IANA format. If unset it will use UTC.
|
|
1136
|
+
* If specified then the CRON will be evaluated in that timezone and will respect daylight savings.
|
|
1137
|
+
*
|
|
1138
|
+
* If you set the CRON to `0 0 * * *` and the timezone to `America/New_York` then the task will run at midnight in New York time, no matter whether it's daylight savings or not.
|
|
1139
|
+
*
|
|
1140
|
+
* You can see the full list of supported timezones here: https://cloud.trigger.dev/timezones
|
|
1141
|
+
*
|
|
1142
|
+
* @example "America/New_York", "Europe/London", "Asia/Tokyo", "Africa/Cairo"
|
|
1143
|
+
*
|
|
1144
|
+
*/
|
|
1145
|
+
timezone: zod.z.string().optional()
|
|
1146
|
+
});
|
|
1147
|
+
CreateScheduleOptions.omit({
|
|
1148
|
+
deduplicationKey: true
|
|
1085
1149
|
});
|
|
1086
1150
|
var ScheduleGenerator = zod.z.object({
|
|
1087
1151
|
type: zod.z.literal("CRON"),
|
|
@@ -1095,6 +1159,7 @@ var ScheduleObject = zod.z.object({
|
|
|
1095
1159
|
deduplicationKey: zod.z.string().nullish(),
|
|
1096
1160
|
externalId: zod.z.string().nullish(),
|
|
1097
1161
|
generator: ScheduleGenerator,
|
|
1162
|
+
timezone: zod.z.string(),
|
|
1098
1163
|
nextRun: zod.z.coerce.date().nullish(),
|
|
1099
1164
|
environments: zod.z.array(zod.z.object({
|
|
1100
1165
|
id: zod.z.string(),
|
|
@@ -1117,6 +1182,9 @@ zod.z.object({
|
|
|
1117
1182
|
page: zod.z.number().optional(),
|
|
1118
1183
|
perPage: zod.z.number().optional()
|
|
1119
1184
|
});
|
|
1185
|
+
zod.z.object({
|
|
1186
|
+
timezones: zod.z.array(zod.z.string())
|
|
1187
|
+
});
|
|
1120
1188
|
var RunStatus = zod.z.enum([
|
|
1121
1189
|
/// Task hasn't been deployed yet but is waiting to be executed
|
|
1122
1190
|
"WAITING_FOR_DEPLOY",
|
|
@@ -2471,7 +2539,7 @@ var _TaskExecutor = class _TaskExecutor {
|
|
|
2471
2539
|
this._importedConfig = options.importedConfig;
|
|
2472
2540
|
this._handleErrorFn = options.handleErrorFn;
|
|
2473
2541
|
}
|
|
2474
|
-
async execute(execution, worker, traceContext) {
|
|
2542
|
+
async execute(execution, worker, traceContext, usage2) {
|
|
2475
2543
|
const ctx = TaskRunContext.parse(execution);
|
|
2476
2544
|
const attemptMessage = `Attempt ${execution.attempt.number}`;
|
|
2477
2545
|
const originalPacket = {
|
|
@@ -2572,7 +2640,9 @@ var _TaskExecutor = class _TaskExecutor {
|
|
|
2572
2640
|
})
|
|
2573
2641
|
}
|
|
2574
2642
|
}, this._tracer.extractContext(traceContext));
|
|
2575
|
-
return
|
|
2643
|
+
return {
|
|
2644
|
+
result
|
|
2645
|
+
};
|
|
2576
2646
|
}
|
|
2577
2647
|
};
|
|
2578
2648
|
_callRun = new WeakSet();
|
|
@@ -3228,9 +3298,300 @@ var _StandardTaskCatalog = class _StandardTaskCatalog {
|
|
|
3228
3298
|
__name(_StandardTaskCatalog, "StandardTaskCatalog");
|
|
3229
3299
|
var StandardTaskCatalog = _StandardTaskCatalog;
|
|
3230
3300
|
|
|
3301
|
+
// src/v3/usage/noopUsageManager.ts
|
|
3302
|
+
var _NoopUsageManager = class _NoopUsageManager {
|
|
3303
|
+
disable() {
|
|
3304
|
+
}
|
|
3305
|
+
start() {
|
|
3306
|
+
return {
|
|
3307
|
+
sample: () => ({
|
|
3308
|
+
cpuTime: 0,
|
|
3309
|
+
wallTime: 0
|
|
3310
|
+
})
|
|
3311
|
+
};
|
|
3312
|
+
}
|
|
3313
|
+
stop(measurement) {
|
|
3314
|
+
return measurement.sample();
|
|
3315
|
+
}
|
|
3316
|
+
pauseAsync(cb) {
|
|
3317
|
+
return cb();
|
|
3318
|
+
}
|
|
3319
|
+
sample() {
|
|
3320
|
+
return void 0;
|
|
3321
|
+
}
|
|
3322
|
+
};
|
|
3323
|
+
__name(_NoopUsageManager, "NoopUsageManager");
|
|
3324
|
+
var NoopUsageManager = _NoopUsageManager;
|
|
3325
|
+
|
|
3326
|
+
// src/v3/usage/api.ts
|
|
3327
|
+
var API_NAME4 = "usage";
|
|
3328
|
+
var NOOP_USAGE_MANAGER = new NoopUsageManager();
|
|
3329
|
+
var _getUsageManager, getUsageManager_fn;
|
|
3330
|
+
var _UsageAPI = class _UsageAPI {
|
|
3331
|
+
constructor() {
|
|
3332
|
+
__privateAdd(this, _getUsageManager);
|
|
3333
|
+
}
|
|
3334
|
+
static getInstance() {
|
|
3335
|
+
if (!this._instance) {
|
|
3336
|
+
this._instance = new _UsageAPI();
|
|
3337
|
+
}
|
|
3338
|
+
return this._instance;
|
|
3339
|
+
}
|
|
3340
|
+
setGlobalUsageManager(manager) {
|
|
3341
|
+
return registerGlobal(API_NAME4, manager);
|
|
3342
|
+
}
|
|
3343
|
+
disable() {
|
|
3344
|
+
__privateMethod(this, _getUsageManager, getUsageManager_fn).call(this).disable();
|
|
3345
|
+
unregisterGlobal(API_NAME4);
|
|
3346
|
+
}
|
|
3347
|
+
start() {
|
|
3348
|
+
return __privateMethod(this, _getUsageManager, getUsageManager_fn).call(this).start();
|
|
3349
|
+
}
|
|
3350
|
+
stop(measurement) {
|
|
3351
|
+
return __privateMethod(this, _getUsageManager, getUsageManager_fn).call(this).stop(measurement);
|
|
3352
|
+
}
|
|
3353
|
+
pauseAsync(cb) {
|
|
3354
|
+
return __privateMethod(this, _getUsageManager, getUsageManager_fn).call(this).pauseAsync(cb);
|
|
3355
|
+
}
|
|
3356
|
+
sample() {
|
|
3357
|
+
return __privateMethod(this, _getUsageManager, getUsageManager_fn).call(this).sample();
|
|
3358
|
+
}
|
|
3359
|
+
};
|
|
3360
|
+
_getUsageManager = new WeakSet();
|
|
3361
|
+
getUsageManager_fn = /* @__PURE__ */ __name(function() {
|
|
3362
|
+
return getGlobal(API_NAME4) ?? NOOP_USAGE_MANAGER;
|
|
3363
|
+
}, "#getUsageManager");
|
|
3364
|
+
__name(_UsageAPI, "UsageAPI");
|
|
3365
|
+
var UsageAPI = _UsageAPI;
|
|
3366
|
+
|
|
3367
|
+
// src/v3/usage-api.ts
|
|
3368
|
+
var usage = UsageAPI.getInstance();
|
|
3369
|
+
|
|
3370
|
+
// src/v3/clock/clock.ts
|
|
3371
|
+
function calculateDurationInMs(start, end) {
|
|
3372
|
+
const [startSeconds, startNanoseconds] = start;
|
|
3373
|
+
const [endSeconds, endNanoseconds] = end;
|
|
3374
|
+
const seconds = endSeconds - startSeconds;
|
|
3375
|
+
const nanoseconds = endNanoseconds - startNanoseconds;
|
|
3376
|
+
return Math.floor(seconds * 1e3 + nanoseconds / 1e6);
|
|
3377
|
+
}
|
|
3378
|
+
__name(calculateDurationInMs, "calculateDurationInMs");
|
|
3379
|
+
|
|
3380
|
+
// src/v3/usage/devUsageManager.ts
|
|
3381
|
+
var _a2;
|
|
3382
|
+
var DevUsageMeasurement = (_a2 = class {
|
|
3383
|
+
constructor(id, startedAt = clock.preciseNow()) {
|
|
3384
|
+
this.id = id;
|
|
3385
|
+
this.startedAt = startedAt;
|
|
3386
|
+
this._pauses = /* @__PURE__ */ new Map();
|
|
3387
|
+
}
|
|
3388
|
+
stop() {
|
|
3389
|
+
this._endedAt = clock.preciseNow();
|
|
3390
|
+
}
|
|
3391
|
+
sample() {
|
|
3392
|
+
const endedAt = this._endedAt ?? clock.preciseNow();
|
|
3393
|
+
const wallTime = this.startedAt ? calculateDurationInMs(this.startedAt, endedAt) : 0;
|
|
3394
|
+
if (wallTime === 0) {
|
|
3395
|
+
return {
|
|
3396
|
+
cpuTime: 0,
|
|
3397
|
+
wallTime: 0
|
|
3398
|
+
};
|
|
3399
|
+
}
|
|
3400
|
+
const totalPauses = Array.from(this._pauses.values()).reduce((total, pause) => {
|
|
3401
|
+
return total + calculateDurationInMs(pause.start, pause.end ?? endedAt);
|
|
3402
|
+
}, 0);
|
|
3403
|
+
const cpuTime = wallTime - totalPauses;
|
|
3404
|
+
return {
|
|
3405
|
+
wallTime,
|
|
3406
|
+
cpuTime
|
|
3407
|
+
};
|
|
3408
|
+
}
|
|
3409
|
+
registerPause(pauseId, start, end) {
|
|
3410
|
+
this._pauses.set(pauseId, {
|
|
3411
|
+
start,
|
|
3412
|
+
end
|
|
3413
|
+
});
|
|
3414
|
+
}
|
|
3415
|
+
}, __name(_a2, "DevUsageMeasurement"), _a2);
|
|
3416
|
+
var _DevUsageManager = class _DevUsageManager {
|
|
3417
|
+
constructor() {
|
|
3418
|
+
__publicField(this, "_currentMeasurements", /* @__PURE__ */ new Map());
|
|
3419
|
+
__publicField(this, "_pauses", /* @__PURE__ */ new Map());
|
|
3420
|
+
}
|
|
3421
|
+
disable() {
|
|
3422
|
+
}
|
|
3423
|
+
sample() {
|
|
3424
|
+
return this._firstMeasurement?.sample();
|
|
3425
|
+
}
|
|
3426
|
+
start() {
|
|
3427
|
+
const id = generateRandomString();
|
|
3428
|
+
const measurement = new DevUsageMeasurement(id);
|
|
3429
|
+
if (!this._firstMeasurement) {
|
|
3430
|
+
this._firstMeasurement = measurement;
|
|
3431
|
+
}
|
|
3432
|
+
this._currentMeasurements.set(id, measurement);
|
|
3433
|
+
return measurement;
|
|
3434
|
+
}
|
|
3435
|
+
stop(measurement) {
|
|
3436
|
+
measurement.stop();
|
|
3437
|
+
const sample = measurement.sample();
|
|
3438
|
+
this._currentMeasurements.delete(measurement.id);
|
|
3439
|
+
return sample;
|
|
3440
|
+
}
|
|
3441
|
+
async pauseAsync(cb) {
|
|
3442
|
+
const pauseId = generateRandomString();
|
|
3443
|
+
const pauseStart = clock.preciseNow();
|
|
3444
|
+
try {
|
|
3445
|
+
this._pauses.set(pauseId, {
|
|
3446
|
+
start: pauseStart
|
|
3447
|
+
});
|
|
3448
|
+
for (const measurement of this._currentMeasurements.values()) {
|
|
3449
|
+
measurement.registerPause(pauseId, pauseStart);
|
|
3450
|
+
}
|
|
3451
|
+
return await cb();
|
|
3452
|
+
} finally {
|
|
3453
|
+
const pauseEnd = clock.preciseNow();
|
|
3454
|
+
this._pauses.set(pauseId, {
|
|
3455
|
+
start: pauseStart,
|
|
3456
|
+
end: pauseEnd
|
|
3457
|
+
});
|
|
3458
|
+
for (const measurement of this._currentMeasurements.values()) {
|
|
3459
|
+
measurement.registerPause(pauseId, pauseStart, pauseEnd);
|
|
3460
|
+
}
|
|
3461
|
+
}
|
|
3462
|
+
}
|
|
3463
|
+
};
|
|
3464
|
+
__name(_DevUsageManager, "DevUsageManager");
|
|
3465
|
+
var DevUsageManager = _DevUsageManager;
|
|
3466
|
+
function generateRandomString() {
|
|
3467
|
+
let result = "";
|
|
3468
|
+
const characters = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
|
|
3469
|
+
const charactersLength = characters.length;
|
|
3470
|
+
for (var i = 0; i < 16; i++) {
|
|
3471
|
+
result += characters.charAt(Math.floor(Math.random() * charactersLength));
|
|
3472
|
+
}
|
|
3473
|
+
return result;
|
|
3474
|
+
}
|
|
3475
|
+
__name(generateRandomString, "generateRandomString");
|
|
3476
|
+
|
|
3477
|
+
// src/v3/usage/usageClient.ts
|
|
3478
|
+
var _UsageClient = class _UsageClient {
|
|
3479
|
+
constructor(url, jwt) {
|
|
3480
|
+
this.url = url;
|
|
3481
|
+
this.jwt = jwt;
|
|
3482
|
+
}
|
|
3483
|
+
async sendUsageEvent(event) {
|
|
3484
|
+
try {
|
|
3485
|
+
const response = await fetch(this.url, {
|
|
3486
|
+
method: "POST",
|
|
3487
|
+
body: JSON.stringify(event),
|
|
3488
|
+
headers: {
|
|
3489
|
+
"content-type": "application/json",
|
|
3490
|
+
"x-trigger-jwt": this.jwt,
|
|
3491
|
+
accept: "application/json",
|
|
3492
|
+
authorization: `Bearer ${apiClientManager.accessToken}`
|
|
3493
|
+
}
|
|
3494
|
+
});
|
|
3495
|
+
if (response.ok) {
|
|
3496
|
+
const renewedJwt = response.headers.get("x-trigger-jwt");
|
|
3497
|
+
if (renewedJwt) {
|
|
3498
|
+
this.jwt = renewedJwt;
|
|
3499
|
+
}
|
|
3500
|
+
}
|
|
3501
|
+
} catch (error) {
|
|
3502
|
+
console.error(`Failed to send usage event: ${error}`);
|
|
3503
|
+
}
|
|
3504
|
+
}
|
|
3505
|
+
};
|
|
3506
|
+
__name(_UsageClient, "UsageClient");
|
|
3507
|
+
var UsageClient = _UsageClient;
|
|
3508
|
+
|
|
3509
|
+
// src/v3/usage/prodUsageManager.ts
|
|
3510
|
+
var _startReportingHeartbeat, startReportingHeartbeat_fn, _reportUsage, reportUsage_fn;
|
|
3511
|
+
var _ProdUsageManager = class _ProdUsageManager {
|
|
3512
|
+
constructor(delegageUsageManager, options) {
|
|
3513
|
+
__privateAdd(this, _startReportingHeartbeat);
|
|
3514
|
+
__privateAdd(this, _reportUsage);
|
|
3515
|
+
this.delegageUsageManager = delegageUsageManager;
|
|
3516
|
+
this.options = options;
|
|
3517
|
+
if (this.options.url && this.options.jwt) {
|
|
3518
|
+
this._usageClient = new UsageClient(this.options.url, this.options.jwt);
|
|
3519
|
+
}
|
|
3520
|
+
}
|
|
3521
|
+
get isReportingEnabled() {
|
|
3522
|
+
return typeof this._usageClient !== "undefined";
|
|
3523
|
+
}
|
|
3524
|
+
disable() {
|
|
3525
|
+
this.delegageUsageManager.disable();
|
|
3526
|
+
this._abortController?.abort();
|
|
3527
|
+
}
|
|
3528
|
+
sample() {
|
|
3529
|
+
return this._measurement?.sample();
|
|
3530
|
+
}
|
|
3531
|
+
start() {
|
|
3532
|
+
if (!this.isReportingEnabled || !this.options.heartbeatIntervalMs) {
|
|
3533
|
+
return this.delegageUsageManager.start();
|
|
3534
|
+
}
|
|
3535
|
+
if (!this._measurement) {
|
|
3536
|
+
this._measurement = this.delegageUsageManager.start();
|
|
3537
|
+
__privateMethod(this, _startReportingHeartbeat, startReportingHeartbeat_fn).call(this).catch(console.error);
|
|
3538
|
+
return this._measurement;
|
|
3539
|
+
}
|
|
3540
|
+
return this.delegageUsageManager.start();
|
|
3541
|
+
}
|
|
3542
|
+
stop(measurement) {
|
|
3543
|
+
return this.delegageUsageManager.stop(measurement);
|
|
3544
|
+
}
|
|
3545
|
+
async pauseAsync(cb) {
|
|
3546
|
+
return this.delegageUsageManager.pauseAsync(cb);
|
|
3547
|
+
}
|
|
3548
|
+
async flush() {
|
|
3549
|
+
return await __privateMethod(this, _reportUsage, reportUsage_fn).call(this);
|
|
3550
|
+
}
|
|
3551
|
+
};
|
|
3552
|
+
_startReportingHeartbeat = new WeakSet();
|
|
3553
|
+
startReportingHeartbeat_fn = /* @__PURE__ */ __name(async function() {
|
|
3554
|
+
if (!this._measurement || !this.isReportingEnabled || !this.options.heartbeatIntervalMs) {
|
|
3555
|
+
return;
|
|
3556
|
+
}
|
|
3557
|
+
this._abortController = new AbortController();
|
|
3558
|
+
for await (const _ of promises.setInterval(this.options.heartbeatIntervalMs)) {
|
|
3559
|
+
if (this._abortController.signal.aborted) {
|
|
3560
|
+
break;
|
|
3561
|
+
}
|
|
3562
|
+
await __privateMethod(this, _reportUsage, reportUsage_fn).call(this);
|
|
3563
|
+
}
|
|
3564
|
+
}, "#startReportingHeartbeat");
|
|
3565
|
+
_reportUsage = new WeakSet();
|
|
3566
|
+
reportUsage_fn = /* @__PURE__ */ __name(async function() {
|
|
3567
|
+
if (!this._measurement) {
|
|
3568
|
+
return;
|
|
3569
|
+
}
|
|
3570
|
+
if (!this.isReportingEnabled) {
|
|
3571
|
+
return;
|
|
3572
|
+
}
|
|
3573
|
+
const client = this._usageClient;
|
|
3574
|
+
if (!client) {
|
|
3575
|
+
return;
|
|
3576
|
+
}
|
|
3577
|
+
const sample = this._measurement.sample();
|
|
3578
|
+
const cpuTimeSinceLastSample = this._lastSample ? sample.cpuTime - this._lastSample.cpuTime : sample.cpuTime;
|
|
3579
|
+
this._lastSample = sample;
|
|
3580
|
+
if (cpuTimeSinceLastSample <= 0) {
|
|
3581
|
+
return;
|
|
3582
|
+
}
|
|
3583
|
+
await client.sendUsageEvent({
|
|
3584
|
+
durationMs: cpuTimeSinceLastSample
|
|
3585
|
+
});
|
|
3586
|
+
}, "#reportUsage");
|
|
3587
|
+
__name(_ProdUsageManager, "ProdUsageManager");
|
|
3588
|
+
var ProdUsageManager = _ProdUsageManager;
|
|
3589
|
+
|
|
3231
3590
|
exports.ConsoleInterceptor = ConsoleInterceptor;
|
|
3591
|
+
exports.DevUsageManager = DevUsageManager;
|
|
3232
3592
|
exports.DurableClock = PreciseWallClock;
|
|
3233
3593
|
exports.OtelTaskLogger = OtelTaskLogger;
|
|
3594
|
+
exports.ProdUsageManager = ProdUsageManager;
|
|
3234
3595
|
exports.StandardTaskCatalog = StandardTaskCatalog;
|
|
3235
3596
|
exports.TaskContextLogProcessor = TaskContextLogProcessor;
|
|
3236
3597
|
exports.TaskContextSpanProcessor = TaskContextSpanProcessor;
|
|
@@ -3239,5 +3600,6 @@ exports.TracingSDK = TracingSDK;
|
|
|
3239
3600
|
exports.getEnvVar = getEnvVar;
|
|
3240
3601
|
exports.logLevels = logLevels;
|
|
3241
3602
|
exports.recordSpanException = recordSpanException;
|
|
3603
|
+
exports.usage = usage;
|
|
3242
3604
|
//# sourceMappingURL=out.js.map
|
|
3243
3605
|
//# sourceMappingURL=index.js.map
|