@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.
Files changed (173) hide show
  1. package/.github/workflows/main.yml +196 -0
  2. package/HOWTO.md +15 -15
  3. package/README.md +17 -17
  4. package/build/_collections/constants/country-divisions.const.d.ts +1 -1
  5. package/build/_collections/constants/country-divisions.const.d.ts.map +1 -1
  6. package/build/_collections/constants/country-divisions.const.js +2 -2
  7. package/build/_collections/constants/country-divisions.const.js.map +1 -1
  8. package/build/_collections/constants/courtry-isos.const.d.ts +1 -1
  9. package/build/_collections/constants/courtry-isos.const.d.ts.map +1 -1
  10. package/build/_collections/constants/courtry-isos.const.js +2 -2
  11. package/build/_collections/constants/courtry-isos.const.js.map +1 -1
  12. package/build/_collections/constants/error-defaults.const.d.ts +1 -1
  13. package/build/_collections/constants/error-defaults.const.d.ts.map +1 -1
  14. package/build/_collections/constants/module-settings/usage-module-settings.const.js +1 -1
  15. package/build/_collections/constants/pipe-transforms.const.js +12 -12
  16. package/build/_collections/constants/pipe-transforms.const.js.map +1 -1
  17. package/build/_collections/utils/pipe-transforms/division-pipe.util.js +1 -1
  18. package/build/_collections/utils/pipe-transforms/division-pipe.util.js.map +1 -1
  19. package/build/_collections/utils/pipe-transforms/list-pipe.util.d.ts.map +1 -1
  20. package/build/_collections/utils/pipe-transforms/list-pipe.util.js.map +1 -1
  21. package/build/_collections/utils/pipe-transforms/range-pipe.util.d.ts +2 -2
  22. package/build/_collections/utils/pipe-transforms/range-pipe.util.d.ts.map +1 -1
  23. package/build/_collections/utils/pipe-transforms/range-pipe.util.js +11 -11
  24. package/build/_collections/utils/pipe-transforms/range-pipe.util.js.map +1 -1
  25. package/build/_collections/utils/regions.util.d.ts.map +1 -1
  26. package/build/_collections/utils/regions.util.js +3 -0
  27. package/build/_collections/utils/regions.util.js.map +1 -1
  28. package/build/_enums/range-pipe-setting.enum.d.ts +1 -1
  29. package/build/_enums/range-pipe-setting.enum.d.ts.map +1 -1
  30. package/build/_enums/range-pipe-setting.enum.js +12 -12
  31. package/build/_enums/range-pipe-setting.enum.js.map +1 -1
  32. package/build/_models/control-models/error.control-model.js +1 -1
  33. package/build/_models/control-models/error.control-model.js.map +1 -1
  34. package/build/_models/control-models/error.control-model.spec.js +25 -6
  35. package/build/_models/control-models/error.control-model.spec.js.map +1 -1
  36. package/build/_models/interfaces/index.d.ts +3 -0
  37. package/build/_models/interfaces/index.d.ts.map +1 -1
  38. package/build/_models/interfaces/index.js +3 -0
  39. package/build/_models/interfaces/index.js.map +1 -1
  40. package/build/_models/interfaces/pipe-transforms.interface.d.ts +2 -2
  41. package/build/_models/interfaces/pipe-transforms.interface.d.ts.map +1 -1
  42. package/futdevpro-fsm-dynamo-01.09.12.tgz +0 -0
  43. package/nodemon.json +11 -11
  44. package/package.json +151 -151
  45. package/src/_collections/assets/location/country-codes-ISO-3166.json +3239 -3239
  46. package/src/_collections/assets/location/country-divisions-ISO-3166-all-list.json +19035 -19035
  47. package/src/_collections/assets/location/country-divisions-ISO-3166.json +4993 -4993
  48. package/src/_collections/assets/location/country-phone-codes.json +1203 -1203
  49. package/src/_collections/constants/country-divisions.const.ts +9 -9
  50. package/src/_collections/constants/courtry-isos.const.ts +8 -8
  51. package/src/_collections/constants/error-defaults.const.ts +11 -11
  52. package/src/_collections/constants/index.ts +15 -15
  53. package/src/_collections/constants/module-settings/custom-data-module-settings.const.ts +15 -15
  54. package/src/_collections/constants/module-settings/index.ts +8 -8
  55. package/src/_collections/constants/module-settings/test-module-settings.const.ts +19 -19
  56. package/src/_collections/constants/module-settings/usage-module-settings.const.ts +19 -19
  57. package/src/_collections/constants/pipe-transforms.const.ts +35 -35
  58. package/src/_collections/constants/times.const.ts +8 -8
  59. package/src/_collections/index.ts +6 -6
  60. package/src/_collections/utils/array.util.spec.ts +39 -39
  61. package/src/_collections/utils/array.util.ts +137 -137
  62. package/src/_collections/utils/index.ts +18 -18
  63. package/src/_collections/utils/location.util.ts +55 -55
  64. package/src/_collections/utils/log.util.ts +239 -239
  65. package/src/_collections/utils/math/box-bounds.util.ts +85 -85
  66. package/src/_collections/utils/math/index.ts +5 -5
  67. package/src/_collections/utils/math/math.util.ts +53 -53
  68. package/src/_collections/utils/math/random.util.ts +80 -80
  69. package/src/_collections/utils/math/trigonometry.util.ts +73 -73
  70. package/src/_collections/utils/math/vector2.util.ts +197 -197
  71. package/src/_collections/utils/pipe-transforms/country-pipe.util.ts +18 -18
  72. package/src/_collections/utils/pipe-transforms/custom-pipe.util.ts +9 -9
  73. package/src/_collections/utils/pipe-transforms/division-pipe.util.ts +20 -20
  74. package/src/_collections/utils/pipe-transforms/index.ts +15 -15
  75. package/src/_collections/utils/pipe-transforms/list-pipe.util.ts +10 -14
  76. package/src/_collections/utils/pipe-transforms/multi-pipe-pipe.util.ts +160 -160
  77. package/src/_collections/utils/pipe-transforms/obj-key-pipe.util.ts +9 -9
  78. package/src/_collections/utils/pipe-transforms/range-pipe.util.ts +94 -94
  79. package/src/_collections/utils/pipe-transforms/region-pipe.util.ts +18 -18
  80. package/src/_collections/utils/pipe-transforms/replace-pipe.util.ts +11 -11
  81. package/src/_collections/utils/pipe-transforms/slider-pipe.util.ts +20 -20
  82. package/src/_collections/utils/pipe-transforms/smart-replace-pipe.util.ts +71 -71
  83. package/src/_collections/utils/regex/index.ts +4 -4
  84. package/src/_collections/utils/regex/password-regex.util.ts +52 -52
  85. package/src/_collections/utils/regex/regex.util.ts +6 -6
  86. package/src/_collections/utils/regex/username-regex.util.ts +33 -33
  87. package/src/_collections/utils/regions.util.ts +100 -97
  88. package/src/_collections/utils/round-list.util.ts +44 -44
  89. package/src/_collections/utils/shared.static-service.ts +177 -177
  90. package/src/_collections/utils/time.util.spec.ts +50 -50
  91. package/src/_collections/utils/time.util.ts +219 -219
  92. package/src/_collections/utils/type-cloning-facility.util.ts +121 -121
  93. package/src/_collections/utils/utilities.util.ts +130 -130
  94. package/src/_enums/basic-property-type.enum.ts +9 -9
  95. package/src/_enums/data-model-type.enum.ts +13 -13
  96. package/src/_enums/day-of-week.enum.ts +28 -28
  97. package/src/_enums/error-level.enum.ts +17 -17
  98. package/src/_enums/index.ts +16 -16
  99. package/src/_enums/location/index.ts +3 -3
  100. package/src/_enums/location/region.enum.ts +9 -9
  101. package/src/_enums/location/sub-region.enum.ts +26 -26
  102. package/src/_enums/location/subdivision-region-type.enum.ts +44 -44
  103. package/src/_enums/log-style.enum.ts +30 -30
  104. package/src/_enums/month.enum.ts +16 -16
  105. package/src/_enums/pipe.enum.ts +45 -45
  106. package/src/_enums/range-pipe-setting.enum.ts +11 -11
  107. package/src/_enums/time/day-of-week.enum.ts +28 -28
  108. package/src/_enums/time/index.ts +3 -3
  109. package/src/_enums/time/month.enum.ts +16 -16
  110. package/src/_enums/time/relative-date.enum.ts +13 -13
  111. package/src/_models/control-models/daily-usage-data.control-model.ts +21 -21
  112. package/src/_models/control-models/data-model-params.control-model.ts +39 -39
  113. package/src/_models/control-models/data-property-params.control-model.ts +106 -106
  114. package/src/_models/control-models/error.control-model.spec.ts +753 -716
  115. package/src/_models/control-models/error.control-model.ts +722 -722
  116. package/src/_models/control-models/index.ts +10 -10
  117. package/src/_models/control-models/poll.control-model.ts +113 -113
  118. package/src/_models/control-models/range-value.control-model.ts +142 -142
  119. package/src/_models/control-models/usage-action.control-model.ts +15 -15
  120. package/src/_models/control-models/usage-data.control-model.ts +20 -20
  121. package/src/_models/data-models/custom-data.data-model.ts +28 -28
  122. package/src/_models/data-models/index.ts +5 -5
  123. package/src/_models/data-models/metadata.data-model.ts +83 -83
  124. package/src/_models/data-models/usage-session.data-model.ts +53 -53
  125. package/src/_models/index.ts +12 -12
  126. package/src/_models/interfaces/error-defaults.interface.ts +11 -11
  127. package/src/_models/interfaces/index.ts +11 -8
  128. package/src/_models/interfaces/location/country-division.interface.ts +7 -7
  129. package/src/_models/interfaces/location/country-iso.interface.ts +21 -21
  130. package/src/_models/interfaces/location/country-phone-code.interface.ts +7 -7
  131. package/src/_models/interfaces/location/division-collection.interface.ts +10 -10
  132. package/src/_models/interfaces/location/division-region-data.interface.ts +8 -8
  133. package/src/_models/interfaces/location/geo-ip-location.interface.ts +26 -26
  134. package/src/_models/interfaces/location/index.ts +10 -10
  135. package/src/_models/interfaces/location/location-coordinates.interface.ts +5 -5
  136. package/src/_models/interfaces/multi-pipe-settings.type.ts +7 -7
  137. package/src/_models/interfaces/paged.interface.ts +11 -11
  138. package/src/_models/interfaces/pipe-transforms.interface.ts +29 -29
  139. package/src/_models/interfaces/random-weight.interface.ts +7 -7
  140. package/src/_models/interfaces/route-settings.interface.ts +11 -11
  141. package/src/_modules/collections.index.ts +2 -2
  142. package/src/_modules/constants.index.ts +2 -2
  143. package/src/_modules/custom-data-module.index.ts +6 -6
  144. package/src/_modules/data-modules.index.ts +9 -9
  145. package/src/_modules/enums.index.ts +2 -2
  146. package/src/_modules/error-module.index.ts +8 -8
  147. package/src/_modules/location.index.ts +15 -15
  148. package/src/_modules/models.index.ts +2 -2
  149. package/src/_modules/shared-service.index.ts +9 -9
  150. package/src/_modules/test-module.index.ts +5 -5
  151. package/src/_modules/usage-module.index.ts +10 -10
  152. package/tsconfig.json +29 -29
  153. package/tslint.json +153 -153
  154. package/build/_enums/region.enum.d.ts +0 -8
  155. package/build/_enums/region.enum.d.ts.map +0 -1
  156. package/build/_enums/region.enum.js +0 -12
  157. package/build/_enums/region.enum.js.map +0 -1
  158. package/build/_enums/relative-date.enum.d.ts +0 -9
  159. package/build/_enums/relative-date.enum.d.ts.map +0 -1
  160. package/build/_enums/relative-date.enum.js +0 -13
  161. package/build/_enums/relative-date.enum.js.map +0 -1
  162. package/build/_enums/sub-region.enum.d.ts +0 -20
  163. package/build/_enums/sub-region.enum.d.ts.map +0 -1
  164. package/build/_enums/sub-region.enum.js +0 -24
  165. package/build/_enums/sub-region.enum.js.map +0 -1
  166. package/build/_enums/subdivision-region-type.enum.d.ts +0 -41
  167. package/build/_enums/subdivision-region-type.enum.d.ts.map +0 -1
  168. package/build/_enums/subdivision-region-type.enum.js +0 -46
  169. package/build/_enums/subdivision-region-type.enum.js.map +0 -1
  170. package/src/_enums/region.enum.ts +0 -9
  171. package/src/_enums/relative-date.enum.ts +0 -13
  172. package/src/_enums/sub-region.enum.ts +0 -26
  173. 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';