rawsql-ts 0.20.0 → 0.21.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.
Files changed (89) hide show
  1. package/README.md +12 -13
  2. package/dist/esm/index.d.ts +1 -11
  3. package/dist/esm/index.js +1 -11
  4. package/dist/esm/index.js.map +1 -1
  5. package/dist/esm/index.min.js +3 -39
  6. package/dist/esm/index.min.js.map +3 -3
  7. package/dist/esm/transformers/DynamicQueryBuilder.d.ts +4 -27
  8. package/dist/esm/transformers/DynamicQueryBuilder.js +10 -27
  9. package/dist/esm/transformers/DynamicQueryBuilder.js.map +1 -1
  10. package/dist/esm/transformers/PruneOptionalConditionBranches.d.ts +19 -0
  11. package/dist/esm/transformers/PruneOptionalConditionBranches.js +220 -0
  12. package/dist/esm/transformers/PruneOptionalConditionBranches.js.map +1 -1
  13. package/dist/esm/transformers/SSSQLFilterBuilder.js +2 -1
  14. package/dist/esm/transformers/SSSQLFilterBuilder.js.map +1 -1
  15. package/dist/esm/utils/SchemaManager.d.ts +3 -19
  16. package/dist/esm/utils/SchemaManager.js +2 -62
  17. package/dist/esm/utils/SchemaManager.js.map +1 -1
  18. package/dist/index.js +2 -18
  19. package/dist/index.js.map +1 -1
  20. package/dist/index.min.js +3 -39
  21. package/dist/index.min.js.map +3 -3
  22. package/dist/src/index.d.ts +1 -11
  23. package/dist/src/transformers/DynamicQueryBuilder.d.ts +4 -27
  24. package/dist/src/transformers/PruneOptionalConditionBranches.d.ts +19 -0
  25. package/dist/src/utils/SchemaManager.d.ts +3 -19
  26. package/dist/transformers/DynamicQueryBuilder.js +10 -27
  27. package/dist/transformers/DynamicQueryBuilder.js.map +1 -1
  28. package/dist/transformers/PruneOptionalConditionBranches.js +222 -1
  29. package/dist/transformers/PruneOptionalConditionBranches.js.map +1 -1
  30. package/dist/transformers/SSSQLFilterBuilder.js +2 -1
  31. package/dist/transformers/SSSQLFilterBuilder.js.map +1 -1
  32. package/dist/tsconfig.browser.tsbuildinfo +1 -1
  33. package/dist/utils/SchemaManager.js +2 -63
  34. package/dist/utils/SchemaManager.js.map +1 -1
  35. package/package.json +10 -2
  36. package/dist/esm/transformers/EnhancedJsonMapping.d.ts +0 -194
  37. package/dist/esm/transformers/EnhancedJsonMapping.js +0 -217
  38. package/dist/esm/transformers/EnhancedJsonMapping.js.map +0 -1
  39. package/dist/esm/transformers/JsonMappingConverter.d.ts +0 -200
  40. package/dist/esm/transformers/JsonMappingConverter.js +0 -388
  41. package/dist/esm/transformers/JsonMappingConverter.js.map +0 -1
  42. package/dist/esm/transformers/JsonMappingUnifier.d.ts +0 -100
  43. package/dist/esm/transformers/JsonMappingUnifier.js +0 -207
  44. package/dist/esm/transformers/JsonMappingUnifier.js.map +0 -1
  45. package/dist/esm/transformers/ModelDrivenJsonMapping.d.ts +0 -62
  46. package/dist/esm/transformers/ModelDrivenJsonMapping.js +0 -115
  47. package/dist/esm/transformers/ModelDrivenJsonMapping.js.map +0 -1
  48. package/dist/esm/transformers/PostgresArrayEntityCteBuilder.d.ts +0 -138
  49. package/dist/esm/transformers/PostgresArrayEntityCteBuilder.js +0 -454
  50. package/dist/esm/transformers/PostgresArrayEntityCteBuilder.js.map +0 -1
  51. package/dist/esm/transformers/PostgresJsonQueryBuilder.d.ts +0 -88
  52. package/dist/esm/transformers/PostgresJsonQueryBuilder.js +0 -241
  53. package/dist/esm/transformers/PostgresJsonQueryBuilder.js.map +0 -1
  54. package/dist/esm/transformers/PostgresObjectEntityCteBuilder.d.ts +0 -165
  55. package/dist/esm/transformers/PostgresObjectEntityCteBuilder.js +0 -343
  56. package/dist/esm/transformers/PostgresObjectEntityCteBuilder.js.map +0 -1
  57. package/dist/esm/transformers/TypeTransformationPostProcessor.d.ts +0 -108
  58. package/dist/esm/transformers/TypeTransformationPostProcessor.js +0 -354
  59. package/dist/esm/transformers/TypeTransformationPostProcessor.js.map +0 -1
  60. package/dist/esm/utils/JsonSchemaValidator.d.ts +0 -81
  61. package/dist/esm/utils/JsonSchemaValidator.js +0 -211
  62. package/dist/esm/utils/JsonSchemaValidator.js.map +0 -1
  63. package/dist/src/transformers/EnhancedJsonMapping.d.ts +0 -194
  64. package/dist/src/transformers/JsonMappingConverter.d.ts +0 -200
  65. package/dist/src/transformers/JsonMappingUnifier.d.ts +0 -100
  66. package/dist/src/transformers/ModelDrivenJsonMapping.d.ts +0 -62
  67. package/dist/src/transformers/PostgresArrayEntityCteBuilder.d.ts +0 -138
  68. package/dist/src/transformers/PostgresJsonQueryBuilder.d.ts +0 -88
  69. package/dist/src/transformers/PostgresObjectEntityCteBuilder.d.ts +0 -165
  70. package/dist/src/transformers/TypeTransformationPostProcessor.d.ts +0 -108
  71. package/dist/src/utils/JsonSchemaValidator.d.ts +0 -81
  72. package/dist/transformers/EnhancedJsonMapping.js +0 -223
  73. package/dist/transformers/EnhancedJsonMapping.js.map +0 -1
  74. package/dist/transformers/JsonMappingConverter.js +0 -392
  75. package/dist/transformers/JsonMappingConverter.js.map +0 -1
  76. package/dist/transformers/JsonMappingUnifier.js +0 -216
  77. package/dist/transformers/JsonMappingUnifier.js.map +0 -1
  78. package/dist/transformers/ModelDrivenJsonMapping.js +0 -122
  79. package/dist/transformers/ModelDrivenJsonMapping.js.map +0 -1
  80. package/dist/transformers/PostgresArrayEntityCteBuilder.js +0 -458
  81. package/dist/transformers/PostgresArrayEntityCteBuilder.js.map +0 -1
  82. package/dist/transformers/PostgresJsonQueryBuilder.js +0 -245
  83. package/dist/transformers/PostgresJsonQueryBuilder.js.map +0 -1
  84. package/dist/transformers/PostgresObjectEntityCteBuilder.js +0 -347
  85. package/dist/transformers/PostgresObjectEntityCteBuilder.js.map +0 -1
  86. package/dist/transformers/TypeTransformationPostProcessor.js +0 -363
  87. package/dist/transformers/TypeTransformationPostProcessor.js.map +0 -1
  88. package/dist/utils/JsonSchemaValidator.js +0 -215
  89. package/dist/utils/JsonSchemaValidator.js.map +0 -1
