@contrail/cli 2.1.20 → 2.1.21

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 (154) hide show
  1. package/README.md +311 -105
  2. package/dist/api/apps.js +15 -15
  3. package/dist/api/event-workflow-action-definition.d.ts +1 -1
  4. package/dist/api/event-workflow-action-definition.js +1 -1
  5. package/dist/api/event-workflow-template-definition.d.ts +4 -3
  6. package/dist/api/event-workflow-templates.d.ts +5 -4
  7. package/dist/api/event-workflow-templates.js +2 -2
  8. package/dist/api/types.d.ts +10 -10
  9. package/dist/api/users.js +4 -2
  10. package/dist/auth/login.js +12 -14
  11. package/dist/commands/app/create.d.ts +2 -2
  12. package/dist/commands/app/create.js +15 -10
  13. package/dist/commands/app/delete.d.ts +2 -2
  14. package/dist/commands/app/delete.js +4 -2
  15. package/dist/commands/app/getApiKey.d.ts +2 -2
  16. package/dist/commands/app/getApiKey.js +17 -11
  17. package/dist/commands/app/install.d.ts +2 -2
  18. package/dist/commands/app/install.js +42 -25
  19. package/dist/commands/app/publish.d.ts +2 -2
  20. package/dist/commands/app/publish.js +26 -11
  21. package/dist/commands/app/uninstall.d.ts +2 -2
  22. package/dist/commands/app/uninstall.js +20 -11
  23. package/dist/commands/app/upgrade.d.ts +2 -2
  24. package/dist/commands/app/upgrade.js +46 -23
  25. package/dist/commands/basecommand.d.ts +7 -0
  26. package/dist/commands/basecommand.js +29 -0
  27. package/dist/commands/colors/deleteAll.d.ts +2 -2
  28. package/dist/commands/colors/deleteAll.js +8 -5
  29. package/dist/commands/colors/load.d.ts +2 -2
  30. package/dist/commands/colors/load.js +10 -7
  31. package/dist/commands/config/list.d.ts +2 -2
  32. package/dist/commands/config/list.js +4 -2
  33. package/dist/commands/config/remove.d.ts +2 -2
  34. package/dist/commands/config/remove.js +4 -2
  35. package/dist/commands/config/set.d.ts +3 -2
  36. package/dist/commands/config/set.js +21 -7
  37. package/dist/commands/groups/export.d.ts +2 -2
  38. package/dist/commands/groups/export.js +20 -8
  39. package/dist/commands/groups/upload.d.ts +3 -3
  40. package/dist/commands/groups/upload.js +44 -32
  41. package/dist/commands/instance/export.d.ts +2 -2
  42. package/dist/commands/instance/export.js +15 -3
  43. package/dist/commands/instance/import.d.ts +2 -2
  44. package/dist/commands/instance/import.js +9 -2
  45. package/dist/commands/loader-process/load.d.ts +2 -2
  46. package/dist/commands/loader-process/load.js +13 -6
  47. package/dist/commands/loader-process/upload-and-load.d.ts +2 -2
  48. package/dist/commands/loader-process/upload-and-load.js +18 -7
  49. package/dist/commands/projects/export.d.ts +2 -2
  50. package/dist/commands/projects/export.js +4 -2
  51. package/dist/commands/projects/list.d.ts +2 -2
  52. package/dist/commands/projects/list.js +6 -4
  53. package/dist/commands/projects/load.d.ts +2 -2
  54. package/dist/commands/projects/load.js +16 -8
  55. package/dist/commands/types/exportOptionSetHierarchies.d.ts +2 -2
  56. package/dist/commands/types/exportOptionSetHierarchies.js +15 -12
  57. package/dist/commands/types/getAll.d.ts +2 -2
  58. package/dist/commands/types/getAll.js +107 -76
  59. package/dist/commands/types/loadAll.d.ts +2 -2
  60. package/dist/commands/types/loadAll.js +12 -4
  61. package/dist/commands/types/mergeOptionSets.d.ts +2 -2
  62. package/dist/commands/types/mergeOptionSets.js +13 -10
  63. package/dist/commands/types/mergeTypeProperties.d.ts +2 -2
  64. package/dist/commands/types/mergeTypeProperties.js +12 -9
  65. package/dist/commands/types/parseOptionSetsHierarchyLocalFile.d.ts +2 -2
  66. package/dist/commands/types/parseOptionSetsHierarchyLocalFile.js +19 -15
  67. package/dist/commands/types/parseOptionSetsHierarchyValuesToKeysLocalFile.d.ts +10 -0
  68. package/dist/commands/types/parseOptionSetsHierarchyValuesToKeysLocalFile.js +102 -0
  69. package/dist/commands/types/parseOptionSetsLocalFiles.d.ts +2 -2
  70. package/dist/commands/types/parseOptionSetsLocalFiles.js +21 -21
  71. package/dist/commands/types/parseOptionSetsToFolderStructure.d.ts +2 -2
  72. package/dist/commands/types/parseOptionSetsToFolderStructure.js +17 -18
  73. package/dist/commands/types/parseTypesFromFiles.d.ts +2 -2
  74. package/dist/commands/types/parseTypesFromFiles.js +14 -8
  75. package/dist/commands/types/parseTypesFromLocalFiles.d.ts +2 -2
  76. package/dist/commands/types/parseTypesFromLocalFiles.js +10 -7
  77. package/dist/commands/types/parseTypesFromTemplateAndDataFromLocalFiles.d.ts +2 -2
  78. package/dist/commands/types/parseTypesFromTemplateAndDataFromLocalFiles.js +11 -8
  79. package/dist/commands/types/parseTypesFromTemplateFromLocalFiles.d.ts +2 -2
  80. package/dist/commands/types/parseTypesFromTemplateFromLocalFiles.js +11 -8
  81. package/dist/commands/types/uploadOptionSetHierarchies.d.ts +2 -2
  82. package/dist/commands/types/uploadOptionSetHierarchies.js +44 -32
  83. package/dist/commands/types/uploadOptionSets.d.ts +2 -2
  84. package/dist/commands/types/uploadOptionSets.js +21 -13
  85. package/dist/commands/types/uploadOptionSetsHierarchyLocalFile.d.ts +2 -2
  86. package/dist/commands/types/uploadOptionSetsHierarchyLocalFile.js +26 -19
  87. package/dist/commands/types/uploadRuleSets.d.ts +2 -2
  88. package/dist/commands/types/uploadRuleSets.js +34 -26
  89. package/dist/commands/types/uploadTypePolicies.d.ts +2 -2
  90. package/dist/commands/types/uploadTypePolicies.js +37 -29
  91. package/dist/commands/types/uploadTypePropertyPolicies.d.ts +2 -2
  92. package/dist/commands/types/uploadTypePropertyPolicies.js +38 -30
  93. package/dist/commands/types/uploadTypes.d.ts +2 -2
  94. package/dist/commands/types/uploadTypes.js +10 -4
  95. package/dist/commands/types/uploadUsageInfo.d.ts +2 -2
  96. package/dist/commands/types/uploadUsageInfo.js +32 -24
  97. package/dist/commands/users/export.d.ts +2 -2
  98. package/dist/commands/users/export.js +15 -4
  99. package/dist/commands/users/upload.d.ts +2 -2
  100. package/dist/commands/users/upload.js +6 -4
  101. package/dist/commands/webhooks/create.d.ts +2 -2
  102. package/dist/commands/webhooks/create.js +8 -6
  103. package/dist/commands/webhooks/delete.d.ts +2 -2
  104. package/dist/commands/webhooks/delete.js +8 -5
  105. package/dist/commands/webhooks/getWebhookTrigger.d.ts +2 -2
  106. package/dist/commands/webhooks/getWebhookTrigger.js +10 -9
  107. package/dist/commands/webhooks/list.d.ts +2 -2
  108. package/dist/commands/webhooks/list.js +8 -6
  109. package/dist/commands/workflow-template-definitions/install.d.ts +2 -2
  110. package/dist/commands/workflow-template-definitions/install.js +4 -2
  111. package/dist/commands/workflow-template-definitions/list.d.ts +2 -2
  112. package/dist/commands/workflow-template-definitions/list.js +4 -2
  113. package/dist/commands/workflow-templates/delete.d.ts +2 -2
  114. package/dist/commands/workflow-templates/delete.js +4 -2
  115. package/dist/commands/workflow-templates/export.d.ts +2 -2
  116. package/dist/commands/workflow-templates/export.js +19 -17
  117. package/dist/commands/workflow-templates/list.d.ts +2 -2
  118. package/dist/commands/workflow-templates/list.js +4 -2
  119. package/dist/commands/workflow-templates/load.d.ts +2 -2
  120. package/dist/commands/workflow-templates/load.js +8 -3
  121. package/dist/common.d.ts +4 -1
  122. package/dist/common.js +10 -1
  123. package/dist/helpers/app/actions-deployer.d.ts +2 -2
  124. package/dist/helpers/app/actions-deployer.js +12 -7
  125. package/dist/helpers/app/app-deployer.d.ts +1 -1
  126. package/dist/helpers/app/app-deployer.js +70 -52
  127. package/dist/helpers/app/app-template-parsers.js +3 -1
  128. package/dist/helpers/app/load-app-config.d.ts +2 -1
  129. package/dist/helpers/app/load-app-config.js +2 -2
  130. package/dist/helpers/app/setup-template.js +4 -3
  131. package/dist/helpers/colors/helpers.d.ts +10 -2
  132. package/dist/helpers/colors/helpers.js +11 -10
  133. package/dist/helpers/config/config.js +15 -10
  134. package/dist/helpers/file-helpers.js +7 -4
  135. package/dist/helpers/loader-process/helpers.js +14 -13
  136. package/dist/helpers/projects/helpers.d.ts +2 -1
  137. package/dist/helpers/projects/helpers.js +16 -15
  138. package/dist/helpers/types/csv-parser.js +17 -14
  139. package/dist/helpers/types/type-extractor.d.ts +1 -1
  140. package/dist/helpers/types/type-extractor.js +3 -2
  141. package/dist/helpers/types/type-parser.js +22 -21
  142. package/dist/helpers/types/type-uploader.js +19 -15
  143. package/dist/helpers/workflow-template-definitions/workflow-template-definition-deployer.d.ts +1 -1
  144. package/dist/helpers/workflow-template-definitions/workflow-template-definition-deployer.js +46 -28
  145. package/dist/helpers/workflow-templates/helper.d.ts +3 -3
  146. package/dist/helpers/workflow-templates/helper.js +33 -23
  147. package/dist/interface-converters.spec.js +15 -15
  148. package/dist/interfaces.d.ts +6 -0
  149. package/dist/logger.d.ts +3 -0
  150. package/dist/logger.js +32 -0
  151. package/dist/templates/typescript/src/actions/logItem.ts +9 -4
  152. package/dist/templates/typescript/src/main.ts +13 -8
  153. package/oclif.manifest.json +861 -31
  154. package/package.json +10 -7
