kordoc 3.16.2 → 3.17.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 (51) hide show
  1. package/README.md +32 -12
  2. package/dist/{-C4FVXHIP.js → -3KPDRR3A.js} +7 -7
  3. package/dist/chunk-DCZVOIEO.cjs.map +1 -1
  4. package/dist/{chunk-EJ2ZIYTO.js → chunk-E6NQWOFQ.js} +2 -2
  5. package/dist/{chunk-72LLOLFX.cjs → chunk-EL2Y4BL2.cjs} +2 -2
  6. package/dist/chunk-EL2Y4BL2.cjs.map +1 -0
  7. package/dist/chunk-GS7T56RP.cjs.map +1 -1
  8. package/dist/{chunk-4WI7QXEG.js → chunk-HVEEFHN7.js} +2 -2
  9. package/dist/{chunk-HECUYZZK.js → chunk-NKICMZ7F.js} +79 -3
  10. package/dist/chunk-NKICMZ7F.js.map +1 -0
  11. package/dist/{chunk-E4Y73XRH.js → chunk-SADQWCWR.js} +127 -68
  12. package/dist/chunk-SADQWCWR.js.map +1 -0
  13. package/dist/{chunk-WR5LHRXO.js → chunk-TDIDUEBH.js} +3 -3
  14. package/dist/{chunk-EUEKDZ7O.js → chunk-VUS6LRVY.js} +7 -7
  15. package/dist/{chunk-IS3IK7UT.js → chunk-WHMNPQXW.js} +2 -2
  16. package/dist/cli.js +12 -12
  17. package/dist/formula-5NKVS2LR.cjs.map +1 -1
  18. package/dist/index.cjs +393 -258
  19. package/dist/index.cjs.map +1 -1
  20. package/dist/index.d.cts +3 -2
  21. package/dist/index.d.ts +3 -2
  22. package/dist/index.js +203 -68
  23. package/dist/index.js.map +1 -1
  24. package/dist/mcp.js +8 -8
  25. package/dist/page-range-P7SDW6LR.cjs.map +1 -1
  26. package/dist/{parser-CMPNM6ZL.js → parser-CYJMOXUR.js} +3 -3
  27. package/dist/{parser-YVRTKGKO.cjs → parser-I5GC4QQ5.cjs} +14 -14
  28. package/dist/parser-I5GC4QQ5.cjs.map +1 -0
  29. package/dist/{parser-GWL72XYS.js → parser-LHBXIKXX.js} +2 -2
  30. package/dist/provider-G4C2V2PD.cjs.map +1 -1
  31. package/dist/render-HY7KKYPV.js +10 -0
  32. package/dist/seal-ITGYHENO.js +10 -0
  33. package/dist/{watch-WLI6K3IR.js → watch-VT7BSLNI.js} +7 -7
  34. package/package.json +1 -1
  35. package/dist/chunk-72LLOLFX.cjs.map +0 -1
  36. package/dist/chunk-E4Y73XRH.js.map +0 -1
  37. package/dist/chunk-HECUYZZK.js.map +0 -1
  38. package/dist/parser-YVRTKGKO.cjs.map +0 -1
  39. package/dist/render-A2LFMJCP.js +0 -10
  40. package/dist/seal-KA4VAV2Z.js +0 -10
  41. /package/dist/{-C4FVXHIP.js.map → -3KPDRR3A.js.map} +0 -0
  42. /package/dist/{chunk-EJ2ZIYTO.js.map → chunk-E6NQWOFQ.js.map} +0 -0
  43. /package/dist/{chunk-4WI7QXEG.js.map → chunk-HVEEFHN7.js.map} +0 -0
  44. /package/dist/{chunk-WR5LHRXO.js.map → chunk-TDIDUEBH.js.map} +0 -0
  45. /package/dist/{chunk-EUEKDZ7O.js.map → chunk-VUS6LRVY.js.map} +0 -0
  46. /package/dist/{chunk-IS3IK7UT.js.map → chunk-WHMNPQXW.js.map} +0 -0
  47. /package/dist/{parser-CMPNM6ZL.js.map → parser-CYJMOXUR.js.map} +0 -0
  48. /package/dist/{parser-GWL72XYS.js.map → parser-LHBXIKXX.js.map} +0 -0
  49. /package/dist/{render-A2LFMJCP.js.map → render-HY7KKYPV.js.map} +0 -0
  50. /package/dist/{seal-KA4VAV2Z.js.map → seal-ITGYHENO.js.map} +0 -0
  51. /package/dist/{watch-WLI6K3IR.js.map → watch-VT7BSLNI.js.map} +0 -0
