arikajs 0.10.5 β 0.10.7
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.
- package/README.md +70 -387
- package/dist/Application.d.ts +9 -0
- package/dist/Application.d.ts.map +1 -1
- package/dist/Application.js +13 -0
- package/dist/Application.js.map +1 -1
- package/dist/Contracts/Application.d.ts +2 -0
- package/dist/Contracts/Application.d.ts.map +1 -1
- package/dist/http/Handler.d.ts.map +1 -1
- package/dist/http/Handler.js +18 -4
- package/dist/http/Handler.js.map +1 -1
- package/package.json +24 -23
- package/dist/Application.js.bak +0 -301
package/README.md
CHANGED
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
[](https://github.com/arikajs/arikajs/issues)
|
|
16
16
|
[](https://github.com/arikajs/arikajs/pulls)
|
|
17
17
|
|
|
18
|
-
[Quick Start](#quick-start) | [
|
|
18
|
+
[Quick Start](#quick-start) | [Core Modules](#-the-arikajs-ecosystem) | [Documentation](https://arikajs.com) | [Discord](https://discord.gg/arikajs)
|
|
19
19
|
|
|
20
20
|
</div>
|
|
21
21
|
|
|
@@ -23,435 +23,120 @@
|
|
|
23
23
|
|
|
24
24
|
## π What is ArikaJS?
|
|
25
25
|
|
|
26
|
-
ArikaJS is a **modern, elegant, and powerful**
|
|
27
|
-
|
|
28
|
-
### β¨ Key Features
|
|
29
|
-
|
|
30
|
-
- π― **Elegant Syntax** - Clean, expressive code that's a joy to write
|
|
31
|
-
- π₯ **TypeScript First** - Full TypeScript support with excellent type inference
|
|
32
|
-
- π£οΈ **Powerful Routing** - Intuitive routing with implicit model binding
|
|
33
|
-
- π **Dependency Injection** - Built-in IoC container for clean architecture
|
|
34
|
-
- ποΈ **Active Record ORM** - Eloquent-inspired database layer
|
|
35
|
-
- π **Authentication & Authorization** - Built-in auth system with guards and policies
|
|
36
|
-
- β
**Validation** - Comprehensive request validation
|
|
37
|
-
- π§ **Mail & Notifications** - Easy email and notification system
|
|
38
|
-
- π **Queue System** - Background job processing
|
|
39
|
-
- π¦ **Service Providers** - Modular application architecture
|
|
40
|
-
- π¨ **Template Engine** - Flexible view rendering
|
|
41
|
-
- β‘ **Event System** - Decouple your application with powerful events and listeners
|
|
42
|
-
- π§ͺ **Testing Ready** - Built with testing in mind
|
|
43
|
-
- π οΈ **Global Helpers** - Intuitive functions like `app()`, `config()`, and `route()`
|
|
26
|
+
ArikaJS is a **modern, elegant, and powerful** full-stack framework for Node.js. It is designed to provide an unparalleled developer experience by bringing enterprise-grade architecture patterns (inspired by Laravel and NestJS) into a native, high-performance TypeScript environment.
|
|
44
27
|
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
## π¦ Installation
|
|
48
|
-
|
|
49
|
-
### Option 1: Quick Start (Using npx)
|
|
50
|
-
|
|
51
|
-
The fastest way to create a new ArikaJS project is using `npx`. No installation required!
|
|
52
|
-
|
|
53
|
-
```bash
|
|
54
|
-
# Create a new project
|
|
55
|
-
npx @arikajs/cli new my-app
|
|
56
|
-
|
|
57
|
-
# Navigate to your project
|
|
58
|
-
cd my-app
|
|
28
|
+
Whether you're building a simple REST API or a complex enterprise monolith, ArikaJS provides the tools you needβfrom a powerful ORM and background queues to expressive routing and real-time event broadcasting.
|
|
59
29
|
|
|
60
|
-
|
|
61
|
-
npm run dev
|
|
62
|
-
```
|
|
30
|
+
---
|
|
63
31
|
|
|
64
|
-
|
|
32
|
+
## β¨ Key Features
|
|
65
33
|
|
|
66
|
-
|
|
34
|
+
- π― **Elegant Syntax** - Expressive, readable code that minimizes boilerplate.
|
|
35
|
+
- π₯ **TypeScript First** - Deeply integrated type safety with zero-config setup.
|
|
36
|
+
- ποΈ **Modular Monorepo** - Built as a collection of decoupled, high-quality packages.
|
|
37
|
+
- ποΈ **Active Record ORM** - An intuitive, Fluent interface for database interactions.
|
|
38
|
+
- π **IoC & Dependency Injection** - Powerful service container for decoupled architecture.
|
|
39
|
+
- π **Auth & Authorization** - Guards, Policies, and multi-provider authentication.
|
|
40
|
+
- π **Queue & Scheduler** - Background jobs and Cron-like task scheduling.
|
|
41
|
+
- π **Localization (i18n)** - Built-in support for multi-language applications.
|
|
42
|
+
- π
**Carbon Date API** - Elegant date and time manipulation.
|
|
43
|
+
- π¨ **Templating** - Lightning-fast Arika View engine with layout support.
|
|
44
|
+
- π§ͺ **First-Class Testing** - Built-in testing helpers and assertions.
|
|
67
45
|
|
|
68
|
-
|
|
69
|
-
# Install the CLI globally
|
|
70
|
-
npm install -g @arikajs/cli
|
|
71
|
-
|
|
72
|
-
# Create a new project
|
|
73
|
-
arika new my-app
|
|
74
|
-
```
|
|
46
|
+
---
|
|
75
47
|
|
|
76
|
-
|
|
77
|
-
|
|
48
|
+
## π¦ The ArikaJS Ecosystem
|
|
49
|
+
|
|
50
|
+
ArikaJS is composed of specialized modules that can be used together or independently.
|
|
51
|
+
|
|
52
|
+
| Package | Purpose |
|
|
53
|
+
| :--- | :--- |
|
|
54
|
+
| **`arikajs`** | The core framework wrapper and "glue" |
|
|
55
|
+
| **`@arikajs/cli`** | Scaffolding, migrations, and local development |
|
|
56
|
+
| **`@arikajs/database`** | Database layer, Schema builder, and ORM |
|
|
57
|
+
| **`@arikajs/auth`** | Authentication (Web Session, JWT, API tokens) |
|
|
58
|
+
| **`@arikajs/queue`** | Redis/Database/Sync background job processing |
|
|
59
|
+
| **`@arikajs/scheduler`** | Fluid task scheduling for your application |
|
|
60
|
+
| **`@arikajs/carbon`** | Powerful, fluent date manipulation (Carbon JS) |
|
|
61
|
+
| **`@arikajs/view`** | Expressive template engine (Blade-inspired) |
|
|
62
|
+
| **`@arikajs/cache`** | High-performance multi-driver caching |
|
|
63
|
+
| **`@arikajs/mail`** | Fluent email API with SMTP, Log, and SES support |
|
|
64
|
+
| **`@arikajs/events`** | Event-driven architecture with listeners |
|
|
65
|
+
| **`@arikajs/validation`** | Powerful, schema-based request validation |
|
|
78
66
|
|
|
79
|
-
|
|
80
|
-
npm run dev
|
|
81
|
-
```
|
|
67
|
+
---
|
|
82
68
|
|
|
83
|
-
|
|
69
|
+
## π¦ Quick Start
|
|
84
70
|
|
|
85
|
-
|
|
71
|
+
Create your first ArikaJS project in seconds:
|
|
86
72
|
|
|
87
73
|
```bash
|
|
88
|
-
#
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
# Initialize npm
|
|
92
|
-
npm init -y
|
|
93
|
-
|
|
94
|
-
# Install ArikaJS
|
|
95
|
-
npm install arikajs
|
|
74
|
+
# Scaffold a new application
|
|
75
|
+
npx @arikajs/cli@latest new my-app
|
|
96
76
|
|
|
97
|
-
#
|
|
98
|
-
|
|
99
|
-
```
|
|
100
|
-
|
|
101
|
-
---
|
|
102
|
-
|
|
103
|
-
## ποΈ Project Structure
|
|
77
|
+
# Navigate into the project
|
|
78
|
+
cd my-app
|
|
104
79
|
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
βββ app/
|
|
108
|
-
β βββ Controllers/ # HTTP controllers
|
|
109
|
-
β βββ Models/ # Database models
|
|
110
|
-
β βββ Middleware/ # Custom middleware
|
|
111
|
-
β βββ Http/
|
|
112
|
-
β βββ Kernel.ts # HTTP kernel configuration
|
|
113
|
-
βββ bootstrap/
|
|
114
|
-
β βββ app.ts # Application bootstrap
|
|
115
|
-
βββ config/ # Configuration files
|
|
116
|
-
β βββ app.ts
|
|
117
|
-
β βββ database.ts
|
|
118
|
-
β βββ logging.ts
|
|
119
|
-
βββ database/
|
|
120
|
-
β βββ migrations/ # Database migrations
|
|
121
|
-
βββ routes/
|
|
122
|
-
β βββ web.ts # Route definitions
|
|
123
|
-
βββ server.ts # Application entry point
|
|
124
|
-
βββ .env # Environment variables
|
|
125
|
-
βββ package.json
|
|
80
|
+
# Install dependencies and start development
|
|
81
|
+
npm install && arika serve --dev
|
|
126
82
|
```
|
|
127
83
|
|
|
128
84
|
---
|
|
129
85
|
|
|
130
|
-
##
|
|
131
|
-
|
|
132
|
-
### Routing
|
|
133
|
-
|
|
134
|
-
Define routes with an elegant, expressive syntax:
|
|
86
|
+
## π Basic Examples
|
|
135
87
|
|
|
88
|
+
### Expressive Routing
|
|
136
89
|
```typescript
|
|
137
90
|
import { Route } from 'arikajs';
|
|
138
91
|
|
|
139
|
-
|
|
140
|
-
Route.get('/', () => {
|
|
141
|
-
return { message: 'Welcome to ArikaJS!' };
|
|
142
|
-
});
|
|
143
|
-
|
|
144
|
-
// Route with parameters
|
|
145
|
-
Route.get('/users/{id}', (request, id) => {
|
|
146
|
-
return { userId: id };
|
|
147
|
-
});
|
|
92
|
+
Route.get('/', () => 'Hello World');
|
|
148
93
|
|
|
149
|
-
|
|
150
|
-
Route.
|
|
151
|
-
Route.get('/dashboard', [DashboardController, 'index']);
|
|
152
|
-
Route.post('/posts', [PostController, 'store']);
|
|
94
|
+
Route.group({ prefix: 'api', middleware: 'auth' }, () => {
|
|
95
|
+
Route.get('/profile', [ProfileController, 'show']);
|
|
153
96
|
});
|
|
154
97
|
```
|
|
155
98
|
|
|
156
|
-
###
|
|
157
|
-
|
|
158
|
-
Automatically resolve models from route parameters:
|
|
159
|
-
|
|
99
|
+
### Powerful ORM (Active Record)
|
|
160
100
|
```typescript
|
|
161
|
-
|
|
162
|
-
import User from './app/Models/User';
|
|
163
|
-
|
|
164
|
-
// Register model binding
|
|
165
|
-
Route.model('user', User);
|
|
166
|
-
|
|
167
|
-
// The {user} parameter will automatically resolve to a User instance
|
|
168
|
-
Route.get('/users/{user}', (request, user: User) => {
|
|
169
|
-
return {
|
|
170
|
-
message: 'User found!',
|
|
171
|
-
user: user
|
|
172
|
-
};
|
|
173
|
-
});
|
|
174
|
-
```
|
|
175
|
-
|
|
176
|
-
### Controllers
|
|
177
|
-
|
|
178
|
-
Create clean, organized controllers:
|
|
101
|
+
const user = await User.where('email', 'prakash@example.com').first();
|
|
179
102
|
|
|
180
|
-
|
|
181
|
-
import { Request, Response } from 'arikajs';
|
|
182
|
-
import User from '../Models/User';
|
|
183
|
-
|
|
184
|
-
export class UserController {
|
|
185
|
-
async index(request: Request, response: Response) {
|
|
186
|
-
const users = await User.all();
|
|
187
|
-
return response.json(users);
|
|
188
|
-
}
|
|
189
|
-
|
|
190
|
-
async show(request: Request, response: Response) {
|
|
191
|
-
const user = await User.findOrFail(request.params.id);
|
|
192
|
-
return response.json(user);
|
|
193
|
-
}
|
|
194
|
-
|
|
195
|
-
async store(request: Request, response: Response) {
|
|
196
|
-
const user = await User.create(request.body);
|
|
197
|
-
return response.status(201).json(user);
|
|
198
|
-
}
|
|
199
|
-
}
|
|
103
|
+
const posts = await user.posts().latest().get();
|
|
200
104
|
```
|
|
201
105
|
|
|
202
|
-
###
|
|
203
|
-
|
|
204
|
-
Work with databases using an elegant ORM:
|
|
205
|
-
|
|
106
|
+
### Background Jobs
|
|
206
107
|
```typescript
|
|
207
|
-
import {
|
|
108
|
+
import { dispatch } from '@arikajs/dispatcher';
|
|
208
109
|
|
|
209
|
-
|
|
210
|
-
protected static tableName = 'users';
|
|
211
|
-
|
|
212
|
-
// Define relationships
|
|
213
|
-
posts() {
|
|
214
|
-
return this.hasMany(Post);
|
|
215
|
-
}
|
|
216
|
-
|
|
217
|
-
// Custom methods
|
|
218
|
-
async sendWelcomeEmail() {
|
|
219
|
-
// Send email logic
|
|
220
|
-
}
|
|
221
|
-
}
|
|
222
|
-
|
|
223
|
-
// Usage
|
|
224
|
-
const user = await User.find(1);
|
|
225
|
-
const posts = await user.posts().get();
|
|
226
|
-
|
|
227
|
-
const newUser = await User.create({
|
|
228
|
-
name: 'John Doe',
|
|
229
|
-
email: 'john@example.com'
|
|
230
|
-
});
|
|
110
|
+
await dispatch(new ProcessVideoJob(videoPath));
|
|
231
111
|
```
|
|
232
112
|
|
|
233
|
-
###
|
|
234
|
-
|
|
235
|
-
Create custom middleware for request processing:
|
|
236
|
-
|
|
113
|
+
### Fluent Date Handling (Carbon)
|
|
237
114
|
```typescript
|
|
238
|
-
import {
|
|
115
|
+
import { Carbon } from '@arikajs/carbon';
|
|
239
116
|
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
if (!request.headers.authorization) {
|
|
243
|
-
return response.status(401).json({ error: 'Unauthorized' });
|
|
244
|
-
}
|
|
245
|
-
|
|
246
|
-
return next();
|
|
247
|
-
}
|
|
248
|
-
}
|
|
249
|
-
```
|
|
250
|
-
|
|
251
|
-
### Service Providers
|
|
252
|
-
|
|
253
|
-
Organize your application with service providers:
|
|
254
|
-
|
|
255
|
-
```typescript
|
|
256
|
-
import { ServiceProvider } from 'arikajs';
|
|
257
|
-
import { PaymentService } from './Services/PaymentService';
|
|
258
|
-
|
|
259
|
-
export class PaymentServiceProvider extends ServiceProvider {
|
|
260
|
-
async register() {
|
|
261
|
-
this.app.singleton('payment', () => {
|
|
262
|
-
return new PaymentService(this.app.config().get('payment'));
|
|
263
|
-
});
|
|
264
|
-
}
|
|
265
|
-
|
|
266
|
-
async boot() {
|
|
267
|
-
// Bootstrap logic
|
|
268
|
-
}
|
|
269
|
-
}
|
|
270
|
-
```
|
|
271
|
-
|
|
272
|
-
### π οΈ Global Helpers
|
|
273
|
-
|
|
274
|
-
ArikaJS provides several global helper functions to make your code more concise:
|
|
275
|
-
|
|
276
|
-
```typescript
|
|
277
|
-
import { app, config, route } from 'arikajs';
|
|
278
|
-
|
|
279
|
-
// Access the application container
|
|
280
|
-
const userService = app().make(UserService);
|
|
281
|
-
|
|
282
|
-
// Get configuration values with defaults
|
|
283
|
-
const debug = config('app.debug', false);
|
|
284
|
-
|
|
285
|
-
// Generate URLs for named routes
|
|
286
|
-
const profileUrl = route('users.show', { id: 1 });
|
|
287
|
-
```
|
|
288
|
-
|
|
289
|
-
### Database Migrations
|
|
290
|
-
|
|
291
|
-
Manage your database schema with migrations:
|
|
292
|
-
|
|
293
|
-
```typescript
|
|
294
|
-
import { Migration, SchemaBuilder } from 'arikajs';
|
|
295
|
-
|
|
296
|
-
export default class CreateUsersTable extends Migration {
|
|
297
|
-
async up(schema: SchemaBuilder) {
|
|
298
|
-
await schema.create('users', (table) => {
|
|
299
|
-
table.increments('id');
|
|
300
|
-
table.string('name');
|
|
301
|
-
table.string('email').unique();
|
|
302
|
-
table.string('password');
|
|
303
|
-
table.timestamps();
|
|
304
|
-
});
|
|
305
|
-
}
|
|
306
|
-
|
|
307
|
-
async down(schema: SchemaBuilder) {
|
|
308
|
-
await schema.dropIfExists('users');
|
|
309
|
-
}
|
|
310
|
-
}
|
|
117
|
+
const nextWeek = Carbon.now().addWeek().toDateTimeString();
|
|
118
|
+
const diff = Carbon.parse(user.created_at).diffForHumans();
|
|
311
119
|
```
|
|
312
120
|
|
|
313
121
|
---
|
|
314
122
|
|
|
315
|
-
##
|
|
123
|
+
## π οΈ CLI Commands
|
|
316
124
|
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
**config/app.ts**
|
|
320
|
-
```typescript
|
|
321
|
-
export default {
|
|
322
|
-
name: process.env.APP_NAME || 'ArikaJS',
|
|
323
|
-
env: process.env.NODE_ENV || 'development',
|
|
324
|
-
key: process.env.APP_KEY,
|
|
325
|
-
timezone: 'UTC',
|
|
326
|
-
};
|
|
327
|
-
```
|
|
328
|
-
|
|
329
|
-
**config/database.ts**
|
|
330
|
-
```typescript
|
|
331
|
-
export default {
|
|
332
|
-
default: 'mysql',
|
|
333
|
-
connections: {
|
|
334
|
-
mysql: {
|
|
335
|
-
driver: 'mysql',
|
|
336
|
-
host: process.env.DB_HOST || 'localhost',
|
|
337
|
-
port: parseInt(process.env.DB_PORT || '3306'),
|
|
338
|
-
database: process.env.DB_DATABASE,
|
|
339
|
-
username: process.env.DB_USERNAME,
|
|
340
|
-
password: process.env.DB_PASSWORD,
|
|
341
|
-
},
|
|
342
|
-
},
|
|
343
|
-
};
|
|
344
|
-
```
|
|
345
|
-
|
|
346
|
-
---
|
|
347
|
-
|
|
348
|
-
## π¨ CLI Commands
|
|
349
|
-
|
|
350
|
-
ArikaJS comes with a powerful CLI for common tasks:
|
|
125
|
+
The ArikaJS CLI is your best friend during development.
|
|
351
126
|
|
|
352
127
|
```bash
|
|
353
|
-
#
|
|
354
|
-
arika
|
|
355
|
-
|
|
356
|
-
#
|
|
357
|
-
arika
|
|
358
|
-
|
|
359
|
-
# Generate application key
|
|
360
|
-
arika key:generate
|
|
361
|
-
|
|
362
|
-
# Database migrations
|
|
363
|
-
arika migrate
|
|
364
|
-
arika migrate:rollback
|
|
365
|
-
|
|
366
|
-
# Create migration
|
|
367
|
-
arika make:migration create_posts_table
|
|
128
|
+
arika list # List all available commands
|
|
129
|
+
arika help <command> # Show detailed help for a specific command
|
|
130
|
+
arika make:model # Interactive menu to generate models/migrations
|
|
131
|
+
arika migrate # Run pending database migrations
|
|
132
|
+
arika queue:work # Start the background worker
|
|
368
133
|
```
|
|
369
134
|
|
|
370
135
|
---
|
|
371
136
|
|
|
372
|
-
## π§ͺ Testing
|
|
373
|
-
|
|
374
|
-
ArikaJS is built with testing in mind:
|
|
375
|
-
|
|
376
|
-
```typescript
|
|
377
|
-
import { describe, it } from 'node:test';
|
|
378
|
-
import assert from 'node:assert';
|
|
379
|
-
import app from './bootstrap/app';
|
|
380
|
-
|
|
381
|
-
describe('User API', () => {
|
|
382
|
-
it('should return all users', async () => {
|
|
383
|
-
const response = await app.get('/api/users');
|
|
384
|
-
assert.strictEqual(response.status, 200);
|
|
385
|
-
});
|
|
386
|
-
});
|
|
387
|
-
```
|
|
388
|
-
|
|
389
|
-
---
|
|
390
|
-
|
|
391
|
-
## π Documentation
|
|
392
|
-
|
|
393
|
-
Comprehensive documentation is available in the [GitHub repository](https://github.com/arikajs/arikajs).
|
|
394
|
-
|
|
395
|
-
For guides and examples, check out:
|
|
396
|
-
- [Installation Guide](https://github.com/arikajs/arikajs#installation)
|
|
397
|
-
- [Routing](https://github.com/arikajs/arikajs#routing)
|
|
398
|
-
- [Controllers](https://github.com/arikajs/arikajs#controllers)
|
|
399
|
-
- [Database & ORM](https://github.com/arikajs/arikajs#models-active-record)
|
|
400
|
-
- [Examples](https://github.com/arikajs/examples)
|
|
401
|
-
|
|
402
|
-
---
|
|
403
|
-
|
|
404
|
-
## π Architecture
|
|
405
|
-
|
|
406
|
-
```text
|
|
407
|
-
arikajs/
|
|
408
|
-
βββ src/
|
|
409
|
-
β βββ Contracts
|
|
410
|
-
β β βββ Application.ts
|
|
411
|
-
β βββ http
|
|
412
|
-
β β βββ Middleware
|
|
413
|
-
β β β βββ RequestLoggingMiddleware.ts
|
|
414
|
-
β β β βββ ValidateRequestMiddleware.ts
|
|
415
|
-
β β β βββ ViewMiddleware.ts
|
|
416
|
-
β β βββ Handler.ts
|
|
417
|
-
β β βββ Kernel.ts
|
|
418
|
-
β βββ providers
|
|
419
|
-
β β βββ AuthServiceProvider.ts
|
|
420
|
-
β β βββ DatabaseServiceProvider.ts
|
|
421
|
-
β β βββ EventsServiceProvider.ts
|
|
422
|
-
β β βββ FrameworkServiceProvider.ts
|
|
423
|
-
β β βββ HttpServiceProvider.ts
|
|
424
|
-
β β βββ LoggingServiceProvider.ts
|
|
425
|
-
β β βββ SchedulerServiceProvider.ts
|
|
426
|
-
β β βββ ValidationServiceProvider.ts
|
|
427
|
-
β β βββ ViewServiceProvider.ts
|
|
428
|
-
β βββ Application.ts
|
|
429
|
-
β βββ createApp.ts
|
|
430
|
-
β βββ helpers.ts
|
|
431
|
-
β βββ index.ts
|
|
432
|
-
βββ tests/
|
|
433
|
-
βββ package.json
|
|
434
|
-
βββ tsconfig.json
|
|
435
|
-
βββ README.md
|
|
436
|
-
```
|
|
437
|
-
|
|
438
137
|
## π€ Contributing
|
|
439
138
|
|
|
440
|
-
We
|
|
441
|
-
|
|
442
|
-
```bash
|
|
443
|
-
# Clone the repository
|
|
444
|
-
git clone https://github.com/arikajs/arikajs.git
|
|
445
|
-
|
|
446
|
-
# Install dependencies
|
|
447
|
-
npm install
|
|
448
|
-
|
|
449
|
-
# Run tests
|
|
450
|
-
npm test
|
|
451
|
-
|
|
452
|
-
# Build the project
|
|
453
|
-
npm run build
|
|
454
|
-
```
|
|
139
|
+
We love our community! Please see our [Contributing Guide](CONTRIBUTING.md) to learn how you can help make ArikaJS even better.
|
|
455
140
|
|
|
456
141
|
---
|
|
457
142
|
|
|
@@ -459,13 +144,11 @@ npm run build
|
|
|
459
144
|
|
|
460
145
|
ArikaJS is open-sourced software licensed under the [MIT license](LICENSE).
|
|
461
146
|
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
## π Acknowledgments
|
|
147
|
+
<div align="center">
|
|
465
148
|
|
|
466
|
-
|
|
149
|
+
**Built with β€οΈ by [Prakash Tank](https://github.com/prakashtank) & The ArikaJS Team**
|
|
467
150
|
|
|
468
|
-
|
|
151
|
+
</div>
|
|
469
152
|
|
|
470
153
|
## π¬ Community & Support
|
|
471
154
|
|
package/dist/Application.d.ts
CHANGED
|
@@ -6,6 +6,7 @@ export declare class Application extends FoundationApplication implements Applic
|
|
|
6
6
|
protected router: Router;
|
|
7
7
|
protected server?: any;
|
|
8
8
|
protected isTerminating: boolean;
|
|
9
|
+
protected _commands: any[];
|
|
9
10
|
constructor(basePath?: string);
|
|
10
11
|
boot(): Promise<void>;
|
|
11
12
|
version(): string;
|
|
@@ -41,6 +42,14 @@ export declare class Application extends FoundationApplication implements Applic
|
|
|
41
42
|
* Gracefully terminate the application.
|
|
42
43
|
*/
|
|
43
44
|
terminate(): Promise<void>;
|
|
45
|
+
/**
|
|
46
|
+
* Register CLI commands with the application.
|
|
47
|
+
*/
|
|
48
|
+
registerCommands(commands: any[]): void;
|
|
49
|
+
/**
|
|
50
|
+
* Get all registered commands.
|
|
51
|
+
*/
|
|
52
|
+
getCommands(): any[];
|
|
44
53
|
/**
|
|
45
54
|
* Get the router instance.
|
|
46
55
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Application.d.ts","sourceRoot":"","sources":["../src/Application.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,IAAI,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAC3E,OAAO,EAAE,MAAM,EAAS,MAAM,iBAAiB,CAAC;AAGhD,OAAO,EAAE,WAAW,IAAI,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAG7E,qBAAa,WAAY,SAAQ,qBAAsB,YAAW,mBAAmB;IACjF,WAAkB,OAAO,IAAI,MAAM,CAYlC;IAED,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC;IACzB,SAAS,CAAC,MAAM,CAAC,EAAE,GAAG,CAAC;IACvB,SAAS,CAAC,aAAa,EAAE,OAAO,CAAS;
|
|
1
|
+
{"version":3,"file":"Application.d.ts","sourceRoot":"","sources":["../src/Application.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,IAAI,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAC3E,OAAO,EAAE,MAAM,EAAS,MAAM,iBAAiB,CAAC;AAGhD,OAAO,EAAE,WAAW,IAAI,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAG7E,qBAAa,WAAY,SAAQ,qBAAsB,YAAW,mBAAmB;IACjF,WAAkB,OAAO,IAAI,MAAM,CAYlC;IAED,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC;IACzB,SAAS,CAAC,MAAM,CAAC,EAAE,GAAG,CAAC;IACvB,SAAS,CAAC,aAAa,EAAE,OAAO,CAAS;IACzC,SAAS,CAAC,SAAS,EAAE,GAAG,EAAE,CAAM;gBAEpB,QAAQ,GAAE,MAAsB;IAc/B,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAM3B,OAAO,IAAI,MAAM;IAIxB;;OAEG;IACI,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG;IAIrC;;OAEG;IACI,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG;IAItC;;OAEG;IACI,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG;IAI9B,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG;IAIvC;;OAEG;IACI,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG;IAIjC,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG;IAIlC,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG;IAI1D;;OAEG;IACU,MAAM,CAAC,IAAI,GAAE,MAAa;IA4BvC,SAAS,CAAC,aAAa,CAAC,IAAI,EAAE,MAAM;IAgBpC;;OAEG;IACI,WAAW,KAmBN,KAAK,GAAG,EAAE,KAAK,GAAG;IAwB9B;;OAEG;IACU,SAAS;IAuDtB;;OAEG;IACI,gBAAgB,CAAC,QAAQ,EAAE,GAAG,EAAE;IAIvC;;OAEG;IACI,WAAW,IAAI,GAAG,EAAE;IAI3B;;OAEG;IACI,SAAS,IAAI,MAAM;CAG7B"}
|
package/dist/Application.js
CHANGED
|
@@ -58,6 +58,7 @@ class Application extends foundation_1.Application {
|
|
|
58
58
|
constructor(basePath = process.cwd()) {
|
|
59
59
|
super(basePath);
|
|
60
60
|
this.isTerminating = false;
|
|
61
|
+
this._commands = [];
|
|
61
62
|
(0, helpers_1.setApp)(this);
|
|
62
63
|
// Initialize Core Components
|
|
63
64
|
this.router = new router_1.Router(this.getContainer());
|
|
@@ -235,6 +236,18 @@ class Application extends foundation_1.Application {
|
|
|
235
236
|
}, 50);
|
|
236
237
|
}
|
|
237
238
|
}
|
|
239
|
+
/**
|
|
240
|
+
* Register CLI commands with the application.
|
|
241
|
+
*/
|
|
242
|
+
registerCommands(commands) {
|
|
243
|
+
this._commands = [...this._commands, ...commands];
|
|
244
|
+
}
|
|
245
|
+
/**
|
|
246
|
+
* Get all registered commands.
|
|
247
|
+
*/
|
|
248
|
+
getCommands() {
|
|
249
|
+
return this._commands;
|
|
250
|
+
}
|
|
238
251
|
/**
|
|
239
252
|
* Get the router instance.
|
|
240
253
|
*/
|
package/dist/Application.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Application.js","sourceRoot":"","sources":["../src/Application.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,oDAA2E;AAC3E,4CAAgD;AAChD,mFAAgF;AAChF,8CAAuC;AAEvC,uCAAmC;AAEnC,MAAa,WAAY,SAAQ,wBAAqB;IAC3C,MAAM,KAAK,OAAO;QACrB,IAAI,CAAC;YACD,+CAA+C;YAC/C,OAAO,OAAO,CAAC,iBAAiB,CAAC,CAAC,OAAO,CAAC;QAC9C,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACT,IAAI,CAAC;gBACD,iDAAiD;gBACjD,OAAO,OAAO,CAAC,oBAAoB,CAAC,CAAC,OAAO,CAAC;YACjD,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACT,OAAO,SAAS,CAAC;YACrB,CAAC;QACL,CAAC;IACL,CAAC;
|
|
1
|
+
{"version":3,"file":"Application.js","sourceRoot":"","sources":["../src/Application.ts"],"names":[],"mappings":"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"}
|
|
@@ -15,6 +15,8 @@ export interface Application extends HttpApplicationContract {
|
|
|
15
15
|
tagged<T = any>(tag: string): T[];
|
|
16
16
|
extend<T = any>(token: any, callback: (instance: T) => T): void;
|
|
17
17
|
register(provider: any): void;
|
|
18
|
+
registerCommands(commands: any[]): void;
|
|
19
|
+
getCommands(): any[];
|
|
18
20
|
boot(): Promise<void>;
|
|
19
21
|
run(): Promise<void>;
|
|
20
22
|
terminate(): Promise<void>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Application.d.ts","sourceRoot":"","sources":["../../src/Contracts/Application.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACzC,OAAO,EAAE,WAAW,IAAI,uBAAuB,EAAE,MAAM,eAAe,CAAC;AAEvE,MAAM,WAAW,WAAY,SAAQ,uBAAuB;IACxD,SAAS,IAAI,MAAM,CAAC;IACpB,YAAY,IAAI,GAAG,CAAC;IACpB,WAAW,IAAI,MAAM,CAAC;IACtB,IAAI,CAAC,CAAC,GAAG,GAAG,EAAE,KAAK,EAAE,GAAG,GAAG,CAAC,CAAC;IAC7B,SAAS,CAAC,CAAC,GAAG,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,GAAG,IAAI,CAAC;IACnD,QAAQ,CAAC,CAAC,GAAG,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC;IAC9C,IAAI,CAAC,CAAC,GAAG,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,GAAG,IAAI,CAAC;IAC9C,OAAO,CAAC,CAAC,GAAG,GAAG,EAAE,KAAK,EAAE,GAAG,GAAG,CAAC,CAAC;IAChC,GAAG,CAAC,KAAK,EAAE,GAAG,GAAG,OAAO,CAAC;IACzB,KAAK,CAAC,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,GAAG,IAAI,CAAC;IACpC,GAAG,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC,MAAM,CAAC,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,MAAM,GAAG,CAAC,EAAE,CAAC;IAClC,MAAM,CAAC,CAAC,GAAG,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,QAAQ,EAAE,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC;IAChE,QAAQ,CAAC,QAAQ,EAAE,GAAG,GAAG,IAAI,CAAC;IAC9B,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACtB,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACrB,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3B,QAAQ,IAAI,OAAO,CAAC;CACvB"}
|
|
1
|
+
{"version":3,"file":"Application.d.ts","sourceRoot":"","sources":["../../src/Contracts/Application.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACzC,OAAO,EAAE,WAAW,IAAI,uBAAuB,EAAE,MAAM,eAAe,CAAC;AAEvE,MAAM,WAAW,WAAY,SAAQ,uBAAuB;IACxD,SAAS,IAAI,MAAM,CAAC;IACpB,YAAY,IAAI,GAAG,CAAC;IACpB,WAAW,IAAI,MAAM,CAAC;IACtB,IAAI,CAAC,CAAC,GAAG,GAAG,EAAE,KAAK,EAAE,GAAG,GAAG,CAAC,CAAC;IAC7B,SAAS,CAAC,CAAC,GAAG,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,GAAG,IAAI,CAAC;IACnD,QAAQ,CAAC,CAAC,GAAG,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC;IAC9C,IAAI,CAAC,CAAC,GAAG,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,GAAG,IAAI,CAAC;IAC9C,OAAO,CAAC,CAAC,GAAG,GAAG,EAAE,KAAK,EAAE,GAAG,GAAG,CAAC,CAAC;IAChC,GAAG,CAAC,KAAK,EAAE,GAAG,GAAG,OAAO,CAAC;IACzB,KAAK,CAAC,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,GAAG,IAAI,CAAC;IACpC,GAAG,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC,MAAM,CAAC,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,MAAM,GAAG,CAAC,EAAE,CAAC;IAClC,MAAM,CAAC,CAAC,GAAG,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,QAAQ,EAAE,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC;IAChE,QAAQ,CAAC,QAAQ,EAAE,GAAG,GAAG,IAAI,CAAC;IAC9B,gBAAgB,CAAC,QAAQ,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;IACxC,WAAW,IAAI,GAAG,EAAE,CAAC;IACrB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACtB,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACrB,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3B,QAAQ,IAAI,OAAO,CAAC;CACvB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Handler.d.ts","sourceRoot":"","sources":["../../src/http/Handler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAiB,MAAM,eAAe,CAAC;AAGjE,qBAAa,OAAO;IAChB;;OAEG;IACH,SAAS,CAAC,UAAU,EAAE,GAAG,EAAE,CAAM;IAEjC;;OAEG;IACH,SAAS,CAAC,SAAS,EAAE,GAAG,CAAC,GAAG,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,QAAQ,EAAE,QAAQ,KAAK,QAAQ,CAAC,CAAa;IAE1G;;OAEG;IACI,MAAM,CAAC,KAAK,EAAE,GAAG,GAAG,IAAI;IAU/B;;OAEG;IACU,MAAM,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;IAkDxF;;OAEG;IACH,SAAS,CAAC,YAAY,CAAC,KAAK,EAAE,GAAG,GAAG,OAAO;IAI3C;;OAEG;IACH,SAAS,CAAC,uBAAuB,IAAI,OAAO;IAI5C;;OAEG;IACH,SAAS,CAAC,gBAAgB,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO;IAQrD;;;OAGG;cACa,gBAAgB,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;IAqErH;;OAEG;cACa,gBAAgB,CAAC,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"Handler.d.ts","sourceRoot":"","sources":["../../src/http/Handler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAiB,MAAM,eAAe,CAAC;AAGjE,qBAAa,OAAO;IAChB;;OAEG;IACH,SAAS,CAAC,UAAU,EAAE,GAAG,EAAE,CAAM;IAEjC;;OAEG;IACH,SAAS,CAAC,SAAS,EAAE,GAAG,CAAC,GAAG,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,QAAQ,EAAE,QAAQ,KAAK,QAAQ,CAAC,CAAa;IAE1G;;OAEG;IACI,MAAM,CAAC,KAAK,EAAE,GAAG,GAAG,IAAI;IAU/B;;OAEG;IACU,MAAM,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;IAkDxF;;OAEG;IACH,SAAS,CAAC,YAAY,CAAC,KAAK,EAAE,GAAG,GAAG,OAAO;IAI3C;;OAEG;IACH,SAAS,CAAC,uBAAuB,IAAI,OAAO;IAI5C;;OAEG;IACH,SAAS,CAAC,gBAAgB,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO;IAQrD;;;OAGG;cACa,gBAAgB,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;IAqErH;;OAEG;cACa,gBAAgB,CAAC,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAuV7E;;OAEG;IACI,oBAAoB,CAAC,UAAU,EAAE,GAAG,EAAE,GAAG,IAAI;IAKpD;;OAEG;IACI,GAAG,CAAC,IAAI,EAAE,GAAG,EAAE,QAAQ,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,QAAQ,EAAE,QAAQ,KAAK,QAAQ,GAAG,IAAI;IAKrG;;OAEG;IACI,UAAU,CAAC,IAAI,EAAE,GAAG,EAAE,QAAQ,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,QAAQ,EAAE,QAAQ,KAAK,QAAQ,GAAG,IAAI;IAI5G;;OAEG;IACI,MAAM,CAAC,IAAI,EAAE,GAAG,GAAG,IAAI;CAMjC"}
|
package/dist/http/Handler.js
CHANGED
|
@@ -248,12 +248,26 @@ class Handler {
|
|
|
248
248
|
let highlighted = code
|
|
249
249
|
.replace(/&/g, '&')
|
|
250
250
|
.replace(/</g, '<')
|
|
251
|
-
.replace(/>/g, '>')
|
|
252
|
-
|
|
251
|
+
.replace(/>/g, '>');
|
|
252
|
+
// Process strings first to avoid matching keywords inside them
|
|
253
|
+
highlighted = highlighted
|
|
253
254
|
.replace(/('[^']*')/g, '<span style="color:#d946ef">$1</span>')
|
|
254
255
|
.replace(/("[^"]*")/g, '<span style="color:#d946ef">$1</span>')
|
|
255
|
-
.replace(/(`[^`]*`)/g, '<span style="color:#d946ef">$1</span>')
|
|
256
|
-
|
|
256
|
+
.replace(/(`[^`]*`)/g, '<span style="color:#d946ef">$1</span>');
|
|
257
|
+
// Process keywords next, using word boundaries to avoid matching inside tags or larger words
|
|
258
|
+
const keywords = ['static', 'public', 'protected', 'private', 'async', 'await', 'class', 'interface', 'export', 'import', 'from', 'const', 'let', 'var', 'return', 'if', 'else', 'for', 'while', 'try', 'catch', 'new', 'this', 'throw'];
|
|
259
|
+
const keywordRegex = new RegExp(`\\b(${keywords.join('|')})\\b`, 'g');
|
|
260
|
+
highlighted = highlighted.replace(keywordRegex, (match, p1, offset, string) => {
|
|
261
|
+
// Check if we are inside an HTML tag (very basic check)
|
|
262
|
+
const before = string.substring(0, offset);
|
|
263
|
+
const openTags = (before.match(/<span/g) || []).length;
|
|
264
|
+
const closeTags = (before.match(/<\/span>/g) || []).length;
|
|
265
|
+
if (openTags > closeTags)
|
|
266
|
+
return match; // Skip if inside a span
|
|
267
|
+
return `<span style="color:#0ea5e9">${match}</span>`;
|
|
268
|
+
});
|
|
269
|
+
// Comments last
|
|
270
|
+
highlighted = highlighted.replace(/(\/\/.+)/g, '<span style="color:#94a3b8">$1</span>');
|
|
257
271
|
return `
|
|
258
272
|
<div style="display:flex; background:${isErrorLine ? '#fef2f2' : 'transparent'}; border-left: 3px solid ${isErrorLine ? '#ef4444' : 'transparent'}">
|
|
259
273
|
<span style="width:40px; text-align:right; padding-right:15px; color:#94a3b8; user-select:none; font-size:12px;">${currentLine}</span>
|
package/dist/http/Handler.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Handler.js","sourceRoot":"","sources":["../../src/http/Handler.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Handler.js","sourceRoot":"","sources":["../../src/http/Handler.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "arikajs",
|
|
3
|
-
"version": "0.10.
|
|
3
|
+
"version": "0.10.7",
|
|
4
4
|
"description": "The ArikaJS Framework.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -13,28 +13,29 @@
|
|
|
13
13
|
"@types/serve-static": "^2.2.0",
|
|
14
14
|
"busboy": "^1.6.0",
|
|
15
15
|
"serve-static": "^2.2.1",
|
|
16
|
-
"@arikajs/auth": "0.10.
|
|
17
|
-
"@arikajs/
|
|
18
|
-
"@arikajs/
|
|
19
|
-
"@arikajs/carbon": "^0.10.
|
|
20
|
-
"@arikajs/
|
|
21
|
-
"@arikajs/
|
|
22
|
-
"@arikajs/
|
|
23
|
-
"@arikajs/
|
|
24
|
-
"@arikajs/
|
|
25
|
-
"@arikajs/
|
|
26
|
-
"@arikajs/
|
|
27
|
-
"@arikajs/
|
|
28
|
-
"@arikajs/
|
|
29
|
-
"@arikajs/
|
|
30
|
-
"@arikajs/
|
|
31
|
-
"@arikajs/
|
|
32
|
-
"@arikajs/
|
|
33
|
-
"@arikajs/
|
|
34
|
-
"@arikajs/
|
|
35
|
-
"@arikajs/
|
|
36
|
-
"@arikajs/
|
|
37
|
-
"@arikajs/
|
|
16
|
+
"@arikajs/auth": "0.10.7",
|
|
17
|
+
"@arikajs/cache": "0.10.7",
|
|
18
|
+
"@arikajs/authorization": "0.10.7",
|
|
19
|
+
"@arikajs/carbon": "^0.10.7",
|
|
20
|
+
"@arikajs/config": "0.10.7",
|
|
21
|
+
"@arikajs/console": "0.10.7",
|
|
22
|
+
"@arikajs/database": "0.10.7",
|
|
23
|
+
"@arikajs/dispatcher": "0.10.7",
|
|
24
|
+
"@arikajs/encryption": "0.10.7",
|
|
25
|
+
"@arikajs/events": "0.10.7",
|
|
26
|
+
"@arikajs/foundation": "0.10.7",
|
|
27
|
+
"@arikajs/localization": "0.10.7",
|
|
28
|
+
"@arikajs/http": "0.10.7",
|
|
29
|
+
"@arikajs/logging": "0.10.7",
|
|
30
|
+
"@arikajs/mail": "0.10.7",
|
|
31
|
+
"@arikajs/middleware": "0.10.7",
|
|
32
|
+
"@arikajs/queue": "0.10.7",
|
|
33
|
+
"@arikajs/router": "0.10.7",
|
|
34
|
+
"@arikajs/scheduler": "0.10.7",
|
|
35
|
+
"@arikajs/session": "0.10.7",
|
|
36
|
+
"@arikajs/storage": "0.10.7",
|
|
37
|
+
"@arikajs/validation": "0.10.7",
|
|
38
|
+
"@arikajs/view": "0.10.7"
|
|
38
39
|
},
|
|
39
40
|
"devDependencies": {
|
|
40
41
|
"@types/node": "^20.11.24",
|
package/dist/Application.js.bak
DELETED
|
@@ -1,301 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
-
var ownKeys = function(o) {
|
|
20
|
-
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
-
var ar = [];
|
|
22
|
-
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
-
return ar;
|
|
24
|
-
};
|
|
25
|
-
return ownKeys(o);
|
|
26
|
-
};
|
|
27
|
-
return function (mod) {
|
|
28
|
-
if (mod && mod.__esModule) return mod;
|
|
29
|
-
var result = {};
|
|
30
|
-
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
-
__setModuleDefault(result, mod);
|
|
32
|
-
return result;
|
|
33
|
-
};
|
|
34
|
-
})();
|
|
35
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
-
exports.Application = void 0;
|
|
37
|
-
const foundation_1 = require("@arikajs/foundation");
|
|
38
|
-
const router_1 = require("@arikajs/router");
|
|
39
|
-
const FrameworkServiceProvider_1 = require("./providers/FrameworkServiceProvider");
|
|
40
|
-
const logging_1 = require("@arikajs/logging");
|
|
41
|
-
const helpers_1 = require("./helpers");
|
|
42
|
-
class Application extends foundation_1.Application {
|
|
43
|
-
constructor(basePath = process.cwd()) {
|
|
44
|
-
super(basePath);
|
|
45
|
-
this.isTerminating = false;
|
|
46
|
-
(0, helpers_1.setApp)(this);
|
|
47
|
-
// Initialize Core Components
|
|
48
|
-
this.router = new router_1.Router(this.getContainer());
|
|
49
|
-
// Register within container
|
|
50
|
-
this.instance(router_1.Router, this.router);
|
|
51
|
-
// Register Core Framework Provider
|
|
52
|
-
this.register(FrameworkServiceProvider_1.FrameworkServiceProvider);
|
|
53
|
-
}
|
|
54
|
-
version() {
|
|
55
|
-
return Application.VERSION;
|
|
56
|
-
}
|
|
57
|
-
/**
|
|
58
|
-
* Map a GET route.
|
|
59
|
-
*/
|
|
60
|
-
get(path, handler) {
|
|
61
|
-
return router_1.Route.get(path, handler);
|
|
62
|
-
}
|
|
63
|
-
/**
|
|
64
|
-
* Map a POST route.
|
|
65
|
-
*/
|
|
66
|
-
post(path, handler) {
|
|
67
|
-
return router_1.Route.post(path, handler);
|
|
68
|
-
}
|
|
69
|
-
/**
|
|
70
|
-
* Map a PUT route.
|
|
71
|
-
*/
|
|
72
|
-
put(path, handler) {
|
|
73
|
-
return router_1.Route.put(path, handler);
|
|
74
|
-
}
|
|
75
|
-
patch(path, handler) {
|
|
76
|
-
return router_1.Route.patch(path, handler);
|
|
77
|
-
}
|
|
78
|
-
/**
|
|
79
|
-
* Map a DELETE route.
|
|
80
|
-
*/
|
|
81
|
-
delete(path, handler) {
|
|
82
|
-
return router_1.Route.delete(path, handler);
|
|
83
|
-
}
|
|
84
|
-
options(path, handler) {
|
|
85
|
-
return router_1.Route.options(path, handler);
|
|
86
|
-
}
|
|
87
|
-
match(methods, path, handler) {
|
|
88
|
-
return router_1.Route.match(methods, path, handler);
|
|
89
|
-
}
|
|
90
|
-
/**
|
|
91
|
-
* Start the HTTP server.
|
|
92
|
-
*/
|
|
93
|
-
async listen(port = 3000) {
|
|
94
|
-
if (!this.isBooted()) {
|
|
95
|
-
await this.boot();
|
|
96
|
-
}
|
|
97
|
-
const http = await Promise.resolve().then(() => __importStar(require('node:http')));
|
|
98
|
-
const { Request: ArikaRequest, Response: ArikaResponse } = await Promise.resolve().then(() => __importStar(require('@arikajs/http')));
|
|
99
|
-
const { Kernel } = await Promise.resolve().then(() => __importStar(require('./http/Kernel')));
|
|
100
|
-
const { ObjectPool } = await Promise.resolve().then(() => __importStar(require('@arikajs/foundation')));
|
|
101
|
-
// Resolve Kernel
|
|
102
|
-
const kernel = this.make(Kernel);
|
|
103
|
-
// Initialize Object Pools
|
|
104
|
-
const requestPool = new ObjectPool(() => new ArikaRequest(this, null), (obj) => obj.reset(null));
|
|
105
|
-
const responsePool = new ObjectPool(() => new ArikaResponse(null), (obj) => obj.reset(null));
|
|
106
|
-
const { RawResponse } = await Promise.resolve().then(() => __importStar(require('@arikajs/http')));
|
|
107
|
-
this.server = http.createServer((req, res) => {
|
|
108
|
-
// ββ ULTRA FAST PATH ββ
|
|
109
|
-
const router = this.getRouter();
|
|
110
|
-
const matched = router.match(req.method, req.url);
|
|
111
|
-
if (matched) {
|
|
112
|
-
const dispatcher = router.getDispatcher();
|
|
113
|
-
const plan = dispatcher.executionPlans.get(matched.route);
|
|
114
|
-
// Routes with no middleware and no parameter binders
|
|
115
|
-
if (plan && !plan.hasMiddleware && dispatcher.parameterBinders.size === 0) {
|
|
116
|
-
const result = plan.handler(null, null, matched.params);
|
|
117
|
-
// Optimization: Use RawResponse to bypass ServerResponse machinery
|
|
118
|
-
const raw = new RawResponse(res);
|
|
119
|
-
const buffer = dispatcher.responseResolver.bufferCache.get(plan.route);
|
|
120
|
-
if (buffer) {
|
|
121
|
-
raw.sendUltra(buffer);
|
|
122
|
-
}
|
|
123
|
-
else {
|
|
124
|
-
// Fallback to standard resolver for first-time or complex results
|
|
125
|
-
const response = responsePool.acquire();
|
|
126
|
-
response.reset(res);
|
|
127
|
-
dispatcher.responseResolver.resolve(result, response, plan.route);
|
|
128
|
-
responsePool.release(response);
|
|
129
|
-
}
|
|
130
|
-
return;
|
|
131
|
-
}
|
|
132
|
-
}
|
|
133
|
-
// ββ STANDARD PATH (Kernel/DI/Middleware) ββ
|
|
134
|
-
const request = requestPool.acquire();
|
|
135
|
-
const response = responsePool.acquire();
|
|
136
|
-
request.reset(req);
|
|
137
|
-
response.reset(res);
|
|
138
|
-
const handleRequest = async () => {
|
|
139
|
-
try {
|
|
140
|
-
const finalResponse = await kernel.handle(request, response);
|
|
141
|
-
kernel.terminate(request, finalResponse);
|
|
142
|
-
}
|
|
143
|
-
catch (error) {
|
|
144
|
-
if (!res.headersSent) {
|
|
145
|
-
res.writeHead(500, { 'Content-Type': 'application/json' });
|
|
146
|
-
res.end(JSON.stringify({ error: 'Internal Server Error', message: error.message }));
|
|
147
|
-
}
|
|
148
|
-
}
|
|
149
|
-
finally {
|
|
150
|
-
requestPool.release(request);
|
|
151
|
-
responsePool.release(response);
|
|
152
|
-
}
|
|
153
|
-
};
|
|
154
|
-
handleRequest();
|
|
155
|
-
});
|
|
156
|
-
// Graceful shutdown
|
|
157
|
-
const shutdown = () => this.terminate();
|
|
158
|
-
process.on('SIGINT', shutdown);
|
|
159
|
-
process.on('SIGTERM', shutdown);
|
|
160
|
-
return new Promise((resolve) => {
|
|
161
|
-
this.server.listen(port, () => {
|
|
162
|
-
this.displayBanner(port);
|
|
163
|
-
resolve();
|
|
164
|
-
});
|
|
165
|
-
});
|
|
166
|
-
}
|
|
167
|
-
displayBanner(port) {
|
|
168
|
-
const env = this.config().get('app.env', 'development');
|
|
169
|
-
console.log(`\x1b[38;5;99m
|
|
170
|
-
_ _ _ _ ____
|
|
171
|
-
/ \\ _ __(_) | ____ _ | / ___|
|
|
172
|
-
/ _ \\ | '__| | |/ / _\` | | \\___ \\
|
|
173
|
-
/ ___ \\| | | | < (_| | __| |___) |
|
|
174
|
-
/_/ \\_\\_| |_|_|\\_\\__,_| |____|____/
|
|
175
|
-
\x1b[0m`);
|
|
176
|
-
console.log(` \x1b[1mArikaJS Framework\x1b[0m \x1b[38;5;99mv${this.version()}\x1b[0m`);
|
|
177
|
-
console.log(` \x1b[90mEnvironment:\x1b[0m \x1b[33m${env}\x1b[0m`);
|
|
178
|
-
console.log(` \x1b[90mLocal URL:\x1b[0m \x1b[36mhttp://localhost:${port}\x1b[0m`);
|
|
179
|
-
console.log('');
|
|
180
|
-
}
|
|
181
|
-
/**
|
|
182
|
-
* Get the HTTP server callback for raw http.createServer() usage.
|
|
183
|
-
*/
|
|
184
|
-
getCallback() {
|
|
185
|
-
if (!this.isBooted()) {
|
|
186
|
-
throw new Error('Application must be booted before calling getCallback()');
|
|
187
|
-
}
|
|
188
|
-
const { Kernel } = require('./http/Kernel');
|
|
189
|
-
const kernel = this.make(Kernel);
|
|
190
|
-
const { ObjectPool } = require('@arikajs/foundation');
|
|
191
|
-
const { Request: ArikaRequest, Response: ArikaResponse, RawResponse } = require('@arikajs/http');
|
|
192
|
-
const requestPool = new ObjectPool(() => new ArikaRequest(this, null), (obj) => obj.reset(null));
|
|
193
|
-
const responsePool = new ObjectPool(() => new ArikaResponse(null), (obj) => obj.reset(null));
|
|
194
|
-
return (req, res) => {
|
|
195
|
-
// ββ ULTRA FAST PATH ββ
|
|
196
|
-
const router = this.getRouter();
|
|
197
|
-
const matched = router.match(req.method, req.url);
|
|
198
|
-
if (matched) {
|
|
199
|
-
const dispatcher = router.getDispatcher();
|
|
200
|
-
const plan = dispatcher.executionPlans.get(matched.route);
|
|
201
|
-
if (plan && !plan.hasMiddleware && dispatcher.parameterBinders.size === 0) {
|
|
202
|
-
const result = plan.handler(null, null, matched.params);
|
|
203
|
-
const raw = new RawResponse(res);
|
|
204
|
-
const buffer = dispatcher.responseResolver.bufferCache.get(plan.route);
|
|
205
|
-
if (buffer) {
|
|
206
|
-
raw.sendUltra(buffer);
|
|
207
|
-
}
|
|
208
|
-
else {
|
|
209
|
-
const response = responsePool.acquire();
|
|
210
|
-
response.reset(res);
|
|
211
|
-
dispatcher.responseResolver.resolve(result, response, plan.route);
|
|
212
|
-
responsePool.release(response);
|
|
213
|
-
}
|
|
214
|
-
return;
|
|
215
|
-
}
|
|
216
|
-
}
|
|
217
|
-
// ββ STANDARD PATH ββ
|
|
218
|
-
const request = requestPool.acquire();
|
|
219
|
-
const response = responsePool.acquire();
|
|
220
|
-
request.reset(req);
|
|
221
|
-
response.reset(res);
|
|
222
|
-
const handleRequest = async () => {
|
|
223
|
-
try {
|
|
224
|
-
const finalResponse = await kernel.handle(request, response);
|
|
225
|
-
kernel.terminate(request, finalResponse);
|
|
226
|
-
}
|
|
227
|
-
catch (error) {
|
|
228
|
-
if (!res.headersSent) {
|
|
229
|
-
res.writeHead(500, { 'Content-Type': 'application/json' });
|
|
230
|
-
res.end(JSON.stringify({ error: 'Internal Server Error', message: error.message }));
|
|
231
|
-
}
|
|
232
|
-
}
|
|
233
|
-
finally {
|
|
234
|
-
requestPool.release(request);
|
|
235
|
-
responsePool.release(response);
|
|
236
|
-
}
|
|
237
|
-
};
|
|
238
|
-
handleRequest();
|
|
239
|
-
};
|
|
240
|
-
}
|
|
241
|
-
/**
|
|
242
|
-
* Gracefully terminate the application.
|
|
243
|
-
*/
|
|
244
|
-
async terminate() {
|
|
245
|
-
if (this.isTerminating)
|
|
246
|
-
return;
|
|
247
|
-
this.isTerminating = true;
|
|
248
|
-
if (this.server) {
|
|
249
|
-
// Close all active connections to speed up shutdown (Node 18.2+)
|
|
250
|
-
if (typeof this.server.closeAllConnections === 'function') {
|
|
251
|
-
this.server.closeAllConnections();
|
|
252
|
-
}
|
|
253
|
-
// Force close idle connections
|
|
254
|
-
if (typeof this.server.closeIdleConnections === 'function') {
|
|
255
|
-
this.server.closeIdleConnections();
|
|
256
|
-
}
|
|
257
|
-
await new Promise((resolve) => {
|
|
258
|
-
// Set a timeout to force resolve if server doesn't close in time
|
|
259
|
-
const timeout = setTimeout(() => {
|
|
260
|
-
logging_1.Log.warning('HTTP server forced to close due to timeout.');
|
|
261
|
-
resolve();
|
|
262
|
-
}, 1000);
|
|
263
|
-
this.server.close(() => {
|
|
264
|
-
clearTimeout(timeout);
|
|
265
|
-
logging_1.Log.info('HTTP server closed.');
|
|
266
|
-
resolve();
|
|
267
|
-
});
|
|
268
|
-
});
|
|
269
|
-
}
|
|
270
|
-
// Close database connections
|
|
271
|
-
if (this.has('db')) {
|
|
272
|
-
try {
|
|
273
|
-
const db = this.make('db');
|
|
274
|
-
if (typeof db.closeAll === 'function') {
|
|
275
|
-
await db.closeAll();
|
|
276
|
-
}
|
|
277
|
-
}
|
|
278
|
-
catch (e) { }
|
|
279
|
-
}
|
|
280
|
-
// Potential for other service termination (Queues, etc.)
|
|
281
|
-
// Remove signal listeners to prevent double triggers during exit
|
|
282
|
-
process.removeAllListeners('SIGINT');
|
|
283
|
-
process.removeAllListeners('SIGTERM');
|
|
284
|
-
// If we are in a testing or specific environment, we might not want to exit
|
|
285
|
-
if (process.env.NODE_ENV !== 'test') {
|
|
286
|
-
// Give a short delay for logs to flush before exiting
|
|
287
|
-
setTimeout(() => {
|
|
288
|
-
process.exit(0);
|
|
289
|
-
}, 50);
|
|
290
|
-
}
|
|
291
|
-
}
|
|
292
|
-
/**
|
|
293
|
-
* Get the router instance.
|
|
294
|
-
*/
|
|
295
|
-
getRouter() {
|
|
296
|
-
return this.router;
|
|
297
|
-
}
|
|
298
|
-
}
|
|
299
|
-
exports.Application = Application;
|
|
300
|
-
Application.VERSION = '0.0.4';
|
|
301
|
-
//# sourceMappingURL=Application.js.map
|