n8n-nodes-docx-track-changes 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,217 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.parseRevisions = parseRevisions;
4
+ exports.generateRevisionSummary = generateRevisionSummary;
5
+ const fast_xml_parser_1 = require("fast-xml-parser");
6
+ const docxParser_1 = require("./docxParser");
7
+ const parser = new fast_xml_parser_1.XMLParser({
8
+ ignoreAttributes: false,
9
+ attributeNamePrefix: '@_',
10
+ preserveOrder: true,
11
+ });
12
+ function getElementText(element) {
13
+ if (!element)
14
+ return '';
15
+ if (typeof element === 'string')
16
+ return element;
17
+ if (Array.isArray(element)) {
18
+ return element.map((e) => getElementText(e)).join('');
19
+ }
20
+ if (typeof element === 'object') {
21
+ const obj = element;
22
+ let text = '';
23
+ if ('w:t' in obj) {
24
+ const wt = obj['w:t'];
25
+ if (Array.isArray(wt)) {
26
+ for (const item of wt) {
27
+ if (typeof item === 'object' && '#text' in item) {
28
+ text += item['#text'];
29
+ }
30
+ }
31
+ }
32
+ }
33
+ for (const key of Object.keys(obj)) {
34
+ if (key === ':@' || key === '#text')
35
+ continue;
36
+ text += getElementText(obj[key]);
37
+ }
38
+ return text;
39
+ }
40
+ return '';
41
+ }
42
+ function extractTextFromElement(element) {
43
+ return getElementText(element);
44
+ }
45
+ function parseRevisions(documentXml, options = {}) {
46
+ const { includeContext = false, contextLength = 50 } = options;
47
+ const revisions = [];
48
+ const parsed = parser.parse(documentXml);
49
+ const paragraphs = findParagraphs(parsed);
50
+ paragraphs.forEach((paragraph, paragraphIndex) => {
51
+ const paragraphText = includeContext ? (0, docxParser_1.extractTextFromXml)(serializeElement(paragraph)) : '';
52
+ processElement(paragraph, paragraphIndex, paragraphText, revisions, includeContext, contextLength);
53
+ });
54
+ return revisions;
55
+ }
56
+ function findParagraphs(parsed) {
57
+ const paragraphs = [];
58
+ function traverse(obj) {
59
+ if (!obj)
60
+ return;
61
+ if (Array.isArray(obj)) {
62
+ for (const item of obj) {
63
+ traverse(item);
64
+ }
65
+ return;
66
+ }
67
+ if (typeof obj === 'object') {
68
+ const element = obj;
69
+ if ('w:p' in element) {
70
+ paragraphs.push(element['w:p']);
71
+ }
72
+ for (const key of Object.keys(element)) {
73
+ if (key !== ':@') {
74
+ traverse(element[key]);
75
+ }
76
+ }
77
+ }
78
+ }
79
+ traverse(parsed);
80
+ return paragraphs;
81
+ }
82
+ function serializeElement(element) {
83
+ if (!element)
84
+ return '';
85
+ if (typeof element === 'string')
86
+ return element;
87
+ if (Array.isArray(element)) {
88
+ return element.map((e) => serializeElement(e)).join('');
89
+ }
90
+ if (typeof element === 'object') {
91
+ const obj = element;
92
+ let result = '';
93
+ for (const key of Object.keys(obj)) {
94
+ if (key === ':@')
95
+ continue;
96
+ if (key === '#text') {
97
+ result += obj[key];
98
+ continue;
99
+ }
100
+ if (key === 'w:t') {
101
+ const content = obj[key];
102
+ if (Array.isArray(content)) {
103
+ for (const item of content) {
104
+ if (typeof item === 'object' && '#text' in item) {
105
+ result += `<w:t>${item['#text']}</w:t>`;
106
+ }
107
+ }
108
+ }
109
+ }
110
+ else {
111
+ result += serializeElement(obj[key]);
112
+ }
113
+ }
114
+ return result;
115
+ }
116
+ return '';
117
+ }
118
+ function processElement(element, paragraphIndex, paragraphText, revisions, includeContext, contextLength) {
119
+ if (!element)
120
+ return;
121
+ if (Array.isArray(element)) {
122
+ for (const item of element) {
123
+ processElement(item, paragraphIndex, paragraphText, revisions, includeContext, contextLength);
124
+ }
125
+ return;
126
+ }
127
+ if (typeof element !== 'object')
128
+ return;
129
+ const obj = element;
130
+ if ('w:ins' in obj) {
131
+ const insElement = obj['w:ins'];
132
+ const attrs = obj[':@'];
133
+ const text = extractTextFromElement(insElement);
134
+ if (text) {
135
+ const revision = {
136
+ type: 'insert',
137
+ text,
138
+ author: attrs?.['@_w:author'] || 'Unknown',
139
+ date: attrs?.['@_w:date'] || '',
140
+ paragraphIndex,
141
+ context: includeContext ? extractContext(paragraphText, text, contextLength) : null,
142
+ };
143
+ revisions.push(revision);
144
+ }
145
+ }
146
+ if ('w:del' in obj) {
147
+ const delElement = obj['w:del'];
148
+ const attrs = obj[':@'];
149
+ const text = extractDeletedText(delElement);
150
+ if (text) {
151
+ const revision = {
152
+ type: 'delete',
153
+ text,
154
+ author: attrs?.['@_w:author'] || 'Unknown',
155
+ date: attrs?.['@_w:date'] || '',
156
+ paragraphIndex,
157
+ context: includeContext ? extractContext(paragraphText, text, contextLength) : null,
158
+ };
159
+ revisions.push(revision);
160
+ }
161
+ }
162
+ for (const key of Object.keys(obj)) {
163
+ if (key !== ':@' && key !== 'w:ins' && key !== 'w:del') {
164
+ processElement(obj[key], paragraphIndex, paragraphText, revisions, includeContext, contextLength);
165
+ }
166
+ }
167
+ }
168
+ function extractDeletedText(element) {
169
+ if (!element)
170
+ return '';
171
+ if (Array.isArray(element)) {
172
+ return element.map((e) => extractDeletedText(e)).join('');
173
+ }
174
+ if (typeof element === 'object') {
175
+ const obj = element;
176
+ let text = '';
177
+ if ('w:delText' in obj) {
178
+ const delText = obj['w:delText'];
179
+ if (Array.isArray(delText)) {
180
+ for (const item of delText) {
181
+ if (typeof item === 'object' && '#text' in item) {
182
+ text += item['#text'];
183
+ }
184
+ }
185
+ }
186
+ }
187
+ for (const key of Object.keys(obj)) {
188
+ if (key !== ':@' && key !== 'w:delText') {
189
+ text += extractDeletedText(obj[key]);
190
+ }
191
+ }
192
+ return text;
193
+ }
194
+ return '';
195
+ }
196
+ function extractContext(paragraphText, targetText, contextLength) {
197
+ const plainText = (0, docxParser_1.extractTextFromXml)(paragraphText);
198
+ const index = plainText.indexOf(targetText);
199
+ if (index === -1) {
200
+ return { before: '', after: '' };
201
+ }
202
+ const before = plainText.substring(Math.max(0, index - contextLength), index);
203
+ const after = plainText.substring(index + targetText.length, index + targetText.length + contextLength);
204
+ return { before, after };
205
+ }
206
+ function generateRevisionSummary(revisions) {
207
+ const insertions = revisions.filter((r) => r.type === 'insert').length;
208
+ const deletions = revisions.filter((r) => r.type === 'delete').length;
209
+ const authorsSet = new Set(revisions.map((r) => r.author));
210
+ return {
211
+ totalRevisions: revisions.length,
212
+ insertions,
213
+ deletions,
214
+ authors: Array.from(authorsSet),
215
+ };
216
+ }
217
+ //# sourceMappingURL=revisionParser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"revisionParser.js","sourceRoot":"","sources":["../../../../nodes/DocxRevisions/utils/revisionParser.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,52 @@
1
+ {
2
+ "name": "n8n-nodes-docx-track-changes",
3
+ "version": "0.1.0",
4
+ "description": "n8n community node for extracting revisions (track changes) and comments from Microsoft Word (.docx) documents",
5
+ "license": "MIT",
6
+ "homepage": "https://github.com/ryoooo/n8n-nodes-docx-track-changes",
7
+ "keywords": [
8
+ "n8n-community-node-package",
9
+ "n8n",
10
+ "docx",
11
+ "word",
12
+ "track-changes",
13
+ "revisions",
14
+ "comments"
15
+ ],
16
+ "author": { "name": "ryoooo", "email": "maekwnnn@gmail.com" },
17
+ "repository": {
18
+ "type": "git",
19
+ "url": "https://github.com/ryoooo/n8n-nodes-docx-track-changes.git"
20
+ },
21
+ "engines": { "node": ">=20.19.0 <25" },
22
+ "scripts": {
23
+ "build": "n8n-node build",
24
+ "build:watch": "tsc --watch",
25
+ "dev": "n8n-node dev",
26
+ "lint": "n8n-node lint",
27
+ "lint:fix": "n8n-node lint --fix",
28
+ "release": "n8n-node release",
29
+ "prepublishOnly": "n8n-node prerelease && rm -f dist/*.tsbuildinfo",
30
+ "test": "vitest",
31
+ "test:run": "vitest run"
32
+ },
33
+ "files": ["dist"],
34
+ "n8n": {
35
+ "n8nNodesApiVersion": 1,
36
+ "strict": false,
37
+ "credentials": [],
38
+ "nodes": ["dist/nodes/DocxRevisions/DocxRevisions.node.js"]
39
+ },
40
+ "devDependencies": {
41
+ "@n8n/node-cli": "*",
42
+ "@types/node": "^22.0.0",
43
+ "@vitest/coverage-v8": "^3.2.4",
44
+ "eslint": "^9.0.0",
45
+ "prettier": "^3.0.0",
46
+ "release-it": "^19.0.0",
47
+ "typescript": "^5.0.0",
48
+ "vitest": "^3.0.0"
49
+ },
50
+ "peerDependencies": { "n8n-workflow": "*" },
51
+ "dependencies": { "fast-xml-parser": "^4.3.0", "jszip": "^3.10.1" }
52
+ }
package/package.json ADDED
@@ -0,0 +1,66 @@
1
+ {
2
+ "name": "n8n-nodes-docx-track-changes",
3
+ "version": "0.1.1",
4
+ "description": "n8n community node for extracting revisions (track changes) and comments from Microsoft Word (.docx) documents",
5
+ "license": "MIT",
6
+ "homepage": "https://github.com/ryoooo/n8n-nodes-docx-track-changes",
7
+ "keywords": [
8
+ "n8n-community-node-package",
9
+ "n8n",
10
+ "docx",
11
+ "word",
12
+ "track-changes",
13
+ "revisions",
14
+ "comments"
15
+ ],
16
+ "author": {
17
+ "name": "ryoooo",
18
+ "email": "maekwnnn@gmail.com"
19
+ },
20
+ "repository": {
21
+ "type": "git",
22
+ "url": "https://github.com/ryoooo/n8n-nodes-docx-track-changes.git"
23
+ },
24
+ "engines": {
25
+ "node": ">=20.19.0 <25"
26
+ },
27
+ "scripts": {
28
+ "build": "n8n-node build",
29
+ "build:watch": "tsc --watch",
30
+ "dev": "n8n-node dev",
31
+ "lint": "n8n-node lint",
32
+ "lint:fix": "n8n-node lint --fix",
33
+ "release": "n8n-node release",
34
+ "prepublishOnly": "n8n-node prerelease && rm -f dist/*.tsbuildinfo",
35
+ "test": "vitest",
36
+ "test:run": "vitest run"
37
+ },
38
+ "files": [
39
+ "dist"
40
+ ],
41
+ "n8n": {
42
+ "n8nNodesApiVersion": 1,
43
+ "strict": false,
44
+ "credentials": [],
45
+ "nodes": [
46
+ "dist/nodes/DocxRevisions/DocxRevisions.node.js"
47
+ ]
48
+ },
49
+ "devDependencies": {
50
+ "@n8n/node-cli": "*",
51
+ "@types/node": "^22.0.0",
52
+ "@vitest/coverage-v8": "^3.2.4",
53
+ "eslint": "^9.0.0",
54
+ "prettier": "^3.0.0",
55
+ "release-it": "^19.0.0",
56
+ "typescript": "^5.0.0",
57
+ "vitest": "^3.0.0"
58
+ },
59
+ "peerDependencies": {
60
+ "n8n-workflow": "*"
61
+ },
62
+ "dependencies": {
63
+ "fast-xml-parser": "^4.3.0",
64
+ "jszip": "^3.10.1"
65
+ }
66
+ }