@contrail/cli 3.1.3 → 3.1.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.
Files changed (33) hide show
  1. package/README.md +1 -1
  2. package/dist/commands/app/delete.js +1 -1
  3. package/dist/commands/app/extension/deployment/list.js +1 -1
  4. package/dist/commands/app/install.js +5 -5
  5. package/dist/commands/app/publish.js +2 -2
  6. package/dist/commands/app/uninstall.js +2 -2
  7. package/dist/commands/app/upgrade.js +3 -3
  8. package/dist/commands/file/upload.js +5 -4
  9. package/dist/commands/groups/export.js +5 -4
  10. package/dist/commands/groups/import.js +5 -5
  11. package/dist/commands/projects/export.js +5 -5
  12. package/dist/commands/projects/list.js +5 -5
  13. package/dist/commands/projects/load.js +5 -5
  14. package/dist/commands/types/getOptionSets.js +4 -4
  15. package/dist/commands/types/mergeOptionSets.js +4 -4
  16. package/dist/commands/types/mergeTypeProperties.js +4 -4
  17. package/dist/commands/types/parseOptionSetsHierarchyValuesToKeysLocalFile.js +2 -2
  18. package/dist/commands/types/parseOptionSetsLocalFiles.js +6 -6
  19. package/dist/commands/types/parseOptionSetsToFolderStructure.js +2 -2
  20. package/dist/commands/types/parseTypesFromFiles.js +2 -2
  21. package/dist/commands/types/parseTypesFromLocalFiles.js +2 -2
  22. package/dist/commands/types/parseTypesFromTemplateAndDataFromLocalFiles.js +2 -2
  23. package/dist/commands/types/parseTypesFromTemplateFromLocalFiles.js +2 -2
  24. package/dist/commands/types/uploadOptionSetsHierarchyLocalFile.js +1 -1
  25. package/dist/commands/types/uploadTypePropertyPolicies.js +1 -1
  26. package/dist/commands/users/export.js +4 -4
  27. package/dist/commands/users/import.js +5 -5
  28. package/dist/commands/workflow-templates/export.js +4 -4
  29. package/dist/helpers/app/extension-package.js +1 -1
  30. package/dist/helpers/app/extensions-deployer.js +1 -1
  31. package/dist/helpers/workflow-templates/helper.js +5 -5
  32. package/oclif.manifest.json +1 -1
  33. package/package.json +1 -1
package/README.md CHANGED
@@ -17,7 +17,7 @@ $ npm install -g @contrail/cli
17
17
  $ contrail COMMAND
18
18
  running command...
19
19
  $ contrail (--version)
20
- @contrail/cli/3.1.3 darwin-arm64 node-v20.18.0
20
+ @contrail/cli/3.1.4 darwin-x64 node-v22.12.0
21
21
  $ contrail --help [COMMAND]
22
22
  USAGE
23
23
  $ contrail COMMAND
@@ -23,7 +23,7 @@ class DeleteApp extends basecommand_1.BaseCommand {
23
23
  appDeclaration = (0, load_app_config_1.loadAppConfig)();
24
24
  }
25
25
  catch (e) {
26
- logger_1.default.error(`%s Application Removal Failed. ${e}`);
26
+ logger_1.default.error(`${e} Application Removal Failed.`);
27
27
  return;
28
28
  }
29
29
  logger_1.default.info(`Removing Application. ${appDeclaration.appIdentifier}`);
@@ -24,7 +24,7 @@ class ListExtensionDeployments extends basecommand_1.BaseCommand {
24
24
  };
