fdb2 1.0.6 → 1.0.7

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 (192) 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 +518 -275
  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/package.json +18 -9
  67. package/packages/vscode/.vscodeignore +44 -0
  68. package/packages/vscode/README.md +62 -0
  69. package/packages/vscode/out/database-services/base.service.js +236 -0
  70. package/packages/vscode/out/database-services/base.service.js.map +1 -0
  71. package/packages/vscode/out/database-services/cockroachdb.service.js +634 -0
  72. package/packages/vscode/out/database-services/cockroachdb.service.js.map +1 -0
  73. package/packages/vscode/out/database-services/connection.service.js +346 -0
  74. package/packages/vscode/out/database-services/connection.service.js.map +1 -0
  75. package/packages/vscode/out/database-services/database.service.js +571 -0
  76. package/packages/vscode/out/database-services/database.service.js.map +1 -0
  77. package/packages/vscode/out/database-services/index.js +18 -0
  78. package/packages/vscode/out/database-services/index.js.map +1 -0
  79. package/packages/vscode/out/database-services/model/connection.entity.js +11 -0
  80. package/packages/vscode/out/database-services/model/connection.entity.js.map +1 -0
  81. package/packages/vscode/out/database-services/model/database.entity.js +35 -0
  82. package/packages/vscode/out/database-services/model/database.entity.js.map +1 -0
  83. package/packages/vscode/out/database-services/mongodb.service.js +458 -0
  84. package/packages/vscode/out/database-services/mongodb.service.js.map +1 -0
  85. package/packages/vscode/out/database-services/mssql.service.js +694 -0
  86. package/packages/vscode/out/database-services/mssql.service.js.map +1 -0
  87. package/packages/vscode/out/database-services/mysql.service.js +735 -0
  88. package/packages/vscode/out/database-services/mysql.service.js.map +1 -0
  89. package/packages/vscode/out/database-services/oracle.service.js +787 -0
  90. package/packages/vscode/out/database-services/oracle.service.js.map +1 -0
  91. package/packages/vscode/out/database-services/postgres.service.js +696 -0
  92. package/packages/vscode/out/database-services/postgres.service.js.map +1 -0
  93. package/packages/vscode/out/database-services/sap.service.js +695 -0
  94. package/packages/vscode/out/database-services/sap.service.js.map +1 -0
  95. package/packages/vscode/out/database-services/sqlite.service.js +532 -0
  96. package/packages/vscode/out/database-services/sqlite.service.js.map +1 -0
  97. package/packages/vscode/out/extension.js +93 -0
  98. package/packages/vscode/out/extension.js.map +1 -0
  99. package/packages/vscode/out/provider/DatabaseTreeProvider.js +159 -0
  100. package/packages/vscode/out/provider/DatabaseTreeProvider.js.map +1 -0
  101. package/packages/vscode/out/provider/WebViewProvider.js +259 -0
  102. package/packages/vscode/out/provider/WebViewProvider.js.map +1 -0
  103. package/packages/vscode/out/service/ConnectionManager.js +105 -0
  104. package/packages/vscode/out/service/ConnectionManager.js.map +1 -0
  105. package/packages/vscode/out/service/DatabaseServiceBridge.js +395 -0
  106. package/packages/vscode/out/service/DatabaseServiceBridge.js.map +1 -0
  107. package/packages/vscode/out/typings/connection.js +3 -0
  108. package/packages/vscode/out/typings/connection.js.map +1 -0
  109. package/packages/vscode/package.json +142 -0
  110. package/packages/vscode/resources/icon.svg +5 -0
  111. package/packages/vscode/resources/webview/_plugin-vue_export-helper.js +6529 -0
  112. package/packages/vscode/resources/webview/_plugin-vue_export-helper.js.map +1 -0
  113. package/packages/vscode/resources/webview/connection.css +69 -0
  114. package/packages/vscode/resources/webview/connection.js +228 -0
  115. package/packages/vscode/resources/webview/connection.js.map +1 -0
  116. package/packages/vscode/resources/webview/database.css +259 -0
  117. package/packages/vscode/resources/webview/database.js +275 -0
  118. package/packages/vscode/resources/webview/database.js.map +1 -0
  119. package/packages/vscode/resources/webview/favicon.ico +0 -0
  120. package/packages/vscode/resources/webview/index.html +9 -0
  121. package/packages/vscode/resources/webview/modules/header.tpl +14 -0
  122. package/packages/vscode/resources/webview/modules/initial_state.tpl +55 -0
  123. package/packages/vscode/resources/webview/query.css +162 -0
  124. package/packages/vscode/resources/webview/query.js +198 -0
  125. package/packages/vscode/resources/webview/query.js.map +1 -0
  126. package/packages/vscode/src/database-services/base.service.js.map +1 -0
  127. package/packages/vscode/src/database-services/base.service.ts +363 -0
  128. package/packages/vscode/src/database-services/cockroachdb.service.js.map +1 -0
  129. package/packages/vscode/src/database-services/cockroachdb.service.ts +659 -0
  130. package/packages/vscode/src/database-services/connection.service.ts +341 -0
  131. package/packages/vscode/src/database-services/database.service.ts +630 -0
  132. package/packages/vscode/src/database-services/index.ts +7 -0
  133. package/packages/vscode/src/database-services/model/connection.entity.js +11 -0
  134. package/packages/vscode/src/database-services/model/connection.entity.js.map +1 -0
  135. package/packages/vscode/src/database-services/model/connection.entity.ts +66 -0
  136. package/packages/vscode/src/database-services/model/database.entity.js +35 -0
  137. package/packages/vscode/src/database-services/model/database.entity.js.map +1 -0
  138. package/packages/vscode/src/database-services/model/database.entity.ts +246 -0
  139. package/packages/vscode/src/database-services/mongodb.service.js.map +1 -0
  140. package/packages/vscode/src/database-services/mongodb.service.ts +454 -0
  141. package/packages/vscode/src/database-services/mssql.service.js.map +1 -0
  142. package/packages/vscode/src/database-services/mssql.service.ts +723 -0
  143. package/packages/vscode/src/database-services/mysql.service.js.map +1 -0
  144. package/packages/vscode/src/database-services/mysql.service.ts +761 -0
  145. package/packages/vscode/src/database-services/oracle.service.js.map +1 -0
  146. package/packages/vscode/src/database-services/oracle.service.ts +832 -0
  147. package/packages/vscode/src/database-services/postgres.service.js.map +1 -0
  148. package/packages/vscode/src/database-services/postgres.service.ts +741 -0
  149. package/packages/vscode/src/database-services/sap.service.js.map +1 -0
  150. package/packages/vscode/src/database-services/sap.service.ts +713 -0
  151. package/packages/vscode/src/database-services/sqlite.service.js.map +1 -0
  152. package/packages/vscode/src/database-services/sqlite.service.ts +559 -0
  153. package/packages/vscode/src/extension.ts +76 -0
  154. package/packages/vscode/src/provider/DatabaseTreeProvider.ts +167 -0
  155. package/packages/vscode/src/provider/WebViewProvider.ts +277 -0
  156. package/packages/vscode/src/service/DatabaseServiceBridge.ts +414 -0
  157. package/packages/vscode/src/typings/connection.ts +90 -0
  158. package/packages/vscode/tsconfig.json +21 -0
  159. package/public/fdb2.png +0 -0
  160. package/server/backups/db_ai_breakout_2026-03-11T08-38-48-677Z.sql +0 -0
  161. package/server/index.ts +5 -10
  162. package/server/model/connection.entity.js +11 -0
  163. package/server/model/connection.entity.js.map +1 -0
  164. package/server/model/database.entity.js +35 -0
  165. package/server/model/database.entity.js.map +1 -0
  166. package/server/service/connection.service.ts +1 -0
  167. package/server/service/database/base.service.ts +8 -3
  168. package/server/service/database/cockroachdb.service.ts +123 -0
  169. package/server/service/database/database.service.ts +9 -0
  170. package/server/service/database/mongodb.service.ts +9 -0
  171. package/server/service/database/mssql.service.ts +118 -0
  172. package/server/service/database/mysql.service.ts +130 -0
  173. package/server/service/database/oracle.service.ts +128 -0
  174. package/server/service/database/postgres.service.ts +131 -0
  175. package/server/service/database/sap.service.ts +120 -0
  176. package/server/service/database/sqlite.service.ts +150 -0
  177. package/server/tsconfig.json +20 -0
  178. package/src/components/connection-editor/index.vue +0 -1
  179. package/src/platform/database/components/db-tools.vue +414 -174
  180. package/src/platform/database/components/table-detail.vue +1 -0
  181. package/src/platform/database/components/table-editor.vue +245 -18
  182. package/src/platform/vscode/bridge.ts +121 -0
  183. package/src/platform/vscode/components/ConnectionPanel.vue +272 -0
  184. package/src/platform/vscode/components/DatabasePanel.vue +532 -0
  185. package/src/platform/vscode/components/QueryPanel.vue +371 -0
  186. package/src/platform/vscode/entry/connection.ts +13 -0
  187. package/src/platform/vscode/entry/database.ts +13 -0
  188. package/src/platform/vscode/entry/query.ts +13 -0
  189. package/src/platform/vscode/index.ts +5 -0
  190. package/src/service/database.ts +2 -6
  191. package/vite.config.ts +46 -6
  192. package/vite.config.vscode.ts +47 -0
