sqlparser-rs 0.60.0-rc4 → 0.60.2
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 +25 -25
- package/dist/cjs/dialects.js +12 -1
- package/dist/cjs/dialects.js.map +1 -1
- package/dist/cjs/index.js +26 -26
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/parser.js +40 -113
- package/dist/cjs/parser.js.map +1 -1
- package/dist/cjs/types/index.js +2 -2
- package/dist/cjs/types/index.js.map +1 -1
- package/dist/esm/dialects.js +10 -0
- package/dist/esm/dialects.js.map +1 -1
- package/dist/esm/index.js +8 -8
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/package.json +1 -0
- package/dist/esm/parser.js +34 -73
- package/dist/esm/parser.js.map +1 -1
- package/dist/esm/types/index.js +2 -2
- package/dist/esm/types/index.js.map +1 -1
- package/dist/types/dialects.d.ts +7 -1
- package/dist/types/dialects.d.ts.map +1 -1
- package/dist/types/index.d.ts +10 -10
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/parser.d.ts +16 -30
- package/dist/types/parser.d.ts.map +1 -1
- package/dist/types/types/index.d.ts +2 -2
- package/dist/types/types/index.d.ts.map +1 -1
- package/package.json +15 -15
- package/wasm/README.md +25 -25
- package/wasm/package.json +1 -1
- package/wasm/sqlparser_rs_wasm_bg.wasm +0 -0
package/dist/esm/index.js
CHANGED
|
@@ -9,10 +9,10 @@
|
|
|
9
9
|
* import { Parser, GenericDialect, PostgreSqlDialect } from 'sqlparser-rs';
|
|
10
10
|
*
|
|
11
11
|
* // Simple parsing
|
|
12
|
-
* const statements =
|
|
12
|
+
* const statements = Parser.parse('SELECT * FROM users', new GenericDialect());
|
|
13
13
|
*
|
|
14
14
|
* // With specific dialect
|
|
15
|
-
* const pgStatements =
|
|
15
|
+
* const pgStatements = Parser.parse(
|
|
16
16
|
* 'SELECT * FROM users WHERE id = $1',
|
|
17
17
|
* new PostgreSqlDialect()
|
|
18
18
|
* );
|
|
@@ -22,15 +22,15 @@
|
|
|
22
22
|
* .withRecursionLimit(50)
|
|
23
23
|
* .withOptions({ trailingCommas: true });
|
|
24
24
|
*
|
|
25
|
-
* const ast =
|
|
25
|
+
* const ast = parser.parse('SELECT * FROM users');
|
|
26
26
|
*
|
|
27
27
|
* // Format SQL
|
|
28
|
-
* const formatted =
|
|
28
|
+
* const formatted = Parser.format('select * from users', new GenericDialect());
|
|
29
29
|
* // Returns: "SELECT * FROM users"
|
|
30
30
|
*
|
|
31
31
|
* // Validate SQL
|
|
32
32
|
* try {
|
|
33
|
-
*
|
|
33
|
+
* Parser.validate('SELECT * FRO users', new GenericDialect());
|
|
34
34
|
* } catch (e) {
|
|
35
35
|
* console.log('Invalid SQL:', e.message);
|
|
36
36
|
* }
|
|
@@ -39,9 +39,9 @@
|
|
|
39
39
|
* @packageDocumentation
|
|
40
40
|
*/
|
|
41
41
|
// Parser
|
|
42
|
-
export { Parser
|
|
42
|
+
export { Parser } from './parser.js';
|
|
43
43
|
// Dialects
|
|
44
|
-
export { GenericDialect, AnsiDialect, MySqlDialect, PostgreSqlDialect, SQLiteDialect, SnowflakeDialect, RedshiftDialect, MsSqlDialect, ClickHouseDialect, BigQueryDialect, DuckDbDialect, DatabricksDialect, HiveDialect, dialectFromString, SUPPORTED_DIALECTS, } from './dialects';
|
|
44
|
+
export { GenericDialect, AnsiDialect, MySqlDialect, PostgreSqlDialect, SQLiteDialect, SnowflakeDialect, RedshiftDialect, MsSqlDialect, ClickHouseDialect, BigQueryDialect, DuckDbDialect, DatabricksDialect, HiveDialect, OracleDialect, dialectFromString, SUPPORTED_DIALECTS, } from './dialects.js';
|
|
45
45
|
// Types
|
|
46
|
-
export * from './types';
|
|
46
|
+
export * from './types/index.js';
|
|
47
47
|
//# sourceMappingURL=index.js.map
|
package/dist/esm/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AAEH,SAAS;AACT,OAAO,EAAE,MAAM,EAAE,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AAEH,SAAS;AACT,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAGrC,WAAW;AACX,OAAO,EACL,cAAc,EACd,WAAW,EACX,YAAY,EACZ,iBAAiB,EACjB,aAAa,EACb,gBAAgB,EAChB,eAAe,EACf,YAAY,EACZ,iBAAiB,EACjB,eAAe,EACf,aAAa,EACb,iBAAiB,EACjB,WAAW,EACX,aAAa,EACb,iBAAiB,EACjB,kBAAkB,GACnB,MAAM,eAAe,CAAC;AAGvB,QAAQ;AACR,cAAc,kBAAkB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"type":"module"}
|
package/dist/esm/parser.js
CHANGED
|
@@ -1,49 +1,24 @@
|
|
|
1
|
-
import { GenericDialect } from './dialects';
|
|
2
|
-
import { ParserError, WasmInitError } from './types/errors';
|
|
3
|
-
//
|
|
1
|
+
import { GenericDialect } from './dialects.js';
|
|
2
|
+
import { ParserError, WasmInitError } from './types/errors.js';
|
|
3
|
+
// Lazily loaded WASM module - loaded synchronously on first access
|
|
4
4
|
let wasmModule = null;
|
|
5
|
-
let wasmInitPromise = null;
|
|
6
5
|
/**
|
|
7
|
-
*
|
|
8
|
-
* This is called automatically when needed, but can be called manually for eager loading
|
|
6
|
+
* Get the WASM module (loads synchronously on first access)
|
|
9
7
|
*/
|
|
10
|
-
|
|
11
|
-
await getWasmModule();
|
|
12
|
-
}
|
|
13
|
-
/**
|
|
14
|
-
* Get or initialize the WASM module
|
|
15
|
-
*/
|
|
16
|
-
async function getWasmModule() {
|
|
8
|
+
function getWasmModule() {
|
|
17
9
|
if (wasmModule) {
|
|
18
10
|
return wasmModule;
|
|
19
11
|
}
|
|
20
|
-
|
|
21
|
-
|
|
12
|
+
try {
|
|
13
|
+
// Use require() for synchronous loading
|
|
14
|
+
// The path is relative to the compiled output in dist/cjs or dist/esm
|
|
15
|
+
// eslint-disable-next-line @typescript-eslint/no-require-imports
|
|
16
|
+
wasmModule = require('../../wasm/sqlparser_rs_wasm.js');
|
|
17
|
+
return wasmModule;
|
|
22
18
|
}
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
// Try to load the WASM module
|
|
26
|
-
// Use dynamic path to avoid TypeScript path resolution issues
|
|
27
|
-
// The path is relative to the compiled output in dist/cjs or dist/esm
|
|
28
|
-
const wasmPath = '../../wasm/sqlparser_rs_wasm.js';
|
|
29
|
-
const wasm = await import(/* webpackIgnore: true */ wasmPath);
|
|
30
|
-
wasmModule = wasm;
|
|
31
|
-
return wasmModule;
|
|
32
|
-
}
|
|
33
|
-
catch (error) {
|
|
34
|
-
throw new WasmInitError(`Failed to initialize WASM module: ${error instanceof Error ? error.message : String(error)}`);
|
|
35
|
-
}
|
|
36
|
-
})();
|
|
37
|
-
return wasmInitPromise;
|
|
38
|
-
}
|
|
39
|
-
/**
|
|
40
|
-
* Get the WASM module synchronously (throws if not initialized)
|
|
41
|
-
*/
|
|
42
|
-
function getWasmModuleSync() {
|
|
43
|
-
if (!wasmModule) {
|
|
44
|
-
throw new WasmInitError('WASM module not initialized. Call initWasm() first or use async methods.');
|
|
19
|
+
catch (error) {
|
|
20
|
+
throw new WasmInitError(`Failed to load WASM module: ${error instanceof Error ? error.message : String(error)}`);
|
|
45
21
|
}
|
|
46
|
-
return wasmModule;
|
|
47
22
|
}
|
|
48
23
|
/**
|
|
49
24
|
* SQL Parser
|
|
@@ -55,14 +30,14 @@ function getWasmModuleSync() {
|
|
|
55
30
|
* import { Parser, PostgreSqlDialect } from 'sqlparser-rs';
|
|
56
31
|
*
|
|
57
32
|
* // Simple parsing
|
|
58
|
-
* const statements =
|
|
33
|
+
* const statements = Parser.parse('SELECT * FROM users', new PostgreSqlDialect());
|
|
59
34
|
*
|
|
60
35
|
* // With builder pattern
|
|
61
36
|
* const parser = new Parser(new PostgreSqlDialect())
|
|
62
37
|
* .withRecursionLimit(50)
|
|
63
38
|
* .withOptions({ trailingCommas: true });
|
|
64
39
|
*
|
|
65
|
-
* const ast =
|
|
40
|
+
* const ast = parser.parse('SELECT * FROM users');
|
|
66
41
|
* ```
|
|
67
42
|
*/
|
|
68
43
|
export class Parser {
|
|
@@ -96,27 +71,13 @@ export class Parser {
|
|
|
96
71
|
return this;
|
|
97
72
|
}
|
|
98
73
|
/**
|
|
99
|
-
* Parse SQL statements
|
|
74
|
+
* Parse SQL statements
|
|
100
75
|
*
|
|
101
76
|
* @param sql - SQL string to parse
|
|
102
77
|
* @returns Array of parsed statements
|
|
103
78
|
*/
|
|
104
|
-
|
|
105
|
-
const wasm =
|
|
106
|
-
return this.parseWithWasm(wasm, sql);
|
|
107
|
-
}
|
|
108
|
-
/**
|
|
109
|
-
* Parse SQL statements synchronously
|
|
110
|
-
* Requires WASM module to be initialized first via initWasm()
|
|
111
|
-
*
|
|
112
|
-
* @param sql - SQL string to parse
|
|
113
|
-
* @returns Array of parsed statements
|
|
114
|
-
*/
|
|
115
|
-
parseSync(sql) {
|
|
116
|
-
const wasm = getWasmModuleSync();
|
|
117
|
-
return this.parseWithWasm(wasm, sql);
|
|
118
|
-
}
|
|
119
|
-
parseWithWasm(wasm, sql) {
|
|
79
|
+
parse(sql) {
|
|
80
|
+
const wasm = getWasmModule();
|
|
120
81
|
try {
|
|
121
82
|
const hasOptions = Object.keys(this.options).length > 0;
|
|
122
83
|
if (hasOptions) {
|
|
@@ -136,7 +97,7 @@ export class Parser {
|
|
|
136
97
|
// Static methods for simple one-off parsing
|
|
137
98
|
// ============================================================================
|
|
138
99
|
/**
|
|
139
|
-
* Parse SQL statements
|
|
100
|
+
* Parse SQL statements
|
|
140
101
|
*
|
|
141
102
|
* @param sql - SQL string to parse
|
|
142
103
|
* @param dialect - SQL dialect to use
|
|
@@ -144,22 +105,22 @@ export class Parser {
|
|
|
144
105
|
*
|
|
145
106
|
* @example
|
|
146
107
|
* ```typescript
|
|
147
|
-
* const statements =
|
|
108
|
+
* const statements = Parser.parse('SELECT 1', new GenericDialect());
|
|
148
109
|
* ```
|
|
149
110
|
*/
|
|
150
|
-
static
|
|
111
|
+
static parse(sql, dialect = new GenericDialect()) {
|
|
151
112
|
const parser = new Parser(dialect);
|
|
152
|
-
return parser.
|
|
113
|
+
return parser.parse(sql);
|
|
153
114
|
}
|
|
154
115
|
/**
|
|
155
|
-
* Parse SQL and return the AST as a JSON string
|
|
116
|
+
* Parse SQL and return the AST as a JSON string
|
|
156
117
|
*
|
|
157
118
|
* @param sql - SQL string to parse
|
|
158
119
|
* @param dialect - SQL dialect to use
|
|
159
120
|
* @returns JSON string representation of the AST
|
|
160
121
|
*/
|
|
161
|
-
static
|
|
162
|
-
const wasm =
|
|
122
|
+
static parseToJson(sql, dialect = new GenericDialect()) {
|
|
123
|
+
const wasm = getWasmModule();
|
|
163
124
|
try {
|
|
164
125
|
return wasm.parse_sql_to_json_string(dialect.name, sql);
|
|
165
126
|
}
|
|
@@ -168,14 +129,14 @@ export class Parser {
|
|
|
168
129
|
}
|
|
169
130
|
}
|
|
170
131
|
/**
|
|
171
|
-
* Parse SQL and return a formatted string representation
|
|
132
|
+
* Parse SQL and return a formatted string representation
|
|
172
133
|
*
|
|
173
134
|
* @param sql - SQL string to parse
|
|
174
135
|
* @param dialect - SQL dialect to use
|
|
175
136
|
* @returns String representation of the parsed SQL
|
|
176
137
|
*/
|
|
177
|
-
static
|
|
178
|
-
const wasm =
|
|
138
|
+
static parseToString(sql, dialect = new GenericDialect()) {
|
|
139
|
+
const wasm = getWasmModule();
|
|
179
140
|
try {
|
|
180
141
|
return wasm.parse_sql_to_string(dialect.name, sql);
|
|
181
142
|
}
|
|
@@ -190,8 +151,8 @@ export class Parser {
|
|
|
190
151
|
* @param dialect - SQL dialect to use
|
|
191
152
|
* @returns Formatted SQL string
|
|
192
153
|
*/
|
|
193
|
-
static
|
|
194
|
-
const wasm =
|
|
154
|
+
static format(sql, dialect = new GenericDialect()) {
|
|
155
|
+
const wasm = getWasmModule();
|
|
195
156
|
try {
|
|
196
157
|
return wasm.format_sql(dialect.name, sql);
|
|
197
158
|
}
|
|
@@ -206,8 +167,8 @@ export class Parser {
|
|
|
206
167
|
* @param dialect - SQL dialect to use
|
|
207
168
|
* @returns true if valid, throws ParserError if invalid
|
|
208
169
|
*/
|
|
209
|
-
static
|
|
210
|
-
const wasm =
|
|
170
|
+
static validate(sql, dialect = new GenericDialect()) {
|
|
171
|
+
const wasm = getWasmModule();
|
|
211
172
|
try {
|
|
212
173
|
return wasm.validate_sql(dialect.name, sql);
|
|
213
174
|
}
|
|
@@ -218,8 +179,8 @@ export class Parser {
|
|
|
218
179
|
/**
|
|
219
180
|
* Get the list of supported dialect names
|
|
220
181
|
*/
|
|
221
|
-
static
|
|
222
|
-
const wasm =
|
|
182
|
+
static getSupportedDialects() {
|
|
183
|
+
const wasm = getWasmModule();
|
|
223
184
|
return wasm.get_supported_dialects();
|
|
224
185
|
}
|
|
225
186
|
}
|
package/dist/esm/parser.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parser.js","sourceRoot":"","sources":["../../src/parser.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"parser.js","sourceRoot":"","sources":["../../src/parser.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AA6B/D,mEAAmE;AACnE,IAAI,UAAU,GAAsB,IAAI,CAAC;AAEzC;;GAEG;AACH,SAAS,aAAa;IACpB,IAAI,UAAU,EAAE,CAAC;QACf,OAAO,UAAU,CAAC;IACpB,CAAC;IAED,IAAI,CAAC;QACH,wCAAwC;QACxC,sEAAsE;QACtE,iEAAiE;QACjE,UAAU,GAAG,OAAO,CAAC,iCAAiC,CAAe,CAAC;QACtE,OAAO,UAAU,CAAC;IACpB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAI,aAAa,CACrB,+BAA+B,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CACxF,CAAC;IACJ,CAAC;AACH,CAAC;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,OAAO,MAAM;IAIjB;;;;OAIG;IACH,YAAY,UAAmB,IAAI,cAAc,EAAE;QACjD,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;IACpB,CAAC;IAED;;;;;OAKG;IACH,kBAAkB,CAAC,KAAa;QAC9B,IAAI,CAAC,OAAO,CAAC,cAAc,GAAG,KAAK,CAAC;QACpC,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;;OAKG;IACH,WAAW,CAAC,OAAsB;QAChC,IAAI,CAAC,OAAO,GAAG,EAAE,GAAG,IAAI,CAAC,OAAO,EAAE,GAAG,OAAO,EAAE,CAAC;QAC/C,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,GAAW;QACf,MAAM,IAAI,GAAG,aAAa,EAAE,CAAC;QAC7B,IAAI,CAAC;YACH,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;YAExD,IAAI,UAAU,EAAE,CAAC;gBACf,MAAM,MAAM,GAAG,IAAI,CAAC,sBAAsB,CACxC,IAAI,CAAC,OAAO,CAAC,IAAI,EACjB,GAAG,EACH,IAAI,CAAC,OAAO,CACb,CAAC;gBACF,OAAO,MAAqB,CAAC;YAC/B,CAAC;iBAAM,CAAC;gBACN,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;gBACtD,OAAO,MAAqB,CAAC;YAC/B,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,WAAW,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QACzC,CAAC;IACH,CAAC;IAED,+EAA+E;IAC/E,4CAA4C;IAC5C,+EAA+E;IAE/E;;;;;;;;;;;OAWG;IACH,MAAM,CAAC,KAAK,CAAC,GAAW,EAAE,UAAmB,IAAI,cAAc,EAAE;QAC/D,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC,OAAO,CAAC,CAAC;QACnC,OAAO,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC3B,CAAC;IAED;;;;;;OAMG;IACH,MAAM,CAAC,WAAW,CAAC,GAAW,EAAE,UAAmB,IAAI,cAAc,EAAE;QACrE,MAAM,IAAI,GAAG,aAAa,EAAE,CAAC;QAC7B,IAAI,CAAC;YACH,OAAO,IAAI,CAAC,wBAAwB,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QAC1D,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,WAAW,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QACzC,CAAC;IACH,CAAC;IAED;;;;;;OAMG;IACH,MAAM,CAAC,aAAa,CAAC,GAAW,EAAE,UAAmB,IAAI,cAAc,EAAE;QACvE,MAAM,IAAI,GAAG,aAAa,EAAE,CAAC;QAC7B,IAAI,CAAC;YACH,OAAO,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QACrD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,WAAW,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QACzC,CAAC;IACH,CAAC;IAED;;;;;;OAMG;IACH,MAAM,CAAC,MAAM,CAAC,GAAW,EAAE,UAAmB,IAAI,cAAc,EAAE;QAChE,MAAM,IAAI,GAAG,aAAa,EAAE,CAAC;QAC7B,IAAI,CAAC;YACH,OAAO,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QAC5C,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,WAAW,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QACzC,CAAC;IACH,CAAC;IAED;;;;;;OAMG;IACH,MAAM,CAAC,QAAQ,CAAC,GAAW,EAAE,UAAmB,IAAI,cAAc,EAAE;QAClE,MAAM,IAAI,GAAG,aAAa,EAAE,CAAC;QAC7B,IAAI,CAAC;YACH,OAAO,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QAC9C,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,WAAW,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QACzC,CAAC;IACH,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,oBAAoB;QACzB,MAAM,IAAI,GAAG,aAAa,EAAE,CAAC;QAC7B,OAAO,IAAI,CAAC,sBAAsB,EAAE,CAAC;IACvC,CAAC;CACF"}
|
package/dist/esm/types/index.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export * from './ast';
|
|
2
|
-
export * from './errors';
|
|
1
|
+
export * from './ast.js';
|
|
2
|
+
export * from './errors.js';
|
|
3
3
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/types/index.ts"],"names":[],"mappings":"AAAA,cAAc,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/types/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,aAAa,CAAC"}
|
package/dist/types/dialects.d.ts
CHANGED
|
@@ -89,10 +89,16 @@ export declare class DatabricksDialect implements Dialect {
|
|
|
89
89
|
export declare class HiveDialect implements Dialect {
|
|
90
90
|
readonly name = "hive";
|
|
91
91
|
}
|
|
92
|
+
/**
|
|
93
|
+
* Oracle dialect
|
|
94
|
+
*/
|
|
95
|
+
export declare class OracleDialect implements Dialect {
|
|
96
|
+
readonly name = "oracle";
|
|
97
|
+
}
|
|
92
98
|
/**
|
|
93
99
|
* All supported dialect names
|
|
94
100
|
*/
|
|
95
|
-
export declare const SUPPORTED_DIALECTS: readonly ["generic", "ansi", "mysql", "postgresql", "sqlite", "snowflake", "redshift", "mssql", "clickhouse", "bigquery", "duckdb", "databricks", "hive"];
|
|
101
|
+
export declare const SUPPORTED_DIALECTS: readonly ["generic", "ansi", "mysql", "postgresql", "sqlite", "snowflake", "redshift", "mssql", "clickhouse", "bigquery", "duckdb", "databricks", "hive", "oracle"];
|
|
96
102
|
export type DialectName = (typeof SUPPORTED_DIALECTS)[number];
|
|
97
103
|
/**
|
|
98
104
|
* Create a dialect instance from a string name
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dialects.d.ts","sourceRoot":"","sources":["../../src/dialects.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;GAEG;AACH,MAAM,WAAW,OAAO;IACtB,+DAA+D;IAC/D,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB;AAED;;GAEG;AACH,qBAAa,cAAe,YAAW,OAAO;IAC5C,QAAQ,CAAC,IAAI,aAAa;CAC3B;AAED;;GAEG;AACH,qBAAa,WAAY,YAAW,OAAO;IACzC,QAAQ,CAAC,IAAI,UAAU;CACxB;AAED;;GAEG;AACH,qBAAa,YAAa,YAAW,OAAO;IAC1C,QAAQ,CAAC,IAAI,WAAW;CACzB;AAED;;GAEG;AACH,qBAAa,iBAAkB,YAAW,OAAO;IAC/C,QAAQ,CAAC,IAAI,gBAAgB;CAC9B;AAED;;GAEG;AACH,qBAAa,aAAc,YAAW,OAAO;IAC3C,QAAQ,CAAC,IAAI,YAAY;CAC1B;AAED;;GAEG;AACH,qBAAa,gBAAiB,YAAW,OAAO;IAC9C,QAAQ,CAAC,IAAI,eAAe;CAC7B;AAED;;GAEG;AACH,qBAAa,eAAgB,YAAW,OAAO;IAC7C,QAAQ,CAAC,IAAI,cAAc;CAC5B;AAED;;GAEG;AACH,qBAAa,YAAa,YAAW,OAAO;IAC1C,QAAQ,CAAC,IAAI,WAAW;CACzB;AAED;;GAEG;AACH,qBAAa,iBAAkB,YAAW,OAAO;IAC/C,QAAQ,CAAC,IAAI,gBAAgB;CAC9B;AAED;;GAEG;AACH,qBAAa,eAAgB,YAAW,OAAO;IAC7C,QAAQ,CAAC,IAAI,cAAc;CAC5B;AAED;;GAEG;AACH,qBAAa,aAAc,YAAW,OAAO;IAC3C,QAAQ,CAAC,IAAI,YAAY;CAC1B;AAED;;GAEG;AACH,qBAAa,iBAAkB,YAAW,OAAO;IAC/C,QAAQ,CAAC,IAAI,gBAAgB;CAC9B;AAED;;GAEG;AACH,qBAAa,WAAY,YAAW,OAAO;IACzC,QAAQ,CAAC,IAAI,UAAU;CACxB;AAED;;GAEG;AACH,eAAO,MAAM,kBAAkB,
|
|
1
|
+
{"version":3,"file":"dialects.d.ts","sourceRoot":"","sources":["../../src/dialects.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;GAEG;AACH,MAAM,WAAW,OAAO;IACtB,+DAA+D;IAC/D,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB;AAED;;GAEG;AACH,qBAAa,cAAe,YAAW,OAAO;IAC5C,QAAQ,CAAC,IAAI,aAAa;CAC3B;AAED;;GAEG;AACH,qBAAa,WAAY,YAAW,OAAO;IACzC,QAAQ,CAAC,IAAI,UAAU;CACxB;AAED;;GAEG;AACH,qBAAa,YAAa,YAAW,OAAO;IAC1C,QAAQ,CAAC,IAAI,WAAW;CACzB;AAED;;GAEG;AACH,qBAAa,iBAAkB,YAAW,OAAO;IAC/C,QAAQ,CAAC,IAAI,gBAAgB;CAC9B;AAED;;GAEG;AACH,qBAAa,aAAc,YAAW,OAAO;IAC3C,QAAQ,CAAC,IAAI,YAAY;CAC1B;AAED;;GAEG;AACH,qBAAa,gBAAiB,YAAW,OAAO;IAC9C,QAAQ,CAAC,IAAI,eAAe;CAC7B;AAED;;GAEG;AACH,qBAAa,eAAgB,YAAW,OAAO;IAC7C,QAAQ,CAAC,IAAI,cAAc;CAC5B;AAED;;GAEG;AACH,qBAAa,YAAa,YAAW,OAAO;IAC1C,QAAQ,CAAC,IAAI,WAAW;CACzB;AAED;;GAEG;AACH,qBAAa,iBAAkB,YAAW,OAAO;IAC/C,QAAQ,CAAC,IAAI,gBAAgB;CAC9B;AAED;;GAEG;AACH,qBAAa,eAAgB,YAAW,OAAO;IAC7C,QAAQ,CAAC,IAAI,cAAc;CAC5B;AAED;;GAEG;AACH,qBAAa,aAAc,YAAW,OAAO;IAC3C,QAAQ,CAAC,IAAI,YAAY;CAC1B;AAED;;GAEG;AACH,qBAAa,iBAAkB,YAAW,OAAO;IAC/C,QAAQ,CAAC,IAAI,gBAAgB;CAC9B;AAED;;GAEG;AACH,qBAAa,WAAY,YAAW,OAAO;IACzC,QAAQ,CAAC,IAAI,UAAU;CACxB;AAED;;GAEG;AACH,qBAAa,aAAc,YAAW,OAAO;IAC3C,QAAQ,CAAC,IAAI,YAAY;CAC1B;AAED;;GAEG;AACH,eAAO,MAAM,kBAAkB,qKAerB,CAAC;AAEX,MAAM,MAAM,WAAW,GAAG,CAAC,OAAO,kBAAkB,CAAC,CAAC,MAAM,CAAC,CAAC;AAsB9D;;;;;;;;;;;;;GAaG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS,CAenE"}
|
package/dist/types/index.d.ts
CHANGED
|
@@ -9,10 +9,10 @@
|
|
|
9
9
|
* import { Parser, GenericDialect, PostgreSqlDialect } from 'sqlparser-rs';
|
|
10
10
|
*
|
|
11
11
|
* // Simple parsing
|
|
12
|
-
* const statements =
|
|
12
|
+
* const statements = Parser.parse('SELECT * FROM users', new GenericDialect());
|
|
13
13
|
*
|
|
14
14
|
* // With specific dialect
|
|
15
|
-
* const pgStatements =
|
|
15
|
+
* const pgStatements = Parser.parse(
|
|
16
16
|
* 'SELECT * FROM users WHERE id = $1',
|
|
17
17
|
* new PostgreSqlDialect()
|
|
18
18
|
* );
|
|
@@ -22,15 +22,15 @@
|
|
|
22
22
|
* .withRecursionLimit(50)
|
|
23
23
|
* .withOptions({ trailingCommas: true });
|
|
24
24
|
*
|
|
25
|
-
* const ast =
|
|
25
|
+
* const ast = parser.parse('SELECT * FROM users');
|
|
26
26
|
*
|
|
27
27
|
* // Format SQL
|
|
28
|
-
* const formatted =
|
|
28
|
+
* const formatted = Parser.format('select * from users', new GenericDialect());
|
|
29
29
|
* // Returns: "SELECT * FROM users"
|
|
30
30
|
*
|
|
31
31
|
* // Validate SQL
|
|
32
32
|
* try {
|
|
33
|
-
*
|
|
33
|
+
* Parser.validate('SELECT * FRO users', new GenericDialect());
|
|
34
34
|
* } catch (e) {
|
|
35
35
|
* console.log('Invalid SQL:', e.message);
|
|
36
36
|
* }
|
|
@@ -38,9 +38,9 @@
|
|
|
38
38
|
*
|
|
39
39
|
* @packageDocumentation
|
|
40
40
|
*/
|
|
41
|
-
export { Parser
|
|
42
|
-
export type { ParserOptions } from './parser';
|
|
43
|
-
export { GenericDialect, AnsiDialect, MySqlDialect, PostgreSqlDialect, SQLiteDialect, SnowflakeDialect, RedshiftDialect, MsSqlDialect, ClickHouseDialect, BigQueryDialect, DuckDbDialect, DatabricksDialect, HiveDialect, dialectFromString, SUPPORTED_DIALECTS, } from './dialects';
|
|
44
|
-
export type { Dialect, DialectName } from './dialects';
|
|
45
|
-
export * from './types';
|
|
41
|
+
export { Parser } from './parser.js';
|
|
42
|
+
export type { ParserOptions } from './parser.js';
|
|
43
|
+
export { GenericDialect, AnsiDialect, MySqlDialect, PostgreSqlDialect, SQLiteDialect, SnowflakeDialect, RedshiftDialect, MsSqlDialect, ClickHouseDialect, BigQueryDialect, DuckDbDialect, DatabricksDialect, HiveDialect, OracleDialect, dialectFromString, SUPPORTED_DIALECTS, } from './dialects.js';
|
|
44
|
+
export type { Dialect, DialectName } from './dialects.js';
|
|
45
|
+
export * from './types/index.js';
|
|
46
46
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AAGH,OAAO,EAAE,MAAM,EAAE,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AAGH,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,YAAY,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAGjD,OAAO,EACL,cAAc,EACd,WAAW,EACX,YAAY,EACZ,iBAAiB,EACjB,aAAa,EACb,gBAAgB,EAChB,eAAe,EACf,YAAY,EACZ,iBAAiB,EACjB,eAAe,EACf,aAAa,EACb,iBAAiB,EACjB,WAAW,EACX,aAAa,EACb,iBAAiB,EACjB,kBAAkB,GACnB,MAAM,eAAe,CAAC;AACvB,YAAY,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAG1D,cAAc,kBAAkB,CAAC"}
|
package/dist/types/parser.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import type { Dialect } from './dialects';
|
|
2
|
-
import type { Statement } from './types/ast';
|
|
1
|
+
import type { Dialect } from './dialects.js';
|
|
2
|
+
import type { Statement } from './types/ast.js';
|
|
3
3
|
/**
|
|
4
4
|
* Parser options
|
|
5
5
|
*/
|
|
@@ -13,11 +13,6 @@ export interface ParserOptions {
|
|
|
13
13
|
*/
|
|
14
14
|
recursionLimit?: number;
|
|
15
15
|
}
|
|
16
|
-
/**
|
|
17
|
-
* Initialize the WASM module
|
|
18
|
-
* This is called automatically when needed, but can be called manually for eager loading
|
|
19
|
-
*/
|
|
20
|
-
export declare function initWasm(): Promise<void>;
|
|
21
16
|
/**
|
|
22
17
|
* SQL Parser
|
|
23
18
|
*
|
|
@@ -28,14 +23,14 @@ export declare function initWasm(): Promise<void>;
|
|
|
28
23
|
* import { Parser, PostgreSqlDialect } from 'sqlparser-rs';
|
|
29
24
|
*
|
|
30
25
|
* // Simple parsing
|
|
31
|
-
* const statements =
|
|
26
|
+
* const statements = Parser.parse('SELECT * FROM users', new PostgreSqlDialect());
|
|
32
27
|
*
|
|
33
28
|
* // With builder pattern
|
|
34
29
|
* const parser = new Parser(new PostgreSqlDialect())
|
|
35
30
|
* .withRecursionLimit(50)
|
|
36
31
|
* .withOptions({ trailingCommas: true });
|
|
37
32
|
*
|
|
38
|
-
* const ast =
|
|
33
|
+
* const ast = parser.parse('SELECT * FROM users');
|
|
39
34
|
* ```
|
|
40
35
|
*/
|
|
41
36
|
export declare class Parser {
|
|
@@ -62,23 +57,14 @@ export declare class Parser {
|
|
|
62
57
|
*/
|
|
63
58
|
withOptions(options: ParserOptions): Parser;
|
|
64
59
|
/**
|
|
65
|
-
* Parse SQL statements
|
|
66
|
-
*
|
|
67
|
-
* @param sql - SQL string to parse
|
|
68
|
-
* @returns Array of parsed statements
|
|
69
|
-
*/
|
|
70
|
-
parseAsync(sql: string): Promise<Statement[]>;
|
|
71
|
-
/**
|
|
72
|
-
* Parse SQL statements synchronously
|
|
73
|
-
* Requires WASM module to be initialized first via initWasm()
|
|
60
|
+
* Parse SQL statements
|
|
74
61
|
*
|
|
75
62
|
* @param sql - SQL string to parse
|
|
76
63
|
* @returns Array of parsed statements
|
|
77
64
|
*/
|
|
78
|
-
|
|
79
|
-
private parseWithWasm;
|
|
65
|
+
parse(sql: string): Statement[];
|
|
80
66
|
/**
|
|
81
|
-
* Parse SQL statements
|
|
67
|
+
* Parse SQL statements
|
|
82
68
|
*
|
|
83
69
|
* @param sql - SQL string to parse
|
|
84
70
|
* @param dialect - SQL dialect to use
|
|
@@ -86,26 +72,26 @@ export declare class Parser {
|
|
|
86
72
|
*
|
|
87
73
|
* @example
|
|
88
74
|
* ```typescript
|
|
89
|
-
* const statements =
|
|
75
|
+
* const statements = Parser.parse('SELECT 1', new GenericDialect());
|
|
90
76
|
* ```
|
|
91
77
|
*/
|
|
92
|
-
static parse(sql: string, dialect?: Dialect):
|
|
78
|
+
static parse(sql: string, dialect?: Dialect): Statement[];
|
|
93
79
|
/**
|
|
94
|
-
* Parse SQL and return the AST as a JSON string
|
|
80
|
+
* Parse SQL and return the AST as a JSON string
|
|
95
81
|
*
|
|
96
82
|
* @param sql - SQL string to parse
|
|
97
83
|
* @param dialect - SQL dialect to use
|
|
98
84
|
* @returns JSON string representation of the AST
|
|
99
85
|
*/
|
|
100
|
-
static parseToJson(sql: string, dialect?: Dialect):
|
|
86
|
+
static parseToJson(sql: string, dialect?: Dialect): string;
|
|
101
87
|
/**
|
|
102
|
-
* Parse SQL and return a formatted string representation
|
|
88
|
+
* Parse SQL and return a formatted string representation
|
|
103
89
|
*
|
|
104
90
|
* @param sql - SQL string to parse
|
|
105
91
|
* @param dialect - SQL dialect to use
|
|
106
92
|
* @returns String representation of the parsed SQL
|
|
107
93
|
*/
|
|
108
|
-
static parseToString(sql: string, dialect?: Dialect):
|
|
94
|
+
static parseToString(sql: string, dialect?: Dialect): string;
|
|
109
95
|
/**
|
|
110
96
|
* Format SQL by parsing and regenerating it (round-trip)
|
|
111
97
|
*
|
|
@@ -113,7 +99,7 @@ export declare class Parser {
|
|
|
113
99
|
* @param dialect - SQL dialect to use
|
|
114
100
|
* @returns Formatted SQL string
|
|
115
101
|
*/
|
|
116
|
-
static format(sql: string, dialect?: Dialect):
|
|
102
|
+
static format(sql: string, dialect?: Dialect): string;
|
|
117
103
|
/**
|
|
118
104
|
* Validate SQL syntax without returning the full AST
|
|
119
105
|
*
|
|
@@ -121,10 +107,10 @@ export declare class Parser {
|
|
|
121
107
|
* @param dialect - SQL dialect to use
|
|
122
108
|
* @returns true if valid, throws ParserError if invalid
|
|
123
109
|
*/
|
|
124
|
-
static validate(sql: string, dialect?: Dialect):
|
|
110
|
+
static validate(sql: string, dialect?: Dialect): boolean;
|
|
125
111
|
/**
|
|
126
112
|
* Get the list of supported dialect names
|
|
127
113
|
*/
|
|
128
|
-
static getSupportedDialects():
|
|
114
|
+
static getSupportedDialects(): string[];
|
|
129
115
|
}
|
|
130
116
|
//# sourceMappingURL=parser.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../../src/parser.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../../src/parser.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAG7C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAEhD;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B;;OAEG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;IAEzB;;OAEG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAqCD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,qBAAa,MAAM;IACjB,OAAO,CAAC,OAAO,CAAU;IACzB,OAAO,CAAC,OAAO,CAAgB;IAE/B;;;;OAIG;gBACS,OAAO,GAAE,OAA8B;IAKnD;;;;;OAKG;IACH,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;IAKzC;;;;;OAKG;IACH,WAAW,CAAC,OAAO,EAAE,aAAa,GAAG,MAAM;IAK3C;;;;;OAKG;IACH,KAAK,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,EAAE;IAyB/B;;;;;;;;;;;OAWG;IACH,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,GAAE,OAA8B,GAAG,SAAS,EAAE;IAK/E;;;;;;OAMG;IACH,MAAM,CAAC,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,GAAE,OAA8B,GAAG,MAAM;IAShF;;;;;;OAMG;IACH,MAAM,CAAC,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,GAAE,OAA8B,GAAG,MAAM;IASlF;;;;;;OAMG;IACH,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,GAAE,OAA8B,GAAG,MAAM;IAS3E;;;;;;OAMG;IACH,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,GAAE,OAA8B,GAAG,OAAO;IAS9E;;OAEG;IACH,MAAM,CAAC,oBAAoB,IAAI,MAAM,EAAE;CAIxC"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export * from './ast';
|
|
2
|
-
export * from './errors';
|
|
1
|
+
export * from './ast.js';
|
|
2
|
+
export * from './errors.js';
|
|
3
3
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/types/index.ts"],"names":[],"mappings":"AAAA,cAAc,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/types/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,aAAa,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "sqlparser-rs",
|
|
3
|
-
"version": "0.60.
|
|
3
|
+
"version": "0.60.2",
|
|
4
4
|
"description": "A SQL parser for JavaScript and TypeScript, powered by datafusion-sqlparser-rs via WASM",
|
|
5
5
|
"main": "dist/cjs/index.js",
|
|
6
6
|
"module": "dist/esm/index.js",
|
|
7
7
|
"types": "dist/types/index.d.ts",
|
|
8
8
|
"exports": {
|
|
9
9
|
".": {
|
|
10
|
+
"types": "./dist/types/index.d.ts",
|
|
10
11
|
"import": "./dist/esm/index.js",
|
|
11
|
-
"require": "./dist/cjs/index.js"
|
|
12
|
-
"types": "./dist/types/index.d.ts"
|
|
12
|
+
"require": "./dist/cjs/index.js"
|
|
13
13
|
}
|
|
14
14
|
},
|
|
15
15
|
"files": [
|
|
@@ -21,12 +21,13 @@
|
|
|
21
21
|
"build": "npm run build:wasm && npm run build:ts",
|
|
22
22
|
"build:wasm": "cd .. && wasm-pack build --target nodejs --out-dir ts/wasm && rm -f ts/wasm/.gitignore",
|
|
23
23
|
"build:wasm:web": "cd .. && wasm-pack build --target web --out-dir ts/wasm-web",
|
|
24
|
-
"build:ts": "npm run build:esm && npm run build:cjs",
|
|
24
|
+
"build:ts": "npm run build:esm && npm run build:cjs && echo '{\"type\":\"module\"}' > dist/esm/package.json",
|
|
25
25
|
"build:esm": "tsc -p tsconfig.esm.json",
|
|
26
26
|
"build:cjs": "tsc -p tsconfig.cjs.json",
|
|
27
|
-
"test": "
|
|
28
|
-
"
|
|
29
|
-
"lint
|
|
27
|
+
"test": "vitest run",
|
|
28
|
+
"test:watch": "vitest",
|
|
29
|
+
"lint": "eslint src tests",
|
|
30
|
+
"lint:fix": "eslint src tests --fix",
|
|
30
31
|
"prepublishOnly": "npm run build",
|
|
31
32
|
"local:pack": "npm run build:ts && npm pack",
|
|
32
33
|
"local:link": "npm run build:ts && npm link"
|
|
@@ -47,14 +48,13 @@
|
|
|
47
48
|
"url": "https://github.com/guan404ming/sqlparser-rs"
|
|
48
49
|
},
|
|
49
50
|
"devDependencies": {
|
|
50
|
-
"@types/
|
|
51
|
-
"@
|
|
52
|
-
"
|
|
53
|
-
"
|
|
54
|
-
"
|
|
55
|
-
"
|
|
56
|
-
"
|
|
57
|
-
"typescript": "^5.3.3"
|
|
51
|
+
"@types/node": "^25.0.10",
|
|
52
|
+
"@vitest/ui": "^4.0.18",
|
|
53
|
+
"eslint": "^9.18.0",
|
|
54
|
+
"eslint-plugin-unused-imports": "^4.3.0",
|
|
55
|
+
"typescript": "^5.7.0",
|
|
56
|
+
"typescript-eslint": "^8.21.0",
|
|
57
|
+
"vitest": "^4.0.18"
|
|
58
58
|
},
|
|
59
59
|
"engines": {
|
|
60
60
|
"node": ">=16.0.0"
|