kordoc 4.12.2 → 4.13.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.
Files changed (137) hide show
  1. package/README.md +32 -1
  2. package/dist/{-EZH6NKTE.js → -UZDRUWTX.js} +43 -22
  3. package/dist/{chunk-FBLMVHDK.js → chunk-27QN27I3.js} +2 -2
  4. package/dist/{chunk-MUYU4JI5.js → chunk-2B45S7FM.js} +2 -2
  5. package/dist/{chunk-LD2K4K5V.js → chunk-2RREQZ44.js} +1662 -652
  6. package/dist/chunk-2RREQZ44.js.map +1 -0
  7. package/dist/{chunk-OEYECZGV.js → chunk-3ABHPKYA.js} +10 -6
  8. package/dist/chunk-3ABHPKYA.js.map +1 -0
  9. package/dist/{chunk-QM2RSJ2S.js → chunk-3MCFJIN2.js} +5 -5
  10. package/dist/{chunk-JCMBQC5N.js → chunk-5VHLKNCE.js} +2 -2
  11. package/dist/{chunk-FVBR7SC3.js → chunk-6JXMIX3G.js} +2 -2
  12. package/dist/chunk-6JXMIX3G.js.map +1 -0
  13. package/dist/{chunk-5RPYBC2Q.js → chunk-6NLXGGNH.js} +37 -6
  14. package/dist/chunk-6NLXGGNH.js.map +1 -0
  15. package/dist/{chunk-2B7OIEJJ.js → chunk-AGBFCFQY.js} +10 -6
  16. package/dist/chunk-AGBFCFQY.js.map +1 -0
  17. package/dist/{rasterize-NRWP2C6L.js → chunk-BQLZOQES.js} +22 -6
  18. package/dist/chunk-BQLZOQES.js.map +1 -0
  19. package/dist/{chunk-ONNAHSPV.cjs → chunk-CKMK42FV.cjs} +18 -14
  20. package/dist/chunk-CKMK42FV.cjs.map +1 -0
  21. package/dist/{chunk-T7GRHAIW.cjs → chunk-COUGOFT3.cjs} +1 -1
  22. package/dist/chunk-COUGOFT3.cjs.map +1 -0
  23. package/dist/{chunk-2LO525TL.js → chunk-F3FEIYI7.js} +2 -2
  24. package/dist/{chunk-Q6ETEJFK.js → chunk-GWFX5ZD7.js} +11 -7
  25. package/dist/chunk-GWFX5ZD7.js.map +1 -0
  26. package/dist/{chunk-2HBYWA5X.js → chunk-H5JWPWQP.js} +2 -2
  27. package/dist/{chunk-N3DLQ2YH.js → chunk-HG5LXXCC.js} +1 -1
  28. package/dist/chunk-HG5LXXCC.js.map +1 -0
  29. package/dist/{chunk-KX7IYCCZ.js → chunk-IEJR23OA.js} +3 -3
  30. package/dist/{chunk-7XUXSDH5.js → chunk-ILDTN72S.js} +10 -6
  31. package/dist/chunk-ILDTN72S.js.map +1 -0
  32. package/dist/{chunk-QBCMFNHS.js → chunk-L3CEPNQS.js} +2 -2
  33. package/dist/{chunk-XXDZ2KTW.js → chunk-LP5RTYFM.js} +2 -2
  34. package/dist/{chunk-2LKYJ4G3.cjs → chunk-MCD45IHO.cjs} +6 -6
  35. package/dist/{chunk-2LKYJ4G3.cjs.map → chunk-MCD45IHO.cjs.map} +1 -1
  36. package/dist/{chunk-V5BUPZ6I.cjs → chunk-OJV7HNGJ.cjs} +13 -9
  37. package/dist/chunk-OJV7HNGJ.cjs.map +1 -0
  38. package/dist/{chunk-DBGEUDBY.js → chunk-OSLJ3A6D.js} +2 -2
  39. package/dist/{chunk-2LPBIW2B.cjs → chunk-S2VKZKUX.cjs} +3 -3
  40. package/dist/{chunk-2LPBIW2B.cjs.map → chunk-S2VKZKUX.cjs.map} +1 -1
  41. package/dist/{chunk-IOJX4Q63.js → chunk-T7AFLXGA.js} +786 -19
  42. package/dist/chunk-T7AFLXGA.js.map +1 -0
  43. package/dist/{chunk-UL2MDA5C.js → chunk-TA2LEFOF.js} +3 -3
  44. package/dist/{chunk-62IU4NV3.cjs → chunk-TAYCQE6K.cjs} +2 -2
  45. package/dist/{chunk-62IU4NV3.cjs.map → chunk-TAYCQE6K.cjs.map} +1 -1
  46. package/dist/{chunk-ONQHGZTS.js → chunk-XVIJLHCW.js} +1 -1
  47. package/dist/chunk-XVIJLHCW.js.map +1 -0
  48. package/dist/chunks-G3GK536Y.js +10 -0
  49. package/dist/cli.js +187 -38
  50. package/dist/cli.js.map +1 -1
  51. package/dist/{formula-6RQX4NMJ.js → formula-3T7HQA4O.js} +4 -4
  52. package/dist/{formula-NW33S4TA.js → formula-FWVAOSIK.js} +3 -3
  53. package/dist/{formula-NBEO6CFC.cjs → formula-YALEMZMF.cjs} +9 -9
  54. package/dist/{formula-NBEO6CFC.cjs.map → formula-YALEMZMF.cjs.map} +1 -1
  55. package/dist/{image-ocr-SO56VETS.js → image-ocr-2M7K3CE5.js} +8 -8
  56. package/dist/{image-ocr-V4KY373B.cjs → image-ocr-4EUZIF6M.cjs} +12 -12
  57. package/dist/{image-ocr-V4KY373B.cjs.map → image-ocr-4EUZIF6M.cjs.map} +1 -1
  58. package/dist/{image-ocr-CAVU2TNZ.js → image-ocr-X3I2HUK2.js} +6 -6
  59. package/dist/index.cjs +2349 -576
  60. package/dist/index.cjs.map +1 -1
  61. package/dist/index.d.cts +305 -12
  62. package/dist/index.d.ts +305 -12
  63. package/dist/index.js +1980 -207
  64. package/dist/index.js.map +1 -1
  65. package/dist/mcp.js +109 -35
  66. package/dist/mcp.js.map +1 -1
  67. package/dist/{model-bundle-EIJF34DR.js → model-bundle-XXYZ6ELQ.js} +5 -5
  68. package/dist/{models-6V4CPQXC.js → models-APDSXJW7.js} +5 -5
  69. package/dist/{parser-OMT25WH2.cjs → parser-4KE2FR5F.cjs} +60 -39
  70. package/dist/parser-4KE2FR5F.cjs.map +1 -0
  71. package/dist/{parser-OBHNXEQM.js → parser-T5R4YVZS.js} +32 -11
  72. package/dist/parser-T5R4YVZS.js.map +1 -0
  73. package/dist/{parser-GIREMEPD.js → parser-XKSOS6GY.js} +32 -11
  74. package/dist/parser-XKSOS6GY.js.map +1 -0
  75. package/dist/pdf-ocr-JZKCEKWX.cjs +14 -0
  76. package/dist/{pdf-ocr-TFYVK4FI.cjs.map → pdf-ocr-JZKCEKWX.cjs.map} +1 -1
  77. package/dist/pdf-ocr-X62B7YDV.js +13 -0
  78. package/dist/pdf-ocr-YDJQEGDS.js +16 -0
  79. package/dist/{profile-io-PZVMM66V.js → profile-io-Y24GOHWM.js} +3 -3
  80. package/dist/rasterize-QCOBWHAG.js +13 -0
  81. package/dist/render-DHFQQCSV.js +38 -0
  82. package/dist/seal-UTHFQPLO.js +10 -0
  83. package/dist/seal-UTHFQPLO.js.map +1 -0
  84. package/dist/{setup-V55AJP6H.js → setup-UWX3KH3G.js} +3 -3
  85. package/dist/visual-DF2KSPEC.js +19 -0
  86. package/dist/visual-DF2KSPEC.js.map +1 -0
  87. package/dist/{watch-7CQSMDDP.js → watch-4ZUTMC3Q.js} +15 -13
  88. package/dist/{watch-7CQSMDDP.js.map → watch-4ZUTMC3Q.js.map} +1 -1
  89. package/package.json +1 -1
  90. package/dist/chunk-2B7OIEJJ.js.map +0 -1
  91. package/dist/chunk-5RPYBC2Q.js.map +0 -1
  92. package/dist/chunk-7XUXSDH5.js.map +0 -1
  93. package/dist/chunk-FVBR7SC3.js.map +0 -1
  94. package/dist/chunk-IOJX4Q63.js.map +0 -1
  95. package/dist/chunk-LD2K4K5V.js.map +0 -1
  96. package/dist/chunk-N3DLQ2YH.js.map +0 -1
  97. package/dist/chunk-OEYECZGV.js.map +0 -1
  98. package/dist/chunk-ONNAHSPV.cjs.map +0 -1
  99. package/dist/chunk-ONQHGZTS.js.map +0 -1
  100. package/dist/chunk-Q6ETEJFK.js.map +0 -1
  101. package/dist/chunk-T7GRHAIW.cjs.map +0 -1
  102. package/dist/chunk-V5BUPZ6I.cjs.map +0 -1
  103. package/dist/chunks-TT7ZE5QQ.js +0 -10
  104. package/dist/parser-GIREMEPD.js.map +0 -1
  105. package/dist/parser-OBHNXEQM.js.map +0 -1
  106. package/dist/parser-OMT25WH2.cjs.map +0 -1
  107. package/dist/pdf-ocr-IRXQ5GBM.js +0 -13
  108. package/dist/pdf-ocr-SL4GCOGS.js +0 -16
  109. package/dist/pdf-ocr-TFYVK4FI.cjs +0 -14
  110. package/dist/rasterize-NRWP2C6L.js.map +0 -1
  111. package/dist/render-V5ZPTZQ7.js +0 -10
  112. package/dist/seal-LVG2DGAB.js +0 -10
  113. /package/dist/{-EZH6NKTE.js.map → -UZDRUWTX.js.map} +0 -0
  114. /package/dist/{chunk-FBLMVHDK.js.map → chunk-27QN27I3.js.map} +0 -0
  115. /package/dist/{chunk-MUYU4JI5.js.map → chunk-2B45S7FM.js.map} +0 -0
  116. /package/dist/{chunk-QM2RSJ2S.js.map → chunk-3MCFJIN2.js.map} +0 -0
  117. /package/dist/{chunk-JCMBQC5N.js.map → chunk-5VHLKNCE.js.map} +0 -0
  118. /package/dist/{chunk-2LO525TL.js.map → chunk-F3FEIYI7.js.map} +0 -0
  119. /package/dist/{chunk-2HBYWA5X.js.map → chunk-H5JWPWQP.js.map} +0 -0
  120. /package/dist/{chunk-KX7IYCCZ.js.map → chunk-IEJR23OA.js.map} +0 -0
  121. /package/dist/{chunk-QBCMFNHS.js.map → chunk-L3CEPNQS.js.map} +0 -0
  122. /package/dist/{chunk-XXDZ2KTW.js.map → chunk-LP5RTYFM.js.map} +0 -0
  123. /package/dist/{chunk-DBGEUDBY.js.map → chunk-OSLJ3A6D.js.map} +0 -0
  124. /package/dist/{chunk-UL2MDA5C.js.map → chunk-TA2LEFOF.js.map} +0 -0
  125. /package/dist/{chunks-TT7ZE5QQ.js.map → chunks-G3GK536Y.js.map} +0 -0
  126. /package/dist/{formula-6RQX4NMJ.js.map → formula-3T7HQA4O.js.map} +0 -0
  127. /package/dist/{formula-NW33S4TA.js.map → formula-FWVAOSIK.js.map} +0 -0
  128. /package/dist/{image-ocr-SO56VETS.js.map → image-ocr-2M7K3CE5.js.map} +0 -0
  129. /package/dist/{image-ocr-CAVU2TNZ.js.map → image-ocr-X3I2HUK2.js.map} +0 -0
  130. /package/dist/{model-bundle-EIJF34DR.js.map → model-bundle-XXYZ6ELQ.js.map} +0 -0
  131. /package/dist/{models-6V4CPQXC.js.map → models-APDSXJW7.js.map} +0 -0
  132. /package/dist/{pdf-ocr-IRXQ5GBM.js.map → pdf-ocr-X62B7YDV.js.map} +0 -0
  133. /package/dist/{pdf-ocr-SL4GCOGS.js.map → pdf-ocr-YDJQEGDS.js.map} +0 -0
  134. /package/dist/{profile-io-PZVMM66V.js.map → profile-io-Y24GOHWM.js.map} +0 -0
  135. /package/dist/{render-V5ZPTZQ7.js.map → rasterize-QCOBWHAG.js.map} +0 -0
  136. /package/dist/{seal-LVG2DGAB.js.map → render-DHFQQCSV.js.map} +0 -0
  137. /package/dist/{setup-V55AJP6H.js.map → setup-UWX3KH3G.js.map} +0 -0
