@digitaldefiance/node-ecies-lib 2.1.15 → 2.1.17
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 +3 -3
- package/src/index.d.ts +1 -0
- package/src/index.d.ts.map +1 -1
- package/src/index.js +2 -0
- package/src/index.js.map +1 -1
- package/src/test-mocks/index.d.ts +2 -0
- package/src/test-mocks/index.d.ts.map +1 -0
- package/src/test-mocks/index.js +5 -0
- package/src/test-mocks/index.js.map +1 -0
- package/src/test-mocks/mock-backend-member.d.ts +70 -0
- package/src/test-mocks/mock-backend-member.d.ts.map +1 -0
- package/src/test-mocks/mock-backend-member.js +127 -0
- package/src/test-mocks/mock-backend-member.js.map +1 -0
package/README.md
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@digitaldefiance/node-ecies-lib",
|
|
3
|
-
"version": "2.1.
|
|
3
|
+
"version": "2.1.17",
|
|
4
4
|
"description": "Digital Defiance Node ECIES Library",
|
|
5
5
|
"main": "src/index.js",
|
|
6
6
|
"types": "src/index.d.ts",
|
|
@@ -34,8 +34,8 @@
|
|
|
34
34
|
"license": "MIT",
|
|
35
35
|
"packageManager": "yarn@4.10.3",
|
|
36
36
|
"dependencies": {
|
|
37
|
-
"@digitaldefiance/ecies-lib": "2.1.
|
|
38
|
-
"@digitaldefiance/i18n-lib": "2.1.
|
|
37
|
+
"@digitaldefiance/ecies-lib": "2.1.17",
|
|
38
|
+
"@digitaldefiance/i18n-lib": "2.1.16",
|
|
39
39
|
"@ethereumjs/wallet": "^10.0.0",
|
|
40
40
|
"@noble/curves": "^2.0.1",
|
|
41
41
|
"@noble/hashes": "^2.0.1",
|
package/src/index.d.ts
CHANGED
package/src/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../packages/digitaldefiance-node-ecies-lib/src/index.ts"],"names":[],"mappings":"AACA,cAAc,YAAY,CAAC;AAC3B,cAAc,QAAQ,CAAC;AACvB,cAAc,OAAO,CAAC;AAGtB,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,QAAQ,CAAC;AACvB,cAAc,cAAc,CAAC;AAC7B,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC;AAC3B,cAAc,SAAS,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../packages/digitaldefiance-node-ecies-lib/src/index.ts"],"names":[],"mappings":"AACA,cAAc,YAAY,CAAC;AAC3B,cAAc,QAAQ,CAAC;AACvB,cAAc,OAAO,CAAC;AAGtB,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,QAAQ,CAAC;AACvB,cAAc,cAAc,CAAC;AAC7B,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC;AAC3B,cAAc,SAAS,CAAC;AAGxB,cAAc,cAAc,CAAC"}
|
package/src/index.js
CHANGED
|
@@ -13,4 +13,6 @@ tslib_1.__exportStar(require("./interfaces"), exports);
|
|
|
13
13
|
tslib_1.__exportStar(require("./member"), exports);
|
|
14
14
|
tslib_1.__exportStar(require("./services"), exports);
|
|
15
15
|
tslib_1.__exportStar(require("./types"), exports);
|
|
16
|
+
// test helpers for consumers
|
|
17
|
+
tslib_1.__exportStar(require("./test-mocks"), exports);
|
|
16
18
|
//# sourceMappingURL=index.js.map
|
package/src/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../packages/digitaldefiance-node-ecies-lib/src/index.ts"],"names":[],"mappings":";;;AAAA,0BAA0B;AAC1B,qDAA2B;AAC3B,iDAAuB;AACvB,gDAAsB;AAEtB,4CAA4C;AAC5C,sDAA4B;AAC5B,yDAA+B;AAC/B,iDAAuB;AACvB,uDAA6B;AAC7B,mDAAyB;AACzB,qDAA2B;AAC3B,kDAAwB"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../packages/digitaldefiance-node-ecies-lib/src/index.ts"],"names":[],"mappings":";;;AAAA,0BAA0B;AAC1B,qDAA2B;AAC3B,iDAAuB;AACvB,gDAAsB;AAEtB,4CAA4C;AAC5C,sDAA4B;AAC5B,yDAA+B;AAC/B,iDAAuB;AACvB,uDAA6B;AAC7B,mDAAyB;AACzB,qDAA2B;AAC3B,kDAAwB;AAExB,6BAA6B;AAC7B,uDAA6B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-node-ecies-lib/src/test-mocks/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-node-ecies-lib/src/test-mocks/index.ts"],"names":[],"mappings":";;;AAAA,gEAAsC"}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import { EmailString, MemberType, SecureBuffer, SecureString } from '@digitaldefiance/ecies-lib';
|
|
2
|
+
import { Wallet } from '@ethereumjs/wallet';
|
|
3
|
+
import { Types } from 'mongoose';
|
|
4
|
+
import { IMemberOperational } from '../interfaces';
|
|
5
|
+
import { SignatureBuffer } from '../types';
|
|
6
|
+
export declare class MockBackendMember implements IMemberOperational<Types.ObjectId> {
|
|
7
|
+
private _id;
|
|
8
|
+
private _type;
|
|
9
|
+
private _name;
|
|
10
|
+
private _email;
|
|
11
|
+
private _publicKey;
|
|
12
|
+
private _creatorId;
|
|
13
|
+
private _dateCreated;
|
|
14
|
+
private _dateUpdated;
|
|
15
|
+
private _privateKey?;
|
|
16
|
+
private _wallet?;
|
|
17
|
+
private _hasPrivateKey;
|
|
18
|
+
constructor(data?: Partial<{
|
|
19
|
+
id: Types.ObjectId;
|
|
20
|
+
type: MemberType;
|
|
21
|
+
name: string;
|
|
22
|
+
email: EmailString;
|
|
23
|
+
publicKey: Buffer;
|
|
24
|
+
privateKey: SecureBuffer;
|
|
25
|
+
wallet: Wallet;
|
|
26
|
+
creatorId: Types.ObjectId;
|
|
27
|
+
dateCreated: Date;
|
|
28
|
+
dateUpdated: Date;
|
|
29
|
+
hasPrivateKey: boolean;
|
|
30
|
+
}>);
|
|
31
|
+
get id(): Types.ObjectId;
|
|
32
|
+
get type(): MemberType;
|
|
33
|
+
get name(): string;
|
|
34
|
+
get email(): EmailString;
|
|
35
|
+
get publicKey(): Uint8Array;
|
|
36
|
+
get creatorId(): Types.ObjectId;
|
|
37
|
+
get dateCreated(): Date;
|
|
38
|
+
get dateUpdated(): Date;
|
|
39
|
+
get privateKey(): SecureBuffer | undefined;
|
|
40
|
+
get wallet(): Wallet | undefined;
|
|
41
|
+
get hasPrivateKey(): boolean;
|
|
42
|
+
unloadPrivateKey(): void;
|
|
43
|
+
unloadWallet(): void;
|
|
44
|
+
unloadWalletAndPrivateKey(): void;
|
|
45
|
+
loadWallet(mnemonic: SecureString): void;
|
|
46
|
+
loadPrivateKey(privateKey: SecureBuffer): void;
|
|
47
|
+
sign(data: Buffer): SignatureBuffer;
|
|
48
|
+
verify(signature: SignatureBuffer, data: Buffer): boolean;
|
|
49
|
+
encryptData(data: string | Buffer): Uint8Array;
|
|
50
|
+
decryptData(encryptedData: Buffer): Uint8Array;
|
|
51
|
+
toJson(): string;
|
|
52
|
+
dispose(): void;
|
|
53
|
+
static create(overrides?: Partial<{
|
|
54
|
+
id: Types.ObjectId;
|
|
55
|
+
type: MemberType;
|
|
56
|
+
name: string;
|
|
57
|
+
email: EmailString;
|
|
58
|
+
publicKey: Buffer;
|
|
59
|
+
privateKey: SecureBuffer;
|
|
60
|
+
wallet: Wallet;
|
|
61
|
+
creatorId: Types.ObjectId;
|
|
62
|
+
dateCreated: Date;
|
|
63
|
+
dateUpdated: Date;
|
|
64
|
+
hasPrivateKey: boolean;
|
|
65
|
+
}>): MockBackendMember;
|
|
66
|
+
static createMultiple(count: number): MockBackendMember[];
|
|
67
|
+
static createWithPrivateKey(): MockBackendMember;
|
|
68
|
+
static createWithoutPrivateKey(): MockBackendMember;
|
|
69
|
+
}
|
|
70
|
+
//# sourceMappingURL=mock-backend-member.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mock-backend-member.d.ts","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-node-ecies-lib/src/test-mocks/mock-backend-member.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.MockBackendMember = void 0;
|
|
4
|
+
const ecies_lib_1 = require("@digitaldefiance/ecies-lib");
|
|
5
|
+
const faker_1 = require("@faker-js/faker");
|
|
6
|
+
const mongodb_1 = require("mongodb");
|
|
7
|
+
const createMockWallet = () => ({
|
|
8
|
+
getPrivateKey: () => Buffer.from(faker_1.faker.string.hexadecimal({ length: 64 }), 'hex'),
|
|
9
|
+
getPublicKey: () => Buffer.from(faker_1.faker.string.hexadecimal({ length: 128 }), 'hex'),
|
|
10
|
+
getAddress: () => Buffer.from(faker_1.faker.string.hexadecimal({ length: 40 }), 'hex'),
|
|
11
|
+
sign: () => Buffer.from(faker_1.faker.string.hexadecimal({ length: 128 }), 'hex'),
|
|
12
|
+
});
|
|
13
|
+
class MockBackendMember {
|
|
14
|
+
_id;
|
|
15
|
+
_type;
|
|
16
|
+
_name;
|
|
17
|
+
_email;
|
|
18
|
+
_publicKey;
|
|
19
|
+
_creatorId;
|
|
20
|
+
_dateCreated;
|
|
21
|
+
_dateUpdated;
|
|
22
|
+
_privateKey;
|
|
23
|
+
_wallet;
|
|
24
|
+
_hasPrivateKey;
|
|
25
|
+
constructor(data = {}) {
|
|
26
|
+
this._id = data.id || new mongodb_1.ObjectId();
|
|
27
|
+
this._type = data.type || faker_1.faker.helpers.enumValue(ecies_lib_1.MemberType);
|
|
28
|
+
this._name = data.name || faker_1.faker.person.fullName();
|
|
29
|
+
this._email = data.email || new ecies_lib_1.EmailString(faker_1.faker.internet.email());
|
|
30
|
+
this._publicKey =
|
|
31
|
+
data.publicKey ||
|
|
32
|
+
Buffer.from(faker_1.faker.string.hexadecimal({ length: 130 }), 'hex');
|
|
33
|
+
this._creatorId = data.creatorId || this._id;
|
|
34
|
+
this._dateCreated = data.dateCreated || faker_1.faker.date.past();
|
|
35
|
+
this._dateUpdated =
|
|
36
|
+
data.dateUpdated ||
|
|
37
|
+
faker_1.faker.date.between({ from: this._dateCreated, to: new Date() });
|
|
38
|
+
this._privateKey = data.privateKey;
|
|
39
|
+
this._wallet =
|
|
40
|
+
data.wallet ||
|
|
41
|
+
(data.hasPrivateKey !== false ? createMockWallet() : undefined);
|
|
42
|
+
this._hasPrivateKey = data.hasPrivateKey ?? !!this._privateKey;
|
|
43
|
+
}
|
|
44
|
+
get id() {
|
|
45
|
+
return this._id;
|
|
46
|
+
}
|
|
47
|
+
get type() {
|
|
48
|
+
return this._type;
|
|
49
|
+
}
|
|
50
|
+
get name() {
|
|
51
|
+
return this._name;
|
|
52
|
+
}
|
|
53
|
+
get email() {
|
|
54
|
+
return this._email;
|
|
55
|
+
}
|
|
56
|
+
get publicKey() {
|
|
57
|
+
return this._publicKey;
|
|
58
|
+
}
|
|
59
|
+
get creatorId() {
|
|
60
|
+
return this._creatorId;
|
|
61
|
+
}
|
|
62
|
+
get dateCreated() {
|
|
63
|
+
return this._dateCreated;
|
|
64
|
+
}
|
|
65
|
+
get dateUpdated() {
|
|
66
|
+
return this._dateUpdated;
|
|
67
|
+
}
|
|
68
|
+
get privateKey() {
|
|
69
|
+
return this._privateKey;
|
|
70
|
+
}
|
|
71
|
+
get wallet() {
|
|
72
|
+
return this._wallet;
|
|
73
|
+
}
|
|
74
|
+
get hasPrivateKey() {
|
|
75
|
+
return this._hasPrivateKey;
|
|
76
|
+
}
|
|
77
|
+
unloadPrivateKey() { }
|
|
78
|
+
unloadWallet() { }
|
|
79
|
+
unloadWalletAndPrivateKey() { }
|
|
80
|
+
loadWallet(mnemonic) { }
|
|
81
|
+
loadPrivateKey(privateKey) { }
|
|
82
|
+
sign(data) {
|
|
83
|
+
return Buffer.from(faker_1.faker.string.hexadecimal({ length: 128 }), 'hex');
|
|
84
|
+
}
|
|
85
|
+
verify(signature, data) {
|
|
86
|
+
return true;
|
|
87
|
+
}
|
|
88
|
+
encryptData(data) {
|
|
89
|
+
return Buffer.from(faker_1.faker.string.hexadecimal({ length: 256 }), 'hex');
|
|
90
|
+
}
|
|
91
|
+
decryptData(encryptedData) {
|
|
92
|
+
return Buffer.from(faker_1.faker.lorem.paragraph());
|
|
93
|
+
}
|
|
94
|
+
toJson() {
|
|
95
|
+
return JSON.stringify({
|
|
96
|
+
id: this._id.toString(),
|
|
97
|
+
type: this._type,
|
|
98
|
+
name: this._name,
|
|
99
|
+
email: this._email.toString(),
|
|
100
|
+
publicKey: this._publicKey.toString('base64'),
|
|
101
|
+
creatorId: this._creatorId.toString(),
|
|
102
|
+
dateCreated: this._dateCreated.toISOString(),
|
|
103
|
+
dateUpdated: this._dateUpdated.toISOString(),
|
|
104
|
+
});
|
|
105
|
+
}
|
|
106
|
+
dispose() { }
|
|
107
|
+
static create(overrides = {}) {
|
|
108
|
+
return new MockBackendMember(overrides);
|
|
109
|
+
}
|
|
110
|
+
static createMultiple(count) {
|
|
111
|
+
return Array.from({ length: count }, () => this.create());
|
|
112
|
+
}
|
|
113
|
+
static createWithPrivateKey() {
|
|
114
|
+
return new MockBackendMember({
|
|
115
|
+
privateKey: new ecies_lib_1.SecureBuffer(Buffer.from(faker_1.faker.string.hexadecimal({ length: 64 }), 'hex')),
|
|
116
|
+
hasPrivateKey: true,
|
|
117
|
+
});
|
|
118
|
+
}
|
|
119
|
+
static createWithoutPrivateKey() {
|
|
120
|
+
return new MockBackendMember({
|
|
121
|
+
privateKey: undefined,
|
|
122
|
+
hasPrivateKey: false,
|
|
123
|
+
});
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
exports.MockBackendMember = MockBackendMember;
|
|
127
|
+
//# sourceMappingURL=mock-backend-member.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mock-backend-member.js","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-node-ecies-lib/src/test-mocks/mock-backend-member.ts"],"names":[],"mappings":";;;AAAA,0DAKoC;AAEpC,2CAAwC;AAExC,qCAAmC;AAKnC,MAAM,gBAAgB,GAAG,GAAW,EAAE,CACpC,CAAC;IACC,aAAa,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,aAAK,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,EAAE,KAAK,CAAC;IACjF,YAAY,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,aAAK,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,EAAE,KAAK,CAAC;IACjF,UAAU,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,aAAK,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,EAAE,KAAK,CAAC;IAC9E,IAAI,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,aAAK,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,EAAE,KAAK,CAAC;CAClE,CAAA,CAAC;AAEZ,MAAa,iBAAiB;IAGpB,GAAG,CAAiB;IACpB,KAAK,CAAa;IAClB,KAAK,CAAS;IACd,MAAM,CAAc;IACpB,UAAU,CAAS;IACnB,UAAU,CAAiB;IAC3B,YAAY,CAAO;IACnB,YAAY,CAAO;IACnB,WAAW,CAAgB;IAC3B,OAAO,CAAU;IACjB,cAAc,CAAU;IAEhC,YACE,OAYK,EAAE;QAEP,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,EAAE,IAAI,IAAI,kBAAQ,EAAE,CAAC;QACrC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,IAAI,IAAI,aAAK,CAAC,OAAO,CAAC,SAAS,CAAC,sBAAU,CAAC,CAAC;QAC9D,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,IAAI,IAAI,aAAK,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;QAClD,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,IAAI,IAAI,uBAAW,CAAC,aAAK,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC;QACpE,IAAI,CAAC,UAAU;YACb,IAAI,CAAC,SAAS;gBACd,MAAM,CAAC,IAAI,CAAC,aAAK,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;QAChE,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,GAAG,CAAC;QAC7C,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,WAAW,IAAI,aAAK,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;QAC1D,IAAI,CAAC,YAAY;YACf,IAAI,CAAC,WAAW;gBAChB,aAAK,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,YAAY,EAAE,EAAE,EAAE,IAAI,IAAI,EAAE,EAAE,CAAC,CAAC;QAClE,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,UAAU,CAAC;QACnC,IAAI,CAAC,OAAO;YACV,IAAI,CAAC,MAAM;gBACX,CAAC,IAAI,CAAC,aAAa,KAAK,KAAK,CAAC,CAAC,CAAC,gBAAgB,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;QAClE,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,aAAa,IAAI,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC;IACjE,CAAC;IAED,IAAI,EAAE;QACJ,OAAO,IAAI,CAAC,GAAG,CAAC;IAClB,CAAC;IACD,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IACD,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IACD,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IACD,IAAI,SAAS;QACX,OAAO,IAAI,CAAC,UAAU,CAAC;IACzB,CAAC;IACD,IAAI,SAAS;QACX,OAAO,IAAI,CAAC,UAAU,CAAC;IACzB,CAAC;IACD,IAAI,WAAW;QACb,OAAO,IAAI,CAAC,YAAY,CAAC;IAC3B,CAAC;IACD,IAAI,WAAW;QACb,OAAO,IAAI,CAAC,YAAY,CAAC;IAC3B,CAAC;IACD,IAAI,UAAU;QACZ,OAAO,IAAI,CAAC,WAAW,CAAC;IAC1B,CAAC;IACD,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IACD,IAAI,aAAa;QACf,OAAO,IAAI,CAAC,cAAc,CAAC;IAC7B,CAAC;IAED,gBAAgB,KAAU,CAAC;IAE3B,YAAY,KAAU,CAAC;IAEvB,yBAAyB,KAAU,CAAC;IAEpC,UAAU,CAAC,QAAsB,IAAS,CAAC;IAE3C,cAAc,CAAC,UAAwB,IAAS,CAAC;IAEjD,IAAI,CAAC,IAAY;QACf,OAAO,MAAM,CAAC,IAAI,CAChB,aAAK,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,EACzC,KAAK,CACa,CAAC;IACvB,CAAC;IAED,MAAM,CAAC,SAA0B,EAAE,IAAY;QAC7C,OAAO,IAAI,CAAC;IACd,CAAC;IAED,WAAW,CAAC,IAAqB;QAC/B,OAAO,MAAM,CAAC,IAAI,CAAC,aAAK,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;IACvE,CAAC;IAED,WAAW,CAAC,aAAqB;QAC/B,OAAO,MAAM,CAAC,IAAI,CAAC,aAAK,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC;IAC9C,CAAC;IAED,MAAM;QACJ,OAAO,IAAI,CAAC,SAAS,CAAC;YACpB,EAAE,EAAE,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE;YACvB,IAAI,EAAE,IAAI,CAAC,KAAK;YAChB,IAAI,EAAE,IAAI,CAAC,KAAK;YAChB,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE;YAC7B,SAAS,EAAE,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC;YAC7C,SAAS,EAAE,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE;YACrC,WAAW,EAAE,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE;YAC5C,WAAW,EAAE,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE;SAC7C,CAAC,CAAC;IACL,CAAC;IAED,OAAO,KAAU,CAAC;IAElB,MAAM,CAAC,MAAM,CACX,YAYK,EAAE;QAEP,OAAO,IAAI,iBAAiB,CAAC,SAAS,CAAC,CAAC;IAC1C,CAAC;IAED,MAAM,CAAC,cAAc,CAAC,KAAa;QACjC,OAAO,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;IAC5D,CAAC;IAED,MAAM,CAAC,oBAAoB;QACzB,OAAO,IAAI,iBAAiB,CAAC;YAC3B,UAAU,EAAE,IAAI,wBAAY,CAC1B,MAAM,CAAC,IAAI,CAAC,aAAK,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,EAAE,KAAK,CAAC,CAC7D;YACD,aAAa,EAAE,IAAI;SACpB,CAAC,CAAC;IACL,CAAC;IAED,MAAM,CAAC,uBAAuB;QAC5B,OAAO,IAAI,iBAAiB,CAAC;YAC3B,UAAU,EAAE,SAAS;YACrB,aAAa,EAAE,KAAK;SACrB,CAAC,CAAC;IACL,CAAC;CACF;AApKD,8CAoKC"}
|