@asenajs/asena 0.4.0 → 0.6.0-beta.0

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 (126) hide show
  1. package/dist/index.d.ts +0 -1
  2. package/dist/index.js +0 -1
  3. package/dist/index.js.map +1 -1
  4. package/dist/lib/adapter/AsenaAdapter.js.map +1 -1
  5. package/dist/lib/adapter/AsenaWebsocketAdapter.js.map +1 -1
  6. package/dist/lib/ioc/CircularDependencyDetector.js.map +1 -1
  7. package/dist/lib/ioc/Container.d.ts +7 -0
  8. package/dist/lib/ioc/Container.js +25 -6
  9. package/dist/lib/ioc/Container.js.map +1 -1
  10. package/dist/lib/ioc/CoreContainer.d.ts +1 -1
  11. package/dist/lib/ioc/CoreContainer.js +12 -1
  12. package/dist/lib/ioc/CoreContainer.js.map +1 -1
  13. package/dist/lib/ioc/IocEngine.js +0 -2
  14. package/dist/lib/ioc/IocEngine.js.map +1 -1
  15. package/dist/lib/ioc/component/componentUtils.js.map +1 -1
  16. package/dist/lib/ioc/component/decorators/Inject.d.ts +24 -4
  17. package/dist/lib/ioc/component/decorators/Inject.js +44 -7
  18. package/dist/lib/ioc/component/decorators/Inject.js.map +1 -1
  19. package/dist/lib/ioc/constants/ComponentConstants.d.ts +2 -0
  20. package/dist/lib/ioc/constants/ComponentConstants.js +3 -0
  21. package/dist/lib/ioc/constants/ComponentConstants.js.map +1 -1
  22. package/dist/lib/ioc/types/ICoreServiceNamesType.d.ts +4 -0
  23. package/dist/lib/ioc/types/ICoreServiceNamesType.js +6 -0
  24. package/dist/lib/ioc/types/ICoreServiceNamesType.js.map +1 -1
  25. package/dist/lib/ioc/types/decorators/ComponentType.d.ts +2 -1
  26. package/dist/lib/ioc/types/decorators/ComponentType.js +1 -0
  27. package/dist/lib/ioc/types/decorators/ComponentType.js.map +1 -1
  28. package/dist/lib/server/AsenaServer.d.ts +1 -0
  29. package/dist/lib/server/AsenaServer.js +16 -10
  30. package/dist/lib/server/AsenaServer.js.map +1 -1
  31. package/dist/lib/server/AsenaServerFactory.js +8 -0
  32. package/dist/lib/server/AsenaServerFactory.js.map +1 -1
  33. package/dist/lib/server/decorators/components/Controller.js +1 -2
  34. package/dist/lib/server/decorators/components/Controller.js.map +1 -1
  35. package/dist/lib/server/decorators/components/EventService.d.ts +37 -0
  36. package/dist/lib/server/decorators/components/EventService.js +47 -0
  37. package/dist/lib/server/decorators/components/EventService.js.map +1 -0
  38. package/dist/lib/server/decorators/components/Middleware.js +1 -2
  39. package/dist/lib/server/decorators/components/Middleware.js.map +1 -1
  40. package/dist/lib/server/decorators/components/Schedule.js +1 -2
  41. package/dist/lib/server/decorators/components/Schedule.js.map +1 -1
  42. package/dist/lib/server/decorators/components/StaticServe.js +1 -1
  43. package/dist/lib/server/decorators/components/StaticServe.js.map +1 -1
  44. package/dist/lib/server/decorators/components/WebSocket.js +1 -2
  45. package/dist/lib/server/decorators/components/WebSocket.js.map +1 -1
  46. package/dist/lib/server/decorators/components/index.d.ts +1 -0
  47. package/dist/lib/server/decorators/components/index.js +1 -0
  48. package/dist/lib/server/decorators/components/index.js.map +1 -1
  49. package/dist/lib/server/decorators/index.d.ts +1 -0
  50. package/dist/lib/server/decorators/index.js +1 -0
  51. package/dist/lib/server/decorators/index.js.map +1 -1
  52. package/dist/lib/server/event/EventDispatchService.d.ts +104 -0
  53. package/dist/lib/server/event/EventDispatchService.js +203 -0
  54. package/dist/lib/server/event/EventDispatchService.js.map +1 -0
  55. package/dist/lib/server/event/EventEmitter.d.ts +67 -0
  56. package/dist/lib/server/event/EventEmitter.js +88 -0
  57. package/dist/lib/server/event/EventEmitter.js.map +1 -0
  58. package/dist/lib/server/event/EventService.d.ts +5 -0
  59. package/dist/lib/server/event/EventService.js +6 -0
  60. package/dist/lib/server/event/EventService.js.map +1 -0
  61. package/dist/lib/server/event/decorators/On.d.ts +38 -0
  62. package/dist/lib/server/event/decorators/On.js +56 -0
  63. package/dist/lib/server/event/decorators/On.js.map +1 -0
  64. package/dist/lib/server/event/decorators/index.d.ts +1 -0
  65. package/dist/lib/server/event/decorators/index.js +2 -0
  66. package/dist/lib/server/event/decorators/index.js.map +1 -0
  67. package/dist/lib/server/event/emitter.d.ts +21 -0
  68. package/dist/lib/server/event/emitter.js +25 -0
  69. package/dist/lib/server/event/emitter.js.map +1 -0
  70. package/dist/lib/server/event/eventPatternMatcher.d.ts +24 -0
  71. package/dist/lib/server/event/eventPatternMatcher.js +112 -0
  72. package/dist/lib/server/event/eventPatternMatcher.js.map +1 -0
  73. package/dist/lib/server/event/index.d.ts +6 -0
  74. package/dist/lib/server/event/index.js +12 -0
  75. package/dist/lib/server/event/index.js.map +1 -0
  76. package/dist/lib/server/event/types.d.ts +70 -0
  77. package/dist/lib/server/event/types.js +2 -0
  78. package/dist/lib/server/event/types.js.map +1 -0
  79. package/dist/lib/server/index.d.ts +0 -1
  80. package/dist/lib/server/index.js +0 -1
  81. package/dist/lib/server/index.js.map +1 -1
  82. package/dist/lib/server/messaging/Ulak.d.ts +224 -0
  83. package/dist/lib/server/messaging/Ulak.js +351 -0
  84. package/dist/lib/server/messaging/Ulak.js.map +1 -0
  85. package/dist/lib/server/messaging/index.d.ts +8 -0
  86. package/dist/lib/server/messaging/index.js +9 -0
  87. package/dist/lib/server/messaging/index.js.map +1 -0
  88. package/dist/lib/server/messaging/types.d.ts +73 -0
  89. package/dist/lib/server/messaging/types.js +35 -0
  90. package/dist/lib/server/messaging/types.js.map +1 -0
  91. package/dist/lib/server/src/services/PrepareConfigService.js.map +1 -1
  92. package/dist/lib/server/src/services/PrepareEventService.d.ts +40 -0
  93. package/dist/lib/server/src/services/PrepareEventService.js +103 -0
  94. package/dist/lib/server/src/services/PrepareEventService.js.map +1 -0
  95. package/dist/lib/server/src/services/PrepareMiddlewareService.js +1 -2
  96. package/dist/lib/server/src/services/PrepareMiddlewareService.js.map +1 -1
  97. package/dist/lib/server/src/services/PrepareStaticServeConfigService.js +3 -3
  98. package/dist/lib/server/src/services/PrepareStaticServeConfigService.js.map +1 -1
  99. package/dist/lib/server/src/services/PrepareValidatorService.js.map +1 -1
  100. package/dist/lib/server/src/services/PrepareWebsocketService.d.ts +4 -3
  101. package/dist/lib/server/src/services/PrepareWebsocketService.js +11 -4
  102. package/dist/lib/server/src/services/PrepareWebsocketService.js.map +1 -1
  103. package/dist/lib/server/web/decorators/http.base.d.ts +1 -1
  104. package/dist/lib/server/web/decorators/http.base.js +1 -1
  105. package/dist/lib/server/web/decorators/http.base.js.map +1 -1
  106. package/dist/lib/server/web/helper/middlewareHelper.d.ts +1 -1
  107. package/dist/lib/server/web/helper/middlewareHelper.js +1 -1
  108. package/dist/lib/server/web/helper/middlewareHelper.js.map +1 -1
  109. package/dist/lib/server/web/middleware/AsenaMiddlewareService.js.map +1 -1
  110. package/dist/lib/server/web/middleware/AsenaStaticServeService.d.ts +1 -1
  111. package/dist/lib/server/web/middleware/AsenaStaticServeService.js.map +1 -1
  112. package/dist/lib/server/web/websocket/AsenaSocket.d.ts +237 -4
  113. package/dist/lib/server/web/websocket/AsenaSocket.js +234 -32
  114. package/dist/lib/server/web/websocket/AsenaSocket.js.map +1 -1
  115. package/dist/lib/server/web/websocket/AsenaWebSocketServer.d.ts +3 -16
  116. package/dist/lib/server/web/websocket/AsenaWebSocketServer.js +3 -20
  117. package/dist/lib/server/web/websocket/AsenaWebSocketServer.js.map +1 -1
  118. package/dist/lib/server/web/websocket/AsenaWebSocketService.d.ts +0 -13
  119. package/dist/lib/server/web/websocket/AsenaWebSocketService.js +1 -21
  120. package/dist/lib/server/web/websocket/AsenaWebSocketService.js.map +1 -1
  121. package/dist/lib/utils/index.d.ts +2 -0
  122. package/dist/lib/utils/index.js +3 -0
  123. package/dist/lib/utils/index.js.map +1 -0
  124. package/dist/lib/utils/typedMetadata.js +0 -1
  125. package/dist/lib/utils/typedMetadata.js.map +1 -1
  126. package/package.json +32 -15
