@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.
Files changed (89) hide show
  1. package/AGENTS.md +17 -16
  2. package/README.md +117 -44
  3. package/dist/audit/audit-trail.d.ts +5 -6
  4. package/dist/audit/audit-trail.d.ts.map +1 -1
  5. package/dist/audit/audit-trail.js +5 -6
  6. package/dist/audit/audit-trail.js.map +1 -1
  7. package/dist/auth/auth-manager.d.ts +5 -5
  8. package/dist/auth/auth-manager.js +5 -5
  9. package/dist/auth/bouncer.d.ts +8 -15
  10. package/dist/auth/bouncer.d.ts.map +1 -1
  11. package/dist/auth/bouncer.js +10 -17
  12. package/dist/auth/bouncer.js.map +1 -1
  13. package/dist/auth/guards/api-token-guard.d.ts +2 -4
  14. package/dist/auth/guards/api-token-guard.d.ts.map +1 -1
  15. package/dist/auth/guards/api-token-guard.js +2 -4
  16. package/dist/auth/guards/api-token-guard.js.map +1 -1
  17. package/dist/auth/guards/jwt-guard.d.ts +3 -4
  18. package/dist/auth/guards/jwt-guard.d.ts.map +1 -1
  19. package/dist/auth/guards/jwt-guard.js +2 -3
  20. package/dist/auth/guards/jwt-guard.js.map +1 -1
  21. package/dist/auth/guards/session-guard.d.ts +2 -4
  22. package/dist/auth/guards/session-guard.d.ts.map +1 -1
  23. package/dist/auth/guards/session-guard.js +2 -4
  24. package/dist/auth/guards/session-guard.js.map +1 -1
  25. package/dist/auth/policy.js +1 -1
  26. package/dist/auth/policy.js.map +1 -1
  27. package/dist/cli/commands/make.js +5 -5
  28. package/dist/cli/runner.js +1 -1
  29. package/dist/core/application.d.ts +4 -0
  30. package/dist/core/application.d.ts.map +1 -1
  31. package/dist/core/application.js +29 -3
  32. package/dist/core/application.js.map +1 -1
  33. package/dist/core/context.d.ts +25 -0
  34. package/dist/core/context.d.ts.map +1 -1
  35. package/dist/core/context.js +43 -0
  36. package/dist/core/context.js.map +1 -1
  37. package/dist/database/drizzle.d.ts +4 -1
  38. package/dist/database/drizzle.d.ts.map +1 -1
  39. package/dist/database/drizzle.js +1 -1
  40. package/dist/database/drizzle.js.map +1 -1
  41. package/dist/database/index.d.ts +1 -0
  42. package/dist/database/index.d.ts.map +1 -1
  43. package/dist/database/index.js +1 -0
  44. package/dist/database/index.js.map +1 -1
  45. package/dist/database/knex.d.ts.map +1 -1
  46. package/dist/database/knex.js +1 -0
  47. package/dist/database/knex.js.map +1 -1
  48. package/dist/database/model-hooks.d.ts +5 -5
  49. package/dist/database/model-hooks.js +11 -11
  50. package/dist/database/model.d.ts +43 -59
  51. package/dist/database/model.d.ts.map +1 -1
  52. package/dist/database/model.js +62 -68
  53. package/dist/database/model.js.map +1 -1
  54. package/dist/database/prisma.d.ts +1 -1
  55. package/dist/database/prisma.d.ts.map +1 -1
  56. package/dist/database/prisma.js +3 -2
  57. package/dist/database/prisma.js.map +1 -1
  58. package/dist/database/query-builder.d.ts +11 -7
  59. package/dist/database/query-builder.d.ts.map +1 -1
  60. package/dist/database/query-builder.js +50 -21
  61. package/dist/database/query-builder.js.map +1 -1
  62. package/dist/database/sqlite.d.ts +26 -0
  63. package/dist/database/sqlite.d.ts.map +1 -0
  64. package/dist/database/sqlite.js +96 -0
  65. package/dist/database/sqlite.js.map +1 -0
  66. package/dist/events/event-bus.d.ts +47 -75
  67. package/dist/events/event-bus.d.ts.map +1 -1
  68. package/dist/events/event-bus.js +14 -23
  69. package/dist/events/event-bus.js.map +1 -1
  70. package/dist/index.d.ts +2 -2
  71. package/dist/index.d.ts.map +1 -1
  72. package/dist/index.js +5 -5
  73. package/dist/index.js.map +1 -1
  74. package/dist/notifications/notification-manager.d.ts +1 -1
  75. package/dist/notifications/notification-manager.js +1 -1
  76. package/dist/scheduler/scheduler.d.ts +5 -5
  77. package/dist/scheduler/scheduler.js +5 -5
  78. package/dist/session/session-driver.d.ts +2 -2
  79. package/dist/session/session-driver.js +2 -2
  80. package/dist/session/session-manager.d.ts +4 -4
  81. package/dist/session/session-manager.js +3 -3
  82. package/dist/tcp/mllp.d.ts +1 -1
  83. package/dist/tcp/mllp.js +2 -2
  84. package/dist/tcp/mllp.js.map +1 -1
  85. package/dist/validation/schema.d.ts +6 -0
  86. package/dist/validation/schema.d.ts.map +1 -1
  87. package/dist/validation/schema.js +57 -3
  88. package/dist/validation/schema.js.map +1 -1
  89. 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