@@ -0,0 +1,272 @@
1
+ <template>
2
+ <div class="connection-form">
3
+ <h1 class="panel-title">{{ isEditMode ? '编辑' : '添加' }}数据库连接</h1>
4
+
5
+ <form @submit.prevent="handleSubmit">
6
+ <div class="form-group">
7
+ <label class="form-label">连接名称</label>
8
+ <input
9
+ type="text"
10
+ v-model="form.name"
11
+ class="form-control"
12
+ placeholder="例如:生产环境 MySQL"
13
+ required
14
+ />
15
+ </div>
16
+
17
+ <div class="form-group">
18
+ <label class="form-label">数据库类型</label>
19
+ <select v-model="form.type" class="form-control" @change="handleTypeChange" required>
20
+ <option v-for="db in databaseTypes" :key="db.type" :value="db.type">
21
+ {{ db.name }}
22
+ </option>
23
+ </select>
24
+ </div>
25
+
26
+ <div class="form-row" v-if="form.type !== 'sqlite'">
27
+ <div class="form-col form-group">
28
+ <label class="form-label">主机地址</label>
29
+ <input
30
+ type="text"
31
+ v-model="form.host"
32
+ class="form-control"
33
+ placeholder="localhost"
34
+ required
35
+ />
36
+ </div>
37
+
38
+ <div class="form-col form-group">
39
+ <label class="form-label">端口</label>
40
+ <input
41
+ type="number"
42
+ v-model.number="form.port"
43
+ class="form-control"
44
+ placeholder="3306"
45
+ required
46
+ />
47
+ </div>
48
+ </div>
49
+
50
+ <div class="form-group" :id="form.type === 'sqlite' ? 'sqlite-path' : 'database-name'">
51
+ <label class="form-label">
52
+ {{ form.type === 'sqlite' ? '数据库文件路径' : '数据库名称' }}
53
+ </label>
54
+ <input
55
+ type="text"
56
+ v-model="form.database"
57
+ class="form-control"
58
+ :placeholder="form.type === 'sqlite' ? '/path/to/database.sqlite' : '数据库名称'"
59
+ />
60
+ </div>
61
+
62
+ <div class="form-group" v-if="form.type !== 'sqlite'">
63
+ <div class="form-row">
64
+ <div class="form-col">
65
+ <label class="form-label">用户名</label>
66
+ <input
67
+ type="text"
68
+ v-model="form.username"
69
+ class="form-control"
70
+ placeholder="root"
71
+ />
72
+ </div>
73
+
74
+ <div class="form-col">
75
+ <label class="form-label">密码</label>
76
+ <input
77
+ type="password"
78
+ v-model="form.password"
79
+ class="form-control"
80
+ placeholder="••••••••"
81
+ />
82
+ </div>
83
+ </div>
84
+ </div>
85
+
86
+ <div class="form-actions">
87
+ <button type="button" @click="handleTestConnection" class="btn btn-secondary">
88
+ 测试连接
89
+ </button>
90
+ <button type="button" @click="handleCancel" class="btn btn-secondary">
91
+ 取消
92
+ </button>
93
+ <button type="submit" class="btn btn-primary">
94
+ {{ isEditMode ? '保存' : '添加' }}
95
+ </button>
96
+ </div>
97
+ </form>
98
+ </div>
99
+ </template>
100
+
101
+ <script setup lang="ts">
102
+ import { ref, reactive, onMounted } from 'vue';
103
+ import { getVSCodeBridge } from '../bridge';
104
+
105
+ const vscode = getVSCodeBridge();
106
+
107
+ const isEditMode = ref(false);
108
+ const editingConnection = ref<any>(null);
109
+
110
+ const form = reactive({
111
+ name: '',
112
+ type: 'mysql',
113
+ host: 'localhost',
114
+ port: 3306,
115
+ database: '',
116
+ username: '',
117
+ password: ''
118
+ });
119
+
120
+ const databaseTypes = [
121
+ { type: 'mysql', name: 'MySQL', defaultPort: 3306 },
122
+ { type: 'postgresql', name: 'PostgreSQL', defaultPort: 5432 },
123
+ { type: 'sqlite', name: 'SQLite', defaultPort: 0 },
124
+ { type: 'sqlserver', name: 'SQL Server', defaultPort: 1433 },
125
+ { type: 'oracle', name: 'Oracle', defaultPort: 1521 }
126
+ ];
127
+
128
+ onMounted(() => {
129
+ // 监听来自扩展的消息
130
+ vscode.onMessage((message: any) => {
131
+ if (message.command === 'editConnection') {
132
+ enterEditMode(message.data);
133
+ } else if (message.command === 'testResult') {
134
+ handleTestResult(message.data);
135
+ }
136
+ });
137
+ });
138
+
139
+ function enterEditMode(connection: any) {
140
+ editingConnection.value = connection;
141
+ isEditMode.value = true;
142
+
143
+ Object.assign(form, {
144
+ name: connection.name,
145
+ type: connection.type,
146
+ host: connection.host,
147
+ port: connection.port,
148
+ database: connection.database || '',
149
+ username: connection.username || '',
150
+ password: connection.password || ''
151
+ });
152
+ }
153
+
154
+ function handleTypeChange() {
155
+ const dbType = databaseTypes.find(db => db.type === form.type);
156
+ if (dbType && dbType.defaultPort > 0) {
157
+ form.port = dbType.defaultPort;
158
+ }
159
+ }
160
+
161
+ function handleSubmit() {
162
+ const connectionData = { ...form };
163
+
164
+ if (isEditMode.value && editingConnection.value) {
165
+ connectionData.id = editingConnection.value.id;
166
+ vscode.postMessage({ command: 'updateConnection', data: connectionData });
167
+ } else {
168
+ vscode.postMessage({ command: 'addConnection', data: connectionData });
169
+ }
170
+ }
171
+
172
+ function handleTestConnection() {
173
+ vscode.postMessage({ command: 'testConnection', data: { ...form } });
174
+ }
175
+
176
+ function handleTestResult(data: any) {
177
+ if (data.success) {
178
+ alert('连接测试成功');
179
+ } else {
180
+ alert('连接测试失败');
181
+ }
182
+ }
183
+
184
+ function handleCancel() {
185
+ // 在 WebView 中无法直接关闭,通知扩展关闭
186
+ vscode.postMessage({ command: 'close' });
187
+ }
188
+ </script>
189
+
190
+ <style scoped>
191
+ .connection-form {
192
+ padding: 20px;
193
+ max-width: 600px;
194
+ margin: 0 auto;
195
+ }
196
+
197
+ .panel-title {
198
+ font-size: 18px;
199
+ font-weight: 600;
200
+ margin-bottom: 24px;
201
+ color: var(--vscode-foreground);
202
+ }
203
+
204
+ .form-group {
205
+ margin-bottom: 20px;
206
+ }
207
+
208
+ .form-label {
209
+ display: block;
210
+ margin-bottom: 8px;
211
+ font-weight: 500;
212
+ color: var(--vscode-foreground);
213
+ }
214
+
215
+ .form-control {
216
+ width: 100%;
217
+ padding: 8px 12px;
218
+ border: 1px solid var(--vscode-input-border);
219
+ background-color: var(--vscode-input-background);
220
+ color: var(--vscode-input-foreground);
221
+ border-radius: 4px;
222
+ font-size: 14px;
223
+ }
224
+
225
+ .form-control:focus {
226
+ outline: none;
227
+ border-color: var(--vscode-focusBorder);
228
+ }
229
+
230
+ .form-row {
231
+ display: flex;
232
+ gap: 12px;
233
+ }
234
+
235
+ .form-col {
236
+ flex: 1;
237
+ }
238
+
239
+ .form-actions {
240
+ display: flex;
241
+ justify-content: flex-end;
242
+ gap: 12px;
243
+ margin-top: 24px;
244
+ }
245
+
246
+ .btn {
247
+ padding: 8px 16px;
248
+ border: none;
249
+ border-radius: 4px;
250
+ font-size: 14px;
251
+ cursor: pointer;
252
+ transition: background-color 0.2s;
253
+ }
254
+
255
+ .btn-primary {
256
+ background-color: var(--vscode-button-background);
257
+ color: var(--vscode-button-foreground);
258
+ }
259
+
260
+ .btn-primary:hover {
261
+ background-color: var(--vscode-button-hoverBackground);
262
+ }
263
+
264
+ .btn-secondary {
265
+ background-color: var(--vscode-button-secondaryBackground);
266
+ color: var(--vscode-button-secondaryForeground);
267
+ }
268
+
269
+ .btn-secondary:hover {
270
+ background-color: var(--vscode-button-secondaryHoverBackground);
271
+ }
272
+ </style>