docxodus 3.1.4 → 3.2.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 CHANGED
@@ -174,12 +174,40 @@ Compare documents and return the result as HTML.
174
174
  Extract revision information from a compared document.
175
175
 
176
176
  ```typescript
177
+ import { getRevisions, RevisionType, isInsertion, isDeletion } from 'docxodus';
178
+ import type { Revision } from 'docxodus';
179
+
180
+ // RevisionType enum - the only two types returned by the comparison engine
181
+ enum RevisionType {
182
+ Inserted = "Inserted", // Text or content that was added
183
+ Deleted = "Deleted", // Text or content that was removed
184
+ }
185
+
186
+ // Revision interface with full documentation
177
187
  interface Revision {
188
+ /** Author who made the revision (may be empty string if not specified) */
178
189
  author: string;
190
+ /** ISO 8601 date string (e.g., "2024-01-15T10:30:00Z"), may be empty */
179
191
  date: string;
180
- revisionType: string; // "Insertion", "Deletion", etc.
192
+ /** Type of revision - "Inserted" or "Deleted" */
193
+ revisionType: RevisionType | string;
194
+ /** Text content (newline for paragraph breaks, empty for images/equations) */
181
195
  text: string;
182
196
  }
197
+
198
+ // Helper functions for type-safe filtering
199
+ const revisions = await getRevisions(comparedDoc);
200
+ const insertions = revisions.filter(isInsertion);
201
+ const deletions = revisions.filter(isDeletion);
202
+
203
+ // Or use the enum directly
204
+ revisions.forEach(rev => {
205
+ if (rev.revisionType === RevisionType.Inserted) {
206
+ console.log(`${rev.author} added: "${rev.text}"`);
207
+ } else if (rev.revisionType === RevisionType.Deleted) {
208
+ console.log(`${rev.author} removed: "${rev.text}"`);
209
+ }
210
+ });
183
211
  ```
184
212
 
185
213
  ### React Hooks
package/dist/index.d.ts CHANGED
@@ -1,7 +1,7 @@
1
- import type { ConversionOptions, CompareOptions, Revision, VersionInfo, ErrorResponse, CompareResult } from "./types.js";
2
- import { CommentRenderMode } from "./types.js";
3
- export type { ConversionOptions, CompareOptions, Revision, VersionInfo, ErrorResponse, CompareResult, };
4
- export { CommentRenderMode };
1
+ import type { ConversionOptions, CompareOptions, Revision, VersionInfo, ErrorResponse, CompareResult, GetRevisionsOptions } from "./types.js";
2
+ import { CommentRenderMode, RevisionType, isInsertion, isDeletion, isMove, isMoveSource, isMoveDestination, findMovePair } from "./types.js";
3
+ export type { ConversionOptions, CompareOptions, Revision, VersionInfo, ErrorResponse, CompareResult, GetRevisionsOptions, };
4
+ export { CommentRenderMode, RevisionType, isInsertion, isDeletion, isMove, isMoveSource, isMoveDestination, findMovePair, };
5
5
  /**
6
6
  * Current base path for WASM files.
7
7
  * Empty string means auto-detect from module URL.
@@ -59,10 +59,28 @@ export declare function compareDocumentsToHtml(original: File | Uint8Array, modi
59
59
  * Get revisions from a compared document.
60
60
  *
61
61
  * @param document - A document that has been through comparison (has tracked changes)
62
+ * @param options - Optional move detection configuration
62
63
  * @returns Array of revisions
63
64
  * @throws Error if operation fails
65
+ *
66
+ * @example
67
+ * ```typescript
68
+ * // Default settings (move detection enabled, 80% threshold)
69
+ * const revisions = await getRevisions(comparedDoc);
70
+ *
71
+ * // Custom move detection settings
72
+ * const revisions = await getRevisions(comparedDoc, {
73
+ * detectMoves: true,
74
+ * moveSimilarityThreshold: 0.9, // Require 90% word overlap
75
+ * moveMinimumWordCount: 5, // Only consider phrases of 5+ words
76
+ * caseInsensitive: true // Ignore case when matching
77
+ * });
78
+ *
79
+ * // Disable move detection entirely
80
+ * const revisions = await getRevisions(comparedDoc, { detectMoves: false });
81
+ * ```
64
82
  */
