kordoc 3.5.0 → 3.5.1

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.
Files changed (83) hide show
  1. package/LICENSE +21 -21
  2. package/README.md +590 -590
  3. package/dist/{-GKNSTVEZ.js → -BNJMPTQ2.js} +5 -5
  4. package/dist/{chunk-X34YWRL5.cjs → chunk-DCZVOIEO.cjs} +1 -1
  5. package/dist/chunk-DCZVOIEO.cjs.map +1 -0
  6. package/dist/{chunk-AIQ3ISQU.js → chunk-GE43BE46.js} +1 -1
  7. package/dist/chunk-GE43BE46.js.map +1 -0
  8. package/dist/{chunk-GTCJQANY.js → chunk-GMPDZD7Q.js} +44 -36
  9. package/dist/chunk-GMPDZD7Q.js.map +1 -0
  10. package/dist/chunk-GS7T56RP.cjs.map +1 -1
  11. package/dist/{chunk-A4LSWJEC.js → chunk-IKAXUVSU.js} +16 -2
  12. package/dist/chunk-IKAXUVSU.js.map +1 -0
  13. package/dist/{chunk-CFQLK3LM.js → chunk-MEPHGCPQ.js} +1 -1
  14. package/dist/chunk-MEPHGCPQ.js.map +1 -0
  15. package/dist/{chunk-3TBUDJDE.js → chunk-MOL7MDBG.js} +1 -1
  16. package/dist/chunk-MOL7MDBG.js.map +1 -0
  17. package/dist/{chunk-AHDNELBR.js → chunk-OXOPDVNV.js} +16 -2
  18. package/dist/chunk-OXOPDVNV.js.map +1 -0
  19. package/dist/{chunk-4JLD2IT7.cjs → chunk-RWSGBXSA.cjs} +25 -11
  20. package/dist/chunk-RWSGBXSA.cjs.map +1 -0
  21. package/dist/cli.js +8 -8
  22. package/dist/cli.js.map +1 -1
  23. package/dist/{detect-NTR2FUEG.js → detect-RI2MQ33K.js} +2 -2
  24. package/dist/{formula-ZYUDQHD3.cjs → formula-5NKVS2LR.cjs} +1 -1
  25. package/dist/formula-5NKVS2LR.cjs.map +1 -0
  26. package/dist/{formula-KOQV353G.js → formula-JCNF43NE.js} +1 -1
  27. package/dist/formula-JCNF43NE.js.map +1 -0
  28. package/dist/{formula-MEDGYQXS.js → formula-RXVSQPXI.js} +1 -1
  29. package/dist/formula-RXVSQPXI.js.map +1 -0
  30. package/dist/index.cjs +181 -173
  31. package/dist/index.cjs.map +1 -1
  32. package/dist/index.js +42 -34
  33. package/dist/index.js.map +1 -1
  34. package/dist/mcp.js +6 -6
  35. package/dist/mcp.js.map +1 -1
  36. package/dist/page-range-737B4EZW.js +8 -0
  37. package/dist/page-range-LNMXJU6W.js +7 -0
  38. package/dist/page-range-P7SDW6LR.cjs +8 -0
  39. package/dist/page-range-P7SDW6LR.cjs.map +1 -0
  40. package/dist/{parser-LBLPN3KY.js → parser-GHZMDUGG.js} +5 -5
  41. package/dist/parser-GHZMDUGG.js.map +1 -0
  42. package/dist/{parser-LMBDB7RM.js → parser-XXQAMYGV.js} +5 -5
  43. package/dist/parser-XXQAMYGV.js.map +1 -0
  44. package/dist/{parser-25ISHR7Q.cjs → parser-ZLFOUVR4.cjs} +18 -18
  45. package/dist/parser-ZLFOUVR4.cjs.map +1 -0
  46. package/dist/{provider-H4WWSPOV.js → provider-4ZJKV3DC.js} +1 -1
  47. package/dist/provider-4ZJKV3DC.js.map +1 -0
  48. package/dist/{provider-7H4CPZYS.js → provider-AKROB7WQ.js} +1 -1
  49. package/dist/provider-AKROB7WQ.js.map +1 -0
  50. package/dist/{provider-5K7O3Z2O.cjs → provider-G4C2V2PD.cjs} +1 -1
  51. package/dist/provider-G4C2V2PD.cjs.map +1 -0
  52. package/dist/{setup-QSJ2INNS.js → setup-57FB3LSP.js} +1 -1
  53. package/dist/setup-57FB3LSP.js.map +1 -0
  54. package/dist/{watch-77CYT54V.js → watch-IN3YN72W.js} +5 -5
  55. package/dist/watch-IN3YN72W.js.map +1 -0
  56. package/package.json +98 -98
  57. package/dist/chunk-3TBUDJDE.js.map +0 -1
  58. package/dist/chunk-4JLD2IT7.cjs.map +0 -1
  59. package/dist/chunk-A4LSWJEC.js.map +0 -1
  60. package/dist/chunk-AHDNELBR.js.map +0 -1
  61. package/dist/chunk-AIQ3ISQU.js.map +0 -1
  62. package/dist/chunk-CFQLK3LM.js.map +0 -1
  63. package/dist/chunk-GTCJQANY.js.map +0 -1
  64. package/dist/chunk-X34YWRL5.cjs.map +0 -1
  65. package/dist/formula-KOQV353G.js.map +0 -1
  66. package/dist/formula-MEDGYQXS.js.map +0 -1
  67. package/dist/formula-ZYUDQHD3.cjs.map +0 -1
  68. package/dist/page-range-CIRRJPXJ.js +0 -7
  69. package/dist/page-range-OF5I4PQY.js +0 -8
  70. package/dist/page-range-TPIRSA3J.cjs +0 -8
  71. package/dist/page-range-TPIRSA3J.cjs.map +0 -1
  72. package/dist/parser-25ISHR7Q.cjs.map +0 -1
  73. package/dist/parser-LBLPN3KY.js.map +0 -1
  74. package/dist/parser-LMBDB7RM.js.map +0 -1
  75. package/dist/provider-5K7O3Z2O.cjs.map +0 -1
  76. package/dist/provider-7H4CPZYS.js.map +0 -1
  77. package/dist/provider-H4WWSPOV.js.map +0 -1
  78. package/dist/setup-QSJ2INNS.js.map +0 -1
  79. package/dist/watch-77CYT54V.js.map +0 -1
  80. /package/dist/{-GKNSTVEZ.js.map → -BNJMPTQ2.js.map} +0 -0
  81. /package/dist/{detect-NTR2FUEG.js.map → detect-RI2MQ33K.js.map} +0 -0
  82. /package/dist/{page-range-CIRRJPXJ.js.map → page-range-737B4EZW.js.map} +0 -0
  83. /package/dist/{page-range-OF5I4PQY.js.map → page-range-LNMXJU6W.js.map} +0 -0
