rawsql-ts 0.10.0-beta → 0.10.2-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.
Files changed (86) hide show
  1. package/README.md +41 -5
  2. package/dist/esm/index.js +2 -1
  3. package/dist/esm/index.js.map +1 -1
  4. package/dist/esm/index.min.js +16 -0
  5. package/dist/esm/index.min.js.map +7 -0
  6. package/dist/esm/models/ValueComponent.js +7 -0
  7. package/dist/esm/models/ValueComponent.js.map +1 -1
  8. package/dist/esm/parsers/CommandExpressionParser.js +1 -16
  9. package/dist/esm/parsers/CommandExpressionParser.js.map +1 -1
  10. package/dist/esm/parsers/FunctionExpressionParser.js +33 -2
  11. package/dist/esm/parsers/FunctionExpressionParser.js.map +1 -1
  12. package/dist/esm/parsers/SqlPrintTokenParser.js +13 -1
  13. package/dist/esm/parsers/SqlPrintTokenParser.js.map +1 -1
  14. package/dist/esm/tokenReaders/CommandTokenReader.js +0 -1
  15. package/dist/esm/tokenReaders/CommandTokenReader.js.map +1 -1
  16. package/dist/esm/tokenReaders/FunctionTokenReader.js +2 -0
  17. package/dist/esm/tokenReaders/FunctionTokenReader.js.map +1 -1
  18. package/dist/esm/transformers/CTECollector.js +13 -2
  19. package/dist/esm/transformers/CTECollector.js.map +1 -1
  20. package/dist/esm/transformers/CTEDisabler.js +6 -1
  21. package/dist/esm/transformers/CTEDisabler.js.map +1 -1
  22. package/dist/esm/transformers/{PostgreJsonQueryBuilder.js → PostgresJsonQueryBuilder.js} +14 -3
  23. package/dist/esm/transformers/PostgresJsonQueryBuilder.js.map +1 -0
  24. package/dist/esm/transformers/SelectableColumnCollector.js +5 -1
  25. package/dist/esm/transformers/SelectableColumnCollector.js.map +1 -1
  26. package/dist/esm/transformers/TableSourceCollector.js +30 -2
  27. package/dist/esm/transformers/TableSourceCollector.js.map +1 -1
  28. package/dist/esm/types/index.d.ts +2 -1
  29. package/dist/esm/types/models/ValueComponent.d.ts +6 -1
  30. package/dist/esm/types/parsers/CommandExpressionParser.d.ts +0 -1
  31. package/dist/esm/types/parsers/FunctionExpressionParser.d.ts +7 -0
  32. package/dist/esm/types/parsers/SqlPrintTokenParser.d.ts +1 -0
  33. package/dist/esm/types/transformers/CTECollector.d.ts +2 -0
  34. package/dist/esm/types/transformers/CTEDisabler.d.ts +2 -1
  35. package/dist/esm/types/transformers/PostgresArrayEntityCteBuilder.d.ts +1 -1
  36. package/dist/esm/types/transformers/{PostgreJsonQueryBuilder.d.ts → PostgresJsonQueryBuilder.d.ts} +9 -1
  37. package/dist/esm/types/transformers/PostgresObjectEntityCteBuilder.d.ts +1 -1
  38. package/dist/esm/types/transformers/SelectableColumnCollector.d.ts +1 -0
  39. package/dist/esm/types/transformers/TableSourceCollector.d.ts +8 -0
  40. package/dist/esm/types/utils/SchemaManager.d.ts +132 -0
  41. package/dist/esm/utils/SchemaManager.js +194 -0
  42. package/dist/esm/utils/SchemaManager.js.map +1 -0
  43. package/dist/index.d.ts +2 -1
  44. package/dist/index.js +2 -1
  45. package/dist/index.js.map +1 -1
  46. package/dist/index.min.js +16 -0
  47. package/dist/index.min.js.map +7 -0
  48. package/dist/models/ValueComponent.d.ts +6 -1
  49. package/dist/models/ValueComponent.js +9 -1
  50. package/dist/models/ValueComponent.js.map +1 -1
  51. package/dist/parsers/CommandExpressionParser.d.ts +0 -1
  52. package/dist/parsers/CommandExpressionParser.js +0 -15
  53. package/dist/parsers/CommandExpressionParser.js.map +1 -1
  54. package/dist/parsers/FunctionExpressionParser.d.ts +7 -0
  55. package/dist/parsers/FunctionExpressionParser.js +32 -1
  56. package/dist/parsers/FunctionExpressionParser.js.map +1 -1
  57. package/dist/parsers/SqlPrintTokenParser.d.ts +1 -0
  58. package/dist/parsers/SqlPrintTokenParser.js +12 -0
  59. package/dist/parsers/SqlPrintTokenParser.js.map +1 -1
  60. package/dist/tokenReaders/CommandTokenReader.js +0 -1
  61. package/dist/tokenReaders/CommandTokenReader.js.map +1 -1
  62. package/dist/tokenReaders/FunctionTokenReader.js +2 -0
  63. package/dist/tokenReaders/FunctionTokenReader.js.map +1 -1
  64. package/dist/transformers/CTECollector.d.ts +2 -0
  65. package/dist/transformers/CTECollector.js +11 -0
  66. package/dist/transformers/CTECollector.js.map +1 -1
  67. package/dist/transformers/CTEDisabler.d.ts +2 -1
  68. package/dist/transformers/CTEDisabler.js +5 -0
  69. package/dist/transformers/CTEDisabler.js.map +1 -1
  70. package/dist/transformers/PostgresArrayEntityCteBuilder.d.ts +1 -1
  71. package/dist/transformers/{PostgreJsonQueryBuilder.d.ts → PostgresJsonQueryBuilder.d.ts} +9 -1
  72. package/dist/transformers/{PostgreJsonQueryBuilder.js → PostgresJsonQueryBuilder.js} +16 -5
  73. package/dist/transformers/PostgresJsonQueryBuilder.js.map +1 -0
  74. package/dist/transformers/PostgresObjectEntityCteBuilder.d.ts +1 -1
  75. package/dist/transformers/SelectableColumnCollector.d.ts +1 -0
  76. package/dist/transformers/SelectableColumnCollector.js +4 -0
  77. package/dist/transformers/SelectableColumnCollector.js.map +1 -1
  78. package/dist/transformers/TableSourceCollector.d.ts +8 -0
  79. package/dist/transformers/TableSourceCollector.js +28 -0
  80. package/dist/transformers/TableSourceCollector.js.map +1 -1
  81. package/dist/utils/SchemaManager.d.ts +132 -0
  82. package/dist/utils/SchemaManager.js +201 -0
  83. package/dist/utils/SchemaManager.js.map +1 -0
  84. package/package.json +3 -1
  85. package/dist/esm/transformers/PostgreJsonQueryBuilder.js.map +0 -1
  86. package/dist/transformers/PostgreJsonQueryBuilder.js.map +0 -1
