open-agreements 0.3.0 → 0.4.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 (429) hide show
  1. package/content/templates/closing-checklist/template.docx +0 -0
  2. package/dist/core/checklist/docx-import.d.ts +50 -0
  3. package/dist/core/checklist/docx-import.d.ts.map +1 -0
  4. package/dist/core/checklist/docx-import.js +613 -0
  5. package/dist/core/checklist/docx-import.js.map +1 -0
  6. package/dist/core/checklist/docx-table-helpers.d.ts +33 -0
  7. package/dist/core/checklist/docx-table-helpers.d.ts.map +1 -0
  8. package/dist/core/checklist/docx-table-helpers.js +154 -0
  9. package/dist/core/checklist/docx-table-helpers.js.map +1 -0
  10. package/dist/core/checklist/format-checklist-docx.d.ts.map +1 -1
  11. package/dist/core/checklist/format-checklist-docx.js +37 -88
  12. package/dist/core/checklist/format-checklist-docx.js.map +1 -1
  13. package/dist/core/checklist/index.d.ts +15 -12
  14. package/dist/core/checklist/index.d.ts.map +1 -1
  15. package/dist/core/checklist/index.js +48 -30
  16. package/dist/core/checklist/index.js.map +1 -1
  17. package/dist/core/checklist/status-labels.d.ts +6 -0
  18. package/dist/core/checklist/status-labels.d.ts.map +1 -1
  19. package/dist/core/checklist/status-labels.js +8 -0
  20. package/dist/core/checklist/status-labels.js.map +1 -1
  21. package/dist/index.d.ts +1 -1
  22. package/dist/index.d.ts.map +1 -1
  23. package/dist/index.js +1 -1
  24. package/dist/index.js.map +1 -1
  25. package/node_modules/@usejunior/docx-core/dist/atomizer.d.ts +218 -0
  26. package/node_modules/@usejunior/docx-core/dist/atomizer.d.ts.map +1 -0
  27. package/node_modules/@usejunior/docx-core/dist/atomizer.js +869 -0
  28. package/node_modules/@usejunior/docx-core/dist/atomizer.js.map +1 -0
  29. package/node_modules/@usejunior/docx-core/dist/baselines/atomizer/atomLcs.d.ts +96 -0
  30. package/node_modules/@usejunior/docx-core/dist/baselines/atomizer/atomLcs.d.ts.map +1 -0
  31. package/node_modules/@usejunior/docx-core/dist/baselines/atomizer/atomLcs.js +347 -0
  32. package/node_modules/@usejunior/docx-core/dist/baselines/atomizer/atomLcs.js.map +1 -0
  33. package/node_modules/@usejunior/docx-core/dist/baselines/atomizer/consumerCompatibility.d.ts +2 -0
  34. package/node_modules/@usejunior/docx-core/dist/baselines/atomizer/consumerCompatibility.d.ts.map +1 -0
  35. package/node_modules/@usejunior/docx-core/dist/baselines/atomizer/consumerCompatibility.js +188 -0
  36. package/node_modules/@usejunior/docx-core/dist/baselines/atomizer/consumerCompatibility.js.map +1 -0
  37. package/node_modules/@usejunior/docx-core/dist/baselines/atomizer/debug.d.ts +41 -0
  38. package/node_modules/@usejunior/docx-core/dist/baselines/atomizer/debug.d.ts.map +1 -0
  39. package/node_modules/@usejunior/docx-core/dist/baselines/atomizer/debug.js +85 -0
  40. package/node_modules/@usejunior/docx-core/dist/baselines/atomizer/debug.js.map +1 -0
  41. package/node_modules/@usejunior/docx-core/dist/baselines/atomizer/documentReconstructor.d.ts +64 -0
  42. package/node_modules/@usejunior/docx-core/dist/baselines/atomizer/documentReconstructor.d.ts.map +1 -0
  43. package/node_modules/@usejunior/docx-core/dist/baselines/atomizer/documentReconstructor.js +985 -0
  44. package/node_modules/@usejunior/docx-core/dist/baselines/atomizer/documentReconstructor.js.map +1 -0
  45. package/node_modules/@usejunior/docx-core/dist/baselines/atomizer/hierarchicalLcs.d.ts +111 -0
  46. package/node_modules/@usejunior/docx-core/dist/baselines/atomizer/hierarchicalLcs.d.ts.map +1 -0
  47. package/node_modules/@usejunior/docx-core/dist/baselines/atomizer/hierarchicalLcs.js +469 -0
  48. package/node_modules/@usejunior/docx-core/dist/baselines/atomizer/hierarchicalLcs.js.map +1 -0
  49. package/node_modules/@usejunior/docx-core/dist/baselines/atomizer/inPlaceModifier.d.ts +277 -0
  50. package/node_modules/@usejunior/docx-core/dist/baselines/atomizer/inPlaceModifier.d.ts.map +1 -0
  51. package/node_modules/@usejunior/docx-core/dist/baselines/atomizer/inPlaceModifier.js +2279 -0
  52. package/node_modules/@usejunior/docx-core/dist/baselines/atomizer/inPlaceModifier.js.map +1 -0
  53. package/node_modules/@usejunior/docx-core/dist/baselines/atomizer/numberingIntegration.d.ts +59 -0
  54. package/node_modules/@usejunior/docx-core/dist/baselines/atomizer/numberingIntegration.d.ts.map +1 -0
  55. package/node_modules/@usejunior/docx-core/dist/baselines/atomizer/numberingIntegration.js +209 -0
  56. package/node_modules/@usejunior/docx-core/dist/baselines/atomizer/numberingIntegration.js.map +1 -0
  57. package/node_modules/@usejunior/docx-core/dist/baselines/atomizer/pipeline.d.ts +69 -0
  58. package/node_modules/@usejunior/docx-core/dist/baselines/atomizer/pipeline.d.ts.map +1 -0
  59. package/node_modules/@usejunior/docx-core/dist/baselines/atomizer/pipeline.js +910 -0
  60. package/node_modules/@usejunior/docx-core/dist/baselines/atomizer/pipeline.js.map +1 -0
  61. package/node_modules/@usejunior/docx-core/dist/baselines/atomizer/premergeRuns.d.ts +26 -0
  62. package/node_modules/@usejunior/docx-core/dist/baselines/atomizer/premergeRuns.d.ts.map +1 -0
  63. package/node_modules/@usejunior/docx-core/dist/baselines/atomizer/premergeRuns.js +153 -0
  64. package/node_modules/@usejunior/docx-core/dist/baselines/atomizer/premergeRuns.js.map +1 -0
  65. package/node_modules/@usejunior/docx-core/dist/baselines/atomizer/trackChangesAcceptor.d.ts +63 -0
  66. package/node_modules/@usejunior/docx-core/dist/baselines/atomizer/trackChangesAcceptor.d.ts.map +1 -0
  67. package/node_modules/@usejunior/docx-core/dist/baselines/atomizer/trackChangesAcceptor.js +254 -0
  68. package/node_modules/@usejunior/docx-core/dist/baselines/atomizer/trackChangesAcceptor.js.map +1 -0
  69. package/node_modules/@usejunior/docx-core/dist/baselines/atomizer/trackChangesAcceptorAst.d.ts +64 -0
  70. package/node_modules/@usejunior/docx-core/dist/baselines/atomizer/trackChangesAcceptorAst.d.ts.map +1 -0
  71. package/node_modules/@usejunior/docx-core/dist/baselines/atomizer/trackChangesAcceptorAst.js +616 -0
  72. package/node_modules/@usejunior/docx-core/dist/baselines/atomizer/trackChangesAcceptorAst.js.map +1 -0
  73. package/node_modules/@usejunior/docx-core/dist/baselines/atomizer/xmlToWmlElement.d.ts +65 -0
  74. package/node_modules/@usejunior/docx-core/dist/baselines/atomizer/xmlToWmlElement.d.ts.map +1 -0
  75. package/node_modules/@usejunior/docx-core/dist/baselines/atomizer/xmlToWmlElement.js +95 -0
  76. package/node_modules/@usejunior/docx-core/dist/baselines/atomizer/xmlToWmlElement.js.map +1 -0
  77. package/node_modules/@usejunior/docx-core/dist/baselines/wmlcomparer/DocxodusWasm.d.ts +51 -0
  78. package/node_modules/@usejunior/docx-core/dist/baselines/wmlcomparer/DocxodusWasm.d.ts.map +1 -0
  79. package/node_modules/@usejunior/docx-core/dist/baselines/wmlcomparer/DocxodusWasm.js +83 -0
  80. package/node_modules/@usejunior/docx-core/dist/baselines/wmlcomparer/DocxodusWasm.js.map +1 -0
  81. package/node_modules/@usejunior/docx-core/dist/baselines/wmlcomparer/DotnetCli.d.ts +40 -0
  82. package/node_modules/@usejunior/docx-core/dist/baselines/wmlcomparer/DotnetCli.d.ts.map +1 -0
  83. package/node_modules/@usejunior/docx-core/dist/baselines/wmlcomparer/DotnetCli.js +135 -0
  84. package/node_modules/@usejunior/docx-core/dist/baselines/wmlcomparer/DotnetCli.js.map +1 -0
  85. package/node_modules/@usejunior/docx-core/dist/cli/compare-two.d.ts +28 -0
  86. package/node_modules/@usejunior/docx-core/dist/cli/compare-two.d.ts.map +1 -0
  87. package/node_modules/@usejunior/docx-core/dist/cli/compare-two.js +110 -0
  88. package/node_modules/@usejunior/docx-core/dist/cli/compare-two.js.map +1 -0
  89. package/node_modules/@usejunior/docx-core/dist/cli/index.d.ts +3 -0
  90. package/node_modules/@usejunior/docx-core/dist/cli/index.d.ts.map +1 -0
  91. package/node_modules/@usejunior/docx-core/dist/cli/index.js +21 -0
  92. package/node_modules/@usejunior/docx-core/dist/cli/index.js.map +1 -0
  93. package/node_modules/@usejunior/docx-core/dist/core-types.d.ts +296 -0
  94. package/node_modules/@usejunior/docx-core/dist/core-types.d.ts.map +1 -0
  95. package/node_modules/@usejunior/docx-core/dist/core-types.js +122 -0
  96. package/node_modules/@usejunior/docx-core/dist/core-types.js.map +1 -0
  97. package/node_modules/@usejunior/docx-core/dist/footnotes.d.ts +144 -0
  98. package/node_modules/@usejunior/docx-core/dist/footnotes.d.ts.map +1 -0
  99. package/node_modules/@usejunior/docx-core/dist/footnotes.js +291 -0
  100. package/node_modules/@usejunior/docx-core/dist/footnotes.js.map +1 -0
  101. package/node_modules/@usejunior/docx-core/dist/format-detection.d.ts +120 -0
  102. package/node_modules/@usejunior/docx-core/dist/format-detection.d.ts.map +1 -0
  103. package/node_modules/@usejunior/docx-core/dist/format-detection.js +338 -0
  104. package/node_modules/@usejunior/docx-core/dist/format-detection.js.map +1 -0
  105. package/node_modules/@usejunior/docx-core/dist/index.d.ts +177 -0
  106. package/node_modules/@usejunior/docx-core/dist/index.d.ts.map +1 -0
  107. package/node_modules/@usejunior/docx-core/dist/index.js +55 -0
  108. package/node_modules/@usejunior/docx-core/dist/index.js.map +1 -0
  109. package/node_modules/@usejunior/docx-core/dist/integration/output-artifacts.d.ts +6 -0
  110. package/node_modules/@usejunior/docx-core/dist/integration/output-artifacts.d.ts.map +1 -0
  111. package/node_modules/@usejunior/docx-core/dist/integration/output-artifacts.js +30 -0
  112. package/node_modules/@usejunior/docx-core/dist/integration/output-artifacts.js.map +1 -0
  113. package/node_modules/@usejunior/docx-core/dist/move-detection.d.ts +211 -0
  114. package/node_modules/@usejunior/docx-core/dist/move-detection.d.ts.map +1 -0
  115. package/node_modules/@usejunior/docx-core/dist/move-detection.js +391 -0
  116. package/node_modules/@usejunior/docx-core/dist/move-detection.js.map +1 -0
  117. package/node_modules/@usejunior/docx-core/dist/numbering.d.ts +136 -0
  118. package/node_modules/@usejunior/docx-core/dist/numbering.d.ts.map +1 -0
  119. package/node_modules/@usejunior/docx-core/dist/numbering.js +446 -0
  120. package/node_modules/@usejunior/docx-core/dist/numbering.js.map +1 -0
  121. package/node_modules/@usejunior/docx-core/dist/primitives/accept_changes.d.ts +30 -0
  122. package/node_modules/@usejunior/docx-core/dist/primitives/accept_changes.d.ts.map +1 -0
  123. package/node_modules/@usejunior/docx-core/dist/primitives/accept_changes.js +241 -0
  124. package/node_modules/@usejunior/docx-core/dist/primitives/accept_changes.js.map +1 -0
  125. package/node_modules/@usejunior/docx-core/dist/primitives/bookmarks.d.ts +12 -0
  126. package/node_modules/@usejunior/docx-core/dist/primitives/bookmarks.d.ts.map +1 -0
  127. package/node_modules/@usejunior/docx-core/dist/primitives/bookmarks.js +248 -0
  128. package/node_modules/@usejunior/docx-core/dist/primitives/bookmarks.js.map +1 -0
  129. package/node_modules/@usejunior/docx-core/dist/primitives/comments.d.ts +88 -0
  130. package/node_modules/@usejunior/docx-core/dist/primitives/comments.d.ts.map +1 -0
  131. package/node_modules/@usejunior/docx-core/dist/primitives/comments.js +703 -0
  132. package/node_modules/@usejunior/docx-core/dist/primitives/comments.js.map +1 -0
  133. package/node_modules/@usejunior/docx-core/dist/primitives/document.d.ts +186 -0
  134. package/node_modules/@usejunior/docx-core/dist/primitives/document.d.ts.map +1 -0
  135. package/node_modules/@usejunior/docx-core/dist/primitives/document.js +555 -0
  136. package/node_modules/@usejunior/docx-core/dist/primitives/document.js.map +1 -0
  137. package/node_modules/@usejunior/docx-core/dist/primitives/document_view.d.ts +97 -0
  138. package/node_modules/@usejunior/docx-core/dist/primitives/document_view.d.ts.map +1 -0
  139. package/node_modules/@usejunior/docx-core/dist/primitives/document_view.js +749 -0
  140. package/node_modules/@usejunior/docx-core/dist/primitives/document_view.js.map +1 -0
  141. package/node_modules/@usejunior/docx-core/dist/primitives/dom-helpers.d.ts +94 -0
  142. package/node_modules/@usejunior/docx-core/dist/primitives/dom-helpers.d.ts.map +1 -0
  143. package/node_modules/@usejunior/docx-core/dist/primitives/dom-helpers.js +219 -0
  144. package/node_modules/@usejunior/docx-core/dist/primitives/dom-helpers.js.map +1 -0
  145. package/node_modules/@usejunior/docx-core/dist/primitives/errors.d.ts +7 -0
  146. package/node_modules/@usejunior/docx-core/dist/primitives/errors.d.ts.map +1 -0
  147. package/node_modules/@usejunior/docx-core/dist/primitives/errors.js +10 -0
  148. package/node_modules/@usejunior/docx-core/dist/primitives/errors.js.map +1 -0
  149. package/node_modules/@usejunior/docx-core/dist/primitives/extract_revisions.d.ts +50 -0
  150. package/node_modules/@usejunior/docx-core/dist/primitives/extract_revisions.d.ts.map +1 -0
  151. package/node_modules/@usejunior/docx-core/dist/primitives/extract_revisions.js +340 -0
  152. package/node_modules/@usejunior/docx-core/dist/primitives/extract_revisions.js.map +1 -0
  153. package/node_modules/@usejunior/docx-core/dist/primitives/footnotes.d.ts +37 -0
  154. package/node_modules/@usejunior/docx-core/dist/primitives/footnotes.d.ts.map +1 -0
  155. package/node_modules/@usejunior/docx-core/dist/primitives/footnotes.js +552 -0
  156. package/node_modules/@usejunior/docx-core/dist/primitives/footnotes.js.map +1 -0
  157. package/node_modules/@usejunior/docx-core/dist/primitives/formatting_tags.d.ts +43 -0
  158. package/node_modules/@usejunior/docx-core/dist/primitives/formatting_tags.d.ts.map +1 -0
  159. package/node_modules/@usejunior/docx-core/dist/primitives/formatting_tags.js +291 -0
  160. package/node_modules/@usejunior/docx-core/dist/primitives/formatting_tags.js.map +1 -0
  161. package/node_modules/@usejunior/docx-core/dist/primitives/index.d.ts +27 -0
  162. package/node_modules/@usejunior/docx-core/dist/primitives/index.d.ts.map +1 -0
  163. package/node_modules/@usejunior/docx-core/dist/primitives/index.js +27 -0
  164. package/node_modules/@usejunior/docx-core/dist/primitives/index.js.map +1 -0
  165. package/node_modules/@usejunior/docx-core/dist/primitives/layout.d.ts +53 -0
  166. package/node_modules/@usejunior/docx-core/dist/primitives/layout.d.ts.map +1 -0
  167. package/node_modules/@usejunior/docx-core/dist/primitives/layout.js +178 -0
  168. package/node_modules/@usejunior/docx-core/dist/primitives/layout.js.map +1 -0
  169. package/node_modules/@usejunior/docx-core/dist/primitives/list_labels.d.ts +19 -0
  170. package/node_modules/@usejunior/docx-core/dist/primitives/list_labels.d.ts.map +1 -0
  171. package/node_modules/@usejunior/docx-core/dist/primitives/list_labels.js +57 -0
  172. package/node_modules/@usejunior/docx-core/dist/primitives/list_labels.js.map +1 -0
  173. package/node_modules/@usejunior/docx-core/dist/primitives/matching.d.ts +31 -0
  174. package/node_modules/@usejunior/docx-core/dist/primitives/matching.d.ts.map +1 -0
  175. package/node_modules/@usejunior/docx-core/dist/primitives/matching.js +223 -0
  176. package/node_modules/@usejunior/docx-core/dist/primitives/matching.js.map +1 -0
  177. package/node_modules/@usejunior/docx-core/dist/primitives/merge_runs.d.ts +23 -0
  178. package/node_modules/@usejunior/docx-core/dist/primitives/merge_runs.d.ts.map +1 -0
  179. package/node_modules/@usejunior/docx-core/dist/primitives/merge_runs.js +243 -0
  180. package/node_modules/@usejunior/docx-core/dist/primitives/merge_runs.js.map +1 -0
  181. package/node_modules/@usejunior/docx-core/dist/primitives/namespaces.d.ts +91 -0
  182. package/node_modules/@usejunior/docx-core/dist/primitives/namespaces.d.ts.map +1 -0
  183. package/node_modules/@usejunior/docx-core/dist/primitives/namespaces.js +108 -0
  184. package/node_modules/@usejunior/docx-core/dist/primitives/namespaces.js.map +1 -0
  185. package/node_modules/@usejunior/docx-core/dist/primitives/numbering.d.ts +27 -0
  186. package/node_modules/@usejunior/docx-core/dist/primitives/numbering.d.ts.map +1 -0
  187. package/node_modules/@usejunior/docx-core/dist/primitives/numbering.js +182 -0
  188. package/node_modules/@usejunior/docx-core/dist/primitives/numbering.js.map +1 -0
  189. package/node_modules/@usejunior/docx-core/dist/primitives/prevent_double_elevation.d.ts +18 -0
  190. package/node_modules/@usejunior/docx-core/dist/primitives/prevent_double_elevation.d.ts.map +1 -0
  191. package/node_modules/@usejunior/docx-core/dist/primitives/prevent_double_elevation.js +190 -0
  192. package/node_modules/@usejunior/docx-core/dist/primitives/prevent_double_elevation.js.map +1 -0
  193. package/node_modules/@usejunior/docx-core/dist/primitives/reject_changes.d.ts +27 -0
  194. package/node_modules/@usejunior/docx-core/dist/primitives/reject_changes.d.ts.map +1 -0
  195. package/node_modules/@usejunior/docx-core/dist/primitives/reject_changes.js +371 -0
  196. package/node_modules/@usejunior/docx-core/dist/primitives/reject_changes.js.map +1 -0
  197. package/node_modules/@usejunior/docx-core/dist/primitives/relationships.d.ts +7 -0
  198. package/node_modules/@usejunior/docx-core/dist/primitives/relationships.d.ts.map +1 -0
  199. package/node_modules/@usejunior/docx-core/dist/primitives/relationships.js +24 -0
  200. package/node_modules/@usejunior/docx-core/dist/primitives/relationships.js.map +1 -0
  201. package/node_modules/@usejunior/docx-core/dist/primitives/semantic_tags.d.ts +17 -0
  202. package/node_modules/@usejunior/docx-core/dist/primitives/semantic_tags.d.ts.map +1 -0
  203. package/node_modules/@usejunior/docx-core/dist/primitives/semantic_tags.js +58 -0
  204. package/node_modules/@usejunior/docx-core/dist/primitives/semantic_tags.js.map +1 -0
  205. package/node_modules/@usejunior/docx-core/dist/primitives/simplify_redlines.d.ts +19 -0
  206. package/node_modules/@usejunior/docx-core/dist/primitives/simplify_redlines.d.ts.map +1 -0
  207. package/node_modules/@usejunior/docx-core/dist/primitives/simplify_redlines.js +94 -0
  208. package/node_modules/@usejunior/docx-core/dist/primitives/simplify_redlines.js.map +1 -0
  209. package/node_modules/@usejunior/docx-core/dist/primitives/styles.d.ts +36 -0
  210. package/node_modules/@usejunior/docx-core/dist/primitives/styles.d.ts.map +1 -0
  211. package/node_modules/@usejunior/docx-core/dist/primitives/styles.js +205 -0
  212. package/node_modules/@usejunior/docx-core/dist/primitives/styles.js.map +1 -0
  213. package/node_modules/@usejunior/docx-core/dist/primitives/tables.d.ts +54 -0
  214. package/node_modules/@usejunior/docx-core/dist/primitives/tables.d.ts.map +1 -0
  215. package/node_modules/@usejunior/docx-core/dist/primitives/tables.js +205 -0
  216. package/node_modules/@usejunior/docx-core/dist/primitives/tables.js.map +1 -0
  217. package/node_modules/@usejunior/docx-core/dist/primitives/text.d.ts +30 -0
  218. package/node_modules/@usejunior/docx-core/dist/primitives/text.d.ts.map +1 -0
  219. package/node_modules/@usejunior/docx-core/dist/primitives/text.js +461 -0
  220. package/node_modules/@usejunior/docx-core/dist/primitives/text.js.map +1 -0
  221. package/node_modules/@usejunior/docx-core/dist/primitives/validate_document.d.ts +24 -0
  222. package/node_modules/@usejunior/docx-core/dist/primitives/validate_document.d.ts.map +1 -0
  223. package/node_modules/@usejunior/docx-core/dist/primitives/validate_document.js +147 -0
  224. package/node_modules/@usejunior/docx-core/dist/primitives/validate_document.js.map +1 -0
  225. package/node_modules/@usejunior/docx-core/dist/primitives/xml.d.ts +5 -0
  226. package/node_modules/@usejunior/docx-core/dist/primitives/xml.d.ts.map +1 -0
  227. package/node_modules/@usejunior/docx-core/dist/primitives/xml.js +19 -0
  228. package/node_modules/@usejunior/docx-core/dist/primitives/xml.js.map +1 -0
  229. package/node_modules/@usejunior/docx-core/dist/primitives/zip.d.ts +25 -0
  230. package/node_modules/@usejunior/docx-core/dist/primitives/zip.d.ts.map +1 -0
  231. package/node_modules/@usejunior/docx-core/dist/primitives/zip.js +78 -0
  232. package/node_modules/@usejunior/docx-core/dist/primitives/zip.js.map +1 -0
  233. package/node_modules/@usejunior/docx-core/dist/shared/docx/DocxArchive.d.ts +94 -0
  234. package/node_modules/@usejunior/docx-core/dist/shared/docx/DocxArchive.d.ts.map +1 -0
  235. package/node_modules/@usejunior/docx-core/dist/shared/docx/DocxArchive.js +169 -0
  236. package/node_modules/@usejunior/docx-core/dist/shared/docx/DocxArchive.js.map +1 -0
  237. package/node_modules/@usejunior/docx-core/dist/shared/ooxml/namespaces.d.ts +149 -0
  238. package/node_modules/@usejunior/docx-core/dist/shared/ooxml/namespaces.d.ts.map +1 -0
  239. package/node_modules/@usejunior/docx-core/dist/shared/ooxml/namespaces.js +224 -0
  240. package/node_modules/@usejunior/docx-core/dist/shared/ooxml/namespaces.js.map +1 -0
  241. package/node_modules/@usejunior/docx-core/dist/shared/ooxml/types.d.ts +136 -0
  242. package/node_modules/@usejunior/docx-core/dist/shared/ooxml/types.d.ts.map +1 -0
  243. package/node_modules/@usejunior/docx-core/dist/shared/ooxml/types.js +7 -0
  244. package/node_modules/@usejunior/docx-core/dist/shared/ooxml/types.js.map +1 -0
  245. package/node_modules/@usejunior/docx-core/dist/shared/validators/structural.d.ts +31 -0
  246. package/node_modules/@usejunior/docx-core/dist/shared/validators/structural.d.ts.map +1 -0
  247. package/node_modules/@usejunior/docx-core/dist/shared/validators/structural.js +110 -0
  248. package/node_modules/@usejunior/docx-core/dist/shared/validators/structural.js.map +1 -0
  249. package/node_modules/@usejunior/docx-core/package.json +26 -0
  250. package/node_modules/core-util-is/LICENSE +19 -0
  251. package/node_modules/core-util-is/README.md +3 -0
  252. package/node_modules/core-util-is/lib/util.js +107 -0
  253. package/node_modules/core-util-is/package.json +38 -0
  254. package/node_modules/diff-match-patch/LICENSE +202 -0
  255. package/node_modules/diff-match-patch/README.md +94 -0
  256. package/node_modules/diff-match-patch/index.js +2218 -0
  257. package/node_modules/diff-match-patch/package.json +22 -0
  258. package/node_modules/immediate/LICENSE.txt +20 -0
  259. package/node_modules/immediate/README.md +93 -0
  260. package/node_modules/immediate/dist/immediate.js +75 -0
  261. package/node_modules/immediate/dist/immediate.min.js +1 -0
  262. package/node_modules/immediate/lib/browser.js +69 -0
  263. package/node_modules/immediate/lib/index.js +73 -0
  264. package/node_modules/immediate/package.json +42 -0
  265. package/node_modules/inherits/LICENSE +16 -0
  266. package/node_modules/inherits/README.md +42 -0
  267. package/node_modules/inherits/inherits.js +9 -0
  268. package/node_modules/inherits/inherits_browser.js +27 -0
  269. package/node_modules/inherits/package.json +29 -0
  270. package/node_modules/isarray/.npmignore +1 -0
  271. package/node_modules/isarray/.travis.yml +4 -0
  272. package/node_modules/isarray/Makefile +6 -0
  273. package/node_modules/isarray/README.md +60 -0
  274. package/node_modules/isarray/component.json +19 -0
  275. package/node_modules/isarray/index.js +5 -0
  276. package/node_modules/isarray/package.json +45 -0
  277. package/node_modules/isarray/test.js +20 -0
  278. package/node_modules/jszip/.codeclimate.yml +16 -0
  279. package/node_modules/jszip/.editorconfig +8 -0
  280. package/node_modules/jszip/.eslintrc.js +43 -0
  281. package/node_modules/jszip/.github/workflows/pr.yaml +58 -0
  282. package/node_modules/jszip/.jekyll-metadata +0 -0
  283. package/node_modules/jszip/.travis.yml +17 -0
  284. package/node_modules/jszip/CHANGES.md +204 -0
  285. package/node_modules/jszip/LICENSE.markdown +651 -0
  286. package/node_modules/jszip/README.markdown +33 -0
  287. package/node_modules/jszip/deps.js +37 -0
  288. package/node_modules/jszip/dist/jszip.js +11577 -0
  289. package/node_modules/jszip/dist/jszip.min.js +13 -0
  290. package/node_modules/jszip/graph.svg +601 -0
  291. package/node_modules/jszip/index.d.ts +330 -0
  292. package/node_modules/jszip/lib/base64.js +106 -0
  293. package/node_modules/jszip/lib/compressedObject.js +74 -0
  294. package/node_modules/jszip/lib/compressions.js +14 -0
  295. package/node_modules/jszip/lib/crc32.js +77 -0
  296. package/node_modules/jszip/lib/defaults.js +11 -0
  297. package/node_modules/jszip/lib/external.js +18 -0
  298. package/node_modules/jszip/lib/flate.js +85 -0
  299. package/node_modules/jszip/lib/generate/ZipFileWorker.js +539 -0
  300. package/node_modules/jszip/lib/generate/index.js +57 -0
  301. package/node_modules/jszip/lib/index.js +55 -0
  302. package/node_modules/jszip/lib/license_header.js +11 -0
  303. package/node_modules/jszip/lib/load.js +88 -0
  304. package/node_modules/jszip/lib/nodejs/NodejsStreamInputAdapter.js +74 -0
  305. package/node_modules/jszip/lib/nodejs/NodejsStreamOutputAdapter.js +42 -0
  306. package/node_modules/jszip/lib/nodejsUtils.js +57 -0
  307. package/node_modules/jszip/lib/object.js +384 -0
  308. package/node_modules/jszip/lib/readable-stream-browser.js +10 -0
  309. package/node_modules/jszip/lib/reader/ArrayReader.js +57 -0
  310. package/node_modules/jszip/lib/reader/DataReader.js +116 -0
  311. package/node_modules/jszip/lib/reader/NodeBufferReader.js +19 -0
  312. package/node_modules/jszip/lib/reader/StringReader.js +38 -0
  313. package/node_modules/jszip/lib/reader/Uint8ArrayReader.js +22 -0
  314. package/node_modules/jszip/lib/reader/readerFor.js +28 -0
  315. package/node_modules/jszip/lib/signature.js +7 -0
  316. package/node_modules/jszip/lib/stream/ConvertWorker.js +26 -0
  317. package/node_modules/jszip/lib/stream/Crc32Probe.js +24 -0
  318. package/node_modules/jszip/lib/stream/DataLengthProbe.js +29 -0
  319. package/node_modules/jszip/lib/stream/DataWorker.js +116 -0
  320. package/node_modules/jszip/lib/stream/GenericWorker.js +263 -0
  321. package/node_modules/jszip/lib/stream/StreamHelper.js +214 -0
  322. package/node_modules/jszip/lib/support.js +38 -0
  323. package/node_modules/jszip/lib/utf8.js +275 -0
  324. package/node_modules/jszip/lib/utils.js +501 -0
  325. package/node_modules/jszip/lib/zipEntries.js +261 -0
  326. package/node_modules/jszip/lib/zipEntry.js +293 -0
  327. package/node_modules/jszip/lib/zipObject.js +133 -0
  328. package/node_modules/jszip/package.json +67 -0
  329. package/node_modules/jszip/sponsors.md +21 -0
  330. package/node_modules/jszip/tsconfig.json +101 -0
  331. package/node_modules/jszip/vendor/FileSaver.js +247 -0
  332. package/node_modules/lie/README.md +62 -0
  333. package/node_modules/lie/dist/lie.js +350 -0
  334. package/node_modules/lie/dist/lie.min.js +1 -0
  335. package/node_modules/lie/dist/lie.polyfill.js +358 -0
  336. package/node_modules/lie/dist/lie.polyfill.min.js +1 -0
  337. package/node_modules/lie/lib/browser.js +273 -0
  338. package/node_modules/lie/lib/index.js +298 -0
  339. package/node_modules/lie/license.md +7 -0
  340. package/node_modules/lie/lie.d.ts +244 -0
  341. package/node_modules/lie/package.json +69 -0
  342. package/node_modules/lie/polyfill.js +4 -0
  343. package/node_modules/pako/LICENSE +21 -0
  344. package/node_modules/pako/README.md +191 -0
  345. package/node_modules/pako/dist/pako.js +6818 -0
  346. package/node_modules/pako/dist/pako.min.js +1 -0
  347. package/node_modules/pako/dist/pako_deflate.js +3997 -0
  348. package/node_modules/pako/dist/pako_deflate.min.js +1 -0
  349. package/node_modules/pako/dist/pako_inflate.js +3300 -0
  350. package/node_modules/pako/dist/pako_inflate.min.js +1 -0
  351. package/node_modules/pako/index.js +14 -0
  352. package/node_modules/pako/lib/deflate.js +400 -0
  353. package/node_modules/pako/lib/inflate.js +423 -0
  354. package/node_modules/pako/lib/utils/common.js +105 -0
  355. package/node_modules/pako/lib/utils/strings.js +187 -0
  356. package/node_modules/pako/lib/zlib/README +59 -0
  357. package/node_modules/pako/lib/zlib/adler32.js +51 -0
  358. package/node_modules/pako/lib/zlib/constants.js +68 -0
  359. package/node_modules/pako/lib/zlib/crc32.js +59 -0
  360. package/node_modules/pako/lib/zlib/deflate.js +1874 -0
  361. package/node_modules/pako/lib/zlib/gzheader.js +58 -0
  362. package/node_modules/pako/lib/zlib/inffast.js +345 -0
  363. package/node_modules/pako/lib/zlib/inflate.js +1556 -0
  364. package/node_modules/pako/lib/zlib/inftrees.js +343 -0
  365. package/node_modules/pako/lib/zlib/messages.js +32 -0
  366. package/node_modules/pako/lib/zlib/trees.js +1222 -0
  367. package/node_modules/pako/lib/zlib/zstream.js +47 -0
  368. package/node_modules/pako/package.json +44 -0
  369. package/node_modules/process-nextick-args/index.js +45 -0
  370. package/node_modules/process-nextick-args/license.md +19 -0
  371. package/node_modules/process-nextick-args/package.json +25 -0
  372. package/node_modules/process-nextick-args/readme.md +18 -0
  373. package/node_modules/readable-stream/.travis.yml +34 -0
  374. package/node_modules/readable-stream/CONTRIBUTING.md +38 -0
  375. package/node_modules/readable-stream/GOVERNANCE.md +136 -0
  376. package/node_modules/readable-stream/LICENSE +47 -0
  377. package/node_modules/readable-stream/README.md +58 -0
  378. package/node_modules/readable-stream/doc/wg-meetings/2015-01-30.md +60 -0
  379. package/node_modules/readable-stream/duplex-browser.js +1 -0
  380. package/node_modules/readable-stream/duplex.js +1 -0
  381. package/node_modules/readable-stream/lib/_stream_duplex.js +131 -0
  382. package/node_modules/readable-stream/lib/_stream_passthrough.js +47 -0
  383. package/node_modules/readable-stream/lib/_stream_readable.js +1019 -0
  384. package/node_modules/readable-stream/lib/_stream_transform.js +214 -0
  385. package/node_modules/readable-stream/lib/_stream_writable.js +685 -0
  386. package/node_modules/readable-stream/lib/internal/streams/BufferList.js +78 -0
  387. package/node_modules/readable-stream/lib/internal/streams/destroy.js +84 -0
  388. package/node_modules/readable-stream/lib/internal/streams/stream-browser.js +1 -0
  389. package/node_modules/readable-stream/lib/internal/streams/stream.js +1 -0
  390. package/node_modules/readable-stream/package.json +52 -0
  391. package/node_modules/readable-stream/passthrough.js +1 -0
  392. package/node_modules/readable-stream/readable-browser.js +7 -0
  393. package/node_modules/readable-stream/readable.js +19 -0
  394. package/node_modules/readable-stream/transform.js +1 -0
  395. package/node_modules/readable-stream/writable-browser.js +1 -0
  396. package/node_modules/readable-stream/writable.js +8 -0
  397. package/node_modules/safe-buffer/LICENSE +21 -0
  398. package/node_modules/safe-buffer/README.md +584 -0
  399. package/node_modules/safe-buffer/index.d.ts +187 -0
  400. package/node_modules/safe-buffer/index.js +62 -0
  401. package/node_modules/safe-buffer/package.json +37 -0
  402. package/node_modules/setimmediate/LICENSE.txt +20 -0
  403. package/node_modules/setimmediate/package.json +30 -0
  404. package/node_modules/setimmediate/setImmediate.js +186 -0
  405. package/node_modules/string_decoder/.travis.yml +50 -0
  406. package/node_modules/string_decoder/LICENSE +48 -0
  407. package/node_modules/string_decoder/README.md +47 -0
  408. package/node_modules/string_decoder/lib/string_decoder.js +296 -0
  409. package/node_modules/string_decoder/package.json +31 -0
  410. package/node_modules/util-deprecate/History.md +16 -0
  411. package/node_modules/util-deprecate/LICENSE +24 -0
  412. package/node_modules/util-deprecate/README.md +53 -0
  413. package/node_modules/util-deprecate/browser.js +67 -0
  414. package/node_modules/util-deprecate/node.js +6 -0
  415. package/node_modules/util-deprecate/package.json +27 -0
  416. package/package.json +9 -4
  417. package/packages/docx-core/node_modules/@xmldom/xmldom/CHANGELOG.md +468 -0
  418. package/packages/docx-core/node_modules/@xmldom/xmldom/LICENSE +8 -0
  419. package/packages/docx-core/node_modules/@xmldom/xmldom/SECURITY.md +50 -0
  420. package/packages/docx-core/node_modules/@xmldom/xmldom/index.d.ts +43 -0
  421. package/packages/docx-core/node_modules/@xmldom/xmldom/lib/.eslintrc.yml +2 -0
  422. package/packages/docx-core/node_modules/@xmldom/xmldom/lib/conventions.js +203 -0
  423. package/packages/docx-core/node_modules/@xmldom/xmldom/lib/dom-parser.js +322 -0
  424. package/packages/docx-core/node_modules/@xmldom/xmldom/lib/dom.js +1879 -0
  425. package/packages/docx-core/node_modules/@xmldom/xmldom/lib/entities.js +2166 -0
  426. package/packages/docx-core/node_modules/@xmldom/xmldom/lib/index.js +4 -0
  427. package/packages/docx-core/node_modules/@xmldom/xmldom/lib/sax.js +662 -0
  428. package/packages/docx-core/node_modules/@xmldom/xmldom/package.json +71 -0
  429. package/packages/docx-core/node_modules/@xmldom/xmldom/readme.md +356 -0
