@shohaghinfo/aerojs 0.4.0 → 0.4.2
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/AGENTS.md +17 -16
- package/README.md +117 -44
- package/dist/audit/audit-trail.d.ts +5 -6
- package/dist/audit/audit-trail.d.ts.map +1 -1
- package/dist/audit/audit-trail.js +5 -6
- package/dist/audit/audit-trail.js.map +1 -1
- package/dist/auth/auth-manager.d.ts +5 -5
- package/dist/auth/auth-manager.js +5 -5
- package/dist/auth/bouncer.d.ts +8 -15
- package/dist/auth/bouncer.d.ts.map +1 -1
- package/dist/auth/bouncer.js +10 -17
- package/dist/auth/bouncer.js.map +1 -1
- package/dist/auth/guards/api-token-guard.d.ts +2 -4
- package/dist/auth/guards/api-token-guard.d.ts.map +1 -1
- package/dist/auth/guards/api-token-guard.js +2 -4
- package/dist/auth/guards/api-token-guard.js.map +1 -1
- package/dist/auth/guards/jwt-guard.d.ts +3 -4
- package/dist/auth/guards/jwt-guard.d.ts.map +1 -1
- package/dist/auth/guards/jwt-guard.js +2 -3
- package/dist/auth/guards/jwt-guard.js.map +1 -1
- package/dist/auth/guards/session-guard.d.ts +2 -4
- package/dist/auth/guards/session-guard.d.ts.map +1 -1
- package/dist/auth/guards/session-guard.js +2 -4
- package/dist/auth/guards/session-guard.js.map +1 -1
- package/dist/auth/policy.js +1 -1
- package/dist/auth/policy.js.map +1 -1
- package/dist/cli/commands/make.js +5 -5
- package/dist/cli/runner.js +1 -1
- package/dist/core/application.d.ts +4 -0
- package/dist/core/application.d.ts.map +1 -1
- package/dist/core/application.js +29 -3
- package/dist/core/application.js.map +1 -1
- package/dist/core/context.d.ts +25 -0
- package/dist/core/context.d.ts.map +1 -1
- package/dist/core/context.js +43 -0
- package/dist/core/context.js.map +1 -1
- package/dist/database/drizzle.d.ts +4 -1
- package/dist/database/drizzle.d.ts.map +1 -1
- package/dist/database/drizzle.js +1 -1
- package/dist/database/drizzle.js.map +1 -1
- package/dist/database/index.d.ts +1 -0
- package/dist/database/index.d.ts.map +1 -1
- package/dist/database/index.js +1 -0
- package/dist/database/index.js.map +1 -1
- package/dist/database/knex.d.ts.map +1 -1
- package/dist/database/knex.js +1 -0
- package/dist/database/knex.js.map +1 -1
- package/dist/database/model-hooks.d.ts +5 -5
- package/dist/database/model-hooks.js +11 -11
- package/dist/database/model.d.ts +43 -59
- package/dist/database/model.d.ts.map +1 -1
- package/dist/database/model.js +62 -68
- package/dist/database/model.js.map +1 -1
- package/dist/database/prisma.d.ts +1 -1
- package/dist/database/prisma.d.ts.map +1 -1
- package/dist/database/prisma.js +3 -2
- package/dist/database/prisma.js.map +1 -1
- package/dist/database/query-builder.d.ts +11 -7
- package/dist/database/query-builder.d.ts.map +1 -1
- package/dist/database/query-builder.js +50 -21
- package/dist/database/query-builder.js.map +1 -1
- package/dist/database/sqlite.d.ts +26 -0
- package/dist/database/sqlite.d.ts.map +1 -0
- package/dist/database/sqlite.js +96 -0
- package/dist/database/sqlite.js.map +1 -0
- package/dist/events/event-bus.d.ts +47 -75
- package/dist/events/event-bus.d.ts.map +1 -1
- package/dist/events/event-bus.js +14 -23
- package/dist/events/event-bus.js.map +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -5
- package/dist/index.js.map +1 -1
- package/dist/notifications/notification-manager.d.ts +1 -1
- package/dist/notifications/notification-manager.js +1 -1
- package/dist/scheduler/scheduler.d.ts +5 -5
- package/dist/scheduler/scheduler.js +5 -5
- package/dist/session/session-driver.d.ts +2 -2
- package/dist/session/session-driver.js +2 -2
- package/dist/session/session-manager.d.ts +4 -4
- package/dist/session/session-manager.js +3 -3
- package/dist/tcp/mllp.d.ts +1 -1
- package/dist/tcp/mllp.js +2 -2
- package/dist/tcp/mllp.js.map +1 -1
- package/dist/validation/schema.d.ts +6 -0
- package/dist/validation/schema.d.ts.map +1 -1
- package/dist/validation/schema.js +57 -3
- package/dist/validation/schema.js.map +1 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -25,7 +25,7 @@ export { serveStatic, getMimeType, } from './static/static.js';
|
|
|
25
25
|
export { cors, } from './middleware/cors.js';
|
|
26
26
|
export { jwt, sign, verify, decode, jwtAuth, parseTimespan, JsonWebTokenError, TokenExpiredError, NotBeforeError, rateLimit, MemoryRateLimitStore, RedisRateLimitStore, TooManyRequestsError, securityHeaders, csrf, Hash, hash, hashVerify, } from './security/index.js';
|
|
27
27
|
export { AeroWebSocket, handleWebSocketUpgrade, } from './ws/websocket.js';
|
|
28
|
-
export { Database, DB, MemoryDatabaseAdapter, Model, Relation, computed, encrypted, QueryBuilder, Schema, TableBlueprint, Migrator,
|
|
28
|
+
export { Database, DB, MemoryDatabaseAdapter, SqliteDatabaseAdapter, useSqlite, Model, Relation, computed, encrypted, QueryBuilder, Schema, TableBlueprint, Migrator,
|
|
29
29
|
// Lifecycle Hook System
|
|
30
30
|
getHookRegistry, registerHook, ModelHookRegistry, beforeCreate, afterCreate, beforeSave, afterSave, beforeUpdate, afterUpdate, beforeDelete, afterDelete, beforeFind, afterFind, beforeFetch, afterFetch, Seeder, DatabaseSeeder, ModelFactory, } from './database/index.js';
|
|
31
31
|
export { Logger, requestLogger, RequestContext, } from './logging/index.js';
|
|
@@ -49,7 +49,7 @@ export { Validator, VineHelper, defaultBengaliVineMessages, } from './validation
|
|
|
49
49
|
export { UnprocessableEntityError, ValidationError, } from './core/errors.js';
|
|
50
50
|
import { Aero } from './core/application.js';
|
|
51
51
|
export default Aero;
|
|
52
|
-
// ───
|
|
52
|
+
// ─── Enterprise Modules ───────────────────────────────────────────────────────
|
|
53
53
|
// Auth System (Session + JWT + API Token Guards)
|
|
54
54
|
export { Auth, AuthManager, authManager, authPlugin, auth, } from './auth/auth-manager.js';
|
|
55
55
|
export { SessionGuard, } from './auth/guards/session-guard.js';
|
|
@@ -65,9 +65,9 @@ export { MemorySessionDriver, FileSessionDriver, RedisSessionDriver, CookieSessi
|
|
|
65
65
|
export { AuditTrail, AuditTrailManager, DatabaseAuditDriver, MemoryAuditDriver, } from './audit/audit-trail.js';
|
|
66
66
|
// Domain Event Bus (Section 2 — Reactive Event Bus)
|
|
67
67
|
export { Events, EventBus, DomainEvent,
|
|
68
|
-
//
|
|
69
|
-
|
|
70
|
-
// Cron Scheduler
|
|
68
|
+
// Canonical Domain Events
|
|
69
|
+
UserRegisteredEvent, OrderPlacedEvent, PaymentReceivedEvent, RecordArchivedEvent, LowStockAlertEvent, } from './events/event-bus.js';
|
|
70
|
+
// Cron Task Scheduler
|
|
71
71
|
export { Schedule, Scheduler, TaskBuilder, } from './scheduler/scheduler.js';
|
|
72
72
|
export * from './cache/index.js';
|
|
73
73
|
export * from './redis/index.js';
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -32,7 +32,7 @@ export declare class NotificationManager {
|
|
|
32
32
|
}
|
|
33
33
|
export declare const Notifications: NotificationManager;
|
|
34
34
|
/**
|
|
35
|
-
* Mixin / Helper function to send notification from a user
|
|
35
|
+
* Mixin / Helper function to send notification from a user model.
|
|
36
36
|
* Example: notify(user, new InvoiceNotification(inv));
|
|
37
37
|
*/
|
|
38
38
|
export declare function notify(notifiable: any, notification: Notification): Promise<void>;
|
|
@@ -121,7 +121,7 @@ export class NotificationManager {
|
|
|
121
121
|
}
|
|
122
122
|
export const Notifications = new NotificationManager();
|
|
123
123
|
/**
|
|
124
|
-
* Mixin / Helper function to send notification from a user
|
|
124
|
+
* Mixin / Helper function to send notification from a user model.
|
|
125
125
|
* Example: notify(user, new InvoiceNotification(inv));
|
|
126
126
|
*/
|
|
127
127
|
export async function notify(notifiable, notification) {
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @file scheduler.ts
|
|
3
3
|
* @description Cron-based Task Scheduler for AeroJS.
|
|
4
|
-
*
|
|
5
|
-
*
|
|
4
|
+
* Use-cases: Scheduled maintenance, database backups, automated report generation,
|
|
5
|
+
* cache warming, email digest dispatches, and periodic cleanup.
|
|
6
6
|
*
|
|
7
7
|
* Zero external dependency — uses Node.js setInterval with cron expression parsing.
|
|
8
8
|
*/
|
|
@@ -53,11 +53,11 @@ export declare class Scheduler {
|
|
|
53
53
|
* Define a new scheduled task using builder pattern.
|
|
54
54
|
*
|
|
55
55
|
* @example
|
|
56
|
-
* Scheduler.define('
|
|
56
|
+
* Scheduler.define('DailyReport')
|
|
57
57
|
* .cron('0 23 * * *')
|
|
58
|
-
* .description('Daily
|
|
58
|
+
* .description('Daily report generation and metrics summary')
|
|
59
59
|
* .run(async () => {
|
|
60
|
-
* await
|
|
60
|
+
* await ReportService.generateDailySummary();
|
|
61
61
|
* });
|
|
62
62
|
*/
|
|
63
63
|
define(name: string): TaskBuilder;
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @file scheduler.ts
|
|
3
3
|
* @description Cron-based Task Scheduler for AeroJS.
|
|
4
|
-
*
|
|
5
|
-
*
|
|
4
|
+
* Use-cases: Scheduled maintenance, database backups, automated report generation,
|
|
5
|
+
* cache warming, email digest dispatches, and periodic cleanup.
|
|
6
6
|
*
|
|
7
7
|
* Zero external dependency — uses Node.js setInterval with cron expression parsing.
|
|
8
8
|
*/
|
|
@@ -101,11 +101,11 @@ export class Scheduler {
|
|
|
101
101
|
* Define a new scheduled task using builder pattern.
|
|
102
102
|
*
|
|
103
103
|
* @example
|
|
104
|
-
* Scheduler.define('
|
|
104
|
+
* Scheduler.define('DailyReport')
|
|
105
105
|
* .cron('0 23 * * *')
|
|
106
|
-
* .description('Daily
|
|
106
|
+
* .description('Daily report generation and metrics summary')
|
|
107
107
|
* .run(async () => {
|
|
108
|
-
* await
|
|
108
|
+
* await ReportService.generateDailySummary();
|
|
109
109
|
* });
|
|
110
110
|
*/
|
|
111
111
|
define(name) {
|
|
@@ -22,7 +22,7 @@ export declare class MemorySessionDriver implements SessionDriver {
|
|
|
22
22
|
}
|
|
23
23
|
/**
|
|
24
24
|
* File-based session driver.
|
|
25
|
-
* Suitable for single-server
|
|
25
|
+
* Suitable for single-server standalone deployments.
|
|
26
26
|
*/
|
|
27
27
|
export declare class FileSessionDriver implements SessionDriver {
|
|
28
28
|
private dir;
|
|
@@ -34,7 +34,7 @@ export declare class FileSessionDriver implements SessionDriver {
|
|
|
34
34
|
gc(): Promise<void>;
|
|
35
35
|
}
|
|
36
36
|
/**
|
|
37
|
-
* Redis session driver — recommended for production
|
|
37
|
+
* Redis session driver — recommended for horizontal multi-server production deployments.
|
|
38
38
|
* Requires ioredis: npm install ioredis
|
|
39
39
|
*/
|
|
40
40
|
/**
|
|
@@ -31,7 +31,7 @@ export class MemorySessionDriver {
|
|
|
31
31
|
}
|
|
32
32
|
/**
|
|
33
33
|
* File-based session driver.
|
|
34
|
-
* Suitable for single-server
|
|
34
|
+
* Suitable for single-server standalone deployments.
|
|
35
35
|
*/
|
|
36
36
|
export class FileSessionDriver {
|
|
37
37
|
dir;
|
|
@@ -92,7 +92,7 @@ export class FileSessionDriver {
|
|
|
92
92
|
}
|
|
93
93
|
}
|
|
94
94
|
/**
|
|
95
|
-
* Redis session driver — recommended for production
|
|
95
|
+
* Redis session driver — recommended for horizontal multi-server production deployments.
|
|
96
96
|
* Requires ioredis: npm install ioredis
|
|
97
97
|
*/
|
|
98
98
|
/**
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* @file session-manager.ts
|
|
3
3
|
* @description Server-side Session Manager for AeroJS.
|
|
4
4
|
* Provides a clean API for reading/writing session data per HTTP request.
|
|
5
|
-
*
|
|
5
|
+
* Supports authentication sessions, CSRF tokens, flash messages, and device binding.
|
|
6
6
|
*/
|
|
7
7
|
import type { AeroContext } from '../core/context.js';
|
|
8
8
|
import type { SessionDriver } from './session-driver.js';
|
|
@@ -17,7 +17,7 @@ export interface SessionConfig {
|
|
|
17
17
|
*/
|
|
18
18
|
cookieName?: string;
|
|
19
19
|
/**
|
|
20
|
-
* Session lifetime in seconds. Default:
|
|
20
|
+
* Session lifetime in seconds. Default: 86400 (24 hours).
|
|
21
21
|
*/
|
|
22
22
|
lifetime?: number;
|
|
23
23
|
/**
|
|
@@ -62,7 +62,7 @@ export declare class SessionManager {
|
|
|
62
62
|
flush(): Promise<void>;
|
|
63
63
|
/**
|
|
64
64
|
* Set or get a flash message (single-use — removed on next request).
|
|
65
|
-
*
|
|
65
|
+
* Example: "Profile updated successfully" or "Order submitted".
|
|
66
66
|
*/
|
|
67
67
|
flash(key: string, value?: unknown): Promise<unknown>;
|
|
68
68
|
/**
|
|
@@ -92,7 +92,7 @@ export declare class SessionManager {
|
|
|
92
92
|
* @example
|
|
93
93
|
* app.use(sessionPlugin({
|
|
94
94
|
* driver: new RedisSessionDriver(redisClient),
|
|
95
|
-
* lifetime:
|
|
95
|
+
* lifetime: 24 * 3600, // 24-hour lifetime
|
|
96
96
|
* cookie: { httpOnly: true, secure: true, sameSite: 'Strict' }
|
|
97
97
|
* }));
|
|
98
98
|
*/
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* @file session-manager.ts
|
|
3
3
|
* @description Server-side Session Manager for AeroJS.
|
|
4
4
|
* Provides a clean API for reading/writing session data per HTTP request.
|
|
5
|
-
*
|
|
5
|
+
* Supports authentication sessions, CSRF tokens, flash messages, and device binding.
|
|
6
6
|
*/
|
|
7
7
|
import crypto from 'node:crypto';
|
|
8
8
|
import { MemorySessionDriver } from './session-driver.js';
|
|
@@ -68,7 +68,7 @@ export class SessionManager {
|
|
|
68
68
|
}
|
|
69
69
|
/**
|
|
70
70
|
* Set or get a flash message (single-use — removed on next request).
|
|
71
|
-
*
|
|
71
|
+
* Example: "Profile updated successfully" or "Order submitted".
|
|
72
72
|
*/
|
|
73
73
|
async flash(key, value) {
|
|
74
74
|
await this.ensureLoaded();
|
|
@@ -152,7 +152,7 @@ export class SessionManager {
|
|
|
152
152
|
* @example
|
|
153
153
|
* app.use(sessionPlugin({
|
|
154
154
|
* driver: new RedisSessionDriver(redisClient),
|
|
155
|
-
* lifetime:
|
|
155
|
+
* lifetime: 24 * 3600, // 24-hour lifetime
|
|
156
156
|
* cookie: { httpOnly: true, secure: true, sameSite: 'Strict' }
|
|
157
157
|
* }));
|
|
158
158
|
*/
|
package/dist/tcp/mllp.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @file mllp.ts
|
|
3
|
-
* @description Minimal Lower Layer Protocol (MLLP) framing helper for
|
|
3
|
+
* @description Minimal Lower Layer Protocol (MLLP) framing helper for framed socket interfaces.
|
|
4
4
|
*/
|
|
5
5
|
export declare class MLLP {
|
|
6
6
|
static readonly START_BLOCK = 11;
|
package/dist/tcp/mllp.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @file mllp.ts
|
|
3
|
-
* @description Minimal Lower Layer Protocol (MLLP) framing helper for
|
|
3
|
+
* @description Minimal Lower Layer Protocol (MLLP) framing helper for framed socket interfaces.
|
|
4
4
|
*/
|
|
5
5
|
export class MLLP {
|
|
6
6
|
static START_BLOCK = 0x0b; // <VT> Vertical Tab
|
|
@@ -37,7 +37,7 @@ export class MLLP {
|
|
|
37
37
|
*/
|
|
38
38
|
static ack(controlId = '1', ackCode = 'AA') {
|
|
39
39
|
const timestamp = new Date().toISOString().replace(/[-:T.Z]/g, '').slice(0, 14);
|
|
40
|
-
const ackMsg = `MSH|^~\\&|AERO_GATEWAY|
|
|
40
|
+
const ackMsg = `MSH|^~\\&|AERO_GATEWAY|AERO_APP|CLIENT|RECEIVER|${timestamp}||ACK|${controlId}|P|2.3.1\rMSA|${ackCode}|${controlId}\r`;
|
|
41
41
|
return MLLP.wrap(ackMsg);
|
|
42
42
|
}
|
|
43
43
|
}
|
package/dist/tcp/mllp.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mllp.js","sourceRoot":"","sources":["../../src/tcp/mllp.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,OAAO,IAAI;IACR,MAAM,CAAU,WAAW,GAAG,IAAI,CAAC,CAAO,oBAAoB;IAC9D,MAAM,CAAU,SAAS,GAAG,IAAI,CAAC,CAAS,sBAAsB;IAChE,MAAM,CAAU,eAAe,GAAG,IAAI,CAAC,CAAG,uBAAuB;IAExE;;OAEG;IACI,MAAM,CAAC,IAAI,CAAC,OAAwB;QACzC,MAAM,SAAS,GAAG,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;QACxF,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,GAAG,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QACnD,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC;QAC1B,SAAS,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;QACvB,GAAG,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC;QACrC,GAAG,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,eAAe,CAAC;QAC3C,OAAO,GAAG,CAAC;IACb,CAAC;IAED;;OAEG;IACI,MAAM,CAAC,MAAM,CAAC,MAAc;QACjC,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,IAAI,MAAM,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,WAAW,EAAE,CAAC;YACnC,KAAK,GAAG,CAAC,CAAC;QACZ,CAAC;QACD,IAAI,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC;QACxB,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,IAAI,CAAC,eAAe,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,IAAI,CAAC,SAAS,EAAE,CAAC;YACvG,GAAG,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;QAC1B,CAAC;QACD,OAAO,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IACvD,CAAC;IAED;;OAEG;IACI,MAAM,CAAC,GAAG,CAAC,YAAoB,GAAG,EAAE,OAAO,GAAG,IAAI;QACvD,MAAM,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAChF,MAAM,MAAM,GAAG,
|
|
1
|
+
{"version":3,"file":"mllp.js","sourceRoot":"","sources":["../../src/tcp/mllp.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,OAAO,IAAI;IACR,MAAM,CAAU,WAAW,GAAG,IAAI,CAAC,CAAO,oBAAoB;IAC9D,MAAM,CAAU,SAAS,GAAG,IAAI,CAAC,CAAS,sBAAsB;IAChE,MAAM,CAAU,eAAe,GAAG,IAAI,CAAC,CAAG,uBAAuB;IAExE;;OAEG;IACI,MAAM,CAAC,IAAI,CAAC,OAAwB;QACzC,MAAM,SAAS,GAAG,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;QACxF,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,GAAG,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QACnD,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC;QAC1B,SAAS,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;QACvB,GAAG,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC;QACrC,GAAG,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,eAAe,CAAC;QAC3C,OAAO,GAAG,CAAC;IACb,CAAC;IAED;;OAEG;IACI,MAAM,CAAC,MAAM,CAAC,MAAc;QACjC,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,IAAI,MAAM,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,WAAW,EAAE,CAAC;YACnC,KAAK,GAAG,CAAC,CAAC;QACZ,CAAC;QACD,IAAI,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC;QACxB,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,IAAI,CAAC,eAAe,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,IAAI,CAAC,SAAS,EAAE,CAAC;YACvG,GAAG,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;QAC1B,CAAC;QACD,OAAO,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IACvD,CAAC;IAED;;OAEG;IACI,MAAM,CAAC,GAAG,CAAC,YAAoB,GAAG,EAAE,OAAO,GAAG,IAAI;QACvD,MAAM,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAChF,MAAM,MAAM,GAAG,mDAAmD,SAAS,SAAS,SAAS,iBAAiB,OAAO,IAAI,SAAS,IAAI,CAAC;QACvI,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC3B,CAAC"}
|
|
@@ -28,6 +28,12 @@ export interface RouteValidationSchema {
|
|
|
28
28
|
headers?: JSONSchemaDefinition;
|
|
29
29
|
response?: Record<string | number, JSONSchemaDefinition>;
|
|
30
30
|
}
|
|
31
|
+
/**
|
|
32
|
+
* Checks whether a regular expression pattern is safe from catastrophic backtracking (ReDoS).
|
|
33
|
+
* Rejects patterns containing nested quantifiers, repeated groups with inner quantifiers,
|
|
34
|
+
* or excessively long pattern strings.
|
|
35
|
+
*/
|
|
36
|
+
export declare function isSafePattern(pattern: string): boolean;
|
|
31
37
|
export declare function validateSchema(schema: JSONSchemaDefinition | unknown, data: unknown, path?: string): ValidationErrorDetail[];
|
|
32
38
|
export declare function compileFastSerializer(schema?: unknown): (data: unknown) => string;
|
|
33
39
|
export declare function assertValid(schema: JSONSchemaDefinition | unknown, data: unknown, target?: string): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/validation/schema.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,oBAAoB;IACnC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,oBAAoB,CAAC,CAAC;IAClD,KAAK,CAAC,EAAE,oBAAoB,CAAC;IAC7B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,OAAO,GAAG,KAAK,GAAG,MAAM,GAAG,MAAM,CAAC;IAC3C,IAAI,CAAC,EAAE,OAAO,EAAE,CAAC;CAClB;AAED,MAAM,WAAW,qBAAqB;IACpC,IAAI,CAAC,EAAE,oBAAoB,CAAC;IAC5B,KAAK,CAAC,EAAE,oBAAoB,CAAC;IAC7B,WAAW,CAAC,EAAE,oBAAoB,CAAC;IACnC,MAAM,CAAC,EAAE,oBAAoB,CAAC;IAC9B,OAAO,CAAC,EAAE,oBAAoB,CAAC;IAC/B,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,GAAG,MAAM,EAAE,oBAAoB,CAAC,CAAC;CAC1D;
|
|
1
|
+
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/validation/schema.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,oBAAoB;IACnC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,oBAAoB,CAAC,CAAC;IAClD,KAAK,CAAC,EAAE,oBAAoB,CAAC;IAC7B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,OAAO,GAAG,KAAK,GAAG,MAAM,GAAG,MAAM,CAAC;IAC3C,IAAI,CAAC,EAAE,OAAO,EAAE,CAAC;CAClB;AAED,MAAM,WAAW,qBAAqB;IACpC,IAAI,CAAC,EAAE,oBAAoB,CAAC;IAC5B,KAAK,CAAC,EAAE,oBAAoB,CAAC;IAC7B,WAAW,CAAC,EAAE,oBAAoB,CAAC;IACnC,MAAM,CAAC,EAAE,oBAAoB,CAAC;IAC9B,OAAO,CAAC,EAAE,oBAAoB,CAAC;IAC/B,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,GAAG,MAAM,EAAE,oBAAoB,CAAC,CAAC;CAC1D;AAKD;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAetD;AAeD,wBAAgB,cAAc,CAC5B,MAAM,EAAE,oBAAoB,GAAG,OAAO,EACtC,IAAI,EAAE,OAAO,EACb,IAAI,SAAS,GACZ,qBAAqB,EAAE,CAwKzB;AAED,wBAAgB,qBAAqB,CAAC,MAAM,CAAC,EAAE,OAAO,GAAG,CAAC,IAAI,EAAE,OAAO,KAAK,MAAM,CAwBjF;AAED,wBAAgB,WAAW,CAAC,MAAM,EAAE,oBAAoB,GAAG,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,SAAY,GAAG,IAAI,CAK3G"}
|
|
@@ -3,6 +3,42 @@
|
|
|
3
3
|
* @description Lightweight, zero-dependency JSON Schema validation and fast serialization engine.
|
|
4
4
|
*/
|
|
5
5
|
import { BadRequestError } from '../core/errors.js';
|
|
6
|
+
const REGEX_CACHE_LIMIT = 500;
|
|
7
|
+
const regexCache = new Map();
|
|
8
|
+
/**
|
|
9
|
+
* Checks whether a regular expression pattern is safe from catastrophic backtracking (ReDoS).
|
|
10
|
+
* Rejects patterns containing nested quantifiers, repeated groups with inner quantifiers,
|
|
11
|
+
* or excessively long pattern strings.
|
|
12
|
+
*/
|
|
13
|
+
export function isSafePattern(pattern) {
|
|
14
|
+
if (typeof pattern !== 'string' || pattern.length > 500) {
|
|
15
|
+
return false;
|
|
16
|
+
}
|
|
17
|
+
// Check for nested quantifiers: (x+)+, (x*)+, (x+)*, (x*)*, (x{1,})+
|
|
18
|
+
const nestedQuantifiers = /\((?:[^()]*[+*]|\S*\{\d+,?\d*\})\)[+*]|\([^)]*[+*]\)\{\d+,?\d*\}/;
|
|
19
|
+
if (nestedQuantifiers.test(pattern)) {
|
|
20
|
+
return false;
|
|
21
|
+
}
|
|
22
|
+
// Check for repeated groups containing alternations with repetition: (a|aa)+, (a+|b+)+
|
|
23
|
+
const repeatedAlternation = /\((?:[^()|]+\|)+[^()]+\)[+*]/;
|
|
24
|
+
if (repeatedAlternation.test(pattern)) {
|
|
25
|
+
return false;
|
|
26
|
+
}
|
|
27
|
+
return true;
|
|
28
|
+
}
|
|
29
|
+
function getCachedRegExp(pattern) {
|
|
30
|
+
let reg = regexCache.get(pattern);
|
|
31
|
+
if (!reg) {
|
|
32
|
+
if (regexCache.size >= REGEX_CACHE_LIMIT) {
|
|
33
|
+
const firstKey = regexCache.keys().next().value;
|
|
34
|
+
if (firstKey)
|
|
35
|
+
regexCache.delete(firstKey);
|
|
36
|
+
}
|
|
37
|
+
reg = new RegExp(pattern);
|
|
38
|
+
regexCache.set(pattern, reg);
|
|
39
|
+
}
|
|
40
|
+
return reg;
|
|
41
|
+
}
|
|
6
42
|
export function validateSchema(schema, data, path = 'root') {
|
|
7
43
|
if (!schema || typeof schema !== 'object') {
|
|
8
44
|
return [];
|
|
@@ -63,14 +99,32 @@ export function validateSchema(schema, data, path = 'root') {
|
|
|
63
99
|
});
|
|
64
100
|
}
|
|
65
101
|
if (typeof s.pattern === 'string') {
|
|
66
|
-
|
|
67
|
-
if (!reg.test(data)) {
|
|
102
|
+
if (!isSafePattern(s.pattern)) {
|
|
68
103
|
errors.push({
|
|
69
104
|
keyword: 'pattern',
|
|
70
105
|
dataPath: path,
|
|
71
|
-
message:
|
|
106
|
+
message: 'Pattern rejected: potentially unsafe regular expression (ReDoS risk)',
|
|
72
107
|
});
|
|
73
108
|
}
|
|
109
|
+
else {
|
|
110
|
+
try {
|
|
111
|
+
const reg = getCachedRegExp(s.pattern);
|
|
112
|
+
if (!reg.test(data)) {
|
|
113
|
+
errors.push({
|
|
114
|
+
keyword: 'pattern',
|
|
115
|
+
dataPath: path,
|
|
116
|
+
message: `String does not match pattern ${s.pattern}`,
|
|
117
|
+
});
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
catch {
|
|
121
|
+
errors.push({
|
|
122
|
+
keyword: 'pattern',
|
|
123
|
+
dataPath: path,
|
|
124
|
+
message: `Invalid regular expression pattern: ${s.pattern}`,
|
|
125
|
+
});
|
|
126
|
+
}
|
|
127
|
+
}
|
|
74
128
|
}
|
|
75
129
|
if (s.format === 'email') {
|
|
76
130
|
const emailRegex = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/validation/schema.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AA+BpD,MAAM,UAAU,cAAc,CAC5B,MAAsC,EACtC,IAAa,EACb,IAAI,GAAG,MAAM;IAEb,IAAI,CAAC,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;QAC1C,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,MAAM,CAAC,GAAG,MAA8B,CAAC;IACzC,MAAM,MAAM,GAA4B,EAAE,CAAC;IAE3C,qBAAqB;IACrB,IAAI,OAAO,CAAC,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC/B,MAAM,YAAY,GAAG,CAAC,CAAC,IAAI,CAAC;QAC5B,MAAM,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;YACpC,CAAC,CAAC,OAAO;YACT,CAAC,CAAC,IAAI,KAAK,IAAI;gBACf,CAAC,CAAC,MAAM;gBACR,CAAC,CAAC,OAAO,IAAI,CAAC;QAEhB,IAAI,YAAY,KAAK,SAAS,EAAE,CAAC;YAC/B,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC;gBACxD,MAAM,CAAC,IAAI,CAAC;oBACV,OAAO,EAAE,MAAM;oBACf,QAAQ,EAAE,IAAI;oBACd,OAAO,EAAE,8BAA8B,UAAU,EAAE;iBACpD,CAAC,CAAC;gBACH,OAAO,MAAM,CAAC;YAChB,CAAC;QACH,CAAC;aAAM,IAAI,UAAU,KAAK,YAAY,EAAE,CAAC;YACvC,MAAM,CAAC,IAAI,CAAC;gBACV,OAAO,EAAE,MAAM;gBACf,QAAQ,EAAE,IAAI;gBACd,OAAO,EAAE,YAAY,YAAY,cAAc,UAAU,EAAE;aAC5D,CAAC,CAAC;YACH,OAAO,MAAM,CAAC;QAChB,CAAC;IACH,CAAC;IAED,qBAAqB;IACrB,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;QAC1B,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;YAC3B,MAAM,CAAC,IAAI,CAAC;gBACV,OAAO,EAAE,MAAM;gBACf,QAAQ,EAAE,IAAI;gBACd,OAAO,EAAE,yBAAyB,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE;aAC3D,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,wBAAwB;IACxB,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC7B,IAAI,OAAO,CAAC,CAAC,SAAS,KAAK,QAAQ,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,SAAS,EAAE,CAAC;YACjE,MAAM,CAAC,IAAI,CAAC;gBACV,OAAO,EAAE,WAAW;gBACpB,QAAQ,EAAE,IAAI;gBACd,OAAO,EAAE,4BAA4B,CAAC,CAAC,SAAS,EAAE;aACnD,CAAC,CAAC;QACL,CAAC;QACD,IAAI,OAAO,CAAC,CAAC,SAAS,KAAK,QAAQ,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,SAAS,EAAE,CAAC;YACjE,MAAM,CAAC,IAAI,CAAC;gBACV,OAAO,EAAE,WAAW;gBACpB,QAAQ,EAAE,IAAI;gBACd,OAAO,EAAE,4BAA4B,CAAC,CAAC,SAAS,EAAE;aACnD,CAAC,CAAC;QACL,CAAC;QACD,IAAI,OAAO,CAAC,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;YAClC,MAAM,
|
|
1
|
+
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/validation/schema.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@shohaghinfo/aerojs",
|
|
3
|
-
"version": "0.4.
|
|
3
|
+
"version": "0.4.2",
|
|
4
4
|
"description": "A minimal, blazing-fast, zero-dependency full-stack web framework for Node.js — supporting React, Vue 3, Inertia.js, and SSR monoliths.",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|