@pronto-tools-and-more/pronto 3.11.1 → 3.12.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +5 -5
- package/src/parts/CommandMap/CommandMap.js +2 -0
- package/src/parts/Config/Config.js +14 -0
- package/src/parts/DeleteWorkingCopy/DeleteWorkingCopy.js +1 -0
- package/src/parts/DiffSimple/DiffSimple.js +10 -0
- package/src/parts/DownloadDiffFile/DownloadDiffFile.js +28 -0
- package/src/parts/DownloadDiffFiles/DownloadDiffFiles.js +35 -0
- package/src/parts/GetCommandFromCliArgs/GetCommandFromCliArgs.js +3 -0
- package/src/parts/GetCurrentExperienceVersion/GetCurrentExperienceVersion.js +14 -0
- package/src/parts/GetDiffSimpleResponse/GetDiffSimpleResponse.js +9 -0
- package/src/parts/GetLatestStableVersion/GetLatestStableVersion.js +12 -0
- package/src/parts/GetListExperienceVersionsResponse/GetListExperienceVersionsResponse.js +13 -0
- package/src/parts/Help/Help.js +1 -1
- package/src/parts/ListExperienceVersions/ListExperienceVersions.js +15 -0
- package/src/parts/MakeUpgradeRequest/MakeUpgradeRequest.js +15 -0
- package/src/parts/ParseListExperienceVersionsResponse/ParseListExperienceVersionsResponse.js +3 -0
- package/src/parts/PullWorkingCopy/PullWorkingCopy.js +13 -0
- package/src/parts/PushUpgrade/PushUpgrade.js +0 -0
- package/src/parts/Upgrade/Upgrade.js +70 -0
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pronto-tools-and-more/pronto",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.12.2",
|
|
4
4
|
"description": "",
|
|
5
5
|
"main": "src/main.js",
|
|
6
6
|
"type": "module",
|
|
@@ -13,10 +13,10 @@
|
|
|
13
13
|
"author": "",
|
|
14
14
|
"license": "MIT",
|
|
15
15
|
"dependencies": {
|
|
16
|
-
"@pronto-tools-and-more/file-watcher": "3.
|
|
17
|
-
"@pronto-tools-and-more/files": "3.
|
|
18
|
-
"@pronto-tools-and-more/network-process": "3.
|
|
19
|
-
"@pronto-tools-and-more/sass-compiler": "3.
|
|
16
|
+
"@pronto-tools-and-more/file-watcher": "3.12.2",
|
|
17
|
+
"@pronto-tools-and-more/files": "3.12.2",
|
|
18
|
+
"@pronto-tools-and-more/network-process": "3.12.2",
|
|
19
|
+
"@pronto-tools-and-more/sass-compiler": "3.12.2",
|
|
20
20
|
"@lvce-editor/assert": "^1.2.0",
|
|
21
21
|
"@lvce-editor/ipc": "^9.3.0",
|
|
22
22
|
"@lvce-editor/json-rpc": "^1.3.0",
|
|
@@ -5,6 +5,7 @@ import * as PullCode from "../PullCode/PullCode.js";
|
|
|
5
5
|
import * as PushCode from "../PushCode/PushCode.js";
|
|
6
6
|
import * as Server from "../Server/Server.js";
|
|
7
7
|
import * as UploadZip from "../UploadZip/UploadZip.js";
|
|
8
|
+
import * as Upgrade from "../Upgrade/Upgrade.js";
|
|
8
9
|
|
|
9
10
|
export const commandMap = {
|
|
10
11
|
"Build.build": Build.build,
|
|
@@ -14,4 +15,5 @@ export const commandMap = {
|
|
|
14
15
|
"PushCode.pushCode": PushCode.pushCode,
|
|
15
16
|
"Server.start": Server.start,
|
|
16
17
|
"UploadZip.uploadZip": UploadZip.uploadZip,
|
|
18
|
+
"Upgrade.upgrade": Upgrade.upgrade,
|
|
17
19
|
};
|
|
@@ -32,6 +32,13 @@ export const platform = config.platform || defaultPlatform;
|
|
|
32
32
|
// TODO use direct backend url
|
|
33
33
|
export const loginUrl =
|
|
34
34
|
config.loginUrl || `https://builder.purplemanager.com/api/user/login`;
|
|
35
|
+
|
|
36
|
+
export const listVersionsUrl =
|
|
37
|
+
config.listVersionsUrl || "https://builder.purplemanager.com/api/versions";
|
|
38
|
+
|
|
39
|
+
export const appsUrl =
|
|
40
|
+
config.appsUrl || "https://builder.purplemanager.com/api/apps";
|
|
41
|
+
|
|
35
42
|
export const listResourcesUrl =
|
|
36
43
|
config.listResourcesUrl ||
|
|
37
44
|
`https://purplemanager.com/purple-manager-backend/app/listresources`;
|
|
@@ -42,6 +49,13 @@ export const downloadBaseUrl =
|
|
|
42
49
|
export const uploadBaseUrl =
|
|
43
50
|
config.uploadBaseUrl ||
|
|
44
51
|
`https://purplemanager.com/purple-manager-backend/app/uploadresources`;
|
|
52
|
+
|
|
53
|
+
export const downloadFileBaseUrl = `https://builder.purplemanager.com/api/apps/${appId}/resources/working-copy`;
|
|
54
|
+
export const diffSimpleUrl = `https://builder.purplemanager.com/api/apps/${appId}/resources/diff/simple`;
|
|
55
|
+
export const pushUrl = `https://builder.purplemanager.com/api/apps/${appId}/resources/push`;
|
|
56
|
+
export const pullWorkingCopyUrl =
|
|
57
|
+
config.pullWorkingCopyUrl ||
|
|
58
|
+
`https://builder.purplemanager.com/api/apps/${appId}/resources/pull`;
|
|
45
59
|
export const preview = true;
|
|
46
60
|
export const uploadTimeout = 120000;
|
|
47
61
|
export const baseUrl = config.baseUrl || "https://purplemanager.com/delivery";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export const deleteWorkingCopy = ({ appId, sessionId }) => {};
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import * as GetDiffSimpleResponse from "../GetDiffSimpleResponse/GetDiffSimpleResponse.js";
|
|
2
|
+
|
|
3
|
+
export const diffSimple = async ({ sessionId, diffSimpleUrl, appId }) => {
|
|
4
|
+
const result = await GetDiffSimpleResponse.getDiffSimpleResponse({
|
|
5
|
+
sessionId,
|
|
6
|
+
diffSimpleUrl,
|
|
7
|
+
appId,
|
|
8
|
+
});
|
|
9
|
+
return result;
|
|
10
|
+
};
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { VError } from "@lvce-editor/verror";
|
|
2
|
+
import { mkdir, writeFile } from "fs/promises";
|
|
3
|
+
import { dirname } from "path";
|
|
4
|
+
import * as Assert from "../Assert/Assert.js";
|
|
5
|
+
import * as NetworkProcess from "../NetworkProcess/NetworkProcess.js";
|
|
6
|
+
|
|
7
|
+
export const downloadDiffFile = async ({
|
|
8
|
+
diffFile,
|
|
9
|
+
localFilePath,
|
|
10
|
+
downloadFileBaseUrl,
|
|
11
|
+
sessionId,
|
|
12
|
+
appId,
|
|
13
|
+
}) => {
|
|
14
|
+
try {
|
|
15
|
+
Assert.string(diffFile);
|
|
16
|
+
Assert.string(downloadFileBaseUrl);
|
|
17
|
+
const response = await NetworkProcess.invoke("Network.downloadDiffFile", {
|
|
18
|
+
diffFile,
|
|
19
|
+
downloadFileBaseUrl,
|
|
20
|
+
sessionId,
|
|
21
|
+
appId,
|
|
22
|
+
});
|
|
23
|
+
await mkdir(dirname(localFilePath), { recursive: true });
|
|
24
|
+
await writeFile(localFilePath, response);
|
|
25
|
+
} catch (error) {
|
|
26
|
+
throw new VError(error, `Failed to download diff file`);
|
|
27
|
+
}
|
|
28
|
+
};
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { join } from "node:path";
|
|
2
|
+
import * as DownloadDiffFile from "../DownloadDiffFile/DownloadDiffFile.js";
|
|
3
|
+
import { rm } from "node:fs/promises";
|
|
4
|
+
|
|
5
|
+
export const downloadDiffFiles = async ({
|
|
6
|
+
diffFiles,
|
|
7
|
+
src,
|
|
8
|
+
downloadFileBaseUrl,
|
|
9
|
+
appId,
|
|
10
|
+
sessionId,
|
|
11
|
+
}) => {
|
|
12
|
+
for (const diffFile of diffFiles) {
|
|
13
|
+
const diffFilePath = diffFile.path;
|
|
14
|
+
const localFilePath = join(src, diffFilePath);
|
|
15
|
+
switch (diffFile.mode) {
|
|
16
|
+
case "c":
|
|
17
|
+
case "+":
|
|
18
|
+
await DownloadDiffFile.downloadDiffFile({
|
|
19
|
+
diffFile: diffFilePath,
|
|
20
|
+
downloadFileBaseUrl,
|
|
21
|
+
localFilePath,
|
|
22
|
+
appId,
|
|
23
|
+
sessionId,
|
|
24
|
+
});
|
|
25
|
+
break;
|
|
26
|
+
case "-":
|
|
27
|
+
await rm(localFilePath, {
|
|
28
|
+
force: true,
|
|
29
|
+
recursive: true,
|
|
30
|
+
});
|
|
31
|
+
default:
|
|
32
|
+
break;
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
};
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { VError } from "@lvce-editor/verror";
|
|
2
|
+
import * as Assert from "../Assert/Assert.js";
|
|
3
|
+
import { readFile } from "fs/promises";
|
|
4
|
+
|
|
5
|
+
export const getCurrentExperienceVersion = async (buildInfoPath) => {
|
|
6
|
+
try {
|
|
7
|
+
Assert.string(buildInfoPath);
|
|
8
|
+
const content = await readFile(buildInfoPath, "utf8");
|
|
9
|
+
const value = JSON.parse(content);
|
|
10
|
+
return value.version;
|
|
11
|
+
} catch (error) {
|
|
12
|
+
throw new VError(error, `Failed to get current experience version`);
|
|
13
|
+
}
|
|
14
|
+
};
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import * as NetworkProcess from "../NetworkProcess/NetworkProcess.js";
|
|
2
|
+
|
|
3
|
+
export const getDiffSimpleResponse = ({ diffSimpleUrl, sessionId, appId }) => {
|
|
4
|
+
return NetworkProcess.invoke("Network.getDiffSimpleResponse", {
|
|
5
|
+
diffSimpleUrl,
|
|
6
|
+
sessionId,
|
|
7
|
+
appId,
|
|
8
|
+
});
|
|
9
|
+
};
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import * as Assert from "../Assert/Assert.js";
|
|
2
|
+
|
|
3
|
+
export const getLatestStableVersion = (versions) => {
|
|
4
|
+
Assert.array(versions);
|
|
5
|
+
for (const version of versions) {
|
|
6
|
+
if (version.includes("SNAPSHOT")) {
|
|
7
|
+
continue;
|
|
8
|
+
}
|
|
9
|
+
return version;
|
|
10
|
+
}
|
|
11
|
+
throw new Error(`latest stable version not found`);
|
|
12
|
+
};
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import * as NetworkProcess from "../NetworkProcess/NetworkProcess.js";
|
|
2
|
+
|
|
3
|
+
export const getListExperienceVersionsResponse = ({
|
|
4
|
+
listVersionsUrl,
|
|
5
|
+
sessionId,
|
|
6
|
+
appId,
|
|
7
|
+
}) => {
|
|
8
|
+
return NetworkProcess.invoke("Network.getListExperienceVersionsResponse", {
|
|
9
|
+
listVersionsUrl,
|
|
10
|
+
sessionId,
|
|
11
|
+
appId,
|
|
12
|
+
});
|
|
13
|
+
};
|
package/src/parts/Help/Help.js
CHANGED
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import * as GetListExperienceVersionsResponse from "../GetListExperienceVersionsResponse/GetListExperienceVersionsResponse.js";
|
|
2
|
+
|
|
3
|
+
export const listExperienceVersions = async ({
|
|
4
|
+
listVersionsUrl,
|
|
5
|
+
sessionId,
|
|
6
|
+
appId,
|
|
7
|
+
}) => {
|
|
8
|
+
const result =
|
|
9
|
+
await GetListExperienceVersionsResponse.getListExperienceVersionsResponse({
|
|
10
|
+
listVersionsUrl,
|
|
11
|
+
sessionId,
|
|
12
|
+
appId,
|
|
13
|
+
});
|
|
14
|
+
return result;
|
|
15
|
+
};
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import * as NetworkProcess from "../NetworkProcess/NetworkProcess.js";
|
|
2
|
+
|
|
3
|
+
export const makeUpgradeRequest = async ({
|
|
4
|
+
appsUrl,
|
|
5
|
+
appId,
|
|
6
|
+
sessionId,
|
|
7
|
+
targetVersion,
|
|
8
|
+
}) => {
|
|
9
|
+
await NetworkProcess.invoke("Network.makeUpgradeRequest", {
|
|
10
|
+
appsUrl,
|
|
11
|
+
appId,
|
|
12
|
+
sessionId,
|
|
13
|
+
targetVersion,
|
|
14
|
+
});
|
|
15
|
+
};
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import * as NetworkProcess from "../NetworkProcess/NetworkProcess.js";
|
|
2
|
+
|
|
3
|
+
export const pullWorkingCopy = async ({
|
|
4
|
+
pullWorkingCopyUrl,
|
|
5
|
+
sessionId,
|
|
6
|
+
appId,
|
|
7
|
+
}) => {
|
|
8
|
+
return NetworkProcess.invoke("Network.pullWorkingCopy", {
|
|
9
|
+
pullWorkingCopyUrl,
|
|
10
|
+
sessionId,
|
|
11
|
+
appId,
|
|
12
|
+
});
|
|
13
|
+
};
|
|
File without changes
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import { VError } from "@lvce-editor/verror";
|
|
2
|
+
import { join } from "node:path";
|
|
3
|
+
import * as Config from "../Config/Config.js";
|
|
4
|
+
import * as Cwd from "../Cwd/Cwd.js";
|
|
5
|
+
import * as DiffSimple from "../DiffSimple/DiffSimple.js";
|
|
6
|
+
import * as DownloadDiffFiles from "../DownloadDiffFiles/DownloadDiffFiles.js";
|
|
7
|
+
import * as GetLatestStableVersion from "../GetLatestStableVersion/GetLatestStableVersion.js";
|
|
8
|
+
import * as ListExperienceVersions from "../ListExperienceVersions/ListExperienceVersions.js";
|
|
9
|
+
import * as Login from "../Login/Login.js";
|
|
10
|
+
import * as MakeUpgradeRequest from "../MakeUpgradeRequest/MakeUpgradeRequest.js";
|
|
11
|
+
import * as NetworkProcess from "../NetworkProcess/NetworkProcess.js";
|
|
12
|
+
import * as PullWorkingCopy from "../PullWorkingCopy/PullWorkingCopy.js";
|
|
13
|
+
|
|
14
|
+
export const upgrade = async () => {
|
|
15
|
+
try {
|
|
16
|
+
const {
|
|
17
|
+
userEmail,
|
|
18
|
+
userPassword,
|
|
19
|
+
loginUrl,
|
|
20
|
+
appId,
|
|
21
|
+
listVersionsUrl,
|
|
22
|
+
appsUrl,
|
|
23
|
+
diffSimpleUrl,
|
|
24
|
+
downloadFileBaseUrl,
|
|
25
|
+
pullWorkingCopyUrl,
|
|
26
|
+
} = Config;
|
|
27
|
+
const src = join(Cwd.cwd, "src");
|
|
28
|
+
const sessionInfo = await Login.login({
|
|
29
|
+
loginUrl,
|
|
30
|
+
userEmail,
|
|
31
|
+
userPassword,
|
|
32
|
+
});
|
|
33
|
+
const sessionId = sessionInfo.sessionID;
|
|
34
|
+
await PullWorkingCopy.pullWorkingCopy({
|
|
35
|
+
appId,
|
|
36
|
+
sessionId,
|
|
37
|
+
pullWorkingCopyUrl,
|
|
38
|
+
});
|
|
39
|
+
const versions = await ListExperienceVersions.listExperienceVersions({
|
|
40
|
+
listVersionsUrl,
|
|
41
|
+
sessionId,
|
|
42
|
+
appId,
|
|
43
|
+
});
|
|
44
|
+
const latestStableVersion =
|
|
45
|
+
GetLatestStableVersion.getLatestStableVersion(versions);
|
|
46
|
+
console.info(`[pronto] Found latest version ${latestStableVersion}`);
|
|
47
|
+
await MakeUpgradeRequest.makeUpgradeRequest({
|
|
48
|
+
appsUrl,
|
|
49
|
+
appId,
|
|
50
|
+
sessionId,
|
|
51
|
+
targetVersion: latestStableVersion,
|
|
52
|
+
});
|
|
53
|
+
const diffFiles = await DiffSimple.diffSimple({
|
|
54
|
+
diffSimpleUrl,
|
|
55
|
+
sessionId,
|
|
56
|
+
appId,
|
|
57
|
+
});
|
|
58
|
+
await DownloadDiffFiles.downloadDiffFiles({
|
|
59
|
+
diffFiles,
|
|
60
|
+
src,
|
|
61
|
+
downloadFileBaseUrl,
|
|
62
|
+
appId,
|
|
63
|
+
sessionId,
|
|
64
|
+
});
|
|
65
|
+
} catch (error) {
|
|
66
|
+
throw new VError(error, `Failed to upgrade`);
|
|
67
|
+
} finally {
|
|
68
|
+
NetworkProcess.dispose();
|
|
69
|
+
}
|
|
70
|
+
};
|