25
25
  async run() {
26
26
  await (0, login_1.authUser)();
27
- logger_1.default.info(`%s Listing extension deployments`, chalk_1.default.blue.bold('START'));
27
+ logger_1.default.info(`${chalk_1.default.blue.bold('START')} Listing extension deployments.`);
28
28
  const appDeclaration = (0, load_app_config_1.loadAppConfig)();
29
29
  const app = await (0, extension_package_1.getExistingApp)(appDeclaration);
30
30
  const packages = this.flags.all
@@ -65,7 +65,7 @@ class InstallApp extends basecommand_1.BaseCommand {
65
65
  if (app.configProperties) {
66
66
  configProperties = await getConfigProperties(app);
67
67
  }
68
- logger_1.default.info('%s Installing app', chalk_1.default.green.bold('APP INSTALLATION'));
68
+ logger_1.default.info(`${chalk_1.default.green.bold('APP INSTALLATION')} Installing app`);
69
69
  const appOrg = await (0, apps_1.installAppToOrg)(app, configProperties);
70
70
  // eslint-disable-next-line no-constant-condition
71
71
  while (true) {
@@ -73,17 +73,17 @@ class InstallApp extends basecommand_1.BaseCommand {
73
73
  try {
74
74
  const installingApp = await new sdk_1.Entities().get({ entityName: 'app-org', id: appOrg.id });
75
75
  if (installingApp.status === 'READY') {
76
- logger_1.default.info('%s App installed', chalk_1.default.green.bold('APP INSTALLATION'));
76
+ logger_1.default.info(`${chalk_1.default.green.bold('APP INSTALLATION')} App installed`);
77
77
  break;
78
78
  }
79
79
  if (installingApp.status === 'FAILED_INSTALLING') {
80
- logger_1.default.info('%s App installation failed', chalk_1.default.red.bold('APP INSTALLATION'));
80
+ logger_1.default.info(`${chalk_1.default.red.bold('APP INSTALLATION')} App installation failed`);
81
81
  return;
82
82
  }
83
83
  process.stdout.write('.');
84
84
  }
85
85
  catch (e) {
86
- logger_1.default.info('%s App installation failed', chalk_1.default.red.bold('APP INSTALLATION'));
86
+ logger_1.default.info(`${chalk_1.default.red.bold('APP INSTALLATION')} App installation failed`);
87
87
  logger_1.default.info('Error is:', e);
88
88
  return;
89
89
  }
@@ -98,7 +98,7 @@ class InstallApp extends basecommand_1.BaseCommand {
98
98
  },
99
99
  ]);
100
100
  if (!answers.shouldInstallWorkflows) {
101
- logger_1.default.info('%s Not installing associated app workflows', chalk_1.default.yellow.bold('APP INSTALLATION'));
101
+ logger_1.default.info(`${chalk_1.default.yellow.bold('APP INSTALLATION')} Not installing associated app workflows`);
102
102
  this.flags.installWorkflowTemplates = false;
103
103
  }
104
104
  else {
@@ -45,7 +45,7 @@ class PublishApp extends basecommand_1.BaseCommand {
45
45
  logger_1.default.info(`${chalk_1.default.red.bold('FAIL')} Application Deployment Failed . ${e}`);
46
46
  return;
47
47
  }
48
- logger_1.default.info(`%s Deploying Application. ${appDeclaration.appIdentifier}`, chalk_1.default.blue.bold('START'));
48
+ logger_1.default.info(`${chalk_1.default.blue.bold('START')} Deploying Application. ${appDeclaration.appIdentifier}`);
49
49
  try {
50
50
  await (0, login_1.authUser)();
51
51
  const app = await new app_deployer_1.AppDeployer(this.flags.verbose, this.flags.dryRun).deploy(appDeclaration);
@@ -57,7 +57,7 @@ class PublishApp extends basecommand_1.BaseCommand {
57
57
  return;
58
58
  }
59
59
  await (0, upgrade_1.upgradeAndWait)(installedAppOrg, app.latestAppVersionId);
60
- logger_1.default.info('%s App upgraded.', chalk_1.default.green.bold('UPGRADED'));
60
+ logger_1.default.info(`${chalk_1.default.green.bold('UPGRADED')} App upgraded.`);
61
61
  }
62
62
  }
63
63
  catch (e) {
@@ -43,7 +43,7 @@ class UninstallApp extends basecommand_1.BaseCommand {
43
43
  if (!appToDelete) {
44
44
  throw new Error(`App ${this.flags.appIdentifier} not found`);
45
45
  }
46
- this.log('%s Uninstalling app', chalk_1.default.green.bold('APP UNINSTALLATION'));
46
+ this.log(`${chalk_1.default.green.bold('APP UNINSTALLATION')} Uninstalling app`);
47
47
  await (0, apps_1.deleteAppOrg)(appToDelete.id);
48
48
  // eslint-disable-next-line no-constant-condition
49
49
  while (true) {
@@ -63,7 +63,7 @@ class UninstallApp extends basecommand_1.BaseCommand {
63
63
  break;
64
64
  }
65
65
  }
66
- this.log('%s App Uninstalled', chalk_1.default.green.bold('APP UNINSTALLATION'));
66
+ this.log(`${chalk_1.default.green.bold('APP UNINSTALLATION')} App Uninstalled`);
67
67
  }
68
68
  }
69
69
  exports.default = UninstallApp;
@@ -81,7 +81,7 @@ class UpgradeApp extends basecommand_1.BaseCommand {
81
81
  ]);
82
82
  versionToUpgrade = answers.appVersion;
83
83
  }
84
- this.log(`%s Upgrading app to version ${versionToUpgrade}`, chalk_1.default.green.bold('APP UPGRADE'));
84
+ this.log(`${chalk_1.default.green.bold('APP UPGRADE')} Upgrading app to version ${versionToUpgrade}`);
85
85
  await upgradeAndWait(appOrgToUpgrade, versionToUpgrade);
86
86
  }
87
87
  }
@@ -96,11 +96,11 @@ async function upgradeAndWait(appOrgToUpgrade, versionToUpgrade) {
96
96
  id: appOrgToUpgrade.id,
97
97
  });
98
98
  if (appStillUpgrading.status === 'READY') {
99
- logger_1.default.info('%s App Upgraded', chalk_1.default.green.bold('APP UPGRADE'));
99
+ logger_1.default.info(`${chalk_1.default.green.bold('APP UPGRADE')} App Upgraded`);
100
100
  return;
101
101
  }
102
102
  if (appStillUpgrading.status === 'FAILED_INSTALLING') {
103
- logger_1.default.info('%s App Upgrade FAILED!', chalk_1.default.red.bold('APP UPGRADE'));
103
+ logger_1.default.info(`${chalk_1.default.red.bold('APP UPGRADE')} App Upgrade FAILED!`);
104
104
  return;
105
105
  }
106
106
  logger_1.default.info('checking app status...');
@@ -32,15 +32,16 @@ class UploadFile extends basecommand_1.BaseCommand {
32
32
  async run() {
33
33
  try {
34
34
  await (0, login_1.authUser)();
35
- this.log('%s Uploading File.', chalk_1.default.blue.bold('START'));
35
+ this.log(`${chalk_1.default.blue.bold('START')} Uploading File.`);
36
+ this.log(`${chalk_1.default.yellow.bold('FILE')} Uploading`);
36
37
  await uploadFile(this.args.fileLocation, this.args.contentType);
37
- this.log('%s Uploaded', chalk_1.default.yellow.bold('FILE'));
38
+ this.log(`${chalk_1.default.yellow.bold('FILE')} Uploaded`);
38
39
  }
39
40
  catch (e) {
40
- this.log(`%s User Upload Failed. ${e}`, chalk_1.default.red.bold('FAIL'));
41
+ this.log(`${chalk_1.default.red.bold('FAIL')} User Upload Failed. ${e}`);
41
42
  return;
42
43
  }
43
- this.log('%s User Upload Complete.', chalk_1.default.green.bold('COMPLETE'));
44
+ this.log(`${chalk_1.default.green.bold('COMPLETE')} User Upload Complete.`);
44
45
  }
45
46
  }
