configforge 1.0.0-beta.1 → 1.0.0-beta.10
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 +574 -11
- package/dist/core/ConversionResult.d.ts +22 -0
- package/dist/core/ConversionResult.d.ts.map +1 -1
- package/dist/core/ConversionResult.js +44 -30
- package/dist/core/ConversionResult.js.map +1 -1
- package/dist/core/Converter.d.ts +40 -10
- package/dist/core/Converter.d.ts.map +1 -1
- package/dist/core/Converter.js +137 -29
- package/dist/core/Converter.js.map +1 -1
- package/dist/core/Mapper.d.ts +12 -0
- package/dist/core/Mapper.d.ts.map +1 -1
- package/dist/core/Mapper.js +155 -3
- package/dist/core/Mapper.js.map +1 -1
- package/dist/core/Pipeline.d.ts +42 -0
- package/dist/core/Pipeline.d.ts.map +1 -0
- package/dist/core/Pipeline.js +134 -0
- package/dist/core/Pipeline.js.map +1 -0
- package/dist/core/pipeline/PipelineBuilder.d.ts +67 -0
- package/dist/core/pipeline/PipelineBuilder.d.ts.map +1 -0
- package/dist/core/pipeline/PipelineBuilder.js +109 -0
- package/dist/core/pipeline/PipelineBuilder.js.map +1 -0
- package/dist/core/pipeline/PipelineSteps.d.ts +74 -0
- package/dist/core/pipeline/PipelineSteps.d.ts.map +1 -0
- package/dist/core/pipeline/PipelineSteps.js +298 -0
- package/dist/core/pipeline/PipelineSteps.js.map +1 -0
- package/dist/errors/ErrorCollector.d.ts +119 -0
- package/dist/errors/ErrorCollector.d.ts.map +1 -0
- package/dist/errors/ErrorCollector.js +197 -0
- package/dist/errors/ErrorCollector.js.map +1 -0
- package/dist/errors/ErrorContext.d.ts +168 -0
- package/dist/errors/ErrorContext.d.ts.map +1 -0
- package/dist/errors/ErrorContext.js +356 -0
- package/dist/errors/ErrorContext.js.map +1 -0
- package/dist/errors/ErrorRecovery.d.ts +91 -0
- package/dist/errors/ErrorRecovery.d.ts.map +1 -0
- package/dist/errors/ErrorRecovery.js +321 -0
- package/dist/errors/ErrorRecovery.js.map +1 -0
- package/dist/errors/ErrorReporter.d.ts +58 -0
- package/dist/errors/ErrorReporter.d.ts.map +1 -0
- package/dist/errors/ErrorReporter.js +262 -0
- package/dist/errors/ErrorReporter.js.map +1 -0
- package/dist/errors/ErrorTypes.d.ts +103 -0
- package/dist/errors/ErrorTypes.d.ts.map +1 -0
- package/dist/errors/ErrorTypes.js +125 -0
- package/dist/errors/ErrorTypes.js.map +1 -0
- package/dist/errors/SpecificErrors.d.ts +45 -0
- package/dist/errors/SpecificErrors.d.ts.map +1 -0
- package/dist/errors/SpecificErrors.js +124 -0
- package/dist/errors/SpecificErrors.js.map +1 -0
- package/dist/errors/SuggestionEngine.d.ts +63 -0
- package/dist/errors/SuggestionEngine.d.ts.map +1 -0
- package/dist/errors/SuggestionEngine.js +328 -0
- package/dist/errors/SuggestionEngine.js.map +1 -0
- package/dist/errors/index.d.ts +12 -0
- package/dist/errors/index.d.ts.map +1 -0
- package/dist/errors/index.js +39 -0
- package/dist/errors/index.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +7 -2
- package/dist/index.js.map +1 -1
- package/dist/types/index.d.ts +8 -1
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js.map +1 -1
- package/dist/validators/ValidatorRegistry.d.ts +55 -0
- package/dist/validators/ValidatorRegistry.d.ts.map +1 -0
- package/dist/validators/ValidatorRegistry.js +140 -0
- package/dist/validators/ValidatorRegistry.js.map +1 -0
- package/dist/validators/built-in.d.ts +93 -0
- package/dist/validators/built-in.d.ts.map +1 -0
- package/dist/validators/built-in.js +290 -0
- package/dist/validators/built-in.js.map +1 -0
- package/dist/validators/index.d.ts +4 -0
- package/dist/validators/index.d.ts.map +1 -0
- package/dist/validators/index.js +24 -0
- package/dist/validators/index.js.map +1 -0
- package/package.json +1 -1
package/dist/core/Mapper.js
CHANGED
|
@@ -46,16 +46,19 @@ class Mapper {
|
|
|
46
46
|
* Execute a single mapping
|
|
47
47
|
*/
|
|
48
48
|
executeMapping(mapping, source, target, context) {
|
|
49
|
-
//
|
|
49
|
+
// Handle conditional mappings
|
|
50
50
|
if (mapping.type === 'conditional') {
|
|
51
|
+
this.executeConditionalMapping(mapping, source, target, context);
|
|
51
52
|
return;
|
|
52
53
|
}
|
|
53
|
-
//
|
|
54
|
+
// Handle forEach mappings
|
|
54
55
|
if (mapping.type === 'forEach') {
|
|
56
|
+
this.executeForEachMapping(mapping, source, target, context);
|
|
55
57
|
return;
|
|
56
58
|
}
|
|
57
|
-
//
|
|
59
|
+
// Handle merge mappings
|
|
58
60
|
if (mapping.type === 'merge') {
|
|
61
|
+
this.executeMergeMapping(mapping, source, target, context);
|
|
59
62
|
return;
|
|
60
63
|
}
|
|
61
64
|
// Handle simple mappings
|
|
@@ -85,6 +88,155 @@ class Mapper {
|
|
|
85
88
|
// Set the target value
|
|
86
89
|
this.setValue(target, mapping.target, targetValue, context);
|
|
87
90
|
}
|
|
91
|
+
/**
|
|
92
|
+
* Execute a forEach mapping - iterates over arrays or objects
|
|
93
|
+
*/
|
|
94
|
+
executeForEachMapping(mapping, source, target, context) {
|
|
95
|
+
// Get the forEach function from metadata
|
|
96
|
+
const forEachFn = mapping.metadata?.forEachFn;
|
|
97
|
+
if (!forEachFn) {
|
|
98
|
+
throw new types_1.MappingError(`forEach mapping missing forEachFn in metadata`, {
|
|
99
|
+
path: mapping.source,
|
|
100
|
+
});
|
|
101
|
+
}
|
|
102
|
+
// Get the source array/object
|
|
103
|
+
const sourceValue = this.resolveValue(source, mapping.source, context);
|
|
104
|
+
if (sourceValue === undefined || sourceValue === null) {
|
|
105
|
+
return;
|
|
106
|
+
}
|
|
107
|
+
let result;
|
|
108
|
+
if (Array.isArray(sourceValue)) {
|
|
109
|
+
// Handle arrays
|
|
110
|
+
result = [];
|
|
111
|
+
for (let i = 0; i < sourceValue.length; i++) {
|
|
112
|
+
const item = sourceValue[i];
|
|
113
|
+
const itemContext = {
|
|
114
|
+
...context,
|
|
115
|
+
path: `${mapping.source}[${i}]`,
|
|
116
|
+
index: i,
|
|
117
|
+
parent: sourceValue,
|
|
118
|
+
};
|
|
119
|
+
try {
|
|
120
|
+
const mappedItem = forEachFn(item, i, itemContext);
|
|
121
|
+
// Skip null items (filtering)
|
|
122
|
+
if (mappedItem !== null && mappedItem !== undefined) {
|
|
123
|
+
result.push(mappedItem);
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
catch (error) {
|
|
127
|
+
throw new types_1.MappingError(`forEach function failed for item at index ${i}: ${error instanceof Error ? error.message : 'Unknown error'}`, { path: `${mapping.source}[${i}]` });
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
else if (typeof sourceValue === 'object') {
|
|
132
|
+
// Handle objects
|
|
133
|
+
result = {};
|
|
134
|
+
const keys = Object.keys(sourceValue);
|
|
135
|
+
for (let i = 0; i < keys.length; i++) {
|
|
136
|
+
const key = keys[i];
|
|
137
|
+
const item = sourceValue[key];
|
|
138
|
+
const itemContext = {
|
|
139
|
+
...context,
|
|
140
|
+
path: `${mapping.source}.${key}`,
|
|
141
|
+
index: i,
|
|
142
|
+
parent: sourceValue,
|
|
143
|
+
};
|
|
144
|
+
try {
|
|
145
|
+
const mappedItem = forEachFn(item, key, itemContext);
|
|
146
|
+
// Skip null items (filtering)
|
|
147
|
+
if (mappedItem !== null && mappedItem !== undefined) {
|
|
148
|
+
result[key] = mappedItem;
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
catch (error) {
|
|
152
|
+
throw new types_1.MappingError(`forEach function failed for key '${key}': ${error instanceof Error ? error.message : 'Unknown error'}`, { path: `${mapping.source}.${key}` });
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
else {
|
|
157
|
+
throw new types_1.MappingError(`forEach can only be used on arrays or objects, got ${typeof sourceValue}`, { path: mapping.source });
|
|
158
|
+
}
|
|
159
|
+
// Set the result
|
|
160
|
+
this.setValue(target, mapping.target, result, context);
|
|
161
|
+
}
|
|
162
|
+
/**
|
|
163
|
+
* Execute a merge mapping - combines multiple source fields into one target field
|
|
164
|
+
*/
|
|
165
|
+
executeMergeMapping(mapping, source, target, context) {
|
|
166
|
+
// Get the merge function and sources from metadata
|
|
167
|
+
const mergeFn = mapping.metadata?.mergeFn;
|
|
168
|
+
const sources = mapping.metadata?.sources;
|
|
169
|
+
if (!mergeFn) {
|
|
170
|
+
throw new types_1.MappingError(`Merge mapping missing mergeFn in metadata`, {
|
|
171
|
+
path: mapping.source,
|
|
172
|
+
});
|
|
173
|
+
}
|
|
174
|
+
if (!sources || !Array.isArray(sources)) {
|
|
175
|
+
throw new types_1.MappingError(`Merge mapping missing sources in metadata`, {
|
|
176
|
+
path: mapping.source,
|
|
177
|
+
});
|
|
178
|
+
}
|
|
179
|
+
// Resolve all source values
|
|
180
|
+
const sourceValues = [];
|
|
181
|
+
for (const sourcePath of sources) {
|
|
182
|
+
const value = this.resolveValue(source, sourcePath, context);
|
|
183
|
+
sourceValues.push(value);
|
|
184
|
+
}
|
|
185
|
+
// Apply the merge function
|
|
186
|
+
let mergedValue;
|
|
187
|
+
try {
|
|
188
|
+
mergedValue = mergeFn(...sourceValues);
|
|
189
|
+
}
|
|
190
|
+
catch (error) {
|
|
191
|
+
throw new types_1.MappingError(`Merge function failed: ${error instanceof Error ? error.message : 'Unknown error'}`, { path: mapping.source });
|
|
192
|
+
}
|
|
193
|
+
// Apply transformation if provided
|
|
194
|
+
if (mapping.transform) {
|
|
195
|
+
const transformContext = {
|
|
196
|
+
...context,
|
|
197
|
+
path: mapping.source,
|
|
198
|
+
};
|
|
199
|
+
try {
|
|
200
|
+
mergedValue = mapping.transform(mergedValue, transformContext);
|
|
201
|
+
}
|
|
202
|
+
catch (error) {
|
|
203
|
+
throw new types_1.MappingError(`Transform function failed on merged value: ${error instanceof Error ? error.message : 'Unknown error'}`, { path: mapping.source });
|
|
204
|
+
}
|
|
205
|
+
}
|
|
206
|
+
// Set the target value
|
|
207
|
+
this.setValue(target, mapping.target, mergedValue, context);
|
|
208
|
+
}
|
|
209
|
+
/**
|
|
210
|
+
* Execute a conditional mapping - only executes if condition is met
|
|
211
|
+
*/
|
|
212
|
+
executeConditionalMapping(mapping, source, target, context) {
|
|
213
|
+
// Get the condition from metadata
|
|
214
|
+
const condition = mapping.metadata?.condition;
|
|
215
|
+
if (!condition) {
|
|
216
|
+
throw new types_1.MappingError(`Conditional mapping missing condition in metadata`, { path: mapping.source });
|
|
217
|
+
}
|
|
218
|
+
// Evaluate the condition
|
|
219
|
+
let conditionMet = false;
|
|
220
|
+
if (typeof condition === 'string') {
|
|
221
|
+
// String condition - check if field exists and has truthy value
|
|
222
|
+
const conditionValue = this.resolveValue(source, condition, context);
|
|
223
|
+
conditionMet = Boolean(conditionValue);
|
|
224
|
+
}
|
|
225
|
+
else if (typeof condition === 'function') {
|
|
226
|
+
// Function condition - call with source data and context
|
|
227
|
+
try {
|
|
228
|
+
conditionMet = Boolean(condition(source, context));
|
|
229
|
+
}
|
|
230
|
+
catch (error) {
|
|
231
|
+
throw new types_1.MappingError(`Condition function failed: ${error instanceof Error ? error.message : 'Unknown error'}`, { path: mapping.source });
|
|
232
|
+
}
|
|
233
|
+
}
|
|
234
|
+
// Only execute the mapping if condition is met
|
|
235
|
+
if (conditionMet) {
|
|
236
|
+
// Execute as a simple mapping
|
|
237
|
+
this.executeSimpleMapping(mapping, source, target, context);
|
|
238
|
+
}
|
|
239
|
+
}
|
|
88
240
|
/**
|
|
89
241
|
* Resolve a value from source using path
|
|
90
242
|
*/
|
package/dist/core/Mapper.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Mapper.js","sourceRoot":"","sources":["../../src/core/Mapper.ts"],"names":[],"mappings":";;;AAAA,oCAAmE;AACnE,wDAAqD;AAErD;;GAEG;AACH,MAAa,MAAM;IAGjB,YAAY,WAAsB,EAAE;QAF5B,aAAQ,GAAc,EAAE,CAAC;QAG/B,IAAI,CAAC,QAAQ,GAAG,CAAC,GAAG,QAAQ,CAAC,CAAC;IAChC,CAAC;IAED;;OAEG;IACH,UAAU,CAAC,OAAgB;QACzB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC9B,CAAC;IAED;;OAEG;IACH,OAAO,CAAC,MAAW,EAAE,SAAe;QAClC,MAAM,MAAM,GAAG,EAAE,CAAC;QAClB,MAAM,OAAO,GAAqB;YAChC,MAAM;YACN,MAAM;YACN,IAAI,EAAE,EAAE;YACR,SAAS;YACT,QAAQ,EAAE,EAAE;SACb,CAAC;QAEF,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YACpC,IAAI,CAAC;gBACH,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;YACxD,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,IAAI,oBAAY,CACpB,mCAAmC,OAAO,CAAC,MAAM,SAAS,OAAO,CAAC,MAAM,MACtE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAC3C,EAAE,EACF;oBACE,IAAI,EAAE,OAAO,CAAC,MAAM;oBACpB,OAAO,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE;iBACrC,CACF,CAAC;YACJ,CAAC;QACH,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;OAEG;IACK,cAAc,CACpB,OAAgB,EAChB,MAAW,EACX,MAAW,EACX,OAAyB;QAEzB,oEAAoE;QACpE,IAAI,OAAO,CAAC,IAAI,KAAK,aAAa,EAAE,CAAC;YACnC,OAAO;QACT,CAAC;QAED,gEAAgE;QAChE,IAAI,OAAO,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YAC/B,OAAO;QACT,CAAC;QAED,+DAA+D;QAC/D,IAAI,OAAO,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;YAC7B,OAAO;QACT,CAAC;QAED,yBAAyB;QACzB,IAAI,OAAO,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC9B,IAAI,CAAC,oBAAoB,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;QAC9D,CAAC;IACH,CAAC;IAED;;OAEG;IACK,oBAAoB,CAC1B,OAAgB,EAChB,MAAW,EACX,MAAW,EACX,OAAyB;QAEzB,uBAAuB;QACvB,MAAM,WAAW,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAEvE,iEAAiE;QACjE,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;YAC9B,OAAO;QACT,CAAC;QAED,mCAAmC;QACnC,IAAI,WAAW,GAAG,WAAW,CAAC;QAC9B,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;YACtB,MAAM,gBAAgB,GAAqB;gBACzC,GAAG,OAAO;gBACV,IAAI,EAAE,OAAO,CAAC,MAAM;aACrB,CAAC;YACF,WAAW,GAAG,OAAO,CAAC,SAAS,CAAC,WAAW,EAAE,gBAAgB,CAAC,CAAC;QACjE,CAAC;QAED,uBAAuB;QACvB,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC;IAC9D,CAAC;IAED;;OAEG;IACK,YAAY,CAClB,MAAW,EACX,IAAY,EACZ,OAAyB;QAEzB,wBAAwB;QACxB,IAAI,2BAAY,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC;YACpC,OAAO,2BAAY,CAAC,iBAAiB,CAAC,IAAI,EAAE,EAAE,GAAG,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;QACtE,CAAC;QAED,0BAA0B;QAC1B,OAAO,2BAAY,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IACxC,CAAC;IAED;;OAEG;IACK,QAAQ,CACd,MAAW,EACX,IAAY,EACZ,KAAU,EACV,OAAyB;QAEzB,6BAA6B;QAC7B,IAAI,IAAI,KAAK,MAAM,EAAE,CAAC;YACpB,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;gBAC3D,2DAA2D;gBAC3D,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;YACrB,CAAC;YACD,OAAO;QACT,CAAC;QAED,6CAA6C;QAC7C,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;YACxB,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC;YAC5D,OAAO;QACT,CAAC;QAED,uBAAuB;QACvB,2BAAY,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;IACxC,CAAC;IAED;;OAEG;IACH,WAAW;QACT,OAAO,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC5B,CAAC;IAED;;OAEG;IACH,KAAK;QACH,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;IACrB,CAAC;IAED;;OAEG;IACH,aAAa,CAAC,EAAU;QACtB,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;QACxD,IAAI,KAAK,KAAK,CAAC,CAAC;YAAE,OAAO,KAAK,CAAC;QAE/B,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QAC/B,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;OAEG;IACH,oBAAoB,CAAC,UAAkB;QACrC,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,UAAU,CAAC,CAAC;IAC5D,CAAC;IAED;;OAEG;IACH,oBAAoB,CAAC,UAAkB;QACrC,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,UAAU,CAAC,CAAC;IAC5D,CAAC;IAED;;OAEG;IACH,cAAc,CAAC,UAAkB;QAC/B,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,UAAU,CAAC,CAAC;IAC1D,CAAC;IAED;;OAEG;IACH,cAAc,CAAC,UAAkB;QAC/B,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,UAAU,CAAC,CAAC;IAC1D,CAAC;IAED;;OAEG;IACH,kBAAkB,CAAC,MAAW;QAC5B,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;QAC1C,OAAO,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC;IAC7D,CAAC;IAED;;OAEG;IACK,WAAW,CAAC,GAAQ,EAAE,SAAiB,EAAE;QAC/C,MAAM,KAAK,GAAa,EAAE,CAAC;QAE3B,IAAI,GAAG,KAAK,IAAI,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;YAC5C,OAAO,KAAK,CAAC;QACf,CAAC;QAED,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;YAC/C,MAAM,WAAW,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;YACtD,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YAExB,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;gBAChE,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC,CAAC;YACtD,CAAC;iBAAM,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;gBAChC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;oBAC5B,MAAM,SAAS,GAAG,GAAG,WAAW,IAAI,KAAK,GAAG,CAAC;oBAC7C,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;oBACtB,IAAI,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;wBACrC,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC;oBACnD,CAAC;gBACH,CAAC,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC;CACF;AAlPD,wBAkPC"}
|
|
1
|
+
{"version":3,"file":"Mapper.js","sourceRoot":"","sources":["../../src/core/Mapper.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { PipelineStep, PipelineContext, ConversionResult, ForgeOptions } from '../types';
|
|
2
|
+
/**
|
|
3
|
+
* Pipeline class for executing conversion steps in a configurable order
|
|
4
|
+
*/
|
|
5
|
+
export declare class Pipeline {
|
|
6
|
+
private options;
|
|
7
|
+
private steps;
|
|
8
|
+
constructor(options?: ForgeOptions);
|
|
9
|
+
/**
|
|
10
|
+
* Add a step to the pipeline
|
|
11
|
+
*/
|
|
12
|
+
addStep(step: PipelineStep): this;
|
|
13
|
+
/**
|
|
14
|
+
* Add multiple steps to the pipeline
|
|
15
|
+
*/
|
|
16
|
+
addSteps(steps: PipelineStep[]): this;
|
|
17
|
+
/**
|
|
18
|
+
* Execute the pipeline with the given input
|
|
19
|
+
*/
|
|
20
|
+
execute(input: any, initialContext?: Partial<PipelineContext>): Promise<ConversionResult>;
|
|
21
|
+
/**
|
|
22
|
+
* Get the list of steps in the pipeline
|
|
23
|
+
*/
|
|
24
|
+
getSteps(): PipelineStep[];
|
|
25
|
+
/**
|
|
26
|
+
* Clear all steps from the pipeline
|
|
27
|
+
*/
|
|
28
|
+
clear(): this;
|
|
29
|
+
/**
|
|
30
|
+
* Remove a step by name
|
|
31
|
+
*/
|
|
32
|
+
removeStep(name: string): this;
|
|
33
|
+
/**
|
|
34
|
+
* Insert a step at a specific position
|
|
35
|
+
*/
|
|
36
|
+
insertStep(index: number, step: PipelineStep): this;
|
|
37
|
+
/**
|
|
38
|
+
* Replace a step by name
|
|
39
|
+
*/
|
|
40
|
+
replaceStep(name: string, newStep: PipelineStep): this;
|
|
41
|
+
}
|
|
42
|
+
//# sourceMappingURL=Pipeline.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Pipeline.d.ts","sourceRoot":"","sources":["../../src/core/Pipeline.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EACZ,eAAe,EACf,gBAAgB,EAGhB,YAAY,EACb,MAAM,UAAU,CAAC;AAGlB;;GAEG;AACH,qBAAa,QAAQ;IAGP,OAAO,CAAC,OAAO;IAF3B,OAAO,CAAC,KAAK,CAAsB;gBAEf,OAAO,GAAE,YAAiB;IAE9C;;OAEG;IACH,OAAO,CAAC,IAAI,EAAE,YAAY,GAAG,IAAI;IAKjC;;OAEG;IACH,QAAQ,CAAC,KAAK,EAAE,YAAY,EAAE,GAAG,IAAI;IAKrC;;OAEG;IACG,OAAO,CACX,KAAK,EAAE,GAAG,EACV,cAAc,GAAE,OAAO,CAAC,eAAe,CAAM,GAC5C,OAAO,CAAC,gBAAgB,CAAC;IAmF5B;;OAEG;IACH,QAAQ,IAAI,YAAY,EAAE;IAI1B;;OAEG;IACH,KAAK,IAAI,IAAI;IAKb;;OAEG;IACH,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAK9B;;OAEG;IACH,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,YAAY,GAAG,IAAI;IAKnD;;OAEG;IACH,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,GAAG,IAAI;CAOvD"}
|
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Pipeline = void 0;
|
|
4
|
+
const ConversionResult_1 = require("./ConversionResult");
|
|
5
|
+
/**
|
|
6
|
+
* Pipeline class for executing conversion steps in a configurable order
|
|
7
|
+
*/
|
|
8
|
+
class Pipeline {
|
|
9
|
+
constructor(options = {}) {
|
|
10
|
+
this.options = options;
|
|
11
|
+
this.steps = [];
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Add a step to the pipeline
|
|
15
|
+
*/
|
|
16
|
+
addStep(step) {
|
|
17
|
+
this.steps.push(step);
|
|
18
|
+
return this;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Add multiple steps to the pipeline
|
|
22
|
+
*/
|
|
23
|
+
addSteps(steps) {
|
|
24
|
+
this.steps.push(...steps);
|
|
25
|
+
return this;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Execute the pipeline with the given input
|
|
29
|
+
*/
|
|
30
|
+
async execute(input, initialContext = {}) {
|
|
31
|
+
const startTime = performance.now();
|
|
32
|
+
// Initialize pipeline context
|
|
33
|
+
const context = {
|
|
34
|
+
source: input,
|
|
35
|
+
target: {},
|
|
36
|
+
converter: null, // Will be set by the converter
|
|
37
|
+
options: this.options,
|
|
38
|
+
metadata: {},
|
|
39
|
+
warnings: [],
|
|
40
|
+
errors: [],
|
|
41
|
+
stats: {
|
|
42
|
+
fieldsProcessed: 0,
|
|
43
|
+
fieldsMapped: 0,
|
|
44
|
+
fieldsUnmapped: 0,
|
|
45
|
+
fieldsWithDefaults: 0,
|
|
46
|
+
transformsApplied: 0,
|
|
47
|
+
validationErrors: 0,
|
|
48
|
+
duration: 0,
|
|
49
|
+
},
|
|
50
|
+
...initialContext,
|
|
51
|
+
};
|
|
52
|
+
let currentData = input;
|
|
53
|
+
// Execute each step in order
|
|
54
|
+
for (const step of this.steps) {
|
|
55
|
+
try {
|
|
56
|
+
if (this.options.verbose) {
|
|
57
|
+
console.log(`Executing pipeline step: ${step.name}`);
|
|
58
|
+
}
|
|
59
|
+
const stepStartTime = performance.now();
|
|
60
|
+
const result = await step.execute(currentData, context);
|
|
61
|
+
const stepDuration = performance.now() - stepStartTime;
|
|
62
|
+
// Update current data if step returns a value
|
|
63
|
+
if (result !== undefined) {
|
|
64
|
+
currentData = result;
|
|
65
|
+
// Update target in context for all steps that modify data
|
|
66
|
+
context.target = result;
|
|
67
|
+
}
|
|
68
|
+
if (this.options.verbose) {
|
|
69
|
+
console.log(`Step ${step.name} completed in ${stepDuration.toFixed(2)}ms`);
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
catch (error) {
|
|
73
|
+
context.errors.push({
|
|
74
|
+
code: 'PIPELINE_ERROR',
|
|
75
|
+
message: `Pipeline step '${step.name}' failed: ${error instanceof Error ? error.message : 'Unknown error'}`,
|
|
76
|
+
path: step.name,
|
|
77
|
+
});
|
|
78
|
+
// Stop execution on critical errors unless configured otherwise
|
|
79
|
+
if (this.options.strict) {
|
|
80
|
+
break;
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
// Calculate final statistics
|
|
85
|
+
const duration = performance.now() - startTime;
|
|
86
|
+
const finalStats = {
|
|
87
|
+
...context.stats,
|
|
88
|
+
duration,
|
|
89
|
+
validationErrors: context.errors.length,
|
|
90
|
+
};
|
|
91
|
+
// Return conversion result
|
|
92
|
+
return new ConversionResult_1.ConversionResultImpl(context.target || currentData, context.warnings, [], // unmapped fields will be calculated by specific steps
|
|
93
|
+
context.errors, finalStats);
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* Get the list of steps in the pipeline
|
|
97
|
+
*/
|
|
98
|
+
getSteps() {
|
|
99
|
+
return [...this.steps];
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* Clear all steps from the pipeline
|
|
103
|
+
*/
|
|
104
|
+
clear() {
|
|
105
|
+
this.steps = [];
|
|
106
|
+
return this;
|
|
107
|
+
}
|
|
108
|
+
/**
|
|
109
|
+
* Remove a step by name
|
|
110
|
+
*/
|
|
111
|
+
removeStep(name) {
|
|
112
|
+
this.steps = this.steps.filter(step => step.name !== name);
|
|
113
|
+
return this;
|
|
114
|
+
}
|
|
115
|
+
/**
|
|
116
|
+
* Insert a step at a specific position
|
|
117
|
+
*/
|
|
118
|
+
insertStep(index, step) {
|
|
119
|
+
this.steps.splice(index, 0, step);
|
|
120
|
+
return this;
|
|
121
|
+
}
|
|
122
|
+
/**
|
|
123
|
+
* Replace a step by name
|
|
124
|
+
*/
|
|
125
|
+
replaceStep(name, newStep) {
|
|
126
|
+
const index = this.steps.findIndex(step => step.name === name);
|
|
127
|
+
if (index !== -1) {
|
|
128
|
+
this.steps[index] = newStep;
|
|
129
|
+
}
|
|
130
|
+
return this;
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
exports.Pipeline = Pipeline;
|
|
134
|
+
//# sourceMappingURL=Pipeline.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Pipeline.js","sourceRoot":"","sources":["../../src/core/Pipeline.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import { PipelineStep, Mapping, ValidatorFn, HookFn, ForgeOptions } from '../../types';
|
|
2
|
+
import { Pipeline } from '../Pipeline';
|
|
3
|
+
/**
|
|
4
|
+
* Builder for creating conversion pipelines with configurable steps
|
|
5
|
+
*/
|
|
6
|
+
export declare class PipelineBuilder {
|
|
7
|
+
private steps;
|
|
8
|
+
private options;
|
|
9
|
+
constructor(options?: ForgeOptions);
|
|
10
|
+
/**
|
|
11
|
+
* Add parsing step to handle file input and data parsing
|
|
12
|
+
*/
|
|
13
|
+
addParseStep(): this;
|
|
14
|
+
/**
|
|
15
|
+
* Add before hooks step
|
|
16
|
+
*/
|
|
17
|
+
addBeforeHooksStep(hooks: HookFn[]): this;
|
|
18
|
+
/**
|
|
19
|
+
* Add mapping step for field transformations
|
|
20
|
+
*/
|
|
21
|
+
addMapStep(mappings: Mapping[]): this;
|
|
22
|
+
/**
|
|
23
|
+
* Add defaults step for applying default values
|
|
24
|
+
*/
|
|
25
|
+
addDefaultsStep(defaults: Record<string, any>): this;
|
|
26
|
+
/**
|
|
27
|
+
* Add after hooks step
|
|
28
|
+
*/
|
|
29
|
+
addAfterHooksStep(hooks: HookFn[]): this;
|
|
30
|
+
/**
|
|
31
|
+
* Add validation step
|
|
32
|
+
*/
|
|
33
|
+
addValidateStep(validators: Array<{
|
|
34
|
+
path: string;
|
|
35
|
+
validator: ValidatorFn;
|
|
36
|
+
}>): this;
|
|
37
|
+
/**
|
|
38
|
+
* Add a custom step
|
|
39
|
+
*/
|
|
40
|
+
addCustomStep(step: PipelineStep): this;
|
|
41
|
+
/**
|
|
42
|
+
* Build the complete pipeline with all configured steps
|
|
43
|
+
*/
|
|
44
|
+
build(): Pipeline;
|
|
45
|
+
/**
|
|
46
|
+
* Build a standard conversion pipeline with all core steps
|
|
47
|
+
*/
|
|
48
|
+
buildStandardPipeline(config: {
|
|
49
|
+
mappings: Mapping[];
|
|
50
|
+
validators?: Array<{
|
|
51
|
+
path: string;
|
|
52
|
+
validator: ValidatorFn;
|
|
53
|
+
}>;
|
|
54
|
+
defaults?: Record<string, any>;
|
|
55
|
+
beforeHooks?: HookFn[];
|
|
56
|
+
afterHooks?: HookFn[];
|
|
57
|
+
}): Pipeline;
|
|
58
|
+
/**
|
|
59
|
+
* Get the current steps
|
|
60
|
+
*/
|
|
61
|
+
getSteps(): PipelineStep[];
|
|
62
|
+
/**
|
|
63
|
+
* Clear all steps
|
|
64
|
+
*/
|
|
65
|
+
clear(): this;
|
|
66
|
+
}
|
|
67
|
+
//# sourceMappingURL=PipelineBuilder.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PipelineBuilder.d.ts","sourceRoot":"","sources":["../../../src/core/pipeline/PipelineBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EACZ,OAAO,EACP,WAAW,EACX,MAAM,EACN,YAAY,EACb,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAGvC;;GAEG;AACH,qBAAa,eAAe;IAC1B,OAAO,CAAC,KAAK,CAAsB;IACnC,OAAO,CAAC,OAAO,CAAoB;gBAEvB,OAAO,GAAE,YAAiB;IAItC;;OAEG;IACH,YAAY,IAAI,IAAI;IAKpB;;OAEG;IACH,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI;IAOzC;;OAEG;IACH,UAAU,CAAC,QAAQ,EAAE,OAAO,EAAE,GAAG,IAAI;IAOrC;;OAEG;IACH,eAAe,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI;IAOpD;;OAEG;IACH,iBAAiB,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI;IAOxC;;OAEG;IACH,eAAe,CACb,UAAU,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,WAAW,CAAA;KAAE,CAAC,GAC1D,IAAI;IAOP;;OAEG;IACH,aAAa,CAAC,IAAI,EAAE,YAAY,GAAG,IAAI;IAKvC;;OAEG;IACH,KAAK,IAAI,QAAQ;IAMjB;;OAEG;IACH,qBAAqB,CAAC,MAAM,EAAE;QAC5B,QAAQ,EAAE,OAAO,EAAE,CAAC;QACpB,UAAU,CAAC,EAAE,KAAK,CAAC;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,SAAS,EAAE,WAAW,CAAA;SAAE,CAAC,CAAC;QAC7D,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QAC/B,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;QACvB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;KACvB,GAAG,QAAQ;IAUZ;;OAEG;IACH,QAAQ,IAAI,YAAY,EAAE;IAI1B;;OAEG;IACH,KAAK,IAAI,IAAI;CAId"}
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.PipelineBuilder = void 0;
|
|
4
|
+
const Pipeline_1 = require("../Pipeline");
|
|
5
|
+
const PipelineSteps_1 = require("./PipelineSteps");
|
|
6
|
+
/**
|
|
7
|
+
* Builder for creating conversion pipelines with configurable steps
|
|
8
|
+
*/
|
|
9
|
+
class PipelineBuilder {
|
|
10
|
+
constructor(options = {}) {
|
|
11
|
+
this.steps = [];
|
|
12
|
+
this.options = {};
|
|
13
|
+
this.options = options;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Add parsing step to handle file input and data parsing
|
|
17
|
+
*/
|
|
18
|
+
addParseStep() {
|
|
19
|
+
this.steps.push(new PipelineSteps_1.PipelineSteps.ParseStep());
|
|
20
|
+
return this;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Add before hooks step
|
|
24
|
+
*/
|
|
25
|
+
addBeforeHooksStep(hooks) {
|
|
26
|
+
if (hooks.length > 0) {
|
|
27
|
+
this.steps.push(new PipelineSteps_1.PipelineSteps.BeforeHooksStep(hooks));
|
|
28
|
+
}
|
|
29
|
+
return this;
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Add mapping step for field transformations
|
|
33
|
+
*/
|
|
34
|
+
addMapStep(mappings) {
|
|
35
|
+
if (mappings.length > 0) {
|
|
36
|
+
this.steps.push(new PipelineSteps_1.PipelineSteps.MapStep(mappings));
|
|
37
|
+
}
|
|
38
|
+
return this;
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Add defaults step for applying default values
|
|
42
|
+
*/
|
|
43
|
+
addDefaultsStep(defaults) {
|
|
44
|
+
if (Object.keys(defaults).length > 0) {
|
|
45
|
+
this.steps.push(new PipelineSteps_1.PipelineSteps.DefaultsStep(defaults));
|
|
46
|
+
}
|
|
47
|
+
return this;
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Add after hooks step
|
|
51
|
+
*/
|
|
52
|
+
addAfterHooksStep(hooks) {
|
|
53
|
+
if (hooks.length > 0) {
|
|
54
|
+
this.steps.push(new PipelineSteps_1.PipelineSteps.AfterHooksStep(hooks));
|
|
55
|
+
}
|
|
56
|
+
return this;
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Add validation step
|
|
60
|
+
*/
|
|
61
|
+
addValidateStep(validators) {
|
|
62
|
+
if (validators.length > 0) {
|
|
63
|
+
this.steps.push(new PipelineSteps_1.PipelineSteps.ValidateStep(validators));
|
|
64
|
+
}
|
|
65
|
+
return this;
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Add a custom step
|
|
69
|
+
*/
|
|
70
|
+
addCustomStep(step) {
|
|
71
|
+
this.steps.push(step);
|
|
72
|
+
return this;
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* Build the complete pipeline with all configured steps
|
|
76
|
+
*/
|
|
77
|
+
build() {
|
|
78
|
+
const pipeline = new Pipeline_1.Pipeline(this.options);
|
|
79
|
+
pipeline.addSteps(this.steps);
|
|
80
|
+
return pipeline;
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* Build a standard conversion pipeline with all core steps
|
|
84
|
+
*/
|
|
85
|
+
buildStandardPipeline(config) {
|
|
86
|
+
return this.addParseStep()
|
|
87
|
+
.addBeforeHooksStep(config.beforeHooks || [])
|
|
88
|
+
.addMapStep(config.mappings)
|
|
89
|
+
.addDefaultsStep(config.defaults || {})
|
|
90
|
+
.addAfterHooksStep(config.afterHooks || [])
|
|
91
|
+
.addValidateStep(config.validators || [])
|
|
92
|
+
.build();
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* Get the current steps
|
|
96
|
+
*/
|
|
97
|
+
getSteps() {
|
|
98
|
+
return [...this.steps];
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* Clear all steps
|
|
102
|
+
*/
|
|
103
|
+
clear() {
|
|
104
|
+
this.steps = [];
|
|
105
|
+
return this;
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
exports.PipelineBuilder = PipelineBuilder;
|
|
109
|
+
//# sourceMappingURL=PipelineBuilder.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PipelineBuilder.js","sourceRoot":"","sources":["../../../src/core/pipeline/PipelineBuilder.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import { PipelineStep, PipelineContext, Mapping, ValidatorFn, HookFn } from '../../types';
|
|
2
|
+
/**
|
|
3
|
+
* Collection of standard pipeline steps
|
|
4
|
+
*/
|
|
5
|
+
export declare namespace PipelineSteps {
|
|
6
|
+
/**
|
|
7
|
+
* Parse step - handles file input and data parsing
|
|
8
|
+
*/
|
|
9
|
+
class ParseStep implements PipelineStep {
|
|
10
|
+
name: string;
|
|
11
|
+
execute(input: any, context: PipelineContext): Promise<any>;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Before hooks step - runs before hooks on source data
|
|
15
|
+
*/
|
|
16
|
+
class BeforeHooksStep implements PipelineStep {
|
|
17
|
+
private hooks;
|
|
18
|
+
name: string;
|
|
19
|
+
constructor(hooks: HookFn[]);
|
|
20
|
+
execute(input: any, context: PipelineContext): Promise<any>;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Map step - executes field mappings using the Mapper
|
|
24
|
+
*/
|
|
25
|
+
class MapStep implements PipelineStep {
|
|
26
|
+
private mappings;
|
|
27
|
+
name: string;
|
|
28
|
+
constructor(mappings: Mapping[]);
|
|
29
|
+
execute(input: any, context: PipelineContext): Promise<any>;
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Defaults step - applies default values to missing fields
|
|
33
|
+
*/
|
|
34
|
+
class DefaultsStep implements PipelineStep {
|
|
35
|
+
private defaults;
|
|
36
|
+
name: string;
|
|
37
|
+
constructor(defaults: Record<string, any>);
|
|
38
|
+
execute(input: any, context: PipelineContext): Promise<any>;
|
|
39
|
+
private getNestedValue;
|
|
40
|
+
private setNestedValue;
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* After hooks step - runs after hooks on target data
|
|
44
|
+
*/
|
|
45
|
+
class AfterHooksStep implements PipelineStep {
|
|
46
|
+
private hooks;
|
|
47
|
+
name: string;
|
|
48
|
+
constructor(hooks: HookFn[]);
|
|
49
|
+
execute(input: any, context: PipelineContext): Promise<any>;
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Validate step - runs validation rules on the target data
|
|
53
|
+
*/
|
|
54
|
+
class ValidateStep implements PipelineStep {
|
|
55
|
+
private validators;
|
|
56
|
+
name: string;
|
|
57
|
+
constructor(validators: Array<{
|
|
58
|
+
path: string;
|
|
59
|
+
validator: ValidatorFn;
|
|
60
|
+
}>);
|
|
61
|
+
execute(input: any, context: PipelineContext): Promise<any>;
|
|
62
|
+
private getNestedValue;
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Statistics step - calculates final conversion statistics
|
|
66
|
+
*/
|
|
67
|
+
class StatisticsStep implements PipelineStep {
|
|
68
|
+
name: string;
|
|
69
|
+
execute(input: any, context: PipelineContext): Promise<any>;
|
|
70
|
+
private countFields;
|
|
71
|
+
private findUnmappedFields;
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
//# sourceMappingURL=PipelineSteps.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PipelineSteps.d.ts","sourceRoot":"","sources":["../../../src/core/pipeline/PipelineSteps.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EACZ,eAAe,EACf,OAAO,EACP,WAAW,EACX,MAAM,EAKP,MAAM,aAAa,CAAC;AAIrB;;GAEG;AACH,yBAAiB,aAAa,CAAC;IAC7B;;OAEG;IACH,MAAa,SAAU,YAAW,YAAY;QAC5C,IAAI,SAAW;QAET,OAAO,CAAC,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,GAAG,CAAC;KA6BlE;IAED;;OAEG;IACH,MAAa,eAAgB,YAAW,YAAY;QAGtC,OAAO,CAAC,KAAK;QAFzB,IAAI,SAAkB;oBAEF,KAAK,EAAE,MAAM,EAAE;QAE7B,OAAO,CAAC,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,GAAG,CAAC;KAkClE;IAED;;OAEG;IACH,MAAa,OAAQ,YAAW,YAAY;QAG9B,OAAO,CAAC,QAAQ;QAF5B,IAAI,SAAS;oBAEO,QAAQ,EAAE,OAAO,EAAE;QAEjC,OAAO,CAAC,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,GAAG,CAAC;KA0BlE;IAED;;OAEG;IACH,MAAa,YAAa,YAAW,YAAY;QAGnC,OAAO,CAAC,QAAQ;QAF5B,IAAI,SAAc;oBAEE,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;QAE3C,OAAO,CAAC,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,GAAG,CAAC;QA4BjE,OAAO,CAAC,cAAc;QAItB,OAAO,CAAC,cAAc;KAWvB;IAED;;OAEG;IACH,MAAa,cAAe,YAAW,YAAY;QAGrC,OAAO,CAAC,KAAK;QAFzB,IAAI,SAAiB;oBAED,KAAK,EAAE,MAAM,EAAE;QAE7B,OAAO,CAAC,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,GAAG,CAAC;KAkClE;IAED;;OAEG;IACH,MAAa,YAAa,YAAW,YAAY;QAI7C,OAAO,CAAC,UAAU;QAHpB,IAAI,SAAc;oBAGR,UAAU,EAAE,KAAK,CAAC;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,SAAS,EAAE,WAAW,CAAA;SAAE,CAAC;QAG/D,OAAO,CAAC,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,GAAG,CAAC;QAsCjE,OAAO,CAAC,cAAc;KAGvB;IAED;;OAEG;IACH,MAAa,cAAe,YAAW,YAAY;QACjD,IAAI,SAAgB;QAEd,OAAO,CAAC,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,GAAG,CAAC;QAiBjE,OAAO,CAAC,WAAW;QAcnB,OAAO,CAAC,kBAAkB;KAgC3B;CACF"}
|