@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,259 @@
1
+ /**
2
+ * Implementation: infra/package-registry -> verdaccio-doks
3
+ *
4
+ * Generates K8s manifests for a Verdaccio npm registry on DOKS.
5
+ */
6
+ import { createHash } from 'node:crypto';
7
+ import * as z from 'zod/v4';
8
+ import { createRuntimeImplementation } from '@vibesdotdev/runtime';
9
+ import { VerdaccioDoksPackageRegistryConfigSchema, PackageRegistryTypeSchema } from '@vibesdotdev/infra-core/kinds';
10
+ import { loadVerdaccioThemeAssets, VIBES_PRIMARY_HEX } from '@vibesdotdev/registry-theme';
11
+ export const VerdaccioDoksDescriptorSchema = z.object({
12
+ kind: z.literal('infra/package-registry'),
13
+ id: z.string().min(1),
14
+ name: z.string().optional(),
15
+ description: z.string().optional(),
16
+ url: z.string().url(),
17
+ registryType: PackageRegistryTypeSchema.default('npm'),
18
+ scope: z.string().optional(),
19
+ upstreamUrl: z.string().url().optional(),
20
+ authRequired: z.boolean().default(true),
21
+ ssl: z.boolean().default(true),
22
+ env: z.array(z.object({
23
+ name: z.string().regex(/^[_A-Z0-9]+$/),
24
+ public: z.boolean().default(false),
25
+ required: z.boolean().default(true),
26
+ value: z.string().optional(),
27
+ secret: z.boolean().default(false),
28
+ description: z.string().optional(),
29
+ storeKey: z.string().min(1).optional()
30
+ })).optional(),
31
+ config: VerdaccioDoksPackageRegistryConfigSchema.extend({
32
+ adapter: z.literal('verdaccio-doks')
33
+ })
34
+ });
35
+ function buildVerdaccioConfig(d) {
36
+ const cfg = d.config;
37
+ const theme = loadVerdaccioThemeAssets();
38
+ // Verdaccio v5's metaScripts/scriptsBodyAfter render the array items via
39
+ // string interpolation in the HTML template — items must be RAW HTML
40
+ // strings, not { tag, attribs } objects. The latter render as
41
+ // "[object Object]".
42
+ const cssDataUri = `data:text/css;base64,${Buffer.from(theme.combinedCss).toString('base64')}`;
43
+ const cssTag = `<link rel="stylesheet" href="${cssDataUri}">`;
44
+ const lines = [
45
+ 'storage: /verdaccio/storage',
46
+ // url_prefix must be the PATH prefix (e.g. "/"), not the full origin.
47
+ // Setting the full origin causes Verdaccio to concat it with the request
48
+ // origin → base href becomes https://X/https://X/ and the SPA breaks.
49
+ 'url_prefix: /',
50
+ 'web:',
51
+ ' title: vibes packages',
52
+ ` logo: ${theme.logoDataUri}`,
53
+ ` primary_color: "${VIBES_PRIMARY_HEX}"`,
54
+ ' darkMode: enabled',
55
+ ' gravatar: true',
56
+ ' metaScripts:',
57
+ // Single-quoted YAML keeps the inner double-quotes and the long data URL intact.
58
+ ` - '${cssTag}'`
59
+ ];
60
+ if (theme.elementsBundle) {
61
+ const jsDataUri = `data:text/javascript;base64,${Buffer.from(theme.elementsBundle).toString('base64')}`;
62
+ const scriptTag = `<script type="module" src="${jsDataUri}"></script>`;
63
+ const brandBarMarkup = '<vibes-brand-bar app="packages"><vibes-account-menu slot="end"></vibes-account-menu></vibes-brand-bar>';
64
+ // Verdaccio v5.33's bundled middleware looks up `web.scriptsbodyBefore`
65
+ // (lowercase 'b' before Before). The capital-B `scriptsBodyBefore` was
66
+ // introduced later but the deprecated lowercase key is what's wired in
67
+ // the installed @verdaccio/middleware@8.0.0-next-8.1. Confirmed by
68
+ // grepping the actual /usr/local/lib/.../template.js in the pod.
69
+ lines.push(' scriptsbodyBefore:', ` - '${brandBarMarkup}'`, ` - '${scriptTag}'`);
70
+ }
71
+ lines.push('security:', ' api:', ' jwt:', ' sign:', ' expiresIn: 7d', ' web:', ' sign:', ' expiresIn: 1d',
72
+ // Auth plugin disabled while the better-auth-jwt distribution is
73
+ // reworked — the previous setup-plugin init container tried to
74
+ // `git clone` the private monorepo, which fails unauthenticated.
75
+ // Falls back to Verdaccio's built-in htpasswd auth; if the htpasswd
76
+ // file is empty, no one can publish but reads are still permitted
77
+ // per the `access: $all` policy below.
78
+ 'auth:', ' htpasswd:', ' file: /verdaccio/storage/htpasswd', ' max_users: -1', 'plugins: /verdaccio/plugins', 'packages:');
79
+ if (d.scope) {
80
+ const scopeName = d.scope.replace('@', '');
81
+ lines.push(` '@${scopeName}/*':`);
82
+ lines.push(' access: $all');
83
+ lines.push(' publish: $authenticated');
84
+ lines.push(' unpublish: $authenticated');
85
+ lines.push(' "**":');
86
+ lines.push(' access: $all');
87
+ lines.push(' publish: $authenticated');
88
+ lines.push(` proxy: ${new URL(cfg.upstreamNpmUrl).origin}`);
89
+ }
90
+ else {
91
+ lines.push(' "**":');
92
+ lines.push(' access: $all');
93
+ lines.push(' publish: $authenticated');
94
+ lines.push(` proxy: ${new URL(cfg.upstreamNpmUrl).origin}`);
95
+ }
96
+ lines.push('logs:');
97
+ lines.push(' - type: stdout');
98
+ lines.push(' format: pretty');
99
+ lines.push(' level: http');
100
+ return lines.join('\n');
101
+ }
102
+ export function generateVerdaccioManifest(input) {
103
+ const d = VerdaccioDoksDescriptorSchema.parse(input);
104
+ const ns = 'vibes';
105
+ const name = `vibes-${d.id}`;
106
+ const pvcName = `${name}-data`;
107
+ const port = 4873;
108
+ const configKey = 'config.yaml';
109
+ const cfg = d.config;
110
+ const secretName = 'verdaccio-secrets';
111
+ const pluginMountPath = '/verdaccio/plugins';
112
+ const configYaml = buildVerdaccioConfig(d);
113
+ const configChecksum = createHash('sha256').update(configYaml).digest('hex').slice(0, 16);
114
+ const deployment = {
115
+ apiVersion: 'apps/v1',
116
+ kind: 'Deployment',
117
+ metadata: {
118
+ name,
119
+ namespace: ns,
120
+ labels: { app: d.id, 'app.kubernetes.io/part-of': 'vibes' },
121
+ annotations: {
122
+ 'vibes.dev/verdaccio-plugin': 'better-auth-jwt',
123
+ 'secrets.hashicorp.com/rollout-restart': 'true'
124
+ }
125
+ },
126
+ spec: {
127
+ replicas: 1,
128
+ strategy: { type: 'Recreate' },
129
+ selector: { matchLabels: { app: d.id } },
130
+ template: {
131
+ metadata: {
132
+ labels: { app: d.id },
133
+ annotations: { 'vibes.dev/config-checksum': configChecksum }
134
+ },
135
+ spec: {
136
+ initContainers: [{
137
+ name: 'setup-plugin',
138
+ image: 'node:22-alpine',
139
+ command: ['sh', '-c', [
140
+ 'apk add --no-cache git',
141
+ `mkdir -p ${pluginMountPath}/better-auth-jwt`,
142
+ 'cd /tmp',
143
+ `git clone --depth 1 https://github.com/vibesdotdev/monorepo.git || git clone https://github.com/vibesdotdev/monorepo.git`,
144
+ 'cd monorepo/packages/verdaccio-better-auth-jwt',
145
+ 'npm install',
146
+ 'npm run build || true',
147
+ `cp -r ./dist/* ${pluginMountPath}/better-auth-jwt/ || true`,
148
+ 'echo "Plugin installed"'
149
+ ].join(' && ')],
150
+ volumeMounts: [
151
+ { name: 'plugins', mountPath: pluginMountPath }
152
+ ],
153
+ resources: {
154
+ requests: { cpu: '100m', memory: '64Mi' },
155
+ limits: { cpu: '500m', memory: '256Mi' }
156
+ }
157
+ }],
158
+ containers: [{
159
+ name: d.id,
160
+ image: cfg.dockerImage,
161
+ ports: [{ name: 'http', containerPort: port }],
162
+ envFrom: [{ secretRef: { name: secretName } }],
163
+ env: [
164
+ { name: 'VERDACCIO_PORT', value: String(port) },
165
+ { name: 'VERDACCIO_JWT_SECRET', valueFrom: { secretKeyRef: { name: secretName, key: 'jwt-secret' } } }
166
+ ],
167
+ volumeMounts: [
168
+ { name: 'storage', mountPath: '/verdaccio/storage' },
169
+ { name: 'config', mountPath: '/verdaccio/conf', readOnly: true },
170
+ { name: 'plugins', mountPath: pluginMountPath }
171
+ ],
172
+ livenessProbe: {
173
+ httpGet: { path: '/', port },
174
+ initialDelaySeconds: 30,
175
+ periodSeconds: 30
176
+ },
177
+ readinessProbe: {
178
+ httpGet: { path: '/-/ping', port },
179
+ periodSeconds: 10
180
+ },
181
+ resources: {
182
+ requests: { cpu: '100m', memory: '128Mi' },
183
+ limits: { cpu: '500m', memory: '512Mi' }
184
+ }
185
+ }],
186
+ volumes: [
187
+ { name: 'storage', persistentVolumeClaim: { claimName: pvcName } },
188
+ { name: 'config', configMap: { name: `${name}-config` } },
189
+ { name: 'plugins', emptyDir: {} }
190
+ ]
191
+ }
192
+ }
193
+ }
194
+ };
195
+ const service = {
196
+ apiVersion: 'v1',
197
+ kind: 'Service',
198
+ metadata: { name, namespace: ns },
199
+ spec: {
200
+ type: 'ClusterIP',
201
+ selector: { app: d.id },
202
+ ports: [{ name: 'http', port, targetPort: port }]
203
+ }
204
+ };
205
+ const pvc = {
206
+ apiVersion: 'v1',
207
+ kind: 'PersistentVolumeClaim',
208
+ metadata: { name: pvcName, namespace: ns, labels: { app: d.id } },
209
+ spec: {
210
+ accessModes: ['ReadWriteOnce'],
211
+ resources: { requests: { storage: cfg.storageSize } }
212
+ }
213
+ };
214
+ const configMap = {
215
+ apiVersion: 'v1',
216
+ kind: 'ConfigMap',
217
+ metadata: { name: `${name}-config`, namespace: ns, labels: { app: d.id } },
218
+ data: { [configKey]: configYaml }
219
+ };
220
+ const ingress = {
221
+ apiVersion: 'networking.k8s.io/v1',
222
+ kind: 'Ingress',
223
+ metadata: {
224
+ name,
225
+ namespace: ns,
226
+ labels: { app: d.id },
227
+ annotations: {
228
+ 'cert-manager.io/cluster-issuer': 'letsencrypt-prod',
229
+ 'nginx.ingress.kubernetes.io/proxy-body-size': '100m'
230
+ }
231
+ },
232
+ spec: {
233
+ tls: [{ hosts: [cfg.domain], secretName: `${name}-tls` }],
234
+ rules: [{
235
+ host: cfg.domain,
236
+ http: {
237
+ paths: [{
238
+ path: '/',
239
+ pathType: 'Prefix',
240
+ backend: { service: { name, port: { number: port } } }
241
+ }]
242
+ }
243
+ }]
244
+ }
245
+ };
246
+ return { deployment, service, pvc, configMap, ingress };
247
+ }
248
+ export function createVerdaccioImpl(input) {
249
+ const descriptor = VerdaccioDoksDescriptorSchema.parse(input);
250
+ return createRuntimeImplementation({
251
+ id: 'verdaccio-doks',
252
+ kind: 'infra/package-registry',
253
+ priority: 20,
254
+ implementation: {
255
+ generateConfig: () => generateVerdaccioManifest(descriptor)
256
+ }
257
+ });
258
+ }
259
+ //# sourceMappingURL=verdaccio.impl.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"verdaccio.impl.js","sourceRoot":"","sources":["../../src/implementations/verdaccio.impl.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ export { generateK8sDeployment, DoksDeploymentDescriptorSchema, type DoksDeploymentDescriptorInput, type DoksDeploymentDescriptor } from './implementations/deployment.impl';
2
+ export { generateK8sStatefulSet, DoksQueueDescriptorSchema, DoksDatabaseDescriptorSchema, type DoksQueueDescriptorInput, type DoksQueueDescriptor, type DoksDatabaseDescriptorInput, type DoksDatabaseDescriptor } from './implementations/statefulset.impl';
3
+ export { generateDOManagedDB, DOManagedPostgresDescriptorSchema, type DOManagedPostgresDescriptorInput, type DOManagedPostgresDescriptor } from './implementations/managed-db.impl';
4
+ export { generateDOSpaces, DOSpacesDescriptorSchema, type DOSpacesDescriptorInput, type DOSpacesDescriptor } from './implementations/spaces.impl';
5
+ export { generateDOManagedRedis, DOManagedRedisDescriptorSchema, type DOManagedRedisDescriptorInput, type DOManagedRedisDescriptor } from './implementations/managed-redis.impl';
6
+ export { generateGiteaManifest, type GiteaManifest } from './implementations/gitea.impl';
7
+ export { generateVerdaccioManifest, type VerdaccioManifest } from './implementations/verdaccio.impl';
8
+ export type { K8sDeployment, K8sStatefulSet, K8sService, K8sConfigMap, K8sSecret, K8sContainer, K8sPodSpec, K8sPodTemplateSpec, K8sMetadata, K8sLabelSelector, K8sResourceRequirements, K8sProbe, K8sVolumeClaimTemplate, DOManagedDBSpec, DOManagedRedisSpec, DOSpacesSpec, CloudProvider, CloudInstance, InstanceConfig, InstanceFilters, CloudVolume, VolumeConfig, VolumeFilters, SSHKey, CloudProviderConfig, InstanceStatus, VolumeStatus, CloudProviderError, K8sConfig, K8sEnvironment, PodSelector, PodStatus, LogOptions, LogEntry, LogStream, DeploymentStatus, ServiceInfo, PodMetrics, ResourceMetrics, K8sEvent, ExecOptions, ExecResult, PortForwardOptions, PortForward, ContainerState, PodPhase, ConditionStatus, DeploymentConditionType, ServiceType, ServiceProtocol, EventType, K8sError, K8sAuthError, K8sNotFoundError } from './types.ts';
9
+ export { vaultDescriptor, createVaultStore, readKVSecret, writeKVSecret, deleteKVKey, listKVPaths, } from './secrets/index.ts';
10
+ export type { VaultClientConfig } from './secrets/index.ts';
11
+ export { BaseCloudProvider, DigitalOceanProvider, createCloudProvider, getCloudProviderFromEnv, validateCloudProviderConfig, } from './cloud/index.ts';
12
+ export { KubernetesClient } from './kubernetes/index.ts';
13
+ export { default as doksPlugin } from './doks.plugin';
14
+ export { DigitalOceanAppDeployClient, getDigitalOceanAppDeployClient, type DeployAppOptions, type DeployAppResult } from './client/index.ts';
15
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EACN,qBAAqB,EACrB,8BAA8B,EAC9B,KAAK,6BAA6B,EAClC,KAAK,wBAAwB,EAC7B,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EACN,sBAAsB,EACtB,yBAAyB,EACzB,4BAA4B,EAC5B,KAAK,wBAAwB,EAC7B,KAAK,mBAAmB,EACxB,KAAK,2BAA2B,EAChC,KAAK,sBAAsB,EAC3B,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EACN,mBAAmB,EACnB,iCAAiC,EACjC,KAAK,gCAAgC,EACrC,KAAK,2BAA2B,EAChC,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EACN,gBAAgB,EAChB,wBAAwB,EACxB,KAAK,uBAAuB,EAC5B,KAAK,kBAAkB,EACvB,MAAM,+BAA+B,CAAC;AACvC,OAAO,EACN,sBAAsB,EACtB,8BAA8B,EAC9B,KAAK,6BAA6B,EAClC,KAAK,wBAAwB,EAC7B,MAAM,sCAAsC,CAAC;AAC9C,OAAO,EACN,qBAAqB,EACrB,KAAK,aAAa,EAClB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EACN,yBAAyB,EACzB,KAAK,iBAAiB,EACtB,MAAM,kCAAkC,CAAC;AAG1C,YAAY,EACX,aAAa,EACb,cAAc,EACd,UAAU,EACV,YAAY,EACZ,SAAS,EACT,YAAY,EACZ,UAAU,EACV,kBAAkB,EAClB,WAAW,EACX,gBAAgB,EAChB,uBAAuB,EACvB,QAAQ,EACR,sBAAsB,EACtB,eAAe,EACf,kBAAkB,EAClB,YAAY,EAEZ,aAAa,EACb,aAAa,EACb,cAAc,EACd,eAAe,EACf,WAAW,EACX,YAAY,EACZ,aAAa,EACb,MAAM,EACN,mBAAmB,EACnB,cAAc,EACd,YAAY,EACZ,kBAAkB,EAElB,SAAS,EACT,cAAc,EACd,WAAW,EACX,SAAS,EACT,UAAU,EACV,QAAQ,EACR,SAAS,EACT,gBAAgB,EAChB,WAAW,EACX,UAAU,EACV,eAAe,EACf,QAAQ,EACR,WAAW,EACX,UAAU,EACV,kBAAkB,EAClB,WAAW,EACX,cAAc,EACd,QAAQ,EACR,eAAe,EACf,uBAAuB,EACvB,WAAW,EACX,eAAe,EACf,SAAS,EACT,QAAQ,EACR,YAAY,EACZ,gBAAgB,EAChB,MAAM,YAAY,CAAC;AAGpB,OAAO,EACN,eAAe,EACf,gBAAgB,EAChB,YAAY,EACZ,aAAa,EACb,WAAW,EACX,WAAW,GACX,MAAM,oBAAoB,CAAC;AAC5B,YAAY,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAG5D,OAAO,EACN,iBAAiB,EACjB,oBAAoB,EACpB,mBAAmB,EACnB,uBAAuB,EACvB,2BAA2B,GAC3B,MAAM,kBAAkB,CAAC;AAG1B,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAGzD,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,eAAe,CAAC;AAGtD,OAAO,EACN,2BAA2B,EAC3B,8BAA8B,EAC9B,KAAK,gBAAgB,EACrB,KAAK,eAAe,EACpB,MAAM,mBAAmB,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,19 @@
1
+ // Implementations
2
+ export { generateK8sDeployment, DoksDeploymentDescriptorSchema } from './implementations/deployment.impl.js';
3
+ export { generateK8sStatefulSet, DoksQueueDescriptorSchema, DoksDatabaseDescriptorSchema } from './implementations/statefulset.impl.js';
4
+ export { generateDOManagedDB, DOManagedPostgresDescriptorSchema } from './implementations/managed-db.impl.js';
5
+ export { generateDOSpaces, DOSpacesDescriptorSchema } from './implementations/spaces.impl.js';
6
+ export { generateDOManagedRedis, DOManagedRedisDescriptorSchema } from './implementations/managed-redis.impl.js';
7
+ export { generateGiteaManifest } from './implementations/gitea.impl.js';
8
+ export { generateVerdaccioManifest } from './implementations/verdaccio.impl.js';
9
+ // Secrets
10
+ export { vaultDescriptor, createVaultStore, readKVSecret, writeKVSecret, deleteKVKey, listKVPaths, } from "./secrets/index.js";
11
+ // Cloud Provider (implementation classes only; types already exported above)
12
+ export { BaseCloudProvider, DigitalOceanProvider, createCloudProvider, getCloudProviderFromEnv, validateCloudProviderConfig, } from "./cloud/index.js";
13
+ // Kubernetes Client
14
+ export { KubernetesClient } from "./kubernetes/index.js";
15
+ // Plugin
16
+ export { default as doksPlugin } from './doks.plugin.js';
17
+ // Runtime clients
18
+ export { DigitalOceanAppDeployClient, getDigitalOceanAppDeployClient } from "./client/index.js";
19
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,kBAAkB;AAClB,OAAO,EACN,qBAAqB,EACrB,8BAA8B,EAG9B,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EACN,sBAAsB,EACtB,yBAAyB,EACzB,4BAA4B,EAK5B,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EACN,mBAAmB,EACnB,iCAAiC,EAGjC,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EACN,gBAAgB,EAChB,wBAAwB,EAGxB,MAAM,+BAA+B,CAAC;AACvC,OAAO,EACN,sBAAsB,EACtB,8BAA8B,EAG9B,MAAM,sCAAsC,CAAC;AAC9C,OAAO,EACN,qBAAqB,EAErB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EACN,yBAAyB,EAEzB,MAAM,kCAAkC,CAAC;AA8D1C,UAAU;AACV,OAAO,EACN,eAAe,EACf,gBAAgB,EAChB,YAAY,EACZ,aAAa,EACb,WAAW,EACX,WAAW,GACX,MAAM,oBAAoB,CAAC;AAG5B,6EAA6E;AAC7E,OAAO,EACN,iBAAiB,EACjB,oBAAoB,EACpB,mBAAmB,EACnB,uBAAuB,EACvB,2BAA2B,GAC3B,MAAM,kBAAkB,CAAC;AAE1B,oBAAoB;AACpB,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAEzD,SAAS;AACT,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,eAAe,CAAC;AAEtD,kBAAkB;AAClB,OAAO,EACN,2BAA2B,EAC3B,8BAA8B,EAG9B,MAAM,mBAAmB,CAAC"}
@@ -0,0 +1,95 @@
1
+ /**
2
+ * Kubernetes Client Wrapper
3
+ *
4
+ * Thin wrapper around @kubernetes/client-node providing
5
+ * simplified access to common operations with proper typing
6
+ */
7
+ import type { K8sConfig, K8sEnvironment, PodSelector, PodStatus, LogOptions, LogEntry, LogStream, DeploymentStatus, ServiceInfo, PodMetrics, K8sEvent, ExecOptions, ExecResult, PortForwardOptions, PortForward } from '../types.ts';
8
+ export declare class KubernetesClient {
9
+ private kc;
10
+ private coreApi;
11
+ private appsApi;
12
+ private metrics?;
13
+ private config;
14
+ constructor(config?: K8sConfig);
15
+ /**
16
+ * Get current environment info
17
+ */
18
+ getCurrentEnvironment(): K8sEnvironment;
19
+ /**
20
+ * List available contexts
21
+ */
22
+ getContexts(): string[];
23
+ /**
24
+ * Switch to a different context
25
+ */
26
+ setContext(contextName: string): void;
27
+ /**
28
+ * Get pod status
29
+ */
30
+ getPodStatus(selector: PodSelector): Promise<PodStatus[]>;
31
+ /**
32
+ * Stream logs from pods.
33
+ *
34
+ * Uses `k8s.Log.log()` (the pod-log streaming API) — NOT `k8s.Watch.watch()`,
35
+ * which is for resource-change events (ADDED/MODIFIED/DELETED) and is
36
+ * incompatible with the log endpoint. Each pod gets a `Writable` sink that
37
+ * splits incoming bytes into lines, parses them as `LogEntry`, and fans them
38
+ * out to subscribers. `close()` calls `controller.abort()` on every
39
+ * AbortController returned by `Log.log()` to cancel the upstream request.
40
+ */
41
+ streamLogs(selector: PodSelector, options?: LogOptions): Promise<LogStream>;
42
+ /**
43
+ * Get logs as a single batch
44
+ */
45
+ getLogs(selector: PodSelector, options?: LogOptions): Promise<LogEntry[]>;
46
+ /**
47
+ * Get deployment status
48
+ */
49
+ getDeploymentStatus(name: string, namespace?: string): Promise<DeploymentStatus>;
50
+ /**
51
+ * Get service info
52
+ */
53
+ getServiceInfo(name: string, namespace?: string): Promise<ServiceInfo>;
54
+ /**
55
+ * Get pod metrics
56
+ */
57
+ getPodMetrics(selector: PodSelector): Promise<PodMetrics[]>;
58
+ /**
59
+ * Get events for a resource
60
+ */
61
+ getEvents(kind: string, name: string, namespace?: string): Promise<K8sEvent[]>;
62
+ /**
63
+ * Execute command in pod
64
+ */
65
+ exec(options: ExecOptions): Promise<ExecResult>;
66
+ /**
67
+ * Port forward to a pod.
68
+ *
69
+ * `PortForward.portForward()` requires Node `Writable` for output (and
70
+ * optionally for err) and a Node `Readable` for input. The previous
71
+ * implementation passed `Writable.toWeb(new Writable())` cast through
72
+ * `unknown` — that produced a WHATWG `WritableStream` (not a Node
73
+ * `Writable`) and then lied about its type. Replace with a real
74
+ * pass-through Node `Writable` sink that forwards bytes to the logger.
75
+ */
76
+ portForward(options: PortForwardOptions): Promise<PortForward>;
77
+ /**
78
+ * Check cluster health
79
+ */
80
+ checkHealth(): Promise<{
81
+ healthy: boolean;
82
+ version?: string;
83
+ message?: string;
84
+ }>;
85
+ private mapPodStatus;
86
+ private mapContainerState;
87
+ private parseLogEntry;
88
+ private getAge;
89
+ private parseCPU;
90
+ private parseMemory;
91
+ private detectProvider;
92
+ private handleK8sError;
93
+ }
94
+ export default KubernetesClient;
95
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/kubernetes/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH,OAAO,KAAK,EACX,SAAS,EACT,cAAc,EACd,WAAW,EACX,SAAS,EACT,UAAU,EACV,QAAQ,EACR,SAAS,EACT,gBAAgB,EAChB,WAAW,EACX,UAAU,EACV,QAAQ,EACR,WAAW,EACX,UAAU,EACV,kBAAkB,EAClB,WAAW,EASX,MAAM,aAAa,CAAC;AAiCrB,qBAAa,gBAAgB;IAC5B,OAAO,CAAC,EAAE,CAAiB;IAC3B,OAAO,CAAC,OAAO,CAAgB;IAC/B,OAAO,CAAC,OAAO,CAAgB;IAC/B,OAAO,CAAC,OAAO,CAAC,CAAmB;IACnC,OAAO,CAAC,MAAM,CAAY;gBAEd,MAAM,GAAE,SAAc;IA8BlC;;OAEG;IACH,qBAAqB,IAAI,cAAc;IAavC;;OAEG;IACH,WAAW,IAAI,MAAM,EAAE;IAIvB;;OAEG;IACH,UAAU,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI;IAcrC;;OAEG;IACG,YAAY,CAAC,QAAQ,EAAE,WAAW,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;IAyB/D;;;;;;;;;OASG;IACG,UAAU,CAAC,QAAQ,EAAE,WAAW,EAAE,OAAO,GAAE,UAAe,GAAG,OAAO,CAAC,SAAS,CAAC;IAqFrF;;OAEG;IACG,OAAO,CAAC,QAAQ,EAAE,WAAW,EAAE,OAAO,GAAE,UAAe,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;IAmCnF;;OAEG;IACG,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAgCtF;;OAEG;IACG,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IA8B5E;;OAEG;IACG,aAAa,CAAC,QAAQ,EAAE,WAAW,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;IAoCjE;;OAEG;IACG,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;IAgCpF;;OAEG;IACH,IAAI,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC;IA+C/C;;;;;;;;;OASG;IACG,WAAW,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,WAAW,CAAC;IAmDpE;;OAEG;IACG,WAAW,IAAI,OAAO,CAAC;QAC5B,OAAO,EAAE,OAAO,CAAC;QACjB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,OAAO,CAAC,EAAE,MAAM,CAAC;KACjB,CAAC;IAgBF,OAAO,CAAC,YAAY;IA+BpB,OAAO,CAAC,iBAAiB;IA8BzB,OAAO,CAAC,aAAa;IA+BrB,OAAO,CAAC,MAAM;IAgBd,OAAO,CAAC,QAAQ;IAWhB,OAAO,CAAC,WAAW;IAoBnB,OAAO,CAAC,cAAc;IAStB,OAAO,CAAC,cAAc;CAsBtB;AAED,eAAe,gBAAgB,CAAC"}