65
- export declare function getRevisions(document: File | Uint8Array): Promise<Revision[]>;
83
+ export declare function getRevisions(document: File | Uint8Array, options?: GetRevisionsOptions): Promise<Revision[]>;
66
84
  /**
67
85
  * Get version information about the library.
68
86
  */
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,iBAAiB,EACjB,cAAc,EACd,QAAQ,EACR,WAAW,EACX,aAAa,EACb,aAAa,EAEd,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAE/C,YAAY,EACV,iBAAiB,EACjB,cAAc,EACd,QAAQ,EACR,WAAW,EACX,aAAa,EACb,aAAa,GACd,CAAC;AAEF,OAAO,EAAE,iBAAiB,EAAE,CAAC;AA2B7B;;;GAGG;AACH,eAAO,IAAI,YAAY,QAAK,CAAC;AAE7B;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAElD;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,UAAU,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAajE;AA8FD;;;;;;;GAOG;AACH,wBAAsB,iBAAiB,CACrC,QAAQ,EAAE,IAAI,GAAG,UAAU,EAC3B,OAAO,CAAC,EAAE,iBAAiB,GAC1B,OAAO,CAAC,MAAM,CAAC,CAsBjB;AAED;;;;;;;;GAQG;AACH,wBAAsB,gBAAgB,CACpC,QAAQ,EAAE,IAAI,GAAG,UAAU,EAC3B,QAAQ,EAAE,IAAI,GAAG,UAAU,EAC3B,OAAO,CAAC,EAAE,cAAc,GACvB,OAAO,CAAC,UAAU,CAAC,CA4BrB;AAED;;;;;;;;GAQG;AACH,wBAAsB,sBAAsB,CAC1C,QAAQ,EAAE,IAAI,GAAG,UAAU,EAC3B,QAAQ,EAAE,IAAI,GAAG,UAAU,EAC3B,OAAO,CAAC,EAAE,cAAc,GACvB,OAAO,CAAC,MAAM,CAAC,CAqBjB;AAED;;;;;;GAMG;AACH,wBAAsB,YAAY,CAChC,QAAQ,EAAE,IAAI,GAAG,UAAU,GAC1B,OAAO,CAAC,QAAQ,EAAE,CAAC,CAkBrB;AAED;;GAEG;AACH,wBAAgB,UAAU,IAAI,WAAW,CASxC;AAED;;GAEG;AACH,wBAAgB,aAAa,IAAI,OAAO,CAEvC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,iBAAiB,EACjB,cAAc,EACd,QAAQ,EACR,WAAW,EACX,aAAa,EACb,aAAa,EAEb,mBAAmB,EACpB,MAAM,YAAY,CAAC;AAEpB,OAAO,EACL,iBAAiB,EACjB,YAAY,EACZ,WAAW,EACX,UAAU,EACV,MAAM,EACN,YAAY,EACZ,iBAAiB,EACjB,YAAY,EACb,MAAM,YAAY,CAAC;AAEpB,YAAY,EACV,iBAAiB,EACjB,cAAc,EACd,QAAQ,EACR,WAAW,EACX,aAAa,EACb,aAAa,EACb,mBAAmB,GACpB,CAAC;AAEF,OAAO,EACL,iBAAiB,EACjB,YAAY,EACZ,WAAW,EACX,UAAU,EACV,MAAM,EACN,YAAY,EACZ,iBAAiB,EACjB,YAAY,GACb,CAAC;AA2BF;;;GAGG;AACH,eAAO,IAAI,YAAY,QAAK,CAAC;AAE7B;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAElD;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,UAAU,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAajE;AA8FD;;;;;;;GAOG;AACH,wBAAsB,iBAAiB,CACrC,QAAQ,EAAE,IAAI,GAAG,UAAU,EAC3B,OAAO,CAAC,EAAE,iBAAiB,GAC1B,OAAO,CAAC,MAAM,CAAC,CAsBjB;AAED;;;;;;;;GAQG;AACH,wBAAsB,gBAAgB,CACpC,QAAQ,EAAE,IAAI,GAAG,UAAU,EAC3B,QAAQ,EAAE,IAAI,GAAG,UAAU,EAC3B,OAAO,CAAC,EAAE,cAAc,GACvB,OAAO,CAAC,UAAU,CAAC,CA4BrB;AAED;;;;;;;;GAQG;AACH,wBAAsB,sBAAsB,CAC1C,QAAQ,EAAE,IAAI,GAAG,UAAU,EAC3B,QAAQ,EAAE,IAAI,GAAG,UAAU,EAC3B,OAAO,CAAC,EAAE,cAAc,GACvB,OAAO,CAAC,MAAM,CAAC,CAqBjB;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAsB,YAAY,CAChC,QAAQ,EAAE,IAAI,GAAG,UAAU,EAC3B,OAAO,CAAC,EAAE,mBAAmB,GAC5B,OAAO,CAAC,QAAQ,EAAE,CAAC,CAgCrB;AAED;;GAEG;AACH,wBAAgB,UAAU,IAAI,WAAW,CASxC;AAED;;GAEG;AACH,wBAAgB,aAAa,IAAI,OAAO,CAEvC"}
package/dist/index.js CHANGED
@@ -1,5 +1,5 @@
1
- import { CommentRenderMode } from "./types.js";
2
- export { CommentRenderMode };
1
+ import { CommentRenderMode, RevisionType, isInsertion, isDeletion, isMove, isMoveSource, isMoveDestination, findMovePair, } from "./types.js";
2
+ export { CommentRenderMode, RevisionType, isInsertion, isDeletion, isMove, isMoveSource, isMoveDestination, findMovePair, };
3
3
  let wasmExports = null;
