@usejunior/docx-core 0.9.1 → 0.11.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.
Files changed (335) hide show
  1. package/LICENSE +202 -21
  2. package/NOTICE +2 -0
  3. package/README.md +2 -2
  4. package/dist/.tsbuildinfo +1 -1
  5. package/dist/atomizer.d.ts +28 -8
  6. package/dist/atomizer.d.ts.map +1 -1
  7. package/dist/atomizer.js +96 -25
  8. package/dist/atomizer.js.map +1 -1
  9. package/dist/baselines/atomizer/auxiliaryIdCollision.d.ts +99 -0
  10. package/dist/baselines/atomizer/auxiliaryIdCollision.d.ts.map +1 -0
  11. package/dist/baselines/atomizer/auxiliaryIdCollision.js +415 -0
  12. package/dist/baselines/atomizer/auxiliaryIdCollision.js.map +1 -0
  13. package/dist/baselines/atomizer/documentReconstructor.d.ts.map +1 -1
  14. package/dist/baselines/atomizer/documentReconstructor.js +333 -112
  15. package/dist/baselines/atomizer/documentReconstructor.js.map +1 -1
  16. package/dist/baselines/atomizer/formattingFidelity.d.ts +99 -0
  17. package/dist/baselines/atomizer/formattingFidelity.d.ts.map +1 -0
  18. package/dist/baselines/atomizer/formattingFidelity.js +449 -0
  19. package/dist/baselines/atomizer/formattingFidelity.js.map +1 -0
  20. package/dist/baselines/atomizer/inPlaceModifier-bookmarks.d.ts +37 -0
  21. package/dist/baselines/atomizer/inPlaceModifier-bookmarks.d.ts.map +1 -0
  22. package/dist/baselines/atomizer/inPlaceModifier-bookmarks.js +189 -0
  23. package/dist/baselines/atomizer/inPlaceModifier-bookmarks.js.map +1 -0
  24. package/dist/baselines/atomizer/inPlaceModifier-containers.d.ts +74 -0
  25. package/dist/baselines/atomizer/inPlaceModifier-containers.d.ts.map +1 -0
  26. package/dist/baselines/atomizer/inPlaceModifier-containers.js +171 -0
  27. package/dist/baselines/atomizer/inPlaceModifier-containers.js.map +1 -0
  28. package/dist/baselines/atomizer/inPlaceModifier-deletion.d.ts +88 -0
  29. package/dist/baselines/atomizer/inPlaceModifier-deletion.d.ts.map +1 -0
  30. package/dist/baselines/atomizer/inPlaceModifier-deletion.js +326 -0
  31. package/dist/baselines/atomizer/inPlaceModifier-deletion.js.map +1 -0
  32. package/dist/baselines/atomizer/inPlaceModifier-postprocess.d.ts +85 -0
  33. package/dist/baselines/atomizer/inPlaceModifier-postprocess.d.ts.map +1 -0
  34. package/dist/baselines/atomizer/inPlaceModifier-postprocess.js +402 -0
  35. package/dist/baselines/atomizer/inPlaceModifier-postprocess.js.map +1 -0
  36. package/dist/baselines/atomizer/inPlaceModifier-presplit.d.ts +39 -0
  37. package/dist/baselines/atomizer/inPlaceModifier-presplit.d.ts.map +1 -0
  38. package/dist/baselines/atomizer/inPlaceModifier-presplit.js +265 -0
  39. package/dist/baselines/atomizer/inPlaceModifier-presplit.js.map +1 -0
  40. package/dist/baselines/atomizer/inPlaceModifier-shared.d.ts +62 -0
  41. package/dist/baselines/atomizer/inPlaceModifier-shared.d.ts.map +1 -0
  42. package/dist/baselines/atomizer/inPlaceModifier-shared.js +139 -0
  43. package/dist/baselines/atomizer/inPlaceModifier-shared.js.map +1 -0
  44. package/dist/baselines/atomizer/inPlaceModifier-wrappers.d.ts +198 -0
  45. package/dist/baselines/atomizer/inPlaceModifier-wrappers.d.ts.map +1 -0
  46. package/dist/baselines/atomizer/inPlaceModifier-wrappers.js +475 -0
  47. package/dist/baselines/atomizer/inPlaceModifier-wrappers.js.map +1 -0
  48. package/dist/baselines/atomizer/inPlaceModifier.d.ts +6 -290
  49. package/dist/baselines/atomizer/inPlaceModifier.d.ts.map +1 -1
  50. package/dist/baselines/atomizer/inPlaceModifier.js +23 -1828
  51. package/dist/baselines/atomizer/inPlaceModifier.js.map +1 -1
  52. package/dist/baselines/atomizer/pipeline.d.ts +36 -2
  53. package/dist/baselines/atomizer/pipeline.d.ts.map +1 -1
  54. package/dist/baselines/atomizer/pipeline.js +216 -144
  55. package/dist/baselines/atomizer/pipeline.js.map +1 -1
  56. package/dist/baselines/atomizer/trackChangesAcceptorAst.d.ts.map +1 -1
  57. package/dist/baselines/atomizer/trackChangesAcceptorAst.js +199 -173
  58. package/dist/baselines/atomizer/trackChangesAcceptorAst.js.map +1 -1
  59. package/dist/baselines/wmlcomparer/DotnetCli.d.ts.map +1 -1
  60. package/dist/baselines/wmlcomparer/DotnetCli.js +7 -0
  61. package/dist/baselines/wmlcomparer/DotnetCli.js.map +1 -1
  62. package/dist/cli/compare-two.d.ts.map +1 -1
  63. package/dist/cli/compare-two.js +3 -1
  64. package/dist/cli/compare-two.js.map +1 -1
  65. package/dist/cli/conformance-adapter.d.ts +3 -0
  66. package/dist/cli/conformance-adapter.d.ts.map +1 -0
  67. package/dist/cli/conformance-adapter.js +93 -0
  68. package/dist/cli/conformance-adapter.js.map +1 -0
  69. package/dist/cli/index.d.ts.map +1 -1
  70. package/dist/cli/index.js +5 -1
  71. package/dist/cli/index.js.map +1 -1
  72. package/dist/compare-types.d.ts +197 -0
  73. package/dist/compare-types.d.ts.map +1 -0
  74. package/dist/compare-types.js +2 -0
  75. package/dist/compare-types.js.map +1 -0
  76. package/dist/core-types.d.ts +5 -1
  77. package/dist/core-types.d.ts.map +1 -1
  78. package/dist/core-types.js +5 -1
  79. package/dist/core-types.js.map +1 -1
  80. package/dist/footnotes.d.ts +8 -3
  81. package/dist/footnotes.d.ts.map +1 -1
  82. package/dist/footnotes.js +8 -3
  83. package/dist/footnotes.js.map +1 -1
  84. package/dist/generation/compile.d.ts +21 -0
  85. package/dist/generation/compile.d.ts.map +1 -0
  86. package/dist/generation/compile.js +46 -0
  87. package/dist/generation/compile.js.map +1 -0
  88. package/dist/generation/context.d.ts +42 -0
  89. package/dist/generation/context.d.ts.map +1 -0
  90. package/dist/generation/context.js +65 -0
  91. package/dist/generation/context.js.map +1 -0
  92. package/dist/generation/emit/comments-part.d.ts +36 -0
  93. package/dist/generation/emit/comments-part.d.ts.map +1 -0
  94. package/dist/generation/emit/comments-part.js +116 -0
  95. package/dist/generation/emit/comments-part.js.map +1 -0
  96. package/dist/generation/emit/document-part.d.ts +24 -0
  97. package/dist/generation/emit/document-part.d.ts.map +1 -0
  98. package/dist/generation/emit/document-part.js +60 -0
  99. package/dist/generation/emit/document-part.js.map +1 -0
  100. package/dist/generation/emit/emit-context.d.ts +26 -0
  101. package/dist/generation/emit/emit-context.d.ts.map +1 -0
  102. package/dist/generation/emit/emit-context.js +19 -0
  103. package/dist/generation/emit/emit-context.js.map +1 -0
  104. package/dist/generation/emit/header-footer-part.d.ts +23 -0
  105. package/dist/generation/emit/header-footer-part.d.ts.map +1 -0
  106. package/dist/generation/emit/header-footer-part.js +57 -0
  107. package/dist/generation/emit/header-footer-part.js.map +1 -0
  108. package/dist/generation/emit/numbering-part.d.ts +29 -0
  109. package/dist/generation/emit/numbering-part.d.ts.map +1 -0
  110. package/dist/generation/emit/numbering-part.js +100 -0
  111. package/dist/generation/emit/numbering-part.js.map +1 -0
  112. package/dist/generation/emit/package-parts.d.ts +24 -0
  113. package/dist/generation/emit/package-parts.d.ts.map +1 -0
  114. package/dist/generation/emit/package-parts.js +121 -0
  115. package/dist/generation/emit/package-parts.js.map +1 -0
  116. package/dist/generation/emit/paragraph.d.ts +24 -0
  117. package/dist/generation/emit/paragraph.d.ts.map +1 -0
  118. package/dist/generation/emit/paragraph.js +63 -0
  119. package/dist/generation/emit/paragraph.js.map +1 -0
  120. package/dist/generation/emit/properties.d.ts +34 -0
  121. package/dist/generation/emit/properties.d.ts.map +1 -0
  122. package/dist/generation/emit/properties.js +138 -0
  123. package/dist/generation/emit/properties.js.map +1 -0
  124. package/dist/generation/emit/run.d.ts +15 -0
  125. package/dist/generation/emit/run.d.ts.map +1 -0
  126. package/dist/generation/emit/run.js +71 -0
  127. package/dist/generation/emit/run.js.map +1 -0
  128. package/dist/generation/emit/section.d.ts +29 -0
  129. package/dist/generation/emit/section.d.ts.map +1 -0
  130. package/dist/generation/emit/section.js +117 -0
  131. package/dist/generation/emit/section.js.map +1 -0
  132. package/dist/generation/emit/settings-part.d.ts +13 -0
  133. package/dist/generation/emit/settings-part.d.ts.map +1 -0
  134. package/dist/generation/emit/settings-part.js +24 -0
  135. package/dist/generation/emit/settings-part.js.map +1 -0
  136. package/dist/generation/emit/styles-part.d.ts +16 -0
  137. package/dist/generation/emit/styles-part.d.ts.map +1 -0
  138. package/dist/generation/emit/styles-part.js +80 -0
  139. package/dist/generation/emit/styles-part.js.map +1 -0
  140. package/dist/generation/emit/table.d.ts +26 -0
  141. package/dist/generation/emit/table.d.ts.map +1 -0
  142. package/dist/generation/emit/table.js +196 -0
  143. package/dist/generation/emit/table.js.map +1 -0
  144. package/dist/generation/errors.d.ts +22 -0
  145. package/dist/generation/errors.d.ts.map +1 -0
  146. package/dist/generation/errors.js +29 -0
  147. package/dist/generation/errors.js.map +1 -0
  148. package/dist/generation/index.d.ts +13 -0
  149. package/dist/generation/index.d.ts.map +1 -0
  150. package/dist/generation/index.js +12 -0
  151. package/dist/generation/index.js.map +1 -0
  152. package/dist/generation/ordering.d.ts +46 -0
  153. package/dist/generation/ordering.d.ts.map +1 -0
  154. package/dist/generation/ordering.js +119 -0
  155. package/dist/generation/ordering.js.map +1 -0
  156. package/dist/generation/recipes.d.ts +47 -0
  157. package/dist/generation/recipes.d.ts.map +1 -0
  158. package/dist/generation/recipes.js +84 -0
  159. package/dist/generation/recipes.js.map +1 -0
  160. package/dist/generation/structural-checks.d.ts +24 -0
  161. package/dist/generation/structural-checks.d.ts.map +1 -0
  162. package/dist/generation/structural-checks.js +318 -0
  163. package/dist/generation/structural-checks.js.map +1 -0
  164. package/dist/generation/types.d.ts +217 -0
  165. package/dist/generation/types.d.ts.map +1 -0
  166. package/dist/generation/types.js +16 -0
  167. package/dist/generation/types.js.map +1 -0
  168. package/dist/generation/validate-spec.d.ts +27 -0
  169. package/dist/generation/validate-spec.d.ts.map +1 -0
  170. package/dist/generation/validate-spec.js +307 -0
  171. package/dist/generation/validate-spec.js.map +1 -0
  172. package/dist/index.d.ts +9 -150
  173. package/dist/index.d.ts.map +1 -1
  174. package/dist/index.js +14 -0
  175. package/dist/index.js.map +1 -1
  176. package/dist/integration/generation-probes.d.ts +15 -0
  177. package/dist/integration/generation-probes.d.ts.map +1 -0
  178. package/dist/integration/generation-probes.js +84 -0
  179. package/dist/integration/generation-probes.js.map +1 -0
  180. package/dist/integration/libreoffice-oracle.d.ts +49 -0
  181. package/dist/integration/libreoffice-oracle.d.ts.map +1 -0
  182. package/dist/integration/libreoffice-oracle.js +290 -0
  183. package/dist/integration/libreoffice-oracle.js.map +1 -0
  184. package/dist/integration/synthetic-docx-fixture.d.ts +72 -0
  185. package/dist/integration/synthetic-docx-fixture.d.ts.map +1 -1
  186. package/dist/integration/synthetic-docx-fixture.js +131 -4
  187. package/dist/integration/synthetic-docx-fixture.js.map +1 -1
  188. package/dist/primitives/accept_changes.d.ts +4 -3
  189. package/dist/primitives/accept_changes.d.ts.map +1 -1
  190. package/dist/primitives/accept_changes.js +163 -77
  191. package/dist/primitives/accept_changes.js.map +1 -1
  192. package/dist/primitives/comments.d.ts +12 -3
  193. package/dist/primitives/comments.d.ts.map +1 -1
  194. package/dist/primitives/comments.js +374 -97
  195. package/dist/primitives/comments.js.map +1 -1
  196. package/dist/primitives/content_fingerprint.d.ts +29 -0
  197. package/dist/primitives/content_fingerprint.d.ts.map +1 -0
  198. package/dist/primitives/content_fingerprint.js +63 -0
  199. package/dist/primitives/content_fingerprint.js.map +1 -0
  200. package/dist/primitives/document.d.ts +94 -15
  201. package/dist/primitives/document.d.ts.map +1 -1
  202. package/dist/primitives/document.js +373 -36
  203. package/dist/primitives/document.js.map +1 -1
  204. package/dist/primitives/document_view-comments.d.ts +18 -0
  205. package/dist/primitives/document_view-comments.d.ts.map +1 -0
  206. package/dist/primitives/document_view-comments.js +160 -0
  207. package/dist/primitives/document_view-comments.js.map +1 -0
  208. package/dist/primitives/document_view-headings.d.ts +45 -0
  209. package/dist/primitives/document_view-headings.d.ts.map +1 -0
  210. package/dist/primitives/document_view-headings.js +247 -0
  211. package/dist/primitives/document_view-headings.js.map +1 -0
  212. package/dist/primitives/document_view-styles.d.ts +11 -0
  213. package/dist/primitives/document_view-styles.d.ts.map +1 -0
  214. package/dist/primitives/document_view-styles.js +104 -0
  215. package/dist/primitives/document_view-styles.js.map +1 -0
  216. package/dist/primitives/document_view-toon.d.ts +37 -0
  217. package/dist/primitives/document_view-toon.d.ts.map +1 -0
  218. package/dist/primitives/document_view-toon.js +199 -0
  219. package/dist/primitives/document_view-toon.js.map +1 -0
  220. package/dist/primitives/document_view-types.d.ts +152 -0
  221. package/dist/primitives/document_view-types.d.ts.map +1 -0
  222. package/dist/primitives/document_view-types.js +2 -0
  223. package/dist/primitives/document_view-types.js.map +1 -0
  224. package/dist/primitives/document_view.d.ts +8 -106
  225. package/dist/primitives/document_view.d.ts.map +1 -1
  226. package/dist/primitives/document_view.js +153 -312
  227. package/dist/primitives/document_view.js.map +1 -1
  228. package/dist/primitives/dom-helpers.d.ts +9 -0
  229. package/dist/primitives/dom-helpers.d.ts.map +1 -1
  230. package/dist/primitives/dom-helpers.js +10 -1
  231. package/dist/primitives/dom-helpers.js.map +1 -1
  232. package/dist/primitives/footnotes.d.ts +4 -3
  233. package/dist/primitives/footnotes.d.ts.map +1 -1
  234. package/dist/primitives/footnotes.js +232 -44
  235. package/dist/primitives/footnotes.js.map +1 -1
  236. package/dist/primitives/formatting_tags.d.ts +7 -0
  237. package/dist/primitives/formatting_tags.d.ts.map +1 -1
  238. package/dist/primitives/formatting_tags.js +22 -11
  239. package/dist/primitives/formatting_tags.js.map +1 -1
  240. package/dist/primitives/index.d.ts +10 -0
  241. package/dist/primitives/index.d.ts.map +1 -1
  242. package/dist/primitives/index.js +9 -0
  243. package/dist/primitives/index.js.map +1 -1
  244. package/dist/primitives/layout.d.ts +4 -3
  245. package/dist/primitives/layout.d.ts.map +1 -1
  246. package/dist/primitives/layout.js +45 -3
  247. package/dist/primitives/layout.js.map +1 -1
  248. package/dist/primitives/merge_runs.d.ts +21 -3
  249. package/dist/primitives/merge_runs.d.ts.map +1 -1
  250. package/dist/primitives/merge_runs.js +32 -10
  251. package/dist/primitives/merge_runs.js.map +1 -1
  252. package/dist/primitives/minimal_save.d.ts +38 -0
  253. package/dist/primitives/minimal_save.d.ts.map +1 -0
  254. package/dist/primitives/minimal_save.js +323 -0
  255. package/dist/primitives/minimal_save.js.map +1 -0
  256. package/dist/primitives/namespaces.d.ts +47 -0
  257. package/dist/primitives/namespaces.d.ts.map +1 -1
  258. package/dist/primitives/namespaces.js +52 -0
  259. package/dist/primitives/namespaces.js.map +1 -1
  260. package/dist/primitives/reject_changes.d.ts +6 -4
  261. package/dist/primitives/reject_changes.d.ts.map +1 -1
  262. package/dist/primitives/reject_changes.js +187 -91
  263. package/dist/primitives/reject_changes.js.map +1 -1
  264. package/dist/primitives/revision-parts.d.ts +7 -0
  265. package/dist/primitives/revision-parts.d.ts.map +1 -0
  266. package/dist/primitives/revision-parts.js +27 -0
  267. package/dist/primitives/revision-parts.js.map +1 -0
  268. package/dist/primitives/revision-vocabulary.d.ts +7 -0
  269. package/dist/primitives/revision-vocabulary.d.ts.map +1 -0
  270. package/dist/primitives/revision-vocabulary.js +39 -0
  271. package/dist/primitives/revision-vocabulary.js.map +1 -0
  272. package/dist/primitives/schema-corpus-capture.d.ts +19 -0
  273. package/dist/primitives/schema-corpus-capture.d.ts.map +1 -0
  274. package/dist/primitives/schema-corpus-capture.js +29 -0
  275. package/dist/primitives/schema-corpus-capture.js.map +1 -0
  276. package/dist/primitives/sectPrAudit.d.ts +19 -0
  277. package/dist/primitives/sectPrAudit.d.ts.map +1 -0
  278. package/dist/primitives/sectPrAudit.js +165 -0
  279. package/dist/primitives/sectPrAudit.js.map +1 -0
  280. package/dist/primitives/semantic_tags.d.ts +7 -0
  281. package/dist/primitives/semantic_tags.d.ts.map +1 -1
  282. package/dist/primitives/semantic_tags.js +23 -4
  283. package/dist/primitives/semantic_tags.js.map +1 -1
  284. package/dist/primitives/serialize_html.d.ts +37 -0
  285. package/dist/primitives/serialize_html.d.ts.map +1 -0
  286. package/dist/primitives/serialize_html.js +395 -0
  287. package/dist/primitives/serialize_html.js.map +1 -0
  288. package/dist/primitives/serialize_markdown.d.ts +16 -0
  289. package/dist/primitives/serialize_markdown.d.ts.map +1 -0
  290. package/dist/primitives/serialize_markdown.js +300 -0
  291. package/dist/primitives/serialize_markdown.js.map +1 -0
  292. package/dist/primitives/serialize_plaintext.d.ts +15 -0
  293. package/dist/primitives/serialize_plaintext.d.ts.map +1 -0
  294. package/dist/primitives/serialize_plaintext.js +154 -0
  295. package/dist/primitives/serialize_plaintext.js.map +1 -0
  296. package/dist/primitives/styles.d.ts +15 -0
  297. package/dist/primitives/styles.d.ts.map +1 -1
  298. package/dist/primitives/styles.js +33 -22
  299. package/dist/primitives/styles.js.map +1 -1
  300. package/dist/primitives/tables.d.ts.map +1 -1
  301. package/dist/primitives/tables.js +13 -3
  302. package/dist/primitives/tables.js.map +1 -1
  303. package/dist/primitives/text.d.ts +2 -1
  304. package/dist/primitives/text.d.ts.map +1 -1
  305. package/dist/primitives/text.js +116 -12
  306. package/dist/primitives/text.js.map +1 -1
  307. package/dist/primitives/track-changes-emitter.d.ts +148 -0
  308. package/dist/primitives/track-changes-emitter.d.ts.map +1 -0
  309. package/dist/primitives/track-changes-emitter.js +291 -0
  310. package/dist/primitives/track-changes-emitter.js.map +1 -0
  311. package/dist/primitives/validate_ai_revisions.d.ts +35 -0
  312. package/dist/primitives/validate_ai_revisions.d.ts.map +1 -0
  313. package/dist/primitives/validate_ai_revisions.js +323 -0
  314. package/dist/primitives/validate_ai_revisions.js.map +1 -0
  315. package/dist/primitives/xml-helpers.d.ts +29 -0
  316. package/dist/primitives/xml-helpers.d.ts.map +1 -0
  317. package/dist/primitives/xml-helpers.js +35 -0
  318. package/dist/primitives/xml-helpers.js.map +1 -0
  319. package/dist/primitives/xml.d.ts +5 -0
  320. package/dist/primitives/xml.d.ts.map +1 -1
  321. package/dist/primitives/xml.js +5 -0
  322. package/dist/primitives/xml.js.map +1 -1
  323. package/dist/primitives/zip.d.ts +1 -0
  324. package/dist/primitives/zip.d.ts.map +1 -1
  325. package/dist/primitives/zip.js +21 -3
  326. package/dist/primitives/zip.js.map +1 -1
  327. package/dist/shared/field-structure.d.ts +14 -0
  328. package/dist/shared/field-structure.d.ts.map +1 -0
  329. package/dist/shared/field-structure.js +166 -0
  330. package/dist/shared/field-structure.js.map +1 -0
  331. package/dist/shared/ooxml/namespaces.d.ts +4 -1
  332. package/dist/shared/ooxml/namespaces.d.ts.map +1 -1
  333. package/dist/shared/ooxml/namespaces.js +4 -1
  334. package/dist/shared/ooxml/namespaces.js.map +1 -1
  335. package/package.json +13 -9
