@contrail/cli 1.0.70 → 2.0.0

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 (270) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +1034 -5
  3. package/bin/dev +17 -0
  4. package/bin/dev.cmd +3 -0
  5. package/bin/run +5 -0
  6. package/bin/run.cmd +3 -0
  7. package/{lib → dist}/api/apps.d.ts +13 -13
  8. package/dist/api/apps.js +96 -0
  9. package/{lib → dist}/api/event-workflow-action-definition.d.ts +1 -1
  10. package/dist/api/event-workflow-action-definition.js +11 -0
  11. package/{lib → dist}/api/event-workflow-template-definition.d.ts +6 -6
  12. package/dist/api/event-workflow-template-definition.js +26 -0
  13. package/{lib → dist}/api/event-workflow-templates.d.ts +7 -7
  14. package/dist/api/event-workflow-templates.js +32 -0
  15. package/dist/api/types.d.ts +7 -0
  16. package/dist/api/types.js +52 -0
  17. package/{lib → dist}/auth/auth.d.ts +9 -9
  18. package/dist/auth/auth.js +6 -0
  19. package/{lib → dist}/auth/login.d.ts +2 -2
  20. package/{lib → dist}/auth/login.js +146 -141
  21. package/dist/commands/app/create.d.ts +6 -0
  22. package/dist/commands/app/create.js +15 -0
  23. package/dist/commands/app/delete.d.ts +7 -0
  24. package/dist/commands/app/delete.js +38 -0
  25. package/dist/commands/app/install.d.ts +11 -0
  26. package/dist/commands/app/install.js +117 -0
  27. package/dist/commands/app/publish.d.ts +7 -0
  28. package/dist/commands/app/publish.js +45 -0
  29. package/dist/commands/app/uninstall.d.ts +10 -0
  30. package/dist/commands/app/uninstall.js +58 -0
  31. package/dist/commands/app/upgrade.d.ts +11 -0
  32. package/dist/commands/app/upgrade.js +79 -0
  33. package/dist/commands/colors/deleteAll.d.ts +6 -0
  34. package/dist/commands/colors/deleteAll.js +30 -0
  35. package/dist/commands/colors/load.d.ts +6 -0
  36. package/dist/commands/colors/load.js +29 -0
  37. package/dist/commands/config/list.d.ts +6 -0
  38. package/dist/commands/config/list.js +15 -0
  39. package/dist/commands/config/remove.d.ts +14 -0
  40. package/dist/commands/config/remove.js +26 -0
  41. package/dist/commands/config/set.d.ts +13 -0
  42. package/dist/commands/config/set.js +29 -0
  43. package/dist/commands/loader-process/load.d.ts +9 -0
  44. package/dist/commands/loader-process/load.js +33 -0
  45. package/dist/commands/loader-process/upload-and-load.d.ts +10 -0
  46. package/dist/commands/loader-process/upload-and-load.js +35 -0
  47. package/dist/commands/projects/export.d.ts +10 -0
  48. package/dist/commands/projects/export.js +34 -0
  49. package/dist/commands/projects/list.d.ts +6 -0
  50. package/dist/commands/projects/list.js +34 -0
  51. package/dist/commands/projects/load.d.ts +9 -0
  52. package/{lib/projects/project-uploader.js → dist/commands/projects/load.js} +106 -105
  53. package/dist/commands/types/exportOptionSetHierarchies.d.ts +7 -0
  54. package/{lib/types/option-set-hierarchy-exporter.js → dist/commands/types/exportOptionSetHierarchies.js} +130 -113
  55. package/{lib/types/types-extractor.d.ts → dist/commands/types/getAll.d.ts} +29 -27
  56. package/{lib/types/types-extractor.js → dist/commands/types/getAll.js} +267 -318
  57. package/dist/commands/types/loadAll.d.ts +7 -0
  58. package/dist/commands/types/loadAll.js +41 -0
  59. package/dist/commands/types/mergeOptionSets.d.ts +9 -0
  60. package/{lib/types/option-set-merger.js → dist/commands/types/mergeOptionSets.js} +114 -105
  61. package/dist/commands/types/mergeTypeProperties.d.ts +11 -0
  62. package/dist/commands/types/mergeTypeProperties.js +89 -0
  63. package/dist/commands/types/parseOptionSetsHierarchyLocalFile.d.ts +10 -0
  64. package/dist/commands/types/parseOptionSetsHierarchyLocalFile.js +112 -0
  65. package/dist/commands/types/parseOptionSetsLocalFiles.d.ts +14 -0
  66. package/dist/commands/types/parseOptionSetsLocalFiles.js +153 -0
  67. package/dist/commands/types/parseOptionSetsToFolderStructure.d.ts +10 -0
  68. package/dist/commands/types/parseOptionSetsToFolderStructure.js +104 -0
  69. package/dist/commands/types/parseTypesFromFiles.d.ts +10 -0
  70. package/dist/commands/types/parseTypesFromFiles.js +34 -0
  71. package/dist/commands/types/parseTypesFromLocalFiles.d.ts +10 -0
  72. package/dist/commands/types/parseTypesFromLocalFiles.js +34 -0
  73. package/dist/commands/types/parseTypesFromTemplateAndDataFromLocalFiles.d.ts +11 -0
  74. package/dist/commands/types/parseTypesFromTemplateAndDataFromLocalFiles.js +36 -0
  75. package/dist/commands/types/parseTypesFromTemplateFromLocalFiles.d.ts +10 -0
  76. package/dist/commands/types/parseTypesFromTemplateFromLocalFiles.js +35 -0
  77. package/dist/commands/types/uploadOptionSetHierarchies.d.ts +7 -0
  78. package/{lib/types/option-set-hierarchy-uploader.js → dist/commands/types/uploadOptionSetHierarchies.js} +130 -113
  79. package/dist/commands/types/uploadOptionSets.d.ts +7 -0
  80. package/{lib/types/option-set-uploader.js → dist/commands/types/uploadOptionSets.js} +115 -98
  81. package/dist/commands/types/uploadOptionSetsHierarchyLocalFile.d.ts +11 -0
  82. package/{lib/types/option-set-hierarchy-parser.js → dist/commands/types/uploadOptionSetsHierarchyLocalFile.js} +128 -140
  83. package/dist/commands/types/uploadRuleSets.d.ts +7 -0
  84. package/{lib/types/rule-set-uploader.js → dist/commands/types/uploadRuleSets.js} +189 -172
  85. package/dist/commands/types/uploadTypePropertyPolicies.d.ts +7 -0
  86. package/{lib/types/type-property-policy-uploader.js → dist/commands/types/uploadTypePropertyPolicies.js} +195 -178
  87. package/dist/commands/types/uploadUsageInfo.d.ts +7 -0
  88. package/{lib/types/usage-info-uploader.js → dist/commands/types/uploadUsageInfo.js} +149 -132
  89. package/dist/commands/users/export.d.ts +9 -0
  90. package/dist/commands/users/export.js +60 -0
  91. package/dist/commands/users/upload.d.ts +9 -0
  92. package/dist/commands/users/upload.js +65 -0
  93. package/dist/commands/workflow-template-definitions/install.d.ts +6 -0
  94. package/dist/commands/workflow-template-definitions/install.js +17 -0
  95. package/dist/commands/workflow-template-definitions/list.d.ts +6 -0
  96. package/dist/commands/workflow-template-definitions/list.js +17 -0
  97. package/dist/commands/workflow-templates/delete.d.ts +6 -0
  98. package/dist/commands/workflow-templates/delete.js +17 -0
  99. package/dist/commands/workflow-templates/list.d.ts +6 -0
  100. package/dist/commands/workflow-templates/list.js +17 -0
  101. package/dist/commands/workflow-templates/load.d.ts +9 -0
  102. package/dist/commands/workflow-templates/load.js +21 -0
  103. package/{lib → dist}/common.d.ts +1 -1
  104. package/dist/common.js +9 -0
  105. package/{lib/apps/deploy-app → dist/helpers/app}/actions-deployer.d.ts +11 -11
  106. package/{lib/apps/deploy-app → dist/helpers/app}/actions-deployer.js +122 -114
  107. package/{lib/apps/deploy-app → dist/helpers/app}/app-deployer.d.ts +8 -8
  108. package/{lib/apps/deploy-app → dist/helpers/app}/app-deployer.js +98 -93
  109. package/{lib/apps/deploy-app → dist/helpers/app}/app-template-parsers.d.ts +7 -7
  110. package/{lib/apps/deploy-app → dist/helpers/app}/app-template-parsers.js +43 -38
  111. package/dist/helpers/app/load-app-config.d.ts +1 -0
  112. package/dist/helpers/app/load-app-config.js +18 -0
  113. package/dist/helpers/app/setup-template.d.ts +1 -0
  114. package/dist/helpers/app/setup-template.js +38 -0
  115. package/dist/helpers/colors/helpers.d.ts +4 -0
  116. package/dist/helpers/colors/helpers.js +74 -0
  117. package/{lib → dist/helpers}/config/config.d.ts +6 -6
  118. package/dist/helpers/config/config.js +76 -0
  119. package/dist/helpers/loader-process/helpers.d.ts +2 -0
  120. package/{lib/loader-process/loader-process.js → dist/helpers/loader-process/helpers.js} +98 -120
  121. package/dist/helpers/projects/helpers.d.ts +2 -0
  122. package/{lib/projects/project-exporter.js → dist/helpers/projects/helpers.js} +165 -187
  123. package/{lib → dist/helpers}/types/csv-parser.d.ts +1 -1
  124. package/{lib → dist/helpers}/types/csv-parser.js +56 -51
  125. package/dist/helpers/types/type-extractor.d.ts +1 -0
  126. package/dist/helpers/types/type-extractor.js +32 -0
  127. package/dist/helpers/types/type-parser.d.ts +4 -0
  128. package/dist/helpers/types/type-parser.js +118 -0
  129. package/{lib/types/types-uploader.d.ts → dist/helpers/types/type-uploader.d.ts} +1 -1
  130. package/{lib/types/types-uploader.js → dist/helpers/types/type-uploader.js} +244 -239
  131. package/{lib → dist/helpers}/workflow-template-definitions/workflow-template-definition-deployer.d.ts +12 -12
  132. package/{lib → dist/helpers}/workflow-template-definitions/workflow-template-definition-deployer.js +156 -151
  133. package/{lib/workflow-templates/local-workflow-template-deployer.d.ts → dist/helpers/workflow-templates/helper.d.ts} +17 -11
  134. package/dist/helpers/workflow-templates/helper.js +166 -0
  135. package/dist/index.d.ts +1 -0
  136. package/dist/index.js +5 -0
  137. package/{lib → dist}/interfaces.d.ts +323 -191
  138. package/dist/interfaces.js +63 -0
  139. package/{templates → dist/templates}/typescript/Dockerfile +15 -15
  140. package/{templates → dist/templates}/typescript/README.md +10 -10
  141. package/{templates → dist/templates}/typescript/app.yml +49 -49
  142. package/{templates → dist/templates}/typescript/docker_deploy.bat +1 -1
  143. package/{templates → dist/templates}/typescript/package.json +54 -54
  144. package/{templates → dist/templates}/typescript/src/actions/logItem.ts +25 -25
  145. package/{templates → dist/templates}/typescript/src/framework/action-dispatcher.ts +89 -89
  146. package/{templates → dist/templates}/typescript/src/framework/app-config.ts +26 -26
  147. package/{templates → dist/templates}/typescript/src/framework/index.ts +2 -2
  148. package/{templates → dist/templates}/typescript/src/framework/interfaces.ts +32 -32
  149. package/{templates → dist/templates}/typescript/tsconfig.json +28 -28
  150. package/oclif.manifest.json +821 -0
  151. package/package.json +116 -72
  152. package/.eslintrc.js +0 -53
  153. package/.vscode/settings.json +0 -6
  154. package/bin/init +0 -4
  155. package/lib/api/apps.js +0 -85
  156. package/lib/api/event-workflow-action-definition.js +0 -7
  157. package/lib/api/event-workflow-template-definition.js +0 -20
  158. package/lib/api/event-workflow-templates.js +0 -25
  159. package/lib/apps/create-app/create.d.ts +0 -1
  160. package/lib/apps/create-app/create.js +0 -60
  161. package/lib/apps/create-app/setup-template.d.ts +0 -1
  162. package/lib/apps/create-app/setup-template.js +0 -34
  163. package/lib/apps/deploy-app/deploy.d.ts +0 -2
  164. package/lib/apps/deploy-app/deploy.js +0 -58
  165. package/lib/apps/install-app/app-installer.d.ts +0 -2
  166. package/lib/apps/install-app/app-installer.js +0 -120
  167. package/lib/apps/upgrade-app/app-upgrader.d.ts +0 -3
  168. package/lib/apps/upgrade-app/app-upgrader.js +0 -126
  169. package/lib/auth/auth.js +0 -2
  170. package/lib/cli.d.ts +0 -5
  171. package/lib/cli.js +0 -524
  172. package/lib/colors/color-loader.d.ts +0 -2
  173. package/lib/colors/color-loader.js +0 -96
  174. package/lib/common.js +0 -5
  175. package/lib/config/config.js +0 -70
  176. package/lib/config/configCommands.d.ts +0 -3
  177. package/lib/config/configCommands.js +0 -34
  178. package/lib/interfaces.js +0 -25
  179. package/lib/loader-process/loader-process.d.ts +0 -2
  180. package/lib/projects/interfaces.d.ts +0 -77
  181. package/lib/projects/interfaces.js +0 -23
  182. package/lib/projects/project-exporter.d.ts +0 -2
  183. package/lib/projects/project-uploader.d.ts +0 -1
  184. package/lib/types/allUploader.d.ts +0 -1
  185. package/lib/types/allUploader.js +0 -24
  186. package/lib/types/interfaces.d.ts +0 -55
  187. package/lib/types/interfaces.js +0 -1
  188. package/lib/types/option-set-hierarchy-exporter.d.ts +0 -1
  189. package/lib/types/option-set-hierarchy-parser.d.ts +0 -2
  190. package/lib/types/option-set-hierarchy-uploader.d.ts +0 -1
  191. package/lib/types/option-set-merger.d.ts +0 -1
  192. package/lib/types/option-set-parser.d.ts +0 -3
  193. package/lib/types/option-set-parser.js +0 -140
  194. package/lib/types/option-set-uploader.d.ts +0 -1
  195. package/lib/types/parse-types.d.ts +0 -4
  196. package/lib/types/parse-types.js +0 -189
  197. package/lib/types/rule-set-uploader.d.ts +0 -1
  198. package/lib/types/type-property-policy-uploader.d.ts +0 -1
  199. package/lib/types/types-properties-merger.d.ts +0 -1
  200. package/lib/types/types-properties-merger.js +0 -75
  201. package/lib/types/usage-info-uploader.d.ts +0 -1
  202. package/lib/users/user-exporter.d.ts +0 -1
  203. package/lib/users/user-exporter.js +0 -41
  204. package/lib/users/user-uploader.d.ts +0 -1
  205. package/lib/users/user-uploader.js +0 -45
  206. package/lib/workflow-template-definitions/workflow-template-definition-commands.d.ts +0 -2
  207. package/lib/workflow-template-definitions/workflow-template-definition-commands.js +0 -10
  208. package/lib/workflow-templates/local-workflow-template-deployer.js +0 -102
  209. package/lib/workflow-templates/workflow-template-commands.d.ts +0 -4
  210. package/lib/workflow-templates/workflow-template-commands.js +0 -51
  211. package/lib/workflow-templates/workflow-template-deployer.d.ts +0 -4
  212. package/lib/workflow-templates/workflow-template-deployer.js +0 -26
  213. package/publish.bat +0 -5
  214. package/publish.sh +0 -5
  215. package/src/api/apps.ts +0 -97
  216. package/src/api/event-workflow-action-definition.ts +0 -8
  217. package/src/api/event-workflow-template-definition.ts +0 -23
  218. package/src/api/event-workflow-templates.ts +0 -29
  219. package/src/apps/create-app/create.ts +0 -74
  220. package/src/apps/create-app/setup-template.ts +0 -38
  221. package/src/apps/deploy-app/actions-deployer.ts +0 -140
  222. package/src/apps/deploy-app/app-deployer.ts +0 -105
  223. package/src/apps/deploy-app/app-template-parsers.ts +0 -44
  224. package/src/apps/deploy-app/deploy.ts +0 -66
  225. package/src/apps/install-app/app-installer.ts +0 -126
  226. package/src/apps/upgrade-app/app-upgrader.ts +0 -132
  227. package/src/auth/auth.ts +0 -10
  228. package/src/auth/login.ts +0 -155
  229. package/src/cli.ts +0 -540
  230. package/src/colors/color-loader.ts +0 -112
  231. package/src/colors/colors.csv +0 -866
  232. package/src/common.ts +0 -5
  233. package/src/config/config.ts +0 -74
  234. package/src/config/configCommands.ts +0 -38
  235. package/src/interfaces.ts +0 -200
  236. package/src/loader-process/loader-process.ts +0 -152
  237. package/src/projects/interfaces.ts +0 -73
  238. package/src/projects/project-exporter.ts +0 -225
  239. package/src/projects/project-uploader.ts +0 -131
  240. package/src/types/allUploader.ts +0 -28
  241. package/src/types/csv-parser.ts +0 -59
  242. package/src/types/interfaces.ts +0 -58
  243. package/src/types/option-set-hierarchy-exporter.ts +0 -125
  244. package/src/types/option-set-hierarchy-parser.ts +0 -169
  245. package/src/types/option-set-hierarchy-uploader.ts +0 -122
  246. package/src/types/option-set-merger.ts +0 -124
  247. package/src/types/option-set-parser.ts +0 -166
  248. package/src/types/option-set-uploader.ts +0 -108
  249. package/src/types/parse-types.ts +0 -227
  250. package/src/types/rule-set-uploader.ts +0 -187
  251. package/src/types/type-property-policy-uploader.ts +0 -192
  252. package/src/types/types-extractor.ts +0 -369
  253. package/src/types/types-properties-merger.ts +0 -90
  254. package/src/types/types-uploader.ts +0 -271
  255. package/src/types/usage-info-uploader.ts +0 -139
  256. package/src/users/user-exporter.ts +0 -52
  257. package/src/users/user-uploader.ts +0 -58
  258. package/src/workflow-template-definitions/workflow-template-definition-commands.ts +0 -13
  259. package/src/workflow-template-definitions/workflow-template-definition-deployer.ts +0 -184
  260. package/src/workflow-templates/local-workflow-template-deployer.ts +0 -126
  261. package/src/workflow-templates/workflow-template-commands.ts +0 -59
  262. package/src/workflow-templates/workflow-template-deployer.ts +0 -30
  263. package/templates/javascript/actions/example/action.js +0 -38
  264. package/templates/javascript/app.yml +0 -53
  265. package/templates/javascript/package.json +0 -23
  266. package/templates/typescript/package-lock.json +0 -14
  267. package/tsconfig.json +0 -32
  268. /package/{templates → dist/templates}/typescript/src/framework/handler.ts +0 -0
  269. /package/{templates → dist/templates}/typescript/src/framework/logger.ts +0 -0
  270. /package/{templates → dist/templates}/typescript/src/framework/mock-server.ts +0 -0
