kordoc 2.2.4 → 2.2.5
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 +42 -3
- package/dist/chunk-JH5XLWJQ.js +457 -0
- package/dist/chunk-JH5XLWJQ.js.map +1 -0
- package/dist/chunk-MUOQXDZ4.cjs +33 -0
- package/dist/chunk-MUOQXDZ4.cjs.map +1 -0
- package/dist/chunk-OJ4QR33V.cjs +450 -0
- package/dist/chunk-OJ4QR33V.cjs.map +1 -0
- package/dist/{chunk-SY2RFVLW.js → chunk-RQWICKON.js} +135 -2805
- package/dist/chunk-RQWICKON.js.map +1 -0
- package/dist/chunk-SBVRCJFH.js +33 -0
- package/dist/chunk-SBVRCJFH.js.map +1 -0
- package/dist/chunk-UU2O6D3R.js +450 -0
- package/dist/chunk-UU2O6D3R.js.map +1 -0
- package/dist/cli.js +9 -7
- package/dist/cli.js.map +1 -1
- package/dist/index.cjs +294 -3084
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +77 -2817
- package/dist/index.js.map +1 -1
- package/dist/mcp.js +15 -9
- package/dist/mcp.js.map +1 -1
- package/dist/page-range-3C7UGGEK.cjs +7 -0
- package/dist/page-range-3C7UGGEK.cjs.map +1 -0
- package/dist/page-range-H35FN3OQ.js +7 -0
- package/dist/page-range-H35FN3OQ.js.map +1 -0
- package/dist/parser-CYBX5MP4.cjs +2278 -0
- package/dist/parser-CYBX5MP4.cjs.map +1 -0
- package/dist/parser-OIRWPKIQ.js +2278 -0
- package/dist/parser-OIRWPKIQ.js.map +1 -0
- package/dist/parser-PXD73E4H.js +2279 -0
- package/dist/parser-PXD73E4H.js.map +1 -0
- package/dist/provider-WPIYEALY.js +37 -0
- package/dist/provider-WPIYEALY.js.map +1 -0
- package/dist/provider-YN2SSK4X.cjs +37 -0
- package/dist/provider-YN2SSK4X.cjs.map +1 -0
- package/dist/{watch-5P7DJ3HG.js → watch-NSBABJ4A.js} +6 -4
- package/dist/{watch-5P7DJ3HG.js.map → watch-NSBABJ4A.js.map} +1 -1
- package/package.json +1 -1
- package/dist/chunk-SY2RFVLW.js.map +0 -1
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true});// src/page-range.ts
|
|
2
|
+
function parsePageRange(spec, maxPages) {
|
|
3
|
+
const result = /* @__PURE__ */ new Set();
|
|
4
|
+
if (maxPages <= 0) return result;
|
|
5
|
+
if (Array.isArray(spec)) {
|
|
6
|
+
for (const n of spec) {
|
|
7
|
+
const page = Math.round(n);
|
|
8
|
+
if (page >= 1 && page <= maxPages) result.add(page);
|
|
9
|
+
}
|
|
10
|
+
return result;
|
|
11
|
+
}
|
|
12
|
+
if (typeof spec !== "string" || spec.trim() === "") return result;
|
|
13
|
+
const parts = spec.split(",");
|
|
14
|
+
for (const part of parts) {
|
|
15
|
+
const trimmed = part.trim();
|
|
16
|
+
if (!trimmed) continue;
|
|
17
|
+
const rangeMatch = trimmed.match(/^(\d+)\s*-\s*(\d+)$/);
|
|
18
|
+
if (rangeMatch) {
|
|
19
|
+
const start = Math.max(1, parseInt(rangeMatch[1], 10));
|
|
20
|
+
const end = Math.min(maxPages, parseInt(rangeMatch[2], 10));
|
|
21
|
+
for (let i = start; i <= end; i++) result.add(i);
|
|
22
|
+
} else {
|
|
23
|
+
const page = parseInt(trimmed, 10);
|
|
24
|
+
if (!isNaN(page) && page >= 1 && page <= maxPages) result.add(page);
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
return result;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
exports.parsePageRange = parsePageRange;
|
|
33
|
+
//# sourceMappingURL=chunk-MUOQXDZ4.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["c:\\github_project\\kordoc\\dist\\chunk-MUOQXDZ4.cjs"],"names":[],"mappings":"AAAA;AACA,SAAS,cAAc,CAAC,IAAI,EAAE,QAAQ,EAAE;AACxC,EAAE,MAAM,OAAO,kBAAkB,IAAI,GAAG,CAAC,CAAC;AAC1C,EAAE,GAAG,CAAC,SAAS,GAAG,CAAC,EAAE,OAAO,MAAM;AAClC,EAAE,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;AAC3B,IAAI,IAAI,CAAC,MAAM,EAAE,GAAG,IAAI,EAAE;AAC1B,MAAM,MAAM,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;AAChC,MAAM,GAAG,CAAC,KAAK,GAAG,EAAE,GAAG,KAAK,GAAG,QAAQ,EAAE,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC;AACzD,IAAI;AACJ,IAAI,OAAO,MAAM;AACjB,EAAE;AACF,EAAE,GAAG,CAAC,OAAO,KAAK,IAAI,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,EAAE,OAAO,MAAM;AACnE,EAAE,MAAM,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC;AAC/B,EAAE,IAAI,CAAC,MAAM,KAAK,GAAG,KAAK,EAAE;AAC5B,IAAI,MAAM,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;AAC/B,IAAI,GAAG,CAAC,CAAC,OAAO,EAAE,QAAQ;AAC1B,IAAI,MAAM,WAAW,EAAE,OAAO,CAAC,KAAK,CAAC,qBAAqB,CAAC;AAC3D,IAAI,GAAG,CAAC,UAAU,EAAE;AACpB,MAAM,MAAM,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AAC5D,MAAM,MAAM,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AACjE,MAAM,IAAI,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;AACtD,IAAI,EAAE,KAAK;AACX,MAAM,MAAM,KAAK,EAAE,QAAQ,CAAC,OAAO,EAAE,EAAE,CAAC;AACxC,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,GAAG,KAAK,GAAG,EAAE,GAAG,KAAK,GAAG,QAAQ,EAAE,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC;AACzE,IAAI;AACJ,EAAE;AACF,EAAE,OAAO,MAAM;AACf;AACA;AACA;AACE;AACF,wCAAC","file":"C:\\github_project\\kordoc\\dist\\chunk-MUOQXDZ4.cjs","sourcesContent":[null]}
|
|
@@ -0,0 +1,450 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }// src/utils.ts
|
|
2
|
+
var VERSION = true ? "2.2.5" : "0.0.0-dev";
|
|
3
|
+
function toArrayBuffer(buf) {
|
|
4
|
+
if (buf.byteOffset === 0 && buf.byteLength === buf.buffer.byteLength) {
|
|
5
|
+
return buf.buffer;
|
|
6
|
+
}
|
|
7
|
+
return buf.buffer.slice(buf.byteOffset, buf.byteOffset + buf.byteLength);
|
|
8
|
+
}
|
|
9
|
+
var KordocError = class extends Error {
|
|
10
|
+
constructor(message) {
|
|
11
|
+
super(message);
|
|
12
|
+
this.name = "KordocError";
|
|
13
|
+
}
|
|
14
|
+
};
|
|
15
|
+
function isPathTraversal(name) {
|
|
16
|
+
if (name.includes("\0")) return true;
|
|
17
|
+
const normalized = name.replace(/\\/g, "/");
|
|
18
|
+
const segments = normalized.split("/");
|
|
19
|
+
return segments.some((s) => s === "..") || normalized.startsWith("/") || /^[A-Za-z]:/.test(normalized);
|
|
20
|
+
}
|
|
21
|
+
function precheckZipSize(buffer, maxUncompressedSize = 100 * 1024 * 1024, maxEntries = 500) {
|
|
22
|
+
try {
|
|
23
|
+
const data = new DataView(buffer);
|
|
24
|
+
const len = buffer.byteLength;
|
|
25
|
+
let eocdOffset = -1;
|
|
26
|
+
for (let i = len - 22; i >= Math.max(0, len - 65557); i--) {
|
|
27
|
+
if (data.getUint32(i, true) === 101010256) {
|
|
28
|
+
eocdOffset = i;
|
|
29
|
+
break;
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
if (eocdOffset < 0) return { totalUncompressed: 0, entryCount: 0 };
|
|
33
|
+
const entryCount = data.getUint16(eocdOffset + 10, true);
|
|
34
|
+
if (entryCount > maxEntries) {
|
|
35
|
+
throw new KordocError(`ZIP \uC5D4\uD2B8\uB9AC \uC218 \uCD08\uACFC: ${entryCount} (\uCD5C\uB300 ${maxEntries})`);
|
|
36
|
+
}
|
|
37
|
+
const cdSize = data.getUint32(eocdOffset + 12, true);
|
|
38
|
+
const cdOffset = data.getUint32(eocdOffset + 16, true);
|
|
39
|
+
if (cdOffset + cdSize > len) return { totalUncompressed: 0, entryCount };
|
|
40
|
+
let totalUncompressed = 0;
|
|
41
|
+
let pos = cdOffset;
|
|
42
|
+
for (let i = 0; i < entryCount && pos + 46 <= cdOffset + cdSize; i++) {
|
|
43
|
+
if (data.getUint32(pos, true) !== 33639248) break;
|
|
44
|
+
totalUncompressed += data.getUint32(pos + 24, true);
|
|
45
|
+
const nameLen = data.getUint16(pos + 28, true);
|
|
46
|
+
const extraLen = data.getUint16(pos + 30, true);
|
|
47
|
+
const commentLen = data.getUint16(pos + 32, true);
|
|
48
|
+
pos += 46 + nameLen + extraLen + commentLen;
|
|
49
|
+
}
|
|
50
|
+
if (totalUncompressed > maxUncompressedSize) {
|
|
51
|
+
throw new KordocError(`ZIP \uBE44\uC555\uCD95 \uD06C\uAE30 \uCD08\uACFC: ${(totalUncompressed / 1024 / 1024).toFixed(1)}MB (\uCD5C\uB300 ${maxUncompressedSize / 1024 / 1024}MB)`);
|
|
52
|
+
}
|
|
53
|
+
return { totalUncompressed, entryCount };
|
|
54
|
+
} catch (err) {
|
|
55
|
+
if (err instanceof KordocError) throw err;
|
|
56
|
+
return { totalUncompressed: 0, entryCount: 0 };
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
function stripDtd(xml) {
|
|
60
|
+
return xml.replace(/<!DOCTYPE\s[^[>]*(\[[\s\S]*?\])?\s*>/gi, "");
|
|
61
|
+
}
|
|
62
|
+
var SAFE_HREF_RE = /^(?:https?:|mailto:|tel:|#)/i;
|
|
63
|
+
function sanitizeHref(href) {
|
|
64
|
+
const trimmed = href.trim();
|
|
65
|
+
if (!trimmed || !SAFE_HREF_RE.test(trimmed)) return null;
|
|
66
|
+
return trimmed;
|
|
67
|
+
}
|
|
68
|
+
function safeMin(arr) {
|
|
69
|
+
let min = Infinity;
|
|
70
|
+
for (let i = 0; i < arr.length; i++) if (arr[i] < min) min = arr[i];
|
|
71
|
+
return min;
|
|
72
|
+
}
|
|
73
|
+
function safeMax(arr) {
|
|
74
|
+
let max = -Infinity;
|
|
75
|
+
for (let i = 0; i < arr.length; i++) if (arr[i] > max) max = arr[i];
|
|
76
|
+
return max;
|
|
77
|
+
}
|
|
78
|
+
function classifyError(err) {
|
|
79
|
+
if (!(err instanceof Error)) return "PARSE_ERROR";
|
|
80
|
+
const msg = err.message;
|
|
81
|
+
if (msg.includes("\uC554\uD638\uD654")) return "ENCRYPTED";
|
|
82
|
+
if (msg.includes("DRM")) return "DRM_PROTECTED";
|
|
83
|
+
if (msg.includes("ZIP bomb") || msg.includes("ZIP \uBE44\uC555\uCD95 \uD06C\uAE30 \uCD08\uACFC") || msg.includes("ZIP \uC5D4\uD2B8\uB9AC \uC218 \uCD08\uACFC")) return "ZIP_BOMB";
|
|
84
|
+
if (msg.includes("bomb") || msg.includes("\uD06C\uAE30 \uCD08\uACFC") || msg.includes("\uC555\uCD95 \uD574\uC81C")) return "DECOMPRESSION_BOMB";
|
|
85
|
+
if (msg.includes("\uC774\uBBF8\uC9C0 \uAE30\uBC18")) return "IMAGE_BASED_PDF";
|
|
86
|
+
if (msg.includes("\uC139\uC158") && (msg.includes("\uCC3E\uC744 \uC218 \uC5C6") || msg.includes("\uC5C6\uC74C"))) return "NO_SECTIONS";
|
|
87
|
+
if (msg.includes("\uC2DC\uADF8\uB2C8\uCC98") || msg.includes("\uBCF5\uAD6C\uD560 \uC218 \uC5C6")) return "CORRUPTED";
|
|
88
|
+
return "PARSE_ERROR";
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
// src/table/builder.ts
|
|
92
|
+
var MAX_COLS = 200;
|
|
93
|
+
var MAX_ROWS = 1e4;
|
|
94
|
+
function buildTable(rows) {
|
|
95
|
+
if (rows.length > MAX_ROWS) rows = rows.slice(0, MAX_ROWS);
|
|
96
|
+
const numRows = rows.length;
|
|
97
|
+
const hasAddr = rows.some((row) => row.some((c) => c.colAddr !== void 0 && c.rowAddr !== void 0));
|
|
98
|
+
if (hasAddr) return buildTableDirect(rows, numRows);
|
|
99
|
+
let maxCols = 0;
|
|
100
|
+
const tempOccupied = Array.from({ length: numRows }, () => []);
|
|
101
|
+
for (let rowIdx = 0; rowIdx < numRows; rowIdx++) {
|
|
102
|
+
let colIdx = 0;
|
|
103
|
+
for (const cell of rows[rowIdx]) {
|
|
104
|
+
while (colIdx < MAX_COLS && tempOccupied[rowIdx][colIdx]) colIdx++;
|
|
105
|
+
if (colIdx >= MAX_COLS) break;
|
|
106
|
+
for (let r = rowIdx; r < Math.min(rowIdx + cell.rowSpan, numRows); r++) {
|
|
107
|
+
for (let c = colIdx; c < Math.min(colIdx + cell.colSpan, MAX_COLS); c++) {
|
|
108
|
+
tempOccupied[r][c] = true;
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
colIdx += cell.colSpan;
|
|
112
|
+
if (colIdx > maxCols) maxCols = colIdx;
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
if (maxCols === 0) return { rows: 0, cols: 0, cells: [], hasHeader: false };
|
|
116
|
+
const grid = Array.from(
|
|
117
|
+
{ length: numRows },
|
|
118
|
+
() => Array.from({ length: maxCols }, () => ({ text: "", colSpan: 1, rowSpan: 1 }))
|
|
119
|
+
);
|
|
120
|
+
const occupied = Array.from({ length: numRows }, () => Array(maxCols).fill(false));
|
|
121
|
+
for (let rowIdx = 0; rowIdx < numRows; rowIdx++) {
|
|
122
|
+
let colIdx = 0;
|
|
123
|
+
let cellIdx = 0;
|
|
124
|
+
while (colIdx < maxCols && cellIdx < rows[rowIdx].length) {
|
|
125
|
+
while (colIdx < maxCols && occupied[rowIdx][colIdx]) colIdx++;
|
|
126
|
+
if (colIdx >= maxCols) break;
|
|
127
|
+
const cell = rows[rowIdx][cellIdx];
|
|
128
|
+
grid[rowIdx][colIdx] = {
|
|
129
|
+
text: cell.text.trim(),
|
|
130
|
+
colSpan: cell.colSpan,
|
|
131
|
+
rowSpan: cell.rowSpan
|
|
132
|
+
};
|
|
133
|
+
for (let r = rowIdx; r < Math.min(rowIdx + cell.rowSpan, numRows); r++) {
|
|
134
|
+
for (let c = colIdx; c < Math.min(colIdx + cell.colSpan, maxCols); c++) {
|
|
135
|
+
occupied[r][c] = true;
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
colIdx += cell.colSpan;
|
|
139
|
+
cellIdx++;
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
return trimAndReturn(grid, numRows, maxCols);
|
|
143
|
+
}
|
|
144
|
+
function buildTableDirect(rows, numRows) {
|
|
145
|
+
let maxCols = 0;
|
|
146
|
+
for (const row of rows) {
|
|
147
|
+
for (const cell of row) {
|
|
148
|
+
const end = (_nullishCoalesce(cell.colAddr, () => ( 0))) + cell.colSpan;
|
|
149
|
+
if (end > maxCols) maxCols = end;
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
if (maxCols > MAX_COLS) maxCols = MAX_COLS;
|
|
153
|
+
if (maxCols === 0) return { rows: 0, cols: 0, cells: [], hasHeader: false };
|
|
154
|
+
const grid = Array.from(
|
|
155
|
+
{ length: numRows },
|
|
156
|
+
() => Array.from({ length: maxCols }, () => ({ text: "", colSpan: 1, rowSpan: 1 }))
|
|
157
|
+
);
|
|
158
|
+
for (const row of rows) {
|
|
159
|
+
for (const cell of row) {
|
|
160
|
+
const r = _nullishCoalesce(cell.rowAddr, () => ( 0));
|
|
161
|
+
const c = _nullishCoalesce(cell.colAddr, () => ( 0));
|
|
162
|
+
if (r >= numRows || c >= maxCols || r < 0 || c < 0) continue;
|
|
163
|
+
grid[r][c] = { text: cell.text.trim(), colSpan: cell.colSpan, rowSpan: cell.rowSpan };
|
|
164
|
+
for (let dr = 0; dr < cell.rowSpan; dr++) {
|
|
165
|
+
for (let dc = 0; dc < cell.colSpan; dc++) {
|
|
166
|
+
if (dr === 0 && dc === 0) continue;
|
|
167
|
+
if (r + dr < numRows && c + dc < maxCols) {
|
|
168
|
+
grid[r + dr][c + dc] = { text: "", colSpan: 1, rowSpan: 1 };
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
return trimAndReturn(grid, numRows, maxCols);
|
|
175
|
+
}
|
|
176
|
+
function trimAndReturn(grid, numRows, maxCols) {
|
|
177
|
+
let effectiveCols = maxCols;
|
|
178
|
+
while (effectiveCols > 0) {
|
|
179
|
+
const colEmpty = grid.every((row) => !_optionalChain([row, 'access', _2 => _2[effectiveCols - 1], 'optionalAccess', _3 => _3.text, 'optionalAccess', _4 => _4.trim, 'call', _5 => _5()]));
|
|
180
|
+
if (!colEmpty) break;
|
|
181
|
+
effectiveCols--;
|
|
182
|
+
}
|
|
183
|
+
if (effectiveCols < maxCols && effectiveCols > 0) {
|
|
184
|
+
const trimmed = grid.map((row) => row.slice(0, effectiveCols));
|
|
185
|
+
return { rows: numRows, cols: effectiveCols, cells: trimmed, hasHeader: numRows > 1 };
|
|
186
|
+
}
|
|
187
|
+
return { rows: numRows, cols: maxCols, cells: grid, hasHeader: numRows > 1 };
|
|
188
|
+
}
|
|
189
|
+
function convertTableToText(rows) {
|
|
190
|
+
return rows.map(
|
|
191
|
+
(row) => row.map((c) => c.text.trim().replace(/\n/g, " ").replace(/\|/g, "\\|")).filter(Boolean).join(" / ")
|
|
192
|
+
).filter(Boolean).join("\n");
|
|
193
|
+
}
|
|
194
|
+
function escapeGfm(text) {
|
|
195
|
+
return text.replace(/~/g, "\\~");
|
|
196
|
+
}
|
|
197
|
+
var HWP_SHAPE_ALT_TEXT_RE = /(?:모서리가 둥근 |둥근 )?(?:사각형|직사각형|정사각형|원|타원|삼각형|이등변 삼각형|직각 삼각형|선|직선|곡선|화살표|굵은 화살표|이중 화살표|오각형|육각형|팔각형|별|[4-8]점별|십자|십자형|구름|구름형|마름모|도넛|평행사변형|사다리꼴|부채꼴|호|반원|물결|번개|하트|빗금|블록 화살표|수식|표|그림|개체|그리기\s?개체|묶음\s?개체|글상자|수식\s?개체|OLE\s?개체)\s?입니다\.?/g;
|
|
198
|
+
function sanitizeText(text) {
|
|
199
|
+
let result = text.replace(/[\u{F0000}-\u{FFFFD}]/gu, "").replace(HWP_SHAPE_ALT_TEXT_RE, "").replace(/ +/g, " ").trim();
|
|
200
|
+
if (result.length <= 30 && result.includes(" ")) {
|
|
201
|
+
const tokens = result.split(" ");
|
|
202
|
+
const koreanSingleCharCount = tokens.filter((t) => t.length === 1 && /[\uAC00-\uD7AF\u3131-\u318E]/.test(t)).length;
|
|
203
|
+
if (tokens.length >= 3 && koreanSingleCharCount / tokens.length >= 0.7) {
|
|
204
|
+
result = tokens.join("");
|
|
205
|
+
}
|
|
206
|
+
}
|
|
207
|
+
return result;
|
|
208
|
+
}
|
|
209
|
+
function flattenLayoutTables(blocks) {
|
|
210
|
+
const result = [];
|
|
211
|
+
for (const block of blocks) {
|
|
212
|
+
if (block.type !== "table" || !block.table) {
|
|
213
|
+
result.push(block);
|
|
214
|
+
continue;
|
|
215
|
+
}
|
|
216
|
+
const { rows: numRows, cols: numCols, cells } = block.table;
|
|
217
|
+
if (numRows === 1 && numCols === 1) {
|
|
218
|
+
result.push(block);
|
|
219
|
+
continue;
|
|
220
|
+
}
|
|
221
|
+
if (numRows <= 3) {
|
|
222
|
+
let totalNewlines = 0;
|
|
223
|
+
let totalTextLen = 0;
|
|
224
|
+
for (let r = 0; r < numRows; r++) {
|
|
225
|
+
for (let c = 0; c < numCols; c++) {
|
|
226
|
+
const t = _optionalChain([cells, 'access', _6 => _6[r], 'optionalAccess', _7 => _7[c], 'optionalAccess', _8 => _8.text]) || "";
|
|
227
|
+
totalNewlines += (t.match(/\n/g) || []).length;
|
|
228
|
+
totalTextLen += t.length;
|
|
229
|
+
}
|
|
230
|
+
}
|
|
231
|
+
if (totalNewlines > 5 || numRows <= 2 && totalTextLen > 300) {
|
|
232
|
+
for (let r = 0; r < numRows; r++) {
|
|
233
|
+
for (let c = 0; c < numCols; c++) {
|
|
234
|
+
const cellText = _optionalChain([cells, 'access', _9 => _9[r], 'optionalAccess', _10 => _10[c], 'optionalAccess', _11 => _11.text, 'optionalAccess', _12 => _12.trim, 'call', _13 => _13()]);
|
|
235
|
+
if (!cellText) continue;
|
|
236
|
+
for (const line of cellText.split("\n")) {
|
|
237
|
+
const trimmed = line.trim();
|
|
238
|
+
if (!trimmed) continue;
|
|
239
|
+
result.push({ type: "paragraph", text: trimmed, pageNumber: block.pageNumber });
|
|
240
|
+
}
|
|
241
|
+
}
|
|
242
|
+
}
|
|
243
|
+
continue;
|
|
244
|
+
}
|
|
245
|
+
}
|
|
246
|
+
result.push(block);
|
|
247
|
+
}
|
|
248
|
+
return result;
|
|
249
|
+
}
|
|
250
|
+
function blocksToMarkdown(blocks) {
|
|
251
|
+
const lines = [];
|
|
252
|
+
for (let i = 0; i < blocks.length; i++) {
|
|
253
|
+
const block = blocks[i];
|
|
254
|
+
if (block.type === "heading" && block.text) {
|
|
255
|
+
const prefix = "#".repeat(Math.min(block.level || 2, 6));
|
|
256
|
+
const headingText = sanitizeText(block.text);
|
|
257
|
+
if (headingText) lines.push("", `${prefix} ${headingText}`, "");
|
|
258
|
+
continue;
|
|
259
|
+
}
|
|
260
|
+
if (block.type === "image" && block.text) {
|
|
261
|
+
lines.push("", ``, "");
|
|
262
|
+
continue;
|
|
263
|
+
}
|
|
264
|
+
if (block.type === "separator") {
|
|
265
|
+
lines.push("", "---", "");
|
|
266
|
+
continue;
|
|
267
|
+
}
|
|
268
|
+
if (block.type === "list" && block.text) {
|
|
269
|
+
const listText = sanitizeText(block.text);
|
|
270
|
+
if (!listText) continue;
|
|
271
|
+
const alreadyNumbered = block.listType === "ordered" && /^\d+\.\s/.test(listText);
|
|
272
|
+
const prefix = alreadyNumbered ? "" : block.listType === "ordered" ? "1. " : "- ";
|
|
273
|
+
lines.push(`${prefix}${listText}`);
|
|
274
|
+
if (block.children) {
|
|
275
|
+
for (const child of block.children) {
|
|
276
|
+
const childPrefix = child.listType === "ordered" ? "1." : "-";
|
|
277
|
+
lines.push(` ${childPrefix} ${child.text || ""}`);
|
|
278
|
+
}
|
|
279
|
+
}
|
|
280
|
+
continue;
|
|
281
|
+
}
|
|
282
|
+
if (block.type === "paragraph" && block.text) {
|
|
283
|
+
let text = sanitizeText(block.text);
|
|
284
|
+
if (!text) continue;
|
|
285
|
+
if (/^\[별표\s*\d+/.test(text)) {
|
|
286
|
+
const nextBlock = blocks[i + 1];
|
|
287
|
+
if (_optionalChain([nextBlock, 'optionalAccess', _14 => _14.type]) === "paragraph" && nextBlock.text && /관련\)?$/.test(nextBlock.text)) {
|
|
288
|
+
lines.push("", `## ${text} ${nextBlock.text}`, "");
|
|
289
|
+
i++;
|
|
290
|
+
} else {
|
|
291
|
+
lines.push("", `## ${text}`, "");
|
|
292
|
+
}
|
|
293
|
+
continue;
|
|
294
|
+
}
|
|
295
|
+
if (/^\([^)]*조[^)]*관련\)$/.test(text)) {
|
|
296
|
+
lines.push(`*${text}*`, "");
|
|
297
|
+
continue;
|
|
298
|
+
}
|
|
299
|
+
if (block.href) {
|
|
300
|
+
const href = sanitizeHref(block.href);
|
|
301
|
+
if (href) text = `[${text}](${href})`;
|
|
302
|
+
}
|
|
303
|
+
if (block.footnoteText) {
|
|
304
|
+
text += ` (\uC8FC: ${block.footnoteText})`;
|
|
305
|
+
}
|
|
306
|
+
lines.push(escapeGfm(text), "");
|
|
307
|
+
} else if (block.type === "table" && block.table) {
|
|
308
|
+
if (lines.length > 0 && lines[lines.length - 1] !== "") {
|
|
309
|
+
lines.push("");
|
|
310
|
+
}
|
|
311
|
+
const tableMd = tableToMarkdown(block.table);
|
|
312
|
+
if (tableMd) {
|
|
313
|
+
lines.push(tableMd);
|
|
314
|
+
lines.push("");
|
|
315
|
+
}
|
|
316
|
+
}
|
|
317
|
+
}
|
|
318
|
+
return lines.join("\n").trim();
|
|
319
|
+
}
|
|
320
|
+
function hasMergedCells(table) {
|
|
321
|
+
for (const row of table.cells) {
|
|
322
|
+
for (const cell of row) {
|
|
323
|
+
if (cell.colSpan > 1 || cell.rowSpan > 1) return true;
|
|
324
|
+
}
|
|
325
|
+
}
|
|
326
|
+
return false;
|
|
327
|
+
}
|
|
328
|
+
function tableToHtml(table) {
|
|
329
|
+
const { cells, rows: numRows, cols: numCols } = table;
|
|
330
|
+
const skip = /* @__PURE__ */ new Set();
|
|
331
|
+
const lines = ["<table>"];
|
|
332
|
+
for (let r = 0; r < numRows; r++) {
|
|
333
|
+
const tag = r === 0 ? "th" : "td";
|
|
334
|
+
const rowHtml = [];
|
|
335
|
+
for (let c = 0; c < numCols; c++) {
|
|
336
|
+
if (skip.has(`${r},${c}`)) continue;
|
|
337
|
+
const cell = _optionalChain([cells, 'access', _15 => _15[r], 'optionalAccess', _16 => _16[c]]);
|
|
338
|
+
if (!cell) continue;
|
|
339
|
+
for (let dr = 0; dr < cell.rowSpan; dr++) {
|
|
340
|
+
for (let dc = 0; dc < cell.colSpan; dc++) {
|
|
341
|
+
if (dr === 0 && dc === 0) continue;
|
|
342
|
+
if (r + dr < numRows && c + dc < numCols) skip.add(`${r + dr},${c + dc}`);
|
|
343
|
+
}
|
|
344
|
+
}
|
|
345
|
+
const text = sanitizeText(cell.text).replace(/\n/g, "<br>");
|
|
346
|
+
const attrs = [];
|
|
347
|
+
if (cell.colSpan > 1) attrs.push(`colspan="${cell.colSpan}"`);
|
|
348
|
+
if (cell.rowSpan > 1) attrs.push(`rowspan="${cell.rowSpan}"`);
|
|
349
|
+
const attrStr = attrs.length ? " " + attrs.join(" ") : "";
|
|
350
|
+
rowHtml.push(`<${tag}${attrStr}>${text}</${tag}>`);
|
|
351
|
+
}
|
|
352
|
+
if (rowHtml.length) lines.push(`<tr>${rowHtml.join("")}</tr>`);
|
|
353
|
+
}
|
|
354
|
+
lines.push("</table>");
|
|
355
|
+
return lines.join("\n");
|
|
356
|
+
}
|
|
357
|
+
function tableToMarkdown(table) {
|
|
358
|
+
if (table.rows === 0 || table.cols === 0) return "";
|
|
359
|
+
const { cells, rows: numRows, cols: numCols } = table;
|
|
360
|
+
if (hasMergedCells(table)) return tableToHtml(table);
|
|
361
|
+
if (numRows === 1 && numCols === 1) {
|
|
362
|
+
const content = sanitizeText(cells[0][0].text);
|
|
363
|
+
if (!content) return "";
|
|
364
|
+
return content.split(/\n/).map((line) => {
|
|
365
|
+
const trimmed = line.trim();
|
|
366
|
+
if (!trimmed) return "";
|
|
367
|
+
if (/^\d+\.\s/.test(trimmed)) return `**${escapeGfm(trimmed)}**`;
|
|
368
|
+
if (/^[가-힣]\.\s/.test(trimmed)) return ` ${escapeGfm(trimmed)}`;
|
|
369
|
+
return escapeGfm(trimmed);
|
|
370
|
+
}).filter(Boolean).join("\n");
|
|
371
|
+
}
|
|
372
|
+
if (numCols === 1 && numRows >= 2) {
|
|
373
|
+
return cells.map((row) => escapeGfm(sanitizeText(row[0].text)).replace(/\n/g, " ")).filter(Boolean).join("\n");
|
|
374
|
+
}
|
|
375
|
+
const display = Array.from({ length: numRows }, () => Array(numCols).fill(""));
|
|
376
|
+
const skip = /* @__PURE__ */ new Set();
|
|
377
|
+
for (let r = 0; r < numRows; r++) {
|
|
378
|
+
for (let c = 0; c < numCols; c++) {
|
|
379
|
+
if (skip.has(`${r},${c}`)) continue;
|
|
380
|
+
const cell = _optionalChain([cells, 'access', _17 => _17[r], 'optionalAccess', _18 => _18[c]]);
|
|
381
|
+
if (!cell) continue;
|
|
382
|
+
display[r][c] = escapeGfm(sanitizeText(cell.text)).replace(/\|/g, "\\|").replace(/\n/g, "<br>");
|
|
383
|
+
for (let dr = 0; dr < cell.rowSpan; dr++) {
|
|
384
|
+
for (let dc = 0; dc < cell.colSpan; dc++) {
|
|
385
|
+
if (dr === 0 && dc === 0) continue;
|
|
386
|
+
if (r + dr < numRows && c + dc < numCols) {
|
|
387
|
+
skip.add(`${r + dr},${c + dc}`);
|
|
388
|
+
}
|
|
389
|
+
}
|
|
390
|
+
}
|
|
391
|
+
c += cell.colSpan - 1;
|
|
392
|
+
}
|
|
393
|
+
}
|
|
394
|
+
const uniqueRows = [];
|
|
395
|
+
let pendingFirstCol = "";
|
|
396
|
+
for (let r = 0; r < display.length; r++) {
|
|
397
|
+
const row = display[r];
|
|
398
|
+
const isEmptyPlaceholder = row.every((cell) => cell === "");
|
|
399
|
+
if (isEmptyPlaceholder) continue;
|
|
400
|
+
const nonEmptyCols = row.filter((cell) => cell !== "");
|
|
401
|
+
const hasSkipInRow = row.some((_, c) => skip.has(`${r},${c}`));
|
|
402
|
+
if (!hasSkipInRow && nonEmptyCols.length === 1 && row[0] !== "" && row.slice(1).every((c) => c === "")) {
|
|
403
|
+
pendingFirstCol = row[0];
|
|
404
|
+
continue;
|
|
405
|
+
}
|
|
406
|
+
if (pendingFirstCol && row[0] === "") {
|
|
407
|
+
row[0] = pendingFirstCol;
|
|
408
|
+
pendingFirstCol = "";
|
|
409
|
+
} else {
|
|
410
|
+
pendingFirstCol = "";
|
|
411
|
+
}
|
|
412
|
+
uniqueRows.push(row);
|
|
413
|
+
}
|
|
414
|
+
if (uniqueRows.length === 0) return "";
|
|
415
|
+
const md = [];
|
|
416
|
+
md.push("| " + uniqueRows[0].join(" | ") + " |");
|
|
417
|
+
md.push("| " + uniqueRows[0].map(() => "---").join(" | ") + " |");
|
|
418
|
+
for (let i = 1; i < uniqueRows.length; i++) {
|
|
419
|
+
md.push("| " + uniqueRows[i].join(" | ") + " |");
|
|
420
|
+
}
|
|
421
|
+
return md.join("\n");
|
|
422
|
+
}
|
|
423
|
+
|
|
424
|
+
// src/types.ts
|
|
425
|
+
var HEADING_RATIO_H1 = 1.5;
|
|
426
|
+
var HEADING_RATIO_H2 = 1.3;
|
|
427
|
+
var HEADING_RATIO_H3 = 1.15;
|
|
428
|
+
|
|
429
|
+
|
|
430
|
+
|
|
431
|
+
|
|
432
|
+
|
|
433
|
+
|
|
434
|
+
|
|
435
|
+
|
|
436
|
+
|
|
437
|
+
|
|
438
|
+
|
|
439
|
+
|
|
440
|
+
|
|
441
|
+
|
|
442
|
+
|
|
443
|
+
|
|
444
|
+
|
|
445
|
+
|
|
446
|
+
|
|
447
|
+
|
|
448
|
+
|
|
449
|
+
exports.VERSION = VERSION; exports.toArrayBuffer = toArrayBuffer; exports.KordocError = KordocError; exports.isPathTraversal = isPathTraversal; exports.precheckZipSize = precheckZipSize; exports.stripDtd = stripDtd; exports.sanitizeHref = sanitizeHref; exports.safeMin = safeMin; exports.safeMax = safeMax; exports.classifyError = classifyError; exports.MAX_COLS = MAX_COLS; exports.MAX_ROWS = MAX_ROWS; exports.buildTable = buildTable; exports.convertTableToText = convertTableToText; exports.flattenLayoutTables = flattenLayoutTables; exports.blocksToMarkdown = blocksToMarkdown; exports.HEADING_RATIO_H1 = HEADING_RATIO_H1; exports.HEADING_RATIO_H2 = HEADING_RATIO_H2; exports.HEADING_RATIO_H3 = HEADING_RATIO_H3;
|
|
450
|
+
//# sourceMappingURL=chunk-OJ4QR33V.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["c:\\github_project\\kordoc\\dist\\chunk-OJ4QR33V.cjs"],"names":[],"mappings":"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AAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA;AACA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,QAAA;AACA,UAAA;AACA,UAAA;AACA,QAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,IAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA;AACA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,QAAA;AACA,UAAA;AACA,UAAA;AACA,YAAA;AACA,UAAA;AACA,QAAA;AACA,MAAA;AACA,MAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,IAAA;AACA,MAAA;AACA,IAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","file":"C:\\github_project\\kordoc\\dist\\chunk-OJ4QR33V.cjs","sourcesContent":[null]}
|