@celonis/content-cli 0.6.0 → 0.7.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.
@@ -0,0 +1,35 @@
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", "../services/http-client-service.v2", "../util/logger"], factory);
8
+ }
9
+ })(function (require, exports) {
10
+ "use strict";
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.batchImportExportApi = void 0;
13
+ const http_client_service_v2_1 = require("../services/http-client-service.v2");
14
+ const logger_1 = require("../util/logger");
15
+ class BatchImportExportApi {
16
+ findAllActivePackages(flavors, withDependencies = false) {
17
+ const queryParams = new URLSearchParams();
18
+ queryParams.set("withDependencies", withDependencies.toString());
19
+ flavors.forEach(flavor => queryParams.append("flavors", flavor));
20
+ return http_client_service_v2_1.httpClientV2.get(`/package-manager/api/core/packages/export/list?${queryParams.toString()}`).catch(e => {
21
+ throw new logger_1.FatalError(`Problem getting active packages: ${e}`);
22
+ });
23
+ }
24
+ findActivePackagesByKeys(packageKeys, withDependencies = false) {
25
+ const queryParams = new URLSearchParams();
26
+ packageKeys.forEach(key => queryParams.append("packageKeys", key));
27
+ queryParams.set("withDependencies", withDependencies.toString());
28
+ return http_client_service_v2_1.httpClientV2.get(`/package-manager/api/core/packages/export/list-by-keys?${queryParams.toString()}`).catch(e => {
29
+ throw new logger_1.FatalError(`Problem getting active packages by keys: ${e}`);
30
+ });
31
+ }
32
+ }
33
+ BatchImportExportApi.INSTANCE = new BatchImportExportApi();
34
+ exports.batchImportExportApi = BatchImportExportApi.INSTANCE;
35
+ });
@@ -29,11 +29,12 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
29
29
  });
30
30
  });
31
31
  }
32
- exportPackage(rootPackageKey, version) {
32
+ exportPackage(rootPackageKey, version, excludeActionFlows) {
33
33
  return __awaiter(this, void 0, void 0, function* () {
34
34
  const queryParams = new URLSearchParams();
35
35
  queryParams.set("newKey", rootPackageKey);
36
36
  queryParams.set("version", version !== null && version !== void 0 ? version : "");
37
+ queryParams.set("excludeActionFlows", excludeActionFlows ? "true" : "false");
37
38
  return yield http_client_service_v2_1.httpClientV2.downloadFile(`/package-manager/api/packages/${rootPackageKey}/export?${queryParams.toString()}`).catch(e => {
38
39
  throw new logger_1.FatalError(`Pacakge ${rootPackageKey}_${version} failed to export.`);
39
40
  });
@@ -78,11 +79,12 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
78
79
  });
79
80
  });
80
81
  }
81
- importPackage(nodeContent, spaceId, overwrite) {
82
+ importPackage(nodeContent, spaceId, overwrite, excludeActionFlows) {
82
83
  return __awaiter(this, void 0, void 0, function* () {
83
84
  yield http_client_service_v2_1.httpClientV2.postFile("/package-manager/api/packages/import", nodeContent, {
84
85
  spaceId: spaceId,
85
- overwrite: overwrite
86
+ overwrite: overwrite,
87
+ excludeActionFlows: excludeActionFlows
86
88
  }).catch(e => {
87
89
  throw new logger_1.FatalError(`Problem importing package: ${e}`);
88
90
  });
@@ -0,0 +1,36 @@
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/package-manager/batch-import-export-service"], factory);
17
+ }
18
+ })(function (require, exports) {
19
+ "use strict";
20
+ Object.defineProperty(exports, "__esModule", { value: true });
21
+ exports.ConfigCommand = void 0;
22
+ const batch_import_export_service_1 = require("../services/package-manager/batch-import-export-service");
23
+ class ConfigCommand {
24
+ listActivePackages(jsonResponse, flavors, withDependencies, packageKeys) {
25
+ return __awaiter(this, void 0, void 0, function* () {
26
+ if (jsonResponse) {
27
+ yield batch_import_export_service_1.batchImportExportService.findAndExportListOfActivePackages(flavors !== null && flavors !== void 0 ? flavors : [], packageKeys !== null && packageKeys !== void 0 ? packageKeys : [], withDependencies);
28
+ }
29
+ else {
30
+ yield batch_import_export_service_1.batchImportExportService.listActivePackages(flavors !== null && flavors !== void 0 ? flavors : []);
31
+ }
32
+ });
33
+ }
34
+ }
35
+ exports.ConfigCommand = ConfigCommand;
36
+ });
@@ -52,14 +52,14 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
52
52
  }
53
53
  });
54
54
  }
