@trigger.dev/core 0.0.0-v3-prerelease-20240523152756 → 0.0.0-v3-prerelease-20240612084127

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.
Files changed (51) hide show
  1. package/dist/catalog-XTlJQaMn.d.mts +202 -0
  2. package/dist/catalog-dRKTgwQ7.d.ts +202 -0
  3. package/dist/{manager-WNMVbgHf.d.mts → manager-JkbddlcO.d.mts} +43 -42
  4. package/dist/{manager-WNMVbgHf.d.ts → manager-JkbddlcO.d.ts} +43 -42
  5. package/dist/{messages-vq7Bk4Ap.d.mts → messages-9lty-Du5.d.mts} +5320 -1444
  6. package/dist/{messages-vq7Bk4Ap.d.ts → messages-9lty-Du5.d.ts} +5320 -1444
  7. package/dist/{catalog-tX1P4jZQ.d.ts → schemas-r4ZP9S-F.d.mts} +22 -201
  8. package/dist/{catalog-Y8FyPWvh.d.mts → schemas-r4ZP9S-F.d.ts} +22 -201
  9. package/dist/v3/dev/index.d.mts +2 -2
  10. package/dist/v3/dev/index.d.ts +2 -2
  11. package/dist/v3/dev/index.js +4 -4
  12. package/dist/v3/dev/index.js.map +1 -1
  13. package/dist/v3/dev/index.mjs +4 -4
  14. package/dist/v3/dev/index.mjs.map +1 -1
  15. package/dist/v3/index.d.mts +592 -152
  16. package/dist/v3/index.d.ts +592 -152
  17. package/dist/v3/index.js +974 -381
  18. package/dist/v3/index.js.map +1 -1
  19. package/dist/v3/index.mjs +965 -381
  20. package/dist/v3/index.mjs.map +1 -1
  21. package/dist/v3/otel/index.js +1 -1
  22. package/dist/v3/otel/index.js.map +1 -1
  23. package/dist/v3/otel/index.mjs +1 -1
  24. package/dist/v3/otel/index.mjs.map +1 -1
  25. package/dist/v3/prod/index.d.mts +3 -3
  26. package/dist/v3/prod/index.d.ts +3 -3
  27. package/dist/v3/prod/index.js +90 -15
  28. package/dist/v3/prod/index.js.map +1 -1
  29. package/dist/v3/prod/index.mjs +90 -15
  30. package/dist/v3/prod/index.mjs.map +1 -1
  31. package/dist/v3/workers/index.d.mts +6 -5
  32. package/dist/v3/workers/index.d.ts +6 -5
  33. package/dist/v3/workers/index.js +478 -54
  34. package/dist/v3/workers/index.js.map +1 -1
  35. package/dist/v3/workers/index.mjs +479 -55
  36. package/dist/v3/workers/index.mjs.map +1 -1
  37. package/dist/v3/zodNamespace.js +16 -6
  38. package/dist/v3/zodNamespace.js.map +1 -1
  39. package/dist/v3/zodNamespace.mjs +17 -7
  40. package/dist/v3/zodNamespace.mjs.map +1 -1
  41. package/dist/v3/zodSocket.js +16 -6
  42. package/dist/v3/zodSocket.js.map +1 -1
  43. package/dist/v3/zodSocket.mjs +17 -7
  44. package/dist/v3/zodSocket.mjs.map +1 -1
  45. package/dist/v3/zodfetch.d.mts +262 -0
  46. package/dist/v3/zodfetch.d.ts +262 -0
  47. package/dist/v3/zodfetch.js +744 -0
  48. package/dist/v3/zodfetch.js.map +1 -0
  49. package/dist/v3/zodfetch.mjs +716 -0
  50. package/dist/v3/zodfetch.mjs.map +1 -0
  51. package/package.json +9 -1
@@ -1,6 +1,7 @@
1
1
  'use strict';
2
2
 
3
3
  var api = require('@opentelemetry/api');
4
+ var zod = require('zod');
4
5
  var apiLogs = require('@opentelemetry/api-logs');
5
6
  var exporterLogsOtlpHttp = require('@opentelemetry/exporter-logs-otlp-http');
6
7
  var exporterTraceOtlpHttp = require('@opentelemetry/exporter-trace-otlp-http');
@@ -9,7 +10,6 @@ var resources = require('@opentelemetry/resources');
9
10
  var sdkLogs = require('@opentelemetry/sdk-logs');
10
11
  var sdkTraceNode = require('@opentelemetry/sdk-trace-node');
11
12
  var semanticConventions = require('@opentelemetry/semantic-conventions');
12
- var zod = require('zod');
13
13
  var zodValidationError = require('zod-validation-error');
14
14
  var formDataEncoder = require('form-data-encoder');
15
15
  var stream = require('stream');
@@ -44,8 +44,6 @@ var __privateMethod = (obj, member, method) => {
44
44
  __accessCheck(obj, member, "access private method");
45
45
  return method;
46
46
  };
