rawsql-ts 0.11.1-beta → 0.11.3-beta
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 +735 -682
- package/dist/esm/index.js +8 -2
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/index.min.js +46 -12
- package/dist/esm/index.min.js.map +4 -4
- package/dist/esm/src/index.js +8 -2
- package/dist/esm/src/index.js.map +1 -1
- package/dist/esm/src/models/BinarySelectQuery.js +9 -0
- package/dist/esm/src/models/BinarySelectQuery.js.map +1 -1
- package/dist/esm/src/models/CTEError.js +31 -0
- package/dist/esm/src/models/CTEError.js.map +1 -0
- package/dist/esm/src/models/SelectQuery.js +1 -0
- package/dist/esm/src/models/SelectQuery.js.map +1 -1
- package/dist/esm/src/models/SimpleSelectQuery.js +229 -0
- package/dist/esm/src/models/SimpleSelectQuery.js.map +1 -1
- package/dist/esm/src/models/ValuesQuery.js +1 -1
- package/dist/esm/src/models/ValuesQuery.js.map +1 -1
- package/dist/esm/src/parsers/ValueParser.js +86 -4
- package/dist/esm/src/parsers/ValueParser.js.map +1 -1
- package/dist/esm/src/transformers/DynamicQueryBuilder.js.map +1 -1
- package/dist/esm/src/transformers/EnhancedJsonMapping.js +217 -0
- package/dist/esm/src/transformers/EnhancedJsonMapping.js.map +1 -0
- package/dist/esm/src/transformers/JsonMappingConverter.js +388 -0
- package/dist/esm/src/transformers/JsonMappingConverter.js.map +1 -0
- package/dist/esm/src/transformers/JsonMappingUnifier.js +36 -46
- package/dist/esm/src/transformers/JsonMappingUnifier.js.map +1 -1
- package/dist/esm/src/transformers/ModelDrivenJsonMapping.js +14 -2
- package/dist/esm/src/transformers/ModelDrivenJsonMapping.js.map +1 -1
- package/dist/esm/src/transformers/PostgresArrayEntityCteBuilder.js +132 -97
- package/dist/esm/src/transformers/PostgresArrayEntityCteBuilder.js.map +1 -1
- package/dist/esm/src/transformers/PostgresJsonQueryBuilder.js +21 -11
- package/dist/esm/src/transformers/PostgresJsonQueryBuilder.js.map +1 -1
- package/dist/esm/src/transformers/PostgresObjectEntityCteBuilder.js +71 -14
- package/dist/esm/src/transformers/PostgresObjectEntityCteBuilder.js.map +1 -1
- package/dist/esm/src/transformers/QueryBuilder.js +2 -0
- package/dist/esm/src/transformers/QueryBuilder.js.map +1 -1
- package/dist/esm/src/transformers/SqlParamInjector.js +189 -108
- package/dist/esm/src/transformers/SqlParamInjector.js.map +1 -1
- package/dist/esm/src/transformers/UpstreamSelectQueryFinder.js +43 -2
- package/dist/esm/src/transformers/UpstreamSelectQueryFinder.js.map +1 -1
- package/dist/esm/tsconfig.browser.tsbuildinfo +1 -1
- package/dist/esm/types/src/index.d.ts +8 -2
- package/dist/esm/types/src/models/BinarySelectQuery.d.ts +7 -0
- package/dist/esm/types/src/models/CTEError.d.ts +21 -0
- package/dist/esm/types/src/models/SelectQuery.d.ts +12 -0
- package/dist/esm/types/src/models/SimpleSelectQuery.d.ts +166 -2
- package/dist/esm/types/src/models/ValuesQuery.d.ts +1 -1
- package/dist/esm/types/src/parsers/ValueParser.d.ts +8 -0
- package/dist/esm/types/src/transformers/DynamicQueryBuilder.d.ts +6 -0
- package/dist/esm/types/src/transformers/EnhancedJsonMapping.d.ts +194 -0
- package/dist/esm/types/src/transformers/JsonMappingConverter.d.ts +200 -0
- package/dist/esm/types/src/transformers/JsonMappingUnifier.d.ts +5 -0
- package/dist/esm/types/src/transformers/PostgresArrayEntityCteBuilder.d.ts +39 -77
- package/dist/esm/types/src/transformers/PostgresJsonQueryBuilder.d.ts +3 -2
- package/dist/esm/types/src/transformers/PostgresObjectEntityCteBuilder.d.ts +31 -6
- package/dist/esm/types/src/transformers/SqlParamInjector.d.ts +48 -0
- package/dist/esm/types/src/transformers/UpstreamSelectQueryFinder.d.ts +8 -0
- package/dist/index.min.js +46 -12
- package/dist/index.min.js.map +4 -4
- package/dist/src/index.d.ts +8 -2
- package/dist/src/index.js +8 -3
- package/dist/src/index.js.map +1 -1
- package/dist/src/models/BinarySelectQuery.d.ts +7 -0
- package/dist/src/models/BinarySelectQuery.js +9 -0
- package/dist/src/models/BinarySelectQuery.js.map +1 -1
- package/dist/src/models/CTEError.d.ts +21 -0
- package/dist/src/models/CTEError.js +37 -0
- package/dist/src/models/CTEError.js.map +1 -0
- package/dist/src/models/SelectQuery.d.ts +12 -0
- package/dist/src/models/SelectQuery.js +5 -1
- package/dist/src/models/SelectQuery.js.map +1 -1
- package/dist/src/models/SimpleSelectQuery.d.ts +166 -2
- package/dist/src/models/SimpleSelectQuery.js +229 -0
- package/dist/src/models/SimpleSelectQuery.js.map +1 -1
- package/dist/src/models/ValuesQuery.d.ts +1 -1
- package/dist/src/models/ValuesQuery.js +1 -1
- package/dist/src/models/ValuesQuery.js.map +1 -1
- package/dist/src/parsers/ValueParser.d.ts +8 -0
- package/dist/src/parsers/ValueParser.js +86 -4
- package/dist/src/parsers/ValueParser.js.map +1 -1
- package/dist/src/transformers/DynamicQueryBuilder.d.ts +6 -0
- package/dist/src/transformers/DynamicQueryBuilder.js.map +1 -1
- package/dist/src/transformers/EnhancedJsonMapping.d.ts +194 -0
- package/dist/src/transformers/EnhancedJsonMapping.js +223 -0
- package/dist/src/transformers/EnhancedJsonMapping.js.map +1 -0
- package/dist/src/transformers/JsonMappingConverter.d.ts +200 -0
- package/dist/src/transformers/JsonMappingConverter.js +392 -0
- package/dist/src/transformers/JsonMappingConverter.js.map +1 -0
- package/dist/src/transformers/JsonMappingUnifier.d.ts +5 -0
- package/dist/src/transformers/JsonMappingUnifier.js +36 -46
- package/dist/src/transformers/JsonMappingUnifier.js.map +1 -1
- package/dist/src/transformers/ModelDrivenJsonMapping.js +14 -2
- package/dist/src/transformers/ModelDrivenJsonMapping.js.map +1 -1
- package/dist/src/transformers/PostgresArrayEntityCteBuilder.d.ts +39 -77
- package/dist/src/transformers/PostgresArrayEntityCteBuilder.js +132 -97
- package/dist/src/transformers/PostgresArrayEntityCteBuilder.js.map +1 -1
- package/dist/src/transformers/PostgresJsonQueryBuilder.d.ts +3 -2
- package/dist/src/transformers/PostgresJsonQueryBuilder.js +21 -11
- package/dist/src/transformers/PostgresJsonQueryBuilder.js.map +1 -1
- package/dist/src/transformers/PostgresObjectEntityCteBuilder.d.ts +31 -6
- package/dist/src/transformers/PostgresObjectEntityCteBuilder.js +71 -14
- package/dist/src/transformers/PostgresObjectEntityCteBuilder.js.map +1 -1
- package/dist/src/transformers/QueryBuilder.js +2 -0
- package/dist/src/transformers/QueryBuilder.js.map +1 -1
- package/dist/src/transformers/SqlParamInjector.d.ts +48 -0
- package/dist/src/transformers/SqlParamInjector.js +189 -108
- package/dist/src/transformers/SqlParamInjector.js.map +1 -1
- package/dist/src/transformers/UpstreamSelectQueryFinder.d.ts +8 -0
- package/dist/src/transformers/UpstreamSelectQueryFinder.js +43 -2
- package/dist/src/transformers/UpstreamSelectQueryFinder.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +2 -2
|
@@ -14,6 +14,23 @@ export interface ProcessableEntity {
|
|
|
14
14
|
parentId?: string;
|
|
15
15
|
relationshipType?: "object" | "array";
|
|
16
16
|
}
|
|
17
|
+
/**
|
|
18
|
+
* JSON column mapping information
|
|
19
|
+
*/
|
|
20
|
+
export interface JsonColumnMapping {
|
|
21
|
+
entityId: string;
|
|
22
|
+
entityName: string;
|
|
23
|
+
generatedColumnName: string;
|
|
24
|
+
depth: number;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Result from CTE builder including column mappings
|
|
28
|
+
*/
|
|
29
|
+
export interface CteBuilderResult {
|
|
30
|
+
ctes: CommonTable[];
|
|
31
|
+
lastCteAlias: string;
|
|
32
|
+
columnMappings: JsonColumnMapping[];
|
|
33
|
+
}
|
|
17
34
|
/**
|
|
18
35
|
* PostgreSQL-specific builder for creating CTEs for object entities (object relationships).
|
|
19
36
|
* This class handles the creation of CTEs that build JSON/JSONB objects for object entities,
|
|
@@ -43,19 +60,23 @@ export interface ProcessableEntity {
|
|
|
43
60
|
* Processing order: depth 2 → depth 1 → depth 0
|
|
44
61
|
*/
|
|
45
62
|
export declare class PostgresObjectEntityCteBuilder {
|
|
46
|
-
private static readonly JSON_COLUMN_SUFFIX;
|
|
47
63
|
private static readonly CTE_OBJECT_PREFIX;
|
|
48
|
-
private static readonly WILDCARD_COLUMN;
|
|
64
|
+
private static readonly WILDCARD_COLUMN;
|
|
65
|
+
private jsonColumnCounter;
|
|
66
|
+
private entityToJsonColumnMap;
|
|
67
|
+
private columnMappings;
|
|
68
|
+
/**
|
|
49
69
|
* Build CTEs for all object entities in the correct dependency order
|
|
50
70
|
* @param initialCte The starting CTE containing all raw data
|
|
51
71
|
* @param allEntities Map of all entities in the mapping
|
|
52
72
|
* @param mapping The JSON mapping configuration
|
|
53
73
|
* @returns Array of CTEs and the alias of the last CTE created
|
|
54
74
|
*/
|
|
55
|
-
buildObjectEntityCtes(initialCte: CommonTable, allEntities: Map<string, ProcessableEntity>, mapping: JsonMapping):
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
75
|
+
buildObjectEntityCtes(initialCte: CommonTable, allEntities: Map<string, ProcessableEntity>, mapping: JsonMapping): CteBuilderResult;
|
|
76
|
+
/**
|
|
77
|
+
* Generate unique JSON column name with entity name and counter
|
|
78
|
+
*/
|
|
79
|
+
private generateUniqueJsonColumnName; /**
|
|
59
80
|
* Collect all object entities and calculate their depth from root.
|
|
60
81
|
*
|
|
61
82
|
* Depth calculation is crucial because:
|
|
@@ -87,6 +108,10 @@ export declare class PostgresObjectEntityCteBuilder {
|
|
|
87
108
|
* Build JSON column for a single entity with NULL handling
|
|
88
109
|
*/
|
|
89
110
|
private buildEntityJsonColumn;
|
|
111
|
+
/**
|
|
112
|
+
* Calculate approximate depth for an entity (for mapping purposes)
|
|
113
|
+
*/
|
|
114
|
+
private calculateApproximateDepth;
|
|
90
115
|
/**
|
|
91
116
|
* Prepare entity columns and NULL checks.
|
|
92
117
|
*
|
|
@@ -24,6 +24,54 @@ export declare class SqlParamInjector {
|
|
|
24
24
|
* @throws Error when all parameters are undefined and allowAllUndefined is not set to true
|
|
25
25
|
*/
|
|
26
26
|
inject(query: SimpleSelectQuery | string, state: Record<string, number | string | boolean | Date | null | undefined | Condition>): SelectQuery;
|
|
27
|
+
/**
|
|
28
|
+
* Type guard for OR conditions
|
|
29
|
+
*/
|
|
30
|
+
private isOrCondition;
|
|
31
|
+
/**
|
|
32
|
+
* Type guard for AND conditions
|
|
33
|
+
*/
|
|
34
|
+
private isAndCondition;
|
|
35
|
+
/**
|
|
36
|
+
* Type guard for explicit column mapping without OR
|
|
37
|
+
*/
|
|
38
|
+
private isExplicitColumnMapping;
|
|
39
|
+
/**
|
|
40
|
+
* Type guard for objects that need operator validation
|
|
41
|
+
*/
|
|
42
|
+
private isValidatableObject;
|
|
43
|
+
/**
|
|
44
|
+
* Type guard for column mapping presence
|
|
45
|
+
*/
|
|
46
|
+
private hasColumnMapping;
|
|
47
|
+
/**
|
|
48
|
+
* Type guard for simple values (non-object conditions)
|
|
49
|
+
*/
|
|
50
|
+
private isSimpleValue;
|
|
51
|
+
/**
|
|
52
|
+
* Processes a single state parameter
|
|
53
|
+
*/
|
|
54
|
+
private processStateParameter;
|
|
55
|
+
/**
|
|
56
|
+
* Processes regular column conditions (non-logical, non-explicit)
|
|
57
|
+
*/
|
|
58
|
+
private processRegularColumnCondition;
|
|
59
|
+
/**
|
|
60
|
+
* Finds target query for logical conditions (AND/OR)
|
|
61
|
+
*/
|
|
62
|
+
private findTargetQueryForLogicalCondition;
|
|
63
|
+
/**
|
|
64
|
+
* Collects all available columns from a query including CTE columns
|
|
65
|
+
*/
|
|
66
|
+
private getAllAvailableColumns;
|
|
67
|
+
/**
|
|
68
|
+
* Collects column names and references from CTE definitions
|
|
69
|
+
*/
|
|
70
|
+
private collectCTEColumns;
|
|
71
|
+
/**
|
|
72
|
+
* Recursively collects columns from any SelectQuery type
|
|
73
|
+
*/
|
|
74
|
+
private collectColumnsFromSelectQuery;
|
|
27
75
|
}
|
|
28
76
|
type BaseCondition = {
|
|
29
77
|
'='?: number | string | boolean | Date;
|
|
@@ -31,4 +31,12 @@ export declare class UpstreamSelectQueryFinder {
|
|
|
31
31
|
*/
|
|
32
32
|
private processFromClauseBranches;
|
|
33
33
|
private findUpstream;
|
|
34
|
+
/**
|
|
35
|
+
* Collects columns defined in CTEs
|
|
36
|
+
*/
|
|
37
|
+
private collectCTEColumns;
|
|
38
|
+
/**
|
|
39
|
+
* Recursively collects columns from SelectQuery
|
|
40
|
+
*/
|
|
41
|
+
private collectColumnsFromSelectQuery;
|
|
34
42
|
}
|