@zaowu-labs/doc 1.0.6 → 1.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/README.md +28 -1
- package/dist/docx.d.ts +2 -0
- package/dist/docx.d.ts.map +1 -0
- package/dist/docx.js +226 -0
- package/dist/docx.js.map +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +102 -178
- package/dist/index.js.map +1 -1
- package/dist/markdown.d.ts +12 -0
- package/dist/markdown.d.ts.map +1 -0
- package/dist/markdown.js +35 -0
- package/dist/markdown.js.map +1 -0
- package/dist/pdf.d.ts +27 -0
- package/dist/pdf.d.ts.map +1 -0
- package/dist/pdf.js +153 -0
- package/dist/pdf.js.map +1 -0
- package/package.json +4 -6
package/README.md
CHANGED
|
@@ -19,7 +19,7 @@ canvas warning during the dynamic import. This is a contained, documented
|
|
|
19
19
|
workaround.
|
|
20
20
|
|
|
21
21
|
Long-term we would prefer a pure-JS text-only PDF extractor that does not
|
|
22
|
-
require these shims. See the source comments in `src/
|
|
22
|
+
require these shims. See the source comments in `src/pdf.ts` (functions
|
|
23
23
|
`ensurePdfTextRuntime` and `importPdfParse`) for the full explanation and
|
|
24
24
|
the class names used for the shims.
|
|
25
25
|
|
|
@@ -28,3 +28,30 @@ Safety:
|
|
|
28
28
|
- Document conversion previews by default when an output path is supplied.
|
|
29
29
|
- Confirmed writes refuse unsafe overwrites.
|
|
30
30
|
- Format support should stay explicit in command help and docs.
|
|
31
|
+
|
|
32
|
+
## Extraction contract and limits
|
|
33
|
+
|
|
34
|
+
DOCX uses the existing focused JSZip and xmldom libraries directly, removing
|
|
35
|
+
Mammoth and its unused CLI dependency chain. It preserves main-body paragraphs,
|
|
36
|
+
heading styles (including inherited/strict namespaces), list structure, tables,
|
|
37
|
+
and HTTP(S)/mailto hyperlinks. It never follows external relationships, extracts
|
|
38
|
+
archives to disk, or runs macros. Literal Word text is escaped for Markdown.
|
|
39
|
+
Footnotes, images/OCR, complex layout, embedded objects, and tracked deletions
|
|
40
|
+
are outside this text extraction contract. Re-export complex documents as text
|
|
41
|
+
when exact visual fidelity matters.
|
|
42
|
+
|
|
43
|
+
Input files are limited to 20 MiB; requested DOCX XML parts to 8 MiB each and
|
|
44
|
+
2,000 archive entries; extracted text to two million characters. DTD/entity
|
|
45
|
+
XML and excessive nesting are rejected. XML budgets apply to actual inflated
|
|
46
|
+
bytes. PDF extraction with no text layer explains how to use OCR rather than
|
|
47
|
+
returning a misleading successful empty summary. Concurrent PDF extraction
|
|
48
|
+
serializes temporary runtime shims and restores the original globals.
|
|
49
|
+
|
|
50
|
+
`summary` explicitly reports `method: "extractive"`: it takes the first three
|
|
51
|
+
prose lines, without calling a model. Frontmatter, fenced code, and headings do
|
|
52
|
+
not become summary prose; fenced examples do not create false outline headings.
|
|
53
|
+
See [the report-to-model recipe](../../docs/WORKFLOWS.md).
|
|
54
|
+
|
|
55
|
+
Confirmation execution also checks the freshly prepared content against the
|
|
56
|
+
already verified plan immediately before the write/request. Changes between
|
|
57
|
+
reads fail with `OPERATION_PLAN_MISMATCH` and produce no write or network call.
|
package/dist/docx.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"docx.d.ts","sourceRoot":"","sources":["../src/docx.ts"],"names":[],"mappings":"AA+FA,eAAO,MAAM,WAAW,GAAU,QAAQ,MAAM,EAAE,QAAQ,UAAU,GAAG,MAAM,KAAG,OAAO,CAAC,MAAM,CAmI7F,CAAC"}
|
package/dist/docx.js
ADDED
|
@@ -0,0 +1,226 @@
|
|
|
1
|
+
import JSZip from 'jszip';
|
|
2
|
+
import { DOMParser } from '@xmldom/xmldom';
|
|
3
|
+
import { ZaoWuError } from '@zaowu-labs/core';
|
|
4
|
+
const WORD_NAMESPACES = new Set([
|
|
5
|
+
'http://schemas.openxmlformats.org/wordprocessingml/2006/main',
|
|
6
|
+
'http://purl.oclc.org/ooxml/wordprocessingml/main',
|
|
7
|
+
]);
|
|
8
|
+
const MAX_XML_BYTES = 8 * 1024 * 1024;
|
|
9
|
+
const MAX_DEPTH = 100;
|
|
10
|
+
const invalidDocx = () => new Error('Invalid or unsupported DOCX XML.');
|
|
11
|
+
const tooLarge = () => new ZaoWuError({
|
|
12
|
+
code: 'DOCUMENT_INPUT_TOO_LARGE',
|
|
13
|
+
message: 'Document is too large to extract safely.',
|
|
14
|
+
why: 'A DOCX XML part exceeds 8 MiB, the archive exceeds 2,000 entries, or XML nesting exceeds 100 levels.',
|
|
15
|
+
fix: 'Split the document or export a smaller text-only copy.',
|
|
16
|
+
});
|
|
17
|
+
const children = (element) => {
|
|
18
|
+
const result = [];
|
|
19
|
+
for (let node = element.firstChild; node; node = node.nextSibling) {
|
|
20
|
+
if (node.nodeType === 1)
|
|
21
|
+
result.push(node);
|
|
22
|
+
}
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
25
|
+
const word = (node, name) => WORD_NAMESPACES.has(node.namespaceURI ?? '') && node.localName === name;
|
|
26
|
+
const child = (node, name) => node && children(node).find((item) => word(item, name));
|
|
27
|
+
const attr = (node, name) => {
|
|
28
|
+
if (!node)
|
|
29
|
+
return '';
|
|
30
|
+
for (const ns of WORD_NAMESPACES) {
|
|
31
|
+
if (node.hasAttributeNS(ns, name))
|
|
32
|
+
return node.getAttributeNS(ns, name) ?? '';
|
|
33
|
+
}
|
|
34
|
+
return '';
|
|
35
|
+
};
|
|
36
|
+
/** Pause the decompressor on actual inflated bytes, not ZIP size claims. */
|
|
37
|
+
const readXml = async (zip, name, required = false) => {
|
|
38
|
+
const entry = zip.file(name);
|
|
39
|
+
if (!entry) {
|
|
40
|
+
if (required)
|
|
41
|
+
throw invalidDocx();
|
|
42
|
+
return undefined;
|
|
43
|
+
}
|
|
44
|
+
const xml = await new Promise((resolve, reject) => {
|
|
45
|
+
let size = 0;
|
|
46
|
+
const chunks = [];
|
|
47
|
+
const stream = entry.nodeStream('nodebuffer');
|
|
48
|
+
stream.on('data', (chunk) => {
|
|
49
|
+
size += chunk.length;
|
|
50
|
+
if (size > MAX_XML_BYTES) {
|
|
51
|
+
stream.pause();
|
|
52
|
+
reject(tooLarge());
|
|
53
|
+
return;
|
|
54
|
+
}
|
|
55
|
+
chunks.push(chunk);
|
|
56
|
+
});
|
|
57
|
+
stream.on('error', reject);
|
|
58
|
+
stream.on('end', () => resolve(Buffer.concat(chunks).toString('utf8')));
|
|
59
|
+
stream.resume();
|
|
60
|
+
});
|
|
61
|
+
if (/<!\s*(?:DOCTYPE|ENTITY)\b/i.test(xml))
|
|
62
|
+
throw invalidDocx();
|
|
63
|
+
let malformed = false;
|
|
64
|
+
const document = new DOMParser({
|
|
65
|
+
errorHandler: () => {
|
|
66
|
+
malformed = true;
|
|
67
|
+
},
|
|
68
|
+
}).parseFromString(xml, 'application/xml');
|
|
69
|
+
if (malformed || !document.documentElement)
|
|
70
|
+
throw invalidDocx();
|
|
71
|
+
const stack = [[document.documentElement, 1]];
|
|
72
|
+
while (stack.length) {
|
|
73
|
+
const [element, depth] = stack.pop();
|
|
74
|
+
if (depth > MAX_DEPTH)
|
|
75
|
+
throw tooLarge();
|
|
76
|
+
for (const elementChild of children(element))
|
|
77
|
+
stack.push([elementChild, depth + 1]);
|
|
78
|
+
}
|
|
79
|
+
return document;
|
|
80
|
+
};
|
|
81
|
+
const safeLink = (target) => {
|
|
82
|
+
try {
|
|
83
|
+
const url = new URL(target);
|
|
84
|
+
if (!['https:', 'http:', 'mailto:'].includes(url.protocol))
|
|
85
|
+
return undefined;
|
|
86
|
+
if (url.username || url.password)
|
|
87
|
+
return undefined;
|
|
88
|
+
return url.toString().replaceAll('(', '%28').replaceAll(')', '%29');
|
|
89
|
+
}
|
|
90
|
+
catch {
|
|
91
|
+
return undefined;
|
|
92
|
+
}
|
|
93
|
+
};
|
|
94
|
+
export const extractDocx = async (buffer, format) => {
|
|
95
|
+
const zip = await JSZip.loadAsync(buffer);
|
|
96
|
+
if (Object.keys(zip.files).length > 2_000)
|
|
97
|
+
throw tooLarge();
|
|
98
|
+
// Read only known parts. Never follow internal paths or external relationships.
|
|
99
|
+
const document = await readXml(zip, 'word/document.xml', true);
|
|
100
|
+
const styles = await readXml(zip, 'word/styles.xml');
|
|
101
|
+
const numbering = await readXml(zip, 'word/numbering.xml');
|
|
102
|
+
const relationships = await readXml(zip, 'word/_rels/document.xml.rels');
|
|
103
|
+
const root = document.documentElement;
|
|
104
|
+
if (!word(root, 'document'))
|
|
105
|
+
throw invalidDocx();
|
|
106
|
+
const body = child(root, 'body');
|
|
107
|
+
if (!body)
|
|
108
|
+
throw invalidDocx();
|
|
109
|
+
const links = new Map();
|
|
110
|
+
if (relationships) {
|
|
111
|
+
for (const rel of children(relationships.documentElement)) {
|
|
112
|
+
if (rel.localName !== 'Relationship' || rel.getAttribute('TargetMode') !== 'External')
|
|
113
|
+
continue;
|
|
114
|
+
if (!(rel.getAttribute('Type') ?? '').endsWith('/hyperlink'))
|
|
115
|
+
continue;
|
|
116
|
+
const target = safeLink(rel.getAttribute('Target') ?? '');
|
|
117
|
+
if (target)
|
|
118
|
+
links.set(rel.getAttribute('Id') ?? '', target);
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
const styleMap = new Map();
|
|
122
|
+
if (styles) {
|
|
123
|
+
for (const style of children(styles.documentElement)) {
|
|
124
|
+
if (!word(style, 'style'))
|
|
125
|
+
continue;
|
|
126
|
+
const id = attr(style, 'styleId');
|
|
127
|
+
const outline = attr(child(child(style, 'pPr'), 'outlineLvl'), 'val');
|
|
128
|
+
const name = attr(child(style, 'name'), 'val');
|
|
129
|
+
const match = /^(?:heading|标题)\s*([1-6])$/i.exec(name || id);
|
|
130
|
+
const level = outline && /^[0-5]$/.test(outline)
|
|
131
|
+
? Number(outline) + 1
|
|
132
|
+
: match
|
|
133
|
+
? Number(match[1])
|
|
134
|
+
: undefined;
|
|
135
|
+
styleMap.set(id, { level, basedOn: attr(child(style, 'basedOn'), 'val') });
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
const styleLevel = (id, seen = new Set()) => {
|
|
139
|
+
if (seen.has(id) || seen.size >= MAX_DEPTH)
|
|
140
|
+
return undefined;
|
|
141
|
+
seen.add(id);
|
|
142
|
+
const style = styleMap.get(id);
|
|
143
|
+
return (style?.level ??
|
|
144
|
+
(style?.basedOn ? styleLevel(style.basedOn, seen) : undefined) ??
|
|
145
|
+
(/^Heading([1-6])$/i.test(id) ? Number(id.slice(-1)) : undefined));
|
|
146
|
+
};
|
|
147
|
+
const numIds = new Map();
|
|
148
|
+
const numFormats = new Map();
|
|
149
|
+
if (numbering) {
|
|
150
|
+
for (const item of children(numbering.documentElement)) {
|
|
151
|
+
if (word(item, 'num'))
|
|
152
|
+
numIds.set(attr(item, 'numId'), attr(child(item, 'abstractNumId'), 'val'));
|
|
153
|
+
if (word(item, 'abstractNum')) {
|
|
154
|
+
for (const level of children(item).filter((node) => word(node, 'lvl'))) {
|
|
155
|
+
numFormats.set(`${attr(item, 'abstractNumId')}:${attr(level, 'ilvl')}`, attr(child(level, 'numFmt'), 'val'));
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
const inline = (element) => {
|
|
161
|
+
if (word(element, 'del') || word(element, 'instrText') || word(element, 'pPr'))
|
|
162
|
+
return '';
|
|
163
|
+
if (word(element, 't')) {
|
|
164
|
+
const text = element.textContent ?? '';
|
|
165
|
+
return format === 'markdown' ? text.replace(/[\\`*_[\]<>#]/g, '\\$&') : text;
|
|
166
|
+
}
|
|
167
|
+
if (word(element, 'tab'))
|
|
168
|
+
return '\t';
|
|
169
|
+
if (word(element, 'br') || word(element, 'cr'))
|
|
170
|
+
return '\n';
|
|
171
|
+
let text = children(element).map(inline).join('');
|
|
172
|
+
if (format === 'markdown' && word(element, 'hyperlink')) {
|
|
173
|
+
const id = element.getAttribute('r:id') ||
|
|
174
|
+
element.getAttributeNS('http://schemas.openxmlformats.org/officeDocument/2006/relationships', 'id');
|
|
175
|
+
const target = links.get(id ?? '');
|
|
176
|
+
if (target && text)
|
|
177
|
+
text = `[${text}](${target})`;
|
|
178
|
+
}
|
|
179
|
+
return text;
|
|
180
|
+
};
|
|
181
|
+
const paragraph = (element) => {
|
|
182
|
+
const text = inline(element).trim();
|
|
183
|
+
if (!text || format === 'text')
|
|
184
|
+
return text;
|
|
185
|
+
const properties = child(element, 'pPr');
|
|
186
|
+
const outline = attr(child(properties, 'outlineLvl'), 'val');
|
|
187
|
+
const level = /^[0-5]$/.test(outline)
|
|
188
|
+
? Number(outline) + 1
|
|
189
|
+
: styleLevel(attr(child(properties, 'pStyle'), 'val'));
|
|
190
|
+
if (level)
|
|
191
|
+
return `${'#'.repeat(level)} ${text}`;
|
|
192
|
+
const numPr = child(properties, 'numPr');
|
|
193
|
+
const numId = attr(child(numPr, 'numId'), 'val');
|
|
194
|
+
if (numId && numId !== '0') {
|
|
195
|
+
const ilvl = attr(child(numPr, 'ilvl'), 'val') || '0';
|
|
196
|
+
const indent = ' '.repeat(Math.min(8, Number(ilvl) || 0));
|
|
197
|
+
const marker = numFormats.get(`${numIds.get(numId)}:${ilvl}`) === 'bullet' ? '-' : '1.';
|
|
198
|
+
return `${indent}${marker} ${text}`;
|
|
199
|
+
}
|
|
200
|
+
return text;
|
|
201
|
+
};
|
|
202
|
+
const blocks = (element) => children(element).flatMap((item) => {
|
|
203
|
+
if (word(item, 'p'))
|
|
204
|
+
return [paragraph(item)];
|
|
205
|
+
if (word(item, 'del'))
|
|
206
|
+
return [];
|
|
207
|
+
if (word(item, 'tbl')) {
|
|
208
|
+
const rows = children(item)
|
|
209
|
+
.filter((node) => word(node, 'tr'))
|
|
210
|
+
.map((row) => children(row)
|
|
211
|
+
.filter((node) => word(node, 'tc'))
|
|
212
|
+
.map((cell) => blocks(cell).filter(Boolean).join(' ')));
|
|
213
|
+
if (format === 'text')
|
|
214
|
+
return rows.map((row) => row.join('\t'));
|
|
215
|
+
const width = rows.reduce((max, row) => Math.max(max, row.length), 0);
|
|
216
|
+
const lines = rows.map((row) => `| ${Array.from({ length: width }, (_, i) => (row[i] ?? '').replaceAll('|', '\\|').replaceAll('\n', ' ')).join(' | ')} |`);
|
|
217
|
+
if (lines.length)
|
|
218
|
+
lines.splice(1, 0, `| ${Array(width).fill('---').join(' | ')} |`);
|
|
219
|
+
return lines;
|
|
220
|
+
}
|
|
221
|
+
// Structured document tags and inserted content may wrap normal blocks.
|
|
222
|
+
return blocks(item);
|
|
223
|
+
});
|
|
224
|
+
return blocks(body).join('\n').trim();
|
|
225
|
+
};
|
|
226
|
+
//# sourceMappingURL=docx.js.map
|
package/dist/docx.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"docx.js","sourceRoot":"","sources":["../src/docx.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { type DomainDefinition } from '@zaowu-labs/core';
|
|
2
2
|
export interface DocumentSummary {
|
|
3
|
+
method: 'extractive';
|
|
3
4
|
schemaVersion: 1;
|
|
4
5
|
status: 'ok';
|
|
5
6
|
filePath: string;
|
|
@@ -57,5 +58,6 @@ export declare const convertDocument: (inputPath: string, options?: {
|
|
|
57
58
|
outputPath?: string;
|
|
58
59
|
format?: "markdown" | "text";
|
|
59
60
|
yes?: boolean;
|
|
61
|
+
expectedContent?: string;
|
|
60
62
|
}) => Promise<DocumentConversion>;
|
|
61
63
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAOL,KAAK,gBAAgB,EACtB,MAAM,kBAAkB,CAAC;AAE1B,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,YAAY,CAAC;IACrB,aAAa,EAAE,CAAC,CAAC;IACjB,MAAM,EAAE,IAAI,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,eAAe;IAC9B,aAAa,EAAE,CAAC,CAAC;IACjB,MAAM,EAAE,IAAI,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,cAAc,EAAE,MAAM,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACrC;AAED,MAAM,WAAW,kBAAkB;IACjC,aAAa,EAAE,CAAC,CAAC;IACjB,MAAM,EAAE,IAAI,GAAG,SAAS,CAAC;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,UAAU,GAAG,MAAM,CAAC;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,eAAe;IAC9B,aAAa,EAAE,CAAC,CAAC;IACjB,MAAM,EAAE,IAAI,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,mBAAmB,EAAE,CAAC;CAChC;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,oBAAoB;IACnC,aAAa,EAAE,CAAC,CAAC;IACjB,MAAM,EAAE,IAAI,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,mBAAmB,EAAE,CAAC;CAChC;AAED,eAAO,MAAM,UAAU,EAAE,gBAmCxB,CAAC;AA6NF,eAAO,MAAM,iBAAiB,GAAU,UAAU,MAAM,KAAG,OAAO,CAAC,eAAe,CAgBjF,CAAC;AAEF,eAAO,MAAM,eAAe,GAAU,UAAU,MAAM,KAAG,OAAO,CAAC,eAAe,CAkB/E,CAAC;AAEF,eAAO,MAAM,eAAe,GAAU,UAAU,MAAM,KAAG,OAAO,CAAC,eAAe,CAS/E,CAAC;AAEF,eAAO,MAAM,cAAc,GACzB,UAAU,MAAM,EAChB,SAAS,MAAM,KACd,OAAO,CAAC,oBAAoB,CA6B9B,CAAC;AAEF,eAAO,MAAM,eAAe,GAC1B,WAAW,MAAM,EACjB,UAAS;IACP,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,UAAU,GAAG,MAAM,CAAC;IAC7B,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,eAAe,CAAC,EAAE,MAAM,CAAC;CACrB,KACL,OAAO,CAAC,kBAAkB,CA+C5B,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
|
-
import { readFile } from 'node:fs/promises';
|
|
2
1
|
import path from 'node:path';
|
|
3
|
-
import {
|
|
2
|
+
import { extractDocx } from './docx.js';
|
|
3
|
+
import { extractPdf } from './pdf.js';
|
|
4
|
+
import { scanMarkdown } from './markdown.js';
|
|
5
|
+
import { assertSafeOutputPath, createCapabilityLedger, stripUtf8Bom, readBoundedFile, writeTextFileExclusive, ZaoWuError, } from '@zaowu-labs/core';
|
|
4
6
|
export const DOC_DOMAIN = {
|
|
5
7
|
name: 'doc',
|
|
6
8
|
summary: 'Document workflows for summary, extraction, and conversion',
|
|
@@ -50,93 +52,6 @@ const SUPPORTED_TEXT_EXTENSIONS = new Set([
|
|
|
50
52
|
'.html',
|
|
51
53
|
'.htm',
|
|
52
54
|
]);
|
|
53
|
-
const PDF_SHIM_KEYS = ['DOMMatrix', 'ImageData', 'Path2D'];
|
|
54
|
-
let pdfParseModulePromise;
|
|
55
|
-
const ensurePdfTextRuntime = () => {
|
|
56
|
-
const runtime = globalThis;
|
|
57
|
-
// Minimal DOMMatrix shim sufficient for pdf-parse text extraction.
|
|
58
|
-
runtime.DOMMatrix ??= class ZaoWuPdfDomMatrix {
|
|
59
|
-
a = 1;
|
|
60
|
-
b = 0;
|
|
61
|
-
c = 0;
|
|
62
|
-
d = 1;
|
|
63
|
-
e = 0;
|
|
64
|
-
f = 0;
|
|
65
|
-
constructor(init) {
|
|
66
|
-
if (Array.isArray(init) && init.length >= 6) {
|
|
67
|
-
[this.a, this.b, this.c, this.d, this.e, this.f] = init.map(Number).slice(0, 6);
|
|
68
|
-
}
|
|
69
|
-
}
|
|
70
|
-
multiplySelf() {
|
|
71
|
-
return this;
|
|
72
|
-
}
|
|
73
|
-
preMultiplySelf() {
|
|
74
|
-
return this;
|
|
75
|
-
}
|
|
76
|
-
translateSelf() {
|
|
77
|
-
return this;
|
|
78
|
-
}
|
|
79
|
-
scaleSelf() {
|
|
80
|
-
return this;
|
|
81
|
-
}
|
|
82
|
-
rotateSelf() {
|
|
83
|
-
return this;
|
|
84
|
-
}
|
|
85
|
-
invertSelf() {
|
|
86
|
-
return this;
|
|
87
|
-
}
|
|
88
|
-
transformPoint(point = {}) {
|
|
89
|
-
return {
|
|
90
|
-
x: point.x ?? 0,
|
|
91
|
-
y: point.y ?? 0,
|
|
92
|
-
z: point.z ?? 0,
|
|
93
|
-
w: point.w ?? 1,
|
|
94
|
-
};
|
|
95
|
-
}
|
|
96
|
-
};
|
|
97
|
-
// Minimal ImageData shim.
|
|
98
|
-
runtime.ImageData ??= class ZaoWuPdfImageData {
|
|
99
|
-
data;
|
|
100
|
-
width;
|
|
101
|
-
height;
|
|
102
|
-
constructor(dataOrWidth, width = 0, height = 0) {
|
|
103
|
-
this.width = typeof dataOrWidth === 'number' ? dataOrWidth : width;
|
|
104
|
-
this.height = height;
|
|
105
|
-
this.data =
|
|
106
|
-
dataOrWidth instanceof Uint8ClampedArray
|
|
107
|
-
? dataOrWidth
|
|
108
|
-
: new Uint8ClampedArray(dataOrWidth * width * 4);
|
|
109
|
-
}
|
|
110
|
-
};
|
|
111
|
-
// Path2D is referenced but never actually used in our text-only path.
|
|
112
|
-
runtime.Path2D ??= class ZaoWuPdfPath2D {
|
|
113
|
-
};
|
|
114
|
-
};
|
|
115
|
-
const importPdfParse = async () => {
|
|
116
|
-
ensurePdfTextRuntime();
|
|
117
|
-
if (!pdfParseModulePromise) {
|
|
118
|
-
const originalWarn = console.warn;
|
|
119
|
-
// Only suppress the specific canvas-missing warning that pdf-parse emits
|
|
120
|
-
// when it can't find its optional native module. Everything else is passed
|
|
121
|
-
// through so we don't accidentally hide real problems.
|
|
122
|
-
console.warn = (...values) => {
|
|
123
|
-
const message = values.map(String).join(' ');
|
|
124
|
-
if (message.includes('Cannot load "@napi-rs/canvas" package')) {
|
|
125
|
-
return;
|
|
126
|
-
}
|
|
127
|
-
originalWarn(...values);
|
|
128
|
-
};
|
|
129
|
-
pdfParseModulePromise = import('pdf-parse')
|
|
130
|
-
.catch((error) => {
|
|
131
|
-
pdfParseModulePromise = undefined;
|
|
132
|
-
throw error;
|
|
133
|
-
})
|
|
134
|
-
.finally(() => {
|
|
135
|
-
console.warn = originalWarn;
|
|
136
|
-
});
|
|
137
|
-
}
|
|
138
|
-
return pdfParseModulePromise;
|
|
139
|
-
};
|
|
140
55
|
const assertSupportedDocument = (filePath) => {
|
|
141
56
|
const extension = path.extname(filePath).toLowerCase();
|
|
142
57
|
if (!SUPPORTED_TEXT_EXTENSIONS.has(extension)) {
|
|
@@ -148,16 +63,48 @@ const assertSupportedDocument = (filePath) => {
|
|
|
148
63
|
});
|
|
149
64
|
}
|
|
150
65
|
};
|
|
66
|
+
const stripHtmlBlocks = (html) => {
|
|
67
|
+
const uncommented = [];
|
|
68
|
+
let cursor = 0;
|
|
69
|
+
while (true) {
|
|
70
|
+
const start = html.indexOf('<!--', cursor);
|
|
71
|
+
if (start < 0) {
|
|
72
|
+
uncommented.push(html.slice(cursor));
|
|
73
|
+
break;
|
|
74
|
+
}
|
|
75
|
+
uncommented.push(html.slice(cursor, start));
|
|
76
|
+
const end = html.indexOf('-->', start + 4);
|
|
77
|
+
if (end < 0)
|
|
78
|
+
break;
|
|
79
|
+
cursor = end + 3;
|
|
80
|
+
}
|
|
81
|
+
const content = uncommented.join('');
|
|
82
|
+
const chunks = [];
|
|
83
|
+
const open = /<(head|script|style)\b[^<>]*>/gi;
|
|
84
|
+
cursor = 0;
|
|
85
|
+
let match;
|
|
86
|
+
while ((match = open.exec(content))) {
|
|
87
|
+
chunks.push(content.slice(cursor, match.index));
|
|
88
|
+
const close = new RegExp(`</${match[1]}\\s*>`, 'gi');
|
|
89
|
+
close.lastIndex = open.lastIndex;
|
|
90
|
+
const end = close.exec(content);
|
|
91
|
+
cursor = end ? close.lastIndex : content.length;
|
|
92
|
+
open.lastIndex = cursor;
|
|
93
|
+
if (!end)
|
|
94
|
+
break;
|
|
95
|
+
}
|
|
96
|
+
chunks.push(content.slice(cursor));
|
|
97
|
+
return chunks.join('');
|
|
98
|
+
};
|
|
151
99
|
const stripHtmlTags = (html) => {
|
|
152
|
-
let clean = html
|
|
153
|
-
clean = clean.replace(/<(
|
|
154
|
-
clean = clean.replace(/<h([1-6])\b[^>]*>/gi, (_match, level) => `${'#'.repeat(Number(level))} `);
|
|
100
|
+
let clean = stripHtmlBlocks(html);
|
|
101
|
+
clean = clean.replace(/<h([1-6])\b[^<>]*>/gi, (_match, level) => `${'#'.repeat(Number(level))} `);
|
|
155
102
|
clean = clean.replace(/<\/h[1-6]>\s*/gi, '\n');
|
|
156
103
|
clean = clean.replace(/<\/t[dh]>\s*/gi, ' | ');
|
|
157
104
|
clean = clean.replace(/<\/tr>\s*/gi, '\n');
|
|
158
105
|
clean = clean.replace(/<\/(p|div|li)>\s*/gi, '\n');
|
|
159
106
|
clean = clean.replace(/<br\s*\/?>\s*/gi, '\n');
|
|
160
|
-
clean = clean.replace(/<[
|
|
107
|
+
clean = clean.replace(/<[^<>]*>/g, ' ');
|
|
161
108
|
const decodeCodePoint = (match, codePoint) => {
|
|
162
109
|
if (!Number.isInteger(codePoint) || codePoint <= 0 || codePoint > 0x10ffff) {
|
|
163
110
|
return match;
|
|
@@ -193,75 +140,56 @@ const stripHtmlTags = (html) => {
|
|
|
193
140
|
const readTextDocument = async (filePath, format) => {
|
|
194
141
|
assertSupportedDocument(filePath);
|
|
195
142
|
const extension = path.extname(filePath).toLowerCase();
|
|
143
|
+
const buffer = await readBoundedFile(filePath, 20 * 1024 * 1024, {
|
|
144
|
+
failed: {
|
|
145
|
+
code: 'DOCUMENT_READ_FAILED',
|
|
146
|
+
message: 'Could not read document.',
|
|
147
|
+
why: `ZaoWu could not read \`${filePath}\` as a regular file.`,
|
|
148
|
+
fix: 'Check the path and file permissions, then run the command again.',
|
|
149
|
+
},
|
|
150
|
+
tooLarge: {
|
|
151
|
+
code: 'DOCUMENT_INPUT_TOO_LARGE',
|
|
152
|
+
message: 'Document is too large to extract safely.',
|
|
153
|
+
why: 'Document inputs are limited to 20 MiB.',
|
|
154
|
+
fix: 'Split the document or export a smaller text-only copy.',
|
|
155
|
+
},
|
|
156
|
+
});
|
|
196
157
|
try {
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
const parsed = await parser.getText();
|
|
214
|
-
return stripUtf8Bom(parsed.text ?? '');
|
|
215
|
-
}
|
|
216
|
-
finally {
|
|
217
|
-
await parser.destroy();
|
|
218
|
-
}
|
|
219
|
-
}
|
|
220
|
-
finally {
|
|
221
|
-
for (const { key, had, old } of saved) {
|
|
222
|
-
if (!had) {
|
|
223
|
-
delete runtime[key];
|
|
224
|
-
}
|
|
225
|
-
else {
|
|
226
|
-
runtime[key] = old;
|
|
227
|
-
}
|
|
228
|
-
}
|
|
229
|
-
}
|
|
230
|
-
}
|
|
231
|
-
if (extension === '.docx') {
|
|
232
|
-
const mammoth = await import('mammoth');
|
|
233
|
-
const mammothModule = mammoth;
|
|
234
|
-
// convertToMarkdown is a version-dependent mammoth export. Distinguish a
|
|
235
|
-
// missing capability from an unreadable file so the error is actionable.
|
|
236
|
-
if (format !== 'text' && typeof mammothModule.convertToMarkdown !== 'function') {
|
|
237
|
-
throw new ZaoWuError({
|
|
238
|
-
code: 'DOCUMENT_FORMAT_UNSUPPORTED',
|
|
239
|
-
message: 'DOCX markdown conversion is not available.',
|
|
240
|
-
why: 'The installed mammoth build does not provide `convertToMarkdown`, so ZaoWu cannot produce Markdown from this DOCX.',
|
|
241
|
-
fix: 'Use `--format text` for raw text extraction, or update the `mammoth` dependency to a build with markdown support.',
|
|
242
|
-
});
|
|
243
|
-
}
|
|
244
|
-
const parsed = format === 'text'
|
|
245
|
-
? await mammothModule.extractRawText({
|
|
246
|
-
buffer: await readFile(filePath),
|
|
247
|
-
})
|
|
248
|
-
: await mammothModule.convertToMarkdown({
|
|
249
|
-
buffer: await readFile(filePath),
|
|
250
|
-
});
|
|
251
|
-
return stripUtf8Bom(parsed.value);
|
|
158
|
+
let content;
|
|
159
|
+
if (extension === '.pdf')
|
|
160
|
+
content = await extractPdf(buffer);
|
|
161
|
+
else if (extension === '.docx')
|
|
162
|
+
content = await extractDocx(buffer, format ?? 'markdown');
|
|
163
|
+
else if (extension === '.html' || extension === '.htm')
|
|
164
|
+
content = stripHtmlTags(buffer.toString('utf8'));
|
|
165
|
+
else
|
|
166
|
+
content = buffer.toString('utf8');
|
|
167
|
+
if (content.length > 2_000_000) {
|
|
168
|
+
throw new ZaoWuError({
|
|
169
|
+
code: 'DOCUMENT_INPUT_TOO_LARGE',
|
|
170
|
+
message: 'Extracted document text is too large.',
|
|
171
|
+
why: 'Extracted text exceeds two million characters.',
|
|
172
|
+
fix: 'Split the document into smaller parts.',
|
|
173
|
+
});
|
|
252
174
|
}
|
|
253
|
-
if (extension === '.
|
|
254
|
-
|
|
255
|
-
|
|
175
|
+
if (extension === '.pdf' && !content.replace(/-- \d+ of \d+ --/g, '').trim()) {
|
|
176
|
+
throw new ZaoWuError({
|
|
177
|
+
code: 'DOCUMENT_TEXT_UNAVAILABLE',
|
|
178
|
+
message: 'PDF has no extractable text.',
|
|
179
|
+
why: 'The PDF may contain scanned images rather than a text layer. ZaoWu does not perform OCR.',
|
|
180
|
+
fix: 'Run OCR in your PDF editor and export a searchable PDF or text file, then try again.',
|
|
181
|
+
});
|
|
256
182
|
}
|
|
257
|
-
return stripUtf8Bom(
|
|
183
|
+
return stripUtf8Bom(content);
|
|
258
184
|
}
|
|
259
|
-
catch {
|
|
185
|
+
catch (error) {
|
|
186
|
+
if (error instanceof ZaoWuError)
|
|
187
|
+
throw error;
|
|
260
188
|
throw new ZaoWuError({
|
|
261
189
|
code: 'DOCUMENT_READ_FAILED',
|
|
262
190
|
message: 'Could not read document.',
|
|
263
|
-
why: `ZaoWu
|
|
264
|
-
fix: '
|
|
191
|
+
why: `ZaoWu could not extract text from \`${filePath}\`. The file may be corrupt, encrypted, or contain unsupported document structures.`,
|
|
192
|
+
fix: 'Open the file in its original editor, remove password protection if appropriate, and re-export it as PDF, DOCX, or plain text.',
|
|
265
193
|
});
|
|
266
194
|
}
|
|
267
195
|
};
|
|
@@ -281,11 +209,7 @@ const assertSafeDocumentOutputPath = (inputPath, outputPath) => assertSafeOutput
|
|
|
281
209
|
});
|
|
282
210
|
const getTitle = (content, filePath) => parseHeadings(content).find((heading) => heading.level === 1)?.title ?? path.basename(filePath);
|
|
283
211
|
const getWords = (content) => content.match(/[\p{L}\p{N}_-]+/gu) ?? [];
|
|
284
|
-
const getFirstMeaningfulLines = (content, count) => content
|
|
285
|
-
.split(/\r?\n/)
|
|
286
|
-
.map((line) => line.trim())
|
|
287
|
-
.filter((line) => line && !line.startsWith('#'))
|
|
288
|
-
.slice(0, count);
|
|
212
|
+
const getFirstMeaningfulLines = (content, count) => scanMarkdown(content).prose.slice(0, count);
|
|
289
213
|
const getFrontmatter = (content) => {
|
|
290
214
|
const lines = content.split(/\r?\n/);
|
|
291
215
|
if (lines[0] !== '---') {
|
|
@@ -304,19 +228,7 @@ const getFrontmatter = (content) => {
|
|
|
304
228
|
}
|
|
305
229
|
return frontmatter;
|
|
306
230
|
};
|
|
307
|
-
const parseHeadings = (content) => content
|
|
308
|
-
.split(/\r?\n/)
|
|
309
|
-
.map((line, index) => {
|
|
310
|
-
const match = /^(#{1,6})\s+(.+)$/.exec(line.trim());
|
|
311
|
-
return match
|
|
312
|
-
? {
|
|
313
|
-
level: match[1].length,
|
|
314
|
-
title: match[2].trim(),
|
|
315
|
-
line: index + 1,
|
|
316
|
-
}
|
|
317
|
-
: null;
|
|
318
|
-
})
|
|
319
|
-
.filter((item) => Boolean(item));
|
|
231
|
+
const parseHeadings = (content) => scanMarkdown(content).headings;
|
|
320
232
|
export const summarizeDocument = async (filePath) => {
|
|
321
233
|
const content = await readTextDocument(filePath);
|
|
322
234
|
const lines = content.split(/\r?\n/);
|
|
@@ -326,6 +238,7 @@ export const summarizeDocument = async (filePath) => {
|
|
|
326
238
|
schemaVersion: 1,
|
|
327
239
|
status: 'ok',
|
|
328
240
|
filePath,
|
|
241
|
+
method: 'extractive',
|
|
329
242
|
title: getTitle(content, filePath),
|
|
330
243
|
lineCount: lines.length,
|
|
331
244
|
wordCount: words.length,
|
|
@@ -334,9 +247,10 @@ export const summarizeDocument = async (filePath) => {
|
|
|
334
247
|
};
|
|
335
248
|
export const extractDocument = async (filePath) => {
|
|
336
249
|
const content = await readTextDocument(filePath);
|
|
337
|
-
const
|
|
338
|
-
const
|
|
339
|
-
const
|
|
250
|
+
const scan = scanMarkdown(content);
|
|
251
|
+
const headings = scan.headings.map((heading) => heading.title);
|
|
252
|
+
const links = [...content.matchAll(/(?<!\\)\[(?:\\.|[^[\]\\])+\]\(([^)]+)\)/gmu)].map((match) => match[1].trim());
|
|
253
|
+
const codeBlockCount = scan.codeBlockCount;
|
|
340
254
|
return {
|
|
341
255
|
schemaVersion: 1,
|
|
342
256
|
status: 'ok',
|
|
@@ -387,10 +301,20 @@ export const convertDocument = async (inputPath, options = {}) => {
|
|
|
387
301
|
const format = options.format ??
|
|
388
302
|
(path.extname(options.outputPath ?? '').toLowerCase() === '.txt' ? 'text' : 'markdown');
|
|
389
303
|
const content = await readTextDocument(inputPath, format);
|
|
390
|
-
const converted = format === 'text'
|
|
391
|
-
|
|
304
|
+
const converted = format === 'text' &&
|
|
305
|
+
['.md', '.markdown', '.html', '.htm'].includes(path.extname(inputPath).toLowerCase())
|
|
306
|
+
? content
|
|
307
|
+
.replace(/^#{1,6}\s+/gmu, '')
|
|
308
|
+
.replace(/(?<!\\)\[([^[\]\r\n]+)\]\([^)\r\n]+\)/gmu, '$1')
|
|
392
309
|
: content;
|
|
393
310
|
if (options.outputPath && options.yes) {
|
|
311
|
+
if (options.expectedContent !== undefined && converted !== options.expectedContent)
|
|
312
|
+
throw new ZaoWuError({
|
|
313
|
+
code: 'OPERATION_PLAN_MISMATCH',
|
|
314
|
+
message: 'Document content changed after plan verification.',
|
|
315
|
+
why: 'The converted output no longer matches the content authorized by the operation plan. No file was written.',
|
|
316
|
+
fix: 'Run the preview again and confirm its new fingerprint.',
|
|
317
|
+
});
|
|
394
318
|
await assertSafeDocumentOutputPath(inputPath, options.outputPath);
|
|
395
319
|
await writeTextFileExclusive(options.outputPath, converted, {
|
|
396
320
|
exists: {
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export interface MarkdownScan {
|
|
2
|
+
headings: Array<{
|
|
3
|
+
level: number;
|
|
4
|
+
title: string;
|
|
5
|
+
line: number;
|
|
6
|
+
}>;
|
|
7
|
+
prose: string[];
|
|
8
|
+
codeBlockCount: number;
|
|
9
|
+
}
|
|
10
|
+
/** Only real headings/prose participate: YAML metadata and fenced code do not. */
|
|
11
|
+
export declare const scanMarkdown: (content: string) => MarkdownScan;
|
|
12
|
+
//# sourceMappingURL=markdown.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"markdown.d.ts","sourceRoot":"","sources":["../src/markdown.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,KAAK,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAChE,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,kFAAkF;AAClF,eAAO,MAAM,YAAY,GAAI,SAAS,MAAM,KAAG,YA+B9C,CAAC"}
|
package/dist/markdown.js
ADDED
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/** Only real headings/prose participate: YAML metadata and fenced code do not. */
|
|
2
|
+
export const scanMarkdown = (content) => {
|
|
3
|
+
const result = { headings: [], prose: [], codeBlockCount: 0 };
|
|
4
|
+
const lines = content.split(/\r?\n/);
|
|
5
|
+
const frontmatterEnd = lines[0] === '---' ? lines.indexOf('---', 1) : -1;
|
|
6
|
+
let fence;
|
|
7
|
+
for (let index = 0; index < lines.length; index++) {
|
|
8
|
+
if (frontmatterEnd > 0 && index <= frontmatterEnd)
|
|
9
|
+
continue;
|
|
10
|
+
const line = lines[index];
|
|
11
|
+
const marker = /^ {0,3}(`{3,}|~{3,})(.*)$/.exec(line);
|
|
12
|
+
if (fence) {
|
|
13
|
+
if (marker &&
|
|
14
|
+
marker[1][0] === fence.marker &&
|
|
15
|
+
marker[1].length >= fence.length &&
|
|
16
|
+
!marker[2].trim())
|
|
17
|
+
fence = undefined;
|
|
18
|
+
continue;
|
|
19
|
+
}
|
|
20
|
+
if (marker) {
|
|
21
|
+
fence = { marker: marker[1][0], length: marker[1].length };
|
|
22
|
+
result.codeBlockCount++;
|
|
23
|
+
continue;
|
|
24
|
+
}
|
|
25
|
+
if (/^(?: {4}|\t)/.test(line))
|
|
26
|
+
continue;
|
|
27
|
+
const heading = /^ {0,3}(#{1,6})\s+(.+?)(?:\s+#+)?\s*$/.exec(line);
|
|
28
|
+
if (heading)
|
|
29
|
+
result.headings.push({ level: heading[1].length, title: heading[2].trim(), line: index + 1 });
|
|
30
|
+
else if (line.trim())
|
|
31
|
+
result.prose.push(line.trim());
|
|
32
|
+
}
|
|
33
|
+
return result;
|
|
34
|
+
};
|
|
35
|
+
//# sourceMappingURL=markdown.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"markdown.js","sourceRoot":"","sources":["../src/markdown.ts"],"names":[],"mappings":"AAMA,kFAAkF;AAClF,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,OAAe,EAAgB,EAAE;IAC5D,MAAM,MAAM,GAAiB,EAAE,QAAQ,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,cAAc,EAAE,CAAC,EAAE,CAAC;IAC5E,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IACrC,MAAM,cAAc,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACzE,IAAI,KAAqD,CAAC;IAC1D,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC;QAClD,IAAI,cAAc,GAAG,CAAC,IAAI,KAAK,IAAI,cAAc;YAAE,SAAS;QAC5D,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC;QAC1B,MAAM,MAAM,GAAG,2BAA2B,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACtD,IAAI,KAAK,EAAE,CAAC;YACV,IACE,MAAM;gBACN,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,MAAM;gBAC7B,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,IAAI,KAAK,CAAC,MAAM;gBAChC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;gBAEjB,KAAK,GAAG,SAAS,CAAC;YACpB,SAAS;QACX,CAAC;QACD,IAAI,MAAM,EAAE,CAAC;YACX,KAAK,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;YAC3D,MAAM,CAAC,cAAc,EAAE,CAAC;YACxB,SAAS;QACX,CAAC;QACD,IAAI,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC;YAAE,SAAS;QACxC,MAAM,OAAO,GAAG,uCAAuC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACnE,IAAI,OAAO;YACT,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC;aAC3F,IAAI,IAAI,CAAC,IAAI,EAAE;YAAE,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;IACvD,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC"}
|
package/dist/pdf.d.ts
ADDED
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* PDF text extraction runtime shims (foundation-phase workaround).
|
|
3
|
+
*
|
|
4
|
+
* pdf-parse (the library we use for .pdf -> text) has a hard/optional dependency
|
|
5
|
+
* on @napi-rs/canvas for its full rendering pipeline. Even when we only request
|
|
6
|
+
* text extraction, in many Node.js environments the module will:
|
|
7
|
+
* - log a noisy warning about the missing canvas package, and/or
|
|
8
|
+
* - assume certain DOM types (DOMMatrix, ImageData, Path2D) exist on the global.
|
|
9
|
+
*
|
|
10
|
+
* We therefore:
|
|
11
|
+
* 1. Provide minimal, no-op shims for those three types **only if they are
|
|
12
|
+
* not already present** on globalThis. This is the smallest possible
|
|
13
|
+
* intervention that makes pdf-parse's text path work.
|
|
14
|
+
* 2. Temporarily silence the exact canvas warning during the dynamic import.
|
|
15
|
+
*
|
|
16
|
+
* This is deliberately a "clever" but contained hack. It violates the spirit of
|
|
17
|
+
* "readable code over clever code" and "no magic without control". A proper
|
|
18
|
+
* long-term fix would be to replace pdf-parse with a pure-JS text extractor
|
|
19
|
+
* (pdf.js node build, unpdf, or similar) that has no canvas requirement.
|
|
20
|
+
*
|
|
21
|
+
* The shims are intentionally named with a ZaoWu prefix inside the class
|
|
22
|
+
* definitions so that stack traces / debug output make the origin obvious.
|
|
23
|
+
*
|
|
24
|
+
* See also: packages/doc/README.md (workaround documented).
|
|
25
|
+
*/
|
|
26
|
+
export declare const extractPdf: (buffer: Buffer) => Promise<string>;
|
|
27
|
+
//# sourceMappingURL=pdf.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pdf.d.ts","sourceRoot":"","sources":["../src/pdf.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AA0IH,eAAO,MAAM,UAAU,GAAU,QAAQ,MAAM,KAAG,OAAO,CAAC,MAAM,CAY/D,CAAC"}
|
package/dist/pdf.js
ADDED
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* PDF text extraction runtime shims (foundation-phase workaround).
|
|
3
|
+
*
|
|
4
|
+
* pdf-parse (the library we use for .pdf -> text) has a hard/optional dependency
|
|
5
|
+
* on @napi-rs/canvas for its full rendering pipeline. Even when we only request
|
|
6
|
+
* text extraction, in many Node.js environments the module will:
|
|
7
|
+
* - log a noisy warning about the missing canvas package, and/or
|
|
8
|
+
* - assume certain DOM types (DOMMatrix, ImageData, Path2D) exist on the global.
|
|
9
|
+
*
|
|
10
|
+
* We therefore:
|
|
11
|
+
* 1. Provide minimal, no-op shims for those three types **only if they are
|
|
12
|
+
* not already present** on globalThis. This is the smallest possible
|
|
13
|
+
* intervention that makes pdf-parse's text path work.
|
|
14
|
+
* 2. Temporarily silence the exact canvas warning during the dynamic import.
|
|
15
|
+
*
|
|
16
|
+
* This is deliberately a "clever" but contained hack. It violates the spirit of
|
|
17
|
+
* "readable code over clever code" and "no magic without control". A proper
|
|
18
|
+
* long-term fix would be to replace pdf-parse with a pure-JS text extractor
|
|
19
|
+
* (pdf.js node build, unpdf, or similar) that has no canvas requirement.
|
|
20
|
+
*
|
|
21
|
+
* The shims are intentionally named with a ZaoWu prefix inside the class
|
|
22
|
+
* definitions so that stack traces / debug output make the origin obvious.
|
|
23
|
+
*
|
|
24
|
+
* See also: packages/doc/README.md (workaround documented).
|
|
25
|
+
*/
|
|
26
|
+
const PDF_SHIM_KEYS = ['DOMMatrix', 'ImageData', 'Path2D'];
|
|
27
|
+
let pdfParseModulePromise;
|
|
28
|
+
const ensurePdfTextRuntime = () => {
|
|
29
|
+
const runtime = globalThis;
|
|
30
|
+
// Minimal DOMMatrix shim sufficient for pdf-parse text extraction.
|
|
31
|
+
runtime.DOMMatrix ??= class ZaoWuPdfDomMatrix {
|
|
32
|
+
a = 1;
|
|
33
|
+
b = 0;
|
|
34
|
+
c = 0;
|
|
35
|
+
d = 1;
|
|
36
|
+
e = 0;
|
|
37
|
+
f = 0;
|
|
38
|
+
constructor(init) {
|
|
39
|
+
if (Array.isArray(init) && init.length >= 6) {
|
|
40
|
+
[this.a, this.b, this.c, this.d, this.e, this.f] = init.map(Number).slice(0, 6);
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
multiplySelf() {
|
|
44
|
+
return this;
|
|
45
|
+
}
|
|
46
|
+
preMultiplySelf() {
|
|
47
|
+
return this;
|
|
48
|
+
}
|
|
49
|
+
translateSelf() {
|
|
50
|
+
return this;
|
|
51
|
+
}
|
|
52
|
+
scaleSelf() {
|
|
53
|
+
return this;
|
|
54
|
+
}
|
|
55
|
+
rotateSelf() {
|
|
56
|
+
return this;
|
|
57
|
+
}
|
|
58
|
+
invertSelf() {
|
|
59
|
+
return this;
|
|
60
|
+
}
|
|
61
|
+
transformPoint(point = {}) {
|
|
62
|
+
return {
|
|
63
|
+
x: point.x ?? 0,
|
|
64
|
+
y: point.y ?? 0,
|
|
65
|
+
z: point.z ?? 0,
|
|
66
|
+
w: point.w ?? 1,
|
|
67
|
+
};
|
|
68
|
+
}
|
|
69
|
+
};
|
|
70
|
+
// Minimal ImageData shim.
|
|
71
|
+
runtime.ImageData ??= class ZaoWuPdfImageData {
|
|
72
|
+
data;
|
|
73
|
+
width;
|
|
74
|
+
height;
|
|
75
|
+
constructor(dataOrWidth, width = 0, height = 0) {
|
|
76
|
+
this.width = typeof dataOrWidth === 'number' ? dataOrWidth : width;
|
|
77
|
+
this.height = height;
|
|
78
|
+
this.data =
|
|
79
|
+
dataOrWidth instanceof Uint8ClampedArray
|
|
80
|
+
? dataOrWidth
|
|
81
|
+
: new Uint8ClampedArray(dataOrWidth * width * 4);
|
|
82
|
+
}
|
|
83
|
+
};
|
|
84
|
+
// Path2D is referenced but never actually used in our text-only path.
|
|
85
|
+
runtime.Path2D ??= class ZaoWuPdfPath2D {
|
|
86
|
+
};
|
|
87
|
+
};
|
|
88
|
+
const importPdfParse = async () => {
|
|
89
|
+
ensurePdfTextRuntime();
|
|
90
|
+
if (!pdfParseModulePromise) {
|
|
91
|
+
const originalWarn = console.warn;
|
|
92
|
+
// Only suppress the specific canvas-missing warning that pdf-parse emits
|
|
93
|
+
// when it can't find its optional native module. Everything else is passed
|
|
94
|
+
// through so we don't accidentally hide real problems.
|
|
95
|
+
console.warn = (...values) => {
|
|
96
|
+
const message = values.map(String).join(' ');
|
|
97
|
+
if (message.includes('Cannot load "@napi-rs/canvas" package')) {
|
|
98
|
+
return;
|
|
99
|
+
}
|
|
100
|
+
originalWarn(...values);
|
|
101
|
+
};
|
|
102
|
+
pdfParseModulePromise = import('pdf-parse')
|
|
103
|
+
.catch((error) => {
|
|
104
|
+
pdfParseModulePromise = undefined;
|
|
105
|
+
throw error;
|
|
106
|
+
})
|
|
107
|
+
.finally(() => {
|
|
108
|
+
console.warn = originalWarn;
|
|
109
|
+
});
|
|
110
|
+
}
|
|
111
|
+
return pdfParseModulePromise;
|
|
112
|
+
};
|
|
113
|
+
const extractPdfInternal = async (buffer) => {
|
|
114
|
+
const runtime = globalThis;
|
|
115
|
+
const saved = PDF_SHIM_KEYS.map((key) => ({ key, had: key in runtime, old: runtime[key] }));
|
|
116
|
+
try {
|
|
117
|
+
const { PDFParse } = await importPdfParse();
|
|
118
|
+
const parser = new PDFParse({ data: new Uint8Array(buffer) });
|
|
119
|
+
try {
|
|
120
|
+
const parsed = await parser.getText();
|
|
121
|
+
return parsed.text ?? '';
|
|
122
|
+
}
|
|
123
|
+
finally {
|
|
124
|
+
await parser.destroy();
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
finally {
|
|
128
|
+
for (const { key, had, old } of saved) {
|
|
129
|
+
if (!had)
|
|
130
|
+
delete runtime[key];
|
|
131
|
+
else
|
|
132
|
+
runtime[key] = old;
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
};
|
|
136
|
+
// Global runtime shims belong to one extraction at a time. Concurrent library
|
|
137
|
+
// callers must not snapshot another extraction's temporary globals as originals.
|
|
138
|
+
let extractionQueue = Promise.resolve();
|
|
139
|
+
export const extractPdf = async (buffer) => {
|
|
140
|
+
const previous = extractionQueue;
|
|
141
|
+
let release;
|
|
142
|
+
extractionQueue = new Promise((resolve) => {
|
|
143
|
+
release = resolve;
|
|
144
|
+
});
|
|
145
|
+
await previous;
|
|
146
|
+
try {
|
|
147
|
+
return await extractPdfInternal(buffer);
|
|
148
|
+
}
|
|
149
|
+
finally {
|
|
150
|
+
release();
|
|
151
|
+
}
|
|
152
|
+
};
|
|
153
|
+
//# sourceMappingURL=pdf.js.map
|
package/dist/pdf.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pdf.js","sourceRoot":"","sources":["../src/pdf.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@zaowu-labs/doc",
|
|
3
|
-
"version": "1.0
|
|
3
|
+
"version": "1.1.0",
|
|
4
4
|
"description": "ZaoWu document workflows",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "Apache-2.0",
|
|
@@ -20,17 +20,15 @@
|
|
|
20
20
|
}
|
|
21
21
|
},
|
|
22
22
|
"dependencies": {
|
|
23
|
-
"
|
|
23
|
+
"@xmldom/xmldom": "^0.8.15",
|
|
24
|
+
"jszip": "^3.10.1",
|
|
24
25
|
"pdf-parse": "^2.4.5",
|
|
25
|
-
"@zaowu-labs/core": "1.0
|
|
26
|
+
"@zaowu-labs/core": "1.1.0"
|
|
26
27
|
},
|
|
27
28
|
"keywords": [
|
|
28
29
|
"zaowu",
|
|
29
30
|
"documents"
|
|
30
31
|
],
|
|
31
|
-
"devDependencies": {
|
|
32
|
-
"jszip": "^3.10.1"
|
|
33
|
-
},
|
|
34
32
|
"repository": {
|
|
35
33
|
"type": "git",
|
|
36
34
|
"url": "https://github.com/zaowu-labs/zaowu.git",
|