fdb2 1.0.2 → 1.0.3

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 (91) hide show
  1. package/dist/public/.vite/manifest.json +82 -0
  2. package/dist/public/bootstrap-icons.woff +0 -0
  3. package/dist/public/bootstrap-icons.woff2 +0 -0
  4. package/dist/public/bootstrap.css +14152 -0
  5. package/dist/public/bootstrap.js +5038 -0
  6. package/dist/public/explorer.css +2137 -0
  7. package/dist/public/explorer.js +49846 -0
  8. package/dist/public/index.css +1071 -0
  9. package/dist/public/index.js +12811 -0
  10. package/dist/public/layout.css +318 -0
  11. package/dist/public/layout.js +25 -0
  12. package/dist/public/vue.css +1 -0
  13. package/dist/public/vue.js +9111 -0
  14. package/dist/server/index.d.ts +2 -0
  15. package/dist/server/index.d.ts.map +1 -0
  16. package/dist/server/index.js +598 -0
  17. package/dist/server/index.js.map +1 -0
  18. package/dist/server/index.ts +677 -0
  19. package/dist/server/model/connection.entity.d.ts +55 -0
  20. package/dist/server/model/connection.entity.d.ts.map +1 -0
  21. package/dist/server/model/connection.entity.js +59 -0
  22. package/dist/server/model/connection.entity.js.map +1 -0
  23. package/dist/server/model/connection.entity.ts +66 -0
  24. package/dist/server/model/database.entity.d.ts +203 -0
  25. package/dist/server/model/database.entity.d.ts.map +1 -0
  26. package/dist/server/model/database.entity.js +211 -0
  27. package/dist/server/model/database.entity.js.map +1 -0
  28. package/dist/server/model/database.entity.ts +246 -0
  29. package/dist/server/service/connection.service.d.ts +79 -0
  30. package/dist/server/service/connection.service.d.ts.map +1 -0
  31. package/dist/server/service/connection.service.js +351 -0
  32. package/dist/server/service/connection.service.js.map +1 -0
  33. package/dist/server/service/connection.service.ts +341 -0
  34. package/dist/server/service/database/base.service.d.ts +152 -0
  35. package/dist/server/service/database/base.service.d.ts.map +1 -0
  36. package/dist/server/service/database/base.service.js +236 -0
  37. package/dist/server/service/database/base.service.js.map +1 -0
  38. package/dist/server/service/database/base.service.ts +363 -0
  39. package/dist/server/service/database/cockroachdb.service.d.ts +95 -0
  40. package/dist/server/service/database/cockroachdb.service.d.ts.map +1 -0
  41. package/dist/server/service/database/cockroachdb.service.js +634 -0
  42. package/dist/server/service/database/cockroachdb.service.js.map +1 -0
  43. package/dist/server/service/database/cockroachdb.service.ts +659 -0
  44. package/dist/server/service/database/database.service.d.ts +487 -0
  45. package/dist/server/service/database/database.service.d.ts.map +1 -0
  46. package/dist/server/service/database/database.service.js +580 -0
  47. package/dist/server/service/database/database.service.js.map +1 -0
  48. package/dist/server/service/database/database.service.ts +630 -0
  49. package/dist/server/service/database/index.d.ts +8 -0
  50. package/dist/server/service/database/index.d.ts.map +1 -0
  51. package/dist/server/service/database/index.js +18 -0
  52. package/dist/server/service/database/index.js.map +1 -0
  53. package/dist/server/service/database/index.ts +7 -0
  54. package/dist/server/service/database/mongodb.service.d.ts +99 -0
  55. package/dist/server/service/database/mongodb.service.d.ts.map +1 -0
  56. package/dist/server/service/database/mongodb.service.js +459 -0
  57. package/dist/server/service/database/mongodb.service.js.map +1 -0
  58. package/dist/server/service/database/mongodb.service.ts +454 -0
  59. package/dist/server/service/database/mssql.service.d.ts +98 -0
  60. package/dist/server/service/database/mssql.service.d.ts.map +1 -0
  61. package/dist/server/service/database/mssql.service.js +694 -0
  62. package/dist/server/service/database/mssql.service.js.map +1 -0
  63. package/dist/server/service/database/mssql.service.ts +723 -0
  64. package/dist/server/service/database/mysql.service.d.ts +94 -0
  65. package/dist/server/service/database/mysql.service.d.ts.map +1 -0
  66. package/dist/server/service/database/mysql.service.js +735 -0
  67. package/dist/server/service/database/mysql.service.js.map +1 -0
  68. package/dist/server/service/database/mysql.service.ts +761 -0
  69. package/dist/server/service/database/oracle.service.d.ts +106 -0
  70. package/dist/server/service/database/oracle.service.d.ts.map +1 -0
  71. package/dist/server/service/database/oracle.service.js +787 -0
  72. package/dist/server/service/database/oracle.service.js.map +1 -0
  73. package/dist/server/service/database/oracle.service.ts +832 -0
  74. package/dist/server/service/database/postgres.service.d.ts +102 -0
  75. package/dist/server/service/database/postgres.service.d.ts.map +1 -0
  76. package/dist/server/service/database/postgres.service.js +696 -0
  77. package/dist/server/service/database/postgres.service.js.map +1 -0
  78. package/dist/server/service/database/postgres.service.ts +741 -0
  79. package/dist/server/service/database/sap.service.d.ts +95 -0
  80. package/dist/server/service/database/sap.service.d.ts.map +1 -0
  81. package/dist/server/service/database/sap.service.js +695 -0
  82. package/dist/server/service/database/sap.service.js.map +1 -0
  83. package/dist/server/service/database/sap.service.ts +713 -0
  84. package/dist/server/service/database/sqlite.service.d.ts +92 -0
  85. package/dist/server/service/database/sqlite.service.d.ts.map +1 -0
  86. package/dist/server/service/database/sqlite.service.js +532 -0
  87. package/dist/server/service/database/sqlite.service.js.map +1 -0
  88. package/dist/server/service/database/sqlite.service.ts +559 -0
  89. package/dist/server/service/session.service.ts +158 -0
  90. package/dist/view/index.html +45 -0
  91. package/package.json +1 -1