46
47
  exports.default = UploadFile;
@@ -36,15 +36,16 @@ class ExportGroups extends basecommand_1.BaseCommand {
36
36
  async run() {
37
37
  try {
38
38
  await (0, login_1.authUser)();
39
- this.log('%s Getting Groups.', chalk_1.default.blue.bold('START'));
39
+ this.log(`${chalk_1.default.blue.bold('START')} Getting Groups.`);
40
+ this.log(`${chalk_1.default.yellow.bold('GROUPS')} Exporting`);
40
41
  await exportGroups(this.flags.outFile ?? exports.DEFAULT_FILE_LOCATION, this.flags.overwrite);
41
- this.log('%s Done', chalk_1.default.yellow.bold('GROUPS'));
42
+ this.log(`${chalk_1.default.yellow.bold('GROUPS')} Exported`);
42
43
  }
43
44
  catch (e) {
44
- this.log(`%s Groups download Failed. ${e}`, chalk_1.default.red.bold('FAIL'));
45
+ this.log(`${chalk_1.default.red.bold('FAIL')} Groups download Failed. ${e}`);
45
46
  return;
46
47
  }
47
- this.log('%s Groups download Complete.', chalk_1.default.green.bold('COMPLETE'));
48
+ this.log(`${chalk_1.default.green.bold('COMPLETE')} Groups download Complete.`);
48
49
  }
49
50
  }
50
51
  exports.default = ExportGroups;
@@ -26,16 +26,16 @@ class ImportGroups extends basecommand_1.BaseCommand {
26
26
  async run() {
27
27
  try {
28
28
  await (0, login_1.authUser)();
29
- this.log('%s Uploading Groups.', chalk_1.default.blue.bold('START'));
30
- this.log('%s Uploading', chalk_1.default.yellow.bold('GROUP'));
29
+ this.log(`${chalk_1.default.blue.bold('START')} Uploading Groups.`);
30
+ this.log(`${chalk_1.default.yellow.bold('GROUP')} Uploading`);
31
31
  await uploadGroups(this.args.groupsFile);
32
- this.log('%s Uploaded', chalk_1.default.yellow.bold('GROUP'));
32
+ this.log(`${chalk_1.default.yellow.bold('GROUP')} Uploaded`);
33
33
  }
34
34
  catch (e) {
35
- this.log(`%s Group Upload Failed. ${e}`, chalk_1.default.red.bold('FAIL'));
35
+ this.log(`${chalk_1.default.red.bold('FAIL')} Group Upload Failed. ${e}`);
36
36
  return;
37
37
  }
38
- this.log('%s Group Upload Complete.', chalk_1.default.green.bold('COMPLETE'));
38
+ this.log(`${chalk_1.default.green.bold('COMPLETE')} Group Upload Complete.`);
39
39
  }
40
40
  }
41
41
  exports.default = ImportGroups;
@@ -21,16 +21,16 @@ class ExportProjects extends basecommand_1.BaseCommand {
21
21
  async run() {
22
22
  try {
23
23
  await (0, login_1.authUser)();
24
- this.log('%s Exporting Project.', chalk_1.default.blue.bold('START'));
25
- this.log('%s Exporting', chalk_1.default.yellow.bold('PROJECT'));
24
+ this.log(`${chalk_1.default.blue.bold('START')} Exporting Project.`);
25
+ this.log(`${chalk_1.default.yellow.bold('PROJECT')} Exporting`);
26
26
  await (0, helpers_1.exportProject)(this.args.projectName);
27
- this.log('%s Exported', chalk_1.default.yellow.bold('PROJECT'));
27
+ this.log(`${chalk_1.default.yellow.bold('PROJECT')} Exported`);
28
28
  }
29
29
  catch (e) {
30
- this.log(`%s Project Export Failed. ${e}`, chalk_1.default.red.bold('FAIL'));
30
+ this.log(`${chalk_1.default.red.bold('FAIL')} Project Export Failed. ${e}`);
31
31
  return;
32
32
  }
33
- this.log('%s Project Export Complete.', chalk_1.default.green.bold('COMPLETE'));
33
+ this.log(`${chalk_1.default.green.bold('COMPLETE')} Project Export Complete.`);
34
34
  }
35
35
  }
36
36
  exports.default = ExportProjects;
