rawsql-ts 0.1.0-beta.10 → 0.1.0-beta.11

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 CHANGED
@@ -2,236 +2,201 @@
2
2
 
3
3
  ![No external dependencies](https://img.shields.io/badge/dependencies-none-brightgreen)
4
4
 
5
- rawsql-ts is a TypeScript SQL parser that performs Abstract Syntax Tree (AST) analysis for advanced SQL processing and transformation.
5
+ rawsql-ts is a high-performance SQL parser and AST transformer library written in TypeScript. It is designed for extensibility and advanced SQL analysis, with initial focus on PostgreSQL syntax but not limited to it. The library enables easy SQL parsing, transformation, and analysis for a wide range of SQL dialects.
6
6
 
7
- > **Note:** This library is currently in beta. The API may change without notice until the v1.0 release.
7
+ > **Note:** This library is currently in beta. The API may change until the v1.0 release.
8
8
 
9
- ## Main Features
9
+ ---
10
10
 
11
- - No external dependencies: Fully self-contained, zero dependency implementation! 🎉
12
- - High-performance SQL parsing and AST analysis
13
- - Advanced SQL transformation utilities
14
- - Designed for PostgreSQL syntax
11
+ 💡 **Key Advantages**
15
12
 
16
- ## Installation
13
+ With rawsql-ts, raw SQL can be represented as objects, enabling flexible manipulation of SQL statements directly within your program. Objectified SQL can be partially transformed, decomposed into manageable components, and recombined as needed. This approach dramatically improves the maintainability and reusability of complex SQL, making even large-scale queries easy to manage and refactor.
14
+
15
+ ---
16
+
17
+ ## Features
18
+
19
+ - Zero dependencies: fully self-contained and lightweight
20
+ - High-speed SQL parsing and AST analysis
21
+ - Rich utilities for SQL structure transformation and analysis
17
22
 
18
- Install the package from npm as follows:
23
+ ## Installation
19
24
 
20
25
  ```bash
21
26
  npm install rawsql-ts
22
27
  ```
23
28
 
24
- ## Usage
25
-
26
- Basic usage example:
29
+ ## Quick Start
27
30
 
28
31
  ```typescript
29
- import { SelectQueryParser } from 'rawsql-ts';
30
- import { Formatter } from 'rawsql-ts';
32
+ import { SelectQueryParser, Formatter } from 'rawsql-ts';
31
33
 
32
- const sql = `SELECT id, name FROM users WHERE active = TRUE`;
34
+ const sql = `SELECT user_id, name FROM users WHERE active = TRUE`;
33
35
  const query = SelectQueryParser.parse(sql);
34
36
  const formatter = new Formatter();
35
37
  const formattedSql = formatter.format(query);
38
+
36
39
  console.log(formattedSql);
37
- // => select "id", "name" from "users" where "active" = true
40
+ // => select "user_id", "name" from "users" where "active" = true
38
41
  ```
39
42
 
40
43
  ---
41
44
 
42
- ## 🧩 Parsing Features
43
-
44
- rawsql-ts provides the following main parser class for converting SQL text into an Abstract Syntax Tree (AST):
45
+ ## Main Parser Features
45
46
 
46
47
  - **SelectQueryParser**
47
- Parses complete SELECT and VALUES queries, including support for CTEs (WITH), UNION/INTERSECT/EXCEPT, subqueries, and all major SQL clauses. Handles PostgreSQL-specific syntax and advanced query structures.
48
-
49
- **Key methods:**
48
+ The main class for converting SELECT and VALUES statements into AST. Fully supports CTEs (WITH), UNION/INTERSECT/EXCEPT, subqueries, and PostgreSQL-specific syntax.
50
49
  - `parse(sql: string): SelectQuery`
51
- Parses a SQL string and returns the root AST node for the query. Throws an error if the SQL is invalid or contains extra tokens.
52
-
53
- **Notes:**
54
- - Only PostgreSQL syntax is supported at this time.
55
- - Only SELECT and VALUES queries are supported (INSERT/UPDATE/DELETE are not yet implemented).
56
- - All SQL comments are removed during parsing.
57
-
58
- This class is designed to handle all practical SQL parsing needs for SELECT/VALUES queries in PostgreSQL, including:
59
- - CTEs (WITH), including recursive and materialized options
60
- - UNION, INTERSECT, EXCEPT, and subqueries
61
- - Window functions and analytic clauses
62
- - Complex expressions, functions, and operators
63
- - Robust error handling with detailed messages
64
- - Accurate tokenization, including comments and special literals
50
+ Converts a SQL string to an AST. Throws an exception on error.
51
+ - Supports only PostgreSQL syntax
52
+ - Only SELECT and VALUES are supported (INSERT/UPDATE/DELETE are not yet implemented)
53
+ - SQL comments are automatically removed
54
+ - Handles CTEs (WITH), UNION/INTERSECT/EXCEPT, subqueries, window functions, complex expressions, and functions
55
+ - Provides detailed error messages
56
+ - Highly accurate tokenization
65
57
 
66
58
  ---
67
59
 
68
60
  ## Core SQL Query Classes
69
61
 
70
- The following classes are the primary building blocks for representing and manipulating SQL queries in rawsql-ts:
71
-
72
- ### SimpleSelectQuery
73
-
74
- Represents a single, standard SQL SELECT statement (not a UNION or VALUES). This class encapsulates all major clauses such as SELECT, FROM, WHERE, GROUP BY, HAVING, ORDER BY, and more.
75
-
76
- **Key methods:**
77
- - `toUnion`, `toUnionAll`, `toIntersect`, `toExcept`, etc.
78
- - Combine this query with another using UNION, INTERSECT, EXCEPT, etc., returning a BinarySelectQuery.
79
- - `appendWhere`, `appendWhereRaw`
80
- - Add a new condition to the WHERE clause (as AST or raw SQL string).
81
- - `appendHaving`, `appendHavingRaw`
82
- - Add a new condition to the HAVING clause.
83
- - `innerJoin`, `leftJoin`, `rightJoin`, `innerJoinRaw`, etc.
84
- - Add JOIN clauses to the query, either as AST or from raw SQL.
85
- - `toSource`
86
- - Wrap this query as a subquery (for use in FROM/JOIN, etc.).
87
- - `appendWith`, `appendWithRaw`
88
- - Add CTEs (WITH clause) to the query.
89
-
90
- ### BinarySelectQuery
62
+ - **SimpleSelectQuery**
63
+ Represents a standard SELECT statement. Supports all major clauses such as WHERE, GROUP BY, JOIN, and CTE.
64
+ - `toUnion`, `toUnionAll`, ... for UNION operations
65
+ - `appendWhere`, `appendWhereRaw` to add WHERE conditions
66
+ - `innerJoin`, `leftJoin`, ... to add JOINs
67
+ - `toSource` to wrap as a subquery
68
+ - `appendWith`, `appendWithRaw` to add CTEs
91
69
 
92
- Represents a binary SQL query, such as `SELECT ... UNION SELECT ...`, `INTERSECT`, or `EXCEPT`. This class holds a left and right query and the operator between them.
70
+ - **BinarySelectQuery**
71
+ Represents binary SQL queries such as UNION, INTERSECT, and EXCEPT.
72
+ - `union`, `intersect`, ... to combine queries
73
+ - `toSource` to wrap as a subquery
74
+ - `unionRaw`, ... to combine with raw SQL
93
75
 
94
- **Key methods:**
95
- - `union`, `unionAll`, `intersect`, `intersectAll`, `except`, `exceptAll`
96
- - Chain additional queries to the current binary query.
97
- - `appendSelectQuery`
98
- - Add a new query with a custom operator.
99
- - `toSource`
100
- - Wrap this binary query as a subquery (for use in FROM/JOIN, etc.).
101
- - `unionRaw`, `intersectRaw`, etc.
102
- - Add a new query by parsing a raw SQL string and combining it.
103
-
104
- ### ValuesQuery
105
-
106
- Represents a SQL `VALUES` clause, such as `VALUES (1, 'a'), (2, 'b')`, which is used for inline data tables.
107
-
108
- **Key methods:**
109
- - (Primarily the constructor and tuple access)
110
- - This class can be used as a subquery source or wrapped with QueryNormalizer to convert it into a standard SELECT query.
76
+ - **ValuesQuery**
77
+ For inline tables like `VALUES (1, 'a'), (2, 'b')`.
78
+ - Can be used as a subquery or converted to SELECT with QueryNormalizer
111
79
 
112
80
  ---
113
81
 
114
- These classes are designed to be flexible and allow for robust construction, combination, and transformation of SQL queries. For further details, please refer to the source code.
82
+ ## AST Transformer Features
115
83
 
116
- ---
117
-
118
- ## 🛠️ Transformer Features (AST Transformers)
119
-
120
- rawsql-ts provides a suite of AST (Abstract Syntax Tree) transformers for advanced SQL analysis and manipulation. These utilities are intended for engineers who require programmatic extraction, analysis, or transformation of SQL query structures.
84
+ A suite of utilities for transforming and analyzing SQL ASTs.
121
85
 
122
86
  ### Main Transformers
123
87
 
124
88
  - **Formatter**
125
- Converts SQL ASTs into standardized SQL text, handling identifier escaping and formatting for all SQL components.
126
- **Note:** Output formatting is currently limited to single-line (compact) style.
127
-
89
+ Converts ASTs to formatted SQL strings. Handles identifier escaping. Output is currently single-line (compact) style.
128
90
  - **SelectValueCollector**
129
- Extracts all columns, including aliases and expressions, from SELECT clauses. Supports wildcard expansion (e.g., `*`, `table.*`) when table structure information is provided.
130
-
91
+ Extracts all columns, aliases, and expressions from SELECT clauses. Supports wildcard expansion (e.g., `*`, `table.*`) with TableColumnResolver.
131
92
  - **SelectableColumnCollector**
132
- Collects all column references in a query that can be included in a SELECT clause. Gathers all columns available from root FROM/JOIN sources.
133
-
93
+ Collects all columns available from root FROM/JOIN sources.
134
94
  - **TableSourceCollector**
135
- Collects all table and subquery sources from the FROM and JOIN clauses. This utility helps you extract all logical sources (tables, subqueries, CTEs, etc.) referenced in the root query, including their aliases. Useful for schema analysis, join logic, and query visualization.
136
-
95
+ Collects all table and subquery sources from FROM and JOIN clauses.
137
96
  - **CTECollector**
138
- Collects all Common Table Expressions (CTEs) from WITH clauses, subqueries, and UNION queries. Supports both nested and recursive CTEs.
139
-
97
+ Collects all CTEs from WITH clauses, subqueries, and UNION queries.
140
98
  - **UpstreamSelectQueryFinder**
141
- Identifies upstream SELECT queries that provide specific columns by traversing CTEs, subqueries, and UNION branches.
142
-
99
+ Finds upstream SELECT queries that provide specific columns by traversing CTEs, subqueries, and UNION branches.
143
100
  - **CTENormalizer**
144
- Consolidates all Common Table Expressions (CTEs) from any part of a query (including nested subqueries, JOINs, and UNIONs) into a single root-level WITH clause. If duplicate CTE names with different definitions are detected, an error is thrown to prevent ambiguity.
145
-
101
+ Consolidates all CTEs into a single root-level WITH clause. Throws an error if duplicate CTE names with different definitions are found.
146
102
  - **QueryNormalizer**
147
- Converts any SELECT query (including UNION, EXCEPT, or VALUES queries) into a standard SimpleSelectQuery format. For UNION or EXCEPT, the query is wrapped as a subquery with an alias (e.g., SELECT * FROM (...)). For VALUES, sequential column names (column1, column2, ...) are generated and the VALUES are wrapped in a subquery. This ensures a predictable query structure for downstream processing.
103
+ Converts any SELECT/UNION/VALUES query into a standard SimpleSelectQuery. Handles subquery wrapping and automatic column name generation.
104
+ - **TableColumnResolver**
105
+ A function type for resolving column names from a table name, mainly used for wildcard expansion (e.g., `table.*`). Used by analyzers like SelectValueCollector.
106
+ ```typescript
107
+ export type TableColumnResolver = (tableName: string) => string[];
108
+ ```
148
109
 
149
- ---
110
+ ---
150
111
 
151
- ### Example Usage
112
+ ## Usage Example
152
113
 
153
114
  ```typescript
115
+ import { TableColumnResolver } from "./src/transformers/TableColumnResolver";
154
116
  import { SelectQueryParser } from 'rawsql-ts';
155
117
  import { SelectableColumnCollector } from 'rawsql-ts/transformers/SelectableColumnCollector';
156
118
  import { SelectValueCollector } from 'rawsql-ts/transformers/SelectValueCollector';
157
119
  import { TableSourceCollector } from 'rawsql-ts/transformers/TableSourceCollector';
158
120
 
159
- const sql = `SELECT u.id, u.name FROM users u JOIN posts p ON u.id = p.user_id`;
121
+ // TableColumnResolver example
122
+ const resolver: TableColumnResolver = (tableName) => {
123
+ if (tableName === "users") return ["id", "name", "email"];
124
+ if (tableName === "posts") return ["id", "title", "content"];
125
+ return [];
126
+ };
127
+
128
+ const sql = `SELECT u.* FROM users u JOIN posts p ON u.id = p.user_id`;
160
129
  const query = SelectQueryParser.parse(sql);
161
130
 
162
- // Collects all selectable columns from the query (from FROM/JOIN sources)
131
+ // Wildcard expansion example
132
+ const selectValueCollector = new SelectValueCollector(resolver);
133
+ const selectValues = selectValueCollector.collect(query);
134
+ console.log(selectValues.map(val => val.alias || val.expression.toString()));
135
+
136
+ // Collect all selectable columns from FROM/JOIN sources
163
137
  const selectableColumnCollector = new SelectableColumnCollector();
164
138
  const selectableColumns = selectableColumnCollector.collect(query);
165
- // ["id", "name", "user_id", ...]
166
139
  console.log(selectableColumns.map(col => col.name));
167
140
 
168
- // Collects all values and aliases from the SELECT clause
169
- const selectValueCollector = new SelectValueCollector();
170
- const selectValues = selectValueCollector.collect(query);
171
- // ["id", "name"]
172
- console.log(selectValues.map(val => val.alias || val.expression.toString()));
173
-
174
- // Collects all table and subquery sources from the FROM/JOIN clauses
141
+ // Collect all table and subquery sources from FROM/JOIN clauses
175
142
  const tableSourceCollector = new TableSourceCollector();
176
143
  const sources = tableSourceCollector.collect(query);
177
- // ["u", "p"]
178
- console.log(sources.map(src => src.alias || src.name));
144
+ console.log(sources.map(src => src.alias || src.name));
179
145
  ```
180
146
 
181
147
  ---
182
148
 
183
- ## Practical Example: Table Join
149
+ ## Advanced Example: Table Join
184
150
 
185
- The following example demonstrates how to join two tables using rawsql-ts. It is not necessary to understand the internal structure of the SelectQuery class or manage alias names manually. By specifying the join key(s), the library automatically generates the ON clause and handles all aliasing and subquery details.
151
+ This example demonstrates how to join two tables using rawsql-ts. You do not need to understand the internal structure or manage aliases manually. By specifying the join key(s), the ON clause is generated automatically.
186
152
 
187
153
  ```typescript
188
- import { SelectQueryParser } from 'rawsql-ts';
189
- import { Formatter } from 'rawsql-ts';
154
+ import { SelectQueryParser, Formatter, SimpleSelectQuery } from 'rawsql-ts';
190
155
 
191
- // Parse two separate queries
192
- const userQuery = SelectQueryParser.parse('SELECT user_id, user_name FROM users');
193
- const postQuery = SelectQueryParser.parse('SELECT post_id, user_id, title FROM posts');
156
+ // Parse the base query
157
+ const query = SelectQueryParser.parse('SELECT u.user_id, u.name FROM users u') as SimpleSelectQuery;
194
158
 
195
- // Join the two queries using innerJoin
196
- // Provide the join key(s) as an array; the ON clause will be generated automatically.
197
- const joinedQuery = userQuery.innerJoin(postQuery, ['user_id']);
159
+ // Add LEFT JOIN using the leftJoinRaw method (join on user_id)
160
+ query.leftJoinRaw('orders', 'o', ['user_id']);
161
+
162
+ // Add WHERE clause
163
+ query.appendWhereRaw('o.order_id IS NULL');
198
164
 
199
- // Format the joined query back to SQL
200
165
  const formatter = new Formatter();
201
- const sql = formatter.format(joinedQuery);
202
- console.log(sql);
203
- // Output:
204
- // select "user_id", "user_name", "post_id", "title" from "users" inner join (select "post_id", "user_id", "title" from "posts") on "users"."user_id" = "posts"."user_id"
166
+ const formattedSql = formatter.format(query);
167
+
168
+ console.log(formattedSql);
169
+ // => select "u"."user_id", "u"."name" from "users" as "u" left join "orders" as "o" on "u"."user_id" = "o"."user_id" where "o"."order_id" is null
205
170
  ```
206
171
 
207
172
  **Key Points:**
208
- - It is not necessary to understand the internal implementation of SelectQuery to perform join operations.
209
- - Only the join key(s) (e.g., `['user_id']`) need to be specified. The ON clause is generated automatically.
210
- - Alias names and subquery handling are managed by the library, eliminating the need for manual intervention.
211
- - This approach enables straightforward joining of queries, even without detailed knowledge of the SQL structure or AST internals.
173
+ - No need to understand internal implementation or alias management
174
+ - Specify only the join key(s) (e.g., `['user_id']`); the ON clause is generated automatically
175
+ - Subqueries and aliases are handled automatically
176
+ - You can join queries without detailed knowledge of SQL structure or AST internals
212
177
 
213
178
  ---
214
179
 
215
- By utilizing these transformer utilities, you can perform advanced SQL analysis and manipulation with reliability and consistency.
216
-
217
180
  ## Benchmarks
218
181
 
219
- This project includes benchmarking functionality. To run benchmarks, execute:
182
+ This project includes a comprehensive benchmark suite to evaluate the performance of `rawsql-ts` in comparison with other popular libraries such as `node-sql-parser` and `sql-formatter`.
183
+
184
+ ### How to Run
220
185
 
221
186
  ```bash
222
187
  npm run benchmark
223
188
  ```
224
189
 
225
- ## Benchmark Details
190
+ ### Benchmark Details
226
191
 
227
- The benchmark suite evaluates the SQL parsing and formatting performance of `rawsql-ts` in comparison to popular libraries such as `sql-formatter` and `node-sql-parser`. Queries of varying complexity are tested:
192
+ The benchmark suite measures SQL parsing and formatting speed across queries of varying complexity:
228
193
 
229
- - **Tokens20**: Simple `SELECT` query with a basic `WHERE` condition (~20 tokens)
230
- - **Tokens70**: Medium complexity query with `JOIN`s and multiple conditions (~70 tokens)
231
- - **Tokens140**: Complex query with `CTE`s and aggregations (~140 tokens)
232
- - **Tokens230**: Highly complex query with multiple `CTE`s, subqueries, and window functions (~230 tokens)
194
+ - **Tokens20**: Simple SELECT with a basic WHERE clause (~20 tokens)
195
+ - **Tokens70**: Medium complexity query with JOINs and multiple conditions (~70 tokens)
196
+ - **Tokens140**: Complex query with CTEs and aggregations (~140 tokens)
197
+ - **Tokens230**: Highly complex query with multiple CTEs, subqueries, and window functions (~230 tokens)
233
198
 
234
- ## Benchmark Environment
199
+ ### Benchmark Environment
235
200
 
236
201
  ```
237
202
  benchmark.js v2.1.4
@@ -240,42 +205,46 @@ AMD Ryzen 7 7800X3D (8C/16T)
240
205
  Node.js v22.14.0
241
206
  ```
242
207
 
243
- ## Results
244
-
245
- ### Tokens20
246
- | Method | Mean | Error | StdDev |
247
- |---------------------------------- |-----------:|----------:|----------:|
248
- | rawsql-ts | 0.021 ms | 0.0044 ms | 0.0023 ms |
249
- | node-sql-parser | 0.169 ms | 0.0695 ms | 0.0355 ms |
250
- | sql-formatter | 0.208 ms | 0.0556 ms | 0.0284 ms |
251
-
252
- ### Tokens70
253
- | Method | Mean | Error | StdDev |
254
- |---------------------------------- |-----------:|----------:|----------:|
255
- | rawsql-ts | 0.057 ms | 0.0143 ms | 0.0073 ms |
256
- | node-sql-parser | 0.216 ms | 0.0780 ms | 0.0398 ms |
257
- | sql-formatter | 0.512 ms | 0.1251 ms | 0.0638 ms |
258
-
259
- ### Tokens140
260
- | Method | Mean | Error | StdDev |
261
- |---------------------------------- |-----------:|----------:|----------:|
262
- | rawsql-ts | 0.112 ms | 0.0236 ms | 0.0120 ms |
263
- | node-sql-parser | 0.404 ms | 0.0926 ms | 0.0472 ms |
264
- | sql-formatter | 1.004 ms | 0.3027 ms | 0.1545 ms |
265
-
266
- ### Tokens230
267
- | Method | Mean | Error | StdDev |
268
- |---------------------------------- |-----------:|----------:|----------:|
269
- | rawsql-ts | 0.182 ms | 0.0371 ms | 0.0189 ms |
270
- | node-sql-parser | 0.865 ms | 0.3325 ms | 0.1696 ms |
271
- | sql-formatter | 1.696 ms | 0.2754 ms | 0.1405 ms |
272
-
273
- ## Performance Summary
208
+ ### Results
209
+
210
+ #### Tokens20
211
+ | Method | Mean | Error | StdDev |
212
+ |------------------|----------:|----------:|----------:|
213
+ | rawsql-ts | 0.021 ms | 0.0044 ms | 0.0023 ms |
214
+ | node-sql-parser | 0.169 ms | 0.0695 ms | 0.0355 ms |
215
+ | sql-formatter | 0.208 ms | 0.0556 ms | 0.0284 ms |
216
+
217
+ #### Tokens70
218
+ | Method | Mean | Error | StdDev |
219
+ |------------------|----------:|----------:|----------:|
220
+ | rawsql-ts | 0.057 ms | 0.0143 ms | 0.0073 ms |
221
+ | node-sql-parser | 0.216 ms | 0.0780 ms | 0.0398 ms |
222
+ | sql-formatter | 0.512 ms | 0.1251 ms | 0.0638 ms |
223
+
224
+ #### Tokens140
225
+ | Method | Mean | Error | StdDev |
226
+ |------------------|----------:|----------:|----------:|
227
+ | rawsql-ts | 0.112 ms | 0.0236 ms | 0.0120 ms |
228
+ | node-sql-parser | 0.404 ms | 0.0926 ms | 0.0472 ms |
229
+ | sql-formatter | 1.004 ms | 0.3027 ms | 0.1545 ms |
230
+
231
+ #### Tokens230
232
+ | Method | Mean | Error | StdDev |
233
+ |------------------|----------:|----------:|----------:|
234
+ | rawsql-ts | 0.182 ms | 0.0371 ms | 0.0189 ms |
235
+ | node-sql-parser | 0.865 ms | 0.3325 ms | 0.1696 ms |
236
+ | sql-formatter | 1.696 ms | 0.2754 ms | 0.1405 ms |
237
+
238
+ ### Performance Summary
274
239
 
275
240
  - `rawsql-ts` consistently outperforms both `node-sql-parser` and `sql-formatter` in all tested scenarios.
276
241
  - Approximately 4x faster than `node-sql-parser`.
277
- - Approximately 9-10x faster than `sql-formatter`.
278
- - Maintains comprehensive SQL parsing capabilities while delivering significant performance improvements.
242
+ - Approximately 910x faster than `sql-formatter`.
243
+ - Maintains high performance even with complex SQL while providing comprehensive features.
244
+
245
+ > **Note:** These benchmarks are based on a specific hardware and software environment. Actual performance may vary depending on system configuration and query complexity.
246
+
247
+ ---
279
248
 
280
- > **Note:** These benchmarks are based on a specific hardware and software environment. Actual performance may vary depending on system configuration and workload.
249
+ Feel free to try rawsql-ts! Questions, requests, and bug reports are always welcome.
281
250
 
package/dist/index.d.ts CHANGED
@@ -9,5 +9,6 @@ export * from './transformers/Formatter';
9
9
  export * from './transformers/QueryConverter';
10
10
  export * from './transformers/SelectValueCollector';
11
11
  export * from './transformers/SelectableColumnCollector';
12
+ export * from './transformers/TableColumnResolver';
12
13
  export * from './transformers/TableSourceCollector';
13
14
  export * from './transformers/UpstreamSelectQueryFinder';
package/dist/index.js CHANGED
@@ -26,6 +26,7 @@ __exportStar(require("./transformers/Formatter"), exports);
26
26
  __exportStar(require("./transformers/QueryConverter"), exports);
27
27
  __exportStar(require("./transformers/SelectValueCollector"), exports);
28
28
  __exportStar(require("./transformers/SelectableColumnCollector"), exports);
29
+ __exportStar(require("./transformers/TableColumnResolver"), exports);
29
30
  __exportStar(require("./transformers/TableSourceCollector"), exports);
30
31
  __exportStar(require("./transformers/UpstreamSelectQueryFinder"), exports);
31
32
  // Add more exports here if you want to expose additional public API
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;AAE5C,6DAA2C;AAC3C,uDAAqC;AACrC,0DAAwC;AACxC,uDAAqC;AAErC,8DAA4C;AAC5C,+DAA6C;AAC7C,2DAAyC;AACzC,gEAA8C;AAC9C,sEAAoD;AACpD,2EAAyD;AACzD,sEAAoD;AACpD,2EAAyD;AACzD,oEAAoE"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,oCAAoC;AACpC,8DAA4C;AAE5C,6DAA2C;AAC3C,uDAAqC;AACrC,0DAAwC;AACxC,uDAAqC;AAErC,8DAA4C;AAC5C,+DAA6C;AAC7C,2DAAyC;AACzC,gEAA8C;AAC9C,sEAAoD;AACpD,2EAAyD;AACzD,qEAAmD;AACnD,sEAAoD;AACpD,2EAAyD;AACzD,oEAAoE"}
@@ -1,10 +1,7 @@
1
1
  import { CommonTable } from "../models/Clause";