55
- batchExportPackages(packageKeys, includeDependencies) {
55
+ batchExportPackages(packageKeys, includeDependencies, excludeActionFlows) {
56
56
  return __awaiter(this, void 0, void 0, function* () {
57
- yield package_service_1.packageService.batchExportPackages(packageKeys, includeDependencies);
57
+ yield package_service_1.packageService.batchExportPackages(packageKeys, includeDependencies, excludeActionFlows);
58
58
  });
59
59
  }
60
- batchImportPackages(spaceMappings, dataModelMappingsFilePath, exportedPackagesFile, overwrite) {
60
+ batchImportPackages(spaceMappings, dataModelMappingsFilePath, exportedPackagesFile, overwrite, excludeActionFlows) {
61
61
  return __awaiter(this, void 0, void 0, function* () {
62
- yield package_service_1.packageService.batchImportPackages(spaceMappings !== null && spaceMappings !== void 0 ? spaceMappings : [], dataModelMappingsFilePath, exportedPackagesFile, overwrite);
62
+ yield package_service_1.packageService.batchImportPackages(spaceMappings !== null && spaceMappings !== void 0 ? spaceMappings : [], dataModelMappingsFilePath, exportedPackagesFile, overwrite, excludeActionFlows);
63
63
  });
64
64
  }
65
65
  }
@@ -0,0 +1,60 @@
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", "./commands/config.command", "commander", "./util/logger", "./util/context-initializer"], factory);
17
+ }
18
+ })(function (require, exports) {
19
+ "use strict";
20
+ Object.defineProperty(exports, "__esModule", { value: true });
21
+ exports.Config = void 0;
22
+ const config_command_1 = require("./commands/config.command");
23
+ const commander = require("commander");
24
+ const logger_1 = require("./util/logger");
25
+ const context_initializer_1 = require("./util/context-initializer");
26
+ class Config {
27
+ static list(program) {
28
+ program
29
+ .command("list")
30
+ .description("Command to list active packages that can be exported")
31
+ .option("-p, --profile <profile>", "Profile which you want to use to list possible variable assignments")
32
+ .option("--json", "Return response as json type", "")
33
+ .option("--flavors <flavors...>", "Lists only active packages of the given flavors")
34
+ .option("--withDependencies", "Include dependencies", "")
35
+ .option("--packageKeys <packageKeys...>", "Lists only given package keys")
36
+ .action((cmd) => __awaiter(this, void 0, void 0, function* () {
37
+ yield new config_command_1.ConfigCommand().listActivePackages(cmd.json, cmd.flavors, cmd.withDependencies, cmd.packageKeys);
38
+ process.exit();
39
+ }));
40
+ return program;
41
+ }
42
+ }
43
+ exports.Config = Config;
44
+ process.on("unhandledRejection", (e, promise) => {
45
+ logger_1.logger.error(e.toString());
46
+ });
47
+ const loadAllCommands = () => {
48
+ Config.list(commander);
49
+ commander.parse(process.argv);
50
+ };
51
+ context_initializer_1.ContextInitializer.initContext()
52
+ .then(loadAllCommands)
53
+ .catch(e => {
54
+ logger_1.logger.error(e);
55
+ });
56
+ if (!process.argv.slice(2).length) {
57
+ commander.outputHelp();
58
+ process.exit(1);
59
+ }
60
+ });
@@ -32,8 +32,10 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
32
32
  .option("-p, --profile <profile>", "Profile which you want to use to list packages")
33
33
  .requiredOption("--packageKeys <packageKeys...>", "Exports only given package keys")
34
34
  .option("--includeDependencies", "Include variables and dependencies", "")
35
+ .option("--excludeActionFlows", "Don't export action flows")
35
36
  .action((cmd) => __awaiter(this, void 0, void 0, function* () {
36
- yield new package_command_1.PackageCommand().batchExportPackages(cmd.packageKeys, cmd.includeDependencies);
37
+ var _a;
38
+ yield new package_command_1.PackageCommand().batchExportPackages(cmd.packageKeys, cmd.includeDependencies, (_a = cmd.excludeActionFlows) !== null && _a !== void 0 ? _a : false);
37
39
  process.exit();
38
40
  }));
39
41
  return program;
@@ -32,10 +32,11 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
32
32
  .option("-p, --profile <profile>", "Profile which you want to use to list packages")
33
33
  .option("--spaceMappings <spaceMappings...>", "List of mappings for importing packages to different target spaces. Mappings should follow format 'packageKey:targetSpaceKey'")
34
34
  .option("--overwrite", "Flag to allow overwriting of packages")
35
+ .option("--excludeActionFlows", "Skip overwrite of action flows of package")
35
36
  .option("--dataModelMappingsFile <dataModelMappingsFile>", "DataModel variable mappings file path. If missing, variables will be mapped from manifest file.")
36
37
  .requiredOption("-f, --file <file>", "Exported packages file (relative path)")
37
38
  .action((cmd) => __awaiter(this, void 0, void 0, function* () {
38
- yield new package_command_1.PackageCommand().batchImportPackages(cmd.spaceMappings, cmd.dataModelMappingsFile, cmd.file, cmd.overwrite);
39
+ yield new package_command_1.PackageCommand().batchImportPackages(cmd.spaceMappings, cmd.dataModelMappingsFile, cmd.file, cmd.overwrite, cmd.excludeActionFlows);
39
40
  process.exit();
40
41
  }));