@@ -1,151 +1,156 @@
1
- import inquirer from 'inquirer';
2
- import chalk from 'chalk';
3
- import { getInstalledApps, getWorkflowTemplateDefinitionsForApp } from '../api/apps';
4
- import { createWorkflowTemplate } from '../api/event-workflow-templates';
5
- import { createWorkflowTemplateDefinition, deleteWorkflowTemplateDefinition, updateWorkflowTemplateDefinition as apiUpdateWorkflowTemplateDefinition } from '../api/event-workflow-template-definition';
6
- import { getActionDeclarationIdentifier, getActionsForApp } from '../apps/deploy-app/actions-deployer';
7
- export class WorkflowTemplateDefinitionDeployer {
8
- async cliInstallWorkflowTemplateDefinitions() {
9
- const installedApps = await getInstalledApps();
10
- if (!installedApps.length) {
11
- console.log('%s \nNo apps are currently installed. You must install an app before installing its associated workflow template definitions.', chalk.red.bold('WORKFLOW DEFINITION'));
12
- return;
13
- }
14
- const answers = await inquirer.prompt([{
15
- type: 'list',
16
- name: 'appIdentifier',
17
- message: 'Which app\'s workflow would you like to install?',
18
- choices: installedApps.map(x => x.app.identifier)
19
- }]);
20
- const app = installedApps.find(x => x.app.identifier === answers.appIdentifier).app;
21
- const workflowTemplateDefinitions = await getWorkflowTemplateDefinitionsForApp({ appId: app.id });
22
- for (const definition of workflowTemplateDefinitions) {
23
- console.log(chalk.yellow.bold(`- ${definition.name}`));
24
- }
25
- await this.installWorkflowTemplateDefinitions(workflowTemplateDefinitions);
26
- }
27
- async installWorkflowTemplateDefinitions(workflowTemplateDefinitions) {
28
- let answers = await inquirer.prompt([{
29
- type: 'checkbox',
30
- name: 'workflowTemplateDefinitionsToInstall',
31
- message: 'Which workflow templates would you like to install?',
32
- choices: workflowTemplateDefinitions.map(x => { return { value: x.identifier, name: x.name }; }),
33
- }]);
34
- const workflowTemplateDefinitionsToInstall = workflowTemplateDefinitions.filter(x => answers.workflowTemplateDefinitionsToInstall.includes(x.identifier));
35
- answers = await inquirer.prompt([{
36
- type: 'confirm',
37
- name: 'makeActive',
38
- message: 'Should the workflows be active ?(yes)',
39
- default: true,
40
- }]);
41
- const makeActive = answers.makeActive;
42
- for (const definition of workflowTemplateDefinitionsToInstall) {
43
- const newObject = {
44
- name: definition.name,
45
- triggerKey: definition.triggerKey,
46
- workflowDefinition: definition.workflowDefinition,
47
- isActive: makeActive,
48
- supportingAppId: definition.supportingAppId,
49
- };
50
- await createWorkflowTemplate(newObject);
51
- }
52
- console.log('%s \nInstalled workflows', chalk.green.bold('WORKFLOW DEFINITION'));
53
- }
54
- async listWorkflowTemplateDefinitions() {
55
- const installedApps = await getInstalledApps();
56
- const workflowTemplateDefinitions = [];
57
- for (const appOrg of installedApps) {
58
- workflowTemplateDefinitions.push(...await (await getWorkflowTemplateDefinitionsForApp({ appId: appOrg.appId })).map(x => {
59
- return {
60
- appName: appOrg.app.name,
61
- workflowName: x.name,
62
- };
63
- }));
64
- }
65
- console.log('(app name) workflow name');
66
- console.log('------------------------');
67
- console.log(chalk.green.bold(workflowTemplateDefinitions.map(x => `(${x.appName}) ${x.workflowName} `).join('\n')));
68
- }
69
- async deployWorkflowTemplateDefinitions(appDeclaration, app) {
70
- // FETCH ALL WORKFLOWS FROM THE API.
71
- const existingWorkflows = await getWorkflowTemplateDefinitionsForApp({ appId: app.id });
72
- // UPSERT / DELETE BASED ON WORKFLOW IDENTIFIER
73
- console.log('%s \tDeploying workflow definitions.', chalk.yellow.bold('WORKFLOW DEFINITION'));
74
- if (appDeclaration.workflows) {
75
- const localWorkflows = Object.keys(appDeclaration.workflows);
76
- if ((localWorkflows === null || localWorkflows === void 0 ? void 0 : localWorkflows.length) > 0) {
77
- for (const workflowKey of localWorkflows) {
78
- await this.deployWorkflow(workflowKey, appDeclaration.workflows[workflowKey], app, existingWorkflows);
79
- }
80
- }
81
- // remove old templates that were removed by the app publisher
82
- const localIdentifiers = localWorkflows.map(x => this.getWorkflowDeclarationIdentifier(x, app));
83
- const workflowTemplateDefinitionsToDelete = existingWorkflows.filter(x => !localIdentifiers.includes(x.identifier));
84
- for (const templateToDelete of workflowTemplateDefinitionsToDelete) {
85
- await deleteWorkflowTemplateDefinition(templateToDelete.id);
86
- }
87
- }
88
- }
89
- async deployWorkflow(workflowKey, workflow, app, existingWorkflows) {
90
- console.log(`%s \tDeploying workflow definitions: ${workflowKey}`, chalk.yellow.bold('WORKFLOW DEFINITION'));
91
- const identifier = this.getWorkflowDeclarationIdentifier(workflowKey, app);
92
- const existingDefinition = existingWorkflows.find(ad => ad.identifier === identifier);
93
- if (existingDefinition) {
94
- return await this.updateWorkflowTemplateDefinition(existingDefinition, workflow, app);
95
- }
96
- return await this.createNewWorkflowDefinition(workflowKey, workflow, app);
97
- }
98
- async createNewWorkflowDefinition(workflowKey, workflowDeclaration, app) {
99
- await this.populateActionIds(workflowDeclaration, app);
100
- const newObject = {
101
- identifier: this.getWorkflowDeclarationIdentifier(workflowKey, app),
102
- name: workflowDeclaration.name,
103
- ownerKey: `app:${app.id}`,
104
- triggerKey: workflowDeclaration.triggerKey,
105
- workflowDefinition: workflowDeclaration.workflowDefinition,
106
- public: workflowDeclaration.public,
107
- isActive: workflowDeclaration.isActive,
108
- messageGroupId: workflowDeclaration.messageGroupId,
109
- parallelWorkerCount: workflowDeclaration.parallelWorkerCount,
110
- };
111
- const workflowTemplate = await createWorkflowTemplateDefinition(newObject);
112
- console.log(`%s Created new workflow definition definitions: ${workflowKey}`, chalk.yellow.bold('WORKFLOW DEFINITION'));
113
- return workflowTemplate;
114
- }
115
- async populateActionIds(workflowDefinition, app) {
116
- var _a;
117
- const availableAppActions = await getActionsForApp(app);
118
- if (!((_a = workflowDefinition.workflowDefinition) === null || _a === void 0 ? void 0 : _a.paths)) {
119
- return;
120
- }
121
- for (const path of workflowDefinition.workflowDefinition.paths) {
122
- if (!(path === null || path === void 0 ? void 0 : path.actionDefinitionConfigs)) {
123
- continue;
124
- }
125
- for (const actionConfiguration of path.actionDefinitionConfigs) {
126
- const actionKey = actionConfiguration.action;
127
- const action = availableAppActions.find(action => action.identifier === getActionDeclarationIdentifier(actionKey, app));
128
- if (!action) {
129
- throw new Error(`Could not find action ${actionKey} declared in workflow definition ${workflowDefinition.name}`);
130
- }
131
- actionConfiguration.id = action.id;
132
- }
133
- }
134
- }
135
- async updateWorkflowTemplateDefinition(existingWorkflowDefinition, workflowDefinition, app) {
136
- await this.populateActionIds(workflowDefinition, app);
137
- const updates = Object.assign(new Object(), {
138
- name: workflowDefinition.name,
139
- triggerKey: workflowDefinition.triggerKey,
140
- workflowDefinition: workflowDefinition.workflowDefinition,
141
- messageGroupId: workflowDefinition.messageGroupId,
142
- parallelWorkerCount: workflowDefinition.parallelWorkerCount,
143
- });
144
- const updatedWorkflowDefinition = await apiUpdateWorkflowTemplateDefinition({ id: existingWorkflowDefinition.id, updates });
145
- console.log(`%s Updated existing workflow definition: ${updatedWorkflowDefinition.identifier}`, chalk.yellow.bold('WORKFLOW DEFINITION'));
146
- return updatedWorkflowDefinition;
147
- }
148
- getWorkflowDeclarationIdentifier(actionKey, app) {
149
- return app.identifier + ':' + actionKey;
150
- }
151
- }
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.WorkflowTemplateDefinitionDeployer = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const inquirer_1 = tslib_1.__importDefault(require("inquirer"));
6
+ const chalk_1 = tslib_1.__importDefault(require("chalk"));
7
+ const apps_1 = require("../../api/apps");
8
+ const event_workflow_templates_1 = require("../../api/event-workflow-templates");
9
+ const event_workflow_template_definition_1 = require("../../api/event-workflow-template-definition");
10
+ const actions_deployer_1 = require("../app/actions-deployer");
11
+ class WorkflowTemplateDefinitionDeployer {
12
+ async cliInstallWorkflowTemplateDefinitions() {
13
+ const installedApps = await (0, apps_1.getInstalledApps)();
14
+ if (!installedApps.length) {
15
+ 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'));
16
+ return;
17
+ }
18
+ const answers = await inquirer_1.default.prompt([{
19
+ type: 'list',
20
+ name: 'appIdentifier',
21
+ message: 'Which app\'s workflow would you like to install?',
22
+ choices: installedApps.map(x => x.app.identifier)
23
+ }]);
24
+ const app = installedApps.find(x => x.app.identifier === answers.appIdentifier).app;
25
+ const workflowTemplateDefinitions = await (0, apps_1.getWorkflowTemplateDefinitionsForApp)({ appId: app.id });
26
+ for (const definition of workflowTemplateDefinitions) {
27
+ console.log(chalk_1.default.yellow.bold(`- ${definition.name}`));
28
+ }
29
+ await this.installWorkflowTemplateDefinitions(workflowTemplateDefinitions);
30
+ }
31
+ async installWorkflowTemplateDefinitions(workflowTemplateDefinitions) {
32
+ let answers = await inquirer_1.default.prompt([{
33
+ type: 'checkbox',
34
+ name: 'workflowTemplateDefinitionsToInstall',
35
+ message: 'Which workflow templates would you like to install?',
36
+ choices: workflowTemplateDefinitions.map(x => { return { value: x.identifier, name: x.name }; }),
37
+ }]);
38
+ const workflowTemplateDefinitionsToInstall = workflowTemplateDefinitions.filter(x => answers.workflowTemplateDefinitionsToInstall.includes(x.identifier));
39
+ answers = await inquirer_1.default.prompt([{
40
+ type: 'confirm',
41
+ name: 'makeActive',
42
+ message: 'Should the workflows be active ?(yes)',
43
+ default: true,
44
+ }]);
45
+ const makeActive = answers.makeActive;
46
+ for (const definition of workflowTemplateDefinitionsToInstall) {
47
+ const newObject = {
48
+ name: definition.name,
49
+ triggerKey: definition.triggerKey,
50
+ workflowDefinition: definition.workflowDefinition,
51
+ isActive: makeActive,
52
+ supportingAppId: definition.supportingAppId,
53
+ };
54
+ await (0, event_workflow_templates_1.createWorkflowTemplate)(newObject);
55
+ }
56
+ console.log('%s \nInstalled workflows', chalk_1.default.green.bold('WORKFLOW DEFINITION'));
57
+ }
58
+ async listWorkflowTemplateDefinitions() {
59
+ const installedApps = await (0, apps_1.getInstalledApps)();
60
+ const workflowTemplateDefinitions = [];
61
+ for (const appOrg of installedApps) {
62
+ workflowTemplateDefinitions.push(...await (await (0, apps_1.getWorkflowTemplateDefinitionsForApp)({ appId: appOrg.appId })).map(x => {
63
+ return {
64
+ appName: appOrg.app.name,
65
+ workflowName: x.name,
66
+ };
67
+ }));
68
+ }
69
+ console.log('(app name) workflow name');
70
+ console.log('------------------------');
71
+ console.log(chalk_1.default.green.bold(workflowTemplateDefinitions.map(x => `(${x.appName}) ${x.workflowName} `).join('\n')));
72
+ }
73
+ async deployWorkflowTemplateDefinitions(appDeclaration, app) {
74
+ // FETCH ALL WORKFLOWS FROM THE API.
75
+ const existingWorkflows = await (0, apps_1.getWorkflowTemplateDefinitionsForApp)({ appId: app.id });
76
+ // UPSERT / DELETE BASED ON WORKFLOW IDENTIFIER
77
+ console.log('%s \tDeploying workflow definitions.', chalk_1.default.yellow.bold('WORKFLOW DEFINITION'));
78
+ if (appDeclaration.workflows) {
79
+ const localWorkflows = Object.keys(appDeclaration.workflows);
80
+ if ((localWorkflows === null || localWorkflows === void 0 ? void 0 : localWorkflows.length) > 0) {
81
+ for (const workflowKey of localWorkflows) {
82
+ await this.deployWorkflow(workflowKey, appDeclaration.workflows[workflowKey], app, existingWorkflows);
83
+ }
84
+ }
85
+ // remove old templates that were removed by the app publisher
86
+ const localIdentifiers = localWorkflows.map(x => this.getWorkflowDeclarationIdentifier(x, app));
87
+ const workflowTemplateDefinitionsToDelete = existingWorkflows.filter(x => !localIdentifiers.includes(x.identifier));
88
+ for (const templateToDelete of workflowTemplateDefinitionsToDelete) {
89
+ await (0, event_workflow_template_definition_1.deleteWorkflowTemplateDefinition)(templateToDelete.id);
90
+ }
91
+ }
92
+ }
93
+ async deployWorkflow(workflowKey, workflow, app, existingWorkflows) {
94
+ console.log(`%s \tDeploying workflow definitions: ${workflowKey}`, chalk_1.default.yellow.bold('WORKFLOW DEFINITION'));
95
+ const identifier = this.getWorkflowDeclarationIdentifier(workflowKey, app);
96
+ const existingDefinition = existingWorkflows.find(ad => ad.identifier === identifier);
97
+ if (existingDefinition) {
98
+ return await this.updateWorkflowTemplateDefinition(existingDefinition, workflow, app);
99
+ }
100
+ return await this.createNewWorkflowDefinition(workflowKey, workflow, app);
101
+ }
102
+ async createNewWorkflowDefinition(workflowKey, workflowDeclaration, app) {
103
+ await this.populateActionIds(workflowDeclaration, app);
104
+ const newObject = {
105
+ identifier: this.getWorkflowDeclarationIdentifier(workflowKey, app),
106
+ name: workflowDeclaration.name,
107
+ ownerKey: `app:${app.id}`,
108
+ triggerKey: workflowDeclaration.triggerKey,
109
+ workflowDefinition: workflowDeclaration.workflowDefinition,
110
+ public: workflowDeclaration.public,
111
+ isActive: workflowDeclaration.isActive,
112
+ messageGroupId: workflowDeclaration.messageGroupId,
113
+ parallelWorkerCount: workflowDeclaration.parallelWorkerCount,
114
+ };
115
+ const workflowTemplate = await (0, event_workflow_template_definition_1.createWorkflowTemplateDefinition)(newObject);
116
+ console.log(`%s Created new workflow definition definitions: ${workflowKey}`, chalk_1.default.yellow.bold('WORKFLOW DEFINITION'));
117
+ return workflowTemplate;
118
+ }
119
+ async populateActionIds(workflowDefinition, app) {
120
+ var _a;
121
+ const availableAppActions = await (0, actions_deployer_1.getActionsForApp)(app);
122
+ if (!((_a = workflowDefinition.workflowDefinition) === null || _a === void 0 ? void 0 : _a.paths)) {
123
+ return;
124
+ }
125
+ for (const path of workflowDefinition.workflowDefinition.paths) {
126
+ if (!(path === null || path === void 0 ? void 0 : path.actionDefinitionConfigs)) {
127
+ continue;
128
+ }
129
+ for (const actionConfiguration of path.actionDefinitionConfigs) {
130
+ const actionKey = actionConfiguration.action;
131
+ const action = availableAppActions.find(action => action.identifier === (0, actions_deployer_1.getActionDeclarationIdentifier)(actionKey, app));
132
+ if (!action) {
133
+ throw new Error(`Could not find action ${actionKey} declared in workflow definition ${workflowDefinition.name}`);
134
+ }
135
+ actionConfiguration.id = action.id;
136
+ }
137
+ }
138
+ }
139
+ async updateWorkflowTemplateDefinition(existingWorkflowDefinition, workflowDefinition, app) {
140
+ await this.populateActionIds(workflowDefinition, app);
141
+ const updates = Object.assign(new Object(), {
142
+ name: workflowDefinition.name,
143
+ triggerKey: workflowDefinition.triggerKey,
144
+ workflowDefinition: workflowDefinition.workflowDefinition,
145
+ messageGroupId: workflowDefinition.messageGroupId,
146
+ parallelWorkerCount: workflowDefinition.parallelWorkerCount,
147
+ });
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'));
150
+ return updatedWorkflowDefinition;
151
+ }
152
+ getWorkflowDeclarationIdentifier(actionKey, app) {
153
+ return app.identifier + ':' + actionKey;
154
+ }
155
+ }
156
+ exports.WorkflowTemplateDefinitionDeployer = WorkflowTemplateDefinitionDeployer;
@@ -1,11 +1,17 @@
1
- import { WorkflowTemplate, WorkflowTemplateDeclaration } from '../interfaces';
2
- export declare class LocalWorkflowTemplateDeployer {
3
- deployWorkflows(wtDeclaration: WorkflowTemplateDeclaration): Promise<void>;
4
- deployWorkflowTemplate(workflowKey: string, workflow: WorkflowTemplate, existingWorkflows: Array<any>): Promise<any>;
5
- private createNewWorkflowTemplate;
6
- private populateActionIds;
7
- private updateWorkflowTemplate;
8
- deleteWorkflowTemplates(wtDeclaration: WorkflowTemplateDeclaration): Promise<void>;
9
- }
10
- export declare function getWorkflowTemplateIdentifier(workflowKey: string): string;
11
- export declare function getActionByIdentifier(identifier: string): Promise<any>;
1
+ import { WorkflowTemplate, WorkflowTemplateDeclaration } from '../../interfaces';
2
+ export declare class LocalWorkflowTemplateDeployer {
3
+ deployWorkflows(wtDeclaration: WorkflowTemplateDeclaration): Promise<void>;
4
+ deployWorkflowTemplate(workflowKey: string, workflow: WorkflowTemplate, existingWorkflows: Array<any>): Promise<any>;
5
+ private createNewWorkflowTemplate;
6
+ private populateActionIds;
7
+ private updateWorkflowTemplate;
8
+ deleteWorkflowTemplates(wtDeclaration: WorkflowTemplateDeclaration): Promise<void>;
9
+ }
10
+ export declare function getWorkflowTemplateIdentifier(workflowKey: string): string;
11
+ export declare function getActionByIdentifier(identifier: string): Promise<any>;
12
+ export declare class WorkflowTemplateDeployer {
13
+ deleteWorkflowTemplates(): Promise<void>;
14
+ listExistingWorkflowTemplates(): Promise<void>;
15
+ }
16
+ export declare function deleteWorkflowTemplates(): Promise<void>;
17
+ export declare function localDeployWorkflowTemplate(saveFileLocation: string): Promise<void>;
@@ -0,0 +1,166 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.localDeployWorkflowTemplate = exports.deleteWorkflowTemplates = exports.WorkflowTemplateDeployer = exports.getActionByIdentifier = exports.getWorkflowTemplateIdentifier = exports.LocalWorkflowTemplateDeployer = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const path = tslib_1.__importStar(require("path"));
6
+ const chalk_1 = tslib_1.__importDefault(require("chalk"));
7
+ const fs_1 = tslib_1.__importDefault(require("fs"));
8
+ const inquirer_1 = tslib_1.__importDefault(require("inquirer"));
9
+ const event_workflow_action_definition_1 = require("../../api/event-workflow-action-definition");
10
+ const event_workflow_templates_1 = require("../../api/event-workflow-templates");
11
+ const login_1 = require("../../auth/login");
12
+ const yaml = require('js-yaml');
13
+ class LocalWorkflowTemplateDeployer {
14
+ async deployWorkflows(wtDeclaration) {
15
+ // FETCH ALL WORKFLOWS FROM THE API.
16
+ const existingWorkflows = await (0, event_workflow_templates_1.getExistingWorkflowTemplates)();
17
+ // UPSERT / DELETE BASED ON WORKFLOW TEMPLATES IDENTIFIER
18
+ console.log('%s \tDeploying workflow templates.', chalk_1.default.yellow.bold('WORKFLOW TEMPLATES'));
19
+ for (const workflowKey of Object.keys(wtDeclaration.workflows)) {
20
+ await this.deployWorkflowTemplate(workflowKey, wtDeclaration.workflows[workflowKey], existingWorkflows);
21
+ }
22
+ }
23
+ async deployWorkflowTemplate(workflowKey, workflow, existingWorkflows) {
24
+ console.log(`%s \tDeploying workflow: ${workflowKey}`, chalk_1.default.yellow.bold('WORKFLOW TEMPLATES'));
25
+ const identifier = getWorkflowTemplateIdentifier(workflowKey);
26
+ const existingTemplate = existingWorkflows.find(ad => ad.identifier === identifier);
27
+ if (existingTemplate) {
28
+ return await this.updateWorkflowTemplate(workflowKey, existingTemplate, workflow);
29
+ }
30
+ return await this.createNewWorkflowTemplate(workflowKey, workflow);
31
+ }
32
+ async createNewWorkflowTemplate(workflowKey, workflowTemplate) {
33
+ await this.populateActionIds(workflowTemplate, workflowKey);
34
+ const newObject = {
35
+ identifier: getWorkflowTemplateIdentifier(workflowKey),
36
+ name: workflowTemplate.name,
37
+ triggerKey: workflowTemplate.triggerKey,
38
+ workflowDefinition: workflowTemplate.workflowDefinition,
39
+ isActive: workflowTemplate.isActive,
40
+ supportingAppId: workflowTemplate.supportingAppId,
41
+ messageGroupId: workflowTemplate.messageGroupId,
42
+ parallelWorkerCount: workflowTemplate.parallelWorkerCount,
43
+ };
44
+ const newWorkflowTemplate = await (0, event_workflow_templates_1.createWorkflowTemplate)(newObject);
45
+ console.log(`%s Created new workflow definition: ${workflowKey}`, chalk_1.default.yellow.bold('WORKFLOW TEMPLATES'));
46
+ return newWorkflowTemplate;
47
+ }
48
+ async populateActionIds(workflowTemplate, workflowKey) {
49
+ var _a;
50
+ if (!((_a = workflowTemplate === null || workflowTemplate === void 0 ? void 0 : workflowTemplate.workflowDefinition) === null || _a === void 0 ? void 0 : _a.paths)) {
51
+ return;
52
+ }
53
+ for (const path of workflowTemplate.workflowDefinition.paths) {
54
+ if (!(path === null || path === void 0 ? void 0 : path.actionDefinitionConfigs)) {
55
+ continue;
56
+ }
57
+ for (const actionConfiguration of path.actionDefinitionConfigs) {
58
+ const actionKey = actionConfiguration.action;
59
+ try {
60
+ const actionEntity = await getActionByIdentifier(actionKey);
61
+ actionConfiguration.id = actionEntity.id;
62
+ }
63
+ catch (e) {
64
+ console.log(e);
65
+ }
66
+ if (!actionConfiguration.id) {
67
+ throw new Error(`Could not find action ${actionKey} declared in ${workflowKey}`);
68
+ }
69
+ }
70
+ }
71
+ }
72
+ async updateWorkflowTemplate(workflowKey, existingWorkflowTemplate, workflowTemplate) {
73
+ await this.populateActionIds(workflowTemplate, workflowKey);
74
+ const updates = Object.assign(new Object(), {
75
+ name: workflowTemplate.name,
76
+ triggerKey: workflowTemplate.triggerKey,
77
+ workflowDefinition: workflowTemplate.workflowDefinition
78
+ });
79
+ const updatedWorkflowTemplate = await (0, event_workflow_templates_1.updateWorkflowTemplate)({ id: existingWorkflowTemplate.id, updates });
80
+ console.log(`%s Updated existing workflow template: ${updatedWorkflowTemplate.identifier}`, chalk_1.default.yellow.bold('WORKFLOW TEMPLATES'));
81
+ return updatedWorkflowTemplate;
82
+ }
83
+ async deleteWorkflowTemplates(wtDeclaration) {
84
+ // FETCH ALL WORKFLOWS FROM THE API.
85
+ const existingWorkflows = await (0, event_workflow_templates_1.getExistingWorkflowTemplates)();
86
+ // UPSERT / DELETE BASED ON WORKFLOW TEMPLATES IDENTIFIER
87
+ console.log('%s \tDELETING workflow templates.', chalk_1.default.yellow.bold('WORKFLOW TEMPLATES'));
88
+ for (const workflowKey of Object.keys(wtDeclaration.workflows)) {
89
+ const identifier = getWorkflowTemplateIdentifier(workflowKey);
90
+ const existingTemplate = existingWorkflows.find(ad => ad.identifier === identifier);
91
+ if (existingTemplate) {
92
+ try {
93
+ await (0, event_workflow_templates_1.deleteWorkflowTemplate)(identifier);
94
+ }
95
+ catch (e) {
96
+ console.log('%s \tFAILED to delete workflow template %s.', chalk_1.default.red.bold('WORKFLOW TEMPLATES'), identifier);
97
+ }
98
+ }
99
+ else {
100
+ console.log('%s \tUnable to locate workflow template %s.', chalk_1.default.yellow.bold('WORKFLOW TEMPLATES'), identifier);
101
+ }
102
+ }
103
+ }
104
+ }
105
+ exports.LocalWorkflowTemplateDeployer = LocalWorkflowTemplateDeployer;
106
+ function getWorkflowTemplateIdentifier(workflowKey) {
107
+ return workflowKey;
108
+ }
109
+ exports.getWorkflowTemplateIdentifier = getWorkflowTemplateIdentifier;
110
+ async function getActionByIdentifier(identifier) {
111
+ const result = await (0, event_workflow_action_definition_1.getEventWorkflowActionDefinition)({ identifier });
112
+ return result.length > 0 ? result[0] : {};
113
+ }
114
+ exports.getActionByIdentifier = getActionByIdentifier;
115
+ class WorkflowTemplateDeployer {
116
+ async deleteWorkflowTemplates() {
117
+ // FETCH ALL WORKFLOWS FROM THE API.
118
+ const existingWorkflows = await (0, event_workflow_templates_1.getExistingWorkflowTemplates)();
119
+ const answers = await inquirer_1.default.prompt([{
120
+ type: 'checkbox',
121
+ name: 'wfTemplatesToDelete',
122
+ message: 'Which templates would you like to delete (one or more)?',
123
+ choices: existingWorkflows.map(x => { return { value: x.id, name: `(${x.createdOn}) ${x.name}` }; })
124
+ }]);
125
+ for (const idToDelete of answers.wfTemplatesToDelete) {
126
+ await (0, event_workflow_templates_1.deleteWorkflowTemplate)(idToDelete);
127
+ }
128
+ console.log('%s \tDeleted workflow templates!', chalk_1.default.green.bold('WORKFLOW TEMPLATES'));
129
+ }
130
+ async listExistingWorkflowTemplates() {
131
+ const templates = await (0, event_workflow_templates_1.getExistingWorkflowTemplates)();
132
+ console.log('(Date Created) (active) workflow name');
133
+ console.log('------------------------');
134
+ console.log(chalk_1.default.green.bold(templates.map(x => `(${x.createdOn}) (${x.isActive ? 'active' : 'inactive'}) ${x.name} `).join('\n')));
135
+ }
136
+ }
137
+ exports.WorkflowTemplateDeployer = WorkflowTemplateDeployer;
138
+ async function deleteWorkflowTemplates() {
139
+ await (0, login_1.authUser)();
140
+ await new WorkflowTemplateDeployer().deleteWorkflowTemplates();
141
+ }
142
+ exports.deleteWorkflowTemplates = deleteWorkflowTemplates;
143
+ async function localDeployWorkflowTemplate(saveFileLocation) {
144
+ let wtDeclaration;
145
+ try {
146
+ wtDeclaration = loadTemplateConfig(saveFileLocation);
147
+ }
148
+ catch (e) {
149
+ console.log(`%s Workflow Deletion Failed. ${e}`, chalk_1.default.red.bold('FAIL'));
150
+ return;
151
+ }
152
+ await (0, login_1.authUser)();
153
+ await new LocalWorkflowTemplateDeployer().deployWorkflows(wtDeclaration);
154
+ }
155
+ exports.localDeployWorkflowTemplate = localDeployWorkflowTemplate;
156
+ function loadTemplateConfig(saveFile) {
157
+ const TARGET_DIR = process.cwd();
158
+ try {
159
+ const doc = yaml.load(fs_1.default.readFileSync(path.resolve(path.join(TARGET_DIR, saveFile)), 'utf8'));
160
+ console.log(doc);
161
+ return doc;
162
+ }
163
+ catch (e) {
164
+ throw new Error(`ERROR PARSING YAML: ${e}`);
165
+ }
166
+ }
@@ -0,0 +1 @@
1
+ export { run } from '@oclif/core';
package/dist/index.js ADDED
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.run = void 0;
4
+ var core_1 = require("@oclif/core");
5
+ Object.defineProperty(exports, "run", { enumerable: true, get: function () { return core_1.run; } });