@futdevpro/fsm-dynamo 1.9.10 → 1.9.14

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 (124) hide show
  1. package/.github/workflows/main.yml +222 -0
  2. package/HOWTO.md +15 -15
  3. package/README.md +17 -17
  4. package/build/_models/control-models/error.control-model.js +1 -1
  5. package/build/_models/control-models/error.control-model.js.map +1 -1
  6. package/build/_models/control-models/error.control-model.spec.js +25 -6
  7. package/build/_models/control-models/error.control-model.spec.js.map +1 -1
  8. package/build/_modules/utils.index.d.ts +2 -0
  9. package/build/_modules/utils.index.d.ts.map +1 -0
  10. package/build/_modules/utils.index.js +5 -0
  11. package/build/_modules/utils.index.js.map +1 -0
  12. package/futdevpro-fsm-dynamo-01.09.14.tgz +0 -0
  13. package/nodemon.json +11 -11
  14. package/package.json +160 -151
  15. package/src/_collections/assets/location/country-codes-ISO-3166.json +3239 -3239
  16. package/src/_collections/assets/location/country-divisions-ISO-3166-all-list.json +19035 -19035
  17. package/src/_collections/assets/location/country-divisions-ISO-3166.json +4993 -4993
  18. package/src/_collections/assets/location/country-phone-codes.json +1203 -1203
  19. package/src/_collections/constants/country-divisions.const.ts +9 -9
  20. package/src/_collections/constants/courtry-isos.const.ts +8 -8
  21. package/src/_collections/constants/error-defaults.const.ts +11 -11
  22. package/src/_collections/constants/index.ts +15 -15
  23. package/src/_collections/constants/module-settings/custom-data-module-settings.const.ts +15 -15
  24. package/src/_collections/constants/module-settings/index.ts +8 -8
  25. package/src/_collections/constants/module-settings/test-module-settings.const.ts +19 -19
  26. package/src/_collections/constants/module-settings/usage-module-settings.const.ts +19 -19
  27. package/src/_collections/constants/pipe-transforms.const.ts +35 -35
  28. package/src/_collections/constants/times.const.ts +8 -8
  29. package/src/_collections/index.ts +6 -6
  30. package/src/_collections/utils/array.util.spec.ts +39 -39
  31. package/src/_collections/utils/array.util.ts +137 -137
  32. package/src/_collections/utils/index.ts +18 -18
  33. package/src/_collections/utils/location.util.ts +55 -55
  34. package/src/_collections/utils/log.util.ts +239 -239
  35. package/src/_collections/utils/math/box-bounds.util.ts +85 -85
  36. package/src/_collections/utils/math/index.ts +5 -5
  37. package/src/_collections/utils/math/math.util.ts +53 -53
  38. package/src/_collections/utils/math/random.util.ts +80 -80
  39. package/src/_collections/utils/math/trigonometry.util.ts +73 -73
  40. package/src/_collections/utils/math/vector2.util.ts +197 -197
  41. package/src/_collections/utils/pipe-transforms/country-pipe.util.ts +18 -18
  42. package/src/_collections/utils/pipe-transforms/custom-pipe.util.ts +9 -9
  43. package/src/_collections/utils/pipe-transforms/division-pipe.util.ts +20 -20
  44. package/src/_collections/utils/pipe-transforms/index.ts +15 -15
  45. package/src/_collections/utils/pipe-transforms/list-pipe.util.ts +10 -10
  46. package/src/_collections/utils/pipe-transforms/multi-pipe-pipe.util.ts +160 -160
  47. package/src/_collections/utils/pipe-transforms/obj-key-pipe.util.ts +9 -9
  48. package/src/_collections/utils/pipe-transforms/range-pipe.util.ts +94 -94
  49. package/src/_collections/utils/pipe-transforms/region-pipe.util.ts +18 -18
  50. package/src/_collections/utils/pipe-transforms/replace-pipe.util.ts +11 -11
  51. package/src/_collections/utils/pipe-transforms/slider-pipe.util.ts +20 -20
  52. package/src/_collections/utils/pipe-transforms/smart-replace-pipe.util.ts +71 -71
  53. package/src/_collections/utils/regex/index.ts +4 -4
  54. package/src/_collections/utils/regex/password-regex.util.ts +52 -52
  55. package/src/_collections/utils/regex/regex.util.ts +6 -6
  56. package/src/_collections/utils/regex/username-regex.util.ts +33 -33
  57. package/src/_collections/utils/regions.util.ts +100 -100
  58. package/src/_collections/utils/round-list.util.ts +44 -44
  59. package/src/_collections/utils/shared.static-service.ts +177 -177
  60. package/src/_collections/utils/time.util.spec.ts +50 -50
  61. package/src/_collections/utils/time.util.ts +219 -219
  62. package/src/_collections/utils/type-cloning-facility.util.ts +121 -121
  63. package/src/_collections/utils/utilities.util.ts +130 -130
  64. package/src/_enums/basic-property-type.enum.ts +9 -9
  65. package/src/_enums/data-model-type.enum.ts +13 -13
  66. package/src/_enums/day-of-week.enum.ts +28 -28
  67. package/src/_enums/error-level.enum.ts +17 -17
  68. package/src/_enums/index.ts +16 -16
  69. package/src/_enums/location/index.ts +3 -3
  70. package/src/_enums/location/region.enum.ts +9 -9
  71. package/src/_enums/location/sub-region.enum.ts +26 -26
  72. package/src/_enums/location/subdivision-region-type.enum.ts +44 -44
  73. package/src/_enums/log-style.enum.ts +30 -30
  74. package/src/_enums/month.enum.ts +16 -16
  75. package/src/_enums/pipe.enum.ts +45 -45
  76. package/src/_enums/range-pipe-setting.enum.ts +11 -11
  77. package/src/_enums/time/day-of-week.enum.ts +28 -28
  78. package/src/_enums/time/index.ts +3 -3
  79. package/src/_enums/time/month.enum.ts +16 -16
  80. package/src/_enums/time/relative-date.enum.ts +13 -13
  81. package/src/_models/control-models/daily-usage-data.control-model.ts +21 -21
  82. package/src/_models/control-models/data-model-params.control-model.ts +39 -39
  83. package/src/_models/control-models/data-property-params.control-model.ts +106 -106
  84. package/src/_models/control-models/error.control-model.spec.ts +753 -716
  85. package/src/_models/control-models/error.control-model.ts +722 -722
  86. package/src/_models/control-models/index.ts +10 -10
  87. package/src/_models/control-models/poll.control-model.ts +113 -113
  88. package/src/_models/control-models/range-value.control-model.ts +142 -142
  89. package/src/_models/control-models/usage-action.control-model.ts +15 -15
  90. package/src/_models/control-models/usage-data.control-model.ts +20 -20
  91. package/src/_models/data-models/custom-data.data-model.ts +28 -28
  92. package/src/_models/data-models/index.ts +5 -5
  93. package/src/_models/data-models/metadata.data-model.ts +83 -83
  94. package/src/_models/data-models/usage-session.data-model.ts +53 -53
  95. package/src/_models/index.ts +12 -12
  96. package/src/_models/interfaces/error-defaults.interface.ts +11 -11
  97. package/src/_models/interfaces/index.ts +11 -11
  98. package/src/_models/interfaces/location/country-division.interface.ts +7 -7
  99. package/src/_models/interfaces/location/country-iso.interface.ts +21 -21
  100. package/src/_models/interfaces/location/country-phone-code.interface.ts +7 -7
  101. package/src/_models/interfaces/location/division-collection.interface.ts +10 -10
  102. package/src/_models/interfaces/location/division-region-data.interface.ts +8 -8
  103. package/src/_models/interfaces/location/geo-ip-location.interface.ts +26 -26
  104. package/src/_models/interfaces/location/index.ts +10 -10
  105. package/src/_models/interfaces/location/location-coordinates.interface.ts +5 -5
  106. package/src/_models/interfaces/multi-pipe-settings.type.ts +7 -7
  107. package/src/_models/interfaces/paged.interface.ts +11 -11
  108. package/src/_models/interfaces/pipe-transforms.interface.ts +29 -29
  109. package/src/_models/interfaces/random-weight.interface.ts +7 -7
  110. package/src/_models/interfaces/route-settings.interface.ts +11 -11
  111. package/src/_modules/collections.index.ts +2 -2
  112. package/src/_modules/constants.index.ts +2 -2
  113. package/src/_modules/custom-data-module.index.ts +6 -6
  114. package/src/_modules/data-modules.index.ts +9 -9
  115. package/src/_modules/enums.index.ts +2 -2
  116. package/src/_modules/error-module.index.ts +8 -8
  117. package/src/_modules/location.index.ts +15 -15
  118. package/src/_modules/models.index.ts +2 -2
  119. package/src/_modules/shared-service.index.ts +9 -9
  120. package/src/_modules/test-module.index.ts +5 -5
  121. package/src/_modules/usage-module.index.ts +10 -10
  122. package/src/_modules/utils.index.ts +4 -0
  123. package/tsconfig.json +29 -29
  124. package/tslint.json +153 -153