@@ -2,8 +2,8 @@ import type { Server } from 'bun';
2
2
  /**
3
3
  * AsenaWebSocketServer class handles WebSocket server operations and message broadcasting
4
4
  *
5
- * This class provides a wrapper around Bun's WebSocket Server implementation with additional
6
- * functionality for managing topics and message publishing.
5
+ * This class provides a thin wrapper around Bun's WebSocket Server implementation.
6
+ * All WebSocket services share a single instance of this wrapper for efficiency.
7
7
  */
8
8
  export declare class AsenaWebSocketServer {
9
9
  /**
@@ -11,19 +11,12 @@ export declare class AsenaWebSocketServer {
11
11
  * @private
12
12
  */
13
13
  private server;
14
- /**
15
- * The topic identifier for this WebSocket server
16
- * @private
17
- * @readonly
18
- */
19
- private readonly topic;
20
14
  /**
21
15
  * Creates a new instance of AsenaWebSocketServer
22
16
  *
23
17
  * @param server - The Bun Server instance to use
24
- * @param topic - The topic identifier for this WebSocket server
25
18
  */
26
- constructor(server: Server<any>, topic: string);
19
+ constructor(server: Server<any>);
27
20
  /**
28
21
  * Publishes data to a specific namespace
29
22
  *
@@ -39,10 +32,4 @@ export declare class AsenaWebSocketServer {
39
32
  * @param data - The data to publish
40
33
  */
41
34
  in(nameSpace: string, data?: any): void;
42
- /**
43
- * Gets the current number of WebSocket subscribers for this server's topic
44
- *
45
- * @returns The number of active WebSocket connections
46
- */
47
- get websocketCount(): number;
48
35
  }
