@contrail/cli 2.4.0 → 3.0.1

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 (172) hide show
  1. package/README.md +550 -196
  2. package/dist/auth/login.d.ts +1 -0
  3. package/dist/auth/login.js +119 -48
  4. package/dist/auth/login.spec.d.ts +1 -0
  5. package/dist/auth/login.spec.js +10 -0
  6. package/dist/baseFlags.d.ts +10 -0
  7. package/dist/baseFlags.js +25 -0
  8. package/dist/basecommand.d.ts +5 -2
  9. package/dist/basecommand.js +51 -47
  10. package/dist/commands/app/create.d.ts +2 -2
  11. package/dist/commands/app/create.js +1 -1
  12. package/dist/commands/app/delete.d.ts +4 -0
  13. package/dist/commands/app/delete.js +3 -0
  14. package/dist/commands/app/getApiKey.d.ts +2 -0
  15. package/dist/commands/app/getApiKey.js +3 -3
  16. package/dist/commands/app/init.d.ts +5 -1
  17. package/dist/commands/app/init.js +6 -3
  18. package/dist/commands/app/install.d.ts +1 -1
  19. package/dist/commands/app/install.js +10 -11
  20. package/dist/commands/app/publish.d.ts +2 -0
  21. package/dist/commands/app/publish.js +3 -3
  22. package/dist/commands/app/uninstall.d.ts +2 -0
  23. package/dist/commands/app/uninstall.js +5 -5
  24. package/dist/commands/app/upgrade.d.ts +2 -0
  25. package/dist/commands/app/upgrade.js +8 -8
  26. package/dist/commands/app/version/major.d.ts +4 -0
  27. package/dist/commands/app/version/major.js +3 -0
  28. package/dist/commands/app/version/minor.d.ts +4 -0
  29. package/dist/commands/app/version/minor.js +3 -0
  30. package/dist/commands/app/version/patch.d.ts +4 -0
  31. package/dist/commands/app/version/patch.js +3 -0
  32. package/dist/commands/config/create.d.ts +12 -0
  33. package/dist/commands/config/create.js +27 -0
  34. package/dist/commands/config/describe.d.ts +14 -0
  35. package/dist/commands/config/describe.js +46 -0
  36. package/dist/commands/config/list.d.ts +4 -0
  37. package/dist/commands/config/list.js +5 -1
  38. package/dist/commands/config/set.d.ts +3 -2
  39. package/dist/commands/config/set.js +17 -13
  40. package/dist/commands/config/use.d.ts +14 -0
  41. package/dist/commands/config/use.js +47 -0
  42. package/dist/commands/file/upload.d.ts +15 -0
  43. package/dist/commands/file/upload.js +69 -0
  44. package/dist/commands/groups/export.d.ts +2 -0
  45. package/dist/commands/groups/export.js +2 -2
  46. package/dist/commands/groups/{upload.d.ts → import.d.ts} +4 -0
  47. package/dist/commands/groups/{upload.js → import.js} +60 -23
  48. package/dist/commands/instance/export.d.ts +2 -0
  49. package/dist/commands/instance/export.js +4 -4
  50. package/dist/commands/instance/import.d.ts +2 -0
  51. package/dist/commands/instance/import.js +8 -8
  52. package/dist/commands/load/colors.d.ts +14 -0
  53. package/dist/commands/load/colors.js +53 -0
  54. package/dist/commands/load/custom-entity.d.ts +14 -0
  55. package/dist/commands/load/custom-entity.js +55 -0
  56. package/dist/commands/load/line-sheet.d.ts +14 -0
  57. package/dist/commands/load/line-sheet.js +55 -0
  58. package/dist/commands/{loader-process → load}/upload-and-load.d.ts +4 -0
  59. package/dist/commands/{loader-process → load}/upload-and-load.js +6 -4
  60. package/dist/commands/projects/export.d.ts +4 -1
  61. package/dist/commands/projects/export.js +4 -3
  62. package/dist/commands/projects/list.d.ts +4 -0
  63. package/dist/commands/projects/list.js +3 -0
  64. package/dist/commands/projects/load.d.ts +4 -0
  65. package/dist/commands/projects/load.js +5 -3
  66. package/dist/commands/types/exportOptionSetHierarchies.d.ts +4 -0
  67. package/dist/commands/types/exportOptionSetHierarchies.js +3 -0
  68. package/dist/commands/types/getAll.d.ts +9 -27
  69. package/dist/commands/types/getAll.js +6 -313
  70. package/dist/commands/types/getOptionSets.d.ts +16 -0
  71. package/dist/commands/types/getOptionSets.js +171 -0
  72. package/dist/commands/types/loadAll.d.ts +2 -0
  73. package/dist/commands/types/loadAll.js +2 -2
  74. package/dist/commands/types/mergeOptionSets.d.ts +4 -0
  75. package/dist/commands/types/mergeOptionSets.js +5 -3
  76. package/dist/commands/types/mergeTypeProperties.d.ts +4 -0
  77. package/dist/commands/types/mergeTypeProperties.js +11 -9
  78. package/dist/commands/types/parseOptionSetsHierarchyLocalFile.d.ts +4 -0
  79. package/dist/commands/types/parseOptionSetsHierarchyLocalFile.js +4 -2
  80. package/dist/commands/types/parseOptionSetsHierarchyValuesToKeysLocalFile.d.ts +4 -0
  81. package/dist/commands/types/parseOptionSetsHierarchyValuesToKeysLocalFile.js +4 -2
  82. package/dist/commands/types/parseOptionSetsLocalFiles.d.ts +2 -0
  83. package/dist/commands/types/parseOptionSetsLocalFiles.js +4 -4
  84. package/dist/commands/types/parseOptionSetsToFolderStructure.d.ts +4 -0
  85. package/dist/commands/types/parseOptionSetsToFolderStructure.js +6 -4
  86. package/dist/commands/types/parseTypesFromFiles.d.ts +4 -0
  87. package/dist/commands/types/parseTypesFromFiles.js +4 -2
  88. package/dist/commands/types/parseTypesFromLocalFiles.d.ts +4 -0
  89. package/dist/commands/types/parseTypesFromLocalFiles.js +4 -2
  90. package/dist/commands/types/parseTypesFromTemplateAndDataFromLocalFiles.d.ts +4 -0
  91. package/dist/commands/types/parseTypesFromTemplateAndDataFromLocalFiles.js +5 -3
  92. package/dist/commands/types/parseTypesFromTemplateFromLocalFiles.d.ts +4 -0
  93. package/dist/commands/types/parseTypesFromTemplateFromLocalFiles.js +5 -3
  94. package/dist/commands/types/uploadOptionSetHierarchies.d.ts +2 -0
  95. package/dist/commands/types/uploadOptionSetHierarchies.js +2 -2
  96. package/dist/commands/types/uploadOptionSets.d.ts +2 -0
  97. package/dist/commands/types/uploadOptionSets.js +2 -2
  98. package/dist/commands/types/uploadOptionSetsHierarchyLocalFile.d.ts +4 -0
  99. package/dist/commands/types/uploadOptionSetsHierarchyLocalFile.js +4 -2
  100. package/dist/commands/types/uploadRuleSets.d.ts +2 -0
  101. package/dist/commands/types/uploadRuleSets.js +2 -2
  102. package/dist/commands/types/uploadTypePolicies.d.ts +2 -0
  103. package/dist/commands/types/uploadTypePolicies.js +2 -2
  104. package/dist/commands/types/uploadTypePropertyPolicies.d.ts +2 -0
  105. package/dist/commands/types/uploadTypePropertyPolicies.js +2 -2
  106. package/dist/commands/types/uploadTypes.d.ts +2 -0
  107. package/dist/commands/types/uploadTypes.js +2 -2
  108. package/dist/commands/types/uploadUsageInfo.d.ts +2 -0
  109. package/dist/commands/types/uploadUsageInfo.js +2 -2
  110. package/dist/commands/users/export.d.ts +2 -0
  111. package/dist/commands/users/export.js +2 -2
  112. package/dist/commands/users/{upload.d.ts → import.d.ts} +4 -0
  113. package/dist/commands/users/{upload.js → import.js} +4 -2
  114. package/dist/commands/webhooks/create.d.ts +2 -0
  115. package/dist/commands/webhooks/create.js +2 -2
  116. package/dist/commands/webhooks/delete.d.ts +2 -0
  117. package/dist/commands/webhooks/delete.js +5 -5
  118. package/dist/commands/webhooks/getWebhookTrigger.d.ts +4 -0
  119. package/dist/commands/webhooks/getWebhookTrigger.js +6 -4
  120. package/dist/commands/webhooks/list.d.ts +2 -0
  121. package/dist/commands/webhooks/list.js +2 -2
  122. package/dist/commands/workflow-template-definitions/install.d.ts +4 -0
  123. package/dist/commands/workflow-template-definitions/install.js +3 -0
  124. package/dist/commands/workflow-template-definitions/list.d.ts +4 -0
  125. package/dist/commands/workflow-template-definitions/list.js +3 -0
  126. package/dist/commands/workflow-templates/delete.d.ts +4 -0
  127. package/dist/commands/workflow-templates/delete.js +3 -0
  128. package/dist/commands/workflow-templates/export.d.ts +2 -0
  129. package/dist/commands/workflow-templates/export.js +4 -2
  130. package/dist/commands/workflow-templates/list.d.ts +4 -0
  131. package/dist/commands/workflow-templates/list.js +3 -0
  132. package/dist/commands/workflow-templates/load.d.ts +4 -0
  133. package/dist/commands/workflow-templates/load.js +4 -2
  134. package/dist/helpers/app/app-template-parsers.d.ts +1 -1
  135. package/dist/helpers/app/app-template-parsers.js +3 -4
  136. package/dist/helpers/config/config.d.ts +12 -2
  137. package/dist/helpers/config/config.js +158 -16
  138. package/dist/helpers/file-helpers.d.ts +1 -0
  139. package/dist/helpers/file-helpers.js +11 -1
  140. package/dist/helpers/load/helpers.d.ts +20 -0
  141. package/dist/helpers/load/helpers.js +141 -0
  142. package/dist/helpers/load/helpers.spec.d.ts +1 -0
  143. package/dist/helpers/load/helpers.spec.js +62 -0
  144. package/dist/helpers/load/validators.d.ts +14 -0
  145. package/dist/helpers/load/validators.js +182 -0
  146. package/dist/helpers/load/validators.spec.d.ts +1 -0
  147. package/dist/helpers/load/validators.spec.js +450 -0
  148. package/dist/helpers/types/type-uploader.js +11 -3
  149. package/dist/helpers/workflow-template-definitions/workflow-template-definition-deployer.js +1 -1
  150. package/dist/helpers/workflow-templates/helper.js +0 -4
  151. package/dist/interfaces.d.ts +1 -0
  152. package/dist/templates/typescript/app.yml +17 -19
  153. package/dist/templates/typescript/package.json +14 -0
  154. package/dist/templates/typescript/src/actions/logItem.ts +1 -2
  155. package/oclif.manifest.json +1955 -250
  156. package/package.json +4 -2
  157. package/dist/commands/colors/deleteAll.d.ts +0 -6
  158. package/dist/commands/colors/deleteAll.js +0 -31
  159. package/dist/commands/colors/load.d.ts +0 -6
  160. package/dist/commands/colors/load.js +0 -30
  161. package/dist/commands/config/environments/list.d.ts +0 -7
  162. package/dist/commands/config/environments/list.js +0 -19
  163. package/dist/commands/config/environments/remove.d.ts +0 -12
  164. package/dist/commands/config/environments/remove.js +0 -36
  165. package/dist/commands/config/environments/set.d.ts +0 -12
  166. package/dist/commands/config/environments/set.js +0 -29
  167. package/dist/commands/config/remove.d.ts +0 -15
  168. package/dist/commands/config/remove.js +0 -28
  169. package/dist/commands/loader-process/load.d.ts +0 -9
  170. package/dist/commands/loader-process/load.js +0 -39
  171. package/dist/helpers/loader-process/helpers.d.ts +0 -2
  172. package/dist/helpers/loader-process/helpers.js +0 -99
