@yanit/jsondb 0.1.1
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 +903 -0
- package/dist/bin/cli-export.d.ts +7 -0
- package/dist/bin/cli-export.d.ts.map +1 -0
- package/dist/bin/cli-export.js +318 -0
- package/dist/bin/cli-export.js.map +1 -0
- package/dist/bin/cli-import.d.ts +7 -0
- package/dist/bin/cli-import.d.ts.map +1 -0
- package/dist/bin/cli-import.js +298 -0
- package/dist/bin/cli-import.js.map +1 -0
- package/dist/bin/server.d.ts +7 -0
- package/dist/bin/server.d.ts.map +1 -0
- package/dist/bin/server.js +92 -0
- package/dist/bin/server.js.map +1 -0
- package/dist/examples/sql-example.d.ts +7 -0
- package/dist/examples/sql-example.d.ts.map +1 -0
- package/dist/examples/sql-example.js +131 -0
- package/dist/examples/sql-example.js.map +1 -0
- package/dist/src/BulkOp.d.ts +74 -0
- package/dist/src/BulkOp.d.ts.map +1 -0
- package/dist/src/BulkOp.js +143 -0
- package/dist/src/BulkOp.js.map +1 -0
- package/dist/src/Collection.d.ts +232 -0
- package/dist/src/Collection.d.ts.map +1 -0
- package/dist/src/Collection.js +705 -0
- package/dist/src/Collection.js.map +1 -0
- package/dist/src/Cursor.d.ts +94 -0
- package/dist/src/Cursor.d.ts.map +1 -0
- package/dist/src/Cursor.js +259 -0
- package/dist/src/Cursor.js.map +1 -0
- package/dist/src/Database.d.ts +98 -0
- package/dist/src/Database.d.ts.map +1 -0
- package/dist/src/Database.js +198 -0
- package/dist/src/Database.js.map +1 -0
- package/dist/src/Operators.d.ts +73 -0
- package/dist/src/Operators.d.ts.map +1 -0
- package/dist/src/Operators.js +339 -0
- package/dist/src/Operators.js.map +1 -0
- package/dist/src/QueryCache.d.ts +87 -0
- package/dist/src/QueryCache.d.ts.map +1 -0
- package/dist/src/QueryCache.js +155 -0
- package/dist/src/QueryCache.js.map +1 -0
- package/dist/src/SQLExecutor.d.ts +60 -0
- package/dist/src/SQLExecutor.d.ts.map +1 -0
- package/dist/src/SQLExecutor.js +317 -0
- package/dist/src/SQLExecutor.js.map +1 -0
- package/dist/src/SQLParser.d.ts +181 -0
- package/dist/src/SQLParser.d.ts.map +1 -0
- package/dist/src/SQLParser.js +640 -0
- package/dist/src/SQLParser.js.map +1 -0
- package/dist/src/Schema.d.ts +92 -0
- package/dist/src/Schema.d.ts.map +1 -0
- package/dist/src/Schema.js +253 -0
- package/dist/src/Schema.js.map +1 -0
- package/dist/src/Transaction.d.ts +118 -0
- package/dist/src/Transaction.d.ts.map +1 -0
- package/dist/src/Transaction.js +233 -0
- package/dist/src/Transaction.js.map +1 -0
- package/dist/src/Utils.d.ts +68 -0
- package/dist/src/Utils.d.ts.map +1 -0
- package/dist/src/Utils.js +187 -0
- package/dist/src/Utils.js.map +1 -0
- package/dist/src/errors.d.ts +58 -0
- package/dist/src/errors.d.ts.map +1 -0
- package/dist/src/errors.js +85 -0
- package/dist/src/errors.js.map +1 -0
- package/dist/src/index.d.ts +39 -0
- package/dist/src/index.d.ts.map +1 -0
- package/dist/src/index.js +44 -0
- package/dist/src/index.js.map +1 -0
- package/dist/test/basic.test.d.ts +5 -0
- package/dist/test/basic.test.d.ts.map +1 -0
- package/dist/test/basic.test.js +283 -0
- package/dist/test/basic.test.js.map +1 -0
- package/dist/test/index.test.d.ts +5 -0
- package/dist/test/index.test.d.ts.map +1 -0
- package/dist/test/index.test.js +126 -0
- package/dist/test/index.test.js.map +1 -0
- package/dist/test/jsonb.test.d.ts +5 -0
- package/dist/test/jsonb.test.d.ts.map +1 -0
- package/dist/test/jsonb.test.js +165 -0
- package/dist/test/jsonb.test.js.map +1 -0
- package/dist/test/optimization.test.d.ts +6 -0
- package/dist/test/optimization.test.d.ts.map +1 -0
- package/dist/test/optimization.test.js +196 -0
- package/dist/test/optimization.test.js.map +1 -0
- package/dist/test/schema.test.d.ts +5 -0
- package/dist/test/schema.test.d.ts.map +1 -0
- package/dist/test/schema.test.js +197 -0
- package/dist/test/schema.test.js.map +1 -0
- package/dist/test/sql.test.d.ts +7 -0
- package/dist/test/sql.test.d.ts.map +1 -0
- package/dist/test/sql.test.js +21 -0
- package/dist/test/sql.test.js.map +1 -0
- package/package.json +73 -0
- package/src/BulkOp.js +181 -0
- package/src/BulkOp.ts +191 -0
- package/src/Collection.js +843 -0
- package/src/Collection.ts +896 -0
- package/src/Cursor.js +315 -0
- package/src/Cursor.ts +319 -0
- package/src/Database.js +244 -0
- package/src/Database.ts +268 -0
- package/src/Operators.js +382 -0
- package/src/Operators.ts +375 -0
- package/src/QueryCache.js +190 -0
- package/src/QueryCache.ts +208 -0
- package/src/SQLExecutor.ts +391 -0
- package/src/SQLParser.ts +814 -0
- package/src/Schema.js +292 -0
- package/src/Schema.ts +317 -0
- package/src/Transaction.js +291 -0
- package/src/Transaction.ts +313 -0
- package/src/Utils.js +205 -0
- package/src/Utils.ts +205 -0
- package/src/errors.js +93 -0
- package/src/errors.ts +93 -0
- package/src/index.js +90 -0
- package/src/index.ts +106 -0
|
@@ -0,0 +1,181 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SQL 解析器模块
|
|
3
|
+
* 支持标准 SQL 语法子集,转换为 JSONDB 查询操作
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* SQL 语句类型
|
|
7
|
+
*/
|
|
8
|
+
export type SQLStatementType = 'SELECT' | 'INSERT' | 'UPDATE' | 'DELETE';
|
|
9
|
+
/**
|
|
10
|
+
* SQL 解析后的 SELECT 语句结构
|
|
11
|
+
*/
|
|
12
|
+
export interface SelectStatement {
|
|
13
|
+
type: 'SELECT';
|
|
14
|
+
columns: string[];
|
|
15
|
+
table: string;
|
|
16
|
+
where?: WhereClause;
|
|
17
|
+
orderBy?: OrderByClause[];
|
|
18
|
+
limit?: number;
|
|
19
|
+
offset?: number;
|
|
20
|
+
groupBy?: string[];
|
|
21
|
+
having?: WhereClause;
|
|
22
|
+
distinct?: boolean;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* SQL 解析后的 INSERT 语句结构
|
|
26
|
+
*/
|
|
27
|
+
export interface InsertStatement {
|
|
28
|
+
type: 'INSERT';
|
|
29
|
+
table: string;
|
|
30
|
+
columns: string[];
|
|
31
|
+
values: unknown[][];
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* SQL 解析后的 UPDATE 语句结构
|
|
35
|
+
*/
|
|
36
|
+
export interface UpdateStatement {
|
|
37
|
+
type: 'UPDATE';
|
|
38
|
+
table: string;
|
|
39
|
+
set: {
|
|
40
|
+
column: string;
|
|
41
|
+
value: unknown;
|
|
42
|
+
}[];
|
|
43
|
+
where?: WhereClause;
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* SQL 解析后的 DELETE 语句结构
|
|
47
|
+
*/
|
|
48
|
+
export interface DeleteStatement {
|
|
49
|
+
type: 'DELETE';
|
|
50
|
+
table: string;
|
|
51
|
+
where?: WhereClause;
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* WHERE 子句结构
|
|
55
|
+
*/
|
|
56
|
+
export type WhereClause = {
|
|
57
|
+
type: 'condition';
|
|
58
|
+
column: string;
|
|
59
|
+
operator: string;
|
|
60
|
+
value: unknown;
|
|
61
|
+
} | {
|
|
62
|
+
type: 'and';
|
|
63
|
+
conditions: WhereClause[];
|
|
64
|
+
} | {
|
|
65
|
+
type: 'or';
|
|
66
|
+
conditions: WhereClause[];
|
|
67
|
+
} | {
|
|
68
|
+
type: 'not';
|
|
69
|
+
condition: WhereClause;
|
|
70
|
+
};
|
|
71
|
+
/**
|
|
72
|
+
* ORDER BY 子句结构
|
|
73
|
+
*/
|
|
74
|
+
export interface OrderByClause {
|
|
75
|
+
column: string;
|
|
76
|
+
direction: 'ASC' | 'DESC';
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* SQL 语句联合类型
|
|
80
|
+
*/
|
|
81
|
+
export type SQLStatement = SelectStatement | InsertStatement | UpdateStatement | DeleteStatement;
|
|
82
|
+
/**
|
|
83
|
+
* SQL 解析结果
|
|
84
|
+
*/
|
|
85
|
+
export interface SQLParseResult {
|
|
86
|
+
success: boolean;
|
|
87
|
+
statement?: SQLStatement;
|
|
88
|
+
error?: string;
|
|
89
|
+
}
|
|
90
|
+
/**
|
|
91
|
+
* SQL 解析器类
|
|
92
|
+
*/
|
|
93
|
+
export declare class SQLParser {
|
|
94
|
+
private sql;
|
|
95
|
+
private pos;
|
|
96
|
+
private currentChar;
|
|
97
|
+
/**
|
|
98
|
+
* 解析 SQL 语句
|
|
99
|
+
*/
|
|
100
|
+
parse(sql: string): SQLParseResult;
|
|
101
|
+
/**
|
|
102
|
+
* 解析 SELECT 语句
|
|
103
|
+
*/
|
|
104
|
+
private parseSelect;
|
|
105
|
+
/**
|
|
106
|
+
* 解析 INSERT 语句
|
|
107
|
+
*/
|
|
108
|
+
private parseInsert;
|
|
109
|
+
/**
|
|
110
|
+
* 解析 UPDATE 语句
|
|
111
|
+
*/
|
|
112
|
+
private parseUpdate;
|
|
113
|
+
/**
|
|
114
|
+
* 解析 DELETE 语句
|
|
115
|
+
*/
|
|
116
|
+
private parseDelete;
|
|
117
|
+
/**
|
|
118
|
+
* 解析列名列表
|
|
119
|
+
*/
|
|
120
|
+
private parseColumnList;
|
|
121
|
+
/**
|
|
122
|
+
* 解析 WHERE 子句
|
|
123
|
+
*/
|
|
124
|
+
private parseWhereClause;
|
|
125
|
+
/**
|
|
126
|
+
* 解析条件(支持 AND/OR)
|
|
127
|
+
*/
|
|
128
|
+
private parseCondition;
|
|
129
|
+
/**
|
|
130
|
+
* 解析简单条件
|
|
131
|
+
*/
|
|
132
|
+
private parseSimpleCondition;
|
|
133
|
+
/**
|
|
134
|
+
* 解析操作符
|
|
135
|
+
*/
|
|
136
|
+
private readOperator;
|
|
137
|
+
/**
|
|
138
|
+
* 解析值
|
|
139
|
+
*/
|
|
140
|
+
private readValue;
|
|
141
|
+
/**
|
|
142
|
+
* 解析 SET 子句
|
|
143
|
+
*/
|
|
144
|
+
private parseSetClause;
|
|
145
|
+
/**
|
|
146
|
+
* 解析 SET 值
|
|
147
|
+
*/
|
|
148
|
+
private parseSetValue;
|
|
149
|
+
/**
|
|
150
|
+
* 解析值列表
|
|
151
|
+
*/
|
|
152
|
+
private parseValuesList;
|
|
153
|
+
/**
|
|
154
|
+
* 解析单行值
|
|
155
|
+
*/
|
|
156
|
+
private parseValueRow;
|
|
157
|
+
/**
|
|
158
|
+
* 解析 ORDER BY 列表
|
|
159
|
+
*/
|
|
160
|
+
private parseOrderByList;
|
|
161
|
+
/**
|
|
162
|
+
* 解析单个 ORDER BY
|
|
163
|
+
*/
|
|
164
|
+
private parseOrderByItem;
|
|
165
|
+
private skipWhitespace;
|
|
166
|
+
private readChar;
|
|
167
|
+
private peekChar;
|
|
168
|
+
private readWord;
|
|
169
|
+
private peekWord;
|
|
170
|
+
private readIdentifier;
|
|
171
|
+
private readString;
|
|
172
|
+
private readNumber;
|
|
173
|
+
private isWhitespace;
|
|
174
|
+
private isWordChar;
|
|
175
|
+
private isDigit;
|
|
176
|
+
}
|
|
177
|
+
/**
|
|
178
|
+
* 解析 SQL 语句
|
|
179
|
+
*/
|
|
180
|
+
export declare function parseSQL(sql: string): SQLParseResult;
|
|
181
|
+
//# sourceMappingURL=SQLParser.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SQLParser.d.ts","sourceRoot":"","sources":["../../src/SQLParser.ts"],"names":[],"mappings":"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"}
|