@@ -17,21 +17,21 @@ class ListProjects extends basecommand_1.BaseCommand {
17
17
  async run() {
18
18
  try {
19
19
  await (0, login_1.authUser)();
20
- this.log('%s Getting Projects.', chalk_1.default.blue.bold('START'));
20
+ this.log(`${chalk_1.default.blue.bold('START')} Getting Projects.`);
21
21
  const allWorkspaces = await new sdk_1.Entities().get({
22
22
  entityName: 'workspace',
23
23
  criteria: { isArchived: false },
24
24
  });
25
- this.log('%s', chalk_1.default.green.bold('PROJECTS:'));
25
+ this.log(`${chalk_1.default.green.bold('PROJECTS:')}`);
26
26
  //this.log(allWorkspaces.map(w => Object.assign({}, {name: w.name, id: w.id}))); // if we want ids
27
27
  this.log(allWorkspaces.map((w) => w.name));
28
- this.log('%s Done', chalk_1.default.yellow.bold('PROJECTS'));
28
+ this.log(`${chalk_1.default.yellow.bold('PROJECTS')} Done`);
29
29
  }
30
30
  catch (e) {
31
- this.log(`%s Project download Failed. ${e}`, chalk_1.default.red.bold('FAIL'));
31
+ this.log(`${chalk_1.default.red.bold('FAIL')} Project download Failed. ${e}`);
32
32
  return;
33
33
  }
34
- this.log('%s Project download Complete.', chalk_1.default.green.bold('COMPLETE'));
34
+ this.log(`${chalk_1.default.green.bold('COMPLETE')} Project download Complete.`);
35
35
  }
36
36
  }
37
37
  exports.default = ListProjects;
@@ -27,18 +27,18 @@ class LoadProject extends basecommand_1.BaseCommand {
27
27
  async run() {
28
28
  try {
29
29
  await (0, login_1.authUser)();
30
- this.log('%s Parsing Template.', chalk_1.default.blue.bold('START'));
31
- this.log('%s Uploading', chalk_1.default.yellow.bold('PROJECT'));
30
+ this.log(`${chalk_1.default.blue.bold('START')} Parsing Template.`);
31
+ this.log(`${chalk_1.default.yellow.bold('PROJECT')} Uploading`);
32
32
  const templateFileLocation = this.args.templateFileLocation;
33
33
  this.log('Using Template File Location: ', this.args.templateFileLocation);
34
34
  await uploadProject(templateFileLocation);
35
- this.log('%s Uploaded', chalk_1.default.yellow.bold('PROJECT'));
35
+ this.log(`${chalk_1.default.yellow.bold('PROJECT')} Uploaded`);
36
36
  }
37
37
  catch (e) {
38
- this.log(`%s Project Upload Failed. ${e}`, chalk_1.default.red.bold('FAIL'));
38
+ this.log(`${chalk_1.default.red.bold('FAIL')} Project Upload Failed. ${e}`);
39
39
  return;
40
40
  }
41
- this.log('%s Project Upload Complete.', chalk_1.default.green.bold('COMPLETE'));
41
+ this.log(`${chalk_1.default.green.bold('COMPLETE')} Project Upload Complete.`);
42
42
  }
43
43
  }
44
44
  exports.default = LoadProject;
@@ -44,7 +44,7 @@ exports.default = GetOptionSets;
44
44
  async function getAllOptionSets(outDir, overwrite, format) {
45
45
  try {
46
46
  const userConfig = await (0, login_1.authUser)();
47
- logger_1.default.info(`%s Getting all Option Sets for orgId: ${userConfig.orgId}`, chalk_1.default.blue.bold('START'));
47
+ logger_1.default.info(`${chalk_1.default.yellow.bold('START')} Getting all Option Sets for orgId: ${userConfig.orgId}`);
48
48
  // make directory to house exports
49
49
  if (!fs_1.default.existsSync(path.resolve(outDir))) {
50
50
  fs_1.default.mkdirSync(path.resolve(outDir));
@@ -54,13 +54,13 @@ async function getAllOptionSets(outDir, overwrite, format) {
54
54
  };
55
55
  const reducedData = await reduceData(data);
56
56
  await saveData(reducedData, outDir, overwrite, format);
57
- logger_1.default.info('%s Retrieved', chalk_1.default.yellow.bold('OPTION SETS'));
57
+ logger_1.default.info(`${chalk_1.default.yellow.bold('OPTION SETS')} Retrieved`);
58
58
  }
59
59
  catch (e) {
60
- logger_1.default.info(`%s Option Sets Retrieval Failed. ${e}`, chalk_1.default.red.bold('FAIL'));
60
+ logger_1.default.info(`${chalk_1.default.red.bold('FAIL')} Option Sets Retrieval Failed. ${e}`);
61
61
  return;
62
62
  }
63
- logger_1.default.info('%s Option Sets Retrieval Complete.', chalk_1.default.green.bold('COMPLETE'));
63
+ logger_1.default.info(`${chalk_1.default.green.bold('COMPLETE')} Option Sets Retrieval Complete.`);
64
64
  }
65
65
  exports.getAllOptionSets = getAllOptionSets;
66
66
  async function reduceData(data) {
@@ -24,16 +24,16 @@ class MergeOptionSets extends basecommand_1.BaseCommand {
24
24
  };
25
25
  async run() {
26
26
  try {
27
- this.log('%s Importing local file', chalk_1.default.yellow.bold('OPTION SET MERGE'));
27
+ this.log(`${chalk_1.default.yellow.bold('OPTION SET MERGE')} Importing local file`);
28
28
  this.log('Using File: ', this.args.file);
29
29
  await mergeOptionSets(this.args.file);
30
- this.log('%s Merged', chalk_1.default.yellow.bold('OPTION SET MERGE'));
30
+ this.log(`${chalk_1.default.yellow.bold('OPTION SET MERGE')} Merged`);
31
31
  }
32
32
  catch (e) {
33
- this.log(`%s Merge Failed. ${e}`, chalk_1.default.red.bold('FAIL'));
33
+ this.log(`${chalk_1.default.red.bold('FAIL')} Merge Failed. ${e}`);
34
34
  return;
35
35
  }
36
- this.log('%s Merge Complete.', chalk_1.default.green.bold('COMPLETE'));
36
+ this.log(`${chalk_1.default.green.bold('COMPLETE')} Merge Complete.`);
37
37
  }
38
38
  }
39
39
  exports.default = MergeOptionSets;
@@ -29,19 +29,19 @@ class MergeTypeProperties extends basecommand_1.BaseCommand {
29
29
  };
30
30
  async run() {
31
31
  try {
32
- this.log('%s Importing local file', chalk_1.default.yellow.bold('TYPE PROPERTIES MERGE'));
32
+ this.log(`${chalk_1.default.yellow.bold('TYPE PROPERTIES MERGE')} Importing local file`);
33
33
  this.log('Using File: ', this.args.file);
34
34
  logger_1.default.info(`argv: ${JSON.stringify(this.argv)}`);
35
35
  const typePaths = this.argv.slice(1);
36
36
  this.log('Using TypePaths: ', typePaths);
37
37
  await mergeTypeProperties(this.args.file, typePaths);
38
- this.log('%s Merged', chalk_1.default.yellow.bold('TYPE PROPERTIES MERGE'));
38
+ this.log(`${chalk_1.default.yellow.bold('TYPE PROPERTIES MERGE')} Merged`);
39
39
  }
40
40
  catch (e) {
41
- this.log(`%s Merge Failed. ${e}`, chalk_1.default.red.bold('FAIL'));
41
+ this.log(`${chalk_1.default.red.bold('FAIL')} Merge Failed. ${e}`);
42
42
  return;
43
43
  }
44
- this.log('%s Merge Complete.', chalk_1.default.green.bold('COMPLETE'));
44
+ this.log(`${chalk_1.default.green.bold('COMPLETE')} Merge Complete.`);
45
45
  }
46
46
  }
