kordoc 4.21.20 → 4.21.21
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 +6 -5
- package/dist/{-QHQ2QKM7.js → -ZYF6HX4M.js} +11 -11
- package/dist/{chunk-FU3SCGE7.js → chunk-2ZGP7A5T.js} +2 -2
- package/dist/{chunk-TYYKK5DX.js → chunk-3TCF5HPP.js} +2 -2
- package/dist/{chunk-WWMHVDRG.cjs → chunk-57VNFMMS.cjs} +3 -3
- package/dist/{chunk-WWMHVDRG.cjs.map → chunk-57VNFMMS.cjs.map} +1 -1
- package/dist/{chunk-75INFYVC.js → chunk-5HTFWUJE.js} +2 -2
- package/dist/{chunk-G6G25HUO.js → chunk-7YAJCXCD.js} +2 -2
- package/dist/{chunk-DBFAQJCX.js → chunk-BC54LBST.js} +3 -3
- package/dist/{chunk-PALYDA3M.js → chunk-BG6LUCQL.js} +2 -2
- package/dist/{chunk-42XYVZ2B.js → chunk-CY4QM2KQ.js} +2 -2
- package/dist/{chunk-2FALZL3E.cjs → chunk-DTZIZ5PP.cjs} +13 -13
- package/dist/{chunk-2FALZL3E.cjs.map → chunk-DTZIZ5PP.cjs.map} +1 -1
- package/dist/{chunk-AINZICPE.js → chunk-FBJVDBMO.js} +2 -2
- package/dist/{chunk-7ITWGPNB.js → chunk-FZMGF6XU.js} +2 -2
- package/dist/{chunk-CKEO54YN.cjs → chunk-H2MS4VG3.cjs} +3 -3
- package/dist/{chunk-CKEO54YN.cjs.map → chunk-H2MS4VG3.cjs.map} +1 -1
- package/dist/{chunk-KBL24ZCP.js → chunk-HWIW3WK2.js} +3 -3
- package/dist/{chunk-E5L6DUOE.js → chunk-J5PBI3ZC.js} +3 -3
- package/dist/{chunk-LY4ITNAL.js → chunk-KBV4WFZ6.js} +80 -5
- package/dist/chunk-KBV4WFZ6.js.map +1 -0
- package/dist/{chunk-JDVOYDIA.js → chunk-KTLHADU4.js} +2 -2
- package/dist/{chunk-M37GOXT5.cjs → chunk-MCUX2Y2C.cjs} +2 -2
- package/dist/{chunk-M37GOXT5.cjs.map → chunk-MCUX2Y2C.cjs.map} +1 -1
- package/dist/{chunk-ZMGWKGSC.js → chunk-PTF4NCFM.js} +2 -2
- package/dist/{chunk-N47I6OS7.js → chunk-QHNVH4TC.js} +6 -6
- package/dist/{chunk-LO5A36FU.js → chunk-RBRHO7WL.js} +2 -2
- package/dist/{chunk-6HIDMA5O.js → chunk-T3DTTK23.js} +2 -2
- package/dist/{chunk-KS2SASZH.cjs → chunk-T7PN5D4D.cjs} +6 -6
- package/dist/{chunk-KS2SASZH.cjs.map → chunk-T7PN5D4D.cjs.map} +1 -1
- package/dist/{chunk-MOT7WOP5.cjs → chunk-TMUUDMDH.cjs} +100 -25
- package/dist/chunk-TMUUDMDH.cjs.map +1 -0
- package/dist/{chunk-I4HF4UCA.js → chunk-TRO4CQHJ.js} +4 -4
- package/dist/{chunk-WINHSKFD.js → chunk-WGMYVRSA.js} +2 -2
- package/dist/{chunk-LQSF4JSV.js → chunk-YHPJTLCA.js} +2 -2
- package/dist/{chunk-BLKAJD2G.js → chunk-YM3K3LCD.js} +10 -10
- package/dist/{chunk-F5KWC7I3.js → chunk-YQZOPT3A.js} +81 -6
- package/dist/chunk-YQZOPT3A.js.map +1 -0
- package/dist/{chunk-F5PISJEI.js → chunk-ZZIQWSGC.js} +2 -2
- package/dist/chunks-MDMJRCJ7.js +10 -0
- package/dist/cli.js +30 -30
- package/dist/{formula-XAPMN6HX.js → formula-6XNIXZ5L.js} +3 -3
- package/dist/{formula-G5LTBMGC.cjs → formula-A3I5VAP7.cjs} +9 -9
- package/dist/{formula-G5LTBMGC.cjs.map → formula-A3I5VAP7.cjs.map} +1 -1
- package/dist/{formula-KHPAZKOK.js → formula-P7M7IH2L.js} +4 -4
- package/dist/{image-ocr-RNPHQ4C2.js → image-ocr-3C6W3KZO.js} +6 -6
- package/dist/{image-ocr-N5LAIHRV.js → image-ocr-ITNY454I.js} +9 -9
- package/dist/{image-ocr-MHPVAYOB.cjs → image-ocr-UJRSQ2T3.cjs} +15 -15
- package/dist/{image-ocr-MHPVAYOB.cjs.map → image-ocr-UJRSQ2T3.cjs.map} +1 -1
- package/dist/index.cjs +276 -276
- package/dist/index.js +5 -5
- package/dist/mcp.js +22 -22
- package/dist/{model-bundle-XP4AHFLT.js → model-bundle-LAWQH75O.js} +5 -5
- package/dist/{models-AD2KAUNC.js → models-6QTD2CFM.js} +5 -5
- package/dist/{parse-worker-v2-7UHOQ2TK.js → parse-worker-v2-FEPJG3ER.js} +12 -12
- package/dist/{parser-5WGRQKPI.js → parser-56I364YM.js} +16 -8
- package/dist/{parser-2RN5WNPJ.js.map → parser-56I364YM.js.map} +1 -1
- package/dist/{parser-2RN5WNPJ.js → parser-KFCY3NIN.js} +19 -11
- package/dist/{parser-5WGRQKPI.js.map → parser-KFCY3NIN.js.map} +1 -1
- package/dist/{parser-ZPCCXCVO.cjs → parser-VKWUMUML.cjs} +142 -134
- package/dist/parser-VKWUMUML.cjs.map +1 -0
- package/dist/pdf-ocr-MME37BL4.js +18 -0
- package/dist/pdf-ocr-OKAHNEJA.cjs +19 -0
- package/dist/{pdf-ocr-SFIWMJQL.cjs.map → pdf-ocr-OKAHNEJA.cjs.map} +1 -1
- package/dist/pdf-ocr-ZZ6AJL6Z.js +22 -0
- package/dist/{profile-io-UP7H2J6I.js → profile-io-OCITHUQF.js} +3 -3
- package/dist/{rasterize-XBCDG4MD.js → rasterize-SFCG4YOI.js} +3 -3
- package/dist/{redact-doc-CJ6W6YNR.js → redact-doc-5SMPXIGG.js} +11 -11
- package/dist/{render-K5UDHXRI.js → render-FGPG5A2N.js} +7 -7
- package/dist/seal-GA7NZDTG.js +10 -0
- package/dist/{setup-S66RLBBM.js → setup-JQVYZO7I.js} +3 -3
- package/dist/visual-YMG644YW.js +20 -0
- package/dist/{watch-PB7IOD73.js → watch-C77BUSP7.js} +12 -12
- package/package.json +1 -1
- package/dist/chunk-F5KWC7I3.js.map +0 -1
- package/dist/chunk-LY4ITNAL.js.map +0 -1
- package/dist/chunk-MOT7WOP5.cjs.map +0 -1
- package/dist/chunks-BJRBKGKZ.js +0 -10
- package/dist/parser-ZPCCXCVO.cjs.map +0 -1
- package/dist/pdf-ocr-KHY3P4EP.js +0 -18
- package/dist/pdf-ocr-LFDH6DFD.js +0 -22
- package/dist/pdf-ocr-SFIWMJQL.cjs +0 -19
- package/dist/seal-YCK6TM5I.js +0 -10
- package/dist/visual-S5ZNFWFH.js +0 -20
- /package/dist/{-QHQ2QKM7.js.map → -ZYF6HX4M.js.map} +0 -0
- /package/dist/{chunk-FU3SCGE7.js.map → chunk-2ZGP7A5T.js.map} +0 -0
- /package/dist/{chunk-TYYKK5DX.js.map → chunk-3TCF5HPP.js.map} +0 -0
- /package/dist/{chunk-75INFYVC.js.map → chunk-5HTFWUJE.js.map} +0 -0
- /package/dist/{chunk-G6G25HUO.js.map → chunk-7YAJCXCD.js.map} +0 -0
- /package/dist/{chunk-DBFAQJCX.js.map → chunk-BC54LBST.js.map} +0 -0
- /package/dist/{chunk-PALYDA3M.js.map → chunk-BG6LUCQL.js.map} +0 -0
- /package/dist/{chunk-42XYVZ2B.js.map → chunk-CY4QM2KQ.js.map} +0 -0
- /package/dist/{chunk-AINZICPE.js.map → chunk-FBJVDBMO.js.map} +0 -0
- /package/dist/{chunk-7ITWGPNB.js.map → chunk-FZMGF6XU.js.map} +0 -0
- /package/dist/{chunk-KBL24ZCP.js.map → chunk-HWIW3WK2.js.map} +0 -0
- /package/dist/{chunk-E5L6DUOE.js.map → chunk-J5PBI3ZC.js.map} +0 -0
- /package/dist/{chunk-JDVOYDIA.js.map → chunk-KTLHADU4.js.map} +0 -0
- /package/dist/{chunk-ZMGWKGSC.js.map → chunk-PTF4NCFM.js.map} +0 -0
- /package/dist/{chunk-N47I6OS7.js.map → chunk-QHNVH4TC.js.map} +0 -0
- /package/dist/{chunk-LO5A36FU.js.map → chunk-RBRHO7WL.js.map} +0 -0
- /package/dist/{chunk-6HIDMA5O.js.map → chunk-T3DTTK23.js.map} +0 -0
- /package/dist/{chunk-I4HF4UCA.js.map → chunk-TRO4CQHJ.js.map} +0 -0
- /package/dist/{chunk-WINHSKFD.js.map → chunk-WGMYVRSA.js.map} +0 -0
- /package/dist/{chunk-LQSF4JSV.js.map → chunk-YHPJTLCA.js.map} +0 -0
- /package/dist/{chunk-BLKAJD2G.js.map → chunk-YM3K3LCD.js.map} +0 -0
- /package/dist/{chunk-F5PISJEI.js.map → chunk-ZZIQWSGC.js.map} +0 -0
- /package/dist/{chunks-BJRBKGKZ.js.map → chunks-MDMJRCJ7.js.map} +0 -0
- /package/dist/{formula-XAPMN6HX.js.map → formula-6XNIXZ5L.js.map} +0 -0
- /package/dist/{formula-KHPAZKOK.js.map → formula-P7M7IH2L.js.map} +0 -0
- /package/dist/{image-ocr-RNPHQ4C2.js.map → image-ocr-3C6W3KZO.js.map} +0 -0
- /package/dist/{image-ocr-N5LAIHRV.js.map → image-ocr-ITNY454I.js.map} +0 -0
- /package/dist/{model-bundle-XP4AHFLT.js.map → model-bundle-LAWQH75O.js.map} +0 -0
- /package/dist/{models-AD2KAUNC.js.map → models-6QTD2CFM.js.map} +0 -0
- /package/dist/{parse-worker-v2-7UHOQ2TK.js.map → parse-worker-v2-FEPJG3ER.js.map} +0 -0
- /package/dist/{pdf-ocr-KHY3P4EP.js.map → pdf-ocr-MME37BL4.js.map} +0 -0
- /package/dist/{pdf-ocr-LFDH6DFD.js.map → pdf-ocr-ZZ6AJL6Z.js.map} +0 -0
- /package/dist/{profile-io-UP7H2J6I.js.map → profile-io-OCITHUQF.js.map} +0 -0
- /package/dist/{rasterize-XBCDG4MD.js.map → rasterize-SFCG4YOI.js.map} +0 -0
- /package/dist/{redact-doc-CJ6W6YNR.js.map → redact-doc-5SMPXIGG.js.map} +0 -0
- /package/dist/{render-K5UDHXRI.js.map → render-FGPG5A2N.js.map} +0 -0
- /package/dist/{seal-YCK6TM5I.js.map → seal-GA7NZDTG.js.map} +0 -0
- /package/dist/{setup-S66RLBBM.js.map → setup-JQVYZO7I.js.map} +0 -0
- /package/dist/{visual-S5ZNFWFH.js.map → visual-YMG644YW.js.map} +0 -0
- /package/dist/{watch-PB7IOD73.js.map → watch-C77BUSP7.js.map} +0 -0
package/dist/index.cjs
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { newObj[key] = obj[key]; } } } newObj.default = obj; return newObj; } } function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } 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; } var _class; var _class2; var _class3; var _class4; var _class5; var _class6; var _class7; var _class8; var _class9; var _class10; var _class11;
|
|
2
2
|
|
|
3
3
|
|
|
4
|
-
var
|
|
4
|
+
var _chunk57VNFMMScjs = require('./chunk-57VNFMMS.cjs');
|
|
5
5
|
|
|
6
6
|
|
|
7
7
|
var _chunkJ55UQC5Hcjs = require('./chunk-J55UQC5H.cjs');
|
|
@@ -32,7 +32,7 @@ var _chunkJ55UQC5Hcjs = require('./chunk-J55UQC5H.cjs');
|
|
|
32
32
|
|
|
33
33
|
|
|
34
34
|
|
|
35
|
-
var
|
|
35
|
+
var _chunkT7PN5D4Dcjs = require('./chunk-T7PN5D4D.cjs');
|
|
36
36
|
|
|
37
37
|
|
|
38
38
|
|
|
@@ -50,14 +50,14 @@ var _chunkKS2SASZHcjs = require('./chunk-KS2SASZH.cjs');
|
|
|
50
50
|
|
|
51
51
|
|
|
52
52
|
|
|
53
|
-
var
|
|
53
|
+
var _chunkMCUX2Y2Ccjs = require('./chunk-MCUX2Y2C.cjs');
|
|
54
54
|
|
|
55
55
|
|
|
56
56
|
var _chunkGS7T56RPcjs = require('./chunk-GS7T56RP.cjs');
|
|
57
57
|
|
|
58
58
|
// src/plain-markdown.ts
|
|
59
59
|
function toPlainMarkdown(md2) {
|
|
60
|
-
return
|
|
60
|
+
return _chunkT7PN5D4Dcjs.plainScripts.call(void 0, md2).replace(/!\[[^\]\n]*\]\([^)\n]*\)/g, "").replace(/<img\b[^>]*>/gi, "").replace(/(?<!!)\[([^\]\n]*)\]\((?:https?|mailto|ftp):[^)\s]*\)/g, "$1").replace(/(?<!\\)<\/?u>/g, "").replace(/(?<!\\)\*\*(?=\S)([^\n]*?\S)(?<!\\)\*\*/g, "$1").replace(/(<br>)+(?=<\/t[dh]>)/g, "").replace(/[ \t]+$/gm, "").replace(/\n{3,}/g, "\n\n").trim();
|
|
61
61
|
}
|
|
62
62
|
|
|
63
63
|
// src/html-tables.ts
|
|
@@ -589,9 +589,9 @@ function rawTextContent(node, depth = 0) {
|
|
|
589
589
|
}
|
|
590
590
|
|
|
591
591
|
// src/hwpx/parser-shared.ts
|
|
592
|
-
var MAX_DECOMPRESS_SIZE =
|
|
592
|
+
var MAX_DECOMPRESS_SIZE = _chunkMCUX2Y2Ccjs.unzipLimitBytes.call(void 0, 256 * 1024 * 1024);
|
|
593
593
|
var MAX_ZIP_ENTRIES = 500;
|
|
594
|
-
var ZipBombError = class extends
|
|
594
|
+
var ZipBombError = class extends _chunkMCUX2Y2Ccjs.KordocError {
|
|
595
595
|
constructor(message) {
|
|
596
596
|
super(message);
|
|
597
597
|
this.name = "ZipBombError";
|
|
@@ -639,7 +639,7 @@ function createSectionShared() {
|
|
|
639
639
|
function createXmlParser(warnings) {
|
|
640
640
|
return new (0, _xmldom.DOMParser)({
|
|
641
641
|
onError(level, msg2) {
|
|
642
|
-
if (level === "fatalError") throw new (0,
|
|
642
|
+
if (level === "fatalError") throw new (0, _chunkMCUX2Y2Ccjs.KordocError)(`XML \uD30C\uC2F1 \uC2E4\uD328: ${msg2}`);
|
|
643
643
|
_optionalChain([warnings, 'optionalAccess', _3 => _3.push, 'call', _4 => _4({ code: "MALFORMED_XML", message: `XML ${level === "warning" ? "\uACBD\uACE0" : "\uC624\uB958"}: ${msg2}` })]);
|
|
644
644
|
}
|
|
645
645
|
});
|
|
@@ -674,13 +674,13 @@ function parseEncryptionManifest(manifestXml) {
|
|
|
674
674
|
const startKey = attrOf(inner, "start-key-generation-name");
|
|
675
675
|
const checksumType = attrOf(inner, "checksum-type");
|
|
676
676
|
if (algorithm !== AES256_CBC) {
|
|
677
|
-
throw new (0,
|
|
677
|
+
throw new (0, _chunkMCUX2Y2Ccjs.KordocError)(`\uC9C0\uC6D0\uD558\uC9C0 \uC54A\uB294 HWPX \uC554\uD638\uD654 \uBC29\uC2DD\uC785\uB2C8\uB2E4: ${_nullishCoalesce(algorithm, () => ( "(\uBBF8\uC0C1)"))}`);
|
|
678
678
|
}
|
|
679
679
|
if (startKey !== START_KEY_SHA256) {
|
|
680
|
-
throw new (0,
|
|
680
|
+
throw new (0, _chunkMCUX2Y2Ccjs.KordocError)(`\uC9C0\uC6D0\uD558\uC9C0 \uC54A\uB294 HWPX \uC2DC\uC791\uD0A4 \uC0DD\uC131 \uBC29\uC2DD\uC785\uB2C8\uB2E4: ${_nullishCoalesce(startKey, () => ( "(\uBBF8\uC0C1)"))}`);
|
|
681
681
|
}
|
|
682
682
|
if (!_optionalChain([checksumType, 'optionalAccess', _8 => _8.endsWith, 'call', _9 => _9(CHECKSUM_SHA256_1K)])) {
|
|
683
|
-
throw new (0,
|
|
683
|
+
throw new (0, _chunkMCUX2Y2Ccjs.KordocError)(`\uC9C0\uC6D0\uD558\uC9C0 \uC54A\uB294 HWPX \uCCB4\uD06C\uC12C \uBC29\uC2DD\uC785\uB2C8\uB2E4: ${_nullishCoalesce(checksumType, () => ( "(\uBBF8\uC0C1)"))}`);
|
|
684
684
|
}
|
|
685
685
|
const iterations = parseInt(_nullishCoalesce(attrOf(inner, "iteration-count"), () => ( "")), 10);
|
|
686
686
|
const keySize = parseInt(_nullishCoalesce(attrOf(inner, "key-size"), () => ( "")), 10);
|
|
@@ -688,10 +688,10 @@ function parseEncryptionManifest(manifestXml) {
|
|
|
688
688
|
const salt = Buffer.from(_nullishCoalesce(attrOf(inner, "salt"), () => ( "")), "base64");
|
|
689
689
|
const checksum = Buffer.from(_nullishCoalesce(attrOf(inner, "checksum"), () => ( "")), "base64");
|
|
690
690
|
if (!(iterations > 0 && iterations <= MAX_ITERATION_COUNT)) {
|
|
691
|
-
throw new (0,
|
|
691
|
+
throw new (0, _chunkMCUX2Y2Ccjs.KordocError)(`HWPX \uC554\uD638\uD654 \uBC18\uBCF5 \uD69F\uC218\uAC00 \uD5C8\uC6A9 \uBC94\uC704\uB97C \uBC97\uC5B4\uB0AC\uC2B5\uB2C8\uB2E4: ${iterations}`);
|
|
692
692
|
}
|
|
693
693
|
if (keySize !== 32 || iv.length !== 16 || salt.length === 0 || checksum.length !== 32) {
|
|
694
|
-
throw new (0,
|
|
694
|
+
throw new (0, _chunkMCUX2Y2Ccjs.KordocError)(`HWPX \uC554\uD638\uD654 \uD30C\uB77C\uBBF8\uD130\uAC00 \uC62C\uBC14\uB974\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4 (${path})`);
|
|
695
695
|
}
|
|
696
696
|
entries.push({ path, checksum, iv, salt, iterations, keySize });
|
|
697
697
|
}
|
|
@@ -725,12 +725,12 @@ async function decryptHwpxInPlace(zip, manifestXml, password) {
|
|
|
725
725
|
for (const entry of entries) {
|
|
726
726
|
const file = zip.file(entry.path);
|
|
727
727
|
if (!file) {
|
|
728
|
-
throw new (0,
|
|
728
|
+
throw new (0, _chunkMCUX2Y2Ccjs.KordocError)(`\uC554\uD638 \uBAA9\uB85D\uC5D0 \uC788\uB294 \uD30C\uC77C\uC774 \uBB38\uC11C\uC5D0 \uC5C6\uC2B5\uB2C8\uB2E4: ${entry.path}`);
|
|
729
729
|
}
|
|
730
730
|
const raw = await readZipEntry(file, "uint8array", used);
|
|
731
731
|
const plain4 = decryptEntry(Buffer.from(raw.buffer, raw.byteOffset, raw.length), entry, startKey);
|
|
732
732
|
if (!plain4) {
|
|
733
|
-
throw new (0,
|
|
733
|
+
throw new (0, _chunkMCUX2Y2Ccjs.KordocError)("\uBE44\uBC00\uBC88\uD638\uAC00 \uC77C\uCE58\uD558\uC9C0 \uC54A\uAC70\uB098 \uC554\uD638\uD654 \uB370\uC774\uD130\uAC00 \uC190\uC0C1\uB418\uC5C8\uC2B5\uB2C8\uB2E4.");
|
|
734
734
|
}
|
|
735
735
|
used += plain4.length;
|
|
736
736
|
if (used > MAX_DECOMPRESS_SIZE) throw new ZipBombError("ZIP \uC555\uCD95 \uD574\uC81C \uD06C\uAE30 \uCD08\uACFC (ZIP bomb \uC758\uC2EC)");
|
|
@@ -796,10 +796,10 @@ async function extractHwpxStyles(zip, decompressed) {
|
|
|
796
796
|
const xml = await readZipEntry(file, "text", _optionalChain([decompressed, 'optionalAccess', _10 => _10.total]));
|
|
797
797
|
if (decompressed) {
|
|
798
798
|
decompressed.total += xml.length * 2;
|
|
799
|
-
if (decompressed.total > MAX_DECOMPRESS_SIZE) throw new (0,
|
|
799
|
+
if (decompressed.total > MAX_DECOMPRESS_SIZE) throw new (0, _chunkMCUX2Y2Ccjs.KordocError)("ZIP \uC555\uCD95 \uD574\uC81C \uD06C\uAE30 \uCD08\uACFC (ZIP bomb \uC758\uC2EC)");
|
|
800
800
|
}
|
|
801
801
|
const parser = createXmlParser();
|
|
802
|
-
const doc = parser.parseFromString(
|
|
802
|
+
const doc = parser.parseFromString(_chunkMCUX2Y2Ccjs.stripDtd.call(void 0, xml), "text/xml");
|
|
803
803
|
if (!doc.documentElement) continue;
|
|
804
804
|
const domDoc = doc;
|
|
805
805
|
parseCharProperties(domDoc, result.charProperties);
|
|
@@ -1012,9 +1012,9 @@ function detectHwpxHeadings(blocks, styleMap, tocTexts) {
|
|
|
1012
1012
|
let level = 0;
|
|
1013
1013
|
if (baseFontSize > 0 && _optionalChain([block, 'access', _19 => _19.style, 'optionalAccess', _20 => _20.fontSize])) {
|
|
1014
1014
|
const ratio = block.style.fontSize / baseFontSize;
|
|
1015
|
-
if (ratio >=
|
|
1016
|
-
else if (ratio >=
|
|
1017
|
-
else if (ratio >=
|
|
1015
|
+
if (ratio >= _chunkT7PN5D4Dcjs.HEADING_RATIO_H1) level = 1;
|
|
1016
|
+
else if (ratio >= _chunkT7PN5D4Dcjs.HEADING_RATIO_H2) level = 2;
|
|
1017
|
+
else if (ratio >= _chunkT7PN5D4Dcjs.HEADING_RATIO_H3) level = 3;
|
|
1018
1018
|
}
|
|
1019
1019
|
const compactText = text.replace(/\s+/g, "");
|
|
1020
1020
|
if (/^제\d+[조장절편]/.test(compactText) && text.length <= 50) {
|
|
@@ -1746,7 +1746,7 @@ function resolveParaHeading(paraEl, ctx) {
|
|
|
1746
1746
|
|
|
1747
1747
|
// src/hwpx/table-build.ts
|
|
1748
1748
|
function buildTableWithCellMeta(state, keepAnchoredEmptyCols, keepEmptyParagraphs) {
|
|
1749
|
-
const table2 =
|
|
1749
|
+
const table2 = _chunkT7PN5D4Dcjs.buildTable.call(void 0, state.rows, { keepAnchoredEmptyCols, keepEmptyParagraphs });
|
|
1750
1750
|
if (state.caption) table2.caption = state.caption;
|
|
1751
1751
|
if (state.sourceId) table2.sourceId = state.sourceId;
|
|
1752
1752
|
if (_optionalChain([state, 'access', _30 => _30.captionBlocks, 'optionalAccess', _31 => _31.length])) table2.captionBlocks = state.captionBlocks;
|
|
@@ -1775,7 +1775,7 @@ function buildTableWithCellMeta(state, keepAnchoredEmptyCols, keepEmptyParagraph
|
|
|
1775
1775
|
for (const src of row) {
|
|
1776
1776
|
if (!src.edges || src.rowAddr === void 0 || src.colAddr === void 0) continue;
|
|
1777
1777
|
const cand = _optionalChain([table2, 'access', _35 => _35.cells, 'access', _36 => _36[src.rowAddr], 'optionalAccess', _37 => _37[src.colAddr]]);
|
|
1778
|
-
if (cand && anchors2.includes(cand))
|
|
1778
|
+
if (cand && anchors2.includes(cand)) _chunkT7PN5D4Dcjs.CELL_EDGES.set(cand, src.edges);
|
|
1779
1779
|
}
|
|
1780
1780
|
}
|
|
1781
1781
|
const claimed = /* @__PURE__ */ new Set();
|
|
@@ -1825,7 +1825,7 @@ function completeTable(newTable, tableStack, blocks, ctx) {
|
|
|
1825
1825
|
const cell2 = parentTable.cell;
|
|
1826
1826
|
(cell2.blocks ??= []).push(block);
|
|
1827
1827
|
cell2.hasStructure = true;
|
|
1828
|
-
let flat =
|
|
1828
|
+
let flat = _chunkT7PN5D4Dcjs.convertTableToText.call(void 0, newTable.rows);
|
|
1829
1829
|
if (newTable.caption) flat = newTable.caption + (flat ? "\n" + flat : "");
|
|
1830
1830
|
if (flat) {
|
|
1831
1831
|
const inlineJoin = newTable.inline === true && cell2.lineOpen === true;
|
|
@@ -2059,7 +2059,7 @@ function extractRunSpans(para2, ctx, mode, requireMixed) {
|
|
|
2059
2059
|
const tkids = rc.childNodes;
|
|
2060
2060
|
for (let k = 0; k < (_nullishCoalesce(_optionalChain([tkids, 'optionalAccess', _45 => _45.length]), () => ( 0))); k++) {
|
|
2061
2061
|
const tk = tkids[k];
|
|
2062
|
-
if (tk.nodeType === 3 || tk.nodeType === 4) text +=
|
|
2062
|
+
if (tk.nodeType === 3 || tk.nodeType === 4) text += _chunkT7PN5D4Dcjs.escapeLiteralTags.call(void 0, _chunkT7PN5D4Dcjs.escapeLiteralDollar.call(void 0, tk.textContent || ""));
|
|
2063
2063
|
else if (tk.nodeType === 1) {
|
|
2064
2064
|
const ttag = (tk.tagName || tk.localName || "").replace(/^[^:]+:/, "");
|
|
2065
2065
|
if (ttag === "tab" || ttag === "fwSpace" || ttag === "hwSpace" || ttag === "nbSpace") text += " ";
|
|
@@ -2079,7 +2079,7 @@ function extractRunSpans(para2, ctx, mode, requireMixed) {
|
|
|
2079
2079
|
const span2 = { text };
|
|
2080
2080
|
if (mode !== "foreign" && prId === KORDOC_CHAR_CODE) span2.code = true;
|
|
2081
2081
|
else {
|
|
2082
|
-
if (_optionalChain([cp, 'optionalAccess', _46 => _46.script])) span2.text =
|
|
2082
|
+
if (_optionalChain([cp, 'optionalAccess', _46 => _46.script])) span2.text = _chunkT7PN5D4Dcjs.wrapScript.call(void 0, text, cp.script);
|
|
2083
2083
|
if (_optionalChain([cp, 'optionalAccess', _47 => _47.bold])) span2.bold = true;
|
|
2084
2084
|
if (_optionalChain([cp, 'optionalAccess', _48 => _48.italic])) span2.italic = true;
|
|
2085
2085
|
if (_optionalChain([cp, 'optionalAccess', _49 => _49.strike])) span2.strike = true;
|
|
@@ -2099,7 +2099,7 @@ function extractRunSpans(para2, ctx, mode, requireMixed) {
|
|
|
2099
2099
|
}
|
|
2100
2100
|
}
|
|
2101
2101
|
if (requireMixed && !merged.some((s) => s.strike || s.underline) && !merged.some((s) => !(s.bold || s.italic || s.code))) return null;
|
|
2102
|
-
for (const s of merged) s.text =
|
|
2102
|
+
for (const s of merged) s.text = _chunkT7PN5D4Dcjs.tidyScriptTags.call(void 0, s.text);
|
|
2103
2103
|
return merged;
|
|
2104
2104
|
}
|
|
2105
2105
|
function gongmunDepthFromIndent(para2, left, ctx) {
|
|
@@ -2126,7 +2126,7 @@ function gongmunDepthFromIndent(para2, left, ctx) {
|
|
|
2126
2126
|
// src/hwpx/section-walker.ts
|
|
2127
2127
|
function parseSectionXml(xml, styleMap, warnings, sectionNum, shared) {
|
|
2128
2128
|
const parser = createXmlParser(warnings);
|
|
2129
|
-
const doc = parser.parseFromString(
|
|
2129
|
+
const doc = parser.parseFromString(_chunkMCUX2Y2Ccjs.stripDtd.call(void 0, xml), "text/xml");
|
|
2130
2130
|
if (!doc.documentElement) return [];
|
|
2131
2131
|
const ctx = { styleMap, warnings, sectionNum, shared: _nullishCoalesce(shared, () => ( createSectionShared())) };
|
|
2132
2132
|
ctx.shared.track.deleteDepth = 0;
|
|
@@ -2227,8 +2227,8 @@ function walkSection(node, blocks, tableCtx, tableStack, ctx, depth = 0) {
|
|
|
2227
2227
|
const cs = isNaN(rawCs) ? 1 : rawCs;
|
|
2228
2228
|
const rawRs = parseInt(el.getAttribute("rowSpan") || "1", 10);
|
|
2229
2229
|
const rs = isNaN(rawRs) ? 1 : rawRs;
|
|
2230
|
-
tableCtx.cell.colSpan = clampSpan(cs,
|
|
2231
|
-
tableCtx.cell.rowSpan = clampSpan(rs,
|
|
2230
|
+
tableCtx.cell.colSpan = clampSpan(cs, _chunkT7PN5D4Dcjs.MAX_COLS);
|
|
2231
|
+
tableCtx.cell.rowSpan = clampSpan(rs, _chunkT7PN5D4Dcjs.MAX_ROWS);
|
|
2232
2232
|
}
|
|
2233
2233
|
break;
|
|
2234
2234
|
case "p": {
|
|
@@ -2547,7 +2547,7 @@ function buildSubListTable(el, ctx, depth) {
|
|
|
2547
2547
|
const sink = [];
|
|
2548
2548
|
const st = { rows: [], currentRow: [], cell: null, sourceId: _nullishCoalesce(el.getAttribute("id"), () => ( void 0)) };
|
|
2549
2549
|
walkSection(el, sink, st, [], ctx, depth + 1);
|
|
2550
|
-
let flat =
|
|
2550
|
+
let flat = _chunkT7PN5D4Dcjs.convertTableToText.call(void 0, st.rows);
|
|
2551
2551
|
if (st.caption) flat = st.caption + (flat ? "\n" + flat : "");
|
|
2552
2552
|
const built = [];
|
|
2553
2553
|
completeTable(st, [], built, ctx);
|
|
@@ -2710,7 +2710,7 @@ function extractHyperlinkHref(fieldBegin) {
|
|
|
2710
2710
|
let url = (ch.textContent || "").trim();
|
|
2711
2711
|
if (!url) continue;
|
|
2712
2712
|
url = url.replace(/^https?:\/\/(?=https?:\/\/)/i, "");
|
|
2713
|
-
const safe =
|
|
2713
|
+
const safe = _chunkMCUX2Y2Ccjs.sanitizeHref.call(void 0, url);
|
|
2714
2714
|
if (safe) return safe;
|
|
2715
2715
|
}
|
|
2716
2716
|
return void 0;
|
|
@@ -2859,7 +2859,7 @@ function extractParagraphInfo(para2, styleMap, ctx) {
|
|
|
2859
2859
|
_optionalChain([ctx, 'access', _110 => _110.warnings, 'optionalAccess', _111 => _111.push, 'call', _112 => _112({ page: ctx.page, message: "\uBCC0\uACBD\uCD94\uC801 \uC0AD\uC81C \uD14D\uC2A4\uD2B8 \uCD9C\uB825 \uC81C\uC678", code: "HIDDEN_TEXT_FILTERED" })]);
|
|
2860
2860
|
}
|
|
2861
2861
|
} else {
|
|
2862
|
-
text +=
|
|
2862
|
+
text += _chunkT7PN5D4Dcjs.escapeLiteralTags.call(void 0, _chunkT7PN5D4Dcjs.escapeLiteralDollar.call(void 0, t.replace(/\x1E/g, "")));
|
|
2863
2863
|
}
|
|
2864
2864
|
continue;
|
|
2865
2865
|
}
|
|
@@ -2912,7 +2912,7 @@ function extractParagraphInfo(para2, styleMap, ctx) {
|
|
|
2912
2912
|
case "hyperlink": {
|
|
2913
2913
|
const url = child.getAttribute("url") || child.getAttribute("href") || "";
|
|
2914
2914
|
if (url) {
|
|
2915
|
-
const safe =
|
|
2915
|
+
const safe = _chunkMCUX2Y2Ccjs.sanitizeHref.call(void 0, url);
|
|
2916
2916
|
if (safe) href = safe;
|
|
2917
2917
|
}
|
|
2918
2918
|
walk(child, depth + 1);
|
|
@@ -3006,7 +3006,7 @@ function extractParagraphInfo(para2, styleMap, ctx) {
|
|
|
3006
3006
|
walk(child, depth + 1);
|
|
3007
3007
|
if (script && linkRanges.length === nLinks && openFields.length === nOpen && runHasOnlyText(child)) {
|
|
3008
3008
|
const added = text.slice(start);
|
|
3009
|
-
if (added && !/[\x1E\n$]/.test(added)) text = text.slice(0, start) +
|
|
3009
|
+
if (added && !/[\x1E\n$]/.test(added)) text = text.slice(0, start) + _chunkT7PN5D4Dcjs.wrapScript.call(void 0, added, script);
|
|
3010
3010
|
}
|
|
3011
3011
|
break;
|
|
3012
3012
|
}
|
|
@@ -3029,7 +3029,7 @@ function extractParagraphInfo(para2, styleMap, ctx) {
|
|
|
3029
3029
|
}
|
|
3030
3030
|
if (applied.length) href = void 0;
|
|
3031
3031
|
}
|
|
3032
|
-
text =
|
|
3032
|
+
text = _chunkT7PN5D4Dcjs.tidyScriptTags.call(void 0, text);
|
|
3033
3033
|
const toc = takeTocLeaders(text);
|
|
3034
3034
|
text = toc.text;
|
|
3035
3035
|
const tocEntry = toc.tocEntry;
|
|
@@ -3143,7 +3143,7 @@ function decompressStream(data) {
|
|
|
3143
3143
|
return _zlib.inflateRawSync.call(void 0, data, opts);
|
|
3144
3144
|
}
|
|
3145
3145
|
function parseFileHeader(data) {
|
|
3146
|
-
if (data.length < 40) throw new (0,
|
|
3146
|
+
if (data.length < 40) throw new (0, _chunkMCUX2Y2Ccjs.KordocError)("FileHeader\uAC00 \uB108\uBB34 \uC9E7\uC2B5\uB2C8\uB2E4 (\uCD5C\uC18C 40\uBC14\uC774\uD2B8)");
|
|
3147
3147
|
const sig = data.subarray(0, 32).toString("utf8").replace(/\0+$/, "");
|
|
3148
3148
|
return {
|
|
3149
3149
|
signature: sig,
|
|
@@ -3669,13 +3669,13 @@ async function extractImagesFromZip(zip, blocks, decompressed, warnings, sweepUn
|
|
|
3669
3669
|
}
|
|
3670
3670
|
const allCandidates = resolvedPath ? [resolvedPath, ...candidates] : candidates;
|
|
3671
3671
|
for (const path of allCandidates) {
|
|
3672
|
-
if (
|
|
3672
|
+
if (_chunkMCUX2Y2Ccjs.isPathTraversal.call(void 0, path)) continue;
|
|
3673
3673
|
const file = zip.file(path);
|
|
3674
3674
|
if (!file) continue;
|
|
3675
3675
|
try {
|
|
3676
3676
|
const data = await readZipEntry(file, "uint8array", decompressed.total);
|
|
3677
3677
|
decompressed.total += data.length;
|
|
3678
|
-
if (decompressed.total > MAX_DECOMPRESS_SIZE) throw new (0,
|
|
3678
|
+
if (decompressed.total > MAX_DECOMPRESS_SIZE) throw new (0, _chunkMCUX2Y2Ccjs.KordocError)("ZIP \uC555\uCD95 \uD574\uC81C \uD06C\uAE30 \uCD08\uACFC (ZIP bomb \uC758\uC2EC)");
|
|
3679
3679
|
const ext = path.includes(".") ? path.split(".").pop() || "png" : "png";
|
|
3680
3680
|
const mimeType = imageExtToMime(ext);
|
|
3681
3681
|
imageIndex++;
|
|
@@ -3685,7 +3685,7 @@ async function extractImagesFromZip(zip, blocks, decompressed, warnings, sweepUn
|
|
|
3685
3685
|
usedPaths.add(path);
|
|
3686
3686
|
break;
|
|
3687
3687
|
} catch (err) {
|
|
3688
|
-
if (err instanceof
|
|
3688
|
+
if (err instanceof _chunkMCUX2Y2Ccjs.KordocError) throw err;
|
|
3689
3689
|
}
|
|
3690
3690
|
}
|
|
3691
3691
|
if (!img) _optionalChain([warnings, 'optionalAccess', _126 => _126.push, 'call', _127 => _127({ page: block.pageNumber, message: `\uC774\uBBF8\uC9C0 \uD30C\uC77C \uC5C6\uC74C: ${ref}`, code: "SKIPPED_IMAGE" })]);
|
|
@@ -3705,13 +3705,13 @@ async function extractImagesFromZip(zip, blocks, decompressed, warnings, sweepUn
|
|
|
3705
3705
|
if (sweepUnreferenced) {
|
|
3706
3706
|
const binEntries = zip.file(/(?:^|\/)BinData\//i);
|
|
3707
3707
|
for (const file of binEntries) {
|
|
3708
|
-
if (file.dir || usedPaths.has(file.name) ||
|
|
3708
|
+
if (file.dir || usedPaths.has(file.name) || _chunkMCUX2Y2Ccjs.isPathTraversal.call(void 0, file.name)) continue;
|
|
3709
3709
|
const basename = file.name.slice(file.name.lastIndexOf("/") + 1);
|
|
3710
3710
|
if (_optionalChain([deletedRefs, 'optionalAccess', _128 => _128.has, 'call', _129 => _129(file.name)]) || _optionalChain([deletedRefs, 'optionalAccess', _130 => _130.has, 'call', _131 => _131(basename)]) || _optionalChain([deletedRefs, 'optionalAccess', _132 => _132.has, 'call', _133 => _133(file.name.replace(/\.[^/.]+$/, ""))]) || _optionalChain([deletedRefs, 'optionalAccess', _134 => _134.has, 'call', _135 => _135(basename.replace(/\.[^.]+$/, ""))])) continue;
|
|
3711
3711
|
try {
|
|
3712
3712
|
const data = await readZipEntry(file, "uint8array", decompressed.total);
|
|
3713
3713
|
decompressed.total += data.length;
|
|
3714
|
-
if (decompressed.total > MAX_DECOMPRESS_SIZE) throw new (0,
|
|
3714
|
+
if (decompressed.total > MAX_DECOMPRESS_SIZE) throw new (0, _chunkMCUX2Y2Ccjs.KordocError)("ZIP \uC555\uCD95 \uD574\uC81C \uD06C\uAE30 \uCD08\uACFC (ZIP bomb \uC758\uC2EC)");
|
|
3715
3715
|
const ext = file.name.includes(".") ? file.name.split(".").pop() || "" : "";
|
|
3716
3716
|
let mimeType = imageExtToMime(ext);
|
|
3717
3717
|
if (mimeType === "application/octet-stream") {
|
|
@@ -3725,7 +3725,7 @@ async function extractImagesFromZip(zip, blocks, decompressed, warnings, sweepUn
|
|
|
3725
3725
|
images.push(img);
|
|
3726
3726
|
blocks.push({ type: "image", text: filename, imageData: { data, mimeType, filename: file.name } });
|
|
3727
3727
|
} catch (err) {
|
|
3728
|
-
if (err instanceof
|
|
3728
|
+
if (err instanceof _chunkMCUX2Y2Ccjs.KordocError) throw err;
|
|
3729
3729
|
_optionalChain([warnings, 'optionalAccess', _136 => _136.push, 'call', _137 => _137({ message: `\uC774\uBBF8\uC9C0 \uCD94\uCD9C \uC2E4\uD328: ${file.name}`, code: "SKIPPED_IMAGE" })]);
|
|
3730
3730
|
}
|
|
3731
3731
|
}
|
|
@@ -3776,7 +3776,7 @@ function extractFromBrokenZip(buffer, options) {
|
|
|
3776
3776
|
}
|
|
3777
3777
|
const nameBytes = data.slice(pos + 30, pos + 30 + nameLen);
|
|
3778
3778
|
const name = new TextDecoder().decode(nameBytes);
|
|
3779
|
-
if (
|
|
3779
|
+
if (_chunkMCUX2Y2Ccjs.isPathTraversal.call(void 0, name)) {
|
|
3780
3780
|
pos = fileStart + compSize;
|
|
3781
3781
|
continue;
|
|
3782
3782
|
}
|
|
@@ -3794,7 +3794,7 @@ function extractFromBrokenZip(buffer, options) {
|
|
|
3794
3794
|
continue;
|
|
3795
3795
|
}
|
|
3796
3796
|
totalDecompressed += content.length * 2;
|
|
3797
|
-
if (totalDecompressed > MAX_DECOMPRESS_SIZE) throw new (0,
|
|
3797
|
+
if (totalDecompressed > MAX_DECOMPRESS_SIZE) throw new (0, _chunkMCUX2Y2Ccjs.KordocError)("\uC555\uCD95 \uD574\uC81C \uD06C\uAE30 \uCD08\uACFC");
|
|
3798
3798
|
sectionNum++;
|
|
3799
3799
|
const secBlocks = parseSectionXml(content, void 0, warnings, sectionNum, shared);
|
|
3800
3800
|
for (const b of secBlocks) b.pageNumber = sectionNum;
|
|
@@ -3803,9 +3803,9 @@ function extractFromBrokenZip(buffer, options) {
|
|
|
3803
3803
|
continue;
|
|
3804
3804
|
}
|
|
3805
3805
|
}
|
|
3806
|
-
if (blocks.length === 0) throw new (0,
|
|
3806
|
+
if (blocks.length === 0) throw new (0, _chunkMCUX2Y2Ccjs.KordocError)("\uC190\uC0C1\uB41C HWPX\uC5D0\uC11C \uC139\uC158 \uB370\uC774\uD130\uB97C \uBCF5\uAD6C\uD560 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4");
|
|
3807
3807
|
applyPageText(blocks, shared);
|
|
3808
|
-
const markdown =
|
|
3808
|
+
const markdown = _chunkT7PN5D4Dcjs.blocksToMarkdown.call(void 0, blocks, { tableFormat: _optionalChain([options, 'optionalAccess', _138 => _138.tableFormat]) });
|
|
3809
3809
|
return { markdown, blocks, warnings: warnings.length > 0 ? warnings : void 0 };
|
|
3810
3810
|
}
|
|
3811
3811
|
async function readKordocLayout(zip) {
|
|
@@ -3830,11 +3830,11 @@ async function resolveSectionPaths(zip) {
|
|
|
3830
3830
|
if (paths.length > 0) return paths;
|
|
3831
3831
|
}
|
|
3832
3832
|
const sectionFiles = zip.file(/[Ss]ection\d+\.xml$/);
|
|
3833
|
-
return sectionFiles.map((f) => f.name).sort(
|
|
3833
|
+
return sectionFiles.map((f) => f.name).sort(_chunkMCUX2Y2Ccjs.compareSectionPaths);
|
|
3834
3834
|
}
|
|
3835
3835
|
function parseSectionPathsFromManifest(xml) {
|
|
3836
3836
|
const parser = createXmlParser();
|
|
3837
|
-
const doc = parser.parseFromString(
|
|
3837
|
+
const doc = parser.parseFromString(_chunkMCUX2Y2Ccjs.stripDtd.call(void 0, xml), "text/xml");
|
|
3838
3838
|
const opf = "http://www.idpf.org/2007/opf/";
|
|
3839
3839
|
const namespacedItems = doc.getElementsByTagNameNS(opf, "item");
|
|
3840
3840
|
const namespacedSpine = doc.getElementsByTagNameNS(opf, "itemref");
|
|
@@ -3844,7 +3844,7 @@ function parseSectionPathsFromManifest(xml) {
|
|
|
3844
3844
|
for (let i = 0; i < items.length; i++) {
|
|
3845
3845
|
const item = items[i];
|
|
3846
3846
|
const id = item.getAttribute("id") || "";
|
|
3847
|
-
const href =
|
|
3847
|
+
const href = _chunkMCUX2Y2Ccjs.normalizeSectionHref.call(void 0, item.getAttribute("href") || "");
|
|
3848
3848
|
if (id && href) idToHref.set(id, href);
|
|
3849
3849
|
}
|
|
3850
3850
|
if (spine.length > 0) {
|
|
@@ -3855,7 +3855,7 @@ function parseSectionPathsFromManifest(xml) {
|
|
|
3855
3855
|
}
|
|
3856
3856
|
if (ordered.length > 0) return ordered;
|
|
3857
3857
|
}
|
|
3858
|
-
return Array.from(idToHref.values()).sort(
|
|
3858
|
+
return Array.from(idToHref.values()).sort(_chunkMCUX2Y2Ccjs.compareSectionPaths);
|
|
3859
3859
|
}
|
|
3860
3860
|
|
|
3861
3861
|
// src/hwpx/metadata.ts
|
|
@@ -3867,7 +3867,7 @@ async function extractHwpxMetadata(zip, metadata, decompressed) {
|
|
|
3867
3867
|
const xml = await readZipEntry(file, "text", _optionalChain([decompressed, 'optionalAccess', _142 => _142.total]));
|
|
3868
3868
|
if (decompressed) {
|
|
3869
3869
|
decompressed.total += xml.length * 2;
|
|
3870
|
-
if (decompressed.total > MAX_DECOMPRESS_SIZE) throw new (0,
|
|
3870
|
+
if (decompressed.total > MAX_DECOMPRESS_SIZE) throw new (0, _chunkMCUX2Y2Ccjs.KordocError)("ZIP \uC555\uCD95 \uD574\uC81C \uD06C\uAE30 \uCD08\uACFC (ZIP bomb \uC758\uC2EC)");
|
|
3871
3871
|
}
|
|
3872
3872
|
return xml;
|
|
3873
3873
|
};
|
|
@@ -3889,7 +3889,7 @@ async function extractHwpxMetadata(zip, metadata, decompressed) {
|
|
|
3889
3889
|
}
|
|
3890
3890
|
}
|
|
3891
3891
|
function parseOpfMetadata(xml, metadata) {
|
|
3892
|
-
const root = createXmlParser().parseFromString(
|
|
3892
|
+
const root = createXmlParser().parseFromString(_chunkMCUX2Y2Ccjs.stripDtd.call(void 0, xml), "text/xml").documentElement;
|
|
3893
3893
|
const md2 = root ? findChildByLocalName(root, "metadata") : null;
|
|
3894
3894
|
if (!md2) return;
|
|
3895
3895
|
let title;
|
|
@@ -3922,7 +3922,7 @@ function isoDate(s) {
|
|
|
3922
3922
|
}
|
|
3923
3923
|
function parseDublinCoreMetadata(xml, metadata) {
|
|
3924
3924
|
const parser = createXmlParser();
|
|
3925
|
-
const doc = parser.parseFromString(
|
|
3925
|
+
const doc = parser.parseFromString(_chunkMCUX2Y2Ccjs.stripDtd.call(void 0, xml), "text/xml");
|
|
3926
3926
|
if (!doc.documentElement) return;
|
|
3927
3927
|
const getText = (tagNames) => {
|
|
3928
3928
|
for (const tag of tagNames) {
|
|
@@ -3961,7 +3961,7 @@ function assignSectionPage(block, sectionNum) {
|
|
|
3961
3961
|
}
|
|
3962
3962
|
}
|
|
3963
3963
|
async function parseHwpxDocument(buffer, options) {
|
|
3964
|
-
|
|
3964
|
+
_chunkMCUX2Y2Ccjs.precheckZipSize.call(void 0, buffer, MAX_DECOMPRESS_SIZE, MAX_ZIP_ENTRIES);
|
|
3965
3965
|
let zip;
|
|
3966
3966
|
try {
|
|
3967
3967
|
zip = await _jszip2.default.loadAsync(buffer);
|
|
@@ -3970,7 +3970,7 @@ async function parseHwpxDocument(buffer, options) {
|
|
|
3970
3970
|
}
|
|
3971
3971
|
const actualEntryCount = Object.keys(zip.files).length;
|
|
3972
3972
|
if (actualEntryCount > MAX_ZIP_ENTRIES) {
|
|
3973
|
-
throw new (0,
|
|
3973
|
+
throw new (0, _chunkMCUX2Y2Ccjs.KordocError)("ZIP \uC5D4\uD2B8\uB9AC \uC218 \uCD08\uACFC (ZIP bomb \uC758\uC2EC)");
|
|
3974
3974
|
}
|
|
3975
3975
|
const manifestFile = zip.file("META-INF/manifest.xml");
|
|
3976
3976
|
if (manifestFile) {
|
|
@@ -3990,7 +3990,7 @@ async function parseHwpxDocument(buffer, options) {
|
|
|
3990
3990
|
}
|
|
3991
3991
|
const hpfFile = zip.file("Contents/content.hpf");
|
|
3992
3992
|
const hpf = hpfFile ? await readZipEntry(hpfFile, "text").catch(() => "") : "";
|
|
3993
|
-
throw new (0,
|
|
3993
|
+
throw new (0, _chunkMCUX2Y2Ccjs.KordocError)(
|
|
3994
3994
|
/\bdistribution="1"/.test(_nullishCoalesce(hpf, () => ( ""))) ? "\uBC30\uD3EC\uC6A9\uC73C\uB85C \uC554\uD638\uD654\uB41C HWPX \uD30C\uC77C\uC785\uB2C8\uB2E4 (\uBC30\uD3EC\uC6A9 \uBCF5\uD638\uB294 \uC9C0\uC6D0\uD558\uC9C0 \uC54A\uC74C). \uD55C\uCEF4\uC624\uD53C\uC2A4\uC5D0\uC11C \uC77C\uBC18 \uBB38\uC11C\uB85C \uC800\uC7A5\uD55C \uB4A4 \uC5EC\uC138\uC694." : "\uC554\uD638\uB85C \uBCF4\uD638\uB41C HWPX \uD30C\uC77C\uC785\uB2C8\uB2E4. password \uC635\uC158\uC5D0 \uC5F4\uAE30 \uC554\uD638\uB97C \uC9C0\uC815\uD558\uC138\uC694."
|
|
3995
3995
|
);
|
|
3996
3996
|
}
|
|
@@ -4002,7 +4002,7 @@ async function parseHwpxDocument(buffer, options) {
|
|
|
4002
4002
|
const styleMap = await extractHwpxStyles(zip, decompressed);
|
|
4003
4003
|
const warnings = [];
|
|
4004
4004
|
const sectionPaths = await resolveSectionPaths(zip);
|
|
4005
|
-
if (sectionPaths.length === 0) throw new (0,
|
|
4005
|
+
if (sectionPaths.length === 0) throw new (0, _chunkMCUX2Y2Ccjs.KordocError)("HWPX\uC5D0\uC11C \uC139\uC158 \uD30C\uC77C\uC744 \uCC3E\uC744 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4");
|
|
4006
4006
|
let allBlocks = [];
|
|
4007
4007
|
const shared = createSectionShared();
|
|
4008
4008
|
shared.kordocLayout = await readKordocLayout(zip);
|
|
@@ -4046,10 +4046,10 @@ async function parseHwpxDocument(buffer, options) {
|
|
|
4046
4046
|
const blocks = allBlocks;
|
|
4047
4047
|
applyPageText(blocks, shared);
|
|
4048
4048
|
const images = await extractImagesFromZip(zip, blocks, decompressed, warnings, !_optionalChain([options, 'optionalAccess', _171 => _171.pages]), shared.track.deletedImageRefs);
|
|
4049
|
-
const shown = _optionalChain([options, 'optionalAccess', _172 => _172.layoutTables]) === "keep" ? blocks :
|
|
4049
|
+
const shown = _optionalChain([options, 'optionalAccess', _172 => _172.layoutTables]) === "keep" ? blocks : _chunkT7PN5D4Dcjs.unframeLayoutTables.call(void 0, blocks, !!_optionalChain([options, 'optionalAccess', _173 => _173.keepTrailingEmptyCols]));
|
|
4050
4050
|
detectHwpxHeadings(shown, styleMap, shared.tocTexts);
|
|
4051
4051
|
const outline = shown.filter((b) => b.type === "heading" && b.level && b.text).map((b) => ({ level: b.level, text: b.text, pageNumber: b.pageNumber }));
|
|
4052
|
-
const markdown =
|
|
4052
|
+
const markdown = _chunkT7PN5D4Dcjs.blocksToMarkdown.call(void 0, shown, { tableFormat: _optionalChain([options, 'optionalAccess', _174 => _174.tableFormat]) });
|
|
4053
4053
|
return { markdown, blocks: shown, metadata, outline: outline.length > 0 ? outline : void 0, warnings: warnings.length > 0 ? warnings : void 0, images: images.length > 0 ? images : void 0 };
|
|
4054
4054
|
}
|
|
4055
4055
|
|
|
@@ -4816,7 +4816,7 @@ function decryptPasswordStream(raw, password) {
|
|
|
4816
4816
|
var TAG_DOCUMENT_PROPERTIES = 16;
|
|
4817
4817
|
var TAG_ID_MAPPINGS2 = 17;
|
|
4818
4818
|
function assertDecryptedDocInfo(data, readRecords3) {
|
|
4819
|
-
const wrong = () => new (0,
|
|
4819
|
+
const wrong = () => new (0, _chunkMCUX2Y2Ccjs.KordocError)("\uBE44\uBC00\uBC88\uD638\uAC00 \uC77C\uCE58\uD558\uC9C0 \uC54A\uAC70\uB098 \uC554\uD638\uD654 \uB370\uC774\uD130\uAC00 \uC190\uC0C1\uB418\uC5C8\uC2B5\uB2C8\uB2E4.");
|
|
4820
4820
|
let records;
|
|
4821
4821
|
try {
|
|
4822
4822
|
records = readRecords3(data);
|
|
@@ -4828,7 +4828,7 @@ function assertDecryptedDocInfo(data, readRecords3) {
|
|
|
4828
4828
|
}
|
|
4829
4829
|
function assertSupportedEncryptVersion(version) {
|
|
4830
4830
|
if (version !== SUPPORTED_ENCRYPT_VERSION) {
|
|
4831
|
-
throw new (0,
|
|
4831
|
+
throw new (0, _chunkMCUX2Y2Ccjs.KordocError)(
|
|
4832
4832
|
`\uC9C0\uC6D0\uD558\uC9C0 \uC54A\uB294 HWP \uC554\uD638\uD654 \uBC84\uC804\uC785\uB2C8\uB2E4 (EncryptVersion=${version}, \uC9C0\uC6D0: ${SUPPORTED_ENCRYPT_VERSION})`
|
|
4833
4833
|
);
|
|
4834
4834
|
}
|
|
@@ -5269,7 +5269,7 @@ function emitParagraphBlocks(p) {
|
|
|
5269
5269
|
return blocks;
|
|
5270
5270
|
}
|
|
5271
5271
|
function tableFlatText(table2) {
|
|
5272
|
-
const flat =
|
|
5272
|
+
const flat = _chunkT7PN5D4Dcjs.convertTableToText.call(void 0, table2.cells);
|
|
5273
5273
|
return table2.caption ? table2.caption + (flat ? "\n" + flat : "") : flat;
|
|
5274
5274
|
}
|
|
5275
5275
|
function blocksPlainText(blocks, sep) {
|
|
@@ -5349,8 +5349,8 @@ ${cell2.text}` : cell2.text;
|
|
|
5349
5349
|
}
|
|
5350
5350
|
function buildAddressedTable(cells, rows, cols, keepAnchoredEmptyCols) {
|
|
5351
5351
|
for (const c of cells) {
|
|
5352
|
-
rows = Math.max(rows, Math.min((_nullishCoalesce(c.rowAddr, () => ( 0))) + 1,
|
|
5353
|
-
cols = Math.max(cols, Math.min((_nullishCoalesce(c.colAddr, () => ( 0))) + 1,
|
|
5352
|
+
rows = Math.max(rows, Math.min((_nullishCoalesce(c.rowAddr, () => ( 0))) + 1, _chunkT7PN5D4Dcjs.MAX_ROWS));
|
|
5353
|
+
cols = Math.max(cols, Math.min((_nullishCoalesce(c.colAddr, () => ( 0))) + 1, _chunkT7PN5D4Dcjs.MAX_COLS));
|
|
5354
5354
|
}
|
|
5355
5355
|
const placed = resolveCellOverlaps(cells, rows, cols);
|
|
5356
5356
|
const byRow = Array.from({ length: rows }, () => []);
|
|
@@ -5358,12 +5358,12 @@ function buildAddressedTable(cells, rows, cols, keepAnchoredEmptyCols) {
|
|
|
5358
5358
|
const r = _nullishCoalesce(c.rowAddr, () => ( 0));
|
|
5359
5359
|
if (r < rows && (_nullishCoalesce(c.colAddr, () => ( 0))) < cols) byRow[r].push(c);
|
|
5360
5360
|
}
|
|
5361
|
-
const table2 =
|
|
5361
|
+
const table2 = _chunkT7PN5D4Dcjs.buildTable.call(void 0, byRow, { keepAnchoredEmptyCols });
|
|
5362
5362
|
if (table2.rows === 0) return null;
|
|
5363
5363
|
for (const c of placed) {
|
|
5364
5364
|
if (c.edges) {
|
|
5365
5365
|
const at = _optionalChain([table2, 'access', _181 => _181.cells, 'access', _182 => _182[_nullishCoalesce(c.rowAddr, () => ( 0))], 'optionalAccess', _183 => _183[_nullishCoalesce(c.colAddr, () => ( 0))]]);
|
|
5366
|
-
if (at)
|
|
5366
|
+
if (at) _chunkT7PN5D4Dcjs.CELL_EDGES.set(at, c.edges);
|
|
5367
5367
|
}
|
|
5368
5368
|
if (!_optionalChain([c, 'access', _184 => _184.blocks, 'optionalAccess', _185 => _185.length]) && !c.isHeader) continue;
|
|
5369
5369
|
const target = _optionalChain([table2, 'access', _186 => _186.cells, 'access', _187 => _187[_nullishCoalesce(c.rowAddr, () => ( 0))], 'optionalAccess', _188 => _188[_nullishCoalesce(c.colAddr, () => ( 0))]]);
|
|
@@ -5565,7 +5565,7 @@ function parseParagraph(records, start, end, ctx) {
|
|
|
5565
5565
|
continue;
|
|
5566
5566
|
}
|
|
5567
5567
|
if (!ctrl.href) continue;
|
|
5568
|
-
const href =
|
|
5568
|
+
const href = _chunkMCUX2Y2Ccjs.sanitizeHref.call(void 0, ctrl.href);
|
|
5569
5569
|
if (!href) continue;
|
|
5570
5570
|
if (!anchor.trim() || anchor.includes(INLINE_TABLE_MARK)) continue;
|
|
5571
5571
|
text = text.slice(0, r.start) + `[${anchor}](${href})` + text.slice(r.end);
|
|
@@ -5574,7 +5574,7 @@ function parseParagraph(records, start, end, ctx) {
|
|
|
5574
5574
|
}
|
|
5575
5575
|
if (text.includes(LITERAL_DOLLAR_MARK)) text = text.replaceAll(LITERAL_DOLLAR_MARK, "\\$");
|
|
5576
5576
|
text = resolveLiteralLt(text);
|
|
5577
|
-
text =
|
|
5577
|
+
text = _chunkT7PN5D4Dcjs.tidyScriptTags.call(void 0, text);
|
|
5578
5578
|
const toc = takeTocLeaders(text);
|
|
5579
5579
|
text = toc.text;
|
|
5580
5580
|
let headingLevel = 0;
|
|
@@ -5787,7 +5787,7 @@ function hyperlinkUrlFromCommand(command) {
|
|
|
5787
5787
|
}
|
|
5788
5788
|
var A4_HEIGHT = 84188;
|
|
5789
5789
|
function keepUnlessPageSpanning(table2, cells) {
|
|
5790
|
-
if (!cells.some((c) => c.pageSpanning))
|
|
5790
|
+
if (!cells.some((c) => c.pageSpanning)) _chunkT7PN5D4Dcjs.markNonLayoutTable.call(void 0, table2);
|
|
5791
5791
|
}
|
|
5792
5792
|
function parseTableControl(ctrl, records, ctx) {
|
|
5793
5793
|
if (ctx.depth >= MAX_NEST_DEPTH) return null;
|
|
@@ -5799,8 +5799,8 @@ function parseTableControl(ctrl, records, ctx) {
|
|
|
5799
5799
|
let tableIdx = -1;
|
|
5800
5800
|
for (let i2 = childStart; i2 < childEnd; i2++) {
|
|
5801
5801
|
if (records[i2].tagId === TAG_TABLE && records[i2].level === directLevel && records[i2].data.length >= 8) {
|
|
5802
|
-
rows = Math.min(records[i2].data.readUInt16LE(4),
|
|
5803
|
-
cols = Math.min(records[i2].data.readUInt16LE(6),
|
|
5802
|
+
rows = Math.min(records[i2].data.readUInt16LE(4), _chunkT7PN5D4Dcjs.MAX_ROWS);
|
|
5803
|
+
cols = Math.min(records[i2].data.readUInt16LE(6), _chunkT7PN5D4Dcjs.MAX_COLS);
|
|
5804
5804
|
tableIdx = i2;
|
|
5805
5805
|
break;
|
|
5806
5806
|
}
|
|
@@ -5844,11 +5844,11 @@ function parseTableControl(ctrl, records, ctx) {
|
|
|
5844
5844
|
return table3;
|
|
5845
5845
|
}
|
|
5846
5846
|
if (rows === 0 || cols === 0) {
|
|
5847
|
-
rows = Math.min(cells.length,
|
|
5847
|
+
rows = Math.min(cells.length, _chunkT7PN5D4Dcjs.MAX_ROWS);
|
|
5848
5848
|
cols = 1;
|
|
5849
5849
|
}
|
|
5850
5850
|
const cellRows = arrangeCells(rows, cols, cells);
|
|
5851
|
-
const table2 =
|
|
5851
|
+
const table2 = _chunkT7PN5D4Dcjs.buildTable.call(void 0, cellRows, { keepAnchoredEmptyCols: ctx.doc.keepTrailingEmptyCols });
|
|
5852
5852
|
if (caption && table2.rows > 0) table2.caption = caption;
|
|
5853
5853
|
if (sourceId && table2.rows > 0) table2.sourceId = sourceId;
|
|
5854
5854
|
keepUnlessPageSpanning(table2, cells);
|
|
@@ -5867,8 +5867,8 @@ function parseCell(records, lhIdx, end, ctx) {
|
|
|
5867
5867
|
rowAddr = rec.data.readUInt16LE(10);
|
|
5868
5868
|
const cs = rec.data.readUInt16LE(12);
|
|
5869
5869
|
const rs = rec.data.readUInt16LE(14);
|
|
5870
|
-
if (cs > 0) colSpan = Math.min(cs,
|
|
5871
|
-
if (rs > 0) rowSpan = Math.min(rs,
|
|
5870
|
+
if (cs > 0) colSpan = Math.min(cs, _chunkT7PN5D4Dcjs.MAX_COLS);
|
|
5871
|
+
if (rs > 0) rowSpan = Math.min(rs, _chunkT7PN5D4Dcjs.MAX_ROWS);
|
|
5872
5872
|
}
|
|
5873
5873
|
const blocks = ctx.depth < MAX_NEST_DEPTH ? parseParagraphList(records, lhIdx + 1, end, { ...ctx, depth: ctx.depth + 1 }) : [];
|
|
5874
5874
|
const { text, hasStructure } = cellTextFromBlocks(blocks);
|
|
@@ -6017,7 +6017,7 @@ function openHwp5Container(buffer, options) {
|
|
|
6017
6017
|
lenientCfb = parseLenientCfb(buffer);
|
|
6018
6018
|
warnings.push({ message: "\uC190\uC0C1\uB41C CFB \uCEE8\uD14C\uC774\uB108 \u2014 lenient \uBAA8\uB4DC\uB85C \uBCF5\uAD6C", code: "LENIENT_CFB_RECOVERY" });
|
|
6019
6019
|
} catch (e24) {
|
|
6020
|
-
throw new (0,
|
|
6020
|
+
throw new (0, _chunkMCUX2Y2Ccjs.KordocError)("CFB \uCEE8\uD14C\uC774\uB108 \uD30C\uC2F1 \uC2E4\uD328 (strict \uBC0F lenient \uBAA8\uB450)");
|
|
6021
6021
|
}
|
|
6022
6022
|
}
|
|
6023
6023
|
const readRawStream = (path) => {
|
|
@@ -6028,14 +6028,14 @@ function openHwp5Container(buffer, options) {
|
|
|
6028
6028
|
return lenientCfb.findStream(path);
|
|
6029
6029
|
};
|
|
6030
6030
|
const headerData = readRawStream("/FileHeader");
|
|
6031
|
-
if (!headerData) throw new (0,
|
|
6031
|
+
if (!headerData) throw new (0, _chunkMCUX2Y2Ccjs.KordocError)("FileHeader \uC2A4\uD2B8\uB9BC \uC5C6\uC74C");
|
|
6032
6032
|
const header = parseFileHeader(headerData);
|
|
6033
|
-
if (header.signature !== "HWP Document File") throw new (0,
|
|
6034
|
-
if (header.flags & FLAG_DRM) throw new (0,
|
|
6033
|
+
if (header.signature !== "HWP Document File") throw new (0, _chunkMCUX2Y2Ccjs.KordocError)("HWP \uC2DC\uADF8\uB2C8\uCC98 \uBD88\uC77C\uCE58");
|
|
6034
|
+
if (header.flags & FLAG_DRM) throw new (0, _chunkMCUX2Y2Ccjs.KordocError)("DRM \uBCF4\uD638\uB41C HWP\uB294 \uC9C0\uC6D0\uD558\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4");
|
|
6035
6035
|
const encrypted = (header.flags & FLAG_ENCRYPTED) !== 0;
|
|
6036
6036
|
if (encrypted) {
|
|
6037
6037
|
if (!_optionalChain([options, 'optionalAccess', _212 => _212.password])) {
|
|
6038
|
-
throw new (0,
|
|
6038
|
+
throw new (0, _chunkMCUX2Y2Ccjs.KordocError)("\uC554\uD638\uB85C \uBCF4\uD638\uB41C HWP \uBB38\uC11C\uC785\uB2C8\uB2E4. password \uC635\uC158\uC5D0 \uC5F4\uAE30 \uC554\uD638\uB97C \uC9C0\uC815\uD558\uC138\uC694.");
|
|
6039
6039
|
}
|
|
6040
6040
|
assertSupportedEncryptVersion(readEncryptVersion(headerData));
|
|
6041
6041
|
}
|
|
@@ -6049,12 +6049,12 @@ function openHwp5Container(buffer, options) {
|
|
|
6049
6049
|
const distribution = (header.flags & FLAG_DISTRIBUTION) !== 0;
|
|
6050
6050
|
if (encrypted) {
|
|
6051
6051
|
const rawDocInfo = findStream("/DocInfo");
|
|
6052
|
-
if (!rawDocInfo) throw new (0,
|
|
6052
|
+
if (!rawDocInfo) throw new (0, _chunkMCUX2Y2Ccjs.KordocError)("DocInfo \uC2A4\uD2B8\uB9BC \uC5C6\uC74C");
|
|
6053
6053
|
let docInfoData;
|
|
6054
6054
|
try {
|
|
6055
6055
|
docInfoData = compressed ? decompressStream(rawDocInfo) : rawDocInfo;
|
|
6056
6056
|
} catch (e25) {
|
|
6057
|
-
throw new (0,
|
|
6057
|
+
throw new (0, _chunkMCUX2Y2Ccjs.KordocError)("\uBE44\uBC00\uBC88\uD638\uAC00 \uC77C\uCE58\uD558\uC9C0 \uC54A\uAC70\uB098 \uC554\uD638\uD654 \uB370\uC774\uD130\uAC00 \uC190\uC0C1\uB418\uC5C8\uC2B5\uB2C8\uB2E4.");
|
|
6058
6058
|
}
|
|
6059
6059
|
assertDecryptedDocInfo(docInfoData, readRecords);
|
|
6060
6060
|
}
|
|
@@ -6079,10 +6079,10 @@ function readHwp5SectionRecords(c, sections, warnings) {
|
|
|
6079
6079
|
try {
|
|
6080
6080
|
const data = !c.distribution && c.compressed ? decompressStream(Buffer.from(sections[si])) : Buffer.from(sections[si]);
|
|
6081
6081
|
totalDecompressed += data.length;
|
|
6082
|
-
if (totalDecompressed > MAX_TOTAL_DECOMPRESS) throw new (0,
|
|
6082
|
+
if (totalDecompressed > MAX_TOTAL_DECOMPRESS) throw new (0, _chunkMCUX2Y2Ccjs.KordocError)("\uCD1D \uC555\uCD95 \uD574\uC81C \uD06C\uAE30 \uCD08\uACFC (decompression bomb \uC758\uC2EC)");
|
|
6083
6083
|
out.push(readRecords(data));
|
|
6084
6084
|
} catch (secErr) {
|
|
6085
|
-
if (secErr instanceof
|
|
6085
|
+
if (secErr instanceof _chunkMCUX2Y2Ccjs.KordocError) throw secErr;
|
|
6086
6086
|
out.push(null);
|
|
6087
6087
|
warnings.push({ page: si + 1, message: `\uC139\uC158 ${si + 1} \uD30C\uC2F1 \uC2E4\uD328: ${secErr instanceof Error ? secErr.message : "\uC54C \uC218 \uC5C6\uB294 \uC624\uB958"}`, code: "PARTIAL_PARSE" });
|
|
6088
6088
|
}
|
|
@@ -6102,7 +6102,7 @@ function parseHwp5Document(buffer, options) {
|
|
|
6102
6102
|
if (cfb) extractHwp5Metadata(cfb, metadata);
|
|
6103
6103
|
const docInfo = cfb && !encrypted ? parseDocInfoStream(cfb, compressed) : parseDocInfoFromStream(findStream("/DocInfo"), compressed);
|
|
6104
6104
|
const sections = readHwp5SectionStreams(c);
|
|
6105
|
-
if (sections.length === 0) throw new (0,
|
|
6105
|
+
if (sections.length === 0) throw new (0, _chunkMCUX2Y2Ccjs.KordocError)("\uC139\uC158 \uC2A4\uD2B8\uB9BC\uC744 \uCC3E\uC744 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4");
|
|
6106
6106
|
const sectionRecords = readHwp5SectionRecords(c, sections, warnings);
|
|
6107
6107
|
const sectionDetects = sectionRecords.map((r) => r ? detectHwp5SectionPages(r) : null);
|
|
6108
6108
|
const sectionTableIds = [];
|
|
@@ -6146,7 +6146,7 @@ function parseHwp5Document(buffer, options) {
|
|
|
6146
6146
|
parsedSections++;
|
|
6147
6147
|
_optionalChain([options, 'optionalAccess', _217 => _217.onProgress, 'optionalCall', _218 => _218(parsedSections, sections.length)]);
|
|
6148
6148
|
} catch (secErr) {
|
|
6149
|
-
if (secErr instanceof
|
|
6149
|
+
if (secErr instanceof _chunkMCUX2Y2Ccjs.KordocError) throw secErr;
|
|
6150
6150
|
warnings.push({ page: si + 1, message: `\uC139\uC158 ${si + 1} \uD30C\uC2F1 \uC2E4\uD328: ${secErr instanceof Error ? secErr.message : "\uC54C \uC218 \uC5C6\uB294 \uC624\uB958"}`, code: "PARTIAL_PARSE" });
|
|
6151
6151
|
} finally {
|
|
6152
6152
|
pageBase += detect2.pages;
|
|
@@ -6157,10 +6157,10 @@ function parseHwp5Document(buffer, options) {
|
|
|
6157
6157
|
}
|
|
6158
6158
|
const blocks = [...doc.headerBlocks, ...bodyBlocks, ...doc.footerBlocks];
|
|
6159
6159
|
const images = cfb ? extractHwp5Images(cfb.FileIndex, blocks, warnings, !pageFilter, encrypted ? findStream : void 0) : extractHwp5ImagesLenient(lenientCfb, blocks, warnings, !pageFilter, encrypted ? findStream : void 0);
|
|
6160
|
-
let flatBlocks =
|
|
6161
|
-
if (_optionalChain([options, 'optionalAccess', _219 => _219.layoutTables]) !== "keep") flatBlocks =
|
|
6160
|
+
let flatBlocks = _chunkT7PN5D4Dcjs.flattenLayoutTables.call(void 0, blocks);
|
|
6161
|
+
if (_optionalChain([options, 'optionalAccess', _219 => _219.layoutTables]) !== "keep") flatBlocks = _chunkT7PN5D4Dcjs.unframeLayoutTables.call(void 0, flatBlocks, !!_optionalChain([options, 'optionalAccess', _220 => _220.keepTrailingEmptyCols]));
|
|
6162
6162
|
if (_optionalChain([options, 'optionalAccess', _221 => _221.dedupeRunningHeaders])) {
|
|
6163
|
-
const deduped =
|
|
6163
|
+
const deduped = _chunkT7PN5D4Dcjs.dedupeRunningHeaders.call(void 0, flatBlocks);
|
|
6164
6164
|
const removed = flatBlocks.length - deduped.length;
|
|
6165
6165
|
if (removed > 0) warnings.push({ message: `\uBC18\uBCF5 \uB7EC\uB2DD \uD5E4\uB354 ${removed}\uAC1C \uC81C\uAC70`, code: "HIDDEN_TEXT_FILTERED" });
|
|
6166
6166
|
flatBlocks = deduped;
|
|
@@ -6169,10 +6169,10 @@ function parseHwp5Document(buffer, options) {
|
|
|
6169
6169
|
detectHwp5Headings(flatBlocks, docInfo, doc.tocTexts);
|
|
6170
6170
|
}
|
|
6171
6171
|
const outline = flatBlocks.filter((b) => b.type === "heading" && b.level && b.text).map((b) => ({ level: b.level, text: b.text, pageNumber: b.pageNumber }));
|
|
6172
|
-
let markdown =
|
|
6172
|
+
let markdown = _chunkT7PN5D4Dcjs.blocksToMarkdown.call(void 0, flatBlocks, { tableFormat: _optionalChain([options, 'optionalAccess', _222 => _222.tableFormat]) });
|
|
6173
6173
|
if (_optionalChain([options, 'optionalAccess', _223 => _223.inlineImages]) && options.images !== false && images.length > 0) {
|
|
6174
6174
|
try {
|
|
6175
|
-
markdown =
|
|
6175
|
+
markdown = _chunk57VNFMMScjs.inlineImagesIntoMarkdown.call(void 0, markdown, images, { compress: true });
|
|
6176
6176
|
} catch (inlineErr) {
|
|
6177
6177
|
warnings.push({ message: `\uC774\uBBF8\uC9C0 \uC778\uB77C\uC778 \uC2E4\uD328 \u2014 \uC6D0\uBCF8 \uD30C\uC77C \uCC38\uC870\uB85C \uD3F4\uBC31: ${inlineErr instanceof Error ? inlineErr.message : "\uC54C \uC218 \uC5C6\uB294 \uC624\uB958"}`, code: "SKIPPED_IMAGE" });
|
|
6178
6178
|
}
|
|
@@ -6236,9 +6236,9 @@ function detectHwp5Headings(blocks, docInfo, tocTexts) {
|
|
|
6236
6236
|
let level = 0;
|
|
6237
6237
|
if (_optionalChain([block, 'access', _230 => _230.style, 'optionalAccess', _231 => _231.fontSize]) && baseFontSize > 0) {
|
|
6238
6238
|
const ratio = block.style.fontSize / baseFontSize;
|
|
6239
|
-
if (ratio >=
|
|
6240
|
-
else if (ratio >=
|
|
6241
|
-
else if (ratio >=
|
|
6239
|
+
if (ratio >= _chunkT7PN5D4Dcjs.HEADING_RATIO_H1) level = 1;
|
|
6240
|
+
else if (ratio >= _chunkT7PN5D4Dcjs.HEADING_RATIO_H2) level = 2;
|
|
6241
|
+
else if (ratio >= _chunkT7PN5D4Dcjs.HEADING_RATIO_H3) level = 3;
|
|
6242
6242
|
}
|
|
6243
6243
|
if (/^제\d+[장절편]\s/.test(text) && text.length <= 50) {
|
|
6244
6244
|
if (level === 0) level = 2;
|
|
@@ -6370,7 +6370,7 @@ function findSectionsLenient(lcfb) {
|
|
|
6370
6370
|
const raw = _nullishCoalesce(lcfb.findStream(`/BodyText/Section${i}`), () => ( lcfb.findStream(`Section${i}`)));
|
|
6371
6371
|
if (!raw) break;
|
|
6372
6372
|
totalBytes += raw.length;
|
|
6373
|
-
if (totalBytes > MAX_TOTAL_DECOMPRESS) throw new (0,
|
|
6373
|
+
if (totalBytes > MAX_TOTAL_DECOMPRESS) throw new (0, _chunkMCUX2Y2Ccjs.KordocError)("\uCD1D \uC555\uCD95 \uD574\uC81C \uD06C\uAE30 \uCD08\uACFC (decompression bomb \uC758\uC2EC)");
|
|
6374
6374
|
sections.push({ idx: i, content: raw });
|
|
6375
6375
|
}
|
|
6376
6376
|
if (sections.length === 0) {
|
|
@@ -6381,7 +6381,7 @@ function findSectionsLenient(lcfb) {
|
|
|
6381
6381
|
const raw = lcfb.findStream(e.name);
|
|
6382
6382
|
if (raw) {
|
|
6383
6383
|
totalBytes += raw.length;
|
|
6384
|
-
if (totalBytes > MAX_TOTAL_DECOMPRESS) throw new (0,
|
|
6384
|
+
if (totalBytes > MAX_TOTAL_DECOMPRESS) throw new (0, _chunkMCUX2Y2Ccjs.KordocError)("\uCD1D \uC555\uCD95 \uD574\uC81C \uD06C\uAE30 \uCD08\uACFC (decompression bomb \uC758\uC2EC)");
|
|
6385
6385
|
sections.push({ idx, content: raw });
|
|
6386
6386
|
}
|
|
6387
6387
|
}
|
|
@@ -6398,7 +6398,7 @@ function findViewTextSectionsLenient(lcfb, compressed) {
|
|
|
6398
6398
|
try {
|
|
6399
6399
|
const content = decryptViewText(raw, compressed);
|
|
6400
6400
|
totalDecompressed += content.length;
|
|
6401
|
-
if (totalDecompressed > MAX_TOTAL_DECOMPRESS) throw new (0,
|
|
6401
|
+
if (totalDecompressed > MAX_TOTAL_DECOMPRESS) throw new (0, _chunkMCUX2Y2Ccjs.KordocError)("\uCD1D \uC555\uCD95 \uD574\uC81C \uD06C\uAE30 \uCD08\uACFC (decompression bomb \uC758\uC2EC)");
|
|
6402
6402
|
sections.push({ idx: i, content });
|
|
6403
6403
|
} catch (e32) {
|
|
6404
6404
|
break;
|
|
@@ -18898,25 +18898,25 @@ function desEcbDecrypt(data, key) {
|
|
|
18898
18898
|
}
|
|
18899
18899
|
function readLayout(data) {
|
|
18900
18900
|
if (data.length < FIXED_HEADER_BYTES) {
|
|
18901
|
-
throw new (0,
|
|
18901
|
+
throw new (0, _chunkMCUX2Y2Ccjs.KordocError)("HWP3 \uC554\uD638 \uBB38\uC11C: \uD5E4\uB354\uAC00 \uC798\uB838\uC2B5\uB2C8\uB2E4");
|
|
18902
18902
|
}
|
|
18903
18903
|
const infoBlockLength = data[INFO_BLOCK_LENGTH_OFFSET] | data[INFO_BLOCK_LENGTH_OFFSET + 1] << 8;
|
|
18904
18904
|
const payloadOffset = FIXED_HEADER_BYTES + infoBlockLength;
|
|
18905
18905
|
if (payloadOffset >= data.length) {
|
|
18906
|
-
throw new (0,
|
|
18906
|
+
throw new (0, _chunkMCUX2Y2Ccjs.KordocError)("HWP3 \uC554\uD638 \uBB38\uC11C: \uBCF8\uBB38\uC774 \uC5C6\uC2B5\uB2C8\uB2E4");
|
|
18907
18907
|
}
|
|
18908
18908
|
return { payloadOffset, compressed: data[COMPRESSION_FLAG_OFFSET] !== 0 };
|
|
18909
18909
|
}
|
|
18910
18910
|
function decryptHwp3Document(input, password) {
|
|
18911
18911
|
const { payloadOffset, compressed } = readLayout(input);
|
|
18912
18912
|
if (!compressed) {
|
|
18913
|
-
throw new (0,
|
|
18913
|
+
throw new (0, _chunkMCUX2Y2Ccjs.KordocError)("\uC9C0\uC6D0\uD558\uC9C0 \uC54A\uB294 HWP3 \uC554\uD638\uD654 \uBC29\uC2DD\uC785\uB2C8\uB2E4 (\uC555\uCD95\uB418\uC9C0 \uC54A\uC740 \uC554\uD638 \uBCF8\uBB38)");
|
|
18914
18914
|
}
|
|
18915
18915
|
const source = Buffer.from(input);
|
|
18916
18916
|
const payload = source.subarray(payloadOffset);
|
|
18917
18917
|
const aligned = payload.subarray(0, payload.length - payload.length % 8);
|
|
18918
18918
|
if (aligned.length === 0) {
|
|
18919
|
-
throw new (0,
|
|
18919
|
+
throw new (0, _chunkMCUX2Y2Ccjs.KordocError)("HWP3 \uC554\uD638 \uBB38\uC11C: \uBCF8\uBB38\uC774 \uB108\uBB34 \uC9E7\uC2B5\uB2C8\uB2E4");
|
|
18920
18920
|
}
|
|
18921
18921
|
const decrypted = desEcbDecrypt(aligned, deriveDesKey(password));
|
|
18922
18922
|
let inflated;
|
|
@@ -18924,14 +18924,14 @@ function decryptHwp3Document(input, password) {
|
|
|
18924
18924
|
inflated = _zlib.inflateRawSync.call(void 0, decrypted, { maxOutputLength: MAX_DECOMPRESSED_BYTES });
|
|
18925
18925
|
} catch (err) {
|
|
18926
18926
|
if (_optionalChain([err, 'optionalAccess', _246 => _246.code]) === "ERR_BUFFER_TOO_LARGE") {
|
|
18927
|
-
throw new (0,
|
|
18927
|
+
throw new (0, _chunkMCUX2Y2Ccjs.KordocError)(
|
|
18928
18928
|
`HWP3 \uC554\uD638 \uBCF8\uBB38\uC758 \uC555\uCD95 \uD574\uC81C \uACB0\uACFC\uAC00 \uCD5C\uB300 \uD5C8\uC6A9 \uD06C\uAE30(${MAX_DECOMPRESSED_BYTES / 1024 / 1024}MB)\uB97C \uCD08\uACFC\uD588\uC2B5\uB2C8\uB2E4`
|
|
18929
18929
|
);
|
|
18930
18930
|
}
|
|
18931
|
-
throw new (0,
|
|
18931
|
+
throw new (0, _chunkMCUX2Y2Ccjs.KordocError)("\uBE44\uBC00\uBC88\uD638\uAC00 \uC77C\uCE58\uD558\uC9C0 \uC54A\uAC70\uB098 \uC554\uD638\uD654 \uB370\uC774\uD130\uAC00 \uC190\uC0C1\uB418\uC5C8\uC2B5\uB2C8\uB2E4.");
|
|
18932
18932
|
}
|
|
18933
18933
|
if (inflated.length <= PASSWORD_PREFIX_BYTES) {
|
|
18934
|
-
throw new (0,
|
|
18934
|
+
throw new (0, _chunkMCUX2Y2Ccjs.KordocError)("\uBE44\uBC00\uBC88\uD638\uAC00 \uC77C\uCE58\uD558\uC9C0 \uC54A\uAC70\uB098 \uC554\uD638\uD654 \uB370\uC774\uD130\uAC00 \uC190\uC0C1\uB418\uC5C8\uC2B5\uB2C8\uB2E4.");
|
|
18935
18935
|
}
|
|
18936
18936
|
const body = inflated.subarray(PASSWORD_PREFIX_BYTES);
|
|
18937
18937
|
const out = Buffer.concat([source.subarray(0, payloadOffset), body]);
|
|
@@ -18988,9 +18988,9 @@ function hwp3CellGrid(info, count) {
|
|
|
18988
18988
|
const col = edgeAt(xs, g3.x), row = edgeAt(ys, g3.y);
|
|
18989
18989
|
const c2 = nextX[k] !== void 0 ? edgeAt(xs, nextX[k]) : xs.length - 1;
|
|
18990
18990
|
const r2 = nextY[k] !== void 0 ? edgeAt(ys, nextY[k]) : ys.length - 1;
|
|
18991
|
-
return { row, col, rowSpan: Math.min(Math.max(1, r2 - row),
|
|
18991
|
+
return { row, col, rowSpan: Math.min(Math.max(1, r2 - row), _chunkT7PN5D4Dcjs.MAX_ROWS), colSpan: Math.min(Math.max(1, c2 - col), _chunkT7PN5D4Dcjs.MAX_COLS) };
|
|
18992
18992
|
});
|
|
18993
|
-
return { rows: Math.min(Math.max(1, ys.length - 1),
|
|
18993
|
+
return { rows: Math.min(Math.max(1, ys.length - 1), _chunkT7PN5D4Dcjs.MAX_ROWS), cols: Math.min(Math.max(1, xs.length - 1), _chunkT7PN5D4Dcjs.MAX_COLS), cells };
|
|
18994
18994
|
}
|
|
18995
18995
|
|
|
18996
18996
|
// src/hwp3/parser.ts
|
|
@@ -19031,7 +19031,7 @@ function parseHwp3Document(buffer, options) {
|
|
|
19031
19031
|
let source = Buffer.from(buffer);
|
|
19032
19032
|
if (isEncryptedHwp3(source)) {
|
|
19033
19033
|
if (!_optionalChain([options, 'optionalAccess', _247 => _247.password])) {
|
|
19034
|
-
throw new (0,
|
|
19034
|
+
throw new (0, _chunkMCUX2Y2Ccjs.KordocError)(
|
|
19035
19035
|
"\uC554\uD638\uB85C \uBCF4\uD638\uB41C HWP3 \uBB38\uC11C\uC785\uB2C8\uB2E4. password \uC635\uC158\uC5D0 \uC5F4\uAE30 \uC554\uD638\uB97C \uC9C0\uC815\uD558\uC138\uC694."
|
|
19036
19036
|
);
|
|
19037
19037
|
}
|
|
@@ -19048,10 +19048,10 @@ function parseHwp3Document(buffer, options) {
|
|
|
19048
19048
|
body = _zlib.inflateRawSync.call(void 0, tail, { maxOutputLength: MAX_DECOMPRESS_SIZE3 });
|
|
19049
19049
|
} catch (err) {
|
|
19050
19050
|
if (_optionalChain([err, 'optionalAccess', _248 => _248.code]) === "ERR_BUFFER_TOO_LARGE") {
|
|
19051
|
-
throw new (0,
|
|
19051
|
+
throw new (0, _chunkMCUX2Y2Ccjs.KordocError)(`HWP3 \uC555\uCD95 \uD574\uC81C \uACB0\uACFC\uAC00 \uCD5C\uB300 \uD5C8\uC6A9 \uD06C\uAE30(${MAX_DECOMPRESS_SIZE3 / 1024 / 1024}MB)\uB97C \uCD08\uACFC\uD588\uC2B5\uB2C8\uB2E4`);
|
|
19052
19052
|
}
|
|
19053
19053
|
const msg2 = err instanceof Error ? err.message : String(err);
|
|
19054
|
-
throw new (0,
|
|
19054
|
+
throw new (0, _chunkMCUX2Y2Ccjs.KordocError)(`HWP3 \uC555\uCD95 \uD574\uC81C \uC2E4\uD328: ${msg2}`);
|
|
19055
19055
|
}
|
|
19056
19056
|
} else {
|
|
19057
19057
|
body = tail;
|
|
@@ -19074,7 +19074,7 @@ function parseHwp3Document(buffer, options) {
|
|
|
19074
19074
|
const names = new Map([...ctx.picIds].map(([name, id]) => [id, name]));
|
|
19075
19075
|
dropMissingPictures(allBlocks, binData, names, warnings);
|
|
19076
19076
|
const images = resolveImageBlocks(binData, allBlocks, warnings, true);
|
|
19077
|
-
const blocks =
|
|
19077
|
+
const blocks = _chunkT7PN5D4Dcjs.flattenLayoutTables.call(void 0, allBlocks);
|
|
19078
19078
|
const metadata = {
|
|
19079
19079
|
title: header.title || void 0,
|
|
19080
19080
|
author: header.author || void 0,
|
|
@@ -19082,10 +19082,10 @@ function parseHwp3Document(buffer, options) {
|
|
|
19082
19082
|
createdAt: header.date || void 0,
|
|
19083
19083
|
version: "3.0"
|
|
19084
19084
|
};
|
|
19085
|
-
let markdown =
|
|
19085
|
+
let markdown = _chunkT7PN5D4Dcjs.blocksToMarkdown.call(void 0, blocks, { tableFormat: _optionalChain([options, 'optionalAccess', _249 => _249.tableFormat]) });
|
|
19086
19086
|
if (_optionalChain([options, 'optionalAccess', _250 => _250.inlineImages]) && options.images !== false && images.length > 0) {
|
|
19087
19087
|
try {
|
|
19088
|
-
markdown =
|
|
19088
|
+
markdown = _chunk57VNFMMScjs.inlineImagesIntoMarkdown.call(void 0, markdown, images, { compress: true });
|
|
19089
19089
|
} catch (inlineErr) {
|
|
19090
19090
|
warnings.push({ message: `\uC774\uBBF8\uC9C0 \uC778\uB77C\uC778 \uC2E4\uD328 \u2014 \uC6D0\uBCF8 \uD30C\uC77C \uCC38\uC870\uB85C \uD3F4\uBC31: ${inlineErr instanceof Error ? inlineErr.message : "\uC54C \uC218 \uC5C6\uB294 \uC624\uB958"}`, code: "SKIPPED_IMAGE" });
|
|
19091
19091
|
}
|
|
@@ -19217,7 +19217,7 @@ function parseCharStream(reader, charCount, ctx, para2) {
|
|
|
19217
19217
|
continue;
|
|
19218
19218
|
}
|
|
19219
19219
|
if (ch >= 32) {
|
|
19220
|
-
para2.text +=
|
|
19220
|
+
para2.text += _chunkT7PN5D4Dcjs.escapeLiteralTags.call(void 0, _chunkT7PN5D4Dcjs.escapeLiteralDollar.call(void 0, _nullishCoalesce(decodeJohabText(ch), () => ( ""))));
|
|
19221
19221
|
continue;
|
|
19222
19222
|
}
|
|
19223
19223
|
if (ch === 9) {
|
|
@@ -19452,7 +19452,7 @@ function isDistributionSentinel(markdown) {
|
|
|
19452
19452
|
// src/xlsx/sheet-blocks.ts
|
|
19453
19453
|
var MAX_SHEET_COLS = 16384;
|
|
19454
19454
|
function sheetRowCap(cols) {
|
|
19455
|
-
return Math.floor(
|
|
19455
|
+
return Math.floor(_chunkT7PN5D4Dcjs.MAX_TABLE_CELLS / Math.max(1, cols));
|
|
19456
19456
|
}
|
|
19457
19457
|
function sheetToBlocks(sheetName, rows, maxCol, merges, sheetIndex, warnings, keepAnchoredEmptyCols) {
|
|
19458
19458
|
const blocks = [];
|
|
@@ -19483,7 +19483,7 @@ function sheetToBlocks(sheetName, rows, maxCol, merges, sheetIndex, warnings, ke
|
|
|
19483
19483
|
if (keepRows.length > rowCap) {
|
|
19484
19484
|
warnings.push({
|
|
19485
19485
|
page: sheetIndex + 1,
|
|
19486
|
-
message: `\uC2DC\uD2B8 "${sheetName}": ${keepRows.length}\uD589 \xD7 ${keepCols.length}\uC5F4 \uC911 \uC55E ${rowCap}\uD589\uB9CC \uD45C\uB85C \uB0C8\uC2B5\uB2C8\uB2E4 (\uD45C \uCE78 \uC0C1\uD55C ${
|
|
19486
|
+
message: `\uC2DC\uD2B8 "${sheetName}": ${keepRows.length}\uD589 \xD7 ${keepCols.length}\uC5F4 \uC911 \uC55E ${rowCap}\uD589\uB9CC \uD45C\uB85C \uB0C8\uC2B5\uB2C8\uB2E4 (\uD45C \uCE78 \uC0C1\uD55C ${_chunkT7PN5D4Dcjs.MAX_TABLE_CELLS})`,
|
|
19487
19487
|
code: "TRUNCATED_TABLE"
|
|
19488
19488
|
});
|
|
19489
19489
|
keepRows.length = rowCap;
|
|
@@ -19517,14 +19517,14 @@ function sheetToBlocks(sheetName, rows, maxCol, merges, sheetIndex, warnings, ke
|
|
|
19517
19517
|
}
|
|
19518
19518
|
cellRows.push(row);
|
|
19519
19519
|
}
|
|
19520
|
-
const table2 =
|
|
19520
|
+
const table2 = _chunkT7PN5D4Dcjs.buildTable.call(void 0, cellRows, { keepAnchoredEmptyCols, maxRows: rowCap, maxCols: keepCols.length });
|
|
19521
19521
|
if (table2.rows > 0) blocks.push({ type: "table", table: table2, pageNumber: sheetIndex + 1 });
|
|
19522
19522
|
return blocks;
|
|
19523
19523
|
}
|
|
19524
19524
|
|
|
19525
19525
|
// src/xlsx/parser.ts
|
|
19526
19526
|
var MAX_SHEETS = 100;
|
|
19527
|
-
var MAX_DECOMPRESS_SIZE4 =
|
|
19527
|
+
var MAX_DECOMPRESS_SIZE4 = _chunkMCUX2Y2Ccjs.unzipLimitBytes.call(void 0, 100 * 1024 * 1024);
|
|
19528
19528
|
var MAX_SHEET_ROWS = 1048576;
|
|
19529
19529
|
function cleanNumericValue(raw) {
|
|
19530
19530
|
if (!/^-?\d+\.\d+$/.test(raw)) return raw;
|
|
@@ -19561,7 +19561,7 @@ function getTextContent(el) {
|
|
|
19561
19561
|
return _nullishCoalesce(_optionalChain([el, 'access', _266 => _266.textContent, 'optionalAccess', _267 => _267.trim, 'call', _268 => _268()]), () => ( ""));
|
|
19562
19562
|
}
|
|
19563
19563
|
function parseXml(text) {
|
|
19564
|
-
return new (0, _xmldom.DOMParser)().parseFromString(
|
|
19564
|
+
return new (0, _xmldom.DOMParser)().parseFromString(_chunkMCUX2Y2Ccjs.stripDtd.call(void 0, text), "text/xml");
|
|
19565
19565
|
}
|
|
19566
19566
|
function collectRichText(root) {
|
|
19567
19567
|
let out = "";
|
|
@@ -19572,7 +19572,7 @@ function collectRichText(root) {
|
|
|
19572
19572
|
const el = children[i];
|
|
19573
19573
|
const local = el.localName || _optionalChain([el, 'access', _269 => _269.tagName, 'optionalAccess', _270 => _270.replace, 'call', _271 => _271(/^[^:]+:/, "")]) || "";
|
|
19574
19574
|
if (local === "rPh") continue;
|
|
19575
|
-
if (local === "t") out +=
|
|
19575
|
+
if (local === "t") out += _chunkT7PN5D4Dcjs.escapeLiteralTags.call(void 0, _chunkT7PN5D4Dcjs.escapeLiteralDollar.call(void 0, _nullishCoalesce(el.textContent, () => ( ""))));
|
|
19576
19576
|
else walk(el);
|
|
19577
19577
|
}
|
|
19578
19578
|
};
|
|
@@ -19783,12 +19783,12 @@ function parseWorksheet(xml, sharedStrings, dateXfs, date1904) {
|
|
|
19783
19783
|
return { rows, merges, maxCol };
|
|
19784
19784
|
}
|
|
19785
19785
|
async function parseXlsxDocument(buffer, options) {
|
|
19786
|
-
|
|
19786
|
+
_chunkMCUX2Y2Ccjs.precheckZipSize.call(void 0, buffer, MAX_DECOMPRESS_SIZE4);
|
|
19787
19787
|
const zip = await _jszip2.default.loadAsync(buffer);
|
|
19788
19788
|
const warnings = [];
|
|
19789
19789
|
const workbookFile = zip.file("xl/workbook.xml");
|
|
19790
19790
|
if (!workbookFile) {
|
|
19791
|
-
throw new (0,
|
|
19791
|
+
throw new (0, _chunkMCUX2Y2Ccjs.KordocError)("\uC720\uD6A8\uD558\uC9C0 \uC54A\uC740 XLSX \uD30C\uC77C: xl/workbook.xml\uC774 \uC5C6\uC2B5\uB2C8\uB2E4");
|
|
19792
19792
|
}
|
|
19793
19793
|
let sharedStrings = [];
|
|
19794
19794
|
const ssFile = zip.file("xl/sharedStrings.xml");
|
|
@@ -19797,7 +19797,7 @@ async function parseXlsxDocument(buffer, options) {
|
|
|
19797
19797
|
}
|
|
19798
19798
|
const { sheets, date1904 } = parseWorkbook(await workbookFile.async("text"));
|
|
19799
19799
|
if (sheets.length === 0) {
|
|
19800
|
-
throw new (0,
|
|
19800
|
+
throw new (0, _chunkMCUX2Y2Ccjs.KordocError)("XLSX \uD30C\uC77C\uC5D0 \uC2DC\uD2B8\uAC00 \uC5C6\uC2B5\uB2C8\uB2E4");
|
|
19801
19801
|
}
|
|
19802
19802
|
let dateXfs = /* @__PURE__ */ new Map();
|
|
19803
19803
|
const stylesFile = zip.file("xl/styles.xml");
|
|
@@ -19881,7 +19881,7 @@ async function parseXlsxDocument(buffer, options) {
|
|
|
19881
19881
|
} catch (e35) {
|
|
19882
19882
|
}
|
|
19883
19883
|
}
|
|
19884
|
-
const markdown =
|
|
19884
|
+
const markdown = _chunkT7PN5D4Dcjs.blocksToMarkdown.call(void 0, blocks, { tableFormat: _optionalChain([options, 'optionalAccess', _276 => _276.tableFormat]) });
|
|
19885
19885
|
return { markdown, blocks, metadata, warnings: warnings.length > 0 ? warnings : void 0 };
|
|
19886
19886
|
}
|
|
19887
19887
|
|
|
@@ -20195,14 +20195,14 @@ function extractSheetCells(records, bofIndex, sst, convertNum) {
|
|
|
20195
20195
|
const h = readCellHeader(rec.data);
|
|
20196
20196
|
if (h && rec.data.length >= 10) {
|
|
20197
20197
|
const isst = rec.data.readUInt32LE(6);
|
|
20198
|
-
cells.push({ row: h.row, col: h.col, value:
|
|
20198
|
+
cells.push({ row: h.row, col: h.col, value: _chunkT7PN5D4Dcjs.escapeLiteralTags.call(void 0, _chunkT7PN5D4Dcjs.escapeLiteralDollar.call(void 0, _nullishCoalesce(sst[isst], () => ( "")))) });
|
|
20199
20199
|
}
|
|
20200
20200
|
break;
|
|
20201
20201
|
}
|
|
20202
20202
|
case OP_LABEL: {
|
|
20203
20203
|
const h = readCellHeader(rec.data);
|
|
20204
20204
|
if (h) {
|
|
20205
|
-
cells.push({ row: h.row, col: h.col, value:
|
|
20205
|
+
cells.push({ row: h.row, col: h.col, value: _chunkT7PN5D4Dcjs.escapeLiteralTags.call(void 0, _chunkT7PN5D4Dcjs.escapeLiteralDollar.call(void 0, decodeLabelString(rec.data))) });
|
|
20206
20206
|
}
|
|
20207
20207
|
break;
|
|
20208
20208
|
}
|
|
@@ -20218,7 +20218,7 @@ function extractSheetCells(records, bofIndex, sst, convertNum) {
|
|
|
20218
20218
|
cells.push({
|
|
20219
20219
|
row: h.row,
|
|
20220
20220
|
col: h.col,
|
|
20221
|
-
value:
|
|
20221
|
+
value: _chunkT7PN5D4Dcjs.escapeLiteralTags.call(void 0, _chunkT7PN5D4Dcjs.escapeLiteralDollar.call(void 0, decodeFormulaStringRecord(next.data)))
|
|
20222
20222
|
});
|
|
20223
20223
|
i = j;
|
|
20224
20224
|
} else {
|
|
@@ -20330,11 +20330,11 @@ function processGlobals(records) {
|
|
|
20330
20330
|
const xfFmtIds = [];
|
|
20331
20331
|
const firstBof = records[0];
|
|
20332
20332
|
if (!firstBof || firstBof.opcode !== OP_BOF) {
|
|
20333
|
-
throw new (0,
|
|
20333
|
+
throw new (0, _chunkMCUX2Y2Ccjs.KordocError)("XLS: \uCCAB \uB808\uCF54\uB4DC\uAC00 BOF\uAC00 \uC544\uB2D8");
|
|
20334
20334
|
}
|
|
20335
20335
|
const bof = decodeBof(firstBof.data);
|
|
20336
20336
|
if (!bof || bof.dt !== DT_GLOBALS) {
|
|
20337
|
-
throw new (0,
|
|
20337
|
+
throw new (0, _chunkMCUX2Y2Ccjs.KordocError)("XLS: Globals \uC11C\uBE0C\uC2A4\uD2B8\uB9BC BOF \uB204\uB77D");
|
|
20338
20338
|
}
|
|
20339
20339
|
let i = 1;
|
|
20340
20340
|
while (i < records.length) {
|
|
@@ -20418,28 +20418,28 @@ async function parseXlsDocument(buffer, options) {
|
|
|
20418
20418
|
try {
|
|
20419
20419
|
cfb = parseLenientCfb(buf);
|
|
20420
20420
|
} catch (e) {
|
|
20421
|
-
throw new (0,
|
|
20421
|
+
throw new (0, _chunkMCUX2Y2Ccjs.KordocError)(
|
|
20422
20422
|
`XLS: OLE2 \uC2DC\uADF8\uB2C8\uCC98 \uAC80\uC99D \uC2E4\uD328 \u2014 ${e instanceof Error ? e.message : "\uC54C \uC218 \uC5C6\uB294 \uC624\uB958"}`
|
|
20423
20423
|
);
|
|
20424
20424
|
}
|
|
20425
20425
|
const wb = _nullishCoalesce(cfb.findStream("/Workbook"), () => ( cfb.findStream("/Book")));
|
|
20426
20426
|
if (!wb) {
|
|
20427
|
-
throw new (0,
|
|
20427
|
+
throw new (0, _chunkMCUX2Y2Ccjs.KordocError)("XLS: Workbook \uC2A4\uD2B8\uB9BC\uC774 \uC5C6\uC74C (BIFF5 \uB610\uB294 \uBE44\uD45C\uC900 \uD30C\uC77C)");
|
|
20428
20428
|
}
|
|
20429
20429
|
const records = readRecords2(wb);
|
|
20430
20430
|
if (records.length === 0) {
|
|
20431
|
-
throw new (0,
|
|
20431
|
+
throw new (0, _chunkMCUX2Y2Ccjs.KordocError)("XLS: \uC2DC\uADF8\uB2C8\uCC98 \uB808\uCF54\uB4DC\uAC00 \uC5C6\uC74C (Workbook \uC2A4\uD2B8\uB9BC \uC190\uC0C1)");
|
|
20432
20432
|
}
|
|
20433
20433
|
const firstBof = decodeBof(records[0].data);
|
|
20434
20434
|
if (firstBof && firstBof.vers !== 1536) {
|
|
20435
|
-
throw new (0,
|
|
20435
|
+
throw new (0, _chunkMCUX2Y2Ccjs.KordocError)(
|
|
20436
20436
|
`XLS: BIFF8(0x0600)\uB9CC \uC9C0\uC6D0 \u2014 \uBCF8 \uD30C\uC77C\uC740 0x${firstBof.vers.toString(16)}`
|
|
20437
20437
|
);
|
|
20438
20438
|
}
|
|
20439
20439
|
const globals = processGlobals(records);
|
|
20440
20440
|
const warnings = [];
|
|
20441
20441
|
if (globals.encrypted) {
|
|
20442
|
-
throw new (0,
|
|
20442
|
+
throw new (0, _chunkMCUX2Y2Ccjs.KordocError)("XLS \uD30C\uC77C\uC774 \uC554\uD638\uD654\uB418\uC5B4 \uC788\uC5B4 \uD30C\uC2F1\uD560 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4");
|
|
20443
20443
|
}
|
|
20444
20444
|
const convertNum = globals.dateXfs.size > 0 ? (n, ixfe) => {
|
|
20445
20445
|
const kind = globals.dateXfs.get(ixfe);
|
|
@@ -20490,7 +20490,7 @@ async function parseXlsDocument(buffer, options) {
|
|
|
20490
20490
|
pageCount: totalSheets
|
|
20491
20491
|
};
|
|
20492
20492
|
return {
|
|
20493
|
-
markdown:
|
|
20493
|
+
markdown: _chunkT7PN5D4Dcjs.blocksToMarkdown.call(void 0, allBlocks, { tableFormat: _optionalChain([options, 'optionalAccess', _281 => _281.tableFormat]) }),
|
|
20494
20494
|
blocks: allBlocks,
|
|
20495
20495
|
metadata,
|
|
20496
20496
|
warnings: warnings.length > 0 ? warnings : void 0
|
|
@@ -20929,7 +20929,7 @@ function isDisplayMath(el) {
|
|
|
20929
20929
|
}
|
|
20930
20930
|
|
|
20931
20931
|
// src/docx/parser.ts
|
|
20932
|
-
var MAX_DECOMPRESS_SIZE5 =
|
|
20932
|
+
var MAX_DECOMPRESS_SIZE5 = _chunkMCUX2Y2Ccjs.unzipLimitBytes.call(void 0, 100 * 1024 * 1024);
|
|
20933
20933
|
var MEDIA_PART_RE = /^word\/(?:media|embeddings)\//;
|
|
20934
20934
|
var NEVER_READ_RE = /^word\/(?:embeddings\/.*|media\/.+\.(?:mp4|m4v|mov|avi|wmv|mpe?g|mkv|webm|mp3|wav|m4a|wma|aac|ogg|flac|mid|bin))$/i;
|
|
20935
20935
|
function matchesLocal(el, localName3) {
|
|
@@ -20987,7 +20987,7 @@ function getAttr(el, localName3) {
|
|
|
20987
20987
|
return null;
|
|
20988
20988
|
}
|
|
20989
20989
|
function parseXml2(text) {
|
|
20990
|
-
return new (0, _xmldom.DOMParser)().parseFromString(
|
|
20990
|
+
return new (0, _xmldom.DOMParser)().parseFromString(_chunkMCUX2Y2Ccjs.stripDtd.call(void 0, text), "text/xml");
|
|
20991
20991
|
}
|
|
20992
20992
|
function parseStyles(xml) {
|
|
20993
20993
|
const doc = parseXml2(xml);
|
|
@@ -21123,7 +21123,7 @@ function parseFootnotes(xml) {
|
|
|
21123
21123
|
const runs = findElements(p, "r");
|
|
21124
21124
|
for (const r of runs) {
|
|
21125
21125
|
const tElements = getChildElements(r, "t");
|
|
21126
|
-
for (const t of tElements) texts.push(
|
|
21126
|
+
for (const t of tElements) texts.push(_chunkT7PN5D4Dcjs.escapeLiteralTags.call(void 0, _chunkT7PN5D4Dcjs.escapeLiteralDollar.call(void 0, _nullishCoalesce(t.textContent, () => ( "")))));
|
|
21127
21127
|
}
|
|
21128
21128
|
}
|
|
21129
21129
|
notes.set(id, texts.join("").trim());
|
|
@@ -21154,7 +21154,7 @@ function collectOmmlRoots(p) {
|
|
|
21154
21154
|
function extractRun(r) {
|
|
21155
21155
|
let text = "";
|
|
21156
21156
|
for (const el of effectiveChildElements(r)) {
|
|
21157
|
-
if (matchesLocal(el, "t")) text +=
|
|
21157
|
+
if (matchesLocal(el, "t")) text += _chunkT7PN5D4Dcjs.escapeLiteralTags.call(void 0, _chunkT7PN5D4Dcjs.escapeLiteralDollar.call(void 0, _nullishCoalesce(el.textContent, () => ( ""))));
|
|
21158
21158
|
else if (matchesLocal(el, "br") || matchesLocal(el, "cr")) text += "\n";
|
|
21159
21159
|
else if (matchesLocal(el, "tab")) text += " ";
|
|
21160
21160
|
else if (matchesLocal(el, "sym")) text += symbolChar(getAttr(el, "font"), getAttr(el, "char"));
|
|
@@ -21167,7 +21167,7 @@ function extractRun(r) {
|
|
|
21167
21167
|
italic = getChildElements(rPrEls[0], "i").length > 0;
|
|
21168
21168
|
const va = getChildElements(rPrEls[0], "vertAlign")[0];
|
|
21169
21169
|
const v = va ? getAttr(va, "val") : null;
|
|
21170
|
-
if (v === "superscript" || v === "subscript") text =
|
|
21170
|
+
if (v === "superscript" || v === "subscript") text = _chunkT7PN5D4Dcjs.wrapScript.call(void 0, text, v === "superscript" ? "sup" : "sub");
|
|
21171
21171
|
}
|
|
21172
21172
|
return { text, bold, italic };
|
|
21173
21173
|
}
|
|
@@ -21185,7 +21185,7 @@ var PAGE_FIELD_RE = /^\s*(?:PAGE|NUMPAGES|SECTIONPAGES)\b/i;
|
|
|
21185
21185
|
function makeLink(text, rawHref) {
|
|
21186
21186
|
if (!text) return "";
|
|
21187
21187
|
if (!rawHref) return text;
|
|
21188
|
-
const href =
|
|
21188
|
+
const href = _chunkMCUX2Y2Ccjs.sanitizeHref.call(void 0, rawHref);
|
|
21189
21189
|
return href ? `[${text}](${href})` : text;
|
|
21190
21190
|
}
|
|
21191
21191
|
function collectInline(p, footnotes, rels) {
|
|
@@ -21276,7 +21276,7 @@ function collectInline(p, footnotes, rels) {
|
|
|
21276
21276
|
const m = mathText(om);
|
|
21277
21277
|
if (m) parts.push(isDisplayMath(om) ? m : " " + m + " ");
|
|
21278
21278
|
}
|
|
21279
|
-
const text =
|
|
21279
|
+
const text = _chunkT7PN5D4Dcjs.tidyScriptTags.call(void 0, parts.join("")).replace(/[ \t]{2,}/g, " ").trim();
|
|
21280
21280
|
return { text, bold, italic, footnoteText };
|
|
21281
21281
|
}
|
|
21282
21282
|
var COUNTERS = /* @__PURE__ */ new WeakMap();
|
|
@@ -21401,7 +21401,7 @@ ${cell2.text}` : cell2.text;
|
|
|
21401
21401
|
return { text: cell2.text, colSpan: cell2.colSpan, rowSpan, colAddr: cell2.col, rowAddr: r };
|
|
21402
21402
|
})
|
|
21403
21403
|
);
|
|
21404
|
-
const table2 =
|
|
21404
|
+
const table2 = _chunkT7PN5D4Dcjs.buildTable.call(void 0, cellRows, { keepAnchoredEmptyCols: keepEmptyCols });
|
|
21405
21405
|
if (table2.rows === 0 || table2.cols === 0) return null;
|
|
21406
21406
|
return { type: "table", table: table2 };
|
|
21407
21407
|
}
|
|
@@ -21450,7 +21450,7 @@ async function buildImageMap(zip, rels, doc, warnings, readBytes) {
|
|
|
21450
21450
|
let data = null;
|
|
21451
21451
|
if (readBytes) data = await imgFile.async("uint8array");
|
|
21452
21452
|
imgIdx++;
|
|
21453
|
-
const ext =
|
|
21453
|
+
const ext = _chunkMCUX2Y2Ccjs.partExtension.call(void 0, imgPath);
|
|
21454
21454
|
const mimeMap = {
|
|
21455
21455
|
png: "image/png",
|
|
21456
21456
|
jpg: "image/jpeg",
|
|
@@ -21549,12 +21549,12 @@ async function parseHeaderFooterBlocks(zip, doc, rels, kind, styles, numbering,
|
|
|
21549
21549
|
}
|
|
21550
21550
|
async function parseDocxDocument(buffer, options) {
|
|
21551
21551
|
const readImages = _optionalChain([options, 'optionalAccess', _317 => _317.images]) !== false;
|
|
21552
|
-
|
|
21552
|
+
_chunkMCUX2Y2Ccjs.precheckZipSize.call(void 0, buffer, MAX_DECOMPRESS_SIZE5, void 0, { re: MEDIA_PART_RE, skip: !readImages, never: NEVER_READ_RE });
|
|
21553
21553
|
const zip = await _jszip2.default.loadAsync(buffer);
|
|
21554
21554
|
const warnings = [];
|
|
21555
21555
|
const docFile = zip.file("word/document.xml");
|
|
21556
21556
|
if (!docFile) {
|
|
21557
|
-
throw new (0,
|
|
21557
|
+
throw new (0, _chunkMCUX2Y2Ccjs.KordocError)("\uC720\uD6A8\uD558\uC9C0 \uC54A\uC740 DOCX \uD30C\uC77C: word/document.xml\uC774 \uC5C6\uC2B5\uB2C8\uB2E4");
|
|
21558
21558
|
}
|
|
21559
21559
|
let rels = /* @__PURE__ */ new Map();
|
|
21560
21560
|
const relsFile = zip.file("word/_rels/document.xml.rels");
|
|
@@ -21601,7 +21601,7 @@ async function parseDocxDocument(buffer, options) {
|
|
|
21601
21601
|
const doc = parseXml2(docXml);
|
|
21602
21602
|
const body = findElements(doc, "body");
|
|
21603
21603
|
if (body.length === 0) {
|
|
21604
|
-
throw new (0,
|
|
21604
|
+
throw new (0, _chunkMCUX2Y2Ccjs.KordocError)("DOCX \uBCF8\uBB38(w:body)\uC744 \uCC3E\uC744 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4");
|
|
21605
21605
|
}
|
|
21606
21606
|
const { imageMap, images } = await buildImageMap(zip, rels, doc, warnings, readImages);
|
|
21607
21607
|
const linkedImages = /* @__PURE__ */ new Set();
|
|
@@ -21654,7 +21654,7 @@ async function parseDocxDocument(buffer, options) {
|
|
|
21654
21654
|
}
|
|
21655
21655
|
}
|
|
21656
21656
|
const outline = blocks.filter((b) => b.type === "heading").map((b) => ({ level: _nullishCoalesce(b.level, () => ( 2)), text: _nullishCoalesce(b.text, () => ( "")) }));
|
|
21657
|
-
const markdown =
|
|
21657
|
+
const markdown = _chunkT7PN5D4Dcjs.blocksToMarkdown.call(void 0, blocks, { tableFormat: _optionalChain([options, 'optionalAccess', _324 => _324.tableFormat]) });
|
|
21658
21658
|
return {
|
|
21659
21659
|
markdown,
|
|
21660
21660
|
blocks,
|
|
@@ -21668,7 +21668,7 @@ async function parseDocxDocument(buffer, options) {
|
|
|
21668
21668
|
// src/pptx/parser.ts
|
|
21669
21669
|
|
|
21670
21670
|
|
|
21671
|
-
var MAX_DECOMPRESS_SIZE6 =
|
|
21671
|
+
var MAX_DECOMPRESS_SIZE6 = _chunkMCUX2Y2Ccjs.unzipLimitBytes.call(void 0, 100 * 1024 * 1024);
|
|
21672
21672
|
var MEDIA_PART_RE2 = /^ppt\/(?:media|embeddings)\//;
|
|
21673
21673
|
var NEVER_READ_RE2 = /^ppt\/(?:embeddings\/.*|media\/.+\.(?:mp4|m4v|mov|avi|wmv|mpe?g|mkv|webm|mp3|wav|m4a|wma|aac|ogg|flac|mid|bin))$/i;
|
|
21674
21674
|
var MAX_ZIP_ENTRIES2 = 1e4;
|
|
@@ -21691,7 +21691,7 @@ var IMAGE_MIME = {
|
|
|
21691
21691
|
svg: "image/svg+xml"
|
|
21692
21692
|
};
|
|
21693
21693
|
function parseXml3(text) {
|
|
21694
|
-
return new (0, _xmldom.DOMParser)().parseFromString(
|
|
21694
|
+
return new (0, _xmldom.DOMParser)().parseFromString(_chunkMCUX2Y2Ccjs.stripDtd.call(void 0, text), "text/xml");
|
|
21695
21695
|
}
|
|
21696
21696
|
function getAttr2(el, name) {
|
|
21697
21697
|
const attrs = el.attributes;
|
|
@@ -21758,7 +21758,7 @@ async function slideParts(zip) {
|
|
|
21758
21758
|
names.sort((a, b) => Number(SLIDE_PART_RE.exec(a)[1]) - Number(SLIDE_PART_RE.exec(b)[1]));
|
|
21759
21759
|
ordered.push(...names);
|
|
21760
21760
|
}
|
|
21761
|
-
if (ordered.length > MAX_SLIDES) throw new (0,
|
|
21761
|
+
if (ordered.length > MAX_SLIDES) throw new (0, _chunkMCUX2Y2Ccjs.KordocError)(`PPTX \uC2AC\uB77C\uC774\uB4DC \uC218 \uCD08\uACFC: ${ordered.length} (\uCD5C\uB300 ${MAX_SLIDES})`);
|
|
21762
21762
|
return ordered;
|
|
21763
21763
|
}
|
|
21764
21764
|
function paragraphText(p) {
|
|
@@ -21769,12 +21769,12 @@ function paragraphText(p) {
|
|
|
21769
21769
|
const t = findChildByLocalName(child, "t");
|
|
21770
21770
|
const rPr = findChildByLocalName(child, "rPr");
|
|
21771
21771
|
const baseline = Number(rPr ? _nullishCoalesce(getAttr2(rPr, "baseline"), () => ( 0)) : 0);
|
|
21772
|
-
if (t) text +=
|
|
21772
|
+
if (t) text += _chunkT7PN5D4Dcjs.wrapScript.call(void 0, _chunkT7PN5D4Dcjs.escapeLiteralTags.call(void 0, _chunkT7PN5D4Dcjs.escapeLiteralDollar.call(void 0, rawTextContent(t))), baseline > 0 ? "sup" : baseline < 0 ? "sub" : null);
|
|
21773
21773
|
} else if (name === "br") {
|
|
21774
21774
|
text += " ";
|
|
21775
21775
|
}
|
|
21776
21776
|
}
|
|
21777
|
-
return
|
|
21777
|
+
return _chunkT7PN5D4Dcjs.tidyScriptTags.call(void 0, text.replace(/\s+/g, " ").trim());
|
|
21778
21778
|
}
|
|
21779
21779
|
function bodyParagraphs(txBody) {
|
|
21780
21780
|
const out = [];
|
|
@@ -21835,7 +21835,7 @@ function parseTable2(tbl2, page, keepEmptyCols) {
|
|
|
21835
21835
|
});
|
|
21836
21836
|
return cells;
|
|
21837
21837
|
});
|
|
21838
|
-
const table2 =
|
|
21838
|
+
const table2 = _chunkT7PN5D4Dcjs.buildTable.call(void 0, cellRows, { keepAnchoredEmptyCols: keepEmptyCols });
|
|
21839
21839
|
if (table2.rows === 0 || table2.cols === 0) return null;
|
|
21840
21840
|
return { type: "table", table: table2, pageNumber: page };
|
|
21841
21841
|
}
|
|
@@ -21848,7 +21848,7 @@ async function pictureBlock(pic, ctx) {
|
|
|
21848
21848
|
if (!filename) {
|
|
21849
21849
|
const file = ctx.zip.file(rel.target);
|
|
21850
21850
|
if (!file) return null;
|
|
21851
|
-
const ext =
|
|
21851
|
+
const ext = _chunkMCUX2Y2Ccjs.partExtension.call(void 0, rel.target);
|
|
21852
21852
|
filename = `image_${String(ctx.imageNames.size + 1).padStart(3, "0")}.${ext}`;
|
|
21853
21853
|
try {
|
|
21854
21854
|
if (_optionalChain([ctx, 'access', _328 => _328.options, 'optionalAccess', _329 => _329.images]) !== false) {
|
|
@@ -21926,10 +21926,10 @@ async function notesText(zip, rels) {
|
|
|
21926
21926
|
return texts.join(" ");
|
|
21927
21927
|
}
|
|
21928
21928
|
async function parsePptxDocument(buffer, options) {
|
|
21929
|
-
|
|
21929
|
+
_chunkMCUX2Y2Ccjs.precheckZipSize.call(void 0, buffer, MAX_DECOMPRESS_SIZE6, MAX_ZIP_ENTRIES2, { re: MEDIA_PART_RE2, skip: _optionalChain([options, 'optionalAccess', _332 => _332.images]) === false, never: NEVER_READ_RE2 });
|
|
21930
21930
|
const zip = await _jszip2.default.loadAsync(buffer);
|
|
21931
21931
|
if (!zip.file("ppt/presentation.xml")) {
|
|
21932
|
-
throw new (0,
|
|
21932
|
+
throw new (0, _chunkMCUX2Y2Ccjs.KordocError)("\uC720\uD6A8\uD558\uC9C0 \uC54A\uC740 PPTX \uD30C\uC77C: ppt/presentation.xml\uC774 \uC5C6\uC2B5\uB2C8\uB2E4");
|
|
21933
21933
|
}
|
|
21934
21934
|
const warnings = [];
|
|
21935
21935
|
const blocks = [];
|
|
@@ -21976,7 +21976,7 @@ async function parsePptxDocument(buffer, options) {
|
|
|
21976
21976
|
}
|
|
21977
21977
|
const outline = blocks.filter((b) => b.type === "heading").map((b) => ({ level: _nullishCoalesce(b.level, () => ( 2)), text: _nullishCoalesce(b.text, () => ( "")), pageNumber: b.pageNumber }));
|
|
21978
21978
|
return {
|
|
21979
|
-
markdown:
|
|
21979
|
+
markdown: _chunkT7PN5D4Dcjs.blocksToMarkdown.call(void 0, blocks, { tableFormat: _optionalChain([options, 'optionalAccess', _334 => _334.tableFormat]) }),
|
|
21980
21980
|
blocks,
|
|
21981
21981
|
metadata,
|
|
21982
21982
|
outline: outline.length > 0 ? outline : void 0,
|
|
@@ -21992,11 +21992,11 @@ var MAX_TABLE_COLS = 500;
|
|
|
21992
21992
|
var MAX_HWPML_BYTES = 50 * 1024 * 1024;
|
|
21993
21993
|
function parseHwpmlDocument(buffer, options) {
|
|
21994
21994
|
if (buffer.byteLength > MAX_HWPML_BYTES) {
|
|
21995
|
-
throw new (0,
|
|
21995
|
+
throw new (0, _chunkMCUX2Y2Ccjs.KordocError)(`HWPML \uD30C\uC77C \uD06C\uAE30 \uCD08\uACFC (${(buffer.byteLength / 1024 / 1024).toFixed(1)}MB > 50MB)`);
|
|
21996
21996
|
}
|
|
21997
21997
|
const text = new TextDecoder("utf-8").decode(buffer).replace(/^\uFEFF/, "");
|
|
21998
21998
|
const normalized = text.replace(/ /g, " ");
|
|
21999
|
-
const xml =
|
|
21999
|
+
const xml = _chunkMCUX2Y2Ccjs.stripDtd.call(void 0, normalized);
|
|
22000
22000
|
const warnings = [];
|
|
22001
22001
|
const parser = new (0, _xmldom.DOMParser)({
|
|
22002
22002
|
onError: (_level, msg2) => {
|
|
@@ -22036,7 +22036,7 @@ function parseHwpmlDocument(buffer, options) {
|
|
|
22036
22036
|
parseSection2(el, blocks, paraShapeMap, sectionIdx, warnings, _nullishCoalesce(_optionalChain([options, 'optionalAccess', _336 => _336.keepTrailingEmptyCols]), () => ( false)));
|
|
22037
22037
|
}
|
|
22038
22038
|
const outline = blocks.filter((b) => b.type === "heading" && b.text).map((b) => ({ level: _nullishCoalesce(b.level, () => ( 1)), text: b.text, pageNumber: b.pageNumber }));
|
|
22039
|
-
const markdown =
|
|
22039
|
+
const markdown = _chunkT7PN5D4Dcjs.blocksToMarkdown.call(void 0, blocks, { tableFormat: _optionalChain([options, 'optionalAccess', _337 => _337.tableFormat]) });
|
|
22040
22040
|
return {
|
|
22041
22041
|
markdown,
|
|
22042
22042
|
blocks,
|
|
@@ -22143,7 +22143,7 @@ function collectCharText(node, parts, depth = 0) {
|
|
|
22143
22143
|
if (tag === "CHAR") {
|
|
22144
22144
|
for (const c of Array.from(el.childNodes)) {
|
|
22145
22145
|
const t = c.nodeType === 1 ? localName(c) === "TAB" ? " " : rawTextContent(c) : c.nodeType === 3 || c.nodeType === 4 ? _nullishCoalesce(c.nodeValue, () => ( "")) : "";
|
|
22146
|
-
if (t) parts.push(
|
|
22146
|
+
if (t) parts.push(_chunkT7PN5D4Dcjs.escapeLiteralTags.call(void 0, t));
|
|
22147
22147
|
}
|
|
22148
22148
|
} else if (tag === "TABLE" || tag === "PICTURE" || tag === "SHAPEOBJECT") {
|
|
22149
22149
|
} else if (tag === "AUTONUM") {
|
|
@@ -22203,7 +22203,7 @@ function buildHmlTable(el, warnings, keep, tableDepth) {
|
|
|
22203
22203
|
const r = Math.min(Math.max(_nullishCoalesce(cell2.rowAddr, () => ( 0)), 0), rowCount - 1);
|
|
22204
22204
|
cellRows[r].push(cell2);
|
|
22205
22205
|
}
|
|
22206
|
-
const table2 =
|
|
22206
|
+
const table2 = _chunkT7PN5D4Dcjs.buildTable.call(void 0, cellRows, { keepAnchoredEmptyCols: keep });
|
|
22207
22207
|
if (structured.length > 0) {
|
|
22208
22208
|
const claimed = /* @__PURE__ */ new Set();
|
|
22209
22209
|
for (const { ctx, cellBlocks } of structured) {
|
|
@@ -23832,7 +23832,7 @@ function fillClickHereInXml(xml, cursor, blockedLabels) {
|
|
|
23832
23832
|
};
|
|
23833
23833
|
}
|
|
23834
23834
|
async function extractClickHereFields(hwpxBuffer) {
|
|
23835
|
-
|
|
23835
|
+
_chunkMCUX2Y2Ccjs.precheckZipSize.call(void 0, hwpxBuffer);
|
|
23836
23836
|
const zip = await _jszip2.default.loadAsync(hwpxBuffer);
|
|
23837
23837
|
const sectionPaths = Object.keys(zip.files).filter((name) => /[Ss]ection\d+\.xml$/i.test(name)).sort();
|
|
23838
23838
|
const fields = [];
|
|
@@ -23868,7 +23868,7 @@ function readZipEntries(buf) {
|
|
|
23868
23868
|
}
|
|
23869
23869
|
function localDataStart(view, localOffset) {
|
|
23870
23870
|
if (view.getUint32(localOffset, true) !== LOCAL_SIG) {
|
|
23871
|
-
throw new (0,
|
|
23871
|
+
throw new (0, _chunkMCUX2Y2Ccjs.KordocError)("ZIP \uB85C\uCEEC \uD5E4\uB354 \uC2DC\uADF8\uB2C8\uCC98 \uBD88\uC77C\uCE58");
|
|
23872
23872
|
}
|
|
23873
23873
|
const nameLen = view.getUint16(localOffset + 26, true);
|
|
23874
23874
|
const extraLen = view.getUint16(localOffset + 28, true);
|
|
@@ -23898,19 +23898,19 @@ function parseCentralDirectory(buf) {
|
|
|
23898
23898
|
}
|
|
23899
23899
|
}
|
|
23900
23900
|
}
|
|
23901
|
-
if (eocdOffset < 0) throw new (0,
|
|
23901
|
+
if (eocdOffset < 0) throw new (0, _chunkMCUX2Y2Ccjs.KordocError)("ZIP EOCD\uB97C \uCC3E\uC744 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4");
|
|
23902
23902
|
const totalEntries = view.getUint16(eocdOffset + 10, true);
|
|
23903
23903
|
const cdSize = view.getUint32(eocdOffset + 12, true);
|
|
23904
23904
|
const cdOffset = view.getUint32(eocdOffset + 16, true);
|
|
23905
|
-
if (cdOffset === 4294967295 || totalEntries === 65535) throw new (0,
|
|
23905
|
+
if (cdOffset === 4294967295 || totalEntries === 65535) throw new (0, _chunkMCUX2Y2Ccjs.KordocError)("ZIP64\uB294 \uC9C0\uC6D0\uD558\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4");
|
|
23906
23906
|
if (eocdOffset >= 20 && view.getUint32(eocdOffset - 20, true) === ZIP64_EOCD_LOC_SIG) {
|
|
23907
|
-
throw new (0,
|
|
23907
|
+
throw new (0, _chunkMCUX2Y2Ccjs.KordocError)("ZIP64\uB294 \uC9C0\uC6D0\uD558\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4");
|
|
23908
23908
|
}
|
|
23909
23909
|
const decoder = new TextDecoder("utf-8");
|
|
23910
23910
|
const entries = [];
|
|
23911
23911
|
let pos = cdOffset;
|
|
23912
23912
|
for (let i = 0; i < totalEntries; i++) {
|
|
23913
|
-
if (view.getUint32(pos, true) !== CD_SIG) throw new (0,
|
|
23913
|
+
if (view.getUint32(pos, true) !== CD_SIG) throw new (0, _chunkMCUX2Y2Ccjs.KordocError)("ZIP Central Directory \uC190\uC0C1");
|
|
23914
23914
|
const flags = view.getUint16(pos + 8, true);
|
|
23915
23915
|
const method = view.getUint16(pos + 10, true);
|
|
23916
23916
|
const crc = view.getUint32(pos + 16, true);
|
|
@@ -23921,7 +23921,7 @@ function parseCentralDirectory(buf) {
|
|
|
23921
23921
|
const commentLen = view.getUint16(pos + 32, true);
|
|
23922
23922
|
const localOffset = view.getUint32(pos + 42, true);
|
|
23923
23923
|
if (compSize === 4294967295 || uncompSize === 4294967295 || localOffset === 4294967295) {
|
|
23924
|
-
throw new (0,
|
|
23924
|
+
throw new (0, _chunkMCUX2Y2Ccjs.KordocError)("ZIP64\uB294 \uC9C0\uC6D0\uD558\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4");
|
|
23925
23925
|
}
|
|
23926
23926
|
const name = decoder.decode(buf.subarray(pos + 46, pos + 46 + nameLen));
|
|
23927
23927
|
const cdEnd = pos + 46 + nameLen + extraLen + commentLen;
|
|
@@ -23950,11 +23950,11 @@ function patchZipEntries(original, replacements, additions) {
|
|
|
23950
23950
|
const { entries, cdOffset, eocdOffset } = parseCentralDirectory(original);
|
|
23951
23951
|
const view = new DataView(original.buffer, original.byteOffset, original.byteLength);
|
|
23952
23952
|
for (const name of replacements.keys()) {
|
|
23953
|
-
if (!entries.some((e) => e.name === name)) throw new (0,
|
|
23953
|
+
if (!entries.some((e) => e.name === name)) throw new (0, _chunkMCUX2Y2Ccjs.KordocError)(`ZIP\uC5D0 \uC5C6\uB294 \uC5D4\uD2B8\uB9AC: ${name}`);
|
|
23954
23954
|
}
|
|
23955
23955
|
if (additions) {
|
|
23956
23956
|
for (const name of additions.keys()) {
|
|
23957
|
-
if (entries.some((e) => e.name === name)) throw new (0,
|
|
23957
|
+
if (entries.some((e) => e.name === name)) throw new (0, _chunkMCUX2Y2Ccjs.KordocError)(`ZIP\uC5D0 \uC774\uBBF8 \uC788\uB294 \uC5D4\uD2B8\uB9AC: ${name}`);
|
|
23958
23958
|
}
|
|
23959
23959
|
}
|
|
23960
23960
|
const byLocal = [...entries].sort((a, b) => a.localOffset - b.localOffset);
|
|
@@ -23973,7 +23973,7 @@ function patchZipEntries(original, replacements, additions) {
|
|
|
23973
23973
|
offset += seg.length;
|
|
23974
23974
|
continue;
|
|
23975
23975
|
}
|
|
23976
|
-
if (view.getUint32(e.localOffset, true) !== LOCAL_SIG) throw new (0,
|
|
23976
|
+
if (view.getUint32(e.localOffset, true) !== LOCAL_SIG) throw new (0, _chunkMCUX2Y2Ccjs.KordocError)("ZIP \uB85C\uCEEC \uD5E4\uB354 \uC2DC\uADF8\uB2C8\uCC98 \uBD88\uC77C\uCE58");
|
|
23977
23977
|
const nameLen = view.getUint16(e.localOffset + 26, true);
|
|
23978
23978
|
const extraLen = view.getUint16(e.localOffset + 28, true);
|
|
23979
23979
|
const headerLen = 30 + nameLen + extraLen;
|
|
@@ -23981,7 +23981,7 @@ function patchZipEntries(original, replacements, additions) {
|
|
|
23981
23981
|
const hview = new DataView(header.buffer, header.byteOffset, header.byteLength);
|
|
23982
23982
|
const method = e.method;
|
|
23983
23983
|
if (method !== 0 && method !== 8) {
|
|
23984
|
-
throw new (0,
|
|
23984
|
+
throw new (0, _chunkMCUX2Y2Ccjs.KordocError)(`\uC9C0\uC6D0\uD558\uC9C0 \uC54A\uB294 ZIP \uC555\uCD95 \uBC29\uC2DD(method=${method}): ${e.name} \u2014 STORE(0)/DEFLATE(8)\uB9CC \uAD50\uCCB4 \uAC00\uB2A5`);
|
|
23985
23985
|
}
|
|
23986
23986
|
const compData = method === 0 ? newData : new Uint8Array(_zlib.deflateRawSync.call(void 0, newData));
|
|
23987
23987
|
const crc = crc32(newData);
|
|
@@ -24080,11 +24080,11 @@ function patchZipEntries(original, replacements, additions) {
|
|
|
24080
24080
|
var ANNOTATION_BLANK_RE = /[((][^))]*[::]\s*[))]/;
|
|
24081
24081
|
async function fillHwpx(hwpxBuffer, values, blockedLabels) {
|
|
24082
24082
|
const u8 = new Uint8Array(hwpxBuffer);
|
|
24083
|
-
|
|
24083
|
+
_chunkMCUX2Y2Ccjs.precheckZipSize.call(void 0, hwpxBuffer);
|
|
24084
24084
|
const zip = await _jszip2.default.loadAsync(hwpxBuffer);
|
|
24085
24085
|
const sectionPaths = Object.keys(zip.files).filter((name) => /[Ss]ection\d+\.xml$/i.test(name)).sort();
|
|
24086
24086
|
if (sectionPaths.length === 0) {
|
|
24087
|
-
throw new (0,
|
|
24087
|
+
throw new (0, _chunkMCUX2Y2Ccjs.KordocError)("HWPX\uC5D0\uC11C \uC139\uC158 \uD30C\uC77C\uC744 \uCC3E\uC744 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4");
|
|
24088
24088
|
}
|
|
24089
24089
|
const warnings = [];
|
|
24090
24090
|
const normalizedValues = normalizeValues(values, warnings);
|
|
@@ -24608,7 +24608,7 @@ function classifyTableTree(blocks) {
|
|
|
24608
24608
|
return blocks;
|
|
24609
24609
|
}
|
|
24610
24610
|
function chooseTableRepresentation(table2, opts = {}) {
|
|
24611
|
-
const structured = hasMerged(table2) ||
|
|
24611
|
+
const structured = hasMerged(table2) || _chunkT7PN5D4Dcjs.hasStructuredCellContent.call(void 0, table2);
|
|
24612
24612
|
if (opts.smartVisual && _optionalChain([table2, 'access', _456 => _456.classification, 'optionalAccess', _457 => _457.kind]) === "non-tabular-layout") return "visual";
|
|
24613
24613
|
return structured ? "html" : "gfm";
|
|
24614
24614
|
}
|
|
@@ -26411,7 +26411,7 @@ function findAgency(name) {
|
|
|
26411
26411
|
}
|
|
26412
26412
|
function agencyStyle(name) {
|
|
26413
26413
|
const s = findAgency(name);
|
|
26414
|
-
if (!s) throw new (0,
|
|
26414
|
+
if (!s) throw new (0, _chunkMCUX2Y2Ccjs.KordocError)(`agency: \uC2E4\uCE21 \uC11C\uC2DD\uC774 \uC5C6\uB294 \uAE30\uAD00\uC785\uB2C8\uB2E4 "${name}" \u2014 ${AGENCY_COMMON_NAME} \uB610\uB294 ${agencyNames().join("\xB7")}`);
|
|
26415
26415
|
return s;
|
|
26416
26416
|
}
|
|
26417
26417
|
function applyAgency(opts, preset) {
|
|
@@ -27475,7 +27475,7 @@ function needsGaejosikAssets(gongmun) {
|
|
|
27475
27475
|
}
|
|
27476
27476
|
function assertFiniteRange(name, value, min, max) {
|
|
27477
27477
|
if (!Number.isFinite(value) || value < min || value > max) {
|
|
27478
|
-
throw new (0,
|
|
27478
|
+
throw new (0, _chunkMCUX2Y2Ccjs.KordocError)(`${name} must be a finite number between ${min} and ${max}`);
|
|
27479
27479
|
}
|
|
27480
27480
|
}
|
|
27481
27481
|
function validateGongmunOptions(opts) {
|
|
@@ -27493,10 +27493,10 @@ function validateGongmunOptions(opts) {
|
|
|
27493
27493
|
assertFiniteRange(`margins.${side}`, value, 0, 200);
|
|
27494
27494
|
}
|
|
27495
27495
|
if (opts.margins.left + opts.margins.right >= 210) {
|
|
27496
|
-
throw new (0,
|
|
27496
|
+
throw new (0, _chunkMCUX2Y2Ccjs.KordocError)("margins.left + margins.right must be less than 210");
|
|
27497
27497
|
}
|
|
27498
27498
|
if (opts.margins.top + opts.margins.bottom >= 297) {
|
|
27499
|
-
throw new (0,
|
|
27499
|
+
throw new (0, _chunkMCUX2Y2Ccjs.KordocError)("margins.top + margins.bottom must be less than 297");
|
|
27500
27500
|
}
|
|
27501
27501
|
}
|
|
27502
27502
|
if (opts.sizes) {
|
|
@@ -27505,24 +27505,24 @@ function validateGongmunOptions(opts) {
|
|
|
27505
27505
|
}
|
|
27506
27506
|
}
|
|
27507
27507
|
if (opts.approval && opts.approval.length > 6) {
|
|
27508
|
-
throw new (0,
|
|
27508
|
+
throw new (0, _chunkMCUX2Y2Ccjs.KordocError)("approval must contain at most 6 labels");
|
|
27509
27509
|
}
|
|
27510
27510
|
if (opts.checklist && typeof opts.checklist === "object") {
|
|
27511
27511
|
const nums = [..._nullishCoalesce(opts.checklist.na, () => ( [])), ...Object.keys(_nullishCoalesce(opts.checklist.notes, () => ( {}))).map(Number)];
|
|
27512
27512
|
for (const n of nums) {
|
|
27513
|
-
if (!Number.isInteger(n) || n < 1 || n > CHECKLIST_ITEMS) throw new (0,
|
|
27513
|
+
if (!Number.isInteger(n) || n < 1 || n > CHECKLIST_ITEMS) throw new (0, _chunkMCUX2Y2Ccjs.KordocError)(`checklist: item number must be an integer between 1 and ${CHECKLIST_ITEMS} (got ${n})`);
|
|
27514
27514
|
}
|
|
27515
27515
|
}
|
|
27516
27516
|
if (opts.levels) {
|
|
27517
27517
|
for (const [key, st] of Object.entries(opts.levels)) {
|
|
27518
27518
|
const depth = Number(key);
|
|
27519
27519
|
if (!Number.isInteger(depth) || depth < 0 || depth >= GONGMUN_LEVEL_COUNT) {
|
|
27520
|
-
throw new (0,
|
|
27520
|
+
throw new (0, _chunkMCUX2Y2Ccjs.KordocError)(`levels: depth must be an integer between 0 and ${GONGMUN_LEVEL_COUNT - 1} (got "${key}")`);
|
|
27521
27521
|
}
|
|
27522
|
-
if (!st || typeof st !== "object") throw new (0,
|
|
27522
|
+
if (!st || typeof st !== "object") throw new (0, _chunkMCUX2Y2Ccjs.KordocError)(`levels.${key} must be an object {font, pt, bold}`);
|
|
27523
27523
|
if (st.pt !== void 0) assertFiniteRange(`levels.${key}.pt`, st.pt, 6, 60);
|
|
27524
27524
|
if (st.font !== void 0 && (typeof st.font !== "string" || !st.font.trim())) {
|
|
27525
|
-
throw new (0,
|
|
27525
|
+
throw new (0, _chunkMCUX2Y2Ccjs.KordocError)(`levels.${key}.font must be a non-empty string`);
|
|
27526
27526
|
}
|
|
27527
27527
|
}
|
|
27528
27528
|
}
|
|
@@ -27580,7 +27580,7 @@ function resolveChecklist(c, preset) {
|
|
|
27580
27580
|
function hexColorOption(name, value) {
|
|
27581
27581
|
if (value === void 0) return void 0;
|
|
27582
27582
|
const v = value.trim();
|
|
27583
|
-
if (!/^#[0-9a-fA-F]{6}$/.test(v)) throw new (0,
|
|
27583
|
+
if (!/^#[0-9a-fA-F]{6}$/.test(v)) throw new (0, _chunkMCUX2Y2Ccjs.KordocError)(`${name} must be a #RRGGBB color (got "${value}")`);
|
|
27584
27584
|
return v.toUpperCase();
|
|
27585
27585
|
}
|
|
27586
27586
|
function resolveGongmun(input) {
|
|
@@ -27970,7 +27970,7 @@ function parseInlineMarkdown(text) {
|
|
|
27970
27970
|
else spans.push(...emphasisSpans(m[0]));
|
|
27971
27971
|
} else {
|
|
27972
27972
|
const anchor = m[2] || m[3];
|
|
27973
|
-
const href = _nullishCoalesce(
|
|
27973
|
+
const href = _nullishCoalesce(_chunkMCUX2Y2Ccjs.sanitizeHref.call(void 0, m[3].trim()), () => ( void 0));
|
|
27974
27974
|
const sub = emphasisSpans(anchor);
|
|
27975
27975
|
if (href) for (const s of sub) s.href = href;
|
|
27976
27976
|
spans.push(...sub);
|
|
@@ -28184,7 +28184,7 @@ function assertSequentialIds(rows, label, startId) {
|
|
|
28184
28184
|
const m = rows[i].match(/\bid="(\d+)"/);
|
|
28185
28185
|
const got = m ? Number(m[1]) : NaN;
|
|
28186
28186
|
if (got !== startId + i) {
|
|
28187
|
-
throw new (0,
|
|
28187
|
+
throw new (0, _chunkMCUX2Y2Ccjs.KordocError)(
|
|
28188
28188
|
`\uB0B4\uBD80 \uC624\uB958: ${label} id \uD30C\uD2F0\uC158 \uB4DC\uB9AC\uD504\uD2B8 \u2014 ${startId + i} \uC704\uCE58\uC5D0 id=${m ? m[1] : "?"} \uBC29\uCD9C. id \uC0C1\uC218(gen-ids)\uC640 \uC2E4\uC81C \uBC29\uCD9C \uC218\uAC00 \uC5B4\uAE0B\uB0AC\uB2E4 (GJ_CHAR_COUNT\uB958 \uCE74\uC6B4\uD2B8\xB7base \uC0B0\uC220 \uD655\uC778)`
|
|
28189
28189
|
);
|
|
28190
28190
|
}
|
|
@@ -28275,7 +28275,7 @@ function buildCharProperties(theme, gongmun, ratioVariants = [], extraCharPrXmls
|
|
|
28275
28275
|
}
|
|
28276
28276
|
const expectedBase = charVariantBase(richAssets, !!gongmun);
|
|
28277
28277
|
if (rows.length !== expectedBase) {
|
|
28278
|
-
throw new (0,
|
|
28278
|
+
throw new (0, _chunkMCUX2Y2Ccjs.KordocError)(
|
|
28279
28279
|
`\uB0B4\uBD80 \uC624\uB958: charPr \uAE30\uBCF8 \uBE14\uB85D \uBC29\uCD9C \uC218(${rows.length}) \u2260 charVariantBase(${expectedBase}) \u2014 gen-header \uBC29\uCD9C \uD589\uACFC gen-ids \uCE74\uC6B4\uD2B8 \uC0C1\uC218\uAC00 \uC5B4\uAE0B\uB0AC\uB2E4`
|
|
28280
28280
|
);
|
|
28281
28281
|
}
|
|
@@ -29285,7 +29285,7 @@ function bestSimInRange(arr, from, to, target) {
|
|
|
29285
29285
|
}
|
|
29286
29286
|
var HWP_SHAPE_ALT_TEXT_RE = /^(?:모서리가 둥근 |둥근 )?(?:사각형|직사각형|정사각형|원|타원|삼각형|이등변 삼각형|직각 삼각형|선|직선|곡선|화살표|굵은 화살표|이중 화살표|오각형|육각형|팔각형|별|[4-8]점별|십자|십자형|구름|구름형|마름모|도넛|평행사변형|사다리꼴|부채꼴|호|반원|물결|번개|하트|빗금|블록 화살표|수식|표|그림|개체|그리기\s?개체|묶음\s?개체|글상자|수식\s?개체|OLE\s?개체)\s?입니다\.?$/gm;
|
|
29287
29287
|
function sanitizeText(text) {
|
|
29288
|
-
let result =
|
|
29288
|
+
let result = _chunkT7PN5D4Dcjs.mapPuaText.call(void 0, text).replace(/[\u{F0000}-\u{FFFFD}]/gu, "").replace(HWP_SHAPE_ALT_TEXT_RE, "").replace(/ +/g, " ").trim();
|
|
29289
29289
|
if (result.length <= 30 && result.includes(" ")) {
|
|
29290
29290
|
const tokens = result.split(" ");
|
|
29291
29291
|
const koreanSingleCharCount = tokens.filter((t) => t.length === 1 && /[가-ㄱ-ㆎ]/.test(t)).length;
|
|
@@ -29318,7 +29318,7 @@ function replicateGfmTable(table2) {
|
|
|
29318
29318
|
const cell2 = _optionalChain([cells, 'access', _565 => _565[r], 'optionalAccess', _566 => _566[c]]);
|
|
29319
29319
|
if (!cell2) continue;
|
|
29320
29320
|
display[r][c] = {
|
|
29321
|
-
text:
|
|
29321
|
+
text: _chunkT7PN5D4Dcjs.escapeGfm.call(void 0, sanitizeText(cell2.text)).replace(/(?<!\\)\|/g, "\\|").replace(/\r\n|\r|\n/g, "<br>"),
|
|
29322
29322
|
gridR: r,
|
|
29323
29323
|
gridC: c
|
|
29324
29324
|
};
|
|
@@ -29373,14 +29373,14 @@ function replicateCellInnerHtml(cell2) {
|
|
|
29373
29373
|
return cell2.blocks.map((b) => {
|
|
29374
29374
|
if (b.type === "table" && b.table) {
|
|
29375
29375
|
const cap = b.table.caption ? sanitizeText(b.table.caption) : "";
|
|
29376
|
-
return (cap ?
|
|
29376
|
+
return (cap ? _chunkT7PN5D4Dcjs.escapeHtmlCellText.call(void 0, cap) + "<br>" : "") + replicateTableToHtml(b.table);
|
|
29377
29377
|
}
|
|
29378
|
-
if (b.type === "image" && b.text) return `<img src="${
|
|
29378
|
+
if (b.type === "image" && b.text) return `<img src="${_chunkMCUX2Y2Ccjs.escapeHtml.call(void 0, b.text, true)}" alt="image">`;
|
|
29379
29379
|
const t = sanitizeText(_nullishCoalesce(b.text, () => ( "")));
|
|
29380
|
-
return t ?
|
|
29380
|
+
return t ? _chunkT7PN5D4Dcjs.escapeHtmlCellText.call(void 0, t + _chunkT7PN5D4Dcjs.noteSuffix.call(void 0, b)).replace(/\n/g, "<br>") : "";
|
|
29381
29381
|
}).filter(Boolean).join("<br>");
|
|
29382
29382
|
}
|
|
29383
|
-
return
|
|
29383
|
+
return _chunkT7PN5D4Dcjs.escapeHtmlCellText.call(void 0, sanitizeText(cell2.text)).replace(/\n/g, "<br>");
|
|
29384
29384
|
}
|
|
29385
29385
|
function replicateTableToHtml(table2) {
|
|
29386
29386
|
const rows = replicateHtmlTable(table2);
|
|
@@ -29457,7 +29457,7 @@ function parseHtmlTable(raw) {
|
|
|
29457
29457
|
const cs = parseInt(_optionalChain([attrs, 'access', _571 => _571.match, 'call', _572 => _572(/colspan\s*=\s*["']?(\d+)/i), 'optionalAccess', _573 => _573[1]]) || "1", 10);
|
|
29458
29458
|
const rs = parseInt(_optionalChain([attrs, 'access', _574 => _574.match, 'call', _575 => _575(/rowspan\s*=\s*["']?(\d+)/i), 'optionalAccess', _576 => _576[1]]) || "1", 10);
|
|
29459
29459
|
cellStart = m.index + m[0].length;
|
|
29460
|
-
cellInfo = { colSpan: clampSpan(isNaN(cs) ? 1 : cs,
|
|
29460
|
+
cellInfo = { colSpan: clampSpan(isNaN(cs) ? 1 : cs, _chunkT7PN5D4Dcjs.MAX_COLS), rowSpan: clampSpan(isNaN(rs) ? 1 : rs, _chunkT7PN5D4Dcjs.MAX_ROWS) };
|
|
29461
29461
|
} else if (cellStart >= 0 && cellInfo && currentRow) {
|
|
29462
29462
|
currentRow.push({ inner: raw.slice(cellStart, m.index), colSpan: cellInfo.colSpan, rowSpan: cellInfo.rowSpan });
|
|
29463
29463
|
cellStart = -1;
|
|
@@ -29482,11 +29482,11 @@ function htmlCellInnerToLines(inner) {
|
|
|
29482
29482
|
work = work.replace(/<img\s(?:"[^"]*"|'[^']*'|[^>"'])*?>/gi, (tag) => {
|
|
29483
29483
|
const m = /\bsrc\s*=\s*(?:"([^"]*)"|'([^']*)')/i.exec(tag);
|
|
29484
29484
|
const src = _nullishCoalesce(_optionalChain([m, 'optionalAccess', _577 => _577[1]]), () => ( _optionalChain([m, 'optionalAccess', _578 => _578[2]])));
|
|
29485
|
-
if (src) imgSrcs.push(
|
|
29485
|
+
if (src) imgSrcs.push(_chunkMCUX2Y2Ccjs.unescapeHtml.call(void 0, src));
|
|
29486
29486
|
return "";
|
|
29487
29487
|
});
|
|
29488
29488
|
}
|
|
29489
|
-
const lines = work.split(/<br\s*\/?>/gi).map((s) =>
|
|
29489
|
+
const lines = work.split(/<br\s*\/?>/gi).map((s) => _chunkMCUX2Y2Ccjs.unescapeHtml.call(void 0, s).trim()).filter((s) => s.length > 0);
|
|
29490
29490
|
return { lines, hadNonText, imgSrcs };
|
|
29491
29491
|
}
|
|
29492
29492
|
function splitCellByTopLevelTables(html) {
|
|
@@ -30284,8 +30284,8 @@ function layoutHtmlRows(rows) {
|
|
|
30284
30284
|
let c = 0;
|
|
30285
30285
|
for (const cell2 of rows[r].cells) {
|
|
30286
30286
|
while (occupied.has(`${r},${c}`)) c++;
|
|
30287
|
-
const colSpan = clampSpan(cell2.colSpan,
|
|
30288
|
-
const rowSpan = clampSpan(cell2.rowSpan,
|
|
30287
|
+
const colSpan = clampSpan(cell2.colSpan, _chunkT7PN5D4Dcjs.MAX_COLS);
|
|
30288
|
+
const rowSpan = clampSpan(cell2.rowSpan, _chunkT7PN5D4Dcjs.MAX_ROWS);
|
|
30289
30289
|
placed.push({ r, c, colSpan, rowSpan, inner: cell2.inner, isHeader: rows[r].tag === "th" });
|
|
30290
30290
|
for (let dr = 0; dr < rowSpan; dr++) {
|
|
30291
30291
|
for (let dc = 0; dc < colSpan; dc++) occupied.add(`${r + dr},${c + dc}`);
|
|
@@ -32957,7 +32957,7 @@ function builtinTemplateDir() {
|
|
|
32957
32957
|
for (const c of candidates) {
|
|
32958
32958
|
if (_fs.existsSync.call(void 0, _path.join.call(void 0, c, BUILTIN_TEMPLATES[0].file))) return c;
|
|
32959
32959
|
}
|
|
32960
|
-
throw new (0,
|
|
32960
|
+
throw new (0, _chunkMCUX2Y2Ccjs.KordocError)("\uB0B4\uC7A5 templates \uB514\uB809\uD1A0\uB9AC\uB97C \uCC3E\uC744 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4 (\uD328\uD0A4\uC9C0 \uC124\uCE58\uAC00 \uC190\uC0C1\uB418\uC5C8\uC744 \uC218 \uC788\uC2B5\uB2C8\uB2E4)");
|
|
32961
32961
|
}
|
|
32962
32962
|
function readBuiltinTemplate(t) {
|
|
32963
32963
|
const buf = _fs.readFileSync.call(void 0, _path.join.call(void 0, builtinTemplateDir(), t.file));
|
|
@@ -33311,12 +33311,12 @@ function buildFloatPicXml(itemId, sizeHu, posXHu, posYHu, ids) {
|
|
|
33311
33311
|
return `<hp:pic xmlns:hc="http://www.hancom.co.kr/hwpml/2011/core" id="${ids.id}" zOrder="0" numberingType="PICTURE" textWrap="IN_FRONT_OF_TEXT" textFlow="BOTH_SIDES" lock="0" dropcapstyle="None" href="" groupLevel="0" instid="${ids.instid}" reverse="0"><hp:offset x="0" y="0"/><hp:orgSz width="${w}" height="${h}"/><hp:curSz width="${w}" height="${h}"/><hp:flip horizontal="0" vertical="0"/><hp:rotationInfo angle="0" centerX="${Math.round(w / 2)}" centerY="${Math.round(h / 2)}" rotateimage="1"/><hp:renderingInfo><hc:transMatrix e1="1" e2="0" e3="0" e4="0" e5="1" e6="0"/><hc:scaMatrix e1="1" e2="0" e3="0" e4="0" e5="1" e6="0"/><hc:rotMatrix e1="1" e2="0" e3="0" e4="0" e5="1" e6="0"/></hp:renderingInfo><hp:imgRect><hc:pt0 x="0" y="0"/><hc:pt1 x="${w}" y="0"/><hc:pt2 x="${w}" y="${h}"/><hc:pt3 x="0" y="${h}"/></hp:imgRect><hp:imgClip left="0" right="${w}" top="0" bottom="${h}"/><hp:inMargin left="0" right="0" top="0" bottom="0"/><hp:imgDim dimwidth="${w}" dimheight="${h}"/><hc:img binaryItemIDRef="${itemId}" bright="0" contrast="0" effect="REAL_PIC" alpha="0"/><hp:effects/><hp:sz width="${w}" widthRelTo="ABSOLUTE" height="${h}" heightRelTo="ABSOLUTE" protect="0"/><hp:pos treatAsChar="0" affectLSpacing="0" flowWithText="0" allowOverlap="1" holdAnchorAndSO="0" vertRelTo="PARA" horzRelTo="COLUMN" vertAlign="TOP" horzAlign="LEFT" vertOffset="${posYHu}" horzOffset="${posXHu}"/><hp:outMargin left="0" right="0" top="0" bottom="0"/><hp:shapeComment>kordoc seal</hp:shapeComment></hp:pic>`;
|
|
33312
33312
|
}
|
|
33313
33313
|
async function placeSealHwpx(hwpxBuffer, ops) {
|
|
33314
|
-
if (ops.length === 0) throw new (0,
|
|
33314
|
+
if (ops.length === 0) throw new (0, _chunkMCUX2Y2Ccjs.KordocError)("place_seal: \uBC30\uCE58\uD560 \uB3C4\uC7A5\uC774 \uC5C6\uC2B5\uB2C8\uB2E4");
|
|
33315
33315
|
const u8 = new Uint8Array(hwpxBuffer);
|
|
33316
|
-
|
|
33316
|
+
_chunkMCUX2Y2Ccjs.precheckZipSize.call(void 0, hwpxBuffer);
|
|
33317
33317
|
const zip = await _jszip2.default.loadAsync(hwpxBuffer);
|
|
33318
33318
|
const sectionPaths = Object.keys(zip.files).filter((name) => /[Ss]ection\d+\.xml$/i.test(name)).sort((a, b) => Number(_nullishCoalesce(_optionalChain([a, 'access', _739 => _739.match, 'call', _740 => _740(/(\d+)\.xml$/i), 'optionalAccess', _741 => _741[1]]), () => ( 0))) - Number(_nullishCoalesce(_optionalChain([b, 'access', _742 => _742.match, 'call', _743 => _743(/(\d+)\.xml$/i), 'optionalAccess', _744 => _744[1]]), () => ( 0))));
|
|
33319
|
-
if (sectionPaths.length === 0) throw new (0,
|
|
33319
|
+
if (sectionPaths.length === 0) throw new (0, _chunkMCUX2Y2Ccjs.KordocError)("HWPX\uC5D0\uC11C \uC139\uC158 \uD30C\uC77C\uC744 \uCC3E\uC744 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4");
|
|
33320
33320
|
const manifestPath = Object.keys(zip.files).find((name) => /\.hpf$/i.test(name));
|
|
33321
33321
|
const headerPath = Object.keys(zip.files).find((name) => /(^|\/)header\.xml$/i.test(name));
|
|
33322
33322
|
const styles = headerPath ? parseRenderStyles(await zip.file(headerPath).async("text")) : null;
|
|
@@ -33357,11 +33357,11 @@ async function placeSealHwpx(hwpxBuffer, ops) {
|
|
|
33357
33357
|
const manifestItems = [];
|
|
33358
33358
|
const placed = [];
|
|
33359
33359
|
for (const op of ops) {
|
|
33360
|
-
if (!op.anchor) throw new (0,
|
|
33361
|
-
if (!op.image || op.image.length === 0) throw new (0,
|
|
33360
|
+
if (!op.anchor) throw new (0, _chunkMCUX2Y2Ccjs.KordocError)("place_seal: anchor \uBB38\uAD6C\uAC00 \uD544\uC694\uD569\uB2C8\uB2E4");
|
|
33361
|
+
if (!op.image || op.image.length === 0) throw new (0, _chunkMCUX2Y2Ccjs.KordocError)("place_seal: \uB3C4\uC7A5 \uC774\uBBF8\uC9C0\uAC00 \uD544\uC694\uD569\uB2C8\uB2E4");
|
|
33362
33362
|
const ext = (_nullishCoalesce(op.ext, () => ( "png"))).toLowerCase();
|
|
33363
|
-
if (!MIME[ext]) throw new (0,
|
|
33364
|
-
if (!imageMagicMatches(op.image, ext)) throw new (0,
|
|
33363
|
+
if (!MIME[ext]) throw new (0, _chunkMCUX2Y2Ccjs.KordocError)(`place_seal: \uC9C0\uC6D0\uD558\uC9C0 \uC54A\uB294 \uC774\uBBF8\uC9C0 \uD655\uC7A5\uC790 .${ext} (png/jpg/bmp/gif)`);
|
|
33364
|
+
if (!imageMagicMatches(op.image, ext)) throw new (0, _chunkMCUX2Y2Ccjs.KordocError)(`place_seal: \uC774\uBBF8\uC9C0 \uB0B4\uC6A9\uC774 .${ext} \uD615\uC2DD\uC774 \uC544\uB2D9\uB2C8\uB2E4 (\uB9E4\uC9C1\uBC14\uC774\uD2B8 \uBD88\uC77C\uCE58)`);
|
|
33365
33365
|
const wantOcc = _nullishCoalesce(op.occurrence, () => ( 0));
|
|
33366
33366
|
let found = null;
|
|
33367
33367
|
let total = 0;
|
|
@@ -33394,7 +33394,7 @@ async function placeSealHwpx(hwpxBuffer, ops) {
|
|
|
33394
33394
|
}
|
|
33395
33395
|
}
|
|
33396
33396
|
}
|
|
33397
|
-
throw new (0,
|
|
33397
|
+
throw new (0, _chunkMCUX2Y2Ccjs.KordocError)(
|
|
33398
33398
|
`place_seal: \uC575\uCEE4 "${op.anchor}" ${wantOcc}\uBC88\uC9F8 \uB4F1\uC7A5\uC744 \uCC3E\uC9C0 \uBABB\uD588\uC2B5\uB2C8\uB2E4 (\uBCF8\uBB38 \uB0B4 ${total}\uD68C \uB4F1\uC7A5 \u2014 occurrence 0..${Math.max(0, total - 1)})`
|
|
33399
33399
|
);
|
|
33400
33400
|
}
|
|
@@ -33402,7 +33402,7 @@ async function placeSealHwpx(hwpxBuffer, ops) {
|
|
|
33402
33402
|
const xml = sectionXmls[si];
|
|
33403
33403
|
const run = anchorRunInfo(xml, site.para, op.anchor);
|
|
33404
33404
|
if (!run) {
|
|
33405
|
-
throw new (0,
|
|
33405
|
+
throw new (0, _chunkMCUX2Y2Ccjs.KordocError)(`place_seal: \uC575\uCEE4 "${op.anchor}" \uBB38\uB2E8\uC5D0\uC11C run\uC744 \uCC3E\uC9C0 \uBABB\uD588\uC2B5\uB2C8\uB2E4`);
|
|
33406
33406
|
}
|
|
33407
33407
|
const charPrHeight = _nullishCoalesce(_optionalChain([styles, 'optionalAccess', _745 => _745.charPr, 'access', _746 => _746.get, 'call', _747 => _747(run.charPr), 'optionalAccess', _748 => _748.height]), () => ( 1e3));
|
|
33408
33408
|
const fontPt = charPrHeight / 100;
|
|
@@ -33680,7 +33680,7 @@ function pick(map, keys) {
|
|
|
33680
33680
|
return out;
|
|
33681
33681
|
}
|
|
33682
33682
|
async function hwpxToProfile(input) {
|
|
33683
|
-
const buf = input instanceof ArrayBuffer ? input :
|
|
33683
|
+
const buf = input instanceof ArrayBuffer ? input : _chunkMCUX2Y2Ccjs.toArrayBuffer.call(void 0, input);
|
|
33684
33684
|
const zip = await _jszip2.default.loadAsync(buf);
|
|
33685
33685
|
const parser = createXmlParser();
|
|
33686
33686
|
const headerFile = _nullishCoalesce(zip.file("Contents/header.xml"), () => ( _optionalChain([zip, 'access', _773 => _773.file, 'call', _774 => _774(/[Hh]eader\.xml$/), 'optionalAccess', _775 => _775[0]])));
|
|
@@ -35232,8 +35232,8 @@ function patchTextChunkTable(table2, scanTable, orig, edited, ctx, skip) {
|
|
|
35232
35232
|
const replicaLines = content.split(/\n/).map((line) => {
|
|
35233
35233
|
const t = line.trim();
|
|
35234
35234
|
if (!t) return "";
|
|
35235
|
-
if (/^\d+\.\s/.test(t)) return `**${
|
|
35236
|
-
return
|
|
35235
|
+
if (/^\d+\.\s/.test(t)) return `**${_chunkT7PN5D4Dcjs.escapeGfm.call(void 0, t)}**`;
|
|
35236
|
+
return _chunkT7PN5D4Dcjs.escapeGfm.call(void 0, t);
|
|
35237
35237
|
}).filter(Boolean);
|
|
35238
35238
|
if (replicaLines.join("\n") !== orig.lines.join("\n")) return skip("\uD45C \uC88C\uD45C \uC7AC\uD604 \uBD88\uC77C\uCE58 \u2014 \uB9E4\uD551 \uC2E0\uB8B0 \uBD88\uAC00");
|
|
35239
35239
|
if (extractCellTokens(orig.raw) !== extractCellTokens(edited.raw)) return skip("\uC140 \uB0B4 \uC774\uBBF8\uC9C0 \uBCC0\uACBD\uC740 \uBBF8\uC9C0\uC6D0");
|
|
@@ -35247,7 +35247,7 @@ function patchTextChunkTable(table2, scanTable, orig, edited, ctx, skip) {
|
|
|
35247
35247
|
if (table2.cols === 1 && table2.rows >= 2) {
|
|
35248
35248
|
const replica = [];
|
|
35249
35249
|
for (let r = 0; r < table2.rows; r++) {
|
|
35250
|
-
const line =
|
|
35250
|
+
const line = _chunkT7PN5D4Dcjs.escapeGfm.call(void 0, sanitizeText(table2.cells[r][0].text)).replace(/\n/g, " ");
|
|
35251
35251
|
if (line) replica.push({ line, gridR: r });
|
|
35252
35252
|
}
|
|
35253
35253
|
if (replica.map((x) => x.line).join("\n") !== orig.lines.join("\n")) return skip("\uD45C \uC88C\uD45C \uC7AC\uD604 \uBD88\uC77C\uCE58 \u2014 \uB9E4\uD551 \uC2E0\uB8B0 \uBD88\uAC00");
|
|
@@ -35424,7 +35424,7 @@ async function resolveSectionEntryNames(zip) {
|
|
|
35424
35424
|
const paths = parseSectionPathsFromManifest(xml).filter((p) => zip.file(p) !== null);
|
|
35425
35425
|
if (paths.length > 0) return paths;
|
|
35426
35426
|
}
|
|
35427
|
-
return Object.keys(zip.files).filter((n) => /[Ss]ection\d+\.xml$/.test(n)).sort(
|
|
35427
|
+
return Object.keys(zip.files).filter((n) => /[Ss]ection\d+\.xml$/.test(n)).sort(_chunkMCUX2Y2Ccjs.compareSectionPaths);
|
|
35428
35428
|
}
|
|
35429
35429
|
|
|
35430
35430
|
// src/roundtrip/hwp5-patch.ts
|
|
@@ -36342,8 +36342,8 @@ function patchTextChunk5(table2, scanTable, orig, edited, ctx, skip) {
|
|
|
36342
36342
|
const replicaLines = content.split(/\n/).map((line) => {
|
|
36343
36343
|
const t = line.trim();
|
|
36344
36344
|
if (!t) return "";
|
|
36345
|
-
if (/^\d+\.\s/.test(t)) return `**${
|
|
36346
|
-
return
|
|
36345
|
+
if (/^\d+\.\s/.test(t)) return `**${_chunkT7PN5D4Dcjs.escapeGfm.call(void 0, t)}**`;
|
|
36346
|
+
return _chunkT7PN5D4Dcjs.escapeGfm.call(void 0, t);
|
|
36347
36347
|
}).filter(Boolean);
|
|
36348
36348
|
if (replicaLines.join("\n") !== orig.lines.join("\n")) return skip("\uD45C \uC88C\uD45C \uC7AC\uD604 \uBD88\uC77C\uCE58 \u2014 \uB9E4\uD551 \uC2E0\uB8B0 \uBD88\uAC00");
|
|
36349
36349
|
if (extractCellTokens(orig.raw) !== extractCellTokens(edited.raw)) return skip("\uC140 \uB0B4 \uC774\uBBF8\uC9C0 \uBCC0\uACBD\uC740 \uBBF8\uC9C0\uC6D0");
|
|
@@ -36357,7 +36357,7 @@ function patchTextChunk5(table2, scanTable, orig, edited, ctx, skip) {
|
|
|
36357
36357
|
if (table2.cols === 1 && table2.rows >= 2) {
|
|
36358
36358
|
const replica = [];
|
|
36359
36359
|
for (let r = 0; r < table2.rows; r++) {
|
|
36360
|
-
const line =
|
|
36360
|
+
const line = _chunkT7PN5D4Dcjs.escapeGfm.call(void 0, sanitizeText(table2.cells[r][0].text)).replace(/\n/g, " ");
|
|
36361
36361
|
if (line) replica.push({ line, gridR: r });
|
|
36362
36362
|
}
|
|
36363
36363
|
if (replica.map((x) => x.line).join("\n") !== orig.lines.join("\n")) return skip("\uD45C \uC88C\uD45C \uC7AC\uD604 \uBD88\uC77C\uCE58 \u2014 \uB9E4\uD551 \uC2E0\uB8B0 \uBD88\uAC00");
|
|
@@ -36799,9 +36799,9 @@ function buildOrigUnits(blocks) {
|
|
|
36799
36799
|
if (block.type === "paragraph" && block.text && /^\[별표\s*\d+/.test(sanitizeText(block.text))) {
|
|
36800
36800
|
const next = blocks[i + 1];
|
|
36801
36801
|
if (_optionalChain([next, 'optionalAccess', _850 => _850.type]) === "paragraph" && next.text && /관련\)?$/.test(next.text)) consume = 2;
|
|
36802
|
-
chunk =
|
|
36802
|
+
chunk = _chunkT7PN5D4Dcjs.blocksToMarkdown.call(void 0, blocks.slice(i, i + consume));
|
|
36803
36803
|
} else {
|
|
36804
|
-
chunk =
|
|
36804
|
+
chunk = _chunkT7PN5D4Dcjs.blocksToMarkdown.call(void 0, [block]);
|
|
36805
36805
|
}
|
|
36806
36806
|
if (chunk) {
|
|
36807
36807
|
const subUnits = splitMarkdownUnits(chunk);
|
|
@@ -39656,7 +39656,7 @@ function blocksToChunks(blocks, options) {
|
|
|
39656
39656
|
const granularity = _nullishCoalesce(_optionalChain([options, 'optionalAccess', _892 => _892.granularity]), () => ( "section"));
|
|
39657
39657
|
const includeCells = _nullishCoalesce(_optionalChain([options, 'optionalAccess', _893 => _893.includeTableCells]), () => ( false));
|
|
39658
39658
|
const mdOptions = { tableFormat: _optionalChain([options, 'optionalAccess', _894 => _894.tableFormat]) };
|
|
39659
|
-
if (_optionalChain([options, 'optionalAccess', _895 => _895.tableFormat]) === "gfm")
|
|
39659
|
+
if (_optionalChain([options, 'optionalAccess', _895 => _895.tableFormat]) === "gfm") _chunkT7PN5D4Dcjs.assignTableIds.call(void 0, blocks);
|
|
39660
39660
|
const chunks = [];
|
|
39661
39661
|
const headingStack = [];
|
|
39662
39662
|
const listStack = [];
|
|
@@ -39670,12 +39670,12 @@ function blocksToChunks(blocks, options) {
|
|
|
39670
39670
|
let run = null;
|
|
39671
39671
|
const flushRun = () => {
|
|
39672
39672
|
if (!run) return;
|
|
39673
|
-
push("text", run.breadcrumb,
|
|
39673
|
+
push("text", run.breadcrumb, _chunkT7PN5D4Dcjs.blocksToMarkdown.call(void 0, run.blocks, mdOptions), [run.start, run.end], run.page);
|
|
39674
39674
|
run = null;
|
|
39675
39675
|
};
|
|
39676
39676
|
for (let i = 0; i < blocks.length; i++) {
|
|
39677
39677
|
const block = blocks[i];
|
|
39678
|
-
const md2 =
|
|
39678
|
+
const md2 = _chunkT7PN5D4Dcjs.blocksToMarkdown.call(void 0, [block], mdOptions);
|
|
39679
39679
|
if (!md2) continue;
|
|
39680
39680
|
if (block.type === "heading") {
|
|
39681
39681
|
flushRun();
|
|
@@ -40118,7 +40118,7 @@ var md = new (0, _markdownit2.default)({
|
|
|
40118
40118
|
});
|
|
40119
40119
|
var SAFE_RAW_TAG = /^(?:<\/?(?:table|thead|tbody|tfoot|tr|th|td|u)>|<br\s*\/?>|<(?:th|td)(?: (?:colspan|rowspan)="[1-9]\d*"){1,2}>|<img src="(?:images\/(?:[^"'<>\/\s]+\/)?)?image_\d+\.(?:png|jpe?g|gif|webp|bmp)" alt="image">)$/i;
|
|
40120
40120
|
function sanitizeRawHtml(raw) {
|
|
40121
|
-
return raw.replace(/<[^>]*>|</g, (tag) => SAFE_RAW_TAG.test(tag) ? tag :
|
|
40121
|
+
return raw.replace(/<[^>]*>|</g, (tag) => SAFE_RAW_TAG.test(tag) ? tag : _chunkMCUX2Y2Ccjs.escapeHtml.call(void 0, tag));
|
|
40122
40122
|
}
|
|
40123
40123
|
md.renderer.rules.html_block = (tokens, idx) => sanitizeRawHtml(tokens[idx].content);
|
|
40124
40124
|
md.renderer.rules.html_inline = (tokens, idx) => sanitizeRawHtml(tokens[idx].content);
|
|
@@ -40126,7 +40126,7 @@ function renderHtml(markdown, options) {
|
|
|
40126
40126
|
const preset = _nullishCoalesce(_optionalChain([options, 'optionalAccess', _921 => _921.preset]), () => ( "default"));
|
|
40127
40127
|
const css = PRESETS[preset] + (_nullishCoalesce(_optionalChain([options, 'optionalAccess', _922 => _922.extraCss]), () => ( "")));
|
|
40128
40128
|
const body = md.render(markdown);
|
|
40129
|
-
const watermark = _optionalChain([options, 'optionalAccess', _923 => _923.watermark]) ? `<div class="watermark">${
|
|
40129
|
+
const watermark = _optionalChain([options, 'optionalAccess', _923 => _923.watermark]) ? `<div class="watermark">${_chunkMCUX2Y2Ccjs.escapeHtml.call(void 0, options.watermark)}</div>` : "";
|
|
40130
40130
|
const watermarkCss = _optionalChain([options, 'optionalAccess', _924 => _924.watermark]) ? `
|
|
40131
40131
|
.watermark {
|
|
40132
40132
|
position: fixed;
|
|
@@ -40177,13 +40177,13 @@ async function htmlToPdf(html, options) {
|
|
|
40177
40177
|
try {
|
|
40178
40178
|
puppeteer = await Promise.resolve().then(() => _interopRequireWildcard(require("puppeteer-core")));
|
|
40179
40179
|
} catch (e41) {
|
|
40180
|
-
throw new (0,
|
|
40180
|
+
throw new (0, _chunkMCUX2Y2Ccjs.KordocError)(
|
|
40181
40181
|
"PDF \uC0DD\uC131\uC5D0 puppeteer-core\uAC00 \uD544\uC694\uD569\uB2C8\uB2E4. \uC124\uCE58: npm install puppeteer-core"
|
|
40182
40182
|
);
|
|
40183
40183
|
}
|
|
40184
40184
|
const executablePath = _nullishCoalesce(process.env.PUPPETEER_EXECUTABLE_PATH, () => ( findChromiumPath()));
|
|
40185
40185
|
if (!executablePath) {
|
|
40186
|
-
throw new (0,
|
|
40186
|
+
throw new (0, _chunkMCUX2Y2Ccjs.KordocError)(
|
|
40187
40187
|
"Chromium \uC2E4\uD589 \uD30C\uC77C\uC744 \uCC3E\uC744 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4. PUPPETEER_EXECUTABLE_PATH \uD658\uACBD\uBCC0\uC218\uB97C \uC124\uC815\uD558\uC138\uC694."
|
|
40188
40188
|
);
|
|
40189
40189
|
}
|
|
@@ -40238,7 +40238,7 @@ async function markdownToPdf(markdown, options) {
|
|
|
40238
40238
|
return htmlToPdf(html, options);
|
|
40239
40239
|
}
|
|
40240
40240
|
async function blocksToPdf(blocks, options) {
|
|
40241
|
-
const markdown =
|
|
40241
|
+
const markdown = _chunkT7PN5D4Dcjs.blocksToMarkdown.call(void 0, blocks);
|
|
40242
40242
|
return markdownToPdf(markdown, options);
|
|
40243
40243
|
}
|
|
40244
40244
|
|
|
@@ -41595,22 +41595,22 @@ function renderSectionRoots(sections, input) {
|
|
|
41595
41595
|
rendered.push({ pages, PW: geom.PW, pageH, clipId: `pgclip${index}` });
|
|
41596
41596
|
ctxBase.pageBase += pages.length;
|
|
41597
41597
|
}
|
|
41598
|
-
if (rendered.length === 0) throw new (0,
|
|
41598
|
+
if (rendered.length === 0) throw new (0, _chunkMCUX2Y2Ccjs.KordocError)("\uB80C\uB354\uD560 \uAD6C\uC5ED\uC774 \uC5C6\uC2B5\uB2C8\uB2E4");
|
|
41599
41599
|
return { sections: rendered, defs: ctxBase.defs, warnings: input.warnings, stats: ctxBase.stats, regions: ctxBase.regions.regions };
|
|
41600
41600
|
}
|
|
41601
41601
|
var SVG_FONT_FAMILY = `'HCR Batang','\uD568\uCD08\uB86C\uBC14\uD0D5','Hancom Batang',AppleMyungjo,'Noto Serif CJK KR',serif`;
|
|
41602
41602
|
async function renderHwpxInternal(input, options) {
|
|
41603
41603
|
const maxImg = _nullishCoalesce(_optionalChain([options, 'optionalAccess', _975 => _975.maxImageBytes]), () => ( 40 * 1024 * 1024));
|
|
41604
41604
|
const ab = input instanceof Uint8Array ? input.buffer.slice(input.byteOffset, input.byteOffset + input.byteLength) : input;
|
|
41605
|
-
|
|
41605
|
+
_chunkMCUX2Y2Ccjs.precheckZipSize.call(void 0, ab, MAX_DECOMPRESS_SIZE, MAX_ZIP_ENTRIES);
|
|
41606
41606
|
let zip;
|
|
41607
41607
|
try {
|
|
41608
41608
|
zip = await _jszip2.default.loadAsync(input);
|
|
41609
41609
|
} catch (e42) {
|
|
41610
|
-
throw new (0,
|
|
41610
|
+
throw new (0, _chunkMCUX2Y2Ccjs.KordocError)("HWPX(ZIP) \uD615\uC2DD\uC774 \uC544\uB2D9\uB2C8\uB2E4 \u2014 \uB80C\uB354\uB294 HWPX\uB9CC \uC9C0\uC6D0");
|
|
41611
41611
|
}
|
|
41612
41612
|
const secFiles = zip.file(/Contents\/section\d+\.xml$/i).sort((a, b) => a.name.localeCompare(b.name));
|
|
41613
|
-
if (secFiles.length === 0) throw new (0,
|
|
41613
|
+
if (secFiles.length === 0) throw new (0, _chunkMCUX2Y2Ccjs.KordocError)("Contents/section0.xml \uC5C6\uC74C \u2014 HWPX\uAC00 \uC544\uB2C8\uAC70\uB098 \uC190\uC0C1\uB428");
|
|
41614
41614
|
const warnings = [];
|
|
41615
41615
|
const headFile = _nullishCoalesce(zip.file("Contents/header.xml"), () => ( zip.file("Contents/head.xml")));
|
|
41616
41616
|
const styles = headFile ? parseRenderStyles(await headFile.async("string")) : { charPr: /* @__PURE__ */ new Map(), paraAlign: /* @__PURE__ */ new Map(), paraGeom: /* @__PURE__ */ new Map(), borderFill: /* @__PURE__ */ new Map() };
|
|
@@ -41618,14 +41618,14 @@ async function renderHwpxInternal(input, options) {
|
|
|
41618
41618
|
const secXmls = [];
|
|
41619
41619
|
for (const f of secFiles) {
|
|
41620
41620
|
const xml = await f.async("string");
|
|
41621
|
-
if (xml.length > MAX_DECOMPRESS_SIZE) throw new (0,
|
|
41621
|
+
if (xml.length > MAX_DECOMPRESS_SIZE) throw new (0, _chunkMCUX2Y2Ccjs.KordocError)("\uC139\uC158 XML\uC774 \uD5C8\uC6A9 \uD06C\uAE30\uB97C \uCD08\uACFC");
|
|
41622
41622
|
secXmls.push(xml);
|
|
41623
41623
|
}
|
|
41624
41624
|
const masterPages = /* @__PURE__ */ new Map();
|
|
41625
41625
|
const masterXmls = [];
|
|
41626
41626
|
for (const file of zip.file(/Contents\/masterpage[^/]*\.xml$/i)) {
|
|
41627
41627
|
const xml = await file.async("string");
|
|
41628
|
-
if (xml.length > MAX_DECOMPRESS_SIZE) throw new (0,
|
|
41628
|
+
if (xml.length > MAX_DECOMPRESS_SIZE) throw new (0, _chunkMCUX2Y2Ccjs.KordocError)("\uBC14\uD0D5\uCABD XML\uC774 \uD5C8\uC6A9 \uD06C\uAE30\uB97C \uCD08\uACFC");
|
|
41629
41629
|
const root = createXmlParser().parseFromString(xml, "text/xml").documentElement;
|
|
41630
41630
|
if (root && ln(root) === "masterPage") {
|
|
41631
41631
|
masterPages.set(root.getAttribute("id") || file.name.replace(/^.*\/|\.xml$/g, ""), root);
|
|
@@ -41692,9 +41692,9 @@ async function renderHwpxInternal(input, options) {
|
|
|
41692
41692
|
}
|
|
41693
41693
|
if (roots.length === 0) {
|
|
41694
41694
|
if (noCacheSkipped) {
|
|
41695
|
-
throw new (0,
|
|
41695
|
+
throw new (0, _chunkMCUX2Y2Ccjs.KordocError)("\uC870\uD310 \uCE90\uC2DC(linesegarray) \uC5C6\uC74C \u2014 \uD55C\uCEF4\uC5D0\uC11C \uC800\uC7A5\uD55C HWPX\uB9CC \uB80C\uB354 \uAC00\uB2A5 (reflow \uC635\uC158\uC73C\uB85C \uD569\uC131 \uB80C\uB354 \uAC00\uB2A5)");
|
|
41696
41696
|
}
|
|
41697
|
-
throw new (0,
|
|
41697
|
+
throw new (0, _chunkMCUX2Y2Ccjs.KordocError)("\uB80C\uB354\uD560 \uAD6C\uC5ED\uC774 \uC5C6\uC2B5\uB2C8\uB2E4 \u2014 HWPX\uAC00 \uC190\uC0C1\uB418\uC5C8\uC744 \uC218 \uC788\uC2B5\uB2C8\uB2E4");
|
|
41698
41698
|
}
|
|
41699
41699
|
return renderSectionRoots(roots, { styles, images, warnings, reflow: !!_optionalChain([options, 'optionalAccess', _978 => _978.reflow]), reflowMode: _nullishCoalesce(_optionalChain([options, 'optionalAccess', _979 => _979.reflowMode]), () => ( "keep")), highlights: _optionalChain([options, 'optionalAccess', _980 => _980.highlights]) });
|
|
41700
41700
|
}
|
|
@@ -41916,7 +41916,7 @@ var FOLD_END = 42124;
|
|
|
41916
41916
|
var FOLD_SHIFT = 983040 - 40960;
|
|
41917
41917
|
function textChar(ch) {
|
|
41918
41918
|
if (ch >= FOLD_START && ch <= FOLD_END) {
|
|
41919
|
-
const mapped =
|
|
41919
|
+
const mapped = _chunkT7PN5D4Dcjs.mapPuaText.call(void 0, String.fromCodePoint(ch + FOLD_SHIFT));
|
|
41920
41920
|
return /[\u{F0000}-\u{FFFFF}]/u.test(mapped) ? "" : mapped;
|
|
41921
41921
|
}
|
|
41922
41922
|
if (ch === 65534 || ch === 65535 || ch >= 55296 && ch <= 57343) return "\uFFFD";
|
|
@@ -42288,7 +42288,7 @@ function renderHwp5Records(docInfo, styles, secRecords, binData, options, select
|
|
|
42288
42288
|
}
|
|
42289
42289
|
roots.push({ root, index: si });
|
|
42290
42290
|
}
|
|
42291
|
-
if (roots.length === 0) throw new (0,
|
|
42291
|
+
if (roots.length === 0) throw new (0, _chunkMCUX2Y2Ccjs.KordocError)("\uB80C\uB354\uD560 \uAD6C\uC5ED\uC774 \uC5C6\uC2B5\uB2C8\uB2E4 \u2014 HWP \uAC00 \uC190\uC0C1\uB418\uC5C8\uC744 \uC218 \uC788\uC2B5\uB2C8\uB2E4");
|
|
42292
42292
|
const r = renderSectionRoots(roots, { styles, images, warnings, reflow: !!_optionalChain([options, 'optionalAccess', _989 => _989.reflow]), reflowMode: _nullishCoalesce(_optionalChain([options, 'optionalAccess', _990 => _990.reflowMode]), () => ( "keep")), highlights: _optionalChain([options, 'optionalAccess', _991 => _991.highlights]) });
|
|
42293
42293
|
return assemblePageSvgs(r, "hwp", select);
|
|
42294
42294
|
}
|
|
@@ -42301,7 +42301,7 @@ function renderHwp5Pages(input, options, select) {
|
|
|
42301
42301
|
const styles = buildHwp5RenderStyles(_nullishCoalesce(docInfoRecords, () => ( [])));
|
|
42302
42302
|
const docInfo = docInfoRecords ? parseDocInfo(docInfoRecords) : null;
|
|
42303
42303
|
const sections = readHwp5SectionStreams(c);
|
|
42304
|
-
if (sections.length === 0) throw new (0,
|
|
42304
|
+
if (sections.length === 0) throw new (0, _chunkMCUX2Y2Ccjs.KordocError)("\uC139\uC158 \uC2A4\uD2B8\uB9BC\uC744 \uCC3E\uC744 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4");
|
|
42305
42305
|
const parseWarnings = [];
|
|
42306
42306
|
const secRecords = readHwp5SectionRecords(c, sections, parseWarnings);
|
|
42307
42307
|
for (const w of parseWarnings) warnings.push(w.message);
|
|
@@ -42386,14 +42386,14 @@ async function loadSharp() {
|
|
|
42386
42386
|
const mod = await Promise.resolve().then(() => _interopRequireWildcard(require("sharp")));
|
|
42387
42387
|
return _nullishCoalesce(mod.default, () => ( mod));
|
|
42388
42388
|
} catch (e45) {
|
|
42389
|
-
throw new (0,
|
|
42390
|
-
'PNG \uB798\uC2A4\uD130\uC5D0\uB294 sharp\uAC00 \uD544\uC694\uD569\uB2C8\uB2E4 (npm install sharp). sharp \uC5C6\uC774 \uC4F0\uB824\uBA74 format: "svg" + output_path\uB85C SVG \uD30C\uC77C \uC800\uC7A5\uC744 \uC0AC\uC6A9\uD558\uC138\uC694.' +
|
|
42389
|
+
throw new (0, _chunkMCUX2Y2Ccjs.KordocError)(
|
|
42390
|
+
'PNG \uB798\uC2A4\uD130\uC5D0\uB294 sharp\uAC00 \uD544\uC694\uD569\uB2C8\uB2E4 (npm install sharp). sharp \uC5C6\uC774 \uC4F0\uB824\uBA74 format: "svg" + output_path\uB85C SVG \uD30C\uC77C \uC800\uC7A5\uC744 \uC0AC\uC6A9\uD558\uC138\uC694.' + _chunkMCUX2Y2Ccjs.OPTIONAL_DEP_INSTALL_HINT
|
|
42391
42391
|
);
|
|
42392
42392
|
}
|
|
42393
42393
|
}
|
|
42394
42394
|
async function rasterizePageSvg(svg, widthPt, heightPt, options = {}) {
|
|
42395
42395
|
const sharp = await loadSharp();
|
|
42396
|
-
if (!(widthPt > 0) || !(heightPt > 0)) throw new (0,
|
|
42396
|
+
if (!(widthPt > 0) || !(heightPt > 0)) throw new (0, _chunkMCUX2Y2Ccjs.KordocError)(`\uC798\uBABB\uB41C \uD398\uC774\uC9C0 \uD06C\uAE30: ${widthPt}x${heightPt}pt`);
|
|
42397
42397
|
const maxW = _nullishCoalesce(options.maxWidthPx, () => ( 1400));
|
|
42398
42398
|
const maxH = _nullishCoalesce(options.maxHeightPx, () => ( 4e3));
|
|
42399
42399
|
const scale2 = Math.min(maxW / widthPt, maxH / heightPt, 2);
|
|
@@ -42411,11 +42411,11 @@ async function renderHtmlToPdf(html, options = {}) {
|
|
|
42411
42411
|
try {
|
|
42412
42412
|
puppeteer = await Promise.resolve().then(() => _interopRequireWildcard(require("puppeteer-core")));
|
|
42413
42413
|
} catch (e46) {
|
|
42414
|
-
throw new (0,
|
|
42414
|
+
throw new (0, _chunkMCUX2Y2Ccjs.KordocError)("PDF \uB80C\uB354\uC5D0\uB294 puppeteer-core \uAC00 \uD544\uC694\uD569\uB2C8\uB2E4 (npm install puppeteer-core). SVG/HTML/PNG \uB294 Chromium \uC5C6\uC774 \uB429\uB2C8\uB2E4");
|
|
42415
42415
|
}
|
|
42416
42416
|
const executablePath = _nullishCoalesce(_nullishCoalesce(options.browserExecutablePath, () => ( process.env.PUPPETEER_EXECUTABLE_PATH)), () => ( findChromiumPath()));
|
|
42417
42417
|
if (!executablePath) {
|
|
42418
|
-
throw new (0,
|
|
42418
|
+
throw new (0, _chunkMCUX2Y2Ccjs.KordocError)("Chromium \uC2E4\uD589 \uD30C\uC77C\uC744 \uCC3E\uC744 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4 \u2014 browserExecutablePath \uC635\uC158 \uB610\uB294 PUPPETEER_EXECUTABLE_PATH \uD658\uACBD\uBCC0\uC218\uB97C \uC9C0\uC815\uD558\uC138\uC694");
|
|
42419
42419
|
}
|
|
42420
42420
|
const { browser, page } = await launchLockedPage(puppeteer, executablePath);
|
|
42421
42421
|
try {
|
|
@@ -42431,13 +42431,13 @@ async function renderHtmlToPdf(html, options = {}) {
|
|
|
42431
42431
|
async function loadBuffer(input) {
|
|
42432
42432
|
if (typeof input === "string") {
|
|
42433
42433
|
try {
|
|
42434
|
-
return
|
|
42434
|
+
return _chunkMCUX2Y2Ccjs.toArrayBuffer.call(void 0, await _promises.readFile.call(void 0, input));
|
|
42435
42435
|
} catch (err) {
|
|
42436
42436
|
const code = err instanceof Error && "code" in err ? err.code : void 0;
|
|
42437
|
-
throw new (0,
|
|
42437
|
+
throw new (0, _chunkMCUX2Y2Ccjs.KordocError)(code === "ENOENT" ? `\uD30C\uC77C\uC744 \uCC3E\uC744 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4: ${input}` : `\uD30C\uC77C \uC77D\uAE30 \uC2E4\uD328: ${input}`);
|
|
42438
42438
|
}
|
|
42439
42439
|
}
|
|
42440
|
-
if (Buffer.isBuffer(input)) return
|
|
42440
|
+
if (Buffer.isBuffer(input)) return _chunkMCUX2Y2Ccjs.toArrayBuffer.call(void 0, input);
|
|
42441
42441
|
if (input instanceof Uint8Array) return input.buffer.slice(input.byteOffset, input.byteOffset + input.byteLength);
|
|
42442
42442
|
return input;
|
|
42443
42443
|
}
|
|
@@ -42446,17 +42446,17 @@ async function sourceFormatOf(buffer) {
|
|
|
42446
42446
|
if (format2 === "hwpx") {
|
|
42447
42447
|
const zip = await detectZipFormat(buffer);
|
|
42448
42448
|
if (zip === "hwpx" || zip === "unknown") return "hwpx";
|
|
42449
|
-
throw new (0,
|
|
42449
|
+
throw new (0, _chunkMCUX2Y2Ccjs.KordocError)(`\uB80C\uB354 \uBBF8\uC9C0\uC6D0 \uD615\uC2DD(${zip}) \u2014 \uB808\uC774\uC544\uC6C3 \uB80C\uB354\uB294 HWPX\xB7HWP \uB9CC \uC9C0\uC6D0\uD569\uB2C8\uB2E4`);
|
|
42450
42450
|
}
|
|
42451
42451
|
if (format2 === "hwp") return "hwp";
|
|
42452
|
-
throw new (0,
|
|
42452
|
+
throw new (0, _chunkMCUX2Y2Ccjs.KordocError)(`\uB80C\uB354 \uBBF8\uC9C0\uC6D0 \uD615\uC2DD(${format2}) \u2014 \uB808\uC774\uC544\uC6C3 \uB80C\uB354\uB294 HWPX\xB7HWP \uB9CC \uC9C0\uC6D0\uD569\uB2C8\uB2E4`);
|
|
42453
42453
|
}
|
|
42454
42454
|
async function renderDocumentToScene(input, options = {}) {
|
|
42455
42455
|
const buffer = await loadBuffer(input);
|
|
42456
42456
|
const source = await sourceFormatOf(buffer);
|
|
42457
42457
|
const select = options.pages !== void 0 ? (pageCount) => {
|
|
42458
42458
|
const set = _chunkJ55UQC5Hcjs.parsePageRange.call(void 0, options.pages, pageCount);
|
|
42459
|
-
if (set.size === 0) throw new (0,
|
|
42459
|
+
if (set.size === 0) throw new (0, _chunkMCUX2Y2Ccjs.KordocError)(`\uC120\uD0DD\uD55C \uD398\uC774\uC9C0\uAC00 \uC5C6\uC2B5\uB2C8\uB2E4 \u2014 \uBB38\uC11C\uB294 ${pageCount}\uCABD (pages: ${JSON.stringify(options.pages)})`);
|
|
42460
42460
|
return set;
|
|
42461
42461
|
} : void 0;
|
|
42462
42462
|
const renderOptions = { reflow: _nullishCoalesce(options.reflow, () => ( true)), reflowMode: options.reflowMode, highlights: options.highlights, maxImageBytes: options.maxImageBytes };
|
|
@@ -42492,7 +42492,7 @@ async function renderDocument(input, options) {
|
|
|
42492
42492
|
break;
|
|
42493
42493
|
}
|
|
42494
42494
|
default:
|
|
42495
|
-
throw new (0,
|
|
42495
|
+
throw new (0, _chunkMCUX2Y2Ccjs.KordocError)(`\uC54C \uC218 \uC5C6\uB294 \uB80C\uB354 \uD3EC\uB9F7: ${String(options.format)} (svg|html|png|jpeg|pdf)`);
|
|
42496
42496
|
}
|
|
42497
42497
|
return { scene, assets };
|
|
42498
42498
|
}
|
|
@@ -42522,7 +42522,7 @@ async function extractRenderedRegions(input, options = {}) {
|
|
|
42522
42522
|
const out = [];
|
|
42523
42523
|
for (const [page, items] of [...byPage.entries()].sort((a, b) => a[0] - b[0])) {
|
|
42524
42524
|
const meta = scene.pages.find((p) => p.page === page);
|
|
42525
|
-
if (!meta) throw new (0,
|
|
42525
|
+
if (!meta) throw new (0, _chunkMCUX2Y2Ccjs.KordocError)(`\uD398\uC774\uC9C0 ${page} \uBA54\uD0C0 \uC5C6\uC74C`);
|
|
42526
42526
|
const raster = await rasterizePageSvg(pageSvgs.get(page), meta.width, meta.height, { format: format2, maxWidthPx: options.maxWidthPx, quality: options.quality });
|
|
42527
42527
|
for (const { region, bbox } of items) {
|
|
42528
42528
|
const rect = cropRect(bbox, raster.scale, raster.widthPx, raster.heightPx, _nullishCoalesce(options.paddingPt, () => ( 0)));
|
|
@@ -42546,9 +42546,9 @@ function wantsCrop(kind, policy) {
|
|
|
42546
42546
|
}
|
|
42547
42547
|
async function extractTables(input, options = {}) {
|
|
42548
42548
|
const policy = _nullishCoalesce(options.policy, () => ( "non-tabular-and-uncertain"));
|
|
42549
|
-
const buffer = typeof input === "string" ?
|
|
42549
|
+
const buffer = typeof input === "string" ? _chunkMCUX2Y2Ccjs.toArrayBuffer.call(void 0, await _promises.readFile.call(void 0, input)) : Buffer.isBuffer(input) ? _chunkMCUX2Y2Ccjs.toArrayBuffer.call(void 0, input) : input;
|
|
42550
42550
|
const parsed = await parse(buffer, { classifyTables: true, layoutTables: "keep" });
|
|
42551
|
-
if (!parsed.success) throw new (0,
|
|
42551
|
+
if (!parsed.success) throw new (0, _chunkMCUX2Y2Ccjs.KordocError)(`\uD30C\uC2F1 \uC2E4\uD328: ${parsed.error}`);
|
|
42552
42552
|
const blocks = collectTableBlocks(parsed.blocks);
|
|
42553
42553
|
const out = blocks.map((b, i) => ({
|
|
42554
42554
|
id: _nullishCoalesce(b.table.sourceId, () => ( `tbl-${i + 1}`)),
|
|
@@ -42613,13 +42613,13 @@ async function parse(input, options) {
|
|
|
42613
42613
|
if (typeof input === "string") {
|
|
42614
42614
|
try {
|
|
42615
42615
|
const buf = await _promises.readFile.call(void 0, input);
|
|
42616
|
-
buffer =
|
|
42616
|
+
buffer = _chunkMCUX2Y2Ccjs.toArrayBuffer.call(void 0, buf);
|
|
42617
42617
|
} catch (err) {
|
|
42618
42618
|
const msg2 = err instanceof Error && "code" in err && err.code === "ENOENT" ? `\uD30C\uC77C\uC744 \uCC3E\uC744 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4: ${input}` : `\uD30C\uC77C \uC77D\uAE30 \uC2E4\uD328: ${input}`;
|
|
42619
|
-
return { success: false, fileType: "unknown", error: msg2, code:
|
|
42619
|
+
return { success: false, fileType: "unknown", error: msg2, code: _chunkMCUX2Y2Ccjs.classifyError.call(void 0, err) };
|
|
42620
42620
|
}
|
|
42621
42621
|
} else if (Buffer.isBuffer(input)) {
|
|
42622
|
-
buffer =
|
|
42622
|
+
buffer = _chunkMCUX2Y2Ccjs.toArrayBuffer.call(void 0, input);
|
|
42623
42623
|
} else {
|
|
42624
42624
|
buffer = input;
|
|
42625
42625
|
}
|
|
@@ -42638,7 +42638,7 @@ async function parse(input, options) {
|
|
|
42638
42638
|
out = { ...result, warnings: [..._nullishCoalesce(result.warnings, () => ( [])), { code: "PARTIAL_PARSE", message: `\uC694\uCCAD\uD55C \uCABD \uBC94\uC704(${opts.pages})\uAC00 \uBB38\uC11C \uCABD(1~${result.pageCount})\uACFC \uACB9\uCE58\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4` }] };
|
|
42639
42639
|
}
|
|
42640
42640
|
if (out.success && !out.pages) {
|
|
42641
|
-
const pages =
|
|
42641
|
+
const pages = _chunk57VNFMMScjs.blocksToPages.call(void 0, out.blocks, (bs) => _chunkT7PN5D4Dcjs.blocksToMarkdown.call(void 0, bs, { tableFormat: _optionalChain([opts, 'optionalAccess', _997 => _997.tableFormat]) }));
|
|
42642
42642
|
if (pages) out = { ...out, pages };
|
|
42643
42643
|
}
|
|
42644
42644
|
if (out.success && _optionalChain([opts, 'optionalAccess', _998 => _998.plain])) {
|
|
@@ -42687,23 +42687,23 @@ async function dispatch(format2, buffer, opts) {
|
|
|
42687
42687
|
}
|
|
42688
42688
|
}
|
|
42689
42689
|
function scriptsOff(r, off) {
|
|
42690
|
-
return off ?
|
|
42690
|
+
return off ? _chunkT7PN5D4Dcjs.stripScriptTags.call(void 0, r) : r;
|
|
42691
42691
|
}
|
|
42692
42692
|
async function parseImage(buffer, options) {
|
|
42693
42693
|
try {
|
|
42694
|
-
const { parseImageDocument } = await Promise.resolve().then(() => _interopRequireWildcard(require("./image-ocr-
|
|
42694
|
+
const { parseImageDocument } = await Promise.resolve().then(() => _interopRequireWildcard(require("./image-ocr-UJRSQ2T3.cjs")));
|
|
42695
42695
|
const { blocks, warnings } = await parseImageDocument(buffer, options);
|
|
42696
|
-
|
|
42696
|
+
_chunkT7PN5D4Dcjs.stripScriptTags.call(void 0, { blocks });
|
|
42697
42697
|
return {
|
|
42698
42698
|
success: true,
|
|
42699
42699
|
fileType: "image",
|
|
42700
|
-
markdown:
|
|
42700
|
+
markdown: _chunkT7PN5D4Dcjs.blocksToMarkdown.call(void 0, blocks, { tableFormat: _optionalChain([options, 'optionalAccess', _1000 => _1000.tableFormat]) }),
|
|
42701
42701
|
blocks,
|
|
42702
42702
|
warnings: warnings.length ? warnings : void 0,
|
|
42703
42703
|
pageCount: 1
|
|
42704
42704
|
};
|
|
42705
42705
|
} catch (err) {
|
|
42706
|
-
return { success: false, fileType: "image", error:
|
|
42706
|
+
return { success: false, fileType: "image", error: _chunkMCUX2Y2Ccjs.sanitizeError.call(void 0, err), code: _chunkMCUX2Y2Ccjs.classifyError.call(void 0, err) };
|
|
42707
42707
|
}
|
|
42708
42708
|
}
|
|
42709
42709
|
async function parseHwp3(buffer, options) {
|
|
@@ -42711,7 +42711,7 @@ async function parseHwp3(buffer, options) {
|
|
|
42711
42711
|
const { markdown, blocks, metadata, outline, warnings, images } = parseHwp3Document(buffer, options);
|
|
42712
42712
|
return { success: true, fileType: "hwp3", markdown, blocks, metadata, outline, warnings, images, pageCount: _optionalChain([metadata, 'optionalAccess', _1001 => _1001.pageCount]) };
|
|
42713
42713
|
} catch (err) {
|
|
42714
|
-
return { success: false, fileType: "hwp3", error:
|
|
42714
|
+
return { success: false, fileType: "hwp3", error: _chunkMCUX2Y2Ccjs.sanitizeError.call(void 0, err), code: _chunkMCUX2Y2Ccjs.classifyError.call(void 0, err) };
|
|
42715
42715
|
}
|
|
42716
42716
|
}
|
|
42717
42717
|
async function parseHwpx(buffer, options) {
|
|
@@ -42719,7 +42719,7 @@ async function parseHwpx(buffer, options) {
|
|
|
42719
42719
|
const { markdown, blocks, metadata, outline, warnings, images } = await parseHwpxDocument(buffer, options);
|
|
42720
42720
|
return scriptsOff({ success: true, fileType: "hwpx", markdown, blocks, metadata, outline, warnings, images: _optionalChain([images, 'optionalAccess', _1002 => _1002.length]) ? images : void 0, pageCount: _optionalChain([metadata, 'optionalAccess', _1003 => _1003.pageCount]) }, _optionalChain([options, 'optionalAccess', _1004 => _1004.scriptTags]) === false);
|
|
42721
42721
|
} catch (err) {
|
|
42722
|
-
return { success: false, fileType: "hwpx", error:
|
|
42722
|
+
return { success: false, fileType: "hwpx", error: _chunkMCUX2Y2Ccjs.sanitizeError.call(void 0, err), code: _chunkMCUX2Y2Ccjs.classifyError.call(void 0, err) };
|
|
42723
42723
|
}
|
|
42724
42724
|
}
|
|
42725
42725
|
async function parseHwp(buffer, options) {
|
|
@@ -42745,13 +42745,13 @@ async function parseHwp(buffer, options) {
|
|
|
42745
42745
|
}
|
|
42746
42746
|
return scriptsOff({ success: true, fileType: "hwp", markdown, blocks, metadata, outline, warnings, images: _optionalChain([images, 'optionalAccess', _1006 => _1006.length]) ? images : void 0, pageCount: _optionalChain([metadata, 'optionalAccess', _1007 => _1007.pageCount]) }, _optionalChain([options, 'optionalAccess', _1008 => _1008.scriptTags]) === false);
|
|
42747
42747
|
} catch (err) {
|
|
42748
|
-
return { success: false, fileType: "hwp", error:
|
|
42748
|
+
return { success: false, fileType: "hwp", error: _chunkMCUX2Y2Ccjs.sanitizeError.call(void 0, err), code: _chunkMCUX2Y2Ccjs.classifyError.call(void 0, err) };
|
|
42749
42749
|
}
|
|
42750
42750
|
}
|
|
42751
42751
|
async function parsePdf(buffer, options) {
|
|
42752
42752
|
let parsePdfDocument;
|
|
42753
42753
|
try {
|
|
42754
|
-
const mod = await Promise.resolve().then(() => _interopRequireWildcard(require("./parser-
|
|
42754
|
+
const mod = await Promise.resolve().then(() => _interopRequireWildcard(require("./parser-VKWUMUML.cjs")));
|
|
42755
42755
|
parsePdfDocument = mod.parsePdfDocument;
|
|
42756
42756
|
} catch (e48) {
|
|
42757
42757
|
return {
|
|
@@ -42766,7 +42766,7 @@ async function parsePdf(buffer, options) {
|
|
|
42766
42766
|
return scriptsOff({ success: true, fileType: "pdf", markdown, blocks, metadata, outline, warnings, isImageBased, pageQuality, qualitySummary, images, pages, pageCount: _optionalChain([metadata, 'optionalAccess', _1009 => _1009.pageCount]) }, _optionalChain([options, 'optionalAccess', _1010 => _1010.scriptTags]) !== true);
|
|
42767
42767
|
} catch (err) {
|
|
42768
42768
|
const isImageBased = err instanceof Error && "isImageBased" in err ? true : void 0;
|
|
42769
|
-
return { success: false, fileType: "pdf", error:
|
|
42769
|
+
return { success: false, fileType: "pdf", error: _chunkMCUX2Y2Ccjs.sanitizeError.call(void 0, err), code: _chunkMCUX2Y2Ccjs.classifyError.call(void 0, err), isImageBased };
|
|
42770
42770
|
}
|
|
42771
42771
|
}
|
|
42772
42772
|
async function parseXlsx(buffer, options) {
|
|
@@ -42774,7 +42774,7 @@ async function parseXlsx(buffer, options) {
|
|
|
42774
42774
|
const { markdown, blocks, metadata, warnings } = await parseXlsxDocument(buffer, options);
|
|
42775
42775
|
return { success: true, fileType: "xlsx", markdown, blocks, metadata, warnings, pageCount: _optionalChain([metadata, 'optionalAccess', _1011 => _1011.pageCount]) };
|
|
42776
42776
|
} catch (err) {
|
|
42777
|
-
return { success: false, fileType: "xlsx", error:
|
|
42777
|
+
return { success: false, fileType: "xlsx", error: _chunkMCUX2Y2Ccjs.sanitizeError.call(void 0, err), code: _chunkMCUX2Y2Ccjs.classifyError.call(void 0, err) };
|
|
42778
42778
|
}
|
|
42779
42779
|
}
|
|
42780
42780
|
async function parseXls(buffer, options) {
|
|
@@ -42782,7 +42782,7 @@ async function parseXls(buffer, options) {
|
|
|
42782
42782
|
const { markdown, blocks, metadata, warnings } = await parseXlsDocument(buffer, options);
|
|
42783
42783
|
return { success: true, fileType: "xls", markdown, blocks, metadata, warnings, pageCount: _optionalChain([metadata, 'optionalAccess', _1012 => _1012.pageCount]) };
|
|
42784
42784
|
} catch (err) {
|
|
42785
|
-
return { success: false, fileType: "xls", error:
|
|
42785
|
+
return { success: false, fileType: "xls", error: _chunkMCUX2Y2Ccjs.sanitizeError.call(void 0, err), code: _chunkMCUX2Y2Ccjs.classifyError.call(void 0, err) };
|
|
42786
42786
|
}
|
|
42787
42787
|
}
|
|
42788
42788
|
async function parseDocx(buffer, options) {
|
|
@@ -42790,7 +42790,7 @@ async function parseDocx(buffer, options) {
|
|
|
42790
42790
|
const { markdown, blocks, metadata, outline, warnings, images } = await parseDocxDocument(buffer, options);
|
|
42791
42791
|
return scriptsOff({ success: true, fileType: "docx", markdown, blocks, metadata, outline, warnings, images: _optionalChain([images, 'optionalAccess', _1013 => _1013.length]) ? images : void 0, pageCount: _optionalChain([metadata, 'optionalAccess', _1014 => _1014.pageCount]) }, _optionalChain([options, 'optionalAccess', _1015 => _1015.scriptTags]) === false);
|
|
42792
42792
|
} catch (err) {
|
|
42793
|
-
return { success: false, fileType: "docx", error:
|
|
42793
|
+
return { success: false, fileType: "docx", error: _chunkMCUX2Y2Ccjs.sanitizeError.call(void 0, err), code: _chunkMCUX2Y2Ccjs.classifyError.call(void 0, err) };
|
|
42794
42794
|
}
|
|
42795
42795
|
}
|
|
42796
42796
|
async function parsePptx(buffer, options) {
|
|
@@ -42798,7 +42798,7 @@ async function parsePptx(buffer, options) {
|
|
|
42798
42798
|
const { markdown, blocks, metadata, outline, warnings, images } = await parsePptxDocument(buffer, options);
|
|
42799
42799
|
return scriptsOff({ success: true, fileType: "pptx", markdown, blocks, metadata, outline, warnings, images: _optionalChain([images, 'optionalAccess', _1016 => _1016.length]) ? images : void 0, pageCount: _optionalChain([metadata, 'optionalAccess', _1017 => _1017.pageCount]) }, _optionalChain([options, 'optionalAccess', _1018 => _1018.scriptTags]) === false);
|
|
42800
42800
|
} catch (err) {
|
|
42801
|
-
return { success: false, fileType: "pptx", error:
|
|
42801
|
+
return { success: false, fileType: "pptx", error: _chunkMCUX2Y2Ccjs.sanitizeError.call(void 0, err), code: _chunkMCUX2Y2Ccjs.classifyError.call(void 0, err) };
|
|
42802
42802
|
}
|
|
42803
42803
|
}
|
|
42804
42804
|
async function parseHwpml(buffer, options) {
|
|
@@ -42806,16 +42806,16 @@ async function parseHwpml(buffer, options) {
|
|
|
42806
42806
|
const { markdown, blocks, metadata, outline, warnings } = parseHwpmlDocument(buffer, options);
|
|
42807
42807
|
return { success: true, fileType: "hwpml", markdown, blocks, metadata, outline, warnings, pageCount: _optionalChain([metadata, 'optionalAccess', _1019 => _1019.pageCount]) };
|
|
42808
42808
|
} catch (err) {
|
|
42809
|
-
return { success: false, fileType: "hwpml", error:
|
|
42809
|
+
return { success: false, fileType: "hwpml", error: _chunkMCUX2Y2Ccjs.sanitizeError.call(void 0, err), code: _chunkMCUX2Y2Ccjs.classifyError.call(void 0, err) };
|
|
42810
42810
|
}
|
|
42811
42811
|
}
|
|
42812
42812
|
async function fillForm(input, values, outputFormat = "markdown") {
|
|
42813
42813
|
let buffer;
|
|
42814
42814
|
if (typeof input === "string") {
|
|
42815
42815
|
const buf = await _promises.readFile.call(void 0, input);
|
|
42816
|
-
buffer =
|
|
42816
|
+
buffer = _chunkMCUX2Y2Ccjs.toArrayBuffer.call(void 0, buf);
|
|
42817
42817
|
} else if (Buffer.isBuffer(input)) {
|
|
42818
|
-
buffer =
|
|
42818
|
+
buffer = _chunkMCUX2Y2Ccjs.toArrayBuffer.call(void 0, input);
|
|
42819
42819
|
} else {
|
|
42820
42820
|
buffer = input;
|
|
42821
42821
|
}
|
|
@@ -42841,7 +42841,7 @@ async function fillForm(input, values, outputFormat = "markdown") {
|
|
|
42841
42841
|
throw new Error(`\uC11C\uC2DD \uD30C\uC2F1 \uC2E4\uD328: ${parsed.error}`);
|
|
42842
42842
|
}
|
|
42843
42843
|
const fill = fillFormFields(parsed.blocks, values);
|
|
42844
|
-
const markdown =
|
|
42844
|
+
const markdown = _chunkT7PN5D4Dcjs.blocksToMarkdown.call(void 0, fill.blocks);
|
|
42845
42845
|
if (outputFormat === "hwpx") {
|
|
42846
42846
|
const hwpxBuffer = await markdownToHwpx(markdown);
|
|
42847
42847
|
return { output: hwpxBuffer, format: "hwpx", fill };
|
|
@@ -42940,5 +42940,5 @@ async function fillForm(input, values, outputFormat = "markdown") {
|
|
|
42940
42940
|
|
|
42941
42941
|
|
|
42942
42942
|
|
|
42943
|
-
exports.AGENCY_COMMON_NAME = AGENCY_COMMON_NAME; exports.BUILTIN_TEMPLATES = BUILTIN_TEMPLATES; exports.DEFAULT_REDACT_RULES = DEFAULT_REDACT_RULES; exports.HwpxSession = HwpxSession; exports.PRESET_ALIAS = PRESET_ALIAS; exports.SPACE_EM_FIXED = SPACE_EM_FIXED; exports.SPACE_EM_FONT = SPACE_EM_FONT; exports.VERSION =
|
|
42943
|
+
exports.AGENCY_COMMON_NAME = AGENCY_COMMON_NAME; exports.BUILTIN_TEMPLATES = BUILTIN_TEMPLATES; exports.DEFAULT_REDACT_RULES = DEFAULT_REDACT_RULES; exports.HwpxSession = HwpxSession; exports.PRESET_ALIAS = PRESET_ALIAS; exports.SPACE_EM_FIXED = SPACE_EM_FIXED; exports.SPACE_EM_FONT = SPACE_EM_FONT; exports.VERSION = _chunkMCUX2Y2Ccjs.VERSION; exports.ValueCursor = ValueCursor; exports.agencyNames = agencyNames; exports.agencyStyle = agencyStyle; exports.applySplices = applySplices; exports.blocksToChunks = blocksToChunks; exports.blocksToMarkdown = _chunkT7PN5D4Dcjs.blocksToMarkdown; exports.blocksToPages = _chunk57VNFMMScjs.blocksToPages; exports.blocksToPdf = blocksToPdf; exports.buildParagraphSplices = buildParagraphSplices; exports.buildRangeSplices = buildRangeSplices; exports.charWidthEm1000 = charWidthEm1000; exports.chooseTableRepresentation = chooseTableRepresentation; exports.classifyTable = classifyTable; exports.classifyTableTree = classifyTableTree; exports.collectTableBlocks = collectTableBlocks; exports.compare = compare; exports.detectFormat = detectFormat; exports.detectOle2Format = detectOle2Format; exports.detectZipFormat = detectZipFormat; exports.diffBlocks = diffBlocks; exports.extractClickHereFields = extractClickHereFields; exports.extractFormFields = extractFormFields; exports.extractFormSchema = extractFormSchema; exports.extractRenderedRegions = extractRenderedRegions; exports.extractTables = extractTables; exports.fillForm = fillForm; exports.fillFormFields = fillFormFields; exports.fillHwpx = fillHwpx; exports.fillWithUniqueGuard = fillWithUniqueGuard; exports.fitRatioForFewerLines = fitRatioForFewerLines; exports.flattenLayoutTables = _chunkT7PN5D4Dcjs.flattenLayoutTables; exports.formatFillValue = formatFillValue; exports.gongmunLintWarnings = gongmunLintWarnings; exports.hasStructuredCellContent = _chunkT7PN5D4Dcjs.hasStructuredCellContent; exports.hwpxToProfile = hwpxToProfile; exports.incompatibleGongmunWarnings = incompatibleGongmunWarnings; exports.inferFieldType = inferFieldType; exports.isHwpxFile = isHwpxFile; exports.isKnownFont = isKnownFont; exports.isLabelCell = isLabelCell; exports.isOldHwpFile = isOldHwpFile; exports.isPdfFile = isPdfFile; exports.isZipFile = isZipFile; exports.lintGongmunText = lintGongmunText; exports.lintMuncheText = lintMuncheText; exports.markdownToHwpx = markdownToHwpx; exports.markdownToPdf = markdownToPdf; exports.measureTextWidth = measureTextWidth; exports.muncheLintWarnings = muncheLintWarnings; exports.normalizeGongmunPreset = normalizeGongmunPreset; exports.openHwpxDocument = openHwpxDocument; exports.parse = parse; exports.parseDocx = parseDocx; exports.parseHwp = parseHwp; exports.parseHwp3 = parseHwp3; exports.parseHwpml = parseHwpml; exports.parseHwpx = parseHwpx; exports.parseImage = parseImage; exports.parsePdf = parsePdf; exports.parsePptx = parsePptx; exports.parseXls = parseXls; exports.parseXlsx = parseXlsx; exports.patchHwp = patchHwp; exports.patchHwpx = patchHwpx; exports.patchHwpxBlocks = patchHwpxBlocks; exports.placeSealHwpx = placeSealHwpx; exports.readBuiltinTemplate = readBuiltinTemplate; exports.readBuiltinTemplateSample = readBuiltinTemplateSample; exports.redactMarkdown = redactMarkdown; exports.redactText = redactText; exports.renderDocument = renderDocument; exports.renderDocumentToScene = renderDocumentToScene; exports.renderHtml = renderHtml; exports.renderHwp5Pages = renderHwp5Pages; exports.renderHwpxToSvg = renderHwpxToSvg; exports.renderSceneToHtml = renderSceneToHtml; exports.resolveBuiltinTemplate = resolveBuiltinTemplate; exports.scanSectionXml = scanSectionXml; exports.simulateWrap = simulateWrap; exports.simulateWrapKeepWord = simulateWrapKeepWord; exports.unknownFontWarnings = unknownFontWarnings; exports.usesGaejosikMunche = usesGaejosikMunche; exports.validateHwpx = validateHwpx;
|
|
42944
42944
|
//# sourceMappingURL=index.cjs.map
|