@contrail/cli 2.1.20 → 2.1.22
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.
- package/README.md +311 -105
- package/dist/api/apps.js +15 -15
- package/dist/api/event-workflow-action-definition.d.ts +1 -1
- package/dist/api/event-workflow-action-definition.js +1 -1
- package/dist/api/event-workflow-template-definition.d.ts +4 -3
- package/dist/api/event-workflow-templates.d.ts +5 -4
- package/dist/api/event-workflow-templates.js +2 -2
- package/dist/api/types.d.ts +10 -10
- package/dist/api/users.js +4 -2
- package/dist/auth/login.js +12 -14
- package/dist/commands/app/create.d.ts +2 -2
- package/dist/commands/app/create.js +15 -10
- package/dist/commands/app/delete.d.ts +2 -2
- package/dist/commands/app/delete.js +4 -2
- package/dist/commands/app/getApiKey.d.ts +2 -2
- package/dist/commands/app/getApiKey.js +17 -11
- package/dist/commands/app/install.d.ts +2 -2
- package/dist/commands/app/install.js +42 -25
- package/dist/commands/app/publish.d.ts +2 -2
- package/dist/commands/app/publish.js +26 -11
- package/dist/commands/app/uninstall.d.ts +2 -2
- package/dist/commands/app/uninstall.js +20 -11
- package/dist/commands/app/upgrade.d.ts +2 -2
- package/dist/commands/app/upgrade.js +46 -23
- package/dist/commands/basecommand.d.ts +7 -0
- package/dist/commands/basecommand.js +29 -0
- package/dist/commands/colors/deleteAll.d.ts +2 -2
- package/dist/commands/colors/deleteAll.js +8 -5
- package/dist/commands/colors/load.d.ts +2 -2
- package/dist/commands/colors/load.js +10 -7
- package/dist/commands/config/list.d.ts +2 -2
- package/dist/commands/config/list.js +4 -2
- package/dist/commands/config/remove.d.ts +2 -2
- package/dist/commands/config/remove.js +4 -2
- package/dist/commands/config/set.d.ts +3 -2
- package/dist/commands/config/set.js +21 -7
- package/dist/commands/groups/export.d.ts +2 -2
- package/dist/commands/groups/export.js +20 -8
- package/dist/commands/groups/upload.d.ts +3 -3
- package/dist/commands/groups/upload.js +44 -32
- package/dist/commands/instance/export.d.ts +2 -2
- package/dist/commands/instance/export.js +15 -3
- package/dist/commands/instance/import.d.ts +2 -2
- package/dist/commands/instance/import.js +9 -2
- package/dist/commands/loader-process/load.d.ts +2 -2
- package/dist/commands/loader-process/load.js +13 -6
- package/dist/commands/loader-process/upload-and-load.d.ts +2 -2
- package/dist/commands/loader-process/upload-and-load.js +18 -7
- package/dist/commands/projects/export.d.ts +2 -2
- package/dist/commands/projects/export.js +4 -2
- package/dist/commands/projects/list.d.ts +2 -2
- package/dist/commands/projects/list.js +6 -4
- package/dist/commands/projects/load.d.ts +2 -2
- package/dist/commands/projects/load.js +16 -8
- package/dist/commands/types/exportOptionSetHierarchies.d.ts +2 -2
- package/dist/commands/types/exportOptionSetHierarchies.js +15 -12
- package/dist/commands/types/getAll.d.ts +2 -2
- package/dist/commands/types/getAll.js +107 -76
- package/dist/commands/types/loadAll.d.ts +2 -2
- package/dist/commands/types/loadAll.js +12 -4
- package/dist/commands/types/mergeOptionSets.d.ts +2 -2
- package/dist/commands/types/mergeOptionSets.js +13 -10
- package/dist/commands/types/mergeTypeProperties.d.ts +2 -2
- package/dist/commands/types/mergeTypeProperties.js +12 -9
- package/dist/commands/types/parseOptionSetsHierarchyLocalFile.d.ts +2 -2
- package/dist/commands/types/parseOptionSetsHierarchyLocalFile.js +19 -15
- package/dist/commands/types/parseOptionSetsHierarchyValuesToKeysLocalFile.d.ts +10 -0
- package/dist/commands/types/parseOptionSetsHierarchyValuesToKeysLocalFile.js +102 -0
- package/dist/commands/types/parseOptionSetsLocalFiles.d.ts +2 -2
- package/dist/commands/types/parseOptionSetsLocalFiles.js +21 -21
- package/dist/commands/types/parseOptionSetsToFolderStructure.d.ts +2 -2
- package/dist/commands/types/parseOptionSetsToFolderStructure.js +17 -18
- package/dist/commands/types/parseTypesFromFiles.d.ts +2 -2
- package/dist/commands/types/parseTypesFromFiles.js +14 -8
- package/dist/commands/types/parseTypesFromLocalFiles.d.ts +2 -2
- package/dist/commands/types/parseTypesFromLocalFiles.js +10 -7
- package/dist/commands/types/parseTypesFromTemplateAndDataFromLocalFiles.d.ts +2 -2
- package/dist/commands/types/parseTypesFromTemplateAndDataFromLocalFiles.js +11 -8
- package/dist/commands/types/parseTypesFromTemplateFromLocalFiles.d.ts +2 -2
- package/dist/commands/types/parseTypesFromTemplateFromLocalFiles.js +11 -8
- package/dist/commands/types/uploadOptionSetHierarchies.d.ts +2 -2
- package/dist/commands/types/uploadOptionSetHierarchies.js +44 -32
- package/dist/commands/types/uploadOptionSets.d.ts +2 -2
- package/dist/commands/types/uploadOptionSets.js +21 -13
- package/dist/commands/types/uploadOptionSetsHierarchyLocalFile.d.ts +2 -2
- package/dist/commands/types/uploadOptionSetsHierarchyLocalFile.js +26 -19
- package/dist/commands/types/uploadRuleSets.d.ts +2 -2
- package/dist/commands/types/uploadRuleSets.js +34 -26
- package/dist/commands/types/uploadTypePolicies.d.ts +2 -2
- package/dist/commands/types/uploadTypePolicies.js +37 -29
- package/dist/commands/types/uploadTypePropertyPolicies.d.ts +2 -2
- package/dist/commands/types/uploadTypePropertyPolicies.js +38 -30
- package/dist/commands/types/uploadTypes.d.ts +2 -2
- package/dist/commands/types/uploadTypes.js +10 -4
- package/dist/commands/types/uploadUsageInfo.d.ts +2 -2
- package/dist/commands/types/uploadUsageInfo.js +32 -24
- package/dist/commands/users/export.d.ts +2 -2
- package/dist/commands/users/export.js +15 -4
- package/dist/commands/users/upload.d.ts +2 -2
- package/dist/commands/users/upload.js +6 -4
- package/dist/commands/webhooks/create.d.ts +2 -2
- package/dist/commands/webhooks/create.js +8 -6
- package/dist/commands/webhooks/delete.d.ts +2 -2
- package/dist/commands/webhooks/delete.js +8 -5
- package/dist/commands/webhooks/getWebhookTrigger.d.ts +2 -2
- package/dist/commands/webhooks/getWebhookTrigger.js +10 -9
- package/dist/commands/webhooks/list.d.ts +2 -2
- package/dist/commands/webhooks/list.js +8 -6
- package/dist/commands/workflow-template-definitions/install.d.ts +2 -2
- package/dist/commands/workflow-template-definitions/install.js +4 -2
- package/dist/commands/workflow-template-definitions/list.d.ts +2 -2
- package/dist/commands/workflow-template-definitions/list.js +4 -2
- package/dist/commands/workflow-templates/delete.d.ts +2 -2
- package/dist/commands/workflow-templates/delete.js +4 -2
- package/dist/commands/workflow-templates/export.d.ts +2 -2
- package/dist/commands/workflow-templates/export.js +19 -17
- package/dist/commands/workflow-templates/list.d.ts +2 -2
- package/dist/commands/workflow-templates/list.js +4 -2
- package/dist/commands/workflow-templates/load.d.ts +2 -2
- package/dist/commands/workflow-templates/load.js +8 -3
- package/dist/common.d.ts +4 -1
- package/dist/common.js +10 -1
- package/dist/helpers/app/actions-deployer.d.ts +2 -2
- package/dist/helpers/app/actions-deployer.js +12 -7
- package/dist/helpers/app/app-deployer.d.ts +1 -1
- package/dist/helpers/app/app-deployer.js +70 -52
- package/dist/helpers/app/app-template-parsers.js +3 -1
- package/dist/helpers/app/load-app-config.d.ts +2 -1
- package/dist/helpers/app/load-app-config.js +2 -2
- package/dist/helpers/app/setup-template.js +4 -3
- package/dist/helpers/colors/helpers.d.ts +10 -2
- package/dist/helpers/colors/helpers.js +11 -10
- package/dist/helpers/config/config.js +15 -10
- package/dist/helpers/file-helpers.js +7 -4
- package/dist/helpers/loader-process/helpers.js +14 -13
- package/dist/helpers/projects/helpers.d.ts +2 -1
- package/dist/helpers/projects/helpers.js +16 -15
- package/dist/helpers/types/csv-parser.js +17 -14
- package/dist/helpers/types/type-extractor.d.ts +1 -1
- package/dist/helpers/types/type-extractor.js +3 -2
- package/dist/helpers/types/type-parser.js +22 -21
- package/dist/helpers/types/type-uploader.js +19 -15
- package/dist/helpers/workflow-template-definitions/workflow-template-definition-deployer.d.ts +1 -1
- package/dist/helpers/workflow-template-definitions/workflow-template-definition-deployer.js +47 -28
- package/dist/helpers/workflow-templates/helper.d.ts +3 -3
- package/dist/helpers/workflow-templates/helper.js +33 -23
- package/dist/interface-converters.spec.js +15 -15
- package/dist/interfaces.d.ts +6 -0
- package/dist/logger.d.ts +3 -0
- package/dist/logger.js +32 -0
- package/dist/templates/typescript/src/actions/logItem.ts +9 -4
- package/dist/templates/typescript/src/main.ts +13 -8
- package/oclif.manifest.json +861 -31
- package/package.json +10 -7
|
@@ -5,14 +5,17 @@ const tslib_1 = require("tslib");
|
|
|
5
5
|
const path = tslib_1.__importStar(require("path"));
|
|
6
6
|
const fs_1 = tslib_1.__importDefault(require("fs"));
|
|
7
7
|
const chalk_1 = tslib_1.__importDefault(require("chalk"));
|
|
8
|
-
const
|
|
8
|
+
const csvtojson_1 = tslib_1.__importDefault(require("csvtojson"));
|
|
9
9
|
const sdk_1 = require("@contrail/sdk");
|
|
10
10
|
const util_1 = require("@contrail/util");
|
|
11
11
|
const login_1 = require("../../auth/login");
|
|
12
12
|
const core_1 = require("@oclif/core");
|
|
13
|
-
|
|
13
|
+
const basecommand_1 = require("../basecommand");
|
|
14
|
+
const logger_1 = tslib_1.__importDefault(require("../../logger"));
|
|
15
|
+
class ParseOptionSetsHierarchyLocalFile extends basecommand_1.BaseCommand {
|
|
14
16
|
async run() {
|
|
15
|
-
const { args } = await this.parse(ParseOptionSetsHierarchyLocalFile);
|
|
17
|
+
const { args, flags } = await this.parse(ParseOptionSetsHierarchyLocalFile);
|
|
18
|
+
await super.setLogLevel(flags.logLevel);
|
|
16
19
|
await parseOptionSetsHierarchyLocalFile(args.file);
|
|
17
20
|
}
|
|
18
21
|
}
|
|
@@ -28,24 +31,24 @@ ParseOptionSetsHierarchyLocalFile.args = {
|
|
|
28
31
|
async function parseOptionSetsHierarchyLocalFile(fileLocation) {
|
|
29
32
|
try {
|
|
30
33
|
await (0, login_1.authUser)();
|
|
31
|
-
|
|
32
|
-
|
|
34
|
+
logger_1.default.info('%s Importing local file', chalk_1.default.yellow.bold('OPTION SET HIERARCHY PARSE'));
|
|
35
|
+
logger_1.default.info('Using File: ', fileLocation);
|
|
33
36
|
await parseAndSaveOptionSetHierarchiesLocalFile(fileLocation);
|
|
34
|
-
|
|
37
|
+
logger_1.default.info('%s Parsed', chalk_1.default.yellow.bold('OPTION SET HIERARCHY PARSE'));
|
|
35
38
|
}
|
|
36
39
|
catch (e) {
|
|
37
|
-
|
|
40
|
+
logger_1.default.info(`%s PARSE Failed. ${e}`, chalk_1.default.red.bold('FAIL'));
|
|
38
41
|
return;
|
|
39
42
|
}
|
|
40
|
-
|
|
43
|
+
logger_1.default.info('%s PARSE Complete.', chalk_1.default.green.bold('COMPLETE'));
|
|
41
44
|
}
|
|
42
45
|
exports.parseOptionSetsHierarchyLocalFile = parseOptionSetsHierarchyLocalFile;
|
|
43
46
|
async function loadOptionSetHierarchyCSV(fileLocation) {
|
|
44
47
|
const TARGET_DIR = process.cwd();
|
|
45
48
|
try {
|
|
46
49
|
const fullPath = path.resolve(path.join(TARGET_DIR, fileLocation));
|
|
47
|
-
|
|
48
|
-
return await
|
|
50
|
+
logger_1.default.info('Getting file from path: ', fullPath);
|
|
51
|
+
return await (0, csvtojson_1.default)().fromFile(fullPath);
|
|
49
52
|
}
|
|
50
53
|
catch (e) {
|
|
51
54
|
throw new Error(`ERROR PARSING CSV: ${e}`);
|
|
@@ -57,7 +60,7 @@ async function parseOptionSetHierarchiesLocalFile(fileLocation) {
|
|
|
57
60
|
hierarchy: [],
|
|
58
61
|
maxDepth: 0,
|
|
59
62
|
name: 'No Name',
|
|
60
|
-
options: []
|
|
63
|
+
options: [],
|
|
61
64
|
};
|
|
62
65
|
if (!((uploadedOptionHierarchyData === null || uploadedOptionHierarchyData === void 0 ? void 0 : uploadedOptionHierarchyData.length) > 0)) {
|
|
63
66
|
return optionSetHierarchy;
|
|
@@ -68,7 +71,8 @@ async function parseOptionSetHierarchiesLocalFile(fileLocation) {
|
|
|
68
71
|
});
|
|
69
72
|
const currentOptionSetsByName = {};
|
|
70
73
|
for (const currentOptionSet of currentOptionSets) {
|
|
71
|
-
currentOptionSetsByName[util_1.StringUtil.convertToCamelCase(currentOptionSet.name)] =
|
|
74
|
+
currentOptionSetsByName[util_1.StringUtil.convertToCamelCase(currentOptionSet.name)] =
|
|
75
|
+
currentOptionSet;
|
|
72
76
|
}
|
|
73
77
|
const optionSetIds = [];
|
|
74
78
|
for (const key of keysInOrder) {
|
|
@@ -93,15 +97,15 @@ async function parseAndSaveOptionSetHierarchiesLocalFile(fileLocation) {
|
|
|
93
97
|
function addRowToOptions(optionSetHierarchy, keysInOrder, row) {
|
|
94
98
|
let options = optionSetHierarchy.options;
|
|
95
99
|
for (let i = 0; i < keysInOrder.length; i++) {
|
|
96
|
-
const optionValues = options.map(op => op.value);
|
|
100
|
+
const optionValues = options.map((op) => op.value);
|
|
97
101
|
const value = row[keysInOrder[i]];
|
|
98
102
|
if (!optionValues.includes(value)) {
|
|
99
|
-
const obj = i ===
|
|
103
|
+
const obj = i === keysInOrder.length - 1 ? { value: value } : { value: value, options: [] };
|
|
100
104
|
options.push(obj);
|
|
101
105
|
options = obj.options;
|
|
102
106
|
}
|
|
103
107
|
else {
|
|
104
|
-
const optionObj = options.find(op => op.value === value);
|
|
108
|
+
const optionObj = options.find((op) => op.value === value);
|
|
105
109
|
options = optionObj.options;
|
|
106
110
|
}
|
|
107
111
|
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { BaseCommand } from '../basecommand';
|
|
2
|
+
export default class ParseOptionSetsHierarchyValuesToKeysLocalFile extends BaseCommand {
|
|
3
|
+
static description: string;
|
|
4
|
+
static examples: string[];
|
|
5
|
+
static args: {
|
|
6
|
+
file: import("@oclif/core/lib/interfaces/parser").Arg<string, Record<string, unknown>>;
|
|
7
|
+
};
|
|
8
|
+
run(): Promise<void>;
|
|
9
|
+
}
|
|
10
|
+
export declare function parseOptionSetsHierarchyValuesToKeysLocalFile(fileLocation: any): Promise<void>;
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.parseOptionSetsHierarchyValuesToKeysLocalFile = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const path = tslib_1.__importStar(require("path"));
|
|
6
|
+
const fs_1 = tslib_1.__importDefault(require("fs"));
|
|
7
|
+
const chalk_1 = tslib_1.__importDefault(require("chalk"));
|
|
8
|
+
const csvtojson_1 = tslib_1.__importDefault(require("csvtojson"));
|
|
9
|
+
const sdk_1 = require("@contrail/sdk");
|
|
10
|
+
const login_1 = require("../../auth/login");
|
|
11
|
+
const core_1 = require("@oclif/core");
|
|
12
|
+
const basecommand_1 = require("../basecommand");
|
|
13
|
+
const logger_1 = tslib_1.__importDefault(require("../../logger"));
|
|
14
|
+
const json2csv_1 = require("json2csv");
|
|
15
|
+
const util_1 = require("@contrail/util");
|
|
16
|
+
class ParseOptionSetsHierarchyValuesToKeysLocalFile extends basecommand_1.BaseCommand {
|
|
17
|
+
async run() {
|
|
18
|
+
const { args, flags } = await this.parse(ParseOptionSetsHierarchyValuesToKeysLocalFile);
|
|
19
|
+
await super.setLogLevel(flags.logLevel);
|
|
20
|
+
await parseOptionSetsHierarchyValuesToKeysLocalFile(args.file);
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
exports.default = ParseOptionSetsHierarchyValuesToKeysLocalFile;
|
|
24
|
+
ParseOptionSetsHierarchyValuesToKeysLocalFile.description = 'Parse CSV file into OptionSetHierarchy';
|
|
25
|
+
ParseOptionSetsHierarchyValuesToKeysLocalFile.examples = [
|
|
26
|
+
`$ contrail types parseOptionSetsHierarchyValuesToKeysLocalFile <File Paths>
|
|
27
|
+
`,
|
|
28
|
+
];
|
|
29
|
+
ParseOptionSetsHierarchyValuesToKeysLocalFile.args = {
|
|
30
|
+
file: core_1.Args.string({ description: 'File to parse', required: true }),
|
|
31
|
+
};
|
|
32
|
+
async function parseOptionSetsHierarchyValuesToKeysLocalFile(fileLocation) {
|
|
33
|
+
try {
|
|
34
|
+
await (0, login_1.authUser)();
|
|
35
|
+
logger_1.default.info('%s Importing local file', chalk_1.default.yellow.bold('OPTION SET HIERARCHY PARSE'));
|
|
36
|
+
logger_1.default.info('Using File: ', fileLocation);
|
|
37
|
+
const { keysInOrder, uploadedOptionHierarchyData } = await parseOptionSetHierarchiesLocalFile(fileLocation);
|
|
38
|
+
const parser = new json2csv_1.Parser(keysInOrder);
|
|
39
|
+
const csv = parser.parse(uploadedOptionHierarchyData);
|
|
40
|
+
saveData(csv);
|
|
41
|
+
logger_1.default.info('%s Parsed', chalk_1.default.yellow.bold('OPTION SET HIERARCHY PARSE'));
|
|
42
|
+
}
|
|
43
|
+
catch (e) {
|
|
44
|
+
logger_1.default.info(`%s PARSE Failed. ${e}`, chalk_1.default.red.bold('FAIL'));
|
|
45
|
+
return;
|
|
46
|
+
}
|
|
47
|
+
logger_1.default.info('%s PARSE Complete.', chalk_1.default.green.bold('COMPLETE'));
|
|
48
|
+
}
|
|
49
|
+
exports.parseOptionSetsHierarchyValuesToKeysLocalFile = parseOptionSetsHierarchyValuesToKeysLocalFile;
|
|
50
|
+
async function loadOptionSetHierarchyCSV(fileLocation) {
|
|
51
|
+
const TARGET_DIR = process.cwd();
|
|
52
|
+
try {
|
|
53
|
+
const fullPath = path.resolve(path.join(TARGET_DIR, fileLocation));
|
|
54
|
+
logger_1.default.info('Getting file from path: ', fullPath);
|
|
55
|
+
return await (0, csvtojson_1.default)().fromFile(fullPath);
|
|
56
|
+
}
|
|
57
|
+
catch (e) {
|
|
58
|
+
throw new Error(`ERROR PARSING CSV: ${e}`);
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
async function parseOptionSetHierarchiesLocalFile(fileLocation) {
|
|
62
|
+
const uploadedOptionHierarchyData = await loadOptionSetHierarchyCSV(fileLocation);
|
|
63
|
+
if (!((uploadedOptionHierarchyData === null || uploadedOptionHierarchyData === void 0 ? void 0 : uploadedOptionHierarchyData.length) > 0)) {
|
|
64
|
+
return [];
|
|
65
|
+
}
|
|
66
|
+
const keysInOrder = Object.keys(uploadedOptionHierarchyData[0]);
|
|
67
|
+
const currentOptionSets = await new sdk_1.Entities().get({
|
|
68
|
+
entityName: 'type-property-option-set',
|
|
69
|
+
});
|
|
70
|
+
for (const currentOptionSet of currentOptionSets) {
|
|
71
|
+
currentOptionSet.name = util_1.StringUtil.convertToCamelCase(currentOptionSet.name);
|
|
72
|
+
}
|
|
73
|
+
const mapOptionSet = filterAndMapOptionSetData(currentOptionSets, keysInOrder);
|
|
74
|
+
for (const row of uploadedOptionHierarchyData) {
|
|
75
|
+
for (const key in row) {
|
|
76
|
+
const value = mapOptionSet[key][row[key]];
|
|
77
|
+
row[key] = value;
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
return { keysInOrder, uploadedOptionHierarchyData };
|
|
81
|
+
}
|
|
82
|
+
function filterAndMapOptionSetData(optionSets, headersMap) {
|
|
83
|
+
logger_1.default.debug(`Headers from CSV: ${headersMap}`);
|
|
84
|
+
logger_1.default.debug(`Option sets in system: ${optionSets.map((value) => value.name)}`);
|
|
85
|
+
const requiredOptionSets = optionSets.filter((x) => headersMap.includes(x.name));
|
|
86
|
+
if (requiredOptionSets.length !== headersMap.length) {
|
|
87
|
+
throw new Error('Headers from csv not matching with Option Set Hierachy names.');
|
|
88
|
+
}
|
|
89
|
+
const mapOptionSet = {};
|
|
90
|
+
requiredOptionSets.forEach((element) => {
|
|
91
|
+
const objOptionSet = {};
|
|
92
|
+
element.optionSet.forEach((data) => {
|
|
93
|
+
objOptionSet[data.display] = data.value;
|
|
94
|
+
});
|
|
95
|
+
mapOptionSet[element.name] = objOptionSet;
|
|
96
|
+
});
|
|
97
|
+
return mapOptionSet;
|
|
98
|
+
}
|
|
99
|
+
function saveData(data) {
|
|
100
|
+
const CURRENT_DIR = process.cwd();
|
|
101
|
+
fs_1.default.writeFileSync(path.resolve(path.join(CURRENT_DIR, 'parsed_local_optionSetHierarchyValuesToKeys.csv')), data, 'utf8');
|
|
102
|
+
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
export default class ParseOptionSetsLocalFiles extends
|
|
1
|
+
import { BaseCommand } from '../basecommand';
|
|
2
|
+
export default class ParseOptionSetsLocalFiles extends BaseCommand {
|
|
3
3
|
static description: string;
|
|
4
4
|
static examples: string[];
|
|
5
5
|
static flags: {
|
|
@@ -7,12 +7,16 @@ const fs_1 = tslib_1.__importDefault(require("fs"));
|
|
|
7
7
|
const types_1 = require("@contrail/types");
|
|
8
8
|
const util_1 = require("@contrail/util");
|
|
9
9
|
const chalk_1 = tslib_1.__importDefault(require("chalk"));
|
|
10
|
-
const
|
|
11
|
-
const
|
|
10
|
+
const csvtojson_1 = tslib_1.__importDefault(require("csvtojson"));
|
|
11
|
+
const js_yaml_1 = tslib_1.__importDefault(require("js-yaml"));
|
|
12
12
|
const core_1 = require("@oclif/core");
|
|
13
|
-
|
|
13
|
+
const basecommand_1 = require("../basecommand");
|
|
14
|
+
const logger_1 = tslib_1.__importDefault(require("../../logger"));
|
|
15
|
+
const common_1 = require("../../common");
|
|
16
|
+
class ParseOptionSetsLocalFiles extends basecommand_1.BaseCommand {
|
|
14
17
|
async run() {
|
|
15
18
|
const { args, flags } = await this.parse(ParseOptionSetsLocalFiles);
|
|
19
|
+
await super.setLogLevel(flags.logLevel);
|
|
16
20
|
try {
|
|
17
21
|
this.log('%s Importing local file', chalk_1.default.yellow.bold('OPTION SET PARSE'));
|
|
18
22
|
this.log('Using File: ', args.file);
|
|
@@ -33,7 +37,7 @@ ParseOptionSetsLocalFiles.examples = [
|
|
|
33
37
|
`,
|
|
34
38
|
];
|
|
35
39
|
ParseOptionSetsLocalFiles.flags = {
|
|
36
|
-
csvStyle: core_1.Flags.string({ options: ['NameAndLabel', 'LabelsInColumn'], required: true })
|
|
40
|
+
csvStyle: core_1.Flags.string({ options: ['NameAndLabel', 'LabelsInColumn'], required: true }),
|
|
37
41
|
};
|
|
38
42
|
ParseOptionSetsLocalFiles.args = {
|
|
39
43
|
file: core_1.Args.string({ description: 'File to parse', required: true }),
|
|
@@ -43,25 +47,25 @@ async function ParseOptionSetsToFolderStructure(args) {
|
|
|
43
47
|
if ((args === null || args === void 0 ? void 0 : args.length) < 4) {
|
|
44
48
|
throw new Error('File name must be included.');
|
|
45
49
|
}
|
|
46
|
-
|
|
50
|
+
logger_1.default.info('%s Importing local file', chalk_1.default.yellow.bold('OPTION SET PARSE'));
|
|
47
51
|
const fileLocation = args.file;
|
|
48
|
-
|
|
52
|
+
logger_1.default.info('Using File: ', fileLocation);
|
|
49
53
|
await parseOptionSetsToFolderStructure(fileLocation);
|
|
50
|
-
|
|
54
|
+
logger_1.default.info('%s Parsed', chalk_1.default.yellow.bold('OPTION SET PARSE'));
|
|
51
55
|
}
|
|
52
56
|
catch (e) {
|
|
53
|
-
|
|
57
|
+
logger_1.default.info(`%s PARSE Failed. ${e}`, chalk_1.default.red.bold('FAIL'));
|
|
54
58
|
return;
|
|
55
59
|
}
|
|
56
|
-
|
|
60
|
+
logger_1.default.info('%s PARSE Complete.', chalk_1.default.green.bold('COMPLETE'));
|
|
57
61
|
}
|
|
58
62
|
exports.ParseOptionSetsToFolderStructure = ParseOptionSetsToFolderStructure;
|
|
59
63
|
async function loadOptionSetCSV(fileLocation) {
|
|
60
64
|
const TARGET_DIR = process.cwd();
|
|
61
65
|
try {
|
|
62
66
|
const fullPath = path.resolve(path.join(TARGET_DIR, fileLocation));
|
|
63
|
-
|
|
64
|
-
return await
|
|
67
|
+
logger_1.default.info('Getting file from path: ', fullPath);
|
|
68
|
+
return await (0, csvtojson_1.default)().fromFile(fullPath);
|
|
65
69
|
}
|
|
66
70
|
catch (e) {
|
|
67
71
|
throw new Error(`ERROR PARSING CSV: ${e}`);
|
|
@@ -71,8 +75,8 @@ function loadOptionSets(fileLocation) {
|
|
|
71
75
|
const TARGET_DIR = process.cwd();
|
|
72
76
|
try {
|
|
73
77
|
const fullPath = path.resolve(path.join(TARGET_DIR, fileLocation));
|
|
74
|
-
|
|
75
|
-
const doc =
|
|
78
|
+
logger_1.default.info('Getting file from path: ', fullPath);
|
|
79
|
+
const doc = js_yaml_1.default.load(fs_1.default.readFileSync(fullPath, 'utf8'));
|
|
76
80
|
return doc;
|
|
77
81
|
}
|
|
78
82
|
catch (e) {
|
|
@@ -95,7 +99,7 @@ async function parseOptionSetsToFolderStructure(fileLocation) {
|
|
|
95
99
|
saveDataInFolders(uploadedOptionData);
|
|
96
100
|
}
|
|
97
101
|
function saveData(data) {
|
|
98
|
-
const yamlStr =
|
|
102
|
+
const yamlStr = js_yaml_1.default.dump(data);
|
|
99
103
|
const CURRENT_DIR = process.cwd();
|
|
100
104
|
fs_1.default.writeFileSync(path.resolve(path.join(CURRENT_DIR, 'parsed_local_optionSets.yml')), yamlStr, 'utf8');
|
|
101
105
|
}
|
|
@@ -108,18 +112,14 @@ function saveDataInFolders(data) {
|
|
|
108
112
|
fs_1.default.mkdirSync(subDir, { recursive: true });
|
|
109
113
|
}
|
|
110
114
|
for (const item of data) {
|
|
111
|
-
const yamlStr =
|
|
115
|
+
const yamlStr = js_yaml_1.default.dump(item);
|
|
112
116
|
const fileLabel = item[folder.fileLabel];
|
|
113
117
|
if (!fileLabel) {
|
|
114
|
-
|
|
118
|
+
logger_1.default.warn('skipping bad data:', item);
|
|
115
119
|
}
|
|
116
|
-
fs_1.default.writeFileSync(path.join(subDir, `${removeSlash(fileLabel)}.yml`), yamlStr, 'utf8');
|
|
120
|
+
fs_1.default.writeFileSync(path.join(subDir, `${(0, common_1.removeSlash)(fileLabel)}.yml`), yamlStr, 'utf8');
|
|
117
121
|
}
|
|
118
122
|
}
|
|
119
|
-
function removeSlash(string) {
|
|
120
|
-
const re = /\//gi;
|
|
121
|
-
return string.replace(re, '-');
|
|
122
|
-
}
|
|
123
123
|
function parseLabelsInColumn(uploadedOptionData) {
|
|
124
124
|
const optionSets = [];
|
|
125
125
|
const optionSetNames = Object.keys(uploadedOptionData[0]);
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
export default class ParseOptionSetsToFolderStructure extends
|
|
1
|
+
import { BaseCommand } from '../basecommand';
|
|
2
|
+
export default class ParseOptionSetsToFolderStructure extends BaseCommand {
|
|
3
3
|
static description: string;
|
|
4
4
|
static examples: string[];
|
|
5
5
|
static args: {
|
|
@@ -6,23 +6,26 @@ const path = tslib_1.__importStar(require("path"));
|
|
|
6
6
|
const fs_1 = tslib_1.__importDefault(require("fs"));
|
|
7
7
|
const util_1 = require("@contrail/util");
|
|
8
8
|
const chalk_1 = tslib_1.__importDefault(require("chalk"));
|
|
9
|
-
const
|
|
10
|
-
const yaml = require('js-yaml');
|
|
9
|
+
const js_yaml_1 = tslib_1.__importDefault(require("js-yaml"));
|
|
11
10
|
const core_1 = require("@oclif/core");
|
|
12
|
-
|
|
11
|
+
const basecommand_1 = require("../basecommand");
|
|
12
|
+
const logger_1 = tslib_1.__importDefault(require("../../logger"));
|
|
13
|
+
const common_1 = require("../../common");
|
|
14
|
+
class ParseOptionSetsToFolderStructure extends basecommand_1.BaseCommand {
|
|
13
15
|
async run() {
|
|
14
|
-
const { args } = await this.parse(ParseOptionSetsToFolderStructure);
|
|
16
|
+
const { args, flags } = await this.parse(ParseOptionSetsToFolderStructure);
|
|
17
|
+
await super.setLogLevel(flags.logLevel);
|
|
15
18
|
try {
|
|
16
|
-
|
|
17
|
-
|
|
19
|
+
logger_1.default.info('%s Importing local file', chalk_1.default.yellow.bold('OPTION SET PARSE'));
|
|
20
|
+
logger_1.default.info('Using File: ', args.file);
|
|
18
21
|
await parseOptionSetsToFolderStructure(args.file);
|
|
19
|
-
|
|
22
|
+
logger_1.default.info('%s Parsed', chalk_1.default.yellow.bold('OPTION SET PARSE'));
|
|
20
23
|
}
|
|
21
24
|
catch (e) {
|
|
22
|
-
|
|
25
|
+
logger_1.default.info(`%s PARSE Failed. ${e}`, chalk_1.default.red.bold('FAIL'));
|
|
23
26
|
return;
|
|
24
27
|
}
|
|
25
|
-
|
|
28
|
+
logger_1.default.info('%s PARSE Complete.', chalk_1.default.green.bold('COMPLETE'));
|
|
26
29
|
}
|
|
27
30
|
}
|
|
28
31
|
exports.default = ParseOptionSetsToFolderStructure;
|
|
@@ -38,8 +41,8 @@ function loadOptionSets(fileLocation) {
|
|
|
38
41
|
const TARGET_DIR = process.cwd();
|
|
39
42
|
try {
|
|
40
43
|
const fullPath = path.resolve(path.join(TARGET_DIR, fileLocation));
|
|
41
|
-
|
|
42
|
-
const doc =
|
|
44
|
+
logger_1.default.info('Getting file from path: ', fullPath);
|
|
45
|
+
const doc = js_yaml_1.default.load(fs_1.default.readFileSync(fullPath, 'utf8'));
|
|
43
46
|
return doc;
|
|
44
47
|
}
|
|
45
48
|
catch (e) {
|
|
@@ -59,18 +62,14 @@ function saveDataInFolders(data) {
|
|
|
59
62
|
fs_1.default.mkdirSync(subDir, { recursive: true });
|
|
60
63
|
}
|
|
61
64
|
for (const item of data) {
|
|
62
|
-
const yamlStr =
|
|
65
|
+
const yamlStr = js_yaml_1.default.dump(item);
|
|
63
66
|
const fileLabel = item[folder.fileLabel];
|
|
64
67
|
if (!fileLabel) {
|
|
65
|
-
|
|
68
|
+
logger_1.default.warn('skipping bad data:', item);
|
|
66
69
|
}
|
|
67
|
-
fs_1.default.writeFileSync(path.join(subDir, `${removeSlash(fileLabel)}.yml`), yamlStr, 'utf8');
|
|
70
|
+
fs_1.default.writeFileSync(path.join(subDir, `${(0, common_1.removeSlash)(fileLabel)}.yml`), yamlStr, 'utf8');
|
|
68
71
|
}
|
|
69
72
|
}
|
|
70
|
-
function removeSlash(string) {
|
|
71
|
-
const re = /\//gi;
|
|
72
|
-
return string.replace(re, '-');
|
|
73
|
-
}
|
|
74
73
|
function parseLabelsInColumn(uploadedOptionData) {
|
|
75
74
|
const optionSets = [];
|
|
76
75
|
const optionSetNames = Object.keys(uploadedOptionData[0]);
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
export default class ParseTypesFromFiles extends
|
|
1
|
+
import { BaseCommand } from '../basecommand';
|
|
2
|
+
export default class ParseTypesFromFiles extends BaseCommand {
|
|
3
3
|
static description: string;
|
|
4
4
|
static examples: string[];
|
|
5
5
|
static strict: boolean;
|
|
@@ -4,21 +4,24 @@ const tslib_1 = require("tslib");
|
|
|
4
4
|
const core_1 = require("@oclif/core");
|
|
5
5
|
const chalk_1 = tslib_1.__importDefault(require("chalk"));
|
|
6
6
|
const type_parser_1 = require("../../helpers/types/type-parser");
|
|
7
|
-
|
|
7
|
+
const basecommand_1 = require("../basecommand");
|
|
8
|
+
const logger_1 = tslib_1.__importDefault(require("../../logger"));
|
|
9
|
+
class ParseTypesFromFiles extends basecommand_1.BaseCommand {
|
|
8
10
|
async run() {
|
|
9
|
-
const { argv } = await this.parse(ParseTypesFromFiles);
|
|
11
|
+
const { argv, flags } = await this.parse(ParseTypesFromFiles);
|
|
12
|
+
await super.setLogLevel(flags.logLevel);
|
|
10
13
|
try {
|
|
11
|
-
|
|
14
|
+
logger_1.default.info('%s Parsing', chalk_1.default.yellow.bold('TYPES AND OPTION SETS'));
|
|
12
15
|
const fileIds = argv;
|
|
13
|
-
|
|
16
|
+
logger_1.default.info('Using FileId(s): ', fileIds);
|
|
14
17
|
await (0, type_parser_1.parseTypesFromFiles)(fileIds);
|
|
15
|
-
|
|
18
|
+
logger_1.default.info('%s Parsed', chalk_1.default.yellow.bold('TYPES AND OPTION SETS'));
|
|
16
19
|
}
|
|
17
20
|
catch (e) {
|
|
18
|
-
|
|
21
|
+
logger_1.default.info(`%s Parsing Failed. ${e}`, chalk_1.default.red.bold('FAIL'));
|
|
19
22
|
return;
|
|
20
23
|
}
|
|
21
|
-
|
|
24
|
+
logger_1.default.info('%s Parsing Complete.', chalk_1.default.green.bold('COMPLETE'));
|
|
22
25
|
}
|
|
23
26
|
}
|
|
24
27
|
exports.default = ParseTypesFromFiles;
|
|
@@ -30,5 +33,8 @@ ParseTypesFromFiles.examples = [
|
|
|
30
33
|
// variable argument length
|
|
31
34
|
ParseTypesFromFiles.strict = false;
|
|
32
35
|
ParseTypesFromFiles.args = {
|
|
33
|
-
typePaths: core_1.Args.string({
|
|
36
|
+
typePaths: core_1.Args.string({
|
|
37
|
+
description: 'A list of the VibeIQ file IDs to parse',
|
|
38
|
+
required: true,
|
|
39
|
+
}),
|
|
34
40
|
};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
export default class ParseTypesFromLocalFiles extends
|
|
1
|
+
import { BaseCommand } from '../basecommand';
|
|
2
|
+
export default class ParseTypesFromLocalFiles extends BaseCommand {
|
|
3
3
|
static description: string;
|
|
4
4
|
static examples: string[];
|
|
5
5
|
static strict: boolean;
|
|
@@ -4,21 +4,24 @@ const tslib_1 = require("tslib");
|
|
|
4
4
|
const chalk_1 = tslib_1.__importDefault(require("chalk"));
|
|
5
5
|
const core_1 = require("@oclif/core");
|
|
6
6
|
const type_parser_1 = require("../../helpers/types/type-parser");
|
|
7
|
-
|
|
7
|
+
const basecommand_1 = require("../basecommand");
|
|
8
|
+
const logger_1 = tslib_1.__importDefault(require("../../logger"));
|
|
9
|
+
class ParseTypesFromLocalFiles extends basecommand_1.BaseCommand {
|
|
8
10
|
async run() {
|
|
9
|
-
const { argv } = await this.parse(ParseTypesFromLocalFiles);
|
|
11
|
+
const { argv, flags } = await this.parse(ParseTypesFromLocalFiles);
|
|
12
|
+
await super.setLogLevel(flags.logLevel);
|
|
10
13
|
try {
|
|
11
|
-
|
|
14
|
+
logger_1.default.info('%s Parsing', chalk_1.default.yellow.bold('TYPES AND OPTION SETS'));
|
|
12
15
|
const fileLocations = argv;
|
|
13
|
-
|
|
16
|
+
logger_1.default.info('Using File Location(s): ', fileLocations);
|
|
14
17
|
await (0, type_parser_1.parseTypesFromLocalFiles)(fileLocations);
|
|
15
|
-
|
|
18
|
+
logger_1.default.info('%s Parsed', chalk_1.default.yellow.bold('TYPES AND OPTION SETS'));
|
|
16
19
|
}
|
|
17
20
|
catch (e) {
|
|
18
|
-
|
|
21
|
+
logger_1.default.info(`%s Parsing Failed. ${e}`, chalk_1.default.red.bold('FAIL'));
|
|
19
22
|
return;
|
|
20
23
|
}
|
|
21
|
-
|
|
24
|
+
logger_1.default.info('%s Parsing Complete.', chalk_1.default.green.bold('COMPLETE'));
|
|
22
25
|
}
|
|
23
26
|
}
|
|
24
27
|
exports.default = ParseTypesFromLocalFiles;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
export default class ParseTypesFromTemplateAndDataFromLocalFiles extends
|
|
1
|
+
import { BaseCommand } from '../basecommand';
|
|
2
|
+
export default class ParseTypesFromTemplateAndDataFromLocalFiles extends BaseCommand {
|
|
3
3
|
static description: string;
|
|
4
4
|
static examples: string[];
|
|
5
5
|
static strict: boolean;
|
|
@@ -4,23 +4,26 @@ const tslib_1 = require("tslib");
|
|
|
4
4
|
const chalk_1 = tslib_1.__importDefault(require("chalk"));
|
|
5
5
|
const core_1 = require("@oclif/core");
|
|
6
6
|
const type_parser_1 = require("../../helpers/types/type-parser");
|
|
7
|
-
|
|
7
|
+
const basecommand_1 = require("../basecommand");
|
|
8
|
+
const logger_1 = tslib_1.__importDefault(require("../../logger"));
|
|
9
|
+
class ParseTypesFromTemplateAndDataFromLocalFiles extends basecommand_1.BaseCommand {
|
|
8
10
|
async run() {
|
|
9
|
-
const { args, argv } = await this.parse(ParseTypesFromTemplateAndDataFromLocalFiles);
|
|
11
|
+
const { args, argv, flags } = await this.parse(ParseTypesFromTemplateAndDataFromLocalFiles);
|
|
12
|
+
await super.setLogLevel(flags.logLevel);
|
|
10
13
|
try {
|
|
11
|
-
|
|
14
|
+
logger_1.default.info('%s Parsing', chalk_1.default.yellow.bold('TYPES AND OPTION SETS'));
|
|
12
15
|
const templateFileLocation = args.templateFile;
|
|
13
16
|
const dataFileLocations = argv.slice(1);
|
|
14
|
-
|
|
15
|
-
|
|
17
|
+
logger_1.default.info('Using Template File Location: ', templateFileLocation);
|
|
18
|
+
logger_1.default.info('Using Data File Location: ', dataFileLocations);
|
|
16
19
|
await (0, type_parser_1.parseTypesFromTemplateAndDataFromLocalFiles)(templateFileLocation, dataFileLocations);
|
|
17
|
-
|
|
20
|
+
logger_1.default.info('%s Parsed', chalk_1.default.yellow.bold('TYPES AND OPTION SETS'));
|
|
18
21
|
}
|
|
19
22
|
catch (e) {
|
|
20
|
-
|
|
23
|
+
logger_1.default.info(`%s Parsing Failed. ${e}`, chalk_1.default.red.bold('FAIL'));
|
|
21
24
|
return;
|
|
22
25
|
}
|
|
23
|
-
|
|
26
|
+
logger_1.default.info('%s Parsing Complete.', chalk_1.default.green.bold('COMPLETE'));
|
|
24
27
|
}
|
|
25
28
|
}
|
|
26
29
|
exports.default = ParseTypesFromTemplateAndDataFromLocalFiles;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
export default class ParseTypesFromTemplateFromLocalFiles extends
|
|
1
|
+
import { BaseCommand } from '../basecommand';
|
|
2
|
+
export default class ParseTypesFromTemplateFromLocalFiles extends BaseCommand {
|
|
3
3
|
static description: string;
|
|
4
4
|
static examples: string[];
|
|
5
5
|
static args: {
|
|
@@ -4,23 +4,26 @@ const tslib_1 = require("tslib");
|
|
|
4
4
|
const chalk_1 = tslib_1.__importDefault(require("chalk"));
|
|
5
5
|
const core_1 = require("@oclif/core");
|
|
6
6
|
const type_parser_1 = require("../../helpers/types/type-parser");
|
|
7
|
-
|
|
7
|
+
const basecommand_1 = require("../basecommand");
|
|
8
|
+
const logger_1 = tslib_1.__importDefault(require("../../logger"));
|
|
9
|
+
class ParseTypesFromTemplateFromLocalFiles extends basecommand_1.BaseCommand {
|
|
8
10
|
async run() {
|
|
9
|
-
const { args, } = await this.parse(ParseTypesFromTemplateFromLocalFiles);
|
|
11
|
+
const { args, flags } = await this.parse(ParseTypesFromTemplateFromLocalFiles);
|
|
12
|
+
await super.setLogLevel(flags.logLevel);
|
|
10
13
|
try {
|
|
11
|
-
|
|
14
|
+
logger_1.default.info('%s Parsing', chalk_1.default.yellow.bold('TYPES AND OPTION SETS'));
|
|
12
15
|
const templateFileLocation = args.templateFile;
|
|
13
16
|
const dataFileLocation = args.filePath;
|
|
14
|
-
|
|
15
|
-
|
|
17
|
+
logger_1.default.info('Using Template File Location: ', templateFileLocation);
|
|
18
|
+
logger_1.default.info('Using Data File Location: ', dataFileLocation);
|
|
16
19
|
await (0, type_parser_1.parseTypesFromTemplateFromLocalFiles)(templateFileLocation, dataFileLocation);
|
|
17
|
-
|
|
20
|
+
logger_1.default.info('%s Parsed', chalk_1.default.yellow.bold('TYPES AND OPTION SETS'));
|
|
18
21
|
}
|
|
19
22
|
catch (e) {
|
|
20
|
-
|
|
23
|
+
logger_1.default.info(`%s Parsing Failed. ${e}`, chalk_1.default.red.bold('FAIL'));
|
|
21
24
|
return;
|
|
22
25
|
}
|
|
23
|
-
|
|
26
|
+
logger_1.default.info('%s Parsing Complete.', chalk_1.default.green.bold('COMPLETE'));
|
|
24
27
|
}
|
|
25
28
|
}
|
|
26
29
|
exports.default = ParseTypesFromTemplateFromLocalFiles;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
export default class UploadOptionSetHierarchies extends
|
|
1
|
+
import { BaseCommand } from '../basecommand';
|
|
2
|
+
export default class UploadOptionSetHierarchies extends BaseCommand {
|
|
3
3
|
static description: string;
|
|
4
4
|
static examples: string[];
|
|
5
5
|
static flags: {
|