@extend-ai/react-docx 0.7.6 → 0.8.0

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.
@@ -91,6 +91,95 @@ function normalizeDocModel(model) {
91
91
  };
92
92
  }
93
93
 
94
+ // ../doc-model/src/block-id.ts
95
+ var nextBlockIdValue = 1;
96
+ function allocateBlockId() {
97
+ const value = nextBlockIdValue;
98
+ nextBlockIdValue += 1;
99
+ return `b${value}`;
100
+ }
101
+ function ensureNodeBlockIds(node) {
102
+ if (!node.blockId) {
103
+ node.blockId = allocateBlockId();
104
+ }
105
+ if (node.type !== "table") {
106
+ return;
107
+ }
108
+ for (const row of node.rows) {
109
+ for (const cell of row.cells) {
110
+ for (const child of cell.nodes) {
111
+ ensureNodeBlockIds(child);
112
+ }
113
+ }
114
+ }
115
+ }
116
+ function ensureDocModelBlockIds(model) {
117
+ model.nodes.forEach(ensureNodeBlockIds);
118
+ for (const section of model.metadata.headerSections ?? []) {
119
+ section.nodes.forEach(ensureNodeBlockIds);
120
+ }
121
+ for (const section of model.metadata.footerSections ?? []) {
122
+ section.nodes.forEach(ensureNodeBlockIds);
123
+ }
124
+ for (const section of model.metadata.sections ?? []) {
125
+ for (const headerSection of section.headerSections ?? []) {
126
+ headerSection.nodes.forEach(ensureNodeBlockIds);
127
+ }
128
+ for (const footerSection of section.footerSections ?? []) {
129
+ footerSection.nodes.forEach(ensureNodeBlockIds);
130
+ }
131
+ }
132
+ for (const note of model.metadata.footnotes ?? []) {
133
+ note.nodes?.forEach(ensureNodeBlockIds);
134
+ }
135
+ for (const note of model.metadata.endnotes ?? []) {
136
+ note.nodes?.forEach(ensureNodeBlockIds);
137
+ }
138
+ return model;
139
+ }
140
+ function collectNodeBlockIds(node, seen, duplicates) {
141
+ if (node.blockId) {
142
+ if (seen.has(node.blockId)) {
143
+ duplicates.add(node.blockId);
144
+ }
145
+ seen.add(node.blockId);
146
+ }
147
+ if (node.type !== "table") {
148
+ return;
149
+ }
150
+ for (const row of node.rows) {
151
+ for (const cell of row.cells) {
152
+ for (const child of cell.nodes) {
153
+ collectNodeBlockIds(child, seen, duplicates);
154
+ }
155
+ }
156
+ }
157
+ }
158
+ function collectDuplicateDocModelBlockIds(model) {
159
+ const duplicates = /* @__PURE__ */ new Set();
160
+ const visitContainer = (nodes) => {
161
+ if (!nodes) {
162
+ return;
163
+ }
164
+ const seen = /* @__PURE__ */ new Set();
165
+ nodes.forEach((node) => collectNodeBlockIds(node, seen, duplicates));
166
+ };
167
+ visitContainer(model.nodes);
168
+ for (const section of model.metadata.headerSections ?? []) {
169
+ visitContainer(section.nodes);
170
+ }
171
+ for (const section of model.metadata.footerSections ?? []) {
172
+ visitContainer(section.nodes);
173
+ }
174
+ for (const note of model.metadata.footnotes ?? []) {
175
+ visitContainer(note.nodes);
176
+ }
177
+ for (const note of model.metadata.endnotes ?? []) {
178
+ visitContainer(note.nodes);
179
+ }
180
+ return Array.from(duplicates);
181
+ }
182
+
94
183
  // ../doc-model/src/clone.ts
95
184
  function isParagraphCellContent(node) {
96
185
  return node.type === "paragraph";
@@ -149,9 +238,16 @@ function cloneParagraphStyle(style) {
149
238
  } : void 0
150
239
  };
151
240
  }
