arikajs 0.10.2 → 0.10.4

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 (76) hide show
  1. package/dist/Application.d.ts +1 -1
  2. package/dist/Application.d.ts.map +1 -1
  3. package/dist/Application.js +15 -1
  4. package/dist/Application.js.map +1 -1
  5. package/dist/facades/Schedule.d.ts +8 -0
  6. package/dist/facades/Schedule.d.ts.map +1 -0
  7. package/dist/facades/Schedule.js +25 -0
  8. package/dist/facades/Schedule.js.map +1 -0
  9. package/dist/helpers.d.ts +17 -1
  10. package/dist/helpers.d.ts.map +1 -1
  11. package/dist/helpers.js +44 -2
  12. package/dist/helpers.js.map +1 -1
  13. package/dist/http/Handler.d.ts +4 -0
  14. package/dist/http/Handler.d.ts.map +1 -1
  15. package/dist/http/Handler.js +348 -1
  16. package/dist/http/Handler.js.map +1 -1
  17. package/dist/http/Kernel.d.ts.map +1 -1
  18. package/dist/http/Kernel.js +15 -13
  19. package/dist/http/Kernel.js.map +1 -1
  20. package/dist/http/Middleware/ViewMiddleware.d.ts.map +1 -1
  21. package/dist/http/Middleware/ViewMiddleware.js +31 -5
  22. package/dist/http/Middleware/ViewMiddleware.js.map +1 -1
  23. package/dist/index.d.ts +9 -3
  24. package/dist/index.d.ts.map +1 -1
  25. package/dist/index.js +19 -3
  26. package/dist/index.js.map +1 -1
  27. package/dist/providers/FrameworkServiceProvider.d.ts.map +1 -1
  28. package/dist/providers/FrameworkServiceProvider.js +2 -0
  29. package/dist/providers/FrameworkServiceProvider.js.map +1 -1
  30. package/dist/providers/QueueServiceProvider.d.ts.map +1 -1
  31. package/dist/providers/QueueServiceProvider.js +2 -7
  32. package/dist/providers/QueueServiceProvider.js.map +1 -1
  33. package/dist/providers/StorageServiceProvider.d.ts +12 -0
  34. package/dist/providers/StorageServiceProvider.d.ts.map +1 -0
  35. package/dist/providers/StorageServiceProvider.js +41 -0
  36. package/dist/providers/StorageServiceProvider.js.map +1 -0
  37. package/dist/providers/ViewServiceProvider.d.ts.map +1 -1
  38. package/dist/providers/ViewServiceProvider.js +4 -0
  39. package/dist/providers/ViewServiceProvider.js.map +1 -1
  40. package/package.json +27 -22
  41. package/CHANGELOG.md +0 -124
  42. package/src/Application.ts +0 -236
  43. package/src/Contracts/Application.ts +0 -24
  44. package/src/createApp.ts +0 -9
  45. package/src/helpers.ts +0 -106
  46. package/src/http/Handler.ts +0 -184
  47. package/src/http/Kernel.ts +0 -108
  48. package/src/http/Middleware/RequestLoggingMiddleware.ts +0 -17
  49. package/src/http/Middleware/ServeStaticMiddleware.ts +0 -34
  50. package/src/http/Middleware/ValidateRequestMiddleware.ts +0 -35
  51. package/src/http/Middleware/VerifyCsrfToken.ts +0 -101
  52. package/src/http/Middleware/ViewMiddleware.ts +0 -24
  53. package/src/http/views/errors/401.ark.html +0 -57
  54. package/src/http/views/errors/403.ark.html +0 -54
  55. package/src/http/views/errors/404.ark.html +0 -179
  56. package/src/http/views/errors/419.ark.html +0 -54
  57. package/src/http/views/errors/429.ark.html +0 -54
  58. package/src/http/views/errors/500.ark.html +0 -54
  59. package/src/http/views/errors/503.ark.html +0 -49
  60. package/src/index.ts +0 -75
  61. package/src/providers/AuthServiceProvider.ts +0 -28
  62. package/src/providers/CacheServiceProvider.ts +0 -29
  63. package/src/providers/DatabaseServiceProvider.ts +0 -46
  64. package/src/providers/EventsServiceProvider.ts +0 -19
  65. package/src/providers/FrameworkServiceProvider.ts +0 -44
  66. package/src/providers/HttpServiceProvider.ts +0 -37
  67. package/src/providers/LoggingServiceProvider.ts +0 -17
  68. package/src/providers/MailServiceProvider.ts +0 -33
  69. package/src/providers/QueueServiceProvider.ts +0 -36
  70. package/src/providers/SchedulerServiceProvider.ts +0 -18
  71. package/src/providers/SessionServiceProvider.ts +0 -68
  72. package/src/providers/TranslationServiceProvider.ts +0 -51
  73. package/src/providers/ValidationServiceProvider.ts +0 -24
  74. package/src/providers/ViewServiceProvider.ts +0 -46
  75. package/tests/Framework.test.ts +0 -140
  76. package/tsconfig.json +0 -25
