@arikajs/cli 0.0.3 → 0.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 (228) hide show
  1. package/README.md +99 -6
  2. package/dist/bin/arika.js +2 -2
  3. package/dist/bin/arika.js.map +1 -1
  4. package/dist/src/ApplicationLoader.d.ts +5 -0
  5. package/dist/src/ApplicationLoader.d.ts.map +1 -1
  6. package/dist/src/ApplicationLoader.js +24 -2
  7. package/dist/src/ApplicationLoader.js.map +1 -1
  8. package/dist/src/Bootstrap.d.ts.map +1 -1
  9. package/dist/src/Bootstrap.js +35 -0
  10. package/dist/src/Bootstrap.js.map +1 -1
  11. package/dist/src/Commands/AuthApiInstallCommand.d.ts +24 -0
  12. package/dist/src/Commands/AuthApiInstallCommand.d.ts.map +1 -0
  13. package/dist/src/Commands/AuthApiInstallCommand.js +751 -0
  14. package/dist/src/Commands/AuthApiInstallCommand.js.map +1 -0
  15. package/dist/src/Commands/AuthInstallCommand.d.ts +7 -0
  16. package/dist/src/Commands/AuthInstallCommand.d.ts.map +1 -0
  17. package/dist/src/Commands/AuthInstallCommand.js +46 -0
  18. package/dist/src/Commands/AuthInstallCommand.js.map +1 -0
  19. package/dist/src/Commands/AuthWebInstallCommand.d.ts +31 -0
  20. package/dist/src/Commands/AuthWebInstallCommand.d.ts.map +1 -0
  21. package/dist/src/Commands/AuthWebInstallCommand.js +1100 -0
  22. package/dist/src/Commands/AuthWebInstallCommand.js.map +1 -0
  23. package/dist/src/Commands/BenchmarkCommand.d.ts +7 -0
  24. package/dist/src/Commands/BenchmarkCommand.d.ts.map +1 -0
  25. package/dist/src/Commands/BenchmarkCommand.js +25 -0
  26. package/dist/src/Commands/BenchmarkCommand.js.map +1 -0
  27. package/dist/src/Commands/CacheClearCommand.d.ts +7 -0
  28. package/dist/src/Commands/CacheClearCommand.d.ts.map +1 -0
  29. package/dist/src/Commands/CacheClearCommand.js +33 -0
  30. package/dist/src/Commands/CacheClearCommand.js.map +1 -0
  31. package/dist/src/Commands/CacheTableCommand.d.ts.map +1 -1
  32. package/dist/src/Commands/CacheTableCommand.js +21 -9
  33. package/dist/src/Commands/CacheTableCommand.js.map +1 -1
  34. package/dist/src/Commands/ConfigCacheCommand.d.ts +7 -0
  35. package/dist/src/Commands/ConfigCacheCommand.d.ts.map +1 -0
  36. package/dist/src/Commands/ConfigCacheCommand.js +86 -0
  37. package/dist/src/Commands/ConfigCacheCommand.js.map +1 -0
  38. package/dist/src/Commands/ConfigClearCommand.d.ts +7 -0
  39. package/dist/src/Commands/ConfigClearCommand.d.ts.map +1 -0
  40. package/dist/src/Commands/ConfigClearCommand.js +29 -0
  41. package/dist/src/Commands/ConfigClearCommand.js.map +1 -0
  42. package/dist/src/Commands/DocsGenerateCommand.d.ts +0 -1
  43. package/dist/src/Commands/DocsGenerateCommand.d.ts.map +1 -1
  44. package/dist/src/Commands/DocsGenerateCommand.js +68 -77
  45. package/dist/src/Commands/DocsGenerateCommand.js.map +1 -1
  46. package/dist/src/Commands/EnvValidateCommand.d.ts +7 -0
  47. package/dist/src/Commands/EnvValidateCommand.d.ts.map +1 -0
  48. package/dist/src/Commands/EnvValidateCommand.js +51 -0
  49. package/dist/src/Commands/EnvValidateCommand.js.map +1 -0
  50. package/dist/src/Commands/ListCommand.d.ts.map +1 -1
  51. package/dist/src/Commands/ListCommand.js +15 -8
  52. package/dist/src/Commands/ListCommand.js.map +1 -1
  53. package/dist/src/Commands/MakeCommand.d.ts +7 -0
  54. package/dist/src/Commands/MakeCommand.d.ts.map +1 -0
  55. package/dist/src/Commands/MakeCommand.js +110 -0
  56. package/dist/src/Commands/MakeCommand.js.map +1 -0
  57. package/dist/src/Commands/MakeCommandCommand.d.ts +20 -0
  58. package/dist/src/Commands/MakeCommandCommand.d.ts.map +1 -0
  59. package/dist/src/Commands/MakeCommandCommand.js +82 -0
  60. package/dist/src/Commands/MakeCommandCommand.js.map +1 -0
  61. package/dist/src/Commands/MakeControllerCommand.d.ts +17 -0
  62. package/dist/src/Commands/MakeControllerCommand.d.ts.map +1 -0
  63. package/dist/src/Commands/MakeControllerCommand.js +90 -0
  64. package/dist/src/Commands/MakeControllerCommand.js.map +1 -0
  65. package/dist/src/Commands/MakeEventCommand.d.ts +8 -0
  66. package/dist/src/Commands/MakeEventCommand.d.ts.map +1 -0
  67. package/dist/src/Commands/MakeEventCommand.js +48 -0
  68. package/dist/src/Commands/MakeEventCommand.js.map +1 -0
  69. package/dist/src/Commands/MakeJobCommand.d.ts +8 -0
  70. package/dist/src/Commands/MakeJobCommand.d.ts.map +1 -0
  71. package/dist/src/Commands/MakeJobCommand.js +55 -0
  72. package/dist/src/Commands/MakeJobCommand.js.map +1 -0
  73. package/dist/src/Commands/MakeListenerCommand.d.ts +8 -0
  74. package/dist/src/Commands/MakeListenerCommand.d.ts.map +1 -0
  75. package/dist/src/Commands/MakeListenerCommand.js +55 -0
  76. package/dist/src/Commands/MakeListenerCommand.js.map +1 -0
  77. package/dist/src/Commands/MakeMiddlewareCommand.d.ts +17 -0
  78. package/dist/src/Commands/MakeMiddlewareCommand.d.ts.map +1 -0
  79. package/dist/src/Commands/MakeMiddlewareCommand.js +69 -0
  80. package/dist/src/Commands/MakeMiddlewareCommand.js.map +1 -0
  81. package/dist/src/Commands/MakeMigrationCommand.js +4 -4
  82. package/dist/src/Commands/MakeMigrationCommand.js.map +1 -1
  83. package/dist/src/Commands/MakeModelCommand.d.ts +26 -0
  84. package/dist/src/Commands/MakeModelCommand.d.ts.map +1 -0
  85. package/dist/src/Commands/MakeModelCommand.js +193 -0
  86. package/dist/src/Commands/MakeModelCommand.js.map +1 -0
  87. package/dist/src/Commands/MakeProviderCommand.d.ts +17 -0
  88. package/dist/src/Commands/MakeProviderCommand.d.ts.map +1 -0
  89. package/dist/src/Commands/MakeProviderCommand.js +72 -0
  90. package/dist/src/Commands/MakeProviderCommand.js.map +1 -0
  91. package/dist/src/Commands/MakeViewCommand.d.ts +7 -0
  92. package/dist/src/Commands/MakeViewCommand.d.ts.map +1 -0
  93. package/dist/src/Commands/MakeViewCommand.js +37 -0
  94. package/dist/src/Commands/MakeViewCommand.js.map +1 -0
  95. package/dist/src/Commands/MigrateFreshCommand.d.ts +10 -0
  96. package/dist/src/Commands/MigrateFreshCommand.d.ts.map +1 -0
  97. package/dist/src/Commands/MigrateFreshCommand.js +129 -0
  98. package/dist/src/Commands/MigrateFreshCommand.js.map +1 -0
  99. package/dist/src/Commands/NewCommand.d.ts.map +1 -1
  100. package/dist/src/Commands/NewCommand.js +92 -24
  101. package/dist/src/Commands/NewCommand.js.map +1 -1
  102. package/dist/src/Commands/QueueFailedCommand.d.ts +7 -0
  103. package/dist/src/Commands/QueueFailedCommand.d.ts.map +1 -0
  104. package/dist/src/Commands/QueueFailedCommand.js +30 -0
  105. package/dist/src/Commands/QueueFailedCommand.js.map +1 -0
  106. package/dist/src/Commands/QueueFailedTableCommand.d.ts +7 -0
  107. package/dist/src/Commands/QueueFailedTableCommand.d.ts.map +1 -0
  108. package/dist/src/Commands/QueueFailedTableCommand.js +55 -0
  109. package/dist/src/Commands/QueueFailedTableCommand.js.map +1 -0
  110. package/dist/src/Commands/QueueFlushCommand.d.ts +7 -0
  111. package/dist/src/Commands/QueueFlushCommand.d.ts.map +1 -0
  112. package/dist/src/Commands/QueueFlushCommand.js +21 -0
  113. package/dist/src/Commands/QueueFlushCommand.js.map +1 -0
  114. package/dist/src/Commands/QueueRetryCommand.d.ts +7 -0
  115. package/dist/src/Commands/QueueRetryCommand.d.ts.map +1 -0
  116. package/dist/src/Commands/QueueRetryCommand.js +36 -0
  117. package/dist/src/Commands/QueueRetryCommand.js.map +1 -0
  118. package/dist/src/Commands/QueueTableCommand.d.ts.map +1 -1
  119. package/dist/src/Commands/QueueTableCommand.js +19 -13
  120. package/dist/src/Commands/QueueTableCommand.js.map +1 -1
  121. package/dist/src/Commands/QueueWorkCommand.d.ts +8 -0
  122. package/dist/src/Commands/QueueWorkCommand.d.ts.map +1 -0
  123. package/dist/src/Commands/QueueWorkCommand.js +88 -0
  124. package/dist/src/Commands/QueueWorkCommand.js.map +1 -0
  125. package/dist/src/Commands/RouteListCommand.d.ts +7 -0
  126. package/dist/src/Commands/RouteListCommand.d.ts.map +1 -0
  127. package/dist/src/Commands/RouteListCommand.js +108 -0
  128. package/dist/src/Commands/RouteListCommand.js.map +1 -0
  129. package/dist/src/Commands/ScheduleRunCommand.d.ts +9 -0
  130. package/dist/src/Commands/ScheduleRunCommand.d.ts.map +1 -0
  131. package/dist/src/Commands/ScheduleRunCommand.js +80 -0
  132. package/dist/src/Commands/ScheduleRunCommand.js.map +1 -0
  133. package/dist/src/Commands/ScheduleWorkCommand.d.ts +9 -0
  134. package/dist/src/Commands/ScheduleWorkCommand.d.ts.map +1 -0
  135. package/dist/src/Commands/ScheduleWorkCommand.js +81 -0
  136. package/dist/src/Commands/ScheduleWorkCommand.js.map +1 -0
  137. package/dist/src/Commands/ServeCommand.d.ts +1 -0
  138. package/dist/src/Commands/ServeCommand.d.ts.map +1 -1
  139. package/dist/src/Commands/ServeCommand.js +111 -21
  140. package/dist/src/Commands/ServeCommand.js.map +1 -1
  141. package/dist/src/TemplateManager.d.ts +4 -0
  142. package/dist/src/TemplateManager.d.ts.map +1 -1
  143. package/dist/src/TemplateManager.js +35 -6
  144. package/dist/src/TemplateManager.js.map +1 -1
  145. package/dist/templates/app/.env.example +47 -0
  146. package/dist/templates/app/README.md +62 -0
  147. package/dist/templates/app/app/Exceptions/Handler.ts +19 -0
  148. package/dist/templates/app/app/Http/Controllers/UserController.ts +90 -0
  149. package/dist/templates/app/app/Http/Kernel.ts +43 -0
  150. package/dist/templates/app/app/Http/Middleware/Authenticate.ts +10 -0
  151. package/dist/templates/app/app/Http/Middleware/EnsureEmailIsVerified.ts +18 -0
  152. package/dist/templates/app/app/Http/Middleware/ExampleMiddleware.ts +12 -0
  153. package/dist/templates/app/app/Http/Middleware/RedirectIfAuthenticated.ts +18 -0
  154. package/dist/templates/app/app/Http/Middleware/TrimStrings.ts +12 -0
  155. package/dist/templates/app/app/Http/Middleware/TrustProxies.ts +23 -0
  156. package/dist/templates/app/app/Http/Middleware/VerifyCsrfToken.ts +10 -0
  157. package/dist/templates/app/app/Models/User.ts +15 -0
  158. package/dist/templates/app/app/Providers/AppServiceProvider.ts +17 -0
  159. package/dist/templates/app/app/Providers/RouteServiceProvider.ts +35 -0
  160. package/dist/templates/app/bootstrap/app.ts +41 -0
  161. package/dist/templates/app/config/app.ts +10 -0
  162. package/dist/templates/app/config/cache.ts +44 -0
  163. package/dist/templates/app/config/database.ts +63 -0
  164. package/dist/templates/app/config/filesystems.ts +35 -0
  165. package/dist/templates/app/config/http.ts +6 -0
  166. package/dist/templates/app/config/logging.ts +37 -0
  167. package/dist/templates/app/config/mail.ts +29 -0
  168. package/dist/templates/app/config/queue.ts +42 -0
  169. package/{templates/app/database/migrations/0001_create_users_table.ts → dist/templates/app/database/migrations/2024_01_01_000001_create_users_table.ts} +3 -1
  170. package/dist/templates/app/database/migrations/2024_01_01_000002_create_password_resets_table.ts +22 -0
  171. package/dist/templates/app/database/migrations/2024_01_01_000003_create_failed_jobs_table.ts +25 -0
  172. package/dist/templates/app/package.json +22 -0
  173. package/dist/templates/app/public/assets/img/favicon.png +0 -0
  174. package/dist/templates/app/public/assets/img/logo.png +0 -0
  175. package/dist/templates/app/resources/views/errors/401.ark.html +320 -0
  176. package/dist/templates/app/resources/views/errors/403.ark.html +320 -0
  177. package/dist/templates/app/resources/views/errors/404.ark.html +320 -0
  178. package/dist/templates/app/resources/views/errors/419.ark.html +320 -0
  179. package/dist/templates/app/resources/views/errors/429.ark.html +320 -0
  180. package/dist/templates/app/resources/views/errors/500.ark.html +320 -0
  181. package/dist/templates/app/resources/views/errors/503.ark.html +320 -0
  182. package/dist/templates/app/resources/views/welcome.ark.html +846 -0
  183. package/dist/templates/app/routes/api.ts +39 -0
  184. package/dist/templates/app/routes/web.ts +10 -0
  185. package/dist/templates/app/server.ts +15 -0
  186. package/dist/templates/app/tsconfig.json +27 -0
  187. package/package.json +16 -10
  188. package/templates/app/.env.example +2 -2
  189. package/templates/app/README.md +62 -0
  190. package/templates/app/app/Exceptions/Handler.ts +19 -0
  191. package/templates/app/app/Http/Controllers/UserController.ts +90 -0
  192. package/templates/app/app/Http/Kernel.ts +39 -14
  193. package/templates/app/app/Http/Middleware/Authenticate.ts +10 -0
  194. package/templates/app/app/Http/Middleware/EnsureEmailIsVerified.ts +18 -0
  195. package/templates/app/app/Http/Middleware/ExampleMiddleware.ts +12 -0
  196. package/templates/app/app/Http/Middleware/RedirectIfAuthenticated.ts +18 -0
  197. package/templates/app/app/Http/Middleware/TrimStrings.ts +12 -0
  198. package/templates/app/app/Http/Middleware/TrustProxies.ts +23 -0
  199. package/templates/app/app/Http/Middleware/VerifyCsrfToken.ts +10 -0
  200. package/templates/app/app/Models/User.ts +5 -5
  201. package/templates/app/app/Providers/AppServiceProvider.ts +17 -0
  202. package/templates/app/app/Providers/RouteServiceProvider.ts +35 -0
  203. package/templates/app/bootstrap/app.ts +30 -2
  204. package/templates/app/config/app.ts +7 -6
  205. package/templates/app/config/cache.ts +14 -7
  206. package/templates/app/config/database.ts +48 -21
  207. package/templates/app/config/filesystems.ts +11 -9
  208. package/templates/app/config/http.ts +3 -2
  209. package/templates/app/config/logging.ts +6 -4
  210. package/templates/app/config/mail.ts +10 -8
  211. package/templates/app/config/queue.ts +6 -4
  212. package/templates/app/database/migrations/2024_01_01_000001_create_users_table.ts +25 -0
  213. package/templates/app/database/migrations/2024_01_01_000002_create_password_resets_table.ts +22 -0
  214. package/templates/app/database/migrations/2024_01_01_000003_create_failed_jobs_table.ts +25 -0
  215. package/templates/app/package.json +4 -3
  216. package/templates/app/public/assets/img/favicon.png +0 -0
  217. package/templates/app/public/assets/img/logo.png +0 -0
  218. package/templates/app/resources/views/welcome.ark.html +846 -0
  219. package/templates/app/routes/api.ts +8 -3
  220. package/templates/app/routes/web.ts +8 -4
  221. package/templates/app/server.ts +3 -4
  222. package/templates/app/tsconfig.json +12 -0
  223. package/dist/tests/Cli.test.d.ts +0 -2
  224. package/dist/tests/Cli.test.d.ts.map +0 -1
  225. package/dist/tests/Cli.test.js +0 -16
  226. package/dist/tests/Cli.test.js.map +0 -1
  227. package/templates/app/app/Controllers/UserController.ts +0 -88
  228. package/templates/app/resources/views/welcome.html +0 -470
