@futdevpro/fsm-dynamo 1.10.19 → 1.10.21
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/utils/array.util.d.ts +3 -0
- package/build/_collections/utils/array.util.d.ts.map +1 -1
- package/build/_collections/utils/array.util.js +21 -0
- package/build/_collections/utils/array.util.js.map +1 -1
- package/build/_collections/utils/stack.util.d.ts.map +1 -1
- package/build/_collections/utils/stack.util.js +7 -3
- package/build/_collections/utils/stack.util.js.map +1 -1
- package/build/_models/control-models/error.control-model.d.ts +6 -0
- package/build/_models/control-models/error.control-model.d.ts.map +1 -1
- package/build/_models/control-models/error.control-model.js +15 -0
- package/build/_models/control-models/error.control-model.js.map +1 -1
- package/build/_models/control-models/server-status.control-model.d.ts +24 -0
- package/build/_models/control-models/server-status.control-model.d.ts.map +1 -0
- package/build/_models/control-models/server-status.control-model.js +24 -0
- package/build/_models/control-models/server-status.control-model.js.map +1 -0
- package/build/_models/data-models/errors.data-model.d.ts +32 -0
- package/build/_models/data-models/errors.data-model.d.ts.map +1 -0
- package/build/_models/data-models/errors.data-model.js +60 -0
- package/build/_models/data-models/errors.data-model.js.map +1 -0
- package/build/_models/interfaces/server-error-statistics.interface.d.ts +18 -0
- package/build/_models/interfaces/server-error-statistics.interface.d.ts.map +1 -0
- package/build/_models/interfaces/server-error-statistics.interface.js +3 -0
- package/build/_models/interfaces/server-error-statistics.interface.js.map +1 -0
- package/build/_modules/custom-data/_models/cud.data-model.js +1 -1
- package/build/_modules/custom-data/_models/cud.data-model.js.map +1 -1
- package/build/_modules/custom-data/_models/cud.data-model.spec.js +1 -1
- package/build/_modules/custom-data/_models/cud.data-model.spec.js.map +1 -1
- package/build/_modules/location/index.d.ts +7 -7
- package/build/_modules/location/index.d.ts.map +1 -1
- package/build/_modules/location/index.js +8 -8
- package/build/_modules/location/index.js.map +1 -1
- package/build/_modules/socket/_services/sck-client.service-base.d.ts.map +1 -1
- package/build/_modules/socket/_services/sck-client.service-base.js +6 -1
- package/build/_modules/socket/_services/sck-client.service-base.js.map +1 -1
- package/build/index.d.ts +2 -0
- package/build/index.d.ts.map +1 -1
- package/build/index.js +2 -0
- package/build/index.js.map +1 -1
- package/futdevpro-fsm-dynamo-01.10.21.tgz +0 -0
- package/nodemon.json +2 -0
- package/package.json +1 -1
- package/src/_collections/utils/array.util.ts +35 -0
- package/src/_collections/utils/stack.util.ts +10 -3
- package/src/_models/control-models/error.control-model.ts +15 -0
- package/src/_models/control-models/server-status.control-model.ts +39 -0
- package/src/_models/data-models/errors.data-model.ts +82 -0
- package/src/_models/interfaces/server-error-statistics.interface.ts +24 -0
- package/src/_modules/custom-data/_models/cud.data-model.spec.ts +1 -1
- package/src/_modules/custom-data/_models/cud.data-model.ts +1 -1
- package/src/_modules/location/index.ts +8 -9
- package/src/_modules/socket/_services/sck-client.service-base.ts +5 -1
- package/src/index.ts +2 -0
- package/build/_models/data-models/metadata.data-model.spec.d.ts +0 -2
- package/build/_models/data-models/metadata.data-model.spec.d.ts.map +0 -1
- package/build/_models/data-models/metadata.data-model.spec.js +0 -102
- package/build/_models/data-models/metadata.data-model.spec.js.map +0 -1
- package/futdevpro-fsm-dynamo-01.10.19.tgz +0 -0
- package/src/_models/data-models/metadata.data-model.spec.ts +0 -123
package/build/index.d.ts
CHANGED
|
@@ -36,6 +36,7 @@ export * from './_models/control-models/error.control-model';
|
|
|
36
36
|
export * from './_models/control-models/poll.control-model';
|
|
37
37
|
export * from './_models/control-models/range-value.control-model';
|
|
38
38
|
export * from './_models/control-models/service-endpoint-settings-base.control-model';
|
|
39
|
+
export * from './_models/data-models/errors.data-model';
|
|
39
40
|
export * from './_models/data-models/metadata.data-model';
|
|
40
41
|
export * from './_models/interfaces/error-defaults.interface';
|
|
41
42
|
export * from './_models/interfaces/paged.interface';
|
|
@@ -43,6 +44,7 @@ export * from './_models/interfaces/random-weight.interface';
|
|
|
43
44
|
export * from './_models/interfaces/route-settings.interface';
|
|
44
45
|
export * from './_models/interfaces/search-query.interface';
|
|
45
46
|
export * from './_models/interfaces/search-result.interface';
|
|
47
|
+
export * from './_models/interfaces/server-error-statistics.interface';
|
|
46
48
|
export * from './_models/interfaces/vector2.interface';
|
|
47
49
|
export * from './_models/interfaces/environment/global-log-settings.interface';
|
|
48
50
|
export * from './_models/interfaces/environment/global-settings.interface';
|
package/build/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAGA,cAAc,+CAA+C,CAAC;AAC9D,cAAc,gDAAgD,CAAC;AAC/D,cAAc,wCAAwC,CAAC;AACvD,cAAc,sCAAsC,CAAC;AAGrD,cAAc,iCAAiC,CAAC;AAChD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,sCAAsC,CAAC;AACrD,cAAc,kCAAkC,CAAC;AACjD,cAAc,iCAAiC,CAAC;AAChD,cAAc,kCAAkC,CAAC;AACjD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,iDAAiD,CAAC;AAChE,cAAc,qCAAqC,CAAC;AACpD,cAAc,gCAAgC,CAAC;AAG/C,cAAc,2CAA2C,CAAC;AAC1D,cAAc,qCAAqC,CAAC;AACpD,cAAc,uCAAuC,CAAC;AACtD,cAAc,6CAA6C,CAAC;AAC5D,cAAc,wCAAwC,CAAC;AAGvD,cAAc,gDAAgD,CAAC;AAC/D,cAAc,uCAAuC,CAAC;AACtD,cAAc,gDAAgD,CAAC;AAI/D,cAAc,mCAAmC,CAAC;AAClD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,kCAAkC,CAAC;AACjD,cAAc,yBAAyB,CAAC;AAGxC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,0BAA0B,CAAC;AACzC,cAAc,kCAAkC,CAAC;AAKjD,cAAc,0DAA0D,CAAC;AACzE,cAAc,6DAA6D,CAAC;AAC5E,cAAc,8CAA8C,CAAC;AAC7D,cAAc,6CAA6C,CAAC;AAC5D,cAAc,oDAAoD,CAAC;AACnE,cAAc,uEAAuE,CAAC;AAGtF,cAAc,2CAA2C,CAAC;AAG1D,cAAc,+CAA+C,CAAC;AAC9D,cAAc,sCAAsC,CAAC;AACrD,cAAc,8CAA8C,CAAC;AAC7D,cAAc,+CAA+C,CAAC;AAC9D,cAAc,6CAA6C,CAAC;AAC5D,cAAc,8CAA8C,CAAC;AAC7D,cAAc,wCAAwC,CAAC;AAGvD,cAAc,gEAAgE,CAAC;AAC/E,cAAc,4DAA4D,CAAC;AAG3E,cAAc,gCAAgC,CAAC;AAC/C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,iCAAiC,CAAC;AAChD,cAAc,+BAA+B,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAGA,cAAc,+CAA+C,CAAC;AAC9D,cAAc,gDAAgD,CAAC;AAC/D,cAAc,wCAAwC,CAAC;AACvD,cAAc,sCAAsC,CAAC;AAGrD,cAAc,iCAAiC,CAAC;AAChD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,sCAAsC,CAAC;AACrD,cAAc,kCAAkC,CAAC;AACjD,cAAc,iCAAiC,CAAC;AAChD,cAAc,kCAAkC,CAAC;AACjD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,iDAAiD,CAAC;AAChE,cAAc,qCAAqC,CAAC;AACpD,cAAc,gCAAgC,CAAC;AAG/C,cAAc,2CAA2C,CAAC;AAC1D,cAAc,qCAAqC,CAAC;AACpD,cAAc,uCAAuC,CAAC;AACtD,cAAc,6CAA6C,CAAC;AAC5D,cAAc,wCAAwC,CAAC;AAGvD,cAAc,gDAAgD,CAAC;AAC/D,cAAc,uCAAuC,CAAC;AACtD,cAAc,gDAAgD,CAAC;AAI/D,cAAc,mCAAmC,CAAC;AAClD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,kCAAkC,CAAC;AACjD,cAAc,yBAAyB,CAAC;AAGxC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,0BAA0B,CAAC;AACzC,cAAc,kCAAkC,CAAC;AAKjD,cAAc,0DAA0D,CAAC;AACzE,cAAc,6DAA6D,CAAC;AAC5E,cAAc,8CAA8C,CAAC;AAC7D,cAAc,6CAA6C,CAAC;AAC5D,cAAc,oDAAoD,CAAC;AACnE,cAAc,uEAAuE,CAAC;AAGtF,cAAc,yCAAyC,CAAC;AACxD,cAAc,2CAA2C,CAAC;AAG1D,cAAc,+CAA+C,CAAC;AAC9D,cAAc,sCAAsC,CAAC;AACrD,cAAc,8CAA8C,CAAC;AAC7D,cAAc,+CAA+C,CAAC;AAC9D,cAAc,6CAA6C,CAAC;AAC5D,cAAc,8CAA8C,CAAC;AAC7D,cAAc,wDAAwD,CAAC;AACvE,cAAc,wCAAwC,CAAC;AAGvD,cAAc,gEAAgE,CAAC;AAC/E,cAAc,4DAA4D,CAAC;AAG3E,cAAc,gCAAgC,CAAC;AAC/C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,iCAAiC,CAAC;AAChD,cAAc,+BAA+B,CAAC"}
|
package/build/index.js
CHANGED
|
@@ -49,6 +49,7 @@ tslib_1.__exportStar(require("./_models/control-models/poll.control-model"), exp
|
|
|
49
49
|
tslib_1.__exportStar(require("./_models/control-models/range-value.control-model"), exports);
|
|
50
50
|
tslib_1.__exportStar(require("./_models/control-models/service-endpoint-settings-base.control-model"), exports);
|
|
51
51
|
// models/DATA MODELS
|
|
52
|
+
tslib_1.__exportStar(require("./_models/data-models/errors.data-model"), exports);
|
|
52
53
|
tslib_1.__exportStar(require("./_models/data-models/metadata.data-model"), exports);
|
|
53
54
|
// models/INTERFACES
|
|
54
55
|
tslib_1.__exportStar(require("./_models/interfaces/error-defaults.interface"), exports);
|
|
@@ -57,6 +58,7 @@ tslib_1.__exportStar(require("./_models/interfaces/random-weight.interface"), ex
|
|
|
57
58
|
tslib_1.__exportStar(require("./_models/interfaces/route-settings.interface"), exports);
|
|
58
59
|
tslib_1.__exportStar(require("./_models/interfaces/search-query.interface"), exports);
|
|
59
60
|
tslib_1.__exportStar(require("./_models/interfaces/search-result.interface"), exports);
|
|
61
|
+
tslib_1.__exportStar(require("./_models/interfaces/server-error-statistics.interface"), exports);
|
|
60
62
|
tslib_1.__exportStar(require("./_models/interfaces/vector2.interface"), exports);
|
|
61
63
|
// models/interfaces/ENVIRONMENT
|
|
62
64
|
tslib_1.__exportStar(require("./_models/interfaces/environment/global-log-settings.interface"), exports);
|
package/build/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AACA,cAAc;AACd,wBAAwB;AACxB,wFAA8D;AAC9D,yFAA+D;AAC/D,iFAAuD;AACvD,+EAAqD;AAErD,oBAAoB;AACpB,0EAAgD;AAChD,wEAA8C;AAC9C,+EAAqD;AACrD,2EAAiD;AACjD,0EAAgD;AAChD,2EAAiD;AACjD,yEAA+C;AAC/C,0FAAgE;AAChE,8EAAoD;AACpD,yEAA+C;AAE/C,yBAAyB;AACzB,oFAA0D;AAC1D,8EAAoD;AACpD,gFAAsD;AACtD,sFAA4D;AAC5D,iFAAuD;AAEvD,2BAA2B;AAC3B,yFAA+D;AAC/D,gFAAsD;AACtD,yFAA+D;AAG/D,QAAQ;AACR,4EAAkD;AAClD,wEAA8C;AAC9C,yEAA+C;AAC/C,oEAA0C;AAC1C,uEAA6C;AAC7C,2EAAiD;AACjD,kEAAwC;AAExC,aAAa;AACb,yEAA+C;AAC/C,mEAAyC;AACzC,2EAAiD;AAGjD,SAAS;AACT,wBAAwB;AACxB,mGAAyE;AACzE,sGAA4E;AAC5E,uFAA6D;AAC7D,sFAA4D;AAC5D,6FAAmE;AACnE,gHAAsF;AAEtF,qBAAqB;AACrB,oFAA0D;AAE1D,oBAAoB;AACpB,wFAA8D;AAC9D,+EAAqD;AACrD,uFAA6D;AAC7D,wFAA8D;AAC9D,sFAA4D;AAC5D,uFAA6D;AAC7D,iFAAuD;AAEvD,gCAAgC;AAChC,yGAA+E;AAC/E,qGAA2E;AAE3E,eAAe;AACf,yEAA+C;AAC/C,uEAA6C;AAC7C,+EAAgD;AAChD,6EAA8C"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AACA,cAAc;AACd,wBAAwB;AACxB,wFAA8D;AAC9D,yFAA+D;AAC/D,iFAAuD;AACvD,+EAAqD;AAErD,oBAAoB;AACpB,0EAAgD;AAChD,wEAA8C;AAC9C,+EAAqD;AACrD,2EAAiD;AACjD,0EAAgD;AAChD,2EAAiD;AACjD,yEAA+C;AAC/C,0FAAgE;AAChE,8EAAoD;AACpD,yEAA+C;AAE/C,yBAAyB;AACzB,oFAA0D;AAC1D,8EAAoD;AACpD,gFAAsD;AACtD,sFAA4D;AAC5D,iFAAuD;AAEvD,2BAA2B;AAC3B,yFAA+D;AAC/D,gFAAsD;AACtD,yFAA+D;AAG/D,QAAQ;AACR,4EAAkD;AAClD,wEAA8C;AAC9C,yEAA+C;AAC/C,oEAA0C;AAC1C,uEAA6C;AAC7C,2EAAiD;AACjD,kEAAwC;AAExC,aAAa;AACb,yEAA+C;AAC/C,mEAAyC;AACzC,2EAAiD;AAGjD,SAAS;AACT,wBAAwB;AACxB,mGAAyE;AACzE,sGAA4E;AAC5E,uFAA6D;AAC7D,sFAA4D;AAC5D,6FAAmE;AACnE,gHAAsF;AAEtF,qBAAqB;AACrB,kFAAwD;AACxD,oFAA0D;AAE1D,oBAAoB;AACpB,wFAA8D;AAC9D,+EAAqD;AACrD,uFAA6D;AAC7D,wFAA8D;AAC9D,sFAA4D;AAC5D,uFAA6D;AAC7D,iGAAuE;AACvE,iFAAuD;AAEvD,gCAAgC;AAChC,yGAA+E;AAC/E,qGAA2E;AAE3E,eAAe;AACf,yEAA+C;AAC/C,uEAA6C;AAC7C,+EAAgD;AAChD,6EAA8C"}
|
|
Binary file
|
package/nodemon.json
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@futdevpro/fsm-dynamo",
|
|
3
|
-
"version": "01.10.
|
|
3
|
+
"version": "01.10.21",
|
|
4
4
|
"description": "Full Stack Model Collection for Dynamic (NodeJS-Typescript) Framework called Dynamo, by Future Development Ltd.",
|
|
5
5
|
"scripts": {
|
|
6
6
|
"prep": "npm i pnpm -g && npm i rimraf nodemon -g",
|
|
@@ -16,6 +16,33 @@ export class DyFM_Array {
|
|
|
16
16
|
}
|
|
17
17
|
}
|
|
18
18
|
|
|
19
|
+
static async asyncForEachReturnToOne<T, K>(
|
|
20
|
+
startData: K,
|
|
21
|
+
list: T[],
|
|
22
|
+
func: (element: T, dataCurrent: K, index?: number, array?: T[]) => Promise<K>
|
|
23
|
+
): Promise<K> {
|
|
24
|
+
let result: K = startData;
|
|
25
|
+
|
|
26
|
+
for (let i = 0; i < list.length; i++) {
|
|
27
|
+
result = await func(list[i], result, i, list);
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
return result;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
static async asyncForEachReturnToAll<T, K>(
|
|
34
|
+
list: T[],
|
|
35
|
+
func: (element: T, index?: number, array?: T[]) => Promise<K>
|
|
36
|
+
): Promise<K[]> {
|
|
37
|
+
const resultList: K[] = [];
|
|
38
|
+
|
|
39
|
+
for (let i = 0; i < list.length; i++) {
|
|
40
|
+
resultList.push(await func(list[i], i, list));
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
return resultList;
|
|
44
|
+
}
|
|
45
|
+
|
|
19
46
|
static async asyncForEachAllAtOnce<T>(
|
|
20
47
|
list: T[],
|
|
21
48
|
func: (element: T, index?: number, array?: T[]) => Promise<void>
|
|
@@ -186,6 +213,14 @@ export class DyFM_Array {
|
|
|
186
213
|
return multiplications;
|
|
187
214
|
}
|
|
188
215
|
|
|
216
|
+
static findFromEnd<T>(array: T[], func: (element: T, index?: number, array?: T[]) => boolean): T {
|
|
217
|
+
for (let i = array.length - 1; i >= 0; i--) {
|
|
218
|
+
if (func(array[i], i, array)) {
|
|
219
|
+
return array[i];
|
|
220
|
+
}
|
|
221
|
+
}
|
|
222
|
+
}
|
|
223
|
+
|
|
189
224
|
}
|
|
190
225
|
|
|
191
226
|
|
|
@@ -18,14 +18,21 @@ export function DyFM_getStackLocation(): string {
|
|
|
18
18
|
!line.includes('at new')
|
|
19
19
|
);
|
|
20
20
|
if (!constructorLine) {
|
|
21
|
-
|
|
22
|
-
|
|
21
|
+
let constructorLine = stack?.split(' at ')?.find(line =>
|
|
22
|
+
!line.includes('getStackLocation') &&
|
|
23
|
+
!line.includes('at new')
|
|
24
|
+
);
|
|
25
|
+
|
|
26
|
+
if (!constructorLine) {
|
|
27
|
+
DyFM_Log.warn('No constructor line found\n' + stack?.split('\n').slice(0, 100) + '...');
|
|
28
|
+
return '';
|
|
29
|
+
}
|
|
23
30
|
}
|
|
24
31
|
|
|
25
32
|
// Remove the 'constructorLine at ... (' and the ')'
|
|
26
33
|
constructorLine = constructorLine.split('(')[1]?.split(')')[0];
|
|
27
34
|
if (!constructorLine) {
|
|
28
|
-
DyFM_Log.warn('No constructor line found\n' + stack);
|
|
35
|
+
DyFM_Log.warn('No constructor line found\n' + stack?.split('\n').slice(0, 100) + '...');
|
|
29
36
|
return '';
|
|
30
37
|
}
|
|
31
38
|
|
|
@@ -464,6 +464,21 @@ export class DyFM_Error extends DyFM_Metadata {
|
|
|
464
464
|
|
|
465
465
|
this.___logged = true;
|
|
466
466
|
}
|
|
467
|
+
|
|
468
|
+
/**
|
|
469
|
+
* Checks if the error is parsable,
|
|
470
|
+
* simplifies the error,
|
|
471
|
+
* and returns the error as a string.
|
|
472
|
+
*/
|
|
473
|
+
getParsable(): string {
|
|
474
|
+
try {
|
|
475
|
+
const flat = this.getErrorsFlat();
|
|
476
|
+
return JSON.stringify(flat);
|
|
477
|
+
} catch (error) {
|
|
478
|
+
DyFM_Log.error('Error getting parsable error', error);
|
|
479
|
+
return JSON.stringify(this.getErrorSimplified());
|
|
480
|
+
}
|
|
481
|
+
}
|
|
467
482
|
}
|
|
468
483
|
|
|
469
484
|
/*
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { DyFM_Metadata } from '../data-models/metadata.data-model';
|
|
2
|
+
|
|
3
|
+
export class DyFM_ServerStatus extends DyFM_Metadata {
|
|
4
|
+
status?: 'ready';
|
|
5
|
+
|
|
6
|
+
clientVersionOk?: boolean;
|
|
7
|
+
latestClientVersion?: string;
|
|
8
|
+
latestClientVersionNumeric?: number;
|
|
9
|
+
|
|
10
|
+
serverVersion?: string;
|
|
11
|
+
serverNumericVersion?: number;
|
|
12
|
+
|
|
13
|
+
uptime?: number;
|
|
14
|
+
|
|
15
|
+
serverMessage?: string;
|
|
16
|
+
|
|
17
|
+
memoryUsage?: {
|
|
18
|
+
rss: number,
|
|
19
|
+
heapTotal: number,
|
|
20
|
+
heapUsed: number,
|
|
21
|
+
external: number,
|
|
22
|
+
arrayBuffers: number,
|
|
23
|
+
};
|
|
24
|
+
cpuUsage?: {
|
|
25
|
+
user: number,
|
|
26
|
+
system: number,
|
|
27
|
+
};
|
|
28
|
+
|
|
29
|
+
constructor(
|
|
30
|
+
set?: DyFM_ServerStatus
|
|
31
|
+
) {
|
|
32
|
+
super(set);
|
|
33
|
+
|
|
34
|
+
if (set) {
|
|
35
|
+
Object.assign(this, set);
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
import { DyFM_DataModel_Params } from '../control-models/data-model-params.control-model';
|
|
2
|
+
import { DyFM_ErrorLevel } from '../../_enums/error-level.enum';
|
|
3
|
+
import { DyFM_Error } from '../control-models/error.control-model';
|
|
4
|
+
import { DyFM_Metadata } from './metadata.data-model';
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
export const DyFM_errorsFlag = 'DyFM-ERRORS-OBJECT';
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* This obj is the saved version of the DyFM_Error object.
|
|
11
|
+
* It is used to store the error in the database and its statistics.
|
|
12
|
+
*/
|
|
13
|
+
export class DyFM_Errors extends DyFM_Metadata {
|
|
14
|
+
readonly flag?: string = DyFM_errorsFlag;
|
|
15
|
+
|
|
16
|
+
source?: string;
|
|
17
|
+
issuer?: string;
|
|
18
|
+
username?: string;
|
|
19
|
+
version?: string;
|
|
20
|
+
|
|
21
|
+
localTime?: string;
|
|
22
|
+
region?: string;
|
|
23
|
+
|
|
24
|
+
message?: string;
|
|
25
|
+
exception?: string;
|
|
26
|
+
exceptionObj?: any;
|
|
27
|
+
|
|
28
|
+
stackTrace?: string[];
|
|
29
|
+
error?: any;
|
|
30
|
+
|
|
31
|
+
count?: number = 1;
|
|
32
|
+
|
|
33
|
+
d_error?: DyFM_Error;
|
|
34
|
+
|
|
35
|
+
additionalContent?: any;
|
|
36
|
+
|
|
37
|
+
level?: DyFM_ErrorLevel;
|
|
38
|
+
priority?: number;
|
|
39
|
+
duplications?: DyFM_Errors[] = [];
|
|
40
|
+
|
|
41
|
+
constructor(
|
|
42
|
+
set?: DyFM_Errors
|
|
43
|
+
) {
|
|
44
|
+
super(set);
|
|
45
|
+
|
|
46
|
+
if (set) {
|
|
47
|
+
Object.assign(this, set);
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
export const DyNTS_error_dataParams: DyFM_DataModel_Params<DyFM_Errors> =
|
|
53
|
+
new DyFM_DataModel_Params<DyFM_Errors>({
|
|
54
|
+
dataName: 'dynts_error',
|
|
55
|
+
properties: {
|
|
56
|
+
flag: { type: 'string' },
|
|
57
|
+
|
|
58
|
+
issuer: { type: 'string' },
|
|
59
|
+
username: { type: 'string' },
|
|
60
|
+
version: { type: 'string' },
|
|
61
|
+
|
|
62
|
+
localTime: { type: 'string' },
|
|
63
|
+
region: { type: 'string' },
|
|
64
|
+
|
|
65
|
+
message: { type: 'string' },
|
|
66
|
+
exception: { type: 'string' },
|
|
67
|
+
exceptionObj: { type: 'any' },
|
|
68
|
+
|
|
69
|
+
stackTrace: { type: 'string[]' },
|
|
70
|
+
error: { type: 'any' },
|
|
71
|
+
|
|
72
|
+
count: { type: 'number' },
|
|
73
|
+
|
|
74
|
+
d_error: { type: 'DyFM_Error' },
|
|
75
|
+
|
|
76
|
+
additionalContent: { type: 'any' },
|
|
77
|
+
|
|
78
|
+
level: { type: 'DyFM_ErrorLevel' },
|
|
79
|
+
priority: { type: 'number' },
|
|
80
|
+
duplications: { type: 'DyNTS_Error[]' },
|
|
81
|
+
},
|
|
82
|
+
});
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
|
|
2
|
+
|
|
3
|
+
export interface DyFM_Error_Statistics {
|
|
4
|
+
range?: string;
|
|
5
|
+
|
|
6
|
+
allErrors?: number;
|
|
7
|
+
allAllErrors?: number;
|
|
8
|
+
|
|
9
|
+
serverErrors?: number;
|
|
10
|
+
clientErrors?: number;
|
|
11
|
+
allServerErrors?: number;
|
|
12
|
+
allClientErrors?: number;
|
|
13
|
+
|
|
14
|
+
infoErrors?: number;
|
|
15
|
+
warningErrors?: number;
|
|
16
|
+
errorErrors?: number;
|
|
17
|
+
criticalErrors?: number;
|
|
18
|
+
|
|
19
|
+
allInfoErrors?: number;
|
|
20
|
+
allWarningErrors?: number;
|
|
21
|
+
allErrorErrors?: number;
|
|
22
|
+
allCriticalErrors?: number;
|
|
23
|
+
}
|
|
24
|
+
|
|
@@ -26,7 +26,7 @@ describe('DyFM_CustomData', () => {
|
|
|
26
26
|
|
|
27
27
|
describe('DyFM_customData_dataParams', () => {
|
|
28
28
|
it('should have correct dataName and properties', () => {
|
|
29
|
-
expect(DyFM_customData_dataParams.dataName).toEqual('
|
|
29
|
+
expect(DyFM_customData_dataParams.dataName).toEqual('custom_data');
|
|
30
30
|
expect(DyFM_customData_dataParams.properties).toEqual({
|
|
31
31
|
data: { key: 'data', type: 'string', required: true },
|
|
32
32
|
});
|
|
@@ -21,7 +21,7 @@ export class DyFM_CustomData<T = any> extends DyFM_Metadata {
|
|
|
21
21
|
|
|
22
22
|
export const DyFM_customData_dataParams: DyFM_DataModel_Params<DyFM_CustomData> =
|
|
23
23
|
new DyFM_DataModel_Params<DyFM_CustomData>({
|
|
24
|
-
dataName: '
|
|
24
|
+
dataName: 'custom_data',
|
|
25
25
|
properties: {
|
|
26
26
|
data: { key: 'data', type: 'string', required: true },
|
|
27
27
|
},
|
|
@@ -1,13 +1,4 @@
|
|
|
1
1
|
|
|
2
|
-
// INTERFACES
|
|
3
|
-
export * from './_models/loc-country-division.interface';
|
|
4
|
-
export * from './_models/loc-country-iso.interface';
|
|
5
|
-
export * from './_models/loc-country-phone-code.interface';
|
|
6
|
-
export * from './_models/loc-division-collection.interface';
|
|
7
|
-
export * from './_models/loc-division-region-data.interface';
|
|
8
|
-
export * from './_models/loc-geo-ip-location.interface';
|
|
9
|
-
export * from './_models/loc-coordinates.interface';
|
|
10
|
-
|
|
11
2
|
// ENUMS
|
|
12
3
|
export * from './_enums/loc-region.enum';
|
|
13
4
|
export * from './_enums/loc-sub-region.enum';
|
|
@@ -19,5 +10,13 @@ export * from './_collections/loc-country-isos.const';
|
|
|
19
10
|
export * from './_collections/loc.util';
|
|
20
11
|
export * from './_collections/loc-regions.util';
|
|
21
12
|
|
|
13
|
+
// INTERFACES
|
|
14
|
+
export * from './_models/loc-country-division.interface';
|
|
15
|
+
export * from './_models/loc-country-iso.interface';
|
|
16
|
+
export * from './_models/loc-country-phone-code.interface';
|
|
17
|
+
export * from './_models/loc-division-collection.interface';
|
|
18
|
+
export * from './_models/loc-division-region-data.interface';
|
|
19
|
+
export * from './_models/loc-geo-ip-location.interface';
|
|
20
|
+
export * from './_models/loc-coordinates.interface';
|
|
22
21
|
|
|
23
22
|
|
|
@@ -101,7 +101,11 @@ export abstract class DyFM_SocketClient_ServiceBase<T_SubscriptionContent = any>
|
|
|
101
101
|
eventKey: DyFM_SocketEvent_Key.error,
|
|
102
102
|
tasks: [
|
|
103
103
|
async (content: any): Promise<void> => {
|
|
104
|
-
|
|
104
|
+
if (content instanceof DyFM_Error) {
|
|
105
|
+
content.logSimple(`=--> socket-client(${this.params.name}) ERROR`);
|
|
106
|
+
} else {
|
|
107
|
+
DyFM_Log.error(`=--> socket-client(${this.params.name}) ERROR:`, content);
|
|
108
|
+
}
|
|
105
109
|
},
|
|
106
110
|
],
|
|
107
111
|
}),
|
package/src/index.ts
CHANGED
|
@@ -56,6 +56,7 @@ export * from './_models/control-models/range-value.control-model';
|
|
|
56
56
|
export * from './_models/control-models/service-endpoint-settings-base.control-model';
|
|
57
57
|
|
|
58
58
|
// models/DATA MODELS
|
|
59
|
+
export * from './_models/data-models/errors.data-model';
|
|
59
60
|
export * from './_models/data-models/metadata.data-model';
|
|
60
61
|
|
|
61
62
|
// models/INTERFACES
|
|
@@ -65,6 +66,7 @@ export * from './_models/interfaces/random-weight.interface';
|
|
|
65
66
|
export * from './_models/interfaces/route-settings.interface';
|
|
66
67
|
export * from './_models/interfaces/search-query.interface';
|
|
67
68
|
export * from './_models/interfaces/search-result.interface';
|
|
69
|
+
export * from './_models/interfaces/server-error-statistics.interface';
|
|
68
70
|
export * from './_models/interfaces/vector2.interface';
|
|
69
71
|
|
|
70
72
|
// models/interfaces/ENVIRONMENT
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"metadata.data-model.spec.d.ts","sourceRoot":"","sources":["../../../src/_models/data-models/metadata.data-model.spec.ts"],"names":[],"mappings":""}
|
|
@@ -1,102 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const metadata_data_model_1 = require("./metadata.data-model");
|
|
4
|
-
describe('DyFM_Metadata', () => {
|
|
5
|
-
describe('constructor', () => {
|
|
6
|
-
it('should initialize with default values when no parameters are provided', () => {
|
|
7
|
-
const metadata = new metadata_data_model_1.DyFM_Metadata();
|
|
8
|
-
expect(metadata._id).toBeUndefined();
|
|
9
|
-
expect(metadata.__created).toBeDefined();
|
|
10
|
-
expect(metadata.__createdBy).toBeUndefined();
|
|
11
|
-
expect(metadata.__lastModified).toBeDefined();
|
|
12
|
-
expect(metadata.__lastModifiedBy).toBeUndefined();
|
|
13
|
-
expect(metadata.__v).toBe(0);
|
|
14
|
-
expect(metadata._deleted).toBeUndefined();
|
|
15
|
-
expect(metadata._archived).toBeUndefined();
|
|
16
|
-
expect(metadata._originalId).toBeUndefined();
|
|
17
|
-
});
|
|
18
|
-
it('should initialize with provided set values', () => {
|
|
19
|
-
const set = {
|
|
20
|
-
_id: '123',
|
|
21
|
-
__created: new Date('2023-01-01'),
|
|
22
|
-
__createdBy: 'creator',
|
|
23
|
-
__lastModified: new Date('2023-01-02'),
|
|
24
|
-
__lastModifiedBy: 'modifier',
|
|
25
|
-
__v: 1,
|
|
26
|
-
_archived: new Date('2023-01-03'),
|
|
27
|
-
_originalId: 'orig-123'
|
|
28
|
-
};
|
|
29
|
-
const metadata = new metadata_data_model_1.DyFM_Metadata(set);
|
|
30
|
-
expect(metadata._id).toBe('123');
|
|
31
|
-
expect(metadata.__created).toEqual(new Date('2023-01-01'));
|
|
32
|
-
expect(metadata.__createdBy).toBe('creator');
|
|
33
|
-
expect(metadata.__lastModified).toEqual(new Date('2023-01-02'));
|
|
34
|
-
expect(metadata.__lastModifiedBy).toBe('modifier');
|
|
35
|
-
expect(metadata.__v).toBe(1);
|
|
36
|
-
expect(metadata._archived).toEqual(new Date('2023-01-03'));
|
|
37
|
-
expect(metadata._originalId).toBe('orig-123');
|
|
38
|
-
});
|
|
39
|
-
it('should initialize with provided init values', () => {
|
|
40
|
-
const init = {
|
|
41
|
-
id: '456',
|
|
42
|
-
issuer: 'issuer'
|
|
43
|
-
};
|
|
44
|
-
const metadata = new metadata_data_model_1.DyFM_Metadata(undefined, init);
|
|
45
|
-
expect(metadata._id).toBe('456');
|
|
46
|
-
expect(metadata.__createdBy).toBe('issuer');
|
|
47
|
-
expect(metadata.__lastModifiedBy).toBe('issuer');
|
|
48
|
-
});
|
|
49
|
-
it('should prioritize set values over init values', () => {
|
|
50
|
-
const set = {
|
|
51
|
-
_id: '123',
|
|
52
|
-
__createdBy: 'creator',
|
|
53
|
-
__lastModifiedBy: 'modifier'
|
|
54
|
-
};
|
|
55
|
-
const init = {
|
|
56
|
-
id: '456',
|
|
57
|
-
issuer: 'issuer'
|
|
58
|
-
};
|
|
59
|
-
const metadata = new metadata_data_model_1.DyFM_Metadata(set, init);
|
|
60
|
-
expect(metadata._id).toBe('123');
|
|
61
|
-
expect(metadata.__createdBy).toBe('creator');
|
|
62
|
-
expect(metadata.__lastModifiedBy).toBe('modifier');
|
|
63
|
-
});
|
|
64
|
-
});
|
|
65
|
-
describe('updateMetadata', () => {
|
|
66
|
-
it('should update metadata with new values', () => {
|
|
67
|
-
const data = {
|
|
68
|
-
_id: '789',
|
|
69
|
-
__created: new Date('2023-01-01'),
|
|
70
|
-
__createdBy: 'creator',
|
|
71
|
-
__lastModified: new Date('2023-01-02'),
|
|
72
|
-
__lastModifiedBy: 'modifier',
|
|
73
|
-
__v: 1
|
|
74
|
-
};
|
|
75
|
-
const updatedData = metadata_data_model_1.DyFM_Metadata.updateMetadata(data, 'newIssuer', '789');
|
|
76
|
-
expect(updatedData._id).toBe('789');
|
|
77
|
-
expect(updatedData.__created).toEqual(new Date('2023-01-01'));
|
|
78
|
-
expect(updatedData.__createdBy).toBe('creator');
|
|
79
|
-
expect(updatedData.__lastModified).toBeDefined();
|
|
80
|
-
expect(updatedData.__lastModifiedBy).toBe('newIssuer');
|
|
81
|
-
expect(updatedData.__v).toBe(2);
|
|
82
|
-
});
|
|
83
|
-
it('should throw an error if data is deleted', () => {
|
|
84
|
-
const data = {
|
|
85
|
-
_deleted: new Date()
|
|
86
|
-
};
|
|
87
|
-
expect(() => metadata_data_model_1.DyFM_Metadata.updateMetadata(data, 'issuer')).toThrowError('Cannot update metadata of deleted data');
|
|
88
|
-
});
|
|
89
|
-
it('should set new id if not present and id is provided', () => {
|
|
90
|
-
const data = {};
|
|
91
|
-
const updatedData = metadata_data_model_1.DyFM_Metadata.updateMetadata(data, 'issuer', 'new-id');
|
|
92
|
-
expect(updatedData._id).toBe('new-id');
|
|
93
|
-
});
|
|
94
|
-
it('should set created and createdBy if not present', () => {
|
|
95
|
-
const data = {};
|
|
96
|
-
const updatedData = metadata_data_model_1.DyFM_Metadata.updateMetadata(data, 'issuer');
|
|
97
|
-
expect(updatedData.__created).toBeDefined();
|
|
98
|
-
expect(updatedData.__createdBy).toBe('issuer');
|
|
99
|
-
});
|
|
100
|
-
});
|
|
101
|
-
});
|
|
102
|
-
//# sourceMappingURL=metadata.data-model.spec.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"metadata.data-model.spec.js","sourceRoot":"","sources":["../../../src/_models/data-models/metadata.data-model.spec.ts"],"names":[],"mappings":"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"}
|
|
Binary file
|
|
@@ -1,123 +0,0 @@
|
|
|
1
|
-
|
|
2
|
-
import { DyFM_Metadata } from './metadata.data-model';
|
|
3
|
-
|
|
4
|
-
describe('DyFM_Metadata', () => {
|
|
5
|
-
describe('constructor', () => {
|
|
6
|
-
it('should initialize with default values when no parameters are provided', () => {
|
|
7
|
-
const metadata = new DyFM_Metadata();
|
|
8
|
-
|
|
9
|
-
expect(metadata._id).toBeUndefined();
|
|
10
|
-
expect(metadata.__created).toBeDefined();
|
|
11
|
-
expect(metadata.__createdBy).toBeUndefined();
|
|
12
|
-
expect(metadata.__lastModified).toBeDefined();
|
|
13
|
-
expect(metadata.__lastModifiedBy).toBeUndefined();
|
|
14
|
-
expect(metadata.__v).toBe(0);
|
|
15
|
-
expect(metadata._deleted).toBeUndefined();
|
|
16
|
-
expect(metadata._archived).toBeUndefined();
|
|
17
|
-
expect(metadata._originalId).toBeUndefined();
|
|
18
|
-
});
|
|
19
|
-
|
|
20
|
-
it('should initialize with provided set values', () => {
|
|
21
|
-
const set: DyFM_Metadata = {
|
|
22
|
-
_id: '123',
|
|
23
|
-
__created: new Date('2023-01-01'),
|
|
24
|
-
__createdBy: 'creator',
|
|
25
|
-
__lastModified: new Date('2023-01-02'),
|
|
26
|
-
__lastModifiedBy: 'modifier',
|
|
27
|
-
__v: 1,
|
|
28
|
-
_archived: new Date('2023-01-03'),
|
|
29
|
-
_originalId: 'orig-123'
|
|
30
|
-
};
|
|
31
|
-
|
|
32
|
-
const metadata = new DyFM_Metadata(set);
|
|
33
|
-
|
|
34
|
-
expect(metadata._id).toBe('123');
|
|
35
|
-
expect(metadata.__created).toEqual(new Date('2023-01-01'));
|
|
36
|
-
expect(metadata.__createdBy).toBe('creator');
|
|
37
|
-
expect(metadata.__lastModified).toEqual(new Date('2023-01-02'));
|
|
38
|
-
expect(metadata.__lastModifiedBy).toBe('modifier');
|
|
39
|
-
expect(metadata.__v).toBe(1);
|
|
40
|
-
expect(metadata._archived).toEqual(new Date('2023-01-03'));
|
|
41
|
-
expect(metadata._originalId).toBe('orig-123');
|
|
42
|
-
});
|
|
43
|
-
|
|
44
|
-
it('should initialize with provided init values', () => {
|
|
45
|
-
const init = {
|
|
46
|
-
id: '456',
|
|
47
|
-
issuer: 'issuer'
|
|
48
|
-
};
|
|
49
|
-
|
|
50
|
-
const metadata = new DyFM_Metadata(undefined, init);
|
|
51
|
-
|
|
52
|
-
expect(metadata._id).toBe('456');
|
|
53
|
-
expect(metadata.__createdBy).toBe('issuer');
|
|
54
|
-
expect(metadata.__lastModifiedBy).toBe('issuer');
|
|
55
|
-
});
|
|
56
|
-
|
|
57
|
-
it('should prioritize set values over init values', () => {
|
|
58
|
-
const set: DyFM_Metadata = {
|
|
59
|
-
_id: '123',
|
|
60
|
-
__createdBy: 'creator',
|
|
61
|
-
__lastModifiedBy: 'modifier'
|
|
62
|
-
};
|
|
63
|
-
|
|
64
|
-
const init = {
|
|
65
|
-
id: '456',
|
|
66
|
-
issuer: 'issuer'
|
|
67
|
-
};
|
|
68
|
-
|
|
69
|
-
const metadata = new DyFM_Metadata(set, init);
|
|
70
|
-
|
|
71
|
-
expect(metadata._id).toBe('123');
|
|
72
|
-
expect(metadata.__createdBy).toBe('creator');
|
|
73
|
-
expect(metadata.__lastModifiedBy).toBe('modifier');
|
|
74
|
-
});
|
|
75
|
-
});
|
|
76
|
-
|
|
77
|
-
describe('updateMetadata', () => {
|
|
78
|
-
it('should update metadata with new values', () => {
|
|
79
|
-
const data: DyFM_Metadata = {
|
|
80
|
-
_id: '789',
|
|
81
|
-
__created: new Date('2023-01-01'),
|
|
82
|
-
__createdBy: 'creator',
|
|
83
|
-
__lastModified: new Date('2023-01-02'),
|
|
84
|
-
__lastModifiedBy: 'modifier',
|
|
85
|
-
__v: 1
|
|
86
|
-
};
|
|
87
|
-
|
|
88
|
-
const updatedData = DyFM_Metadata.updateMetadata(data, 'newIssuer', '789');
|
|
89
|
-
|
|
90
|
-
expect(updatedData._id).toBe('789');
|
|
91
|
-
expect(updatedData.__created).toEqual(new Date('2023-01-01'));
|
|
92
|
-
expect(updatedData.__createdBy).toBe('creator');
|
|
93
|
-
expect(updatedData.__lastModified).toBeDefined();
|
|
94
|
-
expect(updatedData.__lastModifiedBy).toBe('newIssuer');
|
|
95
|
-
expect(updatedData.__v).toBe(2);
|
|
96
|
-
});
|
|
97
|
-
|
|
98
|
-
it('should throw an error if data is deleted', () => {
|
|
99
|
-
const data: DyFM_Metadata = {
|
|
100
|
-
_deleted: new Date()
|
|
101
|
-
};
|
|
102
|
-
|
|
103
|
-
expect(() => DyFM_Metadata.updateMetadata(data, 'issuer')).toThrowError('Cannot update metadata of deleted data');
|
|
104
|
-
});
|
|
105
|
-
|
|
106
|
-
it('should set new id if not present and id is provided', () => {
|
|
107
|
-
const data: DyFM_Metadata = {};
|
|
108
|
-
|
|
109
|
-
const updatedData = DyFM_Metadata.updateMetadata(data, 'issuer', 'new-id');
|
|
110
|
-
|
|
111
|
-
expect(updatedData._id).toBe('new-id');
|
|
112
|
-
});
|
|
113
|
-
|
|
114
|
-
it('should set created and createdBy if not present', () => {
|
|
115
|
-
const data: DyFM_Metadata = {};
|
|
116
|
-
|
|
117
|
-
const updatedData = DyFM_Metadata.updateMetadata(data, 'issuer');
|
|
118
|
-
|
|
119
|
-
expect(updatedData.__created).toBeDefined();
|
|
120
|
-
expect(updatedData.__createdBy).toBe('issuer');
|
|
121
|
-
});
|
|
122
|
-
});
|
|
123
|
-
});
|