@artilingo/artiframe-cli 2.0.4 → 2.0.5

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 (90) hide show
  1. package/LICENSE +660 -660
  2. package/bin/artiframe.js +0 -0
  3. package/bin/artiframe.php +0 -0
  4. package/core-stubs/app/ApiAuthControl.php +76 -0
  5. package/core-stubs/app/ApiControl.php +81 -35
  6. package/core-stubs/app/AuthControl.php +39 -0
  7. package/core-stubs/app/Database.php +36 -35
  8. package/core-stubs/app/DotEnv.php +19 -1
  9. package/core-stubs/app/ViewControl.php +47 -1
  10. package/core-stubs/bin/SQLMethod.php +261 -0
  11. package/core-stubs/bin/SystemMethod.php +115 -74
  12. package/core-stubs/bin/ViewMethod.php +19 -5
  13. package/core-stubs/docs/de.html +4325 -4347
  14. package/core-stubs/docs/en.html +4325 -4347
  15. package/core-stubs/docs/es.html +4325 -4347
  16. package/core-stubs/docs/fr.html +4325 -4347
  17. package/core-stubs/docs/tr.html +117 -46
  18. package/core-stubs/public/403.php +52 -0
  19. package/core-stubs/public/assets/css/components/header.css +174 -0
  20. package/core-stubs/public/assets/css/components/mobilenav.css +198 -0
  21. package/core-stubs/public/assets/css/components/sidebar.css +184 -0
  22. package/core-stubs/public/assets/css/root/app.css +975 -38
  23. package/core-stubs/public/assets/css/root/root.css +64 -0
  24. package/core-stubs/public/assets/js/components/header.js +380 -0
  25. package/core-stubs/public/assets/js/components/mobilenav.js +97 -0
  26. package/core-stubs/public/assets/js/components/theme-modal.js +74 -0
  27. package/core-stubs/public/assets/js/root/app.js +1870 -0
  28. package/core-stubs/public/includes/footer.php +4 -5
  29. package/core-stubs/public/includes/head-auth.php +65 -0
  30. package/core-stubs/public/includes/head.php +56 -17
  31. package/core-stubs/public/includes/header.php +135 -1
  32. package/core-stubs/public/includes/mobilenav.php +75 -3
  33. package/core-stubs/public/includes/sidebar.php +186 -1
  34. package/core-stubs/public/includes/theme-modal.php +1 -0
  35. package/db-studio/debug.log +3 -0
  36. package/db-studio/index.html +1755 -0
  37. package/db-studio/launcher.html +102 -0
  38. package/db-studio/launcher.js +180 -0
  39. package/db-studio/logo.svg +22 -0
  40. package/db-studio/main.js +568 -0
  41. package/db-studio/package-lock.json +1034 -0
  42. package/db-studio/package.json +16 -0
  43. package/db-studio/preload.js +29 -0
  44. package/devops-studio/api-inspector.js +222 -0
  45. package/devops-studio/index.html +1892 -0
  46. package/devops-studio/logo.svg +22 -0
  47. package/devops-studio/main.js +67 -0
  48. package/devops-studio/make-wizard.js +635 -0
  49. package/devops-studio/package-lock.json +871 -0
  50. package/devops-studio/package.json +12 -0
  51. package/package.json +5 -2
  52. package/scripts/postinstall.js +44 -8
  53. package/server-studio/.json-404-guard +1 -0
  54. package/server-studio/index.html +283 -0
  55. package/server-studio/logo.svg +22 -0
  56. package/server-studio/main.js +133 -0
  57. package/server-studio/package-lock.json +1179 -0
  58. package/server-studio/package.json +15 -0
  59. package/server-studio/router.php +99 -0
  60. package/src/App.php +29 -0
  61. package/src/Commands/AddCommand.php +26 -9
  62. package/src/Commands/DbExportCommand.php +131 -0
  63. package/src/Commands/DbStartCommand.php +46 -0
  64. package/src/Commands/DevopsCommand.php +35 -0
  65. package/src/Commands/GoCommand.php +48 -48
  66. package/src/Commands/ListCommand.php +68 -68
  67. package/src/Commands/MakeApiCommand.php +6 -1
  68. package/src/Commands/MakeViewCommand.php +25 -2
  69. package/src/Commands/NewProjectCommand.php +16 -11
  70. package/src/Commands/OptimizeCommand.php +61 -0
  71. package/src/Commands/RemoveCommand.php +35 -7
  72. package/src/Commands/ServeCommand.php +46 -91
  73. package/src/Commands/ShowCommand.php +24 -24
  74. package/src/Commands/UpgradeCommand.php +39 -10
  75. package/stubs/make/api-switch-case.stub +1 -1
  76. package/stubs/make/auth-api-standart.stub +20 -0
  77. package/stubs/make/auth-api-switch-case.stub +38 -0
  78. package/stubs/make/auth-view.stub +26 -0
  79. package/stubs/make/class.stub +10 -2
  80. package/stubs/make/view.stub +3 -0
  81. package/stubs/service/image.stub +334 -334
  82. package/stubs/service/iyzico.stub +637 -637
  83. package/stubs/service/jwt.stub +312 -312
  84. package/stubs/service/phpmailer.stub +143 -143
  85. package/stubs/service/pusher.stub +232 -232
  86. package/stubs/service/qrcode.stub +169 -169
  87. package/stubs/service/redis.stub +361 -361
  88. package/stubs/service/s3.stub +377 -377
  89. package/stubs/service/stripe.stub +526 -526
  90. package/stubs/service/twilio.stub +361 -361
