@futdevpro/nts-dynamo 1.9.40 → 1.9.42

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 (72) hide show
  1. package/build/_collections/archive.util.d.ts +1 -1
  2. package/build/_collections/archive.util.d.ts.map +1 -1
  3. package/build/_collections/archive.util.js +1 -1
  4. package/build/_collections/archive.util.js.map +1 -1
  5. package/build/_collections/global-settings.const.d.ts.map +1 -1
  6. package/build/_collections/global-settings.const.js +1 -0
  7. package/build/_collections/global-settings.const.js.map +1 -1
  8. package/build/_models/control-models/endpoint-params.control-model.d.ts +13 -8
  9. package/build/_models/control-models/endpoint-params.control-model.d.ts.map +1 -1
  10. package/build/_models/control-models/endpoint-params.control-model.js +52 -19
  11. package/build/_models/control-models/endpoint-params.control-model.js.map +1 -1
  12. package/build/_models/interfaces/global-settings.interface.d.ts +4 -0
  13. package/build/_models/interfaces/global-settings.interface.d.ts.map +1 -1
  14. package/build/_models/types/db-filter.type.d.ts +1 -1
  15. package/build/_models/types/db-filter.type.d.ts.map +1 -1
  16. package/build/_modules/socket/_models/socket-presence.control-model.d.ts.map +1 -1
  17. package/build/_modules/socket/_models/socket-presence.control-model.js +13 -5
  18. package/build/_modules/socket/_models/socket-presence.control-model.js.map +1 -1
  19. package/build/_modules/socket/_services/app-extended.server.d.ts +3 -3
  20. package/build/_modules/socket/_services/app-extended.server.d.ts.map +1 -1
  21. package/build/_modules/socket/_services/app-extended.server.js +33 -21
  22. package/build/_modules/socket/_services/app-extended.server.js.map +1 -1
  23. package/build/_modules/socket/_services/socket-server.service.d.ts +2 -2
  24. package/build/_modules/socket/_services/socket-server.service.d.ts.map +1 -1
  25. package/build/_modules/socket/_services/socket-server.service.js +20 -26
  26. package/build/_modules/socket/_services/socket-server.service.js.map +1 -1
  27. package/build/_services/base/archive-data.service.d.ts.map +1 -1
  28. package/build/_services/base/archive-data.service.js +3 -0
  29. package/build/_services/base/archive-data.service.js.map +1 -1
  30. package/build/_services/base/data.service.d.ts +9 -3
  31. package/build/_services/base/data.service.d.ts.map +1 -1
  32. package/build/_services/base/data.service.js +102 -7
  33. package/build/_services/base/data.service.js.map +1 -1
  34. package/build/_services/base/db.service.d.ts +6 -1
  35. package/build/_services/base/db.service.d.ts.map +1 -1
  36. package/build/_services/base/db.service.js +133 -114
  37. package/build/_services/base/db.service.js.map +1 -1
  38. package/build/_services/base/singleton.service-base.d.ts +1 -1
  39. package/build/_services/base/singleton.service-base.d.ts.map +1 -1
  40. package/build/_services/base/singleton.service-base.js +1 -0
  41. package/build/_services/base/singleton.service-base.js.map +1 -1
  42. package/build/_services/base/singleton.service.d.ts.map +1 -1
  43. package/build/_services/base/singleton.service.js +0 -1
  44. package/build/_services/base/singleton.service.js.map +1 -1
  45. package/build/_services/core/global.service.d.ts.map +1 -1
  46. package/build/_services/core/global.service.js +36 -23
  47. package/build/_services/core/global.service.js.map +1 -1
  48. package/build/_services/route/routing-module.service.d.ts +1 -1
  49. package/build/_services/route/routing-module.service.d.ts.map +1 -1
  50. package/build/_services/route/routing-module.service.js +19 -2
  51. package/build/_services/route/routing-module.service.js.map +1 -1
  52. package/build/_services/server/app.server.d.ts +2 -2
  53. package/build/_services/server/app.server.d.ts.map +1 -1
  54. package/build/_services/server/app.server.js +12 -6
  55. package/build/_services/server/app.server.js.map +1 -1
  56. package/package.json +3 -3
  57. package/src/_collections/archive.util.ts +1 -1
  58. package/src/_collections/global-settings.const.ts +1 -0
  59. package/src/_models/control-models/endpoint-params.control-model.ts +79 -31
  60. package/src/_models/interfaces/global-settings.interface.ts +5 -0
  61. package/src/_models/types/db-filter.type.ts +1 -1
  62. package/src/_modules/socket/_models/socket-presence.control-model.ts +19 -7
  63. package/src/_modules/socket/_services/app-extended.server.ts +10 -8
  64. package/src/_modules/socket/_services/socket-server.service.ts +30 -42
  65. package/src/_services/base/archive-data.service.ts +4 -0
  66. package/src/_services/base/data.service.ts +148 -14
  67. package/src/_services/base/db.service.ts +165 -140
  68. package/src/_services/base/singleton.service-base.ts +2 -1
  69. package/src/_services/base/singleton.service.ts +2 -3
  70. package/src/_services/core/global.service.ts +53 -34
  71. package/src/_services/route/routing-module.service.ts +23 -4
  72. package/src/_services/server/app.server.ts +18 -9
