@digitaldefiance/ecies-lib 3.0.7 → 3.7.2
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/README.md +8 -0
- package/package.json +4 -3
- package/src/builders/ecies-builder.js +5 -9
- package/src/builders/ecies-builder.js.map +1 -1
- package/src/builders/index.js +2 -5
- package/src/builders/index.js.map +1 -1
- package/src/builders/member-builder.js +12 -16
- package/src/builders/member-builder.js.map +1 -1
- package/src/constants.d.ts +14 -0
- package/src/constants.d.ts.map +1 -1
- package/src/constants.js +150 -74
- package/src/constants.js.map +1 -1
- package/src/core/errors/crypto-error.js +10 -14
- package/src/core/errors/crypto-error.js.map +1 -1
- package/src/core/index.js +2 -5
- package/src/core/index.js.map +1 -1
- package/src/core/types/result.js +1 -5
- package/src/core/types/result.js.map +1 -1
- package/src/email-string.js +8 -13
- package/src/email-string.js.map +1 -1
- package/src/enumerations/disposed-error-type.d.ts +12 -0
- package/src/enumerations/disposed-error-type.d.ts.map +1 -0
- package/src/enumerations/disposed-error-type.js +13 -0
- package/src/enumerations/disposed-error-type.js.map +1 -0
- package/src/enumerations/ecies-encryption-type.js +20 -27
- package/src/enumerations/ecies-encryption-type.js.map +1 -1
- package/src/enumerations/ecies-error-type.js +2 -5
- package/src/enumerations/ecies-error-type.js.map +1 -1
- package/src/enumerations/ecies-string-key.d.ts +19 -1
- package/src/enumerations/ecies-string-key.d.ts.map +1 -1
- package/src/enumerations/ecies-string-key.js +21 -5
- package/src/enumerations/ecies-string-key.js.map +1 -1
- package/src/enumerations/guid-brand-type.d.ts +27 -0
- package/src/enumerations/guid-brand-type.d.ts.map +1 -0
- package/src/enumerations/guid-brand-type.js +28 -0
- package/src/enumerations/guid-brand-type.js.map +1 -0
- package/src/enumerations/guid-error-type.d.ts +7 -0
- package/src/enumerations/guid-error-type.d.ts.map +1 -0
- package/src/enumerations/guid-error-type.js +8 -0
- package/src/enumerations/guid-error-type.js.map +1 -0
- package/src/enumerations/id-provider-error-type.d.ts +43 -0
- package/src/enumerations/id-provider-error-type.d.ts.map +1 -0
- package/src/enumerations/id-provider-error-type.js +44 -0
- package/src/enumerations/id-provider-error-type.js.map +1 -0
- package/src/enumerations/index.d.ts +3 -0
- package/src/enumerations/index.d.ts.map +1 -1
- package/src/enumerations/index.js +15 -15
- package/src/enumerations/index.js.map +1 -1
- package/src/enumerations/invalid-email-type.js +2 -5
- package/src/enumerations/invalid-email-type.js.map +1 -1
- package/src/enumerations/length-encoding-type.js +2 -5
- package/src/enumerations/length-encoding-type.js.map +1 -1
- package/src/enumerations/length-error-type.js +2 -5
- package/src/enumerations/length-error-type.js.map +1 -1
- package/src/enumerations/member-error-type.js +3 -6
- package/src/enumerations/member-error-type.js.map +1 -1
- package/src/enumerations/member-type.js +3 -6
- package/src/enumerations/member-type.js.map +1 -1
- package/src/enumerations/password-login-error-type.js +2 -5
- package/src/enumerations/password-login-error-type.js.map +1 -1
- package/src/enumerations/pbkdf2-error-type.js +2 -5
- package/src/enumerations/pbkdf2-error-type.js.map +1 -1
- package/src/enumerations/pbkdf2-profile.js +2 -5
- package/src/enumerations/pbkdf2-profile.js.map +1 -1
- package/src/enumerations/secure-storage-error-type.js +2 -5
- package/src/enumerations/secure-storage-error-type.js.map +1 -1
- package/src/errors/disposed.d.ts +20 -2
- package/src/errors/disposed.d.ts.map +1 -1
- package/src/errors/disposed.js +24 -17
- package/src/errors/disposed.js.map +1 -1
- package/src/errors/ecies.d.ts +46 -1
- package/src/errors/ecies.d.ts.map +1 -1
- package/src/errors/ecies.js +65 -10
- package/src/errors/ecies.js.map +1 -1
- package/src/errors/guid.d.ts +44 -0
- package/src/errors/guid.d.ts.map +1 -0
- package/src/errors/guid.js +81 -0
- package/src/errors/guid.js.map +1 -0
- package/src/errors/id-provider.d.ts +23 -0
- package/src/errors/id-provider.d.ts.map +1 -0
- package/src/errors/id-provider.js +29 -0
- package/src/errors/id-provider.js.map +1 -0
- package/src/errors/index.d.ts +3 -0
- package/src/errors/index.d.ts.map +1 -1
- package/src/errors/index.js +9 -10
- package/src/errors/index.js.map +1 -1
- package/src/errors/invalid-email.js +5 -9
- package/src/errors/invalid-email.js.map +1 -1
- package/src/errors/length.js +5 -9
- package/src/errors/length.js.map +1 -1
- package/src/errors/member.js +5 -9
- package/src/errors/member.js.map +1 -1
- package/src/errors/pbkdf2.js +5 -9
- package/src/errors/pbkdf2.js.map +1 -1
- package/src/errors/secure-storage.js +6 -10
- package/src/errors/secure-storage.js.map +1 -1
- package/src/errors/simple-ecies.js +6 -10
- package/src/errors/simple-ecies.js.map +1 -1
- package/src/errors/simple-test-error.js +1 -5
- package/src/errors/simple-test-error.js.map +1 -1
- package/src/i18n-setup.js +29 -37
- package/src/i18n-setup.js.map +1 -1
- package/src/index.d.ts +10 -0
- package/src/index.d.ts.map +1 -1
- package/src/index.js +44 -57
- package/src/index.js.map +1 -1
- package/src/interfaces/checksum-config.js +1 -2
- package/src/interfaces/checksum-consts.js +1 -2
- package/src/interfaces/configuration-provenance.d.ts +51 -0
- package/src/interfaces/configuration-provenance.d.ts.map +1 -0
- package/src/interfaces/configuration-provenance.js +23 -0
- package/src/interfaces/configuration-provenance.js.map +1 -0
- package/src/interfaces/constants.d.ts +27 -1
- package/src/interfaces/constants.d.ts.map +1 -1
- package/src/interfaces/constants.js +1 -2
- package/src/interfaces/ecies-config.js +1 -2
- package/src/interfaces/ecies-consts.js +1 -2
- package/src/interfaces/ecies-file-service.js +1 -2
- package/src/interfaces/encrypted-chunk.js +1 -4
- package/src/interfaces/encrypted-chunk.js.map +1 -1
- package/src/interfaces/encryption-state.js +1 -4
- package/src/interfaces/encryption-state.js.map +1 -1
- package/src/interfaces/frontend-member-operational.js +1 -2
- package/src/interfaces/guid.d.ts +78 -0
- package/src/interfaces/guid.d.ts.map +1 -0
- package/src/interfaces/guid.js +2 -0
- package/src/interfaces/guid.js.map +1 -0
- package/src/interfaces/id-provider.d.ts +83 -0
- package/src/interfaces/id-provider.d.ts.map +1 -0
- package/src/interfaces/id-provider.js +35 -0
- package/src/interfaces/id-provider.js.map +1 -0
- package/src/interfaces/index.d.ts +1 -0
- package/src/interfaces/index.d.ts.map +1 -1
- package/src/interfaces/index.js +13 -15
- package/src/interfaces/index.js.map +1 -1
- package/src/interfaces/invariant.d.ts +46 -0
- package/src/interfaces/invariant.d.ts.map +1 -0
- package/src/interfaces/invariant.js +18 -0
- package/src/interfaces/invariant.js.map +1 -0
- package/src/interfaces/library-error.js +1 -2
- package/src/interfaces/member-storage.js +1 -2
- package/src/interfaces/member-with-mnemonic.js +1 -2
- package/src/interfaces/multi-recipient-chunk.d.ts +36 -12
- package/src/interfaces/multi-recipient-chunk.d.ts.map +1 -1
- package/src/interfaces/multi-recipient-chunk.js +36 -14
- package/src/interfaces/multi-recipient-chunk.js.map +1 -1
- package/src/interfaces/pbkdf2-config.js +1 -2
- package/src/interfaces/pbkdf2-consts.js +1 -2
- package/src/interfaces/pbkdf2-result.js +1 -2
- package/src/interfaces/stream-config.js +1 -4
- package/src/interfaces/stream-config.js.map +1 -1
- package/src/interfaces/stream-header.js +1 -4
- package/src/interfaces/stream-header.js.map +1 -1
- package/src/interfaces/stream-progress.js +1 -2
- package/src/lib/crypto-container.js +9 -13
- package/src/lib/crypto-container.js.map +1 -1
- package/src/lib/guid.d.ts +344 -0
- package/src/lib/guid.d.ts.map +1 -0
- package/src/lib/guid.js +914 -0
- package/src/lib/guid.js.map +1 -0
- package/src/lib/id-providers/custom-provider.d.ts +69 -0
- package/src/lib/id-providers/custom-provider.d.ts.map +1 -0
- package/src/lib/id-providers/custom-provider.js +128 -0
- package/src/lib/id-providers/custom-provider.js.map +1 -0
- package/src/lib/id-providers/guidv4-provider.d.ts +46 -0
- package/src/lib/id-providers/guidv4-provider.d.ts.map +1 -0
- package/src/lib/id-providers/guidv4-provider.js +105 -0
- package/src/lib/id-providers/guidv4-provider.js.map +1 -0
- package/src/lib/id-providers/index.d.ts +30 -0
- package/src/lib/id-providers/index.d.ts.map +1 -0
- package/src/lib/id-providers/index.js +29 -0
- package/src/lib/id-providers/index.js.map +1 -0
- package/src/lib/id-providers/objectid-provider.d.ts +33 -0
- package/src/lib/id-providers/objectid-provider.d.ts.map +1 -0
- package/src/lib/id-providers/objectid-provider.js +79 -0
- package/src/lib/id-providers/objectid-provider.js.map +1 -0
- package/src/lib/id-providers/uuid-provider.d.ts +42 -0
- package/src/lib/id-providers/uuid-provider.d.ts.map +1 -0
- package/src/lib/id-providers/uuid-provider.js +96 -0
- package/src/lib/id-providers/uuid-provider.js.map +1 -0
- package/src/lib/index.d.ts +1 -0
- package/src/lib/index.d.ts.map +1 -1
- package/src/lib/index.js +2 -4
- package/src/lib/index.js.map +1 -1
- package/src/lib/invariant-validator.d.ts +59 -0
- package/src/lib/invariant-validator.d.ts.map +1 -0
- package/src/lib/invariant-validator.js +97 -0
- package/src/lib/invariant-validator.js.map +1 -0
- package/src/lib/invariants/encryption-algorithm-consistency.d.ts +17 -0
- package/src/lib/invariants/encryption-algorithm-consistency.d.ts.map +1 -0
- package/src/lib/invariants/encryption-algorithm-consistency.js +49 -0
- package/src/lib/invariants/encryption-algorithm-consistency.js.map +1 -0
- package/src/lib/invariants/index.d.ts +4 -0
- package/src/lib/invariants/index.d.ts.map +1 -0
- package/src/lib/invariants/index.js +4 -0
- package/src/lib/invariants/index.js.map +1 -0
- package/src/lib/invariants/pbkdf2-profiles-validity.d.ts +16 -0
- package/src/lib/invariants/pbkdf2-profiles-validity.d.ts.map +1 -0
- package/src/lib/invariants/pbkdf2-profiles-validity.js +58 -0
- package/src/lib/invariants/pbkdf2-profiles-validity.js.map +1 -0
- package/src/lib/invariants/recipient-id-consistency.d.ts +18 -0
- package/src/lib/invariants/recipient-id-consistency.d.ts.map +1 -0
- package/src/lib/invariants/recipient-id-consistency.js +31 -0
- package/src/lib/invariants/recipient-id-consistency.js.map +1 -0
- package/src/member.js +43 -48
- package/src/member.js.map +1 -1
- package/src/pbkdf2-profiles.js +1 -2
- package/src/phone-number.js +7 -11
- package/src/phone-number.js.map +1 -1
- package/src/regexes.js +3 -6
- package/src/regexes.js.map +1 -1
- package/src/secure-buffer.d.ts +17 -1
- package/src/secure-buffer.d.ts.map +1 -1
- package/src/secure-buffer.js +40 -22
- package/src/secure-buffer.js.map +1 -1
- package/src/secure-string.js +20 -24
- package/src/secure-string.js.map +1 -1
- package/src/services/aes-gcm.js +21 -25
- package/src/services/aes-gcm.js.map +1 -1
- package/src/services/chunk-processor.js +32 -36
- package/src/services/chunk-processor.js.map +1 -1
- package/src/services/ecies/crypto-core.js +33 -37
- package/src/services/ecies/crypto-core.js.map +1 -1
- package/src/services/ecies/example.js +37 -44
- package/src/services/ecies/example.js.map +1 -1
- package/src/services/ecies/file.js +1 -5
- package/src/services/ecies/file.js.map +1 -1
- package/src/services/ecies/index.js +10 -15
- package/src/services/ecies/index.js.map +1 -1
- package/src/services/ecies/integration.js +23 -28
- package/src/services/ecies/integration.js.map +1 -1
- package/src/services/ecies/interfaces.js +1 -2
- package/src/services/ecies/interfaces.js.map +1 -1
- package/src/services/ecies/manual-test.js +26 -34
- package/src/services/ecies/manual-test.js.map +1 -1
- package/src/services/ecies/multi-recipient.js +47 -51
- package/src/services/ecies/multi-recipient.js.map +1 -1
- package/src/services/ecies/service.js +27 -31
- package/src/services/ecies/service.js.map +1 -1
- package/src/services/ecies/signature.js +9 -13
- package/src/services/ecies/signature.js.map +1 -1
- package/src/services/ecies/single-recipient.js +42 -46
- package/src/services/ecies/single-recipient.js.map +1 -1
- package/src/services/encryption-stream.d.ts +3 -1
- package/src/services/encryption-stream.d.ts.map +1 -1
- package/src/services/encryption-stream.js +46 -48
- package/src/services/encryption-stream.js.map +1 -1
- package/src/services/index.js +5 -8
- package/src/services/index.js.map +1 -1
- package/src/services/multi-recipient-processor.d.ts +12 -2
- package/src/services/multi-recipient-processor.d.ts.map +1 -1
- package/src/services/multi-recipient-processor.js +65 -56
- package/src/services/multi-recipient-processor.js.map +1 -1
- package/src/services/password-login.js +33 -37
- package/src/services/password-login.js.map +1 -1
- package/src/services/pbkdf2.js +8 -12
- package/src/services/pbkdf2.js.map +1 -1
- package/src/services/progress-tracker.js +5 -9
- package/src/services/progress-tracker.js.map +1 -1
- package/src/services/resumable-encryption.js +24 -28
- package/src/services/resumable-encryption.js.map +1 -1
- package/src/services/xor.js +1 -5
- package/src/services/xor.js.map +1 -1
- package/src/test-mocks/index.js +1 -4
- package/src/test-mocks/index.js.map +1 -1
- package/src/test-mocks/mock-frontend-member.js +20 -24
- package/src/test-mocks/mock-frontend-member.js.map +1 -1
- package/src/testing.js +1 -4
- package/src/testing.js.map +1 -1
- package/src/translations/de.d.ts +2 -1
- package/src/translations/de.d.ts.map +1 -1
- package/src/translations/de.js +190 -170
- package/src/translations/de.js.map +1 -1
- package/src/translations/en-US.d.ts +2 -1
- package/src/translations/en-US.d.ts.map +1 -1
- package/src/translations/en-US.js +190 -170
- package/src/translations/en-US.js.map +1 -1
- package/src/translations/es.d.ts +2 -1
- package/src/translations/es.d.ts.map +1 -1
- package/src/translations/es.js +190 -170
- package/src/translations/es.js.map +1 -1
- package/src/translations/fr.d.ts +2 -1
- package/src/translations/fr.d.ts.map +1 -1
- package/src/translations/fr.js +190 -170
- package/src/translations/fr.js.map +1 -1
- package/src/translations/ja.d.ts +2 -1
- package/src/translations/ja.d.ts.map +1 -1
- package/src/translations/ja.js +189 -170
- package/src/translations/ja.js.map +1 -1
- package/src/translations/uk.d.ts +2 -1
- package/src/translations/uk.d.ts.map +1 -1
- package/src/translations/uk.js +192 -170
- package/src/translations/uk.js.map +1 -1
- package/src/translations/zh-cn.d.ts +2 -1
- package/src/translations/zh-cn.d.ts.map +1 -1
- package/src/translations/zh-cn.js +189 -170
- package/src/translations/zh-cn.js.map +1 -1
- package/src/types/deep-partial.js +1 -2
- package/src/types.d.ts +31 -0
- package/src/types.d.ts.map +1 -1
- package/src/types.js +1 -2
- package/src/utils.js +59 -77
- package/src/utils.js.map +1 -1
package/src/utils.js
CHANGED
|
@@ -1,101 +1,83 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
exports.base64ToUint8Array = base64ToUint8Array;
|
|
7
|
-
exports.uint8ArrayToHex = uint8ArrayToHex;
|
|
8
|
-
exports.hexToUint8Array = hexToUint8Array;
|
|
9
|
-
exports.crc16 = crc16;
|
|
10
|
-
exports.stringToUint8Array = stringToUint8Array;
|
|
11
|
-
exports.uint8ArrayToString = uint8ArrayToString;
|
|
12
|
-
exports.randomBytes = randomBytes;
|
|
13
|
-
exports.arraysEqual = arraysEqual;
|
|
14
|
-
exports.concatUint8Arrays = concatUint8Arrays;
|
|
15
|
-
exports.getLengthEncodingTypeForLength = getLengthEncodingTypeForLength;
|
|
16
|
-
exports.getLengthEncodingTypeFromValue = getLengthEncodingTypeFromValue;
|
|
17
|
-
exports.safeBigIntToNumber = safeBigIntToNumber;
|
|
18
|
-
exports.getLengthForLengthType = getLengthForLengthType;
|
|
19
|
-
const length_encoding_type_1 = require("./enumerations/length-encoding-type");
|
|
20
|
-
const length_error_type_1 = require("./enumerations/length-error-type");
|
|
21
|
-
const errors_1 = require("./errors");
|
|
22
|
-
const i18n_setup_1 = require("./i18n-setup");
|
|
23
|
-
const ecies_string_key_1 = require("./enumerations/ecies-string-key");
|
|
1
|
+
import { LengthEncodingType } from './enumerations/length-encoding-type';
|
|
2
|
+
import { LengthErrorType } from './enumerations/length-error-type';
|
|
3
|
+
import { LengthError } from './errors';
|
|
4
|
+
import { getEciesI18nEngine, EciesComponentId } from './i18n-setup';
|
|
5
|
+
import { EciesStringKey } from './enumerations/ecies-string-key';
|
|
24
6
|
/**
|
|
25
7
|
* Encodes the length of the data in the buffer
|
|
26
8
|
* @param buffer The buffer to encode
|
|
27
9
|
* @returns The encoded buffer
|
|
28
10
|
*/
|
|
29
|
-
function lengthEncodeData(buffer) {
|
|
11
|
+
export function lengthEncodeData(buffer) {
|
|
30
12
|
const lengthType = getLengthEncodingTypeForLength(buffer.length);
|
|
31
13
|
const lengthTypeSize = getLengthForLengthType(lengthType);
|
|
32
14
|
const result = new Uint8Array(1 + lengthTypeSize + buffer.length);
|
|
33
15
|
const view = new DataView(result.buffer);
|
|
34
16
|
view.setUint8(0, lengthType);
|
|
35
17
|
switch (lengthType) {
|
|
36
|
-
case
|
|
18
|
+
case LengthEncodingType.UInt8:
|
|
37
19
|
view.setUint8(1, buffer.length);
|
|
38
20
|
break;
|
|
39
|
-
case
|
|
21
|
+
case LengthEncodingType.UInt16:
|
|
40
22
|
view.setUint16(1, buffer.length, false); // big-endian
|
|
41
23
|
break;
|
|
42
|
-
case
|
|
24
|
+
case LengthEncodingType.UInt32:
|
|
43
25
|
view.setUint32(1, buffer.length, false); // big-endian
|
|
44
26
|
break;
|
|
45
|
-
case
|
|
27
|
+
case LengthEncodingType.UInt64:
|
|
46
28
|
view.setBigUint64(1, BigInt(buffer.length), false); // big-endian
|
|
47
29
|
break;
|
|
48
30
|
}
|
|
49
31
|
result.set(buffer, 1 + lengthTypeSize);
|
|
50
32
|
return result;
|
|
51
33
|
}
|
|
52
|
-
function decodeLengthEncodedData(buffer) {
|
|
34
|
+
export function decodeLengthEncodedData(buffer) {
|
|
53
35
|
if (buffer.length < 1) {
|
|
54
|
-
throw new
|
|
36
|
+
throw new LengthError(LengthErrorType.LengthIsTooShort, getEciesI18nEngine());
|
|
55
37
|
}
|
|
56
38
|
const view = new DataView(buffer.buffer, buffer.byteOffset, buffer.byteLength);
|
|
57
39
|
const lengthType = getLengthEncodingTypeFromValue(view.getUint8(0));
|
|
58
40
|
const lengthTypeSize = getLengthForLengthType(lengthType);
|
|
59
41
|
if (buffer.length < 1 + lengthTypeSize) {
|
|
60
|
-
throw new
|
|
42
|
+
throw new LengthError(LengthErrorType.LengthIsTooShort, getEciesI18nEngine());
|
|
61
43
|
}
|
|
62
44
|
let length;
|
|
63
45
|
switch (lengthType) {
|
|
64
|
-
case
|
|
46
|
+
case LengthEncodingType.UInt8:
|
|
65
47
|
length = view.getUint8(1);
|
|
66
48
|
break;
|
|
67
|
-
case
|
|
49
|
+
case LengthEncodingType.UInt16:
|
|
68
50
|
length = view.getUint16(1, false); // big-endian
|
|
69
51
|
break;
|
|
70
|
-
case
|
|
52
|
+
case LengthEncodingType.UInt32:
|
|
71
53
|
length = view.getUint32(1, false); // big-endian
|
|
72
54
|
break;
|
|
73
|
-
case
|
|
55
|
+
case LengthEncodingType.UInt64:
|
|
74
56
|
length = view.getBigUint64(1, false); // big-endian
|
|
75
57
|
if (length.valueOf() > BigInt(Number.MAX_SAFE_INTEGER)) {
|
|
76
|
-
throw new
|
|
58
|
+
throw new LengthError(LengthErrorType.LengthIsTooLong, getEciesI18nEngine());
|
|
77
59
|
}
|
|
78
60
|
break;
|
|
79
61
|
default:
|
|
80
|
-
throw new
|
|
62
|
+
throw new LengthError(LengthErrorType.LengthIsInvalidType, getEciesI18nEngine());
|
|
81
63
|
}
|
|
82
64
|
const totalLength = 1 + lengthTypeSize + Number(length);
|
|
83
65
|
if (totalLength > buffer.length) {
|
|
84
|
-
throw new
|
|
66
|
+
throw new LengthError(LengthErrorType.LengthIsTooShort, getEciesI18nEngine());
|
|
85
67
|
}
|
|
86
68
|
return {
|
|
87
69
|
data: buffer.subarray(1 + lengthTypeSize, totalLength),
|
|
88
70
|
totalLength,
|
|
89
71
|
};
|
|
90
72
|
}
|
|
91
|
-
function uint8ArrayToBase64(uint8Array) {
|
|
73
|
+
export function uint8ArrayToBase64(uint8Array) {
|
|
92
74
|
let binaryString = '';
|
|
93
75
|
for (let i = 0; i < uint8Array.length; i++) {
|
|
94
76
|
binaryString += String.fromCharCode(uint8Array[i]);
|
|
95
77
|
}
|
|
96
78
|
return btoa(binaryString);
|
|
97
79
|
}
|
|
98
|
-
function base64ToUint8Array(base64String) {
|
|
80
|
+
export function base64ToUint8Array(base64String) {
|
|
99
81
|
const binaryString = atob(base64String);
|
|
100
82
|
const len = binaryString.length;
|
|
101
83
|
const bytes = new Uint8Array(len);
|
|
@@ -104,21 +86,21 @@ function base64ToUint8Array(base64String) {
|
|
|
104
86
|
}
|
|
105
87
|
return bytes;
|
|
106
88
|
}
|
|
107
|
-
function uint8ArrayToHex(uint8Array) {
|
|
89
|
+
export function uint8ArrayToHex(uint8Array) {
|
|
108
90
|
return Array.from(uint8Array)
|
|
109
91
|
.map((byte) => byte.toString(16).padStart(2, '0'))
|
|
110
92
|
.join('');
|
|
111
93
|
}
|
|
112
|
-
function hexToUint8Array(hexString) {
|
|
113
|
-
const engine =
|
|
94
|
+
export function hexToUint8Array(hexString) {
|
|
95
|
+
const engine = getEciesI18nEngine();
|
|
114
96
|
if (!hexString || typeof hexString !== 'string') {
|
|
115
|
-
throw new Error(engine.translate(
|
|
97
|
+
throw new Error(engine.translate(EciesComponentId, EciesStringKey.Error_Utils_InvalidHexString));
|
|
116
98
|
}
|
|
117
99
|
if (hexString.length % 2 !== 0) {
|
|
118
|
-
throw new Error(engine.translate(
|
|
100
|
+
throw new Error(engine.translate(EciesComponentId, EciesStringKey.Error_Utils_HexStringMustHaveEvenLength));
|
|
119
101
|
}
|
|
120
102
|
if (!/^[0-9a-fA-F]*$/.test(hexString)) {
|
|
121
|
-
throw new Error(engine.translate(
|
|
103
|
+
throw new Error(engine.translate(EciesComponentId, EciesStringKey.Error_Utils_HexStringContainsInvalidCharacters));
|
|
122
104
|
}
|
|
123
105
|
const len = hexString.length;
|
|
124
106
|
const bytes = new Uint8Array(len / 2);
|
|
@@ -134,7 +116,7 @@ function hexToUint8Array(hexString) {
|
|
|
134
116
|
* CRC16-CCITT implementation for data integrity checking
|
|
135
117
|
* Uses CRC16-CCITT-FALSE variant (init 0xFFFF)
|
|
136
118
|
*/
|
|
137
|
-
function crc16(data) {
|
|
119
|
+
export function crc16(data) {
|
|
138
120
|
let crc = 0xffff; // Initial value for CRC16-CCITT-FALSE
|
|
139
121
|
const polynomial = 0x1021; // CRC16-CCITT polynomial
|
|
140
122
|
for (let i = 0; i < data.length; i++) {
|
|
@@ -157,25 +139,25 @@ function crc16(data) {
|
|
|
157
139
|
/**
|
|
158
140
|
* Convert string to Uint8Array (UTF-8 encoding)
|
|
159
141
|
*/
|
|
160
|
-
function stringToUint8Array(str) {
|
|
142
|
+
export function stringToUint8Array(str) {
|
|
161
143
|
return new TextEncoder().encode(str);
|
|
162
144
|
}
|
|
163
145
|
/**
|
|
164
146
|
* Convert Uint8Array to string (UTF-8 decoding)
|
|
165
147
|
*/
|
|
166
|
-
function uint8ArrayToString(array) {
|
|
148
|
+
export function uint8ArrayToString(array) {
|
|
167
149
|
return new TextDecoder().decode(array);
|
|
168
150
|
}
|
|
169
151
|
/**
|
|
170
152
|
* Secure random bytes generation
|
|
171
153
|
*/
|
|
172
|
-
function randomBytes(length) {
|
|
154
|
+
export function randomBytes(length) {
|
|
173
155
|
return crypto.getRandomValues(new Uint8Array(length));
|
|
174
156
|
}
|
|
175
157
|
/**
|
|
176
158
|
* Compare two Uint8Arrays for equality
|
|
177
159
|
*/
|
|
178
|
-
function arraysEqual(a, b) {
|
|
160
|
+
export function arraysEqual(a, b) {
|
|
179
161
|
if (a.length !== b.length)
|
|
180
162
|
return false;
|
|
181
163
|
let result = 0;
|
|
@@ -187,7 +169,7 @@ function arraysEqual(a, b) {
|
|
|
187
169
|
/**
|
|
188
170
|
* Concatenate multiple Uint8Arrays
|
|
189
171
|
*/
|
|
190
|
-
function concatUint8Arrays(...arrays) {
|
|
172
|
+
export function concatUint8Arrays(...arrays) {
|
|
191
173
|
const totalLength = arrays.reduce((sum, arr) => sum + arr.length, 0);
|
|
192
174
|
const result = new Uint8Array(totalLength);
|
|
193
175
|
let offset = 0;
|
|
@@ -202,43 +184,43 @@ function concatUint8Arrays(...arrays) {
|
|
|
202
184
|
* @param length The length to evaluate
|
|
203
185
|
* @returns The corresponding LengthEncodingType
|
|
204
186
|
*/
|
|
205
|
-
function getLengthEncodingTypeForLength(length) {
|
|
187
|
+
export function getLengthEncodingTypeForLength(length) {
|
|
206
188
|
if (typeof length === 'number') {
|
|
207
189
|
if (length < 256) {
|
|
208
|
-
return
|
|
190
|
+
return LengthEncodingType.UInt8;
|
|
209
191
|
}
|
|
210
192
|
else if (length < 65536) {
|
|
211
|
-
return
|
|
193
|
+
return LengthEncodingType.UInt16;
|
|
212
194
|
}
|
|
213
195
|
else if (length < 4294967296) {
|
|
214
|
-
return
|
|
196
|
+
return LengthEncodingType.UInt32;
|
|
215
197
|
}
|
|
216
198
|
else if (length < Number.MAX_SAFE_INTEGER) {
|
|
217
|
-
return
|
|
199
|
+
return LengthEncodingType.UInt64;
|
|
218
200
|
}
|
|
219
201
|
else {
|
|
220
|
-
throw new
|
|
202
|
+
throw new LengthError(LengthErrorType.LengthIsTooLong, getEciesI18nEngine());
|
|
221
203
|
}
|
|
222
204
|
}
|
|
223
205
|
else if (typeof length === 'bigint') {
|
|
224
206
|
if (length < 256n) {
|
|
225
|
-
return
|
|
207
|
+
return LengthEncodingType.UInt8;
|
|
226
208
|
}
|
|
227
209
|
else if (length < 65536n) {
|
|
228
|
-
return
|
|
210
|
+
return LengthEncodingType.UInt16;
|
|
229
211
|
}
|
|
230
212
|
else if (length < 4294967296n) {
|
|
231
|
-
return
|
|
213
|
+
return LengthEncodingType.UInt32;
|
|
232
214
|
}
|
|
233
215
|
else if (length < 18446744073709551616n) {
|
|
234
|
-
return
|
|
216
|
+
return LengthEncodingType.UInt64;
|
|
235
217
|
}
|
|
236
218
|
else {
|
|
237
|
-
throw new
|
|
219
|
+
throw new LengthError(LengthErrorType.LengthIsTooLong, getEciesI18nEngine());
|
|
238
220
|
}
|
|
239
221
|
}
|
|
240
222
|
else {
|
|
241
|
-
throw new
|
|
223
|
+
throw new LengthError(LengthErrorType.LengthIsInvalidType, getEciesI18nEngine());
|
|
242
224
|
}
|
|
243
225
|
}
|
|
244
226
|
/**
|
|
@@ -246,26 +228,26 @@ function getLengthEncodingTypeForLength(length) {
|
|
|
246
228
|
* @param value The value to evaluate
|
|
247
229
|
* @returns The corresponding LengthEncodingType
|
|
248
230
|
*/
|
|
249
|
-
function getLengthEncodingTypeFromValue(value) {
|
|
250
|
-
for (const length of Object.values(
|
|
231
|
+
export function getLengthEncodingTypeFromValue(value) {
|
|
232
|
+
for (const length of Object.values(LengthEncodingType)) {
|
|
251
233
|
if (length === value) {
|
|
252
234
|
return length;
|
|
253
235
|
}
|
|
254
236
|
}
|
|
255
|
-
throw new
|
|
237
|
+
throw new LengthError(LengthErrorType.LengthIsInvalidType, getEciesI18nEngine());
|
|
256
238
|
}
|
|
257
239
|
/**
|
|
258
240
|
* Safely converts BigInt to Number, throwing if value exceeds safe integer range
|
|
259
241
|
* @param value The BigInt value to convert
|
|
260
242
|
* @returns The number value
|
|
261
243
|
*/
|
|
262
|
-
function safeBigIntToNumber(value) {
|
|
263
|
-
const engine =
|
|
244
|
+
export function safeBigIntToNumber(value) {
|
|
245
|
+
const engine = getEciesI18nEngine();
|
|
264
246
|
if (value > BigInt(Number.MAX_SAFE_INTEGER)) {
|
|
265
|
-
throw new Error(engine.translate(
|
|
247
|
+
throw new Error(engine.translate(EciesComponentId, EciesStringKey.Error_Utils_ValueExceedsSafeIntegerRange));
|
|
266
248
|
}
|
|
267
249
|
if (value < BigInt(Number.MIN_SAFE_INTEGER)) {
|
|
268
|
-
throw new Error(engine.translate(
|
|
250
|
+
throw new Error(engine.translate(EciesComponentId, EciesStringKey.Error_Utils_ValueBelowSafeIntegerRange));
|
|
269
251
|
}
|
|
270
252
|
return Number(value);
|
|
271
253
|
}
|
|
@@ -274,18 +256,18 @@ function safeBigIntToNumber(value) {
|
|
|
274
256
|
* @param type The LengthEncodingType to evaluate
|
|
275
257
|
* @returns The length in bytes
|
|
276
258
|
*/
|
|
277
|
-
function getLengthForLengthType(type) {
|
|
259
|
+
export function getLengthForLengthType(type) {
|
|
278
260
|
switch (type) {
|
|
279
|
-
case
|
|
261
|
+
case LengthEncodingType.UInt8:
|
|
280
262
|
return 1;
|
|
281
|
-
case
|
|
263
|
+
case LengthEncodingType.UInt16:
|
|
282
264
|
return 2;
|
|
283
|
-
case
|
|
265
|
+
case LengthEncodingType.UInt32:
|
|
284
266
|
return 4;
|
|
285
|
-
case
|
|
267
|
+
case LengthEncodingType.UInt64:
|
|
286
268
|
return 8;
|
|
287
269
|
default:
|
|
288
|
-
throw new
|
|
270
|
+
throw new LengthError(LengthErrorType.LengthIsInvalidType, getEciesI18nEngine());
|
|
289
271
|
}
|
|
290
272
|
}
|
|
291
273
|
//# sourceMappingURL=utils.js.map
|
package/src/utils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../packages/digitaldefiance-ecies-lib/src/utils.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../packages/digitaldefiance-ecies-lib/src/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AACzE,OAAO,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AACnE,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AACvC,OAAO,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AACpE,OAAO,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AAEjE;;;;GAIG;AACH,MAAM,UAAU,gBAAgB,CAAC,MAAkB;IACjD,MAAM,UAAU,GAAuB,8BAA8B,CACnE,MAAM,CAAC,MAAM,CACd,CAAC;IACF,MAAM,cAAc,GAAW,sBAAsB,CAAC,UAAU,CAAC,CAAC;IAClE,MAAM,MAAM,GAAG,IAAI,UAAU,CAAC,CAAC,GAAG,cAAc,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;IAClE,MAAM,IAAI,GAAG,IAAI,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAEzC,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;IAC7B,QAAQ,UAAU,EAAE,CAAC;QACnB,KAAK,kBAAkB,CAAC,KAAK;YAC3B,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;YAChC,MAAM;QACR,KAAK,kBAAkB,CAAC,MAAM;YAC5B,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC,aAAa;YACtD,MAAM;QACR,KAAK,kBAAkB,CAAC,MAAM;YAC5B,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC,aAAa;YACtD,MAAM;QACR,KAAK,kBAAkB,CAAC,MAAM;YAC5B,IAAI,CAAC,YAAY,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,aAAa;YACjE,MAAM;IACV,CAAC;IACD,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,GAAG,cAAc,CAAC,CAAC;IACvC,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,MAAkB;IAIxD,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACtB,MAAM,IAAI,WAAW,CACnB,eAAe,CAAC,gBAAgB,EAChC,kBAAkB,EAAS,CAC5B,CAAC;IACJ,CAAC;IAED,MAAM,IAAI,GAAG,IAAI,QAAQ,CACvB,MAAM,CAAC,MAAM,EACb,MAAM,CAAC,UAAU,EACjB,MAAM,CAAC,UAAU,CAClB,CAAC;IACF,MAAM,UAAU,GAAuB,8BAA8B,CACnE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CACjB,CAAC;IACF,MAAM,cAAc,GAAW,sBAAsB,CAAC,UAAU,CAAC,CAAC;IAElE,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,GAAG,cAAc,EAAE,CAAC;QACvC,MAAM,IAAI,WAAW,CACnB,eAAe,CAAC,gBAAgB,EAChC,kBAAkB,EAAS,CAC5B,CAAC;IACJ,CAAC;IAED,IAAI,MAAuB,CAAC;IAC5B,QAAQ,UAAU,EAAE,CAAC;QACnB,KAAK,kBAAkB,CAAC,KAAK;YAC3B,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;YAC1B,MAAM;QACR,KAAK,kBAAkB,CAAC,MAAM;YAC5B,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,aAAa;YAChD,MAAM;QACR,KAAK,kBAAkB,CAAC,MAAM;YAC5B,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,aAAa;YAChD,MAAM;QACR,KAAK,kBAAkB,CAAC,MAAM;YAC5B,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,aAAa;YACnD,IAAI,MAAM,CAAC,OAAO,EAAE,GAAG,MAAM,CAAC,MAAM,CAAC,gBAAgB,CAAC,EAAE,CAAC;gBACvD,MAAM,IAAI,WAAW,CACnB,eAAe,CAAC,eAAe,EAC/B,kBAAkB,EAAS,CAC5B,CAAC;YACJ,CAAC;YACD,MAAM;QACR;YACE,MAAM,IAAI,WAAW,CACnB,eAAe,CAAC,mBAAmB,EACnC,kBAAkB,EAAS,CAC5B,CAAC;IACN,CAAC;IAED,MAAM,WAAW,GAAG,CAAC,GAAG,cAAc,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;IACxD,IAAI,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC;QAChC,MAAM,IAAI,WAAW,CACnB,eAAe,CAAC,gBAAgB,EAChC,kBAAkB,EAAS,CAC5B,CAAC;IACJ,CAAC;IACD,OAAO;QACL,IAAI,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC,GAAG,cAAc,EAAE,WAAW,CAAC;QACtD,WAAW;KACZ,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,UAAsB;IACvD,IAAI,YAAY,GAAG,EAAE,CAAC;IACtB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAC3C,YAAY,IAAI,MAAM,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;IACrD,CAAC;IACD,OAAO,IAAI,CAAC,YAAY,CAAC,CAAC;AAC5B,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,YAAoB;IACrD,MAAM,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC;IACxC,MAAM,GAAG,GAAG,YAAY,CAAC,MAAM,CAAC;IAChC,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,GAAG,CAAC,CAAC;IAClC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;QAC7B,KAAK,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;IACxC,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,UAAsB;IACpD,OAAO,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC;SAC1B,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;SACjD,IAAI,CAAC,EAAE,CAAC,CAAC;AACd,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,SAAiB;IAC/C,MAAM,MAAM,GAAG,kBAAkB,EAAE,CAAC;IACpC,IAAI,CAAC,SAAS,IAAI,OAAO,SAAS,KAAK,QAAQ,EAAE,CAAC;QAChD,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,gBAAgB,EAAE,cAAc,CAAC,4BAA4B,CAAC,CAAC,CAAC;IACnG,CAAC;IACD,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;QAC/B,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,gBAAgB,EAAE,cAAc,CAAC,uCAAuC,CAAC,CAAC,CAAC;IAC9G,CAAC;IACD,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;QACtC,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,gBAAgB,EAAE,cAAc,CAAC,8CAA8C,CAAC,CAAC,CAAC;IACrH,CAAC;IACD,MAAM,GAAG,GAAG,SAAS,CAAC,MAAM,CAAC;IAC7B,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;IACtC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;QAChC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,QAAQ,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAC7D,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;GAEG;AAEH;;;GAGG;AACH,MAAM,UAAU,KAAK,CAAC,IAAgB;IACpC,IAAI,GAAG,GAAG,MAAM,CAAC,CAAC,sCAAsC;IACxD,MAAM,UAAU,GAAG,MAAM,CAAC,CAAC,yBAAyB;IAEpD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACrC,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QACpB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YAC3B,IAAI,GAAG,GAAG,MAAM,EAAE,CAAC;gBACjB,GAAG,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,UAAU,CAAC;YAChC,CAAC;iBAAM,CAAC;gBACN,GAAG,GAAG,GAAG,IAAI,CAAC,CAAC;YACjB,CAAC;YACD,GAAG,IAAI,MAAM,CAAC,CAAC,iBAAiB;QAClC,CAAC;IACH,CAAC;IAED,MAAM,MAAM,GAAG,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC;IACjC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,aAAa;IAC7C,MAAM,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC;IACvB,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,kBAAkB,CAAC,GAAW;IAC5C,OAAO,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;AACvC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,kBAAkB,CAAC,KAAiB;IAClD,OAAO,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AACzC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,WAAW,CAAC,MAAc;IACxC,OAAO,MAAM,CAAC,eAAe,CAAC,IAAI,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC;AACxD,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,WAAW,CAAC,CAAa,EAAE,CAAa;IACtD,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,MAAM;QAAE,OAAO,KAAK,CAAC;IACxC,IAAI,MAAM,GAAG,CAAC,CAAC;IACf,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAClC,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IACxB,CAAC;IACD,OAAO,MAAM,KAAK,CAAC,CAAC;AACtB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAAC,GAAG,MAAoB;IACvD,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IACrE,MAAM,MAAM,GAAG,IAAI,UAAU,CAAC,WAAW,CAAC,CAAC;IAC3C,IAAI,MAAM,GAAG,CAAC,CAAC;IACf,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QAC1B,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC;IACzB,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,8BAA8B,CAG5C,MAAuB;IACvB,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;QAC/B,IAAI,MAAM,GAAG,GAAG,EAAE,CAAC;YACjB,OAAO,kBAAkB,CAAC,KAAK,CAAC;QAClC,CAAC;aAAM,IAAI,MAAM,GAAG,KAAK,EAAE,CAAC;YAC1B,OAAO,kBAAkB,CAAC,MAAM,CAAC;QACnC,CAAC;aAAM,IAAI,MAAM,GAAG,UAAU,EAAE,CAAC;YAC/B,OAAO,kBAAkB,CAAC,MAAM,CAAC;QACnC,CAAC;aAAM,IAAI,MAAM,GAAG,MAAM,CAAC,gBAAgB,EAAE,CAAC;YAC5C,OAAO,kBAAkB,CAAC,MAAM,CAAC;QACnC,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,WAAW,CACnB,eAAe,CAAC,eAAe,EAC/B,kBAAkB,EAAS,CAC5B,CAAC;QACJ,CAAC;IACH,CAAC;SAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;QACtC,IAAI,MAAM,GAAG,IAAI,EAAE,CAAC;YAClB,OAAO,kBAAkB,CAAC,KAAK,CAAC;QAClC,CAAC;aAAM,IAAI,MAAM,GAAG,MAAM,EAAE,CAAC;YAC3B,OAAO,kBAAkB,CAAC,MAAM,CAAC;QACnC,CAAC;aAAM,IAAI,MAAM,GAAG,WAAW,EAAE,CAAC;YAChC,OAAO,kBAAkB,CAAC,MAAM,CAAC;QACnC,CAAC;aAAM,IAAI,MAAM,GAAG,qBAAqB,EAAE,CAAC;YAC1C,OAAO,kBAAkB,CAAC,MAAM,CAAC;QACnC,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,WAAW,CACnB,eAAe,CAAC,eAAe,EAC/B,kBAAkB,EAAS,CAC5B,CAAC;QACJ,CAAC;IACH,CAAC;SAAM,CAAC;QACN,MAAM,IAAI,WAAW,CACnB,eAAe,CAAC,mBAAmB,EACnC,kBAAkB,EAAS,CAC5B,CAAC;IACJ,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,8BAA8B,CAG5C,KAAa;IACb,KAAK,MAAM,MAAM,IAAI,MAAM,CAAC,MAAM,CAAC,kBAAkB,CAAC,EAAE,CAAC;QACvD,IAAI,MAAM,KAAK,KAAK,EAAE,CAAC;YACrB,OAAO,MAAM,CAAC;QAChB,CAAC;IACH,CAAC;IACD,MAAM,IAAI,WAAW,CACnB,eAAe,CAAC,mBAAmB,EACnC,kBAAkB,EAAS,CAC5B,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,kBAAkB,CAAC,KAAa;IAC9C,MAAM,MAAM,GAAG,kBAAkB,EAAE,CAAC;IACpC,IAAI,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,gBAAgB,CAAC,EAAE,CAAC;QAC5C,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,gBAAgB,EAAE,cAAc,CAAC,wCAAwC,CAAC,CAAC,CAAC;IAC/G,CAAC;IACD,IAAI,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,gBAAgB,CAAC,EAAE,CAAC;QAC5C,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,gBAAgB,EAAE,cAAc,CAAC,sCAAsC,CAAC,CAAC,CAAC;IAC7G,CAAC;IACD,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;AACvB,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,sBAAsB,CAGpC,IAAwB;IACxB,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,kBAAkB,CAAC,KAAK;YAC3B,OAAO,CAAC,CAAC;QACX,KAAK,kBAAkB,CAAC,MAAM;YAC5B,OAAO,CAAC,CAAC;QACX,KAAK,kBAAkB,CAAC,MAAM;YAC5B,OAAO,CAAC,CAAC;QACX,KAAK,kBAAkB,CAAC,MAAM;YAC5B,OAAO,CAAC,CAAC;QACX;YACE,MAAM,IAAI,WAAW,CACnB,eAAe,CAAC,mBAAmB,EACnC,kBAAkB,EAAS,CAC5B,CAAC;IACN,CAAC;AACH,CAAC"}
|