@@ -1,54 +0,0 @@
1
- <!DOCTYPE html>
2
- <html lang="en">
3
- <head>
4
- <meta charset="UTF-8">
5
- <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
- <title>419 - Page Expired | {{app_name}}</title>
7
- <link rel="icon" type="image/png" href="/assets/img/favicon.png">
8
- <link href="https://fonts.googleapis.com/css2?family=Outfit:wght@300;400;600;800&family=Plus+Jakarta+Sans:wght@300;400;600;800&display=swap" rel="stylesheet">
9
- <style>
10
- * { margin: 0; padding: 0; box-sizing: border-box; }
11
- body { font-family: 'Plus Jakarta Sans', sans-serif; background-color: #f8fafc; color: #0f172a; min-height: 100vh; display: flex; flex-direction: column; overflow-x: hidden; position: relative; }
12
- .aurora { position: fixed; top: 0; left: 0; width: 100%; height: 100%; z-index: -1; filter: blur(100px); opacity: 0.25; pointer-events: none; }
13
- .aurora-blur { position: absolute; border-radius: 50%; animation: move 20s infinite alternate; }
14
- .blur-1 { width: 50vw; height: 50vw; background: radial-gradient(circle, #f59e0b 0%, transparent 70%); top: -10%; left: -10%; }
15
- .blur-2 { width: 40vw; height: 40vw; background: radial-gradient(circle, #ec4899 0%, transparent 70%); bottom: -10%; right: -10%; animation-duration: 25s; }
16
- @keyframes move { from { transform: translate(0, 0) scale(1); } to { transform: translate(10%, 10%) scale(1.1); } }
17
- header { width: 100%; padding: 1.5rem 5%; display: flex; align-items: center; backdrop-filter: blur(10px); border-bottom: 1px solid rgba(15, 23, 42, 0.08); }
18
- .logo { width: 120px; height: auto; filter: drop-shadow(0 4px 6px rgba(139, 92, 246, 0.2)); }
19
- .main-content { flex: 1; display: flex; align-items: center; justify-content: center; padding: 6rem 2rem 4rem; }
20
- .container { position: relative; z-index: 10; max-width: 700px; width: 100%; text-align: center; animation: fadeIn 0.8s ease-out; }
21
- @keyframes fadeIn { from { opacity: 0; transform: translateY(24px); } to { opacity: 1; transform: translateY(0); } }
22
- .badge { display: inline-block; padding: 0.45rem 1.1rem; background: rgba(245, 158, 11, 0.08); border: 1px solid #f59e0b; color: #d97706; border-radius: 999px; font-size: 0.8rem; font-weight: 700; margin-bottom: 1.75rem; text-transform: uppercase; letter-spacing: 0.1em; }
23
- h1 { font-family: 'Outfit', sans-serif; font-size: clamp(3rem, 10vw, 5.5rem); font-weight: 800; line-height: 1; margin-bottom: 1.5rem; letter-spacing: -0.04em; background: linear-gradient(135deg, #0f172a 30%, #334155 100%); background-clip: text; -webkit-background-clip: text; -webkit-text-fill-color: transparent; }
24
- .description { font-size: 1.15rem; color: #64748b; max-width: 520px; margin: 0 auto 2.5rem; line-height: 1.7; }
25
- .actions { display: flex; gap: 1rem; justify-content: center; flex-wrap: wrap; }
26
- .btn { padding: 0.875rem 2rem; border-radius: 12px; font-weight: 600; text-decoration: none; transition: all 0.25s ease; font-size: 0.95rem; display: inline-flex; align-items: center; gap: 0.5rem; cursor: pointer; border: none; }
27
- .btn-primary { background: #8b5cf6; color: white; box-shadow: 0 4px 20px rgba(139, 92, 246, 0.35); }
28
- .btn-primary:hover { transform: translateY(-2px); box-shadow: 0 8px 30px rgba(139, 92, 246, 0.45); background: #7c3aed; }
29
- .code-display { font-family: 'Outfit', sans-serif; font-size: clamp(6rem, 20vw, 12rem); font-weight: 800; line-height: 1; margin-bottom: 0.5rem; background: linear-gradient(135deg, rgba(245, 158, 11, 0.2) 0%, rgba(236, 72, 153, 0.1) 100%); background-clip: text; -webkit-background-clip: text; -webkit-text-fill-color: transparent; letter-spacing: -0.04em; }
30
- .footer { padding: 2rem 0; color: #94a3b8; font-size: 0.8rem; text-align: center; border-top: 1px solid rgba(15, 23, 42, 0.06); }
31
- .footer a { color: #8b5cf6; text-decoration: none; font-weight: 600; }
32
- @media (max-width: 640px) { .actions { flex-direction: column; align-items: center; } }
33
- </style>
34
- </head>
35
- <body>
36
- <div class="aurora"><div class="aurora-blur blur-1"></div><div class="aurora-blur blur-2"></div></div>
37
- <header><a href="/"><img src="/assets/img/logo.png" alt="{{app_name}} Logo" class="logo"></a></header>
38
- <main class="main-content">
39
- <div class="container">
40
- <div class="code-display">419</div>
41
- <div class="badge">Session Expired</div>
42
- <h1>Page Expired</h1>
43
- <p class="description">Your session has expired due to inactivity. Please refresh the page and try your request again.</p>
44
- <div class="actions">
45
- <button onclick="window.location.reload()" class="btn btn-primary">
46
- <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="23 4 23 10 17 10"/><polyline points="1 20 1 14 7 14"/><path d="M3.51 9a9 9 0 0114.85-3.36L23 10M1 14l4.64 4.36A9 9 0 0020.49 15"/></svg>
47
- Refresh Page
48
- </button>
49
- </div>
50
- </div>
51
- </main>
52
- <footer class="footer">&copy; {{app_name}} &mdash; Powered by <a href="https://github.com/arikajs/arikajs">ArikaJS Framework</a></footer>
53
- </body>
54
- </html>
@@ -1,54 +0,0 @@
1
- <!DOCTYPE html>
2
- <html lang="en">
3
- <head>
4
- <meta charset="UTF-8">
5
- <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
- <title>429 - Too Many Requests | {{app_name}}</title>
7
- <link rel="icon" type="image/png" href="/assets/img/favicon.png">
8
- <link href="https://fonts.googleapis.com/css2?family=Outfit:wght@300;400;600;800&family=Plus+Jakarta+Sans:wght@300;400;600;800&display=swap" rel="stylesheet">
9
- <style>
10
- * { margin: 0; padding: 0; box-sizing: border-box; }
11
- body { font-family: 'Plus Jakarta Sans', sans-serif; background-color: #f8fafc; color: #0f172a; min-height: 100vh; display: flex; flex-direction: column; overflow-x: hidden; position: relative; }
12
- .aurora { position: fixed; top: 0; left: 0; width: 100%; height: 100%; z-index: -1; filter: blur(100px); opacity: 0.25; pointer-events: none; }
13
- .aurora-blur { position: absolute; border-radius: 50%; animation: move 20s infinite alternate; }
14
- .blur-1 { width: 50vw; height: 50vw; background: radial-gradient(circle, #f97316 0%, transparent 70%); top: -10%; left: -10%; }
15
- .blur-2 { width: 40vw; height: 40vw; background: radial-gradient(circle, #ef4444 0%, transparent 70%); bottom: -10%; right: -10%; animation-duration: 25s; }
16
- @keyframes move { from { transform: translate(0, 0) scale(1); } to { transform: translate(10%, 10%) scale(1.1); } }
17
- header { width: 100%; padding: 1.5rem 5%; display: flex; align-items: center; backdrop-filter: blur(10px); border-bottom: 1px solid rgba(15, 23, 42, 0.08); }
18
- .logo { width: 120px; height: auto; filter: drop-shadow(0 4px 6px rgba(139, 92, 246, 0.2)); }
19
- .main-content { flex: 1; display: flex; align-items: center; justify-content: center; padding: 6rem 2rem 4rem; }
20
- .container { position: relative; z-index: 10; max-width: 700px; width: 100%; text-align: center; animation: fadeIn 0.8s ease-out; }
21
- @keyframes fadeIn { from { opacity: 0; transform: translateY(24px); } to { opacity: 1; transform: translateY(0); } }
22
- .badge { display: inline-block; padding: 0.45rem 1.1rem; background: rgba(249, 115, 22, 0.08); border: 1px solid #f97316; color: #ea580c; border-radius: 999px; font-size: 0.8rem; font-weight: 700; margin-bottom: 1.75rem; text-transform: uppercase; letter-spacing: 0.1em; }
23
- h1 { font-family: 'Outfit', sans-serif; font-size: clamp(3rem, 10vw, 5.5rem); font-weight: 800; line-height: 1; margin-bottom: 1.5rem; letter-spacing: -0.04em; background: linear-gradient(135deg, #0f172a 30%, #334155 100%); background-clip: text; -webkit-background-clip: text; -webkit-text-fill-color: transparent; }
24
- .description { font-size: 1.15rem; color: #64748b; max-width: 520px; margin: 0 auto 2.5rem; line-height: 1.7; }
25
- .actions { display: flex; gap: 1rem; justify-content: center; flex-wrap: wrap; }
26
- .btn { padding: 0.875rem 2rem; border-radius: 12px; font-weight: 600; text-decoration: none; transition: all 0.25s ease; font-size: 0.95rem; display: inline-flex; align-items: center; gap: 0.5rem; }
27
- .btn-primary { background: #8b5cf6; color: white; box-shadow: 0 4px 20px rgba(139, 92, 246, 0.35); }
28
- .btn-primary:hover { transform: translateY(-2px); box-shadow: 0 8px 30px rgba(139, 92, 246, 0.45); background: #7c3aed; }
29
- .code-display { font-family: 'Outfit', sans-serif; font-size: clamp(6rem, 20vw, 12rem); font-weight: 800; line-height: 1; margin-bottom: 0.5rem; background: linear-gradient(135deg, rgba(249, 115, 22, 0.25) 0%, rgba(239, 68, 68, 0.1) 100%); background-clip: text; -webkit-background-clip: text; -webkit-text-fill-color: transparent; letter-spacing: -0.04em; }
30
- .footer { padding: 2rem 0; color: #94a3b8; font-size: 0.8rem; text-align: center; border-top: 1px solid rgba(15, 23, 42, 0.06); }
31
- .footer a { color: #8b5cf6; text-decoration: none; font-weight: 600; }
32
- @media (max-width: 640px) { .actions { flex-direction: column; align-items: center; } }
33
- </style>
34
- </head>
35
- <body>
36
- <div class="aurora"><div class="aurora-blur blur-1"></div><div class="aurora-blur blur-2"></div></div>
37
- <header><a href="/"><img src="/assets/img/logo.png" alt="{{app_name}} Logo" class="logo"></a></header>
38
- <main class="main-content">
39
- <div class="container">
40
- <div class="code-display">429</div>
41
- <div class="badge">Too Many Requests</div>
42
- <h1>Slow Down!</h1>
43
- <p class="description">You're sending too many requests too quickly. Please take a small break and try again in a few moments.</p>
44
- <div class="actions">
45
- <a href="/" class="btn btn-primary">
46
- <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M3 12L12 3l9 9"/><path d="M9 21V12h6v9"/></svg>
47
- Return Home
48
- </a>
49
- </div>
50
- </div>
51
- </main>
52
- <footer class="footer">&copy; {{app_name}} &mdash; Powered by <a href="https://github.com/arikajs/arikajs">ArikaJS Framework</a></footer>
53
- </body>
54
- </html>
@@ -1,54 +0,0 @@
1
- <!DOCTYPE html>
2
- <html lang="en">
3
- <head>
4
- <meta charset="UTF-8">
5
- <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
- <title>500 - Server Error | {{app_name}}</title>
7
- <link rel="icon" type="image/png" href="/assets/img/favicon.png">
8
- <link href="https://fonts.googleapis.com/css2?family=Outfit:wght@300;400;600;800&family=Plus+Jakarta+Sans:wght@300;400;600;800&display=swap" rel="stylesheet">
9
- <style>
10
- * { margin: 0; padding: 0; box-sizing: border-box; }
11
- body { font-family: 'Plus Jakarta Sans', sans-serif; background-color: #f8fafc; color: #0f172a; min-height: 100vh; display: flex; flex-direction: column; overflow-x: hidden; position: relative; }
12
- .aurora { position: fixed; top: 0; left: 0; width: 100%; height: 100%; z-index: -1; filter: blur(100px); opacity: 0.25; pointer-events: none; }
13
- .aurora-blur { position: absolute; border-radius: 50%; animation: move 20s infinite alternate; }
14
- .blur-1 { width: 50vw; height: 50vw; background: radial-gradient(circle, #6366f1 0%, transparent 70%); top: -10%; left: -10%; }
15
- .blur-2 { width: 40vw; height: 40vw; background: radial-gradient(circle, #ec4899 0%, transparent 70%); bottom: -10%; right: -10%; animation-duration: 25s; }
16
- @keyframes move { from { transform: translate(0, 0) scale(1); } to { transform: translate(10%, 10%) scale(1.1); } }
17
- header { width: 100%; padding: 1.5rem 5%; display: flex; align-items: center; backdrop-filter: blur(10px); border-bottom: 1px solid rgba(15, 23, 42, 0.08); }
18
- .logo { width: 120px; height: auto; filter: drop-shadow(0 4px 6px rgba(139, 92, 246, 0.2)); }
19
- .main-content { flex: 1; display: flex; align-items: center; justify-content: center; padding: 6rem 2rem 4rem; }
20
- .container { position: relative; z-index: 10; max-width: 700px; width: 100%; text-align: center; animation: fadeIn 0.8s ease-out; }
21
- @keyframes fadeIn { from { opacity: 0; transform: translateY(24px); } to { opacity: 1; transform: translateY(0); } }
22
- .badge { display: inline-block; padding: 0.45rem 1.1rem; background: rgba(99, 102, 241, 0.08); border: 1px solid #6366f1; color: #4f46e5; border-radius: 999px; font-size: 0.8rem; font-weight: 700; margin-bottom: 1.75rem; text-transform: uppercase; letter-spacing: 0.1em; }
23
- h1 { font-family: 'Outfit', sans-serif; font-size: clamp(3rem, 10vw, 5.5rem); font-weight: 800; line-height: 1; margin-bottom: 1.5rem; letter-spacing: -0.04em; background: linear-gradient(135deg, #0f172a 30%, #334155 100%); background-clip: text; -webkit-background-clip: text; -webkit-text-fill-color: transparent; }
24
- .description { font-size: 1.15rem; color: #64748b; max-width: 520px; margin: 0 auto 2.5rem; line-height: 1.7; }
25
- .actions { display: flex; gap: 1rem; justify-content: center; flex-wrap: wrap; }
26
- .btn { padding: 0.875rem 2rem; border-radius: 12px; font-weight: 600; text-decoration: none; transition: all 0.25s ease; font-size: 0.95rem; display: inline-flex; align-items: center; gap: 0.5rem; cursor: pointer; border: none; }
27
- .btn-primary { background: #8b5cf6; color: white; box-shadow: 0 4px 20px rgba(139, 92, 246, 0.35); }
28
- .btn-primary:hover { transform: translateY(-2px); box-shadow: 0 8px 30px rgba(139, 92, 246, 0.45); background: #7c3aed; }
29
- .code-display { font-family: 'Outfit', sans-serif; font-size: clamp(6rem, 20vw, 12rem); font-weight: 800; line-height: 1; margin-bottom: 0.5rem; background: linear-gradient(135deg, rgba(99, 102, 241, 0.2) 0%, rgba(236, 72, 153, 0.1) 100%); background-clip: text; -webkit-background-clip: text; -webkit-text-fill-color: transparent; letter-spacing: -0.04em; }
30
- .footer { padding: 2rem 0; color: #94a3b8; font-size: 0.8rem; text-align: center; border-top: 1px solid rgba(15, 23, 42, 0.06); }
31
- .footer a { color: #8b5cf6; text-decoration: none; font-weight: 600; }
32
- @media (max-width: 640px) { .actions { flex-direction: column; align-items: center; } }
33
- </style>
34
- </head>
35
- <body>
36
- <div class="aurora"><div class="aurora-blur blur-1"></div><div class="aurora-blur blur-2"></div></div>
37
- <header><a href="/"><img src="/assets/img/logo.png" alt="{{app_name}} Logo" class="logo"></a></header>
38
- <main class="main-content">
39
- <div class="container">
40
- <div class="code-display">500</div>
41
- <div class="badge">Server Error</div>
42
- <h1>Something Went Wrong</h1>
43
- <p class="description">Our servers are having a bit of a moment. We've been notified and are looking into it. Please try again later.</p>
44
- <div class="actions">
45
- <button onclick="window.location.reload()" class="btn btn-primary">
46
- <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="23 4 23 10 17 10"/><polyline points="1 20 1 14 7 14"/><path d="M3.51 9a9 9 0 0114.85-3.36L23 10M1 14l4.64 4.36A9 9 0 0020.49 15"/></svg>
47
- Try Again
48
- </button>
49
- </div>
50
- </div>
51
- </main>
52
- <footer class="footer">&copy; {{app_name}} &mdash; Powered by <a href="https://github.com/arikajs/arikajs">ArikaJS Framework</a></footer>
53
- </body>
54
- </html>
@@ -1,49 +0,0 @@
1
- <!DOCTYPE html>
2
- <html lang="en">
3
- <head>
4
- <meta charset="UTF-8">
5
- <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
- <title>503 - Service Unavailable | {{app_name}}</title>
7
- <link rel="icon" type="image/png" href="/assets/img/favicon.png">
8
- <link href="https://fonts.googleapis.com/css2?family=Outfit:wght@300;400;600;800&family=Plus+Jakarta+Sans:wght@300;400;600;800&display=swap" rel="stylesheet">
9
- <style>
10
- * { margin: 0; padding: 0; box-sizing: border-box; }
11
- body { font-family: 'Plus Jakarta Sans', sans-serif; background-color: #f8fafc; color: #0f172a; min-height: 100vh; display: flex; flex-direction: column; overflow-x: hidden; position: relative; }
12
- .aurora { position: fixed; top: 0; left: 0; width: 100%; height: 100%; z-index: -1; filter: blur(100px); opacity: 0.25; pointer-events: none; }
13
- .aurora-blur { position: absolute; border-radius: 50%; animation: move 20s infinite alternate; }
14
- .blur-1 { width: 50vw; height: 50vw; background: radial-gradient(circle, #8b5cf6 0%, transparent 70%); top: -10%; left: -10%; }
15
- .blur-2 { width: 40vw; height: 40vw; background: radial-gradient(circle, #14b8a6 0%, transparent 70%); bottom: -10%; right: -10%; animation-duration: 25s; }
16
- @keyframes move { from { transform: translate(0, 0) scale(1); } to { transform: translate(10%, 10%) scale(1.1); } }
17
- header { width: 100%; padding: 1.5rem 5%; display: flex; align-items: center; backdrop-filter: blur(10px); border-bottom: 1px solid rgba(15, 23, 42, 0.08); }
18
- .logo { width: 120px; height: auto; filter: drop-shadow(0 4px 6px rgba(139, 92, 246, 0.2)); }
19
- .main-content { flex: 1; display: flex; align-items: center; justify-content: center; padding: 6rem 2rem 4rem; }
20
- .container { position: relative; z-index: 10; max-width: 700px; width: 100%; text-align: center; animation: fadeIn 0.8s ease-out; }
21
- @keyframes fadeIn { from { opacity: 0; transform: translateY(24px); } to { opacity: 1; transform: translateY(0); } }
22
- .badge { display: inline-block; padding: 0.45rem 1.1rem; background: rgba(20, 184, 166, 0.08); border: 1px solid #14b8a6; color: #0d9488; border-radius: 999px; font-size: 0.8rem; font-weight: 700; margin-bottom: 1.75rem; text-transform: uppercase; letter-spacing: 0.1em; }
23
- h1 { font-family: 'Outfit', sans-serif; font-size: clamp(3rem, 10vw, 5.5rem); font-weight: 800; line-height: 1; margin-bottom: 1.5rem; letter-spacing: -0.04em; background: linear-gradient(135deg, #0f172a 30%, #334155 100%); background-clip: text; -webkit-background-clip: text; -webkit-text-fill-color: transparent; }
24
- .description { font-size: 1.15rem; color: #64748b; max-width: 520px; margin: 0 auto 2.5rem; line-height: 1.7; }
25
- .pulse { display: inline-flex; align-items: center; gap: 0.6rem; background: rgba(20, 184, 166, 0.08); border: 1px solid rgba(20, 184, 166, 0.2); color: #0d9488; padding: 0.6rem 1.2rem; border-radius: 99px; font-size: 0.85rem; font-weight: 600; margin-bottom: 2rem; }
26
- .pulse-dot { width: 8px; height: 8px; background: #14b8a6; border-radius: 50%; animation: pulseAnim 1.5s infinite; }
27
- @keyframes pulseAnim { 0%, 100% { transform: scale(1); opacity: 1; } 50% { transform: scale(1.5); opacity: 0.5; } }
28
- .actions { display: flex; gap: 1rem; justify-content: center; }
29
- .code-display { font-family: 'Outfit', sans-serif; font-size: clamp(6rem, 20vw, 12rem); font-weight: 800; line-height: 1; margin-bottom: 0.5rem; background: linear-gradient(135deg, rgba(139, 92, 246, 0.2) 0%, rgba(20, 184, 166, 0.15) 100%); background-clip: text; -webkit-background-clip: text; -webkit-text-fill-color: transparent; letter-spacing: -0.04em; }
30
- .footer { padding: 2rem 0; color: #94a3b8; font-size: 0.8rem; text-align: center; border-top: 1px solid rgba(15, 23, 42, 0.06); }
31
- .footer a { color: #8b5cf6; text-decoration: none; font-weight: 600; }
32
- </style>
33
- </head>
34
- <body>
35
- <div class="aurora"><div class="aurora-blur blur-1"></div><div class="aurora-blur blur-2"></div></div>
36
- <header><a href="/"><img src="/assets/img/logo.png" alt="{{app_name}} Logo" class="logo"></a></header>
37
- <main class="main-content">
38
- <div class="container">
39
- <div class="code-display">503</div>
40
- <div class="badge">Maintenance</div>
41
- <h1>Back in a Flash!</h1>
42
- <div class="pulse"><span class="pulse-dot"></span> We're working on it</div>
43
- <p class="description">{{app_name}} is currently undergoing scheduled maintenance to improve your experience. We'll be back online very shortly. Thank you for your patience!</p>
44
- <div class="actions"></div>
45
- </div>
46
- </main>
47
- <footer class="footer">&copy; {{app_name}} &mdash; Powered by <a href="https://github.com/arikajs/arikajs">ArikaJS Framework</a></footer>
48
- </body>
49
- </html>
package/src/index.ts DELETED
@@ -1,75 +0,0 @@
1
- export * from './Application';
2
- export { createApp } from './createApp';
3
- export { app, config, env, info, error, warning, debug, route, lang, trans, __, view } from './helpers.js';
4
-
5
- // Re-export common foundation items for convenience
6
- export { ServiceProvider } from '@arikajs/foundation';
7
- export { Container } from '@arikajs/foundation';
8
- export { Repository as Config } from '@arikajs/foundation';
9
-
10
- // Re-export HTTP items
11
- export { Request, Response, Middleware, HttpException, NotFoundHttpException } from '@arikajs/http';
12
- export {
13
- BodyParserMiddleware,
14
- CorsMiddleware,
15
- TrimStrings,
16
- ConvertEmptyStringsToNull,
17
- SecurityHeaders,
18
- Throttle,
19
- ServeStaticMiddleware as HttpServeStaticMiddleware
20
- } from '@arikajs/http';
21
- export { Kernel } from './http/Kernel';
22
- export { Handler } from './http/Handler';
23
-
24
- // Re-export Routing items
25
- export { Route } from '@arikajs/router';
26
-
27
- // Re-export Middleware items
28
- export { Pipeline, MiddlewareHandler } from '@arikajs/middleware';
29
- export { RequestLoggingMiddleware } from './http/Middleware/RequestLoggingMiddleware';
30
- export { ServeStaticMiddleware } from './http/Middleware/ServeStaticMiddleware';
31
- export { ValidateRequestMiddleware } from './http/Middleware/ValidateRequestMiddleware';
32
- export { ViewMiddleware } from './http/Middleware/ViewMiddleware';
33
- export { VerifyCsrfToken } from './http/Middleware/VerifyCsrfToken';
34
-
35
- // Re-export Database items
36
- export { Model, Database as DB, Schema, Migration, SchemaBuilder } from '@arikajs/database';
37
-
38
- // Re-export Cache items
39
- export { Cache } from '@arikajs/cache';
40
-
41
- // Re-export Queue items
42
- export { Queue, BaseJob, Worker } from '@arikajs/queue';
43
-
44
- // Re-export Event items
45
- export { Event } from '@arikajs/events';
46
-
47
- // Re-export Scheduler items
48
- export { Scheduler, Schedule } from '@arikajs/scheduler';
49
-
50
- // Re-export Encryption items
51
- export { Encrypter } from '@arikajs/encryption';
52
-
53
- // Re-export Console items
54
- export { Command } from '@arikajs/console';
55
-
56
- // Re-export Logging items
57
- export { Log } from '@arikajs/logging';
58
-
59
- // Re-export View items
60
- export { View } from '@arikajs/view';
61
-
62
- // Re-export Validation items
63
- export { Validator } from '@arikajs/validation';
64
-
65
- // Re-export Localization items
66
- export { Translator } from '@arikajs/localization';
67
-
68
- // Re-export Mail items
69
- export { Mail, Mailable } from '@arikajs/mail';
70
-
71
- // Re-export Auth items
72
- export { AuthManager, AuthContext, Hasher, EloquentUserProvider, Authenticate } from '@arikajs/auth';
73
-
74
- // Re-export Session items
75
- export { Session, SessionManager, StartSession, SessionDriver, MemoryDriver as SessionMemoryDriver, FileDriver as SessionFileDriver } from '@arikajs/session';
@@ -1,28 +0,0 @@
1
-
2
- import { ServiceProvider } from '@arikajs/foundation';
3
- import { AuthManager, Authenticate } from '@arikajs/auth';
4
-
5
- export class AuthServiceProvider extends ServiceProvider {
6
- /**
7
- * Register the authentication services.
8
- */
9
- public async register() {
10
- this.app.singleton('auth', () => {
11
- return new AuthManager(this.app.config().get('auth', {}));
12
- });
13
-
14
- this.app.bind(AuthManager, () => this.app.resolve('auth'));
15
-
16
- // Register the authentication middleware
17
- this.app.bind(Authenticate, () => {
18
- return new Authenticate(this.app.resolve(AuthManager));
19
- });
20
- }
21
-
22
- /**
23
- * Boot the authentication services.
24
- */
25
- public async boot() {
26
- // Here we could register default guards etc.
27
- }
28
- }
@@ -1,29 +0,0 @@
1
- import { ServiceProvider } from '@arikajs/foundation';
2
- import { CacheManager, Cache } from '@arikajs/cache';
3
-
4
- export class CacheServiceProvider extends ServiceProvider {
5
- /**
6
- * Register cache services.
7
- */
8
- public async register() {
9
- this.app.singleton('cache', () => {
10
- const config = this.app.config().get('cache');
11
- const database = this.app.make('db');
12
- const manager = new CacheManager(config, database, this.app.getBasePath());
13
-
14
- // Set static access
15
- Cache.setManager(manager);
16
-
17
- return manager;
18
- });
19
-
20
- this.app.alias('cache', CacheManager);
21
- }
22
-
23
- /**
24
- * Boot cache services.
25
- */
26
- public async boot() {
27
- this.app.make('cache');
28
- }
29
- }
@@ -1,46 +0,0 @@
1
-
2
- import { ServiceProvider } from '@arikajs/foundation';
3
- import { DatabaseManager, Database } from '@arikajs/database';
4
-
5
- export class DatabaseServiceProvider extends ServiceProvider {
6
- /**
7
- * Register the database services.
8
- */
9
- public async register() {
10
- this.app.singleton('db', () => {
11
- const config = this.app.config().get('database');
12
-
13
- if (!config) {
14
- // If no config provided, we'll use a default memory sqlite for convenience
15
- // though usually this should throw in production.
16
- return new DatabaseManager({
17
- default: 'sqlite',
18
- connections: {
19
- sqlite: {
20
- driver: 'sqlite',
21
- database: ':memory:'
22
- }
23
- }
24
- } as any);
25
- }
26
-
27
- return new DatabaseManager(config as any);
28
- });
29
-
30
- this.app.bind(DatabaseManager, () => this.app.resolve('db'));
31
- }
32
-
33
- /**
34
- * Boot the database services.
35
- */
36
- public async boot() {
37
- // Initialize the static Database facade
38
- const dbManager = this.app.resolve(DatabaseManager);
39
- Database.setManager(dbManager);
40
-
41
- // Register caching for query builder
42
- if (this.app.getContainer().has('cache')) {
43
- dbManager.setCache(this.app.resolve('cache'));
44
- }
45
- }
46
- }
@@ -1,19 +0,0 @@
1
-
2
- import { ServiceProvider } from '@arikajs/foundation';
3
- import { EventManager, Event } from '@arikajs/events';
4
-
5
- export class EventsServiceProvider extends ServiceProvider {
6
- public async register() {
7
- this.app.singleton('events', () => {
8
- return new EventManager();
9
- });
10
-
11
- this.app.singleton(EventManager, () => this.app.resolve('events'));
12
- }
13
-
14
- public async boot() {
15
- // Initialize the Event facade
16
- const manager = this.app.resolve(EventManager);
17
- Event.setManager(manager);
18
- }
19
- }
@@ -1,44 +0,0 @@
1
- import { ServiceProvider } from '@arikajs/foundation';
2
- import { Encrypter } from '@arikajs/encryption';
3
- import { LoggingServiceProvider } from './LoggingServiceProvider';
4
- import { AuthServiceProvider } from './AuthServiceProvider';
5
- import { ValidationServiceProvider } from './ValidationServiceProvider';
6
- import { DatabaseServiceProvider } from './DatabaseServiceProvider';
7
- import { MailServiceProvider } from './MailServiceProvider';
8
- import { ViewServiceProvider } from './ViewServiceProvider';
9
- import { EventsServiceProvider } from './EventsServiceProvider';
10
- import { SchedulerServiceProvider } from './SchedulerServiceProvider';
11
- import { TranslationServiceProvider } from './TranslationServiceProvider';
12
- import { CacheServiceProvider } from './CacheServiceProvider';
13
- import { QueueServiceProvider } from './QueueServiceProvider';
14
- import { SessionServiceProvider } from './SessionServiceProvider';
15
- import { HttpServiceProvider } from './HttpServiceProvider';
16
-
17
- export class FrameworkServiceProvider extends ServiceProvider {
18
- public async register() {
19
- // Register Core Services
20
- await this.app.register(LoggingServiceProvider);
21
- await this.app.register(SessionServiceProvider);
22
- await this.app.register(HttpServiceProvider);
23
- await this.app.register(AuthServiceProvider);
24
- await this.app.register(ValidationServiceProvider);
25
- await this.app.register(DatabaseServiceProvider);
26
- await this.app.register(CacheServiceProvider);
27
- await this.app.register(QueueServiceProvider);
28
- await this.app.register(MailServiceProvider);
29
- await this.app.register(ViewServiceProvider);
30
- await this.app.register(TranslationServiceProvider);
31
- await this.app.register(EventsServiceProvider);
32
- await this.app.register(SchedulerServiceProvider);
33
-
34
- // Register framework specific services
35
- this.app.singleton('encrypter', () => {
36
- const key = this.app.config().get('app.key');
37
- return new Encrypter(key as string);
38
- });
39
- }
40
-
41
- public async boot() {
42
- // Boot framework specific services
43
- }
44
- }
@@ -1,37 +0,0 @@
1
-
2
- import { ServiceProvider } from '@arikajs/foundation';
3
- import { Router } from '@arikajs/router';
4
- import { Kernel } from '../http/Kernel';
5
- import { Handler } from '../http/Handler';
6
- import { Application } from '../Contracts/Application';
7
-
8
- export class HttpServiceProvider extends ServiceProvider<Application> {
9
- /**
10
- * Register the service provider.
11
- */
12
- public async register(): Promise<void> {
13
- // Register the Router as a singleton
14
- this.app.singleton(Router, () => {
15
- return new Router(this.app.getContainer());
16
- });
17
-
18
- // Register the Kernel — only if not already registered by the application
19
- if (!this.app.has(Kernel)) {
20
- this.app.singleton(Kernel, () => {
21
- return new Kernel(this.app);
22
- });
23
- }
24
-
25
- // Register the Exception Handler
26
- this.app.singleton(Handler, () => {
27
- return new Handler();
28
- });
29
- }
30
-
31
- /**
32
- * Boot the service provider.
33
- */
34
- public async boot(): Promise<void> {
35
- // Any HTTP-specific booting logic can go here
36
- }
37
- }
@@ -1,17 +0,0 @@
1
-
2
- import { ServiceProvider } from '@arikajs/foundation';
3
- import { LogManager, Log } from '@arikajs/logging';
4
-
5
- export class LoggingServiceProvider extends ServiceProvider {
6
- public async register() {
7
- this.app.singleton('log', () => {
8
- const config = this.app.config().get('logging');
9
- return new LogManager(config);
10
- });
11
- }
12
-
13
- public async boot() {
14
- const logManager = this.app.make<LogManager>('log');
15
- Log.setManager(logManager);
16
- }
17
- }
@@ -1,33 +0,0 @@
1
- import { ServiceProvider } from '@arikajs/foundation';
2
- import { MailManager, Mail } from '@arikajs/mail';
3
-
4
- export class MailServiceProvider extends ServiceProvider {
5
- /**
6
- * Register mail services.
7
- */
8
- public async register() {
9
- this.app.singleton('mail.manager', () => {
10
- const config = this.app.config().get('mail');
11
- const view = this.app.make('view');
12
- const queue = this.app.make('queue');
13
-
14
- const manager = new MailManager(config, view);
15
- manager.setQueue(queue);
16
-
17
- // Set static access
18
- Mail.setManager(manager);
19
-
20
- return manager;
21
- });
22
-
23
- this.app.alias('mail.manager', MailManager);
24
- this.app.alias('mail.manager', 'mail');
25
- }
26
-
27
- /**
28
- * Boot mail services.
29
- */
30
- public async boot() {
31
- this.app.make('mail.manager');
32
- }
33
- }
@@ -1,36 +0,0 @@
1
- import { ServiceProvider } from '@arikajs/foundation';
2
- import { QueueManager, Queue, Worker } from '@arikajs/queue';
3
-
4
- export class QueueServiceProvider extends ServiceProvider {
5
- /**
6
- * Register queue services.
7
- */
8
- public async register() {
9
- // Register framework internal jobs
10
- try {
11
- const { SendQueuedMailable } = require('@arikajs/mail');
12
- Worker.registerJob('SendQueuedMailable', SendQueuedMailable);
13
- } catch (e) {
14
- // Mail package might not be installed
15
- }
16
- this.app.singleton('queue', () => {
17
- const config = this.app.config().get('queue');
18
- const database = this.app.make('db');
19
- const manager = new QueueManager(config, database);
20
-
21
- // Set static access
22
- Queue.setManager(manager);
23
-
24
- return manager;
25
- });
26
-
27
- this.app.alias('queue', QueueManager);
28
- }
29
-
30
- /**
31
- * Boot queue services.
32
- */
33
- public async boot() {
34
- this.app.make('queue');
35
- }
36
- }
@@ -1,18 +0,0 @@
1
-
2
- import { ServiceProvider } from '@arikajs/foundation';
3
- import { Scheduler } from '@arikajs/scheduler';
4
-
5
- export class SchedulerServiceProvider extends ServiceProvider {
6
- public async register() {
7
- this.app.singleton(Scheduler, () => {
8
- return new Scheduler(this.app.getContainer());
9
- });
10
-
11
- this.app.alias(Scheduler, 'scheduler');
12
- }
13
-
14
- public async boot() {
15
- // Here we could automatically load app/Console/Kernel.ts or similar
16
- // where the user defines their schedule.
17
- }
18
- }