@celonis/content-cli 0.4.5 → 0.4.7
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/api/variables-api.js +34 -0
- package/commands/package.command.js +2 -2
- package/content-cli-import.js +2 -1
- package/content-cli-list.js +9 -9
- package/lib/api/variables-api.d.ts +7 -0
- package/lib/commands/package.command.d.ts +1 -1
- package/lib/interfaces/data-pool-manager.interfaces.d.ts +1 -1
- package/lib/interfaces/package-manager.interfaces.d.ts +8 -0
- package/lib/services/file-service.d.ts +1 -0
- package/lib/services/package-manager/package-service.d.ts +2 -2
- package/lib/services/package-manager/variable-service.d.ts +2 -1
- package/lib/util/semantic-versioning.d.ts +5 -0
- package/package.json +1 -1
- package/services/data-pool/data-pool-service.js +1 -1
- package/services/file-service.js +15 -0
- package/services/package-manager/package-service.js +40 -22
- package/services/package-manager/variable-service.js +7 -1
- package/util/semantic-versioning.js +29 -0
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
2
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
3
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
4
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
5
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
6
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
7
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
8
|
+
});
|
|
9
|
+
};
|
|
10
|
+
(function (factory) {
|
|
11
|
+
if (typeof module === "object" && typeof module.exports === "object") {
|
|
12
|
+
var v = factory(require, exports);
|
|
13
|
+
if (v !== undefined) module.exports = v;
|
|
14
|
+
}
|
|
15
|
+
else if (typeof define === "function" && define.amd) {
|
|
16
|
+
define(["require", "exports", "../services/http-client-service.v2", "../util/logger"], factory);
|
|
17
|
+
}
|
|
18
|
+
})(function (require, exports) {
|
|
19
|
+
"use strict";
|
|
20
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
21
|
+
const http_client_service_v2_1 = require("../services/http-client-service.v2");
|
|
22
|
+
const logger_1 = require("../util/logger");
|
|
23
|
+
class VariablesApi {
|
|
24
|
+
assignVariableValues(packageKey, variablesAssignments) {
|
|
25
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
26
|
+
return http_client_service_v2_1.httpClientV2.post(`/package-manager/api/nodes/by-package-key/${packageKey}/variables/values`, variablesAssignments).catch(e => {
|
|
27
|
+
throw new logger_1.FatalError(`Problem updating variables of package ${packageKey}: ${e}`);
|
|
28
|
+
});
|
|
29
|
+
});
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
VariablesApi.INSTANCE = new VariablesApi();
|
|
33
|
+
exports.variablesApi = VariablesApi.INSTANCE;
|
|
34
|
+
});
|
|
@@ -56,9 +56,9 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
56
56
|
yield package_service_1.packageService.batchExportPackages(packageKeys, includeDependencies);
|
|
57
57
|
});
|
|
58
58
|
}
|
|
59
|
-
batchImportPackages(spaceMappings, exportedPackagesFile) {
|
|
59
|
+
batchImportPackages(spaceMappings, dataModelMappingsFilePath, exportedPackagesFile) {
|
|
60
60
|
return __awaiter(this, void 0, void 0, function* () {
|
|
61
|
-
yield package_service_1.packageService.batchImportPackages(spaceMappings !== null && spaceMappings !== void 0 ? spaceMappings : [], exportedPackagesFile);
|
|
61
|
+
yield package_service_1.packageService.batchImportPackages(spaceMappings !== null && spaceMappings !== void 0 ? spaceMappings : [], dataModelMappingsFilePath, exportedPackagesFile);
|
|
62
62
|
});
|
|
63
63
|
}
|
|
64
64
|
}
|
package/content-cli-import.js
CHANGED
|
@@ -30,9 +30,10 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
30
30
|
.description("Command to import all given packages")
|
|
31
31
|
.option("-p, --profile <profile>", "Profile which you want to use to list packages")
|
|
32
32
|
.option("--spaceMappings <spaceMappings...>", "List of mappings for importing packages to different target spaces. Mappings should follow format 'packageKey:targetSpaceKey'")
|
|
33
|
+
.option("--dataModelMappingsFile <dataModelMappingsFile>", "DataModel variable mappings file path")
|
|
33
34
|
.requiredOption("-f, --file <file>", "Exported packages file (relative path)")
|
|
34
35
|
.action((cmd) => __awaiter(this, void 0, void 0, function* () {
|
|
35
|
-
yield new package_command_1.PackageCommand().batchImportPackages(cmd.spaceMappings, cmd.file);
|
|
36
|
+
yield new package_command_1.PackageCommand().batchImportPackages(cmd.spaceMappings, cmd.dataModelMappingsFile, cmd.file);
|
|
36
37
|
process.exit();
|
|
37
38
|
}));
|
|
38
39
|
return program;
|
package/content-cli-list.js
CHANGED
|
@@ -13,19 +13,18 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
13
13
|
if (v !== undefined) module.exports = v;
|
|
14
14
|
}
|
|
15
15
|
else if (typeof define === "function" && define.amd) {
|
|
16
|
-
define(["require", "exports", "./commands/package.command", "./commands/space.command", "./commands/data-pool.command", "./commands/asset.command", "
|
|
16
|
+
define(["require", "exports", "./commands/package.command", "./commands/space.command", "./commands/data-pool.command", "./commands/asset.command", "./util/logger", "commander", "./util/context-initializer"], factory);
|
|
17
17
|
}
|
|
18
18
|
})(function (require, exports) {
|
|
19
19
|
"use strict";
|
|
20
|
-
var _a;
|
|
21
20
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
22
21
|
const package_command_1 = require("./commands/package.command");
|
|
23
22
|
const space_command_1 = require("./commands/space.command");
|
|
24
23
|
const data_pool_command_1 = require("./commands/data-pool.command");
|
|
25
24
|
const asset_command_1 = require("./commands/asset.command");
|
|
26
|
-
const commander = require("commander");
|
|
27
|
-
const context_service_1 = require("./services/context.service");
|
|
28
25
|
const logger_1 = require("./util/logger");
|
|
26
|
+
const commander = require("commander");
|
|
27
|
+
const context_initializer_1 = require("./util/context-initializer");
|
|
29
28
|
class List {
|
|
30
29
|
static packages(program) {
|
|
31
30
|
program
|
|
@@ -80,19 +79,20 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
80
79
|
}
|
|
81
80
|
}
|
|
82
81
|
exports.List = List;
|
|
83
|
-
const options = commander.parseOptions(process.argv);
|
|
84
|
-
const indexOfProfileOption = (_a = options.unknown.indexOf('-p')) !== null && _a !== void 0 ? _a : options.unknown.indexOf('--profile');
|
|
85
82
|
process.on("unhandledRejection", (e, promise) => {
|
|
86
83
|
logger_1.logger.error(e.toString());
|
|
87
84
|
});
|
|
88
|
-
|
|
85
|
+
const loadAllCommands = () => {
|
|
89
86
|
List.packages(commander);
|
|
90
87
|
List.spaces(commander);
|
|
91
88
|
List.dataPools(commander);
|
|
92
89
|
List.assets(commander);
|
|
93
90
|
commander.parse(process.argv);
|
|
94
|
-
}
|
|
95
|
-
|
|
91
|
+
};
|
|
92
|
+
context_initializer_1.ContextInitializer.initContext()
|
|
93
|
+
.then(loadAllCommands)
|
|
94
|
+
.catch(e => {
|
|
95
|
+
logger_1.logger.error(e);
|
|
96
96
|
});
|
|
97
97
|
if (!process.argv.slice(2).length) {
|
|
98
98
|
commander.outputHelp();
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { ContentNodeTransport, VariablesAssignments } from "../interfaces/package-manager.interfaces";
|
|
2
|
+
declare class VariablesApi {
|
|
3
|
+
static readonly INSTANCE: VariablesApi;
|
|
4
|
+
assignVariableValues(packageKey: string, variablesAssignments: VariablesAssignments[]): Promise<ContentNodeTransport[]>;
|
|
5
|
+
}
|
|
6
|
+
export declare const variablesApi: VariablesApi;
|
|
7
|
+
export {};
|
|
@@ -6,5 +6,5 @@ export declare class PackageCommand {
|
|
|
6
6
|
pushPackages(profile: string, spaceKey: string): Promise<void>;
|
|
7
7
|
listPackages(jsonResponse: boolean, includeDependencies: boolean, packageKeys: string[]): Promise<void>;
|
|
8
8
|
batchExportPackages(packageKeys: string[], includeDependencies: boolean): Promise<void>;
|
|
9
|
-
batchImportPackages(spaceMappings: string[], exportedPackagesFile: string): Promise<void>;
|
|
9
|
+
batchImportPackages(spaceMappings: string[], dataModelMappingsFilePath: string, exportedPackagesFile: string): Promise<void>;
|
|
10
10
|
}
|
|
@@ -49,6 +49,14 @@ export interface VariablesAssignments {
|
|
|
49
49
|
value: object;
|
|
50
50
|
type: string;
|
|
51
51
|
}
|
|
52
|
+
export interface VariableDefinitionWithValue {
|
|
53
|
+
key: string;
|
|
54
|
+
type: string;
|
|
55
|
+
description?: string;
|
|
56
|
+
source?: string;
|
|
57
|
+
runtime?: boolean;
|
|
58
|
+
metadata?: object;
|
|
59
|
+
}
|
|
52
60
|
export interface PackageHistoryTransport {
|
|
53
61
|
id: string;
|
|
54
62
|
key: string;
|
|
@@ -4,6 +4,7 @@ export declare class FileService {
|
|
|
4
4
|
writeToFileWithGivenName(data: any, filename: string): void;
|
|
5
5
|
createDirectoryWithGivenName(dirName: string): void;
|
|
6
6
|
readManifestFile(importedFileName: string): Promise<ManifestNodeTransport[]>;
|
|
7
|
+
readFileToJson<T>(fileName: string): Promise<T>;
|
|
7
8
|
readFile(filename: string): string;
|
|
8
9
|
private getSerializedFileContent;
|
|
9
10
|
}
|
|
@@ -5,11 +5,11 @@ declare class PackageService {
|
|
|
5
5
|
protected readonly fileDownloadedMessage = "File downloaded successfully. New filename: ";
|
|
6
6
|
listPackages(): Promise<void>;
|
|
7
7
|
findAndExportListOfAllPackages(includeDependencies: boolean, packageKeys: string[]): Promise<void>;
|
|
8
|
-
batchImportPackages(spaceMappings: string[], exportedPackagesFile: string): Promise<void>;
|
|
8
|
+
batchImportPackages(spaceMappings: string[], dataModelMappingsFilePath: string, exportedPackagesFile: string): Promise<void>;
|
|
9
9
|
private checkNodeForCircularDependency;
|
|
10
10
|
private importPackage;
|
|
11
|
-
private compareVersions;
|
|
12
11
|
private importPackageVersion;
|
|
12
|
+
private isLatestVersion;
|
|
13
13
|
private importDependencyPackages;
|
|
14
14
|
private checkIfPackageVersionHasBeenImported;
|
|
15
15
|
private createBodyForImport;
|
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
import { PackageWithVariableAssignments } from "../../interfaces/package-manager.interfaces";
|
|
1
|
+
import { PackageWithVariableAssignments, VariablesAssignments } from "../../interfaces/package-manager.interfaces";
|
|
2
2
|
import { BatchExportNodeTransport } from "../../interfaces/batch-export-node-transport";
|
|
3
3
|
declare class VariableService {
|
|
4
4
|
getVariableAssignmentsForNodes(nodes: BatchExportNodeTransport[]): Promise<PackageWithVariableAssignments[]>;
|
|
5
|
+
assignVariableValues(packageKey: string, variablesAssignments: VariablesAssignments[]): Promise<void>;
|
|
5
6
|
}
|
|
6
7
|
export declare const variableService: VariableService;
|
|
7
8
|
export {};
|
package/package.json
CHANGED
|
@@ -43,7 +43,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
43
43
|
const exportedDataPool = yield data_pool_api_1.dataPoolApi.exportDataPool(poolId);
|
|
44
44
|
const exportedDataPoolString = JSON.stringify(exportedDataPool, null, 4);
|
|
45
45
|
if (outputToJsonFile) {
|
|
46
|
-
const reportFileName = uuid_1.v4() + "
|
|
46
|
+
const reportFileName = uuid_1.v4() + "_data_pool_" + poolId + ".json";
|
|
47
47
|
file_service_1.fileService.writeToFileWithGivenName(exportedDataPoolString, reportFileName);
|
|
48
48
|
logger_1.logger.info(file_service_1.FileService.fileDownloadedMessage + reportFileName);
|
|
49
49
|
}
|
package/services/file-service.js
CHANGED
|
@@ -1,3 +1,12 @@
|
|
|
1
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
2
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
3
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
4
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
5
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
6
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
7
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
8
|
+
});
|
|
9
|
+
};
|
|
1
10
|
(function (factory) {
|
|
2
11
|
if (typeof module === "object" && typeof module.exports === "object") {
|
|
3
12
|
var v = factory(require, exports);
|
|
@@ -26,6 +35,12 @@
|
|
|
26
35
|
const manifest = yaml_1.parse(fs.readFileSync(path.resolve(importedFileName + "/manifest.yml"), { encoding: "utf-8" }));
|
|
27
36
|
return Promise.all(manifest);
|
|
28
37
|
}
|
|
38
|
+
readFileToJson(fileName) {
|
|
39
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
40
|
+
const fileContent = this.readFile(fileName);
|
|
41
|
+
return JSON.parse(fileContent);
|
|
42
|
+
});
|
|
43
|
+
}
|
|
29
44
|
readFile(filename) {
|
|
30
45
|
if (!fs.existsSync(path.resolve(process.cwd(), filename))) {
|
|
31
46
|
logger_1.logger.error(new logger_1.FatalError(`The provided file '${filename}' does not exit`));
|
|
@@ -13,7 +13,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
13
13
|
if (v !== undefined) module.exports = v;
|
|
14
14
|
}
|
|
15
15
|
else if (typeof define === "function" && define.amd) {
|
|
16
|
-
define(["require", "exports", "../../util/logger", "../../api/package-api", "uuid", "../file-service", "./datamodel-service", "../../api/node-api", "../../api/package-dependencies-api", "./variable-service", "./space-service", "fs", "adm-zip", "path", "os", "../../util/yaml"], factory);
|
|
16
|
+
define(["require", "exports", "../../util/logger", "../../api/package-api", "uuid", "../file-service", "./datamodel-service", "../../api/node-api", "../../api/package-dependencies-api", "./variable-service", "./space-service", "fs", "adm-zip", "path", "os", "../../util/semantic-versioning", "../../util/yaml"], factory);
|
|
17
17
|
}
|
|
18
18
|
})(function (require, exports) {
|
|
19
19
|
"use strict";
|
|
@@ -31,6 +31,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
31
31
|
const AdmZip = require("adm-zip");
|
|
32
32
|
const path = require("path");
|
|
33
33
|
const os_1 = require("os");
|
|
34
|
+
const semantic_versioning_1 = require("../../util/semantic-versioning");
|
|
34
35
|
const yaml_1 = require("../../util/yaml");
|
|
35
36
|
class PackageService {
|
|
36
37
|
constructor() {
|
|
@@ -79,7 +80,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
79
80
|
this.exportListOfPackages(nodesListToExport, fieldsToInclude);
|
|
80
81
|
});
|
|
81
82
|
}
|
|
82
|
-
batchImportPackages(spaceMappings, exportedPackagesFile) {
|
|
83
|
+
batchImportPackages(spaceMappings, dataModelMappingsFilePath, exportedPackagesFile) {
|
|
83
84
|
return __awaiter(this, void 0, void 0, function* () {
|
|
84
85
|
exportedPackagesFile = exportedPackagesFile + (exportedPackagesFile.includes(".zip") ? "" : ".zip");
|
|
85
86
|
const zip = new AdmZip(exportedPackagesFile);
|
|
@@ -87,6 +88,11 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
87
88
|
yield fs.mkdirSync(importedFilePath);
|
|
88
89
|
yield zip.extractAllTo(importedFilePath);
|
|
89
90
|
const manifestNodes = yield file_service_1.fileService.readManifestFile(importedFilePath);
|
|
91
|
+
let dmTargetIdsBySourceIds;
|
|
92
|
+
if (dataModelMappingsFilePath) {
|
|
93
|
+
const dataModelMappings = yield file_service_1.fileService.readFileToJson(dataModelMappingsFilePath);
|
|
94
|
+
dmTargetIdsBySourceIds = new Map(Object.entries(dataModelMappings.dataModelIdMappings));
|
|
95
|
+
}
|
|
90
96
|
manifestNodes.map(node => node.dependenciesByVersion = new Map(Object.entries(node.dependenciesByVersion)));
|
|
91
97
|
const importedVersionsByNodeKey = new Map();
|
|
92
98
|
const sourceToTargetVersionsByNodeKey = new Map();
|
|
@@ -102,7 +108,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
102
108
|
});
|
|
103
109
|
const draftIdsByPackageKeyAndVersion = new Map();
|
|
104
110
|
for (const node of manifestNodes) {
|
|
105
|
-
yield this.importPackage(node, manifestNodes, sourceToTargetVersionsByNodeKey, customSpacesMap, importedVersionsByNodeKey, draftIdsByPackageKeyAndVersion, importedFilePath);
|
|
111
|
+
yield this.importPackage(node, manifestNodes, sourceToTargetVersionsByNodeKey, customSpacesMap, dmTargetIdsBySourceIds, importedVersionsByNodeKey, draftIdsByPackageKeyAndVersion, importedFilePath);
|
|
106
112
|
}
|
|
107
113
|
});
|
|
108
114
|
}
|
|
@@ -119,14 +125,18 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
119
125
|
}
|
|
120
126
|
});
|
|
121
127
|
}
|
|
122
|
-
importPackage(packageToImport, manifestNodes, sourceToTargetVersionsByNodeKey, spaceMappings, importedVersionsByNodeKey, draftIdsByPackageKeyAndVersion, importedFilePath) {
|
|
128
|
+
importPackage(packageToImport, manifestNodes, sourceToTargetVersionsByNodeKey, spaceMappings, dmTargetIdsBySourceIds, importedVersionsByNodeKey, draftIdsByPackageKeyAndVersion, importedFilePath) {
|
|
123
129
|
var _a;
|
|
124
130
|
return __awaiter(this, void 0, void 0, function* () {
|
|
125
131
|
const importedPackageVersion = (_a = importedVersionsByNodeKey.get(packageToImport.packageKey)) !== null && _a !== void 0 ? _a : [];
|
|
126
|
-
const versionsOfPackage = [...packageToImport.dependenciesByVersion.keys()].sort((k1, k2) =>
|
|
132
|
+
const versionsOfPackage = [...packageToImport.dependenciesByVersion.keys()].sort((k1, k2) => {
|
|
133
|
+
const version1 = new semantic_versioning_1.SemanticVersioning(k1);
|
|
134
|
+
const version2 = new semantic_versioning_1.SemanticVersioning(k1);
|
|
135
|
+
return version1.isGreaterThan(version2) ? 1 : -1;
|
|
136
|
+
}).filter(version => !importedPackageVersion.includes(version));
|
|
127
137
|
for (const version of versionsOfPackage) {
|
|
128
138
|
try {
|
|
129
|
-
yield this.importPackageVersion(packageToImport, manifestNodes, sourceToTargetVersionsByNodeKey, spaceMappings, importedVersionsByNodeKey, draftIdsByPackageKeyAndVersion, importedFilePath, version);
|
|
139
|
+
yield this.importPackageVersion(packageToImport, manifestNodes, sourceToTargetVersionsByNodeKey, spaceMappings, dmTargetIdsBySourceIds, importedVersionsByNodeKey, draftIdsByPackageKeyAndVersion, importedFilePath, version);
|
|
130
140
|
}
|
|
131
141
|
catch (e) {
|
|
132
142
|
logger_1.logger.error(`Problem import package with key: ${packageToImport.packageKey} ${version} ${e}`);
|
|
@@ -134,24 +144,12 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
134
144
|
}
|
|
135
145
|
});
|
|
136
146
|
}
|
|
137
|
-
|
|
138
|
-
const splitVersion1 = version1.split(".");
|
|
139
|
-
const splitVersion2 = version2.split(".");
|
|
140
|
-
const majorVersion1 = splitVersion1[0];
|
|
141
|
-
const majorVersion2 = splitVersion2[0];
|
|
142
|
-
const minorVersion1 = splitVersion1[1];
|
|
143
|
-
const minorVersion2 = splitVersion2[1];
|
|
144
|
-
const patchVersion1 = splitVersion1[2];
|
|
145
|
-
const patchVersion2 = splitVersion2[2];
|
|
146
|
-
const firstVersionIsGreaterThanFirst = (majorVersion1 > majorVersion2) || (minorVersion1 > minorVersion2) || (patchVersion1 > patchVersion2);
|
|
147
|
-
return firstVersionIsGreaterThanFirst ? 1 : -1;
|
|
148
|
-
}
|
|
149
|
-
importPackageVersion(packageToImport, manifestNodes, sourceToTargetVersionsByNodeKey, spaceMappings, importedVersionsByNodeKey, draftIdsByPackageKeyAndVersion, importedFilePath, versionOfPackageBeingImported) {
|
|
147
|
+
importPackageVersion(packageToImport, manifestNodes, sourceToTargetVersionsByNodeKey, spaceMappings, dmTargetIdsBySourceIds, importedVersionsByNodeKey, draftIdsByPackageKeyAndVersion, importedFilePath, versionOfPackageBeingImported) {
|
|
150
148
|
var _a, _b;
|
|
151
149
|
return __awaiter(this, void 0, void 0, function* () {
|
|
152
150
|
if (packageToImport.dependenciesByVersion.get(versionOfPackageBeingImported).length) {
|
|
153
151
|
const dependenciesOfPackageVersion = packageToImport.dependenciesByVersion.get(versionOfPackageBeingImported);
|
|
154
|
-
yield this.importDependencyPackages(dependenciesOfPackageVersion, manifestNodes, sourceToTargetVersionsByNodeKey, spaceMappings, importedVersionsByNodeKey, draftIdsByPackageKeyAndVersion, importedFilePath);
|
|
152
|
+
yield this.importDependencyPackages(dependenciesOfPackageVersion, manifestNodes, sourceToTargetVersionsByNodeKey, spaceMappings, dmTargetIdsBySourceIds, importedVersionsByNodeKey, draftIdsByPackageKeyAndVersion, importedFilePath);
|
|
155
153
|
}
|
|
156
154
|
if (this.checkIfPackageVersionHasBeenImported(packageToImport.packageKey, versionOfPackageBeingImported, importedVersionsByNodeKey)) {
|
|
157
155
|
return;
|
|
@@ -165,6 +163,14 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
165
163
|
yield package_api_1.packageApi.movePackageToSpace(nodeInTargetTeam.id, targetSpace.id);
|
|
166
164
|
}
|
|
167
165
|
nodeInTargetTeam = yield node_api_1.nodeApi.findOneByKeyAndRootNodeKey(packageToImport.packageKey, packageToImport.packageKey);
|
|
166
|
+
if (this.isLatestVersion(versionOfPackageBeingImported, [...packageToImport.dependenciesByVersion.keys()])) {
|
|
167
|
+
const variableAssignments = packageToImport.variables
|
|
168
|
+
.filter(variable => variable.type === "DATA_MODEL").map(variable => {
|
|
169
|
+
variable.value = dmTargetIdsBySourceIds.get(variable.value.toString());
|
|
170
|
+
return variable;
|
|
171
|
+
});
|
|
172
|
+
yield variable_service_1.variableService.assignVariableValues(nodeInTargetTeam.key, variableAssignments);
|
|
173
|
+
}
|
|
168
174
|
draftIdsByPackageKeyAndVersion.set(`${nodeInTargetTeam.key}_${versionOfPackageBeingImported}`, nodeInTargetTeam.workingDraftId);
|
|
169
175
|
yield this.updateDependencyVersions(packageToImport, versionOfPackageBeingImported, sourceToTargetVersionsByNodeKey, draftIdsByPackageKeyAndVersion);
|
|
170
176
|
yield this.publishPackage(packageToImport);
|
|
@@ -179,14 +185,26 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
179
185
|
logger_1.logger.info(`Imported package with key: ${packageToImport.packageKey} ${versionOfPackageBeingImported} successfully. New version: ${mappedVersion}`);
|
|
180
186
|
});
|
|
181
187
|
}
|
|
182
|
-
|
|
188
|
+
isLatestVersion(packageVersion, allPackageVersions) {
|
|
189
|
+
let isLatestVersion = true;
|
|
190
|
+
for (const version of allPackageVersions) {
|
|
191
|
+
const version1 = new semantic_versioning_1.SemanticVersioning(packageVersion);
|
|
192
|
+
const version2 = new semantic_versioning_1.SemanticVersioning(version);
|
|
193
|
+
if (version2.isGreaterThan(version1)) {
|
|
194
|
+
isLatestVersion = false;
|
|
195
|
+
break;
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
return isLatestVersion;
|
|
199
|
+
}
|
|
200
|
+
importDependencyPackages(dependenciesToImport, manifestNodes, sourceToTargetVersionsByNodeKey, spaceMappings, dmTargetIdsBySourceIds, importedVersionsByNodeKey, draftIdsByPackageKeyAndVersion, importedFilePath) {
|
|
183
201
|
return __awaiter(this, void 0, void 0, function* () {
|
|
184
202
|
for (const dependency of dependenciesToImport) {
|
|
185
203
|
if (this.checkIfPackageVersionHasBeenImported(dependency.key, dependency.version, importedVersionsByNodeKey)) {
|
|
186
204
|
continue;
|
|
187
205
|
}
|
|
188
206
|
const dependentPackage = manifestNodes.find((node) => node.packageKey === dependency.key);
|
|
189
|
-
yield this.importPackage(dependentPackage, manifestNodes, sourceToTargetVersionsByNodeKey, spaceMappings, importedVersionsByNodeKey, draftIdsByPackageKeyAndVersion, importedFilePath);
|
|
207
|
+
yield this.importPackage(dependentPackage, manifestNodes, sourceToTargetVersionsByNodeKey, spaceMappings, dmTargetIdsBySourceIds, importedVersionsByNodeKey, draftIdsByPackageKeyAndVersion, importedFilePath);
|
|
190
208
|
}
|
|
191
209
|
});
|
|
192
210
|
}
|
|
@@ -13,18 +13,24 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
13
13
|
if (v !== undefined) module.exports = v;
|
|
14
14
|
}
|
|
15
15
|
else if (typeof define === "function" && define.amd) {
|
|
16
|
-
define(["require", "exports", "../../api/package-api"], factory);
|
|
16
|
+
define(["require", "exports", "../../api/package-api", "../../api/variables-api"], factory);
|
|
17
17
|
}
|
|
18
18
|
})(function (require, exports) {
|
|
19
19
|
"use strict";
|
|
20
20
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
21
21
|
const package_api_1 = require("../../api/package-api");
|
|
22
|
+
const variables_api_1 = require("../../api/variables-api");
|
|
22
23
|
class VariableService {
|
|
23
24
|
getVariableAssignmentsForNodes(nodes) {
|
|
24
25
|
return __awaiter(this, void 0, void 0, function* () {
|
|
25
26
|
return yield package_api_1.packageApi.findAllPackagesWithVariableAssignments();
|
|
26
27
|
});
|
|
27
28
|
}
|
|
29
|
+
assignVariableValues(packageKey, variablesAssignments) {
|
|
30
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
31
|
+
yield variables_api_1.variablesApi.assignVariableValues(packageKey, variablesAssignments);
|
|
32
|
+
});
|
|
33
|
+
}
|
|
28
34
|
}
|
|
29
35
|
exports.variableService = new VariableService();
|
|
30
36
|
});
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
(function (factory) {
|
|
2
|
+
if (typeof module === "object" && typeof module.exports === "object") {
|
|
3
|
+
var v = factory(require, exports);
|
|
4
|
+
if (v !== undefined) module.exports = v;
|
|
5
|
+
}
|
|
6
|
+
else if (typeof define === "function" && define.amd) {
|
|
7
|
+
define(["require", "exports"], factory);
|
|
8
|
+
}
|
|
9
|
+
})(function (require, exports) {
|
|
10
|
+
"use strict";
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
class SemanticVersioning {
|
|
13
|
+
constructor(version) {
|
|
14
|
+
this.version = version;
|
|
15
|
+
}
|
|
16
|
+
isGreaterThan(versionToCompare) {
|
|
17
|
+
const splitVersion1 = this.version.split(".");
|
|
18
|
+
const splitVersion2 = versionToCompare.version.split(".");
|
|
19
|
+
const majorVersion1 = splitVersion1[0];
|
|
20
|
+
const majorVersion2 = splitVersion2[0];
|
|
21
|
+
const minorVersion1 = splitVersion1[1];
|
|
22
|
+
const minorVersion2 = splitVersion2[1];
|
|
23
|
+
const patchVersion1 = splitVersion1[2];
|
|
24
|
+
const patchVersion2 = splitVersion2[2];
|
|
25
|
+
return (majorVersion1 > majorVersion2) || (minorVersion1 > minorVersion2) || (patchVersion1 > patchVersion2);
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
exports.SemanticVersioning = SemanticVersioning;
|
|
29
|
+
});
|