@@ -2,11 +2,11 @@
2
2
 
3
3
 
4
4
 
5
- var _chunkT7GRHAIWcjs = require('./chunk-T7GRHAIW.cjs');
5
+ var _chunkCOUGOFT3cjs = require('./chunk-COUGOFT3.cjs');
6
6
 
7
7
 
8
8
 
9
- var _chunk62IU4NV3cjs = require('./chunk-62IU4NV3.cjs');
9
+ var _chunkTAYCQE6Kcjs = require('./chunk-TAYCQE6K.cjs');
10
10
 
11
11
  // src/pdf/image-regions.ts
12
12
  var _pdfmjs = require('pdfjs-dist/legacy/build/pdf.mjs');
@@ -962,6 +962,9 @@ function linesIntersect(a, b) {
962
962
  var CLIP_EDGE_TOL = 1.5;
963
963
  var CLIP_MIN_GROUP = 2;
964
964
  var CLIP_MAX_PAGE_FRAC = 0.75;
965
+ var TITLED_FRAME_MIN_TOP = 0.2;
966
+ var TITLED_FRAME_MIN_WIDTH = 0.6;
967
+ var HEADER_BAND = 0.08;
965
968
  var CLIP_MIN_W2 = 4;
966
969
  var CLIP_MIN_H2 = 2;
967
970
  var STROKE_NEAR = 2;
@@ -1007,7 +1010,7 @@ function edgeStroked(lines, dir, pos, a1, a2) {
1007
1010
  }
1008
1011
  return false;
1009
1012
  }
