@futdevpro/nts-dynamo 1.5.76 → 1.5.81

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 (227) hide show
  1. package/LICENSE +2 -2
  2. package/lib/_constants/dynamo-nts-global-settings.d.ts +2 -2
  3. package/lib/_constants/dynamo-nts-global-settings.js +17 -17
  4. package/lib/_constants/index.d.ts +1 -1
  5. package/lib/_constants/index.js +4 -4
  6. package/lib/_enums/data-model-type.enum.d.ts +12 -12
  7. package/lib/_enums/data-model-type.enum.js +16 -16
  8. package/lib/_enums/data-model-type.enum.js.map +1 -1
  9. package/lib/_enums/dynamo-nts-data-service-function.enum.d.ts +12 -12
  10. package/lib/_enums/dynamo-nts-data-service-function.enum.js +18 -18
  11. package/lib/_enums/dynamo-nts-data-service-function.enum.js.map +1 -1
  12. package/lib/_enums/dynamo-nts-route-security.enum.d.ts +11 -11
  13. package/lib/_enums/dynamo-nts-route-security.enum.js +15 -15
  14. package/lib/_enums/dynamo-nts-route-security.enum.js.map +1 -1
  15. package/lib/_enums/dynamo-nts-socket-security.enum.d.ts +10 -10
  16. package/lib/_enums/dynamo-nts-socket-security.enum.js +14 -14
  17. package/lib/_enums/dynamo-nts-socket-security.enum.js.map +1 -1
  18. package/lib/_enums/http/http-call-type.enum.d.ts +11 -11
  19. package/lib/_enums/http/http-call-type.enum.js +15 -15
  20. package/lib/_enums/http/http-call-type.enum.js.map +1 -1
  21. package/lib/_enums/http/http-response-type.enum.d.ts +6 -6
  22. package/lib/_enums/http/http-response-type.enum.js +10 -10
  23. package/lib/_enums/http/http-response-type.enum.js.map +1 -1
  24. package/lib/_enums/http/socket-event.enum.d.ts +9 -8
  25. package/lib/_enums/http/socket-event.enum.d.ts.map +1 -1
  26. package/lib/_enums/http/socket-event.enum.js +13 -12
  27. package/lib/_enums/http/socket-event.enum.js.map +1 -1
  28. package/lib/_enums/index.d.ts +8 -8
  29. package/lib/_enums/index.js +13 -13
  30. package/lib/_enums/predefined-data-types.enum.d.ts +10 -10
  31. package/lib/_enums/predefined-data-types.enum.js +14 -14
  32. package/lib/_enums/predefined-data-types.enum.js.map +1 -1
  33. package/lib/_interfaces/certification-settings.interface.d.ts +7 -0
  34. package/lib/_interfaces/certification-settings.interface.d.ts.map +1 -0
  35. package/lib/_interfaces/certification-settings.interface.js +3 -0
  36. package/lib/_interfaces/certification-settings.interface.js.map +1 -0
  37. package/lib/_interfaces/global-service-settings.interface.d.ts +18 -0
  38. package/lib/_interfaces/global-service-settings.interface.d.ts.map +1 -0
  39. package/lib/_interfaces/global-service-settings.interface.js +3 -0
  40. package/lib/_interfaces/global-service-settings.interface.js.map +1 -0
  41. package/lib/_interfaces/index.d.ts +1 -0
  42. package/lib/_interfaces/index.d.ts.map +1 -0
  43. package/lib/_interfaces/index.js +4 -0
  44. package/lib/_interfaces/index.js.map +1 -0
  45. package/lib/_interfaces/port-settings.interface.d.ts +5 -0
  46. package/lib/_interfaces/port-settings.interface.d.ts.map +1 -0
  47. package/lib/_interfaces/port-settings.interface.js +3 -0
  48. package/lib/_interfaces/port-settings.interface.js.map +1 -0
  49. package/lib/_models/dynamo-nts-api-call-params.d.ts +95 -95
  50. package/lib/_models/dynamo-nts-api-call-params.js +47 -47
  51. package/lib/_models/dynamo-nts-app-params.d.ts +49 -49
  52. package/lib/_models/dynamo-nts-app-params.js +17 -17
  53. package/lib/_models/dynamo-nts-endpoint-params.d.ts +80 -80
  54. package/lib/_models/dynamo-nts-endpoint-params.js +139 -139
  55. package/lib/_models/dynamo-nts-global-settings.d.ts +53 -53
  56. package/lib/_models/dynamo-nts-global-settings.js +2 -2
  57. package/lib/_models/dynamo-nts-routing-module-settings.d.ts +19 -19
  58. package/lib/_models/dynamo-nts-routing-module-settings.js +2 -2
  59. package/lib/_models/dynamo-nts-socket-event-params.d.ts +32 -30
  60. package/lib/_models/dynamo-nts-socket-event-params.d.ts.map +1 -1
  61. package/lib/_models/dynamo-nts-socket-event-params.js +80 -79
  62. package/lib/_models/dynamo-nts-socket-event-params.js.map +1 -1
  63. package/lib/_models/dynamo-nts-socket-presence.d.ts +21 -0
  64. package/lib/_models/dynamo-nts-socket-presence.d.ts.map +1 -0
  65. package/lib/_models/dynamo-nts-socket-presence.js +45 -0
  66. package/lib/_models/dynamo-nts-socket-presence.js.map +1 -0
  67. package/lib/_models/dynamo-nts-socket-service-params.d.ts +18 -18
  68. package/lib/_models/dynamo-nts-socket-service-params.d.ts.map +1 -1
  69. package/lib/_models/dynamo-nts-socket-service-params.js +26 -26
  70. package/lib/_models/dynamo-nts-socket-service-params.js.map +1 -1
  71. package/lib/_models/index.d.ts +7 -8
  72. package/lib/_models/index.d.ts.map +1 -1
  73. package/lib/_models/index.js +12 -12
  74. package/lib/_models/index.js.map +1 -1
  75. package/lib/_modules/api-service.index.d.ts +5 -5
  76. package/lib/_modules/api-service.index.js +11 -11
  77. package/lib/_modules/app-extended.index.d.ts +15 -12
  78. package/lib/_modules/app-extended.index.d.ts.map +1 -1
  79. package/lib/_modules/app-extended.index.js +23 -19
  80. package/lib/_modules/app-extended.index.js.map +1 -1
  81. package/lib/_modules/app.index.d.ts +13 -10
  82. package/lib/_modules/app.index.d.ts.map +1 -1
  83. package/lib/_modules/app.index.js +21 -17
  84. package/lib/_modules/app.index.js.map +1 -1
  85. package/lib/_modules/auth.index.d.ts +3 -3
  86. package/lib/_modules/auth.index.js +8 -8
  87. package/lib/_modules/constants.index.d.ts +1 -1
  88. package/lib/_modules/constants.index.js +4 -4
  89. package/lib/_modules/controller.index.d.ts +4 -4
  90. package/lib/_modules/controller.index.js +10 -10
  91. package/lib/_modules/custom-data/custom-data.controller.d.ts +5 -5
  92. package/lib/_modules/custom-data/custom-data.controller.js +55 -55
  93. package/lib/_modules/custom-data/custom-data.service.d.ts +5 -5
  94. package/lib/_modules/custom-data/custom-data.service.js +11 -11
  95. package/lib/_modules/custom-data/get-custom-data-routing-module.d.ts +3 -3
  96. package/lib/_modules/custom-data/get-custom-data-routing-module.js +17 -17
  97. package/lib/_modules/custom-data/index.d.ts +4 -4
  98. package/lib/_modules/custom-data/index.js +8 -8
  99. package/lib/_modules/custom-data-module.index.d.ts +1 -1
  100. package/lib/_modules/custom-data-module.index.js +4 -4
  101. package/lib/_modules/data-service.index.d.ts +5 -5
  102. package/lib/_modules/data-service.index.js +10 -10
  103. package/lib/_modules/email.index.d.ts +3 -3
  104. package/lib/_modules/email.index.js +8 -8
  105. package/lib/_modules/enums.index.d.ts +1 -1
  106. package/lib/_modules/enums.index.js +4 -4
  107. package/lib/_modules/models.index.d.ts +1 -1
  108. package/lib/_modules/models.index.js +4 -4
  109. package/lib/_modules/services.index.d.ts +1 -1
  110. package/lib/_modules/services.index.js +4 -4
  111. package/lib/_modules/test/get-test-routing-module.d.ts +3 -3
  112. package/lib/_modules/test/get-test-routing-module.js +17 -17
  113. package/lib/_modules/test/index.d.ts +3 -3
  114. package/lib/_modules/test/index.js +7 -7
  115. package/lib/_modules/test/test.controller.d.ts +5 -5
  116. package/lib/_modules/test/test.controller.js +104 -104
  117. package/lib/_modules/test-module.index.d.ts +1 -1
  118. package/lib/_modules/test-module.index.js +4 -4
  119. package/lib/_modules/usage/get-usage-routing-module.d.ts +3 -3
  120. package/lib/_modules/usage/get-usage-routing-module.js +17 -17
  121. package/lib/_modules/usage/index.d.ts +4 -4
  122. package/lib/_modules/usage/index.js +8 -8
  123. package/lib/_modules/usage/usage-controller.d.ts +6 -6
  124. package/lib/_modules/usage/usage-controller.js +88 -88
  125. package/lib/_modules/usage/usage.service.d.ts +16 -16
  126. package/lib/_modules/usage/usage.service.js +132 -132
  127. package/lib/_modules/usage-module.index.d.ts +1 -1
  128. package/lib/_modules/usage-module.index.js +4 -4
  129. package/lib/_services/dynamo-nts-api.service.d.ts +34 -34
  130. package/lib/_services/dynamo-nts-api.service.js +188 -188
  131. package/lib/_services/dynamo-nts-app-extended.d.ts +128 -128
  132. package/lib/_services/dynamo-nts-app-extended.d.ts.map +1 -1
  133. package/lib/_services/dynamo-nts-app-extended.js +212 -212
  134. package/lib/_services/dynamo-nts-app-extended.js.map +1 -1
  135. package/lib/_services/dynamo-nts-app.d.ts +270 -278
  136. package/lib/_services/dynamo-nts-app.d.ts.map +1 -1
  137. package/lib/_services/dynamo-nts-app.js +371 -371
  138. package/lib/_services/dynamo-nts-app.js.map +1 -1
  139. package/lib/_services/dynamo-nts-app.spec.d.ts +1 -0
  140. package/lib/_services/dynamo-nts-app.spec.d.ts.map +1 -0
  141. package/lib/_services/dynamo-nts-app.spec.js +10 -0
  142. package/lib/_services/dynamo-nts-app.spec.js.map +1 -0
  143. package/lib/_services/dynamo-nts-auth.service.d.ts +127 -127
  144. package/lib/_services/dynamo-nts-auth.service.d.ts.map +1 -1
  145. package/lib/_services/dynamo-nts-auth.service.js +53 -53
  146. package/lib/_services/dynamo-nts-auth.service.js.map +1 -1
  147. package/lib/_services/dynamo-nts-controller.service.d.ts +105 -105
  148. package/lib/_services/dynamo-nts-controller.service.d.ts.map +1 -1
  149. package/lib/_services/dynamo-nts-controller.service.js +57 -57
  150. package/lib/_services/dynamo-nts-controller.service.js.map +1 -1
  151. package/lib/_services/dynamo-nts-data.service.d.ts +230 -229
  152. package/lib/_services/dynamo-nts-data.service.d.ts.map +1 -1
  153. package/lib/_services/dynamo-nts-data.service.js +689 -686
  154. package/lib/_services/dynamo-nts-data.service.js.map +1 -1
  155. package/lib/_services/dynamo-nts-db-service-collection.service.d.ts +8 -8
  156. package/lib/_services/dynamo-nts-db-service-collection.service.js +10 -10
  157. package/lib/_services/dynamo-nts-db.service.d.ts +312 -312
  158. package/lib/_services/dynamo-nts-db.service.d.ts.map +1 -1
  159. package/lib/_services/dynamo-nts-db.service.js +856 -856
  160. package/lib/_services/dynamo-nts-db.service.js.map +1 -1
  161. package/lib/_services/dynamo-nts-email-service-collection.service.d.ts +18 -18
  162. package/lib/_services/dynamo-nts-email-service-collection.service.js +20 -20
  163. package/lib/_services/dynamo-nts-email.service.d.ts +56 -56
  164. package/lib/_services/dynamo-nts-email.service.d.ts.map +1 -1
  165. package/lib/_services/dynamo-nts-email.service.js +203 -203
  166. package/lib/_services/dynamo-nts-email.service.js.map +1 -1
  167. package/lib/_services/dynamo-nts-global.service.d.ts +71 -84
  168. package/lib/_services/dynamo-nts-global.service.d.ts.map +1 -1
  169. package/lib/_services/dynamo-nts-global.service.js +156 -156
  170. package/lib/_services/dynamo-nts-global.service.js.map +1 -1
  171. package/lib/_services/dynamo-nts-routing-module.service.d.ts +76 -76
  172. package/lib/_services/dynamo-nts-routing-module.service.d.ts.map +1 -1
  173. package/lib/_services/dynamo-nts-routing-module.service.js +191 -191
  174. package/lib/_services/dynamo-nts-routing-module.service.js.map +1 -1
  175. package/lib/_services/dynamo-nts-shared.service.d.ts +31 -31
  176. package/lib/_services/dynamo-nts-shared.service.d.ts.map +1 -1
  177. package/lib/_services/dynamo-nts-shared.service.js +70 -70
  178. package/lib/_services/dynamo-nts-shared.service.js.map +1 -1
  179. package/lib/_services/dynamo-nts-shared.service.spec.d.ts +2 -0
  180. package/lib/_services/dynamo-nts-shared.service.spec.d.ts.map +1 -0
  181. package/lib/_services/dynamo-nts-shared.service.spec.js +12 -0
  182. package/lib/_services/dynamo-nts-shared.service.spec.js.map +1 -0
  183. package/lib/_services/dynamo-nts-singleton.service.d.ts +8 -8
  184. package/lib/_services/dynamo-nts-singleton.service.js +18 -18
  185. package/lib/_services/dynamo-nts-singleton.service.js.map +1 -1
  186. package/lib/_services/dynamo-nts-socket-service-collection.service.d.ts +9 -9
  187. package/lib/_services/dynamo-nts-socket-service-collection.service.js +13 -13
  188. package/lib/_services/dynamo-nts-socket.service.d.ts +57 -45
  189. package/lib/_services/dynamo-nts-socket.service.d.ts.map +1 -1
  190. package/lib/_services/dynamo-nts-socket.service.js +188 -165
  191. package/lib/_services/dynamo-nts-socket.service.js.map +1 -1
  192. package/lib/_services/index.d.ts +14 -16
  193. package/lib/_services/index.d.ts.map +1 -1
  194. package/lib/_services/index.js +20 -20
  195. package/lib/_services/index.js.map +1 -1
  196. package/lib/index.d.ts +6 -6
  197. package/lib/index.js +14 -14
  198. package/lib/tsconfig.tsbuildinfo +1 -1
  199. package/package SAVE.json +216 -0
  200. package/package-NEW with test but not working.json +228 -0
  201. package/package.json +15 -8
  202. package/spec/support/jasmine.json +14 -0
  203. package/src/_enums/http/socket-event.enum.ts +2 -1
  204. package/src/_interfaces/certification-settings.interface.ts +7 -0
  205. package/src/_interfaces/global-service-settings.interface.ts +23 -0
  206. package/src/_interfaces/index.ts +5 -0
  207. package/src/_interfaces/port-settings.interface.ts +5 -0
  208. package/src/_models/dynamo-nts-socket-event-params.ts +23 -21
  209. package/src/_models/{dynamo-nts-socket-dictionary.ts → dynamo-nts-socket-presence.ts} +21 -5
  210. package/src/_models/dynamo-nts-socket-service-params.ts +1 -0
  211. package/src/_models/index.ts +2 -2
  212. package/src/_modules/app-extended.index.ts +7 -2
  213. package/src/_modules/app.index.ts +5 -0
  214. package/src/_services/dynamo-nts-app-extended.ts +6 -2
  215. package/src/_services/dynamo-nts-app.spec.ts +14 -0
  216. package/src/_services/dynamo-nts-app.ts +8 -14
  217. package/src/_services/dynamo-nts-auth.service.ts +1 -0
  218. package/src/_services/dynamo-nts-controller.service.ts +2 -1
  219. package/src/_services/dynamo-nts-data.service.ts +16 -10
  220. package/src/_services/dynamo-nts-db.service.ts +8 -5
  221. package/src/_services/dynamo-nts-email.service.ts +1 -0
  222. package/src/_services/dynamo-nts-global.service.ts +3 -18
  223. package/src/_services/dynamo-nts-routing-module.service.ts +1 -0
  224. package/src/_services/dynamo-nts-shared.service.spec.ts +10 -0
  225. package/src/_services/dynamo-nts-shared.service.ts +2 -1
  226. package/src/_services/dynamo-nts-socket.service.ts +80 -41
  227. package/src/_services/index.ts +2 -2
