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.
@@ -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"}