- // ─── Hospital-Grade Enterprise Modules ───────────────────────────────────────
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
- // Hospital Domain Events
69
- PatientAdmittedEvent, LabResultReadyEvent, PaymentReceivedEvent, CodeBlueTriggeredEvent, ShiftClosedEvent, LowStockAlertEvent, } from './events/event-bus.js';
70
- // Cron Scheduler (Bank Reco, BMDC Alerts, Payroll triggers)
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/patient model.
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/patient model.
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
- * Hospital use: Daily bank reconciliation, BMDC license expiry alerts,
5
- * shift auto-close, monthly doctor settlement, dividend calculation trigger.
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('DailyBankReco')
56
+ * Scheduler.define('DailyReport')
57
57
  * .cron('0 23 * * *')
58
- * .description('Daily bank reconciliation after cashiers close')
58
+ * .description('Daily report generation and metrics summary')
59
59
  * .run(async () => {
60
- * await BankRecoService.runDailyReco();
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
- * Hospital use: Daily bank reconciliation, BMDC license expiry alerts,
5
- * shift auto-close, monthly doctor settlement, dividend calculation trigger.
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('DailyBankReco')
104
+ * Scheduler.define('DailyReport')
105
105
  * .cron('0 23 * * *')
106
- * .description('Daily bank reconciliation after cashiers close')
106
+ * .description('Daily report generation and metrics summary')
107
107
  * .run(async () => {
108
- * await BankRecoService.runDailyReco();
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 hospital deployments.
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 hospital deployments.
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 hospital deployments.
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 hospital deployments.
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
- * Hospital use: Cashier shift sessions, CSRF tokens, flash messages, terminal binding.
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: 28800 (8 hours = one hospital shift).
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
- * Hospital use: "Shift closed successfully" message after cashier close.
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: 8 * 3600, // 8-hour hospital shift
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
- * Hospital use: Cashier shift sessions, CSRF tokens, flash messages, terminal binding.
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
- * Hospital use: "Shift closed successfully" message after cashier close.
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: 8 * 3600, // 8-hour hospital shift
155
+ * lifetime: 24 * 3600, // 24-hour lifetime
156
156
  * cookie: { httpOnly: true, secure: true, sameSite: 'Strict' }
157
157
  * }));
158
158
  */
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * @file mllp.ts
3
- * @description Minimal Lower Layer Protocol (MLLP) framing helper for HL7 clinical interfaces.
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 HL7 clinical interfaces.
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|AERO_HOSPITAL|LAB_ANALYZER|LAB|${timestamp}||ACK|${controlId}|P|2.3.1\rMSA|${ackCode}|${controlId}\r`;
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
  }
@@ -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,yDAAyD,SAAS,SAAS,SAAS,iBAAiB,OAAO,IAAI,SAAS,IAAI,CAAC;QAC7I,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC3B,CAAC"}
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;AAED,wBAAgB,cAAc,CAC5B,MAAM,EAAE,oBAAoB,GAAG,OAAO,EACtC,IAAI,EAAE,OAAO,EACb,IAAI,SAAS,GACZ,qBAAqB,EAAE,CAwJzB;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"}
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
- const reg = new RegExp(s.pattern);
67
- if (!reg.test(data)) {
102
+ if (!isSafePattern(s.pattern)) {
68
103
  errors.push({
69
104
  keyword: 'pattern',
70
105
  dataPath: path,
71
- message: `String does not match pattern ${s.pattern}`,
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":"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"}
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,iBAAiB,GAAG,GAAG,CAAC;AAC9B,MAAM,UAAU,GAAG,IAAI,GAAG,EAAkB,CAAC;AAE7C;;;;GAIG;AACH,MAAM,UAAU,aAAa,CAAC,OAAe;IAC3C,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,CAAC,MAAM,GAAG,GAAG,EAAE,CAAC;QACxD,OAAO,KAAK,CAAC;IACf,CAAC;IACD,qEAAqE;IACrE,MAAM,iBAAiB,GAAG,kEAAkE,CAAC;IAC7F,IAAI,iBAAiB,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;QACpC,OAAO,KAAK,CAAC;IACf,CAAC;IACD,uFAAuF;IACvF,MAAM,mBAAmB,GAAG,8BAA8B,CAAC;IAC3D,IAAI,mBAAmB,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;QACtC,OAAO,KAAK,CAAC;IACf,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,eAAe,CAAC,OAAe;IACtC,IAAI,GAAG,GAAG,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IAClC,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,IAAI,UAAU,CAAC,IAAI,IAAI,iBAAiB,EAAE,CAAC;YACzC,MAAM,QAAQ,GAAG,UAAU,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC;YAChD,IAAI,QAAQ;gBAAE,UAAU,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAC5C,CAAC;QACD,GAAG,GAAG,IAAI,MAAM,CAAC,OAAO,CAAC,CAAC;QAC1B,UAAU,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;IAC/B,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,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,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;gBAC9B,MAAM,CAAC,IAAI,CAAC;oBACV,OAAO,EAAE,SAAS;oBAClB,QAAQ,EAAE,IAAI;oBACd,OAAO,EAAE,sEAAsE;iBAChF,CAAC,CAAC;YACL,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC;oBACH,MAAM,GAAG,GAAG,eAAe,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;oBACvC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;wBACpB,MAAM,CAAC,IAAI,CAAC;4BACV,OAAO,EAAE,SAAS;4BAClB,QAAQ,EAAE,IAAI;4BACd,OAAO,EAAE,iCAAiC,CAAC,CAAC,OAAO,EAAE;yBACtD,CAAC,CAAC;oBACL,CAAC;gBACH,CAAC;gBAAC,MAAM,CAAC;oBACP,MAAM,CAAC,IAAI,CAAC;wBACV,OAAO,EAAE,SAAS;wBAClB,QAAQ,EAAE,IAAI;wBACd,OAAO,EAAE,uCAAuC,CAAC,CAAC,OAAO,EAAE;qBAC5D,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;QACH,CAAC;QACD,IAAI,CAAC,CAAC,MAAM,KAAK,OAAO,EAAE,CAAC;YACzB,MAAM,UAAU,GAAG,4BAA4B,CAAC;YAChD,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC3B,MAAM,CAAC,IAAI,CAAC;oBACV,OAAO,EAAE,QAAQ;oBACjB,QAAQ,EAAE,IAAI;oBACd,OAAO,EAAE,sCAAsC;iBAChD,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QACD,IAAI,CAAC,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;YACxB,MAAM,SAAS,GAAG,4EAA4E,CAAC;YAC/F,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC1B,MAAM,CAAC,IAAI,CAAC;oBACV,OAAO,EAAE,QAAQ;oBACjB,QAAQ,EAAE,IAAI;oBACd,OAAO,EAAE,6BAA6B;iBACvC,CAAC,CAAC;YACL,CAAC;QACH,CAAC;IACH,CAAC;IAED,wBAAwB;IACxB,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC7B,IAAI,OAAO,CAAC,CAAC,OAAO,KAAK,QAAQ,IAAI,IAAI,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC;YACtD,MAAM,CAAC,IAAI,CAAC;gBACV,OAAO,EAAE,SAAS;gBAClB,QAAQ,EAAE,IAAI;gBACd,OAAO,EAAE,oBAAoB,CAAC,CAAC,OAAO,EAAE;aACzC,CAAC,CAAC;QACL,CAAC;QACD,IAAI,OAAO,CAAC,CAAC,OAAO,KAAK,QAAQ,IAAI,IAAI,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC;YACtD,MAAM,CAAC,IAAI,CAAC;gBACV,OAAO,EAAE,SAAS;gBAClB,QAAQ,EAAE,IAAI;gBACd,OAAO,EAAE,oBAAoB,CAAC,CAAC,OAAO,EAAE;aACzC,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,wBAAwB;IACxB,IAAI,IAAI,KAAK,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;QACtE,MAAM,OAAO,GAAG,IAA+B,CAAC;QAEhD,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC9B,KAAK,MAAM,KAAK,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC;gBAC/B,IAAI,OAAO,CAAC,KAAK,CAAC,KAAK,SAAS,EAAE,CAAC;oBACjC,MAAM,CAAC,IAAI,CAAC;wBACV,OAAO,EAAE,UAAU;wBACnB,QAAQ,EAAE,GAAG,IAAI,IAAI,KAAK,EAAE;wBAC5B,OAAO,EAAE,8BAA8B,KAAK,GAAG;qBAChD,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;QACH,CAAC;QAED,IAAI,CAAC,CAAC,UAAU,IAAI,OAAO,CAAC,CAAC,UAAU,KAAK,QAAQ,EAAE,CAAC;YACrD,KAAK,MAAM,CAAC,QAAQ,EAAE,UAAU,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC,EAAE,CAAC;gBAClE,IAAI,OAAO,CAAC,QAAQ,CAAC,KAAK,SAAS,EAAE,CAAC;oBACpC,MAAM,UAAU,GAAG,cAAc,CAC/B,UAAU,EACV,OAAO,CAAC,QAAQ,CAAC,EACjB,GAAG,IAAI,IAAI,QAAQ,EAAE,CACtB,CAAC;oBACF,MAAM,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC,CAAC;gBAC7B,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,uBAAuB;IACvB,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC;QACnC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACrC,MAAM,UAAU,GAAG,cAAc,CAAC,CAAC,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC;YACrE,MAAM,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC,CAAC;QAC7B,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,MAAgB;IACpD,IAAI,CAAC,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;QAC1C,OAAO,CAAC,IAAa,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IACjD,CAAC;IAED,MAAM,CAAC,GAAG,MAAiC,CAAC;IAC5C,IAAI,CAAC,CAAC,MAAM,CAAC,KAAK,QAAQ,IAAI,CAAC,CAAC,YAAY,CAAC,IAAI,OAAO,CAAC,CAAC,YAAY,CAAC,KAAK,QAAQ,EAAE,CAAC;QACrF,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,YAAY,CAA4B,CAAC,CAAC;QACtE,OAAO,CAAC,IAAa,EAAE,EAAE;YACvB,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;gBAC9C,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;YAC9B,CAAC;YACD,MAAM,GAAG,GAAG,IAA+B,CAAC;YAC5C,MAAM,KAAK,GAAa,EAAE,CAAC;YAC3B,KAAK,MAAM,GAAG,IAAI,KAAK,EAAE,CAAC;gBACxB,IAAI,GAAG,CAAC,GAAG,CAAC,KAAK,SAAS,EAAE,CAAC;oBAC3B,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;gBACnE,CAAC;YACH,CAAC;YACD,OAAO,IAAI,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;QAChC,CAAC,CAAC;IACJ,CAAC;IAED,OAAO,CAAC,IAAa,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;AACjD,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,MAAsC,EAAE,IAAa,EAAE,MAAM,GAAG,SAAS;IACnG,MAAM,MAAM,GAAG,cAAc,CAAC,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;IACpD,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACtB,MAAM,IAAI,eAAe,CAAC,GAAG,MAAM,oBAAoB,EAAE,kBAAkB,EAAE,MAAM,CAAC,CAAC;IACvF,CAAC;AACH,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@shohaghinfo/aerojs",
3
- "version": "0.4.0",
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",