fdb2 1.0.6 → 1.0.8

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 (193) hide show
  1. package/.vscodeignore +45 -0
  2. package/README.md +24 -85
  3. package/dist/package.json +115 -0
  4. package/dist/pnpm-lock.yaml +7447 -0
  5. package/dist/public/explorer.css +244 -111
  6. package/dist/public/explorer.js +523 -278
  7. package/dist/scripts/preinstall.js +112 -0
  8. package/dist/server/index.d.ts.map +1 -1
  9. package/dist/server/index.js +4 -9
  10. package/dist/server/index.js.map +1 -1
  11. package/dist/server/index.ts +5 -10
  12. package/dist/server/service/connection.service.d.ts.map +1 -1
  13. package/dist/server/service/connection.service.js +1 -0
  14. package/dist/server/service/connection.service.js.map +1 -1
  15. package/dist/server/service/connection.service.ts +1 -0
  16. package/dist/server/service/database/base.service.d.ts +4 -0
  17. package/dist/server/service/database/base.service.d.ts.map +1 -1
  18. package/dist/server/service/database/base.service.js +3 -3
  19. package/dist/server/service/database/base.service.js.map +1 -1
  20. package/dist/server/service/database/base.service.ts +8 -3
  21. package/dist/server/service/database/cockroachdb.service.d.ts +5 -0
  22. package/dist/server/service/database/cockroachdb.service.d.ts.map +1 -1
  23. package/dist/server/service/database/cockroachdb.service.js +112 -0
  24. package/dist/server/service/database/cockroachdb.service.js.map +1 -1
  25. package/dist/server/service/database/cockroachdb.service.ts +123 -0
  26. package/dist/server/service/database/database.service.d.ts +4 -0
  27. package/dist/server/service/database/database.service.d.ts.map +1 -1
  28. package/dist/server/service/database/database.service.js +8 -0
  29. package/dist/server/service/database/database.service.js.map +1 -1
  30. package/dist/server/service/database/database.service.ts +9 -0
  31. package/dist/server/service/database/mongodb.service.d.ts +6 -0
  32. package/dist/server/service/database/mongodb.service.d.ts.map +1 -1
  33. package/dist/server/service/database/mongodb.service.js +8 -0
  34. package/dist/server/service/database/mongodb.service.js.map +1 -1
  35. package/dist/server/service/database/mongodb.service.ts +9 -0
  36. package/dist/server/service/database/mssql.service.d.ts +4 -0
  37. package/dist/server/service/database/mssql.service.d.ts.map +1 -1
  38. package/dist/server/service/database/mssql.service.js +105 -0
  39. package/dist/server/service/database/mssql.service.js.map +1 -1
  40. package/dist/server/service/database/mssql.service.ts +118 -0
  41. package/dist/server/service/database/mysql.service.d.ts +4 -0
  42. package/dist/server/service/database/mysql.service.d.ts.map +1 -1
  43. package/dist/server/service/database/mysql.service.js +116 -0
  44. package/dist/server/service/database/mysql.service.js.map +1 -1
  45. package/dist/server/service/database/mysql.service.ts +130 -0
  46. package/dist/server/service/database/oracle.service.d.ts +4 -0
  47. package/dist/server/service/database/oracle.service.d.ts.map +1 -1
  48. package/dist/server/service/database/oracle.service.js +114 -0
  49. package/dist/server/service/database/oracle.service.js.map +1 -1
  50. package/dist/server/service/database/oracle.service.ts +128 -0
  51. package/dist/server/service/database/postgres.service.d.ts +4 -0
  52. package/dist/server/service/database/postgres.service.d.ts.map +1 -1
  53. package/dist/server/service/database/postgres.service.js +120 -0
  54. package/dist/server/service/database/postgres.service.js.map +1 -1
  55. package/dist/server/service/database/postgres.service.ts +131 -0
  56. package/dist/server/service/database/sap.service.d.ts +4 -0
  57. package/dist/server/service/database/sap.service.d.ts.map +1 -1
  58. package/dist/server/service/database/sap.service.js +107 -0
  59. package/dist/server/service/database/sap.service.js.map +1 -1
  60. package/dist/server/service/database/sap.service.ts +120 -0
  61. package/dist/server/service/database/sqlite.service.d.ts +5 -0
  62. package/dist/server/service/database/sqlite.service.d.ts.map +1 -1
  63. package/dist/server/service/database/sqlite.service.js +133 -0
  64. package/dist/server/service/database/sqlite.service.js.map +1 -1
  65. package/dist/server/service/database/sqlite.service.ts +150 -0
  66. package/fdb2.server.pid +1 -0
  67. package/package.json +18 -9
  68. package/packages/vscode/.vscodeignore +44 -0
  69. package/packages/vscode/README.md +62 -0
  70. package/packages/vscode/out/database-services/base.service.js +236 -0
  71. package/packages/vscode/out/database-services/base.service.js.map +1 -0
  72. package/packages/vscode/out/database-services/cockroachdb.service.js +634 -0
  73. package/packages/vscode/out/database-services/cockroachdb.service.js.map +1 -0
  74. package/packages/vscode/out/database-services/connection.service.js +346 -0
  75. package/packages/vscode/out/database-services/connection.service.js.map +1 -0
  76. package/packages/vscode/out/database-services/database.service.js +571 -0
  77. package/packages/vscode/out/database-services/database.service.js.map +1 -0
  78. package/packages/vscode/out/database-services/index.js +18 -0
  79. package/packages/vscode/out/database-services/index.js.map +1 -0
  80. package/packages/vscode/out/database-services/model/connection.entity.js +11 -0
  81. package/packages/vscode/out/database-services/model/connection.entity.js.map +1 -0
  82. package/packages/vscode/out/database-services/model/database.entity.js +35 -0
  83. package/packages/vscode/out/database-services/model/database.entity.js.map +1 -0
  84. package/packages/vscode/out/database-services/mongodb.service.js +458 -0
  85. package/packages/vscode/out/database-services/mongodb.service.js.map +1 -0
  86. package/packages/vscode/out/database-services/mssql.service.js +694 -0
  87. package/packages/vscode/out/database-services/mssql.service.js.map +1 -0
  88. package/packages/vscode/out/database-services/mysql.service.js +735 -0
  89. package/packages/vscode/out/database-services/mysql.service.js.map +1 -0
  90. package/packages/vscode/out/database-services/oracle.service.js +787 -0
  91. package/packages/vscode/out/database-services/oracle.service.js.map +1 -0
  92. package/packages/vscode/out/database-services/postgres.service.js +696 -0
  93. package/packages/vscode/out/database-services/postgres.service.js.map +1 -0
  94. package/packages/vscode/out/database-services/sap.service.js +695 -0
  95. package/packages/vscode/out/database-services/sap.service.js.map +1 -0
  96. package/packages/vscode/out/database-services/sqlite.service.js +532 -0
  97. package/packages/vscode/out/database-services/sqlite.service.js.map +1 -0
  98. package/packages/vscode/out/extension.js +93 -0
  99. package/packages/vscode/out/extension.js.map +1 -0
  100. package/packages/vscode/out/provider/DatabaseTreeProvider.js +159 -0
  101. package/packages/vscode/out/provider/DatabaseTreeProvider.js.map +1 -0
  102. package/packages/vscode/out/provider/WebViewProvider.js +259 -0
  103. package/packages/vscode/out/provider/WebViewProvider.js.map +1 -0
  104. package/packages/vscode/out/service/ConnectionManager.js +105 -0
  105. package/packages/vscode/out/service/ConnectionManager.js.map +1 -0
  106. package/packages/vscode/out/service/DatabaseServiceBridge.js +395 -0
  107. package/packages/vscode/out/service/DatabaseServiceBridge.js.map +1 -0
  108. package/packages/vscode/out/typings/connection.js +3 -0
  109. package/packages/vscode/out/typings/connection.js.map +1 -0
  110. package/packages/vscode/package.json +142 -0
  111. package/packages/vscode/resources/icon.svg +5 -0
  112. package/packages/vscode/resources/webview/_plugin-vue_export-helper.js +6529 -0
  113. package/packages/vscode/resources/webview/_plugin-vue_export-helper.js.map +1 -0
  114. package/packages/vscode/resources/webview/connection.css +69 -0
  115. package/packages/vscode/resources/webview/connection.js +228 -0
  116. package/packages/vscode/resources/webview/connection.js.map +1 -0
  117. package/packages/vscode/resources/webview/database.css +259 -0
  118. package/packages/vscode/resources/webview/database.js +275 -0
  119. package/packages/vscode/resources/webview/database.js.map +1 -0
  120. package/packages/vscode/resources/webview/favicon.ico +0 -0
  121. package/packages/vscode/resources/webview/index.html +9 -0
  122. package/packages/vscode/resources/webview/modules/header.tpl +14 -0
  123. package/packages/vscode/resources/webview/modules/initial_state.tpl +55 -0
  124. package/packages/vscode/resources/webview/query.css +162 -0
  125. package/packages/vscode/resources/webview/query.js +198 -0
  126. package/packages/vscode/resources/webview/query.js.map +1 -0
  127. package/packages/vscode/src/database-services/base.service.js.map +1 -0
  128. package/packages/vscode/src/database-services/base.service.ts +363 -0
  129. package/packages/vscode/src/database-services/cockroachdb.service.js.map +1 -0
  130. package/packages/vscode/src/database-services/cockroachdb.service.ts +659 -0
  131. package/packages/vscode/src/database-services/connection.service.ts +341 -0
  132. package/packages/vscode/src/database-services/database.service.ts +630 -0
  133. package/packages/vscode/src/database-services/index.ts +7 -0
  134. package/packages/vscode/src/database-services/model/connection.entity.js +11 -0
  135. package/packages/vscode/src/database-services/model/connection.entity.js.map +1 -0
  136. package/packages/vscode/src/database-services/model/connection.entity.ts +66 -0
  137. package/packages/vscode/src/database-services/model/database.entity.js +35 -0
  138. package/packages/vscode/src/database-services/model/database.entity.js.map +1 -0
  139. package/packages/vscode/src/database-services/model/database.entity.ts +246 -0
  140. package/packages/vscode/src/database-services/mongodb.service.js.map +1 -0
  141. package/packages/vscode/src/database-services/mongodb.service.ts +454 -0
  142. package/packages/vscode/src/database-services/mssql.service.js.map +1 -0
  143. package/packages/vscode/src/database-services/mssql.service.ts +723 -0
  144. package/packages/vscode/src/database-services/mysql.service.js.map +1 -0
  145. package/packages/vscode/src/database-services/mysql.service.ts +761 -0
  146. package/packages/vscode/src/database-services/oracle.service.js.map +1 -0
  147. package/packages/vscode/src/database-services/oracle.service.ts +832 -0
  148. package/packages/vscode/src/database-services/postgres.service.js.map +1 -0
  149. package/packages/vscode/src/database-services/postgres.service.ts +741 -0
  150. package/packages/vscode/src/database-services/sap.service.js.map +1 -0
  151. package/packages/vscode/src/database-services/sap.service.ts +713 -0
  152. package/packages/vscode/src/database-services/sqlite.service.js.map +1 -0
  153. package/packages/vscode/src/database-services/sqlite.service.ts +559 -0
  154. package/packages/vscode/src/extension.ts +76 -0
  155. package/packages/vscode/src/provider/DatabaseTreeProvider.ts +167 -0
  156. package/packages/vscode/src/provider/WebViewProvider.ts +277 -0
  157. package/packages/vscode/src/service/DatabaseServiceBridge.ts +414 -0
  158. package/packages/vscode/src/typings/connection.ts +90 -0
  159. package/packages/vscode/tsconfig.json +21 -0
  160. package/public/fdb2.png +0 -0
  161. package/server/backups/db_ai_breakout_2026-03-11T08-38-48-677Z.sql +0 -0
  162. package/server/index.ts +5 -10
  163. package/server/model/connection.entity.js +11 -0
  164. package/server/model/connection.entity.js.map +1 -0
  165. package/server/model/database.entity.js +35 -0
  166. package/server/model/database.entity.js.map +1 -0
  167. package/server/service/connection.service.ts +1 -0
  168. package/server/service/database/base.service.ts +8 -3
  169. package/server/service/database/cockroachdb.service.ts +123 -0
  170. package/server/service/database/database.service.ts +9 -0
  171. package/server/service/database/mongodb.service.ts +9 -0
  172. package/server/service/database/mssql.service.ts +118 -0
  173. package/server/service/database/mysql.service.ts +130 -0
  174. package/server/service/database/oracle.service.ts +128 -0
  175. package/server/service/database/postgres.service.ts +131 -0
  176. package/server/service/database/sap.service.ts +120 -0
  177. package/server/service/database/sqlite.service.ts +150 -0
  178. package/server/tsconfig.json +20 -0
  179. package/src/components/connection-editor/index.vue +0 -1
  180. package/src/platform/database/components/db-tools.vue +414 -174
  181. package/src/platform/database/components/table-detail.vue +3 -2
  182. package/src/platform/database/components/table-editor.vue +245 -18
  183. package/src/platform/vscode/bridge.ts +121 -0
  184. package/src/platform/vscode/components/ConnectionPanel.vue +272 -0
  185. package/src/platform/vscode/components/DatabasePanel.vue +532 -0
  186. package/src/platform/vscode/components/QueryPanel.vue +371 -0
  187. package/src/platform/vscode/entry/connection.ts +13 -0
  188. package/src/platform/vscode/entry/database.ts +13 -0
  189. package/src/platform/vscode/entry/query.ts +13 -0
  190. package/src/platform/vscode/index.ts +5 -0
  191. package/src/service/database.ts +2 -6
  192. package/vite.config.ts +46 -6
  193. package/vite.config.vscode.ts +47 -0
