remark-docx 0.1.1 → 0.1.2

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 CHANGED
@@ -13,7 +13,7 @@ If you have some feature requests or improvements, please create a [issue](https
13
13
  - [x] paragraph
14
14
  - [x] heading
15
15
  - [x] thematicBreak
16
- - [ ] blockquote
16
+ - [x] blockquote
17
17
  - [x] list
18
18
  - [x] listItem
19
19
  - [x] table
@@ -37,7 +37,7 @@ If you have some feature requests or improvements, please create a [issue](https
37
37
  - [ ] imageReference
38
38
  - [ ] footnote
39
39
  - [ ] footnoteReference
40
- - [x] LaTeX support with math and inlineMath ([remark-math](https://www.npmjs.com/package/remark-math) is required)
40
+ - [x] LaTeX support with math and inlineMath ([remark-math](https://github.com/remarkjs/remark-math) is required)
41
41
 
42
42
  ## Demo
43
43
 
package/lib/index.js CHANGED
@@ -443,6 +443,7 @@ const mdastToDocx = (node, { output = "buffer", title, subject, creator, keyword
443
443
  const nodes = convertNodes(node.children, {
444
444
  deco: {},
445
445
  images,
446
+ indent: 0,
446
447
  });
447
448
  const doc = new docx__namespace.Document({
448
449
  title,
@@ -567,7 +568,11 @@ const convertNodes = (nodes, ctx) => {
567
568
  };
568
569
  const buildParagraph = ({ children }, ctx) => {
569
570
  const list = ctx.list;
570
- return new docx__namespace.Paragraph(Object.assign({ children: convertNodes(children, ctx) }, (list &&
571
+ return new docx__namespace.Paragraph(Object.assign({ children: convertNodes(children, ctx), indent: ctx.indent > 0
572
+ ? {
573
+ start: docx.convertInchesToTwip(INDENT * ctx.indent),
574
+ }
575
+ : undefined }, (list &&
571
576
  (list.ordered
572
577
  ? {
573
578
  numbering: {
@@ -614,8 +619,7 @@ const buildThematicBreak = (_) => {
614
619
  });
615
620
  };
616
621
  const buildBlockquote = ({ children }, ctx) => {
617
- // FIXME: do nothing for now
618
- return convertNodes(children, ctx);
622
+ return convertNodes(children, Object.assign(Object.assign({}, ctx), { indent: ctx.indent + 1 }));
619
623
  };
620
624
  const buildList = ({ children, ordered, start: _start, spread: _spread }, ctx) => {
621
625
  const list = {
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../src/src/utils.ts","../src/src/latex.ts","../src/src/transformer.ts","../src/src/plugin.ts"],"sourcesContent":["export const unreachable = (_: never): never => {\n throw new Error(\"unreachable\");\n};\n\nexport function invariant(cond: any, message: string): asserts cond {\n if (!cond) throw new Error(message);\n}\n","import * as docx from \"docx\";\nimport { parseMath } from \"@unified-latex/unified-latex-util-parse\";\nimport type * as latex from \"@unified-latex/unified-latex-types\";\nimport { unreachable } from \"./utils\";\n\nconst hasSquareBrackets = (\n arg: latex.Argument | undefined\n): arg is latex.Argument => {\n return !!arg && arg.openMark === \"[\" && arg.closeMark === \"]\";\n};\nconst hasCurlyBrackets = (\n arg: latex.Argument | undefined\n): arg is latex.Argument => {\n return !!arg && arg.openMark === \"{\" && arg.closeMark === \"}\";\n};\n\nconst mapString = (s: string): docx.MathRun => new docx.MathRun(s);\n\nconst mapMacro = (\n n: latex.Macro,\n runs: docx.MathRun[]\n): docx.MathRun | false => {\n switch (n.content) {\n case \"#\":\n return mapString(\"#\");\n case \"$\":\n return mapString(\"$\");\n case \"%\":\n return mapString(\"%\");\n case \"&\":\n return mapString(\"&\");\n case \"textasciitilde\":\n return mapString(\"~\");\n case \"textasciicircum\":\n return mapString(\"^\");\n case \"textbackslash\":\n return mapString(\"∖\");\n case \"{\":\n return mapString(\"{\");\n case \"}\":\n return mapString(\"}\");\n case \"textbar\":\n return mapString(\"|\");\n case \"textless\":\n return mapString(\"<\");\n case \"textgreater\":\n return mapString(\">\");\n case \"neq\":\n return mapString(\"≠\");\n case \"sim\":\n return mapString(\"∼\");\n case \"simeq\":\n return mapString(\"≃\");\n case \"approx\":\n return mapString(\"≈\");\n case \"fallingdotseq\":\n return mapString(\"≒\");\n case \"risingdotseq\":\n return mapString(\"≓\");\n case \"equiv\":\n return mapString(\"≡\");\n case \"geq\":\n return mapString(\"≥\");\n case \"geqq\":\n return mapString(\"≧\");\n case \"leq\":\n return mapString(\"≤\");\n case \"leqq\":\n return mapString(\"≦\");\n case \"gg\":\n return mapString(\"≫\");\n case \"ll\":\n return mapString(\"≪\");\n case \"times\":\n return mapString(\"×\");\n case \"div\":\n return mapString(\"÷\");\n case \"pm\":\n return mapString(\"±\");\n case \"mp\":\n return mapString(\"∓\");\n case \"oplus\":\n return mapString(\"⊕\");\n case \"ominus\":\n return mapString(\"⊖\");\n case \"otimes\":\n return mapString(\"⊗\");\n case \"oslash\":\n return mapString(\"⊘\");\n case \"circ\":\n return mapString(\"∘\");\n case \"cdot\":\n return mapString(\"⋅\");\n case \"bullet\":\n return mapString(\"∙\");\n case \"ltimes\":\n return mapString(\"⋉\");\n case \"rtimes\":\n return mapString(\"⋊\");\n case \"in\":\n return mapString(\"∈\");\n case \"ni\":\n return mapString(\"∋\");\n case \"notin\":\n return mapString(\"∉\");\n case \"subset\":\n return mapString(\"⊂\");\n case \"supset\":\n return mapString(\"⊃\");\n case \"subseteq\":\n return mapString(\"⊆\");\n case \"supseteq\":\n return mapString(\"⊇\");\n case \"nsubseteq\":\n return mapString(\"⊈\");\n case \"nsupseteq\":\n return mapString(\"⊉\");\n case \"subsetneq\":\n return mapString(\"⊊\");\n case \"supsetneq\":\n return mapString(\"⊋\");\n case \"cap\":\n return mapString(\"∩\");\n case \"cup\":\n return mapString(\"∪\");\n case \"emptyset\":\n return mapString(\"∅\");\n case \"infty\":\n return mapString(\"∞\");\n case \"partial\":\n return mapString(\"∂\");\n case \"aleph\":\n return mapString(\"ℵ\");\n case \"hbar\":\n return mapString(\"ℏ\");\n case \"wp\":\n return mapString(\"℘\");\n case \"Re\":\n return mapString(\"ℜ\");\n case \"Im\":\n return mapString(\"ℑ\");\n case \"alpha\":\n return mapString(\"α\");\n case \"beta\":\n return mapString(\"β\");\n case \"gamma\":\n return mapString(\"γ\");\n case \"delta\":\n return mapString(\"δ\");\n case \"epsilon\":\n return mapString(\"ϵ\");\n case \"zeta\":\n return mapString(\"ζ\");\n case \"eta\":\n return mapString(\"η\");\n case \"theta\":\n return mapString(\"θ\");\n case \"iota\":\n return mapString(\"ι\");\n case \"kappa\":\n return mapString(\"κ\");\n case \"lambda\":\n return mapString(\"λ\");\n case \"eta\":\n return mapString(\"η\");\n case \"mu\":\n return mapString(\"μ\");\n case \"nu\":\n return mapString(\"ν\");\n case \"xi\":\n return mapString(\"ξ\");\n case \"pi\":\n return mapString(\"π\");\n case \"rho\":\n return mapString(\"ρ\");\n case \"sigma\":\n return mapString(\"σ\");\n case \"tau\":\n return mapString(\"τ\");\n case \"upsilon\":\n return mapString(\"υ\");\n case \"phi\":\n return mapString(\"ϕ\");\n case \"chi\":\n return mapString(\"χ\");\n case \"psi\":\n return mapString(\"ψ\");\n case \"omega\":\n return mapString(\"ω\");\n case \"varepsilon\":\n return mapString(\"ε\");\n case \"vartheta\":\n return mapString(\"ϑ\");\n case \"varrho\":\n return mapString(\"ϱ\");\n case \"varsigma\":\n return mapString(\"ς\");\n case \"varphi\":\n return mapString(\"φ\");\n case \"Gamma\":\n return mapString(\"Γ\");\n case \"Delta\":\n return mapString(\"Δ\");\n case \"Theta\":\n return mapString(\"Θ\");\n case \"Lambda\":\n return mapString(\"Λ\");\n case \"Xi\":\n return mapString(\"Ξ\");\n case \"Pi\":\n return mapString(\"Π\");\n case \"Sigma\":\n return mapString(\"Σ\");\n case \"Upsilon\":\n return mapString(\"Υ\");\n case \"Phi\":\n return mapString(\"Φ\");\n case \"Psi\":\n return mapString(\"Ψ\");\n case \"Omega\":\n return mapString(\"Ω\");\n case \"newline\":\n case \"\\\\\":\n // line break\n return false;\n case \"^\": {\n const prev = runs.pop();\n if (!prev) break;\n return new docx.MathSuperScript({\n children: [prev],\n superScript: mapGroup(n.args?.[0]?.content ?? []),\n });\n }\n case \"_\": {\n const prev = runs.pop();\n if (!prev) break;\n return new docx.MathSubScript({\n children: [prev],\n subScript: mapGroup(n.args?.[0]?.content ?? []),\n });\n }\n case \"hat\":\n // TODO: implement\n break;\n case \"widehat\":\n // TODO: implement\n break;\n case \"sum\": {\n // TODO: support superscript and subscript\n return new docx.MathSum({\n children: [],\n });\n }\n case \"int\":\n return mapString(\"∫\");\n case \"frac\":\n case \"tfrac\":\n case \"dfrac\": {\n const args = n.args ?? [];\n if (\n args.length === 2 &&\n hasCurlyBrackets(args[0]) &&\n hasCurlyBrackets(args[1])\n ) {\n return new docx.MathFraction({\n numerator: mapGroup(args[0].content),\n denominator: mapGroup(args[1].content),\n });\n }\n break;\n }\n case \"sqrt\": {\n const args = n.args ?? [];\n if (args.length === 1 && hasCurlyBrackets(args[0])) {\n return new docx.MathRadical({\n children: mapGroup(args[0].content),\n });\n }\n if (\n args.length === 2 &&\n hasSquareBrackets(args[0]) &&\n hasCurlyBrackets(args[1])\n ) {\n return new docx.MathRadical({\n children: mapGroup(args[1].content),\n degree: mapGroup(args[0].content),\n });\n }\n break;\n }\n default:\n break;\n }\n return mapString(n.content);\n};\n\nconst mapGroup = (nodes: latex.Node[]): docx.MathRun[] => {\n const group: docx.MathRun[] = [];\n for (const c of nodes) {\n group.push(...(mapNode(c, group) || []));\n }\n return group;\n};\n\nconst mapNode = (\n n: latex.Node,\n runs: docx.MathRun[]\n): docx.MathRun[] | false => {\n switch (n.type) {\n case \"root\":\n break;\n case \"string\":\n return [mapString(n.content)];\n case \"whitespace\":\n break;\n case \"parbreak\":\n break;\n case \"comment\":\n break;\n case \"macro\":\n const run = mapMacro(n, runs);\n if (!run) {\n // line break\n return false;\n } else {\n return [run];\n }\n case \"environment\":\n case \"mathenv\":\n break;\n case \"verbatim\":\n break;\n case \"inlinemath\":\n break;\n case \"displaymath\":\n break;\n case \"group\":\n return mapGroup(n.content);\n case \"verb\":\n break;\n default:\n unreachable(n);\n }\n\n return [];\n};\n\nexport const parseLatex = (value: string): docx.MathRun[][] => {\n const parsed = parseMath(value);\n const paragraphs: docx.MathRun[][] = [[]];\n let runs: docx.MathRun[] = paragraphs[0]!;\n for (const n of parsed) {\n const res = mapNode(n, runs);\n if (!res) {\n // line break\n paragraphs.push((runs = []));\n } else {\n runs.push(...res);\n }\n }\n return paragraphs;\n};\n","import * as docx from \"docx\";\nimport { convertInchesToTwip, Packer } from \"docx\";\nimport type { IPropertiesOptions } from \"docx/build/file/core-properties\";\nimport type * as mdast from \"./models/mdast\";\nimport { parseLatex } from \"./latex\";\nimport { invariant, unreachable } from \"./utils\";\n\nconst ORDERED_LIST_REF = \"ordered\";\nconst INDENT = 0.5;\nconst DEFAULT_NUMBERINGS: docx.ILevelsOptions[] = [\n {\n level: 0,\n format: docx.LevelFormat.DECIMAL,\n text: \"%1.\",\n alignment: docx.AlignmentType.START,\n },\n {\n level: 1,\n format: docx.LevelFormat.DECIMAL,\n text: \"%2.\",\n alignment: docx.AlignmentType.START,\n style: {\n paragraph: {\n indent: { start: convertInchesToTwip(INDENT * 1) },\n },\n },\n },\n {\n level: 2,\n format: docx.LevelFormat.DECIMAL,\n text: \"%3.\",\n alignment: docx.AlignmentType.START,\n style: {\n paragraph: {\n indent: { start: convertInchesToTwip(INDENT * 2) },\n },\n },\n },\n {\n level: 3,\n format: docx.LevelFormat.DECIMAL,\n text: \"%4.\",\n alignment: docx.AlignmentType.START,\n style: {\n paragraph: {\n indent: { start: convertInchesToTwip(INDENT * 3) },\n },\n },\n },\n {\n level: 4,\n format: docx.LevelFormat.DECIMAL,\n text: \"%5.\",\n alignment: docx.AlignmentType.START,\n style: {\n paragraph: {\n indent: { start: convertInchesToTwip(INDENT * 4) },\n },\n },\n },\n {\n level: 5,\n format: docx.LevelFormat.DECIMAL,\n text: \"%6.\",\n alignment: docx.AlignmentType.START,\n style: {\n paragraph: {\n indent: { start: convertInchesToTwip(INDENT * 5) },\n },\n },\n },\n];\n\nexport type ImageDataMap = { [url: string]: ImageData };\n\nexport type ImageData = {\n image: docx.IImageOptions[\"data\"];\n width: number;\n height: number;\n};\n\nexport type ImageResolver = (url: string) => Promise<ImageData> | ImageData;\n\ntype Decoration = Readonly<\n {\n [key in (mdast.Emphasis | mdast.Strong | mdast.Delete)[\"type\"]]?: true;\n }\n>;\n\ntype ListInfo = Readonly<{\n level: number;\n ordered: boolean;\n}>;\n\ntype Context = Readonly<{\n deco: Decoration;\n images: ImageDataMap;\n list?: ListInfo;\n}>;\n\nexport type Opts = {\n output?: \"buffer\" | \"blob\";\n imageResolver?: ImageResolver;\n} & Pick<\n IPropertiesOptions,\n | \"title\"\n | \"subject\"\n | \"creator\"\n | \"keywords\"\n | \"description\"\n | \"lastModifiedBy\"\n | \"revision\"\n | \"styles\"\n | \"background\"\n>;\n\ntype DocxChild = docx.Paragraph | docx.Table | docx.TableOfContents;\ntype DocxContent = DocxChild | docx.ParagraphChild;\n\nexport const mdastToDocx = (\n node: mdast.Root,\n {\n output = \"buffer\",\n title,\n subject,\n creator,\n keywords,\n description,\n lastModifiedBy,\n revision,\n styles,\n background,\n }: Opts,\n images: ImageDataMap\n): Promise<any> => {\n const nodes = convertNodes(node.children, {\n deco: {},\n images,\n }) as DocxChild[];\n const doc = new docx.Document({\n title,\n subject,\n creator,\n keywords,\n description,\n lastModifiedBy,\n revision,\n styles,\n background,\n sections: [{ children: nodes }],\n numbering: {\n config: [\n {\n reference: ORDERED_LIST_REF,\n levels: DEFAULT_NUMBERINGS,\n },\n ],\n },\n });\n\n switch (output) {\n case \"buffer\":\n return Packer.toBuffer(doc);\n case \"blob\":\n return Packer.toBlob(doc);\n }\n};\n\nconst convertNodes = (nodes: mdast.Content[], ctx: Context): DocxContent[] => {\n const results: DocxContent[] = [];\n\n for (const node of nodes) {\n switch (node.type) {\n case \"paragraph\":\n results.push(buildParagraph(node, ctx));\n break;\n case \"heading\":\n results.push(buildHeading(node, ctx));\n break;\n case \"thematicBreak\":\n results.push(buildThematicBreak(node));\n break;\n case \"blockquote\":\n results.push(...buildBlockquote(node, ctx));\n break;\n case \"list\":\n results.push(...buildList(node, ctx));\n break;\n case \"listItem\":\n invariant(false, \"unreachable\");\n case \"table\":\n results.push(buildTable(node, ctx));\n break;\n case \"tableRow\":\n invariant(false, \"unreachable\");\n case \"tableCell\":\n invariant(false, \"unreachable\");\n case \"html\":\n results.push(buildHtml(node));\n break;\n case \"code\":\n results.push(buildCode(node));\n break;\n case \"yaml\":\n // FIXME: unimplemented\n break;\n case \"toml\":\n // FIXME: unimplemented\n break;\n case \"definition\":\n // FIXME: unimplemented\n break;\n case \"footnoteDefinition\":\n // FIXME: unimplemented\n break;\n case \"text\":\n results.push(buildText(node.value, ctx.deco));\n break;\n case \"emphasis\":\n case \"strong\":\n case \"delete\": {\n const { type, children } = node;\n results.push(\n ...convertNodes(children, {\n ...ctx,\n deco: { ...ctx.deco, [type]: true },\n })\n );\n break;\n }\n case \"inlineCode\":\n // FIXME: transform to text for now\n results.push(buildText(node.value, ctx.deco));\n break;\n case \"break\":\n results.push(buildBreak(node));\n break;\n case \"link\":\n results.push(buildLink(node, ctx));\n break;\n case \"image\":\n results.push(buildImage(node, ctx.images));\n break;\n case \"linkReference\":\n // FIXME: unimplemented\n break;\n case \"imageReference\":\n // FIXME: unimplemented\n break;\n case \"footnote\":\n results.push(buildFootnote(node, ctx));\n break;\n case \"footnoteReference\":\n // FIXME: unimplemented\n break;\n case \"math\":\n results.push(...buildMath(node));\n break;\n case \"inlineMath\":\n results.push(buildInlineMath(node));\n break;\n default:\n unreachable(node);\n break;\n }\n }\n return results;\n};\n\nconst buildParagraph = ({ children }: mdast.Paragraph, ctx: Context) => {\n const list = ctx.list;\n return new docx.Paragraph({\n children: convertNodes(children, ctx),\n ...(list &&\n (list.ordered\n ? {\n numbering: {\n reference: ORDERED_LIST_REF,\n level: list.level,\n },\n }\n : {\n bullet: {\n level: list.level,\n },\n })),\n });\n};\n\nconst buildHeading = ({ children, depth }: mdast.Heading, ctx: Context) => {\n let heading: docx.HeadingLevel;\n switch (depth) {\n case 1:\n heading = docx.HeadingLevel.TITLE;\n break;\n case 2:\n heading = docx.HeadingLevel.HEADING_1;\n break;\n case 3:\n heading = docx.HeadingLevel.HEADING_2;\n break;\n case 4:\n heading = docx.HeadingLevel.HEADING_3;\n break;\n case 5:\n heading = docx.HeadingLevel.HEADING_4;\n break;\n case 6:\n heading = docx.HeadingLevel.HEADING_5;\n break;\n }\n return new docx.Paragraph({\n heading,\n children: convertNodes(children, ctx),\n });\n};\n\nconst buildThematicBreak = (_: mdast.ThematicBreak) => {\n return new docx.Paragraph({\n thematicBreak: true,\n });\n};\n\nconst buildBlockquote = ({ children }: mdast.Blockquote, ctx: Context) => {\n // FIXME: do nothing for now\n return convertNodes(children, ctx);\n};\n\nconst buildList = (\n { children, ordered, start: _start, spread: _spread }: mdast.List,\n ctx: Context\n) => {\n const list: ListInfo = {\n level: ctx.list ? ctx.list.level + 1 : 0,\n ordered: !!ordered,\n };\n return children.reduce((acc, item) => {\n acc.push(\n ...buildListItem(item, {\n ...ctx,\n list,\n })\n );\n return acc;\n }, [] as DocxContent[]);\n};\n\nconst buildListItem = (\n { children, checked: _checked, spread: _spread }: mdast.ListItem,\n ctx: Context\n) => {\n return convertNodes(children, ctx);\n};\n\nconst buildTable = ({ children, align }: mdast.Table, ctx: Context) => {\n const cellAligns: docx.AlignmentType[] | undefined = align?.map((a) => {\n switch (a) {\n case \"left\":\n return docx.AlignmentType.LEFT;\n case \"right\":\n return docx.AlignmentType.RIGHT;\n case \"center\":\n return docx.AlignmentType.CENTER;\n default:\n return docx.AlignmentType.LEFT;\n }\n });\n\n return new docx.Table({\n rows: children.map((r) => {\n return buildTableRow(r, ctx, cellAligns);\n }),\n });\n};\n\nconst buildTableRow = (\n { children }: mdast.TableRow,\n ctx: Context,\n cellAligns: docx.AlignmentType[] | undefined\n) => {\n return new docx.TableRow({\n children: children.map((c, i) => {\n return buildTableCell(c, ctx, cellAligns?.[i]);\n }),\n });\n};\n\nconst buildTableCell = (\n { children }: mdast.TableCell,\n ctx: Context,\n align: docx.AlignmentType | undefined\n) => {\n return new docx.TableCell({\n children: [\n new docx.Paragraph({\n alignment: align,\n children: convertNodes(children, ctx),\n }),\n ],\n });\n};\n\nconst buildHtml = ({ value }: mdast.HTML) => {\n // FIXME: transform to text for now\n return new docx.Paragraph({\n children: [buildText(value, {})],\n });\n};\n\nconst buildCode = ({ value, lang: _lang, meta: _meta }: mdast.Code) => {\n // FIXME: transform to text for now\n return new docx.Paragraph({\n children: [buildText(value, {})],\n });\n};\n\nconst buildMath = ({ value }: mdast.Math) => {\n return parseLatex(value).map(\n (runs) =>\n new docx.Paragraph({\n children: [\n new docx.Math({\n children: runs,\n }),\n ],\n })\n );\n};\n\nconst buildInlineMath = ({ value }: mdast.InlineMath) => {\n return new docx.Math({\n children: parseLatex(value).flatMap((runs) => runs),\n });\n};\n\nconst buildText = (text: string, deco: Decoration) => {\n return new docx.TextRun({\n text,\n bold: deco.strong,\n italics: deco.emphasis,\n strike: deco.delete,\n });\n};\n\nconst buildBreak = (_: mdast.Break) => {\n return new docx.TextRun({ text: \"\", break: 1 });\n};\n\nconst buildLink = (\n { children, url, title: _title }: mdast.Link,\n ctx: Context\n) => {\n return new docx.ExternalHyperlink({\n link: url,\n children: convertNodes(children, ctx),\n });\n};\n\nconst buildImage = (\n { url, title: _title, alt: _alt }: mdast.Image,\n images: ImageDataMap\n) => {\n const img = images[url];\n invariant(img, `Fetch image was failed: ${url}`);\n\n const { image, width, height } = img;\n return new docx.ImageRun({\n data: image,\n transformation: {\n width,\n height,\n },\n });\n};\n\nconst buildFootnote = ({ children }: mdast.Footnote, ctx: Context) => {\n // FIXME: transform to paragraph for now\n return new docx.Paragraph({\n children: convertNodes(children, ctx),\n });\n};\n","import type { Plugin } from \"unified\";\nimport type * as mdast from \"mdast\";\nimport { visit } from \"unist-util-visit\";\nimport { mdastToDocx, Opts, ImageDataMap } from \"./transformer\";\nimport { invariant } from \"./utils\";\n\nexport type Options = Opts;\n\nconst plugin: Plugin<[Options?]> = function (opts = {}) {\n let images: ImageDataMap = {};\n\n this.Compiler = (node) => {\n return mdastToDocx(node as any, opts, images);\n };\n\n return async (node) => {\n const imageList: mdast.Image[] = [];\n visit(node, \"image\", (node) => {\n imageList.push(node);\n });\n if (imageList.length === 0) {\n return node;\n }\n\n const imageResolver = opts.imageResolver;\n invariant(imageResolver, \"options.imageResolver is not defined.\");\n\n const imageDatas = await Promise.all(\n imageList.map(({ url }) => imageResolver(url))\n );\n images = imageList.reduce((acc, img, i) => {\n acc[img.url] = imageDatas[i]!;\n return acc;\n }, {} as ImageDataMap);\n return node;\n };\n};\nexport default plugin;\n"],"names":["docx","parseMath","convertInchesToTwip","Packer","__awaiter","visit"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../src/src/utils.ts","../src/src/latex.ts","../src/src/transformer.ts","../src/src/plugin.ts"],"sourcesContent":["export const unreachable = (_: never): never => {\n throw new Error(\"unreachable\");\n};\n\nexport function invariant(cond: any, message: string): asserts cond {\n if (!cond) throw new Error(message);\n}\n","import * as docx from \"docx\";\nimport { parseMath } from \"@unified-latex/unified-latex-util-parse\";\nimport type * as latex from \"@unified-latex/unified-latex-types\";\nimport { unreachable } from \"./utils\";\n\nconst hasSquareBrackets = (\n arg: latex.Argument | undefined\n): arg is latex.Argument => {\n return !!arg && arg.openMark === \"[\" && arg.closeMark === \"]\";\n};\nconst hasCurlyBrackets = (\n arg: latex.Argument | undefined\n): arg is latex.Argument => {\n return !!arg && arg.openMark === \"{\" && arg.closeMark === \"}\";\n};\n\nconst mapString = (s: string): docx.MathRun => new docx.MathRun(s);\n\nconst mapMacro = (\n n: latex.Macro,\n runs: docx.MathRun[]\n): docx.MathRun | false => {\n switch (n.content) {\n case \"#\":\n return mapString(\"#\");\n case \"$\":\n return mapString(\"$\");\n case \"%\":\n return mapString(\"%\");\n case \"&\":\n return mapString(\"&\");\n case \"textasciitilde\":\n return mapString(\"~\");\n case \"textasciicircum\":\n return mapString(\"^\");\n case \"textbackslash\":\n return mapString(\"∖\");\n case \"{\":\n return mapString(\"{\");\n case \"}\":\n return mapString(\"}\");\n case \"textbar\":\n return mapString(\"|\");\n case \"textless\":\n return mapString(\"<\");\n case \"textgreater\":\n return mapString(\">\");\n case \"neq\":\n return mapString(\"≠\");\n case \"sim\":\n return mapString(\"∼\");\n case \"simeq\":\n return mapString(\"≃\");\n case \"approx\":\n return mapString(\"≈\");\n case \"fallingdotseq\":\n return mapString(\"≒\");\n case \"risingdotseq\":\n return mapString(\"≓\");\n case \"equiv\":\n return mapString(\"≡\");\n case \"geq\":\n return mapString(\"≥\");\n case \"geqq\":\n return mapString(\"≧\");\n case \"leq\":\n return mapString(\"≤\");\n case \"leqq\":\n return mapString(\"≦\");\n case \"gg\":\n return mapString(\"≫\");\n case \"ll\":\n return mapString(\"≪\");\n case \"times\":\n return mapString(\"×\");\n case \"div\":\n return mapString(\"÷\");\n case \"pm\":\n return mapString(\"±\");\n case \"mp\":\n return mapString(\"∓\");\n case \"oplus\":\n return mapString(\"⊕\");\n case \"ominus\":\n return mapString(\"⊖\");\n case \"otimes\":\n return mapString(\"⊗\");\n case \"oslash\":\n return mapString(\"⊘\");\n case \"circ\":\n return mapString(\"∘\");\n case \"cdot\":\n return mapString(\"⋅\");\n case \"bullet\":\n return mapString(\"∙\");\n case \"ltimes\":\n return mapString(\"⋉\");\n case \"rtimes\":\n return mapString(\"⋊\");\n case \"in\":\n return mapString(\"∈\");\n case \"ni\":\n return mapString(\"∋\");\n case \"notin\":\n return mapString(\"∉\");\n case \"subset\":\n return mapString(\"⊂\");\n case \"supset\":\n return mapString(\"⊃\");\n case \"subseteq\":\n return mapString(\"⊆\");\n case \"supseteq\":\n return mapString(\"⊇\");\n case \"nsubseteq\":\n return mapString(\"⊈\");\n case \"nsupseteq\":\n return mapString(\"⊉\");\n case \"subsetneq\":\n return mapString(\"⊊\");\n case \"supsetneq\":\n return mapString(\"⊋\");\n case \"cap\":\n return mapString(\"∩\");\n case \"cup\":\n return mapString(\"∪\");\n case \"emptyset\":\n return mapString(\"∅\");\n case \"infty\":\n return mapString(\"∞\");\n case \"partial\":\n return mapString(\"∂\");\n case \"aleph\":\n return mapString(\"ℵ\");\n case \"hbar\":\n return mapString(\"ℏ\");\n case \"wp\":\n return mapString(\"℘\");\n case \"Re\":\n return mapString(\"ℜ\");\n case \"Im\":\n return mapString(\"ℑ\");\n case \"alpha\":\n return mapString(\"α\");\n case \"beta\":\n return mapString(\"β\");\n case \"gamma\":\n return mapString(\"γ\");\n case \"delta\":\n return mapString(\"δ\");\n case \"epsilon\":\n return mapString(\"ϵ\");\n case \"zeta\":\n return mapString(\"ζ\");\n case \"eta\":\n return mapString(\"η\");\n case \"theta\":\n return mapString(\"θ\");\n case \"iota\":\n return mapString(\"ι\");\n case \"kappa\":\n return mapString(\"κ\");\n case \"lambda\":\n return mapString(\"λ\");\n case \"eta\":\n return mapString(\"η\");\n case \"mu\":\n return mapString(\"μ\");\n case \"nu\":\n return mapString(\"ν\");\n case \"xi\":\n return mapString(\"ξ\");\n case \"pi\":\n return mapString(\"π\");\n case \"rho\":\n return mapString(\"ρ\");\n case \"sigma\":\n return mapString(\"σ\");\n case \"tau\":\n return mapString(\"τ\");\n case \"upsilon\":\n return mapString(\"υ\");\n case \"phi\":\n return mapString(\"ϕ\");\n case \"chi\":\n return mapString(\"χ\");\n case \"psi\":\n return mapString(\"ψ\");\n case \"omega\":\n return mapString(\"ω\");\n case \"varepsilon\":\n return mapString(\"ε\");\n case \"vartheta\":\n return mapString(\"ϑ\");\n case \"varrho\":\n return mapString(\"ϱ\");\n case \"varsigma\":\n return mapString(\"ς\");\n case \"varphi\":\n return mapString(\"φ\");\n case \"Gamma\":\n return mapString(\"Γ\");\n case \"Delta\":\n return mapString(\"Δ\");\n case \"Theta\":\n return mapString(\"Θ\");\n case \"Lambda\":\n return mapString(\"Λ\");\n case \"Xi\":\n return mapString(\"Ξ\");\n case \"Pi\":\n return mapString(\"Π\");\n case \"Sigma\":\n return mapString(\"Σ\");\n case \"Upsilon\":\n return mapString(\"Υ\");\n case \"Phi\":\n return mapString(\"Φ\");\n case \"Psi\":\n return mapString(\"Ψ\");\n case \"Omega\":\n return mapString(\"Ω\");\n case \"newline\":\n case \"\\\\\":\n // line break\n return false;\n case \"^\": {\n const prev = runs.pop();\n if (!prev) break;\n return new docx.MathSuperScript({\n children: [prev],\n superScript: mapGroup(n.args?.[0]?.content ?? []),\n });\n }\n case \"_\": {\n const prev = runs.pop();\n if (!prev) break;\n return new docx.MathSubScript({\n children: [prev],\n subScript: mapGroup(n.args?.[0]?.content ?? []),\n });\n }\n case \"hat\":\n // TODO: implement\n break;\n case \"widehat\":\n // TODO: implement\n break;\n case \"sum\": {\n // TODO: support superscript and subscript\n return new docx.MathSum({\n children: [],\n });\n }\n case \"int\":\n return mapString(\"∫\");\n case \"frac\":\n case \"tfrac\":\n case \"dfrac\": {\n const args = n.args ?? [];\n if (\n args.length === 2 &&\n hasCurlyBrackets(args[0]) &&\n hasCurlyBrackets(args[1])\n ) {\n return new docx.MathFraction({\n numerator: mapGroup(args[0].content),\n denominator: mapGroup(args[1].content),\n });\n }\n break;\n }\n case \"sqrt\": {\n const args = n.args ?? [];\n if (args.length === 1 && hasCurlyBrackets(args[0])) {\n return new docx.MathRadical({\n children: mapGroup(args[0].content),\n });\n }\n if (\n args.length === 2 &&\n hasSquareBrackets(args[0]) &&\n hasCurlyBrackets(args[1])\n ) {\n return new docx.MathRadical({\n children: mapGroup(args[1].content),\n degree: mapGroup(args[0].content),\n });\n }\n break;\n }\n default:\n break;\n }\n return mapString(n.content);\n};\n\nconst mapGroup = (nodes: latex.Node[]): docx.MathRun[] => {\n const group: docx.MathRun[] = [];\n for (const c of nodes) {\n group.push(...(mapNode(c, group) || []));\n }\n return group;\n};\n\nconst mapNode = (\n n: latex.Node,\n runs: docx.MathRun[]\n): docx.MathRun[] | false => {\n switch (n.type) {\n case \"root\":\n break;\n case \"string\":\n return [mapString(n.content)];\n case \"whitespace\":\n break;\n case \"parbreak\":\n break;\n case \"comment\":\n break;\n case \"macro\":\n const run = mapMacro(n, runs);\n if (!run) {\n // line break\n return false;\n } else {\n return [run];\n }\n case \"environment\":\n case \"mathenv\":\n break;\n case \"verbatim\":\n break;\n case \"inlinemath\":\n break;\n case \"displaymath\":\n break;\n case \"group\":\n return mapGroup(n.content);\n case \"verb\":\n break;\n default:\n unreachable(n);\n }\n\n return [];\n};\n\nexport const parseLatex = (value: string): docx.MathRun[][] => {\n const parsed = parseMath(value);\n const paragraphs: docx.MathRun[][] = [[]];\n let runs: docx.MathRun[] = paragraphs[0]!;\n for (const n of parsed) {\n const res = mapNode(n, runs);\n if (!res) {\n // line break\n paragraphs.push((runs = []));\n } else {\n runs.push(...res);\n }\n }\n return paragraphs;\n};\n","import * as docx from \"docx\";\nimport { convertInchesToTwip, Packer } from \"docx\";\nimport type { IPropertiesOptions } from \"docx/build/file/core-properties\";\nimport type * as mdast from \"./models/mdast\";\nimport { parseLatex } from \"./latex\";\nimport { invariant, unreachable } from \"./utils\";\n\nconst ORDERED_LIST_REF = \"ordered\";\nconst INDENT = 0.5;\nconst DEFAULT_NUMBERINGS: docx.ILevelsOptions[] = [\n {\n level: 0,\n format: docx.LevelFormat.DECIMAL,\n text: \"%1.\",\n alignment: docx.AlignmentType.START,\n },\n {\n level: 1,\n format: docx.LevelFormat.DECIMAL,\n text: \"%2.\",\n alignment: docx.AlignmentType.START,\n style: {\n paragraph: {\n indent: { start: convertInchesToTwip(INDENT * 1) },\n },\n },\n },\n {\n level: 2,\n format: docx.LevelFormat.DECIMAL,\n text: \"%3.\",\n alignment: docx.AlignmentType.START,\n style: {\n paragraph: {\n indent: { start: convertInchesToTwip(INDENT * 2) },\n },\n },\n },\n {\n level: 3,\n format: docx.LevelFormat.DECIMAL,\n text: \"%4.\",\n alignment: docx.AlignmentType.START,\n style: {\n paragraph: {\n indent: { start: convertInchesToTwip(INDENT * 3) },\n },\n },\n },\n {\n level: 4,\n format: docx.LevelFormat.DECIMAL,\n text: \"%5.\",\n alignment: docx.AlignmentType.START,\n style: {\n paragraph: {\n indent: { start: convertInchesToTwip(INDENT * 4) },\n },\n },\n },\n {\n level: 5,\n format: docx.LevelFormat.DECIMAL,\n text: \"%6.\",\n alignment: docx.AlignmentType.START,\n style: {\n paragraph: {\n indent: { start: convertInchesToTwip(INDENT * 5) },\n },\n },\n },\n];\n\nexport type ImageDataMap = { [url: string]: ImageData };\n\nexport type ImageData = {\n image: docx.IImageOptions[\"data\"];\n width: number;\n height: number;\n};\n\nexport type ImageResolver = (url: string) => Promise<ImageData> | ImageData;\n\ntype Decoration = Readonly<\n {\n [key in (mdast.Emphasis | mdast.Strong | mdast.Delete)[\"type\"]]?: true;\n }\n>;\n\ntype ListInfo = Readonly<{\n level: number;\n ordered: boolean;\n}>;\n\ntype Context = Readonly<{\n deco: Decoration;\n images: ImageDataMap;\n indent: number;\n list?: ListInfo;\n}>;\n\nexport type Opts = {\n output?: \"buffer\" | \"blob\";\n imageResolver?: ImageResolver;\n} & Pick<\n IPropertiesOptions,\n | \"title\"\n | \"subject\"\n | \"creator\"\n | \"keywords\"\n | \"description\"\n | \"lastModifiedBy\"\n | \"revision\"\n | \"styles\"\n | \"background\"\n>;\n\ntype DocxChild = docx.Paragraph | docx.Table | docx.TableOfContents;\ntype DocxContent = DocxChild | docx.ParagraphChild;\n\nexport const mdastToDocx = (\n node: mdast.Root,\n {\n output = \"buffer\",\n title,\n subject,\n creator,\n keywords,\n description,\n lastModifiedBy,\n revision,\n styles,\n background,\n }: Opts,\n images: ImageDataMap\n): Promise<any> => {\n const nodes = convertNodes(node.children, {\n deco: {},\n images,\n indent: 0,\n }) as DocxChild[];\n const doc = new docx.Document({\n title,\n subject,\n creator,\n keywords,\n description,\n lastModifiedBy,\n revision,\n styles,\n background,\n sections: [{ children: nodes }],\n numbering: {\n config: [\n {\n reference: ORDERED_LIST_REF,\n levels: DEFAULT_NUMBERINGS,\n },\n ],\n },\n });\n\n switch (output) {\n case \"buffer\":\n return Packer.toBuffer(doc);\n case \"blob\":\n return Packer.toBlob(doc);\n }\n};\n\nconst convertNodes = (nodes: mdast.Content[], ctx: Context): DocxContent[] => {\n const results: DocxContent[] = [];\n\n for (const node of nodes) {\n switch (node.type) {\n case \"paragraph\":\n results.push(buildParagraph(node, ctx));\n break;\n case \"heading\":\n results.push(buildHeading(node, ctx));\n break;\n case \"thematicBreak\":\n results.push(buildThematicBreak(node));\n break;\n case \"blockquote\":\n results.push(...buildBlockquote(node, ctx));\n break;\n case \"list\":\n results.push(...buildList(node, ctx));\n break;\n case \"listItem\":\n invariant(false, \"unreachable\");\n case \"table\":\n results.push(buildTable(node, ctx));\n break;\n case \"tableRow\":\n invariant(false, \"unreachable\");\n case \"tableCell\":\n invariant(false, \"unreachable\");\n case \"html\":\n results.push(buildHtml(node));\n break;\n case \"code\":\n results.push(buildCode(node));\n break;\n case \"yaml\":\n // FIXME: unimplemented\n break;\n case \"toml\":\n // FIXME: unimplemented\n break;\n case \"definition\":\n // FIXME: unimplemented\n break;\n case \"footnoteDefinition\":\n // FIXME: unimplemented\n break;\n case \"text\":\n results.push(buildText(node.value, ctx.deco));\n break;\n case \"emphasis\":\n case \"strong\":\n case \"delete\": {\n const { type, children } = node;\n results.push(\n ...convertNodes(children, {\n ...ctx,\n deco: { ...ctx.deco, [type]: true },\n })\n );\n break;\n }\n case \"inlineCode\":\n // FIXME: transform to text for now\n results.push(buildText(node.value, ctx.deco));\n break;\n case \"break\":\n results.push(buildBreak(node));\n break;\n case \"link\":\n results.push(buildLink(node, ctx));\n break;\n case \"image\":\n results.push(buildImage(node, ctx.images));\n break;\n case \"linkReference\":\n // FIXME: unimplemented\n break;\n case \"imageReference\":\n // FIXME: unimplemented\n break;\n case \"footnote\":\n results.push(buildFootnote(node, ctx));\n break;\n case \"footnoteReference\":\n // FIXME: unimplemented\n break;\n case \"math\":\n results.push(...buildMath(node));\n break;\n case \"inlineMath\":\n results.push(buildInlineMath(node));\n break;\n default:\n unreachable(node);\n break;\n }\n }\n return results;\n};\n\nconst buildParagraph = ({ children }: mdast.Paragraph, ctx: Context) => {\n const list = ctx.list;\n return new docx.Paragraph({\n children: convertNodes(children, ctx),\n indent:\n ctx.indent > 0\n ? {\n start: convertInchesToTwip(INDENT * ctx.indent),\n }\n : undefined,\n ...(list &&\n (list.ordered\n ? {\n numbering: {\n reference: ORDERED_LIST_REF,\n level: list.level,\n },\n }\n : {\n bullet: {\n level: list.level,\n },\n })),\n });\n};\n\nconst buildHeading = ({ children, depth }: mdast.Heading, ctx: Context) => {\n let heading: docx.HeadingLevel;\n switch (depth) {\n case 1:\n heading = docx.HeadingLevel.TITLE;\n break;\n case 2:\n heading = docx.HeadingLevel.HEADING_1;\n break;\n case 3:\n heading = docx.HeadingLevel.HEADING_2;\n break;\n case 4:\n heading = docx.HeadingLevel.HEADING_3;\n break;\n case 5:\n heading = docx.HeadingLevel.HEADING_4;\n break;\n case 6:\n heading = docx.HeadingLevel.HEADING_5;\n break;\n }\n return new docx.Paragraph({\n heading,\n children: convertNodes(children, ctx),\n });\n};\n\nconst buildThematicBreak = (_: mdast.ThematicBreak) => {\n return new docx.Paragraph({\n thematicBreak: true,\n });\n};\n\nconst buildBlockquote = ({ children }: mdast.Blockquote, ctx: Context) => {\n return convertNodes(children, { ...ctx, indent: ctx.indent + 1 });\n};\n\nconst buildList = (\n { children, ordered, start: _start, spread: _spread }: mdast.List,\n ctx: Context\n) => {\n const list: ListInfo = {\n level: ctx.list ? ctx.list.level + 1 : 0,\n ordered: !!ordered,\n };\n return children.reduce((acc, item) => {\n acc.push(\n ...buildListItem(item, {\n ...ctx,\n list,\n })\n );\n return acc;\n }, [] as DocxContent[]);\n};\n\nconst buildListItem = (\n { children, checked: _checked, spread: _spread }: mdast.ListItem,\n ctx: Context\n) => {\n return convertNodes(children, ctx);\n};\n\nconst buildTable = ({ children, align }: mdast.Table, ctx: Context) => {\n const cellAligns: docx.AlignmentType[] | undefined = align?.map((a) => {\n switch (a) {\n case \"left\":\n return docx.AlignmentType.LEFT;\n case \"right\":\n return docx.AlignmentType.RIGHT;\n case \"center\":\n return docx.AlignmentType.CENTER;\n default:\n return docx.AlignmentType.LEFT;\n }\n });\n\n return new docx.Table({\n rows: children.map((r) => {\n return buildTableRow(r, ctx, cellAligns);\n }),\n });\n};\n\nconst buildTableRow = (\n { children }: mdast.TableRow,\n ctx: Context,\n cellAligns: docx.AlignmentType[] | undefined\n) => {\n return new docx.TableRow({\n children: children.map((c, i) => {\n return buildTableCell(c, ctx, cellAligns?.[i]);\n }),\n });\n};\n\nconst buildTableCell = (\n { children }: mdast.TableCell,\n ctx: Context,\n align: docx.AlignmentType | undefined\n) => {\n return new docx.TableCell({\n children: [\n new docx.Paragraph({\n alignment: align,\n children: convertNodes(children, ctx),\n }),\n ],\n });\n};\n\nconst buildHtml = ({ value }: mdast.HTML) => {\n // FIXME: transform to text for now\n return new docx.Paragraph({\n children: [buildText(value, {})],\n });\n};\n\nconst buildCode = ({ value, lang: _lang, meta: _meta }: mdast.Code) => {\n // FIXME: transform to text for now\n return new docx.Paragraph({\n children: [buildText(value, {})],\n });\n};\n\nconst buildMath = ({ value }: mdast.Math) => {\n return parseLatex(value).map(\n (runs) =>\n new docx.Paragraph({\n children: [\n new docx.Math({\n children: runs,\n }),\n ],\n })\n );\n};\n\nconst buildInlineMath = ({ value }: mdast.InlineMath) => {\n return new docx.Math({\n children: parseLatex(value).flatMap((runs) => runs),\n });\n};\n\nconst buildText = (text: string, deco: Decoration) => {\n return new docx.TextRun({\n text,\n bold: deco.strong,\n italics: deco.emphasis,\n strike: deco.delete,\n });\n};\n\nconst buildBreak = (_: mdast.Break) => {\n return new docx.TextRun({ text: \"\", break: 1 });\n};\n\nconst buildLink = (\n { children, url, title: _title }: mdast.Link,\n ctx: Context\n) => {\n return new docx.ExternalHyperlink({\n link: url,\n children: convertNodes(children, ctx),\n });\n};\n\nconst buildImage = (\n { url, title: _title, alt: _alt }: mdast.Image,\n images: ImageDataMap\n) => {\n const img = images[url];\n invariant(img, `Fetch image was failed: ${url}`);\n\n const { image, width, height } = img;\n return new docx.ImageRun({\n data: image,\n transformation: {\n width,\n height,\n },\n });\n};\n\nconst buildFootnote = ({ children }: mdast.Footnote, ctx: Context) => {\n // FIXME: transform to paragraph for now\n return new docx.Paragraph({\n children: convertNodes(children, ctx),\n });\n};\n","import type { Plugin } from \"unified\";\nimport type * as mdast from \"mdast\";\nimport { visit } from \"unist-util-visit\";\nimport { mdastToDocx, Opts, ImageDataMap } from \"./transformer\";\nimport { invariant } from \"./utils\";\n\nexport type Options = Opts;\n\nconst plugin: Plugin<[Options?]> = function (opts = {}) {\n let images: ImageDataMap = {};\n\n this.Compiler = (node) => {\n return mdastToDocx(node as any, opts, images);\n };\n\n return async (node) => {\n const imageList: mdast.Image[] = [];\n visit(node, \"image\", (node) => {\n imageList.push(node);\n });\n if (imageList.length === 0) {\n return node;\n }\n\n const imageResolver = opts.imageResolver;\n invariant(imageResolver, \"options.imageResolver is not defined.\");\n\n const imageDatas = await Promise.all(\n imageList.map(({ url }) => imageResolver(url))\n );\n images = imageList.reduce((acc, img, i) => {\n acc[img.url] = imageDatas[i]!;\n return acc;\n }, {} as ImageDataMap);\n return node;\n };\n};\nexport default plugin;\n"],"names":["docx","parseMath","convertInchesToTwip","Packer","__awaiter","visit"],"mappings":"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"}
package/lib/index.mjs CHANGED
@@ -422,6 +422,7 @@ const mdastToDocx = (node, { output = "buffer", title, subject, creator, keyword
422
422
  const nodes = convertNodes(node.children, {
423
423
  deco: {},
424
424
  images,
425
+ indent: 0,
425
426
  });
426
427
  const doc = new docx.Document({
427
428
  title,
@@ -546,7 +547,11 @@ const convertNodes = (nodes, ctx) => {
546
547
  };
547
548
  const buildParagraph = ({ children }, ctx) => {
548
549
  const list = ctx.list;
549
- return new docx.Paragraph(Object.assign({ children: convertNodes(children, ctx) }, (list &&
550
+ return new docx.Paragraph(Object.assign({ children: convertNodes(children, ctx), indent: ctx.indent > 0
551
+ ? {
552
+ start: convertInchesToTwip(INDENT * ctx.indent),
553
+ }
554
+ : undefined }, (list &&
550
555
  (list.ordered
551
556
  ? {
552
557
  numbering: {
@@ -593,8 +598,7 @@ const buildThematicBreak = (_) => {
593
598
  });
594
599
  };
595
600
  const buildBlockquote = ({ children }, ctx) => {
596
- // FIXME: do nothing for now
597
- return convertNodes(children, ctx);
601
+ return convertNodes(children, Object.assign(Object.assign({}, ctx), { indent: ctx.indent + 1 }));
598
602
  };
599
603
  const buildList = ({ children, ordered, start: _start, spread: _spread }, ctx) => {
600
604
  const list = {
package/lib/index.mjs.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sources":["../src/src/utils.ts","../src/src/latex.ts","../src/src/transformer.ts","../src/src/plugin.ts"],"sourcesContent":["export const unreachable = (_: never): never => {\n throw new Error(\"unreachable\");\n};\n\nexport function invariant(cond: any, message: string): asserts cond {\n if (!cond) throw new Error(message);\n}\n","import * as docx from \"docx\";\nimport { parseMath } from \"@unified-latex/unified-latex-util-parse\";\nimport type * as latex from \"@unified-latex/unified-latex-types\";\nimport { unreachable } from \"./utils\";\n\nconst hasSquareBrackets = (\n arg: latex.Argument | undefined\n): arg is latex.Argument => {\n return !!arg && arg.openMark === \"[\" && arg.closeMark === \"]\";\n};\nconst hasCurlyBrackets = (\n arg: latex.Argument | undefined\n): arg is latex.Argument => {\n return !!arg && arg.openMark === \"{\" && arg.closeMark === \"}\";\n};\n\nconst mapString = (s: string): docx.MathRun => new docx.MathRun(s);\n\nconst mapMacro = (\n n: latex.Macro,\n runs: docx.MathRun[]\n): docx.MathRun | false => {\n switch (n.content) {\n case \"#\":\n return mapString(\"#\");\n case \"$\":\n return mapString(\"$\");\n case \"%\":\n return mapString(\"%\");\n case \"&\":\n return mapString(\"&\");\n case \"textasciitilde\":\n return mapString(\"~\");\n case \"textasciicircum\":\n return mapString(\"^\");\n case \"textbackslash\":\n return mapString(\"∖\");\n case \"{\":\n return mapString(\"{\");\n case \"}\":\n return mapString(\"}\");\n case \"textbar\":\n return mapString(\"|\");\n case \"textless\":\n return mapString(\"<\");\n case \"textgreater\":\n return mapString(\">\");\n case \"neq\":\n return mapString(\"≠\");\n case \"sim\":\n return mapString(\"∼\");\n case \"simeq\":\n return mapString(\"≃\");\n case \"approx\":\n return mapString(\"≈\");\n case \"fallingdotseq\":\n return mapString(\"≒\");\n case \"risingdotseq\":\n return mapString(\"≓\");\n case \"equiv\":\n return mapString(\"≡\");\n case \"geq\":\n return mapString(\"≥\");\n case \"geqq\":\n return mapString(\"≧\");\n case \"leq\":\n return mapString(\"≤\");\n case \"leqq\":\n return mapString(\"≦\");\n case \"gg\":\n return mapString(\"≫\");\n case \"ll\":\n return mapString(\"≪\");\n case \"times\":\n return mapString(\"×\");\n case \"div\":\n return mapString(\"÷\");\n case \"pm\":\n return mapString(\"±\");\n case \"mp\":\n return mapString(\"∓\");\n case \"oplus\":\n return mapString(\"⊕\");\n case \"ominus\":\n return mapString(\"⊖\");\n case \"otimes\":\n return mapString(\"⊗\");\n case \"oslash\":\n return mapString(\"⊘\");\n case \"circ\":\n return mapString(\"∘\");\n case \"cdot\":\n return mapString(\"⋅\");\n case \"bullet\":\n return mapString(\"∙\");\n case \"ltimes\":\n return mapString(\"⋉\");\n case \"rtimes\":\n return mapString(\"⋊\");\n case \"in\":\n return mapString(\"∈\");\n case \"ni\":\n return mapString(\"∋\");\n case \"notin\":\n return mapString(\"∉\");\n case \"subset\":\n return mapString(\"⊂\");\n case \"supset\":\n return mapString(\"⊃\");\n case \"subseteq\":\n return mapString(\"⊆\");\n case \"supseteq\":\n return mapString(\"⊇\");\n case \"nsubseteq\":\n return mapString(\"⊈\");\n case \"nsupseteq\":\n return mapString(\"⊉\");\n case \"subsetneq\":\n return mapString(\"⊊\");\n case \"supsetneq\":\n return mapString(\"⊋\");\n case \"cap\":\n return mapString(\"∩\");\n case \"cup\":\n return mapString(\"∪\");\n case \"emptyset\":\n return mapString(\"∅\");\n case \"infty\":\n return mapString(\"∞\");\n case \"partial\":\n return mapString(\"∂\");\n case \"aleph\":\n return mapString(\"ℵ\");\n case \"hbar\":\n return mapString(\"ℏ\");\n case \"wp\":\n return mapString(\"℘\");\n case \"Re\":\n return mapString(\"ℜ\");\n case \"Im\":\n return mapString(\"ℑ\");\n case \"alpha\":\n return mapString(\"α\");\n case \"beta\":\n return mapString(\"β\");\n case \"gamma\":\n return mapString(\"γ\");\n case \"delta\":\n return mapString(\"δ\");\n case \"epsilon\":\n return mapString(\"ϵ\");\n case \"zeta\":\n return mapString(\"ζ\");\n case \"eta\":\n return mapString(\"η\");\n case \"theta\":\n return mapString(\"θ\");\n case \"iota\":\n return mapString(\"ι\");\n case \"kappa\":\n return mapString(\"κ\");\n case \"lambda\":\n return mapString(\"λ\");\n case \"eta\":\n return mapString(\"η\");\n case \"mu\":\n return mapString(\"μ\");\n case \"nu\":\n return mapString(\"ν\");\n case \"xi\":\n return mapString(\"ξ\");\n case \"pi\":\n return mapString(\"π\");\n case \"rho\":\n return mapString(\"ρ\");\n case \"sigma\":\n return mapString(\"σ\");\n case \"tau\":\n return mapString(\"τ\");\n case \"upsilon\":\n return mapString(\"υ\");\n case \"phi\":\n return mapString(\"ϕ\");\n case \"chi\":\n return mapString(\"χ\");\n case \"psi\":\n return mapString(\"ψ\");\n case \"omega\":\n return mapString(\"ω\");\n case \"varepsilon\":\n return mapString(\"ε\");\n case \"vartheta\":\n return mapString(\"ϑ\");\n case \"varrho\":\n return mapString(\"ϱ\");\n case \"varsigma\":\n return mapString(\"ς\");\n case \"varphi\":\n return mapString(\"φ\");\n case \"Gamma\":\n return mapString(\"Γ\");\n case \"Delta\":\n return mapString(\"Δ\");\n case \"Theta\":\n return mapString(\"Θ\");\n case \"Lambda\":\n return mapString(\"Λ\");\n case \"Xi\":\n return mapString(\"Ξ\");\n case \"Pi\":\n return mapString(\"Π\");\n case \"Sigma\":\n return mapString(\"Σ\");\n case \"Upsilon\":\n return mapString(\"Υ\");\n case \"Phi\":\n return mapString(\"Φ\");\n case \"Psi\":\n return mapString(\"Ψ\");\n case \"Omega\":\n return mapString(\"Ω\");\n case \"newline\":\n case \"\\\\\":\n // line break\n return false;\n case \"^\": {\n const prev = runs.pop();\n if (!prev) break;\n return new docx.MathSuperScript({\n children: [prev],\n superScript: mapGroup(n.args?.[0]?.content ?? []),\n });\n }\n case \"_\": {\n const prev = runs.pop();\n if (!prev) break;\n return new docx.MathSubScript({\n children: [prev],\n subScript: mapGroup(n.args?.[0]?.content ?? []),\n });\n }\n case \"hat\":\n // TODO: implement\n break;\n case \"widehat\":\n // TODO: implement\n break;\n case \"sum\": {\n // TODO: support superscript and subscript\n return new docx.MathSum({\n children: [],\n });\n }\n case \"int\":\n return mapString(\"∫\");\n case \"frac\":\n case \"tfrac\":\n case \"dfrac\": {\n const args = n.args ?? [];\n if (\n args.length === 2 &&\n hasCurlyBrackets(args[0]) &&\n hasCurlyBrackets(args[1])\n ) {\n return new docx.MathFraction({\n numerator: mapGroup(args[0].content),\n denominator: mapGroup(args[1].content),\n });\n }\n break;\n }\n case \"sqrt\": {\n const args = n.args ?? [];\n if (args.length === 1 && hasCurlyBrackets(args[0])) {\n return new docx.MathRadical({\n children: mapGroup(args[0].content),\n });\n }\n if (\n args.length === 2 &&\n hasSquareBrackets(args[0]) &&\n hasCurlyBrackets(args[1])\n ) {\n return new docx.MathRadical({\n children: mapGroup(args[1].content),\n degree: mapGroup(args[0].content),\n });\n }\n break;\n }\n default:\n break;\n }\n return mapString(n.content);\n};\n\nconst mapGroup = (nodes: latex.Node[]): docx.MathRun[] => {\n const group: docx.MathRun[] = [];\n for (const c of nodes) {\n group.push(...(mapNode(c, group) || []));\n }\n return group;\n};\n\nconst mapNode = (\n n: latex.Node,\n runs: docx.MathRun[]\n): docx.MathRun[] | false => {\n switch (n.type) {\n case \"root\":\n break;\n case \"string\":\n return [mapString(n.content)];\n case \"whitespace\":\n break;\n case \"parbreak\":\n break;\n case \"comment\":\n break;\n case \"macro\":\n const run = mapMacro(n, runs);\n if (!run) {\n // line break\n return false;\n } else {\n return [run];\n }\n case \"environment\":\n case \"mathenv\":\n break;\n case \"verbatim\":\n break;\n case \"inlinemath\":\n break;\n case \"displaymath\":\n break;\n case \"group\":\n return mapGroup(n.content);\n case \"verb\":\n break;\n default:\n unreachable(n);\n }\n\n return [];\n};\n\nexport const parseLatex = (value: string): docx.MathRun[][] => {\n const parsed = parseMath(value);\n const paragraphs: docx.MathRun[][] = [[]];\n let runs: docx.MathRun[] = paragraphs[0]!;\n for (const n of parsed) {\n const res = mapNode(n, runs);\n if (!res) {\n // line break\n paragraphs.push((runs = []));\n } else {\n runs.push(...res);\n }\n }\n return paragraphs;\n};\n","import * as docx from \"docx\";\nimport { convertInchesToTwip, Packer } from \"docx\";\nimport type { IPropertiesOptions } from \"docx/build/file/core-properties\";\nimport type * as mdast from \"./models/mdast\";\nimport { parseLatex } from \"./latex\";\nimport { invariant, unreachable } from \"./utils\";\n\nconst ORDERED_LIST_REF = \"ordered\";\nconst INDENT = 0.5;\nconst DEFAULT_NUMBERINGS: docx.ILevelsOptions[] = [\n {\n level: 0,\n format: docx.LevelFormat.DECIMAL,\n text: \"%1.\",\n alignment: docx.AlignmentType.START,\n },\n {\n level: 1,\n format: docx.LevelFormat.DECIMAL,\n text: \"%2.\",\n alignment: docx.AlignmentType.START,\n style: {\n paragraph: {\n indent: { start: convertInchesToTwip(INDENT * 1) },\n },\n },\n },\n {\n level: 2,\n format: docx.LevelFormat.DECIMAL,\n text: \"%3.\",\n alignment: docx.AlignmentType.START,\n style: {\n paragraph: {\n indent: { start: convertInchesToTwip(INDENT * 2) },\n },\n },\n },\n {\n level: 3,\n format: docx.LevelFormat.DECIMAL,\n text: \"%4.\",\n alignment: docx.AlignmentType.START,\n style: {\n paragraph: {\n indent: { start: convertInchesToTwip(INDENT * 3) },\n },\n },\n },\n {\n level: 4,\n format: docx.LevelFormat.DECIMAL,\n text: \"%5.\",\n alignment: docx.AlignmentType.START,\n style: {\n paragraph: {\n indent: { start: convertInchesToTwip(INDENT * 4) },\n },\n },\n },\n {\n level: 5,\n format: docx.LevelFormat.DECIMAL,\n text: \"%6.\",\n alignment: docx.AlignmentType.START,\n style: {\n paragraph: {\n indent: { start: convertInchesToTwip(INDENT * 5) },\n },\n },\n },\n];\n\nexport type ImageDataMap = { [url: string]: ImageData };\n\nexport type ImageData = {\n image: docx.IImageOptions[\"data\"];\n width: number;\n height: number;\n};\n\nexport type ImageResolver = (url: string) => Promise<ImageData> | ImageData;\n\ntype Decoration = Readonly<\n {\n [key in (mdast.Emphasis | mdast.Strong | mdast.Delete)[\"type\"]]?: true;\n }\n>;\n\ntype ListInfo = Readonly<{\n level: number;\n ordered: boolean;\n}>;\n\ntype Context = Readonly<{\n deco: Decoration;\n images: ImageDataMap;\n list?: ListInfo;\n}>;\n\nexport type Opts = {\n output?: \"buffer\" | \"blob\";\n imageResolver?: ImageResolver;\n} & Pick<\n IPropertiesOptions,\n | \"title\"\n | \"subject\"\n | \"creator\"\n | \"keywords\"\n | \"description\"\n | \"lastModifiedBy\"\n | \"revision\"\n | \"styles\"\n | \"background\"\n>;\n\ntype DocxChild = docx.Paragraph | docx.Table | docx.TableOfContents;\ntype DocxContent = DocxChild | docx.ParagraphChild;\n\nexport const mdastToDocx = (\n node: mdast.Root,\n {\n output = \"buffer\",\n title,\n subject,\n creator,\n keywords,\n description,\n lastModifiedBy,\n revision,\n styles,\n background,\n }: Opts,\n images: ImageDataMap\n): Promise<any> => {\n const nodes = convertNodes(node.children, {\n deco: {},\n images,\n }) as DocxChild[];\n const doc = new docx.Document({\n title,\n subject,\n creator,\n keywords,\n description,\n lastModifiedBy,\n revision,\n styles,\n background,\n sections: [{ children: nodes }],\n numbering: {\n config: [\n {\n reference: ORDERED_LIST_REF,\n levels: DEFAULT_NUMBERINGS,\n },\n ],\n },\n });\n\n switch (output) {\n case \"buffer\":\n return Packer.toBuffer(doc);\n case \"blob\":\n return Packer.toBlob(doc);\n }\n};\n\nconst convertNodes = (nodes: mdast.Content[], ctx: Context): DocxContent[] => {\n const results: DocxContent[] = [];\n\n for (const node of nodes) {\n switch (node.type) {\n case \"paragraph\":\n results.push(buildParagraph(node, ctx));\n break;\n case \"heading\":\n results.push(buildHeading(node, ctx));\n break;\n case \"thematicBreak\":\n results.push(buildThematicBreak(node));\n break;\n case \"blockquote\":\n results.push(...buildBlockquote(node, ctx));\n break;\n case \"list\":\n results.push(...buildList(node, ctx));\n break;\n case \"listItem\":\n invariant(false, \"unreachable\");\n case \"table\":\n results.push(buildTable(node, ctx));\n break;\n case \"tableRow\":\n invariant(false, \"unreachable\");\n case \"tableCell\":\n invariant(false, \"unreachable\");\n case \"html\":\n results.push(buildHtml(node));\n break;\n case \"code\":\n results.push(buildCode(node));\n break;\n case \"yaml\":\n // FIXME: unimplemented\n break;\n case \"toml\":\n // FIXME: unimplemented\n break;\n case \"definition\":\n // FIXME: unimplemented\n break;\n case \"footnoteDefinition\":\n // FIXME: unimplemented\n break;\n case \"text\":\n results.push(buildText(node.value, ctx.deco));\n break;\n case \"emphasis\":\n case \"strong\":\n case \"delete\": {\n const { type, children } = node;\n results.push(\n ...convertNodes(children, {\n ...ctx,\n deco: { ...ctx.deco, [type]: true },\n })\n );\n break;\n }\n case \"inlineCode\":\n // FIXME: transform to text for now\n results.push(buildText(node.value, ctx.deco));\n break;\n case \"break\":\n results.push(buildBreak(node));\n break;\n case \"link\":\n results.push(buildLink(node, ctx));\n break;\n case \"image\":\n results.push(buildImage(node, ctx.images));\n break;\n case \"linkReference\":\n // FIXME: unimplemented\n break;\n case \"imageReference\":\n // FIXME: unimplemented\n break;\n case \"footnote\":\n results.push(buildFootnote(node, ctx));\n break;\n case \"footnoteReference\":\n // FIXME: unimplemented\n break;\n case \"math\":\n results.push(...buildMath(node));\n break;\n case \"inlineMath\":\n results.push(buildInlineMath(node));\n break;\n default:\n unreachable(node);\n break;\n }\n }\n return results;\n};\n\nconst buildParagraph = ({ children }: mdast.Paragraph, ctx: Context) => {\n const list = ctx.list;\n return new docx.Paragraph({\n children: convertNodes(children, ctx),\n ...(list &&\n (list.ordered\n ? {\n numbering: {\n reference: ORDERED_LIST_REF,\n level: list.level,\n },\n }\n : {\n bullet: {\n level: list.level,\n },\n })),\n });\n};\n\nconst buildHeading = ({ children, depth }: mdast.Heading, ctx: Context) => {\n let heading: docx.HeadingLevel;\n switch (depth) {\n case 1:\n heading = docx.HeadingLevel.TITLE;\n break;\n case 2:\n heading = docx.HeadingLevel.HEADING_1;\n break;\n case 3:\n heading = docx.HeadingLevel.HEADING_2;\n break;\n case 4:\n heading = docx.HeadingLevel.HEADING_3;\n break;\n case 5:\n heading = docx.HeadingLevel.HEADING_4;\n break;\n case 6:\n heading = docx.HeadingLevel.HEADING_5;\n break;\n }\n return new docx.Paragraph({\n heading,\n children: convertNodes(children, ctx),\n });\n};\n\nconst buildThematicBreak = (_: mdast.ThematicBreak) => {\n return new docx.Paragraph({\n thematicBreak: true,\n });\n};\n\nconst buildBlockquote = ({ children }: mdast.Blockquote, ctx: Context) => {\n // FIXME: do nothing for now\n return convertNodes(children, ctx);\n};\n\nconst buildList = (\n { children, ordered, start: _start, spread: _spread }: mdast.List,\n ctx: Context\n) => {\n const list: ListInfo = {\n level: ctx.list ? ctx.list.level + 1 : 0,\n ordered: !!ordered,\n };\n return children.reduce((acc, item) => {\n acc.push(\n ...buildListItem(item, {\n ...ctx,\n list,\n })\n );\n return acc;\n }, [] as DocxContent[]);\n};\n\nconst buildListItem = (\n { children, checked: _checked, spread: _spread }: mdast.ListItem,\n ctx: Context\n) => {\n return convertNodes(children, ctx);\n};\n\nconst buildTable = ({ children, align }: mdast.Table, ctx: Context) => {\n const cellAligns: docx.AlignmentType[] | undefined = align?.map((a) => {\n switch (a) {\n case \"left\":\n return docx.AlignmentType.LEFT;\n case \"right\":\n return docx.AlignmentType.RIGHT;\n case \"center\":\n return docx.AlignmentType.CENTER;\n default:\n return docx.AlignmentType.LEFT;\n }\n });\n\n return new docx.Table({\n rows: children.map((r) => {\n return buildTableRow(r, ctx, cellAligns);\n }),\n });\n};\n\nconst buildTableRow = (\n { children }: mdast.TableRow,\n ctx: Context,\n cellAligns: docx.AlignmentType[] | undefined\n) => {\n return new docx.TableRow({\n children: children.map((c, i) => {\n return buildTableCell(c, ctx, cellAligns?.[i]);\n }),\n });\n};\n\nconst buildTableCell = (\n { children }: mdast.TableCell,\n ctx: Context,\n align: docx.AlignmentType | undefined\n) => {\n return new docx.TableCell({\n children: [\n new docx.Paragraph({\n alignment: align,\n children: convertNodes(children, ctx),\n }),\n ],\n });\n};\n\nconst buildHtml = ({ value }: mdast.HTML) => {\n // FIXME: transform to text for now\n return new docx.Paragraph({\n children: [buildText(value, {})],\n });\n};\n\nconst buildCode = ({ value, lang: _lang, meta: _meta }: mdast.Code) => {\n // FIXME: transform to text for now\n return new docx.Paragraph({\n children: [buildText(value, {})],\n });\n};\n\nconst buildMath = ({ value }: mdast.Math) => {\n return parseLatex(value).map(\n (runs) =>\n new docx.Paragraph({\n children: [\n new docx.Math({\n children: runs,\n }),\n ],\n })\n );\n};\n\nconst buildInlineMath = ({ value }: mdast.InlineMath) => {\n return new docx.Math({\n children: parseLatex(value).flatMap((runs) => runs),\n });\n};\n\nconst buildText = (text: string, deco: Decoration) => {\n return new docx.TextRun({\n text,\n bold: deco.strong,\n italics: deco.emphasis,\n strike: deco.delete,\n });\n};\n\nconst buildBreak = (_: mdast.Break) => {\n return new docx.TextRun({ text: \"\", break: 1 });\n};\n\nconst buildLink = (\n { children, url, title: _title }: mdast.Link,\n ctx: Context\n) => {\n return new docx.ExternalHyperlink({\n link: url,\n children: convertNodes(children, ctx),\n });\n};\n\nconst buildImage = (\n { url, title: _title, alt: _alt }: mdast.Image,\n images: ImageDataMap\n) => {\n const img = images[url];\n invariant(img, `Fetch image was failed: ${url}`);\n\n const { image, width, height } = img;\n return new docx.ImageRun({\n data: image,\n transformation: {\n width,\n height,\n },\n });\n};\n\nconst buildFootnote = ({ children }: mdast.Footnote, ctx: Context) => {\n // FIXME: transform to paragraph for now\n return new docx.Paragraph({\n children: convertNodes(children, ctx),\n });\n};\n","import type { Plugin } from \"unified\";\nimport type * as mdast from \"mdast\";\nimport { visit } from \"unist-util-visit\";\nimport { mdastToDocx, Opts, ImageDataMap } from \"./transformer\";\nimport { invariant } from \"./utils\";\n\nexport type Options = Opts;\n\nconst plugin: Plugin<[Options?]> = function (opts = {}) {\n let images: ImageDataMap = {};\n\n this.Compiler = (node) => {\n return mdastToDocx(node as any, opts, images);\n };\n\n return async (node) => {\n const imageList: mdast.Image[] = [];\n visit(node, \"image\", (node) => {\n imageList.push(node);\n });\n if (imageList.length === 0) {\n return node;\n }\n\n const imageResolver = opts.imageResolver;\n invariant(imageResolver, \"options.imageResolver is not defined.\");\n\n const imageDatas = await Promise.all(\n imageList.map(({ url }) => imageResolver(url))\n );\n images = imageList.reduce((acc, img, i) => {\n acc[img.url] = imageDatas[i]!;\n return acc;\n }, {} as ImageDataMap);\n return node;\n };\n};\nexport default plugin;\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.mjs","sources":["../src/src/utils.ts","../src/src/latex.ts","../src/src/transformer.ts","../src/src/plugin.ts"],"sourcesContent":["export const unreachable = (_: never): never => {\n throw new Error(\"unreachable\");\n};\n\nexport function invariant(cond: any, message: string): asserts cond {\n if (!cond) throw new Error(message);\n}\n","import * as docx from \"docx\";\nimport { parseMath } from \"@unified-latex/unified-latex-util-parse\";\nimport type * as latex from \"@unified-latex/unified-latex-types\";\nimport { unreachable } from \"./utils\";\n\nconst hasSquareBrackets = (\n arg: latex.Argument | undefined\n): arg is latex.Argument => {\n return !!arg && arg.openMark === \"[\" && arg.closeMark === \"]\";\n};\nconst hasCurlyBrackets = (\n arg: latex.Argument | undefined\n): arg is latex.Argument => {\n return !!arg && arg.openMark === \"{\" && arg.closeMark === \"}\";\n};\n\nconst mapString = (s: string): docx.MathRun => new docx.MathRun(s);\n\nconst mapMacro = (\n n: latex.Macro,\n runs: docx.MathRun[]\n): docx.MathRun | false => {\n switch (n.content) {\n case \"#\":\n return mapString(\"#\");\n case \"$\":\n return mapString(\"$\");\n case \"%\":\n return mapString(\"%\");\n case \"&\":\n return mapString(\"&\");\n case \"textasciitilde\":\n return mapString(\"~\");\n case \"textasciicircum\":\n return mapString(\"^\");\n case \"textbackslash\":\n return mapString(\"∖\");\n case \"{\":\n return mapString(\"{\");\n case \"}\":\n return mapString(\"}\");\n case \"textbar\":\n return mapString(\"|\");\n case \"textless\":\n return mapString(\"<\");\n case \"textgreater\":\n return mapString(\">\");\n case \"neq\":\n return mapString(\"≠\");\n case \"sim\":\n return mapString(\"∼\");\n case \"simeq\":\n return mapString(\"≃\");\n case \"approx\":\n return mapString(\"≈\");\n case \"fallingdotseq\":\n return mapString(\"≒\");\n case \"risingdotseq\":\n return mapString(\"≓\");\n case \"equiv\":\n return mapString(\"≡\");\n case \"geq\":\n return mapString(\"≥\");\n case \"geqq\":\n return mapString(\"≧\");\n case \"leq\":\n return mapString(\"≤\");\n case \"leqq\":\n return mapString(\"≦\");\n case \"gg\":\n return mapString(\"≫\");\n case \"ll\":\n return mapString(\"≪\");\n case \"times\":\n return mapString(\"×\");\n case \"div\":\n return mapString(\"÷\");\n case \"pm\":\n return mapString(\"±\");\n case \"mp\":\n return mapString(\"∓\");\n case \"oplus\":\n return mapString(\"⊕\");\n case \"ominus\":\n return mapString(\"⊖\");\n case \"otimes\":\n return mapString(\"⊗\");\n case \"oslash\":\n return mapString(\"⊘\");\n case \"circ\":\n return mapString(\"∘\");\n case \"cdot\":\n return mapString(\"⋅\");\n case \"bullet\":\n return mapString(\"∙\");\n case \"ltimes\":\n return mapString(\"⋉\");\n case \"rtimes\":\n return mapString(\"⋊\");\n case \"in\":\n return mapString(\"∈\");\n case \"ni\":\n return mapString(\"∋\");\n case \"notin\":\n return mapString(\"∉\");\n case \"subset\":\n return mapString(\"⊂\");\n case \"supset\":\n return mapString(\"⊃\");\n case \"subseteq\":\n return mapString(\"⊆\");\n case \"supseteq\":\n return mapString(\"⊇\");\n case \"nsubseteq\":\n return mapString(\"⊈\");\n case \"nsupseteq\":\n return mapString(\"⊉\");\n case \"subsetneq\":\n return mapString(\"⊊\");\n case \"supsetneq\":\n return mapString(\"⊋\");\n case \"cap\":\n return mapString(\"∩\");\n case \"cup\":\n return mapString(\"∪\");\n case \"emptyset\":\n return mapString(\"∅\");\n case \"infty\":\n return mapString(\"∞\");\n case \"partial\":\n return mapString(\"∂\");\n case \"aleph\":\n return mapString(\"ℵ\");\n case \"hbar\":\n return mapString(\"ℏ\");\n case \"wp\":\n return mapString(\"℘\");\n case \"Re\":\n return mapString(\"ℜ\");\n case \"Im\":\n return mapString(\"ℑ\");\n case \"alpha\":\n return mapString(\"α\");\n case \"beta\":\n return mapString(\"β\");\n case \"gamma\":\n return mapString(\"γ\");\n case \"delta\":\n return mapString(\"δ\");\n case \"epsilon\":\n return mapString(\"ϵ\");\n case \"zeta\":\n return mapString(\"ζ\");\n case \"eta\":\n return mapString(\"η\");\n case \"theta\":\n return mapString(\"θ\");\n case \"iota\":\n return mapString(\"ι\");\n case \"kappa\":\n return mapString(\"κ\");\n case \"lambda\":\n return mapString(\"λ\");\n case \"eta\":\n return mapString(\"η\");\n case \"mu\":\n return mapString(\"μ\");\n case \"nu\":\n return mapString(\"ν\");\n case \"xi\":\n return mapString(\"ξ\");\n case \"pi\":\n return mapString(\"π\");\n case \"rho\":\n return mapString(\"ρ\");\n case \"sigma\":\n return mapString(\"σ\");\n case \"tau\":\n return mapString(\"τ\");\n case \"upsilon\":\n return mapString(\"υ\");\n case \"phi\":\n return mapString(\"ϕ\");\n case \"chi\":\n return mapString(\"χ\");\n case \"psi\":\n return mapString(\"ψ\");\n case \"omega\":\n return mapString(\"ω\");\n case \"varepsilon\":\n return mapString(\"ε\");\n case \"vartheta\":\n return mapString(\"ϑ\");\n case \"varrho\":\n return mapString(\"ϱ\");\n case \"varsigma\":\n return mapString(\"ς\");\n case \"varphi\":\n return mapString(\"φ\");\n case \"Gamma\":\n return mapString(\"Γ\");\n case \"Delta\":\n return mapString(\"Δ\");\n case \"Theta\":\n return mapString(\"Θ\");\n case \"Lambda\":\n return mapString(\"Λ\");\n case \"Xi\":\n return mapString(\"Ξ\");\n case \"Pi\":\n return mapString(\"Π\");\n case \"Sigma\":\n return mapString(\"Σ\");\n case \"Upsilon\":\n return mapString(\"Υ\");\n case \"Phi\":\n return mapString(\"Φ\");\n case \"Psi\":\n return mapString(\"Ψ\");\n case \"Omega\":\n return mapString(\"Ω\");\n case \"newline\":\n case \"\\\\\":\n // line break\n return false;\n case \"^\": {\n const prev = runs.pop();\n if (!prev) break;\n return new docx.MathSuperScript({\n children: [prev],\n superScript: mapGroup(n.args?.[0]?.content ?? []),\n });\n }\n case \"_\": {\n const prev = runs.pop();\n if (!prev) break;\n return new docx.MathSubScript({\n children: [prev],\n subScript: mapGroup(n.args?.[0]?.content ?? []),\n });\n }\n case \"hat\":\n // TODO: implement\n break;\n case \"widehat\":\n // TODO: implement\n break;\n case \"sum\": {\n // TODO: support superscript and subscript\n return new docx.MathSum({\n children: [],\n });\n }\n case \"int\":\n return mapString(\"∫\");\n case \"frac\":\n case \"tfrac\":\n case \"dfrac\": {\n const args = n.args ?? [];\n if (\n args.length === 2 &&\n hasCurlyBrackets(args[0]) &&\n hasCurlyBrackets(args[1])\n ) {\n return new docx.MathFraction({\n numerator: mapGroup(args[0].content),\n denominator: mapGroup(args[1].content),\n });\n }\n break;\n }\n case \"sqrt\": {\n const args = n.args ?? [];\n if (args.length === 1 && hasCurlyBrackets(args[0])) {\n return new docx.MathRadical({\n children: mapGroup(args[0].content),\n });\n }\n if (\n args.length === 2 &&\n hasSquareBrackets(args[0]) &&\n hasCurlyBrackets(args[1])\n ) {\n return new docx.MathRadical({\n children: mapGroup(args[1].content),\n degree: mapGroup(args[0].content),\n });\n }\n break;\n }\n default:\n break;\n }\n return mapString(n.content);\n};\n\nconst mapGroup = (nodes: latex.Node[]): docx.MathRun[] => {\n const group: docx.MathRun[] = [];\n for (const c of nodes) {\n group.push(...(mapNode(c, group) || []));\n }\n return group;\n};\n\nconst mapNode = (\n n: latex.Node,\n runs: docx.MathRun[]\n): docx.MathRun[] | false => {\n switch (n.type) {\n case \"root\":\n break;\n case \"string\":\n return [mapString(n.content)];\n case \"whitespace\":\n break;\n case \"parbreak\":\n break;\n case \"comment\":\n break;\n case \"macro\":\n const run = mapMacro(n, runs);\n if (!run) {\n // line break\n return false;\n } else {\n return [run];\n }\n case \"environment\":\n case \"mathenv\":\n break;\n case \"verbatim\":\n break;\n case \"inlinemath\":\n break;\n case \"displaymath\":\n break;\n case \"group\":\n return mapGroup(n.content);\n case \"verb\":\n break;\n default:\n unreachable(n);\n }\n\n return [];\n};\n\nexport const parseLatex = (value: string): docx.MathRun[][] => {\n const parsed = parseMath(value);\n const paragraphs: docx.MathRun[][] = [[]];\n let runs: docx.MathRun[] = paragraphs[0]!;\n for (const n of parsed) {\n const res = mapNode(n, runs);\n if (!res) {\n // line break\n paragraphs.push((runs = []));\n } else {\n runs.push(...res);\n }\n }\n return paragraphs;\n};\n","import * as docx from \"docx\";\nimport { convertInchesToTwip, Packer } from \"docx\";\nimport type { IPropertiesOptions } from \"docx/build/file/core-properties\";\nimport type * as mdast from \"./models/mdast\";\nimport { parseLatex } from \"./latex\";\nimport { invariant, unreachable } from \"./utils\";\n\nconst ORDERED_LIST_REF = \"ordered\";\nconst INDENT = 0.5;\nconst DEFAULT_NUMBERINGS: docx.ILevelsOptions[] = [\n {\n level: 0,\n format: docx.LevelFormat.DECIMAL,\n text: \"%1.\",\n alignment: docx.AlignmentType.START,\n },\n {\n level: 1,\n format: docx.LevelFormat.DECIMAL,\n text: \"%2.\",\n alignment: docx.AlignmentType.START,\n style: {\n paragraph: {\n indent: { start: convertInchesToTwip(INDENT * 1) },\n },\n },\n },\n {\n level: 2,\n format: docx.LevelFormat.DECIMAL,\n text: \"%3.\",\n alignment: docx.AlignmentType.START,\n style: {\n paragraph: {\n indent: { start: convertInchesToTwip(INDENT * 2) },\n },\n },\n },\n {\n level: 3,\n format: docx.LevelFormat.DECIMAL,\n text: \"%4.\",\n alignment: docx.AlignmentType.START,\n style: {\n paragraph: {\n indent: { start: convertInchesToTwip(INDENT * 3) },\n },\n },\n },\n {\n level: 4,\n format: docx.LevelFormat.DECIMAL,\n text: \"%5.\",\n alignment: docx.AlignmentType.START,\n style: {\n paragraph: {\n indent: { start: convertInchesToTwip(INDENT * 4) },\n },\n },\n },\n {\n level: 5,\n format: docx.LevelFormat.DECIMAL,\n text: \"%6.\",\n alignment: docx.AlignmentType.START,\n style: {\n paragraph: {\n indent: { start: convertInchesToTwip(INDENT * 5) },\n },\n },\n },\n];\n\nexport type ImageDataMap = { [url: string]: ImageData };\n\nexport type ImageData = {\n image: docx.IImageOptions[\"data\"];\n width: number;\n height: number;\n};\n\nexport type ImageResolver = (url: string) => Promise<ImageData> | ImageData;\n\ntype Decoration = Readonly<\n {\n [key in (mdast.Emphasis | mdast.Strong | mdast.Delete)[\"type\"]]?: true;\n }\n>;\n\ntype ListInfo = Readonly<{\n level: number;\n ordered: boolean;\n}>;\n\ntype Context = Readonly<{\n deco: Decoration;\n images: ImageDataMap;\n indent: number;\n list?: ListInfo;\n}>;\n\nexport type Opts = {\n output?: \"buffer\" | \"blob\";\n imageResolver?: ImageResolver;\n} & Pick<\n IPropertiesOptions,\n | \"title\"\n | \"subject\"\n | \"creator\"\n | \"keywords\"\n | \"description\"\n | \"lastModifiedBy\"\n | \"revision\"\n | \"styles\"\n | \"background\"\n>;\n\ntype DocxChild = docx.Paragraph | docx.Table | docx.TableOfContents;\ntype DocxContent = DocxChild | docx.ParagraphChild;\n\nexport const mdastToDocx = (\n node: mdast.Root,\n {\n output = \"buffer\",\n title,\n subject,\n creator,\n keywords,\n description,\n lastModifiedBy,\n revision,\n styles,\n background,\n }: Opts,\n images: ImageDataMap\n): Promise<any> => {\n const nodes = convertNodes(node.children, {\n deco: {},\n images,\n indent: 0,\n }) as DocxChild[];\n const doc = new docx.Document({\n title,\n subject,\n creator,\n keywords,\n description,\n lastModifiedBy,\n revision,\n styles,\n background,\n sections: [{ children: nodes }],\n numbering: {\n config: [\n {\n reference: ORDERED_LIST_REF,\n levels: DEFAULT_NUMBERINGS,\n },\n ],\n },\n });\n\n switch (output) {\n case \"buffer\":\n return Packer.toBuffer(doc);\n case \"blob\":\n return Packer.toBlob(doc);\n }\n};\n\nconst convertNodes = (nodes: mdast.Content[], ctx: Context): DocxContent[] => {\n const results: DocxContent[] = [];\n\n for (const node of nodes) {\n switch (node.type) {\n case \"paragraph\":\n results.push(buildParagraph(node, ctx));\n break;\n case \"heading\":\n results.push(buildHeading(node, ctx));\n break;\n case \"thematicBreak\":\n results.push(buildThematicBreak(node));\n break;\n case \"blockquote\":\n results.push(...buildBlockquote(node, ctx));\n break;\n case \"list\":\n results.push(...buildList(node, ctx));\n break;\n case \"listItem\":\n invariant(false, \"unreachable\");\n case \"table\":\n results.push(buildTable(node, ctx));\n break;\n case \"tableRow\":\n invariant(false, \"unreachable\");\n case \"tableCell\":\n invariant(false, \"unreachable\");\n case \"html\":\n results.push(buildHtml(node));\n break;\n case \"code\":\n results.push(buildCode(node));\n break;\n case \"yaml\":\n // FIXME: unimplemented\n break;\n case \"toml\":\n // FIXME: unimplemented\n break;\n case \"definition\":\n // FIXME: unimplemented\n break;\n case \"footnoteDefinition\":\n // FIXME: unimplemented\n break;\n case \"text\":\n results.push(buildText(node.value, ctx.deco));\n break;\n case \"emphasis\":\n case \"strong\":\n case \"delete\": {\n const { type, children } = node;\n results.push(\n ...convertNodes(children, {\n ...ctx,\n deco: { ...ctx.deco, [type]: true },\n })\n );\n break;\n }\n case \"inlineCode\":\n // FIXME: transform to text for now\n results.push(buildText(node.value, ctx.deco));\n break;\n case \"break\":\n results.push(buildBreak(node));\n break;\n case \"link\":\n results.push(buildLink(node, ctx));\n break;\n case \"image\":\n results.push(buildImage(node, ctx.images));\n break;\n case \"linkReference\":\n // FIXME: unimplemented\n break;\n case \"imageReference\":\n // FIXME: unimplemented\n break;\n case \"footnote\":\n results.push(buildFootnote(node, ctx));\n break;\n case \"footnoteReference\":\n // FIXME: unimplemented\n break;\n case \"math\":\n results.push(...buildMath(node));\n break;\n case \"inlineMath\":\n results.push(buildInlineMath(node));\n break;\n default:\n unreachable(node);\n break;\n }\n }\n return results;\n};\n\nconst buildParagraph = ({ children }: mdast.Paragraph, ctx: Context) => {\n const list = ctx.list;\n return new docx.Paragraph({\n children: convertNodes(children, ctx),\n indent:\n ctx.indent > 0\n ? {\n start: convertInchesToTwip(INDENT * ctx.indent),\n }\n : undefined,\n ...(list &&\n (list.ordered\n ? {\n numbering: {\n reference: ORDERED_LIST_REF,\n level: list.level,\n },\n }\n : {\n bullet: {\n level: list.level,\n },\n })),\n });\n};\n\nconst buildHeading = ({ children, depth }: mdast.Heading, ctx: Context) => {\n let heading: docx.HeadingLevel;\n switch (depth) {\n case 1:\n heading = docx.HeadingLevel.TITLE;\n break;\n case 2:\n heading = docx.HeadingLevel.HEADING_1;\n break;\n case 3:\n heading = docx.HeadingLevel.HEADING_2;\n break;\n case 4:\n heading = docx.HeadingLevel.HEADING_3;\n break;\n case 5:\n heading = docx.HeadingLevel.HEADING_4;\n break;\n case 6:\n heading = docx.HeadingLevel.HEADING_5;\n break;\n }\n return new docx.Paragraph({\n heading,\n children: convertNodes(children, ctx),\n });\n};\n\nconst buildThematicBreak = (_: mdast.ThematicBreak) => {\n return new docx.Paragraph({\n thematicBreak: true,\n });\n};\n\nconst buildBlockquote = ({ children }: mdast.Blockquote, ctx: Context) => {\n return convertNodes(children, { ...ctx, indent: ctx.indent + 1 });\n};\n\nconst buildList = (\n { children, ordered, start: _start, spread: _spread }: mdast.List,\n ctx: Context\n) => {\n const list: ListInfo = {\n level: ctx.list ? ctx.list.level + 1 : 0,\n ordered: !!ordered,\n };\n return children.reduce((acc, item) => {\n acc.push(\n ...buildListItem(item, {\n ...ctx,\n list,\n })\n );\n return acc;\n }, [] as DocxContent[]);\n};\n\nconst buildListItem = (\n { children, checked: _checked, spread: _spread }: mdast.ListItem,\n ctx: Context\n) => {\n return convertNodes(children, ctx);\n};\n\nconst buildTable = ({ children, align }: mdast.Table, ctx: Context) => {\n const cellAligns: docx.AlignmentType[] | undefined = align?.map((a) => {\n switch (a) {\n case \"left\":\n return docx.AlignmentType.LEFT;\n case \"right\":\n return docx.AlignmentType.RIGHT;\n case \"center\":\n return docx.AlignmentType.CENTER;\n default:\n return docx.AlignmentType.LEFT;\n }\n });\n\n return new docx.Table({\n rows: children.map((r) => {\n return buildTableRow(r, ctx, cellAligns);\n }),\n });\n};\n\nconst buildTableRow = (\n { children }: mdast.TableRow,\n ctx: Context,\n cellAligns: docx.AlignmentType[] | undefined\n) => {\n return new docx.TableRow({\n children: children.map((c, i) => {\n return buildTableCell(c, ctx, cellAligns?.[i]);\n }),\n });\n};\n\nconst buildTableCell = (\n { children }: mdast.TableCell,\n ctx: Context,\n align: docx.AlignmentType | undefined\n) => {\n return new docx.TableCell({\n children: [\n new docx.Paragraph({\n alignment: align,\n children: convertNodes(children, ctx),\n }),\n ],\n });\n};\n\nconst buildHtml = ({ value }: mdast.HTML) => {\n // FIXME: transform to text for now\n return new docx.Paragraph({\n children: [buildText(value, {})],\n });\n};\n\nconst buildCode = ({ value, lang: _lang, meta: _meta }: mdast.Code) => {\n // FIXME: transform to text for now\n return new docx.Paragraph({\n children: [buildText(value, {})],\n });\n};\n\nconst buildMath = ({ value }: mdast.Math) => {\n return parseLatex(value).map(\n (runs) =>\n new docx.Paragraph({\n children: [\n new docx.Math({\n children: runs,\n }),\n ],\n })\n );\n};\n\nconst buildInlineMath = ({ value }: mdast.InlineMath) => {\n return new docx.Math({\n children: parseLatex(value).flatMap((runs) => runs),\n });\n};\n\nconst buildText = (text: string, deco: Decoration) => {\n return new docx.TextRun({\n text,\n bold: deco.strong,\n italics: deco.emphasis,\n strike: deco.delete,\n });\n};\n\nconst buildBreak = (_: mdast.Break) => {\n return new docx.TextRun({ text: \"\", break: 1 });\n};\n\nconst buildLink = (\n { children, url, title: _title }: mdast.Link,\n ctx: Context\n) => {\n return new docx.ExternalHyperlink({\n link: url,\n children: convertNodes(children, ctx),\n });\n};\n\nconst buildImage = (\n { url, title: _title, alt: _alt }: mdast.Image,\n images: ImageDataMap\n) => {\n const img = images[url];\n invariant(img, `Fetch image was failed: ${url}`);\n\n const { image, width, height } = img;\n return new docx.ImageRun({\n data: image,\n transformation: {\n width,\n height,\n },\n });\n};\n\nconst buildFootnote = ({ children }: mdast.Footnote, ctx: Context) => {\n // FIXME: transform to paragraph for now\n return new docx.Paragraph({\n children: convertNodes(children, ctx),\n });\n};\n","import type { Plugin } from \"unified\";\nimport type * as mdast from \"mdast\";\nimport { visit } from \"unist-util-visit\";\nimport { mdastToDocx, Opts, ImageDataMap } from \"./transformer\";\nimport { invariant } from \"./utils\";\n\nexport type Options = Opts;\n\nconst plugin: Plugin<[Options?]> = function (opts = {}) {\n let images: ImageDataMap = {};\n\n this.Compiler = (node) => {\n return mdastToDocx(node as any, opts, images);\n };\n\n return async (node) => {\n const imageList: mdast.Image[] = [];\n visit(node, \"image\", (node) => {\n imageList.push(node);\n });\n if (imageList.length === 0) {\n return node;\n }\n\n const imageResolver = opts.imageResolver;\n invariant(imageResolver, \"options.imageResolver is not defined.\");\n\n const imageDatas = await Promise.all(\n imageList.map(({ url }) => imageResolver(url))\n );\n images = imageList.reduce((acc, img, i) => {\n acc[img.url] = imageDatas[i]!;\n return acc;\n }, {} as ImageDataMap);\n return node;\n };\n};\nexport default plugin;\n"],"names":[],"mappings":";;;;;;AAAO,MAAM,WAAW,GAAG,CAAC,CAAQ,KAAW;AAC7C,IAAA,MAAM,IAAI,KAAK,CAAC,aAAa,CAAC,CAAC;AACjC,CAAC,CAAC;AAEc,SAAA,SAAS,CAAC,IAAS,EAAE,OAAe,EAAA;AAClD,IAAA,IAAI,CAAC,IAAI;AAAE,QAAA,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC;AACtC;;ACDA,MAAM,iBAAiB,GAAG,CACxB,GAA+B,KACN;AACzB,IAAA,OAAO,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,QAAQ,KAAK,GAAG,IAAI,GAAG,CAAC,SAAS,KAAK,GAAG,CAAC;AAChE,CAAC,CAAC;AACF,MAAM,gBAAgB,GAAG,CACvB,GAA+B,KACN;AACzB,IAAA,OAAO,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,QAAQ,KAAK,GAAG,IAAI,GAAG,CAAC,SAAS,KAAK,GAAG,CAAC;AAChE,CAAC,CAAC;AAEF,MAAM,SAAS,GAAG,CAAC,CAAS,KAAmB,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AAEnE,MAAM,QAAQ,GAAG,CACf,CAAc,EACd,IAAoB,KACI;;IACxB,QAAQ,CAAC,CAAC,OAAO;AACf,QAAA,KAAK,GAAG;AACN,YAAA,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC;AACxB,QAAA,KAAK,GAAG;AACN,YAAA,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC;AACxB,QAAA,KAAK,GAAG;AACN,YAAA,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC;AACxB,QAAA,KAAK,GAAG;AACN,YAAA,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC;AACxB,QAAA,KAAK,gBAAgB;AACnB,YAAA,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC;AACxB,QAAA,KAAK,iBAAiB;AACpB,YAAA,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC;AACxB,QAAA,KAAK,eAAe;AAClB,YAAA,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC;AACxB,QAAA,KAAK,GAAG;AACN,YAAA,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC;AACxB,QAAA,KAAK,GAAG;AACN,YAAA,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC;AACxB,QAAA,KAAK,SAAS;AACZ,YAAA,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC;AACxB,QAAA,KAAK,UAAU;AACb,YAAA,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC;AACxB,QAAA,KAAK,aAAa;AAChB,YAAA,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC;AACxB,QAAA,KAAK,KAAK;AACR,YAAA,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC;AACxB,QAAA,KAAK,KAAK;AACR,YAAA,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC;AACxB,QAAA,KAAK,OAAO;AACV,YAAA,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC;AACxB,QAAA,KAAK,QAAQ;AACX,YAAA,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC;AACxB,QAAA,KAAK,eAAe;AAClB,YAAA,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC;AACxB,QAAA,KAAK,cAAc;AACjB,YAAA,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC;AACxB,QAAA,KAAK,OAAO;AACV,YAAA,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC;AACxB,QAAA,KAAK,KAAK;AACR,YAAA,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC;AACxB,QAAA,KAAK,MAAM;AACT,YAAA,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC;AACxB,QAAA,KAAK,KAAK;AACR,YAAA,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC;AACxB,QAAA,KAAK,MAAM;AACT,YAAA,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC;AACxB,QAAA,KAAK,IAAI;AACP,YAAA,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC;AACxB,QAAA,KAAK,IAAI;AACP,YAAA,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC;AACxB,QAAA,KAAK,OAAO;AACV,YAAA,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC;AACxB,QAAA,KAAK,KAAK;AACR,YAAA,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC;AACxB,QAAA,KAAK,IAAI;AACP,YAAA,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC;AACxB,QAAA,KAAK,IAAI;AACP,YAAA,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC;AACxB,QAAA,KAAK,OAAO;AACV,YAAA,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC;AACxB,QAAA,KAAK,QAAQ;AACX,YAAA,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC;AACxB,QAAA,KAAK,QAAQ;AACX,YAAA,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC;AACxB,QAAA,KAAK,QAAQ;AACX,YAAA,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC;AACxB,QAAA,KAAK,MAAM;AACT,YAAA,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC;AACxB,QAAA,KAAK,MAAM;AACT,YAAA,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC;AACxB,QAAA,KAAK,QAAQ;AACX,YAAA,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC;AACxB,QAAA,KAAK,QAAQ;AACX,YAAA,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC;AACxB,QAAA,KAAK,QAAQ;AACX,YAAA,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC;AACxB,QAAA,KAAK,IAAI;AACP,YAAA,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC;AACxB,QAAA,KAAK,IAAI;AACP,YAAA,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC;AACxB,QAAA,KAAK,OAAO;AACV,YAAA,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC;AACxB,QAAA,KAAK,QAAQ;AACX,YAAA,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC;AACxB,QAAA,KAAK,QAAQ;AACX,YAAA,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC;AACxB,QAAA,KAAK,UAAU;AACb,YAAA,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC;AACxB,QAAA,KAAK,UAAU;AACb,YAAA,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC;AACxB,QAAA,KAAK,WAAW;AACd,YAAA,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC;AACxB,QAAA,KAAK,WAAW;AACd,YAAA,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC;AACxB,QAAA,KAAK,WAAW;AACd,YAAA,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC;AACxB,QAAA,KAAK,WAAW;AACd,YAAA,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC;AACxB,QAAA,KAAK,KAAK;AACR,YAAA,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC;AACxB,QAAA,KAAK,KAAK;AACR,YAAA,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC;AACxB,QAAA,KAAK,UAAU;AACb,YAAA,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC;AACxB,QAAA,KAAK,OAAO;AACV,YAAA,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC;AACxB,QAAA,KAAK,SAAS;AACZ,YAAA,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC;AACxB,QAAA,KAAK,OAAO;AACV,YAAA,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC;AACxB,QAAA,KAAK,MAAM;AACT,YAAA,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC;AACxB,QAAA,KAAK,IAAI;AACP,YAAA,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC;AACxB,QAAA,KAAK,IAAI;AACP,YAAA,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC;AACxB,QAAA,KAAK,IAAI;AACP,YAAA,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC;AACxB,QAAA,KAAK,OAAO;AACV,YAAA,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC;AACxB,QAAA,KAAK,MAAM;AACT,YAAA,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC;AACxB,QAAA,KAAK,OAAO;AACV,YAAA,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC;AACxB,QAAA,KAAK,OAAO;AACV,YAAA,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC;AACxB,QAAA,KAAK,SAAS;AACZ,YAAA,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC;AACxB,QAAA,KAAK,MAAM;AACT,YAAA,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC;AACxB,QAAA,KAAK,KAAK;AACR,YAAA,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC;AACxB,QAAA,KAAK,OAAO;AACV,YAAA,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC;AACxB,QAAA,KAAK,MAAM;AACT,YAAA,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC;AACxB,QAAA,KAAK,OAAO;AACV,YAAA,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC;AACxB,QAAA,KAAK,QAAQ;AACX,YAAA,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC;AACxB,QAAA,KAAK,KAAK;AACR,YAAA,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC;AACxB,QAAA,KAAK,IAAI;AACP,YAAA,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC;AACxB,QAAA,KAAK,IAAI;AACP,YAAA,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC;AACxB,QAAA,KAAK,IAAI;AACP,YAAA,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC;AACxB,QAAA,KAAK,IAAI;AACP,YAAA,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC;AACxB,QAAA,KAAK,KAAK;AACR,YAAA,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC;AACxB,QAAA,KAAK,OAAO;AACV,YAAA,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC;AACxB,QAAA,KAAK,KAAK;AACR,YAAA,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC;AACxB,QAAA,KAAK,SAAS;AACZ,YAAA,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC;AACxB,QAAA,KAAK,KAAK;AACR,YAAA,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC;AACxB,QAAA,KAAK,KAAK;AACR,YAAA,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC;AACxB,QAAA,KAAK,KAAK;AACR,YAAA,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC;AACxB,QAAA,KAAK,OAAO;AACV,YAAA,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC;AACxB,QAAA,KAAK,YAAY;AACf,YAAA,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC;AACxB,QAAA,KAAK,UAAU;AACb,YAAA,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC;AACxB,QAAA,KAAK,QAAQ;AACX,YAAA,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC;AACxB,QAAA,KAAK,UAAU;AACb,YAAA,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC;AACxB,QAAA,KAAK,QAAQ;AACX,YAAA,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC;AACxB,QAAA,KAAK,OAAO;AACV,YAAA,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC;AACxB,QAAA,KAAK,OAAO;AACV,YAAA,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC;AACxB,QAAA,KAAK,OAAO;AACV,YAAA,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC;AACxB,QAAA,KAAK,QAAQ;AACX,YAAA,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC;AACxB,QAAA,KAAK,IAAI;AACP,YAAA,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC;AACxB,QAAA,KAAK,IAAI;AACP,YAAA,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC;AACxB,QAAA,KAAK,OAAO;AACV,YAAA,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC;AACxB,QAAA,KAAK,SAAS;AACZ,YAAA,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC;AACxB,QAAA,KAAK,KAAK;AACR,YAAA,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC;AACxB,QAAA,KAAK,KAAK;AACR,YAAA,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC;AACxB,QAAA,KAAK,OAAO;AACV,YAAA,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC;AACxB,QAAA,KAAK,SAAS,CAAC;AACf,QAAA,KAAK,IAAI;;AAEP,YAAA,OAAO,KAAK,CAAC;QACf,KAAK,GAAG,EAAE;AACR,YAAA,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;AACxB,YAAA,IAAI,CAAC,IAAI;gBAAE,MAAM;AACjB,YAAA,OAAO,IAAI,IAAI,CAAC,eAAe,CAAC;gBAC9B,QAAQ,EAAE,CAAC,IAAI,CAAC;AAChB,gBAAA,WAAW,EAAE,QAAQ,CAAC,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,MAAA,CAAC,CAAC,IAAI,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAG,CAAC,CAAC,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,OAAO,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAI,EAAE,CAAC;AAClD,aAAA,CAAC,CAAC;AACJ,SAAA;QACD,KAAK,GAAG,EAAE;AACR,YAAA,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;AACxB,YAAA,IAAI,CAAC,IAAI;gBAAE,MAAM;AACjB,YAAA,OAAO,IAAI,IAAI,CAAC,aAAa,CAAC;gBAC5B,QAAQ,EAAE,CAAC,IAAI,CAAC;AAChB,gBAAA,SAAS,EAAE,QAAQ,CAAC,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,MAAA,CAAC,CAAC,IAAI,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAG,CAAC,CAAC,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,OAAO,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAI,EAAE,CAAC;AAChD,aAAA,CAAC,CAAC;AACJ,SAAA;AACD,QAAA,KAAK,KAAK;;YAER,MAAM;AACR,QAAA,KAAK,SAAS;;YAEZ,MAAM;QACR,KAAK,KAAK,EAAE;;AAEV,YAAA,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC;AACtB,gBAAA,QAAQ,EAAE,EAAE;AACb,aAAA,CAAC,CAAC;AACJ,SAAA;AACD,QAAA,KAAK,KAAK;AACR,YAAA,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC;AACxB,QAAA,KAAK,MAAM,CAAC;AACZ,QAAA,KAAK,OAAO,CAAC;QACb,KAAK,OAAO,EAAE;YACZ,MAAM,IAAI,GAAG,CAAA,EAAA,GAAA,CAAC,CAAC,IAAI,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAI,EAAE,CAAC;AAC1B,YAAA,IACE,IAAI,CAAC,MAAM,KAAK,CAAC;AACjB,gBAAA,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACzB,gBAAA,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EACzB;AACA,gBAAA,OAAO,IAAI,IAAI,CAAC,YAAY,CAAC;oBAC3B,SAAS,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;oBACpC,WAAW,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;AACvC,iBAAA,CAAC,CAAC;AACJ,aAAA;YACD,MAAM;AACP,SAAA;QACD,KAAK,MAAM,EAAE;YACX,MAAM,IAAI,GAAG,CAAA,EAAA,GAAA,CAAC,CAAC,IAAI,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAI,EAAE,CAAC;AAC1B,YAAA,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE;AAClD,gBAAA,OAAO,IAAI,IAAI,CAAC,WAAW,CAAC;oBAC1B,QAAQ,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;AACpC,iBAAA,CAAC,CAAC;AACJ,aAAA;AACD,YAAA,IACE,IAAI,CAAC,MAAM,KAAK,CAAC;AACjB,gBAAA,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAC1B,gBAAA,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EACzB;AACA,gBAAA,OAAO,IAAI,IAAI,CAAC,WAAW,CAAC;oBAC1B,QAAQ,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;oBACnC,MAAM,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;AAClC,iBAAA,CAAC,CAAC;AACJ,aAAA;YACD,MAAM;AACP,SAAA;AAGF,KAAA;AACD,IAAA,OAAO,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;AAC9B,CAAC,CAAC;AAEF,MAAM,QAAQ,GAAG,CAAC,KAAmB,KAAoB;IACvD,MAAM,KAAK,GAAmB,EAAE,CAAC;AACjC,IAAA,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE;AACrB,QAAA,KAAK,CAAC,IAAI,CAAC,IAAI,OAAO,CAAC,CAAC,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;AAC1C,KAAA;AACD,IAAA,OAAO,KAAK,CAAC;AACf,CAAC,CAAC;AAEF,MAAM,OAAO,GAAG,CACd,CAAa,EACb,IAAoB,KACM;IAC1B,QAAQ,CAAC,CAAC,IAAI;AACZ,QAAA,KAAK,MAAM;YACT,MAAM;AACR,QAAA,KAAK,QAAQ;YACX,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;AAChC,QAAA,KAAK,YAAY;YACf,MAAM;AACR,QAAA,KAAK,UAAU;YACb,MAAM;AACR,QAAA,KAAK,SAAS;YACZ,MAAM;AACR,QAAA,KAAK,OAAO;YACV,MAAM,GAAG,GAAG,QAAQ,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;YAC9B,IAAI,CAAC,GAAG,EAAE;;AAER,gBAAA,OAAO,KAAK,CAAC;AACd,aAAA;AAAM,iBAAA;gBACL,OAAO,CAAC,GAAG,CAAC,CAAC;AACd,aAAA;AACH,QAAA,KAAK,aAAa,CAAC;AACnB,QAAA,KAAK,SAAS;YACZ,MAAM;AACR,QAAA,KAAK,UAAU;YACb,MAAM;AACR,QAAA,KAAK,YAAY;YACf,MAAM;AACR,QAAA,KAAK,aAAa;YAChB,MAAM;AACR,QAAA,KAAK,OAAO;AACV,YAAA,OAAO,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;AAC7B,QAAA,KAAK,MAAM;YACT,MAAM;AACR,QAAA;YACE,WAAW,CAAE,CAAC,CAAC;AAClB,KAAA;AAED,IAAA,OAAO,EAAE,CAAC;AACZ,CAAC,CAAC;AAEK,MAAM,UAAU,GAAG,CAAC,KAAa,KAAsB;AAC5D,IAAA,MAAM,MAAM,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC;AAChC,IAAA,MAAM,UAAU,GAAqB,CAAC,EAAE,CAAC,CAAC;AAC1C,IAAA,IAAI,IAAI,GAAmB,UAAU,CAAC,CAAC,CAAE,CAAC;AAC1C,IAAA,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE;QACtB,MAAM,GAAG,GAAG,OAAO,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;QAC7B,IAAI,CAAC,GAAG,EAAE;;YAER,UAAU,CAAC,IAAI,EAAE,IAAI,GAAG,EAAE,EAAE,CAAC;AAC9B,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC;AACnB,SAAA;AACF,KAAA;AACD,IAAA,OAAO,UAAU,CAAC;AACpB,CAAC;;AClWD,MAAM,gBAAgB,GAAG,SAAS,CAAC;AACnC,MAAM,MAAM,GAAG,GAAG,CAAC;AACnB,MAAM,kBAAkB,GAA0B;AAChD,IAAA;AACE,QAAA,KAAK,EAAE,CAAC;AACR,QAAA,MAAM,EAAE,IAAI,CAAC,WAAW,CAAC,OAAO;AAChC,QAAA,IAAI,EAAE,KAAK;AACX,QAAA,SAAS,EAAE,IAAI,CAAC,aAAa,CAAC,KAAK;AACpC,KAAA;AACD,IAAA;AACE,QAAA,KAAK,EAAE,CAAC;AACR,QAAA,MAAM,EAAE,IAAI,CAAC,WAAW,CAAC,OAAO;AAChC,QAAA,IAAI,EAAE,KAAK;AACX,QAAA,SAAS,EAAE,IAAI,CAAC,aAAa,CAAC,KAAK;AACnC,QAAA,KAAK,EAAE;AACL,YAAA,SAAS,EAAE;gBACT,MAAM,EAAE,EAAE,KAAK,EAAE,mBAAmB,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE;AACnD,aAAA;AACF,SAAA;AACF,KAAA;AACD,IAAA;AACE,QAAA,KAAK,EAAE,CAAC;AACR,QAAA,MAAM,EAAE,IAAI,CAAC,WAAW,CAAC,OAAO;AAChC,QAAA,IAAI,EAAE,KAAK;AACX,QAAA,SAAS,EAAE,IAAI,CAAC,aAAa,CAAC,KAAK;AACnC,QAAA,KAAK,EAAE;AACL,YAAA,SAAS,EAAE;gBACT,MAAM,EAAE,EAAE,KAAK,EAAE,mBAAmB,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE;AACnD,aAAA;AACF,SAAA;AACF,KAAA;AACD,IAAA;AACE,QAAA,KAAK,EAAE,CAAC;AACR,QAAA,MAAM,EAAE,IAAI,CAAC,WAAW,CAAC,OAAO;AAChC,QAAA,IAAI,EAAE,KAAK;AACX,QAAA,SAAS,EAAE,IAAI,CAAC,aAAa,CAAC,KAAK;AACnC,QAAA,KAAK,EAAE;AACL,YAAA,SAAS,EAAE;gBACT,MAAM,EAAE,EAAE,KAAK,EAAE,mBAAmB,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE;AACnD,aAAA;AACF,SAAA;AACF,KAAA;AACD,IAAA;AACE,QAAA,KAAK,EAAE,CAAC;AACR,QAAA,MAAM,EAAE,IAAI,CAAC,WAAW,CAAC,OAAO;AAChC,QAAA,IAAI,EAAE,KAAK;AACX,QAAA,SAAS,EAAE,IAAI,CAAC,aAAa,CAAC,KAAK;AACnC,QAAA,KAAK,EAAE;AACL,YAAA,SAAS,EAAE;gBACT,MAAM,EAAE,EAAE,KAAK,EAAE,mBAAmB,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE;AACnD,aAAA;AACF,SAAA;AACF,KAAA;AACD,IAAA;AACE,QAAA,KAAK,EAAE,CAAC;AACR,QAAA,MAAM,EAAE,IAAI,CAAC,WAAW,CAAC,OAAO;AAChC,QAAA,IAAI,EAAE,KAAK;AACX,QAAA,SAAS,EAAE,IAAI,CAAC,aAAa,CAAC,KAAK;AACnC,QAAA,KAAK,EAAE;AACL,YAAA,SAAS,EAAE;gBACT,MAAM,EAAE,EAAE,KAAK,EAAE,mBAAmB,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE;AACnD,aAAA;AACF,SAAA;AACF,KAAA;CACF,CAAC;AAiDK,MAAM,WAAW,GAAG,CACzB,IAAgB,EAChB,EACE,MAAM,GAAG,QAAQ,EACjB,KAAK,EACL,OAAO,EACP,OAAO,EACP,QAAQ,EACR,WAAW,EACX,cAAc,EACd,QAAQ,EACR,MAAM,EACN,UAAU,GACL,EACP,MAAoB,KACJ;AAChB,IAAA,MAAM,KAAK,GAAG,YAAY,CAAC,IAAI,CAAC,QAAQ,EAAE;AACxC,QAAA,IAAI,EAAE,EAAE;QACR,MAAM;AACN,QAAA,MAAM,EAAE,CAAC;AACV,KAAA,CAAgB,CAAC;AAClB,IAAA,MAAM,GAAG,GAAG,IAAI,IAAI,CAAC,QAAQ,CAAC;QAC5B,KAAK;QACL,OAAO;QACP,OAAO;QACP,QAAQ;QACR,WAAW;QACX,cAAc;QACd,QAAQ;QACR,MAAM;QACN,UAAU;AACV,QAAA,QAAQ,EAAE,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;AAC/B,QAAA,SAAS,EAAE;AACT,YAAA,MAAM,EAAE;AACN,gBAAA;AACE,oBAAA,SAAS,EAAE,gBAAgB;AAC3B,oBAAA,MAAM,EAAE,kBAAkB;AAC3B,iBAAA;AACF,aAAA;AACF,SAAA;AACF,KAAA,CAAC,CAAC;AAEH,IAAA,QAAQ,MAAM;AACZ,QAAA,KAAK,QAAQ;AACX,YAAA,OAAO,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;AAC9B,QAAA,KAAK,MAAM;AACT,YAAA,OAAO,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;AAC7B,KAAA;AACH,CAAC,CAAC;AAEF,MAAM,YAAY,GAAG,CAAC,KAAsB,EAAE,GAAY,KAAmB;IAC3E,MAAM,OAAO,GAAkB,EAAE,CAAC;AAElC,IAAA,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE;QACxB,QAAQ,IAAI,CAAC,IAAI;AACf,YAAA,KAAK,WAAW;gBACd,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC;gBACxC,MAAM;AACR,YAAA,KAAK,SAAS;gBACZ,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC;gBACtC,MAAM;AACR,YAAA,KAAK,eAAe;gBAClB,OAAO,CAAC,IAAI,CAAC,kBAAkB,CAAK,CAAC,CAAC,CAAC;gBACvC,MAAM;AACR,YAAA,KAAK,YAAY;gBACf,OAAO,CAAC,IAAI,CAAC,GAAG,eAAe,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC;gBAC5C,MAAM;AACR,YAAA,KAAK,MAAM;gBACT,OAAO,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC;gBACtC,MAAM;AACR,YAAA,KAAK,UAAU;AACb,gBAAA,SAAS,CAAC,KAAK,EAAE,aAAa,CAAC,CAAC;AAClC,YAAA,KAAK,OAAO;gBACV,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC;gBACpC,MAAM;AACR,YAAA,KAAK,UAAU;AACb,gBAAA,SAAS,CAAC,KAAK,EAAE,aAAa,CAAC,CAAC;AAClC,YAAA,KAAK,WAAW;AACd,gBAAA,SAAS,CAAC,KAAK,EAAE,aAAa,CAAC,CAAC;AAClC,YAAA,KAAK,MAAM;gBACT,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;gBAC9B,MAAM;AACR,YAAA,KAAK,MAAM;gBACT,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;gBAC9B,MAAM;AACR,YAAA,KAAK,MAAM;;gBAET,MAAM;AACR,YAAA,KAAK,MAAM;;gBAET,MAAM;AACR,YAAA,KAAK,YAAY;;gBAEf,MAAM;AACR,YAAA,KAAK,oBAAoB;;gBAEvB,MAAM;AACR,YAAA,KAAK,MAAM;AACT,gBAAA,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;gBAC9C,MAAM;AACR,YAAA,KAAK,UAAU,CAAC;AAChB,YAAA,KAAK,QAAQ,CAAC;YACd,KAAK,QAAQ,EAAE;AACb,gBAAA,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC;gBAChC,OAAO,CAAC,IAAI,CACV,GAAG,YAAY,CAAC,QAAQ,EACnB,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EAAA,GAAG,CACN,EAAA,EAAA,IAAI,kCAAO,GAAG,CAAC,IAAI,CAAA,EAAA,EAAE,CAAC,IAAI,GAAG,IAAI,EACjC,CAAA,EAAA,CAAA,CAAA,CACH,CAAC;gBACF,MAAM;AACP,aAAA;AACD,YAAA,KAAK,YAAY;;AAEf,gBAAA,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;gBAC9C,MAAM;AACR,YAAA,KAAK,OAAO;gBACV,OAAO,CAAC,IAAI,CAAC,UAAU,CAAK,CAAC,CAAC,CAAC;gBAC/B,MAAM;AACR,YAAA,KAAK,MAAM;gBACT,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC;gBACnC,MAAM;AACR,YAAA,KAAK,OAAO;AACV,gBAAA,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;gBAC3C,MAAM;AACR,YAAA,KAAK,eAAe;;gBAElB,MAAM;AACR,YAAA,KAAK,gBAAgB;;gBAEnB,MAAM;AACR,YAAA,KAAK,UAAU;gBACb,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC;gBACvC,MAAM;AACR,YAAA,KAAK,mBAAmB;;gBAEtB,MAAM;AACR,YAAA,KAAK,MAAM;gBACT,OAAO,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;gBACjC,MAAM;AACR,YAAA,KAAK,YAAY;gBACf,OAAO,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC;gBACpC,MAAM;AACR,YAAA;gBACE,WAAW,CAAK,CAAC,CAAC;gBAClB,MAAM;AACT,SAAA;AACF,KAAA;AACD,IAAA,OAAO,OAAO,CAAC;AACjB,CAAC,CAAC;AAEF,MAAM,cAAc,GAAG,CAAC,EAAE,QAAQ,EAAmB,EAAE,GAAY,KAAI;AACrE,IAAA,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC;IACtB,OAAO,IAAI,IAAI,CAAC,SAAS,iBACvB,QAAQ,EAAE,YAAY,CAAC,QAAQ,EAAE,GAAG,CAAC,EACrC,MAAM,EACJ,GAAG,CAAC,MAAM,GAAG,CAAC;AACZ,cAAE;gBACE,KAAK,EAAE,mBAAmB,CAAC,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC;AAChD,aAAA;AACH,cAAE,SAAS,EACZ,GAAC,IAAI;SACL,IAAI,CAAC,OAAO;AACX,cAAE;AACE,gBAAA,SAAS,EAAE;AACT,oBAAA,SAAS,EAAE,gBAAgB;oBAC3B,KAAK,EAAE,IAAI,CAAC,KAAK;AAClB,iBAAA;AACF,aAAA;AACH,cAAE;AACE,gBAAA,MAAM,EAAE;oBACN,KAAK,EAAE,IAAI,CAAC,KAAK;AAClB,iBAAA;aACF,CAAC,GACR,CAAC;AACL,CAAC,CAAC;AAEF,MAAM,YAAY,GAAG,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAiB,EAAE,GAAY,KAAI;AACxE,IAAA,IAAI,OAA0B,CAAC;AAC/B,IAAA,QAAQ,KAAK;AACX,QAAA,KAAK,CAAC;AACJ,YAAA,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC;YAClC,MAAM;AACR,QAAA,KAAK,CAAC;AACJ,YAAA,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC;YACtC,MAAM;AACR,QAAA,KAAK,CAAC;AACJ,YAAA,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC;YACtC,MAAM;AACR,QAAA,KAAK,CAAC;AACJ,YAAA,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC;YACtC,MAAM;AACR,QAAA,KAAK,CAAC;AACJ,YAAA,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC;YACtC,MAAM;AACR,QAAA,KAAK,CAAC;AACJ,YAAA,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC;YACtC,MAAM;AACT,KAAA;AACD,IAAA,OAAO,IAAI,IAAI,CAAC,SAAS,CAAC;QACxB,OAAO;AACP,QAAA,QAAQ,EAAE,YAAY,CAAC,QAAQ,EAAE,GAAG,CAAC;AACtC,KAAA,CAAC,CAAC;AACL,CAAC,CAAC;AAEF,MAAM,kBAAkB,GAAG,CAAC,CAAsB,KAAI;AACpD,IAAA,OAAO,IAAI,IAAI,CAAC,SAAS,CAAC;AACxB,QAAA,aAAa,EAAE,IAAI;AACpB,KAAA,CAAC,CAAC;AACL,CAAC,CAAC;AAEF,MAAM,eAAe,GAAG,CAAC,EAAE,QAAQ,EAAoB,EAAE,GAAY,KAAI;AACvE,IAAA,OAAO,YAAY,CAAC,QAAQ,EAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EAAO,GAAG,CAAE,EAAA,EAAA,MAAM,EAAE,GAAG,CAAC,MAAM,GAAG,CAAC,IAAG,CAAC;AACpE,CAAC,CAAC;AAEF,MAAM,SAAS,GAAG,CAChB,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAc,EACjE,GAAY,KACV;AACF,IAAA,MAAM,IAAI,GAAa;AACrB,QAAA,KAAK,EAAE,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,GAAG,CAAC;QACxC,OAAO,EAAE,CAAC,CAAC,OAAO;KACnB,CAAC;IACF,OAAO,QAAQ,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,IAAI,KAAI;AACnC,QAAA,GAAG,CAAC,IAAI,CACN,GAAG,aAAa,CAAC,IAAI,EAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EAChB,GAAG,CAAA,EAAA,EACN,IAAI,EAAA,CAAA,CACJ,CACH,CAAC;AACF,QAAA,OAAO,GAAG,CAAC;KACZ,EAAE,EAAmB,CAAC,CAAC;AAC1B,CAAC,CAAC;AAEF,MAAM,aAAa,GAAG,CACpB,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAkB,EAChE,GAAY,KACV;AACF,IAAA,OAAO,YAAY,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;AACrC,CAAC,CAAC;AAEF,MAAM,UAAU,GAAG,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAe,EAAE,GAAY,KAAI;AACpE,IAAA,MAAM,UAAU,GAAqC,KAAK,KAAA,IAAA,IAAL,KAAK,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAL,KAAK,CAAE,GAAG,CAAC,CAAC,CAAC,KAAI;AACpE,QAAA,QAAQ,CAAC;AACP,YAAA,KAAK,MAAM;AACT,gBAAA,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC;AACjC,YAAA,KAAK,OAAO;AACV,gBAAA,OAAO,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC;AAClC,YAAA,KAAK,QAAQ;AACX,gBAAA,OAAO,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC;AACnC,YAAA;AACE,gBAAA,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC;AAClC,SAAA;AACH,KAAC,CAAC,CAAC;AAEH,IAAA,OAAO,IAAI,IAAI,CAAC,KAAK,CAAC;QACpB,IAAI,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,KAAI;YACvB,OAAO,aAAa,CAAC,CAAC,EAAE,GAAG,EAAE,UAAU,CAAC,CAAC;AAC3C,SAAC,CAAC;AACH,KAAA,CAAC,CAAC;AACL,CAAC,CAAC;AAEF,MAAM,aAAa,GAAG,CACpB,EAAE,QAAQ,EAAkB,EAC5B,GAAY,EACZ,UAA4C,KAC1C;AACF,IAAA,OAAO,IAAI,IAAI,CAAC,QAAQ,CAAC;QACvB,QAAQ,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,KAAI;AAC9B,YAAA,OAAO,cAAc,CAAC,CAAC,EAAE,GAAG,EAAE,UAAU,KAAV,IAAA,IAAA,UAAU,uBAAV,UAAU,CAAG,CAAC,CAAC,CAAC,CAAC;AACjD,SAAC,CAAC;AACH,KAAA,CAAC,CAAC;AACL,CAAC,CAAC;AAEF,MAAM,cAAc,GAAG,CACrB,EAAE,QAAQ,EAAmB,EAC7B,GAAY,EACZ,KAAqC,KACnC;AACF,IAAA,OAAO,IAAI,IAAI,CAAC,SAAS,CAAC;AACxB,QAAA,QAAQ,EAAE;YACR,IAAI,IAAI,CAAC,SAAS,CAAC;AACjB,gBAAA,SAAS,EAAE,KAAK;AAChB,gBAAA,QAAQ,EAAE,YAAY,CAAC,QAAQ,EAAE,GAAG,CAAC;aACtC,CAAC;AACH,SAAA;AACF,KAAA,CAAC,CAAC;AACL,CAAC,CAAC;AAEF,MAAM,SAAS,GAAG,CAAC,EAAE,KAAK,EAAc,KAAI;;AAE1C,IAAA,OAAO,IAAI,IAAI,CAAC,SAAS,CAAC;QACxB,QAAQ,EAAE,CAAC,SAAS,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;AACjC,KAAA,CAAC,CAAC;AACL,CAAC,CAAC;AAEF,MAAM,SAAS,GAAG,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAc,KAAI;;AAEpE,IAAA,OAAO,IAAI,IAAI,CAAC,SAAS,CAAC;QACxB,QAAQ,EAAE,CAAC,SAAS,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;AACjC,KAAA,CAAC,CAAC;AACL,CAAC,CAAC;AAEF,MAAM,SAAS,GAAG,CAAC,EAAE,KAAK,EAAc,KAAI;AAC1C,IAAA,OAAO,UAAU,CAAC,KAAK,CAAC,CAAC,GAAG,CAC1B,CAAC,IAAI,KACH,IAAI,IAAI,CAAC,SAAS,CAAC;AACjB,QAAA,QAAQ,EAAE;YACR,IAAI,IAAI,CAAC,IAAI,CAAC;AACZ,gBAAA,QAAQ,EAAE,IAAI;aACf,CAAC;AACH,SAAA;AACF,KAAA,CAAC,CACL,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,eAAe,GAAG,CAAC,EAAE,KAAK,EAAoB,KAAI;AACtD,IAAA,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC;AACnB,QAAA,QAAQ,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC;AACpD,KAAA,CAAC,CAAC;AACL,CAAC,CAAC;AAEF,MAAM,SAAS,GAAG,CAAC,IAAY,EAAE,IAAgB,KAAI;AACnD,IAAA,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC;QACtB,IAAI;QACJ,IAAI,EAAE,IAAI,CAAC,MAAM;QACjB,OAAO,EAAE,IAAI,CAAC,QAAQ;QACtB,MAAM,EAAE,IAAI,CAAC,MAAM;AACpB,KAAA,CAAC,CAAC;AACL,CAAC,CAAC;AAEF,MAAM,UAAU,GAAG,CAAC,CAAc,KAAI;AACpC,IAAA,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;AAClD,CAAC,CAAC;AAEF,MAAM,SAAS,GAAG,CAChB,EAAE,QAAQ,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAc,EAC5C,GAAY,KACV;AACF,IAAA,OAAO,IAAI,IAAI,CAAC,iBAAiB,CAAC;AAChC,QAAA,IAAI,EAAE,GAAG;AACT,QAAA,QAAQ,EAAE,YAAY,CAAC,QAAQ,EAAE,GAAG,CAAC;AACtC,KAAA,CAAC,CAAC;AACL,CAAC,CAAC;AAEF,MAAM,UAAU,GAAG,CACjB,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAe,EAC9C,MAAoB,KAClB;AACF,IAAA,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;AACxB,IAAA,SAAS,CAAC,GAAG,EAAE,2BAA2B,GAAG,CAAA,CAAE,CAAC,CAAC;IAEjD,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,GAAG,CAAC;AACrC,IAAA,OAAO,IAAI,IAAI,CAAC,QAAQ,CAAC;AACvB,QAAA,IAAI,EAAE,KAAK;AACX,QAAA,cAAc,EAAE;YACd,KAAK;YACL,MAAM;AACP,SAAA;AACF,KAAA,CAAC,CAAC;AACL,CAAC,CAAC;AAEF,MAAM,aAAa,GAAG,CAAC,EAAE,QAAQ,EAAkB,EAAE,GAAY,KAAI;;AAEnE,IAAA,OAAO,IAAI,IAAI,CAAC,SAAS,CAAC;AACxB,QAAA,QAAQ,EAAE,YAAY,CAAC,QAAQ,EAAE,GAAG,CAAC;AACtC,KAAA,CAAC,CAAC;AACL,CAAC;;AC/dD,MAAM,MAAM,GAAuB,UAAU,IAAI,GAAG,EAAE,EAAA;IACpD,IAAI,MAAM,GAAiB,EAAE,CAAC;AAE9B,IAAA,IAAI,CAAC,QAAQ,GAAG,CAAC,IAAI,KAAI;QACvB,OAAO,WAAW,CAAC,IAAW,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;AAChD,KAAC,CAAC;IAEF,OAAO,CAAO,IAAI,KAAI,SAAA,CAAA,IAAA,EAAA,KAAA,CAAA,EAAA,KAAA,CAAA,EAAA,aAAA;QACpB,MAAM,SAAS,GAAkB,EAAE,CAAC;QACpC,KAAK,CAAC,IAAI,EAAE,OAAO,EAAE,CAAC,IAAI,KAAI;AAC5B,YAAA,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACvB,SAAC,CAAC,CAAC;AACH,QAAA,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE;AAC1B,YAAA,OAAO,IAAI,CAAC;AACb,SAAA;AAED,QAAA,MAAM,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC;AACzC,QAAA,SAAS,CAAC,aAAa,EAAE,uCAAuC,CAAC,CAAC;QAElE,MAAM,UAAU,GAAG,MAAM,OAAO,CAAC,GAAG,CAClC,SAAS,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,KAAK,aAAa,CAAC,GAAG,CAAC,CAAC,CAC/C,CAAC;AACF,QAAA,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,KAAI;YACxC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC,CAAC,CAAE,CAAC;AAC9B,YAAA,OAAO,GAAG,CAAC;SACZ,EAAE,EAAkB,CAAC,CAAC;AACvB,QAAA,OAAO,IAAI,CAAC;AACd,KAAC,CAAA,CAAC;AACJ;;;;"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "remark-docx",
3
- "version": "0.1.1",
3
+ "version": "0.1.2",
4
4
  "description": "remark plugin to compile markdown to docx (Microsoft Word, Office Open XML).",
5
5
  "main": "lib/index.js",
6
6
  "module": "lib/index.mjs",