@usejunior/docx-core 0.18.0 → 0.20.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.
- package/dist/.tsbuildinfo +1 -1
- package/dist/core-types.d.ts +1 -139
- package/dist/core-types.d.ts.map +1 -1
- package/dist/core-types.js +1 -3
- package/dist/core-types.js.map +1 -1
- package/dist/generation/emit/borders.d.ts +14 -0
- package/dist/generation/emit/borders.d.ts.map +1 -0
- package/dist/generation/emit/borders.js +45 -0
- package/dist/generation/emit/borders.js.map +1 -0
- package/dist/generation/emit/properties.d.ts +1 -1
- package/dist/generation/emit/properties.d.ts.map +1 -1
- package/dist/generation/emit/properties.js +4 -0
- package/dist/generation/emit/properties.js.map +1 -1
- package/dist/generation/emit/table.d.ts.map +1 -1
- package/dist/generation/emit/table.js +3 -31
- package/dist/generation/emit/table.js.map +1 -1
- package/dist/generation/index.d.ts +1 -1
- package/dist/generation/index.d.ts.map +1 -1
- package/dist/generation/types.d.ts +9 -0
- package/dist/generation/types.d.ts.map +1 -1
- package/dist/generation/types.js.map +1 -1
- package/dist/generation/validate-spec.d.ts.map +1 -1
- package/dist/generation/validate-spec.js +2 -0
- package/dist/generation/validate-spec.js.map +1 -1
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +11 -0
- package/dist/index.js.map +1 -1
- package/dist/integration/generation-probes.d.ts +36 -2
- package/dist/integration/generation-probes.d.ts.map +1 -1
- package/dist/integration/generation-probes.js +137 -15
- package/dist/integration/generation-probes.js.map +1 -1
- package/dist/integration/libreoffice-oracle.js +1 -1
- package/dist/integration/synthetic-docx-fixture.d.ts.map +1 -1
- package/dist/integration/synthetic-docx-fixture.js +37 -20
- package/dist/integration/synthetic-docx-fixture.js.map +1 -1
- package/dist/primitives/accept_ai_edits.js +14 -2
- package/dist/primitives/accept_ai_edits.js.map +1 -1
- package/dist/primitives/accept_changes.d.ts +7 -0
- package/dist/primitives/accept_changes.d.ts.map +1 -1
- package/dist/primitives/accept_changes.js +92 -4
- package/dist/primitives/accept_changes.js.map +1 -1
- package/dist/primitives/bookmarks.d.ts +1 -0
- package/dist/primitives/bookmarks.d.ts.map +1 -1
- package/dist/primitives/bookmarks.js +1 -1
- package/dist/primitives/bookmarks.js.map +1 -1
- package/dist/primitives/comments.d.ts +31 -4
- package/dist/primitives/comments.d.ts.map +1 -1
- package/dist/primitives/comments.js +111 -12
- package/dist/primitives/comments.js.map +1 -1
- package/dist/primitives/document.d.ts +47 -1
- package/dist/primitives/document.d.ts.map +1 -1
- package/dist/primitives/document.js +198 -13
- package/dist/primitives/document.js.map +1 -1
- package/dist/primitives/document_view-headings.d.ts +3 -1
- package/dist/primitives/document_view-headings.d.ts.map +1 -1
- package/dist/primitives/document_view-headings.js +5 -5
- package/dist/primitives/document_view-headings.js.map +1 -1
- package/dist/primitives/document_view.d.ts +2 -0
- package/dist/primitives/document_view.d.ts.map +1 -1
- package/dist/primitives/document_view.js +18 -4
- package/dist/primitives/document_view.js.map +1 -1
- package/dist/primitives/field_evaluation.d.ts +70 -0
- package/dist/primitives/field_evaluation.d.ts.map +1 -0
- package/dist/primitives/field_evaluation.js +462 -0
- package/dist/primitives/field_evaluation.js.map +1 -0
- package/dist/primitives/footnotes.d.ts +17 -3
- package/dist/primitives/footnotes.d.ts.map +1 -1
- package/dist/primitives/footnotes.js +64 -17
- package/dist/primitives/footnotes.js.map +1 -1
- package/dist/primitives/formatting_tags.js +2 -2
- package/dist/primitives/formatting_tags.js.map +1 -1
- package/dist/primitives/index.d.ts +8 -1
- package/dist/primitives/index.d.ts.map +1 -1
- package/dist/primitives/index.js +8 -1
- package/dist/primitives/index.js.map +1 -1
- package/dist/primitives/merge_runs.d.ts +3 -1
- package/dist/primitives/merge_runs.d.ts.map +1 -1
- package/dist/primitives/merge_runs.js +12 -2
- package/dist/primitives/merge_runs.js.map +1 -1
- package/dist/primitives/namespaces.d.ts +12 -2
- package/dist/primitives/namespaces.d.ts.map +1 -1
- package/dist/primitives/namespaces.js +13 -2
- package/dist/primitives/namespaces.js.map +1 -1
- package/dist/primitives/note_conversion.d.ts +11 -0
- package/dist/primitives/note_conversion.d.ts.map +1 -0
- package/dist/primitives/note_conversion.js +12 -0
- package/dist/primitives/note_conversion.js.map +1 -0
- package/dist/primitives/opc-target.d.ts +24 -0
- package/dist/primitives/opc-target.d.ts.map +1 -0
- package/dist/primitives/opc-target.js +99 -0
- package/dist/primitives/opc-target.js.map +1 -0
- package/dist/primitives/paragraph_numbering.d.ts +40 -0
- package/dist/primitives/paragraph_numbering.d.ts.map +1 -0
- package/dist/primitives/paragraph_numbering.js +198 -0
- package/dist/primitives/paragraph_numbering.js.map +1 -0
- package/dist/primitives/reject_changes.d.ts +7 -0
- package/dist/primitives/reject_changes.d.ts.map +1 -1
- package/dist/primitives/reject_changes.js +133 -10
- package/dist/primitives/reject_changes.js.map +1 -1
- package/dist/primitives/sectPrAudit.d.ts +18 -1
- package/dist/primitives/sectPrAudit.d.ts.map +1 -1
- package/dist/primitives/sectPrAudit.js +120 -34
- package/dist/primitives/sectPrAudit.js.map +1 -1
- package/dist/primitives/sections.d.ts +134 -0
- package/dist/primitives/sections.d.ts.map +1 -0
- package/dist/primitives/sections.js +644 -0
- package/dist/primitives/sections.js.map +1 -0
- package/dist/primitives/serialize_html.d.ts.map +1 -1
- package/dist/primitives/serialize_html.js +18 -7
- package/dist/primitives/serialize_html.js.map +1 -1
- package/dist/primitives/styles.d.ts +60 -0
- package/dist/primitives/styles.d.ts.map +1 -1
- package/dist/primitives/styles.js +206 -25
- package/dist/primitives/styles.js.map +1 -1
- package/dist/primitives/symbol_run_content.d.ts +42 -0
- package/dist/primitives/symbol_run_content.d.ts.map +1 -0
- package/dist/primitives/symbol_run_content.js +79 -0
- package/dist/primitives/symbol_run_content.js.map +1 -0
- package/dist/primitives/text.d.ts +29 -0
- package/dist/primitives/text.d.ts.map +1 -1
- package/dist/primitives/text.js +354 -44
- package/dist/primitives/text.js.map +1 -1
- package/dist/primitives/track-changes-emitter.d.ts +9 -0
- package/dist/primitives/track-changes-emitter.d.ts.map +1 -1
- package/dist/primitives/track-changes-emitter.js +40 -2
- package/dist/primitives/track-changes-emitter.js.map +1 -1
- package/dist/primitives/validate_document.d.ts.map +1 -1
- package/dist/primitives/validate_document.js +22 -1
- package/dist/primitives/validate_document.js.map +1 -1
- package/dist/shared/docx/DocxArchive.d.ts.map +1 -1
- package/dist/shared/docx/DocxArchive.js +7 -0
- package/dist/shared/docx/DocxArchive.js.map +1 -1
- package/dist/shared/field-semantics.d.ts +26 -0
- package/dist/shared/field-semantics.d.ts.map +1 -0
- package/dist/shared/field-semantics.js +232 -0
- package/dist/shared/field-semantics.js.map +1 -0
- package/dist/shared/field-structure.d.ts +14 -0
- package/dist/shared/field-structure.d.ts.map +1 -1
- package/dist/shared/field-structure.js +98 -7
- package/dist/shared/field-structure.js.map +1 -1
- package/package.json +3 -5
|
@@ -9,6 +9,11 @@ function getWAttr(el, localName) {
|
|
|
9
9
|
function allW(root, localName) {
|
|
10
10
|
return Array.from(root.getElementsByTagNameNS(OOXML.W_NS, localName));
|
|
11
11
|
}
|
|
12
|
+
/**
|
|
13
|
+
* @deprecated `w:fldChar` inside `<w:del>` is valid, so a `true` result is not a
|
|
14
|
+
* defect. Word and Aspose both emit it. Retained only so existing callers keep
|
|
15
|
+
* compiling; do not gate on it. See {@link collectFieldStructureIssues}.
|
|
16
|
+
*/
|
|
12
17
|
export function hasFldCharInsideDel(documentXml) {
|
|
13
18
|
const root = parseXml(documentXml).documentElement;
|
|
14
19
|
let insideDelDepth = 0;
|
|
@@ -43,6 +48,7 @@ export function hasFldCharInsideDel(documentXml) {
|
|
|
43
48
|
*
|
|
44
49
|
* @conformance ECMA-376 edition 5, Part 1 § 17.16.18
|
|
45
50
|
* @ooxmlSpec ooxml.ecma376.5ed.part1.fields.complex-field-characters
|
|
51
|
+
* @see https://github.com/UseJunior/safe-docx/issues/645
|
|
46
52
|
*/
|
|
47
53
|
export function collectFieldStructureIssues(input) {
|
|
48
54
|
if (typeof input === 'string') {
|
|
@@ -57,7 +63,7 @@ export function collectFieldStructureIssues(input) {
|
|
|
57
63
|
/**
|
|
58
64
|
* Text-placement rules added for the AI revision validator. They are NOT part
|
|
59
65
|
* of `validateFieldStructure`: that boolean is pinned extensionally against
|
|
60
|
-
* the
|
|
66
|
+
* the comparison engine's validation model by the differential
|
|
61
67
|
* differential harness, so its rule set must not grow.
|
|
62
68
|
*/
|
|
63
69
|
const TEXT_PLACEMENT_ISSUE_CODES = new Set([
|
|
@@ -69,6 +75,80 @@ export function validateFieldStructure(input) {
|
|
|
69
75
|
.filter((issue) => !TEXT_PLACEMENT_ISSUE_CODES.has(issue.code))
|
|
70
76
|
.length === 0;
|
|
71
77
|
}
|
|
78
|
+
function collectStrictStackIssuesForStory(xml, story) {
|
|
79
|
+
const root = parseXml(xml).documentElement;
|
|
80
|
+
const issues = [];
|
|
81
|
+
const separators = [];
|
|
82
|
+
function push(code, message) {
|
|
83
|
+
issues.push({ code, message, story, element: 'w:fldChar' });
|
|
84
|
+
}
|
|
85
|
+
function scan(node) {
|
|
86
|
+
for (let child = node.firstChild; child; child = child.nextSibling) {
|
|
87
|
+
if (child.nodeType !== 1)
|
|
88
|
+
continue;
|
|
89
|
+
const element = child;
|
|
90
|
+
if (isW(element, 'fldChar')) {
|
|
91
|
+
const type = getWAttr(element, 'fldCharType');
|
|
92
|
+
if (type === 'begin') {
|
|
93
|
+
separators.push(false);
|
|
94
|
+
}
|
|
95
|
+
else if (type === 'separate') {
|
|
96
|
+
if (separators.length === 0) {
|
|
97
|
+
push('FIELD_STRAY_SEPARATOR', `Field separator appears outside an open field in ${story}`);
|
|
98
|
+
}
|
|
99
|
+
else {
|
|
100
|
+
const depthIndex = separators.length - 1;
|
|
101
|
+
if (separators[depthIndex]) {
|
|
102
|
+
push('FIELD_DUPLICATE_SEPARATOR', `Field at depth ${separators.length} has more than one separator in ${story}`);
|
|
103
|
+
}
|
|
104
|
+
else {
|
|
105
|
+
separators[depthIndex] = true;
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
else if (type === 'end') {
|
|
110
|
+
if (separators.length === 0) {
|
|
111
|
+
push('FIELD_STRAY_END', `Field end appears outside an open field in ${story}`);
|
|
112
|
+
}
|
|
113
|
+
else {
|
|
114
|
+
separators.pop();
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
else {
|
|
118
|
+
push('FIELD_UNKNOWN_CHAR_TYPE', `w:fldChar has missing or unknown w:fldCharType '${type ?? '(missing)'}' in ${story}`);
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
scan(element);
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
scan(root);
|
|
125
|
+
if (separators.length > 0) {
|
|
126
|
+
push('FIELD_UNCLOSED_DEPTH', `Field story ${story} ends with ${separators.length} unclosed field level(s)`);
|
|
127
|
+
}
|
|
128
|
+
return issues;
|
|
129
|
+
}
|
|
130
|
+
/**
|
|
131
|
+
* Reports strict runtime field-story violations without changing the
|
|
132
|
+
* pinned `validateFieldStructure` predicate.
|
|
133
|
+
*
|
|
134
|
+
* @conformance ECMA-376 edition 5, Part 1 § 17.16.18
|
|
135
|
+
*/
|
|
136
|
+
export function collectStrictFieldStructureIssues(input) {
|
|
137
|
+
const stories = typeof input === 'string'
|
|
138
|
+
? [{ label: 'document', xml: input }]
|
|
139
|
+
: input;
|
|
140
|
+
const issues = [];
|
|
141
|
+
for (const story of stories) {
|
|
142
|
+
issues.push(...collectFieldStructureIssuesForStory(story.xml, story.label));
|
|
143
|
+
issues.push(...collectStrictStackIssuesForStory(story.xml, story.label));
|
|
144
|
+
}
|
|
145
|
+
return issues;
|
|
146
|
+
}
|
|
147
|
+
export function validateStrictFieldStructure(input) {
|
|
148
|
+
return collectStrictFieldStructureIssues(input)
|
|
149
|
+
.filter((issue) => !TEXT_PLACEMENT_ISSUE_CODES.has(issue.code))
|
|
150
|
+
.length === 0;
|
|
151
|
+
}
|
|
72
152
|
function collectFieldStructureIssuesForStory(documentXml, story) {
|
|
73
153
|
const issues = [];
|
|
74
154
|
const root = parseXml(documentXml).documentElement;
|
|
@@ -104,11 +184,18 @@ function collectFieldStructureIssuesForStory(documentXml, story) {
|
|
|
104
184
|
let insideDelDepth = 0;
|
|
105
185
|
// Move-sources (w:moveFrom) carry deletion-flavored content (w:delText)
|
|
106
186
|
// per the OOXML revision model; the text-placement rules treat them as
|
|
107
|
-
// deletion contexts. The
|
|
187
|
+
// deletion contexts. The field rules above use only w:del.
|
|
108
188
|
let insideMoveFromDepth = 0;
|
|
109
189
|
function push(code, message, element) {
|
|
110
190
|
issues.push({ code, message, story, element });
|
|
111
191
|
}
|
|
192
|
+
function isInsideOpenFieldCodeRegion() {
|
|
193
|
+
for (let fieldDepth = 1; fieldDepth <= depth; fieldDepth++) {
|
|
194
|
+
if (!pastSeparatorAtDepth[fieldDepth])
|
|
195
|
+
return true;
|
|
196
|
+
}
|
|
197
|
+
return false;
|
|
198
|
+
}
|
|
112
199
|
function scan(node) {
|
|
113
200
|
for (let child = node.firstChild; child; child = child.nextSibling) {
|
|
114
201
|
if (child.nodeType !== 1)
|
|
@@ -127,9 +214,13 @@ function collectFieldStructureIssuesForStory(documentXml, story) {
|
|
|
127
214
|
continue;
|
|
128
215
|
}
|
|
129
216
|
if (isW(el, 'fldChar')) {
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
217
|
+
// `w:fldChar` inside `<w:del>` is NOT a violation. The Transitional WML
|
|
218
|
+
// schema reaches it (w:del -> CT_RunTrackChange -> EG_ContentRunContent
|
|
219
|
+
// -> w:r -> EG_RunInnerContent), and Word 16.112 and Aspose.Words 25.10
|
|
220
|
+
// both emit whole deleted fields that way on real input, producing
|
|
221
|
+
// schema-valid output. The rule this once enforced (issue #217) came
|
|
222
|
+
// from a research summary rather than the standard; enforcing it left
|
|
223
|
+
// deleted fields as unrenderable husks. See insertWholeDeletedField.
|
|
133
224
|
const type = getWAttr(el, 'fldCharType');
|
|
134
225
|
if (type === 'begin') {
|
|
135
226
|
depth++;
|
|
@@ -145,7 +236,7 @@ function collectFieldStructureIssuesForStory(documentXml, story) {
|
|
|
145
236
|
}
|
|
146
237
|
}
|
|
147
238
|
else if (isW(el, 'instrText')) {
|
|
148
|
-
if (
|
|
239
|
+
if (!isInsideOpenFieldCodeRegion()) {
|
|
149
240
|
push('INSTRUCTION_TEXT_OUTSIDE_FIELD_CODE', 'w:instrText must appear inside an open field code region', 'w:instrText');
|
|
150
241
|
}
|
|
151
242
|
}
|
|
@@ -153,7 +244,7 @@ function collectFieldStructureIssuesForStory(documentXml, story) {
|
|
|
153
244
|
if (insideDelDepth === 0) {
|
|
154
245
|
push('DELETED_INSTRUCTION_TEXT_OUTSIDE_DELETION', 'w:delInstrText must appear inside w:del', 'w:delInstrText');
|
|
155
246
|
}
|
|
156
|
-
if (
|
|
247
|
+
if (!isInsideOpenFieldCodeRegion()) {
|
|
157
248
|
push('DELETED_INSTRUCTION_TEXT_OUTSIDE_FIELD_CODE', 'w:delInstrText must appear inside an open field code region', 'w:delInstrText');
|
|
158
249
|
}
|
|
159
250
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"field-structure.js","sourceRoot":"","sources":["../../src/shared/field-structure.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAE,KAAK,EAAE,MAAM,6BAA6B,CAAC;AAcpD,SAAS,GAAG,CAAC,EAAW,EAAE,SAAiB;IACzC,OAAO,EAAE,CAAC,YAAY,KAAK,KAAK,CAAC,IAAI,IAAI,EAAE,CAAC,SAAS,KAAK,SAAS,CAAC;AACtE,CAAC;AAED,SAAS,QAAQ,CAAC,EAAW,EAAE,SAAiB;IAC9C,OAAO,EAAE,CAAC,cAAc,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,IAAI,EAAE,CAAC,YAAY,CAAC,KAAK,SAAS,EAAE,CAAC,CAAC;AACvF,CAAC;AAED,SAAS,IAAI,CAAC,IAAwB,EAAE,SAAiB;IACvD,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,sBAAsB,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,CAAc,CAAC;AACrF,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,WAAmB;IACrD,MAAM,IAAI,GAAG,QAAQ,CAAC,WAAW,CAAC,CAAC,eAAe,CAAC;IACnD,IAAI,cAAc,GAAG,CAAC,CAAC;IACvB,IAAI,SAAS,GAAG,KAAK,CAAC;IAEtB,SAAS,IAAI,CAAC,IAAa;QACzB,IAAI,SAAS;YAAE,OAAO;QACtB,KAAK,IAAI,KAAK,GAAG,IAAI,CAAC,UAAU,EAAE,KAAK,EAAE,KAAK,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;YACnE,IAAI,KAAK,CAAC,QAAQ,KAAK,CAAC;gBAAE,SAAS;YACnC,MAAM,EAAE,GAAG,KAAgB,CAAC;YAC5B,IAAI,GAAG,CAAC,EAAE,EAAE,KAAK,CAAC,EAAE,CAAC;gBACnB,cAAc,EAAE,CAAC;gBACjB,IAAI,CAAC,EAAE,CAAC,CAAC;gBACT,cAAc,EAAE,CAAC;gBACjB,IAAI,SAAS;oBAAE,OAAO;gBACtB,SAAS;YACX,CAAC;YACD,IAAI,GAAG,CAAC,EAAE,EAAE,SAAS,CAAC,IAAI,cAAc,GAAG,CAAC,EAAE,CAAC;gBAC7C,SAAS,GAAG,IAAI,CAAC;gBACjB,OAAO;YACT,CAAC;YACD,IAAI,CAAC,EAAE,CAAC,CAAC;QACX,CAAC;IACH,CAAC;IAED,IAAI,CAAC,IAAI,CAAC,CAAC;IACX,OAAO,SAAS,CAAC;AACnB,CAAC;AAED
|
|
1
|
+
{"version":3,"file":"field-structure.js","sourceRoot":"","sources":["../../src/shared/field-structure.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAE,KAAK,EAAE,MAAM,6BAA6B,CAAC;AAcpD,SAAS,GAAG,CAAC,EAAW,EAAE,SAAiB;IACzC,OAAO,EAAE,CAAC,YAAY,KAAK,KAAK,CAAC,IAAI,IAAI,EAAE,CAAC,SAAS,KAAK,SAAS,CAAC;AACtE,CAAC;AAED,SAAS,QAAQ,CAAC,EAAW,EAAE,SAAiB;IAC9C,OAAO,EAAE,CAAC,cAAc,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,IAAI,EAAE,CAAC,YAAY,CAAC,KAAK,SAAS,EAAE,CAAC,CAAC;AACvF,CAAC;AAED,SAAS,IAAI,CAAC,IAAwB,EAAE,SAAiB;IACvD,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,sBAAsB,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,CAAc,CAAC;AACrF,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,mBAAmB,CAAC,WAAmB;IACrD,MAAM,IAAI,GAAG,QAAQ,CAAC,WAAW,CAAC,CAAC,eAAe,CAAC;IACnD,IAAI,cAAc,GAAG,CAAC,CAAC;IACvB,IAAI,SAAS,GAAG,KAAK,CAAC;IAEtB,SAAS,IAAI,CAAC,IAAa;QACzB,IAAI,SAAS;YAAE,OAAO;QACtB,KAAK,IAAI,KAAK,GAAG,IAAI,CAAC,UAAU,EAAE,KAAK,EAAE,KAAK,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;YACnE,IAAI,KAAK,CAAC,QAAQ,KAAK,CAAC;gBAAE,SAAS;YACnC,MAAM,EAAE,GAAG,KAAgB,CAAC;YAC5B,IAAI,GAAG,CAAC,EAAE,EAAE,KAAK,CAAC,EAAE,CAAC;gBACnB,cAAc,EAAE,CAAC;gBACjB,IAAI,CAAC,EAAE,CAAC,CAAC;gBACT,cAAc,EAAE,CAAC;gBACjB,IAAI,SAAS;oBAAE,OAAO;gBACtB,SAAS;YACX,CAAC;YACD,IAAI,GAAG,CAAC,EAAE,EAAE,SAAS,CAAC,IAAI,cAAc,GAAG,CAAC,EAAE,CAAC;gBAC7C,SAAS,GAAG,IAAI,CAAC;gBACjB,OAAO;YACT,CAAC;YACD,IAAI,CAAC,EAAE,CAAC,CAAC;QACX,CAAC;IACH,CAAC;IAED,IAAI,CAAC,IAAI,CAAC,CAAC;IACX,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,2BAA2B,CAAC,KAA4B;IACtE,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,OAAO,mCAAmC,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;IAChE,CAAC;IAED,MAAM,MAAM,GAA0B,EAAE,CAAC;IACzC,KAAK,MAAM,KAAK,IAAI,KAAK,EAAE,CAAC;QAC1B,MAAM,CAAC,IAAI,CAAC,GAAG,mCAAmC,CAAC,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;IAC9E,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;;;GAKG;AACH,MAAM,0BAA0B,GAAG,IAAI,GAAG,CAAC;IACzC,sBAAsB;IACtB,+BAA+B;CAChC,CAAC,CAAC;AAEH,MAAM,UAAU,sBAAsB,CAAC,KAA4B;IACjE,OAAO,2BAA2B,CAAC,KAAK,CAAC;SACtC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,0BAA0B,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;SAC9D,MAAM,KAAK,CAAC,CAAC;AAClB,CAAC;AAED,SAAS,gCAAgC,CAAC,GAAW,EAAE,KAAa;IAClE,MAAM,IAAI,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,eAAe,CAAC;IAC3C,MAAM,MAAM,GAA0B,EAAE,CAAC;IACzC,MAAM,UAAU,GAAc,EAAE,CAAC;IAEjC,SAAS,IAAI,CAAC,IAAY,EAAE,OAAe;QACzC,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC,CAAC;IAC9D,CAAC;IAED,SAAS,IAAI,CAAC,IAAa;QACzB,KAAK,IAAI,KAAK,GAAG,IAAI,CAAC,UAAU,EAAE,KAAK,EAAE,KAAK,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;YACnE,IAAI,KAAK,CAAC,QAAQ,KAAK,CAAC;gBAAE,SAAS;YACnC,MAAM,OAAO,GAAG,KAAgB,CAAC;YACjC,IAAI,GAAG,CAAC,OAAO,EAAE,SAAS,CAAC,EAAE,CAAC;gBAC5B,MAAM,IAAI,GAAG,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;gBAC9C,IAAI,IAAI,KAAK,OAAO,EAAE,CAAC;oBACrB,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBACzB,CAAC;qBAAM,IAAI,IAAI,KAAK,UAAU,EAAE,CAAC;oBAC/B,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;wBAC5B,IAAI,CAAC,uBAAuB,EAAE,oDAAoD,KAAK,EAAE,CAAC,CAAC;oBAC7F,CAAC;yBAAM,CAAC;wBACN,MAAM,UAAU,GAAG,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC;wBACzC,IAAI,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;4BAC3B,IAAI,CACF,2BAA2B,EAC3B,kBAAkB,UAAU,CAAC,MAAM,mCAAmC,KAAK,EAAE,CAC9E,CAAC;wBACJ,CAAC;6BAAM,CAAC;4BACN,UAAU,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC;wBAChC,CAAC;oBACH,CAAC;gBACH,CAAC;qBAAM,IAAI,IAAI,KAAK,KAAK,EAAE,CAAC;oBAC1B,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;wBAC5B,IAAI,CAAC,iBAAiB,EAAE,8CAA8C,KAAK,EAAE,CAAC,CAAC;oBACjF,CAAC;yBAAM,CAAC;wBACN,UAAU,CAAC,GAAG,EAAE,CAAC;oBACnB,CAAC;gBACH,CAAC;qBAAM,CAAC;oBACN,IAAI,CACF,yBAAyB,EACzB,mDAAmD,IAAI,IAAI,WAAW,QAAQ,KAAK,EAAE,CACtF,CAAC;gBACJ,CAAC;YACH,CAAC;YACD,IAAI,CAAC,OAAO,CAAC,CAAC;QAChB,CAAC;IACH,CAAC;IAED,IAAI,CAAC,IAAI,CAAC,CAAC;IACX,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC1B,IAAI,CACF,sBAAsB,EACtB,eAAe,KAAK,cAAc,UAAU,CAAC,MAAM,0BAA0B,CAC9E,CAAC;IACJ,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,iCAAiC,CAC/C,KAA4B;IAE5B,MAAM,OAAO,GAAG,OAAO,KAAK,KAAK,QAAQ;QACvC,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC;QACrC,CAAC,CAAC,KAAK,CAAC;IACV,MAAM,MAAM,GAA0B,EAAE,CAAC;IACzC,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC5B,MAAM,CAAC,IAAI,CAAC,GAAG,mCAAmC,CAAC,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;QAC5E,MAAM,CAAC,IAAI,CAAC,GAAG,gCAAgC,CAAC,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;IAC3E,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,4BAA4B,CAAC,KAA4B;IACvE,OAAO,iCAAiC,CAAC,KAAK,CAAC;SAC5C,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,0BAA0B,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;SAC9D,MAAM,KAAK,CAAC,CAAC;AAClB,CAAC;AAED,SAAS,mCAAmC,CAAC,WAAmB,EAAE,KAAa;IAC7E,MAAM,MAAM,GAA0B,EAAE,CAAC;IACzC,MAAM,IAAI,GAAG,QAAQ,CAAC,WAAW,CAAC,CAAC,eAAe,CAAC;IAEnD,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IAC1C,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;IAC9C,MAAM,gBAAgB,GAAG,IAAI,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC;IACpD,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IAEhC,IAAI,MAAM,GAAG,CAAC,CAAC;IACf,IAAI,IAAI,GAAG,CAAC,CAAC;IACb,KAAK,MAAM,EAAE,IAAI,WAAW,EAAE,CAAC;QAC7B,MAAM,IAAI,GAAG,QAAQ,CAAC,EAAE,EAAE,aAAa,CAAC,CAAC;QACzC,IAAI,IAAI,KAAK,OAAO;YAAE,MAAM,EAAE,CAAC;aAC1B,IAAI,IAAI,KAAK,KAAK;YAAE,IAAI,EAAE,CAAC;IAClC,CAAC;IACD,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;QACpB,MAAM,CAAC,IAAI,CAAC;YACV,IAAI,EAAE,0BAA0B;YAChC,OAAO,EAAE,qCAAqC,KAAK,WAAW,MAAM,SAAS,IAAI,EAAE;YACnF,KAAK;YACL,OAAO,EAAE,WAAW;SACrB,CAAC,CAAC;IACL,CAAC;IAED,IACE,WAAW,CAAC,MAAM,KAAK,CAAC;QACxB,aAAa,CAAC,MAAM,KAAK,CAAC;QAC1B,gBAAgB,CAAC,MAAM,KAAK,CAAC;QAC7B,OAAO,CAAC,MAAM,KAAK,CAAC,EACpB,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,MAAM,oBAAoB,GAAa,EAAE,CAAC;IAC1C,IAAI,cAAc,GAAG,CAAC,CAAC;IACvB,wEAAwE;IACxE,uEAAuE;IACvE,2DAA2D;IAC3D,IAAI,mBAAmB,GAAG,CAAC,CAAC;IAE5B,SAAS,IAAI,CAAC,IAAY,EAAE,OAAe,EAAE,OAAe;QAC1D,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC;IACjD,CAAC;IAED,SAAS,2BAA2B;QAClC,KAAK,IAAI,UAAU,GAAG,CAAC,EAAE,UAAU,IAAI,KAAK,EAAE,UAAU,EAAE,EAAE,CAAC;YAC3D,IAAI,CAAC,oBAAoB,CAAC,UAAU,CAAC;gBAAE,OAAO,IAAI,CAAC;QACrD,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,SAAS,IAAI,CAAC,IAAa;QACzB,KAAK,IAAI,KAAK,GAAG,IAAI,CAAC,UAAU,EAAE,KAAK,EAAE,KAAK,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;YACnE,IAAI,KAAK,CAAC,QAAQ,KAAK,CAAC;gBAAE,SAAS;YACnC,MAAM,EAAE,GAAG,KAAgB,CAAC;YAE5B,IAAI,GAAG,CAAC,EAAE,EAAE,KAAK,CAAC,EAAE,CAAC;gBACnB,cAAc,EAAE,CAAC;gBACjB,IAAI,CAAC,EAAE,CAAC,CAAC;gBACT,cAAc,EAAE,CAAC;gBACjB,SAAS;YACX,CAAC;YAED,IAAI,GAAG,CAAC,EAAE,EAAE,UAAU,CAAC,EAAE,CAAC;gBACxB,mBAAmB,EAAE,CAAC;gBACtB,IAAI,CAAC,EAAE,CAAC,CAAC;gBACT,mBAAmB,EAAE,CAAC;gBACtB,SAAS;YACX,CAAC;YAED,IAAI,GAAG,CAAC,EAAE,EAAE,SAAS,CAAC,EAAE,CAAC;gBACvB,wEAAwE;gBACxE,wEAAwE;gBACxE,wEAAwE;gBACxE,mEAAmE;gBACnE,qEAAqE;gBACrE,sEAAsE;gBACtE,qEAAqE;gBACrE,MAAM,IAAI,GAAG,QAAQ,CAAC,EAAE,EAAE,aAAa,CAAC,CAAC;gBACzC,IAAI,IAAI,KAAK,OAAO,EAAE,CAAC;oBACrB,KAAK,EAAE,CAAC;oBACR,oBAAoB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBAClC,CAAC;qBAAM,IAAI,IAAI,KAAK,UAAU,EAAE,CAAC;oBAC/B,IAAI,KAAK,GAAG,CAAC;wBAAE,oBAAoB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBACjD,CAAC;qBAAM,IAAI,IAAI,KAAK,KAAK,EAAE,CAAC;oBAC1B,IAAI,KAAK,GAAG,CAAC;wBAAE,KAAK,EAAE,CAAC;gBACzB,CAAC;YACH,CAAC;iBAAM,IAAI,GAAG,CAAC,EAAE,EAAE,WAAW,CAAC,EAAE,CAAC;gBAChC,IAAI,CAAC,2BAA2B,EAAE,EAAE,CAAC;oBACnC,IAAI,CAAC,qCAAqC,EAAE,0DAA0D,EAAE,aAAa,CAAC,CAAC;gBACzH,CAAC;YACH,CAAC;iBAAM,IAAI,GAAG,CAAC,EAAE,EAAE,cAAc,CAAC,EAAE,CAAC;gBACnC,IAAI,cAAc,KAAK,CAAC,EAAE,CAAC;oBACzB,IAAI,CAAC,2CAA2C,EAAE,yCAAyC,EAAE,gBAAgB,CAAC,CAAC;gBACjH,CAAC;gBACD,IAAI,CAAC,2BAA2B,EAAE,EAAE,CAAC;oBACnC,IAAI,CAAC,6CAA6C,EAAE,6DAA6D,EAAE,gBAAgB,CAAC,CAAC;gBACvI,CAAC;YACH,CAAC;iBAAM,IAAI,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,IAAI,CAAC,cAAc,GAAG,CAAC,IAAI,mBAAmB,GAAG,CAAC,CAAC,EAAE,CAAC;gBAC3E,IAAI,CAAC,sBAAsB,EAAE,+DAA+D,EAAE,KAAK,CAAC,CAAC;YACvG,CAAC;iBAAM,IAAI,GAAG,CAAC,EAAE,EAAE,SAAS,CAAC,IAAI,cAAc,KAAK,CAAC,IAAI,mBAAmB,KAAK,CAAC,EAAE,CAAC;gBACnF,IAAI,CAAC,+BAA+B,EAAE,kDAAkD,EAAE,WAAW,CAAC,CAAC;YACzG,CAAC;YAED,IAAI,CAAC,EAAE,CAAC,CAAC;QACX,CAAC;IACH,CAAC;IAED,IAAI,CAAC,IAAI,CAAC,CAAC;IACX,OAAO,MAAM,CAAC;AAChB,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@usejunior/docx-core",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.20.1",
|
|
4
4
|
"description": "OOXML (.docx) core library: primitives, document generation, and track changes",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
"test": "node ../../node_modules/vitest/vitest.mjs",
|
|
13
13
|
"test:run": "node ../../node_modules/vitest/vitest.mjs run",
|
|
14
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",
|
|
15
|
+
"test:coverage": "node ../../node_modules/vitest/vitest.mjs run --coverage --maxWorkers=1 --coverage.reporter=text-summary --coverage.reporter=json-summary --coverage.reporter=lcov",
|
|
16
16
|
"check:spec-coverage": "npm run check:spec-coverage:openspec && npm run check:spec-coverage:primitives -- --strict && npm run check:spec-coverage:tag-density",
|
|
17
17
|
"check:spec-coverage:openspec": "node scripts/validate_openspec_coverage.mjs",
|
|
18
18
|
"check:spec-coverage:primitives": "node scripts/validate_primitives_openspec_coverage.mjs",
|
|
@@ -25,13 +25,11 @@
|
|
|
25
25
|
"jszip": "^3.10.1"
|
|
26
26
|
},
|
|
27
27
|
"devDependencies": {
|
|
28
|
-
"@types/diff-match-patch": "^1.0.36",
|
|
29
28
|
"@types/node": "^22.10.0",
|
|
30
|
-
"@usejunior/docx-compare": "^0.
|
|
29
|
+
"@usejunior/docx-compare": "^0.20.1",
|
|
31
30
|
"@vitest/coverage-v8": "^4.1.8",
|
|
32
31
|
"@vitest/runner": "^4.1.8",
|
|
33
32
|
"allure-vitest": "^3.9.0",
|
|
34
|
-
"diff-match-patch": "^1.0.5",
|
|
35
33
|
"fast-check": "^3.23.2",
|
|
36
34
|
"tsx": "^4.19.2",
|
|
37
35
|
"typescript": "^5.7.2",
|