41
42
  return program;
package/content-cli.js CHANGED
@@ -28,6 +28,7 @@
28
28
  program.command("list", "Commands to list content.").alias("ls");
29
29
  program.command("get", "Commands to get configuration properties.");
30
30
  program.command("set", "Commands to set configuration properties.");
31
+ program.command("config", "Commands related to config management");
31
32
  program.version(version_1.VersionUtils.getCurrentCliVersion());
32
33
  program.parse(process.argv);
33
34
  if (!process.argv.slice(2).length) {
@@ -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,8 @@
1
+ import { PackageExportTransport } from "../interfaces/package-export-transport";
2
+ declare class BatchImportExportApi {
3
+ static readonly INSTANCE: BatchImportExportApi;
4
+ findAllActivePackages(flavors: string[], withDependencies?: boolean): Promise<PackageExportTransport[]>;
5
+ findActivePackagesByKeys(packageKeys: string[], withDependencies?: boolean): Promise<PackageExportTransport[]>;
6
+ }
7
+ export declare const batchImportExportApi: BatchImportExportApi;
8
+ export {};
@@ -3,13 +3,13 @@ import { ActivatePackageTransport, ContentNodeTransport, PackageHistoryTransport
3
3
  declare class PackageApi {
4
4
  static readonly INSTANCE: PackageApi;
5
5
  findAllPackages(): Promise<ContentNodeTransport[]>;
6
- exportPackage(rootPackageKey: string, version?: string): Promise<Buffer>;
6
+ exportPackage(rootPackageKey: string, version?: string, excludeActionFlows?: boolean): Promise<Buffer>;
7
7
  findAllPackagesWithVariableAssignments(type: PackageManagerVariableType): Promise<PackageWithVariableAssignments[]>;
8
8
  findLatestVersionById(nodeId: string): Promise<PackageHistoryTransport>;
9
9
  findActiveVersionById(nodeId: string): Promise<PackageHistoryTransport>;
10
10
  findActiveVersionByIds(nodeIds: string[]): Promise<PackageHistoryTransport[]>;
11
11
  findNextVersion(nodeId: string): Promise<PackageHistoryTransport>;
12
- importPackage(nodeContent: any, spaceId: string, overwrite: boolean): Promise<any>;
12
+ importPackage(nodeContent: any, spaceId: string, overwrite: boolean, excludeActionFlows?: boolean): Promise<any>;
13
13
  movePackageToSpace(nodeId: string, spaceId: string): Promise<void>;
14
14
  publishPackage(activatePackage: ActivatePackageTransport): Promise<void>;
15
15
  }
@@ -0,0 +1,3 @@
1
+ export declare class ConfigCommand {
2
+ listActivePackages(jsonResponse: boolean, flavors: string[], withDependencies: boolean, packageKeys: string[]): Promise<void>;
3
+ }
@@ -5,6 +5,6 @@ export declare class PackageCommand {
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
7
  listPackages(jsonResponse: boolean, includeDependencies: boolean, packageKeys: string[]): Promise<void>;
8
- batchExportPackages(packageKeys: string[], includeDependencies: boolean): Promise<void>;
9
- batchImportPackages(spaceMappings: string[], dataModelMappingsFilePath: string, exportedPackagesFile: string, overwrite: boolean): Promise<void>;
8
+ batchExportPackages(packageKeys: string[], includeDependencies: boolean, excludeActionFlows?: boolean): Promise<void>;
9
+ batchImportPackages(spaceMappings: string[], dataModelMappingsFilePath: string, exportedPackagesFile: string, overwrite: boolean, excludeActionFlows?: boolean): Promise<void>;
10
10
  }
@@ -0,0 +1,6 @@
1
+ import commander = require("commander");
2
+ type CommanderStatic = commander.CommanderStatic;
3
+ export declare class Config {
4
+ static list(program: CommanderStatic): CommanderStatic;
5
+ }
6
+ export {};
@@ -0,0 +1,18 @@
1
+ import { StudioComputeNodeDescriptor } from "./package-manager.interfaces";
2
+ export interface DependencyTransport {
3
+ key: string;
4
+ version: string;
5
+ }
6
+ export interface PackageExportTransport {
7
+ id: string;
8
+ key: string;
9
+ name: string;
10
+ changeDate: string;
11
+ activatedDraftId: string;
12
+ workingDraftId: string;
13
+ flavor: string;
14
+ version: string;
15
+ dependencies: DependencyTransport[];
16
+ spaceId?: string;
17
+ datamodels?: StudioComputeNodeDescriptor[];
18
+ }
@@ -42,6 +42,7 @@ export interface PackageWithVariableAssignments {
42
42
  key: string;
43
43
  name: string;
44
44
  createdBy: string;
45
+ spaceId: string;
45
46
  variableAssignments: VariablesAssignments[];
46
47
  }
47
48
  export interface VariablesAssignments {
@@ -0,0 +1,7 @@
1
+ declare class BatchImportExportService {
2
+ listActivePackages(flavors: string[]): Promise<void>;
3
+ findAndExportListOfActivePackages(flavors: string[], packageKeys: string[], withDependencies: boolean): Promise<void>;
4
+ private exportListOfPackages;
5
+ }
6
+ export declare const batchImportExportService: BatchImportExportService;
7
+ export {};
@@ -5,7 +5,7 @@ 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[], dataModelMappingsFilePath: string, exportedPackagesFile: string, overwrite: boolean): Promise<void>;
8
+ batchImportPackages(spaceMappings: string[], dataModelMappingsFilePath: string, exportedPackagesFile: string, overwrite: boolean, excludeActionFlows: boolean): Promise<void>;
9
9
  private checkNodeForCircularDependency;
10
10
  private importPackage;
11
11
  private importPackageVersion;
@@ -16,9 +16,9 @@ declare class PackageService {
16
16
  private getTargetSpaceForExportedPackage;
17
17
  private updateDependencyVersions;
18
18
  publishPackage(packageToImport: ManifestNodeTransport): Promise<void>;
19
- batchExportPackages(packageKeys: string[], includeDependencies: boolean): Promise<void>;
19
+ batchExportPackages(packageKeys: string[], includeDependencies: boolean, excludeActionFlows?: boolean): Promise<void>;
20
20
  getNodesWithActiveVersion(nodes: BatchExportNodeTransport[]): Promise<BatchExportNodeTransport[]>;
21
- getPackagesWithDependencies(draftIdByNodeId: Map<string, string>, actionFlowPackageKeys: string[]): Promise<Map<string, PackageDependencyTransport[]>>;
21
+ getPackagesWithDependencies(draftIdByNodeId: Map<string, string>): Promise<Map<string, PackageDependencyTransport[]>>;
22
22
  private getDependencyPackages;
23
23
  private nodeHasBeenResolvedBefore;
24
24
  private exportListOfPackages;
@@ -0,0 +1,8 @@
1
+ import { PackageExportTransport } from "../../interfaces/package-export-transport";
2
+ declare class StudioService {
3
+ getExportPackagesWithStudioData(packagesToExport: PackageExportTransport[], withDependencies: boolean): Promise<PackageExportTransport[]>;
4
+ private setSpaceIdForStudioPackages;
5
+ private setDataModelsForStudioPackages;
6
+ }
7
+ export declare const studioService: StudioService;
8
+ export {};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@celonis/content-cli",
3
- "version": "0.6.0",
3
+ "version": "0.7.0",
4
4
  "description": "CLI Tool to help manage content in Celonis EMS",
5
5
  "main": "content-cli.js",
6
6
  "bin": {
@@ -11,7 +11,8 @@
11
11
  "homepage": "https://github.com/celonis/content-cli",
12
12
  "scripts": {
13
13
  "build": "./node_modules/.bin/tsc && cp package.json dist/package.json",
14
- "lint": "tslint -p ."
14
+ "lint": "tslint -p .",
15
+ "test": "jest"
15
16
  },
16
17
  "dependencies": {
17
18
  "@datadog/datadog-ci": "^0.17.12",
@@ -26,9 +27,13 @@
26
27
  },
27
28
  "devDependencies": {
28
29
  "@types/adm-zip": "^0.4.34",
30
+ "@types/jest": "29.5.11",
29
31
  "@types/node": "20.10.4",
32
+ "jest": "29.7.0",
30
33
  "lint-staged": "^9.5.0",
31
34
  "prettier": "^1.19.1",
35
+ "ts-jest": "29.1.1",
36
+ "ts-node": "10.9.2",
32
37
  "tslint": "^5.20.1",
33
38
  "tslint-config-prettier": "^1.18.0",
34
39
  "tslint-consistent-codestyle": "^1.16.0",
@@ -0,0 +1,56 @@
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/batch-import-export-api", "../../util/logger", "uuid", "../file-service", "../studio/studio.service"], factory);
17
+ }
18
+ })(function (require, exports) {
19
+ "use strict";
20
+ Object.defineProperty(exports, "__esModule", { value: true });
21
+ exports.batchImportExportService = void 0;
22
+ const batch_import_export_api_1 = require("../../api/batch-import-export-api");
23
+ const logger_1 = require("../../util/logger");
24
+ const uuid_1 = require("uuid");
25
+ const file_service_1 = require("../file-service");
26
+ const studio_service_1 = require("../studio/studio.service");
27
+ class BatchImportExportService {
28
+ listActivePackages(flavors) {
29
+ return __awaiter(this, void 0, void 0, function* () {
30
+ const activePackages = yield batch_import_export_api_1.batchImportExportApi.findAllActivePackages(flavors);
31
+ activePackages.forEach(pkg => {
32
+ logger_1.logger.info(`${pkg.name} - Key: "${pkg.key}"`);
33
+ });
34
+ });
35
+ }
36
+ findAndExportListOfActivePackages(flavors, packageKeys, withDependencies) {
37
+ return __awaiter(this, void 0, void 0, function* () {
38
+ let packagesToExport;
39
+ if (packageKeys.length) {
40
+ packagesToExport = yield batch_import_export_api_1.batchImportExportApi.findActivePackagesByKeys(packageKeys, withDependencies);
41
+ }
42
+ else {
43
+ packagesToExport = yield batch_import_export_api_1.batchImportExportApi.findAllActivePackages(flavors, withDependencies);
44
+ }
45
+ packagesToExport = yield studio_service_1.studioService.getExportPackagesWithStudioData(packagesToExport, withDependencies);
46
+ this.exportListOfPackages(packagesToExport);
47
+ });
48
+ }
49
+ exportListOfPackages(packages) {
50
+ const filename = (0, uuid_1.v4)() + ".json";
51
+ file_service_1.fileService.writeToFileWithGivenName(JSON.stringify(packages), filename);
52
+ logger_1.logger.info(file_service_1.FileService.fileDownloadedMessage + filename);
53
+ }
54
+ }
55
+ exports.batchImportExportService = new BatchImportExportService();
56
+ });
@@ -56,8 +56,6 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
56
56
  }
57
57
  if (includeDependencies) {
58
58
  fieldsToInclude.push("type", "value", "dependencies", "id", "updateAvailable", "version", "poolId", "node", "dataModelId", "dataPool", "datamodels");
59
- const packagesKeyWithActionFlows = (yield node_api_1.nodeApi.findAllNodesOfType("SCENARIO")).map(node => node.rootNodeKey);
60
- nodesListToExport = nodesListToExport.filter(node => !packagesKeyWithActionFlows.includes(node.rootNodeKey));
61
59
  const unPublishedNodes = nodesListToExport.filter(node => !node.activatedDraftId);
62
60
  let publishedNodes = nodesListToExport.filter(node => node.activatedDraftId);
63
61
  publishedNodes = yield this.getNodesWithActiveVersion(publishedNodes);
@@ -69,7 +67,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
69
67
  });