@@ -1,4 +1,5 @@
1
1
  export * from './parsers/SqlParser';
2
+ export * from './parsers/SqlTokenizer';
2
3
  export * from './parsers/SelectQueryParser';
3
4
  export { ParseAnalysisResult } from './parsers/SelectQueryParser';
4
5
  export * from './parsers/InsertQueryParser';
@@ -51,7 +52,6 @@ export type { ScopeRange } from './transformers/SqlIdentifierRenamer';
51
52
  export * from './transformers/ColumnReferenceCollector';
52
53
  export * from './transformers/Formatter';
53
54
  export * from './transformers/SqlFormatter';
54
- export * from './transformers/PostgresJsonQueryBuilder';
55
55
  export * from './transformers/QueryBuilder';
56
56
  export * from './transformers/InsertQuerySelectValuesConverter';
57
57
  export * from './transformers/InsertResultSelectConverter';
@@ -75,16 +75,7 @@ export * from './transformers/PruneOptionalConditionBranches';
75
75
  export { SchemaInfo, optimizeUnusedLeftJoins, optimizeUnusedLeftJoinsToFixedPoint, optimizeUnusedCtes, optimizeUnusedCtesToFixedPoint } from './transformers/OptimizeUnusedLeftJoins';
76
76
  export * from './transformers/TableColumnResolver';
77
77
  export * from './transformers/TableSourceCollector';
78
- export * from './transformers/JsonMappingConverter';
79
- export * from './transformers/EnhancedJsonMapping';
80
- export { ModelDrivenJsonMapping, convertModelDrivenMapping, validateModelDrivenMapping, FieldMapping, NestedStructure, StructureFields, FieldType } from './transformers/ModelDrivenJsonMapping';
81
- export {
82
- /** @deprecated Use JsonMappingConverter.convert() instead */
83
- processJsonMapping, isModelDrivenFormat, isUnifiedFormat, isLegacyFormat } from './transformers/JsonMappingUnifier';
84
- /** @deprecated Use JsonMappingConverter.toLegacyMapping() instead */
85
- export { unifyJsonMapping } from './transformers/JsonMappingUnifier';
86
78
  export * from './transformers/UpstreamSelectQueryFinder';
