rawsql-ts 0.20.0 → 0.21.0
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 +12 -13
- package/dist/esm/index.d.ts +1 -11
- package/dist/esm/index.js +1 -11
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/index.min.js +3 -39
- package/dist/esm/index.min.js.map +3 -3
- package/dist/esm/transformers/DynamicQueryBuilder.d.ts +4 -27
- package/dist/esm/transformers/DynamicQueryBuilder.js +10 -27
- package/dist/esm/transformers/DynamicQueryBuilder.js.map +1 -1
- package/dist/esm/transformers/SSSQLFilterBuilder.js +2 -1
- package/dist/esm/transformers/SSSQLFilterBuilder.js.map +1 -1
- package/dist/esm/utils/SchemaManager.d.ts +3 -19
- package/dist/esm/utils/SchemaManager.js +2 -62
- package/dist/esm/utils/SchemaManager.js.map +1 -1
- package/dist/index.js +2 -18
- package/dist/index.js.map +1 -1
- package/dist/index.min.js +3 -39
- package/dist/index.min.js.map +3 -3
- package/dist/src/index.d.ts +1 -11
- package/dist/src/transformers/DynamicQueryBuilder.d.ts +4 -27
- package/dist/src/utils/SchemaManager.d.ts +3 -19
- package/dist/transformers/DynamicQueryBuilder.js +10 -27
- package/dist/transformers/DynamicQueryBuilder.js.map +1 -1
- package/dist/transformers/SSSQLFilterBuilder.js +2 -1
- package/dist/transformers/SSSQLFilterBuilder.js.map +1 -1
- package/dist/tsconfig.browser.tsbuildinfo +1 -1
- package/dist/utils/SchemaManager.js +2 -63
- package/dist/utils/SchemaManager.js.map +1 -1
- package/package.json +10 -2
- package/dist/esm/transformers/EnhancedJsonMapping.d.ts +0 -194
- package/dist/esm/transformers/EnhancedJsonMapping.js +0 -217
- package/dist/esm/transformers/EnhancedJsonMapping.js.map +0 -1
- package/dist/esm/transformers/JsonMappingConverter.d.ts +0 -200
- package/dist/esm/transformers/JsonMappingConverter.js +0 -388
- package/dist/esm/transformers/JsonMappingConverter.js.map +0 -1
- package/dist/esm/transformers/JsonMappingUnifier.d.ts +0 -100
- package/dist/esm/transformers/JsonMappingUnifier.js +0 -207
- package/dist/esm/transformers/JsonMappingUnifier.js.map +0 -1
- package/dist/esm/transformers/ModelDrivenJsonMapping.d.ts +0 -62
- package/dist/esm/transformers/ModelDrivenJsonMapping.js +0 -115
- package/dist/esm/transformers/ModelDrivenJsonMapping.js.map +0 -1
- package/dist/esm/transformers/PostgresArrayEntityCteBuilder.d.ts +0 -138
- package/dist/esm/transformers/PostgresArrayEntityCteBuilder.js +0 -454
- package/dist/esm/transformers/PostgresArrayEntityCteBuilder.js.map +0 -1
- package/dist/esm/transformers/PostgresJsonQueryBuilder.d.ts +0 -88
- package/dist/esm/transformers/PostgresJsonQueryBuilder.js +0 -241
- package/dist/esm/transformers/PostgresJsonQueryBuilder.js.map +0 -1
- package/dist/esm/transformers/PostgresObjectEntityCteBuilder.d.ts +0 -165
- package/dist/esm/transformers/PostgresObjectEntityCteBuilder.js +0 -343
- package/dist/esm/transformers/PostgresObjectEntityCteBuilder.js.map +0 -1
- package/dist/esm/transformers/TypeTransformationPostProcessor.d.ts +0 -108
- package/dist/esm/transformers/TypeTransformationPostProcessor.js +0 -354
- package/dist/esm/transformers/TypeTransformationPostProcessor.js.map +0 -1
- package/dist/esm/utils/JsonSchemaValidator.d.ts +0 -81
- package/dist/esm/utils/JsonSchemaValidator.js +0 -211
- package/dist/esm/utils/JsonSchemaValidator.js.map +0 -1
- package/dist/src/transformers/EnhancedJsonMapping.d.ts +0 -194
- package/dist/src/transformers/JsonMappingConverter.d.ts +0 -200
- package/dist/src/transformers/JsonMappingUnifier.d.ts +0 -100
- package/dist/src/transformers/ModelDrivenJsonMapping.d.ts +0 -62
- package/dist/src/transformers/PostgresArrayEntityCteBuilder.d.ts +0 -138
- package/dist/src/transformers/PostgresJsonQueryBuilder.d.ts +0 -88
- package/dist/src/transformers/PostgresObjectEntityCteBuilder.d.ts +0 -165
- package/dist/src/transformers/TypeTransformationPostProcessor.d.ts +0 -108
- package/dist/src/utils/JsonSchemaValidator.d.ts +0 -81
- package/dist/transformers/EnhancedJsonMapping.js +0 -223
- package/dist/transformers/EnhancedJsonMapping.js.map +0 -1
- package/dist/transformers/JsonMappingConverter.js +0 -392
- package/dist/transformers/JsonMappingConverter.js.map +0 -1
- package/dist/transformers/JsonMappingUnifier.js +0 -216
- package/dist/transformers/JsonMappingUnifier.js.map +0 -1
- package/dist/transformers/ModelDrivenJsonMapping.js +0 -122
- package/dist/transformers/ModelDrivenJsonMapping.js.map +0 -1
- package/dist/transformers/PostgresArrayEntityCteBuilder.js +0 -458
- package/dist/transformers/PostgresArrayEntityCteBuilder.js.map +0 -1
- package/dist/transformers/PostgresJsonQueryBuilder.js +0 -245
- package/dist/transformers/PostgresJsonQueryBuilder.js.map +0 -1
- package/dist/transformers/PostgresObjectEntityCteBuilder.js +0 -347
- package/dist/transformers/PostgresObjectEntityCteBuilder.js.map +0 -1
- package/dist/transformers/TypeTransformationPostProcessor.js +0 -363
- package/dist/transformers/TypeTransformationPostProcessor.js.map +0 -1
- package/dist/utils/JsonSchemaValidator.js +0 -215
- package/dist/utils/JsonSchemaValidator.js.map +0 -1
package/README.md
CHANGED
|
@@ -13,7 +13,7 @@ A high-performance SQL parser and AST transformer written in TypeScript. Parse r
|
|
|
13
13
|
- **Zero dependencies** -- fully self-contained and lightweight
|
|
14
14
|
- **High-performance** -- significantly faster than node-sql-parser in our parse-only benchmarks
|
|
15
15
|
- **Browser ready** -- works in browsers via CDN (unpkg / jsdelivr)
|
|
16
|
-
- **Dynamic query building** -- filtering, sorting, pagination,
|
|
16
|
+
- **Dynamic query building** -- filtering, sorting, pagination, and truthful optional-condition pruning
|
|
17
17
|
- **CTE management** -- add, remove, and manipulate CTEs programmatically
|
|
18
18
|
- **Schema validation** -- static query validation against your database schema
|
|
19
19
|
- **Full TypeScript support** -- type-safe APIs throughout
|
|
@@ -108,9 +108,8 @@ Read more:
|
|
|
108
108
|
|
|
109
109
|
| Class | Description | Docs |
|
|
110
110
|
| -------------------------- | -------------------------------------------------------------- | --------------------------------------------------------- |
|
|
111
|
-
| `DynamicQueryBuilder` | All-in-one filtering, sorting, pagination,
|
|
111
|
+
| `DynamicQueryBuilder` | All-in-one filtering, sorting, pagination, and SSSQL optional-condition pruning | [Guide](../../docs/guide/querybuilding-recipes.md) |
|
|
112
112
|
| `QueryBuilder` | Convert SELECT queries into INSERT / UPDATE statements | [API](../../docs/api/classes/QueryBuilder.md) |
|
|
113
|
-
| `PostgresJsonQueryBuilder` | Transform relational queries into hierarchical JSON structures | [API](../../docs/api/classes/PostgresJsonQueryBuilder.md) |
|
|
114
113
|
|
|
115
114
|
### Injection
|
|
116
115
|
|
|
@@ -147,19 +146,19 @@ This section reports **parse-only** benchmark results for the SQL parser. It mea
|
|
|
147
146
|
|
|
148
147
|
For readability, workloads are described by approximate SQL line counts, with token counts included in parentheses for technical precision. Parser cost is driven more directly by token volume than by formatting style.
|
|
149
148
|
|
|
150
|
-
Across these workloads, parsing remains fast and stable, performance remains practical, and no performance cliff was observed up to the very large case.
|
|
149
|
+
Across these workloads, parsing remains fast and stable, performance remains practical, and no performance cliff was observed up to the very large case. `sqlite3-parser` is faster on SQLite-compatible inputs, as expected for a SQLite-focused parser, but rawsql-ts remains substantially faster than `node-sql-parser` while preserving its broader AST, comment, formatting, and transformation surface.
|
|
151
150
|
|
|
152
|
-
',backgroundColor:'rgba(54,162,235,0.15)',fill:false,tension:0.2},{label:'node-sql-parser',data:[0.609,0.911,2.044,28.333,75.919],borderColor:'rgba(255,206,86,1)',backgroundColor:'rgba(255,206,86,0.15)',fill:false,tension:0.2},{label:'sqlite3-parser',data:[0.014,0.025,0.052,null,null],borderColor:'rgba(75,192,192,1)',backgroundColor:'rgba(75,192,192,0.15)',fill:false,tension:0.2}]},options:{plugins:{legend:{labels:{color:'black'}}},elements:{point:{radius:3}},scales:{x:{ticks:{color:'black'}},y:{ticks:{color:'black'}}},backgroundColor:'white'}}&width=760&height=420)
|
|
153
152
|
|
|
154
|
-
| Workload | rawsql-ts | node-sql-parser |
|
|
155
|
-
|
|
156
|
-
| Small query, about 8 lines (70 tokens) | 0.
|
|
157
|
-
| Medium query, about 12 lines (140 tokens) | 0.
|
|
158
|
-
| Large query, about 20 lines (230 tokens) | 0.
|
|
159
|
-
| Mid-large query, about 400-500 lines (5,000 tokens) | 4.
|
|
160
|
-
| Very large query, about 1,000+ lines (~12,000 tokens) |
|
|
153
|
+
| Workload | rawsql-ts | node-sql-parser | sqlite3-parser |
|
|
154
|
+
|----------|----------:|----------------:|----------------:|
|
|
155
|
+
| Small query, about 8 lines (70 tokens) | 0.061 ms | 0.609 ms (10.1x slower) | 0.014 ms |
|
|
156
|
+
| Medium query, about 12 lines (140 tokens) | 0.104 ms | 0.911 ms (8.8x slower) | 0.025 ms |
|
|
157
|
+
| Large query, about 20 lines (230 tokens) | 0.174 ms | 2.044 ms (11.7x slower) | 0.052 ms |
|
|
158
|
+
| Mid-large query, about 400-500 lines (5,000 tokens) | 4.732 ms | 28.333 ms (6.0x slower) | n/a |
|
|
159
|
+
| Very large query, about 1,000+ lines (~12,000 tokens) | 9.144 ms | 75.919 ms (8.3x slower) | n/a |
|
|
161
160
|
|
|
162
|
-
> Benchmarked on AMD Ryzen 7 7800X3D / Node.js v22.14.0 / node-sql-parser 5.4.0 (2026-
|
|
161
|
+
> Benchmarked on AMD Ryzen 7 7800X3D / Node.js v22.14.0 / node-sql-parser 5.4.0 / sqlite3-parser 0.7.1 (2026-05-13). The mid-large and very large cases use benchmark-only analytics-style SQL workloads that represent practical long-query classes rather than formatter scenarios. `sqlite3-parser` is reported as `n/a` for cases containing PostgreSQL-style typed literals that it does not accept. See [benchmark details](../../docs/bench/parse-benchmark.md) and [sqlite3-parser comparison details](../../docs/bench/sqlite3-parser-comparison.md) for full results.
|
|
163
162
|
|
|
164
163
|
## Online Demo
|
|
165
164
|
|
package/dist/esm/index.d.ts
CHANGED
|
@@ -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';
|
package/dist/esm/index.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
// Entry point for rawsql-ts package
|
|
2
2
|
export * from './parsers/SqlParser';
|
|
3
|
+
export * from './parsers/SqlTokenizer';
|
|
3
4
|
export * from './parsers/SelectQueryParser';
|
|
4
5
|
export * from './parsers/InsertQueryParser';
|
|
5
6
|
export * from './parsers/UpdateQueryParser';
|
|
@@ -49,7 +50,6 @@ export * from './transformers/SqlIdentifierRenamer';
|
|
|
49
50
|
export * from './transformers/ColumnReferenceCollector';
|
|
50
51
|
export * from './transformers/Formatter';
|
|
51
52
|
export * from './transformers/SqlFormatter';
|
|
52
|
-
export * from './transformers/PostgresJsonQueryBuilder';
|
|
53
53
|
export * from './transformers/QueryBuilder'; // old name:QueryConverter
|
|
54
54
|
export * from './transformers/InsertQuerySelectValuesConverter';
|
|
55
55
|
export * from './transformers/InsertResultSelectConverter';
|
|
@@ -72,16 +72,7 @@ export * from './transformers/PruneOptionalConditionBranches';
|
|
|
72
72
|
export { optimizeUnusedLeftJoins, optimizeUnusedLeftJoinsToFixedPoint, optimizeUnusedCtes, optimizeUnusedCtesToFixedPoint } from './transformers/OptimizeUnusedLeftJoins';
|
|
73
73
|
export * from './transformers/TableColumnResolver';
|
|
74
74
|
export * from './transformers/TableSourceCollector';
|
|
75
|
-
export * from './transformers/JsonMappingConverter';
|
|
76
|
-
export * from './transformers/EnhancedJsonMapping';
|
|
77
|
-
export { convertModelDrivenMapping, validateModelDrivenMapping } from './transformers/ModelDrivenJsonMapping';
|
|
78
|
-
export {
|
|
79
|
-
/** @deprecated Use JsonMappingConverter.convert() instead */
|
|
80
|
-
processJsonMapping, isModelDrivenFormat, isUnifiedFormat, isLegacyFormat } from './transformers/JsonMappingUnifier';
|
|
81
|
-
/** @deprecated Use JsonMappingConverter.toLegacyMapping() instead */
|
|
82
|
-
export { unifyJsonMapping } from './transformers/JsonMappingUnifier';
|
|
83
75
|
export * from './transformers/UpstreamSelectQueryFinder';
|
|
84
|
-
export * from './transformers/TypeTransformationPostProcessor';
|
|
85
76
|
export * from './transformers/SchemaCollector';
|
|
86
77
|
export { TableSchema } from './transformers/SchemaCollector';
|
|
87
78
|
export * from './transformers/FilterableItemCollector';
|
|
@@ -94,7 +85,6 @@ export * from './transformers/DynamicQueryBuilder';
|
|
|
94
85
|
export * from './utils/ParameterHelper';
|
|
95
86
|
export * from './transformers/SqlParameterBinder';
|
|
96
87
|
export * from './utils/SqlSchemaValidator';
|
|
97
|
-
export * from './utils/JsonSchemaValidator';
|
|
98
88
|
export * from './utils/SchemaManager';
|
|
99
89
|
export * from './utils/RelationGraph';
|
|
100
90
|
export * from './utils/CommentEditor';
|
package/dist/esm/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,oCAAoC;AACpC,cAAc,qBAAqB,CAAC;AACpC,cAAc,6BAA6B,CAAC;AAE5C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,iCAAiC,CAAC;AAChD,cAAc,kCAAkC,CAAC;AACjD,cAAc,kCAAkC,CAAC;AACjD,cAAc,qCAAqC,CAAC;AAEpD,cAAc,oBAAoB,CAAC;AAEnC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,sBAAsB,CAAC;AACrC,cAAc,uBAAuB,CAAC;AACtC,cAAc,yBAAyB,CAAC;AACxC,cAAc,sBAAsB,CAAC;AACrC,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAChC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,sBAAsB,CAAC;AACrC,cAAc,sBAAsB,CAAC;AACrC,cAAc,sBAAsB,CAAC;AACrC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,qBAAqB,CAAC;AACpC,cAAc,wBAAwB,CAAC;AACvC,cAAc,+BAA+B,CAAC;AAE9C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,sCAAsC,CAAC;AACrD,cAAc,2CAA2C,CAAC;AAC1D,cAAc,mCAAmC,CAAC;AAElD,cAAc,4BAA4B,CAAC;AAC3C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,qCAAqC,CAAC;AACpD,cAAc,qCAAqC,CAAC;AAEpD,cAAc,yCAAyC,CAAC;AACxD,cAAc,0BAA0B,CAAC;AACzC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
|