@@ -1,9 +1,9 @@
1
- /**
2
- *
3
- */
4
- export declare class DynamoNTS_SingletonService {
5
- protected static instance: any;
6
- static getSingletonInstance(): any;
7
- protected constructor();
8
- }
1
+ /**
2
+ *
3
+ */
4
+ export declare class DynamoNTS_SingletonService {
5
+ protected static instance: any;
6
+ static getSingletonInstance(): any;
7
+ protected constructor();
8
+ }
9
9
  //# sourceMappingURL=dynamo-nts-singleton.service.d.ts.map
@@ -1,19 +1,19 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.DynamoNTS_SingletonService = void 0;
4
- /**
5
- *
6
- */
7
- class DynamoNTS_SingletonService {
8
- /// --- --- --- SINGLETON --- --- --- ///
9
- // SINGLETON services are using private constructor
10
- constructor() { }
11
- static getSingletonInstance() {
12
- if (!this.instance) {
13
- this.instance = new this();
14
- }
15
- return this.instance;
16
- }
17
- }
18
- exports.DynamoNTS_SingletonService = DynamoNTS_SingletonService;
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DynamoNTS_SingletonService = void 0;
4
+ /**
5
+ *
6
+ */
7
+ class DynamoNTS_SingletonService {
8
+ static getSingletonInstance() {
9
+ if (!this.instance) {
10
+ this.instance = new this();
11
+ }
12
+ return this.instance;
13
+ }
14
+ /// --- --- --- SINGLETON --- --- --- ///
15
+ // SINGLETON services are using private constructor
16
+ constructor() { }
17
+ }
18
+ exports.DynamoNTS_SingletonService = DynamoNTS_SingletonService;
19
19
  //# sourceMappingURL=dynamo-nts-singleton.service.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"dynamo-nts-singleton.service.js","sourceRoot":"","sources":["../../src/_services/dynamo-nts-singleton.service.ts"],"names":[],"mappings":";;;AACA;;GAEG;AACH,MAAa,0BAA0B;IAUrC,iEAAiE;IAEjE,qDAAqD;IACrD,gBAAyB,CAAC;IAT1B,MAAM,CAAC,oBAAoB;QACzB,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;YAClB,IAAI,CAAC,QAAQ,GAAG,IAAI,IAAI,EAAE,CAAC;SAC5B;QACD,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;CAKF;AAdD,gEAcC"}