4
4
  let initPromise = null;
5
5
  /**
@@ -208,13 +208,36 @@ export async function compareDocumentsToHtml(original, modified, options) {
208
208
  * Get revisions from a compared document.
209
209
  *
210
210
  * @param document - A document that has been through comparison (has tracked changes)
211
+ * @param options - Optional move detection configuration
211
212
  * @returns Array of revisions
212
213
  * @throws Error if operation fails
214
+ *
215
+ * @example
216
+ * ```typescript
217
+ * // Default settings (move detection enabled, 80% threshold)
218
+ * const revisions = await getRevisions(comparedDoc);
219
+ *
220
+ * // Custom move detection settings
221
+ * const revisions = await getRevisions(comparedDoc, {
222
+ * detectMoves: true,
223
+ * moveSimilarityThreshold: 0.9, // Require 90% word overlap
224
+ * moveMinimumWordCount: 5, // Only consider phrases of 5+ words
225
+ * caseInsensitive: true // Ignore case when matching
226
+ * });
227
+ *
228
+ * // Disable move detection entirely
229
+ * const revisions = await getRevisions(comparedDoc, { detectMoves: false });
230
+ * ```
213
231
  */
214
- export async function getRevisions(document) {
232
+ export async function getRevisions(document, options) {
215
233
  const exports = ensureInitialized();
216
234
  const bytes = await toBytes(document);
217
- const result = exports.DocumentComparer.GetRevisionsJson(bytes);
235
+ // Apply defaults for move detection options
236
+ const detectMoves = options?.detectMoves ?? true;
237
+ const moveSimilarityThreshold = options?.moveSimilarityThreshold ?? 0.8;
238
+ const moveMinimumWordCount = options?.moveMinimumWordCount ?? 3;
239
+ const caseInsensitive = options?.caseInsensitive ?? false;
240
+ const result = exports.DocumentComparer.GetRevisionsJsonWithOptions(bytes, detectMoves, moveSimilarityThreshold, moveMinimumWordCount, caseInsensitive);
218
241
  if (isErrorResponse(result)) {
219
242
  const error = parseError(result);
220
243
  throw new Error(`Failed to get revisions: ${error.error}`);
@@ -225,6 +248,8 @@ export async function getRevisions(document) {
225
248
  date: r.Date || r.date,
226
249
  revisionType: r.RevisionType || r.revisionType,
227
250
  text: r.Text || r.text,
251
+ moveGroupId: r.MoveGroupId ?? r.moveGroupId,
252
+ isMoveSource: r.IsMoveSource ?? r.isMoveSource,
228
253
  }));
229
254
  }