@@ -6,10 +6,10 @@
6
6
 
7
7
 
8
8
 
9
- var _chunk4JLD2IT7cjs = require('./chunk-4JLD2IT7.cjs');
9
+ var _chunkRWSGBXSAcjs = require('./chunk-RWSGBXSA.cjs');
10
10
 
11
11
 
12
- var _chunkX34YWRL5cjs = require('./chunk-X34YWRL5.cjs');
12
+ var _chunkDCZVOIEOcjs = require('./chunk-DCZVOIEO.cjs');
13
13
  require('./chunk-GS7T56RP.cjs');
14
14
 
15
15
  // src/pdf/line-detector.ts
@@ -1496,7 +1496,7 @@ async function loadPdfWithTimeout(buffer) {
1496
1496
  new Promise((_, reject) => {
1497
1497
  timer = setTimeout(() => {
1498
1498
  loadingTask.destroy();
1499
- reject(new (0, _chunk4JLD2IT7cjs.KordocError)("PDF \uB85C\uB529 \uD0C0\uC784\uC544\uC6C3 (30\uCD08 \uCD08\uACFC)"));
1499
+ reject(new (0, _chunkRWSGBXSAcjs.KordocError)("PDF \uB85C\uB529 \uD0C0\uC784\uC544\uC6C3 (30\uCD08 \uCD08\uACFC)"));
1500
1500
  }, PDF_LOAD_TIMEOUT_MS);
1501
1501
  })
1502
1502
  ]);