@@ -0,0 +1,318 @@
1
+
2
+ /* 主布局样式 */
3
+ .database-layout[data-v-db2714e7] {
4
+ height: 100vh;
5
+ display: flex;
6
+ flex-direction: column;
7
+ background: linear-gradient(135deg, #f8fafc 0%, #e2e8f0 100%);
8
+ }
9
+
10
+ /* 现代导航栏样式 */
11
+ .navbar-modern[data-v-db2714e7] {
12
+ background: linear-gradient(135deg, #ffffff 0%, #f8fafc 100%);
13
+ border-bottom: 1px solid #e2e8f0;
14
+ box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06);
15
+ padding: 0.75rem 0;
16
+ position: sticky;
17
+ top: 0;
18
+ z-index: 1030;
19
+ backdrop-filter: blur(10px);
20
+ }
21
+
22
+ /* 品牌区域 */
23
+ .navbar-brand-wrapper[data-v-db2714e7] {
24
+ margin-right: 2rem;
25
+ }
26
+ .navbar-brand-modern[data-v-db2714e7] {
27
+ display: flex;
28
+ align-items: center;
29
+ gap: 1rem;
30
+ text-decoration: none;
31
+ color: #1e293b;
32
+ transition: all 0.3s ease;
33
+ }
34
+ .navbar-brand-modern[data-v-db2714e7]:hover {
35
+ color: #667eea;
36
+ transform: translateX(2px);
37
+ }
38
+ .brand-icon[data-v-db2714e7] {
39
+ width: 45px;
40
+ height: 45px;
41
+ background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
42
+ border-radius: 12px;
43
+ display: flex;
44
+ align-items: center;
45
+ justify-content: center;
46
+ color: white;
47
+ font-size: 1.5rem;
48
+ box-shadow: 0 4px 12px rgba(102, 126, 234, 0.3);
49
+ transition: all 0.3s ease;
50
+ }
51
+ .brand-icon[data-v-db2714e7]:hover {
52
+ transform: rotate(5deg) scale(1.05);
53
+ box-shadow: 0 6px 16px rgba(102, 126, 234, 0.4);
54
+ }
55
+ .brand-text[data-v-db2714e7] {
56
+ display: flex;
57
+ flex-direction: column;
58
+ gap: 2px;
59
+ }
60
+ .brand-name[data-v-db2714e7] {
61
+ font-size: 1.25rem;
62
+ font-weight: 700;
63
+ color: #1e293b;
64
+ letter-spacing: -0.025em;
65
+ }
66
+ .brand-subtitle[data-v-db2714e7] {
67
+ font-size: 0.75rem;
68
+ color: #64748b;
69
+ font-weight: 500;
70
+ letter-spacing: 0.05em;
71
+ text-transform: uppercase;
72
+ }
73
+
74
+ /* 移动端切换按钮 */
75
+ .navbar-toggler-modern[data-v-db2714e7] {
76
+ background: none;
77
+ border: none;
78
+ padding: 0.5rem;
79
+ cursor: pointer;
80
+ display: none;
81
+ flex-direction: column;
82
+ gap: 4px;
83
+ }
84
+ .navbar-toggler-line[data-v-db2714e7] {
85
+ width: 25px;
86
+ height: 3px;
87
+ background: linear-gradient(90deg, #667eea, #764ba2);
88
+ border-radius: 2px;
89
+ transition: all 0.3s ease;
90
+ }
91
+
92
+ /* 导航折叠区域 */
93
+ .navbar-collapse-modern[data-v-db2714e7] {
94
+ background: transparent;
95
+ }
96
+
97
+ /* 主导航样式 */
98
+ .navbar-nav-modern[data-v-db2714e7] {
99
+ display: flex;
100
+ align-items: center;
101
+ gap: 0.5rem;
102
+ }
103
+ .nav-item-modern[data-v-db2714e7] {
104
+ position: relative;
105
+ }
106
+ .nav-link-modern[data-v-db2714e7] {
107
+ display: flex;
108
+ align-items: center;
109
+ gap: 0.75rem;
110
+ padding: 0.75rem 1.25rem;
111
+ border-radius: 12px;
112
+ color: #64748b;
113
+ text-decoration: none;
114
+ font-weight: 500;
115
+ transition: all 0.3s ease;
116
+ position: relative;
117
+ overflow: hidden;
118
+ }
119
+ .nav-link-modern[data-v-db2714e7]:hover {
120
+ background: rgba(102, 126, 234, 0.1);
121
+ color: #667eea;
122
+ transform: translateY(-1px);
123
+ }
124
+ .nav-link-modern.active[data-v-db2714e7] {
125
+ background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
126
+ color: white;
127
+ box-shadow: 0 4px 12px rgba(102, 126, 234, 0.3);
128
+ }
129
+ .nav-icon[data-v-db2714e7] {
130
+ font-size: 1.25rem;
131
+ display: flex;
132
+ align-items: center;
133
+ justify-content: center;
134
+ min-width: 24px;
135
+ }
136
+ .nav-text[data-v-db2714e7] {
137
+ font-size: 0.95rem;
138
+ font-weight: 600;
139
+ letter-spacing: 0.025em;
140
+ }
141
+ .nav-indicator[data-v-db2714e7] {
142
+ position: absolute;
143
+ bottom: 0;
144
+ left: 50%;
145
+ transform: translateX(-50%);
146
+ width: 4px;
147
+ height: 4px;
148
+ background: white;
149
+ border-radius: 50%;
150
+ opacity: 0;
151
+ transition: all 0.3s ease;
152
+ }
153
+ .nav-link-modern.active .nav-indicator[data-v-db2714e7] {
154
+ opacity: 1;
155
+ }
156
+
157
+ /* 用户菜单样式 */
158
+ .nav-icon-only[data-v-db2714e7] {
159
+ padding: 0.75rem;
160
+ min-width: auto;
161
+ }
162
+ .notification-dot[data-v-db2714e7] {
163
+ position: absolute;
164
+ top: 8px;
165
+ right: 8px;
166
+ width: 8px;
167
+ height: 8px;
168
+ background: #ef4444;
169
+ border-radius: 50%;
170
+ border: 2px solid white;
171
+ animation: pulse-db2714e7 2s ease-in-out infinite;
172
+ }
173
+ .user-menu-toggle[data-v-db2714e7] {
174
+ display: flex;
175
+ align-items: center;
176
+ gap: 0.75rem;
177
+ padding: 0.5rem;
178
+ border-radius: 12px;
179
+ transition: all 0.3s ease;
180
+ }
181
+ .user-menu-toggle[data-v-db2714e7]:hover {
182
+ background: rgba(102, 126, 234, 0.1);
183
+ }
184
+ .user-avatar[data-v-db2714e7] {
185
+ width: 40px;
186
+ height: 40px;
187
+ background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
188
+ border-radius: 50%;
189
+ display: flex;
190
+ align-items: center;
191
+ justify-content: center;
192
+ color: white;
193
+ font-size: 1.25rem;
194
+ box-shadow: 0 2px 8px rgba(102, 126, 234, 0.3);
195
+ }
196
+ .user-info[data-v-db2714e7] {
197
+ display: flex;
198
+ flex-direction: column;
199
+ gap: 2px;
200
+ }
201
+ .user-name[data-v-db2714e7] {
202
+ font-size: 0.9rem;
203
+ font-weight: 600;
204
+ color: #1e293b;
205
+ }
206
+ .user-role[data-v-db2714e7] {
207
+ font-size: 0.75rem;
208
+ color: #64748b;
209
+ font-weight: 500;
210
+ }
211
+ .dropdown-arrow[data-v-db2714e7] {
212
+ color: #94a3b8;
213
+ font-size: 0.75rem;
214
+ transition: all 0.3s ease;
215
+ }
216
+ .user-menu-toggle:hover .dropdown-arrow[data-v-db2714e7] {
217
+ color: #667eea;
218
+ transform: translateY(1px);
219
+ }
220
+
221
+ /* 现代下拉菜单样式 */
222
+ .dropdown-menu-modern[data-v-db2714e7] {
223
+ background: white;
224
+ border: 1px solid #e2e8f0;
225
+ border-radius: 16px;
226
+ box-shadow: 0 10px 25px rgba(0, 0, 0, 0.1), 0 4px 10px rgba(0, 0, 0, 0.05);
227
+ padding: 0.75rem;
228
+ min-width: 280px;
229
+ backdrop-filter: blur(10px);
230
+ margin-top: 0.75rem;
231
+ }
232
+ .dropdown-header[data-v-db2714e7] {
233
+ padding: 0.5rem 0.75rem;
234
+ font-size: 0.75rem;
235
+ font-weight: 700;
236
+ color: #94a3b8;
237
+ text-transform: uppercase;
238
+ letter-spacing: 0.05em;
239
+ border-bottom: 1px solid #f1f5f9;
240
+ margin-bottom: 0.5rem;
241
+ }
242
+ .dropdown-item-modern[data-v-db2714e7] {
243
+ display: flex;
244
+ align-items: center;
245
+ gap: 0.75rem;
246
+ padding: 0.75rem;
247
+ border-radius: 8px;
248
+ color: #374151;
249
+ text-decoration: none;
250
+ transition: all 0.2s ease;
251
+ margin-bottom: 2px;
252
+ }
253
+ .dropdown-item-modern[data-v-db2714e7]:hover {
254
+ background: linear-gradient(135deg, #f8fafc 0%, #f1f5f9 100%);
255
+ color: #667eea;
256
+ transform: translateX(4px);
257
+ }
258
+ .dropdown-item-modern.text-danger[data-v-db2714e7]:hover {
259
+ background: linear-gradient(135deg, #fef2f2 0%, #fee2e2 100%);
260
+ color: #dc2626;
261
+ }
262
+ .dropdown-item-content[data-v-db2714e7] {
263
+ display: flex;
264
+ flex-direction: column;
265
+ gap: 2px;
266
+ }
267
+ .dropdown-item-title[data-v-db2714e7] {
268
+ font-size: 0.9rem;
269
+ font-weight: 600;
270
+ color: inherit;
271
+ }
272
+ .dropdown-item-desc[data-v-db2714e7] {
273
+ font-size: 0.75rem;
274
+ color: #94a3b8;
275
+ }
276
+ .dropdown-divider-modern[data-v-db2714e7] {
277
+ margin: 0.75rem -0.75rem;
278
+ border: none;
279
+ border-top: 1px solid #f1f5f9;
280
+ }
281
+
282
+ /* 主要内容区域 */
283
+ .main-content-modern[data-v-db2714e7] {
284
+ flex: 1;
285
+ display: flex;
286
+ flex-direction: column;
287
+ background: transparent;
288
+ overflow: hidden;
289
+ }
290
+ .content-wrapper[data-v-db2714e7] {
291
+ flex: 1;
292
+ background: rgba(255, 255, 255, 0.3);
293
+ backdrop-filter: blur(8px);
294
+ overflow-y: auto;
295
+ height: 100%;
296
+ }
297
+
298
+
299
+
300
+ /* 动画效果 */
301
+ @keyframes pulse-db2714e7 {
302
+ 0%, 100% { opacity: 1; transform: scale(1);
303
+ }
304
+ 50% { opacity: 0.6; transform: scale(1.2);
305
+ }
306
+ }
307
+
308
+ /* 响应式设计 */
309
+ @media (max-width: 768px) {
310
+ .content-wrapper[data-v-db2714e7] {
311
+ padding: 0.5rem;
312
+ }
313
+ }
314
+ @media (max-width: 480px) {
315
+ .content-wrapper[data-v-db2714e7] {
316
+ padding: 0.25rem;
317
+ }
318
+ }
@@ -0,0 +1,25 @@
1
+ import { s as defineComponent, o as openBlock, v as createElementBlock, z as createBaseVNode, J as createVNode, r as resolveComponent } from "./vue.js";
2
+ import { _ as _export_sfc } from "./index.js";
3
+ import "./bootstrap.js";
4
+ const _hoisted_1 = { class: "database-layout" };
5
+ const _hoisted_2 = { class: "main-content-modern" };
6
+ const _hoisted_3 = { class: "content-wrapper" };
7
+ const _sfc_main = /* @__PURE__ */ defineComponent({
8
+ __name: "layout",
9
+ setup(__props) {
10
+ return (_ctx, _cache) => {
11
+ const _component_router_view = resolveComponent("router-view");
12
+ return openBlock(), createElementBlock("div", _hoisted_1, [
13
+ createBaseVNode("main", _hoisted_2, [
14
+ createBaseVNode("div", _hoisted_3, [
15
+ createVNode(_component_router_view)
16
+ ])
17
+ ])
18
+ ]);
19
+ };
20
+ }
21
+ });
22
+ const layout = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-db2714e7"]]);
23
+ export {
24
+ layout as default
25
+ };
@@ -0,0 +1 @@
1
+ .vjs-tree-brackets{cursor:pointer}.vjs-tree-brackets:hover{color:#1890ff}.vjs-check-controller{position:absolute;left:0}.vjs-check-controller.is-checked .vjs-check-controller-inner{background-color:#1890ff;border-color:#0076e4}.vjs-check-controller.is-checked .vjs-check-controller-inner.is-checkbox:after{transform:rotate(45deg) scaleY(1)}.vjs-check-controller.is-checked .vjs-check-controller-inner.is-radio:after{transform:translate(-50%,-50%) scale(1)}.vjs-check-controller .vjs-check-controller-inner{display:inline-block;position:relative;border:1px solid #bfcbd9;border-radius:2px;vertical-align:middle;box-sizing:border-box;width:16px;height:16px;background-color:#fff;z-index:1;cursor:pointer;transition:border-color .25s cubic-bezier(.71,-.46,.29,1.46),background-color .25s cubic-bezier(.71,-.46,.29,1.46)}.vjs-check-controller .vjs-check-controller-inner:after{box-sizing:content-box;content:"";border:2px solid #fff;border-left:0;border-top:0;height:8px;left:4px;position:absolute;top:1px;transform:rotate(45deg) scaleY(0);width:4px;transition:transform .15s cubic-bezier(.71,-.46,.88,.6) .05s;transform-origin:center}.vjs-check-controller .vjs-check-controller-inner.is-radio{border-radius:100%}.vjs-check-controller .vjs-check-controller-inner.is-radio:after{border-radius:100%;height:4px;background-color:#fff;left:50%;top:50%}.vjs-check-controller .vjs-check-controller-original{opacity:0;outline:none;position:absolute;z-index:-1;top:0;left:0;right:0;bottom:0;margin:0}.vjs-carets{position:absolute;right:0;cursor:pointer}.vjs-carets svg{transition:transform .3s}.vjs-carets:hover{color:#1890ff}.vjs-carets-close{transform:rotate(-90deg)}.vjs-tree-node{display:flex;position:relative;line-height:20px}.vjs-tree-node.has-carets{padding-left:15px}.vjs-tree-node.has-carets.has-selector,.vjs-tree-node.has-selector{padding-left:30px}.vjs-tree-node.is-highlight,.vjs-tree-node:hover{background-color:#e6f7ff;border-radius:4px}.vjs-tree-node.is-highlight .vjs-tree-node-actions,.vjs-tree-node:hover .vjs-tree-node-actions{display:block}.vjs-tree-node .vjs-indent{display:flex;position:relative}.vjs-tree-node .vjs-indent-unit.has-line{border-left:1px dashed #bfcbd9}.vjs-tree-node .vjs-tree-node-actions{display:none;position:absolute;right:0;top:0;padding:0 4px;background-color:#e6f7ff;border-radius:4px}.vjs-tree-node .vjs-tree-node-actions .vjs-tree-node-actions-item{cursor:pointer}.vjs-tree-node .vjs-tree-node-actions .vjs-tree-node-actions-item:hover{color:#1890ff}.vjs-tree-node.dark.is-highlight,.vjs-tree-node.dark .vjs-tree-node-actions,.vjs-tree-node.dark:hover{background-color:#2e4558}.vjs-node-index{position:absolute;right:100%;margin-right:4px;user-select:none}.vjs-colon{white-space:pre}.vjs-comment{color:#bfcbd9}.vjs-key{white-space:nowrap}.vjs-value{word-break:break-word}.vjs-tree-node.dynamic-height .vjs-value{white-space:pre-wrap}.vjs-value-null,.vjs-value-undefined{color:#d55fde}.vjs-value-boolean,.vjs-value-number{color:#1d8ce0}.vjs-value-string{color:#13ce66}.vjs-tree{font-family:Monaco,Menlo,Consolas,Bitstream Vera Sans Mono,monospace;font-size:14px;text-align:left}.vjs-tree.is-virtual{overflow:auto}.vjs-tree.is-virtual .vjs-tree-node{white-space:nowrap}