@digitaldefiance/ecies-lib 1.0.23 → 1.0.25
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 +131 -4
- package/dist/constants.d.ts +0 -13
- package/dist/constants.d.ts.map +1 -1
- package/dist/constants.js +3 -164
- package/dist/constants.js.map +1 -1
- package/dist/defaults.d.ts +37 -0
- package/dist/defaults.d.ts.map +1 -0
- package/dist/defaults.js +323 -0
- package/dist/defaults.js.map +1 -0
- package/dist/enumerations/ecies-string-key.d.ts +1 -0
- package/dist/enumerations/ecies-string-key.d.ts.map +1 -1
- package/dist/enumerations/ecies-string-key.js +1 -0
- package/dist/enumerations/ecies-string-key.js.map +1 -1
- package/dist/enumerations/pbkdf2-error-type.d.ts +1 -0
- package/dist/enumerations/pbkdf2-error-type.d.ts.map +1 -1
- package/dist/enumerations/pbkdf2-error-type.js +1 -0
- package/dist/enumerations/pbkdf2-error-type.js.map +1 -1
- package/dist/i18n-setup.d.ts.map +1 -1
- package/dist/i18n-setup.js +5 -0
- package/dist/i18n-setup.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/interfaces/constants.d.ts +2 -29
- package/dist/interfaces/constants.d.ts.map +1 -1
- package/dist/interfaces/defaults.d.ts +35 -0
- package/dist/interfaces/defaults.d.ts.map +1 -0
- package/dist/interfaces/defaults.js +2 -0
- package/dist/interfaces/defaults.js.map +1 -0
- package/dist/interfaces/index.d.ts +1 -1
- package/dist/interfaces/index.d.ts.map +1 -1
- package/dist/interfaces/index.js +1 -1
- package/dist/interfaces/index.js.map +1 -1
- package/dist/interfaces/member-operational.d.ts +3 -2
- package/dist/interfaces/member-operational.d.ts.map +1 -1
- package/dist/member.d.ts +7 -9
- package/dist/member.d.ts.map +1 -1
- package/dist/member.js +13 -13
- package/dist/member.js.map +1 -1
- package/dist/regexes.d.ts +3 -0
- package/dist/regexes.d.ts.map +1 -0
- package/dist/regexes.js +3 -0
- package/dist/regexes.js.map +1 -0
- package/dist/services/aes-gcm.d.ts +4 -3
- package/dist/services/aes-gcm.d.ts.map +1 -1
- package/dist/services/aes-gcm.js +13 -10
- package/dist/services/aes-gcm.js.map +1 -1
- package/dist/services/ecies/crypto-core.d.ts +4 -2
- package/dist/services/ecies/crypto-core.d.ts.map +1 -1
- package/dist/services/ecies/crypto-core.js +9 -7
- package/dist/services/ecies/crypto-core.js.map +1 -1
- package/dist/services/ecies/multi-recipient.d.ts +5 -2
- package/dist/services/ecies/multi-recipient.d.ts.map +1 -1
- package/dist/services/ecies/multi-recipient.js +36 -34
- package/dist/services/ecies/multi-recipient.js.map +1 -1
- package/dist/services/ecies/service.d.ts +9 -5
- package/dist/services/ecies/service.d.ts.map +1 -1
- package/dist/services/ecies/service.js +16 -14
- package/dist/services/ecies/service.js.map +1 -1
- package/dist/services/ecies/single-recipient.d.ts +6 -3
- package/dist/services/ecies/single-recipient.d.ts.map +1 -1
- package/dist/services/ecies/single-recipient.js +27 -25
- package/dist/services/ecies/single-recipient.js.map +1 -1
- package/dist/services/password-login.d.ts +3 -1
- package/dist/services/password-login.d.ts.map +1 -1
- package/dist/services/password-login.js +6 -3
- package/dist/services/password-login.js.map +1 -1
- package/dist/services/pbkdf2.d.ts +7 -3
- package/dist/services/pbkdf2.d.ts.map +1 -1
- package/dist/services/pbkdf2.js +16 -7
- package/dist/services/pbkdf2.js.map +1 -1
- package/dist/types/deep-partial.d.ts +4 -0
- package/dist/types/deep-partial.d.ts.map +1 -0
- package/dist/types/deep-partial.js +2 -0
- package/dist/types/deep-partial.js.map +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { DeepPartial } from '../types/deep-partial';
|
|
2
|
+
import { Pbkdf2Profiles } from '../pbkdf2-profiles';
|
|
3
|
+
import { IChecksumConsts } from './checksum-consts';
|
|
4
|
+
import { IECIESConstants } from './ecies-consts';
|
|
5
|
+
import { IPBkdf2Consts } from './pbkdf2-consts';
|
|
6
|
+
export interface IDefaults {
|
|
7
|
+
CHECKSUM: IChecksumConsts;
|
|
8
|
+
ECIES: IECIESConstants;
|
|
9
|
+
PBKDF2: IPBkdf2Consts;
|
|
10
|
+
PBKDF2_PROFILES: Pbkdf2Profiles;
|
|
11
|
+
/**
|
|
12
|
+
* Number of rounds for bcrypt hashing. Higher values increase security but also consume more CPU resources.
|
|
13
|
+
*/
|
|
14
|
+
BcryptRounds: number;
|
|
15
|
+
/**
|
|
16
|
+
* Minimum password length
|
|
17
|
+
*/
|
|
18
|
+
PasswordMinLength: number;
|
|
19
|
+
/**
|
|
20
|
+
* The regular expression for valid passwords.
|
|
21
|
+
*/
|
|
22
|
+
PasswordRegex: RegExp;
|
|
23
|
+
/**
|
|
24
|
+
* The regular expression for valid mnemonic phrases.
|
|
25
|
+
* BIP39
|
|
26
|
+
*/
|
|
27
|
+
MnemonicRegex: RegExp;
|
|
28
|
+
/**
|
|
29
|
+
* The regular expression for valid HMAC keys.
|
|
30
|
+
*/
|
|
31
|
+
HmacRegex: RegExp;
|
|
32
|
+
}
|
|
33
|
+
export type IRuntimeConfiguration = IDefaults;
|
|
34
|
+
export type IDefaultsOverrides = DeepPartial<IDefaults>;
|
|
35
|
+
//# sourceMappingURL=defaults.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"defaults.d.ts","sourceRoot":"","sources":["../../src/interfaces/defaults.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEhD,MAAM,WAAW,SAAS;IAExB,QAAQ,EAAE,eAAe,CAAC;IAE1B,KAAK,EAAE,eAAe,CAAC;IAEvB,MAAM,EAAE,aAAa,CAAC;IAEtB,eAAe,EAAE,cAAc,CAAC;IAEhC;;OAEG;IACH,YAAY,EAAE,MAAM,CAAC;IACrB;;OAEG;IACH,iBAAiB,EAAE,MAAM,CAAC;IAC1B;;OAEG;IACH,aAAa,EAAE,MAAM,CAAC;IACtB;;;OAGG;IACH,aAAa,EAAE,MAAM,CAAC;IACtB;;OAEG;IACH,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,MAAM,qBAAqB,GAAG,SAAS,CAAC;AAE9C,MAAM,MAAM,kBAAkB,GAAG,WAAW,CAAC,SAAS,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"defaults.js","sourceRoot":"","sources":["../../src/interfaces/defaults.ts"],"names":[],"mappings":""}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/interfaces/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/interfaces/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,YAAY,CAAC;AAC3B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,sBAAsB,CAAC;AACrC,cAAc,QAAQ,CAAC;AACvB,cAAc,4BAA4B,CAAC;AAC3C,cAAc,sBAAsB,CAAC;AACrC,cAAc,kBAAkB,CAAC;AACjC,cAAc,wBAAwB,CAAC;AACvC,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC"}
|
package/dist/interfaces/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/interfaces/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/interfaces/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,YAAY,CAAC;AAC3B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,sBAAsB,CAAC;AACrC,cAAc,QAAQ,CAAC;AACvB,cAAc,4BAA4B,CAAC;AAC3C,cAAc,sBAAsB,CAAC;AACrC,cAAc,kBAAkB,CAAC;AACjC,cAAc,wBAAwB,CAAC;AACvC,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC"}
|
|
@@ -5,6 +5,7 @@ import { GuidV4 } from '../guid';
|
|
|
5
5
|
import { SecureBuffer } from '../secure-buffer';
|
|
6
6
|
import { SecureString } from '../secure-string';
|
|
7
7
|
import { SignatureUint8Array } from '../types';
|
|
8
|
+
import { IECIESConstants } from './ecies-consts';
|
|
8
9
|
/**
|
|
9
10
|
* Operational interface for member - defines getters and methods
|
|
10
11
|
*/
|
|
@@ -25,7 +26,7 @@ export interface IMemberOperational<TID = GuidV4, TData = Uint8Array, TSignature
|
|
|
25
26
|
encryptData(data: string | TData): Promise<TData>;
|
|
26
27
|
decryptData(encryptedData: TData): Promise<TData>;
|
|
27
28
|
toJson(): string;
|
|
28
|
-
loadWallet(mnemonic: SecureString): void;
|
|
29
|
+
loadWallet(mnemonic: SecureString, eciesParams?: IECIESConstants): void;
|
|
29
30
|
unloadPrivateKey(): void;
|
|
30
31
|
unloadWallet(): void;
|
|
31
32
|
unloadWalletAndPrivateKey(): void;
|
|
@@ -33,7 +34,7 @@ export interface IMemberOperational<TID = GuidV4, TData = Uint8Array, TSignature
|
|
|
33
34
|
/**
|
|
34
35
|
* Extended operational interface for test members
|
|
35
36
|
*/
|
|
36
|
-
export interface
|
|
37
|
+
export interface ITestMemberOperational extends IMemberOperational {
|
|
37
38
|
get mnemonic(): SecureString | undefined;
|
|
38
39
|
}
|
|
39
40
|
//# sourceMappingURL=member-operational.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"member-operational.d.ts","sourceRoot":"","sources":["../../src/interfaces/member-operational.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,UAAU,MAAM,6BAA6B,CAAC;AACrD,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjC,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"member-operational.d.ts","sourceRoot":"","sources":["../../src/interfaces/member-operational.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,UAAU,MAAM,6BAA6B,CAAC;AACrD,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjC,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAC/C,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAEjD;;GAEG;AACH,MAAM,WAAW,kBAAkB,CACjC,GAAG,GAAG,MAAM,EACZ,KAAK,GAAG,UAAU,EAClB,UAAU,GAAG,mBAAmB;IAGhC,IAAI,EAAE,IAAI,GAAG,CAAC;IACd,IAAI,IAAI,IAAI,UAAU,CAAC;IACvB,IAAI,IAAI,IAAI,MAAM,CAAC;IACnB,IAAI,KAAK,IAAI,WAAW,CAAC;IACzB,IAAI,SAAS,IAAI,UAAU,CAAC;IAC5B,IAAI,SAAS,IAAI,GAAG,CAAC;IACrB,IAAI,WAAW,IAAI,IAAI,CAAC;IACxB,IAAI,WAAW,IAAI,IAAI,CAAC;IAGxB,IAAI,UAAU,IAAI,YAAY,GAAG,SAAS,CAAC;IAC3C,IAAI,MAAM,IAAI,MAAM,GAAG,SAAS,CAAC;IAGjC,IAAI,aAAa,IAAI,OAAO,CAAC;IAG7B,IAAI,CAAC,IAAI,EAAE,KAAK,GAAG,UAAU,CAAC;IAC9B,MAAM,CAAC,SAAS,EAAE,UAAU,EAAE,IAAI,EAAE,KAAK,GAAG,OAAO,CAAC;IACpD,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;IAClD,WAAW,CAAC,aAAa,EAAE,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;IAClD,MAAM,IAAI,MAAM,CAAC;IAGjB,UAAU,CAAC,QAAQ,EAAE,YAAY,EAAE,WAAW,CAAC,EAAE,eAAe,GAAG,IAAI,CAAC;IACxE,gBAAgB,IAAI,IAAI,CAAC;IACzB,YAAY,IAAI,IAAI,CAAC;IACrB,yBAAyB,IAAI,IAAI,CAAC;CACnC;AAED;;GAEG;AACH,MAAM,WAAW,sBAAuB,SAAQ,kBAAkB;IAChE,IAAI,QAAQ,IAAI,YAAY,GAAG,SAAS,CAAC;CAC1C"}
|
package/dist/member.d.ts
CHANGED
|
@@ -8,13 +8,11 @@ import { SecureBuffer } from './secure-buffer';
|
|
|
8
8
|
import { SecureString } from './secure-string';
|
|
9
9
|
import { ECIESService } from './services/ecies/service';
|
|
10
10
|
import { SignatureUint8Array } from './types';
|
|
11
|
+
import { IECIESConstants } from './interfaces/ecies-consts';
|
|
11
12
|
/**
|
|
12
|
-
*
|
|
13
|
-
*
|
|
14
|
-
*
|
|
15
|
-
* 2. Encrypt and decrypt data
|
|
16
|
-
* 3. Participate in voting
|
|
17
|
-
* 4. Establish ownership of data
|
|
13
|
+
* Represents a member with cryptographic capabilities.
|
|
14
|
+
* This class provides methods for signing, verifying, encrypting, and decrypting data.
|
|
15
|
+
* It also manages the member's keys and wallet.
|
|
18
16
|
*/
|
|
19
17
|
export declare class Member implements IMemberOperational {
|
|
20
18
|
private readonly _eciesService;
|
|
@@ -43,7 +41,7 @@ export declare class Member implements IMemberOperational {
|
|
|
43
41
|
unloadPrivateKey(): void;
|
|
44
42
|
unloadWallet(): void;
|
|
45
43
|
unloadWalletAndPrivateKey(): void;
|
|
46
|
-
loadWallet(mnemonic: SecureString): void;
|
|
44
|
+
loadWallet(mnemonic: SecureString, eciesParams?: IECIESConstants): void;
|
|
47
45
|
/**
|
|
48
46
|
* Loads the private key and optionally the voting private key.
|
|
49
47
|
*
|
|
@@ -62,7 +60,7 @@ export declare class Member implements IMemberOperational {
|
|
|
62
60
|
toJson(): string;
|
|
63
61
|
dispose(): void;
|
|
64
62
|
static fromJson(json: string, eciesService: ECIESService): Member;
|
|
65
|
-
static fromMnemonic(mnemonic: SecureString, eciesService: ECIESService): Member;
|
|
66
|
-
static newMember(eciesService: ECIESService, type: MemberType, name: string, email: EmailString, forceMnemonic?: SecureString, createdBy?: GuidV4): IMemberWithMnemonic;
|
|
63
|
+
static fromMnemonic(mnemonic: SecureString, eciesService: ECIESService, eciesParams?: IECIESConstants): Member;
|
|
64
|
+
static newMember(eciesService: ECIESService, type: MemberType, name: string, email: EmailString, forceMnemonic?: SecureString, createdBy?: GuidV4, eciesParams?: IECIESConstants): IMemberWithMnemonic;
|
|
67
65
|
}
|
|
68
66
|
//# sourceMappingURL=member.d.ts.map
|
package/dist/member.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"member.d.ts","sourceRoot":"","sources":["../src/member.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"member.d.ts","sourceRoot":"","sources":["../src/member.ts"],"names":[],"mappings":"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"}
|
package/dist/member.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ECIES } from './
|
|
1
|
+
import { ECIES } from './defaults';
|
|
2
2
|
import { EmailString } from './email-string';
|
|
3
3
|
import MemberErrorType from './enumerations/member-error-type';
|
|
4
4
|
import MemberType from './enumerations/member-type';
|
|
@@ -8,12 +8,9 @@ import { getCompatibleEciesEngine } from './i18n-setup';
|
|
|
8
8
|
import { SecureBuffer } from './secure-buffer';
|
|
9
9
|
import { base64ToUint8Array, uint8ArrayToBase64, uint8ArrayToHex, } from './utils';
|
|
10
10
|
/**
|
|
11
|
-
*
|
|
12
|
-
*
|
|
13
|
-
*
|
|
14
|
-
* 2. Encrypt and decrypt data
|
|
15
|
-
* 3. Participate in voting
|
|
16
|
-
* 4. Establish ownership of data
|
|
11
|
+
* Represents a member with cryptographic capabilities.
|
|
12
|
+
* This class provides methods for signing, verifying, encrypting, and decrypting data.
|
|
13
|
+
* It also manages the member's keys and wallet.
|
|
17
14
|
*/
|
|
18
15
|
export class Member {
|
|
19
16
|
_eciesService;
|
|
@@ -111,15 +108,16 @@ export class Member {
|
|
|
111
108
|
this.unloadWallet();
|
|
112
109
|
this.unloadPrivateKey();
|
|
113
110
|
}
|
|
114
|
-
loadWallet(mnemonic) {
|
|
111
|
+
loadWallet(mnemonic, eciesParams) {
|
|
115
112
|
if (this._wallet) {
|
|
116
113
|
throw new MemberError(MemberErrorType.WalletAlreadyLoaded, getCompatibleEciesEngine());
|
|
117
114
|
}
|
|
115
|
+
const eciesConsts = eciesParams ?? ECIES;
|
|
118
116
|
const { wallet } = this._eciesService.walletAndSeedFromMnemonic(mnemonic);
|
|
119
117
|
const privateKey = wallet.getPrivateKey();
|
|
120
118
|
const publicKey = wallet.getPublicKey();
|
|
121
119
|
const publicKeyWithPrefix = new Uint8Array(publicKey.length + 1);
|
|
122
|
-
publicKeyWithPrefix[0] =
|
|
120
|
+
publicKeyWithPrefix[0] = eciesConsts.PUBLIC_KEY_MAGIC;
|
|
123
121
|
publicKeyWithPrefix.set(publicKey, 1);
|
|
124
122
|
if (uint8ArrayToHex(publicKeyWithPrefix) !== uint8ArrayToHex(this._publicKey)) {
|
|
125
123
|
throw new MemberError(MemberErrorType.InvalidMnemonic, getCompatibleEciesEngine());
|
|
@@ -215,12 +213,13 @@ export class Member {
|
|
|
215
213
|
const dateCreated = new Date(storage.dateCreated);
|
|
216
214
|
return new Member(eciesService, storage.type, storage.name, email, base64ToUint8Array(storage.publicKey), undefined, undefined, new GuidV4(storage.id), dateCreated, new Date(storage.dateUpdated), new GuidV4(storage.creatorId));
|
|
217
215
|
}
|
|
218
|
-
static fromMnemonic(mnemonic, eciesService) {
|
|
216
|
+
static fromMnemonic(mnemonic, eciesService, eciesParams) {
|
|
217
|
+
const eciesConsts = eciesParams ?? ECIES;
|
|
219
218
|
const { wallet } = eciesService.walletAndSeedFromMnemonic(mnemonic);
|
|
220
219
|
const privateKey = wallet.getPrivateKey();
|
|
221
220
|
const publicKey = wallet.getPublicKey();
|
|
222
221
|
const publicKeyWithPrefix = new Uint8Array(publicKey.length + 1);
|
|
223
|
-
publicKeyWithPrefix[0] =
|
|
222
|
+
publicKeyWithPrefix[0] = eciesConsts.PUBLIC_KEY_MAGIC;
|
|
224
223
|
publicKeyWithPrefix.set(publicKey, 1);
|
|
225
224
|
return new Member(eciesService, MemberType.User, 'Test User', new EmailString('test@example.com'), publicKeyWithPrefix, new SecureBuffer(privateKey), wallet);
|
|
226
225
|
}
|
|
@@ -228,7 +227,7 @@ export class Member {
|
|
|
228
227
|
// Add injected services as parameters
|
|
229
228
|
eciesService,
|
|
230
229
|
// Original parameters
|
|
231
|
-
type, name, email, forceMnemonic, createdBy) {
|
|
230
|
+
type, name, email, forceMnemonic, createdBy, eciesParams) {
|
|
232
231
|
// Validate inputs first
|
|
233
232
|
if (!name || name.length == 0) {
|
|
234
233
|
throw new MemberError(MemberErrorType.MissingMemberName, getCompatibleEciesEngine());
|
|
@@ -242,6 +241,7 @@ export class Member {
|
|
|
242
241
|
if (email.toString().trim() != email.toString()) {
|
|
243
242
|
throw new MemberError(MemberErrorType.InvalidEmailWhitespace, getCompatibleEciesEngine());
|
|
244
243
|
}
|
|
244
|
+
const eciesConsts = eciesParams ?? ECIES;
|
|
245
245
|
// Use injected services
|
|
246
246
|
const mnemonic = forceMnemonic ?? eciesService.generateNewMnemonic();
|
|
247
247
|
const { wallet } = eciesService.walletAndSeedFromMnemonic(mnemonic);
|
|
@@ -250,7 +250,7 @@ export class Member {
|
|
|
250
250
|
// Get public key with 0x04 prefix
|
|
251
251
|
const publicKey = wallet.getPublicKey();
|
|
252
252
|
const publicKeyWithPrefix = new Uint8Array(publicKey.length + 1);
|
|
253
|
-
publicKeyWithPrefix[0] =
|
|
253
|
+
publicKeyWithPrefix[0] = eciesConsts.PUBLIC_KEY_MAGIC;
|
|
254
254
|
publicKeyWithPrefix.set(publicKey, 1);
|
|
255
255
|
const newId = GuidV4.new();
|
|
256
256
|
const dateCreated = new Date();
|
package/dist/member.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"member.js","sourceRoot":"","sources":["../src/member.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"member.js","sourceRoot":"","sources":["../src/member.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"regexes.d.ts","sourceRoot":"","sources":["../src/regexes.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,cAAc,QACyF,CAAC;AAErH,eAAO,MAAM,cAAc,QACwE,CAAC"}
|
package/dist/regexes.js
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
export const PASSWORD_REGEX = /^(?=.*[A-Za-z])(?=.*\d)(?=.*[!@#$%^&*()_+\-=[\]{};':"\\|,.<>/?])[A-Za-z\d!@#$%^&*()_+\-=[\]{};':"\\|,.<>/?]{8,}$/;
|
|
2
|
+
export const MNEMONIC_REGEX = /^(?:\w+\s){11}\w+$|^(?:\w+\s){14}\w+$|^(?:\w+\s){17}\w+$|^(?:\w+\s){20}\w+$|^(?:\w+\s){23}\w+$/i;
|
|
3
|
+
//# sourceMappingURL=regexes.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"regexes.js","sourceRoot":"","sources":["../src/regexes.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,cAAc,GACzB,kHAAkH,CAAC;AAErH,MAAM,CAAC,MAAM,cAAc,GACzB,iGAAiG,CAAC"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { IECIESConstants } from '../interfaces/ecies-consts';
|
|
1
2
|
export declare abstract class AESGCMService {
|
|
2
3
|
static readonly ALGORITHM_NAME = "AES-GCM";
|
|
3
4
|
/**
|
|
@@ -6,7 +7,7 @@ export declare abstract class AESGCMService {
|
|
|
6
7
|
* @param key Key to use for encryption (must be 16, 24 or 32 bytes for AES)
|
|
7
8
|
* @returns Encrypted data
|
|
8
9
|
*/
|
|
9
|
-
static encrypt(data: Uint8Array, key: Uint8Array, authTag?: boolean): Promise<{
|
|
10
|
+
static encrypt(data: Uint8Array, key: Uint8Array, authTag?: boolean, eciesParams?: IECIESConstants): Promise<{
|
|
10
11
|
encrypted: Uint8Array;
|
|
11
12
|
iv: Uint8Array;
|
|
12
13
|
tag?: Uint8Array;
|
|
@@ -39,7 +40,7 @@ export declare abstract class AESGCMService {
|
|
|
39
40
|
* @param hasAuthTag Whether the combined data includes an authentication tag
|
|
40
41
|
* @returns Object containing the split components
|
|
41
42
|
*/
|
|
42
|
-
static splitEncryptedData(combinedData: Uint8Array, hasAuthTag?: boolean): {
|
|
43
|
+
static splitEncryptedData(combinedData: Uint8Array, hasAuthTag?: boolean, eciesParams?: IECIESConstants): {
|
|
43
44
|
iv: Uint8Array;
|
|
44
45
|
encryptedDataWithTag: Uint8Array;
|
|
45
46
|
};
|
|
@@ -51,6 +52,6 @@ export declare abstract class AESGCMService {
|
|
|
51
52
|
* @param authTag Whether the encrypted data includes an authentication tag
|
|
52
53
|
* @returns Decrypted data
|
|
53
54
|
*/
|
|
54
|
-
static decrypt(iv: Uint8Array, encryptedData: Uint8Array, key: Uint8Array, authTag?: boolean): Promise<Uint8Array>;
|
|
55
|
+
static decrypt(iv: Uint8Array, encryptedData: Uint8Array, key: Uint8Array, authTag?: boolean, eciesParams?: IECIESConstants): Promise<Uint8Array>;
|
|
55
56
|
}
|
|
56
57
|
//# sourceMappingURL=aes-gcm.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"aes-gcm.d.ts","sourceRoot":"","sources":["../../src/services/aes-gcm.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"aes-gcm.d.ts","sourceRoot":"","sources":["../../src/services/aes-gcm.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAG7D,8BAAsB,aAAa;IACjC,gBAAuB,cAAc,aAAa;IAClD;;;;;OAKG;WACiB,OAAO,CACzB,IAAI,EAAE,UAAU,EAChB,GAAG,EAAE,UAAU,EACf,OAAO,GAAE,OAAe,EACxB,WAAW,CAAC,EAAE,eAAe,GAC5B,OAAO,CAAC;QAAE,SAAS,EAAE,UAAU,CAAC;QAAC,EAAE,EAAE,UAAU,CAAC;QAAC,GAAG,CAAC,EAAE,UAAU,CAAA;KAAE,CAAC;IAgCvE;;;;;OAKG;WACW,0BAA0B,CACtC,aAAa,EAAE,UAAU,EACzB,OAAO,EAAE,UAAU,GAClB,UAAU;IAOb;;;;;OAKG;WACW,yBAAyB,CACrC,EAAE,EAAE,UAAU,EACd,oBAAoB,EAAE,UAAU,GAC/B,UAAU;IAOb;;;;;;OAMG;WACW,4BAA4B,CACxC,EAAE,EAAE,UAAU,EACd,aAAa,EAAE,UAAU,EACzB,OAAO,EAAE,UAAU,GAClB,UAAU;IAQb;;;;;OAKG;WACW,kBAAkB,CAC9B,YAAY,EAAE,UAAU,EACxB,UAAU,GAAE,OAAc,EAC1B,WAAW,CAAC,EAAE,eAAe,GAC5B;QAAE,EAAE,EAAE,UAAU,CAAC;QAAC,oBAAoB,EAAE,UAAU,CAAA;KAAE;IAiBvD;;;;;;;OAOG;WACiB,OAAO,CACzB,EAAE,EAAE,UAAU,EACd,aAAa,EAAE,UAAU,EACzB,GAAG,EAAE,UAAU,EACf,OAAO,GAAE,OAAe,EACxB,WAAW,CAAC,EAAE,eAAe,GAC5B,OAAO,CAAC,UAAU,CAAC;CAiCvB"}
|
package/dist/services/aes-gcm.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ECIES } from '../
|
|
1
|
+
import { ECIES } from '../defaults';
|
|
2
2
|
export class AESGCMService {
|
|
3
3
|
static ALGORITHM_NAME = 'AES-GCM';
|
|
4
4
|
/**
|
|
@@ -7,19 +7,20 @@ export class AESGCMService {
|
|
|
7
7
|
* @param key Key to use for encryption (must be 16, 24 or 32 bytes for AES)
|
|
8
8
|
* @returns Encrypted data
|
|
9
9
|
*/
|
|
10
|
-
static async encrypt(data, key, authTag = false) {
|
|
10
|
+
static async encrypt(data, key, authTag = false, eciesParams) {
|
|
11
11
|
const cryptoKey = await crypto.subtle.importKey('raw', new Uint8Array(key), { name: AESGCMService.ALGORITHM_NAME }, false, ['encrypt']);
|
|
12
|
-
const
|
|
12
|
+
const eciesConsts = eciesParams ?? ECIES;
|
|
13
|
+
const iv = crypto.getRandomValues(new Uint8Array(eciesConsts.IV_SIZE));
|
|
13
14
|
const encryptedResult = await crypto.subtle.encrypt({
|
|
14
15
|
name: AESGCMService.ALGORITHM_NAME,
|
|
15
16
|
iv,
|
|
16
|
-
...(authTag && { tagLength:
|
|
17
|
+
...(authTag && { tagLength: eciesConsts.AUTH_TAG_SIZE * 8 }),
|
|
17
18
|
}, cryptoKey, new Uint8Array(data));
|
|
18
19
|
const encryptedArray = new Uint8Array(encryptedResult);
|
|
19
20
|
if (!authTag) {
|
|
20
21
|
return { encrypted: encryptedArray, iv };
|
|
21
22
|
}
|
|
22
|
-
const authTagLengthBytes =
|
|
23
|
+
const authTagLengthBytes = eciesConsts.AUTH_TAG_SIZE;
|
|
23
24
|
const encryptedBytes = encryptedArray.slice(0, -authTagLengthBytes); // Remove auth tag
|
|
24
25
|
const authTagBytes = encryptedArray.slice(-authTagLengthBytes); // Last 16 bytes are auth tag
|
|
25
26
|
return { encrypted: encryptedBytes, iv, tag: authTagBytes };
|
|
@@ -65,9 +66,10 @@ export class AESGCMService {
|
|
|
65
66
|
* @param hasAuthTag Whether the combined data includes an authentication tag
|
|
66
67
|
* @returns Object containing the split components
|
|
67
68
|
*/
|
|
68
|
-
static splitEncryptedData(combinedData, hasAuthTag = true) {
|
|
69
|
-
const
|
|
70
|
-
const
|
|
69
|
+
static splitEncryptedData(combinedData, hasAuthTag = true, eciesParams) {
|
|
70
|
+
const eciesConsts = eciesParams ?? ECIES;
|
|
71
|
+
const ivLength = eciesConsts.IV_SIZE;
|
|
72
|
+
const tagLength = hasAuthTag ? eciesConsts.AUTH_TAG_SIZE : 0;
|
|
71
73
|
if (combinedData.length < ivLength + tagLength) {
|
|
72
74
|
throw new Error('Combined data is too short to contain required components');
|
|
73
75
|
}
|
|
@@ -83,7 +85,8 @@ export class AESGCMService {
|
|
|
83
85
|
* @param authTag Whether the encrypted data includes an authentication tag
|
|
84
86
|
* @returns Decrypted data
|
|
85
87
|
*/
|
|
86
|
-
static async decrypt(iv, encryptedData, key, authTag = false) {
|
|
88
|
+
static async decrypt(iv, encryptedData, key, authTag = false, eciesParams) {
|
|
89
|
+
const eciesConsts = eciesParams ?? ECIES;
|
|
87
90
|
const cryptoKey = await crypto.subtle.importKey('raw', new Uint8Array(key), { name: AESGCMService.ALGORITHM_NAME }, false, ['decrypt']);
|
|
88
91
|
if (!authTag) {
|
|
89
92
|
const decrypted = await crypto.subtle.decrypt({ name: AESGCMService.ALGORITHM_NAME, iv: new Uint8Array(iv) }, cryptoKey, new Uint8Array(encryptedData));
|
|
@@ -93,7 +96,7 @@ export class AESGCMService {
|
|
|
93
96
|
const decryptedResult = await crypto.subtle.decrypt({
|
|
94
97
|
name: AESGCMService.ALGORITHM_NAME,
|
|
95
98
|
iv: new Uint8Array(iv),
|
|
96
|
-
tagLength:
|
|
99
|
+
tagLength: eciesConsts.AUTH_TAG_SIZE * 8,
|
|
97
100
|
}, cryptoKey, new Uint8Array(encryptedData));
|
|
98
101
|
return new Uint8Array(decryptedResult);
|
|
99
102
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"aes-gcm.js","sourceRoot":"","sources":["../../src/services/aes-gcm.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"aes-gcm.js","sourceRoot":"","sources":["../../src/services/aes-gcm.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,13 +1,15 @@
|
|
|
1
1
|
import { IECIESConfig } from '../../interfaces/ecies-config';
|
|
2
2
|
import { SecureString } from '../../secure-string';
|
|
3
3
|
import { ISimpleKeyPair, IWalletSeed } from './interfaces';
|
|
4
|
+
import { IECIESConstants } from '../../interfaces/ecies-consts';
|
|
4
5
|
/**
|
|
5
6
|
* Browser-compatible crypto core for ECIES operations
|
|
6
7
|
* Uses @scure libraries for browser compatibility
|
|
7
8
|
*/
|
|
8
9
|
export declare class EciesCryptoCore {
|
|
9
|
-
|
|
10
|
-
|
|
10
|
+
protected readonly _config: IECIESConfig;
|
|
11
|
+
protected readonly _eciesConsts: IECIESConstants;
|
|
12
|
+
constructor(config: IECIESConfig, eciesParams?: IECIESConstants);
|
|
11
13
|
get config(): IECIESConfig;
|
|
12
14
|
/**
|
|
13
15
|
* Validates and normalizes a public key for ECIES operations
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"crypto-core.d.ts","sourceRoot":"","sources":["../../../src/services/ecies/crypto-core.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAC7D,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"crypto-core.d.ts","sourceRoot":"","sources":["../../../src/services/ecies/crypto-core.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAC7D,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAG3D,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAEhE;;;GAGG;AACH,qBAAa,eAAe;IAC1B,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,YAAY,CAAC;IACzC,SAAS,CAAC,QAAQ,CAAC,YAAY,EAAE,eAAe,CAAC;gBAErC,MAAM,EAAE,YAAY,EAAE,WAAW,CAAC,EAAE,eAAe;IAO/D,IAAW,MAAM,IAAI,YAAY,CAEhC;IAED;;OAEG;IACI,kBAAkB,CAAC,SAAS,EAAE,UAAU,GAAG,UAAU;IA0B5D;;OAEG;IACI,mBAAmB,IAAI,YAAY;IAM1C;;OAEG;IACI,yBAAyB,CAAC,QAAQ,EAAE,YAAY,GAAG,WAAW;IAuBrE;;OAEG;IACI,mBAAmB,CAAC,IAAI,EAAE,UAAU,GAAG,cAAc;IAiB5D;;OAEG;IACI,uBAAuB,CAAC,QAAQ,EAAE,YAAY,GAAG,cAAc;IAKtE;;OAEG;IACI,kBAAkB,IAAI,UAAU;IAIvC;;OAEG;IACI,YAAY,CAAC,UAAU,EAAE,UAAU,GAAG,UAAU;IAMvD;;OAEG;IACU,wBAAwB,IAAI,OAAO,CAAC,cAAc,CAAC;IAMhE;;OAEG;IACI,mBAAmB,CACxB,UAAU,EAAE,UAAU,EACtB,SAAS,EAAE,UAAU,GACpB,UAAU;CAcd"}
|
|
@@ -2,7 +2,7 @@ import { Wallet } from '@ethereumjs/wallet';
|
|
|
2
2
|
import { HDKey } from '@scure/bip32';
|
|
3
3
|
import { generateMnemonic, mnemonicToSeedSync, validateMnemonic, } from '@scure/bip39';
|
|
4
4
|
import { wordlist } from '@scure/bip39/wordlists/english';
|
|
5
|
-
import { ECIES } from '../../
|
|
5
|
+
import { ECIES } from '../../defaults';
|
|
6
6
|
import { SecureString } from '../../secure-string';
|
|
7
7
|
import { secp256k1 } from '@noble/curves/secp256k1.js';
|
|
8
8
|
/**
|
|
@@ -11,8 +11,10 @@ import { secp256k1 } from '@noble/curves/secp256k1.js';
|
|
|
11
11
|
*/
|
|
12
12
|
export class EciesCryptoCore {
|
|
13
13
|
_config;
|
|
14
|
-
|
|
14
|
+
_eciesConsts;
|
|
15
|
+
constructor(config, eciesParams) {
|
|
15
16
|
this._config = config;
|
|
17
|
+
this._eciesConsts = eciesParams ?? ECIES;
|
|
16
18
|
}
|
|
17
19
|
get config() {
|
|
18
20
|
return this._config;
|
|
@@ -26,14 +28,14 @@ export class EciesCryptoCore {
|
|
|
26
28
|
}
|
|
27
29
|
const keyLength = publicKey.length;
|
|
28
30
|
// Already in correct format (65 bytes with 0x04 prefix)
|
|
29
|
-
if (keyLength ===
|
|
30
|
-
publicKey[0] ===
|
|
31
|
+
if (keyLength === this._eciesConsts.PUBLIC_KEY_LENGTH &&
|
|
32
|
+
publicKey[0] === this._eciesConsts.PUBLIC_KEY_MAGIC) {
|
|
31
33
|
return publicKey;
|
|
32
34
|
}
|
|
33
35
|
// Raw key without prefix (64 bytes) - add the 0x04 prefix
|
|
34
|
-
if (keyLength ===
|
|
35
|
-
const result = new Uint8Array(
|
|
36
|
-
result[0] =
|
|
36
|
+
if (keyLength === this._eciesConsts.RAW_PUBLIC_KEY_LENGTH) {
|
|
37
|
+
const result = new Uint8Array(this._eciesConsts.PUBLIC_KEY_LENGTH);
|
|
38
|
+
result[0] = this._eciesConsts.PUBLIC_KEY_MAGIC;
|
|
37
39
|
result.set(publicKey, 1);
|
|
38
40
|
return result;
|
|
39
41
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"crypto-core.js","sourceRoot":"","sources":["../../../src/services/ecies/crypto-core.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;AACrC,OAAO,EACL,gBAAgB,EAChB,kBAAkB,EAClB,gBAAgB,GACjB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,QAAQ,EAAE,MAAM,gCAAgC,CAAC;AAC1D,OAAO,EAAE,KAAK,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"crypto-core.js","sourceRoot":"","sources":["../../../src/services/ecies/crypto-core.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,11 +1,14 @@
|
|
|
1
|
+
import { IECIESConstants } from '../../interfaces/ecies-consts';
|
|
1
2
|
import { IECIESConfig } from '../../interfaces/ecies-config';
|
|
3
|
+
import { EciesCryptoCore } from './crypto-core';
|
|
2
4
|
import { IMultiEncryptedMessage, IMultiEncryptedParsedHeader, IMultiRecipient } from './interfaces';
|
|
3
5
|
/**
|
|
4
6
|
* Browser-compatible multi-recipient ECIES encryption/decryption
|
|
5
7
|
*/
|
|
6
8
|
export declare class EciesMultiRecipient {
|
|
7
|
-
|
|
8
|
-
|
|
9
|
+
protected readonly cryptoCore: EciesCryptoCore;
|
|
10
|
+
protected readonly eciesConsts: IECIESConstants;
|
|
11
|
+
constructor(config: IECIESConfig, eciesParams?: IECIESConstants);
|
|
9
12
|
/**
|
|
10
13
|
* Get the header size for multi-recipient encryption
|
|
11
14
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"multi-recipient.d.ts","sourceRoot":"","sources":["../../../src/services/ecies/multi-recipient.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"multi-recipient.d.ts","sourceRoot":"","sources":["../../../src/services/ecies/multi-recipient.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAEhE,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAG7D,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EACL,sBAAsB,EACtB,2BAA2B,EAC3B,eAAe,EAChB,MAAM,cAAc,CAAC;AAEtB;;GAEG;AACH,qBAAa,mBAAmB;IAC9B,SAAS,CAAC,QAAQ,CAAC,UAAU,EAAE,eAAe,CAAC;IAC/C,SAAS,CAAC,QAAQ,CAAC,WAAW,EAAE,eAAe,CAAC;gBAEpC,MAAM,EAAE,YAAY,EAAE,WAAW,CAAC,EAAE,eAAe;IAK/D;;OAEG;IACI,aAAa,CAAC,cAAc,EAAE,MAAM,GAAG,MAAM;IASpD;;;;;OAKG;IACU,UAAU,CACrB,iBAAiB,EAAE,UAAU,EAC7B,mBAAmB,EAAE,UAAU,GAC9B,OAAO,CAAC,UAAU,CAAC;IA8BtB;;;;;OAKG;IACU,UAAU,CACrB,UAAU,EAAE,UAAU,EACtB,YAAY,EAAE,UAAU,GACvB,OAAO,CAAC,UAAU,CAAC;IAiDtB;;OAEG;IACU,eAAe,CAC1B,UAAU,EAAE,eAAe,EAAE,EAC7B,OAAO,EAAE,UAAU,EACnB,QAAQ,GAAE,UAA8B,GACvC,OAAO,CAAC,sBAAsB,CAAC;IA2DlC;;OAEG;IACU,2BAA2B,CACtC,aAAa,EAAE,sBAAsB,EACrC,WAAW,EAAE,UAAU,EACvB,UAAU,EAAE,UAAU,GACrB,OAAO,CAAC,UAAU,CAAC;IAuDtB;;OAEG;IACI,WAAW,CAAC,IAAI,EAAE,sBAAsB,GAAG,UAAU;IAuC5D;;OAEG;IACI,WAAW,CAAC,IAAI,EAAE,UAAU,GAAG,2BAA2B;IAoDjE;;OAEG;IACI,YAAY,CAAC,IAAI,EAAE,UAAU,GAAG,sBAAsB;IAU7D,OAAO,CAAC,WAAW;CAOpB"}
|