70
68
  const draftIdByNodeId = new Map();
71
69
  nodesListToExport.forEach(node => draftIdByNodeId.set(node.workingDraftId, node.id));
72
- const dependenciesByPackageIds = yield this.getPackagesWithDependencies(draftIdByNodeId, packagesKeyWithActionFlows);
70
+ const dependenciesByPackageIds = yield this.getPackagesWithDependencies(draftIdByNodeId);
73
71
  nodesListToExport = nodesListToExport.map(nodeToExport => {
74
72
  var _a;
75
73
  nodeToExport.dependencies = (_a = dependenciesByPackageIds[nodeToExport.workingDraftId]) !== null && _a !== void 0 ? _a : [];
@@ -79,7 +77,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
79
77
  this.exportListOfPackages(nodesListToExport, fieldsToInclude);
80
78
  });
81
79
  }
82
- batchImportPackages(spaceMappings, dataModelMappingsFilePath, exportedPackagesFile, overwrite) {
80
+ batchImportPackages(spaceMappings, dataModelMappingsFilePath, exportedPackagesFile, overwrite, excludeActionFlows) {
83
81
  return __awaiter(this, void 0, void 0, function* () {
84
82
  exportedPackagesFile = exportedPackagesFile + (exportedPackagesFile.includes(".zip") ? "" : ".zip");
85
83
  const zip = new AdmZip(exportedPackagesFile);
@@ -118,7 +116,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
118
116
  });
119
117
  const draftIdsByPackageKeyAndVersion = new Map();
120
118
  for (const node of manifestNodes) {
121
- yield this.importPackage(node, manifestNodes, sourceToTargetVersionsByNodeKey, customSpacesMap, dmTargetIdsBySourceIds, importedVersionsByNodeKey, draftIdsByPackageKeyAndVersion, importedFilePath);
119
+ yield this.importPackage(node, manifestNodes, sourceToTargetVersionsByNodeKey, customSpacesMap, dmTargetIdsBySourceIds, importedVersionsByNodeKey, draftIdsByPackageKeyAndVersion, importedFilePath, excludeActionFlows);
122
120
  }
123
121
  });
