@contrail/cli 1.0.71 → 2.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +1034 -5
- package/bin/dev +17 -0
- package/bin/dev.cmd +3 -0
- package/bin/run +5 -0
- package/bin/run.cmd +3 -0
- package/{lib → dist}/api/apps.d.ts +13 -13
- package/dist/api/apps.js +96 -0
- package/{lib → dist}/api/event-workflow-action-definition.d.ts +1 -1
- package/dist/api/event-workflow-action-definition.js +11 -0
- package/{lib → dist}/api/event-workflow-template-definition.d.ts +6 -6
- package/dist/api/event-workflow-template-definition.js +26 -0
- package/{lib → dist}/api/event-workflow-templates.d.ts +7 -7
- package/dist/api/event-workflow-templates.js +32 -0
- package/dist/api/types.d.ts +7 -0
- package/dist/api/types.js +52 -0
- package/{lib → dist}/auth/auth.d.ts +9 -9
- package/dist/auth/auth.js +6 -0
- package/{lib → dist}/auth/login.d.ts +2 -2
- package/{lib → dist}/auth/login.js +146 -141
- package/dist/commands/app/create.d.ts +6 -0
- package/dist/commands/app/create.js +15 -0
- package/dist/commands/app/delete.d.ts +7 -0
- package/dist/commands/app/delete.js +38 -0
- package/dist/commands/app/install.d.ts +11 -0
- package/dist/commands/app/install.js +117 -0
- package/dist/commands/app/publish.d.ts +7 -0
- package/dist/commands/app/publish.js +45 -0
- package/dist/commands/app/uninstall.d.ts +10 -0
- package/dist/commands/app/uninstall.js +58 -0
- package/dist/commands/app/upgrade.d.ts +11 -0
- package/dist/commands/app/upgrade.js +79 -0
- package/dist/commands/colors/deleteAll.d.ts +6 -0
- package/dist/commands/colors/deleteAll.js +30 -0
- package/dist/commands/colors/load.d.ts +6 -0
- package/dist/commands/colors/load.js +29 -0
- package/dist/commands/config/list.d.ts +6 -0
- package/dist/commands/config/list.js +15 -0
- package/dist/commands/config/remove.d.ts +14 -0
- package/dist/commands/config/remove.js +26 -0
- package/dist/commands/config/set.d.ts +13 -0
- package/dist/commands/config/set.js +29 -0
- package/dist/commands/loader-process/load.d.ts +9 -0
- package/dist/commands/loader-process/load.js +33 -0
- package/dist/commands/loader-process/upload-and-load.d.ts +10 -0
- package/dist/commands/loader-process/upload-and-load.js +35 -0
- package/dist/commands/projects/export.d.ts +10 -0
- package/dist/commands/projects/export.js +34 -0
- package/dist/commands/projects/list.d.ts +6 -0
- package/dist/commands/projects/list.js +34 -0
- package/dist/commands/projects/load.d.ts +9 -0
- package/{lib/projects/project-uploader.js → dist/commands/projects/load.js} +106 -105
- package/dist/commands/types/exportOptionSetHierarchies.d.ts +7 -0
- package/{lib/types/option-set-hierarchy-exporter.js → dist/commands/types/exportOptionSetHierarchies.js} +130 -113
- package/{lib/types/types-extractor.d.ts → dist/commands/types/getAll.d.ts} +29 -27
- package/{lib/types/types-extractor.js → dist/commands/types/getAll.js} +267 -318
- package/dist/commands/types/loadAll.d.ts +7 -0
- package/dist/commands/types/loadAll.js +41 -0
- package/dist/commands/types/mergeOptionSets.d.ts +9 -0
- package/{lib/types/option-set-merger.js → dist/commands/types/mergeOptionSets.js} +114 -105
- package/dist/commands/types/mergeTypeProperties.d.ts +11 -0
- package/dist/commands/types/mergeTypeProperties.js +89 -0
- package/dist/commands/types/parseOptionSetsHierarchyLocalFile.d.ts +10 -0
- package/dist/commands/types/parseOptionSetsHierarchyLocalFile.js +112 -0
- package/dist/commands/types/parseOptionSetsLocalFiles.d.ts +14 -0
- package/dist/commands/types/parseOptionSetsLocalFiles.js +153 -0
- package/dist/commands/types/parseOptionSetsToFolderStructure.d.ts +10 -0
- package/dist/commands/types/parseOptionSetsToFolderStructure.js +104 -0
- package/dist/commands/types/parseTypesFromFiles.d.ts +10 -0
- package/dist/commands/types/parseTypesFromFiles.js +34 -0
- package/dist/commands/types/parseTypesFromLocalFiles.d.ts +10 -0
- package/dist/commands/types/parseTypesFromLocalFiles.js +34 -0
- package/dist/commands/types/parseTypesFromTemplateAndDataFromLocalFiles.d.ts +11 -0
- package/dist/commands/types/parseTypesFromTemplateAndDataFromLocalFiles.js +36 -0
- package/dist/commands/types/parseTypesFromTemplateFromLocalFiles.d.ts +10 -0
- package/dist/commands/types/parseTypesFromTemplateFromLocalFiles.js +35 -0
- package/dist/commands/types/uploadOptionSetHierarchies.d.ts +7 -0
- package/{lib/types/option-set-hierarchy-uploader.js → dist/commands/types/uploadOptionSetHierarchies.js} +130 -113
- package/dist/commands/types/uploadOptionSets.d.ts +7 -0
- package/{lib/types/option-set-uploader.js → dist/commands/types/uploadOptionSets.js} +115 -98
- package/dist/commands/types/uploadOptionSetsHierarchyLocalFile.d.ts +11 -0
- package/{lib/types/option-set-hierarchy-parser.js → dist/commands/types/uploadOptionSetsHierarchyLocalFile.js} +128 -140
- package/dist/commands/types/uploadRuleSets.d.ts +7 -0
- package/{lib/types/rule-set-uploader.js → dist/commands/types/uploadRuleSets.js} +189 -172
- package/dist/commands/types/uploadTypePropertyPolicies.d.ts +7 -0
- package/{lib/types/type-property-policy-uploader.js → dist/commands/types/uploadTypePropertyPolicies.js} +195 -178
- package/dist/commands/types/uploadUsageInfo.d.ts +7 -0
- package/{lib/types/usage-info-uploader.js → dist/commands/types/uploadUsageInfo.js} +149 -132
- package/dist/commands/users/export.d.ts +9 -0
- package/dist/commands/users/export.js +60 -0
- package/dist/commands/users/upload.d.ts +9 -0
- package/dist/commands/users/upload.js +65 -0
- package/dist/commands/workflow-template-definitions/install.d.ts +6 -0
- package/dist/commands/workflow-template-definitions/install.js +17 -0
- package/dist/commands/workflow-template-definitions/list.d.ts +6 -0
- package/dist/commands/workflow-template-definitions/list.js +17 -0
- package/dist/commands/workflow-templates/delete.d.ts +6 -0
- package/dist/commands/workflow-templates/delete.js +17 -0
- package/dist/commands/workflow-templates/list.d.ts +6 -0
- package/dist/commands/workflow-templates/list.js +17 -0
- package/dist/commands/workflow-templates/load.d.ts +9 -0
- package/dist/commands/workflow-templates/load.js +21 -0
- package/{lib → dist}/common.d.ts +1 -1
- package/dist/common.js +9 -0
- package/{lib/apps/deploy-app → dist/helpers/app}/actions-deployer.d.ts +11 -11
- package/{lib/apps/deploy-app → dist/helpers/app}/actions-deployer.js +122 -114
- package/{lib/apps/deploy-app → dist/helpers/app}/app-deployer.d.ts +8 -8
- package/{lib/apps/deploy-app → dist/helpers/app}/app-deployer.js +98 -93
- package/{lib/apps/deploy-app → dist/helpers/app}/app-template-parsers.d.ts +7 -7
- package/{lib/apps/deploy-app → dist/helpers/app}/app-template-parsers.js +43 -38
- package/dist/helpers/app/load-app-config.d.ts +1 -0
- package/dist/helpers/app/load-app-config.js +18 -0
- package/dist/helpers/app/setup-template.d.ts +1 -0
- package/dist/helpers/app/setup-template.js +38 -0
- package/dist/helpers/colors/helpers.d.ts +4 -0
- package/dist/helpers/colors/helpers.js +74 -0
- package/{lib → dist/helpers}/config/config.d.ts +6 -6
- package/dist/helpers/config/config.js +76 -0
- package/dist/helpers/loader-process/helpers.d.ts +2 -0
- package/{lib/loader-process/loader-process.js → dist/helpers/loader-process/helpers.js} +98 -120
- package/dist/helpers/projects/helpers.d.ts +2 -0
- package/{lib/projects/project-exporter.js → dist/helpers/projects/helpers.js} +165 -187
- package/{lib → dist/helpers}/types/csv-parser.d.ts +1 -1
- package/{lib → dist/helpers}/types/csv-parser.js +56 -51
- package/dist/helpers/types/type-extractor.d.ts +1 -0
- package/dist/helpers/types/type-extractor.js +32 -0
- package/dist/helpers/types/type-parser.d.ts +4 -0
- package/dist/helpers/types/type-parser.js +118 -0
- package/{lib/types/types-uploader.d.ts → dist/helpers/types/type-uploader.d.ts} +1 -1
- package/{lib/types/types-uploader.js → dist/helpers/types/type-uploader.js} +244 -239
- package/{lib → dist/helpers}/workflow-template-definitions/workflow-template-definition-deployer.d.ts +12 -12
- package/{lib → dist/helpers}/workflow-template-definitions/workflow-template-definition-deployer.js +156 -151
- package/{lib/workflow-templates/local-workflow-template-deployer.d.ts → dist/helpers/workflow-templates/helper.d.ts} +17 -11
- package/dist/helpers/workflow-templates/helper.js +166 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.js +5 -0
- package/{lib → dist}/interfaces.d.ts +323 -191
- package/dist/interfaces.js +63 -0
- package/{templates → dist/templates}/typescript/Dockerfile +15 -15
- package/{templates → dist/templates}/typescript/README.md +10 -10
- package/{templates → dist/templates}/typescript/app.yml +49 -49
- package/{templates → dist/templates}/typescript/docker_deploy.bat +1 -1
- package/{templates → dist/templates}/typescript/package.json +54 -54
- package/{templates → dist/templates}/typescript/src/actions/logItem.ts +25 -25
- package/{templates → dist/templates}/typescript/src/framework/action-dispatcher.ts +89 -89
- package/{templates → dist/templates}/typescript/src/framework/app-config.ts +26 -26
- package/{templates → dist/templates}/typescript/src/framework/handler.ts +11 -11
- package/{templates → dist/templates}/typescript/src/framework/index.ts +2 -2
- package/{templates → dist/templates}/typescript/src/framework/interfaces.ts +32 -32
- package/{templates → dist/templates}/typescript/src/framework/logger.ts +21 -21
- package/{templates → dist/templates}/typescript/src/framework/mock-server.ts +31 -31
- package/{templates → dist/templates}/typescript/tsconfig.json +28 -28
- package/oclif.manifest.json +821 -0
- package/package.json +116 -72
- package/.eslintrc.js +0 -53
- package/.vscode/settings.json +0 -6
- package/bin/init +0 -4
- package/lib/api/apps.js +0 -85
- package/lib/api/event-workflow-action-definition.js +0 -7
- package/lib/api/event-workflow-template-definition.js +0 -20
- package/lib/api/event-workflow-templates.js +0 -25
- package/lib/apps/create-app/create.d.ts +0 -1
- package/lib/apps/create-app/create.js +0 -60
- package/lib/apps/create-app/setup-template.d.ts +0 -1
- package/lib/apps/create-app/setup-template.js +0 -34
- package/lib/apps/deploy-app/deploy.d.ts +0 -2
- package/lib/apps/deploy-app/deploy.js +0 -58
- package/lib/apps/install-app/app-installer.d.ts +0 -2
- package/lib/apps/install-app/app-installer.js +0 -120
- package/lib/apps/upgrade-app/app-upgrader.d.ts +0 -3
- package/lib/apps/upgrade-app/app-upgrader.js +0 -126
- package/lib/auth/auth.js +0 -2
- package/lib/cli.d.ts +0 -5
- package/lib/cli.js +0 -524
- package/lib/colors/color-loader.d.ts +0 -2
- package/lib/colors/color-loader.js +0 -96
- package/lib/common.js +0 -5
- package/lib/config/config.js +0 -70
- package/lib/config/configCommands.d.ts +0 -3
- package/lib/config/configCommands.js +0 -34
- package/lib/interfaces.js +0 -25
- package/lib/loader-process/loader-process.d.ts +0 -2
- package/lib/projects/interfaces.d.ts +0 -77
- package/lib/projects/interfaces.js +0 -23
- package/lib/projects/project-exporter.d.ts +0 -2
- package/lib/projects/project-uploader.d.ts +0 -1
- package/lib/types/allUploader.d.ts +0 -1
- package/lib/types/allUploader.js +0 -24
- package/lib/types/interfaces.d.ts +0 -55
- package/lib/types/interfaces.js +0 -1
- package/lib/types/option-set-hierarchy-exporter.d.ts +0 -1
- package/lib/types/option-set-hierarchy-parser.d.ts +0 -2
- package/lib/types/option-set-hierarchy-uploader.d.ts +0 -1
- package/lib/types/option-set-merger.d.ts +0 -1
- package/lib/types/option-set-parser.d.ts +0 -3
- package/lib/types/option-set-parser.js +0 -140
- package/lib/types/option-set-uploader.d.ts +0 -1
- package/lib/types/parse-types.d.ts +0 -4
- package/lib/types/parse-types.js +0 -189
- package/lib/types/rule-set-uploader.d.ts +0 -1
- package/lib/types/type-property-policy-uploader.d.ts +0 -1
- package/lib/types/types-properties-merger.d.ts +0 -1
- package/lib/types/types-properties-merger.js +0 -75
- package/lib/types/usage-info-uploader.d.ts +0 -1
- package/lib/users/user-exporter.d.ts +0 -1
- package/lib/users/user-exporter.js +0 -41
- package/lib/users/user-uploader.d.ts +0 -1
- package/lib/users/user-uploader.js +0 -45
- package/lib/workflow-template-definitions/workflow-template-definition-commands.d.ts +0 -2
- package/lib/workflow-template-definitions/workflow-template-definition-commands.js +0 -10
- package/lib/workflow-templates/local-workflow-template-deployer.js +0 -102
- package/lib/workflow-templates/workflow-template-commands.d.ts +0 -4
- package/lib/workflow-templates/workflow-template-commands.js +0 -51
- package/lib/workflow-templates/workflow-template-deployer.d.ts +0 -4
- package/lib/workflow-templates/workflow-template-deployer.js +0 -26
- package/publish.bat +0 -5
- package/publish.sh +0 -5
- package/src/api/apps.ts +0 -97
- package/src/api/event-workflow-action-definition.ts +0 -8
- package/src/api/event-workflow-template-definition.ts +0 -23
- package/src/api/event-workflow-templates.ts +0 -29
- package/src/apps/create-app/create.ts +0 -74
- package/src/apps/create-app/setup-template.ts +0 -38
- package/src/apps/deploy-app/actions-deployer.ts +0 -140
- package/src/apps/deploy-app/app-deployer.ts +0 -105
- package/src/apps/deploy-app/app-template-parsers.ts +0 -44
- package/src/apps/deploy-app/deploy.ts +0 -66
- package/src/apps/install-app/app-installer.ts +0 -126
- package/src/apps/upgrade-app/app-upgrader.ts +0 -132
- package/src/auth/auth.ts +0 -10
- package/src/auth/login.ts +0 -155
- package/src/cli.ts +0 -540
- package/src/colors/color-loader.ts +0 -112
- package/src/colors/colors.csv +0 -866
- package/src/common.ts +0 -5
- package/src/config/config.ts +0 -74
- package/src/config/configCommands.ts +0 -38
- package/src/interfaces.ts +0 -200
- package/src/loader-process/loader-process.ts +0 -152
- package/src/projects/interfaces.ts +0 -73
- package/src/projects/project-exporter.ts +0 -225
- package/src/projects/project-uploader.ts +0 -131
- package/src/types/allUploader.ts +0 -28
- package/src/types/csv-parser.ts +0 -59
- package/src/types/interfaces.ts +0 -58
- package/src/types/option-set-hierarchy-exporter.ts +0 -125
- package/src/types/option-set-hierarchy-parser.ts +0 -169
- package/src/types/option-set-hierarchy-uploader.ts +0 -122
- package/src/types/option-set-merger.ts +0 -124
- package/src/types/option-set-parser.ts +0 -166
- package/src/types/option-set-uploader.ts +0 -108
- package/src/types/parse-types.ts +0 -227
- package/src/types/rule-set-uploader.ts +0 -187
- package/src/types/type-property-policy-uploader.ts +0 -192
- package/src/types/types-extractor.ts +0 -369
- package/src/types/types-properties-merger.ts +0 -90
- package/src/types/types-uploader.ts +0 -271
- package/src/types/usage-info-uploader.ts +0 -139
- package/src/users/user-exporter.ts +0 -52
- package/src/users/user-uploader.ts +0 -58
- package/src/workflow-template-definitions/workflow-template-definition-commands.ts +0 -13
- package/src/workflow-template-definitions/workflow-template-definition-deployer.ts +0 -184
- package/src/workflow-templates/local-workflow-template-deployer.ts +0 -126
- package/src/workflow-templates/workflow-template-commands.ts +0 -59
- package/src/workflow-templates/workflow-template-deployer.ts +0 -30
- package/templates/javascript/actions/example/action.js +0 -38
- package/templates/javascript/app.yml +0 -53
- package/templates/javascript/package.json +0 -23
- package/templates/typescript/package-lock.json +0 -14
- package/tsconfig.json +0 -32
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.uploadColors = exports.deleteColor = exports.getExistingColors = exports.getLocalColors = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const sdk_1 = require("@contrail/sdk");
|
|
6
|
+
const chalk_1 = tslib_1.__importDefault(require("chalk"));
|
|
7
|
+
const common_1 = require("../../common");
|
|
8
|
+
const csv = require('csvtojson');
|
|
9
|
+
async function getLocalColors() {
|
|
10
|
+
console.log('loading colors from local file');
|
|
11
|
+
const TARGET_DIR = process.cwd();
|
|
12
|
+
try {
|
|
13
|
+
const separator = (0, common_1.getSeparatorByPlatform)();
|
|
14
|
+
const csvFilePath = TARGET_DIR + separator + 'colors.csv';
|
|
15
|
+
return await csv().fromFile(csvFilePath);
|
|
16
|
+
}
|
|
17
|
+
catch (e) {
|
|
18
|
+
throw new Error(`ERROR PARSING COLORS CSV: ${e}`);
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
exports.getLocalColors = getLocalColors;
|
|
22
|
+
async function getExistingColors() {
|
|
23
|
+
console.log('%s Getting Existing Colors', chalk_1.default.yellow.bold('COLORS'));
|
|
24
|
+
try {
|
|
25
|
+
const result = await new sdk_1.Entities().get({ entityName: 'color', take: 3000 }); //, useSearch: false }); Not in EntitiesClientGetOptions yet
|
|
26
|
+
console.log('Found %s existing colors', result.length);
|
|
27
|
+
return result;
|
|
28
|
+
}
|
|
29
|
+
catch (e) {
|
|
30
|
+
throw new Error(`ERROR DOWNLOADING COLORS: ${e}`);
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
exports.getExistingColors = getExistingColors;
|
|
34
|
+
async function deleteColor(color) {
|
|
35
|
+
try {
|
|
36
|
+
await new sdk_1.Entities().delete({ entityName: 'color', id: color.id });
|
|
37
|
+
}
|
|
38
|
+
catch (e) {
|
|
39
|
+
throw new Error(`ERROR DOWNLOADING COLORS: ${e}`);
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
exports.deleteColor = deleteColor;
|
|
43
|
+
async function uploadColors() {
|
|
44
|
+
const colors = await getLocalColors();
|
|
45
|
+
const existingColors = await getExistingColors();
|
|
46
|
+
const existingNamesValues = existingColors.filter(x => x.name).map(x => x.name);
|
|
47
|
+
for (const color of colors) {
|
|
48
|
+
if (existingNamesValues.includes(color.name)) {
|
|
49
|
+
console.log('%s SKIPPING %s (%s)', chalk_1.default.yellow.bold('COLORS'), color.hex, color.name);
|
|
50
|
+
continue;
|
|
51
|
+
}
|
|
52
|
+
if (color.hex.length > 1 && color.hex[0] === '#') {
|
|
53
|
+
color.hex = color.hex.substring(1);
|
|
54
|
+
}
|
|
55
|
+
const o = {
|
|
56
|
+
hex: color.hex,
|
|
57
|
+
name: color.name
|
|
58
|
+
};
|
|
59
|
+
if (color.red) {
|
|
60
|
+
o.red = color.red;
|
|
61
|
+
}
|
|
62
|
+
if (color.green) {
|
|
63
|
+
o.green = color.green;
|
|
64
|
+
}
|
|
65
|
+
if (color.blue) {
|
|
66
|
+
o.blue = color.blue;
|
|
67
|
+
}
|
|
68
|
+
await new sdk_1.Entities().create({
|
|
69
|
+
entityName: 'color',
|
|
70
|
+
object: o
|
|
71
|
+
});
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
exports.uploadColors = uploadColors;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
export declare function initializeVibeIQConfig(): Promise<void>;
|
|
2
|
-
export declare function readVibeIQConfig(): Promise<any>;
|
|
3
|
-
export declare function writeVibeIQConfig(config: any): Promise<void>;
|
|
4
|
-
export declare function getConfig(): Promise<any>;
|
|
5
|
-
export declare function deleteConfigs(configNames: string[]): Promise<void>;
|
|
6
|
-
export declare function storeConfig(incomingConfig: any, merge?: boolean): Promise<void>;
|
|
1
|
+
export declare function initializeVibeIQConfig(): Promise<void>;
|
|
2
|
+
export declare function readVibeIQConfig(): Promise<any>;
|
|
3
|
+
export declare function writeVibeIQConfig(config: any): Promise<void>;
|
|
4
|
+
export declare function getConfig(): Promise<any>;
|
|
5
|
+
export declare function deleteConfigs(configNames: string[]): Promise<void>;
|
|
6
|
+
export declare function storeConfig(incomingConfig: any, merge?: boolean): Promise<void>;
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.storeConfig = exports.deleteConfigs = exports.getConfig = exports.writeVibeIQConfig = exports.readVibeIQConfig = exports.initializeVibeIQConfig = void 0;
|
|
4
|
+
const node_fs_1 = require("node:fs");
|
|
5
|
+
const node_path_1 = require("node:path");
|
|
6
|
+
const node_os_1 = require("node:os");
|
|
7
|
+
const userHomeDir = (0, node_os_1.homedir)();
|
|
8
|
+
const configDirectoryLocation = (0, node_path_1.join)(userHomeDir, '.vibeiq');
|
|
9
|
+
const configFileLocation = (0, node_path_1.join)(configDirectoryLocation, 'config.json');
|
|
10
|
+
async function initializeVibeIQConfig() {
|
|
11
|
+
try {
|
|
12
|
+
await node_fs_1.promises.mkdir(configDirectoryLocation, { recursive: true });
|
|
13
|
+
}
|
|
14
|
+
catch (error) {
|
|
15
|
+
console.error('could not initialize vibeiq directory');
|
|
16
|
+
throw error;
|
|
17
|
+
}
|
|
18
|
+
try {
|
|
19
|
+
await node_fs_1.promises.writeFile(configFileLocation, '{}');
|
|
20
|
+
}
|
|
21
|
+
catch (error) {
|
|
22
|
+
console.error(`could not initialize config file (${configFileLocation}).`);
|
|
23
|
+
throw error;
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
exports.initializeVibeIQConfig = initializeVibeIQConfig;
|
|
27
|
+
async function readVibeIQConfig() {
|
|
28
|
+
let fileContent;
|
|
29
|
+
try {
|
|
30
|
+
fileContent = await (await node_fs_1.promises.readFile(configFileLocation)).toString();
|
|
31
|
+
}
|
|
32
|
+
catch {
|
|
33
|
+
console.debug(`failed to open config file (${configFileLocation}) for reading.`);
|
|
34
|
+
console.debug('trying to initialize config file');
|
|
35
|
+
await initializeVibeIQConfig();
|
|
36
|
+
fileContent = await (await node_fs_1.promises.readFile(configFileLocation)).toString();
|
|
37
|
+
}
|
|
38
|
+
try {
|
|
39
|
+
return JSON.parse(fileContent);
|
|
40
|
+
}
|
|
41
|
+
catch {
|
|
42
|
+
console.error(`Could not parse local vibeiq config. The file (${configFileLocation}) might be malformed`);
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
exports.readVibeIQConfig = readVibeIQConfig;
|
|
46
|
+
async function writeVibeIQConfig(config) {
|
|
47
|
+
try {
|
|
48
|
+
await node_fs_1.promises.writeFile(configFileLocation, JSON.stringify(config, null, 2));
|
|
49
|
+
}
|
|
50
|
+
catch (error) {
|
|
51
|
+
console.error(`Could not open config file (${configFileLocation}) for writing.`);
|
|
52
|
+
throw error;
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
exports.writeVibeIQConfig = writeVibeIQConfig;
|
|
56
|
+
async function getConfig() {
|
|
57
|
+
console.debug('getting config from file system');
|
|
58
|
+
return await readVibeIQConfig();
|
|
59
|
+
}
|
|
60
|
+
exports.getConfig = getConfig;
|
|
61
|
+
async function deleteConfigs(configNames) {
|
|
62
|
+
const currentConfig = await readVibeIQConfig();
|
|
63
|
+
for (const configName of configNames) {
|
|
64
|
+
delete currentConfig[configName];
|
|
65
|
+
}
|
|
66
|
+
await storeConfig(currentConfig, false);
|
|
67
|
+
}
|
|
68
|
+
exports.deleteConfigs = deleteConfigs;
|
|
69
|
+
async function storeConfig(incomingConfig, merge = true) {
|
|
70
|
+
const config = merge ? {
|
|
71
|
+
...await readVibeIQConfig(),
|
|
72
|
+
...incomingConfig,
|
|
73
|
+
} : incomingConfig;
|
|
74
|
+
await writeVibeIQConfig(config);
|
|
75
|
+
}
|
|
76
|
+
exports.storeConfig = storeConfig;
|
|
@@ -1,120 +1,98 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
const
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
const
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
}
|
|
76
|
-
async function
|
|
77
|
-
const
|
|
78
|
-
const
|
|
79
|
-
const
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
object: Object.assign({}, config)
|
|
100
|
-
});
|
|
101
|
-
console.log('Load has been kicked off. loader-process ID: ', loadJob.id);
|
|
102
|
-
}
|
|
103
|
-
async function uploadAndLoadLocalFile(incomingFileName, configFileName) {
|
|
104
|
-
const file = await uploadFile(incomingFileName);
|
|
105
|
-
const config = await getLocalUploadConfig(configFileName);
|
|
106
|
-
const fullConfig = Object.assign({ fileLocation: file.id }, config);
|
|
107
|
-
await loadFile(fullConfig);
|
|
108
|
-
}
|
|
109
|
-
async function loadLocalFile(configFileName) {
|
|
110
|
-
const config = await getLocalUploadConfig(configFileName);
|
|
111
|
-
await loadFile(config);
|
|
112
|
-
}
|
|
113
|
-
function getFileExtension(fileName) {
|
|
114
|
-
let ext = '';
|
|
115
|
-
const parts = fileName === null || fileName === void 0 ? void 0 : fileName.split('.');
|
|
116
|
-
if ((parts === null || parts === void 0 ? void 0 : parts.length) > 1) {
|
|
117
|
-
ext = '.' + parts[(parts === null || parts === void 0 ? void 0 : parts.length) - 1];
|
|
118
|
-
}
|
|
119
|
-
return ext;
|
|
120
|
-
}
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.loadLocalFile = exports.uploadAndLoadLocalFile = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const path = tslib_1.__importStar(require("path"));
|
|
6
|
+
const sdk_1 = require("@contrail/sdk");
|
|
7
|
+
const fs = tslib_1.__importStar(require("fs"));
|
|
8
|
+
const js_yaml_1 = tslib_1.__importDefault(require("js-yaml"));
|
|
9
|
+
async function getLocalFile(incomingFileName) {
|
|
10
|
+
const ext = getFileExtension(incomingFileName);
|
|
11
|
+
if (ext !== '.csv') {
|
|
12
|
+
throw new Error('Upload file must be a .csv');
|
|
13
|
+
}
|
|
14
|
+
const TARGET_DIR = process.cwd();
|
|
15
|
+
try {
|
|
16
|
+
return fs.readFileSync(path.join(TARGET_DIR, incomingFileName));
|
|
17
|
+
}
|
|
18
|
+
catch (e) {
|
|
19
|
+
throw new Error(`ERROR LOADING CSV: ${e}`);
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
async function getLocalUploadConfig(configFileName) {
|
|
23
|
+
const ext = getFileExtension(configFileName);
|
|
24
|
+
if (ext !== '.json' && ext !== '.yml') {
|
|
25
|
+
throw new Error('Upload file must be a .json or .yml');
|
|
26
|
+
}
|
|
27
|
+
const CURRENT_DIR = process.cwd();
|
|
28
|
+
const fullPath = path.join(CURRENT_DIR, configFileName);
|
|
29
|
+
console.log('Getting config from path: ', fullPath);
|
|
30
|
+
if (ext === '.yml') {
|
|
31
|
+
try {
|
|
32
|
+
const doc = js_yaml_1.default.load(fs.readFileSync(fullPath, 'utf8'));
|
|
33
|
+
return doc;
|
|
34
|
+
}
|
|
35
|
+
catch (e) {
|
|
36
|
+
throw new Error(`ERROR LOADING UPLOAD CONFIGURATION FILE: ${e}`);
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
try {
|
|
40
|
+
const doc = JSON.parse(fs.readFileSync(fullPath, 'utf8'));
|
|
41
|
+
return doc;
|
|
42
|
+
}
|
|
43
|
+
catch (e) {
|
|
44
|
+
throw new Error(`ERROR LOADING UPLOAD CONFIGURATION FILE: ${e}`);
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
async function uploadFile(incomingFileName) {
|
|
48
|
+
const csvContent = await getLocalFile(incomingFileName);
|
|
49
|
+
const entities = new sdk_1.Entities();
|
|
50
|
+
const fileName = `${incomingFileName.slice(0, incomingFileName.length - 4)}-Upload-${new Date().getTime()}.csv`;
|
|
51
|
+
const file = await entities.create({
|
|
52
|
+
entityName: 'file',
|
|
53
|
+
object: { contentType: 'text/csv', fileName: fileName, ttl: 24 * 60 * 60 * 1000 }
|
|
54
|
+
});
|
|
55
|
+
console.log('VibeIQ file ID:', file.id);
|
|
56
|
+
// Upload the CSV data to the newly created VibeIQ file
|
|
57
|
+
const fileDetails = {
|
|
58
|
+
contentType: 'text/csv',
|
|
59
|
+
};
|
|
60
|
+
await new sdk_1.Files().uploadFileAsStream(file.uploadPost, csvContent, fileDetails);
|
|
61
|
+
console.log('File uploaded.');
|
|
62
|
+
return file;
|
|
63
|
+
}
|
|
64
|
+
async function loadFile(config) {
|
|
65
|
+
const entities = new sdk_1.Entities();
|
|
66
|
+
// start a load job referencing the newly created file
|
|
67
|
+
console.log('Loading with config: ', config);
|
|
68
|
+
const loadJob = await entities.create({
|
|
69
|
+
entityName: 'loader-process',
|
|
70
|
+
object: {
|
|
71
|
+
...config
|
|
72
|
+
}
|
|
73
|
+
});
|
|
74
|
+
console.log('Load has been kicked off. loader-process ID: ', loadJob.id);
|
|
75
|
+
}
|
|
76
|
+
async function uploadAndLoadLocalFile(incomingFileName, configFileName) {
|
|
77
|
+
const file = await uploadFile(incomingFileName);
|
|
78
|
+
const config = await getLocalUploadConfig(configFileName);
|
|
79
|
+
const fullConfig = {
|
|
80
|
+
fileLocation: file.id,
|
|
81
|
+
...config
|
|
82
|
+
};
|
|
83
|
+
await loadFile(fullConfig);
|
|
84
|
+
}
|
|
85
|
+
exports.uploadAndLoadLocalFile = uploadAndLoadLocalFile;
|
|
86
|
+
async function loadLocalFile(configFileName) {
|
|
87
|
+
const config = await getLocalUploadConfig(configFileName);
|
|
88
|
+
await loadFile(config);
|
|
89
|
+
}
|
|
90
|
+
exports.loadLocalFile = loadLocalFile;
|
|
91
|
+
function getFileExtension(fileName) {
|
|
92
|
+
let ext = '';
|
|
93
|
+
const parts = fileName === null || fileName === void 0 ? void 0 : fileName.split('.');
|
|
94
|
+
if ((parts === null || parts === void 0 ? void 0 : parts.length) > 1) {
|
|
95
|
+
ext = '.' + parts[(parts === null || parts === void 0 ? void 0 : parts.length) - 1];
|
|
96
|
+
}
|
|
97
|
+
return ext;
|
|
98
|
+
}
|