@swovohq/fuel 0.2.0-alpha.9 → 0.2.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 (69) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +59 -13
  3. package/dist/bin/fuel.js +116 -28
  4. package/dist/bin/fuel.js.map +1 -1
  5. package/dist/commands/config-verify.d.ts +4 -0
  6. package/dist/commands/config-verify.d.ts.map +1 -0
  7. package/dist/commands/config-verify.js +66 -0
  8. package/dist/commands/config-verify.js.map +1 -0
  9. package/dist/commands/create-app.d.ts +6 -1
  10. package/dist/commands/create-app.d.ts.map +1 -1
  11. package/dist/commands/create-app.js +62 -44
  12. package/dist/commands/create-app.js.map +1 -1
  13. package/dist/commands/infra-deploy.d.ts +5 -0
  14. package/dist/commands/infra-deploy.d.ts.map +1 -1
  15. package/dist/commands/infra-deploy.js +56 -14
  16. package/dist/commands/infra-deploy.js.map +1 -1
  17. package/dist/commands/infra-destroy.d.ts +2 -0
  18. package/dist/commands/infra-destroy.d.ts.map +1 -1
  19. package/dist/commands/infra-destroy.js +4 -6
  20. package/dist/commands/infra-destroy.js.map +1 -1
  21. package/dist/commands/infra-init.d.ts +1 -0
  22. package/dist/commands/infra-init.d.ts.map +1 -1
  23. package/dist/commands/infra-init.js +89 -7
  24. package/dist/commands/infra-init.js.map +1 -1
  25. package/dist/commands/migrate-init.d.ts.map +1 -1
  26. package/dist/commands/migrate-init.js +28 -12
  27. package/dist/commands/migrate-init.js.map +1 -1
  28. package/dist/engines/template-source.d.ts.map +1 -1
  29. package/dist/engines/template-source.js +14 -1
  30. package/dist/engines/template-source.js.map +1 -1
  31. package/dist/infra/config-writer.d.ts +2 -7
  32. package/dist/infra/config-writer.d.ts.map +1 -1
  33. package/dist/infra/config-writer.js +5 -11
  34. package/dist/infra/config-writer.js.map +1 -1
  35. package/dist/infra/credentials.d.ts +10 -2
  36. package/dist/infra/credentials.d.ts.map +1 -1
  37. package/dist/infra/credentials.js +44 -25
  38. package/dist/infra/credentials.js.map +1 -1
  39. package/dist/infra/git-client.d.ts +1 -1
  40. package/dist/infra/git-client.d.ts.map +1 -1
  41. package/dist/infra/git-client.js +5 -2
  42. package/dist/infra/git-client.js.map +1 -1
  43. package/dist/infra/orchestrator.d.ts +4 -1
  44. package/dist/infra/orchestrator.d.ts.map +1 -1
  45. package/dist/infra/orchestrator.js +38 -29
  46. package/dist/infra/orchestrator.js.map +1 -1
  47. package/dist/infra/port-utils.d.ts +4 -0
  48. package/dist/infra/port-utils.d.ts.map +1 -0
  49. package/dist/infra/port-utils.js +77 -0
  50. package/dist/infra/port-utils.js.map +1 -0
  51. package/dist/infra/preflight.d.ts +1 -1
  52. package/dist/infra/preflight.d.ts.map +1 -1
  53. package/dist/infra/preflight.js +2 -2
  54. package/dist/infra/preflight.js.map +1 -1
  55. package/dist/infra/s3-state-bucket.d.ts +1 -1
  56. package/dist/infra/s3-state-bucket.d.ts.map +1 -1
  57. package/dist/infra/s3-state-bucket.js +21 -26
  58. package/dist/infra/s3-state-bucket.js.map +1 -1
  59. package/dist/infra/secrets-manager-client.d.ts.map +1 -1
  60. package/dist/infra/secrets-manager-client.js +35 -1
  61. package/dist/infra/secrets-manager-client.js.map +1 -1
  62. package/dist/infra/template-engine.d.ts.map +1 -1
  63. package/dist/infra/template-engine.js +11 -25
  64. package/dist/infra/template-engine.js.map +1 -1
  65. package/dist/infra/tofu-runner.d.ts +1 -2
  66. package/dist/infra/tofu-runner.d.ts.map +1 -1
  67. package/dist/infra/tofu-runner.js +5 -5
  68. package/dist/infra/tofu-runner.js.map +1 -1
  69. package/package.json +8 -6
@@ -51,6 +51,7 @@ const dependency_checker_1 = require("../infra/dependency-checker");
51
51
  const orchestrator_1 = require("../infra/orchestrator");
52
52
  const preflight_1 = require("../infra/preflight");
53
53
  const template_engine_1 = require("../infra/template-engine");
