@factiii/stack 0.1.190 → 0.1.192

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 (47) hide show
  1. package/README.md +6 -44
  2. package/bin/stack +36 -3
  3. package/dist/cli/secrets.d.ts +6 -1
  4. package/dist/cli/secrets.d.ts.map +1 -1
  5. package/dist/cli/secrets.js +228 -0
  6. package/dist/cli/secrets.js.map +1 -1
  7. package/dist/plugins/addons/dns/index.d.ts +47 -0
  8. package/dist/plugins/addons/dns/index.d.ts.map +1 -0
  9. package/dist/plugins/addons/dns/index.js +104 -0
  10. package/dist/plugins/addons/dns/index.js.map +1 -0
  11. package/dist/plugins/addons/dns/scanfix/dev.d.ts +13 -0
  12. package/dist/plugins/addons/dns/scanfix/dev.d.ts.map +1 -0
  13. package/dist/plugins/addons/dns/scanfix/dev.js +235 -0
  14. package/dist/plugins/addons/dns/scanfix/dev.js.map +1 -0
  15. package/dist/plugins/addons/server-mode/index.d.ts.map +1 -1
  16. package/dist/plugins/addons/server-mode/index.js +6 -0
  17. package/dist/plugins/addons/server-mode/index.js.map +1 -1
  18. package/dist/plugins/addons/server-mode/scanfix/env-marker.d.ts +17 -0
  19. package/dist/plugins/addons/server-mode/scanfix/env-marker.d.ts.map +1 -0
  20. package/dist/plugins/addons/server-mode/scanfix/env-marker.js +195 -0
  21. package/dist/plugins/addons/server-mode/scanfix/env-marker.js.map +1 -0
  22. package/dist/plugins/addons/server-mode/scanfix/tailscale.d.ts +16 -0
  23. package/dist/plugins/addons/server-mode/scanfix/tailscale.d.ts.map +1 -0
  24. package/dist/plugins/addons/server-mode/scanfix/tailscale.js +211 -0
  25. package/dist/plugins/addons/server-mode/scanfix/tailscale.js.map +1 -0
  26. package/dist/plugins/index.d.ts.map +1 -1
  27. package/dist/plugins/index.js +8 -0
  28. package/dist/plugins/index.js.map +1 -1
  29. package/dist/plugins/pipelines/factiii/index.d.ts.map +1 -1
  30. package/dist/plugins/pipelines/factiii/index.js +5 -2
  31. package/dist/plugins/pipelines/factiii/index.js.map +1 -1
  32. package/dist/plugins/pipelines/factiii/prod.d.ts +1 -1
  33. package/dist/plugins/pipelines/factiii/prod.d.ts.map +1 -1
  34. package/dist/plugins/pipelines/factiii/prod.js +45 -4
  35. package/dist/plugins/pipelines/factiii/prod.js.map +1 -1
  36. package/dist/plugins/pipelines/factiii/scanfix/docker.d.ts +11 -0
  37. package/dist/plugins/pipelines/factiii/scanfix/docker.d.ts.map +1 -0
  38. package/dist/plugins/pipelines/factiii/scanfix/docker.js +269 -0
  39. package/dist/plugins/pipelines/factiii/scanfix/docker.js.map +1 -0
  40. package/dist/plugins/pipelines/factiii/scanfix/start-sh.d.ts.map +1 -1
  41. package/dist/plugins/pipelines/factiii/scanfix/start-sh.js +3 -11
  42. package/dist/plugins/pipelines/factiii/scanfix/start-sh.js.map +1 -1
  43. package/dist/utils/ansible-vault-secrets.d.ts +8 -0
  44. package/dist/utils/ansible-vault-secrets.d.ts.map +1 -1
  45. package/dist/utils/ansible-vault-secrets.js +54 -0
  46. package/dist/utils/ansible-vault-secrets.js.map +1 -1
  47. package/package.json +19 -5
package/README.md CHANGED
@@ -333,60 +333,22 @@ GitHub Actions workflows are intentionally minimal - they just SSH into servers
333
333
 
334
334
  All deployment logic runs on the server in testable JavaScript, not in workflow bash scripts.
335
335
 
336
- ## Secrets Management
336
+ ## Secrets Configuration
337
337
 
338
- Factiii uses **Ansible Vault** to store and manage deployment secrets (SSH keys, API keys, etc.).
339
-
340
- ### Configuration
341
-
342
- Add Ansible Vault configuration to `factiii.yml`:
338
+ Secrets are managed via Ansible Vault (see CLI commands above). Add this to `stack.yml`:
343
339
 
344
340
  ```yaml
345
- # Ansible Vault configuration (for secrets)
346
341
  ansible:
347
- vault_path: group_vars/all/vault.yml # Path to vault file
348
- vault_password_file: ~/.vault_pass # Optional: path to password file
342
+ vault_path: group_vars/all/vault.yml
343
+ vault_password_file: ~/.vault_pass # or set ANSIBLE_VAULT_PASSWORD env var
349
344
  ```
350
345
 
351
- ### Vault Password
346
+ **Required secrets:** `STAGING_SSH`, `PROD_SSH`, and `AWS_SECRET_ACCESS_KEY` (if using AWS).
352
347
 
353
- Provide the vault password via one of:
354
- - **Password file:** Set `ansible.vault_password_file` in `factiii.yml` (e.g. `~/.vault_pass`)
355
- - **Environment variable:** `ANSIBLE_VAULT_PASSWORD` or `ANSIBLE_VAULT_PASSWORD_FILE`
348
+ **CI/CD:** Add `ANSIBLE_VAULT_PASSWORD` to your GitHub repo secrets. Workflows use `npx stack deploy --secrets write-ssh-keys` to extract SSH keys for deployment.
356
349
 
357
350
  **Security:** Never commit the vault password or decrypted vault file to git.
358
351
 
359
- ### Managing Secrets
360
-
361
- ```bash
362
- # List all secrets
363
- npx stack deploy --secrets list
364
-
365
- # Set a secret (interactive prompt)
366
- npx stack deploy --secrets set STAGING_SSH
367
-
368
- # Set a secret (non-interactive)
369
- npx stack deploy --secrets set STAGING_SSH --value "your-key-here"
370
-
371
- # Check if secrets exist
372
- npx stack deploy --secrets check
373
- ```
374
-
375
- ### Required Secrets
376
-
377
- - **STAGING_SSH** - SSH private key for staging server
378
- - **PROD_SSH** - SSH private key for production server
379
- - **AWS_SECRET_ACCESS_KEY** - AWS secret key (if using AWS pipeline)
380
-
381
- ### CI/CD Integration
382
-
383
- In GitHub Actions workflows, provide the vault password as a GitHub secret:
384
-
385
- 1. Add `ANSIBLE_VAULT_PASSWORD` to your repository secrets
386
- 2. Workflows automatically load SSH keys from Ansible Vault using this password
387
-
388
- The workflow step `npx stack deploy --secrets write-ssh-keys` extracts secrets from the vault and writes SSH keys to `~/.ssh/` for deployment steps.
389
-
390
352
  ## Environment Variables
391
353
 
392
354
  Plugins declare required environment variables:
package/bin/stack CHANGED
@@ -1,4 +1,4 @@
1
- #!/usr/bin/env node
1
+ #!/usr/bin/env node
2
2
 
3
3
  const { program } = require('commander');
4
4
  const path = require('path');
@@ -95,7 +95,7 @@ program
95
95
  .option('-b, --branch <branch>', 'Branch to deploy from (defaults to current branch)')
96
96
  .option('--commit <hash>', 'Commit hash to deploy (passed by workflow)')
97
97
  .option('--token <token>', 'GitHub token (or set GITHUB_TOKEN env var)')
98
- .option('--secrets [action]', 'Manage or deploy secrets (list|set|check|set-env|list-env|deploy|write-ssh-keys)')
98
+ .option('--secrets [action]', 'Manage or deploy secrets (list|set|get|delete|check|set-env|list-env|delete-env|deploy|write-ssh-keys)')
99
99
  .option('--value <value>', 'Secret value (for scripting)')
