@futdevpro/nts-dynamo 1.10.7 → 1.10.9

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 (82) hide show
  1. package/build/_collections/stack.util.d.ts +7 -0
  2. package/build/_collections/stack.util.d.ts.map +1 -0
  3. package/build/_collections/stack.util.js +31 -0
  4. package/build/_collections/stack.util.js.map +1 -0
  5. package/build/_collections/stack.util.test.d.ts +2 -0
  6. package/build/_collections/stack.util.test.d.ts.map +1 -0
  7. package/build/_collections/stack.util.test.js +96 -0
  8. package/build/_collections/stack.util.test.js.map +1 -0
  9. package/build/_models/control-models/api-call-params.control-model.d.ts +1 -0
  10. package/build/_models/control-models/api-call-params.control-model.d.ts.map +1 -1
  11. package/build/_models/control-models/api-call-params.control-model.js +7 -3
  12. package/build/_models/control-models/api-call-params.control-model.js.map +1 -1
  13. package/build/_models/control-models/endpoint-params.control-model.d.ts +0 -1
  14. package/build/_models/control-models/endpoint-params.control-model.d.ts.map +1 -1
  15. package/build/_models/control-models/endpoint-params.control-model.js +26 -13
  16. package/build/_models/control-models/endpoint-params.control-model.js.map +1 -1
  17. package/build/_modules/mock/data-model.mock.d.ts.map +1 -1
  18. package/build/_modules/mock/data-model.mock.js +2 -3
  19. package/build/_modules/mock/data-model.mock.js.map +1 -1
  20. package/build/_modules/mock/data-model.mock.spec.js +0 -1
  21. package/build/_modules/mock/data-model.mock.spec.js.map +1 -1
  22. package/build/_modules/mock/socket-client.mock.js +1 -1
  23. package/build/_modules/mock/socket-client.mock.js.map +1 -1
  24. package/build/_modules/mock/socket-client.mock.spec.js +1 -1
  25. package/build/_modules/mock/socket-client.mock.spec.js.map +1 -1
  26. package/build/_modules/socket/_models/socket-client-service-params.control-model.d.ts.map +1 -1
  27. package/build/_modules/socket/_models/socket-client-service-params.control-model.js +1 -1
  28. package/build/_modules/socket/_models/socket-client-service-params.control-model.js.map +1 -1
  29. package/build/_modules/socket/_models/socket-client-service-params.control-model.spec.js +1 -1
  30. package/build/_modules/socket/_models/socket-client-service-params.control-model.spec.js.map +1 -1
  31. package/build/_modules/socket/_services/socket-client.service.d.ts +2 -2
  32. package/build/_modules/socket/_services/socket-client.service.d.ts.map +1 -1
  33. package/build/_modules/socket/_services/socket-client.service.js +7 -2
  34. package/build/_modules/socket/_services/socket-client.service.js.map +1 -1
  35. package/build/_modules/socket/_services/socket-server.service.d.ts +9 -11
  36. package/build/_modules/socket/_services/socket-server.service.d.ts.map +1 -1
  37. package/build/_modules/socket/_services/socket-server.service.js +243 -109
  38. package/build/_modules/socket/_services/socket-server.service.js.map +1 -1
  39. package/build/_modules/socket/app-extended.server.d.ts.map +1 -1
  40. package/build/_modules/socket/app-extended.server.js +11 -2
  41. package/build/_modules/socket/app-extended.server.js.map +1 -1
  42. package/build/_modules/test/test.controller.js +6 -6
  43. package/build/_modules/test/test.controller.js.map +1 -1
  44. package/build/_services/base/data.service.d.ts.map +1 -1
  45. package/build/_services/base/data.service.js +9 -1
  46. package/build/_services/base/data.service.js.map +1 -1
  47. package/build/_services/base/db.service.d.ts.map +1 -1
  48. package/build/_services/base/db.service.js +42 -39
  49. package/build/_services/base/db.service.js.map +1 -1
  50. package/build/_services/core/api.service.d.ts.map +1 -1
  51. package/build/_services/core/api.service.js +15 -8
  52. package/build/_services/core/api.service.js.map +1 -1
  53. package/build/_services/core/global.service.d.ts.map +1 -1
  54. package/build/_services/core/global.service.js +2 -1
  55. package/build/_services/core/global.service.js.map +1 -1
  56. package/build/_services/server/app.server.js +5 -5
  57. package/build/_services/server/app.server.js.map +1 -1
  58. package/build/index.d.ts +2 -0
  59. package/build/index.d.ts.map +1 -1
  60. package/build/index.js +2 -0
  61. package/build/index.js.map +1 -1
  62. package/package.json +4 -4
  63. package/src/_collections/stack.util.test.ts +111 -0
  64. package/src/_collections/stack.util.ts +33 -0
  65. package/src/_models/control-models/api-call-params.control-model.ts +17 -3
  66. package/src/_models/control-models/endpoint-params.control-model.ts +26 -19
  67. package/src/_modules/mock/data-model.mock.spec.ts +0 -1
  68. package/src/_modules/mock/data-model.mock.ts +2 -3
  69. package/src/_modules/mock/socket-client.mock.spec.ts +1 -1
  70. package/src/_modules/mock/socket-client.mock.ts +1 -1
  71. package/src/_modules/socket/_models/socket-client-service-params.control-model.spec.ts +1 -2
  72. package/src/_modules/socket/_models/socket-client-service-params.control-model.ts +2 -1
  73. package/src/_modules/socket/_services/socket-client.service.ts +8 -4
  74. package/src/_modules/socket/_services/socket-server.service.ts +335 -145
  75. package/src/_modules/socket/app-extended.server.ts +21 -6
  76. package/src/_modules/test/test.controller.ts +7 -7
  77. package/src/_services/base/data.service.ts +21 -1
  78. package/src/_services/base/db.service.ts +47 -39
  79. package/src/_services/core/api.service.ts +18 -10
  80. package/src/_services/core/global.service.ts +4 -1
  81. package/src/_services/server/app.server.ts +7 -7
  82. package/src/index.ts +2 -0
