@futdevpro/fsm-dynamo 1.10.36 → 1.10.38
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/_collections/constants/global-settings.const.d.ts.map +1 -1
- package/build/_collections/constants/global-settings.const.js +1 -0
- package/build/_collections/constants/global-settings.const.js.map +1 -1
- package/build/_collections/utils/array.util.spec.js +34 -34
- package/build/_collections/utils/array.util.spec.js.map +1 -1
- package/build/_collections/utils/log.util.spec.js +12 -12
- package/build/_collections/utils/log.util.spec.js.map +1 -1
- package/build/_collections/utils/math/box-bounds.spec.js +11 -11
- package/build/_collections/utils/math/box-bounds.spec.js.map +1 -1
- package/build/_collections/utils/math/box-bounds.util.spec.js +8 -8
- package/build/_collections/utils/math/box-bounds.util.spec.js.map +1 -1
- package/build/_collections/utils/math/math.util.spec.js +24 -24
- package/build/_collections/utils/math/math.util.spec.js.map +1 -1
- package/build/_collections/utils/math/random.util.spec.js +13 -13
- package/build/_collections/utils/math/random.util.spec.js.map +1 -1
- package/build/_collections/utils/math/trigonometry.util.spec.js +13 -13
- package/build/_collections/utils/math/trigonometry.util.spec.js.map +1 -1
- package/build/_collections/utils/math/vector2.util.spec.js +14 -14
- package/build/_collections/utils/math/vector2.util.spec.js.map +1 -1
- package/build/_collections/utils/regex/password-regex.util.spec.js +8 -8
- package/build/_collections/utils/regex/password-regex.util.spec.js.map +1 -1
- package/build/_collections/utils/regex/regex.util.spec.js +2 -2
- package/build/_collections/utils/regex/regex.util.spec.js.map +1 -1
- package/build/_collections/utils/regex/username-regex.util.spec.js +3 -3
- package/build/_collections/utils/regex/username-regex.util.spec.js.map +1 -1
- package/build/_collections/utils/round-list.util.spec.js +20 -20
- package/build/_collections/utils/round-list.util.spec.js.map +1 -1
- package/build/_collections/utils/shared.util.spec.js +15 -15
- package/build/_collections/utils/shared.util.spec.js.map +1 -1
- package/build/_collections/utils/string.util.spec.js +9 -9
- package/build/_collections/utils/string.util.spec.js.map +1 -1
- package/build/_collections/utils/time.util.spec.js +1 -1
- package/build/_collections/utils/time.util.spec.js.map +1 -1
- package/build/_collections/utils/type-cloning-facility.util.spec.js +5 -5
- package/build/_collections/utils/type-cloning-facility.util.spec.js.map +1 -1
- package/build/_collections/utils/utilities.util.spec.js +35 -35
- package/build/_collections/utils/utilities.util.spec.js.map +1 -1
- package/build/_collections/utils/uuid.util.spec.js +6 -6
- package/build/_collections/utils/uuid.util.spec.js.map +1 -1
- package/build/_models/control-models/data-model-params.control-model.spec.js +6 -6
- package/build/_models/control-models/data-model-params.control-model.spec.js.map +1 -1
- package/build/_models/control-models/data-property-params.control-model.spec.js +2 -2
- package/build/_models/control-models/data-property-params.control-model.spec.js.map +1 -1
- package/build/_models/control-models/error.control-model.spec.js +157 -157
- package/build/_models/control-models/error.control-model.spec.js.map +1 -1
- package/build/_models/control-models/poll.control-model.spec.js +2 -2
- package/build/_models/control-models/poll.control-model.spec.js.map +1 -1
- package/build/_models/control-models/range-value.control-model.spec.js +27 -27
- package/build/_models/control-models/range-value.control-model.spec.js.map +1 -1
- package/build/_models/interfaces/environment/global-settings.interface.d.ts +1 -0
- package/build/_models/interfaces/environment/global-settings.interface.d.ts.map +1 -1
- package/build/_modules/crypto/_collections/crypto.util.d.ts +11 -17
- package/build/_modules/crypto/_collections/crypto.util.d.ts.map +1 -1
- package/build/_modules/crypto/_collections/crypto.util.js +74 -58
- package/build/_modules/crypto/_collections/crypto.util.js.map +1 -1
- package/build/_modules/crypto/_collections/crypto.util.spec.js +421 -31
- package/build/_modules/crypto/_collections/crypto.util.spec.js.map +1 -1
- package/build/_modules/custom-data/_models/cud.data-model.spec.js +7 -7
- package/build/_modules/custom-data/_models/cud.data-model.spec.js.map +1 -1
- package/build/_modules/location/_collections/loc-regions.util.spec.js +10 -10
- package/build/_modules/location/_collections/loc-regions.util.spec.js.map +1 -1
- package/build/_modules/location/_collections/loc.util.spec.js +6 -6
- package/build/_modules/location/_collections/loc.util.spec.js.map +1 -1
- package/build/_modules/pipe/_collections/utils/pip-country-pipe.util.spec.js +6 -6
- package/build/_modules/pipe/_collections/utils/pip-country-pipe.util.spec.js.map +1 -1
- package/build/_modules/pipe/_collections/utils/pip-custom-pipe.util.spec.js +6 -6
- package/build/_modules/pipe/_collections/utils/pip-custom-pipe.util.spec.js.map +1 -1
- package/build/_modules/pipe/_collections/utils/pip-division-pipe.util.spec.js +6 -6
- package/build/_modules/pipe/_collections/utils/pip-division-pipe.util.spec.js.map +1 -1
- package/build/_modules/pipe/_collections/utils/pip-list-pipe.util.spec.js +6 -6
- package/build/_modules/pipe/_collections/utils/pip-list-pipe.util.spec.js.map +1 -1
- package/build/_modules/pipe/_collections/utils/pip-multi-pipe-pipe.util.spec.js +8 -8
- package/build/_modules/pipe/_collections/utils/pip-multi-pipe-pipe.util.spec.js.map +1 -1
- package/build/_modules/pipe/_collections/utils/pip-obj-key-pipe.util.spec.js +5 -5
- package/build/_modules/pipe/_collections/utils/pip-obj-key-pipe.util.spec.js.map +1 -1
- package/build/_modules/pipe/_collections/utils/pip-range-pipe.util.spec.js +8 -8
- package/build/_modules/pipe/_collections/utils/pip-range-pipe.util.spec.js.map +1 -1
- package/build/_modules/pipe/_collections/utils/pip-region-pipe.util.spec.js +4 -4
- package/build/_modules/pipe/_collections/utils/pip-region-pipe.util.spec.js.map +1 -1
- package/build/_modules/pipe/_collections/utils/pip-replace-pipe.util.spec.js +9 -9
- package/build/_modules/pipe/_collections/utils/pip-replace-pipe.util.spec.js.map +1 -1
- package/build/_modules/pipe/_collections/utils/pip-slider-pipe.util.spec.js +4 -4
- package/build/_modules/pipe/_collections/utils/pip-slider-pipe.util.spec.js.map +1 -1
- package/build/_modules/pipe/_collections/utils/pip-smart-replace-pipe.util.spec.js +7 -7
- package/build/_modules/pipe/_collections/utils/pip-smart-replace-pipe.util.spec.js.map +1 -1
- package/build/_modules/socket/_models/sck-client-params.control-model.spec.js +5 -5
- package/build/_modules/socket/_models/sck-client-params.control-model.spec.js.map +1 -1
- package/build/_modules/socket/_models/sck-socket-event.control-model.spec.js +5 -5
- package/build/_modules/socket/_models/sck-socket-event.control-model.spec.js.map +1 -1
- package/build/_modules/socket/_services/sck-client.service-base.spec.js +7 -7
- package/build/_modules/socket/_services/sck-client.service-base.spec.js.map +1 -1
- package/build/_modules/usage/_models/usg-action.control-model.spec.js +4 -4
- package/build/_modules/usage/_models/usg-action.control-model.spec.js.map +1 -1
- package/build/_modules/usage/_models/usg-daily-usage-data.control-model.spec.js +3 -3
- package/build/_modules/usage/_models/usg-daily-usage-data.control-model.spec.js.map +1 -1
- package/build/_modules/usage/_models/usg-data.control-model.spec.js +4 -4
- package/build/_modules/usage/_models/usg-data.control-model.spec.js.map +1 -1
- package/build/_modules/usage/_models/usg-session.data-model.spec.js +7 -7
- package/build/_modules/usage/_models/usg-session.data-model.spec.js.map +1 -1
- package/futdevpro-fsm-dynamo-01.10.38.tgz +0 -0
- package/package.json +1 -1
- package/src/_collections/constants/global-settings.const.ts +2 -0
- package/src/_collections/utils/array.util.spec.ts +34 -34
- package/src/_collections/utils/log.util.spec.ts +12 -12
- package/src/_collections/utils/math/box-bounds.spec.ts +11 -11
- package/src/_collections/utils/math/box-bounds.util.spec.ts +8 -8
- package/src/_collections/utils/math/math.util.spec.ts +24 -24
- package/src/_collections/utils/math/random.util.spec.ts +13 -13
- package/src/_collections/utils/math/trigonometry.util.spec.ts +13 -13
- package/src/_collections/utils/math/vector2.util.spec.ts +14 -14
- package/src/_collections/utils/regex/password-regex.util.spec.ts +8 -8
- package/src/_collections/utils/regex/regex.util.spec.ts +2 -2
- package/src/_collections/utils/regex/username-regex.util.spec.ts +3 -3
- package/src/_collections/utils/round-list.util.spec.ts +20 -20
- package/src/_collections/utils/shared.util.spec.ts +15 -15
- package/src/_collections/utils/string.util.spec.ts +9 -9
- package/src/_collections/utils/time.util.spec.ts +1 -1
- package/src/_collections/utils/type-cloning-facility.util.spec.ts +5 -5
- package/src/_collections/utils/utilities.util.spec.ts +35 -35
- package/src/_collections/utils/uuid.util.spec.ts +6 -6
- package/src/_models/control-models/data-model-params.control-model.spec.ts +6 -6
- package/src/_models/control-models/data-property-params.control-model.spec.ts +2 -2
- package/src/_models/control-models/error.control-model.spec.ts +157 -157
- package/src/_models/control-models/poll.control-model.spec.ts +2 -2
- package/src/_models/control-models/range-value.control-model.spec.ts +27 -27
- package/src/_models/interfaces/environment/global-settings.interface.ts +2 -0
- package/src/_modules/crypto/_collections/crypto.util.spec.ts +459 -31
- package/src/_modules/crypto/_collections/crypto.util.ts +86 -52
- package/src/_modules/custom-data/_models/cud.data-model.spec.ts +7 -7
- package/src/_modules/location/_collections/loc-regions.util.spec.ts +10 -10
- package/src/_modules/location/_collections/loc.util.spec.ts +6 -6
- package/src/_modules/pipe/_collections/utils/pip-country-pipe.util.spec.ts +6 -6
- package/src/_modules/pipe/_collections/utils/pip-custom-pipe.util.spec.ts +6 -6
- package/src/_modules/pipe/_collections/utils/pip-division-pipe.util.spec.ts +6 -6
- package/src/_modules/pipe/_collections/utils/pip-list-pipe.util.spec.ts +6 -6
- package/src/_modules/pipe/_collections/utils/pip-multi-pipe-pipe.util.spec.ts +8 -8
- package/src/_modules/pipe/_collections/utils/pip-obj-key-pipe.util.spec.ts +5 -5
- package/src/_modules/pipe/_collections/utils/pip-range-pipe.util.spec.ts +8 -8
- package/src/_modules/pipe/_collections/utils/pip-region-pipe.util.spec.ts +4 -4
- package/src/_modules/pipe/_collections/utils/pip-replace-pipe.util.spec.ts +9 -9
- package/src/_modules/pipe/_collections/utils/pip-slider-pipe.util.spec.ts +4 -4
- package/src/_modules/pipe/_collections/utils/pip-smart-replace-pipe.util.spec.ts +7 -7
- package/src/_modules/socket/_models/sck-client-params.control-model.spec.ts +5 -5
- package/src/_modules/socket/_models/sck-socket-event.control-model.spec.ts +5 -5
- package/src/_modules/socket/_services/sck-client.service-base.spec.ts +7 -7
- package/src/_modules/usage/_models/usg-action.control-model.spec.ts +4 -4
- package/src/_modules/usage/_models/usg-daily-usage-data.control-model.spec.ts +3 -3
- package/src/_modules/usage/_models/usg-data.control-model.spec.ts +4 -4
- package/src/_modules/usage/_models/usg-session.data-model.spec.ts +7 -7
- package/futdevpro-fsm-dynamo-01.10.36.tgz +0 -0
|
@@ -1,28 +1,28 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
const crypto_util_1 = require("./crypto.util");
|
|
4
|
-
describe('DyFM_Crypto', () => {
|
|
4
|
+
describe('| DyFM_Crypto', () => {
|
|
5
5
|
const testKey = 'test-secret-key-123';
|
|
6
6
|
const testData = { id: 1, name: 'test' };
|
|
7
|
-
describe('encrypt', () => {
|
|
8
|
-
it('should successfully encrypt data', () => {
|
|
7
|
+
describe('| encrypt', () => {
|
|
8
|
+
it('| should successfully encrypt data', () => {
|
|
9
9
|
const encrypted = crypto_util_1.DyFM_Crypto.encrypt(testData, testKey);
|
|
10
10
|
expect(encrypted).toBeDefined();
|
|
11
11
|
expect(typeof encrypted).toBe('string');
|
|
12
12
|
expect(encrypted).toMatch(/^[A-Za-z0-9\-_]+$/);
|
|
13
13
|
});
|
|
14
|
-
it('should encrypt different data with different results', () => {
|
|
14
|
+
it('| should encrypt different data with different results', () => {
|
|
15
15
|
const data1 = { id: 1 };
|
|
16
16
|
const data2 = { id: 2 };
|
|
17
17
|
const encrypted1 = crypto_util_1.DyFM_Crypto.encrypt(data1, testKey);
|
|
18
18
|
const encrypted2 = crypto_util_1.DyFM_Crypto.encrypt(data2, testKey);
|
|
19
19
|
expect(encrypted1).not.toEqual(encrypted2);
|
|
20
20
|
});
|
|
21
|
-
it('should throw DyFM_Error when encryption fails', () => {
|
|
21
|
+
it('| should throw DyFM_Error when encryption fails', () => {
|
|
22
22
|
// @ts-ignore - Testing invalid input
|
|
23
23
|
expect(() => crypto_util_1.DyFM_Crypto.encrypt(undefined, testKey)).toThrow();
|
|
24
24
|
});
|
|
25
|
-
it('should handle complex objects', () => {
|
|
25
|
+
it('| should handle complex objects', () => {
|
|
26
26
|
const complexData = {
|
|
27
27
|
id: 1,
|
|
28
28
|
name: 'test',
|
|
@@ -35,13 +35,40 @@ describe('DyFM_Crypto', () => {
|
|
|
35
35
|
const decrypted = crypto_util_1.DyFM_Crypto.decrypt(encrypted, testKey);
|
|
36
36
|
expect(decrypted).toEqual(complexData);
|
|
37
37
|
});
|
|
38
|
-
it('should
|
|
38
|
+
it('| should get the same result with the same input', () => {
|
|
39
|
+
const complexData = {
|
|
40
|
+
id: 2,
|
|
41
|
+
name: 'test',
|
|
42
|
+
nested: {
|
|
43
|
+
value: 'nested-value',
|
|
44
|
+
array: [1, 2, 3]
|
|
45
|
+
}
|
|
46
|
+
};
|
|
47
|
+
const expectedResult = JSON.stringify(complexData);
|
|
48
|
+
const encrypted = crypto_util_1.DyFM_Crypto.encrypt(complexData, testKey);
|
|
49
|
+
const decrypted = crypto_util_1.DyFM_Crypto.decrypt(encrypted, testKey);
|
|
50
|
+
const result = JSON.stringify(decrypted);
|
|
51
|
+
expect(result).toBe(expectedResult);
|
|
52
|
+
});
|
|
53
|
+
it('| should not effect the original object', () => {
|
|
54
|
+
const complexData = {
|
|
55
|
+
id: 1,
|
|
56
|
+
name: 'test',
|
|
57
|
+
nested: { value: 'nested-value', array: [1, 2, 3] }
|
|
58
|
+
};
|
|
59
|
+
const originalData = JSON.stringify(complexData);
|
|
60
|
+
const encrypted = crypto_util_1.DyFM_Crypto.encrypt(complexData, testKey);
|
|
61
|
+
const decrypted = crypto_util_1.DyFM_Crypto.decrypt(encrypted, testKey);
|
|
62
|
+
const result = JSON.stringify(decrypted);
|
|
63
|
+
expect(result).toBe(originalData);
|
|
64
|
+
});
|
|
65
|
+
it('| should handle arrays', () => {
|
|
39
66
|
const arrayData = [1, 'test', { nested: true }];
|
|
40
67
|
const encrypted = crypto_util_1.DyFM_Crypto.encrypt(arrayData, testKey);
|
|
41
68
|
const decrypted = crypto_util_1.DyFM_Crypto.decrypt(encrypted, testKey);
|
|
42
69
|
expect(decrypted).toEqual(arrayData);
|
|
43
70
|
});
|
|
44
|
-
it('should handle primitive values', () => {
|
|
71
|
+
it('| should handle primitive values', () => {
|
|
45
72
|
const stringData = 'test string';
|
|
46
73
|
const numberData = 42;
|
|
47
74
|
const booleanData = true;
|
|
@@ -53,38 +80,38 @@ describe('DyFM_Crypto', () => {
|
|
|
53
80
|
expect(crypto_util_1.DyFM_Crypto.decrypt(encryptedBoolean, testKey)).toBe(booleanData);
|
|
54
81
|
});
|
|
55
82
|
});
|
|
56
|
-
describe('decrypt', () => {
|
|
57
|
-
it('should successfully decrypt encrypted data', () => {
|
|
83
|
+
describe('| decrypt', () => {
|
|
84
|
+
it('| should successfully decrypt encrypted data', () => {
|
|
58
85
|
const encrypted = crypto_util_1.DyFM_Crypto.encrypt(testData, testKey);
|
|
59
86
|
const decrypted = crypto_util_1.DyFM_Crypto.decrypt(encrypted, testKey);
|
|
60
87
|
expect(decrypted).toEqual(testData);
|
|
61
88
|
});
|
|
62
|
-
it('should throw DyFM_Error when decryption fails', () => {
|
|
89
|
+
it('| should throw DyFM_Error when decryption fails', () => {
|
|
63
90
|
expect(() => crypto_util_1.DyFM_Crypto.decrypt('invalid-encrypted-data', testKey)).toThrow();
|
|
64
91
|
});
|
|
65
|
-
it('should throw DyFM_Error when using wrong key', () => {
|
|
92
|
+
it('| should throw DyFM_Error when using wrong key', () => {
|
|
66
93
|
const encrypted = crypto_util_1.DyFM_Crypto.encrypt(testData, testKey);
|
|
67
94
|
expect(() => crypto_util_1.DyFM_Crypto.decrypt(encrypted, 'wrong-key')).toThrow();
|
|
68
95
|
});
|
|
69
|
-
it('should throw DyFM_Error when encrypted data is modified', () => {
|
|
96
|
+
it('| should throw DyFM_Error when encrypted data is modified', () => {
|
|
70
97
|
const encrypted = crypto_util_1.DyFM_Crypto.encrypt(testData, testKey);
|
|
71
98
|
const modified = encrypted.slice(0, -1) + 'A';
|
|
72
99
|
expect(() => crypto_util_1.DyFM_Crypto.decrypt(modified, testKey)).toThrow();
|
|
73
100
|
});
|
|
74
101
|
});
|
|
75
|
-
describe('URL-safe encryption', () => {
|
|
76
|
-
it('should produce URL-safe strings', () => {
|
|
102
|
+
describe('| URL-safe encryption', () => {
|
|
103
|
+
it('| should produce URL-safe strings', () => {
|
|
77
104
|
const encrypted = crypto_util_1.DyFM_Crypto.encrypt(testData, testKey);
|
|
78
105
|
expect(encrypted).toMatch(/^[A-Za-z0-9\-_]+$/);
|
|
79
106
|
});
|
|
80
|
-
it('should work in HTTP headers', () => {
|
|
107
|
+
it('| should work in HTTP headers', () => {
|
|
81
108
|
const encrypted = crypto_util_1.DyFM_Crypto.encrypt(testData, testKey);
|
|
82
109
|
const header = `Bearer ${encrypted}`;
|
|
83
110
|
const extracted = header.split(' ')[1];
|
|
84
111
|
const decrypted = crypto_util_1.DyFM_Crypto.decrypt(extracted, testKey);
|
|
85
112
|
expect(decrypted).toEqual(testData);
|
|
86
113
|
});
|
|
87
|
-
it('should work in URLs', () => {
|
|
114
|
+
it('| should work in URLs', () => {
|
|
88
115
|
const encrypted = crypto_util_1.DyFM_Crypto.encrypt(testData, testKey);
|
|
89
116
|
const url = `https://example.com/api?token=${encrypted}`;
|
|
90
117
|
const params = new URLSearchParams(url.split('?')[1]);
|
|
@@ -93,21 +120,21 @@ describe('DyFM_Crypto', () => {
|
|
|
93
120
|
expect(decrypted).toEqual(testData);
|
|
94
121
|
});
|
|
95
122
|
});
|
|
96
|
-
describe('edge cases', () => {
|
|
97
|
-
describe('empty and null values', () => {
|
|
98
|
-
it('should handle empty objects', () => {
|
|
123
|
+
describe('| edge cases', () => {
|
|
124
|
+
describe('| empty and null values', () => {
|
|
125
|
+
it('| should handle empty objects', () => {
|
|
99
126
|
const emptyObj = {};
|
|
100
127
|
const encrypted = crypto_util_1.DyFM_Crypto.encrypt(emptyObj, testKey);
|
|
101
128
|
const decrypted = crypto_util_1.DyFM_Crypto.decrypt(encrypted, testKey);
|
|
102
129
|
expect(decrypted).toEqual(emptyObj);
|
|
103
130
|
});
|
|
104
|
-
it('should handle empty arrays', () => {
|
|
131
|
+
it('| should handle empty arrays', () => {
|
|
105
132
|
const emptyArr = [];
|
|
106
133
|
const encrypted = crypto_util_1.DyFM_Crypto.encrypt(emptyArr, testKey);
|
|
107
134
|
const decrypted = crypto_util_1.DyFM_Crypto.decrypt(encrypted, testKey);
|
|
108
135
|
expect(decrypted).toEqual(emptyArr);
|
|
109
136
|
});
|
|
110
|
-
it('should handle null values in objects', () => {
|
|
137
|
+
it('| should handle null values in objects', () => {
|
|
111
138
|
const dataWithNull = {
|
|
112
139
|
id: 1,
|
|
113
140
|
name: null,
|
|
@@ -117,7 +144,7 @@ describe('DyFM_Crypto', () => {
|
|
|
117
144
|
const decrypted = crypto_util_1.DyFM_Crypto.decrypt(encrypted, testKey);
|
|
118
145
|
expect(decrypted).toEqual(dataWithNull);
|
|
119
146
|
});
|
|
120
|
-
it('should handle undefined values in objects', () => {
|
|
147
|
+
it('| should handle undefined values in objects', () => {
|
|
121
148
|
const dataWithUndefined = {
|
|
122
149
|
id: 1,
|
|
123
150
|
name: undefined,
|
|
@@ -128,38 +155,401 @@ describe('DyFM_Crypto', () => {
|
|
|
128
155
|
expect(decrypted).toEqual({ id: 1, nested: {} });
|
|
129
156
|
});
|
|
130
157
|
});
|
|
131
|
-
describe('key edge cases', () => {
|
|
132
|
-
it('should handle very long keys', () => {
|
|
158
|
+
describe('| key edge cases', () => {
|
|
159
|
+
it('| should handle very long keys', () => {
|
|
133
160
|
const longKey = 'a'.repeat(1000);
|
|
134
161
|
const encrypted = crypto_util_1.DyFM_Crypto.encrypt(testData, longKey);
|
|
135
162
|
const decrypted = crypto_util_1.DyFM_Crypto.decrypt(encrypted, longKey);
|
|
136
163
|
expect(decrypted).toEqual(testData);
|
|
137
164
|
});
|
|
138
|
-
it('should handle empty key', () => {
|
|
165
|
+
it('| should handle empty key', () => {
|
|
139
166
|
expect(() => crypto_util_1.DyFM_Crypto.encrypt(testData, '')).toThrow();
|
|
140
167
|
});
|
|
141
|
-
it('should handle whitespace-only keys', () => {
|
|
168
|
+
it('| should handle whitespace-only keys', () => {
|
|
142
169
|
expect(() => crypto_util_1.DyFM_Crypto.encrypt(testData, ' ')).toThrow();
|
|
143
170
|
});
|
|
144
171
|
});
|
|
145
|
-
describe('encrypted data manipulation', () => {
|
|
146
|
-
it('should detect when encrypted data is truncated', () => {
|
|
172
|
+
describe('| encrypted data manipulation', () => {
|
|
173
|
+
it('| should detect when encrypted data is truncated', () => {
|
|
147
174
|
const encrypted = crypto_util_1.DyFM_Crypto.encrypt(testData, testKey);
|
|
148
175
|
const truncated = encrypted.slice(0, -10);
|
|
149
176
|
expect(() => crypto_util_1.DyFM_Crypto.decrypt(truncated, testKey)).toThrow();
|
|
150
177
|
});
|
|
151
|
-
it('should detect when encrypted data is extended', () => {
|
|
178
|
+
it('| should detect when encrypted data is extended', () => {
|
|
152
179
|
const encrypted = crypto_util_1.DyFM_Crypto.encrypt(testData, testKey);
|
|
153
180
|
const extended = encrypted + 'A'.repeat(10);
|
|
154
181
|
expect(() => crypto_util_1.DyFM_Crypto.decrypt(extended, testKey)).toThrow();
|
|
155
182
|
});
|
|
156
|
-
it('should detect when encrypted data is modified in the middle', () => {
|
|
183
|
+
it('| should detect when encrypted data is modified in the middle', () => {
|
|
157
184
|
const encrypted = crypto_util_1.DyFM_Crypto.encrypt(testData, testKey);
|
|
158
185
|
const midPoint = Math.floor(encrypted.length / 2);
|
|
159
186
|
const modified = encrypted.slice(0, midPoint) + 'X' + encrypted.slice(midPoint + 1);
|
|
160
187
|
expect(() => crypto_util_1.DyFM_Crypto.decrypt(modified, testKey)).toThrow();
|
|
161
188
|
});
|
|
162
189
|
});
|
|
190
|
+
describe('| JSON handling edge cases', () => {
|
|
191
|
+
it('| should handle double-stringified JSON data correctly', () => {
|
|
192
|
+
const testData = {
|
|
193
|
+
username: 'Itharen',
|
|
194
|
+
password: 'asdasd',
|
|
195
|
+
roles: [],
|
|
196
|
+
permissions: [],
|
|
197
|
+
activeSubscriptions: [],
|
|
198
|
+
clientUserIds: {},
|
|
199
|
+
oauth2Data: {}
|
|
200
|
+
};
|
|
201
|
+
// Simulate double stringification
|
|
202
|
+
const doubleStringified = JSON.stringify(JSON.stringify(testData));
|
|
203
|
+
const encrypted = crypto_util_1.DyFM_Crypto.encrypt(doubleStringified, testKey);
|
|
204
|
+
const decrypted = crypto_util_1.DyFM_Crypto.decrypt(encrypted, testKey);
|
|
205
|
+
// Should be able to parse the decrypted data back to the original object
|
|
206
|
+
const parsed = JSON.parse(decrypted);
|
|
207
|
+
expect(parsed).toEqual(testData);
|
|
208
|
+
});
|
|
209
|
+
it('| should handle character-by-character JSON data correctly', () => {
|
|
210
|
+
// Create a character-by-character object like in the example
|
|
211
|
+
const charByCharData = {
|
|
212
|
+
'0': '{',
|
|
213
|
+
'1': '"',
|
|
214
|
+
'2': '_',
|
|
215
|
+
'3': '_',
|
|
216
|
+
'4': 'c',
|
|
217
|
+
'5': 'r',
|
|
218
|
+
'6': 'e',
|
|
219
|
+
'7': 'a',
|
|
220
|
+
'8': 't',
|
|
221
|
+
'9': 'e',
|
|
222
|
+
'10': 'd',
|
|
223
|
+
'11': '"',
|
|
224
|
+
'12': ':',
|
|
225
|
+
'13': '"',
|
|
226
|
+
'14': '2',
|
|
227
|
+
'15': '0',
|
|
228
|
+
'16': '2',
|
|
229
|
+
'17': '5',
|
|
230
|
+
'18': '-',
|
|
231
|
+
'19': '0',
|
|
232
|
+
'20': '5',
|
|
233
|
+
'21': '-',
|
|
234
|
+
'22': '1',
|
|
235
|
+
'23': '3',
|
|
236
|
+
'24': 'T',
|
|
237
|
+
'25': '1',
|
|
238
|
+
'26': '0',
|
|
239
|
+
'27': ':',
|
|
240
|
+
'28': '4',
|
|
241
|
+
'29': '0',
|
|
242
|
+
'30': ':',
|
|
243
|
+
'31': '4',
|
|
244
|
+
'32': '4',
|
|
245
|
+
'33': '.',
|
|
246
|
+
'34': '7',
|
|
247
|
+
'35': '6',
|
|
248
|
+
'36': '0',
|
|
249
|
+
'37': 'Z',
|
|
250
|
+
'38': '"',
|
|
251
|
+
'39': ',',
|
|
252
|
+
'40': '"',
|
|
253
|
+
'41': '_',
|
|
254
|
+
'42': '_',
|
|
255
|
+
'43': 'l',
|
|
256
|
+
'44': 'a',
|
|
257
|
+
'45': 's',
|
|
258
|
+
'46': 't',
|
|
259
|
+
'47': 'M',
|
|
260
|
+
'48': 'o',
|
|
261
|
+
'49': 'd',
|
|
262
|
+
'50': 'i',
|
|
263
|
+
'51': 'f',
|
|
264
|
+
'52': 'i',
|
|
265
|
+
'53': 'e',
|
|
266
|
+
'54': 'd',
|
|
267
|
+
'55': '"',
|
|
268
|
+
'56': ':',
|
|
269
|
+
'57': '"',
|
|
270
|
+
'58': '2',
|
|
271
|
+
'59': '0',
|
|
272
|
+
'60': '2',
|
|
273
|
+
'61': '5',
|
|
274
|
+
'62': '-',
|
|
275
|
+
'63': '0',
|
|
276
|
+
'64': '5',
|
|
277
|
+
'65': '-',
|
|
278
|
+
'66': '1',
|
|
279
|
+
'67': '3',
|
|
280
|
+
'68': 'T',
|
|
281
|
+
'69': '1',
|
|
282
|
+
'70': '0',
|
|
283
|
+
'71': ':',
|
|
284
|
+
'72': '4',
|
|
285
|
+
'73': '0',
|
|
286
|
+
'74': ':',
|
|
287
|
+
'75': '4',
|
|
288
|
+
'76': '4',
|
|
289
|
+
'77': '.',
|
|
290
|
+
'78': '7',
|
|
291
|
+
'79': '6',
|
|
292
|
+
'80': '0',
|
|
293
|
+
'81': 'Z',
|
|
294
|
+
'82': '"',
|
|
295
|
+
'83': ',',
|
|
296
|
+
'84': '"',
|
|
297
|
+
'85': '_',
|
|
298
|
+
'86': '_',
|
|
299
|
+
'87': 'v',
|
|
300
|
+
'88': '"',
|
|
301
|
+
'89': ':',
|
|
302
|
+
'90': '0',
|
|
303
|
+
'91': ',',
|
|
304
|
+
'92': '"',
|
|
305
|
+
'93': 'u',
|
|
306
|
+
'94': 's',
|
|
307
|
+
'95': 'e',
|
|
308
|
+
'96': 'r',
|
|
309
|
+
'97': 'n',
|
|
310
|
+
'98': 'a',
|
|
311
|
+
'99': 'm',
|
|
312
|
+
'100': 'e',
|
|
313
|
+
'101': '"',
|
|
314
|
+
'102': ':',
|
|
315
|
+
'103': '"',
|
|
316
|
+
'104': 'I',
|
|
317
|
+
'105': 't',
|
|
318
|
+
'106': 'h',
|
|
319
|
+
'107': 'a',
|
|
320
|
+
'108': 'r',
|
|
321
|
+
'109': 'e',
|
|
322
|
+
'110': 'n',
|
|
323
|
+
'111': '"',
|
|
324
|
+
'112': ',',
|
|
325
|
+
'113': '"',
|
|
326
|
+
'114': 'p',
|
|
327
|
+
'115': 'r',
|
|
328
|
+
'116': 'e',
|
|
329
|
+
'117': 'v',
|
|
330
|
+
'118': 'i',
|
|
331
|
+
'119': 'o',
|
|
332
|
+
'120': 'u',
|
|
333
|
+
'121': 's',
|
|
334
|
+
'122': 'E',
|
|
335
|
+
'123': 'm',
|
|
336
|
+
'124': 'a',
|
|
337
|
+
'125': 'i',
|
|
338
|
+
'126': 'l',
|
|
339
|
+
'127': 's',
|
|
340
|
+
'128': '"',
|
|
341
|
+
'129': ':',
|
|
342
|
+
'130': '[',
|
|
343
|
+
'131': ']',
|
|
344
|
+
'132': ',',
|
|
345
|
+
'133': '"',
|
|
346
|
+
'134': 'p',
|
|
347
|
+
'135': 'a',
|
|
348
|
+
'136': 's',
|
|
349
|
+
'137': 's',
|
|
350
|
+
'138': 'w',
|
|
351
|
+
'139': 'o',
|
|
352
|
+
'140': 'r',
|
|
353
|
+
'141': 'd',
|
|
354
|
+
'142': '"',
|
|
355
|
+
'143': ':',
|
|
356
|
+
'144': '"',
|
|
357
|
+
'145': 'a',
|
|
358
|
+
'146': 's',
|
|
359
|
+
'147': 'd',
|
|
360
|
+
'148': 'a',
|
|
361
|
+
'149': 's',
|
|
362
|
+
'150': 'd',
|
|
363
|
+
'151': '"',
|
|
364
|
+
'152': ',',
|
|
365
|
+
'153': '"',
|
|
366
|
+
'154': 'r',
|
|
367
|
+
'155': 'o',
|
|
368
|
+
'156': 'l',
|
|
369
|
+
'157': 'e',
|
|
370
|
+
'158': 's',
|
|
371
|
+
'159': '"',
|
|
372
|
+
'160': ':',
|
|
373
|
+
'161': '[',
|
|
374
|
+
'162': ']',
|
|
375
|
+
'163': ',',
|
|
376
|
+
'164': '"',
|
|
377
|
+
'165': 'p',
|
|
378
|
+
'166': 'e',
|
|
379
|
+
'167': 'r',
|
|
380
|
+
'168': 'm',
|
|
381
|
+
'169': 'i',
|
|
382
|
+
'170': 's',
|
|
383
|
+
'171': 's',
|
|
384
|
+
'172': 'i',
|
|
385
|
+
'173': 'o',
|
|
386
|
+
'174': 'n',
|
|
387
|
+
'175': 's',
|
|
388
|
+
'176': '"',
|
|
389
|
+
'177': ':',
|
|
390
|
+
'178': '[',
|
|
391
|
+
'179': ']',
|
|
392
|
+
'180': ',',
|
|
393
|
+
'181': '"',
|
|
394
|
+
'182': 'a',
|
|
395
|
+
'183': 'c',
|
|
396
|
+
'184': 't',
|
|
397
|
+
'185': 'i',
|
|
398
|
+
'186': 'v',
|
|
399
|
+
'187': 'e',
|
|
400
|
+
'188': 'S',
|
|
401
|
+
'189': 'u',
|
|
402
|
+
'190': 'b',
|
|
403
|
+
'191': 's',
|
|
404
|
+
'192': 'c',
|
|
405
|
+
'193': 'r',
|
|
406
|
+
'194': 'i',
|
|
407
|
+
'195': 'p',
|
|
408
|
+
'196': 't',
|
|
409
|
+
'197': 'i',
|
|
410
|
+
'198': 'o',
|
|
411
|
+
'199': 'n',
|
|
412
|
+
'200': 's',
|
|
413
|
+
'201': '"',
|
|
414
|
+
'202': ':',
|
|
415
|
+
'203': '[',
|
|
416
|
+
'204': ']',
|
|
417
|
+
'205': ',',
|
|
418
|
+
'206': '"',
|
|
419
|
+
'207': 'c',
|
|
420
|
+
'208': 'l',
|
|
421
|
+
'209': 'i',
|
|
422
|
+
'210': 'e',
|
|
423
|
+
'211': 'n',
|
|
424
|
+
'212': 't',
|
|
425
|
+
'213': 'U',
|
|
426
|
+
'214': 's',
|
|
427
|
+
'215': 'e',
|
|
428
|
+
'216': 'r',
|
|
429
|
+
'217': 'I',
|
|
430
|
+
'218': 'd',
|
|
431
|
+
'219': 's',
|
|
432
|
+
'220': '"',
|
|
433
|
+
'221': ':',
|
|
434
|
+
'222': '{',
|
|
435
|
+
'223': '}',
|
|
436
|
+
'224': ',',
|
|
437
|
+
'225': '"',
|
|
438
|
+
'226': 'o',
|
|
439
|
+
'227': 'a',
|
|
440
|
+
'228': 'u',
|
|
441
|
+
'229': 't',
|
|
442
|
+
'230': 'h',
|
|
443
|
+
'231': '2',
|
|
444
|
+
'232': 'D',
|
|
445
|
+
'233': 'a',
|
|
446
|
+
'234': 't',
|
|
447
|
+
'235': 'a',
|
|
448
|
+
'236': '"',
|
|
449
|
+
'237': ':',
|
|
450
|
+
'238': '{',
|
|
451
|
+
'239': '}',
|
|
452
|
+
'240': '}'
|
|
453
|
+
};
|
|
454
|
+
const encrypted = crypto_util_1.DyFM_Crypto.encrypt(charByCharData, testKey);
|
|
455
|
+
const decrypted = crypto_util_1.DyFM_Crypto.decrypt(encrypted, testKey);
|
|
456
|
+
// Should be able to parse the decrypted data back to the original object
|
|
457
|
+
expect(decrypted).toEqual(charByCharData);
|
|
458
|
+
});
|
|
459
|
+
});
|
|
460
|
+
describe('| cross-environment consistency', () => {
|
|
461
|
+
it('| should produce same encrypted output for same input across different environments', () => {
|
|
462
|
+
const testData = {
|
|
463
|
+
id: 1,
|
|
464
|
+
name: 'test',
|
|
465
|
+
timestamp: '2024-03-20T10:00:00Z'
|
|
466
|
+
};
|
|
467
|
+
const key = 'test-secret-key-123';
|
|
468
|
+
// Simulate different environments by creating new instances
|
|
469
|
+
const encrypted1 = crypto_util_1.DyFM_Crypto.encrypt(testData, key);
|
|
470
|
+
const encrypted2 = crypto_util_1.DyFM_Crypto.encrypt(testData, key);
|
|
471
|
+
expect(encrypted1).toBe(encrypted2);
|
|
472
|
+
expect(crypto_util_1.DyFM_Crypto.decrypt(encrypted1, key)).toEqual(testData);
|
|
473
|
+
expect(crypto_util_1.DyFM_Crypto.decrypt(encrypted2, key)).toEqual(testData);
|
|
474
|
+
});
|
|
475
|
+
it('| should maintain encryption consistency with different data types', () => {
|
|
476
|
+
const testCases = [
|
|
477
|
+
{ data: { id: 1 }, key: 'key1' },
|
|
478
|
+
{ data: 'string data', key: 'key2' },
|
|
479
|
+
{ data: [1, 2, 3], key: 'key3' },
|
|
480
|
+
{ data: { nested: { value: true } }, key: 'key4' }
|
|
481
|
+
];
|
|
482
|
+
testCases.forEach(({ data, key }) => {
|
|
483
|
+
const encrypted1 = crypto_util_1.DyFM_Crypto.encrypt(data, key);
|
|
484
|
+
const encrypted2 = crypto_util_1.DyFM_Crypto.encrypt(data, key);
|
|
485
|
+
expect(encrypted1).toBe(encrypted2);
|
|
486
|
+
});
|
|
487
|
+
});
|
|
488
|
+
});
|
|
489
|
+
describe('| database persistence', () => {
|
|
490
|
+
it('| should successfully encrypt and decrypt data after database storage simulation', () => {
|
|
491
|
+
const originalData = {
|
|
492
|
+
id: 1,
|
|
493
|
+
name: 'test user',
|
|
494
|
+
email: 'test@example.com',
|
|
495
|
+
settings: {
|
|
496
|
+
theme: 'dark',
|
|
497
|
+
notifications: true
|
|
498
|
+
}
|
|
499
|
+
};
|
|
500
|
+
const key = 'db-storage-key';
|
|
501
|
+
// Simulate database storage and retrieval
|
|
502
|
+
const encrypted = crypto_util_1.DyFM_Crypto.encrypt(originalData, key);
|
|
503
|
+
const storedData = encrypted; // Simulating database storage
|
|
504
|
+
const retrievedData = storedData; // Simulating database retrieval
|
|
505
|
+
const decrypted = crypto_util_1.DyFM_Crypto.decrypt(retrievedData, key);
|
|
506
|
+
expect(decrypted).toEqual(originalData);
|
|
507
|
+
});
|
|
508
|
+
it('| should handle multiple encryption/decryption cycles for database operations', () => {
|
|
509
|
+
const userData = {
|
|
510
|
+
id: 1,
|
|
511
|
+
name: 'test user',
|
|
512
|
+
lastLogin: new Date().toISOString(),
|
|
513
|
+
preferences: {
|
|
514
|
+
language: 'en',
|
|
515
|
+
timezone: 'UTC'
|
|
516
|
+
}
|
|
517
|
+
};
|
|
518
|
+
const key = 'persistent-key';
|
|
519
|
+
// Simulate multiple database operations
|
|
520
|
+
const encrypted1 = crypto_util_1.DyFM_Crypto.encrypt(userData, key);
|
|
521
|
+
const decrypted1 = crypto_util_1.DyFM_Crypto.decrypt(encrypted1, key);
|
|
522
|
+
// Simulate data update
|
|
523
|
+
const updatedData = {
|
|
524
|
+
...decrypted1,
|
|
525
|
+
lastLogin: new Date().toISOString()
|
|
526
|
+
};
|
|
527
|
+
const encrypted2 = crypto_util_1.DyFM_Crypto.encrypt(updatedData, key);
|
|
528
|
+
const decrypted2 = crypto_util_1.DyFM_Crypto.decrypt(encrypted2, key);
|
|
529
|
+
expect(decrypted1).toEqual(userData);
|
|
530
|
+
expect(decrypted2).toEqual(updatedData);
|
|
531
|
+
expect(decrypted2.lastLogin).not.toBe(userData.lastLogin);
|
|
532
|
+
});
|
|
533
|
+
it('| should maintain data integrity through multiple database operations', () => {
|
|
534
|
+
const sensitiveData = {
|
|
535
|
+
id: 1,
|
|
536
|
+
password: 'hashed-password-123',
|
|
537
|
+
securityQuestions: [
|
|
538
|
+
{ question: 'What is your pet name?', answer: 'Fluffy' },
|
|
539
|
+
{ question: 'Where were you born?', answer: 'New York' }
|
|
540
|
+
]
|
|
541
|
+
};
|
|
542
|
+
const key = 'sensitive-data-key';
|
|
543
|
+
// Simulate multiple database operations with the same data
|
|
544
|
+
const encrypted1 = crypto_util_1.DyFM_Crypto.encrypt(sensitiveData, key);
|
|
545
|
+
const decrypted1 = crypto_util_1.DyFM_Crypto.decrypt(encrypted1, key);
|
|
546
|
+
const encrypted2 = crypto_util_1.DyFM_Crypto.encrypt(decrypted1, key);
|
|
547
|
+
const decrypted2 = crypto_util_1.DyFM_Crypto.decrypt(encrypted2, key);
|
|
548
|
+
expect(decrypted1).toEqual(sensitiveData);
|
|
549
|
+
expect(decrypted2).toEqual(sensitiveData);
|
|
550
|
+
expect(encrypted1).toBe(encrypted2); // Different encryption instances
|
|
551
|
+
});
|
|
552
|
+
});
|
|
163
553
|
});
|
|
164
554
|
});
|
|
165
555
|
//# sourceMappingURL=crypto.util.spec.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"crypto.util.spec.js","sourceRoot":"","sources":["../../../../src/_modules/crypto/_collections/crypto.util.spec.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"crypto.util.spec.js","sourceRoot":"","sources":["../../../../src/_modules/crypto/_collections/crypto.util.spec.ts"],"names":[],"mappings":"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G;oBACR,IAAI,EAAE,GAAG;oBACT,IAAI,EAAE,GAAG;oBACT,IAAI,EAAE,GAAG;oBACT,IAAI,EAAE,GAAG;oBACT,IAAI,EAAE,GAAG;oBACT,IAAI,EAAE,GAAG;oBACT,IAAI,EAAE,GAAG;oBACT,IAAI,EAAE,GAAG;oBACT,IAAI,EAAE,GAAG;oBACT,IAAI,EAAE,GAAG;oBACT,IAAI,EAAE,GAAG;oBACT,IAAI,EAAE,GAAG;oBACT,IAAI,EAAE,GAAG;oBACT,IAAI,EAAE,GAAG;oBACT,IAAI,EAAE,GAAG;oBACT,IAAI,EAAE,GAAG;oBACT,IAAI,EAAE,GAAG;oBACT,IAAI,EAAE,GAAG;oBACT,IAAI,EAAE,GAAG;oBACT,IAAI,EAAE,GAAG;oBACT,IAAI,EAAE,GAAG;oBACT,IAAI,EAAE,GAAG;oBACT,IAAI,EAAE,GAAG;oBACT,IAAI,EAAE,GAAG;oBACT,IAAI,EAAE,GAAG;oBACT,IAAI,EAAE,GAAG;oBACT,IAAI,EAAE,GAAG;oBACT,IAAI,EAAE,GAAG;oBACT,IAAI,EAAE,GAAG;oBACT,IAAI,EAAE,GAAG;oBACT,IAAI,EAAE,GAAG;oBACT,IAAI,EAAE,GAAG;oBACT,IAAI,EAAE,GAAG;oBACT,IAAI,EAAE,GAAG;oBACT,IAAI,EAAE,GAAG;oBACT,IAAI,EAAE,GAAG;oBACT,IAAI,EAAE,GAAG;oBACT,IAAI,EAAE,GAAG;oBACT,IAAI,EAAE,GAAG;oBACT,IAAI,EAAE,GAAG;oBACT,IAAI,EAAE,GAAG;oBACT,IAAI,EAAE,GAAG;oBACT,IAAI,EAAE,GAAG;oBACT,IAAI,EAAE,GAAG;oBACT,IAAI,EAAE,GAAG;oBACT,IAAI,EAAE,GAAG;oBACT,IAAI,EAAE,GAAG;oBACT,IAAI,EAAE,GAAG;oBACT,IAAI,EAAE,GAAG;oBACT,IAAI,EAAE,GAAG;oBACT,IAAI,EAAE,GAAG;oBACT,IAAI,EAAE,GAAG;oBACT,IAAI,EAAE,GAAG;oBACT,IAAI,EAAE,GAAG;oBACT,IAAI,EAAE,GAAG;oBACT,IAAI,EAAE,GAAG;oBACT,IAAI,EAAE,GAAG;oBACT,IAAI,EAAE,GAAG;oBACT,IAAI,EAAE,GAAG;oBACT,IAAI,EAAE,GAAG;oBACT,IAAI,EAAE,GAAG;oBACT,IAAI,EAAE,GAAG;oBACT,IAAI,EAAE,GAAG;oBACT,IAAI,EAAE,GAAG;oBACT,IAAI,EAAE,GAAG;oBACT,IAAI,EAAE,GAAG;oBACT,IAAI,EAAE,GAAG;oBACT,IAAI,EAAE,GAAG;oBACT,IAAI,EAAE,GAAG;oBACT,IAAI,EAAE,GAAG;oBACT,IAAI,EAAE,GAAG;oBACT,IAAI,EAAE,GAAG;oBACT,IAAI,EAAE,GAAG;oBACT,IAAI,EAAE,GAAG;oBACT,IAAI,EAAE,GAAG;oBACT,IAAI,EAAE,GAAG;oBACT,IAAI,EAAE,GAAG;oBACT,IAAI,EAAE,GAAG;oBACT,IAAI,EAAE,GAAG;oBACT,IAAI,EAAE,GAAG;oBACT,IAAI,EAAE,GAAG;oBACT,IAAI,EAAE,GAAG;oBACT,IAAI,EAAE,GAAG;oBACT,IAAI,EAAE,GAAG;oBACT,IAAI,EAAE,GAAG;oBACT,IAAI,EAAE,GAAG;oBACT,IAAI,EAAE,GAAG;oBACT,IAAI,EAAE,GAAG;oBACT,IAAI,EAAE,GAAG;oBACT,IAAI,EAAE,GAAG;oBACT,KAAK,EAAE,GAAG;oBACV,KAAK,EAAE,GAAG;oBACV,KAAK,EAAE,GAAG;oBACV,KAAK,EAAE,GAAG;oBACV,KAAK,EAAE,GAAG;oBACV,KAAK,EAAE,GAAG;oBACV,KAAK,EAAE,GAAG;oBACV,KAAK,EAAE,GAAG;oBACV,KAAK,EAAE,GAAG;oBACV,KAAK,EAAE,GAAG;oBACV,KAAK,EAAE,GAAG;oBACV,KAAK,EAAE,GAAG;oBACV,KAAK,EAAE,GAAG;oBACV,KAAK,EAAE,GAAG;oBACV,KAAK,EAAE,GAAG;oBACV,KAAK,EAAE,GAAG;oBACV,KAAK,EAAE,GAAG;oBACV,KAAK,EAAE,GAAG;oBACV,KAAK,EAAE,GAAG;oBACV,KAAK,EAAE,GAAG;oBACV,KAAK,EAAE,GAAG;oBACV,KAAK,EAAE,GAAG;oBACV,KAAK,EAAE,GAAG;oBACV,KAAK,EAAE,GAAG;oBACV,KAAK,EAAE,GAAG;oBACV,KAAK,EAAE,GAAG;oBACV,KAAK,EAAE,GAAG;oBACV,KAAK,EAAE,GAAG;oBACV,KAAK,EAAE,GAAG;oBACV,KAAK,EAAE,GAAG;oBACV,KAAK,EAAE,GAAG;oBACV,KAAK,EAAE,GAAG;oBACV,KAAK,EAAE,GAAG;oBACV,KAAK,EAAE,GAAG;oBACV,KAAK,EAAE,GAAG;oBACV,KAAK,EAAE,GAAG;oBACV,KAAK,EAAE,GAAG;oBACV,KAAK,EAAE,GAAG;oBACV,KAAK,EAAE,GAAG;oBACV,KAAK,EAAE,GAAG;oBACV,KAAK,EAAE,GAAG;oBACV,KAAK,EAAE,GAAG;oBACV,KAAK,EAAE,GAAG;oBACV,KAAK,EAAE,GAAG;oBACV,KAAK,EAAE,GAAG;oBACV,KAAK,EAAE,GAAG;oBACV,KAAK,EAAE,GAAG;oBACV,KAAK,EAAE,GAAG;oBACV,KAAK,EAAE,GAAG;oBACV,KAAK,EAAE,GAAG;oBACV,KAAK,EAAE,GAAG;oBACV,KAAK,EAAE,GAAG;oBACV,KAAK,EAAE,GAAG;oBACV,KAAK,EAAE,GAAG;oBACV,KAAK,EAAE,GAAG;oBACV,KAAK,EAAE,GAAG;oBACV,KAAK,EAAE,GAAG;oBACV,KAAK,EAAE,GAAG;oBACV,KAAK,EAAE,GAAG;oBACV,KAAK,EAAE,GAAG;oBACV,KAAK,EAAE,GAAG;oBACV,KAAK,EAAE,GAAG;oBACV,KAAK,EAAE,GAAG;oBACV,KAAK,EAAE,GAAG;oBACV,KAAK,EAAE,GAAG;oBACV,KAAK,EAAE,GAAG;oBACV,KAAK,EAAE,GAAG;oBACV,KAAK,EAAE,GAAG;oBACV,KAAK,EAAE,GAAG;oBACV,KAAK,EAAE,GAAG;oBACV,KAAK,EAAE,GAAG;oBACV,KAAK,EAAE,GAAG;oBACV,KAAK,EAAE,GAAG;oBACV,KAAK,EAAE,GAAG;oBACV,KAAK,EAAE,GAAG;oBACV,KAAK,EAAE,GAAG;oBACV,KAAK,EAAE,GAAG;oBACV,KAAK,EAAE,GAAG;oBACV,KAAK,EAAE,GAAG;oBACV,KAAK,EAAE,GAAG;oBACV,KAAK,EAAE,GAAG;oBACV,KAAK,EAAE,GAAG;oBACV,KAAK,EAAE,GAAG;oBACV,KAAK,EAAE,GAAG;oBACV,KAAK,EAAE,GAAG;oBACV,KAAK,EAAE,GAAG;oBACV,KAAK,EAAE,GAAG;oBACV,KAAK,EAAE,GAAG;oBACV,KAAK,EAAE,GAAG;oBACV,KAAK,EAAE,GAAG;oBACV,KAAK,EAAE,GAAG;oBACV,KAAK,EAAE,GAAG;oBACV,KAAK,EAAE,GAAG;oBACV,KAAK,EAAE,GAAG;oBACV,KAAK,EAAE,GAAG;oBACV,KAAK,EAAE,GAAG;oBACV,KAAK,EAAE,GAAG;oBACV,KAAK,EAAE,GAAG;oBACV,KAAK,EAAE,GAAG;oBACV,KAAK,EAAE,GAAG;oBACV,KAAK,EAAE,GAAG;oBACV,KAAK,EAAE,GAAG;oBACV,KAAK,EAAE,GAAG;oBACV,KAAK,EAAE,GAAG;oBACV,KAAK,EAAE,GAAG;oBACV,KAAK,EAAE,GAAG;oBACV,KAAK,EAAE,GAAG;oBACV,KAAK,EAAE,GAAG;oBACV,KAAK,EAAE,GAAG;oBACV,KAAK,EAAE,GAAG;oBACV,KAAK,EAAE,GAAG;oBACV,KAAK,EAAE,GAAG;oBACV,KAAK,EAAE,GAAG;oBACV,KAAK,EAAE,GAAG;oBACV,KAAK,EAAE,GAAG;oBACV,KAAK,EAAE,GAAG;oBACV,KAAK,EAAE,GAAG;oBACV,KAAK,EAAE,GAAG;oBACV,KAAK,EAAE,GAAG;oBACV,KAAK,EAAE,GAAG;oBACV,KAAK,EAAE,GAAG;oBACV,KAAK,EAAE,GAAG;oBACV,KAAK,EAAE,GAAG;oBACV,KAAK,EAAE,GAAG;oBACV,KAAK,EAAE,GAAG;oBACV,KAAK,EAAE,GAAG;oBACV,KAAK,EAAE,GAAG;oBACV,KAAK,EAAE,GAAG;oBACV,KAAK,EAAE,GAAG;oBACV,KAAK,EAAE,GAAG;oBACV,KAAK,EAAE,GAAG;oBACV,KAAK,EAAE,GAAG;oBACV,KAAK,EAAE,GAAG;oBACV,KAAK,EAAE,GAAG;oBACV,KAAK,EAAE,GAAG;oBACV,KAAK,EAAE,GAAG;oBACV,KAAK,EAAE,GAAG;oBACV,KAAK,EAAE,GAAG;oBACV,KAAK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"}
|