87
- export * from './transformers/TypeTransformationPostProcessor';
88
79
  export * from './transformers/SchemaCollector';
89
80
  export { TableSchema, SchemaAnalysisResult } from './transformers/SchemaCollector';
90
81
  export * from './transformers/FilterableItemCollector';
@@ -97,7 +88,6 @@ export * from './transformers/DynamicQueryBuilder';
97
88
  export * from './utils/ParameterHelper';
98
89
  export * from './transformers/SqlParameterBinder';
99
90
  export * from './utils/SqlSchemaValidator';
100
- export * from './utils/JsonSchemaValidator';
101
91
  export * from './utils/SchemaManager';
102
92
  export * from './utils/RelationGraph';
103
93
  export * from './utils/CommentEditor';
@@ -1,7 +1,6 @@
1
1
  import { SelectQuery } from "../models/SelectQuery";
2
2
  import { SortConditions } from "./SqlSortInjector";
3
3
  import { PaginationOptions } from "./SqlPaginationInjector";
4
- import { JsonMapping } from "./PostgresJsonQueryBuilder";
5
4
  import { SqlParameterValue } from "../models/ValueComponent";
6
5
  import { SchemaInfo } from "./OptimizeUnusedLeftJoins";
7
6
  import { OptionalConditionParameterStates, OptionalConditionPruningParameters } from "./PruneOptionalConditionBranches";
