n8n-nodes-data-mapper 0.0.0-stage → 0.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.
@@ -0,0 +1,316 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.XmlParseError = void 0;
4
+ exports.parseXml = parseXml;
5
+ exports.xmlToJson = xmlToJson;
6
+ exports.formatXml = formatXml;
7
+ exports.jsonToXml = jsonToXml;
8
+ class XmlParseError extends Error {
9
+ }
10
+ exports.XmlParseError = XmlParseError;
11
+ const ENTITIES = { lt: '<', gt: '>', amp: '&', quot: '"', apos: "'" };
12
+ function decodeEntities(text) {
13
+ return text.replace(/&(#x[0-9a-fA-F]+|#\d+|[a-zA-Z]+);/g, (match, ref) => {
14
+ var _a;
15
+ if (ref[0] === '#') {
16
+ const code = ref[1] === 'x' ? parseInt(ref.slice(2), 16) : parseInt(ref.slice(1), 10);
17
+ return Number.isNaN(code) ? match : String.fromCodePoint(code);
18
+ }
19
+ return (_a = ENTITIES[ref]) !== null && _a !== void 0 ? _a : match;
20
+ });
21
+ }
22
+ function parseXml(input) {
23
+ let pos = 0;
24
+ let declaration;
25
+ let root;
26
+ const fail = (message, at = pos) => {
27
+ const before = input.slice(0, at).split('\n');
28
+ throw new XmlParseError(`${message} (line ${before.length}, column ${before[before.length - 1].length + 1})`);
29
+ };
30
+ const startsWith = (s) => input.startsWith(s, pos);
31
+ const readUntil = (end, what) => {
32
+ const idx = input.indexOf(end, pos);
33
+ if (idx === -1)
34
+ fail(`Unclosed ${what}`);
35
+ const value = input.slice(pos, idx);
36
+ pos = idx + end.length;
37
+ return value;
38
+ };
39
+ const skipWhitespace = () => {
40
+ while (pos < input.length && /\s/.test(input[pos]))
41
+ pos++;
42
+ };
43
+ const readName = () => {
44
+ const match = /^[^\s/>=<"']+/.exec(input.slice(pos, pos + 1000));
45
+ if (!match)
46
+ fail('Expected a tag or attribute name');
47
+ pos += match[0].length;
48
+ return match[0];
49
+ };
50
+ const skipDoctype = () => {
51
+ let depth = 0;
52
+ for (; pos < input.length; pos++) {
53
+ if (input[pos] === '[')
54
+ depth++;
55
+ else if (input[pos] === ']')
56
+ depth--;
57
+ else if (input[pos] === '>' && depth === 0) {
58
+ pos++;
59
+ return;
60
+ }
61
+ }
62
+ fail('Unclosed DOCTYPE');
63
+ };
64
+ const parseElement = () => {
65
+ const start = pos;
66
+ pos++;
67
+ const name = readName();
68
+ const element = { type: 'element', name, attributes: {}, children: [] };
69
+ for (;;) {
70
+ skipWhitespace();
71
+ if (startsWith('/>')) {
72
+ pos += 2;
73
+ return element;
74
+ }
75
+ if (startsWith('>')) {
76
+ pos++;
77
+ break;
78
+ }
79
+ if (pos >= input.length)
80
+ fail(`Unclosed tag <${name}>`, start);
81
+ const attrName = readName();
82
+ skipWhitespace();
83
+ if (input[pos] !== '=')
84
+ fail(`Expected "=" after attribute "${attrName}"`);
85
+ pos++;
86
+ skipWhitespace();
87
+ const quote = input[pos];
88
+ if (quote !== '"' && quote !== "'")
89
+ fail(`Attribute "${attrName}" value must be quoted`);
90
+ pos++;
91
+ if (attrName in element.attributes)
92
+ fail(`Duplicate attribute "${attrName}"`);
93
+ element.attributes[attrName] = decodeEntities(readUntil(quote, `attribute "${attrName}"`));
94
+ }
95
+ for (;;) {
96
+ if (pos >= input.length)
97
+ fail(`Missing closing tag </${name}>`, start);
98
+ if (startsWith('</')) {
99
+ const closeAt = pos;
100
+ pos += 2;
101
+ const closeName = readName();
102
+ skipWhitespace();
103
+ if (input[pos] !== '>')
104
+ fail(`Expected ">" to close </${closeName}`);
105
+ pos++;
106
+ if (closeName !== name)
107
+ fail(`Expected </${name}> but found </${closeName}>`, closeAt);
108
+ return element;
109
+ }
110
+ if (startsWith('<!--')) {
111
+ pos += 4;
112
+ element.children.push({ type: 'comment', value: readUntil('-->', 'comment') });
113
+ }
114
+ else if (startsWith('<![CDATA[')) {
115
+ pos += 9;
116
+ element.children.push({ type: 'text', value: readUntil(']]>', 'CDATA section'), cdata: true });
117
+ }
118
+ else if (startsWith('<?')) {
119
+ pos += 2;
120
+ readUntil('?>', 'processing instruction');
121
+ }
122
+ else if (startsWith('<')) {
123
+ element.children.push(parseElement());
124
+ }
125
+ else {
126
+ const next = input.indexOf('<', pos);
127
+ const end = next === -1 ? input.length : next;
128
+ element.children.push({ type: 'text', value: decodeEntities(input.slice(pos, end)), cdata: false });
129
+ pos = end;
130
+ }
131
+ }
132
+ };
133
+ if (input.charCodeAt(0) === 0xfeff)
134
+ pos = 1;
135
+ while (pos < input.length) {
136
+ skipWhitespace();
137
+ if (pos >= input.length)
138
+ break;
139
+ if (startsWith('<?')) {
140
+ const start = pos;
141
+ pos += 2;
142
+ readUntil('?>', 'processing instruction');
143
+ const pi = input.slice(start, pos);
144
+ if (!root && /^<\?xml\s/.test(pi))
145
+ declaration = pi;
146
+ }
147
+ else if (startsWith('<!--')) {
148
+ pos += 4;
149
+ readUntil('-->', 'comment');
150
+ }
151
+ else if (startsWith('<!DOCTYPE') || startsWith('<!doctype')) {
152
+ skipDoctype();
153
+ }
154
+ else if (startsWith('<')) {
155
+ if (root)
156
+ fail('Only one root element is allowed');
157
+ root = parseElement();
158
+ }
159
+ else {
160
+ fail('Text is not allowed outside the root element');
161
+ }
162
+ }
163
+ if (!root)
164
+ throw new XmlParseError('No XML element found');
165
+ return { declaration, root };
166
+ }
167
+ function elementToJson(element, options) {
168
+ const childElements = element.children.filter((c) => c.type === 'element');
169
+ let text = element.children
170
+ .map((c) => (c.type === 'text' ? c.value : ''))
171
+ .join('');
172
+ if (options.trim)
173
+ text = text.trim();
174
+ else if (childElements.length > 0 && text.trim() === '')
175
+ text = '';
176
+ const attributeNames = options.attributes === 'ignore' ? [] : Object.keys(element.attributes);
177
+ if (attributeNames.length === 0 && childElements.length === 0)
178
+ return text;
179
+ const result = {};
180
+ const add = (key, value) => {
181
+ var _a;
182
+ if (options.alwaysArray) {
183
+ result[key] = [...((_a = result[key]) !== null && _a !== void 0 ? _a : []), value];
184
+ }
185
+ else if (key in result) {
186
+ const existing = result[key];
187
+ result[key] = Array.isArray(existing) ? [...existing, value] : [existing, value];
188
+ }
189
+ else {
190
+ result[key] = value;
191
+ }
192
+ };
193
+ if (attributeNames.length > 0) {
194
+ if (options.attributes === 'merge') {
195
+ for (const name of attributeNames)
196
+ add(name, element.attributes[name]);
197
+ }
198
+ else {
199
+ result[options.attributeKey] = { ...element.attributes };
200
+ }
201
+ }
202
+ for (const child of childElements)
203
+ add(child.name, elementToJson(child, options));
204
+ if (text !== '')
205
+ result[options.textKey] = text;
206
+ return result;
207
+ }
208
+ function xmlToJson(document, options) {
209
+ const value = elementToJson(document.root, options);
210
+ if (options.includeRoot || value === null || typeof value !== 'object') {
211
+ return { [document.root.name]: options.alwaysArray ? [value] : value };
212
+ }
213
+ return value;
214
+ }
215
+ function escapeText(value) {
216
+ return value.replace(/&/g, '&amp;').replace(/</g, '&lt;').replace(/>/g, '&gt;');
217
+ }
218
+ function escapeAttribute(value) {
219
+ return escapeText(value).replace(/"/g, '&quot;');
220
+ }
221
+ function formatNode(node, indent, depth) {
222
+ const pad = indent.repeat(depth);
223
+ if (node.type === 'comment')
224
+ return [`${pad}<!--${node.value}-->`];
225
+ if (node.type === 'text') {
226
+ const value = node.cdata ? `<![CDATA[${node.value}]]>` : escapeText(node.value.trim());
227
+ return value === '' ? [] : [pad + value];
228
+ }
229
+ const attrs = Object.entries(node.attributes)
230
+ .map(([k, v]) => ` ${k}="${escapeAttribute(v)}"`)
231
+ .join('');
232
+ const meaningful = node.children.filter((c) => !(c.type === 'text' && !c.cdata && c.value.trim() === ''));
233
+ if (meaningful.length === 0)
234
+ return [`${pad}<${node.name}${attrs}/>`];
235
+ if (meaningful.every((c) => c.type === 'text')) {
236
+ const inner = meaningful
237
+ .map((c) => (c.type === 'text' && c.cdata ? `<![CDATA[${c.value}]]>` : escapeText(c.value)))
238
+ .join('');
239
+ return [`${pad}<${node.name}${attrs}>${inner}</${node.name}>`];
240
+ }
241
+ return [
242
+ `${pad}<${node.name}${attrs}>`,
243
+ ...meaningful.flatMap((c) => formatNode(c, indent, depth + 1)),
244
+ `${pad}</${node.name}>`,
245
+ ];
246
+ }
247
+ function formatXml(document, indent = ' ') {
248
+ const lines = formatNode(document.root, indent, 0);
249
+ if (document.declaration)
250
+ lines.unshift(document.declaration);
251
+ return lines.join('\n');
252
+ }
253
+ const XML_NAME = /^[A-Za-z_][\w.:-]*$/;
254
+ function assertName(name) {
255
+ if (!XML_NAME.test(name)) {
256
+ throw new XmlParseError(`"${name}" is not a valid XML element name. Names must start with a letter or underscore and contain no spaces.`);
257
+ }
258
+ return name;
259
+ }
260
+ function scalarToText(value) {
261
+ if (value === null || value === undefined)
262
+ return '';
263
+ if (value instanceof Date)
264
+ return value.toISOString();
265
+ return String(value);
266
+ }
267
+ function buildElement(name, value, options) {
268
+ const element = { type: 'element', name: assertName(name), attributes: {}, children: [] };
269
+ if (value === null || typeof value !== 'object' || value instanceof Date) {
270
+ const text = scalarToText(value);
271
+ if (text !== '')
272
+ element.children.push({ type: 'text', value: text, cdata: false });
273
+ return element;
274
+ }
275
+ if (Array.isArray(value)) {
276
+ throw new XmlParseError(`Cannot put an array directly inside <${name}>; give the array a field name`);
277
+ }
278
+ for (const [key, child] of Object.entries(value)) {
279
+ if (key === options.attributeKey && child && typeof child === 'object' && !Array.isArray(child)) {
280
+ for (const [attr, attrValue] of Object.entries(child)) {
281
+ element.attributes[assertName(attr)] = scalarToText(attrValue);
282
+ }
283
+ }
284
+ else if (key === options.textKey) {
285
+ const text = scalarToText(child);
286
+ if (text !== '')
287
+ element.children.push({ type: 'text', value: text, cdata: false });
288
+ }
289
+ else if (Array.isArray(child)) {
290
+ for (const entry of child)
291
+ element.children.push(buildElement(key, entry, options));
292
+ }
293
+ else if (child !== undefined) {
294
+ element.children.push(buildElement(key, child, options));
295
+ }
296
+ }
297
+ return element;
298
+ }
299
+ function jsonToXml(data, options) {
300
+ const keys = Object.keys(data);
301
+ let root;
302
+ if (options.rootName) {
303
+ root = buildElement(options.rootName, data, options);
304
+ }
305
+ else if (keys.length === 1 && !Array.isArray(data[keys[0]]) && keys[0] !== options.attributeKey && keys[0] !== options.textKey) {
306
+ root = buildElement(keys[0], data[keys[0]], options);
307
+ }
308
+ else {
309
+ root = buildElement('root', data, options);
310
+ }
311
+ return formatXml({
312
+ declaration: options.declaration ? '<?xml version="1.0" encoding="UTF-8"?>' : undefined,
313
+ root,
314
+ });
315
+ }
316
+ //# sourceMappingURL=xml.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"xml.js","sourceRoot":"","sources":["../../../nodes/DataMapper/xml.ts"],"names":[],"mappings":";;;AAwCA,4BAmIC;AAuCD,8BAMC;AAuCD,8BAIC;AA0DD,8BAcC;AAjTD,MAAa,aAAc,SAAQ,KAAK;CAAG;AAA3C,sCAA2C;AAE3C,MAAM,QAAQ,GAA2B,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC;AAE9F,SAAS,cAAc,CAAC,IAAY;IACnC,OAAO,IAAI,CAAC,OAAO,CAAC,oCAAoC,EAAE,CAAC,KAAK,EAAE,GAAW,EAAE,EAAE;;QAChF,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC;YACpB,MAAM,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACtF,OAAO,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;QAChE,CAAC;QACD,OAAO,MAAA,QAAQ,CAAC,GAAG,CAAC,mCAAI,KAAK,CAAC;IAC/B,CAAC,CAAC,CAAC;AACJ,CAAC;AAED,SAAgB,QAAQ,CAAC,KAAa;IACrC,IAAI,GAAG,GAAG,CAAC,CAAC;IACZ,IAAI,WAA+B,CAAC;IACpC,IAAI,IAA4B,CAAC;IAEjC,MAAM,IAAI,GAAG,CAAC,OAAe,EAAE,EAAE,GAAG,GAAG,EAAS,EAAE;QACjD,MAAM,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC9C,MAAM,IAAI,aAAa,CAAC,GAAG,OAAO,UAAU,MAAM,CAAC,MAAM,YAAY,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC;IAC/G,CAAC,CAAC;IAEF,MAAM,UAAU,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IAE3D,MAAM,SAAS,GAAG,CAAC,GAAW,EAAE,IAAY,EAAU,EAAE;QACvD,MAAM,GAAG,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QACpC,IAAI,GAAG,KAAK,CAAC,CAAC;YAAE,IAAI,CAAC,YAAY,IAAI,EAAE,CAAC,CAAC;QACzC,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QACpC,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC;QACvB,OAAO,KAAK,CAAC;IACd,CAAC,CAAC;IAEF,MAAM,cAAc,GAAG,GAAG,EAAE;QAC3B,OAAO,GAAG,GAAG,KAAK,CAAC,MAAM,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAAE,GAAG,EAAE,CAAC;IAC3D,CAAC,CAAC;IAEF,MAAM,QAAQ,GAAG,GAAW,EAAE;QAC7B,MAAM,KAAK,GAAG,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC;QACjE,IAAI,CAAC,KAAK;YAAE,IAAI,CAAC,kCAAkC,CAAC,CAAC;QACrD,GAAG,IAAI,KAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;QACxB,OAAO,KAAM,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC,CAAC;IAEF,MAAM,WAAW,GAAG,GAAG,EAAE;QACxB,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,OAAO,GAAG,GAAG,KAAK,CAAC,MAAM,EAAE,GAAG,EAAE,EAAE,CAAC;YAClC,IAAI,KAAK,CAAC,GAAG,CAAC,KAAK,GAAG;gBAAE,KAAK,EAAE,CAAC;iBAC3B,IAAI,KAAK,CAAC,GAAG,CAAC,KAAK,GAAG;gBAAE,KAAK,EAAE,CAAC;iBAChC,IAAI,KAAK,CAAC,GAAG,CAAC,KAAK,GAAG,IAAI,KAAK,KAAK,CAAC,EAAE,CAAC;gBAC5C,GAAG,EAAE,CAAC;gBACN,OAAO;YACR,CAAC;QACF,CAAC;QACD,IAAI,CAAC,kBAAkB,CAAC,CAAC;IAC1B,CAAC,CAAC;IAEF,MAAM,YAAY,GAAG,GAAe,EAAE;QACrC,MAAM,KAAK,GAAG,GAAG,CAAC;QAClB,GAAG,EAAE,CAAC;QACN,MAAM,IAAI,GAAG,QAAQ,EAAE,CAAC;QACxB,MAAM,OAAO,GAAe,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;QAEpF,SAAS,CAAC;YACT,cAAc,EAAE,CAAC;YACjB,IAAI,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;gBACtB,GAAG,IAAI,CAAC,CAAC;gBACT,OAAO,OAAO,CAAC;YAChB,CAAC;YACD,IAAI,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;gBACrB,GAAG,EAAE,CAAC;gBACN,MAAM;YACP,CAAC;YACD,IAAI,GAAG,IAAI,KAAK,CAAC,MAAM;gBAAE,IAAI,CAAC,iBAAiB,IAAI,GAAG,EAAE,KAAK,CAAC,CAAC;YAC/D,MAAM,QAAQ,GAAG,QAAQ,EAAE,CAAC;YAC5B,cAAc,EAAE,CAAC;YACjB,IAAI,KAAK,CAAC,GAAG,CAAC,KAAK,GAAG;gBAAE,IAAI,CAAC,iCAAiC,QAAQ,GAAG,CAAC,CAAC;YAC3E,GAAG,EAAE,CAAC;YACN,cAAc,EAAE,CAAC;YACjB,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC;YACzB,IAAI,KAAK,KAAK,GAAG,IAAI,KAAK,KAAK,GAAG;gBAAE,IAAI,CAAC,cAAc,QAAQ,wBAAwB,CAAC,CAAC;YACzF,GAAG,EAAE,CAAC;YACN,IAAI,QAAQ,IAAI,OAAO,CAAC,UAAU;gBAAE,IAAI,CAAC,wBAAwB,QAAQ,GAAG,CAAC,CAAC;YAC9E,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC,GAAG,cAAc,CAAC,SAAS,CAAC,KAAK,EAAE,cAAc,QAAQ,GAAG,CAAC,CAAC,CAAC;QAC5F,CAAC;QAED,SAAS,CAAC;YACT,IAAI,GAAG,IAAI,KAAK,CAAC,MAAM;gBAAE,IAAI,CAAC,yBAAyB,IAAI,GAAG,EAAE,KAAK,CAAC,CAAC;YACvE,IAAI,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;gBACtB,MAAM,OAAO,GAAG,GAAG,CAAC;gBACpB,GAAG,IAAI,CAAC,CAAC;gBACT,MAAM,SAAS,GAAG,QAAQ,EAAE,CAAC;gBAC7B,cAAc,EAAE,CAAC;gBACjB,IAAI,KAAK,CAAC,GAAG,CAAC,KAAK,GAAG;oBAAE,IAAI,CAAC,2BAA2B,SAAS,EAAE,CAAC,CAAC;gBACrE,GAAG,EAAE,CAAC;gBACN,IAAI,SAAS,KAAK,IAAI;oBAAE,IAAI,CAAC,cAAc,IAAI,iBAAiB,SAAS,GAAG,EAAE,OAAO,CAAC,CAAC;gBACvF,OAAO,OAAO,CAAC;YAChB,CAAC;YACD,IAAI,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;gBACxB,GAAG,IAAI,CAAC,CAAC;gBACT,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,CAAC,KAAK,EAAE,SAAS,CAAC,EAAE,CAAC,CAAC;YAChF,CAAC;iBAAM,IAAI,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;gBACpC,GAAG,IAAI,CAAC,CAAC;gBACT,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,CAAC,KAAK,EAAE,eAAe,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;YAChG,CAAC;iBAAM,IAAI,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC7B,GAAG,IAAI,CAAC,CAAC;gBACT,SAAS,CAAC,IAAI,EAAE,wBAAwB,CAAC,CAAC;YAC3C,CAAC;iBAAM,IAAI,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC5B,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC;YACvC,CAAC;iBAAM,CAAC;gBACP,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;gBACrC,MAAM,GAAG,GAAG,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC;gBAC9C,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,cAAc,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;gBACpG,GAAG,GAAG,GAAG,CAAC;YACX,CAAC;QACF,CAAC;IACF,CAAC,CAAC;IAEF,IAAI,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,MAAM;QAAE,GAAG,GAAG,CAAC,CAAC;IAE5C,OAAO,GAAG,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC;QAC3B,cAAc,EAAE,CAAC;QACjB,IAAI,GAAG,IAAI,KAAK,CAAC,MAAM;YAAE,MAAM;QAC/B,IAAI,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;YACtB,MAAM,KAAK,GAAG,GAAG,CAAC;YAClB,GAAG,IAAI,CAAC,CAAC;YACT,SAAS,CAAC,IAAI,EAAE,wBAAwB,CAAC,CAAC;YAC1C,MAAM,EAAE,GAAG,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;YACnC,IAAI,CAAC,IAAI,IAAI,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC;gBAAE,WAAW,GAAG,EAAE,CAAC;QACrD,CAAC;aAAM,IAAI,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;YAC/B,GAAG,IAAI,CAAC,CAAC;YACT,SAAS,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;QAC7B,CAAC;aAAM,IAAI,UAAU,CAAC,WAAW,CAAC,IAAI,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;YAC/D,WAAW,EAAE,CAAC;QACf,CAAC;aAAM,IAAI,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YAC5B,IAAI,IAAI;gBAAE,IAAI,CAAC,kCAAkC,CAAC,CAAC;YACnD,IAAI,GAAG,YAAY,EAAE,CAAC;QACvB,CAAC;aAAM,CAAC;YACP,IAAI,CAAC,8CAA8C,CAAC,CAAC;QACtD,CAAC;IACF,CAAC;IAED,IAAI,CAAC,IAAI;QAAE,MAAM,IAAI,aAAa,CAAC,sBAAsB,CAAC,CAAC;IAC3D,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;AAC9B,CAAC;AAED,SAAS,aAAa,CAAC,OAAmB,EAAE,OAAyB;IACpE,MAAM,aAAa,GAAG,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAmB,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC;IAC5F,IAAI,IAAI,GAAG,OAAO,CAAC,QAAQ;SACzB,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;SAC9C,IAAI,CAAC,EAAE,CAAC,CAAC;IACX,IAAI,OAAO,CAAC,IAAI;QAAE,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;SAChC,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE;QAAE,IAAI,GAAG,EAAE,CAAC;IAEnE,MAAM,cAAc,GAAG,OAAO,CAAC,UAAU,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IAE9F,IAAI,cAAc,CAAC,MAAM,KAAK,CAAC,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAE3E,MAAM,MAAM,GAA4B,EAAE,CAAC;IAC3C,MAAM,GAAG,GAAG,CAAC,GAAW,EAAE,KAAc,EAAE,EAAE;;QAC3C,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;YACzB,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,MAAC,MAAM,CAAC,GAAG,CAA2B,mCAAI,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;QAC1E,CAAC;aAAM,IAAI,GAAG,IAAI,MAAM,EAAE,CAAC;YAC1B,MAAM,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;YAC7B,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;QAClF,CAAC;aAAM,CAAC;YACP,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;QACrB,CAAC;IACF,CAAC,CAAC;IAEF,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC/B,IAAI,OAAO,CAAC,UAAU,KAAK,OAAO,EAAE,CAAC;YACpC,KAAK,MAAM,IAAI,IAAI,cAAc;gBAAE,GAAG,CAAC,IAAI,EAAE,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;QACxE,CAAC;aAAM,CAAC;YACP,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,GAAG,EAAE,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;QAC1D,CAAC;IACF,CAAC;IACD,KAAK,MAAM,KAAK,IAAI,aAAa;QAAE,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,aAAa,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC;IAClF,IAAI,IAAI,KAAK,EAAE;QAAE,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC;IAEhD,OAAO,MAAM,CAAC;AACf,CAAC;AAED,SAAgB,SAAS,CAAC,QAAqB,EAAE,OAAyB;IACzE,MAAM,KAAK,GAAG,aAAa,CAAC,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACpD,IAAI,OAAO,CAAC,WAAW,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QACxE,OAAO,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC;IACxE,CAAC;IACD,OAAO,KAAgC,CAAC;AACzC,CAAC;AAED,SAAS,UAAU,CAAC,KAAa;IAChC,OAAO,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;AACjF,CAAC;AAED,SAAS,eAAe,CAAC,KAAa;IACrC,OAAO,UAAU,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;AAClD,CAAC;AAED,SAAS,UAAU,CAAC,IAAa,EAAE,MAAc,EAAE,KAAa;IAC/D,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACjC,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS;QAAE,OAAO,CAAC,GAAG,GAAG,OAAO,IAAI,CAAC,KAAK,KAAK,CAAC,CAAC;IACnE,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;QAC1B,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,YAAY,IAAI,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;QACvF,OAAO,KAAK,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,KAAK,CAAC,CAAC;IAC1C,CAAC;IAED,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC;SAC3C,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,eAAe,CAAC,CAAC,CAAC,GAAG,CAAC;SAChD,IAAI,CAAC,EAAE,CAAC,CAAC;IACX,MAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CACtC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAChE,CAAC;IAEF,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,CAAC,GAAG,GAAG,IAAI,IAAI,CAAC,IAAI,GAAG,KAAK,IAAI,CAAC,CAAC;IACtE,IAAI,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,EAAE,CAAC;QAChD,MAAM,KAAK,GAAG,UAAU;aACtB,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,UAAU,CAAE,CAAuB,CAAC,KAAK,CAAC,CAAC,CAAC;aAClH,IAAI,CAAC,EAAE,CAAC,CAAC;QACX,OAAO,CAAC,GAAG,GAAG,IAAI,IAAI,CAAC,IAAI,GAAG,KAAK,IAAI,KAAK,KAAK,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC;IAChE,CAAC;IACD,OAAO;QACN,GAAG,GAAG,IAAI,IAAI,CAAC,IAAI,GAAG,KAAK,GAAG;QAC9B,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;QAC9D,GAAG,GAAG,KAAK,IAAI,CAAC,IAAI,GAAG;KACvB,CAAC;AACH,CAAC;AAED,SAAgB,SAAS,CAAC,QAAqB,EAAE,MAAM,GAAG,IAAI;IAC7D,MAAM,KAAK,GAAG,UAAU,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;IACnD,IAAI,QAAQ,CAAC,WAAW;QAAE,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;IAC9D,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACzB,CAAC;AASD,MAAM,QAAQ,GAAG,qBAAqB,CAAC;AAEvC,SAAS,UAAU,CAAC,IAAY;IAC/B,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QAC1B,MAAM,IAAI,aAAa,CACtB,IAAI,IAAI,wGAAwG,CAChH,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACb,CAAC;AAED,SAAS,YAAY,CAAC,KAAc;IACnC,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,EAAE,CAAC;IACrD,IAAI,KAAK,YAAY,IAAI;QAAE,OAAO,KAAK,CAAC,WAAW,EAAE,CAAC;IACtD,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;AACtB,CAAC;AAED,SAAS,YAAY,CAAC,IAAY,EAAE,KAAc,EAAE,OAAyB;IAC5E,MAAM,OAAO,GAAe,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,UAAU,CAAC,IAAI,CAAC,EAAE,UAAU,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;IACtG,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,YAAY,IAAI,EAAE,CAAC;QAC1E,MAAM,IAAI,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;QACjC,IAAI,IAAI,KAAK,EAAE;YAAE,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;QACpF,OAAO,OAAO,CAAC;IAChB,CAAC;IACD,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QAC1B,MAAM,IAAI,aAAa,CAAC,wCAAwC,IAAI,gCAAgC,CAAC,CAAC;IACvG,CAAC;IACD,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAgC,CAAC,EAAE,CAAC;QAC7E,IAAI,GAAG,KAAK,OAAO,CAAC,YAAY,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YACjG,KAAK,MAAM,CAAC,IAAI,EAAE,SAAS,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAgC,CAAC,EAAE,CAAC;gBAClF,OAAO,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,GAAG,YAAY,CAAC,SAAS,CAAC,CAAC;YAChE,CAAC;QACF,CAAC;aAAM,IAAI,GAAG,KAAK,OAAO,CAAC,OAAO,EAAE,CAAC;YACpC,MAAM,IAAI,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;YACjC,IAAI,IAAI,KAAK,EAAE;gBAAE,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;QACrF,CAAC;aAAM,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YACjC,KAAK,MAAM,KAAK,IAAI,KAAK;gBAAE,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC;QACrF,CAAC;aAAM,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YAChC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC;QAC1D,CAAC;IACF,CAAC;IACD,OAAO,OAAO,CAAC;AAChB,CAAC;AAOD,SAAgB,SAAS,CAAC,IAA6B,EAAE,OAAyB;IACjF,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC/B,IAAI,IAAgB,CAAC;IACrB,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;QACtB,IAAI,GAAG,YAAY,CAAC,OAAO,CAAC,QAAQ,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;IACtD,CAAC;SAAM,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,YAAY,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,OAAO,EAAE,CAAC;QAClI,IAAI,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;IACtD,CAAC;SAAM,CAAC;QACP,IAAI,GAAG,YAAY,CAAC,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;IAC5C,CAAC;IACD,OAAO,SAAS,CAAC;QAChB,WAAW,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,wCAAwC,CAAC,CAAC,CAAC,SAAS;QACvF,IAAI;KACJ,CAAC,CAAC;AACJ,CAAC"}
@@ -0,0 +1,62 @@
1
+ {
2
+ "name": "n8n-nodes-data-mapper",
3
+ "version": "0.2.0",
4
+ "description": "n8n community node that maps and transforms data from one structure to another, with array wildcards, value transforms, lookup tables and JSON/XML input and output.",
5
+ "keywords": [
6
+ "n8n-community-node-package",
7
+ "n8n",
8
+ "mapper",
9
+ "mapping",
10
+ "transform",
11
+ "xml",
12
+ "json",
13
+ "etl"
14
+ ],
15
+ "license": "MIT",
16
+ "homepage": "https://github.com/SilentJMA/n8n-nodes-data-mapper#readme",
17
+ "bugs": {
18
+ "url": "https://github.com/SilentJMA/n8n-nodes-data-mapper/issues"
19
+ },
20
+ "repository": {
21
+ "type": "git",
22
+ "url": "git+https://github.com/SilentJMA/n8n-nodes-data-mapper.git"
23
+ },
24
+ "author": {
25
+ "name": "SilentJMA",
26
+ "email": "kilwanitro@gmail.com"
27
+ },
28
+ "engines": {
29
+ "node": ">=20.15"
30
+ },
31
+ "scripts": {
32
+ "build": "n8n-node build",
33
+ "build:watch": "tsc --watch",
34
+ "dev": "n8n-node dev",
35
+ "lint": "n8n-node lint",
36
+ "lint:fix": "n8n-node lint --fix",
37
+ "test": "n8n-node build && node --test test/*.test.js",
38
+ "prepublishOnly": "n8n-node prerelease",
39
+ "release": "n8n-node release"
40
+ },
41
+ "files": [
42
+ "dist",
43
+ "!dist/**/*.tsbuildinfo"
44
+ ],
45
+ "n8n": {
46
+ "n8nNodesApiVersion": 1,
47
+ "strict": true,
48
+ "credentials": [],
49
+ "nodes": [
50
+ "dist/nodes/DataMapper/DataMapper.node.js"
51
+ ]
52
+ },
53
+ "devDependencies": {
54
+ "@n8n/node-cli": "*",
55
+ "eslint": "9.32.0",
56
+ "prettier": "3.6.2",
57
+ "typescript": "5.9.2"
58
+ },
59
+ "peerDependencies": {
60
+ "n8n-workflow": "*"
61
+ }
62
+ }
package/package.json CHANGED
@@ -1,6 +1,62 @@
1
1
  {
2
2
  "name": "n8n-nodes-data-mapper",
3
- "version": "0.0.0-stage",
4
- "stub": true,
5
- "description": "Temporary package placeholder for staged publishing"
6
- }
3
+ "version": "0.2.0",
4
+ "description": "n8n community node that maps and transforms data from one structure to another, with array wildcards, value transforms, lookup tables and JSON/XML input and output.",
5
+ "keywords": [
6
+ "n8n-community-node-package",
7
+ "n8n",
8
+ "mapper",
9
+ "mapping",
10
+ "transform",
11
+ "xml",
12
+ "json",
13
+ "etl"
14
+ ],
15
+ "license": "MIT",
16
+ "homepage": "https://github.com/SilentJMA/n8n-nodes-data-mapper#readme",
17
+ "bugs": {
18
+ "url": "https://github.com/SilentJMA/n8n-nodes-data-mapper/issues"
19
+ },
20
+ "repository": {
21
+ "type": "git",
22
+ "url": "git+https://github.com/SilentJMA/n8n-nodes-data-mapper.git"
23
+ },
24
+ "author": {
25
+ "name": "SilentJMA",
26
+ "email": "kilwanitro@gmail.com"
27
+ },
28
+ "engines": {
29
+ "node": ">=20.15"
30
+ },
31
+ "scripts": {
32
+ "build": "n8n-node build",
33
+ "build:watch": "tsc --watch",
34
+ "dev": "n8n-node dev",
35
+ "lint": "n8n-node lint",
36
+ "lint:fix": "n8n-node lint --fix",
37
+ "test": "n8n-node build && node --test test/*.test.js",
38
+ "prepublishOnly": "n8n-node prerelease",
39
+ "release": "n8n-node release"
40
+ },
41
+ "files": [
42
+ "dist",
43
+ "!dist/**/*.tsbuildinfo"
44
+ ],
45
+ "n8n": {
46
+ "n8nNodesApiVersion": 1,
47
+ "strict": true,
48
+ "credentials": [],
49
+ "nodes": [
50
+ "dist/nodes/DataMapper/DataMapper.node.js"
51
+ ]
52
+ },
53
+ "devDependencies": {
54
+ "@n8n/node-cli": "*",
55
+ "eslint": "9.32.0",
56
+ "prettier": "3.6.2",
57
+ "typescript": "5.9.2"
58
+ },
59
+ "peerDependencies": {
60
+ "n8n-workflow": "*"
61
+ }
62
+ }