freestyle-sandboxes 0.1.43 → 0.1.45

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 +1360 -1006
  2. package/index.d.cts +1929 -852
  3. package/index.d.mts +1929 -852
  4. package/index.mjs +1360 -1006
  5. package/package.json +1 -1
package/index.cjs CHANGED
@@ -82,6 +82,78 @@ class GitErrorError extends Error {
82
82
  static statusCode = 500;
83
83
  static description = `{message}`;
84
84
  }
85
+ class SuspendFailedAndStopFailedError extends Error {
86
+ constructor(body) {
87
+ super(
88
+ `SUSPEND_FAILED_AND_STOP_FAILED: ${body.message}`
89
+ );
90
+ this.body = body;
91
+ this.name = "SuspendFailedAndStopFailedError";
92
+ }
93
+ static code = "SUSPEND_FAILED_AND_STOP_FAILED";
94
+ static statusCode = 500;
95
+ static description = `Failed to gracefully suspend or stop VM`;
96
+ }
97
+ class SuspendFailedAndStoppedError extends Error {
98
+ constructor(body) {
99
+ super(
100
+ `SUSPEND_FAILED_AND_STOPPED: ${body.message}`
101
+ );
102
+ this.body = body;
103
+ this.name = "SuspendFailedAndStoppedError";
104
+ }
105
+ static code = "SUSPEND_FAILED_AND_STOPPED";
106
+ static statusCode = 500;
107
+ static description = `Failed to gracefully suspend, stopped VM`;
108
+ }
109
+ class InvalidGitRepoSpecErrorError extends Error {
110
+ constructor(body) {
111
+ super(
112
+ `INVALID_GIT_REPO_SPEC_ERROR: ${body.message}`
113
+ );
114
+ this.body = body;
115
+ this.name = "InvalidGitRepoSpecErrorError";
116
+ }
117
+ static code = "INVALID_GIT_REPO_SPEC_ERROR";
118
+ static statusCode = 400;
119
+ static description = `Invalid git repository specification: {message}`;
120
+ }
121
+ class InternalErrorError extends Error {
122
+ constructor(body) {
123
+ super(
124
+ `INTERNAL_ERROR: ${body.message}`
125
+ );
126
+ this.body = body;
127
+ this.name = "InternalErrorError";
128
+ }
129
+ static code = "INTERNAL_ERROR";
130
+ static statusCode = 500;
131
+ static description = `Internal error: {message}`;
132
+ }
133
+ class ForkVmNotFoundError extends Error {
134
+ constructor(body) {
135
+ super(
136
+ `FORK_VM_NOT_FOUND: ${body.message}`
137
+ );
138
+ this.body = body;
139
+ this.name = "ForkVmNotFoundError";
140
+ }
141
+ static code = "FORK_VM_NOT_FOUND";
142
+ static statusCode = 404;
143
+ static description = `Fork VM not found: {fork_vm_id}`;
144
+ }
145
+ class CreateSnapshotBadRequestError extends Error {
146
+ constructor(body) {
147
+ super(
148
+ `CREATE_SNAPSHOT_BAD_REQUEST: ${body.message}`
149
+ );
150
+ this.body = body;
151
+ this.name = "CreateSnapshotBadRequestError";
152
+ }
153
+ static code = "CREATE_SNAPSHOT_BAD_REQUEST";
154
+ static statusCode = 400;
155
+ static description = `Bad request: {message}`;
156
+ }
85
157
  class SnapshotNotFoundError extends Error {
86
158
  constructor(body) {
87
159
  super(
@@ -250,18 +322,6 @@ class VmAccessDeniedError extends Error {
250
322
  static statusCode = 403;
251
323
  static description = `You do not have access to this VM`;
252
324
  }
253
- class StdIoError extends Error {
254
- constructor(body) {
255
- super(
256
- `STD_IO: ${body.message}`
257
- );
258
- this.body = body;
259
- this.name = "StdIoError";
260
- }
261
- static code = "STD_IO";
262
- static statusCode = 500;
263
- static description = `Standard IO error`;
264
- }
265
325
  class FailedToSpawnUffdError extends Error {
266
326
  constructor(body) {
267
327
  super(
@@ -298,41 +358,53 @@ class VmSubnetNotFoundError extends Error {
298
358
  static statusCode = 500;
299
359
  static description = `Subnet for VM not found`;
300
360
  }
301
- class VmOperationDeniedDuringTransactionError extends Error {
361
+ class SnapshotSetupFailedError extends Error {
302
362
  constructor(body) {
303
363
  super(
304
- `VM_OPERATION_DENIED_DURING_TRANSACTION: ${body.message}`
364
+ `SNAPSHOT_SETUP_FAILED: ${body.message}`
305
365
  );
306
366
  this.body = body;
307
- this.name = "VmOperationDeniedDuringTransactionError";
367
+ this.name = "SnapshotSetupFailedError";
308
368
  }
309
- static code = "VM_OPERATION_DENIED_DURING_TRANSACTION";
310
- static statusCode = 409;
311
- static description = `VM operation denied during active transaction for VM {vm_id} in transaction {transaction_id}`;
369
+ static code = "SNAPSHOT_SETUP_FAILED";
370
+ static statusCode = 500;
371
+ static description = `Snapshot setup failed: {failed_reason}`;
312
372
  }
313
- class VmTransactionIdMismatchError extends Error {
373
+ class SnapshotVmBadRequestError extends Error {
314
374
  constructor(body) {
315
375
  super(
316
- `VM_TRANSACTION_ID_MISMATCH: ${body.message}`
376
+ `SNAPSHOT_VM_BAD_REQUEST: ${body.message}`
317
377
  );
318
378
  this.body = body;
319
- this.name = "VmTransactionIdMismatchError";
379
+ this.name = "SnapshotVmBadRequestError";
320
380
  }
321
- static code = "VM_TRANSACTION_ID_MISMATCH";
381
+ static code = "SNAPSHOT_VM_BAD_REQUEST";
322
382
  static statusCode = 400;
323
- static description = `Transaction ID {provided_transaction_id} does not match the current VM transaction {expected_transaction_id} for VM {vm_id}`;
383
+ static description = `Bad request: {message}`;
324
384
  }
325
- class VmNotInTransactionError extends Error {
385
+ class SnapshotIsAccountDefaultError extends Error {
326
386
  constructor(body) {
327
387
  super(
328
- `VM_NOT_IN_TRANSACTION: ${body.message}`
388
+ `SNAPSHOT_IS_ACCOUNT_DEFAULT: ${body.message}`
329
389
  );
330
390
  this.body = body;
331
- this.name = "VmNotInTransactionError";
391
+ this.name = "SnapshotIsAccountDefaultError";
332
392
  }
333
- static code = "VM_NOT_IN_TRANSACTION";
334
- static statusCode = 404;
335
- static description = `VM not in a transaction: {vm_id}`;
393
+ static code = "SNAPSHOT_IS_ACCOUNT_DEFAULT";
394
+ static statusCode = 409;
395
+ static description = `Snapshot is the account default and cannot be deleted: {snapshot_id}`;
396
+ }
397
+ class SnapshotAlreadyDeletedError extends Error {
398
+ constructor(body) {
399
+ super(
400
+ `SNAPSHOT_ALREADY_DELETED: ${body.message}`
401
+ );
402
+ this.body = body;
403
+ this.name = "SnapshotAlreadyDeletedError";
404
+ }
405
+ static code = "SNAPSHOT_ALREADY_DELETED";
406
+ static statusCode = 409;
407
+ static description = `Snapshot already deleted: {snapshot_id}`;
336
408
  }
337
409
  class VmNotFoundInFsError extends Error {
338
410
  constructor(body) {
@@ -406,6 +478,90 @@ class InternalVmNotFoundError extends Error {
406
478
  static statusCode = 404;
407
479
  static description = `VM not found: {vm_id}`;
408
480
  }
481
+ class NoDefaultSnapshotAvailableError extends Error {
482
+ constructor(body) {
483
+ super(
484
+ `NO_DEFAULT_SNAPSHOT_AVAILABLE: ${body.message}`
485
+ );
486
+ this.body = body;
487
+ this.name = "NoDefaultSnapshotAvailableError";
488
+ }
489
+ static code = "NO_DEFAULT_SNAPSHOT_AVAILABLE";
490
+ static statusCode = 404;
491
+ static description = `No default snapshot available for account {account_id}`;
492
+ }
493
+ class DockerSnapshotFailedError extends Error {
494
+ constructor(body) {
495
+ super(
496
+ `DOCKER_SNAPSHOT_FAILED: ${body.message}`
497
+ );
498
+ this.body = body;
499
+ this.name = "DockerSnapshotFailedError";
500
+ }
501
+ static code = "DOCKER_SNAPSHOT_FAILED";
502
+ static statusCode = 500;
503
+ static description = `Failed to create snapshot from Docker image {docker_image} for account {account_id}: {details}`;
504
+ }
505
+ class SetDefaultSnapshotFailedError extends Error {
506
+ constructor(body) {
507
+ super(
508
+ `SET_DEFAULT_SNAPSHOT_FAILED: ${body.message}`
509
+ );
510
+ this.body = body;
511
+ this.name = "SetDefaultSnapshotFailedError";
512
+ }
513
+ static code = "SET_DEFAULT_SNAPSHOT_FAILED";
514
+ static statusCode = 500;
515
+ static description = `Failed to update default snapshot in database for account {account_id}, snapshot {snapshot_id}: {details}`;
516
+ }
517
+ class SnapshotLayerCreationFailedError extends Error {
518
+ constructor(body) {
519
+ super(
520
+ `SNAPSHOT_LAYER_CREATION_FAILED: ${body.message}`
521
+ );
522
+ this.body = body;
523
+ this.name = "SnapshotLayerCreationFailedError";
524
+ }
525
+ static code = "SNAPSHOT_LAYER_CREATION_FAILED";
526
+ static statusCode = 500;
527
+ static description = `Failed to create snapshot layer for account {account_id} from {source_snapshot_dir}: {details}`;
528
+ }
529
+ class SnapshotDirNotFoundError extends Error {
530
+ constructor(body) {
531
+ super(
532
+ `SNAPSHOT_DIR_NOT_FOUND: ${body.message}`
533
+ );
534
+ this.body = body;
535
+ this.name = "SnapshotDirNotFoundError";
536
+ }
537
+ static code = "SNAPSHOT_DIR_NOT_FOUND";
538
+ static statusCode = 500;
539
+ static description = `Snapshot directory not found at {snapshot_dir} for account {account_id}, snapshot {snapshot_id}`;
540
+ }
541
+ class SubvolumeCreationFailedError extends Error {
542
+ constructor(body) {
543
+ super(
544
+ `SUBVOLUME_CREATION_FAILED: ${body.message}`
545
+ );
546
+ this.body = body;
547
+ this.name = "SubvolumeCreationFailedError";
548
+ }
549
+ static code = "SUBVOLUME_CREATION_FAILED";
550
+ static statusCode = 500;
551
+ static description = `Failed to create account subvolume for account {account_id}: {details}`;
552
+ }
553
+ class GetDefaultSnapshotFailedError extends Error {
554
+ constructor(body) {
555
+ super(
556
+ `GET_DEFAULT_SNAPSHOT_FAILED: ${body.message}`
557
+ );
558
+ this.body = body;
559
+ this.name = "GetDefaultSnapshotFailedError";
560
+ }
561
+ static code = "GET_DEFAULT_SNAPSHOT_FAILED";
562
+ static statusCode = 500;
563
+ static description = `Failed to query account default snapshot for account {account_id}: {details}`;
564
+ }
409
565
  class UserNotFoundError extends Error {
410
566
  constructor(body) {
411
567
  super(
@@ -598,111 +754,75 @@ class GroupNameEmptyError extends Error {
598
754
  static statusCode = 400;
599
755
  static description = `Group name cannot be empty`;
600
756
  }
601
- class NoDefaultSnapshotAvailableError extends Error {
757
+ class ActiveTransactionErrorError extends Error {
602
758
  constructor(body) {
603
759
  super(
604
- `NO_DEFAULT_SNAPSHOT_AVAILABLE: ${body.message}`
760
+ `ACTIVE_TRANSACTION_ERROR: ${body.message}`
605
761
  );
606
762
  this.body = body;
607
- this.name = "NoDefaultSnapshotAvailableError";
763
+ this.name = "ActiveTransactionErrorError";
608
764
  }
609
- static code = "NO_DEFAULT_SNAPSHOT_AVAILABLE";
610
- static statusCode = 404;
611
- static description = `No default snapshot available for account {account_id}`;
765
+ static code = "ACTIVE_TRANSACTION_ERROR";
766
+ static statusCode = 500;
767
+ static description = `Active transaction error: {details}`;
612
768
  }
613
- class DockerSnapshotFailedError extends Error {
769
+ class SwapVmTapError extends Error {
614
770
  constructor(body) {
615
771
  super(
616
- `DOCKER_SNAPSHOT_FAILED: ${body.message}`
772
+ `SWAP_VM_TAP: ${body.message}`
617
773
  );
618
774
  this.body = body;
619
- this.name = "DockerSnapshotFailedError";
775
+ this.name = "SwapVmTapError";
620
776
  }
621
- static code = "DOCKER_SNAPSHOT_FAILED";
777
+ static code = "SWAP_VM_TAP";
622
778
  static statusCode = 500;
623
- static description = `Failed to create snapshot from Docker image {docker_image} for account {account_id}: {details}`;
779
+ static description = `Failed to swap tap device: {details}`;
624
780
  }
625
- class SetDefaultSnapshotFailedError extends Error {
781
+ class RootfsCopyErrorError extends Error {
626
782
  constructor(body) {
627
783
  super(
628
- `SET_DEFAULT_SNAPSHOT_FAILED: ${body.message}`
784
+ `ROOTFS_COPY_ERROR: ${body.message}`
629
785
  );
630
786
  this.body = body;
631
- this.name = "SetDefaultSnapshotFailedError";
787
+ this.name = "RootfsCopyErrorError";
632
788
  }
633
- static code = "SET_DEFAULT_SNAPSHOT_FAILED";
789
+ static code = "ROOTFS_COPY_ERROR";
634
790
  static statusCode = 500;
635
- static description = `Failed to update default snapshot in database for account {account_id}, snapshot {snapshot_id}: {details}`;
791
+ static description = `Failed to copy rootfs from {from} to {to}: {details}`;
636
792
  }
637
- class SnapshotLayerCreationFailedError extends Error {
793
+ class PartitionNotFoundError extends Error {
638
794
  constructor(body) {
639
795
  super(
640
- `SNAPSHOT_LAYER_CREATION_FAILED: ${body.message}`
796
+ `PARTITION_NOT_FOUND: ${body.message}`
641
797
  );
642
798
  this.body = body;
643
- this.name = "SnapshotLayerCreationFailedError";
799
+ this.name = "PartitionNotFoundError";
644
800
  }
645
- static code = "SNAPSHOT_LAYER_CREATION_FAILED";
646
- static statusCode = 500;
647
- static description = `Failed to create snapshot layer for account {account_id} from {source_snapshot_dir}: {details}`;
801
+ static code = "PARTITION_NOT_FOUND";
802
+ static statusCode = 404;
803
+ static description = `Partition not found: {partition_id}`;
648
804
  }
649
- class SnapshotDirNotFoundError extends Error {
805
+ class FileNotFoundError extends Error {
650
806
  constructor(body) {
651
807
  super(
652
- `SNAPSHOT_DIR_NOT_FOUND: ${body.message}`
808
+ `FILE_NOT_FOUND: ${body.message}`
653
809
  );
654
810
  this.body = body;
655
- this.name = "SnapshotDirNotFoundError";
811
+ this.name = "FileNotFoundError";
656
812
  }
657
- static code = "SNAPSHOT_DIR_NOT_FOUND";
658
- static statusCode = 500;
659
- static description = `Snapshot directory not found at {snapshot_dir} for account {account_id}, snapshot {snapshot_id}`;
813
+ static code = "FILE_NOT_FOUND";
814
+ static statusCode = 404;
815
+ static description = `File not found: {path}`;
660
816
  }
661
- class SubvolumeCreationFailedError extends Error {
662
- constructor(body) {
663
- super(
664
- `SUBVOLUME_CREATION_FAILED: ${body.message}`
665
- );
666
- this.body = body;
667
- this.name = "SubvolumeCreationFailedError";
668
- }
669
- static code = "SUBVOLUME_CREATION_FAILED";
670
- static statusCode = 500;
671
- static description = `Failed to create account subvolume for account {account_id}: {details}`;
672
- }
673
- class GetDefaultSnapshotFailedError extends Error {
674
- constructor(body) {
675
- super(
676
- `GET_DEFAULT_SNAPSHOT_FAILED: ${body.message}`
677
- );
678
- this.body = body;
679
- this.name = "GetDefaultSnapshotFailedError";
680
- }
681
- static code = "GET_DEFAULT_SNAPSHOT_FAILED";
682
- static statusCode = 500;
683
- static description = `Failed to query account default snapshot for account {account_id}: {details}`;
684
- }
685
- class SnapshotSetupFailedError extends Error {
686
- constructor(body) {
687
- super(
688
- `SNAPSHOT_SETUP_FAILED: ${body.message}`
689
- );
690
- this.body = body;
691
- this.name = "SnapshotSetupFailedError";
692
- }
693
- static code = "SNAPSHOT_SETUP_FAILED";
694
- static statusCode = 500;
695
- static description = `Snapshot setup failed: {failed_reason}`;
696
- }
697
- class SnapshotVmBadRequestError extends Error {
817
+ class FilesBadRequestError extends Error {
698
818
  constructor(body) {
699
819
  super(
700
- `SNAPSHOT_VM_BAD_REQUEST: ${body.message}`
820
+ `FILES_BAD_REQUEST: ${body.message}`
701
821
  );
702
822
  this.body = body;
703
- this.name = "SnapshotVmBadRequestError";
823
+ this.name = "FilesBadRequestError";
704
824
  }
705
- static code = "SNAPSHOT_VM_BAD_REQUEST";
825
+ static code = "FILES_BAD_REQUEST";
706
826
  static statusCode = 400;
707
827
  static description = `Bad request: {message}`;
708
828
  }
@@ -718,18 +838,6 @@ class DatabaseErrorError extends Error {
718
838
  static statusCode = 500;
719
839
  static description = `Database error occurred while constructing VmRecord, details: {details}`;
720
840
  }
721
- class PartitionNotFoundError extends Error {
722
- constructor(body) {
723
- super(
724
- `PARTITION_NOT_FOUND: ${body.message}`
725
- );
726
- this.body = body;
727
- this.name = "PartitionNotFoundError";
728
- }
729
- static code = "PARTITION_NOT_FOUND";
730
- static statusCode = 404;
731
- static description = `Partition not found: {partition_id}`;
732
- }
733
841
  class InvalidVmIdError extends Error {
734
842
  constructor(body) {
735
843
  super(
@@ -742,137 +850,41 @@ class InvalidVmIdError extends Error {
742
850
  static statusCode = 400;
743
851
  static description = `Invalid VM ID: {vm_id}, details: {details}`;
744
852
  }
745
- class SuspendFailedAndStopFailedError extends Error {
746
- constructor(body) {
747
- super(
748
- `SUSPEND_FAILED_AND_STOP_FAILED: ${body.message}`
749
- );
750
- this.body = body;
751
- this.name = "SuspendFailedAndStopFailedError";
752
- }
753
- static code = "SUSPEND_FAILED_AND_STOP_FAILED";
754
- static statusCode = 500;
755
- static description = `Failed to gracefully suspend or stop VM`;
756
- }
757
- class SuspendFailedAndStoppedError extends Error {
758
- constructor(body) {
759
- super(
760
- `SUSPEND_FAILED_AND_STOPPED: ${body.message}`
761
- );
762
- this.body = body;
763
- this.name = "SuspendFailedAndStoppedError";
764
- }
765
- static code = "SUSPEND_FAILED_AND_STOPPED";
766
- static statusCode = 500;
767
- static description = `Failed to gracefully suspend, stopped VM`;
768
- }
769
- class FileNotFoundError extends Error {
770
- constructor(body) {
771
- super(
772
- `FILE_NOT_FOUND: ${body.message}`
773
- );
774
- this.body = body;
775
- this.name = "FileNotFoundError";
776
- }
777
- static code = "FILE_NOT_FOUND";
778
- static statusCode = 404;
779
- static description = `File not found: {path}`;
780
- }
781
- class FilesBadRequestError extends Error {
853
+ class VmOperationDeniedDuringTransactionError extends Error {
782
854
  constructor(body) {
783
855
  super(
784
- `FILES_BAD_REQUEST: ${body.message}`
856
+ `VM_OPERATION_DENIED_DURING_TRANSACTION: ${body.message}`
785
857
  );
786
858
  this.body = body;
787
- this.name = "FilesBadRequestError";
859
+ this.name = "VmOperationDeniedDuringTransactionError";
788
860
  }
789
- static code = "FILES_BAD_REQUEST";
790
- static statusCode = 400;
791
- static description = `Bad request: {message}`;
861
+ static code = "VM_OPERATION_DENIED_DURING_TRANSACTION";
862
+ static statusCode = 409;
863
+ static description = `VM operation denied during active transaction for VM {vm_id} in transaction {transaction_id}`;
792
864
  }
793
- class InvalidGitRepoSpecErrorError extends Error {
865
+ class VmTransactionIdMismatchError extends Error {
794
866
  constructor(body) {
795
867
  super(
796
- `INVALID_GIT_REPO_SPEC_ERROR: ${body.message}`
868
+ `VM_TRANSACTION_ID_MISMATCH: ${body.message}`
797
869
  );
798
870
  this.body = body;
799
- this.name = "InvalidGitRepoSpecErrorError";
871
+ this.name = "VmTransactionIdMismatchError";
800
872
  }
801
- static code = "INVALID_GIT_REPO_SPEC_ERROR";
873
+ static code = "VM_TRANSACTION_ID_MISMATCH";
802
874
  static statusCode = 400;
803
- static description = `Invalid git repository specification: {message}`;
804
- }
805
- class InternalErrorError extends Error {
806
- constructor(body) {
807
- super(
808
- `INTERNAL_ERROR: ${body.message}`
809
- );
810
- this.body = body;
811
- this.name = "InternalErrorError";
812
- }
813
- static code = "INTERNAL_ERROR";
814
- static statusCode = 500;
815
- static description = `Internal error: {message}`;
875
+ static description = `Transaction ID {provided_transaction_id} does not match the current VM transaction {expected_transaction_id} for VM {vm_id}`;
816
876
  }
817
- class ForkVmNotFoundError extends Error {
877
+ class VmNotInTransactionError extends Error {
818
878
  constructor(body) {
819
879
  super(
820
- `FORK_VM_NOT_FOUND: ${body.message}`
880
+ `VM_NOT_IN_TRANSACTION: ${body.message}`
821
881
  );
822
882
  this.body = body;
823
- this.name = "ForkVmNotFoundError";
883
+ this.name = "VmNotInTransactionError";
824
884
  }
825
- static code = "FORK_VM_NOT_FOUND";
885
+ static code = "VM_NOT_IN_TRANSACTION";
826
886
  static statusCode = 404;
827
- static description = `Fork VM not found: {fork_vm_id}`;
828
- }
829
- class CreateSnapshotBadRequestError extends Error {
830
- constructor(body) {
831
- super(
832
- `CREATE_SNAPSHOT_BAD_REQUEST: ${body.message}`
833
- );
834
- this.body = body;
835
- this.name = "CreateSnapshotBadRequestError";
836
- }
837
- static code = "CREATE_SNAPSHOT_BAD_REQUEST";
838
- static statusCode = 400;
839
- static description = `Bad request: {message}`;
840
- }
841
- class ActiveTransactionErrorError extends Error {
842
- constructor(body) {
843
- super(
844
- `ACTIVE_TRANSACTION_ERROR: ${body.message}`
845
- );
846
- this.body = body;
847
- this.name = "ActiveTransactionErrorError";
848
- }
849
- static code = "ACTIVE_TRANSACTION_ERROR";
850
- static statusCode = 500;
851
- static description = `Active transaction error: {details}`;
852
- }
853
- class SwapVmTapError extends Error {
854
- constructor(body) {
855
- super(
856
- `SWAP_VM_TAP: ${body.message}`
857
- );
858
- this.body = body;
859
- this.name = "SwapVmTapError";
860
- }
861
- static code = "SWAP_VM_TAP";
862
- static statusCode = 500;
863
- static description = `Failed to swap tap device: {details}`;
864
- }
865
- class RootfsCopyErrorError extends Error {
866
- constructor(body) {
867
- super(
868
- `ROOTFS_COPY_ERROR: ${body.message}`
869
- );
870
- this.body = body;
871
- this.name = "RootfsCopyErrorError";
872
- }
873
- static code = "ROOTFS_COPY_ERROR";
874
- static statusCode = 500;
875
- static description = `Failed to copy rootfs from {from} to {to}: {details}`;
887
+ static description = `VM not in a transaction: {vm_id}`;
876
888
  }
877
889
  class CreateVmBadRequestError extends Error {
878
890
  constructor(body) {
@@ -1210,161 +1222,149 @@ class ExpiredError extends Error {
1210
1222
  static statusCode = 403;
1211
1223
  static description = `Session has expired`;
1212
1224
  }
1213
- class ForbiddenError extends Error {
1225
+ class BranchNotFoundError extends Error {
1214
1226
  constructor(body) {
1215
1227
  super(
1216
- `FORBIDDEN: ${body.message}`
1228
+ `BRANCH_NOT_FOUND: ${body.message}`
1217
1229
  );
1218
1230
  this.body = body;
1219
- this.name = "ForbiddenError";
1231
+ this.name = "BranchNotFoundError";
1220
1232
  }
1221
- static code = "FORBIDDEN";
1222
- static statusCode = 403;
1223
- static description = `You do not have permission to push to this repository`;
1233
+ static code = "BRANCH_NOT_FOUND";
1234
+ static statusCode = 404;
1235
+ static description = `Branch not found: {branch}`;
1224
1236
  }
1225
- class UnauthorizedError extends Error {
1237
+ class BranchAlreadyExistsError extends Error {
1226
1238
  constructor(body) {
1227
1239
  super(
1228
- `UNAUTHORIZED: ${body.message}`
1240
+ `BRANCH_ALREADY_EXISTS: ${body.message}`
1229
1241
  );
1230
1242
  this.body = body;
1231
- this.name = "UnauthorizedError";
1243
+ this.name = "BranchAlreadyExistsError";
1232
1244
  }
1233
- static code = "UNAUTHORIZED";
1234
- static statusCode = 401;
1235
- static description = `Unauthorized`;
1245
+ static code = "BRANCH_ALREADY_EXISTS";
1246
+ static statusCode = 409;
1247
+ static description = `Branch already exists: {branch}`;
1236
1248
  }
1237
- class BlobNotFoundError extends Error {
1249
+ class NoDefaultBranchError extends Error {
1238
1250
  constructor(body) {
1239
1251
  super(
1240
- `BLOB_NOT_FOUND: ${body.message}`
1252
+ `NO_DEFAULT_BRANCH: ${body.message}`
1241
1253
  );
1242
1254
  this.body = body;
1243
- this.name = "BlobNotFoundError";
1255
+ this.name = "NoDefaultBranchError";
1244
1256
  }
1245
- static code = "BLOB_NOT_FOUND";
1257
+ static code = "NO_DEFAULT_BRANCH";
1246
1258
  static statusCode = 404;
1247
- static description = `Blob not found: {hash}`;
1259
+ static description = `Repository has no default branch configured`;
1248
1260
  }
1249
- class InvalidRangeError extends Error {
1261
+ class CommitNotFoundError extends Error {
1250
1262
  constructor(body) {
1251
1263
  super(
1252
- `INVALID_RANGE: ${body.message}`
1264
+ `COMMIT_NOT_FOUND: ${body.message}`
1253
1265
  );
1254
1266
  this.body = body;
1255
- this.name = "InvalidRangeError";
1267
+ this.name = "CommitNotFoundError";
1256
1268
  }
1257
- static code = "INVALID_RANGE";
1258
- static statusCode = 400;
1259
- 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.`;
1269
+ static code = "COMMIT_NOT_FOUND";
1270
+ static statusCode = 404;
1271
+ static description = `Commit not found: {sha}`;
1260
1272
  }
1261
- class OffsetWithSelectorError extends Error {
1273
+ class ParentNotFoundError extends Error {
1262
1274
  constructor(body) {
1263
1275
  super(
1264
- `OFFSET_WITH_SELECTOR: ${body.message}`
1276
+ `PARENT_NOT_FOUND: ${body.message}`
1265
1277
  );
1266
1278
  this.body = body;
1267
- this.name = "OffsetWithSelectorError";
1279
+ this.name = "ParentNotFoundError";
1268
1280
  }
1269
- static code = "OFFSET_WITH_SELECTOR";
1270
- static statusCode = 400;
1271
- static description = `Cannot use 'offset' parameter together with 'since' or 'until'. Use 'since' for cursor-based pagination.`;
1281
+ static code = "PARENT_NOT_FOUND";
1282
+ static statusCode = 404;
1283
+ static description = `Parent commit not found: {sha}`;
1272
1284
  }
1273
- class CommitNotInBranchError extends Error {
1285
+ class TreeNotFoundError extends Error {
1274
1286
  constructor(body) {
1275
1287
  super(
1276
- `COMMIT_NOT_IN_BRANCH: ${body.message}`
1288
+ `TREE_NOT_FOUND: ${body.message}`
1277
1289
  );
1278
1290
  this.body = body;
1279
- this.name = "CommitNotInBranchError";
1291
+ this.name = "TreeNotFoundError";
1280
1292
  }
1281
- static code = "COMMIT_NOT_IN_BRANCH";
1282
- static statusCode = 400;
1283
- static description = `Commit {sha} is not in the history of branch {branch}`;
1293
+ static code = "TREE_NOT_FOUND";
1294
+ static statusCode = 404;
1295
+ static description = `Tree not found: {sha}`;
1284
1296
  }
1285
- class CommitNotFoundError extends Error {
1297
+ class PackfileError extends Error {
1286
1298
  constructor(body) {
1287
1299
  super(
1288
- `COMMIT_NOT_FOUND: ${body.message}`
1300
+ `PACKFILE: ${body.message}`
1289
1301
  );
1290
1302
  this.body = body;
1291
- this.name = "CommitNotFoundError";
1292
- }
1293
- static code = "COMMIT_NOT_FOUND";
1294
- static statusCode = 400;
1295
- static description = `Commit not found: {sha}`;
1296
- }
1297
- class BranchNotFoundError extends Error {
1298
- constructor(body) {
1299
- super(
1300
- `BRANCH_NOT_FOUND: ${body.message}`
1301
- );
1302
- this.body = body;
1303
- this.name = "BranchNotFoundError";
1303
+ this.name = "PackfileError";
1304
1304
  }
1305
- static code = "BRANCH_NOT_FOUND";
1306
- static statusCode = 404;
1307
- static description = `Branch not found: {branch}`;
1305
+ static code = "PACKFILE";
1306
+ static statusCode = 500;
1307
+ static description = `Error building packfile`;
1308
1308
  }
1309
- class NoDefaultBranchError extends Error {
1309
+ class InvalidRevisionError extends Error {
1310
1310
  constructor(body) {
1311
1311
  super(
1312
- `NO_DEFAULT_BRANCH: ${body.message}`
1312
+ `INVALID_REVISION: ${body.message}`
1313
1313
  );
1314
1314
  this.body = body;
1315
- this.name = "NoDefaultBranchError";
1315
+ this.name = "InvalidRevisionError";
1316
1316
  }
1317
- static code = "NO_DEFAULT_BRANCH";
1318
- static statusCode = 404;
1319
- static description = `Repository has no default branch configured`;
1317
+ static code = "INVALID_REVISION";
1318
+ static statusCode = 400;
1319
+ static description = `Invalid revision: {revision}`;
1320
1320
  }
1321
- class InvalidBase64ContentError extends Error {
1321
+ class ForbiddenError extends Error {
1322
1322
  constructor(body) {
1323
1323
  super(
1324
- `INVALID_BASE64_CONTENT: ${body.message}`
1324
+ `FORBIDDEN: ${body.message}`
1325
1325
  );
1326
1326
  this.body = body;
1327
- this.name = "InvalidBase64ContentError";
1327
+ this.name = "ForbiddenError";
1328
1328
  }
1329
- static code = "INVALID_BASE64_CONTENT";
1330
- static statusCode = 400;
1331
- static description = `Invalid base64 content for file: {path}`;
1329
+ static code = "FORBIDDEN";
1330
+ static statusCode = 403;
1331
+ static description = `Forbidden`;
1332
1332
  }
1333
- class InvalidFileChangeError extends Error {
1333
+ class UnauthorizedError extends Error {
1334
1334
  constructor(body) {
1335
1335
  super(
1336
- `INVALID_FILE_CHANGE: ${body.message}`
1336
+ `UNAUTHORIZED: ${body.message}`
1337
1337
  );
1338
1338
  this.body = body;
1339
- this.name = "InvalidFileChangeError";
1339
+ this.name = "UnauthorizedError";
1340
1340
  }
1341
- static code = "INVALID_FILE_CHANGE";
1342
- static statusCode = 400;
1343
- static description = `File change must have either content or deleted flag, not both: {path}`;
1341
+ static code = "UNAUTHORIZED";
1342
+ static statusCode = 401;
1343
+ static description = `Unauthorized`;
1344
1344
  }
1345
- class InvalidFilePathError extends Error {
1345
+ class PathNotFoundError extends Error {
1346
1346
  constructor(body) {
1347
1347
  super(
1348
- `INVALID_FILE_PATH: ${body.message}`
1348
+ `PATH_NOT_FOUND: ${body.message}`
1349
1349
  );
1350
1350
  this.body = body;
1351
- this.name = "InvalidFilePathError";
1351
+ this.name = "PathNotFoundError";
1352
1352
  }
1353
- static code = "INVALID_FILE_PATH";
1354
- static statusCode = 400;
1355
- static description = `Invalid file path: {path}`;
1353
+ static code = "PATH_NOT_FOUND";
1354
+ static statusCode = 404;
1355
+ static description = `Path not found: {path}`;
1356
1356
  }
1357
- class ConflictingParentError extends Error {
1357
+ class ReferenceNotFoundError extends Error {
1358
1358
  constructor(body) {
1359
1359
  super(
1360
- `CONFLICTING_PARENT: ${body.message}`
1360
+ `REFERENCE_NOT_FOUND: ${body.message}`
1361
1361
  );
1362
1362
  this.body = body;
1363
- this.name = "ConflictingParentError";
1363
+ this.name = "ReferenceNotFoundError";
1364
1364
  }
1365
- static code = "CONFLICTING_PARENT";
1366
- static statusCode = 409;
1367
- static description = `Conflict: expected parent SHA {expected} but current is {actual:?}`;
1365
+ static code = "REFERENCE_NOT_FOUND";
1366
+ static statusCode = 404;
1367
+ static description = `Reference not found: {reference}`;
1368
1368
  }
1369
1369
  class AmbiguousError extends Error {
1370
1370
  constructor(body) {
@@ -1402,137 +1402,185 @@ class InvalidError extends Error {
1402
1402
  static statusCode = 400;
1403
1403
  static description = `invalid rev syntax: {rev}`;
1404
1404
  }
1405
- class UnsupportedTransferError extends Error {
1405
+ class DiffInvalidPathPatternError extends Error {
1406
1406
  constructor(body) {
1407
1407
  super(
1408
- `UNSUPPORTED_TRANSFER: ${body.message}`
1408
+ `DIFF_INVALID_PATH_PATTERN: ${body.message}`
1409
1409
  );
1410
1410
  this.body = body;
1411
- this.name = "UnsupportedTransferError";
1411
+ this.name = "DiffInvalidPathPatternError";
1412
1412
  }
1413
- static code = "UNSUPPORTED_TRANSFER";
1413
+ static code = "DIFF_INVALID_PATH_PATTERN";
1414
1414
  static statusCode = 400;
1415
- static description = `Unsupported LFS transfer protocol(s)`;
1415
+ static description = `Invalid path pattern: {reason}`;
1416
1416
  }
1417
- class TreeNotFoundError extends Error {
1417
+ class DiffInvalidRegexError extends Error {
1418
1418
  constructor(body) {
1419
1419
  super(
1420
- `TREE_NOT_FOUND: ${body.message}`
1420
+ `DIFF_INVALID_REGEX: ${body.message}`
1421
1421
  );
1422
1422
  this.body = body;
1423
- this.name = "TreeNotFoundError";
1423
+ this.name = "DiffInvalidRegexError";
1424
1424
  }
1425
- static code = "TREE_NOT_FOUND";
1426
- static statusCode = 404;
1427
- static description = `Tree not found: {hash}`;
1425
+ static code = "DIFF_INVALID_REGEX";
1426
+ static statusCode = 400;
1427
+ static description = `Invalid regex pattern: {reason}`;
1428
1428
  }
1429
- class ParentNotFoundError extends Error {
1429
+ class DiffEmptyQueryError extends Error {
1430
1430
  constructor(body) {
1431
1431
  super(
1432
- `PARENT_NOT_FOUND: ${body.message}`
1432
+ `DIFF_EMPTY_QUERY: ${body.message}`
1433
1433
  );
1434
1434
  this.body = body;
1435
- this.name = "ParentNotFoundError";
1435
+ this.name = "DiffEmptyQueryError";
1436
1436
  }
1437
- static code = "PARENT_NOT_FOUND";
1438
- static statusCode = 404;
1439
- static description = `Parent commit not found: {sha}`;
1437
+ static code = "DIFF_EMPTY_QUERY";
1438
+ static statusCode = 400;
1439
+ static description = `Query must not be empty`;
1440
1440
  }
1441
- class InvalidServiceError extends Error {
1441
+ class CommitInvalidRegexError extends Error {
1442
1442
  constructor(body) {
1443
1443
  super(
1444
- `INVALID_SERVICE: ${body.message}`
1444
+ `COMMIT_INVALID_REGEX: ${body.message}`
1445
1445
  );
1446
1446
  this.body = body;
1447
- this.name = "InvalidServiceError";
1447
+ this.name = "CommitInvalidRegexError";
1448
1448
  }
1449
- static code = "INVALID_SERVICE";
1450
- static statusCode = 403;
1451
- static description = `Invalid service '{invalid}', expected 'git-upload-pack' or 'git-receive-pack'`;
1449
+ static code = "COMMIT_INVALID_REGEX";
1450
+ static statusCode = 400;
1451
+ static description = `Invalid regex pattern: {reason}`;
1452
1452
  }
1453
- class ExpectedServiceError extends Error {
1453
+ class CommitEmptyQueryError extends Error {
1454
1454
  constructor(body) {
1455
1455
  super(
1456
- `EXPECTED_SERVICE: ${body.message}`
1456
+ `COMMIT_EMPTY_QUERY: ${body.message}`
1457
1457
  );
1458
1458
  this.body = body;
1459
- this.name = "ExpectedServiceError";
1459
+ this.name = "CommitEmptyQueryError";
1460
1460
  }
1461
- static code = "EXPECTED_SERVICE";
1462
- static statusCode = 403;
1463
- static description = `Expected 'service' query parameter`;
1461
+ static code = "COMMIT_EMPTY_QUERY";
1462
+ static statusCode = 400;
1463
+ static description = `Query must not be empty`;
1464
1464
  }
1465
- class PathNotFoundError extends Error {
1465
+ class FilenameInvalidPatternError extends Error {
1466
1466
  constructor(body) {
1467
1467
  super(
1468
- `PATH_NOT_FOUND: ${body.message}`
1468
+ `FILENAME_INVALID_PATTERN: ${body.message}`
1469
1469
  );
1470
1470
  this.body = body;
1471
- this.name = "PathNotFoundError";
1471
+ this.name = "FilenameInvalidPatternError";
1472
1472
  }
1473
- static code = "PATH_NOT_FOUND";
1474
- static statusCode = 404;
1475
- static description = `Path not found: {path}`;
1473
+ static code = "FILENAME_INVALID_PATTERN";
1474
+ static statusCode = 400;
1475
+ static description = `Invalid pattern: {reason}`;
1476
1476
  }
1477
- class ReferenceNotFoundError extends Error {
1477
+ class FilenameEmptyQueryError extends Error {
1478
1478
  constructor(body) {
1479
1479
  super(
1480
- `REFERENCE_NOT_FOUND: ${body.message}`
1480
+ `FILENAME_EMPTY_QUERY: ${body.message}`
1481
1481
  );
1482
1482
  this.body = body;
1483
- this.name = "ReferenceNotFoundError";
1483
+ this.name = "FilenameEmptyQueryError";
1484
1484
  }
1485
- static code = "REFERENCE_NOT_FOUND";
1486
- static statusCode = 404;
1487
- static description = `Reference not found: {reference}`;
1485
+ static code = "FILENAME_EMPTY_QUERY";
1486
+ static statusCode = 400;
1487
+ static description = `Query must not be empty`;
1488
1488
  }
1489
- class TagNotFoundError extends Error {
1489
+ class InvalidRegexError extends Error {
1490
1490
  constructor(body) {
1491
1491
  super(
1492
- `TAG_NOT_FOUND: ${body.message}`
1492
+ `INVALID_REGEX: ${body.message}`
1493
1493
  );
1494
1494
  this.body = body;
1495
- this.name = "TagNotFoundError";
1495
+ this.name = "InvalidRegexError";
1496
1496
  }
1497
- static code = "TAG_NOT_FOUND";
1498
- static statusCode = 404;
1499
- static description = `Tag not found: {hash}`;
1497
+ static code = "INVALID_REGEX";
1498
+ static statusCode = 400;
1499
+ static description = `Invalid regex pattern: {reason}`;
1500
1500
  }
1501
- class InvalidRevisionError extends Error {
1501
+ class InvalidPathPatternError extends Error {
1502
1502
  constructor(body) {
1503
1503
  super(
1504
- `INVALID_REVISION: ${body.message}`
1504
+ `INVALID_PATH_PATTERN: ${body.message}`
1505
1505
  );
1506
1506
  this.body = body;
1507
- this.name = "InvalidRevisionError";
1507
+ this.name = "InvalidPathPatternError";
1508
1508
  }
1509
- static code = "INVALID_REVISION";
1509
+ static code = "INVALID_PATH_PATTERN";
1510
1510
  static statusCode = 400;
1511
- static description = `Invalid revision: {revision}`;
1511
+ static description = `Invalid path pattern: {reason}`;
1512
1512
  }
1513
- class PackfileError extends Error {
1513
+ class EmptyQueryError extends Error {
1514
1514
  constructor(body) {
1515
1515
  super(
1516
- `PACKFILE: ${body.message}`
1516
+ `EMPTY_QUERY: ${body.message}`
1517
1517
  );
1518
1518
  this.body = body;
1519
- this.name = "PackfileError";
1519
+ this.name = "EmptyQueryError";
1520
1520
  }
1521
- static code = "PACKFILE";
1522
- static statusCode = 500;
1523
- static description = `Error building packfile`;
1521
+ static code = "EMPTY_QUERY";
1522
+ static statusCode = 400;
1523
+ static description = `Query must not be empty`;
1524
1524
  }
1525
- class SendErrorError extends Error {
1525
+ class ConflictError extends Error {
1526
1526
  constructor(body) {
1527
1527
  super(
1528
- `SEND_ERROR: ${body.message}`
1528
+ `CONFLICT: ${body.message}`
1529
1529
  );
1530
1530
  this.body = body;
1531
- this.name = "SendErrorError";
1531
+ this.name = "ConflictError";
1532
1532
  }
1533
- static code = "SEND_ERROR";
1534
- static statusCode = 500;
1535
- static description = `Stream receiver dropped`;
1533
+ static code = "CONFLICT";
1534
+ static statusCode = 409;
1535
+ static description = `Sync conflict: {message}`;
1536
+ }
1537
+ class InvalidBase64ContentError extends Error {
1538
+ constructor(body) {
1539
+ super(
1540
+ `INVALID_BASE64_CONTENT: ${body.message}`
1541
+ );
1542
+ this.body = body;
1543
+ this.name = "InvalidBase64ContentError";
1544
+ }
1545
+ static code = "INVALID_BASE64_CONTENT";
1546
+ static statusCode = 400;
1547
+ static description = `Invalid base64 content for file: {path}`;
1548
+ }
1549
+ class InvalidFileChangeError extends Error {
1550
+ constructor(body) {
1551
+ super(
1552
+ `INVALID_FILE_CHANGE: ${body.message}`
1553
+ );
1554
+ this.body = body;
1555
+ this.name = "InvalidFileChangeError";
1556
+ }
1557
+ static code = "INVALID_FILE_CHANGE";
1558
+ static statusCode = 400;
1559
+ static description = `File change must have either content or deleted flag, not both: {path}`;
1560
+ }
1561
+ class InvalidFilePathError extends Error {
1562
+ constructor(body) {
1563
+ super(
1564
+ `INVALID_FILE_PATH: ${body.message}`
1565
+ );
1566
+ this.body = body;
1567
+ this.name = "InvalidFilePathError";
1568
+ }
1569
+ static code = "INVALID_FILE_PATH";
1570
+ static statusCode = 400;
1571
+ static description = `Invalid file path: {path}`;
1572
+ }
1573
+ class ConflictingParentError extends Error {
1574
+ constructor(body) {
1575
+ super(
1576
+ `CONFLICTING_PARENT: ${body.message}`
1577
+ );
1578
+ this.body = body;
1579
+ this.name = "ConflictingParentError";
1580
+ }
1581
+ static code = "CONFLICTING_PARENT";
1582
+ static statusCode = 409;
1583
+ static description = `Conflict: expected parent SHA {expected} but current is {actual:?}`;
1536
1584
  }
1537
1585
  class InvalidAccountIdError extends Error {
1538
1586
  constructor(body) {
@@ -1606,725 +1654,809 @@ class RepoAlreadyExistsError extends Error {
1606
1654
  static statusCode = 409;
1607
1655
  static description = `Repo '{repo_id}' already exists`;
1608
1656
  }
1609
- class ConflictError extends Error {
1657
+ class SendErrorError extends Error {
1610
1658
  constructor(body) {
1611
1659
  super(
1612
- `CONFLICT: ${body.message}`
1660
+ `SEND_ERROR: ${body.message}`
1613
1661
  );
1614
1662
  this.body = body;
1615
- this.name = "ConflictError";
1663
+ this.name = "SendErrorError";
1616
1664
  }
1617
- static code = "CONFLICT";
1618
- static statusCode = 409;
1619
- static description = `Sync conflict: {message}`;
1665
+ static code = "SEND_ERROR";
1666
+ static statusCode = 500;
1667
+ static description = `Stream receiver dropped`;
1620
1668
  }
1621
- class BranchAlreadyExistsError extends Error {
1669
+ class InvalidRangeError extends Error {
1622
1670
  constructor(body) {
1623
1671
  super(
1624
- `BRANCH_ALREADY_EXISTS: ${body.message}`
1672
+ `INVALID_RANGE: ${body.message}`
1625
1673
  );
1626
1674
  this.body = body;
1627
- this.name = "BranchAlreadyExistsError";
1675
+ this.name = "InvalidRangeError";
1628
1676
  }
1629
- static code = "BRANCH_ALREADY_EXISTS";
1630
- static statusCode = 409;
1631
- static description = `Branch already exists: {branch}`;
1677
+ static code = "INVALID_RANGE";
1678
+ static statusCode = 400;
1679
+ 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.`;
1632
1680
  }
1633
- class GitHubSyncConflictError extends Error {
1681
+ class OffsetWithSelectorError extends Error {
1634
1682
  constructor(body) {
1635
1683
  super(
1636
- `GIT_HUB_SYNC_CONFLICT: ${body.message}`
1684
+ `OFFSET_WITH_SELECTOR: ${body.message}`
1637
1685
  );
1638
1686
  this.body = body;
1639
- this.name = "GitHubSyncConflictError";
1687
+ this.name = "OffsetWithSelectorError";
1640
1688
  }
1641
- static code = "GIT_HUB_SYNC_CONFLICT";
1642
- static statusCode = 409;
1643
- static description = `GitHub Sync Conflict: {message}`;
1689
+ static code = "OFFSET_WITH_SELECTOR";
1690
+ static statusCode = 400;
1691
+ static description = `Cannot use 'offset' parameter together with 'since' or 'until'. Use 'since' for cursor-based pagination.`;
1644
1692
  }
1645
- class InvalidObjectIdError extends Error {
1693
+ class CommitNotInBranchError extends Error {
1646
1694
  constructor(body) {
1647
1695
  super(
1648
- `INVALID_OBJECT_ID: ${body.message}`
1696
+ `COMMIT_NOT_IN_BRANCH: ${body.message}`
1649
1697
  );
1650
1698
  this.body = body;
1651
- this.name = "InvalidObjectIdError";
1699
+ this.name = "CommitNotInBranchError";
1652
1700
  }
1653
- static code = "INVALID_OBJECT_ID";
1701
+ static code = "COMMIT_NOT_IN_BRANCH";
1654
1702
  static statusCode = 400;
1655
- static description = `Invalid object ID: {hash}`;
1703
+ static description = `Commit {sha} is not in the history of branch {branch}`;
1656
1704
  }
1657
- class UnavailableError extends Error {
1705
+ class TagNotFoundError extends Error {
1658
1706
  constructor(body) {
1659
1707
  super(
1660
- `UNAVAILABLE: ${body.message}`
1708
+ `TAG_NOT_FOUND: ${body.message}`
1661
1709
  );
1662
1710
  this.body = body;
1663
- this.name = "UnavailableError";
1711
+ this.name = "TagNotFoundError";
1664
1712
  }
1665
- static code = "UNAVAILABLE";
1666
- static statusCode = 503;
1667
- static description = `Cron service unavailable`;
1668
- }
1669
- class ScheduleNotFoundError extends Error {
1670
- constructor(body) {
1671
- super(
1672
- `SCHEDULE_NOT_FOUND: ${body.message}`
1673
- );
1674
- this.body = body;
1675
- this.name = "ScheduleNotFoundError";
1676
- }
1677
- static code = "SCHEDULE_NOT_FOUND";
1713
+ static code = "TAG_NOT_FOUND";
1678
1714
  static statusCode = 404;
1679
- static description = `Schedule not found`;
1715
+ static description = `Tag not found: {hash}`;
1680
1716
  }
1681
- class ServiceUnavailableError extends Error {
1717
+ class InvalidServiceError extends Error {
1682
1718
  constructor(body) {
1683
1719
  super(
1684
- `SERVICE_UNAVAILABLE: ${body.message}`
1720
+ `INVALID_SERVICE: ${body.message}`
1685
1721
  );
1686
1722
  this.body = body;
1687
- this.name = "ServiceUnavailableError";
1723
+ this.name = "InvalidServiceError";
1688
1724
  }
1689
- static code = "SERVICE_UNAVAILABLE";
1690
- static statusCode = 503;
1691
- static description = `Cron service not configured`;
1725
+ static code = "INVALID_SERVICE";
1726
+ static statusCode = 403;
1727
+ static description = `Invalid service '{invalid}', expected 'git-upload-pack' or 'git-receive-pack'`;
1692
1728
  }
1693
- class ExecuteLimitExceededError extends Error {
1729
+ class ExpectedServiceError extends Error {
1694
1730
  constructor(body) {
1695
1731
  super(
1696
- `EXECUTE_LIMIT_EXCEEDED: ${body.message}`
1732
+ `EXPECTED_SERVICE: ${body.message}`
1697
1733
  );
1698
1734
  this.body = body;
1699
- this.name = "ExecuteLimitExceededError";
1735
+ this.name = "ExpectedServiceError";
1700
1736
  }
1701
- static code = "EXECUTE_LIMIT_EXCEEDED";
1737
+ static code = "EXPECTED_SERVICE";
1702
1738
  static statusCode = 403;
1703
- static description = `Execute runs limit exceeded: your plan allows {limit} runs per month, you have used {current}`;
1739
+ static description = `Expected 'service' query parameter`;
1704
1740
  }
1705
- class ObservabilityDatabaseErrorError extends Error {
1741
+ class GitHubSyncConflictError extends Error {
1706
1742
  constructor(body) {
1707
1743
  super(
1708
- `OBSERVABILITY_DATABASE_ERROR: ${body.message}`
1744
+ `GIT_HUB_SYNC_CONFLICT: ${body.message}`
1709
1745
  );
1710
1746
  this.body = body;
1711
- this.name = "ObservabilityDatabaseErrorError";
1747
+ this.name = "GitHubSyncConflictError";
1712
1748
  }
1713
- static code = "OBSERVABILITY_DATABASE_ERROR";
1714
- static statusCode = 500;
1715
- static description = `Database operation failed: {message}`;
1749
+ static code = "GIT_HUB_SYNC_CONFLICT";
1750
+ static statusCode = 409;
1751
+ static description = `GitHub Sync Conflict: {message}`;
1716
1752
  }
1717
- class ObservabilityAccessDeniedError extends Error {
1753
+ class InvalidObjectIdError extends Error {
1718
1754
  constructor(body) {
1719
1755
  super(
1720
- `OBSERVABILITY_ACCESS_DENIED: ${body.message}`
1756
+ `INVALID_OBJECT_ID: ${body.message}`
1721
1757
  );
1722
1758
  this.body = body;
1723
- this.name = "ObservabilityAccessDeniedError";
1759
+ this.name = "InvalidObjectIdError";
1724
1760
  }
1725
- static code = "OBSERVABILITY_ACCESS_DENIED";
1726
- static statusCode = 403;
1727
- static description = `Access denied to logs for deployment: {deployment_id}`;
1761
+ static code = "INVALID_OBJECT_ID";
1762
+ static statusCode = 400;
1763
+ static description = `Invalid object ID: {hash}`;
1728
1764
  }
1729
- class ParseLogsFailedError extends Error {
1765
+ class UnsupportedTransferError extends Error {
1730
1766
  constructor(body) {
1731
1767
  super(
1732
- `PARSE_LOGS_FAILED: ${body.message}`
1768
+ `UNSUPPORTED_TRANSFER: ${body.message}`
1733
1769
  );
1734
1770
  this.body = body;
1735
- this.name = "ParseLogsFailedError";
1771
+ this.name = "UnsupportedTransferError";
1736
1772
  }
1737
- static code = "PARSE_LOGS_FAILED";
1738
- static statusCode = 500;
1739
- static description = `Failed to parse logs: {message}`;
1773
+ static code = "UNSUPPORTED_TRANSFER";
1774
+ static statusCode = 400;
1775
+ static description = `Unsupported LFS transfer protocol(s)`;
1740
1776
  }
1741
- class RetrieveLogsFailedError extends Error {
1777
+ class BlobNotFoundError extends Error {
1742
1778
  constructor(body) {
1743
1779
  super(
1744
- `RETRIEVE_LOGS_FAILED: ${body.message}`
1780
+ `BLOB_NOT_FOUND: ${body.message}`
1745
1781
  );
1746
1782
  this.body = body;
1747
- this.name = "RetrieveLogsFailedError";
1783
+ this.name = "BlobNotFoundError";
1748
1784
  }
1749
- static code = "RETRIEVE_LOGS_FAILED";
1750
- static statusCode = 500;
1751
- static description = `Failed to retrieve logs: {message}`;
1785
+ static code = "BLOB_NOT_FOUND";
1786
+ static statusCode = 404;
1787
+ static description = `Blob not found: {hash}`;
1752
1788
  }
1753
- class InvalidQueryError extends Error {
1789
+ class UnavailableError extends Error {
1754
1790
  constructor(body) {
1755
1791
  super(
1756
- `INVALID_QUERY: ${body.message}`
1792
+ `UNAVAILABLE: ${body.message}`
1757
1793
  );
1758
1794
  this.body = body;
1759
- this.name = "InvalidQueryError";
1795
+ this.name = "UnavailableError";
1760
1796
  }
1761
- static code = "INVALID_QUERY";
1762
- static statusCode = 400;
1763
- static description = `Invalid log query: {message}`;
1797
+ static code = "UNAVAILABLE";
1798
+ static statusCode = 503;
1799
+ static description = `Cron service unavailable`;
1764
1800
  }
1765
- class LogsNotFoundError extends Error {
1801
+ class ScheduleNotFoundError extends Error {
1766
1802
  constructor(body) {
1767
1803
  super(
1768
- `LOGS_NOT_FOUND: ${body.message}`
1804
+ `SCHEDULE_NOT_FOUND: ${body.message}`
1769
1805
  );
1770
1806
  this.body = body;
1771
- this.name = "LogsNotFoundError";
1807
+ this.name = "ScheduleNotFoundError";
1772
1808
  }
1773
- static code = "LOGS_NOT_FOUND";
1809
+ static code = "SCHEDULE_NOT_FOUND";
1774
1810
  static statusCode = 404;
1775
- static description = `Logs not found for deployment: {deployment_id}`;
1811
+ static description = `Schedule not found`;
1776
1812
  }
1777
- class ExecuteInternalErrorError extends Error {
1813
+ class ServiceUnavailableError extends Error {
1778
1814
  constructor(body) {
1779
1815
  super(
1780
- `EXECUTE_INTERNAL_ERROR: ${body.message}`
1816
+ `SERVICE_UNAVAILABLE: ${body.message}`
1781
1817
  );
1782
1818
  this.body = body;
1783
- this.name = "ExecuteInternalErrorError";
1819
+ this.name = "ServiceUnavailableError";
1784
1820
  }
1785
- static code = "EXECUTE_INTERNAL_ERROR";
1786
- static statusCode = 500;
1787
- static description = `Internal error: {message}`;
1821
+ static code = "SERVICE_UNAVAILABLE";
1822
+ static statusCode = 503;
1823
+ static description = `Cron service not configured`;
1788
1824
  }
1789
- class ExecuteAccessDeniedError extends Error {
1825
+ class ExecuteLimitExceededError extends Error {
1790
1826
  constructor(body) {
1791
1827
  super(
1792
- `EXECUTE_ACCESS_DENIED: ${body.message}`
1828
+ `EXECUTE_LIMIT_EXCEEDED: ${body.message}`
1793
1829
  );
1794
1830
  this.body = body;
1795
- this.name = "ExecuteAccessDeniedError";
1831
+ this.name = "ExecuteLimitExceededError";
1796
1832
  }
1797
- static code = "EXECUTE_ACCESS_DENIED";
1833
+ static code = "EXECUTE_LIMIT_EXCEEDED";
1798
1834
  static statusCode = 403;
1799
- static description = `Access denied to execute run`;
1835
+ static description = `Execute runs limit exceeded: your plan allows {limit} runs per month, you have used {current}`;
1800
1836
  }
1801
- class ListRunsFailedError extends Error {
1837
+ class AccessDeniedError extends Error {
1802
1838
  constructor(body) {
1803
1839
  super(
1804
- `LIST_RUNS_FAILED: ${body.message}`
1840
+ `ACCESS_DENIED: ${body.message}`
1805
1841
  );
1806
1842
  this.body = body;
1807
- this.name = "ListRunsFailedError";
1843
+ this.name = "AccessDeniedError";
1808
1844
  }
1809
- static code = "LIST_RUNS_FAILED";
1810
- static statusCode = 500;
1811
- static description = `Failed to list execute runs: {message}`;
1845
+ static code = "ACCESS_DENIED";
1846
+ static statusCode = 403;
1847
+ static description = `VM access denied`;
1812
1848
  }
1813
- class ExecutionErrorError extends Error {
1849
+ class CloudstateInternalErrorError extends Error {
1814
1850
  constructor(body) {
1815
1851
  super(
1816
- `EXECUTION_ERROR: ${body.message}`
1852
+ `CLOUDSTATE_INTERNAL_ERROR: ${body.message}`
1817
1853
  );
1818
1854
  this.body = body;
1819
- this.name = "ExecutionErrorError";
1855
+ this.name = "CloudstateInternalErrorError";
1820
1856
  }
1821
- static code = "EXECUTION_ERROR";
1857
+ static code = "CLOUDSTATE_INTERNAL_ERROR";
1822
1858
  static statusCode = 500;
1823
- static description = `Script execution error: {message}`;
1859
+ static description = `Internal error: {message}`;
1824
1860
  }
1825
- class ConnectionFailedError extends Error {
1861
+ class CloudstateDatabaseErrorError extends Error {
1826
1862
  constructor(body) {
1827
1863
  super(
1828
- `CONNECTION_FAILED: ${body.message}`
1864
+ `CLOUDSTATE_DATABASE_ERROR: ${body.message}`
1829
1865
  );
1830
1866
  this.body = body;
1831
- this.name = "ConnectionFailedError";
1867
+ this.name = "CloudstateDatabaseErrorError";
1832
1868
  }
1833
- static code = "CONNECTION_FAILED";
1869
+ static code = "CLOUDSTATE_DATABASE_ERROR";
1834
1870
  static statusCode = 500;
1835
- static description = `Failed to connect to execute server: {message}`;
1871
+ static description = `Database operation failed: {message}`;
1836
1872
  }
1837
- class MetadataWriteFailedError extends Error {
1873
+ class CloudstateAccessDeniedError extends Error {
1838
1874
  constructor(body) {
1839
1875
  super(
1840
- `METADATA_WRITE_FAILED: ${body.message}`
1876
+ `CLOUDSTATE_ACCESS_DENIED: ${body.message}`
1841
1877
  );
1842
1878
  this.body = body;
1843
- this.name = "MetadataWriteFailedError";
1879
+ this.name = "CloudstateAccessDeniedError";
1844
1880
  }
1845
- static code = "METADATA_WRITE_FAILED";
1846
- static statusCode = 500;
1847
- static description = `Failed to write metadata file: {message}`;
1881
+ static code = "CLOUDSTATE_ACCESS_DENIED";
1882
+ static statusCode = 403;
1883
+ static description = `Access denied to project: {project_id}`;
1848
1884
  }
1849
- class NodeModulesInstallFailedError extends Error {
1885
+ class RestoreFailedError extends Error {
1850
1886
  constructor(body) {
1851
1887
  super(
1852
- `NODE_MODULES_INSTALL_FAILED: ${body.message}`
1888
+ `RESTORE_FAILED: ${body.message}`
1853
1889
  );
1854
1890
  this.body = body;
1855
- this.name = "NodeModulesInstallFailedError";
1891
+ this.name = "RestoreFailedError";
1856
1892
  }
1857
- static code = "NODE_MODULES_INSTALL_FAILED";
1893
+ static code = "RESTORE_FAILED";
1858
1894
  static statusCode = 500;
1859
- static description = `Failed to install node modules: {message}`;
1895
+ static description = `Failed to restore from backup: {message}`;
1860
1896
  }
1861
- class NodeModulesDownloadFailedError extends Error {
1897
+ class CreateBackupFailedError extends Error {
1862
1898
  constructor(body) {
1863
1899
  super(
1864
- `NODE_MODULES_DOWNLOAD_FAILED: ${body.message}`
1900
+ `CREATE_BACKUP_FAILED: ${body.message}`
1865
1901
  );
1866
1902
  this.body = body;
1867
- this.name = "NodeModulesDownloadFailedError";
1903
+ this.name = "CreateBackupFailedError";
1868
1904
  }
1869
- static code = "NODE_MODULES_DOWNLOAD_FAILED";
1905
+ static code = "CREATE_BACKUP_FAILED";
1870
1906
  static statusCode = 500;
1871
- static description = `Failed to download node modules: {message}`;
1907
+ static description = `Failed to create backup: {message}`;
1872
1908
  }
1873
- class LockGenerationFailedError extends Error {
1909
+ class BackupFailedError extends Error {
1874
1910
  constructor(body) {
1875
1911
  super(
1876
- `LOCK_GENERATION_FAILED: ${body.message}`
1912
+ `BACKUP_FAILED: ${body.message}`
1877
1913
  );
1878
1914
  this.body = body;
1879
- this.name = "LockGenerationFailedError";
1915
+ this.name = "BackupFailedError";
1880
1916
  }
1881
- static code = "LOCK_GENERATION_FAILED";
1917
+ static code = "BACKUP_FAILED";
1882
1918
  static statusCode = 500;
1883
- static description = `Failed to generate lock file: {message}`;
1919
+ static description = `Backup failed: {message}`;
1884
1920
  }
1885
- class WriteScriptFailedError extends Error {
1921
+ class DeploymentFailedError extends Error {
1886
1922
  constructor(body) {
1887
1923
  super(
1888
- `WRITE_SCRIPT_FAILED: ${body.message}`
1924
+ `DEPLOYMENT_FAILED: ${body.message}`
1889
1925
  );
1890
1926
  this.body = body;
1891
- this.name = "WriteScriptFailedError";
1927
+ this.name = "DeploymentFailedError";
1892
1928
  }
1893
- static code = "WRITE_SCRIPT_FAILED";
1929
+ static code = "DEPLOYMENT_FAILED";
1894
1930
  static statusCode = 500;
1895
- static description = `Failed to write script file: {message}`;
1931
+ static description = `Deployment failed: {message}`;
1896
1932
  }
1897
- class DirectoryCreationFailedError extends Error {
1933
+ class InvalidDeploymentRequestError extends Error {
1898
1934
  constructor(body) {
1899
1935
  super(
1900
- `DIRECTORY_CREATION_FAILED: ${body.message}`
1936
+ `INVALID_DEPLOYMENT_REQUEST: ${body.message}`
1901
1937
  );
1902
1938
  this.body = body;
1903
- this.name = "DirectoryCreationFailedError";
1939
+ this.name = "InvalidDeploymentRequestError";
1904
1940
  }
1905
- static code = "DIRECTORY_CREATION_FAILED";
1906
- static statusCode = 500;
1907
- static description = `Failed to create script directory: {message}`;
1941
+ static code = "INVALID_DEPLOYMENT_REQUEST";
1942
+ static statusCode = 400;
1943
+ static description = `Invalid deployment request: {message}`;
1908
1944
  }
1909
- class NetworkPermissionsFailedError extends Error {
1945
+ class ProjectNotFoundError extends Error {
1910
1946
  constructor(body) {
1911
1947
  super(
1912
- `NETWORK_PERMISSIONS_FAILED: ${body.message}`
1948
+ `PROJECT_NOT_FOUND: ${body.message}`
1913
1949
  );
1914
1950
  this.body = body;
1915
- this.name = "NetworkPermissionsFailedError";
1951
+ this.name = "ProjectNotFoundError";
1916
1952
  }
1917
- static code = "NETWORK_PERMISSIONS_FAILED";
1918
- static statusCode = 500;
1919
- static description = `Failed to insert network permissions: {message}`;
1953
+ static code = "PROJECT_NOT_FOUND";
1954
+ static statusCode = 404;
1955
+ static description = `Project not found: {project_id}`;
1920
1956
  }
1921
- class LoggingFailedError extends Error {
1957
+ class BuildFailedError extends Error {
1922
1958
  constructor(body) {
1923
1959
  super(
1924
- `LOGGING_FAILED: ${body.message}`
1960
+ `BUILD_FAILED: ${body.message}`
1925
1961
  );
1926
1962
  this.body = body;
1927
- this.name = "LoggingFailedError";
1963
+ this.name = "BuildFailedError";
1928
1964
  }
1929
- static code = "LOGGING_FAILED";
1965
+ static code = "BUILD_FAILED";
1930
1966
  static statusCode = 500;
1931
- static description = `Failed to log execute run: {message}`;
1967
+ static description = `Build failed on VM {vm_id}`;
1932
1968
  }
1933
- class RunNotFoundError extends Error {
1969
+ class ServerDeploymentFailedError extends Error {
1934
1970
  constructor(body) {
1935
1971
  super(
1936
- `RUN_NOT_FOUND: ${body.message}`
1972
+ `SERVER_DEPLOYMENT_FAILED: ${body.message}`
1937
1973
  );
1938
1974
  this.body = body;
1939
- this.name = "RunNotFoundError";
1975
+ this.name = "ServerDeploymentFailedError";
1940
1976
  }
1941
- static code = "RUN_NOT_FOUND";
1942
- static statusCode = 404;
1943
- static description = `Execute run not found: {run_id}`;
1977
+ static code = "SERVER_DEPLOYMENT_FAILED";
1978
+ static statusCode = 502;
1979
+ static description = `Failed to deploy to servers`;
1944
1980
  }
1945
- class LimitExceededError extends Error {
1981
+ class LockfileErrorError extends Error {
1946
1982
  constructor(body) {
1947
1983
  super(
1948
- `LIMIT_EXCEEDED: ${body.message}`
1984
+ `LOCKFILE_ERROR: ${body.message}`
1949
1985
  );
1950
1986
  this.body = body;
1951
- this.name = "LimitExceededError";
1987
+ this.name = "LockfileErrorError";
1952
1988
  }
1953
- static code = "LIMIT_EXCEEDED";
1954
- static statusCode = 403;
1955
- static description = `Managed domains limit exceeded: your plan allows {limit} verified domains, you have {current}`;
1989
+ static code = "LOCKFILE_ERROR";
1990
+ static statusCode = 500;
1991
+ static description = `Failed to generate dependency lockfile: {message}`;
1956
1992
  }
1957
- class FailedToProvisionCertificateError extends Error {
1993
+ class UploadErrorError extends Error {
1958
1994
  constructor(body) {
1959
1995
  super(
1960
- `FAILED_TO_PROVISION_CERTIFICATE: ${body.message}`
1996
+ `UPLOAD_ERROR: ${body.message}`
1961
1997
  );
1962
1998
  this.body = body;
1963
- this.name = "FailedToProvisionCertificateError";
1999
+ this.name = "UploadErrorError";
1964
2000
  }
1965
- static code = "FAILED_TO_PROVISION_CERTIFICATE";
1966
- static statusCode = 422;
1967
- static description = `Failed to provision certificate: {message}`;
2001
+ static code = "UPLOAD_ERROR";
2002
+ static statusCode = 500;
2003
+ static description = `Failed to upload deployment to storage`;
1968
2004
  }
1969
- class FailedToInsertDomainMappingError extends Error {
2005
+ class DomainMappingErrorError extends Error {
1970
2006
  constructor(body) {
1971
2007
  super(
1972
- `FAILED_TO_INSERT_DOMAIN_MAPPING: ${body.message}`
2008
+ `DOMAIN_MAPPING_ERROR: ${body.message}`
1973
2009
  );
1974
2010
  this.body = body;
1975
- this.name = "FailedToInsertDomainMappingError";
2011
+ this.name = "DomainMappingErrorError";
1976
2012
  }
1977
- static code = "FAILED_TO_INSERT_DOMAIN_MAPPING";
2013
+ static code = "DOMAIN_MAPPING_ERROR";
1978
2014
  static statusCode = 500;
1979
- static description = `Failed to insert domain mapping: {message}`;
2015
+ static description = `Failed to configure domain mapping for: {domain}`;
1980
2016
  }
1981
- class PermissionDeniedError extends Error {
2017
+ class CertificateProvisioningErrorError extends Error {
1982
2018
  constructor(body) {
1983
2019
  super(
1984
- `PERMISSION_DENIED: ${body.message}`
2020
+ `CERTIFICATE_PROVISIONING_ERROR: ${body.message}`
1985
2021
  );
1986
2022
  this.body = body;
1987
- this.name = "PermissionDeniedError";
2023
+ this.name = "CertificateProvisioningErrorError";
1988
2024
  }
1989
- static code = "PERMISSION_DENIED";
1990
- static statusCode = 401;
1991
- static description = `Permission denied: {message}`;
2025
+ static code = "CERTIFICATE_PROVISIONING_ERROR";
2026
+ static statusCode = 502;
2027
+ static description = `Failed to provision certificate for domain: {domain}`;
1992
2028
  }
1993
- class FailedToCheckPermissionsError extends Error {
2029
+ class NoEntrypointFoundError extends Error {
1994
2030
  constructor(body) {
1995
2031
  super(
1996
- `FAILED_TO_CHECK_PERMISSIONS: ${body.message}`
2032
+ `NO_ENTRYPOINT_FOUND: ${body.message}`
1997
2033
  );
1998
2034
  this.body = body;
1999
- this.name = "FailedToCheckPermissionsError";
2035
+ this.name = "NoEntrypointFoundError";
2000
2036
  }
2001
- static code = "FAILED_TO_CHECK_PERMISSIONS";
2002
- static statusCode = 502;
2003
- static description = `Failed to check permissions: {message}`;
2037
+ static code = "NO_ENTRYPOINT_FOUND";
2038
+ static statusCode = 400;
2039
+ static description = `No entrypoint found in deployment`;
2004
2040
  }
2005
- class FailedToListDomainsError extends Error {
2041
+ class EntrypointNotFoundError extends Error {
2006
2042
  constructor(body) {
2007
2043
  super(
2008
- `FAILED_TO_LIST_DOMAINS: ${body.message}`
2044
+ `ENTRYPOINT_NOT_FOUND: ${body.message}`
2009
2045
  );
2010
2046
  this.body = body;
2011
- this.name = "FailedToListDomainsError";
2047
+ this.name = "EntrypointNotFoundError";
2012
2048
  }
2013
- static code = "FAILED_TO_LIST_DOMAINS";
2014
- static statusCode = 500;
2015
- static description = `Failed to list domains: {message}`;
2049
+ static code = "ENTRYPOINT_NOT_FOUND";
2050
+ static statusCode = 400;
2051
+ static description = `Entrypoint not found: {entrypoint}`;
2016
2052
  }
2017
- class FailedToListVerificationsError extends Error {
2053
+ class NoDomainOwnershipError extends Error {
2018
2054
  constructor(body) {
2019
2055
  super(
2020
- `FAILED_TO_LIST_VERIFICATIONS: ${body.message}`
2056
+ `NO_DOMAIN_OWNERSHIP: ${body.message}`
2021
2057
  );
2022
2058
  this.body = body;
2023
- this.name = "FailedToListVerificationsError";
2059
+ this.name = "NoDomainOwnershipError";
2024
2060
  }
2025
- static code = "FAILED_TO_LIST_VERIFICATIONS";
2026
- static statusCode = 500;
2027
- static description = `Failed to list verifications: {message}`;
2061
+ static code = "NO_DOMAIN_OWNERSHIP";
2062
+ static statusCode = 403;
2063
+ static description = `No domain ownership for: {domain}`;
2028
2064
  }
2029
- class FailedToVerifyDomainError extends Error {
2065
+ class InvalidDomainsError extends Error {
2030
2066
  constructor(body) {
2031
2067
  super(
2032
- `FAILED_TO_VERIFY_DOMAIN: ${body.message}`
2068
+ `INVALID_DOMAINS: ${body.message}`
2033
2069
  );
2034
2070
  this.body = body;
2035
- this.name = "FailedToVerifyDomainError";
2071
+ this.name = "InvalidDomainsError";
2036
2072
  }
2037
- static code = "FAILED_TO_VERIFY_DOMAIN";
2038
- static statusCode = 500;
2039
- static description = `Failed to verify domain: {message}`;
2073
+ static code = "INVALID_DOMAINS";
2074
+ static statusCode = 400;
2075
+ static description = `Invalid domains provided`;
2040
2076
  }
2041
- class VerificationFailedError extends Error {
2077
+ class WebDeploymentBadRequestError extends Error {
2042
2078
  constructor(body) {
2043
2079
  super(
2044
- `VERIFICATION_FAILED: ${body.message}`
2080
+ `WEB_DEPLOYMENT_BAD_REQUEST: ${body.message}`
2045
2081
  );
2046
2082
  this.body = body;
2047
- this.name = "VerificationFailedError";
2083
+ this.name = "WebDeploymentBadRequestError";
2048
2084
  }
2049
- static code = "VERIFICATION_FAILED";
2085
+ static code = "WEB_DEPLOYMENT_BAD_REQUEST";
2050
2086
  static statusCode = 400;
2051
- static description = `Domain verification failed: {message}`;
2087
+ static description = `Bad request: {message}`;
2052
2088
  }
2053
- class FailedToDeleteVerificationError extends Error {
2089
+ class TimeoutLimitExceededError extends Error {
2054
2090
  constructor(body) {
2055
2091
  super(
2056
- `FAILED_TO_DELETE_VERIFICATION: ${body.message}`
2092
+ `TIMEOUT_LIMIT_EXCEEDED: ${body.message}`
2057
2093
  );
2058
2094
  this.body = body;
2059
- this.name = "FailedToDeleteVerificationError";
2095
+ this.name = "TimeoutLimitExceededError";
2060
2096
  }
2061
- static code = "FAILED_TO_DELETE_VERIFICATION";
2062
- static statusCode = 400;
2063
- static description = `Failed to delete verification: {message}`;
2097
+ static code = "TIMEOUT_LIMIT_EXCEEDED";
2098
+ static statusCode = 403;
2099
+ static description = `Timeout exceeds plan limit: requested {requested_ms}ms but your plan allows a maximum of {max_ms}ms`;
2064
2100
  }
2065
- class VerificationNotFoundError extends Error {
2101
+ class DeploymentLimitExceededError extends Error {
2066
2102
  constructor(body) {
2067
2103
  super(
2068
- `VERIFICATION_NOT_FOUND: ${body.message}`
2104
+ `DEPLOYMENT_LIMIT_EXCEEDED: ${body.message}`
2069
2105
  );
2070
2106
  this.body = body;
2071
- this.name = "VerificationNotFoundError";
2107
+ this.name = "DeploymentLimitExceededError";
2072
2108
  }
2073
- static code = "VERIFICATION_NOT_FOUND";
2109
+ static code = "DEPLOYMENT_LIMIT_EXCEEDED";
2110
+ static statusCode = 403;
2111
+ static description = `Daily deployment limit exceeded: your plan allows {limit} deployments per day, you have created {current} today`;
2112
+ }
2113
+ class DeploymentNotFoundError extends Error {
2114
+ constructor(body) {
2115
+ super(
2116
+ `DEPLOYMENT_NOT_FOUND: ${body.message}`
2117
+ );
2118
+ this.body = body;
2119
+ this.name = "DeploymentNotFoundError";
2120
+ }
2121
+ static code = "DEPLOYMENT_NOT_FOUND";
2074
2122
  static statusCode = 404;
2075
- static description = `Verification request not found for domain: {domain}`;
2123
+ static description = `Deployment not found`;
2076
2124
  }
2077
- class FailedToCreateVerificationCodeError extends Error {
2125
+ class ResizeFailedError extends Error {
2078
2126
  constructor(body) {
2079
2127
  super(
2080
- `FAILED_TO_CREATE_VERIFICATION_CODE: ${body.message}`
2128
+ `RESIZE_FAILED: ${body.message}`
2081
2129
  );
2082
2130
  this.body = body;
2083
- this.name = "FailedToCreateVerificationCodeError";
2131
+ this.name = "ResizeFailedError";
2084
2132
  }
2085
- static code = "FAILED_TO_CREATE_VERIFICATION_CODE";
2086
- static statusCode = 400;
2087
- static description = `Failed to create verification code: {message}`;
2133
+ static code = "RESIZE_FAILED";
2134
+ static statusCode = 500;
2135
+ static description = `Failed to resize VM: {message}`;
2088
2136
  }
2089
- class InvalidDomainError extends Error {
2137
+ class InternalResizeVmNotFoundError extends Error {
2090
2138
  constructor(body) {
2091
2139
  super(
2092
- `INVALID_DOMAIN: ${body.message}`
2140
+ `INTERNAL_RESIZE_VM_NOT_FOUND: ${body.message}`
2093
2141
  );
2094
2142
  this.body = body;
2095
- this.name = "InvalidDomainError";
2143
+ this.name = "InternalResizeVmNotFoundError";
2096
2144
  }
2097
- static code = "INVALID_DOMAIN";
2145
+ static code = "INTERNAL_RESIZE_VM_NOT_FOUND";
2146
+ static statusCode = 404;
2147
+ static description = `VM not found`;
2148
+ }
2149
+ class BranchNameEmptyError extends Error {
2150
+ constructor(body) {
2151
+ super(
2152
+ `BRANCH_NAME_EMPTY: ${body.message}`
2153
+ );
2154
+ this.body = body;
2155
+ this.name = "BranchNameEmptyError";
2156
+ }
2157
+ static code = "BRANCH_NAME_EMPTY";
2098
2158
  static statusCode = 400;
2099
- static description = `Invalid domain: {domain}`;
2159
+ static description = `Branch name cannot be empty`;
2100
2160
  }
2101
- class BuildFailedError extends Error {
2161
+ class SnapshotLimitExceededError extends Error {
2102
2162
  constructor(body) {
2103
2163
  super(
2104
- `BUILD_FAILED: ${body.message}`
2164
+ `SNAPSHOT_LIMIT_EXCEEDED: ${body.message}`
2105
2165
  );
2106
2166
  this.body = body;
2107
- this.name = "BuildFailedError";
2167
+ this.name = "SnapshotLimitExceededError";
2108
2168
  }
2109
- static code = "BUILD_FAILED";
2110
- static statusCode = 500;
2111
- static description = `Build failed on VM {vm_id}`;
2169
+ static code = "SNAPSHOT_LIMIT_EXCEEDED";
2170
+ static statusCode = 403;
2171
+ static description = `Snapshot limit exceeded: your plan allows {limit} total snapshots, you currently have {current}`;
2112
2172
  }
2113
- class ServerDeploymentFailedError extends Error {
2173
+ class PersistentVmsNotAllowedError extends Error {
2114
2174
  constructor(body) {
2115
2175
  super(
2116
- `SERVER_DEPLOYMENT_FAILED: ${body.message}`
2176
+ `PERSISTENT_VMS_NOT_ALLOWED: ${body.message}`
2117
2177
  );
2118
2178
  this.body = body;
2119
- this.name = "ServerDeploymentFailedError";
2179
+ this.name = "PersistentVmsNotAllowedError";
2120
2180
  }
2121
- static code = "SERVER_DEPLOYMENT_FAILED";
2122
- static statusCode = 502;
2123
- static description = `Failed to deploy to servers`;
2181
+ static code = "PERSISTENT_VMS_NOT_ALLOWED";
2182
+ static statusCode = 403;
2183
+ static description = `Your plan does not allow persistent VMs. Use sticky or ephemeral persistence instead, or upgrade your plan.`;
2124
2184
  }
2125
- class LockfileErrorError extends Error {
2185
+ class TotalVmLimitExceededError extends Error {
2126
2186
  constructor(body) {
2127
2187
  super(
2128
- `LOCKFILE_ERROR: ${body.message}`
2188
+ `TOTAL_VM_LIMIT_EXCEEDED: ${body.message}`
2129
2189
  );
2130
2190
  this.body = body;
2131
- this.name = "LockfileErrorError";
2191
+ this.name = "TotalVmLimitExceededError";
2132
2192
  }
2133
- static code = "LOCKFILE_ERROR";
2134
- static statusCode = 500;
2135
- static description = `Failed to generate dependency lockfile: {message}`;
2193
+ static code = "TOTAL_VM_LIMIT_EXCEEDED";
2194
+ static statusCode = 403;
2195
+ static description = `Total VM limit exceeded: your plan allows {limit} total VMs, you currently have {current}`;
2136
2196
  }
2137
- class UploadErrorError extends Error {
2197
+ class VmLimitExceededError extends Error {
2138
2198
  constructor(body) {
2139
2199
  super(
2140
- `UPLOAD_ERROR: ${body.message}`
2200
+ `VM_LIMIT_EXCEEDED: ${body.message}`
2141
2201
  );
2142
2202
  this.body = body;
2143
- this.name = "UploadErrorError";
2203
+ this.name = "VmLimitExceededError";
2144
2204
  }
2145
- static code = "UPLOAD_ERROR";
2205
+ static code = "VM_LIMIT_EXCEEDED";
2206
+ static statusCode = 403;
2207
+ static description = `VM limit exceeded: your plan allows {limit} active VMs, you currently have {current}`;
2208
+ }
2209
+ class ObservabilityDatabaseErrorError extends Error {
2210
+ constructor(body) {
2211
+ super(
2212
+ `OBSERVABILITY_DATABASE_ERROR: ${body.message}`
2213
+ );
2214
+ this.body = body;
2215
+ this.name = "ObservabilityDatabaseErrorError";
2216
+ }
2217
+ static code = "OBSERVABILITY_DATABASE_ERROR";
2146
2218
  static statusCode = 500;
2147
- static description = `Failed to upload deployment to storage`;
2219
+ static description = `Database operation failed: {message}`;
2148
2220
  }
2149
- class DomainMappingErrorError extends Error {
2221
+ class ObservabilityAccessDeniedError extends Error {
2150
2222
  constructor(body) {
2151
2223
  super(
2152
- `DOMAIN_MAPPING_ERROR: ${body.message}`
2224
+ `OBSERVABILITY_ACCESS_DENIED: ${body.message}`
2153
2225
  );
2154
2226
  this.body = body;
2155
- this.name = "DomainMappingErrorError";
2227
+ this.name = "ObservabilityAccessDeniedError";
2156
2228
  }
2157
- static code = "DOMAIN_MAPPING_ERROR";
2229
+ static code = "OBSERVABILITY_ACCESS_DENIED";
2230
+ static statusCode = 403;
2231
+ static description = `Access denied to logs for deployment: {deployment_id}`;
2232
+ }
2233
+ class ParseLogsFailedError extends Error {
2234
+ constructor(body) {
2235
+ super(
2236
+ `PARSE_LOGS_FAILED: ${body.message}`
2237
+ );
2238
+ this.body = body;
2239
+ this.name = "ParseLogsFailedError";
2240
+ }
2241
+ static code = "PARSE_LOGS_FAILED";
2158
2242
  static statusCode = 500;
2159
- static description = `Failed to configure domain mapping for: {domain}`;
2243
+ static description = `Failed to parse logs: {message}`;
2160
2244
  }
2161
- class CertificateProvisioningErrorError extends Error {
2245
+ class RetrieveLogsFailedError extends Error {
2162
2246
  constructor(body) {
2163
2247
  super(
2164
- `CERTIFICATE_PROVISIONING_ERROR: ${body.message}`
2248
+ `RETRIEVE_LOGS_FAILED: ${body.message}`
2165
2249
  );
2166
2250
  this.body = body;
2167
- this.name = "CertificateProvisioningErrorError";
2251
+ this.name = "RetrieveLogsFailedError";
2168
2252
  }
2169
- static code = "CERTIFICATE_PROVISIONING_ERROR";
2170
- static statusCode = 502;
2171
- static description = `Failed to provision certificate for domain: {domain}`;
2253
+ static code = "RETRIEVE_LOGS_FAILED";
2254
+ static statusCode = 500;
2255
+ static description = `Failed to retrieve logs: {message}`;
2172
2256
  }
2173
- class NoEntrypointFoundError extends Error {
2257
+ class InvalidQueryError extends Error {
2174
2258
  constructor(body) {
2175
2259
  super(
2176
- `NO_ENTRYPOINT_FOUND: ${body.message}`
2260
+ `INVALID_QUERY: ${body.message}`
2177
2261
  );
2178
2262
  this.body = body;
2179
- this.name = "NoEntrypointFoundError";
2263
+ this.name = "InvalidQueryError";
2180
2264
  }
2181
- static code = "NO_ENTRYPOINT_FOUND";
2265
+ static code = "INVALID_QUERY";
2182
2266
  static statusCode = 400;
2183
- static description = `No entrypoint found in deployment`;
2267
+ static description = `Invalid log query: {message}`;
2184
2268
  }
2185
- class EntrypointNotFoundError extends Error {
2269
+ class LogsNotFoundError extends Error {
2186
2270
  constructor(body) {
2187
2271
  super(
2188
- `ENTRYPOINT_NOT_FOUND: ${body.message}`
2272
+ `LOGS_NOT_FOUND: ${body.message}`
2189
2273
  );
2190
2274
  this.body = body;
2191
- this.name = "EntrypointNotFoundError";
2275
+ this.name = "LogsNotFoundError";
2192
2276
  }
2193
- static code = "ENTRYPOINT_NOT_FOUND";
2194
- static statusCode = 400;
2195
- static description = `Entrypoint not found: {entrypoint}`;
2277
+ static code = "LOGS_NOT_FOUND";
2278
+ static statusCode = 404;
2279
+ static description = `Logs not found for deployment: {deployment_id}`;
2196
2280
  }
2197
- class NoDomainOwnershipError extends Error {
2281
+ class DomainOwnershipNotVerifiedError extends Error {
2198
2282
  constructor(body) {
2199
2283
  super(
2200
- `NO_DOMAIN_OWNERSHIP: ${body.message}`
2284
+ `DOMAIN_OWNERSHIP_NOT_VERIFIED: ${body.message}`
2201
2285
  );
2202
2286
  this.body = body;
2203
- this.name = "NoDomainOwnershipError";
2287
+ this.name = "DomainOwnershipNotVerifiedError";
2204
2288
  }
2205
- static code = "NO_DOMAIN_OWNERSHIP";
2206
- static statusCode = 403;
2207
- static description = `No domain ownership for: {domain}`;
2289
+ static code = "DOMAIN_OWNERSHIP_NOT_VERIFIED";
2290
+ static statusCode = 401;
2291
+ static description = `You have not verified ownership of domain: {domain}`;
2208
2292
  }
2209
- class InvalidDomainsError extends Error {
2293
+ class VmAccessDeniedForMappingError extends Error {
2210
2294
  constructor(body) {
2211
2295
  super(
2212
- `INVALID_DOMAINS: ${body.message}`
2296
+ `VM_ACCESS_DENIED_FOR_MAPPING: ${body.message}`
2213
2297
  );
2214
2298
  this.body = body;
2215
- this.name = "InvalidDomainsError";
2299
+ this.name = "VmAccessDeniedForMappingError";
2216
2300
  }
2217
- static code = "INVALID_DOMAINS";
2301
+ static code = "VM_ACCESS_DENIED_FOR_MAPPING";
2302
+ static statusCode = 401;
2303
+ static description = `You do not have permission to map to this VM: {vm_id}`;
2304
+ }
2305
+ class DeploymentAccessDeniedError extends Error {
2306
+ constructor(body) {
2307
+ super(
2308
+ `DEPLOYMENT_ACCESS_DENIED: ${body.message}`
2309
+ );
2310
+ this.body = body;
2311
+ this.name = "DeploymentAccessDeniedError";
2312
+ }
2313
+ static code = "DEPLOYMENT_ACCESS_DENIED";
2314
+ static statusCode = 401;
2315
+ static description = `You do not have permission to map to this deployment: {deployment_id}`;
2316
+ }
2317
+ class FailedToProvisionCertificateForMappingError extends Error {
2318
+ constructor(body) {
2319
+ super(
2320
+ `FAILED_TO_PROVISION_CERTIFICATE_FOR_MAPPING: ${body.message}`
2321
+ );
2322
+ this.body = body;
2323
+ this.name = "FailedToProvisionCertificateForMappingError";
2324
+ }
2325
+ static code = "FAILED_TO_PROVISION_CERTIFICATE_FOR_MAPPING";
2326
+ static statusCode = 422;
2327
+ static description = `Failed to provision certificate for mapping: {message}`;
2328
+ }
2329
+ class FailedInsertDomainMappingError extends Error {
2330
+ constructor(body) {
2331
+ super(
2332
+ `FAILED_INSERT_DOMAIN_MAPPING: ${body.message}`
2333
+ );
2334
+ this.body = body;
2335
+ this.name = "FailedInsertDomainMappingError";
2336
+ }
2337
+ static code = "FAILED_INSERT_DOMAIN_MAPPING";
2338
+ static statusCode = 500;
2339
+ static description = `Failed to insert domain mapping: {message}`;
2340
+ }
2341
+ class DomainAlreadyExistsError extends Error {
2342
+ constructor(body) {
2343
+ super(
2344
+ `DOMAIN_ALREADY_EXISTS: ${body.message}`
2345
+ );
2346
+ this.body = body;
2347
+ this.name = "DomainAlreadyExistsError";
2348
+ }
2349
+ static code = "DOMAIN_ALREADY_EXISTS";
2218
2350
  static statusCode = 400;
2219
- static description = `Invalid domains provided`;
2351
+ static description = `Domain already exists: {domain}`;
2220
2352
  }
2221
- class WebDeploymentBadRequestError extends Error {
2353
+ class FailedToInsertOwnershipError extends Error {
2222
2354
  constructor(body) {
2223
2355
  super(
2224
- `WEB_DEPLOYMENT_BAD_REQUEST: ${body.message}`
2356
+ `FAILED_TO_INSERT_OWNERSHIP: ${body.message}`
2225
2357
  );
2226
2358
  this.body = body;
2227
- this.name = "WebDeploymentBadRequestError";
2359
+ this.name = "FailedToInsertOwnershipError";
2228
2360
  }
2229
- static code = "WEB_DEPLOYMENT_BAD_REQUEST";
2230
- static statusCode = 400;
2231
- static description = `Bad request: {message}`;
2361
+ static code = "FAILED_TO_INSERT_OWNERSHIP";
2362
+ static statusCode = 500;
2363
+ static description = `Failed to insert domain ownership: {message}`;
2232
2364
  }
2233
- class TimeoutLimitExceededError extends Error {
2365
+ class FailedRemoveDomainMappingError extends Error {
2234
2366
  constructor(body) {
2235
2367
  super(
2236
- `TIMEOUT_LIMIT_EXCEEDED: ${body.message}`
2368
+ `FAILED_REMOVE_DOMAIN_MAPPING: ${body.message}`
2237
2369
  );
2238
2370
  this.body = body;
2239
- this.name = "TimeoutLimitExceededError";
2371
+ this.name = "FailedRemoveDomainMappingError";
2240
2372
  }
2241
- static code = "TIMEOUT_LIMIT_EXCEEDED";
2242
- static statusCode = 403;
2243
- static description = `Timeout exceeds plan limit: requested {requested_ms}ms but your plan allows a maximum of {max_ms}ms`;
2373
+ static code = "FAILED_REMOVE_DOMAIN_MAPPING";
2374
+ static statusCode = 500;
2375
+ static description = `Failed to remove domain mapping: {message}`;
2244
2376
  }
2245
- class DeploymentLimitExceededError extends Error {
2377
+ class FailedPermissionsCheckError extends Error {
2246
2378
  constructor(body) {
2247
2379
  super(
2248
- `DEPLOYMENT_LIMIT_EXCEEDED: ${body.message}`
2380
+ `FAILED_PERMISSIONS_CHECK: ${body.message}`
2249
2381
  );
2250
2382
  this.body = body;
2251
- this.name = "DeploymentLimitExceededError";
2383
+ this.name = "FailedPermissionsCheckError";
2252
2384
  }
2253
- static code = "DEPLOYMENT_LIMIT_EXCEEDED";
2254
- static statusCode = 403;
2255
- static description = `Daily deployment limit exceeded: your plan allows {limit} deployments per day, you have created {current} today`;
2385
+ static code = "FAILED_PERMISSIONS_CHECK";
2386
+ static statusCode = 401;
2387
+ static description = `You do not have permission to delete the domain mapping for: {domain}`;
2256
2388
  }
2257
- class DeploymentNotFoundError extends Error {
2389
+ class FailedToCheckDomainMappingPermissionsError extends Error {
2258
2390
  constructor(body) {
2259
2391
  super(
2260
- `DEPLOYMENT_NOT_FOUND: ${body.message}`
2392
+ `FAILED_TO_CHECK_DOMAIN_MAPPING_PERMISSIONS: ${body.message}`
2261
2393
  );
2262
2394
  this.body = body;
2263
- this.name = "DeploymentNotFoundError";
2395
+ this.name = "FailedToCheckDomainMappingPermissionsError";
2264
2396
  }
2265
- static code = "DEPLOYMENT_NOT_FOUND";
2266
- static statusCode = 404;
2267
- static description = `Deployment not found`;
2397
+ static code = "FAILED_TO_CHECK_DOMAIN_MAPPING_PERMISSIONS";
2398
+ static statusCode = 502;
2399
+ static description = `Failed to check permissions: {message}`;
2268
2400
  }
2269
- class ResizeFailedError extends Error {
2401
+ class DomainOwnershipVerificationFailedError extends Error {
2270
2402
  constructor(body) {
2271
2403
  super(
2272
- `RESIZE_FAILED: ${body.message}`
2404
+ `DOMAIN_OWNERSHIP_VERIFICATION_FAILED: ${body.message}`
2273
2405
  );
2274
2406
  this.body = body;
2275
- this.name = "ResizeFailedError";
2407
+ this.name = "DomainOwnershipVerificationFailedError";
2276
2408
  }
2277
- static code = "RESIZE_FAILED";
2278
- static statusCode = 500;
2279
- static description = `Failed to resize VM: {message}`;
2409
+ static code = "DOMAIN_OWNERSHIP_VERIFICATION_FAILED";
2410
+ static statusCode = 403;
2411
+ static description = `Domain ownership verification failed`;
2280
2412
  }
2281
- class InternalResizeVmNotFoundError extends Error {
2413
+ class ErrorDeletingRecordError extends Error {
2282
2414
  constructor(body) {
2283
2415
  super(
2284
- `INTERNAL_RESIZE_VM_NOT_FOUND: ${body.message}`
2416
+ `ERROR_DELETING_RECORD: ${body.message}`
2285
2417
  );
2286
2418
  this.body = body;
2287
- this.name = "InternalResizeVmNotFoundError";
2419
+ this.name = "ErrorDeletingRecordError";
2288
2420
  }
2289
- static code = "INTERNAL_RESIZE_VM_NOT_FOUND";
2290
- static statusCode = 404;
2291
- static description = `VM not found`;
2421
+ static code = "ERROR_DELETING_RECORD";
2422
+ static statusCode = 500;
2423
+ static description = `Error deleting DNS record for {domain}/{name}: {message}`;
2292
2424
  }
2293
- class AccessDeniedError extends Error {
2425
+ class RecordOwnershipErrorError extends Error {
2294
2426
  constructor(body) {
2295
2427
  super(
2296
- `ACCESS_DENIED: ${body.message}`
2428
+ `RECORD_OWNERSHIP_ERROR: ${body.message}`
2297
2429
  );
2298
2430
  this.body = body;
2299
- this.name = "AccessDeniedError";
2431
+ this.name = "RecordOwnershipErrorError";
2300
2432
  }
2301
- static code = "ACCESS_DENIED";
2433
+ static code = "RECORD_OWNERSHIP_ERROR";
2302
2434
  static statusCode = 403;
2303
- static description = `VM access denied`;
2435
+ static description = `Account {account_id} does not own record {record_id}`;
2304
2436
  }
2305
- class BranchNameEmptyError extends Error {
2437
+ class ErrorCreatingRecordError extends Error {
2306
2438
  constructor(body) {
2307
2439
  super(
2308
- `BRANCH_NAME_EMPTY: ${body.message}`
2440
+ `ERROR_CREATING_RECORD: ${body.message}`
2309
2441
  );
2310
2442
  this.body = body;
2311
- this.name = "BranchNameEmptyError";
2443
+ this.name = "ErrorCreatingRecordError";
2312
2444
  }
2313
- static code = "BRANCH_NAME_EMPTY";
2314
- static statusCode = 400;
2315
- static description = `Branch name cannot be empty`;
2445
+ static code = "ERROR_CREATING_RECORD";
2446
+ static statusCode = 500;
2447
+ static description = `Error creating DNS record: {message}`;
2316
2448
  }
2317
- class UnauthorizedErrorError extends Error {
2449
+ class DomainOwnershipErrorError extends Error {
2318
2450
  constructor(body) {
2319
2451
  super(
2320
- `UNAUTHORIZED_ERROR: ${body.message}`
2452
+ `DOMAIN_OWNERSHIP_ERROR: ${body.message}`
2321
2453
  );
2322
2454
  this.body = body;
2323
- this.name = "UnauthorizedErrorError";
2455
+ this.name = "DomainOwnershipErrorError";
2324
2456
  }
2325
- static code = "UNAUTHORIZED_ERROR";
2326
- static statusCode = 401;
2327
- static description = `Unauthorized request to {route}`;
2457
+ static code = "DOMAIN_OWNERSHIP_ERROR";
2458
+ static statusCode = 403;
2459
+ static description = `Account {account_id} does not own domain {domain}`;
2328
2460
  }
2329
2461
  class TriggerErrorError extends Error {
2330
2462
  constructor(body) {
@@ -2554,125 +2686,185 @@ class RepositoryNotFoundError extends Error {
2554
2686
  static statusCode = 404;
2555
2687
  static description = `Repository not found: {repo_id}`;
2556
2688
  }
2557
- class DomainOwnershipNotVerifiedError extends Error {
2689
+ class ExecuteInternalErrorError extends Error {
2558
2690
  constructor(body) {
2559
2691
  super(
2560
- `DOMAIN_OWNERSHIP_NOT_VERIFIED: ${body.message}`
2692
+ `EXECUTE_INTERNAL_ERROR: ${body.message}`
2561
2693
  );
2562
2694
  this.body = body;
2563
- this.name = "DomainOwnershipNotVerifiedError";
2695
+ this.name = "ExecuteInternalErrorError";
2564
2696
  }
2565
- static code = "DOMAIN_OWNERSHIP_NOT_VERIFIED";
2566
- static statusCode = 401;
2567
- static description = `You have not verified ownership of domain: {domain}`;
2697
+ static code = "EXECUTE_INTERNAL_ERROR";
2698
+ static statusCode = 500;
2699
+ static description = `Internal error: {message}`;
2568
2700
  }
2569
- class VmAccessDeniedForMappingError extends Error {
2701
+ class ExecuteAccessDeniedError extends Error {
2570
2702
  constructor(body) {
2571
2703
  super(
2572
- `VM_ACCESS_DENIED_FOR_MAPPING: ${body.message}`
2704
+ `EXECUTE_ACCESS_DENIED: ${body.message}`
2573
2705
  );
2574
2706
  this.body = body;
2575
- this.name = "VmAccessDeniedForMappingError";
2707
+ this.name = "ExecuteAccessDeniedError";
2576
2708
  }
2577
- static code = "VM_ACCESS_DENIED_FOR_MAPPING";
2578
- static statusCode = 401;
2579
- static description = `You do not have permission to map to this VM: {vm_id}`;
2709
+ static code = "EXECUTE_ACCESS_DENIED";
2710
+ static statusCode = 403;
2711
+ static description = `Access denied to execute run`;
2580
2712
  }
2581
- class DeploymentAccessDeniedError extends Error {
2713
+ class ListRunsFailedError extends Error {
2582
2714
  constructor(body) {
2583
2715
  super(
2584
- `DEPLOYMENT_ACCESS_DENIED: ${body.message}`
2716
+ `LIST_RUNS_FAILED: ${body.message}`
2585
2717
  );
2586
2718
  this.body = body;
2587
- this.name = "DeploymentAccessDeniedError";
2719
+ this.name = "ListRunsFailedError";
2588
2720
  }
2589
- static code = "DEPLOYMENT_ACCESS_DENIED";
2590
- static statusCode = 401;
2591
- static description = `You do not have permission to map to this deployment: {deployment_id}`;
2721
+ static code = "LIST_RUNS_FAILED";
2722
+ static statusCode = 500;
2723
+ static description = `Failed to list execute runs: {message}`;
2592
2724
  }
2593
- class FailedToProvisionCertificateForMappingError extends Error {
2725
+ class ExecutionErrorError extends Error {
2594
2726
  constructor(body) {
2595
2727
  super(
2596
- `FAILED_TO_PROVISION_CERTIFICATE_FOR_MAPPING: ${body.message}`
2728
+ `EXECUTION_ERROR: ${body.message}`
2597
2729
  );
2598
2730
  this.body = body;
2599
- this.name = "FailedToProvisionCertificateForMappingError";
2731
+ this.name = "ExecutionErrorError";
2600
2732
  }
2601
- static code = "FAILED_TO_PROVISION_CERTIFICATE_FOR_MAPPING";
2602
- static statusCode = 422;
2603
- static description = `Failed to provision certificate for mapping: {message}`;
2733
+ static code = "EXECUTION_ERROR";
2734
+ static statusCode = 500;
2735
+ static description = `Script execution error: {message}`;
2604
2736
  }
2605
- class FailedInsertDomainMappingError extends Error {
2737
+ class ConnectionFailedError extends Error {
2606
2738
  constructor(body) {
2607
2739
  super(
2608
- `FAILED_INSERT_DOMAIN_MAPPING: ${body.message}`
2740
+ `CONNECTION_FAILED: ${body.message}`
2609
2741
  );
2610
2742
  this.body = body;
2611
- this.name = "FailedInsertDomainMappingError";
2743
+ this.name = "ConnectionFailedError";
2612
2744
  }
2613
- static code = "FAILED_INSERT_DOMAIN_MAPPING";
2745
+ static code = "CONNECTION_FAILED";
2614
2746
  static statusCode = 500;
2615
- static description = `Failed to insert domain mapping: {message}`;
2747
+ static description = `Failed to connect to execute server: {message}`;
2616
2748
  }
2617
- class DomainAlreadyExistsError extends Error {
2749
+ class MetadataWriteFailedError extends Error {
2618
2750
  constructor(body) {
2619
2751
  super(
2620
- `DOMAIN_ALREADY_EXISTS: ${body.message}`
2752
+ `METADATA_WRITE_FAILED: ${body.message}`
2621
2753
  );
2622
2754
  this.body = body;
2623
- this.name = "DomainAlreadyExistsError";
2755
+ this.name = "MetadataWriteFailedError";
2624
2756
  }
2625
- static code = "DOMAIN_ALREADY_EXISTS";
2626
- static statusCode = 400;
2627
- static description = `Domain already exists: {domain}`;
2757
+ static code = "METADATA_WRITE_FAILED";
2758
+ static statusCode = 500;
2759
+ static description = `Failed to write metadata file: {message}`;
2628
2760
  }
2629
- class FailedToInsertOwnershipError extends Error {
2761
+ class NodeModulesInstallFailedError extends Error {
2630
2762
  constructor(body) {
2631
2763
  super(
2632
- `FAILED_TO_INSERT_OWNERSHIP: ${body.message}`
2764
+ `NODE_MODULES_INSTALL_FAILED: ${body.message}`
2633
2765
  );
2634
2766
  this.body = body;
2635
- this.name = "FailedToInsertOwnershipError";
2767
+ this.name = "NodeModulesInstallFailedError";
2636
2768
  }
2637
- static code = "FAILED_TO_INSERT_OWNERSHIP";
2769
+ static code = "NODE_MODULES_INSTALL_FAILED";
2638
2770
  static statusCode = 500;
2639
- static description = `Failed to insert domain ownership: {message}`;
2771
+ static description = `Failed to install node modules: {message}`;
2640
2772
  }
2641
- class FailedRemoveDomainMappingError extends Error {
2773
+ class NodeModulesDownloadFailedError extends Error {
2642
2774
  constructor(body) {
2643
2775
  super(
2644
- `FAILED_REMOVE_DOMAIN_MAPPING: ${body.message}`
2776
+ `NODE_MODULES_DOWNLOAD_FAILED: ${body.message}`
2645
2777
  );
2646
2778
  this.body = body;
2647
- this.name = "FailedRemoveDomainMappingError";
2779
+ this.name = "NodeModulesDownloadFailedError";
2648
2780
  }
2649
- static code = "FAILED_REMOVE_DOMAIN_MAPPING";
2781
+ static code = "NODE_MODULES_DOWNLOAD_FAILED";
2650
2782
  static statusCode = 500;
2651
- static description = `Failed to remove domain mapping: {message}`;
2783
+ static description = `Failed to download node modules: {message}`;
2784
+ }
2785
+ class LockGenerationFailedError extends Error {
2786
+ constructor(body) {
2787
+ super(
2788
+ `LOCK_GENERATION_FAILED: ${body.message}`
2789
+ );
2790
+ this.body = body;
2791
+ this.name = "LockGenerationFailedError";
2792
+ }
2793
+ static code = "LOCK_GENERATION_FAILED";
2794
+ static statusCode = 500;
2795
+ static description = `Failed to generate lock file: {message}`;
2796
+ }
2797
+ class WriteScriptFailedError extends Error {
2798
+ constructor(body) {
2799
+ super(
2800
+ `WRITE_SCRIPT_FAILED: ${body.message}`
2801
+ );
2802
+ this.body = body;
2803
+ this.name = "WriteScriptFailedError";
2804
+ }
2805
+ static code = "WRITE_SCRIPT_FAILED";
2806
+ static statusCode = 500;
2807
+ static description = `Failed to write script file: {message}`;
2808
+ }
2809
+ class DirectoryCreationFailedError extends Error {
2810
+ constructor(body) {
2811
+ super(
2812
+ `DIRECTORY_CREATION_FAILED: ${body.message}`
2813
+ );
2814
+ this.body = body;
2815
+ this.name = "DirectoryCreationFailedError";
2816
+ }
2817
+ static code = "DIRECTORY_CREATION_FAILED";
2818
+ static statusCode = 500;
2819
+ static description = `Failed to create script directory: {message}`;
2820
+ }
2821
+ class NetworkPermissionsFailedError extends Error {
2822
+ constructor(body) {
2823
+ super(
2824
+ `NETWORK_PERMISSIONS_FAILED: ${body.message}`
2825
+ );
2826
+ this.body = body;
2827
+ this.name = "NetworkPermissionsFailedError";
2828
+ }
2829
+ static code = "NETWORK_PERMISSIONS_FAILED";
2830
+ static statusCode = 500;
2831
+ static description = `Failed to insert network permissions: {message}`;
2832
+ }
2833
+ class LoggingFailedError extends Error {
2834
+ constructor(body) {
2835
+ super(
2836
+ `LOGGING_FAILED: ${body.message}`
2837
+ );
2838
+ this.body = body;
2839
+ this.name = "LoggingFailedError";
2840
+ }
2841
+ static code = "LOGGING_FAILED";
2842
+ static statusCode = 500;
2843
+ static description = `Failed to log execute run: {message}`;
2652
2844
  }
2653
- class FailedPermissionsCheckError extends Error {
2845
+ class RunNotFoundError extends Error {
2654
2846
  constructor(body) {
2655
2847
  super(
2656
- `FAILED_PERMISSIONS_CHECK: ${body.message}`
2848
+ `RUN_NOT_FOUND: ${body.message}`
2657
2849
  );
2658
2850
  this.body = body;
2659
- this.name = "FailedPermissionsCheckError";
2851
+ this.name = "RunNotFoundError";
2660
2852
  }
2661
- static code = "FAILED_PERMISSIONS_CHECK";
2662
- static statusCode = 401;
2663
- static description = `You do not have permission to delete the domain mapping for: {domain}`;
2853
+ static code = "RUN_NOT_FOUND";
2854
+ static statusCode = 404;
2855
+ static description = `Execute run not found: {run_id}`;
2664
2856
  }
2665
- class FailedToCheckDomainMappingPermissionsError extends Error {
2857
+ class UnauthorizedErrorError extends Error {
2666
2858
  constructor(body) {
2667
2859
  super(
2668
- `FAILED_TO_CHECK_DOMAIN_MAPPING_PERMISSIONS: ${body.message}`
2860
+ `UNAUTHORIZED_ERROR: ${body.message}`
2669
2861
  );
2670
2862
  this.body = body;
2671
- this.name = "FailedToCheckDomainMappingPermissionsError";
2863
+ this.name = "UnauthorizedErrorError";
2672
2864
  }
2673
- static code = "FAILED_TO_CHECK_DOMAIN_MAPPING_PERMISSIONS";
2674
- static statusCode = 502;
2675
- static description = `Failed to check permissions: {message}`;
2865
+ static code = "UNAUTHORIZED_ERROR";
2866
+ static statusCode = 401;
2867
+ static description = `Unauthorized request to {route}`;
2676
2868
  }
2677
2869
  class GitRepoLimitExceededError extends Error {
2678
2870
  constructor(body) {
@@ -2698,42 +2890,6 @@ class EmptyTagError extends Error {
2698
2890
  static statusCode = 400;
2699
2891
  static description = `Invalid request: tag cannot be empty`;
2700
2892
  }
2701
- class PersistentVmsNotAllowedError extends Error {
2702
- constructor(body) {
2703
- super(
2704
- `PERSISTENT_VMS_NOT_ALLOWED: ${body.message}`
2705
- );
2706
- this.body = body;
2707
- this.name = "PersistentVmsNotAllowedError";
2708
- }
2709
- static code = "PERSISTENT_VMS_NOT_ALLOWED";
2710
- static statusCode = 403;
2711
- static description = `Your plan does not allow persistent VMs. Use sticky or ephemeral persistence instead, or upgrade your plan.`;
2712
- }
2713
- class TotalVmLimitExceededError extends Error {
2714
- constructor(body) {
2715
- super(
2716
- `TOTAL_VM_LIMIT_EXCEEDED: ${body.message}`
2717
- );
2718
- this.body = body;
2719
- this.name = "TotalVmLimitExceededError";
2720
- }
2721
- static code = "TOTAL_VM_LIMIT_EXCEEDED";
2722
- static statusCode = 403;
2723
- static description = `Total VM limit exceeded: your plan allows {limit} total VMs, you currently have {current}`;
2724
- }
2725
- class VmLimitExceededError extends Error {
2726
- constructor(body) {
2727
- super(
2728
- `VM_LIMIT_EXCEEDED: ${body.message}`
2729
- );
2730
- this.body = body;
2731
- this.name = "VmLimitExceededError";
2732
- }
2733
- static code = "VM_LIMIT_EXCEEDED";
2734
- static statusCode = 403;
2735
- static description = `VM limit exceeded: your plan allows {limit} VMs, you currently have {current}`;
2736
- }
2737
2893
  class PermissionAlreadyExistsError extends Error {
2738
2894
  constructor(body) {
2739
2895
  super(
@@ -2974,173 +3130,161 @@ class IdentityNotFoundError extends Error {
2974
3130
  static statusCode = 404;
2975
3131
  static description = `Identity not found`;
2976
3132
  }
2977
- class DomainOwnershipVerificationFailedError extends Error {
3133
+ class LimitExceededError extends Error {
2978
3134
  constructor(body) {
2979
3135
  super(
2980
- `DOMAIN_OWNERSHIP_VERIFICATION_FAILED: ${body.message}`
3136
+ `LIMIT_EXCEEDED: ${body.message}`
2981
3137
  );
2982
3138
  this.body = body;
2983
- this.name = "DomainOwnershipVerificationFailedError";
3139
+ this.name = "LimitExceededError";
2984
3140
  }
2985
- static code = "DOMAIN_OWNERSHIP_VERIFICATION_FAILED";
3141
+ static code = "LIMIT_EXCEEDED";
2986
3142
  static statusCode = 403;
2987
- static description = `Domain ownership verification failed`;
2988
- }
2989
- class ErrorDeletingRecordError extends Error {
2990
- constructor(body) {
2991
- super(
2992
- `ERROR_DELETING_RECORD: ${body.message}`
2993
- );
2994
- this.body = body;
2995
- this.name = "ErrorDeletingRecordError";
2996
- }
2997
- static code = "ERROR_DELETING_RECORD";
2998
- static statusCode = 500;
2999
- static description = `Error deleting DNS record for {domain}/{name}: {message}`;
3143
+ static description = `Managed domains limit exceeded: your plan allows {limit} verified domains, you have {current}`;
3000
3144
  }
3001
- class RecordOwnershipErrorError extends Error {
3145
+ class FailedToProvisionCertificateError extends Error {
3002
3146
  constructor(body) {
3003
3147
  super(
3004
- `RECORD_OWNERSHIP_ERROR: ${body.message}`
3148
+ `FAILED_TO_PROVISION_CERTIFICATE: ${body.message}`
3005
3149
  );
3006
3150
  this.body = body;
3007
- this.name = "RecordOwnershipErrorError";
3151
+ this.name = "FailedToProvisionCertificateError";
3008
3152
  }
3009
- static code = "RECORD_OWNERSHIP_ERROR";
3010
- static statusCode = 403;
3011
- static description = `Account {account_id} does not own record {record_id}`;
3153
+ static code = "FAILED_TO_PROVISION_CERTIFICATE";
3154
+ static statusCode = 422;
3155
+ static description = `Failed to provision certificate: {message}`;
3012
3156
  }
3013
- class ErrorCreatingRecordError extends Error {
3157
+ class FailedToInsertDomainMappingError extends Error {
3014
3158
  constructor(body) {
3015
3159
  super(
3016
- `ERROR_CREATING_RECORD: ${body.message}`
3160
+ `FAILED_TO_INSERT_DOMAIN_MAPPING: ${body.message}`
3017
3161
  );
3018
3162
  this.body = body;
3019
- this.name = "ErrorCreatingRecordError";
3163
+ this.name = "FailedToInsertDomainMappingError";
3020
3164
  }
3021
- static code = "ERROR_CREATING_RECORD";
3165
+ static code = "FAILED_TO_INSERT_DOMAIN_MAPPING";
3022
3166
  static statusCode = 500;
3023
- static description = `Error creating DNS record: {message}`;
3167
+ static description = `Failed to insert domain mapping: {message}`;
3024
3168
  }
3025
- class DomainOwnershipErrorError extends Error {
3169
+ class PermissionDeniedError extends Error {
3026
3170
  constructor(body) {
3027
3171
  super(
3028
- `DOMAIN_OWNERSHIP_ERROR: ${body.message}`
3172
+ `PERMISSION_DENIED: ${body.message}`
3029
3173
  );
3030
3174
  this.body = body;
3031
- this.name = "DomainOwnershipErrorError";
3175
+ this.name = "PermissionDeniedError";
3032
3176
  }
3033
- static code = "DOMAIN_OWNERSHIP_ERROR";
3034
- static statusCode = 403;
3035
- static description = `Account {account_id} does not own domain {domain}`;
3177
+ static code = "PERMISSION_DENIED";
3178
+ static statusCode = 401;
3179
+ static description = `Permission denied: {message}`;
3036
3180
  }
3037
- class CloudstateInternalErrorError extends Error {
3181
+ class FailedToCheckPermissionsError extends Error {
3038
3182
  constructor(body) {
3039
3183
  super(
3040
- `CLOUDSTATE_INTERNAL_ERROR: ${body.message}`
3184
+ `FAILED_TO_CHECK_PERMISSIONS: ${body.message}`
3041
3185
  );
3042
3186
  this.body = body;
3043
- this.name = "CloudstateInternalErrorError";
3187
+ this.name = "FailedToCheckPermissionsError";
3044
3188
  }
3045
- static code = "CLOUDSTATE_INTERNAL_ERROR";
3046
- static statusCode = 500;
3047
- static description = `Internal error: {message}`;
3189
+ static code = "FAILED_TO_CHECK_PERMISSIONS";
3190
+ static statusCode = 502;
3191
+ static description = `Failed to check permissions: {message}`;
3048
3192
  }
3049
- class CloudstateDatabaseErrorError extends Error {
3193
+ class FailedToListDomainsError extends Error {
3050
3194
  constructor(body) {
3051
3195
  super(
3052
- `CLOUDSTATE_DATABASE_ERROR: ${body.message}`
3196
+ `FAILED_TO_LIST_DOMAINS: ${body.message}`
3053
3197
  );
3054
3198
  this.body = body;
3055
- this.name = "CloudstateDatabaseErrorError";
3199
+ this.name = "FailedToListDomainsError";
3056
3200
  }
3057
- static code = "CLOUDSTATE_DATABASE_ERROR";
3201
+ static code = "FAILED_TO_LIST_DOMAINS";
3058
3202
  static statusCode = 500;
3059
- static description = `Database operation failed: {message}`;
3203
+ static description = `Failed to list domains: {message}`;
3060
3204
  }
3061
- class CloudstateAccessDeniedError extends Error {
3205
+ class FailedToListVerificationsError extends Error {
3062
3206
  constructor(body) {
3063
3207
  super(
3064
- `CLOUDSTATE_ACCESS_DENIED: ${body.message}`
3208
+ `FAILED_TO_LIST_VERIFICATIONS: ${body.message}`
3065
3209
  );
3066
3210
  this.body = body;
3067
- this.name = "CloudstateAccessDeniedError";
3211
+ this.name = "FailedToListVerificationsError";
3068
3212
  }
3069
- static code = "CLOUDSTATE_ACCESS_DENIED";
3070
- static statusCode = 403;
3071
- static description = `Access denied to project: {project_id}`;
3213
+ static code = "FAILED_TO_LIST_VERIFICATIONS";
3214
+ static statusCode = 500;
3215
+ static description = `Failed to list verifications: {message}`;
3072
3216
  }
3073
- class RestoreFailedError extends Error {
3217
+ class FailedToVerifyDomainError extends Error {
3074
3218
  constructor(body) {
3075
3219
  super(
3076
- `RESTORE_FAILED: ${body.message}`
3220
+ `FAILED_TO_VERIFY_DOMAIN: ${body.message}`
3077
3221
  );
3078
3222
  this.body = body;
3079
- this.name = "RestoreFailedError";
3223
+ this.name = "FailedToVerifyDomainError";
3080
3224
  }
3081
- static code = "RESTORE_FAILED";
3225
+ static code = "FAILED_TO_VERIFY_DOMAIN";
3082
3226
  static statusCode = 500;
3083
- static description = `Failed to restore from backup: {message}`;
3227
+ static description = `Failed to verify domain: {message}`;
3084
3228
  }
3085
- class CreateBackupFailedError extends Error {
3229
+ class VerificationFailedError extends Error {
3086
3230
  constructor(body) {
3087
3231
  super(
3088
- `CREATE_BACKUP_FAILED: ${body.message}`
3232
+ `VERIFICATION_FAILED: ${body.message}`
3089
3233
  );
3090
3234
  this.body = body;
3091
- this.name = "CreateBackupFailedError";
3235
+ this.name = "VerificationFailedError";
3092
3236
  }
3093
- static code = "CREATE_BACKUP_FAILED";
3094
- static statusCode = 500;
3095
- static description = `Failed to create backup: {message}`;
3237
+ static code = "VERIFICATION_FAILED";
3238
+ static statusCode = 400;
3239
+ static description = `Domain verification failed: {message}`;
3096
3240
  }
3097
- class BackupFailedError extends Error {
3241
+ class FailedToDeleteVerificationError extends Error {
3098
3242
  constructor(body) {
3099
3243
  super(
3100
- `BACKUP_FAILED: ${body.message}`
3244
+ `FAILED_TO_DELETE_VERIFICATION: ${body.message}`
3101
3245
  );
3102
3246
  this.body = body;
3103
- this.name = "BackupFailedError";
3247
+ this.name = "FailedToDeleteVerificationError";
3104
3248
  }
3105
- static code = "BACKUP_FAILED";
3106
- static statusCode = 500;
3107
- static description = `Backup failed: {message}`;
3249
+ static code = "FAILED_TO_DELETE_VERIFICATION";
3250
+ static statusCode = 400;
3251
+ static description = `Failed to delete verification: {message}`;
3108
3252
  }
3109
- class DeploymentFailedError extends Error {
3253
+ class VerificationNotFoundError extends Error {
3110
3254
  constructor(body) {
3111
3255
  super(
3112
- `DEPLOYMENT_FAILED: ${body.message}`
3256
+ `VERIFICATION_NOT_FOUND: ${body.message}`
3113
3257
  );
3114
3258
  this.body = body;
3115
- this.name = "DeploymentFailedError";
3259
+ this.name = "VerificationNotFoundError";
3116
3260
  }
3117
- static code = "DEPLOYMENT_FAILED";
3118
- static statusCode = 500;
3119
- static description = `Deployment failed: {message}`;
3261
+ static code = "VERIFICATION_NOT_FOUND";
3262
+ static statusCode = 404;
3263
+ static description = `Verification request not found for domain: {domain}`;
3120
3264
  }
3121
- class InvalidDeploymentRequestError extends Error {
3265
+ class FailedToCreateVerificationCodeError extends Error {
3122
3266
  constructor(body) {
3123
3267
  super(
3124
- `INVALID_DEPLOYMENT_REQUEST: ${body.message}`
3268
+ `FAILED_TO_CREATE_VERIFICATION_CODE: ${body.message}`
3125
3269
  );
3126
3270
  this.body = body;
3127
- this.name = "InvalidDeploymentRequestError";
3271
+ this.name = "FailedToCreateVerificationCodeError";
3128
3272
  }
3129
- static code = "INVALID_DEPLOYMENT_REQUEST";
3273
+ static code = "FAILED_TO_CREATE_VERIFICATION_CODE";
3130
3274
  static statusCode = 400;
3131
- static description = `Invalid deployment request: {message}`;
3275
+ static description = `Failed to create verification code: {message}`;
3132
3276
  }
3133
- class ProjectNotFoundError extends Error {
3277
+ class InvalidDomainError extends Error {
3134
3278
  constructor(body) {
3135
3279
  super(
3136
- `PROJECT_NOT_FOUND: ${body.message}`
3280
+ `INVALID_DOMAIN: ${body.message}`
3137
3281
  );
3138
3282
  this.body = body;
3139
- this.name = "ProjectNotFoundError";
3283
+ this.name = "InvalidDomainError";
3140
3284
  }
3141
- static code = "PROJECT_NOT_FOUND";
3142
- static statusCode = 404;
3143
- static description = `Project not found: {project_id}`;
3285
+ static code = "INVALID_DOMAIN";
3286
+ static statusCode = 400;
3287
+ static description = `Invalid domain: {domain}`;
3144
3288
  }
3145
3289
  const FREESTYLE_ERROR_CODE_MAP = {
3146
3290
  "BAD_PARSE": BadParseError,
@@ -3149,6 +3293,12 @@ const FREESTYLE_ERROR_CODE_MAP = {
3149
3293
  "BAD_HEADER": BadHeaderError,
3150
3294
  "BAD_KEY": BadKeyError,
3151
3295
  "GIT_ERROR": GitErrorError,
3296
+ "SUSPEND_FAILED_AND_STOP_FAILED": SuspendFailedAndStopFailedError,
3297
+ "SUSPEND_FAILED_AND_STOPPED": SuspendFailedAndStoppedError,
3298
+ "INVALID_GIT_REPO_SPEC_ERROR": InvalidGitRepoSpecErrorError,
3299
+ "INTERNAL_ERROR": InternalErrorError,
3300
+ "FORK_VM_NOT_FOUND": ForkVmNotFoundError,
3301
+ "CREATE_SNAPSHOT_BAD_REQUEST": CreateSnapshotBadRequestError,
3152
3302
  "SNAPSHOT_NOT_FOUND": SnapshotNotFoundError,
3153
3303
  "RESUMED_VM_NON_RESPONSIVE": ResumedVmNonResponsiveError,
3154
3304
  "SNAPSHOT_LOAD_TIMEOUT": SnapshotLoadTimeoutError,
@@ -3163,19 +3313,26 @@ const FREESTYLE_ERROR_CODE_MAP = {
3163
3313
  "VM_IS_SUSPENDING": VmIsSuspendingError,
3164
3314
  "VM_EXIT_DURING_START": VmExitDuringStartError,
3165
3315
  "VM_ACCESS_DENIED": VmAccessDeniedError,
3166
- "STD_IO": StdIoError,
3167
3316
  "FAILED_TO_SPAWN_UFFD": FailedToSpawnUffdError,
3168
3317
  "VM_SPAWN_PROCESS": VmSpawnProcessError,
3169
3318
  "VM_SUBNET_NOT_FOUND": VmSubnetNotFoundError,
3170
- "VM_OPERATION_DENIED_DURING_TRANSACTION": VmOperationDeniedDuringTransactionError,
3171
- "VM_TRANSACTION_ID_MISMATCH": VmTransactionIdMismatchError,
3172
- "VM_NOT_IN_TRANSACTION": VmNotInTransactionError,
3319
+ "SNAPSHOT_SETUP_FAILED": SnapshotSetupFailedError,
3320
+ "SNAPSHOT_VM_BAD_REQUEST": SnapshotVmBadRequestError,
3321
+ "SNAPSHOT_IS_ACCOUNT_DEFAULT": SnapshotIsAccountDefaultError,
3322
+ "SNAPSHOT_ALREADY_DELETED": SnapshotAlreadyDeletedError,
3173
3323
  "VM_NOT_FOUND_IN_FS": VmNotFoundInFsError,
3174
3324
  "VM_NOT_RUNNING": VmNotRunningError,
3175
3325
  "VM_NOT_FOUND": VmNotFoundError,
3176
3326
  "INTERNAL_FORK_VM_NOT_FOUND": InternalForkVmNotFoundError,
3177
3327
  "BAD_REQUEST": BadRequestError,
3178
3328
  "INTERNAL_VM_NOT_FOUND": InternalVmNotFoundError,
3329
+ "NO_DEFAULT_SNAPSHOT_AVAILABLE": NoDefaultSnapshotAvailableError,
3330
+ "DOCKER_SNAPSHOT_FAILED": DockerSnapshotFailedError,
3331
+ "SET_DEFAULT_SNAPSHOT_FAILED": SetDefaultSnapshotFailedError,
3332
+ "SNAPSHOT_LAYER_CREATION_FAILED": SnapshotLayerCreationFailedError,
3333
+ "SNAPSHOT_DIR_NOT_FOUND": SnapshotDirNotFoundError,
3334
+ "SUBVOLUME_CREATION_FAILED": SubvolumeCreationFailedError,
3335
+ "GET_DEFAULT_SNAPSHOT_FAILED": GetDefaultSnapshotFailedError,
3179
3336
  "USER_NOT_FOUND": UserNotFoundError,
3180
3337
  "USER_ALREADY_EXISTS": UserAlreadyExistsError,
3181
3338
  "VALIDATION_ERROR": ValidationErrorError,
@@ -3192,29 +3349,17 @@ const FREESTYLE_ERROR_CODE_MAP = {
3192
3349
  "GROUP_NAME_INVALID_CHARS": GroupNameInvalidCharsError,
3193
3350
  "GROUP_NAME_TOO_LONG": GroupNameTooLongError,
3194
3351
  "GROUP_NAME_EMPTY": GroupNameEmptyError,
3195
- "NO_DEFAULT_SNAPSHOT_AVAILABLE": NoDefaultSnapshotAvailableError,
3196
- "DOCKER_SNAPSHOT_FAILED": DockerSnapshotFailedError,
3197
- "SET_DEFAULT_SNAPSHOT_FAILED": SetDefaultSnapshotFailedError,
3198
- "SNAPSHOT_LAYER_CREATION_FAILED": SnapshotLayerCreationFailedError,
3199
- "SNAPSHOT_DIR_NOT_FOUND": SnapshotDirNotFoundError,
3200
- "SUBVOLUME_CREATION_FAILED": SubvolumeCreationFailedError,
3201
- "GET_DEFAULT_SNAPSHOT_FAILED": GetDefaultSnapshotFailedError,
3202
- "SNAPSHOT_SETUP_FAILED": SnapshotSetupFailedError,
3203
- "SNAPSHOT_VM_BAD_REQUEST": SnapshotVmBadRequestError,
3204
- "DATABASE_ERROR": DatabaseErrorError,
3205
- "PARTITION_NOT_FOUND": PartitionNotFoundError,
3206
- "INVALID_VM_ID": InvalidVmIdError,
3207
- "SUSPEND_FAILED_AND_STOP_FAILED": SuspendFailedAndStopFailedError,
3208
- "SUSPEND_FAILED_AND_STOPPED": SuspendFailedAndStoppedError,
3209
- "FILE_NOT_FOUND": FileNotFoundError,
3210
- "FILES_BAD_REQUEST": FilesBadRequestError,
3211
- "INVALID_GIT_REPO_SPEC_ERROR": InvalidGitRepoSpecErrorError,
3212
- "INTERNAL_ERROR": InternalErrorError,
3213
- "FORK_VM_NOT_FOUND": ForkVmNotFoundError,
3214
- "CREATE_SNAPSHOT_BAD_REQUEST": CreateSnapshotBadRequestError,
3215
3352
  "ACTIVE_TRANSACTION_ERROR": ActiveTransactionErrorError,
3216
3353
  "SWAP_VM_TAP": SwapVmTapError,
3217
3354
  "ROOTFS_COPY_ERROR": RootfsCopyErrorError,
3355
+ "PARTITION_NOT_FOUND": PartitionNotFoundError,
3356
+ "FILE_NOT_FOUND": FileNotFoundError,
3357
+ "FILES_BAD_REQUEST": FilesBadRequestError,
3358
+ "DATABASE_ERROR": DatabaseErrorError,
3359
+ "INVALID_VM_ID": InvalidVmIdError,
3360
+ "VM_OPERATION_DENIED_DURING_TRANSACTION": VmOperationDeniedDuringTransactionError,
3361
+ "VM_TRANSACTION_ID_MISMATCH": VmTransactionIdMismatchError,
3362
+ "VM_NOT_IN_TRANSACTION": VmNotInTransactionError,
3218
3363
  "CREATE_VM_BAD_REQUEST": CreateVmBadRequestError,
3219
3364
  "VM_SETUP_FAILED": VmSetupFailedError,
3220
3365
  "WANTED_BY_EMPTY": WantedByEmptyError,
@@ -3243,80 +3388,67 @@ const FREESTYLE_ERROR_CODE_MAP = {
3243
3388
  "INVALID_PARAMETERS": InvalidParametersError,
3244
3389
  "MAX_USES_EXCEEDED": MaxUsesExceededError,
3245
3390
  "EXPIRED": ExpiredError,
3246
- "FORBIDDEN": ForbiddenError,
3247
- "UNAUTHORIZED": UnauthorizedError,
3248
- "BLOB_NOT_FOUND": BlobNotFoundError,
3249
- "INVALID_RANGE": InvalidRangeError,
3250
- "OFFSET_WITH_SELECTOR": OffsetWithSelectorError,
3251
- "COMMIT_NOT_IN_BRANCH": CommitNotInBranchError,
3252
- "COMMIT_NOT_FOUND": CommitNotFoundError,
3253
3391
  "BRANCH_NOT_FOUND": BranchNotFoundError,
3392
+ "BRANCH_ALREADY_EXISTS": BranchAlreadyExistsError,
3254
3393
  "NO_DEFAULT_BRANCH": NoDefaultBranchError,
3394
+ "COMMIT_NOT_FOUND": CommitNotFoundError,
3395
+ "PARENT_NOT_FOUND": ParentNotFoundError,
3396
+ "TREE_NOT_FOUND": TreeNotFoundError,
3397
+ "PACKFILE": PackfileError,
3398
+ "INVALID_REVISION": InvalidRevisionError,
3399
+ "FORBIDDEN": ForbiddenError,
3400
+ "UNAUTHORIZED": UnauthorizedError,
3401
+ "PATH_NOT_FOUND": PathNotFoundError,
3402
+ "REFERENCE_NOT_FOUND": ReferenceNotFoundError,
3403
+ "AMBIGUOUS": AmbiguousError,
3404
+ "NOT_FOUND": NotFoundError,
3405
+ "INVALID": InvalidError,
3406
+ "DIFF_INVALID_PATH_PATTERN": DiffInvalidPathPatternError,
3407
+ "DIFF_INVALID_REGEX": DiffInvalidRegexError,
3408
+ "DIFF_EMPTY_QUERY": DiffEmptyQueryError,
3409
+ "COMMIT_INVALID_REGEX": CommitInvalidRegexError,
3410
+ "COMMIT_EMPTY_QUERY": CommitEmptyQueryError,
3411
+ "FILENAME_INVALID_PATTERN": FilenameInvalidPatternError,
3412
+ "FILENAME_EMPTY_QUERY": FilenameEmptyQueryError,
3413
+ "INVALID_REGEX": InvalidRegexError,
3414
+ "INVALID_PATH_PATTERN": InvalidPathPatternError,
3415
+ "EMPTY_QUERY": EmptyQueryError,
3416
+ "CONFLICT": ConflictError,
3255
3417
  "INVALID_BASE64_CONTENT": InvalidBase64ContentError,
3256
3418
  "INVALID_FILE_CHANGE": InvalidFileChangeError,
3257
3419
  "INVALID_FILE_PATH": InvalidFilePathError,
3258
3420
  "CONFLICTING_PARENT": ConflictingParentError,
3259
- "AMBIGUOUS": AmbiguousError,
3260
- "NOT_FOUND": NotFoundError,
3261
- "INVALID": InvalidError,
3262
- "UNSUPPORTED_TRANSFER": UnsupportedTransferError,
3263
- "TREE_NOT_FOUND": TreeNotFoundError,
3264
- "PARENT_NOT_FOUND": ParentNotFoundError,
3265
- "INVALID_SERVICE": InvalidServiceError,
3266
- "EXPECTED_SERVICE": ExpectedServiceError,
3267
- "PATH_NOT_FOUND": PathNotFoundError,
3268
- "REFERENCE_NOT_FOUND": ReferenceNotFoundError,
3269
- "TAG_NOT_FOUND": TagNotFoundError,
3270
- "INVALID_REVISION": InvalidRevisionError,
3271
- "PACKFILE": PackfileError,
3272
- "SEND_ERROR": SendErrorError,
3273
3421
  "INVALID_ACCOUNT_ID": InvalidAccountIdError,
3274
3422
  "SOURCE_IMPORT_CONFLICT": SourceImportConflictError,
3275
3423
  "SOURCE_UNAUTHORIZED": SourceUnauthorizedError,
3276
3424
  "SOURCE_NOT_FOUND": SourceNotFoundError,
3277
3425
  "IMPORT_SUBDIR_NOT_FOUND": ImportSubdirNotFoundError,
3278
3426
  "REPO_ALREADY_EXISTS": RepoAlreadyExistsError,
3279
- "CONFLICT": ConflictError,
3280
- "BRANCH_ALREADY_EXISTS": BranchAlreadyExistsError,
3427
+ "SEND_ERROR": SendErrorError,
3428
+ "INVALID_RANGE": InvalidRangeError,
3429
+ "OFFSET_WITH_SELECTOR": OffsetWithSelectorError,
3430
+ "COMMIT_NOT_IN_BRANCH": CommitNotInBranchError,
3431
+ "TAG_NOT_FOUND": TagNotFoundError,
3432
+ "INVALID_SERVICE": InvalidServiceError,
3433
+ "EXPECTED_SERVICE": ExpectedServiceError,
3281
3434
  "GIT_HUB_SYNC_CONFLICT": GitHubSyncConflictError,
3282
3435
  "INVALID_OBJECT_ID": InvalidObjectIdError,
3436
+ "UNSUPPORTED_TRANSFER": UnsupportedTransferError,
3437
+ "BLOB_NOT_FOUND": BlobNotFoundError,
3283
3438
  "UNAVAILABLE": UnavailableError,
3284
3439
  "SCHEDULE_NOT_FOUND": ScheduleNotFoundError,
3285
3440
  "SERVICE_UNAVAILABLE": ServiceUnavailableError,
3286
3441
  "EXECUTE_LIMIT_EXCEEDED": ExecuteLimitExceededError,
3287
- "OBSERVABILITY_DATABASE_ERROR": ObservabilityDatabaseErrorError,
3288
- "OBSERVABILITY_ACCESS_DENIED": ObservabilityAccessDeniedError,
3289
- "PARSE_LOGS_FAILED": ParseLogsFailedError,
3290
- "RETRIEVE_LOGS_FAILED": RetrieveLogsFailedError,
3291
- "INVALID_QUERY": InvalidQueryError,
3292
- "LOGS_NOT_FOUND": LogsNotFoundError,
3293
- "EXECUTE_INTERNAL_ERROR": ExecuteInternalErrorError,
3294
- "EXECUTE_ACCESS_DENIED": ExecuteAccessDeniedError,
3295
- "LIST_RUNS_FAILED": ListRunsFailedError,
3296
- "EXECUTION_ERROR": ExecutionErrorError,
3297
- "CONNECTION_FAILED": ConnectionFailedError,
3298
- "METADATA_WRITE_FAILED": MetadataWriteFailedError,
3299
- "NODE_MODULES_INSTALL_FAILED": NodeModulesInstallFailedError,
3300
- "NODE_MODULES_DOWNLOAD_FAILED": NodeModulesDownloadFailedError,
3301
- "LOCK_GENERATION_FAILED": LockGenerationFailedError,
3302
- "WRITE_SCRIPT_FAILED": WriteScriptFailedError,
3303
- "DIRECTORY_CREATION_FAILED": DirectoryCreationFailedError,
3304
- "NETWORK_PERMISSIONS_FAILED": NetworkPermissionsFailedError,
3305
- "LOGGING_FAILED": LoggingFailedError,
3306
- "RUN_NOT_FOUND": RunNotFoundError,
3307
- "LIMIT_EXCEEDED": LimitExceededError,
3308
- "FAILED_TO_PROVISION_CERTIFICATE": FailedToProvisionCertificateError,
3309
- "FAILED_TO_INSERT_DOMAIN_MAPPING": FailedToInsertDomainMappingError,
3310
- "PERMISSION_DENIED": PermissionDeniedError,
3311
- "FAILED_TO_CHECK_PERMISSIONS": FailedToCheckPermissionsError,
3312
- "FAILED_TO_LIST_DOMAINS": FailedToListDomainsError,
3313
- "FAILED_TO_LIST_VERIFICATIONS": FailedToListVerificationsError,
3314
- "FAILED_TO_VERIFY_DOMAIN": FailedToVerifyDomainError,
3315
- "VERIFICATION_FAILED": VerificationFailedError,
3316
- "FAILED_TO_DELETE_VERIFICATION": FailedToDeleteVerificationError,
3317
- "VERIFICATION_NOT_FOUND": VerificationNotFoundError,
3318
- "FAILED_TO_CREATE_VERIFICATION_CODE": FailedToCreateVerificationCodeError,
3319
- "INVALID_DOMAIN": InvalidDomainError,
3442
+ "ACCESS_DENIED": AccessDeniedError,
3443
+ "CLOUDSTATE_INTERNAL_ERROR": CloudstateInternalErrorError,
3444
+ "CLOUDSTATE_DATABASE_ERROR": CloudstateDatabaseErrorError,
3445
+ "CLOUDSTATE_ACCESS_DENIED": CloudstateAccessDeniedError,
3446
+ "RESTORE_FAILED": RestoreFailedError,
3447
+ "CREATE_BACKUP_FAILED": CreateBackupFailedError,
3448
+ "BACKUP_FAILED": BackupFailedError,
3449
+ "DEPLOYMENT_FAILED": DeploymentFailedError,
3450
+ "INVALID_DEPLOYMENT_REQUEST": InvalidDeploymentRequestError,
3451
+ "PROJECT_NOT_FOUND": ProjectNotFoundError,
3320
3452
  "BUILD_FAILED": BuildFailedError,
3321
3453
  "SERVER_DEPLOYMENT_FAILED": ServerDeploymentFailedError,
3322
3454
  "LOCKFILE_ERROR": LockfileErrorError,
@@ -3333,9 +3465,32 @@ const FREESTYLE_ERROR_CODE_MAP = {
3333
3465
  "DEPLOYMENT_NOT_FOUND": DeploymentNotFoundError,
3334
3466
  "RESIZE_FAILED": ResizeFailedError,
3335
3467
  "INTERNAL_RESIZE_VM_NOT_FOUND": InternalResizeVmNotFoundError,
3336
- "ACCESS_DENIED": AccessDeniedError,
3337
3468
  "BRANCH_NAME_EMPTY": BranchNameEmptyError,
3338
- "UNAUTHORIZED_ERROR": UnauthorizedErrorError,
3469
+ "SNAPSHOT_LIMIT_EXCEEDED": SnapshotLimitExceededError,
3470
+ "PERSISTENT_VMS_NOT_ALLOWED": PersistentVmsNotAllowedError,
3471
+ "TOTAL_VM_LIMIT_EXCEEDED": TotalVmLimitExceededError,
3472
+ "VM_LIMIT_EXCEEDED": VmLimitExceededError,
3473
+ "OBSERVABILITY_DATABASE_ERROR": ObservabilityDatabaseErrorError,
3474
+ "OBSERVABILITY_ACCESS_DENIED": ObservabilityAccessDeniedError,
3475
+ "PARSE_LOGS_FAILED": ParseLogsFailedError,
3476
+ "RETRIEVE_LOGS_FAILED": RetrieveLogsFailedError,
3477
+ "INVALID_QUERY": InvalidQueryError,
3478
+ "LOGS_NOT_FOUND": LogsNotFoundError,
3479
+ "DOMAIN_OWNERSHIP_NOT_VERIFIED": DomainOwnershipNotVerifiedError,
3480
+ "VM_ACCESS_DENIED_FOR_MAPPING": VmAccessDeniedForMappingError,
3481
+ "DEPLOYMENT_ACCESS_DENIED": DeploymentAccessDeniedError,
3482
+ "FAILED_TO_PROVISION_CERTIFICATE_FOR_MAPPING": FailedToProvisionCertificateForMappingError,
3483
+ "FAILED_INSERT_DOMAIN_MAPPING": FailedInsertDomainMappingError,
3484
+ "DOMAIN_ALREADY_EXISTS": DomainAlreadyExistsError,
3485
+ "FAILED_TO_INSERT_OWNERSHIP": FailedToInsertOwnershipError,
3486
+ "FAILED_REMOVE_DOMAIN_MAPPING": FailedRemoveDomainMappingError,
3487
+ "FAILED_PERMISSIONS_CHECK": FailedPermissionsCheckError,
3488
+ "FAILED_TO_CHECK_DOMAIN_MAPPING_PERMISSIONS": FailedToCheckDomainMappingPermissionsError,
3489
+ "DOMAIN_OWNERSHIP_VERIFICATION_FAILED": DomainOwnershipVerificationFailedError,
3490
+ "ERROR_DELETING_RECORD": ErrorDeletingRecordError,
3491
+ "RECORD_OWNERSHIP_ERROR": RecordOwnershipErrorError,
3492
+ "ERROR_CREATING_RECORD": ErrorCreatingRecordError,
3493
+ "DOMAIN_OWNERSHIP_ERROR": DomainOwnershipErrorError,
3339
3494
  "TRIGGER_ERROR": TriggerErrorError,
3340
3495
  "TOKEN_ERROR": TokenErrorError,
3341
3496
  "PERMISSION_ERROR": PermissionErrorError,
@@ -3355,21 +3510,23 @@ const FREESTYLE_ERROR_CODE_MAP = {
3355
3510
  "SERIALIZATION_ERROR": SerializationErrorError,
3356
3511
  "GIT_INVALID_REQUEST": GitInvalidRequestError,
3357
3512
  "REPOSITORY_NOT_FOUND": RepositoryNotFoundError,
3358
- "DOMAIN_OWNERSHIP_NOT_VERIFIED": DomainOwnershipNotVerifiedError,
3359
- "VM_ACCESS_DENIED_FOR_MAPPING": VmAccessDeniedForMappingError,
3360
- "DEPLOYMENT_ACCESS_DENIED": DeploymentAccessDeniedError,
3361
- "FAILED_TO_PROVISION_CERTIFICATE_FOR_MAPPING": FailedToProvisionCertificateForMappingError,
3362
- "FAILED_INSERT_DOMAIN_MAPPING": FailedInsertDomainMappingError,
3363
- "DOMAIN_ALREADY_EXISTS": DomainAlreadyExistsError,
3364
- "FAILED_TO_INSERT_OWNERSHIP": FailedToInsertOwnershipError,
3365
- "FAILED_REMOVE_DOMAIN_MAPPING": FailedRemoveDomainMappingError,
3366
- "FAILED_PERMISSIONS_CHECK": FailedPermissionsCheckError,
3367
- "FAILED_TO_CHECK_DOMAIN_MAPPING_PERMISSIONS": FailedToCheckDomainMappingPermissionsError,
3513
+ "EXECUTE_INTERNAL_ERROR": ExecuteInternalErrorError,
3514
+ "EXECUTE_ACCESS_DENIED": ExecuteAccessDeniedError,
3515
+ "LIST_RUNS_FAILED": ListRunsFailedError,
3516
+ "EXECUTION_ERROR": ExecutionErrorError,
3517
+ "CONNECTION_FAILED": ConnectionFailedError,
3518
+ "METADATA_WRITE_FAILED": MetadataWriteFailedError,
3519
+ "NODE_MODULES_INSTALL_FAILED": NodeModulesInstallFailedError,
3520
+ "NODE_MODULES_DOWNLOAD_FAILED": NodeModulesDownloadFailedError,
3521
+ "LOCK_GENERATION_FAILED": LockGenerationFailedError,
3522
+ "WRITE_SCRIPT_FAILED": WriteScriptFailedError,
3523
+ "DIRECTORY_CREATION_FAILED": DirectoryCreationFailedError,
3524
+ "NETWORK_PERMISSIONS_FAILED": NetworkPermissionsFailedError,
3525
+ "LOGGING_FAILED": LoggingFailedError,
3526
+ "RUN_NOT_FOUND": RunNotFoundError,
3527
+ "UNAUTHORIZED_ERROR": UnauthorizedErrorError,
3368
3528
  "GIT_REPO_LIMIT_EXCEEDED": GitRepoLimitExceededError,
3369
3529
  "EMPTY_TAG": EmptyTagError,
3370
- "PERSISTENT_VMS_NOT_ALLOWED": PersistentVmsNotAllowedError,
3371
- "TOTAL_VM_LIMIT_EXCEEDED": TotalVmLimitExceededError,
3372
- "VM_LIMIT_EXCEEDED": VmLimitExceededError,
3373
3530
  "PERMISSION_ALREADY_EXISTS": PermissionAlreadyExistsError,
3374
3531
  "LIST_TOKENS_FAILED": ListTokensFailedError,
3375
3532
  "REVOKE_TOKEN_FAILED": RevokeTokenFailedError,
@@ -3390,20 +3547,19 @@ const FREESTYLE_ERROR_CODE_MAP = {
3390
3547
  "CANNOT_MODIFY_MANAGED_IDENTITY": CannotModifyManagedIdentityError,
3391
3548
  "IDENTITY_ACCESS_DENIED": IdentityAccessDeniedError,
3392
3549
  "IDENTITY_NOT_FOUND": IdentityNotFoundError,
3393
- "DOMAIN_OWNERSHIP_VERIFICATION_FAILED": DomainOwnershipVerificationFailedError,
3394
- "ERROR_DELETING_RECORD": ErrorDeletingRecordError,
3395
- "RECORD_OWNERSHIP_ERROR": RecordOwnershipErrorError,
3396
- "ERROR_CREATING_RECORD": ErrorCreatingRecordError,
3397
- "DOMAIN_OWNERSHIP_ERROR": DomainOwnershipErrorError,
3398
- "CLOUDSTATE_INTERNAL_ERROR": CloudstateInternalErrorError,
3399
- "CLOUDSTATE_DATABASE_ERROR": CloudstateDatabaseErrorError,
3400
- "CLOUDSTATE_ACCESS_DENIED": CloudstateAccessDeniedError,
3401
- "RESTORE_FAILED": RestoreFailedError,
3402
- "CREATE_BACKUP_FAILED": CreateBackupFailedError,
3403
- "BACKUP_FAILED": BackupFailedError,
3404
- "DEPLOYMENT_FAILED": DeploymentFailedError,
3405
- "INVALID_DEPLOYMENT_REQUEST": InvalidDeploymentRequestError,
3406
- "PROJECT_NOT_FOUND": ProjectNotFoundError
3550
+ "LIMIT_EXCEEDED": LimitExceededError,
3551
+ "FAILED_TO_PROVISION_CERTIFICATE": FailedToProvisionCertificateError,
3552
+ "FAILED_TO_INSERT_DOMAIN_MAPPING": FailedToInsertDomainMappingError,
3553
+ "PERMISSION_DENIED": PermissionDeniedError,
3554
+ "FAILED_TO_CHECK_PERMISSIONS": FailedToCheckPermissionsError,
3555
+ "FAILED_TO_LIST_DOMAINS": FailedToListDomainsError,
3556
+ "FAILED_TO_LIST_VERIFICATIONS": FailedToListVerificationsError,
3557
+ "FAILED_TO_VERIFY_DOMAIN": FailedToVerifyDomainError,
3558
+ "VERIFICATION_FAILED": VerificationFailedError,
3559
+ "FAILED_TO_DELETE_VERIFICATION": FailedToDeleteVerificationError,
3560
+ "VERIFICATION_NOT_FOUND": VerificationNotFoundError,
3561
+ "FAILED_TO_CREATE_VERIFICATION_CODE": FailedToCreateVerificationCodeError,
3562
+ "INVALID_DOMAIN": InvalidDomainError
3407
3563
  };
3408
3564
 
3409
3565
  var errors = /*#__PURE__*/Object.freeze({
@@ -3430,6 +3586,8 @@ var errors = /*#__PURE__*/Object.freeze({
3430
3586
  CloudstateAccessDeniedError: CloudstateAccessDeniedError,
3431
3587
  CloudstateDatabaseErrorError: CloudstateDatabaseErrorError,
3432
3588
  CloudstateInternalErrorError: CloudstateInternalErrorError,
3589
+ CommitEmptyQueryError: CommitEmptyQueryError,
3590
+ CommitInvalidRegexError: CommitInvalidRegexError,
3433
3591
  CommitNotFoundError: CommitNotFoundError,
3434
3592
  CommitNotInBranchError: CommitNotInBranchError,
3435
3593
  ConflictError: ConflictError,
@@ -3449,6 +3607,9 @@ var errors = /*#__PURE__*/Object.freeze({
3449
3607
  DeploymentFailedError: DeploymentFailedError,
3450
3608
  DeploymentLimitExceededError: DeploymentLimitExceededError,
3451
3609
  DeploymentNotFoundError: DeploymentNotFoundError,
3610
+ DiffEmptyQueryError: DiffEmptyQueryError,
3611
+ DiffInvalidPathPatternError: DiffInvalidPathPatternError,
3612
+ DiffInvalidRegexError: DiffInvalidRegexError,
3452
3613
  DirectoryCreationFailedError: DirectoryCreationFailedError,
3453
3614
  DockerSnapshotFailedError: DockerSnapshotFailedError,
3454
3615
  DomainAlreadyExistsError: DomainAlreadyExistsError,
@@ -3459,6 +3620,7 @@ var errors = /*#__PURE__*/Object.freeze({
3459
3620
  DownloadFailedError: DownloadFailedError,
3460
3621
  DuplicateGroupNameError: DuplicateGroupNameError,
3461
3622
  DuplicateUserNameError: DuplicateUserNameError,
3623
+ EmptyQueryError: EmptyQueryError,
3462
3624
  EmptyTagError: EmptyTagError,
3463
3625
  EntrypointNotFoundError: EntrypointNotFoundError,
3464
3626
  EnvKeyContainsEqualsError: EnvKeyContainsEqualsError,
@@ -3489,6 +3651,8 @@ var errors = /*#__PURE__*/Object.freeze({
3489
3651
  FailedToSpawnUffdError: FailedToSpawnUffdError,
3490
3652
  FailedToVerifyDomainError: FailedToVerifyDomainError,
3491
3653
  FileNotFoundError: FileNotFoundError,
3654
+ FilenameEmptyQueryError: FilenameEmptyQueryError,
3655
+ FilenameInvalidPatternError: FilenameInvalidPatternError,
3492
3656
  FilesBadRequestError: FilesBadRequestError,
3493
3657
  FirecrackerApiSocketNotFoundError: FirecrackerApiSocketNotFoundError,
3494
3658
  FirecrackerPidNotFoundError: FirecrackerPidNotFoundError,
@@ -3534,8 +3698,10 @@ var errors = /*#__PURE__*/Object.freeze({
3534
3698
  InvalidGitRepoSpecErrorError: InvalidGitRepoSpecErrorError,
3535
3699
  InvalidObjectIdError: InvalidObjectIdError,
3536
3700
  InvalidParametersError: InvalidParametersError,
3701
+ InvalidPathPatternError: InvalidPathPatternError,
3537
3702
  InvalidQueryError: InvalidQueryError,
3538
3703
  InvalidRangeError: InvalidRangeError,
3704
+ InvalidRegexError: InvalidRegexError,
3539
3705
  InvalidRequestError: InvalidRequestError,
3540
3706
  InvalidRevisionError: InvalidRevisionError,
3541
3707
  InvalidServiceError: InvalidServiceError,
@@ -3609,8 +3775,11 @@ var errors = /*#__PURE__*/Object.freeze({
3609
3775
  ServiceUnavailableError: ServiceUnavailableError,
3610
3776
  SetDefaultSnapshotFailedError: SetDefaultSnapshotFailedError,
3611
3777
  SigningError: SigningError,
3778
+ SnapshotAlreadyDeletedError: SnapshotAlreadyDeletedError,
3612
3779
  SnapshotDirNotFoundError: SnapshotDirNotFoundError,
3780
+ SnapshotIsAccountDefaultError: SnapshotIsAccountDefaultError,
3613
3781
  SnapshotLayerCreationFailedError: SnapshotLayerCreationFailedError,
3782
+ SnapshotLimitExceededError: SnapshotLimitExceededError,
3614
3783
  SnapshotLoadTimeoutError: SnapshotLoadTimeoutError,
3615
3784
  SnapshotNotFoundError: SnapshotNotFoundError,
3616
3785
  SnapshotSetupFailedError: SnapshotSetupFailedError,
@@ -3618,7 +3787,6 @@ var errors = /*#__PURE__*/Object.freeze({
3618
3787
  SourceImportConflictError: SourceImportConflictError,
3619
3788
  SourceNotFoundError: SourceNotFoundError,
3620
3789
  SourceUnauthorizedError: SourceUnauthorizedError,
3621
- StdIoError: StdIoError,
3622
3790
  SubvolumeCreationFailedError: SubvolumeCreationFailedError,
3623
3791
  SuspendFailedAndStopFailedError: SuspendFailedAndStopFailedError,
3624
3792
  SuspendFailedAndStoppedError: SuspendFailedAndStoppedError,
@@ -3770,6 +3938,11 @@ class ApiClient {
3770
3938
  const url = this.buildUrl(path, options?.params, options?.query);
3771
3939
  return this.requestRaw("GET", url, void 0, options?.headers);
3772
3940
  }
3941
+ postRaw(path, ...args) {
3942
+ const options = args[0];
3943
+ const url = this.buildUrl(path, options?.params, options?.query);
3944
+ return this.requestRaw("POST", url, options?.body, options?.headers);
3945
+ }
3773
3946
  get(path, ...args) {
3774
3947
  const options = args[0];
3775
3948
  const url = this.buildUrl(path, options?.params, options?.query);
@@ -3780,11 +3953,6 @@ class ApiClient {
3780
3953
  const url = this.buildUrl(path, options?.params, options?.query);
3781
3954
  return this.request("POST", url, options?.body, options?.headers);
3782
3955
  }
3783
- postRaw(path, ...args) {
3784
- const options = args[0];
3785
- const url = this.buildUrl(path, options?.params, options?.query);
3786
- return this.requestRaw("POST", url, options?.body, options?.headers);
3787
- }
3788
3956
  put(path, ...args) {
3789
3957
  const options = args[0];
3790
3958
  const url = this.buildUrl(path, options?.params, options?.query);
@@ -4522,6 +4690,192 @@ class GitRepo {
4522
4690
  }
4523
4691
  });
4524
4692
  }
4693
+ /**
4694
+ * Full-text search across all files in this repository.
4695
+ *
4696
+ * Walks the entire tree at the given revision and searches each text file
4697
+ * for the query string, returning matching lines with context.
4698
+ *
4699
+ * @param query - The text to search for in file contents
4700
+ * @param rev - The revision (branch, tag, or commit SHA) to search. Defaults to HEAD.
4701
+ * @param pathPattern - Optional glob pattern to filter file paths (e.g. "*.ts", "src/**")
4702
+ * @param maxResults - Maximum number of matching files to return (default 100, max 1000)
4703
+ * @param caseSensitive - Whether to perform a case-sensitive search (default false)
4704
+ *
4705
+ * @example
4706
+ * ```ts
4707
+ * // Search for a string across the whole repo
4708
+ * const results = await repo.search({ query: "TODO" });
4709
+ * console.log(`Found ${results.totalMatches} matches in ${results.totalFiles} files`);
4710
+ *
4711
+ * // Search only TypeScript files on a specific branch
4712
+ * const results = await repo.search({
4713
+ * query: "handleRequest",
4714
+ * rev: "main",
4715
+ * pathPattern: "**\/*.ts",
4716
+ * });
4717
+ *
4718
+ * // Case-sensitive search
4719
+ * const results = await repo.search({
4720
+ * query: "MyClass",
4721
+ * caseSensitive: true,
4722
+ * });
4723
+ *
4724
+ * for (const file of results.files) {
4725
+ * console.log(`${file.path}:`);
4726
+ * for (const match of file.matches) {
4727
+ * console.log(` L${match.lineNumber}: ${match.line}`);
4728
+ * }
4729
+ * }
4730
+ * ```
4731
+ */
4732
+ async search({
4733
+ query,
4734
+ rev,
4735
+ pathPattern,
4736
+ excludePattern,
4737
+ maxResults,
4738
+ caseSensitive,
4739
+ isRegex,
4740
+ wholeWord,
4741
+ offset
4742
+ }) {
4743
+ return this.apiClient.get("/git/v1/repo/{repo}/search", {
4744
+ params: { repo: this.repoId },
4745
+ query: {
4746
+ query,
4747
+ ref: rev,
4748
+ pathPattern,
4749
+ excludePattern,
4750
+ maxResults,
4751
+ caseSensitive,
4752
+ isRegex,
4753
+ wholeWord,
4754
+ offset
4755
+ }
4756
+ });
4757
+ }
4758
+ /**
4759
+ * Search for files by name or path pattern.
4760
+ *
4761
+ * @example
4762
+ * ```ts
4763
+ * const result = await repo.searchFiles({ query: "main" });
4764
+ * for (const file of result.files) {
4765
+ * console.log(`${file.path} (${file.size} bytes)`);
4766
+ * }
4767
+ * ```
4768
+ */
4769
+ async searchFiles({
4770
+ query,
4771
+ rev,
4772
+ pathPattern,
4773
+ excludePattern,
4774
+ maxResults,
4775
+ caseSensitive,
4776
+ isRegex,
4777
+ offset
4778
+ }) {
4779
+ return this.apiClient.get(
4780
+ "/git/v1/repo/{repo}/search/files",
4781
+ {
4782
+ params: { repo: this.repoId },
4783
+ query: {
4784
+ query,
4785
+ ref: rev,
4786
+ pathPattern,
4787
+ excludePattern,
4788
+ maxResults,
4789
+ caseSensitive,
4790
+ isRegex,
4791
+ offset
4792
+ }
4793
+ }
4794
+ );
4795
+ }
4796
+ /**
4797
+ * Search commit messages.
4798
+ *
4799
+ * @example
4800
+ * ```ts
4801
+ * const result = await repo.searchCommits({ query: "fix bug" });
4802
+ * for (const commit of result.commits) {
4803
+ * console.log(`${commit.sha.slice(0, 7)} ${commit.message}`);
4804
+ * }
4805
+ * ```
4806
+ */
4807
+ async searchCommits({
4808
+ query,
4809
+ rev,
4810
+ maxResults,
4811
+ caseSensitive,
4812
+ isRegex,
4813
+ offset
4814
+ }) {
4815
+ return this.apiClient.get(
4816
+ "/git/v1/repo/{repo}/search/commits",
4817
+ {
4818
+ params: { repo: this.repoId },
4819
+ query: {
4820
+ query,
4821
+ ref: rev,
4822
+ maxResults,
4823
+ caseSensitive,
4824
+ isRegex,
4825
+ offset
4826
+ }
4827
+ }
4828
+ );
4829
+ }
4830
+ /**
4831
+ * Search file content changes across commits (git log -S/-G equivalent).
4832
+ *
4833
+ * Returns commits where matching content was added or removed, along with
4834
+ * the specific changed lines and which files they were in.
4835
+ *
4836
+ * @example
4837
+ * ```ts
4838
+ * const result = await repo.searchDiffs({ query: "TODO" });
4839
+ * for (const commit of result.commits) {
4840
+ * console.log(`${commit.sha.slice(0, 7)} ${commit.message}`);
4841
+ * for (const file of commit.files) {
4842
+ * for (const match of file.matches) {
4843
+ * const prefix = match.isAddition ? "+" : "-";
4844
+ * console.log(` ${file.path}:${match.lineNumber} ${prefix} ${match.line}`);
4845
+ * }
4846
+ * }
4847
+ * }
4848
+ * ```
4849
+ */
4850
+ async searchDiffs({
4851
+ query,
4852
+ rev,
4853
+ pathPattern,
4854
+ excludePattern,
4855
+ maxResults,
4856
+ caseSensitive,
4857
+ isRegex,
4858
+ wholeWord,
4859
+ offset
4860
+ }) {
4861
+ return this.apiClient.get(
4862
+ "/git/v1/repo/{repo}/search/diffs",
4863
+ {
4864
+ params: { repo: this.repoId },
4865
+ query: {
4866
+ query,
4867
+ ref: rev,
4868
+ pathPattern,
4869
+ excludePattern,
4870
+ maxResults,
4871
+ caseSensitive,
4872
+ isRegex,
4873
+ wholeWord,
4874
+ offset
4875
+ }
4876
+ }
4877
+ );
4878
+ }
4525
4879
  }
4526
4880
  class GitReposNamespace {
4527
4881
  constructor(apiClient) {