@@ -0,0 +1,198 @@
1
+ /* ==========================================================================
2
+ Mobile Navigation Component (Modern Bottom Bar + Bottom Sheet)
3
+ ========================================================================== */
4
+
5
+ /* Masaüstünde tamamen gizle */
6
+ @media (min-width: 993px) {
7
+ .app-mobile-nav {
8
+ display: none !important;
9
+ }
10
+ }
11
+
12
+ /* --------------------------------------------------------------------------
13
+ 1. Bottom Nav Bar (Sabit Alt Çubuk)
14
+ -------------------------------------------------------------------------- */
15
+ .app-mobile-nav {
16
+ position: fixed;
17
+ bottom: 0;
18
+ left: 0;
19
+ width: 100%;
20
+ z-index: 1000;
21
+ }
22
+
23
+ .mobile-bottom-bar {
24
+ position: relative;
25
+ z-index: 1002;
26
+ display: flex;
27
+ justify-content: space-around;
28
+ align-items: center;
29
+ height: 65px;
30
+ background: rgba(255, 255, 255, 0.85);
31
+ backdrop-filter: blur(12px);
32
+ -webkit-backdrop-filter: blur(12px);
33
+ border-top: 1px solid rgba(0, 0, 0, 0.05);
34
+ box-shadow: 0 -2px 10px rgba(0,0,0,0.03);
35
+ padding-bottom: env(safe-area-inset-bottom);
36
+ }
37
+
38
+ [data-mode="dark"] .mobile-bottom-bar {
39
+ background: rgba(20, 20, 25, 0.85);
40
+ border-top: 1px solid rgba(255, 255, 255, 0.05);
41
+ }
42
+
43
+ .bottom-nav-item {
44
+ flex: 1;
45
+ display: flex;
46
+ flex-direction: column;
47
+ justify-content: center;
48
+ align-items: center;
49
+ height: 100%;
50
+ color: var(--text-muted);
51
+ text-decoration: none;
52
+ transition: all 0.2s ease;
53
+ border: none;
54
+ background: transparent;
55
+ cursor: pointer;
56
+ padding: 0;
57
+ }
58
+
59
+ .bottom-nav-item i {
60
+ font-size: 1.25rem;
61
+ margin-bottom: 4px;
62
+ transition: all 0.2s ease;
63
+ }
64
+
65
+ .bottom-nav-item .nav-label {
66
+ font-size: 0.65rem;
67
+ font-weight: 500;
68
+ }
69
+
70
+ .bottom-nav-item:hover, .bottom-nav-item:active {
71
+ color: var(--brand-primary);
72
+ }
73
+
74
+ .bottom-nav-item.active {
75
+ color: var(--brand-primary);
76
+ }
77
+
78
+ .bottom-nav-item.active i {
79
+ transform: translateY(-2px);
80
+ }
81
+
82
+ /* --------------------------------------------------------------------------
83
+ 2. Bottom Sheet (Menü Modalı)
84
+ -------------------------------------------------------------------------- */
85
+ .mobile-bottom-sheet {
86
+ position: fixed;
87
+ top: 0;
88
+ left: 0;
89
+ width: 100%;
90
+ height: 100%;
91
+ z-index: 1001;
92
+ visibility: hidden;
93
+ pointer-events: none;
94
+ transition: visibility 0.3s;
95
+ }
96
+
97
+ .mobile-bottom-sheet.is-open {
98
+ visibility: visible;
99
+ pointer-events: auto;
100
+ }
101
+
102
+ .sheet-overlay {
103
+ position: absolute;
104
+ top: 0;
105
+ left: 0;
106
+ width: 100%;
107
+ height: 100%;
108
+ background: rgba(0,0,0,0.4);
109
+ opacity: 0;
110
+ transition: opacity 0.3s ease;
111
+ }
112
+
113
+ .mobile-bottom-sheet.is-open .sheet-overlay {
114
+ opacity: 1;
115
+ }
116
+
117
+ .sheet-content {
118
+ position: absolute;
119
+ bottom: 0;
120
+ left: 0;
121
+ width: 100%;
122
+ background: var(--canvas-bg);
123
+ border-top-left-radius: 24px;
124
+ border-top-right-radius: 24px;
125
+ transform: translateY(100%);
126
+ transition: transform 0.3s cubic-bezier(0.2, 0.8, 0.2, 1);
127
+ max-height: 80vh;
128
+ display: flex;
129
+ flex-direction: column;
130
+ padding-bottom: calc(85px + env(safe-area-inset-bottom));
131
+ }
132
+
133
+ .mobile-bottom-sheet.is-open .sheet-content {
134
+ transform: translateY(0);
135
+ }
136
+
137
+ .sheet-header {
138
+ display: flex;
139
+ flex-direction: column;
140
+ align-items: center;
141
+ padding: 12px 20px;
142
+ border-bottom: 1px solid var(--border-color);
143
+ }
144
+
145
+ .drag-handle {
146
+ width: 40px;
147
+ height: 4px;
148
+ background: var(--text-muted);
149
+ border-radius: 2px;
150
+ margin-bottom: 12px;
151
+ opacity: 0.5;
152
+ }
153
+
154
+ .sheet-title {
155
+ font-size: 1rem;
156
+ font-weight: 600;
157
+ color: var(--text-main);
158
+ margin: 0;
159
+ }
160
+
161
+ .sheet-body {
162
+ overflow-y: auto;
163
+ padding: 10px 0;
164
+ }
165
+
166
+ .sheet-item {
167
+ display: flex;
168
+ align-items: center;
169
+ padding: 14px 24px;
170
+ color: var(--text-main);
171
+ text-decoration: none;
172
+ transition: background 0.2s;
173
+ }
174
+
175
+ .sheet-item:hover, .sheet-item:active {
176
+ background: rgba(0,0,0,0.03);
177
+ }
178
+ [data-mode="dark"] .sheet-item:hover, [data-mode="dark"] .sheet-item:active {
179
+ background: rgba(255,255,255,0.05);
180
+ }
181
+
182
+ .sheet-icon-wrapper {
183
+ width: 40px;
184
+ height: 40px;
185
+ border-radius: 12px;
186
+ background: var(--glass-bg);
187
+ display: flex;
188
+ justify-content: center;
189
+ align-items: center;
190
+ margin-right: 16px;
191
+ color: var(--brand-primary);
192
+ font-size: 1.1rem;
193
+ }
194
+
195
+ .sheet-label {
196
+ font-size: 0.95rem;
197
+ font-weight: 500;
198
+ }
@@ -0,0 +1,184 @@
1
+ /* ==========================================================================
2
+ Sidebar Component (Glassmorphism & Expand on Hover)
3
+ ========================================================================== */
4
+
5
+ .app-sidebar {
6
+ width: 80px;
7
+ height: 100vh;
8
+ background: rgba(255, 255, 255, 0.4);
9
+ backdrop-filter: blur(24px);
10
+ -webkit-backdrop-filter: blur(24px);
11
+ border-right: 1px solid rgba(255, 255, 255, 0.6);
12
+ box-shadow: 5px 0 20px rgba(0, 0, 0, 0.05);
13
+ display: flex;
14
+ flex-direction: column;
15
+ transition: width 0.3s cubic-bezier(0.4, 0, 0.2, 1);
16
+ position: relative;
17
+ z-index: 100;
18
+ overflow-x: hidden;
19
+ overflow-y: auto;
20
+ }
21
+
22
+ [data-mode="dark"] .app-sidebar {
23
+ background: rgba(255, 255, 255, 0.03);
24
+ border-right: 1px solid rgba(255, 255, 255, 0.1);
25
+ box-shadow: 5px 0 20px rgba(0, 0, 0, 0.2);
26
+ }
27
+
28
+ /* Hover olduğunda genişlet */
29
+ .app-sidebar:hover {
30
+ width: 240px;
31
+ }
32
+
33
+ .sidebar-logo {
34
+ display: flex;
35
+ align-items: center;
36
+ padding: 1.5rem 0;
37
+ justify-content: center;
38
+ min-width: 80px;
39
+ overflow: hidden;
40
+ }
41
+
42
+ .sidebar-logo .logo-icon {
43
+ width: 44px;
44
+ height: 44px;
45
+ transition: transform 0.3s ease, opacity 0.2s ease;
46
+ flex-shrink: 0;
47
+ filter: drop-shadow(0 2px 5px rgba(0,0,0,0.1));
48
+ }
49
+
50
+ .sidebar-logo .logo-full {
51
+ width: 140px;
52
+ height: auto;
53
+ transition: opacity 0.3s ease;
54
+ flex-shrink: 0;
55
+ filter: drop-shadow(0 2px 5px rgba(0,0,0,0.1));
56
+ display: none;
57
+ opacity: 0;
58
+ }
59
+
60
+ .app-sidebar:hover .sidebar-logo .logo-icon {
61
+ display: none;
62
+ }
63
+
64
+ .app-sidebar:hover .sidebar-logo .logo-full {
65
+ display: block;
66
+ opacity: 1;
67
+ }
68
+
69
+ .app-sidebar:hover .sidebar-logo {
70
+ justify-content: flex-start;
71
+ padding-left: 1.1rem;
72
+ }
73
+
74
+ /* Navigasyon Menüsü */
75
+ .sidebar-nav {
76
+ display: flex;
77
+ flex-direction: column;
78
+ gap: 0.5rem;
79
+ padding: 1rem 0;
80
+ flex: 1;
81
+ }
82
+
83
+ .nav-item {
84
+ display: flex;
85
+ align-items: center;
86
+ padding: 0.75rem 0;
87
+ color: var(--text-muted);
88
+ transition: all 0.2s ease;
89
+ cursor: pointer;
90
+ text-decoration: none;
91
+ position: relative;
92
+ border-radius: 0 20px 20px 0;
93
+ margin-right: 1rem; /* Sağdan biraz boşluk */
94
+ overflow: hidden;
95
+ }
96
+
97
+ /* Sol taraftaki ikon container (sabit 80px genişliğe uyum sağlamak için) */
98
+ .nav-item .nav-icon {
99
+ min-width: 80px;
100
+ display: flex;
101
+ align-items: center;
102
+ justify-content: center;
103
+ font-size: 1.25rem;
104
+ flex-shrink: 0;
105
+ }
106
+
107
+ .nav-item .nav-icon i {
108
+ font-size: 1.25rem;
109
+ color: currentColor;
110
+ }
111
+
112
+ /* Menü Etiketleri (Yalnızca hover'da görünür) */
113
+ .nav-item .nav-label {
114
+ font-size: 0.95rem;
115
+ font-weight: 600;
116
+ opacity: 0;
117
+ white-space: nowrap;
118
+ transform: translateX(-10px);
119
+ transition: all 0.3s ease;
120
+ }
121
+
122
+ .app-sidebar:hover .nav-item .nav-label {
123
+ opacity: 1;
124
+ transform: translateX(0);
125
+ }
126
+
127
+ /* Hover & Active Durumları */
128
+ .nav-item:hover {
129
+ color: var(--brand-primary);
130
+ background: rgba(59, 31, 110, 0.05); /* brand-primary light */
131
+ }
132
+
133
+ .nav-item.active {
134
+ background: var(--brand-primary);
135
+ color: #fff;
136
+ box-shadow: 0 4px 15px rgba(59, 31, 110, 0.3);
137
+ }
138
+
139
+ /* Karanlık Modda Daha Yumuşak (Soft) Hover/Active Stilleri */
140
+ [data-mode="dark"] .nav-item:hover {
141
+ background: color-mix(in srgb, var(--brand-primary) 8%, transparent);
142
+ color: var(--brand-primary);
143
+ }
144
+
145
+ [data-mode="dark"] .nav-item.active {
146
+ background: color-mix(in srgb, var(--brand-primary) 15%, transparent);
147
+ color: var(--brand-primary);
148
+ box-shadow: inset 3px 0 0 var(--brand-primary); /* Soldan zarif bir vurgu çizgisi */
149
+ }
150
+
151
+ /* Alt kısımdaki ikonlar (Ayarlar vb.) */
152
+ .sidebar-footer {
153
+ padding: 1rem 0;
154
+ display: flex;
155
+ flex-direction: column;
156
+ gap: 0.5rem;
157
+ border-top: 1px solid rgba(255,255,255,0.2);
158
+ }
159
+ [data-mode="dark"] .sidebar-footer {
160
+ border-top: 1px solid rgba(255,255,255,0.05);
161
+ }
162
+
163
+ @media (max-width: 992px) {
164
+ /* Mobilde sidebar genelde gizlenir veya hamburger menü ile açılır. */
165
+ .app-sidebar {
166
+ position: fixed;
167
+ left: -100%;
168
+ width: 280px;
169
+ transition: left 0.3s ease;
170
+ }
171
+
172
+ .app-sidebar.mobile-open {
173
+ left: 0;
174
+ }
175
+
176
+ .app-sidebar:hover {
177
+ width: 280px;
178
+ }
179
+
180
+ .nav-item .nav-label {
181
+ opacity: 1;
182
+ transform: translateX(0);
183
+ }
184
+ }