47
-
48
- // src/v3/errors.ts
49
47
  function parseError(error) {
50
48
  if (error instanceof Error) {
51
49
  return {
@@ -74,6 +72,11 @@ function parseError(error) {
74
72
  }
75
73
  }
76
74
  __name(parseError, "parseError");
75
+ var SerializedError = zod.z.object({
76
+ message: zod.z.string(),
77
+ name: zod.z.string().optional(),
78
+ stackTrace: zod.z.string().optional()
79
+ });
77
80
 
78
81
  // src/v3/limits.ts
79
82
  var OTEL_SPAN_ATTRIBUTE_COUNT_LIMIT = 256;
@@ -358,7 +361,7 @@ function getEnvVar(name) {
358
361
  __name(getEnvVar, "getEnvVar");
359
362
 
360
363
  // package.json
361
- var version = "0.0.0-v3-prerelease-20240523152756";
364
+ var version = "0.0.0-v3-prerelease-20240612084127";
362
365
 
363
366
  // src/v3/otel/tracingSDK.ts
364
367
  var _a;
@@ -528,6 +531,7 @@ var TaskRunErrorCodes = {
528
531
  TASK_EXECUTION_FAILED: "TASK_EXECUTION_FAILED",
529
532
  TASK_EXECUTION_ABORTED: "TASK_EXECUTION_ABORTED",
530
533
  TASK_PROCESS_EXITED_WITH_NON_ZERO_CODE: "TASK_PROCESS_EXITED_WITH_NON_ZERO_CODE",
534
+ TASK_PROCESS_SIGKILL_TIMEOUT: "TASK_PROCESS_SIGKILL_TIMEOUT",
531
535
  TASK_RUN_CANCELLED: "TASK_RUN_CANCELLED",
532
536
  TASK_OUTPUT_ERROR: "TASK_OUTPUT_ERROR",
533
537
  HANDLE_ERROR_ERROR: "HANDLE_ERROR_ERROR",
@@ -543,10 +547,12 @@ var TaskRunInternalError = zod.z.object({
543
547
  "TASK_EXECUTION_FAILED",
544
548
  "TASK_EXECUTION_ABORTED",
545
549
  "TASK_PROCESS_EXITED_WITH_NON_ZERO_CODE",
550
+ "TASK_PROCESS_SIGKILL_TIMEOUT",
546
551
  "TASK_RUN_CANCELLED",
547
552
  "TASK_OUTPUT_ERROR",
548
553
  "HANDLE_ERROR_ERROR",
549
- "GRACEFUL_EXIT_TIMEOUT"
554
+ "GRACEFUL_EXIT_TIMEOUT",
555
+ "TASK_RUN_HEARTBEAT_TIMEOUT"
550
556
  ]),
551
557
  message: zod.z.string().optional()
552
558
  });
@@ -796,7 +802,7 @@ var QueueOptions = zod.z.object({
796
802
  /** @deprecated This feature is coming soon */
797
803
  rateLimit: RateLimitOptions.optional()
798
804
  });
799
- var TaskMetadata = zod.z.object({
805
+ zod.z.object({
800
806
  id: zod.z.string(),
801
807
  packageVersion: zod.z.string(),
802
808
  queue: QueueOptions.optional(),
@@ -804,11 +810,20 @@ var TaskMetadata = zod.z.object({
804
810
  machine: Machine.partial().optional(),
805
811
  triggerSource: zod.z.string().optional()
806
812
  });
807
- var TaskFileMetadata = zod.z.object({
813
+ zod.z.object({
814
+ filePath: zod.z.string(),
815
+ exportName: zod.z.string()
816
+ });
817
+ zod.z.object({
818
+ id: zod.z.string(),
819
+ packageVersion: zod.z.string(),
820
+ queue: QueueOptions.optional(),
821
+ retry: RetryOptions.optional(),
822
+ machine: Machine.partial().optional(),
823
+ triggerSource: zod.z.string().optional(),
808
824
  filePath: zod.z.string(),
809
825
  exportName: zod.z.string()
810
826
  });
811
- TaskMetadata.merge(TaskFileMetadata);
812
827
  zod.z.enum([
813
828
  "index",
814
829
  "create",
@@ -849,6 +864,13 @@ zod.z.enum([
849
864
  "WAIT_FOR_TASK",
850
865
  "WAIT_FOR_BATCH"
851
866
  ]);
867
+ zod.z.object({
868
+ runId: zod.z.string(),
869
+ messageId: zod.z.string(),
870
+ isTest: zod.z.boolean(),
871
+ traceContext: zod.z.record(zod.z.unknown()),
872
+ environment: zod.z.record(zod.z.string()).optional()
873
+ });
852
874
 
853
875
  // src/v3/schemas/resources.ts
854
876
  var TaskResource = zod.z.object({
@@ -898,7 +920,8 @@ zod.z.object({
898
920
  });
899
921
  zod.z.object({
900
922
  localOnly: zod.z.boolean(),
901
- metadata: BackgroundWorkerMetadata
923
+ metadata: BackgroundWorkerMetadata,
924
+ supportsLazyAttempts: zod.z.boolean().optional()
902
925
  });
903
926
  zod.z.object({
904
927
  id: zod.z.string(),
@@ -975,7 +998,8 @@ zod.z.object({
975
998
  var DeploymentErrorData = zod.z.object({
976
999
  name: zod.z.string(),
977
1000
  message: zod.z.string(),
978
- stack: zod.z.string().optional()
1001
+ stack: zod.z.string().optional(),
1002
+ stderr: zod.z.string().optional()
979
1003
  });
980
1004
  zod.z.object({
981
1005
  id: zod.z.string(),
@@ -1011,7 +1035,7 @@ var ReplayRunResponse = zod.z.object({
1011
1035
  id: zod.z.string()
1012
1036
  });
1013
1037
  var CanceledRunResponse = zod.z.object({
1014
- message: zod.z.string()
1038
+ id: zod.z.string()
1015
1039
  });
1016
1040
  zod.z.object({
1017
1041
  /** The schedule id associated with this run (you can have many schedules for the same task).
@@ -1060,17 +1084,18 @@ zod.z.object({
1060
1084
  */
1061
1085
  externalId: zod.z.string().optional()
1062
1086
  });
1087
+ var ScheduleGenerator = zod.z.object({
1088
+ type: zod.z.literal("CRON"),
1089
+ expression: zod.z.string(),
1090
+ description: zod.z.string()
1091
+ });
1063
1092
  var ScheduleObject = zod.z.object({
1064
1093
  id: zod.z.string(),
1065
1094
  task: zod.z.string(),
1066
1095
  active: zod.z.boolean(),
1067
1096
  deduplicationKey: zod.z.string().nullish(),
1068
1097
  externalId: zod.z.string().nullish(),
1069
- generator: zod.z.object({
1070
- type: zod.z.literal("CRON"),
1071
- expression: zod.z.string(),
1072
- description: zod.z.string()
1073
- }),
1098
+ generator: ScheduleGenerator,
1074
1099
  nextRun: zod.z.coerce.date().nullish(),
1075
1100
  environments: zod.z.array(zod.z.object({
1076
1101
  id: zod.z.string(),
@@ -1081,7 +1106,7 @@ var ScheduleObject = zod.z.object({
1081
1106
  var DeletedScheduleObject = zod.z.object({
1082
1107
  id: zod.z.string()
1083
1108
  });
1084
- var ListSchedulesResult = zod.z.object({
1109
+ zod.z.object({
1085
1110
  data: zod.z.array(ScheduleObject),
1086
1111
  pagination: zod.z.object({
1087
1112
  currentPage: zod.z.number(),
@@ -1094,12 +1119,28 @@ zod.z.object({
1094
1119
  perPage: zod.z.number().optional()
1095
1120
  });
1096
1121
  var RunStatus = zod.z.enum([
1097
- "PENDING",
1122
+ /// Task hasn't been deployed yet but is waiting to be executed
1123
+ "WAITING_FOR_DEPLOY",
1124
+ /// Task is waiting to be executed by a worker
1125
+ "QUEUED",
1126
+ /// Task is currently being executed by a worker
1098
1127
  "EXECUTING",
1099
- "PAUSED",
1128
+ /// Task has failed and is waiting to be retried
1129
+ "REATTEMPTING",
1130
+ /// Task has been paused by the system, and will be resumed by the system
1131
+ "FROZEN",
1132
+ /// Task has been completed successfully
1100
1133
  "COMPLETED",
1134
+ /// Task has been canceled by the user
1135
+ "CANCELED",
1136
+ /// Task has been completed with errors
1101
1137
  "FAILED",
1102
- "CANCELED"
1138
+ /// Task has crashed and won't be retried, most likely the worker ran out of resources, e.g. memory or storage
1139
+ "CRASHED",
1140
+ /// Task was interrupted during execution, mostly this happens in development environments
1141
+ "INTERRUPTED",
1142
+ /// Task has failed to complete, due to an error in the system
1143
+ "SYSTEM_FAILURE"
1103
1144
  ]);
1104
1145
  var AttemptStatus = zod.z.enum([
1105
1146
  "PENDING",
@@ -1109,23 +1150,61 @@ var AttemptStatus = zod.z.enum([
1109
1150
  "FAILED",
1110
1151
  "CANCELED"
1111
1152
  ]);
1112
- var RetrieveRunResponse = zod.z.object({
1153
+ var RunEnvironmentDetails = zod.z.object({
1154
+ id: zod.z.string(),
1155
+ name: zod.z.string(),
1156
+ user: zod.z.string().optional()
1157
+ });
1158
+ var RunScheduleDetails = zod.z.object({
1159
+ id: zod.z.string(),
1160
+ externalId: zod.z.string().optional(),
1161
+ deduplicationKey: zod.z.string().optional(),
1162
+ generator: ScheduleGenerator
1163
+ });
1164
+ var CommonRunFields = {
1113
1165
  id: zod.z.string(),
1114
1166
  status: RunStatus,
1115
1167
  taskIdentifier: zod.z.string(),
1116
1168
  idempotencyKey: zod.z.string().optional(),
1117
1169
  version: zod.z.string().optional(),
1170
+ isQueued: zod.z.boolean(),
1171
+ isExecuting: zod.z.boolean(),
1172
+ isCompleted: zod.z.boolean(),
1173
+ isSuccess: zod.z.boolean(),
1174
+ isFailed: zod.z.boolean(),
1175
+ isCancelled: zod.z.boolean(),
1176
+ isTest: zod.z.boolean(),
1118
1177
  createdAt: zod.z.coerce.date(),
1119
1178
  updatedAt: zod.z.coerce.date(),
1179
+ startedAt: zod.z.coerce.date().optional(),
1180
+ finishedAt: zod.z.coerce.date().optional()
1181
+ };
1182
+ var RetrieveRunResponse = zod.z.object({
1183
+ ...CommonRunFields,
1184
+ payload: zod.z.any().optional(),
1185
+ output: zod.z.any().optional(),
1186
+ schedule: RunScheduleDetails.optional(),
1120
1187
  attempts: zod.z.array(zod.z.object({
1121
1188
  id: zod.z.string(),
1122
1189
  status: AttemptStatus,
1123
1190
  createdAt: zod.z.coerce.date(),
1124
1191
  updatedAt: zod.z.coerce.date(),
1125
1192
  startedAt: zod.z.coerce.date().optional(),
1126
- completedAt: zod.z.coerce.date().optional()
1193
+ completedAt: zod.z.coerce.date().optional(),
1194
+ error: SerializedError.optional()
1127
1195
  }).optional())
1128
1196
  });
1197
+ var ListRunResponseItem = zod.z.object({
1198
+ ...CommonRunFields,
1199
+ env: RunEnvironmentDetails
1200
+ });
1201
+ zod.z.object({
1202
+ data: zod.z.array(ListRunResponseItem),
1203
+ pagination: zod.z.object({
1204
+ next: zod.z.string().optional(),
1205
+ previous: zod.z.string().optional()
1206
+ })
1207
+ });
1129
1208
  zod.z.object({
1130
1209
  name: zod.z.string(),
1131
1210
  value: zod.z.string()
@@ -1149,10 +1228,10 @@ var EnvironmentVariable = zod.z.object({
1149
1228
  });
1150
1229
  var EnvironmentVariables = zod.z.array(EnvironmentVariable);
1151
1230
 
1152
- // src/v3/apiErrors.ts
1153
- var _APIError = class _APIError extends Error {
1231
+ // src/v3/apiClient/errors.ts
1232
+ var _ApiError = class _ApiError extends Error {
1154
1233
  constructor(status, error, message, headers) {
1155
- super(`${_APIError.makeMessage(status, error, message)}`);
1234
+ super(`${_ApiError.makeMessage(status, error, message)}`);
1156
1235
  this.status = status;
1157
1236
  this.headers = headers;
1158
1237
  const data = error;
@@ -1176,7 +1255,7 @@ var _APIError = class _APIError extends Error {
1176
1255
  }
1177
1256
  static generate(status, errorResponse, message, headers) {
1178
1257
  if (!status) {
1179
- return new APIConnectionError({
1258
+ return new ApiConnectionError({
1180
1259
  cause: castToError(errorResponse)
1181
1260
  });
1182
1261
  }
@@ -1205,12 +1284,12 @@ var _APIError = class _APIError extends Error {
1205
1284
  if (status >= 500) {
1206
1285
  return new InternalServerError(status, error, message, headers);
1207
1286
  }
1208
- return new _APIError(status, error, message, headers);
1287
+ return new _ApiError(status, error, message, headers);
1209
1288
  }
1210
1289
  };
1211
- __name(_APIError, "APIError");
1212
- var APIError = _APIError;
1213
- var _APIConnectionError = class _APIConnectionError extends APIError {
1290
+ __name(_ApiError, "ApiError");
1291
+ var ApiError = _ApiError;
1292
+ var _ApiConnectionError = class _ApiConnectionError extends ApiError {
1214
1293
  constructor({ message, cause }) {
1215
1294
  super(void 0, void 0, message || "Connection error.", void 0);
1216
1295
  __publicField(this, "status");
@@ -1218,9 +1297,9 @@ var _APIConnectionError = class _APIConnectionError extends APIError {
1218
1297
  this.cause = cause;
1219
1298
  }
1220
1299
  };
1221
- __name(_APIConnectionError, "APIConnectionError");
1222
- var APIConnectionError = _APIConnectionError;
1223
- var _BadRequestError = class _BadRequestError extends APIError {
1300
+ __name(_ApiConnectionError, "ApiConnectionError");
1301
+ var ApiConnectionError = _ApiConnectionError;
1302
+ var _BadRequestError = class _BadRequestError extends ApiError {
1224
1303
  constructor() {
1225
1304
  super(...arguments);
1226
1305
  __publicField(this, "status", 400);
@@ -1228,7 +1307,7 @@ var _BadRequestError = class _BadRequestError extends APIError {
1228
1307
  };
1229
1308
  __name(_BadRequestError, "BadRequestError");
1230
1309
  var BadRequestError = _BadRequestError;
1231
- var _AuthenticationError = class _AuthenticationError extends APIError {
1310
+ var _AuthenticationError = class _AuthenticationError extends ApiError {
1232
1311
  constructor() {
1233
1312
  super(...arguments);
1234
1313
  __publicField(this, "status", 401);
@@ -1236,7 +1315,7 @@ var _AuthenticationError = class _AuthenticationError extends APIError {
1236
1315
  };
1237
1316
  __name(_AuthenticationError, "AuthenticationError");
1238
1317
  var AuthenticationError = _AuthenticationError;
1239
- var _PermissionDeniedError = class _PermissionDeniedError extends APIError {
1318
+ var _PermissionDeniedError = class _PermissionDeniedError extends ApiError {
1240
1319
  constructor() {
1241
1320
  super(...arguments);
1242
1321
  __publicField(this, "status", 403);
@@ -1244,7 +1323,7 @@ var _PermissionDeniedError = class _PermissionDeniedError extends APIError {
1244
1323
  };
1245
1324
  __name(_PermissionDeniedError, "PermissionDeniedError");
1246
1325
  var PermissionDeniedError = _PermissionDeniedError;
1247
- var _NotFoundError = class _NotFoundError extends APIError {
1326
+ var _NotFoundError = class _NotFoundError extends ApiError {
1248
1327
  constructor() {
1249
1328
  super(...arguments);
1250
1329
  __publicField(this, "status", 404);
@@ -1252,7 +1331,7 @@ var _NotFoundError = class _NotFoundError extends APIError {
1252
1331
  };
1253
1332
  __name(_NotFoundError, "NotFoundError");
1254
1333
  var NotFoundError = _NotFoundError;
1255
- var _ConflictError = class _ConflictError extends APIError {
1334
+ var _ConflictError = class _ConflictError extends ApiError {
1256
1335
  constructor() {
1257
1336
  super(...arguments);
1258
1337
  __publicField(this, "status", 409);
@@ -1260,7 +1339,7 @@ var _ConflictError = class _ConflictError extends APIError {
1260
1339
  };
1261
1340
  __name(_ConflictError, "ConflictError");
1262
1341
  var ConflictError = _ConflictError;
1263
- var _UnprocessableEntityError = class _UnprocessableEntityError extends APIError {
1342
+ var _UnprocessableEntityError = class _UnprocessableEntityError extends ApiError {
1264
1343
  constructor() {
1265
1344
  super(...arguments);
1266
1345
  __publicField(this, "status", 422);
@@ -1268,7 +1347,7 @@ var _UnprocessableEntityError = class _UnprocessableEntityError extends APIError
1268
1347
  };
1269
1348
  __name(_UnprocessableEntityError, "UnprocessableEntityError");
1270
1349
  var UnprocessableEntityError = _UnprocessableEntityError;
1271
- var _RateLimitError = class _RateLimitError extends APIError {
1350
+ var _RateLimitError = class _RateLimitError extends ApiError {
1272
1351
  constructor() {
1273
1352
  super(...arguments);
1274
1353
  __publicField(this, "status", 429);
@@ -1276,7 +1355,7 @@ var _RateLimitError = class _RateLimitError extends APIError {
1276
1355
  };
1277
1356
  __name(_RateLimitError, "RateLimitError");
1278
1357
  var RateLimitError = _RateLimitError;
1279
- var _InternalServerError = class _InternalServerError extends APIError {
1358
+ var _InternalServerError = class _InternalServerError extends ApiError {
1280
1359
  };
1281
1360
  __name(_InternalServerError, "InternalServerError");
1282
1361
  var InternalServerError = _InternalServerError;
@@ -1309,6 +1388,108 @@ function calculateNextRetryDelay(options, attempt) {
1309
1388
  return Math.round(timeout);
1310
1389
  }
1311
1390
  __name(calculateNextRetryDelay, "calculateNextRetryDelay");
1391
+
1392
+ // src/v3/apiClient/pagination.ts
1393
+ var _CursorPage = class _CursorPage {
1394
+ constructor(data, pagination, pageFetcher) {
1395
+ this.pageFetcher = pageFetcher;
1396
+ this.data = data;
1397
+ this.pagination = pagination;
1398
+ }
1399
+ getPaginatedItems() {
1400
+ return this.data ?? [];
1401
+ }
1402
+ hasNextPage() {
1403
+ return !!this.pagination.next;
1404
+ }
1405
+ hasPreviousPage() {
1406
+ return !!this.pagination.previous;
1407
+ }
1408
+ getNextPage() {
1409
+ if (!this.pagination.next) {
1410
+ throw new Error("No next page available");
1411
+ }
1412
+ return this.pageFetcher({
1413
+ after: this.pagination.next
1414
+ });
1415
+ }
1416
+ getPreviousPage() {
1417
+ if (!this.pagination.previous) {
1418
+ throw new Error("No previous page available");
1419
+ }
1420
+ return this.pageFetcher({
1421
+ before: this.pagination.previous
1422
+ });
1423
+ }
1424
+ async *iterPages() {
1425
+ let page = this;
1426
+ yield page;
1427
+ while (page.hasNextPage()) {
1428
+ page = await page.getNextPage();
1429
+ yield page;
1430
+ }
1431
+ }
1432
+ async *[Symbol.asyncIterator]() {
1433
+ for await (const page of this.iterPages()) {
1434
+ for (const item of page.getPaginatedItems()) {
1435
+ yield item;
1436
+ }
1437
+ }
1438
+ }
1439
+ };
1440
+ __name(_CursorPage, "CursorPage");
1441
+ var CursorPage = _CursorPage;
1442
+ var _OffsetLimitPage = class _OffsetLimitPage {
1443
+ constructor(data, pagination, pageFetcher) {
1444
+ this.pageFetcher = pageFetcher;
1445
+ this.data = data;
1446
+ this.pagination = pagination;
1447
+ }
1448
+ getPaginatedItems() {
1449
+ return this.data ?? [];
1450
+ }
1451
+ hasNextPage() {
1452
+ return this.pagination.currentPage < this.pagination.totalPages;
1453
+ }
1454
+ hasPreviousPage() {
1455
+ return this.pagination.currentPage > 1;
1456
+ }
1457
+ getNextPage() {
1458
+ if (!this.hasNextPage()) {
1459
+ throw new Error("No next page available");
1460
+ }
1461
+ return this.pageFetcher({
1462
+ page: this.pagination.currentPage + 1
1463
+ });
1464
+ }
1465
+ getPreviousPage() {
1466
+ if (!this.hasPreviousPage()) {
1467
+ throw new Error("No previous page available");
1468
+ }
1469
+ return this.pageFetcher({
1470
+ page: this.pagination.currentPage - 1
1471
+ });
1472
+ }
1473
+ async *iterPages() {
1474
+ let page = this;
1475
+ yield page;
1476
+ while (page.hasNextPage()) {
1477
+ page = await page.getNextPage();
1478
+ yield page;
1479
+ }
1480
+ }
1481
+ async *[Symbol.asyncIterator]() {
1482
+ for await (const page of this.iterPages()) {
1483
+ for (const item of page.getPaginatedItems()) {
1484
+ yield item;
1485
+ }
1486
+ }
1487
+ }
1488
+ };
1489
+ __name(_OffsetLimitPage, "OffsetLimitPage");
1490
+ var OffsetLimitPage = _OffsetLimitPage;
1491
+
1492
+ // src/v3/apiClient/core.ts
1312
1493
  var defaultRetryOptions2 = {
1313
1494
  maxAttempts: 3,
1314
1495
  factor: 2,
@@ -1316,11 +1497,62 @@ var defaultRetryOptions2 = {
1316
1497
  maxTimeoutInMs: 6e4,
1317
1498
  randomize: false
1318
1499
  };
1319
- async function zodfetch(schema, url, requestInit, options) {
1320
- return await _doZodFetch(schema, url, requestInit, options);
1500
+ function zodfetch(schema, url, requestInit, options) {
1501
+ return new ApiPromise(_doZodFetch(schema, url, requestInit, options));
1321
1502
  }
1322
1503
  __name(zodfetch, "zodfetch");
1323
- async function zodupload(schema, url, body, requestInit, options) {
1504
+ function zodfetchCursorPage(schema, url, params, requestInit, options) {
1505
+ const query = new URLSearchParams(params.query);
1506
+ if (params.limit) {
1507
+ query.set("page[size]", String(params.limit));
1508
+ }
1509
+ if (params.after) {
1510
+ query.set("page[after]", params.after);
1511
+ }
1512
+ if (params.before) {
1513
+ query.set("page[before]", params.before);
1514
+ }
1515
+ const cursorPageSchema = zod.z.object({
1516
+ data: zod.z.array(schema),
1517
+ pagination: zod.z.object({
1518
+ next: zod.z.string().optional(),
1519
+ previous: zod.z.string().optional()
1520
+ })
1521
+ });
1522
+ const $url = new URL(url);
1523
+ $url.search = query.toString();
1524
+ const fetchResult = _doZodFetch(cursorPageSchema, $url.href, requestInit, options);
1525
+ return new CursorPagePromise(fetchResult, schema, url, params, requestInit, options);
1526
+ }
1527
+ __name(zodfetchCursorPage, "zodfetchCursorPage");
1528
+ function zodfetchOffsetLimitPage(schema, url, params, requestInit, options) {
1529
+ const query = new URLSearchParams(params.query);
1530
+ if (params.limit) {
1531
+ query.set("perPage", String(params.limit));
1532
+ }
1533
+ if (params.page) {
1534
+ query.set("page", String(params.page));
1535
+ }
1536
+ const offsetLimitPageSchema = zod.z.object({
1537
+ data: zod.z.array(schema),
1538
+ pagination: zod.z.object({
1539
+ currentPage: zod.z.coerce.number(),
1540
+ totalPages: zod.z.coerce.number(),
1541
+ count: zod.z.coerce.number()
1542
+ })
1543
+ });
1544
+ const $url = new URL(url);
1545
+ $url.search = query.toString();
1546
+ const fetchResult = _doZodFetch(offsetLimitPageSchema, $url.href, requestInit, options);
1547
+ return new OffsetLimitPagePromise(fetchResult, schema, url, params, requestInit, options);
1548
+ }
1549
+ __name(zodfetchOffsetLimitPage, "zodfetchOffsetLimitPage");
1550
+ function zodupload(schema, url, body, requestInit, options) {
1551
+ const finalRequestInit = createMultipartFormRequestInit(body, requestInit);
1552
+ return new ApiPromise(_doZodFetch(schema, url, finalRequestInit, options));
1553
+ }
1554
+ __name(zodupload, "zodupload");
1555
+ async function createMultipartFormRequestInit(body, requestInit) {
1324
1556
  const form = await createForm(body);
1325
1557
  const encoder = new formDataEncoder.FormDataEncoder(form);
1326
1558
  const finalHeaders = {};
@@ -1338,9 +1570,9 @@ async function zodupload(schema, url, body, requestInit, options) {
1338
1570
  // @ts-expect-error
1339
1571
  duplex: "half"
1340
1572
  };
1341
- return await _doZodFetch(schema, url, finalRequestInit, options);
1573
+ return finalRequestInit;
1342
1574
  }
1343
- __name(zodupload, "zodupload");
1575
+ __name(createMultipartFormRequestInit, "createMultipartFormRequestInit");
1344
1576
  var createForm = /* @__PURE__ */ __name(async (body) => {
1345
1577
  const form = new FormData();
1346
1578
  await Promise.all(Object.entries(body || {}).map(([key, value]) => addFormValue(form, key, value)));
@@ -1348,7 +1580,8 @@ var createForm = /* @__PURE__ */ __name(async (body) => {
1348
1580
  }, "createForm");
1349
1581
  async function _doZodFetch(schema, url, requestInit, options, attempt = 1) {
1350
1582
  try {
1351
- const response = await fetch(url, requestInitWithCache(requestInit));
1583
+ const $requestInit = await requestInit;
1584
+ const response = await fetch(url, requestInitWithCache($requestInit));
1352
1585
  const responseHeaders = createResponseHeaders(response.headers);
1353
1586
  if (!response.ok) {
1354
1587
  const retryResult = shouldRetry(response, attempt, options?.retry);
@@ -1359,17 +1592,20 @@ async function _doZodFetch(schema, url, requestInit, options, attempt = 1) {
1359
1592
  const errText = await response.text().catch((e) => castToError2(e).message);
1360
1593
  const errJSON = safeJsonParse(errText);
1361
1594
  const errMessage = errJSON ? void 0 : errText;
1362
- throw APIError.generate(response.status, errJSON, errMessage, responseHeaders);
1595
+ throw ApiError.generate(response.status, errJSON, errMessage, responseHeaders);
1363
1596
  }
1364
1597
  }
1365
1598
  const jsonBody = await response.json();
1366
1599
  const parsedResult = schema.safeParse(jsonBody);
1367
1600
  if (parsedResult.success) {
1368
- return parsedResult.data;
1601
+ return {
1602
+ data: parsedResult.data,
1603
+ response
1604
+ };
1369
1605
  }
1370
1606
  throw zodValidationError.fromZodError(parsedResult.error);
1371
1607
  } catch (error) {
1372
- if (error instanceof APIError) {
1608
+ if (error instanceof ApiError) {
1373
1609
  throw error;
1374
1610
  }
1375
1611
  if (options?.retry) {
@@ -1383,7 +1619,7 @@ async function _doZodFetch(schema, url, requestInit, options, attempt = 1) {
1383
1619
  return await _doZodFetch(schema, url, requestInit, options, attempt + 1);
1384
1620
  }
1385
1621
  }
1386
- throw new APIConnectionError({
1622
+ throw new ApiConnectionError({
1387
1623
  cause: castToError2(error)
1388
1624
  });
1389
1625
  }
@@ -1556,6 +1792,128 @@ var isUploadable = /* @__PURE__ */ __name((value) => {
1556
1792
  return isFileLike(value) || isResponseLike(value) || isFsReadStream(value);
1557
1793
  }, "isUploadable");
1558
1794
  var isRecordLike = /* @__PURE__ */ __name((value) => value != null && typeof value === "object" && !Array.isArray(value) && Object.keys(value).length > 0 && Object.keys(value).every((key) => typeof key === "string" && typeof value[key] === "string"), "isRecordLike");
1795
+ var _ApiPromise = class _ApiPromise extends Promise {
1796
+ constructor(responsePromise) {
1797
+ super((resolve) => {
1798
+ resolve(null);
1799
+ });
1800
+ this.responsePromise = responsePromise;
1801
+ }
1802
+ /**
1803
+ * Gets the raw `Response` instance instead of parsing the response
1804
+ * data.
1805
+ *
1806
+ * If you want to parse the response body but still get the `Response`
1807
+ * instance, you can use {@link withResponse()}.
1808
+ */
1809
+ asResponse() {
1810
+ return this.responsePromise.then((p) => p.response);
1811
+ }
1812
+ /**
1813
+ * Gets the parsed response data and the raw `Response` instance.
1814
+ *
1815
+ * If you just want to get the raw `Response` instance without parsing it,
1816
+ * you can use {@link asResponse()}.
1817
+ */
1818
+ async withResponse() {
1819
+ const [data, response] = await Promise.all([
1820
+ this.parse(),
1821
+ this.asResponse()
1822
+ ]);
1823
+ return {
1824
+ data,
1825
+ response
1826
+ };
1827
+ }
1828
+ parse() {
1829
+ return this.responsePromise.then((result) => result.data);
1830
+ }
1831
+ then(onfulfilled, onrejected) {
1832
+ return this.parse().then(onfulfilled, onrejected);
1833
+ }
1834
+ catch(onrejected) {
1835
+ return this.parse().catch(onrejected);
1836
+ }
1837
+ finally(onfinally) {
1838
+ return this.parse().finally(onfinally);
1839
+ }
1840
+ };
1841
+ __name(_ApiPromise, "ApiPromise");
1842
+ var ApiPromise = _ApiPromise;
1843
+ var _fetchPage, fetchPage_fn;
1844
+ var _CursorPagePromise = class _CursorPagePromise extends ApiPromise {
1845
+ constructor(result, schema, url, params, requestInit, options) {
1846
+ super(result.then((result2) => ({
1847
+ data: new CursorPage(result2.data.data, result2.data.pagination, __privateMethod(this, _fetchPage, fetchPage_fn).bind(this)),
1848
+ response: result2.response
1849
+ })));
1850
+ __privateAdd(this, _fetchPage);
1851
+ this.schema = schema;
1852
+ this.url = url;
1853
+ this.params = params;
1854
+ this.requestInit = requestInit;
1855
+ this.options = options;
1856
+ }
1857
+ /**
1858
+ * Allow auto-paginating iteration on an unawaited list call, eg:
1859
+ *
1860
+ * for await (const item of client.items.list()) {
1861
+ * console.log(item)
1862
+ * }
1863
+ */
1864
+ async *[Symbol.asyncIterator]() {
1865
+ const page = await this;
1866
+ for await (const item of page) {
1867
+ yield item;
1868
+ }
1869
+ }
1870
+ };
1871
+ _fetchPage = new WeakSet();
1872
+ fetchPage_fn = /* @__PURE__ */ __name(function(params) {
1873
+ return zodfetchCursorPage(this.schema, this.url, {
1874
+ ...this.params,
1875
+ ...params
1876
+ }, this.requestInit, this.options);
1877
+ }, "#fetchPage");
1878
+ __name(_CursorPagePromise, "CursorPagePromise");
1879
+ var CursorPagePromise = _CursorPagePromise;
1880
+ var _fetchPage2, fetchPage_fn2;
1881
+ var _OffsetLimitPagePromise = class _OffsetLimitPagePromise extends ApiPromise {
1882
+ constructor(result, schema, url, params, requestInit, options) {
1883
+ super(result.then((result2) => ({
1884
+ data: new OffsetLimitPage(result2.data.data, result2.data.pagination, __privateMethod(this, _fetchPage2, fetchPage_fn2).bind(this)),
1885
+ response: result2.response
1886
+ })));
1887
+ __privateAdd(this, _fetchPage2);
1888
+ this.schema = schema;
1889
+ this.url = url;
1890
+ this.params = params;
1891
+ this.requestInit = requestInit;
1892
+ this.options = options;
1893
+ }
1894
+ /**
1895
+ * Allow auto-paginating iteration on an unawaited list call, eg:
1896
+ *
1897
+ * for await (const item of client.items.list()) {
1898
+ * console.log(item)
1899
+ * }
1900
+ */
1901
+ async *[Symbol.asyncIterator]() {
1902
+ const page = await this;
1903
+ for await (const item of page) {
1904
+ yield item;
1905
+ }
1906
+ }
1907
+ };
1908
+ _fetchPage2 = new WeakSet();
1909
+ fetchPage_fn2 = /* @__PURE__ */ __name(function(params1) {
1910
+ return zodfetchOffsetLimitPage(this.schema, this.url, {
1911
+ ...this.params,
1912
+ ...params1
1913
+ }, this.requestInit, this.options);
1914
+ }, "#fetchPage");
1915
+ __name(_OffsetLimitPagePromise, "OffsetLimitPagePromise");
1916
+ var OffsetLimitPagePromise = _OffsetLimitPagePromise;
1559
1917
 
1560
1918
  // src/v3/apiClient/index.ts
1561
1919
  var zodFetchOptions = {
@@ -1581,7 +1939,7 @@ var _ApiClient = class _ApiClient {
1581
1939
  headers: __privateMethod(this, _getHeaders, getHeaders_fn).call(this, false)
1582
1940
  }, zodFetchOptions);
1583
1941
  } catch (error) {
1584
- if (error instanceof APIError) {
1942
+ if (error instanceof ApiError) {
1585
1943
  if (error.status === 404) {
1586
1944
  return void 0;
1587
1945
  }
@@ -1596,14 +1954,16 @@ var _ApiClient = class _ApiClient {
1596
1954
  }, zodFetchOptions);
1597
1955
  }
1598
1956
  triggerTask(taskId, body, options) {
1599
- return zodfetch(TriggerTaskResponse, `${this.baseUrl}/api/v1/tasks/${taskId}/trigger`, {
1957
+ const encodedTaskId = encodeURIComponent(taskId);
1958
+ return zodfetch(TriggerTaskResponse, `${this.baseUrl}/api/v1/tasks/${encodedTaskId}/trigger`, {
1600
1959
  method: "POST",
1601
1960
  headers: __privateMethod(this, _getHeaders, getHeaders_fn).call(this, options?.spanParentAsLink ?? false),
1602
1961
  body: JSON.stringify(body)
1603
1962
  }, zodFetchOptions);
1604
1963
  }
1605
1964
  batchTriggerTask(taskId, body, options) {
1606
- return zodfetch(BatchTriggerTaskResponse, `${this.baseUrl}/api/v1/tasks/${taskId}/batch`, {
1965
+ const encodedTaskId = encodeURIComponent(taskId);
1966
+ return zodfetch(BatchTriggerTaskResponse, `${this.baseUrl}/api/v1/tasks/${encodedTaskId}/batch`, {
1607
1967
  method: "POST",
1608
1968
  headers: __privateMethod(this, _getHeaders, getHeaders_fn).call(this, options?.spanParentAsLink ?? false),
1609
1969
  body: JSON.stringify(body)
@@ -1627,6 +1987,33 @@ var _ApiClient = class _ApiClient {
1627
1987
  headers: __privateMethod(this, _getHeaders, getHeaders_fn).call(this, false)
1628
1988
  }, zodFetchOptions);
1629
1989
  }
1990
+ listRuns(query) {
1991
+ const searchParams = createSearchQueryForListRuns(query);
1992
+ return zodfetchCursorPage(ListRunResponseItem, `${this.baseUrl}/api/v1/runs`, {
1993
+ query: searchParams,
1994
+ limit: query?.limit,
1995
+ after: query?.after,
1996
+ before: query?.before
1997
+ }, {
1998
+ method: "GET",
1999
+ headers: __privateMethod(this, _getHeaders, getHeaders_fn).call(this, false)
2000
+ }, zodFetchOptions);
2001
+ }
2002
+ listProjectRuns(projectRef, query) {
2003
+ const searchParams = createSearchQueryForListRuns(query);
2004
+ if (query?.env) {
2005
+ searchParams.append("filter[env]", Array.isArray(query.env) ? query.env.join(",") : query.env);
2006
+ }
2007
+ return zodfetchCursorPage(ListRunResponseItem, `${this.baseUrl}/api/v1/projects/${projectRef}/runs`, {
2008
+ query: searchParams,
2009
+ limit: query?.limit,
2010
+ after: query?.after,
2011
+ before: query?.before
2012
+ }, {
2013
+ method: "GET",
2014
+ headers: __privateMethod(this, _getHeaders, getHeaders_fn).call(this, false)
2015
+ }, zodFetchOptions);
2016
+ }
1630
2017
  replayRun(runId) {
1631
2018
  return zodfetch(ReplayRunResponse, `${this.baseUrl}/api/v1/runs/${runId}/replay`, {
1632
2019
  method: "POST",
@@ -1654,7 +2041,10 @@ var _ApiClient = class _ApiClient {
1654
2041
  if (options?.perPage) {
1655
2042
  searchParams.append("perPage", options.perPage.toString());
1656
2043
  }
1657
- return zodfetch(ListSchedulesResult, `${this.baseUrl}/api/v1/schedules${searchParams.size > 0 ? `?${searchParams}` : ""}`, {
2044
+ return zodfetchOffsetLimitPage(ScheduleObject, `${this.baseUrl}/api/v1/schedules`, {
2045
+ page: options?.page,
2046
+ limit: options?.perPage
2047
+ }, {
1658
2048
  method: "GET",
1659
2049
  headers: __privateMethod(this, _getHeaders, getHeaders_fn).call(this, false)
1660
2050
  });
@@ -1755,6 +2145,40 @@ getHeaders_fn = /* @__PURE__ */ __name(function(spanParentAsLink) {
1755
2145
  }, "#getHeaders");
1756
2146
  __name(_ApiClient, "ApiClient");
1757
2147
  var ApiClient = _ApiClient;
2148
+ function createSearchQueryForListRuns(query) {
2149
+ const searchParams = new URLSearchParams();
2150
+ if (query) {
2151
+ if (query.status) {
2152
+ searchParams.append("filter[status]", Array.isArray(query.status) ? query.status.join(",") : query.status);
2153
+ }
2154
+ if (query.taskIdentifier) {
2155
+ searchParams.append("filter[taskIdentifier]", Array.isArray(query.taskIdentifier) ? query.taskIdentifier.join(",") : query.taskIdentifier);
2156
+ }
2157
+ if (query.version) {
2158
+ searchParams.append("filter[version]", Array.isArray(query.version) ? query.version.join(",") : query.version);
2159
+ }
2160
+ if (query.bulkAction) {
2161
+ searchParams.append("filter[bulkAction]", query.bulkAction);
2162
+ }
2163
+ if (query.schedule) {
2164
+ searchParams.append("filter[schedule]", query.schedule);
2165
+ }
2166
+ if (typeof query.isTest === "boolean") {
2167
+ searchParams.append("filter[isTest]", String(query.isTest));
2168
+ }
2169
+ if (query.from) {
2170
+ searchParams.append("filter[createdAt][from]", query.from instanceof Date ? query.from.getTime().toString() : query.from.toString());
2171
+ }
2172
+ if (query.to) {
2173
+ searchParams.append("filter[createdAt][to]", query.to instanceof Date ? query.to.getTime().toString() : query.to.toString());
2174
+ }
2175
+ if (query.period) {
2176
+ searchParams.append("filter[createdAt][period]", query.period);
2177
+ }
2178
+ }
2179
+ return searchParams;
2180
+ }
2181
+ __name(createSearchQueryForListRuns, "createSearchQueryForListRuns");
1758
2182
 
1759
2183
  // src/v3/apiClientManager/index.ts
1760
2184
  var API_NAME2 = "api-client";