@paroicms/server 0.148.0 → 0.149.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/dist/site-backup/backup-tasks.d.ts +1 -2
- package/dist/site-backup/backup-tasks.js +10 -61
- package/dist/site-backup/backup-tasks.js.map +1 -1
- package/dist/site-backup/backup.js +2 -1
- package/dist/site-backup/backup.js.map +1 -1
- package/package.json +6 -6
- package/dist/site-backup/default-data/default-config.d.ts +0 -1
- package/dist/site-backup/default-data/default-config.js +0 -50
- package/dist/site-backup/default-data/default-config.js.map +0 -1
- package/dist/site-backup/default-data/default-readme.d.ts +0 -1
- package/dist/site-backup/default-data/default-readme.js +0 -8
- package/dist/site-backup/default-data/default-readme.js.map +0 -1
|
@@ -1,10 +1,9 @@
|
|
|
1
1
|
import { SiteContext } from "../site-context/site-context.types";
|
|
2
|
-
export declare function buildSiteBackup({ siteDir, dataDir,
|
|
2
|
+
export declare function buildSiteBackup({ siteDir, dataDir, siteLog }: SiteContext, backupTempDir: string, archiveBaseName: string): Promise<{
|
|
3
3
|
zipFileWeight: number;
|
|
4
4
|
zipFilePath: string;
|
|
5
5
|
zipFileName: string;
|
|
6
6
|
}>;
|
|
7
|
-
export declare function makeDir(path: string, dirName: string): Promise<string>;
|
|
8
7
|
export declare function makeBackupTempDir(siteFqdn: string, tmpDir: string): Promise<{
|
|
9
8
|
dirName: string;
|
|
10
9
|
dirPath: string;
|
|
@@ -3,23 +3,21 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.makeBackupTempDir = exports.
|
|
6
|
+
exports.makeBackupTempDir = exports.buildSiteBackup = void 0;
|
|
7
7
|
const server_lib_1 = require("@paroicms/server-lib");
|
|
8
8
|
const dayjs_1 = __importDefault(require("dayjs"));
|
|
9
|
-
const promises_1 = require("fs/promises");
|
|
10
9
|
const path_1 = require("path");
|
|
11
10
|
const jwt_secret_helpers_1 = require("../helpers/jwt-secret.helpers");
|
|
12
11
|
const archiver_helper_1 = require("./archiver.helper");
|
|
13
|
-
|
|
14
|
-
const default_readme_1 = require("./default-data/default-readme");
|
|
15
|
-
async function buildSiteBackup({ siteDir, dataDir, siteSchema, siteLog }, backupTempDir, archiveBaseName) {
|
|
12
|
+
async function buildSiteBackup({ siteDir, dataDir, siteLog }, backupTempDir, archiveBaseName) {
|
|
16
13
|
const themeDir = (0, path_1.join)(siteDir, "theme");
|
|
17
14
|
try {
|
|
18
|
-
await copyThemeFiles(themeDir, backupTempDir);
|
|
19
|
-
await
|
|
20
|
-
await makePackageJsonFile(backupTempDir, siteDir);
|
|
21
|
-
await makeDefaultConfigJsonFile(backupTempDir);
|
|
22
|
-
await
|
|
15
|
+
await (0, server_lib_1.copyThemeFiles)(themeDir, backupTempDir);
|
|
16
|
+
await (0, server_lib_1.makeContentDirectories)(backupTempDir, { copyFilesFromDataDir: dataDir });
|
|
17
|
+
await (0, server_lib_1.makePackageJsonFile)(backupTempDir, siteDir);
|
|
18
|
+
await (0, server_lib_1.makeDefaultConfigJsonFile)(backupTempDir, { devAccount: true });
|
|
19
|
+
await (0, server_lib_1.copySiteSchema)(siteDir, backupTempDir);
|
|
20
|
+
await (0, server_lib_1.copyTranslateFiles)(siteDir, backupTempDir);
|
|
23
21
|
const tempArchiveDir = (0, path_1.normalize)(`${backupTempDir}/../`);
|
|
24
22
|
const { archivePath, archiveWeight, completeArchiveName } = await (0, archiver_helper_1.createZipArchive)({
|
|
25
23
|
sourceDir: backupTempDir,
|
|
@@ -38,61 +36,12 @@ async function buildSiteBackup({ siteDir, dataDir, siteSchema, siteLog }, backup
|
|
|
38
36
|
}
|
|
39
37
|
}
|
|
40
38
|
exports.buildSiteBackup = buildSiteBackup;
|
|
41
|
-
async function makeDir(path, dirName) {
|
|
42
|
-
const dirPath = (0, path_1.join)(path, dirName);
|
|
43
|
-
if (!(await (0, server_lib_1.pathExists)(dirPath))) {
|
|
44
|
-
try {
|
|
45
|
-
await (0, promises_1.mkdir)(dirPath);
|
|
46
|
-
return dirPath;
|
|
47
|
-
}
|
|
48
|
-
catch (error) {
|
|
49
|
-
throw new Error(`failed to create a directory: "${dirName}"`);
|
|
50
|
-
}
|
|
51
|
-
}
|
|
52
|
-
return dirPath;
|
|
53
|
-
}
|
|
54
|
-
exports.makeDir = makeDir;
|
|
55
39
|
async function makeBackupTempDir(siteFqdn, tmpDir) {
|
|
56
40
|
const randomKey = (0, jwt_secret_helpers_1.makeSecret)(3);
|
|
57
41
|
const dirName = `${(0, dayjs_1.default)().format("YYYYMMDD-hhmm")}-${siteFqdn}-${randomKey}`;
|
|
58
|
-
const dirPath =
|
|
42
|
+
const dirPath = (0, path_1.join)(tmpDir, dirName);
|
|
43
|
+
await (0, server_lib_1.ensureDirectory)(dirPath);
|
|
59
44
|
return { dirName, dirPath };
|
|
60
45
|
}
|
|
61
46
|
exports.makeBackupTempDir = makeBackupTempDir;
|
|
62
|
-
async function copyThemeFiles(themeDir, backupTempDir) {
|
|
63
|
-
const backupThemeDir = await makeDir(backupTempDir, "theme");
|
|
64
|
-
await (0, promises_1.cp)(themeDir, backupThemeDir, { recursive: true });
|
|
65
|
-
}
|
|
66
|
-
async function copySiteSchemaFiles(siteSchema, siteDir, backupTempDir) {
|
|
67
|
-
await (0, promises_1.copyFile)((0, path_1.join)(siteDir, "site-schema.json"), (0, path_1.join)(backupTempDir, "site-schema.json"));
|
|
68
|
-
for (const lang of siteSchema.langs) {
|
|
69
|
-
const translateFilePath = (0, path_1.join)(siteDir, `site-schema.l10n.${lang}.json`);
|
|
70
|
-
if (await (0, server_lib_1.pathExists)(translateFilePath)) {
|
|
71
|
-
await (0, promises_1.copyFile)(translateFilePath, (0, path_1.join)(backupTempDir, `site-schema.l10n.${lang}.json`));
|
|
72
|
-
}
|
|
73
|
-
}
|
|
74
|
-
}
|
|
75
|
-
async function makePackageJsonFile(backupTempDir, siteDir) {
|
|
76
|
-
const originalPackageJsonPath = (0, path_1.join)(siteDir, "package.json");
|
|
77
|
-
const fileContent = await (0, promises_1.readFile)(originalPackageJsonPath, { encoding: "utf-8" });
|
|
78
|
-
const contentParsed = JSON.parse(fileContent);
|
|
79
|
-
contentParsed.main = undefined;
|
|
80
|
-
const backupPackageJsonPath = (0, path_1.join)(backupTempDir, "package.json");
|
|
81
|
-
await (0, promises_1.writeFile)(backupPackageJsonPath, JSON.stringify(contentParsed));
|
|
82
|
-
}
|
|
83
|
-
async function makeDefaultConfigJsonFile(backupTempDir) {
|
|
84
|
-
const configJsonContent = (0, default_config_1.makeDefaultConfigForSingleSite)();
|
|
85
|
-
const backupConfigJsonFilePath = (0, path_1.join)(backupTempDir, "config.json");
|
|
86
|
-
await (0, promises_1.writeFile)(backupConfigJsonFilePath, configJsonContent);
|
|
87
|
-
}
|
|
88
|
-
async function makeDevDirContent(backupTempDir, dbDir) {
|
|
89
|
-
const cacheDir = await makeDir(backupTempDir, "cache");
|
|
90
|
-
const dataDir = await makeDir(backupTempDir, "data");
|
|
91
|
-
const backupDir = await makeDir(backupTempDir, "backup");
|
|
92
|
-
const readmeContent = (0, default_readme_1.makeDefaultReadme)();
|
|
93
|
-
await (0, promises_1.writeFile)((0, path_1.join)(cacheDir, "README.md"), readmeContent);
|
|
94
|
-
await (0, promises_1.writeFile)((0, path_1.join)(backupDir, "README.md"), readmeContent);
|
|
95
|
-
await (0, promises_1.copyFile)((0, path_1.join)(dbDir, "main.sqlite"), (0, path_1.join)(dataDir, "main.sqlite"));
|
|
96
|
-
await (0, promises_1.copyFile)((0, path_1.join)(dbDir, "medias.sqlite"), (0, path_1.join)(dataDir, "medias.sqlite"));
|
|
97
|
-
}
|
|
98
47
|
//# sourceMappingURL=backup-tasks.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"backup-tasks.js","sourceRoot":"","sources":["../../src/site-backup/backup-tasks.ts"],"names":[],"mappings":";;;;;;
|
|
1
|
+
{"version":3,"file":"backup-tasks.js","sourceRoot":"","sources":["../../src/site-backup/backup-tasks.ts"],"names":[],"mappings":";;;;;;AAAA,qDAQ8B;AAC9B,kDAA0B;AAC1B,+BAAuC;AACvC,sEAA2D;AAE3D,uDAAqD;AAE9C,KAAK,UAAU,eAAe,CACnC,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAe,EAC1C,aAAqB,EACrB,eAAuB;IAEvB,MAAM,QAAQ,GAAG,IAAA,WAAI,EAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAExC,IAAI,CAAC;QACH,MAAM,IAAA,2BAAc,EAAC,QAAQ,EAAE,aAAa,CAAC,CAAC;QAC9C,MAAM,IAAA,mCAAsB,EAAC,aAAa,EAAE,EAAE,oBAAoB,EAAE,OAAO,EAAE,CAAC,CAAC;QAC/E,MAAM,IAAA,gCAAmB,EAAC,aAAa,EAAE,OAAO,CAAC,CAAC;QAClD,MAAM,IAAA,sCAAyB,EAAC,aAAa,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC;QACrE,MAAM,IAAA,2BAAc,EAAC,OAAO,EAAE,aAAa,CAAC,CAAC;QAC7C,MAAM,IAAA,+BAAkB,EAAC,OAAO,EAAE,aAAa,CAAC,CAAC;QAEjD,MAAM,cAAc,GAAG,IAAA,gBAAS,EAAC,GAAG,aAAa,MAAM,CAAC,CAAC;QACzD,MAAM,EAAE,WAAW,EAAE,aAAa,EAAE,mBAAmB,EAAE,GAAG,MAAM,IAAA,kCAAgB,EAAC;YACjF,SAAS,EAAE,aAAa;YACxB,OAAO,EAAE,cAAc;YACvB,QAAQ,EAAE,eAAe;YACzB,OAAO;SACR,CAAC,CAAC;QAEH,OAAO;YACL,WAAW,EAAE,WAAW;YACxB,aAAa,EAAE,aAAa;YAC5B,WAAW,EAAE,mBAAmB;SACjC,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CAAC,0CAA0C,KAAK,EAAE,CAAC,CAAC;IACrE,CAAC;AACH,CAAC;AA/BD,0CA+BC;AAEM,KAAK,UAAU,iBAAiB,CAAC,QAAgB,EAAE,MAAc;IACtE,MAAM,SAAS,GAAG,IAAA,+BAAU,EAAC,CAAC,CAAC,CAAC;IAChC,MAAM,OAAO,GAAG,GAAG,IAAA,eAAK,GAAE,CAAC,MAAM,CAAC,eAAe,CAAC,IAAI,QAAQ,IAAI,SAAS,EAAE,CAAC;IAC9E,MAAM,OAAO,GAAG,IAAA,WAAI,EAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACtC,MAAM,IAAA,4BAAe,EAAC,OAAO,CAAC,CAAC;IAC/B,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC;AAC9B,CAAC;AAND,8CAMC"}
|
|
@@ -7,7 +7,8 @@ const promises_1 = require("fs/promises");
|
|
|
7
7
|
const path_1 = require("path");
|
|
8
8
|
const backup_tasks_1 = require("./backup-tasks");
|
|
9
9
|
async function initNewBackup(siteContext) {
|
|
10
|
-
const tmpPath =
|
|
10
|
+
const tmpPath = (0, path_1.join)(siteContext.cacheDir, "tmp");
|
|
11
|
+
await (0, server_lib_1.ensureDirectory)(tmpPath);
|
|
11
12
|
const { dirPath: backupTempDir, dirName: backupArchiveName } = await (0, backup_tasks_1.makeBackupTempDir)(siteContext.fqdn, tmpPath);
|
|
12
13
|
const { zipFilePath, zipFileWeight, zipFileName } = await (0, backup_tasks_1.buildSiteBackup)(siteContext, backupTempDir, backupArchiveName);
|
|
13
14
|
await (0, promises_1.copyFile)(zipFilePath, (0, path_1.join)(siteContext.backupDir, zipFileName));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"backup.js","sourceRoot":"","sources":["../../src/site-backup/backup.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"backup.js","sourceRoot":"","sources":["../../src/site-backup/backup.ts"],"names":[],"mappings":";;;AAAA,qDAAyE;AACzE,2BAAkD;AAClD,0CAA2C;AAC3C,+BAA4B;AAE5B,iDAAoE;AAE7D,KAAK,UAAU,aAAa,CAAC,WAAwB;IAC1D,MAAM,OAAO,GAAG,IAAA,WAAI,EAAC,WAAW,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;IAClD,MAAM,IAAA,4BAAe,EAAC,OAAO,CAAC,CAAC;IAC/B,MAAM,EAAE,OAAO,EAAE,aAAa,EAAE,OAAO,EAAE,iBAAiB,EAAE,GAAG,MAAM,IAAA,gCAAiB,EACpF,WAAW,CAAC,IAAI,EAChB,OAAO,CACR,CAAC;IAEF,MAAM,EAAE,WAAW,EAAE,aAAa,EAAE,WAAW,EAAE,GAAG,MAAM,IAAA,8BAAe,EACvE,WAAW,EACX,aAAa,EACb,iBAAiB,CAClB,CAAC;IAEF,MAAM,IAAA,mBAAQ,EAAC,WAAW,EAAE,IAAA,WAAI,EAAC,WAAW,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC,CAAC;IACtE,MAAM,IAAA,aAAE,EAAC,WAAW,CAAC,CAAC;IACtB,MAAM,IAAA,aAAE,EAAC,aAAa,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAE7C,OAAO;QACL,WAAW;QACX,aAAa;KACd,CAAC;AACJ,CAAC;AAtBD,sCAsBC;AAEM,KAAK,UAAU,SAAS,CAC7B,EAAE,SAAS,EAAe,EAC1B,UAAkB;IAElB,MAAM,UAAU,GAAG,IAAA,WAAI,EAAC,SAAS,EAAE,UAAU,CAAC,CAAC;IAE/C,MAAM,SAAS,GAAG,MAAM,IAAA,6BAAgB,EAAC,UAAU,CAAC,CAAC;IACrD,IAAI,CAAC,SAAS;QAAE,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;IACjE,MAAM,MAAM,GAAG,IAAA,qBAAgB,EAAC,UAAU,CAAC,CAAC;IAE5C,OAAO;QACL,UAAU,EAAE,SAAS,CAAC,IAAI;QAC1B,UAAU,EAAE,MAAM;KACnB,CAAC;AACJ,CAAC;AAdD,8BAcC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@paroicms/server",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.149.0",
|
|
4
4
|
"description": "paroi-web-platform's server",
|
|
5
5
|
"author": "Paroi Team",
|
|
6
6
|
"license": "MIT",
|
|
@@ -34,10 +34,10 @@
|
|
|
34
34
|
"@paroi/data-formatters-lib": "~0.1.2",
|
|
35
35
|
"@paroicms/anywhere-lib": "0.54.0",
|
|
36
36
|
"@paroicms/bo": "0.107.0",
|
|
37
|
-
"@paroicms/server-database-media-storage": "0.
|
|
38
|
-
"@paroicms/server-image-cache-engine": "0.
|
|
39
|
-
"@paroicms/server-lib": "0.
|
|
40
|
-
"@paroicms/server-text-cache-system": "0.12.
|
|
37
|
+
"@paroicms/server-database-media-storage": "0.36.0",
|
|
38
|
+
"@paroicms/server-image-cache-engine": "0.27.0",
|
|
39
|
+
"@paroicms/server-lib": "0.16.0",
|
|
40
|
+
"@paroicms/server-text-cache-system": "0.12.1",
|
|
41
41
|
"@paroicms/site-app": "0.33.0",
|
|
42
42
|
"@typeonly/validator": "~0.5.2",
|
|
43
43
|
"archiver": "^6.0.1",
|
|
@@ -65,7 +65,7 @@
|
|
|
65
65
|
"@types/express": "~4.17.21",
|
|
66
66
|
"@types/html-minifier-terser": "~7.0.2",
|
|
67
67
|
"@types/multer": "~1.4.11",
|
|
68
|
-
"@types/node": "~20.
|
|
68
|
+
"@types/node": "~20.11.27",
|
|
69
69
|
"@types/passport-google-oauth20": "~2.0.14",
|
|
70
70
|
"@types/passport-jwt": "~3.0.13",
|
|
71
71
|
"@types/passport-local": "~1.0.38",
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export declare function makeDefaultConfigForSingleSite(): string;
|
|
@@ -1,50 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.makeDefaultConfigForSingleSite = void 0;
|
|
4
|
-
function makeDefaultConfigForSingleSite() {
|
|
5
|
-
return `{
|
|
6
|
-
"thisServer": {
|
|
7
|
-
"port": 8080,
|
|
8
|
-
"hostName": null
|
|
9
|
-
},
|
|
10
|
-
"log": {
|
|
11
|
-
"level": "debug"
|
|
12
|
-
},
|
|
13
|
-
"allowRobots": true,
|
|
14
|
-
"immutableAssets": false,
|
|
15
|
-
"cacheTimeToIdle": "disabled",
|
|
16
|
-
"clearCacheAfterStart": false,
|
|
17
|
-
"devTools": true,
|
|
18
|
-
"imageProcessor": {
|
|
19
|
-
"cpuCoresPerFile": 1,
|
|
20
|
-
"oneSharpAtATime": true
|
|
21
|
-
},
|
|
22
|
-
"googleRecaptcha": {
|
|
23
|
-
"siteKey": "",
|
|
24
|
-
"secretKey": ""
|
|
25
|
-
},
|
|
26
|
-
"googleAuth": {
|
|
27
|
-
"disabled": true,
|
|
28
|
-
"clientId": "",
|
|
29
|
-
"clientSecret": ""
|
|
30
|
-
},
|
|
31
|
-
"awsSesMail": {
|
|
32
|
-
"disabled": true,
|
|
33
|
-
"from": "",
|
|
34
|
-
"accessKeyId": "",
|
|
35
|
-
"secretAccessKey": "",
|
|
36
|
-
"region": ""
|
|
37
|
-
},
|
|
38
|
-
"singleSite": {
|
|
39
|
-
"siteDir": ".",
|
|
40
|
-
"dataDir": "data",
|
|
41
|
-
"cacheDir": "cache",
|
|
42
|
-
"backupDir": "backup",
|
|
43
|
-
"fqdn": "localhost",
|
|
44
|
-
"port": 8080,
|
|
45
|
-
"https": false
|
|
46
|
-
}
|
|
47
|
-
}`;
|
|
48
|
-
}
|
|
49
|
-
exports.makeDefaultConfigForSingleSite = makeDefaultConfigForSingleSite;
|
|
50
|
-
//# sourceMappingURL=default-config.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"default-config.js","sourceRoot":"","sources":["../../../src/site-backup/default-data/default-config.ts"],"names":[],"mappings":";;;AAAA,SAAgB,8BAA8B;IAC5C,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA0CP,CAAC;AACH,CAAC;AA5CD,wEA4CC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export declare function makeDefaultReadme(): string;
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.makeDefaultReadme = void 0;
|
|
4
|
-
function makeDefaultReadme() {
|
|
5
|
-
return "The content of this directory will be automatically generated.";
|
|
6
|
-
}
|
|
7
|
-
exports.makeDefaultReadme = makeDefaultReadme;
|
|
8
|
-
//# sourceMappingURL=default-readme.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"default-readme.js","sourceRoot":"","sources":["../../../src/site-backup/default-data/default-readme.ts"],"names":[],"mappings":";;;AAAA,SAAgB,iBAAiB;IAC/B,OAAO,gEAAgE,CAAC;AAC1E,CAAC;AAFD,8CAEC"}
|