freestyle-sandboxes 0.1.16 → 0.1.17

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 (5) hide show
  1. package/index.cjs +1572 -1251
  2. package/index.d.cts +1539 -1439
  3. package/index.d.mts +1539 -1439
  4. package/index.mjs +1571 -1250
  5. package/package.json +27 -24
package/index.cjs CHANGED
@@ -1,8 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var glob = require('glob');
4
3
  var path = require('path');
5
- var fs = require('fs/promises');
6
4
 
7
5
  function errorFromJSON(body) {
8
6
  const ErrorClass = FREESTYLE_ERROR_CODE_MAP[body.code];
@@ -24,233 +22,257 @@ class GitErrorError extends Error {
24
22
  static statusCode = 500;
25
23
  static description = `{message}`;
26
24
  }
27
- class UserNotFoundError extends Error {
25
+ class BadParseError extends Error {
28
26
  constructor(body) {
29
27
  super(
30
- `USER_NOT_FOUND: ${body.message}`
28
+ `BAD_PARSE: ${body.message}`
31
29
  );
32
30
  this.body = body;
33
- this.name = "UserNotFoundError";
31
+ this.name = "BadParseError";
34
32
  }
35
- static code = "USER_NOT_FOUND";
36
- static statusCode = 404;
37
- static description = `User not found: {user_name}`;
33
+ static code = "BAD_PARSE";
34
+ static statusCode = 400;
35
+ static description = `error parsing event object: {0}`;
38
36
  }
39
- class UserAlreadyExistsError extends Error {
37
+ class BadTimestampError extends Error {
40
38
  constructor(body) {
41
39
  super(
42
- `USER_ALREADY_EXISTS: ${body.message}`
40
+ `BAD_TIMESTAMP: ${body.message}`
43
41
  );
44
42
  this.body = body;
45
- this.name = "UserAlreadyExistsError";
43
+ this.name = "BadTimestampError";
46
44
  }
47
- static code = "USER_ALREADY_EXISTS";
48
- static statusCode = 409;
49
- static description = `Conflict: User '{user_name}' already exists`;
45
+ static code = "BAD_TIMESTAMP";
46
+ static statusCode = 403;
47
+ static description = `error comparing timestamps - over tolerance`;
50
48
  }
51
- class ValidationErrorError extends Error {
49
+ class BadSignatureError extends Error {
52
50
  constructor(body) {
53
51
  super(
54
- `VALIDATION_ERROR: ${body.message}`
52
+ `BAD_SIGNATURE: ${body.message}`
55
53
  );
56
54
  this.body = body;
57
- this.name = "ValidationErrorError";
55
+ this.name = "BadSignatureError";
58
56
  }
59
- static code = "VALIDATION_ERROR";
60
- static statusCode = 400;
61
- static description = `Validation error: {message}`;
57
+ static code = "BAD_SIGNATURE";
58
+ static statusCode = 403;
59
+ static description = `error comparing signatures`;
62
60
  }
63
- class GroupNotFoundError extends Error {
61
+ class BadHeaderError extends Error {
64
62
  constructor(body) {
65
63
  super(
66
- `GROUP_NOT_FOUND: ${body.message}`
64
+ `BAD_HEADER: ${body.message}`
67
65
  );
68
66
  this.body = body;
69
- this.name = "GroupNotFoundError";
67
+ this.name = "BadHeaderError";
70
68
  }
71
- static code = "GROUP_NOT_FOUND";
72
- static statusCode = 404;
73
- static description = `Group not found: {group_name}`;
69
+ static code = "BAD_HEADER";
70
+ static statusCode = 400;
71
+ static description = `error parsing timestamp: {0}`;
74
72
  }
75
- class GroupAlreadyExistsError extends Error {
73
+ class BadKeyError extends Error {
76
74
  constructor(body) {
77
75
  super(
78
- `GROUP_ALREADY_EXISTS: ${body.message}`
76
+ `BAD_KEY: ${body.message}`
79
77
  );
80
78
  this.body = body;
81
- this.name = "GroupAlreadyExistsError";
79
+ this.name = "BadKeyError";
82
80
  }
83
- static code = "GROUP_ALREADY_EXISTS";
84
- static statusCode = 409;
85
- static description = `Conflict: Group '{group_name}' already exists`;
81
+ static code = "BAD_KEY";
82
+ static statusCode = 400;
83
+ static description = `invalid key length`;
86
84
  }
87
- class DuplicateUserNameError extends Error {
85
+ class SnapshotVmBadRequestError extends Error {
88
86
  constructor(body) {
89
87
  super(
90
- `DUPLICATE_USER_NAME: ${body.message}`
88
+ `SNAPSHOT_VM_BAD_REQUEST: ${body.message}`
91
89
  );
92
90
  this.body = body;
93
- this.name = "DuplicateUserNameError";
91
+ this.name = "SnapshotVmBadRequestError";
94
92
  }
95
- static code = "DUPLICATE_USER_NAME";
93
+ static code = "SNAPSHOT_VM_BAD_REQUEST";
96
94
  static statusCode = 400;
97
- static description = `Duplicate user name '{name}' found`;
95
+ static description = `Bad request: {message}`;
98
96
  }
99
- class UserGroupEmptyError extends Error {
97
+ class ResumedVmNonResponsiveError extends Error {
100
98
  constructor(body) {
101
99
  super(
102
- `USER_GROUP_EMPTY: ${body.message}`
100
+ `RESUMED_VM_NON_RESPONSIVE: ${body.message}`
103
101
  );
104
102
  this.body = body;
105
- this.name = "UserGroupEmptyError";
103
+ this.name = "ResumedVmNonResponsiveError";
106
104
  }
107
- static code = "USER_GROUP_EMPTY";
108
- static statusCode = 400;
109
- static description = `User '{user}' has empty string in groups`;
105
+ static code = "RESUMED_VM_NON_RESPONSIVE";
106
+ static statusCode = 500;
107
+ static description = `Resumed VM {vm_id} is not responsive after {timeout_seconds}s`;
110
108
  }
111
- class UserSystemFlagMismatchError extends Error {
109
+ class SnapshotLoadTimeoutError extends Error {
112
110
  constructor(body) {
113
111
  super(
114
- `USER_SYSTEM_FLAG_MISMATCH: ${body.message}`
112
+ `SNAPSHOT_LOAD_TIMEOUT: ${body.message}`
115
113
  );
116
114
  this.body = body;
117
- this.name = "UserSystemFlagMismatchError";
115
+ this.name = "SnapshotLoadTimeoutError";
118
116
  }
119
- static code = "USER_SYSTEM_FLAG_MISMATCH";
120
- static statusCode = 400;
121
- static description = `User '{user}' has system=true but UID {uid} is > 999 (system range)`;
117
+ static code = "SNAPSHOT_LOAD_TIMEOUT";
118
+ static statusCode = 500;
119
+ static description = `Snapshot load timed out after {elapsed_seconds}s for instance {vm_instance_id}, logs: {log_path}`;
122
120
  }
123
- class UserUidOutOfRangeError extends Error {
121
+ class UffdTimeoutErrorError extends Error {
124
122
  constructor(body) {
125
123
  super(
126
- `USER_UID_OUT_OF_RANGE: ${body.message}`
124
+ `UFFD_TIMEOUT_ERROR: ${body.message}`
127
125
  );
128
126
  this.body = body;
129
- this.name = "UserUidOutOfRangeError";
127
+ this.name = "UffdTimeoutErrorError";
130
128
  }
131
- static code = "USER_UID_OUT_OF_RANGE";
132
- static statusCode = 400;
133
- static description = `User '{user}' has invalid UID {uid} (must be 0-65535)`;
129
+ static code = "UFFD_TIMEOUT_ERROR";
130
+ static statusCode = 500;
131
+ static description = `UFFD socket timeout: {report_socket_path}, logs: {log_path}`;
134
132
  }
135
- class UserHomeInvalidError extends Error {
133
+ class KernelPanicError extends Error {
136
134
  constructor(body) {
137
135
  super(
138
- `USER_HOME_INVALID: ${body.message}`
136
+ `KERNEL_PANIC: ${body.message}`
139
137
  );
140
138
  this.body = body;
141
- this.name = "UserHomeInvalidError";
139
+ this.name = "KernelPanicError";
142
140
  }
143
- static code = "USER_HOME_INVALID";
144
- static statusCode = 400;
145
- static description = `User '{user}' has invalid home path '{home}' (must be absolute path starting with /)`;
141
+ static code = "KERNEL_PANIC";
142
+ static statusCode = 500;
143
+ static description = `VM kernel panic detected`;
146
144
  }
147
- class UserShellInvalidError extends Error {
145
+ class VmDeletedError extends Error {
148
146
  constructor(body) {
149
147
  super(
150
- `USER_SHELL_INVALID: ${body.message}`
148
+ `VM_DELETED: ${body.message}`
151
149
  );
152
150
  this.body = body;
153
- this.name = "UserShellInvalidError";
151
+ this.name = "VmDeletedError";
154
152
  }
155
- static code = "USER_SHELL_INVALID";
156
- static statusCode = 400;
157
- static description = `User '{user}' has invalid shell path '{shell}' (must be absolute path starting with /)`;
153
+ static code = "VM_DELETED";
154
+ static statusCode = 410;
155
+ static description = `Cannot start VM: VM files have been deleted. This VM was ephemeral and its files were removed.`;
158
156
  }
159
- class DuplicateGroupNameError extends Error {
157
+ class ReqwestError extends Error {
160
158
  constructor(body) {
161
159
  super(
162
- `DUPLICATE_GROUP_NAME: ${body.message}`
160
+ `REQWEST: ${body.message}`
163
161
  );
164
162
  this.body = body;
165
- this.name = "DuplicateGroupNameError";
163
+ this.name = "ReqwestError";
166
164
  }
167
- static code = "DUPLICATE_GROUP_NAME";
168
- static statusCode = 400;
169
- static description = `Duplicate group name '{name}' found`;
165
+ static code = "REQWEST";
166
+ static statusCode = 500;
167
+ static description = `Reqwest error: {details}`;
170
168
  }
171
- class GroupNameReservedError extends Error {
169
+ class FirecrackerPidNotFoundError extends Error {
172
170
  constructor(body) {
173
171
  super(
174
- `GROUP_NAME_RESERVED: ${body.message}`
172
+ `FIRECRACKER_PID_NOT_FOUND: ${body.message}`
175
173
  );
176
174
  this.body = body;
177
- this.name = "GroupNameReservedError";
175
+ this.name = "FirecrackerPidNotFoundError";
178
176
  }
179
- static code = "GROUP_NAME_RESERVED";
180
- static statusCode = 400;
181
- static description = `Group name '{name}' is reserved and cannot be used`;
177
+ static code = "FIRECRACKER_PID_NOT_FOUND";
178
+ static statusCode = 500;
179
+ static description = `Firecracker PID not found`;
182
180
  }
183
- class GroupNameInvalidCharsError extends Error {
181
+ class FirecrackerApiSocketNotFoundError extends Error {
184
182
  constructor(body) {
185
183
  super(
186
- `GROUP_NAME_INVALID_CHARS: ${body.message}`
184
+ `FIRECRACKER_API_SOCKET_NOT_FOUND: ${body.message}`
187
185
  );
188
186
  this.body = body;
189
- this.name = "GroupNameInvalidCharsError";
187
+ this.name = "FirecrackerApiSocketNotFoundError";
190
188
  }
191
- static code = "GROUP_NAME_INVALID_CHARS";
192
- static statusCode = 400;
193
- static description = `Group name '{name}' contains invalid characters (must match [a-z_][a-z0-9_-]*)`;
189
+ static code = "FIRECRACKER_API_SOCKET_NOT_FOUND";
190
+ static statusCode = 500;
191
+ static description = `Firecracker API socket not found`;
194
192
  }
195
- class GroupNameTooLongError extends Error {
193
+ class InvalidSnapshotIdError extends Error {
196
194
  constructor(body) {
197
195
  super(
198
- `GROUP_NAME_TOO_LONG: ${body.message}`
196
+ `INVALID_SNAPSHOT_ID: ${body.message}`
199
197
  );
200
198
  this.body = body;
201
- this.name = "GroupNameTooLongError";
199
+ this.name = "InvalidSnapshotIdError";
202
200
  }
203
- static code = "GROUP_NAME_TOO_LONG";
201
+ static code = "INVALID_SNAPSHOT_ID";
204
202
  static statusCode = 400;
205
- static description = `Group name '{name}' is too long (max {max_length} characters)`;
203
+ static description = `Invalid snapshot id: {id}`;
206
204
  }
207
- class GroupNameEmptyError extends Error {
205
+ class VmStartTimeoutError extends Error {
208
206
  constructor(body) {
209
207
  super(
210
- `GROUP_NAME_EMPTY: ${body.message}`
208
+ `VM_START_TIMEOUT: ${body.message}`
211
209
  );
212
210
  this.body = body;
213
- this.name = "GroupNameEmptyError";
211
+ this.name = "VmStartTimeoutError";
214
212
  }
215
- static code = "GROUP_NAME_EMPTY";
216
- static statusCode = 400;
217
- static description = `Group name cannot be empty`;
213
+ static code = "VM_START_TIMEOUT";
214
+ static statusCode = 504;
215
+ static description = `VM did not become ready within the specified timeout`;
218
216
  }
219
- class SnapshotVmBadRequestError extends Error {
217
+ class VmExitDuringStartError extends Error {
220
218
  constructor(body) {
221
219
  super(
222
- `SNAPSHOT_VM_BAD_REQUEST: ${body.message}`
220
+ `VM_EXIT_DURING_START: ${body.message}`
223
221
  );
224
222
  this.body = body;
225
- this.name = "SnapshotVmBadRequestError";
223
+ this.name = "VmExitDuringStartError";
226
224
  }
227
- static code = "SNAPSHOT_VM_BAD_REQUEST";
228
- static statusCode = 400;
229
- static description = `Bad request: {message}`;
225
+ static code = "VM_EXIT_DURING_START";
226
+ static statusCode = 500;
227
+ static description = `VM process exited unexpectedly during start`;
230
228
  }
231
- class FileNotFoundError extends Error {
229
+ class VmAccessDeniedError extends Error {
232
230
  constructor(body) {
233
231
  super(
234
- `FILE_NOT_FOUND: ${body.message}`
232
+ `VM_ACCESS_DENIED: ${body.message}`
235
233
  );
236
234
  this.body = body;
237
- this.name = "FileNotFoundError";
235
+ this.name = "VmAccessDeniedError";
238
236
  }
239
- static code = "FILE_NOT_FOUND";
240
- static statusCode = 404;
241
- static description = `File not found: {path}`;
237
+ static code = "VM_ACCESS_DENIED";
238
+ static statusCode = 403;
239
+ static description = `You do not have access to this VM`;
242
240
  }
243
- class FilesBadRequestError extends Error {
241
+ class StdIoError extends Error {
244
242
  constructor(body) {
245
243
  super(
246
- `FILES_BAD_REQUEST: ${body.message}`
244
+ `STD_IO: ${body.message}`
247
245
  );
248
246
  this.body = body;
249
- this.name = "FilesBadRequestError";
247
+ this.name = "StdIoError";
250
248
  }
251
- static code = "FILES_BAD_REQUEST";
252
- static statusCode = 400;
253
- static description = `Bad request: {message}`;
249
+ static code = "STD_IO";
250
+ static statusCode = 500;
251
+ static description = `Standard IO error`;
252
+ }
253
+ class VmCreateTmuxSessionError extends Error {
254
+ constructor(body) {
255
+ super(
256
+ `VM_CREATE_TMUX_SESSION: ${body.message}`
257
+ );
258
+ this.body = body;
259
+ this.name = "VmCreateTmuxSessionError";
260
+ }
261
+ static code = "VM_CREATE_TMUX_SESSION";
262
+ static statusCode = 500;
263
+ static description = `Failed to create tmux session for VM`;
264
+ }
265
+ class VmSubnetNotFoundError extends Error {
266
+ constructor(body) {
267
+ super(
268
+ `VM_SUBNET_NOT_FOUND: ${body.message}`
269
+ );
270
+ this.body = body;
271
+ this.name = "VmSubnetNotFoundError";
272
+ }
273
+ static code = "VM_SUBNET_NOT_FOUND";
274
+ static statusCode = 500;
275
+ static description = `Subnet for VM not found`;
254
276
  }
255
277
  class VmMustBeStoppedError extends Error {
256
278
  constructor(body) {
@@ -288,103 +310,55 @@ class NotFoundError extends Error {
288
310
  static statusCode = 404;
289
311
  static description = `VM not found`;
290
312
  }
291
- class VmNotFoundInFsError extends Error {
313
+ class VmOperationDeniedDuringTransactionError extends Error {
292
314
  constructor(body) {
293
315
  super(
294
- `VM_NOT_FOUND_IN_FS: ${body.message}`
316
+ `VM_OPERATION_DENIED_DURING_TRANSACTION: ${body.message}`
295
317
  );
296
318
  this.body = body;
297
- this.name = "VmNotFoundInFsError";
319
+ this.name = "VmOperationDeniedDuringTransactionError";
298
320
  }
299
- static code = "VM_NOT_FOUND_IN_FS";
300
- static statusCode = 406;
301
- static description = `Vm Not found in filesystem`;
321
+ static code = "VM_OPERATION_DENIED_DURING_TRANSACTION";
322
+ static statusCode = 409;
323
+ static description = `VM operation denied during active transaction for VM {vm_id} in transaction {transaction_id}`;
302
324
  }
303
- class DatabaseErrorError extends Error {
325
+ class VmTransactionIdMismatchError extends Error {
304
326
  constructor(body) {
305
327
  super(
306
- `DATABASE_ERROR: ${body.message}`
328
+ `VM_TRANSACTION_ID_MISMATCH: ${body.message}`
307
329
  );
308
330
  this.body = body;
309
- this.name = "DatabaseErrorError";
331
+ this.name = "VmTransactionIdMismatchError";
310
332
  }
311
- static code = "DATABASE_ERROR";
312
- static statusCode = 500;
313
- static description = `Database error occurred`;
333
+ static code = "VM_TRANSACTION_ID_MISMATCH";
334
+ static statusCode = 400;
335
+ static description = `Transaction ID {provided_transaction_id} does not match the current VM transaction {expected_transaction_id} for VM {vm_id}`;
314
336
  }
315
- class PartitionNotFoundError extends Error {
337
+ class VmNotInTransactionError extends Error {
316
338
  constructor(body) {
317
339
  super(
318
- `PARTITION_NOT_FOUND: ${body.message}`
340
+ `VM_NOT_IN_TRANSACTION: ${body.message}`
319
341
  );
320
342
  this.body = body;
321
- this.name = "PartitionNotFoundError";
343
+ this.name = "VmNotInTransactionError";
322
344
  }
323
- static code = "PARTITION_NOT_FOUND";
345
+ static code = "VM_NOT_IN_TRANSACTION";
324
346
  static statusCode = 404;
325
- static description = `Partition not found: {partition_id}`;
347
+ static description = `VM not in a transaction: {vm_id}`;
326
348
  }
327
- class InvalidVmIdError extends Error {
349
+ class VmNotFoundInFsError extends Error {
328
350
  constructor(body) {
329
351
  super(
330
- `INVALID_VM_ID: ${body.message}`
352
+ `VM_NOT_FOUND_IN_FS: ${body.message}`
331
353
  );
332
354
  this.body = body;
333
- this.name = "InvalidVmIdError";
355
+ this.name = "VmNotFoundInFsError";
334
356
  }
335
- static code = "INVALID_VM_ID";
336
- static statusCode = 400;
337
- static description = `Invalid VM ID: {vm_id}, details: {details}`;
357
+ static code = "VM_NOT_FOUND_IN_FS";
358
+ static statusCode = 406;
359
+ static description = `Vm Not found in filesystem`;
338
360
  }
339
- class InvalidGitRepoSpecErrorError extends Error {
340
- constructor(body) {
341
- super(
342
- `INVALID_GIT_REPO_SPEC_ERROR: ${body.message}`
343
- );
344
- this.body = body;
345
- this.name = "InvalidGitRepoSpecErrorError";
346
- }
347
- static code = "INVALID_GIT_REPO_SPEC_ERROR";
348
- static statusCode = 400;
349
- static description = `Invalid git repository specification: {message}`;
350
- }
351
- class InternalErrorError extends Error {
352
- constructor(body) {
353
- super(
354
- `INTERNAL_ERROR: ${body.message}`
355
- );
356
- this.body = body;
357
- this.name = "InternalErrorError";
358
- }
359
- static code = "INTERNAL_ERROR";
360
- static statusCode = 500;
361
- static description = `Internal error: {message}`;
362
- }
363
- class ForkVmNotFoundError extends Error {
364
- constructor(body) {
365
- super(
366
- `FORK_VM_NOT_FOUND: ${body.message}`
367
- );
368
- this.body = body;
369
- this.name = "ForkVmNotFoundError";
370
- }
371
- static code = "FORK_VM_NOT_FOUND";
372
- static statusCode = 404;
373
- static description = `Fork VM not found: {fork_vm_id}`;
374
- }
375
- class CreateSnapshotBadRequestError extends Error {
376
- constructor(body) {
377
- super(
378
- `CREATE_SNAPSHOT_BAD_REQUEST: ${body.message}`
379
- );
380
- this.body = body;
381
- this.name = "CreateSnapshotBadRequestError";
382
- }
383
- static code = "CREATE_SNAPSHOT_BAD_REQUEST";
384
- static statusCode = 400;
385
- static description = `Bad request: {message}`;
386
- }
387
- class VmNotRunningError extends Error {
361
+ class VmNotRunningError extends Error {
388
362
  constructor(body) {
389
363
  super(
390
364
  `VM_NOT_RUNNING: ${body.message}`
@@ -444,229 +418,445 @@ class InternalVmNotFoundError extends Error {
444
418
  static statusCode = 404;
445
419
  static description = `VM not found: {vm_id}`;
446
420
  }
447
- class KernelPanicError extends Error {
421
+ class DatabaseErrorError extends Error {
448
422
  constructor(body) {
449
423
  super(
450
- `KERNEL_PANIC: ${body.message}`
424
+ `DATABASE_ERROR: ${body.message}`
451
425
  );
452
426
  this.body = body;
453
- this.name = "KernelPanicError";
427
+ this.name = "DatabaseErrorError";
454
428
  }
455
- static code = "KERNEL_PANIC";
429
+ static code = "DATABASE_ERROR";
456
430
  static statusCode = 500;
457
- static description = `VM kernel panic detected`;
431
+ static description = `Database error occurred while constructing VmRecord, details: {details}`;
458
432
  }
459
- class VmDeletedError extends Error {
433
+ class PartitionNotFoundError extends Error {
460
434
  constructor(body) {
461
435
  super(
462
- `VM_DELETED: ${body.message}`
436
+ `PARTITION_NOT_FOUND: ${body.message}`
463
437
  );
464
438
  this.body = body;
465
- this.name = "VmDeletedError";
439
+ this.name = "PartitionNotFoundError";
466
440
  }
467
- static code = "VM_DELETED";
468
- static statusCode = 410;
469
- static description = `Cannot start VM: VM files have been deleted. This VM was ephemeral and its files were removed.`;
441
+ static code = "PARTITION_NOT_FOUND";
442
+ static statusCode = 404;
443
+ static description = `Partition not found: {partition_id}`;
470
444
  }
471
- class ReqwestError extends Error {
445
+ class InvalidVmIdError extends Error {
472
446
  constructor(body) {
473
447
  super(
474
- `REQWEST: ${body.message}`
448
+ `INVALID_VM_ID: ${body.message}`
475
449
  );
476
450
  this.body = body;
477
- this.name = "ReqwestError";
451
+ this.name = "InvalidVmIdError";
478
452
  }
479
- static code = "REQWEST";
480
- static statusCode = 500;
481
- static description = `Reqwest error: {details}`;
453
+ static code = "INVALID_VM_ID";
454
+ static statusCode = 400;
455
+ static description = `Invalid VM ID: {vm_id}, details: {details}`;
482
456
  }
483
- class FirecrackerPidNotFoundError extends Error {
457
+ class UserNotFoundError extends Error {
484
458
  constructor(body) {
485
459
  super(
486
- `FIRECRACKER_PID_NOT_FOUND: ${body.message}`
460
+ `USER_NOT_FOUND: ${body.message}`
487
461
  );
488
462
  this.body = body;
489
- this.name = "FirecrackerPidNotFoundError";
463
+ this.name = "UserNotFoundError";
490
464
  }
491
- static code = "FIRECRACKER_PID_NOT_FOUND";
492
- static statusCode = 500;
493
- static description = `Firecracker PID not found`;
465
+ static code = "USER_NOT_FOUND";
466
+ static statusCode = 404;
467
+ static description = `User not found: {user_name}`;
494
468
  }
495
- class FirecrackerApiSocketNotFoundError extends Error {
469
+ class UserAlreadyExistsError extends Error {
496
470
  constructor(body) {
497
471
  super(
498
- `FIRECRACKER_API_SOCKET_NOT_FOUND: ${body.message}`
472
+ `USER_ALREADY_EXISTS: ${body.message}`
499
473
  );
500
474
  this.body = body;
501
- this.name = "FirecrackerApiSocketNotFoundError";
475
+ this.name = "UserAlreadyExistsError";
502
476
  }
503
- static code = "FIRECRACKER_API_SOCKET_NOT_FOUND";
504
- static statusCode = 500;
505
- static description = `Firecracker API socket not found`;
477
+ static code = "USER_ALREADY_EXISTS";
478
+ static statusCode = 409;
479
+ static description = `Conflict: User '{user_name}' already exists`;
506
480
  }
507
- class InvalidSnapshotIdError extends Error {
481
+ class ValidationErrorError extends Error {
508
482
  constructor(body) {
509
483
  super(
510
- `INVALID_SNAPSHOT_ID: ${body.message}`
484
+ `VALIDATION_ERROR: ${body.message}`
511
485
  );
512
486
  this.body = body;
513
- this.name = "InvalidSnapshotIdError";
487
+ this.name = "ValidationErrorError";
514
488
  }
515
- static code = "INVALID_SNAPSHOT_ID";
489
+ static code = "VALIDATION_ERROR";
516
490
  static statusCode = 400;
517
- static description = `Invalid snapshot id: {id}`;
491
+ static description = `Validation error: {message}`;
518
492
  }
519
- class VmStartTimeoutError extends Error {
493
+ class GroupNotFoundError extends Error {
520
494
  constructor(body) {
521
495
  super(
522
- `VM_START_TIMEOUT: ${body.message}`
496
+ `GROUP_NOT_FOUND: ${body.message}`
523
497
  );
524
498
  this.body = body;
525
- this.name = "VmStartTimeoutError";
499
+ this.name = "GroupNotFoundError";
526
500
  }
527
- static code = "VM_START_TIMEOUT";
528
- static statusCode = 504;
529
- static description = `VM did not become ready within the specified timeout`;
501
+ static code = "GROUP_NOT_FOUND";
502
+ static statusCode = 404;
503
+ static description = `Group not found: {group_name}`;
530
504
  }
531
- class VmExitDuringStartError extends Error {
505
+ class GroupAlreadyExistsError extends Error {
532
506
  constructor(body) {
533
507
  super(
534
- `VM_EXIT_DURING_START: ${body.message}`
508
+ `GROUP_ALREADY_EXISTS: ${body.message}`
535
509
  );
536
510
  this.body = body;
537
- this.name = "VmExitDuringStartError";
511
+ this.name = "GroupAlreadyExistsError";
538
512
  }
539
- static code = "VM_EXIT_DURING_START";
540
- static statusCode = 500;
541
- static description = `VM process exited unexpectedly during start`;
513
+ static code = "GROUP_ALREADY_EXISTS";
514
+ static statusCode = 409;
515
+ static description = `Conflict: Group '{group_name}' already exists`;
542
516
  }
543
- class VmAccessDeniedError extends Error {
517
+ class DuplicateUserNameError extends Error {
544
518
  constructor(body) {
545
519
  super(
546
- `VM_ACCESS_DENIED: ${body.message}`
520
+ `DUPLICATE_USER_NAME: ${body.message}`
547
521
  );
548
522
  this.body = body;
549
- this.name = "VmAccessDeniedError";
523
+ this.name = "DuplicateUserNameError";
550
524
  }
551
- static code = "VM_ACCESS_DENIED";
552
- static statusCode = 403;
553
- static description = `You do not have access to this VM`;
525
+ static code = "DUPLICATE_USER_NAME";
526
+ static statusCode = 400;
527
+ static description = `Duplicate user name '{name}' found`;
554
528
  }
555
- class StdIoError extends Error {
529
+ class UserGroupEmptyError extends Error {
556
530
  constructor(body) {
557
531
  super(
558
- `STD_IO: ${body.message}`
532
+ `USER_GROUP_EMPTY: ${body.message}`
559
533
  );
560
534
  this.body = body;
561
- this.name = "StdIoError";
535
+ this.name = "UserGroupEmptyError";
562
536
  }
563
- static code = "STD_IO";
564
- static statusCode = 500;
565
- static description = `Standard IO error`;
537
+ static code = "USER_GROUP_EMPTY";
538
+ static statusCode = 400;
539
+ static description = `User '{user}' has empty string in groups`;
566
540
  }
567
- class VmCreateTmuxSessionError extends Error {
541
+ class UserSystemFlagMismatchError extends Error {
568
542
  constructor(body) {
569
543
  super(
570
- `VM_CREATE_TMUX_SESSION: ${body.message}`
544
+ `USER_SYSTEM_FLAG_MISMATCH: ${body.message}`
571
545
  );
572
546
  this.body = body;
573
- this.name = "VmCreateTmuxSessionError";
547
+ this.name = "UserSystemFlagMismatchError";
574
548
  }
575
- static code = "VM_CREATE_TMUX_SESSION";
576
- static statusCode = 500;
577
- static description = `Failed to create tmux session for VM`;
549
+ static code = "USER_SYSTEM_FLAG_MISMATCH";
550
+ static statusCode = 400;
551
+ static description = `User '{user}' has system=true but UID {uid} is > 999 (system range)`;
578
552
  }
579
- class VmSubnetNotFoundError extends Error {
553
+ class UserUidOutOfRangeError extends Error {
580
554
  constructor(body) {
581
555
  super(
582
- `VM_SUBNET_NOT_FOUND: ${body.message}`
556
+ `USER_UID_OUT_OF_RANGE: ${body.message}`
583
557
  );
584
558
  this.body = body;
585
- this.name = "VmSubnetNotFoundError";
559
+ this.name = "UserUidOutOfRangeError";
586
560
  }
587
- static code = "VM_SUBNET_NOT_FOUND";
588
- static statusCode = 500;
589
- static description = `Subnet for VM not found`;
561
+ static code = "USER_UID_OUT_OF_RANGE";
562
+ static statusCode = 400;
563
+ static description = `User '{user}' has invalid UID {uid} (must be 0-65535)`;
590
564
  }
591
- class VmOperationDeniedDuringTransactionError extends Error {
565
+ class UserHomeInvalidError extends Error {
592
566
  constructor(body) {
593
567
  super(
594
- `VM_OPERATION_DENIED_DURING_TRANSACTION: ${body.message}`
568
+ `USER_HOME_INVALID: ${body.message}`
595
569
  );
596
570
  this.body = body;
597
- this.name = "VmOperationDeniedDuringTransactionError";
571
+ this.name = "UserHomeInvalidError";
598
572
  }
599
- static code = "VM_OPERATION_DENIED_DURING_TRANSACTION";
600
- static statusCode = 409;
601
- static description = `VM operation denied during active transaction for VM {vm_id} in transaction {transaction_id}`;
573
+ static code = "USER_HOME_INVALID";
574
+ static statusCode = 400;
575
+ static description = `User '{user}' has invalid home path '{home}' (must be absolute path starting with /)`;
602
576
  }
603
- class VmTransactionIdMismatchError extends Error {
577
+ class UserShellInvalidError extends Error {
604
578
  constructor(body) {
605
579
  super(
606
- `VM_TRANSACTION_ID_MISMATCH: ${body.message}`
580
+ `USER_SHELL_INVALID: ${body.message}`
607
581
  );
608
582
  this.body = body;
609
- this.name = "VmTransactionIdMismatchError";
583
+ this.name = "UserShellInvalidError";
610
584
  }
611
- static code = "VM_TRANSACTION_ID_MISMATCH";
585
+ static code = "USER_SHELL_INVALID";
612
586
  static statusCode = 400;
613
- static description = `Transaction ID {provided_transaction_id} does not match the current VM transaction {expected_transaction_id} for VM {vm_id}`;
587
+ static description = `User '{user}' has invalid shell path '{shell}' (must be absolute path starting with /)`;
614
588
  }
615
- class VmNotInTransactionError extends Error {
589
+ class DuplicateGroupNameError extends Error {
616
590
  constructor(body) {
617
591
  super(
618
- `VM_NOT_IN_TRANSACTION: ${body.message}`
592
+ `DUPLICATE_GROUP_NAME: ${body.message}`
619
593
  );
620
594
  this.body = body;
621
- this.name = "VmNotInTransactionError";
595
+ this.name = "DuplicateGroupNameError";
622
596
  }
623
- static code = "VM_NOT_IN_TRANSACTION";
624
- static statusCode = 404;
625
- static description = `VM not in a transaction: {vm_id}`;
597
+ static code = "DUPLICATE_GROUP_NAME";
598
+ static statusCode = 400;
599
+ static description = `Duplicate group name '{name}' found`;
626
600
  }
627
- class CreateVmBadRequestError extends Error {
601
+ class GroupNameReservedError extends Error {
628
602
  constructor(body) {
629
603
  super(
630
- `CREATE_VM_BAD_REQUEST: ${body.message}`
604
+ `GROUP_NAME_RESERVED: ${body.message}`
631
605
  );
632
606
  this.body = body;
633
- this.name = "CreateVmBadRequestError";
607
+ this.name = "GroupNameReservedError";
634
608
  }
635
- static code = "CREATE_VM_BAD_REQUEST";
609
+ static code = "GROUP_NAME_RESERVED";
636
610
  static statusCode = 400;
637
- static description = `Bad request: {message}`;
611
+ static description = `Group name '{name}' is reserved and cannot be used`;
638
612
  }
639
- class WantedByEmptyError extends Error {
613
+ class GroupNameInvalidCharsError extends Error {
640
614
  constructor(body) {
641
615
  super(
642
- `WANTED_BY_EMPTY: ${body.message}`
616
+ `GROUP_NAME_INVALID_CHARS: ${body.message}`
643
617
  );
644
618
  this.body = body;
645
- this.name = "WantedByEmptyError";
619
+ this.name = "GroupNameInvalidCharsError";
646
620
  }
647
- static code = "WANTED_BY_EMPTY";
621
+ static code = "GROUP_NAME_INVALID_CHARS";
648
622
  static statusCode = 400;
649
- static description = `wanted_by cannot be empty if provided`;
623
+ static description = `Group name '{name}' contains invalid characters (must match [a-z_][a-z0-9_-]*)`;
650
624
  }
651
- class WorkdirEmptyError extends Error {
625
+ class GroupNameTooLongError extends Error {
652
626
  constructor(body) {
653
627
  super(
654
- `WORKDIR_EMPTY: ${body.message}`
628
+ `GROUP_NAME_TOO_LONG: ${body.message}`
655
629
  );
656
630
  this.body = body;
657
- this.name = "WorkdirEmptyError";
631
+ this.name = "GroupNameTooLongError";
658
632
  }
659
- static code = "WORKDIR_EMPTY";
633
+ static code = "GROUP_NAME_TOO_LONG";
660
634
  static statusCode = 400;
661
- static description = `Working directory cannot be empty if provided`;
635
+ static description = `Group name '{name}' is too long (max {max_length} characters)`;
662
636
  }
663
- class GroupEmptyError extends Error {
637
+ class GroupNameEmptyError extends Error {
664
638
  constructor(body) {
665
639
  super(
666
- `GROUP_EMPTY: ${body.message}`
640
+ `GROUP_NAME_EMPTY: ${body.message}`
667
641
  );
668
642
  this.body = body;
669
- this.name = "GroupEmptyError";
643
+ this.name = "GroupNameEmptyError";
644
+ }
645
+ static code = "GROUP_NAME_EMPTY";
646
+ static statusCode = 400;
647
+ static description = `Group name cannot be empty`;
648
+ }
649
+ class InvalidGitRepoSpecErrorError extends Error {
650
+ constructor(body) {
651
+ super(
652
+ `INVALID_GIT_REPO_SPEC_ERROR: ${body.message}`
653
+ );
654
+ this.body = body;
655
+ this.name = "InvalidGitRepoSpecErrorError";
656
+ }
657
+ static code = "INVALID_GIT_REPO_SPEC_ERROR";
658
+ static statusCode = 400;
659
+ static description = `Invalid git repository specification: {message}`;
660
+ }
661
+ class InternalErrorError extends Error {
662
+ constructor(body) {
663
+ super(
664
+ `INTERNAL_ERROR: ${body.message}`
665
+ );
666
+ this.body = body;
667
+ this.name = "InternalErrorError";
668
+ }
669
+ static code = "INTERNAL_ERROR";
670
+ static statusCode = 500;
671
+ static description = `Internal error: {message}`;
672
+ }
673
+ class ForkVmNotFoundError extends Error {
674
+ constructor(body) {
675
+ super(
676
+ `FORK_VM_NOT_FOUND: ${body.message}`
677
+ );
678
+ this.body = body;
679
+ this.name = "ForkVmNotFoundError";
680
+ }
681
+ static code = "FORK_VM_NOT_FOUND";
682
+ static statusCode = 404;
683
+ static description = `Fork VM not found: {fork_vm_id}`;
684
+ }
685
+ class CreateSnapshotBadRequestError extends Error {
686
+ constructor(body) {
687
+ super(
688
+ `CREATE_SNAPSHOT_BAD_REQUEST: ${body.message}`
689
+ );
690
+ this.body = body;
691
+ this.name = "CreateSnapshotBadRequestError";
692
+ }
693
+ static code = "CREATE_SNAPSHOT_BAD_REQUEST";
694
+ static statusCode = 400;
695
+ static description = `Bad request: {message}`;
696
+ }
697
+ class DockerSnapshotFailedError extends Error {
698
+ constructor(body) {
699
+ super(
700
+ `DOCKER_SNAPSHOT_FAILED: ${body.message}`
701
+ );
702
+ this.body = body;
703
+ this.name = "DockerSnapshotFailedError";
704
+ }
705
+ static code = "DOCKER_SNAPSHOT_FAILED";
706
+ static statusCode = 500;
707
+ static description = `Failed to create snapshot from Docker image {docker_image} for account {account_id}: {details}`;
708
+ }
709
+ class SetDefaultSnapshotFailedError extends Error {
710
+ constructor(body) {
711
+ super(
712
+ `SET_DEFAULT_SNAPSHOT_FAILED: ${body.message}`
713
+ );
714
+ this.body = body;
715
+ this.name = "SetDefaultSnapshotFailedError";
716
+ }
717
+ static code = "SET_DEFAULT_SNAPSHOT_FAILED";
718
+ static statusCode = 500;
719
+ static description = `Failed to update default snapshot in database for account {account_id}, snapshot {snapshot_id}: {details}`;
720
+ }
721
+ class SnapshotLayerCreationFailedError extends Error {
722
+ constructor(body) {
723
+ super(
724
+ `SNAPSHOT_LAYER_CREATION_FAILED: ${body.message}`
725
+ );
726
+ this.body = body;
727
+ this.name = "SnapshotLayerCreationFailedError";
728
+ }
729
+ static code = "SNAPSHOT_LAYER_CREATION_FAILED";
730
+ static statusCode = 500;
731
+ static description = `Failed to create snapshot layer for account {account_id} from {source_snapshot_dir}: {details}`;
732
+ }
733
+ class SnapshotDirNotFoundError extends Error {
734
+ constructor(body) {
735
+ super(
736
+ `SNAPSHOT_DIR_NOT_FOUND: ${body.message}`
737
+ );
738
+ this.body = body;
739
+ this.name = "SnapshotDirNotFoundError";
740
+ }
741
+ static code = "SNAPSHOT_DIR_NOT_FOUND";
742
+ static statusCode = 500;
743
+ static description = `Snapshot directory not found at {snapshot_dir} for account {account_id}, snapshot {snapshot_id}`;
744
+ }
745
+ class SubvolumeCreationFailedError extends Error {
746
+ constructor(body) {
747
+ super(
748
+ `SUBVOLUME_CREATION_FAILED: ${body.message}`
749
+ );
750
+ this.body = body;
751
+ this.name = "SubvolumeCreationFailedError";
752
+ }
753
+ static code = "SUBVOLUME_CREATION_FAILED";
754
+ static statusCode = 500;
755
+ static description = `Failed to create account subvolume for account {account_id} on partition {partition_id}: {details}`;
756
+ }
757
+ class GetDefaultSnapshotFailedError extends Error {
758
+ constructor(body) {
759
+ super(
760
+ `GET_DEFAULT_SNAPSHOT_FAILED: ${body.message}`
761
+ );
762
+ this.body = body;
763
+ this.name = "GetDefaultSnapshotFailedError";
764
+ }
765
+ static code = "GET_DEFAULT_SNAPSHOT_FAILED";
766
+ static statusCode = 500;
767
+ static description = `Failed to query account default snapshot for account {account_id}: {details}`;
768
+ }
769
+ class ActiveTransactionErrorError extends Error {
770
+ constructor(body) {
771
+ super(
772
+ `ACTIVE_TRANSACTION_ERROR: ${body.message}`
773
+ );
774
+ this.body = body;
775
+ this.name = "ActiveTransactionErrorError";
776
+ }
777
+ static code = "ACTIVE_TRANSACTION_ERROR";
778
+ static statusCode = 500;
779
+ static description = `Active transaction error: {details}`;
780
+ }
781
+ class RootfsCopyErrorError extends Error {
782
+ constructor(body) {
783
+ super(
784
+ `ROOTFS_COPY_ERROR: ${body.message}`
785
+ );
786
+ this.body = body;
787
+ this.name = "RootfsCopyErrorError";
788
+ }
789
+ static code = "ROOTFS_COPY_ERROR";
790
+ static statusCode = 500;
791
+ static description = `Failed to copy rootfs from {from} to {to}: {details}`;
792
+ }
793
+ class FileNotFoundError extends Error {
794
+ constructor(body) {
795
+ super(
796
+ `FILE_NOT_FOUND: ${body.message}`
797
+ );
798
+ this.body = body;
799
+ this.name = "FileNotFoundError";
800
+ }
801
+ static code = "FILE_NOT_FOUND";
802
+ static statusCode = 404;
803
+ static description = `File not found: {path}`;
804
+ }
805
+ class FilesBadRequestError extends Error {
806
+ constructor(body) {
807
+ super(
808
+ `FILES_BAD_REQUEST: ${body.message}`
809
+ );
810
+ this.body = body;
811
+ this.name = "FilesBadRequestError";
812
+ }
813
+ static code = "FILES_BAD_REQUEST";
814
+ static statusCode = 400;
815
+ static description = `Bad request: {message}`;
816
+ }
817
+ class CreateVmBadRequestError extends Error {
818
+ constructor(body) {
819
+ super(
820
+ `CREATE_VM_BAD_REQUEST: ${body.message}`
821
+ );
822
+ this.body = body;
823
+ this.name = "CreateVmBadRequestError";
824
+ }
825
+ static code = "CREATE_VM_BAD_REQUEST";
826
+ static statusCode = 400;
827
+ static description = `Bad request: {message}`;
828
+ }
829
+ class WantedByEmptyError extends Error {
830
+ constructor(body) {
831
+ super(
832
+ `WANTED_BY_EMPTY: ${body.message}`
833
+ );
834
+ this.body = body;
835
+ this.name = "WantedByEmptyError";
836
+ }
837
+ static code = "WANTED_BY_EMPTY";
838
+ static statusCode = 400;
839
+ static description = `wanted_by cannot be empty if provided`;
840
+ }
841
+ class WorkdirEmptyError extends Error {
842
+ constructor(body) {
843
+ super(
844
+ `WORKDIR_EMPTY: ${body.message}`
845
+ );
846
+ this.body = body;
847
+ this.name = "WorkdirEmptyError";
848
+ }
849
+ static code = "WORKDIR_EMPTY";
850
+ static statusCode = 400;
851
+ static description = `Working directory cannot be empty if provided`;
852
+ }
853
+ class GroupEmptyError extends Error {
854
+ constructor(body) {
855
+ super(
856
+ `GROUP_EMPTY: ${body.message}`
857
+ );
858
+ this.body = body;
859
+ this.name = "GroupEmptyError";
670
860
  }
671
861
  static code = "GROUP_EMPTY";
672
862
  static statusCode = 400;
@@ -873,7 +1063,7 @@ class SyntaxErrorError extends Error {
873
1063
  this.name = "SyntaxErrorError";
874
1064
  }
875
1065
  static code = "SYNTAX_ERROR";
876
- static statusCode = 503;
1066
+ static statusCode = 400;
877
1067
  static description = `The provided script has a syntax error: {message}`;
878
1068
  }
879
1069
  class InternalError extends Error {
@@ -948,17 +1138,17 @@ class ExpiredError extends Error {
948
1138
  static statusCode = 403;
949
1139
  static description = `Session has expired`;
950
1140
  }
951
- class TagNotFoundError extends Error {
1141
+ class PackfileError extends Error {
952
1142
  constructor(body) {
953
1143
  super(
954
- `TAG_NOT_FOUND: ${body.message}`
1144
+ `PACKFILE: ${body.message}`
955
1145
  );
956
1146
  this.body = body;
957
- this.name = "TagNotFoundError";
1147
+ this.name = "PackfileError";
958
1148
  }
959
- static code = "TAG_NOT_FOUND";
960
- static statusCode = 404;
961
- static description = `Tag not found: {tag}`;
1149
+ static code = "PACKFILE";
1150
+ static statusCode = 500;
1151
+ static description = `Error building packfile`;
962
1152
  }
963
1153
  class TreeNotFoundError extends Error {
964
1154
  constructor(body) {
@@ -1056,233 +1246,221 @@ class CommitNotFoundError extends Error {
1056
1246
  static statusCode = 404;
1057
1247
  static description = `Commit {commit_hash} not found in repository {repo_id}`;
1058
1248
  }
1059
- class PackfileError extends Error {
1249
+ class PathNotFoundError extends Error {
1060
1250
  constructor(body) {
1061
1251
  super(
1062
- `PACKFILE: ${body.message}`
1252
+ `PATH_NOT_FOUND: ${body.message}`
1063
1253
  );
1064
1254
  this.body = body;
1065
- this.name = "PackfileError";
1255
+ this.name = "PathNotFoundError";
1066
1256
  }
1067
- static code = "PACKFILE";
1068
- static statusCode = 500;
1069
- static description = `Error building packfile`;
1257
+ static code = "PATH_NOT_FOUND";
1258
+ static statusCode = 404;
1259
+ static description = `Path not found: {path}`;
1070
1260
  }
1071
- class SendErrorError extends Error {
1261
+ class ReferenceNotFoundError extends Error {
1072
1262
  constructor(body) {
1073
1263
  super(
1074
- `SEND_ERROR: ${body.message}`
1264
+ `REFERENCE_NOT_FOUND: ${body.message}`
1075
1265
  );
1076
1266
  this.body = body;
1077
- this.name = "SendErrorError";
1267
+ this.name = "ReferenceNotFoundError";
1078
1268
  }
1079
- static code = "SEND_ERROR";
1080
- static statusCode = 500;
1081
- static description = `Stream receiver dropped`;
1269
+ static code = "REFERENCE_NOT_FOUND";
1270
+ static statusCode = 404;
1271
+ static description = `Reference not found: {reference}`;
1082
1272
  }
1083
- class UnsupportedTransferError extends Error {
1273
+ class AmbiguousError extends Error {
1084
1274
  constructor(body) {
1085
1275
  super(
1086
- `UNSUPPORTED_TRANSFER: ${body.message}`
1276
+ `AMBIGUOUS: ${body.message}`
1087
1277
  );
1088
1278
  this.body = body;
1089
- this.name = "UnsupportedTransferError";
1279
+ this.name = "AmbiguousError";
1090
1280
  }
1091
- static code = "UNSUPPORTED_TRANSFER";
1281
+ static code = "AMBIGUOUS";
1092
1282
  static statusCode = 400;
1093
- static description = `Unsupported LFS transfer protocol(s)`;
1283
+ static description = `rev is ambiguous: {rev}`;
1094
1284
  }
1095
- class InvalidRangeError extends Error {
1285
+ class InvalidError extends Error {
1096
1286
  constructor(body) {
1097
1287
  super(
1098
- `INVALID_RANGE: ${body.message}`
1288
+ `INVALID: ${body.message}`
1099
1289
  );
1100
1290
  this.body = body;
1101
- this.name = "InvalidRangeError";
1291
+ this.name = "InvalidError";
1102
1292
  }
1103
- static code = "INVALID_RANGE";
1293
+ static code = "INVALID";
1104
1294
  static statusCode = 400;
1105
- static description = `Invalid range: 'until' commit ({until}) must be a descendant of 'since' commit ({since}). In other words, 'until' must be newer than 'since' in the commit graph.`;
1295
+ static description = `invalid rev syntax: {rev}`;
1106
1296
  }
1107
- class OffsetWithSelectorError extends Error {
1297
+ class InvalidAccountIdError extends Error {
1108
1298
  constructor(body) {
1109
1299
  super(
1110
- `OFFSET_WITH_SELECTOR: ${body.message}`
1300
+ `INVALID_ACCOUNT_ID: ${body.message}`
1111
1301
  );
1112
1302
  this.body = body;
1113
- this.name = "OffsetWithSelectorError";
1303
+ this.name = "InvalidAccountIdError";
1114
1304
  }
1115
- static code = "OFFSET_WITH_SELECTOR";
1305
+ static code = "INVALID_ACCOUNT_ID";
1116
1306
  static statusCode = 400;
1117
- static description = `Cannot use 'offset' parameter together with 'since' or 'until'. Use 'since' for cursor-based pagination.`;
1307
+ static description = `Invalid account ID: {account_id}`;
1118
1308
  }
1119
- class CommitNotInBranchError extends Error {
1309
+ class SourceImportConflictError extends Error {
1120
1310
  constructor(body) {
1121
1311
  super(
1122
- `COMMIT_NOT_IN_BRANCH: ${body.message}`
1312
+ `SOURCE_IMPORT_CONFLICT: ${body.message}`
1123
1313
  );
1124
1314
  this.body = body;
1125
- this.name = "CommitNotInBranchError";
1315
+ this.name = "SourceImportConflictError";
1126
1316
  }
1127
- static code = "COMMIT_NOT_IN_BRANCH";
1317
+ static code = "SOURCE_IMPORT_CONFLICT";
1128
1318
  static statusCode = 400;
1129
- static description = `Commit {sha} is not in the history of branch {branch}`;
1319
+ static description = `Source and import are mutually exclusive`;
1130
1320
  }
1131
- class BlobNotFoundError extends Error {
1321
+ class SourceUnauthorizedError extends Error {
1132
1322
  constructor(body) {
1133
1323
  super(
1134
- `BLOB_NOT_FOUND: ${body.message}`
1135
- );
1136
- this.body = body;
1137
- this.name = "BlobNotFoundError";
1138
- }
1139
- static code = "BLOB_NOT_FOUND";
1140
- static statusCode = 404;
1141
- static description = `Blob not found: {hash}`;
1142
- }
1143
- class InvalidServiceError extends Error {
1144
- constructor(body) {
1145
- super(
1146
- `INVALID_SERVICE: ${body.message}`
1324
+ `SOURCE_UNAUTHORIZED: ${body.message}`
1147
1325
  );
1148
1326
  this.body = body;
1149
- this.name = "InvalidServiceError";
1327
+ this.name = "SourceUnauthorizedError";
1150
1328
  }
1151
- static code = "INVALID_SERVICE";
1152
- static statusCode = 403;
1153
- static description = `Invalid service '{invalid}', expected 'git-upload-pack' or 'git-receive-pack'`;
1329
+ static code = "SOURCE_UNAUTHORIZED";
1330
+ static statusCode = 400;
1331
+ static description = `Unauthorized to access source repository at {url}`;
1154
1332
  }
1155
- class ExpectedServiceError extends Error {
1333
+ class SourceNotFoundError extends Error {
1156
1334
  constructor(body) {
1157
1335
  super(
1158
- `EXPECTED_SERVICE: ${body.message}`
1336
+ `SOURCE_NOT_FOUND: ${body.message}`
1159
1337
  );
1160
1338
  this.body = body;
1161
- this.name = "ExpectedServiceError";
1339
+ this.name = "SourceNotFoundError";
1162
1340
  }
1163
- static code = "EXPECTED_SERVICE";
1164
- static statusCode = 403;
1165
- static description = `Expected 'service' query parameter`;
1341
+ static code = "SOURCE_NOT_FOUND";
1342
+ static statusCode = 400;
1343
+ static description = `Source repository not found at {url}`;
1166
1344
  }
1167
- class PathNotFoundError extends Error {
1345
+ class ImportSubdirNotFoundError extends Error {
1168
1346
  constructor(body) {
1169
1347
  super(
1170
- `PATH_NOT_FOUND: ${body.message}`
1348
+ `IMPORT_SUBDIR_NOT_FOUND: ${body.message}`
1171
1349
  );
1172
1350
  this.body = body;
1173
- this.name = "PathNotFoundError";
1351
+ this.name = "ImportSubdirNotFoundError";
1174
1352
  }
1175
- static code = "PATH_NOT_FOUND";
1176
- static statusCode = 404;
1177
- static description = `Path not found: {path}`;
1353
+ static code = "IMPORT_SUBDIR_NOT_FOUND";
1354
+ static statusCode = 400;
1355
+ static description = `Directory not found in {source}: {dir}`;
1178
1356
  }
1179
- class ReferenceNotFoundError extends Error {
1357
+ class TagNotFoundError extends Error {
1180
1358
  constructor(body) {
1181
1359
  super(
1182
- `REFERENCE_NOT_FOUND: ${body.message}`
1360
+ `TAG_NOT_FOUND: ${body.message}`
1183
1361
  );
1184
1362
  this.body = body;
1185
- this.name = "ReferenceNotFoundError";
1363
+ this.name = "TagNotFoundError";
1186
1364
  }
1187
- static code = "REFERENCE_NOT_FOUND";
1365
+ static code = "TAG_NOT_FOUND";
1188
1366
  static statusCode = 404;
1189
- static description = `Reference not found: {reference}`;
1367
+ static description = `Tag not found: {tag}`;
1190
1368
  }
1191
- class AmbiguousError extends Error {
1369
+ class UnsupportedTransferError extends Error {
1192
1370
  constructor(body) {
1193
1371
  super(
1194
- `AMBIGUOUS: ${body.message}`
1372
+ `UNSUPPORTED_TRANSFER: ${body.message}`
1195
1373
  );
1196
1374
  this.body = body;
1197
- this.name = "AmbiguousError";
1375
+ this.name = "UnsupportedTransferError";
1198
1376
  }
1199
- static code = "AMBIGUOUS";
1377
+ static code = "UNSUPPORTED_TRANSFER";
1200
1378
  static statusCode = 400;
1201
- static description = `rev is ambiguous: {rev}`;
1379
+ static description = `Unsupported LFS transfer protocol(s)`;
1202
1380
  }
1203
- class InvalidError extends Error {
1381
+ class SendErrorError extends Error {
1204
1382
  constructor(body) {
1205
1383
  super(
1206
- `INVALID: ${body.message}`
1384
+ `SEND_ERROR: ${body.message}`
1207
1385
  );
1208
1386
  this.body = body;
1209
- this.name = "InvalidError";
1387
+ this.name = "SendErrorError";
1210
1388
  }
1211
- static code = "INVALID";
1212
- static statusCode = 400;
1213
- static description = `invalid rev syntax: {rev}`;
1389
+ static code = "SEND_ERROR";
1390
+ static statusCode = 500;
1391
+ static description = `Stream receiver dropped`;
1214
1392
  }
1215
- class InvalidAccountIdError extends Error {
1393
+ class InvalidServiceError extends Error {
1216
1394
  constructor(body) {
1217
1395
  super(
1218
- `INVALID_ACCOUNT_ID: ${body.message}`
1396
+ `INVALID_SERVICE: ${body.message}`
1219
1397
  );
1220
1398
  this.body = body;
1221
- this.name = "InvalidAccountIdError";
1399
+ this.name = "InvalidServiceError";
1222
1400
  }
1223
- static code = "INVALID_ACCOUNT_ID";
1224
- static statusCode = 400;
1225
- static description = `Invalid account ID: {account_id}`;
1401
+ static code = "INVALID_SERVICE";
1402
+ static statusCode = 403;
1403
+ static description = `Invalid service '{invalid}', expected 'git-upload-pack' or 'git-receive-pack'`;
1226
1404
  }
1227
- class SourceImportConflictError extends Error {
1405
+ class ExpectedServiceError extends Error {
1228
1406
  constructor(body) {
1229
1407
  super(
1230
- `SOURCE_IMPORT_CONFLICT: ${body.message}`
1408
+ `EXPECTED_SERVICE: ${body.message}`
1231
1409
  );
1232
1410
  this.body = body;
1233
- this.name = "SourceImportConflictError";
1411
+ this.name = "ExpectedServiceError";
1234
1412
  }
1235
- static code = "SOURCE_IMPORT_CONFLICT";
1236
- static statusCode = 400;
1237
- static description = `Source and import are mutually exclusive`;
1413
+ static code = "EXPECTED_SERVICE";
1414
+ static statusCode = 403;
1415
+ static description = `Expected 'service' query parameter`;
1238
1416
  }
1239
- class SourceUnauthorizedError extends Error {
1417
+ class InvalidRangeError extends Error {
1240
1418
  constructor(body) {
1241
1419
  super(
1242
- `SOURCE_UNAUTHORIZED: ${body.message}`
1420
+ `INVALID_RANGE: ${body.message}`
1243
1421
  );
1244
1422
  this.body = body;
1245
- this.name = "SourceUnauthorizedError";
1423
+ this.name = "InvalidRangeError";
1246
1424
  }
1247
- static code = "SOURCE_UNAUTHORIZED";
1425
+ static code = "INVALID_RANGE";
1248
1426
  static statusCode = 400;
1249
- static description = `Unauthorized to access source repository at {url}`;
1427
+ static description = `Invalid range: 'until' commit ({until}) must be a descendant of 'since' commit ({since}). In other words, 'until' must be newer than 'since' in the commit graph.`;
1250
1428
  }
1251
- class SourceNotFoundError extends Error {
1429
+ class OffsetWithSelectorError extends Error {
1252
1430
  constructor(body) {
1253
1431
  super(
1254
- `SOURCE_NOT_FOUND: ${body.message}`
1432
+ `OFFSET_WITH_SELECTOR: ${body.message}`
1255
1433
  );
1256
1434
  this.body = body;
1257
- this.name = "SourceNotFoundError";
1435
+ this.name = "OffsetWithSelectorError";
1258
1436
  }
1259
- static code = "SOURCE_NOT_FOUND";
1437
+ static code = "OFFSET_WITH_SELECTOR";
1260
1438
  static statusCode = 400;
1261
- static description = `Source repository not found at {url}`;
1439
+ static description = `Cannot use 'offset' parameter together with 'since' or 'until'. Use 'since' for cursor-based pagination.`;
1262
1440
  }
1263
- class ImportSubdirNotFoundError extends Error {
1441
+ class CommitNotInBranchError extends Error {
1264
1442
  constructor(body) {
1265
1443
  super(
1266
- `IMPORT_SUBDIR_NOT_FOUND: ${body.message}`
1444
+ `COMMIT_NOT_IN_BRANCH: ${body.message}`
1267
1445
  );
1268
1446
  this.body = body;
1269
- this.name = "ImportSubdirNotFoundError";
1447
+ this.name = "CommitNotInBranchError";
1270
1448
  }
1271
- static code = "IMPORT_SUBDIR_NOT_FOUND";
1449
+ static code = "COMMIT_NOT_IN_BRANCH";
1272
1450
  static statusCode = 400;
1273
- static description = `Directory not found in {source}: {dir}`;
1451
+ static description = `Commit {sha} is not in the history of branch {branch}`;
1274
1452
  }
1275
- class ConflictError extends Error {
1453
+ class BlobNotFoundError extends Error {
1276
1454
  constructor(body) {
1277
1455
  super(
1278
- `CONFLICT: ${body.message}`
1456
+ `BLOB_NOT_FOUND: ${body.message}`
1279
1457
  );
1280
1458
  this.body = body;
1281
- this.name = "ConflictError";
1459
+ this.name = "BlobNotFoundError";
1282
1460
  }
1283
- static code = "CONFLICT";
1284
- static statusCode = 409;
1285
- static description = `Sync conflict: {message}`;
1461
+ static code = "BLOB_NOT_FOUND";
1462
+ static statusCode = 404;
1463
+ static description = `Blob not found: {hash}`;
1286
1464
  }
1287
1465
  class InvalidRevisionError extends Error {
1288
1466
  constructor(body) {
@@ -1296,6 +1474,18 @@ class InvalidRevisionError extends Error {
1296
1474
  static statusCode = 400;
1297
1475
  static description = `Invalid revision: {revision}`;
1298
1476
  }
1477
+ class ConflictError extends Error {
1478
+ constructor(body) {
1479
+ super(
1480
+ `CONFLICT: ${body.message}`
1481
+ );
1482
+ this.body = body;
1483
+ this.name = "ConflictError";
1484
+ }
1485
+ static code = "CONFLICT";
1486
+ static statusCode = 409;
1487
+ static description = `Sync conflict: {message}`;
1488
+ }
1299
1489
  class UnavailableError extends Error {
1300
1490
  constructor(body) {
1301
1491
  super(
@@ -1320,1544 +1510,1616 @@ class DevServerNotFoundError extends Error {
1320
1510
  static statusCode = 404;
1321
1511
  static description = `dev server not found`;
1322
1512
  }
1323
- class BuildFailedError extends Error {
1513
+ class EmptyTagError extends Error {
1324
1514
  constructor(body) {
1325
1515
  super(
1326
- `BUILD_FAILED: ${body.message}`
1516
+ `EMPTY_TAG: ${body.message}`
1327
1517
  );
1328
1518
  this.body = body;
1329
- this.name = "BuildFailedError";
1519
+ this.name = "EmptyTagError";
1330
1520
  }
1331
- static code = "BUILD_FAILED";
1332
- static statusCode = 500;
1333
- static description = `Build failed on VM {vm_id}`;
1521
+ static code = "EMPTY_TAG";
1522
+ static statusCode = 400;
1523
+ static description = `Invalid request: tag cannot be empty`;
1334
1524
  }
1335
- class ServerDeploymentFailedError extends Error {
1525
+ class VmLimitExceededError extends Error {
1336
1526
  constructor(body) {
1337
1527
  super(
1338
- `SERVER_DEPLOYMENT_FAILED: ${body.message}`
1528
+ `VM_LIMIT_EXCEEDED: ${body.message}`
1339
1529
  );
1340
1530
  this.body = body;
1341
- this.name = "ServerDeploymentFailedError";
1531
+ this.name = "VmLimitExceededError";
1342
1532
  }
1343
- static code = "SERVER_DEPLOYMENT_FAILED";
1344
- static statusCode = 502;
1345
- static description = `Failed to deploy to servers`;
1533
+ static code = "VM_LIMIT_EXCEEDED";
1534
+ static statusCode = 403;
1535
+ static description = `VM limit exceeded: your plan allows {limit} VMs, you currently have {current}`;
1346
1536
  }
1347
- class LockfileErrorError extends Error {
1537
+ class DomainOwnershipVerificationFailedError extends Error {
1348
1538
  constructor(body) {
1349
1539
  super(
1350
- `LOCKFILE_ERROR: ${body.message}`
1540
+ `DOMAIN_OWNERSHIP_VERIFICATION_FAILED: ${body.message}`
1351
1541
  );
1352
1542
  this.body = body;
1353
- this.name = "LockfileErrorError";
1543
+ this.name = "DomainOwnershipVerificationFailedError";
1354
1544
  }
1355
- static code = "LOCKFILE_ERROR";
1356
- static statusCode = 500;
1357
- static description = `Failed to generate dependency lockfile: {message}`;
1545
+ static code = "DOMAIN_OWNERSHIP_VERIFICATION_FAILED";
1546
+ static statusCode = 403;
1547
+ static description = `Domain ownership verification failed`;
1358
1548
  }
1359
- class UploadErrorError extends Error {
1549
+ class ErrorDeletingRecordError extends Error {
1360
1550
  constructor(body) {
1361
1551
  super(
1362
- `UPLOAD_ERROR: ${body.message}`
1552
+ `ERROR_DELETING_RECORD: ${body.message}`
1363
1553
  );
1364
1554
  this.body = body;
1365
- this.name = "UploadErrorError";
1555
+ this.name = "ErrorDeletingRecordError";
1366
1556
  }
1367
- static code = "UPLOAD_ERROR";
1557
+ static code = "ERROR_DELETING_RECORD";
1368
1558
  static statusCode = 500;
1369
- static description = `Failed to upload deployment to storage`;
1559
+ static description = `Error deleting DNS record for {domain}/{name}: {message}`;
1370
1560
  }
1371
- class DomainMappingErrorError extends Error {
1561
+ class RecordOwnershipErrorError extends Error {
1372
1562
  constructor(body) {
1373
1563
  super(
1374
- `DOMAIN_MAPPING_ERROR: ${body.message}`
1564
+ `RECORD_OWNERSHIP_ERROR: ${body.message}`
1375
1565
  );
1376
1566
  this.body = body;
1377
- this.name = "DomainMappingErrorError";
1567
+ this.name = "RecordOwnershipErrorError";
1378
1568
  }
1379
- static code = "DOMAIN_MAPPING_ERROR";
1380
- static statusCode = 500;
1381
- static description = `Failed to configure domain mapping for: {domain}`;
1569
+ static code = "RECORD_OWNERSHIP_ERROR";
1570
+ static statusCode = 403;
1571
+ static description = `Account {account_id} does not own record {record_id}`;
1382
1572
  }
1383
- class CertificateProvisioningErrorError extends Error {
1573
+ class ErrorCreatingRecordError extends Error {
1384
1574
  constructor(body) {
1385
1575
  super(
1386
- `CERTIFICATE_PROVISIONING_ERROR: ${body.message}`
1576
+ `ERROR_CREATING_RECORD: ${body.message}`
1387
1577
  );
1388
1578
  this.body = body;
1389
- this.name = "CertificateProvisioningErrorError";
1579
+ this.name = "ErrorCreatingRecordError";
1390
1580
  }
1391
- static code = "CERTIFICATE_PROVISIONING_ERROR";
1392
- static statusCode = 502;
1393
- static description = `Failed to provision certificate for domain: {domain}`;
1581
+ static code = "ERROR_CREATING_RECORD";
1582
+ static statusCode = 500;
1583
+ static description = `Error creating DNS record: {message}`;
1394
1584
  }
1395
- class NoEntrypointFoundError extends Error {
1585
+ class DomainOwnershipErrorError extends Error {
1396
1586
  constructor(body) {
1397
1587
  super(
1398
- `NO_ENTRYPOINT_FOUND: ${body.message}`
1588
+ `DOMAIN_OWNERSHIP_ERROR: ${body.message}`
1399
1589
  );
1400
1590
  this.body = body;
1401
- this.name = "NoEntrypointFoundError";
1591
+ this.name = "DomainOwnershipErrorError";
1402
1592
  }
1403
- static code = "NO_ENTRYPOINT_FOUND";
1404
- static statusCode = 400;
1405
- static description = `No entrypoint found in deployment`;
1593
+ static code = "DOMAIN_OWNERSHIP_ERROR";
1594
+ static statusCode = 403;
1595
+ static description = `Account {account_id} does not own domain {domain}`;
1406
1596
  }
1407
- class EntrypointNotFoundError extends Error {
1597
+ class CloudstateInternalErrorError extends Error {
1408
1598
  constructor(body) {
1409
1599
  super(
1410
- `ENTRYPOINT_NOT_FOUND: ${body.message}`
1600
+ `CLOUDSTATE_INTERNAL_ERROR: ${body.message}`
1411
1601
  );
1412
1602
  this.body = body;
1413
- this.name = "EntrypointNotFoundError";
1603
+ this.name = "CloudstateInternalErrorError";
1414
1604
  }
1415
- static code = "ENTRYPOINT_NOT_FOUND";
1416
- static statusCode = 400;
1417
- static description = `Entrypoint not found: {entrypoint}`;
1605
+ static code = "CLOUDSTATE_INTERNAL_ERROR";
1606
+ static statusCode = 500;
1607
+ static description = `Internal error: {message}`;
1418
1608
  }
1419
- class NoDomainOwnershipError extends Error {
1609
+ class CloudstateDatabaseErrorError extends Error {
1420
1610
  constructor(body) {
1421
1611
  super(
1422
- `NO_DOMAIN_OWNERSHIP: ${body.message}`
1612
+ `CLOUDSTATE_DATABASE_ERROR: ${body.message}`
1423
1613
  );
1424
1614
  this.body = body;
1425
- this.name = "NoDomainOwnershipError";
1615
+ this.name = "CloudstateDatabaseErrorError";
1426
1616
  }
1427
- static code = "NO_DOMAIN_OWNERSHIP";
1428
- static statusCode = 403;
1429
- static description = `No domain ownership for: {domain}`;
1430
- }
1431
- class InvalidDomainsError extends Error {
1617
+ static code = "CLOUDSTATE_DATABASE_ERROR";
1618
+ static statusCode = 500;
1619
+ static description = `Database operation failed: {message}`;
1620
+ }
1621
+ class CloudstateAccessDeniedError extends Error {
1432
1622
  constructor(body) {
1433
1623
  super(
1434
- `INVALID_DOMAINS: ${body.message}`
1624
+ `CLOUDSTATE_ACCESS_DENIED: ${body.message}`
1435
1625
  );
1436
1626
  this.body = body;
1437
- this.name = "InvalidDomainsError";
1627
+ this.name = "CloudstateAccessDeniedError";
1438
1628
  }
1439
- static code = "INVALID_DOMAINS";
1440
- static statusCode = 400;
1441
- static description = `Invalid domains provided`;
1629
+ static code = "CLOUDSTATE_ACCESS_DENIED";
1630
+ static statusCode = 403;
1631
+ static description = `Access denied to project: {project_id}`;
1442
1632
  }
1443
- class WebDeploymentBadRequestError extends Error {
1633
+ class RestoreFailedError extends Error {
1444
1634
  constructor(body) {
1445
1635
  super(
1446
- `WEB_DEPLOYMENT_BAD_REQUEST: ${body.message}`
1636
+ `RESTORE_FAILED: ${body.message}`
1447
1637
  );
1448
1638
  this.body = body;
1449
- this.name = "WebDeploymentBadRequestError";
1639
+ this.name = "RestoreFailedError";
1450
1640
  }
1451
- static code = "WEB_DEPLOYMENT_BAD_REQUEST";
1452
- static statusCode = 400;
1453
- static description = `Bad request: {message}`;
1641
+ static code = "RESTORE_FAILED";
1642
+ static statusCode = 500;
1643
+ static description = `Failed to restore from backup: {message}`;
1454
1644
  }
1455
- class DeploymentNotFoundError extends Error {
1645
+ class CreateBackupFailedError extends Error {
1456
1646
  constructor(body) {
1457
1647
  super(
1458
- `DEPLOYMENT_NOT_FOUND: ${body.message}`
1648
+ `CREATE_BACKUP_FAILED: ${body.message}`
1459
1649
  );
1460
1650
  this.body = body;
1461
- this.name = "DeploymentNotFoundError";
1651
+ this.name = "CreateBackupFailedError";
1462
1652
  }
1463
- static code = "DEPLOYMENT_NOT_FOUND";
1464
- static statusCode = 404;
1465
- static description = `Deployment not found`;
1653
+ static code = "CREATE_BACKUP_FAILED";
1654
+ static statusCode = 500;
1655
+ static description = `Failed to create backup: {message}`;
1466
1656
  }
1467
- class PermissionAlreadyExistsError extends Error {
1657
+ class BackupFailedError extends Error {
1468
1658
  constructor(body) {
1469
1659
  super(
1470
- `PERMISSION_ALREADY_EXISTS: ${body.message}`
1660
+ `BACKUP_FAILED: ${body.message}`
1471
1661
  );
1472
1662
  this.body = body;
1473
- this.name = "PermissionAlreadyExistsError";
1663
+ this.name = "BackupFailedError";
1474
1664
  }
1475
- static code = "PERMISSION_ALREADY_EXISTS";
1476
- static statusCode = 409;
1477
- static description = `Permission already exists`;
1665
+ static code = "BACKUP_FAILED";
1666
+ static statusCode = 500;
1667
+ static description = `Backup failed: {message}`;
1478
1668
  }
1479
- class ListTokensFailedError extends Error {
1669
+ class DeploymentFailedError extends Error {
1480
1670
  constructor(body) {
1481
1671
  super(
1482
- `LIST_TOKENS_FAILED: ${body.message}`
1672
+ `DEPLOYMENT_FAILED: ${body.message}`
1483
1673
  );
1484
1674
  this.body = body;
1485
- this.name = "ListTokensFailedError";
1675
+ this.name = "DeploymentFailedError";
1486
1676
  }
1487
- static code = "LIST_TOKENS_FAILED";
1677
+ static code = "DEPLOYMENT_FAILED";
1488
1678
  static statusCode = 500;
1489
- static description = `Failed to list tokens: {message}`;
1679
+ static description = `Deployment failed: {message}`;
1490
1680
  }
1491
- class RevokeTokenFailedError extends Error {
1681
+ class InvalidDeploymentRequestError extends Error {
1492
1682
  constructor(body) {
1493
1683
  super(
1494
- `REVOKE_TOKEN_FAILED: ${body.message}`
1684
+ `INVALID_DEPLOYMENT_REQUEST: ${body.message}`
1495
1685
  );
1496
1686
  this.body = body;
1497
- this.name = "RevokeTokenFailedError";
1687
+ this.name = "InvalidDeploymentRequestError";
1498
1688
  }
1499
- static code = "REVOKE_TOKEN_FAILED";
1500
- static statusCode = 500;
1501
- static description = `Failed to revoke token: {message}`;
1689
+ static code = "INVALID_DEPLOYMENT_REQUEST";
1690
+ static statusCode = 400;
1691
+ static description = `Invalid deployment request: {message}`;
1502
1692
  }
1503
- class CreateTokenFailedError extends Error {
1693
+ class ProjectNotFoundError extends Error {
1504
1694
  constructor(body) {
1505
1695
  super(
1506
- `CREATE_TOKEN_FAILED: ${body.message}`
1696
+ `PROJECT_NOT_FOUND: ${body.message}`
1507
1697
  );
1508
1698
  this.body = body;
1509
- this.name = "CreateTokenFailedError";
1699
+ this.name = "ProjectNotFoundError";
1510
1700
  }
1511
- static code = "CREATE_TOKEN_FAILED";
1512
- static statusCode = 500;
1513
- static description = `Failed to create token: {message}`;
1701
+ static code = "PROJECT_NOT_FOUND";
1702
+ static statusCode = 404;
1703
+ static description = `Project not found: {project_id}`;
1514
1704
  }
1515
- class ListPermissionsFailedError extends Error {
1705
+ class UnauthorizedErrorError extends Error {
1516
1706
  constructor(body) {
1517
1707
  super(
1518
- `LIST_PERMISSIONS_FAILED: ${body.message}`
1708
+ `UNAUTHORIZED_ERROR: ${body.message}`
1519
1709
  );
1520
1710
  this.body = body;
1521
- this.name = "ListPermissionsFailedError";
1711
+ this.name = "UnauthorizedErrorError";
1522
1712
  }
1523
- static code = "LIST_PERMISSIONS_FAILED";
1524
- static statusCode = 500;
1525
- static description = `Failed to list permissions: {message}`;
1713
+ static code = "UNAUTHORIZED_ERROR";
1714
+ static statusCode = 401;
1715
+ static description = `Unauthorized request to {route}`;
1526
1716
  }
1527
- class GetPermissionFailedError extends Error {
1717
+ class ExecuteLimitExceededError extends Error {
1528
1718
  constructor(body) {
1529
1719
  super(
1530
- `GET_PERMISSION_FAILED: ${body.message}`
1720
+ `EXECUTE_LIMIT_EXCEEDED: ${body.message}`
1531
1721
  );
1532
1722
  this.body = body;
1533
- this.name = "GetPermissionFailedError";
1723
+ this.name = "ExecuteLimitExceededError";
1534
1724
  }
1535
- static code = "GET_PERMISSION_FAILED";
1536
- static statusCode = 500;
1537
- static description = `Failed to get permission: {message}`;
1725
+ static code = "EXECUTE_LIMIT_EXCEEDED";
1726
+ static statusCode = 403;
1727
+ static description = `Execute runs limit exceeded: your plan allows {limit} runs per month, you have used {current}`;
1538
1728
  }
1539
- class UpdatePermissionFailedError extends Error {
1729
+ class ExecuteInternalErrorError extends Error {
1540
1730
  constructor(body) {
1541
1731
  super(
1542
- `UPDATE_PERMISSION_FAILED: ${body.message}`
1732
+ `EXECUTE_INTERNAL_ERROR: ${body.message}`
1543
1733
  );
1544
1734
  this.body = body;
1545
- this.name = "UpdatePermissionFailedError";
1735
+ this.name = "ExecuteInternalErrorError";
1546
1736
  }
1547
- static code = "UPDATE_PERMISSION_FAILED";
1737
+ static code = "EXECUTE_INTERNAL_ERROR";
1548
1738
  static statusCode = 500;
1549
- static description = `Failed to update permission: {message}`;
1739
+ static description = `Internal error: {message}`;
1550
1740
  }
1551
- class RevokePermissionFailedError extends Error {
1741
+ class ExecuteAccessDeniedError extends Error {
1552
1742
  constructor(body) {
1553
1743
  super(
1554
- `REVOKE_PERMISSION_FAILED: ${body.message}`
1744
+ `EXECUTE_ACCESS_DENIED: ${body.message}`
1555
1745
  );
1556
1746
  this.body = body;
1557
- this.name = "RevokePermissionFailedError";
1747
+ this.name = "ExecuteAccessDeniedError";
1558
1748
  }
1559
- static code = "REVOKE_PERMISSION_FAILED";
1560
- static statusCode = 500;
1561
- static description = `Failed to revoke permission: {message}`;
1749
+ static code = "EXECUTE_ACCESS_DENIED";
1750
+ static statusCode = 403;
1751
+ static description = `Access denied to execute run`;
1562
1752
  }
1563
- class GrantPermissionFailedError extends Error {
1753
+ class ListRunsFailedError extends Error {
1564
1754
  constructor(body) {
1565
1755
  super(
1566
- `GRANT_PERMISSION_FAILED: ${body.message}`
1756
+ `LIST_RUNS_FAILED: ${body.message}`
1567
1757
  );
1568
1758
  this.body = body;
1569
- this.name = "GrantPermissionFailedError";
1759
+ this.name = "ListRunsFailedError";
1570
1760
  }
1571
- static code = "GRANT_PERMISSION_FAILED";
1761
+ static code = "LIST_RUNS_FAILED";
1572
1762
  static statusCode = 500;
1573
- static description = `Failed to grant permission: {message}`;
1763
+ static description = `Failed to list execute runs: {message}`;
1574
1764
  }
1575
- class ListIdentitiesFailedError extends Error {
1765
+ class ExecutionErrorError extends Error {
1576
1766
  constructor(body) {
1577
1767
  super(
1578
- `LIST_IDENTITIES_FAILED: ${body.message}`
1768
+ `EXECUTION_ERROR: ${body.message}`
1579
1769
  );
1580
1770
  this.body = body;
1581
- this.name = "ListIdentitiesFailedError";
1771
+ this.name = "ExecutionErrorError";
1582
1772
  }
1583
- static code = "LIST_IDENTITIES_FAILED";
1773
+ static code = "EXECUTION_ERROR";
1584
1774
  static statusCode = 500;
1585
- static description = `Failed to list identities: {message}`;
1775
+ static description = `Script execution error: {message}`;
1586
1776
  }
1587
- class DeleteIdentityFailedError extends Error {
1777
+ class ConnectionFailedError extends Error {
1588
1778
  constructor(body) {
1589
1779
  super(
1590
- `DELETE_IDENTITY_FAILED: ${body.message}`
1780
+ `CONNECTION_FAILED: ${body.message}`
1591
1781
  );
1592
1782
  this.body = body;
1593
- this.name = "DeleteIdentityFailedError";
1783
+ this.name = "ConnectionFailedError";
1594
1784
  }
1595
- static code = "DELETE_IDENTITY_FAILED";
1785
+ static code = "CONNECTION_FAILED";
1596
1786
  static statusCode = 500;
1597
- static description = `Failed to delete identity: {message}`;
1787
+ static description = `Failed to connect to execute server: {message}`;
1598
1788
  }
1599
- class CreateIdentityFailedError extends Error {
1789
+ class MetadataWriteFailedError extends Error {
1600
1790
  constructor(body) {
1601
1791
  super(
1602
- `CREATE_IDENTITY_FAILED: ${body.message}`
1792
+ `METADATA_WRITE_FAILED: ${body.message}`
1603
1793
  );
1604
1794
  this.body = body;
1605
- this.name = "CreateIdentityFailedError";
1795
+ this.name = "MetadataWriteFailedError";
1606
1796
  }
1607
- static code = "CREATE_IDENTITY_FAILED";
1797
+ static code = "METADATA_WRITE_FAILED";
1608
1798
  static statusCode = 500;
1609
- static description = `Failed to create identity: {message}`;
1799
+ static description = `Failed to write metadata file: {message}`;
1610
1800
  }
1611
- class VmPermissionNotFoundError extends Error {
1801
+ class NodeModulesInstallFailedError extends Error {
1612
1802
  constructor(body) {
1613
1803
  super(
1614
- `VM_PERMISSION_NOT_FOUND: ${body.message}`
1804
+ `NODE_MODULES_INSTALL_FAILED: ${body.message}`
1615
1805
  );
1616
1806
  this.body = body;
1617
- this.name = "VmPermissionNotFoundError";
1807
+ this.name = "NodeModulesInstallFailedError";
1618
1808
  }
1619
- static code = "VM_PERMISSION_NOT_FOUND";
1620
- static statusCode = 404;
1621
- static description = `VM permission not found`;
1809
+ static code = "NODE_MODULES_INSTALL_FAILED";
1810
+ static statusCode = 500;
1811
+ static description = `Failed to install node modules: {message}`;
1622
1812
  }
1623
- class PermissionNotFoundError extends Error {
1813
+ class NodeModulesDownloadFailedError extends Error {
1624
1814
  constructor(body) {
1625
1815
  super(
1626
- `PERMISSION_NOT_FOUND: ${body.message}`
1816
+ `NODE_MODULES_DOWNLOAD_FAILED: ${body.message}`
1627
1817
  );
1628
1818
  this.body = body;
1629
- this.name = "PermissionNotFoundError";
1819
+ this.name = "NodeModulesDownloadFailedError";
1630
1820
  }
1631
- static code = "PERMISSION_NOT_FOUND";
1632
- static statusCode = 404;
1633
- static description = `Permission not found`;
1821
+ static code = "NODE_MODULES_DOWNLOAD_FAILED";
1822
+ static statusCode = 500;
1823
+ static description = `Failed to download node modules: {message}`;
1634
1824
  }
1635
- class GitRepositoryAccessDeniedError extends Error {
1825
+ class LockGenerationFailedError extends Error {
1636
1826
  constructor(body) {
1637
1827
  super(
1638
- `GIT_REPOSITORY_ACCESS_DENIED: ${body.message}`
1828
+ `LOCK_GENERATION_FAILED: ${body.message}`
1639
1829
  );
1640
1830
  this.body = body;
1641
- this.name = "GitRepositoryAccessDeniedError";
1831
+ this.name = "LockGenerationFailedError";
1642
1832
  }
1643
- static code = "GIT_REPOSITORY_ACCESS_DENIED";
1644
- static statusCode = 403;
1645
- static description = `You are not allowed to access this repository`;
1833
+ static code = "LOCK_GENERATION_FAILED";
1834
+ static statusCode = 500;
1835
+ static description = `Failed to generate lock file: {message}`;
1646
1836
  }
1647
- class GitRepositoryNotFoundError extends Error {
1837
+ class WriteScriptFailedError extends Error {
1648
1838
  constructor(body) {
1649
1839
  super(
1650
- `GIT_REPOSITORY_NOT_FOUND: ${body.message}`
1840
+ `WRITE_SCRIPT_FAILED: ${body.message}`
1651
1841
  );
1652
1842
  this.body = body;
1653
- this.name = "GitRepositoryNotFoundError";
1843
+ this.name = "WriteScriptFailedError";
1654
1844
  }
1655
- static code = "GIT_REPOSITORY_NOT_FOUND";
1656
- static statusCode = 404;
1657
- static description = `Repository not found`;
1845
+ static code = "WRITE_SCRIPT_FAILED";
1846
+ static statusCode = 500;
1847
+ static description = `Failed to write script file: {message}`;
1658
1848
  }
1659
- class CannotDeleteManagedIdentityError extends Error {
1849
+ class DirectoryCreationFailedError extends Error {
1660
1850
  constructor(body) {
1661
1851
  super(
1662
- `CANNOT_DELETE_MANAGED_IDENTITY: ${body.message}`
1852
+ `DIRECTORY_CREATION_FAILED: ${body.message}`
1663
1853
  );
1664
1854
  this.body = body;
1665
- this.name = "CannotDeleteManagedIdentityError";
1855
+ this.name = "DirectoryCreationFailedError";
1666
1856
  }
1667
- static code = "CANNOT_DELETE_MANAGED_IDENTITY";
1668
- static statusCode = 403;
1669
- static description = `Cannot delete managed identities`;
1857
+ static code = "DIRECTORY_CREATION_FAILED";
1858
+ static statusCode = 500;
1859
+ static description = `Failed to create script directory: {message}`;
1670
1860
  }
1671
- class CannotModifyManagedIdentityError extends Error {
1861
+ class NetworkPermissionsFailedError extends Error {
1672
1862
  constructor(body) {
1673
1863
  super(
1674
- `CANNOT_MODIFY_MANAGED_IDENTITY: ${body.message}`
1864
+ `NETWORK_PERMISSIONS_FAILED: ${body.message}`
1675
1865
  );
1676
1866
  this.body = body;
1677
- this.name = "CannotModifyManagedIdentityError";
1867
+ this.name = "NetworkPermissionsFailedError";
1678
1868
  }
1679
- static code = "CANNOT_MODIFY_MANAGED_IDENTITY";
1680
- static statusCode = 403;
1681
- static description = `Cannot modify managed identities`;
1869
+ static code = "NETWORK_PERMISSIONS_FAILED";
1870
+ static statusCode = 500;
1871
+ static description = `Failed to insert network permissions: {message}`;
1682
1872
  }
1683
- class IdentityAccessDeniedError extends Error {
1873
+ class LoggingFailedError extends Error {
1684
1874
  constructor(body) {
1685
1875
  super(
1686
- `IDENTITY_ACCESS_DENIED: ${body.message}`
1876
+ `LOGGING_FAILED: ${body.message}`
1687
1877
  );
1688
1878
  this.body = body;
1689
- this.name = "IdentityAccessDeniedError";
1879
+ this.name = "LoggingFailedError";
1690
1880
  }
1691
- static code = "IDENTITY_ACCESS_DENIED";
1692
- static statusCode = 403;
1693
- static description = `You are not allowed to access this identity`;
1881
+ static code = "LOGGING_FAILED";
1882
+ static statusCode = 500;
1883
+ static description = `Failed to log execute run: {message}`;
1694
1884
  }
1695
- class IdentityNotFoundError extends Error {
1885
+ class RunNotFoundError extends Error {
1696
1886
  constructor(body) {
1697
1887
  super(
1698
- `IDENTITY_NOT_FOUND: ${body.message}`
1888
+ `RUN_NOT_FOUND: ${body.message}`
1699
1889
  );
1700
1890
  this.body = body;
1701
- this.name = "IdentityNotFoundError";
1891
+ this.name = "RunNotFoundError";
1702
1892
  }
1703
- static code = "IDENTITY_NOT_FOUND";
1893
+ static code = "RUN_NOT_FOUND";
1704
1894
  static statusCode = 404;
1705
- static description = `Identity not found`;
1895
+ static description = `Execute run not found: {run_id}`;
1706
1896
  }
1707
- class TriggerErrorError extends Error {
1897
+ class FailedToProvisionCertificateError extends Error {
1708
1898
  constructor(body) {
1709
1899
  super(
1710
- `TRIGGER_ERROR: ${body.message}`
1900
+ `FAILED_TO_PROVISION_CERTIFICATE: ${body.message}`
1711
1901
  );
1712
1902
  this.body = body;
1713
- this.name = "TriggerErrorError";
1903
+ this.name = "FailedToProvisionCertificateError";
1714
1904
  }
1715
- static code = "TRIGGER_ERROR";
1716
- static statusCode = 500;
1717
- static description = `Failed to manage triggers: {message}`;
1905
+ static code = "FAILED_TO_PROVISION_CERTIFICATE";
1906
+ static statusCode = 422;
1907
+ static description = `Failed to provision certificate: {message}`;
1718
1908
  }
1719
- class TokenErrorError extends Error {
1909
+ class FailedToInsertDomainMappingError extends Error {
1720
1910
  constructor(body) {
1721
1911
  super(
1722
- `TOKEN_ERROR: ${body.message}`
1912
+ `FAILED_TO_INSERT_DOMAIN_MAPPING: ${body.message}`
1723
1913
  );
1724
1914
  this.body = body;
1725
- this.name = "TokenErrorError";
1915
+ this.name = "FailedToInsertDomainMappingError";
1726
1916
  }
1727
- static code = "TOKEN_ERROR";
1917
+ static code = "FAILED_TO_INSERT_DOMAIN_MAPPING";
1728
1918
  static statusCode = 500;
1729
- static description = `Failed to manage tokens: {message}`;
1919
+ static description = `Failed to insert domain mapping: {message}`;
1730
1920
  }
1731
- class PermissionErrorError extends Error {
1921
+ class PermissionDeniedError extends Error {
1732
1922
  constructor(body) {
1733
1923
  super(
1734
- `PERMISSION_ERROR: ${body.message}`
1924
+ `PERMISSION_DENIED: ${body.message}`
1735
1925
  );
1736
1926
  this.body = body;
1737
- this.name = "PermissionErrorError";
1927
+ this.name = "PermissionDeniedError";
1738
1928
  }
1739
- static code = "PERMISSION_ERROR";
1740
- static statusCode = 500;
1741
- static description = `Failed to manage permissions: {message}`;
1929
+ static code = "PERMISSION_DENIED";
1930
+ static statusCode = 401;
1931
+ static description = `Permission denied: {message}`;
1742
1932
  }
1743
- class IdentityErrorError extends Error {
1933
+ class FailedToCheckPermissionsError extends Error {
1744
1934
  constructor(body) {
1745
1935
  super(
1746
- `IDENTITY_ERROR: ${body.message}`
1936
+ `FAILED_TO_CHECK_PERMISSIONS: ${body.message}`
1747
1937
  );
1748
1938
  this.body = body;
1749
- this.name = "IdentityErrorError";
1939
+ this.name = "FailedToCheckPermissionsError";
1750
1940
  }
1751
- static code = "IDENTITY_ERROR";
1752
- static statusCode = 500;
1753
- static description = `Failed to manage identity: {message}`;
1941
+ static code = "FAILED_TO_CHECK_PERMISSIONS";
1942
+ static statusCode = 502;
1943
+ static description = `Failed to check permissions: {message}`;
1754
1944
  }
1755
- class GetContentFailedError extends Error {
1945
+ class FailedToListDomainsError extends Error {
1756
1946
  constructor(body) {
1757
1947
  super(
1758
- `GET_CONTENT_FAILED: ${body.message}`
1948
+ `FAILED_TO_LIST_DOMAINS: ${body.message}`
1759
1949
  );
1760
1950
  this.body = body;
1761
- this.name = "GetContentFailedError";
1951
+ this.name = "FailedToListDomainsError";
1762
1952
  }
1763
- static code = "GET_CONTENT_FAILED";
1953
+ static code = "FAILED_TO_LIST_DOMAINS";
1764
1954
  static statusCode = 500;
1765
- static description = `Failed to get content: {message}`;
1955
+ static description = `Failed to list domains: {message}`;
1766
1956
  }
1767
- class ContentNotFoundError extends Error {
1957
+ class FailedToListVerificationsError extends Error {
1768
1958
  constructor(body) {
1769
1959
  super(
1770
- `CONTENT_NOT_FOUND: ${body.message}`
1960
+ `FAILED_TO_LIST_VERIFICATIONS: ${body.message}`
1771
1961
  );
1772
1962
  this.body = body;
1773
- this.name = "ContentNotFoundError";
1963
+ this.name = "FailedToListVerificationsError";
1774
1964
  }
1775
- static code = "CONTENT_NOT_FOUND";
1776
- static statusCode = 404;
1777
- static description = `Content not found: {path}`;
1965
+ static code = "FAILED_TO_LIST_VERIFICATIONS";
1966
+ static statusCode = 500;
1967
+ static description = `Failed to list verifications: {message}`;
1778
1968
  }
1779
- class DownloadFailedError extends Error {
1969
+ class FailedToVerifyDomainError extends Error {
1780
1970
  constructor(body) {
1781
1971
  super(
1782
- `DOWNLOAD_FAILED: ${body.message}`
1972
+ `FAILED_TO_VERIFY_DOMAIN: ${body.message}`
1783
1973
  );
1784
1974
  this.body = body;
1785
- this.name = "DownloadFailedError";
1975
+ this.name = "FailedToVerifyDomainError";
1786
1976
  }
1787
- static code = "DOWNLOAD_FAILED";
1977
+ static code = "FAILED_TO_VERIFY_DOMAIN";
1788
1978
  static statusCode = 500;
1789
- static description = `Failed to download repository: {message}`;
1979
+ static description = `Failed to verify domain: {message}`;
1790
1980
  }
1791
- class GitServerErrorError extends Error {
1981
+ class VerificationFailedError extends Error {
1792
1982
  constructor(body) {
1793
1983
  super(
1794
- `GIT_SERVER_ERROR: ${body.message}`
1984
+ `VERIFICATION_FAILED: ${body.message}`
1795
1985
  );
1796
1986
  this.body = body;
1797
- this.name = "GitServerErrorError";
1987
+ this.name = "VerificationFailedError";
1798
1988
  }
1799
- static code = "GIT_SERVER_ERROR";
1800
- static statusCode = 500;
1801
- static description = `Git server error: {message}`;
1989
+ static code = "VERIFICATION_FAILED";
1990
+ static statusCode = 400;
1991
+ static description = `Domain verification failed: {message}`;
1802
1992
  }
1803
- class ParseResponseErrorError extends Error {
1993
+ class FailedToDeleteVerificationError extends Error {
1804
1994
  constructor(body) {
1805
1995
  super(
1806
- `PARSE_RESPONSE_ERROR: ${body.message}`
1996
+ `FAILED_TO_DELETE_VERIFICATION: ${body.message}`
1807
1997
  );
1808
1998
  this.body = body;
1809
- this.name = "ParseResponseErrorError";
1999
+ this.name = "FailedToDeleteVerificationError";
1810
2000
  }
1811
- static code = "PARSE_RESPONSE_ERROR";
1812
- static statusCode = 500;
1813
- static description = `Failed to parse response from Git server: {message}`;
2001
+ static code = "FAILED_TO_DELETE_VERIFICATION";
2002
+ static statusCode = 400;
2003
+ static description = `Failed to delete verification: {message}`;
1814
2004
  }
1815
- class RepositoryAccessDeniedError extends Error {
2005
+ class VerificationNotFoundError extends Error {
1816
2006
  constructor(body) {
1817
2007
  super(
1818
- `REPOSITORY_ACCESS_DENIED: ${body.message}`
2008
+ `VERIFICATION_NOT_FOUND: ${body.message}`
1819
2009
  );
1820
2010
  this.body = body;
1821
- this.name = "RepositoryAccessDeniedError";
2011
+ this.name = "VerificationNotFoundError";
1822
2012
  }
1823
- static code = "REPOSITORY_ACCESS_DENIED";
1824
- static statusCode = 403;
1825
- static description = `Repository does not belong to account`;
2013
+ static code = "VERIFICATION_NOT_FOUND";
2014
+ static statusCode = 404;
2015
+ static description = `Verification request not found for domain: {domain}`;
1826
2016
  }
1827
- class GitHubSyncFailedError extends Error {
2017
+ class FailedToCreateVerificationCodeError extends Error {
1828
2018
  constructor(body) {
1829
2019
  super(
1830
- `GIT_HUB_SYNC_FAILED: ${body.message}`
2020
+ `FAILED_TO_CREATE_VERIFICATION_CODE: ${body.message}`
1831
2021
  );
1832
2022
  this.body = body;
1833
- this.name = "GitHubSyncFailedError";
2023
+ this.name = "FailedToCreateVerificationCodeError";
1834
2024
  }
1835
- static code = "GIT_HUB_SYNC_FAILED";
1836
- static statusCode = 500;
1837
- static description = `Failed to configure GitHub sync: {message}`;
2025
+ static code = "FAILED_TO_CREATE_VERIFICATION_CODE";
2026
+ static statusCode = 400;
2027
+ static description = `Failed to create verification code: {message}`;
1838
2028
  }
1839
- class UpdateDefaultBranchFailedError extends Error {
2029
+ class InvalidDomainError extends Error {
1840
2030
  constructor(body) {
1841
2031
  super(
1842
- `UPDATE_DEFAULT_BRANCH_FAILED: ${body.message}`
2032
+ `INVALID_DOMAIN: ${body.message}`
1843
2033
  );
1844
2034
  this.body = body;
1845
- this.name = "UpdateDefaultBranchFailedError";
2035
+ this.name = "InvalidDomainError";
1846
2036
  }
1847
- static code = "UPDATE_DEFAULT_BRANCH_FAILED";
1848
- static statusCode = 500;
1849
- static description = `Failed to update default branch: {message}`;
2037
+ static code = "INVALID_DOMAIN";
2038
+ static statusCode = 400;
2039
+ static description = `Invalid domain: {domain}`;
1850
2040
  }
1851
- class GetRepositoryInfoFailedError extends Error {
2041
+ class LimitExceededError extends Error {
1852
2042
  constructor(body) {
1853
2043
  super(
1854
- `GET_REPOSITORY_INFO_FAILED: ${body.message}`
2044
+ `LIMIT_EXCEEDED: ${body.message}`
1855
2045
  );
1856
2046
  this.body = body;
1857
- this.name = "GetRepositoryInfoFailedError";
2047
+ this.name = "LimitExceededError";
1858
2048
  }
1859
- static code = "GET_REPOSITORY_INFO_FAILED";
1860
- static statusCode = 500;
1861
- static description = `Failed to get repository info: {message}`;
2049
+ static code = "LIMIT_EXCEEDED";
2050
+ static statusCode = 403;
2051
+ static description = `Domain limit exceeded: your plan allows {limit} domains, you currently have {current}`;
1862
2052
  }
1863
- class ListRepositoriesFailedError extends Error {
2053
+ class DomainOwnershipNotVerifiedError extends Error {
1864
2054
  constructor(body) {
1865
2055
  super(
1866
- `LIST_REPOSITORIES_FAILED: ${body.message}`
2056
+ `DOMAIN_OWNERSHIP_NOT_VERIFIED: ${body.message}`
1867
2057
  );
1868
2058
  this.body = body;
1869
- this.name = "ListRepositoriesFailedError";
2059
+ this.name = "DomainOwnershipNotVerifiedError";
1870
2060
  }
1871
- static code = "LIST_REPOSITORIES_FAILED";
1872
- static statusCode = 500;
1873
- static description = `Failed to list repositories: {message}`;
2061
+ static code = "DOMAIN_OWNERSHIP_NOT_VERIFIED";
2062
+ static statusCode = 401;
2063
+ static description = `You have not verified ownership of domain: {domain}`;
1874
2064
  }
1875
- class DeleteRepositoryFailedError extends Error {
2065
+ class VmAccessDeniedForMappingError extends Error {
1876
2066
  constructor(body) {
1877
2067
  super(
1878
- `DELETE_REPOSITORY_FAILED: ${body.message}`
2068
+ `VM_ACCESS_DENIED_FOR_MAPPING: ${body.message}`
1879
2069
  );
1880
2070
  this.body = body;
1881
- this.name = "DeleteRepositoryFailedError";
2071
+ this.name = "VmAccessDeniedForMappingError";
1882
2072
  }
1883
- static code = "DELETE_REPOSITORY_FAILED";
1884
- static statusCode = 500;
1885
- static description = `Failed to delete repository: {message}`;
2073
+ static code = "VM_ACCESS_DENIED_FOR_MAPPING";
2074
+ static statusCode = 401;
2075
+ static description = `You do not have permission to map to this VM: {vm_id}`;
1886
2076
  }
1887
- class CreateRepositoryFailedError extends Error {
2077
+ class DeploymentAccessDeniedError extends Error {
1888
2078
  constructor(body) {
1889
2079
  super(
1890
- `CREATE_REPOSITORY_FAILED: ${body.message}`
2080
+ `DEPLOYMENT_ACCESS_DENIED: ${body.message}`
1891
2081
  );
1892
2082
  this.body = body;
1893
- this.name = "CreateRepositoryFailedError";
2083
+ this.name = "DeploymentAccessDeniedError";
1894
2084
  }
1895
- static code = "CREATE_REPOSITORY_FAILED";
1896
- static statusCode = 500;
1897
- static description = `Failed to create repository: {message}`;
2085
+ static code = "DEPLOYMENT_ACCESS_DENIED";
2086
+ static statusCode = 401;
2087
+ static description = `You do not have permission to map to this deployment: {deployment_id}`;
1898
2088
  }
1899
- class SerializationErrorError extends Error {
2089
+ class FailedToProvisionCertificateForMappingError extends Error {
1900
2090
  constructor(body) {
1901
2091
  super(
1902
- `SERIALIZATION_ERROR: ${body.message}`
2092
+ `FAILED_TO_PROVISION_CERTIFICATE_FOR_MAPPING: ${body.message}`
1903
2093
  );
1904
2094
  this.body = body;
1905
- this.name = "SerializationErrorError";
2095
+ this.name = "FailedToProvisionCertificateForMappingError";
1906
2096
  }
1907
- static code = "SERIALIZATION_ERROR";
1908
- static statusCode = 400;
1909
- static description = `Failed to serialize request: {message}`;
2097
+ static code = "FAILED_TO_PROVISION_CERTIFICATE_FOR_MAPPING";
2098
+ static statusCode = 422;
2099
+ static description = `Failed to provision certificate for mapping: {message}`;
1910
2100
  }
1911
- class GitInvalidRequestError extends Error {
2101
+ class FailedInsertDomainMappingError extends Error {
1912
2102
  constructor(body) {
1913
2103
  super(
1914
- `GIT_INVALID_REQUEST: ${body.message}`
2104
+ `FAILED_INSERT_DOMAIN_MAPPING: ${body.message}`
1915
2105
  );
1916
2106
  this.body = body;
1917
- this.name = "GitInvalidRequestError";
2107
+ this.name = "FailedInsertDomainMappingError";
1918
2108
  }
1919
- static code = "GIT_INVALID_REQUEST";
1920
- static statusCode = 400;
1921
- static description = `Invalid request: {message}`;
2109
+ static code = "FAILED_INSERT_DOMAIN_MAPPING";
2110
+ static statusCode = 500;
2111
+ static description = `Failed to insert domain mapping: {message}`;
1922
2112
  }
1923
- class RepositoryNotFoundError extends Error {
2113
+ class DomainAlreadyExistsError extends Error {
1924
2114
  constructor(body) {
1925
2115
  super(
1926
- `REPOSITORY_NOT_FOUND: ${body.message}`
2116
+ `DOMAIN_ALREADY_EXISTS: ${body.message}`
1927
2117
  );
1928
2118
  this.body = body;
1929
- this.name = "RepositoryNotFoundError";
2119
+ this.name = "DomainAlreadyExistsError";
1930
2120
  }
1931
- static code = "REPOSITORY_NOT_FOUND";
1932
- static statusCode = 404;
1933
- static description = `Repository not found: {repo_id}`;
2121
+ static code = "DOMAIN_ALREADY_EXISTS";
2122
+ static statusCode = 400;
2123
+ static description = `Domain already exists: {domain}`;
1934
2124
  }
1935
- class ExecuteInternalErrorError extends Error {
2125
+ class FailedToInsertOwnershipError extends Error {
1936
2126
  constructor(body) {
1937
2127
  super(
1938
- `EXECUTE_INTERNAL_ERROR: ${body.message}`
2128
+ `FAILED_TO_INSERT_OWNERSHIP: ${body.message}`
1939
2129
  );
1940
2130
  this.body = body;
1941
- this.name = "ExecuteInternalErrorError";
2131
+ this.name = "FailedToInsertOwnershipError";
1942
2132
  }
1943
- static code = "EXECUTE_INTERNAL_ERROR";
2133
+ static code = "FAILED_TO_INSERT_OWNERSHIP";
1944
2134
  static statusCode = 500;
1945
- static description = `Internal error: {message}`;
2135
+ static description = `Failed to insert domain ownership: {message}`;
1946
2136
  }
1947
- class ExecuteAccessDeniedError extends Error {
2137
+ class FailedRemoveDomainMappingError extends Error {
1948
2138
  constructor(body) {
1949
2139
  super(
1950
- `EXECUTE_ACCESS_DENIED: ${body.message}`
2140
+ `FAILED_REMOVE_DOMAIN_MAPPING: ${body.message}`
1951
2141
  );
1952
2142
  this.body = body;
1953
- this.name = "ExecuteAccessDeniedError";
2143
+ this.name = "FailedRemoveDomainMappingError";
1954
2144
  }
1955
- static code = "EXECUTE_ACCESS_DENIED";
1956
- static statusCode = 403;
1957
- static description = `Access denied to execute run`;
2145
+ static code = "FAILED_REMOVE_DOMAIN_MAPPING";
2146
+ static statusCode = 500;
2147
+ static description = `Failed to remove domain mapping: {message}`;
1958
2148
  }
1959
- class ListRunsFailedError extends Error {
2149
+ class FailedPermissionsCheckError extends Error {
1960
2150
  constructor(body) {
1961
2151
  super(
1962
- `LIST_RUNS_FAILED: ${body.message}`
2152
+ `FAILED_PERMISSIONS_CHECK: ${body.message}`
1963
2153
  );
1964
2154
  this.body = body;
1965
- this.name = "ListRunsFailedError";
2155
+ this.name = "FailedPermissionsCheckError";
1966
2156
  }
1967
- static code = "LIST_RUNS_FAILED";
1968
- static statusCode = 500;
1969
- static description = `Failed to list execute runs: {message}`;
2157
+ static code = "FAILED_PERMISSIONS_CHECK";
2158
+ static statusCode = 401;
2159
+ static description = `You do not have permission to delete the domain mapping for: {domain}`;
1970
2160
  }
1971
- class ExecutionErrorError extends Error {
2161
+ class FailedToCheckDomainMappingPermissionsError extends Error {
1972
2162
  constructor(body) {
1973
2163
  super(
1974
- `EXECUTION_ERROR: ${body.message}`
2164
+ `FAILED_TO_CHECK_DOMAIN_MAPPING_PERMISSIONS: ${body.message}`
1975
2165
  );
1976
2166
  this.body = body;
1977
- this.name = "ExecutionErrorError";
2167
+ this.name = "FailedToCheckDomainMappingPermissionsError";
1978
2168
  }
1979
- static code = "EXECUTION_ERROR";
1980
- static statusCode = 500;
1981
- static description = `Script execution error: {message}`;
2169
+ static code = "FAILED_TO_CHECK_DOMAIN_MAPPING_PERMISSIONS";
2170
+ static statusCode = 502;
2171
+ static description = `Failed to check permissions: {message}`;
1982
2172
  }
1983
- class ConnectionFailedError extends Error {
2173
+ class BuildFailedError extends Error {
1984
2174
  constructor(body) {
1985
2175
  super(
1986
- `CONNECTION_FAILED: ${body.message}`
2176
+ `BUILD_FAILED: ${body.message}`
1987
2177
  );
1988
2178
  this.body = body;
1989
- this.name = "ConnectionFailedError";
2179
+ this.name = "BuildFailedError";
1990
2180
  }
1991
- static code = "CONNECTION_FAILED";
2181
+ static code = "BUILD_FAILED";
1992
2182
  static statusCode = 500;
1993
- static description = `Failed to connect to execute server: {message}`;
2183
+ static description = `Build failed on VM {vm_id}`;
1994
2184
  }
1995
- class MetadataWriteFailedError extends Error {
2185
+ class ServerDeploymentFailedError extends Error {
1996
2186
  constructor(body) {
1997
2187
  super(
1998
- `METADATA_WRITE_FAILED: ${body.message}`
2188
+ `SERVER_DEPLOYMENT_FAILED: ${body.message}`
1999
2189
  );
2000
2190
  this.body = body;
2001
- this.name = "MetadataWriteFailedError";
2191
+ this.name = "ServerDeploymentFailedError";
2002
2192
  }
2003
- static code = "METADATA_WRITE_FAILED";
2004
- static statusCode = 500;
2005
- static description = `Failed to write metadata file: {message}`;
2193
+ static code = "SERVER_DEPLOYMENT_FAILED";
2194
+ static statusCode = 502;
2195
+ static description = `Failed to deploy to servers`;
2006
2196
  }
2007
- class NodeModulesInstallFailedError extends Error {
2197
+ class LockfileErrorError extends Error {
2008
2198
  constructor(body) {
2009
2199
  super(
2010
- `NODE_MODULES_INSTALL_FAILED: ${body.message}`
2200
+ `LOCKFILE_ERROR: ${body.message}`
2011
2201
  );
2012
2202
  this.body = body;
2013
- this.name = "NodeModulesInstallFailedError";
2203
+ this.name = "LockfileErrorError";
2014
2204
  }
2015
- static code = "NODE_MODULES_INSTALL_FAILED";
2205
+ static code = "LOCKFILE_ERROR";
2016
2206
  static statusCode = 500;
2017
- static description = `Failed to install node modules: {message}`;
2207
+ static description = `Failed to generate dependency lockfile: {message}`;
2018
2208
  }
2019
- class NodeModulesDownloadFailedError extends Error {
2209
+ class UploadErrorError extends Error {
2020
2210
  constructor(body) {
2021
2211
  super(
2022
- `NODE_MODULES_DOWNLOAD_FAILED: ${body.message}`
2212
+ `UPLOAD_ERROR: ${body.message}`
2023
2213
  );
2024
2214
  this.body = body;
2025
- this.name = "NodeModulesDownloadFailedError";
2215
+ this.name = "UploadErrorError";
2026
2216
  }
2027
- static code = "NODE_MODULES_DOWNLOAD_FAILED";
2217
+ static code = "UPLOAD_ERROR";
2028
2218
  static statusCode = 500;
2029
- static description = `Failed to download node modules: {message}`;
2219
+ static description = `Failed to upload deployment to storage`;
2030
2220
  }
2031
- class LockGenerationFailedError extends Error {
2221
+ class DomainMappingErrorError extends Error {
2032
2222
  constructor(body) {
2033
2223
  super(
2034
- `LOCK_GENERATION_FAILED: ${body.message}`
2224
+ `DOMAIN_MAPPING_ERROR: ${body.message}`
2035
2225
  );
2036
2226
  this.body = body;
2037
- this.name = "LockGenerationFailedError";
2227
+ this.name = "DomainMappingErrorError";
2038
2228
  }
2039
- static code = "LOCK_GENERATION_FAILED";
2229
+ static code = "DOMAIN_MAPPING_ERROR";
2040
2230
  static statusCode = 500;
2041
- static description = `Failed to generate lock file: {message}`;
2231
+ static description = `Failed to configure domain mapping for: {domain}`;
2042
2232
  }
2043
- class WriteScriptFailedError extends Error {
2233
+ class CertificateProvisioningErrorError extends Error {
2044
2234
  constructor(body) {
2045
2235
  super(
2046
- `WRITE_SCRIPT_FAILED: ${body.message}`
2236
+ `CERTIFICATE_PROVISIONING_ERROR: ${body.message}`
2047
2237
  );
2048
2238
  this.body = body;
2049
- this.name = "WriteScriptFailedError";
2239
+ this.name = "CertificateProvisioningErrorError";
2050
2240
  }
2051
- static code = "WRITE_SCRIPT_FAILED";
2052
- static statusCode = 500;
2053
- static description = `Failed to write script file: {message}`;
2241
+ static code = "CERTIFICATE_PROVISIONING_ERROR";
2242
+ static statusCode = 502;
2243
+ static description = `Failed to provision certificate for domain: {domain}`;
2054
2244
  }
2055
- class DirectoryCreationFailedError extends Error {
2245
+ class NoEntrypointFoundError extends Error {
2056
2246
  constructor(body) {
2057
2247
  super(
2058
- `DIRECTORY_CREATION_FAILED: ${body.message}`
2248
+ `NO_ENTRYPOINT_FOUND: ${body.message}`
2059
2249
  );
2060
2250
  this.body = body;
2061
- this.name = "DirectoryCreationFailedError";
2251
+ this.name = "NoEntrypointFoundError";
2062
2252
  }
2063
- static code = "DIRECTORY_CREATION_FAILED";
2064
- static statusCode = 500;
2065
- static description = `Failed to create script directory: {message}`;
2253
+ static code = "NO_ENTRYPOINT_FOUND";
2254
+ static statusCode = 400;
2255
+ static description = `No entrypoint found in deployment`;
2066
2256
  }
2067
- class NetworkPermissionsFailedError extends Error {
2257
+ class EntrypointNotFoundError extends Error {
2068
2258
  constructor(body) {
2069
2259
  super(
2070
- `NETWORK_PERMISSIONS_FAILED: ${body.message}`
2260
+ `ENTRYPOINT_NOT_FOUND: ${body.message}`
2071
2261
  );
2072
2262
  this.body = body;
2073
- this.name = "NetworkPermissionsFailedError";
2263
+ this.name = "EntrypointNotFoundError";
2074
2264
  }
2075
- static code = "NETWORK_PERMISSIONS_FAILED";
2076
- static statusCode = 500;
2077
- static description = `Failed to insert network permissions: {message}`;
2265
+ static code = "ENTRYPOINT_NOT_FOUND";
2266
+ static statusCode = 400;
2267
+ static description = `Entrypoint not found: {entrypoint}`;
2078
2268
  }
2079
- class LoggingFailedError extends Error {
2269
+ class NoDomainOwnershipError extends Error {
2080
2270
  constructor(body) {
2081
2271
  super(
2082
- `LOGGING_FAILED: ${body.message}`
2272
+ `NO_DOMAIN_OWNERSHIP: ${body.message}`
2083
2273
  );
2084
2274
  this.body = body;
2085
- this.name = "LoggingFailedError";
2275
+ this.name = "NoDomainOwnershipError";
2086
2276
  }
2087
- static code = "LOGGING_FAILED";
2088
- static statusCode = 500;
2089
- static description = `Failed to log execute run: {message}`;
2277
+ static code = "NO_DOMAIN_OWNERSHIP";
2278
+ static statusCode = 403;
2279
+ static description = `No domain ownership for: {domain}`;
2090
2280
  }
2091
- class RunNotFoundError extends Error {
2281
+ class InvalidDomainsError extends Error {
2092
2282
  constructor(body) {
2093
2283
  super(
2094
- `RUN_NOT_FOUND: ${body.message}`
2284
+ `INVALID_DOMAINS: ${body.message}`
2095
2285
  );
2096
2286
  this.body = body;
2097
- this.name = "RunNotFoundError";
2287
+ this.name = "InvalidDomainsError";
2098
2288
  }
2099
- static code = "RUN_NOT_FOUND";
2100
- static statusCode = 404;
2101
- static description = `Execute run not found: {run_id}`;
2289
+ static code = "INVALID_DOMAINS";
2290
+ static statusCode = 400;
2291
+ static description = `Invalid domains provided`;
2102
2292
  }
2103
- class CloudstateInternalErrorError extends Error {
2293
+ class WebDeploymentBadRequestError extends Error {
2104
2294
  constructor(body) {
2105
2295
  super(
2106
- `CLOUDSTATE_INTERNAL_ERROR: ${body.message}`
2296
+ `WEB_DEPLOYMENT_BAD_REQUEST: ${body.message}`
2107
2297
  );
2108
2298
  this.body = body;
2109
- this.name = "CloudstateInternalErrorError";
2299
+ this.name = "WebDeploymentBadRequestError";
2110
2300
  }
2111
- static code = "CLOUDSTATE_INTERNAL_ERROR";
2112
- static statusCode = 500;
2113
- static description = `Internal error: {message}`;
2301
+ static code = "WEB_DEPLOYMENT_BAD_REQUEST";
2302
+ static statusCode = 400;
2303
+ static description = `Bad request: {message}`;
2114
2304
  }
2115
- class CloudstateDatabaseErrorError extends Error {
2305
+ class DeploymentNotFoundError extends Error {
2116
2306
  constructor(body) {
2117
2307
  super(
2118
- `CLOUDSTATE_DATABASE_ERROR: ${body.message}`
2308
+ `DEPLOYMENT_NOT_FOUND: ${body.message}`
2119
2309
  );
2120
2310
  this.body = body;
2121
- this.name = "CloudstateDatabaseErrorError";
2311
+ this.name = "DeploymentNotFoundError";
2122
2312
  }
2123
- static code = "CLOUDSTATE_DATABASE_ERROR";
2124
- static statusCode = 500;
2125
- static description = `Database operation failed: {message}`;
2313
+ static code = "DEPLOYMENT_NOT_FOUND";
2314
+ static statusCode = 404;
2315
+ static description = `Deployment not found`;
2126
2316
  }
2127
- class CloudstateAccessDeniedError extends Error {
2317
+ class ObservabilityDatabaseErrorError extends Error {
2128
2318
  constructor(body) {
2129
2319
  super(
2130
- `CLOUDSTATE_ACCESS_DENIED: ${body.message}`
2320
+ `OBSERVABILITY_DATABASE_ERROR: ${body.message}`
2131
2321
  );
2132
2322
  this.body = body;
2133
- this.name = "CloudstateAccessDeniedError";
2323
+ this.name = "ObservabilityDatabaseErrorError";
2134
2324
  }
2135
- static code = "CLOUDSTATE_ACCESS_DENIED";
2136
- static statusCode = 403;
2137
- static description = `Access denied to project: {project_id}`;
2325
+ static code = "OBSERVABILITY_DATABASE_ERROR";
2326
+ static statusCode = 500;
2327
+ static description = `Database operation failed: {message}`;
2138
2328
  }
2139
- class RestoreFailedError extends Error {
2329
+ class ObservabilityAccessDeniedError extends Error {
2140
2330
  constructor(body) {
2141
2331
  super(
2142
- `RESTORE_FAILED: ${body.message}`
2332
+ `OBSERVABILITY_ACCESS_DENIED: ${body.message}`
2143
2333
  );
2144
2334
  this.body = body;
2145
- this.name = "RestoreFailedError";
2335
+ this.name = "ObservabilityAccessDeniedError";
2146
2336
  }
2147
- static code = "RESTORE_FAILED";
2148
- static statusCode = 500;
2149
- static description = `Failed to restore from backup: {message}`;
2337
+ static code = "OBSERVABILITY_ACCESS_DENIED";
2338
+ static statusCode = 403;
2339
+ static description = `Access denied to logs for deployment: {deployment_id}`;
2150
2340
  }
2151
- class CreateBackupFailedError extends Error {
2341
+ class ParseLogsFailedError extends Error {
2152
2342
  constructor(body) {
2153
2343
  super(
2154
- `CREATE_BACKUP_FAILED: ${body.message}`
2344
+ `PARSE_LOGS_FAILED: ${body.message}`
2155
2345
  );
2156
2346
  this.body = body;
2157
- this.name = "CreateBackupFailedError";
2347
+ this.name = "ParseLogsFailedError";
2158
2348
  }
2159
- static code = "CREATE_BACKUP_FAILED";
2349
+ static code = "PARSE_LOGS_FAILED";
2160
2350
  static statusCode = 500;
2161
- static description = `Failed to create backup: {message}`;
2351
+ static description = `Failed to parse logs: {message}`;
2162
2352
  }
2163
- class BackupFailedError extends Error {
2353
+ class RetrieveLogsFailedError extends Error {
2164
2354
  constructor(body) {
2165
2355
  super(
2166
- `BACKUP_FAILED: ${body.message}`
2356
+ `RETRIEVE_LOGS_FAILED: ${body.message}`
2167
2357
  );
2168
2358
  this.body = body;
2169
- this.name = "BackupFailedError";
2359
+ this.name = "RetrieveLogsFailedError";
2170
2360
  }
2171
- static code = "BACKUP_FAILED";
2361
+ static code = "RETRIEVE_LOGS_FAILED";
2172
2362
  static statusCode = 500;
2173
- static description = `Backup failed: {message}`;
2363
+ static description = `Failed to retrieve logs: {message}`;
2174
2364
  }
2175
- class DeploymentFailedError extends Error {
2365
+ class InvalidQueryError extends Error {
2176
2366
  constructor(body) {
2177
2367
  super(
2178
- `DEPLOYMENT_FAILED: ${body.message}`
2368
+ `INVALID_QUERY: ${body.message}`
2179
2369
  );
2180
2370
  this.body = body;
2181
- this.name = "DeploymentFailedError";
2371
+ this.name = "InvalidQueryError";
2182
2372
  }
2183
- static code = "DEPLOYMENT_FAILED";
2184
- static statusCode = 500;
2185
- static description = `Deployment failed: {message}`;
2373
+ static code = "INVALID_QUERY";
2374
+ static statusCode = 400;
2375
+ static description = `Invalid log query: {message}`;
2186
2376
  }
2187
- class InvalidDeploymentRequestError extends Error {
2377
+ class LogsNotFoundError extends Error {
2188
2378
  constructor(body) {
2189
2379
  super(
2190
- `INVALID_DEPLOYMENT_REQUEST: ${body.message}`
2380
+ `LOGS_NOT_FOUND: ${body.message}`
2191
2381
  );
2192
2382
  this.body = body;
2193
- this.name = "InvalidDeploymentRequestError";
2383
+ this.name = "LogsNotFoundError";
2194
2384
  }
2195
- static code = "INVALID_DEPLOYMENT_REQUEST";
2196
- static statusCode = 400;
2197
- static description = `Invalid deployment request: {message}`;
2385
+ static code = "LOGS_NOT_FOUND";
2386
+ static statusCode = 404;
2387
+ static description = `Logs not found for deployment: {deployment_id}`;
2198
2388
  }
2199
- class ProjectNotFoundError extends Error {
2389
+ class PermissionAlreadyExistsError extends Error {
2200
2390
  constructor(body) {
2201
2391
  super(
2202
- `PROJECT_NOT_FOUND: ${body.message}`
2392
+ `PERMISSION_ALREADY_EXISTS: ${body.message}`
2203
2393
  );
2204
2394
  this.body = body;
2205
- this.name = "ProjectNotFoundError";
2395
+ this.name = "PermissionAlreadyExistsError";
2206
2396
  }
2207
- static code = "PROJECT_NOT_FOUND";
2208
- static statusCode = 404;
2209
- static description = `Project not found: {project_id}`;
2397
+ static code = "PERMISSION_ALREADY_EXISTS";
2398
+ static statusCode = 409;
2399
+ static description = `Permission already exists`;
2210
2400
  }
2211
- class ScheduleNotFoundError extends Error {
2401
+ class ListTokensFailedError extends Error {
2212
2402
  constructor(body) {
2213
2403
  super(
2214
- `SCHEDULE_NOT_FOUND: ${body.message}`
2404
+ `LIST_TOKENS_FAILED: ${body.message}`
2215
2405
  );
2216
2406
  this.body = body;
2217
- this.name = "ScheduleNotFoundError";
2407
+ this.name = "ListTokensFailedError";
2218
2408
  }
2219
- static code = "SCHEDULE_NOT_FOUND";
2220
- static statusCode = 404;
2221
- static description = `Schedule not found`;
2409
+ static code = "LIST_TOKENS_FAILED";
2410
+ static statusCode = 500;
2411
+ static description = `Failed to list tokens: {message}`;
2222
2412
  }
2223
- class ServiceUnavailableError extends Error {
2413
+ class RevokeTokenFailedError extends Error {
2224
2414
  constructor(body) {
2225
2415
  super(
2226
- `SERVICE_UNAVAILABLE: ${body.message}`
2416
+ `REVOKE_TOKEN_FAILED: ${body.message}`
2227
2417
  );
2228
2418
  this.body = body;
2229
- this.name = "ServiceUnavailableError";
2419
+ this.name = "RevokeTokenFailedError";
2230
2420
  }
2231
- static code = "SERVICE_UNAVAILABLE";
2232
- static statusCode = 503;
2233
- static description = `Cron service not configured`;
2421
+ static code = "REVOKE_TOKEN_FAILED";
2422
+ static statusCode = 500;
2423
+ static description = `Failed to revoke token: {message}`;
2234
2424
  }
2235
- class UnauthorizedErrorError extends Error {
2425
+ class CreateTokenFailedError extends Error {
2236
2426
  constructor(body) {
2237
2427
  super(
2238
- `UNAUTHORIZED_ERROR: ${body.message}`
2428
+ `CREATE_TOKEN_FAILED: ${body.message}`
2239
2429
  );
2240
2430
  this.body = body;
2241
- this.name = "UnauthorizedErrorError";
2242
- }
2243
- static code = "UNAUTHORIZED_ERROR";
2244
- static statusCode = 401;
2245
- static description = `Unauthorized request to {route}`;
2246
- }
2247
- class AnyhowError extends Error {
2248
- constructor(body) {
2249
- super(
2250
- `ANYHOW: ${body.message}`
2251
- );
2252
- this.body = body;
2253
- this.name = "AnyhowError";
2431
+ this.name = "CreateTokenFailedError";
2254
2432
  }
2255
- static code = "ANYHOW";
2433
+ static code = "CREATE_TOKEN_FAILED";
2256
2434
  static statusCode = 500;
2257
- static description = `Internal server error: {0}`;
2435
+ static description = `Failed to create token: {message}`;
2258
2436
  }
2259
- class BrowserOperationFailedError extends Error {
2437
+ class ListPermissionsFailedError extends Error {
2260
2438
  constructor(body) {
2261
2439
  super(
2262
- `BROWSER_OPERATION_FAILED: ${body.message}`
2440
+ `LIST_PERMISSIONS_FAILED: ${body.message}`
2263
2441
  );
2264
2442
  this.body = body;
2265
- this.name = "BrowserOperationFailedError";
2443
+ this.name = "ListPermissionsFailedError";
2266
2444
  }
2267
- static code = "BROWSER_OPERATION_FAILED";
2445
+ static code = "LIST_PERMISSIONS_FAILED";
2268
2446
  static statusCode = 500;
2269
- static description = `Browser operation failed: {message}`;
2447
+ static description = `Failed to list permissions: {message}`;
2270
2448
  }
2271
- class WatchFilesFailedError extends Error {
2449
+ class GetPermissionFailedError extends Error {
2272
2450
  constructor(body) {
2273
2451
  super(
2274
- `WATCH_FILES_FAILED: ${body.message}`
2452
+ `GET_PERMISSION_FAILED: ${body.message}`
2275
2453
  );
2276
2454
  this.body = body;
2277
- this.name = "WatchFilesFailedError";
2455
+ this.name = "GetPermissionFailedError";
2278
2456
  }
2279
- static code = "WATCH_FILES_FAILED";
2457
+ static code = "GET_PERMISSION_FAILED";
2280
2458
  static statusCode = 500;
2281
- static description = `Failed to watch files: {message}`;
2459
+ static description = `Failed to get permission: {message}`;
2282
2460
  }
2283
- class LogsFailedError extends Error {
2461
+ class UpdatePermissionFailedError extends Error {
2284
2462
  constructor(body) {
2285
2463
  super(
2286
- `LOGS_FAILED: ${body.message}`
2464
+ `UPDATE_PERMISSION_FAILED: ${body.message}`
2287
2465
  );
2288
2466
  this.body = body;
2289
- this.name = "LogsFailedError";
2467
+ this.name = "UpdatePermissionFailedError";
2290
2468
  }
2291
- static code = "LOGS_FAILED";
2469
+ static code = "UPDATE_PERMISSION_FAILED";
2292
2470
  static statusCode = 500;
2293
- static description = `Failed to get logs: {message}`;
2471
+ static description = `Failed to update permission: {message}`;
2294
2472
  }
2295
- class StatusFailedError extends Error {
2473
+ class RevokePermissionFailedError extends Error {
2296
2474
  constructor(body) {
2297
2475
  super(
2298
- `STATUS_FAILED: ${body.message}`
2476
+ `REVOKE_PERMISSION_FAILED: ${body.message}`
2299
2477
  );
2300
2478
  this.body = body;
2301
- this.name = "StatusFailedError";
2479
+ this.name = "RevokePermissionFailedError";
2302
2480
  }
2303
- static code = "STATUS_FAILED";
2481
+ static code = "REVOKE_PERMISSION_FAILED";
2304
2482
  static statusCode = 500;
2305
- static description = `Failed to get dev server status: {message}`;
2483
+ static description = `Failed to revoke permission: {message}`;
2306
2484
  }
2307
- class RestartFailedError extends Error {
2485
+ class GrantPermissionFailedError extends Error {
2308
2486
  constructor(body) {
2309
2487
  super(
2310
- `RESTART_FAILED: ${body.message}`
2488
+ `GRANT_PERMISSION_FAILED: ${body.message}`
2311
2489
  );
2312
2490
  this.body = body;
2313
- this.name = "RestartFailedError";
2491
+ this.name = "GrantPermissionFailedError";
2314
2492
  }
2315
- static code = "RESTART_FAILED";
2493
+ static code = "GRANT_PERMISSION_FAILED";
2316
2494
  static statusCode = 500;
2317
- static description = `Failed to restart dev server: {message}`;
2495
+ static description = `Failed to grant permission: {message}`;
2318
2496
  }
2319
- class ShutdownFailedError extends Error {
2497
+ class ListIdentitiesFailedError extends Error {
2320
2498
  constructor(body) {
2321
2499
  super(
2322
- `SHUTDOWN_FAILED: ${body.message}`
2500
+ `LIST_IDENTITIES_FAILED: ${body.message}`
2323
2501
  );
2324
2502
  this.body = body;
2325
- this.name = "ShutdownFailedError";
2503
+ this.name = "ListIdentitiesFailedError";
2326
2504
  }
2327
- static code = "SHUTDOWN_FAILED";
2505
+ static code = "LIST_IDENTITIES_FAILED";
2328
2506
  static statusCode = 500;
2329
- static description = `Failed to shutdown dev server: {message}`;
2507
+ static description = `Failed to list identities: {message}`;
2330
2508
  }
2331
- class CommitFailedError extends Error {
2509
+ class DeleteIdentityFailedError extends Error {
2332
2510
  constructor(body) {
2333
2511
  super(
2334
- `COMMIT_FAILED: ${body.message}`
2512
+ `DELETE_IDENTITY_FAILED: ${body.message}`
2335
2513
  );
2336
2514
  this.body = body;
2337
- this.name = "CommitFailedError";
2515
+ this.name = "DeleteIdentityFailedError";
2338
2516
  }
2339
- static code = "COMMIT_FAILED";
2517
+ static code = "DELETE_IDENTITY_FAILED";
2340
2518
  static statusCode = 500;
2341
- static description = `Failed to commit changes: {message}`;
2519
+ static description = `Failed to delete identity: {message}`;
2342
2520
  }
2343
- class WriteFileFailedError extends Error {
2521
+ class CreateIdentityFailedError extends Error {
2344
2522
  constructor(body) {
2345
2523
  super(
2346
- `WRITE_FILE_FAILED: ${body.message}`
2524
+ `CREATE_IDENTITY_FAILED: ${body.message}`
2347
2525
  );
2348
2526
  this.body = body;
2349
- this.name = "WriteFileFailedError";
2527
+ this.name = "CreateIdentityFailedError";
2350
2528
  }
2351
- static code = "WRITE_FILE_FAILED";
2529
+ static code = "CREATE_IDENTITY_FAILED";
2352
2530
  static statusCode = 500;
2353
- static description = `Failed to write file: {message}`;
2531
+ static description = `Failed to create identity: {message}`;
2354
2532
  }
2355
- class ReadFileFailedError extends Error {
2533
+ class VmPermissionNotFoundError extends Error {
2356
2534
  constructor(body) {
2357
2535
  super(
2358
- `READ_FILE_FAILED: ${body.message}`
2536
+ `VM_PERMISSION_NOT_FOUND: ${body.message}`
2359
2537
  );
2360
2538
  this.body = body;
2361
- this.name = "ReadFileFailedError";
2539
+ this.name = "VmPermissionNotFoundError";
2362
2540
  }
2363
- static code = "READ_FILE_FAILED";
2364
- static statusCode = 500;
2365
- static description = `Failed to read file: {message}`;
2541
+ static code = "VM_PERMISSION_NOT_FOUND";
2542
+ static statusCode = 404;
2543
+ static description = `VM permission not found`;
2366
2544
  }
2367
- class ExecutionFailedError extends Error {
2545
+ class PermissionNotFoundError extends Error {
2368
2546
  constructor(body) {
2369
2547
  super(
2370
- `EXECUTION_FAILED: ${body.message}`
2548
+ `PERMISSION_NOT_FOUND: ${body.message}`
2371
2549
  );
2372
2550
  this.body = body;
2373
- this.name = "ExecutionFailedError";
2551
+ this.name = "PermissionNotFoundError";
2374
2552
  }
2375
- static code = "EXECUTION_FAILED";
2376
- static statusCode = 500;
2377
- static description = `Failed to execute command: {message}`;
2553
+ static code = "PERMISSION_NOT_FOUND";
2554
+ static statusCode = 404;
2555
+ static description = `Permission not found`;
2378
2556
  }
2379
- class RequestFailedError extends Error {
2557
+ class GitRepositoryAccessDeniedError extends Error {
2380
2558
  constructor(body) {
2381
2559
  super(
2382
- `REQUEST_FAILED: ${body.message}`
2560
+ `GIT_REPOSITORY_ACCESS_DENIED: ${body.message}`
2383
2561
  );
2384
2562
  this.body = body;
2385
- this.name = "RequestFailedError";
2563
+ this.name = "GitRepositoryAccessDeniedError";
2386
2564
  }
2387
- static code = "REQUEST_FAILED";
2388
- static statusCode = 500;
2389
- static description = `Failed to request dev server: {message}`;
2565
+ static code = "GIT_REPOSITORY_ACCESS_DENIED";
2566
+ static statusCode = 403;
2567
+ static description = `You are not allowed to access this repository`;
2390
2568
  }
2391
- class DevServerFileNotFoundError extends Error {
2569
+ class GitRepositoryNotFoundError extends Error {
2392
2570
  constructor(body) {
2393
2571
  super(
2394
- `DEV_SERVER_FILE_NOT_FOUND: ${body.message}`
2572
+ `GIT_REPOSITORY_NOT_FOUND: ${body.message}`
2395
2573
  );
2396
2574
  this.body = body;
2397
- this.name = "DevServerFileNotFoundError";
2575
+ this.name = "GitRepositoryNotFoundError";
2398
2576
  }
2399
- static code = "DEV_SERVER_FILE_NOT_FOUND";
2577
+ static code = "GIT_REPOSITORY_NOT_FOUND";
2400
2578
  static statusCode = 404;
2401
- static description = `Dev server file not found: {path}`;
2579
+ static description = `Repository not found`;
2402
2580
  }
2403
- class DevServerInvalidRequestError extends Error {
2581
+ class CannotDeleteManagedIdentityError extends Error {
2404
2582
  constructor(body) {
2405
2583
  super(
2406
- `DEV_SERVER_INVALID_REQUEST: ${body.message}`
2584
+ `CANNOT_DELETE_MANAGED_IDENTITY: ${body.message}`
2407
2585
  );
2408
2586
  this.body = body;
2409
- this.name = "DevServerInvalidRequestError";
2587
+ this.name = "CannotDeleteManagedIdentityError";
2410
2588
  }
2411
- static code = "DEV_SERVER_INVALID_REQUEST";
2412
- static statusCode = 400;
2413
- static description = `Invalid dev server request: {message}`;
2589
+ static code = "CANNOT_DELETE_MANAGED_IDENTITY";
2590
+ static statusCode = 403;
2591
+ static description = `Cannot delete managed identities`;
2414
2592
  }
2415
- class EmptyTagError extends Error {
2593
+ class CannotModifyManagedIdentityError extends Error {
2416
2594
  constructor(body) {
2417
2595
  super(
2418
- `EMPTY_TAG: ${body.message}`
2596
+ `CANNOT_MODIFY_MANAGED_IDENTITY: ${body.message}`
2419
2597
  );
2420
2598
  this.body = body;
2421
- this.name = "EmptyTagError";
2599
+ this.name = "CannotModifyManagedIdentityError";
2422
2600
  }
2423
- static code = "EMPTY_TAG";
2424
- static statusCode = 400;
2425
- static description = `Invalid request: tag cannot be empty`;
2601
+ static code = "CANNOT_MODIFY_MANAGED_IDENTITY";
2602
+ static statusCode = 403;
2603
+ static description = `Cannot modify managed identities`;
2426
2604
  }
2427
- class BranchNameEmptyError extends Error {
2605
+ class IdentityAccessDeniedError extends Error {
2428
2606
  constructor(body) {
2429
2607
  super(
2430
- `BRANCH_NAME_EMPTY: ${body.message}`
2608
+ `IDENTITY_ACCESS_DENIED: ${body.message}`
2431
2609
  );
2432
2610
  this.body = body;
2433
- this.name = "BranchNameEmptyError";
2611
+ this.name = "IdentityAccessDeniedError";
2434
2612
  }
2435
- static code = "BRANCH_NAME_EMPTY";
2436
- static statusCode = 400;
2437
- static description = `Branch name cannot be empty`;
2613
+ static code = "IDENTITY_ACCESS_DENIED";
2614
+ static statusCode = 403;
2615
+ static description = `You are not allowed to access this identity`;
2438
2616
  }
2439
- class ResizeFailedError extends Error {
2617
+ class IdentityNotFoundError extends Error {
2440
2618
  constructor(body) {
2441
2619
  super(
2442
- `RESIZE_FAILED: ${body.message}`
2620
+ `IDENTITY_NOT_FOUND: ${body.message}`
2443
2621
  );
2444
2622
  this.body = body;
2445
- this.name = "ResizeFailedError";
2623
+ this.name = "IdentityNotFoundError";
2446
2624
  }
2447
- static code = "RESIZE_FAILED";
2448
- static statusCode = 500;
2449
- static description = `Failed to resize VM: {message}`;
2625
+ static code = "IDENTITY_NOT_FOUND";
2626
+ static statusCode = 404;
2627
+ static description = `Identity not found`;
2450
2628
  }
2451
- class InternalResizeVmNotFoundError extends Error {
2629
+ class TriggerErrorError extends Error {
2452
2630
  constructor(body) {
2453
2631
  super(
2454
- `INTERNAL_RESIZE_VM_NOT_FOUND: ${body.message}`
2632
+ `TRIGGER_ERROR: ${body.message}`
2455
2633
  );
2456
2634
  this.body = body;
2457
- this.name = "InternalResizeVmNotFoundError";
2635
+ this.name = "TriggerErrorError";
2458
2636
  }
2459
- static code = "INTERNAL_RESIZE_VM_NOT_FOUND";
2460
- static statusCode = 404;
2461
- static description = `VM not found`;
2637
+ static code = "TRIGGER_ERROR";
2638
+ static statusCode = 500;
2639
+ static description = `Failed to manage triggers: {message}`;
2462
2640
  }
2463
- class ObservabilityDatabaseErrorError extends Error {
2641
+ class TokenErrorError extends Error {
2464
2642
  constructor(body) {
2465
2643
  super(
2466
- `OBSERVABILITY_DATABASE_ERROR: ${body.message}`
2644
+ `TOKEN_ERROR: ${body.message}`
2467
2645
  );
2468
2646
  this.body = body;
2469
- this.name = "ObservabilityDatabaseErrorError";
2647
+ this.name = "TokenErrorError";
2470
2648
  }
2471
- static code = "OBSERVABILITY_DATABASE_ERROR";
2649
+ static code = "TOKEN_ERROR";
2472
2650
  static statusCode = 500;
2473
- static description = `Database operation failed: {message}`;
2651
+ static description = `Failed to manage tokens: {message}`;
2474
2652
  }
2475
- class ObservabilityAccessDeniedError extends Error {
2653
+ class PermissionErrorError extends Error {
2476
2654
  constructor(body) {
2477
2655
  super(
2478
- `OBSERVABILITY_ACCESS_DENIED: ${body.message}`
2656
+ `PERMISSION_ERROR: ${body.message}`
2479
2657
  );
2480
2658
  this.body = body;
2481
- this.name = "ObservabilityAccessDeniedError";
2659
+ this.name = "PermissionErrorError";
2482
2660
  }
2483
- static code = "OBSERVABILITY_ACCESS_DENIED";
2484
- static statusCode = 403;
2485
- static description = `Access denied to logs for deployment: {deployment_id}`;
2661
+ static code = "PERMISSION_ERROR";
2662
+ static statusCode = 500;
2663
+ static description = `Failed to manage permissions: {message}`;
2486
2664
  }
2487
- class ParseLogsFailedError extends Error {
2665
+ class IdentityErrorError extends Error {
2488
2666
  constructor(body) {
2489
2667
  super(
2490
- `PARSE_LOGS_FAILED: ${body.message}`
2668
+ `IDENTITY_ERROR: ${body.message}`
2491
2669
  );
2492
2670
  this.body = body;
2493
- this.name = "ParseLogsFailedError";
2671
+ this.name = "IdentityErrorError";
2494
2672
  }
2495
- static code = "PARSE_LOGS_FAILED";
2673
+ static code = "IDENTITY_ERROR";
2496
2674
  static statusCode = 500;
2497
- static description = `Failed to parse logs: {message}`;
2675
+ static description = `Failed to manage identity: {message}`;
2498
2676
  }
2499
- class RetrieveLogsFailedError extends Error {
2677
+ class GetContentFailedError extends Error {
2500
2678
  constructor(body) {
2501
2679
  super(
2502
- `RETRIEVE_LOGS_FAILED: ${body.message}`
2680
+ `GET_CONTENT_FAILED: ${body.message}`
2503
2681
  );
2504
2682
  this.body = body;
2505
- this.name = "RetrieveLogsFailedError";
2683
+ this.name = "GetContentFailedError";
2506
2684
  }
2507
- static code = "RETRIEVE_LOGS_FAILED";
2685
+ static code = "GET_CONTENT_FAILED";
2508
2686
  static statusCode = 500;
2509
- static description = `Failed to retrieve logs: {message}`;
2687
+ static description = `Failed to get content: {message}`;
2510
2688
  }
2511
- class InvalidQueryError extends Error {
2689
+ class ContentNotFoundError extends Error {
2512
2690
  constructor(body) {
2513
2691
  super(
2514
- `INVALID_QUERY: ${body.message}`
2692
+ `CONTENT_NOT_FOUND: ${body.message}`
2515
2693
  );
2516
2694
  this.body = body;
2517
- this.name = "InvalidQueryError";
2695
+ this.name = "ContentNotFoundError";
2518
2696
  }
2519
- static code = "INVALID_QUERY";
2520
- static statusCode = 400;
2521
- static description = `Invalid log query: {message}`;
2697
+ static code = "CONTENT_NOT_FOUND";
2698
+ static statusCode = 404;
2699
+ static description = `Content not found: {path}`;
2522
2700
  }
2523
- class LogsNotFoundError extends Error {
2701
+ class DownloadFailedError extends Error {
2524
2702
  constructor(body) {
2525
2703
  super(
2526
- `LOGS_NOT_FOUND: ${body.message}`
2704
+ `DOWNLOAD_FAILED: ${body.message}`
2527
2705
  );
2528
2706
  this.body = body;
2529
- this.name = "LogsNotFoundError";
2707
+ this.name = "DownloadFailedError";
2530
2708
  }
2531
- static code = "LOGS_NOT_FOUND";
2532
- static statusCode = 404;
2533
- static description = `Logs not found for deployment: {deployment_id}`;
2709
+ static code = "DOWNLOAD_FAILED";
2710
+ static statusCode = 500;
2711
+ static description = `Failed to download repository: {message}`;
2534
2712
  }
2535
- class FailedToProvisionCertificateError extends Error {
2713
+ class GitServerErrorError extends Error {
2536
2714
  constructor(body) {
2537
2715
  super(
2538
- `FAILED_TO_PROVISION_CERTIFICATE: ${body.message}`
2716
+ `GIT_SERVER_ERROR: ${body.message}`
2539
2717
  );
2540
2718
  this.body = body;
2541
- this.name = "FailedToProvisionCertificateError";
2719
+ this.name = "GitServerErrorError";
2542
2720
  }
2543
- static code = "FAILED_TO_PROVISION_CERTIFICATE";
2544
- static statusCode = 422;
2545
- static description = `Failed to provision certificate: {message}`;
2721
+ static code = "GIT_SERVER_ERROR";
2722
+ static statusCode = 500;
2723
+ static description = `Git server error: {message}`;
2546
2724
  }
2547
- class FailedToInsertDomainMappingError extends Error {
2725
+ class ParseResponseErrorError extends Error {
2548
2726
  constructor(body) {
2549
2727
  super(
2550
- `FAILED_TO_INSERT_DOMAIN_MAPPING: ${body.message}`
2728
+ `PARSE_RESPONSE_ERROR: ${body.message}`
2551
2729
  );
2552
2730
  this.body = body;
2553
- this.name = "FailedToInsertDomainMappingError";
2731
+ this.name = "ParseResponseErrorError";
2554
2732
  }
2555
- static code = "FAILED_TO_INSERT_DOMAIN_MAPPING";
2733
+ static code = "PARSE_RESPONSE_ERROR";
2556
2734
  static statusCode = 500;
2557
- static description = `Failed to insert domain mapping: {message}`;
2735
+ static description = `Failed to parse response from Git server: {message}`;
2558
2736
  }
2559
- class PermissionDeniedError extends Error {
2737
+ class RepositoryAccessDeniedError extends Error {
2560
2738
  constructor(body) {
2561
2739
  super(
2562
- `PERMISSION_DENIED: ${body.message}`
2740
+ `REPOSITORY_ACCESS_DENIED: ${body.message}`
2563
2741
  );
2564
2742
  this.body = body;
2565
- this.name = "PermissionDeniedError";
2743
+ this.name = "RepositoryAccessDeniedError";
2566
2744
  }
2567
- static code = "PERMISSION_DENIED";
2568
- static statusCode = 401;
2569
- static description = `Permission denied: {message}`;
2745
+ static code = "REPOSITORY_ACCESS_DENIED";
2746
+ static statusCode = 403;
2747
+ static description = `Repository does not belong to account`;
2570
2748
  }
2571
- class FailedToCheckPermissionsError extends Error {
2749
+ class GitHubSyncFailedError extends Error {
2572
2750
  constructor(body) {
2573
2751
  super(
2574
- `FAILED_TO_CHECK_PERMISSIONS: ${body.message}`
2752
+ `GIT_HUB_SYNC_FAILED: ${body.message}`
2575
2753
  );
2576
2754
  this.body = body;
2577
- this.name = "FailedToCheckPermissionsError";
2755
+ this.name = "GitHubSyncFailedError";
2578
2756
  }
2579
- static code = "FAILED_TO_CHECK_PERMISSIONS";
2580
- static statusCode = 502;
2581
- static description = `Failed to check permissions: {message}`;
2757
+ static code = "GIT_HUB_SYNC_FAILED";
2758
+ static statusCode = 500;
2759
+ static description = `Failed to configure GitHub sync: {message}`;
2582
2760
  }
2583
- class FailedToListDomainsError extends Error {
2761
+ class UpdateDefaultBranchFailedError extends Error {
2584
2762
  constructor(body) {
2585
2763
  super(
2586
- `FAILED_TO_LIST_DOMAINS: ${body.message}`
2764
+ `UPDATE_DEFAULT_BRANCH_FAILED: ${body.message}`
2587
2765
  );
2588
2766
  this.body = body;
2589
- this.name = "FailedToListDomainsError";
2767
+ this.name = "UpdateDefaultBranchFailedError";
2590
2768
  }
2591
- static code = "FAILED_TO_LIST_DOMAINS";
2769
+ static code = "UPDATE_DEFAULT_BRANCH_FAILED";
2592
2770
  static statusCode = 500;
2593
- static description = `Failed to list domains: {message}`;
2771
+ static description = `Failed to update default branch: {message}`;
2594
2772
  }
2595
- class FailedToListVerificationsError extends Error {
2773
+ class GetRepositoryInfoFailedError extends Error {
2596
2774
  constructor(body) {
2597
2775
  super(
2598
- `FAILED_TO_LIST_VERIFICATIONS: ${body.message}`
2776
+ `GET_REPOSITORY_INFO_FAILED: ${body.message}`
2599
2777
  );
2600
2778
  this.body = body;
2601
- this.name = "FailedToListVerificationsError";
2779
+ this.name = "GetRepositoryInfoFailedError";
2602
2780
  }
2603
- static code = "FAILED_TO_LIST_VERIFICATIONS";
2781
+ static code = "GET_REPOSITORY_INFO_FAILED";
2604
2782
  static statusCode = 500;
2605
- static description = `Failed to list verifications: {message}`;
2783
+ static description = `Failed to get repository info: {message}`;
2606
2784
  }
2607
- class FailedToVerifyDomainError extends Error {
2785
+ class ListRepositoriesFailedError extends Error {
2608
2786
  constructor(body) {
2609
2787
  super(
2610
- `FAILED_TO_VERIFY_DOMAIN: ${body.message}`
2788
+ `LIST_REPOSITORIES_FAILED: ${body.message}`
2611
2789
  );
2612
2790
  this.body = body;
2613
- this.name = "FailedToVerifyDomainError";
2791
+ this.name = "ListRepositoriesFailedError";
2614
2792
  }
2615
- static code = "FAILED_TO_VERIFY_DOMAIN";
2793
+ static code = "LIST_REPOSITORIES_FAILED";
2616
2794
  static statusCode = 500;
2617
- static description = `Failed to verify domain: {message}`;
2795
+ static description = `Failed to list repositories: {message}`;
2618
2796
  }
2619
- class VerificationFailedError extends Error {
2797
+ class DeleteRepositoryFailedError extends Error {
2620
2798
  constructor(body) {
2621
2799
  super(
2622
- `VERIFICATION_FAILED: ${body.message}`
2800
+ `DELETE_REPOSITORY_FAILED: ${body.message}`
2623
2801
  );
2624
2802
  this.body = body;
2625
- this.name = "VerificationFailedError";
2803
+ this.name = "DeleteRepositoryFailedError";
2626
2804
  }
2627
- static code = "VERIFICATION_FAILED";
2805
+ static code = "DELETE_REPOSITORY_FAILED";
2806
+ static statusCode = 500;
2807
+ static description = `Failed to delete repository: {message}`;
2808
+ }
2809
+ class CreateRepositoryFailedError extends Error {
2810
+ constructor(body) {
2811
+ super(
2812
+ `CREATE_REPOSITORY_FAILED: ${body.message}`
2813
+ );
2814
+ this.body = body;
2815
+ this.name = "CreateRepositoryFailedError";
2816
+ }
2817
+ static code = "CREATE_REPOSITORY_FAILED";
2818
+ static statusCode = 500;
2819
+ static description = `Failed to create repository: {message}`;
2820
+ }
2821
+ class SerializationErrorError extends Error {
2822
+ constructor(body) {
2823
+ super(
2824
+ `SERIALIZATION_ERROR: ${body.message}`
2825
+ );
2826
+ this.body = body;
2827
+ this.name = "SerializationErrorError";
2828
+ }
2829
+ static code = "SERIALIZATION_ERROR";
2628
2830
  static statusCode = 400;
2629
- static description = `Domain verification failed: {message}`;
2831
+ static description = `Failed to serialize request: {message}`;
2630
2832
  }
2631
- class FailedToDeleteVerificationError extends Error {
2833
+ class GitInvalidRequestError extends Error {
2632
2834
  constructor(body) {
2633
2835
  super(
2634
- `FAILED_TO_DELETE_VERIFICATION: ${body.message}`
2836
+ `GIT_INVALID_REQUEST: ${body.message}`
2635
2837
  );
2636
2838
  this.body = body;
2637
- this.name = "FailedToDeleteVerificationError";
2839
+ this.name = "GitInvalidRequestError";
2638
2840
  }
2639
- static code = "FAILED_TO_DELETE_VERIFICATION";
2841
+ static code = "GIT_INVALID_REQUEST";
2640
2842
  static statusCode = 400;
2641
- static description = `Failed to delete verification: {message}`;
2843
+ static description = `Invalid request: {message}`;
2642
2844
  }
2643
- class VerificationNotFoundError extends Error {
2845
+ class RepositoryNotFoundError extends Error {
2644
2846
  constructor(body) {
2645
2847
  super(
2646
- `VERIFICATION_NOT_FOUND: ${body.message}`
2848
+ `REPOSITORY_NOT_FOUND: ${body.message}`
2647
2849
  );
2648
2850
  this.body = body;
2649
- this.name = "VerificationNotFoundError";
2851
+ this.name = "RepositoryNotFoundError";
2650
2852
  }
2651
- static code = "VERIFICATION_NOT_FOUND";
2853
+ static code = "REPOSITORY_NOT_FOUND";
2652
2854
  static statusCode = 404;
2653
- static description = `Verification request not found for domain: {domain}`;
2855
+ static description = `Repository not found: {repo_id}`;
2654
2856
  }
2655
- class FailedToCreateVerificationCodeError extends Error {
2857
+ class BrowserOperationFailedError extends Error {
2656
2858
  constructor(body) {
2657
2859
  super(
2658
- `FAILED_TO_CREATE_VERIFICATION_CODE: ${body.message}`
2860
+ `BROWSER_OPERATION_FAILED: ${body.message}`
2659
2861
  );
2660
2862
  this.body = body;
2661
- this.name = "FailedToCreateVerificationCodeError";
2863
+ this.name = "BrowserOperationFailedError";
2662
2864
  }
2663
- static code = "FAILED_TO_CREATE_VERIFICATION_CODE";
2664
- static statusCode = 400;
2665
- static description = `Failed to create verification code: {message}`;
2865
+ static code = "BROWSER_OPERATION_FAILED";
2866
+ static statusCode = 500;
2867
+ static description = `Browser operation failed: {message}`;
2666
2868
  }
2667
- class InvalidDomainError extends Error {
2869
+ class WatchFilesFailedError extends Error {
2668
2870
  constructor(body) {
2669
2871
  super(
2670
- `INVALID_DOMAIN: ${body.message}`
2872
+ `WATCH_FILES_FAILED: ${body.message}`
2671
2873
  );
2672
2874
  this.body = body;
2673
- this.name = "InvalidDomainError";
2875
+ this.name = "WatchFilesFailedError";
2674
2876
  }
2675
- static code = "INVALID_DOMAIN";
2676
- static statusCode = 400;
2677
- static description = `Invalid domain: {domain}`;
2877
+ static code = "WATCH_FILES_FAILED";
2878
+ static statusCode = 500;
2879
+ static description = `Failed to watch files: {message}`;
2678
2880
  }
2679
- class DomainOwnershipNotVerifiedError extends Error {
2881
+ class LogsFailedError extends Error {
2680
2882
  constructor(body) {
2681
2883
  super(
2682
- `DOMAIN_OWNERSHIP_NOT_VERIFIED: ${body.message}`
2884
+ `LOGS_FAILED: ${body.message}`
2683
2885
  );
2684
2886
  this.body = body;
2685
- this.name = "DomainOwnershipNotVerifiedError";
2887
+ this.name = "LogsFailedError";
2686
2888
  }
2687
- static code = "DOMAIN_OWNERSHIP_NOT_VERIFIED";
2688
- static statusCode = 401;
2689
- static description = `You have not verified ownership of domain: {domain}`;
2889
+ static code = "LOGS_FAILED";
2890
+ static statusCode = 500;
2891
+ static description = `Failed to get logs: {message}`;
2690
2892
  }
2691
- class VmAccessDeniedForMappingError extends Error {
2893
+ class StatusFailedError extends Error {
2692
2894
  constructor(body) {
2693
2895
  super(
2694
- `VM_ACCESS_DENIED_FOR_MAPPING: ${body.message}`
2896
+ `STATUS_FAILED: ${body.message}`
2695
2897
  );
2696
2898
  this.body = body;
2697
- this.name = "VmAccessDeniedForMappingError";
2899
+ this.name = "StatusFailedError";
2698
2900
  }
2699
- static code = "VM_ACCESS_DENIED_FOR_MAPPING";
2700
- static statusCode = 401;
2701
- static description = `You do not have permission to map to this VM: {vm_id}`;
2901
+ static code = "STATUS_FAILED";
2902
+ static statusCode = 500;
2903
+ static description = `Failed to get dev server status: {message}`;
2702
2904
  }
2703
- class DeploymentAccessDeniedError extends Error {
2905
+ class RestartFailedError extends Error {
2704
2906
  constructor(body) {
2705
2907
  super(
2706
- `DEPLOYMENT_ACCESS_DENIED: ${body.message}`
2908
+ `RESTART_FAILED: ${body.message}`
2707
2909
  );
2708
2910
  this.body = body;
2709
- this.name = "DeploymentAccessDeniedError";
2911
+ this.name = "RestartFailedError";
2710
2912
  }
2711
- static code = "DEPLOYMENT_ACCESS_DENIED";
2712
- static statusCode = 401;
2713
- static description = `You do not have permission to map to this deployment: {deployment_id}`;
2913
+ static code = "RESTART_FAILED";
2914
+ static statusCode = 500;
2915
+ static description = `Failed to restart dev server: {message}`;
2714
2916
  }
2715
- class FailedToProvisionCertificateForMappingError extends Error {
2917
+ class ShutdownFailedError extends Error {
2716
2918
  constructor(body) {
2717
2919
  super(
2718
- `FAILED_TO_PROVISION_CERTIFICATE_FOR_MAPPING: ${body.message}`
2920
+ `SHUTDOWN_FAILED: ${body.message}`
2719
2921
  );
2720
2922
  this.body = body;
2721
- this.name = "FailedToProvisionCertificateForMappingError";
2923
+ this.name = "ShutdownFailedError";
2722
2924
  }
2723
- static code = "FAILED_TO_PROVISION_CERTIFICATE_FOR_MAPPING";
2724
- static statusCode = 422;
2725
- static description = `Failed to provision certificate for mapping: {message}`;
2925
+ static code = "SHUTDOWN_FAILED";
2926
+ static statusCode = 500;
2927
+ static description = `Failed to shutdown dev server: {message}`;
2726
2928
  }
2727
- class FailedInsertDomainMappingError extends Error {
2929
+ class CommitFailedError extends Error {
2728
2930
  constructor(body) {
2729
2931
  super(
2730
- `FAILED_INSERT_DOMAIN_MAPPING: ${body.message}`
2932
+ `COMMIT_FAILED: ${body.message}`
2731
2933
  );
2732
2934
  this.body = body;
2733
- this.name = "FailedInsertDomainMappingError";
2935
+ this.name = "CommitFailedError";
2734
2936
  }
2735
- static code = "FAILED_INSERT_DOMAIN_MAPPING";
2937
+ static code = "COMMIT_FAILED";
2736
2938
  static statusCode = 500;
2737
- static description = `Failed to insert domain mapping: {message}`;
2939
+ static description = `Failed to commit changes: {message}`;
2738
2940
  }
2739
- class DomainAlreadyExistsError extends Error {
2941
+ class WriteFileFailedError extends Error {
2740
2942
  constructor(body) {
2741
2943
  super(
2742
- `DOMAIN_ALREADY_EXISTS: ${body.message}`
2944
+ `WRITE_FILE_FAILED: ${body.message}`
2743
2945
  );
2744
2946
  this.body = body;
2745
- this.name = "DomainAlreadyExistsError";
2947
+ this.name = "WriteFileFailedError";
2746
2948
  }
2747
- static code = "DOMAIN_ALREADY_EXISTS";
2748
- static statusCode = 400;
2749
- static description = `Domain already exists: {domain}`;
2949
+ static code = "WRITE_FILE_FAILED";
2950
+ static statusCode = 500;
2951
+ static description = `Failed to write file: {message}`;
2750
2952
  }
2751
- class FailedToInsertOwnershipError extends Error {
2953
+ class ReadFileFailedError extends Error {
2752
2954
  constructor(body) {
2753
2955
  super(
2754
- `FAILED_TO_INSERT_OWNERSHIP: ${body.message}`
2956
+ `READ_FILE_FAILED: ${body.message}`
2755
2957
  );
2756
2958
  this.body = body;
2757
- this.name = "FailedToInsertOwnershipError";
2959
+ this.name = "ReadFileFailedError";
2758
2960
  }
2759
- static code = "FAILED_TO_INSERT_OWNERSHIP";
2961
+ static code = "READ_FILE_FAILED";
2760
2962
  static statusCode = 500;
2761
- static description = `Failed to insert domain ownership: {message}`;
2963
+ static description = `Failed to read file: {message}`;
2762
2964
  }
2763
- class FailedRemoveDomainMappingError extends Error {
2965
+ class ExecutionFailedError extends Error {
2764
2966
  constructor(body) {
2765
2967
  super(
2766
- `FAILED_REMOVE_DOMAIN_MAPPING: ${body.message}`
2968
+ `EXECUTION_FAILED: ${body.message}`
2767
2969
  );
2768
2970
  this.body = body;
2769
- this.name = "FailedRemoveDomainMappingError";
2971
+ this.name = "ExecutionFailedError";
2770
2972
  }
2771
- static code = "FAILED_REMOVE_DOMAIN_MAPPING";
2973
+ static code = "EXECUTION_FAILED";
2772
2974
  static statusCode = 500;
2773
- static description = `Failed to remove domain mapping: {message}`;
2975
+ static description = `Failed to execute command: {message}`;
2774
2976
  }
2775
- class FailedPermissionsCheckError extends Error {
2977
+ class RequestFailedError extends Error {
2776
2978
  constructor(body) {
2777
2979
  super(
2778
- `FAILED_PERMISSIONS_CHECK: ${body.message}`
2980
+ `REQUEST_FAILED: ${body.message}`
2779
2981
  );
2780
2982
  this.body = body;
2781
- this.name = "FailedPermissionsCheckError";
2983
+ this.name = "RequestFailedError";
2782
2984
  }
2783
- static code = "FAILED_PERMISSIONS_CHECK";
2784
- static statusCode = 401;
2785
- static description = `You do not have permission to delete the domain mapping for: {domain}`;
2985
+ static code = "REQUEST_FAILED";
2986
+ static statusCode = 500;
2987
+ static description = `Failed to request dev server: {message}`;
2786
2988
  }
2787
- class FailedToCheckDomainMappingPermissionsError extends Error {
2989
+ class DevServerFileNotFoundError extends Error {
2788
2990
  constructor(body) {
2789
2991
  super(
2790
- `FAILED_TO_CHECK_DOMAIN_MAPPING_PERMISSIONS: ${body.message}`
2992
+ `DEV_SERVER_FILE_NOT_FOUND: ${body.message}`
2791
2993
  );
2792
2994
  this.body = body;
2793
- this.name = "FailedToCheckDomainMappingPermissionsError";
2995
+ this.name = "DevServerFileNotFoundError";
2794
2996
  }
2795
- static code = "FAILED_TO_CHECK_DOMAIN_MAPPING_PERMISSIONS";
2796
- static statusCode = 502;
2797
- static description = `Failed to check permissions: {message}`;
2997
+ static code = "DEV_SERVER_FILE_NOT_FOUND";
2998
+ static statusCode = 404;
2999
+ static description = `Dev server file not found: {path}`;
2798
3000
  }
2799
- class DomainOwnershipVerificationFailedError extends Error {
3001
+ class DevServerInvalidRequestError extends Error {
2800
3002
  constructor(body) {
2801
3003
  super(
2802
- `DOMAIN_OWNERSHIP_VERIFICATION_FAILED: ${body.message}`
3004
+ `DEV_SERVER_INVALID_REQUEST: ${body.message}`
2803
3005
  );
2804
3006
  this.body = body;
2805
- this.name = "DomainOwnershipVerificationFailedError";
3007
+ this.name = "DevServerInvalidRequestError";
2806
3008
  }
2807
- static code = "DOMAIN_OWNERSHIP_VERIFICATION_FAILED";
2808
- static statusCode = 403;
2809
- static description = `Domain ownership verification failed`;
3009
+ static code = "DEV_SERVER_INVALID_REQUEST";
3010
+ static statusCode = 400;
3011
+ static description = `Invalid dev server request: {message}`;
2810
3012
  }
2811
- class ErrorDeletingRecordError extends Error {
3013
+ class ScheduleNotFoundError extends Error {
2812
3014
  constructor(body) {
2813
3015
  super(
2814
- `ERROR_DELETING_RECORD: ${body.message}`
3016
+ `SCHEDULE_NOT_FOUND: ${body.message}`
2815
3017
  );
2816
3018
  this.body = body;
2817
- this.name = "ErrorDeletingRecordError";
3019
+ this.name = "ScheduleNotFoundError";
2818
3020
  }
2819
- static code = "ERROR_DELETING_RECORD";
2820
- static statusCode = 500;
2821
- static description = `Error deleting DNS record for {domain}/{name}: {message}`;
3021
+ static code = "SCHEDULE_NOT_FOUND";
3022
+ static statusCode = 404;
3023
+ static description = `Schedule not found`;
2822
3024
  }
2823
- class RecordOwnershipErrorError extends Error {
3025
+ class ServiceUnavailableError extends Error {
2824
3026
  constructor(body) {
2825
3027
  super(
2826
- `RECORD_OWNERSHIP_ERROR: ${body.message}`
3028
+ `SERVICE_UNAVAILABLE: ${body.message}`
3029
+ );
3030
+ this.body = body;
3031
+ this.name = "ServiceUnavailableError";
3032
+ }
3033
+ static code = "SERVICE_UNAVAILABLE";
3034
+ static statusCode = 503;
3035
+ static description = `Cron service not configured`;
3036
+ }
3037
+ class GitRepoLimitExceededError extends Error {
3038
+ constructor(body) {
3039
+ super(
3040
+ `GIT_REPO_LIMIT_EXCEEDED: ${body.message}`
3041
+ );
3042
+ this.body = body;
3043
+ this.name = "GitRepoLimitExceededError";
3044
+ }
3045
+ static code = "GIT_REPO_LIMIT_EXCEEDED";
3046
+ static statusCode = 403;
3047
+ static description = `Repository limit exceeded: your plan allows {limit} repositories, you currently have {current}`;
3048
+ }
3049
+ class BranchNameEmptyError extends Error {
3050
+ constructor(body) {
3051
+ super(
3052
+ `BRANCH_NAME_EMPTY: ${body.message}`
2827
3053
  );
2828
3054
  this.body = body;
2829
- this.name = "RecordOwnershipErrorError";
3055
+ this.name = "BranchNameEmptyError";
2830
3056
  }
2831
- static code = "RECORD_OWNERSHIP_ERROR";
2832
- static statusCode = 403;
2833
- static description = `Account {account_id} does not own record {record_id}`;
3057
+ static code = "BRANCH_NAME_EMPTY";
3058
+ static statusCode = 400;
3059
+ static description = `Branch name cannot be empty`;
2834
3060
  }
2835
- class ErrorCreatingRecordError extends Error {
3061
+ class ResizeFailedError extends Error {
2836
3062
  constructor(body) {
2837
3063
  super(
2838
- `ERROR_CREATING_RECORD: ${body.message}`
3064
+ `RESIZE_FAILED: ${body.message}`
2839
3065
  );
2840
3066
  this.body = body;
2841
- this.name = "ErrorCreatingRecordError";
3067
+ this.name = "ResizeFailedError";
2842
3068
  }
2843
- static code = "ERROR_CREATING_RECORD";
3069
+ static code = "RESIZE_FAILED";
2844
3070
  static statusCode = 500;
2845
- static description = `Error creating DNS record: {message}`;
3071
+ static description = `Failed to resize VM: {message}`;
2846
3072
  }
2847
- class DomainOwnershipErrorError extends Error {
3073
+ class InternalResizeVmNotFoundError extends Error {
2848
3074
  constructor(body) {
2849
3075
  super(
2850
- `DOMAIN_OWNERSHIP_ERROR: ${body.message}`
3076
+ `INTERNAL_RESIZE_VM_NOT_FOUND: ${body.message}`
2851
3077
  );
2852
3078
  this.body = body;
2853
- this.name = "DomainOwnershipErrorError";
3079
+ this.name = "InternalResizeVmNotFoundError";
2854
3080
  }
2855
- static code = "DOMAIN_OWNERSHIP_ERROR";
2856
- static statusCode = 403;
2857
- static description = `Account {account_id} does not own domain {domain}`;
3081
+ static code = "INTERNAL_RESIZE_VM_NOT_FOUND";
3082
+ static statusCode = 404;
3083
+ static description = `VM not found`;
2858
3084
  }
2859
3085
  const FREESTYLE_ERROR_CODE_MAP = {
2860
3086
  "GIT_ERROR": GitErrorError,
3087
+ "BAD_PARSE": BadParseError,
3088
+ "BAD_TIMESTAMP": BadTimestampError,
3089
+ "BAD_SIGNATURE": BadSignatureError,
3090
+ "BAD_HEADER": BadHeaderError,
3091
+ "BAD_KEY": BadKeyError,
3092
+ "SNAPSHOT_VM_BAD_REQUEST": SnapshotVmBadRequestError,
3093
+ "RESUMED_VM_NON_RESPONSIVE": ResumedVmNonResponsiveError,
3094
+ "SNAPSHOT_LOAD_TIMEOUT": SnapshotLoadTimeoutError,
3095
+ "UFFD_TIMEOUT_ERROR": UffdTimeoutErrorError,
3096
+ "KERNEL_PANIC": KernelPanicError,
3097
+ "VM_DELETED": VmDeletedError,
3098
+ "REQWEST": ReqwestError,
3099
+ "FIRECRACKER_PID_NOT_FOUND": FirecrackerPidNotFoundError,
3100
+ "FIRECRACKER_API_SOCKET_NOT_FOUND": FirecrackerApiSocketNotFoundError,
3101
+ "INVALID_SNAPSHOT_ID": InvalidSnapshotIdError,
3102
+ "VM_START_TIMEOUT": VmStartTimeoutError,
3103
+ "VM_EXIT_DURING_START": VmExitDuringStartError,
3104
+ "VM_ACCESS_DENIED": VmAccessDeniedError,
3105
+ "STD_IO": StdIoError,
3106
+ "VM_CREATE_TMUX_SESSION": VmCreateTmuxSessionError,
3107
+ "VM_SUBNET_NOT_FOUND": VmSubnetNotFoundError,
3108
+ "VM_MUST_BE_STOPPED": VmMustBeStoppedError,
3109
+ "ALREADY_HAS_BASE": AlreadyHasBaseError,
3110
+ "NOT_FOUND": NotFoundError,
3111
+ "VM_OPERATION_DENIED_DURING_TRANSACTION": VmOperationDeniedDuringTransactionError,
3112
+ "VM_TRANSACTION_ID_MISMATCH": VmTransactionIdMismatchError,
3113
+ "VM_NOT_IN_TRANSACTION": VmNotInTransactionError,
3114
+ "VM_NOT_FOUND_IN_FS": VmNotFoundInFsError,
3115
+ "VM_NOT_RUNNING": VmNotRunningError,
3116
+ "VM_NOT_FOUND": VmNotFoundError,
3117
+ "INTERNAL_FORK_VM_NOT_FOUND": InternalForkVmNotFoundError,
3118
+ "BAD_REQUEST": BadRequestError,
3119
+ "INTERNAL_VM_NOT_FOUND": InternalVmNotFoundError,
3120
+ "DATABASE_ERROR": DatabaseErrorError,
3121
+ "PARTITION_NOT_FOUND": PartitionNotFoundError,
3122
+ "INVALID_VM_ID": InvalidVmIdError,
2861
3123
  "USER_NOT_FOUND": UserNotFoundError,
2862
3124
  "USER_ALREADY_EXISTS": UserAlreadyExistsError,
2863
3125
  "VALIDATION_ERROR": ValidationErrorError,
@@ -2874,40 +3136,20 @@ const FREESTYLE_ERROR_CODE_MAP = {
2874
3136
  "GROUP_NAME_INVALID_CHARS": GroupNameInvalidCharsError,
2875
3137
  "GROUP_NAME_TOO_LONG": GroupNameTooLongError,
2876
3138
  "GROUP_NAME_EMPTY": GroupNameEmptyError,
2877
- "SNAPSHOT_VM_BAD_REQUEST": SnapshotVmBadRequestError,
2878
- "FILE_NOT_FOUND": FileNotFoundError,
2879
- "FILES_BAD_REQUEST": FilesBadRequestError,
2880
- "VM_MUST_BE_STOPPED": VmMustBeStoppedError,
2881
- "ALREADY_HAS_BASE": AlreadyHasBaseError,
2882
- "NOT_FOUND": NotFoundError,
2883
- "VM_NOT_FOUND_IN_FS": VmNotFoundInFsError,
2884
- "DATABASE_ERROR": DatabaseErrorError,
2885
- "PARTITION_NOT_FOUND": PartitionNotFoundError,
2886
- "INVALID_VM_ID": InvalidVmIdError,
2887
3139
  "INVALID_GIT_REPO_SPEC_ERROR": InvalidGitRepoSpecErrorError,
2888
3140
  "INTERNAL_ERROR": InternalErrorError,
2889
3141
  "FORK_VM_NOT_FOUND": ForkVmNotFoundError,
2890
3142
  "CREATE_SNAPSHOT_BAD_REQUEST": CreateSnapshotBadRequestError,
2891
- "VM_NOT_RUNNING": VmNotRunningError,
2892
- "VM_NOT_FOUND": VmNotFoundError,
2893
- "INTERNAL_FORK_VM_NOT_FOUND": InternalForkVmNotFoundError,
2894
- "BAD_REQUEST": BadRequestError,
2895
- "INTERNAL_VM_NOT_FOUND": InternalVmNotFoundError,
2896
- "KERNEL_PANIC": KernelPanicError,
2897
- "VM_DELETED": VmDeletedError,
2898
- "REQWEST": ReqwestError,
2899
- "FIRECRACKER_PID_NOT_FOUND": FirecrackerPidNotFoundError,
2900
- "FIRECRACKER_API_SOCKET_NOT_FOUND": FirecrackerApiSocketNotFoundError,
2901
- "INVALID_SNAPSHOT_ID": InvalidSnapshotIdError,
2902
- "VM_START_TIMEOUT": VmStartTimeoutError,
2903
- "VM_EXIT_DURING_START": VmExitDuringStartError,
2904
- "VM_ACCESS_DENIED": VmAccessDeniedError,
2905
- "STD_IO": StdIoError,
2906
- "VM_CREATE_TMUX_SESSION": VmCreateTmuxSessionError,
2907
- "VM_SUBNET_NOT_FOUND": VmSubnetNotFoundError,
2908
- "VM_OPERATION_DENIED_DURING_TRANSACTION": VmOperationDeniedDuringTransactionError,
2909
- "VM_TRANSACTION_ID_MISMATCH": VmTransactionIdMismatchError,
2910
- "VM_NOT_IN_TRANSACTION": VmNotInTransactionError,
3143
+ "DOCKER_SNAPSHOT_FAILED": DockerSnapshotFailedError,
3144
+ "SET_DEFAULT_SNAPSHOT_FAILED": SetDefaultSnapshotFailedError,
3145
+ "SNAPSHOT_LAYER_CREATION_FAILED": SnapshotLayerCreationFailedError,
3146
+ "SNAPSHOT_DIR_NOT_FOUND": SnapshotDirNotFoundError,
3147
+ "SUBVOLUME_CREATION_FAILED": SubvolumeCreationFailedError,
3148
+ "GET_DEFAULT_SNAPSHOT_FAILED": GetDefaultSnapshotFailedError,
3149
+ "ACTIVE_TRANSACTION_ERROR": ActiveTransactionErrorError,
3150
+ "ROOTFS_COPY_ERROR": RootfsCopyErrorError,
3151
+ "FILE_NOT_FOUND": FileNotFoundError,
3152
+ "FILES_BAD_REQUEST": FilesBadRequestError,
2911
3153
  "CREATE_VM_BAD_REQUEST": CreateVmBadRequestError,
2912
3154
  "WANTED_BY_EMPTY": WantedByEmptyError,
2913
3155
  "WORKDIR_EMPTY": WorkdirEmptyError,
@@ -2935,7 +3177,7 @@ const FREESTYLE_ERROR_CODE_MAP = {
2935
3177
  "INVALID_PARAMETERS": InvalidParametersError,
2936
3178
  "MAX_USES_EXCEEDED": MaxUsesExceededError,
2937
3179
  "EXPIRED": ExpiredError,
2938
- "TAG_NOT_FOUND": TagNotFoundError,
3180
+ "PACKFILE": PackfileError,
2939
3181
  "TREE_NOT_FOUND": TreeNotFoundError,
2940
3182
  "BRANCH_NOT_FOUND": BranchNotFoundError,
2941
3183
  "FORBIDDEN": ForbiddenError,
@@ -2944,15 +3186,6 @@ const FREESTYLE_ERROR_CODE_MAP = {
2944
3186
  "GIT_HUB_SYNC_CONFLICT": GitHubSyncConflictError,
2945
3187
  "INVALID_OBJECT_ID": InvalidObjectIdError,
2946
3188
  "COMMIT_NOT_FOUND": CommitNotFoundError,
2947
- "PACKFILE": PackfileError,
2948
- "SEND_ERROR": SendErrorError,
2949
- "UNSUPPORTED_TRANSFER": UnsupportedTransferError,
2950
- "INVALID_RANGE": InvalidRangeError,
2951
- "OFFSET_WITH_SELECTOR": OffsetWithSelectorError,
2952
- "COMMIT_NOT_IN_BRANCH": CommitNotInBranchError,
2953
- "BLOB_NOT_FOUND": BlobNotFoundError,
2954
- "INVALID_SERVICE": InvalidServiceError,
2955
- "EXPECTED_SERVICE": ExpectedServiceError,
2956
3189
  "PATH_NOT_FOUND": PathNotFoundError,
2957
3190
  "REFERENCE_NOT_FOUND": ReferenceNotFoundError,
2958
3191
  "AMBIGUOUS": AmbiguousError,
@@ -2962,10 +3195,74 @@ const FREESTYLE_ERROR_CODE_MAP = {
2962
3195
  "SOURCE_UNAUTHORIZED": SourceUnauthorizedError,
2963
3196
  "SOURCE_NOT_FOUND": SourceNotFoundError,
2964
3197
  "IMPORT_SUBDIR_NOT_FOUND": ImportSubdirNotFoundError,
2965
- "CONFLICT": ConflictError,
3198
+ "TAG_NOT_FOUND": TagNotFoundError,
3199
+ "UNSUPPORTED_TRANSFER": UnsupportedTransferError,
3200
+ "SEND_ERROR": SendErrorError,
3201
+ "INVALID_SERVICE": InvalidServiceError,
3202
+ "EXPECTED_SERVICE": ExpectedServiceError,
3203
+ "INVALID_RANGE": InvalidRangeError,
3204
+ "OFFSET_WITH_SELECTOR": OffsetWithSelectorError,
3205
+ "COMMIT_NOT_IN_BRANCH": CommitNotInBranchError,
3206
+ "BLOB_NOT_FOUND": BlobNotFoundError,
2966
3207
  "INVALID_REVISION": InvalidRevisionError,
3208
+ "CONFLICT": ConflictError,
2967
3209
  "UNAVAILABLE": UnavailableError,
2968
3210
  "DEV_SERVER_NOT_FOUND": DevServerNotFoundError,
3211
+ "EMPTY_TAG": EmptyTagError,
3212
+ "VM_LIMIT_EXCEEDED": VmLimitExceededError,
3213
+ "DOMAIN_OWNERSHIP_VERIFICATION_FAILED": DomainOwnershipVerificationFailedError,
3214
+ "ERROR_DELETING_RECORD": ErrorDeletingRecordError,
3215
+ "RECORD_OWNERSHIP_ERROR": RecordOwnershipErrorError,
3216
+ "ERROR_CREATING_RECORD": ErrorCreatingRecordError,
3217
+ "DOMAIN_OWNERSHIP_ERROR": DomainOwnershipErrorError,
3218
+ "CLOUDSTATE_INTERNAL_ERROR": CloudstateInternalErrorError,
3219
+ "CLOUDSTATE_DATABASE_ERROR": CloudstateDatabaseErrorError,
3220
+ "CLOUDSTATE_ACCESS_DENIED": CloudstateAccessDeniedError,
3221
+ "RESTORE_FAILED": RestoreFailedError,
3222
+ "CREATE_BACKUP_FAILED": CreateBackupFailedError,
3223
+ "BACKUP_FAILED": BackupFailedError,
3224
+ "DEPLOYMENT_FAILED": DeploymentFailedError,
3225
+ "INVALID_DEPLOYMENT_REQUEST": InvalidDeploymentRequestError,
3226
+ "PROJECT_NOT_FOUND": ProjectNotFoundError,
3227
+ "UNAUTHORIZED_ERROR": UnauthorizedErrorError,
3228
+ "EXECUTE_LIMIT_EXCEEDED": ExecuteLimitExceededError,
3229
+ "EXECUTE_INTERNAL_ERROR": ExecuteInternalErrorError,
3230
+ "EXECUTE_ACCESS_DENIED": ExecuteAccessDeniedError,
3231
+ "LIST_RUNS_FAILED": ListRunsFailedError,
3232
+ "EXECUTION_ERROR": ExecutionErrorError,
3233
+ "CONNECTION_FAILED": ConnectionFailedError,
3234
+ "METADATA_WRITE_FAILED": MetadataWriteFailedError,
3235
+ "NODE_MODULES_INSTALL_FAILED": NodeModulesInstallFailedError,
3236
+ "NODE_MODULES_DOWNLOAD_FAILED": NodeModulesDownloadFailedError,
3237
+ "LOCK_GENERATION_FAILED": LockGenerationFailedError,
3238
+ "WRITE_SCRIPT_FAILED": WriteScriptFailedError,
3239
+ "DIRECTORY_CREATION_FAILED": DirectoryCreationFailedError,
3240
+ "NETWORK_PERMISSIONS_FAILED": NetworkPermissionsFailedError,
3241
+ "LOGGING_FAILED": LoggingFailedError,
3242
+ "RUN_NOT_FOUND": RunNotFoundError,
3243
+ "FAILED_TO_PROVISION_CERTIFICATE": FailedToProvisionCertificateError,
3244
+ "FAILED_TO_INSERT_DOMAIN_MAPPING": FailedToInsertDomainMappingError,
3245
+ "PERMISSION_DENIED": PermissionDeniedError,
3246
+ "FAILED_TO_CHECK_PERMISSIONS": FailedToCheckPermissionsError,
3247
+ "FAILED_TO_LIST_DOMAINS": FailedToListDomainsError,
3248
+ "FAILED_TO_LIST_VERIFICATIONS": FailedToListVerificationsError,
3249
+ "FAILED_TO_VERIFY_DOMAIN": FailedToVerifyDomainError,
3250
+ "VERIFICATION_FAILED": VerificationFailedError,
3251
+ "FAILED_TO_DELETE_VERIFICATION": FailedToDeleteVerificationError,
3252
+ "VERIFICATION_NOT_FOUND": VerificationNotFoundError,
3253
+ "FAILED_TO_CREATE_VERIFICATION_CODE": FailedToCreateVerificationCodeError,
3254
+ "INVALID_DOMAIN": InvalidDomainError,
3255
+ "LIMIT_EXCEEDED": LimitExceededError,
3256
+ "DOMAIN_OWNERSHIP_NOT_VERIFIED": DomainOwnershipNotVerifiedError,
3257
+ "VM_ACCESS_DENIED_FOR_MAPPING": VmAccessDeniedForMappingError,
3258
+ "DEPLOYMENT_ACCESS_DENIED": DeploymentAccessDeniedError,
3259
+ "FAILED_TO_PROVISION_CERTIFICATE_FOR_MAPPING": FailedToProvisionCertificateForMappingError,
3260
+ "FAILED_INSERT_DOMAIN_MAPPING": FailedInsertDomainMappingError,
3261
+ "DOMAIN_ALREADY_EXISTS": DomainAlreadyExistsError,
3262
+ "FAILED_TO_INSERT_OWNERSHIP": FailedToInsertOwnershipError,
3263
+ "FAILED_REMOVE_DOMAIN_MAPPING": FailedRemoveDomainMappingError,
3264
+ "FAILED_PERMISSIONS_CHECK": FailedPermissionsCheckError,
3265
+ "FAILED_TO_CHECK_DOMAIN_MAPPING_PERMISSIONS": FailedToCheckDomainMappingPermissionsError,
2969
3266
  "BUILD_FAILED": BuildFailedError,
2970
3267
  "SERVER_DEPLOYMENT_FAILED": ServerDeploymentFailedError,
2971
3268
  "LOCKFILE_ERROR": LockfileErrorError,
@@ -2978,6 +3275,12 @@ const FREESTYLE_ERROR_CODE_MAP = {
2978
3275
  "INVALID_DOMAINS": InvalidDomainsError,
2979
3276
  "WEB_DEPLOYMENT_BAD_REQUEST": WebDeploymentBadRequestError,
2980
3277
  "DEPLOYMENT_NOT_FOUND": DeploymentNotFoundError,
3278
+ "OBSERVABILITY_DATABASE_ERROR": ObservabilityDatabaseErrorError,
3279
+ "OBSERVABILITY_ACCESS_DENIED": ObservabilityAccessDeniedError,
3280
+ "PARSE_LOGS_FAILED": ParseLogsFailedError,
3281
+ "RETRIEVE_LOGS_FAILED": RetrieveLogsFailedError,
3282
+ "INVALID_QUERY": InvalidQueryError,
3283
+ "LOGS_NOT_FOUND": LogsNotFoundError,
2981
3284
  "PERMISSION_ALREADY_EXISTS": PermissionAlreadyExistsError,
2982
3285
  "LIST_TOKENS_FAILED": ListTokensFailedError,
2983
3286
  "REVOKE_TOKEN_FAILED": RevokeTokenFailedError,
@@ -3017,33 +3320,6 @@ const FREESTYLE_ERROR_CODE_MAP = {
3017
3320
  "SERIALIZATION_ERROR": SerializationErrorError,
3018
3321
  "GIT_INVALID_REQUEST": GitInvalidRequestError,
3019
3322
  "REPOSITORY_NOT_FOUND": RepositoryNotFoundError,
3020
- "EXECUTE_INTERNAL_ERROR": ExecuteInternalErrorError,
3021
- "EXECUTE_ACCESS_DENIED": ExecuteAccessDeniedError,
3022
- "LIST_RUNS_FAILED": ListRunsFailedError,
3023
- "EXECUTION_ERROR": ExecutionErrorError,
3024
- "CONNECTION_FAILED": ConnectionFailedError,
3025
- "METADATA_WRITE_FAILED": MetadataWriteFailedError,
3026
- "NODE_MODULES_INSTALL_FAILED": NodeModulesInstallFailedError,
3027
- "NODE_MODULES_DOWNLOAD_FAILED": NodeModulesDownloadFailedError,
3028
- "LOCK_GENERATION_FAILED": LockGenerationFailedError,
3029
- "WRITE_SCRIPT_FAILED": WriteScriptFailedError,
3030
- "DIRECTORY_CREATION_FAILED": DirectoryCreationFailedError,
3031
- "NETWORK_PERMISSIONS_FAILED": NetworkPermissionsFailedError,
3032
- "LOGGING_FAILED": LoggingFailedError,
3033
- "RUN_NOT_FOUND": RunNotFoundError,
3034
- "CLOUDSTATE_INTERNAL_ERROR": CloudstateInternalErrorError,
3035
- "CLOUDSTATE_DATABASE_ERROR": CloudstateDatabaseErrorError,
3036
- "CLOUDSTATE_ACCESS_DENIED": CloudstateAccessDeniedError,
3037
- "RESTORE_FAILED": RestoreFailedError,
3038
- "CREATE_BACKUP_FAILED": CreateBackupFailedError,
3039
- "BACKUP_FAILED": BackupFailedError,
3040
- "DEPLOYMENT_FAILED": DeploymentFailedError,
3041
- "INVALID_DEPLOYMENT_REQUEST": InvalidDeploymentRequestError,
3042
- "PROJECT_NOT_FOUND": ProjectNotFoundError,
3043
- "SCHEDULE_NOT_FOUND": ScheduleNotFoundError,
3044
- "SERVICE_UNAVAILABLE": ServiceUnavailableError,
3045
- "UNAUTHORIZED_ERROR": UnauthorizedErrorError,
3046
- "ANYHOW": AnyhowError,
3047
3323
  "BROWSER_OPERATION_FAILED": BrowserOperationFailedError,
3048
3324
  "WATCH_FILES_FAILED": WatchFilesFailedError,
3049
3325
  "LOGS_FAILED": LogsFailedError,
@@ -3057,53 +3333,27 @@ const FREESTYLE_ERROR_CODE_MAP = {
3057
3333
  "REQUEST_FAILED": RequestFailedError,
3058
3334
  "DEV_SERVER_FILE_NOT_FOUND": DevServerFileNotFoundError,
3059
3335
  "DEV_SERVER_INVALID_REQUEST": DevServerInvalidRequestError,
3060
- "EMPTY_TAG": EmptyTagError,
3336
+ "SCHEDULE_NOT_FOUND": ScheduleNotFoundError,
3337
+ "SERVICE_UNAVAILABLE": ServiceUnavailableError,
3338
+ "GIT_REPO_LIMIT_EXCEEDED": GitRepoLimitExceededError,
3061
3339
  "BRANCH_NAME_EMPTY": BranchNameEmptyError,
3062
3340
  "RESIZE_FAILED": ResizeFailedError,
3063
- "INTERNAL_RESIZE_VM_NOT_FOUND": InternalResizeVmNotFoundError,
3064
- "OBSERVABILITY_DATABASE_ERROR": ObservabilityDatabaseErrorError,
3065
- "OBSERVABILITY_ACCESS_DENIED": ObservabilityAccessDeniedError,
3066
- "PARSE_LOGS_FAILED": ParseLogsFailedError,
3067
- "RETRIEVE_LOGS_FAILED": RetrieveLogsFailedError,
3068
- "INVALID_QUERY": InvalidQueryError,
3069
- "LOGS_NOT_FOUND": LogsNotFoundError,
3070
- "FAILED_TO_PROVISION_CERTIFICATE": FailedToProvisionCertificateError,
3071
- "FAILED_TO_INSERT_DOMAIN_MAPPING": FailedToInsertDomainMappingError,
3072
- "PERMISSION_DENIED": PermissionDeniedError,
3073
- "FAILED_TO_CHECK_PERMISSIONS": FailedToCheckPermissionsError,
3074
- "FAILED_TO_LIST_DOMAINS": FailedToListDomainsError,
3075
- "FAILED_TO_LIST_VERIFICATIONS": FailedToListVerificationsError,
3076
- "FAILED_TO_VERIFY_DOMAIN": FailedToVerifyDomainError,
3077
- "VERIFICATION_FAILED": VerificationFailedError,
3078
- "FAILED_TO_DELETE_VERIFICATION": FailedToDeleteVerificationError,
3079
- "VERIFICATION_NOT_FOUND": VerificationNotFoundError,
3080
- "FAILED_TO_CREATE_VERIFICATION_CODE": FailedToCreateVerificationCodeError,
3081
- "INVALID_DOMAIN": InvalidDomainError,
3082
- "DOMAIN_OWNERSHIP_NOT_VERIFIED": DomainOwnershipNotVerifiedError,
3083
- "VM_ACCESS_DENIED_FOR_MAPPING": VmAccessDeniedForMappingError,
3084
- "DEPLOYMENT_ACCESS_DENIED": DeploymentAccessDeniedError,
3085
- "FAILED_TO_PROVISION_CERTIFICATE_FOR_MAPPING": FailedToProvisionCertificateForMappingError,
3086
- "FAILED_INSERT_DOMAIN_MAPPING": FailedInsertDomainMappingError,
3087
- "DOMAIN_ALREADY_EXISTS": DomainAlreadyExistsError,
3088
- "FAILED_TO_INSERT_OWNERSHIP": FailedToInsertOwnershipError,
3089
- "FAILED_REMOVE_DOMAIN_MAPPING": FailedRemoveDomainMappingError,
3090
- "FAILED_PERMISSIONS_CHECK": FailedPermissionsCheckError,
3091
- "FAILED_TO_CHECK_DOMAIN_MAPPING_PERMISSIONS": FailedToCheckDomainMappingPermissionsError,
3092
- "DOMAIN_OWNERSHIP_VERIFICATION_FAILED": DomainOwnershipVerificationFailedError,
3093
- "ERROR_DELETING_RECORD": ErrorDeletingRecordError,
3094
- "RECORD_OWNERSHIP_ERROR": RecordOwnershipErrorError,
3095
- "ERROR_CREATING_RECORD": ErrorCreatingRecordError,
3096
- "DOMAIN_OWNERSHIP_ERROR": DomainOwnershipErrorError
3341
+ "INTERNAL_RESIZE_VM_NOT_FOUND": InternalResizeVmNotFoundError
3097
3342
  };
3098
3343
 
3099
3344
  var errors = /*#__PURE__*/Object.freeze({
3100
3345
  __proto__: null,
3346
+ ActiveTransactionErrorError: ActiveTransactionErrorError,
3101
3347
  AfterArrayContainsEmptyError: AfterArrayContainsEmptyError,
3102
3348
  AlreadyHasBaseError: AlreadyHasBaseError,
3103
3349
  AmbiguousError: AmbiguousError,
3104
- AnyhowError: AnyhowError,
3105
3350
  BackupFailedError: BackupFailedError,
3351
+ BadHeaderError: BadHeaderError,
3352
+ BadKeyError: BadKeyError,
3353
+ BadParseError: BadParseError,
3106
3354
  BadRequestError: BadRequestError,
3355
+ BadSignatureError: BadSignatureError,
3356
+ BadTimestampError: BadTimestampError,
3107
3357
  BlobNotFoundError: BlobNotFoundError,
3108
3358
  BranchNameEmptyError: BranchNameEmptyError,
3109
3359
  BranchNotFoundError: BranchNotFoundError,
@@ -3137,6 +3387,7 @@ var errors = /*#__PURE__*/Object.freeze({
3137
3387
  DevServerInvalidRequestError: DevServerInvalidRequestError,
3138
3388
  DevServerNotFoundError: DevServerNotFoundError,
3139
3389
  DirectoryCreationFailedError: DirectoryCreationFailedError,
3390
+ DockerSnapshotFailedError: DockerSnapshotFailedError,
3140
3391
  DomainAlreadyExistsError: DomainAlreadyExistsError,
3141
3392
  DomainMappingErrorError: DomainMappingErrorError,
3142
3393
  DomainOwnershipErrorError: DomainOwnershipErrorError,
@@ -3154,6 +3405,7 @@ var errors = /*#__PURE__*/Object.freeze({
3154
3405
  ExecEmptyError: ExecEmptyError,
3155
3406
  ExecuteAccessDeniedError: ExecuteAccessDeniedError,
3156
3407
  ExecuteInternalErrorError: ExecuteInternalErrorError,
3408
+ ExecuteLimitExceededError: ExecuteLimitExceededError,
3157
3409
  ExecutionErrorError: ExecutionErrorError,
3158
3410
  ExecutionFailedError: ExecutionFailedError,
3159
3411
  ExpectedServiceError: ExpectedServiceError,
@@ -3180,12 +3432,14 @@ var errors = /*#__PURE__*/Object.freeze({
3180
3432
  ForbiddenError: ForbiddenError,
3181
3433
  ForkVmNotFoundError: ForkVmNotFoundError,
3182
3434
  GetContentFailedError: GetContentFailedError,
3435
+ GetDefaultSnapshotFailedError: GetDefaultSnapshotFailedError,
3183
3436
  GetPermissionFailedError: GetPermissionFailedError,
3184
3437
  GetRepositoryInfoFailedError: GetRepositoryInfoFailedError,
3185
3438
  GitErrorError: GitErrorError,
3186
3439
  GitHubSyncConflictError: GitHubSyncConflictError,
3187
3440
  GitHubSyncFailedError: GitHubSyncFailedError,
3188
3441
  GitInvalidRequestError: GitInvalidRequestError,
3442
+ GitRepoLimitExceededError: GitRepoLimitExceededError,
3189
3443
  GitRepositoryAccessDeniedError: GitRepositoryAccessDeniedError,
3190
3444
  GitRepositoryNotFoundError: GitRepositoryNotFoundError,
3191
3445
  GitServerErrorError: GitServerErrorError,
@@ -3223,6 +3477,7 @@ var errors = /*#__PURE__*/Object.freeze({
3223
3477
  InvalidSnapshotIdError: InvalidSnapshotIdError,
3224
3478
  InvalidVmIdError: InvalidVmIdError,
3225
3479
  KernelPanicError: KernelPanicError,
3480
+ LimitExceededError: LimitExceededError,
3226
3481
  ListIdentitiesFailedError: ListIdentitiesFailedError,
3227
3482
  ListPermissionsFailedError: ListPermissionsFailedError,
3228
3483
  ListRepositoriesFailedError: ListRepositoriesFailedError,
@@ -3268,9 +3523,11 @@ var errors = /*#__PURE__*/Object.freeze({
3268
3523
  ResizeFailedError: ResizeFailedError,
3269
3524
  RestartFailedError: RestartFailedError,
3270
3525
  RestoreFailedError: RestoreFailedError,
3526
+ ResumedVmNonResponsiveError: ResumedVmNonResponsiveError,
3271
3527
  RetrieveLogsFailedError: RetrieveLogsFailedError,
3272
3528
  RevokePermissionFailedError: RevokePermissionFailedError,
3273
3529
  RevokeTokenFailedError: RevokeTokenFailedError,
3530
+ RootfsCopyErrorError: RootfsCopyErrorError,
3274
3531
  RunNotFoundError: RunNotFoundError,
3275
3532
  RuntimeErrorError: RuntimeErrorError,
3276
3533
  ScheduleNotFoundError: ScheduleNotFoundError,
@@ -3284,19 +3541,25 @@ var errors = /*#__PURE__*/Object.freeze({
3284
3541
  ServiceNameTooLongError: ServiceNameTooLongError,
3285
3542
  ServiceNotFoundError: ServiceNotFoundError,
3286
3543
  ServiceUnavailableError: ServiceUnavailableError,
3544
+ SetDefaultSnapshotFailedError: SetDefaultSnapshotFailedError,
3287
3545
  ShutdownFailedError: ShutdownFailedError,
3288
3546
  SigningError: SigningError,
3547
+ SnapshotDirNotFoundError: SnapshotDirNotFoundError,
3548
+ SnapshotLayerCreationFailedError: SnapshotLayerCreationFailedError,
3549
+ SnapshotLoadTimeoutError: SnapshotLoadTimeoutError,
3289
3550
  SnapshotVmBadRequestError: SnapshotVmBadRequestError,
3290
3551
  SourceImportConflictError: SourceImportConflictError,
3291
3552
  SourceNotFoundError: SourceNotFoundError,
3292
3553
  SourceUnauthorizedError: SourceUnauthorizedError,
3293
3554
  StatusFailedError: StatusFailedError,
3294
3555
  StdIoError: StdIoError,
3556
+ SubvolumeCreationFailedError: SubvolumeCreationFailedError,
3295
3557
  SyntaxErrorError: SyntaxErrorError,
3296
3558
  TagNotFoundError: TagNotFoundError,
3297
3559
  TokenErrorError: TokenErrorError,
3298
3560
  TreeNotFoundError: TreeNotFoundError,
3299
3561
  TriggerErrorError: TriggerErrorError,
3562
+ UffdTimeoutErrorError: UffdTimeoutErrorError,
3300
3563
  UnauthorizedError: UnauthorizedError,
3301
3564
  UnauthorizedErrorError: UnauthorizedErrorError,
3302
3565
  UnavailableError: UnavailableError,
@@ -3320,6 +3583,7 @@ var errors = /*#__PURE__*/Object.freeze({
3320
3583
  VmCreateTmuxSessionError: VmCreateTmuxSessionError,
3321
3584
  VmDeletedError: VmDeletedError,
3322
3585
  VmExitDuringStartError: VmExitDuringStartError,
3586
+ VmLimitExceededError: VmLimitExceededError,
3323
3587
  VmMustBeStoppedError: VmMustBeStoppedError,
3324
3588
  VmNotFoundError: VmNotFoundError,
3325
3589
  VmNotFoundInFsError: VmNotFoundInFsError,
@@ -4490,9 +4754,9 @@ class Deployment {
4490
4754
  /**
4491
4755
  * Get logs for this deployment.
4492
4756
  */
4493
- async getLogs() {
4757
+ async getLogs(options) {
4494
4758
  return this.apiClient.get("/observability/v1/logs", {
4495
- query: { deploymentId: this.deploymentId }
4759
+ query: { deploymentId: this.deploymentId, ...options }
4496
4760
  });
4497
4761
  }
4498
4762
  /**
@@ -4589,7 +4853,7 @@ class DeploymentsNamespace {
4589
4853
  source = {
4590
4854
  kind: "files",
4591
4855
  files: {
4592
- "index.js": {
4856
+ "index.ts": {
4593
4857
  content: body.code
4594
4858
  }
4595
4859
  }
@@ -6113,7 +6377,7 @@ class CronNamespace {
6113
6377
  deploymentId
6114
6378
  } = {}) {
6115
6379
  const response = await this.apiClient.get("/v1/cron/schedules", {
6116
- query: deploymentId ? { deployment_id: deploymentId } : {}
6380
+ query: deploymentId ? { deploymentId } : {}
6117
6381
  });
6118
6382
  return {
6119
6383
  jobs: response.schedules.map(
@@ -6150,11 +6414,68 @@ class CronJob {
6150
6414
  body: { active: false }
6151
6415
  });
6152
6416
  }
6417
+ /**
6418
+ * List executions for this cron schedule.
6419
+ */
6420
+ async executions({
6421
+ limit = 50,
6422
+ cursor
6423
+ } = {}) {
6424
+ const offset = cursor ? parseInt(cursor, 10) : 0;
6425
+ const res = await this.#apiClient.get(
6426
+ "/v1/cron/schedules/{id}/executions",
6427
+ {
6428
+ params: { id: this.schedule.id },
6429
+ query: { limit, offset }
6430
+ }
6431
+ );
6432
+ return {
6433
+ executions: res.executions,
6434
+ nextCursor: res.offset < res.total ? res.offset.toString() : void 0,
6435
+ totalCount: res.total
6436
+ };
6437
+ }
6438
+ /**
6439
+ * Get execution success rate for this schedule within a time range.
6440
+ */
6441
+ async successRate({
6442
+ start,
6443
+ end
6444
+ }) {
6445
+ const startIso = start instanceof Date ? start.toISOString() : start;
6446
+ const endIso = end instanceof Date ? end.toISOString() : end;
6447
+ const res = await this.#apiClient.get(
6448
+ "/v1/cron/schedules/{id}/success-rate",
6449
+ {
6450
+ params: { id: this.schedule.id },
6451
+ query: { start: startIso, end: endIso }
6452
+ }
6453
+ );
6454
+ return {
6455
+ total: res.total,
6456
+ succeeded: res.succeeded,
6457
+ failed: res.failed,
6458
+ successRate: res.successRate,
6459
+ start: res.start,
6460
+ end: res.end
6461
+ };
6462
+ }
6153
6463
  }
6154
6464
 
6155
6465
  async function readFiles(directory) {
6466
+ let fs;
6467
+ let glob;
6468
+ try {
6469
+ fs = await import('fs/promises');
6470
+ glob = (await import('glob')).glob;
6471
+ } catch (error) {
6472
+ console.error("Error importing fs/promises or glob:", error);
6473
+ throw new Error("Failed to import required modules.", {
6474
+ cause: error
6475
+ });
6476
+ }
6156
6477
  const files = [];
6157
- const patterns = await glob.glob("**/*", {
6478
+ const patterns = await glob("**/*", {
6158
6479
  cwd: directory,
6159
6480
  nodir: true,
6160
6481
  ignore: ["**/node_modules/**"],