@@ -1,7 +1,7 @@
1
1
  import { ForClause, FromClause, GroupByClause, HavingClause, JoinClause, JoinOnClause, JoinUsingClause, LimitClause, OrderByClause, OrderByItem, ParenSource, SelectClause, SelectItem, SourceExpression, SubQuerySource, TableSource, WhereClause, WindowFrameClause } from "../models/Clause";
2
2
  import { BinarySelectQuery, SimpleSelectQuery, SelectQuery, ValuesQuery } from "../models/SelectQuery";
3
3
  import { SqlComponent, SqlComponentVisitor } from "../models/SqlComponent";
4
- import { ArrayExpression, BetweenExpression, BinaryExpression, CaseExpression, CaseKeyValuePair, CastExpression, ColumnReference, FunctionCall, InlineQuery, ParenExpression, ParameterExpression, SwitchCaseArgument, TupleExpression, UnaryExpression, ValueComponent, WindowFrameExpression, IdentifierString, RawString, WindowFrameSpec, TypeValue } from "../models/ValueComponent";
4
+ import { ArrayExpression, ArrayQueryExpression, BetweenExpression, BinaryExpression, CaseExpression, CaseKeyValuePair, CastExpression, ColumnReference, FunctionCall, InlineQuery, ParenExpression, ParameterExpression, SwitchCaseArgument, TupleExpression, UnaryExpression, ValueComponent, WindowFrameExpression, IdentifierString, RawString, WindowFrameSpec, TypeValue } from "../models/ValueComponent";
5
5
  /**
6
6
  * A visitor that disables all WITH clauses in a SQL query structure.
7
7
  * This processes and removes WITH clauses from:
@@ -59,6 +59,7 @@ export declare class CTEDisabler implements SqlComponentVisitor<SqlComponent> {
59
59
  visitBetweenExpression(expr: BetweenExpression): SqlComponent;
60
60
  visitFunctionCall(func: FunctionCall): SqlComponent;
61
61
  visitArrayExpression(expr: ArrayExpression): SqlComponent;
62
+ visitArrayQueryExpression(expr: ArrayQueryExpression): SqlComponent;
62
63
  visitTupleExpression(expr: TupleExpression): SqlComponent;
63
64
  visitCastExpression(expr: CastExpression): SqlComponent;
64
65
  visitTypeValue(typeValue: TypeValue): SqlComponent;
@@ -1,5 +1,5 @@
1
1
  import { CommonTable } from '../models/Clause';
2
- import { JsonMapping } from './PostgreJsonQueryBuilder';
2
+ import { JsonMapping } from './PostgresJsonQueryBuilder';
3
3
  import { ProcessableEntity } from './PostgresObjectEntityCteBuilder';
4
4
  /**
5
5
  * PostgreSQL-specific builder for creating CTEs for array entities (array relationships).
@@ -30,7 +30,7 @@ export interface JsonMapping {
30
30
  * PostgreSQL JSON query builder that transforms SimpleSelectQuery into queries
31
31
  * that return JSON arrays or single JSON objects using PostgreSQL JSON functions.
32
32
  */
