@social-mail/social-mail-web-server 1.7.6 → 1.7.7
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/spawnPromise.js +3 -3
- package/dist/common/spawnPromise.js.map +1 -1
- package/dist/isolated/FileInfo.d.ts +9 -0
- package/dist/isolated/FileInfo.d.ts.map +1 -0
- package/dist/isolated/FileInfo.js +11 -0
- package/dist/isolated/FileInfo.js.map +1 -0
- package/dist/isolated/IsolatedProcess.d.ts +11 -0
- package/dist/isolated/IsolatedProcess.d.ts.map +1 -0
- package/dist/isolated/IsolatedProcess.js +26 -0
- package/dist/isolated/IsolatedProcess.js.map +1 -0
- package/dist/isolated/extract/IExtract.d.ts +9 -0
- package/dist/isolated/extract/IExtract.d.ts.map +1 -0
- package/dist/isolated/extract/IExtract.js +2 -0
- package/dist/isolated/extract/IExtract.js.map +1 -0
- package/dist/isolated/extract/index.d.ts +7 -0
- package/dist/isolated/extract/index.d.ts.map +1 -0
- package/dist/isolated/extract/index.js +51 -0
- package/dist/isolated/extract/index.js.map +1 -0
- package/dist/isolated/image-converter/IImageConverter.d.ts +11 -0
- package/dist/isolated/image-converter/IImageConverter.d.ts.map +1 -0
- package/dist/isolated/image-converter/IImageConverter.js +2 -0
- package/dist/isolated/image-converter/IImageConverter.js.map +1 -0
- package/dist/isolated/image-converter/formats/size.d.ts +5 -0
- package/dist/isolated/image-converter/formats/size.d.ts.map +1 -0
- package/dist/{server/services → isolated}/image-converter/formats/size.js +1 -0
- package/dist/isolated/image-converter/formats/size.js.map +1 -0
- package/dist/isolated/image-converter/index.d.ts +2 -0
- package/dist/isolated/image-converter/index.d.ts.map +1 -0
- package/dist/isolated/image-converter/index.js +59 -0
- package/dist/isolated/image-converter/index.js.map +1 -0
- package/dist/server/services/convert/FileConversionService.d.ts.map +1 -1
- package/dist/server/services/convert/FileConversionService.js +1 -1
- package/dist/server/services/convert/FileConversionService.js.map +1 -1
- package/dist/server/services/extract/Extract.d.ts.map +1 -1
- package/dist/server/services/extract/Extract.js +3 -53
- package/dist/server/services/extract/Extract.js.map +1 -1
- package/dist/server/services/image-converter/ImageConverterService.d.ts.map +1 -1
- package/dist/server/services/image-converter/ImageConverterService.js +7 -22
- package/dist/server/services/image-converter/ImageConverterService.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +1 -1
- package/src/common/spawnPromise.ts +3 -3
- package/src/isolated/FileInfo.ts +13 -0
- package/src/isolated/IsolatedProcess.ts +33 -0
- package/src/isolated/extract/IExtract.ts +4 -0
- package/src/isolated/extract/index.ts +59 -0
- package/src/isolated/image-converter/IImageConverter.ts +6 -0
- package/src/{server/services → isolated}/image-converter/formats/size.ts +1 -2
- package/src/isolated/image-converter/index.ts +73 -0
- package/src/server/services/convert/FileConversionService.ts +1 -1
- package/src/server/services/extract/Extract.ts +3 -48
- package/src/server/services/image-converter/ImageConverterService.ts +10 -25
- package/dist/server/services/image-converter/formats/size.d.ts +0 -4
- package/dist/server/services/image-converter/formats/size.d.ts.map +0 -1
- package/dist/server/services/image-converter/formats/size.js.map +0 -1
|
@@ -24,10 +24,10 @@ export const spawnPromise = (path, args, options) => new Promise((resolve, rejec
|
|
|
24
24
|
});
|
|
25
25
|
cd.on("close", (status) => {
|
|
26
26
|
if (status > 0) {
|
|
27
|
+
if (logError) {
|
|
28
|
+
console.error(all);
|
|
29
|
+
}
|
|
27
30
|
if (throwOnFail) {
|
|
28
|
-
if (logError) {
|
|
29
|
-
console.error(all);
|
|
30
|
-
}
|
|
31
31
|
reject(new Error(all.join("\n")));
|
|
32
32
|
return;
|
|
33
33
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"spawnPromise.js","sourceRoot":"","sources":["../../src/common/spawnPromise.ts"],"names":[],"mappings":"AAAA,+BAA+B;AAC/B,OAAO,EAA4B,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAErE,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAE3C,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,IAAI,EAAE,IAAe,EAAE,OAA2H,EAAE,EAAE,CAAC,IAAI,OAAO,CAI5L,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;IACnB,MAAM,GAAG,GAAG,EAAE,CAAC;IACf,MAAM,EAAE,UAAU,GAAG,IAAI,EAAE,WAAW,GAAG,KAAK,EAAE,OAAO,GAAG,IAAI,EAAE,QAAQ,GAAG,IAAI,EAAE,GAAG,OAAO,IAAI,EAAE,CAAC;IAClG,MAAM,EAAE,GAAG,KAAK,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;IACtC,MAAM,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC;IACnB,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE;QAC1B,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QAC7B,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACnB,CAAC,CAAC,CAAC;IACH,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE;QAC1B,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QAC7B,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;IAC9B,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE;QACrB,MAAM,SAAS,GAAG,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC7D,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC1C,IAAI,OAAO,IAAI,QAAQ,EAAE,CAAC;YACtB,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QAC7B,CAAC;QACD,MAAM,CAAC,KAAK,CAAC,CAAC;IAClB,CAAC,CAAC,CAAC;IACH,EAAE,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,MAAM,EAAE,EAAE;QACtB,IAAI,MAAM,GAAC,CAAC,EAAE,CAAC;YACX,IAAI,
|
|
1
|
+
{"version":3,"file":"spawnPromise.js","sourceRoot":"","sources":["../../src/common/spawnPromise.ts"],"names":[],"mappings":"AAAA,+BAA+B;AAC/B,OAAO,EAA4B,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAErE,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAE3C,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,IAAI,EAAE,IAAe,EAAE,OAA2H,EAAE,EAAE,CAAC,IAAI,OAAO,CAI5L,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;IACnB,MAAM,GAAG,GAAG,EAAE,CAAC;IACf,MAAM,EAAE,UAAU,GAAG,IAAI,EAAE,WAAW,GAAG,KAAK,EAAE,OAAO,GAAG,IAAI,EAAE,QAAQ,GAAG,IAAI,EAAE,GAAG,OAAO,IAAI,EAAE,CAAC;IAClG,MAAM,EAAE,GAAG,KAAK,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;IACtC,MAAM,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC;IACnB,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE;QAC1B,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QAC7B,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACnB,CAAC,CAAC,CAAC;IACH,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE;QAC1B,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QAC7B,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;IAC9B,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE;QACrB,MAAM,SAAS,GAAG,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC7D,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC1C,IAAI,OAAO,IAAI,QAAQ,EAAE,CAAC;YACtB,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QAC7B,CAAC;QACD,MAAM,CAAC,KAAK,CAAC,CAAC;IAClB,CAAC,CAAC,CAAC;IACH,EAAE,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,MAAM,EAAE,EAAE;QACtB,IAAI,MAAM,GAAC,CAAC,EAAE,CAAC;YACX,IAAI,QAAQ,EAAE,CAAC;gBACX,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACvB,CAAC;YACD,IAAI,WAAW,EAAE,CAAC;gBACd,MAAM,CAAC,IAAI,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBAClC,OAAO;YACX,CAAC;QACL,CAAC;QACD,IAAI,UAAU,EAAE,CAAC;YACb,OAAO,CAAC,GAAG,CAAC,UAAU,IAAI,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;YACpE,IAAI,OAAO,EAAE,CAAC;gBACV,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;YAChC,CAAC;QACL,CAAC;QACD,OAAO,CAAC;YACJ,IAAI,GAAG;gBACH,OAAO,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC1B,CAAC;YACD,GAAG;YACH,MAAM;SAAE,CAAC,CAAC;IAClB,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { LocalFile } from "@entity-access/server-pages/dist/core/LocalFile.js";
|
|
2
|
+
export default class FileInfo {
|
|
3
|
+
readonly path: string;
|
|
4
|
+
readonly contentType: string;
|
|
5
|
+
readonly fileName: string;
|
|
6
|
+
static from(file: LocalFile): FileInfo;
|
|
7
|
+
constructor(path: string, contentType: string, fileName: string);
|
|
8
|
+
}
|
|
9
|
+
//# sourceMappingURL=FileInfo.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FileInfo.d.ts","sourceRoot":"","sources":["../../src/isolated/FileInfo.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,oDAAoD,CAAC;AAE/E,MAAM,CAAC,OAAO,OAAO,QAAQ;aAOG,IAAI,EAAE,MAAM;aAAkB,WAAW,EAAE,MAAM;aAAkB,QAAQ,EAAE,MAAM;WAJjG,IAAI,CAAC,IAAI,EAAE,SAAS;gBAIN,IAAI,EAAE,MAAM,EAAkB,WAAW,EAAE,MAAM,EAAkB,QAAQ,EAAE,MAAM;CAGlH"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export default class FileInfo {
|
|
2
|
+
static from(file) {
|
|
3
|
+
return new FileInfo(file.path, file.contentType, file.fileName);
|
|
4
|
+
}
|
|
5
|
+
constructor(path, contentType, fileName) {
|
|
6
|
+
this.path = path;
|
|
7
|
+
this.contentType = contentType;
|
|
8
|
+
this.fileName = fileName;
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
//# sourceMappingURL=FileInfo.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FileInfo.js","sourceRoot":"","sources":["../../src/isolated/FileInfo.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,OAAO,OAAO,QAAQ;IAGlB,MAAM,CAAC,IAAI,CAAC,IAAe;QAC9B,OAAO,IAAI,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;IACpE,CAAC;IAED,YAA4B,IAAY,EAAkB,WAAmB,EAAkB,QAAgB;QAAnF,SAAI,GAAJ,IAAI,CAAQ;QAAkB,gBAAW,GAAX,WAAW,CAAQ;QAAkB,aAAQ,GAAR,QAAQ,CAAQ;IAE/G,CAAC;CACJ"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import IImageConverter from "./image-converter/IImageConverter.js";
|
|
2
|
+
import IExtract from "./extract/IExtract.js";
|
|
3
|
+
export default class IsolatedProcess {
|
|
4
|
+
static convertImage(p: IImageConverter): Promise<{
|
|
5
|
+
readonly all: string;
|
|
6
|
+
pid: number;
|
|
7
|
+
status: number;
|
|
8
|
+
}>;
|
|
9
|
+
static extractText(p: IExtract): Promise<string>;
|
|
10
|
+
}
|
|
11
|
+
//# sourceMappingURL=IsolatedProcess.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"IsolatedProcess.d.ts","sourceRoot":"","sources":["../../src/isolated/IsolatedProcess.ts"],"names":[],"mappings":"AAGA,OAAO,eAAe,MAAM,sCAAsC,CAAC;AACnE,OAAO,QAAQ,MAAM,uBAAuB,CAAC;AAE7C,MAAM,CAAC,OAAO,OAAO,eAAe;WAEnB,YAAY,CAAC,CAAC,EAAE,eAAe;;;;;WAW/B,WAAW,CAAC,CAAC,EAAE,QAAQ;CAavC"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { fileURLToPath } from "url";
|
|
2
|
+
import { spawnPromise } from "../common/spawnPromise.js";
|
|
3
|
+
export default class IsolatedProcess {
|
|
4
|
+
static async convertImage(p) {
|
|
5
|
+
return spawnPromise(process.execPath, [
|
|
6
|
+
"--enable-source-maps",
|
|
7
|
+
fileURLToPath(import.meta.resolve("./image-converter/index.js")),
|
|
8
|
+
JSON.stringify(p),
|
|
9
|
+
], {
|
|
10
|
+
logCommand: false,
|
|
11
|
+
logError: true
|
|
12
|
+
});
|
|
13
|
+
}
|
|
14
|
+
static async extractText(p) {
|
|
15
|
+
const result = await spawnPromise(process.execPath, [
|
|
16
|
+
"--enable-source-maps",
|
|
17
|
+
fileURLToPath(import.meta.resolve("./extract/index.js")),
|
|
18
|
+
JSON.stringify(p),
|
|
19
|
+
], {
|
|
20
|
+
logCommand: false,
|
|
21
|
+
logError: true
|
|
22
|
+
});
|
|
23
|
+
return result.all;
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=IsolatedProcess.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"IsolatedProcess.js","sourceRoot":"","sources":["../../src/isolated/IsolatedProcess.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AACpC,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAKzD,MAAM,CAAC,OAAO,OAAO,eAAe;IAEhC,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,CAAkB;QACxC,OAAO,YAAY,CAAC,OAAO,CAAC,QAAQ,EAAE;YAClC,sBAAsB;YACtB,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,4BAA4B,CAAC,CAAC;YAChE,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;SACpB,EAAE;YACC,UAAU,EAAE,KAAK;YACjB,QAAQ,EAAE,IAAI;SACjB,CAAC,CAAC;IACP,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,CAAW;QAChC,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,OAAO,CAAC,QAAQ,EAAE;YAChD,sBAAsB;YACtB,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC;YACxD,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;SACpB,EAAE;YACC,UAAU,EAAE,KAAK;YACjB,QAAQ,EAAE,IAAI;SACjB,CAAC,CAAC;QAEH,OAAO,MAAM,CAAC,GAAG,CAAC;IACtB,CAAC;CAEJ"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"IExtract.d.ts","sourceRoot":"","sources":["../../../src/isolated/extract/IExtract.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,OAAO,WAAW,QAAQ;IAC7B,KAAK,EAAE;QAAE,WAAW,MAAC;QAAC,QAAQ,MAAC;QAAC,IAAI,MAAA;KAAE,CAAC;IACvC,MAAM,EAAE,OAAO,CAAC;CACnB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"IExtract.js","sourceRoot":"","sources":["../../../src/isolated/extract/IExtract.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import FileInfo from "../FileInfo.js";
|
|
2
|
+
import IExtract from "./IExtract.js";
|
|
3
|
+
export declare class ExtractWorker {
|
|
4
|
+
static text({ input: file, useOcr }: IExtract): Promise<string>;
|
|
5
|
+
static ocr(file: FileInfo): Promise<string>;
|
|
6
|
+
}
|
|
7
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/isolated/extract/index.ts"],"names":[],"mappings":"AAGA,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AACtC,OAAO,QAAQ,MAAM,eAAe,CAAC;AAGrC,qBAAa,aAAa;WACT,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,QAAQ;WAgBtC,GAAG,CAAC,IAAI,EAAE,QAAQ;CAUlC"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
/* eslint-disable no-console */
|
|
2
|
+
import { readFile } from "fs/promises";
|
|
3
|
+
import tesseract from "tesseract.js";
|
|
4
|
+
const { recognize } = tesseract;
|
|
5
|
+
export class ExtractWorker {
|
|
6
|
+
static async text({ input: file, useOcr }) {
|
|
7
|
+
try {
|
|
8
|
+
if (/^image\//.test(file.contentType)) {
|
|
9
|
+
if (useOcr) {
|
|
10
|
+
return this.ocr(file);
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
return await readFile(file.path, "utf8");
|
|
14
|
+
}
|
|
15
|
+
catch (error) {
|
|
16
|
+
console.error(error);
|
|
17
|
+
}
|
|
18
|
+
return "";
|
|
19
|
+
}
|
|
20
|
+
static async ocr(file) {
|
|
21
|
+
try {
|
|
22
|
+
const buffer = await readFile(file.path);
|
|
23
|
+
const result = await recognize(buffer);
|
|
24
|
+
return result.data.text;
|
|
25
|
+
}
|
|
26
|
+
catch (error) {
|
|
27
|
+
console.error(error);
|
|
28
|
+
}
|
|
29
|
+
return "";
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
;
|
|
33
|
+
const [execPath, self, p] = process.argv;
|
|
34
|
+
ExtractWorker.text(JSON.parse(p))
|
|
35
|
+
.then((r) => console.log(r))
|
|
36
|
+
.catch(console.error);
|
|
37
|
+
// parentPort.on("message", async ({ file, useOcr }) => {
|
|
38
|
+
// try {
|
|
39
|
+
// const result = await ExtractWorker.text(file, useOcr);
|
|
40
|
+
// parentPort.postMessage({ result });
|
|
41
|
+
// process.exit(0);
|
|
42
|
+
// } catch (error) {
|
|
43
|
+
// try {
|
|
44
|
+
// parentPort.postMessage({ error: error.stack ?? error.toString() });
|
|
45
|
+
// } catch (er1) {
|
|
46
|
+
// // we will ignore this.. we need to close process successfully.
|
|
47
|
+
// }
|
|
48
|
+
// process.exit(0);
|
|
49
|
+
// }
|
|
50
|
+
// });
|
|
51
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/isolated/extract/index.ts"],"names":[],"mappings":"AAAA,+BAA+B;AAC/B,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,SAAS,MAAM,cAAc,CAAC;AAGrC,MAAM,EAAE,SAAS,EAAE,GAAG,SAAS,CAAC;AAEhC,MAAM,OAAO,aAAa;IACtB,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAY;QAC/C,IAAI,CAAC;YACD,IAAI,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC;gBACpC,IAAI,MAAM,EAAE,CAAC;oBACT,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;gBAC1B,CAAC;YACL,CAAC;YAED,OAAO,MAAM,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QAC7C,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACzB,CAAC;QACD,OAAO,EAAE,CAAC;IAEd,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,IAAc;QAC3B,IAAI,CAAC;YACD,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACzC,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,MAAM,CAAC,CAAC;YACvC,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;QAC5B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACzB,CAAC;QACD,OAAO,EAAE,CAAC;IACd,CAAC;CACJ;AAAA,CAAC;AAGF,MAAM,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;AAGzC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;KAC5B,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;KAC3B,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAG1B,yDAAyD;AACzD,YAAY;AACZ,iEAAiE;AACjE,8CAA8C;AAC9C,2BAA2B;AAC3B,wBAAwB;AACxB,gBAAgB;AAChB,kFAAkF;AAClF,0BAA0B;AAC1B,+EAA+E;AAC/E,YAAY;AACZ,2BAA2B;AAC3B,QAAQ;AACR,MAAM"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"IImageConverter.d.ts","sourceRoot":"","sources":["../../../src/isolated/image-converter/IImageConverter.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,OAAO,WAAW,eAAe;IACpC,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;KAAE,CAAC;IACzB,MAAM,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;KAAC,CAAC;IACzB,cAAc,EAAE,MAAM,CAAC;CAC1B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"IImageConverter.js","sourceRoot":"","sources":["../../../src/isolated/image-converter/IImageConverter.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"size.d.ts","sourceRoot":"","sources":["../../../../src/isolated/image-converter/formats/size.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,yBAA+B,IAAI,EAAE;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,EAAE,GAAI,IAAI,EAAE,GAAG,EAAE,GAAI,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAmC7F"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"size.js","sourceRoot":"","sources":["../../../../src/isolated/image-converter/formats/size.ts"],"names":[],"mappings":"AAAA,+BAA+B;AAC/B,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,MAAM,CAAC,OAAO,CAAC,KAAK,WAAW,IAAsB,EAAE,GAAI,IAAW;IAElE,MAAM,IAAI,GAAG;QACT,WAAW,EAAE,KAAK;KACd,CAAC;IAET,IAAI,CAAC;QAED,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC;QAExB,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACpB,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;YACf,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;QACpB,CAAC;aAAM,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC3B,uCAAuC;YACvC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC5B,CAAC;aAAM,CAAC;YACJ,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,GAAG,IAAI,CAAC;YAC7B,uCAAuC;YACvC,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC;YACrB,uCAAuC;YACvC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC;YACvB,IAAI,CAAC,GAAG,GAAG,OAAO,CAAC;QACvB,CAAC;QAED,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,KAAK,KAAK,CAAC,EAAE,CAAC;YACxC,OAAO,MAAO,KAAK,CAAC,KAAK,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,EAAC,CAAS,CAAC;QACrE,CAAC;QACD,OAAO,MAAO,KAAK,CAAC,KAAK,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,EAAC,CAAS;aAC/D,MAAM,CAAC,IAAI,CAAC,CAAC;IAClB,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACT,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC;QAC1B,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAChE,MAAM,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC;IACzB,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/isolated/image-converter/index.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import { parse } from "path";
|
|
2
|
+
async function transform({ type, input, output, outputFileName = "file.jpg" }) {
|
|
3
|
+
let { ext } = parse(outputFileName);
|
|
4
|
+
let fileName = type;
|
|
5
|
+
const matches = type.match(/(\w+)\(([^\)]+)\)/);
|
|
6
|
+
let args = [];
|
|
7
|
+
if (matches) {
|
|
8
|
+
fileName = matches[1];
|
|
9
|
+
args = matches[2].split(',').map((x) => parseFloat(x));
|
|
10
|
+
switch (fileName) {
|
|
11
|
+
case "jpg":
|
|
12
|
+
ext = ".jpg";
|
|
13
|
+
fileName = "size";
|
|
14
|
+
break;
|
|
15
|
+
case "png":
|
|
16
|
+
ext = ".png";
|
|
17
|
+
fileName = "size";
|
|
18
|
+
break;
|
|
19
|
+
case "gif":
|
|
20
|
+
ext = ".gif";
|
|
21
|
+
fileName = "size";
|
|
22
|
+
break;
|
|
23
|
+
case "webp":
|
|
24
|
+
ext = ".webp";
|
|
25
|
+
fileName = "size";
|
|
26
|
+
break;
|
|
27
|
+
case "ico":
|
|
28
|
+
ext = ".ico";
|
|
29
|
+
fileName = "size";
|
|
30
|
+
break;
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
const { default: fx } = await import("./formats/" + fileName + ".js");
|
|
34
|
+
let r = await fx(input, ...args);
|
|
35
|
+
switch (ext) {
|
|
36
|
+
case ".jpg":
|
|
37
|
+
r = r.jpeg({ quality: 95 });
|
|
38
|
+
break;
|
|
39
|
+
case ".png":
|
|
40
|
+
r = r.png({
|
|
41
|
+
compressionLevel: 9
|
|
42
|
+
});
|
|
43
|
+
break;
|
|
44
|
+
case ".webp":
|
|
45
|
+
r = r.webp({
|
|
46
|
+
nearLossless: true,
|
|
47
|
+
quality: 95
|
|
48
|
+
});
|
|
49
|
+
break;
|
|
50
|
+
case ".gif":
|
|
51
|
+
r = r.gif();
|
|
52
|
+
break;
|
|
53
|
+
}
|
|
54
|
+
await r.toFile(output.path);
|
|
55
|
+
}
|
|
56
|
+
const [execPath, self, p] = process.argv;
|
|
57
|
+
transform(JSON.parse(p))
|
|
58
|
+
.catch(console.error);
|
|
59
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/isolated/image-converter/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,MAAM,MAAM,CAAC;AAG7B,KAAK,UAAU,SAAS,CAAC,EACjB,IAAI,EACJ,KAAK,EACL,MAAM,EACN,cAAc,GAAG,UAAU,EACb;IAGlB,IAAI,EAAE,GAAG,EAAE,GAAG,KAAK,CAAC,cAAc,CAAC,CAAC;IACpC,IAAI,QAAQ,GAAG,IAAI,CAAC;IACpB,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC;IAChD,IAAI,IAAI,GAAG,EAAE,CAAC;IACd,IAAI,OAAO,EAAE,CAAC;QACV,QAAQ,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;QACtB,IAAI,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAE,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,CAAE,CAAC;QACzD,QAAO,QAAQ,EAAE,CAAC;YACd,KAAK,KAAK;gBACN,GAAG,GAAG,MAAM,CAAC;gBACb,QAAQ,GAAG,MAAM,CAAC;gBAClB,MAAM;YACV,KAAK,KAAK;gBACN,GAAG,GAAG,MAAM,CAAC;gBACb,QAAQ,GAAG,MAAM,CAAC;gBAClB,MAAM;YACV,KAAK,KAAK;gBACN,GAAG,GAAG,MAAM,CAAC;gBACb,QAAQ,GAAG,MAAM,CAAC;gBAClB,MAAM;YACV,KAAK,MAAM;gBACP,GAAG,GAAG,OAAO,CAAC;gBACd,QAAQ,GAAG,MAAM,CAAC;gBAClB,MAAM;YACV,KAAK,KAAK;gBACN,GAAG,GAAG,MAAM,CAAC;gBACb,QAAQ,GAAG,MAAM,CAAC;gBAClB,MAAM;QACd,CAAC;IACL,CAAC;IAED,MAAM,EAAE,OAAO,EAAE,EAAE,EAAE,GAAG,MAAM,MAAM,CAAC,YAAY,GAAG,QAAQ,GAAG,KAAK,CAAC,CAAC;IACtE,IAAI,CAAC,GAAgB,MAAM,EAAE,CAAC,KAAK,EAAE,GAAI,IAAI,CAAC,CAAC;IAE/C,QAAO,GAAG,EAAE,CAAC;QACT,KAAK,MAAM;YACP,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,EAAE,EAAC,CAAC,CAAC;YAC3B,MAAM;QACV,KAAK,MAAM;YACP,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC;gBACN,gBAAgB,EAAE,CAAC;aACtB,CAAC,CAAC;YACH,MAAM;QACV,KAAK,OAAO;YACR,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;gBACP,YAAY,EAAE,IAAI;gBAClB,OAAO,EAAE,EAAE;aACd,CAAC,CAAC;YACH,MAAM;QACV,KAAK,MAAM;YACP,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;YACZ,MAAM;IACd,CAAC;IAED,MAAM,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;AAChC,CAAC;AAED,MAAM,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;AAEzC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;KACnB,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FileConversionService.d.ts","sourceRoot":"","sources":["../../../../src/server/services/convert/FileConversionService.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,oDAAoD,CAAC;
|
|
1
|
+
{"version":3,"file":"FileConversionService.d.ts","sourceRoot":"","sources":["../../../../src/server/services/convert/FileConversionService.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,oDAAoD,CAAC;AAG/E,OAAO,OAAO,MAAM,iCAAiC,CAAC;AAWtD,UAAU,sBAAsB;IAC5B,OAAO,EAAE,OAAO,CAAC;IACjB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,GAAG,CAAC,EAAE,MAAM,CAAC;CAChB;AAGD,MAAM,CAAC,OAAO,OAAO,qBAAqB;IAGtC,OAAO,CAAC,eAAe,CAAkB;IAGzC,OAAO,CAAC,YAAY,CAAe;IAGnC,OAAO,CAAC,kBAAkB,CAAqB;IAEzC,qBAAqB,CAAC,EAAC,OAAO,EAAE,aAAa,EAAE,IAAI,EAAE,QAAQ,EAAE,GAA2E,EAAE,EAAE,sBAAsB;IAoCpK,mBAAmB,CAAC,OAAO,EAAE,OAAO,EAAE,aAAa,CAAC,EAAE,MAAM;IAe5D,GAAG,CAAC,IAAI,EAAE,SAAS;IAUnB,IAAI,CAAC,IAAI,EAAE,SAAS;IAiCpB,IAAI,CAAC,IAAI,EAAE,SAAS;IAWpB,WAAW,CAAC,IAAI,EAAE,SAAS;CAepC"}
|
|
@@ -57,7 +57,6 @@ var __disposeResources = (this && this.__disposeResources) || (function (Suppres
|
|
|
57
57
|
import Inject, { RegisterScoped, ServiceProvider } from "@entity-access/entity-access/dist/di/di.js";
|
|
58
58
|
import TempFileService from "../../storage/TempFileService.js";
|
|
59
59
|
import { Convert } from "./Convert.js";
|
|
60
|
-
import PdfDoc from "../extract/pdf/PdfDoc.js";
|
|
61
60
|
import FFCommand from "./FFCommand.js";
|
|
62
61
|
import TimeSpan from "@entity-access/entity-access/dist/types/TimeSpan.js";
|
|
63
62
|
import CacheService from "../cache/CacheService.js";
|
|
@@ -66,6 +65,7 @@ import SocialMailContext from "../../model/SocialMailContext.js";
|
|
|
66
65
|
import Page from "@entity-access/server-pages/dist/Page.js";
|
|
67
66
|
import StringFormat from "../../../common/StringFormat.js";
|
|
68
67
|
import RateLimiterService from "../rate-limiter/RateLimiterService.js";
|
|
68
|
+
import PdfDoc from "../extract/pdf/PdfDoc.js";
|
|
69
69
|
let FileConversionService = class FileConversionService {
|
|
70
70
|
async downloadConvertedFile({ appFile, fileContentID, type, fileName, key = `/file/${type}/${fileContentID ?? appFile.fileContentID}/${fileName}` }) {
|
|
71
71
|
let file;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FileConversionService.js","sourceRoot":"","sources":["../../../../src/server/services/convert/FileConversionService.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,MAAM,EAAE,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,4CAA4C,CAAC;AACrG,OAAO,eAAe,MAAM,kCAAkC,CAAC;AAE/D,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,
|
|
1
|
+
{"version":3,"file":"FileConversionService.js","sourceRoot":"","sources":["../../../../src/server/services/convert/FileConversionService.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Extract.d.ts","sourceRoot":"","sources":["../../../../src/server/services/extract/Extract.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,SAAS,EAAE,MAAM,oDAAoD,CAAC;
|
|
1
|
+
{"version":3,"file":"Extract.d.ts","sourceRoot":"","sources":["../../../../src/server/services/extract/Extract.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,SAAS,EAAE,MAAM,oDAAoD,CAAC;AAS/E,qBAAa,OAAO;WACH,IAAI,CAAC,GAAG,EAAE,SAAS,EAAE,MAAM,UAAQ;CAkCnD"}
|
|
@@ -45,17 +45,13 @@ var __disposeResources = (this && this.__disposeResources) || (function (Suppres
|
|
|
45
45
|
var e = new Error(message);
|
|
46
46
|
return e.name = "SuppressedError", e.error = error, e.suppressed = suppressed, e;
|
|
47
47
|
});
|
|
48
|
-
/* eslint-disable no-console */
|
|
49
|
-
import { Worker } from "worker_threads";
|
|
50
|
-
import { fileURLToPath } from "node:url";
|
|
51
|
-
import { dirname } from "node:path";
|
|
52
|
-
import FileInfo from "./FileInfo.js";
|
|
53
48
|
import TempFolder from "@entity-access/server-pages/dist/core/TempFolder.js";
|
|
54
49
|
import { FileType } from "../../../common/FileType.js";
|
|
55
|
-
import PdfDoc from "./pdf/PdfDoc.js";
|
|
56
50
|
import { readFile } from "fs/promises";
|
|
57
51
|
import { Convert } from "../convert/Convert.js";
|
|
58
52
|
import LockFile from "../../storage/LockFile.js";
|
|
53
|
+
import PdfDoc from "./pdf/PdfDoc.js";
|
|
54
|
+
import IsolatedProcess from "../../../isolated/IsolatedProcess.js";
|
|
59
55
|
export class Extract {
|
|
60
56
|
static async text(src, useOcr = false) {
|
|
61
57
|
const env_1 = { stack: [], error: void 0, hasError: false };
|
|
@@ -83,53 +79,7 @@ export class Extract {
|
|
|
83
79
|
return await output.readAsText();
|
|
84
80
|
}
|
|
85
81
|
const lock = __addDisposableResource(env_1, await LockFile.lock("extract-worker-lock"), false);
|
|
86
|
-
return await
|
|
87
|
-
let resolved = false;
|
|
88
|
-
console.log(`Extracting text from ${file.path}`);
|
|
89
|
-
const execArgv = ["--enable-source-maps"];
|
|
90
|
-
if (process.argv.includes("--trace-deprecation")) {
|
|
91
|
-
execArgv.push("--trace-deprecation");
|
|
92
|
-
}
|
|
93
|
-
const w = new Worker(dirname(fileURLToPath(import.meta.url)) + "/ExtractWorker.js", {
|
|
94
|
-
execArgv,
|
|
95
|
-
resourceLimits: {
|
|
96
|
-
maxOldGenerationSizeMb: 1024
|
|
97
|
-
}
|
|
98
|
-
});
|
|
99
|
-
w.on("message", ({ result, error }) => {
|
|
100
|
-
if (resolved) {
|
|
101
|
-
return;
|
|
102
|
-
}
|
|
103
|
-
if (result) {
|
|
104
|
-
resolved = true;
|
|
105
|
-
resolve(result);
|
|
106
|
-
return;
|
|
107
|
-
}
|
|
108
|
-
if (error) {
|
|
109
|
-
reject(error);
|
|
110
|
-
}
|
|
111
|
-
});
|
|
112
|
-
w.on("error", (error) => {
|
|
113
|
-
if (resolved) {
|
|
114
|
-
return;
|
|
115
|
-
}
|
|
116
|
-
console.error(error);
|
|
117
|
-
resolved = true;
|
|
118
|
-
// reject(error);
|
|
119
|
-
console.error(`Failed to extract text for ${src.fileName} ${error.stack ?? error}`);
|
|
120
|
-
resolve("");
|
|
121
|
-
});
|
|
122
|
-
w.on("exit", (n) => {
|
|
123
|
-
if (n > 0) {
|
|
124
|
-
if (resolved) {
|
|
125
|
-
return;
|
|
126
|
-
}
|
|
127
|
-
resolved = true;
|
|
128
|
-
reject(new Error(`Worker exited with ${n}`));
|
|
129
|
-
}
|
|
130
|
-
});
|
|
131
|
-
w.postMessage({ file: { ...FileInfo.from(file) }, useOcr });
|
|
132
|
-
});
|
|
82
|
+
return await IsolatedProcess.extractText({ input: { fileName: file.fileName, contentType: file.contentType, path: file.path }, useOcr });
|
|
133
83
|
}
|
|
134
84
|
catch (e_1) {
|
|
135
85
|
env_1.error = e_1;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Extract.js","sourceRoot":"","sources":["../../../../src/server/services/extract/Extract.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"Extract.js","sourceRoot":"","sources":["../../../../src/server/services/extract/Extract.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAMA,OAAO,UAAU,MAAM,qDAAqD,CAAC;AAC7E,OAAO,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AACvD,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAChD,OAAO,QAAQ,MAAM,2BAA2B,CAAC;AACjD,OAAO,MAAM,MAAM,iBAAiB,CAAC;AACrC,OAAO,eAAe,MAAM,sCAAsC,CAAC;AAEnE,MAAM,OAAO,OAAO;IAChB,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,GAAc,EAAE,MAAM,GAAG,KAAK;;;YAE5C,IAAI,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;gBACxB,wCAAwC;gBACxC,mCAAmC;gBAEnC,uCAAuC;gBACvC,0CAA0C;gBAC1C,aAAa;gBACb,OAAO,EAAE,CAAC;YACd,CAAC;YAED,MAAM,MAAM,kCAAG,IAAI,UAAU,EAAE,QAAA,CAAC;YAChC,MAAM,IAAI,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,WAAW,CAAC,CAAC;YACvD,MAAM,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YAEvB,IAAI,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;gBACvB,OAAO,MAAM,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YACtC,CAAC;YAED,IAAI,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;gBACxB,OAAO,MAAM,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;YAC9C,CAAC;YAED,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC1B,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,GAAG,MAAM,EAAE,YAAY,CAAC,CAAC;gBAChE,MAAM,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;gBACjD,OAAO,MAAM,MAAM,CAAC,UAAU,EAAE,CAAC;YACrC,CAAC;YAED,MAAM,IAAI,kCAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,qBAAqB,CAAC,QAAA,CAAC;YAExD,OAAO,MAAM,eAAe,CAAC,WAAW,CAAC,EAAE,KAAK,EAAE,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;;;;;;;;;KAC5I;CACJ;AAAA,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ImageConverterService.d.ts","sourceRoot":"","sources":["../../../../src/server/services/image-converter/ImageConverterService.ts"],"names":[],"mappings":"AACA,OAAO,eAAe,MAAM,kCAAkC,CAAC;
|
|
1
|
+
{"version":3,"file":"ImageConverterService.d.ts","sourceRoot":"","sources":["../../../../src/server/services/image-converter/ImageConverterService.ts"],"names":[],"mappings":"AACA,OAAO,eAAe,MAAM,kCAAkC,CAAC;AAE/D,OAAO,EAAE,SAAS,EAAE,MAAM,oDAAoD,CAAC;AAU/E,MAAM,CAAC,OAAO,OAAO,qBAAqB;IAGtC,eAAe,EAAE,eAAe,CAAC;IAE3B,QAAQ,CAAC,IAAI,EAAE,SAAS,EAAE,UAAU,CAAC,KAAA,EAAE,KAAK,UAAO;IAyEnD,SAAS,CAAC,IAAI,KAAA,EAAE,IAAI,EAAE,SAAS,EAAE,cAAc,SAAa;CAmDrE"}
|
|
@@ -63,6 +63,7 @@ import { spawnPromise } from "../../../common/spawnPromise.js";
|
|
|
63
63
|
import { copyFile, readdir } from "fs/promises";
|
|
64
64
|
import FFCommand from "../convert/FFCommand.js";
|
|
65
65
|
import { ImagesFolder } from "../../../common/ImagesFolder.js";
|
|
66
|
+
import IsolatedProcess from "../../../isolated/IsolatedProcess.js";
|
|
66
67
|
let ImageConverterService = class ImageConverterService {
|
|
67
68
|
async getImage(file, pageNumber, retry = true) {
|
|
68
69
|
const env_1 = { stack: [], error: void 0, hasError: false };
|
|
@@ -176,29 +177,13 @@ let ImageConverterService = class ImageConverterService {
|
|
|
176
177
|
if (file.isEmpty) {
|
|
177
178
|
file = ImagesFolder.localFile("png", "unavailable.png");
|
|
178
179
|
}
|
|
179
|
-
const { default: fx } = await import("./formats/" + fileName + ".js");
|
|
180
|
-
let r = await fx(file, ...args);
|
|
181
|
-
switch (ext) {
|
|
182
|
-
case ".jpg":
|
|
183
|
-
r = r.jpeg({ quality: 95 });
|
|
184
|
-
break;
|
|
185
|
-
case ".png":
|
|
186
|
-
r = r.png({
|
|
187
|
-
compressionLevel: 9
|
|
188
|
-
});
|
|
189
|
-
break;
|
|
190
|
-
case ".webp":
|
|
191
|
-
r = r.webp({
|
|
192
|
-
nearLossless: true,
|
|
193
|
-
quality: 95
|
|
194
|
-
});
|
|
195
|
-
break;
|
|
196
|
-
case ".gif":
|
|
197
|
-
r = r.gif();
|
|
198
|
-
break;
|
|
199
|
-
}
|
|
200
180
|
const tf = await this.tempFileService.createTempFile(ext, outputFileName);
|
|
201
|
-
await
|
|
181
|
+
await IsolatedProcess.convertImage({
|
|
182
|
+
type,
|
|
183
|
+
input: { path: file.path },
|
|
184
|
+
output: { path: tf.path },
|
|
185
|
+
outputFileName
|
|
186
|
+
});
|
|
202
187
|
return tf;
|
|
203
188
|
}
|
|
204
189
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ImageConverterService.js","sourceRoot":"","sources":["../../../../src/server/services/image-converter/ImageConverterService.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,MAAM,EAAE,EAAE,cAAc,EAAE,MAAM,4CAA4C,CAAC;AACpF,OAAO,eAAe,MAAM,kCAAkC,CAAC;
|
|
1
|
+
{"version":3,"file":"ImageConverterService.js","sourceRoot":"","sources":["../../../../src/server/services/image-converter/ImageConverterService.ts"],"names":[],"mappings":"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"}
|