100
100
  .option('--restart', 'Restart containers after deploying secrets')
101
101
  .option('--dry-run', 'Show deployment plan without actually deploying')
@@ -103,7 +103,7 @@ program
103
103
  // --secrets with an action string = vault management mode
104
104
  if (typeof options.secrets === 'string') {
105
105
  const action = options.secrets;
106
- const validActions = ['list', 'set', 'check', 'set-env', 'list-env', 'deploy', 'write-ssh-keys'];
106
+ const validActions = ['list', 'set', 'get', 'delete', 'check', 'set-env', 'list-env', 'delete-env', 'deploy', 'write-ssh-keys'];
107
107
 
108
108
  if (!validActions.includes(action)) {
109
109
  console.log('');
@@ -114,16 +114,22 @@ program
114
114
  console.log('Actions:');
115
115
  console.log(' list List all secrets (SSH keys + env vars)');
116
116
  console.log(' set <name> Set a secret (STAGING_SSH, PROD_SSH, etc.)');
117
+ console.log(' get <name> Show a secret value');
118
+ console.log(' delete <name> Delete a secret from vault');
117
119
  console.log(' check [name] Check if secrets exist');
118
120
  console.log(' set-env <name> Set environment variable for a stage');
119
121
  console.log(' list-env List environment variable keys for a stage');
122
+ console.log(' delete-env <name> Delete environment variable from a stage');
120
123
  console.log(' deploy Deploy secrets to staging/prod servers');
121
124
  console.log(' write-ssh-keys Write SSH keys to ~/.ssh/ (for workflows)');
122
125
  console.log('');
123
126
  console.log('Examples:');
124
127
  console.log(' npx stack deploy --secrets list');
125
128
  console.log(' npx stack deploy --secrets set STAGING_SSH');
129
+ console.log(' npx stack deploy --secrets get AWS_SECRET_ACCESS_KEY');
130
+ console.log(' npx stack deploy --secrets delete STAGING_SSH');
126
131
  console.log(' npx stack deploy --secrets set-env DATABASE_URL --staging');
132
+ console.log(' npx stack deploy --secrets delete-env DATABASE_URL --staging');
127
133
  console.log(' npx stack deploy --secrets deploy --staging');
128
134
  console.log('');
129
135
  return;
@@ -156,6 +162,30 @@ program
156
162
  }
157
163
  });
158
164
 
165
+ // Secrets command (top-level shortcut — same as deploy --secrets)
166
+ program
167
+ .command('secrets [action] [name]')
168
+ .description('Manage Ansible Vault secrets (shortcut for deploy --secrets)')
169
+ .option('--staging', 'Target staging environment')
170
+ .option('--prod', 'Target production environment')
171
+ .option('--value <value>', 'Secret value (for scripting)')
172
+ .option('--restart', 'Restart containers after deploying secrets')
173
+ .action(async (action, name, options) => {
174
+ if (!action) {
175
+ // No action = interactive mode
176
+ const { secretsInteractive } = require('../dist/cli/secrets');
177
+ await secretsInteractive(options);
178
+ return;
179
+ }
180
+ const validActions = ['list', 'set', 'get', 'delete', 'check', 'set-env', 'list-env', 'delete-env', 'deploy', 'write-ssh-keys'];
181
+ if (!validActions.includes(action)) {
182
+ console.log('Unknown action: ' + action);
183
+ console.log('Valid actions: ' + validActions.join(', '));
184
+ return;
185
+ }
186
+ await secrets(action, name, options);
187
+ });
188
+
159
189
  // Undeploy command
160
190
  program
161
191
  .command('undeploy')
@@ -257,9 +287,12 @@ program.addHelpText('after', '\n' +
257
287
  'SECRETS — npx stack deploy --secrets <action>\n' +
258
288
  ' list Show all stored vault secrets\n' +
259
289
  ' set <name> Set a secret (STAGING_SSH, PROD_SSH, etc.)\n' +
290
+ ' get <name> Show a secret value\n' +
291
+ ' delete <name> Delete a secret from vault\n' +
260
292
  ' check [name] Check if secrets exist\n' +
261
293
  ' set-env <name> --<stage> Set environment variable for a stage\n' +
262
294
  ' list-env --<stage> List environment variable keys for a stage\n' +
295
+ ' delete-env <name> --<stage> Delete environment variable from a stage\n' +
263
296
  ' deploy --<stage> Push secrets to server\n' +
264
297
  ' write-ssh-keys Write SSH keys to ~/.ssh/\n' +
265
298
  '\n' +
@@ -13,7 +13,12 @@
13
13
  * write-ssh-keys - Write SSH keys to ~/.ssh/ (for workflows)
14
14
  */
15
15
  import type { SecretsOptions } from '../types/index.js';
16
- export type SecretsAction = 'list' | 'set' | 'check' | 'set-env' | 'list-env' | 'deploy' | 'write-ssh-keys';
16
+ export type SecretsAction = 'list' | 'set' | 'get' | 'delete' | 'check' | 'set-env' | 'list-env' | 'delete-env' | 'deploy' | 'write-ssh-keys';
17
17
  export declare function secrets(action: SecretsAction, secretName?: string, options?: SecretsOptions): Promise<void>;
18
+ /**
19
+ * Interactive secrets management — shows all secrets and lets user pick action.
20
+ * Called by `npx stack secrets` (no arguments).
21
+ */
22
+ export declare function secretsInteractive(options?: SecretsOptions): Promise<void>;
18
23
  export default secrets;
19
24
  //# sourceMappingURL=secrets.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"secrets.d.ts","sourceRoot":"","sources":["../../src/cli/secrets.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AASH,OAAO,KAAK,EAAE,cAAc,EAAiB,MAAM,mBAAmB,CAAC;AAEvE,MAAM,MAAM,aAAa,GACrB,MAAM,GACN,KAAK,GACL,OAAO,GACP,SAAS,GACT,UAAU,GACV,QAAQ,GACR,gBAAgB,CAAC;AA2BrB,wBAAsB,OAAO,CAC3B,MAAM,EAAE,aAAa,EACrB,UAAU,CAAC,EAAE,MAAM,EACnB,OAAO,GAAE,cAAmB,GAC3B,OAAO,CAAC,IAAI,CAAC,CA0Qf;AAED,eAAe,OAAO,CAAC"}
1
+ {"version":3,"file":"secrets.d.ts","sourceRoot":"","sources":["../../src/cli/secrets.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AASH,OAAO,KAAK,EAAE,cAAc,EAAiB,MAAM,mBAAmB,CAAC;AAEvE,MAAM,MAAM,aAAa,GACrB,MAAM,GACN,KAAK,GACL,KAAK,GACL,QAAQ,GACR,OAAO,GACP,SAAS,GACT,UAAU,GACV,YAAY,GACZ,QAAQ,GACR,gBAAgB,CAAC;AA2BrB,wBAAsB,OAAO,CAC3B,MAAM,EAAE,aAAa,EACrB,UAAU,CAAC,EAAE,MAAM,EACnB,OAAO,GAAE,cAAmB,GAC3B,OAAO,CAAC,IAAI,CAAC,CA8Uf;AAED;;;GAGG;AACH,wBAAsB,kBAAkB,CAAC,OAAO,GAAE,cAAmB,GAAG,OAAO,CAAC,IAAI,CAAC,CA8JpF;AAED,eAAe,OAAO,CAAC"}
@@ -48,6 +48,7 @@ var __importStar = (this && this.__importStar) || (function () {
48
48
  })();
49
49
  Object.defineProperty(exports, "__esModule", { value: true });
50
50
  exports.secrets = secrets;
51
+ exports.secretsInteractive = secretsInteractive;
51
52
  const fs = __importStar(require("fs"));
52
53
  const path = __importStar(require("path"));
53
54
  const os = __importStar(require("os"));
@@ -184,6 +185,46 @@ async function secrets(action, secretName, options = {}) {
184
185
  }
185
186
  break;
186
187
  }
188
+ case 'get': {
189
+ if (!secretName) {
190
+ console.log('[ERROR] Secret name required');
191
+ console.log('Usage: npx stack deploy --secrets get <name>');
192
+ return;
193
+ }
194
+ const secretValue = await store.getSecret(secretName);
195
+ if (secretValue !== null) {
196
+ // For SSH keys, show truncated; for others show full value
197
+ if (secretName.includes('SSH') && secretValue.includes('PRIVATE KEY')) {
198
+ const lines = secretValue.split('\n');
199
+ console.log(secretName + ':');
200
+ console.log(' ' + (lines[0] ?? ''));
201
+ console.log(' ... (' + lines.length + ' lines)');
202
+ console.log(' ' + (lines[lines.length - 1] ?? lines[lines.length - 2] ?? ''));
203
+ }
204
+ else {
205
+ console.log(secretName + ': ' + secretValue);
206
+ }
207
+ }
208
+ else {
209
+ console.log('[!] ' + secretName + ' not found in vault');
210
+ }
211
+ break;
212
+ }
213
+ case 'delete': {
214
+ if (!secretName) {
215
+ console.log('[ERROR] Secret name required');
216
+ console.log('Usage: npx stack deploy --secrets delete <name>');
217
+ return;
218
+ }
219
+ const deleteResult = await store.deleteSecret(secretName);
220
+ if (deleteResult.success) {
221
+ console.log('[OK] Deleted ' + secretName + ' from vault');
222
+ }
223
+ else {
224
+ console.log('[ERROR] ' + (deleteResult.error ?? 'Failed to delete'));
225
+ }
226
+ break;
227
+ }
187
228
  case 'check': {
188
229
  const secretNames = secretName ? [secretName] : ['STAGING_SSH', 'PROD_SSH', 'AWS_SECRET_ACCESS_KEY'];
189
230
  const result = await store.checkSecrets(secretNames);
@@ -282,6 +323,33 @@ async function secrets(action, secretName, options = {}) {
282
323
  }
283
324
  break;
284
325
  }
326
+ case 'delete-env': {
327
+ if (!secretName) {
328
+ console.log('[ERROR] Environment variable name required');
329
+ console.log('Usage: npx stack deploy --secrets delete-env <NAME> --staging|--prod');
330
+ return;
331
+ }
332
+ let deleteEnvStage;
333
+ if (options.staging) {
334
+ deleteEnvStage = 'staging';
335
+ }
336
+ else if (options.prod) {
337
+ deleteEnvStage = 'prod';
338
+ }
339
+ else {
340
+ console.log('[ERROR] Please specify --staging or --prod');
341
+ return;
342
+ }
343
+ const deleteEnvResult = await store.deleteEnvironmentSecret(deleteEnvStage, secretName);
344
+ if (deleteEnvResult.success) {
345
+ console.log('[OK] Deleted ' + secretName + ' from ' + deleteEnvStage + ' environment');
346
+ console.log('Deploy with: npx stack deploy --secrets deploy --' + deleteEnvStage);
347
+ }
348
+ else {
349
+ console.log('[ERROR] ' + (deleteEnvResult.error ?? 'Failed to delete'));
350
+ }
351
+ break;
352
+ }
285
353
  case 'write-ssh-keys': {
286
354
  const stagingKey = await store.getSecret('STAGING_SSH');
287
355
  const prodKey = await store.getSecret('PROD_SSH');
@@ -322,5 +390,165 @@ async function secrets(action, secretName, options = {}) {
322
390
  }
323
391
  }
324
392
  }
