@usejunior/docx-core 0.9.1 → 0.10.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/dist/.tsbuildinfo +1 -1
- package/dist/atomizer.d.ts +15 -1
- package/dist/atomizer.d.ts.map +1 -1
- package/dist/atomizer.js +37 -1
- package/dist/atomizer.js.map +1 -1
- package/dist/baselines/atomizer/documentReconstructor.d.ts.map +1 -1
- package/dist/baselines/atomizer/documentReconstructor.js +218 -90
- package/dist/baselines/atomizer/documentReconstructor.js.map +1 -1
- package/dist/baselines/atomizer/formattingFidelity.d.ts +99 -0
- package/dist/baselines/atomizer/formattingFidelity.d.ts.map +1 -0
- package/dist/baselines/atomizer/formattingFidelity.js +449 -0
- package/dist/baselines/atomizer/formattingFidelity.js.map +1 -0
- package/dist/baselines/atomizer/inPlaceModifier-bookmarks.d.ts +37 -0
- package/dist/baselines/atomizer/inPlaceModifier-bookmarks.d.ts.map +1 -0
- package/dist/baselines/atomizer/inPlaceModifier-bookmarks.js +189 -0
- package/dist/baselines/atomizer/inPlaceModifier-bookmarks.js.map +1 -0
- package/dist/baselines/atomizer/inPlaceModifier-containers.d.ts +74 -0
- package/dist/baselines/atomizer/inPlaceModifier-containers.d.ts.map +1 -0
- package/dist/baselines/atomizer/inPlaceModifier-containers.js +171 -0
- package/dist/baselines/atomizer/inPlaceModifier-containers.js.map +1 -0
- package/dist/baselines/atomizer/inPlaceModifier-deletion.d.ts +88 -0
- package/dist/baselines/atomizer/inPlaceModifier-deletion.d.ts.map +1 -0
- package/dist/baselines/atomizer/inPlaceModifier-deletion.js +326 -0
- package/dist/baselines/atomizer/inPlaceModifier-deletion.js.map +1 -0
- package/dist/baselines/atomizer/inPlaceModifier-postprocess.d.ts +85 -0
- package/dist/baselines/atomizer/inPlaceModifier-postprocess.d.ts.map +1 -0
- package/dist/baselines/atomizer/inPlaceModifier-postprocess.js +402 -0
- package/dist/baselines/atomizer/inPlaceModifier-postprocess.js.map +1 -0
- package/dist/baselines/atomizer/inPlaceModifier-presplit.d.ts +39 -0
- package/dist/baselines/atomizer/inPlaceModifier-presplit.d.ts.map +1 -0
- package/dist/baselines/atomizer/inPlaceModifier-presplit.js +265 -0
- package/dist/baselines/atomizer/inPlaceModifier-presplit.js.map +1 -0
- package/dist/baselines/atomizer/inPlaceModifier-shared.d.ts +62 -0
- package/dist/baselines/atomizer/inPlaceModifier-shared.d.ts.map +1 -0
- package/dist/baselines/atomizer/inPlaceModifier-shared.js +139 -0
- package/dist/baselines/atomizer/inPlaceModifier-shared.js.map +1 -0
- package/dist/baselines/atomizer/inPlaceModifier-wrappers.d.ts +189 -0
- package/dist/baselines/atomizer/inPlaceModifier-wrappers.d.ts.map +1 -0
- package/dist/baselines/atomizer/inPlaceModifier-wrappers.js +427 -0
- package/dist/baselines/atomizer/inPlaceModifier-wrappers.js.map +1 -0
- package/dist/baselines/atomizer/inPlaceModifier.d.ts +6 -290
- package/dist/baselines/atomizer/inPlaceModifier.d.ts.map +1 -1
- package/dist/baselines/atomizer/inPlaceModifier.js +23 -1828
- package/dist/baselines/atomizer/inPlaceModifier.js.map +1 -1
- package/dist/baselines/atomizer/pipeline.d.ts +76 -1
- package/dist/baselines/atomizer/pipeline.d.ts.map +1 -1
- package/dist/baselines/atomizer/pipeline.js +204 -27
- package/dist/baselines/atomizer/pipeline.js.map +1 -1
- package/dist/baselines/atomizer/trackChangesAcceptorAst.d.ts.map +1 -1
- package/dist/baselines/atomizer/trackChangesAcceptorAst.js +56 -160
- package/dist/baselines/atomizer/trackChangesAcceptorAst.js.map +1 -1
- package/dist/compare-types.d.ts +151 -0
- package/dist/compare-types.d.ts.map +1 -0
- package/dist/compare-types.js +2 -0
- package/dist/compare-types.js.map +1 -0
- package/dist/core-types.d.ts +5 -1
- package/dist/core-types.d.ts.map +1 -1
- package/dist/core-types.js +5 -1
- package/dist/core-types.js.map +1 -1
- package/dist/footnotes.d.ts +8 -3
- package/dist/footnotes.d.ts.map +1 -1
- package/dist/footnotes.js +8 -3
- package/dist/footnotes.js.map +1 -1
- package/dist/index.d.ts +6 -150
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +6 -0
- package/dist/index.js.map +1 -1
- package/dist/integration/libreoffice-oracle.d.ts +41 -0
- package/dist/integration/libreoffice-oracle.d.ts.map +1 -0
- package/dist/integration/libreoffice-oracle.js +282 -0
- package/dist/integration/libreoffice-oracle.js.map +1 -0
- package/dist/primitives/accept_changes.d.ts +2 -2
- package/dist/primitives/accept_changes.d.ts.map +1 -1
- package/dist/primitives/accept_changes.js +24 -79
- package/dist/primitives/accept_changes.js.map +1 -1
- package/dist/primitives/comments.d.ts +12 -3
- package/dist/primitives/comments.d.ts.map +1 -1
- package/dist/primitives/comments.js +374 -97
- package/dist/primitives/comments.js.map +1 -1
- package/dist/primitives/content_fingerprint.d.ts +29 -0
- package/dist/primitives/content_fingerprint.d.ts.map +1 -0
- package/dist/primitives/content_fingerprint.js +63 -0
- package/dist/primitives/content_fingerprint.js.map +1 -0
- package/dist/primitives/document.d.ts +56 -15
- package/dist/primitives/document.d.ts.map +1 -1
- package/dist/primitives/document.js +303 -32
- package/dist/primitives/document.js.map +1 -1
- package/dist/primitives/document_view-comments.d.ts +18 -0
- package/dist/primitives/document_view-comments.d.ts.map +1 -0
- package/dist/primitives/document_view-comments.js +159 -0
- package/dist/primitives/document_view-comments.js.map +1 -0
- package/dist/primitives/document_view-headings.d.ts +45 -0
- package/dist/primitives/document_view-headings.d.ts.map +1 -0
- package/dist/primitives/document_view-headings.js +247 -0
- package/dist/primitives/document_view-headings.js.map +1 -0
- package/dist/primitives/document_view-styles.d.ts +11 -0
- package/dist/primitives/document_view-styles.d.ts.map +1 -0
- package/dist/primitives/document_view-styles.js +104 -0
- package/dist/primitives/document_view-styles.js.map +1 -0
- package/dist/primitives/document_view-toon.d.ts +37 -0
- package/dist/primitives/document_view-toon.d.ts.map +1 -0
- package/dist/primitives/document_view-toon.js +199 -0
- package/dist/primitives/document_view-toon.js.map +1 -0
- package/dist/primitives/document_view-types.d.ts +137 -0
- package/dist/primitives/document_view-types.d.ts.map +1 -0
- package/dist/primitives/document_view-types.js +2 -0
- package/dist/primitives/document_view-types.js.map +1 -0
- package/dist/primitives/document_view.d.ts +8 -106
- package/dist/primitives/document_view.d.ts.map +1 -1
- package/dist/primitives/document_view.js +134 -301
- package/dist/primitives/document_view.js.map +1 -1
- package/dist/primitives/dom-helpers.d.ts +9 -0
- package/dist/primitives/dom-helpers.d.ts.map +1 -1
- package/dist/primitives/dom-helpers.js +10 -1
- package/dist/primitives/dom-helpers.js.map +1 -1
- package/dist/primitives/footnotes.d.ts +4 -3
- package/dist/primitives/footnotes.d.ts.map +1 -1
- package/dist/primitives/footnotes.js +232 -44
- package/dist/primitives/footnotes.js.map +1 -1
- package/dist/primitives/formatting_tags.d.ts +6 -0
- package/dist/primitives/formatting_tags.d.ts.map +1 -1
- package/dist/primitives/formatting_tags.js +6 -1
- package/dist/primitives/formatting_tags.js.map +1 -1
- package/dist/primitives/index.d.ts +6 -0
- package/dist/primitives/index.d.ts.map +1 -1
- package/dist/primitives/index.js +5 -0
- package/dist/primitives/index.js.map +1 -1
- package/dist/primitives/layout.d.ts +4 -3
- package/dist/primitives/layout.d.ts.map +1 -1
- package/dist/primitives/layout.js +32 -3
- package/dist/primitives/layout.js.map +1 -1
- package/dist/primitives/merge_runs.d.ts +21 -3
- package/dist/primitives/merge_runs.d.ts.map +1 -1
- package/dist/primitives/merge_runs.js +32 -10
- package/dist/primitives/merge_runs.js.map +1 -1
- package/dist/primitives/namespaces.d.ts +6 -0
- package/dist/primitives/namespaces.d.ts.map +1 -1
- package/dist/primitives/namespaces.js +9 -0
- package/dist/primitives/namespaces.js.map +1 -1
- package/dist/primitives/reject_changes.d.ts +2 -2
- package/dist/primitives/reject_changes.d.ts.map +1 -1
- package/dist/primitives/reject_changes.js +24 -81
- package/dist/primitives/reject_changes.js.map +1 -1
- package/dist/primitives/semantic_tags.d.ts +7 -0
- package/dist/primitives/semantic_tags.d.ts.map +1 -1
- package/dist/primitives/semantic_tags.js +21 -3
- package/dist/primitives/semantic_tags.js.map +1 -1
- package/dist/primitives/serialize_html.d.ts +36 -0
- package/dist/primitives/serialize_html.d.ts.map +1 -0
- package/dist/primitives/serialize_html.js +393 -0
- package/dist/primitives/serialize_html.js.map +1 -0
- package/dist/primitives/serialize_markdown.d.ts +16 -0
- package/dist/primitives/serialize_markdown.d.ts.map +1 -0
- package/dist/primitives/serialize_markdown.js +300 -0
- package/dist/primitives/serialize_markdown.js.map +1 -0
- package/dist/primitives/serialize_plaintext.d.ts +15 -0
- package/dist/primitives/serialize_plaintext.d.ts.map +1 -0
- package/dist/primitives/serialize_plaintext.js +154 -0
- package/dist/primitives/serialize_plaintext.js.map +1 -0
- package/dist/primitives/styles.js +22 -22
- package/dist/primitives/styles.js.map +1 -1
- package/dist/primitives/tables.d.ts.map +1 -1
- package/dist/primitives/tables.js +13 -3
- package/dist/primitives/tables.js.map +1 -1
- package/dist/primitives/text.d.ts +2 -1
- package/dist/primitives/text.d.ts.map +1 -1
- package/dist/primitives/text.js +116 -12
- package/dist/primitives/text.js.map +1 -1
- package/dist/primitives/track-changes-emitter.d.ts +139 -0
- package/dist/primitives/track-changes-emitter.d.ts.map +1 -0
- package/dist/primitives/track-changes-emitter.js +241 -0
- package/dist/primitives/track-changes-emitter.js.map +1 -0
- package/dist/primitives/xml-helpers.d.ts +29 -0
- package/dist/primitives/xml-helpers.d.ts.map +1 -0
- package/dist/primitives/xml-helpers.js +35 -0
- package/dist/primitives/xml-helpers.js.map +1 -0
- package/dist/shared/ooxml/namespaces.d.ts +4 -1
- package/dist/shared/ooxml/namespaces.d.ts.map +1 -1
- package/dist/shared/ooxml/namespaces.js +4 -1
- package/dist/shared/ooxml/namespaces.js.map +1 -1
- package/package.json +7 -6
|
@@ -0,0 +1,151 @@
|
|
|
1
|
+
export interface CompareOptions {
|
|
2
|
+
/** Author name for revision tracking. Default: "Comparison" */
|
|
3
|
+
author?: string;
|
|
4
|
+
/**
|
|
5
|
+
* Revision timestamp used for generated track changes (`w:date`).
|
|
6
|
+
* Default: current time.
|
|
7
|
+
*/
|
|
8
|
+
date?: Date;
|
|
9
|
+
/** Ignore formatting differences. Default: true (v1) */
|
|
10
|
+
ignoreFormatting?: boolean;
|
|
11
|
+
/**
|
|
12
|
+
* Atomizer-only normalization: merge adjacent <w:r> siblings with identical formatting
|
|
13
|
+
* prior to comparison. This can reduce overly-granular diffs for heavily-fragmented docs.
|
|
14
|
+
*
|
|
15
|
+
* Default: true.
|
|
16
|
+
*/
|
|
17
|
+
premergeRuns?: boolean;
|
|
18
|
+
/**
|
|
19
|
+
* How to reconstruct the output DOCX when using the atomizer engine:
|
|
20
|
+
* - 'rebuild': rebuild document.xml from scratch (more reject/accept stable)
|
|
21
|
+
* - 'inplace': modify the revised document AST in place (more experimental)
|
|
22
|
+
*
|
|
23
|
+
* Default: 'rebuild'
|
|
24
|
+
*/
|
|
25
|
+
reconstructionMode?: ReconstructionMode;
|
|
26
|
+
/**
|
|
27
|
+
* Comparison engine to use:
|
|
28
|
+
* - 'atomizer': Character-level comparison with move detection (recommended)
|
|
29
|
+
* - 'wmlcomparer': .NET WmlComparer (requires external runtime)
|
|
30
|
+
* - 'auto': Automatically select best available engine (currently 'atomizer')
|
|
31
|
+
*
|
|
32
|
+
* Default: 'auto'
|
|
33
|
+
*/
|
|
34
|
+
engine?: 'wmlcomparer' | 'atomizer' | 'auto';
|
|
35
|
+
}
|
|
36
|
+
export interface CompareStats {
|
|
37
|
+
insertions: number;
|
|
38
|
+
deletions: number;
|
|
39
|
+
modifications: number;
|
|
40
|
+
}
|
|
41
|
+
export type ReconstructionMode = 'rebuild' | 'inplace';
|
|
42
|
+
export type ReconstructionFallbackReason = 'round_trip_safety_check_failed';
|
|
43
|
+
export type ReconstructionSafetyCheckName = 'acceptText' | 'rejectText' | 'acceptBookmarks' | 'rejectBookmarks' | 'fieldStructure';
|
|
44
|
+
export interface ReconstructionSafetyChecks {
|
|
45
|
+
acceptText: boolean;
|
|
46
|
+
rejectText: boolean;
|
|
47
|
+
acceptBookmarks: boolean;
|
|
48
|
+
rejectBookmarks: boolean;
|
|
49
|
+
fieldStructure: boolean;
|
|
50
|
+
}
|
|
51
|
+
export interface ReconstructionTextMismatchDetails {
|
|
52
|
+
expectedLength: number;
|
|
53
|
+
actualLength: number;
|
|
54
|
+
firstDifferingParagraphIndex: number;
|
|
55
|
+
expectedParagraph: string;
|
|
56
|
+
actualParagraph: string;
|
|
57
|
+
differenceSample: string[];
|
|
58
|
+
}
|
|
59
|
+
export interface ReconstructionIdDelta {
|
|
60
|
+
missing: string[];
|
|
61
|
+
unexpected: string[];
|
|
62
|
+
}
|
|
63
|
+
export interface ReconstructionBookmarkMismatchDetails {
|
|
64
|
+
startNames: ReconstructionIdDelta;
|
|
65
|
+
referencedBookmarkNames: ReconstructionIdDelta;
|
|
66
|
+
unresolvedReferenceNames: ReconstructionIdDelta;
|
|
67
|
+
startIds: ReconstructionIdDelta;
|
|
68
|
+
endIds: ReconstructionIdDelta;
|
|
69
|
+
expectedDuplicateStartNames: string[];
|
|
70
|
+
actualDuplicateStartNames: string[];
|
|
71
|
+
expectedDuplicateStartIds: string[];
|
|
72
|
+
actualDuplicateStartIds: string[];
|
|
73
|
+
expectedDuplicateEndIds: string[];
|
|
74
|
+
actualDuplicateEndIds: string[];
|
|
75
|
+
expectedUnmatchedStartIds: string[];
|
|
76
|
+
actualUnmatchedStartIds: string[];
|
|
77
|
+
expectedUnmatchedEndIds: string[];
|
|
78
|
+
actualUnmatchedEndIds: string[];
|
|
79
|
+
}
|
|
80
|
+
export interface ReconstructionSafetyFailureDetails {
|
|
81
|
+
acceptText?: ReconstructionTextMismatchDetails;
|
|
82
|
+
rejectText?: ReconstructionTextMismatchDetails;
|
|
83
|
+
acceptBookmarks?: ReconstructionBookmarkMismatchDetails;
|
|
84
|
+
rejectBookmarks?: ReconstructionBookmarkMismatchDetails;
|
|
85
|
+
}
|
|
86
|
+
export interface ReconstructionIdDeltaSummary {
|
|
87
|
+
missingCount: number;
|
|
88
|
+
unexpectedCount: number;
|
|
89
|
+
firstMissing?: string;
|
|
90
|
+
firstUnexpected?: string;
|
|
91
|
+
}
|
|
92
|
+
export interface ReconstructionTextMismatchSummary {
|
|
93
|
+
firstDifferingParagraphIndex: number;
|
|
94
|
+
expectedParagraph: string;
|
|
95
|
+
actualParagraph: string;
|
|
96
|
+
firstDifference: string;
|
|
97
|
+
}
|
|
98
|
+
export interface ReconstructionBookmarkMismatchSummary {
|
|
99
|
+
startNames: ReconstructionIdDeltaSummary;
|
|
100
|
+
referencedBookmarkNames: ReconstructionIdDeltaSummary;
|
|
101
|
+
unresolvedReferenceNames: ReconstructionIdDeltaSummary;
|
|
102
|
+
startIds: ReconstructionIdDeltaSummary;
|
|
103
|
+
endIds: ReconstructionIdDeltaSummary;
|
|
104
|
+
unmatchedStartCount: number;
|
|
105
|
+
unmatchedEndCount: number;
|
|
106
|
+
firstUnmatchedStartId?: string;
|
|
107
|
+
firstUnmatchedEndId?: string;
|
|
108
|
+
}
|
|
109
|
+
export interface ReconstructionSafetyFailureSummary {
|
|
110
|
+
acceptText?: ReconstructionTextMismatchSummary;
|
|
111
|
+
rejectText?: ReconstructionTextMismatchSummary;
|
|
112
|
+
acceptBookmarks?: ReconstructionBookmarkMismatchSummary;
|
|
113
|
+
rejectBookmarks?: ReconstructionBookmarkMismatchSummary;
|
|
114
|
+
}
|
|
115
|
+
export interface ReconstructionAttemptDiagnostics {
|
|
116
|
+
pass: 'inplace_word_split' | 'inplace_run_level' | 'inplace_word_split_cross_run' | 'inplace_run_level_cross_run';
|
|
117
|
+
checks: ReconstructionSafetyChecks;
|
|
118
|
+
failedChecks: ReconstructionSafetyCheckName[];
|
|
119
|
+
failureDetails?: ReconstructionSafetyFailureDetails;
|
|
120
|
+
firstDiffSummary?: ReconstructionSafetyFailureSummary;
|
|
121
|
+
}
|
|
122
|
+
export interface ReconstructionFallbackDiagnostics {
|
|
123
|
+
attempts: ReconstructionAttemptDiagnostics[];
|
|
124
|
+
}
|
|
125
|
+
export interface CompareResult {
|
|
126
|
+
/** The resulting DOCX with track changes */
|
|
127
|
+
document: Buffer;
|
|
128
|
+
/** Statistics about the comparison */
|
|
129
|
+
stats: CompareStats;
|
|
130
|
+
/** Which engine was used */
|
|
131
|
+
engine: 'wmlcomparer' | 'atomizer';
|
|
132
|
+
/**
|
|
133
|
+
* Requested reconstruction mode. Present for atomizer outputs.
|
|
134
|
+
*/
|
|
135
|
+
reconstructionModeRequested?: ReconstructionMode;
|
|
136
|
+
/**
|
|
137
|
+
* Actual reconstruction mode used to produce the output. Present for atomizer outputs.
|
|
138
|
+
*/
|
|
139
|
+
reconstructionModeUsed?: ReconstructionMode;
|
|
140
|
+
/**
|
|
141
|
+
* Why the requested reconstruction mode could not be used.
|
|
142
|
+
* Present only when atomizer falls back.
|
|
143
|
+
*/
|
|
144
|
+
fallbackReason?: ReconstructionFallbackReason;
|
|
145
|
+
/**
|
|
146
|
+
* Detailed safety-check diagnostics for fallback decisions.
|
|
147
|
+
* Present only when atomizer falls back.
|
|
148
|
+
*/
|
|
149
|
+
fallbackDiagnostics?: ReconstructionFallbackDiagnostics;
|
|
150
|
+
}
|
|
151
|
+
//# sourceMappingURL=compare-types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"compare-types.d.ts","sourceRoot":"","sources":["../src/compare-types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"compare-types.js","sourceRoot":"","sources":["../src/compare-types.ts"],"names":[],"mappings":""}
|
package/dist/core-types.d.ts
CHANGED
|
@@ -229,7 +229,11 @@ export interface NumberingDefinition {
|
|
|
229
229
|
levels: ListLevelInfo[];
|
|
230
230
|
}
|
|
231
231
|
/**
|
|
232
|
-
* Reserved footnote/endnote IDs
|
|
232
|
+
* Reserved footnote/endnote IDs (separator and continuation-separator). The
|
|
233
|
+
* convention follows the ECMA-376 5th edition Part 1 §17.11.9 / §17.11.10
|
|
234
|
+
* examples that use `w:id="0"` / `w:id="1"` for the special footnote types.
|
|
235
|
+
*
|
|
236
|
+
* @conformance ECMA-376 edition 5, Part 1 § 17.11.14
|
|
233
237
|
*/
|
|
234
238
|
export declare const RESERVED_FOOTNOTE_IDS: {
|
|
235
239
|
/** Separator footnote */
|
package/dist/core-types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"core-types.d.ts","sourceRoot":"","sources":["../src/core-types.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"core-types.d.ts","sourceRoot":"","sources":["../src/core-types.ts"],"names":[],"mappings":"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"}
|
package/dist/core-types.js
CHANGED
|
@@ -92,7 +92,11 @@ export const DEFAULT_COMPARER_SETTINGS = {
|
|
|
92
92
|
// Footnote Numbering Types
|
|
93
93
|
// =============================================================================
|
|
94
94
|
/**
|
|
95
|
-
* Reserved footnote/endnote IDs
|
|
95
|
+
* Reserved footnote/endnote IDs (separator and continuation-separator). The
|
|
96
|
+
* convention follows the ECMA-376 5th edition Part 1 §17.11.9 / §17.11.10
|
|
97
|
+
* examples that use `w:id="0"` / `w:id="1"` for the special footnote types.
|
|
98
|
+
*
|
|
99
|
+
* @conformance ECMA-376 edition 5, Part 1 § 17.11.14
|
|
96
100
|
*/
|
|
97
101
|
export const RESERVED_FOOTNOTE_IDS = {
|
|
98
102
|
/** Separator footnote */
|
package/dist/core-types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"core-types.js","sourceRoot":"","sources":["../src/core-types.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,gFAAgF;AAChF,0BAA0B;AAC1B,gFAAgF;AAEhF;;;;;;GAMG;AACH,MAAM,CAAN,IAAY,iBAeX;AAfD,WAAY,iBAAiB;IAC3B,gDAAgD;IAChD,wCAAmB,CAAA;IACnB,wCAAwC;IACxC,oCAAe,CAAA;IACf,yDAAyD;IACzD,wCAAmB,CAAA;IACnB,sDAAsD;IACtD,0CAAqB,CAAA;IACrB,4DAA4D;IAC5D,gDAA2B,CAAA;IAC3B,+DAA+D;IAC/D,0DAAqC,CAAA;IACrC,kDAAkD;IAClD,oDAA+B,CAAA;AACjC,CAAC,EAfW,iBAAiB,KAAjB,iBAAiB,QAe5B;AAuJD;;GAEG;AACH,MAAM,CAAC,MAAM,+BAA+B,GAA0B;IACpE,WAAW,EAAE,IAAI;IACjB,uBAAuB,EAAE,GAAG;IAC5B,oBAAoB,EAAE,CAAC;IACvB,mBAAmB,EAAE,IAAI;CAC1B,CAAC;AA8BF;;GAEG;AACH,MAAM,CAAC,MAAM,iCAAiC,GAA4B;IACxE,mBAAmB,EAAE,IAAI;CAC1B,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,2BAA2B,GAA2B;IACjE,KAAK,EAAE,MAAM;IACb,OAAO,EAAE,aAAa;IACtB,KAAK,EAAE,QAAQ;IACf,OAAO,EAAE,eAAe;IACxB,KAAK,EAAE,WAAW;IAClB,UAAU,EAAE,eAAe;IAC3B,WAAW,EAAE,qBAAqB;IAClC,MAAM,EAAE,UAAU;IAClB,QAAQ,EAAE,iBAAiB;IAC3B,UAAU,EAAE,MAAM;IAClB,SAAS,EAAE,OAAO;IAClB,aAAa,EAAE,WAAW;IAC1B,OAAO,EAAE,SAAS;IAClB,aAAa,EAAE,eAAe;IAC9B,QAAQ,EAAE,SAAS;IACnB,aAAa,EAAE,WAAW;IAC1B,UAAU,EAAE,QAAQ;IACpB,UAAU,EAAE,QAAQ;IACpB,WAAW,EAAE,SAAS;IACtB,WAAW,EAAE,SAAS;IACtB,UAAU,EAAE,QAAQ;IACpB,WAAW,EAAE,SAAS;IACtB,KAAK,EAAE,OAAO;IACd,QAAQ,EAAE,SAAS;IACnB,YAAY,EAAE,UAAU;CACzB,CAAC;AAkBF;;GAEG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAAwB;IAC5D,GAAG,+BAA+B;IAClC,GAAG,iCAAiC;IACpC,MAAM,EAAE,YAAY;IACpB,QAAQ,EAAE,IAAI,IAAI,EAAE;CACrB,CAAC;AA+CF,gFAAgF;AAChF,2BAA2B;AAC3B,gFAAgF;AAEhF
|
|
1
|
+
{"version":3,"file":"core-types.js","sourceRoot":"","sources":["../src/core-types.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,gFAAgF;AAChF,0BAA0B;AAC1B,gFAAgF;AAEhF;;;;;;GAMG;AACH,MAAM,CAAN,IAAY,iBAeX;AAfD,WAAY,iBAAiB;IAC3B,gDAAgD;IAChD,wCAAmB,CAAA;IACnB,wCAAwC;IACxC,oCAAe,CAAA;IACf,yDAAyD;IACzD,wCAAmB,CAAA;IACnB,sDAAsD;IACtD,0CAAqB,CAAA;IACrB,4DAA4D;IAC5D,gDAA2B,CAAA;IAC3B,+DAA+D;IAC/D,0DAAqC,CAAA;IACrC,kDAAkD;IAClD,oDAA+B,CAAA;AACjC,CAAC,EAfW,iBAAiB,KAAjB,iBAAiB,QAe5B;AAuJD;;GAEG;AACH,MAAM,CAAC,MAAM,+BAA+B,GAA0B;IACpE,WAAW,EAAE,IAAI;IACjB,uBAAuB,EAAE,GAAG;IAC5B,oBAAoB,EAAE,CAAC;IACvB,mBAAmB,EAAE,IAAI;CAC1B,CAAC;AA8BF;;GAEG;AACH,MAAM,CAAC,MAAM,iCAAiC,GAA4B;IACxE,mBAAmB,EAAE,IAAI;CAC1B,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,2BAA2B,GAA2B;IACjE,KAAK,EAAE,MAAM;IACb,OAAO,EAAE,aAAa;IACtB,KAAK,EAAE,QAAQ;IACf,OAAO,EAAE,eAAe;IACxB,KAAK,EAAE,WAAW;IAClB,UAAU,EAAE,eAAe;IAC3B,WAAW,EAAE,qBAAqB;IAClC,MAAM,EAAE,UAAU;IAClB,QAAQ,EAAE,iBAAiB;IAC3B,UAAU,EAAE,MAAM;IAClB,SAAS,EAAE,OAAO;IAClB,aAAa,EAAE,WAAW;IAC1B,OAAO,EAAE,SAAS;IAClB,aAAa,EAAE,eAAe;IAC9B,QAAQ,EAAE,SAAS;IACnB,aAAa,EAAE,WAAW;IAC1B,UAAU,EAAE,QAAQ;IACpB,UAAU,EAAE,QAAQ;IACpB,WAAW,EAAE,SAAS;IACtB,WAAW,EAAE,SAAS;IACtB,UAAU,EAAE,QAAQ;IACpB,WAAW,EAAE,SAAS;IACtB,KAAK,EAAE,OAAO;IACd,QAAQ,EAAE,SAAS;IACnB,YAAY,EAAE,UAAU;CACzB,CAAC;AAkBF;;GAEG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAAwB;IAC5D,GAAG,+BAA+B;IAClC,GAAG,iCAAiC;IACpC,MAAM,EAAE,YAAY;IACpB,QAAQ,EAAE,IAAI,IAAI,EAAE;CACrB,CAAC;AA+CF,gFAAgF;AAChF,2BAA2B;AAC3B,gFAAgF;AAEhF;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG;IACnC,yBAAyB;IACzB,SAAS,EAAE,GAAG;IACd,sCAAsC;IACtC,sBAAsB,EAAE,GAAG;CACnB,CAAC;AAcX,gFAAgF;AAChF,2BAA2B;AAC3B,gFAAgF;AAEhF;;GAEG;AACH,MAAM,CAAN,IAAY,uBAWX;AAXD,WAAY,uBAAuB;IACjC,wBAAwB;IACxB,kDAAuB,CAAA;IACvB,uBAAuB;IACvB,gDAAqB,CAAA;IACrB,iCAAiC;IACjC,gDAAqB,CAAA;IACrB,sCAAsC;IACtC,4CAAiB,CAAA;IACjB,6BAA6B;IAC7B,0DAA+B,CAAA;AACjC,CAAC,EAXW,uBAAuB,KAAvB,uBAAuB,QAWlC"}
|
package/dist/footnotes.d.ts
CHANGED
|
@@ -3,13 +3,15 @@
|
|
|
3
3
|
*
|
|
4
4
|
* Handles sequential footnote/endnote numbering by document order.
|
|
5
5
|
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
6
|
+
* `w:id` on `w:footnoteReference` is a reference identifier, NOT the display
|
|
7
|
+
* number. Display numbers are sequential based on document order.
|
|
8
8
|
*
|
|
9
9
|
* @example
|
|
10
10
|
* Document has 91 footnotes with XML IDs 2-92 (IDs 0, 1 are reserved):
|
|
11
11
|
* - Incorrect: Display as 2, 3, 4, ..., 92
|
|
12
12
|
* - Correct: Display as 1, 2, 3, ..., 91
|
|
13
|
+
*
|
|
14
|
+
* @conformance ECMA-376 edition 5, Part 1 § 17.11.14
|
|
13
15
|
*/
|
|
14
16
|
import { FootnoteReference, WmlElement } from './core-types.js';
|
|
15
17
|
/**
|
|
@@ -25,10 +27,13 @@ export declare function findReferencesInOrder(element: WmlElement, tagName: 'w:f
|
|
|
25
27
|
/**
|
|
26
28
|
* Check if a footnote/endnote ID is reserved.
|
|
27
29
|
*
|
|
28
|
-
* IDs 0 and 1 are reserved
|
|
30
|
+
* IDs 0 and 1 are treated as reserved, matching the special separator and
|
|
31
|
+
* continuation-separator footnote examples in ECMA-376 5th edition Part 1
|
|
32
|
+
* §17.11.9 / §17.11.10.
|
|
29
33
|
*
|
|
30
34
|
* @param xmlId - The XML ID to check
|
|
31
35
|
* @returns True if this is a reserved ID
|
|
36
|
+
* @conformance ECMA-376 edition 5, Part 1 § 17.11.14
|
|
32
37
|
*/
|
|
33
38
|
export declare function isReservedId(xmlId: string): boolean;
|
|
34
39
|
/**
|
package/dist/footnotes.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"footnotes.d.ts","sourceRoot":"","sources":["../src/footnotes.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"footnotes.d.ts","sourceRoot":"","sources":["../src/footnotes.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EACL,iBAAiB,EAEjB,UAAU,EACX,MAAM,iBAAiB,CAAC;AAOzB;;;;;;;;GAQG;AACH,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,UAAU,EACnB,OAAO,EAAE,qBAAqB,GAAG,oBAAoB,GACpD,UAAU,EAAE,CAcd;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAKnD;AAMD;;;;;;;;;GASG;AACH,qBAAa,wBAAwB;IACnC,OAAO,CAAC,yBAAyB,CAAkC;IACnE,OAAO,CAAC,wBAAwB,CAAkC;IAClE,OAAO,CAAC,mBAAmB,CAA0B;IACrD,OAAO,CAAC,kBAAkB,CAA0B;IAEpD;;;;OAIG;gBACS,YAAY,EAAE,UAAU;IAIpC;;OAEG;IACH,OAAO,CAAC,YAAY;IAwBpB;;OAEG;IACH,OAAO,CAAC,cAAc;IAmCtB;;;;;OAKG;IACH,wBAAwB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAI3D;;;;;OAKG;IACH,uBAAuB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAI1D;;;;;;;OAOG;IACH,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAOnD;;;;;OAKG;IACH,qBAAqB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO;IAI7C;;;;;OAKG;IACH,oBAAoB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO;IAI5C;;OAEG;IACH,gBAAgB,IAAI,MAAM;IAI1B;;OAEG;IACH,eAAe,IAAI,MAAM;IAIzB;;;;OAIG;IACH,qBAAqB,IAAI,iBAAiB,EAAE;IAwB5C;;;;OAIG;IACH,oBAAoB,IAAI,iBAAiB,EAAE;CAuB5C;AAMD;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAC9B,aAAa,EAAE,UAAU,EACzB,KAAK,EAAE,MAAM,GACZ,UAAU,GAAG,SAAS,CAYxB;AAED;;;;;;GAMG;AACH,wBAAgB,eAAe,CAC7B,YAAY,EAAE,UAAU,EACxB,KAAK,EAAE,MAAM,GACZ,UAAU,GAAG,SAAS,CAYxB;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,WAAW,EAAE,UAAU,GAAG,MAAM,CAiB/D"}
|
package/dist/footnotes.js
CHANGED
|
@@ -3,13 +3,15 @@
|
|
|
3
3
|
*
|
|
4
4
|
* Handles sequential footnote/endnote numbering by document order.
|
|
5
5
|
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
6
|
+
* `w:id` on `w:footnoteReference` is a reference identifier, NOT the display
|
|
7
|
+
* number. Display numbers are sequential based on document order.
|
|
8
8
|
*
|
|
9
9
|
* @example
|
|
10
10
|
* Document has 91 footnotes with XML IDs 2-92 (IDs 0, 1 are reserved):
|
|
11
11
|
* - Incorrect: Display as 2, 3, 4, ..., 92
|
|
12
12
|
* - Correct: Display as 1, 2, 3, ..., 91
|
|
13
|
+
*
|
|
14
|
+
* @conformance ECMA-376 edition 5, Part 1 § 17.11.14
|
|
13
15
|
*/
|
|
14
16
|
import { RESERVED_FOOTNOTE_IDS, } from './core-types.js';
|
|
15
17
|
import { childElements, getLeafText } from './primitives/index.js';
|
|
@@ -41,10 +43,13 @@ export function findReferencesInOrder(element, tagName) {
|
|
|
41
43
|
/**
|
|
42
44
|
* Check if a footnote/endnote ID is reserved.
|
|
43
45
|
*
|
|
44
|
-
* IDs 0 and 1 are reserved
|
|
46
|
+
* IDs 0 and 1 are treated as reserved, matching the special separator and
|
|
47
|
+
* continuation-separator footnote examples in ECMA-376 5th edition Part 1
|
|
48
|
+
* §17.11.9 / §17.11.10.
|
|
45
49
|
*
|
|
46
50
|
* @param xmlId - The XML ID to check
|
|
47
51
|
* @returns True if this is a reserved ID
|
|
52
|
+
* @conformance ECMA-376 edition 5, Part 1 § 17.11.14
|
|
48
53
|
*/
|
|
49
54
|
export function isReservedId(xmlId) {
|
|
50
55
|
return (xmlId === RESERVED_FOOTNOTE_IDS.SEPARATOR ||
|
package/dist/footnotes.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"footnotes.js","sourceRoot":"","sources":["../src/footnotes.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"footnotes.js","sourceRoot":"","sources":["../src/footnotes.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -6,156 +6,8 @@
|
|
|
6
6
|
* - Baseline B: Pure TypeScript (diff-match-patch + OOXML renderer) - paragraph level (dev-only)
|
|
7
7
|
* - Atomizer: Pure TypeScript with atom-level comparison, move detection, format detection
|
|
8
8
|
*/
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
author?: string;
|
|
12
|
-
/**
|
|
13
|
-
* Revision timestamp used for generated track changes (`w:date`).
|
|
14
|
-
* Default: current time.
|
|
15
|
-
*/
|
|
16
|
-
date?: Date;
|
|
17
|
-
/** Ignore formatting differences. Default: true (v1) */
|
|
18
|
-
ignoreFormatting?: boolean;
|
|
19
|
-
/**
|
|
20
|
-
* Atomizer-only normalization: merge adjacent <w:r> siblings with identical formatting
|
|
21
|
-
* prior to comparison. This can reduce overly-granular diffs for heavily-fragmented docs.
|
|
22
|
-
*
|
|
23
|
-
* Default: true.
|
|
24
|
-
*/
|
|
25
|
-
premergeRuns?: boolean;
|
|
26
|
-
/**
|
|
27
|
-
* How to reconstruct the output DOCX when using the atomizer engine:
|
|
28
|
-
* - 'rebuild': rebuild document.xml from scratch (more reject/accept stable)
|
|
29
|
-
* - 'inplace': modify the revised document AST in place (more experimental)
|
|
30
|
-
*
|
|
31
|
-
* Default: 'rebuild'
|
|
32
|
-
*/
|
|
33
|
-
reconstructionMode?: ReconstructionMode;
|
|
34
|
-
/**
|
|
35
|
-
* Comparison engine to use:
|
|
36
|
-
* - 'atomizer': Character-level comparison with move detection (recommended)
|
|
37
|
-
* - 'wmlcomparer': .NET WmlComparer (requires external runtime)
|
|
38
|
-
* - 'auto': Automatically select best available engine (currently 'atomizer')
|
|
39
|
-
*
|
|
40
|
-
* Default: 'auto'
|
|
41
|
-
*/
|
|
42
|
-
engine?: 'wmlcomparer' | 'atomizer' | 'auto';
|
|
43
|
-
}
|
|
44
|
-
export interface CompareStats {
|
|
45
|
-
insertions: number;
|
|
46
|
-
deletions: number;
|
|
47
|
-
modifications: number;
|
|
48
|
-
}
|
|
49
|
-
export type ReconstructionMode = 'rebuild' | 'inplace';
|
|
50
|
-
export type ReconstructionFallbackReason = 'round_trip_safety_check_failed';
|
|
51
|
-
export type ReconstructionSafetyCheckName = 'acceptText' | 'rejectText' | 'acceptBookmarks' | 'rejectBookmarks' | 'fieldStructure';
|
|
52
|
-
export interface ReconstructionSafetyChecks {
|
|
53
|
-
acceptText: boolean;
|
|
54
|
-
rejectText: boolean;
|
|
55
|
-
acceptBookmarks: boolean;
|
|
56
|
-
rejectBookmarks: boolean;
|
|
57
|
-
fieldStructure: boolean;
|
|
58
|
-
}
|
|
59
|
-
export interface ReconstructionTextMismatchDetails {
|
|
60
|
-
expectedLength: number;
|
|
61
|
-
actualLength: number;
|
|
62
|
-
firstDifferingParagraphIndex: number;
|
|
63
|
-
expectedParagraph: string;
|
|
64
|
-
actualParagraph: string;
|
|
65
|
-
differenceSample: string[];
|
|
66
|
-
}
|
|
67
|
-
export interface ReconstructionIdDelta {
|
|
68
|
-
missing: string[];
|
|
69
|
-
unexpected: string[];
|
|
70
|
-
}
|
|
71
|
-
export interface ReconstructionBookmarkMismatchDetails {
|
|
72
|
-
startNames: ReconstructionIdDelta;
|
|
73
|
-
referencedBookmarkNames: ReconstructionIdDelta;
|
|
74
|
-
unresolvedReferenceNames: ReconstructionIdDelta;
|
|
75
|
-
startIds: ReconstructionIdDelta;
|
|
76
|
-
endIds: ReconstructionIdDelta;
|
|
77
|
-
expectedDuplicateStartNames: string[];
|
|
78
|
-
actualDuplicateStartNames: string[];
|
|
79
|
-
expectedDuplicateStartIds: string[];
|
|
80
|
-
actualDuplicateStartIds: string[];
|
|
81
|
-
expectedDuplicateEndIds: string[];
|
|
82
|
-
actualDuplicateEndIds: string[];
|
|
83
|
-
expectedUnmatchedStartIds: string[];
|
|
84
|
-
actualUnmatchedStartIds: string[];
|
|
85
|
-
expectedUnmatchedEndIds: string[];
|
|
86
|
-
actualUnmatchedEndIds: string[];
|
|
87
|
-
}
|
|
88
|
-
export interface ReconstructionSafetyFailureDetails {
|
|
89
|
-
acceptText?: ReconstructionTextMismatchDetails;
|
|
90
|
-
rejectText?: ReconstructionTextMismatchDetails;
|
|
91
|
-
acceptBookmarks?: ReconstructionBookmarkMismatchDetails;
|
|
92
|
-
rejectBookmarks?: ReconstructionBookmarkMismatchDetails;
|
|
93
|
-
}
|
|
94
|
-
export interface ReconstructionIdDeltaSummary {
|
|
95
|
-
missingCount: number;
|
|
96
|
-
unexpectedCount: number;
|
|
97
|
-
firstMissing?: string;
|
|
98
|
-
firstUnexpected?: string;
|
|
99
|
-
}
|
|
100
|
-
export interface ReconstructionTextMismatchSummary {
|
|
101
|
-
firstDifferingParagraphIndex: number;
|
|
102
|
-
expectedParagraph: string;
|
|
103
|
-
actualParagraph: string;
|
|
104
|
-
firstDifference: string;
|
|
105
|
-
}
|
|
106
|
-
export interface ReconstructionBookmarkMismatchSummary {
|
|
107
|
-
startNames: ReconstructionIdDeltaSummary;
|
|
108
|
-
referencedBookmarkNames: ReconstructionIdDeltaSummary;
|
|
109
|
-
unresolvedReferenceNames: ReconstructionIdDeltaSummary;
|
|
110
|
-
startIds: ReconstructionIdDeltaSummary;
|
|
111
|
-
endIds: ReconstructionIdDeltaSummary;
|
|
112
|
-
unmatchedStartCount: number;
|
|
113
|
-
unmatchedEndCount: number;
|
|
114
|
-
firstUnmatchedStartId?: string;
|
|
115
|
-
firstUnmatchedEndId?: string;
|
|
116
|
-
}
|
|
117
|
-
export interface ReconstructionSafetyFailureSummary {
|
|
118
|
-
acceptText?: ReconstructionTextMismatchSummary;
|
|
119
|
-
rejectText?: ReconstructionTextMismatchSummary;
|
|
120
|
-
acceptBookmarks?: ReconstructionBookmarkMismatchSummary;
|
|
121
|
-
rejectBookmarks?: ReconstructionBookmarkMismatchSummary;
|
|
122
|
-
}
|
|
123
|
-
export interface ReconstructionAttemptDiagnostics {
|
|
124
|
-
pass: 'inplace_word_split' | 'inplace_run_level' | 'inplace_word_split_cross_run' | 'inplace_run_level_cross_run';
|
|
125
|
-
checks: ReconstructionSafetyChecks;
|
|
126
|
-
failedChecks: ReconstructionSafetyCheckName[];
|
|
127
|
-
failureDetails?: ReconstructionSafetyFailureDetails;
|
|
128
|
-
firstDiffSummary?: ReconstructionSafetyFailureSummary;
|
|
129
|
-
}
|
|
130
|
-
export interface ReconstructionFallbackDiagnostics {
|
|
131
|
-
attempts: ReconstructionAttemptDiagnostics[];
|
|
132
|
-
}
|
|
133
|
-
export interface CompareResult {
|
|
134
|
-
/** The resulting DOCX with track changes */
|
|
135
|
-
document: Buffer;
|
|
136
|
-
/** Statistics about the comparison */
|
|
137
|
-
stats: CompareStats;
|
|
138
|
-
/** Which engine was used */
|
|
139
|
-
engine: 'wmlcomparer' | 'atomizer';
|
|
140
|
-
/**
|
|
141
|
-
* Requested reconstruction mode. Present for atomizer outputs.
|
|
142
|
-
*/
|
|
143
|
-
reconstructionModeRequested?: ReconstructionMode;
|
|
144
|
-
/**
|
|
145
|
-
* Actual reconstruction mode used to produce the output. Present for atomizer outputs.
|
|
146
|
-
*/
|
|
147
|
-
reconstructionModeUsed?: ReconstructionMode;
|
|
148
|
-
/**
|
|
149
|
-
* Why the requested reconstruction mode could not be used.
|
|
150
|
-
* Present only when atomizer falls back.
|
|
151
|
-
*/
|
|
152
|
-
fallbackReason?: ReconstructionFallbackReason;
|
|
153
|
-
/**
|
|
154
|
-
* Detailed safety-check diagnostics for fallback decisions.
|
|
155
|
-
* Present only when atomizer falls back.
|
|
156
|
-
*/
|
|
157
|
-
fallbackDiagnostics?: ReconstructionFallbackDiagnostics;
|
|
158
|
-
}
|
|
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';
|
|
159
11
|
/**
|
|
160
12
|
* Compare two DOCX documents and produce a document with track changes.
|
|
161
13
|
*
|
|
@@ -171,7 +23,11 @@ export * from './core-types.js';
|
|
|
171
23
|
export * from './atomizer.js';
|
|
172
24
|
export * from './move-detection.js';
|
|
173
25
|
export * from './format-detection.js';
|
|
26
|
+
export * from './baselines/atomizer/formattingFidelity.js';
|
|
174
27
|
export * from './numbering.js';
|
|
175
28
|
export * from './footnotes.js';
|
|
176
29
|
export * from './primitives/index.js';
|
|
30
|
+
export { allocateRevisionId, buildPPrChangeElement, buildTcPrChangeElement, buildTrPrChangeElement, buildRPrChangeElement, createRevisionContainer, createRevisionContext, createRevisionIdState, escapeXmlAttr, formatDate, prepareElementForDeletion, wrapElementWithDel, wrapElementWithIns, } from './primitives/track-changes-emitter.js';
|
|
31
|
+
export type { RevisionContext, RevisionContextOptions, RevisionIdState, } from './primitives/track-changes-emitter.js';
|
|
32
|
+
export { resolveSoffice, runLibreOfficeOracle, type OracleJob } from './integration/libreoffice-oracle.js';
|
|
177
33
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAExE,YAAY,EACV,cAAc,EACd,aAAa,EACb,YAAY,EACZ,gCAAgC,EAChC,qCAAqC,EACrC,qCAAqC,EACrC,iCAAiC,EACjC,4BAA4B,EAC5B,qBAAqB,EACrB,4BAA4B,EAC5B,kBAAkB,EAClB,6BAA6B,EAC7B,0BAA0B,EAC1B,kCAAkC,EAClC,kCAAkC,EAClC,iCAAiC,EACjC,iCAAiC,GAClC,MAAM,oBAAoB,CAAC;AAE5B;;;;;;;GAOG;AACH,wBAAsB,gBAAgB,CACpC,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,EACf,OAAO,GAAE,cAAmB,GAC3B,OAAO,CAAC,aAAa,CAAC,CA0BxB;AAGD,cAAc,8BAA8B,CAAC;AAC7C,cAAc,yBAAyB,CAAC;AAGxC,cAAc,iBAAiB,CAAC;AAGhC,cAAc,eAAe,CAAC;AAG9B,cAAc,qBAAqB,CAAC;AAGpC,cAAc,uBAAuB,CAAC;AAGtC,cAAc,4CAA4C,CAAC;AAG3D,cAAc,gBAAgB,CAAC;AAG/B,cAAc,gBAAgB,CAAC;AAG/B,cAAc,uBAAuB,CAAC;AACtC,OAAO,EACL,kBAAkB,EAClB,qBAAqB,EACrB,sBAAsB,EACtB,sBAAsB,EACtB,qBAAqB,EACrB,uBAAuB,EACvB,qBAAqB,EACrB,qBAAqB,EACrB,aAAa,EACb,UAAU,EACV,yBAAyB,EACzB,kBAAkB,EAClB,kBAAkB,GACnB,MAAM,uCAAuC,CAAC;AAC/C,YAAY,EACV,eAAe,EACf,sBAAsB,EACtB,eAAe,GAChB,MAAM,uCAAuC,CAAC;AAI/C,OAAO,EAAE,cAAc,EAAE,oBAAoB,EAAE,KAAK,SAAS,EAAE,MAAM,qCAAqC,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -46,10 +46,16 @@ export * from './atomizer.js';
|
|
|
46
46
|
export * from './move-detection.js';
|
|
47
47
|
// Re-export format detection
|
|
48
48
|
export * from './format-detection.js';
|
|
49
|
+
// Re-export the formatting-fidelity comparison check
|
|
50
|
+
export * from './baselines/atomizer/formattingFidelity.js';
|
|
49
51
|
// Re-export numbering utilities
|
|
50
52
|
export * from './numbering.js';
|
|
51
53
|
// Re-export footnote utilities
|
|
52
54
|
export * from './footnotes.js';
|
|
53
55
|
// Re-export primitives (editing, DOM helpers, document operations)
|
|
54
56
|
export * from './primitives/index.js';
|
|
57
|
+
export { allocateRevisionId, buildPPrChangeElement, buildTcPrChangeElement, buildTrPrChangeElement, buildRPrChangeElement, createRevisionContainer, createRevisionContext, createRevisionIdState, escapeXmlAttr, formatDate, prepareElementForDeletion, wrapElementWithDel, wrapElementWithIns, } from './primitives/track-changes-emitter.js';
|
|
58
|
+
// Re-export the LibreOffice accept/reject oracle (gated reference voter; callers skip when
|
|
59
|
+
// `resolveSoffice()` is null). odf-core's round-trip tests drive it with `.odt` jobs.
|
|
60
|
+
export { resolveSoffice, runLibreOfficeOracle } from './integration/libreoffice-oracle.js';
|
|
55
61
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,wBAAwB,EAAE,MAAM,kCAAkC,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,wBAAwB,EAAE,MAAM,kCAAkC,CAAC;AAuB5E;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,QAAgB,EAChB,OAAe,EACf,UAA0B,EAAE;IAE5B,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,kBAAkB,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC;IAEpF,+CAA+C;IAC/C,IAAK,MAAiB,KAAK,WAAW,EAAE,CAAC;QACvC,MAAM,IAAI,KAAK,CACb,+DAA+D;YAC/D,iDAAiD,CAClD,CAAC;IACJ,CAAC;IAED,sEAAsE;IACtE,IAAI,MAAM,KAAK,UAAU,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;QAC/C,OAAO,wBAAwB,CAAC,QAAQ,EAAE,OAAO,EAAE;YACjD,MAAM;YACN,IAAI;YACJ,kBAAkB;YAClB,YAAY;SACb,CAAC,CAAC;IACL,CAAC;IAED,6DAA6D;IAC7D,MAAM,IAAI,KAAK,CACb,kEAAkE;QAClE,2DAA2D,CAC5D,CAAC;AACJ,CAAC;AAED,6BAA6B;AAC7B,cAAc,8BAA8B,CAAC;AAC7C,cAAc,yBAAyB,CAAC;AAExC,mCAAmC;AACnC,cAAc,iBAAiB,CAAC;AAEhC,+BAA+B;AAC/B,cAAc,eAAe,CAAC;AAE9B,2BAA2B;AAC3B,cAAc,qBAAqB,CAAC;AAEpC,6BAA6B;AAC7B,cAAc,uBAAuB,CAAC;AAEtC,qDAAqD;AACrD,cAAc,4CAA4C,CAAC;AAE3D,gCAAgC;AAChC,cAAc,gBAAgB,CAAC;AAE/B,+BAA+B;AAC/B,cAAc,gBAAgB,CAAC;AAE/B,mEAAmE;AACnE,cAAc,uBAAuB,CAAC;AACtC,OAAO,EACL,kBAAkB,EAClB,qBAAqB,EACrB,sBAAsB,EACtB,sBAAsB,EACtB,qBAAqB,EACrB,uBAAuB,EACvB,qBAAqB,EACrB,qBAAqB,EACrB,aAAa,EACb,UAAU,EACV,yBAAyB,EACzB,kBAAkB,EAClB,kBAAkB,GACnB,MAAM,uCAAuC,CAAC;AAO/C,2FAA2F;AAC3F,sFAAsF;AACtF,OAAO,EAAE,cAAc,EAAE,oBAAoB,EAAkB,MAAM,qCAAqC,CAAC"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
/** Resolve a LibreOffice binary, or null if none is available (callers skip the oracle). */
|
|
2
|
+
export declare function resolveSoffice(): string | null;
|
|
3
|
+
/** Pack a bare `word/document.xml` string into a minimal valid .docx package. */
|
|
4
|
+
export declare function packMinimalDocx(documentXml: string): Promise<Buffer>;
|
|
5
|
+
/** Read `word/document.xml` back out of a .docx package. */
|
|
6
|
+
export declare function extractDocumentXml(docx: Buffer): Promise<string>;
|
|
7
|
+
/**
|
|
8
|
+
* `accept` / `reject` dispatch the corresponding resolve-all command before saving — the oracle's
|
|
9
|
+
* normal voting mode. `identity` loads and saves WITHOUT any dispatch, so unresolved tracked
|
|
10
|
+
* changes flow through LibreOffice's import/export: it exists to characterize the oracle's
|
|
11
|
+
* trust boundary (LibreOffice's save round-trip mangles some unresolved revision shapes — see
|
|
12
|
+
* libreoffice-oracle-trust-boundary.test.ts), NOT to vote on engine behavior.
|
|
13
|
+
*
|
|
14
|
+
* DOCX jobs carry a bare `word/document.xml` (packed into a minimal package and read back out);
|
|
15
|
+
* ODT jobs carry a complete `.odt` package buffer (ODF packaging — mimetype-first STORED — is
|
|
16
|
+
* the caller's concern) and return its post-op `content.xml`.
|
|
17
|
+
*/
|
|
18
|
+
type OracleOp = 'accept' | 'reject' | 'identity';
|
|
19
|
+
export type OracleJob = {
|
|
20
|
+
op: OracleOp;
|
|
21
|
+
documentXml: string;
|
|
22
|
+
} | {
|
|
23
|
+
op: OracleOp;
|
|
24
|
+
odt: Buffer;
|
|
25
|
+
};
|
|
26
|
+
/**
|
|
27
|
+
* Run LibreOffice over a batch of jobs in ONE headless launch and return each job's resulting
|
|
28
|
+
* main XML part — `word/document.xml` for DOCX jobs, `content.xml` for ODT jobs. Throws if the
|
|
29
|
+
* binary is missing or the macro did not run.
|
|
30
|
+
*/
|
|
31
|
+
export declare function runLibreOfficeOracle(jobs: OracleJob[], soffice?: string | null): Promise<string[]>;
|
|
32
|
+
/**
|
|
33
|
+
* Structural projection of a `word/document.xml`: one entry per top-level body paragraph,
|
|
34
|
+
* recording whether it carries visible text (a non-whitespace `w:t` descendant). This captures
|
|
35
|
+
* the paragraph-collapse claim the oracle is authoritative for — how many paragraphs survive and
|
|
36
|
+
* which collapsed to empty — without depending on revision-markup or formatting details (which
|
|
37
|
+
* LibreOffice rewrites). `[]`-length is the paragraph count.
|
|
38
|
+
*/
|
|
39
|
+
export declare function paragraphShape(documentXml: string): boolean[];
|
|
40
|
+
export {};
|
|
41
|
+
//# sourceMappingURL=libreoffice-oracle.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"libreoffice-oracle.d.ts","sourceRoot":"","sources":["../../src/integration/libreoffice-oracle.ts"],"names":[],"mappings":"AAoEA,4FAA4F;AAC5F,wBAAgB,cAAc,IAAI,MAAM,GAAG,IAAI,CAU9C;AAeD,iFAAiF;AACjF,wBAAsB,eAAe,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAO1E;AAED,4DAA4D;AAC5D,wBAAsB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAItE;AA+DD;;;;;;;;;;GAUG;AACH,KAAK,QAAQ,GAAG,QAAQ,GAAG,QAAQ,GAAG,UAAU,CAAC;AACjD,MAAM,MAAM,SAAS,GAAG;IAAE,EAAE,EAAE,QAAQ,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,QAAQ,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,CAAC;AAM9F;;;;GAIG;AACH,wBAAsB,oBAAoB,CAAC,IAAI,EAAE,SAAS,EAAE,EAAE,OAAO,gBAAmB,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAoF3G;AAED;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,EAAE,CAkB7D"}
|