230
255
  /**
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/types.d.ts CHANGED
@@ -1,3 +1,14 @@
1
+ /**
2
+ * Revision type enum matching the .NET WmlComparerRevisionType
3
+ */
4
+ export declare enum RevisionType {
5
+ /** Text or content that was added/inserted */
6
+ Inserted = "Inserted",
7
+ /** Text or content that was removed/deleted */
8
+ Deleted = "Deleted",
9
+ /** Text or content that was relocated within the document */
10
+ Moved = "Moved"
11
+ }
1
12
  /**
2
13
  * Comment render mode
3
14
  * Use -1 (Disabled) to not render comments, or a positive value to enable with that mode
@@ -47,18 +58,133 @@ export interface CompareOptions {
47
58
  renderTrackedChanges?: boolean;
48
59
  }
49
60
  /**
50
- * Information about a document revision
61
+ * Information about a document revision extracted from a compared document.
62
+ *
63
+ * @example
64
+ * ```typescript
65
+ * const revisions = await getRevisions(comparedDoc);
66
+ * for (const rev of revisions) {
67
+ * if (rev.revisionType === RevisionType.Inserted) {
68
+ * console.log(`${rev.author} added: "${rev.text}"`);
69
+ * } else if (rev.revisionType === RevisionType.Deleted) {
70
+ * console.log(`${rev.author} removed: "${rev.text}"`);
71
+ * }
72
+ * }
73
+ * ```
51
74
  */
52
75
  export interface Revision {
53
- /** Author who made the revision */
76
+ /**
77
+ * Author who made the revision.
78
+ * This comes from the Word document's tracked changes author attribute.
79
+ * May be empty string if the document doesn't specify an author.
80
+ */
54
81
  author: string;
55
- /** ISO date string of the revision */
82
+ /**
83
+ * ISO 8601 date string when the revision was made.
84
+ * Format: "YYYY-MM-DDTHH:mm:ssZ" (e.g., "2024-01-15T10:30:00Z")
85
+ * May be empty string if the document doesn't specify a date.
86
+ */
56
87
  date: string;
57
- /** Type of revision: "Insertion", "Deletion", etc. */
58
- revisionType: string;
59
- /** Text content of the revision */
88
+ /**
89
+ * Type of revision - "Inserted", "Deleted", or "Moved".
90
+ * Use the RevisionType enum for type-safe comparisons.
91
+ */
92
+ revisionType: RevisionType | string;
93
+ /**
94
+ * Text content of the revision.
95
+ * For paragraph breaks, this will be a newline character.
96
+ * May be empty string for non-text elements (e.g., images, math equations).
97
+ */
60
98
  text: string;
99
+ /**
100
+ * For Moved revisions, this ID links the source and destination.
101
+ * Both the "from" and "to" revisions share the same moveGroupId.
102
+ * Undefined for non-move revisions.
103
+ */
104
+ moveGroupId?: number;
105
+ /**
106
+ * For Moved revisions: true = source (content moved FROM here),
107
+ * false = destination (content moved TO here).
108
+ * Undefined for non-move revisions.
109
+ */
110
+ isMoveSource?: boolean;
61
111
  }
