@grnsft/if 0.7.0 → 0.7.2
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/build/common/config/index.d.ts +1 -0
- package/build/common/config/index.js +6 -0
- package/build/common/config/strings.d.ts +13 -0
- package/build/common/config/strings.js +21 -0
- package/build/common/lib/load.d.ts +6 -0
- package/build/common/lib/load.js +18 -0
- package/build/common/types/manifest.d.ts +13 -0
- package/build/common/types/manifest.js +3 -0
- package/build/common/util/debug-logger.d.ts +4 -0
- package/build/common/util/debug-logger.js +124 -0
- package/build/common/util/fs.d.ts +20 -0
- package/build/common/util/fs.js +94 -0
- package/build/common/util/helpers.d.ts +15 -0
- package/build/common/util/helpers.js +80 -0
- package/build/common/util/logger.d.ts +5 -0
- package/build/common/util/logger.js +39 -0
- package/build/common/util/validations.d.ts +465 -0
- package/build/common/util/validations.js +148 -0
- package/build/common/util/yaml.d.ts +12 -0
- package/build/common/util/yaml.js +59 -0
- package/build/if-check/config/config.d.ts +6 -0
- package/build/if-check/config/config.js +31 -0
- package/build/if-check/config/index.d.ts +2 -0
- package/build/if-check/config/index.js +8 -0
- package/build/if-check/config/strings.d.ts +11 -0
- package/build/if-check/config/strings.js +15 -0
- package/build/if-check/index.d.ts +2 -0
- package/build/if-check/index.js +98 -0
- package/build/if-check/types/process-args.d.ts +4 -0
- package/build/if-check/types/process-args.js +3 -0
- package/build/if-check/util/args.d.ts +10 -0
- package/build/if-check/util/args.js +56 -0
- package/build/if-check/util/helpers.d.ts +4 -0
- package/build/if-check/util/helpers.js +18 -0
- package/build/if-check/util/npm.d.ts +4 -0
- package/build/if-check/util/npm.js +59 -0
- package/build/if-csv/config/config.d.ts +6 -0
- package/build/if-csv/config/config.js +36 -0
- package/build/if-csv/config/index.d.ts +2 -0
- package/build/if-csv/config/index.js +8 -0
- package/build/if-csv/config/strings.d.ts +3 -0
- package/build/if-csv/config/strings.js +7 -0
- package/build/if-csv/index.d.ts +2 -0
- package/build/if-csv/index.js +63 -0
- package/build/if-csv/types/csv.d.ts +7 -0
- package/build/if-csv/types/csv.js +3 -0
- package/build/if-csv/types/process-args.d.ts +5 -0
- package/build/if-csv/types/process-args.js +3 -0
- package/build/if-csv/util/args.d.ts +12 -0
- package/build/if-csv/util/args.js +47 -0
- package/build/if-csv/util/helpers.d.ts +9 -0
- package/build/if-csv/util/helpers.js +95 -0
- package/build/if-diff/config/config.d.ts +6 -0
- package/build/if-diff/config/config.js +31 -0
- package/build/if-diff/config/index.d.ts +2 -0
- package/build/if-diff/config/index.js +8 -0
- package/build/if-diff/config/strings.d.ts +6 -0
- package/build/if-diff/config/strings.js +10 -0
- package/build/if-diff/index.d.ts +2 -0
- package/build/if-diff/index.js +46 -0
- package/build/if-diff/lib/compare.d.ts +10 -0
- package/build/if-diff/lib/compare.js +56 -0
- package/build/if-diff/lib/load.d.ts +63 -0
- package/build/if-diff/lib/load.js +51 -0
- package/build/if-diff/types/args.d.ts +5 -0
- package/build/if-diff/types/args.js +3 -0
- package/build/if-diff/types/compare.d.ts +7 -0
- package/build/if-diff/types/compare.js +3 -0
- package/build/if-diff/types/process-args.d.ts +4 -0
- package/build/if-diff/types/process-args.js +3 -0
- package/build/if-diff/util/args.d.ts +5 -0
- package/build/if-diff/util/args.js +51 -0
- package/build/if-diff/util/helpers.d.ts +13 -0
- package/build/if-diff/util/helpers.js +75 -0
- package/build/if-env/config/config.d.ts +6 -0
- package/build/if-env/config/config.js +37 -0
- package/build/if-env/config/index.d.ts +2 -0
- package/build/if-env/config/index.js +8 -0
- package/build/if-env/config/strings.d.ts +7 -0
- package/build/if-env/config/strings.js +11 -0
- package/build/if-env/index.d.ts +2 -0
- package/build/if-env/index.js +40 -0
- package/build/if-env/types/if-env.d.ts +8 -0
- package/build/if-env/types/if-env.js +3 -0
- package/build/if-env/types/npm.d.ts +9 -0
- package/build/if-env/types/npm.js +3 -0
- package/build/if-env/types/process-args.d.ts +5 -0
- package/build/if-env/types/process-args.js +3 -0
- package/build/if-env/util/args.d.ts +12 -0
- package/build/if-env/util/args.js +47 -0
- package/build/if-env/util/helpers.d.ts +20 -0
- package/build/if-env/util/helpers.js +94 -0
- package/build/if-env/util/npm.d.ts +24 -0
- package/build/if-env/util/npm.js +126 -0
- package/build/if-merge/config/config.d.ts +6 -0
- package/build/if-merge/config/config.js +43 -0
- package/build/if-merge/config/index.d.ts +2 -0
- package/build/if-merge/config/index.js +8 -0
- package/build/if-merge/config/strings.d.ts +5 -0
- package/build/if-merge/config/strings.js +9 -0
- package/build/if-merge/index.d.ts +2 -0
- package/build/if-merge/index.js +26 -0
- package/build/if-merge/types/process-args.d.ts +6 -0
- package/build/if-merge/types/process-args.js +3 -0
- package/build/if-merge/util/args.d.ts +9 -0
- package/build/if-merge/util/args.js +59 -0
- package/build/if-merge/util/helpers.d.ts +5 -0
- package/build/if-merge/util/helpers.js +83 -0
- package/build/if-run/builtins/coefficient/index.d.ts +16 -0
- package/build/if-run/builtins/coefficient/index.js +45 -0
- package/build/if-run/builtins/copy-param/index.d.ts +21 -0
- package/build/if-run/builtins/copy-param/index.js +58 -0
- package/build/if-run/builtins/csv-lookup/index.d.ts +16 -0
- package/build/if-run/builtins/csv-lookup/index.js +175 -0
- package/build/if-run/builtins/divide/index.d.ts +16 -0
- package/build/if-run/builtins/divide/index.js +68 -0
- package/build/if-run/builtins/exponent/index.d.ts +16 -0
- package/build/if-run/builtins/exponent/index.js +52 -0
- package/build/if-run/builtins/export-log.d.ts +4 -0
- package/build/if-run/builtins/export-log.js +44 -0
- package/build/if-run/builtins/export-yaml.d.ts +4 -0
- package/build/if-run/builtins/export-yaml.js +30 -0
- package/build/if-run/builtins/index.d.ts +16 -0
- package/build/if-run/builtins/index.js +36 -0
- package/build/if-run/builtins/interpolation/index.d.ts +16 -0
- package/build/if-run/builtins/interpolation/index.js +146 -0
- package/build/if-run/builtins/mock-observations/helpers/common-generator.d.ts +3 -0
- package/build/if-run/builtins/mock-observations/helpers/common-generator.js +29 -0
- package/build/if-run/builtins/mock-observations/helpers/rand-int-generator.d.ts +3 -0
- package/build/if-run/builtins/mock-observations/helpers/rand-int-generator.js +48 -0
- package/build/if-run/builtins/mock-observations/index.d.ts +16 -0
- package/build/if-run/builtins/mock-observations/index.js +108 -0
- package/build/if-run/builtins/mock-observations/interfaces/index.d.ts +6 -0
- package/build/if-run/builtins/mock-observations/interfaces/index.js +3 -0
- package/build/if-run/builtins/multiply/index.d.ts +16 -0
- package/build/if-run/builtins/multiply/index.js +47 -0
- package/build/if-run/builtins/regex/index.d.ts +16 -0
- package/build/if-run/builtins/regex/index.js +55 -0
- package/build/if-run/builtins/sci/index.d.ts +16 -0
- package/build/if-run/builtins/sci/index.js +92 -0
- package/build/if-run/builtins/sci-embodied/index.d.ts +16 -0
- package/build/if-run/builtins/sci-embodied/index.js +142 -0
- package/build/if-run/builtins/shell/index.d.ts +16 -0
- package/build/if-run/builtins/shell/index.js +50 -0
- package/build/if-run/builtins/subtract/index.d.ts +16 -0
- package/build/if-run/builtins/subtract/index.js +51 -0
- package/build/if-run/builtins/sum/index.d.ts +16 -0
- package/build/if-run/builtins/sum/index.js +37 -0
- package/build/if-run/builtins/time-converter/config.d.ts +1 -0
- package/build/if-run/builtins/time-converter/config.js +44 -0
- package/build/if-run/builtins/time-converter/index.d.ts +16 -0
- package/build/if-run/builtins/time-converter/index.js +63 -0
- package/build/if-run/builtins/time-sync/index.d.ts +31 -0
- package/build/if-run/builtins/time-sync/index.js +371 -0
- package/build/if-run/config/config.d.ts +9 -0
- package/build/if-run/config/config.js +79 -0
- package/build/if-run/config/index.d.ts +2 -0
- package/build/if-run/config/index.js +8 -0
- package/build/if-run/config/strings.d.ts +62 -0
- package/build/if-run/config/strings.js +81 -0
- package/build/if-run/index.d.ts +2 -0
- package/build/if-run/index.js +58 -0
- package/build/if-run/lib/aggregate.d.ts +14 -0
- package/build/if-run/lib/aggregate.js +130 -0
- package/build/if-run/lib/compute.d.ts +5 -0
- package/build/if-run/lib/compute.js +162 -0
- package/build/if-run/lib/environment.d.ts +5 -0
- package/build/if-run/lib/environment.js +75 -0
- package/build/if-run/lib/exhaust.d.ts +7 -0
- package/build/if-run/lib/exhaust.js +27 -0
- package/build/if-run/lib/explain.d.ts +9 -0
- package/build/if-run/lib/explain.js +97 -0
- package/build/if-run/lib/initialize.d.ts +10 -0
- package/build/if-run/lib/initialize.js +113 -0
- package/build/if-run/lib/regroup.d.ts +5 -0
- package/build/if-run/lib/regroup.js +59 -0
- package/build/if-run/types/aggregation.d.ts +2 -0
- package/build/if-run/types/aggregation.js +11 -0
- package/build/if-run/types/compute.d.ts +33 -0
- package/build/if-run/types/compute.js +3 -0
- package/build/if-run/types/environment.d.ts +18 -0
- package/build/if-run/types/environment.js +3 -0
- package/build/if-run/types/explain.d.ts +12 -0
- package/build/if-run/types/explain.js +3 -0
- package/build/if-run/types/plugin-storage.d.ts +6 -0
- package/build/if-run/types/plugin-storage.js +3 -0
- package/build/if-run/types/process-args.d.ts +27 -0
- package/build/if-run/types/process-args.js +3 -0
- package/build/if-run/util/aggregation-helper.d.ts +6 -0
- package/build/if-run/util/aggregation-helper.js +52 -0
- package/build/if-run/util/args.d.ts +9 -0
- package/build/if-run/util/args.js +61 -0
- package/build/if-run/util/helpers.d.ts +8 -0
- package/build/if-run/util/helpers.js +37 -0
- package/build/if-run/util/log-memoize.d.ts +3 -0
- package/build/if-run/util/log-memoize.js +19 -0
- package/build/if-run/util/os-checker.d.ts +7 -0
- package/build/if-run/util/os-checker.js +97 -0
- package/build/if-run/util/plugin-storage.d.ts +14 -0
- package/build/if-run/util/plugin-storage.js +34 -0
- package/manifests/examples/builtins/interpolation/success-with-off.yml +24 -0
- package/package.json +10 -9
- package/src/if-run/builtins/interpolation/README.md +1 -1
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
"use strict";
|
|
3
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
4
|
+
if (k2 === undefined) k2 = k;
|
|
5
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
6
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
7
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
8
|
+
}
|
|
9
|
+
Object.defineProperty(o, k2, desc);
|
|
10
|
+
}) : (function(o, m, k, k2) {
|
|
11
|
+
if (k2 === undefined) k2 = k;
|
|
12
|
+
o[k2] = m[k];
|
|
13
|
+
}));
|
|
14
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
15
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
16
|
+
}) : function(o, v) {
|
|
17
|
+
o["default"] = v;
|
|
18
|
+
});
|
|
19
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
20
|
+
if (mod && mod.__esModule) return mod;
|
|
21
|
+
var result = {};
|
|
22
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
23
|
+
__setModuleDefault(result, mod);
|
|
24
|
+
return result;
|
|
25
|
+
};
|
|
26
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
27
|
+
exports.updatePackageJsonProperties = exports.extractPathsWithVersion = exports.updatePackageJsonDependencies = exports.installDependencies = exports.initPackageJsonIfNotExists = void 0;
|
|
28
|
+
/* eslint-disable no-process-exit */
|
|
29
|
+
const fs = __importStar(require("fs/promises"));
|
|
30
|
+
const path = __importStar(require("path"));
|
|
31
|
+
const helpers_1 = require("../../common/util/helpers");
|
|
32
|
+
const fs_1 = require("../../common/util/fs");
|
|
33
|
+
const logger_1 = require("../../common/util/logger");
|
|
34
|
+
const config_1 = require("../config");
|
|
35
|
+
const packageJson = require('../../../package.json');
|
|
36
|
+
const { INITIALIZING_PACKAGE_JSON, INSTALLING_NPM_PACKAGES } = config_1.STRINGS;
|
|
37
|
+
/**
|
|
38
|
+
* Checks if the package.json is exists, if not, initializes it.
|
|
39
|
+
*/
|
|
40
|
+
const initPackageJsonIfNotExists = async (folderPath) => {
|
|
41
|
+
const packageJsonPath = path.resolve(folderPath, 'package.json');
|
|
42
|
+
const isPackageJsonExists = await (0, fs_1.isFileExists)(packageJsonPath);
|
|
43
|
+
if (!isPackageJsonExists) {
|
|
44
|
+
logger_1.logger.info(INITIALIZING_PACKAGE_JSON);
|
|
45
|
+
const nodeModulesPath = path.resolve(folderPath, 'node_modules');
|
|
46
|
+
const isNodeModulesExists = await (0, fs_1.isDirectoryExists)(nodeModulesPath);
|
|
47
|
+
if (isNodeModulesExists) {
|
|
48
|
+
await fs.rm(nodeModulesPath, { recursive: true });
|
|
49
|
+
}
|
|
50
|
+
await (0, helpers_1.execPromise)('npm init -y', { cwd: folderPath });
|
|
51
|
+
}
|
|
52
|
+
return packageJsonPath;
|
|
53
|
+
};
|
|
54
|
+
exports.initPackageJsonIfNotExists = initPackageJsonIfNotExists;
|
|
55
|
+
/**
|
|
56
|
+
* Installs packages from the specified dependencies in the specified folder.
|
|
57
|
+
*/
|
|
58
|
+
const installDependencies = async (folderPath, dependencies) => {
|
|
59
|
+
const packages = Object.entries(dependencies).map(([dependency, version]) => `${dependency}@${version.replace('^', '')}`);
|
|
60
|
+
logger_1.logger.info(INSTALLING_NPM_PACKAGES);
|
|
61
|
+
await (0, helpers_1.execPromise)(`npm install ${packages.join(' ')}`, {
|
|
62
|
+
cwd: folderPath,
|
|
63
|
+
});
|
|
64
|
+
};
|
|
65
|
+
exports.installDependencies = installDependencies;
|
|
66
|
+
/**
|
|
67
|
+
* Updates package.json dependencies.
|
|
68
|
+
*/
|
|
69
|
+
const updatePackageJsonDependencies = async (packageJsonPath, dependencies, cwd) => {
|
|
70
|
+
const packageJsonContent = await fs.readFile(packageJsonPath, 'utf8');
|
|
71
|
+
const parsedPackageJson = JSON.parse(packageJsonContent);
|
|
72
|
+
if (cwd) {
|
|
73
|
+
parsedPackageJson.dependencies = {
|
|
74
|
+
...parsedPackageJson.dependencies,
|
|
75
|
+
...dependencies,
|
|
76
|
+
};
|
|
77
|
+
}
|
|
78
|
+
else {
|
|
79
|
+
parsedPackageJson.dependencies = { ...dependencies };
|
|
80
|
+
}
|
|
81
|
+
await fs.writeFile(packageJsonPath, JSON.stringify(parsedPackageJson, null, 2));
|
|
82
|
+
await fs.appendFile(packageJsonPath, '\n');
|
|
83
|
+
};
|
|
84
|
+
exports.updatePackageJsonDependencies = updatePackageJsonDependencies;
|
|
85
|
+
/**
|
|
86
|
+
* Gets depencecies with versions.
|
|
87
|
+
*/
|
|
88
|
+
const extractPathsWithVersion = (plugins, dependencies) => {
|
|
89
|
+
const paths = Object.keys(plugins).map(plugin => plugins[plugin].path);
|
|
90
|
+
const uniquePaths = [...new Set(paths)].filter(path => path !== 'builtin');
|
|
91
|
+
const pathsWithVersion = {};
|
|
92
|
+
uniquePaths.forEach(pluginPath => {
|
|
93
|
+
const dependency = dependencies.find((dependency) => dependency.startsWith(pluginPath));
|
|
94
|
+
if (dependency) {
|
|
95
|
+
const splittedDependency = dependency.split('@');
|
|
96
|
+
const version = splittedDependency.length > 2
|
|
97
|
+
? splittedDependency[2].split(' ')[0]
|
|
98
|
+
: splittedDependency[1];
|
|
99
|
+
pathsWithVersion[pluginPath] = `^${version}`;
|
|
100
|
+
}
|
|
101
|
+
});
|
|
102
|
+
return pathsWithVersion;
|
|
103
|
+
};
|
|
104
|
+
exports.extractPathsWithVersion = extractPathsWithVersion;
|
|
105
|
+
/**
|
|
106
|
+
* Update the package.json properties.
|
|
107
|
+
*/
|
|
108
|
+
const updatePackageJsonProperties = async (newPackageJsonPath, appendDependencies) => {
|
|
109
|
+
const packageJsonContent = await fs.readFile(newPackageJsonPath, 'utf8');
|
|
110
|
+
const parsedPackageJsonContent = JSON.parse(packageJsonContent);
|
|
111
|
+
const properties = {
|
|
112
|
+
name: packageJson.name || 'if-environment',
|
|
113
|
+
description: packageJson.description,
|
|
114
|
+
author: packageJson.author,
|
|
115
|
+
bugs: packageJson.bugs,
|
|
116
|
+
engines: packageJson.engines,
|
|
117
|
+
homepage: packageJson.homepage,
|
|
118
|
+
dependencies: appendDependencies
|
|
119
|
+
? parsedPackageJsonContent.dependencies
|
|
120
|
+
: {},
|
|
121
|
+
};
|
|
122
|
+
const newPackageJson = Object.assign({}, parsedPackageJsonContent, properties);
|
|
123
|
+
await fs.writeFile(newPackageJsonPath, JSON.stringify(newPackageJson, null, 2));
|
|
124
|
+
};
|
|
125
|
+
exports.updatePackageJsonProperties = updatePackageJsonProperties;
|
|
126
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnBtLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2lmLWVudi91dGlsL25wbS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFDQSxvQ0FBb0M7QUFDcEMsZ0RBQWtDO0FBQ2xDLDJDQUE2QjtBQUU3Qix1REFBc0Q7QUFDdEQsNkNBQXFFO0FBQ3JFLHFEQUFnRDtBQUVoRCxzQ0FBa0M7QUFHbEMsTUFBTSxXQUFXLEdBQUcsT0FBTyxDQUFDLHVCQUF1QixDQUFDLENBQUM7QUFFckQsTUFBTSxFQUFDLHlCQUF5QixFQUFFLHVCQUF1QixFQUFDLEdBQUcsZ0JBQU8sQ0FBQztBQUVyRTs7R0FFRztBQUNJLE1BQU0sMEJBQTBCLEdBQUcsS0FBSyxFQUFFLFVBQWtCLEVBQUUsRUFBRTtJQUNyRSxNQUFNLGVBQWUsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsRUFBRSxjQUFjLENBQUMsQ0FBQztJQUNqRSxNQUFNLG1CQUFtQixHQUFHLE1BQU0sSUFBQSxpQkFBWSxFQUFDLGVBQWUsQ0FBQyxDQUFDO0lBRWhFLElBQUksQ0FBQyxtQkFBbUIsRUFBRTtRQUN4QixlQUFNLENBQUMsSUFBSSxDQUFDLHlCQUF5QixDQUFDLENBQUM7UUFFdkMsTUFBTSxlQUFlLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLEVBQUUsY0FBYyxDQUFDLENBQUM7UUFDakUsTUFBTSxtQkFBbUIsR0FBRyxNQUFNLElBQUEsc0JBQWlCLEVBQUMsZUFBZSxDQUFDLENBQUM7UUFFckUsSUFBSSxtQkFBbUIsRUFBRTtZQUN2QixNQUFNLEVBQUUsQ0FBQyxFQUFFLENBQUMsZUFBZSxFQUFFLEVBQUMsU0FBUyxFQUFFLElBQUksRUFBQyxDQUFDLENBQUM7U0FDakQ7UUFFRCxNQUFNLElBQUEscUJBQVcsRUFBQyxhQUFhLEVBQUUsRUFBQyxHQUFHLEVBQUUsVUFBVSxFQUFDLENBQUMsQ0FBQztLQUNyRDtJQUVELE9BQU8sZUFBZSxDQUFDO0FBQ3pCLENBQUMsQ0FBQztBQWxCVyxRQUFBLDBCQUEwQiw4QkFrQnJDO0FBRUY7O0dBRUc7QUFDSSxNQUFNLG1CQUFtQixHQUFHLEtBQUssRUFDdEMsVUFBa0IsRUFDbEIsWUFBc0MsRUFDdEMsRUFBRTtJQUNGLE1BQU0sUUFBUSxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLENBQUMsR0FBRyxDQUMvQyxDQUFDLENBQUMsVUFBVSxFQUFFLE9BQU8sQ0FBQyxFQUFFLEVBQUUsQ0FBQyxHQUFHLFVBQVUsSUFBSSxPQUFPLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUN2RSxDQUFDO0lBRUYsZUFBTSxDQUFDLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDO0lBQ3JDLE1BQU0sSUFBQSxxQkFBVyxFQUFDLGVBQWUsUUFBUSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxFQUFFO1FBQ3JELEdBQUcsRUFBRSxVQUFVO0tBQ2hCLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQztBQVpXLFFBQUEsbUJBQW1CLHVCQVk5QjtBQUVGOztHQUVHO0FBQ0ksTUFBTSw2QkFBNkIsR0FBRyxLQUFLLEVBQ2hELGVBQXVCLEVBQ3ZCLFlBQTZCLEVBQzdCLEdBQVksRUFDWixFQUFFO0lBQ0YsTUFBTSxrQkFBa0IsR0FBRyxNQUFNLEVBQUUsQ0FBQyxRQUFRLENBQUMsZUFBZSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBRXRFLE1BQU0saUJBQWlCLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO0lBRXpELElBQUksR0FBRyxFQUFFO1FBQ1AsaUJBQWlCLENBQUMsWUFBWSxHQUFHO1lBQy9CLEdBQUcsaUJBQWlCLENBQUMsWUFBWTtZQUNqQyxHQUFHLFlBQVk7U0FDaEIsQ0FBQztLQUNIO1NBQU07UUFDTCxpQkFBaUIsQ0FBQyxZQUFZLEdBQUcsRUFBQyxHQUFHLFlBQVksRUFBQyxDQUFDO0tBQ3BEO0lBRUQsTUFBTSxFQUFFLENBQUMsU0FBUyxDQUNoQixlQUFlLEVBQ2YsSUFBSSxDQUFDLFNBQVMsQ0FBQyxpQkFBaUIsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQzNDLENBQUM7SUFDRixNQUFNLEVBQUUsQ0FBQyxVQUFVLENBQUMsZUFBZSxFQUFFLElBQUksQ0FBQyxDQUFDO0FBQzdDLENBQUMsQ0FBQztBQXZCVyxRQUFBLDZCQUE2QixpQ0F1QnhDO0FBRUY7O0dBRUc7QUFDSSxNQUFNLHVCQUF1QixHQUFHLENBQ3JDLE9BQXVCLEVBQ3ZCLFlBQXNCLEVBQ3RCLEVBQUU7SUFDRixNQUFNLEtBQUssR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN2RSxNQUFNLFdBQVcsR0FBRyxDQUFDLEdBQUcsSUFBSSxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLEtBQUssU0FBUyxDQUFDLENBQUM7SUFDM0UsTUFBTSxnQkFBZ0IsR0FBb0IsRUFBRSxDQUFDO0lBRTdDLFdBQVcsQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLEVBQUU7UUFDL0IsTUFBTSxVQUFVLEdBQUcsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDLFVBQWtCLEVBQUUsRUFBRSxDQUMxRCxVQUFVLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxDQUNsQyxDQUFDO1FBRUYsSUFBSSxVQUFVLEVBQUU7WUFDZCxNQUFNLGtCQUFrQixHQUFHLFVBQVUsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDakQsTUFBTSxPQUFPLEdBQ1gsa0JBQWtCLENBQUMsTUFBTSxHQUFHLENBQUM7Z0JBQzNCLENBQUMsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUNyQyxDQUFDLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFFNUIsZ0JBQWdCLENBQUMsVUFBVSxDQUFDLEdBQUcsSUFBSSxPQUFPLEVBQUUsQ0FBQztTQUM5QztJQUNILENBQUMsQ0FBQyxDQUFDO0lBRUgsT0FBTyxnQkFBZ0IsQ0FBQztBQUMxQixDQUFDLENBQUM7QUF6QlcsUUFBQSx1QkFBdUIsMkJBeUJsQztBQUVGOztHQUVHO0FBQ0ksTUFBTSwyQkFBMkIsR0FBRyxLQUFLLEVBQzlDLGtCQUEwQixFQUMxQixrQkFBMkIsRUFDM0IsRUFBRTtJQUNGLE1BQU0sa0JBQWtCLEdBQUcsTUFBTSxFQUFFLENBQUMsUUFBUSxDQUFDLGtCQUFrQixFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQ3pFLE1BQU0sd0JBQXdCLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO0lBRWhFLE1BQU0sVUFBVSxHQUFHO1FBQ2pCLElBQUksRUFBRSxXQUFXLENBQUMsSUFBSSxJQUFJLGdCQUFnQjtRQUMxQyxXQUFXLEVBQUUsV0FBVyxDQUFDLFdBQVc7UUFDcEMsTUFBTSxFQUFFLFdBQVcsQ0FBQyxNQUFNO1FBQzFCLElBQUksRUFBRSxXQUFXLENBQUMsSUFBSTtRQUN0QixPQUFPLEVBQUUsV0FBVyxDQUFDLE9BQU87UUFDNUIsUUFBUSxFQUFFLFdBQVcsQ0FBQyxRQUFRO1FBQzlCLFlBQVksRUFBRSxrQkFBa0I7WUFDOUIsQ0FBQyxDQUFDLHdCQUF3QixDQUFDLFlBQVk7WUFDdkMsQ0FBQyxDQUFDLEVBQUU7S0FDUCxDQUFDO0lBRUYsTUFBTSxjQUFjLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FDbEMsRUFBRSxFQUNGLHdCQUF3QixFQUN4QixVQUFVLENBQ1gsQ0FBQztJQUVGLE1BQU0sRUFBRSxDQUFDLFNBQVMsQ0FDaEIsa0JBQWtCLEVBQ2xCLElBQUksQ0FBQyxTQUFTLENBQUMsY0FBYyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsQ0FDeEMsQ0FBQztBQUNKLENBQUMsQ0FBQztBQTdCVyxRQUFBLDJCQUEyQiwrQkE2QnRDIiwic291cmNlc0NvbnRlbnQiOlsiIyEvdXNyL2Jpbi9lbnYgbm9kZVxuLyogZXNsaW50LWRpc2FibGUgbm8tcHJvY2Vzcy1leGl0ICovXG5pbXBvcnQgKiBhcyBmcyBmcm9tICdmcy9wcm9taXNlcyc7XG5pbXBvcnQgKiBhcyBwYXRoIGZyb20gJ3BhdGgnO1xuXG5pbXBvcnQge2V4ZWNQcm9taXNlfSBmcm9tICcuLi8uLi9jb21tb24vdXRpbC9oZWxwZXJzJztcbmltcG9ydCB7aXNEaXJlY3RvcnlFeGlzdHMsIGlzRmlsZUV4aXN0c30gZnJvbSAnLi4vLi4vY29tbW9uL3V0aWwvZnMnO1xuaW1wb3J0IHtsb2dnZXJ9IGZyb20gJy4uLy4uL2NvbW1vbi91dGlsL2xvZ2dlcic7XG5cbmltcG9ydCB7U1RSSU5HU30gZnJvbSAnLi4vY29uZmlnJztcbmltcG9ydCB7TWFuaWZlc3RQbHVnaW4sIFBhdGhXaXRoVmVyc2lvbn0gZnJvbSAnLi4vdHlwZXMvbnBtJztcblxuY29uc3QgcGFja2FnZUpzb24gPSByZXF1aXJlKCcuLi8uLi8uLi9wYWNrYWdlLmpzb24nKTtcblxuY29uc3Qge0lOSVRJQUxJWklOR19QQUNLQUdFX0pTT04sIElOU1RBTExJTkdfTlBNX1BBQ0tBR0VTfSA9IFNUUklOR1M7XG5cbi8qKlxuICogQ2hlY2tzIGlmIHRoZSBwYWNrYWdlLmpzb24gaXMgZXhpc3RzLCBpZiBub3QsIGluaXRpYWxpemVzIGl0LlxuICovXG5leHBvcnQgY29uc3QgaW5pdFBhY2thZ2VKc29uSWZOb3RFeGlzdHMgPSBhc3luYyAoZm9sZGVyUGF0aDogc3RyaW5nKSA9PiB7XG4gIGNvbnN0IHBhY2thZ2VKc29uUGF0aCA9IHBhdGgucmVzb2x2ZShmb2xkZXJQYXRoLCAncGFja2FnZS5qc29uJyk7XG4gIGNvbnN0IGlzUGFja2FnZUpzb25FeGlzdHMgPSBhd2FpdCBpc0ZpbGVFeGlzdHMocGFja2FnZUpzb25QYXRoKTtcblxuICBpZiAoIWlzUGFja2FnZUpzb25FeGlzdHMpIHtcbiAgICBsb2dnZXIuaW5mbyhJTklUSUFMSVpJTkdfUEFDS0FHRV9KU09OKTtcblxuICAgIGNvbnN0IG5vZGVNb2R1bGVzUGF0aCA9IHBhdGgucmVzb2x2ZShmb2xkZXJQYXRoLCAnbm9kZV9tb2R1bGVzJyk7XG4gICAgY29uc3QgaXNOb2RlTW9kdWxlc0V4aXN0cyA9IGF3YWl0IGlzRGlyZWN0b3J5RXhpc3RzKG5vZGVNb2R1bGVzUGF0aCk7XG5cbiAgICBpZiAoaXNOb2RlTW9kdWxlc0V4aXN0cykge1xuICAgICAgYXdhaXQgZnMucm0obm9kZU1vZHVsZXNQYXRoLCB7cmVjdXJzaXZlOiB0cnVlfSk7XG4gICAgfVxuXG4gICAgYXdhaXQgZXhlY1Byb21pc2UoJ25wbSBpbml0IC15Jywge2N3ZDogZm9sZGVyUGF0aH0pO1xuICB9XG5cbiAgcmV0dXJuIHBhY2thZ2VKc29uUGF0aDtcbn07XG5cbi8qKlxuICogSW5zdGFsbHMgcGFja2FnZXMgZnJvbSB0aGUgc3BlY2lmaWVkIGRlcGVuZGVuY2llcyBpbiB0aGUgc3BlY2lmaWVkIGZvbGRlci5cbiAqL1xuZXhwb3J0IGNvbnN0IGluc3RhbGxEZXBlbmRlbmNpZXMgPSBhc3luYyAoXG4gIGZvbGRlclBhdGg6IHN0cmluZyxcbiAgZGVwZW5kZW5jaWVzOiB7W3BhdGg6IHN0cmluZ106IHN0cmluZ31cbikgPT4ge1xuICBjb25zdCBwYWNrYWdlcyA9IE9iamVjdC5lbnRyaWVzKGRlcGVuZGVuY2llcykubWFwKFxuICAgIChbZGVwZW5kZW5jeSwgdmVyc2lvbl0pID0+IGAke2RlcGVuZGVuY3l9QCR7dmVyc2lvbi5yZXBsYWNlKCdeJywgJycpfWBcbiAgKTtcblxuICBsb2dnZXIuaW5mbyhJTlNUQUxMSU5HX05QTV9QQUNLQUdFUyk7XG4gIGF3YWl0IGV4ZWNQcm9taXNlKGBucG0gaW5zdGFsbCAke3BhY2thZ2VzLmpvaW4oJyAnKX1gLCB7XG4gICAgY3dkOiBmb2xkZXJQYXRoLFxuICB9KTtcbn07XG5cbi8qKlxuICogVXBkYXRlcyBwYWNrYWdlLmpzb24gZGVwZW5kZW5jaWVzLlxuICovXG5leHBvcnQgY29uc3QgdXBkYXRlUGFja2FnZUpzb25EZXBlbmRlbmNpZXMgPSBhc3luYyAoXG4gIHBhY2thZ2VKc29uUGF0aDogc3RyaW5nLFxuICBkZXBlbmRlbmNpZXM6IFBhdGhXaXRoVmVyc2lvbixcbiAgY3dkOiBib29sZWFuXG4pID0+IHtcbiAgY29uc3QgcGFja2FnZUpzb25Db250ZW50ID0gYXdhaXQgZnMucmVhZEZpbGUocGFja2FnZUpzb25QYXRoLCAndXRmOCcpO1xuXG4gIGNvbnN0IHBhcnNlZFBhY2thZ2VKc29uID0gSlNPTi5wYXJzZShwYWNrYWdlSnNvbkNvbnRlbnQpO1xuXG4gIGlmIChjd2QpIHtcbiAgICBwYXJzZWRQYWNrYWdlSnNvbi5kZXBlbmRlbmNpZXMgPSB7XG4gICAgICAuLi5wYXJzZWRQYWNrYWdlSnNvbi5kZXBlbmRlbmNpZXMsXG4gICAgICAuLi5kZXBlbmRlbmNpZXMsXG4gICAgfTtcbiAgfSBlbHNlIHtcbiAgICBwYXJzZWRQYWNrYWdlSnNvbi5kZXBlbmRlbmNpZXMgPSB7Li4uZGVwZW5kZW5jaWVzfTtcbiAgfVxuXG4gIGF3YWl0IGZzLndyaXRlRmlsZShcbiAgICBwYWNrYWdlSnNvblBhdGgsXG4gICAgSlNPTi5zdHJpbmdpZnkocGFyc2VkUGFja2FnZUpzb24sIG51bGwsIDIpXG4gICk7XG4gIGF3YWl0IGZzLmFwcGVuZEZpbGUocGFja2FnZUpzb25QYXRoLCAnXFxuJyk7XG59O1xuXG4vKipcbiAqIEdldHMgZGVwZW5jZWNpZXMgd2l0aCB2ZXJzaW9ucy5cbiAqL1xuZXhwb3J0IGNvbnN0IGV4dHJhY3RQYXRoc1dpdGhWZXJzaW9uID0gKFxuICBwbHVnaW5zOiBNYW5pZmVzdFBsdWdpbixcbiAgZGVwZW5kZW5jaWVzOiBzdHJpbmdbXVxuKSA9PiB7XG4gIGNvbnN0IHBhdGhzID0gT2JqZWN0LmtleXMocGx1Z2lucykubWFwKHBsdWdpbiA9PiBwbHVnaW5zW3BsdWdpbl0ucGF0aCk7XG4gIGNvbnN0IHVuaXF1ZVBhdGhzID0gWy4uLm5ldyBTZXQocGF0aHMpXS5maWx0ZXIocGF0aCA9PiBwYXRoICE9PSAnYnVpbHRpbicpO1xuICBjb25zdCBwYXRoc1dpdGhWZXJzaW9uOiBQYXRoV2l0aFZlcnNpb24gPSB7fTtcblxuICB1bmlxdWVQYXRocy5mb3JFYWNoKHBsdWdpblBhdGggPT4ge1xuICAgIGNvbnN0IGRlcGVuZGVuY3kgPSBkZXBlbmRlbmNpZXMuZmluZCgoZGVwZW5kZW5jeTogc3RyaW5nKSA9PlxuICAgICAgZGVwZW5kZW5jeS5zdGFydHNXaXRoKHBsdWdpblBhdGgpXG4gICAgKTtcblxuICAgIGlmIChkZXBlbmRlbmN5KSB7XG4gICAgICBjb25zdCBzcGxpdHRlZERlcGVuZGVuY3kgPSBkZXBlbmRlbmN5LnNwbGl0KCdAJyk7XG4gICAgICBjb25zdCB2ZXJzaW9uID1cbiAgICAgICAgc3BsaXR0ZWREZXBlbmRlbmN5Lmxlbmd0aCA+IDJcbiAgICAgICAgICA/IHNwbGl0dGVkRGVwZW5kZW5jeVsyXS5zcGxpdCgnICcpWzBdXG4gICAgICAgICAgOiBzcGxpdHRlZERlcGVuZGVuY3lbMV07XG5cbiAgICAgIHBhdGhzV2l0aFZlcnNpb25bcGx1Z2luUGF0aF0gPSBgXiR7dmVyc2lvbn1gO1xuICAgIH1cbiAgfSk7XG5cbiAgcmV0dXJuIHBhdGhzV2l0aFZlcnNpb247XG59O1xuXG4vKipcbiAqIFVwZGF0ZSB0aGUgcGFja2FnZS5qc29uIHByb3BlcnRpZXMuXG4gKi9cbmV4cG9ydCBjb25zdCB1cGRhdGVQYWNrYWdlSnNvblByb3BlcnRpZXMgPSBhc3luYyAoXG4gIG5ld1BhY2thZ2VKc29uUGF0aDogc3RyaW5nLFxuICBhcHBlbmREZXBlbmRlbmNpZXM6IGJvb2xlYW5cbikgPT4ge1xuICBjb25zdCBwYWNrYWdlSnNvbkNvbnRlbnQgPSBhd2FpdCBmcy5yZWFkRmlsZShuZXdQYWNrYWdlSnNvblBhdGgsICd1dGY4Jyk7XG4gIGNvbnN0IHBhcnNlZFBhY2thZ2VKc29uQ29udGVudCA9IEpTT04ucGFyc2UocGFja2FnZUpzb25Db250ZW50KTtcblxuICBjb25zdCBwcm9wZXJ0aWVzID0ge1xuICAgIG5hbWU6IHBhY2thZ2VKc29uLm5hbWUgfHwgJ2lmLWVudmlyb25tZW50JyxcbiAgICBkZXNjcmlwdGlvbjogcGFja2FnZUpzb24uZGVzY3JpcHRpb24sXG4gICAgYXV0aG9yOiBwYWNrYWdlSnNvbi5hdXRob3IsXG4gICAgYnVnczogcGFja2FnZUpzb24uYnVncyxcbiAgICBlbmdpbmVzOiBwYWNrYWdlSnNvbi5lbmdpbmVzLFxuICAgIGhvbWVwYWdlOiBwYWNrYWdlSnNvbi5ob21lcGFnZSxcbiAgICBkZXBlbmRlbmNpZXM6IGFwcGVuZERlcGVuZGVuY2llc1xuICAgICAgPyBwYXJzZWRQYWNrYWdlSnNvbkNvbnRlbnQuZGVwZW5kZW5jaWVzXG4gICAgICA6IHt9LFxuICB9O1xuXG4gIGNvbnN0IG5ld1BhY2thZ2VKc29uID0gT2JqZWN0LmFzc2lnbihcbiAgICB7fSxcbiAgICBwYXJzZWRQYWNrYWdlSnNvbkNvbnRlbnQsXG4gICAgcHJvcGVydGllc1xuICApO1xuXG4gIGF3YWl0IGZzLndyaXRlRmlsZShcbiAgICBuZXdQYWNrYWdlSnNvblBhdGgsXG4gICAgSlNPTi5zdHJpbmdpZnkobmV3UGFja2FnZUpzb24sIG51bGwsIDIpXG4gICk7XG59O1xuIl19
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.CONFIG = void 0;
|
|
4
|
+
const config_1 = require("../../common/config");
|
|
5
|
+
const { DISCLAIMER_MESSAGE } = config_1.STRINGS;
|
|
6
|
+
exports.CONFIG = {
|
|
7
|
+
ARGS: {
|
|
8
|
+
manifests: {
|
|
9
|
+
type: String,
|
|
10
|
+
multiple: true,
|
|
11
|
+
alias: 'm',
|
|
12
|
+
description: '[path to the manifests files]',
|
|
13
|
+
},
|
|
14
|
+
output: {
|
|
15
|
+
type: String,
|
|
16
|
+
optional: true,
|
|
17
|
+
alias: 'o',
|
|
18
|
+
description: '[path to the merged output file]',
|
|
19
|
+
},
|
|
20
|
+
name: {
|
|
21
|
+
type: String,
|
|
22
|
+
optional: true,
|
|
23
|
+
alias: 'n',
|
|
24
|
+
description: '[name of the merged manifest]',
|
|
25
|
+
},
|
|
26
|
+
description: {
|
|
27
|
+
type: String,
|
|
28
|
+
optional: true,
|
|
29
|
+
alias: 'd',
|
|
30
|
+
description: '[decription of the merged manifest]',
|
|
31
|
+
},
|
|
32
|
+
},
|
|
33
|
+
HELP: {
|
|
34
|
+
helpArg: 'help',
|
|
35
|
+
headerContentSections: [
|
|
36
|
+
{ header: 'Impact Framework', content: 'IF-Merge Helpful keywords:' },
|
|
37
|
+
],
|
|
38
|
+
footerContentSections: [
|
|
39
|
+
{ header: 'Green Software Foundation', content: DISCLAIMER_MESSAGE },
|
|
40
|
+
],
|
|
41
|
+
},
|
|
42
|
+
};
|
|
43
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2lmLW1lcmdlL2NvbmZpZy9jb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBRUEsZ0RBQTRDO0FBSTVDLE1BQU0sRUFBQyxrQkFBa0IsRUFBQyxHQUFHLGdCQUFPLENBQUM7QUFFeEIsUUFBQSxNQUFNLEdBQUc7SUFDcEIsSUFBSSxFQUFFO1FBQ0osU0FBUyxFQUFFO1lBQ1QsSUFBSSxFQUFFLE1BQU07WUFDWixRQUFRLEVBQUUsSUFBSTtZQUNkLEtBQUssRUFBRSxHQUFHO1lBQ1YsV0FBVyxFQUFFLCtCQUErQjtTQUM3QztRQUNELE1BQU0sRUFBRTtZQUNOLElBQUksRUFBRSxNQUFNO1lBQ1osUUFBUSxFQUFFLElBQUk7WUFDZCxLQUFLLEVBQUUsR0FBRztZQUNWLFdBQVcsRUFBRSxrQ0FBa0M7U0FDaEQ7UUFDRCxJQUFJLEVBQUU7WUFDSixJQUFJLEVBQUUsTUFBTTtZQUNaLFFBQVEsRUFBRSxJQUFJO1lBQ2QsS0FBSyxFQUFFLEdBQUc7WUFDVixXQUFXLEVBQUUsK0JBQStCO1NBQzdDO1FBQ0QsV0FBVyxFQUFFO1lBQ1gsSUFBSSxFQUFFLE1BQU07WUFDWixRQUFRLEVBQUUsSUFBSTtZQUNkLEtBQUssRUFBRSxHQUFHO1lBQ1YsV0FBVyxFQUFFLHFDQUFxQztTQUNuRDtLQUN3QztJQUMzQyxJQUFJLEVBQUU7UUFDSixPQUFPLEVBQUUsTUFBTTtRQUNmLHFCQUFxQixFQUFFO1lBQ3JCLEVBQUMsTUFBTSxFQUFFLGtCQUFrQixFQUFFLE9BQU8sRUFBRSw0QkFBNEIsRUFBQztTQUNwRTtRQUNELHFCQUFxQixFQUFFO1lBQ3JCLEVBQUMsTUFBTSxFQUFFLDJCQUEyQixFQUFFLE9BQU8sRUFBRSxrQkFBa0IsRUFBQztTQUNuRTtLQUNtQjtDQUN2QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtBcmd1bWVudENvbmZpZywgUGFyc2VPcHRpb25zfSBmcm9tICd0cy1jb21tYW5kLWxpbmUtYXJncyc7XG5cbmltcG9ydCB7U1RSSU5HU30gZnJvbSAnLi4vLi4vY29tbW9uL2NvbmZpZyc7XG5cbmltcG9ydCB7SUZNZXJnZUFyZ3N9IGZyb20gJy4uL3R5cGVzL3Byb2Nlc3MtYXJncyc7XG5cbmNvbnN0IHtESVNDTEFJTUVSX01FU1NBR0V9ID0gU1RSSU5HUztcblxuZXhwb3J0IGNvbnN0IENPTkZJRyA9IHtcbiAgQVJHUzoge1xuICAgIG1hbmlmZXN0czoge1xuICAgICAgdHlwZTogU3RyaW5nLFxuICAgICAgbXVsdGlwbGU6IHRydWUsXG4gICAgICBhbGlhczogJ20nLFxuICAgICAgZGVzY3JpcHRpb246ICdbcGF0aCB0byB0aGUgbWFuaWZlc3RzIGZpbGVzXScsXG4gICAgfSxcbiAgICBvdXRwdXQ6IHtcbiAgICAgIHR5cGU6IFN0cmluZyxcbiAgICAgIG9wdGlvbmFsOiB0cnVlLFxuICAgICAgYWxpYXM6ICdvJyxcbiAgICAgIGRlc2NyaXB0aW9uOiAnW3BhdGggdG8gdGhlIG1lcmdlZCBvdXRwdXQgZmlsZV0nLFxuICAgIH0sXG4gICAgbmFtZToge1xuICAgICAgdHlwZTogU3RyaW5nLFxuICAgICAgb3B0aW9uYWw6IHRydWUsXG4gICAgICBhbGlhczogJ24nLFxuICAgICAgZGVzY3JpcHRpb246ICdbbmFtZSBvZiB0aGUgbWVyZ2VkIG1hbmlmZXN0XScsXG4gICAgfSxcbiAgICBkZXNjcmlwdGlvbjoge1xuICAgICAgdHlwZTogU3RyaW5nLFxuICAgICAgb3B0aW9uYWw6IHRydWUsXG4gICAgICBhbGlhczogJ2QnLFxuICAgICAgZGVzY3JpcHRpb246ICdbZGVjcmlwdGlvbiBvZiB0aGUgbWVyZ2VkIG1hbmlmZXN0XScsXG4gICAgfSxcbiAgfSBhcyB1bmtub3duIGFzIEFyZ3VtZW50Q29uZmlnPElGTWVyZ2VBcmdzPixcbiAgSEVMUDoge1xuICAgIGhlbHBBcmc6ICdoZWxwJyxcbiAgICBoZWFkZXJDb250ZW50U2VjdGlvbnM6IFtcbiAgICAgIHtoZWFkZXI6ICdJbXBhY3QgRnJhbWV3b3JrJywgY29udGVudDogJ0lGLU1lcmdlIEhlbHBmdWwga2V5d29yZHM6J30sXG4gICAgXSxcbiAgICBmb290ZXJDb250ZW50U2VjdGlvbnM6IFtcbiAgICAgIHtoZWFkZXI6ICdHcmVlbiBTb2Z0d2FyZSBGb3VuZGF0aW9uJywgY29udGVudDogRElTQ0xBSU1FUl9NRVNTQUdFfSxcbiAgICBdLFxuICB9IGFzIFBhcnNlT3B0aW9uczxhbnk+LFxufTtcbiJdfQ==
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.STRINGS = exports.CONFIG = void 0;
|
|
4
|
+
var config_1 = require("./config");
|
|
5
|
+
Object.defineProperty(exports, "CONFIG", { enumerable: true, get: function () { return config_1.CONFIG; } });
|
|
6
|
+
var strings_1 = require("./strings");
|
|
7
|
+
Object.defineProperty(exports, "STRINGS", { enumerable: true, get: function () { return strings_1.STRINGS; } });
|
|
8
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvaWYtbWVyZ2UvY29uZmlnL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLG1DQUFnQztBQUF4QixnR0FBQSxNQUFNLE9BQUE7QUFDZCxxQ0FBa0M7QUFBMUIsa0dBQUEsT0FBTyxPQUFBIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHtDT05GSUd9IGZyb20gJy4vY29uZmlnJztcbmV4cG9ydCB7U1RSSU5HU30gZnJvbSAnLi9zdHJpbmdzJztcbiJdfQ==
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.STRINGS = void 0;
|
|
4
|
+
exports.STRINGS = {
|
|
5
|
+
MERGING: 'Merging...',
|
|
6
|
+
SUCCESS_MESSAGE: '\nManifests are merged successfully!',
|
|
7
|
+
MANIFEST_IS_NOT_YAML: (path) => `The \`${path}\` is not in yaml format.`,
|
|
8
|
+
};
|
|
9
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RyaW5ncy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9pZi1tZXJnZS9jb25maWcvc3RyaW5ncy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBYSxRQUFBLE9BQU8sR0FBRztJQUNyQixPQUFPLEVBQUUsWUFBWTtJQUNyQixlQUFlLEVBQUUsc0NBQXNDO0lBQ3ZELG9CQUFvQixFQUFFLENBQUMsSUFBWSxFQUFFLEVBQUUsQ0FDckMsU0FBUyxJQUFJLDJCQUEyQjtDQUMzQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IFNUUklOR1MgPSB7XG4gIE1FUkdJTkc6ICdNZXJnaW5nLi4uJyxcbiAgU1VDQ0VTU19NRVNTQUdFOiAnXFxuTWFuaWZlc3RzIGFyZSBtZXJnZWQgc3VjY2Vzc2Z1bGx5IScsXG4gIE1BTklGRVNUX0lTX05PVF9ZQU1MOiAocGF0aDogc3RyaW5nKSA9PlxuICAgIGBUaGUgXFxgJHtwYXRofVxcYCBpcyBub3QgaW4geWFtbCBmb3JtYXQuYCxcbn07XG4iXX0=
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
"use strict";
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
/* eslint-disable no-process-exit */
|
|
5
|
+
const debug_logger_1 = require("../common/util/debug-logger");
|
|
6
|
+
const logger_1 = require("../common/util/logger");
|
|
7
|
+
const args_1 = require("./util/args");
|
|
8
|
+
const helpers_1 = require("./util/helpers");
|
|
9
|
+
const config_1 = require("./config");
|
|
10
|
+
const { MERGING, SUCCESS_MESSAGE } = config_1.STRINGS;
|
|
11
|
+
const IfMerge = async () => {
|
|
12
|
+
// Call this function with false parameter to prevent log debug messages.
|
|
13
|
+
debug_logger_1.debugLogger.overrideConsoleMethods(false);
|
|
14
|
+
const commandArgs = await (0, args_1.parseIfMergeArgs)();
|
|
15
|
+
console.log(`${MERGING}\n`);
|
|
16
|
+
await (0, helpers_1.mergeManifests)(commandArgs);
|
|
17
|
+
console.log(SUCCESS_MESSAGE);
|
|
18
|
+
process.exit(0);
|
|
19
|
+
};
|
|
20
|
+
IfMerge().catch(error => {
|
|
21
|
+
if (error instanceof Error) {
|
|
22
|
+
logger_1.logger.error(error);
|
|
23
|
+
process.exit(2);
|
|
24
|
+
}
|
|
25
|
+
});
|
|
26
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaWYtbWVyZ2UvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0Esb0NBQW9DO0FBQ3BDLDhEQUF3RDtBQUN4RCxrREFBNkM7QUFFN0Msc0NBQTZDO0FBQzdDLDRDQUE4QztBQUU5QyxxQ0FBaUM7QUFFakMsTUFBTSxFQUFDLE9BQU8sRUFBRSxlQUFlLEVBQUMsR0FBRyxnQkFBTyxDQUFDO0FBRTNDLE1BQU0sT0FBTyxHQUFHLEtBQUssSUFBSSxFQUFFO0lBQ3pCLHlFQUF5RTtJQUN6RSwwQkFBVyxDQUFDLHNCQUFzQixDQUFDLEtBQUssQ0FBQyxDQUFDO0lBRTFDLE1BQU0sV0FBVyxHQUFHLE1BQU0sSUFBQSx1QkFBZ0IsR0FBRSxDQUFDO0lBRTdDLE9BQU8sQ0FBQyxHQUFHLENBQUMsR0FBRyxPQUFPLElBQUksQ0FBQyxDQUFDO0lBRTVCLE1BQU0sSUFBQSx3QkFBYyxFQUFDLFdBQVcsQ0FBQyxDQUFDO0lBRWxDLE9BQU8sQ0FBQyxHQUFHLENBQUMsZUFBZSxDQUFDLENBQUM7SUFFN0IsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNsQixDQUFDLENBQUM7QUFFRixPQUFPLEVBQUUsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLEVBQUU7SUFDdEIsSUFBSSxLQUFLLFlBQVksS0FBSyxFQUFFO1FBQzFCLGVBQU0sQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDcEIsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztLQUNqQjtBQUNILENBQUMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiIyEvdXNyL2Jpbi9lbnYgbm9kZVxuLyogZXNsaW50LWRpc2FibGUgbm8tcHJvY2Vzcy1leGl0ICovXG5pbXBvcnQge2RlYnVnTG9nZ2VyfSBmcm9tICcuLi9jb21tb24vdXRpbC9kZWJ1Zy1sb2dnZXInO1xuaW1wb3J0IHtsb2dnZXJ9IGZyb20gJy4uL2NvbW1vbi91dGlsL2xvZ2dlcic7XG5cbmltcG9ydCB7cGFyc2VJZk1lcmdlQXJnc30gZnJvbSAnLi91dGlsL2FyZ3MnO1xuaW1wb3J0IHttZXJnZU1hbmlmZXN0c30gZnJvbSAnLi91dGlsL2hlbHBlcnMnO1xuXG5pbXBvcnQge1NUUklOR1N9IGZyb20gJy4vY29uZmlnJztcblxuY29uc3Qge01FUkdJTkcsIFNVQ0NFU1NfTUVTU0FHRX0gPSBTVFJJTkdTO1xuXG5jb25zdCBJZk1lcmdlID0gYXN5bmMgKCkgPT4ge1xuICAvLyBDYWxsIHRoaXMgZnVuY3Rpb24gd2l0aCBmYWxzZSBwYXJhbWV0ZXIgdG8gcHJldmVudCBsb2cgZGVidWcgbWVzc2FnZXMuXG4gIGRlYnVnTG9nZ2VyLm92ZXJyaWRlQ29uc29sZU1ldGhvZHMoZmFsc2UpO1xuXG4gIGNvbnN0IGNvbW1hbmRBcmdzID0gYXdhaXQgcGFyc2VJZk1lcmdlQXJncygpO1xuXG4gIGNvbnNvbGUubG9nKGAke01FUkdJTkd9XFxuYCk7XG5cbiAgYXdhaXQgbWVyZ2VNYW5pZmVzdHMoY29tbWFuZEFyZ3MpO1xuXG4gIGNvbnNvbGUubG9nKFNVQ0NFU1NfTUVTU0FHRSk7XG5cbiAgcHJvY2Vzcy5leGl0KDApO1xufTtcblxuSWZNZXJnZSgpLmNhdGNoKGVycm9yID0+IHtcbiAgaWYgKGVycm9yIGluc3RhbmNlb2YgRXJyb3IpIHtcbiAgICBsb2dnZXIuZXJyb3IoZXJyb3IpO1xuICAgIHByb2Nlc3MuZXhpdCgyKTtcbiAgfVxufSk7XG4iXX0=
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvY2Vzcy1hcmdzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2lmLW1lcmdlL3R5cGVzL3Byb2Nlc3MtYXJncy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBJRk1lcmdlQXJncyB7XG4gIG1hbmlmZXN0czogc3RyaW5nW107XG4gIG91dHB1dD86IHN0cmluZztcbiAgbmFtZT86IHN0cmluZztcbiAgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG59XG4iXX0=
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Checks if the `manifests` command is provided and they are valid manifests files or a folder.
|
|
3
|
+
*/
|
|
4
|
+
export declare const parseIfMergeArgs: () => Promise<{
|
|
5
|
+
manifests: string[];
|
|
6
|
+
output: string | undefined;
|
|
7
|
+
name: string | undefined;
|
|
8
|
+
description: string | undefined;
|
|
9
|
+
}>;
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.parseIfMergeArgs = void 0;
|
|
4
|
+
const ts_command_line_args_1 = require("ts-command-line-args");
|
|
5
|
+
const utils_1 = require("@grnsft/if-core/utils");
|
|
6
|
+
const fs_1 = require("../../common/util/fs");
|
|
7
|
+
const helpers_1 = require("../../common/util/helpers");
|
|
8
|
+
const yaml_1 = require("../../common/util/yaml");
|
|
9
|
+
const config_1 = require("../../common/config");
|
|
10
|
+
const config_2 = require("../config");
|
|
11
|
+
const { ParseCliParamsError, InvalidDirectoryError, CliSourceFileError } = utils_1.ERRORS;
|
|
12
|
+
const { ARGS, HELP } = config_2.CONFIG;
|
|
13
|
+
const { MANIFEST_IS_NOT_YAML } = config_2.STRINGS;
|
|
14
|
+
const { MANIFEST_NOT_FOUND, DIRECTORY_NOT_FOUND } = config_1.STRINGS;
|
|
15
|
+
/**
|
|
16
|
+
* Parses `if-merge` process arguments.
|
|
17
|
+
*/
|
|
18
|
+
const validateAndParseIfMergeArgs = () => {
|
|
19
|
+
try {
|
|
20
|
+
return (0, ts_command_line_args_1.parse)(ARGS, HELP);
|
|
21
|
+
}
|
|
22
|
+
catch (error) {
|
|
23
|
+
if (error instanceof Error) {
|
|
24
|
+
throw new ParseCliParamsError(error.message);
|
|
25
|
+
}
|
|
26
|
+
throw error;
|
|
27
|
+
}
|
|
28
|
+
};
|
|
29
|
+
/**
|
|
30
|
+
* Checks if the `manifests` command is provided and they are valid manifests files or a folder.
|
|
31
|
+
*/
|
|
32
|
+
const parseIfMergeArgs = async () => {
|
|
33
|
+
const { manifests, output, name, description } = validateAndParseIfMergeArgs();
|
|
34
|
+
const manifestsWithFullPath = [];
|
|
35
|
+
if (manifests.length === 1) {
|
|
36
|
+
const isDirectory = await (0, fs_1.isDirectoryExists)(manifests[0]);
|
|
37
|
+
if (!isDirectory) {
|
|
38
|
+
throw new InvalidDirectoryError(DIRECTORY_NOT_FOUND);
|
|
39
|
+
}
|
|
40
|
+
return { manifests, output, name, description };
|
|
41
|
+
}
|
|
42
|
+
for await (const manifest of manifests) {
|
|
43
|
+
const response = (0, helpers_1.prependFullFilePath)(manifest);
|
|
44
|
+
const isManifestFileExists = await (0, fs_1.isFileExists)(response);
|
|
45
|
+
const isYamlFile = (0, yaml_1.checkIfFileIsYaml)(response);
|
|
46
|
+
if (!isManifestFileExists) {
|
|
47
|
+
throw new ParseCliParamsError(`${manifest} ${MANIFEST_NOT_FOUND}`);
|
|
48
|
+
}
|
|
49
|
+
if (!isYamlFile) {
|
|
50
|
+
throw new CliSourceFileError(MANIFEST_IS_NOT_YAML(manifest));
|
|
51
|
+
}
|
|
52
|
+
if ((0, yaml_1.checkIfFileIsYaml)(manifest)) {
|
|
53
|
+
manifestsWithFullPath.push(response);
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
return { manifests: manifestsWithFullPath, output, name, description };
|
|
57
|
+
};
|
|
58
|
+
exports.parseIfMergeArgs = parseIfMergeArgs;
|
|
59
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXJncy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9pZi1tZXJnZS91dGlsL2FyZ3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsK0RBQTJDO0FBQzNDLGlEQUE2QztBQUU3Qyw2Q0FBcUU7QUFDckUsdURBQThEO0FBQzlELGlEQUF5RDtBQUV6RCxnREFBOEQ7QUFJOUQsc0NBQTBDO0FBRTFDLE1BQU0sRUFBQyxtQkFBbUIsRUFBRSxxQkFBcUIsRUFBRSxrQkFBa0IsRUFBQyxHQUFHLGNBQU0sQ0FBQztBQUNoRixNQUFNLEVBQUMsSUFBSSxFQUFFLElBQUksRUFBQyxHQUFHLGVBQU0sQ0FBQztBQUM1QixNQUFNLEVBQUMsb0JBQW9CLEVBQUMsR0FBRyxnQkFBTyxDQUFDO0FBQ3ZDLE1BQU0sRUFBQyxrQkFBa0IsRUFBRSxtQkFBbUIsRUFBQyxHQUFHLGdCQUFjLENBQUM7QUFFakU7O0dBRUc7QUFDSCxNQUFNLDJCQUEyQixHQUFHLEdBQUcsRUFBRTtJQUN2QyxJQUFJO1FBQ0YsT0FBTyxJQUFBLDRCQUFLLEVBQWMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO0tBQ3ZDO0lBQUMsT0FBTyxLQUFLLEVBQUU7UUFDZCxJQUFJLEtBQUssWUFBWSxLQUFLLEVBQUU7WUFDMUIsTUFBTSxJQUFJLG1CQUFtQixDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztTQUM5QztRQUVELE1BQU0sS0FBSyxDQUFDO0tBQ2I7QUFDSCxDQUFDLENBQUM7QUFFRjs7R0FFRztBQUNJLE1BQU0sZ0JBQWdCLEdBQUcsS0FBSyxJQUFJLEVBQUU7SUFDekMsTUFBTSxFQUFDLFNBQVMsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBQyxHQUFHLDJCQUEyQixFQUFFLENBQUM7SUFFN0UsTUFBTSxxQkFBcUIsR0FBRyxFQUFFLENBQUM7SUFFakMsSUFBSSxTQUFTLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtRQUMxQixNQUFNLFdBQVcsR0FBRyxNQUFNLElBQUEsc0JBQWlCLEVBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDMUQsSUFBSSxDQUFDLFdBQVcsRUFBRTtZQUNoQixNQUFNLElBQUkscUJBQXFCLENBQUMsbUJBQW1CLENBQUMsQ0FBQztTQUN0RDtRQUVELE9BQU8sRUFBQyxTQUFTLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUMsQ0FBQztLQUMvQztJQUVELElBQUksS0FBSyxFQUFFLE1BQU0sUUFBUSxJQUFJLFNBQVMsRUFBRTtRQUN0QyxNQUFNLFFBQVEsR0FBRyxJQUFBLDZCQUFtQixFQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQy9DLE1BQU0sb0JBQW9CLEdBQUcsTUFBTSxJQUFBLGlCQUFZLEVBQUMsUUFBUSxDQUFDLENBQUM7UUFDMUQsTUFBTSxVQUFVLEdBQUcsSUFBQSx3QkFBaUIsRUFBQyxRQUFRLENBQUMsQ0FBQztRQUUvQyxJQUFJLENBQUMsb0JBQW9CLEVBQUU7WUFDekIsTUFBTSxJQUFJLG1CQUFtQixDQUFDLEdBQUcsUUFBUSxJQUFJLGtCQUFrQixFQUFFLENBQUMsQ0FBQztTQUNwRTtRQUVELElBQUksQ0FBQyxVQUFVLEVBQUU7WUFDZixNQUFNLElBQUksa0JBQWtCLENBQUMsb0JBQW9CLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztTQUM5RDtRQUVELElBQUksSUFBQSx3QkFBaUIsRUFBQyxRQUFRLENBQUMsRUFBRTtZQUMvQixxQkFBcUIsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7U0FDdEM7S0FDRjtJQUVELE9BQU8sRUFBQyxTQUFTLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUMsQ0FBQztBQUN2RSxDQUFDLENBQUM7QUFqQ1csUUFBQSxnQkFBZ0Isb0JBaUMzQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7cGFyc2V9IGZyb20gJ3RzLWNvbW1hbmQtbGluZS1hcmdzJztcbmltcG9ydCB7RVJST1JTfSBmcm9tICdAZ3Juc2Z0L2lmLWNvcmUvdXRpbHMnO1xuXG5pbXBvcnQge2lzRmlsZUV4aXN0cywgaXNEaXJlY3RvcnlFeGlzdHN9IGZyb20gJy4uLy4uL2NvbW1vbi91dGlsL2ZzJztcbmltcG9ydCB7cHJlcGVuZEZ1bGxGaWxlUGF0aH0gZnJvbSAnLi4vLi4vY29tbW9uL3V0aWwvaGVscGVycyc7XG5pbXBvcnQge2NoZWNrSWZGaWxlSXNZYW1sfSBmcm9tICcuLi8uLi9jb21tb24vdXRpbC95YW1sJztcblxuaW1wb3J0IHtTVFJJTkdTIGFzIENPTU1PTl9TVFJJTkdTfSBmcm9tICcuLi8uLi9jb21tb24vY29uZmlnJztcblxuaW1wb3J0IHtJRk1lcmdlQXJnc30gZnJvbSAnLi4vdHlwZXMvcHJvY2Vzcy1hcmdzJztcblxuaW1wb3J0IHtDT05GSUcsIFNUUklOR1N9IGZyb20gJy4uL2NvbmZpZyc7XG5cbmNvbnN0IHtQYXJzZUNsaVBhcmFtc0Vycm9yLCBJbnZhbGlkRGlyZWN0b3J5RXJyb3IsIENsaVNvdXJjZUZpbGVFcnJvcn0gPSBFUlJPUlM7XG5jb25zdCB7QVJHUywgSEVMUH0gPSBDT05GSUc7XG5jb25zdCB7TUFOSUZFU1RfSVNfTk9UX1lBTUx9ID0gU1RSSU5HUztcbmNvbnN0IHtNQU5JRkVTVF9OT1RfRk9VTkQsIERJUkVDVE9SWV9OT1RfRk9VTkR9ID0gQ09NTU9OX1NUUklOR1M7XG5cbi8qKlxuICogUGFyc2VzIGBpZi1tZXJnZWAgcHJvY2VzcyBhcmd1bWVudHMuXG4gKi9cbmNvbnN0IHZhbGlkYXRlQW5kUGFyc2VJZk1lcmdlQXJncyA9ICgpID0+IHtcbiAgdHJ5IHtcbiAgICByZXR1cm4gcGFyc2U8SUZNZXJnZUFyZ3M+KEFSR1MsIEhFTFApO1xuICB9IGNhdGNoIChlcnJvcikge1xuICAgIGlmIChlcnJvciBpbnN0YW5jZW9mIEVycm9yKSB7XG4gICAgICB0aHJvdyBuZXcgUGFyc2VDbGlQYXJhbXNFcnJvcihlcnJvci5tZXNzYWdlKTtcbiAgICB9XG5cbiAgICB0aHJvdyBlcnJvcjtcbiAgfVxufTtcblxuLyoqXG4gKiBDaGVja3MgaWYgdGhlIGBtYW5pZmVzdHNgIGNvbW1hbmQgaXMgcHJvdmlkZWQgYW5kIHRoZXkgYXJlIHZhbGlkIG1hbmlmZXN0cyBmaWxlcyBvciBhIGZvbGRlci5cbiAqL1xuZXhwb3J0IGNvbnN0IHBhcnNlSWZNZXJnZUFyZ3MgPSBhc3luYyAoKSA9PiB7XG4gIGNvbnN0IHttYW5pZmVzdHMsIG91dHB1dCwgbmFtZSwgZGVzY3JpcHRpb259ID0gdmFsaWRhdGVBbmRQYXJzZUlmTWVyZ2VBcmdzKCk7XG5cbiAgY29uc3QgbWFuaWZlc3RzV2l0aEZ1bGxQYXRoID0gW107XG5cbiAgaWYgKG1hbmlmZXN0cy5sZW5ndGggPT09IDEpIHtcbiAgICBjb25zdCBpc0RpcmVjdG9yeSA9IGF3YWl0IGlzRGlyZWN0b3J5RXhpc3RzKG1hbmlmZXN0c1swXSk7XG4gICAgaWYgKCFpc0RpcmVjdG9yeSkge1xuICAgICAgdGhyb3cgbmV3IEludmFsaWREaXJlY3RvcnlFcnJvcihESVJFQ1RPUllfTk9UX0ZPVU5EKTtcbiAgICB9XG5cbiAgICByZXR1cm4ge21hbmlmZXN0cywgb3V0cHV0LCBuYW1lLCBkZXNjcmlwdGlvbn07XG4gIH1cblxuICBmb3IgYXdhaXQgKGNvbnN0IG1hbmlmZXN0IG9mIG1hbmlmZXN0cykge1xuICAgIGNvbnN0IHJlc3BvbnNlID0gcHJlcGVuZEZ1bGxGaWxlUGF0aChtYW5pZmVzdCk7XG4gICAgY29uc3QgaXNNYW5pZmVzdEZpbGVFeGlzdHMgPSBhd2FpdCBpc0ZpbGVFeGlzdHMocmVzcG9uc2UpO1xuICAgIGNvbnN0IGlzWWFtbEZpbGUgPSBjaGVja0lmRmlsZUlzWWFtbChyZXNwb25zZSk7XG5cbiAgICBpZiAoIWlzTWFuaWZlc3RGaWxlRXhpc3RzKSB7XG4gICAgICB0aHJvdyBuZXcgUGFyc2VDbGlQYXJhbXNFcnJvcihgJHttYW5pZmVzdH0gJHtNQU5JRkVTVF9OT1RfRk9VTkR9YCk7XG4gICAgfVxuXG4gICAgaWYgKCFpc1lhbWxGaWxlKSB7XG4gICAgICB0aHJvdyBuZXcgQ2xpU291cmNlRmlsZUVycm9yKE1BTklGRVNUX0lTX05PVF9ZQU1MKG1hbmlmZXN0KSk7XG4gICAgfVxuXG4gICAgaWYgKGNoZWNrSWZGaWxlSXNZYW1sKG1hbmlmZXN0KSkge1xuICAgICAgbWFuaWZlc3RzV2l0aEZ1bGxQYXRoLnB1c2gocmVzcG9uc2UpO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiB7bWFuaWZlc3RzOiBtYW5pZmVzdHNXaXRoRnVsbFBhdGgsIG91dHB1dCwgbmFtZSwgZGVzY3JpcHRpb259O1xufTtcbiJdfQ==
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
25
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
+
exports.mergeManifests = void 0;
|
|
27
|
+
const path = __importStar(require("path"));
|
|
28
|
+
const fs_1 = require("../../common/util/fs");
|
|
29
|
+
const load_1 = require("../../common/lib/load");
|
|
30
|
+
const exhaust_1 = require("../../if-run/lib/exhaust");
|
|
31
|
+
/**
|
|
32
|
+
* Merges the given manifests in the one file.
|
|
33
|
+
*/
|
|
34
|
+
const mergeManifests = async (mergeArgs) => {
|
|
35
|
+
const { manifests: commandManifests, output, name, description } = mergeArgs;
|
|
36
|
+
let manifests = commandManifests;
|
|
37
|
+
if (commandManifests.length === 1) {
|
|
38
|
+
manifests = await (0, fs_1.getYamlFiles)(commandManifests[0]);
|
|
39
|
+
}
|
|
40
|
+
const context = {
|
|
41
|
+
name: name || 'if-merge',
|
|
42
|
+
description: description || 'merged manifest',
|
|
43
|
+
tags: null,
|
|
44
|
+
initialize: { plugins: {} },
|
|
45
|
+
};
|
|
46
|
+
const tree = await mergeManifestsData(manifests, context);
|
|
47
|
+
await saveMergedManifest(tree, context, output);
|
|
48
|
+
};
|
|
49
|
+
exports.mergeManifests = mergeManifests;
|
|
50
|
+
/**
|
|
51
|
+
* Merges manifests data.
|
|
52
|
+
*/
|
|
53
|
+
const mergeManifestsData = async (manifests, context) => {
|
|
54
|
+
const tree = { children: {} };
|
|
55
|
+
for await (const manifest of manifests) {
|
|
56
|
+
const manifestName = (0, fs_1.getFileName)(manifest);
|
|
57
|
+
const { rawManifest } = await (0, load_1.load)(manifest);
|
|
58
|
+
const parentDir = path.basename(path.dirname(manifest));
|
|
59
|
+
const uniqueName = `${parentDir}-${manifestName}`;
|
|
60
|
+
context.tags = Object.assign({}, context.tags, rawManifest.tags);
|
|
61
|
+
context.initialize.plugins = {
|
|
62
|
+
...context.initialize.plugins,
|
|
63
|
+
...rawManifest.initialize.plugins,
|
|
64
|
+
};
|
|
65
|
+
Object.keys(rawManifest.tree.children).forEach(child => {
|
|
66
|
+
tree.children[`${child}-${uniqueName}`] = {
|
|
67
|
+
...rawManifest.tree.children[child],
|
|
68
|
+
};
|
|
69
|
+
});
|
|
70
|
+
}
|
|
71
|
+
return tree;
|
|
72
|
+
};
|
|
73
|
+
/**
|
|
74
|
+
* Saves the merged manifest in the `merged-manifest.yaml` file.
|
|
75
|
+
*/
|
|
76
|
+
const saveMergedManifest = async (tree, context, outputPath) => {
|
|
77
|
+
const output = {
|
|
78
|
+
outputPath,
|
|
79
|
+
noOutput: false,
|
|
80
|
+
};
|
|
81
|
+
await (0, exhaust_1.exhaust)(tree, context, output);
|
|
82
|
+
};
|
|
83
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVscGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9pZi1tZXJnZS91dGlsL2hlbHBlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSwyQ0FBNkI7QUFFN0IsNkNBQStEO0FBRS9ELGdEQUEyQztBQUUzQyxzREFBaUQ7QUFHakQ7O0dBRUc7QUFDSSxNQUFNLGNBQWMsR0FBRyxLQUFLLEVBQUUsU0FBc0IsRUFBRSxFQUFFO0lBQzdELE1BQU0sRUFBQyxTQUFTLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUMsR0FBRyxTQUFTLENBQUM7SUFDM0UsSUFBSSxTQUFTLEdBQUcsZ0JBQWdCLENBQUM7SUFFakMsSUFBSSxnQkFBZ0IsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO1FBQ2pDLFNBQVMsR0FBRyxNQUFNLElBQUEsaUJBQVksRUFBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0tBQ3JEO0lBQ0QsTUFBTSxPQUFPLEdBQUc7UUFDZCxJQUFJLEVBQUUsSUFBSSxJQUFJLFVBQVU7UUFDeEIsV0FBVyxFQUFFLFdBQVcsSUFBSSxpQkFBaUI7UUFDN0MsSUFBSSxFQUFFLElBQUk7UUFDVixVQUFVLEVBQUUsRUFBQyxPQUFPLEVBQUUsRUFBRSxFQUFDO0tBQzFCLENBQUM7SUFDRixNQUFNLElBQUksR0FBRyxNQUFNLGtCQUFrQixDQUFDLFNBQVMsRUFBRSxPQUFPLENBQUMsQ0FBQztJQUUxRCxNQUFNLGtCQUFrQixDQUFDLElBQUksRUFBRSxPQUFPLEVBQUUsTUFBTSxDQUFDLENBQUM7QUFDbEQsQ0FBQyxDQUFDO0FBaEJXLFFBQUEsY0FBYyxrQkFnQnpCO0FBRUY7O0dBRUc7QUFDSCxNQUFNLGtCQUFrQixHQUFHLEtBQUssRUFBRSxTQUFtQixFQUFFLE9BQWdCLEVBQUUsRUFBRTtJQUN6RSxNQUFNLElBQUksR0FBUSxFQUFDLFFBQVEsRUFBRSxFQUFFLEVBQUMsQ0FBQztJQUVqQyxJQUFJLEtBQUssRUFBRSxNQUFNLFFBQVEsSUFBSSxTQUFTLEVBQUU7UUFDdEMsTUFBTSxZQUFZLEdBQUcsSUFBQSxnQkFBVyxFQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQzNDLE1BQU0sRUFBQyxXQUFXLEVBQUMsR0FBRyxNQUFNLElBQUEsV0FBSSxFQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQzNDLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO1FBQ3hELE1BQU0sVUFBVSxHQUFHLEdBQUcsU0FBUyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBRWxELE9BQU8sQ0FBQyxJQUFJLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLEVBQUUsT0FBTyxDQUFDLElBQUksRUFBRSxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDakUsT0FBTyxDQUFDLFVBQVUsQ0FBQyxPQUFPLEdBQUc7WUFDM0IsR0FBRyxPQUFPLENBQUMsVUFBVSxDQUFDLE9BQU87WUFDN0IsR0FBRyxXQUFXLENBQUMsVUFBVSxDQUFDLE9BQU87U0FDbEMsQ0FBQztRQUVGLE1BQU0sQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDckQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLEtBQUssSUFBSSxVQUFVLEVBQUUsQ0FBQyxHQUFHO2dCQUN4QyxHQUFHLFdBQVcsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQzthQUNwQyxDQUFDO1FBQ0osQ0FBQyxDQUFDLENBQUM7S0FDSjtJQUVELE9BQU8sSUFBSSxDQUFDO0FBQ2QsQ0FBQyxDQUFDO0FBRUY7O0dBRUc7QUFDSCxNQUFNLGtCQUFrQixHQUFHLEtBQUssRUFDOUIsSUFBUyxFQUNULE9BQWdCLEVBQ2hCLFVBQThCLEVBQzlCLEVBQUU7SUFDRixNQUFNLE1BQU0sR0FBRztRQUNiLFVBQVU7UUFDVixRQUFRLEVBQUUsS0FBSztLQUNoQixDQUFDO0lBQ0YsTUFBTSxJQUFBLGlCQUFPLEVBQUMsSUFBSSxFQUFFLE9BQU8sRUFBRSxNQUFNLENBQUMsQ0FBQztBQUN2QyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBwYXRoIGZyb20gJ3BhdGgnO1xuXG5pbXBvcnQge2dldEZpbGVOYW1lLCBnZXRZYW1sRmlsZXN9IGZyb20gJy4uLy4uL2NvbW1vbi91dGlsL2ZzJztcbmltcG9ydCB7Q29udGV4dH0gZnJvbSAnLi4vLi4vY29tbW9uL3R5cGVzL21hbmlmZXN0JztcbmltcG9ydCB7bG9hZH0gZnJvbSAnLi4vLi4vY29tbW9uL2xpYi9sb2FkJztcblxuaW1wb3J0IHtleGhhdXN0fSBmcm9tICcuLi8uLi9pZi1ydW4vbGliL2V4aGF1c3QnO1xuaW1wb3J0IHtJRk1lcmdlQXJnc30gZnJvbSAnLi4vdHlwZXMvcHJvY2Vzcy1hcmdzJztcblxuLyoqXG4gKiBNZXJnZXMgdGhlIGdpdmVuIG1hbmlmZXN0cyBpbiB0aGUgb25lIGZpbGUuXG4gKi9cbmV4cG9ydCBjb25zdCBtZXJnZU1hbmlmZXN0cyA9IGFzeW5jIChtZXJnZUFyZ3M6IElGTWVyZ2VBcmdzKSA9PiB7XG4gIGNvbnN0IHttYW5pZmVzdHM6IGNvbW1hbmRNYW5pZmVzdHMsIG91dHB1dCwgbmFtZSwgZGVzY3JpcHRpb259ID0gbWVyZ2VBcmdzO1xuICBsZXQgbWFuaWZlc3RzID0gY29tbWFuZE1hbmlmZXN0cztcblxuICBpZiAoY29tbWFuZE1hbmlmZXN0cy5sZW5ndGggPT09IDEpIHtcbiAgICBtYW5pZmVzdHMgPSBhd2FpdCBnZXRZYW1sRmlsZXMoY29tbWFuZE1hbmlmZXN0c1swXSk7XG4gIH1cbiAgY29uc3QgY29udGV4dCA9IHtcbiAgICBuYW1lOiBuYW1lIHx8ICdpZi1tZXJnZScsXG4gICAgZGVzY3JpcHRpb246IGRlc2NyaXB0aW9uIHx8ICdtZXJnZWQgbWFuaWZlc3QnLFxuICAgIHRhZ3M6IG51bGwsXG4gICAgaW5pdGlhbGl6ZToge3BsdWdpbnM6IHt9fSxcbiAgfTtcbiAgY29uc3QgdHJlZSA9IGF3YWl0IG1lcmdlTWFuaWZlc3RzRGF0YShtYW5pZmVzdHMsIGNvbnRleHQpO1xuXG4gIGF3YWl0IHNhdmVNZXJnZWRNYW5pZmVzdCh0cmVlLCBjb250ZXh0LCBvdXRwdXQpO1xufTtcblxuLyoqXG4gKiBNZXJnZXMgbWFuaWZlc3RzIGRhdGEuXG4gKi9cbmNvbnN0IG1lcmdlTWFuaWZlc3RzRGF0YSA9IGFzeW5jIChtYW5pZmVzdHM6IHN0cmluZ1tdLCBjb250ZXh0OiBDb250ZXh0KSA9PiB7XG4gIGNvbnN0IHRyZWU6IGFueSA9IHtjaGlsZHJlbjoge319O1xuXG4gIGZvciBhd2FpdCAoY29uc3QgbWFuaWZlc3Qgb2YgbWFuaWZlc3RzKSB7XG4gICAgY29uc3QgbWFuaWZlc3ROYW1lID0gZ2V0RmlsZU5hbWUobWFuaWZlc3QpO1xuICAgIGNvbnN0IHtyYXdNYW5pZmVzdH0gPSBhd2FpdCBsb2FkKG1hbmlmZXN0KTtcbiAgICBjb25zdCBwYXJlbnREaXIgPSBwYXRoLmJhc2VuYW1lKHBhdGguZGlybmFtZShtYW5pZmVzdCkpO1xuICAgIGNvbnN0IHVuaXF1ZU5hbWUgPSBgJHtwYXJlbnREaXJ9LSR7bWFuaWZlc3ROYW1lfWA7XG5cbiAgICBjb250ZXh0LnRhZ3MgPSBPYmplY3QuYXNzaWduKHt9LCBjb250ZXh0LnRhZ3MsIHJhd01hbmlmZXN0LnRhZ3MpO1xuICAgIGNvbnRleHQuaW5pdGlhbGl6ZS5wbHVnaW5zID0ge1xuICAgICAgLi4uY29udGV4dC5pbml0aWFsaXplLnBsdWdpbnMsXG4gICAgICAuLi5yYXdNYW5pZmVzdC5pbml0aWFsaXplLnBsdWdpbnMsXG4gICAgfTtcblxuICAgIE9iamVjdC5rZXlzKHJhd01hbmlmZXN0LnRyZWUuY2hpbGRyZW4pLmZvckVhY2goY2hpbGQgPT4ge1xuICAgICAgdHJlZS5jaGlsZHJlbltgJHtjaGlsZH0tJHt1bmlxdWVOYW1lfWBdID0ge1xuICAgICAgICAuLi5yYXdNYW5pZmVzdC50cmVlLmNoaWxkcmVuW2NoaWxkXSxcbiAgICAgIH07XG4gICAgfSk7XG4gIH1cblxuICByZXR1cm4gdHJlZTtcbn07XG5cbi8qKlxuICogU2F2ZXMgdGhlIG1lcmdlZCBtYW5pZmVzdCBpbiB0aGUgYG1lcmdlZC1tYW5pZmVzdC55YW1sYCBmaWxlLlxuICovXG5jb25zdCBzYXZlTWVyZ2VkTWFuaWZlc3QgPSBhc3luYyAoXG4gIHRyZWU6IGFueSxcbiAgY29udGV4dDogQ29udGV4dCxcbiAgb3V0cHV0UGF0aDogc3RyaW5nIHwgdW5kZWZpbmVkXG4pID0+IHtcbiAgY29uc3Qgb3V0cHV0ID0ge1xuICAgIG91dHB1dFBhdGgsXG4gICAgbm9PdXRwdXQ6IGZhbHNlLFxuICB9O1xuICBhd2FpdCBleGhhdXN0KHRyZWUsIGNvbnRleHQsIG91dHB1dCk7XG59O1xuIl19
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { ConfigParams, PluginParams } from '@grnsft/if-core/types';
|
|
2
|
+
export declare const Coefficient: (config: ConfigParams | undefined, parametersMetadata: import("@grnsft/if-core/types").PluginParametersMetadata, mapping: import("@grnsft/if-core/types").MappingParams) => {
|
|
3
|
+
metadata: {
|
|
4
|
+
inputs: {
|
|
5
|
+
[x: string]: {
|
|
6
|
+
description: string;
|
|
7
|
+
unit: string;
|
|
8
|
+
'aggregation-method': import("@grnsft/if-core/types").AggregationOptions;
|
|
9
|
+
};
|
|
10
|
+
};
|
|
11
|
+
outputs: import("@grnsft/if-core/types").ParameterMetadata;
|
|
12
|
+
};
|
|
13
|
+
execute: (inputs: PluginParams[]) => Promise<{
|
|
14
|
+
[x: string]: any;
|
|
15
|
+
}[]>;
|
|
16
|
+
};
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Coefficient = void 0;
|
|
4
|
+
const zod_1 = require("zod");
|
|
5
|
+
const utils_1 = require("@grnsft/if-core/utils");
|
|
6
|
+
const interfaces_1 = require("@grnsft/if-core/interfaces");
|
|
7
|
+
const validations_1 = require("../../../common/util/validations");
|
|
8
|
+
const config_1 = require("../../config");
|
|
9
|
+
const { ConfigError } = utils_1.ERRORS;
|
|
10
|
+
const { MISSING_CONFIG } = config_1.STRINGS;
|
|
11
|
+
exports.Coefficient = (0, interfaces_1.PluginFactory)({
|
|
12
|
+
configValidation: (config) => {
|
|
13
|
+
if (!config || !Object.keys(config)?.length) {
|
|
14
|
+
throw new ConfigError(MISSING_CONFIG);
|
|
15
|
+
}
|
|
16
|
+
const configSchema = zod_1.z.object({
|
|
17
|
+
coefficient: zod_1.z.preprocess(value => (0, utils_1.validateArithmeticExpression)('coefficient', value, 'number'), zod_1.z.number()),
|
|
18
|
+
'input-parameter': zod_1.z.string().min(1),
|
|
19
|
+
'output-parameter': zod_1.z.string().min(1),
|
|
20
|
+
});
|
|
21
|
+
return (0, validations_1.validate)(configSchema, config);
|
|
22
|
+
},
|
|
23
|
+
inputValidation: (input, config) => {
|
|
24
|
+
const inputData = {
|
|
25
|
+
'input-parameter': input[config['input-parameter']],
|
|
26
|
+
};
|
|
27
|
+
const validationSchema = zod_1.z.record(zod_1.z.string(), zod_1.z.number());
|
|
28
|
+
(0, validations_1.validate)(validationSchema, inputData);
|
|
29
|
+
return input;
|
|
30
|
+
},
|
|
31
|
+
implementation: async (inputs, config) => {
|
|
32
|
+
const { 'input-parameter': inputParameter, 'output-parameter': outputParameter, coefficient, } = config;
|
|
33
|
+
return inputs.map(input => ({
|
|
34
|
+
...input,
|
|
35
|
+
[outputParameter]: calculateProduct(input, inputParameter, coefficient),
|
|
36
|
+
}));
|
|
37
|
+
},
|
|
38
|
+
allowArithmeticExpressions: ['input-parameter', 'coefficient'],
|
|
39
|
+
});
|
|
40
|
+
/**
|
|
41
|
+
* Calculates the product of the energy components.
|
|
42
|
+
*/
|
|
43
|
+
const calculateProduct = (input, inputParameter, coefficient) => (isNaN(Number(inputParameter)) ? input[inputParameter] : inputParameter) *
|
|
44
|
+
coefficient;
|
|
45
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvaWYtcnVuL2J1aWx0aW5zL2NvZWZmaWNpZW50L2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDZCQUErQjtBQUUvQixpREFBMkU7QUFFM0UsMkRBQXlEO0FBRXpELGtFQUEwRDtBQUUxRCx5Q0FBcUM7QUFFckMsTUFBTSxFQUFDLFdBQVcsRUFBQyxHQUFHLGNBQU0sQ0FBQztBQUM3QixNQUFNLEVBQUMsY0FBYyxFQUFDLEdBQUcsZ0JBQU8sQ0FBQztBQUVwQixRQUFBLFdBQVcsR0FBRyxJQUFBLDBCQUFhLEVBQUM7SUFDdkMsZ0JBQWdCLEVBQUUsQ0FBQyxNQUFvQixFQUFFLEVBQUU7UUFDekMsSUFBSSxDQUFDLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUUsTUFBTSxFQUFFO1lBQzNDLE1BQU0sSUFBSSxXQUFXLENBQUMsY0FBYyxDQUFDLENBQUM7U0FDdkM7UUFFRCxNQUFNLFlBQVksR0FBRyxPQUFDLENBQUMsTUFBTSxDQUFDO1lBQzVCLFdBQVcsRUFBRSxPQUFDLENBQUMsVUFBVSxDQUN2QixLQUFLLENBQUMsRUFBRSxDQUFDLElBQUEsb0NBQTRCLEVBQUMsYUFBYSxFQUFFLEtBQUssRUFBRSxRQUFRLENBQUMsRUFDckUsT0FBQyxDQUFDLE1BQU0sRUFBRSxDQUNYO1lBQ0QsaUJBQWlCLEVBQUUsT0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7WUFDcEMsa0JBQWtCLEVBQUUsT0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7U0FDdEMsQ0FBQyxDQUFDO1FBRUgsT0FBTyxJQUFBLHNCQUFRLEVBQ2IsWUFBNEIsRUFDNUIsTUFBTSxDQUNQLENBQUM7SUFDSixDQUFDO0lBQ0QsZUFBZSxFQUFFLENBQUMsS0FBbUIsRUFBRSxNQUFvQixFQUFFLEVBQUU7UUFDN0QsTUFBTSxTQUFTLEdBQUc7WUFDaEIsaUJBQWlCLEVBQUUsS0FBSyxDQUFDLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1NBQ3BELENBQUM7UUFDRixNQUFNLGdCQUFnQixHQUFHLE9BQUMsQ0FBQyxNQUFNLENBQUMsT0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLE9BQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDO1FBQzFELElBQUEsc0JBQVEsRUFBQyxnQkFBZ0IsRUFBRSxTQUFTLENBQUMsQ0FBQztRQUV0QyxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFDRCxjQUFjLEVBQUUsS0FBSyxFQUFFLE1BQXNCLEVBQUUsTUFBb0IsRUFBRSxFQUFFO1FBQ3JFLE1BQU0sRUFDSixpQkFBaUIsRUFBRSxjQUFjLEVBQ2pDLGtCQUFrQixFQUFFLGVBQWUsRUFDbkMsV0FBVyxHQUNaLEdBQUcsTUFBTSxDQUFDO1FBRVgsT0FBTyxNQUFNLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUMxQixHQUFHLEtBQUs7WUFDUixDQUFDLGVBQWUsQ0FBQyxFQUFFLGdCQUFnQixDQUFDLEtBQUssRUFBRSxjQUFjLEVBQUUsV0FBVyxDQUFDO1NBQ3hFLENBQUMsQ0FBQyxDQUFDO0lBQ04sQ0FBQztJQUNELDBCQUEwQixFQUFFLENBQUMsaUJBQWlCLEVBQUUsYUFBYSxDQUFDO0NBQy9ELENBQUMsQ0FBQztBQUVIOztHQUVHO0FBQ0gsTUFBTSxnQkFBZ0IsR0FBRyxDQUN2QixLQUFtQixFQUNuQixjQUErQixFQUMvQixXQUFtQixFQUNuQixFQUFFLENBQ0YsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDO0lBQ3hFLFdBQVcsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7eiwgWm9kVHlwZX0gZnJvbSAnem9kJztcblxuaW1wb3J0IHtFUlJPUlMsIHZhbGlkYXRlQXJpdGhtZXRpY0V4cHJlc3Npb259IGZyb20gJ0Bncm5zZnQvaWYtY29yZS91dGlscyc7XG5pbXBvcnQge0NvbmZpZ1BhcmFtcywgUGx1Z2luUGFyYW1zfSBmcm9tICdAZ3Juc2Z0L2lmLWNvcmUvdHlwZXMnO1xuaW1wb3J0IHtQbHVnaW5GYWN0b3J5fSBmcm9tICdAZ3Juc2Z0L2lmLWNvcmUvaW50ZXJmYWNlcyc7XG5cbmltcG9ydCB7dmFsaWRhdGV9IGZyb20gJy4uLy4uLy4uL2NvbW1vbi91dGlsL3ZhbGlkYXRpb25zJztcblxuaW1wb3J0IHtTVFJJTkdTfSBmcm9tICcuLi8uLi9jb25maWcnO1xuXG5jb25zdCB7Q29uZmlnRXJyb3J9ID0gRVJST1JTO1xuY29uc3Qge01JU1NJTkdfQ09ORklHfSA9IFNUUklOR1M7XG5cbmV4cG9ydCBjb25zdCBDb2VmZmljaWVudCA9IFBsdWdpbkZhY3Rvcnkoe1xuICBjb25maWdWYWxpZGF0aW9uOiAoY29uZmlnOiBDb25maWdQYXJhbXMpID0+IHtcbiAgICBpZiAoIWNvbmZpZyB8fCAhT2JqZWN0LmtleXMoY29uZmlnKT8ubGVuZ3RoKSB7XG4gICAgICB0aHJvdyBuZXcgQ29uZmlnRXJyb3IoTUlTU0lOR19DT05GSUcpO1xuICAgIH1cblxuICAgIGNvbnN0IGNvbmZpZ1NjaGVtYSA9IHoub2JqZWN0KHtcbiAgICAgIGNvZWZmaWNpZW50OiB6LnByZXByb2Nlc3MoXG4gICAgICAgIHZhbHVlID0+IHZhbGlkYXRlQXJpdGhtZXRpY0V4cHJlc3Npb24oJ2NvZWZmaWNpZW50JywgdmFsdWUsICdudW1iZXInKSxcbiAgICAgICAgei5udW1iZXIoKVxuICAgICAgKSxcbiAgICAgICdpbnB1dC1wYXJhbWV0ZXInOiB6LnN0cmluZygpLm1pbigxKSxcbiAgICAgICdvdXRwdXQtcGFyYW1ldGVyJzogei5zdHJpbmcoKS5taW4oMSksXG4gICAgfSk7XG5cbiAgICByZXR1cm4gdmFsaWRhdGU8ei5pbmZlcjx0eXBlb2YgY29uZmlnU2NoZW1hPj4oXG4gICAgICBjb25maWdTY2hlbWEgYXMgWm9kVHlwZTxhbnk+LFxuICAgICAgY29uZmlnXG4gICAgKTtcbiAgfSxcbiAgaW5wdXRWYWxpZGF0aW9uOiAoaW5wdXQ6IFBsdWdpblBhcmFtcywgY29uZmlnOiBDb25maWdQYXJhbXMpID0+IHtcbiAgICBjb25zdCBpbnB1dERhdGEgPSB7XG4gICAgICAnaW5wdXQtcGFyYW1ldGVyJzogaW5wdXRbY29uZmlnWydpbnB1dC1wYXJhbWV0ZXInXV0sXG4gICAgfTtcbiAgICBjb25zdCB2YWxpZGF0aW9uU2NoZW1hID0gei5yZWNvcmQoei5zdHJpbmcoKSwgei5udW1iZXIoKSk7XG4gICAgdmFsaWRhdGUodmFsaWRhdGlvblNjaGVtYSwgaW5wdXREYXRhKTtcblxuICAgIHJldHVybiBpbnB1dDtcbiAgfSxcbiAgaW1wbGVtZW50YXRpb246IGFzeW5jIChpbnB1dHM6IFBsdWdpblBhcmFtc1tdLCBjb25maWc6IENvbmZpZ1BhcmFtcykgPT4ge1xuICAgIGNvbnN0IHtcbiAgICAgICdpbnB1dC1wYXJhbWV0ZXInOiBpbnB1dFBhcmFtZXRlcixcbiAgICAgICdvdXRwdXQtcGFyYW1ldGVyJzogb3V0cHV0UGFyYW1ldGVyLFxuICAgICAgY29lZmZpY2llbnQsXG4gICAgfSA9IGNvbmZpZztcblxuICAgIHJldHVybiBpbnB1dHMubWFwKGlucHV0ID0+ICh7XG4gICAgICAuLi5pbnB1dCxcbiAgICAgIFtvdXRwdXRQYXJhbWV0ZXJdOiBjYWxjdWxhdGVQcm9kdWN0KGlucHV0LCBpbnB1dFBhcmFtZXRlciwgY29lZmZpY2llbnQpLFxuICAgIH0pKTtcbiAgfSxcbiAgYWxsb3dBcml0aG1ldGljRXhwcmVzc2lvbnM6IFsnaW5wdXQtcGFyYW1ldGVyJywgJ2NvZWZmaWNpZW50J10sXG59KTtcblxuLyoqXG4gKiBDYWxjdWxhdGVzIHRoZSBwcm9kdWN0IG9mIHRoZSBlbmVyZ3kgY29tcG9uZW50cy5cbiAqL1xuY29uc3QgY2FsY3VsYXRlUHJvZHVjdCA9IChcbiAgaW5wdXQ6IFBsdWdpblBhcmFtcyxcbiAgaW5wdXRQYXJhbWV0ZXI6IHN0cmluZyB8IG51bWJlcixcbiAgY29lZmZpY2llbnQ6IG51bWJlclxuKSA9PlxuICAoaXNOYU4oTnVtYmVyKGlucHV0UGFyYW1ldGVyKSkgPyBpbnB1dFtpbnB1dFBhcmFtZXRlcl0gOiBpbnB1dFBhcmFtZXRlcikgKlxuICBjb2VmZmljaWVudDtcbiJdfQ==
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { ConfigParams, PluginParams } from '@grnsft/if-core/types';
|
|
2
|
+
/**
|
|
3
|
+
* keep-existing: true/false (whether to remove the parameter you are copying from)
|
|
4
|
+
* from-param: the parameter you are copying from (e.g. cpu/name)
|
|
5
|
+
* to-field: the parameter you are copying to (e.g. cpu/processor-name)
|
|
6
|
+
*/
|
|
7
|
+
export declare const Copy: (config: ConfigParams | undefined, parametersMetadata: import("@grnsft/if-core/types").PluginParametersMetadata, mapping: import("@grnsft/if-core/types").MappingParams) => {
|
|
8
|
+
metadata: {
|
|
9
|
+
inputs: {
|
|
10
|
+
[x: string]: {
|
|
11
|
+
description: string;
|
|
12
|
+
unit: string;
|
|
13
|
+
'aggregation-method': import("@grnsft/if-core/types").AggregationOptions;
|
|
14
|
+
};
|
|
15
|
+
};
|
|
16
|
+
outputs: import("@grnsft/if-core/types").ParameterMetadata;
|
|
17
|
+
};
|
|
18
|
+
execute: (inputs: PluginParams[]) => Promise<{
|
|
19
|
+
[x: string]: any;
|
|
20
|
+
}[]>;
|
|
21
|
+
};
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Copy = void 0;
|
|
4
|
+
const zod_1 = require("zod");
|
|
5
|
+
const utils_1 = require("@grnsft/if-core/utils");
|
|
6
|
+
const interfaces_1 = require("@grnsft/if-core/interfaces");
|
|
7
|
+
const validations_1 = require("../../../common/util/validations");
|
|
8
|
+
const config_1 = require("../../config");
|
|
9
|
+
const { ConfigError } = utils_1.ERRORS;
|
|
10
|
+
const { MISSING_CONFIG } = config_1.STRINGS;
|
|
11
|
+
/**
|
|
12
|
+
* keep-existing: true/false (whether to remove the parameter you are copying from)
|
|
13
|
+
* from-param: the parameter you are copying from (e.g. cpu/name)
|
|
14
|
+
* to-field: the parameter you are copying to (e.g. cpu/processor-name)
|
|
15
|
+
*/
|
|
16
|
+
exports.Copy = (0, interfaces_1.PluginFactory)({
|
|
17
|
+
configValidation: (config) => {
|
|
18
|
+
if (!config || !Object.keys(config)?.length) {
|
|
19
|
+
throw new ConfigError(MISSING_CONFIG);
|
|
20
|
+
}
|
|
21
|
+
const configSchema = zod_1.z.object({
|
|
22
|
+
'keep-existing': zod_1.z.boolean(),
|
|
23
|
+
from: zod_1.z.string().min(1),
|
|
24
|
+
to: zod_1.z.string().min(1),
|
|
25
|
+
});
|
|
26
|
+
const extractedFrom = (0, utils_1.getParameterFromArithmeticExpression)(config.from);
|
|
27
|
+
const updatedConfig = config['keep-existing']
|
|
28
|
+
? config
|
|
29
|
+
: { ...config, 'pure-from': extractedFrom };
|
|
30
|
+
(0, validations_1.validate)(configSchema, updatedConfig);
|
|
31
|
+
return updatedConfig;
|
|
32
|
+
},
|
|
33
|
+
inputValidation: (input, config) => {
|
|
34
|
+
const from = config.from;
|
|
35
|
+
const inputData = {
|
|
36
|
+
[from]: input[from],
|
|
37
|
+
};
|
|
38
|
+
const validationSchema = zod_1.z.record(zod_1.z.string(), zod_1.z.string().or(zod_1.z.number()));
|
|
39
|
+
return (0, validations_1.validate)(validationSchema, inputData);
|
|
40
|
+
},
|
|
41
|
+
implementation: async (inputs, config) => {
|
|
42
|
+
const keepExisting = config['keep-existing'] === true;
|
|
43
|
+
const from = config['from'];
|
|
44
|
+
const to = config['to'];
|
|
45
|
+
return inputs.map(input => {
|
|
46
|
+
const outputValue = !isNaN(from) ? from : input[from];
|
|
47
|
+
if (input[from] || (!isNaN(from) && !keepExisting)) {
|
|
48
|
+
delete input[config['pure-from']];
|
|
49
|
+
}
|
|
50
|
+
return {
|
|
51
|
+
...input,
|
|
52
|
+
[to]: outputValue,
|
|
53
|
+
};
|
|
54
|
+
});
|
|
55
|
+
},
|
|
56
|
+
allowArithmeticExpressions: ['from'],
|
|
57
|
+
});
|
|
58
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvaWYtcnVuL2J1aWx0aW5zL2NvcHktcGFyYW0vaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsNkJBQXNCO0FBRXRCLGlEQUcrQjtBQUUvQiwyREFBeUQ7QUFFekQsa0VBQTBEO0FBRTFELHlDQUFxQztBQUVyQyxNQUFNLEVBQUMsV0FBVyxFQUFDLEdBQUcsY0FBTSxDQUFDO0FBQzdCLE1BQU0sRUFBQyxjQUFjLEVBQUMsR0FBRyxnQkFBTyxDQUFDO0FBRWpDOzs7O0dBSUc7QUFFVSxRQUFBLElBQUksR0FBRyxJQUFBLDBCQUFhLEVBQUM7SUFDaEMsZ0JBQWdCLEVBQUUsQ0FBQyxNQUFvQixFQUFFLEVBQUU7UUFDekMsSUFBSSxDQUFDLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUUsTUFBTSxFQUFFO1lBQzNDLE1BQU0sSUFBSSxXQUFXLENBQUMsY0FBYyxDQUFDLENBQUM7U0FDdkM7UUFFRCxNQUFNLFlBQVksR0FBRyxPQUFDLENBQUMsTUFBTSxDQUFDO1lBQzVCLGVBQWUsRUFBRSxPQUFDLENBQUMsT0FBTyxFQUFFO1lBQzVCLElBQUksRUFBRSxPQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztZQUN2QixFQUFFLEVBQUUsT0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7U0FDdEIsQ0FBQyxDQUFDO1FBRUgsTUFBTSxhQUFhLEdBQUcsSUFBQSw0Q0FBb0MsRUFBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDeEUsTUFBTSxhQUFhLEdBQUcsTUFBTSxDQUFDLGVBQWUsQ0FBQztZQUMzQyxDQUFDLENBQUMsTUFBTTtZQUNSLENBQUMsQ0FBQyxFQUFDLEdBQUcsTUFBTSxFQUFFLFdBQVcsRUFBRSxhQUFhLEVBQUMsQ0FBQztRQUU1QyxJQUFBLHNCQUFRLEVBQStCLFlBQVksRUFBRSxhQUFhLENBQUMsQ0FBQztRQUVwRSxPQUFPLGFBQWEsQ0FBQztJQUN2QixDQUFDO0lBQ0QsZUFBZSxFQUFFLENBQUMsS0FBbUIsRUFBRSxNQUFvQixFQUFFLEVBQUU7UUFDN0QsTUFBTSxJQUFJLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQztRQUN6QixNQUFNLFNBQVMsR0FBRztZQUNoQixDQUFDLElBQUksQ0FBQyxFQUFFLEtBQUssQ0FBQyxJQUFJLENBQUM7U0FDcEIsQ0FBQztRQUNGLE1BQU0sZ0JBQWdCLEdBQUcsT0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsT0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsQ0FBQyxPQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBRXpFLE9BQU8sSUFBQSxzQkFBUSxFQUFDLGdCQUFnQixFQUFFLFNBQVMsQ0FBQyxDQUFDO0lBQy9DLENBQUM7SUFDRCxjQUFjLEVBQUUsS0FBSyxFQUFFLE1BQXNCLEVBQUUsTUFBb0IsRUFBRSxFQUFFO1FBQ3JFLE1BQU0sWUFBWSxHQUFHLE1BQU0sQ0FBQyxlQUFlLENBQUMsS0FBSyxJQUFJLENBQUM7UUFDdEQsTUFBTSxJQUFJLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzVCLE1BQU0sRUFBRSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUV4QixPQUFPLE1BQU0sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDeEIsTUFBTSxXQUFXLEdBQUcsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO1lBRXRELElBQUksS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsRUFBRTtnQkFDbEQsT0FBTyxLQUFLLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUM7YUFDbkM7WUFFRCxPQUFPO2dCQUNMLEdBQUcsS0FBSztnQkFDUixDQUFDLEVBQUUsQ0FBQyxFQUFFLFdBQVc7YUFDbEIsQ0FBQztRQUNKLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUNELDBCQUEwQixFQUFFLENBQUMsTUFBTSxDQUFDO0NBQ3JDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7en0gZnJvbSAnem9kJztcblxuaW1wb3J0IHtcbiAgRVJST1JTLFxuICBnZXRQYXJhbWV0ZXJGcm9tQXJpdGhtZXRpY0V4cHJlc3Npb24sXG59IGZyb20gJ0Bncm5zZnQvaWYtY29yZS91dGlscyc7XG5pbXBvcnQge0NvbmZpZ1BhcmFtcywgUGx1Z2luUGFyYW1zfSBmcm9tICdAZ3Juc2Z0L2lmLWNvcmUvdHlwZXMnO1xuaW1wb3J0IHtQbHVnaW5GYWN0b3J5fSBmcm9tICdAZ3Juc2Z0L2lmLWNvcmUvaW50ZXJmYWNlcyc7XG5cbmltcG9ydCB7dmFsaWRhdGV9IGZyb20gJy4uLy4uLy4uL2NvbW1vbi91dGlsL3ZhbGlkYXRpb25zJztcblxuaW1wb3J0IHtTVFJJTkdTfSBmcm9tICcuLi8uLi9jb25maWcnO1xuXG5jb25zdCB7Q29uZmlnRXJyb3J9ID0gRVJST1JTO1xuY29uc3Qge01JU1NJTkdfQ09ORklHfSA9IFNUUklOR1M7XG5cbi8qKlxuICoga2VlcC1leGlzdGluZzogdHJ1ZS9mYWxzZSAod2hldGhlciB0byByZW1vdmUgdGhlIHBhcmFtZXRlciB5b3UgYXJlIGNvcHlpbmcgZnJvbSlcbiAqIGZyb20tcGFyYW06IHRoZSBwYXJhbWV0ZXIgeW91IGFyZSBjb3B5aW5nIGZyb20gKGUuZy4gY3B1L25hbWUpXG4gKiB0by1maWVsZDogdGhlIHBhcmFtZXRlciB5b3UgYXJlIGNvcHlpbmcgdG8gKGUuZy4gY3B1L3Byb2Nlc3Nvci1uYW1lKVxuICovXG5cbmV4cG9ydCBjb25zdCBDb3B5ID0gUGx1Z2luRmFjdG9yeSh7XG4gIGNvbmZpZ1ZhbGlkYXRpb246IChjb25maWc6IENvbmZpZ1BhcmFtcykgPT4ge1xuICAgIGlmICghY29uZmlnIHx8ICFPYmplY3Qua2V5cyhjb25maWcpPy5sZW5ndGgpIHtcbiAgICAgIHRocm93IG5ldyBDb25maWdFcnJvcihNSVNTSU5HX0NPTkZJRyk7XG4gICAgfVxuXG4gICAgY29uc3QgY29uZmlnU2NoZW1hID0gei5vYmplY3Qoe1xuICAgICAgJ2tlZXAtZXhpc3RpbmcnOiB6LmJvb2xlYW4oKSxcbiAgICAgIGZyb206IHouc3RyaW5nKCkubWluKDEpLFxuICAgICAgdG86IHouc3RyaW5nKCkubWluKDEpLFxuICAgIH0pO1xuXG4gICAgY29uc3QgZXh0cmFjdGVkRnJvbSA9IGdldFBhcmFtZXRlckZyb21Bcml0aG1ldGljRXhwcmVzc2lvbihjb25maWcuZnJvbSk7XG4gICAgY29uc3QgdXBkYXRlZENvbmZpZyA9IGNvbmZpZ1sna2VlcC1leGlzdGluZyddXG4gICAgICA/IGNvbmZpZ1xuICAgICAgOiB7Li4uY29uZmlnLCAncHVyZS1mcm9tJzogZXh0cmFjdGVkRnJvbX07XG5cbiAgICB2YWxpZGF0ZTx6LmluZmVyPHR5cGVvZiBjb25maWdTY2hlbWE+Pihjb25maWdTY2hlbWEsIHVwZGF0ZWRDb25maWcpO1xuXG4gICAgcmV0dXJuIHVwZGF0ZWRDb25maWc7XG4gIH0sXG4gIGlucHV0VmFsaWRhdGlvbjogKGlucHV0OiBQbHVnaW5QYXJhbXMsIGNvbmZpZzogQ29uZmlnUGFyYW1zKSA9PiB7XG4gICAgY29uc3QgZnJvbSA9IGNvbmZpZy5mcm9tO1xuICAgIGNvbnN0IGlucHV0RGF0YSA9IHtcbiAgICAgIFtmcm9tXTogaW5wdXRbZnJvbV0sXG4gICAgfTtcbiAgICBjb25zdCB2YWxpZGF0aW9uU2NoZW1hID0gei5yZWNvcmQoei5zdHJpbmcoKSwgei5zdHJpbmcoKS5vcih6Lm51bWJlcigpKSk7XG5cbiAgICByZXR1cm4gdmFsaWRhdGUodmFsaWRhdGlvblNjaGVtYSwgaW5wdXREYXRhKTtcbiAgfSxcbiAgaW1wbGVtZW50YXRpb246IGFzeW5jIChpbnB1dHM6IFBsdWdpblBhcmFtc1tdLCBjb25maWc6IENvbmZpZ1BhcmFtcykgPT4ge1xuICAgIGNvbnN0IGtlZXBFeGlzdGluZyA9IGNvbmZpZ1sna2VlcC1leGlzdGluZyddID09PSB0cnVlO1xuICAgIGNvbnN0IGZyb20gPSBjb25maWdbJ2Zyb20nXTtcbiAgICBjb25zdCB0byA9IGNvbmZpZ1sndG8nXTtcblxuICAgIHJldHVybiBpbnB1dHMubWFwKGlucHV0ID0+IHtcbiAgICAgIGNvbnN0IG91dHB1dFZhbHVlID0gIWlzTmFOKGZyb20pID8gZnJvbSA6IGlucHV0W2Zyb21dO1xuXG4gICAgICBpZiAoaW5wdXRbZnJvbV0gfHwgKCFpc05hTihmcm9tKSAmJiAha2VlcEV4aXN0aW5nKSkge1xuICAgICAgICBkZWxldGUgaW5wdXRbY29uZmlnWydwdXJlLWZyb20nXV07XG4gICAgICB9XG5cbiAgICAgIHJldHVybiB7XG4gICAgICAgIC4uLmlucHV0LFxuICAgICAgICBbdG9dOiBvdXRwdXRWYWx1ZSxcbiAgICAgIH07XG4gICAgfSk7XG4gIH0sXG4gIGFsbG93QXJpdGhtZXRpY0V4cHJlc3Npb25zOiBbJ2Zyb20nXSxcbn0pO1xuIl19
|