sqlparser-rs 0.60.0-rc1
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/dist/cjs/dialects.js +191 -0
- package/dist/cjs/dialects.js.map +1 -0
- package/dist/cjs/index.js +81 -0
- package/dist/cjs/index.js.map +1 -0
- package/dist/cjs/parser.js +264 -0
- package/dist/cjs/parser.js.map +1 -0
- package/dist/cjs/types/ast.js +10 -0
- package/dist/cjs/types/ast.js.map +1 -0
- package/dist/cjs/types/errors.js +49 -0
- package/dist/cjs/types/errors.js.map +1 -0
- package/dist/cjs/types/index.js +19 -0
- package/dist/cjs/types/index.js.map +1 -0
- package/dist/esm/dialects.js +174 -0
- package/dist/esm/dialects.js.map +1 -0
- package/dist/esm/index.js +47 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/parser.js +226 -0
- package/dist/esm/parser.js.map +1 -0
- package/dist/esm/types/ast.js +9 -0
- package/dist/esm/types/ast.js.map +1 -0
- package/dist/esm/types/errors.js +44 -0
- package/dist/esm/types/errors.js.map +1 -0
- package/dist/esm/types/index.js +3 -0
- package/dist/esm/types/index.js.map +1 -0
- package/dist/types/dialects.d.ts +112 -0
- package/dist/types/dialects.d.ts.map +1 -0
- package/dist/types/index.d.ts +46 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/parser.d.ts +130 -0
- package/dist/types/parser.d.ts.map +1 -0
- package/dist/types/types/ast.d.ts +1097 -0
- package/dist/types/types/ast.d.ts.map +1 -0
- package/dist/types/types/errors.d.ts +25 -0
- package/dist/types/types/errors.d.ts.map +1 -0
- package/dist/types/types/index.d.ts +3 -0
- package/dist/types/types/index.d.ts.map +1 -0
- package/package.json +61 -0
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* sqlparser-rs - SQL Parser for JavaScript/TypeScript
|
|
3
|
+
*
|
|
4
|
+
* This package wraps the Rust sqlparser crate via WebAssembly, providing
|
|
5
|
+
* a fast and accurate SQL parser for JavaScript and TypeScript.
|
|
6
|
+
*
|
|
7
|
+
* @example
|
|
8
|
+
* ```typescript
|
|
9
|
+
* import { Parser, GenericDialect, PostgreSqlDialect } from 'sqlparser-rs';
|
|
10
|
+
*
|
|
11
|
+
* // Simple parsing
|
|
12
|
+
* const statements = await Parser.parse('SELECT * FROM users', new GenericDialect());
|
|
13
|
+
*
|
|
14
|
+
* // With specific dialect
|
|
15
|
+
* const pgStatements = await Parser.parse(
|
|
16
|
+
* 'SELECT * FROM users WHERE id = $1',
|
|
17
|
+
* new PostgreSqlDialect()
|
|
18
|
+
* );
|
|
19
|
+
*
|
|
20
|
+
* // Builder pattern with options
|
|
21
|
+
* const parser = new Parser(new PostgreSqlDialect())
|
|
22
|
+
* .withRecursionLimit(50)
|
|
23
|
+
* .withOptions({ trailingCommas: true });
|
|
24
|
+
*
|
|
25
|
+
* const ast = await parser.parseAsync('SELECT * FROM users');
|
|
26
|
+
*
|
|
27
|
+
* // Format SQL
|
|
28
|
+
* const formatted = await Parser.format('select * from users', new GenericDialect());
|
|
29
|
+
* // Returns: "SELECT * FROM users"
|
|
30
|
+
*
|
|
31
|
+
* // Validate SQL
|
|
32
|
+
* try {
|
|
33
|
+
* await Parser.validate('SELECT * FRO users', new GenericDialect());
|
|
34
|
+
* } catch (e) {
|
|
35
|
+
* console.log('Invalid SQL:', e.message);
|
|
36
|
+
* }
|
|
37
|
+
* ```
|
|
38
|
+
*
|
|
39
|
+
* @packageDocumentation
|
|
40
|
+
*/
|
|
41
|
+
export { Parser, initWasm } from './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';
|
|
46
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AAGH,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAC5C,YAAY,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAG9C,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,iBAAiB,EACjB,kBAAkB,GACnB,MAAM,YAAY,CAAC;AACpB,YAAY,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAGvD,cAAc,SAAS,CAAC"}
|
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
import type { Dialect } from './dialects';
|
|
2
|
+
import type { Statement } from './types/ast';
|
|
3
|
+
/**
|
|
4
|
+
* Parser options
|
|
5
|
+
*/
|
|
6
|
+
export interface ParserOptions {
|
|
7
|
+
/**
|
|
8
|
+
* Allow trailing commas in SELECT lists
|
|
9
|
+
*/
|
|
10
|
+
trailingCommas?: boolean;
|
|
11
|
+
/**
|
|
12
|
+
* Maximum recursion depth for parsing nested expressions
|
|
13
|
+
*/
|
|
14
|
+
recursionLimit?: number;
|
|
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
|
+
/**
|
|
22
|
+
* SQL Parser
|
|
23
|
+
*
|
|
24
|
+
* Parses SQL statements into an Abstract Syntax Tree (AST).
|
|
25
|
+
*
|
|
26
|
+
* @example
|
|
27
|
+
* ```typescript
|
|
28
|
+
* import { Parser, PostgreSqlDialect } from 'sqlparser-rs';
|
|
29
|
+
*
|
|
30
|
+
* // Simple parsing
|
|
31
|
+
* const statements = await Parser.parse('SELECT * FROM users', new PostgreSqlDialect());
|
|
32
|
+
*
|
|
33
|
+
* // With builder pattern
|
|
34
|
+
* const parser = new Parser(new PostgreSqlDialect())
|
|
35
|
+
* .withRecursionLimit(50)
|
|
36
|
+
* .withOptions({ trailingCommas: true });
|
|
37
|
+
*
|
|
38
|
+
* const ast = await parser.parseAsync('SELECT * FROM users');
|
|
39
|
+
* ```
|
|
40
|
+
*/
|
|
41
|
+
export declare class Parser {
|
|
42
|
+
private dialect;
|
|
43
|
+
private options;
|
|
44
|
+
/**
|
|
45
|
+
* Create a new parser instance
|
|
46
|
+
*
|
|
47
|
+
* @param dialect - The SQL dialect to use (defaults to GenericDialect)
|
|
48
|
+
*/
|
|
49
|
+
constructor(dialect?: Dialect);
|
|
50
|
+
/**
|
|
51
|
+
* Set the recursion limit for parsing nested expressions
|
|
52
|
+
*
|
|
53
|
+
* @param limit - Maximum recursion depth
|
|
54
|
+
* @returns This parser instance for chaining
|
|
55
|
+
*/
|
|
56
|
+
withRecursionLimit(limit: number): Parser;
|
|
57
|
+
/**
|
|
58
|
+
* Set parser options
|
|
59
|
+
*
|
|
60
|
+
* @param options - Parser options
|
|
61
|
+
* @returns This parser instance for chaining
|
|
62
|
+
*/
|
|
63
|
+
withOptions(options: ParserOptions): Parser;
|
|
64
|
+
/**
|
|
65
|
+
* Parse SQL statements asynchronously
|
|
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()
|
|
74
|
+
*
|
|
75
|
+
* @param sql - SQL string to parse
|
|
76
|
+
* @returns Array of parsed statements
|
|
77
|
+
*/
|
|
78
|
+
parseSync(sql: string): Statement[];
|
|
79
|
+
private parseWithWasm;
|
|
80
|
+
/**
|
|
81
|
+
* Parse SQL statements (async)
|
|
82
|
+
*
|
|
83
|
+
* @param sql - SQL string to parse
|
|
84
|
+
* @param dialect - SQL dialect to use
|
|
85
|
+
* @returns Array of parsed statements
|
|
86
|
+
*
|
|
87
|
+
* @example
|
|
88
|
+
* ```typescript
|
|
89
|
+
* const statements = await Parser.parse('SELECT 1', new GenericDialect());
|
|
90
|
+
* ```
|
|
91
|
+
*/
|
|
92
|
+
static parse(sql: string, dialect?: Dialect): Promise<Statement[]>;
|
|
93
|
+
/**
|
|
94
|
+
* Parse SQL and return the AST as a JSON string (async)
|
|
95
|
+
*
|
|
96
|
+
* @param sql - SQL string to parse
|
|
97
|
+
* @param dialect - SQL dialect to use
|
|
98
|
+
* @returns JSON string representation of the AST
|
|
99
|
+
*/
|
|
100
|
+
static parseToJson(sql: string, dialect?: Dialect): Promise<string>;
|
|
101
|
+
/**
|
|
102
|
+
* Parse SQL and return a formatted string representation (async)
|
|
103
|
+
*
|
|
104
|
+
* @param sql - SQL string to parse
|
|
105
|
+
* @param dialect - SQL dialect to use
|
|
106
|
+
* @returns String representation of the parsed SQL
|
|
107
|
+
*/
|
|
108
|
+
static parseToString(sql: string, dialect?: Dialect): Promise<string>;
|
|
109
|
+
/**
|
|
110
|
+
* Format SQL by parsing and regenerating it (round-trip)
|
|
111
|
+
*
|
|
112
|
+
* @param sql - SQL string to format
|
|
113
|
+
* @param dialect - SQL dialect to use
|
|
114
|
+
* @returns Formatted SQL string
|
|
115
|
+
*/
|
|
116
|
+
static format(sql: string, dialect?: Dialect): Promise<string>;
|
|
117
|
+
/**
|
|
118
|
+
* Validate SQL syntax without returning the full AST
|
|
119
|
+
*
|
|
120
|
+
* @param sql - SQL string to validate
|
|
121
|
+
* @param dialect - SQL dialect to use
|
|
122
|
+
* @returns true if valid, throws ParserError if invalid
|
|
123
|
+
*/
|
|
124
|
+
static validate(sql: string, dialect?: Dialect): Promise<boolean>;
|
|
125
|
+
/**
|
|
126
|
+
* Get the list of supported dialect names
|
|
127
|
+
*/
|
|
128
|
+
static getSupportedDialects(): Promise<string[]>;
|
|
129
|
+
}
|
|
130
|
+
//# sourceMappingURL=parser.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../../src/parser.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAG1C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAE7C;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B;;OAEG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;IAEzB;;OAEG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAiBD;;;GAGG;AACH,wBAAsB,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC,CAE9C;AA6CD;;;;;;;;;;;;;;;;;;;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;IACG,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;IAKnD;;;;;;OAMG;IACH,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,EAAE;IAKnC,OAAO,CAAC,aAAa;IAwBrB;;;;;;;;;;;OAWG;WACU,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,GAAE,OAA8B,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;IAK9F;;;;;;OAMG;WACU,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,GAAE,OAA8B,GAAG,OAAO,CAAC,MAAM,CAAC;IAS/F;;;;;;OAMG;WACU,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,GAAE,OAA8B,GAAG,OAAO,CAAC,MAAM,CAAC;IASjG;;;;;;OAMG;WACU,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,GAAE,OAA8B,GAAG,OAAO,CAAC,MAAM,CAAC;IAS1F;;;;;;OAMG;WACU,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,GAAE,OAA8B,GAAG,OAAO,CAAC,OAAO,CAAC;IAS7F;;OAEG;WACU,oBAAoB,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;CAIvD"}
|