124
122
  }
@@ -135,7 +133,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
135
133
  }
136
134
  });
137
135
  }
138
- importPackage(packageToImport, manifestNodes, sourceToTargetVersionsByNodeKey, spaceMappings, dmTargetIdsBySourceIds, importedVersionsByNodeKey, draftIdsByPackageKeyAndVersion, importedFilePath) {
136
+ importPackage(packageToImport, manifestNodes, sourceToTargetVersionsByNodeKey, spaceMappings, dmTargetIdsBySourceIds, importedVersionsByNodeKey, draftIdsByPackageKeyAndVersion, importedFilePath, excludeActionFlows) {
139
137
  var _a;
140
138
  return __awaiter(this, void 0, void 0, function* () {
141
139
  const importedPackageVersion = (_a = importedVersionsByNodeKey.get(packageToImport.packageKey)) !== null && _a !== void 0 ? _a : [];
@@ -146,7 +144,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
146
144
  }).filter(version => !importedPackageVersion.includes(version));
147
145
  for (const version of versionsOfPackage) {
148
146
  try {
149
- yield this.importPackageVersion(packageToImport, manifestNodes, sourceToTargetVersionsByNodeKey, spaceMappings, dmTargetIdsBySourceIds, importedVersionsByNodeKey, draftIdsByPackageKeyAndVersion, importedFilePath, version);
147
+ yield this.importPackageVersion(packageToImport, manifestNodes, sourceToTargetVersionsByNodeKey, spaceMappings, dmTargetIdsBySourceIds, importedVersionsByNodeKey, draftIdsByPackageKeyAndVersion, importedFilePath, version, excludeActionFlows);
150
148
  }
151
149
  catch (e) {
152
150
  logger_1.logger.error(`Problem import package with key: ${packageToImport.packageKey} ${version} ${e}`);
@@ -154,12 +152,12 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
154
152
  }
155
153
  });
156
154
  }