1
+ {"version":3,"file":"dynamo-nts-singleton.service.js","sourceRoot":"","sources":["../../src/_services/dynamo-nts-singleton.service.ts"],"names":[],"mappings":";;;AACA;;GAEG;AACH,MAAa,0BAA0B;IAIrC,MAAM,CAAC,oBAAoB;QACzB,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;YAClB,IAAI,CAAC,QAAQ,GAAG,IAAI,IAAI,EAAE,CAAC;SAC5B;QACD,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;IACD,iEAAiE;IAEjE,qDAAqD;IACrD,gBAAyB,CAAC;CAC3B;AAdD,gEAcC"}
@@ -1,10 +1,10 @@
1
- import { DynamoNTS_SingletonService } from './dynamo-nts-singleton.service';
2
- import { DynamoNTS_SocketService } from './dynamo-nts-socket.service';
3
- /**
4
- *
5
- */
6
- export declare class DynamoNTS_SocketServiceCollection extends DynamoNTS_SingletonService {
7
- static getInstance(): DynamoNTS_SocketServiceCollection;
8
- [service: string]: DynamoNTS_SocketService<any>;
9
- }
1
+ import { DynamoNTS_SingletonService } from './dynamo-nts-singleton.service';
2
+ import { DynamoNTS_SocketService } from './dynamo-nts-socket.service';
3
+ /**
4
+ *
5
+ */
6
+ export declare class DynamoNTS_SocketServiceCollection extends DynamoNTS_SingletonService {
7
+ static getInstance(): DynamoNTS_SocketServiceCollection;
8
+ [service: string]: DynamoNTS_SocketService<any>;
9
+ }
10
10
  //# sourceMappingURL=dynamo-nts-socket-service-collection.service.d.ts.map