241
+ function cloneParagraphNode(paragraph) {
242
+ return cloneParagraph(paragraph);
243
+ }
244
+ function cloneTableNode(table) {
245
+ return cloneTable(table);
246
+ }
152
247
  function cloneParagraph(paragraph) {
153
248
  return {
154
249
  type: "paragraph",
250
+ blockId: paragraph.blockId,
155
251
  style: cloneParagraphStyle(paragraph.style),
156
252
  paragraphMarkDeleted: paragraph.paragraphMarkDeleted,
157
253
  sourceXml: paragraph.sourceXml,
@@ -281,6 +377,7 @@ function cloneTableFloatingStyle(floating) {
281
377
  function cloneTable(table) {
282
378
  return {
283
379
  type: "table",
380
+ blockId: table.blockId,
284
381
  sourceXml: table.sourceXml,
285
382
  style: table.style ? {
286
383
  widthTwips: table.style.widthTwips,
@@ -395,6 +492,33 @@ function cloneDocModel(model) {
395
492
  };
396
493
  }
397
494
 
495
+ // ../doc-model/src/freeze.ts
496
+ function deepFreezeValue(value) {
497
+ if (typeof value !== "object" || value === null) {
498
+ return;
499
+ }
500
+ if (ArrayBuffer.isView(value) || value instanceof ArrayBuffer) {
501
+ return;
502
+ }
503
+ if (Object.isFrozen(value)) {
504
+ return;
505
+ }
506
+ Object.freeze(value);
507
+ if (Array.isArray(value)) {
508
+ for (const entry of value) {
509
+ deepFreezeValue(entry);
510
+ }
511
+ return;
512
+ }
513
+ for (const key of Object.keys(value)) {
514
+ deepFreezeValue(value[key]);
515
+ }
516
+ }
517
+ function deepFreezeDocModel(model) {
518
+ deepFreezeValue(model);
519
+ return model;
520
+ }
521
+
398
522
  // ../doc-model/src/index.ts
399
523
  async function buildDocModel(pkg) {
400
524
  const wasmPackage = mapsToWasmPackage({
@@ -415,8 +539,14 @@ async function buildDocModelFromBytes(bytes) {
415
539
 
416
540
  export {
417
541
  normalizeDocModel,
542
+ allocateBlockId,
543
+ ensureDocModelBlockIds,
544
+ collectDuplicateDocModelBlockIds,
545
+ cloneParagraphNode,
546
+ cloneTableNode,
418
547
  cloneDocModel,
548
+ deepFreezeDocModel,
419
549
  buildDocModel,
420
550
  buildDocModelFromBytes
421
551
  };
422
- //# sourceMappingURL=chunk-P3MKA55V.js.map
552
+ //# sourceMappingURL=chunk-HWEQ63UE.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../doc-model/src/normalize.ts","../../doc-model/src/block-id.ts","../../doc-model/src/clone.ts","../../doc-model/src/freeze.ts","../../doc-model/src/index.ts"],"sourcesContent":["import type {\n DocModel,\n DocNode,\n ImageRunNode,\n ParagraphChildNode,\n TableCellContentNode\n} from \"./types\";\n\nfunction normalizeUint8Array(value: unknown): Uint8Array | undefined {\n if (value instanceof Uint8Array) {\n return value;\n }\n if (Array.isArray(value)) {\n return Uint8Array.from(value as number[]);\n }\n return undefined;\n}\n\nfunction normalizeParagraphChild(child: ParagraphChildNode): ParagraphChildNode {\n if (child.type !== \"image\") {\n return child;\n }\n\n const image = child as ImageRunNode;\n const data = normalizeUint8Array(image.data);\n if (data === image.data) {\n return child;\n }\n\n return {\n ...image,\n data\n };\n}\n\nfunction normalizeTableCellContent(node: TableCellContentNode): TableCellContentNode {\n if (node.type === \"table\") {\n return normalizeDocNode(node) as TableCellContentNode;\n }\n\n return {\n ...node,\n children: node.children.map(normalizeParagraphChild)\n };\n}\n\nfunction normalizeDocNode(node: DocNode): DocNode {\n if (node.type === \"paragraph\") {\n return {\n ...node,\n children: node.children.map(normalizeParagraphChild)\n };\n }\n\n return {\n ...node,\n rows: node.rows.map((row) => ({\n ...row,\n cells: row.cells.map((cell) => ({\n ...cell,\n nodes: cell.nodes.map(normalizeTableCellContent)\n }))\n }))\n };\n}\n\nexport function normalizeDocModel(model: DocModel): DocModel {\n return {\n ...model,\n nodes: model.nodes.map(normalizeDocNode),\n metadata: {\n ...model.metadata,\n headerSections: model.metadata.headerSections.map((section) => ({\n ...section,\n nodes: section.nodes.map(normalizeDocNode)\n })),\n footerSections: model.metadata.footerSections.map((section) => ({\n ...section,\n nodes: section.nodes.map(normalizeDocNode)\n })),\n sections: model.metadata.sections?.map((section) => ({\n ...section,\n headerSections: section.headerSections.map((header) => ({\n ...header,\n nodes: header.nodes.map(normalizeDocNode)\n })),\n footerSections: section.footerSections.map((footer) => ({\n ...footer,\n nodes: footer.nodes.map(normalizeDocNode)\n }))\n })),\n footnotes: model.metadata.footnotes?.map((note) => ({\n ...note,\n nodes: note.nodes?.map(normalizeDocNode)\n })),\n endnotes: model.metadata.endnotes?.map((note) => ({\n ...note,\n nodes: note.nodes?.map(normalizeDocNode)\n }))\n }\n };\n}\n","import type { DocModel, DocNode, TableCellContentNode } from \"./types\";\n\nlet nextBlockIdValue = 1;\n\n/** Returns a fresh block id, unique for the lifetime of this module instance. */\nexport function allocateBlockId(): string {\n const value = nextBlockIdValue;\n nextBlockIdValue += 1;\n return `b${value}`;\n}\n\nfunction ensureNodeBlockIds(node: DocNode | TableCellContentNode): void {\n if (!node.blockId) {\n node.blockId = allocateBlockId();\n }\n\n if (node.type !== \"table\") {\n return;\n }\n\n for (const row of node.rows) {\n for (const cell of row.cells) {\n for (const child of cell.nodes) {\n ensureNodeBlockIds(child);\n }\n }\n }\n}\n\n/**\n * Assigns a fresh block id to every paragraph/table node (body, headers,\n * footers, footnotes, endnotes, nested table content) that does not already\n * have one. Mutates the model in place and returns it.\n */\nexport function ensureDocModelBlockIds(model: DocModel): DocModel {\n model.nodes.forEach(ensureNodeBlockIds);\n\n for (const section of model.metadata.headerSections ?? []) {\n section.nodes.forEach(ensureNodeBlockIds);\n }\n for (const section of model.metadata.footerSections ?? []) {\n section.nodes.forEach(ensureNodeBlockIds);\n }\n for (const section of model.metadata.sections ?? []) {\n for (const headerSection of section.headerSections ?? []) {\n headerSection.nodes.forEach(ensureNodeBlockIds);\n }\n for (const footerSection of section.footerSections ?? []) {\n footerSection.nodes.forEach(ensureNodeBlockIds);\n }\n }\n for (const note of model.metadata.footnotes ?? []) {\n note.nodes?.forEach(ensureNodeBlockIds);\n }\n for (const note of model.metadata.endnotes ?? []) {\n note.nodes?.forEach(ensureNodeBlockIds);\n }\n\n return model;\n}\n\nfunction collectNodeBlockIds(\n node: DocNode | TableCellContentNode,\n seen: Set<string>,\n duplicates: Set<string>\n): void {\n if (node.blockId) {\n if (seen.has(node.blockId)) {\n duplicates.add(node.blockId);\n }\n seen.add(node.blockId);\n }\n\n if (node.type !== \"table\") {\n return;\n }\n\n for (const row of node.rows) {\n for (const cell of row.cells) {\n for (const child of cell.nodes) {\n collectNodeBlockIds(child, seen, duplicates);\n }\n }\n }\n}\n\n/**\n * Returns block ids that appear on more than one node within the same\n * container (body, a header/footer part, a note). Nodes without ids are\n * ignored, and the same id may legitimately recur across containers (section\n * views reference the same header/footer parts as the flat metadata lists).\n */\nexport function collectDuplicateDocModelBlockIds(model: DocModel): string[] {\n const duplicates = new Set<string>();\n\n const visitContainer = (nodes: DocNode[] | undefined): void => {\n if (!nodes) {\n return;\n }\n const seen = new Set<string>();\n nodes.forEach((node) => collectNodeBlockIds(node, seen, duplicates));\n };\n\n visitContainer(model.nodes);\n for (const section of model.metadata.headerSections ?? []) {\n visitContainer(section.nodes);\n }\n for (const section of model.metadata.footerSections ?? []) {\n visitContainer(section.nodes);\n }\n for (const note of model.metadata.footnotes ?? []) {\n visitContainer(note.nodes);\n }\n for (const note of model.metadata.endnotes ?? []) {\n visitContainer(note.nodes);\n }\n\n return Array.from(duplicates);\n}\n","import type {\n DocModel,\n DocNode,\n FooterSection,\n HeaderSection,\n NumberingDefinitionSet,\n ParagraphBorderSet,\n ParagraphBorderStyle,\n ParagraphIndent,\n ParagraphNode,\n ParagraphNumbering,\n ParagraphSpacing,\n ParagraphStyle,\n ParagraphStyleDefinition,\n TableBorderSet,\n TableBorderStyle,\n TableBoxSpacing,\n TableCellContentNode,\n TableNode,\n TableStyle,\n} from \"./types\";\n\nfunction isParagraphCellContent(\n node: TableCellContentNode\n): node is ParagraphNode {\n return node.type === \"paragraph\";\n}\n\nfunction isTableCellContentTable(\n node: TableCellContentNode\n): node is TableNode {\n return node.type === \"table\";\n}\n\nfunction cloneTableCellContent(\n nodes: TableCellContentNode[]\n): TableCellContentNode[] {\n return nodes.map((node) => {\n if (isParagraphCellContent(node)) {\n return cloneParagraph(node);\n }\n\n if (isTableCellContentTable(node)) {\n return cloneTable(node);\n }\n\n return node;\n });\n}\n\nfunction cloneParagraphNumbering(\n numbering?: ParagraphNumbering\n): ParagraphNumbering | undefined {\n return numbering ? { ...numbering } : undefined;\n}\n\nfunction cloneParagraphSpacing(\n spacing?: ParagraphSpacing\n): ParagraphSpacing | undefined {\n return spacing ? { ...spacing } : undefined;\n}\n\nfunction cloneParagraphIndent(\n indent?: ParagraphIndent\n): ParagraphIndent | undefined {\n return indent ? { ...indent } : undefined;\n}\n\nfunction cloneParagraphBorderStyle(\n border?: ParagraphBorderStyle\n): ParagraphBorderStyle | undefined {\n return border ? { ...border } : undefined;\n}\n\nfunction cloneParagraphBorderSet(\n borders?: ParagraphBorderSet\n): ParagraphBorderSet | undefined {\n if (!borders) {\n return undefined;\n }\n\n return {\n top: cloneParagraphBorderStyle(borders.top),\n right: cloneParagraphBorderStyle(borders.right),\n bottom: cloneParagraphBorderStyle(borders.bottom),\n left: cloneParagraphBorderStyle(borders.left),\n between: cloneParagraphBorderStyle(borders.between),\n bar: cloneParagraphBorderStyle(borders.bar),\n };\n}\n\nfunction cloneParagraphStyle(\n style?: ParagraphStyle\n): ParagraphStyle | undefined {\n if (!style) {\n return undefined;\n }\n\n return {\n ...style,\n numbering: cloneParagraphNumbering(style.numbering),\n spacing: cloneParagraphSpacing(style.spacing),\n indent: cloneParagraphIndent(style.indent),\n borders: cloneParagraphBorderSet(style.borders),\n dropCap: style.dropCap\n ? {\n ...style.dropCap,\n }\n : undefined,\n };\n}\n\nexport function cloneParagraphNode(paragraph: ParagraphNode): ParagraphNode {\n return cloneParagraph(paragraph);\n}\n\nexport function cloneTableNode(table: TableNode): TableNode {\n return cloneTable(table);\n}\n\nfunction cloneParagraph(paragraph: ParagraphNode): ParagraphNode {\n return {\n type: \"paragraph\",\n blockId: paragraph.blockId,\n style: cloneParagraphStyle(paragraph.style),\n paragraphMarkDeleted: paragraph.paragraphMarkDeleted,\n sourceXml: paragraph.sourceXml,\n children: paragraph.children.map((child) => {\n if (child.type === \"text\") {\n return {\n type: \"text\" as const,\n text: child.text,\n style: child.style ? { ...child.style } : undefined,\n link: child.link,\n };\n }\n\n if (child.type === \"form-field\") {\n return {\n type: \"form-field\" as const,\n fieldType: child.fieldType,\n sourceKind: child.sourceKind,\n id: child.id,\n tag: child.tag,\n title: child.title,\n placeholder: child.placeholder,\n checked: child.checked,\n value: child.value,\n options: child.options?.map((option) => ({\n displayText: option.displayText,\n value: option.value,\n })),\n widget: child.widget\n ? {\n name: child.widget.name,\n enabled: child.widget.enabled,\n calcOnExit: child.widget.calcOnExit,\n text: child.widget.text\n ? {\n inputType: child.widget.text.inputType,\n defaultText: child.widget.text.defaultText,\n maxLength: child.widget.text.maxLength,\n textFormat: child.widget.text.textFormat,\n }\n : undefined,\n checkbox: child.widget.checkbox\n ? {\n defaultChecked: child.widget.checkbox.defaultChecked,\n sizeMode: child.widget.checkbox.sizeMode,\n sizePt: child.widget.checkbox.sizePt,\n }\n : undefined,\n dropdown: child.widget.dropdown\n ? {\n defaultValue: child.widget.dropdown.defaultValue,\n }\n : undefined,\n }\n : undefined,\n checkedSymbol: child.checkedSymbol,\n uncheckedSymbol: child.uncheckedSymbol,\n style: child.style ? { ...child.style } : undefined,\n link: child.link,\n sourceXml: child.sourceXml,\n };\n }\n\n return {\n type: \"image\" as const,\n src: child.src,\n alt: child.alt,\n widthPx: child.widthPx,\n heightPx: child.heightPx,\n partName: child.partName,\n contentType: child.contentType,\n data: child.data ? new Uint8Array(child.data) : undefined,\n sourceXml: child.sourceXml,\n crop: child.crop ? { ...child.crop } : undefined,\n cssFilter: child.cssFilter,\n cssOpacity: child.cssOpacity,\n floating: child.floating ? { ...child.floating } : undefined,\n syntheticTextBox: child.syntheticTextBox,\n textBoxText: child.textBoxText,\n };\n }),\n };\n}\n\nfunction cloneTableBoxSpacing(\n spacing?: TableBoxSpacing\n): TableBoxSpacing | undefined {\n if (!spacing) {\n return undefined;\n }\n\n return {\n topTwips: spacing.topTwips,\n rightTwips: spacing.rightTwips,\n bottomTwips: spacing.bottomTwips,\n leftTwips: spacing.leftTwips,\n };\n}\n\nfunction cloneTableBorderStyle(\n border?: TableBorderStyle\n): TableBorderStyle | undefined {\n if (!border) {\n return undefined;\n }\n\n return {\n type: border.type,\n color: border.color,\n sizeEighthPt: border.sizeEighthPt,\n };\n}\n\nfunction cloneTableBorderSet(\n borders?: TableBorderSet\n): TableBorderSet | undefined {\n if (!borders) {\n return undefined;\n }\n\n return {\n top: cloneTableBorderStyle(borders.top),\n right: cloneTableBorderStyle(borders.right),\n bottom: cloneTableBorderStyle(borders.bottom),\n left: cloneTableBorderStyle(borders.left),\n insideH: cloneTableBorderStyle(borders.insideH),\n insideV: cloneTableBorderStyle(borders.insideV),\n tl2br: cloneTableBorderStyle(borders.tl2br),\n tr2bl: cloneTableBorderStyle(borders.tr2bl),\n };\n}\n\nfunction cloneTableFloatingStyle(\n floating?: NonNullable<TableStyle[\"floating\"]>\n): NonNullable<TableStyle[\"floating\"]> | undefined {\n if (!floating) {\n return undefined;\n }\n\n return {\n xTwips: floating.xTwips,\n yTwips: floating.yTwips,\n leftFromTextTwips: floating.leftFromTextTwips,\n rightFromTextTwips: floating.rightFromTextTwips,\n topFromTextTwips: floating.topFromTextTwips,\n bottomFromTextTwips: floating.bottomFromTextTwips,\n horizontalAnchor: floating.horizontalAnchor,\n verticalAnchor: floating.verticalAnchor,\n horizontalAlign: floating.horizontalAlign,\n verticalAlign: floating.verticalAlign,\n };\n}\n\nfunction cloneTable(table: TableNode): TableNode {\n return {\n type: \"table\",\n blockId: table.blockId,\n sourceXml: table.sourceXml,\n style: table.style\n ? {\n widthTwips: table.style.widthTwips,\n indentTwips: table.style.indentTwips,\n layout: table.style.layout,\n cellSpacingTwips: table.style.cellSpacingTwips,\n floating: cloneTableFloatingStyle(table.style.floating),\n cellMarginTwips: cloneTableBoxSpacing(table.style.cellMarginTwips),\n columnWidthsTwips: table.style.columnWidthsTwips\n ? [...table.style.columnWidthsTwips]\n : undefined,\n borders: cloneTableBorderSet(table.style.borders),\n }\n : undefined,\n rows: table.rows.map((row) => ({\n type: \"table-row\",\n style: row.style ? { ...row.style } : undefined,\n cells: row.cells.map((cell) => ({\n type: \"table-cell\",\n style: cell.style\n ? {\n ...cell.style,\n marginTwips: cloneTableBoxSpacing(cell.style.marginTwips),\n borders: cloneTableBorderSet(cell.style.borders),\n }\n : undefined,\n nodes: cloneTableCellContent(cell.nodes),\n })),\n })),\n };\n}\n\nfunction cloneDocNode(node: DocNode): DocNode {\n return node.type === \"paragraph\" ? cloneParagraph(node) : cloneTable(node);\n}\n\nfunction cloneNumberingDefinitions(\n numberingDefinitions?: NumberingDefinitionSet\n): NumberingDefinitionSet | undefined {\n if (!numberingDefinitions) {\n return undefined;\n }\n\n return {\n abstracts: numberingDefinitions.abstracts.map((abstractDefinition) => ({\n abstractNumId: abstractDefinition.abstractNumId,\n levels: abstractDefinition.levels.map((level) => ({\n ...level,\n runStyle: level.runStyle ? { ...level.runStyle } : undefined,\n pictureBullet: level.pictureBullet\n ? { ...level.pictureBullet }\n : undefined,\n })),\n })),\n instances: numberingDefinitions.instances.map((instanceDefinition) => ({\n numId: instanceDefinition.numId,\n abstractNumId: instanceDefinition.abstractNumId,\n levelStartOverrides: instanceDefinition.levelStartOverrides\n ? { ...instanceDefinition.levelStartOverrides }\n : undefined,\n levelOverrides: instanceDefinition.levelOverrides\n ? instanceDefinition.levelOverrides.map((level) => ({\n ...level,\n runStyle: level.runStyle ? { ...level.runStyle } : undefined,\n pictureBullet: level.pictureBullet\n ? { ...level.pictureBullet }\n : undefined,\n }))\n : undefined,\n })),\n };\n}\n\nexport function cloneDocModel(model: DocModel): DocModel {\n return {\n nodes: model.nodes.map(cloneDocNode),\n metadata: {\n sourceParts: model.metadata.sourceParts,\n warnings: [...model.metadata.warnings],\n documentPageCount: model.metadata.documentPageCount,\n documentOpenTag: model.metadata.documentOpenTag,\n documentBackgroundColor: model.metadata.documentBackgroundColor,\n sectionPropertiesXml: model.metadata.sectionPropertiesXml,\n sections: model.metadata.sections?.map((section) => ({\n startNodeIndex: section.startNodeIndex,\n sectionPropertiesXml: section.sectionPropertiesXml,\n headerSections: (section.headerSections ?? []).map((headerSection) => ({\n partName: headerSection.partName,\n referenceType: headerSection.referenceType,\n nodes: headerSection.nodes.map(cloneDocNode),\n })),\n footerSections: (section.footerSections ?? []).map((footerSection) => ({\n partName: footerSection.partName,\n referenceType: footerSection.referenceType,\n nodes: footerSection.nodes.map(cloneDocNode),\n })),\n })),\n headerSections: (model.metadata.headerSections ?? []).map((section) => ({\n partName: section.partName,\n referenceType: section.referenceType,\n nodes: section.nodes.map(cloneDocNode),\n })),\n footerSections: (model.metadata.footerSections ?? []).map((section) => ({\n partName: section.partName,\n referenceType: section.referenceType,\n nodes: section.nodes.map(cloneDocNode),\n })),\n paragraphStyles: (model.metadata.paragraphStyles ?? []).map((style) => ({\n ...style,\n runStyle: style.runStyle ? { ...style.runStyle } : undefined,\n numbering: cloneParagraphNumbering(style.numbering),\n spacing: cloneParagraphSpacing(style.spacing),\n indent: cloneParagraphIndent(style.indent),\n borders: cloneParagraphBorderSet(style.borders),\n })),\n defaultParagraphStyleId: model.metadata.defaultParagraphStyleId,\n numberingDefinitions: cloneNumberingDefinitions(\n model.metadata.numberingDefinitions\n ),\n compatibility: model.metadata.compatibility\n ? { ...model.metadata.compatibility }\n : undefined,\n footnotes: model.metadata.footnotes?.map((note) => ({\n ...note,\n nodes: note.nodes?.map(cloneDocNode),\n })),\n endnotes: model.metadata.endnotes?.map((note) => ({\n ...note,\n nodes: note.nodes?.map(cloneDocNode),\n })),\n comments: model.metadata.comments?.map((comment) => ({ ...comment })),\n },\n };\n}\n","import type { DocModel } from \"./types\";\n\nfunction deepFreezeValue(value: unknown): void {\n if (typeof value !== \"object\" || value === null) {\n return;\n }\n // Freezing a typed array throws; image byte payloads stay unfrozen.\n if (ArrayBuffer.isView(value) || value instanceof ArrayBuffer) {\n return;\n }\n if (Object.isFrozen(value)) {\n return;\n }\n\n Object.freeze(value);\n if (Array.isArray(value)) {\n for (const entry of value) {\n deepFreezeValue(entry);\n }\n return;\n }\n\n for (const key of Object.keys(value)) {\n deepFreezeValue((value as Record<string, unknown>)[key]);\n }\n}\n\n/**\n * Dev-only commit guard: freezes a committed model so in-place mutation of\n * structure shared with history snapshots throws instead of corrupting them.\n * Already-frozen subtrees are skipped, so once a model is frozen, freezing a\n * structurally shared successor only pays for the changed nodes.\n */\nexport function deepFreezeDocModel(model: DocModel): DocModel {\n deepFreezeValue(model);\n return model;\n}\n","import type { OoxmlPackage } from \"@extend-ai/react-docx-ooxml-core\";\nimport {\n mapsToWasmPackage,\n wasmBuildDocModelFromPackage,\n wasmPackageToMaps\n} from \"@extend-ai/react-docx-wasm\";\n\nimport { normalizeDocModel } from \"./normalize\";\nimport type { DocModel } from \"./types\";\n\nexport * from \"./types\";\nexport {\n allocateBlockId,\n collectDuplicateDocModelBlockIds,\n ensureDocModelBlockIds\n} from \"./block-id\";\nexport { cloneDocModel, cloneParagraphNode, cloneTableNode } from \"./clone\";\nexport { deepFreezeDocModel } from \"./freeze\";\nexport { normalizeDocModel } from \"./normalize\";\n\nexport async function buildDocModel(pkg: OoxmlPackage): Promise<DocModel> {\n const wasmPackage = mapsToWasmPackage({\n parts: pkg.parts,\n binaryAssets: pkg.binaryAssets\n });\n const model = (await wasmBuildDocModelFromPackage(wasmPackage)) as DocModel;\n return normalizeDocModel(model);\n}\n\nexport async function buildDocModelFromBytes(bytes: ArrayBuffer | Uint8Array): Promise<{\n package: OoxmlPackage;\n model: DocModel;\n}> {\n const { parseDocx } = await import(\"@extend-ai/react-docx-ooxml-core\");\n const payload = bytes instanceof Uint8Array ? bytes : new Uint8Array(bytes);\n const buffer =\n payload.buffer.slice(payload.byteOffset, payload.byteOffset + payload.byteLength) as ArrayBuffer;\n const pkg = await parseDocx(buffer);\n const model = await buildDocModel(pkg);\n return { package: pkg, model };\n}\n"],"mappings":"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","names":[]}
@@ -655,9 +655,15 @@ function normalizeDocModel(model) {
655
655
  // ../doc-model/src/types.ts
656
656
  init_cjs_shims();
657
657
 
658
+ // ../doc-model/src/block-id.ts
659
+ init_cjs_shims();
660
+
658
661
  // ../doc-model/src/clone.ts
659
662
  init_cjs_shims();
660
663
 
664
+ // ../doc-model/src/freeze.ts
665
+ init_cjs_shims();
666
+
661
667
  // ../doc-model/src/index.ts
662
668
  async function buildDocModel(pkg) {
663
669
  const wasmPackage = mapsToWasmPackage({