@celonis/content-cli 0.2.9 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/api/compute-pool-api.js +35 -0
- package/api/node-api.js +35 -0
- package/api/package-api.js +48 -0
- package/api/package-dependencies-api.js +35 -0
- package/commands/package.command.js +9 -3
- package/commands/space.command.js +2 -2
- package/content/factory/space-manager.factory.js +7 -2
- package/content/manager/base.manager.js +9 -5
- package/content/manager/space.manager.js +17 -15
- package/content-cli-list.js +22 -6
- package/interfaces/batch-export-node-transport.js +12 -0
- package/interfaces/package-manager.interfaces.js +12 -0
- package/interfaces/save-content-node.interface.js +0 -3
- package/lib/api/compute-pool-api.d.ts +7 -0
- package/lib/api/node-api.d.ts +7 -0
- package/lib/api/package-api.d.ts +9 -0
- package/lib/api/package-dependencies-api.d.ts +7 -0
- package/lib/commands/package.command.d.ts +1 -1
- package/lib/commands/space.command.d.ts +1 -1
- package/lib/content/factory/space-manager.factory.d.ts +2 -1
- package/lib/content/manager/base.manager.d.ts +2 -0
- package/lib/content/manager/space.manager.d.ts +3 -6
- package/lib/content-cli-list.d.ts +6 -0
- package/lib/interfaces/batch-export-node-transport.d.ts +9 -0
- package/lib/interfaces/manager-config.interface.d.ts +1 -0
- package/lib/interfaces/package-manager.interfaces.d.ts +59 -0
- package/lib/interfaces/save-content-node.interface.d.ts +1 -3
- package/lib/services/context.service.d.ts +13 -0
- package/lib/services/file-service.d.ts +6 -0
- package/lib/services/http-client-service.v2.d.ts +11 -0
- package/lib/services/package-manager/datamodel-service.d.ts +7 -0
- package/lib/services/package-manager/package-service.d.ts +13 -0
- package/lib/services/package-manager/variable-service.d.ts +6 -0
- package/lib/services/profile.service.d.ts +1 -0
- package/package.json +1 -1
- package/services/context.service.js +39 -0
- package/services/file-service.js +27 -0
- package/services/http-client-service.v2.js +84 -0
- package/services/package-manager/datamodel-service.js +38 -0
- package/services/package-manager/package-service.js +106 -0
- package/services/package-manager/variable-service.js +35 -0
- package/services/profile.service.js +1 -0
|
@@ -0,0 +1,35 @@
|
|
|
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 ComputePoolApi {
|
|
24
|
+
findAssignedDatamodels(packageKey) {
|
|
25
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
26
|
+
return http_client_service_v2_1.httpClientV2.get(`/package-manager/api/compute-pools/data-models/assigned?packageKey=${packageKey}`)
|
|
27
|
+
.catch(e => {
|
|
28
|
+
throw new logger_1.FatalError(`Problem getting datamodels of package: ${e}`);
|
|
29
|
+
});
|
|
30
|
+
});
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
ComputePoolApi.INSTANCE = new ComputePoolApi();
|
|
34
|
+
exports.computePoolApi = ComputePoolApi.INSTANCE;
|
|
35
|
+
});
|
package/api/node-api.js
ADDED
|
@@ -0,0 +1,35 @@
|
|
|
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 NodeApi {
|
|
24
|
+
findAllNodesOfType(assetType) {
|
|
25
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
26
|
+
return http_client_service_v2_1.httpClientV2.get(`/package-manager/api/nodes?assetType=${assetType}`)
|
|
27
|
+
.catch(e => {
|
|
28
|
+
throw new logger_1.FatalError(`Problem getting nodes of type ${assetType}: ${e}`);
|
|
29
|
+
});
|
|
30
|
+
});
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
NodeApi.INSTANCE = new NodeApi();
|
|
34
|
+
exports.nodeApi = NodeApi.INSTANCE;
|
|
35
|
+
});
|
|
@@ -0,0 +1,48 @@
|
|
|
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 PackageApi {
|
|
24
|
+
findAllPackages() {
|
|
25
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
26
|
+
return http_client_service_v2_1.httpClientV2.get("/package-manager/api/packages").catch(e => {
|
|
27
|
+
throw new logger_1.FatalError(`Problem getting packages: ${e}`);
|
|
28
|
+
});
|
|
29
|
+
});
|
|
30
|
+
}
|
|
31
|
+
findAllPackagesWithVariableAssignments() {
|
|
32
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
33
|
+
return http_client_service_v2_1.httpClientV2.get("/package-manager/api/packages/with-variable-assignments").catch(e => {
|
|
34
|
+
throw new logger_1.FatalError(`Problem getting variables of packages: : ${e}`);
|
|
35
|
+
});
|
|
36
|
+
});
|
|
37
|
+
}
|
|
38
|
+
findLatestVersionById(nodeId) {
|
|
39
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
40
|
+
return http_client_service_v2_1.httpClientV2.get(`/package-manager/api/packages/${nodeId}/latest-version`).catch(e => {
|
|
41
|
+
throw new logger_1.FatalError(`Problem getting latest version of package: ${e}`);
|
|
42
|
+
});
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
PackageApi.INSTANCE = new PackageApi();
|
|
47
|
+
exports.packageApi = PackageApi.INSTANCE;
|
|
48
|
+
});
|
|
@@ -0,0 +1,35 @@
|
|
|
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 PackageDependenciesApi {
|
|
24
|
+
findDependenciesOfPackage(nodeId, draftId) {
|
|
25
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
26
|
+
return http_client_service_v2_1.httpClientV2.get(`/package-manager/api/package-dependencies/${nodeId}/by-root-draft-id/${draftId}`)
|
|
27
|
+
.catch(e => {
|
|
28
|
+
throw new logger_1.FatalError(`Problem getting dependencies of package: ${e}`);
|
|
29
|
+
});
|
|
30
|
+
});
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
PackageDependenciesApi.INSTANCE = new PackageDependenciesApi();
|
|
34
|
+
exports.packageDependenciesApi = PackageDependenciesApi.INSTANCE;
|
|
35
|
+
});
|
|
@@ -13,13 +13,14 @@ 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", "../services/content.service", "../content/factory/package-manager.factory"], factory);
|
|
16
|
+
define(["require", "exports", "../services/content.service", "../content/factory/package-manager.factory", "../services/package-manager/package-service"], factory);
|
|
17
17
|
}
|
|
18
18
|
})(function (require, exports) {
|
|
19
19
|
"use strict";
|
|
20
20
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
21
21
|
const content_service_1 = require("../services/content.service");
|
|
22
22
|
const package_manager_factory_1 = require("../content/factory/package-manager.factory");
|
|
23
|
+
const package_service_1 = require("../services/package-manager/package-service");
|
|
23
24
|
class PackageCommand {
|
|
24
25
|
constructor() {
|
|
25
26
|
this.contentService = new content_service_1.ContentService();
|
|
@@ -40,9 +41,14 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
40
41
|
yield this.contentService.batchPush(profile, this.packageManagerFactory.createPushManagers(spaceKey));
|
|
41
42
|
});
|
|
42
43
|
}
|
|
43
|
-
listPackages(
|
|
44
|
+
listPackages(jsonResponse, includeDependencies) {
|
|
44
45
|
return __awaiter(this, void 0, void 0, function* () {
|
|
45
|
-
|
|
46
|
+
if (jsonResponse) {
|
|
47
|
+
yield package_service_1.packageService.findAndExportAllPackages(includeDependencies);
|
|
48
|
+
}
|
|
49
|
+
else {
|
|
50
|
+
yield package_service_1.packageService.listPackages();
|
|
51
|
+
}
|
|
46
52
|
});
|
|
47
53
|
}
|
|
48
54
|
}
|
|
@@ -25,9 +25,9 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
25
25
|
this.contentService = new content_service_1.ContentService();
|
|
26
26
|
this.spaceManagerFactory = new space_manager_factory_1.SpaceManagerFactory();
|
|
27
27
|
}
|
|
28
|
-
listSpaces(profile) {
|
|
28
|
+
listSpaces(profile, jsonResponse) {
|
|
29
29
|
return __awaiter(this, void 0, void 0, function* () {
|
|
30
|
-
yield this.contentService.findAll(profile, this.spaceManagerFactory.
|
|
30
|
+
yield this.contentService.findAll(profile, this.spaceManagerFactory.createListManager(jsonResponse));
|
|
31
31
|
});
|
|
32
32
|
}
|
|
33
33
|
}
|
|
@@ -11,8 +11,13 @@
|
|
|
11
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
12
|
const space_manager_1 = require("../manager/space.manager");
|
|
13
13
|
class SpaceManagerFactory {
|
|
14
|
-
|
|
15
|
-
return
|
|
14
|
+
createListManager(jsonResponse) {
|
|
15
|
+
return this.createManager(jsonResponse);
|
|
16
|
+
}
|
|
17
|
+
createManager(jsonResponse) {
|
|
18
|
+
const spaceManager = new space_manager_1.SpaceManager();
|
|
19
|
+
spaceManager.jsonResponse = jsonResponse;
|
|
20
|
+
return spaceManager;
|
|
16
21
|
}
|
|
17
22
|
}
|
|
18
23
|
exports.SpaceManagerFactory = SpaceManagerFactory;
|
|
@@ -25,6 +25,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
25
25
|
class BaseManager {
|
|
26
26
|
constructor() {
|
|
27
27
|
this.httpClientService = new http_client_service_1.HttpClientService();
|
|
28
|
+
this.fileDownloadedMessage = "File downloaded successfully. New filename: ";
|
|
28
29
|
}
|
|
29
30
|
get profile() {
|
|
30
31
|
return this._profile;
|
|
@@ -40,7 +41,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
40
41
|
.then(data => {
|
|
41
42
|
try {
|
|
42
43
|
const filename = this.writeToFile(data);
|
|
43
|
-
logger_1.logger.info(
|
|
44
|
+
logger_1.logger.info(this.fileDownloadedMessage + filename);
|
|
44
45
|
resolve();
|
|
45
46
|
}
|
|
46
47
|
catch (e) {
|
|
@@ -62,7 +63,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
62
63
|
.pullFileData(this.getConfig().pullUrl, this._profile)
|
|
63
64
|
.then(data => {
|
|
64
65
|
const filename = this.writeStreamToFile(data);
|
|
65
|
-
logger_1.logger.info(
|
|
66
|
+
logger_1.logger.info(this.fileDownloadedMessage + filename);
|
|
66
67
|
resolve();
|
|
67
68
|
})
|
|
68
69
|
.catch(err => {
|
|
@@ -122,9 +123,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
122
123
|
}
|
|
123
124
|
writeToFile(data) {
|
|
124
125
|
const filename = this.getConfig().exportFileName;
|
|
125
|
-
|
|
126
|
-
encoding: "utf-8",
|
|
127
|
-
});
|
|
126
|
+
this.writeToFileWithGivenName(data, filename);
|
|
128
127
|
return filename;
|
|
129
128
|
}
|
|
130
129
|
writeStreamToFile(data) {
|
|
@@ -132,6 +131,11 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
132
131
|
fs.writeFileSync(filename, data);
|
|
133
132
|
return filename;
|
|
134
133
|
}
|
|
134
|
+
writeToFileWithGivenName(data, filename) {
|
|
135
|
+
fs.writeFileSync(path.resolve(process.cwd(), filename), this.getSerializedFileContent(data), {
|
|
136
|
+
encoding: "utf-8",
|
|
137
|
+
});
|
|
138
|
+
}
|
|
135
139
|
}
|
|
136
140
|
exports.BaseManager = BaseManager;
|
|
137
141
|
});
|
|
@@ -4,25 +4,20 @@
|
|
|
4
4
|
if (v !== undefined) module.exports = v;
|
|
5
5
|
}
|
|
6
6
|
else if (typeof define === "function" && define.amd) {
|
|
7
|
-
define(["require", "exports", "./base.manager", "../../util/logger"], factory);
|
|
7
|
+
define(["require", "exports", "./base.manager", "../../util/logger", "uuid"], factory);
|
|
8
8
|
}
|
|
9
9
|
})(function (require, exports) {
|
|
10
10
|
"use strict";
|
|
11
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
12
|
const base_manager_1 = require("./base.manager");
|
|
13
13
|
const logger_1 = require("../../util/logger");
|
|
14
|
+
const uuid_1 = require("uuid");
|
|
14
15
|
class SpaceManager extends base_manager_1.BaseManager {
|
|
15
|
-
get
|
|
16
|
-
return this.
|
|
16
|
+
get jsonResponse() {
|
|
17
|
+
return this._jsonResponse;
|
|
17
18
|
}
|
|
18
|
-
set
|
|
19
|
-
this.
|
|
20
|
-
}
|
|
21
|
-
get name() {
|
|
22
|
-
return this._name;
|
|
23
|
-
}
|
|
24
|
-
set name(value) {
|
|
25
|
-
this._name = value;
|
|
19
|
+
set jsonResponse(value) {
|
|
20
|
+
this._jsonResponse = value;
|
|
26
21
|
}
|
|
27
22
|
getConfig() {
|
|
28
23
|
return {
|
|
@@ -31,15 +26,22 @@
|
|
|
31
26
|
};
|
|
32
27
|
}
|
|
33
28
|
listSpaces(nodes) {
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
29
|
+
if (this.jsonResponse) {
|
|
30
|
+
const filename = uuid_1.v4() + ".json";
|
|
31
|
+
this.writeToFileWithGivenName(JSON.stringify(nodes, ["id", "name"]), filename);
|
|
32
|
+
logger_1.logger.info(this.fileDownloadedMessage + filename);
|
|
33
|
+
}
|
|
34
|
+
else {
|
|
35
|
+
nodes.forEach(node => {
|
|
36
|
+
logger_1.logger.info(`${node.id} - Name: "${node.name}"`);
|
|
37
|
+
});
|
|
38
|
+
}
|
|
37
39
|
}
|
|
38
40
|
getBody() {
|
|
39
41
|
return {};
|
|
40
42
|
}
|
|
41
43
|
getSerializedFileContent(data) {
|
|
42
|
-
return
|
|
44
|
+
return data;
|
|
43
45
|
}
|
|
44
46
|
}
|
|
45
47
|
exports.SpaceManager = SpaceManager;
|
package/content-cli-list.js
CHANGED
|
@@ -13,22 +13,27 @@ 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", "commander"], factory);
|
|
16
|
+
define(["require", "exports", "./commands/package.command", "./commands/space.command", "commander", "./services/context.service", "./util/logger"], factory);
|
|
17
17
|
}
|
|
18
18
|
})(function (require, exports) {
|
|
19
19
|
"use strict";
|
|
20
|
+
var _a;
|
|
20
21
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
21
22
|
const package_command_1 = require("./commands/package.command");
|
|
22
23
|
const space_command_1 = require("./commands/space.command");
|
|
23
24
|
const commander = require("commander");
|
|
25
|
+
const context_service_1 = require("./services/context.service");
|
|
26
|
+
const logger_1 = require("./util/logger");
|
|
24
27
|
class List {
|
|
25
28
|
static packages(program) {
|
|
26
29
|
program
|
|
27
30
|
.command("packages")
|
|
28
31
|
.description("Command to list all packages")
|
|
29
32
|
.option("-p, --profile <profile>", "Profile which you want to use to list packages")
|
|
33
|
+
.option("--json", "Return response as json type", "")
|
|
34
|
+
.option("--includeDependencies", "Include variables and dependencies", "")
|
|
30
35
|
.action((cmd) => __awaiter(this, void 0, void 0, function* () {
|
|
31
|
-
yield new package_command_1.PackageCommand().listPackages(cmd.
|
|
36
|
+
yield new package_command_1.PackageCommand().listPackages(cmd.json, cmd.includeDependencies);
|
|
32
37
|
process.exit();
|
|
33
38
|
}));
|
|
34
39
|
return program;
|
|
@@ -38,16 +43,27 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
38
43
|
.command("spaces")
|
|
39
44
|
.description("Command to list all spaces")
|
|
40
45
|
.option("-p, --profile <profile>", "Profile which you want to use to list spaces")
|
|
46
|
+
.option("--json", "Return response as json type", "")
|
|
41
47
|
.action((cmd) => __awaiter(this, void 0, void 0, function* () {
|
|
42
|
-
yield new space_command_1.SpaceCommand().listSpaces(cmd.profile);
|
|
48
|
+
yield new space_command_1.SpaceCommand().listSpaces(cmd.profile, cmd.json);
|
|
43
49
|
process.exit();
|
|
44
50
|
}));
|
|
45
51
|
return program;
|
|
46
52
|
}
|
|
47
53
|
}
|
|
48
|
-
List
|
|
49
|
-
|
|
50
|
-
|
|
54
|
+
exports.List = List;
|
|
55
|
+
const options = commander.parseOptions(process.argv);
|
|
56
|
+
const indexOfProfileOption = (_a = options.unknown.indexOf('-p')) !== null && _a !== void 0 ? _a : options.unknown.indexOf('--profile');
|
|
57
|
+
process.on("unhandledRejection", (e, promise) => {
|
|
58
|
+
logger_1.logger.error(e.toString());
|
|
59
|
+
});
|
|
60
|
+
context_service_1.contextService.resolveProfile(options.unknown[indexOfProfileOption + 1]).then(() => {
|
|
61
|
+
List.packages(commander);
|
|
62
|
+
List.spaces(commander);
|
|
63
|
+
commander.parse(process.argv);
|
|
64
|
+
}).catch(e => {
|
|
65
|
+
console.log(e);
|
|
66
|
+
});
|
|
51
67
|
if (!process.argv.slice(2).length) {
|
|
52
68
|
commander.outputHelp();
|
|
53
69
|
process.exit(1);
|
|
@@ -0,0 +1,12 @@
|
|
|
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
|
+
});
|
|
@@ -0,0 +1,12 @@
|
|
|
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
|
+
});
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { StudioDataModelTransport } from "../interfaces/package-manager.interfaces";
|
|
2
|
+
declare class ComputePoolApi {
|
|
3
|
+
static readonly INSTANCE: ComputePoolApi;
|
|
4
|
+
findAssignedDatamodels(packageKey: string): Promise<StudioDataModelTransport[]>;
|
|
5
|
+
}
|
|
6
|
+
export declare const computePoolApi: ComputePoolApi;
|
|
7
|
+
export {};
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { ContentNodeTransport } from "../interfaces/package-manager.interfaces";
|
|
2
|
+
declare class NodeApi {
|
|
3
|
+
static readonly INSTANCE: NodeApi;
|
|
4
|
+
findAllNodesOfType(assetType?: string): Promise<ContentNodeTransport[]>;
|
|
5
|
+
}
|
|
6
|
+
export declare const nodeApi: NodeApi;
|
|
7
|
+
export {};
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { ContentNodeTransport, PackageHistoryTransport, PackageWithVariableAssignments } from "../interfaces/package-manager.interfaces";
|
|
2
|
+
declare class PackageApi {
|
|
3
|
+
static readonly INSTANCE: PackageApi;
|
|
4
|
+
findAllPackages(): Promise<ContentNodeTransport[]>;
|
|
5
|
+
findAllPackagesWithVariableAssignments(): Promise<PackageWithVariableAssignments[]>;
|
|
6
|
+
findLatestVersionById(nodeId: string): Promise<PackageHistoryTransport>;
|
|
7
|
+
}
|
|
8
|
+
export declare const packageApi: PackageApi;
|
|
9
|
+
export {};
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { PackageDependencyTransport } from "../interfaces/package-manager.interfaces";
|
|
2
|
+
declare class PackageDependenciesApi {
|
|
3
|
+
static readonly INSTANCE: PackageDependenciesApi;
|
|
4
|
+
findDependenciesOfPackage(nodeId: string, draftId: string): Promise<PackageDependencyTransport[]>;
|
|
5
|
+
}
|
|
6
|
+
export declare const packageDependenciesApi: PackageDependenciesApi;
|
|
7
|
+
export {};
|
|
@@ -4,5 +4,5 @@ export declare class PackageCommand {
|
|
|
4
4
|
pullPackage(profile: string, key: string, store: boolean, newKey: string, draft: boolean): Promise<void>;
|
|
5
5
|
pushPackage(profile: string, spaceKey: string, fileName: string, newKey: string, overwrite: boolean): Promise<void>;
|
|
6
6
|
pushPackages(profile: string, spaceKey: string): Promise<void>;
|
|
7
|
-
listPackages(
|
|
7
|
+
listPackages(jsonResponse: boolean, includeDependencies: boolean): Promise<void>;
|
|
8
8
|
}
|
|
@@ -5,6 +5,7 @@ export declare abstract class BaseManager {
|
|
|
5
5
|
get profile(): Profile;
|
|
6
6
|
set profile(value: Profile);
|
|
7
7
|
private _profile;
|
|
8
|
+
protected readonly fileDownloadedMessage = "File downloaded successfully. New filename: ";
|
|
8
9
|
pull(): Promise<any>;
|
|
9
10
|
pullFile(): Promise<any>;
|
|
10
11
|
push(): Promise<any>;
|
|
@@ -12,6 +13,7 @@ export declare abstract class BaseManager {
|
|
|
12
13
|
findAll(): Promise<any>;
|
|
13
14
|
protected writeToFile(data: any): string;
|
|
14
15
|
protected writeStreamToFile(data: any): string;
|
|
16
|
+
protected writeToFileWithGivenName(data: any, filename: string): void;
|
|
15
17
|
protected abstract getConfig(): ManagerConfig;
|
|
16
18
|
protected abstract getBody(): object;
|
|
17
19
|
protected abstract getSerializedFileContent(data: any): string;
|
|
@@ -2,12 +2,9 @@ import { ManagerConfig } from "../../interfaces/manager-config.interface";
|
|
|
2
2
|
import { BaseManager } from "./base.manager";
|
|
3
3
|
export declare class SpaceManager extends BaseManager {
|
|
4
4
|
private static BASE_URL;
|
|
5
|
-
private
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
set id(value: string);
|
|
9
|
-
get name(): string;
|
|
10
|
-
set name(value: string);
|
|
5
|
+
private _jsonResponse;
|
|
6
|
+
get jsonResponse(): boolean;
|
|
7
|
+
set jsonResponse(value: boolean);
|
|
11
8
|
getConfig(): ManagerConfig;
|
|
12
9
|
private listSpaces;
|
|
13
10
|
protected getBody(): object;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { ContentNodeTransport, PackageDependencyTransport, PackageHistoryTransport, StudioDataModelTransport, VariablesAssignments } from "./package-manager.interfaces";
|
|
2
|
+
export interface BatchExportNodeTransport extends ContentNodeTransport {
|
|
3
|
+
workingDraftId: string;
|
|
4
|
+
activatedDraftId: string;
|
|
5
|
+
version?: PackageHistoryTransport;
|
|
6
|
+
dependencies?: PackageDependencyTransport[];
|
|
7
|
+
datamodels?: StudioDataModelTransport[];
|
|
8
|
+
variables?: VariablesAssignments[];
|
|
9
|
+
}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
export interface AssetMetadataTransport {
|
|
2
|
+
hidden: boolean;
|
|
3
|
+
}
|
|
4
|
+
export interface ContentNodeTransport {
|
|
5
|
+
id: string;
|
|
6
|
+
key: string;
|
|
7
|
+
name: string;
|
|
8
|
+
rootNodeKey: string;
|
|
9
|
+
workingDraftId: string;
|
|
10
|
+
activatedDraftId: string;
|
|
11
|
+
rootNodeId: string;
|
|
12
|
+
assetMetadataTransport: AssetMetadataTransport;
|
|
13
|
+
spaceId: string;
|
|
14
|
+
}
|
|
15
|
+
export interface DataModelTransport {
|
|
16
|
+
id: string;
|
|
17
|
+
name: string;
|
|
18
|
+
poolId: string;
|
|
19
|
+
}
|
|
20
|
+
export interface PackageDependencyTransport {
|
|
21
|
+
id: string;
|
|
22
|
+
key: string;
|
|
23
|
+
name: string;
|
|
24
|
+
version: string;
|
|
25
|
+
rootNodeId: string;
|
|
26
|
+
}
|
|
27
|
+
export interface AssetMetadataTransport {
|
|
28
|
+
hidden: boolean;
|
|
29
|
+
}
|
|
30
|
+
export interface PackageWithVariableAssignments {
|
|
31
|
+
id: string;
|
|
32
|
+
key: string;
|
|
33
|
+
name: string;
|
|
34
|
+
createdBy: string;
|
|
35
|
+
variableAssignments: VariablesAssignments[];
|
|
36
|
+
}
|
|
37
|
+
export interface VariablesAssignments {
|
|
38
|
+
key: string;
|
|
39
|
+
value: object;
|
|
40
|
+
type: string;
|
|
41
|
+
}
|
|
42
|
+
export interface PackageHistoryTransport {
|
|
43
|
+
id: string;
|
|
44
|
+
key: string;
|
|
45
|
+
name: string;
|
|
46
|
+
version: string;
|
|
47
|
+
}
|
|
48
|
+
export interface StudioDataModelTransport {
|
|
49
|
+
node: StudioComputeNodeDescriptor;
|
|
50
|
+
dataPool: ComputePoolTransport;
|
|
51
|
+
}
|
|
52
|
+
export interface StudioComputeNodeDescriptor {
|
|
53
|
+
name: string;
|
|
54
|
+
dataModelId: string;
|
|
55
|
+
}
|
|
56
|
+
export interface ComputePoolTransport {
|
|
57
|
+
id: string;
|
|
58
|
+
name: string;
|
|
59
|
+
}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { AssetMetadataTransport } from "./package-manager.interfaces";
|
|
1
2
|
export interface SaveContentNode {
|
|
2
3
|
key: string;
|
|
3
4
|
rootNodeKey: string;
|
|
@@ -7,6 +8,3 @@ export interface SaveContentNode {
|
|
|
7
8
|
serializedContent: string;
|
|
8
9
|
assetMetadataTransport: AssetMetadataTransport;
|
|
9
10
|
}
|
|
10
|
-
export declare class AssetMetadataTransport {
|
|
11
|
-
hidden: boolean;
|
|
12
|
-
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { Profile } from "../interfaces/profile.interface";
|
|
2
|
+
interface Context {
|
|
3
|
+
profile: Profile;
|
|
4
|
+
}
|
|
5
|
+
declare class ContextService {
|
|
6
|
+
static readonly INSTANCE: ContextService;
|
|
7
|
+
private context;
|
|
8
|
+
getContext(): Context;
|
|
9
|
+
resolveProfile(profile: string): Promise<void>;
|
|
10
|
+
setContext(context: Context): void;
|
|
11
|
+
}
|
|
12
|
+
export declare const contextService: ContextService;
|
|
13
|
+
export {};
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export declare class FileService {
|
|
2
|
+
static readonly fileDownloadedMessage = "File downloaded successfully. New filename: ";
|
|
3
|
+
writeToFileWithGivenName(data: any, filename: string): void;
|
|
4
|
+
private getSerializedFileContent;
|
|
5
|
+
}
|
|
6
|
+
export declare const fileService: FileService;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
declare class HttpClientServiceV2 {
|
|
2
|
+
get(url: string): Promise<any>;
|
|
3
|
+
private resolveUrl;
|
|
4
|
+
private handleResponse;
|
|
5
|
+
private checkBadRequest;
|
|
6
|
+
private handleBadRequest;
|
|
7
|
+
private makeOptions;
|
|
8
|
+
private buildAuthorizationHeaders;
|
|
9
|
+
}
|
|
10
|
+
export declare const httpClientV2: HttpClientServiceV2;
|
|
11
|
+
export {};
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { BatchExportNodeTransport } from "../../interfaces/batch-export-node-transport";
|
|
2
|
+
declare class DatamodelService {
|
|
3
|
+
static readonly INSTANCE: DatamodelService;
|
|
4
|
+
getDatamodelsForNodes(nodesListToExport: BatchExportNodeTransport[]): Promise<BatchExportNodeTransport[]>;
|
|
5
|
+
}
|
|
6
|
+
export declare const dataModelService: DatamodelService;
|
|
7
|
+
export {};
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { BatchExportNodeTransport } from "../../interfaces/batch-export-node-transport";
|
|
2
|
+
import { PackageDependencyTransport } from "../../interfaces/package-manager.interfaces";
|
|
3
|
+
declare class PackageService {
|
|
4
|
+
protected readonly fileDownloadedMessage = "File downloaded successfully. New filename: ";
|
|
5
|
+
listPackages(): Promise<void>;
|
|
6
|
+
findAndExportAllPackages(includeDependencies: boolean): Promise<void>;
|
|
7
|
+
getPackagesDependenciesByPackageId(nodeIds: string[], draftIdByNodeId: Map<string, string>): Promise<Map<string, PackageDependencyTransport[]>>;
|
|
8
|
+
getVersionOfPackages(nodes: BatchExportNodeTransport[]): Promise<BatchExportNodeTransport[]>;
|
|
9
|
+
getPackagesWithDependencies(nodeIds: string[], draftIdByNodeId: Map<string, string>): Promise<PackageDependencyTransport[]>;
|
|
10
|
+
private exportListOfPackages;
|
|
11
|
+
}
|
|
12
|
+
export declare const packageService: PackageService;
|
|
13
|
+
export {};
|
package/package.json
CHANGED
|
@@ -0,0 +1,39 @@
|
|
|
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", "./profile.service"], factory);
|
|
17
|
+
}
|
|
18
|
+
})(function (require, exports) {
|
|
19
|
+
"use strict";
|
|
20
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
21
|
+
const profile_service_1 = require("./profile.service");
|
|
22
|
+
class ContextService {
|
|
23
|
+
getContext() {
|
|
24
|
+
return this.context;
|
|
25
|
+
}
|
|
26
|
+
resolveProfile(profile) {
|
|
27
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
28
|
+
const resolvedProfile = yield profile_service_1.profileService.findProfile(profile);
|
|
29
|
+
this.setContext({ profile: resolvedProfile });
|
|
30
|
+
});
|
|
31
|
+
}
|
|
32
|
+
;
|
|
33
|
+
setContext(context) {
|
|
34
|
+
this.context = context;
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
ContextService.INSTANCE = new ContextService();
|
|
38
|
+
exports.contextService = ContextService.INSTANCE;
|
|
39
|
+
});
|
|
@@ -0,0 +1,27 @@
|
|
|
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", "fs", "path"], factory);
|
|
8
|
+
}
|
|
9
|
+
})(function (require, exports) {
|
|
10
|
+
"use strict";
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
const fs = require("fs");
|
|
13
|
+
const path = require("path");
|
|
14
|
+
class FileService {
|
|
15
|
+
writeToFileWithGivenName(data, filename) {
|
|
16
|
+
fs.writeFileSync(path.resolve(process.cwd(), filename), this.getSerializedFileContent(data), {
|
|
17
|
+
encoding: "utf-8",
|
|
18
|
+
});
|
|
19
|
+
}
|
|
20
|
+
getSerializedFileContent(data) {
|
|
21
|
+
return data;
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
exports.FileService = FileService;
|
|
25
|
+
FileService.fileDownloadedMessage = "File downloaded successfully. New filename: ";
|
|
26
|
+
exports.fileService = new FileService();
|
|
27
|
+
});
|
|
@@ -0,0 +1,84 @@
|
|
|
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", "../interfaces/profile.interface", "request", "./context.service", "../util/logger"], factory);
|
|
17
|
+
}
|
|
18
|
+
})(function (require, exports) {
|
|
19
|
+
"use strict";
|
|
20
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
21
|
+
const profile_interface_1 = require("../interfaces/profile.interface");
|
|
22
|
+
const request = require("request");
|
|
23
|
+
const context_service_1 = require("./context.service");
|
|
24
|
+
const logger_1 = require("../util/logger");
|
|
25
|
+
class HttpClientServiceV2 {
|
|
26
|
+
get(url) {
|
|
27
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
28
|
+
return new Promise((resolve, reject) => {
|
|
29
|
+
request.get(this.resolveUrl(url), this.makeOptions(context_service_1.contextService.getContext().profile, null), (err, res) => {
|
|
30
|
+
this.handleResponse(res, resolve, reject);
|
|
31
|
+
});
|
|
32
|
+
}).catch(e => {
|
|
33
|
+
throw new logger_1.FatalError(e);
|
|
34
|
+
});
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
resolveUrl(url) {
|
|
38
|
+
return context_service_1.contextService.getContext().profile.team.replace(/\/?$/, url);
|
|
39
|
+
}
|
|
40
|
+
handleResponse(res, resolve, reject) {
|
|
41
|
+
if (this.checkBadRequest(res.statusCode)) {
|
|
42
|
+
this.handleBadRequest(res.statusCode, res.body, reject);
|
|
43
|
+
return;
|
|
44
|
+
}
|
|
45
|
+
let body = {};
|
|
46
|
+
try {
|
|
47
|
+
if (res.body) {
|
|
48
|
+
body = JSON.parse(res.body);
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
catch (e) {
|
|
52
|
+
reject("Something went wrong. Please check that you have the right url and api key.");
|
|
53
|
+
return;
|
|
54
|
+
}
|
|
55
|
+
resolve(body);
|
|
56
|
+
}
|
|
57
|
+
checkBadRequest(statusCode) {
|
|
58
|
+
return statusCode >= 400;
|
|
59
|
+
}
|
|
60
|
+
// tslint:disable-next-line:typedef
|
|
61
|
+
handleBadRequest(statusCode, data, reject) {
|
|
62
|
+
if (data) {
|
|
63
|
+
reject(data);
|
|
64
|
+
}
|
|
65
|
+
else {
|
|
66
|
+
reject("Backend responded with status code " + statusCode);
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
makeOptions(profile, body = {}) {
|
|
70
|
+
const options = {
|
|
71
|
+
headers: this.buildAuthorizationHeaders(profile),
|
|
72
|
+
};
|
|
73
|
+
return Object.assign(options, body);
|
|
74
|
+
}
|
|
75
|
+
buildAuthorizationHeaders(profile) {
|
|
76
|
+
const authenticationType = profile.authenticationType || profile_interface_1.AuthenticationType.BEARER;
|
|
77
|
+
return {
|
|
78
|
+
authorization: `${authenticationType} ${profile.apiToken}`,
|
|
79
|
+
"content-type": "application/json",
|
|
80
|
+
};
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
exports.httpClientV2 = new HttpClientServiceV2();
|
|
84
|
+
});
|
|
@@ -0,0 +1,38 @@
|
|
|
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", "../../api/compute-pool-api"], factory);
|
|
17
|
+
}
|
|
18
|
+
})(function (require, exports) {
|
|
19
|
+
"use strict";
|
|
20
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
21
|
+
const compute_pool_api_1 = require("../../api/compute-pool-api");
|
|
22
|
+
class DatamodelService {
|
|
23
|
+
getDatamodelsForNodes(nodesListToExport) {
|
|
24
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
25
|
+
const promises = [];
|
|
26
|
+
nodesListToExport.forEach(node => {
|
|
27
|
+
promises.push(new Promise((resolve) => __awaiter(this, void 0, void 0, function* () {
|
|
28
|
+
node.datamodels = yield compute_pool_api_1.computePoolApi.findAssignedDatamodels(node.key);
|
|
29
|
+
resolve(node);
|
|
30
|
+
})));
|
|
31
|
+
});
|
|
32
|
+
return Promise.all(promises);
|
|
33
|
+
});
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
DatamodelService.INSTANCE = new DatamodelService();
|
|
37
|
+
exports.dataModelService = DatamodelService.INSTANCE;
|
|
38
|
+
});
|
|
@@ -0,0 +1,106 @@
|
|
|
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", "../../util/logger", "../../api/package-api", "uuid", "../file-service", "./datamodel-service", "../../api/node-api", "../../api/package-dependencies-api"], factory);
|
|
17
|
+
}
|
|
18
|
+
})(function (require, exports) {
|
|
19
|
+
"use strict";
|
|
20
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
21
|
+
const logger_1 = require("../../util/logger");
|
|
22
|
+
const package_api_1 = require("../../api/package-api");
|
|
23
|
+
const uuid_1 = require("uuid");
|
|
24
|
+
const file_service_1 = require("../file-service");
|
|
25
|
+
const datamodel_service_1 = require("./datamodel-service");
|
|
26
|
+
const node_api_1 = require("../../api/node-api");
|
|
27
|
+
const package_dependencies_api_1 = require("../../api/package-dependencies-api");
|
|
28
|
+
class PackageService {
|
|
29
|
+
constructor() {
|
|
30
|
+
this.fileDownloadedMessage = "File downloaded successfully. New filename: ";
|
|
31
|
+
}
|
|
32
|
+
listPackages() {
|
|
33
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
34
|
+
const nodes = yield package_api_1.packageApi.findAllPackages();
|
|
35
|
+
nodes.forEach(node => {
|
|
36
|
+
logger_1.logger.info(`${node.name} - Key: "${node.key}"`);
|
|
37
|
+
});
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
findAndExportAllPackages(includeDependencies) {
|
|
41
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
42
|
+
const fieldsToInclude = ["key", "name", "changeDate", "activatedDraftId", "spaceId"];
|
|
43
|
+
let nodesListToExport = yield package_api_1.packageApi.findAllPackages();
|
|
44
|
+
if (includeDependencies) {
|
|
45
|
+
fieldsToInclude.push("type", "value", "dependencies", "id", "version", "poolId", "node", "dataModelId", "dataPool", "datamodels");
|
|
46
|
+
const packagesKeyWithActionFlows = (yield node_api_1.nodeApi.findAllNodesOfType("SCENARIO")).map(node => node.rootNodeKey);
|
|
47
|
+
nodesListToExport = nodesListToExport.filter(node => {
|
|
48
|
+
return !packagesKeyWithActionFlows.includes(node.rootNodeKey);
|
|
49
|
+
});
|
|
50
|
+
//TODO need to replace all these individual calls with a single api call that gets all the required data.
|
|
51
|
+
nodesListToExport = yield this.getVersionOfPackages(nodesListToExport);
|
|
52
|
+
nodesListToExport = yield datamodel_service_1.dataModelService.getDatamodelsForNodes(nodesListToExport);
|
|
53
|
+
const draftIdByNodeId = new Map();
|
|
54
|
+
const nodeIds = nodesListToExport.map(node => {
|
|
55
|
+
draftIdByNodeId.set(node.id, node.workingDraftId);
|
|
56
|
+
return node.id;
|
|
57
|
+
});
|
|
58
|
+
const dependenciesByPackageId = yield this.getPackagesDependenciesByPackageId(nodeIds, draftIdByNodeId);
|
|
59
|
+
nodesListToExport = nodesListToExport.map(nodeToExport => {
|
|
60
|
+
nodeToExport.dependencies = dependenciesByPackageId.get(nodeToExport.id);
|
|
61
|
+
return nodeToExport;
|
|
62
|
+
});
|
|
63
|
+
}
|
|
64
|
+
this.exportListOfPackages(nodesListToExport, fieldsToInclude);
|
|
65
|
+
});
|
|
66
|
+
}
|
|
67
|
+
getPackagesDependenciesByPackageId(nodeIds, draftIdByNodeId) {
|
|
68
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
69
|
+
const dependenciesByPackageKey = new Map();
|
|
70
|
+
const packageWithDependencies = yield this.getPackagesWithDependencies(nodeIds, draftIdByNodeId);
|
|
71
|
+
packageWithDependencies.forEach(packageWithDependency => {
|
|
72
|
+
var _a;
|
|
73
|
+
const dependenciesOfPackage = (_a = dependenciesByPackageKey.get(packageWithDependency.rootNodeId)) !== null && _a !== void 0 ? _a : [];
|
|
74
|
+
dependenciesOfPackage.push(packageWithDependency);
|
|
75
|
+
dependenciesByPackageKey.set(packageWithDependency.rootNodeId, dependenciesOfPackage);
|
|
76
|
+
});
|
|
77
|
+
return dependenciesByPackageKey;
|
|
78
|
+
});
|
|
79
|
+
}
|
|
80
|
+
getVersionOfPackages(nodes) {
|
|
81
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
82
|
+
const promises = [];
|
|
83
|
+
nodes.forEach(node => {
|
|
84
|
+
promises.push(new Promise((resolve) => __awaiter(this, void 0, void 0, function* () {
|
|
85
|
+
node.version = yield package_api_1.packageApi.findLatestVersionById(node.id);
|
|
86
|
+
resolve(node);
|
|
87
|
+
})));
|
|
88
|
+
});
|
|
89
|
+
return Promise.all(promises);
|
|
90
|
+
});
|
|
91
|
+
}
|
|
92
|
+
getPackagesWithDependencies(nodeIds, draftIdByNodeId) {
|
|
93
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
94
|
+
const promises = [];
|
|
95
|
+
nodeIds.forEach((nodeId) => __awaiter(this, void 0, void 0, function* () { return promises.push(package_dependencies_api_1.packageDependenciesApi.findDependenciesOfPackage(nodeId, draftIdByNodeId.get(nodeId))); }));
|
|
96
|
+
return yield Promise.all(promises);
|
|
97
|
+
});
|
|
98
|
+
}
|
|
99
|
+
exportListOfPackages(nodes, fieldsToInclude) {
|
|
100
|
+
const filename = uuid_1.v4() + ".json";
|
|
101
|
+
file_service_1.fileService.writeToFileWithGivenName(JSON.stringify(nodes, fieldsToInclude), filename);
|
|
102
|
+
logger_1.logger.info(file_service_1.FileService.fileDownloadedMessage + filename);
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
exports.packageService = new PackageService();
|
|
106
|
+
});
|
|
@@ -0,0 +1,35 @@
|
|
|
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", "../../api/package-api"], factory);
|
|
17
|
+
}
|
|
18
|
+
})(function (require, exports) {
|
|
19
|
+
"use strict";
|
|
20
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
21
|
+
const package_api_1 = require("../../api/package-api");
|
|
22
|
+
class VariableService {
|
|
23
|
+
getVariablesByNodeKey() {
|
|
24
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
25
|
+
const nodeWithVariablesAssignments = yield package_api_1.packageApi.findAllPackagesWithVariableAssignments();
|
|
26
|
+
const variablesByNodeKey = new Map();
|
|
27
|
+
nodeWithVariablesAssignments.forEach(nodeWithVariablesAssignment => {
|
|
28
|
+
variablesByNodeKey.set(nodeWithVariablesAssignment.key, nodeWithVariablesAssignment.variableAssignments);
|
|
29
|
+
});
|
|
30
|
+
return variablesByNodeKey;
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
exports.variableService = new VariableService();
|
|
35
|
+
});
|