@@ -1,14 +1,14 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.DynamoNTS_SocketServiceCollection = void 0;
4
- const dynamo_nts_singleton_service_1 = require("./dynamo-nts-singleton.service");
5
- /**
6
- *
7
- */
8
- class DynamoNTS_SocketServiceCollection extends dynamo_nts_singleton_service_1.DynamoNTS_SingletonService {
9
- static getInstance() {
10
- return DynamoNTS_SocketServiceCollection.getSingletonInstance();
11
- }
12
- }
13
- exports.DynamoNTS_SocketServiceCollection = DynamoNTS_SocketServiceCollection;
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DynamoNTS_SocketServiceCollection = void 0;
4
+ const dynamo_nts_singleton_service_1 = require("./dynamo-nts-singleton.service");
5
+ /**
6
+ *
7
+ */
8
+ class DynamoNTS_SocketServiceCollection extends dynamo_nts_singleton_service_1.DynamoNTS_SingletonService {
9
+ static getInstance() {
10
+ return DynamoNTS_SocketServiceCollection.getSingletonInstance();
11
+ }
12
+ }
13
+ exports.DynamoNTS_SocketServiceCollection = DynamoNTS_SocketServiceCollection;
14
14
  //# sourceMappingURL=dynamo-nts-socket-service-collection.service.js.map