393
+ /**
394
+ * Interactive secrets management — shows all secrets and lets user pick action.
395
+ * Called by `npx stack secrets` (no arguments).
396
+ */
397
+ async function secretsInteractive(options = {}) {
398
+ const { promptSingleLine } = await Promise.resolve().then(() => __importStar(require('../utils/secret-prompts.js')));
399
+ const rootDir = options.rootDir ?? process.cwd();
400
+ const config = loadConfigOrThrow(rootDir);
401
+ const store = getVaultStore(config, rootDir);
402
+ // Gather all secrets
403
+ const sshSecrets = ['STAGING_SSH', 'PROD_SSH'];
404
+ const awsSecrets = ['AWS_SECRET_ACCESS_KEY'];
405
+ const sshResult = await store.checkSecrets(sshSecrets);
406
+ const awsResult = await store.checkSecrets(awsSecrets);
407
+ const stagingKeys = await store.listEnvironmentSecretKeys('staging');
408
+ const prodKeys = await store.listEnvironmentSecretKeys('prod');
409
+ // Build numbered list
410
+ const allItems = [];
411
+ for (const name of sshSecrets) {
412
+ allItems.push({ name, type: 'secret', exists: sshResult.status?.[name] ?? false });
413
+ }
414
+ for (const name of awsSecrets) {
415
+ allItems.push({ name, type: 'secret', exists: awsResult.status?.[name] ?? false });
416
+ }
417
+ for (const key of stagingKeys) {
418
+ allItems.push({ name: key, type: 'env', stage: 'staging', exists: true });
419
+ }
420
+ for (const key of prodKeys) {
421
+ allItems.push({ name: key, type: 'env', stage: 'prod', exists: true });
422
+ }
423
+ // Display
424
+ console.log('');
425
+ console.log('ANSIBLE VAULT SECRETS');
426
+ console.log('');
427
+ let idx = 1;
428
+ console.log(' SSH KEYS & CREDENTIALS:');
429
+ for (const item of allItems) {
430
+ if (item.type !== 'secret')
431
+ continue;
432
+ const marker = item.exists ? '[OK]' : '[! ]';
433
+ console.log(' ' + idx + '. ' + marker + ' ' + item.name);
434
+ idx++;
435
+ }
436
+ if (stagingKeys.length > 0) {
437
+ console.log('');
438
+ console.log(' STAGING ENV VARS:');
439
+ for (const item of allItems) {
440
+ if (item.type !== 'env' || item.stage !== 'staging')
441
+ continue;
442
+ console.log(' ' + idx + '. [OK] ' + item.name);
443
+ idx++;
444
+ }
445
+ }
446
+ if (prodKeys.length > 0) {
447
+ console.log('');
448
+ console.log(' PROD ENV VARS:');
449
+ for (const item of allItems) {
450
+ if (item.type !== 'env' || item.stage !== 'prod')
451
+ continue;
452
+ console.log(' ' + idx + '. [OK] ' + item.name);
453
+ idx++;
454
+ }
455
+ }
456
+ console.log('');
457
+ console.log(' Actions:');
458
+ console.log(' [number] → edit/set that secret');
459
+ console.log(' d[number] → delete (e.g. d3)');
460
+ console.log(' v[number] → view value (e.g. v1)');
461
+ console.log(' n → add new secret');
462
+ console.log(' ne --staging → add new env var');
463
+ console.log(' q → quit');
464
+ console.log('');
465
+ const answer = await promptSingleLine(' Select: ');
466
+ if (!answer || answer.toLowerCase() === 'q')
467
+ return;
468
+ // Parse action
469
+ const trimmed = answer.trim().toLowerCase();
470
+ // "n" = new secret
471
+ if (trimmed === 'n') {
472
+ const name = await promptSingleLine(' Secret name (e.g. STAGING_SSH, AWS_SECRET_ACCESS_KEY): ');
473
+ if (name) {
474
+ await secrets('set', name.trim(), options);
475
+ }
476
+ return;
477
+ }
478
+ // "ne" = new env var
479
+ if (trimmed === 'ne') {
480
+ let stage;
481
+ if (options.staging) {
482
+ stage = 'staging';
483
+ }
484
+ else if (options.prod) {
485
+ stage = 'prod';
486
+ }
487
+ else {
488
+ const stageAnswer = await promptSingleLine(' Stage (staging/prod): ');
489
+ if (stageAnswer?.trim().toLowerCase() === 'prod') {
490
+ stage = 'prod';
491
+ }
492
+ else {
493
+ stage = 'staging';
494
+ }
495
+ }
496
+ const envName = await promptSingleLine(' Env var name (e.g. DATABASE_URL): ');
497
+ if (envName) {
498
+ await secrets('set-env', envName.trim(), { ...options, staging: stage === 'staging', prod: stage === 'prod' });
499
+ }
500
+ return;
501
+ }
502
+ // Parse number-based actions: "3" = edit #3, "d3" = delete #3, "v3" = view #3
503
+ let action = 'set';
504
+ let numStr = trimmed;
505
+ if (trimmed.startsWith('d')) {
506
+ action = 'delete';
507
+ numStr = trimmed.slice(1);
508
+ }
509
+ else if (trimmed.startsWith('v')) {
510
+ action = 'get';
511
+ numStr = trimmed.slice(1);
512
+ }
513
+ const num = parseInt(numStr, 10);
514
+ if (isNaN(num) || num < 1 || num > allItems.length) {
515
+ console.log('[!] Invalid selection');
516
+ return;
517
+ }
518
+ const selected = allItems[num - 1];
519
+ if (selected.type === 'env' && selected.stage) {
520
+ // Environment variable
521
+ const stageOpts = { ...options, staging: selected.stage === 'staging', prod: selected.stage === 'prod' };
522
+ if (action === 'delete') {
523
+ await secrets('delete-env', selected.name, stageOpts);
524
+ }
525
+ else if (action === 'get') {
526
+ // Get env var value from vault
527
+ const envSecrets = await store.getEnvironmentSecrets(selected.stage);
528
+ const val = envSecrets[selected.name];
529
+ if (val !== undefined) {
530
+ console.log(selected.name + '=' + val);
531
+ }
532
+ else {
533
+ console.log('[!] ' + selected.name + ' not found');
534
+ }
535
+ }
536
+ else {
537
+ await secrets('set-env', selected.name, stageOpts);
538
+ }
539
+ }
540
+ else {
541
+ // Top-level secret
542
+ if (action === 'delete') {
543
+ await secrets('delete', selected.name, options);
544
+ }
545
+ else if (action === 'get') {
546
+ await secrets('get', selected.name, options);
547
+ }
548
+ else {
549
+ await secrets('set', selected.name, options);
550
+ }
551
+ }
552
+ }
325
553
  exports.default = secrets;
