@usejunior/docx-core 0.0.1 → 0.1.1

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 (252) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +86 -28
  3. package/dist/.tsbuildinfo +1 -0
  4. package/dist/atomizer.d.ts +218 -0
  5. package/dist/atomizer.d.ts.map +1 -0
  6. package/dist/atomizer.js +856 -0
  7. package/dist/atomizer.js.map +1 -0
  8. package/dist/baselines/atomizer/atomLcs.d.ts +96 -0
  9. package/dist/baselines/atomizer/atomLcs.d.ts.map +1 -0
  10. package/dist/baselines/atomizer/atomLcs.js +347 -0
  11. package/dist/baselines/atomizer/atomLcs.js.map +1 -0
  12. package/dist/baselines/atomizer/debug.d.ts +41 -0
  13. package/dist/baselines/atomizer/debug.d.ts.map +1 -0
  14. package/dist/baselines/atomizer/debug.js +85 -0
  15. package/dist/baselines/atomizer/debug.js.map +1 -0
  16. package/dist/baselines/atomizer/documentReconstructor.d.ts +64 -0
  17. package/dist/baselines/atomizer/documentReconstructor.d.ts.map +1 -0
  18. package/dist/baselines/atomizer/documentReconstructor.js +939 -0
  19. package/dist/baselines/atomizer/documentReconstructor.js.map +1 -0
  20. package/dist/baselines/atomizer/hierarchicalLcs.d.ts +111 -0
  21. package/dist/baselines/atomizer/hierarchicalLcs.d.ts.map +1 -0
  22. package/dist/baselines/atomizer/hierarchicalLcs.js +469 -0
  23. package/dist/baselines/atomizer/hierarchicalLcs.js.map +1 -0
  24. package/dist/baselines/atomizer/inPlaceModifier.d.ts +183 -0
  25. package/dist/baselines/atomizer/inPlaceModifier.d.ts.map +1 -0
  26. package/dist/baselines/atomizer/inPlaceModifier.js +1600 -0
  27. package/dist/baselines/atomizer/inPlaceModifier.js.map +1 -0
  28. package/dist/baselines/atomizer/numberingIntegration.d.ts +59 -0
  29. package/dist/baselines/atomizer/numberingIntegration.d.ts.map +1 -0
  30. package/dist/baselines/atomizer/numberingIntegration.js +209 -0
  31. package/dist/baselines/atomizer/numberingIntegration.js.map +1 -0
  32. package/dist/baselines/atomizer/pipeline.d.ts +65 -0
  33. package/dist/baselines/atomizer/pipeline.d.ts.map +1 -0
  34. package/dist/baselines/atomizer/pipeline.js +510 -0
  35. package/dist/baselines/atomizer/pipeline.js.map +1 -0
  36. package/dist/baselines/atomizer/premergeRuns.d.ts +26 -0
  37. package/dist/baselines/atomizer/premergeRuns.d.ts.map +1 -0
  38. package/dist/baselines/atomizer/premergeRuns.js +150 -0
  39. package/dist/baselines/atomizer/premergeRuns.js.map +1 -0
  40. package/dist/baselines/atomizer/trackChangesAcceptor.d.ts +63 -0
  41. package/dist/baselines/atomizer/trackChangesAcceptor.d.ts.map +1 -0
  42. package/dist/baselines/atomizer/trackChangesAcceptor.js +254 -0
  43. package/dist/baselines/atomizer/trackChangesAcceptor.js.map +1 -0
  44. package/dist/baselines/atomizer/trackChangesAcceptorAst.d.ts +64 -0
  45. package/dist/baselines/atomizer/trackChangesAcceptorAst.d.ts.map +1 -0
  46. package/dist/baselines/atomizer/trackChangesAcceptorAst.js +586 -0
  47. package/dist/baselines/atomizer/trackChangesAcceptorAst.js.map +1 -0
  48. package/dist/baselines/atomizer/xmlToWmlElement.d.ts +65 -0
  49. package/dist/baselines/atomizer/xmlToWmlElement.d.ts.map +1 -0
  50. package/dist/baselines/atomizer/xmlToWmlElement.js +95 -0
  51. package/dist/baselines/atomizer/xmlToWmlElement.js.map +1 -0
  52. package/dist/baselines/diffmatch/documentBuilder.d.ts +44 -0
  53. package/dist/baselines/diffmatch/documentBuilder.d.ts.map +1 -0
  54. package/dist/baselines/diffmatch/documentBuilder.js +227 -0
  55. package/dist/baselines/diffmatch/documentBuilder.js.map +1 -0
  56. package/dist/baselines/diffmatch/paragraphAlignment.d.ts +75 -0
  57. package/dist/baselines/diffmatch/paragraphAlignment.d.ts.map +1 -0
  58. package/dist/baselines/diffmatch/paragraphAlignment.js +206 -0
  59. package/dist/baselines/diffmatch/paragraphAlignment.js.map +1 -0
  60. package/dist/baselines/diffmatch/pipeline.d.ts +33 -0
  61. package/dist/baselines/diffmatch/pipeline.d.ts.map +1 -0
  62. package/dist/baselines/diffmatch/pipeline.js +84 -0
  63. package/dist/baselines/diffmatch/pipeline.js.map +1 -0
  64. package/dist/baselines/diffmatch/runDiff.d.ts +53 -0
  65. package/dist/baselines/diffmatch/runDiff.d.ts.map +1 -0
  66. package/dist/baselines/diffmatch/runDiff.js +253 -0
  67. package/dist/baselines/diffmatch/runDiff.js.map +1 -0
  68. package/dist/baselines/diffmatch/trackChangesRenderer.d.ts +64 -0
  69. package/dist/baselines/diffmatch/trackChangesRenderer.d.ts.map +1 -0
  70. package/dist/baselines/diffmatch/trackChangesRenderer.js +178 -0
  71. package/dist/baselines/diffmatch/trackChangesRenderer.js.map +1 -0
  72. package/dist/baselines/diffmatch/xmlParser.d.ts +45 -0
  73. package/dist/baselines/diffmatch/xmlParser.d.ts.map +1 -0
  74. package/dist/baselines/diffmatch/xmlParser.js +344 -0
  75. package/dist/baselines/diffmatch/xmlParser.js.map +1 -0
  76. package/dist/baselines/wmlcomparer/DocxodusWasm.d.ts +51 -0
  77. package/dist/baselines/wmlcomparer/DocxodusWasm.d.ts.map +1 -0
  78. package/dist/baselines/wmlcomparer/DocxodusWasm.js +83 -0
  79. package/dist/baselines/wmlcomparer/DocxodusWasm.js.map +1 -0
  80. package/dist/baselines/wmlcomparer/DotnetCli.d.ts +40 -0
  81. package/dist/baselines/wmlcomparer/DotnetCli.d.ts.map +1 -0
  82. package/dist/baselines/wmlcomparer/DotnetCli.js +135 -0
  83. package/dist/baselines/wmlcomparer/DotnetCli.js.map +1 -0
  84. package/dist/benchmark/metrics.d.ts +72 -0
  85. package/dist/benchmark/metrics.d.ts.map +1 -0
  86. package/dist/benchmark/metrics.js +45 -0
  87. package/dist/benchmark/metrics.js.map +1 -0
  88. package/dist/benchmark/reporter.d.ts +23 -0
  89. package/dist/benchmark/reporter.d.ts.map +1 -0
  90. package/dist/benchmark/reporter.js +147 -0
  91. package/dist/benchmark/reporter.js.map +1 -0
  92. package/dist/benchmark/runner.d.ts +30 -0
  93. package/dist/benchmark/runner.d.ts.map +1 -0
  94. package/dist/benchmark/runner.js +233 -0
  95. package/dist/benchmark/runner.js.map +1 -0
  96. package/dist/cli/compare-two.d.ts +28 -0
  97. package/dist/cli/compare-two.d.ts.map +1 -0
  98. package/dist/cli/compare-two.js +110 -0
  99. package/dist/cli/compare-two.js.map +1 -0
  100. package/dist/cli/index.d.ts +3 -0
  101. package/dist/cli/index.d.ts.map +1 -0
  102. package/dist/cli/index.js +21 -0
  103. package/dist/cli/index.js.map +1 -0
  104. package/dist/core-types.d.ts +296 -0
  105. package/dist/core-types.d.ts.map +1 -0
  106. package/dist/core-types.js +122 -0
  107. package/dist/core-types.js.map +1 -0
  108. package/dist/footnotes.d.ts +144 -0
  109. package/dist/footnotes.d.ts.map +1 -0
  110. package/dist/footnotes.js +291 -0
  111. package/dist/footnotes.js.map +1 -0
  112. package/dist/format-detection.d.ts +120 -0
  113. package/dist/format-detection.d.ts.map +1 -0
  114. package/dist/format-detection.js +338 -0
  115. package/dist/format-detection.js.map +1 -0
  116. package/dist/index.d.ts +177 -0
  117. package/dist/index.d.ts.map +1 -0
  118. package/dist/index.js +55 -0
  119. package/dist/index.js.map +1 -0
  120. package/dist/integration/output-artifacts.d.ts +6 -0
  121. package/dist/integration/output-artifacts.d.ts.map +1 -0
  122. package/dist/integration/output-artifacts.js +30 -0
  123. package/dist/integration/output-artifacts.js.map +1 -0
  124. package/dist/move-detection.d.ts +211 -0
  125. package/dist/move-detection.d.ts.map +1 -0
  126. package/dist/move-detection.js +391 -0
  127. package/dist/move-detection.js.map +1 -0
  128. package/dist/numbering.d.ts +136 -0
  129. package/dist/numbering.d.ts.map +1 -0
  130. package/dist/numbering.js +446 -0
  131. package/dist/numbering.js.map +1 -0
  132. package/dist/primitives/accept_changes.d.ts +30 -0
  133. package/dist/primitives/accept_changes.d.ts.map +1 -0
  134. package/dist/primitives/accept_changes.js +241 -0
  135. package/dist/primitives/accept_changes.js.map +1 -0
  136. package/dist/primitives/bookmarks.d.ts +12 -0
  137. package/dist/primitives/bookmarks.d.ts.map +1 -0
  138. package/dist/primitives/bookmarks.js +248 -0
  139. package/dist/primitives/bookmarks.js.map +1 -0
  140. package/dist/primitives/comments.d.ts +88 -0
  141. package/dist/primitives/comments.d.ts.map +1 -0
  142. package/dist/primitives/comments.js +703 -0
  143. package/dist/primitives/comments.js.map +1 -0
  144. package/dist/primitives/document.d.ts +168 -0
  145. package/dist/primitives/document.d.ts.map +1 -0
  146. package/dist/primitives/document.js +532 -0
  147. package/dist/primitives/document.js.map +1 -0
  148. package/dist/primitives/document_view.d.ts +93 -0
  149. package/dist/primitives/document_view.d.ts.map +1 -0
  150. package/dist/primitives/document_view.js +722 -0
  151. package/dist/primitives/document_view.js.map +1 -0
  152. package/dist/primitives/dom-helpers.d.ts +94 -0
  153. package/dist/primitives/dom-helpers.d.ts.map +1 -0
  154. package/dist/primitives/dom-helpers.js +219 -0
  155. package/dist/primitives/dom-helpers.js.map +1 -0
  156. package/dist/primitives/errors.d.ts +7 -0
  157. package/dist/primitives/errors.d.ts.map +1 -0
  158. package/dist/primitives/errors.js +10 -0
  159. package/dist/primitives/errors.js.map +1 -0
  160. package/dist/primitives/extract_revisions.d.ts +50 -0
  161. package/dist/primitives/extract_revisions.d.ts.map +1 -0
  162. package/dist/primitives/extract_revisions.js +340 -0
  163. package/dist/primitives/extract_revisions.js.map +1 -0
  164. package/dist/primitives/footnotes.d.ts +37 -0
  165. package/dist/primitives/footnotes.d.ts.map +1 -0
  166. package/dist/primitives/footnotes.js +552 -0
  167. package/dist/primitives/footnotes.js.map +1 -0
  168. package/dist/primitives/formatting_tags.d.ts +30 -0
  169. package/dist/primitives/formatting_tags.d.ts.map +1 -0
  170. package/dist/primitives/formatting_tags.js +217 -0
  171. package/dist/primitives/formatting_tags.js.map +1 -0
  172. package/dist/primitives/index.d.ts +26 -0
  173. package/dist/primitives/index.d.ts.map +1 -0
  174. package/dist/primitives/index.js +26 -0
  175. package/dist/primitives/index.js.map +1 -0
  176. package/dist/primitives/layout.d.ts +53 -0
  177. package/dist/primitives/layout.d.ts.map +1 -0
  178. package/dist/primitives/layout.js +178 -0
  179. package/dist/primitives/layout.js.map +1 -0
  180. package/dist/primitives/list_labels.d.ts +19 -0
  181. package/dist/primitives/list_labels.d.ts.map +1 -0
  182. package/dist/primitives/list_labels.js +57 -0
  183. package/dist/primitives/list_labels.js.map +1 -0
  184. package/dist/primitives/matching.d.ts +17 -0
  185. package/dist/primitives/matching.d.ts.map +1 -0
  186. package/dist/primitives/matching.js +144 -0
  187. package/dist/primitives/matching.js.map +1 -0
  188. package/dist/primitives/merge_runs.d.ts +23 -0
  189. package/dist/primitives/merge_runs.d.ts.map +1 -0
  190. package/dist/primitives/merge_runs.js +195 -0
  191. package/dist/primitives/merge_runs.js.map +1 -0
  192. package/dist/primitives/namespaces.d.ts +90 -0
  193. package/dist/primitives/namespaces.d.ts.map +1 -0
  194. package/dist/primitives/namespaces.js +107 -0
  195. package/dist/primitives/namespaces.js.map +1 -0
  196. package/dist/primitives/numbering.d.ts +27 -0
  197. package/dist/primitives/numbering.d.ts.map +1 -0
  198. package/dist/primitives/numbering.js +182 -0
  199. package/dist/primitives/numbering.js.map +1 -0
  200. package/dist/primitives/prevent_double_elevation.d.ts +18 -0
  201. package/dist/primitives/prevent_double_elevation.d.ts.map +1 -0
  202. package/dist/primitives/prevent_double_elevation.js +190 -0
  203. package/dist/primitives/prevent_double_elevation.js.map +1 -0
  204. package/dist/primitives/reject_changes.d.ts +27 -0
  205. package/dist/primitives/reject_changes.d.ts.map +1 -0
  206. package/dist/primitives/reject_changes.js +371 -0
  207. package/dist/primitives/reject_changes.js.map +1 -0
  208. package/dist/primitives/relationships.d.ts +7 -0
  209. package/dist/primitives/relationships.d.ts.map +1 -0
  210. package/dist/primitives/relationships.js +24 -0
  211. package/dist/primitives/relationships.js.map +1 -0
  212. package/dist/primitives/semantic_tags.d.ts +32 -0
  213. package/dist/primitives/semantic_tags.d.ts.map +1 -0
  214. package/dist/primitives/semantic_tags.js +139 -0
  215. package/dist/primitives/semantic_tags.js.map +1 -0
  216. package/dist/primitives/simplify_redlines.d.ts +19 -0
  217. package/dist/primitives/simplify_redlines.d.ts.map +1 -0
  218. package/dist/primitives/simplify_redlines.js +94 -0
  219. package/dist/primitives/simplify_redlines.js.map +1 -0
  220. package/dist/primitives/styles.d.ts +36 -0
  221. package/dist/primitives/styles.d.ts.map +1 -0
  222. package/dist/primitives/styles.js +190 -0
  223. package/dist/primitives/styles.js.map +1 -0
  224. package/dist/primitives/text.d.ts +27 -0
  225. package/dist/primitives/text.d.ts.map +1 -0
  226. package/dist/primitives/text.js +416 -0
  227. package/dist/primitives/text.js.map +1 -0
  228. package/dist/primitives/validate_document.d.ts +24 -0
  229. package/dist/primitives/validate_document.d.ts.map +1 -0
  230. package/dist/primitives/validate_document.js +147 -0
  231. package/dist/primitives/validate_document.js.map +1 -0
  232. package/dist/primitives/xml.d.ts +5 -0
  233. package/dist/primitives/xml.d.ts.map +1 -0
  234. package/dist/primitives/xml.js +19 -0
  235. package/dist/primitives/xml.js.map +1 -0
  236. package/dist/primitives/zip.d.ts +25 -0
  237. package/dist/primitives/zip.d.ts.map +1 -0
  238. package/dist/primitives/zip.js +78 -0
  239. package/dist/primitives/zip.js.map +1 -0
  240. package/dist/shared/docx/DocxArchive.d.ts +94 -0
  241. package/dist/shared/docx/DocxArchive.d.ts.map +1 -0
  242. package/dist/shared/docx/DocxArchive.js +169 -0
  243. package/dist/shared/docx/DocxArchive.js.map +1 -0
  244. package/dist/shared/ooxml/namespaces.d.ts +149 -0
  245. package/dist/shared/ooxml/namespaces.d.ts.map +1 -0
  246. package/dist/shared/ooxml/namespaces.js +224 -0
  247. package/dist/shared/ooxml/namespaces.js.map +1 -0
  248. package/dist/shared/ooxml/types.d.ts +136 -0
  249. package/dist/shared/ooxml/types.d.ts.map +1 -0
  250. package/dist/shared/ooxml/types.js +7 -0
  251. package/dist/shared/ooxml/types.js.map +1 -0
  252. package/package.json +63 -6
