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,395 @@
1
+ "use strict";
2
+ /**
3
+ * 数据库服务桥接层
4
+ * 用于 VSCode 扩展调用 server 目录下的现有数据库服务
5
+ * 为了简化部署,这里直接实现必要的功能,复用 server 目录的逻辑
6
+ */
7
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
8
+ if (k2 === undefined) k2 = k;
9
+ var desc = Object.getOwnPropertyDescriptor(m, k);
10
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
11
+ desc = { enumerable: true, get: function() { return m[k]; } };
12
+ }
13
+ Object.defineProperty(o, k2, desc);
14
+ }) : (function(o, m, k, k2) {
15
+ if (k2 === undefined) k2 = k;
16
+ o[k2] = m[k];
17
+ }));
18
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
19
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
20
+ }) : function(o, v) {
21
+ o["default"] = v;
22
+ });
23
+ var __importStar = (this && this.__importStar) || (function () {
24
+ var ownKeys = function(o) {
25
+ ownKeys = Object.getOwnPropertyNames || function (o) {
26
+ var ar = [];
27
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
28
+ return ar;
29
+ };
30
+ return ownKeys(o);
31
+ };
32
+ return function (mod) {
33
+ if (mod && mod.__esModule) return mod;
34
+ var result = {};
35
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
36
+ __setModuleDefault(result, mod);
37
+ return result;
38
+ };
39
+ })();
40
+ Object.defineProperty(exports, "__esModule", { value: true });
41
+ exports.DatabaseServiceBridge = void 0;
42
+ exports.getDatabaseServiceBridge = getDatabaseServiceBridge;
43
+ const fs = __importStar(require("fs"));
44
+ const path = __importStar(require("path"));
45
+ const os = __importStar(require("os"));
46
+ const typeorm_1 = require("typeorm");
47
+ // 引入数据库服务接口(从本地复制的服务)
48
+ const mysql_service_1 = require("../database-services/mysql.service");
49
+ const postgres_service_1 = require("../database-services/postgres.service");
50
+ const sqlite_service_1 = require("../database-services/sqlite.service");
51
+ const oracle_service_1 = require("../database-services/oracle.service");
52
+ const mssql_service_1 = require("../database-services/mssql.service");
53
+ const cockroachdb_service_1 = require("../database-services/cockroachdb.service");
54
+ const mongodb_service_1 = require("../database-services/mongodb.service");
55
+ const sap_service_1 = require("../database-services/sap.service");
56
+ /**
57
+ * 数据库服务桥接类
58
+ * 直接复用 server 目录下的服务
59
+ */
60
+ class DatabaseServiceBridge {
61
+ constructor() {
62
+ /**
63
+ * 活跃的数据库连接实例
64
+ */
65
+ this.activeConnections = new Map();
66
+ const dataDir = process.env.DB_TOOL_DATA_DIR || path.join(os.homedir(), '.fdb2');
67
+ this.configPath = path.join(dataDir, 'connections.json');
68
+ this.mysqlService = new mysql_service_1.MySQLService();
69
+ this.postgreSQLService = new postgres_service_1.PostgreSQLService();
70
+ this.sqliteService = new sqlite_service_1.SQLiteService();
71
+ this.oracleService = new oracle_service_1.OracleService();
72
+ this.sqlServerService = new mssql_service_1.SQLServerService();
73
+ this.cockroachDBService = new cockroachdb_service_1.CockroachDBService();
74
+ this.mongoDBService = new mongodb_service_1.MongoDBService();
75
+ this.sapHANADatabaseService = new sap_service_1.SAPHANADatabaseService();
76
+ }
77
+ /**
78
+ * 初始化服务
79
+ */
80
+ async init() {
81
+ const configDir = path.dirname(this.configPath);
82
+ if (!fs.existsSync(configDir)) {
83
+ fs.mkdirSync(configDir, { recursive: true });
84
+ }
85
+ }
86
+ /**
87
+ * 连接管理接口
88
+ */
89
+ get connection() {
90
+ return {
91
+ getAllConnections: this.getAllConnections.bind(this),
92
+ getConnectionById: this.getConnectionById.bind(this),
93
+ addConnection: this.addConnection.bind(this),
94
+ updateConnection: this.updateConnection.bind(this),
95
+ deleteConnection: this.deleteConnection.bind(this),
96
+ testConnection: this.testConnection.bind(this)
97
+ };
98
+ }
99
+ /**
100
+ * 数据库管理接口
101
+ */
102
+ get database() {
103
+ return {
104
+ getDatabases: this.getDatabases.bind(this),
105
+ getTables: this.getTables.bind(this),
106
+ executeQuery: this.executeQuery.bind(this),
107
+ getViews: this.getViews.bind(this),
108
+ getProcedures: this.getProcedures.bind(this)
109
+ };
110
+ }
111
+ /**
112
+ * 连接管理实现
113
+ */
114
+ async getAllConnections() {
115
+ try {
116
+ if (!fs.existsSync(this.configPath)) {
117
+ return [];
118
+ }
119
+ const data = fs.readFileSync(this.configPath, 'utf8');
120
+ return JSON.parse(data);
121
+ }
122
+ catch (error) {
123
+ console.error('读取连接配置失败:', error);
124
+ return [];
125
+ }
126
+ }
127
+ async getConnectionById(id) {
128
+ const connections = await this.getAllConnections();
129
+ return connections.find(conn => conn.id === id) || null;
130
+ }
131
+ async addConnection(connection) {
132
+ const connections = await this.getAllConnections();
133
+ if (connections.find(conn => conn.name === connection.name)) {
134
+ throw new Error('连接名称已存在');
135
+ }
136
+ connection.id = this.generateId();
137
+ connection.createdAt = new Date();
138
+ connection.updatedAt = new Date();
139
+ connection.enabled = connection.enabled !== undefined ? connection.enabled : true;
140
+ connections.push(connection);
141
+ await this.saveConnections(connections);
142
+ return connection;
143
+ }
144
+ async updateConnection(id, updates) {
145
+ const connections = await this.getAllConnections();
146
+ const index = connections.findIndex(conn => conn.id === id);
147
+ if (index === -1) {
148
+ throw new Error('连接配置不存在');
149
+ }
150
+ if (updates.name && connections.find((conn, idx) => conn.name === updates.name && idx !== index)) {
151
+ throw new Error('连接名称已存在');
152
+ }
153
+ connections[index] = { ...connections[index], ...updates, updatedAt: new Date() };
154
+ await this.saveConnections(connections);
155
+ return connections[index];
156
+ }
157
+ async deleteConnection(id) {
158
+ const connections = await this.getAllConnections();
159
+ const filteredConnections = connections.filter(conn => conn.id !== id);
160
+ if (filteredConnections.length === connections.length) {
161
+ throw new Error('连接配置不存在');
162
+ }
163
+ if (this.activeConnections.has(id)) {
164
+ await this.activeConnections.get(id)?.destroy();
165
+ this.activeConnections.delete(id);
166
+ }
167
+ await this.saveConnections(filteredConnections);
168
+ }
169
+ async testConnection(connection) {
170
+ try {
171
+ const tempDataSource = await this.createTypeORMDataSource(connection);
172
+ await tempDataSource.query('SELECT 1');
173
+ await tempDataSource.destroy();
174
+ return true;
175
+ }
176
+ catch (error) {
177
+ console.error(error);
178
+ return false;
179
+ }
180
+ }
181
+ /**
182
+ * 数据库管理实现
183
+ */
184
+ async getDatabases(connectionId) {
185
+ const dataSource = await this.getActiveConnection(connectionId);
186
+ const databaseService = this.getDatabaseService(dataSource.options.type);
187
+ return databaseService.getDatabases(dataSource);
188
+ }
189
+ async getTables(connectionId, databaseName) {
190
+ const dataSource = await this.getActiveConnection(connectionId, databaseName);
191
+ const databaseService = this.getDatabaseService(dataSource.options.type);
192
+ return databaseService.getTables(dataSource, databaseName);
193
+ }
194
+ async executeQuery(connectionId, sql, databaseName) {
195
+ const dataSource = await this.getActiveConnection(connectionId, databaseName);
196
+ const databaseService = this.getDatabaseService(dataSource.options.type);
197
+ return databaseService.executeQuery(dataSource, sql);
198
+ }
199
+ async getViews(connectionId, databaseName) {
200
+ const dataSource = await this.getActiveConnection(connectionId, databaseName);
201
+ const databaseService = this.getDatabaseService(dataSource.options.type);
202
+ return databaseService.getViews(dataSource, databaseName);
203
+ }
204
+ async getProcedures(connectionId, databaseName) {
205
+ const dataSource = await this.getActiveConnection(connectionId, databaseName);
206
+ const databaseService = this.getDatabaseService(dataSource.options.type);
207
+ return databaseService.getProcedures(dataSource, databaseName);
208
+ }
209
+ /**
210
+ * 获取活跃的数据库连接
211
+ */
212
+ async getActiveConnection(id, database) {
213
+ const key = database ? `${id}_${database}` : id;
214
+ if (this.activeConnections.has(key)) {
215
+ const db = this.activeConnections.get(key);
216
+ if (db?.isInitialized) {
217
+ return db;
218
+ }
219
+ else {
220
+ this.activeConnections.delete(key);
221
+ }
222
+ }
223
+ if (this.activeConnections.size >= 10) {
224
+ const oldestKey = this.activeConnections.keys().next().value || '';
225
+ const oldestConnection = this.activeConnections.get(oldestKey);
226
+ try {
227
+ await oldestConnection?.destroy();
228
+ }
229
+ catch (error) {
230
+ console.error(`关闭旧连接 ${oldestKey} 失败:`, error);
231
+ }
232
+ this.activeConnections.delete(oldestKey);
233
+ }
234
+ const connectionConfig = await this.getConnectionById(id);
235
+ if (!connectionConfig) {
236
+ throw new Error('连接配置不存在');
237
+ }
238
+ const updatedConnectionConfig = {
239
+ ...connectionConfig,
240
+ database: database || connectionConfig.database
241
+ };
242
+ const dataSource = await this.createTypeORMDataSource(updatedConnectionConfig);
243
+ this.activeConnections.set(key, dataSource);
244
+ return dataSource;
245
+ }
246
+ /**
247
+ * 创建TypeORM数据源
248
+ */
249
+ async createTypeORMDataSource(connectionConfig) {
250
+ const connectionOptions = this.getTypeORMOptions(connectionConfig);
251
+ return new typeorm_1.DataSource(connectionOptions).initialize();
252
+ }
253
+ /**
254
+ * 获取TypeORM连接配置
255
+ */
256
+ getTypeORMOptions(connectionConfig) {
257
+ const baseOptions = {
258
+ type: connectionConfig.type,
259
+ host: connectionConfig.host,
260
+ port: connectionConfig.port,
261
+ username: connectionConfig.username,
262
+ password: connectionConfig.password,
263
+ database: connectionConfig.database,
264
+ synchronize: false,
265
+ logging: false,
266
+ extra: {
267
+ multipleStatements: true
268
+ },
269
+ ...connectionConfig.options
270
+ };
271
+ switch (connectionConfig.type.toLowerCase()) {
272
+ case 'sqlite':
273
+ return {
274
+ ...baseOptions,
275
+ type: 'sqlite',
276
+ database: connectionConfig.database,
277
+ host: undefined,
278
+ port: undefined,
279
+ username: undefined,
280
+ password: undefined
281
+ };
282
+ case 'postgres':
283
+ case 'postgresql':
284
+ return {
285
+ ...baseOptions,
286
+ type: 'postgres',
287
+ ssl: connectionConfig.options?.ssl || false
288
+ };
289
+ case 'oracle':
290
+ return {
291
+ ...baseOptions,
292
+ type: 'oracle',
293
+ connectString: `${connectionConfig.host}:${connectionConfig.port}/${connectionConfig.database}`,
294
+ host: undefined,
295
+ port: undefined,
296
+ database: undefined,
297
+ extra: {
298
+ connectionTimeout: 60000,
299
+ poolMax: 10,
300
+ poolMin: 1,
301
+ poolIncrement: 1
302
+ }
303
+ };
304
+ case 'mssql':
305
+ case 'sqlserver':
306
+ return {
307
+ ...baseOptions,
308
+ type: 'mssql',
309
+ options: {
310
+ encrypt: connectionConfig.options?.encrypt || false,
311
+ trustServerCertificate: true
312
+ },
313
+ extra: {
314
+ connectionTimeout: 60000,
315
+ requestTimeout: 15000
316
+ }
317
+ };
318
+ default:
319
+ return baseOptions;
320
+ }
321
+ }
322
+ /**
323
+ * 获取数据库服务实例
324
+ */
325
+ getDatabaseService(type) {
326
+ switch (type.toLowerCase()) {
327
+ case 'mysql':
328
+ case 'aurora-mysql':
329
+ case 'auroramysql':
330
+ return this.mysqlService;
331
+ case 'postgres':
332
+ case 'postgresql':
333
+ case 'aurora-postgres':
334
+ case 'aurorapostgres':
335
+ case 'aurora-postgresql':
336
+ return this.postgreSQLService;
337
+ case 'sqlite':
338
+ case 'better-sqlite3':
339
+ case 'bettersqlite3':
340
+ return this.sqliteService;
341
+ case 'oracle':
342
+ return this.oracleService;
343
+ case 'mssql':
344
+ case 'sqlserver':
345
+ return this.sqlServerService;
346
+ case 'cockroachdb':
347
+ case 'cockroach':
348
+ return this.cockroachDBService;
349
+ case 'mongodb':
350
+ case 'mongo':
351
+ return this.mongoDBService;
352
+ case 'sap':
353
+ case 'sap-hana':
354
+ case 'saphana':
355
+ return this.sapHANADatabaseService;
356
+ default:
357
+ throw new Error(`不支持的数据库类型: ${type}`);
358
+ }
359
+ }
360
+ /**
361
+ * 保存连接配置到文件
362
+ */
363
+ async saveConnections(connections) {
364
+ try {
365
+ const dir = path.dirname(this.configPath);
366
+ if (!fs.existsSync(dir)) {
367
+ fs.mkdirSync(dir, { recursive: true });
368
+ }
369
+ fs.writeFileSync(this.configPath, JSON.stringify(connections, null, 2), 'utf8');
370
+ }
371
+ catch (error) {
372
+ console.error('保存连接配置失败:', error);
373
+ throw error;
374
+ }
375
+ }
376
+ /**
377
+ * 生成唯一ID
378
+ */
379
+ generateId() {
380
+ return Date.now().toString(36) + Math.random().toString(36).substr(2);
381
+ }
382
+ }
383
+ exports.DatabaseServiceBridge = DatabaseServiceBridge;
384
+ // 创建全局单例
385
+ let bridgeInstance = null;
386
+ /**
387
+ * 获取数据库服务桥接实例
388
+ */
389
+ function getDatabaseServiceBridge() {
390
+ if (!bridgeInstance) {
391
+ bridgeInstance = new DatabaseServiceBridge();
392
+ }
393
+ return bridgeInstance;
394
+ }
395
+ //# sourceMappingURL=DatabaseServiceBridge.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DatabaseServiceBridge.js","sourceRoot":"","sources":["../../src/service/DatabaseServiceBridge.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=connection.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"connection.js","sourceRoot":"","sources":["../../src/typings/connection.ts"],"names":[],"mappings":""}
@@ -0,0 +1,142 @@
1
+ {
2
+ "name": "fdb2-vscode",
3
+ "displayName": "fdb2 - Database Tool",
4
+ "description": "强大的数据库管理工具,支持多种数据库类型",
5
+ "version": "1.0.0",
6
+ "publisher": "fdb2",
7
+ "private": true,
8
+ "type": "commonjs",
9
+ "engines": {
10
+ "vscode": "^1.75.0"
11
+ },
12
+ "categories": [
13
+ "Other",
14
+ "Data Science"
15
+ ],
16
+ "activationEvents": [
17
+ "onView:databaseExplorer",
18
+ "onCommand:fdb2.openQueryPanel"
19
+ ],
20
+ "main": "./out/extension.js",
21
+ "contributes": {
22
+ "viewsContainers": {
23
+ "activitybar": [
24
+ {
25
+ "id": "fdb2",
26
+ "title": "Database Tool",
27
+ "icon": "resources/icon.svg"
28
+ }
29
+ ]
30
+ },
31
+ "views": {
32
+ "fdb2": [
33
+ {
34
+ "id": "databaseExplorer",
35
+ "name": "数据库连接"
36
+ }
37
+ ]
38
+ },
39
+ "commands": [
40
+ {
41
+ "command": "fdb2.addConnection",
42
+ "title": "添加连接",
43
+ "icon": "$(add)"
44
+ },
45
+ {
46
+ "command": "fdb2.refreshConnections",
47
+ "title": "刷新",
48
+ "icon": "$(refresh)"
49
+ },
50
+ {
51
+ "command": "fdb2.openQueryPanel",
52
+ "title": "打开查询面板",
53
+ "icon": "$(terminal)"
54
+ },
55
+ {
56
+ "command": "fdb2.openDatabasePanel",
57
+ "title": "打开数据库管理",
58
+ "icon": "$(database)"
59
+ },
60
+ {
61
+ "command": "fdb2.deleteConnection",
62
+ "title": "删除连接",
63
+ "icon": "$(trash)"
64
+ },
65
+ {
66
+ "command": "fdb2.editConnection",
67
+ "title": "编辑连接",
68
+ "icon": "$(edit)"
69
+ }
70
+ ],
71
+ "menus": {
72
+ "view/title": [
73
+ {
74
+ "command": "fdb2.addConnection",
75
+ "when": "view == databaseExplorer",
76
+ "group": "navigation"
77
+ },
78
+ {
79
+ "command": "fdb2.refreshConnections",
80
+ "when": "view == databaseExplorer",
81
+ "group": "navigation"
82
+ }
83
+ ],
84
+ "view/item/context": [
85
+ {
86
+ "command": "fdb2.deleteConnection",
87
+ "when": "view == databaseExplorer && viewItem == connection",
88
+ "group": "edit"
89
+ },
90
+ {
91
+ "command": "fdb2.editConnection",
92
+ "when": "view == databaseExplorer && viewItem == connection",
93
+ "group": "edit"
94
+ }
95
+ ]
96
+ },
97
+ "configuration": {
98
+ "title": "fdb2",
99
+ "properties": {
100
+ "fdb2.defaultPort": {
101
+ "type": "number",
102
+ "default": 3306,
103
+ "description": "默认数据库端口"
104
+ },
105
+ "fdb2.queryLimit": {
106
+ "type": "number",
107
+ "default": 100,
108
+ "description": "查询结果限制"
109
+ },
110
+ "fdb2.autoReconnect": {
111
+ "type": "boolean",
112
+ "default": true,
113
+ "description": "自动重连"
114
+ }
115
+ }
116
+ }
117
+ },
118
+ "scripts": {
119
+ "vscode:prepublish": "npm run compile",
120
+ "compile": "tsc -p ./",
121
+ "watch": "tsc -watch -p ./",
122
+ "pretest": "npm run compile && npm run lint",
123
+ "lint": "eslint src --ext ts",
124
+ "test": "vscode-test"
125
+ },
126
+ "devDependencies": {
127
+ "@types/node": "^18.0.0",
128
+ "@types/vscode": "^1.75.0",
129
+ "@typescript-eslint/eslint-plugin": "^6.0.0",
130
+ "@typescript-eslint/parser": "^6.0.0",
131
+ "eslint": "^8.45.0",
132
+ "typescript": "^5.0.0",
133
+ "@vscode/test-electron": "^2.3.0"
134
+ },
135
+ "dependencies": {
136
+ "mysql2": "^3.16.3",
137
+ "pg": "^8.18.0",
138
+ "sqlite3": "^5.1.7",
139
+ "typeorm": "^0.3.28",
140
+ "oracledb": "^6.10.0"
141
+ }
142
+ }
@@ -0,0 +1,5 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
2
+ <ellipse cx="12" cy="5" rx="9" ry="3"></ellipse>
3
+ <path d="M21 12c0 1.66-4 3-9 3s-9-1.34-9-3"></path>
4
+ <path d="M3 5v14c0 1.66 4 3 9 3s9-1.34 9-3V5"></path>
5
+ </svg>