package/dist/mcp.js CHANGED
@@ -11,24 +11,24 @@ import {
11
11
  parse,
12
12
  patchHwp,
13
13
  patchHwpx
14
- } from "./chunk-EUEKDZ7O.js";
14
+ } from "./chunk-VUS6LRVY.js";
15
15
  import {
16
16
  blocksToMarkdown
17
- } from "./chunk-IS3IK7UT.js";
17
+ } from "./chunk-WHMNPQXW.js";
18
18
  import {
19
19
  detectFormat,
20
20
  detectZipFormat
21
21
  } from "./chunk-MEPHGCPQ.js";
22
22
  import "./chunk-MOL7MDBG.js";
23
- import "./chunk-WR5LHRXO.js";
24
- import "./chunk-E4Y73XRH.js";
25
- import "./chunk-HECUYZZK.js";
23
+ import "./chunk-TDIDUEBH.js";
24
+ import "./chunk-SADQWCWR.js";
25
+ import "./chunk-NKICMZ7F.js";
26
26
  import {
27
27
  KordocError,
28
28
  VERSION,
29
29
  sanitizeError,
30
30
  toArrayBuffer
31
- } from "./chunk-4WI7QXEG.js";
31
+ } from "./chunk-HVEEFHN7.js";
32
32
 
33
33
  // src/mcp.ts
34
34
  import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