157
- importPackageVersion(packageToImport, manifestNodes, sourceToTargetVersionsByNodeKey, spaceMappings, dmTargetIdsBySourceIds, importedVersionsByNodeKey, draftIdsByPackageKeyAndVersion, importedFilePath, versionOfPackageBeingImported) {
155
+ importPackageVersion(packageToImport, manifestNodes, sourceToTargetVersionsByNodeKey, spaceMappings, dmTargetIdsBySourceIds, importedVersionsByNodeKey, draftIdsByPackageKeyAndVersion, importedFilePath, versionOfPackageBeingImported, excludeActionFlows) {
158
156
  var _a, _b;
159
157
  return __awaiter(this, void 0, void 0, function* () {
160
158
  if (packageToImport.dependenciesByVersion.get(versionOfPackageBeingImported).length) {
161
159
  const dependenciesOfPackageVersion = packageToImport.dependenciesByVersion.get(versionOfPackageBeingImported);
162
- yield this.importDependencyPackages(dependenciesOfPackageVersion, manifestNodes, sourceToTargetVersionsByNodeKey, spaceMappings, dmTargetIdsBySourceIds, importedVersionsByNodeKey, draftIdsByPackageKeyAndVersion, importedFilePath);
160
+ yield this.importDependencyPackages(dependenciesOfPackageVersion, manifestNodes, sourceToTargetVersionsByNodeKey, spaceMappings, dmTargetIdsBySourceIds, importedVersionsByNodeKey, draftIdsByPackageKeyAndVersion, importedFilePath, excludeActionFlows);
163
161
  }
164
162
  if (this.checkIfPackageVersionHasBeenImported(packageToImport.packageKey, versionOfPackageBeingImported, importedVersionsByNodeKey)) {
165
163
  return;
@@ -168,7 +166,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
168
166
  let nodeInTargetTeam = yield node_api_1.nodeApi.findOneByKeyAndRootNodeKey(packageToImport.packageKey, packageToImport.packageKey);
169
167
  const pathToZipFile = path.resolve(importedFilePath, packageToImport.packageKey + "_" + versionOfPackageBeingImported + ".zip");
170
168
  const packageZip = yield this.createBodyForImport(pathToZipFile);
171
- yield package_api_1.packageApi.importPackage(packageZip, targetSpace.id, !!nodeInTargetTeam);
169
+ yield package_api_1.packageApi.importPackage(packageZip, targetSpace.id, !!nodeInTargetTeam, excludeActionFlows);
172
170
  if (nodeInTargetTeam) {
173
171
  yield package_api_1.packageApi.movePackageToSpace(nodeInTargetTeam.id, targetSpace.id);
174
172
  }
@@ -213,14 +211,14 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
213
211
  }
214
212
  return isLatestVersion;
215
213
  }
216
- importDependencyPackages(dependenciesToImport, manifestNodes, sourceToTargetVersionsByNodeKey, spaceMappings, dmTargetIdsBySourceIds, importedVersionsByNodeKey, draftIdsByPackageKeyAndVersion, importedFilePath) {
214
+ importDependencyPackages(dependenciesToImport, manifestNodes, sourceToTargetVersionsByNodeKey, spaceMappings, dmTargetIdsBySourceIds, importedVersionsByNodeKey, draftIdsByPackageKeyAndVersion, importedFilePath, excludeActionFlows) {
217
215
  return __awaiter(this, void 0, void 0, function* () {
218
216
  for (const dependency of dependenciesToImport) {
219
217
  if (this.checkIfPackageVersionHasBeenImported(dependency.key, dependency.version, importedVersionsByNodeKey)) {
220
218
  continue;
221
219
  }
222
220
  const dependentPackage = manifestNodes.find((node) => node.packageKey === dependency.key);
223
- yield this.importPackage(dependentPackage, manifestNodes, sourceToTargetVersionsByNodeKey, spaceMappings, dmTargetIdsBySourceIds, importedVersionsByNodeKey, draftIdsByPackageKeyAndVersion, importedFilePath);
221
+ yield this.importPackage(dependentPackage, manifestNodes, sourceToTargetVersionsByNodeKey, spaceMappings, dmTargetIdsBySourceIds, importedVersionsByNodeKey, draftIdsByPackageKeyAndVersion, importedFilePath, excludeActionFlows);
224
222
  }
225
223
  });
226
224
  }
@@ -291,12 +289,10 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
291
289
  });
292
290
  });
