n8n-nodes-data-mapper 0.1.0 → 0.4.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,553 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ProfileError = void 0;
4
+ exports.detectFormat = detectFormat;
5
+ exports.parseProfile = parseProfile;
6
+ exports.flattenSource = flattenSource;
7
+ exports.autoMap = autoMap;
8
+ exports.sourceFields = sourceFields;
9
+ const xml_1 = require("./xml");
10
+ const mapping_1 = require("./mapping");
11
+ const MAX_FIELD_DEPTH = 200;
12
+ const hasOwn = (container, key) => Object.prototype.hasOwnProperty.call(container, key);
13
+ function joinKey(prefix, key) {
14
+ if (/^[^.[\]\s"']+$/.test(key))
15
+ return prefix ? `${prefix}.${key}` : key;
16
+ const quoted = key.includes('"') ? `['${key}']` : `["${key}"]`;
17
+ return `${prefix}${quoted}`;
18
+ }
19
+ class ProfileError extends Error {
20
+ }
21
+ exports.ProfileError = ProfileError;
22
+ const DATE_HINT = /^\d{4}-\d{2}-\d{2}([T ]\d{2}:\d{2})/;
23
+ function dataTypeToField(type) {
24
+ switch ((type !== null && type !== void 0 ? type : '').toLowerCase()) {
25
+ case 'number':
26
+ case 'integer':
27
+ case 'float':
28
+ case 'double':
29
+ case 'decimal':
30
+ return 'number';
31
+ case 'boolean':
32
+ case 'bit':
33
+ return 'boolean';
34
+ case 'datetime':
35
+ case 'date':
36
+ case 'time':
37
+ return 'datetime';
38
+ default:
39
+ return 'string';
40
+ }
41
+ }
42
+ function localName(name) {
43
+ const colon = name.indexOf(':');
44
+ return colon === -1 ? name : name.slice(colon + 1);
45
+ }
46
+ function childElements(element) {
47
+ return element.children.filter((c) => c.type === 'element');
48
+ }
49
+ function findDescendant(element, name) {
50
+ const queue = [element];
51
+ while (queue.length > 0) {
52
+ const current = queue.shift();
53
+ for (const child of childElements(current)) {
54
+ if (localName(child.name) === name)
55
+ return child;
56
+ queue.push(child);
57
+ }
58
+ }
59
+ return undefined;
60
+ }
61
+ function detectFormat(text) {
62
+ const trimmed = text.replace(/^\uFEFF/, '').trim();
63
+ if (trimmed.startsWith('<')) {
64
+ if (/type\s*=\s*"profile\.(xml|json|flatfile)"/.test(trimmed))
65
+ return 'component';
66
+ if (/<(\w+:)?(XMLProfile|JSONProfile|FlatFileProfile)[\s>]/.test(trimmed))
67
+ return 'component';
68
+ if (/<(\w+:)?schema[\s>]/.test(trimmed) && /XMLSchema/.test(trimmed))
69
+ return 'xsd';
70
+ return 'sampleXml';
71
+ }
72
+ if (trimmed.startsWith('{') || trimmed.startsWith('[')) {
73
+ if (/"\$schema"/.test(trimmed) || /"properties"\s*:/.test(trimmed))
74
+ return 'jsonSchema';
75
+ return 'sampleJson';
76
+ }
77
+ return 'csv';
78
+ }
79
+ function parseProfile(text, format = 'auto') {
80
+ const trimmed = text.replace(/^\uFEFF/, '').trim();
81
+ if (trimmed === '')
82
+ throw new ProfileError('The target profile is empty');
83
+ const kind = format === 'auto' ? detectFormat(trimmed) : format;
84
+ let result;
85
+ let failure;
86
+ try {
87
+ result = dispatchProfile(kind, trimmed);
88
+ }
89
+ catch (error) {
90
+ failure = error;
91
+ }
92
+ if (result)
93
+ return result;
94
+ if (failure instanceof ProfileError)
95
+ throw failure;
96
+ if (failure instanceof xml_1.XmlParseError)
97
+ throw new ProfileError(`Could not read the profile as XML: ${failure.message}`);
98
+ if (failure instanceof SyntaxError)
99
+ throw new ProfileError(`Could not read the profile as JSON: ${failure.message}`);
100
+ throw failure !== null && failure !== void 0 ? failure : new ProfileError('Could not read the profile');
101
+ }
102
+ function dispatchProfile(kind, trimmed) {
103
+ switch (kind) {
104
+ case 'component':
105
+ return parseComponentProfile(trimmed);
106
+ case 'xsd':
107
+ return parseXsd(trimmed);
108
+ case 'sampleXml':
109
+ return parseSampleXml(trimmed);
110
+ case 'jsonSchema':
111
+ return parseJsonSchema(trimmed);
112
+ case 'sampleJson':
113
+ return parseSampleJson(trimmed);
114
+ case 'csv':
115
+ return parseCsvHeader(trimmed);
116
+ default:
117
+ throw new ProfileError(`Unknown profile format "${kind}"`);
118
+ }
119
+ }
120
+ function parseComponentProfile(text) {
121
+ var _a, _b, _c;
122
+ const doc = (0, xml_1.parseXml)(text);
123
+ const xml = (_a = findDescendant(doc.root, 'XMLProfile')) !== null && _a !== void 0 ? _a : (localName(doc.root.name) === 'XMLProfile' ? doc.root : undefined);
124
+ if (xml)
125
+ return parseComponentXml(xml);
126
+ const json = (_b = findDescendant(doc.root, 'JSONProfile')) !== null && _b !== void 0 ? _b : (localName(doc.root.name) === 'JSONProfile' ? doc.root : undefined);
127
+ if (json)
128
+ return parseComponentJson(json);
129
+ const flat = (_c = findDescendant(doc.root, 'FlatFileProfile')) !== null && _c !== void 0 ? _c : (localName(doc.root.name) === 'FlatFileProfile' ? doc.root : undefined);
130
+ if (flat)
131
+ return parseComponentFlatFile(flat);
132
+ throw new ProfileError('This XML is not a recognized profile component (XML, JSON or Flat File)');
133
+ }
134
+ function parseComponentXml(xmlProfile) {
135
+ const dataElements = findDescendant(xmlProfile, 'DataElements');
136
+ if (!dataElements)
137
+ throw new ProfileError('The XML profile component has no <DataElements>');
138
+ const fields = [];
139
+ let rootName;
140
+ const walk = (element, prefix, isRoot) => {
141
+ for (const node of childElements(element)) {
142
+ const name = node.attributes.name;
143
+ if (localName(node.name) !== 'XMLElement' || !name)
144
+ continue;
145
+ if (isRoot && rootName === undefined)
146
+ rootName = name;
147
+ const repeating = node.attributes.maxOccurs === '-1';
148
+ const path = `${joinKey(prefix, name)}${repeating ? '[*]' : ''}`;
149
+ const kids = childElements(node).filter((c) => localName(c.name) === 'XMLElement');
150
+ const attrs = childElements(node).filter((c) => localName(c.name) === 'XMLAttribute');
151
+ const hasChildElements = kids.length > 0;
152
+ if (!hasChildElements && node.attributes.isMappable !== 'false') {
153
+ fields.push({ path, name, type: dataTypeToField(node.attributes.dataType), repeating, required: node.attributes.minOccurs === '1' });
154
+ }
155
+ for (const attr of attrs) {
156
+ const attrName = attr.attributes.name;
157
+ if (attrName)
158
+ fields.push({ path: joinKey(`${path}.$`, attrName), name: attrName, type: dataTypeToField(attr.attributes.dataType), repeating: false, required: attr.attributes.required === 'true' });
159
+ }
160
+ if (hasChildElements)
161
+ walk(node, path, false);
162
+ }
163
+ };
164
+ walk(dataElements, '', true);
165
+ return { kind: 'component', rootName, fields };
166
+ }
167
+ function parseComponentJson(jsonProfile) {
168
+ const dataElements = findDescendant(jsonProfile, 'DataElements');
169
+ if (!dataElements)
170
+ throw new ProfileError('The JSON profile component has no <DataElements>');
171
+ const fields = [];
172
+ const walkObject = (objectEl, prefix) => {
173
+ for (const entry of childElements(objectEl)) {
174
+ if (localName(entry.name) !== 'JSONObjectEntry')
175
+ continue;
176
+ const name = entry.attributes.name;
177
+ if (!name)
178
+ continue;
179
+ const nestedObject = childElements(entry).find((c) => localName(c.name) === 'JSONObject');
180
+ const array = childElements(entry).find((c) => localName(c.name) === 'JSONArray');
181
+ if (array) {
182
+ const arrayElement = childElements(array).find((c) => localName(c.name) === 'JSONArrayElement');
183
+ const arrObject = arrayElement && childElements(arrayElement).find((c) => localName(c.name) === 'JSONObject');
184
+ const path = `${joinKey(prefix, name)}[*]`;
185
+ if (arrObject)
186
+ walkObject(arrObject, path);
187
+ else
188
+ fields.push({ path, name, type: dataTypeToField(arrayElement === null || arrayElement === void 0 ? void 0 : arrayElement.attributes.dataType), repeating: true, required: false });
189
+ }
190
+ else if (nestedObject) {
191
+ walkObject(nestedObject, joinKey(prefix, name));
192
+ }
193
+ else {
194
+ fields.push({ path: joinKey(prefix, name), name, type: dataTypeToField(entry.attributes.dataType), repeating: false, required: false });
195
+ }
196
+ }
197
+ };
198
+ const root = childElements(dataElements).find((c) => localName(c.name) === 'JSONRootValue');
199
+ const rootObject = root && childElements(root).find((c) => localName(c.name) === 'JSONObject');
200
+ if (rootObject)
201
+ walkObject(rootObject, '');
202
+ else if (root)
203
+ walkObject(root, '');
204
+ return { kind: 'component', fields };
205
+ }
206
+ function parseComponentFlatFile(flatProfile) {
207
+ var _a;
208
+ const dataElements = findDescendant(flatProfile, 'DataElements');
209
+ if (!dataElements)
210
+ throw new ProfileError('The Flat File profile component has no <DataElements>');
211
+ const records = childElements(dataElements).filter((c) => localName(c.name) === 'FlatFileRecord');
212
+ const multi = records.length > 1;
213
+ const fields = [];
214
+ for (const record of records) {
215
+ const recordName = (_a = record.attributes.name) !== null && _a !== void 0 ? _a : 'Record';
216
+ const elements = findDescendant(record, 'FlatFileElements');
217
+ if (!elements)
218
+ continue;
219
+ for (const el of childElements(elements)) {
220
+ if (localName(el.name) !== 'FlatFileElement')
221
+ continue;
222
+ const name = el.attributes.name;
223
+ if (!name || el.attributes.isMappable === 'false')
224
+ continue;
225
+ fields.push({ path: multi ? joinKey(joinKey('', recordName), name) : joinKey('', name), name, type: dataTypeToField(el.attributes.dataType), repeating: false, required: el.attributes.mandatory === 'true' });
226
+ }
227
+ }
228
+ return { kind: 'component', fields };
229
+ }
230
+ function parseXsd(text) {
231
+ const doc = (0, xml_1.parseXml)(text);
232
+ const fields = [];
233
+ let rootName;
234
+ const complexTypes = new Map();
235
+ for (const node of descendants(doc.root)) {
236
+ if (localName(node.name) === 'complexType' && node.attributes.name)
237
+ complexTypes.set(node.attributes.name, node);
238
+ }
239
+ const walk = (element, prefix, isRoot, seen) => {
240
+ var _a;
241
+ const name = element.attributes.name;
242
+ if (!name)
243
+ return;
244
+ if (isRoot && rootName === undefined)
245
+ rootName = name;
246
+ const repeating = element.attributes.maxOccurs === 'unbounded' || Number(element.attributes.maxOccurs) > 1;
247
+ const path = `${joinKey(prefix, name)}${repeating ? '[*]' : ''}`;
248
+ let complex = childElements(element).find((c) => localName(c.name) === 'complexType');
249
+ const typeName = element.attributes.type ? localName(element.attributes.type) : undefined;
250
+ if (!complex && typeName && complexTypes.has(typeName) && !seen.has(typeName))
251
+ complex = complexTypes.get(typeName);
252
+ if (complex) {
253
+ const next = typeName ? new Set([...seen, typeName]) : seen;
254
+ for (const child of descendants(complex)) {
255
+ if (localName(child.name) === 'element')
256
+ walk(child, path, false, next);
257
+ if (localName(child.name) === 'attribute' && child.attributes.name) {
258
+ fields.push({ path: joinKey(`${path}.$`, child.attributes.name), name: child.attributes.name, type: dataTypeToField(localName((_a = child.attributes.type) !== null && _a !== void 0 ? _a : '')), repeating: false, required: child.attributes.use === 'required' });
259
+ }
260
+ }
261
+ }
262
+ else {
263
+ fields.push({ path, name, type: dataTypeToField(typeName), repeating, required: element.attributes.minOccurs !== '0' });
264
+ }
265
+ };
266
+ const roots = childElements(doc.root).filter((c) => localName(c.name) === 'element');
267
+ for (const root of roots)
268
+ walk(root, '', true, new Set());
269
+ if (fields.length === 0)
270
+ throw new ProfileError('No elements found in the XSD');
271
+ return { kind: 'xsd', rootName, fields };
272
+ }
273
+ function* descendants(element) {
274
+ for (const child of childElements(element)) {
275
+ yield child;
276
+ yield* descendants(child);
277
+ }
278
+ }
279
+ function parseJsonSchema(text) {
280
+ const schema = JSON.parse(text);
281
+ const fields = [];
282
+ const walk = (node, prefix) => {
283
+ var _a, _b;
284
+ if (!node || typeof node !== 'object')
285
+ return;
286
+ const s = node;
287
+ const type = Array.isArray(s.type) ? s.type.find((t) => t !== 'null') : s.type;
288
+ if (type === 'object' || s.properties) {
289
+ const props = ((_a = s.properties) !== null && _a !== void 0 ? _a : {});
290
+ const required = new Set((_b = s.required) !== null && _b !== void 0 ? _b : []);
291
+ for (const [key, child] of Object.entries(props)) {
292
+ walkField(key, child, prefix, required.has(key));
293
+ }
294
+ }
295
+ };
296
+ const walkField = (key, child, prefix, required) => {
297
+ const c = (child !== null && child !== void 0 ? child : {});
298
+ const type = Array.isArray(c.type) ? c.type.find((t) => t !== 'null') : c.type;
299
+ if (type === 'object' || c.properties) {
300
+ walk(c, `${prefix}${key}.`);
301
+ }
302
+ else if (type === 'array' && c.items) {
303
+ const items = c.items;
304
+ const itemType = items.type;
305
+ if (itemType === 'object' || items.properties)
306
+ walk(items, `${prefix}${key}[*].`);
307
+ else
308
+ fields.push({ path: `${prefix}${key}[*]`, name: key, type: schemaType(itemType, items.format), repeating: true, required });
309
+ }
310
+ else {
311
+ fields.push({ path: `${prefix}${key}`, name: key, type: schemaType(type, c.format), repeating: false, required });
312
+ }
313
+ };
314
+ walk(schema, '');
315
+ if (fields.length === 0)
316
+ throw new ProfileError('No properties found in the JSON Schema');
317
+ return { kind: 'jsonSchema', fields };
318
+ }
319
+ function schemaType(type, format) {
320
+ if (format === 'date' || format === 'date-time' || format === 'time')
321
+ return 'datetime';
322
+ return dataTypeToField(type);
323
+ }
324
+ function parseSampleJson(text) {
325
+ const sample = JSON.parse(text);
326
+ const fields = [];
327
+ inferFields(Array.isArray(sample) ? sample[0] : sample, '', fields);
328
+ if (fields.length === 0)
329
+ throw new ProfileError('Could not find any fields in the sample JSON');
330
+ return { kind: 'sampleJson', fields };
331
+ }
332
+ function parseSampleXml(text) {
333
+ const doc = (0, xml_1.parseXml)(text);
334
+ const fields = [];
335
+ const sample = elementToSample(doc.root);
336
+ inferFields(sample, '', fields);
337
+ return { kind: 'sampleXml', rootName: localName(doc.root.name), fields: fields.map((f) => ({ ...f, path: stripRoot(f.path, localName(doc.root.name)) })) };
338
+ }
339
+ function stripRoot(path, root) {
340
+ return path === root ? path : path.startsWith(`${root}.`) ? path.slice(root.length + 1) : path;
341
+ }
342
+ function elementToSample(element) {
343
+ const result = {};
344
+ if (Object.keys(element.attributes).length > 0)
345
+ result.$ = { ...element.attributes };
346
+ const kids = childElements(element);
347
+ const text = element.children.filter((c) => c.type === 'text').map((c) => c.value).join('').trim();
348
+ if (kids.length === 0) {
349
+ if (Object.keys(element.attributes).length === 0)
350
+ return text;
351
+ if (text !== '')
352
+ result._ = text;
353
+ return result;
354
+ }
355
+ for (const kid of kids) {
356
+ const name = localName(kid.name);
357
+ const value = elementToSample(kid);
358
+ if (hasOwn(result, name)) {
359
+ const existing = result[name];
360
+ (0, mapping_1.setOwn)(result, name, Array.isArray(existing) ? [...existing, value] : [existing, value]);
361
+ }
362
+ else {
363
+ (0, mapping_1.setOwn)(result, name, value);
364
+ }
365
+ }
366
+ if (text !== '')
367
+ result._ = text;
368
+ return result;
369
+ }
370
+ function inferFields(value, prefix, fields, depth = 0) {
371
+ if (depth > MAX_FIELD_DEPTH)
372
+ return;
373
+ if (value === null || typeof value !== 'object') {
374
+ fields.push({ path: prefix, name: lastSegment(prefix), type: inferType(value), repeating: false, required: false });
375
+ return;
376
+ }
377
+ if (Array.isArray(value)) {
378
+ const sample = mergeArraySample(value);
379
+ if (sample !== undefined && typeof sample === 'object' && sample !== null && !Array.isArray(sample)) {
380
+ inferFields(sample, `${prefix}[*]`, fields, depth + 1);
381
+ }
382
+ else {
383
+ fields.push({ path: `${prefix}[*]`, name: lastSegment(prefix), type: inferType(sample), repeating: true, required: false });
384
+ }
385
+ return;
386
+ }
387
+ for (const [key, child] of Object.entries(value)) {
388
+ inferFields(child, joinKey(prefix, key), fields, depth + 1);
389
+ }
390
+ }
391
+ function mergeArraySample(array) {
392
+ if (array.length === 0)
393
+ return undefined;
394
+ if (array.some((e) => e === null || typeof e !== 'object' || Array.isArray(e)))
395
+ return array[0];
396
+ const merged = {};
397
+ for (const entry of array) {
398
+ for (const [key, value] of Object.entries(entry)) {
399
+ const current = (0, mapping_1.getOwn)(merged, key);
400
+ if (current === null || current === undefined)
401
+ (0, mapping_1.setOwn)(merged, key, value);
402
+ }
403
+ }
404
+ return merged;
405
+ }
406
+ function inferType(value) {
407
+ if (typeof value === 'number')
408
+ return 'number';
409
+ if (typeof value === 'boolean')
410
+ return 'boolean';
411
+ if (typeof value === 'string' && DATE_HINT.test(value))
412
+ return 'datetime';
413
+ return 'string';
414
+ }
415
+ function parseCsvHeader(text) {
416
+ const firstLine = text.split(/\r?\n/)[0];
417
+ const delimiter = [',', ';', '\t', '|'].map((d) => ({ d, n: firstLine.split(d).length })).sort((a, b) => b.n - a.n)[0].d;
418
+ const columns = firstLine
419
+ .split(delimiter)
420
+ .map((c) => c.trim().replace(/^["']|["']$/g, '').trim())
421
+ .filter((c) => c !== '');
422
+ if (columns.length === 0)
423
+ throw new ProfileError('No columns found in the CSV header');
424
+ return { kind: 'csv', fields: columns.map((name) => ({ path: name, name, type: 'string', repeating: false, required: false })) };
425
+ }
426
+ function flattenSource(data) {
427
+ const paths = [];
428
+ const walk = (value, prefix, depth) => {
429
+ if (depth > MAX_FIELD_DEPTH)
430
+ return;
431
+ if (value === null || typeof value !== 'object') {
432
+ if (prefix)
433
+ paths.push({ path: prefix, name: lastSegment(prefix) });
434
+ return;
435
+ }
436
+ if (Array.isArray(value)) {
437
+ const sample = mergeArraySample(value);
438
+ if (sample !== undefined && typeof sample === 'object' && sample !== null && !Array.isArray(sample)) {
439
+ walk(sample, `${prefix}[*]`, depth + 1);
440
+ }
441
+ else if (prefix) {
442
+ paths.push({ path: `${prefix}[*]`, name: lastSegment(prefix) });
443
+ }
444
+ return;
445
+ }
446
+ for (const [key, child] of Object.entries(value)) {
447
+ walk(child, joinKey(prefix, key), depth + 1);
448
+ }
449
+ };
450
+ walk(data, '', 0);
451
+ return paths;
452
+ }
453
+ function lastSegment(path) {
454
+ let tokens = [];
455
+ try {
456
+ tokens = (0, mapping_1.parsePath)(path);
457
+ }
458
+ catch {
459
+ return path;
460
+ }
461
+ const names = tokens.filter((t) => typeof t === 'string' && t !== '*' && t !== '$' && t !== '_');
462
+ return names.length ? names[names.length - 1] : path;
463
+ }
464
+ function normalize(name) {
465
+ return name.toLowerCase().replace(/[^a-z0-9]/g, '');
466
+ }
467
+ function countStars(path) {
468
+ var _a;
469
+ return ((_a = path.match(/\[\*\]/g)) !== null && _a !== void 0 ? _a : []).length;
470
+ }
471
+ function levenshtein(a, b) {
472
+ if (a === b)
473
+ return 0;
474
+ if (a.length === 0)
475
+ return b.length;
476
+ if (b.length === 0)
477
+ return a.length;
478
+ let prev = Array.from({ length: b.length + 1 }, (_, i) => i);
479
+ for (let i = 0; i < a.length; i++) {
480
+ const curr = [i + 1];
481
+ for (let j = 0; j < b.length; j++) {
482
+ curr.push(Math.min(prev[j + 1] + 1, curr[j] + 1, prev[j] + (a[i] === b[j] ? 0 : 1)));
483
+ }
484
+ prev = curr;
485
+ }
486
+ return prev[b.length];
487
+ }
488
+ function similarity(a, b) {
489
+ if (a === '' || b === '')
490
+ return 0;
491
+ if (a === b)
492
+ return 1;
493
+ const distance = levenshtein(a, b);
494
+ const ratio = 1 - distance / Math.max(a.length, b.length);
495
+ const contains = a.includes(b) || b.includes(a) ? 0.15 : 0;
496
+ return Math.min(1, ratio + contains);
497
+ }
498
+ const TYPE_TRANSFORM = {
499
+ string: 'none',
500
+ number: 'number',
501
+ boolean: 'boolean',
502
+ datetime: 'date',
503
+ };
504
+ function autoMap(sources, target, options) {
505
+ const matched = [];
506
+ const unmatched = [];
507
+ const rules = [];
508
+ const used = new Set();
509
+ const prep = (s) => (options.caseSensitive ? s : s.toLowerCase());
510
+ for (const field of target.fields) {
511
+ const targetStars = countStars(field.path);
512
+ const targetKey = options.caseSensitive ? field.name : normalize(field.name);
513
+ const targetTokens = field.path.replace(/\[\*\]/g, '').split('.').filter(Boolean).map((t) => (options.caseSensitive ? t : normalize(t)));
514
+ let best;
515
+ for (const source of sources) {
516
+ if (!options.reuseSources && used.has(source.path))
517
+ continue;
518
+ if (countStars(source.path) < targetStars)
519
+ continue;
520
+ const sourceKey = options.caseSensitive ? source.name : normalize(source.name);
521
+ let score = options.caseSensitive ? (sourceKey === targetKey ? 1 : similarity(prep(source.name), prep(field.name))) : similarity(sourceKey, targetKey);
522
+ const sourceTokens = source.path.replace(/\[\*\]/g, '').split('.').filter(Boolean).map((t) => (options.caseSensitive ? t : normalize(t)));
523
+ if (targetTokens.length > 1 && sourceTokens.length > 1) {
524
+ const tParent = targetTokens[targetTokens.length - 2];
525
+ const sParent = sourceTokens[sourceTokens.length - 2];
526
+ if (tParent === sParent)
527
+ score = Math.min(1, score + 0.1);
528
+ }
529
+ if (options.strategy === 'exact' && score < 1)
530
+ continue;
531
+ if (!best || score > best.score)
532
+ best = { source, score };
533
+ }
534
+ if (best && best.score >= options.threshold) {
535
+ used.add(best.source.path);
536
+ matched.push({ target: field.path, source: best.source.path, confidence: Math.round(best.score * 100) / 100 });
537
+ rules.push({ source: best.source.path, target: field.path, transform: TYPE_TRANSFORM[field.type] });
538
+ }
539
+ else {
540
+ unmatched.push(field.path);
541
+ if (options.unmatched === 'null')
542
+ rules.push({ source: '\u0000__never__', target: field.path, ifMissing: 'null' });
543
+ }
544
+ }
545
+ return { rules, matched, unmatched };
546
+ }
547
+ function sourceFields(profile) {
548
+ if (profile.kind !== 'sampleXml' || !profile.rootName)
549
+ return profile.fields;
550
+ const root = profile.rootName;
551
+ return profile.fields.map((field) => ({ ...field, path: field.path ? `${root}.${field.path}` : root }));
552
+ }
553
+ //# sourceMappingURL=profile.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"profile.js","sourceRoot":"","sources":["../../../nodes/DataMapper/profile.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ import type { IExecuteFunctions, ILoadOptionsFunctions, INodeExecutionData, INodeProperties, ResourceMapperFields } from 'n8n-workflow';
2
+ import { type MappingRule } from './mapping';
3
+ import { type Profile, type ProfileField } from './profile';
4
+ export declare const visualProperties: INodeProperties[];
5
+ export declare function encodeFieldId(path: string): string;
6
+ export declare function decodeFieldId(id: string): string;
7
+ export declare function fieldDisplayName(field: ProfileField): string;
8
+ export declare function parseDragReference(raw: unknown, targetStars: number): string | undefined;
9
+ export declare function getProfileFields(this: ILoadOptionsFunctions): Promise<ResourceMapperFields>;
10
+ export declare const SOURCE_PREFIX = "src::";
11
+ export declare function buildDropRules(raw: Record<string, unknown>, resolved: Record<string, unknown>, profile: Profile | undefined, options: {
12
+ convertTypes: boolean;
13
+ keepEmpty: boolean;
14
+ }): MappingRule[];
15
+ export declare function orderByProfile(mapped: Record<string, unknown>, profile: Profile | undefined): Record<string, unknown>;
16
+ export declare function executeVisual(this: IExecuteFunctions): Promise<INodeExecutionData[][]>;