kordoc 3.4.1 → 3.5.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -21
- package/README.md +590 -584
- package/dist/{-YOQGQ22S.js → -BNJMPTQ2.js} +9 -5
- package/dist/{chunk-X34YWRL5.cjs → chunk-DCZVOIEO.cjs} +1 -1
- package/dist/chunk-DCZVOIEO.cjs.map +1 -0
- package/dist/{chunk-AIQ3ISQU.js → chunk-GE43BE46.js} +1 -1
- package/dist/chunk-GE43BE46.js.map +1 -0
- package/dist/{chunk-CGHPBI3X.js → chunk-GMPDZD7Q.js} +206 -42
- package/dist/chunk-GMPDZD7Q.js.map +1 -0
- package/dist/chunk-GS7T56RP.cjs.map +1 -1
- package/dist/{chunk-FPFB7AFX.js → chunk-IKAXUVSU.js} +16 -2
- package/dist/chunk-IKAXUVSU.js.map +1 -0
- package/dist/{chunk-CFQLK3LM.js → chunk-MEPHGCPQ.js} +1 -1
- package/dist/chunk-MEPHGCPQ.js.map +1 -0
- package/dist/{chunk-3TBUDJDE.js → chunk-MOL7MDBG.js} +1 -1
- package/dist/chunk-MOL7MDBG.js.map +1 -0
- package/dist/{chunk-SE3KEL4G.js → chunk-OXOPDVNV.js} +16 -2
- package/dist/chunk-OXOPDVNV.js.map +1 -0
- package/dist/{chunk-W7JHJQ2O.cjs → chunk-RWSGBXSA.cjs} +25 -11
- package/dist/chunk-RWSGBXSA.cjs.map +1 -0
- package/dist/cli.js +10 -27
- package/dist/cli.js.map +1 -1
- package/dist/{detect-NTR2FUEG.js → detect-RI2MQ33K.js} +2 -2
- package/dist/{formula-ZYUDQHD3.cjs → formula-5NKVS2LR.cjs} +1 -1
- package/dist/formula-5NKVS2LR.cjs.map +1 -0
- package/dist/{formula-KOQV353G.js → formula-JCNF43NE.js} +1 -1
- package/dist/formula-JCNF43NE.js.map +1 -0
- package/dist/{formula-MEDGYQXS.js → formula-RXVSQPXI.js} +1 -1
- package/dist/formula-RXVSQPXI.js.map +1 -0
- package/dist/index.cjs +377 -213
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +9 -3
- package/dist/index.d.ts +9 -3
- package/dist/index.js +204 -40
- package/dist/index.js.map +1 -1
- package/dist/mcp.js +42 -6
- package/dist/mcp.js.map +1 -1
- package/dist/page-range-737B4EZW.js +8 -0
- package/dist/page-range-LNMXJU6W.js +7 -0
- package/dist/page-range-P7SDW6LR.cjs +8 -0
- package/dist/page-range-P7SDW6LR.cjs.map +1 -0
- package/dist/{parser-5HDZZWDH.js → parser-GHZMDUGG.js} +5 -5
- package/dist/parser-GHZMDUGG.js.map +1 -0
- package/dist/{parser-ET64VEEX.js → parser-XXQAMYGV.js} +5 -5
- package/dist/parser-XXQAMYGV.js.map +1 -0
- package/dist/{parser-JAZCZJI6.cjs → parser-ZLFOUVR4.cjs} +18 -18
- package/dist/parser-ZLFOUVR4.cjs.map +1 -0
- package/dist/{provider-H4WWSPOV.js → provider-4ZJKV3DC.js} +1 -1
- package/dist/provider-4ZJKV3DC.js.map +1 -0
- package/dist/{provider-7H4CPZYS.js → provider-AKROB7WQ.js} +1 -1
- package/dist/provider-AKROB7WQ.js.map +1 -0
- package/dist/{provider-5K7O3Z2O.cjs → provider-G4C2V2PD.cjs} +1 -1
- package/dist/provider-G4C2V2PD.cjs.map +1 -0
- package/dist/{setup-QSJ2INNS.js → setup-57FB3LSP.js} +1 -1
- package/dist/setup-57FB3LSP.js.map +1 -0
- package/dist/{watch-56GNC2YN.js → watch-IN3YN72W.js} +5 -5
- package/dist/watch-IN3YN72W.js.map +1 -0
- package/package.json +98 -98
- package/dist/chunk-3TBUDJDE.js.map +0 -1
- package/dist/chunk-AIQ3ISQU.js.map +0 -1
- package/dist/chunk-CFQLK3LM.js.map +0 -1
- package/dist/chunk-CGHPBI3X.js.map +0 -1
- package/dist/chunk-FPFB7AFX.js.map +0 -1
- package/dist/chunk-SE3KEL4G.js.map +0 -1
- package/dist/chunk-W7JHJQ2O.cjs.map +0 -1
- package/dist/chunk-X34YWRL5.cjs.map +0 -1
- package/dist/formula-KOQV353G.js.map +0 -1
- package/dist/formula-MEDGYQXS.js.map +0 -1
- package/dist/formula-ZYUDQHD3.cjs.map +0 -1
- package/dist/page-range-CIRRJPXJ.js +0 -7
- package/dist/page-range-OF5I4PQY.js +0 -8
- package/dist/page-range-TPIRSA3J.cjs +0 -8
- package/dist/page-range-TPIRSA3J.cjs.map +0 -1
- package/dist/parser-5HDZZWDH.js.map +0 -1
- package/dist/parser-ET64VEEX.js.map +0 -1
- package/dist/parser-JAZCZJI6.cjs.map +0 -1
- package/dist/provider-5K7O3Z2O.cjs.map +0 -1
- package/dist/provider-7H4CPZYS.js.map +0 -1
- package/dist/provider-H4WWSPOV.js.map +0 -1
- package/dist/setup-QSJ2INNS.js.map +0 -1
- package/dist/watch-56GNC2YN.js.map +0 -1
- /package/dist/{-YOQGQ22S.js.map → -BNJMPTQ2.js.map} +0 -0
- /package/dist/{detect-NTR2FUEG.js.map → detect-RI2MQ33K.js.map} +0 -0
- /package/dist/{page-range-CIRRJPXJ.js.map → page-range-737B4EZW.js.map} +0 -0
- /package/dist/{page-range-OF5I4PQY.js.map → page-range-LNMXJU6W.js.map} +0 -0
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["d:\\AI_Project\\kordoc\\dist\\parser-JAZCZJI6.cjs"],"names":[],"mappings":"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AAA;AACA,MAAA;AACA,QAAA;AACA,MAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,QAAA;AACA,MAAA;AACA,QAAA;AACA,UAAA;AACA,UAAA;AACA,QAAA;AACA,MAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,IAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,EAAA;AACA;AACA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA;AACA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA;AACA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,EAAA;AACA;AACA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,IAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA;AACA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA;AACA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,IAAA;AACA,EAAA;AACA;AACA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,EAAA;AACA;AACA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA;AACA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,IAAA;AACA,MAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA;AACA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,QAAA;AACA,QAAA;AACA,MAAA;AACA,IAAA;AACA,EAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,QAAA;AACA,QAAA;AACA,MAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,IAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA;AACA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,QAAA;AACA,QAAA;AACA,MAAA;AACA,IAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA;AACA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,IAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA;AACA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA;AACA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,QAAA;AACA,MAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA;AACA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,QAAA;AACA,QAAA;AACA,MAAA;AACA,IAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA;AACA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,EAAA;AACA;AACA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,EAAA;AACA;AACA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,QAAA;AACA,QAAA;AACA,QAAA;AACA,MAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,QAAA;AACA,UAAA;AACA,UAAA;AACA,YAAA;AACA,YAAA;AACA,YAAA;AACA,UAAA;AACA,QAAA;AACA,QAAA;AACA,MAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,QAAA;AACA,QAAA;AACA,MAAA;AACA,MAAA;AACA,IAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,QAAA;AACA,UAAA;AACA,UAAA;AACA,QAAA;AACA,QAAA;AACA,MAAA;AACA,MAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,QAAA;AACA,QAAA;AACA,QAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,IAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA;AACA;AACA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,EAAA;AACA;AACA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA;AACA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,QAAA;AACA,QAAA;AACA,QAAA;AACA,QAAA;AACA,MAAA;AACA,MAAA;AACA,IAAA;AACA,MAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA;AACA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,QAAA;AACA,QAAA;AACA,MAAA;AACA,MAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,QAAA;AACA,QAAA;AACA,QAAA;AACA,QAAA;AACA,MAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,IAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,QAAA;AACA,QAAA;AACA,QAAA;AACA,QAAA;AACA,UAAA;AACA,UAAA;AACA,UAAA;AACA,QAAA;AACA,UAAA;AACA,YAAA;AACA,YAAA;AACA,YAAA;AACA,YAAA;AACA,UAAA;AACA,QAAA;AACA,MAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA;AACA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA;AACA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA;AACA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,QAAA;AACA,MAAA;AACA,IAAA;AACA,MAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,QAAA;AACA,QAAA;AACA,MAAA;AACA,IAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,QAAA;AACA,QAAA;AACA,QAAA;AACA,UAAA;AACA,QAAA;AACA,MAAA;AACA,MAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA;AACA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA;AACA,EAAA;AACA;AACA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,IAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA;AACA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,IAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,IAAA;AACA,MAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA;AACA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA;AACA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,QAAA;AACA,UAAA;AACA,UAAA;AACA,UAAA;AACA,UAAA;AACA,UAAA;AACA,QAAA;AACA,MAAA;AACA,MAAA;AACA,QAAA;AACA,MAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,QAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,IAAA;AACA,MAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA;AACA;AACA,EAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA;AACA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,QAAA;AACA,MAAA;AACA,MAAA;AACA,QAAA;AACA,MAAA;AACA,QAAA;AACA,UAAA;AACA,QAAA;AACA,QAAA;AACA,MAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA;AACA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,IAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,QAAA;AACA,MAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,IAAA;AACA,MAAA;AACA,QAAA;AACA,UAAA;AACA,QAAA;AACA,MAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,QAAA;AACA,UAAA;AACA,QAAA;AACA,MAAA;AACA,IAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,MAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA;AACA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA;AACA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,QAAA;AACA,UAAA;AACA,QAAA;AACA,MAAA;AACA,IAAA;AACA,IAAA;AACA,EAAA;AACA;AACA;AACA,EAAA;AACA,IAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,EAAA;AACA;AACA;AACA,EAAA;AACA,EAAA;AACA;AACA;AACA,EAAA;AACA;AACA;AACA;AACA;AACA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,IAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,IAAA;AACA,EAAA;AACA;AACA;AACA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA;AACA;AACA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,QAAA;AACA,MAAA;AACA,QAAA;AACA,QAAA;AACA,MAAA;AACA,IAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,IAAA;AACA,MAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,EAAA;AACA;AACA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,QAAA;AACA,QAAA;AACA,MAAA;AACA,MAAA;AACA,QAAA;AACA,QAAA;AACA,MAAA;AACA,IAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA;AACA;AACA;AACA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,QAAA;AACA,UAAA;AACA,UAAA;AACA,QAAA;AACA,MAAA;AACA,MAAA;AACA,QAAA;AACA,QAAA;AACA,MAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,IAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,QAAA;AACA,UAAA;AACA,UAAA;AACA,UAAA;AACA,QAAA;AACA,MAAA;AACA,QAAA;AACA,QAAA;AACA,UAAA;AACA,YAAA;AACA,YAAA;AACA,YAAA;AACA,UAAA;AACA,QAAA;AACA,UAAA;AACA,QAAA;AACA,MAAA;AACA,MAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,QAAA;AACA,QAAA;AACA,QAAA;AACA,UAAA;AACA,YAAA;AACA,YAAA;AACA,YAAA;AACA,UAAA;AACA,UAAA;AACA,QAAA;AACA,MAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA;AACA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,QAAA;AACA,MAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,QAAA;AACA,MAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA;AACA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,IAAA;AACA,MAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA;AACA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,IAAA;AACA,MAAA;AACA;AACA,IAAA;AACA,MAAA;AACA;AACA,IAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,QAAA;AACA,QAAA;AACA,QAAA;AACA,QAAA;AACA,QAAA;AACA,QAAA;AACA,QAAA;AACA,QAAA;AACA,QAAA;AACA,QAAA;AACA,UAAA;AACA,YAAA;AACA,YAAA;AACA,YAAA;AACA,YAAA;AACA,UAAA;AACA,UAAA;AACA,UAAA;AACA,QAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,QAAA;AACA,QAAA;AACA,QAAA;AACA,QAAA;AACA,QAAA;AACA,QAAA;AACA,QAAA;AACA,UAAA;AACA,UAAA;AACA,UAAA;AACA,UAAA;AACA,UAAA;AACA,UAAA;AACA,YAAA;AACA,YAAA;AACA,UAAA;AACA,QAAA;AACA,MAAA;AACA,MAAA;AACA,QAAA;AACA,QAAA;AACA,QAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,QAAA;AACA,QAAA;AACA,QAAA;AACA,QAAA;AACA,UAAA;AACA,UAAA;AACA,UAAA;AACA,UAAA;AACA,UAAA;AACA,UAAA;AACA,UAAA;AACA,YAAA;AACA,YAAA;AACA,UAAA;AACA,QAAA;AACA,QAAA;AACA,UAAA;AACA,QAAA;AACA,UAAA;AACA,QAAA;AACA,UAAA;AACA,QAAA;AACA,QAAA;AACA,MAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,QAAA;AACA;AACA,MAAA;AACA,IAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,EAAA;AACA;AACA;AACA,EAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","file":"D:\\AI_Project\\kordoc\\dist\\parser-JAZCZJI6.cjs","sourcesContent":[null]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["d:\\AI_Project\\kordoc\\dist\\provider-5K7O3Z2O.cjs"],"names":[],"mappings":"AAAA,2XAA6B;AAC7B;AACA;AACA,MAAM,SAAS,QAAQ,CAAC,GAAG,EAAE,QAAQ,EAAE,UAAU,EAAE,kBAAkB,EAAE;AACvE,EAAE,MAAM,OAAO,EAAE,CAAC,CAAC;AACnB,EAAE,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,EAAE,GAAG,kBAAkB,EAAE,CAAC,EAAE,EAAE;AAChD,IAAI,GAAG,CAAC,WAAW,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,QAAQ;AAClD,IAAI,MAAM,KAAK,EAAE,MAAM,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC;AACrC,IAAI,IAAI;AACR,MAAM,MAAM,UAAU,EAAE,MAAM,eAAe,CAAC,IAAI,CAAC;AACnD,MAAM,MAAM,KAAK,EAAE,MAAM,QAAQ,CAAC,SAAS,EAAE,CAAC,EAAE,WAAW,CAAC;AAC5D,MAAM,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE;AACvB,QAAQ,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,UAAU,EAAE,EAAE,CAAC,CAAC;AAC5E,MAAM;AACN,IAAI,EAAE,UAAM;AACZ,MAAM,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,sCAAsC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;AAC7F,IAAI;AACJ,EAAE;AACF,EAAE,OAAO,MAAM;AACf;AACA,MAAM,SAAS,eAAe,CAAC,IAAI,EAAE;AACrC,EAAE,IAAI,YAAY;AAClB,EAAE,IAAI;AACN,IAAI,MAAM,aAAa,EAAE,MAAM,4DAAM,CAAC,QAAQ,GAAC;AAC/C,IAAI,aAAa,EAAE,YAAY,CAAC,YAAY;AAC5C,EAAE,EAAE,WAAM;AACV,IAAI,MAAM,IAAI,KAAK,CAAC,+HAA+H,CAAC;AACpJ,EAAE;AACF,EAAE,MAAM,MAAM,EAAE,CAAC;AACjB,EAAE,MAAM,SAAS,EAAE,IAAI,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC,CAAC;AAC9C,EAAE,MAAM,OAAO,EAAE,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;AACtF,EAAE,MAAM,IAAI,EAAE,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC;AACrC,EAAE,MAAM,IAAI,CAAC,MAAM,CAAC,EAAE,aAAa,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC,CAAC,OAAO;AAC7D,EAAE,OAAO,IAAI,UAAU,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;AACrD;AACA;AACE;AACF,4BAAC","file":"D:\\AI_Project\\kordoc\\dist\\provider-5K7O3Z2O.cjs","sourcesContent":[null]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/ocr/provider.ts"],"sourcesContent":["/**\r\n * OCR 프로바이더 브릿지 — PDF 페이지를 이미지로 렌더링하여 OCR 호출\r\n *\r\n * kordoc은 OCR 라이브러리를 번들하지 않음.\r\n * 사용자가 OcrProvider 함수를 제공하면 이미지 기반 PDF도 텍스트 추출 가능.\r\n *\r\n * @example\r\n * ```ts\r\n * import { parse } from \"kordoc\"\r\n *\r\n * const result = await parse(buffer, {\r\n * ocr: async (pageImage, pageNumber, mimeType) => {\r\n * // Tesseract, Claude Vision, Google Vision 등 사용\r\n * return await myOcrService.recognize(pageImage)\r\n * }\r\n * })\r\n * ```\r\n */\r\n\r\nimport type { OcrProvider, IRBlock } from \"../types.js\"\r\n\r\n/**\r\n * 이미지 기반 PDF 페이지에 OCR을 적용하여 IRBlock[] 반환.\r\n *\r\n * pdfjs page 객체에서 viewport + render를 통해 PNG 생성 후\r\n * 사용자 제공 OcrProvider 호출.\r\n *\r\n * canvas 미설치 시 pdfjs render 불가하므로 에러 반환.\r\n */\r\nexport async function ocrPages(\r\n doc: { numPages: number; getPage(n: number): Promise<PdfPageProxy> },\r\n provider: OcrProvider,\r\n pageFilter: Set<number> | null,\r\n effectivePageCount: number\r\n): Promise<IRBlock[]> {\r\n const blocks: IRBlock[] = []\r\n\r\n for (let i = 1; i <= effectivePageCount; i++) {\r\n if (pageFilter && !pageFilter.has(i)) continue\r\n const page = await doc.getPage(i)\r\n try {\r\n const imageData = await renderPageToPng(page)\r\n const text = await provider(imageData, i, \"image/png\")\r\n if (text.trim()) {\r\n blocks.push({ type: \"paragraph\", text: text.trim(), pageNumber: i })\r\n }\r\n } catch {\r\n blocks.push({ type: \"paragraph\" as const, text: `[OCR 실패: 페이지 ${i}]` })\r\n }\r\n }\r\n\r\n return blocks\r\n}\r\n\r\ninterface PdfPageProxy {\r\n getViewport(params: { scale: number }): { width: number; height: number }\r\n render(params: { canvasContext: unknown; viewport: unknown }): { promise: Promise<void> }\r\n}\r\n\r\n/**\r\n * PDF 페이지를 PNG로 렌더링.\r\n * node-canvas가 설치되어 있어야 동작.\r\n * 미설치 시 에러 throw → 호출측에서 catch.\r\n */\r\nasync function renderPageToPng(page: PdfPageProxy): Promise<Uint8Array> {\r\n // node-canvas 동적 로드 (선택적 의존성)\r\n let createCanvas: (w: number, h: number) => { getContext(t: string): unknown; toBuffer(t: string): Buffer }\r\n try {\r\n const canvasModule = await import(\"canvas\")\r\n createCanvas = canvasModule.createCanvas\r\n } catch {\r\n throw new Error(\"OCR을 사용하려면 'canvas' 패키지를 설치하세요: npm install canvas\")\r\n }\r\n\r\n const scale = 2.0 // 300 DPI 근사\r\n const viewport = page.getViewport({ scale })\r\n const canvas = createCanvas(Math.floor(viewport.width), Math.floor(viewport.height))\r\n const ctx = canvas.getContext(\"2d\")\r\n\r\n await page.render({ canvasContext: ctx, viewport }).promise\r\n return new Uint8Array(canvas.toBuffer(\"image/png\"))\r\n}\r\n"],"mappings":";;;AA6BA,eAAsB,SACpB,KACA,UACA,YACA,oBACoB;AACpB,QAAM,SAAoB,CAAC;AAE3B,WAAS,IAAI,GAAG,KAAK,oBAAoB,KAAK;AAC5C,QAAI,cAAc,CAAC,WAAW,IAAI,CAAC,EAAG;AACtC,UAAM,OAAO,MAAM,IAAI,QAAQ,CAAC;AAChC,QAAI;AACF,YAAM,YAAY,MAAM,gBAAgB,IAAI;AAC5C,YAAM,OAAO,MAAM,SAAS,WAAW,GAAG,WAAW;AACrD,UAAI,KAAK,KAAK,GAAG;AACf,eAAO,KAAK,EAAE,MAAM,aAAa,MAAM,KAAK,KAAK,GAAG,YAAY,EAAE,CAAC;AAAA,MACrE;AAAA,IACF,QAAQ;AACN,aAAO,KAAK,EAAE,MAAM,aAAsB,MAAM,yCAAgB,CAAC,IAAI,CAAC;AAAA,IACxE;AAAA,EACF;AAEA,SAAO;AACT;AAYA,eAAe,gBAAgB,MAAyC;AAEtE,MAAI;AACJ,MAAI;AACF,UAAM,eAAe,MAAM,OAAO,QAAQ;AAC1C,mBAAe,aAAa;AAAA,EAC9B,QAAQ;AACN,UAAM,IAAI,MAAM,+HAAoD;AAAA,EACtE;AAEA,QAAM,QAAQ;AACd,QAAM,WAAW,KAAK,YAAY,EAAE,MAAM,CAAC;AAC3C,QAAM,SAAS,aAAa,KAAK,MAAM,SAAS,KAAK,GAAG,KAAK,MAAM,SAAS,MAAM,CAAC;AACnF,QAAM,MAAM,OAAO,WAAW,IAAI;AAElC,QAAM,KAAK,OAAO,EAAE,eAAe,KAAK,SAAS,CAAC,EAAE;AACpD,SAAO,IAAI,WAAW,OAAO,SAAS,WAAW,CAAC;AACpD;","names":[]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/ocr/provider.ts"],"sourcesContent":["/**\r\n * OCR 프로바이더 브릿지 — PDF 페이지를 이미지로 렌더링하여 OCR 호출\r\n *\r\n * kordoc은 OCR 라이브러리를 번들하지 않음.\r\n * 사용자가 OcrProvider 함수를 제공하면 이미지 기반 PDF도 텍스트 추출 가능.\r\n *\r\n * @example\r\n * ```ts\r\n * import { parse } from \"kordoc\"\r\n *\r\n * const result = await parse(buffer, {\r\n * ocr: async (pageImage, pageNumber, mimeType) => {\r\n * // Tesseract, Claude Vision, Google Vision 등 사용\r\n * return await myOcrService.recognize(pageImage)\r\n * }\r\n * })\r\n * ```\r\n */\r\n\r\nimport type { OcrProvider, IRBlock } from \"../types.js\"\r\n\r\n/**\r\n * 이미지 기반 PDF 페이지에 OCR을 적용하여 IRBlock[] 반환.\r\n *\r\n * pdfjs page 객체에서 viewport + render를 통해 PNG 생성 후\r\n * 사용자 제공 OcrProvider 호출.\r\n *\r\n * canvas 미설치 시 pdfjs render 불가하므로 에러 반환.\r\n */\r\nexport async function ocrPages(\r\n doc: { numPages: number; getPage(n: number): Promise<PdfPageProxy> },\r\n provider: OcrProvider,\r\n pageFilter: Set<number> | null,\r\n effectivePageCount: number\r\n): Promise<IRBlock[]> {\r\n const blocks: IRBlock[] = []\r\n\r\n for (let i = 1; i <= effectivePageCount; i++) {\r\n if (pageFilter && !pageFilter.has(i)) continue\r\n const page = await doc.getPage(i)\r\n try {\r\n const imageData = await renderPageToPng(page)\r\n const text = await provider(imageData, i, \"image/png\")\r\n if (text.trim()) {\r\n blocks.push({ type: \"paragraph\", text: text.trim(), pageNumber: i })\r\n }\r\n } catch {\r\n blocks.push({ type: \"paragraph\" as const, text: `[OCR 실패: 페이지 ${i}]` })\r\n }\r\n }\r\n\r\n return blocks\r\n}\r\n\r\ninterface PdfPageProxy {\r\n getViewport(params: { scale: number }): { width: number; height: number }\r\n render(params: { canvasContext: unknown; viewport: unknown }): { promise: Promise<void> }\r\n}\r\n\r\n/**\r\n * PDF 페이지를 PNG로 렌더링.\r\n * node-canvas가 설치되어 있어야 동작.\r\n * 미설치 시 에러 throw → 호출측에서 catch.\r\n */\r\nasync function renderPageToPng(page: PdfPageProxy): Promise<Uint8Array> {\r\n // node-canvas 동적 로드 (선택적 의존성)\r\n let createCanvas: (w: number, h: number) => { getContext(t: string): unknown; toBuffer(t: string): Buffer }\r\n try {\r\n const canvasModule = await import(\"canvas\")\r\n createCanvas = canvasModule.createCanvas\r\n } catch {\r\n throw new Error(\"OCR을 사용하려면 'canvas' 패키지를 설치하세요: npm install canvas\")\r\n }\r\n\r\n const scale = 2.0 // 300 DPI 근사\r\n const viewport = page.getViewport({ scale })\r\n const canvas = createCanvas(Math.floor(viewport.width), Math.floor(viewport.height))\r\n const ctx = canvas.getContext(\"2d\")\r\n\r\n await page.render({ canvasContext: ctx, viewport }).promise\r\n return new Uint8Array(canvas.toBuffer(\"image/png\"))\r\n}\r\n"],"mappings":";AA6BA,eAAsB,SACpB,KACA,UACA,YACA,oBACoB;AACpB,QAAM,SAAoB,CAAC;AAE3B,WAAS,IAAI,GAAG,KAAK,oBAAoB,KAAK;AAC5C,QAAI,cAAc,CAAC,WAAW,IAAI,CAAC,EAAG;AACtC,UAAM,OAAO,MAAM,IAAI,QAAQ,CAAC;AAChC,QAAI;AACF,YAAM,YAAY,MAAM,gBAAgB,IAAI;AAC5C,YAAM,OAAO,MAAM,SAAS,WAAW,GAAG,WAAW;AACrD,UAAI,KAAK,KAAK,GAAG;AACf,eAAO,KAAK,EAAE,MAAM,aAAa,MAAM,KAAK,KAAK,GAAG,YAAY,EAAE,CAAC;AAAA,MACrE;AAAA,IACF,QAAQ;AACN,aAAO,KAAK,EAAE,MAAM,aAAsB,MAAM,yCAAgB,CAAC,IAAI,CAAC;AAAA,IACxE;AAAA,EACF;AAEA,SAAO;AACT;AAYA,eAAe,gBAAgB,MAAyC;AAEtE,MAAI;AACJ,MAAI;AACF,UAAM,eAAe,MAAM,OAAO,QAAQ;AAC1C,mBAAe,aAAa;AAAA,EAC9B,QAAQ;AACN,UAAM,IAAI,MAAM,+HAAoD;AAAA,EACtE;AAEA,QAAM,QAAQ;AACd,QAAM,WAAW,KAAK,YAAY,EAAE,MAAM,CAAC;AAC3C,QAAM,SAAS,aAAa,KAAK,MAAM,SAAS,KAAK,GAAG,KAAK,MAAM,SAAS,MAAM,CAAC;AACnF,QAAM,MAAM,OAAO,WAAW,IAAI;AAElC,QAAM,KAAK,OAAO,EAAE,eAAe,KAAK,SAAS,CAAC,EAAE;AACpD,SAAO,IAAI,WAAW,OAAO,SAAS,WAAW,CAAC;AACpD;","names":[]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/setup.ts"],"sourcesContent":["/**\r\n * 대화형 설치 마법사 — kordoc MCP\r\n *\r\n * `npx kordoc setup` 으로 실행.\r\n * 선택한 AI 클라이언트 설정 파일에 kordoc-mcp 서버를 자동 등록합니다.\r\n * API 키 불필요, macOS / Linux / Windows 공용.\r\n */\r\n\r\nimport { createInterface } from \"node:readline/promises\"\r\nimport { readFile, writeFile, mkdir } from \"node:fs/promises\"\r\nimport { existsSync } from \"node:fs\"\r\nimport { resolve, dirname } from \"node:path\"\r\nimport { homedir, platform } from \"node:os\"\r\nimport { stdin, stdout } from \"node:process\"\r\n\r\ninterface ClientConfig {\r\n readonly name: string\r\n readonly configPath: string\r\n readonly format: \"mcpServers\" | \"servers\" | \"context_servers\"\r\n}\r\n\r\nfunction detectClients(): readonly ClientConfig[] {\r\n const home = homedir()\r\n const os = platform()\r\n const clients: ClientConfig[] = []\r\n\r\n const claudePaths: Record<string, string> = {\r\n darwin: resolve(home, \"Library/Application Support/Claude/claude_desktop_config.json\"),\r\n win32: resolve(process.env[\"APPDATA\"] ?? resolve(home, \"AppData/Roaming\"), \"Claude/claude_desktop_config.json\"),\r\n linux: resolve(home, \".config/Claude/claude_desktop_config.json\"),\r\n }\r\n const claudePath = claudePaths[os]\r\n if (claudePath) clients.push({ name: \"Claude Desktop\", configPath: claudePath, format: \"mcpServers\" })\r\n\r\n clients.push({ name: \"Claude Code (현재 디렉토리)\", configPath: resolve(process.cwd(), \".mcp.json\"), format: \"mcpServers\" })\r\n clients.push({ name: \"Cursor\", configPath: resolve(home, \".cursor/mcp.json\"), format: \"mcpServers\" })\r\n clients.push({ name: \"VS Code (현재 디렉토리)\", configPath: resolve(process.cwd(), \".vscode/mcp.json\"), format: \"servers\" })\r\n clients.push({ name: \"Windsurf\", configPath: resolve(home, \".codeium/windsurf/mcp_config.json\"), format: \"mcpServers\" })\r\n clients.push({ name: \"Gemini CLI\", configPath: resolve(home, \".gemini/settings.json\"), format: \"mcpServers\" })\r\n\r\n const zedPaths: Record<string, string> = {\r\n darwin: resolve(home, \".zed/settings.json\"),\r\n linux: resolve(home, \".config/zed/settings.json\"),\r\n win32: resolve(home, \".zed/settings.json\"),\r\n }\r\n const zedPath = zedPaths[os]\r\n if (zedPath) clients.push({ name: \"Zed\", configPath: zedPath, format: \"context_servers\" })\r\n\r\n clients.push({ name: \"Antigravity\", configPath: resolve(home, \".gemini/antigravity/mcp_config.json\"), format: \"mcpServers\" })\r\n\r\n return clients\r\n}\r\n\r\nasync function readJsonFile(path: string): Promise<Record<string, unknown>> {\r\n if (!existsSync(path)) return {}\r\n const raw = await readFile(path, \"utf-8\")\r\n return JSON.parse(raw) as Record<string, unknown>\r\n}\r\n\r\nasync function writeJsonFile(path: string, data: Record<string, unknown>): Promise<void> {\r\n const dir = dirname(path)\r\n if (!existsSync(dir)) await mkdir(dir, { recursive: true })\r\n await writeFile(path, JSON.stringify(data, null, 2) + \"\\n\", \"utf-8\")\r\n}\r\n\r\n/**\r\n * Windows 에선 npx.cmd 를 Claude Desktop 이 해석 못 해서 `cmd /c` 래핑이 필요하다.\r\n * `kordoc` 은 `npx kordoc mcp` 로 MCP 서버 실행, 또는 `kordoc-mcp` bin 직접 실행.\r\n * npx 래핑이 범용적이므로 `npx -y kordoc mcp` 로 통일.\r\n */\r\nfunction buildServerEntry(): Record<string, unknown> {\r\n if (platform() === \"win32\") {\r\n return { command: \"cmd\", args: [\"/c\", \"npx\", \"-y\", \"kordoc\", \"mcp\"] }\r\n }\r\n return { command: \"npx\", args: [\"-y\", \"kordoc\", \"mcp\"] }\r\n}\r\n\r\nfunction buildZedEntry(): Record<string, unknown> {\r\n const base = platform() === \"win32\"\r\n ? { path: \"cmd\", args: [\"/c\", \"npx\", \"-y\", \"kordoc\", \"mcp\"] }\r\n : { path: \"npx\", args: [\"-y\", \"kordoc\", \"mcp\"] }\r\n return { command: base }\r\n}\r\n\r\n// ─── ANSI ─────────────────────────────────────────────────────────────\r\nconst ESC = \"\\x1b[\"\r\nconst c = {\r\n reset: `${ESC}0m`, bold: `${ESC}1m`, dim: `${ESC}2m`,\r\n cyan: `${ESC}36m`, green: `${ESC}32m`, yellow: `${ESC}33m`,\r\n red: `${ESC}31m`, white: `${ESC}37m`,\r\n} as const\r\n\r\nfunction rgb(r: number, g: number, b: number): string {\r\n return `${ESC}38;2;${r};${g};${b}m`\r\n}\r\nfunction sleep(ms: number): Promise<void> {\r\n return new Promise((res) => setTimeout(res, ms))\r\n}\r\nasync function typewrite(text: string, delay = 15): Promise<void> {\r\n for (const ch of text) { process.stdout.write(ch); await sleep(delay) }\r\n console.log()\r\n}\r\n\r\nasync function printBanner(): Promise<void> {\r\n const gradients = [\r\n rgb(255, 120, 80), rgb(255, 140, 80), rgb(255, 160, 80),\r\n rgb(240, 180, 80), rgb(220, 200, 80), rgb(200, 220, 80),\r\n ]\r\n const logo = [\r\n \" _ _ \",\r\n \" | | _____ _ __ __| | ___ ___ \",\r\n \" | |/ / _ \\\\| '__/ _` |/ _ \\\\ / __|\",\r\n \" | < (_) | | | (_| | (_) | (__ \",\r\n \" |_|\\\\_\\\\___/|_| \\\\__,_|\\\\___/ \\\\___|\",\r\n ]\r\n console.log()\r\n for (let i = 0; i < logo.length; i++) {\r\n console.log(`${gradients[i % gradients.length]}${c.bold}${logo[i]}${c.reset}`)\r\n await sleep(60)\r\n }\r\n console.log()\r\n await typewrite(`${c.dim} 모두 파싱해버리겠다 ━━ HWP · HWPX · PDF · XLSX · DOCX → Markdown${c.reset}`, 10)\r\n console.log()\r\n console.log(`${c.cyan} ${\"━\".repeat(60)}${c.reset}`)\r\n console.log()\r\n}\r\n\r\nfunction stepHeader(step: number, total: number, title: string): void {\r\n const dots = `${c.dim}${\"·\".repeat(Math.max(0, 40 - title.length))}${c.reset}`\r\n console.log(` ${c.cyan}${c.bold}[${step}/${total}]${c.reset} ${c.white}${c.bold}${title}${c.reset} ${dots}`)\r\n console.log()\r\n}\r\n\r\nfunction successLine(label: string, detail: string): void {\r\n console.log(` ${c.green}${c.bold}+${c.reset} ${c.white}${label}${c.reset}${c.dim} ${detail}${c.reset}`)\r\n}\r\nfunction failLine(label: string, detail: string): void {\r\n console.log(` ${c.red}${c.bold}x${c.reset} ${c.white}${label}${c.reset}${c.dim} ${detail}${c.reset}`)\r\n}\r\n\r\nasync function printComplete(): Promise<void> {\r\n console.log()\r\n const box = [\r\n ` ${c.green}${c.bold}╔${\"═\".repeat(50)}╗${c.reset}`,\r\n ` ${c.green}${c.bold}║${c.reset}${\" \".repeat(14)}${c.green}${c.bold}Setup Complete!${c.reset}${\" \".repeat(22)}${c.green}${c.bold}║${c.reset}`,\r\n ` ${c.green}${c.bold}╚${\"═\".repeat(50)}╝${c.reset}`,\r\n ]\r\n for (const line of box) { console.log(line); await sleep(40) }\r\n console.log()\r\n console.log(` ${c.dim}클라이언트를 재시작하면 'kordoc' MCP 서버가 활성화됩니다.${c.reset}`)\r\n console.log(` ${c.dim}8개 도구: parse_document / parse_metadata / parse_pages / parse_table${c.reset}`)\r\n console.log(` ${c.dim} detect_format / compare_documents / parse_form / fill_form${c.reset}`)\r\n console.log()\r\n}\r\n\r\nexport async function runSetup(): Promise<void> {\r\n const rl = createInterface({ input: stdin, output: stdout })\r\n\r\n try {\r\n await printBanner()\r\n\r\n stepHeader(1, 2, \"MCP 클라이언트 선택\")\r\n const clients = detectClients()\r\n clients.forEach((cl, i) => {\r\n const exists = existsSync(cl.configPath)\r\n const badge = exists ? `${c.green} [감지됨]${c.reset}` : \"\"\r\n const num = `${c.cyan}${String(i + 1).padStart(2)}${c.reset}`\r\n console.log(` ${num}) ${c.white}${cl.name}${c.reset}${badge}`)\r\n })\r\n console.log()\r\n const clientInput = (await rl.question(` ${c.cyan}>${c.reset} 번호 (예: 1,3): `)).trim()\r\n\r\n if (!clientInput) {\r\n console.log(`\\n ${c.yellow}선택 없음${c.reset} — 수동 설정 안내:`)\r\n printManualConfig()\r\n return\r\n }\r\n\r\n const indices = clientInput\r\n .split(\",\")\r\n .map((s) => parseInt(s.trim(), 10) - 1)\r\n .filter((i) => i >= 0 && i < clients.length)\r\n\r\n if (indices.length === 0) {\r\n console.log(`\\n ${c.yellow}유효한 선택 없음${c.reset} — 수동 설정 안내:`)\r\n printManualConfig()\r\n return\r\n }\r\n\r\n console.log()\r\n stepHeader(2, 2, \"설정 파일 업데이트\")\r\n const entry = buildServerEntry()\r\n\r\n for (const idx of indices) {\r\n const client = clients[idx]\r\n await sleep(150)\r\n try {\r\n const config = await readJsonFile(client.configPath)\r\n const key = client.format\r\n const serverEntry = key === \"context_servers\" ? buildZedEntry() : entry\r\n const servers = (config[key] ?? {}) as Record<string, unknown>\r\n servers[\"kordoc\"] = serverEntry\r\n config[key] = servers\r\n await writeJsonFile(client.configPath, config)\r\n successLine(client.name, client.configPath)\r\n } catch (err) {\r\n const msg = err instanceof Error ? err.message : String(err)\r\n failLine(client.name, msg)\r\n }\r\n }\r\n\r\n await printComplete()\r\n } catch (err) {\r\n if ((err as NodeJS.ErrnoException)?.code === \"ERR_USE_AFTER_CLOSE\") return\r\n throw err\r\n } finally {\r\n rl.close()\r\n }\r\n}\r\n\r\nfunction printManualConfig(): void {\r\n const entry = buildServerEntry()\r\n console.log()\r\n console.log(` ${c.dim}아래 JSON을 설정 파일의 mcpServers에 추가하세요:${c.reset}`)\r\n console.log()\r\n console.log(` ${c.cyan}\"kordoc\"${c.reset}: ${JSON.stringify(entry, null, 4)}`)\r\n console.log()\r\n}\r\n"],"mappings":"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","names":[]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/watch.ts"],"sourcesContent":["/** 디렉토리 감시 모드 — 새 문서 자동 변환 + Webhook 알림 */\r\n\r\nimport { watch, readFileSync, writeFileSync, mkdirSync, statSync, existsSync, realpathSync } from \"fs\"\r\nimport { basename, resolve, extname, sep } from \"path\"\r\nimport { parse, detectFormat } from \"./index.js\"\r\nimport { toArrayBuffer } from \"./utils.js\"\r\nimport type { WatchOptions } from \"./types.js\"\r\n\r\nconst SUPPORTED_EXTENSIONS = new Set([\".hwp\", \".hwpx\", \".pdf\", \".xlsx\", \".docx\"])\r\nconst DEBOUNCE_MS = 1000\r\n/** 파일 쓰기 완료 판정: 연속 2회 동일 크기 확인 간격 */\r\nconst STABLE_CHECK_MS = 300\r\nconst MAX_FILE_SIZE = 500 * 1024 * 1024\r\n\r\n/**\r\n * 디렉토리를 감시하여 새 문서 파일을 자동 변환.\r\n *\r\n * @example\r\n * ```bash\r\n * kordoc watch ./incoming -d ./output --webhook https://api.example.com/docs\r\n * ```\r\n */\r\nexport async function watchDirectory(options: WatchOptions): Promise<void> {\r\n const { dir, outDir, webhook, format = \"markdown\", pages, silent } = options\r\n\r\n if (!existsSync(dir)) throw new Error(`디렉토리를 찾을 수 없습니다: ${dir}`)\r\n if (webhook) validateWebhookUrl(webhook)\r\n if (outDir) mkdirSync(outDir, { recursive: true })\r\n\r\n const log = silent ? () => {} : (msg: string) => process.stderr.write(msg + \"\\n\")\r\n log(`[kordoc watch] 감시 시작: ${resolve(dir)}`)\r\n if (outDir) log(`[kordoc watch] 출력: ${resolve(outDir)}`)\r\n if (webhook) log(`[kordoc watch] 웹훅: ${webhook}`)\r\n\r\n // 디바운스 맵\r\n const pending = new Map<string, ReturnType<typeof setTimeout>>()\r\n // 동시 처리 제한 — 메모리 폭주 방지\r\n const MAX_CONCURRENT = 3\r\n let activeCount = 0\r\n const inProgress = new Set<string>()\r\n\r\n /** 파일 크기가 안정화될 때까지 대기 (쓰기 완료 감지) */\r\n const waitForStableSize = async (absPath: string): Promise<number> => {\r\n let prevSize = statSync(absPath).size\r\n await new Promise(r => setTimeout(r, STABLE_CHECK_MS))\r\n if (!existsSync(absPath)) return 0\r\n const currSize = statSync(absPath).size\r\n if (currSize !== prevSize) {\r\n // 크기가 변했으면 한 번 더 대기\r\n await new Promise(r => setTimeout(r, STABLE_CHECK_MS))\r\n if (!existsSync(absPath)) return 0\r\n return statSync(absPath).size\r\n }\r\n return currSize\r\n }\r\n\r\n const processFile = async (filePath: string) => {\r\n const ext = extname(filePath).toLowerCase()\r\n if (!SUPPORTED_EXTENSIONS.has(ext)) return\r\n // 동일 파일 동시 처리 방지 + 동시 처리 수 제한\r\n if (inProgress.has(filePath) || activeCount >= MAX_CONCURRENT) return\r\n inProgress.add(filePath)\r\n activeCount++\r\n\r\n const fileName = basename(filePath)\r\n try {\r\n const rawPath = resolve(dir, filePath)\r\n if (!existsSync(rawPath)) return\r\n // 심볼릭 링크 해석 후 감시 디렉토리 외부 파일 차단\r\n let absPath: string\r\n try { absPath = realpathSync(rawPath) } catch { return }\r\n const realDir = realpathSync(resolve(dir))\r\n if (!absPath.startsWith(realDir + sep) && absPath !== realDir) return\r\n\r\n const fileSize = await waitForStableSize(absPath)\r\n if (fileSize > MAX_FILE_SIZE || fileSize === 0) return\r\n\r\n log(`[kordoc watch] 변환 중: ${fileName}`)\r\n\r\n const buffer = readFileSync(absPath)\r\n const arrayBuffer = toArrayBuffer(buffer)\r\n const parseOptions = pages ? { pages } : undefined\r\n const result = await parse(arrayBuffer, parseOptions)\r\n\r\n if (!result.success) {\r\n log(`[kordoc watch] 실패: ${fileName} — ${result.error}`)\r\n await sendWebhook(webhook, { file: fileName, format: detectFormat(arrayBuffer), success: false, error: result.error })\r\n return\r\n }\r\n\r\n const output = format === \"json\" ? JSON.stringify(result, null, 2) : result.markdown\r\n\r\n if (outDir) {\r\n const outExt = format === \"json\" ? \".json\" : \".md\"\r\n const outPath = resolve(outDir, fileName.replace(/\\.[^.]+$/, outExt))\r\n writeFileSync(outPath, output, \"utf-8\")\r\n log(`[kordoc watch] 완료: ${fileName} → ${basename(outPath)}`)\r\n } else {\r\n process.stdout.write(output + \"\\n\")\r\n }\r\n\r\n await sendWebhook(webhook, {\r\n file: fileName,\r\n format: result.fileType,\r\n success: true,\r\n markdown: format === \"markdown\" ? output.substring(0, 1000) : undefined,\r\n })\r\n } catch (err) {\r\n log(`[kordoc watch] 에러: ${fileName} — ${err instanceof Error ? err.message : err}`)\r\n } finally {\r\n inProgress.delete(filePath)\r\n activeCount--\r\n }\r\n }\r\n\r\n // fs.watch recursive (Node 18+ Windows/macOS, Node 19+ Linux)\r\n watch(dir, { recursive: true }, (event, filename) => {\r\n if (!filename) return\r\n const filePath = filename.toString()\r\n\r\n // 디바운스\r\n const existing = pending.get(filePath)\r\n if (existing) clearTimeout(existing)\r\n pending.set(filePath, setTimeout(() => {\r\n pending.delete(filePath)\r\n processFile(filePath).catch((err) => {\r\n process.stderr.write(`[kordoc watch] 처리 실패: ${filePath} — ${err instanceof Error ? err.message : String(err)}\\n`)\r\n })\r\n }, DEBOUNCE_MS))\r\n })\r\n\r\n // 프로세스 종료 방지 (Ctrl+C로 종료)\r\n return new Promise(() => {})\r\n}\r\n\r\n/** Webhook URL 검증 — SSRF 방지: http/https만 허용, localhost/private IP 차단 */\r\nfunction validateWebhookUrl(url: string): void {\r\n let parsed: URL\r\n try {\r\n parsed = new URL(url)\r\n } catch {\r\n throw new Error(`유효하지 않은 webhook URL: ${url}`)\r\n }\r\n if (parsed.protocol !== \"http:\" && parsed.protocol !== \"https:\") {\r\n throw new Error(`허용되지 않는 webhook 프로토콜: ${parsed.protocol}`)\r\n }\r\n const hostname = parsed.hostname.toLowerCase()\r\n if (\r\n hostname === \"localhost\" ||\r\n hostname === \"[::1]\" ||\r\n hostname.startsWith(\"127.\") ||\r\n hostname.startsWith(\"10.\") ||\r\n hostname.startsWith(\"192.168.\") ||\r\n /^172\\.(1[6-9]|2\\d|3[01])\\./.test(hostname) ||\r\n hostname === \"0.0.0.0\" ||\r\n hostname.startsWith(\"169.254.\") ||\r\n hostname.endsWith(\".local\") ||\r\n // IPv6 사설 대역\r\n hostname.startsWith(\"[fc\") ||\r\n hostname.startsWith(\"[fd\") ||\r\n hostname.startsWith(\"[fe80:\") ||\r\n hostname === \"[::0]\" ||\r\n hostname === \"[::]\" ||\r\n // 클라우드 메타데이터 엔드포인트\r\n hostname === \"metadata.google.internal\" ||\r\n hostname === \"metadata.google\" ||\r\n // 16진수/8진수/10진수 정수 IP 인코딩 우회 방지\r\n /^0x[0-9a-f]+$/i.test(hostname) ||\r\n /^0[0-7]+$/.test(hostname) ||\r\n /^\\d+$/.test(hostname)\r\n ) {\r\n throw new Error(`내부 네트워크 대상 webhook은 허용되지 않습니다: ${hostname}`)\r\n }\r\n}\r\n\r\nasync function sendWebhook(url: string | undefined, payload: Record<string, unknown>): Promise<void> {\r\n if (!url) return\r\n try {\r\n validateWebhookUrl(url)\r\n await fetch(url, {\r\n method: \"POST\",\r\n headers: { \"Content-Type\": \"application/json\" },\r\n body: JSON.stringify({ ...payload, timestamp: new Date().toISOString() }),\r\n redirect: \"error\",\r\n })\r\n } catch (err) {\r\n process.stderr.write(`[kordoc watch] webhook 전송 실패: ${err instanceof Error ? err.message : String(err)}\\n`)\r\n }\r\n}\r\n"],"mappings":"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","names":[]}
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|