293
291
  }
294
- batchExportPackages(packageKeys, includeDependencies) {
292
+ batchExportPackages(packageKeys, includeDependencies, excludeActionFlows) {
295
293
  return __awaiter(this, void 0, void 0, function* () {
296
294
  const allPackages = yield package_api_1.packageApi.findAllPackages();
297
295
  let nodesListToExport = allPackages.filter(node => packageKeys.includes(node.key));
298
- const actionFlowsPackageKeys = (yield node_api_1.nodeApi.findAllNodesOfType("SCENARIO")).map(node => node.rootNodeKey);
299
- nodesListToExport = nodesListToExport.filter(node => !actionFlowsPackageKeys.includes(node.key));
300
296
  const versionsByNodeKey = new Map();
301
297
  const allPackageKeys = allPackages.map(p => p.key);
302
298
  for (const packageKey of packageKeys) {
@@ -306,7 +302,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
306
302
  }
307
303
  nodesListToExport = yield this.getNodesWithActiveVersion(nodesListToExport);
308
304
  if (includeDependencies) {
309
- const dependencyPackages = yield this.getDependencyPackages(nodesListToExport, [], allPackages, actionFlowsPackageKeys, [], versionsByNodeKey);
305
+ const dependencyPackages = yield this.getDependencyPackages(nodesListToExport, [], allPackages, [], versionsByNodeKey);
310
306
  nodesListToExport.push(...dependencyPackages);
311
307
  }
312
308
  const packagesWithVariableAssignments = yield variable_service_1.variableService.getVariableAssignmentsForNodes();
@@ -323,7 +319,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
323
319
  node.datamodels = dataModelDetailsByNode.get(node.key);
324
320
  });
325
321
  nodesListToExport = yield space_service_1.spaceService.getParentSpaces(nodesListToExport);
326
- yield this.exportToZip(nodesListToExport, versionsByNodeKey);
322
+ yield this.exportToZip(nodesListToExport, versionsByNodeKey, excludeActionFlows);
327
323
  });
328
324
  }
329
325
  getNodesWithActiveVersion(nodes) {
@@ -335,20 +331,17 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
335
331
  return nodes;
336
332
  });
337
333
  }
338
- getPackagesWithDependencies(draftIdByNodeId, actionFlowPackageKeys) {
334
+ getPackagesWithDependencies(draftIdByNodeId) {
339
335
  return __awaiter(this, void 0, void 0, function* () {
340
336
  const allPackageDependencies = yield package_dependencies_api_1.packageDependenciesApi.findPackageDependenciesByIds(draftIdByNodeId);
341
- Object.values(allPackageDependencies).forEach((value, key) => {
342
- value = value.filter((dependency => actionFlowPackageKeys.includes(dependency.key)));
343
- });
344
337
  return allPackageDependencies;
345
338
  });
346
339
  }
347
- getDependencyPackages(nodesToResolve, dependencyPackages, allPackages, actionFlowPackageKeys, resolvedDependencies, versionsByNodeKey) {
340
+ getDependencyPackages(nodesToResolve, dependencyPackages, allPackages, resolvedDependencies, versionsByNodeKey) {
348
341
  return __awaiter(this, void 0, void 0, function* () {
349
342
  const draftIdByNodeId = new Map();
350
343
  nodesToResolve.forEach(node => draftIdByNodeId.set(node.activatedDraftId, node.id));
351
- const dependenciesByPackageDraftIds = yield this.getPackagesWithDependencies(draftIdByNodeId, actionFlowPackageKeys);
344
+ const dependenciesByPackageDraftIds = yield this.getPackagesWithDependencies(draftIdByNodeId);
352
345
  const nodesWithDependencies = nodesToResolve.map(nodeToExport => {
353
346
  var _a;
354
347
  nodeToExport.dependencies = (_a = dependenciesByPackageDraftIds[nodeToExport.activatedDraftId]) !== null && _a !== void 0 ? _a : [];
@@ -375,7 +368,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
375
368
  }, activatedDraftId: versionedDep.draftId });
376
369
  });
377
370
  dependencyPackages.push(...dependencyPackagesOfNode);
378
- yield this.getDependencyPackages(dependencyPackagesOfNode, dependencyPackages, allPackages, actionFlowPackageKeys, resolvedDependencies, versionsByNodeKey);
371
+ yield this.getDependencyPackages(dependencyPackagesOfNode, dependencyPackages, allPackages, resolvedDependencies, versionsByNodeKey);
379
372
  }
380
373
  }