@@ -1509,7 +1509,7 @@ async function parsePdfDocument(buffer, options) {
1509
1509
  const doc = await loadPdfWithTimeout(buffer);
1510
1510
  try {
1511
1511
  const pageCount = doc.numPages;
1512
- if (pageCount === 0) throw new (0, _chunk4JLD2IT7cjs.KordocError)("PDF\uC5D0 \uD398\uC774\uC9C0\uAC00 \uC5C6\uC2B5\uB2C8\uB2E4.");
1512
+ if (pageCount === 0) throw new (0, _chunkRWSGBXSAcjs.KordocError)("PDF\uC5D0 \uD398\uC774\uC9C0\uAC00 \uC5C6\uC2B5\uB2C8\uB2E4.");
1513
1513
  const metadata = { pageCount };
1514
1514
  await extractPdfMetadata(doc, metadata);
1515
1515
  const blocks = [];
@@ -1518,7 +1518,7 @@ async function parsePdfDocument(buffer, options) {
1518
1518
  let totalChars = 0;
1519
1519
  let totalTextBytes = 0;
1520
1520
  const effectivePageCount = Math.min(pageCount, MAX_PAGES);
1521
- const pageFilter = _optionalChain([options, 'optionalAccess', _11 => _11.pages]) ? _chunkX34YWRL5cjs.parsePageRange.call(void 0, options.pages, effectivePageCount) : null;
1521
+ const pageFilter = _optionalChain([options, 'optionalAccess', _11 => _11.pages]) ? _chunkDCZVOIEOcjs.parsePageRange.call(void 0, options.pages, effectivePageCount) : null;
1522
1522
  const totalTarget = pageFilter ? pageFilter.size : effectivePageCount;
1523
1523
  const fontSizeFreq = /* @__PURE__ */ new Map();
1524
1524
  const pageHeights = /* @__PURE__ */ new Map();
@@ -1569,11 +1569,11 @@ async function parsePdfDocument(buffer, options) {
1569
1569
  pageText += pageText ? "\n" + t : t;
1570
1570
  }
1571
1571
  pageQuality.push(computePageQuality(i, pageText));
1572
- if (totalTextBytes > MAX_TOTAL_TEXT) throw new (0, _chunk4JLD2IT7cjs.KordocError)("\uD14D\uC2A4\uD2B8 \uCD94\uCD9C \uD06C\uAE30 \uCD08\uACFC");
1572
+ if (totalTextBytes > MAX_TOTAL_TEXT) throw new (0, _chunkRWSGBXSAcjs.KordocError)("\uD14D\uC2A4\uD2B8 \uCD94\uCD9C \uD06C\uAE30 \uCD08\uACFC");
1573
1573
  parsedPages++;
1574
1574
  _optionalChain([options, 'optionalAccess', _12 => _12.onProgress, 'optionalCall', _13 => _13(parsedPages, totalTarget)]);
1575
1575
  } catch (pageErr) {
1576
- if (pageErr instanceof _chunk4JLD2IT7cjs.KordocError) throw pageErr;
1576
+ if (pageErr instanceof _chunkRWSGBXSAcjs.KordocError) throw pageErr;
1577
1577
  warnings.push({ page: i, message: `\uD398\uC774\uC9C0 ${i} \uD30C\uC2F1 \uC2E4\uD328: ${pageErr instanceof Error ? pageErr.message : "\uC54C \uC218 \uC5C6\uB294 \uC624\uB958"}`, code: "PARTIAL_PARSE" });
1578
1578
  }
1579
1579
  }
@@ -1582,7 +1582,7 @@ async function parsePdfDocument(buffer, options) {
1582
1582
  if (totalChars / Math.max(parsedPageCount, 1) < 10) {
1583
1583
  if (_optionalChain([options, 'optionalAccess', _14 => _14.ocr])) {
1584
1584
  try {
1585
- const { ocrPages } = await Promise.resolve().then(() => _interopRequireWildcard(require("./provider-5K7O3Z2O.cjs")));
1585
+ const { ocrPages } = await Promise.resolve().then(() => _interopRequireWildcard(require("./provider-G4C2V2PD.cjs")));
1586
1586
  const ocrBlocks = await ocrPages(doc, options.ocr, pageFilter, effectivePageCount);
1587
1587
  if (ocrBlocks.length > 0) {
1588
1588
  const ocrMarkdown = ocrBlocks.map((b) => b.text || "").filter(Boolean).join("\n\n");
@@ -1641,7 +1641,7 @@ async function parsePdfDocument(buffer, options) {
1641
1641
  detectKoreanListBlocks(blocks);
1642
1642
  const outline = blocks.filter((b) => b.type === "heading" && b.level && b.text).map((b) => ({ level: b.level, text: b.text, pageNumber: b.pageNumber }));
1643
1643
  sanitizeBlockControlChars(blocks);
1644
- let markdown = cleanPdfText(_chunk4JLD2IT7cjs.blocksToMarkdown.call(void 0, blocks));
1644
+ let markdown = cleanPdfText(_chunkRWSGBXSAcjs.blocksToMarkdown.call(void 0, blocks));
1645
1645
  return {
1646
1646
  markdown,
1647
1647
  blocks,
@@ -1729,9 +1729,9 @@ function detectHeadings(blocks, medianFontSize) {
1729
1729
  if (/^\d+$/.test(text)) continue;
1730
1730
  const ratio = block.style.fontSize / medianFontSize;
1731
1731
  let level = 0;
1732
- if (ratio >= _chunk4JLD2IT7cjs.HEADING_RATIO_H1) level = 1;
1733
- else if (ratio >= _chunk4JLD2IT7cjs.HEADING_RATIO_H2) level = 2;
1734
- else if (ratio >= _chunk4JLD2IT7cjs.HEADING_RATIO_H3) level = 3;
1732
+ if (ratio >= _chunkRWSGBXSAcjs.HEADING_RATIO_H1) level = 1;
1733
+ else if (ratio >= _chunkRWSGBXSAcjs.HEADING_RATIO_H2) level = 2;
1734
+ else if (ratio >= _chunkRWSGBXSAcjs.HEADING_RATIO_H3) level = 3;
1735
1735
  if (level > 0) {
1736
1736
  block.type = "heading";
1737
1737
  block.level = level;
@@ -2136,7 +2136,7 @@ function extractBlocksWithGrids(items, pageNum, grids, horizontals, verticals) {
2136
2136
  }
2137
2137
  if (remaining.length > 0) {
2138
2138
  const allY = remaining.map((i) => i.y);
2139
- const pageH = _chunk4JLD2IT7cjs.safeMax.call(void 0, allY) - _chunk4JLD2IT7cjs.safeMin.call(void 0, allY);
2139
+ const pageH = _chunkRWSGBXSAcjs.safeMax.call(void 0, allY) - _chunkRWSGBXSAcjs.safeMin.call(void 0, allY);
2140
2140
  const groups = xyCutOrder(remaining, Math.max(15, pageH * 0.03));
2141
2141
  const textBlocks = [];
2142
2142
  for (const group of groups) {
@@ -2265,7 +2265,7 @@ function extractPageBlocksFallback(items, pageNum) {
2265
2265
  blocks.push({ type: "paragraph", text: tableText, pageNumber: pageNum, bbox, style: dominantStyle(items) });
2266
2266
  } else {
2267
2267
  const allY = items.map((i) => i.y);
2268
- const pageHeight = _chunk4JLD2IT7cjs.safeMax.call(void 0, allY) - _chunk4JLD2IT7cjs.safeMin.call(void 0, allY);
2268
+ const pageHeight = _chunkRWSGBXSAcjs.safeMax.call(void 0, allY) - _chunkRWSGBXSAcjs.safeMin.call(void 0, allY);
2269
2269
  const gapThreshold = Math.max(15, pageHeight * 0.03);
2270
2270
  const orderedGroups = xyCutOrder(items, gapThreshold);
2271
2271
  for (const group of orderedGroups) {
@@ -2441,14 +2441,14 @@ function isProseSpread(items) {
2441
2441
  for (let i = 1; i < sorted.length; i++) {
2442
2442
  gaps.push(sorted[i].x - (sorted[i - 1].x + sorted[i - 1].w));
2443
2443
  }
2444
- const maxGap = _chunk4JLD2IT7cjs.safeMax.call(void 0, gaps);
2444
+ const maxGap = _chunkRWSGBXSAcjs.safeMax.call(void 0, gaps);
2445
2445
  const avgLen = items.reduce((s, i) => s + i.text.length, 0) / items.length;
2446
2446
  return maxGap < 40 && avgLen < 5;
2447
2447
  }
2448
2448
  function detectColumns(yLines) {
2449
2449
  const allItems = yLines.flat();
2450
2450
  if (allItems.length === 0) return null;
2451
- const pageWidth = _chunk4JLD2IT7cjs.safeMax.call(void 0, allItems.map((i) => i.x + i.w)) - _chunk4JLD2IT7cjs.safeMin.call(void 0, allItems.map((i) => i.x));
2451
+ const pageWidth = _chunkRWSGBXSAcjs.safeMax.call(void 0, allItems.map((i) => i.x + i.w)) - _chunkRWSGBXSAcjs.safeMin.call(void 0, allItems.map((i) => i.x));
2452
2452
  if (pageWidth < 100) return null;
2453
2453
  let bigoLineIdx = -1;
2454
2454
  for (let i = 0; i < yLines.length; i++) {
@@ -3018,7 +3018,7 @@ function mergeKoreanLines(text) {
3018
3018
  return result.join("\n");
3019
3019
  }
3020
3020
  async function applyFormulaOcr(buffer, blocks, pageFilter, effectivePageCount, warnings, _onProgress) {
3021
- const formulaMod = await Promise.resolve().then(() => _interopRequireWildcard(require("./formula-ZYUDQHD3.cjs")));
3021
+ const formulaMod = await Promise.resolve().then(() => _interopRequireWildcard(require("./formula-5NKVS2LR.cjs")));
3022
3022
  const { FormulaPipeline, ensureFormulaModels } = formulaMod;
3023
3023
  await ensureFormulaModels((p) => {
3024
3024
  if (p.phase === "download" && p.total) {
@@ -3144,4 +3144,4 @@ function formatMb(bytes) {
3144
3144
 
3145
3145
 
3146
3146
  exports.cleanPdfText = cleanPdfText; exports.detectKoreanListBlocks = detectKoreanListBlocks; exports.detectTableCaptions = detectTableCaptions; exports.extractPdfMetadataOnly = extractPdfMetadataOnly; exports.mergeCrossPageTables = mergeCrossPageTables; exports.parsePdfDocument = parsePdfDocument; exports.removeHeaderFooterBlocks = removeHeaderFooterBlocks;
3147
- //# sourceMappingURL=parser-25ISHR7Q.cjs.map
3147
+ //# sourceMappingURL=parser-ZLFOUVR4.cjs.map