@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
@@ -7,11 +7,12 @@ const js_yaml_1 = tslib_1.__importDefault(require("js-yaml"));
7
7
  const fs_1 = tslib_1.__importDefault(require("fs"));
8
8
  const sdk_1 = require("@contrail/sdk");
9
9
  const util_1 = require("@contrail/util");
10
+ const logger_1 = tslib_1.__importDefault(require("../../logger"));
10
11
  function getProjectFile(fileName) {
11
12
  const CURRENT_DIR = process.cwd();
12
13
  try {
13
14
  const fullPath = path.join(CURRENT_DIR, fileName);
14
- console.log('Getting file from path: ', fullPath);
15
+ logger_1.default.info('Getting file from path: ', fullPath);
15
16
  const doc = js_yaml_1.default.load(fs_1.default.readFileSync(fullPath, 'utf8'));
16
17
  return doc.projectConfiguration;
17
18
  }
@@ -25,7 +26,7 @@ async function exportProject(name) {
25
26
  entityName: 'workspace',
26
27
  useSearch: false,
27
28
  });
28
- const workspace = allWorkspaces.find(w => w.name === name);
29
+ const workspace = allWorkspaces.find((w) => w.name === name);
29
30
  if (!workspace) {
30
31
  throw new Error('Project was not found.');
31
32
  }
@@ -35,7 +36,7 @@ async function exportProject(name) {
35
36
  principals: [],
36
37
  commonConfig: {},
37
38
  assortments: [],
38
- subFolders: []
39
+ subFolders: [],
39
40
  };
40
41
  projectConfiguration.principals = await getFolderPrincipals(workspace);
41
42
  const allAssortments = [];
@@ -49,7 +50,7 @@ async function getAssortmentsAndSubFolders(parentId, assortments, subFolders, al
49
50
  entityName: 'assortment',
50
51
  criteria: {
51
52
  workspaceId: parentId,
52
- }
53
+ },
53
54
  });
54
55
  const integrationAssortments = workspaceAssortments; //?.filter(a => a.assortmentType === 'INTEGRATION');
55
56
  if ((integrationAssortments === null || integrationAssortments === void 0 ? void 0 : integrationAssortments.length) > 0) {
@@ -71,16 +72,16 @@ async function getAssortmentsAndSubFolders(parentId, assortments, subFolders, al
71
72
  assortments.push(converted);
72
73
  }
73
74
  }
74
- console.log('workspaceFolderLinks call');
75
+ logger_1.default.info('workspaceFolderLinks call');
75
76
  const workspaceFolderLinks = await new sdk_1.Entities().get({
76
77
  entityName: 'workspace-entity',
77
78
  criteria: {
78
79
  workspaceId: parentId,
79
- entityType: 'workspace'
80
+ entityType: 'workspace',
80
81
  },
81
- relations: ['entity']
82
+ relations: ['entity'],
82
83
  });
