kordoc 4.0.2 → 4.0.3

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 (78) hide show
  1. package/README.md +792 -768
  2. package/dist/{-XMKVL3NX.js → -QSF64HNK.js} +8 -8
  3. package/dist/{chunk-STMLZDKR.js → chunk-6JSZBSOD.js} +2 -2
  4. package/dist/chunk-6JSZBSOD.js.map +1 -0
  5. package/dist/{chunk-IKBIIEVJ.js → chunk-AUJICYJG.js} +3 -3
  6. package/dist/chunk-AUJICYJG.js.map +1 -0
  7. package/dist/chunk-DCZVOIEO.cjs.map +1 -1
  8. package/dist/chunk-GS7T56RP.cjs.map +1 -1
  9. package/dist/{chunk-AHWRAGXN.js → chunk-K2SETHJ6.js} +162 -75
  10. package/dist/chunk-K2SETHJ6.js.map +1 -0
  11. package/dist/{chunk-5CJGKKMZ.js → chunk-MEPHGCPQ.js} +1 -1
  12. package/dist/chunk-MEPHGCPQ.js.map +1 -0
  13. package/dist/chunk-MOL7MDBG.js +0 -0
  14. package/dist/{chunk-6SD4X5PT.js → chunk-MQLKSRIK.js} +3 -3
  15. package/dist/chunk-MQLKSRIK.js.map +1 -0
  16. package/dist/{chunk-WN7LZHII.cjs → chunk-OVESZY5R.cjs} +2 -2
  17. package/dist/chunk-OVESZY5R.cjs.map +1 -0
  18. package/dist/{chunk-6YIYFWO2.js → chunk-PNQDQ3SM.js} +2 -2
  19. package/dist/chunk-PNQDQ3SM.js.map +1 -0
  20. package/dist/{chunk-67RANGFQ.js → chunk-RO2GVZ3I.js} +3 -3
  21. package/dist/chunk-RO2GVZ3I.js.map +1 -0
  22. package/dist/{chunk-3IYQYBUF.js → chunk-TQYX5E32.js} +2 -2
  23. package/dist/chunk-TQYX5E32.js.map +1 -0
  24. package/dist/cli.js +14 -14
  25. package/dist/cli.js.map +1 -1
  26. package/dist/{detect-PJZMUL2Z.js → detect-RI2MQ33K.js} +2 -2
  27. package/dist/formula-5NKVS2LR.cjs.map +1 -1
  28. package/dist/formula-JCNF43NE.js +0 -0
  29. package/dist/index.cjs +461 -374
  30. package/dist/index.cjs.map +1 -1
  31. package/dist/index.d.cts +5 -4
  32. package/dist/index.d.ts +5 -4
  33. package/dist/index.js +157 -70
  34. package/dist/index.js.map +1 -1
  35. package/dist/mcp.js +17 -17
  36. package/dist/mcp.js.map +1 -1
  37. package/dist/page-range-737B4EZW.js +0 -0
  38. package/dist/page-range-P7SDW6LR.cjs.map +1 -1
  39. package/dist/{parser-3HM2VYKK.js → parser-AODAQQLQ.js} +5 -5
  40. package/dist/parser-AODAQQLQ.js.map +1 -0
  41. package/dist/{parser-6AYYGX6J.cjs → parser-FMONFTAN.cjs} +16 -16
  42. package/dist/parser-FMONFTAN.cjs.map +1 -0
  43. package/dist/{parser-2Q2YKEJG.js → parser-J7YREDNS.js} +4 -4
  44. package/dist/parser-J7YREDNS.js.map +1 -0
  45. package/dist/{provider-H4WWSPOV.js → provider-4ZJKV3DC.js} +1 -1
  46. package/dist/provider-4ZJKV3DC.js.map +1 -0
  47. package/dist/{provider-7H4CPZYS.js → provider-AKROB7WQ.js} +1 -1
  48. package/dist/provider-AKROB7WQ.js.map +1 -0
  49. package/dist/{provider-5K7O3Z2O.cjs → provider-G4C2V2PD.cjs} +1 -1
  50. package/dist/provider-G4C2V2PD.cjs.map +1 -0
  51. package/dist/render-JPP7YTV3.js +10 -0
  52. package/dist/seal-MDE4DXZQ.js +10 -0
  53. package/dist/setup-57FB3LSP.js +0 -0
  54. package/dist/{watch-6OHF727O.js → watch-P65Z24AL.js} +8 -8
  55. package/dist/watch-P65Z24AL.js.map +1 -0
  56. package/package.json +4 -4
  57. package/dist/chunk-3IYQYBUF.js.map +0 -1
  58. package/dist/chunk-5CJGKKMZ.js.map +0 -1
  59. package/dist/chunk-67RANGFQ.js.map +0 -1
  60. package/dist/chunk-6SD4X5PT.js.map +0 -1
  61. package/dist/chunk-6YIYFWO2.js.map +0 -1
  62. package/dist/chunk-AHWRAGXN.js.map +0 -1
  63. package/dist/chunk-IKBIIEVJ.js.map +0 -1
  64. package/dist/chunk-STMLZDKR.js.map +0 -1
  65. package/dist/chunk-WN7LZHII.cjs.map +0 -1
  66. package/dist/parser-2Q2YKEJG.js.map +0 -1
  67. package/dist/parser-3HM2VYKK.js.map +0 -1
  68. package/dist/parser-6AYYGX6J.cjs.map +0 -1
  69. package/dist/provider-5K7O3Z2O.cjs.map +0 -1
  70. package/dist/provider-7H4CPZYS.js.map +0 -1
  71. package/dist/provider-H4WWSPOV.js.map +0 -1
  72. package/dist/render-W4VCJE6N.js +0 -10
  73. package/dist/seal-DRPTNHOP.js +0 -10
  74. package/dist/watch-6OHF727O.js.map +0 -1
  75. /package/dist/{-XMKVL3NX.js.map → -QSF64HNK.js.map} +0 -0
  76. /package/dist/{detect-PJZMUL2Z.js.map → detect-RI2MQ33K.js.map} +0 -0
  77. /package/dist/{render-W4VCJE6N.js.map → render-JPP7YTV3.js.map} +0 -0
  78. /package/dist/{seal-DRPTNHOP.js.map → seal-MDE4DXZQ.js.map} +0 -0
