ksrw-core 0.0.0-stage → 0.1.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/lib/dist-DBO2IPOW.js +378 -0
- package/lib/dist-DBO2IPOW.js.map +7 -0
- package/lib/index.js +6954 -0
- package/lib/index.js.map +7 -0
- package/lib/pdfjs-XFJDZOCS.js +39511 -0
- package/lib/pdfjs-XFJDZOCS.js.map +7 -0
- package/package.json +37 -3
- package/public/auth.css +80 -0
- package/public/auth.html +77 -0
- package/public/auth.js +156 -0
- package/public/reference-academic.docx +0 -0
- package/public/seal.svg +6 -0
- package/public/templates/academic-cn.docx +0 -0
- package/public/templates/acm.docx +0 -0
- package/public/templates/elsevier.docx +0 -0
- package/public/templates/ieee.docx +0 -0
- package/public/templates/index.json +387 -0
- package/public/templates/lncs.docx +0 -0
- package/public/templates/neurips.docx +0 -0
- package/README.md +0 -3
|
@@ -0,0 +1,378 @@
|
|
|
1
|
+
// node_modules/.pnpm/unpdf@1.8.1_@napi-rs+canvas@1.0.13/node_modules/unpdf/dist/index.mjs
|
|
2
|
+
function polyfillDOMMatrix() {
|
|
3
|
+
if (typeof globalThis.DOMMatrix !== "undefined") return;
|
|
4
|
+
globalThis.DOMMatrix = class DOMMatrix {
|
|
5
|
+
constructor(init) {
|
|
6
|
+
if (Array.isArray(init) && init.length === 6) {
|
|
7
|
+
this.a = init[0];
|
|
8
|
+
this.b = init[1];
|
|
9
|
+
this.c = init[2];
|
|
10
|
+
this.d = init[3];
|
|
11
|
+
this.e = init[4];
|
|
12
|
+
this.f = init[5];
|
|
13
|
+
} else {
|
|
14
|
+
this.a = 1;
|
|
15
|
+
this.b = 0;
|
|
16
|
+
this.c = 0;
|
|
17
|
+
this.d = 1;
|
|
18
|
+
this.e = 0;
|
|
19
|
+
this.f = 0;
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
translateSelf(tx, ty = 0) {
|
|
23
|
+
this.e = this.a * tx + this.c * ty + this.e;
|
|
24
|
+
this.f = this.b * tx + this.d * ty + this.f;
|
|
25
|
+
return this;
|
|
26
|
+
}
|
|
27
|
+
scaleSelf(sx, sy = sx) {
|
|
28
|
+
this.a *= sx;
|
|
29
|
+
this.b *= sx;
|
|
30
|
+
this.c *= sy;
|
|
31
|
+
this.d *= sy;
|
|
32
|
+
return this;
|
|
33
|
+
}
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
function stubBrowserGlobals() {
|
|
37
|
+
polyfillDOMMatrix();
|
|
38
|
+
}
|
|
39
|
+
var resolvedModule;
|
|
40
|
+
var isNode = globalThis.process?.release?.name === "node";
|
|
41
|
+
var isBrowser = typeof window !== "undefined";
|
|
42
|
+
async function getDocumentProxy(data, options = {}) {
|
|
43
|
+
const { getDocument } = await getResolvedPDFJS();
|
|
44
|
+
let nodeDefaults = {};
|
|
45
|
+
if (isNode) try {
|
|
46
|
+
const base = import.meta.resolve("pdfjs-dist/package.json");
|
|
47
|
+
nodeDefaults = {
|
|
48
|
+
disableFontFace: true,
|
|
49
|
+
standardFontDataUrl: new URL("./standard_fonts/", base).href,
|
|
50
|
+
cMapUrl: new URL("./cmaps/", base).href,
|
|
51
|
+
cMapPacked: true
|
|
52
|
+
};
|
|
53
|
+
} catch {
|
|
54
|
+
}
|
|
55
|
+
return await getDocument({
|
|
56
|
+
data,
|
|
57
|
+
useSystemFonts: true,
|
|
58
|
+
...nodeDefaults,
|
|
59
|
+
...options
|
|
60
|
+
}).promise;
|
|
61
|
+
}
|
|
62
|
+
async function withDocument(data, operation, options) {
|
|
63
|
+
const pdf = isPDFDocumentProxy(data) ? data : await getDocumentProxy(data, options);
|
|
64
|
+
try {
|
|
65
|
+
return await operation(pdf);
|
|
66
|
+
} finally {
|
|
67
|
+
if (pdf !== data) await pdf.loadingTask.destroy();
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
async function getResolvedPDFJS() {
|
|
71
|
+
if (!resolvedModule) await resolvePDFJSImport();
|
|
72
|
+
return resolvedModule;
|
|
73
|
+
}
|
|
74
|
+
async function resolvePDFJSImport(pdfjsResolver, { reload = false } = {}) {
|
|
75
|
+
if (resolvedModule && !reload) return;
|
|
76
|
+
stubBrowserGlobals();
|
|
77
|
+
if (pdfjsResolver) try {
|
|
78
|
+
resolvedModule = await interopDefault(pdfjsResolver());
|
|
79
|
+
return;
|
|
80
|
+
} catch (error) {
|
|
81
|
+
throw new Error(`PDF.js could not be resolved: ${error}`);
|
|
82
|
+
}
|
|
83
|
+
try {
|
|
84
|
+
resolvedModule = await import("./pdfjs-XFJDZOCS.js");
|
|
85
|
+
} catch (error) {
|
|
86
|
+
throw new Error(`Serverless PDF.js bundle could not be resolved: ${error}`);
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
function isPDFDocumentProxy(data) {
|
|
90
|
+
return typeof data === "object" && data !== null && "_pdfInfo" in data;
|
|
91
|
+
}
|
|
92
|
+
async function interopDefault(m) {
|
|
93
|
+
const resolved = await m;
|
|
94
|
+
return resolved.default || resolved;
|
|
95
|
+
}
|
|
96
|
+
var resolvedCanvasModule;
|
|
97
|
+
var BaseCanvasFactory = class {
|
|
98
|
+
#enableHWA = false;
|
|
99
|
+
constructor({ enableHWA = false } = {}) {
|
|
100
|
+
this.#enableHWA = enableHWA;
|
|
101
|
+
}
|
|
102
|
+
create(width, height) {
|
|
103
|
+
const canvas = this._createCanvas(width, height);
|
|
104
|
+
return {
|
|
105
|
+
canvas,
|
|
106
|
+
context: canvas.getContext("2d", { willReadFrequently: !this.#enableHWA })
|
|
107
|
+
};
|
|
108
|
+
}
|
|
109
|
+
reset({ canvas }, width, height) {
|
|
110
|
+
if (!canvas) throw new Error("Canvas is not specified");
|
|
111
|
+
canvas.width = width;
|
|
112
|
+
canvas.height = height;
|
|
113
|
+
}
|
|
114
|
+
destroy(context) {
|
|
115
|
+
if (!context.canvas) throw new Error("Canvas is not specified");
|
|
116
|
+
context.canvas.width = 0;
|
|
117
|
+
context.canvas.height = 0;
|
|
118
|
+
context.canvas = void 0;
|
|
119
|
+
context.context = void 0;
|
|
120
|
+
}
|
|
121
|
+
_createCanvas(width, height) {
|
|
122
|
+
throw new Error("Not implemented");
|
|
123
|
+
}
|
|
124
|
+
};
|
|
125
|
+
var DOMCanvasFactory = class extends BaseCanvasFactory {
|
|
126
|
+
constructor({ ownerDocument = globalThis.document, enableHWA = false } = {}) {
|
|
127
|
+
super({ enableHWA });
|
|
128
|
+
this._document = ownerDocument;
|
|
129
|
+
}
|
|
130
|
+
_createCanvas(width, height) {
|
|
131
|
+
const canvas = this._document.createElement("canvas");
|
|
132
|
+
canvas.width = width;
|
|
133
|
+
canvas.height = height;
|
|
134
|
+
return canvas;
|
|
135
|
+
}
|
|
136
|
+
};
|
|
137
|
+
var NodeCanvasFactory = class extends BaseCanvasFactory {
|
|
138
|
+
constructor({ enableHWA = false } = {}) {
|
|
139
|
+
super({ enableHWA });
|
|
140
|
+
}
|
|
141
|
+
_createCanvas(width, height) {
|
|
142
|
+
if (!resolvedCanvasModule) throw new Error("@napi-rs/canvas module is not resolved");
|
|
143
|
+
return resolvedCanvasModule.createCanvas(width, height);
|
|
144
|
+
}
|
|
145
|
+
};
|
|
146
|
+
async function resolveCanvasModule(canvasImport) {
|
|
147
|
+
resolvedCanvasModule ??= await interopDefault(canvasImport());
|
|
148
|
+
globalThis[/* @__PURE__ */ Symbol.for("unpdf.canvasModule")] = resolvedCanvasModule;
|
|
149
|
+
}
|
|
150
|
+
function injectCanvasConstructors() {
|
|
151
|
+
if (!resolvedCanvasModule) return;
|
|
152
|
+
globalThis.DOMMatrix = resolvedCanvasModule.DOMMatrix;
|
|
153
|
+
if (typeof globalThis.ImageData === "undefined") globalThis.ImageData = resolvedCanvasModule.ImageData;
|
|
154
|
+
if (typeof globalThis.Path2D === "undefined") globalThis.Path2D = resolvedCanvasModule.Path2D;
|
|
155
|
+
}
|
|
156
|
+
async function extractImages$1(data, pageNumber) {
|
|
157
|
+
return await withDocument(data, async (pdf) => {
|
|
158
|
+
if (pageNumber < 1 || pageNumber > pdf.numPages) throw new Error(`Invalid page number. Must be between 1 and ${pdf.numPages}.`);
|
|
159
|
+
const page = await pdf.getPage(pageNumber);
|
|
160
|
+
const operatorList = await page.getOperatorList();
|
|
161
|
+
const { OPS } = await getResolvedPDFJS();
|
|
162
|
+
const images = [];
|
|
163
|
+
for (let i = 0; i < operatorList.fnArray.length; i++) {
|
|
164
|
+
if (operatorList.fnArray[i] !== OPS.paintImageXObject) continue;
|
|
165
|
+
const imageKey = operatorList.argsArray[i][0];
|
|
166
|
+
const image = await new Promise((resolve) => (imageKey.startsWith("g_") ? page.commonObjs : page.objs).get(imageKey, resolve));
|
|
167
|
+
if (!image || !image.data || !image.width || !image.height) continue;
|
|
168
|
+
const { width, height, data: data2 } = image;
|
|
169
|
+
const calculatedChannels = data2.length / (width * height);
|
|
170
|
+
if (![
|
|
171
|
+
1,
|
|
172
|
+
3,
|
|
173
|
+
4
|
|
174
|
+
].includes(calculatedChannels)) continue;
|
|
175
|
+
const channels = calculatedChannels;
|
|
176
|
+
images.push({
|
|
177
|
+
data: data2,
|
|
178
|
+
width,
|
|
179
|
+
height,
|
|
180
|
+
channels,
|
|
181
|
+
key: imageKey
|
|
182
|
+
});
|
|
183
|
+
}
|
|
184
|
+
return images;
|
|
185
|
+
});
|
|
186
|
+
}
|
|
187
|
+
async function renderPageAsImage$1(data, pageNumber, options = {}) {
|
|
188
|
+
const CanvasFactory = await createIsomorphicCanvasFactory(options.canvasImport);
|
|
189
|
+
return await withDocument(data, async (pdf) => {
|
|
190
|
+
if (pageNumber < 1 || pageNumber > pdf.numPages) throw new Error(`Invalid page number. Must be between 1 and ${pdf.numPages}.`);
|
|
191
|
+
const page = await pdf.getPage(pageNumber);
|
|
192
|
+
const defaultViewport = page.getViewport({ scale: 1 });
|
|
193
|
+
let scale = options.scale || 1;
|
|
194
|
+
if (options.width) scale = options.width / defaultViewport.width;
|
|
195
|
+
else if (options.height) scale = options.height / defaultViewport.height;
|
|
196
|
+
const viewport = page.getViewport({ scale: Math.max(0, scale) });
|
|
197
|
+
const canvasFactory = new CanvasFactory();
|
|
198
|
+
const drawingContext = canvasFactory.create(viewport.width, viewport.height);
|
|
199
|
+
try {
|
|
200
|
+
await page.render({
|
|
201
|
+
canvas: drawingContext.canvas,
|
|
202
|
+
canvasContext: drawingContext.context,
|
|
203
|
+
viewport
|
|
204
|
+
}).promise;
|
|
205
|
+
const { canvas } = drawingContext;
|
|
206
|
+
if (options.toDataURL) return canvas.toDataURL();
|
|
207
|
+
if ("encode" in canvas) {
|
|
208
|
+
const buffer = await canvas.encode("png");
|
|
209
|
+
return buffer.buffer.slice(buffer.byteOffset, buffer.byteOffset + buffer.byteLength);
|
|
210
|
+
}
|
|
211
|
+
const blob = await new Promise((resolve) => {
|
|
212
|
+
canvas.toBlob(resolve);
|
|
213
|
+
});
|
|
214
|
+
if (!blob) throw new Error("Failed to encode canvas to a PNG blob.");
|
|
215
|
+
return await blob.arrayBuffer();
|
|
216
|
+
} finally {
|
|
217
|
+
canvasFactory.destroy(drawingContext);
|
|
218
|
+
}
|
|
219
|
+
}, { CanvasFactory });
|
|
220
|
+
}
|
|
221
|
+
async function createIsomorphicCanvasFactory(canvasImport) {
|
|
222
|
+
if (isBrowser) return DOMCanvasFactory;
|
|
223
|
+
if (isNode) {
|
|
224
|
+
if (!canvasImport) throw new Error('Parameter "canvasImport" is required in Node.js environment.');
|
|
225
|
+
await resolveCanvasModule(canvasImport);
|
|
226
|
+
injectCanvasConstructors();
|
|
227
|
+
return NodeCanvasFactory;
|
|
228
|
+
}
|
|
229
|
+
throw new Error("Unsupported environment for canvas creation.");
|
|
230
|
+
}
|
|
231
|
+
async function extractLinks$1(data) {
|
|
232
|
+
return await withDocument(data, async (pdf) => {
|
|
233
|
+
const pageLinks = await Promise.all(Array.from({ length: pdf.numPages }, (_, i) => getPageLinks(pdf, i + 1)));
|
|
234
|
+
return {
|
|
235
|
+
totalPages: pdf.numPages,
|
|
236
|
+
links: pageLinks.flat()
|
|
237
|
+
};
|
|
238
|
+
});
|
|
239
|
+
}
|
|
240
|
+
async function getPageLinks(document, pageNumber) {
|
|
241
|
+
const annotations = await (await document.getPage(pageNumber)).getAnnotations();
|
|
242
|
+
const links = [];
|
|
243
|
+
for (const annotation of annotations) if (annotation.subtype === "Link" && annotation.url) links.push(annotation.url);
|
|
244
|
+
return links;
|
|
245
|
+
}
|
|
246
|
+
var XMP_DATE_PROPERTIES = [
|
|
247
|
+
"xmp:createdate",
|
|
248
|
+
"xmp:modifydate",
|
|
249
|
+
"xmp:metadatadate",
|
|
250
|
+
"xap:createdate",
|
|
251
|
+
"xap:modifydate",
|
|
252
|
+
"xap:metadatadate"
|
|
253
|
+
];
|
|
254
|
+
async function getMeta$1(data, options = {}) {
|
|
255
|
+
return await withDocument(data, async (pdf) => {
|
|
256
|
+
const meta = await pdf.getMetadata();
|
|
257
|
+
const info = meta?.info || {};
|
|
258
|
+
if (options.parseDates) {
|
|
259
|
+
const { PDFDateString } = await getResolvedPDFJS();
|
|
260
|
+
if (info?.CreationDate) info.CreationDate = PDFDateString.toDateObject(info?.CreationDate);
|
|
261
|
+
if (info?.ModDate) info.ModDate = PDFDateString.toDateObject(info?.ModDate);
|
|
262
|
+
if (meta.metadata) meta.metadata = new Proxy(meta.metadata, { get(target, prop) {
|
|
263
|
+
if (prop === "get") return (name) => {
|
|
264
|
+
const value = target.get(name);
|
|
265
|
+
if (XMP_DATE_PROPERTIES.includes(name) && value) return parseISODateString(value);
|
|
266
|
+
return value;
|
|
267
|
+
};
|
|
268
|
+
return target[prop];
|
|
269
|
+
} });
|
|
270
|
+
}
|
|
271
|
+
return {
|
|
272
|
+
info,
|
|
273
|
+
metadata: meta?.metadata || {}
|
|
274
|
+
};
|
|
275
|
+
});
|
|
276
|
+
}
|
|
277
|
+
function parseISODateString(isoDateString) {
|
|
278
|
+
if (!isoDateString) return;
|
|
279
|
+
const parsedDate = Date.parse(isoDateString);
|
|
280
|
+
if (!Number.isNaN(parsedDate)) return new Date(parsedDate);
|
|
281
|
+
}
|
|
282
|
+
async function extractTextItems$1(data) {
|
|
283
|
+
return await withDocument(data, async (pdf) => {
|
|
284
|
+
const items = await Promise.all(Array.from({ length: pdf.numPages }, (_, i) => getPageTextItems(pdf, i + 1)));
|
|
285
|
+
return {
|
|
286
|
+
totalPages: pdf.numPages,
|
|
287
|
+
items
|
|
288
|
+
};
|
|
289
|
+
});
|
|
290
|
+
}
|
|
291
|
+
async function getPageTextItems(document, pageNumber) {
|
|
292
|
+
const content = await (await document.getPage(pageNumber)).getTextContent();
|
|
293
|
+
const styles = content.styles;
|
|
294
|
+
return content.items.filter((item) => item.str != null).map((item) => {
|
|
295
|
+
const [_a, _b, c, d, e, f] = item.transform;
|
|
296
|
+
return {
|
|
297
|
+
str: item.str,
|
|
298
|
+
x: e,
|
|
299
|
+
y: f,
|
|
300
|
+
width: item.width,
|
|
301
|
+
height: item.height,
|
|
302
|
+
fontSize: Math.hypot(c, d),
|
|
303
|
+
fontFamily: styles[item.fontName]?.fontFamily ?? "",
|
|
304
|
+
dir: item.dir,
|
|
305
|
+
hasEOL: item.hasEOL
|
|
306
|
+
};
|
|
307
|
+
});
|
|
308
|
+
}
|
|
309
|
+
async function extractText$1(data, options = {}) {
|
|
310
|
+
const { mergePages = false } = options;
|
|
311
|
+
return await withDocument(data, async (pdf) => {
|
|
312
|
+
const texts = await Promise.all(Array.from({ length: pdf.numPages }, (_, i) => getPageText(pdf, i + 1)));
|
|
313
|
+
return {
|
|
314
|
+
totalPages: pdf.numPages,
|
|
315
|
+
text: mergePages ? normalizeMergedText(texts) : texts
|
|
316
|
+
};
|
|
317
|
+
});
|
|
318
|
+
}
|
|
319
|
+
async function getPageText(document, pageNumber) {
|
|
320
|
+
return (await (await document.getPage(pageNumber)).getTextContent()).items.filter((item) => item.str != null).map((item) => item.str + (item.hasEOL ? "\n" : "")).join("");
|
|
321
|
+
}
|
|
322
|
+
function normalizeMergedText(texts) {
|
|
323
|
+
return texts.join("\n").replace(/[^\S\n]+/g, " ").replace(/ ?\n ?/g, "\n").replace(/\n{3,}/g, "\n\n");
|
|
324
|
+
}
|
|
325
|
+
async function definePDFJSModule(pdfjs) {
|
|
326
|
+
await resolvePDFJSImport(pdfjs, { reload: true });
|
|
327
|
+
}
|
|
328
|
+
async function configureUnPDF(options) {
|
|
329
|
+
await resolvePDFJSImport(options.pdfjs, { reload: true });
|
|
330
|
+
}
|
|
331
|
+
var getMeta = async (...args) => {
|
|
332
|
+
await resolvePDFJSImport();
|
|
333
|
+
return await getMeta$1(...args);
|
|
334
|
+
};
|
|
335
|
+
var extractText = async (...args) => {
|
|
336
|
+
await resolvePDFJSImport();
|
|
337
|
+
return await extractText$1(...args);
|
|
338
|
+
};
|
|
339
|
+
var extractTextItems = async (...args) => {
|
|
340
|
+
await resolvePDFJSImport();
|
|
341
|
+
return await extractTextItems$1(...args);
|
|
342
|
+
};
|
|
343
|
+
var extractImages = async (...args) => {
|
|
344
|
+
await resolvePDFJSImport();
|
|
345
|
+
return await extractImages$1(...args);
|
|
346
|
+
};
|
|
347
|
+
var renderPageAsImage = async (...args) => {
|
|
348
|
+
await resolvePDFJSImport();
|
|
349
|
+
return await renderPageAsImage$1(...args);
|
|
350
|
+
};
|
|
351
|
+
var extractLinks = async (...args) => {
|
|
352
|
+
await resolvePDFJSImport();
|
|
353
|
+
return await extractLinks$1(...args);
|
|
354
|
+
};
|
|
355
|
+
export {
|
|
356
|
+
configureUnPDF,
|
|
357
|
+
createIsomorphicCanvasFactory,
|
|
358
|
+
definePDFJSModule,
|
|
359
|
+
extractImages,
|
|
360
|
+
extractLinks,
|
|
361
|
+
extractText,
|
|
362
|
+
extractTextItems,
|
|
363
|
+
getDocumentProxy,
|
|
364
|
+
getMeta,
|
|
365
|
+
getResolvedPDFJS,
|
|
366
|
+
renderPageAsImage,
|
|
367
|
+
resolvePDFJSImport
|
|
368
|
+
};
|
|
369
|
+
/*! Bundled license information:
|
|
370
|
+
|
|
371
|
+
unpdf/dist/index.mjs:
|
|
372
|
+
(**
|
|
373
|
+
* Derived from the PDF.js project by the Mozilla Foundation.
|
|
374
|
+
* @see https://github.com/mozilla/pdf.js/blob/b8de9a372f9bbf7e33adb362eeae5ef1919dba73/src/display/canvas_factory.js#L18
|
|
375
|
+
* @license Apache-2.0
|
|
376
|
+
*)
|
|
377
|
+
*/
|
|
378
|
+
//# sourceMappingURL=dist-DBO2IPOW.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../node_modules/.pnpm/unpdf@1.8.1_@napi-rs+canvas@1.0.13/node_modules/unpdf/dist/index.mjs"],
|
|
4
|
+
"sourcesContent": ["//#region src/_internal/dommatrix-polyfill.ts\nfunction polyfillDOMMatrix() {\n\tif (typeof globalThis.DOMMatrix !== \"undefined\") return;\n\tglobalThis.DOMMatrix = class DOMMatrix {\n\t\tconstructor(init) {\n\t\t\tif (Array.isArray(init) && init.length === 6) {\n\t\t\t\tthis.a = init[0];\n\t\t\t\tthis.b = init[1];\n\t\t\t\tthis.c = init[2];\n\t\t\t\tthis.d = init[3];\n\t\t\t\tthis.e = init[4];\n\t\t\t\tthis.f = init[5];\n\t\t\t} else {\n\t\t\t\tthis.a = 1;\n\t\t\t\tthis.b = 0;\n\t\t\t\tthis.c = 0;\n\t\t\t\tthis.d = 1;\n\t\t\t\tthis.e = 0;\n\t\t\t\tthis.f = 0;\n\t\t\t}\n\t\t}\n\t\ttranslateSelf(tx, ty = 0) {\n\t\t\tthis.e = this.a * tx + this.c * ty + this.e;\n\t\t\tthis.f = this.b * tx + this.d * ty + this.f;\n\t\t\treturn this;\n\t\t}\n\t\tscaleSelf(sx, sy = sx) {\n\t\t\tthis.a *= sx;\n\t\t\tthis.b *= sx;\n\t\t\tthis.c *= sy;\n\t\t\tthis.d *= sy;\n\t\t\treturn this;\n\t\t}\n\t};\n}\n//#endregion\n//#region src/_internal/env.ts\n/**\n* Stubs browser globals that PDF.js expects at the module level\n* in non-browser environments.\n*\n* @remarks\n* Must be called before importing any PDF.js module, since PDF.js\n* accesses these globals at parse time (top-level constants).\n*/\nfunction stubBrowserGlobals() {\n\tpolyfillDOMMatrix();\n}\n//#endregion\n//#region src/utils.ts\nlet resolvedModule;\nconst isNode = globalThis.process?.release?.name === \"node\";\nconst isBrowser = typeof window !== \"undefined\";\n/**\n* Returns a `PDFDocumentProxy` instance from a given binary data.\n*\n* Applies the following defaults:\n* - `useSystemFonts: true`\n*\n* In Node.js environments, additionally applies:\n* - `disableFontFace: true`\n* - `standardFontDataUrl` resolved from the local `pdfjs-dist` package\n* - `cMapUrl` and `cMapPacked` resolved from the local `pdfjs-dist` package\n*/\nasync function getDocumentProxy(data, options = {}) {\n\tconst { getDocument } = await getResolvedPDFJS();\n\tlet nodeDefaults = {};\n\tif (isNode) try {\n\t\tconst base = import.meta.resolve(\"pdfjs-dist/package.json\");\n\t\tnodeDefaults = {\n\t\t\tdisableFontFace: true,\n\t\t\tstandardFontDataUrl: new URL(\"./standard_fonts/\", base).href,\n\t\t\tcMapUrl: new URL(\"./cmaps/\", base).href,\n\t\t\tcMapPacked: true\n\t\t};\n\t} catch {}\n\treturn await getDocument({\n\t\tdata,\n\t\tuseSystemFonts: true,\n\t\t...nodeDefaults,\n\t\t...options\n\t}).promise;\n}\n/**\n* Runs an operation on a `PDFDocumentProxy` resolved from either binary data\n* or an existing proxy. Documents created here are destroyed once the\n* operation settles \u2013 caller-supplied proxies keep their lifecycle with the\n* caller.\n*/\nasync function withDocument(data, operation, options) {\n\tconst pdf = isPDFDocumentProxy(data) ? data : await getDocumentProxy(data, options);\n\ttry {\n\t\treturn await operation(pdf);\n\t} finally {\n\t\tif (pdf !== data) await pdf.loadingTask.destroy();\n\t}\n}\nasync function getResolvedPDFJS() {\n\tif (!resolvedModule) await resolvePDFJSImport();\n\treturn resolvedModule;\n}\nasync function resolvePDFJSImport(pdfjsResolver, { reload = false } = {}) {\n\tif (resolvedModule && !reload) return;\n\tstubBrowserGlobals();\n\tif (pdfjsResolver) try {\n\t\tresolvedModule = await interopDefault(pdfjsResolver());\n\t\treturn;\n\t} catch (error) {\n\t\tthrow new Error(`PDF.js could not be resolved: ${error}`);\n\t}\n\ttry {\n\t\tresolvedModule = await import(\"unpdf/pdfjs\");\n\t} catch (error) {\n\t\tthrow new Error(`Serverless PDF.js bundle could not be resolved: ${error}`);\n\t}\n}\nfunction isPDFDocumentProxy(data) {\n\treturn typeof data === \"object\" && data !== null && \"_pdfInfo\" in data;\n}\nasync function interopDefault(m) {\n\tconst resolved = await m;\n\treturn resolved.default || resolved;\n}\n//#endregion\n//#region src/_internal/canvas.ts\nlet resolvedCanvasModule;\n/**\n* Derived from the PDF.js project by the Mozilla Foundation.\n* @see https://github.com/mozilla/pdf.js/blob/b8de9a372f9bbf7e33adb362eeae5ef1919dba73/src/display/canvas_factory.js#L18\n* @license Apache-2.0\n*/\nvar BaseCanvasFactory = class {\n\t#enableHWA = false;\n\tconstructor({ enableHWA = false } = {}) {\n\t\tthis.#enableHWA = enableHWA;\n\t}\n\tcreate(width, height) {\n\t\tconst canvas = this._createCanvas(width, height);\n\t\treturn {\n\t\t\tcanvas,\n\t\t\tcontext: canvas.getContext(\"2d\", { willReadFrequently: !this.#enableHWA })\n\t\t};\n\t}\n\treset({ canvas }, width, height) {\n\t\tif (!canvas) throw new Error(\"Canvas is not specified\");\n\t\tcanvas.width = width;\n\t\tcanvas.height = height;\n\t}\n\tdestroy(context) {\n\t\tif (!context.canvas) throw new Error(\"Canvas is not specified\");\n\t\tcontext.canvas.width = 0;\n\t\tcontext.canvas.height = 0;\n\t\tcontext.canvas = void 0;\n\t\tcontext.context = void 0;\n\t}\n\t_createCanvas(width, height) {\n\t\tthrow new Error(\"Not implemented\");\n\t}\n};\n/**\n* Derived from the PDF.js project by the Mozilla Foundation.\n* @see https://github.com/mozilla/pdf.js/blob/b8de9a372f9bbf7e33adb362eeae5ef1919dba73/src/display/canvas_factory.js#L18\n* @license Apache-2.0\n*/\nvar DOMCanvasFactory = class extends BaseCanvasFactory {\n\tconstructor({ ownerDocument = globalThis.document, enableHWA = false } = {}) {\n\t\tsuper({ enableHWA });\n\t\tthis._document = ownerDocument;\n\t}\n\t_createCanvas(width, height) {\n\t\tconst canvas = this._document.createElement(\"canvas\");\n\t\tcanvas.width = width;\n\t\tcanvas.height = height;\n\t\treturn canvas;\n\t}\n};\nvar NodeCanvasFactory = class extends BaseCanvasFactory {\n\tconstructor({ enableHWA = false } = {}) {\n\t\tsuper({ enableHWA });\n\t}\n\t_createCanvas(width, height) {\n\t\tif (!resolvedCanvasModule) throw new Error(\"@napi-rs/canvas module is not resolved\");\n\t\treturn resolvedCanvasModule.createCanvas(width, height);\n\t}\n};\nasync function resolveCanvasModule(canvasImport) {\n\tresolvedCanvasModule ??= await interopDefault(canvasImport());\n\tglobalThis[Symbol.for(\"unpdf.canvasModule\")] = resolvedCanvasModule;\n}\n/**\n* Injects `DOMMatrix`, `ImageData` and `Path2D` constructors from the\n* `@napi-rs/canvas` package into the global scope. This is necessary for\n* Node.js environments that do not support these constructors natively.\n*\n* @remarks\n* `DOMMatrix` is always set because {@link stubBrowserGlobals} may have\n* installed a minimal stub to allow PDF.js to import \u2013 the real\n* `@napi-rs/canvas` implementation must take precedence for rendering.\n*/\nfunction injectCanvasConstructors() {\n\tif (!resolvedCanvasModule) return;\n\tglobalThis.DOMMatrix = resolvedCanvasModule.DOMMatrix;\n\tif (typeof globalThis.ImageData === \"undefined\") globalThis.ImageData = resolvedCanvasModule.ImageData;\n\tif (typeof globalThis.Path2D === \"undefined\") globalThis.Path2D = resolvedCanvasModule.Path2D;\n}\n//#endregion\n//#region src/image.ts\n/**\n* Extracts images from a specific page of a PDF document, including necessary metadata,\n* such as width, height, and calculated color channels.\n*\n* @example\n* const imagesData = await extractImages(pdf, pageNum)\n*\n* for (const imgData of imagesData) {\n* const imageIndex = totalImagesProcessed + 1\n* await sharp(imgData.data, {\n* raw: { width: imgData.width, height: imgData.height, channels: imgData.channels }\n* })\n* .png()\n* .toFile(`${imageIndex}.png`)\n* }\n*/\nasync function extractImages$1(data, pageNumber) {\n\treturn await withDocument(data, async (pdf) => {\n\t\tif (pageNumber < 1 || pageNumber > pdf.numPages) throw new Error(`Invalid page number. Must be between 1 and ${pdf.numPages}.`);\n\t\tconst page = await pdf.getPage(pageNumber);\n\t\tconst operatorList = await page.getOperatorList();\n\t\tconst { OPS } = await getResolvedPDFJS();\n\t\tconst images = [];\n\t\tfor (let i = 0; i < operatorList.fnArray.length; i++) {\n\t\t\tif (operatorList.fnArray[i] !== OPS.paintImageXObject) continue;\n\t\t\tconst imageKey = operatorList.argsArray[i][0];\n\t\t\tconst image = await new Promise((resolve) => (imageKey.startsWith(\"g_\") ? page.commonObjs : page.objs).get(imageKey, resolve));\n\t\t\tif (!image || !image.data || !image.width || !image.height) continue;\n\t\t\tconst { width, height, data } = image;\n\t\t\tconst calculatedChannels = data.length / (width * height);\n\t\t\tif (![\n\t\t\t\t1,\n\t\t\t\t3,\n\t\t\t\t4\n\t\t\t].includes(calculatedChannels)) continue;\n\t\t\tconst channels = calculatedChannels;\n\t\t\timages.push({\n\t\t\t\tdata,\n\t\t\t\twidth,\n\t\t\t\theight,\n\t\t\t\tchannels,\n\t\t\t\tkey: imageKey\n\t\t\t});\n\t\t}\n\t\treturn images;\n\t});\n}\nasync function renderPageAsImage$1(data, pageNumber, options = {}) {\n\tconst CanvasFactory = await createIsomorphicCanvasFactory(options.canvasImport);\n\treturn await withDocument(data, async (pdf) => {\n\t\tif (pageNumber < 1 || pageNumber > pdf.numPages) throw new Error(`Invalid page number. Must be between 1 and ${pdf.numPages}.`);\n\t\tconst page = await pdf.getPage(pageNumber);\n\t\tconst defaultViewport = page.getViewport({ scale: 1 });\n\t\tlet scale = options.scale || 1;\n\t\tif (options.width) scale = options.width / defaultViewport.width;\n\t\telse if (options.height) scale = options.height / defaultViewport.height;\n\t\tconst viewport = page.getViewport({ scale: Math.max(0, scale) });\n\t\tconst canvasFactory = new CanvasFactory();\n\t\tconst drawingContext = canvasFactory.create(viewport.width, viewport.height);\n\t\ttry {\n\t\t\tawait page.render({\n\t\t\t\tcanvas: drawingContext.canvas,\n\t\t\t\tcanvasContext: drawingContext.context,\n\t\t\t\tviewport\n\t\t\t}).promise;\n\t\t\tconst { canvas } = drawingContext;\n\t\t\tif (options.toDataURL) return canvas.toDataURL();\n\t\t\tif (\"encode\" in canvas) {\n\t\t\t\tconst buffer = await canvas.encode(\"png\");\n\t\t\t\treturn buffer.buffer.slice(buffer.byteOffset, buffer.byteOffset + buffer.byteLength);\n\t\t\t}\n\t\t\tconst blob = await new Promise((resolve) => {\n\t\t\t\tcanvas.toBlob(resolve);\n\t\t\t});\n\t\t\tif (!blob) throw new Error(\"Failed to encode canvas to a PNG blob.\");\n\t\t\treturn await blob.arrayBuffer();\n\t\t} finally {\n\t\t\tcanvasFactory.destroy(drawingContext);\n\t\t}\n\t}, { CanvasFactory });\n}\nasync function createIsomorphicCanvasFactory(canvasImport) {\n\tif (isBrowser) return DOMCanvasFactory;\n\tif (isNode) {\n\t\tif (!canvasImport) throw new Error(\"Parameter \\\"canvasImport\\\" is required in Node.js environment.\");\n\t\tawait resolveCanvasModule(canvasImport);\n\t\tinjectCanvasConstructors();\n\t\treturn NodeCanvasFactory;\n\t}\n\tthrow new Error(\"Unsupported environment for canvas creation.\");\n}\n//#endregion\n//#region src/links.ts\nasync function extractLinks$1(data) {\n\treturn await withDocument(data, async (pdf) => {\n\t\tconst pageLinks = await Promise.all(Array.from({ length: pdf.numPages }, (_, i) => getPageLinks(pdf, i + 1)));\n\t\treturn {\n\t\t\ttotalPages: pdf.numPages,\n\t\t\tlinks: pageLinks.flat()\n\t\t};\n\t});\n}\nasync function getPageLinks(document, pageNumber) {\n\tconst annotations = await (await document.getPage(pageNumber)).getAnnotations();\n\tconst links = [];\n\tfor (const annotation of annotations) if (annotation.subtype === \"Link\" && annotation.url) links.push(annotation.url);\n\treturn links;\n}\n//#endregion\n//#region src/meta.ts\nconst XMP_DATE_PROPERTIES = [\n\t\"xmp:createdate\",\n\t\"xmp:modifydate\",\n\t\"xmp:metadatadate\",\n\t\"xap:createdate\",\n\t\"xap:modifydate\",\n\t\"xap:metadatadate\"\n];\nasync function getMeta$1(data, options = {}) {\n\treturn await withDocument(data, async (pdf) => {\n\t\tconst meta = await pdf.getMetadata();\n\t\tconst info = meta?.info || {};\n\t\tif (options.parseDates) {\n\t\t\tconst { PDFDateString } = await getResolvedPDFJS();\n\t\t\tif (info?.CreationDate) info.CreationDate = PDFDateString.toDateObject(info?.CreationDate);\n\t\t\tif (info?.ModDate) info.ModDate = PDFDateString.toDateObject(info?.ModDate);\n\t\t\tif (meta.metadata) meta.metadata = new Proxy(meta.metadata, { get(target, prop) {\n\t\t\t\tif (prop === \"get\") return (name) => {\n\t\t\t\t\tconst value = target.get(name);\n\t\t\t\t\tif (XMP_DATE_PROPERTIES.includes(name) && value) return parseISODateString(value);\n\t\t\t\t\treturn value;\n\t\t\t\t};\n\t\t\t\treturn target[prop];\n\t\t\t} });\n\t\t}\n\t\treturn {\n\t\t\tinfo,\n\t\t\tmetadata: meta?.metadata || {}\n\t\t};\n\t});\n}\nfunction parseISODateString(isoDateString) {\n\tif (!isoDateString) return;\n\tconst parsedDate = Date.parse(isoDateString);\n\tif (!Number.isNaN(parsedDate)) return new Date(parsedDate);\n}\n//#endregion\n//#region src/text.ts\nasync function extractTextItems$1(data) {\n\treturn await withDocument(data, async (pdf) => {\n\t\tconst items = await Promise.all(Array.from({ length: pdf.numPages }, (_, i) => getPageTextItems(pdf, i + 1)));\n\t\treturn {\n\t\t\ttotalPages: pdf.numPages,\n\t\t\titems\n\t\t};\n\t});\n}\nasync function getPageTextItems(document, pageNumber) {\n\tconst content = await (await document.getPage(pageNumber)).getTextContent();\n\tconst styles = content.styles;\n\treturn content.items.filter((item) => item.str != null).map((item) => {\n\t\tconst [_a, _b, c, d, e, f] = item.transform;\n\t\treturn {\n\t\t\tstr: item.str,\n\t\t\tx: e,\n\t\t\ty: f,\n\t\t\twidth: item.width,\n\t\t\theight: item.height,\n\t\t\tfontSize: Math.hypot(c, d),\n\t\t\tfontFamily: styles[item.fontName]?.fontFamily ?? \"\",\n\t\t\tdir: item.dir,\n\t\t\thasEOL: item.hasEOL\n\t\t};\n\t});\n}\nasync function extractText$1(data, options = {}) {\n\tconst { mergePages = false } = options;\n\treturn await withDocument(data, async (pdf) => {\n\t\tconst texts = await Promise.all(Array.from({ length: pdf.numPages }, (_, i) => getPageText(pdf, i + 1)));\n\t\treturn {\n\t\t\ttotalPages: pdf.numPages,\n\t\t\ttext: mergePages ? normalizeMergedText(texts) : texts\n\t\t};\n\t});\n}\nasync function getPageText(document, pageNumber) {\n\treturn (await (await document.getPage(pageNumber)).getTextContent()).items.filter((item) => item.str != null).map((item) => item.str + (item.hasEOL ? \"\\n\" : \"\")).join(\"\");\n}\n/**\n* Collapses whitespace without destroying the line structure: `hasEOL` and\n* page-join line breaks survive, but at most one blank line remains.\n*/\nfunction normalizeMergedText(texts) {\n\treturn texts.join(\"\\n\").replace(/[^\\S\\n]+/g, \" \").replace(/ ?\\n ?/g, \"\\n\").replace(/\\n{3,}/g, \"\\n\\n\");\n}\n//#endregion\n//#region src/config.ts\n/**\n* By default, unpdf will use the latest version of PDF.js compiled for\n* serverless environments. If you want to use a different version, you can\n* provide a custom resolver function.\n*\n* @example\n* // Use the official PDF.js build (make sure to install it first)\n* import { definePDFJSModule } from 'unpdf'\n*\n* await definePDFJSModule(() => import('pdfjs-dist'))\n*/\nasync function definePDFJSModule(pdfjs) {\n\tawait resolvePDFJSImport(pdfjs, { reload: true });\n}\n/** @deprecated Use `definePDFJSModule` instead. Will be removed in v2. */\nasync function configureUnPDF(options) {\n\tawait resolvePDFJSImport(options.pdfjs, { reload: true });\n}\n//#endregion\n//#region src/index.ts\nconst getMeta = async (...args) => {\n\tawait resolvePDFJSImport();\n\treturn await getMeta$1(...args);\n};\nconst extractText = async (...args) => {\n\tawait resolvePDFJSImport();\n\treturn await extractText$1(...args);\n};\nconst extractTextItems = async (...args) => {\n\tawait resolvePDFJSImport();\n\treturn await extractTextItems$1(...args);\n};\nconst extractImages = async (...args) => {\n\tawait resolvePDFJSImport();\n\treturn await extractImages$1(...args);\n};\nconst renderPageAsImage = async (...args) => {\n\tawait resolvePDFJSImport();\n\treturn await renderPageAsImage$1(...args);\n};\nconst extractLinks = async (...args) => {\n\tawait resolvePDFJSImport();\n\treturn await extractLinks$1(...args);\n};\n//#endregion\nexport { configureUnPDF, createIsomorphicCanvasFactory, definePDFJSModule, extractImages, extractLinks, extractText, extractTextItems, getDocumentProxy, getMeta, getResolvedPDFJS, renderPageAsImage, resolvePDFJSImport };\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["data"]
|
|
7
|
+
}
|