fdb2 1.0.26 → 1.0.31

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 (80) hide show
  1. package/bin/fdb2.js +18 -2
  2. package/dist/public/.vite/manifest.json +4 -4
  3. package/dist/public/bootstrap.js +6 -5
  4. package/dist/public/explorer.css +513 -503
  5. package/dist/public/explorer.js +343 -218
  6. package/dist/public/favicon.ico +0 -0
  7. package/dist/public/index.css +100 -41
  8. package/dist/public/index.js +490 -263
  9. package/dist/public/layout.css +68 -68
  10. package/dist/public/layout.js +10 -10
  11. package/dist/public/rolldown-runtime.js +8 -1
  12. package/dist/public/vconsole.min.js +0 -26
  13. package/dist/public/vue.js +5238 -5192
  14. package/dist/server/cli/format.d.ts +6 -0
  15. package/dist/server/cli/format.d.ts.map +1 -0
  16. package/dist/server/cli/format.js +116 -0
  17. package/dist/server/cli/format.js.map +1 -0
  18. package/dist/server/cli/format.ts +104 -0
  19. package/dist/server/cli/main.d.ts +3 -0
  20. package/dist/server/cli/main.d.ts.map +1 -0
  21. package/dist/server/cli/main.js +710 -0
  22. package/dist/server/cli/main.js.map +1 -0
  23. package/dist/server/cli/main.ts +746 -0
  24. package/dist/server/cli/parse.d.ts +18 -0
  25. package/dist/server/cli/parse.d.ts.map +1 -0
  26. package/dist/server/cli/parse.js +150 -0
  27. package/dist/server/cli/parse.js.map +1 -0
  28. package/dist/server/cli/parse.ts +148 -0
  29. package/dist/server/core/column-spec.d.ts +29 -0
  30. package/dist/server/core/column-spec.d.ts.map +1 -0
  31. package/dist/server/core/column-spec.js +148 -0
  32. package/dist/server/core/column-spec.js.map +1 -0
  33. package/dist/server/core/column-spec.ts +147 -0
  34. package/dist/server/core/config.d.ts +34 -0
  35. package/dist/server/core/config.d.ts.map +1 -0
  36. package/dist/server/core/config.js +187 -0
  37. package/dist/server/core/config.js.map +1 -0
  38. package/dist/server/core/config.ts +165 -0
  39. package/dist/server/core/db-api.d.ts +169 -0
  40. package/dist/server/core/db-api.d.ts.map +1 -0
  41. package/dist/server/core/db-api.js +1078 -0
  42. package/dist/server/core/db-api.js.map +1 -0
  43. package/dist/server/core/db-api.ts +1181 -0
  44. package/dist/server/core/dialect.d.ts +44 -0
  45. package/dist/server/core/dialect.d.ts.map +1 -0
  46. package/dist/server/core/dialect.js +260 -0
  47. package/dist/server/core/dialect.js.map +1 -0
  48. package/dist/server/core/dialect.ts +293 -0
  49. package/dist/server/core/errors.d.ts +22 -0
  50. package/dist/server/core/errors.d.ts.map +1 -0
  51. package/dist/server/core/errors.js +61 -0
  52. package/dist/server/core/errors.js.map +1 -0
  53. package/dist/server/core/errors.ts +58 -0
  54. package/dist/server/core/filter-dsl.d.ts +39 -0
  55. package/dist/server/core/filter-dsl.d.ts.map +1 -0
  56. package/dist/server/core/filter-dsl.js +167 -0
  57. package/dist/server/core/filter-dsl.js.map +1 -0
  58. package/dist/server/core/filter-dsl.ts +180 -0
  59. package/dist/server/core/guard.d.ts +54 -0
  60. package/dist/server/core/guard.d.ts.map +1 -0
  61. package/dist/server/core/guard.js +207 -0
  62. package/dist/server/core/guard.js.map +1 -0
  63. package/dist/server/core/guard.ts +205 -0
  64. package/dist/server/core/query-builder.d.ts +72 -0
  65. package/dist/server/core/query-builder.d.ts.map +1 -0
  66. package/dist/server/core/query-builder.js +478 -0
  67. package/dist/server/core/query-builder.js.map +1 -0
  68. package/dist/server/core/query-builder.ts +502 -0
  69. package/dist/server/service/connection.service.d.ts.map +1 -1
  70. package/dist/server/service/connection.service.js +7 -3
  71. package/dist/server/service/connection.service.js.map +1 -1
  72. package/dist/server/service/connection.service.ts +5 -3
  73. package/dist/server/utils/data-dir.d.ts.map +1 -1
  74. package/dist/server/utils/data-dir.js +2 -0
  75. package/dist/server/utils/data-dir.js.map +1 -1
  76. package/dist/server/utils/data-dir.ts +2 -0
  77. package/electron/updater.js +12 -66
  78. package/package.json +22 -22
  79. package/public/favicon.ico +0 -0
  80. package/public/favicon.png +0 -0