@@ -1,53 +1,53 @@
1
-
2
-
3
-
4
-
5
-
6
-
7
-
8
-
9
-
10
- export class DynamoFM_Math {
11
-
12
- static between(value: number, minExclusive: number, maxExclusive: number): boolean {
13
- return minExclusive < value && value < maxExclusive;
14
- }
15
-
16
- static around(value: number, target: number, range: number): boolean {
17
- return this.between(value, target - range, target + range);
18
- }
19
-
20
- static getRandomInt(min: number, max: number): number {
21
- return min + Math.round((max - min) * Math.random());
22
- }
23
-
24
- static round(value: number, decimals: number = 2): number {
25
- return Number(value.toFixed(decimals));
26
- }
27
-
28
- static numberWithSpaces(x: number): string {
29
- return x.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ' ');
30
- }
31
-
32
- static floatingNumberWithSpaces(x: number): string {
33
- const parts: string[] = x.toString().split('.');
34
-
35
- parts[0] = parts[0].replace(/\B(?=(\d{3})+(?!\d))/g, ' ');
36
-
37
- return parts.join('.');
38
- }
39
-
40
- static decimals(x: number, useSpacer: string = ','): string {
41
- const parts: string[] = x.toString().split('.');
42
-
43
- parts[0] = parts[0].replace(/\B(?=(\d{3})+(?!\d))/g, useSpacer);
44
-
45
- return parts.join('.');
46
- }
47
- }
48
-
49
-
50
-
51
-
52
-
53
-
1
+
2
+
3
+
4
+
5
+
6
+
7
+
8
+
9
+
10
+ export class DynamoFM_Math {
11
+
12
+ static between(value: number, minExclusive: number, maxExclusive: number): boolean {
13
+ return minExclusive < value && value < maxExclusive;
14
+ }
15
+
16
+ static around(value: number, target: number, range: number): boolean {
17
+ return this.between(value, target - range, target + range);
18
+ }
19
+
20
+ static getRandomInt(min: number, max: number): number {
21
+ return min + Math.round((max - min) * Math.random());
22
+ }
23
+
24
+ static round(value: number, decimals: number = 2): number {
25
+ return Number(value.toFixed(decimals));
26
+ }
27
+
28
+ static numberWithSpaces(x: number): string {
29
+ return x.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ' ');
30
+ }
31
+
32
+ static floatingNumberWithSpaces(x: number): string {
33
+ const parts: string[] = x.toString().split('.');
34
+
35
+ parts[0] = parts[0].replace(/\B(?=(\d{3})+(?!\d))/g, ' ');
36
+
37
+ return parts.join('.');
38
+ }
39
+
40
+ static decimals(x: number, useSpacer: string = ','): string {
41
+ const parts: string[] = x.toString().split('.');
42
+
43
+ parts[0] = parts[0].replace(/\B(?=(\d{3})+(?!\d))/g, useSpacer);
44
+
45
+ return parts.join('.');
46
+ }
47
+ }
48
+
49
+
50
+
51
+
52
+
53
+
@@ -1,80 +1,80 @@
1
-
2
- import { DynamoFM_RandomWeight } from '../../../_models/interfaces/random-weight.interface';
3
-
4
- export type DFM_Random = DynamoFM_Random;
5
- export class DynamoFM_Random {
6
- static getRandomWeightedInt(
7
- min: number,
8
- max: number,
9
- weights: DynamoFM_RandomWeight<number>[]
10
- ): number {
11
- weights = weights.sort((a, b): number => b.chance - a.chance);
12
- let weightChanceSum = 0;
13
-
14
- weights.forEach((weight): void => { weightChanceSum += weight.chance; });
15
-
16
- if (1 < weightChanceSum) {
17
- weights.forEach((weights): void => { weights.chance = weights.chance / weightChanceSum; });
18
- }
19
-
20
- const randomChance: number = Math.random();
21
- let result: number;
22
- let chancer = 0;
23
-
24
- for (let i = 0; i < weights.length && result === undefined; i++) {
25
- chancer += weights[i].chance;
26
-
27
- if (randomChance < chancer) {
28
- result = weights[i].result;
29
- }
30
- }
31
-
32
- if (result !== undefined) {
33
- return result;
34
- } else {
35
- return this.getRandomInt(min, max);
36
- }
37
- }
38
-
39
- static getRandomInt(min: number, max: number): number {
40
- return min + Math.round((max - min) * Math.random());
41
- }
42
-
43
- static getRandomListElement<T>(list: T[]): T {
44
- if (0 < list.length) {
45
- return list[this.getRandomInt(0, list.length - 1)];
46
- } else {
47
- return null;
48
- }
49
- }
50
-
51
- static getRandomWeighted<T>(weights: DynamoFM_RandomWeight<T>[]): T {
52
- if (!weights?.length) {
53
- return null;
54
- }
55
-
56
- weights = weights.sort((a, b): number => b.chance - a.chance);
57
- let weightChanceSum = 0;
58
-
59
- weights.forEach((weight): void => {
60
- weightChanceSum += weight.chance;
61
- });
62
- weights.forEach((weights): void => {
63
- weights.chance = weights.chance / weightChanceSum;
64
- });
65
-
66
- const randomChance: number = Math.random();
67
- let result: T;
68
- let chancer = 0;
69
-
70
- for (let i = 0; i < weights.length && result === undefined; i++) {
71
- chancer += weights[i].chance;
72
-
73
- if (randomChance < chancer) {
74
- result = weights[i].result;
75
- }
76
- }
77
-
78
- return result;
79
- }
80
- }
1
+
2
+ import { DynamoFM_RandomWeight } from '../../../_models/interfaces/random-weight.interface';
3
+
4
+ export type DFM_Random = DynamoFM_Random;
5
+ export class DynamoFM_Random {
6
+ static getRandomWeightedInt(
7
+ min: number,
8
+ max: number,
9
+ weights: DynamoFM_RandomWeight<number>[]
10
+ ): number {
11
+ weights = weights.sort((a, b): number => b.chance - a.chance);
12
+ let weightChanceSum = 0;
13
+
14
+ weights.forEach((weight): void => { weightChanceSum += weight.chance; });
15
+
16
+ if (1 < weightChanceSum) {
17
+ weights.forEach((weights): void => { weights.chance = weights.chance / weightChanceSum; });
18
+ }
19
+
20
+ const randomChance: number = Math.random();
21
+ let result: number;
22
+ let chancer = 0;
23
+
24
+ for (let i = 0; i < weights.length && result === undefined; i++) {
25
+ chancer += weights[i].chance;
26
+
27
+ if (randomChance < chancer) {
28
+ result = weights[i].result;
29
+ }
30
+ }
31
+
32
+ if (result !== undefined) {
33
+ return result;
34
+ } else {
35
+ return this.getRandomInt(min, max);
36
+ }
37
+ }
38
+
39
+ static getRandomInt(min: number, max: number): number {
40
+ return min + Math.round((max - min) * Math.random());
41
+ }
42
+
43
+ static getRandomListElement<T>(list: T[]): T {
44
+ if (0 < list.length) {
45
+ return list[this.getRandomInt(0, list.length - 1)];
46
+ } else {
47
+ return null;
48
+ }
49
+ }
50
+
51
+ static getRandomWeighted<T>(weights: DynamoFM_RandomWeight<T>[]): T {
52
+ if (!weights?.length) {
53
+ return null;
54
+ }
55
+
56
+ weights = weights.sort((a, b): number => b.chance - a.chance);
57
+ let weightChanceSum = 0;
58
+
59
+ weights.forEach((weight): void => {
60
+ weightChanceSum += weight.chance;
61
+ });
62
+ weights.forEach((weights): void => {
63
+ weights.chance = weights.chance / weightChanceSum;
64
+ });
65
+
66
+ const randomChance: number = Math.random();
67
+ let result: T;
68
+ let chancer = 0;
69
+
70
+ for (let i = 0; i < weights.length && result === undefined; i++) {
71
+ chancer += weights[i].chance;
72
+
73
+ if (randomChance < chancer) {
74
+ result = weights[i].result;
75
+ }
76
+ }
77
+
78
+ return result;
79
+ }
80
+ }
@@ -1,73 +1,73 @@
1
-
2
- export type DFM_Trigonometry = DynamoFM_Trigonometry;
3
- export type DFM_Trig = DynamoFM_Trigonometry;
4
- export type DFM_Δ = DynamoFM_Trigonometry;
5
- export class DynamoFM_Trigonometry {
6
-
7
- /**
8
- * Befogó
9
- * a Befogó mérete az átfogó, és a befogóval szemközti szög alapján
10
- * a szemközti szög értéke opcionális
11
- * (amennyiben nem adjuk meg, 45 fokos szöggel számolunk)
12
- * @param c átfogó
13
- * @param angle a befogó oldallal szemközti szög (fokban)
14
- * @returns befogó
15
- */
16
- static getClamp(c: number, angle?: number): number {
17
- angle = angle !== undefined ? angle : 45;
18
-
19
- return Math.sin(this.angleToRadians(angle)) * c;
20
- }
21
-
22
- /**
23
- * Befogó
24
- * a Befogó mérete az átfogó és a másik befogó alapján
25
- * @param a befogó
26
- * @param c átfogó
27
- * @returns befogó
28
- */
29
- static getClampByClampAndHypotenuse(a: number, c: number): number {
30
- if (a > c) {
31
-
32
- throw {
33
- errorMessage:
34
- `getClampByClampAndHypotenuse error hypotenuse is smaller than clamp (a:${a} > c:${c})`
35
- };
36
- }
37
-
38
- return Math.sqrt((c * c) - (a * a));
39
- }
40
-
41
- /**
42
- * Átfogó
43
- * az Átfogó mérete a befogók alapján
44
- * a második befogó értéke opcionális
45
- * (amennyiben nem adjuk meg, egyenlő szárú háromszöggel számolunk)
46
- * @param a egyik befogó
47
- * @param b másik befogó
48
- * @returns átfogó
49
- */
50
- static getHypotenuse(a: number, b?: number): number {
51
- b = b !== undefined ? b : a;
52
-
53
- return Math.sqrt((a * a) + (b * b));
54
- }
55
-
56
- /**
57
- * Szög fokmértéket átalakítja radiánsra
58
- * @param angle szög fok
59
- * @returns szög radiáns
60
- */
61
- static angleToRadians(angle: number): number {
62
- return angle * Math.PI / 180;
63
- }
64
-
65
- /**
66
- * Szög radiáns mértéket átalakítja fokra
67
- * @param radians szög radiáns
68
- * @returns szög fok
69
- */
70
- static radiansToAngle(radians: number): number {
71
- return radians / Math.PI * 180;
72
- }
73
- }
1
+
2
+ export type DFM_Trigonometry = DynamoFM_Trigonometry;
3
+ export type DFM_Trig = DynamoFM_Trigonometry;
4
+ export type DFM_Δ = DynamoFM_Trigonometry;
5
+ export class DynamoFM_Trigonometry {
6
+
7
+ /**
8
+ * Befogó
9
+ * a Befogó mérete az átfogó, és a befogóval szemközti szög alapján
10
+ * a szemközti szög értéke opcionális
11
+ * (amennyiben nem adjuk meg, 45 fokos szöggel számolunk)
12
+ * @param c átfogó
13
+ * @param angle a befogó oldallal szemközti szög (fokban)
14
+ * @returns befogó
15
+ */
16
+ static getClamp(c: number, angle?: number): number {
17
+ angle = angle !== undefined ? angle : 45;
18
+
19
+ return Math.sin(this.angleToRadians(angle)) * c;
20
+ }
21
+
22
+ /**
23
+ * Befogó
24
+ * a Befogó mérete az átfogó és a másik befogó alapján
25
+ * @param a befogó
26
+ * @param c átfogó
27
+ * @returns befogó
28
+ */
29
+ static getClampByClampAndHypotenuse(a: number, c: number): number {
30
+ if (a > c) {
31
+
32
+ throw {
33
+ errorMessage:
34
+ `getClampByClampAndHypotenuse error hypotenuse is smaller than clamp (a:${a} > c:${c})`
35
+ };
36
+ }
37
+
38
+ return Math.sqrt((c * c) - (a * a));
39
+ }
40
+
41
+ /**
42
+ * Átfogó
43
+ * az Átfogó mérete a befogók alapján
44
+ * a második befogó értéke opcionális
45
+ * (amennyiben nem adjuk meg, egyenlő szárú háromszöggel számolunk)
46
+ * @param a egyik befogó
47
+ * @param b másik befogó
48
+ * @returns átfogó
49
+ */
50
+ static getHypotenuse(a: number, b?: number): number {
51
+ b = b !== undefined ? b : a;
52
+
53
+ return Math.sqrt((a * a) + (b * b));
54
+ }
55
+
56
+ /**
57
+ * Szög fokmértéket átalakítja radiánsra
58
+ * @param angle szög fok
59
+ * @returns szög radiáns
60
+ */
61
+ static angleToRadians(angle: number): number {
62
+ return angle * Math.PI / 180;
63
+ }
64
+
65
+ /**
66
+ * Szög radiáns mértéket átalakítja fokra
67
+ * @param radians szög radiáns
68
+ * @returns szög fok
69
+ */
70
+ static radiansToAngle(radians: number): number {
71
+ return radians / Math.PI * 180;
72
+ }
73
+ }