326
554
  //# sourceMappingURL=secrets.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"secrets.js","sourceRoot":"","sources":["../../src/cli/secrets.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"secrets.js","sourceRoot":"","sources":["../../src/cli/secrets.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;GAaG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAgDH,0BAkVC;AAMD,gDA8JC;AApiBD,uCAAyB;AACzB,2CAA6B;AAC7B,uCAAyB;AACzB,gFAAwE;AACxE,kEAAiF;AACjF,2DAAoD;AACpD,kEAAwD;AAexD,SAAS,iBAAiB,CAAC,OAAe;IACxC,MAAM,MAAM,GAAG,IAAA,8BAAU,EAAC,OAAO,CAAC,CAAC;IACnC,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAChD,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAC;IAC9D,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,aAAa,CAAC,MAAqB,EAAE,OAAe;IAC3D,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,UAAU,EAAE,CAAC;QAChC,MAAM,IAAI,KAAK,CACb,qDAAqD;YACrD,cAAc;YACd,2DAA2D;YAC3D,oDAAoD,CACrD,CAAC;IACJ,CAAC;IAED,OAAO,IAAI,8CAAmB,CAAC;QAC7B,UAAU,EAAE,MAAM,CAAC,OAAO,CAAC,UAAU;QACrC,mBAAmB,EAAE,MAAM,CAAC,OAAO,CAAC,mBAAmB;QACvD,OAAO;KACR,CAAC,CAAC;AACL,CAAC;AAEM,KAAK,UAAU,OAAO,CAC3B,MAAqB,EACrB,UAAmB,EACnB,UAA0B,EAAE;IAE5B,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;IACjD,MAAM,MAAM,GAAG,iBAAiB,CAAC,OAAO,CAAC,CAAC;IAE1C,8DAA8D;IAC9D,IAAI,MAAM,KAAK,QAAQ,EAAE,CAAC;QACxB,IAAI,WAAW,GAA+B,KAAK,CAAC;QACpD,IAAI,OAAO,CAAC,OAAO;YAAE,WAAW,GAAG,SAAS,CAAC;QAC7C,IAAI,OAAO,CAAC,IAAI;YAAE,WAAW,GAAG,MAAM,CAAC;QAEvC,MAAM,MAAM,GAAG,MAAM,IAAA,iCAAa,EAAC,WAAW,EAAE;YAC9C,OAAO;YACP,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,MAAM,EAAE,OAAO,CAAC,MAAM;SACvB,CAAC,CAAC;QAEH,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACpB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QACD,OAAO;IACT,CAAC;IAED,MAAM,KAAK,GAAG,aAAa,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAE7C,QAAQ,MAAM,EAAE,CAAC;QACf,KAAK,MAAM,CAAC,CAAC,CAAC;YACZ,OAAO,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC;YAEvC,iBAAiB;YACjB,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;YACzB,MAAM,UAAU,GAAG,CAAC,aAAa,EAAE,UAAU,CAAC,CAAC;YAC/C,MAAM,SAAS,GAAG,MAAM,KAAK,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC;YACvD,KAAK,MAAM,IAAI,IAAI,UAAU,EAAE,CAAC;gBAC9B,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC;gBACjD,MAAM,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC;gBACvC,MAAM,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC;gBAC7C,OAAO,CAAC,GAAG,CAAC,KAAK,MAAM,IAAI,IAAI,KAAK,MAAM,EAAE,CAAC,CAAC;YAChD,CAAC;YAED,wBAAwB;YACxB,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;YAClC,MAAM,UAAU,GAAG,CAAC,uBAAuB,CAAC,CAAC;YAC7C,MAAM,SAAS,GAAG,MAAM,KAAK,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC;YACvD,KAAK,MAAM,IAAI,IAAI,UAAU,EAAE,CAAC;gBAC9B,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC;gBACjD,MAAM,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC;gBACvC,MAAM,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC;gBAC7C,OAAO,CAAC,GAAG,CAAC,KAAK,MAAM,IAAI,IAAI,KAAK,MAAM,EAAE,CAAC,CAAC;YAChD,CAAC;YAED,oCAAoC;YACpC,OAAO,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC;YACtC,MAAM,WAAW,GAAG,MAAM,KAAK,CAAC,yBAAyB,CAAC,SAAS,CAAC,CAAC;YACrE,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC3B,KAAK,MAAM,GAAG,IAAI,WAAW,EAAE,CAAC;oBAC9B,OAAO,CAAC,GAAG,CAAC,UAAU,GAAG,EAAE,CAAC,CAAC;gBAC/B,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,GAAG,CAAC,oCAAoC,CAAC,CAAC;gBAClD,OAAO,CAAC,GAAG,CAAC,qEAAqE,CAAC,CAAC;YACrF,CAAC;YAED,iCAAiC;YACjC,OAAO,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC;YACzC,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,yBAAyB,CAAC,MAAM,CAAC,CAAC;YAC/D,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACxB,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE,CAAC;oBAC3B,OAAO,CAAC,GAAG,CAAC,UAAU,GAAG,EAAE,CAAC,CAAC;gBAC/B,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,GAAG,CAAC,oCAAoC,CAAC,CAAC;gBAClD,OAAO,CAAC,GAAG,CAAC,kEAAkE,CAAC,CAAC;YAClF,CAAC;YAED,uBAAuB;YACvB,MAAM,UAAU,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,OAAO,IAAI,EAAE,CAAC,EAAE,GAAG,CAAC,SAAS,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,CAAC;YAChF,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC1B,OAAO,CAAC,GAAG,CAAC,sBAAsB,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBAC3D,OAAO,CAAC,GAAG,CAAC,wDAAwD,CAAC,CAAC;YACxE,CAAC;YAED,qCAAqC;YACrC,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAClD,OAAO,CAAC,GAAG,CAAC,8BAA8B,CAAC,CAAC;gBAC5C,OAAO,CAAC,GAAG,CAAC,qEAAqE,CAAC,CAAC;gBACnF,OAAO,CAAC,GAAG,CAAC,wEAAwE,CAAC,CAAC;gBACtF,OAAO,CAAC,GAAG,CAAC,iEAAiE,CAAC,CAAC;YACjF,CAAC;YACD,MAAM;QACR,CAAC;QAED,KAAK,KAAK,CAAC,CAAC,CAAC;YACX,IAAI,CAAC,UAAU,EAAE,CAAC;gBAChB,OAAO,CAAC,GAAG,CAAC,8BAA8B,CAAC,CAAC;gBAC5C,OAAO,CAAC,GAAG,CAAC,8CAA8C,CAAC,CAAC;gBAC5D,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;gBAChB,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;gBAClC,OAAO,CAAC,GAAG,CAAC,uDAAuD,CAAC,CAAC;gBACrE,OAAO,CAAC,GAAG,CAAC,0DAA0D,CAAC,CAAC;gBACxE,OAAO,CAAC,GAAG,CAAC,kDAAkD,CAAC,CAAC;gBAChE,OAAO;YACT,CAAC;YAED,IAAI,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;YAC1B,IAAI,CAAC,KAAK,EAAE,CAAC;gBACX,KAAK,GAAG,MAAM,IAAA,mCAAe,EAAC,UAAU,EAAE,MAAM,CAAC,CAAC;YACpD,CAAC;YAED,OAAO,CAAC,GAAG,CAAC,aAAa,UAAU,sBAAsB,CAAC,CAAC;YAC3D,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,SAAS,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;YAExD,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;gBACnB,OAAO,CAAC,GAAG,CAAC,QAAQ,UAAU,wBAAwB,MAAM,CAAC,OAAO,EAAE,UAAU,EAAE,CAAC,CAAC;YACtF,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,GAAG,CAAC,yBAAyB,UAAU,KAAK,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;gBACpE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;YACD,MAAM;QACR,CAAC;QAED,KAAK,KAAK,CAAC,CAAC,CAAC;YACX,IAAI,CAAC,UAAU,EAAE,CAAC;gBAChB,OAAO,CAAC,GAAG,CAAC,8BAA8B,CAAC,CAAC;gBAC5C,OAAO,CAAC,GAAG,CAAC,8CAA8C,CAAC,CAAC;gBAC5D,OAAO;YACT,CAAC;YAED,MAAM,WAAW,GAAG,MAAM,KAAK,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;YACtD,IAAI,WAAW,KAAK,IAAI,EAAE,CAAC;gBACzB,2DAA2D;gBAC3D,IAAI,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,WAAW,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC;oBACtE,MAAM,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;oBACtC,OAAO,CAAC,GAAG,CAAC,UAAU,GAAG,GAAG,CAAC,CAAC;oBAC9B,OAAO,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;oBACrC,OAAO,CAAC,GAAG,CAAC,SAAS,GAAG,KAAK,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;oBAClD,OAAO,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;gBACjF,CAAC;qBAAM,CAAC;oBACN,OAAO,CAAC,GAAG,CAAC,UAAU,GAAG,IAAI,GAAG,WAAW,CAAC,CAAC;gBAC/C,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,GAAG,CAAC,MAAM,GAAG,UAAU,GAAG,qBAAqB,CAAC,CAAC;YAC3D,CAAC;YACD,MAAM;QACR,CAAC;QAED,KAAK,QAAQ,CAAC,CAAC,CAAC;YACd,IAAI,CAAC,UAAU,EAAE,CAAC;gBAChB,OAAO,CAAC,GAAG,CAAC,8BAA8B,CAAC,CAAC;gBAC5C,OAAO,CAAC,GAAG,CAAC,iDAAiD,CAAC,CAAC;gBAC/D,OAAO;YACT,CAAC;YAED,MAAM,YAAY,GAAG,MAAM,KAAK,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC;YAC1D,IAAI,YAAY,CAAC,OAAO,EAAE,CAAC;gBACzB,OAAO,CAAC,GAAG,CAAC,eAAe,GAAG,UAAU,GAAG,aAAa,CAAC,CAAC;YAC5D,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,GAAG,CAAC,UAAU,GAAG,CAAC,YAAY,CAAC,KAAK,IAAI,kBAAkB,CAAC,CAAC,CAAC;YACvE,CAAC;YACD,MAAM;QACR,CAAC;QAED,KAAK,OAAO,CAAC,CAAC,CAAC;YACb,MAAM,WAAW,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,aAAa,EAAE,UAAU,EAAE,uBAAuB,CAAC,CAAC;YACrG,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC;YAErD,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;gBACjB,OAAO,CAAC,GAAG,CAAC,WAAW,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;gBACvC,OAAO;YACT,CAAC;YAED,KAAK,MAAM,IAAI,IAAI,WAAW,EAAE,CAAC;gBAC/B,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC;gBAC9C,OAAO,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,IAAI,IAAI,EAAE,CAAC,CAAC;YACpD,CAAC;YACD,MAAM;QACR,CAAC;QAED,KAAK,SAAS,CAAC,CAAC,CAAC;YACf,IAAI,CAAC,UAAU,EAAE,CAAC;gBAChB,OAAO,CAAC,GAAG,CAAC,4CAA4C,CAAC,CAAC;gBAC1D,OAAO,CAAC,GAAG,CAAC,mEAAmE,CAAC,CAAC;gBACjF,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;gBAChB,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;gBACzB,OAAO,CAAC,GAAG,CAAC,8DAA8D,CAAC,CAAC;gBAC5E,OAAO,CAAC,GAAG,CAAC,yDAAyD,CAAC,CAAC;gBACvE,OAAO;YACT,CAAC;YAED,+BAA+B;YAC/B,IAAI,KAAyB,CAAC;YAC9B,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;gBACpB,KAAK,GAAG,SAAS,CAAC;YACpB,CAAC;iBAAM,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;gBACxB,KAAK,GAAG,MAAM,CAAC;YACjB,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,GAAG,CAAC,4CAA4C,CAAC,CAAC;gBAC1D,OAAO;YACT,CAAC;YAED,IAAI,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;YAC1B,IAAI,CAAC,KAAK,EAAE,CAAC;gBACX,KAAK,GAAG,MAAM,IAAA,sCAAkB,EAAC,UAAU,EAAE,KAAK,CAAC,CAAC;YACtD,CAAC;YAED,OAAO,CAAC,GAAG,CAAC,aAAa,UAAU,QAAQ,KAAK,sBAAsB,CAAC,CAAC;YACxE,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,oBAAoB,CAAC,KAAK,EAAE,UAAU,EAAE,KAAe,CAAC,CAAC;YAEpF,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;gBACnB,OAAO,CAAC,GAAG,CAAC,QAAQ,UAAU,yBAAyB,KAAK,EAAE,CAAC,CAAC;gBAChE,OAAO,CAAC,GAAG,CAAC,oDAAoD,KAAK,EAAE,CAAC,CAAC;YAC3E,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,GAAG,CAAC,yBAAyB,UAAU,KAAK,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;gBACpE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;YACD,MAAM;QACR,CAAC;QAED,KAAK,UAAU,CAAC,CAAC,CAAC;YAChB,+BAA+B;YAC/B,IAAI,KAAqC,CAAC;YAC1C,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;gBACpB,KAAK,GAAG,SAAS,CAAC;YACpB,CAAC;iBAAM,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;gBACxB,KAAK,GAAG,MAAM,CAAC;YACjB,CAAC;YAED,IAAI,KAAK,EAAE,CAAC;gBACV,OAAO,CAAC,GAAG,CAAC,+BAA+B,KAAK,GAAG,CAAC,CAAC;gBACrD,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,yBAAyB,CAAC,KAAK,CAAC,CAAC;gBAC1D,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBACpB,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;wBACvB,OAAO,CAAC,GAAG,CAAC,OAAO,GAAG,EAAE,CAAC,CAAC;oBAC5B,CAAC;gBACH,CAAC;qBAAM,CAAC;oBACN,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;oBACzB,OAAO,CAAC,GAAG,CAAC,2DAA2D,KAAK,EAAE,CAAC,CAAC;gBAClF,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,YAAY;gBACZ,OAAO,CAAC,GAAG,CAAC,kCAAkC,CAAC,CAAC;gBAChD,MAAM,WAAW,GAAG,MAAM,KAAK,CAAC,yBAAyB,CAAC,SAAS,CAAC,CAAC;gBACrE,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAC3B,KAAK,MAAM,GAAG,IAAI,WAAW,EAAE,CAAC;wBAC9B,OAAO,CAAC,GAAG,CAAC,OAAO,GAAG,EAAE,CAAC,CAAC;oBAC5B,CAAC;gBACH,CAAC;qBAAM,CAAC;oBACN,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;gBAC3B,CAAC;gBAED,OAAO,CAAC,GAAG,CAAC,qCAAqC,CAAC,CAAC;gBACnD,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,yBAAyB,CAAC,MAAM,CAAC,CAAC;gBAC/D,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBACxB,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE,CAAC;wBAC3B,OAAO,CAAC,GAAG,CAAC,OAAO,GAAG,EAAE,CAAC,CAAC;oBAC5B,CAAC;gBACH,CAAC;qBAAM,CAAC;oBACN,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;gBAC3B,CAAC;YACH,CAAC;YACD,MAAM;QACR,CAAC;QAED,KAAK,YAAY,CAAC,CAAC,CAAC;YAClB,IAAI,CAAC,UAAU,EAAE,CAAC;gBAChB,OAAO,CAAC,GAAG,CAAC,4CAA4C,CAAC,CAAC;gBAC1D,OAAO,CAAC,GAAG,CAAC,sEAAsE,CAAC,CAAC;gBACpF,OAAO;YACT,CAAC;YAED,IAAI,cAAkC,CAAC;YACvC,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;gBACpB,cAAc,GAAG,SAAS,CAAC;YAC7B,CAAC;iBAAM,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;gBACxB,cAAc,GAAG,MAAM,CAAC;YAC1B,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,GAAG,CAAC,4CAA4C,CAAC,CAAC;gBAC1D,OAAO;YACT,CAAC;YAED,MAAM,eAAe,GAAG,MAAM,KAAK,CAAC,uBAAuB,CAAC,cAAc,EAAE,UAAU,CAAC,CAAC;YACxF,IAAI,eAAe,CAAC,OAAO,EAAE,CAAC;gBAC5B,OAAO,CAAC,GAAG,CAAC,eAAe,GAAG,UAAU,GAAG,QAAQ,GAAG,cAAc,GAAG,cAAc,CAAC,CAAC;gBACvF,OAAO,CAAC,GAAG,CAAC,mDAAmD,GAAG,cAAc,CAAC,CAAC;YACpF,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,GAAG,CAAC,UAAU,GAAG,CAAC,eAAe,CAAC,KAAK,IAAI,kBAAkB,CAAC,CAAC,CAAC;YAC1E,CAAC;YACD,MAAM;QACR,CAAC;QAED,KAAK,gBAAgB,CAAC,CAAC,CAAC;YACtB,MAAM,UAAU,GAAG,MAAM,KAAK,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;YACxD,MAAM,OAAO,GAAG,MAAM,KAAK,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;YAClD,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC;YAChC,MAAM,WAAW,GAAG,WAAW,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;YAEpF,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,MAAM,CAAC,CAAC;YAC/C,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC3B,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;YACxC,CAAC;YAED,IAAI,UAAU,EAAE,CAAC;gBACf,sCAAsC;gBACtC,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,oBAAoB,CAAC,CAAC;gBAC5D,EAAE,CAAC,aAAa,CAAC,WAAW,EAAE,UAAU,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;gBAC3D,OAAO,CAAC,GAAG,CAAC,6BAA6B,WAAW,EAAE,CAAC,CAAC;gBAExD,0BAA0B;gBAC1B,IAAI,WAAW,EAAE,CAAC;oBAChB,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,qBAAqB,GAAG,WAAW,CAAC,CAAC;oBACxE,EAAE,CAAC,aAAa,CAAC,QAAQ,EAAE,UAAU,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;oBACxD,OAAO,CAAC,GAAG,CAAC,6BAA6B,QAAQ,EAAE,CAAC,CAAC;gBACvD,CAAC;YACH,CAAC;YAED,IAAI,OAAO,EAAE,CAAC;gBACZ,sCAAsC;gBACtC,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC;gBACzD,EAAE,CAAC,aAAa,CAAC,WAAW,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;gBACxD,OAAO,CAAC,GAAG,CAAC,0BAA0B,WAAW,EAAE,CAAC,CAAC;gBAErD,0BAA0B;gBAC1B,IAAI,WAAW,EAAE,CAAC;oBAChB,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,kBAAkB,GAAG,WAAW,CAAC,CAAC;oBACrE,EAAE,CAAC,aAAa,CAAC,QAAQ,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;oBACrD,OAAO,CAAC,GAAG,CAAC,0BAA0B,QAAQ,EAAE,CAAC,CAAC;gBACpD,CAAC;YACH,CAAC;YAED,IAAI,CAAC,UAAU,IAAI,CAAC,OAAO,EAAE,CAAC;gBAC5B,OAAO,CAAC,GAAG,CAAC,gCAAgC,CAAC,CAAC;YAChD,CAAC;YACD,MAAM;QACR,CAAC;IACH,CAAC;AACH,CAAC;AAED;;;GAGG;AACI,KAAK,UAAU,kBAAkB,CAAC,UAA0B,EAAE;IACnE,MAAM,EAAE,gBAAgB,EAAE,GAAG,wDAAa,4BAA4B,GAAC,CAAC;IACxE,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;IACjD,MAAM,MAAM,GAAG,iBAAiB,CAAC,OAAO,CAAC,CAAC;IAC1C,MAAM,KAAK,GAAG,aAAa,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAE7C,qBAAqB;IACrB,MAAM,UAAU,GAAG,CAAC,aAAa,EAAE,UAAU,CAAC,CAAC;IAC/C,MAAM,UAAU,GAAG,CAAC,uBAAuB,CAAC,CAAC;IAC7C,MAAM,SAAS,GAAG,MAAM,KAAK,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC;IACvD,MAAM,SAAS,GAAG,MAAM,KAAK,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC;IACvD,MAAM,WAAW,GAAG,MAAM,KAAK,CAAC,yBAAyB,CAAC,SAAS,CAAC,CAAC;IACrE,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,yBAAyB,CAAC,MAAM,CAAC,CAAC;IAE/D,sBAAsB;IACtB,MAAM,QAAQ,GAAsE,EAAE,CAAC;IAEvF,KAAK,MAAM,IAAI,IAAI,UAAU,EAAE,CAAC;QAC9B,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,EAAE,CAAC,CAAC;IACrF,CAAC;IACD,KAAK,MAAM,IAAI,IAAI,UAAU,EAAE,CAAC;QAC9B,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,EAAE,CAAC,CAAC;IACrF,CAAC;IACD,KAAK,MAAM,GAAG,IAAI,WAAW,EAAE,CAAC;QAC9B,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;IAC5E,CAAC;IACD,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE,CAAC;QAC3B,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;IACzE,CAAC;IAED,UAAU;IACV,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChB,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC;IACrC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAEhB,IAAI,GAAG,GAAG,CAAC,CAAC;IACZ,OAAO,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC;IACzC,KAAK,MAAM,IAAI,IAAI,QAAQ,EAAE,CAAC;QAC5B,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ;YAAE,SAAS;QACrC,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC;QAC7C,OAAO,CAAC,GAAG,CAAC,MAAM,GAAG,GAAG,GAAG,IAAI,GAAG,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC;QAC5D,GAAG,EAAE,CAAC;IACR,CAAC;IAED,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC3B,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAChB,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC;QACnC,KAAK,MAAM,IAAI,IAAI,QAAQ,EAAE,CAAC;YAC5B,IAAI,IAAI,CAAC,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS;gBAAE,SAAS;YAC9D,OAAO,CAAC,GAAG,CAAC,MAAM,GAAG,GAAG,GAAG,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC;YAClD,GAAG,EAAE,CAAC;QACR,CAAC;IACH,CAAC;IAED,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACxB,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAChB,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;QAChC,KAAK,MAAM,IAAI,IAAI,QAAQ,EAAE,CAAC;YAC5B,IAAI,IAAI,CAAC,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,KAAK,KAAK,MAAM;gBAAE,SAAS;YAC3D,OAAO,CAAC,GAAG,CAAC,MAAM,GAAG,GAAG,GAAG,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC;YAClD,GAAG,EAAE,CAAC;QACR,CAAC;IACH,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChB,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;IAC1B,OAAO,CAAC,GAAG,CAAC,4CAA4C,CAAC,CAAC;IAC1D,OAAO,CAAC,GAAG,CAAC,wCAAwC,CAAC,CAAC;IACtD,OAAO,CAAC,GAAG,CAAC,4CAA4C,CAAC,CAAC;IAC1D,OAAO,CAAC,GAAG,CAAC,sCAAsC,CAAC,CAAC;IACpD,OAAO,CAAC,GAAG,CAAC,uCAAuC,CAAC,CAAC;IACrD,OAAO,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAC;IAC1C,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAEhB,MAAM,MAAM,GAAG,MAAM,gBAAgB,CAAC,YAAY,CAAC,CAAC;IACpD,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,WAAW,EAAE,KAAK,GAAG;QAAE,OAAO;IAEpD,eAAe;IACf,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAE5C,mBAAmB;IACnB,IAAI,OAAO,KAAK,GAAG,EAAE,CAAC;QACpB,MAAM,IAAI,GAAG,MAAM,gBAAgB,CAAC,2DAA2D,CAAC,CAAC;QACjG,IAAI,IAAI,EAAE,CAAC;YACT,MAAM,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,EAAE,EAAE,OAAO,CAAC,CAAC;QAC7C,CAAC;QACD,OAAO;IACT,CAAC;IAED,qBAAqB;IACrB,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;QACrB,IAAI,KAAyB,CAAC;QAC9B,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;YACpB,KAAK,GAAG,SAAS,CAAC;QACpB,CAAC;aAAM,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;YACxB,KAAK,GAAG,MAAM,CAAC;QACjB,CAAC;aAAM,CAAC;YACN,MAAM,WAAW,GAAG,MAAM,gBAAgB,CAAC,0BAA0B,CAAC,CAAC;YACvE,IAAI,WAAW,EAAE,IAAI,EAAE,CAAC,WAAW,EAAE,KAAK,MAAM,EAAE,CAAC;gBACjD,KAAK,GAAG,MAAM,CAAC;YACjB,CAAC;iBAAM,CAAC;gBACN,KAAK,GAAG,SAAS,CAAC;YACpB,CAAC;QACH,CAAC;QACD,MAAM,OAAO,GAAG,MAAM,gBAAgB,CAAC,sCAAsC,CAAC,CAAC;QAC/E,IAAI,OAAO,EAAE,CAAC;YACZ,MAAM,OAAO,CAAC,SAAS,EAAE,OAAO,CAAC,IAAI,EAAE,EAAE,EAAE,GAAG,OAAO,EAAE,OAAO,EAAE,KAAK,KAAK,SAAS,EAAE,IAAI,EAAE,KAAK,KAAK,MAAM,EAAE,CAAC,CAAC;QACjH,CAAC;QACD,OAAO;IACT,CAAC;IAED,8EAA8E;IAC9E,IAAI,MAAM,GAA6B,KAAK,CAAC;IAC7C,IAAI,MAAM,GAAG,OAAO,CAAC;IAErB,IAAI,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QAC5B,MAAM,GAAG,QAAQ,CAAC;QAClB,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAC5B,CAAC;SAAM,IAAI,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QACnC,MAAM,GAAG,KAAK,CAAC;QACf,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAC5B,CAAC;IAED,MAAM,GAAG,GAAG,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IACjC,IAAI,KAAK,CAAC,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,IAAI,GAAG,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC;QACnD,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC;QACrC,OAAO;IACT,CAAC;IAED,MAAM,QAAQ,GAAG,QAAQ,CAAC,GAAG,GAAG,CAAC,CAAE,CAAC;IAEpC,IAAI,QAAQ,CAAC,IAAI,KAAK,KAAK,IAAI,QAAQ,CAAC,KAAK,EAAE,CAAC;QAC9C,uBAAuB;QACvB,MAAM,SAAS,GAAG,EAAE,GAAG,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC,KAAK,KAAK,SAAS,EAAE,IAAI,EAAE,QAAQ,CAAC,KAAK,KAAK,MAAM,EAAE,CAAC;QACzG,IAAI,MAAM,KAAK,QAAQ,EAAE,CAAC;YACxB,MAAM,OAAO,CAAC,YAAY,EAAE,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;QACxD,CAAC;aAAM,IAAI,MAAM,KAAK,KAAK,EAAE,CAAC;YAC5B,+BAA+B;YAC/B,MAAM,UAAU,GAAG,MAAM,KAAK,CAAC,qBAAqB,CAAC,QAAQ,CAAC,KAA2B,CAAC,CAAC;YAC3F,MAAM,GAAG,GAAG,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;YACtC,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;gBACtB,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC;YACzC,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,GAAG,CAAC,MAAM,GAAG,QAAQ,CAAC,IAAI,GAAG,YAAY,CAAC,CAAC;YACrD,CAAC;QACH,CAAC;aAAM,CAAC;YACN,MAAM,OAAO,CAAC,SAAS,EAAE,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;QACrD,CAAC;IACH,CAAC;SAAM,CAAC;QACN,mBAAmB;QACnB,IAAI,MAAM,KAAK,QAAQ,EAAE,CAAC;YACxB,MAAM,OAAO,CAAC,QAAQ,EAAE,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAClD,CAAC;aAAM,IAAI,MAAM,KAAK,KAAK,EAAE,CAAC;YAC5B,MAAM,OAAO,CAAC,KAAK,EAAE,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAC/C,CAAC;aAAM,CAAC;YACN,MAAM,OAAO,CAAC,KAAK,EAAE,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAC/C,CAAC;IACH,CAAC;AACH,CAAC;AAED,kBAAe,OAAO,CAAC"}
