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
|
@@ -0,0 +1,328 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SuggestionEngine = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Suggestion engine for providing helpful error messages and corrections
|
|
6
|
+
*/
|
|
7
|
+
class SuggestionEngine {
|
|
8
|
+
/**
|
|
9
|
+
* Calculate Levenshtein distance between two strings
|
|
10
|
+
*/
|
|
11
|
+
static levenshteinDistance(str1, str2) {
|
|
12
|
+
const matrix = [];
|
|
13
|
+
for (let i = 0; i <= str2.length; i++) {
|
|
14
|
+
matrix[i] = [i];
|
|
15
|
+
}
|
|
16
|
+
for (let j = 0; j <= str1.length; j++) {
|
|
17
|
+
matrix[0][j] = j;
|
|
18
|
+
}
|
|
19
|
+
for (let i = 1; i <= str2.length; i++) {
|
|
20
|
+
for (let j = 1; j <= str1.length; j++) {
|
|
21
|
+
if (str2.charAt(i - 1) === str1.charAt(j - 1)) {
|
|
22
|
+
matrix[i][j] = matrix[i - 1][j - 1];
|
|
23
|
+
}
|
|
24
|
+
else {
|
|
25
|
+
matrix[i][j] = Math.min(matrix[i - 1][j - 1] + 1, // substitution
|
|
26
|
+
matrix[i][j - 1] + 1, // insertion
|
|
27
|
+
matrix[i - 1][j] + 1 // deletion
|
|
28
|
+
);
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
return matrix[str2.length][str1.length];
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Calculate similarity score between two strings (0-1, where 1 is identical)
|
|
36
|
+
*/
|
|
37
|
+
static calculateSimilarity(str1, str2) {
|
|
38
|
+
if (str1 === str2)
|
|
39
|
+
return 1;
|
|
40
|
+
if (str1.length === 0 || str2.length === 0)
|
|
41
|
+
return 0;
|
|
42
|
+
const s1 = str1.toLowerCase();
|
|
43
|
+
const s2 = str2.toLowerCase();
|
|
44
|
+
// Check for exact prefix/suffix matches (bonus points)
|
|
45
|
+
let bonus = 0;
|
|
46
|
+
if (s1.startsWith(s2) || s2.startsWith(s1)) {
|
|
47
|
+
bonus = 0.1; // Prefix match bonus
|
|
48
|
+
}
|
|
49
|
+
else if (s1.endsWith(s2) || s2.endsWith(s1)) {
|
|
50
|
+
bonus = 0.05; // Suffix match bonus
|
|
51
|
+
}
|
|
52
|
+
const maxLength = Math.max(str1.length, str2.length);
|
|
53
|
+
const distance = this.levenshteinDistance(s1, s2);
|
|
54
|
+
const baseSimilarity = 1 - distance / maxLength;
|
|
55
|
+
return Math.min(1, baseSimilarity + bonus);
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Find similar strings from a list of candidates
|
|
59
|
+
*/
|
|
60
|
+
static findSimilar(target, candidates, threshold = SuggestionEngine.SIMILARITY_THRESHOLD) {
|
|
61
|
+
const similarities = candidates
|
|
62
|
+
.map(candidate => ({
|
|
63
|
+
value: candidate,
|
|
64
|
+
similarity: this.calculateSimilarity(target, candidate),
|
|
65
|
+
}))
|
|
66
|
+
.filter(item => item.similarity >= threshold)
|
|
67
|
+
.sort((a, b) => {
|
|
68
|
+
// First sort by similarity (descending)
|
|
69
|
+
if (b.similarity !== a.similarity) {
|
|
70
|
+
return b.similarity - a.similarity;
|
|
71
|
+
}
|
|
72
|
+
// If similarity is equal, prefer shorter strings
|
|
73
|
+
if (a.value.length !== b.value.length) {
|
|
74
|
+
return a.value.length - b.value.length;
|
|
75
|
+
}
|
|
76
|
+
// If length is also equal, prefer reverse alphabetical order (apply before apple)
|
|
77
|
+
return b.value.localeCompare(a.value);
|
|
78
|
+
})
|
|
79
|
+
.slice(0, this.MAX_SUGGESTIONS);
|
|
80
|
+
return similarities;
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* Suggest field names for mapping errors
|
|
84
|
+
*/
|
|
85
|
+
static suggestFieldNames(invalidField, availableFields) {
|
|
86
|
+
// First, try exact substring matches
|
|
87
|
+
const substringMatches = availableFields.filter(field => field.toLowerCase().includes(invalidField.toLowerCase()) ||
|
|
88
|
+
invalidField.toLowerCase().includes(field.toLowerCase()));
|
|
89
|
+
// If we have substring matches, prioritize them
|
|
90
|
+
if (substringMatches.length > 0) {
|
|
91
|
+
return substringMatches.slice(0, this.MAX_SUGGESTIONS);
|
|
92
|
+
}
|
|
93
|
+
// Otherwise, use similarity matching with a lower threshold for field names
|
|
94
|
+
const suggestions = this.findSimilar(invalidField, availableFields, 0.4);
|
|
95
|
+
return suggestions.map(s => s.value);
|
|
96
|
+
}
|
|
97
|
+
/**
|
|
98
|
+
* Suggest property paths for nested object access
|
|
99
|
+
*/
|
|
100
|
+
static suggestPropertyPaths(invalidPath, availablePaths) {
|
|
101
|
+
// Split path into segments for better matching
|
|
102
|
+
const pathSegments = invalidPath.split('.');
|
|
103
|
+
const lastSegment = pathSegments[pathSegments.length - 1] || '';
|
|
104
|
+
// Calculate scores for each available path
|
|
105
|
+
const pathScores = availablePaths.map(path => {
|
|
106
|
+
const segments = path.split('.');
|
|
107
|
+
const lastAvailableSegment = segments[segments.length - 1] || '';
|
|
108
|
+
// Score based on last segment similarity
|
|
109
|
+
const lastSegmentSimilarity = this.calculateSimilarity(lastSegment, lastAvailableSegment);
|
|
110
|
+
// Score based on full path similarity
|
|
111
|
+
const fullPathSimilarity = this.calculateSimilarity(invalidPath, path);
|
|
112
|
+
// Score based on substring matches in path segments
|
|
113
|
+
let segmentMatchScore = 0;
|
|
114
|
+
pathSegments.forEach(inputSegment => {
|
|
115
|
+
if (segments.some(pathSegment => pathSegment.toLowerCase().includes(inputSegment.toLowerCase()) ||
|
|
116
|
+
inputSegment.toLowerCase().includes(pathSegment.toLowerCase()))) {
|
|
117
|
+
segmentMatchScore += 0.5;
|
|
118
|
+
}
|
|
119
|
+
});
|
|
120
|
+
// Combine scores with weights
|
|
121
|
+
const combinedScore = lastSegmentSimilarity * 0.4 +
|
|
122
|
+
fullPathSimilarity * 0.3 +
|
|
123
|
+
segmentMatchScore * 0.3;
|
|
124
|
+
return { path, score: combinedScore };
|
|
125
|
+
});
|
|
126
|
+
// Sort by combined score and return top matches
|
|
127
|
+
const sortedPaths = pathScores
|
|
128
|
+
.filter(item => item.score >= 0.3)
|
|
129
|
+
.sort((a, b) => b.score - a.score)
|
|
130
|
+
.slice(0, this.MAX_SUGGESTIONS);
|
|
131
|
+
if (sortedPaths.length > 0) {
|
|
132
|
+
return sortedPaths.map(item => item.path);
|
|
133
|
+
}
|
|
134
|
+
// Fallback to simple similarity matching
|
|
135
|
+
const suggestions = this.findSimilar(invalidPath, availablePaths, 0.4);
|
|
136
|
+
return suggestions.map(s => s.value);
|
|
137
|
+
}
|
|
138
|
+
/**
|
|
139
|
+
* Suggest configuration values
|
|
140
|
+
*/
|
|
141
|
+
static suggestConfigValues(invalidValue, validValues) {
|
|
142
|
+
// First, try substring matches (both directions)
|
|
143
|
+
const substringMatches = validValues.filter(value => value.toLowerCase().includes(invalidValue.toLowerCase()) ||
|
|
144
|
+
invalidValue.toLowerCase().includes(value.toLowerCase()));
|
|
145
|
+
// If we have substring matches, prioritize them
|
|
146
|
+
if (substringMatches.length > 0) {
|
|
147
|
+
return substringMatches.slice(0, this.MAX_SUGGESTIONS);
|
|
148
|
+
}
|
|
149
|
+
// Otherwise, use similarity matching with lower threshold
|
|
150
|
+
const suggestions = this.findSimilar(invalidValue, validValues, 0.3);
|
|
151
|
+
return suggestions.map(s => s.value);
|
|
152
|
+
}
|
|
153
|
+
/**
|
|
154
|
+
* Generate helpful error message for missing fields
|
|
155
|
+
*/
|
|
156
|
+
static generateMissingFieldMessage(missingField, availableFields) {
|
|
157
|
+
const suggestions = this.suggestFieldNames(missingField, availableFields);
|
|
158
|
+
let message = `Field '${missingField}' not found in source data.`;
|
|
159
|
+
if (suggestions.length > 0) {
|
|
160
|
+
message += ` Did you mean: ${suggestions
|
|
161
|
+
.slice(0, 3)
|
|
162
|
+
.map(s => `'${s}'`)
|
|
163
|
+
.join(', ')}?`;
|
|
164
|
+
}
|
|
165
|
+
else if (availableFields.length > 0) {
|
|
166
|
+
const topFields = availableFields.slice(0, 5);
|
|
167
|
+
message += ` Available fields: ${topFields.map(f => `'${f}'`).join(', ')}${availableFields.length > 5 ? '...' : ''}.`;
|
|
168
|
+
}
|
|
169
|
+
return message;
|
|
170
|
+
}
|
|
171
|
+
/**
|
|
172
|
+
* Generate helpful error message for invalid paths
|
|
173
|
+
*/
|
|
174
|
+
static generateInvalidPathMessage(invalidPath, availablePaths) {
|
|
175
|
+
const suggestions = this.suggestPropertyPaths(invalidPath, availablePaths);
|
|
176
|
+
let message = `Invalid path '${invalidPath}'.`;
|
|
177
|
+
if (suggestions.length > 0) {
|
|
178
|
+
message += ` Did you mean: ${suggestions
|
|
179
|
+
.slice(0, 3)
|
|
180
|
+
.map(s => `'${s}'`)
|
|
181
|
+
.join(', ')}?`;
|
|
182
|
+
}
|
|
183
|
+
else if (availablePaths.length > 0) {
|
|
184
|
+
const topPaths = availablePaths.slice(0, 5);
|
|
185
|
+
message += ` Available paths: ${topPaths.map(p => `'${p}'`).join(', ')}${availablePaths.length > 5 ? '...' : ''}.`;
|
|
186
|
+
}
|
|
187
|
+
return message;
|
|
188
|
+
}
|
|
189
|
+
/**
|
|
190
|
+
* Generate helpful error message for invalid configuration
|
|
191
|
+
*/
|
|
192
|
+
static generateInvalidConfigMessage(configKey, invalidValue, validValues) {
|
|
193
|
+
const suggestions = this.suggestConfigValues(invalidValue, validValues);
|
|
194
|
+
let message = `Invalid value '${invalidValue}' for configuration '${configKey}'.`;
|
|
195
|
+
if (suggestions.length > 0) {
|
|
196
|
+
message += ` Did you mean: ${suggestions
|
|
197
|
+
.slice(0, 3)
|
|
198
|
+
.map(s => `'${s}'`)
|
|
199
|
+
.join(', ')}?`;
|
|
200
|
+
}
|
|
201
|
+
if (validValues.length > 0) {
|
|
202
|
+
message += ` Valid values: ${validValues.map(v => `'${v}'`).join(', ')}.`;
|
|
203
|
+
}
|
|
204
|
+
return message;
|
|
205
|
+
}
|
|
206
|
+
/**
|
|
207
|
+
* Generate suggestions for transform function errors
|
|
208
|
+
*/
|
|
209
|
+
static suggestTransformFix(error, inputValue, expectedType) {
|
|
210
|
+
const inputType = typeof inputValue;
|
|
211
|
+
let suggestion = 'Check the transform function implementation.';
|
|
212
|
+
if (expectedType && inputType !== expectedType) {
|
|
213
|
+
suggestion = `Expected ${expectedType} but got ${inputType}. `;
|
|
214
|
+
switch (expectedType) {
|
|
215
|
+
case 'string':
|
|
216
|
+
suggestion += 'Consider using String(value) or value.toString().';
|
|
217
|
+
break;
|
|
218
|
+
case 'number':
|
|
219
|
+
suggestion += 'Consider using Number(value) or parseFloat(value).';
|
|
220
|
+
break;
|
|
221
|
+
case 'boolean':
|
|
222
|
+
suggestion += 'Consider using Boolean(value) or !!value.';
|
|
223
|
+
break;
|
|
224
|
+
default:
|
|
225
|
+
suggestion += 'Add type checking in your transform function.';
|
|
226
|
+
}
|
|
227
|
+
}
|
|
228
|
+
else if (error.message.includes('undefined')) {
|
|
229
|
+
suggestion =
|
|
230
|
+
'Check for undefined values before processing. Consider using optional chaining (?.) or default values.';
|
|
231
|
+
}
|
|
232
|
+
else if (error.message.includes('null')) {
|
|
233
|
+
suggestion =
|
|
234
|
+
'Check for null values before processing. Consider using nullish coalescing (??) operator.';
|
|
235
|
+
}
|
|
236
|
+
return suggestion;
|
|
237
|
+
}
|
|
238
|
+
/**
|
|
239
|
+
* Generate suggestions for validation errors
|
|
240
|
+
*/
|
|
241
|
+
static suggestValidationFix(fieldPath, value, validationRule) {
|
|
242
|
+
const valueType = typeof value;
|
|
243
|
+
let suggestion = `Validation failed for field '${fieldPath}'.`;
|
|
244
|
+
switch (validationRule.toLowerCase()) {
|
|
245
|
+
case 'required':
|
|
246
|
+
suggestion += ' This field is required and cannot be empty.';
|
|
247
|
+
break;
|
|
248
|
+
case 'email':
|
|
249
|
+
suggestion +=
|
|
250
|
+
' Please provide a valid email address (e.g., user@example.com).';
|
|
251
|
+
break;
|
|
252
|
+
case 'url':
|
|
253
|
+
suggestion +=
|
|
254
|
+
' Please provide a valid URL (e.g., https://example.com).';
|
|
255
|
+
break;
|
|
256
|
+
case 'number':
|
|
257
|
+
suggestion += ` Expected a number but got ${valueType}. Consider converting the value to a number.`;
|
|
258
|
+
break;
|
|
259
|
+
case 'string':
|
|
260
|
+
suggestion += ` Expected a string but got ${valueType}. Consider converting the value to a string.`;
|
|
261
|
+
break;
|
|
262
|
+
case 'boolean':
|
|
263
|
+
suggestion += ` Expected a boolean but got ${valueType}. Consider using true/false values.`;
|
|
264
|
+
break;
|
|
265
|
+
default:
|
|
266
|
+
suggestion += ` Check the validation rule: ${validationRule}.`;
|
|
267
|
+
}
|
|
268
|
+
return suggestion;
|
|
269
|
+
}
|
|
270
|
+
/**
|
|
271
|
+
* Extract all possible paths from an object for suggestions
|
|
272
|
+
*/
|
|
273
|
+
static extractPaths(obj, prefix = '') {
|
|
274
|
+
const paths = [];
|
|
275
|
+
if (obj === null || typeof obj !== 'object') {
|
|
276
|
+
return paths;
|
|
277
|
+
}
|
|
278
|
+
if (Array.isArray(obj)) {
|
|
279
|
+
obj.forEach((item, index) => {
|
|
280
|
+
const arrayPath = prefix ? `${prefix}[${index}]` : `[${index}]`;
|
|
281
|
+
paths.push(arrayPath);
|
|
282
|
+
paths.push(...this.extractPaths(item, arrayPath));
|
|
283
|
+
});
|
|
284
|
+
}
|
|
285
|
+
else {
|
|
286
|
+
Object.keys(obj).forEach(key => {
|
|
287
|
+
const currentPath = prefix ? `${prefix}.${key}` : key;
|
|
288
|
+
paths.push(currentPath);
|
|
289
|
+
paths.push(...this.extractPaths(obj[key], currentPath));
|
|
290
|
+
});
|
|
291
|
+
}
|
|
292
|
+
return paths;
|
|
293
|
+
}
|
|
294
|
+
/**
|
|
295
|
+
* Extract field names from an object (top-level and nested)
|
|
296
|
+
*/
|
|
297
|
+
static extractFieldNames(obj, includeNested = true) {
|
|
298
|
+
const fields = new Set();
|
|
299
|
+
const traverse = (current, path = '') => {
|
|
300
|
+
if (current === null || typeof current !== 'object') {
|
|
301
|
+
return;
|
|
302
|
+
}
|
|
303
|
+
if (Array.isArray(current)) {
|
|
304
|
+
current.forEach((item, index) => {
|
|
305
|
+
if (includeNested) {
|
|
306
|
+
traverse(item, path ? `${path}[${index}]` : `[${index}]`);
|
|
307
|
+
}
|
|
308
|
+
});
|
|
309
|
+
}
|
|
310
|
+
else {
|
|
311
|
+
Object.keys(current).forEach(key => {
|
|
312
|
+
const currentPath = path ? `${path}.${key}` : key;
|
|
313
|
+
fields.add(key); // Add the key itself
|
|
314
|
+
if (includeNested) {
|
|
315
|
+
fields.add(currentPath); // Add the full path
|
|
316
|
+
traverse(current[key], currentPath);
|
|
317
|
+
}
|
|
318
|
+
});
|
|
319
|
+
}
|
|
320
|
+
};
|
|
321
|
+
traverse(obj);
|
|
322
|
+
return Array.from(fields);
|
|
323
|
+
}
|
|
324
|
+
}
|
|
325
|
+
exports.SuggestionEngine = SuggestionEngine;
|
|
326
|
+
SuggestionEngine.SIMILARITY_THRESHOLD = 0.6;
|
|
327
|
+
SuggestionEngine.MAX_SUGGESTIONS = 5;
|
|
328
|
+
//# sourceMappingURL=SuggestionEngine.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SuggestionEngine.js","sourceRoot":"","sources":["../../src/errors/SuggestionEngine.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Error handling and reporting system for ConfigForge
|
|
3
|
+
*/
|
|
4
|
+
export * from './ErrorTypes';
|
|
5
|
+
export * from './SpecificErrors';
|
|
6
|
+
export * from './ErrorCollector';
|
|
7
|
+
export * from './ErrorReporter';
|
|
8
|
+
export * from './ErrorRecovery';
|
|
9
|
+
export * from './ErrorContext';
|
|
10
|
+
export * from './SuggestionEngine';
|
|
11
|
+
export { ConfigForgeError, ParseError, MappingError, ValidationError, TransformError, GenericConfigForgeError, } from '../types';
|
|
12
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/errors/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,cAAc,cAAc,CAAC;AAC7B,cAAc,kBAAkB,CAAC;AAGjC,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAGhC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,oBAAoB,CAAC;AAGnC,OAAO,EACL,gBAAgB,EAChB,UAAU,EACV,YAAY,EACZ,eAAe,EACf,cAAc,EACd,uBAAuB,GACxB,MAAM,UAAU,CAAC"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Error handling and reporting system for ConfigForge
|
|
4
|
+
*/
|
|
5
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
6
|
+
if (k2 === undefined) k2 = k;
|
|
7
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
8
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
9
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
10
|
+
}
|
|
11
|
+
Object.defineProperty(o, k2, desc);
|
|
12
|
+
}) : (function(o, m, k, k2) {
|
|
13
|
+
if (k2 === undefined) k2 = k;
|
|
14
|
+
o[k2] = m[k];
|
|
15
|
+
}));
|
|
16
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
17
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
18
|
+
};
|
|
19
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
20
|
+
exports.GenericConfigForgeError = exports.TransformError = exports.ValidationError = exports.MappingError = exports.ParseError = exports.ConfigForgeError = void 0;
|
|
21
|
+
// Export error types
|
|
22
|
+
__exportStar(require("./ErrorTypes"), exports);
|
|
23
|
+
__exportStar(require("./SpecificErrors"), exports);
|
|
24
|
+
// Export error management
|
|
25
|
+
__exportStar(require("./ErrorCollector"), exports);
|
|
26
|
+
__exportStar(require("./ErrorReporter"), exports);
|
|
27
|
+
__exportStar(require("./ErrorRecovery"), exports);
|
|
28
|
+
// Export error context and utilities
|
|
29
|
+
__exportStar(require("./ErrorContext"), exports);
|
|
30
|
+
__exportStar(require("./SuggestionEngine"), exports);
|
|
31
|
+
// Re-export base error types from main types
|
|
32
|
+
var types_1 = require("../types");
|
|
33
|
+
Object.defineProperty(exports, "ConfigForgeError", { enumerable: true, get: function () { return types_1.ConfigForgeError; } });
|
|
34
|
+
Object.defineProperty(exports, "ParseError", { enumerable: true, get: function () { return types_1.ParseError; } });
|
|
35
|
+
Object.defineProperty(exports, "MappingError", { enumerable: true, get: function () { return types_1.MappingError; } });
|
|
36
|
+
Object.defineProperty(exports, "ValidationError", { enumerable: true, get: function () { return types_1.ValidationError; } });
|
|
37
|
+
Object.defineProperty(exports, "TransformError", { enumerable: true, get: function () { return types_1.TransformError; } });
|
|
38
|
+
Object.defineProperty(exports, "GenericConfigForgeError", { enumerable: true, get: function () { return types_1.GenericConfigForgeError; } });
|
|
39
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/errors/index.ts"],"names":[],"mappings":";AAAA;;GAEG;;;;;;;;;;;;;;;;;AAEH,qBAAqB;AACrB,+CAA6B;AAC7B,mDAAiC;AAEjC,0BAA0B;AAC1B,mDAAiC;AACjC,kDAAgC;AAChC,kDAAgC;AAEhC,qCAAqC;AACrC,iDAA+B;AAC/B,qDAAmC;AAEnC,6CAA6C;AAC7C,kCAOkB;AANhB,yGAAA,gBAAgB,OAAA;AAChB,mGAAA,UAAU,OAAA;AACV,qGAAA,YAAY,OAAA;AACZ,wGAAA,eAAe,OAAA;AACf,uGAAA,cAAc,OAAA;AACd,gHAAA,uBAAuB,OAAA"}
|
package/dist/index.d.ts
CHANGED
|
@@ -2,6 +2,9 @@ export { forge } from './core/Forge';
|
|
|
2
2
|
export { Converter } from './core/Converter';
|
|
3
3
|
export { Mapper } from './core/Mapper';
|
|
4
4
|
export * as transforms from './transformers/built-in';
|
|
5
|
+
export * as validators from './validators/built-in';
|
|
6
|
+
export { ValidatorRegistry, validatorRegistry, } from './validators/ValidatorRegistry';
|
|
5
7
|
export * from './types';
|
|
8
|
+
export * from './errors';
|
|
6
9
|
export { parsePath, setPath, mergePaths, detectFormat } from './utils';
|
|
7
10
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;AACrC,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AACvC,OAAO,KAAK,UAAU,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;AACrC,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AACvC,OAAO,KAAK,UAAU,MAAM,yBAAyB,CAAC;AACtD,OAAO,KAAK,UAAU,MAAM,uBAAuB,CAAC;AACpD,OAAO,EACL,iBAAiB,EACjB,iBAAiB,GAClB,MAAM,gCAAgC,CAAC;AACxC,cAAc,SAAS,CAAC;AAGxB,cAAc,UAAU,CAAC;AAMzB,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -36,7 +36,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
36
36
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
37
37
|
};
|
|
38
38
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
-
exports.detectFormat = exports.mergePaths = exports.setPath = exports.parsePath = exports.transforms = exports.Mapper = exports.Converter = exports.forge = void 0;
|
|
39
|
+
exports.detectFormat = exports.mergePaths = exports.setPath = exports.parsePath = exports.validatorRegistry = exports.ValidatorRegistry = exports.validators = exports.transforms = exports.Mapper = exports.Converter = exports.forge = void 0;
|
|
40
40
|
// Main exports
|
|
41
41
|
var Forge_1 = require("./core/Forge");
|
|
42
42
|
Object.defineProperty(exports, "forge", { enumerable: true, get: function () { return Forge_1.forge; } });
|
|
@@ -45,8 +45,13 @@ Object.defineProperty(exports, "Converter", { enumerable: true, get: function ()
|
|
|
45
45
|
var Mapper_1 = require("./core/Mapper");
|
|
46
46
|
Object.defineProperty(exports, "Mapper", { enumerable: true, get: function () { return Mapper_1.Mapper; } });
|
|
47
47
|
exports.transforms = __importStar(require("./transformers/built-in"));
|
|
48
|
-
|
|
48
|
+
exports.validators = __importStar(require("./validators/built-in"));
|
|
49
|
+
var ValidatorRegistry_1 = require("./validators/ValidatorRegistry");
|
|
50
|
+
Object.defineProperty(exports, "ValidatorRegistry", { enumerable: true, get: function () { return ValidatorRegistry_1.ValidatorRegistry; } });
|
|
51
|
+
Object.defineProperty(exports, "validatorRegistry", { enumerable: true, get: function () { return ValidatorRegistry_1.validatorRegistry; } });
|
|
49
52
|
__exportStar(require("./types"), exports);
|
|
53
|
+
// Error handling exports
|
|
54
|
+
__exportStar(require("./errors"), exports);
|
|
50
55
|
// Plugin exports
|
|
51
56
|
// export { Plugin, PluginContext } from './plugins/Plugin'; // TODO: Implement plugin system
|
|
52
57
|
// Utility exports
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,eAAe;AACf,sCAAqC;AAA5B,8FAAA,KAAK,OAAA;AACd,8CAA6C;AAApC,sGAAA,SAAS,OAAA;AAClB,wCAAuC;AAA9B,gGAAA,MAAM,OAAA;AACf,sEAAsD;AACtD,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,eAAe;AACf,sCAAqC;AAA5B,8FAAA,KAAK,OAAA;AACd,8CAA6C;AAApC,sGAAA,SAAS,OAAA;AAClB,wCAAuC;AAA9B,gGAAA,MAAM,OAAA;AACf,sEAAsD;AACtD,oEAAoD;AACpD,oEAGwC;AAFtC,sHAAA,iBAAiB,OAAA;AACjB,sHAAA,iBAAiB,OAAA;AAEnB,0CAAwB;AAExB,yBAAyB;AACzB,2CAAyB;AAEzB,iBAAiB;AACjB,6FAA6F;AAE7F,kBAAkB;AAClB,iCAAuE;AAA9D,kGAAA,SAAS,OAAA;AAAE,gGAAA,OAAO,OAAA;AAAE,mGAAA,UAAU,OAAA;AAAE,qGAAA,YAAY,OAAA"}
|
package/dist/types/index.d.ts
CHANGED
|
@@ -24,7 +24,7 @@ export interface Mapping {
|
|
|
24
24
|
source: string;
|
|
25
25
|
target: string;
|
|
26
26
|
transform?: TransformFn;
|
|
27
|
-
condition?: ConditionFn;
|
|
27
|
+
condition?: string | ConditionFn;
|
|
28
28
|
type: MappingType;
|
|
29
29
|
metadata?: MappingMetadata;
|
|
30
30
|
}
|
|
@@ -33,6 +33,10 @@ export interface MappingMetadata {
|
|
|
33
33
|
description?: string;
|
|
34
34
|
examples?: any[];
|
|
35
35
|
deprecated?: boolean;
|
|
36
|
+
forEachFn?: ForEachFn;
|
|
37
|
+
condition?: string | ConditionFn;
|
|
38
|
+
sources?: string[];
|
|
39
|
+
mergeFn?: MergeFn;
|
|
36
40
|
}
|
|
37
41
|
export type TransformFn<T = any, R = any> = (value: T, context?: TransformContext) => R | Promise<R>;
|
|
38
42
|
export interface TransformContext {
|
|
@@ -138,6 +142,9 @@ export interface PipelineContext {
|
|
|
138
142
|
converter: any;
|
|
139
143
|
options: ForgeOptions;
|
|
140
144
|
metadata: Record<string, any>;
|
|
145
|
+
warnings: Warning[];
|
|
146
|
+
errors: ConfigForgeError[];
|
|
147
|
+
stats: Partial<ConversionStats>;
|
|
141
148
|
}
|
|
142
149
|
export interface BatchOptions {
|
|
143
150
|
parallel?: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AACA,MAAM,WAAW,YAAY;IAC3B,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED,MAAM,WAAW,YAAY;IAC3B,MAAM,CAAC,EAAE,UAAU,CAAC;IACpB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,YAAY,CAAC;CACvB;AAED,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,KAAK,GAAG,MAAM,CAAC;AAGnE,MAAM,WAAW,MAAM;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,UAAU,CAAC;IACpB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,GAAG,CAAC;CACZ;AAGD,MAAM,WAAW,OAAO;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,WAAW,CAAC;IACxB,SAAS,CAAC,EAAE,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"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"}
|
package/dist/types/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":";;;AA0IA,cAAc;AACd,MAAsB,gBAAiB,SAAQ,KAAK;IAMlD,YACE,OAAe,EACf,OAA+D;QAE/D,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;QAClC,IAAI,OAAO,EAAE,IAAI,KAAK,SAAS,EAAE,CAAC;YAChC,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;QAC3B,CAAC;QACD,IAAI,OAAO,EAAE,UAAU,KAAK,SAAS,EAAE,CAAC;YACtC,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;QACvC,CAAC;QACD,IAAI,OAAO,EAAE,OAAO,KAAK,SAAS,EAAE,CAAC;YACnC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;QACjC,CAAC;IACH,CAAC;CACF;AAtBD,4CAsBC;AAED,MAAa,uBAAwB,SAAQ,gBAAgB;IAA7D;;QACE,SAAI,GAAG,eAAe,CAAC;IACzB,CAAC;CAAA;AAFD,0DAEC;AAED,MAAa,YAAa,SAAQ,gBAAgB;IAAlD;;QACE,SAAI,GAAG,eAAe,CAAC;IACzB,CAAC;CAAA;AAFD,oCAEC;AAED,MAAa,eAAgB,SAAQ,gBAAgB;IAArD;;QACE,SAAI,GAAG,kBAAkB,CAAC;IAC5B,CAAC;CAAA;AAFD,0CAEC;AAED,MAAa,UAAW,SAAQ,gBAAgB;IAAhD;;QACE,SAAI,GAAG,aAAa,CAAC;IACvB,CAAC;CAAA;AAFD,gCAEC;AAED,MAAa,cAAe,SAAQ,gBAAgB;IAApD;;QACE,SAAI,GAAG,iBAAiB,CAAC;IAC3B,CAAC;CAAA;AAFD,wCAEC"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import { Validator, ValidatorFn } from '../types';
|
|
2
|
+
import * as builtInValidators from './built-in';
|
|
3
|
+
/**
|
|
4
|
+
* Registry for managing validators
|
|
5
|
+
*/
|
|
6
|
+
export declare class ValidatorRegistry {
|
|
7
|
+
private validators;
|
|
8
|
+
constructor();
|
|
9
|
+
/**
|
|
10
|
+
* Register a validator
|
|
11
|
+
*/
|
|
12
|
+
register(validator: Validator): void;
|
|
13
|
+
/**
|
|
14
|
+
* Register a validator by name and function
|
|
15
|
+
*/
|
|
16
|
+
registerFunction(name: string, validate: ValidatorFn): void;
|
|
17
|
+
/**
|
|
18
|
+
* Get a validator by name
|
|
19
|
+
*/
|
|
20
|
+
get(name: string): Validator | undefined;
|
|
21
|
+
/**
|
|
22
|
+
* Get a validator function by name
|
|
23
|
+
*/
|
|
24
|
+
getFunction(name: string): ValidatorFn | undefined;
|
|
25
|
+
/**
|
|
26
|
+
* Check if a validator exists
|
|
27
|
+
*/
|
|
28
|
+
has(name: string): boolean;
|
|
29
|
+
/**
|
|
30
|
+
* List all registered validators
|
|
31
|
+
*/
|
|
32
|
+
list(): string[];
|
|
33
|
+
/**
|
|
34
|
+
* Remove a validator
|
|
35
|
+
*/
|
|
36
|
+
unregister(name: string): boolean;
|
|
37
|
+
/**
|
|
38
|
+
* Clear all validators
|
|
39
|
+
*/
|
|
40
|
+
clear(): void;
|
|
41
|
+
/**
|
|
42
|
+
* Register all built-in validators
|
|
43
|
+
*/
|
|
44
|
+
private registerBuiltInValidators;
|
|
45
|
+
/**
|
|
46
|
+
* Create a validator instance with built-in validators
|
|
47
|
+
*/
|
|
48
|
+
static create(): ValidatorRegistry;
|
|
49
|
+
/**
|
|
50
|
+
* Get built-in validators object for direct access
|
|
51
|
+
*/
|
|
52
|
+
static getBuiltIns(): typeof builtInValidators;
|
|
53
|
+
}
|
|
54
|
+
export declare const validatorRegistry: ValidatorRegistry;
|
|
55
|
+
//# sourceMappingURL=ValidatorRegistry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ValidatorRegistry.d.ts","sourceRoot":"","sources":["../../src/validators/ValidatorRegistry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAClD,OAAO,KAAK,iBAAiB,MAAM,YAAY,CAAC;AAEhD;;GAEG;AACH,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,UAAU,CAAqC;;IAMvD;;OAEG;IACH,QAAQ,CAAC,SAAS,EAAE,SAAS,GAAG,IAAI;IAIpC;;OAEG;IACH,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,WAAW,GAAG,IAAI;IAI3D;;OAEG;IACH,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS;IAIxC;;OAEG;IACH,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,GAAG,SAAS;IAIlD;;OAEG;IACH,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAI1B;;OAEG;IACH,IAAI,IAAI,MAAM,EAAE;IAIhB;;OAEG;IACH,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAIjC;;OAEG;IACH,KAAK,IAAI,IAAI;IAIb;;OAEG;IACH,OAAO,CAAC,yBAAyB;IAgCjC;;OAEG;IACH,MAAM,CAAC,MAAM,IAAI,iBAAiB;IAIlC;;OAEG;IACH,MAAM,CAAC,WAAW;CAGnB;AAGD,eAAO,MAAM,iBAAiB,mBAA6B,CAAC"}
|