381
374
  return dependencyPackages;
@@ -389,11 +382,11 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
389
382
  file_service_1.fileService.writeToFileWithGivenName(JSON.stringify(nodes, fieldsToInclude), filename);
390
383
  logger_1.logger.info(file_service_1.FileService.fileDownloadedMessage + filename);
391
384
  }
392
- exportPackagesAndAssets(nodes) {
385
+ exportPackagesAndAssets(nodes, excludeActionFlows) {
393
386
  return __awaiter(this, void 0, void 0, function* () {
394
387
  const zips = [];
395
388
  for (const rootPackage of nodes) {
396
- const exportedPackage = yield package_api_1.packageApi.exportPackage(rootPackage.key, rootPackage.version.version);
389
+ const exportedPackage = yield package_api_1.packageApi.exportPackage(rootPackage.key, rootPackage.version.version, excludeActionFlows);
397
390
  zips.push({
398
391
  data: exportedPackage,
399
392
  packageKey: rootPackage.key,
@@ -403,10 +396,10 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
403
396
  return zips;
404
397
  });
405
398
  }
406
- exportToZip(nodes, versionsByNodeKey) {
399
+ exportToZip(nodes, versionsByNodeKey, excludeActionFlows) {
407
400
  return __awaiter(this, void 0, void 0, function* () {
408
401
  const manifestNodes = this.exportManifestOfPackages(nodes, versionsByNodeKey);
409
- const packageZips = yield this.exportPackagesAndAssets(nodes);
402
+ const packageZips = yield this.exportPackagesAndAssets(nodes, excludeActionFlows);
410
403
  const zip = new AdmZip();
411
404
  zip.addFile("manifest.yml", Buffer.from((0, yaml_1.stringify)(manifestNodes), "utf8"));
412
405
  for (const packageZip of packageZips) {
@@ -0,0 +1,58 @@
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", "../../interfaces/package-manager.interfaces", "../package-manager/datamodel-service"], factory);
17
+ }
18
+ })(function (require, exports) {
19
+ "use strict";
20
+ Object.defineProperty(exports, "__esModule", { value: true });
21
+ exports.studioService = void 0;
22
+ const package_api_1 = require("../../api/package-api");
23
+ const package_manager_interfaces_1 = require("../../interfaces/package-manager.interfaces");
24
+ const datamodel_service_1 = require("../package-manager/datamodel-service");
25
+ class StudioService {
26
+ getExportPackagesWithStudioData(packagesToExport, withDependencies) {
27
+ return __awaiter(this, void 0, void 0, function* () {
28
+ const studioPackagesWithDataModels = yield package_api_1.packageApi.findAllPackagesWithVariableAssignments(package_manager_interfaces_1.PackageManagerVariableType.DATA_MODEL);
29
+ packagesToExport = exports.studioService.setSpaceIdForStudioPackages(packagesToExport, studioPackagesWithDataModels);
30
+ if (withDependencies) {
31
+ const dataModelDetailsByNode = yield datamodel_service_1.dataModelService.getDataModelDetailsForPackages(studioPackagesWithDataModels);
32
+ packagesToExport = exports.studioService.setDataModelsForStudioPackages(packagesToExport, studioPackagesWithDataModels, dataModelDetailsByNode);
33
+ }
34
+ return packagesToExport;
35
+ });
36
+ }
37
+ setSpaceIdForStudioPackages(packages, studioPackages) {
38
+ const studioPackageByKey = new Map();
39
+ studioPackages.forEach(pkg => studioPackageByKey.set(pkg.key, pkg));
40
+ return packages.map(pkg => {
41
+ return studioPackageByKey.has(pkg.key) ? Object.assign(Object.assign({}, pkg), { spaceId: studioPackageByKey.get(pkg.key).spaceId }) : pkg;
42
+ });
43
+ }
44
+ setDataModelsForStudioPackages(packages, studioPackageWithDataModels, dataModelDetailsByNode) {
45
+ const studioPackageByKey = new Map();
46
+ studioPackageWithDataModels.forEach(pkg => studioPackageByKey.set(pkg.key, pkg));
47
+ return packages.map(pkg => {
48
+ return studioPackageByKey.has(pkg.key) ? Object.assign(Object.assign({}, pkg), { datamodels: dataModelDetailsByNode.get(pkg.key)
49
+ .map(dataModel => ({
50
+ name: dataModel.name,
51
+ poolId: dataModel.poolId,
52
+ dataModelId: dataModel.dataModelId
53
+ })) }) : pkg;
54
+ });
55
+ }
56
+ }
57
+ exports.studioService = new StudioService();
58
+ });