remark-docx 0.3.0 → 0.3.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
@@ -8,11 +8,9 @@
8
8
  - Works in any environment (e.g. browser, Node.js).
9
9
  - You can customize [mdast](https://github.com/syntax-tree/mdast) to Word transformation with plugin system.
10
10
 
11
- ### 🚧 WIP 🚧
11
+ ### Supported mdast nodes
12
12
 
13
- This project is aiming to support all nodes in [mdast](https://github.com/syntax-tree/mdast) syntax tree, but currently transformation and stylings may not be well.
14
-
15
- If you have some feature requests or improvements, please create a [issue](https://github.com/inokawa/remark-docx/issues) or [PR](https://github.com/inokawa/remark-docx/pulls).
13
+ Currently, some of the default styles may not be nice. If you have feature requests or improvements, please create a [issue](https://github.com/inokawa/remark-docx/issues) or [PR](https://github.com/inokawa/remark-docx/pulls).
16
14
 
17
15
  - [x] paragraph
18
16
  - [x] heading
@@ -93,30 +91,15 @@ const text = "# hello world";
93
91
 
94
92
  ### Image
95
93
 
96
- #### Browser
97
-
98
- ```javascript
99
- import { unified } from "unified";
100
- import markdown from "remark-parse";
101
- import docx from "remark-docx";
102
- import { browserImagePlugin } from "remark-docx/plugins/image";
103
-
104
- const processor = unified()
105
- .use(markdown)
106
- .use(docx, { plugins: [browserImagePlugin()] });
107
- ```
108
-
109
- #### Node.js
110
-
111
94
  ```javascript
112
95
  import { unified } from "unified";
113
96
  import markdown from "remark-parse";
114
97
  import docx from "remark-docx";
115
- import { nodeImagePlugin } from "remark-docx/plugins/image";
98
+ import { imagePlugin } from "remark-docx/plugins/image";
116
99
 
117
100
  const processor = unified()
118
101
  .use(markdown)
119
- .use(docx, { plugins: [nodeImagePlugin()] });
102
+ .use(docx, { plugins: [imagePlugin()] });
120
103
  ```
121
104
 
122
105
  ### LaTeX
@@ -124,11 +107,13 @@ const processor = unified()
124
107
  ```javascript
125
108
  import { unified } from "unified";
126
109
  import markdown from "remark-parse";
110
+ import math from "remark-math";
127
111
  import docx from "remark-docx";
128
112
  import { latexPlugin } from "remark-docx/plugins/math";
129
113
 
130
114
  const processor = unified()
131
115
  .use(markdown)
116
+ .use(math)
132
117
  .use(docx, { plugins: [latexPlugin()] });
133
118
  ```
134
119
 
package/lib/index.cjs CHANGED
@@ -22,69 +22,6 @@ function warnOnce(message, cond = false) {
22
22
 
23
23
  const ORDERED_LIST_REF = "ordered";
24
24
  const INDENT = 0.5;
25
- const DEFAULT_NUMBERINGS = [
26
- {
27
- level: 0,
28
- format: docx.LevelFormat.DECIMAL,
29
- text: "%1.",
30
- alignment: docx.AlignmentType.START,
31
- },
32
- {
33
- level: 1,
34
- format: docx.LevelFormat.DECIMAL,
35
- text: "%2.",
36
- alignment: docx.AlignmentType.START,
37
- style: {
38
- paragraph: {
39
- indent: { start: docx.convertInchesToTwip(INDENT * 1) },
40
- },
41
- },
42
- },
43
- {
44
- level: 2,
45
- format: docx.LevelFormat.DECIMAL,
46
- text: "%3.",
47
- alignment: docx.AlignmentType.START,
48
- style: {
49
- paragraph: {
50
- indent: { start: docx.convertInchesToTwip(INDENT * 2) },
51
- },
52
- },
53
- },
54
- {
55
- level: 3,
56
- format: docx.LevelFormat.DECIMAL,
57
- text: "%4.",
58
- alignment: docx.AlignmentType.START,
59
- style: {
60
- paragraph: {
61
- indent: { start: docx.convertInchesToTwip(INDENT * 3) },
62
- },
63
- },
64
- },
65
- {
66
- level: 4,
67
- format: docx.LevelFormat.DECIMAL,
68
- text: "%5.",
69
- alignment: docx.AlignmentType.START,
70
- style: {
71
- paragraph: {
72
- indent: { start: docx.convertInchesToTwip(INDENT * 4) },
73
- },
74
- },
75
- },
76
- {
77
- level: 5,
78
- format: docx.LevelFormat.DECIMAL,
79
- text: "%6.",
80
- alignment: docx.AlignmentType.START,
81
- style: {
82
- paragraph: {
83
- indent: { start: docx.convertInchesToTwip(INDENT * 5) },
84
- },
85
- },
86
- },
87
- ];
88
25
  const createFootnoteRegistry = () => {
89
26
  const idToInternalId = new Map();
90
27
  const defs = new Map();
@@ -103,7 +40,7 @@ const createFootnoteRegistry = () => {
103
40
  const internalId = getId(id);
104
41
  defs.set(internalId, def);
105
42
  },
106
- footnotes: () => {
43
+ toConfig: () => {
107
44
  return defs.entries().reduce((acc, [key, def]) => {
108
45
  acc[key] = def;
109
46
  return acc;
@@ -113,11 +50,74 @@ const createFootnoteRegistry = () => {
113
50
  };
114
51
  const createNumberingRegistry = () => {
115
52
  let counter = 1;
53
+ const DEFAULT_NUMBERINGS = [
54
+ {
55
+ level: 0,
56
+ format: docx.LevelFormat.DECIMAL,
57
+ text: "%1.",
58
+ alignment: docx.AlignmentType.START,
59
+ },
60
+ {
61
+ level: 1,
62
+ format: docx.LevelFormat.DECIMAL,
63
+ text: "%2.",
64
+ alignment: docx.AlignmentType.START,
65
+ style: {
66
+ paragraph: {
67
+ indent: { start: docx.convertInchesToTwip(INDENT * 1) },
68
+ },
69
+ },
70
+ },
71
+ {
72
+ level: 2,
73
+ format: docx.LevelFormat.DECIMAL,
74
+ text: "%3.",
75
+ alignment: docx.AlignmentType.START,
76
+ style: {
77
+ paragraph: {
78
+ indent: { start: docx.convertInchesToTwip(INDENT * 2) },
79
+ },
80
+ },
81
+ },
82
+ {
83
+ level: 3,
84
+ format: docx.LevelFormat.DECIMAL,
85
+ text: "%4.",
86
+ alignment: docx.AlignmentType.START,
87
+ style: {
88
+ paragraph: {
89
+ indent: { start: docx.convertInchesToTwip(INDENT * 3) },
90
+ },
91
+ },
92
+ },
93
+ {
94
+ level: 4,
95
+ format: docx.LevelFormat.DECIMAL,
96
+ text: "%5.",
97
+ alignment: docx.AlignmentType.START,
98
+ style: {
99
+ paragraph: {
100
+ indent: { start: docx.convertInchesToTwip(INDENT * 4) },
101
+ },
102
+ },
103
+ },
104
+ {
105
+ level: 5,
106
+ format: docx.LevelFormat.DECIMAL,
107
+ text: "%6.",
108
+ alignment: docx.AlignmentType.START,
109
+ style: {
110
+ paragraph: {
111
+ indent: { start: docx.convertInchesToTwip(INDENT * 5) },
112
+ },
113
+ },
114
+ },
115
+ ];
116
116
  return {
117
117
  create: () => {
118
118
  return `${ORDERED_LIST_REF}-${counter++}`;
119
119
  },
120
- getAll: () => {
120
+ toConfig: () => {
121
121
  return Array.from({ length: counter }, (_, i) => ({
122
122
  reference: `${ORDERED_LIST_REF}-${i}`,
123
123
  levels: DEFAULT_NUMBERINGS,
@@ -127,9 +127,9 @@ const createNumberingRegistry = () => {
127
127
  };
128
128
  const mdastToDocx = async (node, { plugins = [], title, subject, creator, keywords, description, lastModifiedBy, revision, styles, background, }) => {
129
129
  const definition = mdastUtilDefinitions.definitions(node);
130
- const pluginCtx = { root: node, definition };
131
130
  const footnote = createFootnoteRegistry();
132
131
  const numbering = createNumberingRegistry();
132
+ const pluginCtx = { root: node, definition };
133
133
  const nodes = convertNodes(node.children, {
134
134
  overrides: (await Promise.all(plugins.map((p) => p(pluginCtx)))).reduceRight((acc, p) => ({ acc, ...p }), {}),
135
135
  deco: {},
@@ -148,10 +148,10 @@ const mdastToDocx = async (node, { plugins = [], title, subject, creator, keywor
148
148
  revision,
149
149
  styles,
150
150
  background,
151
- footnotes: footnote.footnotes(),
151
+ footnotes: footnote.toConfig(),
152
152
  sections: [{ children: nodes }],
153
153
  numbering: {
154
- config: numbering.getAll(),
154
+ config: numbering.toConfig(),
155
155
  },
156
156
  });
157
157
  return docx.Packer.toArrayBuffer(doc);
@@ -340,7 +340,7 @@ const buildBlockquote = ({ children }, ctx) => {
340
340
  indent: ctx.indent + 1,
341
341
  });
342
342
  };
343
- const buildList = ({ children, ordered, start: _start, spread: _spread }, ctx) => {
343
+ const buildList = ({ children, ordered }, ctx) => {
344
344
  var _a;
345
345
  const isTopLevel = !ctx.list;
346
346
  const list = {
@@ -357,7 +357,7 @@ const buildList = ({ children, ordered, start: _start, spread: _spread }, ctx) =
357
357
  });
358
358
  });
359
359
  };
360
- const buildListItem = ({ children, checked, spread: _spread }, ctx) => {
360
+ const buildListItem = ({ children, checked }, ctx) => {
361
361
  return convertNodes(children, {
362
362
  ...ctx,
363
363
  ...(ctx.list && { list: { ...ctx.list, checked: checked !== null && checked !== void 0 ? checked : undefined } }),
@@ -378,28 +378,21 @@ const buildTable = ({ children, align }, ctx) => {
378
378
  });
379
379
  return new docx.Table({
380
380
  rows: children.map((r) => {
381
- return buildTableRow(r, ctx, cellAligns);
382
- }),
383
- });
384
- };
385
- const buildTableRow = ({ children }, ctx, cellAligns) => {
386
- return new docx.TableRow({
387
- children: children.map((c, i) => {
388
- return buildTableCell(c, ctx, cellAligns === null || cellAligns === void 0 ? void 0 : cellAligns[i]);
381
+ return new docx.TableRow({
382
+ children: r.children.map((c, i) => {
383
+ return new docx.TableCell({
384
+ children: [
385
+ new docx.Paragraph({
386
+ alignment: cellAligns === null || cellAligns === void 0 ? void 0 : cellAligns[i],
387
+ children: convertNodes(c.children, ctx),
388
+ }),
389
+ ],
390
+ });
391
+ }),
392
+ });
389
393
  }),
390
394
  });
391
395
  };
392
- const buildTableCell = ({ children }, ctx, align) => {
393
- const nodes = convertNodes(children, ctx);
394
- return new docx.TableCell({
395
- children: [
396
- new docx.Paragraph({
397
- alignment: align,
398
- children: nodes,
399
- }),
400
- ],
401
- });
402
- };
403
396
  const buildHtml = ({ value }) => {
404
397
  // FIXME: transform to text for now
405
398
  return new docx.Paragraph({
package/lib/index.cjs.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs","sources":["../src/src/utils.ts","../src/src/mdast-to-docx.ts","../src/src/plugin.ts"],"sourcesContent":["/**\n * @internal\n */\nexport function invariant(cond: any, message: string): asserts cond {\n if (!cond) throw new Error(message);\n}\n\nconst alreadyWarned: { [message: string]: boolean } = {};\n\n/**\n * @internal\n */\nexport function warnOnce(message: string, cond: boolean = false): void {\n if (!cond && !alreadyWarned[message]) {\n alreadyWarned[message] = true;\n console.warn(message);\n }\n}\n","import {\n convertInchesToTwip,\n Packer,\n Document,\n Paragraph,\n Table,\n TableRow,\n TableCell,\n TextRun,\n ExternalHyperlink,\n HeadingLevel,\n LevelFormat,\n AlignmentType,\n type ILevelsOptions,\n FootnoteReferenceRun,\n CheckBox,\n type IPropertiesOptions,\n} from \"docx\";\nimport type * as mdast from \"./mdast\";\nimport { invariant, warnOnce } from \"./utils\";\nimport { definitions, type GetDefinition } from \"mdast-util-definitions\";\nimport type { DocxChild, DocxContent } from \"./types\";\nimport type { NodeOverrides, RemarkDocxPlugin } from \"./plugins/types\";\n\nconst ORDERED_LIST_REF = \"ordered\";\nconst INDENT = 0.5;\nconst DEFAULT_NUMBERINGS: ILevelsOptions[] = [\n {\n level: 0,\n format: LevelFormat.DECIMAL,\n text: \"%1.\",\n alignment: AlignmentType.START,\n },\n {\n level: 1,\n format: LevelFormat.DECIMAL,\n text: \"%2.\",\n alignment: AlignmentType.START,\n style: {\n paragraph: {\n indent: { start: convertInchesToTwip(INDENT * 1) },\n },\n },\n },\n {\n level: 2,\n format: LevelFormat.DECIMAL,\n text: \"%3.\",\n alignment: AlignmentType.START,\n style: {\n paragraph: {\n indent: { start: convertInchesToTwip(INDENT * 2) },\n },\n },\n },\n {\n level: 3,\n format: LevelFormat.DECIMAL,\n text: \"%4.\",\n alignment: AlignmentType.START,\n style: {\n paragraph: {\n indent: { start: convertInchesToTwip(INDENT * 3) },\n },\n },\n },\n {\n level: 4,\n format: LevelFormat.DECIMAL,\n text: \"%5.\",\n alignment: AlignmentType.START,\n style: {\n paragraph: {\n indent: { start: convertInchesToTwip(INDENT * 4) },\n },\n },\n },\n {\n level: 5,\n format: LevelFormat.DECIMAL,\n text: \"%6.\",\n alignment: AlignmentType.START,\n style: {\n paragraph: {\n indent: { start: convertInchesToTwip(INDENT * 5) },\n },\n },\n },\n];\n\ntype Decoration = Readonly<{\n [key in (mdast.Emphasis | mdast.Strong | mdast.Delete)[\"type\"]]?: true;\n}>;\n\ntype ListInfo = Readonly<{\n level: number;\n ordered: boolean;\n reference: string;\n checked?: boolean;\n}>;\n\ntype FootnoteDefinition = Readonly<{ children: Paragraph[] }>;\ntype FootnoteRegistry = {\n ref: (id: string) => number;\n def: (id: string, def: FootnoteDefinition) => void;\n footnotes: () => {\n [key: string]: FootnoteDefinition;\n };\n};\n\nconst createFootnoteRegistry = (): FootnoteRegistry => {\n const idToInternalId = new Map<string, number>();\n const defs = new Map<number, FootnoteDefinition>();\n\n const getId = (id: string): number => {\n let internalId = idToInternalId.get(id);\n if (internalId == null) {\n idToInternalId.set(id, (internalId = idToInternalId.size + 1));\n }\n return internalId;\n };\n\n return {\n ref: (id) => {\n return getId(id);\n },\n def: (id, def) => {\n const internalId = getId(id);\n defs.set(internalId, def);\n },\n footnotes: () => {\n return defs.entries().reduce(\n (acc, [key, def]) => {\n acc[key] = def;\n return acc;\n },\n {} as {\n [key: string]: FootnoteDefinition;\n },\n );\n },\n };\n};\n\ntype NumberingRegistry = {\n create: () => string;\n getAll: () => Array<{ reference: string; levels: ILevelsOptions[] }>;\n};\n\nconst createNumberingRegistry = (): NumberingRegistry => {\n let counter = 1;\n\n return {\n create: () => {\n return `${ORDERED_LIST_REF}-${counter++}`;\n },\n getAll: () => {\n return Array.from({ length: counter }, (_, i) => ({\n reference: `${ORDERED_LIST_REF}-${i}`,\n levels: DEFAULT_NUMBERINGS,\n }));\n },\n };\n};\n\ntype Context = Readonly<{\n overrides: NodeOverrides;\n deco: Decoration;\n indent: number;\n list?: ListInfo;\n definition: GetDefinition;\n footnote: FootnoteRegistry;\n numbering: NumberingRegistry;\n}>;\n\nexport interface DocxOptions extends Pick<\n IPropertiesOptions,\n | \"title\"\n | \"subject\"\n | \"creator\"\n | \"keywords\"\n | \"description\"\n | \"lastModifiedBy\"\n | \"revision\"\n | \"styles\"\n | \"background\"\n> {\n /**\n * Plugins to customize how mdast nodes are transformed.\n */\n plugins?: RemarkDocxPlugin[];\n}\n\nexport const mdastToDocx = async (\n node: mdast.Root,\n {\n plugins = [],\n title,\n subject,\n creator,\n keywords,\n description,\n lastModifiedBy,\n revision,\n styles,\n background,\n }: DocxOptions,\n): Promise<ArrayBuffer> => {\n const definition = definitions(node);\n\n const pluginCtx = { root: node, definition };\n const footnote = createFootnoteRegistry();\n const numbering = createNumberingRegistry();\n const nodes = convertNodes(node.children, {\n overrides: (\n await Promise.all(plugins.map((p) => p(pluginCtx)))\n ).reduceRight((acc, p) => ({ acc, ...p }), {}),\n deco: {},\n indent: 0,\n definition: definition,\n footnote,\n numbering,\n });\n const doc = new Document({\n title,\n subject,\n creator,\n keywords,\n description,\n lastModifiedBy,\n revision,\n styles,\n background,\n footnotes: footnote.footnotes(),\n sections: [{ children: nodes as DocxChild[] }],\n numbering: {\n config: numbering.getAll(),\n },\n });\n\n return Packer.toArrayBuffer(doc);\n};\n\nconst convertNodes = (\n nodes: mdast.RootContent[],\n ctx: Context,\n): DocxContent[] => {\n const results: DocxContent[] = [];\n for (const node of nodes) {\n const customNodes = ctx.overrides[node.type]?.(node as any, (children) =>\n convertNodes(children, ctx),\n );\n if (customNodes != null) {\n if (Array.isArray(customNodes)) {\n results.push(...customNodes);\n } else {\n results.push(customNodes);\n }\n continue;\n }\n\n switch (node.type) {\n case \"paragraph\": {\n results.push(buildParagraph(node, ctx));\n break;\n }\n case \"heading\": {\n results.push(buildHeading(node, ctx));\n break;\n }\n case \"thematicBreak\":\n results.push(buildThematicBreak(node));\n break;\n case \"blockquote\": {\n results.push(...buildBlockquote(node, ctx));\n break;\n }\n case \"list\": {\n results.push(...buildList(node, ctx));\n break;\n }\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 // // unimplemented\n // break;\n // case \"toml\":\n // // unimplemented\n // break;\n case \"definition\":\n // noop\n break;\n case \"footnoteDefinition\": {\n registerFootnoteDefinition(node, ctx);\n break;\n }\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 const nodes = convertNodes(children, {\n ...ctx,\n deco: { ...ctx.deco, [type]: true },\n });\n results.push(...nodes);\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 }\n case \"linkReference\":\n results.push(...buildLinkReference(node, ctx));\n break;\n case \"image\":\n case \"imageReference\": {\n warnOnce(\n `${node.type} node is not rendered since remark-docx/plugins/image is not provided.`,\n );\n break;\n }\n // case \"footnote\": {\n // // inline footnote was removed in mdast v5\n // break;\n // }\n case \"footnoteReference\":\n results.push(buildFootnoteReference(node, ctx));\n break;\n case \"math\":\n case \"inlineMath\":\n warnOnce(\n `${node.type} node is not rendered since remark-docx/plugins/math is not provided.`,\n );\n break;\n default:\n warnOnce(`${node.type} node is not officially supported.`);\n break;\n }\n }\n return results;\n};\n\nconst buildParagraph = (\n { children }: mdast.Paragraph,\n ctx: Context,\n): DocxContent => {\n const list = ctx.list;\n const nodes = convertNodes(children, ctx);\n\n if (list && list.checked != null) {\n nodes.unshift(\n new CheckBox({\n checked: list.checked,\n checkedState: { value: \"2611\" },\n uncheckedState: { value: \"2610\" },\n }),\n );\n }\n return new Paragraph({\n children: nodes,\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: list.reference,\n level: list.level,\n },\n }\n : {\n bullet: {\n level: list.level,\n },\n })),\n });\n};\n\nconst buildHeading = (\n { children, depth }: mdast.Heading,\n ctx: Context,\n): DocxContent => {\n let headingLevel: (typeof HeadingLevel)[keyof typeof HeadingLevel];\n switch (depth) {\n case 1:\n headingLevel = HeadingLevel.TITLE;\n break;\n case 2:\n headingLevel = HeadingLevel.HEADING_1;\n break;\n case 3:\n headingLevel = HeadingLevel.HEADING_2;\n break;\n case 4:\n headingLevel = HeadingLevel.HEADING_3;\n break;\n case 5:\n headingLevel = HeadingLevel.HEADING_4;\n break;\n case 6:\n headingLevel = HeadingLevel.HEADING_5;\n break;\n }\n const nodes = convertNodes(children, ctx);\n return new Paragraph({\n heading: headingLevel,\n children: nodes,\n });\n};\n\nconst buildThematicBreak = (_: mdast.ThematicBreak): DocxContent => {\n return new Paragraph({\n thematicBreak: true,\n });\n};\n\nconst buildBlockquote = (\n { children }: mdast.Blockquote,\n ctx: Context,\n): DocxContent[] => {\n return convertNodes(children, {\n ...ctx,\n indent: ctx.indent + 1,\n });\n};\n\nconst buildList = (\n { children, ordered, start: _start, spread: _spread }: mdast.List,\n ctx: Context,\n): DocxContent[] => {\n const isTopLevel = !ctx.list;\n const list: ListInfo = {\n level: ctx.list ? ctx.list.level + 1 : 0,\n ordered: !!ordered,\n reference:\n isTopLevel && ordered\n ? ctx.numbering.create()\n : ctx.list?.reference || ORDERED_LIST_REF,\n };\n return children.flatMap((item) => {\n return buildListItem(item, {\n ...ctx,\n list,\n });\n });\n};\n\nconst buildListItem = (\n { children, checked, spread: _spread }: mdast.ListItem,\n ctx: Context,\n): DocxContent[] => {\n return convertNodes(children, {\n ...ctx,\n ...(ctx.list && { list: { ...ctx.list, checked: checked ?? undefined } }),\n });\n};\n\nconst buildTable = (\n { children, align }: mdast.Table,\n ctx: Context,\n): DocxContent => {\n const cellAligns:\n | (typeof AlignmentType)[keyof typeof AlignmentType][]\n | undefined = align?.map((a) => {\n switch (a) {\n case \"left\":\n return AlignmentType.LEFT;\n case \"right\":\n return AlignmentType.RIGHT;\n case \"center\":\n return AlignmentType.CENTER;\n default:\n return AlignmentType.LEFT;\n }\n });\n\n return new 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: (typeof AlignmentType)[keyof typeof AlignmentType][] | undefined,\n): TableRow => {\n return new 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: (typeof AlignmentType)[keyof typeof AlignmentType] | undefined,\n): TableCell => {\n const nodes = convertNodes(children, ctx);\n return new TableCell({\n children: [\n new Paragraph({\n alignment: align,\n children: nodes,\n }),\n ],\n });\n};\n\nconst buildHtml = ({ value }: mdast.HTML): DocxContent => {\n // FIXME: transform to text for now\n return new Paragraph({\n children: [buildText(value, {})],\n });\n};\n\nconst buildCode = ({\n value,\n lang: _lang,\n meta: _meta,\n}: mdast.Code): DocxContent => {\n // FIXME: transform to text for now\n return new Paragraph({\n children: [buildText(value, {})],\n });\n};\n\nconst buildText = (text: string, deco: Decoration): DocxContent => {\n return new TextRun({\n text,\n bold: deco.strong,\n italics: deco.emphasis,\n strike: deco.delete,\n });\n};\n\nconst buildBreak = (_: mdast.Break): DocxContent => {\n return new TextRun({ text: \"\", break: 1 });\n};\n\nconst buildLink = (\n { children, url }: Pick<mdast.Link, \"children\" | \"url\">,\n ctx: Context,\n): DocxContent => {\n const nodes = convertNodes(children, ctx);\n return new ExternalHyperlink({\n link: url,\n children: nodes,\n });\n};\n\nconst buildLinkReference = (\n { children, identifier }: mdast.LinkReference,\n ctx: Context,\n): DocxContent[] => {\n const def = ctx.definition(identifier);\n if (def == null) {\n return convertNodes(children, ctx);\n }\n return [buildLink({ children, url: def.url }, ctx)];\n};\n\nconst registerFootnoteDefinition = (\n { children, identifier }: mdast.FootnoteDefinition,\n ctx: Context,\n): void => {\n const definition: FootnoteDefinition = {\n children: children.map((node) => {\n // Convert each node and extract the first result as a paragraph\n const nodes = convertNodes([node], ctx);\n if (nodes[0] instanceof Paragraph) {\n return nodes[0] as Paragraph;\n }\n // For non-paragraph content, wrap in a paragraph\n return new Paragraph({ children: nodes });\n }),\n };\n ctx.footnote.def(identifier, definition);\n};\n\nconst buildFootnoteReference = (\n { identifier }: mdast.FootnoteReference,\n ctx: Context,\n): DocxContent => {\n return new FootnoteReferenceRun(ctx.footnote.ref(identifier));\n};\n","import type { Plugin } from \"unified\";\nimport type { Root } from \"mdast\";\nimport { mdastToDocx, type DocxOptions } from \"./mdast-to-docx\";\n\nexport type { DocxOptions };\n\ndeclare module \"unified\" {\n interface CompileResultMap {\n docx: Promise<ArrayBuffer>;\n }\n}\n\nconst plugin: Plugin<[DocxOptions?], Root, Promise<ArrayBuffer>> = function (\n opts = {},\n) {\n this.compiler = (node) => {\n return mdastToDocx(node as Root, opts);\n };\n};\nexport default plugin;\n"],"names":["LevelFormat","AlignmentType","convertInchesToTwip","definitions","Document","Packer","CheckBox","Paragraph","HeadingLevel","Table","TableRow","TableCell","TextRun","ExternalHyperlink","FootnoteReferenceRun"],"mappings":";;;;;AAAA;;AAEG;AACG,SAAU,SAAS,CAAC,IAAS,EAAE,OAAe,EAAA;AAClD,IAAW,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC;AACrC;AAEA,MAAM,aAAa,GAAmC,EAAE;AAExD;;AAEG;SACa,QAAQ,CAAC,OAAe,EAAE,OAAgB,KAAK,EAAA;IAC7D,IAAI,CAAC,IAAI,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,EAAE;AACpC,QAAA,aAAa,CAAC,OAAO,CAAC,GAAG,IAAI;AAC7B,QAAA,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC;IACvB;AACF;;ACOA,MAAM,gBAAgB,GAAG,SAAS;AAClC,MAAM,MAAM,GAAG,GAAG;AAClB,MAAM,kBAAkB,GAAqB;AAC3C,IAAA;AACE,QAAA,KAAK,EAAE,CAAC;QACR,MAAM,EAAEA,gBAAW,CAAC,OAAO;AAC3B,QAAA,IAAI,EAAE,KAAK;QACX,SAAS,EAAEC,kBAAa,CAAC,KAAK;AAC/B,KAAA;AACD,IAAA;AACE,QAAA,KAAK,EAAE,CAAC;QACR,MAAM,EAAED,gBAAW,CAAC,OAAO;AAC3B,QAAA,IAAI,EAAE,KAAK;QACX,SAAS,EAAEC,kBAAa,CAAC,KAAK;AAC9B,QAAA,KAAK,EAAE;AACL,YAAA,SAAS,EAAE;gBACT,MAAM,EAAE,EAAE,KAAK,EAAEC,wBAAmB,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE;AACnD,aAAA;AACF,SAAA;AACF,KAAA;AACD,IAAA;AACE,QAAA,KAAK,EAAE,CAAC;QACR,MAAM,EAAEF,gBAAW,CAAC,OAAO;AAC3B,QAAA,IAAI,EAAE,KAAK;QACX,SAAS,EAAEC,kBAAa,CAAC,KAAK;AAC9B,QAAA,KAAK,EAAE;AACL,YAAA,SAAS,EAAE;gBACT,MAAM,EAAE,EAAE,KAAK,EAAEC,wBAAmB,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE;AACnD,aAAA;AACF,SAAA;AACF,KAAA;AACD,IAAA;AACE,QAAA,KAAK,EAAE,CAAC;QACR,MAAM,EAAEF,gBAAW,CAAC,OAAO;AAC3B,QAAA,IAAI,EAAE,KAAK;QACX,SAAS,EAAEC,kBAAa,CAAC,KAAK;AAC9B,QAAA,KAAK,EAAE;AACL,YAAA,SAAS,EAAE;gBACT,MAAM,EAAE,EAAE,KAAK,EAAEC,wBAAmB,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE;AACnD,aAAA;AACF,SAAA;AACF,KAAA;AACD,IAAA;AACE,QAAA,KAAK,EAAE,CAAC;QACR,MAAM,EAAEF,gBAAW,CAAC,OAAO;AAC3B,QAAA,IAAI,EAAE,KAAK;QACX,SAAS,EAAEC,kBAAa,CAAC,KAAK;AAC9B,QAAA,KAAK,EAAE;AACL,YAAA,SAAS,EAAE;gBACT,MAAM,EAAE,EAAE,KAAK,EAAEC,wBAAmB,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE;AACnD,aAAA;AACF,SAAA;AACF,KAAA;AACD,IAAA;AACE,QAAA,KAAK,EAAE,CAAC;QACR,MAAM,EAAEF,gBAAW,CAAC,OAAO;AAC3B,QAAA,IAAI,EAAE,KAAK;QACX,SAAS,EAAEC,kBAAa,CAAC,KAAK;AAC9B,QAAA,KAAK,EAAE;AACL,YAAA,SAAS,EAAE;gBACT,MAAM,EAAE,EAAE,KAAK,EAAEC,wBAAmB,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE;AACnD,aAAA;AACF,SAAA;AACF,KAAA;CACF;AAsBD,MAAM,sBAAsB,GAAG,MAAuB;AACpD,IAAA,MAAM,cAAc,GAAG,IAAI,GAAG,EAAkB;AAChD,IAAA,MAAM,IAAI,GAAG,IAAI,GAAG,EAA8B;AAElD,IAAA,MAAM,KAAK,GAAG,CAAC,EAAU,KAAY;QACnC,IAAI,UAAU,GAAG,cAAc,CAAC,GAAG,CAAC,EAAE,CAAC;AACvC,QAAA,IAAI,UAAU,IAAI,IAAI,EAAE;AACtB,YAAA,cAAc,CAAC,GAAG,CAAC,EAAE,GAAG,UAAU,GAAG,cAAc,CAAC,IAAI,GAAG,CAAC,EAAE;QAChE;AACA,QAAA,OAAO,UAAU;AACnB,IAAA,CAAC;IAED,OAAO;AACL,QAAA,GAAG,EAAE,CAAC,EAAE,KAAI;AACV,YAAA,OAAO,KAAK,CAAC,EAAE,CAAC;QAClB,CAAC;AACD,QAAA,GAAG,EAAE,CAAC,EAAE,EAAE,GAAG,KAAI;AACf,YAAA,MAAM,UAAU,GAAG,KAAK,CAAC,EAAE,CAAC;AAC5B,YAAA,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,GAAG,CAAC;QAC3B,CAAC;QACD,SAAS,EAAE,MAAK;AACd,YAAA,OAAO,IAAI,CAAC,OAAO,EAAE,CAAC,MAAM,CAC1B,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,KAAI;AAClB,gBAAA,GAAG,CAAC,GAAG,CAAC,GAAG,GAAG;AACd,gBAAA,OAAO,GAAG;YACZ,CAAC,EACD,EAEC,CACF;QACH,CAAC;KACF;AACH,CAAC;AAOD,MAAM,uBAAuB,GAAG,MAAwB;IACtD,IAAI,OAAO,GAAG,CAAC;IAEf,OAAO;QACL,MAAM,EAAE,MAAK;AACX,YAAA,OAAO,GAAG,gBAAgB,CAAA,CAAA,EAAI,OAAO,EAAE,EAAE;QAC3C,CAAC;QACD,MAAM,EAAE,MAAK;AACX,YAAA,OAAO,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,MAAM;AAChD,gBAAA,SAAS,EAAE,CAAA,EAAG,gBAAgB,CAAA,CAAA,EAAI,CAAC,CAAA,CAAE;AACrC,gBAAA,MAAM,EAAE,kBAAkB;AAC3B,aAAA,CAAC,CAAC;QACL,CAAC;KACF;AACH,CAAC;AA8BM,MAAM,WAAW,GAAG,OACzB,IAAgB,EAChB,EACE,OAAO,GAAG,EAAE,EACZ,KAAK,EACL,OAAO,EACP,OAAO,EACP,QAAQ,EACR,WAAW,EACX,cAAc,EACd,QAAQ,EACR,MAAM,EACN,UAAU,GACE,KACU;AACxB,IAAA,MAAM,UAAU,GAAGC,gCAAW,CAAC,IAAI,CAAC;IAEpC,MAAM,SAAS,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,UAAU,EAAE;AAC5C,IAAA,MAAM,QAAQ,GAAG,sBAAsB,EAAE;AACzC,IAAA,MAAM,SAAS,GAAG,uBAAuB,EAAE;AAC3C,IAAA,MAAM,KAAK,GAAG,YAAY,CAAC,IAAI,CAAC,QAAQ,EAAE;AACxC,QAAA,SAAS,EAAE,CACT,MAAM,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EACnD,WAAW,CAAC,CAAC,GAAG,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;AAC9C,QAAA,IAAI,EAAE,EAAE;AACR,QAAA,MAAM,EAAE,CAAC;AACT,QAAA,UAAU,EAAE,UAAU;QACtB,QAAQ;QACR,SAAS;AACV,KAAA,CAAC;AACF,IAAA,MAAM,GAAG,GAAG,IAAIC,aAAQ,CAAC;QACvB,KAAK;QACL,OAAO;QACP,OAAO;QACP,QAAQ;QACR,WAAW;QACX,cAAc;QACd,QAAQ;QACR,MAAM;QACN,UAAU;AACV,QAAA,SAAS,EAAE,QAAQ,CAAC,SAAS,EAAE;AAC/B,QAAA,QAAQ,EAAE,CAAC,EAAE,QAAQ,EAAE,KAAoB,EAAE,CAAC;AAC9C,QAAA,SAAS,EAAE;AACT,YAAA,MAAM,EAAE,SAAS,CAAC,MAAM,EAAE;AAC3B,SAAA;AACF,KAAA,CAAC;AAEF,IAAA,OAAOC,WAAM,CAAC,aAAa,CAAC,GAAG,CAAC;AAClC,CAAC;AAED,MAAM,YAAY,GAAG,CACnB,KAA0B,EAC1B,GAAY,KACK;;IACjB,MAAM,OAAO,GAAkB,EAAE;AACjC,IAAA,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE;QACxB,MAAM,WAAW,GAAG,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,GAAG,CAAC,SAAS,EAAC,IAAI,CAAC,IAAI,CAAC,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAA,IAAA,CAAA,EAAA,EAAG,IAAW,EAAE,CAAC,QAAQ,KACnE,YAAY,CAAC,QAAQ,EAAE,GAAG,CAAC,CAC5B;AACD,QAAA,IAAI,WAAW,IAAI,IAAI,EAAE;AACvB,YAAA,IAAI,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE;AAC9B,gBAAA,OAAO,CAAC,IAAI,CAAC,GAAG,WAAW,CAAC;YAC9B;iBAAO;AACL,gBAAA,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC;YAC3B;YACA;QACF;AAEA,QAAA,QAAQ,IAAI,CAAC,IAAI;YACf,KAAK,WAAW,EAAE;gBAChB,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;gBACvC;YACF;YACA,KAAK,SAAS,EAAE;gBACd,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;gBACrC;YACF;AACA,YAAA,KAAK,eAAe;gBAClB,OAAO,CAAC,IAAI,CAAC,kBAAkB,CAAK,CAAC,CAAC;gBACtC;YACF,KAAK,YAAY,EAAE;gBACjB,OAAO,CAAC,IAAI,CAAC,GAAG,eAAe,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;gBAC3C;YACF;YACA,KAAK,MAAM,EAAE;gBACX,OAAO,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;gBACrC;YACF;AACA,YAAA,KAAK,UAAU;AACb,gBAAA,SAAS,CAAC,KAAK,EAAE,aAAa,CAAC;AACjC,YAAA,KAAK,OAAO;gBACV,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;gBACnC;AACF,YAAA,KAAK,UAAU;AACb,gBAAA,SAAS,CAAC,KAAK,EAAE,aAAa,CAAC;AACjC,YAAA,KAAK,WAAW;AACd,gBAAA,SAAS,CAAC,KAAK,EAAE,aAAa,CAAC;AACjC,YAAA,KAAK,MAAM;gBACT,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;gBAC7B;AACF,YAAA,KAAK,MAAM;gBACT,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;gBAC7B;;;;;;;AAOF,YAAA,KAAK,YAAY;;gBAEf;YACF,KAAK,oBAAoB,EAAE;AACzB,gBAAA,0BAA0B,CAAC,IAAI,EAAE,GAAG,CAAC;gBACrC;YACF;AACA,YAAA,KAAK,MAAM;AACT,gBAAA,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;gBAC7C;AACF,YAAA,KAAK,UAAU;AACf,YAAA,KAAK,QAAQ;YACb,KAAK,QAAQ,EAAE;AACb,gBAAA,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,IAAI;AAC/B,gBAAA,MAAM,KAAK,GAAG,YAAY,CAAC,QAAQ,EAAE;AACnC,oBAAA,GAAG,GAAG;AACN,oBAAA,IAAI,EAAE,EAAE,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC,IAAI,GAAG,IAAI,EAAE;AACpC,iBAAA,CAAC;AACF,gBAAA,OAAO,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC;gBACtB;YACF;AACA,YAAA,KAAK,YAAY;;AAEf,gBAAA,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;gBAC7C;AACF,YAAA,KAAK,OAAO;gBACV,OAAO,CAAC,IAAI,CAAC,UAAU,CAAK,CAAC,CAAC;gBAC9B;YACF,KAAK,MAAM,EAAE;gBACX,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;gBAClC;YACF;AACA,YAAA,KAAK,eAAe;gBAClB,OAAO,CAAC,IAAI,CAAC,GAAG,kBAAkB,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;gBAC9C;AACF,YAAA,KAAK,OAAO;YACZ,KAAK,gBAAgB,EAAE;AACrB,gBAAA,QAAQ,CACN,CAAA,EAAG,IAAI,CAAC,IAAI,CAAA,sEAAA,CAAwE,CACrF;gBACD;YACF;;;;;AAKA,YAAA,KAAK,mBAAmB;gBACtB,OAAO,CAAC,IAAI,CAAC,sBAAsB,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;gBAC/C;AACF,YAAA,KAAK,MAAM;AACX,YAAA,KAAK,YAAY;AACf,gBAAA,QAAQ,CACN,CAAA,EAAG,IAAI,CAAC,IAAI,CAAA,qEAAA,CAAuE,CACpF;gBACD;AACF,YAAA;AACE,gBAAA,QAAQ,CAAC,CAAA,EAAG,IAAI,CAAC,IAAI,CAAA,kCAAA,CAAoC,CAAC;gBAC1D;;IAEN;AACA,IAAA,OAAO,OAAO;AAChB,CAAC;AAED,MAAM,cAAc,GAAG,CACrB,EAAE,QAAQ,EAAmB,EAC7B,GAAY,KACG;AACf,IAAA,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI;IACrB,MAAM,KAAK,GAAG,YAAY,CAAC,QAAQ,EAAE,GAAG,CAAC;IAEzC,IAAI,IAAI,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,EAAE;AAChC,QAAA,KAAK,CAAC,OAAO,CACX,IAAIC,aAAQ,CAAC;YACX,OAAO,EAAE,IAAI,CAAC,OAAO;AACrB,YAAA,YAAY,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE;AAC/B,YAAA,cAAc,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE;AAClC,SAAA,CAAC,CACH;IACH;IACA,OAAO,IAAIC,cAAS,CAAC;AACnB,QAAA,QAAQ,EAAE,KAAK;AACf,QAAA,MAAM,EACJ,GAAG,CAAC,MAAM,GAAG;AACX,cAAE;gBACE,KAAK,EAAEL,wBAAmB,CAAC,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC;AAChD;AACH,cAAE,SAAS;AACf,QAAA,IAAI,IAAI;aACL,IAAI,CAAC;AACJ,kBAAE;AACE,oBAAA,SAAS,EAAE;wBACT,SAAS,EAAE,IAAI,CAAC,SAAS;wBACzB,KAAK,EAAE,IAAI,CAAC,KAAK;AAClB,qBAAA;AACF;AACH,kBAAE;AACE,oBAAA,MAAM,EAAE;wBACN,KAAK,EAAE,IAAI,CAAC,KAAK;AAClB,qBAAA;AACF,iBAAA,CAAC,CAAC;AACV,KAAA,CAAC;AACJ,CAAC;AAED,MAAM,YAAY,GAAG,CACnB,EAAE,QAAQ,EAAE,KAAK,EAAiB,EAClC,GAAY,KACG;AACf,IAAA,IAAI,YAA8D;IAClE,QAAQ,KAAK;AACX,QAAA,KAAK,CAAC;AACJ,YAAA,YAAY,GAAGM,iBAAY,CAAC,KAAK;YACjC;AACF,QAAA,KAAK,CAAC;AACJ,YAAA,YAAY,GAAGA,iBAAY,CAAC,SAAS;YACrC;AACF,QAAA,KAAK,CAAC;AACJ,YAAA,YAAY,GAAGA,iBAAY,CAAC,SAAS;YACrC;AACF,QAAA,KAAK,CAAC;AACJ,YAAA,YAAY,GAAGA,iBAAY,CAAC,SAAS;YACrC;AACF,QAAA,KAAK,CAAC;AACJ,YAAA,YAAY,GAAGA,iBAAY,CAAC,SAAS;YACrC;AACF,QAAA,KAAK,CAAC;AACJ,YAAA,YAAY,GAAGA,iBAAY,CAAC,SAAS;YACrC;;IAEJ,MAAM,KAAK,GAAG,YAAY,CAAC,QAAQ,EAAE,GAAG,CAAC;IACzC,OAAO,IAAID,cAAS,CAAC;AACnB,QAAA,OAAO,EAAE,YAAY;AACrB,QAAA,QAAQ,EAAE,KAAK;AAChB,KAAA,CAAC;AACJ,CAAC;AAED,MAAM,kBAAkB,GAAG,CAAC,CAAsB,KAAiB;IACjE,OAAO,IAAIA,cAAS,CAAC;AACnB,QAAA,aAAa,EAAE,IAAI;AACpB,KAAA,CAAC;AACJ,CAAC;AAED,MAAM,eAAe,GAAG,CACtB,EAAE,QAAQ,EAAoB,EAC9B,GAAY,KACK;IACjB,OAAO,YAAY,CAAC,QAAQ,EAAE;AAC5B,QAAA,GAAG,GAAG;AACN,QAAA,MAAM,EAAE,GAAG,CAAC,MAAM,GAAG,CAAC;AACvB,KAAA,CAAC;AACJ,CAAC;AAED,MAAM,SAAS,GAAG,CAChB,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAc,EACjE,GAAY,KACK;;AACjB,IAAA,MAAM,UAAU,GAAG,CAAC,GAAG,CAAC,IAAI;AAC5B,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;QAClB,SAAS,EACP,UAAU,IAAI;AACZ,cAAE,GAAG,CAAC,SAAS,CAAC,MAAM;cACpB,CAAA,CAAA,EAAA,GAAA,GAAG,CAAC,IAAI,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAE,SAAS,KAAI,gBAAgB;KAC9C;AACD,IAAA,OAAO,QAAQ,CAAC,OAAO,CAAC,CAAC,IAAI,KAAI;QAC/B,OAAO,aAAa,CAAC,IAAI,EAAE;AACzB,YAAA,GAAG,GAAG;YACN,IAAI;AACL,SAAA,CAAC;AACJ,IAAA,CAAC,CAAC;AACJ,CAAC;AAED,MAAM,aAAa,GAAG,CACpB,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAkB,EACtD,GAAY,KACK;IACjB,OAAO,YAAY,CAAC,QAAQ,EAAE;AAC5B,QAAA,GAAG,GAAG;QACN,IAAI,GAAG,CAAC,IAAI,IAAI,EAAE,IAAI,EAAE,EAAE,GAAG,GAAG,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,KAAA,IAAA,IAAP,OAAO,KAAA,MAAA,GAAP,OAAO,GAAI,SAAS,EAAE,EAAE,CAAC;AAC1E,KAAA,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,GAAG,CACjB,EAAE,QAAQ,EAAE,KAAK,EAAe,EAChC,GAAY,KACG;AACf,IAAA,MAAM,UAAU,GAEA,KAAK,KAAA,IAAA,IAAL,KAAK,KAAA,MAAA,GAAA,MAAA,GAAL,KAAK,CAAE,GAAG,CAAC,CAAC,CAAC,KAAI;QAC/B,QAAQ,CAAC;AACP,YAAA,KAAK,MAAM;gBACT,OAAON,kBAAa,CAAC,IAAI;AAC3B,YAAA,KAAK,OAAO;gBACV,OAAOA,kBAAa,CAAC,KAAK;AAC5B,YAAA,KAAK,QAAQ;gBACX,OAAOA,kBAAa,CAAC,MAAM;AAC7B,YAAA;gBACE,OAAOA,kBAAa,CAAC,IAAI;;AAE/B,IAAA,CAAC,CAAC;IAEF,OAAO,IAAIQ,UAAK,CAAC;QACf,IAAI,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,KAAI;YACvB,OAAO,aAAa,CAAC,CAAC,EAAE,GAAG,EAAE,UAAU,CAAC;AAC1C,QAAA,CAAC,CAAC;AACH,KAAA,CAAC;AACJ,CAAC;AAED,MAAM,aAAa,GAAG,CACpB,EAAE,QAAQ,EAAkB,EAC5B,GAAY,EACZ,UAA4E,KAChE;IACZ,OAAO,IAAIC,aAAQ,CAAC;QAClB,QAAQ,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,KAAI;AAC9B,YAAA,OAAO,cAAc,CAAC,CAAC,EAAE,GAAG,EAAE,UAAU,KAAA,IAAA,IAAV,UAAU,uBAAV,UAAU,CAAG,CAAC,CAAC,CAAC;AAChD,QAAA,CAAC,CAAC;AACH,KAAA,CAAC;AACJ,CAAC;AAED,MAAM,cAAc,GAAG,CACrB,EAAE,QAAQ,EAAmB,EAC7B,GAAY,EACZ,KAAqE,KACxD;IACb,MAAM,KAAK,GAAG,YAAY,CAAC,QAAQ,EAAE,GAAG,CAAC;IACzC,OAAO,IAAIC,cAAS,CAAC;AACnB,QAAA,QAAQ,EAAE;AACR,YAAA,IAAIJ,cAAS,CAAC;AACZ,gBAAA,SAAS,EAAE,KAAK;AAChB,gBAAA,QAAQ,EAAE,KAAK;aAChB,CAAC;AACH,SAAA;AACF,KAAA,CAAC;AACJ,CAAC;AAED,MAAM,SAAS,GAAG,CAAC,EAAE,KAAK,EAAc,KAAiB;;IAEvD,OAAO,IAAIA,cAAS,CAAC;QACnB,QAAQ,EAAE,CAAC,SAAS,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;AACjC,KAAA,CAAC;AACJ,CAAC;AAED,MAAM,SAAS,GAAG,CAAC,EACjB,KAAK,EACL,IAAI,EAAE,KAAK,EACX,IAAI,EAAE,KAAK,GACA,KAAiB;;IAE5B,OAAO,IAAIA,cAAS,CAAC;QACnB,QAAQ,EAAE,CAAC,SAAS,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;AACjC,KAAA,CAAC;AACJ,CAAC;AAED,MAAM,SAAS,GAAG,CAAC,IAAY,EAAE,IAAgB,KAAiB;IAChE,OAAO,IAAIK,YAAO,CAAC;QACjB,IAAI;QACJ,IAAI,EAAE,IAAI,CAAC,MAAM;QACjB,OAAO,EAAE,IAAI,CAAC,QAAQ;QACtB,MAAM,EAAE,IAAI,CAAC,MAAM;AACpB,KAAA,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,GAAG,CAAC,CAAc,KAAiB;AACjD,IAAA,OAAO,IAAIA,YAAO,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;AAC5C,CAAC;AAED,MAAM,SAAS,GAAG,CAChB,EAAE,QAAQ,EAAE,GAAG,EAAwC,EACvD,GAAY,KACG;IACf,MAAM,KAAK,GAAG,YAAY,CAAC,QAAQ,EAAE,GAAG,CAAC;IACzC,OAAO,IAAIC,sBAAiB,CAAC;AAC3B,QAAA,IAAI,EAAE,GAAG;AACT,QAAA,QAAQ,EAAE,KAAK;AAChB,KAAA,CAAC;AACJ,CAAC;AAED,MAAM,kBAAkB,GAAG,CACzB,EAAE,QAAQ,EAAE,UAAU,EAAuB,EAC7C,GAAY,KACK;IACjB,MAAM,GAAG,GAAG,GAAG,CAAC,UAAU,CAAC,UAAU,CAAC;AACtC,IAAA,IAAI,GAAG,IAAI,IAAI,EAAE;AACf,QAAA,OAAO,YAAY,CAAC,QAAQ,EAAE,GAAG,CAAC;IACpC;AACA,IAAA,OAAO,CAAC,SAAS,CAAC,EAAE,QAAQ,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,EAAE,GAAG,CAAC,CAAC;AACrD,CAAC;AAED,MAAM,0BAA0B,GAAG,CACjC,EAAE,QAAQ,EAAE,UAAU,EAA4B,EAClD,GAAY,KACJ;AACR,IAAA,MAAM,UAAU,GAAuB;QACrC,QAAQ,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,KAAI;;YAE9B,MAAM,KAAK,GAAG,YAAY,CAAC,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC;AACvC,YAAA,IAAI,KAAK,CAAC,CAAC,CAAC,YAAYN,cAAS,EAAE;AACjC,gBAAA,OAAO,KAAK,CAAC,CAAC,CAAc;YAC9B;;YAEA,OAAO,IAAIA,cAAS,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;AAC3C,QAAA,CAAC,CAAC;KACH;IACD,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAU,EAAE,UAAU,CAAC;AAC1C,CAAC;AAED,MAAM,sBAAsB,GAAG,CAC7B,EAAE,UAAU,EAA2B,EACvC,GAAY,KACG;AACf,IAAA,OAAO,IAAIO,yBAAoB,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;AAC/D,CAAC;;AC1lBD,MAAM,MAAM,GAAuD,UACjE,IAAI,GAAG,EAAE,EAAA;AAET,IAAA,IAAI,CAAC,QAAQ,GAAG,CAAC,IAAI,KAAI;AACvB,QAAA,OAAO,WAAW,CAAC,IAAY,EAAE,IAAI,CAAC;AACxC,IAAA,CAAC;AACH;;;;"}
1
+ {"version":3,"file":"index.cjs","sources":["../src/src/utils.ts","../src/src/mdast-to-docx.ts","../src/src/plugin.ts"],"sourcesContent":["/**\n * @internal\n */\nexport function invariant(cond: any, message: string): asserts cond {\n if (!cond) throw new Error(message);\n}\n\nconst alreadyWarned: { [message: string]: boolean } = {};\n\n/**\n * @internal\n */\nexport function warnOnce(message: string, cond: boolean = false): void {\n if (!cond && !alreadyWarned[message]) {\n alreadyWarned[message] = true;\n console.warn(message);\n }\n}\n","import {\n convertInchesToTwip,\n Packer,\n Document,\n Paragraph,\n Table,\n TableRow,\n TableCell,\n TextRun,\n ExternalHyperlink,\n HeadingLevel,\n LevelFormat,\n AlignmentType,\n type ILevelsOptions,\n FootnoteReferenceRun,\n CheckBox,\n type IPropertiesOptions,\n} from \"docx\";\nimport type * as mdast from \"./mdast\";\nimport { invariant, warnOnce } from \"./utils\";\nimport { definitions, type GetDefinition } from \"mdast-util-definitions\";\nimport type {\n DocxChild,\n DocxContent,\n NodeOverrides,\n RemarkDocxPlugin,\n} from \"./types\";\n\nconst ORDERED_LIST_REF = \"ordered\";\nconst INDENT = 0.5;\n\ntype Decoration = Readonly<{\n [key in (mdast.Emphasis | mdast.Strong | mdast.Delete)[\"type\"]]?: true;\n}>;\n\ntype ListInfo = Readonly<{\n level: number;\n ordered: boolean;\n reference: string;\n checked?: boolean;\n}>;\n\ntype FootnoteDefinition = Readonly<{ children: Paragraph[] }>;\ntype FootnoteRegistry = {\n ref: (id: string) => number;\n def: (id: string, def: FootnoteDefinition) => void;\n toConfig: () => {\n [key: string]: FootnoteDefinition;\n };\n};\n\nconst createFootnoteRegistry = (): FootnoteRegistry => {\n const idToInternalId = new Map<string, number>();\n const defs = new Map<number, FootnoteDefinition>();\n\n const getId = (id: string): number => {\n let internalId = idToInternalId.get(id);\n if (internalId == null) {\n idToInternalId.set(id, (internalId = idToInternalId.size + 1));\n }\n return internalId;\n };\n\n return {\n ref: (id) => {\n return getId(id);\n },\n def: (id, def) => {\n const internalId = getId(id);\n defs.set(internalId, def);\n },\n toConfig: () => {\n return defs.entries().reduce(\n (acc, [key, def]) => {\n acc[key] = def;\n return acc;\n },\n {} as {\n [key: string]: FootnoteDefinition;\n },\n );\n },\n };\n};\n\ntype NumberingRegistry = {\n create: () => string;\n toConfig: () => Array<{ reference: string; levels: ILevelsOptions[] }>;\n};\n\nconst createNumberingRegistry = (): NumberingRegistry => {\n let counter = 1;\n\n const DEFAULT_NUMBERINGS: ILevelsOptions[] = [\n {\n level: 0,\n format: LevelFormat.DECIMAL,\n text: \"%1.\",\n alignment: AlignmentType.START,\n },\n {\n level: 1,\n format: LevelFormat.DECIMAL,\n text: \"%2.\",\n alignment: AlignmentType.START,\n style: {\n paragraph: {\n indent: { start: convertInchesToTwip(INDENT * 1) },\n },\n },\n },\n {\n level: 2,\n format: LevelFormat.DECIMAL,\n text: \"%3.\",\n alignment: AlignmentType.START,\n style: {\n paragraph: {\n indent: { start: convertInchesToTwip(INDENT * 2) },\n },\n },\n },\n {\n level: 3,\n format: LevelFormat.DECIMAL,\n text: \"%4.\",\n alignment: AlignmentType.START,\n style: {\n paragraph: {\n indent: { start: convertInchesToTwip(INDENT * 3) },\n },\n },\n },\n {\n level: 4,\n format: LevelFormat.DECIMAL,\n text: \"%5.\",\n alignment: AlignmentType.START,\n style: {\n paragraph: {\n indent: { start: convertInchesToTwip(INDENT * 4) },\n },\n },\n },\n {\n level: 5,\n format: LevelFormat.DECIMAL,\n text: \"%6.\",\n alignment: AlignmentType.START,\n style: {\n paragraph: {\n indent: { start: convertInchesToTwip(INDENT * 5) },\n },\n },\n },\n ];\n\n return {\n create: () => {\n return `${ORDERED_LIST_REF}-${counter++}`;\n },\n toConfig: () => {\n return Array.from({ length: counter }, (_, i) => ({\n reference: `${ORDERED_LIST_REF}-${i}`,\n levels: DEFAULT_NUMBERINGS,\n }));\n },\n };\n};\n\ntype Context = Readonly<{\n overrides: NodeOverrides;\n deco: Decoration;\n indent: number;\n list?: ListInfo;\n definition: GetDefinition;\n footnote: FootnoteRegistry;\n numbering: NumberingRegistry;\n}>;\n\nexport interface DocxOptions extends Pick<\n IPropertiesOptions,\n | \"title\"\n | \"subject\"\n | \"creator\"\n | \"keywords\"\n | \"description\"\n | \"lastModifiedBy\"\n | \"revision\"\n | \"styles\"\n | \"background\"\n> {\n /**\n * Plugins to customize how mdast nodes are transformed.\n */\n plugins?: RemarkDocxPlugin[];\n}\n\nexport const mdastToDocx = async (\n node: mdast.Root,\n {\n plugins = [],\n title,\n subject,\n creator,\n keywords,\n description,\n lastModifiedBy,\n revision,\n styles,\n background,\n }: DocxOptions,\n): Promise<ArrayBuffer> => {\n const definition = definitions(node);\n\n const footnote = createFootnoteRegistry();\n const numbering = createNumberingRegistry();\n\n const pluginCtx = { root: node, definition };\n const nodes = convertNodes(node.children, {\n overrides: (\n await Promise.all(plugins.map((p) => p(pluginCtx)))\n ).reduceRight((acc, p) => ({ acc, ...p }), {}),\n deco: {},\n indent: 0,\n definition: definition,\n footnote,\n numbering,\n });\n\n const doc = new Document({\n title,\n subject,\n creator,\n keywords,\n description,\n lastModifiedBy,\n revision,\n styles,\n background,\n footnotes: footnote.toConfig(),\n sections: [{ children: nodes as DocxChild[] }],\n numbering: {\n config: numbering.toConfig(),\n },\n });\n\n return Packer.toArrayBuffer(doc);\n};\n\nconst convertNodes = (\n nodes: mdast.RootContent[],\n ctx: Context,\n): DocxContent[] => {\n const results: DocxContent[] = [];\n for (const node of nodes) {\n const customNodes = ctx.overrides[node.type]?.(node as any, (children) =>\n convertNodes(children, ctx),\n );\n if (customNodes != null) {\n if (Array.isArray(customNodes)) {\n results.push(...customNodes);\n } else {\n results.push(customNodes);\n }\n continue;\n }\n\n switch (node.type) {\n case \"paragraph\": {\n results.push(buildParagraph(node, ctx));\n break;\n }\n case \"heading\": {\n results.push(buildHeading(node, ctx));\n break;\n }\n case \"thematicBreak\":\n results.push(buildThematicBreak(node));\n break;\n case \"blockquote\": {\n results.push(...buildBlockquote(node, ctx));\n break;\n }\n case \"list\": {\n results.push(...buildList(node, ctx));\n break;\n }\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 // // unimplemented\n // break;\n // case \"toml\":\n // // unimplemented\n // break;\n case \"definition\":\n // noop\n break;\n case \"footnoteDefinition\": {\n registerFootnoteDefinition(node, ctx);\n break;\n }\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 const nodes = convertNodes(children, {\n ...ctx,\n deco: { ...ctx.deco, [type]: true },\n });\n results.push(...nodes);\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 }\n case \"linkReference\":\n results.push(...buildLinkReference(node, ctx));\n break;\n case \"image\":\n case \"imageReference\": {\n warnOnce(\n `${node.type} node is not rendered since remark-docx/plugins/image is not provided.`,\n );\n break;\n }\n // case \"footnote\": {\n // // inline footnote was removed in mdast v5\n // break;\n // }\n case \"footnoteReference\":\n results.push(buildFootnoteReference(node, ctx));\n break;\n case \"math\":\n case \"inlineMath\":\n warnOnce(\n `${node.type} node is not rendered since remark-docx/plugins/math is not provided.`,\n );\n break;\n default:\n warnOnce(`${node.type} node is not officially supported.`);\n break;\n }\n }\n return results;\n};\n\nconst buildParagraph = (\n { children }: mdast.Paragraph,\n ctx: Context,\n): DocxContent => {\n const list = ctx.list;\n const nodes = convertNodes(children, ctx);\n\n if (list && list.checked != null) {\n nodes.unshift(\n new CheckBox({\n checked: list.checked,\n checkedState: { value: \"2611\" },\n uncheckedState: { value: \"2610\" },\n }),\n );\n }\n return new Paragraph({\n children: nodes,\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: list.reference,\n level: list.level,\n },\n }\n : {\n bullet: {\n level: list.level,\n },\n })),\n });\n};\n\nconst buildHeading = (\n { children, depth }: mdast.Heading,\n ctx: Context,\n): DocxContent => {\n let headingLevel: (typeof HeadingLevel)[keyof typeof HeadingLevel];\n switch (depth) {\n case 1:\n headingLevel = HeadingLevel.TITLE;\n break;\n case 2:\n headingLevel = HeadingLevel.HEADING_1;\n break;\n case 3:\n headingLevel = HeadingLevel.HEADING_2;\n break;\n case 4:\n headingLevel = HeadingLevel.HEADING_3;\n break;\n case 5:\n headingLevel = HeadingLevel.HEADING_4;\n break;\n case 6:\n headingLevel = HeadingLevel.HEADING_5;\n break;\n }\n const nodes = convertNodes(children, ctx);\n return new Paragraph({\n heading: headingLevel,\n children: nodes,\n });\n};\n\nconst buildThematicBreak = (_: mdast.ThematicBreak): DocxContent => {\n return new Paragraph({\n thematicBreak: true,\n });\n};\n\nconst buildBlockquote = (\n { children }: mdast.Blockquote,\n ctx: Context,\n): DocxContent[] => {\n return convertNodes(children, {\n ...ctx,\n indent: ctx.indent + 1,\n });\n};\n\nconst buildList = (\n { children, ordered }: mdast.List,\n ctx: Context,\n): DocxContent[] => {\n const isTopLevel = !ctx.list;\n const list: ListInfo = {\n level: ctx.list ? ctx.list.level + 1 : 0,\n ordered: !!ordered,\n reference:\n isTopLevel && ordered\n ? ctx.numbering.create()\n : ctx.list?.reference || ORDERED_LIST_REF,\n };\n return children.flatMap((item) => {\n return buildListItem(item, {\n ...ctx,\n list,\n });\n });\n};\n\nconst buildListItem = (\n { children, checked }: mdast.ListItem,\n ctx: Context,\n): DocxContent[] => {\n return convertNodes(children, {\n ...ctx,\n ...(ctx.list && { list: { ...ctx.list, checked: checked ?? undefined } }),\n });\n};\n\nconst buildTable = (\n { children, align }: mdast.Table,\n ctx: Context,\n): DocxContent => {\n const cellAligns:\n | (typeof AlignmentType)[keyof typeof AlignmentType][]\n | undefined = align?.map((a) => {\n switch (a) {\n case \"left\":\n return AlignmentType.LEFT;\n case \"right\":\n return AlignmentType.RIGHT;\n case \"center\":\n return AlignmentType.CENTER;\n default:\n return AlignmentType.LEFT;\n }\n });\n\n return new Table({\n rows: children.map((r) => {\n return new TableRow({\n children: r.children.map((c, i) => {\n return new TableCell({\n children: [\n new Paragraph({\n alignment: cellAligns?.[i],\n children: convertNodes(c.children, ctx),\n }),\n ],\n });\n }),\n });\n }),\n });\n};\n\nconst buildHtml = ({ value }: mdast.HTML): DocxContent => {\n // FIXME: transform to text for now\n return new Paragraph({\n children: [buildText(value, {})],\n });\n};\n\nconst buildCode = ({\n value,\n lang: _lang,\n meta: _meta,\n}: mdast.Code): DocxContent => {\n // FIXME: transform to text for now\n return new Paragraph({\n children: [buildText(value, {})],\n });\n};\n\nconst buildText = (text: string, deco: Decoration): DocxContent => {\n return new TextRun({\n text,\n bold: deco.strong,\n italics: deco.emphasis,\n strike: deco.delete,\n });\n};\n\nconst buildBreak = (_: mdast.Break): DocxContent => {\n return new TextRun({ text: \"\", break: 1 });\n};\n\nconst buildLink = (\n { children, url }: Pick<mdast.Link, \"children\" | \"url\">,\n ctx: Context,\n): DocxContent => {\n const nodes = convertNodes(children, ctx);\n return new ExternalHyperlink({\n link: url,\n children: nodes,\n });\n};\n\nconst buildLinkReference = (\n { children, identifier }: mdast.LinkReference,\n ctx: Context,\n): DocxContent[] => {\n const def = ctx.definition(identifier);\n if (def == null) {\n return convertNodes(children, ctx);\n }\n return [buildLink({ children, url: def.url }, ctx)];\n};\n\nconst registerFootnoteDefinition = (\n { children, identifier }: mdast.FootnoteDefinition,\n ctx: Context,\n): void => {\n const definition: FootnoteDefinition = {\n children: children.map((node) => {\n // Convert each node and extract the first result as a paragraph\n const nodes = convertNodes([node], ctx);\n if (nodes[0] instanceof Paragraph) {\n return nodes[0] as Paragraph;\n }\n // For non-paragraph content, wrap in a paragraph\n return new Paragraph({ children: nodes });\n }),\n };\n ctx.footnote.def(identifier, definition);\n};\n\nconst buildFootnoteReference = (\n { identifier }: mdast.FootnoteReference,\n ctx: Context,\n): DocxContent => {\n return new FootnoteReferenceRun(ctx.footnote.ref(identifier));\n};\n","import type { Plugin } from \"unified\";\nimport type { Root } from \"mdast\";\nimport { mdastToDocx, type DocxOptions } from \"./mdast-to-docx\";\n\nexport type { DocxOptions };\n\ndeclare module \"unified\" {\n interface CompileResultMap {\n docx: Promise<ArrayBuffer>;\n }\n}\n\nconst plugin: Plugin<[DocxOptions?], Root, Promise<ArrayBuffer>> = function (\n opts = {},\n) {\n this.compiler = (node) => {\n return mdastToDocx(node as Root, opts);\n };\n};\nexport default plugin;\n"],"names":["LevelFormat","AlignmentType","convertInchesToTwip","definitions","Document","Packer","CheckBox","Paragraph","HeadingLevel","Table","TableRow","TableCell","TextRun","ExternalHyperlink","FootnoteReferenceRun"],"mappings":"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"}
package/lib/index.d.ts CHANGED
@@ -1,2 +1,3 @@
1
1
  export { default } from "./plugin";
2
2
  export type { DocxOptions } from "./plugin";
3
+ export type { RemarkDocxPlugin } from "./types";