@forestadmin-experimental/datasource-cosmos 1.1.0 → 1.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/collection.d.ts.map +1 -1
- package/dist/collection.js +32 -6
- package/dist/introspection/container-introspector.js +14 -1
- package/dist/utils/query-converter.d.ts.map +1 -1
- package/dist/utils/query-converter.js +30 -23
- package/dist/utils/type-converter.d.ts +1 -1
- package/dist/utils/type-converter.d.ts.map +1 -1
- package/dist/utils/type-converter.js +23 -7
- package/package.json +1 -1
package/dist/collection.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"collection.d.ts","sourceRoot":"","sources":["../src/collection.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EACL,eAAe,EACf,WAAW,EACX,cAAc,EACd,MAAM,EACN,UAAU,EACV,MAAM,EACN,MAAM,EACN,eAAe,EACf,UAAU,EACV,UAAU,EACX,MAAM,iCAAiC,CAAC;AAEzC,OAAO,WAAW,MAAM,uBAAuB,CAAC;AAKhD,MAAM,CAAC,OAAO,OAAO,gBAAiB,SAAQ,cAAc;IAC1D,SAAS,CAAC,aAAa,EAAE,WAAW,CAAC;IAErC,OAAO,CAAC,cAAc,CAAiB;gBAGrC,UAAU,EAAE,UAAU,EACtB,KAAK,EAAE,WAAW,EAClB,MAAM,EAAE,MAAM,EACd,YAAY,EAAE,YAAY;IAmBtB,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;IAUjE,IAAI,CACR,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,eAAe,EACvB,UAAU,EAAE,UAAU,GACrB,OAAO,CAAC,UAAU,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"collection.d.ts","sourceRoot":"","sources":["../src/collection.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EACL,eAAe,EACf,WAAW,EACX,cAAc,EACd,MAAM,EACN,UAAU,EACV,MAAM,EACN,MAAM,EACN,eAAe,EACf,UAAU,EACV,UAAU,EACX,MAAM,iCAAiC,CAAC;AAEzC,OAAO,WAAW,MAAM,uBAAuB,CAAC;AAKhD,MAAM,CAAC,OAAO,OAAO,gBAAiB,SAAQ,cAAc;IAC1D,SAAS,CAAC,aAAa,EAAE,WAAW,CAAC;IAErC,OAAO,CAAC,cAAc,CAAiB;gBAGrC,UAAU,EAAE,UAAU,EACtB,KAAK,EAAE,WAAW,EAClB,MAAM,EAAE,MAAM,EACd,YAAY,EAAE,YAAY;IAmBtB,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;IAUjE,IAAI,CACR,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,eAAe,EACvB,UAAU,EAAE,UAAU,GACrB,OAAO,CAAC,UAAU,EAAE,CAAC;IA6DlB,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IAgBxE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAgBrD,SAAS,CACb,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,WAAW,EACxB,KAAK,CAAC,EAAE,MAAM,GACb,OAAO,CAAC,eAAe,EAAE,CAAC;CAkB9B"}
|
package/dist/collection.js
CHANGED
|
@@ -31,16 +31,42 @@ class CosmosCollection extends datasource_toolkit_1.BaseCollection {
|
|
|
31
31
|
}
|
|
32
32
|
}
|
|
33
33
|
async list(caller, filter, projection) {
|
|
34
|
+
// Filter out 'id' field and deeply nested fields from sort as Cosmos DB doesn't support
|
|
35
|
+
// sorting on them without proper indexing
|
|
36
|
+
let filteredSort = filter.sort;
|
|
37
|
+
if (filter.sort && filter.sort.length > 0) {
|
|
38
|
+
filteredSort = filter.sort.replaceClauses(clause => {
|
|
39
|
+
// Skip 'id' field
|
|
40
|
+
if (clause.field === 'id') {
|
|
41
|
+
return [];
|
|
42
|
+
}
|
|
43
|
+
// Skip deeply nested fields (2+ levels like receiver->authorizationBalance->value)
|
|
44
|
+
const nestingLevel = (clause.field.match(/->/g) || []).length;
|
|
45
|
+
if (nestingLevel >= 2) {
|
|
46
|
+
return [];
|
|
47
|
+
}
|
|
48
|
+
return clause;
|
|
49
|
+
});
|
|
50
|
+
// If all sort clauses were filtered out, set to undefined
|
|
51
|
+
if (filteredSort.length === 0) {
|
|
52
|
+
filteredSort = undefined;
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
// Build query with projection to only fetch needed fields
|
|
56
|
+
const querySpec = this.queryConverter.getSqlQuerySpec(filter.conditionTree, filteredSort, projection);
|
|
34
57
|
try {
|
|
35
|
-
// Build the SQL query from the filter
|
|
36
|
-
const projectionFields = projection.columns.length > 0 ? projection.columns : undefined;
|
|
37
|
-
const querySpec = this.queryConverter.getSqlQuerySpec(filter.conditionTree, filter.sort, projectionFields);
|
|
38
58
|
// Execute the query with pagination
|
|
39
59
|
const recordsResponse = await this.internalModel.query(querySpec, filter.page?.skip, filter.page?.limit);
|
|
40
|
-
|
|
41
|
-
return projection.apply(recordsResponse);
|
|
60
|
+
return recordsResponse;
|
|
42
61
|
}
|
|
43
62
|
catch (error) {
|
|
63
|
+
// Check if this is a Cosmos DB indexing issue with nested fields
|
|
64
|
+
if (error.message.includes('One of the input values is invalid') &&
|
|
65
|
+
querySpec.query.includes('.')) {
|
|
66
|
+
throw new Error(`Cosmos DB query failed. This may be due to querying/filtering on nested fields ` +
|
|
67
|
+
`without proper indexing. Please configure your Cosmos DB container's indexing policy ` +
|
|
68
|
+
`to include the nested paths being queried. Original error: ${error.message}`);
|
|
69
|
+
}
|
|
44
70
|
throw new Error(`Failed to list records: ${error.message}`);
|
|
45
71
|
}
|
|
46
72
|
}
|
|
@@ -87,4 +113,4 @@ class CosmosCollection extends datasource_toolkit_1.BaseCollection {
|
|
|
87
113
|
}
|
|
88
114
|
}
|
|
89
115
|
exports.default = CosmosCollection;
|
|
90
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
116
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sbGVjdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9jb2xsZWN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBR0Esd0VBV3lDO0FBR3pDLDBGQUFpRTtBQUNqRSx3SEFBMEU7QUFDMUUsOEVBQXFEO0FBRXJELE1BQXFCLGdCQUFpQixTQUFRLG1DQUFjO0lBSzFELFlBQ0UsVUFBc0IsRUFDdEIsS0FBa0IsRUFDbEIsTUFBYyxFQUNkLFlBQTBCO1FBRTFCLElBQUksQ0FBQyxLQUFLO1lBQUUsTUFBTSxJQUFJLEtBQUssQ0FBQyxnQ0FBZ0MsQ0FBQyxDQUFDO1FBRTlELEtBQUssQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLFVBQVUsRUFBRSxZQUFZLENBQUMsQ0FBQztRQUU1QyxJQUFJLENBQUMsYUFBYSxHQUFHLEtBQUssQ0FBQztRQUUzQixJQUFJLENBQUMsY0FBYyxHQUFHLElBQUkseUJBQWMsRUFBRSxDQUFDO1FBRTNDLE1BQU0sV0FBVyxHQUFHLDhDQUFjLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFFdkUsSUFBSSxJQUFJLENBQUMsYUFBYSxDQUFDLFdBQVcsS0FBSyxLQUFLO1lBQUUsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ2pFLElBQUksQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ25DLElBQUksQ0FBQyxXQUFXLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBRXZDLE1BQU0sQ0FBQyxPQUFPLEVBQUUsc0JBQXNCLElBQUksQ0FBQyxJQUFJLFFBQVEsQ0FBQyxDQUFDO0lBQzNELENBQUM7SUFFRCxLQUFLLENBQUMsTUFBTSxDQUFDLE1BQWMsRUFBRSxJQUFrQjtRQUM3QyxJQUFJLENBQUM7WUFDSCxNQUFNLGVBQWUsR0FBRyxNQUFNLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLElBQUks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
|
|
@@ -54,6 +54,19 @@ documents, flattenNestedObjects, maxDepth, introspectArrayItems) {
|
|
|
54
54
|
for (const [fieldName, types] of Object.entries(fieldTypes)) {
|
|
55
55
|
// Skip Cosmos DB system fields (start with _)
|
|
56
56
|
if (!fieldName.startsWith('_') || fieldName === '_id') {
|
|
57
|
+
// Skip parent fields if we have child fields (when flattening is enabled)
|
|
58
|
+
if (flattenNestedObjects) {
|
|
59
|
+
const childFieldPattern = `${fieldName}->`;
|
|
60
|
+
const hasDirectChildFields = Object.keys(fieldTypes).some(otherField => otherField !== fieldName && otherField.startsWith(childFieldPattern));
|
|
61
|
+
if (hasDirectChildFields) {
|
|
62
|
+
// Don't skip if it's an array or other type that doesn't get flattened
|
|
63
|
+
const wasFlattened = types.includes('object');
|
|
64
|
+
if (wasFlattened) {
|
|
65
|
+
// eslint-disable-next-line no-continue
|
|
66
|
+
continue; // Skip this parent field since it was flattened
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
}
|
|
57
70
|
// Get the most specific common type
|
|
58
71
|
const commonType = type_converter_1.default.getMostSpecificType(types);
|
|
59
72
|
// Field is nullable if it contains null OR is not present in all documents
|
|
@@ -165,4 +178,4 @@ function isGeoPoint(value) {
|
|
|
165
178
|
Array.isArray(value.coordinates) &&
|
|
166
179
|
value.coordinates.length === 2);
|
|
167
180
|
}
|
|
168
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
181
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGFpbmVyLWludHJvc3BlY3Rvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9pbnRyb3NwZWN0aW9uL2NvbnRhaW5lci1pbnRyb3NwZWN0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFJQSxtRUFBbUU7QUFDbkUsNkVBQXdFO0FBdUJ4RTs7O0dBR0c7QUFDWSxLQUFLLFVBQVUscUJBQXFCLENBQ2pELFlBQTBCLEVBQzFCLGNBQXNCLEVBQ3RCLFlBQW9CLEVBQ3BCLGFBQXFCLEVBQ3JCLGdCQUF5QixFQUN6QixVQUFVLEdBQUcsR0FBRyxFQUNoQixxQkFBNkMsRUFDN0MsV0FBcUIsRUFDckIsVUFBZ0MsRUFBRTtJQUVsQyxNQUFNLEVBQUUsb0JBQW9CLEdBQUcsSUFBSSxFQUFFLFFBQVEsR0FBRyxDQUFDLEVBQUUsb0JBQW9CLEdBQUcsS0FBSyxFQUFFLEdBQUcsT0FBTyxDQUFDO0lBRTVGLE1BQU0sUUFBUSxHQUFHLFlBQVksQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDckQsTUFBTSxTQUFTLEdBQUcsUUFBUSxDQUFDLFNBQVMsQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUVwRCxvRUFBb0U7SUFDcEUsSUFBSSxzQkFBc0IsR0FBRyxnQkFBZ0IsQ0FBQztJQUU5QyxJQUFJLENBQUMsc0JBQXNCLEVBQUUsQ0FBQztRQUM1QixNQUFNLEVBQUUsUUFBUSxFQUFFLFlBQVksRUFBRSxHQUFHLE1BQU0sU0FBUyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQzFELHNCQUFzQixHQUFHLFlBQVksQ0FBQyxZQUFZLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxDQUFDO0lBQzFFLENBQUM7SUFFRCxtQ0FBbUM7SUFDbkMsTUFBTSxTQUFTLEdBQUc7UUFDaEIsS0FBSyxFQUFFLGNBQWMsVUFBVSxXQUFXO0tBQzNDLENBQUM7SUFFRixNQUFNLEVBQUUsU0FBUyxFQUFFLGVBQWUsRUFBRSxH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
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"query-converter.d.ts","sourceRoot":"","sources":["../../src/utils/query-converter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC3D,OAAO,EACL,aAAa,EAIb,IAAI,EACL,MAAM,iCAAiC,CAAC;AAEzC,MAAM,CAAC,OAAO,OAAO,cAAc;IACjC,OAAO,CAAC,gBAAgB,CAAK;IAC7B,OAAO,CAAC,UAAU,CAAsB;IAExC;;OAEG;IACH,OAAO,CAAC,KAAK;IAKb;;OAEG;IACH,OAAO,CAAC,YAAY;IASpB;;OAEG;IACH,OAAO,CAAC,eAAe;IA4HvB;;OAEG;IACH,OAAO,CAAC,+BAA+B;IAyCvC;;OAEG;IACI,eAAe,CACpB,aAAa,CAAC,EAAE,aAAa,EAC7B,IAAI,CAAC,EAAE,IAAI,EACX,UAAU,CAAC,EAAE,MAAM,EAAE,GACpB,YAAY;
|
|
1
|
+
{"version":3,"file":"query-converter.d.ts","sourceRoot":"","sources":["../../src/utils/query-converter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC3D,OAAO,EACL,aAAa,EAIb,IAAI,EACL,MAAM,iCAAiC,CAAC;AAEzC,MAAM,CAAC,OAAO,OAAO,cAAc;IACjC,OAAO,CAAC,gBAAgB,CAAK;IAC7B,OAAO,CAAC,UAAU,CAAsB;IAExC;;OAEG;IACH,OAAO,CAAC,KAAK;IAKb;;OAEG;IACH,OAAO,CAAC,YAAY;IASpB;;OAEG;IACH,OAAO,CAAC,eAAe;IA4HvB;;OAEG;IACH,OAAO,CAAC,+BAA+B;IAyCvC;;OAEG;IACI,eAAe,CACpB,aAAa,CAAC,EAAE,aAAa,EAC7B,IAAI,CAAC,EAAE,IAAI,EACX,UAAU,CAAC,EAAE,MAAM,EAAE,GACpB,YAAY;IAuDf;;OAEG;IACI,gBAAgB,CAAC,IAAI,CAAC,EAAE,IAAI,GAAG,MAAM;IAe5C;;OAEG;IACI,cAAc,CAAC,aAAa,CAAC,EAAE,aAAa,GAAG;QACpD,KAAK,EAAE,MAAM,CAAC;QACd,UAAU,EAAE,YAAY,EAAE,CAAC;KAC5B;CAMF"}
|
|
@@ -157,24 +157,33 @@ class QueryConverter {
|
|
|
157
157
|
// Reset state for new query
|
|
158
158
|
this.reset();
|
|
159
159
|
// Build SELECT clause
|
|
160
|
-
//
|
|
161
|
-
//
|
|
162
|
-
// e.g., "c.address.city AS 'address->city'" so the result has the flattened field name
|
|
160
|
+
// Cosmos DB doesn't handle well selecting individual nested properties
|
|
161
|
+
// (e.g., c.accountingBalance.currency). Instead, select parent objects.
|
|
163
162
|
const selectClause = projection && projection.length > 0
|
|
164
|
-
?
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
163
|
+
? (() => {
|
|
164
|
+
const fieldsToSelect = new Set();
|
|
165
|
+
projection.forEach(field => {
|
|
166
|
+
if (field.includes('->')) {
|
|
167
|
+
// For nested fields like 'accountingBalance->currency',
|
|
168
|
+
// add the parent object 'accountingBalance' instead
|
|
169
|
+
const parentField = field.split('->')[0];
|
|
170
|
+
fieldsToSelect.add(parentField);
|
|
171
|
+
}
|
|
172
|
+
else {
|
|
173
|
+
// Regular field, add as-is
|
|
174
|
+
fieldsToSelect.add(field);
|
|
175
|
+
}
|
|
176
|
+
});
|
|
177
|
+
return Array.from(fieldsToSelect)
|
|
178
|
+
.map(field => {
|
|
179
|
+
if (field === 'id') {
|
|
180
|
+
return 'c.id';
|
|
181
|
+
}
|
|
182
|
+
const cosmosField = field.replace(/->/g, '.');
|
|
183
|
+
return `c.${cosmosField}`;
|
|
184
|
+
})
|
|
185
|
+
.join(', ');
|
|
186
|
+
})()
|
|
178
187
|
: 'c';
|
|
179
188
|
// Build WHERE clause
|
|
180
189
|
const whereClause = this.getWhereClauseFromConditionTree(conditionTree);
|
|
@@ -195,15 +204,13 @@ class QueryConverter {
|
|
|
195
204
|
getOrderByClause(sort) {
|
|
196
205
|
if (!sort || sort.length === 0)
|
|
197
206
|
return '';
|
|
198
|
-
const sortClauses = sort
|
|
199
|
-
.map(({ field, ascending }) => {
|
|
207
|
+
const sortClauses = sort.map(({ field, ascending }) => {
|
|
200
208
|
// Convert arrow notation (->) to dot notation (.) for Cosmos DB
|
|
201
209
|
const cosmosField = field.replace(/->/g, '.');
|
|
202
|
-
const fieldPath =
|
|
210
|
+
const fieldPath = `c.${cosmosField}`;
|
|
203
211
|
const direction = ascending ? 'ASC' : 'DESC';
|
|
204
212
|
return `${fieldPath} ${direction}`;
|
|
205
|
-
})
|
|
206
|
-
.filter(Boolean);
|
|
213
|
+
});
|
|
207
214
|
return sortClauses.join(', ');
|
|
208
215
|
}
|
|
209
216
|
/**
|
|
@@ -216,4 +223,4 @@ class QueryConverter {
|
|
|
216
223
|
}
|
|
217
224
|
}
|
|
218
225
|
exports.default = QueryConverter;
|
|
219
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
226
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcnktY29udmVydGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3V0aWxzL3F1ZXJ5LWNvbnZlcnRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQVNBLE1BQXFCLGNBQWM7SUFBbkM7UUFDVSxxQkFBZ0IsR0FBRyxDQUFDLENBQUM7UUFDckIsZUFBVSxHQUFtQixFQUFFLENBQUM7SUE2UjFDLENBQUM7SUEzUkM7O09BRUc7SUFDSyxLQUFLO1FBQ1gsSUFBSSxDQUFDLGdCQUFnQixHQUFHLENBQUMsQ0FBQztRQUMxQixJQUFJLENBQUMsVUFBVSxHQUFHLEVBQUUsQ0FBQztJQUN2QixDQUFDO0lBRUQ7O09BRUc7SUFDSyxZQUFZLENBQUMsS0FBYztRQUNqQyxNQUFNLFNBQVMsR0FBRyxTQUFTLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1FBQ25ELElBQUksQ0FBQyxnQkFBZ0IsSUFBSSxDQUFDLENBQUM7UUFDM0IsOERBQThEO1FBQzlELElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsS0FBWSxFQUFFLENBQUMsQ0FBQztRQUUvRCxPQUFPLFNBQVMsQ0FBQztJQUNuQixDQUFDO0lBRUQ7O09BRUc7SUFDSyxlQUFlLENBQUMsS0FBYSxFQUFFLFFBQWtCLEVBQUUsS0FBZTtRQUN4RSxrREFBa0Q7UUFDbEQscUVBQXFFO1FBQ3JFLE1BQU0sV0FBVyxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBQzlDLE1BQU0sU0FBUyxHQUFHLEtBQUssS0FBSyxJQUFJLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsS0FBSyxXQUFXLEVBQUUsQ0FBQztRQUUvRCxRQUFRLFFBQVEsRUFBRSxDQUFDO1lBQ2pCLFdBQVc7WUFDWCxLQUFLLFNBQVM7Z0JBQ1osT0FBTyxjQUFjLFNBQVMsU0FBUyxTQUFT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
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"type-converter.d.ts","sourceRoot":"","sources":["../../src/utils/type-converter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAkB,MAAM,iCAAiC,CAAC;AAEvF;;;GAGG;AACH,MAAM,MAAM,cAAc,GACtB,QAAQ,GACR,QAAQ,GACR,SAAS,GACT,MAAM,GACN,QAAQ,GACR,OAAO,GACP,MAAM,GACN,QAAQ,GACR,OAAO,CAAC;AAEZ,MAAM,CAAC,OAAO,OAAO,aAAa;WAClB,YAAY,CAAC,QAAQ,EAAE,cAAc,GAAG,UAAU;IAIhE;;;OAGG;IACH,OAAO,CAAC,MAAM,CAAC,yBAAyB;IA8BxC;;OAEG;WACW,kBAAkB,CAAC,KAAK,EAAE,OAAO,GAAG,cAAc;IA4BhE;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,YAAY;
|
|
1
|
+
{"version":3,"file":"type-converter.d.ts","sourceRoot":"","sources":["../../src/utils/type-converter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAkB,MAAM,iCAAiC,CAAC;AAEvF;;;GAGG;AACH,MAAM,MAAM,cAAc,GACtB,QAAQ,GACR,QAAQ,GACR,SAAS,GACT,MAAM,GACN,QAAQ,GACR,OAAO,GACP,MAAM,GACN,QAAQ,GACR,OAAO,CAAC;AAEZ,MAAM,CAAC,OAAO,OAAO,aAAa;WAClB,YAAY,CAAC,QAAQ,EAAE,cAAc,GAAG,UAAU;IAIhE;;;OAGG;IACH,OAAO,CAAC,MAAM,CAAC,yBAAyB;IA8BxC;;OAEG;WACW,kBAAkB,CAAC,KAAK,EAAE,OAAO,GAAG,cAAc;IA4BhE;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,YAAY;IA2B3B;;OAEG;IAEH,OAAO,CAAC,MAAM,CAAC,UAAU;IAUzB;;OAEG;WACW,UAAU,CAAC,QAAQ,EAAE,cAAc,GAAG,OAAO;IAK3D;;OAEG;WACW,sBAAsB,CAAC,UAAU,EAAE,UAAU,GAAG,GAAG,CAAC,QAAQ,CAAC;IAiC3E;;OAEG;WACW,cAAc,IAAI,GAAG,CAAC,QAAQ,CAAC;IAI7C;;OAEG;WACW,mBAAmB,CAAC,KAAK,EAAE,cAAc,EAAE,GAAG,cAAc;CA6B3E"}
|
|
@@ -62,15 +62,26 @@ class TypeConverter {
|
|
|
62
62
|
return 'string'; // Default fallback
|
|
63
63
|
}
|
|
64
64
|
/**
|
|
65
|
-
* Check if a string is a valid
|
|
65
|
+
* Check if a string is a valid date
|
|
66
66
|
*/
|
|
67
67
|
static isDateString(value) {
|
|
68
|
-
// Match
|
|
69
|
-
const isoDateRegex = /^\d{4}
|
|
70
|
-
|
|
68
|
+
// Match common date formats:
|
|
69
|
+
const isoDateRegex = /^\d{4}[-/]\d{2}[-/]\d{2}([T ]\d{2}:\d{2}:\d{2}(\.\d+)?Z?)?$/;
|
|
70
|
+
const usDateRegex = /^\d{2}\/\d{2}\/\d{4}( \d{2}:\d{2}:\d{2})?$/;
|
|
71
|
+
const shortDateRegex = /^\d{2}-\d{2}$/; // MM-DD format
|
|
72
|
+
const matches = isoDateRegex.test(value) || usDateRegex.test(value) || shortDateRegex.test(value);
|
|
73
|
+
if (!matches) {
|
|
71
74
|
return false;
|
|
72
|
-
|
|
73
|
-
|
|
75
|
+
}
|
|
76
|
+
// For short format (MM-DD), add current year to validate
|
|
77
|
+
let testValue = value;
|
|
78
|
+
if (shortDateRegex.test(value)) {
|
|
79
|
+
const currentYear = new Date().getFullYear();
|
|
80
|
+
testValue = `${currentYear}-${value}`;
|
|
81
|
+
}
|
|
82
|
+
const date = new Date(testValue);
|
|
83
|
+
const isValid = !Number.isNaN(date.getTime());
|
|
84
|
+
return isValid;
|
|
74
85
|
}
|
|
75
86
|
/**
|
|
76
87
|
* Check if an object is a GeoJSON Point
|
|
@@ -146,6 +157,11 @@ class TypeConverter {
|
|
|
146
157
|
return 'boolean';
|
|
147
158
|
if (uniqueTypes.every(t => ['date', 'null'].includes(t)))
|
|
148
159
|
return 'date';
|
|
160
|
+
// Mixed date/string/null types -> treat as date (string values might be dates in other formats)
|
|
161
|
+
if (uniqueTypes.every(t => ['date', 'string', 'null'].includes(t)) &&
|
|
162
|
+
uniqueTypes.includes('date')) {
|
|
163
|
+
return 'date';
|
|
164
|
+
}
|
|
149
165
|
// Mixed numeric types -> number
|
|
150
166
|
if (uniqueTypes.every(t => ['number', 'null'].includes(t)))
|
|
151
167
|
return 'number';
|
|
@@ -154,4 +170,4 @@ class TypeConverter {
|
|
|
154
170
|
}
|
|
155
171
|
}
|
|
156
172
|
exports.default = TypeConverter;
|
|
157
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
173
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZS1jb252ZXJ0ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbHMvdHlwZS1jb252ZXJ0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFpQkEsTUFBcUIsYUFBYTtJQUN6QixNQUFNLENBQUMsWUFBWSxDQUFDLFFBQXdCO1FBQ2pELE9BQU8sYUFBYSxDQUFDLHlCQUF5QixDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQzNELENBQUM7SUFFRDs7O09BR0c7SUFDSyxNQUFNLENBQUMseUJBQXlCLENBQUMsUUFBd0I7UUFDL0QsUUFBUSxRQUFRLEVBQUUsQ0FBQztZQUNqQixLQUFLLFNBQVM7Z0JBQ1osT0FBTyxTQUFTLENBQUM7WUFFbkIsS0FBSyxNQUFNO2dCQUNULE9BQU8sTUFBTSxDQUFDO1lBRWhCLEtBQUssUUFBUTtnQkFDWCxPQUFPLFFBQVEsQ0FBQztZQUVsQixLQUFLLFFBQVE7Z0JBQ1gsT0FBTyxRQUFRLENBQUM7WUFFbEIsS0FBSyxRQUFRO2dCQUNYLE9BQU8sUUFBUSxDQUFDLENBQUMseUJBQXlCO1lBRTVDLEtBQUssT0FBTztnQkFDVixPQUFPLE9BQU8sQ0FBQyxDQUFDLGdCQUFnQjtZQUVsQyxLQUFLLFFBQVEsQ0FBQztZQUNkLEtBQUssT0FBTyxDQUFDO1lBQ2IsS0FBSyxNQUFNO2dCQUNULE9BQU8sTUFBTSxDQUFDO1lBRWhCO2dCQUNFLE1BQU0sSUFBSSxLQUFLLENBQUMsMkJBQTJCLFFBQVEsR0FBRyxDQUFDLENBQUM7UUFDNUQsQ0FBQztJQUNILENBQUM7SUFFRDs7T0FFRztJQUNJLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxLQUFjO1FBQzdDLElBQUksS0FBSyxLQUFLLElBQUk7WUFBRSxPQUFPLE1BQU0sQ0FBQztRQUNsQyxJQUFJLEtBQUssS0FBSyxTQUFTO1lBQUUsT0FBTyxNQUFNLENBQUM7UUFFdkMsSUFBSSxPQUFPLEtBQUssS0FBSyxTQUFTO1lBQUUsT0FBTyxTQUFTLENBQUM7UUFD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
|