@factiii/stack 0.1.41 → 0.1.44

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 (67) hide show
  1. package/dist/cli/deploy-secrets.d.ts.map +1 -1
  2. package/dist/cli/deploy-secrets.js +5 -52
  3. package/dist/cli/deploy-secrets.js.map +1 -1
  4. package/dist/cli/deploy.d.ts.map +1 -1
  5. package/dist/cli/deploy.js +1 -24
  6. package/dist/cli/deploy.js.map +1 -1
  7. package/dist/cli/dev-sync.d.ts.map +1 -1
  8. package/dist/cli/dev-sync.js +5 -20
  9. package/dist/cli/dev-sync.js.map +1 -1
  10. package/dist/cli/execute-plugin-command.d.ts.map +1 -1
  11. package/dist/cli/execute-plugin-command.js +2 -57
  12. package/dist/cli/execute-plugin-command.js.map +1 -1
  13. package/dist/cli/fix.d.ts.map +1 -1
  14. package/dist/cli/fix.js +3 -58
  15. package/dist/cli/fix.js.map +1 -1
  16. package/dist/cli/init.d.ts +5 -7
  17. package/dist/cli/init.d.ts.map +1 -1
  18. package/dist/cli/init.js +17 -298
  19. package/dist/cli/init.js.map +1 -1
  20. package/dist/cli/pr-check.d.ts.map +1 -1
  21. package/dist/cli/pr-check.js +1 -17
  22. package/dist/cli/pr-check.js.map +1 -1
  23. package/dist/cli/scan.d.ts.map +1 -1
  24. package/dist/cli/scan.js +35 -51
  25. package/dist/cli/scan.js.map +1 -1
  26. package/dist/cli/secrets.d.ts.map +1 -1
  27. package/dist/cli/secrets.js +6 -15
  28. package/dist/cli/secrets.js.map +1 -1
  29. package/dist/cli/undeploy.d.ts.map +1 -1
  30. package/dist/cli/undeploy.js +2 -57
  31. package/dist/cli/undeploy.js.map +1 -1
  32. package/dist/generators/generate-stack-auto.d.ts.map +1 -1
  33. package/dist/generators/generate-stack-auto.js +15 -0
  34. package/dist/generators/generate-stack-auto.js.map +1 -1
  35. package/dist/generators/generate-stack-yml.d.ts +8 -20
  36. package/dist/generators/generate-stack-yml.d.ts.map +1 -1
  37. package/dist/generators/generate-stack-yml.js +28 -204
  38. package/dist/generators/generate-stack-yml.js.map +1 -1
  39. package/dist/generators/index.d.ts +1 -1
  40. package/dist/generators/index.d.ts.map +1 -1
  41. package/dist/generators/index.js +2 -3
  42. package/dist/generators/index.js.map +1 -1
  43. package/dist/plugins/pipelines/factiii/index.d.ts.map +1 -1
  44. package/dist/plugins/pipelines/factiii/index.js +2 -0
  45. package/dist/plugins/pipelines/factiii/index.js.map +1 -1
  46. package/dist/plugins/pipelines/factiii/scanfix/secrets.d.ts.map +1 -1
  47. package/dist/plugins/pipelines/factiii/scanfix/secrets.js +1 -2
  48. package/dist/plugins/pipelines/factiii/scanfix/secrets.js.map +1 -1
  49. package/dist/plugins/pipelines/factiii/scanfix/vault.d.ts +13 -0
  50. package/dist/plugins/pipelines/factiii/scanfix/vault.d.ts.map +1 -0
  51. package/dist/plugins/pipelines/factiii/scanfix/vault.js +97 -0
  52. package/dist/plugins/pipelines/factiii/scanfix/vault.js.map +1 -0
  53. package/dist/plugins/servers/mac/staging.d.ts.map +1 -1
  54. package/dist/plugins/servers/mac/staging.js +9 -8
  55. package/dist/plugins/servers/mac/staging.js.map +1 -1
  56. package/dist/utils/config-helpers.d.ts +8 -0
  57. package/dist/utils/config-helpers.d.ts.map +1 -1
  58. package/dist/utils/config-helpers.js +50 -0
  59. package/dist/utils/config-helpers.js.map +1 -1
  60. package/dist/utils/secret-prompts.d.ts +2 -0
  61. package/dist/utils/secret-prompts.d.ts.map +1 -1
  62. package/dist/utils/secret-prompts.js +14 -2
  63. package/dist/utils/secret-prompts.js.map +1 -1
  64. package/dist/utils/ssh-helper.d.ts.map +1 -1
  65. package/dist/utils/ssh-helper.js +16 -8
  66. package/dist/utils/ssh-helper.js.map +1 -1
  67. package/package.json +1 -1