33
- export declare class PostgreJsonQueryBuilder {
33
+ export declare class PostgresJsonQueryBuilder {
34
34
  private selectValueCollector;
35
35
  private objectEntityCteBuilder;
36
36
  private arrayEntityCteBuilder;
@@ -47,6 +47,14 @@ export declare class PostgreJsonQueryBuilder {
47
47
  * @param mapping JSON mapping configuration
48
48
  * @returns Transformed query with JSON aggregation
49
49
  */
50
+ buildJsonQuery(originalQuery: SimpleSelectQuery, mapping: JsonMapping): SimpleSelectQuery;
51
+ /**
52
+ * Build JSON query from original query and mapping configuration.
53
+ * @deprecated Use buildJsonQuery instead. This method will be removed in a future version.
54
+ * @param originalQuery Original query to transform
55
+ * @param mapping JSON mapping configuration
56
+ * @returns Transformed query with JSON aggregation
57
+ */
50
58
  buildJson(originalQuery: SimpleSelectQuery, mapping: JsonMapping): SimpleSelectQuery;
51
59
  /**
52
60
  * Builds the JSON structure using a unified CTE-based strategy.
@@ -1,5 +1,5 @@
1
1
  import { CommonTable } from '../models/Clause';
2
- import { JsonMapping } from './PostgreJsonQueryBuilder';
2
+ import { JsonMapping } from './PostgresJsonQueryBuilder';
3
3
  /**
4
4
  * Entity with processing metadata
5
5
  */
@@ -104,6 +104,7 @@ export declare class SelectableColumnCollector implements SqlComponentVisitor<vo
104
104
  private visitCastExpression;
105
105
  private visitBetweenExpression;
106
106
  private visitArrayExpression;
107
+ private visitArrayQueryExpression;
107
108
  private visitValueList;
108
109
  private visitPartitionByClause;
109
110
  }
@@ -58,6 +58,12 @@ export declare class TableSourceCollector implements SqlComponentVisitor<void> {
58
58
  private visitFromClause;
59
59
  private visitSourceExpression;
60
60
  private visitTableSource;
61
+ private visitFunctionSource;
62
+ /**
63
+ * Helper method to visit value components, handling special cases like TupleExpression, ParenExpression, InlineQuery, and ArrayQueryExpression
64
+ * even in selectableOnly mode when they appear in function arguments
65
+ */
66
+ private visitValueComponent;
61
67
  /**
62
68
  * Checks if a table name is a CTE name
63
69
  */
@@ -89,6 +95,8 @@ export declare class TableSourceCollector implements SqlComponentVisitor<void> {
89
95
  private visitBetweenExpression;
90
96
  private visitFunctionCall;
91
97
  private visitArrayExpression;
98
+ private visitArrayQueryExpression;
92
99
  private visitTupleExpression;
93
100
  private visitCastExpression;
101
+ private visitValueList;
94
102
  }
@@ -0,0 +1,132 @@
1
+ /**
2
+ * Schema Manager for rawsql-ts
3
+ * Provides unified schema definition and automatic conversion to various formats
4
+ * Eliminates code duplication and provides type-safe schema management
5
+ */
6
+ import type { JsonMapping } from '../transformers/PostgresJsonQueryBuilder';
7
+ /**
8
+ * Database column metadata for schema mapping
9
+ */
10
+ export interface ColumnDefinition {
11
+ /** Column name in database */
12
+ name: string;
13
+ /** Primary key indicator - used for UPDATE/DELETE query WHERE conditions */
14
+ isPrimaryKey?: boolean;
15
+ /** Foreign key reference */
16
+ foreignKey?: {
17
+ table: string;
18
+ column: string;
19
+ };
20
+ /** Alias for JSON output (useful for avoiding conflicts) */
21
+ jsonAlias?: string;
22
+ }
23
+ /**
24
+ * Table relationship definition
25
+ */
26
+ export interface RelationshipDefinition {
27
+ /** Type of relationship */
28
+ type: 'object' | 'array';
29
+ /** Target table name */
30
+ table: string;
31
+ /** Property name in JSON output */
32
+ propertyName: string;
33
+ /** Optional: Override target table's primary key */
34
+ targetKey?: string;
35
+ }
36
+ /**
37
+ * Complete table schema definition that users write
38
+ */
39
+ export interface TableDefinition {
40
+ /** Table name in database */
41
+ name: string;
42
+ /** Human-readable entity name */
43
+ displayName?: string;
44
+ /** Column definitions */
45
+ columns: Record<string, ColumnDefinition>;
46
+ /** Relationships with other tables */
47
+ relationships?: RelationshipDefinition[];
48
+ }
49
+ /**
50
+ * Schema registry containing all table definitions
51
+ */
52
+ export interface SchemaRegistry {
53
+ [tableName: string]: TableDefinition;
54
+ }
55
+ /**
56
+ * Central schema management utility for rawsql-ts
57
+ * Converts user-defined schemas to various internal formats
58
+ */
59
+ export declare class SchemaManager {
60
+ private schemas;
61
+ constructor(schemas: SchemaRegistry);
62
+ /**
63
+ * Validate schema definitions for consistency
64
+ * Ensures each table has a primary key (required for UPDATE/DELETE operations)
65
+ * and validates relationship references
66
+ */
67
+ private validateSchemas;
68
+ /**
69
+ * Get table column names for SqlParamInjector TableColumnResolver
70
+ * @param tableName Name of the table
71
+ * @returns Array of column names
72
+ */
73
+ getTableColumns(tableName: string): string[];
74
+ /**
75
+ * Create TableColumnResolver function for SqlParamInjector
76
+ * @returns Function compatible with SqlParamInjector
77
+ */
78
+ createTableColumnResolver(): (tableName: string) => string[];
79
+ /**
80
+ * Generate JSON mapping configuration for PostgresJsonQueryBuilder
81
+ * @param rootTableName Root table for the JSON structure
82
+ * @returns JSON mapping configuration
83
+ */
84
+ createJsonMapping(rootTableName: string): JsonMapping;
85
+ /**
86
+ * Get all table names in the schema
87
+ * @returns Array of table names
88
+ */
89
+ getTableNames(): string[];
90
+ /**
91
+ * Get table definition by name
92
+ * @param tableName Name of the table
93
+ * @returns Table definition or undefined
94
+ */
95
+ getTable(tableName: string): TableDefinition | undefined;
96
+ /**
97
+ * Get primary key column name for a table
98
+ * Used by QueryBuilder.buildUpdateQuery for WHERE clause conditions
99
+ * @param tableName Name of the table
100
+ * @returns Primary key column name or undefined
101
+ */
102
+ getPrimaryKey(tableName: string): string | undefined;
103
+ /**
104
+ * Get foreign key relationships for a table
105
+ * @param tableName Name of the table
106
+ * @returns Array of foreign key relationships
107
+ */
108
+ getForeignKeys(tableName: string): Array<{
109
+ column: string;
110
+ referencedTable: string;
111
+ referencedColumn: string;
112
+ }>;
113
+ }
114
+ /**
115
+ * Create a SchemaManager instance from schema definitions
116
+ * @param schemas Schema registry object
117
+ * @returns SchemaManager instance
118
+ */
119
+ export declare function createSchemaManager(schemas: SchemaRegistry): SchemaManager;
120
+ /**
121
+ * Create TableColumnResolver function from schema definitions
122
+ * @param schemas Schema registry object
123
+ * @returns TableColumnResolver function for SqlParamInjector
124
+ */
125
+ export declare function createTableColumnResolver(schemas: SchemaRegistry): (tableName: string) => string[];
126
+ /**
127
+ * Create JSON mapping from schema definitions
128
+ * @param schemas Schema registry object
129
+ * @param rootTableName Root table name
130
+ * @returns JSON mapping for PostgresJsonQueryBuilder
131
+ */
132
+ export declare function createJsonMappingFromSchema(schemas: SchemaRegistry, rootTableName: string): JsonMapping;
@@ -0,0 +1,194 @@
1
+ /**
2
+ * Schema Manager for rawsql-ts
3
+ * Provides unified schema definition and automatic conversion to various formats
4
+ * Eliminates code duplication and provides type-safe schema management
5
+ */
6
+ // === Schema Manager Class ===
7
+ /**
8
+ * Central schema management utility for rawsql-ts
9
+ * Converts user-defined schemas to various internal formats
10
+ */
11
+ export class SchemaManager {
12
+ constructor(schemas) {
13
+ this.schemas = schemas;
14
+ this.validateSchemas();
15
+ }
16
+ /**
17
+ * Validate schema definitions for consistency
18
+ * Ensures each table has a primary key (required for UPDATE/DELETE operations)
19
+ * and validates relationship references
20
+ */
21
+ validateSchemas() {
22
+ const tableNames = Object.keys(this.schemas);
23
+ const errors = [];
24
+ // Validate each table
25
+ Object.entries(this.schemas).forEach(([tableName, table]) => {
26
+ var _a;
27
+ // Check primary key exists (required for UPDATE/DELETE WHERE conditions)
28
+ const primaryKeys = Object.entries(table.columns)
29
+ .filter(([_, col]) => col.isPrimaryKey)
30
+ .map(([name, _]) => name);
31
+ if (primaryKeys.length === 0) {
32
+ errors.push(`Table '${tableName}' has no primary key defined`);
33
+ }
34
+ // Validate foreign key references
35
+ (_a = table.relationships) === null || _a === void 0 ? void 0 : _a.forEach(rel => {
36
+ if (!tableNames.includes(rel.table)) {
37
+ errors.push(`Table '${tableName}' references unknown table '${rel.table}' in relationship`);
38
+ }
39
+ });
40
+ });
41
+ if (errors.length > 0) {
42
+ throw new Error(`Schema validation failed:\\n${errors.join('\\n')}`);
43
+ }
44
+ }
45
+ /**
46
+ * Get table column names for SqlParamInjector TableColumnResolver
47
+ * @param tableName Name of the table
48
+ * @returns Array of column names
49
+ */
50
+ getTableColumns(tableName) {
51
+ const table = this.schemas[tableName];
52
+ if (!table) {
53
+ return [];
54
+ }
55
+ return Object.keys(table.columns);
56
+ }
57
+ /**
58
+ * Create TableColumnResolver function for SqlParamInjector
59
+ * @returns Function compatible with SqlParamInjector
60
+ */
61
+ createTableColumnResolver() {
62
+ return (tableName) => this.getTableColumns(tableName);
63
+ }
64
+ /**
65
+ * Generate JSON mapping configuration for PostgresJsonQueryBuilder
66
+ * @param rootTableName Root table for the JSON structure
67
+ * @returns JSON mapping configuration
68
+ */
69
+ createJsonMapping(rootTableName) {
70
+ var _a;
71
+ const rootTable = this.schemas[rootTableName];
72
+ if (!rootTable) {
73
+ throw new Error(`Table '${rootTableName}' not found in schema registry`);
74
+ }
75
+ // Build root entity columns mapping
76
+ const rootColumns = {};
77
+ Object.entries(rootTable.columns).forEach(([columnName, column]) => {
78
+ rootColumns[columnName] = column.jsonAlias || column.name;
79
+ });
80
+ // Build nested entities from relationships
81
+ const nestedEntities = [];
82
+ (_a = rootTable.relationships) === null || _a === void 0 ? void 0 : _a.forEach(rel => {
83
+ const relatedTable = this.schemas[rel.table];
84
+ if (!relatedTable) {
85
+ throw new Error(`Related table '${rel.table}' not found in schema registry`);
86
+ }
87
+ // Build columns mapping for related table
88
+ const relatedColumns = {};
89
+ Object.entries(relatedTable.columns).forEach(([columnName, column]) => {
90
+ relatedColumns[columnName] = column.jsonAlias || column.name;
91
+ });
92
+ // Determine relationship type for JSON builder
93
+ const relationshipType = rel.type;
94
+ nestedEntities.push({
95
+ id: rel.propertyName,
96
+ name: relatedTable.displayName || rel.table,
97
+ parentId: rootTableName,
98
+ propertyName: rel.propertyName,
99
+ relationshipType: relationshipType,
100
+ columns: relatedColumns
101
+ });
102
+ });
103
+ return {
104
+ rootName: rootTableName,
105
+ rootEntity: {
106
+ id: rootTableName,
107
+ name: rootTable.displayName || rootTableName,
108
+ columns: rootColumns
109
+ },
110
+ nestedEntities,
111
+ useJsonb: true,
112
+ resultFormat: "single"
113
+ };
114
+ }
115
+ /**
116
+ * Get all table names in the schema
117
+ * @returns Array of table names
118
+ */
119
+ getTableNames() {
120
+ return Object.keys(this.schemas);
121
+ }
122
+ /**
123
+ * Get table definition by name
124
+ * @param tableName Name of the table
125
+ * @returns Table definition or undefined
126
+ */
127
+ getTable(tableName) {
128
+ return this.schemas[tableName];
129
+ }
130
+ /**
131
+ * Get primary key column name for a table
132
+ * Used by QueryBuilder.buildUpdateQuery for WHERE clause conditions
133
+ * @param tableName Name of the table
134
+ * @returns Primary key column name or undefined
135
+ */
136
+ getPrimaryKey(tableName) {
137
+ const table = this.schemas[tableName];
138
+ if (!table)
139
+ return undefined;
140
+ const primaryKeyEntry = Object.entries(table.columns)
141
+ .find(([_, col]) => col.isPrimaryKey);
142
+ return primaryKeyEntry ? primaryKeyEntry[0] : undefined;
143
+ }
144
+ /**
145
+ * Get foreign key relationships for a table
146
+ * @param tableName Name of the table
147
+ * @returns Array of foreign key relationships
148
+ */
149
+ getForeignKeys(tableName) {
150
+ const table = this.schemas[tableName];
151
+ if (!table)
152
+ return [];
153
+ const foreignKeys = [];
154
+ Object.entries(table.columns).forEach(([columnName, column]) => {
155
+ if (column.foreignKey) {
156
+ foreignKeys.push({
157
+ column: columnName,
158
+ referencedTable: column.foreignKey.table,
159
+ referencedColumn: column.foreignKey.column
160
+ });
161
+ }
162
+ });
163
+ return foreignKeys;
164
+ }
165
+ }
166
+ // === Convenience Functions ===
167
+ /**
168
+ * Create a SchemaManager instance from schema definitions
169
+ * @param schemas Schema registry object
170
+ * @returns SchemaManager instance
171
+ */
172
+ export function createSchemaManager(schemas) {
173
+ return new SchemaManager(schemas);
174
+ }
175
+ /**
176
+ * Create TableColumnResolver function from schema definitions
177
+ * @param schemas Schema registry object
178
+ * @returns TableColumnResolver function for SqlParamInjector
179
+ */
180
+ export function createTableColumnResolver(schemas) {
181
+ const manager = new SchemaManager(schemas);
182
+ return manager.createTableColumnResolver();
183
+ }
184
+ /**
185
+ * Create JSON mapping from schema definitions
186
+ * @param schemas Schema registry object
187
+ * @param rootTableName Root table name
188
+ * @returns JSON mapping for PostgresJsonQueryBuilder
189
+ */
190
+ export function createJsonMappingFromSchema(schemas, rootTableName) {
191
+ const manager = new SchemaManager(schemas);
192
+ return manager.createJsonMapping(rootTableName);
193
+ }
194
+ //# sourceMappingURL=SchemaManager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SchemaManager.js","sourceRoot":"","sources":["../../../src/utils/SchemaManager.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -8,7 +8,7 @@ export * from './transformers/CTECollector';
8
8
  export * from './transformers/CTENormalizer';
9
9
  export * from './transformers/Formatter';
10
10
  export * from './transformers/SqlFormatter';
11
- export * from './transformers/PostgreJsonQueryBuilder';
11
+ export * from './transformers/PostgresJsonQueryBuilder';
12
12
  export * from './transformers/QueryBuilder';
13
13
  export * from './transformers/SelectValueCollector';
14
14
  export * from './transformers/SelectableColumnCollector';
@@ -18,3 +18,4 @@ export * from './transformers/UpstreamSelectQueryFinder';
18
18
  export * from './transformers/SchemaCollector';
19
19
  export * from './transformers/SqlParamInjector';
20
20
  export * from './utils/SqlSchemaValidator';
21
+ export * from './utils/SchemaManager';
package/dist/index.js CHANGED
@@ -25,7 +25,7 @@ __exportStar(require("./transformers/CTECollector"), exports);
25
25
  __exportStar(require("./transformers/CTENormalizer"), exports);
26
26
  __exportStar(require("./transformers/Formatter"), exports);
27
27
  __exportStar(require("./transformers/SqlFormatter"), exports);
28
- __exportStar(require("./transformers/PostgreJsonQueryBuilder"), exports);
28
+ __exportStar(require("./transformers/PostgresJsonQueryBuilder"), exports);
29
29
  __exportStar(require("./transformers/QueryBuilder"), exports); // old name:QueryConverter
30
30
  __exportStar(require("./transformers/SelectValueCollector"), exports);
31
31
  __exportStar(require("./transformers/SelectableColumnCollector"), exports);
@@ -35,5 +35,6 @@ __exportStar(require("./transformers/UpstreamSelectQueryFinder"), exports);
35
35
  __exportStar(require("./transformers/SchemaCollector"), exports);
36
36
  __exportStar(require("./transformers/SqlParamInjector"), exports);
37
37
  __exportStar(require("./utils/SqlSchemaValidator"), exports);
38
+ __exportStar(require("./utils/SchemaManager"), exports);
38
39
  // Add more exports here if you want to expose additional public API
39
40
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,oCAAoC;AACpC,8DAA4C;AAC5C,8DAA4C;AAE5C,6DAA2C;AAC3C,uDAAqC;AACrC,0DAAwC;AACxC,uDAAqC;AAErC,8DAA4C;AAC5C,+DAA6C;AAC7C,2DAAyC;AACzC,8DAA4C;AAC5C,yEAAuD;AACvD,8DAA4C,CAAC,0BAA0B;AACvE,sEAAoD;AACpD,2EAAyD;AACzD,qEAAmD;AACnD,sEAAoD;AACpD,2EAAyD;AACzD,iEAA+C;AAC/C,kEAAgD;AAEhD,6DAA2C;AAC3C,oEAAoE"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,oCAAoC;AACpC,8DAA4C;AAC5C,8DAA4C;AAE5C,6DAA2C;AAC3C,uDAAqC;AACrC,0DAAwC;AACxC,uDAAqC;AAErC,8DAA4C;AAC5C,+DAA6C;AAC7C,2DAAyC;AACzC,8DAA4C;AAC5C,0EAAwD;AACxD,8DAA4C,CAAC,0BAA0B;AACvE,sEAAoD;AACpD,2EAAyD;AACzD,qEAAmD;AACnD,sEAAoD;AACpD,2EAAyD;AACzD,iEAA+C;AAC/C,kEAAgD;AAEhD,6DAA2C;AAC3C,wDAAsC;AACtC,oEAAoE"}