@vibesdotdev/infra-doks 0.0.1

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 (113) hide show
  1. package/README.md +107 -0
  2. package/SPEC.md +285 -0
  3. package/dist/client/digitalocean-app-deploy.client.d.ts +46 -0
  4. package/dist/client/digitalocean-app-deploy.client.d.ts.map +1 -0
  5. package/dist/client/digitalocean-app-deploy.client.js +135 -0
  6. package/dist/client/digitalocean-app-deploy.client.js.map +1 -0
  7. package/dist/client/index.d.ts +15 -0
  8. package/dist/client/index.d.ts.map +1 -0
  9. package/dist/client/index.js +18 -0
  10. package/dist/client/index.js.map +1 -0
  11. package/dist/cloud/base.d.ts +33 -0
  12. package/dist/cloud/base.d.ts.map +1 -0
  13. package/dist/cloud/base.js +86 -0
  14. package/dist/cloud/base.js.map +1 -0
  15. package/dist/cloud/digitalocean.d.ts +33 -0
  16. package/dist/cloud/digitalocean.d.ts.map +1 -0
  17. package/dist/cloud/digitalocean.js +258 -0
  18. package/dist/cloud/digitalocean.js.map +1 -0
  19. package/dist/cloud/factory.d.ts +28 -0
  20. package/dist/cloud/factory.d.ts.map +1 -0
  21. package/dist/cloud/factory.js +151 -0
  22. package/dist/cloud/factory.js.map +1 -0
  23. package/dist/cloud/index.d.ts +12 -0
  24. package/dist/cloud/index.d.ts.map +1 -0
  25. package/dist/cloud/index.js +11 -0
  26. package/dist/cloud/index.js.map +1 -0
  27. package/dist/doks.plugin.d.ts +41 -0
  28. package/dist/doks.plugin.d.ts.map +1 -0
  29. package/dist/doks.plugin.js +287 -0
  30. package/dist/doks.plugin.js.map +1 -0
  31. package/dist/implementations/deployment.impl.d.ts +34 -0
  32. package/dist/implementations/deployment.impl.d.ts.map +1 -0
  33. package/dist/implementations/deployment.impl.js +86 -0
  34. package/dist/implementations/deployment.impl.js.map +1 -0
  35. package/dist/implementations/droplet.impl.d.ts +85 -0
  36. package/dist/implementations/droplet.impl.d.ts.map +1 -0
  37. package/dist/implementations/droplet.impl.js +113 -0
  38. package/dist/implementations/droplet.impl.js.map +1 -0
  39. package/dist/implementations/gitea.impl.d.ts +68 -0
  40. package/dist/implementations/gitea.impl.d.ts.map +1 -0
  41. package/dist/implementations/gitea.impl.js +295 -0
  42. package/dist/implementations/gitea.impl.js.map +1 -0
  43. package/dist/implementations/managed-db.impl.d.ts +25 -0
  44. package/dist/implementations/managed-db.impl.d.ts.map +1 -0
  45. package/dist/implementations/managed-db.impl.js +31 -0
  46. package/dist/implementations/managed-db.impl.js.map +1 -0
  47. package/dist/implementations/managed-redis.impl.d.ts +37 -0
  48. package/dist/implementations/managed-redis.impl.d.ts.map +1 -0
  49. package/dist/implementations/managed-redis.impl.js +40 -0
  50. package/dist/implementations/managed-redis.impl.js.map +1 -0
  51. package/dist/implementations/spaces.impl.d.ts +36 -0
  52. package/dist/implementations/spaces.impl.d.ts.map +1 -0
  53. package/dist/implementations/spaces.impl.js +40 -0
  54. package/dist/implementations/spaces.impl.js.map +1 -0
  55. package/dist/implementations/statefulset.impl.d.ts +65 -0
  56. package/dist/implementations/statefulset.impl.d.ts.map +1 -0
  57. package/dist/implementations/statefulset.impl.js +165 -0
  58. package/dist/implementations/statefulset.impl.js.map +1 -0
  59. package/dist/implementations/verdaccio.impl.d.ts +65 -0
  60. package/dist/implementations/verdaccio.impl.d.ts.map +1 -0
  61. package/dist/implementations/verdaccio.impl.js +259 -0
  62. package/dist/implementations/verdaccio.impl.js.map +1 -0
  63. package/dist/index.d.ts +15 -0
  64. package/dist/index.d.ts.map +1 -0
  65. package/dist/index.js +19 -0
  66. package/dist/index.js.map +1 -0
  67. package/dist/kubernetes/index.d.ts +95 -0
  68. package/dist/kubernetes/index.d.ts.map +1 -0
  69. package/dist/kubernetes/index.js +625 -0
  70. package/dist/kubernetes/index.js.map +1 -0
  71. package/dist/secrets/index.d.ts +4 -0
  72. package/dist/secrets/index.d.ts.map +1 -0
  73. package/dist/secrets/index.js +4 -0
  74. package/dist/secrets/index.js.map +1 -0
  75. package/dist/secrets/vault.descriptor.d.ts +10 -0
  76. package/dist/secrets/vault.descriptor.d.ts.map +1 -0
  77. package/dist/secrets/vault.descriptor.js +25 -0
  78. package/dist/secrets/vault.descriptor.js.map +1 -0
  79. package/dist/secrets/vault.impl.cloud.d.ts +40 -0
  80. package/dist/secrets/vault.impl.cloud.d.ts.map +1 -0
  81. package/dist/secrets/vault.impl.cloud.js +178 -0
  82. package/dist/secrets/vault.impl.cloud.js.map +1 -0
  83. package/dist/secrets/vault.impl.d.ts +29 -0
  84. package/dist/secrets/vault.impl.d.ts.map +1 -0
  85. package/dist/secrets/vault.impl.js +137 -0
  86. package/dist/secrets/vault.impl.js.map +1 -0
  87. package/dist/types.d.ts +509 -0
  88. package/dist/types.d.ts.map +1 -0
  89. package/dist/types.js +47 -0
  90. package/dist/types.js.map +1 -0
  91. package/package.json +145 -0
  92. package/src/client/digitalocean-app-deploy.client.ts +226 -0
  93. package/src/client/index.ts +24 -0
  94. package/src/cloud/base.ts +149 -0
  95. package/src/cloud/digitalocean.ts +363 -0
  96. package/src/cloud/factory.ts +190 -0
  97. package/src/cloud/index.ts +81 -0
  98. package/src/doks.plugin.ts +401 -0
  99. package/src/implementations/deployment.impl.ts +93 -0
  100. package/src/implementations/droplet.impl.ts +157 -0
  101. package/src/implementations/gitea.impl.ts +319 -0
  102. package/src/implementations/managed-db.impl.ts +37 -0
  103. package/src/implementations/managed-redis.impl.ts +49 -0
  104. package/src/implementations/spaces.impl.ts +52 -0
  105. package/src/implementations/statefulset.impl.ts +186 -0
  106. package/src/implementations/verdaccio.impl.ts +300 -0
  107. package/src/index.ts +136 -0
  108. package/src/kubernetes/index.ts +754 -0
  109. package/src/secrets/index.ts +9 -0
  110. package/src/secrets/vault.descriptor.ts +28 -0
  111. package/src/secrets/vault.impl.cloud.ts +278 -0
  112. package/src/secrets/vault.impl.ts +149 -0
  113. package/src/types.ts +563 -0
