@firestartr/cli 1.54.0-snapshot-6 → 1.54.0-snapshot-7

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.
package/build/index.js CHANGED
@@ -151708,7 +151708,7 @@ module.exports = exports.default;
151708
151708
 
151709
151709
  /***/ }),
151710
151710
 
151711
- /***/ 60762:
151711
+ /***/ 89323:
151712
151712
  /***/ ((module, exports) => {
151713
151713
 
151714
151714
 
@@ -151775,7 +151775,7 @@ var _isArrayLike = __nccwpck_require__(10860);
151775
151775
 
151776
151776
  var _isArrayLike2 = _interopRequireDefault(_isArrayLike);
151777
151777
 
151778
- var _getIterator = __nccwpck_require__(60762);
151778
+ var _getIterator = __nccwpck_require__(89323);
151779
151779
 
151780
151780
  var _getIterator2 = _interopRequireDefault(_getIterator);
151781
151781
 
@@ -357285,10 +357285,13 @@ class RevisionNormalizer extends Normalizer {
357285
357285
  }
357286
357286
  }
357287
357287
 
357288
+ // EXTERNAL MODULE: external "fs/promises"
357289
+ var external_fs_promises_ = __nccwpck_require__(73292);
357288
357290
  ;// CONCATENATED MODULE: ../cdk8s_renderer/src/normalizers/tfworkspace.ts
357289
357291
 
357290
357292
 
357291
357293
 
357294
+
357292
357295
  class TFWorkspaceNormalizer extends Normalizer {
357293
357296
  constructor() {
357294
357297
  super(...arguments);
@@ -357316,6 +357319,15 @@ class TFWorkspaceNormalizer extends Normalizer {
357316
357319
  const normalizedContent = await normalizeModuleContent(dirTfRootModule);
357317
357320
  cr.spec['module'] = normalizedContent;
357318
357321
  }
357322
+ if ('files' in claim.providers.terraform) {
357323
+ try {
357324
+ const additionalFiles = await loadAdditionalFiles(claim.providers.terraform['files'], external_path_.dirname(claimPath));
357325
+ cr.spec['files'] = additionalFiles;
357326
+ }
357327
+ catch (err) {
357328
+ throw new Error(`Loading additional files for TFWorkspace: ${claim.name}: ${err && err.message ? err.message : err}`);
357329
+ }
357330
+ }
357319
357331
  return cr;
357320
357332
  },
357321
357333
  identify() {
@@ -357328,7 +357340,9 @@ class TFWorkspaceNormalizer extends Normalizer {
357328
357340
  async function normalizeModuleContent(tfRootModulePath) {
357329
357341
  let content = '';
357330
357342
  const files = {};
357331
- await crawl(tfRootModulePath, (entry) => {
357343
+ await crawl(tfRootModulePath,
357344
+ // bring all files, not only tf
357345
+ (entry) => {
357332
357346
  return entry.endsWith('.tf');
357333
357347
  }, (entry, data) => {
357334
357348
  files[entry] = data;
@@ -357342,6 +357356,33 @@ ${files[entry]}
357342
357356
  });
357343
357357
  return content;
357344
357358
  }
357359
+ async function loadAdditionalFiles(files, tfRootModulePath) {
357360
+ const specFiles = [];
357361
+ for (const additionalFile of files) {
357362
+ const specFile = {
357363
+ path: additionalFile.destination,
357364
+ content: await loadAdditionalFile(additionalFile.source, tfRootModulePath),
357365
+ };
357366
+ specFiles.push(specFile);
357367
+ }
357368
+ return specFiles;
357369
+ }
357370
+ async function loadAdditionalFile(source, tfRootModulePath) {
357371
+ try {
357372
+ const filePath = external_path_.join(tfRootModulePath, source);
357373
+ const stats = await external_fs_promises_.stat(filePath);
357374
+ if (!stats.isFile()) {
357375
+ throw new Error(`${source} is not a file`);
357376
+ }
357377
+ const content = await external_fs_promises_.readFile(filePath, {
357378
+ encoding: 'utf8',
357379
+ });
357380
+ return Buffer.from(content, 'utf8').toString('base64');
357381
+ }
357382
+ catch (err) {
357383
+ throw new Error(`Loading additional tfworkspace file ${source}: ${err && err.message ? err.message : err}`);
357384
+ }
357385
+ }
357345
357386
  function validatek8sLimits(moduleContent) {
357346
357387
  const moduleLength = moduleContent.length;
357347
357388
  return moduleLength > 0 && moduleLength < 750000;
@@ -358120,6 +358161,14 @@ const external_node_child_process_namespaceObject = __WEBPACK_EXTERNAL_createReq
358120
358161
  secrets: {
358121
358162
  $ref: 'firestartr.dev://github/GithubComponentClaimSecrets',
358122
358163
  },
358164
+ topics: {
358165
+ type: 'array',
358166
+ items: {
358167
+ type: 'string',
358168
+ maxLength: 50,
358169
+ pattern: '^[a-z0-9][a-z0-9-]*$',
358170
+ },
358171
+ },
358123
358172
  },
358124
358173
  required: ['visibility', 'org'],
358125
358174
  },
@@ -358335,6 +358384,26 @@ const GithubSchemas = [
358335
358384
  /* harmony default export */ const terraform_schema = ({
358336
358385
  $id: 'TerraformProvider',
358337
358386
  definitions: {
358387
+ TerraformProviderFiles: {
358388
+ $id: 'firestartr.dev://terraform/TerraformProviderFiles',
358389
+ description: 'A list of files included in the terraform project',
358390
+ type: 'array',
358391
+ items: {
358392
+ type: 'object',
358393
+ properties: {
358394
+ source: {
358395
+ type: 'string',
358396
+ description: 'path of the original file to include in the final CR',
358397
+ },
358398
+ destination: {
358399
+ type: 'string',
358400
+ description: 'path where the file will be placed in the final terraform project',
358401
+ },
358402
+ },
358403
+ additionalProperties: false,
358404
+ required: ['source', 'destination'],
358405
+ },
358406
+ },
358338
358407
  TerraformProvider: {
358339
358408
  $id: 'firestartr.dev://terraform/TerraformProvider',
358340
358409
  type: 'object',
@@ -358364,6 +358433,9 @@ const GithubSchemas = [
358364
358433
  type: 'string',
358365
358434
  enum: ['remote', 'inline', 'Remote', 'Inline'],
358366
358435
  },
358436
+ files: {
358437
+ $ref: 'firestartr.dev://terraform/TerraformProviderFiles',
358438
+ },
358367
358439
  sync: {
358368
358440
  type: 'object',
358369
358441
  properties: {
@@ -362246,6 +362318,7 @@ function toJson_FirestartrGithubRepositorySpecRepo(obj) {
362246
362318
  'hasIssues': obj.hasIssues,
362247
362319
  'hasWiki': obj.hasWiki,
362248
362320
  'pages': obj.pages,
362321
+ 'topics': obj.topics?.map(y => y),
362249
362322
  'visibility': obj.visibility,
362250
362323
  'defaultBranch': obj.defaultBranch,
362251
362324
  'additionalBranches': obj.additionalBranches?.map(y => toJson_FirestartrGithubRepositorySpecRepoAdditionalBranches(y)),
@@ -363378,6 +363451,7 @@ function toJson_FirestartrTerraformWorkspaceSpec(obj) {
363378
363451
  'module': obj.module,
363379
363452
  'source': obj.source,
363380
363453
  'values': obj.values,
363454
+ 'files': obj.files?.map(y => toJson_FirestartrTerraformWorkspaceSpecFiles(y)),
363381
363455
  'references': obj.references?.map(y => toJson_FirestartrTerraformWorkspaceSpecReferences(y)),
363382
363456
  'writeConnectionSecretToRef': toJson_FirestartrTerraformWorkspaceSpecWriteConnectionSecretToRef(obj.writeConnectionSecretToRef),
363383
363457
  };
@@ -363424,6 +363498,21 @@ var FirestartrTerraformWorkspaceSpecSource;
363424
363498
  /** Inline */
363425
363499
  FirestartrTerraformWorkspaceSpecSource["INLINE"] = "Inline";
363426
363500
  })(FirestartrTerraformWorkspaceSpecSource || (FirestartrTerraformWorkspaceSpecSource = {}));
363501
+ /**
363502
+ * Converts an object of type 'FirestartrTerraformWorkspaceSpecFiles' to JSON representation.
363503
+ */
363504
+ /* eslint-disable max-len, @stylistic/max-len, quote-props, @stylistic/quote-props */
363505
+ function toJson_FirestartrTerraformWorkspaceSpecFiles(obj) {
363506
+ if (obj === undefined) {
363507
+ return undefined;
363508
+ }
363509
+ const result = {
363510
+ 'content': obj.content,
363511
+ 'path': obj.path,
363512
+ };
363513
+ // filter undefined values
363514
+ return Object.entries(result).reduce((r, i) => (i[1] === undefined) ? r : ({ ...r, [i[0]]: i[1] }), {});
363515
+ }
363427
363516
  /**
363428
363517
  * Converts an object of type 'FirestartrTerraformWorkspaceSpecReferences' to JSON representation.
363429
363518
  */
@@ -364371,6 +364460,7 @@ class GithubRepositoryChart extends BaseGithubChart {
364371
364460
  defaultBranch: claim.providers.github?.branchStrategy?.defaultBranch,
364372
364461
  codeowners: createCodeOwnersData(claim),
364373
364462
  additionalBranches: claim.providers.github.additionalBranches || [],
364463
+ topics: claim.providers.github.topics || [],
364374
364464
  },
364375
364465
  actions,
364376
364466
  permissions: this.createPermissions(claim),
@@ -370405,7 +370495,7 @@ async function runTerraform(entity, command, stream) {
370405
370495
  // filter environment variables to exclude those starting with 'GITHUB'
370406
370496
  const env = Object.fromEntries(Object.entries(process.env).filter(([key]) => !key.startsWith('GITHUB')));
370407
370497
  return new Promise((ok, ko) => {
370408
- const terraformProcess = (0,external_child_process_.spawn)('terraform', [...command], {
370498
+ const terraformProcess = (0,external_child_process_.spawn)('tofu', [...command], {
370409
370499
  stdio: ['inherit', 'pipe', 'pipe'],
370410
370500
  cwd: workDir,
370411
370501
  env,
@@ -371805,7 +371895,7 @@ async function output(path, secrets) {
371805
371895
  }
371806
371896
  async function tfExec(path, args, secrets, extraArgs = ['-input=false'], stream) {
371807
371897
  return new Promise((ok, ko) => {
371808
- const tfProcess = (0,external_child_process_.spawn)('terraform', args.concat(extraArgs), {
371898
+ const tfProcess = (0,external_child_process_.spawn)('tofu', args.concat(extraArgs), {
371809
371899
  cwd: path,
371810
371900
  stdio: ['inherit', 'pipe', 'pipe'],
371811
371901
  });
@@ -372284,6 +372374,37 @@ class WriterProviderJson extends writer {
372284
372374
  }
372285
372375
  }
372286
372376
 
372377
+ ;// CONCATENATED MODULE: ../terraform_provisioner/src/writer_additional_files.ts
372378
+
372379
+
372380
+
372381
+ class WriterAdditionalFiles extends writer {
372382
+ constructor(files) {
372383
+ super();
372384
+ this.files = files;
372385
+ }
372386
+ // this writer does not "write" anything per se
372387
+ // it just complies with the abstract class it inherits from
372388
+ async _render() {
372389
+ return '';
372390
+ }
372391
+ async writeToTerraformProject(projectPath) {
372392
+ for (const file of this.files) {
372393
+ try {
372394
+ const targetPath = external_path_.resolve(projectPath, file.path);
372395
+ const absProjectPath = external_path_.resolve(projectPath);
372396
+ if (!targetPath.startsWith(absProjectPath + external_path_.sep)) {
372397
+ throw new Error(`Path traversal detected: ${file.path}`);
372398
+ }
372399
+ await external_fs_promises_.writeFile(targetPath, Buffer.from(file.content, 'base64').toString('utf8'));
372400
+ }
372401
+ catch (err) {
372402
+ throw new Error(`Error writing additional file: ${file.path}: ${err}`);
372403
+ }
372404
+ }
372405
+ }
372406
+ }
372407
+
372287
372408
  ;// CONCATENATED MODULE: ../terraform_provisioner/src/project_tf.ts
372288
372409
 
372289
372410
 
@@ -372291,6 +372412,7 @@ class WriterProviderJson extends writer {
372291
372412
 
372292
372413
 
372293
372414
 
372415
+
372294
372416
  class project_tf_TFProjectManager {
372295
372417
  constructor(ctx) {
372296
372418
  this.tfOutput = '';
@@ -372298,6 +372420,9 @@ class project_tf_TFProjectManager {
372298
372420
  this.mainTfWriter = new WriterMainTf(ctx.inline, ctx.requiredProviders, ctx.backend, ctx.tfStateKey);
372299
372421
  this.providerJsonWriter = new WriterProviderJson(ctx.inline, ctx.requiredProviders, ctx.backend, ctx.tfStateKey);
372300
372422
  this.tfVarsJsonWriter = new WriterTfVarsJson(ctx.values, ctx.references);
372423
+ if ('files' in ctx) {
372424
+ this.additionalFilesWriter = new WriterAdditionalFiles(ctx['files']);
372425
+ }
372301
372426
  this.secrets = ctx.secrets;
372302
372427
  }
372303
372428
  setStreamCallbacks(fnData, fnEnd, reopen = true) {
@@ -372318,6 +372443,10 @@ class project_tf_TFProjectManager {
372318
372443
  this.providerJsonWriter.writeToTerraformProject(external_path_.join(this.projectPath, 'firestartr-providers.tf.json'));
372319
372444
  await this.tfVarsJsonWriter.render();
372320
372445
  this.tfVarsJsonWriter.writeToTerraformProject(external_path_.join(this.projectPath, 'terraform.tfvars.json'));
372446
+ if (this.additionalFilesWriter) {
372447
+ await this.additionalFilesWriter.render();
372448
+ await this.additionalFilesWriter.writeToTerraformProject(this.projectPath);
372449
+ }
372321
372450
  }
372322
372451
  async __init() {
372323
372452
  this.tfOutput += await init(this.projectPath, this.secrets, this.stream);
@@ -372449,6 +372578,7 @@ var lib_ajv_default = /*#__PURE__*/__nccwpck_require__.n(lib_ajv);
372449
372578
 
372450
372579
 
372451
372580
 
372581
+
372452
372582
  class TFProjectManagerRemote {
372453
372583
  constructor(ctx) {
372454
372584
  this.tfOutput = '';
@@ -372457,6 +372587,9 @@ class TFProjectManagerRemote {
372457
372587
  this.secrets = ctx.secrets;
372458
372588
  this.writerTerraform = new WriterTerraform(ctx.requiredProviders, ctx.backend, ctx.tfStateKey, false);
372459
372589
  this.providerJsonWriter = new WriterProviderJson(ctx.inline, ctx.requiredProviders, ctx.backend, ctx.tfStateKey);
372590
+ if ('files' in ctx) {
372591
+ this.additionalFilesWriter = new WriterAdditionalFiles(ctx['files']);
372592
+ }
372460
372593
  this.tfVarsJsonWriter = new WriterTfVarsJson(ctx.values, ctx.references);
372461
372594
  }
372462
372595
  getOutput() {
@@ -372480,6 +372613,10 @@ class TFProjectManagerRemote {
372480
372613
  this.providerJsonWriter.writeToTerraformProject(external_path_.join(this.projectPath, 'firestartr-providers.tf.json'));
372481
372614
  await this.tfVarsJsonWriter.render();
372482
372615
  this.tfVarsJsonWriter.writeToTerraformProject(external_path_.join(this.projectPath, 'terraform.tfvars.json'));
372616
+ if (this.additionalFilesWriter) {
372617
+ await this.additionalFilesWriter.render();
372618
+ await this.additionalFilesWriter.writeToTerraformProject(this.projectPath);
372619
+ }
372483
372620
  }
372484
372621
  async __configGit() {
372485
372622
  external_fs_.existsSync('/home/node/.gitconfig') &&
@@ -373390,6 +373527,9 @@ function buildProvisionerContext(item, deps) {
373390
373527
  context['type'] = item.spec.source;
373391
373528
  context['inline'] = item.spec.module;
373392
373529
  context['module'] = item.spec.module;
373530
+ if ('files' in item.spec) {
373531
+ context['files'] = item.spec.files;
373532
+ }
373393
373533
  context['values'] = JSON.parse(item.spec.values);
373394
373534
  const result = adaptProviders(item, deps);
373395
373535
  context['requiredProviders'] = result.providers;
@@ -1014,6 +1014,10 @@ export interface FirestartrGithubRepositorySpecRepo {
1014
1014
  * @schema FirestartrGithubRepositorySpecRepo#pages
1015
1015
  */
1016
1016
  readonly pages?: any;
1017
+ /**
1018
+ * @schema FirestartrGithubRepositorySpecRepo#topics
1019
+ */
1020
+ readonly topics?: string[];
1017
1021
  /**
1018
1022
  * @schema FirestartrGithubRepositorySpecRepo#visibility
1019
1023
  */
@@ -2304,6 +2308,12 @@ export interface FirestartrTerraformWorkspaceSpec {
2304
2308
  * @schema FirestartrTerraformWorkspaceSpec#values
2305
2309
  */
2306
2310
  readonly values?: string;
2311
+ /**
2312
+ * A list of files to be created in the Terraform workspace directory.
2313
+ *
2314
+ * @schema FirestartrTerraformWorkspaceSpec#files
2315
+ */
2316
+ readonly files?: FirestartrTerraformWorkspaceSpecFiles[];
2307
2317
  /**
2308
2318
  * @schema FirestartrTerraformWorkspaceSpec#references
2309
2319
  */
@@ -2356,6 +2366,27 @@ export declare enum FirestartrTerraformWorkspaceSpecSource {
2356
2366
  /** Inline */
2357
2367
  INLINE = "Inline"
2358
2368
  }
2369
+ /**
2370
+ * @schema FirestartrTerraformWorkspaceSpecFiles
2371
+ */
2372
+ export interface FirestartrTerraformWorkspaceSpecFiles {
2373
+ /**
2374
+ * The base64 encoded content of the file.
2375
+ *
2376
+ * @schema FirestartrTerraformWorkspaceSpecFiles#content
2377
+ */
2378
+ readonly content: string;
2379
+ /**
2380
+ * The target relative path for the file within the Terraform workspace directory.
2381
+ *
2382
+ * @schema FirestartrTerraformWorkspaceSpecFiles#path
2383
+ */
2384
+ readonly path: string;
2385
+ }
2386
+ /**
2387
+ * Converts an object of type 'FirestartrTerraformWorkspaceSpecFiles' to JSON representation.
2388
+ */
2389
+ export declare function toJson_FirestartrTerraformWorkspaceSpecFiles(obj: FirestartrTerraformWorkspaceSpecFiles | undefined): Record<string, any> | undefined;
2359
2390
  /**
2360
2391
  * @schema FirestartrTerraformWorkspaceSpecReferences
2361
2392
  */
@@ -20,6 +20,7 @@ export declare class CatalogTFWorkspaceChart extends BaseCatalogChart {
20
20
  source: import("../../../imports/firestartr.dev").FirestartrTerraformWorkspaceSpecSource;
21
21
  module: string;
22
22
  values: any;
23
+ files: import("../../claims/tfworkspaces/tfworkspace").TerraformProviderAdditionalFiles;
23
24
  context: {
24
25
  providers: {
25
26
  name: string;
@@ -505,6 +505,14 @@ declare const schemas: {
505
505
  secrets: {
506
506
  $ref: string;
507
507
  };
508
+ topics: {
509
+ type: string;
510
+ items: {
511
+ type: string;
512
+ maxLength: number;
513
+ pattern: string;
514
+ };
515
+ };
508
516
  };
509
517
  required: string[];
510
518
  $ref?: undefined;
@@ -651,6 +659,26 @@ declare const schemas: {
651
659
  })[] | {
652
660
  $id: string;
653
661
  definitions: {
662
+ TerraformProviderFiles: {
663
+ $id: string;
664
+ description: string;
665
+ type: string;
666
+ items: {
667
+ type: string;
668
+ properties: {
669
+ source: {
670
+ type: string;
671
+ description: string;
672
+ };
673
+ destination: {
674
+ type: string;
675
+ description: string;
676
+ };
677
+ };
678
+ additionalProperties: boolean;
679
+ required: string[];
680
+ };
681
+ };
654
682
  TerraformProvider: {
655
683
  $id: string;
656
684
  type: string;
@@ -674,6 +702,9 @@ declare const schemas: {
674
702
  type: string;
675
703
  enum: string[];
676
704
  };
705
+ files: {
706
+ $ref: string;
707
+ };
677
708
  sync: {
678
709
  type: string;
679
710
  properties: {
@@ -35,6 +35,14 @@ declare const _default: {
35
35
  secrets: {
36
36
  $ref: string;
37
37
  };
38
+ topics: {
39
+ type: string;
40
+ items: {
41
+ type: string;
42
+ maxLength: number;
43
+ pattern: string;
44
+ };
45
+ };
38
46
  };
39
47
  required: string[];
40
48
  $ref?: undefined;
@@ -140,6 +140,14 @@ export declare const GithubSchemas: ({
140
140
  secrets: {
141
141
  $ref: string;
142
142
  };
143
+ topics: {
144
+ type: string;
145
+ items: {
146
+ type: string;
147
+ maxLength: number;
148
+ pattern: string;
149
+ };
150
+ };
143
151
  };
144
152
  required: string[];
145
153
  $ref?: undefined;
@@ -28,6 +28,7 @@ export interface IGithubRepositoryClaim extends IComponentClaim {
28
28
  name: string;
29
29
  orphan: boolean;
30
30
  }[];
31
+ topics?: string[];
31
32
  };
32
33
  };
33
34
  }
@@ -1,6 +1,26 @@
1
1
  export declare const TerraformSchemas: {
2
2
  $id: string;
3
3
  definitions: {
4
+ TerraformProviderFiles: {
5
+ $id: string;
6
+ description: string;
7
+ type: string;
8
+ items: {
9
+ type: string;
10
+ properties: {
11
+ source: {
12
+ type: string;
13
+ description: string;
14
+ };
15
+ destination: {
16
+ type: string;
17
+ description: string;
18
+ };
19
+ };
20
+ additionalProperties: boolean;
21
+ required: string[];
22
+ };
23
+ };
4
24
  TerraformProvider: {
5
25
  $id: string;
6
26
  type: string;
@@ -24,6 +44,9 @@ export declare const TerraformSchemas: {
24
44
  type: string;
25
45
  enum: string[];
26
46
  };
47
+ files: {
48
+ $ref: string;
49
+ };
27
50
  sync: {
28
51
  type: string;
29
52
  properties: {
@@ -1,6 +1,26 @@
1
1
  declare const _default: {
2
2
  $id: string;
3
3
  definitions: {
4
+ TerraformProviderFiles: {
5
+ $id: string;
6
+ description: string;
7
+ type: string;
8
+ items: {
9
+ type: string;
10
+ properties: {
11
+ source: {
12
+ type: string;
13
+ description: string;
14
+ };
15
+ destination: {
16
+ type: string;
17
+ description: string;
18
+ };
19
+ };
20
+ additionalProperties: boolean;
21
+ required: string[];
22
+ };
23
+ };
4
24
  TerraformProvider: {
5
25
  $id: string;
6
26
  type: string;
@@ -24,6 +44,9 @@ declare const _default: {
24
44
  type: string;
25
45
  enum: string[];
26
46
  };
47
+ files: {
48
+ $ref: string;
49
+ };
27
50
  sync: {
28
51
  type: string;
29
52
  properties: {
@@ -1,5 +1,10 @@
1
1
  import { FirestartrTerraformWorkspaceSpecSource } from '../../../imports/firestartr.dev';
2
2
  import { Workspace } from '../base/workspace';
3
+ export interface TerraformProviderAdditionalFile {
4
+ source: string;
5
+ destination: string;
6
+ }
7
+ export type TerraformProviderAdditionalFiles = TerraformProviderAdditionalFile[];
3
8
  export interface TFWorkspace extends Workspace {
4
9
  kind: 'TFWorkspaceClaim';
5
10
  resourceType: string;
@@ -10,6 +15,7 @@ export interface TFWorkspace extends Workspace {
10
15
  source: FirestartrTerraformWorkspaceSpecSource.INLINE | FirestartrTerraformWorkspaceSpecSource.REMOTE;
11
16
  module: string;
12
17
  values: any;
18
+ files: TerraformProviderAdditionalFiles;
13
19
  context: {
14
20
  providers: {
15
21
  name: string;
@@ -2,11 +2,13 @@
2
2
  import { WriterMainTf } from './writer_main_tf';
3
3
  import { WriterTfVarsJson } from './writer_tfvars_json';
4
4
  import { WriterProviderJson } from './writer_provider_tf_json';
5
+ import { WriterAdditionalFiles } from './writer_additional_files';
5
6
  import { PassThrough } from 'stream';
6
7
  export declare class TFProjectManager {
7
8
  mainTfWriter: WriterMainTf;
8
9
  providerJsonWriter: WriterProviderJson;
9
10
  tfVarsJsonWriter: WriterTfVarsJson;
11
+ additionalFilesWriter: WriterAdditionalFiles;
10
12
  secrets: any[];
11
13
  projectPath: string;
12
14
  tfOutput: any;
@@ -2,11 +2,13 @@
2
2
  import { WriterTerraform } from './writer_terraform';
3
3
  import { WriterTfVarsJson } from './writer_tfvars_json';
4
4
  import { WriterProviderJson } from './writer_provider_tf_json';
5
+ import { WriterAdditionalFiles } from './writer_additional_files';
5
6
  import { PassThrough } from 'stream';
6
7
  export declare class TFProjectManagerRemote {
7
8
  writerTerraform: WriterTerraform;
8
9
  providerJsonWriter: WriterProviderJson;
9
10
  tfVarsJsonWriter: WriterTfVarsJson;
11
+ additionalFilesWriter: WriterAdditionalFiles;
10
12
  ctx: any;
11
13
  secrets: any[];
12
14
  projectPath: string;
@@ -0,0 +1,13 @@
1
+ import Writer from './writer';
2
+ export interface FirestartrTerraformWorkspaceSpecFile {
3
+ content: string;
4
+ path: string;
5
+ }
6
+ type FirestartrTerraformWorkspaceSpecFiles = FirestartrTerraformWorkspaceSpecFile[];
7
+ export declare class WriterAdditionalFiles extends Writer {
8
+ files: FirestartrTerraformWorkspaceSpecFile[];
9
+ constructor(files: FirestartrTerraformWorkspaceSpecFiles);
10
+ _render(): Promise<string>;
11
+ writeToTerraformProject(projectPath: string): Promise<void>;
12
+ }
13
+ export {};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@firestartr/cli",
3
- "version": "1.54.0-snapshot-6",
3
+ "version": "1.54.0-snapshot-7",
4
4
  "private": false,
5
5
  "description": "Commandline tool",
6
6
  "main": "build/main.js",