@@ -23,16 +23,17 @@ export class DyNTS_Endpoint_Params {
23
23
  /* TODO: ENCRYPTION !!EZTET
24
24
  useEncryptionKey?: string; */
25
25
 
26
- private pathParams: string[];
26
+ private readonly pathParams: string[];
27
27
 
28
- private preProcesses: ((req: Request, res: Response) => Promise<void>)[];
29
- private tasks: ((req: Request, res: Response, issuer?: string) => Promise<void>)[];
28
+ private readonly preProcesses: ((req: Request, res: Response) => Promise<void>)[];
29
+ private readonly tasks: ((req: Request, res: Response, issuer?: string) => Promise<void>)[];
30
30
 
31
- private logRequest: boolean;
32
- private logRequestsParams: boolean;
33
- private logRequestsContent: boolean;
34
- private logResponseContent: boolean;
35
- private stack: string;
31
+ private readonly logRequest: boolean;
32
+ private readonly logRequestsParams: boolean;
33
+ private readonly logRequestsContent: boolean;
34
+ private readonly logResponseContent: boolean;
35
+ private readonly stack: string;
36
+ private readonly autoResolveCirculation: boolean;
36
37
 
37
38
  constructor(
38
39
  set: {
@@ -85,6 +86,10 @@ export class DyNTS_Endpoint_Params {
85
86
  * log settings for response content
86
87
  */
87
88
  logResponseContent?: boolean,
89
+ /**
90
+ * auto resolve circulation errors
91
+ */
92
+ autoResolveCirculation?: boolean,
88
93
  }
89
94
  ) {
90
95
  try {
@@ -101,6 +106,8 @@ export class DyNTS_Endpoint_Params {
101
106
  set.logRequestsContent ?? DyNTS_global_settings.log_settings.requestsContent;
102
107
  this.logResponseContent =
103
108
  set.logResponseContent ?? DyNTS_global_settings.log_settings.responseContent;
109
+ this.autoResolveCirculation =
110
+ set.autoResolveCirculation ?? DyNTS_global_settings.autoResolveEndpointCirculationErrors;
104
111
 
105
112
  if (!this.endpoint) {
106
113
  throw new DyFM_Error({
@@ -233,7 +240,8 @@ export class DyNTS_Endpoint_Params {
233
240
  req: Request,
234
241
  res: Response,
235
242
  error: Error | DyFM_Error,
236
- issuer: string
243
+ issuer: string,
244
+ autoSecondTry?: boolean
237
245
  ): Promise<void> {
238
246
  try {
239
247
  let msg: string = `Endpoint caught an error. '${this.name}' (${this.endpoint})`;
@@ -284,10 +292,27 @@ export class DyNTS_Endpoint_Params {
284
292
 
285
293
  try {
286
294
  JSON.stringify(error);
287
- } catch (error) {
288
- DyFM_Log.H_error(
289
- 'DyNTS_Endpoint_Params: error object is not serializable!', error
290
- );
295
+ } catch (stringifyError) {
296
+ if (this.autoResolveCirculation) {
297
+ try {
298
+ error = DyFM_Shared.resolveCirculation(error);
299
+ JSON.stringify(error);
300
+ } catch (resolveError) {
301
+ DyFM_Log.H_error(
302
+ 'DyNTS_Endpoint_Params: error object is not serializable, and not resolvable!'
303
+ );
304
+
305
+ error = new DyFM_Error({
306
+ error: new Error('UNRESOLVABLE UNSERIALIZABLE ERROR'),
307
+ });
308
+ }
309
+ } else {
310
+ DyFM_Log.H_error('DyNTS_Endpoint_Params: error object is not serializable!');
311
+
312
+ error = new DyFM_Error({
313
+ error: new Error('UNSERIALIZABLE ERROR'),
314
+ });
315
+ }
291
316
  }
292
317
 
293
318
  res.status((error as DyFM_Error)?.___status ?? 501);
@@ -310,21 +335,28 @@ export class DyNTS_Endpoint_Params {
310
335
 
311
336
  DyFM_Log.error('');
312
337
 
313
- } catch (error) {
338
+ } catch (errorLvl2) {
314
339
  this.multiLevelError(
315
- error,
316
- { req, res, error, issuer }
340
+ errorLvl2,
341
+ {
342
+ req: req,
343
+ res: res,
344
+ error: error,
345
+ issuer: issuer,
346
+ autoSecondTry: autoSecondTry,
347
+ }
317
348
  );
318
349
  }
319
350
  }
320
351
 
321
352
  private multiLevelError(
322
- error: any,
353
+ errorLvl2: any,
323
354
  errorInputs: {
324
355
  req: Request,
325
356
  res: Response,
326
357
  error: Error | DyFM_Error,
327
- issuer: string
358
+ issuer: string,
359
+ autoSecondTry: boolean
328
360
  }
329
361
  ): void {
330
362
  if (DyNTS_global_settings.log_settings.highDetailedLogs) {
@@ -333,7 +365,7 @@ export class DyNTS_Endpoint_Params {
333
365
  `(${this.name}, ${this.endpoint})` +
334
366
  `\n(DYNAMO MULTILEVEL ERROR means, that the ERROR HANDLING is ALSO FAILED, ` +
335
367
  `and the error message was not sent.)` +
336
- `\nERROR:`, error,
368
+ `\nERROR:`, errorLvl2,
337
369
  '\n'
338
370
  );
339
371
  } else {
@@ -347,32 +379,48 @@ export class DyNTS_Endpoint_Params {
347
379
 
348
380
  try {
349
381
  JSON.stringify(errorInputs.error);
350
- } catch (error) {
351
- DyFM_Log.error('error object is not serializable!');
352
- let unresolvable;
382
+ } catch (errorLvl2Replication) {
383
+ DyFM_Log.error(' ...response object is not serializable!');
384
+ let resolvedError: any;
353
385
 
354
386
  try {
355
- DyFM_Shared.resolveCirculation(errorInputs.error);
356
- } catch (error) {
357
- unresolvable = true;
358
- DyFM_Log.error('error object is not resolvable!');
387
+ resolvedError = DyFM_Shared.resolveCirculation(errorInputs.error);
388
+ } catch (errorLvl3) {
389
+ DyFM_Log.error(' ...response object is not resolvable!');
390
+ DyFM_Log.error(' ...', errorLvl3);
359
391
  }
360
392
 
361
- if (!unresolvable) {
362
- DyFM_Log.error('error object is resolvable! (use DyFM_Shared.resolveCirculation)');
393
+ if (resolvedError) {
394
+ if (this.autoResolveCirculation && !errorInputs.autoSecondTry) {
395
+ this.error(
396
+ errorInputs.req,
397
+ errorInputs.res,
398
+ resolvedError,
399
+ errorInputs.issuer,
400
+ true
401
+ );
402
+
403
+ DyFM_Log.warn(' ...automatic circulation error resolution was successful!');
404
+
405
+ return;
406
+ } else {
407
+ DyFM_Log.error(
408
+ ' ...response object is resolvable! (use DyFM_Shared.resolveCirculation)'
409
+ );
410
+ }
363
411
  }
364
412
  }
365
413
 
366
414
  if (
367
415
  DyNTS_global_settings.log_settings.highDetailedLogs ||
368
- !(error instanceof DyFM_Error)
416
+ !(errorLvl2 instanceof DyFM_Error)
369
417
  ) {
370
418
  DyFM_Log.H_error(
371
419
  `Endpoint "${this.endpoint}" caught an error and FAILED TO RESOLVE. (${this.name})`,
372
- '\n ERROR:', error
420
+ '\n ERROR:', errorLvl2
373
421
  );
374
422
  } else {
375
- error.logSimple(
423
+ errorLvl2.logSimple(
376
424
  `Endpoint "${this.endpoint}" caught an error and FAILED TO RESOLVE. (${this.name})`
377
425
  );
378
426
  }
@@ -30,6 +30,11 @@ export interface DyNTS_Global_Settings {
30
30
  */
31
31
  systemShortCodeName?: string;
32
32
 
33
+ /**
34
+ *
35
+ */
36
+ autoResolveEndpointCirculationErrors: boolean;
37
+
33
38
  /**
34
39
  * this setting will set which logs will be shown
35
40
  */
@@ -29,7 +29,7 @@ export type DyNTS_DBFilter<T> =
29
29
  * A simple filter for a DynamoDB query.
30
30
  */
31
31
  export type DyNTS_DBFilterSimple<T> = {
32
- [K in keyof T]?: T[K] | DyNTS_DBFilterExpressions<T[K]>;
32
+ [K in keyof T]?: T[K] | DyNTS_DBFilterExpressions<T[K] | boolean>;
33
33
  } & {
34
34
  [path: string]: any;
35
35
  };
@@ -53,7 +53,6 @@ export class DyNTS_SocketPresence {
53
53
  ),
54
54
  set?.issuer
55
55
  ),
56
-
57
56
  errorCode: 'NTS-SD0-C00',
58
57
  additionalContent: { set: set },
59
58
  });
@@ -101,6 +100,22 @@ export class DyNTS_SocketPresence {
101
100
  const errors: any = [];
102
101
  const inactiveSockets: SocketIO.Socket[] = [];
103
102
 
103
+ try {
104
+ JSON.stringify(content);
105
+ } catch (error) {
106
+ throw new DyFM_Error({
107
+ ...this._getDefaultErrorSettings(
108
+ 'emitEvent',
109
+ new Error(
110
+ `Emitting event '${event}' on socket(s)(${this.serviceName}) failed!`+
111
+ `\n ERROR: content is not stringify-able!`
112
+ ),
113
+ issuer
114
+ ),
115
+ errorCode: 'NTS-SPC-EE1',
116
+ });
117
+ }
118
+
104
119
  this.sockets.forEach((socket: SocketIO.Socket, index: number) => {
105
120
  if (!socket.connected) {
106
121
  DyFM_Log.warn(
@@ -111,7 +126,7 @@ export class DyNTS_SocketPresence {
111
126
  /* errors.push(
112
127
  new DyFM_Error({
113
128
  status: 500,
114
- errorCode: 'NTS-SPC-EE1',
129
+ errorCode: 'NTS-SPC-EE2',
115
130
  addECToUserMsg: true,
116
131
  message:
117
132
  `Emitting event '${event}' on socket(${this.serviceName})-(${index}) failed!`+
@@ -164,8 +179,7 @@ export class DyNTS_SocketPresence {
164
179
  issuer
165
180
  ),
166
181
 
167
- status: 500,
168
- errorCode: 'NTS-SPC-EE2',
182
+ errorCode: 'NTS-SPC-EE3',
169
183
  additionalContent: {
170
184
  inactiveSockets: inactiveSockets,
171
185
  errors: errors,
@@ -182,8 +196,6 @@ export class DyNTS_SocketPresence {
182
196
  ),
183
197
  issuer
184
198
  ),
185
-
186
- status: 404,
187
199
  errorCode: 'NTS-SPC-EE3',
188
200
  });
189
201
  }
@@ -195,7 +207,7 @@ export class DyNTS_SocketPresence {
195
207
  issuer: string
196
208
  ): DyFM_Error_Settings {
197
209
  return {
198
- status: (error as DyFM_Error)?.___status ?? 406,
210
+ status: (error as DyFM_Error)?.___status ?? 500,
199
211
  message: (error as Error)?.message ?? `${fnName} was UNSUCCESSFUL (NTS; ${this.serviceName})`,
200
212
  userMessage: (error as DyFM_Error)?.__userMessage ?? this.defaultErrorUserMsg,
201
213
  issuerService: this.serviceName + ` (${this?.constructor?.name}-DyNTS_SocketPresence)`,
@@ -119,7 +119,7 @@ import { DyNTS_global_settings } from '../../../_collections/global-settings.con
119
119
  */
120
120
  export abstract class DyNTS_AppExtended extends DyNTS_App {
121
121
 
122
- private systemControlsExt: DyNTS_AppExtSysControls = new DyNTS_AppExtSysControls();
122
+ private readonly systemControlsExt: DyNTS_AppExtSysControls = new DyNTS_AppExtSysControls();
123
123
  override get started(): boolean { return this.systemControlsExt.appExtended.started; }
124
124
  private httpsSocketSettingUpCount: number = 0;
125
125
  private httpSocketSettingUpCount: number = 0;
@@ -138,12 +138,12 @@ export abstract class DyNTS_AppExtended extends DyNTS_App {
138
138
  * ];
139
139
  */
140
140
  protected socketServices: DyNTS_SocketServerService<any>[];
141
- private allSocketServers: SocketIO.Server[] = [];
141
+ private readonly allSocketServers: SocketIO.Server[] = [];
142
142
 
143
143
  constructor(){
144
- super(true);
144
+ super(/* true */);
145
145
 
146
- this.asyncConstructExt().catch((error: DyFM_AnyError): void => {
146
+ /* this.asyncConstructExt().catch((error: DyFM_AnyError): void => {
147
147
  if (
148
148
  DyNTS_global_settings.log_settings.highDetailedLogs ||
149
149
  !(error instanceof DyFM_Error)
@@ -159,13 +159,15 @@ export abstract class DyNTS_AppExtended extends DyNTS_App {
159
159
  `(DyNTS_AppExtended constructor catch)`
160
160
  );
161
161
  }
162
- });
162
+ }); */
163
163
  }
164
164
 
165
- private async asyncConstructExt(): Promise<void> {
165
+ protected override async asyncConstruct(extended = true): Promise<void> {
166
166
  if (this.fnLogs && this.deepLog) console.log('\nfn:. asyncConstruct-extended');
167
167
 
168
168
  try {
169
+ await super.asyncConstruct(true);
170
+
169
171
  this.systemControlsExt.appExtended.init = true;
170
172
 
171
173
  this.socketServices = this.getSocketServices();
@@ -194,7 +196,7 @@ export abstract class DyNTS_AppExtended extends DyNTS_App {
194
196
  DyFM_Log.H_success(`"${this.params.name}" started successfully.`);
195
197
 
196
198
  } catch (error) {
197
- if (
199
+ /* if (
198
200
  DyNTS_global_settings.log_settings.highDetailedLogs ||
199
201
  !(error instanceof DyFM_Error)
200
202
  ) {
@@ -206,7 +208,7 @@ export abstract class DyNTS_AppExtended extends DyNTS_App {
206
208
  error.logSimple(
207
209
  `Extended Application: "${this.params?.name}" start failed. (asyncConstructExt catch)`
208
210
  );
209
- }
211
+ } */
210
212
 
211
213
  throw new DyFM_Error({
212
214
  errorCode: 'NTS-AES-001',
@@ -1,24 +1,25 @@
1
1
 
2
2
  import * as SocketIO from 'socket.io';
3
3
 
4
- import {
5
- DyFM_AnyError, DyFM_Array, DyFM_Error, DyFM_Error_Settings, DyFM_Log
4
+ import {
5
+ DyFM_AnyError, DyFM_Array, DyFM_Error, DyFM_Error_Settings, DyFM_errorFlag, DyFM_Log
6
6
  } from '@futdevpro/fsm-dynamo';
7
7
 
8
8
 
9
- import {
10
- DyFM_SocketEvent_Key, DyFM_SocketEventPreprocessTask, DyFM_SocketEventTask, DyFM_SocketEvent
9
+ import {
10
+ DyFM_SocketEvent,
11
+ DyFM_SocketEvent_Key, DyFM_SocketEventPreprocessTask, DyFM_SocketEventTask
11
12
  } from '@futdevpro/fsm-dynamo/socket';
12
13
 
13
14
  import { DyNTS_global_settings } from '../../../_collections/global-settings.const';
14
15
  import { DyNTS_SingletonService } from '../../../_services/base/singleton.service';
15
16
  import { DyNTS_SocketSecurity } from '../_enums/socket-security.enum';
16
- import {
17
- DyNTS_SocketServerService_Params
18
- } from '../_models/socket-server-service-params.control-model';
19
- import {
20
- DyNTS_SocketPresence
17
+ import {
18
+ DyNTS_SocketPresence
21
19
  } from '../_models/socket-presence.control-model';
20
+ import {
21
+ DyNTS_SocketServerService_Params
22
+ } from '../_models/socket-server-service-params.control-model';
22
23
 
23
24
  /**
24
25
  * You need to define the following functions:
@@ -101,7 +102,7 @@ export abstract class DyNTS_SocketServerService<
101
102
  );
102
103
 
103
104
  throw new DyFM_Error({
104
- errorCode: 'NTS-SSS-001',
105
+ errorCode: 'NTS-SSS-GPFSRC0',
105
106
  error: error,
106
107
  });
107
108
  }
@@ -484,7 +485,7 @@ export abstract class DyNTS_SocketServerService<
484
485
  issuer
485
486
  ),
486
487
 
487
- errorCode: 'NTS-SSS-109',
488
+ errorCode: 'NTS-SSS-DBT0',
488
489
  });
489
490
  }
490
491
  }
@@ -505,7 +506,7 @@ export abstract class DyNTS_SocketServerService<
505
506
  issuer
506
507
  ),
507
508
 
508
- errorCode: 'NTS-SSS-203',
509
+ errorCode: 'NTS-SSS-RS1',
509
510
  });
510
511
  }
511
512
 
@@ -522,7 +523,7 @@ export abstract class DyNTS_SocketServerService<
522
523
  issuer
523
524
  ),
524
525
 
525
- errorCode: 'NTS-SSS-201',
526
+ errorCode: 'NTS-SSS-RS2',
526
527
  });
527
528
  }
528
529
 
@@ -538,7 +539,7 @@ export abstract class DyNTS_SocketServerService<
538
539
  issuer
539
540
  ),
540
541
 
541
- errorCode: 'NTS-SSS-202',
542
+ errorCode: 'NTS-SSS-RS3',
542
543
  });
543
544
  }
544
545
 
@@ -567,7 +568,7 @@ export abstract class DyNTS_SocketServerService<
567
568
  issuer
568
569
  ),
569
570
 
570
- errorCode: 'NTS-SSS-200',
571
+ errorCode: 'NTS-SSS-RS0',
571
572
  message: `socket(${this.params.name}) Subscription Removal failed: "${this.params?.name}"`,
572
573
  });
573
574
  }
@@ -605,7 +606,7 @@ export abstract class DyNTS_SocketServerService<
605
606
  error
606
607
  ),
607
608
 
608
- errorCode: 'NTS-SSS-600',
609
+ errorCode: 'NTS-SSS-IIS0',
609
610
  message: `socket(${this.params.name}) ID Subscription Check (${id}) failed`,
610
611
  });
611
612
  }
@@ -621,8 +622,7 @@ export abstract class DyNTS_SocketServerService<
621
622
  error,
622
623
  presenceIssuerId
623
624
  ),
624
-
625
- errorCode: 'NTS-SSS-700',
625
+ errorCode: 'NTS-SSS-EE0',
626
626
  message: `socket(${this.params.name}) Error Emit (id: ${presenceIssuerId}) failed`,
627
627
  });
628
628
  }
@@ -637,9 +637,7 @@ export abstract class DyNTS_SocketServerService<
637
637
  new Error('No event was provided'),
638
638
  content?.source
639
639
  ),
640
-
641
- status: 400,
642
- errorCode: 'NTS-SSS-300',
640
+ errorCode: 'NTS-SSS-SEFI1',
643
641
  });
644
642
  }
645
643
 
@@ -650,9 +648,7 @@ export abstract class DyNTS_SocketServerService<
650
648
  new Error('No ID was provided'),
651
649
  content?.source
652
650
  ),
653
-
654
- status: 400,
655
- errorCode: 'NTS-SSS-301',
651
+ errorCode: 'NTS-SSS-SEFI2',
656
652
  });
657
653
  }
658
654
 
@@ -667,9 +663,7 @@ export abstract class DyNTS_SocketServerService<
667
663
  new Error(`No active socket with this specific ID: "${id}"`),
668
664
  content?.source
669
665
  ),
670
-
671
- status: 404,
672
- errorCode: 'NTS-SSS-301',
666
+ errorCode: 'NTS-SSS-SEFI3',
673
667
  });
674
668
  }
675
669
 
@@ -678,18 +672,18 @@ export abstract class DyNTS_SocketServerService<
678
672
  if (DyNTS_global_settings.log_settings.socket_eventContent) {
679
673
  DyFM_Log.success(
680
674
  ` <--= emitted socket(${this.params.name}) event: "${event}", ` +
681
- `\n presenceId: "${id}", sockets: ${presence.sockets.length}` +
682
- `\n content:`, content
675
+ `\n presenceId: "${id}", sockets: ${presence.sockets.length}` +
676
+ `\n content:`, content
683
677
  );
684
678
  } else {
685
679
  DyFM_Log.success(
686
680
  ` <--= emitted socket(${this.params.name}) event: "${event}", ` +
687
- `\n presenceId: ${id}, sockets: ${presence.sockets.length}`
681
+ `\n presenceId: ${id}, sockets: ${presence.sockets.length}`
688
682
  );
689
683
  }
690
684
  } catch (error) {
691
685
  try {
692
- if (error.flag.includes('DYNAMO') && error?.additionalInfo?.inactiveSockets) {
686
+ if (error?.flag?.includes(DyFM_errorFlag) && error?.additionalInfo?.inactiveSockets) {
693
687
  const sockets: SocketIO.Socket[] = error.additionalInfo.inactiveSockets;
694
688
 
695
689
  await DyFM_Array.asyncForEach(sockets, async (socket: SocketIO.Socket) => {
@@ -707,17 +701,14 @@ export abstract class DyNTS_SocketServerService<
707
701
  new Error(`No active socket(${this.params.name}) with this specific ID: "${id}"`),
708
702
  content?.source
709
703
  ),
710
-
711
- status: 404,
712
- errorCode: 'NTS-SSS-302',
704
+ errorCode: 'NTS-SSS-SEFI4',
713
705
  });
714
706
  }
715
707
  }
716
708
  } catch (error) {
717
709
  throw new DyFM_Error({
718
710
  ...this._getDefaultErrorSettings('sendEventForId', error, content?.source),
719
-
720
- errorCode: 'NTS-SSS-310',
711
+ errorCode: 'NTS-SSS-SEFI5',
721
712
  message:
722
713
  `Error handling of inactive sockets(${this.params.name}) failed!` +
723
714
  `\n(Socket Event Emit for id (${id}, ${event}) failed)`,
@@ -726,8 +717,7 @@ export abstract class DyNTS_SocketServerService<
726
717
 
727
718
  throw new DyFM_Error({
728
719
  ...this._getDefaultErrorSettings('sendEventForId', error, content?.source),
729
-
730
- errorCode: 'NTS-SSS-310',
720
+ errorCode: 'NTS-SSS-SEFI0',
731
721
  message: `socket(${this.params.name}) Event Emit for id (${id}, ${event}) failed`,
732
722
  });
733
723
  }
@@ -746,7 +736,7 @@ export abstract class DyNTS_SocketServerService<
746
736
  throw new DyFM_Error({
747
737
  ...this._getDefaultErrorSettings('broadcastEvent', error),
748
738
 
749
- errorCode: 'NTS-SSS-400',
739
+ errorCode: 'NTS-SSS-BE0',
750
740
  message: `socket(${this.params.name}) Event Broadcast (${event}) failed`,
751
741
  });
752
742
  }
@@ -759,9 +749,7 @@ export abstract class DyNTS_SocketServerService<
759
749
  ): DyFM_Error_Settings {
760
750
  return {
761
751
  status: (error as DyFM_Error)?.___status ?? 500,
762
- message: (error as Error)?.message ??
763
- (error as DyFM_Error)?._message ??
764
- `${fnName} was UNSUCCESSFUL (NTS)`,
752
+ message: (error as Error)?.message ?? `${fnName} was UNSUCCESSFUL (NTS)`,
765
753
  addECToUserMsg: !(error as DyFM_Error)?.__userMessage,
766
754
  userMessage: (error as DyFM_Error)?.__userMessage ?? this.defaultErrorUserMsg,
767
755
  issuer: issuer,
@@ -32,6 +32,10 @@ export class DyNTS_ArchiveDataService<T extends DyFM_Metadata> extends DyNTS_Dat
32
32
  */
33
33
  issuer: string
34
34
  ) {
35
+ if (!dataParams.addArchive) {
36
+ throw new Error('addArchive is missing from dataParams!');
37
+ }
38
+
35
39
  const originalDataParams = { ...dataParams };
36
40
 
37
41
  dataParams = {