@@ -0,0 +1,509 @@
1
+ /**
2
+ * Kubernetes manifest type definitions.
3
+ *
4
+ * These types represent the subset of K8s API objects used by DOKS infrastructure
5
+ * implementations. Each type produces a plain object serializable to YAML.
6
+ */
7
+ export interface K8sMetadata {
8
+ name?: string;
9
+ namespace?: string;
10
+ labels?: Record<string, string>;
11
+ annotations?: Record<string, string>;
12
+ }
13
+ export interface K8sLabelSelector {
14
+ matchLabels: Record<string, string>;
15
+ }
16
+ export interface K8sResourceQuantity {
17
+ cpu?: string;
18
+ memory?: string;
19
+ }
20
+ export interface K8sResourceRequirements {
21
+ requests?: K8sResourceQuantity;
22
+ limits?: K8sResourceQuantity;
23
+ }
24
+ export interface K8sEnvFromSource {
25
+ configMapRef?: {
26
+ name: string;
27
+ };
28
+ secretRef?: {
29
+ name: string;
30
+ };
31
+ }
32
+ export interface K8sEnvVar {
33
+ name: string;
34
+ value?: string;
35
+ valueFrom?: {
36
+ secretKeyRef?: {
37
+ name: string;
38
+ key: string;
39
+ };
40
+ configMapKeyRef?: {
41
+ name: string;
42
+ key: string;
43
+ };
44
+ };
45
+ }
46
+ export interface K8sProbe {
47
+ httpGet?: {
48
+ path: string;
49
+ port: number;
50
+ };
51
+ tcpSocket?: {
52
+ port: number;
53
+ };
54
+ exec?: {
55
+ command: string[];
56
+ };
57
+ initialDelaySeconds?: number;
58
+ periodSeconds?: number;
59
+ timeoutSeconds?: number;
60
+ failureThreshold?: number;
61
+ }
62
+ export interface K8sContainerPort {
63
+ name?: string;
64
+ containerPort: number;
65
+ protocol?: 'TCP' | 'UDP';
66
+ }
67
+ export interface K8sVolumeMount {
68
+ name: string;
69
+ mountPath: string;
70
+ readOnly?: boolean;
71
+ }
72
+ export interface K8sContainer {
73
+ name: string;
74
+ image: string;
75
+ command?: string[];
76
+ args?: string[];
77
+ ports?: K8sContainerPort[];
78
+ env?: K8sEnvVar[];
79
+ envFrom?: K8sEnvFromSource[];
80
+ resources?: K8sResourceRequirements;
81
+ volumeMounts?: K8sVolumeMount[];
82
+ livenessProbe?: K8sProbe;
83
+ readinessProbe?: K8sProbe;
84
+ }
85
+ export interface K8sConfigMapKeyToPath {
86
+ key: string;
87
+ path: string;
88
+ mode?: number;
89
+ }
90
+ export interface K8sVolume {
91
+ name: string;
92
+ emptyDir?: Record<string, never>;
93
+ configMap?: {
94
+ name: string;
95
+ items?: K8sConfigMapKeyToPath[];
96
+ defaultMode?: number;
97
+ optional?: boolean;
98
+ };
99
+ secret?: {
100
+ secretName: string;
101
+ };
102
+ persistentVolumeClaim?: {
103
+ claimName: string;
104
+ };
105
+ }
106
+ export interface K8sPodSpec {
107
+ containers: K8sContainer[];
108
+ initContainers?: K8sContainer[];
109
+ volumes?: K8sVolume[];
110
+ serviceAccountName?: string;
111
+ nodeSelector?: Record<string, string>;
112
+ tolerations?: Array<{
113
+ key?: string;
114
+ operator?: string;
115
+ value?: string;
116
+ effect?: string;
117
+ }>;
118
+ }
119
+ export interface K8sPodTemplateSpec {
120
+ metadata: K8sMetadata;
121
+ spec: K8sPodSpec;
122
+ }
123
+ export interface K8sDeployment {
124
+ apiVersion: 'apps/v1';
125
+ kind: 'Deployment';
126
+ metadata: K8sMetadata;
127
+ spec: {
128
+ replicas: number;
129
+ selector: K8sLabelSelector;
130
+ template: K8sPodTemplateSpec;
131
+ strategy?: {
132
+ type: 'RollingUpdate' | 'Recreate';
133
+ rollingUpdate?: {
134
+ maxSurge?: string | number;
135
+ maxUnavailable?: string | number;
136
+ };
137
+ };
138
+ };
139
+ }
140
+ export interface K8sPersistentVolumeClaimSpec {
141
+ accessModes: string[];
142
+ resources: {
143
+ requests: {
144
+ storage: string;
145
+ };
146
+ };
147
+ storageClassName?: string;
148
+ }
149
+ export interface K8sVolumeClaimTemplate {
150
+ metadata: K8sMetadata;
151
+ spec: K8sPersistentVolumeClaimSpec;
152
+ }
153
+ export interface K8sStatefulSet {
154
+ apiVersion: 'apps/v1';
155
+ kind: 'StatefulSet';
156
+ metadata: K8sMetadata;
157
+ spec: {
158
+ serviceName: string;
159
+ replicas: number;
160
+ selector: K8sLabelSelector;
161
+ template: K8sPodTemplateSpec;
162
+ volumeClaimTemplates?: K8sVolumeClaimTemplate[];
163
+ };
164
+ }
165
+ export interface K8sServicePort {
166
+ name?: string;
167
+ port: number;
168
+ targetPort: number | string;
169
+ protocol?: 'TCP' | 'UDP';
170
+ }
171
+ export interface K8sService {
172
+ apiVersion: 'v1';
173
+ kind: 'Service';
174
+ metadata: K8sMetadata;
175
+ spec: {
176
+ type?: 'ClusterIP' | 'NodePort' | 'LoadBalancer' | 'ExternalName';
177
+ selector: Record<string, string>;
178
+ ports: K8sServicePort[];
179
+ clusterIP?: string;
180
+ };
181
+ }
182
+ export interface K8sConfigMap {
183
+ apiVersion: 'v1';
184
+ kind: 'ConfigMap';
185
+ metadata: K8sMetadata;
186
+ data?: Record<string, string>;
187
+ }
188
+ export interface K8sSecret {
189
+ apiVersion: 'v1';
190
+ kind: 'Secret';
191
+ metadata: K8sMetadata;
192
+ type?: string;
193
+ data?: Record<string, string>;
194
+ stringData?: Record<string, string>;
195
+ }
196
+ export interface DOManagedDBSpec {
197
+ name: string;
198
+ engine: string;
199
+ version: string;
200
+ size: string;
201
+ region: string;
202
+ num_nodes: number;
203
+ }
204
+ export interface DOManagedRedisSpec {
205
+ name: string;
206
+ engine: 'redis';
207
+ version: string;
208
+ size: string;
209
+ region: string;
210
+ num_nodes: number;
211
+ eviction_policy?: string;
212
+ }
213
+ export interface DOSpacesSpec {
214
+ name: string;
215
+ region: string;
216
+ acl: 'private' | 'public-read';
217
+ cors_rules?: Array<{
218
+ allowed_origins: string[];
219
+ allowed_methods: string[];
220
+ allowed_headers?: string[];
221
+ max_age_seconds?: number;
222
+ }>;
223
+ lifecycle_rules?: Array<{
224
+ prefix?: string;
225
+ expiration_days?: number;
226
+ }>;
227
+ }
228
+ export type InstanceStatus = 'pending' | 'running' | 'stopping' | 'stopped' | 'terminating' | 'terminated' | 'error';
229
+ export type VolumeStatus = 'creating' | 'available' | 'in-use' | 'deleting' | 'deleted' | 'error';
230
+ export interface CloudProvider {
231
+ name: string;
232
+ createInstance(config: InstanceConfig): Promise<CloudInstance>;
233
+ deleteInstance(instanceId: string): Promise<void>;
234
+ getInstance(instanceId: string): Promise<CloudInstance | null>;
235
+ listInstances(filters?: InstanceFilters): Promise<CloudInstance[]>;
236
+ createVolume(config: VolumeConfig): Promise<CloudVolume>;
237
+ attachVolume(volumeId: string, instanceId: string): Promise<void>;
238
+ detachVolume(volumeId: string): Promise<void>;
239
+ deleteVolume(volumeId: string): Promise<void>;
240
+ listVolumes(filters?: VolumeFilters): Promise<CloudVolume[]>;
241
+ getOrCreateVPC(name: string): Promise<string>;
242
+ addSSHKey(name: string, publicKey: string): Promise<string>;
243
+ listSSHKeys(): Promise<SSHKey[]>;
244
+ }
245
+ export interface InstanceConfig {
246
+ name: string;
247
+ type: string;
248
+ region: string;
249
+ image: string;
250
+ sshKeys?: string[];
251
+ vpcId?: string;
252
+ userData?: string;
253
+ tags: Record<string, string>;
254
+ }
255
+ export interface CloudInstance {
256
+ id: string;
257
+ name: string;
258
+ type: string;
259
+ region: string;
260
+ status: InstanceStatus;
261
+ publicIp?: string;
262
+ privateIp?: string;
263
+ createdAt: Date;
264
+ tags: Record<string, string>;
265
+ metadata?: Record<string, unknown>;
266
+ }
267
+ export interface InstanceFilters {
268
+ status?: InstanceStatus[];
269
+ tags?: Record<string, string>;
270
+ region?: string;
271
+ }
272
+ export interface VolumeConfig {
273
+ name: string;
274
+ size: number;
275
+ region: string;
276
+ tags?: Record<string, string>;
277
+ }
278
+ export interface CloudVolume {
279
+ id: string;
280
+ name: string;
281
+ size: number;
282
+ region: string;
283
+ status: VolumeStatus;
284
+ attachedTo?: string;
285
+ createdAt: Date;
286
+ tags?: Record<string, string>;
287
+ }
288
+ export interface VolumeFilters {
289
+ status?: VolumeStatus[];
290
+ region?: string;
291
+ attachedTo?: string;
292
+ }
293
+ export interface SSHKey {
294
+ id: string;
295
+ name: string;
296
+ fingerprint: string;
297
+ publicKey: string;
298
+ }
299
+ export interface CloudProviderConfig {
300
+ type: 'digitalocean' | 'aws' | 'gcp' | 'azure';
301
+ credentials: string;
302
+ region?: string;
303
+ }
304
+ export declare class CloudProviderError extends Error {
305
+ code: string;
306
+ provider: string;
307
+ details?: unknown | undefined;
308
+ constructor(message: string, code: string, provider: string, details?: unknown | undefined);
309
+ }
310
+ export type PodPhase = 'Pending' | 'Running' | 'Succeeded' | 'Failed' | 'Unknown';
311
+ export type ConditionStatus = 'True' | 'False' | 'Unknown';
312
+ export type DeploymentConditionType = 'Available' | 'Progressing' | 'ReplicaFailure';
313
+ export type ServiceType = 'ClusterIP' | 'NodePort' | 'LoadBalancer' | 'ExternalName';
314
+ export type ServiceProtocol = 'TCP' | 'UDP' | 'SCTP';
315
+ export type EventType = 'Normal' | 'Warning';
316
+ export type ContainerState = {
317
+ running?: {
318
+ startedAt?: Date;
319
+ };
320
+ } | {
321
+ terminated?: {
322
+ exitCode?: number;
323
+ reason?: string;
324
+ message?: string;
325
+ startedAt?: Date;
326
+ finishedAt?: Date;
327
+ };
328
+ } | {
329
+ waiting?: {
330
+ reason?: string;
331
+ message?: string;
332
+ };
333
+ };
334
+ export interface K8sConfig {
335
+ inCluster?: boolean;
336
+ kubeconfig?: string;
337
+ context?: string;
338
+ namespace?: string;
339
+ }
340
+ export interface K8sEnvironment {
341
+ name: string;
342
+ context: string;
343
+ namespace: string;
344
+ apiServer?: string;
345
+ provider?: 'eks' | 'aks' | 'gke' | 'docker-desktop' | 'minikube' | 'other';
346
+ }
347
+ export interface PodSelector {
348
+ name?: string;
349
+ namespace?: string;
350
+ labels?: Record<string, string>;
351
+ }
352
+ export interface PodStatus {
353
+ name: string;
354
+ namespace: string;
355
+ phase: PodPhase;
356
+ ready: boolean;
357
+ restarts: number;
358
+ age: string;
359
+ ip?: string;
360
+ node?: string;
361
+ conditions: Array<{
362
+ type: string;
363
+ status: ConditionStatus;
364
+ reason?: string;
365
+ message?: string;
366
+ lastTransitionTime: Date;
367
+ }>;
368
+ containers: Array<{
369
+ name: string;
370
+ ready: boolean;
371
+ restartCount: number;
372
+ state: ContainerState;
373
+ image: string;
374
+ imageID: string;
375
+ }>;
376
+ }
377
+ export interface LogOptions {
378
+ follow?: boolean;
379
+ tailLines?: number;
380
+ container?: string;
381
+ previous?: boolean;
382
+ sinceSeconds?: number;
383
+ limitBytes?: number;
384
+ timestamps?: boolean;
385
+ }
386
+ export interface LogEntry {
387
+ timestamp: Date;
388
+ pod: string;
389
+ namespace: string;
390
+ container: string;
391
+ message: string;
392
+ level?: string;
393
+ cluster?: string;
394
+ node?: string;
395
+ labels?: Record<string, string>;
396
+ }
397
+ export interface LogStream {
398
+ subscribe(callback: (log: LogEntry) => void): () => void;
399
+ pause(): void;
400
+ resume(): void;
401
+ close(): void;
402
+ }
403
+ export interface DeploymentStatus {
404
+ name: string;
405
+ namespace: string;
406
+ replicas: {
407
+ desired: number;
408
+ current: number;
409
+ available: number;
410
+ updated: number;
411
+ };
412
+ conditions: Array<{
413
+ type: DeploymentConditionType;
414
+ status: ConditionStatus;
415
+ reason?: string;
416
+ message?: string;
417
+ lastUpdateTime: Date;
418
+ lastTransitionTime: Date;
419
+ }>;
420
+ strategy: string;
421
+ minReadySeconds: number;
422
+ revisionHistoryLimit: number;
423
+ selector: Record<string, string>;
424
+ }
425
+ export interface ServiceInfo {
426
+ name: string;
427
+ namespace: string;
428
+ type: ServiceType;
429
+ clusterIP?: string;
430
+ externalIPs?: string[];
431
+ loadBalancerIP?: string;
432
+ ports: Array<{
433
+ name?: string;
434
+ protocol: ServiceProtocol;
435
+ port: number;
436
+ targetPort: number | string;
437
+ nodePort?: number;
438
+ }>;
439
+ selector: Record<string, string> | null;
440
+ }
441
+ export interface PodMetrics {
442
+ pod: string;
443
+ namespace: string;
444
+ containers: Record<string, ResourceMetrics>;
445
+ }
446
+ export interface ResourceMetrics {
447
+ cpu?: {
448
+ usage: number;
449
+ };
450
+ memory?: {
451
+ usage: number;
452
+ };
453
+ timestamp?: Date;
454
+ }
455
+ export interface K8sEvent {
456
+ type: EventType;
457
+ reason: string;
458
+ message: string;
459
+ source: {
460
+ component?: string;
461
+ host?: string;
462
+ };
463
+ firstTimestamp: Date;
464
+ lastTimestamp: Date;
465
+ count: number;
466
+ involvedObject: {
467
+ kind: string;
468
+ name: string;
469
+ namespace?: string;
470
+ };
471
+ }
472
+ export interface ExecOptions {
473
+ pod: string;
474
+ container?: string;
475
+ command: string[];
476
+ namespace?: string;
477
+ tty?: boolean;
478
+ }
479
+ export interface ExecResult {
480
+ stdout: string;
481
+ stderr: string;
482
+ exitCode: number;
483
+ }
484
+ export interface PortForwardOptions {
485
+ pod: string;
486
+ remotePort: number;
487
+ localPort: number;
488
+ namespace?: string;
489
+ }
490
+ export interface PortForward {
491
+ localPort: number;
492
+ remotePort: number;
493
+ close(): void;
494
+ }
495
+ export declare class K8sError extends Error {
496
+ statusCode?: number | undefined;
497
+ reason?: string | undefined;
498
+ constructor(message: string, statusCode?: number | undefined, reason?: string | undefined);
499
+ }
500
+ export declare class K8sAuthError extends K8sError {
501
+ constructor(message: string);
502
+ }
503
+ export declare class K8sNotFoundError extends K8sError {
504
+ kind: string;
505
+ name: string;
506
+ namespace?: string | undefined;
507
+ constructor(kind: string, name: string, namespace?: string | undefined);
508
+ }
509
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/dist/types.js ADDED
@@ -0,0 +1,47 @@
1
+ /**
2
+ * Kubernetes manifest type definitions.
3
+ *
4
+ * These types represent the subset of K8s API objects used by DOKS infrastructure
5
+ * implementations. Each type produces a plain object serializable to YAML.
6
+ */
7
+ export class CloudProviderError extends Error {
8
+ code;
9
+ provider;
10
+ details;
11
+ constructor(message, code, provider, details) {
12
+ super(message);
13
+ this.code = code;
14
+ this.provider = provider;
15
+ this.details = details;
16
+ this.name = 'CloudProviderError';
17
+ }
18
+ }
19
+ export class K8sError extends Error {
20
+ statusCode;
21
+ reason;
22
+ constructor(message, statusCode, reason) {
23
+ super(message);
24
+ this.statusCode = statusCode;
25
+ this.reason = reason;
26
+ this.name = 'K8sError';
27
+ }
28
+ }
29
+ export class K8sAuthError extends K8sError {
30
+ constructor(message) {
31
+ super(message, 401, 'Unauthorized');
32
+ this.name = 'K8sAuthError';
33
+ }
34
+ }
35
+ export class K8sNotFoundError extends K8sError {
36
+ kind;
37
+ name;
38
+ namespace;
39
+ constructor(kind, name, namespace) {
40
+ super(`${kind} '${name}' not found${namespace ? ` in namespace ${namespace}` : ''}`, 404, 'NotFound');
41
+ this.kind = kind;
42
+ this.name = name;
43
+ this.namespace = namespace;
44
+ this.name = 'K8sNotFoundError';
45
+ }
46
+ }
47
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AA4UH,MAAM,OAAO,kBAAmB,SAAQ,KAAK;IAGpC;IACA;IACA;IAJR,YACC,OAAe,EACR,IAAY,EACZ,QAAgB,EAChB,OAAiB;QAExB,KAAK,CAAC,OAAO,CAAC,CAAC;QAJR,SAAI,GAAJ,IAAI,CAAQ;QACZ,aAAQ,GAAR,QAAQ,CAAQ;QAChB,YAAO,GAAP,OAAO,CAAU;QAGxB,IAAI,CAAC,IAAI,GAAG,oBAAoB,CAAC;IAClC,CAAC;CACD;AA4LD,MAAM,OAAO,QAAS,SAAQ,KAAK;IAG1B;IACA;IAHR,YACC,OAAe,EACR,UAAmB,EACnB,MAAe;QAEtB,KAAK,CAAC,OAAO,CAAC,CAAC;QAHR,eAAU,GAAV,UAAU,CAAS;QACnB,WAAM,GAAN,MAAM,CAAS;QAGtB,IAAI,CAAC,IAAI,GAAG,UAAU,CAAC;IACxB,CAAC;CACD;AAED,MAAM,OAAO,YAAa,SAAQ,QAAQ;IACzC,YAAY,OAAe;QAC1B,KAAK,CAAC,OAAO,EAAE,GAAG,EAAE,cAAc,CAAC,CAAC;QACpC,IAAI,CAAC,IAAI,GAAG,cAAc,CAAC;IAC5B,CAAC;CACD;AAED,MAAM,OAAO,gBAAiB,SAAQ,QAAQ;IAErC;IACA;IACA;IAHR,YACQ,IAAY,EACZ,IAAY,EACZ,SAAkB;QAEzB,KAAK,CAAC,GAAG,IAAI,KAAK,IAAI,cAAc,SAAS,CAAC,CAAC,CAAC,iBAAiB,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,UAAU,CAAC,CAAC;QAJ/F,SAAI,GAAJ,IAAI,CAAQ;QACZ,SAAI,GAAJ,IAAI,CAAQ;QACZ,cAAS,GAAT,SAAS,CAAS;QAGzB,IAAI,CAAC,IAAI,GAAG,kBAAkB,CAAC;IAChC,CAAC;CACD"}