exisjs 0.5.12 → 0.6.1
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 +1 -1
- package/dist/auth/jwt.d.ts +1 -1
- package/dist/auth/jwt.js +1 -1
- package/dist/auth/oauth/middleware.js +1 -1
- package/dist/auth/rbac.js +1 -1
- package/dist/cli/commands/build.d.ts.map +1 -1
- package/dist/cli/commands/build.js +9 -1
- package/dist/cli/commands/build.js.map +1 -1
- package/dist/cli/commands/dev.d.ts.map +1 -1
- package/dist/cli/commands/dev.js +69 -5
- package/dist/cli/commands/dev.js.map +1 -1
- package/dist/cli/commands/exports.js +2 -2
- package/dist/cli/commands/exports.js.map +1 -1
- package/dist/cli/commands/generate.d.ts +22 -1
- package/dist/cli/commands/generate.d.ts.map +1 -1
- package/dist/cli/commands/generate.js +110 -52
- package/dist/cli/commands/generate.js.map +1 -1
- package/dist/cli/commands/test.js +2 -2
- package/dist/cli/commands/test.js.map +1 -1
- package/dist/cli/index.js +53 -24
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/routes.js +1 -1
- package/dist/cli/routes.js.map +1 -1
- package/dist/config/config.d.ts.map +1 -0
- package/dist/config/config.js.map +1 -0
- package/dist/config/env.d.ts.map +1 -0
- package/dist/config/env.js.map +1 -0
- package/dist/config/index.d.ts +1 -1
- package/dist/config/index.d.ts.map +1 -1
- package/dist/config/index.js +3 -2
- package/dist/config/index.js.map +1 -1
- package/dist/config/types.d.ts +98 -0
- package/dist/config/types.d.ts.map +1 -0
- package/dist/config/types.js +3 -0
- package/dist/config/types.js.map +1 -0
- package/dist/cron/scheduler.d.ts.map +1 -1
- package/dist/cron/scheduler.js +3 -1
- package/dist/cron/scheduler.js.map +1 -1
- package/dist/database/adapters/mysql.d.ts +1 -1
- package/dist/database/adapters/mysql.js +1 -1
- package/dist/database/adapters/postgres.d.ts +1 -1
- package/dist/database/adapters/postgres.js +1 -1
- package/dist/database/adapters/sqlite.d.ts +1 -1
- package/dist/database/adapters/sqlite.js +1 -1
- package/dist/database/manager.d.ts +28 -1
- package/dist/database/manager.d.ts.map +1 -1
- package/dist/database/manager.js +69 -1
- package/dist/database/manager.js.map +1 -1
- package/dist/database/query-builder.d.ts +6 -0
- package/dist/database/query-builder.d.ts.map +1 -1
- package/dist/database/query-builder.js +56 -5
- package/dist/database/query-builder.js.map +1 -1
- package/dist/database/sql/index.d.ts +18 -0
- package/dist/database/sql/index.d.ts.map +1 -0
- package/dist/database/sql/index.js +74 -0
- package/dist/database/sql/index.js.map +1 -0
- package/dist/database/sql/schema.d.ts +38 -0
- package/dist/database/sql/schema.d.ts.map +1 -0
- package/dist/database/sql/schema.js +80 -0
- package/dist/database/sql/schema.js.map +1 -0
- package/dist/database/synchronizer.d.ts +12 -0
- package/dist/database/synchronizer.d.ts.map +1 -0
- package/dist/database/synchronizer.js +82 -0
- package/dist/database/synchronizer.js.map +1 -0
- package/dist/decorators/core/engine.d.ts +43 -0
- package/dist/decorators/core/engine.d.ts.map +1 -0
- package/dist/decorators/core/engine.js +77 -0
- package/dist/decorators/core/engine.js.map +1 -0
- package/dist/decorators/core/index.d.ts +3 -0
- package/dist/decorators/core/index.d.ts.map +1 -0
- package/dist/decorators/core/index.js +19 -0
- package/dist/decorators/core/index.js.map +1 -0
- package/dist/decorators/core/metadata.d.ts +23 -0
- package/dist/decorators/core/metadata.d.ts.map +1 -0
- package/dist/decorators/core/metadata.js +42 -0
- package/dist/decorators/core/metadata.js.map +1 -0
- package/dist/decorators/core.d.ts.map +1 -1
- package/dist/decorators/core.js +36 -49
- package/dist/decorators/core.js.map +1 -1
- package/dist/decorators/index.d.ts +1 -0
- package/dist/decorators/index.d.ts.map +1 -1
- package/dist/decorators/index.js +1 -0
- package/dist/decorators/index.js.map +1 -1
- package/dist/decorators/params.d.ts.map +1 -1
- package/dist/decorators/params.js +12 -14
- package/dist/decorators/params.js.map +1 -1
- package/dist/decorators/routing.d.ts.map +1 -1
- package/dist/decorators/routing.js +4 -6
- package/dist/decorators/routing.js.map +1 -1
- package/dist/dev/dep-graph.d.ts.map +1 -0
- package/dist/dev/dep-graph.js.map +1 -0
- package/dist/{server/dev-error-overlay.d.ts → dev/error-overlay.d.ts} +1 -1
- package/dist/dev/error-overlay.d.ts.map +1 -0
- package/dist/{server/dev-error-overlay.js → dev/error-overlay.js} +1 -1
- package/dist/dev/error-overlay.js.map +1 -0
- package/dist/dev/hot-reload.d.ts.map +1 -0
- package/dist/{server → dev}/hot-reload.js +14 -7
- package/dist/dev/hot-reload.js.map +1 -0
- package/dist/docs/ARCHITECTURE.md +5 -5
- package/dist/docs/content/controllers.mdx +1 -1
- package/dist/docs/content/cron.mdx +1 -1
- package/dist/docs/content/database.mdx +141 -72
- package/dist/docs/content/errors.mdx +1 -1
- package/dist/docs/content/gateways.mdx +1 -1
- package/dist/docs/content/providers.mdx +1 -1
- package/dist/docs/content/queues.mdx +2 -2
- package/dist/docs/content/structure.mdx +71 -21
- package/dist/docs/content/testing.mdx +2 -2
- package/dist/docs/integrations/openai.mdx +1 -1
- package/dist/docs/integrations/resend.mdx +1 -1
- package/dist/docs/integrations/s3.mdx +1 -1
- package/dist/docs/reference/cache.mdx +1 -1
- package/dist/docs/reference/config.mdx +2 -2
- package/dist/docs/reference/di.mdx +2 -2
- package/dist/docs/reference/middleware.mdx +4 -4
- package/dist/docs/reference/router.mdx +1 -1
- package/dist/docs/reference/validator.mdx +2 -2
- package/dist/{utils → error}/errors.d.ts.map +1 -1
- package/dist/{utils → error}/errors.js.map +1 -1
- package/dist/error/index.d.ts +1 -1
- package/dist/error/index.d.ts.map +1 -1
- package/dist/error/index.js +1 -1
- package/dist/error/index.js.map +1 -1
- package/dist/index.d.ts +3 -7
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -13
- package/dist/index.js.map +1 -1
- package/dist/lib/start-repl.js +3 -5
- package/dist/lib/start-repl.js.map +1 -1
- package/dist/lib/start-server.js +5 -7
- package/dist/lib/start-server.js.map +1 -1
- package/dist/middleware/backpressure.js +1 -1
- package/dist/middleware/ip-filter.js +1 -1
- package/dist/middleware/middleware.d.ts +1 -1
- package/dist/middleware/middleware.d.ts.map +1 -1
- package/dist/middleware/middleware.js +1 -1
- package/dist/middleware/middleware.js.map +1 -1
- package/dist/middleware/rate-limit.js +1 -1
- package/dist/middleware/security.js +1 -1
- package/dist/observability/metrics.d.ts +2 -2
- package/dist/observability/metrics.d.ts.map +1 -1
- package/dist/observability/metrics.js +1 -1
- package/dist/observability/metrics.js.map +1 -1
- package/dist/observability/prometheus.d.ts +1 -1
- package/dist/observability/prometheus.js +1 -1
- package/dist/{utils/plugin.d.ts → plugin/define.d.ts} +1 -1
- package/dist/plugin/define.d.ts.map +1 -0
- package/dist/{utils/plugin.js → plugin/define.js} +1 -1
- package/dist/plugin/define.js.map +1 -0
- package/dist/plugin/index.d.ts +1 -1
- package/dist/plugin/index.d.ts.map +1 -1
- package/dist/plugin/index.js +2 -2
- package/dist/plugin/index.js.map +1 -1
- package/dist/{server/plugin-manager.d.ts → plugin/manager.d.ts} +2 -2
- package/dist/plugin/manager.d.ts.map +1 -0
- package/dist/{server/plugin-manager.js → plugin/manager.js} +1 -1
- package/dist/plugin/manager.js.map +1 -0
- package/dist/plugin/types.d.ts +23 -0
- package/dist/plugin/types.d.ts.map +1 -0
- package/dist/plugin/types.js +3 -0
- package/dist/plugin/types.js.map +1 -0
- package/dist/{server/queue-manager.d.ts → queue/manager.d.ts} +2 -2
- package/dist/queue/manager.d.ts.map +1 -0
- package/dist/{server/queue-manager.js → queue/manager.js} +1 -1
- package/dist/queue/manager.js.map +1 -0
- package/dist/{server → router}/controller-registrar.d.ts +1 -1
- package/dist/{server → router}/controller-registrar.d.ts.map +1 -1
- package/dist/{server → router}/controller-registrar.js +12 -3
- package/dist/router/controller-registrar.js.map +1 -0
- package/dist/router/index.d.ts +3 -3
- package/dist/router/index.js +5 -5
- package/dist/router/index.js.map +1 -1
- package/dist/{server/route.d.ts → router/route-builder.d.ts} +3 -3
- package/dist/router/route-builder.d.ts.map +1 -0
- package/dist/{server/route.js → router/route-builder.js} +1 -1
- package/dist/router/route-builder.js.map +1 -0
- package/dist/{server → router}/route-scanner.d.ts +2 -1
- package/dist/router/route-scanner.d.ts.map +1 -0
- package/dist/{server → router}/route-scanner.js +83 -13
- package/dist/router/route-scanner.js.map +1 -0
- package/dist/router/types.d.ts +89 -0
- package/dist/router/types.d.ts.map +1 -0
- package/dist/router/types.js +3 -0
- package/dist/router/types.js.map +1 -0
- package/dist/sanitize/index.d.ts +2 -2
- package/dist/sanitize/index.js +3 -3
- package/dist/sanitize/sanitize.d.ts.map +1 -0
- package/dist/sanitize/sanitize.js.map +1 -0
- package/dist/server/app.d.ts +7 -7
- package/dist/server/app.d.ts.map +1 -1
- package/dist/server/app.js +12 -12
- package/dist/server/app.js.map +1 -1
- package/dist/server/bootstrapper.d.ts.map +1 -1
- package/dist/server/bootstrapper.js +12 -0
- package/dist/server/bootstrapper.js.map +1 -1
- package/dist/server/request-handler.js +1 -1
- package/dist/server/request.js +1 -1
- package/dist/testing/mocks.d.ts.map +1 -1
- package/dist/testing/mocks.js +5 -0
- package/dist/testing/mocks.js.map +1 -1
- package/dist/types.d.ts +3 -203
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +17 -0
- package/dist/types.js.map +1 -1
- package/dist/validator/index.d.ts +2 -2
- package/dist/validator/index.d.ts.map +1 -1
- package/dist/validator/index.js +1 -1
- package/dist/validator/index.js.map +1 -1
- package/dist/validator/validator.d.ts.map +1 -0
- package/dist/validator/validator.js.map +1 -0
- package/dist/{server/ws-orchestrator.d.ts → websocket/orchestrator.d.ts} +2 -2
- package/dist/websocket/orchestrator.d.ts.map +1 -0
- package/dist/{server/ws-orchestrator.js → websocket/orchestrator.js} +3 -3
- package/dist/websocket/orchestrator.js.map +1 -0
- package/package.json +11 -3
- package/dist/server/controller-registrar.js.map +0 -1
- package/dist/server/dep-graph.d.ts.map +0 -1
- package/dist/server/dep-graph.js.map +0 -1
- package/dist/server/dev-error-overlay.d.ts.map +0 -1
- package/dist/server/dev-error-overlay.js.map +0 -1
- package/dist/server/hot-reload.d.ts.map +0 -1
- package/dist/server/hot-reload.js.map +0 -1
- package/dist/server/plugin-manager.d.ts.map +0 -1
- package/dist/server/plugin-manager.js.map +0 -1
- package/dist/server/queue-manager.d.ts.map +0 -1
- package/dist/server/queue-manager.js.map +0 -1
- package/dist/server/route-scanner.d.ts.map +0 -1
- package/dist/server/route-scanner.js.map +0 -1
- package/dist/server/route.d.ts.map +0 -1
- package/dist/server/route.js.map +0 -1
- package/dist/server/ws-orchestrator.d.ts.map +0 -1
- package/dist/server/ws-orchestrator.js.map +0 -1
- package/dist/utils/config.d.ts.map +0 -1
- package/dist/utils/config.js.map +0 -1
- package/dist/utils/env.d.ts.map +0 -1
- package/dist/utils/env.js.map +0 -1
- package/dist/utils/plugin.d.ts.map +0 -1
- package/dist/utils/plugin.js.map +0 -1
- package/dist/utils/sanitize.d.ts.map +0 -1
- package/dist/utils/sanitize.js.map +0 -1
- package/dist/utils/validator.d.ts.map +0 -1
- package/dist/utils/validator.js.map +0 -1
- /package/dist/{utils → config}/config.d.ts +0 -0
- /package/dist/{utils → config}/config.js +0 -0
- /package/dist/{utils → config}/env.d.ts +0 -0
- /package/dist/{utils → config}/env.js +0 -0
- /package/dist/{server → dev}/dep-graph.d.ts +0 -0
- /package/dist/{server → dev}/dep-graph.js +0 -0
- /package/dist/{server → dev}/hot-reload.d.ts +0 -0
- /package/dist/{utils → error}/errors.d.ts +0 -0
- /package/dist/{utils → error}/errors.js +0 -0
- /package/dist/{utils → sanitize}/sanitize.d.ts +0 -0
- /package/dist/{utils → sanitize}/sanitize.js +0 -0
- /package/dist/{utils → validator}/validator.d.ts +0 -0
- /package/dist/{utils → validator}/validator.js +0 -0
|
@@ -7,7 +7,7 @@ nextTitle: "Configuration"
|
|
|
7
7
|
|
|
8
8
|
When you bootstrap a new ExisJS project using `@exisjs/create`, it generates a clean, opinionated folder structure designed for scalability and maintainability.
|
|
9
9
|
|
|
10
|
-
|
|
10
|
+
ExisJS enforces a strict `src/` directory convention. All application code **must** live inside the `src/` directory. The framework relies on File-System Routing and centralized configurations to keep your project lean and predictable.
|
|
11
11
|
|
|
12
12
|
---
|
|
13
13
|
|
|
@@ -17,16 +17,34 @@ Here is a look at a standard ExisJS project structure:
|
|
|
17
17
|
|
|
18
18
|
```text
|
|
19
19
|
my-backend/
|
|
20
|
-
├── .exis/
|
|
20
|
+
├── .exis/ # Internal framework cache and build artifacts
|
|
21
21
|
├── src/
|
|
22
|
-
│
|
|
23
|
-
│
|
|
24
|
-
│
|
|
25
|
-
│
|
|
26
|
-
│
|
|
27
|
-
├── .
|
|
28
|
-
├──
|
|
29
|
-
|
|
22
|
+
│ ├── http/
|
|
23
|
+
│ │ ├── server.ts # The main backend entry point
|
|
24
|
+
│ │ ├── route.ts # Root API routes (e.g. `GET /api`)
|
|
25
|
+
│ │ ├── gateway.ts # Root-level gateway (middleware, guards)
|
|
26
|
+
│ │ ├── users/
|
|
27
|
+
│ │ │ ├── route.ts # User endpoints (e.g. `GET /api/users`)
|
|
28
|
+
│ │ │ ├── schema.ts # Validation schemas (tex)
|
|
29
|
+
│ │ │ └── controller.ts # Business logic helpers
|
|
30
|
+
│ │ ├── posts/
|
|
31
|
+
│ │ │ └── route.ts # Post endpoints (e.g. `GET /api/posts`)
|
|
32
|
+
│ │ └── admin/
|
|
33
|
+
│ │ ├── gateway.ts # Admin gateway (e.g. role guards)
|
|
34
|
+
│ │ ├── route.ts # Admin endpoints
|
|
35
|
+
│ │ └── posts/
|
|
36
|
+
│ │ ├── route.ts # Nested admin posts
|
|
37
|
+
│ │ └── service.ts
|
|
38
|
+
│ ├── jobs/
|
|
39
|
+
│ │ ├── cleanup.ts # Background cron/queue jobs
|
|
40
|
+
│ │ └── process-image.ts
|
|
41
|
+
│ ├── models/ # Database models/schemas (optional)
|
|
42
|
+
│ ├── services/ # Reusable business logic (optional)
|
|
43
|
+
│ ├── dto/ # Data Transfer Objects (optional)
|
|
44
|
+
│ └── env.ts # Type-safe environment variable schema
|
|
45
|
+
├── tests/ # Test files
|
|
46
|
+
├── .env # Local environment variables
|
|
47
|
+
├── exis.config.ts # The ExisJS server configuration file
|
|
30
48
|
├── package.json
|
|
31
49
|
└── tsconfig.json
|
|
32
50
|
```
|
|
@@ -40,10 +58,10 @@ This configures the global application infrastructure. Here, you define network
|
|
|
40
58
|
|
|
41
59
|
[Read the full Configuration Guide](/docs/config)
|
|
42
60
|
|
|
43
|
-
### 2. `env.ts`
|
|
44
|
-
ExisJS strongly encourages type-safe environment variables. By defining an `env.ts` file using the built-in validator (`
|
|
61
|
+
### 2. `src/env.ts`
|
|
62
|
+
ExisJS strongly encourages type-safe environment variables. By defining an `env.ts` file using the built-in validator (`tex.env()`), your application will crash at boot if a required environment variable (like `DATABASE_URL`) is missing — preventing silent runtime failures.
|
|
45
63
|
|
|
46
|
-
```typescript filename="env.ts"
|
|
64
|
+
```typescript filename="src/env.ts"
|
|
47
65
|
import { tex } from 'exisjs/validator'
|
|
48
66
|
|
|
49
67
|
export const env = tex.object({
|
|
@@ -88,20 +106,52 @@ export default class RootServer {
|
|
|
88
106
|
}
|
|
89
107
|
```
|
|
90
108
|
|
|
109
|
+
> [!IMPORTANT]
|
|
110
|
+
> ExisJS is an opinionated framework. You must choose **one paradigm** — either Functional or Class-Based (OOP) — for your entire project. Mixing paradigms within the same project will result in a fatal error at startup.
|
|
111
|
+
|
|
91
112
|
### 4. `src/http/**/route.ts`
|
|
92
|
-
ExisJS uses **File-System Routing** out of the box
|
|
93
|
-
|
|
94
|
-
- `src/http/
|
|
95
|
-
- `src/http/
|
|
113
|
+
ExisJS uses **File-System Routing** out of the box. Any file named `route.ts` (or `route.js`) inside the `src/http/` directory is automatically mapped to a URL based on its folder path.
|
|
114
|
+
|
|
115
|
+
- `src/http/route.ts` maps to `/api`
|
|
116
|
+
- `src/http/health/route.ts` maps to `/api/health`
|
|
117
|
+
- `src/http/users/route.ts` maps to `/api/users`
|
|
118
|
+
- `src/http/users/[id]/route.ts` maps to `/api/users/:id`
|
|
119
|
+
- `src/http/users/settings/route.ts` maps to `/api/users/settings`
|
|
120
|
+
- `src/http/(internal)/debug/route.ts` maps to `/api/debug` (group folders are ignored)
|
|
96
121
|
|
|
97
122
|
### 5. `src/http/**/gateway.ts`
|
|
98
123
|
Gateways allow you to apply configurations to entire folders. If you place a `gateway.ts` file inside `src/http/admin/`, the Guards, Middlewares, and Providers defined in that Gateway will automatically apply to every single route inside `/admin/*`. Like servers, these can be built using `defineGateway({...})` or the `@Gateway()` decorator.
|
|
99
124
|
|
|
100
|
-
### 6.
|
|
125
|
+
### 6. `src/jobs/`
|
|
126
|
+
Background jobs and cron tasks live here. Each file exports a job definition with a handler and optional cron schedule. These are automatically discovered and registered by the framework at startup.
|
|
127
|
+
|
|
128
|
+
```typescript filename="src/jobs/cleanup.ts"
|
|
129
|
+
import type { JobDefinition } from 'exisjs/queue'
|
|
130
|
+
|
|
131
|
+
export default {
|
|
132
|
+
name: 'cleanup',
|
|
133
|
+
cron: '* * * * *',
|
|
134
|
+
async handler() {
|
|
135
|
+
// Perform periodic cleanup
|
|
136
|
+
}
|
|
137
|
+
} satisfies JobDefinition
|
|
138
|
+
```
|
|
139
|
+
|
|
140
|
+
### 7. `src/http/**/schema.ts`
|
|
141
|
+
Co-locate your validation schemas alongside your route files. Schemas defined using `tex` are automatically integrated with OpenAPI documentation.
|
|
142
|
+
|
|
143
|
+
### 8. `src/http/**/controller.ts`
|
|
144
|
+
Co-locate your business logic helpers alongside your route files. These are plain functions or classes that handle the core logic, keeping your `route.ts` files clean and focused on request/response mapping.
|
|
145
|
+
|
|
146
|
+
### 9. `.exis/`
|
|
101
147
|
This is an internal, hidden directory generated by the ExisJS CLI. It holds compiled router mappings and runtime cache to skip filesystem scanning in production. You should add `.exis/` to your `.gitignore`.
|
|
102
148
|
|
|
103
|
-
###
|
|
104
|
-
ExisJS only enforces structure inside `src/http/` (for routing) and `src/jobs/` (for background
|
|
149
|
+
### 10. Custom Directories (e.g., `src/services/`, `src/models/`, `src/dto/`)
|
|
150
|
+
ExisJS only enforces structure inside `src/http/` (for routing) and `src/jobs/` (for background tasks). For the rest of your application logic, you are free to organize it however you see fit. Common patterns include:
|
|
151
|
+
|
|
152
|
+
- **`src/models/`** — Database schemas and ORM models
|
|
153
|
+
- **`src/services/`** — Reusable business logic injected via DI
|
|
154
|
+
- **`src/dto/`** — Data Transfer Objects for request/response typing
|
|
105
155
|
|
|
106
156
|
---
|
|
107
157
|
|
|
@@ -113,4 +163,4 @@ Your project is driven entirely by the `exis` CLI tool, which is typically mappe
|
|
|
113
163
|
- `exis build`: Compiles your TypeScript code to JavaScript for production.
|
|
114
164
|
- `exis start`: Starts the production server using the compiled output.
|
|
115
165
|
- `exis routes`: Prints a formatted table of every compiled API endpoint and WebSocket in your application.
|
|
116
|
-
- `exis generate <type>`: Scaffolds new routes,
|
|
166
|
+
- `exis generate <type>`: Scaffolds new routes, gateways, services, models, DTOs, and more.
|
|
@@ -5,9 +5,9 @@ nextTitle: "Adapters"
|
|
|
5
5
|
|
|
6
6
|
# Testing
|
|
7
7
|
|
|
8
|
-
ExisJS was built with testing as a first-class citizen. Instead of forcing you to configure bulky external test runners like Jest or Vitest, ExisJS natively wraps the
|
|
8
|
+
ExisJS was built with testing as a first-class citizen. Instead of forcing you to configure bulky external test runners like Jest or Vitest, ExisJS natively wraps the highly optimized, built-in **Node.js Test Runner** (`node:test`).
|
|
9
9
|
|
|
10
|
-
This means you get
|
|
10
|
+
This means you get highly optimized, integrated testing out-of-the-box.
|
|
11
11
|
|
|
12
12
|
---
|
|
13
13
|
|
|
@@ -72,7 +72,7 @@ export default class AIController {
|
|
|
72
72
|
|
|
73
73
|
@Post('/joke')
|
|
74
74
|
async generateJoke() {
|
|
75
|
-
// The openai client
|
|
75
|
+
// The openai client automatically lazy-loads here!
|
|
76
76
|
const completion = await openai.chat.completions.create({
|
|
77
77
|
messages: [{ role: 'user', content: 'Tell me a programming joke.' }],
|
|
78
78
|
model: 'gpt-4o-mini',
|
|
@@ -77,7 +77,7 @@ export default class EmailsController {
|
|
|
77
77
|
|
|
78
78
|
@Post('/welcome')
|
|
79
79
|
async sendWelcomeEmail(@Body() body: any) {
|
|
80
|
-
// The resend client
|
|
80
|
+
// The resend client automatically lazy-loads here!
|
|
81
81
|
const { data, error } = await resend.emails.send({
|
|
82
82
|
from: 'Acme <onboarding@resend.dev>',
|
|
83
83
|
to: [body.email],
|
|
@@ -88,7 +88,7 @@ export default class UploadsController {
|
|
|
88
88
|
ContentType: file.mimetype,
|
|
89
89
|
})
|
|
90
90
|
|
|
91
|
-
// The s3 client
|
|
91
|
+
// The s3 client automatically lazy-loads here!
|
|
92
92
|
await s3.send(command)
|
|
93
93
|
|
|
94
94
|
return { success: true, url: `https://my-exis-bucket.s3.amazonaws.com/${file.filename}` }
|
|
@@ -11,7 +11,7 @@ ExisJS comes with a highly sophisticated built-in caching system that natively s
|
|
|
11
11
|
|
|
12
12
|
## `cacheMiddleware(options)`
|
|
13
13
|
|
|
14
|
-
The primary way to use the cache is by attaching the `cacheMiddleware` directly to your GET routes. It intercepts responses, stores them in the cache, and serves them
|
|
14
|
+
The primary way to use the cache is by attaching the `cacheMiddleware` directly to your GET routes. It intercepts responses, stores them in the cache, and serves them efficiently on subsequent identical requests.
|
|
15
15
|
|
|
16
16
|
ExisJS automatically injects an `X-Exis-Cache: HIT` or `X-Exis-Cache: MISS` header into the HTTP response so you can debug your cache behavior instantly!
|
|
17
17
|
|
|
@@ -108,11 +108,11 @@ Here is the full list of options supported natively by the ExisJS configuration
|
|
|
108
108
|
### Security & Middlewares
|
|
109
109
|
- **`cors`** *(boolean | object)*: Enable and configure Cross-Origin Resource Sharing globally.
|
|
110
110
|
- **`helmet`** *(boolean | object)*: Enable strict security headers. Enabled by default.
|
|
111
|
-
- **`logger`** *(boolean | object)*: Configure the
|
|
111
|
+
- **`logger`** *(boolean | object)*: Configure the efficient Pino request logger.
|
|
112
112
|
- **`compression`** *(boolean | object)*: Enable gzip/brotli response compression.
|
|
113
113
|
- **`bodyLimit`** *(number)*: Maximum JSON/URL-encoded payload size in bytes (default: `1MB`).
|
|
114
114
|
|
|
115
|
-
###
|
|
115
|
+
### Extended Integrations
|
|
116
116
|
- **`queue`**: Define your background queue driver (`memory` or `redis`) and configure `maxConcurrent` processing limits.
|
|
117
117
|
- **`plugins`**: An array of `ExisPlugin` instances to register natively into the framework.
|
|
118
118
|
- **`test`**: Configure testing environments (`include`, `exclude`, `setupFiles`, `coverage`).
|
|
@@ -85,7 +85,7 @@ import { Database } from '../db' // The class definition
|
|
|
85
85
|
export default controller({
|
|
86
86
|
getUsers: route.get('/', {
|
|
87
87
|
async handle() {
|
|
88
|
-
//
|
|
88
|
+
// Automatically resolves the correct instance from the global container!
|
|
89
89
|
// Type is automatically inferred as `Database`.
|
|
90
90
|
const db = inject(Database)
|
|
91
91
|
|
|
@@ -104,7 +104,7 @@ export default controller({
|
|
|
104
104
|
|
|
105
105
|
Unlike other frameworks like NestJS, ExisJS does **not** rely on slow, metadata-heavy Constructor Injection.
|
|
106
106
|
|
|
107
|
-
Instead, you use the exact same
|
|
107
|
+
Instead, you use the exact same `inject()` function directly inside your Controller methods! This completely eliminates the need for `@Inject()` decorators or massive constructor boilerplate.
|
|
108
108
|
|
|
109
109
|
```typescript filename="src/http/users/route.ts"
|
|
110
110
|
import { Controller, Get } from 'exisjs/decorators'
|
|
@@ -5,7 +5,7 @@ description: "API Reference for ExisJS built-in Middleware functions."
|
|
|
5
5
|
|
|
6
6
|
# Middleware (`exisjs/middleware`)
|
|
7
7
|
|
|
8
|
-
ExisJS ships with a massive suite of highly optimized,
|
|
8
|
+
ExisJS ships with a massive suite of highly optimized, integrated middleware. Rather than relying on outdated Express middlewares (which are often unmaintained and have heavy dependency trees), ExisJS implements security and utility middleware natively.
|
|
9
9
|
|
|
10
10
|
All middlewares can be applied globally in `server.ts`, directory-wide in `gateway.ts`, or locally on specific controllers/routes.
|
|
11
11
|
|
|
@@ -198,7 +198,7 @@ getStats() {
|
|
|
198
198
|
Prevents duplicate identical requests from being processed simultaneously. If 1,000 clients request the exact same expensive resource at the exact same millisecond, `dedupe` forces 999 of them to wait for the 1st request to finish, and then serves the exact same response to all 1,000 clients simultaneously.
|
|
199
199
|
|
|
200
200
|
### `compress()`
|
|
201
|
-
A
|
|
201
|
+
A highly optimized payload compression middleware natively supporting `gzip`, `deflate`, and `brotli`. Automatically compresses responses based on the client's `Accept-Encoding` header.
|
|
202
202
|
|
|
203
203
|
### `timeout(ms)`
|
|
204
204
|
Automatically times out any request that hangs longer than the specified milliseconds, returning a clean 503 response. Crucial for preventing stalled requests from exhausting the Node.js event loop or database connection pools.
|
|
@@ -226,7 +226,7 @@ Monitors the Node.js Event Loop Delay in real-time. If the event loop gets too b
|
|
|
226
226
|
## Utility Middleware
|
|
227
227
|
|
|
228
228
|
### `cors(options)`
|
|
229
|
-
Native,
|
|
229
|
+
Native, integrated Cross-Origin Resource Sharing (CORS) handler. Features full support for preflight (`OPTIONS`), dynamic regex origins, and exposed headers.
|
|
230
230
|
|
|
231
231
|
```typescript
|
|
232
232
|
import { cors } from 'exisjs/middleware'
|
|
@@ -242,7 +242,7 @@ app.use(cors({
|
|
|
242
242
|
Injects a unique `X-Request-Id` into every incoming request and attaches it to `req.requestId`. Seamlessly respects incoming tracing headers (`traceparent`, `x-b3-traceid`) for distributed microservice tracing.
|
|
243
243
|
|
|
244
244
|
### `requestLogger(config)`
|
|
245
|
-
A
|
|
245
|
+
A efficient request logger powered by Pino. Automatically logs method, URL, status code, and response time. Integrates perfectly with `requestId()` to attach trace IDs to every single log line.
|
|
246
246
|
|
|
247
247
|
```typescript
|
|
248
248
|
import { requestLogger } from 'exisjs/middleware'
|
|
@@ -226,7 +226,7 @@ Use parameter decorators to automatically extract data from the incoming request
|
|
|
226
226
|
- `@Socket()`: Injects the active WebSocket instance (for `@Ws` routes).
|
|
227
227
|
- `@Stream()`: Injects the active SSE instance (for `@Sse` routes).
|
|
228
228
|
|
|
229
|
-
###
|
|
229
|
+
### Extended Decorators
|
|
230
230
|
|
|
231
231
|
ExisJS provides a rich ecosystem of decorators to apply middleware, configure responses, and enforce security on both individual routes and entire controllers:
|
|
232
232
|
|
|
@@ -5,7 +5,7 @@ description: "API Reference for ExisJS built-in Schema Validator (tex)."
|
|
|
5
5
|
|
|
6
6
|
# Validation (`tex`)
|
|
7
7
|
|
|
8
|
-
ExisJS ships with a
|
|
8
|
+
ExisJS ships with a efficient, integrated validation library out of the box, exposed as `tex` from `exisjs/validator`. It is powered by a efficient Rust engine, fully isomorphic, and deeply integrated with TypeScript and OpenAPI (Swagger).
|
|
9
9
|
|
|
10
10
|
---
|
|
11
11
|
|
|
@@ -79,7 +79,7 @@ export default controller({
|
|
|
79
79
|
All validators accept an options object that allows you to configure validation constraints and behaviors.
|
|
80
80
|
|
|
81
81
|
- `optional`: Marks the field as optional (allows `undefined`).
|
|
82
|
-
- `coerce`: Instructs the
|
|
82
|
+
- `coerce`: Instructs the Rust engine to automatically convert types when possible before validating. For example, converting `"123"` into a number, or `3000` into a string.
|
|
83
83
|
|
|
84
84
|
```typescript
|
|
85
85
|
// Type Conversion Examples using { coerce: true }
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/error/errors.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,UAAU,CAAA;AAIrD,qBAAa,SAAU,SAAQ,KAAK;IAClC,SAAgB,UAAU,EAAE,MAAM,CAAA;IAClC,SAAgB,IAAI,EAAE,MAAM,CAAA;IAC5B,SAAgB,aAAa,EAAE,OAAO,CAAA;IACtC,SAAgB,OAAO,CAAC,EAAE,OAAO,CAAA;gBAG/B,OAAO,EAAE,MAAM,EACf,UAAU,SAAM,EAChB,IAAI,SAAmB,EACvB,OAAO,CAAC,EAAE,OAAO;IAenB,MAAM,CAAC,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,GAAG,SAAS;IAIhE,MAAM,CAAC,YAAY,CAAC,OAAO,SAAiB,GAAG,SAAS;IAIxD,MAAM,CAAC,SAAS,CAAC,OAAO,SAAc,GAAG,SAAS;IAIlD,MAAM,CAAC,QAAQ,CAAC,QAAQ,SAAa,GAAG,SAAS;IAIjD,MAAM,CAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS;IAI3C,MAAM,CAAC,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,GAAG,SAAS;IAInE,MAAM,CAAC,eAAe,CAAC,OAAO,SAAsB,GAAG,SAAS;IAIhE,MAAM,CAAC,QAAQ,CAAC,OAAO,SAA0B,GAAG,SAAS;IAI7D,MAAM,CAAC,kBAAkB,CAAC,OAAO,SAAwB,GAAG,SAAS;IAIrE,MAAM,CAAC,cAAc,CAAC,OAAO,SAAoB,GAAG,SAAS;IAI7D,MAAM,IAAI,MAAM;CAUjB;AAED,qBAAa,eAAgB,SAAQ,SAAS;gBAChC,OAAO,SAAgB,EAAE,OAAO,CAAC,EAAE,OAAO;CAIvD;AAED,qBAAa,iBAAkB,SAAQ,SAAS;gBAClC,OAAO,SAAiB;CAIrC;AAED,qBAAa,cAAe,SAAQ,SAAS;gBAC/B,OAAO,SAAc;CAIlC;AAED,qBAAa,aAAc,SAAQ,SAAS;gBAC9B,QAAQ,SAAa;CAIlC;AAED,qBAAa,aAAc,SAAQ,SAAS;gBAC9B,OAAO,SAAa;CAIjC;AAED,qBAAa,kBAAmB,SAAQ,SAAS;gBACnC,OAAO,SAAyB,EAAE,OAAO,CAAC,EAAE,OAAO;CAIhE;AAED,qBAAa,cAAe,SAAQ,SAAS;gBAC/B,OAAO,SAAsB;CAI1C;AAED,qBAAa,aAAc,SAAQ,SAAS;gBAC9B,OAAO,SAA0B;CAI9C;AAED,qBAAa,uBAAwB,SAAQ,SAAS;gBACxC,OAAO,SAAwB;CAI5C;AAED,qBAAa,mBAAoB,SAAQ,SAAS;gBACpC,OAAO,SAAoB;CAIxC;AAGD,eAAO,MAAM,aAAa,kBAAY,CAAA;AACtC,eAAO,MAAM,mBAAmB,wBAAkB,CAAA;AAClD,eAAO,MAAM,qBAAqB,0BAAoB,CAAA;AACtD,eAAO,MAAM,kBAAkB,uBAAiB,CAAA;AAChD,eAAO,MAAM,iBAAiB,sBAAgB,CAAA;AAC9C,eAAO,MAAM,iBAAiB,sBAAgB,CAAA;AAC9C,eAAO,MAAM,sBAAsB,2BAAqB,CAAA;AACxD,eAAO,MAAM,kBAAkB,uBAAiB,CAAA;AAChD,eAAO,MAAM,iBAAiB,sBAAgB,CAAA;AAC9C,eAAO,MAAM,2BAA2B,gCAA0B,CAAA;AAClE,eAAO,MAAM,uBAAuB,4BAAsB,CAAA;AA6G1D,wBAAgB,kBAAkB,CAAC,KAAK,UAAQ,GAAG,YAAY,CAsG9D;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,EAAE,EAAE,OAAO,GAAG,OAAO,CAIjD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/error/errors.ts"],"names":[],"mappings":"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"}
|
package/dist/error/index.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export { HttpError, BadRequestError, UnauthorizedError, ForbiddenError, NotFoundError, ConflictError, UnprocessableError, RateLimitError, InternalError, createErrorHandler, asyncHandler, HttpException, BadRequestException, UnauthorizedException, ForbiddenException, NotFoundException, ConflictException, UnprocessableException, RateLimitException, InternalException, } from '
|
|
1
|
+
export { HttpError, BadRequestError, UnauthorizedError, ForbiddenError, NotFoundError, ConflictError, UnprocessableError, RateLimitError, InternalError, createErrorHandler, asyncHandler, HttpException, BadRequestException, UnauthorizedException, ForbiddenException, NotFoundException, ConflictException, UnprocessableException, RateLimitException, InternalException, } from './errors';
|
|
2
2
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/error/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,EACT,eAAe,EACf,iBAAiB,EACjB,cAAc,EACd,aAAa,EACb,aAAa,EACb,kBAAkB,EAClB,cAAc,EACd,aAAa,EACb,kBAAkB,EAClB,YAAY,EAGZ,aAAa,EACb,mBAAmB,EACnB,qBAAqB,EACrB,kBAAkB,EAClB,iBAAiB,EACjB,iBAAiB,EACjB,sBAAsB,EACtB,kBAAkB,EAClB,iBAAiB,GAClB,MAAM,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/error/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,EACT,eAAe,EACf,iBAAiB,EACjB,cAAc,EACd,aAAa,EACb,aAAa,EACb,kBAAkB,EAClB,cAAc,EACd,aAAa,EACb,kBAAkB,EAClB,YAAY,EAGZ,aAAa,EACb,mBAAmB,EACnB,qBAAqB,EACrB,kBAAkB,EAClB,iBAAiB,EACjB,iBAAiB,EACjB,sBAAsB,EACtB,kBAAkB,EAClB,iBAAiB,GAClB,MAAM,UAAU,CAAA"}
|
package/dist/error/index.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.InternalException = exports.RateLimitException = exports.UnprocessableException = exports.ConflictException = exports.NotFoundException = exports.ForbiddenException = exports.UnauthorizedException = exports.BadRequestException = exports.HttpException = exports.asyncHandler = exports.createErrorHandler = exports.InternalError = exports.RateLimitError = exports.UnprocessableError = exports.ConflictError = exports.NotFoundError = exports.ForbiddenError = exports.UnauthorizedError = exports.BadRequestError = exports.HttpError = void 0;
|
|
4
|
-
var errors_1 = require("
|
|
4
|
+
var errors_1 = require("./errors");
|
|
5
5
|
Object.defineProperty(exports, "HttpError", { enumerable: true, get: function () { return errors_1.HttpError; } });
|
|
6
6
|
Object.defineProperty(exports, "BadRequestError", { enumerable: true, get: function () { return errors_1.BadRequestError; } });
|
|
7
7
|
Object.defineProperty(exports, "UnauthorizedError", { enumerable: true, get: function () { return errors_1.UnauthorizedError; } });
|
package/dist/error/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/error/index.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/error/index.ts"],"names":[],"mappings":";;;AAAA,mCAuBiB;AAtBf,mGAAA,SAAS,OAAA;AACT,yGAAA,eAAe,OAAA;AACf,2GAAA,iBAAiB,OAAA;AACjB,wGAAA,cAAc,OAAA;AACd,uGAAA,aAAa,OAAA;AACb,uGAAA,aAAa,OAAA;AACb,4GAAA,kBAAkB,OAAA;AAClB,wGAAA,cAAc,OAAA;AACd,uGAAA,aAAa,OAAA;AACb,4GAAA,kBAAkB,OAAA;AAClB,sGAAA,YAAY,OAAA;AAEZ,oBAAoB;AACpB,uGAAA,aAAa,OAAA;AACb,6GAAA,mBAAmB,OAAA;AACnB,+GAAA,qBAAqB,OAAA;AACrB,4GAAA,kBAAkB,OAAA;AAClB,2GAAA,iBAAiB,OAAA;AACjB,2GAAA,iBAAiB,OAAA;AACjB,gHAAA,sBAAsB,OAAA;AACtB,4GAAA,kBAAkB,OAAA;AAClB,2GAAA,iBAAiB,OAAA"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,14 +1,10 @@
|
|
|
1
|
-
import './
|
|
1
|
+
import './config/env';
|
|
2
2
|
export { defineApp as exis } from './server/define';
|
|
3
3
|
export { type App, getActiveApp } from './server/app';
|
|
4
|
-
export { defineConfig } from './
|
|
4
|
+
export { defineConfig } from './config/config';
|
|
5
5
|
export { createLogger } from './utils/logger';
|
|
6
|
-
export { parseEnv, loadEnv } from './
|
|
6
|
+
export { parseEnv, loadEnv } from './config/env';
|
|
7
7
|
export { CircuitBreaker, CircuitBreakerError, CircuitState, } from './utils/circuit-breaker';
|
|
8
|
-
export { db, createDatabase, DatabaseManager } from './database';
|
|
9
|
-
export { Migrator } from './database/migration';
|
|
10
|
-
export { QueryBuilder } from './database/query-builder';
|
|
11
|
-
export type { DatabaseConfig, DatabaseDialect, DatabaseAdapter, QueryResult, ExecuteResult, Transaction, } from './database/types';
|
|
12
8
|
export type { ExisConfig, ExisPlugin, ExisPluginInstance, Logger, CorsConfig, LoggerConfig, HookRequest, } from './types';
|
|
13
9
|
export interface ExisUser {
|
|
14
10
|
}
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,cAAc,CAAA;AAGrB,OAAO,EAAE,SAAS,IAAI,IAAI,EAAE,MAAM,iBAAiB,CAAA;AACnD,OAAO,EAAE,KAAK,GAAG,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAG9C,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAE7C,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AAIhD,OAAO,EACL,cAAc,EACd,mBAAmB,EACnB,YAAY,GACb,MAAM,yBAAyB,CAAA;AAGhC,YAAY,EACV,UAAU,EACV,UAAU,EACV,kBAAkB,EAClB,MAAM,EACN,UAAU,EACV,YAAY,EACZ,WAAW,GACZ,MAAM,SAAS,CAAA;AAGhB,MAAM,WAAW,QAAQ;CAAG"}
|
package/dist/index.js
CHANGED
|
@@ -1,18 +1,18 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
4
|
-
require("./
|
|
3
|
+
exports.CircuitState = exports.CircuitBreakerError = exports.CircuitBreaker = exports.loadEnv = exports.parseEnv = exports.createLogger = exports.defineConfig = exports.getActiveApp = exports.exis = void 0;
|
|
4
|
+
require("./config/env");
|
|
5
5
|
// ─── Core ─────────────────────────────────────────────────────────────────────
|
|
6
6
|
var define_1 = require("./server/define");
|
|
7
7
|
Object.defineProperty(exports, "exis", { enumerable: true, get: function () { return define_1.defineApp; } });
|
|
8
8
|
var app_1 = require("./server/app");
|
|
9
9
|
Object.defineProperty(exports, "getActiveApp", { enumerable: true, get: function () { return app_1.getActiveApp; } });
|
|
10
|
-
var config_1 = require("./
|
|
10
|
+
var config_1 = require("./config/config");
|
|
11
11
|
Object.defineProperty(exports, "defineConfig", { enumerable: true, get: function () { return config_1.defineConfig; } });
|
|
12
12
|
// ─── Logger ───────────────────────────────────────────────────────────────────
|
|
13
13
|
var logger_1 = require("./utils/logger");
|
|
14
14
|
Object.defineProperty(exports, "createLogger", { enumerable: true, get: function () { return logger_1.createLogger; } });
|
|
15
|
-
var env_1 = require("./
|
|
15
|
+
var env_1 = require("./config/env");
|
|
16
16
|
Object.defineProperty(exports, "parseEnv", { enumerable: true, get: function () { return env_1.parseEnv; } });
|
|
17
17
|
Object.defineProperty(exports, "loadEnv", { enumerable: true, get: function () { return env_1.loadEnv; } });
|
|
18
18
|
// ─── Circuit Breaker ───────────────────────────────────────────────────────
|
|
@@ -20,13 +20,4 @@ var circuit_breaker_1 = require("./utils/circuit-breaker");
|
|
|
20
20
|
Object.defineProperty(exports, "CircuitBreaker", { enumerable: true, get: function () { return circuit_breaker_1.CircuitBreaker; } });
|
|
21
21
|
Object.defineProperty(exports, "CircuitBreakerError", { enumerable: true, get: function () { return circuit_breaker_1.CircuitBreakerError; } });
|
|
22
22
|
Object.defineProperty(exports, "CircuitState", { enumerable: true, get: function () { return circuit_breaker_1.CircuitState; } });
|
|
23
|
-
// ─── Database ─────────────────────────────────────────────────────────────────
|
|
24
|
-
var database_1 = require("./database");
|
|
25
|
-
Object.defineProperty(exports, "db", { enumerable: true, get: function () { return database_1.db; } });
|
|
26
|
-
Object.defineProperty(exports, "createDatabase", { enumerable: true, get: function () { return database_1.createDatabase; } });
|
|
27
|
-
Object.defineProperty(exports, "DatabaseManager", { enumerable: true, get: function () { return database_1.DatabaseManager; } });
|
|
28
|
-
var migration_1 = require("./database/migration");
|
|
29
|
-
Object.defineProperty(exports, "Migrator", { enumerable: true, get: function () { return migration_1.Migrator; } });
|
|
30
|
-
var query_builder_1 = require("./database/query-builder");
|
|
31
|
-
Object.defineProperty(exports, "QueryBuilder", { enumerable: true, get: function () { return query_builder_1.QueryBuilder; } });
|
|
32
23
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,wBAAqB;AAErB,iFAAiF;AACjF,0CAAmD;AAA1C,8FAAA,SAAS,OAAQ;AAC1B,oCAAqD;AAAlC,mGAAA,YAAY,OAAA;AAC/B,0CAA8C;AAArC,sGAAA,YAAY,OAAA;AAErB,iFAAiF;AACjF,yCAA6C;AAApC,sGAAA,YAAY,OAAA;AAErB,oCAAgD;AAAvC,+FAAA,QAAQ,OAAA;AAAE,8FAAA,OAAO,OAAA;AAE1B,8EAA8E;AAE9E,2DAIgC;AAH9B,iHAAA,cAAc,OAAA;AACd,sHAAA,mBAAmB,OAAA;AACnB,+GAAA,YAAY,OAAA"}
|
package/dist/lib/start-repl.js
CHANGED
|
@@ -50,14 +50,12 @@ async function startRepl() {
|
|
|
50
50
|
const cwd = process.cwd();
|
|
51
51
|
const dynamicImport = new Function('specifier', 'return import(specifier)');
|
|
52
52
|
// 1. Load .env files so process.env is populated
|
|
53
|
-
const { loadEnv } = await Promise.resolve().then(() => __importStar(require('../
|
|
53
|
+
const { loadEnv } = await Promise.resolve().then(() => __importStar(require('../config/env.js')));
|
|
54
54
|
loadEnv(cwd);
|
|
55
55
|
// 2. Auto-load Environment variables validation file if it exists
|
|
56
56
|
const envFiles = [
|
|
57
|
-
node_path_1.default.join(cwd, 'src', 'env.ts'),
|
|
58
|
-
node_path_1.default.join(cwd, 'src', 'env.js'),
|
|
59
|
-
node_path_1.default.join(cwd, 'env.ts'),
|
|
60
|
-
node_path_1.default.join(cwd, 'env.js'),
|
|
57
|
+
node_path_1.default.join(cwd, 'src', 'config', 'env.ts'),
|
|
58
|
+
node_path_1.default.join(cwd, 'src', 'config', 'env.js'),
|
|
61
59
|
];
|
|
62
60
|
for (const envFile of envFiles) {
|
|
63
61
|
if (node_fs_1.default.existsSync(envFile)) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"start-repl.js","sourceRoot":"","sources":["../../src/lib/start-repl.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,0DAA4B;AAC5B,uCAAwC;AACxC,sDAAwB;AACxB,0DAA4B;AAE5B,KAAK,UAAU,SAAS;IACtB,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,eAAe,CAAA;IAE7C,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,kDAAkD,CAAC,CAAA;QACjE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACjB,CAAC;IAED,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,CAAA;QACzB,MAAM,aAAa,GAAG,IAAI,QAAQ,CAAC,WAAW,EAAE,0BAA0B,CAAC,CAAA;QAE3E,iDAAiD;QACjD,MAAM,EAAE,OAAO,EAAE,GAAG,wDAAa,
|
|
1
|
+
{"version":3,"file":"start-repl.js","sourceRoot":"","sources":["../../src/lib/start-repl.ts"],"names":[],"mappings":"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"}
|
package/dist/lib/start-server.js
CHANGED
|
@@ -59,14 +59,12 @@ async function start() {
|
|
|
59
59
|
const cwd = process.cwd();
|
|
60
60
|
const dynamicImport = new Function('specifier', 'return import(specifier)');
|
|
61
61
|
// 1. Load .env files so process.env is populated
|
|
62
|
-
const { loadEnv } = await Promise.resolve().then(() => __importStar(require('../
|
|
62
|
+
const { loadEnv } = await Promise.resolve().then(() => __importStar(require('../config/env.js')));
|
|
63
63
|
loadEnv(cwd);
|
|
64
64
|
// 2. Auto-load Environment variables validation file if it exists
|
|
65
65
|
const envFiles = [
|
|
66
|
-
path.join(cwd, 'src', 'env.ts'),
|
|
67
|
-
path.join(cwd, 'src', 'env.js'),
|
|
68
|
-
path.join(cwd, 'env.ts'),
|
|
69
|
-
path.join(cwd, 'env.js'),
|
|
66
|
+
path.join(cwd, 'src', 'config', 'env.ts'),
|
|
67
|
+
path.join(cwd, 'src', 'config', 'env.js'),
|
|
70
68
|
];
|
|
71
69
|
for (const envFile of envFiles) {
|
|
72
70
|
if (fs.existsSync(envFile)) {
|
|
@@ -187,9 +185,9 @@ async function start() {
|
|
|
187
185
|
async function bootstrap() {
|
|
188
186
|
let workers = 1;
|
|
189
187
|
try {
|
|
190
|
-
const { loadEnv } = await Promise.resolve().then(() => __importStar(require('../
|
|
188
|
+
const { loadEnv } = await Promise.resolve().then(() => __importStar(require('../config/env.js')));
|
|
191
189
|
loadEnv(process.cwd());
|
|
192
|
-
const { loadConfig } = await Promise.resolve().then(() => __importStar(require('../
|
|
190
|
+
const { loadConfig } = await Promise.resolve().then(() => __importStar(require('../config/config.js')));
|
|
193
191
|
const config = await loadConfig(process.cwd());
|
|
194
192
|
if (config.cluster && config.cluster.workers) {
|
|
195
193
|
workers =
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"start-server.js","sourceRoot":"","sources":["../../src/lib/start-server.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,sDAAwB;AACxB,uCAAwC;AACxC,qDAAmD;AAEnD,KAAK,UAAU,KAAK;IAClB,2EAA2E;IAC3E,WAAW,CAAC,GAAG,EAAE;QACf,MAAM,KAAK,GAAG,iBAAE,CAAC,iBAAiB,EAAE,CAAA;QACpC,IAAI,KAAK,CAAC,cAAc,GAAG,GAAG,GAAG,KAAK,CAAC,eAAe,EAAE,CAAC;YACvD,OAAO,CAAC,KAAK,CACX,6EAA6E,CAC9E,CAAA;YACD,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA,CAAC,+BAA+B;QACnD,CAAC;IACH,CAAC,EAAE,KAAK,CAAC,CAAC,KAAK,EAAE,CAAA,CAAC,6BAA6B;IAE/C,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,eAAe,CAAA;IAE7C,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,kDAAkD,CAAC,CAAA;QACjE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACjB,CAAC;IAED,IAAI,CAAC;QACH,MAAM,EAAE,GAAG,wDAAa,SAAS,GAAC,CAAA;QAClC,MAAM,IAAI,GAAG,wDAAa,WAAW,GAAC,CAAA;QACtC,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,CAAA;QAEzB,MAAM,aAAa,GAAG,IAAI,QAAQ,CAAC,WAAW,EAAE,0BAA0B,CAAC,CAAA;QAE3E,iDAAiD;QACjD,MAAM,EAAE,OAAO,EAAE,GAAG,wDAAa,
|
|
1
|
+
{"version":3,"file":"start-server.js","sourceRoot":"","sources":["../../src/lib/start-server.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.backpressureMiddleware = backpressureMiddleware;
|
|
4
|
-
const errors_1 = require("../
|
|
4
|
+
const errors_1 = require("../error/errors");
|
|
5
5
|
function backpressureMiddleware(options = {}) {
|
|
6
6
|
const maxConcurrent = options.maxConcurrent ?? 1000;
|
|
7
7
|
const maxQueue = options.maxQueue ?? 500;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.ipFilterMiddleware = ipFilterMiddleware;
|
|
4
|
-
const errors_1 = require("../
|
|
4
|
+
const errors_1 = require("../error/errors");
|
|
5
5
|
/** Parse a CIDR block into network address and mask */
|
|
6
6
|
function parseCidr(cidr) {
|
|
7
7
|
const [ip, prefix] = cidr.split('/');
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { Handler, CorsConfig, LoggerConfig, Logger } from '../types';
|
|
2
|
-
import { ObjectValidator } from '../
|
|
2
|
+
import { ObjectValidator } from '../validator/validator';
|
|
3
3
|
import { TexEngine } from '../validator/tex';
|
|
4
4
|
export declare function cors(config?: CorsConfig): Handler;
|
|
5
5
|
export declare function requestId(): Handler;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"middleware.d.ts","sourceRoot":"","sources":["../../src/middleware/middleware.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA;AACzE,OAAO,EACL,eAAe,EAEhB,MAAM,
|
|
1
|
+
{"version":3,"file":"middleware.d.ts","sourceRoot":"","sources":["../../src/middleware/middleware.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA;AACzE,OAAO,EACL,eAAe,EAEhB,MAAM,wBAAwB,CAAA;AAC/B,OAAO,EACL,SAAS,EAEV,MAAM,kBAAkB,CAAA;AAKzB,wBAAgB,IAAI,CAAC,MAAM,GAAE,UAAe,GAAG,OAAO,CAwFrD;AAMD,wBAAgB,SAAS,IAAI,OAAO,CAenC;AAID,wBAAgB,aAAa,CAC3B,cAAc,GAAE,MAAM,GAAG,YAAiB,GACzC,OAAO,CAqDT;AAID,eAAO,MAAM,QAAQ,EAAE,OAQtB,CAAA;AAID,OAAO,EAAE,WAAW,IAAI,QAAQ,EAAE,MAAM,eAAe,CAAA;AACvD,OAAO,EACL,MAAM,EACN,IAAI,EACJ,OAAO,EACP,GAAG,EACH,aAAa,EACb,UAAU,GACX,MAAM,YAAY,CAAA;AACnB,YAAY,EACV,WAAW,EACX,cAAc,EACd,iBAAiB,EACjB,aAAa,GACd,MAAM,YAAY,CAAA;AACnB,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AACxC,YAAY,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAA;AACpD,OAAO,EAAE,eAAe,IAAI,KAAK,EAAE,MAAM,SAAS,CAAA;AAClD,OAAO,EAAE,gBAAgB,IAAI,MAAM,EAAE,MAAM,UAAU,CAAA;AACrD,OAAO,EAAE,sBAAsB,IAAI,YAAY,EAAE,MAAM,gBAAgB,CAAA;AACvE,OAAO,EAAE,kBAAkB,IAAI,QAAQ,EAAE,MAAM,aAAa,CAAA;AAC5D,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAA;AACzC,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAA;AAC/C,cAAc,SAAS,CAAA;AACvB,cAAc,QAAQ,CAAA;AAEtB,wBAAgB,WAAW,CACzB,IAAI,EAAE,MAAM,EACZ,OAAO,GAAE;IAAE,MAAM,CAAC,EAAE,MAAM,CAAA;CAAO,GAChC,OAAO,CA0ET;AAID,MAAM,WAAW,cAAc;IAC7B,IAAI,CAAC,EAAE,eAAe,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC,GAAG,CAAC,CAAA;IAE5C,KAAK,CAAC,EAAE,eAAe,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC,GAAG,CAAC,CAAA;IAE7C,MAAM,CAAC,EAAE,eAAe,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC,GAAG,CAAC,CAAA;CAC/C;AAED,wBAAgB,QAAQ,CAAC,MAAM,EAAE,cAAc,GAAG,OAAO,CAiCxD;AAID,wBAAgB,cAAc,IAAI,OAAO,CAKxC;AAED,cAAc,eAAe,CAAA"}
|
|
@@ -21,7 +21,7 @@ exports.requestLogger = requestLogger;
|
|
|
21
21
|
exports.serveStatic = serveStatic;
|
|
22
22
|
exports.validate = validate;
|
|
23
23
|
exports.conditionalGet = conditionalGet;
|
|
24
|
-
const validator_1 = require("../
|
|
24
|
+
const validator_1 = require("../validator/validator");
|
|
25
25
|
const tex_1 = require("../validator/tex");
|
|
26
26
|
const logger_1 = require("../utils/logger");
|
|
27
27
|
// ─── CORS ─────────────────────────────────────────────────────────────────────
|