package/dist/cli/init.js CHANGED
@@ -2,14 +2,12 @@
2
2
  /**
3
3
  * Init Command
4
4
  *
5
- * Handles interactive setup that scanfixes cannot do:
6
- * - Vault password creation (requires user input)
7
- * - Secret prompting (SSH keys, AWS credentials)
8
- * - --force flag to regenerate stack.yml from scratch
5
+ * Scans the codebase and creates stack.yml with auto-detected settings
6
+ * and EXAMPLE_ placeholder values for the user to fill in.
9
7
  *
10
- * Config file creation (stack.yml, stackAuto.yml, stack.local.yml) and
11
- * gitignore management are now handled by bootstrap scanfixes in the
12
- * factiii pipeline plugin. Running `npx stack` will auto-create them.
8
+ * This command only initializes config files — it does not fix anything.
9
+ * Vault setup, secrets, and all other fixes are handled by scanfixes
10
+ * in the factiii pipeline (run: npx stack scan / npx stack fix).
13
11
  */
14
12
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
15
13
  if (k2 === undefined) k2 = k;
@@ -44,232 +42,22 @@ var __importStar = (this && this.__importStar) || (function () {
44
42
  return result;
45
43
  };
46
44
  })();
47
- var __importDefault = (this && this.__importDefault) || function (mod) {
48
- return (mod && mod.__esModule) ? mod : { "default": mod };
49
- };
50
45
  Object.defineProperty(exports, "__esModule", { value: true });
51
46
  exports.init = init;
52
- const path = __importStar(require("path"));
53
- const config_files_js_1 = require("../constants/config-files.js");
54
47
  const fs = __importStar(require("fs"));
55
- const os = __importStar(require("os"));
56
- const js_yaml_1 = __importDefault(require("js-yaml"));
57
- const child_process_1 = require("child_process");
48
+ const config_files_js_1 = require("../constants/config-files.js");
58
49
  const generate_stack_yml_js_1 = require("../generators/generate-stack-yml.js");