@@ -199,7 +199,7 @@ server.tool(
199
199
  break;
200
200
  case "pdf":
201
201
  try {
202
- const { extractPdfMetadataOnly } = await import("./parser-CMPNM6ZL.js");
202
+ const { extractPdfMetadataOnly } = await import("./parser-CYJMOXUR.js");
203
203
  metadata = await extractPdfMetadataOnly(buffer);
204
204
  } catch {
205
205
  metadata = void 0;
@@ -551,7 +551,7 @@ server.tool(
551
551
  }
552
552
  const image = new Uint8Array(readFileSync(imgResolved));
553
553
  const ext = extname(image_path).slice(1).toLowerCase() || "png";
554
- const { placeSealHwpx } = await import("./seal-KA4VAV2Z.js");
554
+ const { placeSealHwpx } = await import("./seal-ITGYHENO.js");
555
555
  const result = await placeSealHwpx(buffer, [{
556
556
  anchor,
557
557
  occurrence,
@@ -1 +1 @@
1
- {"version":3,"sources":["/Users/chris_gomdori/workspace/kordoc/dist/page-range-P7SDW6LR.cjs"],"names":[],"mappings":"AAAA;AACE;AACF,wDAA6B;AAC7B,gCAA6B;AAC7B;AACE;AACF,0DAAC","file":"/Users/chris_gomdori/workspace/kordoc/dist/page-range-P7SDW6LR.cjs"}
1
+ {"version":3,"sources":["/Users/mong-e/workspace/kordoc/dist/page-range-P7SDW6LR.cjs"],"names":[],"mappings":"AAAA;AACE;AACF,wDAA6B;AAC7B,gCAA6B;AAC7B;AACE;AACF,0DAAC","file":"/Users/mong-e/workspace/kordoc/dist/page-range-P7SDW6LR.cjs"}
@@ -4,7 +4,7 @@ import {
4
4
  HEADING_RATIO_H2,
5
5
  HEADING_RATIO_H3,
6
6
  blocksToMarkdown
7
- } from "./chunk-IS3IK7UT.js";
7
+ } from "./chunk-WHMNPQXW.js";
8
8
  import {
9
9
  parsePageRange
10
10
  } from "./chunk-MOL7MDBG.js";
@@ -12,7 +12,7 @@ import {
12
12
  KordocError,
13
13
  safeMax,
14
14
  safeMin
15
- } from "./chunk-4WI7QXEG.js";
15
+ } from "./chunk-HVEEFHN7.js";
16
16
 
17
17
  // src/pdf/line-extract.ts
18
18
  import { OPS } from "pdfjs-dist/legacy/build/pdf.mjs";
@@ -3587,4 +3587,4 @@ export {
3587
3587
  parsePdfDocument,
3588
3588
  removeHeaderFooterBlocks
3589
3589
  };
3590
- //# sourceMappingURL=parser-CMPNM6ZL.js.map
3590
+ //# sourceMappingURL=parser-CYJMOXUR.js.map
@@ -6,7 +6,7 @@
6
6
 
7
7
 
8
8
 
9
- var _chunk72LLOLFXcjs = require('./chunk-72LLOLFX.cjs');
9
+ var _chunkEL2Y4BL2cjs = require('./chunk-EL2Y4BL2.cjs');
10
10
 
11
11
 
12
12
  var _chunkDCZVOIEOcjs = require('./chunk-DCZVOIEO.cjs');
@@ -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 = _chunk72LLOLFXcjs.safeMax.call(void 0, gaps);
2150
+ const maxGap = _chunkEL2Y4BL2cjs.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 = _chunk72LLOLFXcjs.safeMax.call(void 0, allItems.map((i) => i.x + i.w)) - _chunk72LLOLFXcjs.safeMin.call(void 0, allItems.map((i) => i.x));
2157
+ const pageWidth = _chunkEL2Y4BL2cjs.safeMax.call(void 0, allItems.map((i) => i.x + i.w)) - _chunkEL2Y4BL2cjs.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 >= _chunk72LLOLFXcjs.HEADING_RATIO_H1) level = 1;
2380
- else if (ratio >= _chunk72LLOLFXcjs.HEADING_RATIO_H2) level = 2;
2381
- else if (ratio >= _chunk72LLOLFXcjs.HEADING_RATIO_H3) level = 3;
2379
+ if (ratio >= _chunkEL2Y4BL2cjs.HEADING_RATIO_H1) level = 1;
2380
+ else if (ratio >= _chunkEL2Y4BL2cjs.HEADING_RATIO_H2) level = 2;
2381
+ else if (ratio >= _chunkEL2Y4BL2cjs.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 = _chunk72LLOLFXcjs.safeMax.call(void 0, allY) - _chunk72LLOLFXcjs.safeMin.call(void 0, allY);
2957
+ const pageH = _chunkEL2Y4BL2cjs.safeMax.call(void 0, allY) - _chunkEL2Y4BL2cjs.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 = _chunk72LLOLFXcjs.safeMax.call(void 0, allY) - _chunk72LLOLFXcjs.safeMin.call(void 0, allY);
3133
+ const pageHeight = _chunkEL2Y4BL2cjs.safeMax.call(void 0, allY) - _chunkEL2Y4BL2cjs.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, _chunk72LLOLFXcjs.KordocError)("PDF \uB85C\uB529 \uD0C0\uC784\uC544\uC6C3 (30\uCD08 \uCD08\uACFC)"));
3386
+ reject(new (0, _chunkEL2Y4BL2cjs.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, _chunk72LLOLFXcjs.KordocError)("PDF\uC5D0 \uD398\uC774\uC9C0\uAC00 \uC5C6\uC2B5\uB2C8\uB2E4.");
3399
+ if (pageCount === 0) throw new (0, _chunkEL2Y4BL2cjs.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, _chunk72LLOLFXcjs.KordocError)("\uD14D\uC2A4\uD2B8 \uCD94\uCD9C \uD06C\uAE30 \uCD08\uACFC");
3459
+ if (totalTextBytes > MAX_TOTAL_TEXT) throw new (0, _chunkEL2Y4BL2cjs.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 _chunk72LLOLFXcjs.KordocError) throw pageErr;
3463
+ if (pageErr instanceof _chunkEL2Y4BL2cjs.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
  }
@@ -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(_chunk72LLOLFXcjs.blocksToMarkdown.call(void 0, blocks));
3531
+ let markdown = cleanPdfText(_chunkEL2Y4BL2cjs.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-YVRTKGKO.cjs.map
3590
+ //# sourceMappingURL=parser-I5GC4QQ5.cjs.map