@@ -2,17 +2,29 @@ import JSZip from 'jszip';
2
2
  import { DocxArchive } from '../shared/docx/DocxArchive.js';
3
3
  export async function buildSyntheticDocx(opts) {
4
4
  const hasFootnote = opts.footnoteOnParagraph != null;
5
+ const hasEndnote = opts.endnoteOnParagraph != null;
5
6
  const hasComment = opts.commentOnParagraph != null;
6
7
  const hasCommentSpan = opts.commentSpanParagraphs != null;
7
8
  const hasBookmark = opts.bookmarkOnParagraph != null;
8
9
  const hasSiblingBookmark = opts.siblingBookmarkBefore != null;
9
- if (hasComment && hasCommentSpan) {
10
- throw new Error('commentOnParagraph and commentSpanParagraphs are mutually exclusive');
10
+ const hasSiblingCommentRange = opts.siblingCommentRange != null;
11
+ const hasPermSpan = opts.permSpanParagraphs != null;
12
+ const hasSiblingPerm = opts.siblingPermBefore != null;
13
+ if ([hasComment, hasCommentSpan, hasSiblingCommentRange].filter(Boolean).length > 1) {
14
+ throw new Error('commentOnParagraph, commentSpanParagraphs and siblingCommentRange are mutually exclusive');
11
15
  }
12
16
  const bookmarkId = opts.bookmarkOnParagraph?.id ?? 100;
13
17
  const siblingBookmarkId = opts.siblingBookmarkBefore?.id ?? 200;
14
18
  const spanStart = opts.commentSpanParagraphs?.start;
15
19
  const spanEnd = opts.commentSpanParagraphs?.end;
20
+ const hasTrackedMove = opts.trackedMove != null;
21
+ const moveAuthor = opts.trackedMove?.author ?? 'Mover';
22
+ const moveBaseId = opts.trackedMove?.firstId ?? 300;
23
+ const moveDate = '2025-01-01T00:00:00Z';
24
+ const permId = opts.permSpanParagraphs?.id ?? 500;
25
+ const siblingPermId = opts.siblingPermBefore?.id ?? 600;
26
+ const permSpanStart = opts.permSpanParagraphs?.start;
27
+ const permSpanEnd = opts.permSpanParagraphs?.end;
16
28
  const paragraphParts = opts.paragraphs.map((text, idx) => {
17
29
  const escaped = text
18
30
  .replaceAll('&', '&')
@@ -22,6 +34,9 @@ export async function buildSyntheticDocx(opts) {
22
34
  if (hasFootnote && idx === opts.footnoteOnParagraph) {
23
35
  extra += `<w:r><w:rPr><w:rStyle w:val="FootnoteReference"/></w:rPr><w:footnoteReference w:id="1"/></w:r>`;
24
36
  }
37
+ if (hasEndnote && idx === opts.endnoteOnParagraph) {
38
+ extra += `<w:r><w:rPr><w:rStyle w:val="EndnoteReference"/></w:rPr><w:endnoteReference w:id="1"/></w:r>`;
39
+ }
25
40
  if (hasComment && idx === opts.commentOnParagraph) {
26
41
  extra =
27
42
  `<w:commentRangeStart w:id="1"/>` +
@@ -38,6 +53,28 @@ export async function buildSyntheticDocx(opts) {
38
53
  : '';
39
54
  return `<w:p>${before}<w:r><w:t>${escaped}</w:t></w:r>${after}${extra}</w:p>`;
40
55
  }
56
+ if (hasTrackedMove && idx === opts.trackedMove.from) {
57
+ const name = opts.trackedMove.name;
58
+ return (`<w:p>` +
59
+ `<w:moveFromRangeStart w:id="${moveBaseId}" w:name="${name}" w:author="${moveAuthor}" w:date="${moveDate}"/>` +
60
+ `<w:moveFrom w:id="${moveBaseId + 1}" w:author="${moveAuthor}" w:date="${moveDate}">` +
61
+ `<w:r><w:delText>${escaped}</w:delText></w:r>` +
62
+ `</w:moveFrom>` +
63
+ `<w:moveFromRangeEnd w:id="${moveBaseId}"/>` +
64
+ extra +
65
+ `</w:p>`);
66
+ }
67
+ if (hasTrackedMove && idx === opts.trackedMove.to) {
68
+ const name = opts.trackedMove.name;
69
+ return (`<w:p>` +
70
+ `<w:moveToRangeStart w:id="${moveBaseId + 2}" w:name="${name}" w:author="${moveAuthor}" w:date="${moveDate}"/>` +
71
+ `<w:moveTo w:id="${moveBaseId + 3}" w:author="${moveAuthor}" w:date="${moveDate}">` +
72
+ `<w:r><w:t>${escaped}</w:t></w:r>` +
73
+ `</w:moveTo>` +
74
+ `<w:moveToRangeEnd w:id="${moveBaseId + 2}"/>` +
75
+ extra +
76
+ `</w:p>`);
77
+ }
41
78
  if (hasBookmark && idx === opts.bookmarkOnParagraph.paragraph) {
42
79
  const name = opts.bookmarkOnParagraph.name;
43
80
  return (`<w:p>` +
@@ -47,6 +84,13 @@ export async function buildSyntheticDocx(opts) {
47
84
  extra +
48
85
  `</w:p>`);
49
86
  }
87
+ if (hasPermSpan && (idx === permSpanStart || idx === permSpanEnd)) {
88
+ const before = idx === permSpanStart
89
+ ? `<w:permStart w:id="${permId}" w:edGrp="everyone"/>`
90
+ : '';
91
+ const after = idx === permSpanEnd ? `<w:permEnd w:id="${permId}"/>` : '';
92
+ return `<w:p>${before}<w:r><w:t>${escaped}</w:t></w:r>${after}${extra}</w:p>`;
93
+ }
50
94
  return `<w:p><w:r><w:t>${escaped}</w:t></w:r>${extra}</w:p>`;
51
95
  });
52
96
  // Inject a body-level (sibling of <w:p>) bookmark before paragraphs[index].
@@ -57,10 +101,30 @@ export async function buildSyntheticDocx(opts) {
57
101
  `<w:bookmarkEnd w:id="${siblingBookmarkId}"/>`;
58
102
  paragraphParts.splice(index, 0, sibling);
59
103
  }
104
+ // Inject body-level comment range markers around whole paragraphs (the
105
+ // issue #103 shape). The range markers are siblings of <w:p>; only the
106
+ // commentReference run anchors inside the last spanned paragraph. End is
107
+ // spliced before start so the start index is not shifted.
108
+ if (hasSiblingCommentRange) {
109
+ const { startBeforeParagraph, endAfterParagraph } = opts.siblingCommentRange;
110
+ paragraphParts[endAfterParagraph] = paragraphParts[endAfterParagraph].replace('</w:p>', `<w:r><w:rPr><w:rStyle w:val="CommentReference"/></w:rPr><w:commentReference w:id="1"/></w:r></w:p>`);
111
+ paragraphParts.splice(endAfterParagraph + 1, 0, `<w:commentRangeEnd w:id="1"/>`);
112
+ paragraphParts.splice(startBeforeParagraph, 0, `<w:commentRangeStart w:id="1"/>`);
113
+ }
114
+ // Inject a body-level (sibling of <w:p>) permStart/permEnd pair before
115
+ // paragraphs[index], mirroring the sibling-bookmark scaffold shape above.
116
+ if (hasSiblingPerm) {
117
+ const { index } = opts.siblingPermBefore;
118
+ const sibling = `<w:permStart w:id="${siblingPermId}" w:edGrp="everyone"/>` +
119
+ `<w:permEnd w:id="${siblingPermId}"/>`;
120
+ paragraphParts.splice(index, 0, sibling);
121
+ }
60
122
  const paragraphsXml = paragraphParts.join('\n ');
61
123
  const documentXml = `<?xml version="1.0" encoding="UTF-8" standalone="yes"?>` +
62
124
  `<w:document xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main"` +
63
- ` xmlns:w14="http://schemas.microsoft.com/office/word/2010/wordml">` +
125
+ ` xmlns:w14="http://schemas.microsoft.com/office/word/2010/wordml"` +
126
+ ` xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"` +
127
+ ` mc:Ignorable="w14">` +
64
128
  `<w:body>${paragraphsXml}<w:sectPr/></w:body></w:document>`;
65
129
  const contentTypeParts = [
66
130
  `<Override PartName="/word/document.xml" ContentType="application/vnd.openxmlformats-officedocument.wordprocessingml.document.main+xml"/>`,
@@ -81,7 +145,20 @@ export async function buildSyntheticDocx(opts) {
81
145
  rIdCounter++;
82
146
  docRelEntries.push(`<Relationship Id="rId${rIdCounter}" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/footnotes" Target="footnotes.xml"/>`);
83
147
  }
84
- if (hasComment || hasCommentSpan) {
148
+ if (hasEndnote) {
149
+ const enText = opts.endnoteText ?? 'Test endnote';
150
+ const endnotesXml = `<?xml version="1.0" encoding="UTF-8" standalone="yes"?>` +
151
+ `<w:endnotes xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main">` +
152
+ `<w:endnote w:type="separator" w:id="-1"><w:p><w:r><w:separator/></w:r></w:p></w:endnote>` +
153
+ `<w:endnote w:type="continuationSeparator" w:id="0"><w:p><w:r><w:continuationSeparator/></w:r></w:p></w:endnote>` +
154
+ `<w:endnote w:id="1"><w:p><w:r><w:t>${enText}</w:t></w:r></w:p></w:endnote>` +
155
+ `</w:endnotes>`;
156
+ zip.file('word/endnotes.xml', endnotesXml);
157
+ contentTypeParts.push(`<Override PartName="/word/endnotes.xml" ContentType="application/vnd.openxmlformats-officedocument.wordprocessingml.endnotes+xml"/>`);
158
+ rIdCounter++;
159
+ docRelEntries.push(`<Relationship Id="rId${rIdCounter}" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/endnotes" Target="endnotes.xml"/>`);
160
+ }
161
+ if (hasComment || hasCommentSpan || hasSiblingCommentRange) {
85
162
  const cText = opts.commentText ?? 'Test comment';
86
163
  const cAuthor = opts.commentAuthor ?? 'Author';
87
164
  const hasReply = opts.replyText != null;
@@ -155,6 +232,55 @@ export async function buildSyntheticDocx(opts) {
155
232
  zip.file('word/_rels/document.xml.rels', docRelsXml);
156
233
  return (await zip.generateAsync({ type: 'nodebuffer' }));
157
234
  }
235
+ /**
236
+ * Build a loadable DOCX from raw part XML. The `testing/ooxml-fixtures.ts`
237
+ * `buildDocxFromBodyXml` covers the body-only case for docx-core's own tests, but it lives
238
+ * in the build-excluded testing tree; this builder is exported from the package root for
239
+ * downstream suites (odf-core's DOCX→ODT conversion tests) and additionally accepts the
240
+ * optional styles/numbering/relationship parts those tests exercise.
241
+ */
242
+ export async function buildDocxFromParts(opts) {
243
+ const zip = new JSZip();
244
+ const documentXml = `<?xml version="1.0" encoding="UTF-8" standalone="yes"?>` +
245
+ `<w:document xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main"` +
246
+ ` xmlns:w14="http://schemas.microsoft.com/office/word/2010/wordml"` +
247
+ ` xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships"` +
248
+ ` xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"` +
249
+ ` mc:Ignorable="w14">` +
250
+ `<w:body>${opts.bodyXml}<w:sectPr/></w:body></w:document>`;
251
+ const overrides = [
252
+ `<Override PartName="/word/document.xml" ContentType="application/vnd.openxmlformats-officedocument.wordprocessingml.document.main+xml"/>`,
253
+ ...(opts.stylesXml
254
+ ? [`<Override PartName="/word/styles.xml" ContentType="application/vnd.openxmlformats-officedocument.wordprocessingml.styles+xml"/>`]
255
+ : []),
256
+ ...(opts.numberingXml
257
+ ? [`<Override PartName="/word/numbering.xml" ContentType="application/vnd.openxmlformats-officedocument.wordprocessingml.numbering+xml"/>`]
258
+ : []),
259
+ ];
260
+ const contentTypesXml = `<?xml version="1.0" encoding="UTF-8" standalone="yes"?>` +
261
+ `<Types xmlns="http://schemas.openxmlformats.org/package/2006/content-types">` +
262
+ `<Default Extension="rels" ContentType="application/vnd.openxmlformats-package.relationships+xml"/>` +
263
+ `<Default Extension="xml" ContentType="application/xml"/>` +
264
+ overrides.join('') +
265
+ `</Types>`;
266
+ const rootRelsXml = `<?xml version="1.0" encoding="UTF-8" standalone="yes"?>` +
267
+ `<Relationships xmlns="http://schemas.openxmlformats.org/package/2006/relationships">` +
268
+ `<Relationship Id="rId1" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/officeDocument" Target="word/document.xml"/>` +
269
+ `</Relationships>`;
270
+ const docRelsXml = `<?xml version="1.0" encoding="UTF-8" standalone="yes"?>` +
271
+ `<Relationships xmlns="http://schemas.openxmlformats.org/package/2006/relationships">` +
272
+ (opts.documentRelEntries ?? []).join('') +
273
+ `</Relationships>`;
274
+ zip.file('[Content_Types].xml', contentTypesXml);
275
+ zip.file('_rels/.rels', rootRelsXml);
276
+ zip.file('word/document.xml', documentXml);
277
+ zip.file('word/_rels/document.xml.rels', docRelsXml);
278
+ if (opts.stylesXml)
279
+ zip.file('word/styles.xml', opts.stylesXml);
280
+ if (opts.numberingXml)
281
+ zip.file('word/numbering.xml', opts.numberingXml);
282
+ return (await zip.generateAsync({ type: 'nodebuffer' }));
283
+ }
158
284
  export async function getResultParts(resultBuffer) {
159
285
  const archive = await DocxArchive.load(resultBuffer);
160
286
  return {
@@ -163,6 +289,7 @@ export async function getResultParts(resultBuffer) {
163
289
  endnotesXml: await archive.getFile('word/endnotes.xml'),
164
290
  commentsXml: await archive.getFile('word/comments.xml'),
165
291
  commentsExtendedXml: await archive.getFile('word/commentsExtended.xml'),
292
+ commentsIdsXml: await archive.getFile('word/commentsIds.xml'),
166
293
  peopleXml: await archive.getFile('word/people.xml'),
167
294
  contentTypesXml: await archive.getFile('[Content_Types].xml'),
168
295
  relsXml: await archive.getFile('word/_rels/document.xml.rels'),
@@ -1 +1 @@
1
- {"version":3,"file":"synthetic-docx-fixture.js","sourceRoot":"","sources":["../../src/integration/synthetic-docx-fixture.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"synthetic-docx-fixture.js","sourceRoot":"","sources":["../../src/integration/synthetic-docx-fixture.ts"],"names":[],"mappings":"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"}
@@ -6,7 +6,8 @@
6
6
  * - Unwrapping w:ins elements (promoting children)
7
7
  * - Removing w:moveFrom (source), unwrapping w:moveTo (destination)
8
8
  * - Removing all *PrChange property change records
9
- * - Stripping paragraph-level revision markers
9
+ * - Stripping paragraph-level revision markers, merging a paragraph whose
10
+ * mark was a tracked deletion into the following paragraph
10
11
  * - Cleaning up move range markers and rsidDel attributes
11
12
  *
12
13
  * Operates on the W3C DOM (`@xmldom/xmldom`) — the same API used
@@ -20,8 +21,8 @@ export type AcceptChangesResult = {
20
21
  propertyChangesResolved: number;
21
22
  };
22
23
  /**
23
- * Accept all tracked changes in the document body, producing a clean
24
- * document with no revision markup.
24
+ * Accept all tracked changes in the document body or story root, producing a
25
+ * clean document with no revision markup.
25
26
  *
26
27
  * Mutates the Document in place (same convention as simplifyRedlines
27
28
  * and mergeRuns).
@@ -1 +1 @@
1
- {"version":3,"file":"accept_changes.d.ts","sourceRoot":"","sources":["../../src/primitives/accept_changes.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAMH,MAAM,MAAM,mBAAmB,GAAG;IAChC,kBAAkB,EAAE,MAAM,CAAC;IAC3B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,aAAa,EAAE,MAAM,CAAC;IACtB,uBAAuB,EAAE,MAAM,CAAC;CACjC,CAAC;AA8IF;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,QAAQ,GAAG,mBAAmB,CA0FhE"}
1
+ {"version":3,"file":"accept_changes.d.ts","sourceRoot":"","sources":["../../src/primitives/accept_changes.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAMH,MAAM,MAAM,mBAAmB,GAAG;IAChC,kBAAkB,EAAE,MAAM,CAAC;IAC3B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,aAAa,EAAE,MAAM,CAAC;IACtB,uBAAuB,EAAE,MAAM,CAAC;CACjC,CAAC;AA+NF;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,QAAQ,GAAG,mBAAmB,CA8FhE"}
@@ -6,7 +6,8 @@
6
6
  * - Unwrapping w:ins elements (promoting children)
7
7
  * - Removing w:moveFrom (source), unwrapping w:moveTo (destination)
8
8
  * - Removing all *PrChange property change records
9
- * - Stripping paragraph-level revision markers
9
+ * - Stripping paragraph-level revision markers, merging a paragraph whose
10
+ * mark was a tracked deletion into the following paragraph
10
11
  * - Cleaning up move range markers and rsidDel attributes
11
12
  *
12
13
  * Operates on the W3C DOM (`@xmldom/xmldom`) — the same API used
@@ -21,9 +22,6 @@ function isW(node, localName) {
21
22
  node.namespaceURI === W_NS &&
22
23
  node.localName === localName);
23
24
  }
24
- function isWElement(node) {
25
- return node.nodeType === 1 && node.namespaceURI === W_NS;
26
- }
27
25
  function getDepth(node) {
28
26
  let depth = 0;
29
27
  let cur = node.parentNode;
@@ -87,110 +85,198 @@ function paragraphHasParaMarker(p, markerLocalName) {
87
85
  }
88
86
  return false;
89
87
  }
90
- /**
91
- * Check if a node (or its descendants) contains any w:r elements.
92
- */
93
- function containsRun(node) {
94
- if (isW(node, 'r'))
95
- return true;
96
- for (let i = 0; i < node.childNodes.length; i++) {
97
- if (containsRun(node.childNodes[i]))
98
- return true;
99
- }
100
- return false;
101
- }
102
- // Tags that are "removed" content — should not count as live content
103
- const REMOVED_LOCALS = new Set(['del', 'moveFrom']);
104
- // Tags that are "kept" content — their presence means the paragraph has live content
105
- const KEPT_LOCALS = new Set(['ins', 'moveTo']);
106
- // Range marker tags to ignore when scanning paragraph children
107
- const RANGE_MARKER_LOCALS = new Set([
88
+ // Property change element local names (all 6 types)
89
+ const PR_CHANGE_LOCALS = [
90
+ 'rPrChange', 'pPrChange', 'sectPrChange',
91
+ 'tblPrChange', 'trPrChange', 'tcPrChange',
92
+ ];
93
+ // Marker-ish elements that may sit between two paragraphs at block level
94
+ // without ending the search for a merge target: the full EG_RangeMarkupElements
95
+ // schema group (wml.xsd), plus permStart/permEnd range markers and proofErr
96
+ // proofing anchors.
97
+ const RANGE_MARKUP_BLOCK_SIBLING_LOCALS = new Set([
98
+ 'bookmarkStart', 'bookmarkEnd',
99
+ 'commentRangeStart', 'commentRangeEnd',
108
100
  'moveFromRangeStart', 'moveFromRangeEnd',
109
101
  'moveToRangeStart', 'moveToRangeEnd',
102
+ 'customXmlInsRangeStart', 'customXmlInsRangeEnd',
103
+ 'customXmlDelRangeStart', 'customXmlDelRangeEnd',
104
+ 'customXmlMoveFromRangeStart', 'customXmlMoveFromRangeEnd',
105
+ 'customXmlMoveToRangeStart', 'customXmlMoveToRangeEnd',
106
+ 'permStart', 'permEnd',
107
+ 'proofErr',
110
108
  ]);
111
109
  /**
112
- * Determine if a paragraph's only content lives inside w:del or w:moveFrom
113
- * (no w:r outside those wrappers, and no w:ins/w:moveTo siblings).
110
+ * Find the next sibling paragraph a paragraph-mark revision can merge into,
111
+ * skipping block-level range/annotation markers. Returns null when the next
112
+ * block is not a paragraph (table, sdt, sectPr, end of parent).
114
113
  */
115
- function paragraphHasOnlyRemovedContent(p) {
114
+ function findFollowingSiblingParagraph(p) {
115
+ let sibling = p.nextSibling;
116
+ while (sibling) {
117
+ if (sibling.nodeType === 1) {
118
+ if (isW(sibling, 'p'))
119
+ return sibling;
120
+ const el = sibling;
121
+ if (el.namespaceURI === W_NS && RANGE_MARKUP_BLOCK_SIBLING_LOCALS.has(el.localName ?? '')) {
122
+ sibling = sibling.nextSibling;
123
+ continue;
124
+ }
125
+ return null;
126
+ }
127
+ sibling = sibling.nextSibling;
128
+ }
129
+ return null;
130
+ }
131
+ /** True iff the paragraph still holds content beyond w:pPr and bare annotation markers. */
132
+ function paragraphHasContent(p) {
116
133
  for (let i = 0; i < p.childNodes.length; i++) {
117
134
  const child = p.childNodes[i];
118
135
  if (child.nodeType !== 1)
119
136
  continue;
137
+ if (isW(child, 'pPr'))
138
+ continue;
120
139
  const el = child;
121
- if (el.namespaceURI !== W_NS)
140
+ if (el.namespaceURI === W_NS && RANGE_MARKUP_BLOCK_SIBLING_LOCALS.has(el.localName ?? ''))
122
141
  continue;
123
- const local = el.localName;
124
- // If the paragraph has kept content wrappers, it stays
125
- if (KEPT_LOCALS.has(local))
126
- return false;
127
- // Skip pPr, range markers, and removed wrappers — they don't contribute live content
128
- if (local === 'pPr' || RANGE_MARKER_LOCALS.has(local) || REMOVED_LOCALS.has(local))
142
+ return true;
143
+ }
144
+ return false;
145
+ }
146
+ /**
147
+ * True iff removing an emptied mark-revised paragraph keeps its parent
148
+ * structurally valid for Word: the parent must retain at least one block
149
+ * element, must not end on a w:tbl (a trailing table needs a following
150
+ * paragraph), and two tables must not become adjacent (Word merges
151
+ * back-to-back tables). w:sectPr is ignored — a trailing body sectPr is not a
152
+ * block element.
153
+ */
154
+ function canSafelyRemoveEmptyParagraph(p) {
155
+ const blockSibling = (start, dir) => {
156
+ let sibling = start;
157
+ while (sibling) {
158
+ if (sibling.nodeType === 1) {
159
+ const el = sibling;
160
+ if ((el.namespaceURI === W_NS && RANGE_MARKUP_BLOCK_SIBLING_LOCALS.has(el.localName ?? '')) ||
161
+ isW(el, 'sectPr')) {
162
+ sibling = sibling[dir];
163
+ continue;
164
+ }
165
+ return el;
166
+ }
167
+ sibling = sibling[dir];
168
+ }
169
+ return null;
170
+ };
171
+ const prev = blockSibling(p.previousSibling, 'previousSibling');
172
+ const next = blockSibling(p.nextSibling, 'nextSibling');
173
+ if (!prev && !next)
174
+ return false;
175
+ if (prev && isW(prev, 'tbl') && !next)
176
+ return false;
177
+ if (prev && next && isW(prev, 'tbl') && isW(next, 'tbl'))
178
+ return false;
179
+ return true;
180
+ }
181
+ /**
182
+ * Resolve a paragraph whose paragraph MARK revision was applied (deleted mark
183
+ * accepted): the paragraph break disappears, so the paragraph's remaining
184
+ * content merges into the FOLLOWING paragraph. The surviving (following)
185
+ * paragraph keeps its own w:pPr — formatting follows the surviving paragraph
186
+ * mark — and the merged-away paragraph's w:pPr is dropped.
187
+ *
188
+ * The revision targets only the mark, never the paragraph's contents, so the
189
+ * contents must not be dropped wholesale. When no following sibling paragraph
190
+ * exists (last block, or the next block is a table), there is no break to
191
+ * remove into: content-bearing paragraphs are kept, and emptied ones are
192
+ * removed only where removal keeps the parent structurally valid
193
+ * (canSafelyRemoveEmptyParagraph).
194
+ *
195
+ * @conformance ECMA-376 edition 5, Part 1 § 17.13.5.15
196
+ * @see https://github.com/UseJunior/safe-docx/issues/431
197
+ */
198
+ function resolveParagraphMarkRevision(p) {
199
+ const parent = p.parentNode;
200
+ if (!parent)
201
+ return;
202
+ const target = findFollowingSiblingParagraph(p);
203
+ if (!target) {
204
+ if (!paragraphHasContent(p) && canSafelyRemoveEmptyParagraph(p)) {
205
+ parent.removeChild(p);
206
+ }
207
+ return;
208
+ }
209
+ // Insertion point: before the target's first non-pPr child (the merged
210
+ // content precedes the target's own content in document order).
211
+ let ref = null;
212
+ for (let i = 0; i < target.childNodes.length; i++) {
213
+ const c = target.childNodes[i];
214
+ if (c.nodeType === 1 && isW(c, 'pPr'))
129
215
  continue;
130
- // A bare w:r or any other element that contains runs means live content
131
- if (local === 'r' || containsRun(el))
132
- return false;
216
+ ref = c;
217
+ break;
133
218
  }
134
- // We passed all children without finding live content — but there must be
135
- // at least one removed wrapper for this to be a "removed content" paragraph
219
+ const toMove = [];
136
220
  for (let i = 0; i < p.childNodes.length; i++) {
137
- const child = p.childNodes[i];
138
- if (child.nodeType === 1 && isWElement(child) && REMOVED_LOCALS.has(child.localName)) {
139
- return true;
140
- }
221
+ const c = p.childNodes[i];
222
+ if (c.nodeType === 1 && isW(c, 'pPr'))
223
+ continue;
224
+ toMove.push(c);
141
225
  }
142
- return false;
226
+ for (const c of toMove) {
227
+ target.insertBefore(c, ref);
228
+ }
229
+ parent.removeChild(p);
143
230
  }
144
- // Property change element local names (all 6 types)
145
- const PR_CHANGE_LOCALS = [
146
- 'rPrChange', 'pPrChange', 'sectPrChange',
147
- 'tblPrChange', 'trPrChange', 'tcPrChange',
148
- ];
149
231
  // ── Public API ──────────────────────────────────────────────────────
150
232
  /**
151
- * Accept all tracked changes in the document body, producing a clean
152
- * document with no revision markup.
233
+ * Accept all tracked changes in the document body or story root, producing a
234
+ * clean document with no revision markup.
153
235
  *
154
236
  * Mutates the Document in place (same convention as simplifyRedlines
155
237
  * and mergeRuns).
156
238
  */
157
239
  export function acceptChanges(doc) {
158
- const body = doc.getElementsByTagNameNS(W_NS, 'body').item(0);
159
- if (!body) {
240
+ const root = doc.getElementsByTagNameNS(W_NS, 'body').item(0) ?? doc.documentElement;
241
+ if (!root) {
160
242
  return { insertionsAccepted: 0, deletionsAccepted: 0, movesResolved: 0, propertyChangesResolved: 0 };
161
243
  }
162
- // Phase A — Identify paragraphs to remove
163
- const paragraphsToRemove = new Set();
164
- const allParagraphs = collectByLocalName(body, 'p');
244
+ // Phase A — Identify paragraphs whose MARK is a tracked deletion
245
+ const markDeletedParagraphs = [];
246
+ const allParagraphs = collectByLocalName(root, 'p');
165
247
  for (const p of allParagraphs) {
166
- // Paragraph-level deletion marker: w:p > w:pPr > w:rPr > w:del
248
+ // A paragraph-mark deletion (w:p > w:pPr > w:rPr > w:del) means the
249
+ // paragraph BREAK was deleted — accepting it merges the paragraph into the
250
+ // following one (resolveParagraphMarkRevision); the contents are deleted
251
+ // only via their own run-level w:del wrappers.
252
+ // We deliberately do NOT touch a paragraph based on content ("all runs inside
253
+ // w:del/w:moveFrom"): a run-level deletion under an untracked mark means text was
254
+ // deleted from a pre-existing paragraph, which Word/LibreOffice keep (empty) on
255
+ // accept. safe-docx's deleted paragraphs always carry the mark now, so the
256
+ // mark-based rule suffices and is Word-faithful. (Mirrors acceptAllChanges and the
257
+ // reject-side rule.)
167
258
  if (paragraphHasParaMarker(p, 'del')) {
168
- paragraphsToRemove.add(p);
169
- continue;
170
- }
171
- // Paragraphs whose only content is inside w:del or w:moveFrom
172
- if (paragraphHasOnlyRemovedContent(p)) {
173
- paragraphsToRemove.add(p);
259
+ markDeletedParagraphs.push(p);
174
260
  }
175
261
  }
176
262
  // Phase B — Remove deletions and move sources
177
- const deletionsAccepted = removeAllByLocalName(body, 'del');
178
- const moveFromRemoved = removeAllByLocalName(body, 'moveFrom');
179
- removeAllByLocalName(body, 'moveFromRangeStart');
180
- removeAllByLocalName(body, 'moveFromRangeEnd');
181
- removeAllByLocalName(body, 'moveToRangeStart');
182
- removeAllByLocalName(body, 'moveToRangeEnd');
263
+ const deletionsAccepted = removeAllByLocalName(root, 'del');
264
+ const moveFromRemoved = removeAllByLocalName(root, 'moveFrom');
265
+ removeAllByLocalName(root, 'moveFromRangeStart');
266
+ removeAllByLocalName(root, 'moveFromRangeEnd');
267
+ removeAllByLocalName(root, 'moveToRangeStart');
268
+ removeAllByLocalName(root, 'moveToRangeEnd');
183
269
  // Phase C — Unwrap insertions and move destinations (depth-sorted)
184
- const insertionsAccepted = unwrapAllByLocalName(body, 'ins');
185
- const moveToUnwrapped = unwrapAllByLocalName(body, 'moveTo');
270
+ const insertionsAccepted = unwrapAllByLocalName(root, 'ins');
271
+ const moveToUnwrapped = unwrapAllByLocalName(root, 'moveTo');
186
272
  // Phase D — Remove property change records
187
273
  let propertyChangesResolved = 0;
188
274
  for (const localName of PR_CHANGE_LOCALS) {
189
- propertyChangesResolved += removeAllByLocalName(body, localName);
275
+ propertyChangesResolved += removeAllByLocalName(root, localName);
190
276
  }
191
277
  // Phase E — Cleanup
192
278
  // Strip paragraph-level revision markers from w:pPr/w:rPr
193
- for (const p of collectByLocalName(body, 'p')) {
279
+ for (const p of collectByLocalName(root, 'p')) {
194
280
  for (let i = 0; i < p.childNodes.length; i++) {
195
281
  const child = p.childNodes[i];
196
282
  if (!isW(child, 'pPr'))
@@ -213,14 +299,14 @@ export function acceptChanges(doc) {
213
299
  }
214
300
  }
215
301
  }
216
- // Remove paragraphs collected in Phase A (check parentNode still exists)
217
- for (const p of paragraphsToRemove) {
218
- if (p.parentNode) {
219
- p.parentNode.removeChild(p);
220
- }
302
+ // Resolve paragraphs collected in Phase A: merge each into its following
303
+ // paragraph (document order, so consecutive mark-deleted paragraphs cascade
304
+ // forward into the first surviving one).
305
+ for (const p of markDeletedParagraphs) {
306
+ resolveParagraphMarkRevision(p);
221
307
  }
222
308
  // Strip w:rsidDel attributes on remaining elements
223
- const allElements = body.getElementsByTagNameNS(W_NS, '*');
309
+ const allElements = root.getElementsByTagNameNS(W_NS, '*');
224
310
  for (let i = 0; i < allElements.length; i++) {
225
311
  const el = allElements[i];
226
312
  if (el.hasAttributeNS(W_NS, 'rsidDel')) {
@@ -1 +1 @@
1
- {"version":3,"file":"accept_changes.js","sourceRoot":"","sources":["../../src/primitives/accept_changes.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"accept_changes.js","sourceRoot":"","sources":["../../src/primitives/accept_changes.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAExC,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;AASxB,uEAAuE;AAEvE,SAAS,GAAG,CAAC,IAAU,EAAE,SAAiB;IACxC,OAAO,CACL,IAAI,CAAC,QAAQ,KAAK,CAAC;QAClB,IAAgB,CAAC,YAAY,KAAK,IAAI;QACtC,IAAgB,CAAC,SAAS,KAAK,SAAS,CAC1C,CAAC;AACJ,CAAC;AAED,SAAS,QAAQ,CAAC,IAAU;IAC1B,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,IAAI,GAAG,GAAgB,IAAI,CAAC,UAAU,CAAC;IACvC,OAAO,GAAG,EAAE,CAAC;QACX,KAAK,EAAE,CAAC;QACR,GAAG,GAAG,GAAG,CAAC,UAAU,CAAC;IACvB,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,kBAAkB,CAAC,SAA6B,EAAE,SAAiB;IAC1E,OAAO,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,sBAAsB,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC;AACvE,CAAC;AAED,SAAS,oBAAoB,CAAC,SAA6B,EAAE,SAAiB;IAC5E,MAAM,QAAQ,GAAG,kBAAkB,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;IAC1D,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,KAAK,MAAM,EAAE,IAAI,QAAQ,EAAE,CAAC;QAC1B,IAAI,EAAE,CAAC,UAAU,EAAE,CAAC;YAClB,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;YAC9B,KAAK,EAAE,CAAC;QACV,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,oBAAoB,CAAC,SAA6B,EAAE,SAAiB;IAC5E,MAAM,QAAQ,GAAG,kBAAkB,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;IAC1D,yDAAyD;IACzD,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;IACnD,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,KAAK,MAAM,EAAE,IAAI,QAAQ,EAAE,CAAC;QAC1B,MAAM,MAAM,GAAG,EAAE,CAAC,UAAU,CAAC;QAC7B,IAAI,CAAC,MAAM;YAAE,SAAS;QACtB,qCAAqC;QACrC,OAAO,EAAE,CAAC,UAAU,EAAE,CAAC;YACrB,MAAM,CAAC,YAAY,CAAC,EAAE,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;QACzC,CAAC;QACD,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;QACvB,KAAK,EAAE,CAAC;IACV,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;GAGG;AACH,SAAS,sBAAsB,CAAC,CAAU,EAAE,eAAuB;IACjE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAC7C,MAAM,KAAK,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC,CAAE,CAAC;QAC/B,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC;YAAE,SAAS;QACjC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACjD,MAAM,QAAQ,GAAG,KAAK,CAAC,UAAU,CAAC,CAAC,CAAE,CAAC;YACtC,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,CAAC;gBAAE,SAAS;YACpC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBACpD,MAAM,QAAQ,GAAG,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAE,CAAC;gBACzC,IAAI,GAAG,CAAC,QAAQ,EAAE,eAAe,CAAC;oBAAE,OAAO,IAAI,CAAC;YAClD,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,oDAAoD;AACpD,MAAM,gBAAgB,GAAG;IACvB,WAAW,EAAE,WAAW,EAAE,cAAc;IACxC,aAAa,EAAE,YAAY,EAAE,YAAY;CAC1C,CAAC;AAEF,yEAAyE;AACzE,gFAAgF;AAChF,4EAA4E;AAC5E,oBAAoB;AACpB,MAAM,iCAAiC,GAAG,IAAI,GAAG,CAAC;IAChD,eAAe,EAAE,aAAa;IAC9B,mBAAmB,EAAE,iBAAiB;IACtC,oBAAoB,EAAE,kBAAkB;IACxC,kBAAkB,EAAE,gBAAgB;IACpC,wBAAwB,EAAE,sBAAsB;IAChD,wBAAwB,EAAE,sBAAsB;IAChD,6BAA6B,EAAE,2BAA2B;IAC1D,2BAA2B,EAAE,yBAAyB;IACtD,WAAW,EAAE,SAAS;IACtB,UAAU;CACX,CAAC,CAAC;AAEH;;;;GAIG;AACH,SAAS,6BAA6B,CAAC,CAAU;IAC/C,IAAI,OAAO,GAAgB,CAAC,CAAC,WAAW,CAAC;IACzC,OAAO,OAAO,EAAE,CAAC;QACf,IAAI,OAAO,CAAC,QAAQ,KAAK,CAAC,EAAE,CAAC;YAC3B,IAAI,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC;gBAAE,OAAO,OAAO,CAAC;YACtC,MAAM,EAAE,GAAG,OAAkB,CAAC;YAC9B,IAAI,EAAE,CAAC,YAAY,KAAK,IAAI,IAAI,iCAAiC,CAAC,GAAG,CAAC,EAAE,CAAC,SAAS,IAAI,EAAE,CAAC,EAAE,CAAC;gBAC1F,OAAO,GAAG,OAAO,CAAC,WAAW,CAAC;gBAC9B,SAAS;YACX,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC;QACD,OAAO,GAAG,OAAO,CAAC,WAAW,CAAC;IAChC,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,2FAA2F;AAC3F,SAAS,mBAAmB,CAAC,CAAU;IACrC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAC7C,MAAM,KAAK,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC,CAAE,CAAC;QAC/B,IAAI,KAAK,CAAC,QAAQ,KAAK,CAAC;YAAE,SAAS;QACnC,IAAI,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC;YAAE,SAAS;QAChC,MAAM,EAAE,GAAG,KAAgB,CAAC;QAC5B,IAAI,EAAE,CAAC,YAAY,KAAK,IAAI,IAAI,iCAAiC,CAAC,GAAG,CAAC,EAAE,CAAC,SAAS,IAAI,EAAE,CAAC;YAAE,SAAS;QACpG,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;;;;GAOG;AACH,SAAS,6BAA6B,CAAC,CAAU;IAC/C,MAAM,YAAY,GAAG,CAAC,KAAkB,EAAE,GAAsC,EAAkB,EAAE;QAClG,IAAI,OAAO,GAAG,KAAK,CAAC;QACpB,OAAO,OAAO,EAAE,CAAC;YACf,IAAI,OAAO,CAAC,QAAQ,KAAK,CAAC,EAAE,CAAC;gBAC3B,MAAM,EAAE,GAAG,OAAkB,CAAC;gBAC9B,IACE,CAAC,EAAE,CAAC,YAAY,KAAK,IAAI,IAAI,iCAAiC,CAAC,GAAG,CAAC,EAAE,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC;oBACvF,GAAG,CAAC,EAAE,EAAE,QAAQ,CAAC,EACjB,CAAC;oBACD,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;oBACvB,SAAS;gBACX,CAAC;gBACD,OAAO,EAAE,CAAC;YACZ,CAAC;YACD,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;QACzB,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC,CAAC;IAEF,MAAM,IAAI,GAAG,YAAY,CAAC,CAAC,CAAC,eAAe,EAAE,iBAAiB,CAAC,CAAC;IAChE,MAAM,IAAI,GAAG,YAAY,CAAC,CAAC,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC;IACxD,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI;QAAE,OAAO,KAAK,CAAC;IACjC,IAAI,IAAI,IAAI,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI;QAAE,OAAO,KAAK,CAAC;IACpD,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IACvE,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,SAAS,4BAA4B,CAAC,CAAU;IAC9C,MAAM,MAAM,GAAG,CAAC,CAAC,UAAU,CAAC;IAC5B,IAAI,CAAC,MAAM;QAAE,OAAO;IAEpB,MAAM,MAAM,GAAG,6BAA6B,CAAC,CAAC,CAAC,CAAC;IAChD,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC,IAAI,6BAA6B,CAAC,CAAC,CAAC,EAAE,CAAC;YAChE,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;QACxB,CAAC;QACD,OAAO;IACT,CAAC;IAED,uEAAuE;IACvE,gEAAgE;IAChE,IAAI,GAAG,GAAgB,IAAI,CAAC;IAC5B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAClD,MAAM,CAAC,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC,CAAE,CAAC;QAChC,IAAI,CAAC,CAAC,QAAQ,KAAK,CAAC,IAAI,GAAG,CAAC,CAAY,EAAE,KAAK,CAAC;YAAE,SAAS;QAC3D,GAAG,GAAG,CAAC,CAAC;QACR,MAAM;IACR,CAAC;IAED,MAAM,MAAM,GAAW,EAAE,CAAC;IAC1B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAC7C,MAAM,CAAC,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC,CAAE,CAAC;QAC3B,IAAI,CAAC,CAAC,QAAQ,KAAK,CAAC,IAAI,GAAG,CAAC,CAAY,EAAE,KAAK,CAAC;YAAE,SAAS;QAC3D,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACjB,CAAC;IACD,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;QACvB,MAAM,CAAC,YAAY,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IAC9B,CAAC;IACD,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;AACxB,CAAC;AAED,uEAAuE;AAEvE;;;;;;GAMG;AACH,MAAM,UAAU,aAAa,CAAC,GAAa;IACzC,MAAM,IAAI,GAAG,GAAG,CAAC,sBAAsB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,eAAe,CAAC;IACrF,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,OAAO,EAAE,kBAAkB,EAAE,CAAC,EAAE,iBAAiB,EAAE,CAAC,EAAE,aAAa,EAAE,CAAC,EAAE,uBAAuB,EAAE,CAAC,EAAE,CAAC;IACvG,CAAC;IAED,iEAAiE;IACjE,MAAM,qBAAqB,GAAc,EAAE,CAAC;IAC5C,MAAM,aAAa,GAAG,kBAAkB,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IAEpD,KAAK,MAAM,CAAC,IAAI,aAAa,EAAE,CAAC;QAC9B,oEAAoE;QACpE,2EAA2E;QAC3E,yEAAyE;QACzE,+CAA+C;QAC/C,8EAA8E;QAC9E,kFAAkF;QAClF,gFAAgF;QAChF,2EAA2E;QAC3E,mFAAmF;QACnF,qBAAqB;QACrB,IAAI,sBAAsB,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,CAAC;YACrC,qBAAqB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAChC,CAAC;IACH,CAAC;IAED,8CAA8C;IAC9C,MAAM,iBAAiB,GAAG,oBAAoB,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IAC5D,MAAM,eAAe,GAAG,oBAAoB,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;IAC/D,oBAAoB,CAAC,IAAI,EAAE,oBAAoB,CAAC,CAAC;IACjD,oBAAoB,CAAC,IAAI,EAAE,kBAAkB,CAAC,CAAC;IAC/C,oBAAoB,CAAC,IAAI,EAAE,kBAAkB,CAAC,CAAC;IAC/C,oBAAoB,CAAC,IAAI,EAAE,gBAAgB,CAAC,CAAC;IAE7C,mEAAmE;IACnE,MAAM,kBAAkB,GAAG,oBAAoB,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IAC7D,MAAM,eAAe,GAAG,oBAAoB,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IAE7D,2CAA2C;IAC3C,IAAI,uBAAuB,GAAG,CAAC,CAAC;IAChC,KAAK,MAAM,SAAS,IAAI,gBAAgB,EAAE,CAAC;QACzC,uBAAuB,IAAI,oBAAoB,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IACnE,CAAC;IAED,oBAAoB;IACpB,0DAA0D;IAC1D,KAAK,MAAM,CAAC,IAAI,kBAAkB,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,CAAC;QAC9C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAC7C,MAAM,KAAK,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC,CAAE,CAAC;YAC/B,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC;gBAAE,SAAS;YACjC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBACjD,MAAM,QAAQ,GAAG,KAAK,CAAC,UAAU,CAAC,CAAC,CAAE,CAAC;gBACtC,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,CAAC;oBAAE,SAAS;gBACpC,0DAA0D;gBAC1D,MAAM,QAAQ,GAAc,EAAE,CAAC;gBAC/B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;oBACpD,MAAM,QAAQ,GAAG,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAE,CAAC;oBACzC,IAAI,GAAG,CAAC,QAAQ,EAAE,KAAK,CAAC,IAAI,GAAG,CAAC,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC;wBACjD,QAAQ,CAAC,IAAI,CAAC,QAAmB,CAAC,CAAC;oBACrC,CAAC;gBACH,CAAC;gBACD,KAAK,MAAM,EAAE,IAAI,QAAQ,EAAE,CAAC;oBAC1B,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;gBAC3B,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,yEAAyE;IACzE,4EAA4E;IAC5E,yCAAyC;IACzC,KAAK,MAAM,CAAC,IAAI,qBAAqB,EAAE,CAAC;QACtC,4BAA4B,CAAC,CAAC,CAAC,CAAC;IAClC,CAAC;IAED,mDAAmD;IACnD,MAAM,WAAW,GAAG,IAAI,CAAC,sBAAsB,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IAC3D,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAC5C,MAAM,EAAE,GAAG,WAAW,CAAC,CAAC,CAAE,CAAC;QAC3B,IAAI,EAAE,CAAC,cAAc,CAAC,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC;YACvC,EAAE,CAAC,iBAAiB,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;QACxC,CAAC;QACD,2BAA2B;QAC3B,IAAI,EAAE,CAAC,YAAY,CAAC,WAAW,CAAC,EAAE,CAAC;YACjC,EAAE,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC;QAClC,CAAC;IACH,CAAC;IAED,OAAO;QACL,kBAAkB;QAClB,iBAAiB;QACjB,aAAa,EAAE,eAAe,GAAG,eAAe;QAChD,uBAAuB;KACxB,CAAC;AACJ,CAAC"}