@clazic/kordoc 2.7.5 → 2.7.6
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 +1 -29
- package/dist/{chunk-6DUCYZRR.js → chunk-URSQEMVJ.js} +345 -523
- package/dist/chunk-URSQEMVJ.js.map +1 -0
- package/dist/{chunk-5CIZV5C3.js → chunk-X7UUXEMM.js} +2 -2
- package/dist/cli.js +5 -87
- package/dist/cli.js.map +1 -1
- package/dist/index.cjs +447 -634
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +4 -135
- package/dist/index.d.ts +4 -135
- package/dist/index.js +440 -624
- package/dist/index.js.map +1 -1
- package/dist/mcp.js +2 -43
- package/dist/mcp.js.map +1 -1
- package/dist/{utils-NR7YWMWB.js → utils-QQVZGOGU.js} +2 -2
- package/dist/{watch-LDX5GPEE.js → watch-RQYUNSSH.js} +3 -3
- package/package.json +1 -2
- package/dist/chunk-6DUCYZRR.js.map +0 -1
- /package/dist/{chunk-5CIZV5C3.js.map → chunk-X7UUXEMM.js.map} +0 -0
- /package/dist/{utils-NR7YWMWB.js.map → utils-QQVZGOGU.js.map} +0 -0
- /package/dist/{watch-LDX5GPEE.js.map → watch-RQYUNSSH.js.map} +0 -0
package/dist/index.d.cts
CHANGED
|
@@ -154,7 +154,7 @@ interface OutlineItem {
|
|
|
154
154
|
pageNumber?: number;
|
|
155
155
|
}
|
|
156
156
|
/** 구조화된 에러 코드 — 프로그래밍적 에러 핸들링용 */
|
|
157
|
-
type ErrorCode = "EMPTY_INPUT" | "UNSUPPORTED_FORMAT" | "ENCRYPTED" | "DRM_PROTECTED" | "CORRUPTED" | "DECOMPRESSION_BOMB" | "ZIP_BOMB" | "IMAGE_BASED_PDF" | "NO_SECTIONS" | "PARSE_ERROR" | "FILE_TOO_LARGE" | "CONVERT_FAILED"
|
|
157
|
+
type ErrorCode = "EMPTY_INPUT" | "UNSUPPORTED_FORMAT" | "ENCRYPTED" | "DRM_PROTECTED" | "CORRUPTED" | "DECOMPRESSION_BOMB" | "ZIP_BOMB" | "IMAGE_BASED_PDF" | "NO_SECTIONS" | "PARSE_ERROR" | "FILE_TOO_LARGE" | "CONVERT_FAILED";
|
|
158
158
|
type FileType = "hwpx" | "hwp" | "pdf" | "xlsx" | "docx" | "image" | "unknown";
|
|
159
159
|
interface ParseResultBase {
|
|
160
160
|
fileType: FileType;
|
|
@@ -251,105 +251,6 @@ interface WatchOptions {
|
|
|
251
251
|
pages?: string;
|
|
252
252
|
silent?: boolean;
|
|
253
253
|
}
|
|
254
|
-
/** 포맷 감지 단계 이벤트 */
|
|
255
|
-
interface ConvertDetectEvent {
|
|
256
|
-
type: "detect";
|
|
257
|
-
stage: "reading" | "format_detected" | "size_check";
|
|
258
|
-
message: string;
|
|
259
|
-
fileSize?: number;
|
|
260
|
-
format?: "hwp" | "hwpx";
|
|
261
|
-
}
|
|
262
|
-
/** 환경 검증 단계 이벤트 */
|
|
263
|
-
interface ConvertValidateEvent {
|
|
264
|
-
type: "validate";
|
|
265
|
-
stage: "soffice_check" | "soffice_found" | "soffice_not_found";
|
|
266
|
-
message: string;
|
|
267
|
-
sofficePath?: string;
|
|
268
|
-
}
|
|
269
|
-
/** 설치 단계 이벤트 */
|
|
270
|
-
interface ConvertInstallEvent {
|
|
271
|
-
type: "install";
|
|
272
|
-
stage: "install_start" | "download_progress" | "extract_progress" | "install_complete" | "install_failed";
|
|
273
|
-
message: string;
|
|
274
|
-
percent?: number;
|
|
275
|
-
downloadedBytes?: number;
|
|
276
|
-
totalBytes?: number;
|
|
277
|
-
installedPath?: string;
|
|
278
|
-
error?: string;
|
|
279
|
-
}
|
|
280
|
-
/** 변환 진행 이벤트 */
|
|
281
|
-
interface ConvertProgressEvent {
|
|
282
|
-
type: "convert";
|
|
283
|
-
stage: "convert_start" | "convert_progress" | "convert_done";
|
|
284
|
-
message: string;
|
|
285
|
-
percent: number;
|
|
286
|
-
}
|
|
287
|
-
/** 변환 완료 이벤트 */
|
|
288
|
-
interface ConvertCompleteEvent {
|
|
289
|
-
type: "complete";
|
|
290
|
-
stage: "success";
|
|
291
|
-
message: string;
|
|
292
|
-
result: {
|
|
293
|
-
sourceFormat: "hwp" | "hwpx";
|
|
294
|
-
pdfSize: number;
|
|
295
|
-
pageCount?: number;
|
|
296
|
-
};
|
|
297
|
-
}
|
|
298
|
-
/** 에러 이벤트 */
|
|
299
|
-
interface ConvertErrorEvent {
|
|
300
|
-
type: "error";
|
|
301
|
-
stage: "detect" | "validate" | "install" | "convert";
|
|
302
|
-
message: string;
|
|
303
|
-
code: ErrorCode;
|
|
304
|
-
recoverable: boolean;
|
|
305
|
-
suggestion?: string;
|
|
306
|
-
}
|
|
307
|
-
/** convertToPdf()에서 발생하는 모든 이벤트 */
|
|
308
|
-
type ConvertEvent = ConvertDetectEvent | ConvertValidateEvent | ConvertInstallEvent | ConvertProgressEvent | ConvertCompleteEvent | ConvertErrorEvent;
|
|
309
|
-
/** HWP/HWPX → PDF 변환 옵션 */
|
|
310
|
-
interface ConvertToPdfOptions {
|
|
311
|
-
/** 페이지 범위 ("1-3,5,7-10") — LibreOffice 필터가 지원하는 경우 */
|
|
312
|
-
pages?: string;
|
|
313
|
-
/** 품질/압축 설정 (미래 확장) */
|
|
314
|
-
quality?: "low" | "medium" | "high";
|
|
315
|
-
/** 타임아웃 (ms, 기본 60000) */
|
|
316
|
-
timeoutMs?: number;
|
|
317
|
-
/**
|
|
318
|
-
* 진행 상황 콜백 (deprecated — onEvent 사용 권장)
|
|
319
|
-
* @deprecated onEvent를 사용하세요
|
|
320
|
-
*/
|
|
321
|
-
onProgress?: (percent: number, stage: string) => void;
|
|
322
|
-
/**
|
|
323
|
-
* 이벤트 콜백 — 모든 진행 상황을 이벤트로 전달
|
|
324
|
-
*/
|
|
325
|
-
onEvent?: (event: ConvertEvent) => void;
|
|
326
|
-
/** LibreOffice 자동 설치 허용 (기본 true) */
|
|
327
|
-
autoInstallLibreOffice?: boolean;
|
|
328
|
-
/** LibreOffice 바이너리 직접 지정 */
|
|
329
|
-
sofficePath?: string;
|
|
330
|
-
}
|
|
331
|
-
/** PDF 변환 성공 결과 */
|
|
332
|
-
interface ConvertToPdfSuccess {
|
|
333
|
-
success: true;
|
|
334
|
-
/** PDF 바이너리 */
|
|
335
|
-
pdf: Uint8Array;
|
|
336
|
-
/** 원본 파일 형식 */
|
|
337
|
-
sourceFormat: "hwp" | "hwpx";
|
|
338
|
-
/** 페이지 수 (확인 가능한 경우) */
|
|
339
|
-
pageCount?: number;
|
|
340
|
-
}
|
|
341
|
-
/** PDF 변환 실패 결과 */
|
|
342
|
-
interface ConvertToPdfFailure {
|
|
343
|
-
success: false;
|
|
344
|
-
/** 에러 코드 */
|
|
345
|
-
code: ErrorCode;
|
|
346
|
-
/** 상세 에러 메시지 */
|
|
347
|
-
error: string;
|
|
348
|
-
/** 실패한 단계 */
|
|
349
|
-
stage?: "detect" | "validate" | "convert";
|
|
350
|
-
}
|
|
351
|
-
/** PDF 변환 결과 (discriminated union) */
|
|
352
|
-
type ConvertToPdfResult = ConvertToPdfSuccess | ConvertToPdfFailure;
|
|
353
254
|
|
|
354
255
|
/** 문서 비교 엔진 — IR 레벨 블록 비교로 신구대조표 생성 */
|
|
355
256
|
|
|
@@ -405,32 +306,6 @@ interface MarkdownToXlsxOptions {
|
|
|
405
306
|
*/
|
|
406
307
|
declare function markdownToXlsx(markdown: string, options?: MarkdownToXlsxOptions): Promise<ArrayBuffer>;
|
|
407
308
|
|
|
408
|
-
/**
|
|
409
|
-
* HWP/HWPX 파일을 PDF로 변환.
|
|
410
|
-
*
|
|
411
|
-
* @param input 파일 경로, Buffer, 또는 ArrayBuffer
|
|
412
|
-
* @param options 변환 옵션
|
|
413
|
-
* @returns 변환 결과 (성공/실패 discriminated union)
|
|
414
|
-
*
|
|
415
|
-
* @example
|
|
416
|
-
* ```ts
|
|
417
|
-
* import { convertToPdf } from "kordoc"
|
|
418
|
-
* const result = await convertToPdf("document.hwp")
|
|
419
|
-
* if (result.success) {
|
|
420
|
-
* await writeFile("output.pdf", result.pdf)
|
|
421
|
-
* }
|
|
422
|
-
* ```
|
|
423
|
-
*/
|
|
424
|
-
declare function convertToPdf(input: string | ArrayBuffer | Buffer, options?: ConvertToPdfOptions): Promise<ConvertToPdfResult>;
|
|
425
|
-
/**
|
|
426
|
-
* HWP 5.x 파일을 PDF로 변환 (포맷 감지 생략).
|
|
427
|
-
*/
|
|
428
|
-
declare function convertHwpToPdf(input: string | ArrayBuffer | Buffer, options?: ConvertToPdfOptions): Promise<ConvertToPdfResult>;
|
|
429
|
-
/**
|
|
430
|
-
* HWPX 파일을 PDF로 변환 (포맷 감지 생략).
|
|
431
|
-
*/
|
|
432
|
-
declare function convertHwpxToPdf(input: string | ArrayBuffer | Buffer, options?: ConvertToPdfOptions): Promise<ConvertToPdfResult>;
|
|
433
|
-
|
|
434
309
|
/** 매직 바이트 기반 파일 포맷 감지 */
|
|
435
310
|
|
|
436
311
|
/** ZIP 파일 여부: PK\x03\x04 */
|
|
@@ -535,7 +410,7 @@ declare class ApiKeyRotationPool {
|
|
|
535
410
|
}
|
|
536
411
|
|
|
537
412
|
type UnifiedStage = "convert" | "render" | "probe" | "ocr" | "proofread" | "merge";
|
|
538
|
-
type UnifiedOcrErrorCode = "UNSUPPORTED_INPUT" | "
|
|
413
|
+
type UnifiedOcrErrorCode = "UNSUPPORTED_INPUT" | "CONVERT_FAILED" | "RENDER_FAILED" | "PROBE_FAILED" | "OCR_FAILED" | "PROOFREAD_FAILED" | "MERGE_FAILED" | "UNKNOWN";
|
|
539
414
|
interface UnifiedOcrProgressEvent {
|
|
540
415
|
type: "stage_start" | "stage_progress" | "stage_done" | "error";
|
|
541
416
|
stage: UnifiedStage;
|
|
@@ -549,14 +424,12 @@ interface UnifiedOcrProgressEvent {
|
|
|
549
424
|
pageNumber?: number;
|
|
550
425
|
workerCount?: number;
|
|
551
426
|
}
|
|
552
|
-
/** unified-ocr에서 onEvent로 전달되는 보조 이벤트 — LibreOffice 설치/검증/에러 */
|
|
553
|
-
type UnifiedOcrAuxEvent = ConvertInstallEvent | ConvertValidateEvent | ConvertErrorEvent;
|
|
554
427
|
interface UnifiedOcrOptions {
|
|
555
428
|
workspaceDir?: string;
|
|
556
429
|
outputPath?: string;
|
|
557
430
|
dpi?: number;
|
|
558
431
|
baseUrl?: string;
|
|
559
|
-
onEvent?: (event: UnifiedOcrProgressEvent
|
|
432
|
+
onEvent?: (event: UnifiedOcrProgressEvent) => void;
|
|
560
433
|
modelCandidates?: string[];
|
|
561
434
|
modelMaxTokens?: Record<string, number>;
|
|
562
435
|
stageWeights?: Partial<Record<UnifiedStage, number>>;
|
|
@@ -566,10 +439,6 @@ interface UnifiedOcrOptions {
|
|
|
566
439
|
logger?: Logger;
|
|
567
440
|
runId?: string;
|
|
568
441
|
concurrencyPerKey?: number;
|
|
569
|
-
/** LibreOffice 자동 설치 허용 (기본 false) — convert 단계에서 install/validate 이벤트가 onEvent로 전달됨 */
|
|
570
|
-
autoInstallLibreOffice?: boolean;
|
|
571
|
-
/** LibreOffice 바이너리 직접 지정 (선택) — 지정 시 자동 탐색/설치 건너뜀 */
|
|
572
|
-
sofficePath?: string;
|
|
573
442
|
}
|
|
574
443
|
interface UnifiedOcrResult {
|
|
575
444
|
outputPath: string;
|
|
@@ -608,4 +477,4 @@ declare function parseXlsx(buffer: ArrayBuffer, options?: ParseOptions, zip?: JS
|
|
|
608
477
|
/** DOCX 파일을 Markdown으로 변환 */
|
|
609
478
|
declare function parseDocx(buffer: ArrayBuffer, options?: ParseOptions, zip?: JSZip): Promise<ParseResult>;
|
|
610
479
|
|
|
611
|
-
export { type AcquireResult, AllKeysCoolingDownError, type ApiKeyRotationOptions, ApiKeyRotationPool, type BlockDiff, type BoundingBox, type CellContext, type CellDiff, type
|
|
480
|
+
export { type AcquireResult, AllKeysCoolingDownError, type ApiKeyRotationOptions, ApiKeyRotationPool, type BlockDiff, type BoundingBox, type CellContext, type CellDiff, type DiffChangeType, type DiffResult, type DocumentMetadata, type ErrorCode, type ExtractedImage, type FileType, type FormField, type FormResult, type IRBlock, type IRBlockType, type IRCell, type IRTable, type ImageData, type InlineStyle, type KeyHealthSnapshot, type MarkdownToXlsxOptions, type OcrMode, type OcrProvider, type OutlineItem, type ParseFailure, type ParseOptions, type ParseResult, type ParseSuccess, type ParseWarning, type StructuredOcrResult, type UnifiedOcrOptions, type UnifiedOcrProgressEvent, type UnifiedOcrResult, type UnifiedStage, VERSION, type WarningCode, type WatchOptions, blocksToMarkdown, compare, detectFormat, detectZipFormat, diffBlocks, extractFormFields, isHwpxFile, isOldHwpFile, isPdfFile, isZipFile, markdownToHwpx, markdownToXlsx, parse, parseDocx, parseHwp, parseHwpx, parsePdf, parseXlsx, runUnifiedOcrPipeline };
|
package/dist/index.d.ts
CHANGED
|
@@ -154,7 +154,7 @@ interface OutlineItem {
|
|
|
154
154
|
pageNumber?: number;
|
|
155
155
|
}
|
|
156
156
|
/** 구조화된 에러 코드 — 프로그래밍적 에러 핸들링용 */
|
|
157
|
-
type ErrorCode = "EMPTY_INPUT" | "UNSUPPORTED_FORMAT" | "ENCRYPTED" | "DRM_PROTECTED" | "CORRUPTED" | "DECOMPRESSION_BOMB" | "ZIP_BOMB" | "IMAGE_BASED_PDF" | "NO_SECTIONS" | "PARSE_ERROR" | "FILE_TOO_LARGE" | "CONVERT_FAILED"
|
|
157
|
+
type ErrorCode = "EMPTY_INPUT" | "UNSUPPORTED_FORMAT" | "ENCRYPTED" | "DRM_PROTECTED" | "CORRUPTED" | "DECOMPRESSION_BOMB" | "ZIP_BOMB" | "IMAGE_BASED_PDF" | "NO_SECTIONS" | "PARSE_ERROR" | "FILE_TOO_LARGE" | "CONVERT_FAILED";
|
|
158
158
|
type FileType = "hwpx" | "hwp" | "pdf" | "xlsx" | "docx" | "image" | "unknown";
|
|
159
159
|
interface ParseResultBase {
|
|
160
160
|
fileType: FileType;
|
|
@@ -251,105 +251,6 @@ interface WatchOptions {
|
|
|
251
251
|
pages?: string;
|
|
252
252
|
silent?: boolean;
|
|
253
253
|
}
|
|
254
|
-
/** 포맷 감지 단계 이벤트 */
|
|
255
|
-
interface ConvertDetectEvent {
|
|
256
|
-
type: "detect";
|
|
257
|
-
stage: "reading" | "format_detected" | "size_check";
|
|
258
|
-
message: string;
|
|
259
|
-
fileSize?: number;
|
|
260
|
-
format?: "hwp" | "hwpx";
|
|
261
|
-
}
|
|
262
|
-
/** 환경 검증 단계 이벤트 */
|
|
263
|
-
interface ConvertValidateEvent {
|
|
264
|
-
type: "validate";
|
|
265
|
-
stage: "soffice_check" | "soffice_found" | "soffice_not_found";
|
|
266
|
-
message: string;
|
|
267
|
-
sofficePath?: string;
|
|
268
|
-
}
|
|
269
|
-
/** 설치 단계 이벤트 */
|
|
270
|
-
interface ConvertInstallEvent {
|
|
271
|
-
type: "install";
|
|
272
|
-
stage: "install_start" | "download_progress" | "extract_progress" | "install_complete" | "install_failed";
|
|
273
|
-
message: string;
|
|
274
|
-
percent?: number;
|
|
275
|
-
downloadedBytes?: number;
|
|
276
|
-
totalBytes?: number;
|
|
277
|
-
installedPath?: string;
|
|
278
|
-
error?: string;
|
|
279
|
-
}
|
|
280
|
-
/** 변환 진행 이벤트 */
|
|
281
|
-
interface ConvertProgressEvent {
|
|
282
|
-
type: "convert";
|
|
283
|
-
stage: "convert_start" | "convert_progress" | "convert_done";
|
|
284
|
-
message: string;
|
|
285
|
-
percent: number;
|
|
286
|
-
}
|
|
287
|
-
/** 변환 완료 이벤트 */
|
|
288
|
-
interface ConvertCompleteEvent {
|
|
289
|
-
type: "complete";
|
|
290
|
-
stage: "success";
|
|
291
|
-
message: string;
|
|
292
|
-
result: {
|
|
293
|
-
sourceFormat: "hwp" | "hwpx";
|
|
294
|
-
pdfSize: number;
|
|
295
|
-
pageCount?: number;
|
|
296
|
-
};
|
|
297
|
-
}
|
|
298
|
-
/** 에러 이벤트 */
|
|
299
|
-
interface ConvertErrorEvent {
|
|
300
|
-
type: "error";
|
|
301
|
-
stage: "detect" | "validate" | "install" | "convert";
|
|
302
|
-
message: string;
|
|
303
|
-
code: ErrorCode;
|
|
304
|
-
recoverable: boolean;
|
|
305
|
-
suggestion?: string;
|
|
306
|
-
}
|
|
307
|
-
/** convertToPdf()에서 발생하는 모든 이벤트 */
|
|
308
|
-
type ConvertEvent = ConvertDetectEvent | ConvertValidateEvent | ConvertInstallEvent | ConvertProgressEvent | ConvertCompleteEvent | ConvertErrorEvent;
|
|
309
|
-
/** HWP/HWPX → PDF 변환 옵션 */
|
|
310
|
-
interface ConvertToPdfOptions {
|
|
311
|
-
/** 페이지 범위 ("1-3,5,7-10") — LibreOffice 필터가 지원하는 경우 */
|
|
312
|
-
pages?: string;
|
|
313
|
-
/** 품질/압축 설정 (미래 확장) */
|
|
314
|
-
quality?: "low" | "medium" | "high";
|
|
315
|
-
/** 타임아웃 (ms, 기본 60000) */
|
|
316
|
-
timeoutMs?: number;
|
|
317
|
-
/**
|
|
318
|
-
* 진행 상황 콜백 (deprecated — onEvent 사용 권장)
|
|
319
|
-
* @deprecated onEvent를 사용하세요
|
|
320
|
-
*/
|
|
321
|
-
onProgress?: (percent: number, stage: string) => void;
|
|
322
|
-
/**
|
|
323
|
-
* 이벤트 콜백 — 모든 진행 상황을 이벤트로 전달
|
|
324
|
-
*/
|
|
325
|
-
onEvent?: (event: ConvertEvent) => void;
|
|
326
|
-
/** LibreOffice 자동 설치 허용 (기본 true) */
|
|
327
|
-
autoInstallLibreOffice?: boolean;
|
|
328
|
-
/** LibreOffice 바이너리 직접 지정 */
|
|
329
|
-
sofficePath?: string;
|
|
330
|
-
}
|
|
331
|
-
/** PDF 변환 성공 결과 */
|
|
332
|
-
interface ConvertToPdfSuccess {
|
|
333
|
-
success: true;
|
|
334
|
-
/** PDF 바이너리 */
|
|
335
|
-
pdf: Uint8Array;
|
|
336
|
-
/** 원본 파일 형식 */
|
|
337
|
-
sourceFormat: "hwp" | "hwpx";
|
|
338
|
-
/** 페이지 수 (확인 가능한 경우) */
|
|
339
|
-
pageCount?: number;
|
|
340
|
-
}
|
|
341
|
-
/** PDF 변환 실패 결과 */
|
|
342
|
-
interface ConvertToPdfFailure {
|
|
343
|
-
success: false;
|
|
344
|
-
/** 에러 코드 */
|
|
345
|
-
code: ErrorCode;
|
|
346
|
-
/** 상세 에러 메시지 */
|
|
347
|
-
error: string;
|
|
348
|
-
/** 실패한 단계 */
|
|
349
|
-
stage?: "detect" | "validate" | "convert";
|
|
350
|
-
}
|
|
351
|
-
/** PDF 변환 결과 (discriminated union) */
|
|
352
|
-
type ConvertToPdfResult = ConvertToPdfSuccess | ConvertToPdfFailure;
|
|
353
254
|
|
|
354
255
|
/** 문서 비교 엔진 — IR 레벨 블록 비교로 신구대조표 생성 */
|
|
355
256
|
|
|
@@ -405,32 +306,6 @@ interface MarkdownToXlsxOptions {
|
|
|
405
306
|
*/
|
|
406
307
|
declare function markdownToXlsx(markdown: string, options?: MarkdownToXlsxOptions): Promise<ArrayBuffer>;
|
|
407
308
|
|
|
408
|
-
/**
|
|
409
|
-
* HWP/HWPX 파일을 PDF로 변환.
|
|
410
|
-
*
|
|
411
|
-
* @param input 파일 경로, Buffer, 또는 ArrayBuffer
|
|
412
|
-
* @param options 변환 옵션
|
|
413
|
-
* @returns 변환 결과 (성공/실패 discriminated union)
|
|
414
|
-
*
|
|
415
|
-
* @example
|
|
416
|
-
* ```ts
|
|
417
|
-
* import { convertToPdf } from "kordoc"
|
|
418
|
-
* const result = await convertToPdf("document.hwp")
|
|
419
|
-
* if (result.success) {
|
|
420
|
-
* await writeFile("output.pdf", result.pdf)
|
|
421
|
-
* }
|
|
422
|
-
* ```
|
|
423
|
-
*/
|
|
424
|
-
declare function convertToPdf(input: string | ArrayBuffer | Buffer, options?: ConvertToPdfOptions): Promise<ConvertToPdfResult>;
|
|
425
|
-
/**
|
|
426
|
-
* HWP 5.x 파일을 PDF로 변환 (포맷 감지 생략).
|
|
427
|
-
*/
|
|
428
|
-
declare function convertHwpToPdf(input: string | ArrayBuffer | Buffer, options?: ConvertToPdfOptions): Promise<ConvertToPdfResult>;
|
|
429
|
-
/**
|
|
430
|
-
* HWPX 파일을 PDF로 변환 (포맷 감지 생략).
|
|
431
|
-
*/
|
|
432
|
-
declare function convertHwpxToPdf(input: string | ArrayBuffer | Buffer, options?: ConvertToPdfOptions): Promise<ConvertToPdfResult>;
|
|
433
|
-
|
|
434
309
|
/** 매직 바이트 기반 파일 포맷 감지 */
|
|
435
310
|
|
|
436
311
|
/** ZIP 파일 여부: PK\x03\x04 */
|
|
@@ -535,7 +410,7 @@ declare class ApiKeyRotationPool {
|
|
|
535
410
|
}
|
|
536
411
|
|
|
537
412
|
type UnifiedStage = "convert" | "render" | "probe" | "ocr" | "proofread" | "merge";
|
|
538
|
-
type UnifiedOcrErrorCode = "UNSUPPORTED_INPUT" | "
|
|
413
|
+
type UnifiedOcrErrorCode = "UNSUPPORTED_INPUT" | "CONVERT_FAILED" | "RENDER_FAILED" | "PROBE_FAILED" | "OCR_FAILED" | "PROOFREAD_FAILED" | "MERGE_FAILED" | "UNKNOWN";
|
|
539
414
|
interface UnifiedOcrProgressEvent {
|
|
540
415
|
type: "stage_start" | "stage_progress" | "stage_done" | "error";
|
|
541
416
|
stage: UnifiedStage;
|
|
@@ -549,14 +424,12 @@ interface UnifiedOcrProgressEvent {
|
|
|
549
424
|
pageNumber?: number;
|
|
550
425
|
workerCount?: number;
|
|
551
426
|
}
|
|
552
|
-
/** unified-ocr에서 onEvent로 전달되는 보조 이벤트 — LibreOffice 설치/검증/에러 */
|
|
553
|
-
type UnifiedOcrAuxEvent = ConvertInstallEvent | ConvertValidateEvent | ConvertErrorEvent;
|
|
554
427
|
interface UnifiedOcrOptions {
|
|
555
428
|
workspaceDir?: string;
|
|
556
429
|
outputPath?: string;
|
|
557
430
|
dpi?: number;
|
|
558
431
|
baseUrl?: string;
|
|
559
|
-
onEvent?: (event: UnifiedOcrProgressEvent
|
|
432
|
+
onEvent?: (event: UnifiedOcrProgressEvent) => void;
|
|
560
433
|
modelCandidates?: string[];
|
|
561
434
|
modelMaxTokens?: Record<string, number>;
|
|
562
435
|
stageWeights?: Partial<Record<UnifiedStage, number>>;
|
|
@@ -566,10 +439,6 @@ interface UnifiedOcrOptions {
|
|
|
566
439
|
logger?: Logger;
|
|
567
440
|
runId?: string;
|
|
568
441
|
concurrencyPerKey?: number;
|
|
569
|
-
/** LibreOffice 자동 설치 허용 (기본 false) — convert 단계에서 install/validate 이벤트가 onEvent로 전달됨 */
|
|
570
|
-
autoInstallLibreOffice?: boolean;
|
|
571
|
-
/** LibreOffice 바이너리 직접 지정 (선택) — 지정 시 자동 탐색/설치 건너뜀 */
|
|
572
|
-
sofficePath?: string;
|
|
573
442
|
}
|
|
574
443
|
interface UnifiedOcrResult {
|
|
575
444
|
outputPath: string;
|
|
@@ -608,4 +477,4 @@ declare function parseXlsx(buffer: ArrayBuffer, options?: ParseOptions, zip?: JS
|
|
|
608
477
|
/** DOCX 파일을 Markdown으로 변환 */
|
|
609
478
|
declare function parseDocx(buffer: ArrayBuffer, options?: ParseOptions, zip?: JSZip): Promise<ParseResult>;
|
|
610
479
|
|
|
611
|
-
export { type AcquireResult, AllKeysCoolingDownError, type ApiKeyRotationOptions, ApiKeyRotationPool, type BlockDiff, type BoundingBox, type CellContext, type CellDiff, type
|
|
480
|
+
export { type AcquireResult, AllKeysCoolingDownError, type ApiKeyRotationOptions, ApiKeyRotationPool, type BlockDiff, type BoundingBox, type CellContext, type CellDiff, type DiffChangeType, type DiffResult, type DocumentMetadata, type ErrorCode, type ExtractedImage, type FileType, type FormField, type FormResult, type IRBlock, type IRBlockType, type IRCell, type IRTable, type ImageData, type InlineStyle, type KeyHealthSnapshot, type MarkdownToXlsxOptions, type OcrMode, type OcrProvider, type OutlineItem, type ParseFailure, type ParseOptions, type ParseResult, type ParseSuccess, type ParseWarning, type StructuredOcrResult, type UnifiedOcrOptions, type UnifiedOcrProgressEvent, type UnifiedOcrResult, type UnifiedStage, VERSION, type WarningCode, type WatchOptions, blocksToMarkdown, compare, detectFormat, detectZipFormat, diffBlocks, extractFormFields, isHwpxFile, isOldHwpFile, isPdfFile, isZipFile, markdownToHwpx, markdownToXlsx, parse, parseDocx, parseHwp, parseHwpx, parsePdf, parseXlsx, runUnifiedOcrPipeline };
|