@@ -19,6 +19,7 @@ class PublishApp extends basecommand_1.BaseCommand {
19
19
  // variable argument length
20
20
  static strict = true;
21
21
  static flags = {
22
+ ...basecommand_1.BaseCommand.baseFlags,
22
23
  upgrade: core_1.Flags.boolean({
23
24
  char: 'u',
24
25
  description: 'In addition to deploying, upgrade the installed version of the app in this org to the latest one.',
@@ -36,7 +37,6 @@ class PublishApp extends basecommand_1.BaseCommand {
36
37
  }),
37
38
  };
38
39
  async run() {
39
- const { flags } = await this.parse(PublishApp);
40
40
  let appDeclaration;
41
41
  try {
42
42
  appDeclaration = (0, load_app_config_1.loadAppConfig)();
@@ -48,8 +48,8 @@ class PublishApp extends basecommand_1.BaseCommand {
48
48
  logger_1.default.info(`%s Deploying Application. ${appDeclaration.appIdentifier}`, chalk_1.default.blue.bold('START'));
49
49
  try {
50
50
  await (0, login_1.authUser)();
51
- const app = await new app_deployer_1.AppDeployer(flags.verbose, flags.dryRun).deploy(appDeclaration);
52
- if (flags.upgrade) {
51
+ const app = await new app_deployer_1.AppDeployer(this.flags.verbose, this.flags.dryRun).deploy(appDeclaration);
52
+ if (this.flags.upgrade) {
53
53
  const installedApps = await (0, apps_1.getInstalledApps)();
54
54
  const installedAppOrg = installedApps.find((x) => x.appId === app.id);
55
55
  if (!installedAppOrg) {
@@ -5,6 +5,8 @@ export default class UninstallApp extends BaseCommand {
5
5
  static strict: boolean;
6
6
  static flags: {
7
7
  appIdentifier: import("@oclif/core/lib/interfaces").OptionFlag<string, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
8
+ alwaysConfirmEnv: import("@oclif/core/lib/interfaces").OptionFlag<string, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
9
+ logLevel: import("@oclif/core/lib/interfaces").OptionFlag<string, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
8
10
  };
9
11
  run(): Promise<void>;
10
12
  }
@@ -18,6 +18,7 @@ class UninstallApp extends basecommand_1.BaseCommand {
18
18
  // variable argument length
19
19
  static strict = true;
20
20
  static flags = {
21
+ ...basecommand_1.BaseCommand.baseFlags,
21
22
  appIdentifier: core_1.Flags.string({
22
23
  char: 'i',
23
24
  description: '"The identifier of the app to uninstall. The identifier can be found on the app\'s page in the marketplace."',
@@ -25,10 +26,9 @@ class UninstallApp extends basecommand_1.BaseCommand {
25
26
  }),
26
27
  };
27
28
  async run() {
28
- const { flags } = await this.parse(UninstallApp);
29
29
  await (0, login_1.authUser)();
30
30
  const installedApps = await (0, apps_1.getInstalledApps)();
31
- if (!flags.appIdentifier) {
31
+ if (!this.flags.appIdentifier) {
32
32
  const answers = await inquirer_1.default.prompt([
33
33
  {
34
34
  type: 'list',
@@ -37,11 +37,11 @@ class UninstallApp extends basecommand_1.BaseCommand {
37
37
  choices: installedApps.map((x) => x.app.identifier),
38
38
  },
39
39
  ]);
40
- flags.appIdentifier = answers.appIdentifier;
40
+ this.flags.appIdentifier = answers.appIdentifier;
41
41
  }
42
- const appToDelete = installedApps.find((x) => x.app.identifier === flags.appIdentifier);
42
+ const appToDelete = installedApps.find((x) => x.app.identifier === this.flags.appIdentifier);
43
43
  if (!appToDelete) {
44
- throw new Error(`App ${flags.appIdentifier} not found`);
44
+ throw new Error(`App ${this.flags.appIdentifier} not found`);
45
45
  }
46
46
  this.log('%s Uninstalling app', chalk_1.default.green.bold('APP UNINSTALLATION'));
47
47
  await (0, apps_1.deleteAppOrg)(appToDelete.id);
@@ -6,6 +6,8 @@ export default class UpgradeApp extends BaseCommand {
6
6
  static flags: {
7
7
  appIdentifier: import("@oclif/core/lib/interfaces").OptionFlag<string, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
8
8
  latest: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
9
+ alwaysConfirmEnv: 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>;
9
11
  };
10
12
  run(): Promise<void>;
11
13
  }
@@ -20,6 +20,7 @@ class UpgradeApp extends basecommand_1.BaseCommand {
20
20
  // variable argument length
21
21
  static strict = true;
22
22
  static flags = {
23
+ ...basecommand_1.BaseCommand.baseFlags,
23
24
  appIdentifier: core_1.Flags.string({
24
25
  char: 'i',
25
26
  description: 'The appIdentifier of the app to install',
@@ -32,11 +33,10 @@ class UpgradeApp extends basecommand_1.BaseCommand {
32
33
  }),
33
34
  };
34
35
  async run() {
35
- const { flags } = await this.parse(UpgradeApp);
36
36
  await (0, login_1.authUser)();
37
37
  const allApps = await (0, apps_1.getAvailableApps)();
38
38
  const installedApps = await (0, apps_1.getInstalledApps)();
39
- if (!flags.appIdentifier) {
39
+ if (!this.flags.appIdentifier) {
40
40
  const answers = await inquirer_1.default.prompt([
41
41
  {
42
42
  type: 'list',
@@ -45,16 +45,16 @@ class UpgradeApp extends basecommand_1.BaseCommand {
45
45
  choices: installedApps.map((x) => x.app.identifier),
46
46
  },
47
47
  ]);
48
- flags.appIdentifier = answers.appIdentifier;
48
+ this.flags.appIdentifier = answers.appIdentifier;
49
49
  }
50
- const appOrgToUpgrade = installedApps.find((x) => x.app.identifier === flags.appIdentifier);
51
- const appToUpgrade = allApps.find((x) => x.identifier === flags.appIdentifier);
50
+ const appOrgToUpgrade = installedApps.find((x) => x.app.identifier === this.flags.appIdentifier);
51
+ const appToUpgrade = allApps.find((x) => x.identifier === this.flags.appIdentifier);
52
52
  if (!appToUpgrade) {
53
- throw new Error(`App ${flags.appIdentifier} not found`);
53
+ throw new Error(`App ${this.flags.appIdentifier} not found`);
54
54
  }
55
55
  const versions = await (0, apps_1.getAppVersions)(appToUpgrade);
56
56
  let versionToUpgrade;
57
- if (flags.latest) {
57
+ if (this.flags.latest) {
58
58
  versionToUpgrade = versions.sort((a, b) => (a.createdOn > b.createdOn ? 1 : -1))[0].id;
59
59
  }
60
60
  else {
@@ -65,7 +65,7 @@ class UpgradeApp extends basecommand_1.BaseCommand {
65
65
  message: 'Which app version would you like to upgrade to?',
66
66
  choices: versions
67
67
  .map((x) => {
68
- const number = x.versionNumber.toString().padStart(4, '0');
68
+ const number = x.semver;
69
69
  const name = x.id === appOrgToUpgrade.appVersionId
70
70
  ? `${number} - ${x.id} (${x.createdOn}) (${x.appRuntime}) (current)`
71
71
  : `${number} - ${x.id} (${x.createdOn}) (${x.appRuntime})`;
@@ -3,5 +3,9 @@ export default class AppMajorVersionUpgrade extends BaseCommand {
3
3
  skipConfirmEnv: boolean;
4
4
  static description: string;
5
5
  static examples: string[];
6
+ static flags: {
7
+ alwaysConfirmEnv: import("@oclif/core/lib/interfaces").OptionFlag<string, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
8
+ logLevel: import("@oclif/core/lib/interfaces").OptionFlag<string, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
9
+ };
6
10
  run(): Promise<void>;
7
11
  }
@@ -13,6 +13,9 @@ class AppMajorVersionUpgrade extends basecommand_1.BaseCommand {
13
13
  `$ contrail app version major
14
14
  `,
15
15
  ];
16
+ static flags = {
17
+ ...basecommand_1.BaseCommand.baseFlags,
18
+ };
16
19
  async run() {
17
20
  let appDeclaration;
18
21
  try {
@@ -3,5 +3,9 @@ export default class AppMinorVersionUpgrade extends BaseCommand {
3
3
  skipConfirmEnv: boolean;
4
4
  static description: string;
5
5
  static examples: string[];
6
+ static flags: {
7
+ alwaysConfirmEnv: import("@oclif/core/lib/interfaces").OptionFlag<string, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
8
+ logLevel: import("@oclif/core/lib/interfaces").OptionFlag<string, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
9
+ };
6
10
  run(): Promise<void>;
7
11
  }
@@ -13,6 +13,9 @@ class AppMinorVersionUpgrade extends basecommand_1.BaseCommand {
13
13
  `$ contrail app version minor
14
14
  `,
15
15
  ];
16
+ static flags = {
17
+ ...basecommand_1.BaseCommand.baseFlags,
18
+ };
16
19
  async run() {
17
20
  let appDeclaration;
18
21
  try {
@@ -3,5 +3,9 @@ export default class AppPatchVersionUpgrade extends BaseCommand {
3
3
  skipConfirmEnv: boolean;
4
4
  static description: string;
5
5
  static examples: string[];
6
+ static flags: {
7
+ alwaysConfirmEnv: import("@oclif/core/lib/interfaces").OptionFlag<string, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
8
+ logLevel: import("@oclif/core/lib/interfaces").OptionFlag<string, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
9
+ };
6
10
  run(): Promise<void>;
7
11
  }
@@ -13,6 +13,9 @@ class AppPatchVersionUpgrade extends basecommand_1.BaseCommand {
13
13
  `$ contrail app version patch
14
14
  `,
15
15
  ];
16
+ static flags = {
17
+ ...basecommand_1.BaseCommand.baseFlags,
18
+ };
16
19
  async run() {
17
20
  let appDeclaration;
18
21
  try {
@@ -0,0 +1,12 @@
1
+ import { BaseCommand } from '../../basecommand';
2
+ export default class CreateConfig extends BaseCommand {
3
+ static description: string;
4
+ skipConfirmEnv: boolean;
5
+ static examples: string[];
6
+ static flags: {
7
+ name: import("@oclif/core/lib/interfaces").OptionFlag<string, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
8
+ alwaysConfirmEnv: import("@oclif/core/lib/interfaces").OptionFlag<string, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
9
+ logLevel: import("@oclif/core/lib/interfaces").OptionFlag<string, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
10
+ };
11
+ run(): Promise<void>;
12
+ }
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ const config_1 = require("../../helpers/config/config");
5
+ const basecommand_1 = require("../../basecommand");
6
+ const core_1 = require("@oclif/core");
7
+ const logger_1 = tslib_1.__importDefault(require("../../logger"));
8
+ class CreateConfig extends basecommand_1.BaseCommand {
9
+ static description = 'Create a new configuration file';
10
+ skipConfirmEnv = true;
11
+ static examples = ['$ contrail config create --name demo-org'];
12
+ static flags = {
13
+ ...basecommand_1.BaseCommand.baseFlags,
14
+ name: core_1.Flags.string({ description: 'The config name', required: true }),
15
+ };
16
+ async run() {
17
+ let configName = this.flags.name;
18
+ const arrConfigFiles = await (0, config_1.getConfigFiles)();
19
+ if (arrConfigFiles.includes(configName)) {
20
+ logger_1.default.info(`Existing config found with name ${configName}`);
21
+ return;
22
+ }
23
+ await (0, config_1.createConfig)(configName);
24
+ logger_1.default.info(`Successfully created config with name ${configName}`);
25
+ }
26
+ }
27
+ exports.default = CreateConfig;
@@ -0,0 +1,14 @@
1
+ import { BaseCommand } from '../../basecommand';
2
+ export default class DescribeConfig extends BaseCommand {
3
+ static description: string;
4
+ skipConfirmEnv: boolean;
5
+ static examples: string[];
6
+ static args: {
7
+ name: import("@oclif/core/lib/interfaces/parser").Arg<string, Record<string, unknown>>;
8
+ };
9
+ static flags: {
10
+ alwaysConfirmEnv: import("@oclif/core/lib/interfaces").OptionFlag<string, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
11
+ logLevel: import("@oclif/core/lib/interfaces").OptionFlag<string, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
12
+ };
13
+ run(): Promise<void>;
14
+ }
@@ -0,0 +1,46 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ const config_1 = require("../../helpers/config/config");
5
+ const basecommand_1 = require("../../basecommand");
6
+ const inquirer_1 = tslib_1.__importDefault(require("inquirer"));
7
+ const core_1 = require("@oclif/core");
8
+ const logger_1 = tslib_1.__importDefault(require("../../logger"));
9
+ class DescribeConfig extends basecommand_1.BaseCommand {
10
+ static description = 'Describe a configuration file';
11
+ skipConfirmEnv = true;
12
+ static examples = ['$ contrail config describe demo-org'];
13
+ static args = {
14
+ name: core_1.Args.string({ description: 'The config name', required: false }),
15
+ };
16
+ static flags = {
17
+ ...basecommand_1.BaseCommand.baseFlags,
18
+ };
19
+ async run() {
20
+ let configName = this.args.name;
21
+ const arrConfigFiles = await (0, config_1.getConfigFiles)();
22
+ if (this.args.name && !arrConfigFiles.includes(configName)) {
23
+ logger_1.default.error(`No config found with name ${configName}`);
24
+ return;
25
+ }
26
+ if (!this.args.name) {
27
+ const questions = [
28
+ {
29
+ type: 'list',
30
+ name: 'configFile',
31
+ message: 'For which config file would you like to describe?',
32
+ choices: arrConfigFiles.map((fileName) => {
33
+ return {
34
+ name: fileName,
35
+ value: fileName,
36
+ };
37
+ }),
38
+ },
39
+ ];
40
+ const answers = await inquirer_1.default.prompt(questions);
41
+ configName = answers.configFile;
42
+ }
43
+ this.log(await (0, config_1.getConfigContent)(configName));
44
+ }
45
+ }
46
+ exports.default = DescribeConfig;
@@ -3,5 +3,9 @@ export default class ListConfig extends BaseCommand {
3
3
  static description: string;
4
4
  skipConfirmEnv: boolean;
5
5
  static examples: string[];
6
+ static flags: {
7
+ alwaysConfirmEnv: import("@oclif/core/lib/interfaces").OptionFlag<string, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
8
+ logLevel: import("@oclif/core/lib/interfaces").OptionFlag<string, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
9
+ };
6
10
  run(): Promise<void>;
7
11
  }
@@ -9,8 +9,12 @@ class ListConfig extends basecommand_1.BaseCommand {
9
9
  `$ contrail config list
10
10
  `,
11
11
  ];
12
+ static flags = {
13
+ ...basecommand_1.BaseCommand.baseFlags,
14
+ };
12
15
  async run() {
13
- this.log(await (0, config_1.readVibeIQConfig)());
16
+ const arrConfigFiles = await (0, config_1.getConfigFiles)();
17
+ console.table(arrConfigFiles.reduce((a, v, i) => ({ ...a, [i + 1]: v }), {}));
14
18
  }
15
19
  }
16
20
  exports.default = ListConfig;
@@ -5,9 +5,10 @@ export default class SetConfig extends BaseCommand {
5
5
  static examples: string[];
6
6
  static flags: {
7
7
  orgSlug: import("@oclif/core/lib/interfaces").OptionFlag<string, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
8
- apiGateway: import("@oclif/core/lib/interfaces").OptionFlag<string, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
9
- orgId: import("@oclif/core/lib/interfaces").OptionFlag<string, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
8
+ environment: import("@oclif/core/lib/interfaces").OptionFlag<string, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
10
9
  apiUserToken: import("@oclif/core/lib/interfaces").OptionFlag<string, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
10
+ config: import("@oclif/core/lib/interfaces").OptionFlag<string, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
11
+ alwaysConfirmEnv: import("@oclif/core/lib/interfaces").OptionFlag<string, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
11
12
  logLevel: import("@oclif/core/lib/interfaces").OptionFlag<string, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
12
13
  };
13
14
  static args: {};
@@ -10,33 +10,37 @@ class SetConfig extends basecommand_1.BaseCommand {
10
10
  static description = 'Set a variable in the configuration';
11
11
  static examples = ['$ contrail config set --orgId 1234'];
12
12
  static flags = {
13
+ ...basecommand_1.BaseCommand.baseFlags,
13
14
  orgSlug: core_1.Flags.string({ description: 'The org slug', required: false }),
14
- apiGateway: core_1.Flags.string({
15
- description: 'The API Gateway',
15
+ environment: core_1.Flags.string({
16
+ description: 'The Environment',
16
17
  required: false,
18
+ options: ['dev', 'development', 'prod', 'production'],
17
19
  }),
18
- orgId: core_1.Flags.string({ description: 'The org Id', required: false }),
19
20
  apiUserToken: core_1.Flags.string({
20
21
  description: 'The API User Token',
21
22
  required: false,
22
23
  }),
23
- logLevel: core_1.Flags.string({
24
- description: 'The Log Level',
24
+ config: core_1.Flags.string({
25
+ description: 'The config name',
25
26
  required: false,
26
- char: 'l',
27
- options: ['error', 'warn', 'info', 'debug'],
28
27
  }),
29
28
  };
30
29
  static args = {};
31
30
  async run() {
32
- const { flags } = await this.parse(SetConfig);
31
+ delete this.flags.alwaysConfirmEnv;
33
32
  const config = {};
34
- for (const [label, obj] of Object.entries(flags)) {
35
- config[label] = obj;
36
- logger_1.default.info(`label: ${label}, obj: ${obj}`);
33
+ for (const [label, obj] of Object.entries(this.flags)) {
34
+ if (label === 'environment') {
35
+ config['apiGateway'] = await (0, config_1.validateEnvironments)(obj);
36
+ }
37
+ else {
38
+ config[label] = obj;
39
+ }
40
+ logger_1.default.info(`label: ${label}, value: ${obj}`);
37
41
  }
38
- await (0, config_1.storeConfig)(config);
39
- this.log(await (0, config_1.readVibeIQConfig)());
42
+ await (0, config_1.storeConfig)(config, this.flags.config);
43
+ logger_1.default.info(`Successfully added/updated configuration`);
40
44
  }
41
45
  }
42
46
  exports.default = SetConfig;
@@ -0,0 +1,14 @@
1
+ import { BaseCommand } from '../../basecommand';
2
+ export default class UseConfig extends BaseCommand {
3
+ static description: string;
4
+ skipConfirmEnv: boolean;
5
+ static examples: string[];
6
+ static args: {
7
+ name: import("@oclif/core/lib/interfaces/parser").Arg<string, Record<string, unknown>>;
8
+ };
9
+ static flags: {
10
+ alwaysConfirmEnv: import("@oclif/core/lib/interfaces").OptionFlag<string, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
11
+ logLevel: import("@oclif/core/lib/interfaces").OptionFlag<string, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
12
+ };
13
+ run(): Promise<void>;
14
+ }
@@ -0,0 +1,47 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ const config_1 = require("../../helpers/config/config");
5
+ const basecommand_1 = require("../../basecommand");
6
+ const inquirer_1 = tslib_1.__importDefault(require("inquirer"));
7
+ const core_1 = require("@oclif/core");
8
+ const logger_1 = tslib_1.__importDefault(require("../../logger"));
9
+ class UseConfig extends basecommand_1.BaseCommand {
10
+ static description = 'Use a specific configuration';
11
+ skipConfirmEnv = true;
12
+ static examples = ['$ contrail config use demo-org'];
13
+ static args = {
14
+ name: core_1.Args.string({ description: 'The config name', required: false }),
15
+ };
16
+ static flags = {
17
+ ...basecommand_1.BaseCommand.baseFlags,
18
+ };
19
+ async run() {
20
+ let configName = this.args.name;
21
+ const arrConfigFiles = await (0, config_1.getConfigFiles)();
22
+ if (this.args.name && !arrConfigFiles.includes(configName)) {
23
+ logger_1.default.error(`No config found with name ${configName}`);
24
+ return;
25
+ }
26
+ if (!this.args.name) {
27
+ const questions = [
28
+ {
29
+ type: 'list',
30
+ name: 'configFile',
31
+ message: 'Which config would you like to use?',
32
+ choices: arrConfigFiles.map((fileName) => {
33
+ return {
34
+ name: fileName,
35
+ value: fileName,
36
+ };
37
+ }),
38
+ },
39
+ ];
40
+ const answers = await inquirer_1.default.prompt(questions);
41
+ configName = answers.configFile;
42
+ }
43
+ await (0, config_1.storeVibeIQConfig)({ configInUse: configName });
44
+ logger_1.default.info(`Successfully set ${configName} as the configuration to use.`);
45
+ }
46
+ }
47
+ exports.default = UseConfig;
@@ -0,0 +1,15 @@
1
+ import { BaseCommand } from '../../basecommand';
2
+ export default class UploadFile extends BaseCommand {
3
+ static description: string;
4
+ static examples: string[];
5
+ static flags: {
6
+ alwaysConfirmEnv: import("@oclif/core/lib/interfaces").OptionFlag<string, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
7
+ logLevel: import("@oclif/core/lib/interfaces").OptionFlag<string, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
8
+ };
9
+ static args: {
10
+ fileLocation: import("@oclif/core/lib/interfaces/parser").Arg<string, Record<string, unknown>>;
11
+ contentType: import("@oclif/core/lib/interfaces/parser").Arg<string, Record<string, unknown>>;
12
+ };
13
+ run(): Promise<void>;
14
+ }
15
+ export declare function uploadFile(fileLocation: string, contentType: string): Promise<void>;
@@ -0,0 +1,69 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.uploadFile = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const sdk_1 = require("@contrail/sdk");
6
+ const path = tslib_1.__importStar(require("path"));
7
+ const core_1 = require("@oclif/core");
8
+ const chalk_1 = tslib_1.__importDefault(require("chalk"));
9
+ const fs_1 = tslib_1.__importDefault(require("fs"));
10
+ const login_1 = require("../../auth/login");
11
+ const basecommand_1 = require("../../basecommand");
12
+ class UploadFile extends basecommand_1.BaseCommand {
13
+ static description = 'Uploads a file to the VibeIQ platform';
14
+ static examples = [
15
+ `$ contrail file upload <FILE_LOCATION>
16
+ `,
17
+ ];
18
+ static flags = {
19
+ ...basecommand_1.BaseCommand.baseFlags,
20
+ };
21
+ static args = {
22
+ fileLocation: core_1.Args.string({
23
+ description: 'The location of the file on upload',
24
+ required: true,
25
+ }),
26
+ contentType: core_1.Args.string({
27
+ description: 'The Content Type of the file being uploaded. Defaults to application/text',
28
+ required: true,
29
+ default: 'application/text',
30
+ }),
31
+ };
32
+ async run() {
33
+ try {
34
+ await (0, login_1.authUser)();
35
+ this.log('%s Uploading File.', chalk_1.default.blue.bold('START'));
36
+ await uploadFile(this.args.fileLocation, this.args.contentType);
37
+ this.log('%s Uploaded', chalk_1.default.yellow.bold('FILE'));
38
+ }
39
+ catch (e) {
40
+ this.log(`%s User Upload Failed. ${e}`, chalk_1.default.red.bold('FAIL'));
41
+ return;
42
+ }
43
+ this.log('%s User Upload Complete.', chalk_1.default.green.bold('COMPLETE'));
44
+ }
45
+ }
46
+ exports.default = UploadFile;
47
+ function getFile(fileLocation) {
48
+ const CURRENT_DIR = process.cwd();
49
+ try {
50
+ const fullPath = path.join(CURRENT_DIR, fileLocation);
51
+ if (!fs_1.default.existsSync(fullPath)) {
52
+ throw new Error('File not found');
53
+ }
54
+ return fs_1.default.readFileSync(fullPath);
55
+ }
56
+ catch (e) {
57
+ throw new Error(`ERROR PARSING YAML: ${e}`);
58
+ }
59
+ }
60
+ async function uploadFile(fileLocation, contentType) {
61
+ console.log('auth:', sdk_1.Auth.config);
62
+ const user = await (0, sdk_1.getCurrentUser)();
63
+ const file = getFile(fileLocation);
64
+ const buffer = Buffer.from(file);
65
+ const fileName = fileLocation.split(path.sep).pop();
66
+ const fileEntity = await new sdk_1.Files().createAndUploadFileFromBuffer(buffer, contentType, fileName, `user:${user.id}`);
67
+ console.log(JSON.stringify(fileEntity, null, 2));
68
+ }
69
+ exports.uploadFile = uploadFile;
@@ -6,6 +6,8 @@ export default class ExportGroups extends BaseCommand {
6
6
  static flags: {
7
7
  outFile: import("@oclif/core/lib/interfaces").OptionFlag<string, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
8
8
  overwrite: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
9
+ alwaysConfirmEnv: 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>;
9
11
  };
10
12
  run(): Promise<void>;
11
13
  }
@@ -20,6 +20,7 @@ class ExportGroups extends basecommand_1.BaseCommand {
20
20
  `,
21
21
  ];
22
22
  static flags = {
23
+ ...basecommand_1.BaseCommand.baseFlags,
23
24
  outFile: core_1.Flags.string({
24
25
  char: 'f',
25
26
  description: 'The location for the file to be saved',
@@ -33,11 +34,10 @@ class ExportGroups extends basecommand_1.BaseCommand {
33
34
  }),
34
35
  };
35
36
  async run() {
36
- const { flags } = await this.parse(ExportGroups);
37
37
  try {
38
38
  await (0, login_1.authUser)();
39
39
  this.log('%s Getting Groups.', chalk_1.default.blue.bold('START'));
40
- await exportGroups(flags.outFile ?? exports.DEFAULT_FILE_LOCATION, flags.overwrite);
40
+ await exportGroups(this.flags.outFile ?? exports.DEFAULT_FILE_LOCATION, this.flags.overwrite);
41
41
  this.log('%s Done', chalk_1.default.yellow.bold('GROUPS'));
42
42
  }
43
43
  catch (e) {
@@ -2,6 +2,10 @@ import { BaseCommand } from '../../basecommand';
2
2
  export default class ImportGroups extends BaseCommand {
3
3
  static description: string;
4
4
  static examples: string[];
5
+ static flags: {
6
+ alwaysConfirmEnv: import("@oclif/core/lib/interfaces").OptionFlag<string, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
7
+ logLevel: import("@oclif/core/lib/interfaces").OptionFlag<string, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
8
+ };
5
9
  static args: {
6
10
  groupsFile: import("@oclif/core/lib/interfaces/parser").Arg<string, Record<string, unknown>>;
7
11
  };