47
47
  exports.default = MergeTypeProperties;
@@ -33,13 +33,13 @@ exports.default = ParseOptionSetsHierarchyValuesToKeysLocalFile;
33
33
  async function parseOptionSetsHierarchyValuesToKeysLocalFile(fileLocation) {
34
34
  try {
35
35
  await (0, login_1.authUser)();
36
- logger_1.default.info('%s Importing local file', chalk_1.default.yellow.bold('OPTION SET HIERARCHY PARSE'));
36
+ logger_1.default.info(`${chalk_1.default.yellow.bold('OPTION SET HIERARCHY PARSE')} Importing local file`);
37
37
  logger_1.default.info('Using File: ', fileLocation);
38
38
  const { keysInOrder, uploadedOptionHierarchyData } = await parseOptionSetHierarchiesLocalFile(fileLocation);
39
39
  const parser = new json2csv_1.Parser(keysInOrder);
40
40
  const csv = parser.parse(uploadedOptionHierarchyData);
41
41
  saveData(csv);
42
- logger_1.default.info('%s Parsed', chalk_1.default.yellow.bold('OPTION SET HIERARCHY PARSE'));
42
+ logger_1.default.info(`${chalk_1.default.yellow.bold('OPTION SET HIERARCHY PARSE')} Parsed`);
43
43
  }
44
44
  catch (e) {
45
45
  logger_1.default.info(`${chalk_1.default.red.bold('FAIL')} PARSE Failed . ${e}`);
@@ -50,17 +50,17 @@ Countries, co_egypt, Egypt
50
50
  };
51
51
  async run() {
52
52
  try {
53
- this.log('%s Importing local file', chalk_1.default.yellow.bold('OPTION SET PARSE'));
53
+ this.log(`${chalk_1.default.yellow.bold('OPTION SET PARSE')} Importing local file`);
54
54
  this.log('Using File: ', this.args.file);
55
55
  await parseOptionSetsLocalFiles(this.args.file, this.flags.csvStyle);
56
- this.log('%s Parsed', chalk_1.default.yellow.bold('OPTION SET PARSE'));
56
+ this.log(`${chalk_1.default.yellow.bold('OPTION SET PARSE')} Parsed`);
57
57
  }
58
58
  catch (e) {
59
- this.log(`%s PARSE Failed. ${e}`, chalk_1.default.red.bold('FAIL'));
59
+ this.log(`${chalk_1.default.red.bold('FAIL')} PARSE Failed . ${e}`);
60
60
  console.error(e);
61
61
  return;
62
62
  }
63
- this.log('%s PARSE Complete.', chalk_1.default.green.bold('COMPLETE'));
63
+ this.log(`${chalk_1.default.green.bold('COMPLETE')} PARSE Complete.`);
64
64
  }
65
65
  }
66
66
  exports.default = ParseOptionSetsLocalFiles;
@@ -69,11 +69,11 @@ async function ParseOptionSetsToFolderStructure(args) {
69
69
  if (args?.length < 4) {
70
70
  throw new Error('File name must be included.');
71
71
  }
72
- logger_1.default.info('%s Importing local file', chalk_1.default.yellow.bold('OPTION SET PARSE'));
72
+ logger_1.default.info(`${chalk_1.default.yellow.bold('OPTION SET PARSE')} Importing local file`);
73
73
  const fileLocation = this.args.file;
74
74
  logger_1.default.info('Using File: ', fileLocation);
75
75
  await parseOptionSetsToFolderStructure(fileLocation);
76
- logger_1.default.info('%s Parsed', chalk_1.default.yellow.bold('OPTION SET PARSE'));
76
+ logger_1.default.info(`${chalk_1.default.yellow.bold('OPTION SET PARSE')} Parsed`);
77
77
  }
