@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.
- package/build/_collections/archive.util.d.ts +1 -1
- package/build/_collections/archive.util.d.ts.map +1 -1
- package/build/_collections/archive.util.js +1 -1
- package/build/_collections/archive.util.js.map +1 -1
- package/build/_collections/global-settings.const.d.ts.map +1 -1
- package/build/_collections/global-settings.const.js +1 -0
- package/build/_collections/global-settings.const.js.map +1 -1
- package/build/_models/control-models/endpoint-params.control-model.d.ts +13 -8
- package/build/_models/control-models/endpoint-params.control-model.d.ts.map +1 -1
- package/build/_models/control-models/endpoint-params.control-model.js +52 -19
- package/build/_models/control-models/endpoint-params.control-model.js.map +1 -1
- package/build/_models/interfaces/global-settings.interface.d.ts +4 -0
- package/build/_models/interfaces/global-settings.interface.d.ts.map +1 -1
- package/build/_models/types/db-filter.type.d.ts +1 -1
- package/build/_models/types/db-filter.type.d.ts.map +1 -1
- package/build/_modules/socket/_models/socket-presence.control-model.d.ts.map +1 -1
- package/build/_modules/socket/_models/socket-presence.control-model.js +13 -5
- package/build/_modules/socket/_models/socket-presence.control-model.js.map +1 -1
- package/build/_modules/socket/_services/app-extended.server.d.ts +3 -3
- package/build/_modules/socket/_services/app-extended.server.d.ts.map +1 -1
- package/build/_modules/socket/_services/app-extended.server.js +33 -21
- package/build/_modules/socket/_services/app-extended.server.js.map +1 -1
- package/build/_modules/socket/_services/socket-server.service.d.ts +2 -2
- package/build/_modules/socket/_services/socket-server.service.d.ts.map +1 -1
- package/build/_modules/socket/_services/socket-server.service.js +20 -26
- package/build/_modules/socket/_services/socket-server.service.js.map +1 -1
- package/build/_services/base/archive-data.service.d.ts.map +1 -1
- package/build/_services/base/archive-data.service.js +3 -0
- package/build/_services/base/archive-data.service.js.map +1 -1
- package/build/_services/base/data.service.d.ts +9 -3
- package/build/_services/base/data.service.d.ts.map +1 -1
- package/build/_services/base/data.service.js +102 -7
- package/build/_services/base/data.service.js.map +1 -1
- package/build/_services/base/db.service.d.ts +6 -1
- package/build/_services/base/db.service.d.ts.map +1 -1
- package/build/_services/base/db.service.js +133 -114
- package/build/_services/base/db.service.js.map +1 -1
- package/build/_services/base/singleton.service-base.d.ts +1 -1
- package/build/_services/base/singleton.service-base.d.ts.map +1 -1
- package/build/_services/base/singleton.service-base.js +1 -0
- package/build/_services/base/singleton.service-base.js.map +1 -1
- package/build/_services/base/singleton.service.d.ts.map +1 -1
- package/build/_services/base/singleton.service.js +0 -1
- package/build/_services/base/singleton.service.js.map +1 -1
- package/build/_services/core/global.service.d.ts.map +1 -1
- package/build/_services/core/global.service.js +36 -23
- package/build/_services/core/global.service.js.map +1 -1
- package/build/_services/route/routing-module.service.d.ts +1 -1
- package/build/_services/route/routing-module.service.d.ts.map +1 -1
- package/build/_services/route/routing-module.service.js +19 -2
- package/build/_services/route/routing-module.service.js.map +1 -1
- package/build/_services/server/app.server.d.ts +2 -2
- package/build/_services/server/app.server.d.ts.map +1 -1
- package/build/_services/server/app.server.js +12 -6
- package/build/_services/server/app.server.js.map +1 -1
- package/package.json +3 -3
- package/src/_collections/archive.util.ts +1 -1
- package/src/_collections/global-settings.const.ts +1 -0
- package/src/_models/control-models/endpoint-params.control-model.ts +79 -31
- package/src/_models/interfaces/global-settings.interface.ts +5 -0
- package/src/_models/types/db-filter.type.ts +1 -1
- package/src/_modules/socket/_models/socket-presence.control-model.ts +19 -7
- package/src/_modules/socket/_services/app-extended.server.ts +10 -8
- package/src/_modules/socket/_services/socket-server.service.ts +30 -42
- package/src/_services/base/archive-data.service.ts +4 -0
- package/src/_services/base/data.service.ts +148 -14
- package/src/_services/base/db.service.ts +165 -140
- package/src/_services/base/singleton.service-base.ts +2 -1
- package/src/_services/base/singleton.service.ts +2 -3
- package/src/_services/core/global.service.ts +53 -34
- package/src/_services/route/routing-module.service.ts +23 -4
- 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 (
|
|
288
|
-
|
|
289
|
-
|
|
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 (
|
|
338
|
+
} catch (errorLvl2) {
|
|
314
339
|
this.multiLevelError(
|
|
315
|
-
|
|
316
|
-
{
|
|
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
|
-
|
|
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:`,
|
|
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 (
|
|
351
|
-
DyFM_Log.error('
|
|
352
|
-
let
|
|
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 (
|
|
357
|
-
|
|
358
|
-
DyFM_Log.error('
|
|
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 (
|
|
362
|
-
|
|
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
|
-
!(
|
|
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:',
|
|
420
|
+
'\n ERROR:', errorLvl2
|
|
373
421
|
);
|
|
374
422
|
} else {
|
|
375
|
-
|
|
423
|
+
errorLvl2.logSimple(
|
|
376
424
|
`Endpoint "${this.endpoint}" caught an error and FAILED TO RESOLVE. (${this.name})`
|
|
377
425
|
);
|
|
378
426
|
}
|
|
@@ -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-
|
|
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
|
-
|
|
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 ??
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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
|
|
682
|
-
`\n
|
|
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
|
|
681
|
+
`\n presenceId: ${id}, sockets: ${presence.sockets.length}`
|
|
688
682
|
);
|
|
689
683
|
}
|
|
690
684
|
} catch (error) {
|
|
691
685
|
try {
|
|
692
|
-
if (error
|
|
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-
|
|
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 = {
|