@futdevpro/fsm-dynamo 1.9.10 → 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 (119) 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/_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/futdevpro-fsm-dynamo-01.09.12.tgz +0 -0
  9. package/nodemon.json +11 -11
  10. package/package.json +151 -151
  11. package/src/_collections/assets/location/country-codes-ISO-3166.json +3239 -3239
  12. package/src/_collections/assets/location/country-divisions-ISO-3166-all-list.json +19035 -19035
  13. package/src/_collections/assets/location/country-divisions-ISO-3166.json +4993 -4993
  14. package/src/_collections/assets/location/country-phone-codes.json +1203 -1203
  15. package/src/_collections/constants/country-divisions.const.ts +9 -9
  16. package/src/_collections/constants/courtry-isos.const.ts +8 -8
  17. package/src/_collections/constants/error-defaults.const.ts +11 -11
  18. package/src/_collections/constants/index.ts +15 -15
  19. package/src/_collections/constants/module-settings/custom-data-module-settings.const.ts +15 -15
  20. package/src/_collections/constants/module-settings/index.ts +8 -8
  21. package/src/_collections/constants/module-settings/test-module-settings.const.ts +19 -19
  22. package/src/_collections/constants/module-settings/usage-module-settings.const.ts +19 -19
  23. package/src/_collections/constants/pipe-transforms.const.ts +35 -35
  24. package/src/_collections/constants/times.const.ts +8 -8
  25. package/src/_collections/index.ts +6 -6
  26. package/src/_collections/utils/array.util.spec.ts +39 -39
  27. package/src/_collections/utils/array.util.ts +137 -137
  28. package/src/_collections/utils/index.ts +18 -18
  29. package/src/_collections/utils/location.util.ts +55 -55
  30. package/src/_collections/utils/log.util.ts +239 -239
  31. package/src/_collections/utils/math/box-bounds.util.ts +85 -85
  32. package/src/_collections/utils/math/index.ts +5 -5
  33. package/src/_collections/utils/math/math.util.ts +53 -53
  34. package/src/_collections/utils/math/random.util.ts +80 -80
  35. package/src/_collections/utils/math/trigonometry.util.ts +73 -73
  36. package/src/_collections/utils/math/vector2.util.ts +197 -197
  37. package/src/_collections/utils/pipe-transforms/country-pipe.util.ts +18 -18
  38. package/src/_collections/utils/pipe-transforms/custom-pipe.util.ts +9 -9
  39. package/src/_collections/utils/pipe-transforms/division-pipe.util.ts +20 -20
  40. package/src/_collections/utils/pipe-transforms/index.ts +15 -15
  41. package/src/_collections/utils/pipe-transforms/list-pipe.util.ts +10 -10
  42. package/src/_collections/utils/pipe-transforms/multi-pipe-pipe.util.ts +160 -160
  43. package/src/_collections/utils/pipe-transforms/obj-key-pipe.util.ts +9 -9
  44. package/src/_collections/utils/pipe-transforms/range-pipe.util.ts +94 -94
  45. package/src/_collections/utils/pipe-transforms/region-pipe.util.ts +18 -18
  46. package/src/_collections/utils/pipe-transforms/replace-pipe.util.ts +11 -11
  47. package/src/_collections/utils/pipe-transforms/slider-pipe.util.ts +20 -20
  48. package/src/_collections/utils/pipe-transforms/smart-replace-pipe.util.ts +71 -71
  49. package/src/_collections/utils/regex/index.ts +4 -4
  50. package/src/_collections/utils/regex/password-regex.util.ts +52 -52
  51. package/src/_collections/utils/regex/regex.util.ts +6 -6
  52. package/src/_collections/utils/regex/username-regex.util.ts +33 -33
  53. package/src/_collections/utils/regions.util.ts +100 -100
  54. package/src/_collections/utils/round-list.util.ts +44 -44
  55. package/src/_collections/utils/shared.static-service.ts +177 -177
  56. package/src/_collections/utils/time.util.spec.ts +50 -50
  57. package/src/_collections/utils/time.util.ts +219 -219
  58. package/src/_collections/utils/type-cloning-facility.util.ts +121 -121
  59. package/src/_collections/utils/utilities.util.ts +130 -130
  60. package/src/_enums/basic-property-type.enum.ts +9 -9
  61. package/src/_enums/data-model-type.enum.ts +13 -13
  62. package/src/_enums/day-of-week.enum.ts +28 -28
  63. package/src/_enums/error-level.enum.ts +17 -17
  64. package/src/_enums/index.ts +16 -16
  65. package/src/_enums/location/index.ts +3 -3
  66. package/src/_enums/location/region.enum.ts +9 -9
  67. package/src/_enums/location/sub-region.enum.ts +26 -26
  68. package/src/_enums/location/subdivision-region-type.enum.ts +44 -44
  69. package/src/_enums/log-style.enum.ts +30 -30
  70. package/src/_enums/month.enum.ts +16 -16
  71. package/src/_enums/pipe.enum.ts +45 -45
  72. package/src/_enums/range-pipe-setting.enum.ts +11 -11
  73. package/src/_enums/time/day-of-week.enum.ts +28 -28
  74. package/src/_enums/time/index.ts +3 -3
  75. package/src/_enums/time/month.enum.ts +16 -16
  76. package/src/_enums/time/relative-date.enum.ts +13 -13
  77. package/src/_models/control-models/daily-usage-data.control-model.ts +21 -21
  78. package/src/_models/control-models/data-model-params.control-model.ts +39 -39
  79. package/src/_models/control-models/data-property-params.control-model.ts +106 -106
  80. package/src/_models/control-models/error.control-model.spec.ts +753 -716
  81. package/src/_models/control-models/error.control-model.ts +722 -722
  82. package/src/_models/control-models/index.ts +10 -10
  83. package/src/_models/control-models/poll.control-model.ts +113 -113
  84. package/src/_models/control-models/range-value.control-model.ts +142 -142
  85. package/src/_models/control-models/usage-action.control-model.ts +15 -15
  86. package/src/_models/control-models/usage-data.control-model.ts +20 -20
  87. package/src/_models/data-models/custom-data.data-model.ts +28 -28
  88. package/src/_models/data-models/index.ts +5 -5
  89. package/src/_models/data-models/metadata.data-model.ts +83 -83
  90. package/src/_models/data-models/usage-session.data-model.ts +53 -53
  91. package/src/_models/index.ts +12 -12
  92. package/src/_models/interfaces/error-defaults.interface.ts +11 -11
  93. package/src/_models/interfaces/index.ts +11 -11
  94. package/src/_models/interfaces/location/country-division.interface.ts +7 -7
  95. package/src/_models/interfaces/location/country-iso.interface.ts +21 -21
  96. package/src/_models/interfaces/location/country-phone-code.interface.ts +7 -7
  97. package/src/_models/interfaces/location/division-collection.interface.ts +10 -10
  98. package/src/_models/interfaces/location/division-region-data.interface.ts +8 -8
  99. package/src/_models/interfaces/location/geo-ip-location.interface.ts +26 -26
  100. package/src/_models/interfaces/location/index.ts +10 -10
  101. package/src/_models/interfaces/location/location-coordinates.interface.ts +5 -5
  102. package/src/_models/interfaces/multi-pipe-settings.type.ts +7 -7
  103. package/src/_models/interfaces/paged.interface.ts +11 -11
  104. package/src/_models/interfaces/pipe-transforms.interface.ts +29 -29
  105. package/src/_models/interfaces/random-weight.interface.ts +7 -7
  106. package/src/_models/interfaces/route-settings.interface.ts +11 -11
  107. package/src/_modules/collections.index.ts +2 -2
  108. package/src/_modules/constants.index.ts +2 -2
  109. package/src/_modules/custom-data-module.index.ts +6 -6
  110. package/src/_modules/data-modules.index.ts +9 -9
  111. package/src/_modules/enums.index.ts +2 -2
  112. package/src/_modules/error-module.index.ts +8 -8
  113. package/src/_modules/location.index.ts +15 -15
  114. package/src/_modules/models.index.ts +2 -2
  115. package/src/_modules/shared-service.index.ts +9 -9
  116. package/src/_modules/test-module.index.ts +5 -5
  117. package/src/_modules/usage-module.index.ts +10 -10
  118. package/tsconfig.json +29 -29
  119. 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
+ }