@@ -0,0 +1,47 @@
1
+ /**
2
+ * DNS Addon
3
+ *
4
+ * Validates that DNS records resolve to the expected targets.
5
+ * Does NOT call any DNS provider API — works with any provider (Dynu, Cloudflare, etc.)
6
+ *
7
+ * ============================================================
8
+ * USAGE
9
+ * ============================================================
10
+ *
11
+ * Configure in stack.yml:
12
+ *
13
+ * dev:
14
+ * domain: dev.example.com
15
+ * plugins:
16
+ * dns:
17
+ * records:
18
+ * - host: "" # root domain → Vercel
19
+ * target: cname.vercel-dns.com
20
+ * - host: api # api.dev.example.com → AWS ALB
21
+ * target: my-alb.us-east-1.elb.amazonaws.com
22
+ *
23
+ * On scan: does DNS lookup, warns if records don't match expected targets.
24
+ * On fix: shows what needs updating, acknowledges warning in stackAuto.yml.
25
+ * Re-checks automatically if target changes in stack.yml.
26
+ * ============================================================
27
+ */
28
+ import type { FactiiiConfig, Fix } from '../../../types/index.js';
29
+ declare class DnsAddon {
30
+ static readonly id = "dns";
31
+ static readonly name = "DNS";
32
+ static readonly category: 'addon';
33
+ static readonly version = "1.0.0";
34
+ static readonly requiredEnvVars: string[];
35
+ static readonly configSchema: Record<string, unknown>;
36
+ static readonly autoConfigSchema: Record<string, string>;
37
+ /**
38
+ * Determine if this addon should be loaded.
39
+ * Loads if any environment has plugins.dns configured.
40
+ */
41
+ static shouldLoad(_rootDir: string, config: FactiiiConfig): Promise<boolean>;
42
+ static readonly fixes: Fix[];
43
+ private _config;
44
+ constructor(config: FactiiiConfig);
45
+ }
46
+ export default DnsAddon;
47
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/plugins/addons/dns/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,GAAG,EAAE,MAAM,yBAAyB,CAAC;AAGlE,cAAM,QAAQ;IAKZ,MAAM,CAAC,QAAQ,CAAC,EAAE,SAAS;IAC3B,MAAM,CAAC,QAAQ,CAAC,IAAI,SAAS;IAC7B,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAW;IAC5C,MAAM,CAAC,QAAQ,CAAC,OAAO,WAAW;IAElC,MAAM,CAAC,QAAQ,CAAC,eAAe,EAAE,MAAM,EAAE,CAAM;IAE/C,MAAM,CAAC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAEnD;IAEF,MAAM,CAAC,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAM;IAE9D;;;OAGG;WACU,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC;IAclF,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAE,GAAG,EAAE,CAE1B;IAMF,OAAO,CAAC,OAAO,CAAgB;gBAEnB,MAAM,EAAE,aAAa;CAGlC;AAED,eAAe,QAAQ,CAAC"}
@@ -0,0 +1,104 @@
1
+ "use strict";
2
+ /**
3
+ * DNS Addon
4
+ *
5
+ * Validates that DNS records resolve to the expected targets.
6
+ * Does NOT call any DNS provider API — works with any provider (Dynu, Cloudflare, etc.)
7
+ *
8
+ * ============================================================
9
+ * USAGE
10
+ * ============================================================
11
+ *
12
+ * Configure in stack.yml:
13
+ *
14
+ * dev:
15
+ * domain: dev.example.com
16
+ * plugins:
17
+ * dns:
18
+ * records:
19
+ * - host: "" # root domain → Vercel
20
+ * target: cname.vercel-dns.com
21
+ * - host: api # api.dev.example.com → AWS ALB
22
+ * target: my-alb.us-east-1.elb.amazonaws.com
23
+ *
24
+ * On scan: does DNS lookup, warns if records don't match expected targets.
25
+ * On fix: shows what needs updating, acknowledges warning in stackAuto.yml.
26
+ * Re-checks automatically if target changes in stack.yml.
27
+ * ============================================================
28
+ */
29
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
30
+ if (k2 === undefined) k2 = k;
31
+ var desc = Object.getOwnPropertyDescriptor(m, k);
32
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
33
+ desc = { enumerable: true, get: function() { return m[k]; } };
34
+ }
35
+ Object.defineProperty(o, k2, desc);
36
+ }) : (function(o, m, k, k2) {
37
+ if (k2 === undefined) k2 = k;
38
+ o[k2] = m[k];
39
+ }));
40
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
41
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
42
+ }) : function(o, v) {
43
+ o["default"] = v;
44
+ });
45
+ var __importStar = (this && this.__importStar) || (function () {
46
+ var ownKeys = function(o) {
47
+ ownKeys = Object.getOwnPropertyNames || function (o) {
48
+ var ar = [];
49
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
50
+ return ar;
51
+ };
52
+ return ownKeys(o);
53
+ };
54
+ return function (mod) {
55
+ if (mod && mod.__esModule) return mod;
56
+ var result = {};
57
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
58
+ __setModuleDefault(result, mod);
59
+ return result;
60
+ };
61
+ })();
62
+ Object.defineProperty(exports, "__esModule", { value: true });
63
+ const dev_js_1 = require("./scanfix/dev.js");
64
+ class DnsAddon {
65
+ // ============================================================
66
+ // STATIC METADATA
67
+ // ============================================================
68
+ static id = 'dns';
69
+ static name = 'DNS';
70
+ static category = 'addon';
71
+ static version = '1.0.0';
72
+ static requiredEnvVars = [];
73
+ static configSchema = {
74
+ // Defined per-environment under plugins.dns.records
75
+ };
76
+ static autoConfigSchema = {};
77
+ /**
78
+ * Determine if this addon should be loaded.
79
+ * Loads if any environment has plugins.dns configured.
80
+ */
81
+ static async shouldLoad(_rootDir, config) {
82
+ const { extractEnvironments } = await Promise.resolve().then(() => __importStar(require('../../../utils/config-helpers.js')));
83
+ const environments = extractEnvironments(config);
84
+ return Object.values(environments).some(env => {
85
+ const dnsPlugin = env.plugins?.dns;
86
+ return dnsPlugin?.records && dnsPlugin.records.length > 0;
87
+ });
88
+ }
89
+ // ============================================================
90
+ // FIXES
91
+ // ============================================================
92
+ static fixes = [
93
+ ...dev_js_1.dnsFixes,
94
+ ];
95
+ // ============================================================
96
+ // INSTANCE
97
+ // ============================================================
98
+ _config;
99
+ constructor(config) {
100
+ this._config = config;
101
+ }
102
+ }
103
+ exports.default = DnsAddon;
104
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/plugins/addons/dns/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAGH,6CAA4C;AAE5C,MAAM,QAAQ;IACZ,+DAA+D;IAC/D,kBAAkB;IAClB,+DAA+D;IAE/D,MAAM,CAAU,EAAE,GAAG,KAAK,CAAC;IAC3B,MAAM,CAAU,IAAI,GAAG,KAAK,CAAC;IAC7B,MAAM,CAAU,QAAQ,GAAY,OAAO,CAAC;IAC5C,MAAM,CAAU,OAAO,GAAG,OAAO,CAAC;IAElC,MAAM,CAAU,eAAe,GAAa,EAAE,CAAC;IAE/C,MAAM,CAAU,YAAY,GAA4B;IACtD,oDAAoD;KACrD,CAAC;IAEF,MAAM,CAAU,gBAAgB,GAA2B,EAAE,CAAC;IAE9D;;;OAGG;IACH,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,QAAgB,EAAE,MAAqB;QAC7D,MAAM,EAAE,mBAAmB,EAAE,GAAG,wDAAa,kCAAkC,GAAC,CAAC;QACjF,MAAM,YAAY,GAAG,mBAAmB,CAAC,MAAM,CAAC,CAAC;QAEjD,OAAO,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;YAC5C,MAAM,SAAS,GAAG,GAAG,CAAC,OAAO,EAAE,GAA0C,CAAC;YAC1E,OAAO,SAAS,EAAE,OAAO,IAAI,SAAS,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC;QAC5D,CAAC,CAAC,CAAC;IACL,CAAC;IAED,+DAA+D;IAC/D,QAAQ;IACR,+DAA+D;IAE/D,MAAM,CAAU,KAAK,GAAU;QAC7B,GAAG,iBAAQ;KACZ,CAAC;IAEF,+DAA+D;IAC/D,WAAW;IACX,+DAA+D;IAEvD,OAAO,CAAgB;IAE/B,YAAY,MAAqB;QAC/B,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;IACxB,CAAC;;AAGH,kBAAe,QAAQ,CAAC"}