@@ -1,9 +1,8 @@
1
- // TODO: this section needs to rework
2
1
  /**
3
2
  * AsenaWebSocketServer class handles WebSocket server operations and message broadcasting
4
3
  *
5
- * This class provides a wrapper around Bun's WebSocket Server implementation with additional
6
- * functionality for managing topics and message publishing.
4
+ * This class provides a thin wrapper around Bun's WebSocket Server implementation.
5
+ * All WebSocket services share a single instance of this wrapper for efficiency.
7
6
  */
8
7
  export class AsenaWebSocketServer {
9
8
  /**
@@ -11,21 +10,13 @@ export class AsenaWebSocketServer {
11
10
  * @private
12
11
  */
13
12
  server;
14
- /**
15
- * The topic identifier for this WebSocket server
16
- * @private
17
- * @readonly
18
- */
19
- topic;
20
13
  /**
21
14
  * Creates a new instance of AsenaWebSocketServer
22
15
  *
23
16
  * @param server - The Bun Server instance to use
24
- * @param topic - The topic identifier for this WebSocket server
25
17
  */
26
- constructor(server, topic) {
18
+ constructor(server) {
27
19
  this.server = server;
28
- this.topic = topic;
29
20
  }
30
21
  /**
31
22
  * Publishes data to a specific namespace
@@ -55,13 +46,5 @@ export class AsenaWebSocketServer {
55
46
  in(nameSpace, data) {
56
47
  this.to(nameSpace, data);
57
48
  }
58
- /**
59
- * Gets the current number of WebSocket subscribers for this server's topic
60
- *
61
- * @returns The number of active WebSocket connections
62
- */
63
- get websocketCount() {
64
- return this.server.subscriberCount(this.topic);
65
- }
66
49
  }
67
50
  //# sourceMappingURL=AsenaWebSocketServer.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"AsenaWebSocketServer.js","sourceRoot":"","sources":["../../../../../lib/server/web/websocket/AsenaWebSocketServer.ts"],"names":[],"mappings":"AAEA,qCAAqC;AACrC;;;;;GAKG;AACH,MAAM,OAAO,oBAAoB;IAE/B;;;OAGG;IACK,MAAM,CAAc;IAE5B;;;;OAIG;IACc,KAAK,CAAS;IAE/B;;;;;OAKG;IACH,YAAmB,MAAmB,EAAE,KAAa;QACnD,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACrB,CAAC;IAED;;;;;;OAMG;IACI,EAAE,CAAC,SAAiB,EAAE,IAAU;QACrC,IAAI,IAAI,YAAY,WAAW,IAAI,IAAI,YAAY,QAAQ,IAAI,IAAI,YAAY,iBAAiB,EAAE,CAAC;YACjG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;YACrC,OAAO;QACT,CAAC;QAED,IAAI,CAAC,OAAO,IAAI,KAAK,QAAQ,IAAI,OAAO,IAAI,KAAK,QAAQ,CAAC,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;YAC5E,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;QACvD,CAAC;aAAM,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YAC3E,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;QAC/C,CAAC;IACH,CAAC;IAED;;;;;OAKG;IACI,EAAE,CAAC,SAAiB,EAAE,IAAU;QACrC,IAAI,CAAC,EAAE,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;IAC3B,CAAC;IAED;;;;OAIG;IACH,IAAW,cAAc;QACvB,OAAO,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACjD,CAAC;CAEF"}
1
+ {"version":3,"file":"AsenaWebSocketServer.js","sourceRoot":"","sources":["../../../../../lib/server/web/websocket/AsenaWebSocketServer.ts"],"names":[],"mappings":"AAEA;;;;;GAKG;AACH,MAAM,OAAO,oBAAoB;IAC/B;;;OAGG;IACK,MAAM,CAAc;IAE5B;;;;OAIG;IACH,YAAmB,MAAmB;QACpC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAED;;;;;;OAMG;IACI,EAAE,CAAC,SAAiB,EAAE,IAAU;QACrC,IAAI,IAAI,YAAY,WAAW,IAAI,IAAI,YAAY,QAAQ,IAAI,IAAI,YAAY,iBAAiB,EAAE,CAAC;YACjG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;YACrC,OAAO;QACT,CAAC;QAED,IAAI,CAAC,OAAO,IAAI,KAAK,QAAQ,IAAI,OAAO,IAAI,KAAK,QAAQ,CAAC,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;YAC5E,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;QACvD,CAAC;aAAM,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YAC3E,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;QAC/C,CAAC;IACH,CAAC;IAED;;;;;OAKG;IACI,EAAE,CAAC,SAAiB,EAAE,IAAU;QACrC,IAAI,CAAC,EAAE,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;IAC3B,CAAC;CACF"}
@@ -14,10 +14,6 @@ export declare class AsenaWebSocketService<T> {
14
14
  * A map to store the WebSocket connections.
15
15
  */
16
16
  private _sockets;
17
- /**
18
- * A map to store the rooms.
19
- */
20
- private _rooms;
21
17
  /**
22
18
  * The namespace for the WebSocket connection.
23
19
  */
@@ -34,13 +30,6 @@ export declare class AsenaWebSocketService<T> {
34
30
  * @param {any} [data] - The data to send.
35
31
  */
36
32
  to(nameSpace: string, data?: any): void;
37
- /**
38
- * Retrieves the sockets associated with a specific room.
39
- *
40
- * @param {string} room - The name of the room.
41
- * @returns {Socket<T>[]} - An array of sockets in the specified room.
42
- */
43
- getSocketsByRoom(room: string): Socket<T>[];
44
33
  /**
45
34
  * Handles incoming messages from the WebSocket connection.
46
35
  *
@@ -94,6 +83,4 @@ export declare class AsenaWebSocketService<T> {
94
83
  set sockets(sockets: Map<string, Socket<T>>);
95
84
  get namespace(): string;
96
85
  set namespace(value: string);
97
- get rooms(): Map<string, Socket<T>[]>;
98
- set rooms(value: Map<string, Socket<T>[]>);
99
86
  }
@@ -12,10 +12,6 @@ export class AsenaWebSocketService {
12
12
  * A map to store the WebSocket connections.
13
13
  */
14
14
  _sockets = new Map();
15
- /**
16
- * A map to store the rooms.
17
- */
18
- _rooms = new Map();
19
15
  /**
20
16
  * The namespace for the WebSocket connection.
21
17
  */
@@ -38,18 +34,9 @@ export class AsenaWebSocketService {
38
34
  if (typeof nameSpace !== 'string' && nameSpace) {
39
35
  throw new Error('Namespace must be a string');
40
36
  }
41
- let _nameSpace = nameSpace ? `${this.namespace}.${nameSpace}` : this.namespace;
37
+ const _nameSpace = nameSpace ? `${this.namespace}.${nameSpace}` : this.namespace;
42
38
  this.server.to(_nameSpace, data);
43
39
  }
44
- /**
45
- * Retrieves the sockets associated with a specific room.
46
- *
47
- * @param {string} room - The name of the room.
48
- * @returns {Socket<T>[]} - An array of sockets in the specified room.
49
- */
50
- getSocketsByRoom(room) {
51
- return this.rooms.get(room);
52
- }
53
40
  async onOpenInternal(ws) {
54
41
  this.sockets.set(ws.id, ws);
55
42
  ws.subscribe('__');
@@ -59,7 +46,6 @@ export class AsenaWebSocketService {
59
46
  }
60
47
  }
61
48
  async onCloseInternal(ws, _code, _reason) {
62
- ws.cleanup();
63
49
  ws.unsubscribe(`__`);
64
50
  ws.unsubscribe(`${ws.data.id}`);
65
51
  this.sockets.delete(ws.id);
@@ -79,11 +65,5 @@ export class AsenaWebSocketService {
79
65
  set namespace(value) {
80
66
  this._namespace = value;
81
67
  }
82
- get rooms() {
83
- return this._rooms;
84
- }
85
- set rooms(value) {
86
- this._rooms = value;
87
- }
88
68
  }
89
69
  //# sourceMappingURL=AsenaWebSocketService.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"AsenaWebSocketService.js","sourceRoot":"","sources":["../../../../../lib/server/web/websocket/AsenaWebSocketService.ts"],"names":[],"mappings":"AAGA;;;;GAIG;AACH,MAAM,OAAO,qBAAqB;IAEhC;;OAEG;IACI,MAAM,GAAyB,IAAI,CAAC;IAE3C;;OAEG;IACK,QAAQ,GAA2B,IAAI,GAAG,EAAqB,CAAC;IAExE;;OAEG;IACK,MAAM,GAA6B,IAAI,GAAG,EAAuB,CAAC;IAE1E;;OAEG;IACK,UAAU,CAAS;IAE3B;;;OAGG;IAEI,EAAE,CAAC,IAAU;QAClB,uEAAuE;QACvE,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACtB,CAAC;IAED;;;;;OAKG;IACI,EAAE,CAAC,SAAiB,EAAE,IAAU;QACrC,IAAI,OAAO,SAAS,KAAK,QAAQ,IAAI,SAAS,EAAE,CAAC;YAC/C,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;QAChD,CAAC;QAED,IAAI,UAAU,GAAG,SAAS,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,SAAS,IAAI,SAAS,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC;QAE/E,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;IACnC,CAAC;IAED;;;;;OAKG;IACI,gBAAgB,CAAC,IAAY;QAClC,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAC9B,CAAC;IAuDS,KAAK,CAAC,cAAc,CAAC,EAAa;QAC1C,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;QAE5B,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QAEnB,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;QAE9B,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,MAAM,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QACxB,CAAC;IACH,CAAC;IAES,KAAK,CAAC,eAAe,CAAC,EAAa,EAAE,KAAa,EAAE,OAAe;QAC3E,EAAE,CAAC,OAAO,EAAE,CAAC;QAEb,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QAErB,EAAE,CAAC,WAAW,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;QAEhC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;QAE3B,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACjB,MAAM,IAAI,CAAC,OAAO,CAAC,EAAE,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;QACzC,CAAC;IACH,CAAC;IAED,IAAW,OAAO;QAChB,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;IAED,IAAW,OAAO,CAAC,OAA+B;QAChD,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;IAC1B,CAAC;IAED,IAAW,SAAS;QAClB,OAAO,IAAI,CAAC,UAAU,CAAC;IACzB,CAAC;IAED,IAAW,SAAS,CAAC,KAAa;QAChC,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;IAC1B,CAAC;IAED,IAAW,KAAK;QACd,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAED,IAAW,KAAK,CAAC,KAA+B;QAC9C,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;IACtB,CAAC;CAEF"}
1
+ {"version":3,"file":"AsenaWebSocketService.js","sourceRoot":"","sources":["../../../../../lib/server/web/websocket/AsenaWebSocketService.ts"],"names":[],"mappings":"AAGA;;;;GAIG;AACH,MAAM,OAAO,qBAAqB;IAChC;;OAEG;IACI,MAAM,GAAyB,IAAI,CAAC;IAE3C;;OAEG;IACK,QAAQ,GAA2B,IAAI,GAAG,EAAqB,CAAC;IAExE;;OAEG;IACK,UAAU,CAAS;IAE3B;;;OAGG;IAEI,EAAE,CAAC,IAAU;QAClB,uEAAuE;QACvE,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACtB,CAAC;IAED;;;;;OAKG;IACI,EAAE,CAAC,SAAiB,EAAE,IAAU;QACrC,IAAI,OAAO,SAAS,KAAK,QAAQ,IAAI,SAAS,EAAE,CAAC;YAC/C,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;QAChD,CAAC;QAED,MAAM,UAAU,GAAG,SAAS,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,SAAS,IAAI,SAAS,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC;QAEjF,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;IACnC,CAAC;IAuDS,KAAK,CAAC,cAAc,CAAC,EAAa;QAC1C,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;QAE5B,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QAEnB,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;QAE9B,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,MAAM,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QACxB,CAAC;IACH,CAAC;IAES,KAAK,CAAC,eAAe,CAAC,EAAa,EAAE,KAAa,EAAE,OAAe;QAC3E,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QAErB,EAAE,CAAC,WAAW,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;QAEhC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;QAE3B,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACjB,MAAM,IAAI,CAAC,OAAO,CAAC,EAAE,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;QACzC,CAAC;IACH,CAAC;IAED,IAAW,OAAO;QAChB,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;IAED,IAAW,OAAO,CAAC,OAA+B;QAChD,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;IAC1B,CAAC;IAED,IAAW,SAAS;QAClB,OAAO,IAAI,CAAC,UAAU,CAAC;IACzB,CAAC;IAED,IAAW,SAAS,CAAC,KAAa;QAChC,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;IAC1B,CAAC;CACF"}
@@ -0,0 +1,2 @@
1
+ export { matchesPattern, shouldApplyMiddleware } from './patternMatcher';
2
+ export { getTypedMetadata, getOwnTypedMetadata, defineTypedMetadata } from './typedMetadata';
@@ -0,0 +1,3 @@
1
+ export { matchesPattern, shouldApplyMiddleware } from './patternMatcher';
2
+ export { getTypedMetadata, getOwnTypedMetadata, defineTypedMetadata } from './typedMetadata';
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../lib/utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AACzE,OAAO,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC"}
@@ -5,7 +5,6 @@ export const getTypedMetadata = (key, target) => {
5
5
  export const getOwnTypedMetadata = (key, target) => {
6
6
  return getOwnMetadata(key, target);
7
7
  };
8
- // eslint-disable-next-line max-params
9
8
  export const defineTypedMetadata = (key, value, target, sym) => {
10
9
  if (sym === undefined) {
11
10
  defineMetadata(key, value, target);
@@ -1 +1 @@
1
- {"version":3,"file":"typedMetadata.js","sourceRoot":"","sources":["../../../lib/utils/typedMetadata.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAE3F,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAI,GAAoB,EAAE,MAAW,EAAiB,EAAE;IACtF,OAAO,WAAW,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;AAClC,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAI,GAAoB,EAAE,MAAW,EAAiB,EAAE;IACzF,OAAO,cAAc,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;AACrC,CAAC,CAAC;AAEF,sCAAsC;AACtC,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAI,GAAoB,EAAE,KAAQ,EAAE,MAAW,EAAE,GAAqB,EAAQ,EAAE;IACjH,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;QACtB,cAAc,CAAC,GAAG,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;QACnC,OAAO;IACT,CAAC;IAED,cAAc,CAAC,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC;AAC1C,CAAC,CAAC"}
1
+ {"version":3,"file":"typedMetadata.js","sourceRoot":"","sources":["../../../lib/utils/typedMetadata.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAE3F,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAI,GAAoB,EAAE,MAAW,EAAiB,EAAE;IACtF,OAAO,WAAW,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;AAClC,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAI,GAAoB,EAAE,MAAW,EAAiB,EAAE;IACzF,OAAO,cAAc,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;AACrC,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAI,GAAoB,EAAE,KAAQ,EAAE,MAAW,EAAE,GAAqB,EAAQ,EAAE;IACjH,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;QACtB,cAAc,CAAC,GAAG,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;QACnC,OAAO;IACT,CAAC;IAED,cAAc,CAAC,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC;AAC1C,CAAC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@asenajs/asena",
3
- "version": "0.4.0",
3
+ "version": "0.6.0-beta.0",
4
4
  "author": "LibirSoft",
5
5
  "repository": {
6
6
  "type": "git",
@@ -14,17 +14,13 @@
14
14
  "devDependencies": {
15
15
  "@changesets/cli": "^2.29.7",
16
16
  "@types/bun": "latest",
17
- "@typescript-eslint/eslint-plugin": "^6.21.0",
18
- "eslint": "^8.57.1",
19
- "eslint-config-alloy": "^5.1.2",
17
+ "@typescript-eslint/eslint-plugin": "^8.46.2",
18
+ "@typescript-eslint/parser": "^8.46.2",
19
+ "eslint": "^9.39.0",
20
20
  "eslint-config-prettier": "^9.1.2",
21
- "eslint-plugin-alloy": "^1.2.1",
22
- "eslint-plugin-import": "^2.32.0",
23
- "eslint-plugin-n": "^16.6.2",
24
- "eslint-plugin-prettier": "^5.5.4",
25
- "eslint-plugin-promise": "^6.6.0",
26
21
  "prettier": "^3.6.2",
27
- "typescript": "^5.9.3"
22
+ "typescript": "^5.9.3",
23
+ "typescript-eslint": "^8.46.2"
28
24
  },
29
25
  "exports": {
30
26
  ".": {
@@ -63,6 +59,10 @@
63
59
  "import": "./dist/lib/ioc/component/index.js",
64
60
  "types": "./dist/lib/ioc/component/index.d.ts"
65
61
  },
62
+ "./ioc/system": {
63
+ "import": "./dist/lib/server/web/websocket/index.js",
64
+ "types": "./dist/lib/server/web/websocket/index.d.ts"
65
+ },
66
66
  "./http-status": {
67
67
  "import": "./dist/lib/server/web/http/HttpStatus.js",
68
68
  "types": "./dist/lib/server/web/http/HttpStatus.d.ts"
@@ -75,9 +75,17 @@
75
75
  "import": "./dist/lib/ioc/Container.js",
76
76
  "types": "./dist/lib/ioc/Container.d.ts"
77
77
  },
78
- "./utils/patternMatcher": {
79
- "import": "./dist/lib/utils/patternMatcher.js",
80
- "types": "./dist/lib/utils/patternMatcher.d.ts"
78
+ "./messaging": {
79
+ "import": "./dist/lib/server/messaging/index.js",
80
+ "types": "./dist/lib/server/messaging/index.d.ts"
81
+ },
82
+ "./event": {
83
+ "import": "./dist/lib/server/event/index.js",
84
+ "types": "./dist/lib/server/event/index.d.ts"
85
+ },
86
+ "./utlis": {
87
+ "import": "./dist/lib/utils/index.js",
88
+ "types": "./dist/lib/utils/index.d.ts"
81
89
  }
82
90
  },
83
91
  "description": "Asena is a spring like framework for building web applications built with bun",
@@ -100,10 +108,19 @@
100
108
  ],
101
109
  "license": "MIT",
102
110
  "scripts": {
103
- "test": "echo \"Error: no test specified\" && exit 1",
111
+ "test": "bun test",
112
+ "test:watch": "bun test --watch",
113
+ "test:fail": "bun test --only-failures",
114
+ "test:coverage": "bun test --coverage",
104
115
  "build": "bun run clean && tsc",
105
116
  "clean": "rm -rf dist",
106
- "pre-release": "bun update && bun run build"
117
+ "pre-release": "bun update && bun run build",
118
+ "lint": "eslint .",
119
+ "lint:fix": "eslint . --fix",
120
+ "format": "prettier --write .",
121
+ "format:check": "prettier --check .",
122
+ "check": "bun run lint && bun run format:check",
123
+ "check:fix": "bun run lint:fix && bun run format"
107
124
  },
108
125
  "types": "dist/index.d.ts"
109
126
  }