@@ -1 +1 @@
1
- {"version":3,"file":"socket-client.service.js","sourceRoot":"","sources":["../../../../src/_modules/socket/_services/socket-client.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"socket-client.service.js","sourceRoot":"","sources":["../../../../src/_modules/socket/_services/socket-client.service.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
1
  import * as SocketIO from 'socket.io';
2
- import { DyFM_SocketEvent, DyFM_SocketEventPreprocessTask, DyFM_SocketEventTask } from '@futdevpro/fsm-dynamo/socket';
2
+ import { DyFM_AnyError } from '@futdevpro/fsm-dynamo';
3
+ import { DyFM_SocketEvent, DyFM_SocketEventTask } from '@futdevpro/fsm-dynamo/socket';
3
4
  import { DyNTS_SingletonService } from '../../../_services/base/singleton.service';
4
5
  import { DyNTS_SocketSecurity } from '../_enums/socket-security.enum';
5
6
  import { DyNTS_SocketPresence } from '../_models/socket-presence.control-model';
@@ -25,10 +26,7 @@ export declare abstract class DyNTS_SocketServerService<T_Presence extends DyNTS
25
26
  get activeSubscriptionsCount(): number;
26
27
  protected openSocketServer: SocketIO.Server;
27
28
  protected secureSocketServer: SocketIO.Server;
28
- private connectEvent;
29
29
  protected incomingEvents: DyFM_SocketEvent<any>[];
30
- private subscriptionEvent;
31
- private unsubscribeEvent;
32
30
  protected presences: T_Presence[];
33
31
  get logSetup(): boolean;
34
32
  get highDetailedLogs(): boolean;
@@ -46,6 +44,8 @@ export declare abstract class DyNTS_SocketServerService<T_Presence extends DyNTS
46
44
  private prepareEvents;
47
45
  setupSocketServer(newSocketServer: SocketIO.Server, security: DyNTS_SocketSecurity.open | DyNTS_SocketSecurity.secure, successCallback: () => void): Promise<SocketIO.Server>;
48
46
  protected addSocketToPresence(newPresence: T_Presence): Promise<void>;
47
+ protected closeSocket(socket: SocketIO.Socket, issuer: string, withError?: DyFM_AnyError): Promise<void>;
48
+ protected removeSocketFromPresence(socket: SocketIO.Socket): Promise<void>;
49
49
  private disconnectBaseTask;
50
50
  private removeSubscription;
51
51
  idIsSubscribed(id: string): boolean;
@@ -64,23 +64,21 @@ export declare abstract class DyNTS_SocketServerService<T_Presence extends DyNTS
64
64
  /**
65
65
  * You can setup tasks for the subscription event in this function
66
66
  */
67
- protected getSubscriptionTasks?(): DyFM_SocketEventTask<T_SubscriptionContent>[];
68
67
  /**
69
- * You can setup tasks for the subscription event in this function
68
+ * You can setup preprocesses for the subscription event in this function
70
69
  */
71
- protected getSubscriptionCloseTasks?(): DyFM_SocketEventTask<null>[];
72
70
  /**
73
- * You can setup preprocesses for the subscription event in this function
71
+ * You can setup tasks for the subscription event in this function
72
+ * This will happen after the presence is created
73
+ * If this throws an error, the socket will be closed
74
74
  */
75
- protected getSubscriptionPreProcesses?(): DyFM_SocketEventPreprocessTask[];
75
+ protected getSubscriptionTasks?(): DyFM_SocketEventTask<T_SubscriptionContent>[];
76
76
  /**
77
77
  * You can setup tasks for the unsubscribe event in this function
78
78
  */
79
- protected getUnsubscribeTasks?(): DyFM_SocketEventTask<T_SubscriptionContent>[];
80
79
  /**
81
80
  * You can setup preprocesses for the unsubscribe event in this function
82
81
  */
83
- protected getUnsubscribePreProcesses?(): DyFM_SocketEventPreprocessTask[];
84
82
  /**
85
83
  * You can setup tasks for the error event in this function
86
84
  */
@@ -1 +1 @@
1
- {"version":3,"file":"socket-server.service.d.ts","sourceRoot":"","sources":["../../../../src/_modules/socket/_services/socket-server.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"socket-server.service.d.ts","sourceRoot":"","sources":["../../../../src/_modules/socket/_services/socket-server.service.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.DyNTS_SocketServerService = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const SocketIO = tslib_1.__importStar(require("socket.io"));
4
6
  const fsm_dynamo_1 = require("@futdevpro/fsm-dynamo");
5
7
  const socket_1 = require("@futdevpro/fsm-dynamo/socket");
6
8
  const global_settings_const_1 = require("../../../_collections/global-settings.const");
@@ -27,17 +29,19 @@ class DyNTS_SocketServerService extends singleton_service_1.DyNTS_SingletonServi
27
29
  get activeSubscriptionsCount() { return this.presences.length; }
28
30
  openSocketServer;
29
31
  secureSocketServer;
30
- connectEvent;
32
+ /* private connectEvent: DyFM_SocketEvent<SocketIO.Socket>; */
31
33
  incomingEvents;
32
- subscriptionEvent;
33
- unsubscribeEvent;
34
+ /* private subscriptionEvent: DyFM_SocketEvent<any>; */
35
+ /* private unsubscribeEvent: DyFM_SocketEvent<any>; */
34
36
  presences = [];
35
37
  get logSetup() { return global_settings_const_1.DyNTS_global_settings.log_settings.setup; }
36
38
  get highDetailedLogs() { return global_settings_const_1.DyNTS_global_settings.log_settings.highDetailedLogs; }
37
39
  defaultErrorUserMsg = `We encountered an unhandled Socket Server Error, ` +
38
40
  `\nplease contact the responsible development team.`;
41
+ /* readonly thisLocationStack: string; */
39
42
  constructor() {
40
43
  super();
44
+ /* this.thisLocationStack = DyNTS_getStackLocation(); */
41
45
  this.asyncConstructor().catch((error) => {
42
46
  fsm_dynamo_1.DyFM_Log.error(`Socket Server Service setup failed: "${this.params?.name}" (${this.params?.port})`, error);
43
47
  });
@@ -65,88 +69,95 @@ class DyNTS_SocketServerService extends singleton_service_1.DyNTS_SingletonServi
65
69
  async prepareEvents() {
66
70
  try {
67
71
  /** Setup connect event */
68
- const connectEventIndex = this.incomingEvents.findIndex((event) => event.eventKey === socket_1.DyFM_SocketEvent_Key.connection);
72
+ /* const connectEventIndex = this.incomingEvents.findIndex(
73
+ (event: DyFM_SocketEvent<any>) =>
74
+ event.eventKey === DyFM_SocketEvent_Key.connection
75
+ );
76
+
69
77
  if (0 <= connectEventIndex) {
70
- this.connectEvent = this.incomingEvents.splice(connectEventIndex)[0];
78
+ this.connectEvent = this.incomingEvents.splice(connectEventIndex)[0];
79
+ } else {
80
+ this.connectEvent = new DyFM_SocketEvent({
81
+ eventKey: DyFM_SocketEvent_Key.connection,
82
+ });
71
83
  }
72
- else {
73
- this.connectEvent = new socket_1.DyFM_SocketEvent({
74
- eventKey: socket_1.DyFM_SocketEvent_Key.connection,
84
+ this.connectEvent.serviceName = this.params.name; */
85
+ if (!this.getPresenceFromSubscriptionEventContent) {
86
+ throw new fsm_dynamo_1.DyFM_Error({
87
+ error: new Error('getPresenceFromSubscriptionEventContent must be set'),
88
+ errorCode: 'NTS-SSS-PPE1',
75
89
  });
76
90
  }
77
- this.connectEvent.serviceName = this.params.name;
78
- /** Setup subscriptions events */
79
- if (this.getPresenceFromSubscriptionEventContent) {
80
- /** Setup subscription event */
81
- const subscriptionEventIndex = this.incomingEvents.findIndex((event) => event.eventKey === socket_1.DyFM_SocketEvent_Key.subscribe);
82
- if (0 <= subscriptionEventIndex) {
83
- this.subscriptionEvent = this.incomingEvents.splice(subscriptionEventIndex)[0];
84
- fsm_dynamo_1.DyFM_Log.error(`You should not set the subscription event, but the subscriptions tasks, ` +
85
- `in case you need additional steps for your subscriptions.`, `${this.params.name} (${this.params.port})`);
86
- }
87
- else {
88
- this.subscriptionEvent = new socket_1.DyFM_SocketEvent({
89
- eventKey: socket_1.DyFM_SocketEvent_Key.subscribe,
90
- });
91
- }
92
- if (this.getSubscriptionPreProcesses) {
93
- this.subscriptionEvent.preProcesses.push(...this.getSubscriptionPreProcesses());
94
- }
95
- if (this.getSubscriptionTasks) {
96
- this.subscriptionEvent.tasks.push(...this.getSubscriptionTasks());
97
- }
98
- this.subscriptionEvent.serviceName = this.params.name;
99
- /** Setup subscription event */
100
- const unsubscribeEventIndex = this.incomingEvents.findIndex((event) => event.eventKey === socket_1.DyFM_SocketEvent_Key.unsubscribe);
101
- if (0 <= unsubscribeEventIndex) {
102
- this.unsubscribeEvent = this.incomingEvents.splice(unsubscribeEventIndex)[0];
103
- fsm_dynamo_1.DyFM_Log.error(`You should not set the unsubscribe event, but the unsubscribe tasks, ` +
104
- `in case you need additional steps for your unsubscribe.`, `${this.params.name} (${this.params.port})`);
105
- }
106
- else {
107
- this.unsubscribeEvent = new socket_1.DyFM_SocketEvent({
108
- eventKey: socket_1.DyFM_SocketEvent_Key.unsubscribe,
109
- });
110
- }
111
- if (this.getUnsubscribePreProcesses) {
112
- this.unsubscribeEvent.preProcesses.push(...this.getUnsubscribePreProcesses());
113
- }
114
- if (this.getUnsubscribeTasks) {
115
- this.unsubscribeEvent.tasks.push(...this.getUnsubscribeTasks());
116
- }
117
- this.unsubscribeEvent.serviceName = this.params.name;
118
- /** Setup disconnect event */
119
- const disconnectEventIndex = this.incomingEvents.findIndex((event) => event.eventKey === socket_1.DyFM_SocketEvent_Key.disconnect);
120
- if (0 <= disconnectEventIndex) {
121
- this.incomingEvents[disconnectEventIndex].serviceName = this.params.name;
122
- this.incomingEvents[disconnectEventIndex].tasks.push(this.disconnectBaseTask);
123
- }
124
- else {
125
- this.incomingEvents.push(new socket_1.DyFM_SocketEvent({
126
- serviceName: this.params.name,
127
- eventKey: socket_1.DyFM_SocketEvent_Key.disconnect,
128
- tasks: [
129
- this.disconnectBaseTask,
130
- ],
131
- }));
132
- }
133
- /** Setup error event */
134
- const errorEventIndex = this.incomingEvents.findIndex((event) => event.eventKey === socket_1.DyFM_SocketEvent_Key.error);
135
- if (errorEventIndex == -1 && this.errorHandling) {
136
- this.incomingEvents.push(new socket_1.DyFM_SocketEvent({
137
- serviceName: this.params.name,
138
- eventKey: socket_1.DyFM_SocketEvent_Key.error,
139
- tasks: [
140
- this.errorHandling,
141
- ],
142
- }));
143
- }
144
- this.subscriptionEvent.name = this.params.name;
91
+ if (!this.getSubscriptionTasks) {
92
+ fsm_dynamo_1.DyFM_Log.warn(`You should not set the subscription event, ` +
93
+ `in case you need additional steps for your subscriptions.`, `${this.params.name} (${this.params.port})`);
94
+ }
95
+ if (this.incomingEvents.find((event) => event.eventKey === socket_1.DyFM_SocketEvent_Key.subscribe)) {
96
+ fsm_dynamo_1.DyFM_Log.warn(`You need to use getSubscriptionTasks() ` +
97
+ `instead of setting the subscribe event in getIncomingEvents().`, `${this.params.name} (${this.params.port})`);
98
+ }
99
+ if (!this.incomingEvents.find((event) => event.eventKey === socket_1.DyFM_SocketEvent_Key.unsubscribe)) {
100
+ fsm_dynamo_1.DyFM_Log.warn(`You should not set the unsubscribe event, ` +
101
+ `in case you need additional steps for your unsubscribe.`, `${this.params.name} (${this.params.port})`);
102
+ }
103
+ if (this.incomingEvents.find((event) => !event.eventKey)) {
104
+ throw new fsm_dynamo_1.DyFM_Error({
105
+ error: new Error('eventKey must be set'),
106
+ errorCode: 'NTS-SSS-PPE2',
107
+ });
108
+ }
109
+ this.incomingEvents.push(new socket_1.DyFM_SocketEvent({
110
+ eventKey: socket_1.DyFM_SocketEvent_Key.disconnect,
111
+ tasks: [
112
+ async (socket, issuer) => this.disconnectBaseTask(socket, issuer),
113
+ ],
114
+ }));
115
+ if (this.errorHandling) {
116
+ this.incomingEvents.push(new socket_1.DyFM_SocketEvent({
117
+ serviceName: this.params.name,
118
+ eventKey: socket_1.DyFM_SocketEvent_Key.error,
119
+ tasks: [
120
+ async (content) => this.errorHandling(content),
121
+ ],
122
+ }));
145
123
  }
146
124
  else {
147
- fsm_dynamo_1.DyFM_Log.error('getPresenceFromSubscriptionEventContent is not set', `"${this.params.name}" (${this.params.port})`);
125
+ fsm_dynamo_1.DyFM_Log.warn(`You should not set the error event, ` +
126
+ `in case you need additional steps for your error.`, `${this.params.name} (${this.params.port})`);
127
+ this.incomingEvents.push(new socket_1.DyFM_SocketEvent({
128
+ serviceName: this.params.name,
129
+ eventKey: socket_1.DyFM_SocketEvent_Key.error,
130
+ tasks: [
131
+ async (content) => {
132
+ if (content instanceof fsm_dynamo_1.DyFM_Error) {
133
+ content.logSimple(`=--> socket-client(${this.params.name}) ERROR`);
134
+ }
135
+ else {
136
+ fsm_dynamo_1.DyFM_Log.error(`=--> socket-client(${this.params.name}) ERROR:`, content);
137
+ }
138
+ }
139
+ ],
140
+ }));
148
141
  }
149
- /** Set incoming events serviceName */
142
+ // Merge incoming events of the same eventKey
143
+ const eventKeys = this.incomingEvents.map((event) => event.eventKey).filter((eventKey, index, self) => self.indexOf(eventKey) === index);
144
+ const mergedEvents = [];
145
+ eventKeys.forEach((eventKey) => {
146
+ const events = this.incomingEvents.filter((event) => event.eventKey === eventKey);
147
+ mergedEvents.push(new socket_1.DyFM_SocketEvent({
148
+ eventKey: eventKey,
149
+ preProcesses: events.map((event) => event.preProcesses).flat(),
150
+ tasks: events.map((event) => event.tasks).flat(),
151
+ }));
152
+ });
153
+ this.incomingEvents = mergedEvents;
154
+ if (global_settings_const_1.DyNTS_global_settings.log_settings.setup) {
155
+ fsm_dynamo_1.DyFM_Log.log(`Socket Server Service - Event Preparation setup done: ` +
156
+ `"${this.params?.name}" (${this.params?.port})` +
157
+ `\nincomingEvents:`, this.incomingEvents.map((event) => `\n\t"${event.eventKey}": preProcesses: ${event.preProcesses?.length} ` +
158
+ `tasks: ${event.tasks?.length}`));
159
+ }
160
+ // Set incoming events serviceName
150
161
  this.incomingEvents.forEach((event) => {
151
162
  event.serviceName = this.params.name;
152
163
  });
@@ -162,12 +173,16 @@ class DyNTS_SocketServerService extends singleton_service_1.DyNTS_SingletonServi
162
173
  try {
163
174
  if (this.highDetailedLogs)
164
175
  console.log('\nfn:. setupSocketServer');
165
- newSocketServer.on(socket_1.DyFM_SocketEvent_Key.connection, async (socket) => {
176
+ newSocketServer.on(socket_1.DyFM_SocketEvent_Key.incomingNewConnection, async (socket) => {
166
177
  try {
167
178
  let issuer;
168
- await this.connectEvent.executeEventTasks(socket);
179
+ /* await this.connectEvent.executeEventTasks(socket); */
180
+ await fsm_dynamo_1.DyFM_Array.asyncForEach(this.incomingEvents.filter((event) => event.eventKey === socket_1.DyFM_SocketEvent_Key.incomingNewConnection), async (event) => {
181
+ await event.executeEventTasks(socket);
182
+ });
169
183
  if (this.getPresenceFromSubscriptionEventContent) {
170
184
  socket.on(socket_1.DyFM_SocketEvent_Key.subscribe, async (content) => {
185
+ let presence;
171
186
  try {
172
187
  /**
173
188
  * usually socket logs are in event.executeEventTasks(),
@@ -183,11 +198,16 @@ class DyNTS_SocketServerService extends singleton_service_1.DyNTS_SingletonServi
183
198
  fsm_dynamo_1.DyFM_Log.log(`--=> incoming socket(${this.params.name}) ` +
184
199
  `event: "${socket_1.DyFM_SocketEvent_Key.subscribe}"`);
185
200
  }
186
- const presence = await this.getPresenceFromSubscriptionEventContent(content, socket);
201
+ presence = await this.getPresenceFromSubscriptionEventContent(content, socket);
187
202
  presence.serviceName = this.params.name;
188
203
  issuer = presence.issuerLocalId;
189
204
  this.addSocketToPresence(presence);
190
- await this.subscriptionEvent.executeEventTasks(content, issuer);
205
+ /* await this.subscriptionEvent.executeEventTasks(content, issuer); */
206
+ if (this.getSubscriptionTasks) {
207
+ await fsm_dynamo_1.DyFM_Array.asyncForEach(this.getSubscriptionTasks(), async (task) => {
208
+ await task(content, issuer);
209
+ });
210
+ }
191
211
  socket.emit(socket_1.DyFM_SocketEvent_Key.subscriptionSuccessful, 'subscribe was successful', error => {
192
212
  fsm_dynamo_1.DyFM_Log.error(`Emitting subscriptionSuccessful event failed!` +
193
213
  `\nerror:`, error);
@@ -195,14 +215,20 @@ class DyNTS_SocketServerService extends singleton_service_1.DyNTS_SingletonServi
195
215
  fsm_dynamo_1.DyFM_Log.success(`<-==> socket(${this.params.name}) subscription successful (${issuer})`);
196
216
  }
197
217
  catch (error) {
198
- if (global_settings_const_1.DyNTS_global_settings.log_settings.socket_eventContent) {
199
- fsm_dynamo_1.DyFM_Log.error(`Socket Subscription failed: "${this.params.name}" `, `(${this.params.port}) will disconnect now...`, error);
218
+ if (error instanceof fsm_dynamo_1.DyFM_Error) {
219
+ error.logSimple(`Socket Subscription failed: "${this.params.name}" ` +
220
+ `(${this.params.port}) will disconnect now...`);
221
+ }
222
+ else if (global_settings_const_1.DyNTS_global_settings.log_settings.socket_eventContent) {
223
+ fsm_dynamo_1.DyFM_Log.error(`Socket Subscription failed: "${this.params.name}" ` +
224
+ `(${this.params.port}) will disconnect now...`,
225
+ /* `${this.thisLocationStack}`, */
226
+ error);
200
227
  }
201
228
  else {
202
229
  fsm_dynamo_1.DyFM_Log.error(`Socket Subscription failed: "${this.params.name}" `, `(${this.params.port}) will disconnect now...`);
203
230
  }
204
- socket.emit(socket_1.DyFM_SocketEvent_Key.error, error);
205
- socket.disconnect();
231
+ await this.closeSocket(socket, issuer, error);
206
232
  }
207
233
  });
208
234
  socket.on(socket_1.DyFM_SocketEvent_Key.unsubscribe, async (issuer) => {
@@ -221,8 +247,11 @@ class DyNTS_SocketServerService extends singleton_service_1.DyNTS_SingletonServi
221
247
  fsm_dynamo_1.DyFM_Log.log(`--=> incoming socket(${this.params.name}) ` +
222
248
  `event: ${socket_1.DyFM_SocketEvent_Key.unsubscribe}`);
223
249
  }
250
+ /* await this.unsubscribeEvent.executeEventTasks(null, issuer); */
251
+ await fsm_dynamo_1.DyFM_Array.asyncForEach(this.incomingEvents.filter((event) => event.eventKey === socket_1.DyFM_SocketEvent_Key.unsubscribe), async (event) => {
252
+ await event.executeEventTasks(null, issuer);
253
+ });
224
254
  this.removeSubscription(socket, issuer);
225
- await this.unsubscribeEvent.executeEventTasks(issuer, issuer);
226
255
  socket.emit(socket_1.DyFM_SocketEvent_Key.unsubscribeSuccessful, 'unsubscribe was successful', error => {
227
256
  fsm_dynamo_1.DyFM_Log.error(`Emitting unsubscribeSuccessful event failed!` +
228
257
  `\nerror:`, error);
@@ -230,23 +259,35 @@ class DyNTS_SocketServerService extends singleton_service_1.DyNTS_SingletonServi
230
259
  fsm_dynamo_1.DyFM_Log.success(`< x > socket(${this.params.name}) unsubscribe successful (${issuer})`);
231
260
  }
232
261
  catch (error) {
233
- if (global_settings_const_1.DyNTS_global_settings.log_settings.socket_eventContent) {
262
+ if (error instanceof fsm_dynamo_1.DyFM_Error) {
263
+ error.logSimple(`Socket Unsubscription failed: "${this.params.name}" ` +
264
+ `(${this.params.port}) will disconnect now...`);
265
+ }
266
+ else if (global_settings_const_1.DyNTS_global_settings.log_settings.socket_eventContent) {
234
267
  fsm_dynamo_1.DyFM_Log.error(`Socket unsubscribe failed: "${this.params.name}" `, `(${this.params.port}) will disconnect now...`, error);
235
268
  }
236
269
  else {
237
270
  fsm_dynamo_1.DyFM_Log.error(`Socket unsubscribe failed: "${this.params.name}" `, `(${this.params.port}) will disconnect now...`);
238
271
  }
239
272
  socket.emit(socket_1.DyFM_SocketEvent_Key.error, error);
273
+ this.removeSubscription(socket, issuer);
240
274
  }
241
275
  });
242
276
  }
243
- this.incomingEvents.forEach((event) => {
277
+ this.incomingEvents.filter((event) => event.eventKey !== socket_1.DyFM_SocketEvent_Key.incomingNewConnection &&
278
+ event.eventKey !== socket_1.DyFM_SocketEvent_Key.subscribe &&
279
+ event.eventKey !== socket_1.DyFM_SocketEvent_Key.unsubscribe).forEach((event) => {
244
280
  socket.on(event.eventKey, async (content) => {
245
281
  try {
246
282
  await event.executeEventTasks(content, issuer);
247
283
  }
248
284
  catch (error) {
249
- fsm_dynamo_1.DyFM_Log.error(`Socket Event failed: "${this.params.name}" (${this.params.port})`, error);
285
+ if (error instanceof fsm_dynamo_1.DyFM_Error) {
286
+ error.logSimple(`Socket Event failed: "${this.params.name}" (${this.params.port})`);
287
+ }
288
+ else {
289
+ fsm_dynamo_1.DyFM_Log.error(`Socket Event failed: "${this.params.name}" (${this.params.port})`, error);
290
+ }
250
291
  socket.emit(socket_1.DyFM_SocketEvent_Key.error, error);
251
292
  }
252
293
  });
@@ -256,10 +297,15 @@ class DyNTS_SocketServerService extends singleton_service_1.DyNTS_SingletonServi
256
297
  }
257
298
  }
258
299
  catch (error) {
259
- fsm_dynamo_1.DyFM_Log.error(`Socket Connection failed: "${this.params.name}" ` +
260
- `(${this.params.port}) will disconnect now...`, error);
261
- socket.emit(socket_1.DyFM_SocketEvent_Key.error, error);
262
- socket.disconnect();
300
+ if (error instanceof fsm_dynamo_1.DyFM_Error) {
301
+ error.logSimple(`Socket Connection failed: "${this.params.name}" ` +
302
+ `(${this.params.port}) will disconnect now...`);
303
+ }
304
+ else {
305
+ fsm_dynamo_1.DyFM_Log.error(`Socket Connection failed: "${this.params.name}" ` +
306
+ `(${this.params.port}) will disconnect now...`, error);
307
+ }
308
+ await this.closeSocket(socket, `${this.params.name} on connection error`, error);
263
309
  }
264
310
  });
265
311
  newSocketServer.listen(this.params.port);
@@ -276,8 +322,14 @@ class DyNTS_SocketServerService extends singleton_service_1.DyNTS_SingletonServi
276
322
  }
277
323
  }
278
324
  catch (error) {
279
- fsm_dynamo_1.DyFM_Log.error(`Socket Server Service - Deep Setup failed: "${this.params?.name}" ` +
280
- `(${this.params?.port})`, error);
325
+ if (error instanceof fsm_dynamo_1.DyFM_Error) {
326
+ error.logSimple(`Socket Server Service - Deep Setup failed: "${this.params?.name}" ` +
327
+ `(${this.params?.port})`);
328
+ }
329
+ else {
330
+ fsm_dynamo_1.DyFM_Log.error(`Socket Server Service - Deep Setup failed: "${this.params?.name}" ` +
331
+ `(${this.params?.port})`, error);
332
+ }
281
333
  throw error;
282
334
  }
283
335
  }
@@ -292,8 +344,13 @@ class DyNTS_SocketServerService extends singleton_service_1.DyNTS_SingletonServi
292
344
  }
293
345
  }
294
346
  catch (error) {
295
- if (global_settings_const_1.DyNTS_global_settings.log_settings.socket_eventContent) {
296
- fsm_dynamo_1.DyFM_Log.error(`Socket Subscription failed: "${this.params?.name}" (${this.params?.port})`, error);
347
+ if (error instanceof fsm_dynamo_1.DyFM_Error) {
348
+ error.logSimple(`Socket Subscription failed: "${this.params?.name}" (${this.params?.port})`);
349
+ }
350
+ else if (global_settings_const_1.DyNTS_global_settings.log_settings.socket_eventContent) {
351
+ fsm_dynamo_1.DyFM_Log.error(`Socket Subscription failed: "${this.params?.name}" (${this.params?.port})`,
352
+ /* `${this.thisLocationStack}`, */
353
+ error);
297
354
  }
298
355
  else {
299
356
  fsm_dynamo_1.DyFM_Log.error(`Socket Subscription failed: "${this.params?.name}" (${this.params?.port})`);
@@ -301,8 +358,63 @@ class DyNTS_SocketServerService extends singleton_service_1.DyNTS_SingletonServi
301
358
  throw error;
302
359
  }
303
360
  }
361
+ async closeSocket(socket, issuer, withError) {
362
+ try {
363
+ if (withError) {
364
+ socket.emit(socket_1.DyFM_SocketEvent_Key.error, withError);
365
+ }
366
+ await fsm_dynamo_1.DyFM_Array.asyncForEach(this.incomingEvents.filter((event) => event.eventKey === socket_1.DyFM_SocketEvent_Key.disconnect), async (event) => {
367
+ await event.executeEventTasks(null, issuer);
368
+ });
369
+ /* if (this.getSubscriptionCloseTasks) {
370
+ await DyFM_Array.asyncForEach(
371
+ this.getSubscriptionCloseTasks(),
372
+ async (task: DyFM_SocketEventTask<null>) => {
373
+ await task(null, issuer);
374
+ }
375
+ );
376
+ } */
377
+ socket.emit(socket_1.DyFM_SocketEvent_Key.disconnect);
378
+ socket.disconnect();
379
+ await this.removeSocketFromPresence(socket);
380
+ }
381
+ catch (error) {
382
+ throw new fsm_dynamo_1.DyFM_Error({
383
+ ...this._getDefaultErrorSettings('closeSocket', error),
384
+ errorCode: 'NTS-SSS-CS0',
385
+ });
386
+ }
387
+ }
388
+ async removeSocketFromPresence(socket) {
389
+ try {
390
+ const presence = this.presences.find((pres) => pres.sockets.includes(socket));
391
+ if (presence) {
392
+ const socketIndex = presence.sockets.indexOf(socket);
393
+ if (socketIndex !== -1) {
394
+ presence.sockets.splice(socketIndex, 1);
395
+ }
396
+ if (presence.sockets.length === 0) {
397
+ const presenceIndex = this.presences.indexOf(presence);
398
+ if (presenceIndex !== -1) {
399
+ this.presences.splice(presenceIndex, 1);
400
+ }
401
+ }
402
+ }
403
+ }
404
+ catch (error) {
405
+ throw new fsm_dynamo_1.DyFM_Error({
406
+ ...this._getDefaultErrorSettings('removeSocketFromPresence', error),
407
+ errorCode: 'NTS-SSS-RSO0',
408
+ });
409
+ }
410
+ }
304
411
  async disconnectBaseTask(socket, issuer) {
305
412
  try {
413
+ if (!(socket instanceof SocketIO.Socket)) {
414
+ throw new fsm_dynamo_1.DyFM_Error({
415
+ ...this._getDefaultErrorSettings('disconnectBaseTask', new Error('Socket is not a SocketIO.Socket')),
416
+ });
417
+ }
306
418
  await this.removeSubscription(socket, issuer);
307
419
  fsm_dynamo_1.DyFM_Log.info(`< x > socket(${this.params.name}) disconnected (${issuer})`);
308
420
  }
@@ -318,14 +430,14 @@ class DyNTS_SocketServerService extends singleton_service_1.DyNTS_SingletonServi
318
430
  const activePresenceIndex = this.presences.findIndex((pres) => pres.sockets.includes(socket));
319
431
  if (activePresenceIndex === -1) {
320
432
  throw new fsm_dynamo_1.DyFM_Error({
321
- ...this._getDefaultErrorSettings('sendEventForId', new Error(`closing socket(${this.params.name}) does not match any in the activePresences`), issuer),
433
+ ...this._getDefaultErrorSettings('sendEventForId', new Error(`closing socket(${this.params.name}) does not match any in the activePresences`), issuer ?? 'unknown issuer'),
322
434
  errorCode: 'NTS-SSS-RS1',
323
435
  });
324
436
  }
325
437
  const activePresence = this.presences[activePresenceIndex];
326
- if (activePresence.issuerLocalId !== issuer) {
438
+ if (issuer && activePresence.issuerLocalId !== issuer) {
327
439
  throw new fsm_dynamo_1.DyFM_Error({
328
- ...this._getDefaultErrorSettings('sendEventForId', new Error(`socket subscription for "${issuer}" and ` +
440
+ ...this._getDefaultErrorSettings('sendEventForId', new Error(`socket unsubscription for "${issuer}" and ` +
329
441
  `"${activePresence.issuerLocalId}" does not match.`), issuer),
330
442
  errorCode: 'NTS-SSS-RS2',
331
443
  });
@@ -333,25 +445,32 @@ class DyNTS_SocketServerService extends singleton_service_1.DyNTS_SingletonServi
333
445
  const socketIndex = activePresence.sockets.findIndex((s) => s === socket);
334
446
  if (socketIndex === -1) {
335
447
  throw new fsm_dynamo_1.DyFM_Error({
336
- ...this._getDefaultErrorSettings('sendEventForId', new Error(`closing socket(${this.params.name}) does not match any in the activePresences`), issuer),
448
+ ...this._getDefaultErrorSettings('sendEventForId', new Error(`closing socket(${this.params.name}) does not match any in the activePresences`), activePresence.issuerLocalId),
337
449
  errorCode: 'NTS-SSS-RS3',
338
450
  });
339
451
  }
340
452
  activePresence.sockets.splice(socketIndex);
341
- if (this.getSubscriptionCloseTasks) {
342
- await fsm_dynamo_1.DyFM_Array.asyncForEach(this.getSubscriptionCloseTasks(), async (task) => {
343
- await task(null, issuer);
344
- });
345
- }
453
+ await fsm_dynamo_1.DyFM_Array.asyncForEach(this.incomingEvents.filter((event) => event.eventKey === socket_1.DyFM_SocketEvent_Key.unsubscribeSuccessful), async (event) => {
454
+ await event.executeEventTasks(null, issuer);
455
+ });
456
+ /* if (this.getSubscriptionCloseTasks) {
457
+ await DyFM_Array.asyncForEach(
458
+ this.getSubscriptionCloseTasks(),
459
+ async (task: DyFM_SocketEventTask<null>) => {
460
+ await task(null, issuer);
461
+ }
462
+ );
463
+ } */
346
464
  if (activePresence.sockets.length === 0) {
347
465
  this.presences.splice(activePresenceIndex);
348
466
  }
467
+ socket.emit(socket_1.DyFM_SocketEvent_Key.unsubscribeSuccessful, 'unsubscribe was successful');
349
468
  socket.disconnect();
350
469
  fsm_dynamo_1.DyFM_Log.info(`<x==> socket(${this.params.name}) unsubscription successful (${issuer})`);
351
470
  }
352
471
  catch (error) {
353
472
  throw new fsm_dynamo_1.DyFM_Error({
354
- ...this._getDefaultErrorSettings('sendEventForId', error, issuer),
473
+ ...this._getDefaultErrorSettings('sendEventForId', error, issuer ?? 'unknown issuer'),
355
474
  errorCode: 'NTS-SSS-RS0',
356
475
  message: `socket(${this.params.name}) Subscription Removal failed: "${this.params?.name}"`,
357
476
  });
@@ -471,7 +590,14 @@ class DyNTS_SocketServerService extends singleton_service_1.DyNTS_SingletonServi
471
590
  });
472
591
  }
473
592
  catch (error) {
474
- fsm_dynamo_1.DyFM_Log.error(`socket(${this.params.name}) Event Broadcast (${event}) failed`, error);
593
+ if (global_settings_const_1.DyNTS_global_settings.log_settings.detailedErrors) {
594
+ if (error instanceof fsm_dynamo_1.DyFM_Error) {
595
+ error.logSimple(`socket(${this.params.name}) Event Broadcast (${event}) failed`);
596
+ }
597
+ else {
598
+ fsm_dynamo_1.DyFM_Log.error(`socket(${this.params.name}) Event Broadcast (${event}) failed`, error);
599
+ }
600
+ }
475
601
  throw new fsm_dynamo_1.DyFM_Error({
476
602
  ...this._getDefaultErrorSettings('broadcastEvent', error),
477
603
  errorCode: 'NTS-SSS-BE0',
@@ -492,6 +618,14 @@ class DyNTS_SocketServerService extends singleton_service_1.DyNTS_SingletonServi
492
618
  error: error,
493
619
  };
494
620
  }
621
+ /**
622
+ * You can setup tasks for the unsubscribe event in this function
623
+ */
624
+ /* protected getUnsubscribeTasks?(): DyFM_SocketEventTask<T_SubscriptionContent>[]; */
625
+ /**
626
+ * You can setup preprocesses for the unsubscribe event in this function
627
+ */
628
+ /* protected getUnsubscribePreProcesses?(): DyFM_SocketEventPreprocessTask[]; */
495
629
  /**
496
630
  * You can setup tasks for the error event in this function
497
631
  */