Binary file
@@ -1,3 +1,62 @@
1
+
2
+ /* 更新通知栏 */
3
+ .update-banner {
4
+ position: fixed;
5
+ top: 0;
6
+ left: 0;
7
+ right: 0;
8
+ z-index: 10000;
9
+ display: flex;
10
+ align-items: center;
11
+ justify-content: space-between;
12
+ padding: 6px 12px;
13
+ font-size: 13px;
14
+ color: #cdd6f4;
15
+ background: linear-gradient(90deg, #1e1e2e 0%, #313244 100%);
16
+ border-bottom: 1px solid rgba(137, 180, 250, 0.3);
17
+ animation: slideDown 0.3s ease;
18
+ }
19
+ .update-banner-content {
20
+ display: flex;
21
+ align-items: center;
22
+ gap: 8px;
23
+ flex: 1;
24
+ cursor: pointer;
25
+ }
26
+ .update-banner i { font-size: 14px; color: #89b4fa;
27
+ }
28
+ .update-banner-text { flex: 1;
29
+ }
30
+ .update-btn {
31
+ padding: 3px 12px;
32
+ font-size: 12px;
33
+ border: none;
34
+ border-radius: 4px;
35
+ cursor: pointer;
36
+ font-weight: 500;
37
+ background: #89b4fa;
38
+ color: #1e1e2e;
39
+ transition: opacity 0.15s;
40
+ }
41
+ .update-btn:hover { opacity: 0.85;
42
+ }
43
+ .update-banner-close {
44
+ background: none;
45
+ border: none;
46
+ color: #6c7086;
47
+ cursor: pointer;
48
+ padding: 2px 6px;
49
+ font-size: 14px;
50
+ border-radius: 4px;
51
+ }
52
+ .update-banner-close:hover { color: #cdd6f4; background: rgba(255,255,255,0.1);
53
+ }
54
+ @keyframes slideDown {
55
+ from { transform: translateY(-100%);
56
+ }
57
+ to { transform: translateY(0);
58
+ }
59
+ }
1
60
  /* 数据库管理工具全局样式 - 现代桌面应用设计 */
2
61
 
3
62
  /* 基础变量 - 现代色彩方案 */
@@ -18,9 +77,9 @@
18
77
  /* 中性色彩 */
19
78
  --db-light-color: #f8fafc;
20
79
  --db-gray-light: #f1f5f9;
21
- --db-gray-medium: #e2e8f0;
22
- --db-gray-dark: #94a3b8;
23
- --db-darker-color: #64748b;
80
+ --db-gray-medium: #cbd5e1;
81
+ --db-gray-dark: #475569;
82
+ --db-darker-color: #334155;
24
83
  --db-dark-color: #1e293b;
25
84
  --db-black: #0f172a;
26
85
 
@@ -498,7 +557,7 @@ body {
498
557
 
499
558
  .form-label {
500
559
  font-weight: 700;
501
- color: var(--db-dark-color);
560
+ color: #1e293b;
502
561
  margin-bottom: var(--db-spacing-sm);
503
562
  font-size: 0.9rem;
504
563
  letter-spacing: 0.025em;
@@ -509,7 +568,7 @@ body {
509
568
 
510
569
  .form-text {
511
570
  font-size: 0.875rem;
512
- color: var(--db-gray-dark);
571
+ color: #334155;
513
572
  margin-top: var(--db-spacing-xs);
514
573
  }
515
574
 
@@ -537,16 +596,16 @@ body {
537
596
 
538
597
  /* 代码样式 */
539
598
  code {
540
- background-color: #e9ecef;
541
- color: #d63384;
599
+ background-color: #e2e8f0;
600
+ color: #be185d;
542
601
  padding: 0.2rem 0.4rem;
543
602
  border-radius: 3px;
544
603
  font-size: 0.875em;
545
604
  }
546
605
 
547
606
  pre {
548
- background-color: #f8f9fa;
549
- border: 1px solid #e9ecef;
607
+ background-color: #f1f5f9;
608
+ border: 1px solid #cbd5e1;
550
609
  border-radius: 6px;
551
610
  padding: 1rem;
552
611
  margin: 0;
@@ -562,23 +621,23 @@ pre {
562
621
  }
563
622
 
564
623
  .alert-success {
565
- background-color: #d4edda;
566
- color: #155724;
624
+ background-color: #dcfce7;
625
+ color: #166534;
567
626
  }
568
627
 
569
628
  .alert-danger {
570
- background-color: #f8d7da;
571
- color: #721c24;
629
+ background-color: #fee2e2;
630
+ color: #991b1b;
572
631
  }
573
632
 
574
633
  .alert-warning {
575
- background-color: #fff3cd;
576
- color: #856404;
634
+ background-color: #fef3c7;
635
+ color: #92400e;
577
636
  }
578
637
 
579
638
  .alert-info {
580
- background-color: #d1ecf1;
581
- color: #0c5460;
639
+ background-color: #dbeafe;
640
+ color: #1e40af;
582
641
  }
583
642
 
584
643
  /* 工具提示样式 */
@@ -600,7 +659,7 @@ pre {
600
659
  }
601
660
 
602
661
  .dropdown-item:hover {
603
- background-color: #f8f9fa;
662
+ background-color: #e2e8f0;
604
663
  transform: translateX(2px);
605
664
  }
606
665
 
@@ -613,7 +672,7 @@ pre {
613
672
  }
614
673
 
615
674
  .list-group-item:hover {
616
- background-color: #f8f9fa;
675
+ background-color: #e2e8f0;
617
676
  transform: translateX(4px);
618
677
  }
619
678
 
@@ -774,7 +833,7 @@ pre {
774
833
  }
775
834
 
776
835
  .status-offline {
777
- color: var(--db-gray-dark);
836
+ color: #64748b;
778
837
  display: flex;
779
838
  align-items: center;
780
839
  gap: var(--db-spacing-xs);
@@ -915,9 +974,9 @@ pre {
915
974
  --db-light-color: #1e293b;
916
975
  --db-gray-light: #334155;
917
976
  --db-gray-medium: #475569;
918
- --db-gray-dark: #64748b;
919
- --db-darker-color: #94a3b8;
920
- --db-dark-color: #f1f5f9;
977
+ --db-gray-dark: #94a3b8;
978
+ --db-darker-color: #cbd5e1;
979
+ --db-dark-color: #e2e8f0;
921
980
  --db-black: #f8fafc;
922
981
 
923
982
  --db-bg-gradient: linear-gradient(135deg, #1e293b 0%, #334155 100%);
@@ -977,39 +1036,39 @@ pre {
977
1036
  text-align: center;
978
1037
  }
979
1038
 
980
- .modal-dialog[data-v-a95e7049] {
1039
+ .modal-dialog[data-v-323d35a9] {
981
1040
  z-index: var(--bs-modal-zindex);
982
1041
  max-width:none !important;
983
1042
  }
984
- .modal-success .modal-header[data-v-a95e7049] {
1043
+ .modal-success .modal-header[data-v-323d35a9] {
985
1044
  background-color: var(--bs-success);
986
1045
  color: white;
987
1046
  }
988
- .modal-error .modal-header[data-v-a95e7049] {
1047
+ .modal-error .modal-header[data-v-323d35a9] {
989
1048
  background-color: var(--bs-danger);
990
1049
  color: white;
991
1050
  }
992
- .modal-warning .modal-header[data-v-a95e7049] {
1051
+ .modal-warning .modal-header[data-v-323d35a9] {
993
1052
  background-color: var(--bs-warning);
994
1053
  color: var(--bs-dark);
995
1054
  }
996
- .modal-info .modal-header[data-v-a95e7049] {
1055
+ .modal-info .modal-header[data-v-323d35a9] {
997
1056
  background-color: var(--bs-info);
998
1057
  color: white;
999
1058
  }
1000
- .modal-body[data-v-a95e7049] {
1059
+ .modal-body[data-v-323d35a9] {
1001
1060
  min-height: 80px;
1002
1061
  display: flex;
1003
1062
  flex-direction: column;
1004
1063
  align-items: stretch;
1005
1064
  }
1006
- .error-details[data-v-a95e7049] {
1065
+ .error-details[data-v-323d35a9] {
1007
1066
  width: 100%;
1008
1067
  margin-top: 1rem;
1009
1068
  }
1010
- .error-content[data-v-a95e7049] {
1069
+ .error-content[data-v-323d35a9] {
1011
1070
  background-color: #f8f9fa;
1012
- border: 1px solid #e9ecef;
1071
+ border: 1px solid #cbd5e1;
1013
1072
  border-radius: 0.375rem;
1014
1073
  padding: 1rem;
1015
1074
  margin: 0;
@@ -1021,17 +1080,17 @@ pre {
1021
1080
  font-size: 0.875rem;
1022
1081
  line-height: 1.5;
1023
1082
  }
1024
- .error-details-toggle[data-v-a95e7049] {
1083
+ .error-details-toggle[data-v-323d35a9] {
1025
1084
  width: 100%;
1026
1085
  }
1027
- .error-details-content[data-v-a95e7049] {
1086
+ .error-details-content[data-v-323d35a9] {
1028
1087
  background-color: #f8f9fa;
1029
- border: 1px solid #e9ecef;
1088
+ border: 1px solid #cbd5e1;
1030
1089
  border-radius: 0.375rem;
1031
1090
  padding: 1rem;
1032
1091
  margin-top: 0.5rem;
1033
1092
  }
1034
- .error-json[data-v-a95e7049] {
1093
+ .error-json[data-v-323d35a9] {
1035
1094
  background-color: #212529;
1036
1095
  color: #f8f9fa;
1037
1096
  border-radius: 0.25rem;
@@ -1043,20 +1102,20 @@ pre {
1043
1102
  white-space: pre-wrap;
1044
1103
  word-break: break-word;
1045
1104
  }
1046
- .error-meta[data-v-a95e7049] {
1047
- border-bottom: 1px solid #dee2e6;
1105
+ .error-meta[data-v-323d35a9] {
1106
+ border-bottom: 1px solid #cbd5e1;
1048
1107
  padding-bottom: 0.5rem;
1049
1108
  margin-bottom: 0.5rem;
1050
1109
  }
1051
- .modal-body .fs-1[data-v-a95e7049] {
1110
+ .modal-body .fs-1[data-v-323d35a9] {
1052
1111
  font-size: 2.5rem;
1053
1112
  margin-bottom: 1rem;
1054
1113
  }
1055
1114
 
1056
1115
  /* 响应式调整 */
1057
1116
  @media (max-width: 576px) {
1058
- .error-content[data-v-a95e7049],
1059
- .error-json[data-v-a95e7049] {
1117
+ .error-content[data-v-323d35a9],
1118
+ .error-json[data-v-323d35a9] {
1060
1119
  font-size: 0.75rem;
1061
1120
  max-height: 150px;
1062
1121
  }