112
+ /**
113
+ * Type guard to check if a revision is an insertion.
114
+ * @param revision - The revision to check
115
+ * @returns true if the revision is an insertion
116
+ *
117
+ * @example
118
+ * ```typescript
119
+ * const revisions = await getRevisions(doc);
120
+ * const insertions = revisions.filter(isInsertion);
121
+ * ```
122
+ */
123
+ export declare function isInsertion(revision: Revision): boolean;
124
+ /**
125
+ * Type guard to check if a revision is a deletion.
126
+ * @param revision - The revision to check
127
+ * @returns true if the revision is a deletion
128
+ *
129
+ * @example
130
+ * ```typescript
131
+ * const revisions = await getRevisions(doc);
132
+ * const deletions = revisions.filter(isDeletion);
133
+ * ```
134
+ */
135
+ export declare function isDeletion(revision: Revision): boolean;
136
+ /**
137
+ * Type guard to check if a revision is a move operation.
138
+ * @param revision - The revision to check
139
+ * @returns true if the revision is part of a move
140
+ *
141
+ * @example
142
+ * ```typescript
143
+ * const revisions = await getRevisions(doc);
144
+ * const moves = revisions.filter(isMove);
145
+ * ```
146
+ */
147
+ export declare function isMove(revision: Revision): boolean;
148
+ /**
149
+ * Type guard to check if a revision is a move source (content moved FROM here).
150
+ * @param revision - The revision to check
151
+ * @returns true if the revision is the source of a move
152
+ *
153
+ * @example
154
+ * ```typescript
155
+ * const revisions = await getRevisions(doc);
156
+ * const moveSources = revisions.filter(isMoveSource);
157
+ * ```
158
+ */
159
+ export declare function isMoveSource(revision: Revision): boolean;
160
+ /**
161
+ * Type guard to check if a revision is a move destination (content moved TO here).
162
+ * @param revision - The revision to check
163
+ * @returns true if the revision is the destination of a move
164
+ *
165
+ * @example
166
+ * ```typescript
167
+ * const revisions = await getRevisions(doc);
168
+ * const moveDestinations = revisions.filter(isMoveDestination);
169
+ * ```
170
+ */
171
+ export declare function isMoveDestination(revision: Revision): boolean;
172
+ /**
173
+ * Find the matching pair for a move revision.
174
+ * @param revision - A move revision
175
+ * @param allRevisions - All revisions from the document
176
+ * @returns The matching move revision, or undefined if not found
177
+ *
178
+ * @example
179
+ * ```typescript
180
+ * const revisions = await getRevisions(doc);
181
+ * for (const rev of revisions.filter(isMoveSource)) {
182
+ * const destination = findMovePair(rev, revisions);
183
+ * console.log(`"${rev.text}" moved to become "${destination?.text}"`);
184
+ * }
185
+ * ```
186
+ */
187
+ export declare function findMovePair(revision: Revision, allRevisions: Revision[]): Revision | undefined;
62
188
  /**
63
189
  * Version information for the library
64
190
  */
@@ -99,6 +225,35 @@ export interface DocxodusWasmExports {
99
225
  CompareDocumentsToHtmlWithOptions: (originalBytes: Uint8Array, modifiedBytes: Uint8Array, authorName: string, renderTrackedChanges: boolean) => string;
100
226
  CompareDocumentsWithOptions: (originalBytes: Uint8Array, modifiedBytes: Uint8Array, authorName: string, detailThreshold: number, caseInsensitive: boolean) => Uint8Array;
101
227
  GetRevisionsJson: (comparedDocBytes: Uint8Array) => string;
228
+ GetRevisionsJsonWithOptions: (comparedDocBytes: Uint8Array, detectMoves: boolean, moveSimilarityThreshold: number, moveMinimumWordCount: number, caseInsensitive: boolean) => string;
102
229
  };
103
230
  }
231
+ /**
232
+ * Options for revision extraction with move detection configuration.
233
+ */
234
+ export interface GetRevisionsOptions {
235
+ /**
236
+ * Whether to detect and mark moved content.
237
+ * When enabled, deletions and insertions with similar text are linked as move pairs.
238
+ * @default true
239
+ */
240
+ detectMoves?: boolean;
241
+ /**
242
+ * Jaccard similarity threshold for move detection (0.0 to 1.0).
243
+ * Higher values require more exact word overlap between deletion and insertion.
244
+ * @default 0.8
245
+ */
246
+ moveSimilarityThreshold?: number;
247
+ /**
248
+ * Minimum word count for content to be considered for move detection.
249
+ * Short phrases below this threshold are excluded to avoid false positives.
250
+ * @default 3
251
+ */
252
+ moveMinimumWordCount?: number;
253
+ /**
254
+ * Whether similarity matching ignores case differences.
255
+ * @default false
256
+ */
257
+ caseInsensitive?: boolean;
258
+ }
104
259
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/dist/types.js CHANGED
@@ -1,3 +1,15 @@
1
+ /**
2
+ * Revision type enum matching the .NET WmlComparerRevisionType
3
+ */
4
+ export var RevisionType;
5
+ (function (RevisionType) {
6
+ /** Text or content that was added/inserted */
7
+ RevisionType["Inserted"] = "Inserted";
8
+ /** Text or content that was removed/deleted */
9
+ RevisionType["Deleted"] = "Deleted";
10
+ /** Text or content that was relocated within the document */
11
+ RevisionType["Moved"] = "Moved";
12
+ })(RevisionType || (RevisionType = {}));
1
13
  /**
2
14
  * Comment render mode
3
15
  * Use -1 (Disabled) to not render comments, or a positive value to enable with that mode
@@ -13,4 +25,96 @@ export var CommentRenderMode;
13
25
  /** Render comments in a margin column (CSS-positioned) */