54
+ const port_utils_1 = require("../infra/port-utils");
54
55
  const IGNORE_PATTERNS = [
55
56
  'node_modules',
56
57
  '.git',
@@ -65,6 +66,7 @@ const IGNORE_PATTERNS = [
65
66
  '.github/workflows/cli-ci.yml',
66
67
  '.github/workflows/cli-integration.yml',
67
68
  '.github/workflows/cli-release.yml',
69
+ '.github/workflows/cli-qa-deploy.yml',
68
70
  ];
69
71
  const loadConfig = async (sourceRoot) => {
70
72
  const configPath = path.join(sourceRoot, 'fuel.modules.json');
@@ -156,26 +158,20 @@ const waitForPostgresReady = async (opts) => {
156
158
  const createApp = async (appName, options) => {
157
159
  const effectiveSkipMigrationGeneration = Boolean(options.skipMigrationGeneration) ||
158
160
  Boolean(options.skipInstall) ||
159
- Boolean(options.skipBuild);
161
+ Boolean(options.skipBuild) ||
162
+ Boolean(options.keepMigrations);
160
163
  // Validate and run preflight for ECS deployments BEFORE any file operations.
161
164
  // NOTE: runPreflight calls process.exit(1) on failure — it does NOT throw.
162
165
  // If runPreflight returns, all checks passed.
163
166
  let infraContext;
164
- if (options.deployment) {
165
- if (options.deployment !== 'ecs') {
166
- throw new Error(`Unsupported deployment type: "${options.deployment}". Only "ecs" is supported.`);
167
- }
168
- if (!options.config) {
169
- throw new Error('The --config flag is required when using --deployment ecs. ' +
170
- 'Run "fuel infra:init" to generate a fuel.yml template.');
171
- }
172
- if (effectiveSkipMigrationGeneration) {
173
- throw new Error('Cannot provision ECS infrastructure without migrations. ' +
174
- 'Remove --skip-migration-generation, --skip-install, and --skip-build flags, or remove --deployment ecs.');
167
+ if (options.config) {
168
+ if (effectiveSkipMigrationGeneration && !options.keepMigrations) {
169
+ throw new Error('Cannot provision infrastructure without migrations. ' +
170
+ 'Remove --skip-migration-generation, --skip-install, and --skip-build flags, or use --keep-migrations, or remove --config.');
175
171
  }
176
172
  const configPath = path.resolve(options.config);
177
173
  console.log('\n Running preflight checks...\n');
178
- const { config, credentials } = await (0, preflight_1.runPreflight)(configPath);
174
+ const { config, credentials } = await (0, preflight_1.runPreflight)(configPath, options.credentialOverrides);
179
175
  infraContext = { config, credentials };
180
176
  }
181
177
  const resolution = await (0, template_source_1.resolveSourceRoot)({
@@ -209,7 +205,7 @@ const createApp = async (appName, options) => {
209
205
  if (dryRun) {
210
206
  console.log('\n [dry run] Would copy project (excluding migrations), remove excluded modules, clean deps, and finalize.');
211
207
  if (infraContext) {
212
- console.log(' Then: write fuel.config.json, generate /infra and .github/workflows/.');
208
+ console.log(' Then: write fuel.yml, generate /infra and .github/workflows/.');
213
209
  }
214
210
  if (!skipInstall && !skipBuild)
215
211
  console.log(' Then: install, build.');
@@ -237,8 +233,9 @@ const createApp = async (appName, options) => {
237
233
  await fs.copy(sourceRoot, targetRoot, {
238
234
  filter: (src) => {
239
235
  const relativePath = path.relative(sourceRoot, src);
240
- if (relativePath === MIGRATIONS_DIR ||
241
- relativePath.startsWith(MIGRATIONS_DIR + path.sep)) {
236
+ if (!options.keepMigrations &&
237
+ (relativePath === MIGRATIONS_DIR ||
238
+ relativePath.startsWith(MIGRATIONS_DIR + path.sep))) {
242
239
  return false;
243
240
  }
244
241
  return !IGNORE_PATTERNS.some((pattern) => relativePath === pattern ||
@@ -283,9 +280,16 @@ const createApp = async (appName, options) => {
283
280
  if (!skipMigrationGeneration) {
284
281
  console.log(' Preparing local env files...');
285
282
  await ensureDotEnvs(targetRoot);
286
- console.log(' Starting Docker services...');
283
+ const dbPort = await (0, port_utils_1.findAvailablePort)(5432);
284
+ // eslint-disable-next-line turbo/no-undeclared-env-vars
285
+ process.env.FUEL_DB_PORT = String(dbPort);
286
+ if (dbPort !== 5432) {
287
+ console.log(` Port 5432 in use, using ${dbPort} for Postgres`);
288
+ await (0, port_utils_1.patchDotEnvPort)(path.join(targetRoot, 'apps/api/.env'), 'DATABASE_PORT', dbPort);
289
+ }
290
+ console.log(' Starting Postgres...');
287
291
  const compose = dockerDeps.composeCommand;
288
- runInProject(targetRoot, `${compose} up -d`);
292
+ runInProject(targetRoot, `${compose} up -d db`);
289
293
  dockerStarted = true;
290
294
  console.log(' Waiting for Postgres...');
291
295
  await waitForPostgresReady({
@@ -316,11 +320,19 @@ const createApp = async (appName, options) => {
316
320
  runInProject(targetRoot, 'git commit -m "Add initial migration"');
317
321
  }
318
322
  }
323
+ console.log(' Stopping Postgres...');
324
+ try {
325
+ runInProject(targetRoot, `${compose} down`);
326
+ }
327
+ catch {
328
+ // Best-effort — don't fail the command if cleanup fails
329
+ }
330
+ dockerStarted = false;
319
331
  }
320
332
  if (infraContext) {
321
- console.log('\n Writing fuel.config.json...');
322
- await (0, config_writer_1.writeFuelConfig)(targetRoot, infraContext.config, appName, undefined, infraContext.credentials);
323
- console.log(` ${chalk_1.default.green('✓')} fuel.config.json written`);
333
+ console.log('\n Writing fuel.yml...');
334
+ await (0, config_writer_1.writeFuelYml)(targetRoot, infraContext.config, appName);
335
+ console.log(` ${chalk_1.default.green('✓')} fuel.yml written`);
324
336
  await (0, template_engine_1.generateInfra)(targetRoot, infraContext.config, infraContext.credentials, path.join(sourceRoot, 'packages', 'infra'));
325
337
  }
326
338
  }
@@ -341,32 +353,38 @@ const createApp = async (appName, options) => {
341
353
  throw err;
342
354
  }
343
355
  if (infraContext) {
344
- await (0, orchestrator_1.runInfraOrchestrator)(targetRoot, appName, infraContext.config, infraContext.credentials);
356
+ await (0, orchestrator_1.runInfraOrchestrator)(targetRoot, appName, infraContext.config, infraContext.credentials, {
357
+ targetBranch: options.targetBranch,
358
+ forcePush: options.forcePush,
359
+ destroyOnFailure: options.destroyOnFailure,
360
+ skipBranchProtection: options.skipBranchProtection,
361
+ });
345
362
  }
346
363
  console.log(`\n Done! Your app is ready at ${targetRoot}`);
347
- console.log(`\n Next steps:`);
348
- console.log(` cd ${path.basename(targetRoot)}`);
349
- if (skipMigrationGeneration) {
350
- console.log(` docker-compose up -d`);
351
- }
352
- if (skipMigrationGeneration) {
353
- console.log(` cp apps/api/.env.example apps/api/.env`);
354
- console.log(` cp apps/web/.env.example apps/web/.env`);
355
- console.log(` cp apps/playwright/.env.example apps/playwright/.env`);
356
- }
357
- if (skipInstall)
358
- console.log(` yarn install`);
359
- if (skipInstall || skipBuild)
360
- console.log(` yarn build`);
361
- if (skipMigrationGeneration) {
362
- console.log(` yarn workspace api database:migration:generate initial-migration`);
363
- console.log(` yarn workspace api database:migration:run`);
364
- }
365
- console.log(` yarn workspace api database:seed:run:dev`);
366
- console.log(` yarn dev\n`);
367
364
  if (infraContext) {
368
- console.log(` Your cloud infrastructure has been provisioned.`);
369
- console.log(` Your code has been pushed to GitHub.\n`);
365
+ console.log(`\n Your cloud infrastructure has been provisioned.`);
366
+ console.log(` Your code has been pushed to GitHub.`);
367
+ console.log(` Your first deploy will start shortly.\n`);
368
+ }
369
+ else {
370
+ console.log(`\n Next steps:`);
371
+ console.log(` cd ${path.basename(targetRoot)}`);
372
+ if (skipMigrationGeneration) {
373
+ console.log(` docker-compose up -d`);
374
+ console.log(` cp apps/api/.env.example apps/api/.env`);
375
+ console.log(` cp apps/web/.env.example apps/web/.env`);
376
+ console.log(` cp apps/playwright/.env.example apps/playwright/.env`);
377
+ }
378
+ if (skipInstall)
379
+ console.log(` yarn install`);
380
+ if (skipInstall || skipBuild)
381
+ console.log(` yarn build`);
382
+ if (skipMigrationGeneration) {
383
+ console.log(` yarn workspace api database:migration:generate initial-migration`);
384
+ console.log(` yarn workspace api database:migration:run`);
385
+ }
386
+ console.log(` yarn workspace api database:seed:run:dev`);
387
+ console.log(` yarn dev\n`);
370
388
  }
371
389
  }
372
390
  finally {
@@ -1 +1 @@
1
- {"version":3,"file":"create-app.js","sourceRoot":"","sources":["../../src/commands/create-app.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"create-app.js","sourceRoot":"","sources":["../../src/commands/create-app.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,13 @@
1
+ import type { CredentialKey } from '../infra/types';
1
2
  export interface InfraDeployOptions {
2
3
  path?: string;
3
4
  regenerate?: boolean;
4
5
  planOnly?: boolean;
5
6
  config?: string;
7
+ infraOnly?: boolean;
8
+ destroyOnFailure?: boolean;
9
+ skipBranchProtection?: boolean;
10
+ credentialOverrides?: Partial<Record<CredentialKey, string>>;
6
11
  }
7
12
  export declare function infraDeploy(opts: InfraDeployOptions): Promise<void>;
8
13
  //# sourceMappingURL=infra-deploy.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"infra-deploy.d.ts","sourceRoot":"","sources":["../../src/commands/infra-deploy.ts"],"names":[],"mappings":"AAUA,MAAM,WAAW,kBAAkB;IACjC,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AAED,wBAAsB,WAAW,CAAC,IAAI,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC,CA+DzE"}
1
+ {"version":3,"file":"infra-deploy.d.ts","sourceRoot":"","sources":["../../src/commands/infra-deploy.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAA;AAQnD,MAAM,WAAW,kBAAkB;IACjC,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,gBAAgB,CAAC,EAAE,OAAO,CAAA;IAC1B,oBAAoB,CAAC,EAAE,OAAO,CAAA;IAC9B,mBAAmB,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC,CAAA;CAC7D;AAED,wBAAsB,WAAW,CAAC,IAAI,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC,CAqEzE"}
@@ -46,11 +46,18 @@ const preflight_1 = require("../infra/preflight");
46
46
  const template_engine_1 = require("../infra/template-engine");
47
47
  const orchestrator_1 = require("../infra/orchestrator");
48
48
  const config_writer_1 = require("../infra/config-writer");
49
+ const s3_state_bucket_1 = require("../infra/s3-state-bucket");
50
+ const tofu_runner_1 = require("../infra/tofu-runner");
49
51
  async function infraDeploy(opts) {
50
52
  const projectRoot = opts.path ? path.resolve(opts.path) : process.cwd();
51
- const fuelConfigPath = path.join(projectRoot, 'fuel.config.json');
52
- const hasFuelConfig = await fs.pathExists(fuelConfigPath);
53
- // When --config is provided, generate fuel.config.json from the given config file
53
+ const credOverrides = opts.credentialOverrides;
54
+ // --infra-only: run only tofu preflight + apply on existing /infra folder
55
+ if (opts.infraOnly) {
56
+ return infraOnlyDeploy(projectRoot, opts);
57
+ }
58
+ const fuelYmlPath = path.join(projectRoot, 'fuel.yml');
59
+ const hasFuelYml = await fs.pathExists(fuelYmlPath);
60
+ // When --config is provided, copy it as fuel.yml into the project root
54
61
  if (opts.config) {
55
62
  const configSourcePath = path.resolve(opts.config);
56
63
  if (!(await fs.pathExists(configSourcePath))) {
@@ -60,21 +67,19 @@ async function infraDeploy(opts) {
60
67
  const YAML = require('yaml');
61
68
  const raw = configSourcePath.endsWith('.json') ? JSON.parse(content) : YAML.parse(content);
62
69
  const infraConfig = (0, config_loader_1.parseInfraConfig)(raw);
63
- const credentials = await (0, credentials_1.resolveCredentials)(projectRoot);
64
- console.log(chalk_1.default.cyan('\n Writing fuel.config.json...'));
65
- await (0, config_writer_1.writeFuelConfig)(projectRoot, infraConfig, undefined, undefined, credentials);
66
- console.log(chalk_1.default.green(' \u2713') + ' fuel.config.json written');
70
+ console.log(chalk_1.default.cyan('\n Writing fuel.yml...'));
71
+ await (0, config_writer_1.writeFuelYml)(projectRoot, infraConfig);
72
+ console.log(chalk_1.default.green(' \u2713') + ' fuel.yml written');
67
73
  }
68
- else if (!hasFuelConfig) {
69
- throw new Error(`fuel.config.json not found at ${fuelConfigPath}.\n` +
70
- `Run this command from a project created by "fuel create:app --deployment ecs", ` +
71
- `or pass --config <path> to generate it from a fuel.yml file.`);
74
+ else if (!hasFuelYml) {
75
+ throw new Error(`fuel.yml not found at ${fuelYmlPath}.\n` +
76
+ `Run "fuel infra:init" first, or pass --config <path> to provide a config file.`);
72
77
  }
73
78
  console.log(chalk_1.default.cyan('\n Preflight checks'));
74
79
  console.log(chalk_1.default.cyan(' ' + '\u2500'.repeat(40)));
75
- const config = await (0, config_loader_1.loadInfraConfig)(fuelConfigPath);
80
+ const config = await (0, config_loader_1.loadInfraConfig)(fuelYmlPath);
76
81
  console.log(chalk_1.default.green(' \u2713') +
77
- ` fuel.config.json valid \u2014 ${config.apps.length} app(s)`);
82
+ ` fuel.yml valid \u2014 ${config.apps.length} app(s)`);
78
83
  const tofuVersion = (0, preflight_1.checkTofuVersion)();
79
84
  console.log(chalk_1.default.green(' \u2713') + ` tofu ${tofuVersion}`);
80
85
  const credentials = await (0, credentials_1.resolveCredentials)(projectRoot);
@@ -97,8 +102,45 @@ async function infraDeploy(opts) {
97
102
  }
98
103
  console.log('');
99
104
  await (0, orchestrator_1.runInfraOrchestrator)(projectRoot, config.name, config, credentials, {
100
- skipCompensation: true,
105
+ destroyOnFailure: opts.destroyOnFailure,
106
+ planOnly: opts.planOnly,
107
+ skipBranchProtection: opts.skipBranchProtection,
108
+ });
109
+ }
110
+ async function infraOnlyDeploy(projectRoot, opts) {
111
+ const infraDir = path.join(projectRoot, 'infra');
112
+ if (!(await fs.pathExists(infraDir))) {
113
+ throw new Error(`/infra folder not found at ${infraDir}.\n` +
114
+ 'Run "fuel create:app --config fuel.yml" first, or use "fuel infra:deploy" without --infra-only.');
115
+ }
116
+ console.log(chalk_1.default.cyan('\n Preflight checks'));
117
+ console.log(chalk_1.default.cyan(' ' + '\u2500'.repeat(40)));
118
+ const tofuVersion = (0, preflight_1.checkTofuVersion)();
119
+ console.log(chalk_1.default.green(' \u2713') + ` tofu ${tofuVersion}`);
120
+ const credentials = await (0, credentials_1.resolveCredentials)(projectRoot, opts.credentialOverrides);
121
+ console.log(chalk_1.default.green(' \u2713') + ' Credentials resolved');
122
+ // Derive bucket name from default.tfvars project_name
123
+ const tfvarsPath = path.join(infraDir, 'default.tfvars');
124
+ const tfvarsContent = await fs.readFile(tfvarsPath, 'utf-8');
125
+ const projectNameMatch = tfvarsContent.match(/^project_name\s*=\s*"([^"]+)"/m);
126
+ if (!projectNameMatch) {
127
+ throw new Error('Could not read project_name from infra/default.tfvars');
128
+ }
129
+ const projectName = projectNameMatch[1];
130
+ const suffix = (0, s3_state_bucket_1.deriveSuffix)(projectName);
131
+ const bucketName = (0, s3_state_bucket_1.buildStateBucketName)(projectName, suffix);
132
+ console.log(` Project: ${projectName}`);
133
+ console.log(` State bucket: ${bucketName}`);
134
+ await (0, s3_state_bucket_1.ensureStateBucket)(credentials, bucketName);
135
+ console.log('');
136
+ await (0, tofu_runner_1.runTofuApply)(infraDir, credentials, undefined, {
101
137
  planOnly: opts.planOnly,
102
138
  });
139
+ if (opts.planOnly) {
140
+ console.log(chalk_1.default.green('\n Plan complete — no resources were created.\n'));
141
+ }
142
+ else {
143
+ console.log(chalk_1.default.green('\n Infrastructure applied successfully.\n'));
144
+ }
103
145
  }
104
146
  //# sourceMappingURL=infra-deploy.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"infra-deploy.js","sourceRoot":"","sources":["../../src/commands/infra-deploy.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"infra-deploy.js","sourceRoot":"","sources":["../../src/commands/infra-deploy.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,7 @@
1
+ import type { CredentialKey } from '../infra/types';
1
2
  export interface InfraDestroyOptions {
2
3
  path?: string;
4
+ credentialOverrides?: Partial<Record<CredentialKey, string>>;
3
5
  }
4
6
  export declare function infraDestroy(opts: InfraDestroyOptions): Promise<void>;
5
7
  //# sourceMappingURL=infra-destroy.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"infra-destroy.d.ts","sourceRoot":"","sources":["../../src/commands/infra-destroy.ts"],"names":[],"mappings":"AASA,MAAM,WAAW,mBAAmB;IAClC,IAAI,CAAC,EAAE,MAAM,CAAA;CACd;AAMD,wBAAsB,YAAY,CAAC,IAAI,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC,CAiD3E"}
1
+ {"version":3,"file":"infra-destroy.d.ts","sourceRoot":"","sources":["../../src/commands/infra-destroy.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAA;AAEnD,MAAM,WAAW,mBAAmB;IAClC,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,mBAAmB,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC,CAAA;CAC7D;AAMD,wBAAsB,YAAY,CAAC,IAAI,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC,CAgD3E"}
@@ -37,7 +37,6 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
37
37
  };
38
38
  Object.defineProperty(exports, "__esModule", { value: true });
39
39
  exports.infraDestroy = infraDestroy;
40
- const crypto = __importStar(require("crypto"));
41
40
  const path = __importStar(require("path"));
42
41
  const fs = __importStar(require("fs-extra"));
43
42
  const chalk_1 = __importDefault(require("chalk"));
@@ -50,9 +49,9 @@ function slugify(name) {
50
49
  }
51
50
  async function infraDestroy(opts) {
52
51
  const projectRoot = opts.path ? path.resolve(opts.path) : process.cwd();
53
- const fuelConfigPath = path.join(projectRoot, 'fuel.config.json');
52
+ const fuelConfigPath = path.join(projectRoot, 'fuel.yml');
54
53
  if (!(await fs.pathExists(fuelConfigPath))) {
55
- throw new Error(`fuel.config.json not found at ${fuelConfigPath}.\n` +
54
+ throw new Error(`fuel.yml not found at ${fuelConfigPath}.\n` +
56
55
  `Run this command from a project that has been provisioned with "fuel infra:deploy".`);
57
56
  }
58
57
  const infraDir = path.join(projectRoot, 'infra');
@@ -65,15 +64,14 @@ async function infraDestroy(opts) {
65
64
  console.log(chalk_1.default.cyan(' ' + '\u2500'.repeat(40)));
66
65
  const config = await (0, config_loader_1.loadInfraConfig)(fuelConfigPath);
67
66
  console.log(chalk_1.default.green(' \u2713') +
68
- ` fuel.config.json valid \u2014 ${config.apps.length} app(s)`);
67
+ ` fuel.yml valid \u2014 ${config.apps.length} app(s)`);
69
68
  const tofuVersion = (0, preflight_1.checkTofuVersion)();
70
69
  console.log(chalk_1.default.green(' \u2713') + ` tofu ${tofuVersion}`);
71
- const credentials = await (0, credentials_1.resolveCredentials)(projectRoot);
70
+ const credentials = await (0, credentials_1.resolveCredentials)(projectRoot, opts.credentialOverrides);
72
71
  console.log(chalk_1.default.green(' \u2713') + ' Credentials resolved');
73
72
  // TofuVars — db values are only needed to satisfy variable declarations,
74
73
  // the actual values don't matter for destroy.
75
74
  const tofuVars = {
76
- db_password: crypto.randomBytes(32).toString('hex'),
77
75
  db_username: slugify(config.name),
78
76
  db_name: slugify(config.name),
79
77
  github_repo_name: `${config.name}-monorepo`,
@@ -1 +1 @@
1
- {"version":3,"file":"infra-destroy.js","sourceRoot":"","sources":["../../src/commands/infra-destroy.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAiBA,oCAiDC;AAlED,+CAAgC;AAChC,2CAA4B;AAC5B,6CAA8B;AAC9B,kDAAyB;AACzB,0DAAwD;AACxD,sDAAyD;AACzD,kDAAqD;AACrD,sDAA+D;AAM/D,SAAS,OAAO,CAAC,IAAY;IAC3B,OAAO,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,GAAG,CAAC,CAAC,WAAW,EAAE,CAAA;AACvD,CAAC;AAEM,KAAK,UAAU,YAAY,CAAC,IAAyB;IAC1D,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,CAAA;IAEvE,MAAM,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,kBAAkB,CAAC,CAAA;IACjE,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC,EAAE,CAAC;QAC3C,MAAM,IAAI,KAAK,CACb,iCAAiC,cAAc,KAAK;YAClD,qFAAqF,CACxF,CAAA;IACH,CAAC;IAED,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,OAAO,CAAC,CAAA;IAChD,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC;QACrC,MAAM,IAAI,KAAK,CACb,8BAA8B,WAAW,KAAK;YAC5C,gDAAgD;YAChD,+DAA+D,CAClE,CAAA;IACH,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC,CAAA;IAC/C,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,IAAI,GAAG,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;IAEnD,MAAM,MAAM,GAAG,MAAM,IAAA,+BAAe,EAAC,cAAc,CAAC,CAAA;IACpD,OAAO,CAAC,GAAG,CACT,eAAK,CAAC,KAAK,CAAC,UAAU,CAAC;QACrB,kCAAkC,MAAM,CAAC,IAAI,CAAC,MAAM,SAAS,CAChE,CAAA;IAED,MAAM,WAAW,GAAG,IAAA,4BAAgB,GAAE,CAAA;IACtC,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,SAAS,WAAW,EAAE,CAAC,CAAA;IAE7D,MAAM,WAAW,GAAG,MAAM,IAAA,gCAAkB,EAAC,WAAW,CAAC,CAAA;IACzD,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,uBAAuB,CAAC,CAAA;IAE9D,yEAAyE;IACzE,8CAA8C;IAC9C,MAAM,QAAQ,GAAa;QACzB,WAAW,EAAE,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC;QACnD,WAAW,EAAE,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC;QACjC,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC;QAC7B,gBAAgB,EAAE,GAAG,MAAM,CAAC,IAAI,WAAW;KAC5C,CAAA;IAED,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,MAAM,CAAC,gEAAgE,CAAC,CAAC,CAAA;IAC3F,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;IACf,MAAM,IAAA,4BAAc,EAAC,QAAQ,EAAE,WAAW,EAAE,QAAQ,CAAC,CAAA;IAErD,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,0CAA0C,CAAC,CAAC,CAAA;AACtE,CAAC"}
1
+ {"version":3,"file":"infra-destroy.js","sourceRoot":"","sources":["../../src/commands/infra-destroy.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAmBA,oCAgDC;AAnED,2CAA4B;AAC5B,6CAA8B;AAC9B,kDAAyB;AACzB,0DAAwD;AACxD,sDAAyD;AACzD,kDAAqD;AACrD,sDAA+D;AAS/D,SAAS,OAAO,CAAC,IAAY;IAC3B,OAAO,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,GAAG,CAAC,CAAC,WAAW,EAAE,CAAA;AACvD,CAAC;AAEM,KAAK,UAAU,YAAY,CAAC,IAAyB;IAC1D,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,CAAA;IAEvE,MAAM,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,UAAU,CAAC,CAAA;IACzD,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC,EAAE,CAAC;QAC3C,MAAM,IAAI,KAAK,CACb,yBAAyB,cAAc,KAAK;YAC1C,qFAAqF,CACxF,CAAA;IACH,CAAC;IAED,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,OAAO,CAAC,CAAA;IAChD,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC;QACrC,MAAM,IAAI,KAAK,CACb,8BAA8B,WAAW,KAAK;YAC5C,gDAAgD;YAChD,+DAA+D,CAClE,CAAA;IACH,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC,CAAA;IAC/C,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,IAAI,GAAG,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;IAEnD,MAAM,MAAM,GAAG,MAAM,IAAA,+BAAe,EAAC,cAAc,CAAC,CAAA;IACpD,OAAO,CAAC,GAAG,CACT,eAAK,CAAC,KAAK,CAAC,UAAU,CAAC;QACrB,0BAA0B,MAAM,CAAC,IAAI,CAAC,MAAM,SAAS,CACxD,CAAA;IAED,MAAM,WAAW,GAAG,IAAA,4BAAgB,GAAE,CAAA;IACtC,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,SAAS,WAAW,EAAE,CAAC,CAAA;IAE7D,MAAM,WAAW,GAAG,MAAM,IAAA,gCAAkB,EAAC,WAAW,EAAE,IAAI,CAAC,mBAAmB,CAAC,CAAA;IACnF,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,uBAAuB,CAAC,CAAA;IAE9D,yEAAyE;IACzE,8CAA8C;IAC9C,MAAM,QAAQ,GAAa;QACzB,WAAW,EAAE,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC;QACjC,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC;QAC7B,gBAAgB,EAAE,GAAG,MAAM,CAAC,IAAI,WAAW;KAC5C,CAAA;IAED,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,MAAM,CAAC,gEAAgE,CAAC,CAAC,CAAA;IAC3F,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;IACf,MAAM,IAAA,4BAAc,EAAC,QAAQ,EAAE,WAAW,EAAE,QAAQ,CAAC,CAAA;IAErD,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,0CAA0C,CAAC,CAAC,CAAA;AACtE,CAAC"}
@@ -71,5 +71,6 @@ export declare function applyInfraInitAnswers(answers: InfraInitAnswers, opts: {
71
71
  export declare function infraInit(opts: {
72
72
  output?: string;
73
73
  template?: boolean;
74
+ credentialsOnly?: boolean;
74
75
  }): Promise<void>;
75
76
  //# sourceMappingURL=infra-init.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"infra-init.d.ts","sourceRoot":"","sources":["../../src/commands/infra-init.ts"],"names":[],"mappings":"AAuBA,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAsC3B,CAAA;AAED,MAAM,WAAW,gBAAgB;IAC/B,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IACnC,WAAW,EAAE,MAAM,CAAA;IACnB,GAAG,EAAE,MAAM,CAAA;IACX,eAAe,EAAE,MAAM,CAAA;IACvB,wDAAwD;IACxD,QAAQ,EAAE,KAAK,CAAC;QACd,MAAM,EAAE,KAAK,GAAG,KAAK,CAAA;QACrB,UAAU,EAAE,MAAM,CAAA;QAClB,IAAI,EAAE,MAAM,CAAA;QACZ,eAAe,EAAE,MAAM,CAAA;QAEvB,QAAQ,EAAE,OAAO,CAAA;QACjB,KAAK,EAAE,OAAO,CAAA;QACd,QAAQ,EAAE,MAAM,CAAA;QAChB,WAAW,EAAE,MAAM,CAAA;QACnB,cAAc,EAAE,MAAM,CAAA;QACtB,kBAAkB,EAAE,MAAM,CAAA;QAC1B,iBAAiB,EAAE,MAAM,CAAA;QACzB,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAA;KAClD,CAAC,CAAA;IACF,YAAY,EAAE,MAAM,EAAE,CAAA;IACtB,UAAU,EAAE,MAAM,CAAA;IAClB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAA;CAChD;AA0ZD,wBAAsB,qBAAqB,CACzC,OAAO,EAAE,gBAAgB,EACzB,IAAI,EAAE;IAAE,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,GACxB,OAAO,CAAC,IAAI,CAAC,CA8Ff;AAID,wBAAsB,SAAS,CAAC,IAAI,EAAE;IAAE,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAuB5F"}
1
+ {"version":3,"file":"infra-init.d.ts","sourceRoot":"","sources":["../../src/commands/infra-init.ts"],"names":[],"mappings":"AAuBA,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAsC3B,CAAA;AAED,MAAM,WAAW,gBAAgB;IAC/B,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IACnC,WAAW,EAAE,MAAM,CAAA;IACnB,GAAG,EAAE,MAAM,CAAA;IACX,eAAe,EAAE,MAAM,CAAA;IACvB,wDAAwD;IACxD,QAAQ,EAAE,KAAK,CAAC;QACd,MAAM,EAAE,KAAK,GAAG,KAAK,CAAA;QACrB,UAAU,EAAE,MAAM,CAAA;QAClB,IAAI,EAAE,MAAM,CAAA;QACZ,eAAe,EAAE,MAAM,CAAA;QAEvB,QAAQ,EAAE,OAAO,CAAA;QACjB,KAAK,EAAE,OAAO,CAAA;QACd,QAAQ,EAAE,MAAM,CAAA;QAChB,WAAW,EAAE,MAAM,CAAA;QACnB,cAAc,EAAE,MAAM,CAAA;QACtB,kBAAkB,EAAE,MAAM,CAAA;QAC1B,iBAAiB,EAAE,MAAM,CAAA;QACzB,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAA;KAClD,CAAC,CAAA;IACF,YAAY,EAAE,MAAM,EAAE,CAAA;IACtB,UAAU,EAAE,MAAM,CAAA;IAClB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAA;CAChD;AA2ZD,wBAAsB,qBAAqB,CACzC,OAAO,EAAE,gBAAgB,EACzB,IAAI,EAAE;IAAE,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,GACxB,OAAO,CAAC,IAAI,CAAC,CA8Ff;AAID,wBAAsB,SAAS,CAAC,IAAI,EAAE;IAAE,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAAC,eAAe,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CA0GvH"}
@@ -90,8 +90,8 @@ exports.CONFIG_TEMPLATE = {
90
90
  domain: 'app.example.com',
91
91
  port: 3000,
92
92
  branch: 'main',
93
- cpu_units: 512,
94
- memory_units: 1024,
93
+ cpu_units: 1024,
94
+ memory_units: 2048,
95
95
  build_env: {
96
96
  NEXT_PUBLIC_API_HOST: 'https://api.example.com',
97
97
  },
@@ -372,6 +372,7 @@ async function collectAnswers(rl) {
372
372
  else {
373
373
  throw new Error(`SSL certificate not found or inaccessible: ${certResult.error}`);
374
374
  }
375
+ const certDomain = certResult.domainName.replace(/^\*\./, '');
375
376
  console.log('');
376
377
  // --- App configuration ---
377
378
  console.log(' App configuration');
@@ -410,8 +411,8 @@ async function collectAnswers(rl) {
410
411
  const dockerfile = await ask(rl, 'Dockerfile', 'apps/web/Dockerfile');
411
412
  const port = await askInt(rl, 'Port', 3000);
412
413
  const healthCheckPath = await ask(rl, 'Health check path', '/health');
413
- const cpuUnits = await askInt(rl, 'CPU units', 512);
414
- const memoryUnits = await askInt(rl, 'Memory (MB)', 1024);
414
+ const cpuUnits = await askInt(rl, 'CPU units', 1024);
415
+ const memoryUnits = await askInt(rl, 'Memory (MB)', 2048);
415
416
  appTypes.push({
416
417
  suffix: 'web', dockerfile, port, healthCheckPath,
417
418
  postgres: false, redis: false, cpuUnits, memoryUnits,
@@ -434,7 +435,7 @@ async function collectAnswers(rl) {
434
435
  // --- Base domain + per-app domains ---
435
436
  console.log(' Domains');
436
437
  console.log(' ────────────────────────────────────────────────────');
437
- const baseDomain = await ask(rl, 'Base domain (e.g. swovo.com)');
438
+ const baseDomain = await ask(rl, 'Base domain', certDomain);
438
439
  console.log('');
439
440
  const domains = {};
440
441
  for (const appType of appTypes) {
@@ -552,10 +553,91 @@ async function applyInfraInitAnswers(answers, opts) {
552
553
  // 6. Next steps
553
554
  console.log('\n Next steps:');
554
555
  console.log(' Review and edit fuel.yml to add workers/variables, then:');
555
- console.log(` fuel create:app ${answers.projectName} --deployment ecs --config fuel.yml\n`);
556
+ console.log(` fuel create:app ${answers.projectName} --config fuel.yml\n`);
556
557
  }
557
558
  // --- infraInit ---
558
559
  async function infraInit(opts) {
560
+ if (opts.credentialsOnly) {
561
+ const rl = (0, promises_1.createInterface)({ input: process.stdin, output: process.stdout });
562
+ try {
563
+ console.log('\n Credentials');
564
+ console.log(' ────────────────────────────────────────────────────');
565
+ const credentials = {};
566
+ const credFilePath = path.resolve('.fuel-credentials');
567
+ if (await fs.pathExists(credFilePath)) {
568
+ try {
569
+ const existing = await fs.readJson(credFilePath);
570
+ console.log('\n Found existing .fuel-credentials');
571
+ const [stsResult, ghUserResult, ghOrgResult] = await Promise.all([
572
+ tryGetAwsAccountId(existing),
573
+ tryGetGithubUser(existing),
574
+ tryGetGithubOrg(existing),
575
+ ]);
576
+ if ('accountId' in stsResult) {
577
+ console.log(` AWS Account: ${chalk_1.default.green(stsResult.accountId)}`);
578
+ }
579
+ if ('login' in ghUserResult) {
580
+ console.log(` GitHub User: ${chalk_1.default.green(ghUserResult.login)}`);
581
+ }
582
+ if ('login' in ghOrgResult) {
583
+ console.log(` GitHub Org: ${chalk_1.default.green(ghOrgResult.login)}`);
584
+ }
585
+ assertCredentialResults(stsResult, ghUserResult, ghOrgResult);
586
+ console.log('');
587
+ const useExisting = await askYesNo(rl, 'Use these credentials?', true);
588
+ if (useExisting) {
589
+ console.log(chalk_1.default.green('\n ✓ Existing credentials verified.\n'));
590
+ return;
591
+ }
592
+ }
593
+ catch (e) {
594
+ if (e instanceof Error && e.message.startsWith('Credential verification failed'))
595
+ throw e;
596
+ console.log(' Could not read .fuel-credentials — prompting for credentials.');
597
+ }
598
+ }
599
+ credentials.AWS_ACCESS_KEY_ID = await ask(rl, 'AWS_ACCESS_KEY_ID');
600
+ credentials.AWS_SECRET_ACCESS_KEY = await ask(rl, 'AWS_SECRET_ACCESS_KEY');
601
+ credentials.AWS_REGION = await ask(rl, 'AWS_REGION', 'us-east-1');
602
+ credentials.GITHUB_TOKEN = await ask(rl, 'GITHUB_TOKEN');
603
+ credentials.GITHUB_USERNAME = await ask(rl, 'GITHUB_USERNAME');
604
+ credentials.GITHUB_ORGANIZATION = await ask(rl, 'GITHUB_ORGANIZATION');
605
+ console.log('\n Verifying credentials...');
606
+ const [stsResult, ghUserResult, ghOrgResult] = await Promise.all([
607
+ tryGetAwsAccountId(credentials),
608
+ tryGetGithubUser(credentials),
609
+ tryGetGithubOrg(credentials),
610
+ ]);
611
+ if ('accountId' in stsResult) {
612
+ console.log(` AWS Account: ${chalk_1.default.green(stsResult.accountId)}`);
613
+ }
614
+ if ('login' in ghUserResult) {
615
+ console.log(` GitHub User: ${chalk_1.default.green(ghUserResult.login)}`);
616
+ }
617
+ if ('login' in ghOrgResult) {
618
+ console.log(` GitHub Org: ${chalk_1.default.green(ghOrgResult.login)}`);
619
+ }
620
+ assertCredentialResults(stsResult, ghUserResult, ghOrgResult);
621
+ await fs.writeFile(credFilePath, JSON.stringify(credentials, null, 2));
622
+ console.log(chalk_1.default.green('\n ✓') + ' Credentials written to .fuel-credentials');
623
+ const gitignorePath = path.resolve('.gitignore');
624
+ const CRED_LINE = '.fuel-credentials';
625
+ if (await fs.pathExists(gitignorePath)) {
626
+ const content = await fs.readFile(gitignorePath, 'utf-8');
627
+ if (!content.split('\n').some((l) => l.trim() === CRED_LINE)) {
628
+ await fs.appendFile(gitignorePath, `\n${CRED_LINE}\n`);
629
+ }
630
+ }
631
+ else {
632
+ await fs.writeFile(gitignorePath, `${CRED_LINE}\n`);
633
+ }
634
+ console.log('');
635
+ }
636
+ finally {
637
+ rl.close();
638
+ }
639
+ return;
640
+ }
559
641
  if (opts.template) {
560
642
  const outputPath = opts.output ? path.resolve(opts.output) : path.resolve('fuel.yml');
561
643
  if (await fs.pathExists(outputPath)) {
@@ -565,7 +647,7 @@ async function infraInit(opts) {
565
647
  await fs.writeFile(outputPath, schemaComment + YAML.stringify(exports.CONFIG_TEMPLATE));
566
648
  console.log(chalk_1.default.green('✓') + ` Config template written to ${outputPath}`);
567
649
  console.log('\nEdit the file with your project details, then run:\n' +
568
- ' fuel create:app my-app --deployment ecs --config fuel.yml\n');
650
+ ' fuel create:app my-app --config fuel.yml\n');
569
651
  return;
570
652
  }
571
653
  const rl = (0, promises_1.createInterface)({ input: process.stdin, output: process.stdout });