@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.
Files changed (118) hide show
  1. package/README.md +903 -0
  2. package/dist/bin/cli-export.d.ts +7 -0
  3. package/dist/bin/cli-export.d.ts.map +1 -0
  4. package/dist/bin/cli-export.js +318 -0
  5. package/dist/bin/cli-export.js.map +1 -0
  6. package/dist/bin/cli-import.d.ts +7 -0
  7. package/dist/bin/cli-import.d.ts.map +1 -0
  8. package/dist/bin/cli-import.js +298 -0
  9. package/dist/bin/cli-import.js.map +1 -0
  10. package/dist/bin/server.d.ts +7 -0
  11. package/dist/bin/server.d.ts.map +1 -0
  12. package/dist/bin/server.js +92 -0
  13. package/dist/bin/server.js.map +1 -0
  14. package/dist/examples/sql-example.d.ts +7 -0
  15. package/dist/examples/sql-example.d.ts.map +1 -0
  16. package/dist/examples/sql-example.js +131 -0
  17. package/dist/examples/sql-example.js.map +1 -0
  18. package/dist/src/BulkOp.d.ts +74 -0
  19. package/dist/src/BulkOp.d.ts.map +1 -0
  20. package/dist/src/BulkOp.js +143 -0
  21. package/dist/src/BulkOp.js.map +1 -0
  22. package/dist/src/Collection.d.ts +232 -0
  23. package/dist/src/Collection.d.ts.map +1 -0
  24. package/dist/src/Collection.js +705 -0
  25. package/dist/src/Collection.js.map +1 -0
  26. package/dist/src/Cursor.d.ts +94 -0
  27. package/dist/src/Cursor.d.ts.map +1 -0
  28. package/dist/src/Cursor.js +259 -0
  29. package/dist/src/Cursor.js.map +1 -0
  30. package/dist/src/Database.d.ts +98 -0
  31. package/dist/src/Database.d.ts.map +1 -0
  32. package/dist/src/Database.js +198 -0
  33. package/dist/src/Database.js.map +1 -0
  34. package/dist/src/Operators.d.ts +73 -0
  35. package/dist/src/Operators.d.ts.map +1 -0
  36. package/dist/src/Operators.js +339 -0
  37. package/dist/src/Operators.js.map +1 -0
  38. package/dist/src/QueryCache.d.ts +87 -0
  39. package/dist/src/QueryCache.d.ts.map +1 -0
  40. package/dist/src/QueryCache.js +155 -0
  41. package/dist/src/QueryCache.js.map +1 -0
  42. package/dist/src/SQLExecutor.d.ts +60 -0
  43. package/dist/src/SQLExecutor.d.ts.map +1 -0
  44. package/dist/src/SQLExecutor.js +317 -0
  45. package/dist/src/SQLExecutor.js.map +1 -0
  46. package/dist/src/SQLParser.d.ts +181 -0
  47. package/dist/src/SQLParser.d.ts.map +1 -0
  48. package/dist/src/SQLParser.js +640 -0
  49. package/dist/src/SQLParser.js.map +1 -0
  50. package/dist/src/Schema.d.ts +92 -0
  51. package/dist/src/Schema.d.ts.map +1 -0
  52. package/dist/src/Schema.js +253 -0
  53. package/dist/src/Schema.js.map +1 -0
  54. package/dist/src/Transaction.d.ts +118 -0
  55. package/dist/src/Transaction.d.ts.map +1 -0
  56. package/dist/src/Transaction.js +233 -0
  57. package/dist/src/Transaction.js.map +1 -0
  58. package/dist/src/Utils.d.ts +68 -0
  59. package/dist/src/Utils.d.ts.map +1 -0
  60. package/dist/src/Utils.js +187 -0
  61. package/dist/src/Utils.js.map +1 -0
  62. package/dist/src/errors.d.ts +58 -0
  63. package/dist/src/errors.d.ts.map +1 -0
  64. package/dist/src/errors.js +85 -0
  65. package/dist/src/errors.js.map +1 -0
  66. package/dist/src/index.d.ts +39 -0
  67. package/dist/src/index.d.ts.map +1 -0
  68. package/dist/src/index.js +44 -0
  69. package/dist/src/index.js.map +1 -0
  70. package/dist/test/basic.test.d.ts +5 -0
  71. package/dist/test/basic.test.d.ts.map +1 -0
  72. package/dist/test/basic.test.js +283 -0
  73. package/dist/test/basic.test.js.map +1 -0
  74. package/dist/test/index.test.d.ts +5 -0
  75. package/dist/test/index.test.d.ts.map +1 -0
  76. package/dist/test/index.test.js +126 -0
  77. package/dist/test/index.test.js.map +1 -0
  78. package/dist/test/jsonb.test.d.ts +5 -0
  79. package/dist/test/jsonb.test.d.ts.map +1 -0
  80. package/dist/test/jsonb.test.js +165 -0
  81. package/dist/test/jsonb.test.js.map +1 -0
  82. package/dist/test/optimization.test.d.ts +6 -0
  83. package/dist/test/optimization.test.d.ts.map +1 -0
  84. package/dist/test/optimization.test.js +196 -0
  85. package/dist/test/optimization.test.js.map +1 -0
  86. package/dist/test/schema.test.d.ts +5 -0
  87. package/dist/test/schema.test.d.ts.map +1 -0
  88. package/dist/test/schema.test.js +197 -0
  89. package/dist/test/schema.test.js.map +1 -0
  90. package/dist/test/sql.test.d.ts +7 -0
  91. package/dist/test/sql.test.d.ts.map +1 -0
  92. package/dist/test/sql.test.js +21 -0
  93. package/dist/test/sql.test.js.map +1 -0
  94. package/package.json +73 -0
  95. package/src/BulkOp.js +181 -0
  96. package/src/BulkOp.ts +191 -0
  97. package/src/Collection.js +843 -0
  98. package/src/Collection.ts +896 -0
  99. package/src/Cursor.js +315 -0
  100. package/src/Cursor.ts +319 -0
  101. package/src/Database.js +244 -0
  102. package/src/Database.ts +268 -0
  103. package/src/Operators.js +382 -0
  104. package/src/Operators.ts +375 -0
  105. package/src/QueryCache.js +190 -0
  106. package/src/QueryCache.ts +208 -0
  107. package/src/SQLExecutor.ts +391 -0
  108. package/src/SQLParser.ts +814 -0
  109. package/src/Schema.js +292 -0
  110. package/src/Schema.ts +317 -0
  111. package/src/Transaction.js +291 -0
  112. package/src/Transaction.ts +313 -0
  113. package/src/Utils.js +205 -0
  114. package/src/Utils.ts +205 -0
  115. package/src/errors.js +93 -0
  116. package/src/errors.ts +93 -0
  117. package/src/index.js +90 -0
  118. 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":"AAAA;;;GAGG;AAEH;;GAEG;AACH,MAAM,MAAM,gBAAgB,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAEzE;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,QAAQ,CAAC;IACf,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,OAAO,CAAC,EAAE,aAAa,EAAE,CAAC;IAC1B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,QAAQ,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,MAAM,EAAE,OAAO,EAAE,EAAE,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,QAAQ,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,OAAO,CAAA;KAAE,EAAE,CAAC;IAC1C,KAAK,CAAC,EAAE,WAAW,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,QAAQ,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,WAAW,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,MAAM,WAAW,GACnB;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,OAAO,CAAA;CAAE,GACvE;IAAE,IAAI,EAAE,KAAK,CAAC;IAAC,UAAU,EAAE,WAAW,EAAE,CAAA;CAAE,GAC1C;IAAE,IAAI,EAAE,IAAI,CAAC;IAAC,UAAU,EAAE,WAAW,EAAE,CAAA;CAAE,GACzC;IAAE,IAAI,EAAE,KAAK,CAAC;IAAC,SAAS,EAAE,WAAW,CAAA;CAAE,CAAC;AAE5C;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,KAAK,GAAG,MAAM,CAAC;CAC3B;AAED;;GAEG;AACH,MAAM,MAAM,YAAY,GAAG,eAAe,GAAG,eAAe,GAAG,eAAe,GAAG,eAAe,CAAC;AAEjG;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,CAAC,EAAE,YAAY,CAAC;IACzB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,qBAAa,SAAS;IACpB,OAAO,CAAC,GAAG,CAAc;IACzB,OAAO,CAAC,GAAG,CAAa;IACxB,OAAO,CAAC,WAAW,CAAc;IAEjC;;OAEG;IACH,KAAK,CAAC,GAAG,EAAE,MAAM,GAAG,cAAc;IAkClC;;OAEG;IACH,OAAO,CAAC,WAAW;IAqFnB;;OAEG;IACH,OAAO,CAAC,WAAW;IAgDnB;;OAEG;IACH,OAAO,CAAC,WAAW;IAgCnB;;OAEG;IACH,OAAO,CAAC,WAAW;IA2BnB;;OAEG;IACH,OAAO,CAAC,eAAe;IAyBvB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAKxB;;OAEG;IACH,OAAO,CAAC,cAAc;IA2BtB;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAwC5B;;OAEG;IACH,OAAO,CAAC,YAAY;IAmDpB;;OAEG;IACH,OAAO,CAAC,SAAS;IA4DjB;;OAEG;IACH,OAAO,CAAC,cAAc;IAyBtB;;OAEG;IACH,OAAO,CAAC,aAAa;IASrB;;OAEG;IACH,OAAO,CAAC,eAAe;IAmBvB;;OAEG;IACH,OAAO,CAAC,aAAa;IAiCrB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAmBxB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAgBxB,OAAO,CAAC,cAAc;IAOtB,OAAO,CAAC,QAAQ;IAOhB,OAAO,CAAC,QAAQ;IAIhB,OAAO,CAAC,QAAQ;IAQhB,OAAO,CAAC,QAAQ;IAQhB,OAAO,CAAC,cAAc;IAmBtB,OAAO,CAAC,UAAU;IAiBlB,OAAO,CAAC,UAAU;IAwBlB,OAAO,CAAC,YAAY;IAIpB,OAAO,CAAC,UAAU;IAIlB,OAAO,CAAC,OAAO;CAGhB;AAED;;GAEG;AACH,wBAAgB,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,cAAc,CAGpD"}