kordoc 4.0.5 → 4.0.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 +806 -800
- package/dist/{-QVHGOOCR.js → -NDU7YGSS.js} +8 -8
- package/dist/{chunk-QK2G34WE.js → chunk-4C7SBZNW.js} +2 -2
- package/dist/chunk-4C7SBZNW.js.map +1 -0
- package/dist/{chunk-MEPHGCPQ.js → chunk-5CJGKKMZ.js} +1 -1
- package/dist/chunk-5CJGKKMZ.js.map +1 -0
- package/dist/{chunk-OMERK4AW.js → chunk-5SOZXPQY.js} +3 -3
- package/dist/chunk-5SOZXPQY.js.map +1 -0
- package/dist/{chunk-6WDPB4SN.js → chunk-63ASYC4N.js} +3 -3
- package/dist/chunk-63ASYC4N.js.map +1 -0
- package/dist/{chunk-5RPYBC2Q.js → chunk-6GBLFQMA.js} +1 -1
- package/dist/chunk-6GBLFQMA.js.map +1 -0
- package/dist/chunk-DCZVOIEO.cjs.map +1 -1
- package/dist/{chunk-6R5FY47W.cjs → chunk-DQJTNXVS.cjs} +2 -2
- package/dist/chunk-DQJTNXVS.cjs.map +1 -0
- package/dist/chunk-GS7T56RP.cjs.map +1 -1
- package/dist/{chunk-Z6Q3YG22.js → chunk-HC2SEH6I.js} +39 -9
- package/dist/chunk-HC2SEH6I.js.map +1 -0
- package/dist/{chunk-FKK4K53F.js → chunk-HOGJ5ALY.js} +2 -2
- package/dist/chunk-HOGJ5ALY.js.map +1 -0
- package/dist/{chunk-ZGMMLYAL.js → chunk-KA4FEBS2.js} +2 -2
- package/dist/chunk-KA4FEBS2.js.map +1 -0
- package/dist/{chunk-6BABRVOJ.js → chunk-L3I4TIRP.js} +2 -2
- package/dist/chunk-L3I4TIRP.js.map +1 -0
- package/dist/chunk-MOL7MDBG.js +0 -0
- package/dist/{chunk-6PED5OOG.js → chunk-UVSOSFER.js} +2 -2
- package/dist/chunk-UVSOSFER.js.map +1 -0
- package/dist/cli.js +15 -15
- package/dist/cli.js.map +1 -1
- package/dist/{detect-RI2MQ33K.js → detect-PJZMUL2Z.js} +2 -2
- package/dist/formula-5NKVS2LR.cjs.map +1 -1
- package/dist/formula-JCNF43NE.js +0 -0
- package/dist/index.cjs +167 -137
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +33 -3
- package/dist/index.js.map +1 -1
- package/dist/mcp.js +13 -13
- package/dist/mcp.js.map +1 -1
- package/dist/page-range-737B4EZW.js +0 -0
- package/dist/page-range-P7SDW6LR.cjs.map +1 -1
- package/dist/{parser-3MAYZUJX.js → parser-C636QIOB.js} +72 -4
- package/dist/parser-C636QIOB.js.map +1 -0
- package/dist/{parser-YSHZC5FQ.js → parser-DMKHIV4E.js} +71 -3
- package/dist/parser-DMKHIV4E.js.map +1 -0
- package/dist/{parser-2V5SPTU7.cjs → parser-VEY4B5CJ.cjs} +83 -15
- package/dist/parser-VEY4B5CJ.cjs.map +1 -0
- package/dist/{profile-io-3EECPDHG.js → profile-io-JYGCC6XQ.js} +3 -3
- package/dist/{provider-G4C2V2PD.cjs → provider-5K7O3Z2O.cjs} +1 -1
- package/dist/provider-5K7O3Z2O.cjs.map +1 -0
- package/dist/{provider-AKROB7WQ.js → provider-7H4CPZYS.js} +1 -1
- package/dist/provider-7H4CPZYS.js.map +1 -0
- package/dist/{provider-4ZJKV3DC.js → provider-H4WWSPOV.js} +1 -1
- package/dist/provider-H4WWSPOV.js.map +1 -0
- package/dist/render-ISOEOMTM.js +10 -0
- package/dist/seal-676ZIAZZ.js +10 -0
- package/dist/setup-57FB3LSP.js +0 -0
- package/dist/{watch-7MHSCKEQ.js → watch-ZQUFJBFR.js} +8 -8
- package/dist/watch-ZQUFJBFR.js.map +1 -0
- package/package.json +97 -97
- package/dist/chunk-5RPYBC2Q.js.map +0 -1
- package/dist/chunk-6BABRVOJ.js.map +0 -1
- package/dist/chunk-6PED5OOG.js.map +0 -1
- package/dist/chunk-6R5FY47W.cjs.map +0 -1
- package/dist/chunk-6WDPB4SN.js.map +0 -1
- package/dist/chunk-FKK4K53F.js.map +0 -1
- package/dist/chunk-MEPHGCPQ.js.map +0 -1
- package/dist/chunk-OMERK4AW.js.map +0 -1
- package/dist/chunk-QK2G34WE.js.map +0 -1
- package/dist/chunk-Z6Q3YG22.js.map +0 -1
- package/dist/chunk-ZGMMLYAL.js.map +0 -1
- package/dist/parser-2V5SPTU7.cjs.map +0 -1
- package/dist/parser-3MAYZUJX.js.map +0 -1
- package/dist/parser-YSHZC5FQ.js.map +0 -1
- package/dist/provider-4ZJKV3DC.js.map +0 -1
- package/dist/provider-AKROB7WQ.js.map +0 -1
- package/dist/provider-G4C2V2PD.cjs.map +0 -1
- package/dist/render-MJSQ4TG2.js +0 -10
- package/dist/seal-R3POFNOU.js +0 -10
- package/dist/watch-7MHSCKEQ.js.map +0 -1
- /package/dist/{-QVHGOOCR.js.map → -NDU7YGSS.js.map} +0 -0
- /package/dist/{detect-RI2MQ33K.js.map → detect-PJZMUL2Z.js.map} +0 -0
- /package/dist/{profile-io-3EECPDHG.js.map → profile-io-JYGCC6XQ.js.map} +0 -0
- /package/dist/{render-MJSQ4TG2.js.map → render-ISOEOMTM.js.map} +0 -0
- /package/dist/{seal-R3POFNOU.js.map → seal-676ZIAZZ.js.map} +0 -0
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/hwpx/profile-io.ts"],"sourcesContent":["/**\n * FormatProfile JSON 경계 검증 — CLI(--profile)와 MCP(profile_path)가 공유하는 1벌\n * 스키마 (이슈 #41 표면 노출, v4.0.6). 라이브러리 API(markdownToHwpx options.profile)는\n * 타입 계약을 신뢰하고, 파일에서 들어오는 JSON(손편집 가능)만 여기서 검증한다.\n */\n\nimport { z } from \"zod\"\nimport { KordocError } from \"../utils.js\"\nimport type { FormatProfile } from \"./gen-profile.js\"\n\n// 괘선 값 검증 (v4.0.4) — type/width/color는 XML에 원문 방출되므로 손편집 오타가\n// 한컴 로드 실패·무시로 번지기 전에 여기서 잡는다.\n// type: HWPX LineType2 열거(KS X 6101). 실측 코퍼스 등장: NONE·SOLID·DASH·DOUBLE_SLIM·SLIM_THICK\nconst borderType = z.enum([\n \"NONE\", \"SOLID\", \"DASH\", \"DOT\", \"DASH_DOT\", \"DASH_DOT_DOT\", \"LONG_DASH\", \"CIRCLE\",\n \"DOUBLE_SLIM\", \"SLIM_THICK\", \"THICK_SLIM\", \"SLIM_THICK_SLIM\", \"WAVE\", \"DOUBLEWAVE\",\n])\nconst mmWidth = z.string().regex(/^\\d+(\\.\\d+)? ?mm$/, '\"0.12 mm\" 형식(mm 단위)이어야 합니다')\nconst hexColor = z.string().regex(/^(#[0-9A-Fa-f]{6}|none)$/i, '\"#RRGGBB\" 또는 \"none\"이어야 합니다')\n\nconst borderDef = z.object({\n type: borderType,\n width: mmWidth,\n color: hexColor,\n})\n\nconst borderFillDef = z.object({\n leftBorder: borderDef.optional(),\n rightBorder: borderDef.optional(),\n topBorder: borderDef.optional(),\n bottomBorder: borderDef.optional(),\n fill: z.object({ faceColor: hexColor }).optional(),\n})\n\nconst charPrDef = z.object({\n height_hwpunit: z.string().optional(),\n textColor: hexColor.optional(),\n bold: z.boolean().optional(),\n italic: z.boolean().optional(),\n underline: z.boolean().optional(),\n fontRef_hangul: z.string().optional(),\n fontName_hangul: z.string().optional(),\n})\n\nconst cellProfile = z.object({\n row: z.number().int().min(0),\n col: z.number().int().min(0),\n rowSpan: z.number().int().min(1).optional(),\n colSpan: z.number().int().min(1).optional(),\n width_hwpunit: z.string().optional(),\n height_hwpunit: z.string().optional(),\n borderFillIDRef: z.string().optional(),\n charPrIDRef: z.string().optional(),\n})\n\nconst tableProfile = z.object({\n table_index: z.number().int().min(0),\n rows: z.number().int().min(1),\n cols: z.number().int().min(1),\n anchor_text: z.string().optional(),\n anchor_row: z.string().optional(),\n width_hwpunit: z.string().optional(),\n col_widths_hwpunit: z.array(z.string()).optional(),\n cells: z.array(cellProfile),\n used_border_fills: z.record(borderFillDef),\n used_char_prs: z.record(charPrDef).optional(),\n})\n\nexport const formatProfileSchema = z.object({\n schema_version: z.string().optional(),\n tables: z.array(tableProfile),\n})\n\n/** 프로필 JSON 텍스트 → 검증된 FormatProfile. 실패 시 KordocError(위치·사유 요약) */\nexport function parseFormatProfileJson(text: string): FormatProfile {\n let raw: unknown\n try {\n raw = JSON.parse(text)\n } catch (e) {\n throw new KordocError(`프로필 JSON 파싱 실패: ${e instanceof Error ? e.message : String(e)}`)\n }\n const r = formatProfileSchema.safeParse(raw)\n if (!r.success) {\n const first = r.error.issues.slice(0, 3).map(i => `${i.path.join(\".\") || \"(root)\"}: ${i.message}`).join(\" / \")\n throw new KordocError(`프로필 스키마 불일치: ${first}`)\n }\n return r.data as FormatProfile\n}\n"],"mappings":";;;;;;AAMA,SAAS,SAAS;AAOlB,IAAM,aAAa,EAAE,KAAK;AAAA,EACxB;AAAA,EAAQ;AAAA,EAAS;AAAA,EAAQ;AAAA,EAAO;AAAA,EAAY;AAAA,EAAgB;AAAA,EAAa;AAAA,EACzE;AAAA,EAAe;AAAA,EAAc;AAAA,EAAc;AAAA,EAAmB;AAAA,EAAQ;AACxE,CAAC;AACD,IAAM,UAAU,EAAE,OAAO,EAAE,MAAM,qBAAqB,8EAA4B;AAClF,IAAM,WAAW,EAAE,OAAO,EAAE,MAAM,6BAA6B,oEAA4B;AAE3F,IAAM,YAAY,EAAE,OAAO;AAAA,EACzB,MAAM;AAAA,EACN,OAAO;AAAA,EACP,OAAO;AACT,CAAC;AAED,IAAM,gBAAgB,EAAE,OAAO;AAAA,EAC7B,YAAY,UAAU,SAAS;AAAA,EAC/B,aAAa,UAAU,SAAS;AAAA,EAChC,WAAW,UAAU,SAAS;AAAA,EAC9B,cAAc,UAAU,SAAS;AAAA,EACjC,MAAM,EAAE,OAAO,EAAE,WAAW,SAAS,CAAC,EAAE,SAAS;AACnD,CAAC;AAED,IAAM,YAAY,EAAE,OAAO;AAAA,EACzB,gBAAgB,EAAE,OAAO,EAAE,SAAS;AAAA,EACpC,WAAW,SAAS,SAAS;AAAA,EAC7B,MAAM,EAAE,QAAQ,EAAE,SAAS;AAAA,EAC3B,QAAQ,EAAE,QAAQ,EAAE,SAAS;AAAA,EAC7B,WAAW,EAAE,QAAQ,EAAE,SAAS;AAAA,EAChC,gBAAgB,EAAE,OAAO,EAAE,SAAS;AAAA,EACpC,iBAAiB,EAAE,OAAO,EAAE,SAAS;AACvC,CAAC;AAED,IAAM,cAAc,EAAE,OAAO;AAAA,EAC3B,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC;AAAA,EAC3B,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC;AAAA,EAC3B,SAAS,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,SAAS;AAAA,EAC1C,SAAS,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,SAAS;AAAA,EAC1C,eAAe,EAAE,OAAO,EAAE,SAAS;AAAA,EACnC,gBAAgB,EAAE,OAAO,EAAE,SAAS;AAAA,EACpC,iBAAiB,EAAE,OAAO,EAAE,SAAS;AAAA,EACrC,aAAa,EAAE,OAAO,EAAE,SAAS;AACnC,CAAC;AAED,IAAM,eAAe,EAAE,OAAO;AAAA,EAC5B,aAAa,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC;AAAA,EACnC,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC;AAAA,EAC5B,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC;AAAA,EAC5B,aAAa,EAAE,OAAO,EAAE,SAAS;AAAA,EACjC,YAAY,EAAE,OAAO,EAAE,SAAS;AAAA,EAChC,eAAe,EAAE,OAAO,EAAE,SAAS;AAAA,EACnC,oBAAoB,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,SAAS;AAAA,EACjD,OAAO,EAAE,MAAM,WAAW;AAAA,EAC1B,mBAAmB,EAAE,OAAO,aAAa;AAAA,EACzC,eAAe,EAAE,OAAO,SAAS,EAAE,SAAS;AAC9C,CAAC;AAEM,IAAM,sBAAsB,EAAE,OAAO;AAAA,EAC1C,gBAAgB,EAAE,OAAO,EAAE,SAAS;AAAA,EACpC,QAAQ,EAAE,MAAM,YAAY;AAC9B,CAAC;AAGM,SAAS,uBAAuB,MAA6B;AAClE,MAAI;AACJ,MAAI;AACF,UAAM,KAAK,MAAM,IAAI;AAAA,EACvB,SAAS,GAAG;AACV,UAAM,IAAI,YAAY,sDAAmB,aAAa,QAAQ,EAAE,UAAU,OAAO,CAAC,CAAC,EAAE;AAAA,EACvF;AACA,QAAM,IAAI,oBAAoB,UAAU,GAAG;AAC3C,MAAI,CAAC,EAAE,SAAS;AACd,UAAM,QAAQ,EAAE,MAAM,OAAO,MAAM,GAAG,CAAC,EAAE,IAAI,OAAK,GAAG,EAAE,KAAK,KAAK,GAAG,KAAK,QAAQ,KAAK,EAAE,OAAO,EAAE,EAAE,KAAK,KAAK;AAC7G,UAAM,IAAI,YAAY,6DAAgB,KAAK,EAAE;AAAA,EAC/C;AACA,SAAO,EAAE;AACX;","names":[]}
|