@@ -1,46 +1,58 @@
1
- import * as SocketIO from 'socket.io';
2
- import { DynamoNTS_SingletonService } from './dynamo-nts-singleton.service';
3
- import { DynamoNTS_SocketEventParams } from '../_models/dynamo-nts-socket-event-params';
4
- import { DynamoNTS_SocketServiceParams } from '../_models/dynamo-nts-socket-service-params';
5
- import { DynamoNTS_SocketDictionary } from '../_models/dynamo-nts-socket-dictionary';
6
- import { DynamoNTS_SocketSecurity } from '../_enums/dynamo-nts-socket-security.enum';
7
- /**
8
- *
9
- */
10
- export declare abstract class DynamoNTS_SocketService<T extends DynamoNTS_SocketDictionary> extends DynamoNTS_SingletonService {
11
- protected params: DynamoNTS_SocketServiceParams;
12
- get name(): string;
13
- get port(): number;
14
- get security(): DynamoNTS_SocketSecurity;
15
- protected socketServer: SocketIO.Server;
16
- private connectEvent;
17
- protected incomingEvents: DynamoNTS_SocketEventParams<any>[];
18
- private subscriptionEvent;
19
- private getDicFromSubscrioption?;
20
- protected activeSockets: T[];
21
- protected log: boolean;
22
- defaultErrorUserMsg: string;
23
- constructor();
24
- private attachToGlobalCollection;
25
- /**
26
- * You must setup events and required services for this function
27
- */
28
- private prepareEvents;
29
- setupSocketServer(newSocketServer: SocketIO.Server): Promise<void>;
30
- private socketSubscription;
31
- private removeSubscriptionOnDisconnect;
32
- emitEvent(event: string, content: any): void;
33
- idIsSubscribed(id: string): boolean;
34
- sendEventForId(id: string, event: string, content: any, error?: (err: any) => void): Promise<void>;
35
- broadcastEvent(event: string, content: any): void;
36
- /**
37
- * You must setup params for the service in this function
38
- *
39
- */
40
- abstract setupServiceParams(): void;
41
- /**
42
- * You must setup events and required services in this function
43
- */
44
- abstract setupEvents(): void;
45
- }
1
+ import * as SocketIO from 'socket.io';
2
+ import { DynamoNTS_SingletonService } from './dynamo-nts-singleton.service';
3
+ import { DynamoNTS_SocketEventParams, DynamoNTS_SocketEventPreprocessTask, DynamoNTS_SocketEventTask } from '../_models/dynamo-nts-socket-event-params';
4
+ import { DynamoNTS_SocketServiceParams } from '../_models/dynamo-nts-socket-service-params';
5
+ import { DynamoNTS_SocketPresence } from '../_models/dynamo-nts-socket-presence';
6
+ import { DynamoNTS_SocketSecurity } from '../_enums/dynamo-nts-socket-security.enum';
7
+ /**
8
+ *
9
+ */
10
+ export declare abstract class DynamoNTS_SocketService<T_Presence extends DynamoNTS_SocketPresence, T_Content = any> extends DynamoNTS_SingletonService {
11
+ protected params: DynamoNTS_SocketServiceParams;
12
+ get name(): string;
13
+ get port(): number;
14
+ get security(): DynamoNTS_SocketSecurity;
15
+ protected socketServer: SocketIO.Server;
16
+ private connectEvent;
17
+ protected incomingEvents: DynamoNTS_SocketEventParams<any>[];
18
+ private subscriptionEvent;
19
+ /**
20
+ * You need to setup a function that converts subscription event content to presence
21
+ */
22
+ protected getPresenceFromSubscrioptionEventContent?: (socketSubscription: T_Content) => Promise<T_Presence>;
23
+ protected presences: T_Presence[];
24
+ protected log: boolean;
25
+ defaultErrorUserMsg: string;
26
+ constructor();
27
+ private attachToGlobalCollection;
28
+ /**
29
+ * You must setup events and required services for this function
30
+ */
31
+ private prepareEvents;
32
+ setupSocketServer(newSocketServer: SocketIO.Server): Promise<void>;
33
+ protected socketSubscription(newPresence: T_Presence): Promise<void>;
34
+ private removeSubscriptionOnDisconnect;
35
+ emitEvent(event: string, content: any): void;
36
+ idIsSubscribed(id: string): boolean;
37
+ emitError(presenceIssuerId: string, error: any): void;
38
+ sendEventForId(id: string, event: string, content: any, error?: (err: any) => void): Promise<void>;
39
+ broadcastEvent(event: string, content: any): void;
40
+ /**
41
+ * You must setup params for the service in this function
42
+ *
43
+ */
44
+ abstract getServiceParams(): DynamoNTS_SocketServiceParams;
45
+ /**
46
+ * You must setup events and required services in this function
47
+ */
48
+ abstract getIncomingEvents(): DynamoNTS_SocketEventParams<any>[];
49
+ /**
50
+ * You can setup tasks for the subscription event in this function
51
+ */
52
+ protected getSubscriptionTasks?(): DynamoNTS_SocketEventTask[];
53
+ /**
54
+ * You can setup preprocessess for the subscription event in this function
55
+ */
56
+ protected getSubscriptionPreProcessess?(): DynamoNTS_SocketEventPreprocessTask<T_Content>[];
57
+ }
46
58
  //# sourceMappingURL=dynamo-nts-socket.service.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"dynamo-nts-socket.service.d.ts","sourceRoot":"","sources":["../../src/_services/dynamo-nts-socket.service.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,QAAQ,MAAM,WAAW,CAAC;AAGtC,OAAO,EAAE,0BAA0B,EAAE,MAAM,gCAAgC,CAAC;AAC5E,OAAO,EAAE,2BAA2B,EAAE,MAAM,2CAA2C,CAAC;AAIxF,OAAO,EAAE,6BAA6B,EAAE,MAAM,6CAA6C,CAAC;AAC5F,OAAO,EAAE,0BAA0B,EAAE,MAAM,yCAAyC,CAAC;AACrF,OAAO,EAAE,wBAAwB,EAAE,MAAM,2CAA2C,CAAC;AAErF;;GAEG;AACH,8BAAsB,uBAAuB,CAAC,CAAC,SAAS,0BAA0B,CAAE,SAAQ,0BAA0B;IACpH,SAAS,CAAC,MAAM,EAAE,6BAA6B,CAAC;IAChD,IAAI,IAAI,IAAI,MAAM,CAA6B;IAC/C,IAAI,IAAI,IAAI,MAAM,CAA6B;IAC/C,IAAI,QAAQ,IAAI,wBAAwB,CAAiC;IAEzE,SAAS,CAAC,YAAY,EAAE,QAAQ,CAAC,MAAM,CAAC;IAExC,OAAO,CAAC,YAAY,CAA+C;IACnE,SAAS,CAAC,cAAc,EAAE,2BAA2B,CAAC,GAAG,CAAC,EAAE,CAAC;IAE7D,OAAO,CAAC,iBAAiB,CAAmC;IAC5D,OAAO,CAAC,uBAAuB,CAAC,CAA+B;IAC/D,SAAS,CAAC,aAAa,EAAE,CAAC,EAAE,CAAM;IAElC,SAAS,CAAC,GAAG,EAAE,OAAO,CAAqC;IAE3D,mBAAmB,SAEoC;;IAkBvD,OAAO,CAAC,wBAAwB;IAIhC;;OAEG;IACH,OAAO,CAAC,aAAa;IA2Cf,iBAAiB,CAAC,eAAe,EAAE,QAAQ,CAAC,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;YAoC1D,kBAAkB;YASlB,8BAA8B;IAW5C,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,GAAG,IAAI;IAI5C,cAAc,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO;IAI7B,cAAc,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE,KAAK,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAkBxG,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,GAAG,IAAI;IAMjD;;;OAGG;IACH,QAAQ,CAAC,kBAAkB,IAAI,IAAI;IAEnC;;OAEG;IACH,QAAQ,CAAC,WAAW,IAAI,IAAI;CAC7B"}
