@zincapp/zn-vault-agent 1.3.0

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 (88) hide show
  1. package/README.md +701 -0
  2. package/deploy/logrotate.d/zn-vault-agent +14 -0
  3. package/deploy/systemd/zn-vault-agent.service +75 -0
  4. package/dist/commands/certs.d.ts +3 -0
  5. package/dist/commands/certs.d.ts.map +1 -0
  6. package/dist/commands/certs.js +369 -0
  7. package/dist/commands/certs.js.map +1 -0
  8. package/dist/commands/exec.d.ts +3 -0
  9. package/dist/commands/exec.d.ts.map +1 -0
  10. package/dist/commands/exec.js +193 -0
  11. package/dist/commands/exec.js.map +1 -0
  12. package/dist/commands/login.d.ts +3 -0
  13. package/dist/commands/login.d.ts.map +1 -0
  14. package/dist/commands/login.js +234 -0
  15. package/dist/commands/login.js.map +1 -0
  16. package/dist/commands/secrets.d.ts +3 -0
  17. package/dist/commands/secrets.d.ts.map +1 -0
  18. package/dist/commands/secrets.js +445 -0
  19. package/dist/commands/secrets.js.map +1 -0
  20. package/dist/commands/setup.d.ts +9 -0
  21. package/dist/commands/setup.d.ts.map +1 -0
  22. package/dist/commands/setup.js +346 -0
  23. package/dist/commands/setup.js.map +1 -0
  24. package/dist/commands/start.d.ts +3 -0
  25. package/dist/commands/start.d.ts.map +1 -0
  26. package/dist/commands/start.js +113 -0
  27. package/dist/commands/start.js.map +1 -0
  28. package/dist/commands/status.d.ts +3 -0
  29. package/dist/commands/status.d.ts.map +1 -0
  30. package/dist/commands/status.js +85 -0
  31. package/dist/commands/status.js.map +1 -0
  32. package/dist/commands/sync.d.ts +3 -0
  33. package/dist/commands/sync.d.ts.map +1 -0
  34. package/dist/commands/sync.js +126 -0
  35. package/dist/commands/sync.js.map +1 -0
  36. package/dist/index.d.ts +3 -0
  37. package/dist/index.d.ts.map +1 -0
  38. package/dist/index.js +28 -0
  39. package/dist/index.js.map +1 -0
  40. package/dist/lib/api.d.ts +104 -0
  41. package/dist/lib/api.d.ts.map +1 -0
  42. package/dist/lib/api.js +338 -0
  43. package/dist/lib/api.js.map +1 -0
  44. package/dist/lib/config.d.ts +164 -0
  45. package/dist/lib/config.d.ts.map +1 -0
  46. package/dist/lib/config.js +299 -0
  47. package/dist/lib/config.js.map +1 -0
  48. package/dist/lib/deployer.d.ts +22 -0
  49. package/dist/lib/deployer.d.ts.map +1 -0
  50. package/dist/lib/deployer.js +407 -0
  51. package/dist/lib/deployer.js.map +1 -0
  52. package/dist/lib/health.d.ts +68 -0
  53. package/dist/lib/health.d.ts.map +1 -0
  54. package/dist/lib/health.js +216 -0
  55. package/dist/lib/health.js.map +1 -0
  56. package/dist/lib/logger.d.ts +38 -0
  57. package/dist/lib/logger.d.ts.map +1 -0
  58. package/dist/lib/logger.js +161 -0
  59. package/dist/lib/logger.js.map +1 -0
  60. package/dist/lib/metrics.d.ts +50 -0
  61. package/dist/lib/metrics.d.ts.map +1 -0
  62. package/dist/lib/metrics.js +273 -0
  63. package/dist/lib/metrics.js.map +1 -0
  64. package/dist/lib/secret-deployer.d.ts +22 -0
  65. package/dist/lib/secret-deployer.d.ts.map +1 -0
  66. package/dist/lib/secret-deployer.js +201 -0
  67. package/dist/lib/secret-deployer.js.map +1 -0
  68. package/dist/lib/validation.d.ts +25 -0
  69. package/dist/lib/validation.d.ts.map +1 -0
  70. package/dist/lib/validation.js +257 -0
  71. package/dist/lib/validation.js.map +1 -0
  72. package/dist/lib/websocket.d.ts +74 -0
  73. package/dist/lib/websocket.d.ts.map +1 -0
  74. package/dist/lib/websocket.js +441 -0
  75. package/dist/lib/websocket.js.map +1 -0
  76. package/dist/services/api-key-renewal.d.ts +13 -0
  77. package/dist/services/api-key-renewal.d.ts.map +1 -0
  78. package/dist/services/api-key-renewal.js +204 -0
  79. package/dist/services/api-key-renewal.js.map +1 -0
  80. package/dist/services/npm-auto-update.d.ts +60 -0
  81. package/dist/services/npm-auto-update.d.ts.map +1 -0
  82. package/dist/services/npm-auto-update.js +245 -0
  83. package/dist/services/npm-auto-update.js.map +1 -0
  84. package/dist/types/update.d.ts +19 -0
  85. package/dist/types/update.d.ts.map +1 -0
  86. package/dist/types/update.js +7 -0
  87. package/dist/types/update.js.map +1 -0
  88. package/package.json +74 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"exec.js","sourceRoot":"","sources":["../../src/commands/exec.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { Command } from 'commander';
2
+ export declare function registerLoginCommand(program: Command): void;
3
+ //# sourceMappingURL=login.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"login.d.ts","sourceRoot":"","sources":["../../src/commands/login.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA0CpC,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAyN3D"}
@@ -0,0 +1,234 @@
1
+ import inquirer from 'inquirer';
2
+ import ora from 'ora';
3
+ import chalk from 'chalk';
4
+ import { loadConfig, saveConfig, getConfigPath } from '../lib/config.js';
5
+ import { login as apiLogin, listCertificates } from '../lib/api.js';
6
+ /**
7
+ * Check if we have all required values for non-interactive mode
8
+ */
9
+ function canRunNonInteractive(options) {
10
+ const hasUrl = !!options.url;
11
+ const hasTenant = !!options.tenant;
12
+ const hasApiKey = !!options.apiKey;
13
+ const hasUserPass = !!options.username && !!options.password;
14
+ return hasUrl && hasTenant && (hasApiKey || hasUserPass);
15
+ }
16
+ /**
17
+ * Validate URL format
18
+ */
19
+ function isValidUrl(url) {
20
+ try {
21
+ new URL(url);
22
+ return true;
23
+ }
24
+ catch {
25
+ return false;
26
+ }
27
+ }
28
+ export function registerLoginCommand(program) {
29
+ program
30
+ .command('login')
31
+ .description('Configure vault connection and authenticate')
32
+ .option('-u, --url <url>', 'Vault server URL')
33
+ .option('-t, --tenant <id>', 'Tenant ID')
34
+ .option('-k, --api-key <key>', 'API key (alternative to username/password)')
35
+ .option('--username <user>', 'Username')
36
+ .option('--password <pass>', 'Password')
37
+ .option('--insecure', 'Skip TLS certificate verification')
38
+ .option('-y, --yes', 'Non-interactive mode (skip prompts, use provided values)')
39
+ .option('--skip-test', 'Skip connection test after saving config')
40
+ .addHelpText('after', `
41
+ Examples:
42
+ # Interactive login (prompts for values)
43
+ zn-vault-agent login
44
+
45
+ # Login with API key (recommended for automation)
46
+ zn-vault-agent login --url https://vault.example.com --tenant acme --api-key znv_abc123
47
+
48
+ # Login with username/password
49
+ zn-vault-agent login -u https://vault.example.com -t acme --username admin --password secret
50
+
51
+ # Skip TLS verification (self-signed certs)
52
+ zn-vault-agent login --url https://localhost:8443 --tenant dev --api-key znv_... --insecure
53
+
54
+ # Non-interactive with connection test skipped
55
+ zn-vault-agent login --url https://vault.example.com --tenant acme --api-key znv_... -y --skip-test
56
+ `)
57
+ .action(async (options) => {
58
+ const config = loadConfig();
59
+ // Check if we can/should run non-interactively
60
+ const nonInteractive = options.yes || canRunNonInteractive(options);
61
+ let vaultUrl;
62
+ let tenantId;
63
+ let authMethod;
64
+ let apiKey;
65
+ let username;
66
+ let password;
67
+ let insecure;
68
+ if (nonInteractive) {
69
+ // Non-interactive mode: use CLI values directly
70
+ if (!options.url) {
71
+ console.error(chalk.red('Error:'), 'Vault URL is required (--url)');
72
+ process.exit(1);
73
+ }
74
+ if (!isValidUrl(options.url)) {
75
+ console.error(chalk.red('Error:'), 'Invalid URL format');
76
+ process.exit(1);
77
+ }
78
+ if (!options.tenant) {
79
+ console.error(chalk.red('Error:'), 'Tenant ID is required (--tenant)');
80
+ process.exit(1);
81
+ }
82
+ if (!options.apiKey && (!options.username || !options.password)) {
83
+ console.error(chalk.red('Error:'), 'Authentication required: provide --api-key OR (--username AND --password)');
84
+ process.exit(1);
85
+ }
86
+ vaultUrl = options.url;
87
+ tenantId = options.tenant;
88
+ insecure = options.insecure || false;
89
+ if (options.apiKey) {
90
+ authMethod = 'apiKey';
91
+ apiKey = options.apiKey;
92
+ }
93
+ else {
94
+ authMethod = 'password';
95
+ username = options.username;
96
+ password = options.password;
97
+ }
98
+ console.log();
99
+ console.log(chalk.bold('ZN-Vault Agent Configuration') + ' (non-interactive)');
100
+ console.log();
101
+ console.log(` Vault URL: ${vaultUrl}`);
102
+ console.log(` Tenant ID: ${tenantId}`);
103
+ console.log(` Auth Method: ${authMethod === 'apiKey' ? 'API Key' : 'Username/Password'}`);
104
+ console.log(` TLS Verify: ${insecure ? 'disabled' : 'enabled'}`);
105
+ console.log();
106
+ }
107
+ else {
108
+ // Interactive mode: prompt for values
109
+ console.log();
110
+ console.log(chalk.bold('ZN-Vault Agent Configuration'));
111
+ console.log();
112
+ const answers = await inquirer.prompt([
113
+ {
114
+ type: 'input',
115
+ name: 'vaultUrl',
116
+ message: 'Vault URL:',
117
+ default: options.url || config.vaultUrl || 'https://vault.zincapp.com',
118
+ validate: (input) => {
119
+ try {
120
+ new URL(input);
121
+ return true;
122
+ }
123
+ catch {
124
+ return 'Please enter a valid URL';
125
+ }
126
+ },
127
+ },
128
+ {
129
+ type: 'input',
130
+ name: 'tenantId',
131
+ message: 'Tenant ID:',
132
+ default: options.tenant || config.tenantId,
133
+ validate: (input) => input.length > 0 || 'Tenant ID is required',
134
+ },
135
+ {
136
+ type: 'list',
137
+ name: 'authMethod',
138
+ message: 'Authentication method:',
139
+ choices: [
140
+ { name: 'API Key (recommended for agents)', value: 'apiKey' },
141
+ { name: 'Username/Password', value: 'password' },
142
+ ],
143
+ default: options.apiKey ? 'apiKey' : (config.auth.apiKey ? 'apiKey' : 'password'),
144
+ },
145
+ {
146
+ type: 'input',
147
+ name: 'apiKey',
148
+ message: 'API Key:',
149
+ when: (ans) => ans.authMethod === 'apiKey',
150
+ default: options.apiKey || config.auth.apiKey,
151
+ validate: (input) => input.length > 0 || 'API key is required',
152
+ },
153
+ {
154
+ type: 'input',
155
+ name: 'username',
156
+ message: 'Username:',
157
+ when: (ans) => ans.authMethod === 'password',
158
+ default: options.username || config.auth.username,
159
+ validate: (input) => input.length > 0 || 'Username is required',
160
+ },
161
+ {
162
+ type: 'password',
163
+ name: 'password',
164
+ message: 'Password:',
165
+ when: (ans) => ans.authMethod === 'password',
166
+ mask: '*',
167
+ validate: (input) => input.length > 0 || 'Password is required',
168
+ },
169
+ {
170
+ type: 'confirm',
171
+ name: 'insecure',
172
+ message: 'Skip TLS verification? (for self-signed certs)',
173
+ default: options.insecure || config.insecure || false,
174
+ },
175
+ ]);
176
+ vaultUrl = answers.vaultUrl;
177
+ tenantId = answers.tenantId;
178
+ authMethod = answers.authMethod;
179
+ apiKey = answers.apiKey;
180
+ username = answers.username;
181
+ password = answers.password;
182
+ insecure = answers.insecure;
183
+ }
184
+ // Update config
185
+ config.vaultUrl = vaultUrl;
186
+ config.tenantId = tenantId;
187
+ config.insecure = insecure;
188
+ if (authMethod === 'apiKey') {
189
+ config.auth = { apiKey: apiKey };
190
+ }
191
+ else {
192
+ config.auth = {
193
+ username: username,
194
+ password: password,
195
+ };
196
+ }
197
+ // Save config first (needed for API calls)
198
+ saveConfig(config);
199
+ // Skip connection test if requested
200
+ if (options.skipTest) {
201
+ console.log(chalk.green('✓') + ` Configuration saved to: ${getConfigPath()}`);
202
+ console.log(chalk.yellow('!') + ' Connection test skipped (--skip-test)');
203
+ return;
204
+ }
205
+ // Test connection
206
+ const spinner = ora('Testing connection...').start();
207
+ try {
208
+ if (authMethod === 'password') {
209
+ await apiLogin(username, password);
210
+ }
211
+ // Try to list certificates
212
+ const certs = await listCertificates();
213
+ spinner.succeed('Connection successful!');
214
+ console.log();
215
+ console.log(chalk.green('✓') + ` Configuration saved to: ${getConfigPath()}`);
216
+ console.log(chalk.green('✓') + ` Found ${certs.total} certificate(s) in vault`);
217
+ console.log();
218
+ console.log('Next steps:');
219
+ console.log(' 1. Add certificates to sync: ' + chalk.cyan('zn-vault-agent add'));
220
+ console.log(' 2. List configured targets: ' + chalk.cyan('zn-vault-agent list'));
221
+ console.log(' 3. Sync certificates now: ' + chalk.cyan('zn-vault-agent sync'));
222
+ console.log(' 4. Start daemon: ' + chalk.cyan('zn-vault-agent start'));
223
+ console.log();
224
+ }
225
+ catch (err) {
226
+ spinner.fail('Connection failed');
227
+ console.error(chalk.red('Error:'), err instanceof Error ? err.message : String(err));
228
+ console.log();
229
+ console.log('Configuration was saved. Please check your credentials and try again.');
230
+ process.exit(1);
231
+ }
232
+ });
233
+ }
234
+ //# sourceMappingURL=login.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"login.js","sourceRoot":"","sources":["../../src/commands/login.ts"],"names":[],"mappings":"AACA,OAAO,QAAQ,MAAM,UAAU,CAAC;AAChC,OAAO,GAAG,MAAM,KAAK,CAAC;AACtB,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACzE,OAAO,EAAE,KAAK,IAAI,QAAQ,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAapE;;GAEG;AACH,SAAS,oBAAoB,CAAC,OAAqB;IACjD,MAAM,MAAM,GAAG,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC;IAC7B,MAAM,SAAS,GAAG,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC;IACnC,MAAM,SAAS,GAAG,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC;IACnC,MAAM,WAAW,GAAG,CAAC,CAAC,OAAO,CAAC,QAAQ,IAAI,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC;IAE7D,OAAO,MAAM,IAAI,SAAS,IAAI,CAAC,SAAS,IAAI,WAAW,CAAC,CAAC;AAC3D,CAAC;AAED;;GAEG;AACH,SAAS,UAAU,CAAC,GAAW;IAC7B,IAAI,CAAC;QACH,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC;QACb,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,OAAgB;IACnD,OAAO;SACJ,OAAO,CAAC,OAAO,CAAC;SAChB,WAAW,CAAC,6CAA6C,CAAC;SAC1D,MAAM,CAAC,iBAAiB,EAAE,kBAAkB,CAAC;SAC7C,MAAM,CAAC,mBAAmB,EAAE,WAAW,CAAC;SACxC,MAAM,CAAC,qBAAqB,EAAE,4CAA4C,CAAC;SAC3E,MAAM,CAAC,mBAAmB,EAAE,UAAU,CAAC;SACvC,MAAM,CAAC,mBAAmB,EAAE,UAAU,CAAC;SACvC,MAAM,CAAC,YAAY,EAAE,mCAAmC,CAAC;SACzD,MAAM,CAAC,WAAW,EAAE,0DAA0D,CAAC;SAC/E,MAAM,CAAC,aAAa,EAAE,0CAA0C,CAAC;SACjE,WAAW,CAAC,OAAO,EAAE;;;;;;;;;;;;;;;;CAgBzB,CAAC;SACG,MAAM,CAAC,KAAK,EAAE,OAAqB,EAAE,EAAE;QACtC,MAAM,MAAM,GAAG,UAAU,EAAE,CAAC;QAE5B,+CAA+C;QAC/C,MAAM,cAAc,GAAG,OAAO,CAAC,GAAG,IAAI,oBAAoB,CAAC,OAAO,CAAC,CAAC;QAEpE,IAAI,QAAgB,CAAC;QACrB,IAAI,QAAgB,CAAC;QACrB,IAAI,UAAiC,CAAC;QACtC,IAAI,MAA0B,CAAC;QAC/B,IAAI,QAA4B,CAAC;QACjC,IAAI,QAA4B,CAAC;QACjC,IAAI,QAAiB,CAAC;QAEtB,IAAI,cAAc,EAAE,CAAC;YACnB,gDAAgD;YAChD,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC;gBACjB,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,+BAA+B,CAAC,CAAC;gBACpE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;YACD,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC7B,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,oBAAoB,CAAC,CAAC;gBACzD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;YACD,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;gBACpB,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,kCAAkC,CAAC,CAAC;gBACvE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;YACD,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,CAAC,OAAO,CAAC,QAAQ,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAChE,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,2EAA2E,CAAC,CAAC;gBAChH,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;YAED,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC;YACvB,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC;YAC1B,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,KAAK,CAAC;YAErC,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;gBACnB,UAAU,GAAG,QAAQ,CAAC;gBACtB,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;YAC1B,CAAC;iBAAM,CAAC;gBACN,UAAU,GAAG,UAAU,CAAC;gBACxB,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;gBAC5B,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;YAC9B,CAAC;YAED,OAAO,CAAC,GAAG,EAAE,CAAC;YACd,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,8BAA8B,CAAC,GAAG,oBAAoB,CAAC,CAAC;YAC/E,OAAO,CAAC,GAAG,EAAE,CAAC;YACd,OAAO,CAAC,GAAG,CAAC,kBAAkB,QAAQ,EAAE,CAAC,CAAC;YAC1C,OAAO,CAAC,GAAG,CAAC,kBAAkB,QAAQ,EAAE,CAAC,CAAC;YAC1C,OAAO,CAAC,GAAG,CAAC,kBAAkB,UAAU,KAAK,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,mBAAmB,EAAE,CAAC,CAAC;YAC3F,OAAO,CAAC,GAAG,CAAC,kBAAkB,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC;YACnE,OAAO,CAAC,GAAG,EAAE,CAAC;QAChB,CAAC;aAAM,CAAC;YACN,sCAAsC;YACtC,OAAO,CAAC,GAAG,EAAE,CAAC;YACd,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC,CAAC;YACxD,OAAO,CAAC,GAAG,EAAE,CAAC;YAEd,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAC;gBACpC;oBACE,IAAI,EAAE,OAAO;oBACb,IAAI,EAAE,UAAU;oBAChB,OAAO,EAAE,YAAY;oBACrB,OAAO,EAAE,OAAO,CAAC,GAAG,IAAI,MAAM,CAAC,QAAQ,IAAI,2BAA2B;oBACtE,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE;wBAClB,IAAI,CAAC;4BACH,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC;4BACf,OAAO,IAAI,CAAC;wBACd,CAAC;wBAAC,MAAM,CAAC;4BACP,OAAO,0BAA0B,CAAC;wBACpC,CAAC;oBACH,CAAC;iBACF;gBACD;oBACE,IAAI,EAAE,OAAO;oBACb,IAAI,EAAE,UAAU;oBAChB,OAAO,EAAE,YAAY;oBACrB,OAAO,EAAE,OAAO,CAAC,MAAM,IAAI,MAAM,CAAC,QAAQ;oBAC1C,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,uBAAuB;iBACjE;gBACD;oBACE,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,YAAY;oBAClB,OAAO,EAAE,wBAAwB;oBACjC,OAAO,EAAE;wBACP,EAAE,IAAI,EAAE,kCAAkC,EAAE,KAAK,EAAE,QAAQ,EAAE;wBAC7D,EAAE,IAAI,EAAE,mBAAmB,EAAE,KAAK,EAAE,UAAU,EAAE;qBACjD;oBACD,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC;iBAClF;gBACD;oBACE,IAAI,EAAE,OAAO;oBACb,IAAI,EAAE,QAAQ;oBACd,OAAO,EAAE,UAAU;oBACnB,IAAI,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,UAAU,KAAK,QAAQ;oBAC1C,OAAO,EAAE,OAAO,CAAC,MAAM,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM;oBAC7C,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,qBAAqB;iBAC/D;gBACD;oBACE,IAAI,EAAE,OAAO;oBACb,IAAI,EAAE,UAAU;oBAChB,OAAO,EAAE,WAAW;oBACpB,IAAI,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,UAAU,KAAK,UAAU;oBAC5C,OAAO,EAAE,OAAO,CAAC,QAAQ,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ;oBACjD,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,sBAAsB;iBAChE;gBACD;oBACE,IAAI,EAAE,UAAU;oBAChB,IAAI,EAAE,UAAU;oBAChB,OAAO,EAAE,WAAW;oBACpB,IAAI,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,UAAU,KAAK,UAAU;oBAC5C,IAAI,EAAE,GAAG;oBACT,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,sBAAsB;iBAChE;gBACD;oBACE,IAAI,EAAE,SAAS;oBACf,IAAI,EAAE,UAAU;oBAChB,OAAO,EAAE,gDAAgD;oBACzD,OAAO,EAAE,OAAO,CAAC,QAAQ,IAAI,MAAM,CAAC,QAAQ,IAAI,KAAK;iBACtD;aACF,CAAC,CAAC;YAEH,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;YAC5B,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;YAC5B,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;YAChC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;YACxB,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;YAC5B,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;YAC5B,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;QAC9B,CAAC;QAED,gBAAgB;QAChB,MAAM,CAAC,QAAQ,GAAG,QAAQ,CAAC;QAC3B,MAAM,CAAC,QAAQ,GAAG,QAAQ,CAAC;QAC3B,MAAM,CAAC,QAAQ,GAAG,QAAQ,CAAC;QAE3B,IAAI,UAAU,KAAK,QAAQ,EAAE,CAAC;YAC5B,MAAM,CAAC,IAAI,GAAG,EAAE,MAAM,EAAE,MAAO,EAAE,CAAC;QACpC,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,IAAI,GAAG;gBACZ,QAAQ,EAAE,QAAS;gBACnB,QAAQ,EAAE,QAAS;aACpB,CAAC;QACJ,CAAC;QAED,2CAA2C;QAC3C,UAAU,CAAC,MAAM,CAAC,CAAC;QAEnB,oCAAoC;QACpC,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;YACrB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,4BAA4B,aAAa,EAAE,EAAE,CAAC,CAAC;YAC9E,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,wCAAwC,CAAC,CAAC;YAC1E,OAAO;QACT,CAAC;QAED,kBAAkB;QAClB,MAAM,OAAO,GAAG,GAAG,CAAC,uBAAuB,CAAC,CAAC,KAAK,EAAE,CAAC;QAErD,IAAI,CAAC;YACH,IAAI,UAAU,KAAK,UAAU,EAAE,CAAC;gBAC9B,MAAM,QAAQ,CAAC,QAAS,EAAE,QAAS,CAAC,CAAC;YACvC,CAAC;YAED,2BAA2B;YAC3B,MAAM,KAAK,GAAG,MAAM,gBAAgB,EAAE,CAAC;YAEvC,OAAO,CAAC,OAAO,CAAC,wBAAwB,CAAC,CAAC;YAE1C,OAAO,CAAC,GAAG,EAAE,CAAC;YACd,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,4BAA4B,aAAa,EAAE,EAAE,CAAC,CAAC;YAC9E,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,UAAU,KAAK,CAAC,KAAK,0BAA0B,CAAC,CAAC;YAChF,OAAO,CAAC,GAAG,EAAE,CAAC;YACd,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;YAC3B,OAAO,CAAC,GAAG,CAAC,iCAAiC,GAAG,KAAK,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC,CAAC;YAClF,OAAO,CAAC,GAAG,CAAC,iCAAiC,GAAG,KAAK,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC,CAAC;YACnF,OAAO,CAAC,GAAG,CAAC,iCAAiC,GAAG,KAAK,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC,CAAC;YACnF,OAAO,CAAC,GAAG,CAAC,iCAAiC,GAAG,KAAK,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC,CAAC;YACpF,OAAO,CAAC,GAAG,EAAE,CAAC;QAChB,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;YAClC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;YACrF,OAAO,CAAC,GAAG,EAAE,CAAC;YACd,OAAO,CAAC,GAAG,CAAC,uEAAuE,CAAC,CAAC;YACrF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC,CAAC,CAAC;AACP,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { Command } from 'commander';
2
+ export declare function registerSecretsCommands(program: Command): void;
3
+ //# sourceMappingURL=secrets.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"secrets.d.ts","sourceRoot":"","sources":["../../src/commands/secrets.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAqKpC,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA0V9D"}