ganze project

This commit is contained in:
ANDJ committed 2025-12-15 19:52:56 +01:00
commit bc9b07ca4e
521 files changed
+361138

No files matched your search

+19
View File
@@ -0,0 +1,19 @@
import { Canvas } from '@napi-rs/canvas';
import { SKRSContext2D } from '@napi-rs/canvas';
declare interface CanvasAndContext {
canvas: Canvas | null;
context: SKRSContext2D | null;
}
export declare class CanvasFactory {
create(width: number, height: number): CanvasAndContext;
reset(canvasAndContext: CanvasAndContext, width: number, height: number): void;
destroy(canvasAndContext: CanvasAndContext): void;
}
export declare function getData(): string;
export declare function getPath(): string;
export { }
+68
View File
@@ -0,0 +1,68 @@
// src/worker/index.ts
import path from "node:path";
import { fileURLToPath } from "node:url";
// dataurl:/home/runner/work/pdf-parse/pdf-parse/node_modules/pdfjs-dist/legacy/build/pdf.worker.min.mjs
var pdf_worker_min_default = "data:text/javascript;base64,LyoqCiAqIEBsaWNzdGFydCBUaGUgZm9sbG93aW5nIGlzIHRoZSBlbnRpcmUgbGljZW5zZSBub3RpY2UgZm9yIHRoZQogKiBKYXZhU2NyaXB0IGNvZGUgaW4gdGhpcyBwYWdlCiAqCiAqIENvcHlyaWdodCAyMDI0IE1vemlsbGEgRm91bmRhdGlvbgogKgogKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgogKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKICoKICogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAogKgogKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgogKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgogKgogKiBAbGljZW5kIFRoZSBhYm92ZSBpcyB0aGUgZW50aXJlIGxpY2Vuc2Ugbm90aWNlIGZvciB0aGUKICogSmF2YVNjcmlwdCBjb2RlIGluIHRoaXMgcGFnZQogKi8KLyoqCiAqIHBkZmpzVmVyc2lvbiA9IDUuNC4yOTYKICogcGRmanNCdWlsZCA9IGY1NmRjODYwMQogKi92YXIgZT17MzQ6KGUsdCxyKT0+e3ZhciBhPXIoNDkwMSk7ZS5leHBvcnRzPWZ1bmN0aW9uKGUpe3JldHVybiJvYmplY3QiPT10eXBlb2YgZT9udWxsIT09ZTphKGUpfX0sODE6KGUsdCxyKT0+e3ZhciBhPXIoOTU2NSksbj1yKDkzMDYpLGk9cig4NTUxKSxzPXIoNjgyMyksbz1yKDg1MSksYz1UeXBlRXJyb3I7ZS5leHBvcnRzPWZ1bmN0aW9uKGUsdCl7dmFyIHI9YXJndW1lbnRzLmxlbmd0aDwyP28oZSk6dDtpZihuKHIpKXJldHVybiBpKGEocixlKSk7dGhyb3cgbmV3IGMocyhlKSsiIGlzIG5vdCBpdGVyYWJsZSIpfX0sMTE2OihlLHQscik9Pnt2YXIgYT1yKDY1MTgpLG49cig5NTY1KSxpPXIoMjY1Mikscz1yKDkzMDYpLG89cig4NTUxKSxjPXIoMTc2NyksbD1yKDk1MzkpLGg9cig0NTQ5KSgiZmluZCIsVHlwZUVycm9yKTthKHt0YXJnZXQ6Ikl0ZXJhdG9yIixwcm90bzohMCxyZWFsOiEwLGZvcmNlZDpofSx7ZmluZDpmdW5jdGlvbiBmaW5kKGUpe28odGhpcyk7dHJ5e3MoZSl9Y2F0Y2goZSl7bCh0aGlzLCJ0aHJvdyIsZSl9aWYoaClyZXR1cm4gbihoLHRoaXMsZSk7dmFyIHQ9Yyh0aGlzKSxyPTA7cmV0dXJuIGkodCxmdW5jdGlvbih0LGEpe2lmKGUodCxyKyspKXJldHVybiBhKHQpfSx7SVNfUkVDT1JEOiEwLElOVEVSUlVQVEVEOiEwfSkucmVzdWx0fX0pfSwyODM6KGUsdCxyKT0+e3ZhciBhPXIoOTUwNCksbj1yKDkwMzkpLGk9cig0OTAxKSxzPXIoOTI5Nyksbz1yKDM3MjQpLGM9cigzNTApLkNPTkZJR1VSQUJMRSxsPXIoMzcwNiksaD1yKDExODEpLHU9aC5lbmZvcmNlLGQ9aC5nZXQsZj1TdHJpbmcsZz1PYmplY3QuZGVmaW5lUHJvcGVydHkscD1hKCIiLnNsaWNlKSxtPWEoIiIucmVwbGFjZSksYj1hKFtdLmpvaW4pLHk9byYmIW4oZnVuY3Rpb24oKXtyZXR1cm4gOCE9PWcoZnVuY3Rpb24oKXt9LCJsZW5ndGgiLHt2YWx1ZTo4fSkubGVuZ3RofSksdz1TdHJpbmcoU3RyaW5nKS5zcGxpdCgiU3RyaW5nIikseD1lLmV4cG9ydHM9ZnVuY3Rpb24oZSx0LHIpeyJTeW1ib2woIj09PXAoZih0KSwwLDcpJiYodD0iWyIrbShmKHQpLC9eU3ltYm9sXCgoW14pXSopXCkuKiQvLCIkMSIpKyJdIik7ciYmci5nZXR0ZXImJih0PSJnZXQgIit0KTtyJiZyLnNldHRlciYmKHQ9InNldCAiK3QpOyghcyhlLCJuYW1lIil8fGMmJmUubmFtZSE9PXQpJiYobz9nKGUsIm5hbWUiLHt2YWx1ZTp0LGNvbmZpZ3VyYWJsZTohMH0pOmUubmFtZT10KTt5JiZyJiZzKHIsImFyaXR5IikmJmUubGVuZ3RoIT09ci5hcml0eSYmZyhlLCJsZW5ndGgiLHt2YWx1ZTpyLmFyaXR5fSk7dHJ5e3ImJnMociwiY29uc3RydWN0b3IiKSYmci5jb25zdHJ1Y3Rvcj9vJiZnKGUsInByb3RvdHlwZSIse3dyaXRhYmxlOiExfSk6ZS5wcm90b3R5cGUmJihlLnByb3RvdHlwZT12b2lkIDApfWNhdGNoKGUpe312YXIgYT11KGUpO3MoYSwic291cmNlIil8fChhLnNvdXJjZT1iKHcsInN0cmluZyI9PXR5cGVvZiB0P3Q6IiIpKTtyZXR1cm4gZX07RnVuY3Rpb24ucHJvdG90eXBlLnRvU3RyaW5nPXgoZnVuY3Rpb24gdG9TdHJpbmcoKXtyZXR1cm4gaSh0aGlzKSYmZCh0aGlzKS5zb3VyY2V8fGwodGhpcyl9LCJ0b1N0cmluZyIpfSwzNTA6KGUsdCxyKT0+e3ZhciBhPXIoMzcyNCksbj1yKDkyOTcpLGk9RnVuY3Rpb24ucHJvdG90eXBlLHM9YSYmT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcixvPW4oaSwibmFtZSIpLGM9byYmInNvbWV0aGluZyI9PT1mdW5jdGlvbiBzb21ldGhpbmcoKXt9Lm5hbWUsbD1vJiYoIWF8fGEmJnMoaSwibmFtZSIpLmNvbmZpZ3VyYWJsZSk7ZS5leHBvcnRzPXtFWElTVFM6byxQUk9QRVI6YyxDT05GSUdVUkFCTEU6bH19LDM5NzooZSx0LHIpPT57dmFyIGE9cig3NzUxKTtlLmV4cG9ydHM9YSgiZG9jdW1lbnQiLCJkb2N1bWVudEVsZW1lbnQiKX0sNDIxOmU9PntlLmV4cG9ydHM9e319LDQ1NjooZSx0LHIpPT57dmFyIGE9cig2NTE4KSxuPXIoNDU3NiksaT1yKDk1MDQpLHM9cig0MTU0KSxvPXIoNTE2OSksYz1pKDEuMS50b1N0cmluZyksbD1uLlVpbnQ4QXJyYXksaD0hbHx8IWwucHJvdG90eXBlLnRvSGV4fHwhZnVuY3Rpb24oKXt0cnl7cmV0dXJuImZmZmZmZmZmZmZmZmZmZmYiPT09bmV3IGwoWzI1NSwyNTUsMjU1LDI1NSwyNTUsMjU1LDI1NSwyNTVdKS50b0hleCgpfWNhdGNoKGUpe3JldHVybiExfX0oKTtsJiZhKHt0YXJnZXQ6IlVpbnQ4QXJyYXkiLHByb3RvOiEwLGZvcmNlZDpofSx7dG9IZXg6ZnVuY3Rpb24gdG9IZXgoKXtzKHRoaXMpO28odGhpcy5idWZmZXIpO2Zvcih2YXIgZT0iIix0PTAscj10aGlzLmxlbmd0aDt0PHI7dCsrKXt2YXIgYT1jKHRoaXNbdF0sMTYpO2UrPTE9PT1hLmxlbmd0aD8iMCIrYTphfXJldHVybiBlfX0pfSw1MDc6KGUsdCxyKT0+e3ZhciBhPXIoOTU2NSk7ZS5leHBvcnRzPWZ1bmN0aW9uKGUsdCxyKXtmb3IodmFyIG4saSxzPXI/ZTplLml0ZXJhdG9yLG89ZS5uZXh0OyEobj1hKG8scykpLmRvbmU7KWlmKHZvaWQgMCE9PShpPXQobi52YWx1ZSkpKXJldHVybiBpfX0sNTMxOihlLHQscik9Pnt2YXIgYT1yKDY1MTgpLG49cig5NTY1KSxpPXIoOTMwNikscz1yKDg1NTEpLG89cigxNzY3KSxjPXIoODY0NiksbD1yKDk0NjIpLGg9cig5NTM5KSx1PXIoNjM5NSksZD1yKDY4NCksZj1yKDQ1NDkpLGc9IXUmJiFkKCJmbGF0TWFwIixmdW5jdGlvbigpe30pLHA9IXUmJiFnJiZmKCJmbGF0TWFwIixUeXBlRXJyb3IpLG09dXx8Z3x8cCxiPWwoZnVuY3Rpb24oKXtmb3IodmFyIGUsdCxyPXRoaXMuaXRlcmF0b3IsYT10aGlzLm1hcHBlcjs7KXtpZih0PXRoaXMuaW5uZXIpdHJ5e2lmKCEoZT1zKG4odC5uZXh0LHQuaXRlcmF0b3IpKSkuZG9uZSlyZXR1cm4gZS52YWx1ZTt0aGlzLmlubmVyPW51bGx9Y2F0Y2goZSl7aLine truncated
// src/worker/canvas.ts
import { Canvas, createCanvas, DOMMatrix, ImageData, Path2D } from "@napi-rs/canvas";
global.DOMMatrix = DOMMatrix;
global.Path2D = Path2D;
global.ImageData = ImageData;
var CanvasFactory = class {
create(width, height) {
if (width <= 0 || height <= 0) {
throw new Error("Invalid canvas size");
}
const canvas = createCanvas(width, height);
const context = canvas.getContext("2d");
return { canvas, context };
}
reset(canvasAndContext, width, height) {
if (!canvasAndContext.canvas) {
throw new Error("Canvas is not specified");
}
if (width <= 0 || height <= 0) {
throw new Error("Invalid canvas size");
}
canvasAndContext.canvas.width = width;
canvasAndContext.canvas.height = height;
}
destroy(canvasAndContext) {
if (!canvasAndContext.canvas) {
throw new Error("Canvas is not specified");
}
canvasAndContext.canvas.width = 0;
canvasAndContext.canvas.height = 0;
canvasAndContext.canvas = null;
canvasAndContext.context = null;
}
};
// src/worker/index.ts
var runtimeDirname;
if (typeof __dirname !== "undefined") {
runtimeDirname = __dirname;
} else {
const __filename = fileURLToPath(import.meta.url);
runtimeDirname = path.dirname(__filename);
}
(async () => {
try {
await import("pdfjs-dist/legacy/build/pdf.worker.mjs");
} catch (err) {
console.error("pdf.worker load error!..\n", err);
}
})();
function getData() {
return pdf_worker_min_default;
}
function getPath() {
return path.resolve(runtimeDirname, "../pdf.worker.mjs");
}
export {
CanvasFactory,
getData,
getPath
};