14
26
  CommentRenderMode[CommentRenderMode["Margin"] = 2] = "Margin";
15
27
  })(CommentRenderMode || (CommentRenderMode = {}));
28
+ /**
29
+ * Type guard to check if a revision is an insertion.
30
+ * @param revision - The revision to check
31
+ * @returns true if the revision is an insertion
32
+ *
33
+ * @example
34
+ * ```typescript
35
+ * const revisions = await getRevisions(doc);
36
+ * const insertions = revisions.filter(isInsertion);
37
+ * ```
38
+ */
39
+ export function isInsertion(revision) {
40
+ return revision.revisionType === RevisionType.Inserted;
41
+ }
42
+ /**
43
+ * Type guard to check if a revision is a deletion.
44
+ * @param revision - The revision to check
45
+ * @returns true if the revision is a deletion
46
+ *
47
+ * @example
48
+ * ```typescript
49
+ * const revisions = await getRevisions(doc);
50
+ * const deletions = revisions.filter(isDeletion);
51
+ * ```
52
+ */
53
+ export function isDeletion(revision) {
54
+ return revision.revisionType === RevisionType.Deleted;
55
+ }
56
+ /**
57
+ * Type guard to check if a revision is a move operation.
58
+ * @param revision - The revision to check
59
+ * @returns true if the revision is part of a move
60
+ *
61
+ * @example
62
+ * ```typescript
63
+ * const revisions = await getRevisions(doc);
64
+ * const moves = revisions.filter(isMove);
65
+ * ```
66
+ */
67
+ export function isMove(revision) {
68
+ return revision.revisionType === RevisionType.Moved;
69
+ }
70
+ /**
71
+ * Type guard to check if a revision is a move source (content moved FROM here).
72
+ * @param revision - The revision to check
73
+ * @returns true if the revision is the source of a move
74
+ *
75
+ * @example
76
+ * ```typescript
77
+ * const revisions = await getRevisions(doc);
78
+ * const moveSources = revisions.filter(isMoveSource);
79
+ * ```
80
+ */
81
+ export function isMoveSource(revision) {
82
+ return isMove(revision) && revision.isMoveSource === true;
83
+ }
84
+ /**
85
+ * Type guard to check if a revision is a move destination (content moved TO here).
86
+ * @param revision - The revision to check
87
+ * @returns true if the revision is the destination of a move
88
+ *
89
+ * @example
90
+ * ```typescript
91
+ * const revisions = await getRevisions(doc);
92
+ * const moveDestinations = revisions.filter(isMoveDestination);
93
+ * ```
94
+ */
95
+ export function isMoveDestination(revision) {
96
+ return isMove(revision) && revision.isMoveSource === false;
97
+ }
98
+ /**
99
+ * Find the matching pair for a move revision.
100
+ * @param revision - A move revision
101
+ * @param allRevisions - All revisions from the document
102
+ * @returns The matching move revision, or undefined if not found
103
+ *
104
+ * @example
105
+ * ```typescript
106
+ * const revisions = await getRevisions(doc);
107
+ * for (const rev of revisions.filter(isMoveSource)) {
108
+ * const destination = findMovePair(rev, revisions);
109
+ * console.log(`"${rev.text}" moved to become "${destination?.text}"`);
110
+ * }
111
+ * ```
112
+ */
113
+ export function findMovePair(revision, allRevisions) {
114
+ if (!isMove(revision) || revision.moveGroupId === undefined) {
115
+ return undefined;
116
+ }
117
+ return allRevisions.find((r) => r.moveGroupId === revision.moveGroupId &&
118
+ r.isMoveSource !== revision.isMoveSource);
119
+ }
16
120
  //# sourceMappingURL=types.js.map