@@ -0,0 +1,224 @@
1
+ /**
2
+ * OOXML namespace constants for Word document manipulation.
3
+ *
4
+ * Ported from: app/shared/document_primitives/ooxml/namespaces.py
5
+ *
6
+ * Central definitions for all WordprocessingML namespaces and qualified element names.
7
+ * This ensures consistent namespace handling across all XML operations.
8
+ *
9
+ * Reference: ECMA-376 Office Open XML File Formats
10
+ */
11
+ // =============================================================================
12
+ // Namespace URIs
13
+ // =============================================================================
14
+ /** Main WordprocessingML namespace */
15
+ export const W_NS = 'http://schemas.openxmlformats.org/wordprocessingml/2006/main';
16
+ /** Relationship namespace (for hyperlinks, etc.) */
17
+ export const R_NS = 'http://schemas.openxmlformats.org/officeDocument/2006/relationships';
18
+ /** Extended properties namespace */
19
+ export const WP_NS = 'http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawing';
20
+ /** Drawing namespace */
21
+ export const A_NS = 'http://schemas.openxmlformats.org/drawingml/2006/main';
22
+ /** VML namespace (legacy drawing) */
23
+ export const V_NS = 'urn:schemas-microsoft-com:vml';
24
+ /** Math namespace */
25
+ export const M_NS = 'http://schemas.openxmlformats.org/officeDocument/2006/math';
26
+ // =============================================================================
27
+ // Namespace Map
28
+ // =============================================================================
29
+ export const NSMAP = {
30
+ w: W_NS,
31
+ r: R_NS,
32
+ wp: WP_NS,
33
+ a: A_NS,
34
+ v: V_NS,
35
+ m: M_NS,
36
+ };
37
+ /** Reverse map for looking up prefixes */
38
+ export const PREFIX_MAP = Object.fromEntries(Object.entries(NSMAP).map(([k, v]) => [v, k]));
39
+ // =============================================================================
40
+ // Qualified Element Names (Clark notation)
41
+ // =============================================================================
42
+ // Document structure
43
+ export const W_BODY = `{${W_NS}}body`;
44
+ export const W_DOCUMENT = `{${W_NS}}document`;
45
+ export const W_SECTPR = `{${W_NS}}sectPr`; // Section properties
46
+ // Paragraph elements
47
+ export const W_P = `{${W_NS}}p`; // Paragraph
48
+ export const W_PPR = `{${W_NS}}pPr`; // Paragraph properties
49
+ export const W_PSTYLE = `{${W_NS}}pStyle`; // Paragraph style reference
50
+ export const W_JC = `{${W_NS}}jc`; // Paragraph justification/alignment
51
+ // Run elements
52
+ export const W_R = `{${W_NS}}r`; // Run
53
+ export const W_RPR = `{${W_NS}}rPr`; // Run properties
54
+ export const W_T = `{${W_NS}}t`; // Text
55
+ export const W_BR = `{${W_NS}}br`; // Break
56
+ export const W_TAB = `{${W_NS}}tab`; // Tab character
57
+ // Run formatting
58
+ export const W_B = `{${W_NS}}b`; // Bold
59
+ export const W_B_CS = `{${W_NS}}bCs`; // Bold (complex script)
60
+ export const W_I = `{${W_NS}}i`; // Italic
61
+ export const W_I_CS = `{${W_NS}}iCs`; // Italic (complex script)
62
+ export const W_U = `{${W_NS}}u`; // Underline
63
+ export const W_STRIKE = `{${W_NS}}strike`; // Strikethrough
64
+ export const W_DSTRIKE = `{${W_NS}}dstrike`; // Double strikethrough
65
+ export const W_CAPS = `{${W_NS}}caps`; // All caps
66
+ export const W_SMALLCAPS = `{${W_NS}}smallCaps`; // Small caps
67
+ export const W_VANISH = `{${W_NS}}vanish`; // Hidden text
68
+ // Font properties
69
+ export const W_RFONTS = `{${W_NS}}rFonts`; // Font family
70
+ export const W_SZ = `{${W_NS}}sz`; // Font size (half-points)
71
+ export const W_SZ_CS = `{${W_NS}}szCs`; // Font size complex script
72
+ export const W_COLOR = `{${W_NS}}color`; // Text color
73
+ export const W_HIGHLIGHT = `{${W_NS}}highlight`; // Highlight color
74
+ export const W_SHD = `{${W_NS}}shd`; // Shading (background)
75
+ export const W_RSTYLE = `{${W_NS}}rStyle`; // Character style reference
76
+ // Bookmarks
77
+ export const W_BOOKMARK_START = `{${W_NS}}bookmarkStart`;
78
+ export const W_BOOKMARK_END = `{${W_NS}}bookmarkEnd`;
79
+ // Fields
80
+ export const W_FLDCHAR = `{${W_NS}}fldChar`; // Field character
81
+ export const W_FLDCHARTYPE = `{${W_NS}}fldCharType`; // Field char type attr
82
+ export const W_INSTRTEXT = `{${W_NS}}instrText`; // Instruction text
83
+ export const W_FLDSIMPLE = `{${W_NS}}fldSimple`; // Simple field
84
+ export const W_DIRTY = `{${W_NS}}dirty`; // Field needs update
85
+ // Hyperlinks
86
+ export const W_HYPERLINK = `{${W_NS}}hyperlink`;
87
+ // Lists
88
+ export const W_NUMPR = `{${W_NS}}numPr`; // Numbering properties
89
+ export const W_ILVL = `{${W_NS}}ilvl`; // Indentation level
90
+ export const W_NUMID = `{${W_NS}}numId`; // Numbering ID
91
+ // Tables
92
+ export const W_TBL = `{${W_NS}}tbl`; // Table
93
+ export const W_TR = `{${W_NS}}tr`; // Table row
94
+ export const W_TC = `{${W_NS}}tc`; // Table cell
95
+ export const W_TBLPR = `{${W_NS}}tblPr`; // Table properties
96
+ export const W_TCPR = `{${W_NS}}tcPr`; // Cell properties
97
+ // Headers/Footers
98
+ export const W_SECTTYPE = `{${W_NS}}type`;
99
+ export const W_HEADERREFERENCE = `{${W_NS}}headerReference`;
100
+ export const W_FOOTERREFERENCE = `{${W_NS}}footerReference`;
101
+ // Comments
102
+ export const W_COMMENT_RANGE_START = `{${W_NS}}commentRangeStart`;
103
+ export const W_COMMENT_RANGE_END = `{${W_NS}}commentRangeEnd`;
104
+ // =============================================================================
105
+ // Track Changes Elements (NEW - not in Python original)
106
+ // =============================================================================
107
+ export const W_INS = `{${W_NS}}ins`; // Insertion
108
+ export const W_DEL = `{${W_NS}}del`; // Deletion
109
+ export const W_DELTEXT = `{${W_NS}}delText`; // Deleted text content
110
+ export const W_MOVEFROM = `{${W_NS}}moveFrom`; // Move source
111
+ export const W_MOVETO = `{${W_NS}}moveTo`; // Move destination
112
+ export const W_RPRCHANGE = `{${W_NS}}rPrChange`; // Run properties change
113
+ export const W_PPRCHANGE = `{${W_NS}}pPrChange`; // Paragraph properties change
114
+ // Relationship attributes
115
+ export const R_ID = `{${R_NS}}id`;
116
+ // =============================================================================
117
+ // Common Attribute Names
118
+ // =============================================================================
119
+ // Bookmark attributes
120
+ export const W_ID = `{${W_NS}}id`;
121
+ export const W_NAME = `{${W_NS}}name`;
122
+ // Track changes attributes
123
+ export const W_AUTHOR = `{${W_NS}}author`;
124
+ export const W_DATE = `{${W_NS}}date`;
125
+ // General attributes
126
+ export const W_VAL = `{${W_NS}}val`;
127
+ // Underline types (for w:u/@w:val)
128
+ export const UNDERLINE_NONE = 'none';
129
+ export const UNDERLINE_SINGLE = 'single';
130
+ export const UNDERLINE_DOUBLE = 'double';
131
+ export const UNDERLINE_DOTTED = 'dotted';
132
+ export const UNDERLINE_DASHED = 'dash';
133
+ export const UNDERLINE_WAVY = 'wave';
134
+ export const UNDERLINE_WORDS = 'words';
135
+ // Alignment values (for w:jc/@w:val)
136
+ export const ALIGN_LEFT = 'left';
137
+ export const ALIGN_CENTER = 'center';
138
+ export const ALIGN_RIGHT = 'right';
139
+ export const ALIGN_JUSTIFY = 'both';
140
+ // Field character types (for w:fldChar/@w:fldCharType)
141
+ export const FLDCHAR_BEGIN = 'begin';
142
+ export const FLDCHAR_SEPARATE = 'separate';
143
+ export const FLDCHAR_END = 'end';
144
+ // Highlight color names (for w:highlight/@w:val)
145
+ export const HIGHLIGHT_YELLOW = 'yellow';
146
+ export const HIGHLIGHT_GREEN = 'green';
147
+ export const HIGHLIGHT_CYAN = 'cyan';
148
+ export const HIGHLIGHT_MAGENTA = 'magenta';
149
+ export const HIGHLIGHT_BLUE = 'blue';
150
+ export const HIGHLIGHT_RED = 'red';
151
+ export const HIGHLIGHT_DARK_BLUE = 'darkBlue';
152
+ export const HIGHLIGHT_DARK_CYAN = 'darkCyan';
153
+ export const HIGHLIGHT_DARK_GREEN = 'darkGreen';
154
+ export const HIGHLIGHT_DARK_MAGENTA = 'darkMagenta';
155
+ export const HIGHLIGHT_DARK_RED = 'darkRed';
156
+ export const HIGHLIGHT_DARK_YELLOW = 'darkYellow';
157
+ export const HIGHLIGHT_DARK_GRAY = 'darkGray';
158
+ export const HIGHLIGHT_LIGHT_GRAY = 'lightGray';
159
+ export const HIGHLIGHT_BLACK = 'black';
160
+ export const HIGHLIGHT_NONE = 'none';
161
+ // =============================================================================
162
+ // Helper Functions
163
+ // =============================================================================
164
+ /**
165
+ * Convert Clark notation to prefixed notation.
166
+ *
167
+ * @param clarkName - Element name in Clark notation, e.g., '{http://...}p'
168
+ * @returns Prefixed name, e.g., 'w:p'
169
+ *
170
+ * @example
171
+ * clarkToPrefixed(W_P) // => 'w:p'
172
+ */
173
+ export function clarkToPrefixed(clarkName) {
174
+ if (clarkName.startsWith('{')) {
175
+ const nsEnd = clarkName.indexOf('}');
176
+ if (nsEnd !== -1) {
177
+ const ns = clarkName.slice(1, nsEnd);
178
+ const local = clarkName.slice(nsEnd + 1);
179
+ const prefix = PREFIX_MAP[ns];
180
+ if (prefix) {
181
+ return `${prefix}:${local}`;
182
+ }
183
+ }
184
+ }
185
+ return clarkName;
186
+ }
187
+ /**
188
+ * Convert prefixed notation to Clark notation.
189
+ *
190
+ * @param prefixedName - Element name with prefix, e.g., 'w:p'
191
+ * @returns Clark notation name, e.g., '{http://...}p'
192
+ *
193
+ * @example
194
+ * prefixedToClark('w:p') // => '{http://schemas.openxmlformats.org/wordprocessingml/2006/main}p'
195
+ */
196
+ export function prefixedToClark(prefixedName) {
197
+ if (prefixedName.includes(':')) {
198
+ const [prefix, local] = prefixedName.split(':', 2);
199
+ const ns = NSMAP[prefix];
200
+ if (ns) {
201
+ return `{${ns}}${local}`;
202
+ }
203
+ }
204
+ return prefixedName;
205
+ }
206
+ /**
207
+ * Extract local name from Clark notation.
208
+ *
209
+ * @param clarkName - Element name in Clark notation
210
+ * @returns Local name without namespace
211
+ *
212
+ * @example
213
+ * localName(W_P) // => 'p'
214
+ */
215
+ export function localName(clarkName) {
216
+ if (clarkName.startsWith('{')) {
217
+ const nsEnd = clarkName.indexOf('}');
218
+ if (nsEnd !== -1) {
219
+ return clarkName.slice(nsEnd + 1);
220
+ }
221
+ }
222
+ return clarkName;
223
+ }
224
+ //# sourceMappingURL=namespaces.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"namespaces.js","sourceRoot":"","sources":["../../../src/shared/ooxml/namespaces.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,136 @@
1
+ /**
2
+ * TypeScript types for OOXML document elements.
3
+ *
4
+ * These types represent the object model used during comparison operations.
5
+ */
6
+ /**
7
+ * Represents a revision (track change) in the document.
8
+ */
9
+ export interface Revision {
10
+ /** Unique ID for this revision */
11
+ id: number;
12
+ /** Author of the revision */
13
+ author: string;
14
+ /** Timestamp of the revision */
15
+ date: Date;
16
+ /** Type of revision */
17
+ type: 'insertion' | 'deletion' | 'move' | 'format';
18
+ }
19
+ /**
20
+ * Represents a text run with its properties.
21
+ */
22
+ export interface RunInfo {
23
+ /** The text content */
24
+ text: string;
25
+ /** Character offset within the paragraph */
26
+ start: number;
27
+ /** Character offset of end (exclusive) */
28
+ end: number;
29
+ /** Run properties (bold, italic, etc.) */
30
+ properties?: RunProperties;
31
+ /** If this run is part of a revision */
32
+ revision?: Revision;
33
+ }
34
+ /**
35
+ * Run formatting properties.
36
+ */
37
+ export interface RunProperties {
38
+ bold?: boolean;
39
+ italic?: boolean;
40
+ underline?: string;
41
+ strikethrough?: boolean;
42
+ highlight?: string;
43
+ color?: string;
44
+ fontSize?: number;
45
+ fontFamily?: string;
46
+ }
47
+ /**
48
+ * Represents a paragraph with its content.
49
+ */
50
+ export interface ParagraphInfo {
51
+ /** Unique identifier for correlation */
52
+ id?: string;
53
+ /** Plain text content (for comparison) */
54
+ text: string;
55
+ /** Individual runs in this paragraph */
56
+ runs: RunInfo[];
57
+ /** Paragraph style */
58
+ style?: string;
59
+ /** Numbering info if this is a list item */
60
+ numbering?: NumberingInfo;
61
+ /** SHA1 hash for correlation */
62
+ hash?: string;
63
+ }
64
+ /**
65
+ * Numbering (list) information.
66
+ */
67
+ export interface NumberingInfo {
68
+ /** Numbering definition ID */
69
+ numId: number;
70
+ /** Indentation level */
71
+ ilvl: number;
72
+ /** Rendered label text (e.g., "1.", "a)", "(i)") */
73
+ label?: string;
74
+ }
75
+ /**
76
+ * Represents a field (cross-reference, hyperlink, etc.)
77
+ */
78
+ export interface FieldInfo {
79
+ /** Field type (REF, HYPERLINK, etc.) */
80
+ type: string;
81
+ /** Field instruction code */
82
+ instruction: string;
83
+ /** Displayed result text */
84
+ result: string;
85
+ /** Character position in paragraph */
86
+ start: number;
87
+ end: number;
88
+ }
89
+ /**
90
+ * Result of paragraph alignment (LCS-based).
91
+ */
92
+ export interface AlignmentResult {
93
+ /** Paragraphs that match between documents */
94
+ matched: Array<{
95
+ original: ParagraphInfo;
96
+ revised: ParagraphInfo;
97
+ similarity: number;
98
+ }>;
99
+ /** Paragraphs only in original (deleted) */
100
+ deleted: ParagraphInfo[];
101
+ /** Paragraphs only in revised (inserted) */
102
+ inserted: ParagraphInfo[];
103
+ }
104
+ /**
105
+ * Diff operation from diff-match-patch.
106
+ */
107
+ export type DiffOp = [-1 | 0 | 1, string];
108
+ /**
109
+ * Run-level diff result.
110
+ */
111
+ export interface RunDiffResult {
112
+ /** Original runs with deletion markers */
113
+ originalRuns: RunInfo[];
114
+ /** Revised runs with insertion markers */
115
+ revisedRuns: RunInfo[];
116
+ /** Combined runs with track changes */
117
+ mergedRuns: RunInfo[];
118
+ }
119
+ /**
120
+ * Statistics from a comparison operation.
121
+ */
122
+ export interface ComparisonStats {
123
+ /** Number of inserted runs/paragraphs */
124
+ insertions: number;
125
+ /** Number of deleted runs/paragraphs */
126
+ deletions: number;
127
+ /** Number of modified paragraphs */
128
+ modifications: number;
129
+ /** Average length of changed spans */
130
+ avgSpanLength: number;
131
+ /** Total paragraphs in original */
132
+ originalParagraphs: number;
133
+ /** Total paragraphs in revised */
134
+ revisedParagraphs: number;
135
+ }
136
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/shared/ooxml/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * TypeScript types for OOXML document elements.
3
+ *
4
+ * These types represent the object model used during comparison operations.
5
+ */
6
+ export {};
7
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/shared/ooxml/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG"}
package/package.json CHANGED
@@ -1,10 +1,67 @@
1
1
  {
2
2
  "name": "@usejunior/docx-core",
3
- "version": "0.0.1",
4
- "description": "OIDC trusted publishing setup package for @usejunior/docx-core",
3
+ "version": "0.1.1",
4
+ "description": "OOXML (.docx) core library: primitives, comparison, and track changes",
5
+ "type": "module",
6
+ "main": "dist/index.js",
7
+ "types": "dist/index.d.ts",
8
+ "scripts": {
9
+ "clean:dist": "node -e \"const { rmSync } = require('node:fs'); rmSync('dist', { recursive: true, force: true });\"",
10
+ "build": "npm run clean:dist && tsc -p tsconfig.build.json",
11
+ "dev": "tsc -p tsconfig.build.json --watch",
12
+ "test": "node ../../node_modules/vitest/vitest.mjs",
13
+ "test:run": "node ../../node_modules/vitest/vitest.mjs run",
14
+ "test:baseline": "node ../../node_modules/vitest/vitest.mjs run -c vitest.baseline.config.ts",
15
+ "test:coverage": "node ../../node_modules/vitest/vitest.mjs run --coverage --coverage.reporter=text-summary --coverage.reporter=json-summary --coverage.reporter=lcov",
16
+ "check:spec-coverage": "node scripts/validate_openspec_coverage.mjs && node scripts/validate_primitives_openspec_coverage.mjs",
17
+ "lint": "tsc --noEmit",
18
+ "benchmark": "tsx src/benchmark/runner.ts",
19
+ "cli": "node dist/cli/index.js"
20
+ },
21
+ "dependencies": {
22
+ "@xmldom/xmldom": "^0.8.10",
23
+ "diff-match-patch": "^1.0.5",
24
+ "jszip": "^3.10.1"
25
+ },
26
+ "devDependencies": {
27
+ "@types/diff-match-patch": "^1.0.36",
28
+ "@types/node": "^22.10.0",
29
+ "@vitest/coverage-v8": "^3.2.4",
30
+ "@vitest/runner": "^3.2.4",
31
+ "allure-vitest": "^3.0.0",
32
+ "tsx": "^4.19.2",
33
+ "typescript": "^5.7.2",
34
+ "vitest": "^3.2.4"
35
+ },
36
+ "engines": {
37
+ "node": ">=18.0.0"
38
+ },
39
+ "repository": {
40
+ "type": "git",
41
+ "url": "https://github.com/UseJunior/safe-docx"
42
+ },
43
+ "homepage": "https://github.com/UseJunior/safe-docx/tree/main/packages/docx-core",
44
+ "bugs": {
45
+ "url": "https://github.com/UseJunior/safe-docx/issues"
46
+ },
47
+ "files": [
48
+ "dist"
49
+ ],
5
50
  "keywords": [
6
- "oidc",
7
- "trusted-publishing",
8
- "setup"
9
- ]
51
+ "docx",
52
+ "ooxml",
53
+ "word",
54
+ "comparison",
55
+ "track-changes",
56
+ "document-editing",
57
+ "serverless",
58
+ "cloudflare-workers",
59
+ "edge",
60
+ "vercel"
61
+ ],
62
+ "license": "MIT",
63
+ "bin": {
64
+ "docx-comparison": "dist/cli/index.js",
65
+ "safe-docx-compare": "dist/cli/index.js"
66
+ }
10
67
  }