@@ -8,37 +8,40 @@ const load_app_config_1 = require("../../helpers/app/load-app-config");
8
8
  const app_deployer_1 = require("../../helpers/app/app-deployer");
9
9
  const apps_1 = require("../../api/apps");
10
10
  const upgrade_1 = require("./upgrade");
11
- class PublishApp extends core_1.Command {
11
+ const basecommand_1 = require("../basecommand");
12
+ const logger_1 = tslib_1.__importDefault(require("../../logger"));
13
+ class PublishApp extends basecommand_1.BaseCommand {
12
14
  async run() {
13
15
  const { flags } = await this.parse(PublishApp);
16
+ await super.setLogLevel(flags.logLevel);
14
17
  let appDeclaration;
15
18
  try {
16
19
  appDeclaration = (0, load_app_config_1.loadAppConfig)();
17
20
  }
18
21
  catch (e) {
19
- console.log(`%s Application Deployment Failed. ${e}`, chalk_1.default.red.bold('FAIL'));
22
+ logger_1.default.info(`%s Application Deployment Failed. ${e}`, chalk_1.default.red.bold('FAIL'));
20
23
  return;
21
24
  }
22
- console.log(`%s Deploying Application. ${appDeclaration.appIdentifier}`, chalk_1.default.blue.bold('START'));
25
+ logger_1.default.info(`%s Deploying Application. ${appDeclaration.appIdentifier}`, chalk_1.default.blue.bold('START'));
23
26
  try {
24
27
  await (0, login_1.authUser)();
25
28
  const app = await new app_deployer_1.AppDeployer(flags.verbose, flags.dryRun).deploy(appDeclaration);
26
29
  if (flags.upgrade) {
27
30
  const installedApps = await (0, apps_1.getInstalledApps)();
28
- const installedAppOrg = installedApps.find(x => x.appId === app.id);
31
+ const installedAppOrg = installedApps.find((x) => x.appId === app.id);
29
32
  if (!installedAppOrg) {
30
- console.log('The app you published is not installed in your org');
33
+ logger_1.default.info('The app you published is not installed in your org');
31
34
  return;
32
35
  }
33
36
  await (0, upgrade_1.upgradeAndWait)(installedAppOrg, app.latestAppVersionId);
34
- console.log('%s App upgraded.', chalk_1.default.green.bold('UPGRADED'));
37
+ logger_1.default.info('%s App upgraded.', chalk_1.default.green.bold('UPGRADED'));
35
38
  }
36
39
  }
37
40
  catch (e) {
38
- console.log(`%s Application Deployment Failed. ${e}`, chalk_1.default.red.bold('FAIL'));
41
+ logger_1.default.info(`%s Application Deployment Failed. ${e}`, chalk_1.default.red.bold('FAIL'));
39
42
  return;
40
43
  }
41
- console.log('%s Deployment Complete.', chalk_1.default.green.bold('COMPLETE'));
44
+ logger_1.default.info('%s Deployment Complete.', chalk_1.default.green.bold('COMPLETE'));
42
45
  }
43
46
  }
44
47
  exports.default = PublishApp;
@@ -50,7 +53,19 @@ PublishApp.examples = [
50
53
  // variable argument length
51
54
  PublishApp.strict = true;
52
55
  PublishApp.flags = {
53
- upgrade: core_1.Flags.boolean({ char: 'u', description: 'In addition to deploying, upgrade the installed version of the app in this org to the latest one.', required: false }),
54
- verbose: core_1.Flags.boolean({ char: 'v', description: 'Debug the app deployment step and do not remove the intermediate build artifacts.', required: false }),
55
- dryRun: core_1.Flags.boolean({ char: 'd', description: 'Dry run the upgrade without actually updating the app.', required: false }),
56
+ upgrade: core_1.Flags.boolean({
57
+ char: 'u',
58
+ description: 'In addition to deploying, upgrade the installed version of the app in this org to the latest one.',
59
+ required: false,
60
+ }),
61
+ verbose: core_1.Flags.boolean({
62
+ char: 'v',
63
+ description: 'Debug the app deployment step and do not remove the intermediate build artifacts.',
64
+ required: false,
65
+ }),
66
+ dryRun: core_1.Flags.boolean({
67
+ char: 'd',
68
+ description: 'Dry run the upgrade without actually updating the app.',
69
+ required: false,
70
+ }),
56
71
  };
@@ -1,5 +1,5 @@
1
- import { Command } from '@oclif/core';
2
- export default class UninstallApp extends Command {
1
+ import { BaseCommand } from '../basecommand';
2
+ export default class UninstallApp extends BaseCommand {
3
3
  static description: string;
4
4
  static examples: string[];
5
5
  static strict: boolean;
@@ -7,21 +7,26 @@ const core_1 = require("@oclif/core");
7
7
  const inquirer_1 = tslib_1.__importDefault(require("inquirer"));
8
8
  const sdk_1 = require("@contrail/sdk");
9
9
  const apps_1 = require("../../api/apps");
10
- class UninstallApp extends core_1.Command {
10
+ const basecommand_1 = require("../basecommand");
11
+ const common_1 = require("../../common");
12
+ class UninstallApp extends basecommand_1.BaseCommand {
11
13
  async run() {
12
14
  const { flags } = await this.parse(UninstallApp);
15
+ await super.setLogLevel(flags.logLevel);
13
16
  await (0, login_1.authUser)();
14
17
  const installedApps = await (0, apps_1.getInstalledApps)();
15
18
  if (!flags.appIdentifier) {
16
- const answers = await inquirer_1.default.prompt([{
19
+ const answers = await inquirer_1.default.prompt([
20
+ {
17
21
  type: 'list',
18
22
  name: 'appIdentifier',
19
23
  message: 'Which app would you like to uninstall?',
20
- choices: installedApps.map(x => x.app.identifier)
21
- }]);
24
+ choices: installedApps.map((x) => x.app.identifier),
25
+ },
26
+ ]);
22
27
  flags.appIdentifier = answers.appIdentifier;
23
28
  }
24
- const appToDelete = installedApps.find(x => x.app.identifier === flags.appIdentifier);
29
+ const appToDelete = installedApps.find((x) => x.app.identifier === flags.appIdentifier);
25
30
  if (!appToDelete) {
26
31
  throw new Error(`App ${flags.appIdentifier} not found`);
27
32
  }
@@ -29,9 +34,12 @@ class UninstallApp extends core_1.Command {
29
34
  await (0, apps_1.deleteAppOrg)(appToDelete.id);
30
35
  // eslint-disable-next-line no-constant-condition
31
36
  while (true) {
32
- await delay(1000);
37
+ await (0, common_1.delay)(1000);
33
38
  try {
34
- const appStillDeleting = await new sdk_1.Entities().get({ entityName: 'app-org', id: appToDelete.id });
39
+ const appStillDeleting = await new sdk_1.Entities().get({
40
+ entityName: 'app-org',
41
+ id: appToDelete.id,
42
+ });
35
43
  if (!appStillDeleting) {
36
44
  break;
37
45
  }
@@ -54,8 +62,9 @@ UninstallApp.examples = [
54
62
  // variable argument length
55
63
  UninstallApp.strict = true;
56
64
  UninstallApp.flags = {
57
- appIdentifier: core_1.Flags.string({ char: 'i', description: 'The identifier of the app to uninstall. The identifier can be found on the app\'s page in the marketplace.', required: false }),
65
+ appIdentifier: core_1.Flags.string({
66
+ char: 'i',
67
+ description: '"The identifier of the app to uninstall. The identifier can be found on the app\'s page in the marketplace."',
68
+ required: false,
69
+ }),
58
70
  };
59
- function delay(ms) {
60
- return new Promise(resolve => setTimeout(resolve, ms));
61
- }
@@ -1,5 +1,5 @@
1
- import { Command } from '@oclif/core';
2
- export default class UpgradeApp extends Command {
1
+ import { BaseCommand } from '../basecommand';
2
+ export default class UpgradeApp extends BaseCommand {
3
3
  static description: string;
4
4
  static examples: string[];
5
5
  static strict: boolean;
@@ -8,44 +8,59 @@ const core_1 = require("@oclif/core");
8
8
  const inquirer_1 = tslib_1.__importDefault(require("inquirer"));
9
9
  const sdk_1 = require("@contrail/sdk");
10
10
  const apps_1 = require("../../api/apps");
11
- class UpgradeApp extends core_1.Command {
11
+ const basecommand_1 = require("../basecommand");
12
+ const logger_1 = tslib_1.__importDefault(require("../../logger"));
13
+ const common_1 = require("../../common");
14
+ class UpgradeApp extends basecommand_1.BaseCommand {
12
15
  async run() {
13
16
  const { flags } = await this.parse(UpgradeApp);
17
+ await super.setLogLevel(flags.logLevel);
14
18
  await (0, login_1.authUser)();
15
19
  const allApps = await (0, apps_1.getAvailableApps)();
16
20
  const installedApps = await (0, apps_1.getInstalledApps)();
17
21
  if (!flags.appIdentifier) {
18
- const answers = await inquirer_1.default.prompt([{
22
+ const answers = await inquirer_1.default.prompt([
23
+ {
19
24
  type: 'list',
20
25
  name: 'appIdentifier',
21
26
  message: 'Which app would you like to upgrade?',
22
- choices: installedApps.map(x => x.app.identifier)
23
- }]);
27
+ choices: installedApps.map((x) => x.app.identifier),
28
+ },
29
+ ]);
24
30
  flags.appIdentifier = answers.appIdentifier;
25
31
  }
26
- const appOrgToUpgrade = installedApps.find(x => x.app.identifier === flags.appIdentifier);
27
- const appToUpgrade = allApps.find(x => x.identifier === flags.appIdentifier);
32
+ const appOrgToUpgrade = installedApps.find((x) => x.app.identifier === flags.appIdentifier);
33
+ const appToUpgrade = allApps.find((x) => x.identifier === flags.appIdentifier);
28
34
  if (!appToUpgrade) {
29
35
  throw new Error(`App ${flags.appIdentifier} not found`);
30
36
  }
31
37
  const versions = await (0, apps_1.getAppVersions)(appToUpgrade);
32
38
  let versionToUpgrade;
33
39
  if (flags.latest) {
34
- versionToUpgrade = versions.sort((a, b) => a.createdOn > b.createdOn ? 1 : -1)[0].id;
40
+ versionToUpgrade = versions.sort((a, b) => (a.createdOn > b.createdOn ? 1 : -1))[0].id;
35
41
  }
36
42
  else {
37
- const answers = await inquirer_1.default.prompt([{
43
+ const answers = await inquirer_1.default.prompt([
44
+ {
38
45
  type: 'list',
39
46
  name: 'appVersion',
40
47
  message: 'Which app version would you like to upgrade to?',
41
- choices: versions.map(x => {
48
+ choices: versions
49
+ .map((x) => {
42
50
  const number = x.versionNumber.toString().padStart(4, '0');
43
- const name = x.id === appOrgToUpgrade.appVersionId ? `${number} - ${x.id} (${x.createdOn}) (${x.appRuntime}) (current)` : `${number} - ${x.id} (${x.createdOn}) (${x.appRuntime})`;
51
+ const name = x.id === appOrgToUpgrade.appVersionId
52
+ ? `${number} - ${x.id} (${x.createdOn}) (${x.appRuntime}) (current)`
53
+ : `${number} - ${x.id} (${x.createdOn}) (${x.appRuntime})`;
44
54
  return {
45
- value: x.id, name
55
+ value: x.id,
56
+ name,
46
57
  };
47
- }).sort((x, y) => { return x.name > y.name ? -1 : 1; })
48
- }]);
58
+ })
59
+ .sort((x, y) => {
60
+ return x.name > y.name ? -1 : 1;
61
+ }),
62
+ },
63
+ ]);
49
64
  versionToUpgrade = answers.appVersion;
50
65
  }
51
66
  this.log(`%s Upgrading app to version ${versionToUpgrade}`, chalk_1.default.green.bold('APP UPGRADE'));
@@ -61,27 +76,35 @@ UpgradeApp.examples = [
61
76
  // variable argument length
62
77
  UpgradeApp.strict = true;
63
78
  UpgradeApp.flags = {
64
- appIdentifier: core_1.Flags.string({ char: 'i', description: 'The appIdentifier of the app to install', required: false }),
65
- latest: core_1.Flags.boolean({ char: 'l', description: 'Upgrade to the latest version of the app', required: false })
79
+ appIdentifier: core_1.Flags.string({
80
+ char: 'i',
81
+ description: 'The appIdentifier of the app to install',
82
+ required: false,
83
+ }),
84
+ latest: core_1.Flags.boolean({
85
+ char: 'l',
86
+ description: 'Upgrade to the latest version of the app',
87
+ required: false,
88
+ }),
66
89
  };
67
90
  async function upgradeAndWait(appOrgToUpgrade, versionToUpgrade) {
68
91
  await (0, apps_1.upgradeAppVersion)(appOrgToUpgrade, versionToUpgrade);
69
92
  // eslint-disable-next-line no-constant-condition
70
93
  while (true) {
71
- await delay(1000);
72
- const appStillUpgrading = await new sdk_1.Entities().get({ entityName: 'app-org', id: appOrgToUpgrade.id });
94
+ await (0, common_1.delay)(1000);
95
+ const appStillUpgrading = await new sdk_1.Entities().get({
96
+ entityName: 'app-org',
97
+ id: appOrgToUpgrade.id,
98
+ });
73
99
  if (appStillUpgrading.status === 'READY') {
74
- console.log('%s App Upgraded', chalk_1.default.green.bold('APP UPGRADE'));
100
+ logger_1.default.info('%s App Upgraded', chalk_1.default.green.bold('APP UPGRADE'));
75
101
  return;
76
102
  }
77
103
  if (appStillUpgrading.status === 'FAILED_INSTALLING') {
78
- console.log('%s App Upgrade FAILED!', chalk_1.default.red.bold('APP UPGRADE'));
104
+ logger_1.default.info('%s App Upgrade FAILED!', chalk_1.default.red.bold('APP UPGRADE'));
79
105
  return;
80
106
  }
81
- console.log('checking app status...');
107
+ logger_1.default.info('checking app status...');
82
108
  }
83
109
  }
84
110
  exports.upgradeAndWait = upgradeAndWait;
85
- function delay(ms) {
86
- return new Promise(resolve => setTimeout(resolve, ms));
87
- }
@@ -0,0 +1,7 @@
1
+ import { Command } from '@oclif/core';
2
+ export declare abstract class BaseCommand extends Command {
3
+ static baseFlags: {
4
+ logLevel: import("@oclif/core/lib/interfaces").OptionFlag<string, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
5
+ };
6
+ setLogLevel(logLevel: string): Promise<void>;
7
+ }
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.BaseCommand = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const core_1 = require("@oclif/core");
6
+ const logger_1 = tslib_1.__importDefault(require("../logger"));
7
+ const config_1 = require("../helpers/config/config");
8
+ class BaseCommand extends core_1.Command {
9
+ async setLogLevel(logLevel) {
10
+ if (logLevel) {
11
+ logger_1.default.level = logLevel;
12
+ }
13
+ else {
14
+ const config = await (0, config_1.readVibeIQConfig)();
15
+ if (config.logLevel) {
16
+ logger_1.default.level = config.logLevel;
17
+ }
18
+ }
19
+ }
20
+ }
21
+ exports.BaseCommand = BaseCommand;
22
+ BaseCommand.baseFlags = {
23
+ logLevel: core_1.Flags.string({
24
+ description: 'The Log Level',
25
+ required: false,
26
+ char: 'l',
27
+ options: ['error', 'warn', 'info', 'debug'],
28
+ }),
29
+ };
@@ -1,5 +1,5 @@
1
- import { Command } from '@oclif/core';
2
- export default class DeleteAllColors extends Command {
1
+ import { BaseCommand } from '../basecommand';
2
+ export default class DeleteAllColors extends BaseCommand {
3
3
  static description: string;
4
4
  static examples: string[];
5
5
  run(): Promise<void>;
@@ -1,25 +1,28 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const tslib_1 = require("tslib");
4
- const core_1 = require("@oclif/core");
5
4
  const chalk_1 = tslib_1.__importDefault(require("chalk"));
6
5
  const login_1 = require("../../auth/login");
7
6
  const helpers_1 = require("../../helpers/colors/helpers");
8
- class DeleteAllColors extends core_1.Command {
7
+ const basecommand_1 = require("../basecommand");
8
+ const logger_1 = tslib_1.__importDefault(require("../../logger"));
9
+ class DeleteAllColors extends basecommand_1.BaseCommand {
9
10
  async run() {
11
+ const { flags } = await this.parse(DeleteAllColors);
12
+ await super.setLogLevel(flags.logLevel);
10
13
  try {
11
14
  await (0, login_1.authUser)();
12
15
  const colors = await (0, helpers_1.getExistingColors)();
13
- console.log('Deleting %s colors', colors.length);
16
+ logger_1.default.info('Deleting %s colors', colors.length);
14
17
  for (const color of colors) {
15
18
  await (0, helpers_1.deleteColor)(color);
16
19
  }
17
20
  }
18
21
  catch (e) {
19
- console.log(`%s Loading Colors Failed. ${e}`, chalk_1.default.red.bold('FAIL'));
22
+ logger_1.default.info(`%s Loading Colors Failed. ${e}`, chalk_1.default.red.bold('FAIL'));
20
23
  return;
21
24
  }
22
- console.log('%s Deleting Colors Complete.', chalk_1.default.green.bold('COMPLETE'));
25
+ logger_1.default.info('%s Deleting Colors Complete.', chalk_1.default.green.bold('COMPLETE'));
23
26
  }
24
27
  }
25
28
  exports.default = DeleteAllColors;
@@ -1,5 +1,5 @@
1
- import { Command } from '@oclif/core';
2
- export default class LoadColors extends Command {
1
+ import { BaseCommand } from '../basecommand';
2
+ export default class LoadColors extends BaseCommand {
3
3
  static description: string;
4
4
  static examples: string[];
5
5
  run(): Promise<void>;
@@ -1,24 +1,27 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const tslib_1 = require("tslib");
4
- const core_1 = require("@oclif/core");
5
4
  const chalk_1 = tslib_1.__importDefault(require("chalk"));
6
5
  const login_1 = require("../../auth/login");
7
6
  const helpers_1 = require("../../helpers/colors/helpers");
8
- class LoadColors extends core_1.Command {
7
+ const basecommand_1 = require("../basecommand");
8
+ const logger_1 = tslib_1.__importDefault(require("../../logger"));
9
+ class LoadColors extends basecommand_1.BaseCommand {
9
10
  async run() {
11
+ const { flags } = await this.parse(LoadColors);
12
+ await super.setLogLevel(flags.logLevel);
10
13
  try {
11
14
  await (0, login_1.authUser)();
12
- console.log('%s Getting Existing Colors', chalk_1.default.yellow.bold('COLORS'));
13
- console.log('%s Uploading', chalk_1.default.yellow.bold('COLORS'));
15
+ logger_1.default.info('%s Getting Existing Colors', chalk_1.default.yellow.bold('COLORS'));
16
+ logger_1.default.info('%s Uploading', chalk_1.default.yellow.bold('COLORS'));
14
17
  await (0, helpers_1.uploadColors)();
15
- console.log('%s Uploaded', chalk_1.default.yellow.bold('COLORS'));
18
+ logger_1.default.info('%s Uploaded', chalk_1.default.yellow.bold('COLORS'));
16
19
  }
17
20
  catch (e) {
18
- console.log(`%s Loading Colors Failed. ${e}`, chalk_1.default.red.bold('FAIL'));
21
+ logger_1.default.info(`%s Loading Colors Failed. ${e}`, chalk_1.default.red.bold('FAIL'));
19
22
  return;
20
23
  }
21
- console.log('%s Loading Colors Complete.', chalk_1.default.green.bold('COMPLETE'));
24
+ logger_1.default.info('%s Loading Colors Complete.', chalk_1.default.green.bold('COMPLETE'));
22
25
  }
23
26
  }
24
27
  exports.default = LoadColors;
@@ -1,5 +1,5 @@
1
- import { Command } from '@oclif/core';
2
- export default class ListConfig extends Command {
1
+ import { BaseCommand } from '../basecommand';
2
+ export default class ListConfig extends BaseCommand {
3
3
  static description: string;
4
4
  static examples: string[];
5
5
  run(): Promise<void>;
@@ -1,9 +1,11 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- const core_1 = require("@oclif/core");
4
3
  const config_1 = require("../../helpers/config/config");
5
- class ListConfig extends core_1.Command {
4
+ const basecommand_1 = require("../basecommand");
5
+ class ListConfig extends basecommand_1.BaseCommand {
6
6
  async run() {
7
+ const { flags } = await this.parse(ListConfig);
8
+ await super.setLogLevel(flags.logLevel);
7
9
  this.log(await (0, config_1.readVibeIQConfig)());
8
10
  }
9
11
  }
@@ -1,5 +1,5 @@
1
- import { Command } from '@oclif/core';
2
- export default class RemoveConfig extends Command {
1
+ import { BaseCommand } from '../basecommand';
2
+ export default class RemoveConfig extends BaseCommand {
3
3
  static description: string;
4
4
  static examples: string[];
5
5
  static strict: boolean;
@@ -2,9 +2,11 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const core_1 = require("@oclif/core");
4
4
  const config_1 = require("../../helpers/config/config");
5
- class RemoveConfig extends core_1.Command {
5
+ const basecommand_1 = require("../basecommand");
6
+ class RemoveConfig extends basecommand_1.BaseCommand {
6
7
  async run() {
7
- const { args, flags } = await this.parse(RemoveConfig);
8
+ const { flags } = await this.parse(RemoveConfig);
9
+ await super.setLogLevel(flags.logLevel);
8
10
  await (0, config_1.deleteConfigs)(Object.keys(flags));
9
11
  }
10
12
  }
@@ -1,5 +1,5 @@
1
- import { Command } from '@oclif/core';
2
- export default class SetConfig extends Command {
1
+ import { BaseCommand } from '../basecommand';
2
+ export default class SetConfig extends BaseCommand {
3
3
  static description: string;
4
4
  static examples: string[];
5
5
  static flags: {
@@ -7,6 +7,7 @@ export default class SetConfig extends Command {
7
7
  apiGateway: import("@oclif/core/lib/interfaces").OptionFlag<string, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
8
8
  orgId: import("@oclif/core/lib/interfaces").OptionFlag<string, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
9
9
  apiUserToken: import("@oclif/core/lib/interfaces").OptionFlag<string, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
10
+ logLevel: import("@oclif/core/lib/interfaces").OptionFlag<string, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
10
11
  };
11
12
  static args: {};
12
13
  run(): Promise<void>;
@@ -1,14 +1,18 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
3
4
  const core_1 = require("@oclif/core");
4
5
  const config_1 = require("../../helpers/config/config");
5
- class SetConfig extends core_1.Command {
6
+ const basecommand_1 = require("../basecommand");
7
+ const logger_1 = tslib_1.__importDefault(require("../../logger"));
8
+ class SetConfig extends basecommand_1.BaseCommand {
6
9
  async run() {
7
10
  const { flags } = await this.parse(SetConfig);
11
+ await super.setLogLevel(flags.logLevel);
8
12
  const config = {};
9
13
  for (const [label, obj] of Object.entries(flags)) {
10
14
  config[label] = obj;
11
- console.log(`label: ${label}, obj: ${obj}`);
15
+ logger_1.default.info(`label: ${label}, obj: ${obj}`);
12
16
  }
13
17
  await (0, config_1.storeConfig)(config);
14
18
  this.log(await (0, config_1.readVibeIQConfig)());
@@ -16,13 +20,23 @@ class SetConfig extends core_1.Command {
16
20
  }
17
21
  exports.default = SetConfig;
18
22
  SetConfig.description = 'Set a variable in the configuration';
19
- SetConfig.examples = [
20
- '$ contrail config set --orgId 1234',
21
- ];
23
+ SetConfig.examples = ['$ contrail config set --orgId 1234'];
22
24
  SetConfig.flags = {
23
25
  orgSlug: core_1.Flags.string({ description: 'The org slug', required: false }),
24
- apiGateway: core_1.Flags.string({ description: 'The API Gateway', required: false }),
26
+ apiGateway: core_1.Flags.string({
27
+ description: 'The API Gateway',
28
+ required: false,
29
+ }),
25
30
  orgId: core_1.Flags.string({ description: 'The org Id', required: false }),
26
- apiUserToken: core_1.Flags.string({ description: 'The API User Token', required: false }),
31
+ apiUserToken: core_1.Flags.string({
32
+ description: 'The API User Token',
33
+ required: false,
34
+ }),
35
+ logLevel: core_1.Flags.string({
36
+ description: 'The Log Level',
37
+ required: false,
38
+ char: 'l',
39
+ options: ['error', 'warn', 'info', 'debug'],
40
+ }),
27
41
  };
28
42
  SetConfig.args = {};
@@ -1,6 +1,6 @@
1
- import { Command } from '@oclif/core';
1
+ import { BaseCommand } from '../basecommand';
2
2
  export declare const DEFAULT_FILE_LOCATION = "groups.yml";
3
- export default class ExportGroups extends Command {
3
+ export default class ExportGroups extends BaseCommand {
4
4
  static description: string;
5
5
  static examples: string[];
6
6
  static flags: {
@@ -10,11 +10,14 @@ const js_yaml_1 = tslib_1.__importDefault(require("js-yaml"));
10
10
  const core_1 = require("@oclif/core");
11
11
  const file_helpers_1 = require("../../helpers/file-helpers");
12
12
  const users_1 = require("../../api/users");
13
+ const basecommand_1 = require("../basecommand");
14
+ const logger_1 = tslib_1.__importDefault(require("../../logger"));
13
15
  exports.DEFAULT_FILE_LOCATION = 'groups.yml';
14
- class ExportGroups extends core_1.Command {
16
+ class ExportGroups extends basecommand_1.BaseCommand {
15
17
  async run() {
16
18
  var _a;
17
19
  const { flags } = await this.parse(ExportGroups);
20
+ await super.setLogLevel(flags.logLevel);
18
21
  try {
19
22
  await (0, login_1.authUser)();
20
23
  this.log('%s Getting Groups.', chalk_1.default.blue.bold('START'));
@@ -35,8 +38,17 @@ ExportGroups.examples = [
35
38
  `,
36
39
  ];
37
40
  ExportGroups.flags = {
38
- outFile: core_1.Flags.string({ char: 'f', description: 'The location for the file to be saved', required: false, default: exports.DEFAULT_FILE_LOCATION }),
39
- overwrite: core_1.Flags.boolean({ description: 'Replaces existing files if they exist', required: false, default: false })
41
+ outFile: core_1.Flags.string({
42
+ char: 'f',
43
+ description: 'The location for the file to be saved',
44
+ required: false,
45
+ default: exports.DEFAULT_FILE_LOCATION,
46
+ }),
47
+ overwrite: core_1.Flags.boolean({
48
+ description: 'Replaces existing files if they exist',
49
+ required: false,
50
+ default: false,
51
+ }),
40
52
  };
41
53
  async function exportGroups(fileLocation, overwrite) {
42
54
  const allGroups = await (0, users_1.getGroups)({ relations: ['groupPrincipals'] });
@@ -70,22 +82,22 @@ function getGroupPrincipals(group, allGroups, orgUsers) {
70
82
  for (const principal of group.groupPrincipals) {
71
83
  const [type, id] = principal.principalReference.split(':');
72
84
  if (type === 'user') {
73
- const user = orgUsers.find(x => x.user.id === id);
85
+ const user = orgUsers.find((x) => x.user.id === id);
74
86
  if (user) {
75
87
  principals.push({
76
88
  type,
77
- email: user.user.email
89
+ email: user.user.email,
78
90
  });
79
91
  }
80
92
  else {
81
- console.log('couldn\'t find user', id);
93
+ logger_1.default.info('"couldn\'t find user"', id);
82
94
  }
83
95
  }
84
96
  else if (type === 'group') {
85
- const nestedGroup = allGroups.find(x => x.id === id);
97
+ const nestedGroup = allGroups.find((x) => x.id === id);
86
98
  principals.push({
87
99
  type: 'group',
88
- name: nestedGroup.name
100
+ name: nestedGroup.name,
89
101
  });
90
102
  }
91
103
  }
@@ -1,5 +1,5 @@
1
- import { Command } from '@oclif/core';
2
- export default class ImportGroups extends Command {
1
+ import { BaseCommand } from '../basecommand';
2
+ export default class ImportGroups extends BaseCommand {
3
3
  static description: string;
4
4
  static examples: string[];
5
5
  static args: {
@@ -7,4 +7,4 @@ export default class ImportGroups extends Command {
7
7
  };
8
8
  run(): Promise<void>;
9
9
  }
10
- export declare function uploadGroups(fileLocation: string): Promise<void>;
10
+ export declare function uploadGroups(fileLocation: string): Promise<any>;