1
+ {"version":3,"file":"dynamo-nts-socket.service.d.ts","sourceRoot":"","sources":["../../src/_services/dynamo-nts-socket.service.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,QAAQ,MAAM,WAAW,CAAC;AAKtC,OAAO,EAAE,0BAA0B,EAAE,MAAM,gCAAgC,CAAC;AAE5E,OAAO,EAAE,2BAA2B,EAAE,mCAAmC,EAAE,yBAAyB,EAAE,MAAM,2CAA2C,CAAC;AAExJ,OAAO,EAAE,6BAA6B,EAAE,MAAM,6CAA6C,CAAC;AAC5F,OAAO,EAAE,wBAAwB,EAAE,MAAM,uCAAuC,CAAC;AACjF,OAAO,EAAE,wBAAwB,EAAE,MAAM,2CAA2C,CAAC;AAErF;;GAEG;AACH,8BAAsB,uBAAuB,CAAC,UAAU,SAAS,wBAAwB,EAAE,SAAS,GAAG,GAAG,CAAE,SAAQ,0BAA0B;IAC5I,SAAS,CAAC,MAAM,EAAE,6BAA6B,CAAC;IAChD,IAAI,IAAI,IAAI,MAAM,CAA6B;IAC/C,IAAI,IAAI,IAAI,MAAM,CAA6B;IAC/C,IAAI,QAAQ,IAAI,wBAAwB,CAAiC;IAEzE,SAAS,CAAC,YAAY,EAAE,QAAQ,CAAC,MAAM,CAAC;IAExC,OAAO,CAAC,YAAY,CAA+C;IACnE,SAAS,CAAC,cAAc,EAAE,2BAA2B,CAAC,GAAG,CAAC,EAAE,CAAC;IAE7D,OAAO,CAAC,iBAAiB,CAAmC;IAC5D;;OAEG;IACH,SAAS,CAAC,wCAAwC,CAAC,EAAE,CAAC,kBAAkB,EAAE,SAAS,KAAK,OAAO,CAAC,UAAU,CAAC,CAAC;IAC5G,SAAS,CAAC,SAAS,EAAE,UAAU,EAAE,CAAM;IAEvC,SAAS,CAAC,GAAG,EAAE,OAAO,CAAqC;IAE3D,mBAAmB,SAEoC;;IAkBvD,OAAO,CAAC,wBAAwB;IAIhC;;OAEG;IACH,OAAO,CAAC,aAAa;IAkDf,iBAAiB,CAAC,eAAe,EAAE,QAAQ,CAAC,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;cAiDxD,kBAAkB,CAAC,WAAW,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;YAS5D,8BAA8B;IAY5C,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,GAAG,IAAI;IAI5C,cAAc,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO;IAInC,SAAS,CAAC,gBAAgB,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,GAAG,IAAI;IAI/C,cAAc,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE,KAAK,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAkBxG,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,GAAG,IAAI;IAMjD;;;OAGG;IACH,QAAQ,CAAC,gBAAgB,IAAI,6BAA6B;IAE1D;;OAEG;IACH,QAAQ,CAAC,iBAAiB,IAAI,2BAA2B,CAAC,GAAG,CAAC,EAAE;IAEhE;;OAEG;IACH,SAAS,CAAC,oBAAoB,CAAC,IAAI,yBAAyB,EAAE;IAE9D;;OAEG;IACH,SAAS,CAAC,4BAA4B,CAAC,IAAI,mCAAmC,CAAC,SAAS,CAAC,EAAE;CAC5F"}
@@ -1,166 +1,189 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.DynamoNTS_SocketService = void 0;
4
- const tslib_1 = require("tslib");
5
- const dynamo_nts_global_settings_1 = require("../_constants/dynamo-nts-global-settings");
6
- const dynamo_nts_singleton_service_1 = require("./dynamo-nts-singleton.service");
7
- const dynamo_nts_socket_event_params_1 = require("../_models/dynamo-nts-socket-event-params");
8
- const socket_event_enum_1 = require("../_enums/http/socket-event.enum");
9
- const dynamo_nts_global_service_1 = require("./dynamo-nts-global.service");
10
- const fsm_dynamo_1 = require("@futdevpro/fsm-dynamo");
11
- /**
12
- *
13
- */
14
- class DynamoNTS_SocketService extends dynamo_nts_singleton_service_1.DynamoNTS_SingletonService {
15
- constructor() {
16
- super();
17
- this.activeSockets = [];
18
- this.log = dynamo_nts_global_settings_1.dynamoNTS_GlobalSettings.logSetup;
19
- this.defaultErrorUserMsg = `We encountered an unhandled Socket Error, ` +
20
- `\nplease contact the responsible development team.`;
21
- try {
22
- this.setupServiceParams();
23
- this.setupEvents();
24
- this.attachToGlobalCollection();
25
- this.prepareEvents();
26
- if (this.log)
27
- console.log(`Socket Controller setup done: ${this.params.name} (${this.params.port}) serurity: ${this.params.security}\n`);
28
- }
29
- catch (error) {
30
- fsm_dynamo_1.Dynamo_Log.error(`Socket Controller setup failed: ${this.params.name} (${this.params.port})`, error);
31
- }
32
- }
33
- get name() { return this.params.name; }
34
- get port() { return this.params.port; }
35
- get security() { return this.params.security; }
36
- attachToGlobalCollection() {
37
- dynamo_nts_global_service_1.DynamoNTS_GlobalService.attachNewSocketService(this);
38
- }
39
- /**
40
- * You must setup events and required services for this function
41
- */
42
- prepareEvents() {
43
- const connectEventIndex = this.incomingEvents.findIndex((event) => event.event === socket_event_enum_1.DynamoNTS_SocketEvent.connection);
44
- if (0 <= connectEventIndex) {
45
- this.connectEvent = this.incomingEvents.splice(connectEventIndex)[0];
46
- }
47
- else {
48
- this.connectEvent = new dynamo_nts_socket_event_params_1.DynamoNTS_SocketEventParams({
49
- event: socket_event_enum_1.DynamoNTS_SocketEvent.connection,
50
- tasks: []
51
- });
52
- }
53
- this.connectEvent.socketName = this.params.name;
54
- if (this.getDicFromSubscrioption) {
55
- const subscriptionEventIndex = this.incomingEvents.findIndex((event) => event.event === socket_event_enum_1.DynamoNTS_SocketEvent.subscribe);
56
- if (0 <= subscriptionEventIndex) {
57
- this.subscriptionEvent = this.incomingEvents.splice(subscriptionEventIndex)[0];
58
- }
59
- else {
60
- this.subscriptionEvent = new dynamo_nts_socket_event_params_1.DynamoNTS_SocketEventParams({
61
- event: socket_event_enum_1.DynamoNTS_SocketEvent.subscribe,
62
- tasks: []
63
- });
64
- }
65
- const disconnectEventIndex = this.incomingEvents.findIndex((event) => event.event === socket_event_enum_1.DynamoNTS_SocketEvent.disconnect);
66
- if (0 <= disconnectEventIndex) {
67
- this.incomingEvents[disconnectEventIndex].tasks.push(this.removeSubscriptionOnDisconnect);
68
- }
69
- else {
70
- this.incomingEvents.push(new dynamo_nts_socket_event_params_1.DynamoNTS_SocketEventParams({
71
- event: socket_event_enum_1.DynamoNTS_SocketEvent.disconnect,
72
- tasks: [
73
- this.removeSubscriptionOnDisconnect
74
- ]
75
- }));
76
- }
77
- this.subscriptionEvent.socketName = this.params.name;
78
- }
79
- this.incomingEvents.forEach((event) => {
80
- event.socketName = this.params.name;
81
- });
82
- }
83
- setupSocketServer(newSocketServer) {
84
- return tslib_1.__awaiter(this, void 0, void 0, function* () {
85
- this.socketServer = newSocketServer;
86
- this.socketServer.on(socket_event_enum_1.DynamoNTS_SocketEvent.connection, (socket) => tslib_1.__awaiter(this, void 0, void 0, function* () {
87
- let issuer;
88
- for (let i = 0; i < this.connectEvent.preProcessess.length; i++) {
89
- yield this.connectEvent.preProcessess[i](socket);
90
- }
91
- for (let i = 0; i < this.connectEvent.tasks.length; i++) {
92
- yield this.connectEvent.tasks[i](socket);
93
- }
94
- if (this.getDicFromSubscrioption) {
95
- socket.on(socket_event_enum_1.DynamoNTS_SocketEvent.subscribe, (content) => tslib_1.__awaiter(this, void 0, void 0, function* () {
96
- const dic = yield this.getDicFromSubscrioption(content);
97
- issuer = dic.issuerId;
98
- this.socketSubscription(dic);
99
- this.subscriptionEvent.getFullExecution(issuer)(content);
100
- }));
101
- }
102
- this.incomingEvents.forEach((event) => {
103
- socket.on(event.event, event.getFullExecution(issuer));
104
- });
105
- }));
106
- this.socketServer.listen(this.params.port);
107
- console.log(`\nsocket service setup finished: ${this.params.name}` +
108
- `\nsocket server listening on port: ${this.params.port}`);
109
- });
110
- }
111
- socketSubscription(dictionary) {
112
- return tslib_1.__awaiter(this, void 0, void 0, function* () {
113
- const activeSocket = this.activeSockets.find((dic) => dic.issuerId === dictionary.issuerId);
114
- if (activeSocket) {
115
- activeSocket.sockets.push(dictionary.sockets[0]);
116
- }
117
- else {
118
- this.activeSockets.push(dictionary);
119
- }
120
- });
121
- }
122
- removeSubscriptionOnDisconnect(socket) {
123
- return tslib_1.__awaiter(this, void 0, void 0, function* () {
124
- const activeSocketIndex = this.activeSockets.findIndex((dic) => dic.sockets.includes(socket));
125
- if (0 <= activeSocketIndex) {
126
- const socketIndex = this.activeSockets[activeSocketIndex].sockets.findIndex((s) => s === socket);
127
- this.activeSockets[activeSocketIndex].sockets.splice(socketIndex);
128
- if (this.activeSockets[activeSocketIndex].sockets.length === 0) {
129
- this.activeSockets.splice(activeSocketIndex);
130
- }
131
- }
132
- });
133
- }
134
- emitEvent(event, content) {
135
- this.socketServer.emit(event, content);
136
- }
137
- idIsSubscribed(id) {
138
- return !!this.activeSockets.find((dic) => dic.issuerId === id);
139
- }
140
- sendEventForId(id, event, content, error) {
141
- return tslib_1.__awaiter(this, void 0, void 0, function* () {
142
- const dic = this.activeSockets.find((dic) => dic.issuerId === id);
143
- if (dic) {
144
- dic.emitEvent(event, content);
145
- }
146
- else {
147
- if (error) {
148
- throw new fsm_dynamo_1.Dynamo_Error({
149
- status: 404,
150
- errorCode: 'NTS-S99-001',
151
- addECToUserMsg: true,
152
- message: `No active socket whit this specific ID: ${id}`,
153
- userMessage: this.defaultErrorUserMsg
154
- });
155
- }
156
- }
157
- });
158
- }
159
- broadcastEvent(event, content) {
160
- this.activeSockets.forEach((dic) => {
161
- dic.emitEvent(event, content);
162
- });
163
- }
164
- }
165
- exports.DynamoNTS_SocketService = DynamoNTS_SocketService;
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DynamoNTS_SocketService = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const fsm_dynamo_1 = require("@futdevpro/fsm-dynamo");
6
+ const dynamo_nts_global_service_1 = require("./dynamo-nts-global.service");
7
+ const dynamo_nts_singleton_service_1 = require("./dynamo-nts-singleton.service");
8
+ const dynamo_nts_global_settings_1 = require("../_constants/dynamo-nts-global-settings");
9
+ const dynamo_nts_socket_event_params_1 = require("../_models/dynamo-nts-socket-event-params");
10
+ const socket_event_enum_1 = require("../_enums/http/socket-event.enum");
11
+ /**
12
+ *
13
+ */
14
+ class DynamoNTS_SocketService extends dynamo_nts_singleton_service_1.DynamoNTS_SingletonService {
15
+ get name() { return this.params.name; }
16
+ get port() { return this.params.port; }
17
+ get security() { return this.params.security; }
18
+ constructor() {
19
+ var _a;
20
+ super();
21
+ this.presences = [];
22
+ this.log = dynamo_nts_global_settings_1.dynamoNTS_GlobalSettings.logSetup;
23
+ this.defaultErrorUserMsg = `We encountered an unhandled Socket Error, ` +
24
+ `\nplease contact the responsible development team.`;
25
+ try {
26
+ this.params = this.getServiceParams();
27
+ this.incomingEvents = (_a = this.getIncomingEvents()) !== null && _a !== void 0 ? _a : [];
28
+ this.attachToGlobalCollection();
29
+ this.prepareEvents();
30
+ if (this.log)
31
+ console.log(`Socket Controller setup done: ${this.params.name} (${this.params.port}) serurity: ${this.params.security}\n`);
32
+ }
33
+ catch (error) {
34
+ fsm_dynamo_1.Dynamo_Log.error(`Socket Controller setup failed: ${this.params.name} (${this.params.port})`, error);
35
+ }
36
+ }
37
+ attachToGlobalCollection() {
38
+ dynamo_nts_global_service_1.DynamoNTS_GlobalService.attachNewSocketService(this);
39
+ }
40
+ /**
41
+ * You must setup events and required services for this function
42
+ */
43
+ prepareEvents() {
44
+ const connectEventIndex = this.incomingEvents.findIndex((event) => event.event === socket_event_enum_1.DynamoNTS_SocketEvent.connection);
45
+ if (0 <= connectEventIndex) {
46
+ this.connectEvent = this.incomingEvents.splice(connectEventIndex)[0];
47
+ }
48
+ else {
49
+ this.connectEvent = new dynamo_nts_socket_event_params_1.DynamoNTS_SocketEventParams({
50
+ event: socket_event_enum_1.DynamoNTS_SocketEvent.connection,
51
+ tasks: []
52
+ });
53
+ }
54
+ this.connectEvent.socketName = this.params.name;
55
+ if (this.getPresenceFromSubscrioptionEventContent) {
56
+ const subscriptionEventIndex = this.incomingEvents.findIndex((event) => event.event === socket_event_enum_1.DynamoNTS_SocketEvent.subscribe);
57
+ if (0 <= subscriptionEventIndex) {
58
+ this.subscriptionEvent = this.incomingEvents.splice(subscriptionEventIndex)[0];
59
+ fsm_dynamo_1.Dynamo_Log.error(`You should not set the subscription event, but the subscriptions tasks, ` +
60
+ `in case you need additional steps for your subscripotions.`);
61
+ }
62
+ else {
63
+ this.subscriptionEvent = new dynamo_nts_socket_event_params_1.DynamoNTS_SocketEventParams({ event: socket_event_enum_1.DynamoNTS_SocketEvent.subscribe });
64
+ }
65
+ if (this.getSubscriptionPreProcessess) {
66
+ this.subscriptionEvent.preProcessess.push(...this.getSubscriptionPreProcessess());
67
+ }
68
+ if (this.getSubscriptionTasks) {
69
+ this.subscriptionEvent.tasks.push(...this.getSubscriptionTasks());
70
+ }
71
+ const disconnectEventIndex = this.incomingEvents.findIndex((event) => event.event === socket_event_enum_1.DynamoNTS_SocketEvent.disconnect);
72
+ if (0 <= disconnectEventIndex) {
73
+ this.incomingEvents[disconnectEventIndex].tasks.push(this.removeSubscriptionOnDisconnect);
74
+ }
75
+ else {
76
+ this.incomingEvents.push(new dynamo_nts_socket_event_params_1.DynamoNTS_SocketEventParams({
77
+ event: socket_event_enum_1.DynamoNTS_SocketEvent.disconnect,
78
+ tasks: [
79
+ this.removeSubscriptionOnDisconnect
80
+ ]
81
+ }));
82
+ }
83
+ this.subscriptionEvent.socketName = this.params.name;
84
+ }
85
+ this.incomingEvents.forEach((event) => {
86
+ event.socketName = this.params.name;
87
+ });
88
+ }
89
+ setupSocketServer(newSocketServer) {
90
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
91
+ this.socketServer = newSocketServer;
92
+ this.socketServer.on(socket_event_enum_1.DynamoNTS_SocketEvent.connection, (socket) => tslib_1.__awaiter(this, void 0, void 0, function* () {
93
+ let issuer;
94
+ for (let i = 0; i < this.connectEvent.preProcessess.length; i++) {
95
+ yield this.connectEvent.preProcessess[i](socket);
96
+ }
97
+ for (let i = 0; i < this.connectEvent.tasks.length; i++) {
98
+ yield this.connectEvent.tasks[i](socket);
99
+ }
100
+ if (this.getPresenceFromSubscrioptionEventContent) {
101
+ socket.on(socket_event_enum_1.DynamoNTS_SocketEvent.subscribe, (content) => tslib_1.__awaiter(this, void 0, void 0, function* () {
102
+ try {
103
+ const presence = yield this.getPresenceFromSubscrioptionEventContent(content);
104
+ issuer = presence.issuerId;
105
+ this.socketSubscription(presence);
106
+ yield this.subscriptionEvent.executeEventTasks(issuer, content);
107
+ }
108
+ catch (error) {
109
+ fsm_dynamo_1.Dynamo_Log.error(`Socket Subscription failed: ${this.params.name} (${this.params.port})`, error);
110
+ socket.emit(socket_event_enum_1.DynamoNTS_SocketEvent.error, error);
111
+ }
112
+ }));
113
+ }
114
+ this.incomingEvents.forEach((event) => {
115
+ socket.on(event.event, (content) => tslib_1.__awaiter(this, void 0, void 0, function* () {
116
+ try {
117
+ yield event.executeEventTasks(issuer, content);
118
+ }
119
+ catch (error) {
120
+ fsm_dynamo_1.Dynamo_Log.error(`Socket Event failed: ${this.params.name} (${this.params.port})`, error);
121
+ socket.emit(socket_event_enum_1.DynamoNTS_SocketEvent.error, error);
122
+ }
123
+ }));
124
+ });
125
+ }));
126
+ this.socketServer.listen(this.params.port);
127
+ console.log(`\nsocket service setup finished: ${this.params.name}` +
128
+ `\nsocket server listening on port: ${this.params.port}`);
129
+ });
130
+ }
131
+ socketSubscription(newPresence) {
132
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
133
+ const activePresence = this.presences.find((pres) => pres.issuerId === newPresence.issuerId);
134
+ if (activePresence) {
135
+ activePresence.sockets.push(newPresence.sockets[0]);
136
+ }
137
+ else {
138
+ this.presences.push(newPresence);
139
+ }
140
+ });
141
+ }
142
+ removeSubscriptionOnDisconnect(socket) {
143
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
144
+ const activePresenceIndex = this.presences.findIndex((pres) => pres.sockets.includes(socket));
145
+ if (0 <= activePresenceIndex) {
146
+ const presenceIndex = this.presences[activePresenceIndex].sockets.findIndex((s) => s === socket);
147
+ this.presences[activePresenceIndex].sockets.splice(presenceIndex);
148
+ if (this.presences[activePresenceIndex].sockets.length === 0) {
149
+ this.presences.splice(activePresenceIndex);
150
+ }
151
+ }
152
+ });
153
+ }
154
+ emitEvent(event, content) {
155
+ this.socketServer.emit(event, content);
156
+ }
157
+ idIsSubscribed(id) {
158
+ return !!this.presences.find((presence) => presence.issuerId === id);
159
+ }
160
+ emitError(presenceIssuerId, error) {
161
+ this.sendEventForId(presenceIssuerId, socket_event_enum_1.DynamoNTS_SocketEvent.error, error);
162
+ }
163
+ sendEventForId(id, event, content, error) {
164
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
165
+ const presence = this.presences.find((pres) => pres.issuerId === id);
166
+ if (presence) {
167
+ presence.emitEvent(event, content);
168
+ }
169
+ else {
170
+ if (error) {
171
+ throw new fsm_dynamo_1.Dynamo_Error({
172
+ status: 404,
173
+ errorCode: 'NTS-S99-001',
174
+ addECToUserMsg: true,
175
+ message: `No active socket whit this specific ID: ${id}`,
176
+ userMessage: this.defaultErrorUserMsg
177
+ });
178
+ }
179
+ }
180
+ });
181
+ }
182
+ broadcastEvent(event, content) {
183
+ this.presences.forEach((presence) => {
184
+ presence.emitEvent(event, content);
185
+ });
186
+ }
187
+ }
188
+ exports.DynamoNTS_SocketService = DynamoNTS_SocketService;
166
189
  //# sourceMappingURL=dynamo-nts-socket.service.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"dynamo-nts-socket.service.js","sourceRoot":"","sources":["../../src/_services/dynamo-nts-socket.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dynamo-nts-socket.service.js","sourceRoot":"","sources":["../../src/_services/dynamo-nts-socket.service.ts"],"names":[],"mappings":"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"}