@firestartr/cli 1.54.0-snapshot-2 → 1.54.0-snapshot-4

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
@@ -357283,8 +357283,10 @@ class TFWorkspaceNormalizer extends Normalizer {
357283
357283
  async function normalizeModuleContent(tfRootModulePath) {
357284
357284
  let content = '';
357285
357285
  const files = {};
357286
- await crawl(tfRootModulePath, (entry) => {
357287
- return entry.endsWith('.tf');
357286
+ await crawl(tfRootModulePath,
357287
+ // bring all files, not only tf
357288
+ (_) => {
357289
+ return true;
357288
357290
  }, (entry, data) => {
357289
357291
  files[entry] = data;
357290
357292
  });
@@ -358548,7 +358550,11 @@ const ArgoCDSchemas = [argocd_schema];
358548
358550
  additionalProperties: false,
358549
358551
  type: 'object',
358550
358552
  properties: {
358551
- secretName: { type: 'string' },
358553
+ secretName: {
358554
+ type: 'string',
358555
+ description: 'Validation for Kubernetes Secret keys, allowing only alphanumeric characters, hyphens, underscores, and dots.',
358556
+ pattern: '^([a-zA-Z0-9._-]+)$',
358557
+ },
358552
358558
  remoteRef: { type: 'string' },
358553
358559
  },
358554
358560
  required: ['secretName'],
@@ -358611,29 +358617,24 @@ const ArgoCDSchemas = [argocd_schema];
358611
358617
  allOf: [
358612
358618
  { $ref: 'firestartr.dev://common/ClaimProviderEnvelope' },
358613
358619
  {
358614
- anyOf: [
358615
- {
358616
- properties: {
358617
- externalSecrets: {
358618
- $ref: 'firestartr.dev://secrets/ExternalSecretsSection',
358619
- },
358620
- secretStore: {
358621
- $ref: 'firestartr.dev://secrets/SecretStore',
358622
- },
358623
- },
358624
- required: ['secretStore', 'externalSecrets'],
358620
+ type: 'object',
358621
+ properties: {
358622
+ externalSecrets: {
358623
+ $ref: 'firestartr.dev://secrets/ExternalSecretsSection',
358625
358624
  },
358626
- {
358627
- properties: {
358628
- pushSecrets: {
358629
- $ref: 'firestartr.dev://secrets/PushSecretsSection',
358630
- },
358631
- secretStore: {
358632
- $ref: 'firestartr.dev://secrets/SecretStore',
358633
- },
358634
- },
358635
- required: ['secretStore', 'pushSecrets'],
358625
+ secretStore: {
358626
+ $ref: 'firestartr.dev://secrets/SecretStore',
358636
358627
  },
358628
+ pushSecrets: {
358629
+ $ref: 'firestartr.dev://secrets/PushSecretsSection',
358630
+ },
358631
+ },
358632
+ // 1. MANDATORY RULE (ALWAYS): secretStore
358633
+ required: ['secretStore'],
358634
+ // 2. CONDITIONAL RULE (AT LEAST ONE): externalSecrets OR pushSecrets
358635
+ anyOf: [
358636
+ { required: ['externalSecrets'] },
358637
+ { required: ['pushSecrets'] },
358637
358638
  ],
358638
358639
  },
358639
358640
  ],
@@ -358861,7 +358862,7 @@ function checkGrep() {
358861
358862
  });
358862
358863
  });
358863
358864
  }
358864
- async function loadClaim(claimRef, org, defaults = loadClaimDefaults(), patchClaim = loader_patchClaim, loadInitializers, loadGlobals, loadOverrides, loadNormalizers, cwd, existingRefs = {}) {
358865
+ async function loadClaim(claimRef, org, defaults = loadClaimDefaults(), patchClaim = loader_patchClaim, loadInitializers, loadGlobals, loadOverrides, loadNormalizers, cwd, existingRefs = {}, postValidations = new Map()) {
358865
358866
  await checkGrep();
358866
358867
  let result = existingRefs;
358867
358868
  cdk8s_renderer_src_logger.info(`Load reference ${claimRef}`);
@@ -358899,7 +358900,7 @@ async function loadClaim(claimRef, org, defaults = loadClaimDefaults(), patchCla
358899
358900
  const references = extractAllRefs(catalog_common.io.toYaml(claim));
358900
358901
  for (const ref of references) {
358901
358902
  if (!result[ref]) {
358902
- const resolvedReferences = await loadClaim(ref, org, defaults, patchClaim, loadInitializers, loadGlobals, loadOverrides, loadNormalizers, cwd, result);
358903
+ const [resolvedReferences] = await loadClaim(ref, org, defaults, patchClaim, loadInitializers, loadGlobals, loadOverrides, loadNormalizers, cwd, result, postValidations);
358903
358904
  result = lodash_default().merge(result, resolvedReferences);
358904
358905
  }
358905
358906
  }
@@ -358907,7 +358908,7 @@ async function loadClaim(claimRef, org, defaults = loadClaimDefaults(), patchCla
358907
358908
  catch (err) {
358908
358909
  throw `Lazy Loading: ${err}`;
358909
358910
  }
358910
- return result;
358911
+ return [result, postValidations];
358911
358912
  }
358912
358913
  let LoadedClaims = {};
358913
358914
  let VisitedClaims = {};
@@ -359309,7 +359310,7 @@ async function loadClaimsList(claimRefList, claimsPath = config_getPath('claims'
359309
359310
  };
359310
359311
  const defaults = loadClaimDefaults();
359311
359312
  for await (const claimRef of claimRefList) {
359312
- const renderedClaimData = await loadClaim(claimRef, getOrg(), defaults, loader_patchClaim, loadInitializers, loadGlobals, loadOverrides, loadNormalizers, claimsPath);
359313
+ const [renderedClaimData] = await loadClaim(claimRef, getOrg(), defaults, loader_patchClaim, loadInitializers, loadGlobals, loadOverrides, loadNormalizers, claimsPath);
359313
359314
  data.renderClaims = lodash_default().merge(data.renderClaims, renderedClaimData);
359314
359315
  }
359315
359316
  const crClaimReferences = [];
@@ -365398,11 +365399,27 @@ async function renderClaim(catalogScope, firestartrScope, claim, patches, previo
365398
365399
  }
365399
365400
 
365400
365401
  ;// CONCATENATED MODULE: ../cdk8s_renderer/src/validations/crossReferences.ts
365402
+
365401
365403
  const IS_COMPONENT_CLAIM_REF = new RegExp(/^ComponentClaim-/);
365404
+ const IS_TF_WORKSPACE = new RegExp(/^TFWorkspaceClaim-/);
365402
365405
  function validateSubReferences(renderClaims) {
365403
365406
  for (const ref of Object.keys(renderClaims)) {
365404
365407
  if (IS_COMPONENT_CLAIM_REF.test(ref))
365405
365408
  validateClaimsSecretsRefs(ref, renderClaims);
365409
+ else if (IS_TF_WORKSPACE.test(ref))
365410
+ validateTFClaimsSecretsRefs(ref, renderClaims);
365411
+ }
365412
+ }
365413
+ function validateTFClaimsSecretsRefs(ref, renderClaims) {
365414
+ const claim = renderClaims[ref].claim;
365415
+ const values = claim.providers?.terraform?.values;
365416
+ const secretRefs = Object.values(values).filter((v) => isRepoSecretRef(v));
365417
+ for (const secret of secretRefs) {
365418
+ const [secretName, key] = secret.split(':').slice(2);
365419
+ const keyFound = searchSecretKey(renderClaims[`SecretsClaim-${secretName}`].claim, key);
365420
+ if (!keyFound) {
365421
+ throw new Error(`CrossReference error: TFWorkspaceClaim/${claim.name} references a non-existent secret key: '${secretName}:${key}'`);
365422
+ }
365406
365423
  }
365407
365424
  }
365408
365425
  function validateClaimsSecretsRefs(ref, renderClaims) {
@@ -371906,25 +371923,36 @@ class WriterBackend extends writer {
371906
371923
  class WriterProvider extends writer {
371907
371924
  constructor(providers) {
371908
371925
  super();
371926
+ this.jsonOutput = {};
371909
371927
  this.providers = providers;
371910
371928
  }
371929
+ async render(renderType = 'tf') {
371930
+ await this._render();
371931
+ if (renderType === 'tf') {
371932
+ return this.output.trim();
371933
+ }
371934
+ else if (renderType === 'json') {
371935
+ return JSON.stringify(this.jsonOutput, null, 2);
371936
+ }
371937
+ else {
371938
+ throw new Error(`Unsupported render type: ${renderType}`);
371939
+ }
371940
+ }
371911
371941
  async _render() {
371912
371942
  for (const provider of this.providers) {
371913
- this.output += this.__renderProvider(provider);
371943
+ if (provider.inline) {
371944
+ this.output += provider.inline + '\n';
371945
+ }
371946
+ else {
371947
+ this.__populateJsonOutput(provider);
371948
+ }
371914
371949
  }
371915
371950
  }
371916
- __renderProvider(provider) {
371917
- let configString = '';
371918
- if (provider.inline)
371919
- return provider.inline;
371920
- for (const key in provider.config) {
371921
- configString += `${key} = "${provider.config[key]}"\n`;
371951
+ __populateJsonOutput(provider) {
371952
+ if (this.jsonOutput[provider.name] === undefined) {
371953
+ this.jsonOutput[provider.name] = [];
371922
371954
  }
371923
- return `
371924
- provider "${provider.name}" {
371925
-
371926
- ${configString}
371927
- }`;
371955
+ this.jsonOutput[provider.name].push(provider.config);
371928
371956
  }
371929
371957
  }
371930
371958
 
@@ -371960,6 +371988,26 @@ class WriterTerraform extends writer {
371960
371988
  this.tfStateKey = tfStateKey;
371961
371989
  this.writeRequiredProvidersBlock = writeRequiredProvidersBlock;
371962
371990
  }
371991
+ async render(renderType = 'tf') {
371992
+ if (renderType === 'tf') {
371993
+ return super.render();
371994
+ }
371995
+ else {
371996
+ await this._renderJson();
371997
+ return this.output.trim();
371998
+ }
371999
+ }
372000
+ async _renderJson() {
372001
+ const providersString = await new WriterProvider(this.requiredProviders).render('json');
372002
+ if (providersString.trim() !== '{}') {
372003
+ this.output = `{
372004
+ "provider": ${providersString}
372005
+ }`; // providersString is already a JSON object string
372006
+ }
372007
+ else {
372008
+ this.output = ''; // No providers to include
372009
+ }
372010
+ }
371963
372011
  async _render() {
371964
372012
  const providersString = await new WriterProvider(this.requiredProviders).render();
371965
372013
  let backend = '';
@@ -372168,17 +372216,44 @@ function fCheckString(keys, refs) {
372168
372216
  return true;
372169
372217
  }
372170
372218
 
372219
+ ;// CONCATENATED MODULE: ../terraform_provisioner/src/writer_provider_tf_json.ts
372220
+
372221
+
372222
+
372223
+ class WriterProviderJson extends writer {
372224
+ constructor(mainBlock, providers, backend, tfStateKey) {
372225
+ super();
372226
+ this.mainBlock = mainBlock;
372227
+ this.providers = providers;
372228
+ this.backend = backend;
372229
+ this.tfStateKey = tfStateKey;
372230
+ }
372231
+ async _render() {
372232
+ this.output = await new WriterTerraform(this.providers, this.backend, this.tfStateKey, false).render('json');
372233
+ }
372234
+ writeToTerraformProject(mainTfPath) {
372235
+ if (this.output.trim() === '') {
372236
+ terraform_provisioner_src_logger.info(`Skipping writing ${mainTfPath} as there is no provider to write.`);
372237
+ }
372238
+ else {
372239
+ super.writeToTerraformProject(mainTfPath);
372240
+ }
372241
+ }
372242
+ }
372243
+
372171
372244
  ;// CONCATENATED MODULE: ../terraform_provisioner/src/project_tf.ts
372172
372245
 
372173
372246
 
372174
372247
 
372175
372248
 
372176
372249
 
372250
+
372177
372251
  class project_tf_TFProjectManager {
372178
372252
  constructor(ctx) {
372179
372253
  this.tfOutput = '';
372180
372254
  this.projectPath = ctx.projectPath;
372181
372255
  this.mainTfWriter = new WriterMainTf(ctx.inline, ctx.requiredProviders, ctx.backend, ctx.tfStateKey);
372256
+ this.providerJsonWriter = new WriterProviderJson(ctx.inline, ctx.requiredProviders, ctx.backend, ctx.tfStateKey);
372182
372257
  this.tfVarsJsonWriter = new WriterTfVarsJson(ctx.values, ctx.references);
372183
372258
  this.secrets = ctx.secrets;
372184
372259
  }
@@ -372195,7 +372270,9 @@ class project_tf_TFProjectManager {
372195
372270
  }
372196
372271
  async build() {
372197
372272
  await this.mainTfWriter.render();
372198
- this.mainTfWriter.writeToTerraformProject(external_path_.join(this.projectPath, 'main.tf'));
372273
+ this.mainTfWriter.writeToTerraformProject(external_path_.join(this.projectPath, 'firestartr-main.tf'));
372274
+ await this.providerJsonWriter.render();
372275
+ this.providerJsonWriter.writeToTerraformProject(external_path_.join(this.projectPath, 'firestartr-providers.tf.json'));
372199
372276
  await this.tfVarsJsonWriter.render();
372200
372277
  this.tfVarsJsonWriter.writeToTerraformProject(external_path_.join(this.projectPath, 'terraform.tfvars.json'));
372201
372278
  }
@@ -372328,14 +372405,16 @@ var lib_ajv_default = /*#__PURE__*/__nccwpck_require__.n(lib_ajv);
372328
372405
 
372329
372406
 
372330
372407
 
372408
+
372331
372409
  class TFProjectManagerRemote {
372332
372410
  constructor(ctx) {
372333
372411
  this.tfOutput = '';
372334
372412
  this.ctx = ctx;
372335
372413
  this.projectPath = ctx.projectPath;
372414
+ this.secrets = ctx.secrets;
372336
372415
  this.writerTerraform = new WriterTerraform(ctx.requiredProviders, ctx.backend, ctx.tfStateKey, false);
372416
+ this.providerJsonWriter = new WriterProviderJson(ctx.inline, ctx.requiredProviders, ctx.backend, ctx.tfStateKey);
372337
372417
  this.tfVarsJsonWriter = new WriterTfVarsJson(ctx.values, ctx.references);
372338
- this.secrets = ctx.secrets;
372339
372418
  }
372340
372419
  getOutput() {
372341
372420
  return this.tfOutput;
@@ -372353,7 +372432,9 @@ class TFProjectManagerRemote {
372353
372432
  await this.__configGit();
372354
372433
  await this.__initFromModule();
372355
372434
  await this.writerTerraform.render();
372356
- this.writerTerraform.writeToTerraformProject(external_path_.join(this.projectPath, 'terraform.tf'));
372435
+ this.writerTerraform.writeToTerraformProject(external_path_.join(this.projectPath, 'firestartr-terraform.tf'));
372436
+ await this.providerJsonWriter.render();
372437
+ this.providerJsonWriter.writeToTerraformProject(external_path_.join(this.projectPath, 'firestartr-providers.tf.json'));
372357
372438
  await this.tfVarsJsonWriter.render();
372358
372439
  this.tfVarsJsonWriter.writeToTerraformProject(external_path_.join(this.projectPath, 'terraform.tfvars.json'));
372359
372440
  }
@@ -373360,7 +373441,6 @@ function resolveReferences(item, deps) {
373360
373441
  try {
373361
373442
  const references = {};
373362
373443
  const itemReferences = item.spec.references;
373363
- console.dir(itemReferences);
373364
373444
  // if(!process.env.TONISILLO) process.exit(1)
373365
373445
  for (const iRef of itemReferences) {
373366
373446
  const ref = deps[`${iRef.ref.kind}-${iRef.ref.name}`];
@@ -374257,7 +374337,7 @@ async function tfWorkspacePlan(opts) {
374257
374337
  fDebug('Context built');
374258
374338
  const command = getCommandByStatus(status);
374259
374339
  fDebug('Running terraform provisioner');
374260
- const tfOutput = await runTerraformProvisioner(ctx, command);
374340
+ const tfOutput = await runTerraformProvisioner(ctx, command, undefined);
374261
374341
  fDebug('Terraform provisioner finished');
374262
374342
  fDebug('Publishing plan');
374263
374343
  await publishPlan(cr, tfOutput, prNumber, repo, owner);
@@ -887,6 +887,8 @@ declare const schemas: {
887
887
  properties: {
888
888
  secretName: {
889
889
  type: string;
890
+ description: string;
891
+ pattern: string;
890
892
  };
891
893
  remoteRef: {
892
894
  type: string;
@@ -947,31 +949,27 @@ declare const schemas: {
947
949
  description: string;
948
950
  allOf: ({
949
951
  $ref: string;
952
+ type?: undefined;
953
+ properties?: undefined;
954
+ required?: undefined;
950
955
  anyOf?: undefined;
951
956
  } | {
952
- anyOf: ({
953
- properties: {
954
- externalSecrets: {
955
- $ref: string;
956
- };
957
- secretStore: {
958
- $ref: string;
959
- };
960
- pushSecrets?: undefined;
957
+ type: string;
958
+ properties: {
959
+ externalSecrets: {
960
+ $ref: string;
961
961
  };
962
- required: string[];
963
- } | {
964
- properties: {
965
- pushSecrets: {
966
- $ref: string;
967
- };
968
- secretStore: {
969
- $ref: string;
970
- };
971
- externalSecrets?: undefined;
962
+ secretStore: {
963
+ $ref: string;
964
+ };
965
+ pushSecrets: {
966
+ $ref: string;
972
967
  };
968
+ };
969
+ required: string[];
970
+ anyOf: {
973
971
  required: string[];
974
- })[];
972
+ }[];
975
973
  $ref?: undefined;
976
974
  })[];
977
975
  };
@@ -31,6 +31,8 @@ declare const _default: {
31
31
  properties: {
32
32
  secretName: {
33
33
  type: string;
34
+ description: string;
35
+ pattern: string;
34
36
  };
35
37
  remoteRef: {
36
38
  type: string;
@@ -91,31 +93,27 @@ declare const _default: {
91
93
  description: string;
92
94
  allOf: ({
93
95
  $ref: string;
96
+ type?: undefined;
97
+ properties?: undefined;
98
+ required?: undefined;
94
99
  anyOf?: undefined;
95
100
  } | {
96
- anyOf: ({
97
- properties: {
98
- externalSecrets: {
99
- $ref: string;
100
- };
101
- secretStore: {
102
- $ref: string;
103
- };
104
- pushSecrets?: undefined;
101
+ type: string;
102
+ properties: {
103
+ externalSecrets: {
104
+ $ref: string;
105
105
  };
106
- required: string[];
107
- } | {
108
- properties: {
109
- pushSecrets: {
110
- $ref: string;
111
- };
112
- secretStore: {
113
- $ref: string;
114
- };
115
- externalSecrets?: undefined;
106
+ secretStore: {
107
+ $ref: string;
108
+ };
109
+ pushSecrets: {
110
+ $ref: string;
116
111
  };
112
+ };
113
+ required: string[];
114
+ anyOf: {
117
115
  required: string[];
118
- })[];
116
+ }[];
119
117
  $ref?: undefined;
120
118
  })[];
121
119
  };
@@ -31,6 +31,8 @@ export declare const SecretsSchemas: {
31
31
  properties: {
32
32
  secretName: {
33
33
  type: string;
34
+ description: string;
35
+ pattern: string;
34
36
  };
35
37
  remoteRef: {
36
38
  type: string;
@@ -91,31 +93,27 @@ export declare const SecretsSchemas: {
91
93
  description: string;
92
94
  allOf: ({
93
95
  $ref: string;
96
+ type?: undefined;
97
+ properties?: undefined;
98
+ required?: undefined;
94
99
  anyOf?: undefined;
95
100
  } | {
96
- anyOf: ({
97
- properties: {
98
- externalSecrets: {
99
- $ref: string;
100
- };
101
- secretStore: {
102
- $ref: string;
103
- };
104
- pushSecrets?: undefined;
101
+ type: string;
102
+ properties: {
103
+ externalSecrets: {
104
+ $ref: string;
105
105
  };
106
- required: string[];
107
- } | {
108
- properties: {
109
- pushSecrets: {
110
- $ref: string;
111
- };
112
- secretStore: {
113
- $ref: string;
114
- };
115
- externalSecrets?: undefined;
106
+ secretStore: {
107
+ $ref: string;
108
+ };
109
+ pushSecrets: {
110
+ $ref: string;
116
111
  };
112
+ };
113
+ required: string[];
114
+ anyOf: {
117
115
  required: string[];
118
- })[];
116
+ }[];
119
117
  $ref?: undefined;
120
118
  })[];
121
119
  };
@@ -2,5 +2,5 @@ import { InitializerPatches } from '../initializers/base';
2
2
  import { GlobalSection } from '../globals/base';
3
3
  import { OverriderPatches } from '../overriders/base';
4
4
  import { Normalizer } from '../normalizers/base';
5
- export declare function loadClaim(claimRef: string, org: string, defaults: any, patchClaim: (claim: any, defaults: any) => any, loadInitializers: (claim: any) => Promise<InitializerPatches[]>, loadGlobals: (claim: any) => Promise<GlobalSection[]>, loadOverrides: (claim: any) => OverriderPatches[], loadNormalizers: (claim: any, path: string) => Promise<Normalizer[]>, cwd?: string, existingRefs?: any): Promise<any>;
5
+ export declare function loadClaim(claimRef: string, org: string, defaults: any, patchClaim: (claim: any, defaults: any) => any, loadInitializers: (claim: any) => Promise<InitializerPatches[]>, loadGlobals: (claim: any) => Promise<GlobalSection[]>, loadOverrides: (claim: any) => OverriderPatches[], loadNormalizers: (claim: any, path: string) => Promise<Normalizer[]>, cwd?: string, existingRefs?: any, postValidations?: Map<string, Function[]>): Promise<any[]>;
6
6
  export declare function resetLazyLoader(): void;
@@ -1,9 +1,11 @@
1
1
  /// <reference types="node" />
2
2
  import { WriterMainTf } from './writer_main_tf';
3
3
  import { WriterTfVarsJson } from './writer_tfvars_json';
4
+ import { WriterProviderJson } from './writer_provider_tf_json';
4
5
  import { PassThrough } from 'stream';
5
6
  export declare class TFProjectManager {
6
7
  mainTfWriter: WriterMainTf;
8
+ providerJsonWriter: WriterProviderJson;
7
9
  tfVarsJsonWriter: WriterTfVarsJson;
8
10
  secrets: any[];
9
11
  projectPath: string;
@@ -1,9 +1,11 @@
1
1
  /// <reference types="node" />
2
2
  import { WriterTerraform } from './writer_terraform';
3
3
  import { WriterTfVarsJson } from './writer_tfvars_json';
4
+ import { WriterProviderJson } from './writer_provider_tf_json';
4
5
  import { PassThrough } from 'stream';
5
6
  export declare class TFProjectManagerRemote {
6
7
  writerTerraform: WriterTerraform;
8
+ providerJsonWriter: WriterProviderJson;
7
9
  tfVarsJsonWriter: WriterTfVarsJson;
8
10
  ctx: any;
9
11
  secrets: any[];
@@ -1,7 +1,9 @@
1
1
  import Writer from './writer';
2
2
  export declare class WriterProvider extends Writer {
3
3
  providers: any[];
4
+ jsonOutput: {};
4
5
  constructor(providers: any[]);
6
+ render(renderType?: string): Promise<string>;
5
7
  _render(): Promise<void>;
6
- __renderProvider(provider: any): any;
8
+ __populateJsonOutput(provider: any): void;
7
9
  }
@@ -0,0 +1,10 @@
1
+ import Writer from './writer';
2
+ export declare class WriterProviderJson extends Writer {
3
+ providers: Array<any>;
4
+ mainBlock: string;
5
+ tfStateKey: string;
6
+ backend: any;
7
+ constructor(mainBlock: string, providers: Array<any>, backend: any, tfStateKey: string);
8
+ _render(): Promise<void>;
9
+ writeToTerraformProject(mainTfPath: string): void;
10
+ }
@@ -5,5 +5,7 @@ export declare class WriterTerraform extends Writer {
5
5
  backend: any;
6
6
  tfStateKey: string;
7
7
  constructor(requiredProviders: Array<any>, backend: any, tfStateKey: string, writeRequiredProvidersBlock?: boolean);
8
+ render(renderType?: string): Promise<string>;
9
+ _renderJson(): Promise<void>;
8
10
  _render(): Promise<void>;
9
11
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@firestartr/cli",
3
- "version": "1.54.0-snapshot-2",
3
+ "version": "1.54.0-snapshot-4",
4
4
  "private": false,
5
5
  "description": "Commandline tool",
6
6
  "main": "build/main.js",