78
78
  catch (e) {
79
79
  logger_1.default.info(`${chalk_1.default.red.bold('FAIL')} PARSE Failed . ${e}`);
@@ -20,10 +20,10 @@ class ParseOptionSetsToFolderStructure extends basecommand_1.BaseCommand {
20
20
  };
21
21
  async run() {
22
22
  try {
23
- logger_1.default.info('%s Importing local file', chalk_1.default.yellow.bold('OPTION SET PARSE'));
23
+ logger_1.default.info(`${chalk_1.default.yellow.bold('OPTION SET PARSE')} Importing local file`);
24
24
  logger_1.default.info('Using File: ', this.args.file);
25
25
  await parseOptionSetsToFolderStructure(this.args.file);
26
- logger_1.default.info('%s Parsed', chalk_1.default.yellow.bold('OPTION SET PARSE'));
26
+ logger_1.default.info(`${chalk_1.default.yellow.bold('OPTION SET PARSE')} Parsed`);
27
27
  }
28
28
  catch (e) {
29
29
  logger_1.default.info(`${chalk_1.default.red.bold('FAIL')} PARSE Failed . ${e}`);
@@ -25,11 +25,11 @@ class ParseTypesFromFiles extends basecommand_1.BaseCommand {
25
25
  };
26
26
  async run() {
27
27
  try {
28
- logger_1.default.info('%s Parsing', chalk_1.default.yellow.bold('TYPES AND OPTION SETS'));
28
+ logger_1.default.info(`${chalk_1.default.yellow.bold('TYPES AND OPTION SETS')} Parsing`);
29
29
  const fileIds = this.argv;
30
30
  logger_1.default.info('Using FileId(s): ', fileIds);
31
31
  await (0, type_parser_1.parseTypesFromFiles)(fileIds);
32
- logger_1.default.info('%s Parsed', chalk_1.default.yellow.bold('TYPES AND OPTION SETS'));
32
+ logger_1.default.info(`${chalk_1.default.yellow.bold('TYPES AND OPTION SETS')} Parsed`);
33
33
  }
34
34
  catch (e) {
35
35
  logger_1.default.info(`${chalk_1.default.red.bold('FAIL')} Parsing Failed . ${e}`);
@@ -22,11 +22,11 @@ class ParseTypesFromLocalFiles extends basecommand_1.BaseCommand {
22
22
  };
23
23
  async run() {
24
24
  try {
25
- logger_1.default.info('%s Parsing', chalk_1.default.yellow.bold('TYPES AND OPTION SETS'));
25
+ logger_1.default.info(`${chalk_1.default.yellow.bold('TYPES AND OPTION SETS')} Parsing`);
26
26
  const fileLocations = this.argv;
27
27
  logger_1.default.info('Using File Location(s): ', fileLocations);
28
28
  await (0, type_parser_1.parseTypesFromLocalFiles)(fileLocations);
29
- logger_1.default.info('%s Parsed', chalk_1.default.yellow.bold('TYPES AND OPTION SETS'));
29
+ logger_1.default.info(`${chalk_1.default.yellow.bold('TYPES AND OPTION SETS')} Parsed`);
30
30
  }
31
31
  catch (e) {
32
32
  logger_1.default.info(`${chalk_1.default.red.bold('FAIL')} Parsing Failed . ${e}`);
@@ -22,13 +22,13 @@ class ParseTypesFromTemplateAndDataFromLocalFiles extends basecommand_1.BaseComm
22
22
  };
23
23
  async run() {
24
24
  try {
25
- logger_1.default.info('%s Parsing', chalk_1.default.yellow.bold('TYPES AND OPTION SETS'));
25
+ logger_1.default.info(`${chalk_1.default.yellow.bold('TYPES AND OPTION SETS')} Parsing`);
26
26
  const templateFileLocation = this.args.templateFile;
27
27
  const dataFileLocations = this.argv.slice(1);
28
28
  logger_1.default.info('Using Template File Location: ', templateFileLocation);
29
29
  logger_1.default.info('Using Data File Location: ', dataFileLocations);
30
30
  await (0, type_parser_1.parseTypesFromTemplateAndDataFromLocalFiles)(templateFileLocation, dataFileLocations);
31
- logger_1.default.info('%s Parsed', chalk_1.default.yellow.bold('TYPES AND OPTION SETS'));
31
+ logger_1.default.info(`${chalk_1.default.yellow.bold('TYPES AND OPTION SETS')} Parsed`);
32
32
  }
33
33
  catch (e) {
34
34
  logger_1.default.info(`${chalk_1.default.red.bold('FAIL')} Parsing Failed . ${e}`);
@@ -21,13 +21,13 @@ class ParseTypesFromTemplateFromLocalFiles extends basecommand_1.BaseCommand {
21
21
  };
22
22
  async run() {
23
23
  try {
24
- logger_1.default.info('%s Parsing', chalk_1.default.yellow.bold('TYPES AND OPTION SETS'));
24
+ logger_1.default.info(`${chalk_1.default.yellow.bold('TYPES AND OPTION SETS')} Parsing`);
25
25
  const templateFileLocation = this.args.templateFile;
26
26
  const dataFileLocation = this.args.filePath;
27
27
  logger_1.default.info('Using Template File Location: ', templateFileLocation);
28
28
  logger_1.default.info('Using Data File Location: ', dataFileLocation);
29
29
  await (0, type_parser_1.parseTypesFromTemplateFromLocalFiles)(templateFileLocation, dataFileLocation);
30
- logger_1.default.info('%s Parsed', chalk_1.default.yellow.bold('TYPES AND OPTION SETS'));
30
+ logger_1.default.info(`${chalk_1.default.yellow.bold('TYPES AND OPTION SETS')} Parsed`);
31
31
  }
32
32
  catch (e) {
33
33
  logger_1.default.info(`${chalk_1.default.red.bold('FAIL')} Parsing Failed . ${e}`);
@@ -35,7 +35,7 @@ exports.default = UploadOptionSetsHierarchyLocalFile;
35
35
  async function uploadOptionSetsHierarchyLocalFile(fileLocation, name) {
36
36
  try {
37
37
  await (0, login_1.authUser)();
38
- logger_1.default.info('%s Importing local file', chalk_1.default.yellow.bold('OPTION SET HIERARCHY UPLOAD'));
38
+ logger_1.default.info(`${chalk_1.default.yellow.bold('OPTION SET HIERARCHY UPLOAD')} Importing local file`);
39
39
  logger_1.default.info('Using File: ', fileLocation);
40
40
  logger_1.default.info('Using Name: ', name);
41
41
  await uploadOptionSetHierarchiesLocalFile(fileLocation, name);
@@ -37,7 +37,7 @@ exports.default = UploadTypePropertyPolicies;
37
37
  async function uploadTypePropertyPolicies(dir) {
38
38
  try {
39
39
  await (0, login_1.authUser)();
40
- logger_1.default.info('%s Uploading', chalk_1.default.yellow.bold('TYPE PROPERTY POLICY'));
40
+ logger_1.default.info(`${chalk_1.default.yellow.bold('TYPE PROPERTY POLICY')} Uploading`);
41
41
  const [reducedTypePropertyPolicies, reducedTypePropertyPolicyLinks] = await loadTPPolicies(dir);
42
42
  await uploadTPPolicyObjects(reducedTypePropertyPolicies);
43
43
  await uploadTypePropertyPolicyLinks(reducedTypePropertyPolicyLinks);
@@ -35,15 +35,15 @@ class ExportUsers extends basecommand_1.BaseCommand {
35
35
  async run() {
36
36
  try {
37
37
  await (0, login_1.authUser)();
38
- this.log('%s Getting Users.', chalk_1.default.blue.bold('START'));
38
+ this.log(`${chalk_1.default.blue.bold('START')} Getting Users.`);
39
39
  await exportUsers(this.flags.outFile ?? exports.DEFAULT_FILE_LOCATION, this.flags.overwrite);
40
- this.log('%s Done', chalk_1.default.yellow.bold('USERS'));
40
+ this.log(`${chalk_1.default.yellow.bold('USERS')} Done`);
41
41
  }
42
42
  catch (e) {
43
- this.log(`%s Users download Failed. ${e}`, chalk_1.default.red.bold('FAIL'));
43
+ this.log(`${chalk_1.default.red.bold('FAIL')} Users download Failed. ${e}`);
44
44
  return;
45
45
  }
46
- this.log('%s Users download Complete.', chalk_1.default.green.bold('COMPLETE'));
46
+ this.log(`${chalk_1.default.green.bold('COMPLETE')} Users download Complete.`);
47
47
  }
48
48
  }
49
49
  exports.default = ExportUsers;
@@ -25,16 +25,16 @@ class ImportUsers extends basecommand_1.BaseCommand {
25
25
  async run() {
26
26
  try {
27
27
  await (0, login_1.authUser)();
28
- this.log('%s Uploading Users.', chalk_1.default.blue.bold('START'));
29
- this.log('%s Uploading', chalk_1.default.yellow.bold('USER'));
28
+ this.log(`${chalk_1.default.blue.bold('START')} Uploading Users.`);
29
+ this.log(`${chalk_1.default.yellow.bold('USER')} Uploading`);
30
30
  await uploadUsers(this.args.usersFile);
31
- this.log('%s Uploaded', chalk_1.default.yellow.bold('USER'));
31
+ this.log(`${chalk_1.default.yellow.bold('USER')} Uploaded`);
32
32
  }
33
33
  catch (e) {
34
- this.log(`%s User Upload Failed. ${e}`, chalk_1.default.red.bold('FAIL'));
34
+ this.log(`${chalk_1.default.red.bold('FAIL')} User Upload Failed. ${e}`);
35
35
  return;
36
36
  }
37
- this.log('%s User Upload Complete.', chalk_1.default.green.bold('COMPLETE'));
37
+ this.log(`${chalk_1.default.green.bold('COMPLETE')} User Upload Complete.`);
38
38
  }
39
39
  }
40
40
  exports.default = ImportUsers;
@@ -37,15 +37,15 @@ class ExportWorkflows extends basecommand_1.BaseCommand {
37
37
  async run() {
38
38
  try {
39
39
  await (0, login_1.authUser)();
40
- this.log('%s Getting Workflows.', chalk_1.default.blue.bold('START'));
40
+ this.log(`${chalk_1.default.blue.bold('START')} Getting Workflows.`);
41
41
  await exportWorkflows(this.flags.outFile ?? exports.DEFAULT_FILE_LOCATION, this.flags.overwrite);
42
- this.log('%s Done', chalk_1.default.yellow.bold('WORKFLOWS'));
42
+ this.log(`${chalk_1.default.yellow.bold('WORKFLOWS')} Done`);
43
43
  }
44
44
  catch (e) {
45
- this.log(`%s Workflows download Failed. ${e}`, chalk_1.default.red.bold('FAIL'));
45
+ this.log(`${chalk_1.default.red.bold('FAIL')} Workflows download Failed. ${e}`);
46
46
  return;
47
47
  }
48
- this.log('%s Workflows download Complete.', chalk_1.default.green.bold('COMPLETE'));
48
+ this.log(`${chalk_1.default.green.bold('COMPLETE')} Workflows download Complete.`);
49
49
  }
50
50
  }
51
51
  exports.default = ExportWorkflows;
@@ -115,7 +115,7 @@ async function uploadExtensionPackage(appExtensionPackage, tmpDir) {
115
115
  }
116
116
  async function createExtensionPackage(appId, extensionDir) {
117
117
  const tmpDir = createTmpDir(extensionDir);
118
- logger_1.default.info(`%s Creating extension package at ${tmpDir}`, chalk_1.default.blue.bold('START'));
118
+ logger_1.default.info(`${chalk_1.default.blue.bold('START')} Creating extension package at ${tmpDir}`);
119
119
  cleanAndPrepareTmpDir(extensionDir, tmpDir);
120
120
  installDependenciesInExtensionDirectory(extensionDir);
121
121
  installDependenciesInTmpDir(tmpDir);
@@ -21,7 +21,7 @@ class ExtensionsDeployer {
21
21
  return;
22
22
  }
23
23
  // UPSERT / DELETE BASED ON EXTENSION IDENTIFIER
24
- logger_1.default.info('%s \tDeploying extensions.', chalk_1.default.yellow.bold('EXTENSION'));
24
+ logger_1.default.info(`${chalk_1.default.yellow.bold('EXTENSION')} Deploying extensions.`);
25
25
  const existingExtensions = await getExtensionDefinitionsForAppVersion(app);
26
26
  logger_1.default.debug(appDeclaration.extensions);
27
27
  if (appDeclaration.extensions) {
@@ -19,7 +19,7 @@ class LocalWorkflowTemplateDeployer {
19
19
  // FETCH ALL WORKFLOWS FROM THE API.
20
20
  const existingWorkflows = await (0, event_workflow_templates_1.getExistingWorkflowTemplates)();
21
21
  // UPSERT / DELETE BASED ON WORKFLOW TEMPLATES IDENTIFIER
22
- logger_1.default.info('%s \tDeploying workflow templates.', chalk_1.default.yellow.bold('WORKFLOW TEMPLATES'));
22
+ logger_1.default.info(`${chalk_1.default.yellow.bold('WORKFLOW TEMPLATES')} Deploying workflow templates.`);
23
23
  logger_1.default.info(wtDeclaration);
24
24
  for (const workflowKey of Object.keys(wtDeclaration.workflows)) {
25
25
  await this.deployWorkflowTemplate(wtDeclaration.workflows[workflowKey], existingWorkflows, wtDeclaration.appIdentifier);
@@ -50,7 +50,7 @@ class LocalWorkflowTemplateDeployer {
50
50
  if (workflowTemplate.crons) {
51
51
  await this.createWorkflowSchedule(workflowTemplate, newWorkflowTemplate.id);
52
52
  }
53
- logger_1.default.info(`%s Created new workflow definition: ${workflowKey}`, chalk_1.default.yellow.bold('WORKFLOW TEMPLATES'));
53
+ logger_1.default.info(`${chalk_1.default.yellow.bold('WORKFLOW TEMPLATES')} Creating new workflow template: ${workflowKey}`);
54
54
  return newWorkflowTemplate;
55
55
  }
56
56
  async populateActionIds(workflowTemplate, workflowKey, appIdentifier) {
@@ -115,7 +115,7 @@ class LocalWorkflowTemplateDeployer {
115
115
  const cronsToRemove = existingSchedules.filter((x) => !newCronNames.includes(x.name));
116
116
  const cronsToEdit = existingSchedules.filter((x) => newCronNames.includes(x.name));
117
117
  for (const cron of cronsToAdd) {
118
- logger_1.default.info(`%s Adding new schedule: ${cron.name}`, chalk_1.default.yellow.bold('WORKFLOW TEMPLATES'));
118
+ logger_1.default.info(`${chalk_1.default.yellow.bold('WORKFLOW TEMPLATES')} Adding new schedule: ${cron.name}`);
119
119
  await (0, schedules_1.createSchedule)({
120
120
  cron: cron.cron,
121
121
  entityReference: `event-workflow-template:${workflowId}`,
@@ -130,11 +130,11 @@ class LocalWorkflowTemplateDeployer {
130
130
  });
131
131
  }
132
132
  for (const cron of cronsToRemove) {
133
- logger_1.default.info(`%s Removing schedule: ${cron.name}`, chalk_1.default.yellow.bold('WORKFLOW TEMPLATES'));
133
+ logger_1.default.info(`${chalk_1.default.yellow.bold('WORKFLOW TEMPLATES')} Removing schedule: ${cron.name}`);
134
134
  await (0, schedules_1.deleteSchedule)(cron.id);
135
135
  }
136
136
  for (const cron of cronsToEdit) {
137
- logger_1.default.info(`%s Updating schedule: ${cron.name}`, chalk_1.default.yellow.bold('WORKFLOW TEMPLATES'));
137
+ logger_1.default.info(`${chalk_1.default.yellow.bold('WORKFLOW TEMPLATES')} Updating schedule: ${cron.name}`);
138
138
  const newCron = workflowTemplate.crons.find((x) => x.name === cron.name);
139
139
  await (0, schedules_1.updateSchedule)({
140
140
  id: cron.id,
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "3.1.3",
2
+ "version": "3.1.4",
3
3
  "commands": {
4
4
  "app:create": {
5
5
  "id": "app:create",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@contrail/cli",
3
- "version": "3.1.3",
3
+ "version": "3.1.4",
4
4
  "description": "VibeIQ's Contrail Platform CLI.",
5
5
  "bin": {
6
6
  "contrail-cli": "./bin/run",