@usejunior/docx-core 0.15.0 → 0.17.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.
- package/README.md +18 -83
- package/dist/.tsbuildinfo +1 -1
- package/dist/cli/conformance-adapter.d.ts +14 -0
- package/dist/cli/conformance-adapter.d.ts.map +1 -1
- package/dist/cli/conformance-adapter.js +104 -12
- package/dist/cli/conformance-adapter.js.map +1 -1
- package/dist/footnotes.d.ts +7 -5
- package/dist/footnotes.d.ts.map +1 -1
- package/dist/footnotes.js +7 -5
- package/dist/footnotes.js.map +1 -1
- package/dist/generated/ecma-376-vocabulary.d.ts +93 -0
- package/dist/generated/ecma-376-vocabulary.d.ts.map +1 -0
- package/dist/generated/ecma-376-vocabulary.js +87 -0
- package/dist/generated/ecma-376-vocabulary.js.map +1 -0
- package/dist/generation/compile.js +2 -2
- package/dist/generation/compile.js.map +1 -1
- package/dist/generation/emit/comments-part.d.ts +2 -0
- package/dist/generation/emit/comments-part.d.ts.map +1 -1
- package/dist/generation/emit/comments-part.js +2 -0
- package/dist/generation/emit/comments-part.js.map +1 -1
- package/dist/generation/emit/paragraph.d.ts +3 -0
- package/dist/generation/emit/paragraph.d.ts.map +1 -1
- package/dist/generation/emit/paragraph.js +3 -0
- package/dist/generation/emit/paragraph.js.map +1 -1
- package/dist/generation/emit/run.d.ts.map +1 -1
- package/dist/generation/emit/run.js +6 -1
- package/dist/generation/emit/run.js.map +1 -1
- package/dist/generation/emit/settings-part.d.ts +12 -3
- package/dist/generation/emit/settings-part.d.ts.map +1 -1
- package/dist/generation/emit/settings-part.js +23 -5
- package/dist/generation/emit/settings-part.js.map +1 -1
- package/dist/generation/ordering.d.ts +3 -1
- package/dist/generation/ordering.d.ts.map +1 -1
- package/dist/generation/ordering.js +3 -1
- package/dist/generation/ordering.js.map +1 -1
- package/dist/generation/schema-enum-domains.d.ts +27 -0
- package/dist/generation/schema-enum-domains.d.ts.map +1 -0
- package/dist/generation/schema-enum-domains.js +69 -0
- package/dist/generation/schema-enum-domains.js.map +1 -0
- package/dist/generation/structural-checks.js +7 -1
- package/dist/generation/structural-checks.js.map +1 -1
- package/dist/generation/validate-spec.d.ts.map +1 -1
- package/dist/generation/validate-spec.js +149 -31
- package/dist/generation/validate-spec.js.map +1 -1
- package/dist/index.d.ts +7 -24
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +7 -46
- package/dist/index.js.map +1 -1
- package/dist/primitives/accept_ai_edits.d.ts +87 -0
- package/dist/primitives/accept_ai_edits.d.ts.map +1 -0
- package/dist/primitives/accept_ai_edits.js +253 -0
- package/dist/primitives/accept_ai_edits.js.map +1 -0
- package/dist/primitives/accept_changes.d.ts +36 -3
- package/dist/primitives/accept_changes.d.ts.map +1 -1
- package/dist/primitives/accept_changes.js +67 -31
- package/dist/primitives/accept_changes.js.map +1 -1
- package/dist/primitives/bookmarks.d.ts +44 -0
- package/dist/primitives/bookmarks.d.ts.map +1 -1
- package/dist/primitives/bookmarks.js +149 -11
- package/dist/primitives/bookmarks.js.map +1 -1
- package/dist/primitives/document.d.ts +53 -1
- package/dist/primitives/document.d.ts.map +1 -1
- package/dist/primitives/document.js +146 -2
- package/dist/primitives/document.js.map +1 -1
- package/dist/primitives/dom-helpers.d.ts.map +1 -1
- package/dist/primitives/dom-helpers.js +7 -2
- package/dist/primitives/dom-helpers.js.map +1 -1
- package/dist/primitives/index.d.ts +2 -1
- package/dist/primitives/index.d.ts.map +1 -1
- package/dist/primitives/index.js +2 -1
- package/dist/primitives/index.js.map +1 -1
- package/dist/primitives/layout.d.ts.map +1 -1
- package/dist/primitives/layout.js +41 -1
- package/dist/primitives/layout.js.map +1 -1
- package/dist/primitives/namespaces.d.ts +2 -0
- package/dist/primitives/namespaces.d.ts.map +1 -1
- package/dist/primitives/namespaces.js +2 -0
- package/dist/primitives/namespaces.js.map +1 -1
- package/dist/primitives/reject_changes.d.ts +21 -2
- package/dist/primitives/reject_changes.d.ts.map +1 -1
- package/dist/primitives/reject_changes.js +71 -31
- package/dist/primitives/reject_changes.js.map +1 -1
- package/dist/primitives/relationships.d.ts +33 -0
- package/dist/primitives/relationships.d.ts.map +1 -1
- package/dist/primitives/relationships.js +84 -1
- package/dist/primitives/relationships.js.map +1 -1
- package/dist/primitives/sectPrAudit.d.ts +11 -2
- package/dist/primitives/sectPrAudit.d.ts.map +1 -1
- package/dist/primitives/sectPrAudit.js +148 -23
- package/dist/primitives/sectPrAudit.js.map +1 -1
- package/dist/primitives/track-changes-emitter.d.ts +4 -0
- package/dist/primitives/track-changes-emitter.d.ts.map +1 -1
- package/dist/primitives/track-changes-emitter.js +5 -2
- package/dist/primitives/track-changes-emitter.js.map +1 -1
- package/dist/primitives/validate_ai_revisions.d.ts.map +1 -1
- package/dist/primitives/validate_ai_revisions.js +13 -5
- package/dist/primitives/validate_ai_revisions.js.map +1 -1
- package/dist/primitives/zip.d.ts.map +1 -1
- package/dist/primitives/zip.js +6 -2
- package/dist/primitives/zip.js.map +1 -1
- package/dist/shared/field-structure.d.ts +6 -0
- package/dist/shared/field-structure.d.ts.map +1 -1
- package/dist/shared/field-structure.js +6 -0
- package/dist/shared/field-structure.js.map +1 -1
- package/package.json +4 -8
- package/dist/atomizer.d.ts +0 -273
- package/dist/atomizer.d.ts.map +0 -1
- package/dist/atomizer.js +0 -1002
- package/dist/atomizer.js.map +0 -1
- package/dist/baselines/atomizer/atomLcs.d.ts +0 -82
- package/dist/baselines/atomizer/atomLcs.d.ts.map +0 -1
- package/dist/baselines/atomizer/atomLcs.js +0 -376
- package/dist/baselines/atomizer/atomLcs.js.map +0 -1
- package/dist/baselines/atomizer/auxiliaryIdCollision.d.ts +0 -99
- package/dist/baselines/atomizer/auxiliaryIdCollision.d.ts.map +0 -1
- package/dist/baselines/atomizer/auxiliaryIdCollision.js +0 -415
- package/dist/baselines/atomizer/auxiliaryIdCollision.js.map +0 -1
- package/dist/baselines/atomizer/consumerCompatibility.d.ts +0 -2
- package/dist/baselines/atomizer/consumerCompatibility.d.ts.map +0 -1
- package/dist/baselines/atomizer/consumerCompatibility.js +0 -188
- package/dist/baselines/atomizer/consumerCompatibility.js.map +0 -1
- package/dist/baselines/atomizer/debug.d.ts +0 -41
- package/dist/baselines/atomizer/debug.d.ts.map +0 -1
- package/dist/baselines/atomizer/debug.js +0 -85
- package/dist/baselines/atomizer/debug.js.map +0 -1
- package/dist/baselines/atomizer/documentReconstructor.d.ts +0 -75
- package/dist/baselines/atomizer/documentReconstructor.d.ts.map +0 -1
- package/dist/baselines/atomizer/documentReconstructor.js +0 -1449
- package/dist/baselines/atomizer/documentReconstructor.js.map +0 -1
- package/dist/baselines/atomizer/formattingFidelity.d.ts +0 -99
- package/dist/baselines/atomizer/formattingFidelity.d.ts.map +0 -1
- package/dist/baselines/atomizer/formattingFidelity.js +0 -449
- package/dist/baselines/atomizer/formattingFidelity.js.map +0 -1
- package/dist/baselines/atomizer/hierarchicalLcs.d.ts +0 -121
- package/dist/baselines/atomizer/hierarchicalLcs.d.ts.map +0 -1
- package/dist/baselines/atomizer/hierarchicalLcs.js +0 -753
- package/dist/baselines/atomizer/hierarchicalLcs.js.map +0 -1
- package/dist/baselines/atomizer/inPlaceModifier-bookmarks.d.ts +0 -37
- package/dist/baselines/atomizer/inPlaceModifier-bookmarks.d.ts.map +0 -1
- package/dist/baselines/atomizer/inPlaceModifier-bookmarks.js +0 -189
- package/dist/baselines/atomizer/inPlaceModifier-bookmarks.js.map +0 -1
- package/dist/baselines/atomizer/inPlaceModifier-containers.d.ts +0 -74
- package/dist/baselines/atomizer/inPlaceModifier-containers.d.ts.map +0 -1
- package/dist/baselines/atomizer/inPlaceModifier-containers.js +0 -171
- package/dist/baselines/atomizer/inPlaceModifier-containers.js.map +0 -1
- package/dist/baselines/atomizer/inPlaceModifier-deletion.d.ts +0 -88
- package/dist/baselines/atomizer/inPlaceModifier-deletion.d.ts.map +0 -1
- package/dist/baselines/atomizer/inPlaceModifier-deletion.js +0 -326
- package/dist/baselines/atomizer/inPlaceModifier-deletion.js.map +0 -1
- package/dist/baselines/atomizer/inPlaceModifier-postprocess.d.ts +0 -85
- package/dist/baselines/atomizer/inPlaceModifier-postprocess.d.ts.map +0 -1
- package/dist/baselines/atomizer/inPlaceModifier-postprocess.js +0 -402
- package/dist/baselines/atomizer/inPlaceModifier-postprocess.js.map +0 -1
- package/dist/baselines/atomizer/inPlaceModifier-presplit.d.ts +0 -39
- package/dist/baselines/atomizer/inPlaceModifier-presplit.d.ts.map +0 -1
- package/dist/baselines/atomizer/inPlaceModifier-presplit.js +0 -265
- package/dist/baselines/atomizer/inPlaceModifier-presplit.js.map +0 -1
- package/dist/baselines/atomizer/inPlaceModifier-shared.d.ts +0 -62
- package/dist/baselines/atomizer/inPlaceModifier-shared.d.ts.map +0 -1
- package/dist/baselines/atomizer/inPlaceModifier-shared.js +0 -139
- package/dist/baselines/atomizer/inPlaceModifier-shared.js.map +0 -1
- package/dist/baselines/atomizer/inPlaceModifier-wrappers.d.ts +0 -198
- package/dist/baselines/atomizer/inPlaceModifier-wrappers.d.ts.map +0 -1
- package/dist/baselines/atomizer/inPlaceModifier-wrappers.js +0 -475
- package/dist/baselines/atomizer/inPlaceModifier-wrappers.js.map +0 -1
- package/dist/baselines/atomizer/inPlaceModifier.d.ts +0 -27
- package/dist/baselines/atomizer/inPlaceModifier.d.ts.map +0 -1
- package/dist/baselines/atomizer/inPlaceModifier.js +0 -648
- package/dist/baselines/atomizer/inPlaceModifier.js.map +0 -1
- package/dist/baselines/atomizer/numberingIntegration.d.ts +0 -59
- package/dist/baselines/atomizer/numberingIntegration.d.ts.map +0 -1
- package/dist/baselines/atomizer/numberingIntegration.js +0 -209
- package/dist/baselines/atomizer/numberingIntegration.js.map +0 -1
- package/dist/baselines/atomizer/pipeline.d.ts +0 -103
- package/dist/baselines/atomizer/pipeline.d.ts.map +0 -1
- package/dist/baselines/atomizer/pipeline.js +0 -1160
- package/dist/baselines/atomizer/pipeline.js.map +0 -1
- package/dist/baselines/atomizer/premergeRuns.d.ts +0 -26
- package/dist/baselines/atomizer/premergeRuns.d.ts.map +0 -1
- package/dist/baselines/atomizer/premergeRuns.js +0 -153
- package/dist/baselines/atomizer/premergeRuns.js.map +0 -1
- package/dist/baselines/atomizer/trackChangesAcceptor.d.ts +0 -63
- package/dist/baselines/atomizer/trackChangesAcceptor.d.ts.map +0 -1
- package/dist/baselines/atomizer/trackChangesAcceptor.js +0 -254
- package/dist/baselines/atomizer/trackChangesAcceptor.js.map +0 -1
- package/dist/baselines/atomizer/trackChangesAcceptorAst.d.ts +0 -64
- package/dist/baselines/atomizer/trackChangesAcceptorAst.d.ts.map +0 -1
- package/dist/baselines/atomizer/trackChangesAcceptorAst.js +0 -642
- package/dist/baselines/atomizer/trackChangesAcceptorAst.js.map +0 -1
- package/dist/baselines/atomizer/xmlToWmlElement.d.ts +0 -65
- package/dist/baselines/atomizer/xmlToWmlElement.d.ts.map +0 -1
- package/dist/baselines/atomizer/xmlToWmlElement.js +0 -96
- package/dist/baselines/atomizer/xmlToWmlElement.js.map +0 -1
- package/dist/baselines/wmlcomparer/DocxodusWasm.d.ts +0 -51
- package/dist/baselines/wmlcomparer/DocxodusWasm.d.ts.map +0 -1
- package/dist/baselines/wmlcomparer/DocxodusWasm.js +0 -83
- package/dist/baselines/wmlcomparer/DocxodusWasm.js.map +0 -1
- package/dist/baselines/wmlcomparer/DotnetCli.d.ts +0 -40
- package/dist/baselines/wmlcomparer/DotnetCli.d.ts.map +0 -1
- package/dist/baselines/wmlcomparer/DotnetCli.js +0 -142
- package/dist/baselines/wmlcomparer/DotnetCli.js.map +0 -1
- package/dist/cli/compare-two.d.ts +0 -28
- package/dist/cli/compare-two.d.ts.map +0 -1
- package/dist/cli/compare-two.js +0 -112
- package/dist/cli/compare-two.js.map +0 -1
- package/dist/cli/index.d.ts +0 -3
- package/dist/cli/index.d.ts.map +0 -1
- package/dist/cli/index.js +0 -25
- package/dist/cli/index.js.map +0 -1
- package/dist/compare-types.d.ts +0 -197
- package/dist/compare-types.d.ts.map +0 -1
- package/dist/compare-types.js +0 -2
- package/dist/compare-types.js.map +0 -1
- package/dist/format-detection.d.ts +0 -120
- package/dist/format-detection.d.ts.map +0 -1
- package/dist/format-detection.js +0 -339
- package/dist/format-detection.js.map +0 -1
- package/dist/move-detection.d.ts +0 -211
- package/dist/move-detection.d.ts.map +0 -1
- package/dist/move-detection.js +0 -390
- package/dist/move-detection.js.map +0 -1
|
@@ -23,16 +23,56 @@
|
|
|
23
23
|
* surface never saw.
|
|
24
24
|
*/
|
|
25
25
|
import { GenerationSpecError } from './errors.js';
|
|
26
|
+
import { WML_SCHEMA_ENUM_SETS } from './schema-enum-domains.js';
|
|
26
27
|
import { HIGHLIGHT_COLORS, NUMBERING_LEVEL_JUSTIFICATIONS, THEME_COLOR_SLOTS } from './types.js';
|
|
27
28
|
const COLOR_HEX_RE = /^[0-9A-Fa-f]{6}$/;
|
|
28
29
|
const TWO_HEX_RE = /^[0-9A-Fa-f]{2}$/;
|
|
29
30
|
const HIGHLIGHT_COLOR_SET = new Set(HIGHLIGHT_COLORS);
|
|
30
31
|
const LVL_JC_SET = new Set(NUMBERING_LEVEL_JUSTIFICATIONS);
|
|
31
32
|
const THEME_COLOR_SLOT_SET = new Set(THEME_COLOR_SLOTS);
|
|
33
|
+
const ALIGNMENTS = new Set(['left', 'center', 'right', 'justify']);
|
|
34
|
+
const UNDERLINES = new Set(['single', 'double', 'none']);
|
|
35
|
+
const TAB_ALIGNMENTS = new Set(['left', 'center', 'right']);
|
|
36
|
+
const TAB_LEADERS = new Set(['none', 'dot', 'underscore']);
|
|
37
|
+
const LINE_RULES = new Set(['auto', 'exact', 'atLeast']);
|
|
38
|
+
const TABLE_LAYOUTS = new Set(['fixed', 'autofit']);
|
|
39
|
+
const BORDER_STYLES = new Set(['single', 'double', 'none']);
|
|
40
|
+
const ROW_HEIGHT_RULES = new Set(['atLeast', 'exact']);
|
|
41
|
+
const CELL_VERTICAL_ALIGNMENTS = new Set(['top', 'center', 'bottom']);
|
|
42
|
+
const VERTICAL_MERGES = new Set(['restart', 'continue']);
|
|
43
|
+
const STYLE_TYPES = new Set(['paragraph', 'character']);
|
|
44
|
+
const NUMBER_FORMATS = new Set(['decimal', 'lowerLetter', 'upperLetter', 'lowerRoman', 'upperRoman', 'bullet', 'none']);
|
|
45
|
+
const NUMBER_SUFFIXES = new Set(['tab', 'space', 'nothing']);
|
|
46
|
+
function requireInteger(value, path, description, minimum, maximum) {
|
|
47
|
+
if (typeof value !== 'number' ||
|
|
48
|
+
!Number.isSafeInteger(value) ||
|
|
49
|
+
(minimum !== undefined && value < minimum) ||
|
|
50
|
+
(maximum !== undefined && value > maximum)) {
|
|
51
|
+
throw new GenerationSpecError('invalid_value', path, description);
|
|
52
|
+
}
|
|
53
|
+
}
|
|
32
54
|
function unsupported(path, feature) {
|
|
33
55
|
throw new GenerationSpecError('unsupported_feature', path, `Spec feature '${feature}' is declared in the DocumentSpec type surface but its emitter has not shipped yet; ` +
|
|
34
56
|
'it is rejected rather than silently ignored');
|
|
35
57
|
}
|
|
58
|
+
function unsupportedApiValue(path, value, schemaType) {
|
|
59
|
+
throw new GenerationSpecError('unsupported_feature', path, `Value '${String(value)}' is valid in ${schemaType} but is outside the DocumentSpec API-supported subset`);
|
|
60
|
+
}
|
|
61
|
+
function requireSupportedSchemaEnum(value, path, schemaType, supportedValues) {
|
|
62
|
+
if (typeof value === 'string' && supportedValues.has(value))
|
|
63
|
+
return;
|
|
64
|
+
if (typeof value === 'string' && WML_SCHEMA_ENUM_SETS[schemaType].has(value)) {
|
|
65
|
+
unsupportedApiValue(path, value, schemaType);
|
|
66
|
+
}
|
|
67
|
+
throw new GenerationSpecError('invalid_value', path, `Value '${String(value)}' is outside the ${schemaType} schema domain`);
|
|
68
|
+
}
|
|
69
|
+
function requireSupportedHexColor(value, path) {
|
|
70
|
+
if (typeof value === 'string' && COLOR_HEX_RE.test(value))
|
|
71
|
+
return;
|
|
72
|
+
if (value === 'auto')
|
|
73
|
+
unsupportedApiValue(path, value, 'ST_HexColor');
|
|
74
|
+
throw new GenerationSpecError('invalid_value', path, `Value '${String(value)}' is outside the ST_HexColor schema domain`);
|
|
75
|
+
}
|
|
36
76
|
export function validateSpec(spec) {
|
|
37
77
|
if (!Array.isArray(spec.sections) || spec.sections.length === 0) {
|
|
38
78
|
throw new GenerationSpecError('empty_sections', '/sections', 'DocumentSpec.sections must contain at least one section');
|
|
@@ -56,7 +96,12 @@ function validateTheme(spec) {
|
|
|
56
96
|
}
|
|
57
97
|
}
|
|
58
98
|
}
|
|
59
|
-
/**
|
|
99
|
+
/**
|
|
100
|
+
* Returns numId handle -> set of declared levels, for list-reference checks.
|
|
101
|
+
*
|
|
102
|
+
* @conformance ECMA-376 edition 5, Part 1 § 17.9.17
|
|
103
|
+
* @conformance ECMA-376 edition 5, Part 1 § 17.9.28
|
|
104
|
+
*/
|
|
60
105
|
function validateNumbering(definitions) {
|
|
61
106
|
const declared = new Map();
|
|
62
107
|
definitions.forEach((definition, index) => {
|
|
@@ -83,20 +128,36 @@ function validateNumbering(definitions) {
|
|
|
83
128
|
if (typeof level.lvlText !== 'string' || level.lvlText.length === 0) {
|
|
84
129
|
throw new GenerationSpecError('invalid_value', `${levelPath}/lvlText`, 'Numbering levels require a lvlText pattern');
|
|
85
130
|
}
|
|
86
|
-
|
|
87
|
-
|
|
131
|
+
requireSupportedSchemaEnum(level.numFmt, `${levelPath}/numFmt`, 'ST_NumberFormat', NUMBER_FORMATS);
|
|
132
|
+
if (level.suff !== undefined) {
|
|
133
|
+
requireSupportedSchemaEnum(level.suff, `${levelPath}/suff`, 'ST_LevelSuffix', NUMBER_SUFFIXES);
|
|
134
|
+
}
|
|
135
|
+
if (level.start !== undefined) {
|
|
136
|
+
requireInteger(level.start, `${levelPath}/start`, 'Level start must be a signed safe integer in the API-representable subset of ST_DecimalNumber');
|
|
88
137
|
}
|
|
89
|
-
if (level.lvlJc !== undefined
|
|
90
|
-
|
|
138
|
+
if (level.lvlJc !== undefined) {
|
|
139
|
+
requireSupportedSchemaEnum(level.lvlJc, `${levelPath}/lvlJc`, 'ST_Jc', LVL_JC_SET);
|
|
91
140
|
}
|
|
92
141
|
if (level.runProps)
|
|
93
142
|
validateRunProps(level.runProps, `${levelPath}/runProps`);
|
|
143
|
+
if (level.indentTwips) {
|
|
144
|
+
if (level.indentTwips.left !== undefined) {
|
|
145
|
+
requireInteger(level.indentTwips.left, `${levelPath}/indentTwips/left`, 'Numbering left indentation must be a signed safe integer in the API-representable subset of ST_SignedTwipsMeasure');
|
|
146
|
+
}
|
|
147
|
+
if (level.indentTwips.hanging !== undefined) {
|
|
148
|
+
requireInteger(level.indentTwips.hanging, `${levelPath}/indentTwips/hanging`, 'Numbering hanging indentation must be a non-negative safe integer in the API-representable subset of ST_TwipsMeasure', 0);
|
|
149
|
+
}
|
|
150
|
+
}
|
|
94
151
|
});
|
|
95
152
|
declared.set(definition.numId, levels);
|
|
96
153
|
});
|
|
97
154
|
return declared;
|
|
98
155
|
}
|
|
99
|
-
/**
|
|
156
|
+
/**
|
|
157
|
+
* Returns the set of resolvable style ids (declared styles + implicit Normal).
|
|
158
|
+
*
|
|
159
|
+
* @conformance ECMA-376 edition 5, Part 1 § 17.7.4.17
|
|
160
|
+
*/
|
|
100
161
|
function validateStyles(styles) {
|
|
101
162
|
const ids = new Set(['Normal']);
|
|
102
163
|
styles.forEach((style, index) => {
|
|
@@ -104,10 +165,13 @@ function validateStyles(styles) {
|
|
|
104
165
|
if (!style.styleId || !style.name) {
|
|
105
166
|
throw new GenerationSpecError('invalid_value', path, 'StyleSpec requires styleId and name');
|
|
106
167
|
}
|
|
168
|
+
requireSupportedSchemaEnum(style.type, `${path}/type`, 'ST_StyleType', STYLE_TYPES);
|
|
107
169
|
if (ids.has(style.styleId)) {
|
|
108
170
|
throw new GenerationSpecError('invalid_value', `${path}/styleId`, `Duplicate styleId '${style.styleId}'`);
|
|
109
171
|
}
|
|
110
172
|
ids.add(style.styleId);
|
|
173
|
+
if (style.paragraph)
|
|
174
|
+
validateParagraphProps(style.paragraph, `${path}/paragraph`);
|
|
111
175
|
if (style.run)
|
|
112
176
|
validateRunProps(style.run, `${path}/run`);
|
|
113
177
|
});
|
|
@@ -179,16 +243,24 @@ function validateBlock(block, path, styleIds, numbering, story) {
|
|
|
179
243
|
* vertical-merge continuation must sit at exactly the grid position and
|
|
180
244
|
* span of a merge cell in the previous row — otherwise readers either show
|
|
181
245
|
* a recovery dialog or silently reflow the table.
|
|
246
|
+
*
|
|
247
|
+
* @conformance ECMA-376 edition 5, Part 1 § 17.4.37
|
|
248
|
+
* @conformance ECMA-376 edition 5, Part 1 § 17.4.48
|
|
182
249
|
*/
|
|
183
250
|
function validateTable(table, path, styleIds, numbering, story) {
|
|
251
|
+
if (table.layout !== undefined) {
|
|
252
|
+
requireSupportedSchemaEnum(table.layout, `${path}/layout`, 'ST_TblLayoutType', TABLE_LAYOUTS);
|
|
253
|
+
}
|
|
184
254
|
if (!Array.isArray(table.columnWidthsTwips) || table.columnWidthsTwips.length === 0) {
|
|
185
255
|
throw new GenerationSpecError('invalid_value', `${path}/columnWidthsTwips`, 'Tables require at least one column width');
|
|
186
256
|
}
|
|
187
257
|
table.columnWidthsTwips.forEach((width, i) => {
|
|
188
|
-
|
|
189
|
-
throw new GenerationSpecError('invalid_value', `${path}/columnWidthsTwips/${i}`, 'Column widths must be positive finite twips');
|
|
190
|
-
}
|
|
258
|
+
requireInteger(width, `${path}/columnWidthsTwips/${i}`, 'Column widths must be non-negative safe integers in the API-representable integer branch of ST_TwipsMeasure', 0);
|
|
191
259
|
});
|
|
260
|
+
const totalWidth = table.columnWidthsTwips.reduce((sum, width) => sum + width, 0);
|
|
261
|
+
if (!Number.isSafeInteger(totalWidth)) {
|
|
262
|
+
throw new GenerationSpecError('invalid_value', `${path}/columnWidthsTwips`, 'The table width sum must remain a safe integer so w:tblW serializes exactly');
|
|
263
|
+
}
|
|
192
264
|
if (table.borders)
|
|
193
265
|
validateBorders(table.borders, `${path}/borders`);
|
|
194
266
|
if (!Array.isArray(table.rows) || table.rows.length === 0) {
|
|
@@ -202,8 +274,11 @@ function validateTable(table, path, styleIds, numbering, story) {
|
|
|
202
274
|
if (!Array.isArray(row.cells) || row.cells.length === 0) {
|
|
203
275
|
throw new GenerationSpecError('invalid_value', `${rowPath}/cells`, 'Rows require at least one cell');
|
|
204
276
|
}
|
|
205
|
-
if (row.heightTwips !== undefined
|
|
206
|
-
|
|
277
|
+
if (row.heightTwips !== undefined) {
|
|
278
|
+
requireInteger(row.heightTwips, `${rowPath}/heightTwips`, 'Row height must be a non-negative safe integer in the ST_TwipsMeasure domain', 0);
|
|
279
|
+
}
|
|
280
|
+
if (row.heightRule !== undefined) {
|
|
281
|
+
requireSupportedSchemaEnum(row.heightRule, `${rowPath}/heightRule`, 'ST_HeightRule', ROW_HEIGHT_RULES);
|
|
207
282
|
}
|
|
208
283
|
const currentMerges = new Map();
|
|
209
284
|
let gridOffset = 0;
|
|
@@ -221,16 +296,21 @@ function validateTable(table, path, styleIds, numbering, story) {
|
|
|
221
296
|
throw new GenerationSpecError('grid_mismatch', `${cellPath}/vMerge`, `vMerge continuation at grid column ${gridOffset} (span ${span}) has no matching merge cell in the previous row`);
|
|
222
297
|
}
|
|
223
298
|
}
|
|
299
|
+
if (cell.vMerge !== undefined) {
|
|
300
|
+
requireSupportedSchemaEnum(cell.vMerge, `${cellPath}/vMerge`, 'ST_Merge', VERTICAL_MERGES);
|
|
301
|
+
}
|
|
224
302
|
if (cell.vMerge !== undefined)
|
|
225
303
|
currentMerges.set(gridOffset, span);
|
|
226
|
-
if (cell.widthTwips !== undefined
|
|
227
|
-
|
|
304
|
+
if (cell.widthTwips !== undefined) {
|
|
305
|
+
requireInteger(cell.widthTwips, `${cellPath}/widthTwips`, 'Cell width must be a signed safe integer in the API-representable integer branch of ST_MeasurementOrPercent');
|
|
228
306
|
}
|
|
229
307
|
if (cell.borders)
|
|
230
308
|
validateBorders(cell.borders, `${cellPath}/borders`);
|
|
231
|
-
if (cell.
|
|
232
|
-
|
|
309
|
+
if (cell.vAlign !== undefined) {
|
|
310
|
+
requireSupportedSchemaEnum(cell.vAlign, `${cellPath}/vAlign`, 'ST_VerticalJc', CELL_VERTICAL_ALIGNMENTS);
|
|
233
311
|
}
|
|
312
|
+
if (cell.shadingHex !== undefined)
|
|
313
|
+
requireSupportedHexColor(cell.shadingHex, `${cellPath}/shadingHex`);
|
|
234
314
|
if (cell.themeFill !== undefined) {
|
|
235
315
|
validateThemeColorSlot(cell.themeFill, `${cellPath}/themeFill`, 'themeFill');
|
|
236
316
|
}
|
|
@@ -244,8 +324,8 @@ function validateTable(table, path, styleIds, numbering, story) {
|
|
|
244
324
|
}
|
|
245
325
|
if (cell.marginsTwips) {
|
|
246
326
|
for (const [key, value] of Object.entries(cell.marginsTwips)) {
|
|
247
|
-
if (value !== undefined
|
|
248
|
-
|
|
327
|
+
if (value !== undefined) {
|
|
328
|
+
requireInteger(value, `${cellPath}/marginsTwips/${key}`, 'Cell margins must be signed safe integers in the API-representable integer branch of ST_MeasurementOrPercent');
|
|
249
329
|
}
|
|
250
330
|
}
|
|
251
331
|
}
|
|
@@ -267,11 +347,11 @@ function validateBorders(borders, path) {
|
|
|
267
347
|
for (const [edge, spec] of Object.entries(borders)) {
|
|
268
348
|
if (!spec)
|
|
269
349
|
continue;
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
if (spec.sizeEighthPt !== undefined
|
|
274
|
-
|
|
350
|
+
requireSupportedSchemaEnum(spec.style, `${path}/${edge}/style`, 'ST_Border', BORDER_STYLES);
|
|
351
|
+
if (spec.colorHex !== undefined)
|
|
352
|
+
requireSupportedHexColor(spec.colorHex, `${path}/${edge}/colorHex`);
|
|
353
|
+
if (spec.sizeEighthPt !== undefined) {
|
|
354
|
+
requireInteger(spec.sizeEighthPt, `${path}/${edge}/sizeEighthPt`, 'Border size must be a non-negative safe integer in the ST_EighthPointMeasure domain', 0);
|
|
275
355
|
}
|
|
276
356
|
}
|
|
277
357
|
}
|
|
@@ -296,13 +376,7 @@ function validateParagraph(paragraph, path, styleIds, numbering, story) {
|
|
|
296
376
|
if (paragraph.styleId !== undefined && !styleIds.has(paragraph.styleId)) {
|
|
297
377
|
throw new GenerationSpecError('dangling_style_reference', `${path}/styleId`, `Paragraph references undeclared style '${paragraph.styleId}'`);
|
|
298
378
|
}
|
|
299
|
-
|
|
300
|
-
paragraph.tabs.forEach((stop, i) => {
|
|
301
|
-
if (!(stop.posTwips >= 0) || !Number.isFinite(stop.posTwips)) {
|
|
302
|
-
throw new GenerationSpecError('invalid_value', `${path}/tabs/${i}/posTwips`, 'Tab stop position must be a non-negative finite twips value');
|
|
303
|
-
}
|
|
304
|
-
});
|
|
305
|
-
}
|
|
379
|
+
validateParagraphProps(paragraph, path);
|
|
306
380
|
if (!Array.isArray(paragraph.runs)) {
|
|
307
381
|
throw new GenerationSpecError('invalid_value', `${path}/runs`, 'Paragraph runs must be an array');
|
|
308
382
|
}
|
|
@@ -310,6 +384,48 @@ function validateParagraph(paragraph, path, styleIds, numbering, story) {
|
|
|
310
384
|
validateInline(run, `${path}/runs/${runIndex}`);
|
|
311
385
|
});
|
|
312
386
|
}
|
|
387
|
+
/** Validate the paragraph-property subset shared by body paragraphs and styles. */
|
|
388
|
+
function validateParagraphProps(props, path) {
|
|
389
|
+
if (props.tabs) {
|
|
390
|
+
props.tabs.forEach((stop, i) => {
|
|
391
|
+
requireInteger(stop.posTwips, `${path}/tabs/${i}/posTwips`, 'Tab stop position must be a non-negative safe integer in twips', 0);
|
|
392
|
+
if (!TAB_ALIGNMENTS.has(stop.align))
|
|
393
|
+
throw new GenerationSpecError('invalid_value', `${path}/tabs/${i}/align`, `Unsupported tab alignment '${stop.align}'`);
|
|
394
|
+
if (stop.leader !== undefined && !TAB_LEADERS.has(stop.leader))
|
|
395
|
+
throw new GenerationSpecError('invalid_value', `${path}/tabs/${i}/leader`, `Unsupported tab leader '${stop.leader}'`);
|
|
396
|
+
});
|
|
397
|
+
}
|
|
398
|
+
if (props.alignment !== undefined && !ALIGNMENTS.has(props.alignment)) {
|
|
399
|
+
throw new GenerationSpecError('invalid_value', `${path}/alignment`, `Unsupported paragraph alignment '${props.alignment}'`);
|
|
400
|
+
}
|
|
401
|
+
if (props.spacing) {
|
|
402
|
+
for (const key of ['beforeTwips', 'afterTwips']) {
|
|
403
|
+
const value = props.spacing[key];
|
|
404
|
+
if (value !== undefined)
|
|
405
|
+
requireInteger(value, `${path}/spacing/${key}`, `${key} must be a non-negative safe integer`, 0);
|
|
406
|
+
}
|
|
407
|
+
if (props.spacing.lineTwips !== undefined)
|
|
408
|
+
requireInteger(props.spacing.lineTwips, `${path}/spacing/lineTwips`, 'lineTwips must be a safe integer');
|
|
409
|
+
if (props.spacing.lineRule !== undefined && !LINE_RULES.has(props.spacing.lineRule)) {
|
|
410
|
+
throw new GenerationSpecError('invalid_value', `${path}/spacing/lineRule`, `Unsupported line rule '${props.spacing.lineRule}'`);
|
|
411
|
+
}
|
|
412
|
+
}
|
|
413
|
+
if (props.indent) {
|
|
414
|
+
for (const key of ['leftTwips', 'rightTwips']) {
|
|
415
|
+
const value = props.indent[key];
|
|
416
|
+
if (value !== undefined)
|
|
417
|
+
requireInteger(value, `${path}/indent/${key}`, `${key} must be a safe integer`);
|
|
418
|
+
}
|
|
419
|
+
for (const key of ['firstLineTwips', 'hangingTwips']) {
|
|
420
|
+
const value = props.indent[key];
|
|
421
|
+
if (value !== undefined)
|
|
422
|
+
requireInteger(value, `${path}/indent/${key}`, `${key} must be a non-negative safe integer`, 0);
|
|
423
|
+
}
|
|
424
|
+
if (props.indent.firstLineTwips !== undefined && props.indent.hangingTwips !== undefined) {
|
|
425
|
+
throw new GenerationSpecError('invalid_value', `${path}/indent`, 'firstLineTwips and hangingTwips are mutually exclusive');
|
|
426
|
+
}
|
|
427
|
+
}
|
|
428
|
+
}
|
|
313
429
|
function validateInline(run, path) {
|
|
314
430
|
if (run.kind !== 'tab' && run.kind !== 'break' && run.kind !== 'field' && run.kind !== 'text') {
|
|
315
431
|
unsupported(path, `inline kind '${run.kind}'`);
|
|
@@ -329,9 +445,11 @@ function validateInline(run, path) {
|
|
|
329
445
|
validateRunProps(run, path);
|
|
330
446
|
}
|
|
331
447
|
function validateRunProps(props, path) {
|
|
332
|
-
if (props.
|
|
333
|
-
|
|
448
|
+
if (props.underline !== undefined) {
|
|
449
|
+
requireSupportedSchemaEnum(props.underline, `${path}/underline`, 'ST_Underline', UNDERLINES);
|
|
334
450
|
}
|
|
451
|
+
if (props.colorHex !== undefined)
|
|
452
|
+
requireSupportedHexColor(props.colorHex, `${path}/colorHex`);
|
|
335
453
|
if (props.themeColor !== undefined) {
|
|
336
454
|
validateThemeColorSlot(props.themeColor, `${path}/themeColor`, 'themeColor');
|
|
337
455
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validate-spec.js","sourceRoot":"","sources":["../../src/generation/validate-spec.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"validate-spec.js","sourceRoot":"","sources":["../../src/generation/validate-spec.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,33 +1,16 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Document Comparison Engine
|
|
3
|
-
*
|
|
4
|
-
* Provides multiple comparison approaches:
|
|
5
|
-
* - Baseline A: WmlComparer wrapper (Docxodus WASM or dotnet CLI)
|
|
6
|
-
* - Baseline B: Pure TypeScript (diff-match-patch + OOXML renderer) - paragraph level (dev-only)
|
|
7
|
-
* - Atomizer: Pure TypeScript with atom-level comparison, move detection, format detection
|
|
8
|
-
*/
|
|
9
|
-
import type { CompareOptions, CompareResult } from './compare-types.js';
|
|
10
|
-
export type { CompareOptions, CompareResult, CompareStats, ReconstructionAttemptDiagnostics, ReconstructionBookmarkMismatchDetails, ReconstructionBookmarkMismatchSummary, ReconstructionFallbackDiagnostics, ReconstructionFallbackReason, ReconstructionIdDelta, ReconstructionIdDeltaSummary, ReconstructionMode, ReconstructionSafetyCheckName, ReconstructionSafetyChecks, ReconstructionSafetyFailureDetails, ReconstructionSafetyFailureSummary, ReconstructionTextMismatchDetails, ReconstructionTextMismatchSummary, } from './compare-types.js';
|
|
11
|
-
/**
|
|
12
|
-
* Compare two DOCX documents and produce a document with track changes.
|
|
13
|
-
*
|
|
14
|
-
* @param original - The original document (Buffer)
|
|
15
|
-
* @param revised - The revised document (Buffer)
|
|
16
|
-
* @param options - Comparison options
|
|
17
|
-
* @returns The comparison result with track changes markup
|
|
18
|
-
*/
|
|
19
|
-
export declare function compareDocuments(original: Buffer, revised: Buffer, options?: CompareOptions): Promise<CompareResult>;
|
|
20
1
|
export * from './shared/ooxml/namespaces.js';
|
|
2
|
+
export * from './generated/ecma-376-vocabulary.js';
|
|
21
3
|
export * from './shared/ooxml/types.js';
|
|
4
|
+
export * from './shared/docx/DocxArchive.js';
|
|
5
|
+
export * from './shared/field-structure.js';
|
|
6
|
+
export * from './shared/validators/structural.js';
|
|
22
7
|
export * from './core-types.js';
|
|
23
|
-
export * from './atomizer.js';
|
|
24
|
-
export * from './move-detection.js';
|
|
25
|
-
export * from './format-detection.js';
|
|
26
|
-
export * from './baselines/atomizer/formattingFidelity.js';
|
|
27
8
|
export * from './numbering.js';
|
|
28
9
|
export * from './footnotes.js';
|
|
29
10
|
export * from './primitives/index.js';
|
|
30
|
-
export
|
|
11
|
+
export * from './primitives/schema-corpus-capture.js';
|
|
12
|
+
export * from './primitives/xml-helpers.js';
|
|
13
|
+
export { allocateRevisionId, buildPPrChangeElement, buildTcPrChangeElement, buildTrPrChangeElement, buildRPrChangeElement, createRevisionContainer, createRevisionContext, createRevisionIdState, escapeXmlAttr, formatDate, prepareElementForDeletion, convertSerializedDeletionContent, wrapSerializedContentWithDel, wrapSerializedContentWithIns, wrapElementWithDel, wrapElementWithIns, } from './primitives/track-changes-emitter.js';
|
|
31
14
|
export type { RevisionContext, RevisionContextOptions, RevisionIdState, } from './primitives/track-changes-emitter.js';
|
|
32
15
|
export { resolveSoffice, probeSofficeUsable, runLibreOfficeOracle, type OracleJob } from './integration/libreoffice-oracle.js';
|
|
33
16
|
export { buildSyntheticDocx, buildDocxFromParts, type SyntheticDocxOptions, type DocxPartsOptions, } from './integration/synthetic-docx-fixture.js';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,cAAc,8BAA8B,CAAC;AAC7C,cAAc,oCAAoC,CAAC;AACnD,cAAc,yBAAyB,CAAC;AACxC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,mCAAmC,CAAC;AAGlD,cAAc,iBAAiB,CAAC;AAGhC,cAAc,gBAAgB,CAAC;AAG/B,cAAc,gBAAgB,CAAC;AAG/B,cAAc,uBAAuB,CAAC;AACtC,cAAc,uCAAuC,CAAC;AACtD,cAAc,6BAA6B,CAAC;AAC5C,OAAO,EACL,kBAAkB,EAClB,qBAAqB,EACrB,sBAAsB,EACtB,sBAAsB,EACtB,qBAAqB,EACrB,uBAAuB,EACvB,qBAAqB,EACrB,qBAAqB,EACrB,aAAa,EACb,UAAU,EACV,yBAAyB,EACzB,gCAAgC,EAChC,4BAA4B,EAC5B,4BAA4B,EAC5B,kBAAkB,EAClB,kBAAkB,GACnB,MAAM,uCAAuC,CAAC;AAC/C,YAAY,EACV,eAAe,EACf,sBAAsB,EACtB,eAAe,GAChB,MAAM,uCAAuC,CAAC;AAK/C,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,KAAK,SAAS,EAAE,MAAM,qCAAqC,CAAC;AAK/H,OAAO,EACL,kBAAkB,EAClB,kBAAkB,EAClB,KAAK,oBAAoB,EACzB,KAAK,gBAAgB,GACtB,MAAM,yCAAyC,CAAC;AAKjD,OAAO,EACL,YAAY,EACZ,KAAK,mBAAmB,EACxB,mBAAmB,EACnB,uBAAuB,EACvB,KAAK,uBAAuB,EAC5B,qBAAqB,EACrB,KAAK,qBAAqB,EAC1B,KAAK,eAAe,GACrB,MAAM,uBAAuB,CAAC;AAC/B,YAAY,EACV,SAAS,EACT,UAAU,EACV,SAAS,EACT,gBAAgB,EAChB,YAAY,EACZ,gBAAgB,EAChB,SAAS,EACT,eAAe,EACf,gBAAgB,EAChB,UAAU,EACV,aAAa,EACb,aAAa,EACb,QAAQ,EACR,OAAO,EACP,WAAW,EACX,SAAS,EACT,YAAY,EACZ,aAAa,EACb,YAAY,EACZ,SAAS,EACT,OAAO,GACR,MAAM,uBAAuB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,60 +1,21 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Document Comparison Engine
|
|
3
|
-
*
|
|
4
|
-
* Provides multiple comparison approaches:
|
|
5
|
-
* - Baseline A: WmlComparer wrapper (Docxodus WASM or dotnet CLI)
|
|
6
|
-
* - Baseline B: Pure TypeScript (diff-match-patch + OOXML renderer) - paragraph level (dev-only)
|
|
7
|
-
* - Atomizer: Pure TypeScript with atom-level comparison, move detection, format detection
|
|
8
|
-
*/
|
|
9
|
-
import { compareDocumentsAtomizer } from './baselines/atomizer/pipeline.js';
|
|
10
|
-
/**
|
|
11
|
-
* Compare two DOCX documents and produce a document with track changes.
|
|
12
|
-
*
|
|
13
|
-
* @param original - The original document (Buffer)
|
|
14
|
-
* @param revised - The revised document (Buffer)
|
|
15
|
-
* @param options - Comparison options
|
|
16
|
-
* @returns The comparison result with track changes markup
|
|
17
|
-
*/
|
|
18
|
-
export async function compareDocuments(original, revised, options = {}) {
|
|
19
|
-
const { engine = 'auto', author, date, reconstructionMode, premergeRuns } = options;
|
|
20
|
-
// Migration error for removed diffmatch engine
|
|
21
|
-
if (engine === 'diffmatch') {
|
|
22
|
-
throw new Error("The 'diffmatch' engine has been removed from the public API. " +
|
|
23
|
-
"Use engine: 'atomizer' (recommended) or 'auto'.");
|
|
24
|
-
}
|
|
25
|
-
// Atomizer engine (recommended) - character-level with move detection
|
|
26
|
-
if (engine === 'atomizer' || engine === 'auto') {
|
|
27
|
-
return compareDocumentsAtomizer(original, revised, {
|
|
28
|
-
author,
|
|
29
|
-
date,
|
|
30
|
-
reconstructionMode,
|
|
31
|
-
premergeRuns,
|
|
32
|
-
});
|
|
33
|
-
}
|
|
34
|
-
// WmlComparer engine requires --docxodus option at CLI level
|
|
35
|
-
throw new Error('WmlComparer engine is only available through the benchmark CLI. ' +
|
|
36
|
-
'Use engine: "atomizer" or "auto" for programmatic access.');
|
|
37
|
-
}
|
|
38
1
|
// Re-export shared utilities
|
|
39
2
|
export * from './shared/ooxml/namespaces.js';
|
|
3
|
+
export * from './generated/ecma-376-vocabulary.js';
|
|
40
4
|
export * from './shared/ooxml/types.js';
|
|
5
|
+
export * from './shared/docx/DocxArchive.js';
|
|
6
|
+
export * from './shared/field-structure.js';
|
|
7
|
+
export * from './shared/validators/structural.js';
|
|
41
8
|
// Re-export core WmlComparer types
|
|
42
9
|
export * from './core-types.js';
|
|
43
|
-
// Re-export atomizer functions
|
|
44
|
-
export * from './atomizer.js';
|
|
45
|
-
// Re-export move detection
|
|
46
|
-
export * from './move-detection.js';
|
|
47
|
-
// Re-export format detection
|
|
48
|
-
export * from './format-detection.js';
|
|
49
|
-
// Re-export the formatting-fidelity comparison check
|
|
50
|
-
export * from './baselines/atomizer/formattingFidelity.js';
|
|
51
10
|
// Re-export numbering utilities
|
|
52
11
|
export * from './numbering.js';
|
|
53
12
|
// Re-export footnote utilities
|
|
54
13
|
export * from './footnotes.js';
|
|
55
14
|
// Re-export primitives (editing, DOM helpers, document operations)
|
|
56
15
|
export * from './primitives/index.js';
|
|
57
|
-
export
|
|
16
|
+
export * from './primitives/schema-corpus-capture.js';
|
|
17
|
+
export * from './primitives/xml-helpers.js';
|
|
18
|
+
export { allocateRevisionId, buildPPrChangeElement, buildTcPrChangeElement, buildTrPrChangeElement, buildRPrChangeElement, createRevisionContainer, createRevisionContext, createRevisionIdState, escapeXmlAttr, formatDate, prepareElementForDeletion, convertSerializedDeletionContent, wrapSerializedContentWithDel, wrapSerializedContentWithIns, wrapElementWithDel, wrapElementWithIns, } from './primitives/track-changes-emitter.js';
|
|
58
19
|
// Re-export the LibreOffice accept/reject oracle (gated reference voter; callers skip when
|
|
59
20
|
// `resolveSoffice()` is null or `probeSofficeUsable()` is false — the binary can exist yet
|
|
60
21
|
// abort on launch under a restricted shell). odf-core's round-trip tests drive it with `.odt` jobs.
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,6BAA6B;AAC7B,cAAc,8BAA8B,CAAC;AAC7C,cAAc,oCAAoC,CAAC;AACnD,cAAc,yBAAyB,CAAC;AACxC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,mCAAmC,CAAC;AAElD,mCAAmC;AACnC,cAAc,iBAAiB,CAAC;AAEhC,gCAAgC;AAChC,cAAc,gBAAgB,CAAC;AAE/B,+BAA+B;AAC/B,cAAc,gBAAgB,CAAC;AAE/B,mEAAmE;AACnE,cAAc,uBAAuB,CAAC;AACtC,cAAc,uCAAuC,CAAC;AACtD,cAAc,6BAA6B,CAAC;AAC5C,OAAO,EACL,kBAAkB,EAClB,qBAAqB,EACrB,sBAAsB,EACtB,sBAAsB,EACtB,qBAAqB,EACrB,uBAAuB,EACvB,qBAAqB,EACrB,qBAAqB,EACrB,aAAa,EACb,UAAU,EACV,yBAAyB,EACzB,gCAAgC,EAChC,4BAA4B,EAC5B,4BAA4B,EAC5B,kBAAkB,EAClB,kBAAkB,GACnB,MAAM,uCAAuC,CAAC;AAO/C,2FAA2F;AAC3F,2FAA2F;AAC3F,oGAAoG;AACpG,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAE,oBAAoB,EAAkB,MAAM,qCAAqC,CAAC;AAE/H,mFAAmF;AACnF,wFAAwF;AACxF,8EAA8E;AAC9E,OAAO,EACL,kBAAkB,EAClB,kBAAkB,GAGnB,MAAM,yCAAyC,CAAC;AAEjD,+EAA+E;AAC/E,6EAA6E;AAC7E,6CAA6C;AAC7C,OAAO,EACL,YAAY,EAEZ,mBAAmB,EACnB,uBAAuB,EAEvB,qBAAqB,GAGtB,MAAM,uBAAuB,CAAC"}
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* accept_ai_edits — selective accept/reject of tracked changes by revision id or
|
|
3
|
+
* author (#123).
|
|
4
|
+
*
|
|
5
|
+
* The strongest argument for tracked-changes-as-canonical (#118/#120) is that
|
|
6
|
+
* acceptance can target only the AI actor's revisions, leaving any pre-existing
|
|
7
|
+
* third-party tracked changes byte-untouched. This module resolves a target set
|
|
8
|
+
* of revision ids (directly, or from an author string), refuses ambiguous
|
|
9
|
+
* overlaps by default, and drives the existing (whole-document) accept/reject
|
|
10
|
+
* engines through a revision-id filter so only the targeted revisions are
|
|
11
|
+
* resolved.
|
|
12
|
+
*
|
|
13
|
+
* Ambiguity: OOXML permits — but Word does not define behavior for — a revision
|
|
14
|
+
* of one actor structurally containing a revision of another (nested
|
|
15
|
+
* `w:ins`/`w:del`/`w:moveFrom`/`w:moveTo`). Selective accept/reject is defined
|
|
16
|
+
* only on a normalized, non-overlapping revision graph; the ambiguous case
|
|
17
|
+
* hard-errors with a structured list of the offending pairs unless the caller
|
|
18
|
+
* opts into `normalizeFirst` (best-effort, no byte-identical promise).
|
|
19
|
+
*/
|
|
20
|
+
import { type AcceptChangesResult, type RevisionFilter } from './accept_changes.js';
|
|
21
|
+
import { type RejectChangesResult } from './reject_changes.js';
|
|
22
|
+
/** Selector for a selective accept/reject operation. */
|
|
23
|
+
export interface AiEditSelector {
|
|
24
|
+
/** Explicit `w:id` values to target (strings or numbers). Primary signature. */
|
|
25
|
+
revisionIds?: Array<string | number>;
|
|
26
|
+
/** Convenience: resolve every revision authored by this `w:author` to its id. */
|
|
27
|
+
author?: string;
|
|
28
|
+
/**
|
|
29
|
+
* Opt in to best-effort operation on an ambiguous (overlapping) graph instead
|
|
30
|
+
* of hard-erroring. Foreign revisions are still left in place, but byte-identical
|
|
31
|
+
* preservation is not promised in ambiguous cases.
|
|
32
|
+
*/
|
|
33
|
+
normalizeFirst?: boolean;
|
|
34
|
+
}
|
|
35
|
+
/** One offending pair where a targeted revision overlaps a non-targeted one. */
|
|
36
|
+
export interface AiRevisionOverlap {
|
|
37
|
+
outerId: string | null;
|
|
38
|
+
outerLocalName: string;
|
|
39
|
+
outerAuthor: string | null;
|
|
40
|
+
innerId: string | null;
|
|
41
|
+
innerLocalName: string;
|
|
42
|
+
innerAuthor: string | null;
|
|
43
|
+
}
|
|
44
|
+
/** Thrown when selective accept/reject would touch an ambiguous revision graph. */
|
|
45
|
+
export declare class AmbiguousRevisionOverlapError extends Error {
|
|
46
|
+
readonly code = "AMBIGUOUS_REVISION_OVERLAP";
|
|
47
|
+
readonly overlaps: AiRevisionOverlap[];
|
|
48
|
+
constructor(overlaps: AiRevisionOverlap[]);
|
|
49
|
+
}
|
|
50
|
+
export interface SelectiveAcceptResult {
|
|
51
|
+
result: AcceptChangesResult;
|
|
52
|
+
selectedIds: string[];
|
|
53
|
+
overlaps: AiRevisionOverlap[];
|
|
54
|
+
}
|
|
55
|
+
export interface SelectiveRejectResult {
|
|
56
|
+
result: RejectChangesResult;
|
|
57
|
+
selectedIds: string[];
|
|
58
|
+
overlaps: AiRevisionOverlap[];
|
|
59
|
+
}
|
|
60
|
+
/** Every tracked-change element under `root` (any revision type). */
|
|
61
|
+
export declare function collectRevisionElements(root: Element | Document): Element[];
|
|
62
|
+
/**
|
|
63
|
+
* Resolve the target revision-id set from a selector, given the revision
|
|
64
|
+
* elements available across all stories. `revisionIds` wins when provided;
|
|
65
|
+
* otherwise `author` resolves to the ids of every revision it authored.
|
|
66
|
+
*/
|
|
67
|
+
export declare function resolveSelectedIds(revisionElements: Element[], selector: AiEditSelector): Set<string>;
|
|
68
|
+
/**
|
|
69
|
+
* Find ambiguous overlaps within a single story: a targeted content-wrapper
|
|
70
|
+
* revision that structurally contains — or is contained by — a non-targeted
|
|
71
|
+
* content-wrapper revision.
|
|
72
|
+
*/
|
|
73
|
+
export declare function detectAmbiguousOverlaps(root: Element | Document, selectedIds: Set<string>): AiRevisionOverlap[];
|
|
74
|
+
/** Build a revision filter that matches exactly the selected ids. */
|
|
75
|
+
export declare function selectedIdFilter(selectedIds: Set<string>): RevisionFilter;
|
|
76
|
+
/**
|
|
77
|
+
* Accept only the targeted revisions in a single story `doc`, leaving all other
|
|
78
|
+
* revisions byte-untouched. Hard-errors on an ambiguous overlap unless
|
|
79
|
+
* `normalizeFirst` is set. Mutates `doc` in place.
|
|
80
|
+
*/
|
|
81
|
+
export declare function acceptAIEdits(doc: Document, selector: AiEditSelector): SelectiveAcceptResult;
|
|
82
|
+
/**
|
|
83
|
+
* Reject only the targeted revisions in a single story `doc`, leaving all other
|
|
84
|
+
* revisions byte-untouched. Symmetric to {@link acceptAIEdits}.
|
|
85
|
+
*/
|
|
86
|
+
export declare function rejectAIEdits(doc: Document, selector: AiEditSelector): SelectiveRejectResult;
|
|
87
|
+
//# sourceMappingURL=accept_ai_edits.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"accept_ai_edits.d.ts","sourceRoot":"","sources":["../../src/primitives/accept_ai_edits.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAIH,OAAO,EAGL,KAAK,mBAAmB,EACxB,KAAK,cAAc,EACpB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAiB,KAAK,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAmD9E,wDAAwD;AACxD,MAAM,WAAW,cAAc;IAC7B,gFAAgF;IAChF,WAAW,CAAC,EAAE,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC;IACrC,iFAAiF;IACjF,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;;OAIG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED,gFAAgF;AAChF,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;IACvB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;IACvB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;CAC5B;AAED,mFAAmF;AACnF,qBAAa,6BAA8B,SAAQ,KAAK;IACtD,QAAQ,CAAC,IAAI,gCAAgC;IAC7C,QAAQ,CAAC,QAAQ,EAAE,iBAAiB,EAAE,CAAC;gBAC3B,QAAQ,EAAE,iBAAiB,EAAE;CAS1C;AAED,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,mBAAmB,CAAC;IAC5B,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,QAAQ,EAAE,iBAAiB,EAAE,CAAC;CAC/B;AAED,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,mBAAmB,CAAC;IAC5B,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,QAAQ,EAAE,iBAAiB,EAAE,CAAC;CAC/B;AAUD,qEAAqE;AACrE,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,OAAO,GAAG,QAAQ,GAAG,OAAO,EAAE,CAQ3E;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,gBAAgB,EAAE,OAAO,EAAE,EAAE,QAAQ,EAAE,cAAc,GAAG,GAAG,CAAC,MAAM,CAAC,CAgBrG;AAED;;;;GAIG;AACH,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,OAAO,GAAG,QAAQ,EAAE,WAAW,EAAE,GAAG,CAAC,MAAM,CAAC,GAAG,iBAAiB,EAAE,CA6E/G;AAED,qEAAqE;AACrE,wBAAgB,gBAAgB,CAAC,WAAW,EAAE,GAAG,CAAC,MAAM,CAAC,GAAG,cAAc,CAKzE;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,QAAQ,EAAE,QAAQ,EAAE,cAAc,GAAG,qBAAqB,CAQ5F;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,QAAQ,EAAE,QAAQ,EAAE,cAAc,GAAG,qBAAqB,CAQ5F"}
|