@extend-ai/react-docx 0.10.0 → 0.11.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 +6 -0
- package/dist/{chunk-YT56QNGH.js → chunk-PCMLHNDX.js} +61 -5
- package/dist/chunk-PCMLHNDX.js.map +1 -0
- package/dist/{chunk-6NVXVLTW.js → chunk-PTOOIOQG.js} +2 -2
- package/dist/{chunk-AKDFE4ZH.js → chunk-TPYS6CSH.js} +95 -1
- package/dist/chunk-TPYS6CSH.js.map +1 -0
- package/dist/dingbat-to-unicode-LICENSE +22 -0
- package/dist/docx-import-worker.cjs +7 -2
- package/dist/docx-import-worker.cjs.map +1 -1
- package/dist/docx-import-worker.js +2 -2
- package/dist/docx_wasm_bg.wasm +0 -0
- package/dist/index.cjs +54265 -47375
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +248 -3
- package/dist/index.d.ts +248 -3
- package/dist/index.js +53871 -47183
- package/dist/index.js.map +1 -1
- package/{LICENSE → dist/pretext-license.txt} +3 -1
- package/dist/{src-DEWCGIL2.js → src-GMKWPMPI.js} +3 -3
- package/dist/{src-NJTPUK4E.js → src-OXOGOJ7X.js} +11 -3
- package/package.json +2 -2
- package/dist/chunk-AKDFE4ZH.js.map +0 -1
- package/dist/chunk-YT56QNGH.js.map +0 -1
- /package/dist/{chunk-6NVXVLTW.js.map → chunk-PTOOIOQG.js.map} +0 -0
- /package/dist/{src-DEWCGIL2.js.map → src-GMKWPMPI.js.map} +0 -0
- /package/dist/{src-NJTPUK4E.js.map → src-OXOGOJ7X.js.map} +0 -0
package/README.md
CHANGED
|
@@ -244,6 +244,12 @@ async function attachViewerFont(face: FontFace) {
|
|
|
244
244
|
```
|
|
245
245
|
|
|
246
246
|
Provide matching font data and descriptors for each required weight and style.
|
|
247
|
+
If a reference renderer uses different vertical metrics for the same font,
|
|
248
|
+
the caller can supply verified `ascentOverride`, `descentOverride`, and
|
|
249
|
+
`lineGapOverride` descriptors on the `FontFace`. These affect browser layout
|
|
250
|
+
as well as viewer measurements. Bind such a profile to the actual font bytes
|
|
251
|
+
and reference environment; a family name or document charset alone does not
|
|
252
|
+
establish the correct metrics.
|
|
247
253
|
The caller owns loading and cleanup. Load fonts before creating a standalone
|
|
248
254
|
`createDocxThumbnailRenderer`; after changing fonts, dispose and recreate that
|
|
249
255
|
renderer to refresh its captured pagination.
|
|
@@ -2,8 +2,10 @@ import {
|
|
|
2
2
|
mapsToWasmPackage,
|
|
3
3
|
wasmBuildDocModelFromBytes,
|
|
4
4
|
wasmBuildDocModelFromPackage,
|
|
5
|
+
wasmExtractDocumentBlocks,
|
|
6
|
+
wasmInspectDocumentSource,
|
|
5
7
|
wasmPackageToMaps
|
|
6
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-TPYS6CSH.js";
|
|
7
9
|
|
|
8
10
|
// ../doc-model/src/normalize.ts
|
|
9
11
|
function normalizeUint8Array(value) {
|
|
@@ -21,12 +23,13 @@ function normalizeParagraphChild(child) {
|
|
|
21
23
|
}
|
|
22
24
|
const image = child;
|
|
23
25
|
const data = normalizeUint8Array(image.data);
|
|
24
|
-
if (data === image.data) {
|
|
26
|
+
if (data === image.data && !image.contentNodes) {
|
|
25
27
|
return child;
|
|
26
28
|
}
|
|
27
29
|
return {
|
|
28
30
|
...image,
|
|
29
|
-
data
|
|
31
|
+
data,
|
|
32
|
+
contentNodes: image.contentNodes?.map(normalizeDocNode)
|
|
30
33
|
};
|
|
31
34
|
}
|
|
32
35
|
function normalizeTableCellContent(node) {
|
|
@@ -85,6 +88,10 @@ function normalizeDocModel(model) {
|
|
|
85
88
|
...note,
|
|
86
89
|
nodes: note.nodes?.map(normalizeDocNode)
|
|
87
90
|
})),
|
|
91
|
+
comments: model.metadata.comments?.map((comment) => ({
|
|
92
|
+
...comment,
|
|
93
|
+
nodes: comment.nodes?.map(normalizeDocNode)
|
|
94
|
+
})),
|
|
88
95
|
endnotes: model.metadata.endnotes?.map((note) => ({
|
|
89
96
|
...note,
|
|
90
97
|
nodes: note.nodes?.map(normalizeDocNode)
|
|
@@ -93,6 +100,37 @@ function normalizeDocModel(model) {
|
|
|
93
100
|
};
|
|
94
101
|
}
|
|
95
102
|
|
|
103
|
+
// ../doc-model/src/blocks.ts
|
|
104
|
+
var DOCUMENT_BLOCK_TYPES = [
|
|
105
|
+
"text",
|
|
106
|
+
"heading",
|
|
107
|
+
"section_heading",
|
|
108
|
+
"figure",
|
|
109
|
+
"table",
|
|
110
|
+
"table_head",
|
|
111
|
+
"table_cell",
|
|
112
|
+
"key_value",
|
|
113
|
+
"page_number",
|
|
114
|
+
"barcode",
|
|
115
|
+
"formula",
|
|
116
|
+
"header",
|
|
117
|
+
"footer",
|
|
118
|
+
"watermark",
|
|
119
|
+
"legend"
|
|
120
|
+
];
|
|
121
|
+
async function extractDocumentBlocks(model, options = {}) {
|
|
122
|
+
return await wasmExtractDocumentBlocks(model, options);
|
|
123
|
+
}
|
|
124
|
+
function flattenDocumentBlocks(blocks) {
|
|
125
|
+
return blocks.flatMap((block) => [
|
|
126
|
+
block,
|
|
127
|
+
...flattenDocumentBlocks(block.children)
|
|
128
|
+
]);
|
|
129
|
+
}
|
|
130
|
+
async function inspectDocumentSource(bytes) {
|
|
131
|
+
return await wasmInspectDocumentSource(bytes);
|
|
132
|
+
}
|
|
133
|
+
|
|
96
134
|
// ../doc-model/src/table-grid.ts
|
|
97
135
|
function tableGridColumnBound(table) {
|
|
98
136
|
if (table.style?.columnWidthsTwips !== void 0) return table.style.columnWidthsTwips.length;
|
|
@@ -124,6 +162,11 @@ function ensureNodeBlockIds(node) {
|
|
|
124
162
|
node.blockId = allocateBlockId();
|
|
125
163
|
}
|
|
126
164
|
if (node.type !== "table") {
|
|
165
|
+
node.children.forEach((child, index) => {
|
|
166
|
+
if (child.type !== "image") return;
|
|
167
|
+
child.blockId ??= `${node.blockId}/child/${index}`;
|
|
168
|
+
child.contentNodes?.forEach(ensureNodeBlockIds);
|
|
169
|
+
});
|
|
127
170
|
return;
|
|
128
171
|
}
|
|
129
172
|
for (const row of node.rows) {
|
|
@@ -156,6 +199,9 @@ function ensureDocModelBlockIds(model) {
|
|
|
156
199
|
for (const note of model.metadata.endnotes ?? []) {
|
|
157
200
|
note.nodes?.forEach(ensureNodeBlockIds);
|
|
158
201
|
}
|
|
202
|
+
for (const comment of model.metadata.comments ?? []) {
|
|
203
|
+
comment.nodes?.forEach(ensureNodeBlockIds);
|
|
204
|
+
}
|
|
159
205
|
return model;
|
|
160
206
|
}
|
|
161
207
|
function collectNodeBlockIds(node, seen, duplicates) {
|
|
@@ -359,6 +405,10 @@ function cloneParagraph(paragraph) {
|
|
|
359
405
|
}
|
|
360
406
|
return {
|
|
361
407
|
type: "image",
|
|
408
|
+
blockId: child.blockId,
|
|
409
|
+
semanticKind: child.semanticKind,
|
|
410
|
+
mathMl: child.mathMl,
|
|
411
|
+
contentNodes: child.contentNodes?.map(cloneDocNode),
|
|
362
412
|
src: child.src,
|
|
363
413
|
alt: child.alt,
|
|
364
414
|
widthPx: child.widthPx,
|
|
@@ -530,6 +580,8 @@ function cloneDocModel(model) {
|
|
|
530
580
|
return {
|
|
531
581
|
nodes: model.nodes.map(cloneDocNode),
|
|
532
582
|
metadata: {
|
|
583
|
+
documentId: model.metadata.documentId,
|
|
584
|
+
sourcePartNames: model.metadata.sourcePartNames ? { ...model.metadata.sourcePartNames } : void 0,
|
|
533
585
|
sourceParts: model.metadata.sourceParts,
|
|
534
586
|
warnings: [...model.metadata.warnings],
|
|
535
587
|
documentPageCount: model.metadata.documentPageCount,
|
|
@@ -584,7 +636,7 @@ function cloneDocModel(model) {
|
|
|
584
636
|
...note,
|
|
585
637
|
nodes: note.nodes?.map(cloneDocNode)
|
|
586
638
|
})),
|
|
587
|
-
comments: model.metadata.comments?.map((comment) => ({ ...comment }))
|
|
639
|
+
comments: model.metadata.comments?.map((comment) => ({ ...comment, nodes: comment.nodes?.map(cloneDocNode) }))
|
|
588
640
|
}
|
|
589
641
|
};
|
|
590
642
|
}
|
|
@@ -648,6 +700,10 @@ async function buildDocModelFromBytes(bytes) {
|
|
|
648
700
|
|
|
649
701
|
export {
|
|
650
702
|
normalizeDocModel,
|
|
703
|
+
DOCUMENT_BLOCK_TYPES,
|
|
704
|
+
extractDocumentBlocks,
|
|
705
|
+
flattenDocumentBlocks,
|
|
706
|
+
inspectDocumentSource,
|
|
651
707
|
tableGridColumnBound,
|
|
652
708
|
resolveTableGridSkipCount,
|
|
653
709
|
tableRowGridSkipCount,
|
|
@@ -662,4 +718,4 @@ export {
|
|
|
662
718
|
buildDocModel,
|
|
663
719
|
buildDocModelFromBytes
|
|
664
720
|
};
|
|
665
|
-
//# sourceMappingURL=chunk-
|
|
721
|
+
//# sourceMappingURL=chunk-PCMLHNDX.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../doc-model/src/normalize.ts","../../doc-model/src/blocks.ts","../../doc-model/src/table-grid.ts","../../doc-model/src/block-id.ts","../../doc-model/src/clone.ts","../../doc-model/src/freeze.ts","../../doc-model/src/index.ts"],"sourcesContent":["import type {\n DocModel,\n DocNode,\n ImageRunNode,\n ParagraphChildNode,\n TableCellContentNode\n} from \"./types\";\n\nfunction normalizeUint8Array(value: unknown): Uint8Array | undefined {\n if (value instanceof Uint8Array) {\n return value;\n }\n if (Array.isArray(value)) {\n return Uint8Array.from(value as number[]);\n }\n return undefined;\n}\n\nfunction normalizeParagraphChild(child: ParagraphChildNode): ParagraphChildNode {\n if (child.type !== \"image\") {\n return child;\n }\n\n const image = child as ImageRunNode;\n const data = normalizeUint8Array(image.data);\n if (data === image.data && !image.contentNodes) {\n return child;\n }\n\n return {\n ...image,\n data,\n contentNodes: image.contentNodes?.map(normalizeDocNode)\n };\n}\n\nfunction normalizeTableCellContent(node: TableCellContentNode): TableCellContentNode {\n if (node.type === \"table\") {\n return normalizeDocNode(node) as TableCellContentNode;\n }\n\n return {\n ...node,\n children: node.children.map(normalizeParagraphChild)\n };\n}\n\nfunction normalizeDocNode(node: DocNode): DocNode {\n if (node.type === \"paragraph\") {\n return {\n ...node,\n children: node.children.map(normalizeParagraphChild)\n };\n }\n\n return {\n ...node,\n rows: node.rows.map((row) => ({\n ...row,\n cells: row.cells.map((cell) => ({\n ...cell,\n nodes: cell.nodes.map(normalizeTableCellContent)\n }))\n }))\n };\n}\n\nexport function normalizeDocModel(model: DocModel): DocModel {\n return {\n ...model,\n nodes: model.nodes.map(normalizeDocNode),\n metadata: {\n ...model.metadata,\n headerSections: model.metadata.headerSections.map((section) => ({\n ...section,\n nodes: section.nodes.map(normalizeDocNode)\n })),\n footerSections: model.metadata.footerSections.map((section) => ({\n ...section,\n nodes: section.nodes.map(normalizeDocNode)\n })),\n sections: model.metadata.sections?.map((section) => ({\n ...section,\n headerSections: section.headerSections.map((header) => ({\n ...header,\n nodes: header.nodes.map(normalizeDocNode)\n })),\n footerSections: section.footerSections.map((footer) => ({\n ...footer,\n nodes: footer.nodes.map(normalizeDocNode)\n }))\n })),\n footnotes: model.metadata.footnotes?.map((note) => ({\n ...note,\n nodes: note.nodes?.map(normalizeDocNode)\n })),\n comments: model.metadata.comments?.map((comment) => ({\n ...comment,\n nodes: comment.nodes?.map(normalizeDocNode)\n })),\n endnotes: model.metadata.endnotes?.map((note) => ({\n ...note,\n nodes: note.nodes?.map(normalizeDocNode)\n }))\n }\n };\n}\n","import {\n wasmExtractDocumentBlocks,\n wasmInspectDocumentSource,\n} from \"@extend-ai/react-docx-wasm\";\nimport type { DocModel } from \"./types\";\n\nexport const DOCUMENT_BLOCK_TYPES = [\n \"text\",\n \"heading\",\n \"section_heading\",\n \"figure\",\n \"table\",\n \"table_head\",\n \"table_cell\",\n \"key_value\",\n \"page_number\",\n \"barcode\",\n \"formula\",\n \"header\",\n \"footer\",\n \"watermark\",\n \"legend\",\n] as const;\n\nexport type DocumentBlockType = (typeof DOCUMENT_BLOCK_TYPES)[number];\n\nexport interface DocxSourceRef {\n documentId: string;\n nodeId: string;\n partName: string;\n story: string;\n start?: number;\n end?: number;\n offsetEncoding: \"utf-16\";\n}\n\nexport interface ExtractDocumentBlocksOptions {\n includeWords?: boolean;\n}\n\nexport interface DocumentWord {\n object: \"word\";\n id: string;\n blockId: string;\n content: string;\n sourceRefs: DocxSourceRef[];\n}\n\nexport interface DocumentBlock {\n object: \"block\";\n id: string;\n type: DocumentBlockType;\n content: string;\n details: Record<string, unknown>;\n sourceRefs: DocxSourceRef[];\n parentBlockId?: string;\n children: DocumentBlock[];\n words?: DocumentWord[];\n}\n\nexport interface StructuredDocument {\n schemaVersion: 1;\n parserVersion: string;\n documentId: string;\n blocks: DocumentBlock[];\n warnings: string[];\n geometryStatus: \"requires_layout\";\n}\n\nexport async function extractDocumentBlocks(\n model: DocModel,\n options: ExtractDocumentBlocksOptions = {}\n): Promise<StructuredDocument> {\n return (await wasmExtractDocumentBlocks(model, options)) as StructuredDocument;\n}\n\nexport function flattenDocumentBlocks(\n blocks: readonly DocumentBlock[]\n): DocumentBlock[] {\n return blocks.flatMap((block) => [\n block,\n ...flattenDocumentBlocks(block.children),\n ]);\n}\n\nexport interface SourceElement {\n id: string;\n kind: \"document\" | \"element\" | \"text\" | \"comment\" | \"processing_instruction\";\n namespace?: string;\n name?: string;\n text?: string;\n byteStart: number;\n byteEnd: number;\n attributes: Array<{ namespace: string | null; name: string; value: string }>;\n children: SourceElement[];\n}\n\nexport interface DocumentSourceGraph {\n schemaVersion: 1;\n documentId: string;\n parts: Array<{\n name: string;\n byteLength: number;\n root: SourceElement | null;\n error: string | null;\n }>;\n assets: Array<{ name: string; byteLength: number; root: null; error: null }>;\n warnings: string[];\n preservedFeatures: Array<{\n partName: string;\n feature: string;\n occurrences: number;\n support: \"preserved_only\" | \"approximate_rendering\";\n }>;\n}\n\nexport async function inspectDocumentSource(\n bytes: ArrayBuffer | Uint8Array\n): Promise<DocumentSourceGraph> {\n return (await wasmInspectDocumentSource(bytes)) as DocumentSourceGraph;\n}\n","import type { TableNode, TableRowNode } from \"./types\";\n\n/** The parent grid bounds skipped-column counts without changing their source values. */\nexport function tableGridColumnBound(table: Pick<TableNode, \"style\" | \"rows\">): number {\n if (table.style?.columnWidthsTwips !== undefined) return table.style.columnWidthsTwips.length;\n return Math.max(0, ...table.rows.map((row) => row.cells.reduce((total, cell) => {\n const span = cell.style?.gridSpan;\n return total + (Number.isFinite(span) && (span as number) > 0 ? Math.max(1, Math.floor(span as number)) : 1);\n }, 0)));\n}\n\n/** Ignore skipped-grid counts that exceed the parent grid. */\nexport function resolveTableGridSkipCount(count: number | undefined, gridColumnCount: number): number {\n const value = Number.isFinite(count) && (count as number) >= 0 ? Math.floor(count as number) : 0;\n return Number.isFinite(gridColumnCount) && gridColumnCount >= value ? value : 0;\n}\n\nexport function tableRowGridSkipCount(\n table: Pick<TableNode, \"style\" | \"rows\">,\n row: TableRowNode,\n edge: \"before\" | \"after\"\n): number {\n return resolveTableGridSkipCount(\n edge === \"before\" ? row.style?.gridBefore : row.style?.gridAfter,\n tableGridColumnBound(table)\n );\n}\n","import type { DocModel, DocNode, TableCellContentNode } from \"./types\";\n\nlet nextBlockIdValue = 1;\n\n/** Returns a fresh block id, unique for the lifetime of this module instance. */\nexport function allocateBlockId(): string {\n const value = nextBlockIdValue;\n nextBlockIdValue += 1;\n return `b${value}`;\n}\n\nfunction ensureNodeBlockIds(node: DocNode | TableCellContentNode): void {\n if (!node.blockId) {\n node.blockId = allocateBlockId();\n }\n\n if (node.type !== \"table\") {\n node.children.forEach((child, index) => {\n if (child.type !== \"image\") return;\n child.blockId ??= `${node.blockId}/child/${index}`;\n child.contentNodes?.forEach(ensureNodeBlockIds);\n });\n return;\n }\n\n for (const row of node.rows) {\n for (const cell of row.cells) {\n for (const child of cell.nodes) {\n ensureNodeBlockIds(child);\n }\n }\n }\n}\n\n/**\n * Assigns a fresh block id to every paragraph/table node (body, headers,\n * footers, footnotes, endnotes, nested table content) that does not already\n * have one. Mutates the model in place and returns it.\n */\nexport function ensureDocModelBlockIds(model: DocModel): DocModel {\n model.nodes.forEach(ensureNodeBlockIds);\n\n for (const section of model.metadata.headerSections ?? []) {\n section.nodes.forEach(ensureNodeBlockIds);\n }\n for (const section of model.metadata.footerSections ?? []) {\n section.nodes.forEach(ensureNodeBlockIds);\n }\n for (const section of model.metadata.sections ?? []) {\n for (const headerSection of section.headerSections ?? []) {\n headerSection.nodes.forEach(ensureNodeBlockIds);\n }\n for (const footerSection of section.footerSections ?? []) {\n footerSection.nodes.forEach(ensureNodeBlockIds);\n }\n }\n for (const note of model.metadata.footnotes ?? []) {\n note.nodes?.forEach(ensureNodeBlockIds);\n }\n for (const note of model.metadata.endnotes ?? []) {\n note.nodes?.forEach(ensureNodeBlockIds);\n }\n for (const comment of model.metadata.comments ?? []) {\n comment.nodes?.forEach(ensureNodeBlockIds);\n }\n\n return model;\n}\n\nfunction collectNodeBlockIds(\n node: DocNode | TableCellContentNode,\n seen: Set<string>,\n duplicates: Set<string>\n): void {\n if (node.blockId) {\n if (seen.has(node.blockId)) {\n duplicates.add(node.blockId);\n }\n seen.add(node.blockId);\n }\n\n if (node.type !== \"table\") {\n return;\n }\n\n for (const row of node.rows) {\n for (const cell of row.cells) {\n for (const child of cell.nodes) {\n collectNodeBlockIds(child, seen, duplicates);\n }\n }\n }\n}\n\n/**\n * Returns block ids that appear on more than one node within the same\n * container (body, a header/footer part, a note). Nodes without ids are\n * ignored, and the same id may legitimately recur across containers (section\n * views reference the same header/footer parts as the flat metadata lists).\n */\nexport function collectDuplicateDocModelBlockIds(model: DocModel): string[] {\n const duplicates = new Set<string>();\n\n const visitContainer = (nodes: DocNode[] | undefined): void => {\n if (!nodes) {\n return;\n }\n const seen = new Set<string>();\n nodes.forEach((node) => collectNodeBlockIds(node, seen, duplicates));\n };\n\n visitContainer(model.nodes);\n for (const section of model.metadata.headerSections ?? []) {\n visitContainer(section.nodes);\n }\n for (const section of model.metadata.footerSections ?? []) {\n visitContainer(section.nodes);\n }\n for (const note of model.metadata.footnotes ?? []) {\n visitContainer(note.nodes);\n }\n for (const note of model.metadata.endnotes ?? []) {\n visitContainer(note.nodes);\n }\n\n return Array.from(duplicates);\n}\n","import type {\n DocModel,\n DocNode,\n FooterSection,\n HeaderSection,\n NumberingDefinitionSet,\n ParagraphBorderSet,\n ParagraphBorderStyle,\n ParagraphIndent,\n ParagraphMarkFormattingSource,\n ParagraphNode,\n ParagraphNumbering,\n ParagraphSpacing,\n ParagraphStyle,\n ParagraphStyleDefinition,\n TableBorderSet,\n TableBorderStyle,\n TableBoxSpacing,\n TableCellContentNode,\n TableNode,\n TablePreferredWidth,\n TableWidthSource,\n TableRowStyle,\n TableStyle,\n TextStyle,\n} from \"./types\";\n\nfunction isParagraphCellContent(\n node: TableCellContentNode\n): node is ParagraphNode {\n return node.type === \"paragraph\";\n}\n\nfunction isTableCellContentTable(\n node: TableCellContentNode\n): node is TableNode {\n return node.type === \"table\";\n}\n\nfunction cloneTableCellContent(\n nodes: TableCellContentNode[]\n): TableCellContentNode[] {\n return nodes.map((node) => {\n if (isParagraphCellContent(node)) {\n return cloneParagraph(node);\n }\n\n if (isTableCellContentTable(node)) {\n return cloneTable(node);\n }\n\n return node;\n });\n}\n\nfunction cloneParagraphNumbering(\n numbering?: ParagraphNumbering\n): ParagraphNumbering | undefined {\n return numbering ? { ...numbering } : undefined;\n}\n\nfunction cloneParagraphSpacing(\n spacing?: ParagraphSpacing\n): ParagraphSpacing | undefined {\n return spacing ? { ...spacing } : undefined;\n}\n\nfunction cloneParagraphIndent(\n indent?: ParagraphIndent\n): ParagraphIndent | undefined {\n return indent ? { ...indent } : undefined;\n}\n\nfunction cloneParagraphBorderStyle(\n border?: ParagraphBorderStyle\n): ParagraphBorderStyle | undefined {\n return border ? { ...border } : undefined;\n}\n\nfunction cloneParagraphBorderSet(\n borders?: ParagraphBorderSet\n): ParagraphBorderSet | undefined {\n if (!borders) {\n return undefined;\n }\n\n return {\n top: cloneParagraphBorderStyle(borders.top),\n right: cloneParagraphBorderStyle(borders.right),\n bottom: cloneParagraphBorderStyle(borders.bottom),\n left: cloneParagraphBorderStyle(borders.left),\n between: cloneParagraphBorderStyle(borders.between),\n bar: cloneParagraphBorderStyle(borders.bar),\n };\n}\n\nfunction cloneParagraphStyle(\n style?: ParagraphStyle\n): ParagraphStyle | undefined {\n if (!style) {\n return undefined;\n }\n\n return {\n ...style,\n numbering: cloneParagraphNumbering(style.numbering),\n spacing: cloneParagraphSpacing(style.spacing),\n indent: cloneParagraphIndent(style.indent),\n borders: cloneParagraphBorderSet(style.borders),\n tabStops: style.tabStops?.map((stop) => ({ ...stop })),\n dropCap: style.dropCap\n ? {\n ...style.dropCap,\n }\n : undefined,\n };\n}\n\nfunction cloneTextStyle(style?: TextStyle): TextStyle | undefined {\n return style\n ? {\n ...style,\n runBorder: style.runBorder ? { ...style.runBorder } : undefined,\n }\n : undefined;\n}\n\nexport function cloneParagraphMarkFormatting(\n formatting?: ParagraphMarkFormattingSource\n): ParagraphMarkFormattingSource | undefined {\n return formatting\n ? {\n defaultStyle: cloneTextStyle(formatting.defaultStyle),\n characterStyle: cloneTextStyle(formatting.characterStyle),\n directStyle: cloneTextStyle(formatting.directStyle),\n }\n : undefined;\n}\n\nexport function cloneParagraphNode(paragraph: ParagraphNode): ParagraphNode {\n return cloneParagraph(paragraph);\n}\n\nexport function cloneTableNode(table: TableNode): TableNode {\n return cloneTable(table);\n}\n\nfunction cloneParagraph(paragraph: ParagraphNode): ParagraphNode {\n return {\n type: \"paragraph\",\n blockId: paragraph.blockId,\n style: cloneParagraphStyle(paragraph.style),\n paragraphMarkStyle: cloneTextStyle(paragraph.paragraphMarkStyle),\n sourceParagraphMarkStyle: cloneTextStyle(paragraph.sourceParagraphMarkStyle),\n sourceParagraphMarkFormatting: cloneParagraphMarkFormatting(\n paragraph.sourceParagraphMarkFormatting\n ),\n sourceParagraphMarkPropertiesXml: paragraph.sourceParagraphMarkPropertiesXml,\n paragraphMarkDeleted: paragraph.paragraphMarkDeleted,\n sourceXml: paragraph.sourceXml,\n sourceTextPatch: paragraph.sourceTextPatch\n ? {\n runs: paragraph.sourceTextPatch.runs.map((run) => ({\n style: cloneTextStyle(run.style),\n link: run.link,\n noteReference: run.noteReference\n ? { ...run.noteReference }\n : undefined,\n })),\n }\n : undefined,\n sourceRunProvenance: paragraph.sourceRunProvenance\n ? {\n runs: paragraph.sourceRunProvenance.runs.map((run) => ({\n style: cloneTextStyle(run.style),\n link: run.link,\n noteReference: run.noteReference\n ? { ...run.noteReference }\n : undefined,\n })),\n }\n : undefined,\n children: paragraph.children.map((child) => {\n if (child.type === \"text\") {\n return {\n type: \"text\" as const,\n text: child.text,\n style: cloneTextStyle(child.style),\n link: child.link,\n noteReference: child.noteReference\n ? { ...child.noteReference }\n : undefined,\n };\n }\n\n if (child.type === \"form-field\") {\n return {\n type: \"form-field\" as const,\n fieldType: child.fieldType,\n sourceKind: child.sourceKind,\n id: child.id,\n tag: child.tag,\n title: child.title,\n placeholder: child.placeholder,\n checked: child.checked,\n value: child.value,\n options: child.options?.map((option) => ({\n displayText: option.displayText,\n value: option.value,\n })),\n widget: child.widget\n ? {\n name: child.widget.name,\n enabled: child.widget.enabled,\n calcOnExit: child.widget.calcOnExit,\n text: child.widget.text\n ? {\n inputType: child.widget.text.inputType,\n defaultText: child.widget.text.defaultText,\n maxLength: child.widget.text.maxLength,\n textFormat: child.widget.text.textFormat,\n }\n : undefined,\n checkbox: child.widget.checkbox\n ? {\n defaultChecked: child.widget.checkbox.defaultChecked,\n sizeMode: child.widget.checkbox.sizeMode,\n sizePt: child.widget.checkbox.sizePt,\n }\n : undefined,\n dropdown: child.widget.dropdown\n ? {\n defaultValue: child.widget.dropdown.defaultValue,\n }\n : undefined,\n }\n : undefined,\n checkedSymbol: child.checkedSymbol,\n uncheckedSymbol: child.uncheckedSymbol,\n style: child.style ? { ...child.style } : undefined,\n link: child.link,\n sourceXml: child.sourceXml,\n };\n }\n\n return {\n type: \"image\" as const,\n blockId: child.blockId,\n semanticKind: child.semanticKind,\n mathMl: child.mathMl,\n contentNodes: child.contentNodes?.map(cloneDocNode),\n src: child.src,\n alt: child.alt,\n widthPx: child.widthPx,\n heightPx: child.heightPx,\n partName: child.partName,\n contentType: child.contentType,\n data: child.data ? new Uint8Array(child.data) : undefined,\n sourceXml: child.sourceXml,\n crop: child.crop ? { ...child.crop } : undefined,\n cssFilter: child.cssFilter,\n cssOpacity: child.cssOpacity,\n floating: child.floating ? { ...child.floating } : undefined,\n syntheticTextBox: child.syntheticTextBox,\n textBoxText: child.textBoxText,\n };\n }),\n };\n}\n\nfunction cloneTableBoxSpacing(\n spacing?: TableBoxSpacing\n): TableBoxSpacing | undefined {\n if (!spacing) {\n return undefined;\n }\n\n return {\n topTwips: spacing.topTwips,\n rightTwips: spacing.rightTwips,\n bottomTwips: spacing.bottomTwips,\n leftTwips: spacing.leftTwips,\n };\n}\n\nfunction cloneTableBorderStyle(\n border?: TableBorderStyle\n): TableBorderStyle | undefined {\n if (!border) {\n return undefined;\n }\n\n return {\n type: border.type,\n color: border.color,\n sizeEighthPt: border.sizeEighthPt,\n };\n}\n\nfunction cloneTableBorderSet(\n borders?: TableBorderSet\n): TableBorderSet | undefined {\n if (!borders) {\n return undefined;\n }\n\n return {\n top: cloneTableBorderStyle(borders.top),\n right: cloneTableBorderStyle(borders.right),\n bottom: cloneTableBorderStyle(borders.bottom),\n left: cloneTableBorderStyle(borders.left),\n insideH: cloneTableBorderStyle(borders.insideH),\n insideV: cloneTableBorderStyle(borders.insideV),\n tl2br: cloneTableBorderStyle(borders.tl2br),\n tr2bl: cloneTableBorderStyle(borders.tr2bl),\n };\n}\n\nfunction cloneTableFloatingStyle(\n floating?: NonNullable<TableStyle[\"floating\"]>\n): NonNullable<TableStyle[\"floating\"]> | undefined {\n if (!floating) {\n return undefined;\n }\n\n return {\n xTwips: floating.xTwips,\n yTwips: floating.yTwips,\n leftFromTextTwips: floating.leftFromTextTwips,\n rightFromTextTwips: floating.rightFromTextTwips,\n topFromTextTwips: floating.topFromTextTwips,\n bottomFromTextTwips: floating.bottomFromTextTwips,\n horizontalAnchor: floating.horizontalAnchor,\n verticalAnchor: floating.verticalAnchor,\n horizontalAlign: floating.horizontalAlign,\n verticalAlign: floating.verticalAlign,\n };\n}\n\nfunction cloneTablePreferredWidth(\n width?: TablePreferredWidth\n): TablePreferredWidth | undefined {\n return width ? { ...width } : undefined;\n}\n\nfunction cloneTableWidthSource(\n source?: TableWidthSource\n): TableWidthSource | undefined {\n return source ? {\n ...source,\n preferredWidth: cloneTablePreferredWidth(source.preferredWidth),\n inheritedPreferredWidth: cloneTablePreferredWidth(source.inheritedPreferredWidth),\n } : undefined;\n}\n\nfunction cloneTableRowStyle(style?: TableRowStyle): TableRowStyle | undefined {\n return style ? {\n ...style,\n widthBefore: cloneTablePreferredWidth(style.widthBefore),\n widthAfter: cloneTablePreferredWidth(style.widthAfter),\n sourceRowGeometry: style.sourceRowGeometry ? {\n ...style.sourceRowGeometry,\n widthBefore: cloneTablePreferredWidth(style.sourceRowGeometry.widthBefore),\n widthAfter: cloneTablePreferredWidth(style.sourceRowGeometry.widthAfter),\n } : undefined,\n } : undefined;\n}\n\nfunction cloneTable(table: TableNode): TableNode {\n return {\n type: \"table\",\n blockId: table.blockId,\n sourceXml: table.sourceXml,\n sourceTextPatches: table.sourceTextPatches?.map((patch) => ({\n sourceParagraphXml: patch.sourceParagraphXml,\n paragraph: cloneParagraph(patch.paragraph),\n })),\n style: table.style\n ? {\n styleId: table.style.styleId,\n sourceStyleId: table.style.sourceStyleId,\n widthTwips: table.style.widthTwips,\n preferredWidth: cloneTablePreferredWidth(table.style.preferredWidth),\n sourceWidth: cloneTableWidthSource(table.style.sourceWidth),\n alignment: table.style.alignment,\n sourceAlignment: table.style.sourceAlignment,\n sourceInheritedAlignment: table.style.sourceInheritedAlignment,\n bidiVisual: table.style.bidiVisual,\n sourceBidiVisual: table.style.sourceBidiVisual,\n sourceInheritedBidiVisual: table.style.sourceInheritedBidiVisual,\n indentTwips: table.style.indentTwips,\n layout: table.style.layout,\n cellSpacingTwips: table.style.cellSpacingTwips,\n floating: cloneTableFloatingStyle(table.style.floating),\n cellMarginTwips: cloneTableBoxSpacing(table.style.cellMarginTwips),\n columnWidthsTwips: table.style.columnWidthsTwips\n ? [...table.style.columnWidthsTwips]\n : undefined,\n borders: cloneTableBorderSet(table.style.borders),\n }\n : undefined,\n rows: table.rows.map((row) => ({\n type: \"table-row\",\n style: cloneTableRowStyle(row.style),\n cells: row.cells.map((cell) => ({\n type: \"table-cell\",\n style: cell.style\n ? {\n ...cell.style,\n preferredWidth: cloneTablePreferredWidth(cell.style.preferredWidth),\n sourceWidth: cloneTableWidthSource(cell.style.sourceWidth),\n marginTwips: cloneTableBoxSpacing(cell.style.marginTwips),\n borders: cloneTableBorderSet(cell.style.borders),\n }\n : undefined,\n nodes: cloneTableCellContent(cell.nodes),\n })),\n })),\n };\n}\n\nfunction cloneDocNode(node: DocNode): DocNode {\n return node.type === \"paragraph\" ? cloneParagraph(node) : cloneTable(node);\n}\n\nfunction cloneNumberingDefinitions(\n numberingDefinitions?: NumberingDefinitionSet\n): NumberingDefinitionSet | undefined {\n if (!numberingDefinitions) {\n return undefined;\n }\n\n return {\n abstracts: numberingDefinitions.abstracts.map((abstractDefinition) => ({\n abstractNumId: abstractDefinition.abstractNumId,\n levels: abstractDefinition.levels.map((level) => ({\n ...level,\n runStyle: level.runStyle ? { ...level.runStyle } : undefined,\n pictureBullet: level.pictureBullet\n ? { ...level.pictureBullet }\n : undefined,\n })),\n })),\n instances: numberingDefinitions.instances.map((instanceDefinition) => ({\n numId: instanceDefinition.numId,\n abstractNumId: instanceDefinition.abstractNumId,\n levelStartOverrides: instanceDefinition.levelStartOverrides\n ? { ...instanceDefinition.levelStartOverrides }\n : undefined,\n levelOverrides: instanceDefinition.levelOverrides\n ? instanceDefinition.levelOverrides.map((level) => ({\n ...level,\n runStyle: level.runStyle ? { ...level.runStyle } : undefined,\n pictureBullet: level.pictureBullet\n ? { ...level.pictureBullet }\n : undefined,\n }))\n : undefined,\n })),\n };\n}\n\nexport function cloneDocModel(model: DocModel): DocModel {\n return {\n nodes: model.nodes.map(cloneDocNode),\n metadata: {\n documentId: model.metadata.documentId,\n sourcePartNames: model.metadata.sourcePartNames ? { ...model.metadata.sourcePartNames } : undefined,\n sourceParts: model.metadata.sourceParts,\n warnings: [...model.metadata.warnings],\n documentPageCount: model.metadata.documentPageCount,\n documentOpenTag: model.metadata.documentOpenTag,\n documentBackgroundColor: model.metadata.documentBackgroundColor,\n sectionPropertiesXml: model.metadata.sectionPropertiesXml,\n sections: model.metadata.sections?.map((section) => ({\n startNodeIndex: section.startNodeIndex,\n sectionPropertiesXml: section.sectionPropertiesXml,\n headerSections: (section.headerSections ?? []).map((headerSection) => ({\n partName: headerSection.partName,\n referenceType: headerSection.referenceType,\n nodes: headerSection.nodes.map(cloneDocNode),\n })),\n footerSections: (section.footerSections ?? []).map((footerSection) => ({\n partName: footerSection.partName,\n referenceType: footerSection.referenceType,\n nodes: footerSection.nodes.map(cloneDocNode),\n })),\n })),\n headerSections: (model.metadata.headerSections ?? []).map((section) => ({\n partName: section.partName,\n referenceType: section.referenceType,\n nodes: section.nodes.map(cloneDocNode),\n })),\n footerSections: (model.metadata.footerSections ?? []).map((section) => ({\n partName: section.partName,\n referenceType: section.referenceType,\n nodes: section.nodes.map(cloneDocNode),\n })),\n paragraphStyles: (model.metadata.paragraphStyles ?? []).map((style) => ({\n ...style,\n runStyle: style.runStyle ? { ...style.runStyle } : undefined,\n numbering: cloneParagraphNumbering(style.numbering),\n spacing: cloneParagraphSpacing(style.spacing),\n indent: cloneParagraphIndent(style.indent),\n borders: cloneParagraphBorderSet(style.borders),\n })),\n defaultParagraphStyleId: model.metadata.defaultParagraphStyleId,\n defaultTabStopTwips: model.metadata.defaultTabStopTwips,\n documentSettingsImported: model.metadata.documentSettingsImported,\n lineSpacingCompatibilityImported: model.metadata.lineSpacingCompatibilityImported,\n numberingDefinitions: cloneNumberingDefinitions(\n model.metadata.numberingDefinitions\n ),\n compatibility: model.metadata.compatibility\n ? { ...model.metadata.compatibility }\n : undefined,\n footnotes: model.metadata.footnotes?.map((note) => ({\n ...note,\n nodes: note.nodes?.map(cloneDocNode),\n })),\n endnotes: model.metadata.endnotes?.map((note) => ({\n ...note,\n nodes: note.nodes?.map(cloneDocNode),\n })),\n comments: model.metadata.comments?.map((comment) => ({ ...comment, nodes: comment.nodes?.map(cloneDocNode) })),\n },\n };\n}\n","import type { DocModel } from \"./types\";\n\nfunction deepFreezeValue(value: unknown): void {\n if (typeof value !== \"object\" || value === null) {\n return;\n }\n // Freezing a typed array throws; image byte payloads stay unfrozen.\n if (ArrayBuffer.isView(value) || value instanceof ArrayBuffer) {\n return;\n }\n if (Object.isFrozen(value)) {\n return;\n }\n\n Object.freeze(value);\n if (Array.isArray(value)) {\n for (const entry of value) {\n deepFreezeValue(entry);\n }\n return;\n }\n\n for (const key of Object.keys(value)) {\n deepFreezeValue((value as Record<string, unknown>)[key]);\n }\n}\n\n/**\n * Dev-only commit guard: freezes a committed model so in-place mutation of\n * structure shared with history snapshots throws instead of corrupting them.\n * Already-frozen subtrees are skipped, so once a model is frozen, freezing a\n * structurally shared successor only pays for the changed nodes.\n */\nexport function deepFreezeDocModel(model: DocModel): DocModel {\n deepFreezeValue(model);\n return model;\n}\n","import type { OoxmlPackage } from \"@extend-ai/react-docx-ooxml-core\";\nimport {\n mapsToWasmPackage,\n wasmBuildDocModelFromBytes,\n wasmBuildDocModelFromPackage,\n wasmPackageToMaps\n} from \"@extend-ai/react-docx-wasm\";\n\nimport { normalizeDocModel } from \"./normalize\";\nimport type { DocModel } from \"./types\";\n\nexport * from \"./types\";\nexport * from \"./blocks\";\nexport { resolveTableGridSkipCount, tableGridColumnBound, tableRowGridSkipCount } from \"./table-grid\";\nexport {\n allocateBlockId,\n collectDuplicateDocModelBlockIds,\n ensureDocModelBlockIds\n} from \"./block-id\";\nexport { cloneDocModel, cloneParagraphMarkFormatting, cloneParagraphNode, cloneTableNode } from \"./clone\";\nexport { deepFreezeDocModel } from \"./freeze\";\nexport { normalizeDocModel } from \"./normalize\";\n\nexport async function buildDocModel(pkg: OoxmlPackage): Promise<DocModel> {\n const wasmPackage = mapsToWasmPackage({\n parts: pkg.parts,\n binaryAssets: pkg.binaryAssets,\n warnings: pkg.warnings\n });\n const model = (await wasmBuildDocModelFromPackage(wasmPackage)) as DocModel;\n return normalizeDocModel(model);\n}\n\nexport async function buildDocModelFromBytes(bytes: ArrayBuffer | Uint8Array): Promise<{\n package: OoxmlPackage;\n model: DocModel;\n timings: { parseMs: number; buildModelMs: number; totalMs: number };\n}> {\n const startedAt = performance.now();\n const result = await wasmBuildDocModelFromBytes(bytes);\n const builtAt = performance.now();\n const { parts, binaryAssets, warnings } = wasmPackageToMaps(result.package);\n const pkg = { parts, binaryAssets, ...(warnings.length > 0 ? { warnings } : {}) };\n const model = normalizeDocModel(result.model as DocModel);\n const finishedAt = performance.now();\n const buildModelMs = result.timings.buildModelMs + finishedAt - builtAt;\n return {\n package: pkg,\n model,\n timings: {\n parseMs: Math.max(0, builtAt - startedAt - result.timings.buildModelMs),\n buildModelMs,\n totalMs: finishedAt - startedAt,\n },\n };\n}\n"],"mappings":"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","names":[]}
|
|
@@ -3,7 +3,7 @@ import {
|
|
|
3
3
|
wasmPackageToArrayBuffer,
|
|
4
4
|
wasmPackageToMaps,
|
|
5
5
|
wasmParseDocx
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-TPYS6CSH.js";
|
|
7
7
|
|
|
8
8
|
// ../ooxml-core/src/index.ts
|
|
9
9
|
async function parseDocx(input) {
|
|
@@ -71,4 +71,4 @@ export {
|
|
|
71
71
|
getPart,
|
|
72
72
|
withPart
|
|
73
73
|
};
|
|
74
|
-
//# sourceMappingURL=chunk-
|
|
74
|
+
//# sourceMappingURL=chunk-PTOOIOQG.js.map
|
|
@@ -42,6 +42,89 @@ function build_doc_model_from_package(_package) {
|
|
|
42
42
|
wasm.__wbindgen_export4(deferred2_0, deferred2_1, 1);
|
|
43
43
|
}
|
|
44
44
|
}
|
|
45
|
+
function extract_document_blocks_wasm(model_json) {
|
|
46
|
+
let deferred3_0;
|
|
47
|
+
let deferred3_1;
|
|
48
|
+
try {
|
|
49
|
+
const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
|
|
50
|
+
const ptr0 = passStringToWasm0(model_json, wasm.__wbindgen_export, wasm.__wbindgen_export2);
|
|
51
|
+
const len0 = WASM_VECTOR_LEN;
|
|
52
|
+
wasm.extract_document_blocks_wasm(retptr, ptr0, len0);
|
|
53
|
+
var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
|
|
54
|
+
var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
|
|
55
|
+
var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
|
|
56
|
+
var r3 = getDataViewMemory0().getInt32(retptr + 4 * 3, true);
|
|
57
|
+
var ptr2 = r0;
|
|
58
|
+
var len2 = r1;
|
|
59
|
+
if (r3) {
|
|
60
|
+
ptr2 = 0;
|
|
61
|
+
len2 = 0;
|
|
62
|
+
throw takeObject(r2);
|
|
63
|
+
}
|
|
64
|
+
deferred3_0 = ptr2;
|
|
65
|
+
deferred3_1 = len2;
|
|
66
|
+
return getStringFromWasm0(ptr2, len2);
|
|
67
|
+
} finally {
|
|
68
|
+
wasm.__wbindgen_add_to_stack_pointer(16);
|
|
69
|
+
wasm.__wbindgen_export4(deferred3_0, deferred3_1, 1);
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
function extract_document_blocks_with_options_wasm(model_json, options_json) {
|
|
73
|
+
let deferred4_0;
|
|
74
|
+
let deferred4_1;
|
|
75
|
+
try {
|
|
76
|
+
const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
|
|
77
|
+
const ptr0 = passStringToWasm0(model_json, wasm.__wbindgen_export, wasm.__wbindgen_export2);
|
|
78
|
+
const len0 = WASM_VECTOR_LEN;
|
|
79
|
+
const ptr1 = passStringToWasm0(options_json, wasm.__wbindgen_export, wasm.__wbindgen_export2);
|
|
80
|
+
const len1 = WASM_VECTOR_LEN;
|
|
81
|
+
wasm.extract_document_blocks_with_options_wasm(retptr, ptr0, len0, ptr1, len1);
|
|
82
|
+
var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
|
|
83
|
+
var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
|
|
84
|
+
var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
|
|
85
|
+
var r3 = getDataViewMemory0().getInt32(retptr + 4 * 3, true);
|
|
86
|
+
var ptr3 = r0;
|
|
87
|
+
var len3 = r1;
|
|
88
|
+
if (r3) {
|
|
89
|
+
ptr3 = 0;
|
|
90
|
+
len3 = 0;
|
|
91
|
+
throw takeObject(r2);
|
|
92
|
+
}
|
|
93
|
+
deferred4_0 = ptr3;
|
|
94
|
+
deferred4_1 = len3;
|
|
95
|
+
return getStringFromWasm0(ptr3, len3);
|
|
96
|
+
} finally {
|
|
97
|
+
wasm.__wbindgen_add_to_stack_pointer(16);
|
|
98
|
+
wasm.__wbindgen_export4(deferred4_0, deferred4_1, 1);
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
function inspect_document_source_wasm(bytes) {
|
|
102
|
+
let deferred3_0;
|
|
103
|
+
let deferred3_1;
|
|
104
|
+
try {
|
|
105
|
+
const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
|
|
106
|
+
const ptr0 = passArray8ToWasm0(bytes, wasm.__wbindgen_export);
|
|
107
|
+
const len0 = WASM_VECTOR_LEN;
|
|
108
|
+
wasm.inspect_document_source_wasm(retptr, ptr0, len0);
|
|
109
|
+
var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
|
|
110
|
+
var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
|
|
111
|
+
var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
|
|
112
|
+
var r3 = getDataViewMemory0().getInt32(retptr + 4 * 3, true);
|
|
113
|
+
var ptr2 = r0;
|
|
114
|
+
var len2 = r1;
|
|
115
|
+
if (r3) {
|
|
116
|
+
ptr2 = 0;
|
|
117
|
+
len2 = 0;
|
|
118
|
+
throw takeObject(r2);
|
|
119
|
+
}
|
|
120
|
+
deferred3_0 = ptr2;
|
|
121
|
+
deferred3_1 = len2;
|
|
122
|
+
return getStringFromWasm0(ptr2, len2);
|
|
123
|
+
} finally {
|
|
124
|
+
wasm.__wbindgen_add_to_stack_pointer(16);
|
|
125
|
+
wasm.__wbindgen_export4(deferred3_0, deferred3_1, 1);
|
|
126
|
+
}
|
|
127
|
+
}
|
|
45
128
|
function model_to_document_xml_from_json_wasm(model_json, base_package) {
|
|
46
129
|
let deferred3_0;
|
|
47
130
|
let deferred3_1;
|
|
@@ -622,6 +705,15 @@ async function wasmBuildDocModelFromPackage(pkg) {
|
|
|
622
705
|
const json = build_doc_model_from_package(pkg);
|
|
623
706
|
return JSON.parse(json);
|
|
624
707
|
}
|
|
708
|
+
async function wasmInspectDocumentSource(bytes) {
|
|
709
|
+
await initWasm();
|
|
710
|
+
return JSON.parse(inspect_document_source_wasm(bytes instanceof Uint8Array ? bytes : new Uint8Array(bytes)));
|
|
711
|
+
}
|
|
712
|
+
async function wasmExtractDocumentBlocks(model, options = {}) {
|
|
713
|
+
await initWasm();
|
|
714
|
+
const json = JSON.stringify(model, (key, value) => key === "data" || key === "src" ? void 0 : value);
|
|
715
|
+
return JSON.parse(options.includeWords ? extract_document_blocks_with_options_wasm(json, JSON.stringify(options)) : extract_document_blocks_wasm(json));
|
|
716
|
+
}
|
|
625
717
|
async function wasmBuildDocModelFromBytes(bytes) {
|
|
626
718
|
await initWasm();
|
|
627
719
|
const payload = bytes instanceof Uint8Array ? bytes : new Uint8Array(bytes);
|
|
@@ -650,9 +742,11 @@ export {
|
|
|
650
742
|
mapsToWasmPackage,
|
|
651
743
|
wasmParseDocx,
|
|
652
744
|
wasmBuildDocModelFromPackage,
|
|
745
|
+
wasmInspectDocumentSource,
|
|
746
|
+
wasmExtractDocumentBlocks,
|
|
653
747
|
wasmBuildDocModelFromBytes,
|
|
654
748
|
wasmSerializeDocx,
|
|
655
749
|
wasmModelToDocumentXml,
|
|
656
750
|
wasmPackageToArrayBuffer
|
|
657
751
|
};
|
|
658
|
-
//# sourceMappingURL=chunk-
|
|
752
|
+
//# sourceMappingURL=chunk-TPYS6CSH.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../wasm/src/generated/docx_wasm.js","../../wasm/src/index.ts"],"sourcesContent":["/* @ts-self-types=\"./docx_wasm.d.ts\" */\n\n/**\n * @param {Uint8Array} bytes\n * @returns {any}\n */\nexport function build_doc_model_from_bytes(bytes) {\n try {\n const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);\n const ptr0 = passArray8ToWasm0(bytes, wasm.__wbindgen_export);\n const len0 = WASM_VECTOR_LEN;\n wasm.build_doc_model_from_bytes(retptr, ptr0, len0);\n var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);\n var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);\n var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);\n if (r2) {\n throw takeObject(r1);\n }\n return takeObject(r0);\n } finally {\n wasm.__wbindgen_add_to_stack_pointer(16);\n }\n}\n\n/**\n * @param {any} _package\n * @returns {string}\n */\nexport function build_doc_model_from_package(_package) {\n let deferred2_0;\n let deferred2_1;\n try {\n const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);\n wasm.build_doc_model_from_package(retptr, addBorrowedObject(_package));\n var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);\n var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);\n var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);\n var r3 = getDataViewMemory0().getInt32(retptr + 4 * 3, true);\n var ptr1 = r0;\n var len1 = r1;\n if (r3) {\n ptr1 = 0; len1 = 0;\n throw takeObject(r2);\n }\n deferred2_0 = ptr1;\n deferred2_1 = len1;\n return getStringFromWasm0(ptr1, len1);\n } finally {\n wasm.__wbindgen_add_to_stack_pointer(16);\n heap[stack_pointer++] = undefined;\n wasm.__wbindgen_export4(deferred2_0, deferred2_1, 1);\n }\n}\n\n/**\n * @param {string} model_json\n * @returns {string}\n */\nexport function extract_document_blocks_wasm(model_json) {\n let deferred3_0;\n let deferred3_1;\n try {\n const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);\n const ptr0 = passStringToWasm0(model_json, wasm.__wbindgen_export, wasm.__wbindgen_export2);\n const len0 = WASM_VECTOR_LEN;\n wasm.extract_document_blocks_wasm(retptr, ptr0, len0);\n var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);\n var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);\n var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);\n var r3 = getDataViewMemory0().getInt32(retptr + 4 * 3, true);\n var ptr2 = r0;\n var len2 = r1;\n if (r3) {\n ptr2 = 0; len2 = 0;\n throw takeObject(r2);\n }\n deferred3_0 = ptr2;\n deferred3_1 = len2;\n return getStringFromWasm0(ptr2, len2);\n } finally {\n wasm.__wbindgen_add_to_stack_pointer(16);\n wasm.__wbindgen_export4(deferred3_0, deferred3_1, 1);\n }\n}\n\n/**\n * @param {string} model_json\n * @param {string} options_json\n * @returns {string}\n */\nexport function extract_document_blocks_with_options_wasm(model_json, options_json) {\n let deferred4_0;\n let deferred4_1;\n try {\n const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);\n const ptr0 = passStringToWasm0(model_json, wasm.__wbindgen_export, wasm.__wbindgen_export2);\n const len0 = WASM_VECTOR_LEN;\n const ptr1 = passStringToWasm0(options_json, wasm.__wbindgen_export, wasm.__wbindgen_export2);\n const len1 = WASM_VECTOR_LEN;\n wasm.extract_document_blocks_with_options_wasm(retptr, ptr0, len0, ptr1, len1);\n var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);\n var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);\n var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);\n var r3 = getDataViewMemory0().getInt32(retptr + 4 * 3, true);\n var ptr3 = r0;\n var len3 = r1;\n if (r3) {\n ptr3 = 0; len3 = 0;\n throw takeObject(r2);\n }\n deferred4_0 = ptr3;\n deferred4_1 = len3;\n return getStringFromWasm0(ptr3, len3);\n } finally {\n wasm.__wbindgen_add_to_stack_pointer(16);\n wasm.__wbindgen_export4(deferred4_0, deferred4_1, 1);\n }\n}\n\n/**\n * @param {Uint8Array} bytes\n * @returns {string}\n */\nexport function inspect_document_source_wasm(bytes) {\n let deferred3_0;\n let deferred3_1;\n try {\n const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);\n const ptr0 = passArray8ToWasm0(bytes, wasm.__wbindgen_export);\n const len0 = WASM_VECTOR_LEN;\n wasm.inspect_document_source_wasm(retptr, ptr0, len0);\n var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);\n var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);\n var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);\n var r3 = getDataViewMemory0().getInt32(retptr + 4 * 3, true);\n var ptr2 = r0;\n var len2 = r1;\n if (r3) {\n ptr2 = 0; len2 = 0;\n throw takeObject(r2);\n }\n deferred3_0 = ptr2;\n deferred3_1 = len2;\n return getStringFromWasm0(ptr2, len2);\n } finally {\n wasm.__wbindgen_add_to_stack_pointer(16);\n wasm.__wbindgen_export4(deferred3_0, deferred3_1, 1);\n }\n}\n\n/**\n * @param {string} model_json\n * @param {any | null} [base_package]\n * @returns {string}\n */\nexport function model_to_document_xml_from_json_wasm(model_json, base_package) {\n let deferred3_0;\n let deferred3_1;\n try {\n const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);\n const ptr0 = passStringToWasm0(model_json, wasm.__wbindgen_export, wasm.__wbindgen_export2);\n const len0 = WASM_VECTOR_LEN;\n wasm.model_to_document_xml_from_json_wasm(retptr, ptr0, len0, isLikeNone(base_package) ? 0 : addHeapObject(base_package));\n var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);\n var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);\n var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);\n var r3 = getDataViewMemory0().getInt32(retptr + 4 * 3, true);\n var ptr2 = r0;\n var len2 = r1;\n if (r3) {\n ptr2 = 0; len2 = 0;\n throw takeObject(r2);\n }\n deferred3_0 = ptr2;\n deferred3_1 = len2;\n return getStringFromWasm0(ptr2, len2);\n } finally {\n wasm.__wbindgen_add_to_stack_pointer(16);\n wasm.__wbindgen_export4(deferred3_0, deferred3_1, 1);\n }\n}\n\n/**\n * @param {any} model\n * @param {any | null} [base_package]\n * @returns {string}\n */\nexport function model_to_document_xml_wasm(model, base_package) {\n let deferred2_0;\n let deferred2_1;\n try {\n const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);\n wasm.model_to_document_xml_wasm(retptr, addBorrowedObject(model), isLikeNone(base_package) ? 0 : addHeapObject(base_package));\n var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);\n var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);\n var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);\n var r3 = getDataViewMemory0().getInt32(retptr + 4 * 3, true);\n var ptr1 = r0;\n var len1 = r1;\n if (r3) {\n ptr1 = 0; len1 = 0;\n throw takeObject(r2);\n }\n deferred2_0 = ptr1;\n deferred2_1 = len1;\n return getStringFromWasm0(ptr1, len1);\n } finally {\n wasm.__wbindgen_add_to_stack_pointer(16);\n heap[stack_pointer++] = undefined;\n wasm.__wbindgen_export4(deferred2_0, deferred2_1, 1);\n }\n}\n\n/**\n * @param {any} _package\n * @returns {Uint8Array}\n */\nexport function package_to_array_buffer_wasm(_package) {\n try {\n const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);\n wasm.package_to_array_buffer_wasm(retptr, addBorrowedObject(_package));\n var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);\n var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);\n var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);\n var r3 = getDataViewMemory0().getInt32(retptr + 4 * 3, true);\n if (r3) {\n throw takeObject(r2);\n }\n var v1 = getArrayU8FromWasm0(r0, r1).slice();\n wasm.__wbindgen_export4(r0, r1 * 1, 1);\n return v1;\n } finally {\n wasm.__wbindgen_add_to_stack_pointer(16);\n heap[stack_pointer++] = undefined;\n }\n}\n\n/**\n * @param {Uint8Array} bytes\n * @returns {any}\n */\nexport function parse_docx_wasm(bytes) {\n try {\n const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);\n const ptr0 = passArray8ToWasm0(bytes, wasm.__wbindgen_export);\n const len0 = WASM_VECTOR_LEN;\n wasm.parse_docx_wasm(retptr, ptr0, len0);\n var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);\n var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);\n var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);\n if (r2) {\n throw takeObject(r1);\n }\n return takeObject(r0);\n } finally {\n wasm.__wbindgen_add_to_stack_pointer(16);\n }\n}\n\n/**\n * @param {string} model_json\n * @param {any | null} [base_package]\n * @returns {Uint8Array}\n */\nexport function serialize_docx_from_json_wasm(model_json, base_package) {\n try {\n const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);\n const ptr0 = passStringToWasm0(model_json, wasm.__wbindgen_export, wasm.__wbindgen_export2);\n const len0 = WASM_VECTOR_LEN;\n wasm.serialize_docx_from_json_wasm(retptr, ptr0, len0, isLikeNone(base_package) ? 0 : addHeapObject(base_package));\n var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);\n var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);\n var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);\n var r3 = getDataViewMemory0().getInt32(retptr + 4 * 3, true);\n if (r3) {\n throw takeObject(r2);\n }\n var v2 = getArrayU8FromWasm0(r0, r1).slice();\n wasm.__wbindgen_export4(r0, r1 * 1, 1);\n return v2;\n } finally {\n wasm.__wbindgen_add_to_stack_pointer(16);\n }\n}\n\n/**\n * @param {any} model\n * @param {any | null} [base_package]\n * @returns {Uint8Array}\n */\nexport function serialize_docx_wasm(model, base_package) {\n try {\n const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);\n wasm.serialize_docx_wasm(retptr, addBorrowedObject(model), isLikeNone(base_package) ? 0 : addHeapObject(base_package));\n var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);\n var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);\n var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);\n var r3 = getDataViewMemory0().getInt32(retptr + 4 * 3, true);\n if (r3) {\n throw takeObject(r2);\n }\n var v1 = getArrayU8FromWasm0(r0, r1).slice();\n wasm.__wbindgen_export4(r0, r1 * 1, 1);\n return v1;\n } finally {\n wasm.__wbindgen_add_to_stack_pointer(16);\n heap[stack_pointer++] = undefined;\n }\n}\nfunction __wbg_get_imports() {\n const import0 = {\n __proto__: null,\n __wbg___wbindgen_debug_string_56c147eb1a51f0c4: function(arg0, arg1) {\n const ret = debugString(getObject(arg1));\n const ptr1 = passStringToWasm0(ret, wasm.__wbindgen_export, wasm.__wbindgen_export2);\n const len1 = WASM_VECTOR_LEN;\n getDataViewMemory0().setInt32(arg0 + 4 * 1, len1, true);\n getDataViewMemory0().setInt32(arg0 + 4 * 0, ptr1, true);\n },\n __wbg___wbindgen_is_null_ced4761460071341: function(arg0) {\n const ret = getObject(arg0) === null;\n return ret;\n },\n __wbg___wbindgen_is_object_3a2c414391dbf751: function(arg0) {\n const val = getObject(arg0);\n const ret = typeof(val) === 'object' && val !== null;\n return ret;\n },\n __wbg___wbindgen_is_undefined_4410e3c20a99fa97: function(arg0) {\n const ret = getObject(arg0) === undefined;\n return ret;\n },\n __wbg___wbindgen_string_get_fa2687d531ed17a5: function(arg0, arg1) {\n const obj = getObject(arg1);\n const ret = typeof(obj) === 'string' ? obj : undefined;\n var ptr1 = isLikeNone(ret) ? 0 : passStringToWasm0(ret, wasm.__wbindgen_export, wasm.__wbindgen_export2);\n var len1 = WASM_VECTOR_LEN;\n getDataViewMemory0().setInt32(arg0 + 4 * 1, len1, true);\n getDataViewMemory0().setInt32(arg0 + 4 * 0, ptr1, true);\n },\n __wbg___wbindgen_throw_bbadd78c1bac3a77: function(arg0, arg1) {\n throw new Error(getStringFromWasm0(arg0, arg1));\n },\n __wbg_create_00e11a7cefe80760: function(arg0) {\n const ret = Object.create(getObject(arg0));\n return addHeapObject(ret);\n },\n __wbg_from_8a57180716c586ee: function(arg0) {\n const ret = Array.from(getObject(arg0));\n return addHeapObject(ret);\n },\n __wbg_get_52a8a619f7b88df6: function() { return handleError(function (arg0, arg1) {\n const ret = Reflect.get(getObject(arg0), getObject(arg1));\n return addHeapObject(ret);\n }, arguments); },\n __wbg_get_unchecked_46e778e3cec74b5e: function(arg0, arg1) {\n const ret = getObject(arg0)[arg1 >>> 0];\n return addHeapObject(ret);\n },\n __wbg_instanceof_ArrayBuffer_a581da923203f29f: function(arg0) {\n let result;\n try {\n result = getObject(arg0) instanceof ArrayBuffer;\n } catch (_) {\n result = false;\n }\n const ret = result;\n return ret;\n },\n __wbg_instanceof_Uint8Array_b6fe1ac89eba107e: function(arg0) {\n let result;\n try {\n result = getObject(arg0) instanceof Uint8Array;\n } catch (_) {\n result = false;\n }\n const ret = result;\n return ret;\n },\n __wbg_isArray_139f48e3c057ede8: function(arg0) {\n const ret = Array.isArray(getObject(arg0));\n return ret;\n },\n __wbg_keys_bd51ff67a9b04698: function(arg0) {\n const ret = Object.keys(getObject(arg0));\n return addHeapObject(ret);\n },\n __wbg_length_68a9d5278d084f4f: function(arg0) {\n const ret = getObject(arg0).length;\n return ret;\n },\n __wbg_length_fb04d16d7bdf6d4c: function(arg0) {\n const ret = getObject(arg0).length;\n return ret;\n },\n __wbg_new_0b303268aa395a38: function() {\n const ret = new Array();\n return addHeapObject(ret);\n },\n __wbg_new_20b778a4c5c691c3: function() {\n const ret = new Object();\n return addHeapObject(ret);\n },\n __wbg_new_b06772b280cc6e52: function(arg0) {\n const ret = new Uint8Array(getObject(arg0));\n return addHeapObject(ret);\n },\n __wbg_new_from_slice_bb2d1778c0b87eb1: function(arg0, arg1) {\n const ret = new Uint8Array(getArrayU8FromWasm0(arg0, arg1));\n return addHeapObject(ret);\n },\n __wbg_now_c1f9831c87b83a0b: function() {\n const ret = performance.now();\n return ret;\n },\n __wbg_parse_246201845d0eb98c: function() { return handleError(function (arg0, arg1) {\n const ret = JSON.parse(getStringFromWasm0(arg0, arg1));\n return addHeapObject(ret);\n }, arguments); },\n __wbg_prototypesetcall_956c7493c68e29b4: function(arg0, arg1, arg2) {\n Uint8Array.prototype.set.call(getArrayU8FromWasm0(arg0, arg1), getObject(arg2));\n },\n __wbg_push_ceb8ef046afb2041: function(arg0, arg1) {\n const ret = getObject(arg0).push(getObject(arg1));\n return ret;\n },\n __wbg_set_a6ba3ac0e634b822: function() { return handleError(function (arg0, arg1, arg2) {\n const ret = Reflect.set(getObject(arg0), getObject(arg1), getObject(arg2));\n return ret;\n }, arguments); },\n __wbg_stringify_a42c95ea9a7591c9: function() { return handleError(function (arg0) {\n const ret = JSON.stringify(getObject(arg0));\n return addHeapObject(ret);\n }, arguments); },\n __wbindgen_cast_0000000000000001: function(arg0) {\n // Cast intrinsic for `F64 -> Externref`.\n const ret = arg0;\n return addHeapObject(ret);\n },\n __wbindgen_cast_0000000000000002: function(arg0, arg1) {\n // Cast intrinsic for `Ref(String) -> Externref`.\n const ret = getStringFromWasm0(arg0, arg1);\n return addHeapObject(ret);\n },\n __wbindgen_object_drop_ref: function(arg0) {\n takeObject(arg0);\n },\n };\n return {\n __proto__: null,\n \"./docx_wasm_bg.js\": import0,\n };\n}\n\nfunction addHeapObject(obj) {\n if (heap_next === heap.length) heap.push(heap.length + 1);\n const idx = heap_next;\n heap_next = heap[idx];\n\n heap[idx] = obj;\n return idx;\n}\n\nfunction addBorrowedObject(obj) {\n if (stack_pointer == 1) throw new Error('out of js stack');\n heap[--stack_pointer] = obj;\n return stack_pointer;\n}\n\nfunction debugString(val) {\n // primitive types\n const type = typeof val;\n if (type == 'number' || type == 'boolean' || val == null) {\n return `${val}`;\n }\n if (type == 'string') {\n return `\"${val}\"`;\n }\n if (type == 'symbol') {\n const description = val.description;\n if (description == null) {\n return 'Symbol';\n } else {\n return `Symbol(${description})`;\n }\n }\n if (type == 'function') {\n const name = val.name;\n if (typeof name == 'string' && name.length > 0) {\n return `Function(${name})`;\n } else {\n return 'Function';\n }\n }\n // objects\n if (Array.isArray(val)) {\n const length = val.length;\n let debug = '[';\n if (length > 0) {\n debug += debugString(val[0]);\n }\n for(let i = 1; i < length; i++) {\n debug += ', ' + debugString(val[i]);\n }\n debug += ']';\n return debug;\n }\n // Test for built-in\n const builtInMatches = /\\[object ([^\\]]+)\\]/.exec(toString.call(val));\n let className;\n if (builtInMatches && builtInMatches.length > 1) {\n className = builtInMatches[1];\n } else {\n // Failed to match the standard '[object ClassName]'\n return toString.call(val);\n }\n if (className == 'Object') {\n // we're a user defined class or Object\n // JSON.stringify avoids problems with cycles, and is generally much\n // easier than looping through ownProperties of `val`.\n try {\n return 'Object(' + JSON.stringify(val) + ')';\n } catch (_) {\n return 'Object';\n }\n }\n // errors\n if (val instanceof Error) {\n return `${val.name}: ${val.message}\\n${val.stack}`;\n }\n // TODO we could test for more things here, like `Set`s and `Map`s.\n return className;\n}\n\nfunction dropObject(idx) {\n if (idx < 1028) return;\n heap[idx] = heap_next;\n heap_next = idx;\n}\n\nfunction getArrayU8FromWasm0(ptr, len) {\n ptr = ptr >>> 0;\n return getUint8ArrayMemory0().subarray(ptr / 1, ptr / 1 + len);\n}\n\nlet cachedDataViewMemory0 = null;\nfunction getDataViewMemory0() {\n if (cachedDataViewMemory0 === null || cachedDataViewMemory0.buffer.detached === true || (cachedDataViewMemory0.buffer.detached === undefined && cachedDataViewMemory0.buffer !== wasm.memory.buffer)) {\n cachedDataViewMemory0 = new DataView(wasm.memory.buffer);\n }\n return cachedDataViewMemory0;\n}\n\nfunction getStringFromWasm0(ptr, len) {\n return decodeText(ptr >>> 0, len);\n}\n\nlet cachedUint8ArrayMemory0 = null;\nfunction getUint8ArrayMemory0() {\n if (cachedUint8ArrayMemory0 === null || cachedUint8ArrayMemory0.byteLength === 0) {\n cachedUint8ArrayMemory0 = new Uint8Array(wasm.memory.buffer);\n }\n return cachedUint8ArrayMemory0;\n}\n\nfunction getObject(idx) { return heap[idx]; }\n\nfunction handleError(f, args) {\n try {\n return f.apply(this, args);\n } catch (e) {\n wasm.__wbindgen_export3(addHeapObject(e));\n }\n}\n\nlet heap = new Array(1024).fill(undefined);\nheap.push(undefined, null, true, false);\n\nlet heap_next = heap.length;\n\nfunction isLikeNone(x) {\n return x === undefined || x === null;\n}\n\nfunction passArray8ToWasm0(arg, malloc) {\n const ptr = malloc(arg.length * 1, 1) >>> 0;\n getUint8ArrayMemory0().set(arg, ptr / 1);\n WASM_VECTOR_LEN = arg.length;\n return ptr;\n}\n\nfunction passStringToWasm0(arg, malloc, realloc) {\n if (realloc === undefined) {\n const buf = cachedTextEncoder.encode(arg);\n const ptr = malloc(buf.length, 1) >>> 0;\n getUint8ArrayMemory0().subarray(ptr, ptr + buf.length).set(buf);\n WASM_VECTOR_LEN = buf.length;\n return ptr;\n }\n\n let len = arg.length;\n let ptr = malloc(len, 1) >>> 0;\n\n const mem = getUint8ArrayMemory0();\n\n let offset = 0;\n\n for (; offset < len; offset++) {\n const code = arg.charCodeAt(offset);\n if (code > 0x7F) break;\n mem[ptr + offset] = code;\n }\n if (offset !== len) {\n if (offset !== 0) {\n arg = arg.slice(offset);\n }\n ptr = realloc(ptr, len, len = offset + arg.length * 3, 1) >>> 0;\n const view = getUint8ArrayMemory0().subarray(ptr + offset, ptr + len);\n const ret = cachedTextEncoder.encodeInto(arg, view);\n\n offset += ret.written;\n ptr = realloc(ptr, len, offset, 1) >>> 0;\n }\n\n WASM_VECTOR_LEN = offset;\n return ptr;\n}\n\nlet stack_pointer = 1024;\n\nfunction takeObject(idx) {\n const ret = getObject(idx);\n dropObject(idx);\n return ret;\n}\n\nlet cachedTextDecoder = new TextDecoder('utf-8', { ignoreBOM: true, fatal: true });\ncachedTextDecoder.decode();\nconst MAX_SAFARI_DECODE_BYTES = 2146435072;\nlet numBytesDecoded = 0;\nfunction decodeText(ptr, len) {\n numBytesDecoded += len;\n if (numBytesDecoded >= MAX_SAFARI_DECODE_BYTES) {\n cachedTextDecoder = new TextDecoder('utf-8', { ignoreBOM: true, fatal: true });\n cachedTextDecoder.decode();\n numBytesDecoded = len;\n }\n return cachedTextDecoder.decode(getUint8ArrayMemory0().subarray(ptr, ptr + len));\n}\n\nconst cachedTextEncoder = new TextEncoder();\n\nif (!('encodeInto' in cachedTextEncoder)) {\n cachedTextEncoder.encodeInto = function (arg, view) {\n const buf = cachedTextEncoder.encode(arg);\n view.set(buf);\n return {\n read: arg.length,\n written: buf.length\n };\n };\n}\n\nlet WASM_VECTOR_LEN = 0;\n\nlet wasmModule, wasmInstance, wasm;\nfunction __wbg_finalize_init(instance, module) {\n wasmInstance = instance;\n wasm = instance.exports;\n wasmModule = module;\n cachedDataViewMemory0 = null;\n cachedUint8ArrayMemory0 = null;\n return wasm;\n}\n\nasync function __wbg_load(module, imports) {\n if (typeof Response === 'function' && module instanceof Response) {\n if (typeof WebAssembly.instantiateStreaming === 'function') {\n try {\n return await WebAssembly.instantiateStreaming(module, imports);\n } catch (e) {\n const validResponse = module.ok && expectedResponseType(module.type);\n\n if (validResponse && module.headers.get('Content-Type') !== 'application/wasm') {\n console.warn(\"`WebAssembly.instantiateStreaming` failed because your server does not serve Wasm with `application/wasm` MIME type. Falling back to `WebAssembly.instantiate` which is slower. Original error:\\n\", e);\n\n } else { throw e; }\n }\n }\n\n const bytes = await module.arrayBuffer();\n return await WebAssembly.instantiate(bytes, imports);\n } else {\n const instance = await WebAssembly.instantiate(module, imports);\n\n if (instance instanceof WebAssembly.Instance) {\n return { instance, module };\n } else {\n return instance;\n }\n }\n\n function expectedResponseType(type) {\n switch (type) {\n case 'basic': case 'cors': case 'default': return true;\n }\n return false;\n }\n}\n\nfunction initSync(module) {\n if (wasm !== undefined) return wasm;\n\n\n if (module !== undefined) {\n if (Object.getPrototypeOf(module) === Object.prototype) {\n ({module} = module)\n } else {\n console.warn('using deprecated parameters for `initSync()`; pass a single object instead')\n }\n }\n\n const imports = __wbg_get_imports();\n if (!(module instanceof WebAssembly.Module)) {\n module = new WebAssembly.Module(module);\n }\n const instance = new WebAssembly.Instance(module, imports);\n return __wbg_finalize_init(instance, module);\n}\n\nasync function __wbg_init(module_or_path) {\n if (wasm !== undefined) return wasm;\n\n\n if (module_or_path !== undefined) {\n if (Object.getPrototypeOf(module_or_path) === Object.prototype) {\n ({module_or_path} = module_or_path)\n } else {\n console.warn('using deprecated parameters for the initialization function; pass a single object instead')\n }\n }\n\n if (module_or_path === undefined) {\n module_or_path = new URL('docx_wasm_bg.wasm', import.meta.url);\n }\n const imports = __wbg_get_imports();\n\n if (typeof module_or_path === 'string' || (typeof Request === 'function' && module_or_path instanceof Request) || (typeof URL === 'function' && module_or_path instanceof URL)) {\n module_or_path = fetch(module_or_path);\n }\n\n const { instance, module } = await __wbg_load(await module_or_path, imports);\n\n return __wbg_finalize_init(instance, module);\n}\n\nexport { initSync, __wbg_init as default };\n","import type { InitInput, InitOutput } from \"./generated/docx_wasm.js\";\nimport wasmInit, {\n build_doc_model_from_bytes,\n build_doc_model_from_package,\n extract_document_blocks_wasm,\n extract_document_blocks_with_options_wasm,\n inspect_document_source_wasm,\n model_to_document_xml_from_json_wasm,\n package_to_array_buffer_wasm,\n parse_docx_wasm,\n serialize_docx_from_json_wasm,\n serialize_docx_wasm\n} from \"./generated/docx_wasm.js\";\n\nexport type WasmSource = InitInput;\n\nlet initPromise: Promise<InitOutput> | undefined;\nlet overrideSource: WasmSource | undefined;\n\n/**\n * Override where the `docx_wasm_bg.wasm` binary is loaded from (URL, Response,\n * bytes, or a compiled module). Must be called before the first operation that\n * touches WASM; by default the binary shipped alongside this package is used.\n */\nexport function setWasmSource(source: WasmSource): void {\n if (initPromise) {\n throw new Error(\n \"react-docx: setWasmSource must be called before the first parse/serialize call initializes WASM\"\n );\n }\n overrideSource = source;\n}\n\ninterface FsPromisesLike {\n readFile(path: URL): Promise<Uint8Array>;\n}\n\n// Resolve node:fs/promises without a static or dynamic `import(\"node:...\")`\n// in the module graph — browser bundlers must never see the specifier or\n// they fail the consumer's build.\nasync function nodeFsPromises(): Promise<FsPromisesLike> {\n const proc = (globalThis as { process?: { getBuiltinModule?: (id: string) => unknown } }).process;\n if (typeof proc?.getBuiltinModule === \"function\") {\n return proc.getBuiltinModule(\"node:fs/promises\") as FsPromisesLike;\n }\n // Node < 22.3 fallback; never executed in browsers.\n const dynamicImport = new Function(\"specifier\", \"return import(specifier)\") as (\n specifier: string\n ) => Promise<FsPromisesLike>;\n return dynamicImport(\"node:fs/promises\");\n}\n\nasync function defaultWasmSource(): Promise<WasmSource> {\n const wasmUrl = new URL(\"./docx_wasm_bg.wasm\", import.meta.url);\n if (wasmUrl.protocol === \"file:\") {\n const fs = await nodeFsPromises();\n return fs.readFile(wasmUrl);\n }\n const response = await fetch(wasmUrl);\n if (!response.ok) {\n throw new Error(\n `react-docx: failed to load the bundled WebAssembly binary from ${wasmUrl.href} ` +\n `(${response.status} ${response.statusText}). If your bundler did not emit this asset, ` +\n \"import @extend-ai/react-docx/docx_wasm_bg.wasm?url and pass it to setWasmSource() before importing a document.\"\n );\n }\n return response;\n}\n\nexport async function initWasm(source?: WasmSource): Promise<InitOutput> {\n if (!initPromise) {\n const chosen = source ?? overrideSource;\n initPromise = (chosen !== undefined ? Promise.resolve(chosen) : defaultWasmSource())\n .then((module_or_path) => wasmInit({ module_or_path }))\n .catch((error: unknown) => {\n if (error instanceof WebAssembly.CompileError) {\n throw new Error(\n \"react-docx: the bundled WebAssembly binary failed to compile. It requires \" +\n \"WebAssembly SIMD support (Chrome 91+, Firefox 89+, Safari 16.4+, Node 16.4+). \" +\n `Original error: ${error.message}`,\n { cause: error }\n );\n }\n throw error;\n });\n }\n return initPromise;\n}\n\nexport interface WasmOoxmlPart {\n name: string;\n content: string;\n}\n\nexport interface WasmOoxmlPackage {\n parts: Record<string, WasmOoxmlPart>;\n binaryAssets: Record<string, Uint8Array>;\n warnings?: string[];\n}\n\n/** Package shape produced by pre-Uint8Array versions of this library. */\nexport interface LegacyWasmOoxmlPackage {\n parts: Record<string, WasmOoxmlPart>;\n binaryAssets: Record<string, number[]>;\n warnings?: string[];\n}\n\nfunction toUint8Array(value: number[] | Uint8Array): Uint8Array {\n return value instanceof Uint8Array ? value : Uint8Array.from(value);\n}\n\nexport function docModelToWasmJson(model: unknown): string {\n return JSON.stringify(model, (_key, value) => {\n if (value instanceof Uint8Array) {\n return Array.from(value);\n }\n return value;\n });\n}\n\nexport function wasmPackageToMaps(raw: WasmOoxmlPackage | LegacyWasmOoxmlPackage): {\n parts: Map<string, WasmOoxmlPart>;\n binaryAssets: Map<string, Uint8Array>;\n warnings: string[];\n} {\n const parts = new Map<string, WasmOoxmlPart>();\n for (const [name, part] of Object.entries(raw.parts ?? {})) {\n parts.set(name, {\n name: part.name ?? name,\n content: part.content\n });\n }\n\n const binaryAssets = new Map<string, Uint8Array>();\n for (const [name, asset] of Object.entries(raw.binaryAssets ?? {})) {\n binaryAssets.set(name, toUint8Array(asset));\n }\n\n return {\n parts,\n binaryAssets,\n warnings: Array.isArray(raw.warnings) ? [...raw.warnings] : []\n };\n}\n\nexport function mapsToWasmPackage(input: {\n parts: Map<string, WasmOoxmlPart>;\n binaryAssets: Map<string, Uint8Array>;\n warnings?: string[];\n}): WasmOoxmlPackage {\n const parts: Record<string, WasmOoxmlPart> = {};\n for (const [name, part] of input.parts.entries()) {\n parts[name] = {\n name: part.name,\n content: part.content\n };\n }\n\n // Buffers are shared, not copied; the wasm boundary copies on read and JS\n // callers already treat package asset buffers as immutable.\n const binaryAssets: Record<string, Uint8Array> = {};\n for (const [name, asset] of input.binaryAssets.entries()) {\n binaryAssets[name] = asset;\n }\n\n return {\n parts,\n binaryAssets,\n ...(input.warnings && input.warnings.length > 0 ? { warnings: [...input.warnings] } : {})\n };\n}\n\nexport async function wasmParseDocx(bytes: ArrayBuffer | Uint8Array): Promise<WasmOoxmlPackage> {\n await initWasm();\n const payload = bytes instanceof Uint8Array ? bytes : new Uint8Array(bytes);\n return parse_docx_wasm(payload) as WasmOoxmlPackage;\n}\n\nexport async function wasmBuildDocModelFromPackage(pkg: WasmOoxmlPackage): Promise<unknown> {\n await initWasm();\n const json = build_doc_model_from_package(pkg);\n return JSON.parse(json) as unknown;\n}\n\nexport async function wasmInspectDocumentSource(bytes: ArrayBuffer | Uint8Array): Promise<unknown> {\n await initWasm();\n return JSON.parse(inspect_document_source_wasm(bytes instanceof Uint8Array ? bytes : new Uint8Array(bytes)));\n}\n\nexport async function wasmExtractDocumentBlocks(\n model: unknown,\n options: { includeWords?: boolean } = {}\n): Promise<unknown> {\n await initWasm();\n const json = JSON.stringify(model, (key, value) => key === \"data\" || key === \"src\" ? undefined : value);\n return JSON.parse(options.includeWords\n ? extract_document_blocks_with_options_wasm(json, JSON.stringify(options))\n : extract_document_blocks_wasm(json));\n}\n\nexport async function wasmBuildDocModelFromBytes(bytes: ArrayBuffer | Uint8Array): Promise<{\n package: WasmOoxmlPackage;\n model: unknown;\n timings: { parseMs: number; buildModelMs: number };\n}> {\n await initWasm();\n const payload = bytes instanceof Uint8Array ? bytes : new Uint8Array(bytes);\n return build_doc_model_from_bytes(payload) as {\n package: WasmOoxmlPackage;\n model: unknown;\n timings: { parseMs: number; buildModelMs: number };\n };\n}\n\nexport async function wasmSerializeDocx(\n model: unknown,\n basePackage?: WasmOoxmlPackage\n): Promise<ArrayBuffer> {\n await initWasm();\n const modelJson = docModelToWasmJson(model);\n const bytes = serialize_docx_from_json_wasm(modelJson, basePackage ?? null);\n return bytes.buffer.slice(bytes.byteOffset, bytes.byteOffset + bytes.byteLength) as ArrayBuffer;\n}\n\nexport async function wasmModelToDocumentXml(\n model: unknown,\n basePackage?: WasmOoxmlPackage\n): Promise<string> {\n await initWasm();\n return model_to_document_xml_from_json_wasm(docModelToWasmJson(model), basePackage ?? null);\n}\n\nexport async function wasmPackageToArrayBuffer(pkg: WasmOoxmlPackage): Promise<ArrayBuffer> {\n await initWasm();\n const bytes = package_to_array_buffer_wasm(pkg);\n return bytes.buffer.slice(bytes.byteOffset, bytes.byteOffset + bytes.byteLength) as ArrayBuffer;\n}\n\nexport {\n build_doc_model_from_bytes,\n build_doc_model_from_package,\n model_to_document_xml_from_json_wasm,\n package_to_array_buffer_wasm,\n parse_docx_wasm,\n serialize_docx_from_json_wasm,\n serialize_docx_wasm\n};\n"],"mappings":"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","names":["ptr"]}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
Copyright (c) 2021, Michael Williamson
|
|
2
|
+
All rights reserved.
|
|
3
|
+
|
|
4
|
+
Redistribution and use in source and binary forms, with or without
|
|
5
|
+
modification, are permitted provided that the following conditions are met:
|
|
6
|
+
|
|
7
|
+
1. Redistributions of source code must retain the above copyright notice, this
|
|
8
|
+
list of conditions and the following disclaimer.
|
|
9
|
+
2. Redistributions in binary form must reproduce the above copyright notice,
|
|
10
|
+
this list of conditions and the following disclaimer in the documentation
|
|
11
|
+
and/or other materials provided with the distribution.
|
|
12
|
+
|
|
13
|
+
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
|
14
|
+
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
|
15
|
+
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
|
16
|
+
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
|
|
17
|
+
ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
|
18
|
+
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
|
19
|
+
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
|
|
20
|
+
ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
|
21
|
+
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
|
22
|
+
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
@@ -499,12 +499,13 @@ function normalizeParagraphChild(child) {
|
|
|
499
499
|
}
|
|
500
500
|
const image = child;
|
|
501
501
|
const data = normalizeUint8Array(image.data);
|
|
502
|
-
if (data === image.data) {
|
|
502
|
+
if (data === image.data && !image.contentNodes) {
|
|
503
503
|
return child;
|
|
504
504
|
}
|
|
505
505
|
return {
|
|
506
506
|
...image,
|
|
507
|
-
data
|
|
507
|
+
data,
|
|
508
|
+
contentNodes: image.contentNodes?.map(normalizeDocNode)
|
|
508
509
|
};
|
|
509
510
|
}
|
|
510
511
|
function normalizeTableCellContent(node) {
|
|
@@ -563,6 +564,10 @@ function normalizeDocModel(model) {
|
|
|
563
564
|
...note,
|
|
564
565
|
nodes: note.nodes?.map(normalizeDocNode)
|
|
565
566
|
})),
|
|
567
|
+
comments: model.metadata.comments?.map((comment) => ({
|
|
568
|
+
...comment,
|
|
569
|
+
nodes: comment.nodes?.map(normalizeDocNode)
|
|
570
|
+
})),
|
|
566
571
|
endnotes: model.metadata.endnotes?.map((note) => ({
|
|
567
572
|
...note,
|
|
568
573
|
nodes: note.nodes?.map(normalizeDocNode)
|