@@ -0,0 +1,320 @@
1
+ <!DOCTYPE html>
2
+ <html lang="en" data-theme="light">
3
+
4
+ <head>
5
+ <meta charset="UTF-8">
6
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
7
+ <title>419 - Page Expired | {{ config('app.name', 'ArikaJS') }}</title>
8
+ <link rel="icon" type="image/png" href="/assets/img/favicon.png">
9
+ <link
10
+ href="https://fonts.googleapis.com/css2?family=Outfit:wght@300;400;600;800&family=Plus+Jakarta+Sans:wght@300;400;600;800&display=swap"
11
+ rel="stylesheet">
12
+ <style>
13
+ :root {
14
+ --primary: #14b8a6;
15
+ --primary-glow: rgba(20, 184, 166, 0.4);
16
+ --secondary: #0ea5e9;
17
+ --bg: #f8fafc;
18
+ --card-bg: rgba(255, 255, 255, 0.8);
19
+ --text-main: #0f172a;
20
+ --text-muted: #64748b;
21
+ --border: rgba(15, 23, 42, 0.08);
22
+ --aurora-opacity: 0.3;
23
+ --btn-secondary-bg: rgba(15, 23, 42, 0.05);
24
+ --pill-bg: rgba(15, 23, 42, 0.03);
25
+ --h1-gradient: linear-gradient(135deg, #0f172a 30%, #334155 100%);
26
+ }
27
+
28
+ [data-theme="dark"] {
29
+ --bg: #030712;
30
+ --card-bg: rgba(17, 24, 39, 0.7);
31
+ --text-main: #f8fafc;
32
+ --text-muted: #94a3b8;
33
+ --border: rgba(255, 255, 255, 0.08);
34
+ --aurora-opacity: 0.5;
35
+ --btn-secondary-bg: rgba(255, 255, 255, 0.05);
36
+ --pill-bg: rgba(255, 255, 255, 0.03);
37
+ --h1-gradient: linear-gradient(135deg, #fff 30%, rgba(255, 255, 255, 0.5) 100%);
38
+ }
39
+
40
+ * {
41
+ margin: 0;
42
+ padding: 0;
43
+ box-sizing: border-box;
44
+ transition: background-color 0.3s ease, color 0.3s ease, border-color 0.3s ease, box-shadow 0.3s ease;
45
+ }
46
+
47
+ body {
48
+ font-family: 'Plus Jakarta Sans', sans-serif;
49
+ background-color: var(--bg);
50
+ color: var(--text-main);
51
+ min-height: 100vh;
52
+ display: flex;
53
+ flex-direction: column;
54
+ overflow-x: hidden;
55
+ position: relative;
56
+ }
57
+
58
+ header {
59
+ width: 100%;
60
+ padding: 1.5rem 5%;
61
+ display: flex;
62
+ justify-content: space-between;
63
+ align-items: center;
64
+ position: fixed;
65
+ top: 0;
66
+ z-index: 100;
67
+ backdrop-filter: blur(10px);
68
+ border-bottom: 1px solid var(--border);
69
+ }
70
+
71
+ .logo-container {
72
+ display: flex;
73
+ align-items: center;
74
+ gap: 1rem;
75
+ text-decoration: none;
76
+ }
77
+
78
+ .logo {
79
+ width: 135px;
80
+ height: auto;
81
+ filter: drop-shadow(0 4px 6px rgba(20, 184, 166, 0.2));
82
+ }
83
+
84
+ [data-theme="dark"] .logo {
85
+ filter: invert(1) drop-shadow(0 4px 6px rgba(20, 184, 166, 0.3));
86
+ }
87
+
88
+ .theme-toggle {
89
+ background: var(--card-bg);
90
+ border: 1px solid var(--border);
91
+ padding: 0.5rem;
92
+ border-radius: 99px;
93
+ cursor: pointer;
94
+ display: flex;
95
+ align-items: center;
96
+ gap: 0.5rem;
97
+ }
98
+
99
+ .theme-toggle svg {
100
+ width: 20px;
101
+ height: 20px;
102
+ color: var(--text-main);
103
+ }
104
+
105
+ .aurora {
106
+ position: fixed;
107
+ top: 0;
108
+ left: 0;
109
+ width: 100%;
110
+ height: 100%;
111
+ z-index: -1;
112
+ filter: blur(100px);
113
+ opacity: var(--aurora-opacity);
114
+ pointer-events: none;
115
+ }
116
+
117
+ .aurora-blur {
118
+ position: absolute;
119
+ border-radius: 50%;
120
+ animation: move 20s infinite alternate;
121
+ }
122
+
123
+ .blur-1 {
124
+ width: 50vw;
125
+ height: 50vw;
126
+ background: radial-gradient(circle, var(--primary) 0%, transparent 70%);
127
+ top: -10%;
128
+ left: -10%;
129
+ }
130
+
131
+ .blur-2 {
132
+ width: 40vw;
133
+ height: 40vw;
134
+ background: radial-gradient(circle, var(--secondary) 0%, transparent 70%);
135
+ bottom: -10%;
136
+ right: -10%;
137
+ animation-duration: 25s;
138
+ }
139
+
140
+ @keyframes move {
141
+ from {
142
+ transform: translate(0, 0) scale(1);
143
+ }
144
+
145
+ to {
146
+ transform: translate(10%, 10%) scale(1.1);
147
+ }
148
+ }
149
+
150
+ .main-content {
151
+ flex: 1;
152
+ display: flex;
153
+ align-items: center;
154
+ justify-content: center;
155
+ padding: 8rem 2rem 4rem;
156
+ }
157
+
158
+ .container {
159
+ position: relative;
160
+ z-index: 10;
161
+ max-width: 800px;
162
+ width: 100%;
163
+ text-align: center;
164
+ animation: fadeIn 1s ease-out;
165
+ }
166
+
167
+ @keyframes fadeIn {
168
+ from {
169
+ opacity: 0;
170
+ transform: translateY(20px);
171
+ }
172
+
173
+ to {
174
+ opacity: 1;
175
+ transform: translateY(0);
176
+ }
177
+ }
178
+
179
+ .badge {
180
+ display: inline-block;
181
+ padding: 0.5rem 1.25rem;
182
+ background: rgba(20, 184, 166, 0.1);
183
+ border: 1px solid var(--primary);
184
+ color: var(--primary);
185
+ border-radius: 999px;
186
+ font-size: 0.85rem;
187
+ font-weight: 600;
188
+ margin-bottom: 2rem;
189
+ text-transform: uppercase;
190
+ letter-spacing: 0.1em;
191
+ }
192
+
193
+ h1 {
194
+ font-family: 'Outfit', sans-serif;
195
+ font-size: clamp(3rem, 10vw, 6rem);
196
+ font-weight: 800;
197
+ line-height: 1;
198
+ margin-bottom: 1.5rem;
199
+ letter-spacing: -0.04em;
200
+ background: var(--h1-gradient);
201
+ background-clip: text;
202
+ -webkit-background-clip: text;
203
+ -webkit-text-fill-color: transparent;
204
+ }
205
+
206
+ .description {
207
+ font-size: 1.25rem;
208
+ color: var(--text-muted);
209
+ max-width: 600px;
210
+ margin: 0 auto 3rem;
211
+ line-height: 1.6;
212
+ font-weight: 300;
213
+ }
214
+
215
+ .btn {
216
+ padding: 1rem 2.5rem;
217
+ border-radius: 12px;
218
+ font-weight: 600;
219
+ text-decoration: none;
220
+ transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
221
+ font-size: 1rem;
222
+ display: inline-block;
223
+ }
224
+
225
+ .btn-primary {
226
+ background: var(--primary);
227
+ color: white;
228
+ box-shadow: 0 4px 20px var(--primary-glow);
229
+ }
230
+
231
+ .btn-primary:hover {
232
+ transform: translateY(-2px);
233
+ box-shadow: 0 8px 30px var(--primary-glow);
234
+ filter: brightness(1.1);
235
+ }
236
+
237
+ .footer {
238
+ padding: 3rem 0;
239
+ color: var(--text-muted);
240
+ font-size: 0.875rem;
241
+ text-align: center;
242
+ border-top: 1px solid var(--border);
243
+ }
244
+
245
+ .footer span {
246
+ color: var(--primary);
247
+ font-weight: 600;
248
+ }
249
+
250
+ @media (max-width: 768px) {
251
+ h1 {
252
+ font-size: 4rem;
253
+ }
254
+
255
+ header {
256
+ padding: 1rem 5%;
257
+ }
258
+ }
259
+ </style>
260
+ </head>
261
+
262
+ <body>
263
+ <header>
264
+ <a href="/" class="logo-container">
265
+ <img src="/assets/img/logo.png" alt="{{ config('app.name', 'ArikaJS') }} Logo" class="logo">
266
+ </a>
267
+ <button class="theme-toggle" id="theme-toggle" title="Toggle Theme">
268
+ <svg id="moon-icon" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24"
269
+ stroke="currentColor">
270
+ <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2"
271
+ d="M20.354 15.354A9 9 0 018.646 3.646 9.003 9.003 0 0012 21a9.003 9.003 0 008.354-5.646z" />
272
+ </svg>
273
+ <svg id="sun-icon" style="display: none;" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24"
274
+ stroke="currentColor">
275
+ <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2"
276
+ d="M12 3v1m0 16v1m9-9h-1M4 12H3m15.364 6.364l-.707-.707M6.343 6.343l-.707-.707m12.728 0l-.707.707M6.343 17.657l-.707.707M16 12a4 4 0 11-8 0 4 4 0 018 0z" />
277
+ </svg>
278
+ </button>
279
+ </header>
280
+ <div class="aurora">
281
+ <div class="aurora-blur blur-1"></div>
282
+ <div class="aurora-blur blur-2"></div>
283
+ </div>
284
+ <main class="main-content">
285
+ <div class="container">
286
+ <div class="badge">Error 419</div>
287
+ <h1>Page Expired</h1>
288
+ <p class="description">Your session has expired due to inactivity. Please refresh the page and try your
289
+ request again.</p>
290
+ <div class="actions">
291
+ <a href="javascript:location.reload()" class="btn btn-primary">Refresh Page</a>
292
+ </div>
293
+ </div>
294
+ </main>
295
+ <footer class="footer">
296
+ &copy; 2026 <span>{{ config('app.name', 'ArikaJS') }}</span>. Premium Web Framework.
297
+ </footer>
298
+ <script>
299
+ const themeToggle = document.getElementById('theme-toggle');
300
+ const moonIcon = document.getElementById('moon-icon');
301
+ const sunIcon = document.getElementById('sun-icon');
302
+ const html = document.documentElement;
303
+ const savedTheme = localStorage.getItem('theme') || 'light';
304
+ html.setAttribute('data-theme', savedTheme);
305
+ updateIcons(savedTheme);
306
+ themeToggle.addEventListener('click', () => {
307
+ const currentTheme = html.getAttribute('data-theme');
308
+ const newTheme = currentTheme === 'light' ? 'dark' : 'light';
309
+ html.setAttribute('data-theme', newTheme);
310
+ localStorage.setItem('theme', newTheme);
311
+ updateIcons(newTheme);
312
+ });
313
+ function updateIcons(theme) {
314
+ if (theme === 'dark') { moonIcon.style.display = 'none'; sunIcon.style.display = 'block'; }
315
+ else { moonIcon.style.display = 'block'; sunIcon.style.display = 'none'; }
316
+ }
317
+ </script>
318
+ </body>
319
+
320
+ </html>
@@ -0,0 +1,320 @@
1
+ <!DOCTYPE html>
2
+ <html lang="en" data-theme="light">
3
+
4
+ <head>
5
+ <meta charset="UTF-8">
6
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
7
+ <title>429 - Slow Down! | {{ config('app.name', 'ArikaJS') }}</title>
8
+ <link rel="icon" type="image/png" href="/assets/img/favicon.png">
9
+ <link
10
+ href="https://fonts.googleapis.com/css2?family=Outfit:wght@300;400;600;800&family=Plus+Jakarta+Sans:wght@300;400;600;800&display=swap"
11
+ rel="stylesheet">
12
+ <style>
13
+ :root {
14
+ --primary: #f43f5e;
15
+ --primary-glow: rgba(244, 63, 94, 0.4);
16
+ --secondary: #fb7185;
17
+ --bg: #f8fafc;
18
+ --card-bg: rgba(255, 255, 255, 0.8);
19
+ --text-main: #0f172a;
20
+ --text-muted: #64748b;
21
+ --border: rgba(15, 23, 42, 0.08);
22
+ --aurora-opacity: 0.3;
23
+ --btn-secondary-bg: rgba(15, 23, 42, 0.05);
24
+ --pill-bg: rgba(15, 23, 42, 0.03);
25
+ --h1-gradient: linear-gradient(135deg, #0f172a 30%, #334155 100%);
26
+ }
27
+
28
+ [data-theme="dark"] {
29
+ --bg: #030712;
30
+ --card-bg: rgba(17, 24, 39, 0.7);
31
+ --text-main: #f8fafc;
32
+ --text-muted: #94a3b8;
33
+ --border: rgba(255, 255, 255, 0.08);
34
+ --aurora-opacity: 0.5;
35
+ --btn-secondary-bg: rgba(255, 255, 255, 0.05);
36
+ --pill-bg: rgba(255, 255, 255, 0.03);
37
+ --h1-gradient: linear-gradient(135deg, #fff 30%, rgba(255, 255, 255, 0.5) 100%);
38
+ }
39
+
40
+ * {
41
+ margin: 0;
42
+ padding: 0;
43
+ box-sizing: border-box;
44
+ transition: background-color 0.3s ease, color 0.3s ease, border-color 0.3s ease, box-shadow 0.3s ease;
45
+ }
46
+
47
+ body {
48
+ font-family: 'Plus Jakarta Sans', sans-serif;
49
+ background-color: var(--bg);
50
+ color: var(--text-main);
51
+ min-height: 100vh;
52
+ display: flex;
53
+ flex-direction: column;
54
+ overflow-x: hidden;
55
+ position: relative;
56
+ }
57
+
58
+ header {
59
+ width: 100%;
60
+ padding: 1.5rem 5%;
61
+ display: flex;
62
+ justify-content: space-between;
63
+ align-items: center;
64
+ position: fixed;
65
+ top: 0;
66
+ z-index: 100;
67
+ backdrop-filter: blur(10px);
68
+ border-bottom: 1px solid var(--border);
69
+ }
70
+
71
+ .logo-container {
72
+ display: flex;
73
+ align-items: center;
74
+ gap: 1rem;
75
+ text-decoration: none;
76
+ }
77
+
78
+ .logo {
79
+ width: 135px;
80
+ height: auto;
81
+ filter: drop-shadow(0 4px 6px rgba(244, 63, 94, 0.2));
82
+ }
83
+
84
+ [data-theme="dark"] .logo {
85
+ filter: invert(1) drop-shadow(0 4px 6px rgba(244, 63, 94, 0.3));
86
+ }
87
+
88
+ .theme-toggle {
89
+ background: var(--card-bg);
90
+ border: 1px solid var(--border);
91
+ padding: 0.5rem;
92
+ border-radius: 99px;
93
+ cursor: pointer;
94
+ display: flex;
95
+ align-items: center;
96
+ gap: 0.5rem;
97
+ }
98
+
99
+ .theme-toggle svg {
100
+ width: 20px;
101
+ height: 20px;
102
+ color: var(--text-main);
103
+ }
104
+
105
+ .aurora {
106
+ position: fixed;
107
+ top: 0;
108
+ left: 0;
109
+ width: 100%;
110
+ height: 100%;
111
+ z-index: -1;
112
+ filter: blur(100px);
113
+ opacity: var(--aurora-opacity);
114
+ pointer-events: none;
115
+ }
116
+
117
+ .aurora-blur {
118
+ position: absolute;
119
+ border-radius: 50%;
120
+ animation: move 20s infinite alternate;
121
+ }
122
+
123
+ .blur-1 {
124
+ width: 50vw;
125
+ height: 50vw;
126
+ background: radial-gradient(circle, var(--primary) 0%, transparent 70%);
127
+ top: -10%;
128
+ left: -10%;
129
+ }
130
+
131
+ .blur-2 {
132
+ width: 40vw;
133
+ height: 40vw;
134
+ background: radial-gradient(circle, var(--secondary) 0%, transparent 70%);
135
+ bottom: -10%;
136
+ right: -10%;
137
+ animation-duration: 25s;
138
+ }
139
+
140
+ @keyframes move {
141
+ from {
142
+ transform: translate(0, 0) scale(1);
143
+ }
144
+
145
+ to {
146
+ transform: translate(10%, 10%) scale(1.1);
147
+ }
148
+ }
149
+
150
+ .main-content {
151
+ flex: 1;
152
+ display: flex;
153
+ align-items: center;
154
+ justify-content: center;
155
+ padding: 8rem 2rem 4rem;
156
+ }
157
+
158
+ .container {
159
+ position: relative;
160
+ z-index: 10;
161
+ max-width: 800px;
162
+ width: 100%;
163
+ text-align: center;
164
+ animation: fadeIn 1s ease-out;
165
+ }
166
+
167
+ @keyframes fadeIn {
168
+ from {
169
+ opacity: 0;
170
+ transform: translateY(20px);
171
+ }
172
+
173
+ to {
174
+ opacity: 1;
175
+ transform: translateY(0);
176
+ }
177
+ }
178
+
179
+ .badge {
180
+ display: inline-block;
181
+ padding: 0.5rem 1.25rem;
182
+ background: rgba(244, 63, 94, 0.1);
183
+ border: 1px solid var(--primary);
184
+ color: var(--primary);
185
+ border-radius: 999px;
186
+ font-size: 0.85rem;
187
+ font-weight: 600;
188
+ margin-bottom: 2rem;
189
+ text-transform: uppercase;
190
+ letter-spacing: 0.1em;
191
+ }
192
+
193
+ h1 {
194
+ font-family: 'Outfit', sans-serif;
195
+ font-size: clamp(3rem, 10vw, 6rem);
196
+ font-weight: 800;
197
+ line-height: 1;
198
+ margin-bottom: 1.5rem;
199
+ letter-spacing: -0.04em;
200
+ background: var(--h1-gradient);
201
+ background-clip: text;
202
+ -webkit-background-clip: text;
203
+ -webkit-text-fill-color: transparent;
204
+ }
205
+
206
+ .description {
207
+ font-size: 1.25rem;
208
+ color: var(--text-muted);
209
+ max-width: 600px;
210
+ margin: 0 auto 3rem;
211
+ line-height: 1.6;
212
+ font-weight: 300;
213
+ }
214
+
215
+ .btn {
216
+ padding: 1rem 2.5rem;
217
+ border-radius: 12px;
218
+ font-weight: 600;
219
+ text-decoration: none;
220
+ transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
221
+ font-size: 1rem;
222
+ display: inline-block;
223
+ }
224
+
225
+ .btn-primary {
226
+ background: var(--primary);
227
+ color: white;
228
+ box-shadow: 0 4px 20px var(--primary-glow);
229
+ }
230
+
231
+ .btn-primary:hover {
232
+ transform: translateY(-2px);
233
+ box-shadow: 0 8px 30px var(--primary-glow);
234
+ filter: brightness(1.1);
235
+ }
236
+
237
+ .footer {
238
+ padding: 3rem 0;
239
+ color: var(--text-muted);
240
+ font-size: 0.875rem;
241
+ text-align: center;
242
+ border-top: 1px solid var(--border);
243
+ }
244
+
245
+ .footer span {
246
+ color: var(--primary);
247
+ font-weight: 600;
248
+ }
249
+
250
+ @media (max-width: 768px) {
251
+ h1 {
252
+ font-size: 4rem;
253
+ }
254
+
255
+ header {
256
+ padding: 1rem 5%;
257
+ }
258
+ }
259
+ </style>
260
+ </head>
261
+
262
+ <body>
263
+ <header>
264
+ <a href="/" class="logo-container">
265
+ <img src="/assets/img/logo.png" alt="{{ config('app.name', 'ArikaJS') }} Logo" class="logo">
266
+ </a>
267
+ <button class="theme-toggle" id="theme-toggle" title="Toggle Theme">
268
+ <svg id="moon-icon" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24"
269
+ stroke="currentColor">
270
+ <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2"
271
+ d="M20.354 15.354A9 9 0 018.646 3.646 9.003 9.003 0 0012 21a9.003 9.003 0 008.354-5.646z" />
272
+ </svg>
273
+ <svg id="sun-icon" style="display: none;" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24"
274
+ stroke="currentColor">
275
+ <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2"
276
+ d="M12 3v1m0 16v1m9-9h-1M4 12H3m15.364 6.364l-.707-.707M6.343 6.343l-.707-.707m12.728 0l-.707.707M6.343 17.657l-.707.707M16 12a4 4 0 11-8 0 4 4 0 018 0z" />
277
+ </svg>
278
+ </button>
279
+ </header>
280
+ <div class="aurora">
281
+ <div class="aurora-blur blur-1"></div>
282
+ <div class="aurora-blur blur-2"></div>
283
+ </div>
284
+ <main class="main-content">
285
+ <div class="container">
286
+ <div class="badge">Error 429</div>
287
+ <h1>Slow Down!</h1>
288
+ <p class="description">You're sending too many requests too quickly. Please take a small break and try again
289
+ in a few minutes.</p>
290
+ <div class="actions">
291
+ <a href="/" class="btn btn-primary">Try Again Later</a>
292
+ </div>
293
+ </div>
294
+ </main>
295
+ <footer class="footer">
296
+ &copy; 2026 <span>{{ config('app.name', 'ArikaJS') }}</span>. Premium Web Framework.
297
+ </footer>
298
+ <script>
299
+ const themeToggle = document.getElementById('theme-toggle');
300
+ const moonIcon = document.getElementById('moon-icon');
301
+ const sunIcon = document.getElementById('sun-icon');
302
+ const html = document.documentElement;
303
+ const savedTheme = localStorage.getItem('theme') || 'light';
304
+ html.setAttribute('data-theme', savedTheme);
305
+ updateIcons(savedTheme);
306
+ themeToggle.addEventListener('click', () => {
307
+ const currentTheme = html.getAttribute('data-theme');
308
+ const newTheme = currentTheme === 'light' ? 'dark' : 'light';
309
+ html.setAttribute('data-theme', newTheme);
310
+ localStorage.setItem('theme', newTheme);
311
+ updateIcons(newTheme);
312
+ });
313
+ function updateIcons(theme) {
314
+ if (theme === 'dark') { moonIcon.style.display = 'none'; sunIcon.style.display = 'block'; }
315
+ else { moonIcon.style.display = 'block'; sunIcon.style.display = 'none'; }
316
+ }
317
+ </script>
318
+ </body>
319
+
320
+ </html>