package/dist/types.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,CAAN,IAAY,iBASX;AATD,WAAY,iBAAiB;IAC3B,uCAAuC;IACvC,kEAAa,CAAA;IACb,2FAA2F;IAC3F,yEAAgB,CAAA;IAChB,8DAA8D;IAC9D,6DAAU,CAAA;IACV,0DAA0D;IAC1D,6DAAU,CAAA;AACZ,CAAC,EATW,iBAAiB,KAAjB,iBAAiB,QAS5B"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,CAAN,IAAY,YAOX;AAPD,WAAY,YAAY;IACtB,8CAA8C;IAC9C,qCAAqB,CAAA;IACrB,+CAA+C;IAC/C,mCAAmB,CAAA;IACnB,6DAA6D;IAC7D,+BAAe,CAAA;AACjB,CAAC,EAPW,YAAY,KAAZ,YAAY,QAOvB;AAED;;;GAGG;AACH,MAAM,CAAN,IAAY,iBASX;AATD,WAAY,iBAAiB;IAC3B,uCAAuC;IACvC,kEAAa,CAAA;IACb,2FAA2F;IAC3F,yEAAgB,CAAA;IAChB,8DAA8D;IAC9D,6DAAU,CAAA;IACV,0DAA0D;IAC1D,6DAAU,CAAA;AACZ,CAAC,EATW,iBAAiB,KAAjB,iBAAiB,QAS5B;AA2FD;;;;;;;;;;GAUG;AACH,MAAM,UAAU,WAAW,CAAC,QAAkB;IAC5C,OAAO,QAAQ,CAAC,YAAY,KAAK,YAAY,CAAC,QAAQ,CAAC;AACzD,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,UAAU,CAAC,QAAkB;IAC3C,OAAO,QAAQ,CAAC,YAAY,KAAK,YAAY,CAAC,OAAO,CAAC;AACxD,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,MAAM,CAAC,QAAkB;IACvC,OAAO,QAAQ,CAAC,YAAY,KAAK,YAAY,CAAC,KAAK,CAAC;AACtD,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,YAAY,CAAC,QAAkB;IAC7C,OAAO,MAAM,CAAC,QAAQ,CAAC,IAAI,QAAQ,CAAC,YAAY,KAAK,IAAI,CAAC;AAC5D,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,iBAAiB,CAAC,QAAkB;IAClD,OAAO,MAAM,CAAC,QAAQ,CAAC,IAAI,QAAQ,CAAC,YAAY,KAAK,KAAK,CAAC;AAC7D,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,YAAY,CAC1B,QAAkB,EAClB,YAAwB;IAExB,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,QAAQ,CAAC,WAAW,KAAK,SAAS,EAAE,CAAC;QAC5D,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,OAAO,YAAY,CAAC,IAAI,CACtB,CAAC,CAAC,EAAE,EAAE,CACJ,CAAC,CAAC,WAAW,KAAK,QAAQ,CAAC,WAAW;QACtC,CAAC,CAAC,YAAY,KAAK,QAAQ,CAAC,YAAY,CAC3C,CAAC;AACJ,CAAC"}
Binary file
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "mainAssemblyName": "DocxodusWasm.dll",
3
3
  "resources": {
4
- "hash": "sha256-6n8P857iwGG+4JeTER3Zh1HQmC8y9qy8JGIjReXiBL0=",
4
+ "hash": "sha256-PJ0unUdGLm57u9ECBFica6zYqaNdoeSSdB/oSBqGoaE=",
5
5
  "jsModuleNative": {
6
6
  "dotnet.native.js": "sha256-YLwjs9CPwrZG7YKULjmqr5bYsmhxwcWJOhQNM4bG6Gc="
7
7
  },
@@ -17,8 +17,8 @@
17
17
  "assembly": {
18
18
  "DocumentFormat.OpenXml.wasm": "sha256-edAN2rIA7QQ8K5qp1o5QXplt8M80fEiVmuMgT/MBmLM=",
19
19
  "DocumentFormat.OpenXml.Framework.wasm": "sha256-CFdrD1dSpnkcOk0gxZcKb2T5p+q2ck9ivs+TOML6Jmw=",
20
- "Docxodus.wasm": "sha256-y9b+WtsOMwVR2vRAWWmqBMaw7AdCgZ4a+yY8uB2J4sk=",
21
- "DocxodusWasm.wasm": "sha256-XZgTaD8yAf7mT+EKYwhqtQExCENJTvuG7SB8K8Q90M8=",
20
+ "Docxodus.wasm": "sha256-wU4bzac2fb9ktzajk2MBBFCR8C1JBz9458Xs3oybauU=",
21
+ "DocxodusWasm.wasm": "sha256-dJfsCIi+p+dtXBr45AfzuPBfAnIVyMxeoSesjgSFliQ=",
22
22
  "SkiaSharp.wasm": "sha256-U6RbqUVBn8Vx8qpghJC5+r/DC1NSBY+EIRDxP8o6dsk=",
23
23
  "System.Collections.Concurrent.wasm": "sha256-xXJbJWNeQ2DSYvAGUoUHjF9y4Iajv2ed0eACOxWD19U=",
24
24
  "System.Collections.wasm": "sha256-J1FML3h2WBTlmekS0TVLGCvZGbIRG+AZnGmlZn3Y5+Q=",
@@ -31,7 +31,7 @@
31
31
  "System.wasm": "sha256-I4hhyMuUoHdrzDopL9tlnkL/Skg+0OO+gmkOXNT3dcg=",
32
32
  "System.IO.Compression.wasm": "sha256-glPLNgAH3VX82ZR1M3OyHo4l6E0s8TYE9DG0fj2CZjs=",
33
33
  "System.IO.Packaging.wasm": "sha256-7/fT3PRuT9lCDOO5j0gfgNlMf9JEod1ul0ZhttU4f6o=",
34
- "System.Linq.wasm": "sha256-I9tq6QmobFJypPskFUCsIdd7qXbXOmjTQc5XFhjsUEk=",
34
+ "System.Linq.wasm": "sha256-FqM9ZrDhGV9fH02F/MjQDZgEBwnNSjXKV+ZkYrH8X0k=",
35
35
  "System.Linq.Expressions.wasm": "sha256-cjv2KJtBjluhWqvvRfGFAE1jtaCqcv9AR/ejG4uQLjc=",
36
36
  "System.Memory.wasm": "sha256-EaRyr763fIgBlUUaRslCCzOvftS/IHxDjcqHTHsdgqY=",
37
37
  "System.Net.Http.wasm": "sha256-gfinV/63sNC0fUQkDJlS9YhPxGAlhaMJ60PisQ6cGMw=",
@@ -46,7 +46,7 @@
46
46
  "System.Security.Cryptography.wasm": "sha256-NHnnXxLxDKrA0fmrc1OJWB1VHgO1osqnDF8cKNr3xn0=",
47
47
  "System.Text.Encoding.Extensions.wasm": "sha256-r2L24FanehJy0xuBN4F0+VdLnXa3L1v7sJmv8g7v91s=",
48
48
  "System.Text.Encodings.Web.wasm": "sha256-DSO7E4rBmvQZL4tEVytmH9Y3l1olcV32cOxIlHl7blk=",
49
- "System.Text.Json.wasm": "sha256-8MlanyOBr/7WOXLD8XvRDRSCMIFTX4SsoU0bfpIDyV0=",
49
+ "System.Text.Json.wasm": "sha256-nK0iNsrBVQhuqgR9OH8PTNQFHIe7Kc0QrBauOZZt85U=",
50
50
  "System.Text.RegularExpressions.wasm": "sha256-Jfqjfhauz+YIZ2/VhD+3zSnxDygPy4W8b3djubLoD54=",
51
51
  "System.Threading.Thread.wasm": "sha256-X1aGeQYTrsi7H0pEZmyqNKJ893KtILavvynk07IGjRM=",
52
52
  "System.Xml.Linq.wasm": "sha256-nZUqq1LQ1iYER5V+ccZ1y3uuv7Hjj42vEGwKqg1UwdE=",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "docxodus",
3
- "version": "3.1.4",
3
+ "version": "3.2.0",
4
4
  "description": "DOCX document comparison and HTML conversion in the browser using WebAssembly",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",