1010
- function buildClipCellGrids(rects, strokedH, strokedV, pageWidth, pageHeight) {
1013
+ function buildClipCellGrids(rects, strokedH, strokedV, pageWidth, pageHeight, textPoints = []) {
1011
1014
  const pageArea = pageWidth * pageHeight;
1012
1015
  const sameRect = (a, b) => Math.abs(a.x1 - b.x1) <= CLIP_EDGE_TOL && Math.abs(a.x2 - b.x2) <= CLIP_EDGE_TOL && Math.abs(a.y1 - b.y1) <= CLIP_EDGE_TOL && Math.abs(a.y2 - b.y2) <= CLIP_EDGE_TOL;
1013
1016
  const cells = [];
@@ -1055,7 +1058,8 @@ function buildClipCellGrids(rects, strokedH, strokedV, pageWidth, pageHeight) {
1055
1058
  const groupSize = (i) => _nullishCoalesce(_optionalChain([groups, 'access', _4 => _4.get, 'call', _5 => _5(find(i)), 'optionalAccess', _6 => _6.length]), () => ( 0));
1056
1059
  const isGridMember = (i) => groupSize(i) >= CLIP_MIN_GROUP;
1057
1060
  const framed = (r) => edgeStroked(strokedH, "h", r.y1, r.x1, r.x2) && edgeStroked(strokedH, "h", r.y2, r.x1, r.x2) && edgeStroked(strokedV, "v", r.x1, r.y1, r.y2) && edgeStroked(strokedV, "v", r.x2, r.y1, r.y2);
1058
- const loneFrame = (i) => isContainer[i] && !isGridMember(i) && framed(cells[i]);
1061
+ const titledFrame = (r) => r.y1 >= pageHeight * TITLED_FRAME_MIN_TOP && r.x2 - r.x1 >= pageWidth * TITLED_FRAME_MIN_WIDTH && textPoints.some((p) => p.y < r.y1 && p.y > pageHeight * HEADER_BAND && p.x >= r.x1 - CLIP_EDGE_TOL && p.x <= r.x2 + CLIP_EDGE_TOL) && textPoints.some((p) => p.x > r.x1 && p.x < r.x2 && p.y > r.y1 && p.y < r.y2);
1062
+ const loneFrame = (i) => isContainer[i] && !isGridMember(i) && (framed(cells[i]) || titledFrame(cells[i]));
1059
1063
  const parentAttachable = (i) => parent[i] >= 0 && (isGridMember(parent[i]) || loneFrame(parent[i]));
1060
1064
  const onlyChild = (i) => parent[i] >= 0 && parent.filter((p) => p === parent[i]).length === 1;
1061
1065
  const grids = [];
@@ -1777,9 +1781,9 @@ function detectHeadings(blocks, medianFontSize) {
1777
1781
  if (/^\d+$/.test(text)) continue;
1778
1782
  const ratio = block.style.fontSize / medianFontSize;
1779
1783
  let level = 0;
1780
- if (ratio >= _chunkT7GRHAIWcjs.HEADING_RATIO_H1) level = 1;
1781
- else if (ratio >= _chunkT7GRHAIWcjs.HEADING_RATIO_H2) level = 2;
1782
- else if (ratio >= _chunkT7GRHAIWcjs.HEADING_RATIO_H3) level = 3;
1784
+ if (ratio >= _chunkCOUGOFT3cjs.HEADING_RATIO_H1) level = 1;
1785
+ else if (ratio >= _chunkCOUGOFT3cjs.HEADING_RATIO_H2) level = 2;
1786
+ else if (ratio >= _chunkCOUGOFT3cjs.HEADING_RATIO_H3) level = 3;
1783
1787
  if (level > 0) {
1784
1788
  block.type = "heading";
1785
1789
  block.level = level;
@@ -3042,14 +3046,14 @@ function isProseSpread(items) {
3042
3046
  for (let i = 1; i < sorted.length; i++) {
3043
3047
  gaps.push(sorted[i].x - (sorted[i - 1].x + sorted[i - 1].w));
3044
3048
  }
3045
- const maxGap = _chunk62IU4NV3cjs.safeMax.call(void 0, gaps);
3049
+ const maxGap = _chunkTAYCQE6Kcjs.safeMax.call(void 0, gaps);
3046
3050
  const avgLen = items.reduce((s, i) => s + i.text.length, 0) / items.length;
3047
3051
  return maxGap < 40 && avgLen < 5;
3048
3052
  }
3049
3053
  function detectColumns(yLines) {
3050
3054
  const allItems = yLines.flat();
3051
3055
  if (allItems.length === 0) return null;
3052
- const pageWidth = _chunk62IU4NV3cjs.safeMax.call(void 0, allItems.map((i) => i.x + i.w)) - _chunk62IU4NV3cjs.safeMin.call(void 0, allItems.map((i) => i.x));
3056
+ const pageWidth = _chunkTAYCQE6Kcjs.safeMax.call(void 0, allItems.map((i) => i.x + i.w)) - _chunkTAYCQE6Kcjs.safeMin.call(void 0, allItems.map((i) => i.x));
3053
3057
  if (pageWidth < 100) return null;
3054
3058
  let bigoLineIdx = -1;
3055
3059
  for (let i = 0; i < yLines.length; i++) {
@@ -3372,7 +3376,7 @@ function extractPageBlocksWithLines(items, pageNum, opList, pageWidth, pageHeigh
3372
3376
  if (items.length === 0) return [];
3373
3377
  const extracted = extractLines(opList.fnArray, opList.argsArray);
3374
3378
  let { horizontals, verticals } = extracted;
3375
- const clipResult = detectTables ? buildClipCellGrids(extracted.clipRects, horizontals, verticals, pageWidth, pageHeight) : { grids: [], containers: [] };
3379
+ const clipResult = detectTables ? buildClipCellGrids(extracted.clipRects, horizontals, verticals, pageWidth, pageHeight, items.map((it) => ({ x: it.x + it.w / 2, y: it.y + it.h / 2 }))) : { grids: [], containers: [] };
3376
3380
  const clipGrids = clipResult.grids;
3377
3381
  if (extraLines) {
3378
3382
  horizontals = horizontals.concat(extraLines.horizontals);
@@ -3674,7 +3678,7 @@ function extractBlocksWithGrids(items, pageNum, grids, horizontals, verticals) {
3674
3678
  if (gutterX !== null) {
3675
3679
  const gx = gutterX;
3676
3680
  const allY = remaining.map((i) => i.y);
3677
- const pageH = _chunk62IU4NV3cjs.safeMax.call(void 0, allY) - _chunk62IU4NV3cjs.safeMin.call(void 0, allY);
3681
+ const pageH = _chunkTAYCQE6Kcjs.safeMax.call(void 0, allY) - _chunkTAYCQE6Kcjs.safeMin.call(void 0, allY);
3678
3682
  const gapThreshold = Math.max(15, pageH * 0.03);
3679
3683
  const sides = [
3680
3684
  remaining.filter((i) => i.x + i.w <= gx),
@@ -3694,7 +3698,7 @@ function extractBlocksWithGrids(items, pageNum, grids, horizontals, verticals) {
3694
3698
  finalTextBlocks = detectListBlocks(textBlocks);
3695
3699
  } else {
3696
3700
  const allY = remaining.map((i) => i.y);
3697
- const pageH = _chunk62IU4NV3cjs.safeMax.call(void 0, allY) - _chunk62IU4NV3cjs.safeMin.call(void 0, allY);
3701
+ const pageH = _chunkTAYCQE6Kcjs.safeMax.call(void 0, allY) - _chunkTAYCQE6Kcjs.safeMin.call(void 0, allY);
3698
3702
  const groups = xyCutOrder(remaining, Math.max(15, pageH * 0.03));
3699
3703
  const textBlocks = [];
3700
3704
  for (const group of groups) {
@@ -3902,7 +3906,7 @@ function extractPageBlocksFallback(items, pageNum, fullPage = false, detectTable
3902
3906
  blocks.push({ type: "paragraph", text: tableText, pageNumber: pageNum, bbox, style: dominantStyle(items) });
3903
3907
  } else {
3904
3908
  const allY = items.map((i) => i.y);
3905
- const pageHeight = _chunk62IU4NV3cjs.safeMax.call(void 0, allY) - _chunk62IU4NV3cjs.safeMin.call(void 0, allY);
3909
+ const pageHeight = _chunkTAYCQE6Kcjs.safeMax.call(void 0, allY) - _chunkTAYCQE6Kcjs.safeMin.call(void 0, allY);
3906
3910
  const gapThreshold = Math.max(15, pageHeight * 0.03);
3907
3911
  const orderedGroups = proseCutX !== null ? splitTwoColumnProse(items, proseCutX) : xyCutOrder(items, gapThreshold);
3908
3912
  for (const group of orderedGroups) {
@@ -3941,4 +3945,4 @@ function extractPageBlocksFallback(items, pageNum, fullPage = false, detectTable
3941
3945
 
3942
3946
 
3943
3947
  exports.extractImageRegions = extractImageRegions; exports.filterHiddenText = filterHiddenText; exports.collapseEvenSpacing = collapseEvenSpacing; exports.normalizeItems = normalizeItems; exports.computeMedianFontSizeFromFreq = computeMedianFontSizeFromFreq; exports.detectHeadings = detectHeadings; exports.detectMarkerHeadings = detectMarkerHeadings; exports.detectTableCaptions = detectTableCaptions; exports.detectKoreanListBlocks = detectKoreanListBlocks; exports.removeHeaderFooterBlocks = removeHeaderFooterBlocks; exports.extractPageBlocksWithLines = extractPageBlocksWithLines; exports.mergeCrossPageTables = mergeCrossPageTables;
3944
- //# sourceMappingURL=chunk-ONNAHSPV.cjs.map
3948
+ //# sourceMappingURL=chunk-CKMK42FV.cjs.map