@@ -0,0 +1,57 @@
1
+ // Port of Python workflows/shared/list_label_utils.py (subset) for Safe-Docx TS.
2
+ //
3
+ // Used to extract/strip text-formatted list labels (non-auto-numbered) and to
4
+ // classify computed labels for style inference.
5
+ export var LabelType;
6
+ (function (LabelType) {
7
+ LabelType["LETTER"] = "letter";
8
+ LabelType["ROMAN"] = "roman";
9
+ LabelType["NUMBER"] = "number";
10
+ LabelType["SECTION"] = "section";
11
+ LabelType["ARTICLE"] = "article";
12
+ LabelType["NUMBERED_HEADING"] = "numbered_heading";
13
+ })(LabelType || (LabelType = {}));
14
+ const LETTER_LABEL_RE = /^\(([a-zA-Z]+)\)\s*/;
15
+ const ROMAN_LABEL_RE = /^\(([ivxlcdm]+)\)\s*/i;
16
+ const NUMBER_LABEL_RE = /^\((\d+)\)\s*/;
17
+ const SECTION_LABEL_RE = /^(Section)\s+[\d.]+(?:\([a-z]\))?/i;
18
+ const ARTICLE_LABEL_RE = /^(Article)\s+[\dIVXLCDM.]+/i;
19
+ const NUMBERED_HEADING_RE = /^(\d+(?:\.\d+)*)[.)]\s*/;
20
+ function isRomanNumeralCandidate(s) {
21
+ if (!/^[ivxlcdm]+$/i.test(s))
22
+ return false;
23
+ // Single char should be treated as letter in legal docs: (i), (v), (x)
24
+ return s.length > 1;
25
+ }
26
+ export function extractListLabel(text) {
27
+ if (!text)
28
+ return { label: null, label_type: null, match_end: 0 };
29
+ let m = SECTION_LABEL_RE.exec(text);
30
+ if (m)
31
+ return { label: m[0].trim(), label_type: LabelType.SECTION, match_end: m[0].length };
32
+ m = ARTICLE_LABEL_RE.exec(text);
33
+ if (m)
34
+ return { label: m[0].trim(), label_type: LabelType.ARTICLE, match_end: m[0].length };
35
+ m = NUMBERED_HEADING_RE.exec(text);
36
+ if (m)
37
+ return { label: m[0].trim(), label_type: LabelType.NUMBERED_HEADING, match_end: m[0].length };
38
+ m = NUMBER_LABEL_RE.exec(text);
39
+ if (m)
40
+ return { label: `(${m[1]})`, label_type: LabelType.NUMBER, match_end: m[0].length };
41
+ m = ROMAN_LABEL_RE.exec(text);
42
+ if (m && isRomanNumeralCandidate(m[1])) {
43
+ return { label: `(${m[1]})`, label_type: LabelType.ROMAN, match_end: m[0].length };
44
+ }
45
+ m = LETTER_LABEL_RE.exec(text);
46
+ if (m)
47
+ return { label: `(${m[1]})`, label_type: LabelType.LETTER, match_end: m[0].length };
48
+ return { label: null, label_type: null, match_end: 0 };
49
+ }
50
+ export function stripListLabel(text) {
51
+ const result = extractListLabel(text);
52
+ if (result.label) {
53
+ return { stripped_text: text.slice(result.match_end).trimStart(), result };
54
+ }
55
+ return { stripped_text: text, result };
56
+ }
57
+ //# sourceMappingURL=list_labels.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list_labels.js","sourceRoot":"","sources":["../../src/primitives/list_labels.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,31 @@
1
+ export type MatchMode = 'exact' | 'quote_normalized' | 'flexible_whitespace' | 'quote_optional' | 'clean';
2
+ export type UniqueSubstringMatchResult = {
3
+ status: 'not_found';
4
+ } | {
5
+ status: 'multiple';
6
+ mode: MatchMode;
7
+ matchCount: number;
8
+ } | {
9
+ status: 'unique';
10
+ mode: MatchMode;
11
+ matchCount: 1;
12
+ start: number;
13
+ end: number;
14
+ matchedText: string;
15
+ };
16
+ /**
17
+ * Transfer the document's smart-quote style to a target string.
18
+ *
19
+ * Scans `documentText` for the first left/right double and single smart-quote
20
+ * variants, then replaces straight quotes in `targetText` with those variants.
21
+ * Uses positional context (after whitespace/punctuation/start → opening, else closing)
22
+ * to choose the correct direction.
23
+ *
24
+ * Returns `targetText` unchanged when `documentText` contains no smart quotes.
25
+ * Angle quotes (« » ‹ ›) are explicitly non-goal for v1.
26
+ */
27
+ export declare function applyDocumentQuoteStyle(documentText: string, targetText: string): string;
28
+ export declare function findUniqueSubstringMatch(haystack: string, needle: string, options?: {
29
+ mode?: MatchMode | 'default';
30
+ }): UniqueSubstringMatchResult;
31
+ //# sourceMappingURL=matching.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"matching.d.ts","sourceRoot":"","sources":["../../src/primitives/matching.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,SAAS,GAAG,OAAO,GAAG,kBAAkB,GAAG,qBAAqB,GAAG,gBAAgB,GAAG,OAAO,CAAC;AAE1G,MAAM,MAAM,0BAA0B,GAClC;IAAE,MAAM,EAAE,WAAW,CAAA;CAAE,GACvB;IAAE,MAAM,EAAE,UAAU,CAAC;IAAC,IAAI,EAAE,SAAS,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,GAC3D;IACE,MAAM,EAAE,QAAQ,CAAC;IACjB,IAAI,EAAE,SAAS,CAAC;IAChB,UAAU,EAAE,CAAC,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,WAAW,EAAE,MAAM,CAAC;CACrB,CAAC;AA4IN;;;;;;;;;;GAUG;AACH,wBAAgB,uBAAuB,CAAC,YAAY,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,CA4CxF;AAED,wBAAgB,wBAAwB,CACtC,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,EACd,OAAO,GAAE;IAAE,IAAI,CAAC,EAAE,SAAS,GAAG,SAAS,CAAA;CAAO,GAC7C,0BAA0B,CA2C5B"}
@@ -0,0 +1,223 @@
1
+ const DOUBLE_QUOTE_EQUIVALENTS = new Set([
2
+ '"',
3
+ '\u201c',
4
+ '\u201d',
5
+ '\u00ab',
6
+ '\u00bb',
7
+ '\u2039',
8
+ '\u203a',
9
+ ]);
10
+ const SINGLE_QUOTE_EQUIVALENTS = new Set([
11
+ "'",
12
+ '\u2018',
13
+ '\u2019',
14
+ ]);
15
+ function isQuoteChar(ch) {
16
+ return DOUBLE_QUOTE_EQUIVALENTS.has(ch) || SINGLE_QUOTE_EQUIVALENTS.has(ch);
17
+ }
18
+ function normalizeQuoteChar(ch) {
19
+ if (DOUBLE_QUOTE_EQUIVALENTS.has(ch))
20
+ return '"';
21
+ if (SINGLE_QUOTE_EQUIVALENTS.has(ch))
22
+ return "'";
23
+ return ch;
24
+ }
25
+ function isWhitespaceChar(ch) {
26
+ return /\s/u.test(ch);
27
+ }
28
+ function toMappedText(text) {
29
+ const spans = [];
30
+ for (let i = 0; i < text.length; i++)
31
+ spans.push({ start: i, end: i + 1 });
32
+ return { text, spans };
33
+ }
34
+ function applyTransforms(base, transforms) {
35
+ let out = base;
36
+ for (const transform of transforms)
37
+ out = transform(out);
38
+ return out;
39
+ }
40
+ function normalizeQuotes(input) {
41
+ if (!input.text)
42
+ return input;
43
+ let out = '';
44
+ for (let i = 0; i < input.text.length; i++)
45
+ out += normalizeQuoteChar(input.text[i]);
46
+ return { text: out, spans: input.spans.slice() };
47
+ }
48
+ function collapseWhitespace(input) {
49
+ if (!input.text)
50
+ return input;
51
+ const outChars = [];
52
+ const outSpans = [];
53
+ let i = 0;
54
+ while (i < input.text.length) {
55
+ const ch = input.text[i];
56
+ if (!isWhitespaceChar(ch)) {
57
+ outChars.push(ch);
58
+ outSpans.push(input.spans[i]);
59
+ i += 1;
60
+ continue;
61
+ }
62
+ const spanStart = input.spans[i].start;
63
+ let spanEnd = input.spans[i].end;
64
+ i += 1;
65
+ while (i < input.text.length && isWhitespaceChar(input.text[i])) {
66
+ spanEnd = input.spans[i].end;
67
+ i += 1;
68
+ }
69
+ outChars.push(' ');
70
+ outSpans.push({ start: spanStart, end: spanEnd });
71
+ }
72
+ return { text: outChars.join(''), spans: outSpans };
73
+ }
74
+ function removeQuotes(input) {
75
+ if (!input.text)
76
+ return input;
77
+ const outChars = [];
78
+ const outSpans = [];
79
+ for (let i = 0; i < input.text.length; i++) {
80
+ const ch = input.text[i];
81
+ if (isQuoteChar(ch))
82
+ continue;
83
+ outChars.push(ch);
84
+ outSpans.push(input.spans[i]);
85
+ }
86
+ return { text: outChars.join(''), spans: outSpans };
87
+ }
88
+ function stripAllTags(input) {
89
+ if (!input.text)
90
+ return input;
91
+ const tags = [
92
+ /<\/?[biu]>/g,
93
+ /<a\s+href="[^"]*">/g,
94
+ /<\/a>/g,
95
+ /<highlight>/g,
96
+ /<\/highlight>/g,
97
+ /<highlighting>/g,
98
+ /<\/highlighting>/g,
99
+ ];
100
+ let text = input.text;
101
+ const spans = input.spans.slice();
102
+ for (const tag of tags) {
103
+ let match;
104
+ tag.lastIndex = 0;
105
+ while ((match = tag.exec(text)) !== null) {
106
+ const len = match[0].length;
107
+ const idx = match.index;
108
+ text = text.slice(0, idx) + text.slice(idx + len);
109
+ spans.splice(idx, len);
110
+ tag.lastIndex = idx;
111
+ }
112
+ }
113
+ return { text, spans };
114
+ }
115
+ function findAllMatchIndices(haystack, needle) {
116
+ if (!needle)
117
+ return [];
118
+ const hits = [];
119
+ let from = 0;
120
+ while (from <= haystack.length - needle.length) {
121
+ const idx = haystack.indexOf(needle, from);
122
+ if (idx === -1)
123
+ break;
124
+ hits.push(idx);
125
+ from = idx + 1;
126
+ }
127
+ return hits;
128
+ }
129
+ /**
130
+ * Transfer the document's smart-quote style to a target string.
131
+ *
132
+ * Scans `documentText` for the first left/right double and single smart-quote
133
+ * variants, then replaces straight quotes in `targetText` with those variants.
134
+ * Uses positional context (after whitespace/punctuation/start → opening, else closing)
135
+ * to choose the correct direction.
136
+ *
137
+ * Returns `targetText` unchanged when `documentText` contains no smart quotes.
138
+ * Angle quotes (« » ‹ ›) are explicitly non-goal for v1.
139
+ */
140
+ export function applyDocumentQuoteStyle(documentText, targetText) {
141
+ // Detect which smart-quote variants the document uses.
142
+ let leftDouble = null;
143
+ let rightDouble = null;
144
+ let leftSingle = null;
145
+ let rightSingle = null;
146
+ // Angle quotes are excluded from transfer (v1 non-goal).
147
+ const ANGLE_QUOTES = new Set(['\u00ab', '\u00bb', '\u2039', '\u203a']);
148
+ for (const ch of documentText) {
149
+ if (ANGLE_QUOTES.has(ch))
150
+ continue;
151
+ if (ch === '\u201c' && !leftDouble)
152
+ leftDouble = ch;
153
+ if (ch === '\u201d' && !rightDouble)
154
+ rightDouble = ch;
155
+ if (ch === '\u2018' && !leftSingle)
156
+ leftSingle = ch;
157
+ if (ch === '\u2019' && !rightSingle)
158
+ rightSingle = ch;
159
+ }
160
+ // No smart quotes in document → return unchanged.
161
+ if (!leftDouble && !rightDouble && !leftSingle && !rightSingle)
162
+ return targetText;
163
+ let result = '';
164
+ for (let i = 0; i < targetText.length; i++) {
165
+ const ch = targetText[i];
166
+ if (ch === '"' && (leftDouble || rightDouble)) {
167
+ // Determine opening vs closing by looking at the preceding character.
168
+ const prev = i > 0 ? targetText[i - 1] : '';
169
+ const isOpening = i === 0 || /[\s(\[{]/.test(prev);
170
+ result += isOpening ? (leftDouble ?? rightDouble) : (rightDouble ?? leftDouble);
171
+ continue;
172
+ }
173
+ if (ch === "'" && (leftSingle || rightSingle)) {
174
+ const prev = i > 0 ? targetText[i - 1] : '';
175
+ const isOpening = i === 0 || /[\s(\[{]/.test(prev);
176
+ result += isOpening ? (leftSingle ?? rightSingle) : (rightSingle ?? leftSingle);
177
+ continue;
178
+ }
179
+ result += ch;
180
+ }
181
+ return result;
182
+ }
183
+ export function findUniqueSubstringMatch(haystack, needle, options = {}) {
184
+ if (!needle)
185
+ return { status: 'not_found' };
186
+ const hayBase = toMappedText(haystack);
187
+ const needleBase = toMappedText(needle);
188
+ const stages = [
189
+ { mode: 'exact', transforms: [] },
190
+ { mode: 'clean', transforms: [stripAllTags] },
191
+ { mode: 'quote_normalized', transforms: [stripAllTags, normalizeQuotes] },
192
+ { mode: 'flexible_whitespace', transforms: [stripAllTags, normalizeQuotes, collapseWhitespace] },
193
+ { mode: 'quote_optional', transforms: [stripAllTags, normalizeQuotes, collapseWhitespace, removeQuotes] },
194
+ ];
195
+ const targetMode = options.mode === 'default' ? undefined : options.mode;
196
+ for (const stage of stages) {
197
+ if (targetMode !== undefined && stage.mode !== targetMode)
198
+ continue;
199
+ const h = applyTransforms(hayBase, stage.transforms);
200
+ const n = applyTransforms(needleBase, stage.transforms);
201
+ if (!n.text)
202
+ continue;
203
+ const hits = findAllMatchIndices(h.text, n.text);
204
+ if (hits.length === 0)
205
+ continue;
206
+ if (hits.length > 1) {
207
+ return { status: 'multiple', mode: stage.mode, matchCount: hits.length };
208
+ }
209
+ const hit = hits[0];
210
+ const startSpan = h.spans[hit];
211
+ const endSpan = h.spans[hit + n.text.length - 1];
212
+ return {
213
+ status: 'unique',
214
+ mode: stage.mode,
215
+ matchCount: 1,
216
+ start: startSpan.start,
217
+ end: endSpan.end,
218
+ matchedText: haystack.slice(startSpan.start, endSpan.end),
219
+ };
220
+ }
221
+ return { status: 'not_found' };
222
+ }
223
+ //# sourceMappingURL=matching.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"matching.js","sourceRoot":"","sources":["../../src/primitives/matching.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,23 @@
1
+ /**
2
+ * merge_runs — merge adjacent format-identical runs within paragraphs.
3
+ *
4
+ * Safety barriers: never merge across fldChar/instrText, comment range,
5
+ * bookmark, or tracked-change wrapper boundaries.
6
+ */
7
+ export type MergeRunsResult = {
8
+ runsMerged: number;
9
+ proofErrRemoved: number;
10
+ };
11
+ /**
12
+ * Merge adjacent format-identical runs across all paragraphs in the
13
+ * document body. Removes `<w:proofErr>` elements and strips `rsid`
14
+ * attributes from runs before comparison.
15
+ *
16
+ * Safety barriers prevent merges across:
17
+ * - Field boundaries (fldChar, instrText)
18
+ * - Comment range boundaries (commentRangeStart, commentRangeEnd)
19
+ * - Bookmark boundaries (bookmarkStart, bookmarkEnd)
20
+ * - Tracked-change wrapper boundaries (ins, del, moveFrom, moveTo)
21
+ */
22
+ export declare function mergeRuns(doc: Document): MergeRunsResult;
23
+ //# sourceMappingURL=merge_runs.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"merge_runs.d.ts","sourceRoot":"","sources":["../../src/primitives/merge_runs.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH,MAAM,MAAM,eAAe,GAAG;IAC5B,UAAU,EAAE,MAAM,CAAC;IACnB,eAAe,EAAE,MAAM,CAAC;CACzB,CAAC;AA2OF;;;;;;;;;;GAUG;AACH,wBAAgB,SAAS,CAAC,GAAG,EAAE,QAAQ,GAAG,eAAe,CAwBxD"}
@@ -0,0 +1,243 @@
1
+ /**
2
+ * merge_runs — merge adjacent format-identical runs within paragraphs.
3
+ *
4
+ * Safety barriers: never merge across fldChar/instrText, comment range,
5
+ * bookmark, or tracked-change wrapper boundaries.
6
+ */
7
+ import { XMLSerializer } from '@xmldom/xmldom';
8
+ import { OOXML, W } from './namespaces.js';
9
+ // ── Barrier element local names ────────────────────────────────────────
10
+ const BARRIER_LOCALS = new Set([
11
+ W.fldChar,
12
+ W.instrText,
13
+ W.bookmarkStart,
14
+ W.bookmarkEnd,
15
+ 'commentRangeStart',
16
+ 'commentRangeEnd',
17
+ ]);
18
+ const TC_WRAPPER_LOCALS = new Set([
19
+ 'ins',
20
+ 'del',
21
+ 'moveFrom',
22
+ 'moveTo',
23
+ ]);
24
+ // ── Helpers ────────────────────────────────────────────────────────────
25
+ const serializer = new XMLSerializer();
26
+ function isW(el, localName) {
27
+ return el.namespaceURI === OOXML.W_NS && el.localName === localName;
28
+ }
29
+ function isWRun(node) {
30
+ return (node.nodeType === 1 &&
31
+ node.namespaceURI === OOXML.W_NS &&
32
+ node.localName === W.r);
33
+ }
34
+ /** Strip all w:rsid* attributes from an element and its descendants. */
35
+ function stripRsidAttributes(el) {
36
+ const attrs = Array.from(el.attributes);
37
+ for (const attr of attrs) {
38
+ const name = attr.localName ?? attr.name;
39
+ if (/^rsid/i.test(name)) {
40
+ el.removeAttributeNode(attr);
41
+ }
42
+ }
43
+ let child = el.firstChild;
44
+ while (child) {
45
+ if (child.nodeType === 1)
46
+ stripRsidAttributes(child);
47
+ child = child.nextSibling;
48
+ }
49
+ }
50
+ /**
51
+ * Canonical key for a run's direct formatting. Two runs with the same
52
+ * key have identical formatting and can be merged (if no barriers).
53
+ */
54
+ function runFormattingKey(run) {
55
+ const rPr = run.getElementsByTagNameNS(OOXML.W_NS, W.rPr).item(0);
56
+ if (!rPr)
57
+ return '';
58
+ const clone = rPr.cloneNode(true);
59
+ stripRsidAttributes(clone);
60
+ return serializer.serializeToString(clone);
61
+ }
62
+ /** Check whether a run contains barrier content (fldChar, instrText). */
63
+ function runContainsBarrierContent(run) {
64
+ let child = run.firstChild;
65
+ while (child) {
66
+ if (child.nodeType === 1) {
67
+ const el = child;
68
+ if (el.namespaceURI === OOXML.W_NS && BARRIER_LOCALS.has(el.localName)) {
69
+ return true;
70
+ }
71
+ }
72
+ child = child.nextSibling;
73
+ }
74
+ return false;
75
+ }
76
+ /** Content children of a run (everything except w:rPr). */
77
+ function runContentChildren(run) {
78
+ const out = [];
79
+ let child = run.firstChild;
80
+ while (child) {
81
+ if (child.nodeType === 1 && isW(child, W.rPr)) {
82
+ child = child.nextSibling;
83
+ continue;
84
+ }
85
+ out.push(child);
86
+ child = child.nextSibling;
87
+ }
88
+ return out;
89
+ }
90
+ /**
91
+ * Consolidate adjacent w:t elements within a run into a single w:t.
92
+ * This is needed after run merging, since appending content children from
93
+ * one run into another produces multiple w:t fragments.
94
+ * Skips whitespace-only text nodes between elements (formatting indentation).
95
+ */
96
+ function consolidateRunTextNodes(run) {
97
+ let child = run.firstChild;
98
+ while (child) {
99
+ if (child.nodeType !== 1 || !isW(child, W.t)) {
100
+ child = child.nextSibling;
101
+ continue;
102
+ }
103
+ // Found a w:t — absorb any following w:t siblings, skipping whitespace text nodes.
104
+ const first = child;
105
+ let next = first.nextSibling;
106
+ while (next) {
107
+ // Skip whitespace-only text nodes (formatting indentation).
108
+ if (next.nodeType === 3 && !(next.textContent ?? '').trim()) {
109
+ const ws = next;
110
+ next = ws.nextSibling;
111
+ ws.parentNode?.removeChild(ws);
112
+ continue;
113
+ }
114
+ // Absorb adjacent w:t elements.
115
+ if (next.nodeType === 1 && isW(next, W.t)) {
116
+ const following = next.nextSibling;
117
+ first.textContent = (first.textContent ?? '') + (next.textContent ?? '');
118
+ next.parentNode?.removeChild(next);
119
+ next = following;
120
+ continue;
121
+ }
122
+ // Non-text, non-whitespace node — stop consolidation.
123
+ break;
124
+ }
125
+ // Fix xml:space attribute for the consolidated text.
126
+ const text = first.textContent ?? '';
127
+ if (text.startsWith(' ') || text.endsWith(' ')) {
128
+ first.setAttributeNS('http://www.w3.org/XML/1998/namespace', 'xml:space', 'preserve');
129
+ }
130
+ else {
131
+ first.removeAttributeNS('http://www.w3.org/XML/1998/namespace', 'space');
132
+ }
133
+ child = first.nextSibling;
134
+ }
135
+ }
136
+ /** Remove all `<w:proofErr>` elements from a paragraph. */
137
+ function removeProofErrors(paragraph) {
138
+ const proofErrs = Array.from(paragraph.getElementsByTagNameNS(OOXML.W_NS, 'proofErr'));
139
+ for (const el of proofErrs) {
140
+ el.parentNode?.removeChild(el);
141
+ }
142
+ return proofErrs.length;
143
+ }
144
+ // ── Run group collection ───────────────────────────────────────────────
145
+ /**
146
+ * Collect groups of adjacent w:r elements within the same parent, not
147
+ * separated by barrier elements. Each group is a merge candidate.
148
+ */
149
+ function collectMergeableRunGroups(paragraph) {
150
+ const allGroups = [];
151
+ const containers = [paragraph];
152
+ // Also collect runs inside tracked-change wrappers
153
+ for (const local of TC_WRAPPER_LOCALS) {
154
+ const wrappers = Array.from(paragraph.getElementsByTagNameNS(OOXML.W_NS, local));
155
+ containers.push(...wrappers);
156
+ }
157
+ for (const container of containers) {
158
+ let currentGroup = [];
159
+ let child = container.firstChild;
160
+ while (child) {
161
+ if (child.nodeType === 1) {
162
+ const el = child;
163
+ if (isWRun(el)) {
164
+ currentGroup.push(el);
165
+ }
166
+ else {
167
+ // Any non-run element breaks the group
168
+ if (currentGroup.length > 0) {
169
+ allGroups.push(currentGroup);
170
+ currentGroup = [];
171
+ }
172
+ }
173
+ }
174
+ child = child.nextSibling;
175
+ }
176
+ if (currentGroup.length > 0) {
177
+ allGroups.push(currentGroup);
178
+ }
179
+ }
180
+ return allGroups;
181
+ }
182
+ /** Merge adjacent format-identical runs within a paragraph. */
183
+ function mergeParagraphRuns(paragraph) {
184
+ let merged = 0;
185
+ const groups = collectMergeableRunGroups(paragraph);
186
+ for (const group of groups) {
187
+ if (group.length < 2)
188
+ continue;
189
+ let i = 0;
190
+ while (i < group.length - 1) {
191
+ const current = group[i];
192
+ const next = group[i + 1];
193
+ if (!runContainsBarrierContent(current) &&
194
+ !runContainsBarrierContent(next) &&
195
+ runFormattingKey(current) === runFormattingKey(next)) {
196
+ // Move all content children of `next` into `current`.
197
+ for (const node of runContentChildren(next)) {
198
+ current.appendChild(node);
199
+ }
200
+ // Consolidate adjacent w:t fragments produced by the merge.
201
+ consolidateRunTextNodes(current);
202
+ next.parentNode?.removeChild(next);
203
+ group.splice(i + 1, 1);
204
+ merged++;
205
+ }
206
+ else {
207
+ i++;
208
+ }
209
+ }
210
+ }
211
+ return merged;
212
+ }
213
+ // ── Public API ─────────────────────────────────────────────────────────
214
+ /**
215
+ * Merge adjacent format-identical runs across all paragraphs in the
216
+ * document body. Removes `<w:proofErr>` elements and strips `rsid`
217
+ * attributes from runs before comparison.
218
+ *
219
+ * Safety barriers prevent merges across:
220
+ * - Field boundaries (fldChar, instrText)
221
+ * - Comment range boundaries (commentRangeStart, commentRangeEnd)
222
+ * - Bookmark boundaries (bookmarkStart, bookmarkEnd)
223
+ * - Tracked-change wrapper boundaries (ins, del, moveFrom, moveTo)
224
+ */
225
+ export function mergeRuns(doc) {
226
+ const body = doc.getElementsByTagNameNS(OOXML.W_NS, W.body).item(0);
227
+ if (!body)
228
+ return { runsMerged: 0, proofErrRemoved: 0 };
229
+ let totalMerged = 0;
230
+ let totalProofErr = 0;
231
+ const paragraphs = Array.from(body.getElementsByTagNameNS(OOXML.W_NS, W.p));
232
+ for (const p of paragraphs) {
233
+ totalProofErr += removeProofErrors(p);
234
+ // Strip rsid attributes from all runs before comparing.
235
+ const runs = Array.from(p.getElementsByTagNameNS(OOXML.W_NS, W.r));
236
+ for (const r of runs) {
237
+ stripRsidAttributes(r);
238
+ }
239
+ totalMerged += mergeParagraphRuns(p);
240
+ }
241
+ return { runsMerged: totalMerged, proofErrRemoved: totalProofErr };
242
+ }
243
+ //# sourceMappingURL=merge_runs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"merge_runs.js","sourceRoot":"","sources":["../../src/primitives/merge_runs.ts"],"names":[],"mappings":"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"}