pdfnova 1.0.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/README.md +336 -0
- package/dist/AnnotationReader-ADHPZ3V5.mjs +3 -0
- package/dist/AnnotationReader-ADHPZ3V5.mjs.map +1 -0
- package/dist/AnnotationReader-C5XLXGWS.cjs +12 -0
- package/dist/AnnotationReader-C5XLXGWS.cjs.map +1 -0
- package/dist/AnnotationWriter-N3Y4KTPI.cjs +12 -0
- package/dist/AnnotationWriter-N3Y4KTPI.cjs.map +1 -0
- package/dist/AnnotationWriter-XWY5N6AZ.mjs +3 -0
- package/dist/AnnotationWriter-XWY5N6AZ.mjs.map +1 -0
- package/dist/FormFiller-2O4MOQYV.cjs +12 -0
- package/dist/FormFiller-2O4MOQYV.cjs.map +1 -0
- package/dist/FormFiller-6DLWMRN5.mjs +3 -0
- package/dist/FormFiller-6DLWMRN5.mjs.map +1 -0
- package/dist/FormFlattener-5MWLLH7W.cjs +12 -0
- package/dist/FormFlattener-5MWLLH7W.cjs.map +1 -0
- package/dist/FormFlattener-YQRQ3QOY.mjs +3 -0
- package/dist/FormFlattener-YQRQ3QOY.mjs.map +1 -0
- package/dist/FormReader-QAEDFD77.cjs +13 -0
- package/dist/FormReader-QAEDFD77.cjs.map +1 -0
- package/dist/FormReader-XEF3T5LD.mjs +4 -0
- package/dist/FormReader-XEF3T5LD.mjs.map +1 -0
- package/dist/SignatureVerifier-2IR7UQGU.mjs +3 -0
- package/dist/SignatureVerifier-2IR7UQGU.mjs.map +1 -0
- package/dist/SignatureVerifier-4KWQA7X6.cjs +12 -0
- package/dist/SignatureVerifier-4KWQA7X6.cjs.map +1 -0
- package/dist/WasmMock-2I3GVRQF.mjs +397 -0
- package/dist/WasmMock-2I3GVRQF.mjs.map +1 -0
- package/dist/WasmMock-OYPV4J6B.cjs +399 -0
- package/dist/WasmMock-OYPV4J6B.cjs.map +1 -0
- package/dist/chunk-2OWW5BYD.mjs +1847 -0
- package/dist/chunk-2OWW5BYD.mjs.map +1 -0
- package/dist/chunk-2YFCKMVK.cjs +72 -0
- package/dist/chunk-2YFCKMVK.cjs.map +1 -0
- package/dist/chunk-7FGOUG4Z.cjs +51 -0
- package/dist/chunk-7FGOUG4Z.cjs.map +1 -0
- package/dist/chunk-CPMUWWNS.cjs +44 -0
- package/dist/chunk-CPMUWWNS.cjs.map +1 -0
- package/dist/chunk-DVMAQ62T.cjs +109 -0
- package/dist/chunk-DVMAQ62T.cjs.map +1 -0
- package/dist/chunk-ETSUOY4U.cjs +104 -0
- package/dist/chunk-ETSUOY4U.cjs.map +1 -0
- package/dist/chunk-FD5RTJ5W.mjs +60 -0
- package/dist/chunk-FD5RTJ5W.mjs.map +1 -0
- package/dist/chunk-FO3DQLVB.mjs +42 -0
- package/dist/chunk-FO3DQLVB.mjs.map +1 -0
- package/dist/chunk-G2FA6VKV.cjs +62 -0
- package/dist/chunk-G2FA6VKV.cjs.map +1 -0
- package/dist/chunk-G7575D5X.mjs +67 -0
- package/dist/chunk-G7575D5X.mjs.map +1 -0
- package/dist/chunk-I7OBHZLB.mjs +75 -0
- package/dist/chunk-I7OBHZLB.mjs.map +1 -0
- package/dist/chunk-INA3KRJK.cjs +1863 -0
- package/dist/chunk-INA3KRJK.cjs.map +1 -0
- package/dist/chunk-RZFKZ2CA.cjs +77 -0
- package/dist/chunk-RZFKZ2CA.cjs.map +1 -0
- package/dist/chunk-VRJQZOCH.mjs +107 -0
- package/dist/chunk-VRJQZOCH.mjs.map +1 -0
- package/dist/chunk-X53667JS.mjs +102 -0
- package/dist/chunk-X53667JS.mjs.map +1 -0
- package/dist/chunk-XEHKVFPJ.mjs +49 -0
- package/dist/chunk-XEHKVFPJ.mjs.map +1 -0
- package/dist/index.cjs +112 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.cts +103 -0
- package/dist/index.d.ts +103 -0
- package/dist/index.mjs +14 -0
- package/dist/index.mjs.map +1 -0
- package/dist/lite-CMz-Yosm.d.cts +662 -0
- package/dist/lite-CMz-Yosm.d.ts +662 -0
- package/dist/lite.cjs +70 -0
- package/dist/lite.cjs.map +1 -0
- package/dist/lite.d.cts +1 -0
- package/dist/lite.d.ts +1 -0
- package/dist/lite.mjs +8 -0
- package/dist/lite.mjs.map +1 -0
- package/package.json +68 -0
|
@@ -0,0 +1,397 @@
|
|
|
1
|
+
// src/core/WasmMock.ts
|
|
2
|
+
function createMockModule() {
|
|
3
|
+
const heap = new ArrayBuffer(256 * 1024 * 1024);
|
|
4
|
+
const HEAPU8 = new Uint8Array(heap);
|
|
5
|
+
const HEAPU32 = new Uint32Array(heap);
|
|
6
|
+
const HEAP32 = new Int32Array(heap);
|
|
7
|
+
const HEAPF32 = new Float32Array(heap);
|
|
8
|
+
const HEAPF64 = new Float64Array(heap);
|
|
9
|
+
let nextPtr = 1024;
|
|
10
|
+
function malloc(size) {
|
|
11
|
+
const aligned = size + 7 & -8;
|
|
12
|
+
const ptr = nextPtr;
|
|
13
|
+
nextPtr += aligned;
|
|
14
|
+
return ptr;
|
|
15
|
+
}
|
|
16
|
+
function free(_ptr) {
|
|
17
|
+
}
|
|
18
|
+
const documents = /* @__PURE__ */ new Map();
|
|
19
|
+
let nextDocHandle = 100;
|
|
20
|
+
let lastError = 0;
|
|
21
|
+
const pages = /* @__PURE__ */ new Map();
|
|
22
|
+
let nextPageHandle = 1e3;
|
|
23
|
+
const textPages = /* @__PURE__ */ new Map();
|
|
24
|
+
let nextTextPageHandle = 5e3;
|
|
25
|
+
const bitmaps = /* @__PURE__ */ new Map();
|
|
26
|
+
let nextBitmapHandle = 1e4;
|
|
27
|
+
const searches = /* @__PURE__ */ new Map();
|
|
28
|
+
let nextSearchHandle = 2e4;
|
|
29
|
+
const module = {
|
|
30
|
+
HEAPU8,
|
|
31
|
+
HEAPU32,
|
|
32
|
+
HEAP32,
|
|
33
|
+
HEAPF32,
|
|
34
|
+
HEAPF64,
|
|
35
|
+
_malloc: malloc,
|
|
36
|
+
_free: free,
|
|
37
|
+
_FPDF_InitLibraryWithConfig(_configPtr) {
|
|
38
|
+
},
|
|
39
|
+
_FPDF_DestroyLibrary() {
|
|
40
|
+
documents.clear();
|
|
41
|
+
pages.clear();
|
|
42
|
+
textPages.clear();
|
|
43
|
+
bitmaps.clear();
|
|
44
|
+
},
|
|
45
|
+
_FPDF_LoadMemDocument(buf, size, password) {
|
|
46
|
+
const data = HEAPU8.slice(buf, buf + size);
|
|
47
|
+
const header = String.fromCharCode(...data.slice(0, 5));
|
|
48
|
+
if (header !== "%PDF-") {
|
|
49
|
+
lastError = 1;
|
|
50
|
+
return 0;
|
|
51
|
+
}
|
|
52
|
+
const handle = nextDocHandle++;
|
|
53
|
+
const pw = password ? module.UTF8ToString(password) : null;
|
|
54
|
+
const content = new TextDecoder().decode(data);
|
|
55
|
+
const pageMatches = content.match(/\/Type\s*\/Page[^s]/g);
|
|
56
|
+
const pageCount = pageMatches ? pageMatches.length : 1;
|
|
57
|
+
documents.set(handle, { data, pageCount, password: pw });
|
|
58
|
+
lastError = 0;
|
|
59
|
+
return handle;
|
|
60
|
+
},
|
|
61
|
+
_FPDF_CloseDocument(doc) {
|
|
62
|
+
documents.delete(doc);
|
|
63
|
+
},
|
|
64
|
+
_FPDF_GetLastError() {
|
|
65
|
+
return lastError;
|
|
66
|
+
},
|
|
67
|
+
_FPDF_GetPageCount(doc) {
|
|
68
|
+
return documents.get(doc)?.pageCount ?? 0;
|
|
69
|
+
},
|
|
70
|
+
_FPDF_LoadPage(doc, pageIndex) {
|
|
71
|
+
const d = documents.get(doc);
|
|
72
|
+
if (!d || pageIndex < 0 || pageIndex >= d.pageCount) return 0;
|
|
73
|
+
const handle = nextPageHandle++;
|
|
74
|
+
pages.set(handle, { docHandle: doc, pageIndex, width: 612, height: 792 });
|
|
75
|
+
return handle;
|
|
76
|
+
},
|
|
77
|
+
_FPDF_ClosePage(page) {
|
|
78
|
+
pages.delete(page);
|
|
79
|
+
},
|
|
80
|
+
_FPDF_GetPageWidthF(page) {
|
|
81
|
+
return pages.get(page)?.width ?? 0;
|
|
82
|
+
},
|
|
83
|
+
_FPDF_GetPageHeightF(page) {
|
|
84
|
+
return pages.get(page)?.height ?? 0;
|
|
85
|
+
},
|
|
86
|
+
_FPDFBitmap_Create(width, height, _alpha) {
|
|
87
|
+
const stride = width * 4;
|
|
88
|
+
const bufSize = stride * height;
|
|
89
|
+
const buffer = malloc(bufSize);
|
|
90
|
+
HEAPU8.fill(255, buffer, buffer + bufSize);
|
|
91
|
+
const handle = nextBitmapHandle++;
|
|
92
|
+
bitmaps.set(handle, { width, height, buffer, stride });
|
|
93
|
+
return handle;
|
|
94
|
+
},
|
|
95
|
+
_FPDFBitmap_FillRect(bitmap, left, top, width, height, color) {
|
|
96
|
+
const bmp = bitmaps.get(bitmap);
|
|
97
|
+
if (!bmp) return;
|
|
98
|
+
const r = color >> 24 & 255, g = color >> 16 & 255, b = color >> 8 & 255, a = color & 255;
|
|
99
|
+
for (let y = top; y < top + height && y < bmp.height; y++) {
|
|
100
|
+
for (let x = left; x < left + width && x < bmp.width; x++) {
|
|
101
|
+
const offset = bmp.buffer + y * bmp.stride + x * 4;
|
|
102
|
+
HEAPU8[offset] = b;
|
|
103
|
+
HEAPU8[offset + 1] = g;
|
|
104
|
+
HEAPU8[offset + 2] = r;
|
|
105
|
+
HEAPU8[offset + 3] = a;
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
},
|
|
109
|
+
_FPDFBitmap_GetBuffer(bitmap) {
|
|
110
|
+
return bitmaps.get(bitmap)?.buffer ?? 0;
|
|
111
|
+
},
|
|
112
|
+
_FPDFBitmap_GetStride(bitmap) {
|
|
113
|
+
return bitmaps.get(bitmap)?.stride ?? 0;
|
|
114
|
+
},
|
|
115
|
+
_FPDFBitmap_Destroy(bitmap) {
|
|
116
|
+
bitmaps.delete(bitmap);
|
|
117
|
+
},
|
|
118
|
+
_FPDF_RenderPageBitmap() {
|
|
119
|
+
},
|
|
120
|
+
_FPDFText_LoadPage(page) {
|
|
121
|
+
if (!pages.has(page)) return 0;
|
|
122
|
+
const handle = nextTextPageHandle++;
|
|
123
|
+
textPages.set(handle, { pageHandle: page, text: "Sample PDF text content for page." });
|
|
124
|
+
return handle;
|
|
125
|
+
},
|
|
126
|
+
_FPDFText_ClosePage(textPage) {
|
|
127
|
+
textPages.delete(textPage);
|
|
128
|
+
},
|
|
129
|
+
_FPDFText_CountChars(textPage) {
|
|
130
|
+
return textPages.get(textPage)?.text.length ?? 0;
|
|
131
|
+
},
|
|
132
|
+
_FPDFText_GetUnicode(textPage, index) {
|
|
133
|
+
const tp = textPages.get(textPage);
|
|
134
|
+
return tp ? tp.text.charCodeAt(index) : 0;
|
|
135
|
+
},
|
|
136
|
+
_FPDFText_GetFontSize(textPage, _index) {
|
|
137
|
+
return textPages.has(textPage) ? 12 : 0;
|
|
138
|
+
},
|
|
139
|
+
_FPDFText_GetCharBox(textPage, index, leftPtr, rightPtr, bottomPtr, topPtr) {
|
|
140
|
+
if (!textPages.has(textPage)) return 0;
|
|
141
|
+
const charWidth = 7.2;
|
|
142
|
+
const x = index % 80 * charWidth;
|
|
143
|
+
const y = 792 - Math.floor(index / 80) * 14;
|
|
144
|
+
HEAPF64[leftPtr >> 3] = x;
|
|
145
|
+
HEAPF64[rightPtr >> 3] = x + charWidth;
|
|
146
|
+
HEAPF64[bottomPtr >> 3] = y - 12;
|
|
147
|
+
HEAPF64[topPtr >> 3] = y;
|
|
148
|
+
return 1;
|
|
149
|
+
},
|
|
150
|
+
_FPDFText_GetText(textPage, startIndex, count, buf) {
|
|
151
|
+
const tp = textPages.get(textPage);
|
|
152
|
+
if (!tp) return 0;
|
|
153
|
+
const sub = tp.text.slice(startIndex, startIndex + count);
|
|
154
|
+
module.stringToUTF16(sub, buf, (count + 1) * 2);
|
|
155
|
+
return sub.length;
|
|
156
|
+
},
|
|
157
|
+
_FPDFText_FindStart(textPage, findWhat, flags, startIndex) {
|
|
158
|
+
const tp = textPages.get(textPage);
|
|
159
|
+
if (!tp) return 0;
|
|
160
|
+
const query = module.UTF16ToString(findWhat);
|
|
161
|
+
const caseSensitive = (flags & 1) !== 0;
|
|
162
|
+
const handle = nextSearchHandle++;
|
|
163
|
+
searches.set(handle, { tpHandle: textPage, needle: query, caseSensitive, pos: startIndex, matchIdx: -1, matchLen: query.length });
|
|
164
|
+
return handle;
|
|
165
|
+
},
|
|
166
|
+
_FPDFText_FindNext(findHandle) {
|
|
167
|
+
const state = searches.get(findHandle);
|
|
168
|
+
if (!state) return 0;
|
|
169
|
+
const tp = textPages.get(state.tpHandle);
|
|
170
|
+
if (!tp) return 0;
|
|
171
|
+
const text = state.caseSensitive ? tp.text : tp.text.toLowerCase();
|
|
172
|
+
const needle = state.caseSensitive ? state.needle : state.needle.toLowerCase();
|
|
173
|
+
const idx = text.indexOf(needle, state.pos);
|
|
174
|
+
if (idx < 0) {
|
|
175
|
+
state.matchIdx = -1;
|
|
176
|
+
return 0;
|
|
177
|
+
}
|
|
178
|
+
state.matchIdx = idx;
|
|
179
|
+
state.pos = idx + 1;
|
|
180
|
+
return 1;
|
|
181
|
+
},
|
|
182
|
+
_FPDFText_FindClose(findHandle) {
|
|
183
|
+
searches.delete(findHandle);
|
|
184
|
+
},
|
|
185
|
+
_FPDFText_GetSchResultIndex(findHandle) {
|
|
186
|
+
return searches.get(findHandle)?.matchIdx ?? -1;
|
|
187
|
+
},
|
|
188
|
+
_FPDFText_GetSchCount(findHandle) {
|
|
189
|
+
return searches.get(findHandle)?.matchLen ?? 0;
|
|
190
|
+
},
|
|
191
|
+
_FPDFText_CountRects(textPage, _startIndex, _count) {
|
|
192
|
+
return textPages.has(textPage) ? 1 : 0;
|
|
193
|
+
},
|
|
194
|
+
_FPDFText_GetRect(textPage, _rectIndex, leftPtr, topPtr, rightPtr, bottomPtr) {
|
|
195
|
+
if (!textPages.has(textPage)) return 0;
|
|
196
|
+
HEAPF64[leftPtr >> 3] = 72;
|
|
197
|
+
HEAPF64[topPtr >> 3] = 720;
|
|
198
|
+
HEAPF64[rightPtr >> 3] = 540;
|
|
199
|
+
HEAPF64[bottomPtr >> 3] = 708;
|
|
200
|
+
return 1;
|
|
201
|
+
},
|
|
202
|
+
_FPDF_GetMetaText(doc, tag, buf, bufLen) {
|
|
203
|
+
if (!documents.has(doc)) return 0;
|
|
204
|
+
const tagStr = module.UTF8ToString(tag);
|
|
205
|
+
const meta = {
|
|
206
|
+
Title: "Untitled",
|
|
207
|
+
Author: "",
|
|
208
|
+
Subject: "",
|
|
209
|
+
Keywords: "",
|
|
210
|
+
Creator: "pdfnova",
|
|
211
|
+
Producer: "pdfnova",
|
|
212
|
+
CreationDate: "",
|
|
213
|
+
ModDate: ""
|
|
214
|
+
};
|
|
215
|
+
const value = meta[tagStr] ?? "";
|
|
216
|
+
if (bufLen === 0) return (value.length + 1) * 2;
|
|
217
|
+
module.stringToUTF16(value, buf, bufLen);
|
|
218
|
+
return (value.length + 1) * 2;
|
|
219
|
+
},
|
|
220
|
+
_FPDFBookmark_GetFirstChild(_doc, _bookmark) {
|
|
221
|
+
return 0;
|
|
222
|
+
},
|
|
223
|
+
_FPDFBookmark_GetNextSibling(_doc, _bookmark) {
|
|
224
|
+
return 0;
|
|
225
|
+
},
|
|
226
|
+
_FPDFBookmark_GetTitle(_bookmark, _buf, _bufLen) {
|
|
227
|
+
return 0;
|
|
228
|
+
},
|
|
229
|
+
_FPDFBookmark_GetAction(_bookmark) {
|
|
230
|
+
return 0;
|
|
231
|
+
},
|
|
232
|
+
_FPDFBookmark_GetDest(_doc, _bookmark) {
|
|
233
|
+
return 0;
|
|
234
|
+
},
|
|
235
|
+
_FPDFDest_GetDestPageIndex(_doc, _dest) {
|
|
236
|
+
return 0;
|
|
237
|
+
},
|
|
238
|
+
_FPDFLink_LoadWebLinks(_textPage) {
|
|
239
|
+
return 0;
|
|
240
|
+
},
|
|
241
|
+
_FPDFLink_CountWebLinks(_linkPage) {
|
|
242
|
+
return 0;
|
|
243
|
+
},
|
|
244
|
+
_FPDFLink_GetURL(_linkPage, _linkIndex, _buf, _bufLen) {
|
|
245
|
+
return 0;
|
|
246
|
+
},
|
|
247
|
+
_FPDFLink_CountRects(_linkPage, _linkIndex) {
|
|
248
|
+
return 0;
|
|
249
|
+
},
|
|
250
|
+
_FPDFLink_GetRect() {
|
|
251
|
+
},
|
|
252
|
+
_FPDFLink_CloseWebLinks(_linkPage) {
|
|
253
|
+
},
|
|
254
|
+
_FPDFPage_GetAnnotCount(page) {
|
|
255
|
+
return pages.has(page) ? 0 : 0;
|
|
256
|
+
},
|
|
257
|
+
_FPDFPage_GetAnnot(_page, _index) {
|
|
258
|
+
return 0;
|
|
259
|
+
},
|
|
260
|
+
_FPDFPage_CreateAnnot(_page, _subtype) {
|
|
261
|
+
return malloc(8);
|
|
262
|
+
},
|
|
263
|
+
_FPDFPage_RemoveAnnot(_page, _index) {
|
|
264
|
+
return 1;
|
|
265
|
+
},
|
|
266
|
+
_FPDFAnnot_GetSubtype(_annot) {
|
|
267
|
+
return 0;
|
|
268
|
+
},
|
|
269
|
+
_FPDFAnnot_GetRect(_annot, _rect) {
|
|
270
|
+
return 1;
|
|
271
|
+
},
|
|
272
|
+
_FPDFAnnot_SetRect(_annot, _rect) {
|
|
273
|
+
return 1;
|
|
274
|
+
},
|
|
275
|
+
_FPDFAnnot_GetColor(_annot, _type, _r, _g, _b, _a) {
|
|
276
|
+
return 1;
|
|
277
|
+
},
|
|
278
|
+
_FPDFAnnot_SetColor(_annot, _type, _r, _g, _b, _a) {
|
|
279
|
+
return 1;
|
|
280
|
+
},
|
|
281
|
+
_FPDFAnnot_GetStringValue(_annot, _key, _buf, _bufLen) {
|
|
282
|
+
return 0;
|
|
283
|
+
},
|
|
284
|
+
_FPDFAnnot_SetStringValue(_annot, _key, _value) {
|
|
285
|
+
return 1;
|
|
286
|
+
},
|
|
287
|
+
_FPDFAnnot_AppendAttachmentPoints(_annot, _points) {
|
|
288
|
+
return 1;
|
|
289
|
+
},
|
|
290
|
+
_FPDFAnnot_CountAttachmentPoints(_annot) {
|
|
291
|
+
return 0;
|
|
292
|
+
},
|
|
293
|
+
_FPDFAnnot_GetAttachmentPoints(_annot, _index, _points) {
|
|
294
|
+
return 1;
|
|
295
|
+
},
|
|
296
|
+
_FPDFPage_CloseAnnot(_annot) {
|
|
297
|
+
},
|
|
298
|
+
_FPDFDOC_InitFormFillEnvironment(_doc, _formInfo) {
|
|
299
|
+
return malloc(8);
|
|
300
|
+
},
|
|
301
|
+
_FPDFDOC_ExitFormFillEnvironment(_formHandle) {
|
|
302
|
+
},
|
|
303
|
+
_FPDF_GetFormType(_doc) {
|
|
304
|
+
return 0;
|
|
305
|
+
},
|
|
306
|
+
_FPDFPage_HasFormFieldAtPoint(_formHandle, _page, _x, _y) {
|
|
307
|
+
return -1;
|
|
308
|
+
},
|
|
309
|
+
_FORM_OnMouseMove(_formHandle, _page, _modifier, _x, _y) {
|
|
310
|
+
},
|
|
311
|
+
_FPDFAnnot_GetFormFieldType(_formHandle, _annot) {
|
|
312
|
+
return -1;
|
|
313
|
+
},
|
|
314
|
+
_FPDFAnnot_GetFormFieldName(_formHandle, _annot, _buf, _bufLen) {
|
|
315
|
+
return 0;
|
|
316
|
+
},
|
|
317
|
+
_FPDFAnnot_GetFormFieldValue(_formHandle, _annot, _buf, _bufLen) {
|
|
318
|
+
return 0;
|
|
319
|
+
},
|
|
320
|
+
_FPDFAnnot_SetFormFieldValue(_formHandle, _annot, _value) {
|
|
321
|
+
},
|
|
322
|
+
_FPDFAnnot_GetFormFieldFlags(_formHandle, _annot) {
|
|
323
|
+
return 0;
|
|
324
|
+
},
|
|
325
|
+
_FPDFAnnot_IsChecked(_formHandle, _annot) {
|
|
326
|
+
return 0;
|
|
327
|
+
},
|
|
328
|
+
_FPDFPage_Flatten(_page, _usage) {
|
|
329
|
+
return 1;
|
|
330
|
+
},
|
|
331
|
+
_FPDF_SaveAsCopy(_doc, _writer, _flags) {
|
|
332
|
+
return 1;
|
|
333
|
+
},
|
|
334
|
+
_FPDF_SaveWithVersion(_doc, _writer, _flags, _version) {
|
|
335
|
+
return 1;
|
|
336
|
+
},
|
|
337
|
+
_FPDF_GetSignatureCount(_doc) {
|
|
338
|
+
return 0;
|
|
339
|
+
},
|
|
340
|
+
_FPDF_GetSignatureObject(_doc, _index) {
|
|
341
|
+
return 0;
|
|
342
|
+
},
|
|
343
|
+
_FPDFSignObj_GetContents(_sig, _buf, _bufLen) {
|
|
344
|
+
return 0;
|
|
345
|
+
},
|
|
346
|
+
_FPDFSignObj_GetByteRange(_sig, _buf, _bufLen) {
|
|
347
|
+
return 0;
|
|
348
|
+
},
|
|
349
|
+
_FPDFSignObj_GetSubFilter(_sig, _buf, _bufLen) {
|
|
350
|
+
return 0;
|
|
351
|
+
},
|
|
352
|
+
_FPDFSignObj_GetReason(_sig, _buf, _bufLen) {
|
|
353
|
+
return 0;
|
|
354
|
+
},
|
|
355
|
+
_FPDFSignObj_GetTime(_sig, _buf, _bufLen) {
|
|
356
|
+
return 0;
|
|
357
|
+
},
|
|
358
|
+
_FPDFSignObj_GetDocMDPPermission(_sig) {
|
|
359
|
+
return 0;
|
|
360
|
+
},
|
|
361
|
+
UTF8ToString(ptr) {
|
|
362
|
+
let end = ptr;
|
|
363
|
+
while (HEAPU8[end] !== 0) end++;
|
|
364
|
+
return new TextDecoder().decode(HEAPU8.slice(ptr, end));
|
|
365
|
+
},
|
|
366
|
+
UTF16ToString(ptr) {
|
|
367
|
+
const u16 = new Uint16Array(heap, ptr);
|
|
368
|
+
let str = "";
|
|
369
|
+
for (let i = 0; u16[i] !== 0; i++) str += String.fromCharCode(u16[i]);
|
|
370
|
+
return str;
|
|
371
|
+
},
|
|
372
|
+
stringToUTF8(str, outPtr, maxBytes) {
|
|
373
|
+
const encoded = new TextEncoder().encode(str);
|
|
374
|
+
const len = Math.min(encoded.length, maxBytes - 1);
|
|
375
|
+
HEAPU8.set(encoded.subarray(0, len), outPtr);
|
|
376
|
+
HEAPU8[outPtr + len] = 0;
|
|
377
|
+
},
|
|
378
|
+
stringToUTF16(str, outPtr, maxBytes) {
|
|
379
|
+
const u16 = new Uint16Array(heap, outPtr, maxBytes >> 1);
|
|
380
|
+
for (let i = 0; i < str.length && i < (maxBytes >> 1) - 1; i++) {
|
|
381
|
+
u16[i] = str.charCodeAt(i);
|
|
382
|
+
}
|
|
383
|
+
if (str.length < maxBytes >> 1) u16[str.length] = 0;
|
|
384
|
+
},
|
|
385
|
+
lengthBytesUTF8(str) {
|
|
386
|
+
return new TextEncoder().encode(str).length;
|
|
387
|
+
},
|
|
388
|
+
lengthBytesUTF16(str) {
|
|
389
|
+
return str.length * 2;
|
|
390
|
+
}
|
|
391
|
+
};
|
|
392
|
+
return module;
|
|
393
|
+
}
|
|
394
|
+
|
|
395
|
+
export { createMockModule };
|
|
396
|
+
//# sourceMappingURL=WasmMock-2I3GVRQF.mjs.map
|
|
397
|
+
//# sourceMappingURL=WasmMock-2I3GVRQF.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/core/WasmMock.ts"],"names":[],"mappings":"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","file":"WasmMock-2I3GVRQF.mjs","sourcesContent":["import type { WasmModule } from '../types';\n\n/**\n * Creates a mock PDFium module for development/testing environments\n * where the real WASM binary cannot be loaded (Node.js, jsdom, etc.).\n *\n * The mock exercises the full API surface with basic PDF structure\n * parsing, but does NOT perform real rendering or text extraction.\n */\nexport function createMockModule(): WasmModule {\n const heap = new ArrayBuffer(256 * 1024 * 1024);\n const HEAPU8 = new Uint8Array(heap);\n const HEAPU32 = new Uint32Array(heap);\n const HEAP32 = new Int32Array(heap);\n const HEAPF32 = new Float32Array(heap);\n const HEAPF64 = new Float64Array(heap);\n\n let nextPtr = 1024;\n\n function malloc(size: number): number {\n const aligned = (size + 7) & ~7;\n const ptr = nextPtr;\n nextPtr += aligned;\n return ptr;\n }\n\n function free(_ptr: number): void {}\n\n const documents = new Map<number, { data: Uint8Array; pageCount: number; password: string | null }>();\n let nextDocHandle = 100;\n let lastError = 0;\n\n const pages = new Map<number, { docHandle: number; pageIndex: number; width: number; height: number }>();\n let nextPageHandle = 1000;\n\n const textPages = new Map<number, { pageHandle: number; text: string }>();\n let nextTextPageHandle = 5000;\n\n const bitmaps = new Map<number, { width: number; height: number; buffer: number; stride: number }>();\n let nextBitmapHandle = 10000;\n\n interface SearchState { tpHandle: number; needle: string; caseSensitive: boolean; pos: number; matchIdx: number; matchLen: number; }\n const searches = new Map<number, SearchState>();\n let nextSearchHandle = 20000;\n\n const module: WasmModule = {\n HEAPU8, HEAPU32, HEAP32, HEAPF32, HEAPF64,\n _malloc: malloc,\n _free: free,\n\n _FPDF_InitLibraryWithConfig(_configPtr: number) {},\n _FPDF_DestroyLibrary() { documents.clear(); pages.clear(); textPages.clear(); bitmaps.clear(); },\n\n _FPDF_LoadMemDocument(buf: number, size: number, password: number): number {\n const data = HEAPU8.slice(buf, buf + size);\n const header = String.fromCharCode(...data.slice(0, 5));\n if (header !== '%PDF-') { lastError = 1; return 0; }\n const handle = nextDocHandle++;\n const pw = password ? module.UTF8ToString(password) : null;\n const content = new TextDecoder().decode(data);\n const pageMatches = content.match(/\\/Type\\s*\\/Page[^s]/g);\n const pageCount = pageMatches ? pageMatches.length : 1;\n documents.set(handle, { data, pageCount, password: pw });\n lastError = 0;\n return handle;\n },\n\n _FPDF_CloseDocument(doc: number) { documents.delete(doc); },\n _FPDF_GetLastError() { return lastError; },\n _FPDF_GetPageCount(doc: number) { return documents.get(doc)?.pageCount ?? 0; },\n\n _FPDF_LoadPage(doc: number, pageIndex: number): number {\n const d = documents.get(doc);\n if (!d || pageIndex < 0 || pageIndex >= d.pageCount) return 0;\n const handle = nextPageHandle++;\n pages.set(handle, { docHandle: doc, pageIndex, width: 612, height: 792 });\n return handle;\n },\n _FPDF_ClosePage(page: number) { pages.delete(page); },\n _FPDF_GetPageWidthF(page: number) { return pages.get(page)?.width ?? 0; },\n _FPDF_GetPageHeightF(page: number) { return pages.get(page)?.height ?? 0; },\n\n _FPDFBitmap_Create(width: number, height: number, _alpha: number): number {\n const stride = width * 4;\n const bufSize = stride * height;\n const buffer = malloc(bufSize);\n HEAPU8.fill(255, buffer, buffer + bufSize);\n const handle = nextBitmapHandle++;\n bitmaps.set(handle, { width, height, buffer, stride });\n return handle;\n },\n _FPDFBitmap_FillRect(bitmap: number, left: number, top: number, width: number, height: number, color: number) {\n const bmp = bitmaps.get(bitmap);\n if (!bmp) return;\n const r = (color >> 24) & 0xff, g = (color >> 16) & 0xff, b = (color >> 8) & 0xff, a = color & 0xff;\n for (let y = top; y < top + height && y < bmp.height; y++) {\n for (let x = left; x < left + width && x < bmp.width; x++) {\n const offset = bmp.buffer + y * bmp.stride + x * 4;\n HEAPU8[offset] = b; HEAPU8[offset + 1] = g; HEAPU8[offset + 2] = r; HEAPU8[offset + 3] = a;\n }\n }\n },\n _FPDFBitmap_GetBuffer(bitmap: number) { return bitmaps.get(bitmap)?.buffer ?? 0; },\n _FPDFBitmap_GetStride(bitmap: number) { return bitmaps.get(bitmap)?.stride ?? 0; },\n _FPDFBitmap_Destroy(bitmap: number) { bitmaps.delete(bitmap); },\n\n _FPDF_RenderPageBitmap() {},\n\n _FPDFText_LoadPage(page: number): number {\n if (!pages.has(page)) return 0;\n const handle = nextTextPageHandle++;\n textPages.set(handle, { pageHandle: page, text: 'Sample PDF text content for page.' });\n return handle;\n },\n _FPDFText_ClosePage(textPage: number) { textPages.delete(textPage); },\n _FPDFText_CountChars(textPage: number) { return textPages.get(textPage)?.text.length ?? 0; },\n _FPDFText_GetUnicode(textPage: number, index: number) {\n const tp = textPages.get(textPage);\n return tp ? tp.text.charCodeAt(index) : 0;\n },\n _FPDFText_GetFontSize(textPage: number, _index: number) { return textPages.has(textPage) ? 12.0 : 0; },\n _FPDFText_GetCharBox(textPage: number, index: number, leftPtr: number, rightPtr: number, bottomPtr: number, topPtr: number): number {\n if (!textPages.has(textPage)) return 0;\n const charWidth = 7.2;\n const x = (index % 80) * charWidth;\n const y = 792 - Math.floor(index / 80) * 14;\n HEAPF64[leftPtr >> 3] = x;\n HEAPF64[rightPtr >> 3] = x + charWidth;\n HEAPF64[bottomPtr >> 3] = y - 12;\n HEAPF64[topPtr >> 3] = y;\n return 1;\n },\n _FPDFText_GetText(textPage: number, startIndex: number, count: number, buf: number): number {\n const tp = textPages.get(textPage);\n if (!tp) return 0;\n const sub = tp.text.slice(startIndex, startIndex + count);\n module.stringToUTF16(sub, buf, (count + 1) * 2);\n return sub.length;\n },\n _FPDFText_FindStart(textPage: number, findWhat: number, flags: number, startIndex: number): number {\n const tp = textPages.get(textPage);\n if (!tp) return 0;\n const query = module.UTF16ToString(findWhat);\n const caseSensitive = (flags & 0x01) !== 0;\n const handle = nextSearchHandle++;\n searches.set(handle, { tpHandle: textPage, needle: query, caseSensitive, pos: startIndex, matchIdx: -1, matchLen: query.length });\n return handle;\n },\n _FPDFText_FindNext(findHandle: number): number {\n const state = searches.get(findHandle);\n if (!state) return 0;\n const tp = textPages.get(state.tpHandle);\n if (!tp) return 0;\n const text = state.caseSensitive ? tp.text : tp.text.toLowerCase();\n const needle = state.caseSensitive ? state.needle : state.needle.toLowerCase();\n const idx = text.indexOf(needle, state.pos);\n if (idx < 0) { state.matchIdx = -1; return 0; }\n state.matchIdx = idx;\n state.pos = idx + 1;\n return 1;\n },\n _FPDFText_FindClose(findHandle: number) { searches.delete(findHandle); },\n _FPDFText_GetSchResultIndex(findHandle: number): number { return searches.get(findHandle)?.matchIdx ?? -1; },\n _FPDFText_GetSchCount(findHandle: number): number { return searches.get(findHandle)?.matchLen ?? 0; },\n _FPDFText_CountRects(textPage: number, _startIndex: number, _count: number): number { return textPages.has(textPage) ? 1 : 0; },\n _FPDFText_GetRect(textPage: number, _rectIndex: number, leftPtr: number, topPtr: number, rightPtr: number, bottomPtr: number): number {\n if (!textPages.has(textPage)) return 0;\n HEAPF64[leftPtr >> 3] = 72; HEAPF64[topPtr >> 3] = 720;\n HEAPF64[rightPtr >> 3] = 540; HEAPF64[bottomPtr >> 3] = 708;\n return 1;\n },\n\n _FPDF_GetMetaText(doc: number, tag: number, buf: number, bufLen: number): number {\n if (!documents.has(doc)) return 0;\n const tagStr = module.UTF8ToString(tag);\n const meta: Record<string, string> = {\n Title: 'Untitled', Author: '', Subject: '', Keywords: '',\n Creator: 'pdfnova', Producer: 'pdfnova', CreationDate: '', ModDate: '',\n };\n const value = meta[tagStr] ?? '';\n if (bufLen === 0) return (value.length + 1) * 2;\n module.stringToUTF16(value, buf, bufLen);\n return (value.length + 1) * 2;\n },\n\n _FPDFBookmark_GetFirstChild(_doc: number, _bookmark: number) { return 0; },\n _FPDFBookmark_GetNextSibling(_doc: number, _bookmark: number) { return 0; },\n _FPDFBookmark_GetTitle(_bookmark: number, _buf: number, _bufLen: number) { return 0; },\n _FPDFBookmark_GetAction(_bookmark: number) { return 0; },\n _FPDFBookmark_GetDest(_doc: number, _bookmark: number) { return 0; },\n _FPDFDest_GetDestPageIndex(_doc: number, _dest: number) { return 0; },\n\n _FPDFLink_LoadWebLinks(_textPage: number) { return 0; },\n _FPDFLink_CountWebLinks(_linkPage: number) { return 0; },\n _FPDFLink_GetURL(_linkPage: number, _linkIndex: number, _buf: number, _bufLen: number) { return 0; },\n _FPDFLink_CountRects(_linkPage: number, _linkIndex: number) { return 0; },\n _FPDFLink_GetRect() {},\n _FPDFLink_CloseWebLinks(_linkPage: number) {},\n\n _FPDFPage_GetAnnotCount(page: number) { return pages.has(page) ? 0 : 0; },\n _FPDFPage_GetAnnot(_page: number, _index: number) { return 0; },\n _FPDFPage_CreateAnnot(_page: number, _subtype: number) { return malloc(8); },\n _FPDFPage_RemoveAnnot(_page: number, _index: number) { return 1; },\n _FPDFAnnot_GetSubtype(_annot: number) { return 0; },\n _FPDFAnnot_GetRect(_annot: number, _rect: number) { return 1; },\n _FPDFAnnot_SetRect(_annot: number, _rect: number) { return 1; },\n _FPDFAnnot_GetColor(_annot: number, _type: number, _r: number, _g: number, _b: number, _a: number) { return 1; },\n _FPDFAnnot_SetColor(_annot: number, _type: number, _r: number, _g: number, _b: number, _a: number) { return 1; },\n _FPDFAnnot_GetStringValue(_annot: number, _key: number, _buf: number, _bufLen: number) { return 0; },\n _FPDFAnnot_SetStringValue(_annot: number, _key: number, _value: number) { return 1; },\n _FPDFAnnot_AppendAttachmentPoints(_annot: number, _points: number) { return 1; },\n _FPDFAnnot_CountAttachmentPoints(_annot: number) { return 0; },\n _FPDFAnnot_GetAttachmentPoints(_annot: number, _index: number, _points: number) { return 1; },\n _FPDFPage_CloseAnnot(_annot: number) {},\n\n _FPDFDOC_InitFormFillEnvironment(_doc: number, _formInfo: number) { return malloc(8); },\n _FPDFDOC_ExitFormFillEnvironment(_formHandle: number) {},\n _FPDF_GetFormType(_doc: number) { return 0; },\n _FPDFPage_HasFormFieldAtPoint(_formHandle: number, _page: number, _x: number, _y: number) { return -1; },\n _FORM_OnMouseMove(_formHandle: number, _page: number, _modifier: number, _x: number, _y: number) {},\n\n _FPDFAnnot_GetFormFieldType(_formHandle: number, _annot: number) { return -1; },\n _FPDFAnnot_GetFormFieldName(_formHandle: number, _annot: number, _buf: number, _bufLen: number) { return 0; },\n _FPDFAnnot_GetFormFieldValue(_formHandle: number, _annot: number, _buf: number, _bufLen: number) { return 0; },\n _FPDFAnnot_SetFormFieldValue(_formHandle: number, _annot: number, _value: number) {},\n _FPDFAnnot_GetFormFieldFlags(_formHandle: number, _annot: number) { return 0; },\n _FPDFAnnot_IsChecked(_formHandle: number, _annot: number) { return 0; },\n\n _FPDFPage_Flatten(_page: number, _usage: number) { return 1; },\n\n _FPDF_SaveAsCopy(_doc: number, _writer: number, _flags: number) { return 1; },\n _FPDF_SaveWithVersion(_doc: number, _writer: number, _flags: number, _version: number) { return 1; },\n\n _FPDF_GetSignatureCount(_doc: number) { return 0; },\n _FPDF_GetSignatureObject(_doc: number, _index: number) { return 0; },\n _FPDFSignObj_GetContents(_sig: number, _buf: number, _bufLen: number) { return 0; },\n _FPDFSignObj_GetByteRange(_sig: number, _buf: number, _bufLen: number) { return 0; },\n _FPDFSignObj_GetSubFilter(_sig: number, _buf: number, _bufLen: number) { return 0; },\n _FPDFSignObj_GetReason(_sig: number, _buf: number, _bufLen: number) { return 0; },\n _FPDFSignObj_GetTime(_sig: number, _buf: number, _bufLen: number) { return 0; },\n _FPDFSignObj_GetDocMDPPermission(_sig: number) { return 0; },\n\n UTF8ToString(ptr: number): string {\n let end = ptr;\n while (HEAPU8[end] !== 0) end++;\n return new TextDecoder().decode(HEAPU8.slice(ptr, end));\n },\n UTF16ToString(ptr: number): string {\n const u16 = new Uint16Array(heap, ptr);\n let str = '';\n for (let i = 0; u16[i] !== 0; i++) str += String.fromCharCode(u16[i]);\n return str;\n },\n stringToUTF8(str: string, outPtr: number, maxBytes: number) {\n const encoded = new TextEncoder().encode(str);\n const len = Math.min(encoded.length, maxBytes - 1);\n HEAPU8.set(encoded.subarray(0, len), outPtr);\n HEAPU8[outPtr + len] = 0;\n },\n stringToUTF16(str: string, outPtr: number, maxBytes: number) {\n const u16 = new Uint16Array(heap, outPtr, maxBytes >> 1);\n for (let i = 0; i < str.length && i < (maxBytes >> 1) - 1; i++) {\n u16[i] = str.charCodeAt(i);\n }\n if (str.length < (maxBytes >> 1)) u16[str.length] = 0;\n },\n lengthBytesUTF8(str: string): number {\n return new TextEncoder().encode(str).length;\n },\n lengthBytesUTF16(str: string): number {\n return str.length * 2;\n },\n };\n\n return module;\n}\n"]}
|