2
2
  import { SqlComponent, SqlComponentVisitor } from "../models/SqlComponent";
3
3
  import { ValueComponent } from "../models/ValueComponent";
4
- /**
5
- * Type definition for a function that resolves column names from a table name
6
- */
7
- export type TableColumnResolver = (tableName: string) => string[];
4
+ import { TableColumnResolver } from "./TableColumnResolver";
8
5
  /**
9
6
  * A visitor that collects all SelectItem instances from a SQL query structure.
10
7
  * This visitor scans through select clauses and collects all the SelectItem objects.
@@ -60,3 +57,4 @@ export declare class SelectValueCollector implements SqlComponentVisitor<void> {
60
57
  private visitFromClause;
61
58
  private addSelectValueAsUnique;
62
59
  }
60
+ export { TableColumnResolver };
@@ -1 +1 @@
1
- {"version":3,"file":"SelectValueCollector.js","sourceRoot":"","sources":["../../src/transformers/SelectValueCollector.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SelectValueCollector.js","sourceRoot":"","sources":["../../src/transformers/SelectValueCollector.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Type definition for a function that resolves column names from a table name.
3
+ *
4
+ * This is used to provide table structure information (column names) for physical tables
5
+ * when expanding wildcard selectors (e.g., table.*) in SQL query analysis.
6
+ *
7
+ * @param tableName The name of the table to resolve columns for.
8
+ * @returns An array of column names (strings) for the specified table.
9
+ */
10
+ export type TableColumnResolver = (tableName: string) => string[];
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=TableColumnResolver.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TableColumnResolver.js","sourceRoot":"","sources":["../../src/transformers/TableColumnResolver.ts"],"names":[],"mappings":""}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "rawsql-ts",
3
- "version": "0.1.0-beta.10",
3
+ "version": "0.1.0-beta.11",
4
4
  "description": "[beta]High-performance SQL parser and AST analyzer written in TypeScript. Provides fast parsing and advanced transformation capabilities.",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -21,6 +21,10 @@
21
21
  ],
22
22
  "author": "msugiura",
23
23
  "license": "MIT",
24
+ "repository": {
25
+ "type": "git",
26
+ "url": "https://github.com/mk3008/rawsql-ts.git"
27
+ },
24
28
  "devDependencies": {
25
29
  "@types/benchmark": "^2.1.5",
26
30
  "@types/node": "^22.13.10",
@@ -33,6 +37,7 @@
33
37
  "eslint-plugin-prettier": "^5.2.3",
34
38
  "microtime": "^3.1.1",
35
39
  "node-sql-parser": "^5.3.8",
40
+ "rawsql-ts": "^0.1.0-beta.10",
36
41
  "sql-formatter": "^15.5.2",
37
42
  "ts-node": "^10.9.2",
38
43
  "typescript": "^5.8.2",