@@ -6,7 +6,7 @@
6
6
 
7
7
 
8
8
 
9
- var _chunkWN7LZHIIcjs = require('./chunk-WN7LZHII.cjs');
9
+ var _chunkOVESZY5Rcjs = require('./chunk-OVESZY5R.cjs');
10
10
 
11
11
 
12
12
  var _chunkDCZVOIEOcjs = require('./chunk-DCZVOIEO.cjs');
@@ -1236,7 +1236,7 @@ function dominantStyle(items) {
1236
1236
  }
1237
1237
  if (dominantSize === 0) return void 0;
1238
1238
  const fontName = _optionalChain([items, 'access', _4 => _4.find, 'call', _5 => _5((i) => i.fontSize === dominantSize), 'optionalAccess', _6 => _6.fontName]) || void 0;
1239
- return { fontSize: dominantSize, fontName };
1239
+ return fontName ? { fontSize: dominantSize, fontName } : { fontSize: dominantSize };
1240
1240
  }
1241
1241
  function normalizeItems(rawItems) {
1242
1242
  const items = [];
@@ -2147,14 +2147,14 @@ function isProseSpread(items) {
2147
2147
  for (let i = 1; i < sorted.length; i++) {
2148
2148
  gaps.push(sorted[i].x - (sorted[i - 1].x + sorted[i - 1].w));
2149
2149
  }
2150
- const maxGap = _chunkWN7LZHIIcjs.safeMax.call(void 0, gaps);
2150
+ const maxGap = _chunkOVESZY5Rcjs.safeMax.call(void 0, gaps);
2151
2151
  const avgLen = items.reduce((s, i) => s + i.text.length, 0) / items.length;
2152
2152
  return maxGap < 40 && avgLen < 5;
2153
2153
  }
2154
2154
  function detectColumns(yLines) {
2155
2155
  const allItems = yLines.flat();
2156
2156
  if (allItems.length === 0) return null;
2157
- const pageWidth = _chunkWN7LZHIIcjs.safeMax.call(void 0, allItems.map((i) => i.x + i.w)) - _chunkWN7LZHIIcjs.safeMin.call(void 0, allItems.map((i) => i.x));
2157
+ const pageWidth = _chunkOVESZY5Rcjs.safeMax.call(void 0, allItems.map((i) => i.x + i.w)) - _chunkOVESZY5Rcjs.safeMin.call(void 0, allItems.map((i) => i.x));
2158
2158
  if (pageWidth < 100) return null;
2159
2159
  let bigoLineIdx = -1;
2160
2160
  for (let i = 0; i < yLines.length; i++) {
@@ -2376,9 +2376,9 @@ function detectHeadings(blocks, medianFontSize) {
2376
2376
  if (/^\d+$/.test(text)) continue;
2377
2377
  const ratio = block.style.fontSize / medianFontSize;
2378
2378
  let level = 0;
2379
- if (ratio >= _chunkWN7LZHIIcjs.HEADING_RATIO_H1) level = 1;
2380
- else if (ratio >= _chunkWN7LZHIIcjs.HEADING_RATIO_H2) level = 2;
2381
- else if (ratio >= _chunkWN7LZHIIcjs.HEADING_RATIO_H3) level = 3;
2379
+ if (ratio >= _chunkOVESZY5Rcjs.HEADING_RATIO_H1) level = 1;
2380
+ else if (ratio >= _chunkOVESZY5Rcjs.HEADING_RATIO_H2) level = 2;
2381
+ else if (ratio >= _chunkOVESZY5Rcjs.HEADING_RATIO_H3) level = 3;
2382
2382
  if (level > 0) {
2383
2383
  block.type = "heading";
2384
2384
  block.level = level;
@@ -2954,7 +2954,7 @@ function extractBlocksWithGrids(items, pageNum, grids, horizontals, verticals) {
2954
2954
  }
2955
2955
  if (remaining.length > 0) {
2956
2956
  const allY = remaining.map((i) => i.y);
2957
- const pageH = _chunkWN7LZHIIcjs.safeMax.call(void 0, allY) - _chunkWN7LZHIIcjs.safeMin.call(void 0, allY);
2957
+ const pageH = _chunkOVESZY5Rcjs.safeMax.call(void 0, allY) - _chunkOVESZY5Rcjs.safeMin.call(void 0, allY);
2958
2958
  const groups = xyCutOrder(remaining, Math.max(15, pageH * 0.03));
2959
2959
  const textBlocks = [];
2960
2960
  for (const group of groups) {
@@ -3130,7 +3130,7 @@ function extractPageBlocksFallback(items, pageNum, fullPage = false) {
3130
3130
  blocks.push({ type: "paragraph", text: tableText, pageNumber: pageNum, bbox, style: dominantStyle(items) });
3131
3131
  } else {
3132
3132
  const allY = items.map((i) => i.y);
3133
- const pageHeight = _chunkWN7LZHIIcjs.safeMax.call(void 0, allY) - _chunkWN7LZHIIcjs.safeMin.call(void 0, allY);
3133
+ const pageHeight = _chunkOVESZY5Rcjs.safeMax.call(void 0, allY) - _chunkOVESZY5Rcjs.safeMin.call(void 0, allY);
3134
3134
  const gapThreshold = Math.max(15, pageHeight * 0.03);
3135
3135
  const orderedGroups = proseCutX !== null ? splitTwoColumnProse(items, proseCutX) : xyCutOrder(items, gapThreshold);
3136
3136
  for (const group of orderedGroups) {
@@ -3383,7 +3383,7 @@ async function loadPdfWithTimeout(buffer) {
3383
3383
  new Promise((_, reject) => {
3384
3384
  timer = setTimeout(() => {
3385
3385
  loadingTask.destroy();
3386
- reject(new (0, _chunkWN7LZHIIcjs.KordocError)("PDF \uB85C\uB529 \uD0C0\uC784\uC544\uC6C3 (30\uCD08 \uCD08\uACFC)"));
3386
+ reject(new (0, _chunkOVESZY5Rcjs.KordocError)("PDF \uB85C\uB529 \uD0C0\uC784\uC544\uC6C3 (30\uCD08 \uCD08\uACFC)"));
3387
3387
  }, PDF_LOAD_TIMEOUT_MS);
3388
3388
  })
3389
3389
  ]);
@@ -3396,7 +3396,7 @@ async function parsePdfDocument(buffer, options) {
3396
3396
  const doc = await loadPdfWithTimeout(buffer);
3397
3397
  try {
3398
3398
  const pageCount = doc.numPages;
3399
- if (pageCount === 0) throw new (0, _chunkWN7LZHIIcjs.KordocError)("PDF\uC5D0 \uD398\uC774\uC9C0\uAC00 \uC5C6\uC2B5\uB2C8\uB2E4.");
3399
+ if (pageCount === 0) throw new (0, _chunkOVESZY5Rcjs.KordocError)("PDF\uC5D0 \uD398\uC774\uC9C0\uAC00 \uC5C6\uC2B5\uB2C8\uB2E4.");
3400
3400
  const metadata = { pageCount };
3401
3401
  await extractPdfMetadata(doc, metadata);
3402
3402
  const blocks = [];
@@ -3456,11 +3456,11 @@ async function parsePdfDocument(buffer, options) {
3456
3456
  pageText += pageText ? "\n" + t : t;
3457
3457
  }
3458
3458
  pageQuality.push(computePageQuality(i, pageText));
3459
- if (totalTextBytes > MAX_TOTAL_TEXT) throw new (0, _chunkWN7LZHIIcjs.KordocError)("\uD14D\uC2A4\uD2B8 \uCD94\uCD9C \uD06C\uAE30 \uCD08\uACFC");
3459
+ if (totalTextBytes > MAX_TOTAL_TEXT) throw new (0, _chunkOVESZY5Rcjs.KordocError)("\uD14D\uC2A4\uD2B8 \uCD94\uCD9C \uD06C\uAE30 \uCD08\uACFC");
3460
3460
  parsedPages++;
3461
3461
  _optionalChain([options, 'optionalAccess', _36 => _36.onProgress, 'optionalCall', _37 => _37(parsedPages, totalTarget)]);
3462
3462
  } catch (pageErr) {
3463
- if (pageErr instanceof _chunkWN7LZHIIcjs.KordocError) throw pageErr;
3463
+ if (pageErr instanceof _chunkOVESZY5Rcjs.KordocError) throw pageErr;
3464
3464
  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" });
3465
3465
  }
3466
3466
  }
@@ -3469,7 +3469,7 @@ async function parsePdfDocument(buffer, options) {
3469
3469
  if (totalChars / Math.max(parsedPageCount, 1) < 10) {
3470
3470
  if (_optionalChain([options, 'optionalAccess', _38 => _38.ocr])) {
3471
3471
  try {
3472
- const { ocrPages } = await Promise.resolve().then(() => _interopRequireWildcard(require("./provider-5K7O3Z2O.cjs")));
3472
+ const { ocrPages } = await Promise.resolve().then(() => _interopRequireWildcard(require("./provider-G4C2V2PD.cjs")));
3473
3473
  const ocrBlocks = await ocrPages(doc, options.ocr, pageFilter, effectivePageCount);
3474
3474
  if (ocrBlocks.length > 0) {
3475
3475
  const ocrMarkdown = ocrBlocks.map((b) => b.text || "").filter(Boolean).join("\n\n");
@@ -3528,7 +3528,7 @@ async function parsePdfDocument(buffer, options) {
3528
3528
  detectKoreanListBlocks(blocks);
3529
3529
  const outline = blocks.filter((b) => b.type === "heading" && b.level && b.text).map((b) => ({ level: b.level, text: b.text, pageNumber: b.pageNumber }));
3530
3530
  sanitizeBlockControlChars(blocks);
3531
- let markdown = cleanPdfText(_chunkWN7LZHIIcjs.blocksToMarkdown.call(void 0, blocks));
3531
+ let markdown = cleanPdfText(_chunkOVESZY5Rcjs.blocksToMarkdown.call(void 0, blocks));
3532
3532
  return {
3533
3533
  markdown,
3534
3534
  blocks,
@@ -3587,4 +3587,4 @@ async function extractPdfMetadataOnly(buffer) {
3587
3587
 
3588
3588
 
3589
3589
  exports.cleanPdfText = cleanPdfText; exports.detectKoreanListBlocks = detectKoreanListBlocks; exports.detectTableCaptions = detectTableCaptions; exports.extractPdfMetadataOnly = extractPdfMetadataOnly; exports.mergeCrossPageTables = mergeCrossPageTables; exports.parsePdfDocument = parsePdfDocument; exports.removeHeaderFooterBlocks = removeHeaderFooterBlocks;
3590
- //# sourceMappingURL=parser-6AYYGX6J.cjs.map
3590
+ //# sourceMappingURL=parser-FMONFTAN.cjs.map