@@ -0,0 +1,236 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.BaseDatabaseService = void 0;
4
+ /**
5
+ * 数据库服务基础类
6
+ * 提供所有数据库类型的通用操作
7
+ */
8
+ class BaseDatabaseService {
9
+ /**
10
+ * 通用方法:获取数据库详细信息
11
+ */
12
+ async getDatabaseInfo(dataSource, databaseName) {
13
+ const tables = await this.getTables(dataSource, databaseName);
14
+ return {
15
+ name: databaseName,
16
+ tableCount: tables.length,
17
+ size: await this.getDatabaseSize(dataSource, databaseName),
18
+ tables
19
+ };
20
+ }
21
+ /**
22
+ * 通用方法:获取表详细信息
23
+ */
24
+ async getTableInfo(dataSource, databaseName, tableName) {
25
+ const tables = await this.getTables(dataSource, databaseName);
26
+ const table = tables.find(t => t.name === tableName);
27
+ if (!table) {
28
+ throw new Error(`表 ${tableName} 不存在`);
29
+ }
30
+ // 获取列信息
31
+ table.columns = await this.getColumns(dataSource, databaseName, tableName);
32
+ // 获取索引信息
33
+ table.indexes = await this.getIndexes(dataSource, databaseName, tableName);
34
+ // 获取外键信息
35
+ table.foreignKeys = await this.getForeignKeys(dataSource, databaseName, tableName);
36
+ return table;
37
+ }
38
+ /**
39
+ * 通用方法:获取表数据
40
+ */
41
+ async getTableData(dataSource, databaseName, tableName, page = 1, pageSize = 100, where, orderBy) {
42
+ // 构建查询
43
+ let query = `SELECT * FROM ${this.quoteIdentifier(tableName)}`;
44
+ if (where) {
45
+ query += ` WHERE ${where}`;
46
+ }
47
+ if (orderBy) {
48
+ query += ` ORDER BY ${orderBy}`;
49
+ }
50
+ const offset = (page - 1) * pageSize;
51
+ query += ` LIMIT ${pageSize} OFFSET ${offset}`;
52
+ // 执行数据查询
53
+ const data = await dataSource.query(query);
54
+ // 获取总数
55
+ let countQuery = `SELECT COUNT(*) as total FROM ${this.quoteIdentifier(tableName)}`;
56
+ if (where) {
57
+ countQuery += ` WHERE ${where}`;
58
+ }
59
+ const countResult = await dataSource.query(countQuery);
60
+ const total = countResult[0]?.total || 0;
61
+ return { data, total };
62
+ }
63
+ /**
64
+ * 通用方法:执行SQL查询
65
+ */
66
+ async executeQuery(dataSource, sql) {
67
+ try {
68
+ const result = await dataSource.query(sql);
69
+ return result;
70
+ }
71
+ catch (error) {
72
+ console.error('SQL执行失败:', error);
73
+ throw error;
74
+ }
75
+ }
76
+ /**
77
+ * 批量执行SQL查询(支持多条语句)
78
+ */
79
+ async executeBatchQuery(dataSource, sqlStatements, options) {
80
+ const { batchSize = 100, useTransaction = true, continueOnError = false } = options || {};
81
+ let success = 0;
82
+ let failed = 0;
83
+ const errors = [];
84
+ // 分批处理SQL语句
85
+ for (let i = 0; i < sqlStatements.length; i += batchSize) {
86
+ const batch = sqlStatements.slice(i, i + batchSize);
87
+ try {
88
+ if (useTransaction) {
89
+ // 使用事务执行批次
90
+ await dataSource.transaction(async (manager) => {
91
+ for (const statement of batch) {
92
+ try {
93
+ await manager.query(statement);
94
+ success++;
95
+ }
96
+ catch (error) {
97
+ failed++;
98
+ errors.push({ statement, error: error.message });
99
+ if (!continueOnError) {
100
+ throw error;
101
+ }
102
+ }
103
+ }
104
+ });
105
+ }
106
+ else {
107
+ // 非事务执行批次
108
+ for (const statement of batch) {
109
+ try {
110
+ await dataSource.query(statement);
111
+ success++;
112
+ }
113
+ catch (error) {
114
+ failed++;
115
+ errors.push({ statement, error: error.message });
116
+ if (!continueOnError) {
117
+ throw error;
118
+ }
119
+ }
120
+ }
121
+ }
122
+ }
123
+ catch (batchError) {
124
+ console.error(`批次执行失败 (${i}-${i + batchSize}):`, batchError);
125
+ if (!continueOnError) {
126
+ throw new Error(`批次执行失败: ${batchError.message}`);
127
+ }
128
+ }
129
+ }
130
+ return { success, failed, errors };
131
+ }
132
+ /**
133
+ * 执行文件中的SQL(支持大文件)
134
+ */
135
+ async executeSqlFile(dataSource, filePath, options) {
136
+ const fs = require('fs');
137
+ const sqlContent = fs.readFileSync(filePath, 'utf8');
138
+ // 分割SQL语句
139
+ const sqlStatements = sqlContent
140
+ .split(';')
141
+ .map(statement => statement.trim())
142
+ .filter(statement => statement.length > 0);
143
+ return this.executeBatchQuery(dataSource, sqlStatements, options);
144
+ }
145
+ /**
146
+ * 通用方法:测试连接
147
+ */
148
+ async testConnection(dataSource) {
149
+ try {
150
+ await dataSource.query('SELECT 1');
151
+ return true;
152
+ }
153
+ catch (error) {
154
+ //this.ctx.logger.error('数据库连接测试失败:', error);
155
+ console.error(error);
156
+ return false;
157
+ }
158
+ }
159
+ /**
160
+ * 通用方法:给标识符加引号
161
+ */
162
+ quoteIdentifier(identifier) {
163
+ return `"${identifier}"`;
164
+ }
165
+ /**
166
+ * 通用方法:构建分页查询
167
+ */
168
+ buildPaginationQuery(baseQuery, page, pageSize) {
169
+ const offset = (page - 1) * pageSize;
170
+ return `${baseQuery} LIMIT ${pageSize} OFFSET ${offset}`;
171
+ }
172
+ /**
173
+ * 通用方法:构建计数查询
174
+ */
175
+ buildCountQuery(baseQuery) {
176
+ return `SELECT COUNT(*) as total FROM (${baseQuery}) as count_query`;
177
+ }
178
+ /**
179
+ * 获取视图列表 - 子类实现(如果支持)
180
+ */
181
+ async getViews(dataSource, database) {
182
+ // 默认实现,子类可以重写
183
+ throw new Error(`数据库类型 ${this.getDatabaseType()} 不支持视图`);
184
+ }
185
+ /**
186
+ * 获取视图定义 - 子类实现(如果支持)
187
+ */
188
+ async getViewDefinition(dataSource, database, viewName) {
189
+ // 默认实现,子类可以重写
190
+ throw new Error(`数据库类型 ${this.getDatabaseType()} 不支持视图`);
191
+ }
192
+ /**
193
+ * 获取存储过程列表 - 子类实现(如果支持)
194
+ */
195
+ async getProcedures(dataSource, database) {
196
+ // 默认实现,子类可以重写
197
+ throw new Error(`数据库类型 ${this.getDatabaseType()} 不支持存储过程`);
198
+ }
199
+ /**
200
+ * 获取存储过程定义 - 子类实现(如果支持)
201
+ */
202
+ async getProcedureDefinition(dataSource, database, procedureName) {
203
+ // 默认实现,子类可以重写
204
+ throw new Error(`数据库类型 ${this.getDatabaseType()} 不支持存储过程`);
205
+ }
206
+ /**
207
+ * 创建数据库 - 子类实现(如果支持)
208
+ */
209
+ async createDatabase(dataSource, databaseName, options) {
210
+ // 默认实现,子类可以重写
211
+ throw new Error(`数据库类型 ${this.getDatabaseType()} 不支持创建数据库`);
212
+ }
213
+ /**
214
+ * 删除数据库 - 子类实现(如果支持)
215
+ */
216
+ async dropDatabase(dataSource, databaseName) {
217
+ // 默认实现,子类可以重写
218
+ throw new Error(`数据库类型 ${this.getDatabaseType()} 不支持删除数据库`);
219
+ }
220
+ /**
221
+ * 备份数据库 - 子类实现(如果支持)
222
+ */
223
+ async backupDatabase(dataSource, databaseName, options) {
224
+ // 默认实现,子类可以重写
225
+ throw new Error(`数据库类型 ${this.getDatabaseType()} 不支持备份数据库`);
226
+ }
227
+ /**
228
+ * 恢复数据库 - 子类实现(如果支持)
229
+ */
230
+ async restoreDatabase(dataSource, databaseName, filePath, options) {
231
+ // 默认实现,子类可以重写
232
+ throw new Error(`数据库类型 ${this.getDatabaseType()} 不支持恢复数据库`);
233
+ }
234
+ }
235
+ exports.BaseDatabaseService = BaseDatabaseService;
236
+ //# sourceMappingURL=base.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base.service.js","sourceRoot":"","sources":["../../src/database-services/base.service.ts"],"names":[],"mappings":"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"}