@futdevpro/fsm-dynamo 1.9.9 → 1.9.12
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/.github/workflows/main.yml +196 -0
- package/HOWTO.md +15 -15
- package/README.md +17 -17
- package/build/_collections/constants/country-divisions.const.d.ts +1 -1
- package/build/_collections/constants/country-divisions.const.d.ts.map +1 -1
- package/build/_collections/constants/country-divisions.const.js +2 -2
- package/build/_collections/constants/country-divisions.const.js.map +1 -1
- package/build/_collections/constants/courtry-isos.const.d.ts +1 -1
- package/build/_collections/constants/courtry-isos.const.d.ts.map +1 -1
- package/build/_collections/constants/courtry-isos.const.js +2 -2
- package/build/_collections/constants/courtry-isos.const.js.map +1 -1
- package/build/_collections/constants/error-defaults.const.d.ts +1 -1
- package/build/_collections/constants/error-defaults.const.d.ts.map +1 -1
- package/build/_collections/constants/module-settings/usage-module-settings.const.js +1 -1
- package/build/_collections/constants/pipe-transforms.const.js +12 -12
- package/build/_collections/constants/pipe-transforms.const.js.map +1 -1
- package/build/_collections/utils/pipe-transforms/division-pipe.util.js +1 -1
- package/build/_collections/utils/pipe-transforms/division-pipe.util.js.map +1 -1
- package/build/_collections/utils/pipe-transforms/list-pipe.util.d.ts.map +1 -1
- package/build/_collections/utils/pipe-transforms/list-pipe.util.js.map +1 -1
- package/build/_collections/utils/pipe-transforms/range-pipe.util.d.ts +2 -2
- package/build/_collections/utils/pipe-transforms/range-pipe.util.d.ts.map +1 -1
- package/build/_collections/utils/pipe-transforms/range-pipe.util.js +11 -11
- package/build/_collections/utils/pipe-transforms/range-pipe.util.js.map +1 -1
- package/build/_collections/utils/regions.util.d.ts.map +1 -1
- package/build/_collections/utils/regions.util.js +3 -0
- package/build/_collections/utils/regions.util.js.map +1 -1
- package/build/_enums/range-pipe-setting.enum.d.ts +1 -1
- package/build/_enums/range-pipe-setting.enum.d.ts.map +1 -1
- package/build/_enums/range-pipe-setting.enum.js +12 -12
- package/build/_enums/range-pipe-setting.enum.js.map +1 -1
- package/build/_models/control-models/error.control-model.js +1 -1
- package/build/_models/control-models/error.control-model.js.map +1 -1
- package/build/_models/control-models/error.control-model.spec.js +25 -6
- package/build/_models/control-models/error.control-model.spec.js.map +1 -1
- package/build/_models/interfaces/index.d.ts +3 -0
- package/build/_models/interfaces/index.d.ts.map +1 -1
- package/build/_models/interfaces/index.js +3 -0
- package/build/_models/interfaces/index.js.map +1 -1
- package/build/_models/interfaces/pipe-transforms.interface.d.ts +2 -2
- package/build/_models/interfaces/pipe-transforms.interface.d.ts.map +1 -1
- package/futdevpro-fsm-dynamo-01.09.12.tgz +0 -0
- package/nodemon.json +11 -11
- package/package.json +151 -151
- package/src/_collections/assets/location/country-codes-ISO-3166.json +3239 -3239
- package/src/_collections/assets/location/country-divisions-ISO-3166-all-list.json +19035 -19035
- package/src/_collections/assets/location/country-divisions-ISO-3166.json +4993 -4993
- package/src/_collections/assets/location/country-phone-codes.json +1203 -1203
- package/src/_collections/constants/country-divisions.const.ts +9 -9
- package/src/_collections/constants/courtry-isos.const.ts +8 -8
- package/src/_collections/constants/error-defaults.const.ts +11 -11
- package/src/_collections/constants/index.ts +15 -15
- package/src/_collections/constants/module-settings/custom-data-module-settings.const.ts +15 -15
- package/src/_collections/constants/module-settings/index.ts +8 -8
- package/src/_collections/constants/module-settings/test-module-settings.const.ts +19 -19
- package/src/_collections/constants/module-settings/usage-module-settings.const.ts +19 -19
- package/src/_collections/constants/pipe-transforms.const.ts +35 -35
- package/src/_collections/constants/times.const.ts +8 -8
- package/src/_collections/index.ts +6 -6
- package/src/_collections/utils/array.util.spec.ts +39 -39
- package/src/_collections/utils/array.util.ts +137 -137
- package/src/_collections/utils/index.ts +18 -18
- package/src/_collections/utils/location.util.ts +55 -55
- package/src/_collections/utils/log.util.ts +239 -239
- package/src/_collections/utils/math/box-bounds.util.ts +85 -85
- package/src/_collections/utils/math/index.ts +5 -5
- package/src/_collections/utils/math/math.util.ts +53 -53
- package/src/_collections/utils/math/random.util.ts +80 -80
- package/src/_collections/utils/math/trigonometry.util.ts +73 -73
- package/src/_collections/utils/math/vector2.util.ts +197 -197
- package/src/_collections/utils/pipe-transforms/country-pipe.util.ts +18 -18
- package/src/_collections/utils/pipe-transforms/custom-pipe.util.ts +9 -9
- package/src/_collections/utils/pipe-transforms/division-pipe.util.ts +20 -20
- package/src/_collections/utils/pipe-transforms/index.ts +15 -15
- package/src/_collections/utils/pipe-transforms/list-pipe.util.ts +10 -14
- package/src/_collections/utils/pipe-transforms/multi-pipe-pipe.util.ts +160 -160
- package/src/_collections/utils/pipe-transforms/obj-key-pipe.util.ts +9 -9
- package/src/_collections/utils/pipe-transforms/range-pipe.util.ts +94 -94
- package/src/_collections/utils/pipe-transforms/region-pipe.util.ts +18 -18
- package/src/_collections/utils/pipe-transforms/replace-pipe.util.ts +11 -11
- package/src/_collections/utils/pipe-transforms/slider-pipe.util.ts +20 -20
- package/src/_collections/utils/pipe-transforms/smart-replace-pipe.util.ts +71 -71
- package/src/_collections/utils/regex/index.ts +4 -4
- package/src/_collections/utils/regex/password-regex.util.ts +52 -52
- package/src/_collections/utils/regex/regex.util.ts +6 -6
- package/src/_collections/utils/regex/username-regex.util.ts +33 -33
- package/src/_collections/utils/regions.util.ts +100 -97
- package/src/_collections/utils/round-list.util.ts +44 -44
- package/src/_collections/utils/shared.static-service.ts +177 -177
- package/src/_collections/utils/time.util.spec.ts +50 -50
- package/src/_collections/utils/time.util.ts +219 -219
- package/src/_collections/utils/type-cloning-facility.util.ts +121 -121
- package/src/_collections/utils/utilities.util.ts +130 -130
- package/src/_enums/basic-property-type.enum.ts +9 -9
- package/src/_enums/data-model-type.enum.ts +13 -13
- package/src/_enums/day-of-week.enum.ts +28 -28
- package/src/_enums/error-level.enum.ts +17 -17
- package/src/_enums/index.ts +16 -16
- package/src/_enums/location/index.ts +3 -3
- package/src/_enums/location/region.enum.ts +9 -9
- package/src/_enums/location/sub-region.enum.ts +26 -26
- package/src/_enums/location/subdivision-region-type.enum.ts +44 -44
- package/src/_enums/log-style.enum.ts +30 -30
- package/src/_enums/month.enum.ts +16 -16
- package/src/_enums/pipe.enum.ts +45 -45
- package/src/_enums/range-pipe-setting.enum.ts +11 -11
- package/src/_enums/time/day-of-week.enum.ts +28 -28
- package/src/_enums/time/index.ts +3 -3
- package/src/_enums/time/month.enum.ts +16 -16
- package/src/_enums/time/relative-date.enum.ts +13 -13
- package/src/_models/control-models/daily-usage-data.control-model.ts +21 -21
- package/src/_models/control-models/data-model-params.control-model.ts +39 -39
- package/src/_models/control-models/data-property-params.control-model.ts +106 -106
- package/src/_models/control-models/error.control-model.spec.ts +753 -716
- package/src/_models/control-models/error.control-model.ts +722 -722
- package/src/_models/control-models/index.ts +10 -10
- package/src/_models/control-models/poll.control-model.ts +113 -113
- package/src/_models/control-models/range-value.control-model.ts +142 -142
- package/src/_models/control-models/usage-action.control-model.ts +15 -15
- package/src/_models/control-models/usage-data.control-model.ts +20 -20
- package/src/_models/data-models/custom-data.data-model.ts +28 -28
- package/src/_models/data-models/index.ts +5 -5
- package/src/_models/data-models/metadata.data-model.ts +83 -83
- package/src/_models/data-models/usage-session.data-model.ts +53 -53
- package/src/_models/index.ts +12 -12
- package/src/_models/interfaces/error-defaults.interface.ts +11 -11
- package/src/_models/interfaces/index.ts +11 -8
- package/src/_models/interfaces/location/country-division.interface.ts +7 -7
- package/src/_models/interfaces/location/country-iso.interface.ts +21 -21
- package/src/_models/interfaces/location/country-phone-code.interface.ts +7 -7
- package/src/_models/interfaces/location/division-collection.interface.ts +10 -10
- package/src/_models/interfaces/location/division-region-data.interface.ts +8 -8
- package/src/_models/interfaces/location/geo-ip-location.interface.ts +26 -26
- package/src/_models/interfaces/location/index.ts +10 -10
- package/src/_models/interfaces/location/location-coordinates.interface.ts +5 -5
- package/src/_models/interfaces/multi-pipe-settings.type.ts +7 -7
- package/src/_models/interfaces/paged.interface.ts +11 -11
- package/src/_models/interfaces/pipe-transforms.interface.ts +29 -29
- package/src/_models/interfaces/random-weight.interface.ts +7 -7
- package/src/_models/interfaces/route-settings.interface.ts +11 -11
- package/src/_modules/collections.index.ts +2 -2
- package/src/_modules/constants.index.ts +2 -2
- package/src/_modules/custom-data-module.index.ts +6 -6
- package/src/_modules/data-modules.index.ts +9 -9
- package/src/_modules/enums.index.ts +2 -2
- package/src/_modules/error-module.index.ts +8 -8
- package/src/_modules/location.index.ts +15 -15
- package/src/_modules/models.index.ts +2 -2
- package/src/_modules/shared-service.index.ts +9 -9
- package/src/_modules/test-module.index.ts +5 -5
- package/src/_modules/usage-module.index.ts +10 -10
- package/tsconfig.json +29 -29
- package/tslint.json +153 -153
- package/build/_enums/region.enum.d.ts +0 -8
- package/build/_enums/region.enum.d.ts.map +0 -1
- package/build/_enums/region.enum.js +0 -12
- package/build/_enums/region.enum.js.map +0 -1
- package/build/_enums/relative-date.enum.d.ts +0 -9
- package/build/_enums/relative-date.enum.d.ts.map +0 -1
- package/build/_enums/relative-date.enum.js +0 -13
- package/build/_enums/relative-date.enum.js.map +0 -1
- package/build/_enums/sub-region.enum.d.ts +0 -20
- package/build/_enums/sub-region.enum.d.ts.map +0 -1
- package/build/_enums/sub-region.enum.js +0 -24
- package/build/_enums/sub-region.enum.js.map +0 -1
- package/build/_enums/subdivision-region-type.enum.d.ts +0 -41
- package/build/_enums/subdivision-region-type.enum.d.ts.map +0 -1
- package/build/_enums/subdivision-region-type.enum.js +0 -46
- package/build/_enums/subdivision-region-type.enum.js.map +0 -1
- package/src/_enums/region.enum.ts +0 -9
- package/src/_enums/relative-date.enum.ts +0 -13
- package/src/_enums/sub-region.enum.ts +0 -26
- package/src/_enums/subdivision-region-type.enum.ts +0 -44
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
|
|
2
|
-
// CONTROL MODELS
|
|
3
|
-
export * from './daily-usage-data.control-model';
|
|
4
|
-
export * from './data-model-params.control-model';
|
|
5
|
-
export * from './data-property-params.control-model';
|
|
6
|
-
export * from './error.control-model';
|
|
7
|
-
export * from './poll.control-model';
|
|
8
|
-
export * from './range-value.control-model';
|
|
9
|
-
export * from './usage-action.control-model';
|
|
10
|
-
export * from './usage-data.control-model';
|
|
1
|
+
|
|
2
|
+
// CONTROL MODELS
|
|
3
|
+
export * from './daily-usage-data.control-model';
|
|
4
|
+
export * from './data-model-params.control-model';
|
|
5
|
+
export * from './data-property-params.control-model';
|
|
6
|
+
export * from './error.control-model';
|
|
7
|
+
export * from './poll.control-model';
|
|
8
|
+
export * from './range-value.control-model';
|
|
9
|
+
export * from './usage-action.control-model';
|
|
10
|
+
export * from './usage-data.control-model';
|
|
@@ -1,113 +1,113 @@
|
|
|
1
|
-
import { Subscription, timer } from 'rxjs';
|
|
2
|
-
import { DynamoFM_Error } from './error.control-model';
|
|
3
|
-
|
|
4
|
-
export type DFM_Poll<T> = DynamoFM_Poll<T>;
|
|
5
|
-
/**
|
|
6
|
-
* DynamoFSM_Poll is a predefined class is
|
|
7
|
-
* for polling a specific endpoint
|
|
8
|
-
* waiting a specific result
|
|
9
|
-
*/
|
|
10
|
-
export class DynamoFM_Poll<T> {
|
|
11
|
-
poll: Subscription;
|
|
12
|
-
running: boolean;
|
|
13
|
-
private pollDo: (...args) => Promise<T>;
|
|
14
|
-
private pollWhile: (res: T) => boolean;
|
|
15
|
-
private pollEnd: (res: T) => void;
|
|
16
|
-
private args?: any[];
|
|
17
|
-
private pollDelay?: number;
|
|
18
|
-
private pollPeriod?: number;
|
|
19
|
-
private stopOnFail?: boolean;
|
|
20
|
-
|
|
21
|
-
constructor(
|
|
22
|
-
set: {
|
|
23
|
-
pollDo: (...args) => Promise<T>,
|
|
24
|
-
pollWhile: (res: T) => boolean,
|
|
25
|
-
pollEnd: (res: T) => void,
|
|
26
|
-
|
|
27
|
-
args?: any[],
|
|
28
|
-
pollDelay?: number,
|
|
29
|
-
pollPeriod?: number,
|
|
30
|
-
stopOnFail?: boolean,
|
|
31
|
-
}
|
|
32
|
-
) {
|
|
33
|
-
try {
|
|
34
|
-
this.pollDo = set.pollDo;
|
|
35
|
-
this.pollWhile = set.pollWhile;
|
|
36
|
-
this.pollEnd = set.pollEnd;
|
|
37
|
-
|
|
38
|
-
this.args = set.args;
|
|
39
|
-
this.pollDelay = set.pollDelay ? set.pollDelay : 0;
|
|
40
|
-
|
|
41
|
-
if (set.pollPeriod === 0) {
|
|
42
|
-
console.error(
|
|
43
|
-
'DYNAMO ERROR: creating polls with 0ms period is not supported! ' +
|
|
44
|
-
'(it will reset to 1000ms (1s))', new Error());
|
|
45
|
-
}
|
|
46
|
-
this.pollPeriod = set.pollPeriod ? set.pollPeriod : 1000;
|
|
47
|
-
|
|
48
|
-
if (this.pollPeriod < 300) {
|
|
49
|
-
console.warn(
|
|
50
|
-
'DYNAMO WARNING: creating polls with less than 300ms period is not recommended!'
|
|
51
|
-
);
|
|
52
|
-
}
|
|
53
|
-
this.stopOnFail = set.stopOnFail;
|
|
54
|
-
this.startPoll(this.args);
|
|
55
|
-
} catch (error) {
|
|
56
|
-
throw new DynamoFM_Error({
|
|
57
|
-
message: 'DynamoFM_Poll construcion failed.'
|
|
58
|
-
});
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
private startPoll(...args: any[]): void {
|
|
63
|
-
try {
|
|
64
|
-
this.poll = timer(this.pollDelay, this.pollPeriod).subscribe(async (): Promise<void> => {
|
|
65
|
-
await this.pollDo(...args).then((res: T): void => {
|
|
66
|
-
if (!this.pollWhile(res)) {
|
|
67
|
-
this.end(res);
|
|
68
|
-
}
|
|
69
|
-
}).catch((error): void => {
|
|
70
|
-
if (this.stopOnFail) {
|
|
71
|
-
this.stop();
|
|
72
|
-
}
|
|
73
|
-
|
|
74
|
-
throw new DynamoFM_Error({
|
|
75
|
-
message: 'DYNAMO ERROR: \nDynamoPoll: pollDo was UNSUCCESSFUL',
|
|
76
|
-
});
|
|
77
|
-
});
|
|
78
|
-
});
|
|
79
|
-
this.running = true;
|
|
80
|
-
} catch (error) {
|
|
81
|
-
throw new DynamoFM_Error({
|
|
82
|
-
message: 'DYNAMO ERROR: \nDynamoPoll: startPoll was UNSUCCESSFUL',
|
|
83
|
-
error: error,
|
|
84
|
-
});
|
|
85
|
-
}
|
|
86
|
-
}
|
|
87
|
-
|
|
88
|
-
restartPoll(args?: any[]): void {
|
|
89
|
-
try {
|
|
90
|
-
if (args) {
|
|
91
|
-
this.startPoll(args);
|
|
92
|
-
} else {
|
|
93
|
-
this.startPoll(this.args);
|
|
94
|
-
}
|
|
95
|
-
} catch (error) {
|
|
96
|
-
throw new DynamoFM_Error({
|
|
97
|
-
message: 'DYNAMO ERROR: \nDynamoPoll: restartPoll was UNSUCCESSFUL',
|
|
98
|
-
error: error,
|
|
99
|
-
});
|
|
100
|
-
}
|
|
101
|
-
}
|
|
102
|
-
|
|
103
|
-
stop(): void {
|
|
104
|
-
this.poll.unsubscribe();
|
|
105
|
-
this.running = false;
|
|
106
|
-
}
|
|
107
|
-
|
|
108
|
-
end(result: T): void {
|
|
109
|
-
this.poll.unsubscribe();
|
|
110
|
-
this.pollEnd(result);
|
|
111
|
-
this.running = false;
|
|
112
|
-
}
|
|
113
|
-
}
|
|
1
|
+
import { Subscription, timer } from 'rxjs';
|
|
2
|
+
import { DynamoFM_Error } from './error.control-model';
|
|
3
|
+
|
|
4
|
+
export type DFM_Poll<T> = DynamoFM_Poll<T>;
|
|
5
|
+
/**
|
|
6
|
+
* DynamoFSM_Poll is a predefined class is
|
|
7
|
+
* for polling a specific endpoint
|
|
8
|
+
* waiting a specific result
|
|
9
|
+
*/
|
|
10
|
+
export class DynamoFM_Poll<T> {
|
|
11
|
+
poll: Subscription;
|
|
12
|
+
running: boolean;
|
|
13
|
+
private pollDo: (...args) => Promise<T>;
|
|
14
|
+
private pollWhile: (res: T) => boolean;
|
|
15
|
+
private pollEnd: (res: T) => void;
|
|
16
|
+
private args?: any[];
|
|
17
|
+
private pollDelay?: number;
|
|
18
|
+
private pollPeriod?: number;
|
|
19
|
+
private stopOnFail?: boolean;
|
|
20
|
+
|
|
21
|
+
constructor(
|
|
22
|
+
set: {
|
|
23
|
+
pollDo: (...args) => Promise<T>,
|
|
24
|
+
pollWhile: (res: T) => boolean,
|
|
25
|
+
pollEnd: (res: T) => void,
|
|
26
|
+
|
|
27
|
+
args?: any[],
|
|
28
|
+
pollDelay?: number,
|
|
29
|
+
pollPeriod?: number,
|
|
30
|
+
stopOnFail?: boolean,
|
|
31
|
+
}
|
|
32
|
+
) {
|
|
33
|
+
try {
|
|
34
|
+
this.pollDo = set.pollDo;
|
|
35
|
+
this.pollWhile = set.pollWhile;
|
|
36
|
+
this.pollEnd = set.pollEnd;
|
|
37
|
+
|
|
38
|
+
this.args = set.args;
|
|
39
|
+
this.pollDelay = set.pollDelay ? set.pollDelay : 0;
|
|
40
|
+
|
|
41
|
+
if (set.pollPeriod === 0) {
|
|
42
|
+
console.error(
|
|
43
|
+
'DYNAMO ERROR: creating polls with 0ms period is not supported! ' +
|
|
44
|
+
'(it will reset to 1000ms (1s))', new Error());
|
|
45
|
+
}
|
|
46
|
+
this.pollPeriod = set.pollPeriod ? set.pollPeriod : 1000;
|
|
47
|
+
|
|
48
|
+
if (this.pollPeriod < 300) {
|
|
49
|
+
console.warn(
|
|
50
|
+
'DYNAMO WARNING: creating polls with less than 300ms period is not recommended!'
|
|
51
|
+
);
|
|
52
|
+
}
|
|
53
|
+
this.stopOnFail = set.stopOnFail;
|
|
54
|
+
this.startPoll(this.args);
|
|
55
|
+
} catch (error) {
|
|
56
|
+
throw new DynamoFM_Error({
|
|
57
|
+
message: 'DynamoFM_Poll construcion failed.'
|
|
58
|
+
});
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
private startPoll(...args: any[]): void {
|
|
63
|
+
try {
|
|
64
|
+
this.poll = timer(this.pollDelay, this.pollPeriod).subscribe(async (): Promise<void> => {
|
|
65
|
+
await this.pollDo(...args).then((res: T): void => {
|
|
66
|
+
if (!this.pollWhile(res)) {
|
|
67
|
+
this.end(res);
|
|
68
|
+
}
|
|
69
|
+
}).catch((error): void => {
|
|
70
|
+
if (this.stopOnFail) {
|
|
71
|
+
this.stop();
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
throw new DynamoFM_Error({
|
|
75
|
+
message: 'DYNAMO ERROR: \nDynamoPoll: pollDo was UNSUCCESSFUL',
|
|
76
|
+
});
|
|
77
|
+
});
|
|
78
|
+
});
|
|
79
|
+
this.running = true;
|
|
80
|
+
} catch (error) {
|
|
81
|
+
throw new DynamoFM_Error({
|
|
82
|
+
message: 'DYNAMO ERROR: \nDynamoPoll: startPoll was UNSUCCESSFUL',
|
|
83
|
+
error: error,
|
|
84
|
+
});
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
restartPoll(args?: any[]): void {
|
|
89
|
+
try {
|
|
90
|
+
if (args) {
|
|
91
|
+
this.startPoll(args);
|
|
92
|
+
} else {
|
|
93
|
+
this.startPoll(this.args);
|
|
94
|
+
}
|
|
95
|
+
} catch (error) {
|
|
96
|
+
throw new DynamoFM_Error({
|
|
97
|
+
message: 'DYNAMO ERROR: \nDynamoPoll: restartPoll was UNSUCCESSFUL',
|
|
98
|
+
error: error,
|
|
99
|
+
});
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
stop(): void {
|
|
104
|
+
this.poll.unsubscribe();
|
|
105
|
+
this.running = false;
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
end(result: T): void {
|
|
109
|
+
this.poll.unsubscribe();
|
|
110
|
+
this.pollEnd(result);
|
|
111
|
+
this.running = false;
|
|
112
|
+
}
|
|
113
|
+
}
|
|
@@ -1,142 +1,142 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
export type DFM_RangeValue<T> = DynamoFM_RangeValue<T>;
|
|
4
|
-
export type DFM_RangeV<T> = DynamoFM_RangeValue<T>;
|
|
5
|
-
export class DynamoFM_RangeValue<T = number> {
|
|
6
|
-
readonly isRange: boolean = true;
|
|
7
|
-
|
|
8
|
-
from: T;
|
|
9
|
-
to: T;
|
|
10
|
-
|
|
11
|
-
constructor(
|
|
12
|
-
from: T | DynamoFM_RangeValue<T>,
|
|
13
|
-
to?: T,
|
|
14
|
-
) {
|
|
15
|
-
if ((from as DynamoFM_RangeValue<T>)?.isRange) {
|
|
16
|
-
this.from = (from as DynamoFM_RangeValue<T>).from;
|
|
17
|
-
this.to = (from as DynamoFM_RangeValue<T>).to;
|
|
18
|
-
|
|
19
|
-
return;
|
|
20
|
-
} else {
|
|
21
|
-
this.from = from as T;
|
|
22
|
-
this.to = to ?? from as T;
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
constructed?(): boolean {
|
|
27
|
-
return true;
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
newValues?(value: DynamoFM_RangeValue<T>): void {
|
|
31
|
-
this.from = value.from;
|
|
32
|
-
this.to = value.to;
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
addRange?(range: DynamoFM_RangeValue<number>): void {
|
|
36
|
-
(this as DynamoFM_RangeValue<number>).from += range.from;
|
|
37
|
-
(this as DynamoFM_RangeValue<number>).to += range.to;
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
subtractRange?(range: DynamoFM_RangeValue<number>): void {
|
|
41
|
-
(this as DynamoFM_RangeValue<number>).from -= range.from;
|
|
42
|
-
(this as DynamoFM_RangeValue<number>).to -= range.to;
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
multiplyRange?(range: DynamoFM_RangeValue<number>): void {
|
|
46
|
-
(this as DynamoFM_RangeValue<number>).from *= range.from;
|
|
47
|
-
(this as DynamoFM_RangeValue<number>).to *= range.to;
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
divideRange?(range: DynamoFM_RangeValue<number>): void {
|
|
51
|
-
(this as DynamoFM_RangeValue<number>).from /= range.from;
|
|
52
|
-
(this as DynamoFM_RangeValue<number>).to /= range.to;
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
add?(value: number): void {
|
|
56
|
-
(this as DynamoFM_RangeValue<number>).from += value;
|
|
57
|
-
(this as DynamoFM_RangeValue<number>).to += value;
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
subtract?(value: number): void {
|
|
61
|
-
(this as DynamoFM_RangeValue<number>).from -= value;
|
|
62
|
-
(this as DynamoFM_RangeValue<number>).to -= value;
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
multiply?(value: number): void {
|
|
66
|
-
(this as DynamoFM_RangeValue<number>).from *= value;
|
|
67
|
-
(this as DynamoFM_RangeValue<number>).to *= value;
|
|
68
|
-
}
|
|
69
|
-
|
|
70
|
-
divide?(value: number): void {
|
|
71
|
-
(this as DynamoFM_RangeValue<number>).from /= value;
|
|
72
|
-
(this as DynamoFM_RangeValue<number>).to /= value;
|
|
73
|
-
}
|
|
74
|
-
|
|
75
|
-
clone?(): DynamoFM_RangeValue<T> {
|
|
76
|
-
return new DynamoFM_RangeValue<T>(this.from, this.to);
|
|
77
|
-
}
|
|
78
|
-
|
|
79
|
-
applyTransform?<K = T>(transform: (value: T) => K): DynamoFM_RangeValue<K> {
|
|
80
|
-
return new DynamoFM_RangeValue<K>(transform(this.from), transform(this.to));
|
|
81
|
-
}
|
|
82
|
-
|
|
83
|
-
toString? = this.stringify;
|
|
84
|
-
stringify?(spaces: boolean = true, auto: boolean = true): string {
|
|
85
|
-
if (auto && this.from === this.to) {
|
|
86
|
-
return `${this.from}`;
|
|
87
|
-
} else if (spaces) {
|
|
88
|
-
return `${this.from} - ${this.to}`;
|
|
89
|
-
} else {
|
|
90
|
-
return `${this.from}-${this.to}`;
|
|
91
|
-
}
|
|
92
|
-
}
|
|
93
|
-
|
|
94
|
-
static reType<T>(value: DynamoFM_RangeValue<T>): DynamoFM_RangeValue<T> {
|
|
95
|
-
return new DynamoFM_RangeValue<T>(value.from, value.to);
|
|
96
|
-
}
|
|
97
|
-
|
|
98
|
-
static addRange(
|
|
99
|
-
a: DynamoFM_RangeValue<number>,
|
|
100
|
-
b: DynamoFM_RangeValue<number>
|
|
101
|
-
): DynamoFM_RangeValue<number> {
|
|
102
|
-
return new DynamoFM_RangeValue<number>(a.from + b.from, a.to + b.to);
|
|
103
|
-
}
|
|
104
|
-
|
|
105
|
-
static subtractRange(
|
|
106
|
-
from: DynamoFM_RangeValue<number>,
|
|
107
|
-
value: DynamoFM_RangeValue<number>
|
|
108
|
-
): DynamoFM_RangeValue<number> {
|
|
109
|
-
return new DynamoFM_RangeValue<number>(from.from - value.from, from.to - value.to);
|
|
110
|
-
}
|
|
111
|
-
|
|
112
|
-
static multiplyRange(
|
|
113
|
-
from: DynamoFM_RangeValue<number>,
|
|
114
|
-
value: DynamoFM_RangeValue<number>
|
|
115
|
-
): DynamoFM_RangeValue<number> {
|
|
116
|
-
return new DynamoFM_RangeValue<number>(from.from * value.from, from.to * value.to);
|
|
117
|
-
}
|
|
118
|
-
|
|
119
|
-
static divideRange(
|
|
120
|
-
from: DynamoFM_RangeValue<number>,
|
|
121
|
-
value: DynamoFM_RangeValue<number>
|
|
122
|
-
): DynamoFM_RangeValue<number> {
|
|
123
|
-
return new DynamoFM_RangeValue<number>(from.from / value.from, from.to / value.to);
|
|
124
|
-
}
|
|
125
|
-
|
|
126
|
-
static add(a: DynamoFM_RangeValue<number>, b: number): DynamoFM_RangeValue<number> {
|
|
127
|
-
return new DynamoFM_RangeValue<number>(a.from + b, a.to + b);
|
|
128
|
-
}
|
|
129
|
-
|
|
130
|
-
static subtract(a: DynamoFM_RangeValue<number>, b: number): DynamoFM_RangeValue<number> {
|
|
131
|
-
return new DynamoFM_RangeValue<number>(a.from - b, a.to - b);
|
|
132
|
-
}
|
|
133
|
-
|
|
134
|
-
static multiply(a: DynamoFM_RangeValue<number>, b: number): DynamoFM_RangeValue<number> {
|
|
135
|
-
return new DynamoFM_RangeValue<number>(a.from * b, a.to * b);
|
|
136
|
-
}
|
|
137
|
-
|
|
138
|
-
static divide(a: DynamoFM_RangeValue<number>, b: number): DynamoFM_RangeValue<number> {
|
|
139
|
-
return new DynamoFM_RangeValue<number>(a.from / b, a.to / b);
|
|
140
|
-
}
|
|
141
|
-
}
|
|
142
|
-
|
|
1
|
+
|
|
2
|
+
|
|
3
|
+
export type DFM_RangeValue<T> = DynamoFM_RangeValue<T>;
|
|
4
|
+
export type DFM_RangeV<T> = DynamoFM_RangeValue<T>;
|
|
5
|
+
export class DynamoFM_RangeValue<T = number> {
|
|
6
|
+
readonly isRange: boolean = true;
|
|
7
|
+
|
|
8
|
+
from: T;
|
|
9
|
+
to: T;
|
|
10
|
+
|
|
11
|
+
constructor(
|
|
12
|
+
from: T | DynamoFM_RangeValue<T>,
|
|
13
|
+
to?: T,
|
|
14
|
+
) {
|
|
15
|
+
if ((from as DynamoFM_RangeValue<T>)?.isRange) {
|
|
16
|
+
this.from = (from as DynamoFM_RangeValue<T>).from;
|
|
17
|
+
this.to = (from as DynamoFM_RangeValue<T>).to;
|
|
18
|
+
|
|
19
|
+
return;
|
|
20
|
+
} else {
|
|
21
|
+
this.from = from as T;
|
|
22
|
+
this.to = to ?? from as T;
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
constructed?(): boolean {
|
|
27
|
+
return true;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
newValues?(value: DynamoFM_RangeValue<T>): void {
|
|
31
|
+
this.from = value.from;
|
|
32
|
+
this.to = value.to;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
addRange?(range: DynamoFM_RangeValue<number>): void {
|
|
36
|
+
(this as DynamoFM_RangeValue<number>).from += range.from;
|
|
37
|
+
(this as DynamoFM_RangeValue<number>).to += range.to;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
subtractRange?(range: DynamoFM_RangeValue<number>): void {
|
|
41
|
+
(this as DynamoFM_RangeValue<number>).from -= range.from;
|
|
42
|
+
(this as DynamoFM_RangeValue<number>).to -= range.to;
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
multiplyRange?(range: DynamoFM_RangeValue<number>): void {
|
|
46
|
+
(this as DynamoFM_RangeValue<number>).from *= range.from;
|
|
47
|
+
(this as DynamoFM_RangeValue<number>).to *= range.to;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
divideRange?(range: DynamoFM_RangeValue<number>): void {
|
|
51
|
+
(this as DynamoFM_RangeValue<number>).from /= range.from;
|
|
52
|
+
(this as DynamoFM_RangeValue<number>).to /= range.to;
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
add?(value: number): void {
|
|
56
|
+
(this as DynamoFM_RangeValue<number>).from += value;
|
|
57
|
+
(this as DynamoFM_RangeValue<number>).to += value;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
subtract?(value: number): void {
|
|
61
|
+
(this as DynamoFM_RangeValue<number>).from -= value;
|
|
62
|
+
(this as DynamoFM_RangeValue<number>).to -= value;
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
multiply?(value: number): void {
|
|
66
|
+
(this as DynamoFM_RangeValue<number>).from *= value;
|
|
67
|
+
(this as DynamoFM_RangeValue<number>).to *= value;
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
divide?(value: number): void {
|
|
71
|
+
(this as DynamoFM_RangeValue<number>).from /= value;
|
|
72
|
+
(this as DynamoFM_RangeValue<number>).to /= value;
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
clone?(): DynamoFM_RangeValue<T> {
|
|
76
|
+
return new DynamoFM_RangeValue<T>(this.from, this.to);
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
applyTransform?<K = T>(transform: (value: T) => K): DynamoFM_RangeValue<K> {
|
|
80
|
+
return new DynamoFM_RangeValue<K>(transform(this.from), transform(this.to));
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
toString? = this.stringify;
|
|
84
|
+
stringify?(spaces: boolean = true, auto: boolean = true): string {
|
|
85
|
+
if (auto && this.from === this.to) {
|
|
86
|
+
return `${this.from}`;
|
|
87
|
+
} else if (spaces) {
|
|
88
|
+
return `${this.from} - ${this.to}`;
|
|
89
|
+
} else {
|
|
90
|
+
return `${this.from}-${this.to}`;
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
static reType<T>(value: DynamoFM_RangeValue<T>): DynamoFM_RangeValue<T> {
|
|
95
|
+
return new DynamoFM_RangeValue<T>(value.from, value.to);
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
static addRange(
|
|
99
|
+
a: DynamoFM_RangeValue<number>,
|
|
100
|
+
b: DynamoFM_RangeValue<number>
|
|
101
|
+
): DynamoFM_RangeValue<number> {
|
|
102
|
+
return new DynamoFM_RangeValue<number>(a.from + b.from, a.to + b.to);
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
static subtractRange(
|
|
106
|
+
from: DynamoFM_RangeValue<number>,
|
|
107
|
+
value: DynamoFM_RangeValue<number>
|
|
108
|
+
): DynamoFM_RangeValue<number> {
|
|
109
|
+
return new DynamoFM_RangeValue<number>(from.from - value.from, from.to - value.to);
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
static multiplyRange(
|
|
113
|
+
from: DynamoFM_RangeValue<number>,
|
|
114
|
+
value: DynamoFM_RangeValue<number>
|
|
115
|
+
): DynamoFM_RangeValue<number> {
|
|
116
|
+
return new DynamoFM_RangeValue<number>(from.from * value.from, from.to * value.to);
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
static divideRange(
|
|
120
|
+
from: DynamoFM_RangeValue<number>,
|
|
121
|
+
value: DynamoFM_RangeValue<number>
|
|
122
|
+
): DynamoFM_RangeValue<number> {
|
|
123
|
+
return new DynamoFM_RangeValue<number>(from.from / value.from, from.to / value.to);
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
static add(a: DynamoFM_RangeValue<number>, b: number): DynamoFM_RangeValue<number> {
|
|
127
|
+
return new DynamoFM_RangeValue<number>(a.from + b, a.to + b);
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
static subtract(a: DynamoFM_RangeValue<number>, b: number): DynamoFM_RangeValue<number> {
|
|
131
|
+
return new DynamoFM_RangeValue<number>(a.from - b, a.to - b);
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
static multiply(a: DynamoFM_RangeValue<number>, b: number): DynamoFM_RangeValue<number> {
|
|
135
|
+
return new DynamoFM_RangeValue<number>(a.from * b, a.to * b);
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
static divide(a: DynamoFM_RangeValue<number>, b: number): DynamoFM_RangeValue<number> {
|
|
139
|
+
return new DynamoFM_RangeValue<number>(a.from / b, a.to / b);
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
|
|
@@ -1,15 +1,15 @@
|
|
|
1
|
-
|
|
2
|
-
export type DFM_UsageAction = DynamoFM_UsageAction;
|
|
3
|
-
export class DynamoFM_UsageAction {
|
|
4
|
-
action?: string;
|
|
5
|
-
time?: Date;
|
|
6
|
-
|
|
7
|
-
constructor(
|
|
8
|
-
set?: DynamoFM_UsageAction
|
|
9
|
-
) {
|
|
10
|
-
if (set) {
|
|
11
|
-
Object.assign(this, set);
|
|
12
|
-
}
|
|
13
|
-
}
|
|
14
|
-
}
|
|
15
|
-
|
|
1
|
+
|
|
2
|
+
export type DFM_UsageAction = DynamoFM_UsageAction;
|
|
3
|
+
export class DynamoFM_UsageAction {
|
|
4
|
+
action?: string;
|
|
5
|
+
time?: Date;
|
|
6
|
+
|
|
7
|
+
constructor(
|
|
8
|
+
set?: DynamoFM_UsageAction
|
|
9
|
+
) {
|
|
10
|
+
if (set) {
|
|
11
|
+
Object.assign(this, set);
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
|
|
@@ -1,20 +1,20 @@
|
|
|
1
|
-
|
|
2
|
-
import { DynamoFM_UsageAction } from './usage-action.control-model';
|
|
3
|
-
|
|
4
|
-
export type DFM_UsageData = DynamoFM_UsageData;
|
|
5
|
-
export type DFM_UsageD = DynamoFM_UsageData;
|
|
6
|
-
export class DynamoFM_UsageData {
|
|
7
|
-
page?: string;
|
|
8
|
-
opened?: Date;
|
|
9
|
-
timeSpentOnPage?: number;
|
|
10
|
-
actions?: DynamoFM_UsageAction[] = [];
|
|
11
|
-
|
|
12
|
-
constructor(
|
|
13
|
-
set?: DynamoFM_UsageData
|
|
14
|
-
) {
|
|
15
|
-
if (set) {
|
|
16
|
-
Object.assign(this, set);
|
|
17
|
-
}
|
|
18
|
-
}
|
|
19
|
-
}
|
|
20
|
-
|
|
1
|
+
|
|
2
|
+
import { DynamoFM_UsageAction } from './usage-action.control-model';
|
|
3
|
+
|
|
4
|
+
export type DFM_UsageData = DynamoFM_UsageData;
|
|
5
|
+
export type DFM_UsageD = DynamoFM_UsageData;
|
|
6
|
+
export class DynamoFM_UsageData {
|
|
7
|
+
page?: string;
|
|
8
|
+
opened?: Date;
|
|
9
|
+
timeSpentOnPage?: number;
|
|
10
|
+
actions?: DynamoFM_UsageAction[] = [];
|
|
11
|
+
|
|
12
|
+
constructor(
|
|
13
|
+
set?: DynamoFM_UsageData
|
|
14
|
+
) {
|
|
15
|
+
if (set) {
|
|
16
|
+
Object.assign(this, set);
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
|
|
@@ -1,28 +1,28 @@
|
|
|
1
|
-
|
|
2
|
-
import { DynamoFM_DataModel_Params } from '../control-models/data-model-params.control-model';
|
|
3
|
-
import { DynamoFM_Metadata } from './metadata.data-model';
|
|
4
|
-
|
|
5
|
-
export type DFM_CustomData = DynamoFM_CustomData;
|
|
6
|
-
export type DFM_CustomD = DynamoFM_CustomData;
|
|
7
|
-
export class DynamoFM_CustomData<T = any> extends DynamoFM_Metadata {
|
|
8
|
-
data?: T;
|
|
9
|
-
|
|
10
|
-
constructor(
|
|
11
|
-
set?: DynamoFM_CustomData<T>
|
|
12
|
-
) {
|
|
13
|
-
super(set);
|
|
14
|
-
|
|
15
|
-
if (set) {
|
|
16
|
-
Object.assign(this, set);
|
|
17
|
-
}
|
|
18
|
-
}
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
export const DynamoFM_customDataModel_params: DynamoFM_DataModel_Params =
|
|
22
|
-
new DynamoFM_DataModel_Params({
|
|
23
|
-
dataName: 'customData',
|
|
24
|
-
properties: [
|
|
25
|
-
{ key: 'data', type: 'string', required: true },
|
|
26
|
-
]
|
|
27
|
-
});
|
|
28
|
-
|
|
1
|
+
|
|
2
|
+
import { DynamoFM_DataModel_Params } from '../control-models/data-model-params.control-model';
|
|
3
|
+
import { DynamoFM_Metadata } from './metadata.data-model';
|
|
4
|
+
|
|
5
|
+
export type DFM_CustomData = DynamoFM_CustomData;
|
|
6
|
+
export type DFM_CustomD = DynamoFM_CustomData;
|
|
7
|
+
export class DynamoFM_CustomData<T = any> extends DynamoFM_Metadata {
|
|
8
|
+
data?: T;
|
|
9
|
+
|
|
10
|
+
constructor(
|
|
11
|
+
set?: DynamoFM_CustomData<T>
|
|
12
|
+
) {
|
|
13
|
+
super(set);
|
|
14
|
+
|
|
15
|
+
if (set) {
|
|
16
|
+
Object.assign(this, set);
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
export const DynamoFM_customDataModel_params: DynamoFM_DataModel_Params =
|
|
22
|
+
new DynamoFM_DataModel_Params({
|
|
23
|
+
dataName: 'customData',
|
|
24
|
+
properties: [
|
|
25
|
+
{ key: 'data', type: 'string', required: true },
|
|
26
|
+
]
|
|
27
|
+
});
|
|
28
|
+
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
|
|
2
|
-
// DATA MODELS
|
|
3
|
-
export * from './custom-data.data-model';
|
|
4
|
-
export * from './metadata.data-model';
|
|
5
|
-
export * from './usage-session.data-model';
|
|
1
|
+
|
|
2
|
+
// DATA MODELS
|
|
3
|
+
export * from './custom-data.data-model';
|
|
4
|
+
export * from './metadata.data-model';
|
|
5
|
+
export * from './usage-session.data-model';
|