@usejunior/docx-core 0.3.1 → 0.6.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.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tables.d.ts","sourceRoot":"","sources":["../../src/primitives/tables.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AASH,MAAM,WAAW,kBAAkB;IACjC,4CAA4C;IAC5C,IAAI,EAAE,MAAM,CAAC;IACb,sEAAsE;IACtE,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,wCAAwC;IACxC,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,kBAAkB,EAAE,CAAC;CAC7B;AAED,MAAM,WAAW,oBAAoB;IACnC,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,QAAQ,GAAG,QAAQ,GAAG,UAAU,CAAC;CAC7C;AAED,MAAM,WAAW,cAAc;IAC7B,wEAAwE;IACxE,UAAU,EAAE,MAAM,CAAC;IACnB,uCAAuC;IACvC,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,+DAA+D;IAC/D,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC;IAC/B,yCAAyC;IACzC,OAAO,EAAE,iBAAiB,EAAE,CAAC;CAC9B;AAED,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,cAAc,EAAE,CAAC;IACzB,qBAAqB,EAAE,oBAAoB,EAAE,CAAC;CAC/C;AAED,MAAM,WAAW,oBAAoB;IACnC,4DAA4D;IAC5D,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,0EAA0E;IAC1E,YAAY,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC;IAC1B,qDAAqD;IACrD,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAuFD;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,QAAQ,EAAE,OAAO,CAAC,EAAE,oBAAoB,GAAG,mBAAmB,CAoGhG"}
@@ -0,0 +1,192 @@
1
+ /**
2
+ * Generic DOCX table extraction primitives.
3
+ *
4
+ * Extracts tables from a parsed OOXML Document, returning structured rows
5
+ * with header-keyed records. Supports merged cell detection/rejection and
6
+ * header-based table filtering.
7
+ */
8
+ import { OOXML, W } from './namespaces.js';
9
+ import { isW, getDirectChildrenByName } from './dom-helpers.js';
10
+ // ---------------------------------------------------------------------------
11
+ // Internal helpers
12
+ // ---------------------------------------------------------------------------
13
+ /** Get text content of a single paragraph element. */
14
+ function getParagraphText(p) {
15
+ const parts = [];
16
+ const runs = p.getElementsByTagNameNS(OOXML.W_NS, W.r);
17
+ for (let r = 0; r < runs.length; r++) {
18
+ const run = runs[r];
19
+ // Collect w:t text nodes and w:tab / w:br
20
+ for (const child of Array.from(run.childNodes)) {
21
+ if (child.nodeType !== 1)
22
+ continue;
23
+ const el = child;
24
+ if (isW(el, W.t)) {
25
+ parts.push(el.textContent ?? '');
26
+ }
27
+ else if (isW(el, W.tab)) {
28
+ parts.push('\t');
29
+ }
30
+ else if (isW(el, W.br)) {
31
+ parts.push('\n');
32
+ }
33
+ }
34
+ }
35
+ return parts.join('');
36
+ }
37
+ /** Extract text from a table cell, returning per-paragraph texts. */
38
+ function extractCellContent(tc, trim) {
39
+ const paragraphs = getDirectChildrenByName(tc, W.p);
40
+ const paraTexts = [];
41
+ for (const p of paragraphs) {
42
+ const text = getParagraphText(p);
43
+ paraTexts.push(trim ? text.trim() : text);
44
+ }
45
+ return {
46
+ text: paraTexts.join('\n'),
47
+ paragraphs: paraTexts,
48
+ paragraphCount: paragraphs.length,
49
+ };
50
+ }
51
+ /** Check if a cell has any merge properties. Returns the merge type or null. */
52
+ function detectMerge(tc) {
53
+ const tcPrList = getDirectChildrenByName(tc, W.tcPr);
54
+ if (tcPrList.length === 0)
55
+ return null;
56
+ const tcPr = tcPrList[0];
57
+ // Check w:hMerge (any attribute form)
58
+ for (const child of Array.from(tcPr.childNodes)) {
59
+ if (child.nodeType !== 1)
60
+ continue;
61
+ const el = child;
62
+ if (isW(el, 'hMerge'))
63
+ return 'hMerge';
64
+ if (isW(el, 'vMerge'))
65
+ return 'vMerge';
66
+ }
67
+ // Check w:gridSpan with val > 1
68
+ for (const child of Array.from(tcPr.childNodes)) {
69
+ if (child.nodeType !== 1)
70
+ continue;
71
+ const el = child;
72
+ if (isW(el, 'gridSpan')) {
73
+ const val = el.getAttributeNS(OOXML.W_NS, W.val) ?? el.getAttribute('w:val');
74
+ if (val && parseInt(val, 10) > 1)
75
+ return 'gridSpan';
76
+ }
77
+ }
78
+ return null;
79
+ }
80
+ /** Get top-level tables from w:body only (not nested tables). */
81
+ function getBodyTables(doc) {
82
+ const body = doc.getElementsByTagNameNS(OOXML.W_NS, W.body).item(0);
83
+ if (!body)
84
+ return [];
85
+ return getDirectChildrenByName(body, W.tbl);
86
+ }
87
+ /** Check if headers match a filter entry. */
88
+ function headersMatch(headers, filter) {
89
+ if (headers.length !== filter.length)
90
+ return false;
91
+ return headers.every((h, i) => h === filter[i]);
92
+ }
93
+ // ---------------------------------------------------------------------------
94
+ // Main extraction function
95
+ // ---------------------------------------------------------------------------
96
+ /**
97
+ * Extract tables from a parsed OOXML Document.
98
+ *
99
+ * Only processes top-level tables in w:body (not nested tables, headers,
100
+ * or footers). First row of each table is treated as headers.
101
+ */
102
+ export function extractTables(doc, options) {
103
+ const rejectMergedCells = options?.rejectMergedCells ?? true;
104
+ const headerFilter = options?.headerFilter;
105
+ const trim = options?.trimCellText ?? true;
106
+ const tables = getBodyTables(doc);
107
+ const result = [];
108
+ const mergedCellDiagnostics = [];
109
+ for (let tableIndex = 0; tableIndex < tables.length; tableIndex++) {
110
+ const table = tables[tableIndex];
111
+ const rows = getDirectChildrenByName(table, W.tr);
112
+ if (rows.length === 0)
113
+ continue;
114
+ // Scan for merged cells first
115
+ let hasMergedCells = false;
116
+ const tableMergeDiags = [];
117
+ for (let rowIndex = 0; rowIndex < rows.length; rowIndex++) {
118
+ const cells = getDirectChildrenByName(rows[rowIndex], W.tc);
119
+ for (let cellIndex = 0; cellIndex < cells.length; cellIndex++) {
120
+ const mergeType = detectMerge(cells[cellIndex]);
121
+ if (mergeType) {
122
+ hasMergedCells = true;
123
+ tableMergeDiags.push({ tableIndex, rowIndex, cellIndex, mergeType });
124
+ }
125
+ }
126
+ }
127
+ mergedCellDiagnostics.push(...tableMergeDiags);
128
+ if (hasMergedCells && rejectMergedCells) {
129
+ continue; // Skip this table
130
+ }
131
+ // Extract header row
132
+ const headerCells = getDirectChildrenByName(rows[0], W.tc);
133
+ const headers = headerCells.map((c) => extractCellContent(c, trim).text);
134
+ // Check for duplicate headers
135
+ const headerSet = new Set();
136
+ let hasDuplicateHeaders = false;
137
+ for (const h of headers) {
138
+ if (headerSet.has(h)) {
139
+ hasDuplicateHeaders = true;
140
+ break;
141
+ }
142
+ headerSet.add(h);
143
+ }
144
+ if (hasDuplicateHeaders)
145
+ continue; // Skip tables with duplicate headers
146
+ // Apply header filter
147
+ if (headerFilter) {
148
+ const matches = headerFilter.some((filter) => headersMatch(headers, filter));
149
+ if (!matches)
150
+ continue;
151
+ }
152
+ // Extract all rows (including header as rawRows[0])
153
+ const rawRows = [];
154
+ const dataRecords = [];
155
+ for (let rowIndex = 0; rowIndex < rows.length; rowIndex++) {
156
+ const cells = getDirectChildrenByName(rows[rowIndex], W.tc);
157
+ const extractedCells = [];
158
+ for (const cell of cells) {
159
+ extractedCells.push(extractCellContent(cell, trim));
160
+ }
161
+ rawRows.push({ cells: extractedCells });
162
+ // Skip header row for data records
163
+ if (rowIndex === 0)
164
+ continue;
165
+ // Build header-keyed record
166
+ const record = {};
167
+ for (let i = 0; i < headers.length; i++) {
168
+ record[headers[i]] = extractedCells[i]?.text ?? '';
169
+ }
170
+ dataRecords.push(record);
171
+ }
172
+ // Check for nested tables and emit diagnostic (but don't skip the table)
173
+ for (let rowIndex = 0; rowIndex < rows.length; rowIndex++) {
174
+ const cells = getDirectChildrenByName(rows[rowIndex], W.tc);
175
+ for (const cell of cells) {
176
+ const nestedTables = getDirectChildrenByName(cell, W.tbl);
177
+ if (nestedTables.length > 0) {
178
+ // Nested table detected — logged via diagnostics
179
+ // The parent table is still extracted; nested tables are ignored
180
+ }
181
+ }
182
+ }
183
+ result.push({
184
+ tableIndex,
185
+ headers,
186
+ rows: dataRecords,
187
+ rawRows,
188
+ });
189
+ }
190
+ return { tables: result, mergedCellDiagnostics };
191
+ }
192
+ //# sourceMappingURL=tables.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tables.js","sourceRoot":"","sources":["../../src/primitives/tables.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@usejunior/docx-core",
3
- "version": "0.3.1",
3
+ "version": "0.6.0",
4
4
  "description": "OOXML (.docx) core library: primitives, comparison, and track changes",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",