@social-mail/social-mail-web-server 1.5.71 → 1.5.72
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/common/ImagesFolder.d.ts +2 -0
- package/dist/common/ImagesFolder.d.ts.map +1 -1
- package/dist/common/ImagesFolder.js +3 -1
- package/dist/common/ImagesFolder.js.map +1 -1
- package/dist/server/services/image-converter/ImageConverterService.d.ts +1 -1
- package/dist/server/services/image-converter/ImageConverterService.d.ts.map +1 -1
- package/dist/server/services/image-converter/ImageConverterService.js +119 -53
- package/dist/server/services/image-converter/ImageConverterService.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +2 -2
- package/src/common/ImagesFolder.ts +3 -1
- package/src/server/services/image-converter/ImageConverterService.ts +11 -11
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@social-mail/social-mail-web-server",
|
|
3
|
-
"version": "1.5.
|
|
3
|
+
"version": "1.5.72",
|
|
4
4
|
"description": "## Phase 1",
|
|
5
5
|
"main": "index.js",
|
|
6
6
|
"type": "module",
|
|
@@ -22,7 +22,7 @@
|
|
|
22
22
|
"@aws-sdk/client-s3": "^3.609.0",
|
|
23
23
|
"@azure/storage-blob": "^12.25.0",
|
|
24
24
|
"@entity-access/entity-access": "^1.0.360",
|
|
25
|
-
"@entity-access/server-pages": "^1.1.
|
|
25
|
+
"@entity-access/server-pages": "^1.1.289",
|
|
26
26
|
"@otplib/preset-v11": "^12.0.1",
|
|
27
27
|
"@social-mail/noto-emoji-svg": "^2.0.42",
|
|
28
28
|
"@social-mail/shared": "^1.0.11",
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { LocalFile } from "@entity-access/server-pages/dist/core/LocalFile.js";
|
|
1
2
|
import { dirname, join } from "path";
|
|
2
3
|
import { fileURLToPath } from "url";
|
|
3
4
|
|
|
@@ -14,5 +15,6 @@ export const ImagesFolder = {
|
|
|
14
15
|
const contentFolder = join(fileURLToPath(metaDir), "..", "..", "content");
|
|
15
16
|
export const ContentFolder = {
|
|
16
17
|
folder: contentFolder,
|
|
17
|
-
file: (name) => join(contentFolder, name)
|
|
18
|
+
file: (name) => join(contentFolder, name),
|
|
19
|
+
localFile: (name: string) => new LocalFile(join(contentFolder, name), name.split("/").pop(), void 0, () => void 0)
|
|
18
20
|
};
|
|
@@ -22,17 +22,16 @@ export default class ImageConverterService {
|
|
|
22
22
|
@Inject
|
|
23
23
|
tempFileService: TempFileService;
|
|
24
24
|
|
|
25
|
-
async getImage(file: LocalFile, pageNumber
|
|
25
|
+
async getImage(file: LocalFile, pageNumber?, retry = true) {
|
|
26
26
|
|
|
27
27
|
let outputFile: LocalFile;
|
|
28
|
-
let folder: TempFolder;
|
|
29
28
|
let copy: LocalFile;
|
|
30
29
|
|
|
31
30
|
if (/^image\//.test(file.contentType)) {
|
|
32
31
|
|
|
33
32
|
if (/\.bmp$/i.test(file.fileName)) {
|
|
34
|
-
|
|
35
|
-
copy =
|
|
33
|
+
using f1 = new TempFolder();
|
|
34
|
+
copy = await f1.copy(file.fileName, file, file.contentType);
|
|
36
35
|
outputFile = await this.tempFileService.createTempFile(".bmp", "bmp", "image/bmp");
|
|
37
36
|
await spawnPromise("convert", [
|
|
38
37
|
copy.path,
|
|
@@ -45,10 +44,9 @@ export default class ImageConverterService {
|
|
|
45
44
|
}
|
|
46
45
|
|
|
47
46
|
|
|
48
|
-
folder = new TempFolder();
|
|
49
|
-
copy = folder.
|
|
47
|
+
using folder = new TempFolder();
|
|
48
|
+
copy = await folder.copy(file.fileName, file, file.contentType);
|
|
50
49
|
outputFile = await this.tempFileService.createTempFile(".png", "png", "image/png");
|
|
51
|
-
await file.copyTo(copy);
|
|
52
50
|
|
|
53
51
|
if (/^video\//.test(file.contentType)) {
|
|
54
52
|
// this is a video..
|
|
@@ -68,6 +66,7 @@ export default class ImageConverterService {
|
|
|
68
66
|
args.push("-f");
|
|
69
67
|
args.push(Number(pageNumber).toString());
|
|
70
68
|
}
|
|
69
|
+
|
|
71
70
|
await spawnPromise("pdftoppm", args, {
|
|
72
71
|
cwd: folder.folder
|
|
73
72
|
});
|
|
@@ -75,7 +74,7 @@ export default class ImageConverterService {
|
|
|
75
74
|
const isPng = /\.png$/i;
|
|
76
75
|
|
|
77
76
|
for (const child of await readdir(folder.folder, { withFileTypes: true})) {
|
|
78
|
-
const output = join(child.
|
|
77
|
+
const output = join(child.parentPath, child.name);
|
|
79
78
|
if (isPng.test(child.name)) {
|
|
80
79
|
await copyFile(output, outputFile.path);
|
|
81
80
|
return outputFile;
|
|
@@ -84,9 +83,10 @@ export default class ImageConverterService {
|
|
|
84
83
|
|
|
85
84
|
if (!existsSync(outputFile.path)) {
|
|
86
85
|
// copy protected.pdf
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
86
|
+
if (retry) {
|
|
87
|
+
const src = ContentFolder.localFile("pdf/protected.pdf");
|
|
88
|
+
return await this.getImage(src, pageNumber, false);
|
|
89
|
+
}
|
|
90
90
|
}
|
|
91
91
|
}
|
|
92
92
|
|