83
- const workspaceFolders = workspaceFolderLinks === null || workspaceFolderLinks === void 0 ? void 0 : workspaceFolderLinks.map(wfl => wfl.entity);
84
+ const workspaceFolders = workspaceFolderLinks === null || workspaceFolderLinks === void 0 ? void 0 : workspaceFolderLinks.map((wfl) => wfl.entity);
84
85
  if ((workspaceFolders === null || workspaceFolders === void 0 ? void 0 : workspaceFolders.length) > 0) {
85
86
  for (const folder of workspaceFolders) {
86
87
  const converted = {
@@ -96,7 +97,7 @@ async function getAssortmentsAndSubFolders(parentId, assortments, subFolders, al
96
97
  }
97
98
  }
98
99
  }
99
- async function convertRelationshipsInFolders(folder, allAssortments) {
100
+ function convertRelationshipsInFolders(folder, allAssortments) {
100
101
  if (!(allAssortments.length > 0)) {
101
102
  return;
102
103
  }
@@ -111,11 +112,11 @@ function convertRelationshipsToIdentifiers(assortments, allAssortments) {
111
112
  }
112
113
  for (const assortment of assortments) {
113
114
  if (assortment.sourceAssortmentIds) {
114
- assortment.sourceAssortmentIdentifier = assortment.sourceAssortmentIds.map(id => { var _a; return (_a = allAssortments.find(a => a.id === id)) === null || _a === void 0 ? void 0 : _a.identifier; });
115
+ assortment.sourceAssortmentIdentifier = assortment.sourceAssortmentIds.map((id) => { var _a; return (_a = allAssortments.find((a) => a.id === id)) === null || _a === void 0 ? void 0 : _a.identifier; });
115
116
  }
116
117
  delete assortment.sourceAssortmentIds;
117
118
  if (assortment.composedFromAssortmentIds) {
118
- assortment.composedFromAssortmentIdentifiers = assortment.composedFromAssortmentIds.map(id => { var _a; return (_a = allAssortments.find(a => a.id === id)) === null || _a === void 0 ? void 0 : _a.identifier; });
119
+ assortment.composedFromAssortmentIdentifiers = assortment.composedFromAssortmentIds.map((id) => { var _a; return (_a = allAssortments.find((a) => a.id === id)) === null || _a === void 0 ? void 0 : _a.identifier; });
119
120
  }
120
121
  delete assortment.composedFromAssortmentIds;
121
122
  }
@@ -128,14 +129,14 @@ async function getFolderPrincipals(folder) {
128
129
  const workspacePrincipals = await new sdk_1.Entities().get({
129
130
  entityName: 'workspace-principal',
130
131
  criteria: { workspaceId: folder.id },
131
- relations: ['principal']
132
+ relations: ['principal'],
132
133
  });
133
134
  for (const workspacePrincipal of workspacePrincipals) {
134
135
  if (workspacePrincipal.principal.email) {
135
- principals.push(workspacePrincipal.principal.email + '|' + workspacePrincipal.role);
136
+ principals.push(`${workspacePrincipal.principal.email}|${workspacePrincipal.role}`);
136
137
  }
137
138
  else {
138
- principals.push(workspacePrincipal.principal.name + '|' + workspacePrincipal.role);
139
+ principals.push(`${workspacePrincipal.principal.name}|${workspacePrincipal.role}`);
139
140
  }
140
141
  }
141
142
  return principals;
@@ -162,5 +163,5 @@ function deleteNonUserKeys(assortment) {
162
163
  function saveData(data, name) {
163
164
  const yamlStr = js_yaml_1.default.dump(data);
164
165
  const CURRENT_DIR = process.cwd();
165
- fs_1.default.writeFileSync(path.join(CURRENT_DIR, name + '-export.yml'), yamlStr, 'utf8');
166
+ fs_1.default.writeFileSync(path.join(CURRENT_DIR, `${name}-export.yml`), yamlStr, 'utf8');
166
167
  }
@@ -5,52 +5,55 @@ const tslib_1 = require("tslib");
5
5
  const csvtojson_1 = tslib_1.__importDefault(require("csvtojson"));
6
6
  const client = tslib_1.__importStar(require("https"));
7
7
  const sdk_1 = require("@contrail/sdk");
8
+ const logger_1 = tslib_1.__importDefault(require("../../logger"));
8
9
  async function getCSVFromFile(loadFileId) {
9
10
  let file;
10
11
  try {
11
12
  file = await new sdk_1.Entities().get({ entityName: 'file', id: loadFileId });
12
- console.log('Got file: ', file);
13
+ logger_1.default.info('Got file: ', file);
13
14
  }
14
15
  catch (e) {
15
- console.log(`Failed to get file: ${loadFileId}`, JSON.stringify(e));
16
- throw new Error(`Failed to get file: ${loadFileId} - ` + JSON.stringify(e));
16
+ logger_1.default.info(`Failed to get file: ${loadFileId}`, JSON.stringify(e));
17
+ throw new Error(`Failed to get file: ${loadFileId} - ${JSON.stringify(e)}`);
17
18
  }
18
19
  if (!file || !file.downloadUrl) {
19
- console.log(`File: ${loadFileId} does not have a downloadUrl`);
20
+ logger_1.default.info(`File: ${loadFileId} does not have a downloadUrl`);
20
21
  throw new Error(`File: ${loadFileId} does not have a downloadUrl`);
21
22
  }
22
23
  // get csv
23
24
  let response;
24
25
  try {
25
26
  response = await new Promise((resolve, reject) => {
26
- client.get(file.downloadUrl, function (res) {
27
- console.log('Status code:', res.statusCode);
28
- console.log('Status text:', res.statusMessage);
27
+ client
28
+ .get(file.downloadUrl, function (res) {
29
+ logger_1.default.info('Status code:', res.statusCode);
30
+ logger_1.default.info('Status text:', res.statusMessage);
29
31
  let body = '';
30
32
  res.on('data', (data) => {
31
33
  body += data.toString();
32
34
  });
33
35
  res.on('end', () => {
34
- console.log('Response body:');
35
- //console.log(body);
36
+ logger_1.default.info('Response body:');
37
+ //logger.info(body);
36
38
  resolve(body);
37
39
  });
38
- }).on('error', function (e) {
39
- console.error(e);
40
+ })
41
+ .on('error', function (e) {
42
+ logger_1.default.error(e);
40
43
  reject(e);
41
44
  });
42
45
  });
43
46
  }
44
47
  catch (e) {
45
- console.log(`Failed to get data from downloadUrl: ${file.downloadUrl}`, e);
48
+ logger_1.default.info(`Failed to get data from downloadUrl: ${file.downloadUrl}`, e);
46
49
  throw e;
47
50
  }
48
51
  if (!response) {
49
- console.log('Response is empty');
52
+ logger_1.default.info('Response is empty');
50
53
  throw new Error('Response is empty');
51
54
  }
52
55
  const csvJson = await (0, csvtojson_1.default)({ flatKeys: true }).fromString(response);
53
- // console.log('csvJson', csvJson);
56
+ // logger.info('csvJson', csvJson);
54
57
  return csvJson;
55
58
  }
56
59
  exports.getCSVFromFile = getCSVFromFile;
@@ -1 +1 @@
1
- export declare function getTypes(withTypeProperties?: boolean): Promise<any>;
1
+ export declare function getTypes(withTypeProperties?: boolean): Promise<any[]>;
@@ -5,14 +5,15 @@ const tslib_1 = require("tslib");
5
5
  const sdk_1 = require("@contrail/sdk");
6
6
  const chalk_1 = tslib_1.__importDefault(require("chalk"));
7
7
  const p_limit_1 = tslib_1.__importDefault(require("p-limit"));
8
+ const logger_1 = tslib_1.__importDefault(require("../../logger"));
8
9
  const limit = (0, p_limit_1.default)(30);
9
10
  async function getTypes(withTypeProperties = true) {
10
- console.log('%s Retrieving', chalk_1.default.yellow.bold('TYPES'));
11
+ logger_1.default.info('%s Retrieving', chalk_1.default.yellow.bold('TYPES'));
11
12
  const entitiesClient = new sdk_1.Entities();
12
13
  const types = await entitiesClient.get({
13
14
  entityName: 'type',
14
15
  });
15
- console.log(`${chalk_1.default.yellow.bold('TYPES')} Found ${types.length} types`);
16
+ logger_1.default.info(`${chalk_1.default.yellow.bold('TYPES')} Found ${types.length} types`);
16
17
  if (!withTypeProperties) {
17
18
  return types;
18
19
  }
@@ -8,7 +8,8 @@ const fs_1 = tslib_1.__importDefault(require("fs"));
8
8
  const csvToJson = tslib_1.__importStar(require("csvtojson"));
9
9
  const login_1 = require("../../auth/login");
10
10
  const csv_parser_1 = require("../../helpers/types/csv-parser");
11
- const yaml = require('js-yaml');
11
+ const logger_1 = tslib_1.__importDefault(require("../../logger"));
12
+ const js_yaml_1 = tslib_1.__importDefault(require("js-yaml"));
12
13
  async function loadDataFromLocalCSV(fileName) {
13
14
  const CURRENT_DIR = process.cwd();
14
15
  try {
@@ -24,17 +25,17 @@ async function parseTypesFromLocalFiles(fileLocations) {
24
25
  const csvJSONData = [];
25
26
  for (const fileLocation of fileLocations) {
26
27
  try {
27
- console.log('Getting data for fileLocation: ', fileLocation);
28
+ logger_1.default.info('Getting data for fileLocation: ', fileLocation);
28
29
  const csvData = await loadDataFromLocalCSV(fileLocation);
29
- console.log(`CSV import was successful. ${csvData === null || csvData === void 0 ? void 0 : csvData.length} rows found. Adding to total rows.`);
30
+ logger_1.default.info(`CSV import was successful. ${csvData === null || csvData === void 0 ? void 0 : csvData.length} rows found. Adding to total rows.`);
30
31
  csvJSONData.push(...csvData);
31
32
  }
32
33
  catch (e) {
33
- console.log('Error importing csv data.', e);
34
+ logger_1.default.info('Error importing csv data.', e);
34
35
  throw e;
35
36
  }
36
37
  }
37
- console.log(`CSV imports were successful. ${csvJSONData === null || csvJSONData === void 0 ? void 0 : csvJSONData.length} total rows found.`);
38
+ logger_1.default.info(`CSV imports were successful. ${csvJSONData === null || csvJSONData === void 0 ? void 0 : csvJSONData.length} total rows found.`);
38
39
  const suggestions = (0, types_1.GetSuggestedTypes)(csvJSONData);
39
40
  saveData(suggestions.OptionSets, 'parsed_optionSets.yml');
40
41
  saveData({ typeProperties: suggestions.TypeProperties }, 'parsed_typeProperties.yml');
@@ -44,15 +45,15 @@ async function parseTypesFromTemplateFromLocalFiles(templateFileLocation, dataFi
44
45
  let templateCSVData = [];
45
46
  let dataCSVData = [];
46
47
  try {
47
- console.log('Getting template from fileLocation: ', templateFileLocation);
48
+ logger_1.default.info('Getting template from fileLocation: ', templateFileLocation);
48
49
  templateCSVData = await loadDataFromLocalCSV(templateFileLocation);
49
- console.log(`CSV import was successful. ${templateCSVData === null || templateCSVData === void 0 ? void 0 : templateCSVData.length} rows found.`);
50
- console.log('Getting data from fileLocation: ', dataFileLocation);
50
+ logger_1.default.info(`CSV import was successful. ${templateCSVData === null || templateCSVData === void 0 ? void 0 : templateCSVData.length} rows found.`);
51
+ logger_1.default.info('Getting data from fileLocation: ', dataFileLocation);
51
52
  dataCSVData = await loadDataFromLocalCSV(dataFileLocation);
52
- console.log(`CSV import was successful. ${dataCSVData === null || dataCSVData === void 0 ? void 0 : dataCSVData.length} rows found.`);
53
+ logger_1.default.info(`CSV import was successful. ${dataCSVData === null || dataCSVData === void 0 ? void 0 : dataCSVData.length} rows found.`);
53
54
  }
54
55
  catch (e) {
55
- console.log('Error importing csv data.', e);
56
+ logger_1.default.info('Error importing csv data.', e);
56
57
  throw e;
57
58
  }
58
59
  const types = (0, types_1.GetTypesFromTemplate)(templateCSVData, dataCSVData);
@@ -63,24 +64,24 @@ exports.parseTypesFromTemplateFromLocalFiles = parseTypesFromTemplateFromLocalFi
63
64
  async function parseTypesFromTemplateAndDataFromLocalFiles(templateFileLocation, dataFileLocations) {
64
65
  let templateCSVData = [];
65
66
  try {
66
- console.log('Getting template from fileLocation: ', templateFileLocation);
67
+ logger_1.default.info('Getting template from fileLocation: ', templateFileLocation);
67
68
  templateCSVData = await loadDataFromLocalCSV(templateFileLocation);
68
- console.log(`CSV import was successful. ${templateCSVData === null || templateCSVData === void 0 ? void 0 : templateCSVData.length} rows found.`);
69
+ logger_1.default.info(`CSV import was successful. ${templateCSVData === null || templateCSVData === void 0 ? void 0 : templateCSVData.length} rows found.`);
69
70
  }
70
71
  catch (e) {
71
- console.log('Error importing csv data.', e);
72
+ logger_1.default.info('Error importing csv data.', e);
72
73
  throw e;
73
74
  }
74
75
  const dataCSVData = [];
75
76
  for (const dataFileLocation of dataFileLocations) {
76
77
  try {
77
- console.log('Getting data for dataFileLocation: ', dataFileLocation);
78
+ logger_1.default.info('Getting data for dataFileLocation: ', dataFileLocation);
78
79
  const csvData = await loadDataFromLocalCSV(dataFileLocation);
79
- console.log(`CSV import was successful. ${csvData === null || csvData === void 0 ? void 0 : csvData.length} rows found. Adding to total rows.`);
80
+ logger_1.default.info(`CSV import was successful. ${csvData === null || csvData === void 0 ? void 0 : csvData.length} rows found. Adding to total rows.`);
80
81
  dataCSVData.push(...csvData);
81
82
  }
82
83
  catch (e) {
83
- console.log('Error importing csv data.', e);
84
+ logger_1.default.info('Error importing csv data.', e);
84
85
  throw e;
85
86
  }
86
87
  }
@@ -95,24 +96,24 @@ async function parseTypesFromFiles(fileIds) {
95
96
  const csvJSONData = [];
96
97
  for (const loadFileId of fileIds) {
97
98
  try {
98
- console.log('Getting data for fileId: ', loadFileId);
99
+ logger_1.default.info('Getting data for fileId: ', loadFileId);
99
100
  const csvJSON = await (0, csv_parser_1.getCSVFromFile)(loadFileId);
100
- console.log(`CSV download was successful. ${csvJSON === null || csvJSON === void 0 ? void 0 : csvJSON.length} rows found. Adding to total rows`);
101
+ logger_1.default.info(`CSV download was successful. ${csvJSON === null || csvJSON === void 0 ? void 0 : csvJSON.length} rows found. Adding to total rows`);
101
102
  csvJSONData.push(...csvJSON);
102
103
  }
103
104
  catch (e) {
104
- console.log('Error retrieving csv data', e);
105
+ logger_1.default.info('Error retrieving csv data', e);
105
106
  throw e;
106
107
  }
107
108
  }
108
- console.log(`CSV downloads were successful. ${csvJSONData === null || csvJSONData === void 0 ? void 0 : csvJSONData.length} total rows found.`);
109
+ logger_1.default.info(`CSV downloads were successful. ${csvJSONData === null || csvJSONData === void 0 ? void 0 : csvJSONData.length} total rows found.`);
109
110
  const suggestions = (0, types_1.GetSuggestedTypes)(csvJSONData);
110
111
  saveData(suggestions.OptionSets, 'parsed_optionSets.yml');
111
112
  saveData({ typeProperties: suggestions.TypeProperties }, 'parsed_typeProperties.yml');
112
113
  }
113
114
  exports.parseTypesFromFiles = parseTypesFromFiles;
114
115
  function saveData(data, name) {
115
- const yamlStr = yaml.dump(data);
116
+ const yamlStr = js_yaml_1.default.dump(data);
116
117
  const CURRENT_DIR = process.cwd();
117
118
  fs_1.default.writeFileSync(path.resolve(path.join(CURRENT_DIR, name, yamlStr)), 'utf8');
118
119
  }
@@ -9,19 +9,20 @@ const path = tslib_1.__importStar(require("path"));
9
9
  const _ = tslib_1.__importStar(require("lodash"));
10
10
  const js_yaml_1 = tslib_1.__importDefault(require("js-yaml"));
11
11
  const login_1 = require("../../auth/login");
12
+ const logger_1 = tslib_1.__importDefault(require("../../logger"));
12
13
  async function uploadTypes(dir) {
13
14
  try {
14
15
  const userConfig = await (0, login_1.authUser)();
15
- console.log(`%s Getting all types for orgId: ${userConfig.orgId}`, chalk_1.default.blue.bold('START'));
16
- console.log('%s Uploading', chalk_1.default.yellow.bold('TYPES'));
16
+ logger_1.default.info(`%s Getting all types for orgId: ${userConfig.orgId}`, chalk_1.default.blue.bold('START'));
17
+ logger_1.default.info('%s Uploading', chalk_1.default.yellow.bold('TYPES'));
17
18
  await uploadReducedTypes(dir);
18
- console.log('%s Uploaded', chalk_1.default.yellow.bold('TYPES'));
19
+ logger_1.default.info('%s Uploaded', chalk_1.default.yellow.bold('TYPES'));
19
20
  }
20
21
  catch (e) {
21
- console.log(`%s Types Upload Failed. ${e}`, chalk_1.default.red.bold('FAIL'));
22
+ logger_1.default.info(`%s Types Upload Failed. ${e}`, chalk_1.default.red.bold('FAIL'));
22
23
  return;
23
24
  }
24
- console.log('%s Types Upload Complete.', chalk_1.default.green.bold('COMPLETE'));
25
+ logger_1.default.info('%s Types Upload Complete.', chalk_1.default.green.bold('COMPLETE'));
25
26
  }
26
27
  exports.uploadTypes = uploadTypes;
27
28
  function loadReducedTypes(fromDir) {
@@ -65,10 +66,10 @@ async function uploadReducedTypes(dir) {
65
66
  const found = currentTypesBySlug[type.slug];
66
67
  if (!found) {
67
68
  if (!type.typePath.includes(':')) {
68
- console.log('Cannot create a base type. Skipping: ', type.slug);
69
+ logger_1.default.info('Cannot create a base type. Skipping: ', type.slug);
69
70
  continue;
70
71
  }
71
- console.log('Creating Type: ', type.slug);
72
+ logger_1.default.info('Creating Type: ', type.slug);
72
73
  const createdType = await new sdk_1.Entities().create({
73
74
  entityName: 'type',
74
75
  object: {
@@ -78,11 +79,12 @@ async function uploadReducedTypes(dir) {
78
79
  isArchived: type.isArchived,
79
80
  },
80
81
  });
81
- const newTypeProperties = (await new sdk_1.Types().getType({ id: createdType.id })).typeProperties;
82
+ const newTypeProperties = (await new sdk_1.Types().getType({ id: createdType.id }))
83
+ .typeProperties;
82
84
  await uploadReducedTypeProperties(createdType, newTypeProperties, type.typeProperties);
83
85
  }
84
86
  else {
85
- console.log('Updating Type: ', type.slug);
87
+ logger_1.default.info('Updating Type: ', type.slug);
86
88
  const updatedType = await new sdk_1.Entities().update({
87
89
  entityName: 'type',
88
90
  id: found.id,
@@ -97,7 +99,7 @@ async function uploadReducedTypes(dir) {
97
99
  }
98
100
  }
99
101
  catch (err) {
100
- console.log('Error Uploading Types: ', err);
102
+ logger_1.default.info('Error Uploading Types: ', err);
101
103
  }
102
104
  }
103
105
  }
@@ -121,7 +123,7 @@ async function uploadReducedTypeProperties(type, currentPropertyTypes, newProper
121
123
  try {
122
124
  const found = currentPropertyTypeBySlug[newPropertyType.slug];
123
125
  if (!found && !newPropertyType.inherited) {
124
- console.log('Creating Type-Property: ', newPropertyType.slug);
126
+ logger_1.default.info('Creating Type-Property: ', newPropertyType.slug);
125
127
  await sdk_1.Request.request(`/types/${type.id}/type-properties`, {
126
128
  method: 'POST',
127
129
  body: JSON.stringify({
@@ -149,8 +151,10 @@ async function uploadReducedTypeProperties(type, currentPropertyTypes, newProper
149
151
  },
150
152
  });
151
153
  }
152
- else if (found && !newPropertyType.inherited && !typePropertiesEqual(found, newPropertyType, optionSetIdByName)) {
153
- console.log('Updating Type-Property: ', newPropertyType.slug);
154
+ else if (found &&
155
+ !newPropertyType.inherited &&
156
+ !typePropertiesEqual(found, newPropertyType, optionSetIdByName)) {
157
+ logger_1.default.info('Updating Type-Property: ', newPropertyType.slug);
154
158
  await new sdk_1.Entities().update({
155
159
  entityName: 'type-property',
156
160
  id: found.id,
@@ -176,14 +180,14 @@ async function uploadReducedTypeProperties(type, currentPropertyTypes, newProper
176
180
  }
177
181
  }
178
182
  catch (err) {
179
- console.log('Error Creating Properties: ', err);
183
+ logger_1.default.info('Error Creating Properties: ', err);
180
184
  }
181
185
  }
182
186
  for (const currentPropertyType of currentPropertyTypes) {
183
187
  try {
184
188
  const found = newPropertyTypesBySlug[currentPropertyType.slug];
185
189
  if (!found && !currentPropertyType.inherited) {
186
- console.log('Deleting Type-Property: ', currentPropertyType.slug);
190
+ logger_1.default.info('Deleting Type-Property: ', currentPropertyType.slug);
187
191
  await sdk_1.Request.request(`/types/${type.id}/type-properties/${currentPropertyType.id}`, {
188
192
  method: 'DELETE',
189
193
  headers: {
@@ -4,7 +4,7 @@ export declare class WorkflowTemplateDefinitionDeployer {
4
4
  installWorkflowTemplateDefinitions(workflowTemplateDefinitions: WorkflowTemplate[]): Promise<void>;
5
5
  listWorkflowTemplateDefinitions(): Promise<void>;
6
6
  deployWorkflowTemplateDefinitions(appDeclaration: AppDeclaration, app: App): Promise<void>;
7
- deployWorkflow(workflowKey: string, workflow: WorkflowDefinition, app: App, existingWorkflows: Array<any>): Promise<any>;
7
+ deployWorkflow(workflowKey: string, workflow: WorkflowDefinition, app: App, existingWorkflows: Array<any>): Promise<WorkflowDefinition>;
8
8
  private createNewWorkflowDefinition;
9
9
  private populateActionIds;
10
10
  private updateWorkflowTemplateDefinition;
@@ -9,40 +9,53 @@ const event_workflow_templates_1 = require("../../api/event-workflow-templates")
9
9
  const event_workflow_template_definition_1 = require("../../api/event-workflow-template-definition");
10
10
  const actions_deployer_1 = require("../app/actions-deployer");
11
11
  const interface_converters_1 = require("../../interface-converters");
12
+ const logger_1 = tslib_1.__importDefault(require("../../logger"));
12
13
  class WorkflowTemplateDefinitionDeployer {
13
14
  async cliInstallWorkflowTemplateDefinitions() {
14
15
  const installedAppOrgs = await (0, apps_1.getInstalledApps)();
15
16
  if (!installedAppOrgs.length) {
16
- console.log('%s \nNo apps are currently installed. You must install an app before installing its associated workflow template definitions.', chalk_1.default.red.bold('WORKFLOW DEFINITION'));
17
+ logger_1.default.info('%s \nNo apps are currently installed. You must install an app before installing its associated workflow template definitions.', chalk_1.default.red.bold('WORKFLOW DEFINITION'));
17
18
  return;
18
19
  }
19
- const answers = await inquirer_1.default.prompt([{
20
+ const answers = await inquirer_1.default.prompt([
21
+ {
20
22
  type: 'list',
21
23
  name: 'appIdentifier',
22
- message: 'Which app\'s workflow would you like to install?',
23
- choices: installedAppOrgs.map(x => x.app.identifier)
24
- }]);
25
- const appOrg = installedAppOrgs.find(x => x.app.identifier === answers.appIdentifier);
26
- const workflowTemplateDefinitions = await (0, apps_1.getWorkflowTemplateDefinitionsForAppVersion)({ appVersionId: appOrg.appVersionId });
24
+ message: 'Which app workflow would you like to install?',
25
+ choices: installedAppOrgs.map((x) => x.app.identifier),
26
+ },
27
+ ]);
28
+ const appOrg = installedAppOrgs.find((x) => x.app.identifier === answers.appIdentifier);
29
+ const workflowTemplateDefinitions = await (0, apps_1.getWorkflowTemplateDefinitionsForAppVersion)({
30
+ appVersionId: appOrg.appVersionId,
31
+ });
27
32
  for (const definition of workflowTemplateDefinitions) {
28
- console.log(chalk_1.default.yellow.bold(`- ${definition.name}`));
33
+ logger_1.default.info(chalk_1.default.yellow.bold(`- ${definition.name}`));
29
34
  }
30
35
  await this.installWorkflowTemplateDefinitions(workflowTemplateDefinitions);
31
36
  }
32
37
  async installWorkflowTemplateDefinitions(workflowTemplateDefinitions) {
33
- let answers = await inquirer_1.default.prompt([{
38
+ let answers = await inquirer_1.default.prompt([
39
+ {
34
40
  type: 'checkbox',
35
41
  name: 'workflowTemplateDefinitionsToInstall',
36
42
  message: 'Which workflow templates would you like to install?',
37
- choices: workflowTemplateDefinitions.filter(x => !x.builtIn).map(x => { return { value: x.identifier, name: x.name }; }),
38
- }]);
39
- const workflowTemplateDefinitionsToInstall = workflowTemplateDefinitions.filter(x => answers.workflowTemplateDefinitionsToInstall.includes(x.identifier));
40
- answers = await inquirer_1.default.prompt([{
43
+ choices: workflowTemplateDefinitions
44
+ .filter((x) => !x.builtIn)
45
+ .map((x) => {
46
+ return { value: x.identifier, name: x.name };
47
+ }),
48
+ },
49
+ ]);
50
+ const workflowTemplateDefinitionsToInstall = workflowTemplateDefinitions.filter((x) => answers.workflowTemplateDefinitionsToInstall.includes(x.identifier));
51
+ answers = await inquirer_1.default.prompt([
52
+ {
41
53
  type: 'confirm',
42
54
  name: 'makeActive',
43
55
  message: 'Should the workflows be active ?(yes)',
44
56
  default: true,
45
- }]);
57
+ },
58
+ ]);
46
59
  const makeActive = answers.makeActive;
47
60
  for (const definition of workflowTemplateDefinitionsToInstall) {
48
61
  const newObject = {
@@ -55,28 +68,30 @@ class WorkflowTemplateDefinitionDeployer {
55
68
  };
56
69
  await (0, event_workflow_templates_1.createWorkflowTemplate)(newObject);
57
70
  }
58
- console.log(`%s \n ${workflowTemplateDefinitionsToInstall.length} workflows installed`, chalk_1.default.green.bold('WORKFLOW DEFINITION'));
71
+ logger_1.default.info(`%s \n ${workflowTemplateDefinitionsToInstall.length} workflows installed`, chalk_1.default.green.bold('WORKFLOW DEFINITION'));
59
72
  }
60
73
  async listWorkflowTemplateDefinitions() {
61
74
  const installedAppOrgs = await (0, apps_1.getInstalledApps)();
62
75
  const workflowTemplateDefinitions = [];
63
76
  for (const appOrg of installedAppOrgs) {
64
- workflowTemplateDefinitions.push(...await (await (0, apps_1.getWorkflowTemplateDefinitionsForAppVersion)({ appVersionId: appOrg.appVersionId })).map(x => {
77
+ workflowTemplateDefinitions.push(...(await (await (0, apps_1.getWorkflowTemplateDefinitionsForAppVersion)({ appVersionId: appOrg.appVersionId })).map((x) => {
65
78
  return {
66
79
  appName: appOrg.app.name,
67
80
  workflowName: x.name,
68
81
  };
69
- }));
82
+ })));
70
83
  }
71
- console.log('(app name) workflow name');
72
- console.log('------------------------');
73
- console.log(chalk_1.default.green.bold(workflowTemplateDefinitions.map(x => `(${x.appName}) ${x.workflowName} `).join('\n')));
84
+ logger_1.default.info('(app name) workflow name');
85
+ logger_1.default.info('------------------------');
86
+ logger_1.default.info(chalk_1.default.green.bold(workflowTemplateDefinitions.map((x) => `(${x.appName}) ${x.workflowName} `).join('\n')));
74
87
  }
75
88
  async deployWorkflowTemplateDefinitions(appDeclaration, app) {
76
89
  // FETCH ALL WORKFLOWS FROM THE API.
77
- const existingWorkflows = await (0, apps_1.getWorkflowTemplateDefinitionsForAppVersion)({ appVersionId: app.latestAppVersionId });
90
+ const existingWorkflows = await (0, apps_1.getWorkflowTemplateDefinitionsForAppVersion)({
91
+ appVersionId: app.latestAppVersionId,
92
+ });
78
93
  // UPSERT / DELETE BASED ON WORKFLOW IDENTIFIER
79
- console.log('%s \tDeploying workflow definitions.', chalk_1.default.yellow.bold('WORKFLOW DEFINITION'));
94
+ logger_1.default.info('%s \tDeploying workflow definitions.', chalk_1.default.yellow.bold('WORKFLOW DEFINITION'));
80
95
  if (appDeclaration.workflows) {
81
96
  const localWorkflows = Object.keys(appDeclaration.workflows);
82
97
  if ((localWorkflows === null || localWorkflows === void 0 ? void 0 : localWorkflows.length) > 0) {
@@ -87,9 +102,9 @@ class WorkflowTemplateDefinitionDeployer {
87
102
  }
88
103
  }
89
104
  async deployWorkflow(workflowKey, workflow, app, existingWorkflows) {
90
- console.log(`%s \tDeploying workflow definitions: ${workflowKey}`, chalk_1.default.yellow.bold('WORKFLOW DEFINITION'));
105
+ logger_1.default.info(`%s \tDeploying workflow definitions: ${workflowKey}`, chalk_1.default.yellow.bold('WORKFLOW DEFINITION'));
91
106
  const identifier = this.getWorkflowDeclarationIdentifier(workflowKey, app);
92
- const existingDefinition = existingWorkflows.find(ad => ad.identifier === identifier);
107
+ const existingDefinition = existingWorkflows.find((ad) => ad.identifier === identifier);
93
108
  (0, interface_converters_1.convertWorkflow)(workflow);
94
109
  if (existingDefinition) {
95
110
  return await this.updateWorkflowTemplateDefinition(existingDefinition, workflow, app);
@@ -111,7 +126,7 @@ class WorkflowTemplateDefinitionDeployer {
111
126
  parallelWorkerCount: workflowDeclaration.parallelWorkerCount,
112
127
  };
113
128
  const workflowTemplate = await (0, event_workflow_template_definition_1.createWorkflowTemplateDefinition)(newObject);
114
- console.log(`%s Created new workflow definition definitions: ${workflowKey}`, chalk_1.default.yellow.bold('WORKFLOW DEFINITION'));
129
+ logger_1.default.info(`%s Created new workflow definition definitions: ${workflowKey}`, chalk_1.default.yellow.bold('WORKFLOW DEFINITION'));
115
130
  return workflowTemplate;
116
131
  }
117
132
  async populateActionIds(workflowDefinition, app) {
@@ -126,7 +141,7 @@ class WorkflowTemplateDefinitionDeployer {
126
141
  }
127
142
  for (const actionConfiguration of path.actionDefinitionConfigs) {
128
143
  const actionKey = actionConfiguration.action;
129
- const action = availableAppActions.find(action => action.identifier === (0, actions_deployer_1.getActionDeclarationIdentifier)(actionKey, app));
144
+ const action = availableAppActions.find((action) => action.identifier === (0, actions_deployer_1.getActionDeclarationIdentifier)(actionKey, app));
130
145
  if (!action) {
131
146
  throw new Error(`Could not find action ${actionKey} declared in workflow definition ${workflowDefinition.name}`);
132
147
  }
@@ -145,8 +160,11 @@ class WorkflowTemplateDefinitionDeployer {
145
160
  messageGroupId: workflowDefinition.messageGroupId,
146
161
  parallelWorkerCount: workflowDefinition.parallelWorkerCount,
147
162
  });
148
- const updatedWorkflowDefinition = await (0, event_workflow_template_definition_1.updateWorkflowTemplateDefinition)({ id: existingWorkflowDefinition.id, updates });
149
- console.log(`%s Updated existing workflow definition: ${updatedWorkflowDefinition.identifier}`, chalk_1.default.yellow.bold('WORKFLOW DEFINITION'));
163
+ const updatedWorkflowDefinition = await (0, event_workflow_template_definition_1.updateWorkflowTemplateDefinition)({
164
+ id: existingWorkflowDefinition.id,
165
+ updates,
166
+ });
167
+ logger_1.default.info(`%s Updated existing workflow definition: ${updatedWorkflowDefinition.identifier}`, chalk_1.default.yellow.bold('WORKFLOW DEFINITION'));
150
168
  return updatedWorkflowDefinition;
151
169
  }
152
170
  getWorkflowDeclarationIdentifier(actionKey, app) {
@@ -1,14 +1,14 @@
1
- import { WorkflowTemplate, WorkflowTemplateDeclaration } from '../../interfaces';
1
+ import { EventWorkflowActionDefinition, WorkflowTemplate, WorkflowTemplateDeclaration } from '../../interfaces';
2
2
  export declare class LocalWorkflowTemplateDeployer {
3
3
  deployWorkflows(wtDeclaration: WorkflowTemplateDeclaration): Promise<void>;
4
- deployWorkflowTemplate(workflow: WorkflowTemplate, existingWorkflows: WorkflowTemplate[]): Promise<any>;
4
+ deployWorkflowTemplate(workflow: WorkflowTemplate, existingWorkflows: WorkflowTemplate[]): Promise<WorkflowTemplate>;
5
5
  private createNewWorkflowTemplate;
6
6
  private populateActionIds;
7
7
  private updateWorkflowTemplate;
8
8
  deleteWorkflowTemplates(wtDeclaration: WorkflowTemplateDeclaration): Promise<void>;
9
9
  }
10
10
  export declare function getWorkflowTemplateIdentifier(workflowKey: string): string;
11
- export declare function getActionByIdentifier(identifier: string): Promise<any>;
11
+ export declare function getActionByIdentifier(identifier: string): Promise<EventWorkflowActionDefinition>;
12
12
  export declare class WorkflowTemplateDeployer {
13
13
  deleteWorkflowTemplates(): Promise<void>;
14
14
  listExistingWorkflowTemplates(): Promise<void>;