59
- const secret_prompts_js_1 = require("../utils/secret-prompts.js");
60
- const config_helpers_js_1 = require("../utils/config-helpers.js");
61
- /**
62
- * Check if ansible-vault CLI is available
63
- */
64
- function checkAnsibleVault() {
65
- try {
66
- (0, child_process_1.execSync)('ansible-vault --version', { stdio: 'pipe' });
67
- return true;
68
- }
69
- catch {
70
- return false;
71
- }
72
- }
73
- /**
74
- * Ensure group_vars/all/ directory and encrypted vault file exist.
75
- * Returns what was fixed (empty array if nothing needed fixing).
76
- */
77
- async function ensureVaultSetup(rootDir, _vaultPassFile) {
78
- const fixed = [];
79
- const groupVarsDir = path.join(rootDir, 'group_vars', 'all');
80
- if (!fs.existsSync(groupVarsDir)) {
81
- fs.mkdirSync(groupVarsDir, { recursive: true });
82
- fixed.push('Created ' + groupVarsDir);
83
- }
84
- const vaultFilePath = path.join(rootDir, 'group_vars', 'all', 'vault.yml');
85
- if (!fs.existsSync(vaultFilePath)) {
86
- try {
87
- const { AnsibleVaultSecrets } = await Promise.resolve().then(() => __importStar(require('../utils/ansible-vault-secrets.js')));
88
- const vault = new AnsibleVaultSecrets({
89
- vault_path: 'group_vars/all/vault.yml',
90
- vault_password_file: '~/.vault_pass',
91
- rootDir,
92
- });
93
- await vault.setSecret('_initialized', 'true');
94
- fixed.push('Created encrypted vault at group_vars/all/vault.yml');
95
- }
96
- catch (e) {
97
- const msg = e instanceof Error ? e.message : String(e);
98
- fixed.push('Failed to create vault: ' + msg);
99
- }
100
- }
101
- return fixed;
102
- }
103
- /**
104
- * Extract SSH key from vault to ~/.ssh/{stage}_deploy_key
105
- * With safety check: asks before overwriting existing key
106
- */
107
- async function extractSSHKeyToFile(vault, stage, _rootDir) {
108
- const keyName = stage + '_deploy_key';
109
- const sshDir = path.join(os.homedir(), '.ssh');
110
- const keyPath = path.join(sshDir, keyName);
111
- // Safety check: don't overwrite existing keys without asking
112
- if (fs.existsSync(keyPath)) {
113
- const overwrite = await (0, secret_prompts_js_1.confirm)(' SSH key already exists at ' + keyPath + ' - overwrite?', false);
114
- if (!overwrite) {
115
- console.log(' [--] Keeping existing key at ' + keyPath);
116
- return;
117
- }
118
- }
119
- try {
120
- const key = await vault.getSSHKey(stage);
121
- if (!key) {
122
- console.log(' [!] No ' + stage.toUpperCase() + '_SSH key found in vault');
123
- return;
124
- }
125
- if (!fs.existsSync(sshDir)) {
126
- fs.mkdirSync(sshDir, { recursive: true });
127
- }
128
- fs.writeFileSync(keyPath, key, 'utf8');
129
- try {
130
- fs.chmodSync(keyPath, 0o600);
131
- }
132
- catch {
133
- // Windows doesn't support chmod
134
- }
135
- console.log(' [OK] Wrote SSH key to ' + keyPath);
136
- }
137
- catch (e) {
138
- const msg = e instanceof Error ? e.message : String(e);
139
- console.log(' [!] Failed to extract SSH key: ' + msg);
140
- }
141
- }
142
- /**
143
- * Load config and prompt for missing secrets (SSH keys, AWS credentials)
144
- */
145
- async function promptForMissingSecrets(rootDir) {
146
- const configPath = (0, config_files_js_1.getStackConfigPath)(rootDir);
147
- if (!fs.existsSync(configPath))
148
- return;
149
- let config;
150
- try {
151
- config = js_yaml_1.default.load(fs.readFileSync(configPath, 'utf8')) ?? {};
152
- }
153
- catch {
154
- return;
155
- }
156
- if (!config.ansible?.vault_path)
157
- return;
158
- const environments = (0, config_helpers_js_1.extractEnvironments)(config);
159
- const hasStaging = !!environments.staging;
160
- const hasProd = !!environments.prod || !!environments.production;
161
- const hasAWS = Object.values(environments).some((env) => env.pipeline === 'aws' || env.access_key_id);
162
- if (!hasStaging && !hasProd && !hasAWS)
163
- return;
164
- let vault;
165
- try {
166
- const { AnsibleVaultSecrets } = await Promise.resolve().then(() => __importStar(require('../utils/ansible-vault-secrets.js')));
167
- vault = new AnsibleVaultSecrets({
168
- vault_path: config.ansible.vault_path,
169
- vault_password_file: config.ansible.vault_password_file ?? '~/.vault_pass',
170
- rootDir,
171
- });
172
- }
173
- catch {
174
- return;
175
- }
176
- console.log('\n Checking secrets...\n');
177
- // Check STAGING_SSH
178
- if (hasStaging) {
179
- try {
180
- const check = await vault.checkSecrets(['STAGING_SSH']);
181
- if (check.missing.includes('STAGING_SSH')) {
182
- const addNow = await (0, secret_prompts_js_1.confirm)(' Add staging SSH key now? (skip to do later with: npx stack secrets set STAGING_SSH)', false);
183
- if (addNow) {
184
- const value = await (0, secret_prompts_js_1.promptForSecret)('STAGING_SSH', config);
185
- if (value) {
186
- await vault.setSecret('STAGING_SSH', value);
187
- console.log(' [OK] STAGING_SSH stored in vault');
188
- await extractSSHKeyToFile(vault, 'staging', rootDir);
189
- }
190
- }
191
- else {
192
- console.log(' [--] Skipped STAGING_SSH');
193
- }
194
- }
195
- else {
196
- console.log(' [OK] STAGING_SSH already in vault');
197
- }
198
- }
199
- catch (e) {
200
- const msg = e instanceof Error ? e.message : String(e);
201
- console.log(' [!] Could not check STAGING_SSH: ' + msg);
202
- }
203
- }
204
- // Check PROD_SSH
205
- if (hasProd) {
206
- try {
207
- const check = await vault.checkSecrets(['PROD_SSH']);
208
- if (check.missing.includes('PROD_SSH')) {
209
- const addNow = await (0, secret_prompts_js_1.confirm)(' Add prod SSH key now? (skip to do later with: npx stack secrets set PROD_SSH)', false);
210
- if (addNow) {
211
- const value = await (0, secret_prompts_js_1.promptForSecret)('PROD_SSH', config);
212
- if (value) {
213
- await vault.setSecret('PROD_SSH', value);
214
- console.log(' [OK] PROD_SSH stored in vault');
215
- await extractSSHKeyToFile(vault, 'prod', rootDir);
216
- }
217
- }
218
- else {
219
- console.log(' [--] Skipped PROD_SSH');
220
- }
221
- }
222
- else {
223
- console.log(' [OK] PROD_SSH already in vault');
224
- }
225
- }
226
- catch (e) {
227
- const msg = e instanceof Error ? e.message : String(e);
228
- console.log(' [!] Could not check PROD_SSH: ' + msg);
229
- }
230
- }
231
- // Check AWS_SECRET_ACCESS_KEY
232
- if (hasAWS) {
233
- try {
234
- const check = await vault.checkSecrets(['AWS_SECRET_ACCESS_KEY']);
235
- if (check.missing.includes('AWS_SECRET_ACCESS_KEY')) {
236
- const addNow = await (0, secret_prompts_js_1.confirm)(' Add AWS Secret Access Key now?', false);
237
- if (addNow) {
238
- const value = await (0, secret_prompts_js_1.promptForSecret)('AWS_SECRET_ACCESS_KEY', config);
239
- if (value) {
240
- await vault.setSecret('AWS_SECRET_ACCESS_KEY', value);
241
- console.log(' [OK] AWS_SECRET_ACCESS_KEY stored in vault');
242
- }
243
- }
244
- else {
245
- console.log(' [--] Skipped AWS_SECRET_ACCESS_KEY');
246
- }
247
- }
248
- else {
249
- console.log(' [OK] AWS_SECRET_ACCESS_KEY already in vault');
250
- }
251
- }
252
- catch (e) {
253
- const msg = e instanceof Error ? e.message : String(e);
254
- console.log(' [!] Could not check AWS_SECRET_ACCESS_KEY: ' + msg);
255
- }
256
- }
257
- }
258
50
  async function init(options = {}) {
259
51
  const rootDir = options.rootDir ?? process.cwd();
260
52
  const configPath = (0, config_files_js_1.getStackConfigPath)(rootDir);
261
53
  const isFirstRun = !fs.existsSync(configPath);
262
- // ============================================================
263
- // Step 1: Create stack.yml (scan codebase + generate template)
264
- // ============================================================
265
54
  if (options.force) {
266
55
  console.log('Regenerating ' + config_files_js_1.STACK_CONFIG_FILENAME + '...\n');
267
- (0, generate_stack_yml_js_1.generateFactiiiYml)(rootDir, { force: true });
56
+ (0, generate_stack_yml_js_1.generateSmartStackYml)(rootDir, { force: true });
268
57
  }
269
58
  else if (isFirstRun) {
270
59
  console.log('Scanning codebase...\n');
271
- const { generateSmartStackYml } = await Promise.resolve().then(() => __importStar(require('../generators/generate-stack-yml.js')));
272
- const created = generateSmartStackYml(rootDir);
60
+ const created = (0, generate_stack_yml_js_1.generateSmartStackYml)(rootDir);
273
61
  if (created) {
274
62
  console.log('');
275
63
  console.log(' ' + config_files_js_1.STACK_CONFIG_FILENAME + ' is the configuration for everything.');
@@ -281,84 +69,15 @@ async function init(options = {}) {
281
69
  console.log('[OK] ' + config_files_js_1.STACK_CONFIG_FILENAME + ' already exists');
282
70
  console.log(' (use --force to regenerate)\n');
283
71
  }
284
- // ============================================================
285
- // Step 2: Interactive vault and secrets setup
286
- // ============================================================
287
- await setupVaultAndSecrets(rootDir);
288
- }
289
- /**
290
- * Interactive vault password creation and secret prompting.
291
- * This is the part that cannot be automated via scanfixes.
292
- */
293
- async function setupVaultAndSecrets(rootDir) {
294
- console.log('Checking prerequisites...\n');
295
- const hasAnsibleVault = checkAnsibleVault();
296
- if (hasAnsibleVault) {
297
- console.log(' [OK] ansible-vault is installed');
298
- }
299
- else {
300
- console.log(' [!] ansible-vault not found');
301
- console.log(' Ansible Vault is required for managing secrets.');
302
- console.log(' Install:');
303
- if (process.platform === 'darwin') {
304
- console.log(' brew install ansible');
305
- }
306
- else if (process.platform === 'win32') {
307
- console.log(' pip install ansible');
308
- }
309
- else {
310
- console.log(' sudo apt install ansible (Debian/Ubuntu)');
311
- console.log(' sudo yum install ansible (RHEL/CentOS)');
312
- }
313
- return;
314
- }
315
- // Vault setup (interactive)
316
- const vaultPassFile = path.join(os.homedir(), '.vault_pass');
317
- const hasExistingVaultPass = fs.existsSync(vaultPassFile);
318
- if (hasExistingVaultPass) {
319
- console.log(' [OK] Vault password file exists at ' + vaultPassFile);
320
- // Auto-create vault structure if password exists
321
- const vaultFixes = await ensureVaultSetup(rootDir, vaultPassFile);
322
- for (const fix of vaultFixes) {
323
- console.log(' [OK] ' + fix);
324
- }
325
- }
326
- else {
327
- console.log('');
328
- const setupVault = await (0, secret_prompts_js_1.confirm)('Set up Ansible Vault for secrets now?', true);
329
- if (setupVault) {
330
- console.log('\n Create a vault password (keep this safe - you need it to access secrets):');
331
- const vaultPassword = await (0, secret_prompts_js_1.promptSingleLine)(' Vault password: ', { hidden: true });
332
- if (vaultPassword && vaultPassword.trim().length > 0) {
333
- fs.writeFileSync(vaultPassFile, vaultPassword.trim(), 'utf8');
334
- try {
335
- fs.chmodSync(vaultPassFile, 0o600);
336
- }
337
- catch {
338
- // Windows doesn't support chmod - that's OK
339
- }
340
- console.log(' [OK] Vault password saved to ' + vaultPassFile);
341
- const vaultFixes = await ensureVaultSetup(rootDir, vaultPassFile);
342
- for (const fix of vaultFixes) {
343
- console.log(' [OK] ' + fix);
344
- }
345
- }
346
- else {
347
- console.log(' [!] Skipped vault setup (no password provided)');
348
- }
349
- }
350
- else {
351
- console.log(' [!] Skipped vault setup. Set up later:');
352
- console.log(' 1. Create vault password: echo "your-password" > ~/.vault_pass');
353
- console.log(' 2. Store a secret: npx stack secrets set STAGING_SSH');
354
- }
355
- }
356
- // Prompt for missing secrets (SSH keys, AWS credentials)
357
- await promptForMissingSecrets(rootDir);
358
- console.log('\n ────────────────────────────────────────────────');
359
- console.log(' Config files are managed by `npx stack` (scan/fix).');
360
- console.log(' This command only handles vault and secrets setup.');
361
- console.log(' ────────────────────────────────────────────────\n');
72
+ console.log(' ────────────────────────────────────────────────');
73
+ console.log(' NEXT STEPS');
74
+ console.log(' ────────────────────────────────────────────────');
75
+ console.log('');
76
+ console.log(' 1. Replace all EXAMPLE_ values in ' + config_files_js_1.STACK_CONFIG_FILENAME);
77
+ console.log(' 2. npx stack scan -> check what needs fixing');
78
+ console.log(' 3. npx stack fix -> auto-fix issues');
79
+ console.log(' 4. npx stack secrets set -> store SSH keys & credentials');
80
+ console.log('');
362
81
  }
363
82
  exports.default = init;
364
83
  //# sourceMappingURL=init.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/cli/init.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/cli/init.ts"],"names":[],"mappings":";AAAA;;;;;;;;;GASG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAOH,oBA+BC;AApCD,uCAAyB;AACzB,kEAAyF;AACzF,+EAA4E;AAGrE,KAAK,UAAU,IAAI,CAAC,UAAuB,EAAE;IAClD,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;IACjD,MAAM,UAAU,GAAG,IAAA,oCAAkB,EAAC,OAAO,CAAC,CAAC;IAC/C,MAAM,UAAU,GAAG,CAAC,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;IAE9C,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;QAClB,OAAO,CAAC,GAAG,CAAC,eAAe,GAAG,uCAAqB,GAAG,OAAO,CAAC,CAAC;QAC/D,IAAA,6CAAqB,EAAC,OAAO,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IAClD,CAAC;SAAM,IAAI,UAAU,EAAE,CAAC;QACtB,OAAO,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC;QACtC,MAAM,OAAO,GAAG,IAAA,6CAAqB,EAAC,OAAO,CAAC,CAAC;QAC/C,IAAI,OAAO,EAAE,CAAC;YACZ,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAChB,OAAO,CAAC,GAAG,CAAC,IAAI,GAAG,uCAAqB,GAAG,uCAAuC,CAAC,CAAC;YACpF,OAAO,CAAC,GAAG,CAAC,2DAA2D,CAAC,CAAC;YACzE,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAClB,CAAC;IACH,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,GAAG,CAAC,OAAO,GAAG,uCAAqB,GAAG,iBAAiB,CAAC,CAAC;QACjE,OAAO,CAAC,GAAG,CAAC,oCAAoC,CAAC,CAAC;IACpD,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,oDAAoD,CAAC,CAAC;IAClE,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IAC5B,OAAO,CAAC,GAAG,CAAC,oDAAoD,CAAC,CAAC;IAClE,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChB,OAAO,CAAC,GAAG,CAAC,sCAAsC,GAAG,uCAAqB,CAAC,CAAC;IAC5E,OAAO,CAAC,GAAG,CAAC,0DAA0D,CAAC,CAAC;IACxE,OAAO,CAAC,GAAG,CAAC,kDAAkD,CAAC,CAAC;IAChE,OAAO,CAAC,GAAG,CAAC,+DAA+D,CAAC,CAAC;IAC7E,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;AAClB,CAAC;AAED,kBAAe,IAAI,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"pr-check.d.ts","sourceRoot":"","sources":["../../src/cli/pr-check.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AA6BH,MAAM,WAAW,cAAc;IAC7B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAyBD;;GAEG;AACH,wBAAsB,OAAO,CAAC,OAAO,GAAE,cAAmB,GAAG,OAAO,CAAC,aAAa,CAAC,CAqFlF;AAED,eAAe,OAAO,CAAC"}
1
+ {"version":3,"file":"pr-check.d.ts","sourceRoot":"","sources":["../../src/cli/pr-check.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AA2BH,MAAM,WAAW,cAAc;IAC7B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAcD;;GAEG;AACH,wBAAsB,OAAO,CAAC,OAAO,GAAE,cAAmB,GAAG,OAAO,CAAC,aAAa,CAAC,CAqFlF;AAED,eAAe,OAAO,CAAC"}
@@ -42,32 +42,16 @@ var __importStar = (this && this.__importStar) || (function () {
42
42
  return result;
43
43
  };
44
44
  })();
45
- var __importDefault = (this && this.__importDefault) || function (mod) {
46
- return (mod && mod.__esModule) ? mod : { "default": mod };
47
- };
48
45
  Object.defineProperty(exports, "__esModule", { value: true });
49
46
  exports.prCheck = prCheck;
50
47
  const fs = __importStar(require("fs"));
51
48
  const path = __importStar(require("path"));
52
- const js_yaml_1 = __importDefault(require("js-yaml"));
53
49
  const config_files_js_1 = require("../constants/config-files.js");
54
50
  const index_js_1 = require("../plugins/index.js");
55
51
  const ssh_helper_js_1 = require("../utils/ssh-helper.js");
56
52
  const github_status_js_1 = require("../utils/github-status.js");
57
53
  const pr_check_js_1 = require("../plugins/pipelines/factiii/pr-check.js");
58
54
  const config_helpers_js_1 = require("../utils/config-helpers.js");
59
- function loadConfig(rootDir) {
60
- const configPath = (0, config_files_js_1.getStackConfigPath)(rootDir);
61
- if (!fs.existsSync(configPath)) {
62
- return {};
63
- }
64
- try {
65
- return js_yaml_1.default.load(fs.readFileSync(configPath, 'utf8')) ?? {};
66
- }
67
- catch {
68
- return {};
69
- }
70
- }
71
55
  function formatBuildReport(results) {
72
56
  const lines = ['## Factiii PR Check – Build Results\n'];
73
57
  for (const r of results) {
@@ -83,7 +67,7 @@ function formatBuildReport(results) {
83
67
  */
84
68
  async function prCheck(options = {}) {
85
69
  const rootDir = options.rootDir ?? process.cwd();
86
- const config = loadConfig(rootDir);
70
+ const config = (0, config_helpers_js_1.loadConfig)(rootDir);
87
71
  const environments = (0, config_helpers_js_1.extractEnvironments)(config);
88
72
  const stagingConfig = environments.staging;
89
73
  if (!stagingConfig?.domain) {
@@ -1 +1 @@
1
- {"version":3,"file":"pr-check.js","sourceRoot":"","sources":["../../src/cli/pr-check.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pr-check.js","sourceRoot":"","sources":["../../src/cli/pr-check.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"scan.d.ts","sourceRoot":"","sources":["../../src/cli/scan.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0DG;AASH,OAAO,KAAK,EAA2C,WAAW,EAAE,YAAY,EAAY,MAAM,mBAAmB,CAAC;AA+YtH;;GAEG;AACH,wBAAsB,IAAI,CAAC,OAAO,GAAE,WAAgB,EAAE,QAAQ,UAAQ,GAAG,OAAO,CAAC,YAAY,CAAC,CAoL7F;AAED,eAAe,IAAI,CAAC"}
1
+ {"version":3,"file":"scan.d.ts","sourceRoot":"","sources":["../../src/cli/scan.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0DG;AAOH,OAAO,KAAK,EAA2C,WAAW,EAAE,YAAY,EAAY,MAAM,mBAAmB,CAAC;AA4XtH;;GAEG;AACH,wBAAsB,IAAI,CAAC,OAAO,GAAE,WAAgB,EAAE,QAAQ,UAAQ,GAAG,OAAO,CAAC,YAAY,CAAC,CA0L7F;AAED,eAAe,IAAI,CAAC"}
package/dist/cli/scan.js CHANGED
@@ -91,15 +91,11 @@ var __importStar = (this && this.__importStar) || (function () {
91
91
  return result;
92
92
  };
93
93
  })();
94
- var __importDefault = (this && this.__importDefault) || function (mod) {
95
- return (mod && mod.__esModule) ? mod : { "default": mod };
96
- };
97
94
  Object.defineProperty(exports, "__esModule", { value: true });
98
95
  exports.scan = scan;
99
96
  const fs = __importStar(require("fs"));
100
97
  const path = __importStar(require("path"));
101
98
  const child_process_1 = require("child_process");
102
- const js_yaml_1 = __importDefault(require("js-yaml"));
103
99
  const config_files_js_1 = require("../constants/config-files.js");
104
100
  const index_js_1 = require("../plugins/index.js");
105
101
  const config_helpers_js_1 = require("../utils/config-helpers.js");
@@ -108,23 +104,21 @@ const config_helpers_js_1 = require("../utils/config-helpers.js");
108
104
  * Returns null if no config exists (bootstrap needed).
109
105
  */
110
106
  async function loadPlugins(rootDir) {
111
- const config = loadConfig(rootDir);
112
- // If no config exists, return null to signal bootstrap mode
113
- if (!config || Object.keys(config).length === 0) {
114
- const configPath = (0, config_files_js_1.getStackConfigPath)(rootDir);
115
- if (fs.existsSync(configPath)) {
116
- const content = fs.readFileSync(configPath, 'utf8');
117
- if (!content || content.trim().length === 0) {
118
- return null; // Empty config — needs bootstrap
119
- }
120
- else {
121
- console.error('\n[ERROR] Config contains no valid configuration.');
122
- console.error(' Check your YAML syntax or run: npx stack init --force\n');
123
- process.exit(1);
124
- }
125
- }
107
+ // Check if stack.yml exists (must exist before merging stackAuto.yml)
108
+ const configPath = (0, config_files_js_1.getStackConfigPath)(rootDir);
109
+ if (!fs.existsSync(configPath)) {
126
110
  return null; // No config file — needs bootstrap
127
111
  }
112
+ const content = fs.readFileSync(configPath, 'utf8');
113
+ if (!content || content.trim().length === 0) {
114
+ return null; // Empty config — needs bootstrap
115
+ }
116
+ const config = (0, config_helpers_js_1.loadConfig)(rootDir);
117
+ if (!config || Object.keys(config).length === 0) {
118
+ console.error('\n[ERROR] Config contains no valid configuration.');
119
+ console.error(' Check your YAML syntax or run: npx stack init --force\n');
120
+ process.exit(1);
121
+ }
128
122
  return (await (0, index_js_1.loadRelevantPlugins)(rootDir, config));
129
123
  }
130
124
  /**
@@ -174,23 +168,6 @@ async function runBootstrapFixes(plugins, rootDir) {
174
168
  }
175
169
  }
176
170
  }
177
- /**
178
- * Load config from stack.yml (or legacy stack.yml)
179
- */
180
- function loadConfig(rootDir) {
181
- const configPath = (0, config_files_js_1.getStackConfigPath)(rootDir);
182
- if (!fs.existsSync(configPath)) {
183
- return {};
184
- }
185
- try {
186
- return js_yaml_1.default.load(fs.readFileSync(configPath, 'utf8')) ?? {};
187
- }
188
- catch (e) {
189
- const errorMessage = e instanceof Error ? e.message : String(e);
190
- console.error('[!] Error parsing config: ' + errorMessage);
191
- return {};
192
- }
193
- }
194
171
  /**
195
172
  * Generate env var fixes from plugin requiredEnvVars
196
173
  */
@@ -223,7 +200,8 @@ function generateEnvVarFixes(plugin, rootDir, _config) {
223
200
  plugin: plugin.id,
224
201
  scan: async (config) => {
225
202
  // Only check if staging environment is defined in config
226
- const hasStagingEnv = config?.environments?.staging;
203
+ const { extractEnvironments: getEnvs } = await Promise.resolve().then(() => __importStar(require('../utils/config-helpers.js')));
204
+ const hasStagingEnv = getEnvs(config).staging;
227
205
  if (!hasStagingEnv)
228
206
  return false; // Skip check if staging not configured
229
207
  const envPath = path.join(rootDir, '.env.staging');
@@ -244,7 +222,9 @@ function generateEnvVarFixes(plugin, rootDir, _config) {
244
222
  plugin: plugin.id,
245
223
  scan: async (config) => {
246
224
  // Only check if prod environment is defined in config
247
- const hasProdEnv = config?.environments?.prod || config?.environments?.production;
225
+ const { extractEnvironments: getEnvs } = await Promise.resolve().then(() => __importStar(require('../utils/config-helpers.js')));
226
+ const envs = getEnvs(config);
227
+ const hasProdEnv = envs.prod || envs.production;
248
228
  if (!hasProdEnv)
249
229
  return false; // Skip check if prod not configured
250
230
  const envPath = path.join(rootDir, '.env.prod');
@@ -353,26 +333,23 @@ function displayProblems(problems, reachability, options = {}) {
353
333
  console.log(' ansible:');
354
334
  console.log(' vault_path: group_vars/all/vault.yml');
355
335
  console.log(' vault_password_file: ~/.vault_pass');
356
- console.log(' Or run: npx stack init');
357
336
  }
358
337
  else if (reasonLower.includes('vault password') || reasonLower.includes('vault_pass')) {
359
338
  console.log(' Fix: Create vault password file:');
360
- console.log(' echo "your-password" > ~/.vault_pass');
361
- console.log(' Or run: npx stack init');
339
+ console.log(' echo "your-password" > ~/.vault_pass && chmod 600 ~/.vault_pass');
362
340
  }
363
341
  else if (reasonLower.includes('ssh') || reasonLower.includes('deploy_key')) {
364
342
  console.log(' Fix: Set up SSH key for ' + stage + ':');
365
- console.log(' npx stack init (guided setup)');
366
343
  console.log(' npx stack secrets set ' + stage.toUpperCase() + '_SSH (add key to vault)');
367
344
  console.log(' npx stack secrets write-ssh-keys (extract keys to ~/.ssh/)');
368
345
  }
369
346
  else if (reasonLower.includes('github_token')) {
370
347
  console.log(' Fix: export GITHUB_TOKEN=your_token');
371
348
  console.log(' Or set up SSH keys instead (preferred):');
372
- console.log(' npx stack init');
349
+ console.log(' npx stack fix --secrets');
373
350
  }
374
351
  else {
375
- console.log(' Fix: npx stack init');
352
+ console.log(' Fix: npx stack fix');
376
353
  }
377
354
  console.log('');
378
355
  }
@@ -458,12 +435,12 @@ async function scan(options = {}, _isRerun = false) {
458
435
  console.log('');
459
436
  console.log(' Run: npx stack init');
460
437
  console.log('');
461
- console.log(' This will scan your codebase, create stack.yml with');
462
- console.log(' EXAMPLE_ values, and set up vault/secrets.');
438
+ console.log(' This will scan your codebase and create stack.yml');
439
+ console.log(' with EXAMPLE_ values for you to fill in.');
463
440
  console.log('');
464
441
  return { dev: [], secrets: [], staging: [], prod: [] };
465
442
  }
466
- const config = loadConfig(rootDir);
443
+ const config = (0, config_helpers_js_1.loadConfig)(rootDir);
467
444
  // If commit hash provided, verify we're scanning the right code
468
445
  if (options.commit) {
469
446
  try {
@@ -523,11 +500,16 @@ async function scan(options = {}, _isRerun = false) {
523
500
  localStages.push(stage);
524
501
  }
525
502
  }
526
- // Collect all fixes from all plugins
503
+ // Collect all fixes from all plugins (deduplicate by id+stage)
527
504
  const allFixes = [];
505
+ const seenFixKeys = new Set();
528
506
  for (const plugin of plugins) {
529
507
  // Add plugin fixes
530
508
  for (const fix of plugin.fixes ?? []) {
509
+ const key = fix.id + ':' + fix.stage;
510
+ if (seenFixKeys.has(key))
511
+ continue; // Skip duplicate
512
+ seenFixKeys.add(key);
531
513
  allFixes.push({ ...fix, plugin: plugin.id });
532
514
  }
533
515
  // Add auto-generated env var fixes
@@ -599,10 +581,12 @@ async function scan(options = {}, _isRerun = false) {
599
581
  // Remote stages: delegate to pipeline plugin
600
582
  if (remoteStages.length > 0 && !options.silent) {
601
583
  const PipelineClass = pipelinePlugin;
602
- if (PipelineClass) {
584
+ if (PipelineClass && typeof PipelineClass === 'function') {
603
585
  const pipeline = new PipelineClass(config);
604
- for (const stage of remoteStages) {
605
- await pipeline.scanStage(stage, {});
586
+ if (typeof pipeline.scanStage === 'function') {
587
+ for (const stage of remoteStages) {
588
+ await pipeline.scanStage(stage, {});
589
+ }
606
590
  }
607
591
  }
608
592
  }