@@ -104,18 +103,6 @@ export interface QueryBuildOptions {
104
103
  * Filters apply subtractively and only drop columns that exist in the original output.
105
104
  */
106
105
  excludeColumns?: string[];
107
- /** JSON serialization mapping to transform results into hierarchical JSON
108
- * - JsonMapping object: explicit mapping configuration
109
- * - true: auto-load mapping from corresponding .json file
110
- * - false/undefined: no serialization
111
- */
112
- serialize?: JsonMapping | boolean;
113
- /**
114
- * JSONB usage setting. Must be true (default) for PostgreSQL GROUP BY compatibility.
115
- * Setting to false will throw an error as JSON type cannot be used in GROUP BY clauses.
116
- * @default true
117
- */
118
- jsonb?: boolean;
119
106
  /**
120
107
  * Throw when column-anchored EXISTS filters fail to resolve.
121
108
  * Defaults to false so invalid definitions are skipped silently.
@@ -158,12 +145,12 @@ export interface DynamicQueryBuilderOptions {
158
145
  schemaInfo?: SchemaInfo;
159
146
  }
160
147
  /**
161
- * DynamicQueryBuilder combines SQL parsing with dynamic condition injection (filters, sorts, paging, JSON serialization).
148
+ * DynamicQueryBuilder combines SQL parsing with dynamic condition injection (filters, sorts, paging).
162
149
  *
163
150
  * Key behaviours verified in packages/core/tests/transformers/DynamicQueryBuilder.test.ts:
164
151
  * - Preserves the input SQL when no options are supplied.
165
152
  * - Applies filter, sort, and pagination in a deterministic order.
166
- * - Supports JSON serialization for hierarchical projections.
153
+ * - Fails fast for removed SQL-result JSON shaping.
167
154
  */
168
155
  export declare class DynamicQueryBuilder {
169
156
  private tableColumnResolver?;
@@ -179,7 +166,7 @@ export declare class DynamicQueryBuilder {
179
166
  * Builds a SelectQuery from SQL content with dynamic conditions.
180
167
  * This is a pure function that does not perform any I/O operations.
181
168
  * @param sqlContent Raw SQL string to parse and modify
182
- * @param options Dynamic conditions to apply (filter, sort, paging, serialize)
169
+ * @param options Dynamic conditions to apply (filter, sort, paging)
183
170
  * @returns Modified SelectQuery with all dynamic conditions applied
184
171
  * @example
185
172
  * ```typescript
@@ -189,8 +176,7 @@ export declare class DynamicQueryBuilder {
189
176
  * {
190
177
  * filter: { status: 'premium' },
191
178
  * sort: { created_at: { desc: true } },
192
- * paging: { page: 2, pageSize: 10 },
193
- * serialize: { rootName: 'user', rootEntity: { id: 'user', name: 'User', columns: { id: 'id', name: 'name' } }, nestedEntities: [] }
179
+ * paging: { page: 2, pageSize: 10 }
194
180
  * }
195
181
  * );
196
182
  * ```
@@ -227,15 +213,6 @@ export declare class DynamicQueryBuilder {
227
213
  * @returns Modified SelectQuery with pagination applied
228
214
  */
229
215
  buildPaginatedQuery(sqlContent: string, paging: PaginationOptions): SelectQuery;
230
- /**
231
- * Builds a SelectQuery with only JSON serialization applied.
232
- * Convenience method for when you only need hierarchical JSON transformation.
233
- *
234
- * @param sqlContent Raw SQL string to parse and modify
235
- * @param serialize JSON mapping configuration to apply
236
- * @returns Modified SelectQuery with JSON serialization applied
237
- */
238
- buildSerializedQuery(sqlContent: string, serialize: JsonMapping): SelectQuery;
239
216
  /**
240
217
  * Validates SQL content by attempting to parse it.
241
218
  * Useful for testing SQL validity without applying any modifications.
@@ -10,6 +10,17 @@ export interface SupportedOptionalConditionBranch {
10
10
  expression: ValueComponent;
11
11
  kind: SupportedOptionalConditionBranchKind;
12
12
  }
13
+ export interface OptionalConditionSourceRange {
14
+ start: number;
15
+ end: number;
16
+ text: string;
17
+ }
18
+ export interface SupportedOptionalConditionBranchSpan {
19
+ parameterName: string;
20
+ kind: SupportedOptionalConditionBranchKind;
21
+ sourceRange: OptionalConditionSourceRange;
22
+ removalRange: OptionalConditionSourceRange;
23
+ }
13
24
  /**
14
25
  * Prunes supported optional WHERE branches when an explicitly targeted parameter is absent-equivalent.
15
26
  * For the MVP, only `null` and `undefined` are treated as absent and unsupported shapes remain exact no-op.
@@ -20,3 +31,11 @@ export declare const pruneOptionalConditionBranches: (query: SelectQuery, prunin
20
31
  * The returned branch expressions keep object identity so callers can move them without re-rendering.
21
32
  */
22
33
  export declare const collectSupportedOptionalConditionBranches: (query: SelectQuery) => SupportedOptionalConditionBranch[];
34
+ /**
35
+ * Collects supported optional condition branches with source-text ranges.
36
+ *
37
+ * The AST collector remains the authority for whether a branch is supported. The range metadata
38
+ * is derived from tokenizer positions so development tools can generate runtime metadata without
39
+ * reparsing SQL in production.
40
+ */
41
+ export declare const collectSupportedOptionalConditionBranchSpans: (sql: string) => SupportedOptionalConditionBranchSpan[];
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * Central schema management utility for rawsql-ts.
3
- * Converts user-defined table definitions into resolvers and JSON mappings consumed by collectors and builders.
3
+ * Converts user-defined table definitions into resolvers consumed by collectors and builders.
4
4
  *
5
5
  * @example
6
6
  * ```typescript
@@ -20,7 +20,6 @@
20
20
  * ```
21
21
  * Related tests: packages/core/tests/transformers/SchemaCollector.test.ts
22
22
  */
23
- import type { JsonMapping } from '../transformers/PostgresJsonQueryBuilder';
24
23
  /**
25
24
  * Database column metadata for schema mapping
26
25
  */
@@ -34,8 +33,6 @@ export interface ColumnDefinition {
34
33
  table: string;
35
34
  column: string;
36
35
  };
37
- /** Alias for JSON output (useful for avoiding conflicts) */
38
- jsonAlias?: string;
39
36
  }
40
37
  /**
41
38
  * Table relationship definition
@@ -45,7 +42,7 @@ export interface RelationshipDefinition {
45
42
  type: 'object' | 'array';
46
43
  /** Target table name */
47
44
  table: string;
48
- /** Property name in JSON output */
45
+ /** Caller-owned relationship property name */
49
46
  propertyName: string;
50
47
  /** Optional: Override target table's primary key */
51
48
  targetKey?: string;
@@ -71,7 +68,7 @@ export interface SchemaRegistry {
71
68
  }
72
69
  /**
73
70
  * Central schema management utility for rawsql-ts
74
- * Converts user-defined schemas to various internal formats
71
+ * Converts user-defined schemas to resolvers consumed by schema-aware utilities
75
72
  */
76
73
  export declare class SchemaManager {
77
74
  private schemas;
@@ -93,12 +90,6 @@ export declare class SchemaManager {
93
90
  * @returns Function compatible with SqlParamInjector
94
91
  */
95
92
  createTableColumnResolver(): (tableName: string) => string[];
96
- /**
97
- * Generate JSON mapping configuration for PostgresJsonQueryBuilder
98
- * @param rootTableName Root table for the JSON structure
99
- * @returns JSON mapping configuration
100
- */
101
- createJsonMapping(rootTableName: string): JsonMapping;
102
93
  /**
103
94
  * Get all table names in the schema
104
95
  * @returns Array of table names
@@ -140,10 +131,3 @@ export declare function createSchemaManager(schemas: SchemaRegistry): SchemaMana
140
131
  * @returns TableColumnResolver function for SqlParamInjector
141
132
  */
142
133
  export declare function createTableColumnResolver(schemas: SchemaRegistry): (tableName: string) => string[];
143
- /**
144
- * Create JSON mapping from schema definitions
145
- * @param schemas Schema registry object
146
- * @param rootTableName Root table name
147
- * @returns JSON mapping for PostgresJsonQueryBuilder
148
- */
149
- export declare function createJsonMappingFromSchema(schemas: SchemaRegistry, rootTableName: string): JsonMapping;
@@ -4,7 +4,6 @@ exports.DynamicQueryBuilder = void 0;
4
4
  const SelectQueryParser_1 = require("../parsers/SelectQueryParser");
5
5
  const SqlSortInjector_1 = require("./SqlSortInjector");
6
6
  const SqlPaginationInjector_1 = require("./SqlPaginationInjector");
7
- const PostgresJsonQueryBuilder_1 = require("./PostgresJsonQueryBuilder");
8
7
  const QueryBuilder_1 = require("./QueryBuilder");
9
8
  const SqlParameterBinder_1 = require("./SqlParameterBinder");
10
9
  const ParameterDetector_1 = require("../utils/ParameterDetector");
@@ -12,12 +11,12 @@ const ValueComponent_1 = require("../models/ValueComponent");
12
11
  const OptimizeUnusedLeftJoins_1 = require("./OptimizeUnusedLeftJoins");
13
12
  const PruneOptionalConditionBranches_1 = require("./PruneOptionalConditionBranches");
14
13
  /**
15
- * DynamicQueryBuilder combines SQL parsing with dynamic condition injection (filters, sorts, paging, JSON serialization).
14
+ * DynamicQueryBuilder combines SQL parsing with dynamic condition injection (filters, sorts, paging).
16
15
  *
17
16
  * Key behaviours verified in packages/core/tests/transformers/DynamicQueryBuilder.test.ts:
18
17
  * - Preserves the input SQL when no options are supplied.
19
18
  * - Applies filter, sort, and pagination in a deterministic order.
20
- * - Supports JSON serialization for hierarchical projections.
19
+ * - Fails fast for removed SQL-result JSON shaping.
21
20
  */
22
21
  class DynamicQueryBuilder {
23
22
  /**
@@ -39,7 +38,7 @@ class DynamicQueryBuilder {
39
38
  * Builds a SelectQuery from SQL content with dynamic conditions.
40
39
  * This is a pure function that does not perform any I/O operations.
41
40
  * @param sqlContent Raw SQL string to parse and modify
42
- * @param options Dynamic conditions to apply (filter, sort, paging, serialize)
41
+ * @param options Dynamic conditions to apply (filter, sort, paging)
43
42
  * @returns Modified SelectQuery with all dynamic conditions applied
44
43
  * @example
45
44
  * ```typescript
@@ -49,14 +48,17 @@ class DynamicQueryBuilder {
49
48
  * {
50
49
  * filter: { status: 'premium' },
51
50
  * sort: { created_at: { desc: true } },
52
- * paging: { page: 2, pageSize: 10 },
53
- * serialize: { rootName: 'user', rootEntity: { id: 'user', name: 'User', columns: { id: 'id', name: 'name' } }, nestedEntities: [] }
51
+ * paging: { page: 2, pageSize: 10 }
54
52
  * }
55
53
  * );
56
54
  * ```
57
55
  */
58
56
  buildQuery(sqlContent, options = {}) {
59
57
  var _a;
58
+ const removedOptions = options;
59
+ if ('serialize' in removedOptions || 'jsonb' in removedOptions) {
60
+ throw new Error("DynamicQueryBuilder SQL-result JSON shaping has been removed. Keep SQL results as rows and use generated AOT mappers so the executed SQL remains debuggable.");
61
+ }
60
62
  // Parse the base SQL
61
63
  let parsedQuery;
62
64
  try {
@@ -105,23 +107,15 @@ class DynamicQueryBuilder {
105
107
  if (Object.keys(optionalConditionParameters).length > 0) {
106
108
  modifiedQuery = (0, PruneOptionalConditionBranches_1.pruneOptionalConditionBranches)(modifiedQuery, optionalConditionParameters);
107
109
  }
108
- // 6. Remove unused LEFT JOINs when asked before serialization.
110
+ // 6. Remove unused LEFT JOINs when asked.
109
111
  const effectiveSchemaInfo = (_a = options.schemaInfo) !== null && _a !== void 0 ? _a : this.defaultSchemaInfo;
110
112
  if (options.removeUnusedLeftJoins && (effectiveSchemaInfo === null || effectiveSchemaInfo === void 0 ? void 0 : effectiveSchemaInfo.length)) {
111
113
  modifiedQuery = (0, OptimizeUnusedLeftJoins_1.optimizeUnusedLeftJoinsToFixedPoint)(modifiedQuery, effectiveSchemaInfo);
112
114
  }
113
- // 7. Remove unused CTEs before serialization when requested.
115
+ // 7. Remove unused CTEs when requested.
114
116
  if (options.removeUnusedCtes) {
115
117
  modifiedQuery = (0, OptimizeUnusedLeftJoins_1.optimizeUnusedCtesToFixedPoint)(modifiedQuery);
116
118
  }
117
- // Apply serialization last (transform the final query structure to JSON)
118
- // Note: boolean values are handled at RawSqlClient level for auto-loading
119
- if (options.serialize && typeof options.serialize === 'object') {
120
- const jsonBuilder = new PostgresJsonQueryBuilder_1.PostgresJsonQueryBuilder();
121
- // Ensure we have a SimpleSelectQuery for the JSON builder
122
- const simpleQuery = QueryBuilder_1.QueryBuilder.buildSimpleQuery(modifiedQuery);
123
- modifiedQuery = jsonBuilder.buildJsonQuery(simpleQuery, options.serialize);
124
- }
125
119
  return modifiedQuery;
126
120
  }
127
121
  resolveOptionalConditionPruningParameters(options) {
@@ -259,17 +253,6 @@ class DynamicQueryBuilder {
259
253
  buildPaginatedQuery(sqlContent, paging) {
260
254
  return this.buildQuery(sqlContent, { paging });
261
255
  }
262
- /**
263
- * Builds a SelectQuery with only JSON serialization applied.
264
- * Convenience method for when you only need hierarchical JSON transformation.
265
- *
266
- * @param sqlContent Raw SQL string to parse and modify
267
- * @param serialize JSON mapping configuration to apply
268
- * @returns Modified SelectQuery with JSON serialization applied
269
- */
270
- buildSerializedQuery(sqlContent, serialize) {
271
- return this.buildQuery(sqlContent, { serialize });
272
- }
273
256
  /**
274
257
  * Validates SQL content by attempting to parse it.
275
258
  * Useful for testing SQL validity without applying any modifications.
@@ -1 +1 @@
1
- {"version":3,"file":"DynamicQueryBuilder.js","sourceRoot":"","sources":["../../src/transformers/DynamicQueryBuilder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"DynamicQueryBuilder.js","sourceRoot":"","sources":["../../src/transformers/DynamicQueryBuilder.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,13 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.collectSupportedOptionalConditionBranches = exports.pruneOptionalConditionBranches = void 0;
3
+ exports.collectSupportedOptionalConditionBranchSpans = exports.collectSupportedOptionalConditionBranches = exports.pruneOptionalConditionBranches = void 0;
4
4
  const Clause_1 = require("../models/Clause");
5
+ const Lexeme_1 = require("../models/Lexeme");
5
6
  const SelectQuery_1 = require("../models/SelectQuery");
6
7
  const ValueComponent_1 = require("../models/ValueComponent");
8
+ const SelectQueryParser_1 = require("../parsers/SelectQueryParser");
9
+ const SqlTokenizer_1 = require("../parsers/SqlTokenizer");
10
+ const ValueParser_1 = require("../parsers/ValueParser");
7
11
  const ParameterCollector_1 = require("./ParameterCollector");
8
12
  const isBinaryOperator = (expression, operator) => {
9
13
  return expression instanceof ValueComponent_1.BinaryExpression && expression.operator.value.trim().toLowerCase() === operator;
@@ -267,4 +271,221 @@ const collectSupportedOptionalConditionBranches = (query) => {
267
271
  return branches;
268
272
  };
269
273
  exports.collectSupportedOptionalConditionBranches = collectSupportedOptionalConditionBranches;
274
+ /**
275
+ * Collects supported optional condition branches with source-text ranges.
276
+ *
277
+ * The AST collector remains the authority for whether a branch is supported. The range metadata
278
+ * is derived from tokenizer positions so development tools can generate runtime metadata without
279
+ * reparsing SQL in production.
280
+ */
281
+ const collectSupportedOptionalConditionBranchSpans = (sql) => {
282
+ var _a;
283
+ const parsed = SelectQueryParser_1.SelectQueryParser.parse(sql);
284
+ const supportedBranches = (0, exports.collectSupportedOptionalConditionBranches)(parsed);
285
+ if (supportedBranches.length === 0) {
286
+ return [];
287
+ }
288
+ const candidates = collectOptionalConditionSpanCandidates(sql);
289
+ const remainingSupportedCounts = countSupportedBranchesByKey(supportedBranches);
290
+ assertUnambiguousCandidateCounts(candidates, remainingSupportedCounts);
291
+ const spans = [];
292
+ for (const candidate of candidates) {
293
+ const key = getSupportedBranchKey(candidate);
294
+ const remainingCount = (_a = remainingSupportedCounts.get(key)) !== null && _a !== void 0 ? _a : 0;
295
+ if (remainingCount <= 0) {
296
+ continue;
297
+ }
298
+ spans.push(candidate);
299
+ remainingSupportedCounts.set(key, remainingCount - 1);
300
+ }
301
+ assertNoMissingSupportedBranches(remainingSupportedCounts);
302
+ return spans;
303
+ };
304
+ exports.collectSupportedOptionalConditionBranchSpans = collectSupportedOptionalConditionBranchSpans;
305
+ const getSupportedBranchKey = (branch) => `${branch.kind}:${branch.parameterName}`;
306
+ const countSupportedBranchesByKey = (branches) => {
307
+ var _a;
308
+ const counts = new Map();
309
+ for (const branch of branches) {
310
+ const key = getSupportedBranchKey(branch);
311
+ counts.set(key, ((_a = counts.get(key)) !== null && _a !== void 0 ? _a : 0) + 1);
312
+ }
313
+ return counts;
314
+ };
315
+ const assertUnambiguousCandidateCounts = (candidates, supportedCounts) => {
316
+ var _a;
317
+ const candidateCounts = countSupportedBranchesByKey(candidates);
318
+ for (const [key, supportedCount] of supportedCounts) {
319
+ const candidateCount = (_a = candidateCounts.get(key)) !== null && _a !== void 0 ? _a : 0;
320
+ if (candidateCount < supportedCount) {
321
+ throw new Error(`Could not locate source range for supported optional condition branch '${key}'.`);
322
+ }
323
+ if (candidateCount > supportedCount) {
324
+ throw new Error(`Ambiguous source ranges for supported optional condition branch '${key}'.`);
325
+ }
326
+ }
327
+ };
328
+ const assertNoMissingSupportedBranches = (supportedCounts) => {
329
+ const missingKeys = [...supportedCounts.entries()]
330
+ .filter(([, count]) => count > 0)
331
+ .map(([key]) => key);
332
+ if (missingKeys.length > 0) {
333
+ throw new Error(`Could not locate source ranges for supported optional condition branches: ${missingKeys.join(', ')}.`);
334
+ }
335
+ };
336
+ const collectOptionalConditionSpanCandidates = (sql) => {
337
+ const lexemes = new SqlTokenizer_1.SqlTokenizer(sql).readLexemes();
338
+ const candidates = [];
339
+ const stack = [];
340
+ for (let index = 0; index < lexemes.length; index += 1) {
341
+ const lexeme = lexemes[index];
342
+ if (isOpenParen(lexeme)) {
343
+ stack.push(index);
344
+ continue;
345
+ }
346
+ if (!isCloseParen(lexeme)) {
347
+ continue;
348
+ }
349
+ const openParenIndex = stack.pop();
350
+ if (openParenIndex === undefined) {
351
+ continue;
352
+ }
353
+ const candidate = buildOptionalConditionSpanCandidate(sql, lexemes, openParenIndex, index);
354
+ if (candidate) {
355
+ candidates.push(candidate);
356
+ }
357
+ }
358
+ return candidates.sort((left, right) => left.sourceRange.start - right.sourceRange.start);
359
+ };
360
+ const buildOptionalConditionSpanCandidate = (sql, lexemes, openParenIndex, closeParenIndex) => {
361
+ const inside = lexemes.slice(openParenIndex + 1, closeParenIndex);
362
+ const orTermRanges = splitTopLevelTermsByKeyword(inside, 'or');
363
+ if (orTermRanges.length < 2) {
364
+ return null;
365
+ }
366
+ const guardTerms = orTermRanges
367
+ .map(range => ({ range, parameterName: getGuardedParameterNameFromLexemes(inside.slice(range.start, range.end)) }))
368
+ .filter((candidate) => candidate.parameterName !== null);
369
+ if (guardTerms.length !== 1) {
370
+ return null;
371
+ }
372
+ const [{ range: guardRange, parameterName }] = guardTerms;
373
+ const meaningfulTerms = orTermRanges.filter(range => range !== guardRange);
374
+ if (meaningfulTerms.length === 0) {
375
+ return null;
376
+ }
377
+ if (!meaningfulTerms.every(range => isSupportedMeaningfulBranchFromLexemes(inside.slice(range.start, range.end), parameterName))) {
378
+ return null;
379
+ }
380
+ const expandedRange = expandWrappingParenRange(lexemes, openParenIndex, closeParenIndex);
381
+ const sourceStart = requiredPosition(lexemes[expandedRange.openParenIndex]).startPosition;
382
+ const sourceEnd = requiredPosition(lexemes[expandedRange.closeParenIndex]).endPosition;
383
+ const removalRange = getRemovalRange(sql, lexemes, expandedRange.openParenIndex, expandedRange.closeParenIndex);
384
+ return {
385
+ parameterName,
386
+ kind: 'expression',
387
+ sourceRange: {
388
+ start: sourceStart,
389
+ end: sourceEnd,
390
+ text: sql.slice(sourceStart, sourceEnd)
391
+ },
392
+ removalRange,
393
+ openParenIndex: expandedRange.openParenIndex,
394
+ closeParenIndex: expandedRange.closeParenIndex
395
+ };
396
+ };
397
+ const expandWrappingParenRange = (lexemes, openParenIndex, closeParenIndex) => {
398
+ let expandedOpenParenIndex = openParenIndex;
399
+ let expandedCloseParenIndex = closeParenIndex;
400
+ while (isOpenParen(lexemes[expandedOpenParenIndex - 1]) &&
401
+ isCloseParen(lexemes[expandedCloseParenIndex + 1])) {
402
+ expandedOpenParenIndex -= 1;
403
+ expandedCloseParenIndex += 1;
404
+ }
405
+ return {
406
+ openParenIndex: expandedOpenParenIndex,
407
+ closeParenIndex: expandedCloseParenIndex
408
+ };
409
+ };
410
+ const splitTopLevelTermsByKeyword = (lexemes, keyword) => {
411
+ const ranges = [];
412
+ let depth = 0;
413
+ let start = 0;
414
+ for (let index = 0; index < lexemes.length; index += 1) {
415
+ const lexeme = lexemes[index];
416
+ if (isOpenParen(lexeme)) {
417
+ depth += 1;
418
+ continue;
419
+ }
420
+ if (isCloseParen(lexeme)) {
421
+ depth -= 1;
422
+ continue;
423
+ }
424
+ if (depth === 0 && isKeyword(lexeme, keyword)) {
425
+ ranges.push({ start, end: index });
426
+ start = index + 1;
427
+ }
428
+ }
429
+ ranges.push({ start, end: lexemes.length });
430
+ return ranges;
431
+ };
432
+ const getGuardedParameterNameFromLexemes = (lexemes) => {
433
+ const compact = lexemes.filter(lexeme => !isWrappingParen(lexeme));
434
+ if (compact.length !== 3) {
435
+ return null;
436
+ }
437
+ if (!isParameter(compact[0]) || !isKeyword(compact[1], 'is') || !isKeyword(compact[2], 'null')) {
438
+ return null;
439
+ }
440
+ return normalizeParameterName(compact[0].value);
441
+ };
442
+ const isSupportedMeaningfulBranchFromLexemes = (lexemes, parameterName) => {
443
+ try {
444
+ const parsed = ValueParser_1.ValueParser.parseFromLexeme(lexemes, 0);
445
+ if (parsed.newIndex !== lexemes.length) {
446
+ return false;
447
+ }
448
+ return isSupportedMeaningfulBranch(parsed.value, parameterName);
449
+ }
450
+ catch {
451
+ return false;
452
+ }
453
+ };
454
+ const getRemovalRange = (sql, lexemes, openParenIndex, closeParenIndex) => {
455
+ const previous = lexemes[openParenIndex - 1];
456
+ const next = lexemes[closeParenIndex + 1];
457
+ let start = requiredPosition(lexemes[openParenIndex]).startPosition;
458
+ let end = requiredPosition(lexemes[closeParenIndex]).endPosition;
459
+ if (previous && isKeyword(previous, 'and')) {
460
+ start = requiredPosition(previous).startPosition;
461
+ }
462
+ else if (next && isKeyword(next, 'and')) {
463
+ end = requiredPosition(next).endPosition;
464
+ }
465
+ else if (previous && isKeyword(previous, 'where')) {
466
+ start = requiredPosition(previous).startPosition;
467
+ }
468
+ return {
469
+ start,
470
+ end,
471
+ text: sql.slice(start, end)
472
+ };
473
+ };
474
+ const isParameter = (lexeme) => (lexeme.type & Lexeme_1.TokenType.Parameter) !== 0;
475
+ const isOpenParen = (lexeme) => (lexeme.type & Lexeme_1.TokenType.OpenParen) !== 0;
476
+ const isCloseParen = (lexeme) => (lexeme.type & Lexeme_1.TokenType.CloseParen) !== 0;
477
+ const isKeyword = (lexeme, keyword) => lexeme.value.toLowerCase() === keyword;
478
+ const isWrappingParen = (lexeme) => isOpenParen(lexeme) || isCloseParen(lexeme);
479
+ const normalizeParameterName = (value) => {
480
+ if (value.startsWith('${') && value.endsWith('}')) {
481
+ return value.slice(2, -1);
482
+ }
483
+ return value.replace(/^[:@$]/, '');
484
+ };
485
+ const requiredPosition = (lexeme) => {
486
+ if (!lexeme.position) {
487
+ throw new Error(`Lexeme '${lexeme.value}' is missing source position metadata.`);
488
+ }
489
+ return lexeme.position;
490
+ };
270
491
  //# sourceMappingURL=PruneOptionalConditionBranches.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"PruneOptionalConditionBranches.js","sourceRoot":"","sources":["../../src/transformers/PruneOptionalConditionBranches.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"PruneOptionalConditionBranches.js","sourceRoot":"","sources":["../../src/transformers/PruneOptionalConditionBranches.ts"],"names":[],"mappings":"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"}