@bitgo/sdk-core 35.5.0 → 35.6.0
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/CHANGELOG.md +11 -0
- package/dist/src/account-lib/baseCoin/iface.d.ts +8 -0
- package/dist/src/account-lib/baseCoin/iface.d.ts.map +1 -1
- package/dist/src/account-lib/baseCoin/iface.js +23 -1
- package/dist/src/account-lib/baseCoin/messages/baseMessage.d.ts +16 -4
- package/dist/src/account-lib/baseCoin/messages/baseMessage.d.ts.map +1 -1
- package/dist/src/account-lib/baseCoin/messages/baseMessage.js +43 -10
- package/dist/src/account-lib/baseCoin/messages/baseMessageBuilder.d.ts +9 -8
- package/dist/src/account-lib/baseCoin/messages/baseMessageBuilder.d.ts.map +1 -1
- package/dist/src/account-lib/baseCoin/messages/baseMessageBuilder.js +52 -4
- package/dist/src/account-lib/baseCoin/messages/baseMessageBuilderFactory.d.ts.map +1 -1
- package/dist/src/account-lib/baseCoin/messages/baseMessageBuilderFactory.js +12 -2
- package/dist/src/account-lib/baseCoin/messages/iface.d.ts +13 -5
- package/dist/src/account-lib/baseCoin/messages/iface.d.ts.map +1 -1
- package/dist/src/account-lib/baseCoin/messages/iface.js +1 -1
- package/dist/src/account-lib/baseCoin/messages/index.d.ts +1 -0
- package/dist/src/account-lib/baseCoin/messages/index.d.ts.map +1 -1
- package/dist/src/account-lib/baseCoin/messages/index.js +2 -1
- package/dist/src/account-lib/baseCoin/messages/simple/index.d.ts +3 -0
- package/dist/src/account-lib/baseCoin/messages/simple/index.d.ts.map +1 -0
- package/dist/src/account-lib/baseCoin/messages/simple/index.js +19 -0
- package/dist/src/account-lib/baseCoin/messages/simple/simpleMessage.d.ts +13 -0
- package/dist/src/account-lib/baseCoin/messages/simple/simpleMessage.d.ts.map +1 -0
- package/dist/src/account-lib/baseCoin/messages/simple/simpleMessage.js +28 -0
- package/dist/src/account-lib/baseCoin/messages/simple/simpleMessageBuilder.d.ts +21 -0
- package/dist/src/account-lib/baseCoin/messages/simple/simpleMessageBuilder.d.ts.map +1 -0
- package/dist/src/account-lib/baseCoin/messages/simple/simpleMessageBuilder.js +28 -0
- package/dist/src/bitgo/baseCoin/iBaseCoin.d.ts +3 -1
- package/dist/src/bitgo/baseCoin/iBaseCoin.d.ts.map +1 -1
- package/dist/src/bitgo/baseCoin/iBaseCoin.js +1 -1
- package/dist/src/bitgo/environments.d.ts.map +1 -1
- package/dist/src/bitgo/environments.js +17 -1
- package/dist/src/bitgo/utils/messageTypes.d.ts +8 -5
- package/dist/src/bitgo/utils/messageTypes.d.ts.map +1 -1
- package/dist/src/bitgo/utils/messageTypes.js +3 -1
- package/dist/src/bitgo/utils/tss/baseTSSUtils.d.ts +16 -2
- package/dist/src/bitgo/utils/tss/baseTSSUtils.d.ts.map +1 -1
- package/dist/src/bitgo/utils/tss/baseTSSUtils.js +48 -2
- package/dist/src/bitgo/utils/tss/baseTypes.d.ts +3 -0
- package/dist/src/bitgo/utils/tss/baseTypes.d.ts.map +1 -1
- package/dist/src/bitgo/utils/tss/baseTypes.js +1 -1
- package/dist/src/bitgo/wallet/iWallet.d.ts +2 -1
- package/dist/src/bitgo/wallet/iWallet.d.ts.map +1 -1
- package/dist/src/bitgo/wallet/iWallet.js +1 -1
- package/dist/src/bitgo/wallet/wallet.d.ts +7 -0
- package/dist/src/bitgo/wallet/wallet.d.ts.map +1 -1
- package/dist/src/bitgo/wallet/wallet.js +51 -11
- package/dist/test/unit/account-lib/baseCoin/messages/baseMessage.js +48 -46
- package/dist/test/unit/account-lib/baseCoin/messages/baseMessageBuilder.js +58 -15
- package/dist/test/unit/account-lib/baseCoin/messages/baseMessageBuilderFactory.js +23 -4
- package/dist/test/unit/account-lib/baseCoin/messages/fixtures.d.ts +13 -3
- package/dist/test/unit/account-lib/baseCoin/messages/fixtures.d.ts.map +1 -1
- package/dist/test/unit/account-lib/baseCoin/messages/fixtures.js +17 -18
- package/dist/test/unit/bitgo/utils/messageTypes.js +41 -53
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +5 -5
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,17 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
# [35.6.0](https://github.com/BitGo/BitGoJS/compare/@bitgo/sdk-core@35.5.0...@bitgo/sdk-core@35.6.0) (2025-07-10)
|
|
7
|
+
|
|
8
|
+
### Features
|
|
9
|
+
|
|
10
|
+
- **account-lib:** verify encoded message ([71a7dd6](https://github.com/BitGo/BitGoJS/commit/71a7dd6cf56010c94364483b7c83221d9a26688e))
|
|
11
|
+
- **sdk-coin-ada:** add CIP-8 message builder ([50c53ec](https://github.com/BitGo/BitGoJS/commit/50c53ecc998815ad25a0b08f27a167a9d2d8d948))
|
|
12
|
+
- **sdk-core:** add simple message builder for sol ([d5af5c8](https://github.com/BitGo/BitGoJS/commit/d5af5c8d45f88feb01387b45f9b1e2cfeb70a2e8))
|
|
13
|
+
- **sdk-core:** create message sign request ([2152ad4](https://github.com/BitGo/BitGoJS/commit/2152ad4bb03851f0a14a1523219dc8052c773750))
|
|
14
|
+
- **statics:** add creditcoin chain config ([104014d](https://github.com/BitGo/BitGoJS/commit/104014d70bfabb3962172af98501a85410c16f9c))
|
|
15
|
+
- **statics:** add pharos chain config ([9dd76f9](https://github.com/BitGo/BitGoJS/commit/9dd76f9d7e7328d1999131b270efafa092720005))
|
|
16
|
+
|
|
6
17
|
# [35.5.0](https://github.com/BitGo/BitGoJS/compare/@bitgo/sdk-core@35.4.1...@bitgo/sdk-core@35.5.0) (2025-07-03)
|
|
7
18
|
|
|
8
19
|
### Features
|
|
@@ -29,6 +29,14 @@ export type Signature = {
|
|
|
29
29
|
publicKey: PublicKey;
|
|
30
30
|
signature: Buffer;
|
|
31
31
|
};
|
|
32
|
+
export type SerializedSignature = {
|
|
33
|
+
publicKey: string;
|
|
34
|
+
signature: string;
|
|
35
|
+
};
|
|
36
|
+
export declare function serializeSignature(signature: Signature): SerializedSignature;
|
|
37
|
+
export declare function serializeSignatures(signatures: Signature[]): SerializedSignature[];
|
|
38
|
+
export declare function deserializeSignature(serialized: SerializedSignature): Signature;
|
|
39
|
+
export declare function deserializeSignatures(serialized?: SerializedSignature[]): Signature[];
|
|
32
40
|
export type KeyPairOptions = Seed | PrivateKey | PublicKey;
|
|
33
41
|
export type BaseBuilder = BaseTransactionBuilder | BaseTransactionBuilderFactory;
|
|
34
42
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"iface.d.ts","sourceRoot":"","sources":["../../../../src/account-lib/baseCoin/iface.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"iface.d.ts","sourceRoot":"","sources":["../../../../src/account-lib/baseCoin/iface.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,30 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.serializeSignature = serializeSignature;
|
|
4
|
+
exports.serializeSignatures = serializeSignatures;
|
|
5
|
+
exports.deserializeSignature = deserializeSignature;
|
|
6
|
+
exports.deserializeSignatures = deserializeSignatures;
|
|
3
7
|
exports.isSeed = isSeed;
|
|
4
8
|
exports.isPrivateKey = isPrivateKey;
|
|
5
9
|
exports.isPublicKey = isPublicKey;
|
|
10
|
+
function serializeSignature(signature) {
|
|
11
|
+
return {
|
|
12
|
+
publicKey: signature.publicKey.pub,
|
|
13
|
+
signature: signature.signature.toString('base64'),
|
|
14
|
+
};
|
|
15
|
+
}
|
|
16
|
+
function serializeSignatures(signatures) {
|
|
17
|
+
return signatures.map(serializeSignature);
|
|
18
|
+
}
|
|
19
|
+
function deserializeSignature(serialized) {
|
|
20
|
+
return {
|
|
21
|
+
publicKey: { pub: serialized.publicKey },
|
|
22
|
+
signature: Buffer.from(serialized.signature, 'base64'),
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
function deserializeSignatures(serialized) {
|
|
26
|
+
return serialized?.map(deserializeSignature) || [];
|
|
27
|
+
}
|
|
6
28
|
/**
|
|
7
29
|
* @param source
|
|
8
30
|
*/
|
|
@@ -21,4 +43,4 @@ function isPrivateKey(source) {
|
|
|
21
43
|
function isPublicKey(source) {
|
|
22
44
|
return source.pub !== undefined;
|
|
23
45
|
}
|
|
24
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
46
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWZhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvYWNjb3VudC1saWIvYmFzZUNvaW4vaWZhY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUEwQ0EsZ0RBS0M7QUFFRCxrREFFQztBQUVELG9EQUtDO0FBRUQsc0RBRUM7QUFTRCx3QkFFQztBQUtELG9DQUVDO0FBS0Qsa0NBRUM7QUE3Q0QsU0FBZ0Isa0JBQWtCLENBQUMsU0FBb0I7SUFDckQsT0FBTztRQUNMLFNBQVMsRUFBRSxTQUFTLENBQUMsU0FBUyxDQUFDLEdBQUc7UUFDbEMsU0FBUyxFQUFFLFNBQVMsQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQztLQUNsRCxDQUFDO0FBQ0osQ0FBQztBQUVELFNBQWdCLG1CQUFtQixDQUFDLFVBQXVCO0lBQ3pELE9BQU8sVUFBVSxDQUFDLEdBQUcsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO0FBQzVDLENBQUM7QUFFRCxTQUFnQixvQkFBb0IsQ0FBQyxVQUErQjtJQUNsRSxPQUFPO1FBQ0wsU0FBUyxFQUFFLEVBQUUsR0FBRyxFQUFFLFVBQVUsQ0FBQyxTQUFTLEVBQUU7UUFDeEMsU0FBUyxFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLFNBQVMsRUFBRSxRQUFRLENBQUM7S0FDdkQsQ0FBQztBQUNKLENBQUM7QUFFRCxTQUFnQixxQkFBcUIsQ0FBQyxVQUFrQztJQUN0RSxPQUFPLFVBQVUsRUFBRSxHQUFHLENBQUMsb0JBQW9CLENBQUMsSUFBSSxFQUFFLENBQUM7QUFDckQsQ0FBQztBQU1EOztHQUVHO0FBQ0gsU0FBZ0IsTUFBTSxDQUFDLE1BQXNCO0lBQzNDLE9BQVEsTUFBZSxDQUFDLElBQUksS0FBSyxTQUFTLENBQUM7QUFDN0MsQ0FBQztBQUVEOztHQUVHO0FBQ0gsU0FBZ0IsWUFBWSxDQUFDLE1BQXNCO0lBQ2pELE9BQVEsTUFBcUIsQ0FBQyxHQUFHLEtBQUssU0FBUyxDQUFDO0FBQ2xELENBQUM7QUFFRDs7R0FFRztBQUNILFNBQWdCLFdBQVcsQ0FBQyxNQUFzQjtJQUNoRCxPQUFRLE1BQW9CLENBQUMsR0FBRyxLQUFLLFNBQVMsQ0FBQztBQUNqRCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSVRyYW5zYWN0aW9uRXhwbGFuYXRpb24gfSBmcm9tICcuLi8uLi9iaXRnbyc7XG5pbXBvcnQgeyBCYXNlVHJhbnNhY3Rpb25CdWlsZGVyIH0gZnJvbSAnLi9iYXNlVHJhbnNhY3Rpb25CdWlsZGVyJztcbmltcG9ydCB7IEJhc2VUcmFuc2FjdGlvbkJ1aWxkZXJGYWN0b3J5IH0gZnJvbSAnLi9iYXNlVHJhbnNhY3Rpb25CdWlsZGVyRmFjdG9yeSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQmFzZUtleSB7XG4gIGtleTogYW55O1xufVxuXG4vKipcbiAqIEEgcHJpdmF0ZSBrZXkgaW4gZXh0ZW5kZWQgb3IgcmF3IGZvcm1hdFxuICovXG5leHBvcnQgdHlwZSBQcml2YXRlS2V5ID0ge1xuICBwcnY6IHN0cmluZztcbn07XG5cbi8qKlxuICogQSBwdWJsaWMga2V5IGluIGV4dGVuZGVkLCBjb21wcmVzc2VkLCBvciB1bmNvbXByZXNzZWQgZm9ybWF0XG4gKi9cbmV4cG9ydCB0eXBlIFB1YmxpY0tleSA9IHtcbiAgcHViOiBzdHJpbmc7XG59O1xuXG4vKipcbiAqIEEgc2VlZCB0byBjcmVhdGUga2V5IHBhaXJzLiBNdXN0IGJlIGJldHdlZW4gMTYgYW5kIDY0IEJ5dGVzIGxvbmdcbiAqL1xuZXhwb3J0IHR5cGUgU2VlZCA9IHtcbiAgc2VlZDogQnVmZmVyO1xufTtcblxuLyoqXG4gKiBSZXByZXNlbnRhdGlvbiBvZiBhIFNpZ25hdHVyZSB0byBiZSBhZGRlZCB0byBhIFRyYW5zYWN0aW9uLlxuICovXG5leHBvcnQgdHlwZSBTaWduYXR1cmUgPSB7XG4gIHB1YmxpY0tleTogUHVibGljS2V5O1xuICBzaWduYXR1cmU6IEJ1ZmZlcjtcbn07XG5cbmV4cG9ydCB0eXBlIFNlcmlhbGl6ZWRTaWduYXR1cmUgPSB7XG4gIHB1YmxpY0tleTogc3RyaW5nO1xuICBzaWduYXR1cmU6IHN0cmluZztcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiBzZXJpYWxpemVTaWduYXR1cmUoc2lnbmF0dXJlOiBTaWduYXR1cmUpOiBTZXJpYWxpemVkU2lnbmF0dXJlIHtcbiAgcmV0dXJuIHtcbiAgICBwdWJsaWNLZXk6IHNpZ25hdHVyZS5wdWJsaWNLZXkucHViLFxuICAgIHNpZ25hdHVyZTogc2lnbmF0dXJlLnNpZ25hdHVyZS50b1N0cmluZygnYmFzZTY0JyksXG4gIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzZXJpYWxpemVTaWduYXR1cmVzKHNpZ25hdHVyZXM6IFNpZ25hdHVyZVtdKTogU2VyaWFsaXplZFNpZ25hdHVyZVtdIHtcbiAgcmV0dXJuIHNpZ25hdHVyZXMubWFwKHNlcmlhbGl6ZVNpZ25hdHVyZSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBkZXNlcmlhbGl6ZVNpZ25hdHVyZShzZXJpYWxpemVkOiBTZXJpYWxpemVkU2lnbmF0dXJlKTogU2lnbmF0dXJlIHtcbiAgcmV0dXJuIHtcbiAgICBwdWJsaWNLZXk6IHsgcHViOiBzZXJpYWxpemVkLnB1YmxpY0tleSB9LFxuICAgIHNpZ25hdHVyZTogQnVmZmVyLmZyb20oc2VyaWFsaXplZC5zaWduYXR1cmUsICdiYXNlNjQnKSxcbiAgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGRlc2VyaWFsaXplU2lnbmF0dXJlcyhzZXJpYWxpemVkPzogU2VyaWFsaXplZFNpZ25hdHVyZVtdKTogU2lnbmF0dXJlW10ge1xuICByZXR1cm4gc2VyaWFsaXplZD8ubWFwKGRlc2VyaWFsaXplU2lnbmF0dXJlKSB8fCBbXTtcbn1cblxuZXhwb3J0IHR5cGUgS2V5UGFpck9wdGlvbnMgPSBTZWVkIHwgUHJpdmF0ZUtleSB8IFB1YmxpY0tleTtcblxuZXhwb3J0IHR5cGUgQmFzZUJ1aWxkZXIgPSBCYXNlVHJhbnNhY3Rpb25CdWlsZGVyIHwgQmFzZVRyYW5zYWN0aW9uQnVpbGRlckZhY3Rvcnk7XG5cbi8qKlxuICogQHBhcmFtIHNvdXJjZVxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNTZWVkKHNvdXJjZTogS2V5UGFpck9wdGlvbnMpOiBzb3VyY2UgaXMgU2VlZCB7XG4gIHJldHVybiAoc291cmNlIGFzIFNlZWQpLnNlZWQgIT09IHVuZGVmaW5lZDtcbn1cblxuLyoqXG4gKiBAcGFyYW0gc291cmNlXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc1ByaXZhdGVLZXkoc291cmNlOiBLZXlQYWlyT3B0aW9ucyk6IHNvdXJjZSBpcyBQcml2YXRlS2V5IHtcbiAgcmV0dXJuIChzb3VyY2UgYXMgUHJpdmF0ZUtleSkucHJ2ICE9PSB1bmRlZmluZWQ7XG59XG5cbi8qKlxuICogQHBhcmFtIHNvdXJjZVxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNQdWJsaWNLZXkoc291cmNlOiBLZXlQYWlyT3B0aW9ucyk6IHNvdXJjZSBpcyBQdWJsaWNLZXkge1xuICByZXR1cm4gKHNvdXJjZSBhcyBQdWJsaWNLZXkpLnB1YiAhPT0gdW5kZWZpbmVkO1xufVxuXG4vKipcbiAqIEtleSBwYWlyIGluIHRoZSBwcm90b2NvbCBkZWZhdWx0IGZvcm1hdC5cbiAqL1xuZXhwb3J0IHR5cGUgRGVmYXVsdEtleXMgPSB7XG4gIHBydj86IHN0cmluZztcbiAgcHViOiBzdHJpbmc7XG59O1xuXG4vKipcbiAqIEtleSBwYWlyIGluIFVpbnQ4QXJyYXkgZm9ybWF0LlxuICovXG5leHBvcnQgdHlwZSBCeXRlS2V5cyA9IHtcbiAgcHJ2PzogVWludDhBcnJheTtcbiAgcHViOiBVaW50OEFycmF5O1xufTtcblxuLyoqXG4gKiBLZXkgcGFpciBpbiBleHRlbmRlZCBmb3JtYXQuIFVzZWQgZm9yIGNvaW5zIHN1cHBvcnRpbmcgc2VjcDI1NmsxIGVsbGlwdGljIGN1cnZlLlxuICovXG5leHBvcnQgdHlwZSBFeHRlbmRlZEtleXMgPSB7XG4gIHhwcnY/OiBzdHJpbmc7XG4gIHhwdWI6IHN0cmluZztcbn07XG5cbmV4cG9ydCBpbnRlcmZhY2UgQmFzZUFkZHJlc3Mge1xuICBhZGRyZXNzOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRW50cnkgZXh0ZW5kcyBCYXNlQWRkcmVzcyB7XG4gIGNvaW4/OiBzdHJpbmc7XG4gIHZhbHVlOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQmFzZUZlZSB7XG4gIGZlZTogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFRyYW5zYWN0aW9uUmVjaXBpZW50IHtcbiAgYWRkcmVzczogc3RyaW5nO1xuICBhbW91bnQ6IHN0cmluZyB8IG51bWJlcjtcbiAgbWVtbz86IHN0cmluZztcbiAgdG9rZW5OYW1lPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFRyYW5zYWN0aW9uRmVlIHtcbiAgZmVlOiBzdHJpbmc7XG4gIGZlZVJhdGU/OiBudW1iZXI7XG4gIHNpemU/OiBudW1iZXI7XG4gIHR5cGU/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVHJhbnNhY3Rpb25PdXRwdXRzIHtcbiAgb3V0cHV0czogVHJhbnNhY3Rpb25SZWNpcGllbnRbXTtcbiAgb3V0cHV0QW1vdW50OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVHJhbnNhY3Rpb25DaGFuZ2VzIHtcbiAgY2hhbmdlT3V0cHV0czogVHJhbnNhY3Rpb25SZWNpcGllbnRbXTtcbiAgY2hhbmdlQW1vdW50OiBzdHJpbmc7XG59XG5cbmV4cG9ydCB0eXBlIFRyYW5zYWN0aW9uRXhwbGFuYXRpb24gPSBJVHJhbnNhY3Rpb25FeHBsYW5hdGlvbjxUcmFuc2FjdGlvbkZlZT47XG4vKipcbiAqIEZlZSBvcHRpb25zLlxuICovXG5leHBvcnQgdHlwZSBGZWVPcHRpb25zID0ge1xuICBhbW91bnQ6IG51bWJlciB8IHN0cmluZztcbiAgdW5pdD86ICdiYXNlVW5pdCcgfCAnY3B1JyB8ICdyYW0nO1xuICBmb3JtdWxhPzogJ2ZpeGVkJyB8ICdmZWVSYXRlJyB8ICdwZXJLQicgfCAnY3VzdG9tJztcbiAgdHlwZT86ICdiYXNlJyB8ICdtYXgnIHwgJ3RpcCc7XG59O1xuXG4vKipcbiAqIFRoZSB2YWxpZGl0eSB3aW5kb3cgc2lnbmFscyB3aGVuIGEgdHJhbnNhY3Rpb24gY2FuIGJlIGluY2x1ZGVkIGluIHRoZSBuZXR3b3JrLlxuICogIFZhbGlkaXR5V2luZG93IGluZm9ybWF0aW9uIGlzIHN0b3JlZCBhcyBwYXJ0IG9mIHRoZSB0cmFuc2FjdGlvbiBkYXRhIGluIHRoZSBpbmRleGVyIGFuZCB3YWxsZXQgcGxhdGZvcm0sIHVubGVzcyBpdCBpcyBhYnNvbHV0ZWx5IG5lY2Vzc2FyeS5cbiAqIGZpcnN0VmFsaWQ6IHRoZSBhYnNvbHV0ZSBibG9jay90aW1lIGFmdGVyIHdoaWNoIHRoZSB0cmFuc2FjdGlvbiBpcyB2YWxpZFxuICogbGFzdFZhbGlkOiB0aGUgYWJzb2x1dGUgYmxvY2svdGltZSBiZWZvcmUgd2hpY2ggdGhlIHRyYW5zYWN0aW9uIGlzIHZhbGlkXG4gKiBtaW5EdXJhdGlvbjogbWluaW11bSBkdXJhdGlvbiBhIHRyYW5zYWN0aW9uIGZvciB0aGlzIGNvaW4gaXMgdmFsaWRcbiAqIG1heER1cmF0aW9uOiBtYXhpbXVtIGR1cmF0aW9uIGEgdHJhbnNhY3Rpb24gZm9yIHRoaXMgY29pbiBpcyB2YWxpZFxuICogbWluRHVyYXRpb24gYW5kIG1heER1cmF0aW9uIGFyZSBkZWZpbmVkIHBlciBibG9ja2NoYWluLCB3aGVyZWFzIGZpcnN0VmFsaWQgYW5kIGxhc3RWYWxpZCBhcmUgZGVmaW5lZCBwZXIgdHJhbnNhY3Rpb25cbiAqIHVuaXQ6IHZhbGlkaXR5IHdpbmRvdyB3aWxsIGJlIG1lYXN1cmUgaW4gYmxvY2toZWlnaCBvciB0aW1lc3RhbXBcbiAqIFRPRE86IHZhbGlkaXR5V2luZG93IGNvbnN0cmFpbnQgbWV0aG9kcyB3aWxsIGJlIHRha2VuIG9uOiBodHRwczovL2JpdGdvaW5jLmF0bGFzc2lhbi5uZXQvYnJvd3NlL1NUTFgtMTA4MDBcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBWYWxpZGl0eVdpbmRvdyB7XG4gIGZpcnN0VmFsaWQ/OiBudW1iZXI7XG4gIGxhc3RWYWxpZD86IG51bWJlcjtcbiAgbWluRHVyYXRpb24/OiBudW1iZXI7XG4gIG1heER1cmF0aW9uPzogbnVtYmVyO1xuICB1bml0PzogJ2Jsb2NraGVpZ2h0JyB8ICd0aW1lc3RhbXAnO1xufVxuXG4vKipcbiAqIFNlcXVlbmNlIElkcyBhcmUgdXNlZCB0byBkaWZmZXJlbnRpYXRlIHBheW1lbnRzIGNvbWluZyBmcm9tIHRoZSBzYW1lIGFjY291bnQgYW5kIHRvIHByZXZlbnQgYWNjaWRlbnRhbCBkb3VibGUgc3BlbmRzIGFuZCByZXBsYXkgYXR0YWNrcy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTZXF1ZW5jZUlkIHtcbiAgbmFtZTogJ05vbmNlJyB8ICdTZXF1ZW5jZSBJZCcgfCAnQ291bnRlcic7XG4gIGtleXdvcmQ6ICdub25jZScgfCAnc2VxdWVuY2VJZCcgfCAnY291bnRlcic7XG4gIHZhbHVlOiBzdHJpbmcgfCBudW1iZXI7XG59XG4iXX0=
|
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
import { BaseCoin as CoinConfig } from '@bitgo/statics';
|
|
2
2
|
import { BroadcastableMessage, MessageMetadata, MessageOptions, MessagePayload, MessageStandardType } from '../../../bitgo';
|
|
3
3
|
import { IMessage } from './iface';
|
|
4
|
+
import { Signature } from '../iface';
|
|
4
5
|
export declare abstract class BaseMessage implements IMessage {
|
|
5
6
|
protected coinConfig: Readonly<CoinConfig>;
|
|
6
7
|
protected type: MessageStandardType;
|
|
7
8
|
protected payload: MessagePayload;
|
|
8
|
-
protected signatures:
|
|
9
|
+
protected signatures: Signature[];
|
|
9
10
|
protected signers: string[];
|
|
10
11
|
protected signablePayload?: string | Buffer;
|
|
11
12
|
protected metadata?: MessageMetadata;
|
|
@@ -44,22 +45,26 @@ export declare abstract class BaseMessage implements IMessage {
|
|
|
44
45
|
/**
|
|
45
46
|
* Gets all signatures associated with this message
|
|
46
47
|
*/
|
|
47
|
-
getSignatures():
|
|
48
|
+
getSignatures(): Signature[];
|
|
48
49
|
/**
|
|
49
50
|
* Sets signatures for this message
|
|
50
51
|
* @param signatures Array of signatures to set
|
|
51
52
|
*/
|
|
52
|
-
setSignatures(signatures:
|
|
53
|
+
setSignatures(signatures: Signature[]): void;
|
|
53
54
|
/**
|
|
54
55
|
* Adds a signature to this message
|
|
55
56
|
* @param signature The signature to add
|
|
56
57
|
*/
|
|
57
|
-
addSignature(signature:
|
|
58
|
+
addSignature(signature: Signature): void;
|
|
58
59
|
/**
|
|
59
60
|
* Gets the payload that should be signed
|
|
60
61
|
* Each message standard must implement this method
|
|
61
62
|
*/
|
|
62
63
|
abstract getSignablePayload(): Promise<string | Buffer>;
|
|
64
|
+
/**
|
|
65
|
+
* Gets the signatures in a format suitable for broadcasting
|
|
66
|
+
*/
|
|
67
|
+
getBroadcastableSignatures(): Signature[];
|
|
63
68
|
/**
|
|
64
69
|
* Converts this message to a broadcastable format
|
|
65
70
|
* Uses internal signatures and signers that were previously set
|
|
@@ -72,5 +77,12 @@ export declare abstract class BaseMessage implements IMessage {
|
|
|
72
77
|
* @returns A JSON string representation of the broadcastable message
|
|
73
78
|
*/
|
|
74
79
|
toBroadcastString(): Promise<string>;
|
|
80
|
+
/**
|
|
81
|
+
* Verifies if the provided encoded message matches the signable payload
|
|
82
|
+
* @param messageEncodedHex The encoded message in hex format
|
|
83
|
+
* @param metadata Optional metadata for additional verification context
|
|
84
|
+
* @returns True if the encoded message matches the signable payload, false otherwise
|
|
85
|
+
*/
|
|
86
|
+
verifyEncodedPayload(messageEncodedHex: string, metadata?: Record<string, unknown>): Promise<boolean>;
|
|
75
87
|
}
|
|
76
88
|
//# sourceMappingURL=baseMessage.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"baseMessage.d.ts","sourceRoot":"","sources":["../../../../../src/account-lib/baseCoin/messages/baseMessage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,EACL,oBAAoB,EACpB,eAAe,EACf,cAAc,EACd,cAAc,EACd,mBAAmB,EACpB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"baseMessage.d.ts","sourceRoot":"","sources":["../../../../../src/account-lib/baseCoin/messages/baseMessage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,EACL,oBAAoB,EACpB,eAAe,EACf,cAAc,EACd,cAAc,EACd,mBAAmB,EACpB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AACnC,OAAO,EAAuB,SAAS,EAAE,MAAM,UAAU,CAAC;AAE1D,8BAAsB,WAAY,YAAW,QAAQ;IACnD,SAAS,CAAC,UAAU,EAAE,QAAQ,CAAC,UAAU,CAAC,CAAC;IAC3C,SAAS,CAAC,IAAI,EAAE,mBAAmB,CAAC;IACpC,SAAS,CAAC,OAAO,EAAE,cAAc,CAAC;IAClC,SAAS,CAAC,UAAU,EAAE,SAAS,EAAE,CAAM;IACvC,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,CAAM;IACjC,SAAS,CAAC,eAAe,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC5C,SAAS,CAAC,QAAQ,CAAC,EAAE,eAAe,CAAC;IAErC;;;;OAIG;IACH,SAAS,aAAa,OAAO,EAAE,cAAc;IAmB7C;;OAEG;IACH,OAAO,IAAI,mBAAmB;IAI9B;;OAEG;IACH,UAAU,IAAI,cAAc;IAI5B;;OAEG;IACH,WAAW,IAAI,eAAe,GAAG,SAAS;IAI1C;;OAEG;IACH,UAAU,IAAI,MAAM,EAAE;IAItB;;;OAGG;IACH,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAM/B;;;OAGG;IACH,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI;IAInC;;OAEG;IACH,aAAa,IAAI,SAAS,EAAE;IAI5B;;;OAGG;IACH,aAAa,CAAC,UAAU,EAAE,SAAS,EAAE,GAAG,IAAI;IAI5C;;;OAGG;IACH,YAAY,CAAC,SAAS,EAAE,SAAS,GAAG,IAAI;IAIxC;;;OAGG;IACH,QAAQ,CAAC,kBAAkB,IAAI,OAAO,CAAC,MAAM,GAAG,MAAM,CAAC;IAEvD;;OAEG;IACH,0BAA0B,IAAI,SAAS,EAAE;IAIzC;;;;OAIG;IACG,iBAAiB,IAAI,OAAO,CAAC,oBAAoB,CAAC;IAwBxD;;;;OAIG;IACG,iBAAiB,IAAI,OAAO,CAAC,MAAM,CAAC;IAK1C;;;;;OAKG;IACG,oBAAoB,CAAC,iBAAiB,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC;CAU5G"}
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.BaseMessage = void 0;
|
|
4
4
|
const bitgo_1 = require("../../../bitgo");
|
|
5
|
+
const iface_1 = require("../iface");
|
|
5
6
|
class BaseMessage {
|
|
6
7
|
/**
|
|
7
8
|
* Base constructor.
|
|
@@ -12,12 +13,16 @@ class BaseMessage {
|
|
|
12
13
|
this.signatures = [];
|
|
13
14
|
this.signers = [];
|
|
14
15
|
this.coinConfig = options.coinConfig;
|
|
16
|
+
this.payload = options.payload;
|
|
15
17
|
this.type = options.type || bitgo_1.MessageStandardType.UNKNOWN;
|
|
16
|
-
this.payload = options.payload || '';
|
|
17
18
|
this.signablePayload = options.signablePayload;
|
|
18
19
|
this.metadata = options.metadata || {};
|
|
19
20
|
if (options.signatures) {
|
|
20
|
-
|
|
21
|
+
// Deep copy each Signature object, including the Buffer
|
|
22
|
+
this.signatures = options.signatures.map((sig) => ({
|
|
23
|
+
publicKey: { ...sig.publicKey },
|
|
24
|
+
signature: Buffer.from(sig.signature),
|
|
25
|
+
}));
|
|
21
26
|
}
|
|
22
27
|
if (options.signers) {
|
|
23
28
|
this.signers = [...options.signers];
|
|
@@ -83,27 +88,38 @@ class BaseMessage {
|
|
|
83
88
|
addSignature(signature) {
|
|
84
89
|
this.signatures.push(signature);
|
|
85
90
|
}
|
|
91
|
+
/**
|
|
92
|
+
* Gets the signatures in a format suitable for broadcasting
|
|
93
|
+
*/
|
|
94
|
+
getBroadcastableSignatures() {
|
|
95
|
+
return this.signatures;
|
|
96
|
+
}
|
|
86
97
|
/**
|
|
87
98
|
* Converts this message to a broadcastable format
|
|
88
99
|
* Uses internal signatures and signers that were previously set
|
|
89
100
|
* @returns A broadcastable message
|
|
90
101
|
*/
|
|
91
102
|
async toBroadcastFormat() {
|
|
92
|
-
if (this.
|
|
93
|
-
throw new Error('
|
|
103
|
+
if (!this.payload) {
|
|
104
|
+
throw new Error('Message payload must be set before converting to broadcast format');
|
|
94
105
|
}
|
|
95
|
-
|
|
96
|
-
|
|
106
|
+
const signablePayload = await this.getSignablePayload();
|
|
107
|
+
let serializedSignablePayload;
|
|
108
|
+
if (Buffer.isBuffer(signablePayload)) {
|
|
109
|
+
serializedSignablePayload = signablePayload.toString('base64');
|
|
110
|
+
}
|
|
111
|
+
else {
|
|
112
|
+
serializedSignablePayload = Buffer.from(String(signablePayload)).toString('base64');
|
|
97
113
|
}
|
|
98
114
|
return {
|
|
99
115
|
type: this.type,
|
|
100
116
|
payload: this.payload,
|
|
101
|
-
|
|
102
|
-
signers: this.signers,
|
|
117
|
+
serializedSignatures: (0, iface_1.serializeSignatures)(this.getBroadcastableSignatures()),
|
|
118
|
+
signers: [...this.signers],
|
|
103
119
|
metadata: {
|
|
104
120
|
...(this.metadata ? JSON.parse(JSON.stringify(this.metadata)) : {}), // deep copy to avoid mutation
|
|
105
121
|
},
|
|
106
|
-
signablePayload:
|
|
122
|
+
signablePayload: serializedSignablePayload,
|
|
107
123
|
};
|
|
108
124
|
}
|
|
109
125
|
/**
|
|
@@ -115,6 +131,23 @@ class BaseMessage {
|
|
|
115
131
|
const broadcastable = await this.toBroadcastFormat();
|
|
116
132
|
return JSON.stringify(broadcastable);
|
|
117
133
|
}
|
|
134
|
+
/**
|
|
135
|
+
* Verifies if the provided encoded message matches the signable payload
|
|
136
|
+
* @param messageEncodedHex The encoded message in hex format
|
|
137
|
+
* @param metadata Optional metadata for additional verification context
|
|
138
|
+
* @returns True if the encoded message matches the signable payload, false otherwise
|
|
139
|
+
*/
|
|
140
|
+
async verifyEncodedPayload(messageEncodedHex, metadata) {
|
|
141
|
+
const signablePayload = await this.getSignablePayload();
|
|
142
|
+
let signablePayloadHex;
|
|
143
|
+
if (Buffer.isBuffer(signablePayload)) {
|
|
144
|
+
signablePayloadHex = signablePayload.toString('hex');
|
|
145
|
+
}
|
|
146
|
+
else {
|
|
147
|
+
signablePayloadHex = signablePayload;
|
|
148
|
+
}
|
|
149
|
+
return signablePayloadHex === messageEncodedHex;
|
|
150
|
+
}
|
|
118
151
|
}
|
|
119
152
|
exports.BaseMessage = BaseMessage;
|
|
120
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZU1lc3NhZ2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvYWNjb3VudC1saWIvYmFzZUNvaW4vbWVzc2FnZXMvYmFzZU1lc3NhZ2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0EsMENBTXdCO0FBR3hCLE1BQXNCLFdBQVc7SUFTL0I7Ozs7T0FJRztJQUNILFlBQXNCLE9BQXVCO1FBVm5DLGVBQVUsR0FBYSxFQUFFLENBQUM7UUFDMUIsWUFBTyxHQUFhLEVBQUUsQ0FBQztRQVUvQixJQUFJLENBQUMsVUFBVSxHQUFHLE9BQU8sQ0FBQyxVQUFVLENBQUM7UUFDckMsSUFBSSxDQUFDLElBQUksR0FBRyxPQUFPLENBQUMsSUFBSSxJQUFJLDJCQUFtQixDQUFDLE9BQU8sQ0FBQztRQUN4RCxJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQyxPQUFPLElBQUksRUFBRSxDQUFDO1FBQ3JDLElBQUksQ0FBQyxlQUFlLEdBQUcsT0FBTyxDQUFDLGVBQWUsQ0FBQztRQUMvQyxJQUFJLENBQUMsUUFBUSxHQUFHLE9BQU8sQ0FBQyxRQUFRLElBQUksRUFBRSxDQUFDO1FBRXZDLElBQUksT0FBTyxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQ3ZCLElBQUksQ0FBQyxVQUFVLEdBQUcsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUM1QyxDQUFDO1FBQ0QsSUFBSSxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDcEIsSUFBSSxDQUFDLE9BQU8sR0FBRyxDQUFDLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3RDLENBQUM7SUFDSCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxPQUFPO1FBQ0wsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDO0lBQ25CLENBQUM7SUFFRDs7T0FFRztJQUNILFVBQVU7UUFDUixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUM7SUFDdEIsQ0FBQztJQUVEOztPQUVHO0lBQ0gsV0FBVztRQUNULE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQztJQUN2QixDQUFDO0lBRUQ7O09BRUc7SUFDSCxVQUFVO1FBQ1IsT0FBTyxDQUFDLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQzNCLENBQUM7SUFFRDs7O09BR0c7SUFDSCxTQUFTLENBQUMsTUFBYztRQUN0QixJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQztZQUNuQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUM1QixDQUFDO0lBQ0gsQ0FBQztJQUVEOzs7T0FHRztJQUNILFVBQVUsQ0FBQyxPQUFpQjtRQUMxQixJQUFJLENBQUMsT0FBTyxHQUFHLENBQUMsR0FBRyxPQUFPLENBQUMsQ0FBQztJQUM5QixDQUFDO0lBRUQ7O09BRUc7SUFDSCxhQUFhO1FBQ1gsT0FBTyxDQUFDLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQzlCLENBQUM7SUFFRDs7O09BR0c7SUFDSCxhQUFhLENBQUMsVUFBb0I7UUFDaEMsSUFBSSxDQUFDLFVBQVUsR0FBRyxDQUFDLEdBQUcsVUFBVSxDQUFDLENBQUM7SUFDcEMsQ0FBQztJQUVEOzs7T0FHRztJQUNILFlBQVksQ0FBQyxTQUFpQjtRQUM1QixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUNsQyxDQUFDO0lBUUQ7Ozs7T0FJRztJQUNILEtBQUssQ0FBQyxpQkFBaUI7UUFDckIsSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUNqQyxNQUFNLElBQUksS0FBSyxDQUFDLGtGQUFrRixDQUFDLENBQUM7UUFDdEcsQ0FBQztRQUVELElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDOUIsTUFBTSxJQUFJLEtBQUssQ0FBQyx5RUFBeUUsQ0FBQyxDQUFDO1FBQzdGLENBQUM7UUFFRCxPQUFPO1lBQ0wsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJO1lBQ2YsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPO1lBQ3JCLFVBQVUsRUFBRSxJQUFJLENBQUMsVUFBVTtZQUMzQixPQUFPLEVBQUUsSUFBSSxDQUFDLE9BQU87WUFDckIsUUFBUSxFQUFFO2dCQUNSLEdBQUcsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLDhCQUE4QjthQUNwRztZQUNELGVBQWUsRUFBRSxJQUFJLENBQUMsZUFBZTtTQUN0QyxDQUFDO0lBQ0osQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxLQUFLLENBQUMsaUJBQWlCO1FBQ3JCLE1BQU0sYUFBYSxHQUFHLE1BQU0sSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7UUFDckQsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7Q0FDRjtBQTNJRCxrQ0EySUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCYXNlQ29pbiBhcyBDb2luQ29uZmlnIH0gZnJvbSAnQGJpdGdvL3N0YXRpY3MnO1xuaW1wb3J0IHtcbiAgQnJvYWRjYXN0YWJsZU1lc3NhZ2UsXG4gIE1lc3NhZ2VNZXRhZGF0YSxcbiAgTWVzc2FnZU9wdGlvbnMsXG4gIE1lc3NhZ2VQYXlsb2FkLFxuICBNZXNzYWdlU3RhbmRhcmRUeXBlLFxufSBmcm9tICcuLi8uLi8uLi9iaXRnbyc7XG5pbXBvcnQgeyBJTWVzc2FnZSB9IGZyb20gJy4vaWZhY2UnO1xuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQmFzZU1lc3NhZ2UgaW1wbGVtZW50cyBJTWVzc2FnZSB7XG4gIHByb3RlY3RlZCBjb2luQ29uZmlnOiBSZWFkb25seTxDb2luQ29uZmlnPjtcbiAgcHJvdGVjdGVkIHR5cGU6IE1lc3NhZ2VTdGFuZGFyZFR5cGU7XG4gIHByb3RlY3RlZCBwYXlsb2FkOiBNZXNzYWdlUGF5bG9hZDtcbiAgcHJvdGVjdGVkIHNpZ25hdHVyZXM6IHN0cmluZ1tdID0gW107XG4gIHByb3RlY3RlZCBzaWduZXJzOiBzdHJpbmdbXSA9IFtdO1xuICBwcm90ZWN0ZWQgc2lnbmFibGVQYXlsb2FkPzogc3RyaW5nIHwgQnVmZmVyO1xuICBwcm90ZWN0ZWQgbWV0YWRhdGE/OiBNZXNzYWdlTWV0YWRhdGE7XG5cbiAgLyoqXG4gICAqIEJhc2UgY29uc3RydWN0b3IuXG4gICAqXG4gICAqIEBwYXJhbSBvcHRpb25zIE1lc3NhZ2Ugb3B0aW9ucyBjb250YWluaW5nIHR5cGUsIHBheWxvYWQsIG1ldGFkYXRhLCBldGMuXG4gICAqL1xuICBwcm90ZWN0ZWQgY29uc3RydWN0b3Iob3B0aW9uczogTWVzc2FnZU9wdGlvbnMpIHtcbiAgICB0aGlzLmNvaW5Db25maWcgPSBvcHRpb25zLmNvaW5Db25maWc7XG4gICAgdGhpcy50eXBlID0gb3B0aW9ucy50eXBlIHx8IE1lc3NhZ2VTdGFuZGFyZFR5cGUuVU5LTk9XTjtcbiAgICB0aGlzLnBheWxvYWQgPSBvcHRpb25zLnBheWxvYWQgfHwgJyc7XG4gICAgdGhpcy5zaWduYWJsZVBheWxvYWQgPSBvcHRpb25zLnNpZ25hYmxlUGF5bG9hZDtcbiAgICB0aGlzLm1ldGFkYXRhID0gb3B0aW9ucy5tZXRhZGF0YSB8fCB7fTtcblxuICAgIGlmIChvcHRpb25zLnNpZ25hdHVyZXMpIHtcbiAgICAgIHRoaXMuc2lnbmF0dXJlcyA9IFsuLi5vcHRpb25zLnNpZ25hdHVyZXNdO1xuICAgIH1cbiAgICBpZiAob3B0aW9ucy5zaWduZXJzKSB7XG4gICAgICB0aGlzLnNpZ25lcnMgPSBbLi4ub3B0aW9ucy5zaWduZXJzXTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogR2V0IHRoZSBtZXNzYWdlIHR5cGVcbiAgICovXG4gIGdldFR5cGUoKTogTWVzc2FnZVN0YW5kYXJkVHlwZSB7XG4gICAgcmV0dXJuIHRoaXMudHlwZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIG1lc3NhZ2UgcGF5bG9hZFxuICAgKi9cbiAgZ2V0UGF5bG9hZCgpOiBNZXNzYWdlUGF5bG9hZCB7XG4gICAgcmV0dXJuIHRoaXMucGF5bG9hZDtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIG1ldGFkYXRhIGFzc29jaWF0ZWQgd2l0aCB0aGUgbWVzc2FnZVxuICAgKi9cbiAgZ2V0TWV0YWRhdGEoKTogTWVzc2FnZU1ldGFkYXRhIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5tZXRhZGF0YTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIGFsbCBzaWduZXJzIGFkZHJlc3NlcyBvciBwdWJsaWMga2V5c1xuICAgKi9cbiAgZ2V0U2lnbmVycygpOiBzdHJpbmdbXSB7XG4gICAgcmV0dXJuIFsuLi50aGlzLnNpZ25lcnNdO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZHMgYSBzaWduZXIgYWRkcmVzcyBvciBwdWJsaWMga2V5XG4gICAqIEBwYXJhbSBzaWduZXIgVGhlIGFkZHJlc3Mgb3IgcHVibGljIGtleSBvZiB0aGUgc2lnbmVyXG4gICAqL1xuICBhZGRTaWduZXIoc2lnbmVyOiBzdHJpbmcpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuc2lnbmVycy5pbmNsdWRlcyhzaWduZXIpKSB7XG4gICAgICB0aGlzLnNpZ25lcnMucHVzaChzaWduZXIpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIHNpZ25lcnMgYWRkcmVzc2VzIG9yIHB1YmxpYyBrZXlzXG4gICAqIEBwYXJhbSBzaWduZXJzIEFycmF5IG9mIGFkZHJlc3NlcyBvciBwdWJsaWMga2V5c1xuICAgKi9cbiAgc2V0U2lnbmVycyhzaWduZXJzOiBzdHJpbmdbXSk6IHZvaWQge1xuICAgIHRoaXMuc2lnbmVycyA9IFsuLi5zaWduZXJzXTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIGFsbCBzaWduYXR1cmVzIGFzc29jaWF0ZWQgd2l0aCB0aGlzIG1lc3NhZ2VcbiAgICovXG4gIGdldFNpZ25hdHVyZXMoKTogc3RyaW5nW10ge1xuICAgIHJldHVybiBbLi4udGhpcy5zaWduYXR1cmVzXTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIHNpZ25hdHVyZXMgZm9yIHRoaXMgbWVzc2FnZVxuICAgKiBAcGFyYW0gc2lnbmF0dXJlcyBBcnJheSBvZiBzaWduYXR1cmVzIHRvIHNldFxuICAgKi9cbiAgc2V0U2lnbmF0dXJlcyhzaWduYXR1cmVzOiBzdHJpbmdbXSk6IHZvaWQge1xuICAgIHRoaXMuc2lnbmF0dXJlcyA9IFsuLi5zaWduYXR1cmVzXTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGRzIGEgc2lnbmF0dXJlIHRvIHRoaXMgbWVzc2FnZVxuICAgKiBAcGFyYW0gc2lnbmF0dXJlIFRoZSBzaWduYXR1cmUgdG8gYWRkXG4gICAqL1xuICBhZGRTaWduYXR1cmUoc2lnbmF0dXJlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLnNpZ25hdHVyZXMucHVzaChzaWduYXR1cmUpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldHMgdGhlIHBheWxvYWQgdGhhdCBzaG91bGQgYmUgc2lnbmVkXG4gICAqIEVhY2ggbWVzc2FnZSBzdGFuZGFyZCBtdXN0IGltcGxlbWVudCB0aGlzIG1ldGhvZFxuICAgKi9cbiAgYWJzdHJhY3QgZ2V0U2lnbmFibGVQYXlsb2FkKCk6IFByb21pc2U8c3RyaW5nIHwgQnVmZmVyPjtcblxuICAvKipcbiAgICogQ29udmVydHMgdGhpcyBtZXNzYWdlIHRvIGEgYnJvYWRjYXN0YWJsZSBmb3JtYXRcbiAgICogVXNlcyBpbnRlcm5hbCBzaWduYXR1cmVzIGFuZCBzaWduZXJzIHRoYXQgd2VyZSBwcmV2aW91c2x5IHNldFxuICAgKiBAcmV0dXJucyBBIGJyb2FkY2FzdGFibGUgbWVzc2FnZVxuICAgKi9cbiAgYXN5bmMgdG9Ccm9hZGNhc3RGb3JtYXQoKTogUHJvbWlzZTxCcm9hZGNhc3RhYmxlTWVzc2FnZT4ge1xuICAgIGlmICh0aGlzLnNpZ25hdHVyZXMubGVuZ3RoID09PSAwKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ05vIHNpZ25hdHVyZXMgYXZhaWxhYmxlIGZvciBicm9hZGNhc3QuIENhbGwgc2V0U2lnbmF0dXJlcyBvciBhZGRTaWduYXR1cmUgZmlyc3QuJyk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuc2lnbmVycy5sZW5ndGggPT09IDApIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignTm8gc2lnbmVycyBhdmFpbGFibGUgZm9yIGJyb2FkY2FzdC4gQ2FsbCBzZXRTaWduZXJzIG9yIGFkZFNpZ25lciBmaXJzdC4nKTtcbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgdHlwZTogdGhpcy50eXBlLFxuICAgICAgcGF5bG9hZDogdGhpcy5wYXlsb2FkLFxuICAgICAgc2lnbmF0dXJlczogdGhpcy5zaWduYXR1cmVzLFxuICAgICAgc2lnbmVyczogdGhpcy5zaWduZXJzLFxuICAgICAgbWV0YWRhdGE6IHtcbiAgICAgICAgLi4uKHRoaXMubWV0YWRhdGEgPyBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KHRoaXMubWV0YWRhdGEpKSA6IHt9KSwgLy8gZGVlcCBjb3B5IHRvIGF2b2lkIG11dGF0aW9uXG4gICAgICB9LFxuICAgICAgc2lnbmFibGVQYXlsb2FkOiB0aGlzLnNpZ25hYmxlUGF5bG9hZCxcbiAgICB9O1xuICB9XG5cbiAgLyoqXG4gICAqIFNlcmlhbGl6ZXMgdGhlIGJyb2FkY2FzdGFibGUgbWVzc2FnZSB0byBhIHN0cmluZ1xuICAgKiBVc2VzIGludGVybmFsIHNpZ25hdHVyZXMgYW5kIHNpZ25lcnMgdGhhdCB3ZXJlIHByZXZpb3VzbHkgc2V0XG4gICAqIEByZXR1cm5zIEEgSlNPTiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIGJyb2FkY2FzdGFibGUgbWVzc2FnZVxuICAgKi9cbiAgYXN5bmMgdG9Ccm9hZGNhc3RTdHJpbmcoKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICBjb25zdCBicm9hZGNhc3RhYmxlID0gYXdhaXQgdGhpcy50b0Jyb2FkY2FzdEZvcm1hdCgpO1xuICAgIHJldHVybiBKU09OLnN0cmluZ2lmeShicm9hZGNhc3RhYmxlKTtcbiAgfVxufVxuIl19
|
|
153
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZU1lc3NhZ2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvYWNjb3VudC1saWIvYmFzZUNvaW4vbWVzc2FnZXMvYmFzZU1lc3NhZ2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0EsMENBTXdCO0FBRXhCLG9DQUEwRDtBQUUxRCxNQUFzQixXQUFXO0lBUy9COzs7O09BSUc7SUFDSCxZQUFzQixPQUF1QjtRQVZuQyxlQUFVLEdBQWdCLEVBQUUsQ0FBQztRQUM3QixZQUFPLEdBQWEsRUFBRSxDQUFDO1FBVS9CLElBQUksQ0FBQyxVQUFVLEdBQUcsT0FBTyxDQUFDLFVBQVUsQ0FBQztRQUNyQyxJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUM7UUFDL0IsSUFBSSxDQUFDLElBQUksR0FBRyxPQUFPLENBQUMsSUFBSSxJQUFJLDJCQUFtQixDQUFDLE9BQU8sQ0FBQztRQUN4RCxJQUFJLENBQUMsZUFBZSxHQUFHLE9BQU8sQ0FBQyxlQUFlLENBQUM7UUFDL0MsSUFBSSxDQUFDLFFBQVEsR0FBRyxPQUFPLENBQUMsUUFBUSxJQUFJLEVBQUUsQ0FBQztRQUV2QyxJQUFJLE9BQU8sQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUN2Qix3REFBd0Q7WUFDeEQsSUFBSSxDQUFDLFVBQVUsR0FBRyxPQUFPLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsQ0FBQztnQkFDakQsU0FBUyxFQUFFLEVBQUUsR0FBRyxHQUFHLENBQUMsU0FBUyxFQUFFO2dCQUMvQixTQUFTLEVBQUUsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDO2FBQ3RDLENBQUMsQ0FBQyxDQUFDO1FBQ04sQ0FBQztRQUNELElBQUksT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ3BCLElBQUksQ0FBQyxPQUFPLEdBQUcsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxPQUFP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QUFDO1FBQ3JELE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUN2QyxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxLQUFLLENBQUMsb0JBQW9CLENBQUMsaUJBQXlCLEVBQUUsUUFBa0M7UUFDdEYsTUFBTSxlQUFlLEdBQUcsTUFBTSxJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztRQUN4RCxJQUFJLGtCQUEwQixDQUFDO1FBQy9CLElBQUksTUFBTSxDQUFDLFFBQVEsQ0FBQyxlQUFlLENBQUMsRUFBRSxDQUFDO1lBQ3JDLGtCQUFrQixHQUFHLGVBQWUsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDdkQsQ0FBQzthQUFNLENBQUM7WUFDTixrQkFBa0IsR0FBRyxlQUFlLENBQUM7UUFDdkMsQ0FBQztRQUNELE9BQU8sa0JBQWtCLEtBQUssaUJBQWlCLENBQUM7SUFDbEQsQ0FBQztDQUNGO0FBMUtELGtDQTBLQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJhc2VDb2luIGFzIENvaW5Db25maWcgfSBmcm9tICdAYml0Z28vc3RhdGljcyc7XG5pbXBvcnQge1xuICBCcm9hZGNhc3RhYmxlTWVzc2FnZSxcbiAgTWVzc2FnZU1ldGFkYXRhLFxuICBNZXNzYWdlT3B0aW9ucyxcbiAgTWVzc2FnZVBheWxvYWQsXG4gIE1lc3NhZ2VTdGFuZGFyZFR5cGUsXG59IGZyb20gJy4uLy4uLy4uL2JpdGdvJztcbmltcG9ydCB7IElNZXNzYWdlIH0gZnJvbSAnLi9pZmFjZSc7XG5pbXBvcnQgeyBzZXJpYWxpemVTaWduYXR1cmVzLCBTaWduYXR1cmUgfSBmcm9tICcuLi9pZmFjZSc7XG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBCYXNlTWVzc2FnZSBpbXBsZW1lbnRzIElNZXNzYWdlIHtcbiAgcHJvdGVjdGVkIGNvaW5Db25maWc6IFJlYWRvbmx5PENvaW5Db25maWc+O1xuICBwcm90ZWN0ZWQgdHlwZTogTWVzc2FnZVN0YW5kYXJkVHlwZTtcbiAgcHJvdGVjdGVkIHBheWxvYWQ6IE1lc3NhZ2VQYXlsb2FkO1xuICBwcm90ZWN0ZWQgc2lnbmF0dXJlczogU2lnbmF0dXJlW10gPSBbXTtcbiAgcHJvdGVjdGVkIHNpZ25lcnM6IHN0cmluZ1tdID0gW107XG4gIHByb3RlY3RlZCBzaWduYWJsZVBheWxvYWQ/OiBzdHJpbmcgfCBCdWZmZXI7XG4gIHByb3RlY3RlZCBtZXRhZGF0YT86IE1lc3NhZ2VNZXRhZGF0YTtcblxuICAvKipcbiAgICogQmFzZSBjb25zdHJ1Y3Rvci5cbiAgICpcbiAgICogQHBhcmFtIG9wdGlvbnMgTWVzc2FnZSBvcHRpb25zIGNvbnRhaW5pbmcgdHlwZSwgcGF5bG9hZCwgbWV0YWRhdGEsIGV0Yy5cbiAgICovXG4gIHByb3RlY3RlZCBjb25zdHJ1Y3RvcihvcHRpb25zOiBNZXNzYWdlT3B0aW9ucykge1xuICAgIHRoaXMuY29pbkNvbmZpZyA9IG9wdGlvbnMuY29pbkNvbmZpZztcbiAgICB0aGlzLnBheWxvYWQgPSBvcHRpb25zLnBheWxvYWQ7XG4gICAgdGhpcy50eXBlID0gb3B0aW9ucy50eXBlIHx8IE1lc3NhZ2VTdGFuZGFyZFR5cGUuVU5LTk9XTjtcbiAgICB0aGlzLnNpZ25hYmxlUGF5bG9hZCA9IG9wdGlvbnMuc2lnbmFibGVQYXlsb2FkO1xuICAgIHRoaXMubWV0YWRhdGEgPSBvcHRpb25zLm1ldGFkYXRhIHx8IHt9O1xuXG4gICAgaWYgKG9wdGlvbnMuc2lnbmF0dXJlcykge1xuICAgICAgLy8gRGVlcCBjb3B5IGVhY2ggU2lnbmF0dXJlIG9iamVjdCwgaW5jbHVkaW5nIHRoZSBCdWZmZXJcbiAgICAgIHRoaXMuc2lnbmF0dXJlcyA9IG9wdGlvbnMuc2lnbmF0dXJlcy5tYXAoKHNpZykgPT4gKHtcbiAgICAgICAgcHVibGljS2V5OiB7IC4uLnNpZy5wdWJsaWNLZXkgfSxcbiAgICAgICAgc2lnbmF0dXJlOiBCdWZmZXIuZnJvbShzaWcuc2lnbmF0dXJlKSxcbiAgICAgIH0pKTtcbiAgICB9XG4gICAgaWYgKG9wdGlvbnMuc2lnbmVycykge1xuICAgICAgdGhpcy5zaWduZXJzID0gWy4uLm9wdGlvbnMuc2lnbmVyc107XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgbWVzc2FnZSB0eXBlXG4gICAqL1xuICBnZXRUeXBlKCk6IE1lc3NhZ2VTdGFuZGFyZFR5cGUge1xuICAgIHJldHVybiB0aGlzLnR5cGU7XG4gIH1cblxuICAvKipcbiAgICogR2V0IHRoZSBtZXNzYWdlIHBheWxvYWRcbiAgICovXG4gIGdldFBheWxvYWQoKTogTWVzc2FnZVBheWxvYWQge1xuICAgIHJldHVybiB0aGlzLnBheWxvYWQ7XG4gIH1cblxuICAvKipcbiAgICogR2V0IHRoZSBtZXRhZGF0YSBhc3NvY2lhdGVkIHdpdGggdGhlIG1lc3NhZ2VcbiAgICovXG4gIGdldE1ldGFkYXRhKCk6IE1lc3NhZ2VNZXRhZGF0YSB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMubWV0YWRhdGE7XG4gIH1cblxuICAvKipcbiAgICogR2V0cyBhbGwgc2lnbmVycyBhZGRyZXNzZXMgb3IgcHVibGljIGtleXNcbiAgICovXG4gIGdldFNpZ25lcnMoKTogc3RyaW5nW10ge1xuICAgIHJldHVybiBbLi4udGhpcy5zaWduZXJzXTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGRzIGEgc2lnbmVyIGFkZHJlc3Mgb3IgcHVibGljIGtleVxuICAgKiBAcGFyYW0gc2lnbmVyIFRoZSBhZGRyZXNzIG9yIHB1YmxpYyBrZXkgb2YgdGhlIHNpZ25lclxuICAgKi9cbiAgYWRkU2lnbmVyKHNpZ25lcjogc3RyaW5nKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLnNpZ25lcnMuaW5jbHVkZXMoc2lnbmVyKSkge1xuICAgICAgdGhpcy5zaWduZXJzLnB1c2goc2lnbmVyKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogU2V0cyBzaWduZXJzIGFkZHJlc3NlcyBvciBwdWJsaWMga2V5c1xuICAgKiBAcGFyYW0gc2lnbmVycyBBcnJheSBvZiBhZGRyZXNzZXMgb3IgcHVibGljIGtleXNcbiAgICovXG4gIHNldFNpZ25lcnMoc2lnbmVyczogc3RyaW5nW10pOiB2b2lkIHtcbiAgICB0aGlzLnNpZ25lcnMgPSBbLi4uc2lnbmVyc107XG4gIH1cblxuICAvKipcbiAgICogR2V0cyBhbGwgc2lnbmF0dXJlcyBhc3NvY2lhdGVkIHdpdGggdGhpcyBtZXNzYWdlXG4gICAqL1xuICBnZXRTaWduYXR1cmVzKCk6IFNpZ25hdHVyZVtdIHtcbiAgICByZXR1cm4gWy4uLnRoaXMuc2lnbmF0dXJlc107XG4gIH1cblxuICAvKipcbiAgICogU2V0cyBzaWduYXR1cmVzIGZvciB0aGlzIG1lc3NhZ2VcbiAgICogQHBhcmFtIHNpZ25hdHVyZXMgQXJyYXkgb2Ygc2lnbmF0dXJlcyB0byBzZXRcbiAgICovXG4gIHNldFNpZ25hdHVyZXMoc2lnbmF0dXJlczogU2lnbmF0dXJlW10pOiB2b2lkIHtcbiAgICB0aGlzLnNpZ25hdHVyZXMgPSBbLi4uc2lnbmF0dXJlc107XG4gIH1cblxuICAvKipcbiAgICogQWRkcyBhIHNpZ25hdHVyZSB0byB0aGlzIG1lc3NhZ2VcbiAgICogQHBhcmFtIHNpZ25hdHVyZSBUaGUgc2lnbmF0dXJlIHRvIGFkZFxuICAgKi9cbiAgYWRkU2lnbmF0dXJlKHNpZ25hdHVyZTogU2lnbmF0dXJlKTogdm9pZCB7XG4gICAgdGhpcy5zaWduYXR1cmVzLnB1c2goc2lnbmF0dXJlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIHRoZSBwYXlsb2FkIHRoYXQgc2hvdWxkIGJlIHNpZ25lZFxuICAgKiBFYWNoIG1lc3NhZ2Ugc3RhbmRhcmQgbXVzdCBpbXBsZW1lbnQgdGhpcyBtZXRob2RcbiAgICovXG4gIGFic3RyYWN0IGdldFNpZ25hYmxlUGF5bG9hZCgpOiBQcm9taXNlPHN0cmluZyB8IEJ1ZmZlcj47XG5cbiAgLyoqXG4gICAqIEdldHMgdGhlIHNpZ25hdHVyZXMgaW4gYSBmb3JtYXQgc3VpdGFibGUgZm9yIGJyb2FkY2FzdGluZ1xuICAgKi9cbiAgZ2V0QnJvYWRjYXN0YWJsZVNpZ25hdHVyZXMoKTogU2lnbmF0dXJlW10ge1xuICAgIHJldHVybiB0aGlzLnNpZ25hdHVyZXM7XG4gIH1cblxuICAvKipcbiAgICogQ29udmVydHMgdGhpcyBtZXNzYWdlIHRvIGEgYnJvYWRjYXN0YWJsZSBmb3JtYXRcbiAgICogVXNlcyBpbnRlcm5hbCBzaWduYXR1cmVzIGFuZCBzaWduZXJzIHRoYXQgd2VyZSBwcmV2aW91c2x5IHNldFxuICAgKiBAcmV0dXJucyBBIGJyb2FkY2FzdGFibGUgbWVzc2FnZVxuICAgKi9cbiAgYXN5bmMgdG9Ccm9hZGNhc3RGb3JtYXQoKTogUHJvbWlzZTxCcm9hZGNhc3RhYmxlTWVzc2FnZT4ge1xuICAgIGlmICghdGhpcy5wYXlsb2FkKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ01lc3NhZ2UgcGF5bG9hZCBtdXN0IGJlIHNldCBiZWZvcmUgY29udmVydGluZyB0byBicm9hZGNhc3QgZm9ybWF0Jyk7XG4gICAgfVxuICAgIGNvbnN0IHNpZ25hYmxlUGF5bG9hZCA9IGF3YWl0IHRoaXMuZ2V0U2lnbmFibGVQYXlsb2FkKCk7XG4gICAgbGV0IHNlcmlhbGl6ZWRTaWduYWJsZVBheWxvYWQ6IHN0cmluZztcbiAgICBpZiAoQnVmZmVyLmlzQnVmZmVyKHNpZ25hYmxlUGF5bG9hZCkpIHtcbiAgICAgIHNlcmlhbGl6ZWRTaWduYWJsZVBheWxvYWQgPSBzaWduYWJsZVBheWxvYWQudG9TdHJpbmcoJ2Jhc2U2NCcpO1xuICAgIH0gZWxzZSB7XG4gICAgICBzZXJpYWxpemVkU2lnbmFibGVQYXlsb2FkID0gQnVmZmVyLmZyb20oU3RyaW5nKHNpZ25hYmxlUGF5bG9hZCkpLnRvU3RyaW5nKCdiYXNlNjQnKTtcbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgdHlwZTogdGhpcy50eXBlLFxuICAgICAgcGF5bG9hZDogdGhpcy5wYXlsb2FkLFxuICAgICAgc2VyaWFsaXplZFNpZ25hdHVyZXM6IHNlcmlhbGl6ZVNpZ25hdHVyZXModGhpcy5nZXRCcm9hZGNhc3RhYmxlU2lnbmF0dXJlcygpKSxcbiAgICAgIHNpZ25lcnM6IFsuLi50aGlzLnNpZ25lcnNdLFxuICAgICAgbWV0YWRhdGE6IHtcbiAgICAgICAgLi4uKHRoaXMubWV0YWRhdGEgPyBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KHRoaXMubWV0YWRhdGEpKSA6IHt9KSwgLy8gZGVlcCBjb3B5IHRvIGF2b2lkIG11dGF0aW9uXG4gICAgICB9LFxuICAgICAgc2lnbmFibGVQYXlsb2FkOiBzZXJpYWxpemVkU2lnbmFibGVQYXlsb2FkLFxuICAgIH07XG4gIH1cblxuICAvKipcbiAgICogU2VyaWFsaXplcyB0aGUgYnJvYWRjYXN0YWJsZSBtZXNzYWdlIHRvIGEgc3RyaW5nXG4gICAqIFVzZXMgaW50ZXJuYWwgc2lnbmF0dXJlcyBhbmQgc2lnbmVycyB0aGF0IHdlcmUgcHJldmlvdXNseSBzZXRcbiAgICogQHJldHVybnMgQSBKU09OIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgYnJvYWRjYXN0YWJsZSBtZXNzYWdlXG4gICAqL1xuICBhc3luYyB0b0Jyb2FkY2FzdFN0cmluZygpOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIGNvbnN0IGJyb2FkY2FzdGFibGUgPSBhd2FpdCB0aGlzLnRvQnJvYWRjYXN0Rm9ybWF0KCk7XG4gICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KGJyb2FkY2FzdGFibGUpO1xuICB9XG5cbiAgLyoqXG4gICAqIFZlcmlmaWVzIGlmIHRoZSBwcm92aWRlZCBlbmNvZGVkIG1lc3NhZ2UgbWF0Y2hlcyB0aGUgc2lnbmFibGUgcGF5bG9hZFxuICAgKiBAcGFyYW0gbWVzc2FnZUVuY29kZWRIZXggVGhlIGVuY29kZWQgbWVzc2FnZSBpbiBoZXggZm9ybWF0XG4gICAqIEBwYXJhbSBtZXRhZGF0YSBPcHRpb25hbCBtZXRhZGF0YSBmb3IgYWRkaXRpb25hbCB2ZXJpZmljYXRpb24gY29udGV4dFxuICAgKiBAcmV0dXJucyBUcnVlIGlmIHRoZSBlbmNvZGVkIG1lc3NhZ2UgbWF0Y2hlcyB0aGUgc2lnbmFibGUgcGF5bG9hZCwgZmFsc2Ugb3RoZXJ3aXNlXG4gICAqL1xuICBhc3luYyB2ZXJpZnlFbmNvZGVkUGF5bG9hZChtZXNzYWdlRW5jb2RlZEhleDogc3RyaW5nLCBtZXRhZGF0YT86IFJlY29yZDxzdHJpbmcsIHVua25vd24+KTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgY29uc3Qgc2lnbmFibGVQYXlsb2FkID0gYXdhaXQgdGhpcy5nZXRTaWduYWJsZVBheWxvYWQoKTtcbiAgICBsZXQgc2lnbmFibGVQYXlsb2FkSGV4OiBzdHJpbmc7XG4gICAgaWYgKEJ1ZmZlci5pc0J1ZmZlcihzaWduYWJsZVBheWxvYWQpKSB7XG4gICAgICBzaWduYWJsZVBheWxvYWRIZXggPSBzaWduYWJsZVBheWxvYWQudG9TdHJpbmcoJ2hleCcpO1xuICAgIH0gZWxzZSB7XG4gICAgICBzaWduYWJsZVBheWxvYWRIZXggPSBzaWduYWJsZVBheWxvYWQ7XG4gICAgfVxuICAgIHJldHVybiBzaWduYWJsZVBheWxvYWRIZXggPT09IG1lc3NhZ2VFbmNvZGVkSGV4O1xuICB9XG59XG4iXX0=
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
import { BroadcastableMessage, MessagePayload, MessageStandardType } from '../../../bitgo';
|
|
1
|
+
import { BroadcastableMessage, MessageOptions, MessagePayload, MessageStandardType } from '../../../bitgo';
|
|
2
2
|
import { BaseCoin as CoinConfig } from '@bitgo/statics';
|
|
3
3
|
import { IMessage, IMessageBuilder } from './iface';
|
|
4
|
+
import { Signature } from '../iface';
|
|
4
5
|
/**
|
|
5
6
|
* Base Message Builder
|
|
6
7
|
*/
|
|
@@ -8,7 +9,7 @@ export declare abstract class BaseMessageBuilder implements IMessageBuilder {
|
|
|
8
9
|
protected coinConfig: Readonly<CoinConfig>;
|
|
9
10
|
protected payload: MessagePayload;
|
|
10
11
|
protected type: MessageStandardType;
|
|
11
|
-
protected signatures:
|
|
12
|
+
protected signatures: Signature[];
|
|
12
13
|
protected signers: string[];
|
|
13
14
|
protected metadata?: Record<string, unknown>;
|
|
14
15
|
protected digest?: string;
|
|
@@ -42,9 +43,9 @@ export declare abstract class BaseMessageBuilder implements IMessageBuilder {
|
|
|
42
43
|
getMetadata(): Record<string, unknown> | undefined;
|
|
43
44
|
getType(): MessageStandardType;
|
|
44
45
|
setType(value: MessageStandardType): IMessageBuilder;
|
|
45
|
-
getSignatures():
|
|
46
|
-
setSignatures(
|
|
47
|
-
addSignature(signature:
|
|
46
|
+
getSignatures(): Signature[];
|
|
47
|
+
setSignatures(signatures: Signature[]): IMessageBuilder;
|
|
48
|
+
addSignature(signature: Signature): IMessageBuilder;
|
|
48
49
|
getSigners(): string[];
|
|
49
50
|
setSigners(value: string[]): IMessageBuilder;
|
|
50
51
|
addSigner(signer: string): IMessageBuilder;
|
|
@@ -52,15 +53,15 @@ export declare abstract class BaseMessageBuilder implements IMessageBuilder {
|
|
|
52
53
|
setDigest(value: string): IMessageBuilder;
|
|
53
54
|
/**
|
|
54
55
|
* Builds a message using the previously set payload and metadata
|
|
55
|
-
* This abstract method must be implemented by each specific builder
|
|
56
56
|
* @returns A Promise resolving to the built IMessage
|
|
57
57
|
*/
|
|
58
|
-
|
|
58
|
+
build(): Promise<IMessage>;
|
|
59
|
+
protected abstract buildMessage(options: MessageOptions): Promise<IMessage>;
|
|
59
60
|
/**
|
|
60
61
|
* Parse a broadcastable message back into a message
|
|
61
62
|
* @param broadcastMessage The broadcastable message to parse
|
|
62
63
|
* @returns The parsed message
|
|
63
64
|
*/
|
|
64
|
-
|
|
65
|
+
fromBroadcastFormat(broadcastMessage: BroadcastableMessage): Promise<IMessage>;
|
|
65
66
|
}
|
|
66
67
|
//# sourceMappingURL=baseMessageBuilder.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"baseMessageBuilder.d.ts","sourceRoot":"","sources":["../../../../../src/account-lib/baseCoin/messages/baseMessageBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"baseMessageBuilder.d.ts","sourceRoot":"","sources":["../../../../../src/account-lib/baseCoin/messages/baseMessageBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,cAAc,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAC3G,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AACpD,OAAO,EAAyB,SAAS,EAAE,MAAM,UAAU,CAAC;AAE5D;;GAEG;AACH,8BAAsB,kBAAmB,YAAW,eAAe;IACjE,SAAS,CAAC,UAAU,EAAE,QAAQ,CAAC,UAAU,CAAC,CAAC;IAC3C,SAAS,CAAC,OAAO,EAAE,cAAc,CAAM;IACvC,SAAS,CAAC,IAAI,EAAE,mBAAmB,CAAC;IACpC,SAAS,CAAC,UAAU,EAAE,SAAS,EAAE,CAAM;IACvC,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,CAAM;IACjC,SAAS,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAM;IAClD,SAAS,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAE1B;;;;OAIG;IACH,SAAS,aACP,UAAU,EAAE,QAAQ,CAAC,UAAU,CAAC,EAChC,WAAW,GAAE,mBAAiD;IAMhE;;;;OAIG;IACI,UAAU,CAAC,OAAO,EAAE,cAAc,GAAG,eAAe;IAK3D;;;;OAIG;IACI,WAAW,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,eAAe;IAKtE;;;OAGG;IACI,UAAU,IAAI,cAAc,GAAG,SAAS;IAI/C;;;OAGG;IACI,WAAW,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS;IAIlD,OAAO,IAAI,mBAAmB;IAI9B,OAAO,CAAC,KAAK,EAAE,mBAAmB,GAAG,eAAe;IAKpD,aAAa,IAAI,SAAS,EAAE;IAI5B,aAAa,CAAC,UAAU,EAAE,SAAS,EAAE,GAAG,eAAe;IAKvD,YAAY,CAAC,SAAS,EAAE,SAAS,GAAG,eAAe;IAWnD,UAAU,IAAI,MAAM,EAAE;IAItB,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,eAAe;IAK5C,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,eAAe;IAO1C,SAAS,IAAI,MAAM,GAAG,SAAS;IAI/B,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,eAAe;IAKhD;;;OAGG;IACU,KAAK,IAAI,OAAO,CAAC,QAAQ,CAAC;IAwBvC,SAAS,CAAC,QAAQ,CAAC,YAAY,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,QAAQ,CAAC;IAE3E;;;;OAIG;IACU,mBAAmB,CAAC,gBAAgB,EAAE,oBAAoB,GAAG,OAAO,CAAC,QAAQ,CAAC;CAc5F"}
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.BaseMessageBuilder = void 0;
|
|
4
4
|
const bitgo_1 = require("../../../bitgo");
|
|
5
|
+
const iface_1 = require("../iface");
|
|
5
6
|
/**
|
|
6
7
|
* Base Message Builder
|
|
7
8
|
*/
|
|
@@ -61,12 +62,12 @@ class BaseMessageBuilder {
|
|
|
61
62
|
getSignatures() {
|
|
62
63
|
return this.signatures;
|
|
63
64
|
}
|
|
64
|
-
setSignatures(
|
|
65
|
-
this.signatures =
|
|
65
|
+
setSignatures(signatures) {
|
|
66
|
+
this.signatures = signatures;
|
|
66
67
|
return this;
|
|
67
68
|
}
|
|
68
69
|
addSignature(signature) {
|
|
69
|
-
if (!this.signatures.
|
|
70
|
+
if (!this.signatures.some((sig) => sig.publicKey.pub === signature.publicKey.pub && sig.signature.equals(signature.signature))) {
|
|
70
71
|
this.signatures.push(signature);
|
|
71
72
|
}
|
|
72
73
|
return this;
|
|
@@ -91,6 +92,53 @@ class BaseMessageBuilder {
|
|
|
91
92
|
this.digest = value;
|
|
92
93
|
return this;
|
|
93
94
|
}
|
|
95
|
+
/**
|
|
96
|
+
* Builds a message using the previously set payload and metadata
|
|
97
|
+
* @returns A Promise resolving to the built IMessage
|
|
98
|
+
*/
|
|
99
|
+
async build() {
|
|
100
|
+
try {
|
|
101
|
+
if (!this.payload) {
|
|
102
|
+
throw new Error('Message payload must be set before building the message');
|
|
103
|
+
}
|
|
104
|
+
return this.buildMessage({
|
|
105
|
+
coinConfig: this.coinConfig,
|
|
106
|
+
payload: this.payload,
|
|
107
|
+
type: this.type,
|
|
108
|
+
signatures: this.signatures,
|
|
109
|
+
signers: this.signers,
|
|
110
|
+
metadata: {
|
|
111
|
+
...this.metadata,
|
|
112
|
+
encoding: 'utf8',
|
|
113
|
+
},
|
|
114
|
+
});
|
|
115
|
+
}
|
|
116
|
+
catch (err) {
|
|
117
|
+
if (err instanceof Error) {
|
|
118
|
+
throw err;
|
|
119
|
+
}
|
|
120
|
+
throw new Error(`Failed to build message of type ${this.type}`);
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
/**
|
|
124
|
+
* Parse a broadcastable message back into a message
|
|
125
|
+
* @param broadcastMessage The broadcastable message to parse
|
|
126
|
+
* @returns The parsed message
|
|
127
|
+
*/
|
|
128
|
+
async fromBroadcastFormat(broadcastMessage) {
|
|
129
|
+
const { type, payload, serializedSignatures, signers, metadata } = broadcastMessage;
|
|
130
|
+
if (type !== this.type) {
|
|
131
|
+
throw new Error(`Invalid message type, expected ${this.type}`);
|
|
132
|
+
}
|
|
133
|
+
this.payload = payload;
|
|
134
|
+
this.signatures = (0, iface_1.deserializeSignatures)(serializedSignatures);
|
|
135
|
+
this.signers = signers || [];
|
|
136
|
+
this.metadata = {
|
|
137
|
+
...metadata,
|
|
138
|
+
encoding: 'utf8',
|
|
139
|
+
};
|
|
140
|
+
return this.build();
|
|
141
|
+
}
|
|
94
142
|
}
|
|
95
143
|
exports.BaseMessageBuilder = BaseMessageBuilder;
|
|
96
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZU1lc3NhZ2VCdWlsZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2FjY291bnQtbGliL2Jhc2VDb2luL21lc3NhZ2VzL2Jhc2VNZXNzYWdlQnVpbGRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSwwQ0FBMkY7QUFJM0Y7O0dBRUc7QUFDSCxNQUFzQixrQkFBa0I7SUFTdEM7Ozs7T0FJRztJQUNILFlBQ0UsVUFBZ0MsRUFDaEMsY0FBbUMsMkJBQW1CLENBQUMsT0FBTztRQWR0RCxZQUFPLEdBQW1CLEVBQUUsQ0FBQztRQUU3QixlQUFVLEdBQWEsRUFBRSxDQUFDO1FBQzFCLFlBQU8sR0FBYSxFQUFFLENBQUM7UUFDdkIsYUFBUSxHQUE2QixFQUFFLENBQUM7UUFZaEQsSUFBSSxDQUFDLFVBQVUsR0FBRyxVQUFVLENBQUM7UUFDN0IsSUFBSSxDQUFDLElBQUksR0FBRyxXQUFXLENBQUM7SUFDMUIsQ0FBQztJQUVEOzs7O09BSUc7SUFDSSxVQUFVLENBQUMsT0FBdUI7UUFDdkMsSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUM7UUFDdkIsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNJLFdBQVcsQ0FBQyxRQUFpQztRQUNsRCxJQUFJLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztRQUN6QixPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRDs7O09BR0c7SUFDSSxVQUFVO1FBQ2YsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDO0lBQ3RCLENBQUM7SUFFRDs7O09BR0c7SUFDSSxXQUFXO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQztJQUN2QixDQUFDO0lBRU0sT0FBTztRQUNaLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQztJQUNuQixDQUFDO0lBRU0sT0FBTyxDQUFDLEtBQTBCO1FBQ3ZDLElBQUksQ0FBQyxJQUFJLEdBQUcsS0FBSyxDQUFDO1FBQ2xCLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVNLGFBQWE7UUFDbEIsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDO0lBQ3pCLENBQUM7SUFFTSxhQUFhLENBQUMsS0FBZTtRQUNsQyxJQUFJLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FBQztRQUN4QixPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFTSxZQUFZLENBQUMsU0FBaUI7UUFDbkMsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUM7WUFDekMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDbEMsQ0FBQztRQUNELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVNLFVBQVU7UUFDZixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUM7SUFDdEIsQ0FBQztJQUVNLFVBQVUsQ0FBQyxLQUFlO1FBQy9CLElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO1FBQ3JCLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVNLFNBQVMsQ0FBQyxNQUFjO1FBQzdCLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDO1lBQ25DLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzVCLENBQUM7UUFDRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFTSxTQUFTO1FBQ2QsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDO0lBQ3JCLENBQUM7SUFFTSxTQUFTLENBQUMsS0FBYTtRQUM1QixJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztRQUNwQixPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7Q0FlRjtBQXpIRCxnREF5SEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCcm9hZGNhc3RhYmxlTWVzc2FnZSwgTWVzc2FnZVBheWxvYWQsIE1lc3NhZ2VTdGFuZGFyZFR5cGUgfSBmcm9tICcuLi8uLi8uLi9iaXRnbyc7XG5pbXBvcnQgeyBCYXNlQ29pbiBhcyBDb2luQ29uZmlnIH0gZnJvbSAnQGJpdGdvL3N0YXRpY3MnO1xuaW1wb3J0IHsgSU1lc3NhZ2UsIElNZXNzYWdlQnVpbGRlciB9IGZyb20gJy4vaWZhY2UnO1xuXG4vKipcbiAqIEJhc2UgTWVzc2FnZSBCdWlsZGVyXG4gKi9cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBCYXNlTWVzc2FnZUJ1aWxkZXIgaW1wbGVtZW50cyBJTWVzc2FnZUJ1aWxkZXIge1xuICBwcm90ZWN0ZWQgY29pbkNvbmZpZzogUmVhZG9ubHk8Q29pbkNvbmZpZz47XG4gIHByb3RlY3RlZCBwYXlsb2FkOiBNZXNzYWdlUGF5bG9hZCA9ICcnO1xuICBwcm90ZWN0ZWQgdHlwZTogTWVzc2FnZVN0YW5kYXJkVHlwZTtcbiAgcHJvdGVjdGVkIHNpZ25hdHVyZXM6IHN0cmluZ1tdID0gW107XG4gIHByb3RlY3RlZCBzaWduZXJzOiBzdHJpbmdbXSA9IFtdO1xuICBwcm90ZWN0ZWQgbWV0YWRhdGE/OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiA9IHt9O1xuICBwcm90ZWN0ZWQgZGlnZXN0Pzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBCYXNlIGNvbnN0cnVjdG9yLlxuICAgKiBAcGFyYW0gY29pbkNvbmZpZyBCYXNlQ29pbiBmcm9tIHN0YXRpY3MgbGlicmFyeVxuICAgKiBAcGFyYW0gbWVzc2FnZVR5cGUgVGhlIHR5cGUgb2YgbWVzc2FnZSB0aGlzIGJ1aWxkZXIgY3JlYXRlcywgZGVmYXVsdHMgdG8gVU5LTk9XTlxuICAgKi9cbiAgcHJvdGVjdGVkIGNvbnN0cnVjdG9yKFxuICAgIGNvaW5Db25maWc6IFJlYWRvbmx5PENvaW5Db25maWc+LFxuICAgIG1lc3NhZ2VUeXBlOiBNZXNzYWdlU3RhbmRhcmRUeXBlID0gTWVzc2FnZVN0YW5kYXJkVHlwZS5VTktOT1dOXG4gICkge1xuICAgIHRoaXMuY29pbkNvbmZpZyA9IGNvaW5Db25maWc7XG4gICAgdGhpcy50eXBlID0gbWVzc2FnZVR5cGU7XG4gIH1cblxuICAvKipcbiAgICogU2V0cyB0aGUgbWVzc2FnZSBwYXlsb2FkIHRvIGJlIHVzZWQgd2hlbiBidWlsZGluZyB0aGUgbWVzc2FnZVxuICAgKiBAcGFyYW0gcGF5bG9hZCBUaGUgbWVzc2FnZSBwYXlsb2FkIChzdHJpbmcsIEpTT04sIGV0Yy4pXG4gICAqIEByZXR1cm5zIFRoZSBidWlsZGVyIGluc3RhbmNlIGZvciBjaGFpbmluZ1xuICAgKi9cbiAgcHVibGljIHNldFBheWxvYWQocGF5bG9hZDogTWVzc2FnZVBheWxvYWQpOiBJTWVzc2FnZUJ1aWxkZXIge1xuICAgIHRoaXMucGF5bG9hZCA9IHBheWxvYWQ7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogU2V0cyBtZXRhZGF0YSBmb3IgdGhlIG1lc3NhZ2VcbiAgICogQHBhcmFtIG1ldGFkYXRhIEFkZGl0aW9uYWwgbWV0YWRhdGEgZm9yIHRoZSBtZXNzYWdlXG4gICAqIEByZXR1cm5zIFRoZSBidWlsZGVyIGluc3RhbmNlIGZvciBjaGFpbmluZ1xuICAgKi9cbiAgcHVibGljIHNldE1ldGFkYXRhKG1ldGFkYXRhOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPik6IElNZXNzYWdlQnVpbGRlciB7XG4gICAgdGhpcy5tZXRhZGF0YSA9IG1ldGFkYXRhO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldHMgdGhlIGN1cnJlbnQgbWVzc2FnZSBwYXlsb2FkXG4gICAqIEByZXR1cm5zIFRoZSBjdXJyZW50IG1lc3NhZ2UgcGF5bG9hZFxuICAgKi9cbiAgcHVibGljIGdldFBheWxvYWQoKTogTWVzc2FnZVBheWxvYWQgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLnBheWxvYWQ7XG4gIH1cblxuICAvKipcbiAgICogR2V0cyB0aGUgY3VycmVudCBtZXRhZGF0YVxuICAgKiBAcmV0dXJucyBUaGUgY3VycmVudCBtZXRhZGF0YVxuICAgKi9cbiAgcHVibGljIGdldE1ldGFkYXRhKCk6IFJlY29yZDxzdHJpbmcsIHVua25vd24+IHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5tZXRhZGF0YTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRUeXBlKCk6IE1lc3NhZ2VTdGFuZGFyZFR5cGUge1xuICAgIHJldHVybiB0aGlzLnR5cGU7XG4gIH1cblxuICBwdWJsaWMgc2V0VHlwZSh2YWx1ZTogTWVzc2FnZVN0YW5kYXJkVHlwZSk6IElNZXNzYWdlQnVpbGRlciB7XG4gICAgdGhpcy50eXBlID0gdmFsdWU7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBwdWJsaWMgZ2V0U2lnbmF0dXJlcygpOiBzdHJpbmdbXSB7XG4gICAgcmV0dXJuIHRoaXMuc2lnbmF0dXJlcztcbiAgfVxuXG4gIHB1YmxpYyBzZXRTaWduYXR1cmVzKHZhbHVlOiBzdHJpbmdbXSk6IElNZXNzYWdlQnVpbGRlciB7XG4gICAgdGhpcy5zaWduYXR1cmVzID0gdmFsdWU7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBwdWJsaWMgYWRkU2lnbmF0dXJlKHNpZ25hdHVyZTogc3RyaW5nKTogSU1lc3NhZ2VCdWlsZGVyIHtcbiAgICBpZiAoIXRoaXMuc2lnbmF0dXJlcy5pbmNsdWRlcyhzaWduYXR1cmUpKSB7XG4gICAgICB0aGlzLnNpZ25hdHVyZXMucHVzaChzaWduYXR1cmUpO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIHB1YmxpYyBnZXRTaWduZXJzKCk6IHN0cmluZ1tdIHtcbiAgICByZXR1cm4gdGhpcy5zaWduZXJzO1xuICB9XG5cbiAgcHVibGljIHNldFNpZ25lcnModmFsdWU6IHN0cmluZ1tdKTogSU1lc3NhZ2VCdWlsZGVyIHtcbiAgICB0aGlzLnNpZ25lcnMgPSB2YWx1ZTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIHB1YmxpYyBhZGRTaWduZXIoc2lnbmVyOiBzdHJpbmcpOiBJTWVzc2FnZUJ1aWxkZXIge1xuICAgIGlmICghdGhpcy5zaWduZXJzLmluY2x1ZGVzKHNpZ25lcikpIHtcbiAgICAgIHRoaXMuc2lnbmVycy5wdXNoKHNpZ25lcik7XG4gICAgfVxuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgcHVibGljIGdldERpZ2VzdCgpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLmRpZ2VzdDtcbiAgfVxuXG4gIHB1YmxpYyBzZXREaWdlc3QodmFsdWU6IHN0cmluZyk6IElNZXNzYWdlQnVpbGRlciB7XG4gICAgdGhpcy5kaWdlc3QgPSB2YWx1ZTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKiBCdWlsZHMgYSBtZXNzYWdlIHVzaW5nIHRoZSBwcmV2aW91c2x5IHNldCBwYXlsb2FkIGFuZCBtZXRhZGF0YVxuICAgKiBUaGlzIGFic3RyYWN0IG1ldGhvZCBtdXN0IGJlIGltcGxlbWVudGVkIGJ5IGVhY2ggc3BlY2lmaWMgYnVpbGRlclxuICAgKiBAcmV0dXJucyBBIFByb21pc2UgcmVzb2x2aW5nIHRvIHRoZSBidWlsdCBJTWVzc2FnZVxuICAgKi9cbiAgYWJzdHJhY3QgYnVpbGQoKTogUHJvbWlzZTxJTWVzc2FnZT47XG5cbiAgLyoqXG4gICAqIFBhcnNlIGEgYnJvYWRjYXN0YWJsZSBtZXNzYWdlIGJhY2sgaW50byBhIG1lc3NhZ2VcbiAgICogQHBhcmFtIGJyb2FkY2FzdE1lc3NhZ2UgVGhlIGJyb2FkY2FzdGFibGUgbWVzc2FnZSB0byBwYXJzZVxuICAgKiBAcmV0dXJucyBUaGUgcGFyc2VkIG1lc3NhZ2VcbiAgICovXG4gIGFic3RyYWN0IGZyb21Ccm9hZGNhc3RGb3JtYXQoYnJvYWRjYXN0TWVzc2FnZTogQnJvYWRjYXN0YWJsZU1lc3NhZ2UpOiBQcm9taXNlPElNZXNzYWdlPjtcbn1cbiJdfQ==
|
|
144
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZU1lc3NhZ2VCdWlsZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2FjY291bnQtbGliL2Jhc2VDb2luL21lc3NhZ2VzL2Jhc2VNZXNzYWdlQnVpbGRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSwwQ0FBMkc7QUFHM0csb0NBQTREO0FBRTVEOztHQUVHO0FBQ0gsTUFBc0Isa0JBQWtCO0lBU3RDOzs7O09BSUc7SUFDSCxZQUNFLFVBQWdDLEVBQ2hDLGNBQW1DLDJCQUFtQixDQUFDLE9BQU87UUFkdEQsWUFBTyxHQUFtQixFQUFFLENBQUM7UUFFN0IsZUFBVSxHQUFnQixFQUFFLENBQUM7UUFDN0IsWUFBTyxHQUFhLEVBQUUsQ0FBQztRQUN2QixhQUFRLEdBQTZCLEVBQUUsQ0FBQztRQVloRCxJQUFJLENBQUMsVUFBVSxHQUFHLFVBQVUsQ0FBQztRQUM3QixJQUFJLENBQUMsSUFBSSxHQUFHLFdBQVcsQ0FBQztJQUMxQixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNJLFVBQVUsQ0FBQyxPQUF1QjtRQUN2QyxJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQztRQUN2QixPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ksV0FBVyxDQUFDLFFBQWlDO1FBQ2xELElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO1FBQ3pCLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVEOzs7T0FHRztJQUNJLFVBQVU7UUFDZixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUM7SUFDdEIsQ0FBQztJQUVEOzs7T0FHRztJQUNJLFdBQVc7UUFDaEIsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDO0lBQ3ZCLENBQUM7SUFFTSxPQUFPO1FBQ1osT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDO0lBQ25CLENBQUM7SUFFTSxPQUFPLENBQUMsS0FBMEI7UUFDdkMsSUFBSSxDQUFDLElBQUksR0FB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QUM7UUFDRCxJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQztRQUN2QixJQUFJLENBQUMsVUFBVSxHQUFHLElBQUEsNkJBQXFCLEVBQUMsb0JBQW9CLENBQUMsQ0FBQztRQUM5RCxJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sSUFBSSxFQUFFLENBQUM7UUFDN0IsSUFBSSxDQUFDLFFBQVEsR0FBRztZQUNkLEdBQUcsUUFBUTtZQUNYLFFBQVEsRUFBRSxNQUFNO1NBQ2pCLENBQUM7UUFDRixPQUFPLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUN0QixDQUFDO0NBQ0Y7QUFqS0QsZ0RBaUtDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQnJvYWRjYXN0YWJsZU1lc3NhZ2UsIE1lc3NhZ2VPcHRpb25zLCBNZXNzYWdlUGF5bG9hZCwgTWVzc2FnZVN0YW5kYXJkVHlwZSB9IGZyb20gJy4uLy4uLy4uL2JpdGdvJztcbmltcG9ydCB7IEJhc2VDb2luIGFzIENvaW5Db25maWcgfSBmcm9tICdAYml0Z28vc3RhdGljcyc7XG5pbXBvcnQgeyBJTWVzc2FnZSwgSU1lc3NhZ2VCdWlsZGVyIH0gZnJvbSAnLi9pZmFjZSc7XG5pbXBvcnQgeyBkZXNlcmlhbGl6ZVNpZ25hdHVyZXMsIFNpZ25hdHVyZSB9IGZyb20gJy4uL2lmYWNlJztcblxuLyoqXG4gKiBCYXNlIE1lc3NhZ2UgQnVpbGRlclxuICovXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQmFzZU1lc3NhZ2VCdWlsZGVyIGltcGxlbWVudHMgSU1lc3NhZ2VCdWlsZGVyIHtcbiAgcHJvdGVjdGVkIGNvaW5Db25maWc6IFJlYWRvbmx5PENvaW5Db25maWc+O1xuICBwcm90ZWN0ZWQgcGF5bG9hZDogTWVzc2FnZVBheWxvYWQgPSAnJztcbiAgcHJvdGVjdGVkIHR5cGU6IE1lc3NhZ2VTdGFuZGFyZFR5cGU7XG4gIHByb3RlY3RlZCBzaWduYXR1cmVzOiBTaWduYXR1cmVbXSA9IFtdO1xuICBwcm90ZWN0ZWQgc2lnbmVyczogc3RyaW5nW10gPSBbXTtcbiAgcHJvdGVjdGVkIG1ldGFkYXRhPzogUmVjb3JkPHN0cmluZywgdW5rbm93bj4gPSB7fTtcbiAgcHJvdGVjdGVkIGRpZ2VzdD86IHN0cmluZztcblxuICAvKipcbiAgICogQmFzZSBjb25zdHJ1Y3Rvci5cbiAgICogQHBhcmFtIGNvaW5Db25maWcgQmFzZUNvaW4gZnJvbSBzdGF0aWNzIGxpYnJhcnlcbiAgICogQHBhcmFtIG1lc3NhZ2VUeXBlIFRoZSB0eXBlIG9mIG1lc3NhZ2UgdGhpcyBidWlsZGVyIGNyZWF0ZXMsIGRlZmF1bHRzIHRvIFVOS05PV05cbiAgICovXG4gIHByb3RlY3RlZCBjb25zdHJ1Y3RvcihcbiAgICBjb2luQ29uZmlnOiBSZWFkb25seTxDb2luQ29uZmlnPixcbiAgICBtZXNzYWdlVHlwZTogTWVzc2FnZVN0YW5kYXJkVHlwZSA9IE1lc3NhZ2VTdGFuZGFyZFR5cGUuVU5LTk9XTlxuICApIHtcbiAgICB0aGlzLmNvaW5Db25maWcgPSBjb2luQ29uZmlnO1xuICAgIHRoaXMudHlwZSA9IG1lc3NhZ2VUeXBlO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldHMgdGhlIG1lc3NhZ2UgcGF5bG9hZCB0byBiZSB1c2VkIHdoZW4gYnVpbGRpbmcgdGhlIG1lc3NhZ2VcbiAgICogQHBhcmFtIHBheWxvYWQgVGhlIG1lc3NhZ2UgcGF5bG9hZCAoc3RyaW5nLCBKU09OLCBldGMuKVxuICAgKiBAcmV0dXJucyBUaGUgYnVpbGRlciBpbnN0YW5jZSBmb3IgY2hhaW5pbmdcbiAgICovXG4gIHB1YmxpYyBzZXRQYXlsb2FkKHBheWxvYWQ6IE1lc3NhZ2VQYXlsb2FkKTogSU1lc3NhZ2VCdWlsZGVyIHtcbiAgICB0aGlzLnBheWxvYWQgPSBwYXlsb2FkO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldHMgbWV0YWRhdGEgZm9yIHRoZSBtZXNzYWdlXG4gICAqIEBwYXJhbSBtZXRhZGF0YSBBZGRpdGlvbmFsIG1ldGFkYXRhIGZvciB0aGUgbWVzc2FnZVxuICAgKiBAcmV0dXJucyBUaGUgYnVpbGRlciBpbnN0YW5jZSBmb3IgY2hhaW5pbmdcbiAgICovXG4gIHB1YmxpYyBzZXRNZXRhZGF0YShtZXRhZGF0YTogUmVjb3JkPHN0cmluZywgdW5rbm93bj4pOiBJTWVzc2FnZUJ1aWxkZXIge1xuICAgIHRoaXMubWV0YWRhdGEgPSBtZXRhZGF0YTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIHRoZSBjdXJyZW50IG1lc3NhZ2UgcGF5bG9hZFxuICAgKiBAcmV0dXJucyBUaGUgY3VycmVudCBtZXNzYWdlIHBheWxvYWRcbiAgICovXG4gIHB1YmxpYyBnZXRQYXlsb2FkKCk6IE1lc3NhZ2VQYXlsb2FkIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5wYXlsb2FkO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldHMgdGhlIGN1cnJlbnQgbWV0YWRhdGFcbiAgICogQHJldHVybnMgVGhlIGN1cnJlbnQgbWV0YWRhdGFcbiAgICovXG4gIHB1YmxpYyBnZXRNZXRhZGF0YSgpOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMubWV0YWRhdGE7XG4gIH1cblxuICBwdWJsaWMgZ2V0VHlwZSgpOiBNZXNzYWdlU3RhbmRhcmRUeXBlIHtcbiAgICByZXR1cm4gdGhpcy50eXBlO1xuICB9XG5cbiAgcHVibGljIHNldFR5cGUodmFsdWU6IE1lc3NhZ2VTdGFuZGFyZFR5cGUpOiBJTWVzc2FnZUJ1aWxkZXIge1xuICAgIHRoaXMudHlwZSA9IHZhbHVlO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgcHVibGljIGdldFNpZ25hdHVyZXMoKTogU2lnbmF0dXJlW10ge1xuICAgIHJldHVybiB0aGlzLnNpZ25hdHVyZXM7XG4gIH1cblxuICBwdWJsaWMgc2V0U2lnbmF0dXJlcyhzaWduYXR1cmVzOiBTaWduYXR1cmVbXSk6IElNZXNzYWdlQnVpbGRlciB7XG4gICAgdGhpcy5zaWduYXR1cmVzID0gc2lnbmF0dXJlcztcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIHB1YmxpYyBhZGRTaWduYXR1cmUoc2lnbmF0dXJlOiBTaWduYXR1cmUpOiBJTWVzc2FnZUJ1aWxkZXIge1xuICAgIGlmIChcbiAgICAgICF0aGlzLnNpZ25hdHVyZXMuc29tZShcbiAgICAgICAgKHNpZykgPT4gc2lnLnB1YmxpY0tleS5wdWIgPT09IHNpZ25hdHVyZS5wdWJsaWNLZXkucHViICYmIHNpZy5zaWduYXR1cmUuZXF1YWxzKHNpZ25hdHVyZS5zaWduYXR1cmUpXG4gICAgICApXG4gICAgKSB7XG4gICAgICB0aGlzLnNpZ25hdHVyZXMucHVzaChzaWduYXR1cmUpO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIHB1YmxpYyBnZXRTaWduZXJzKCk6IHN0cmluZ1tdIHtcbiAgICByZXR1cm4gdGhpcy5zaWduZXJzO1xuICB9XG5cbiAgcHVibGljIHNldFNpZ25lcnModmFsdWU6IHN0cmluZ1tdKTogSU1lc3NhZ2VCdWlsZGVyIHtcbiAgICB0aGlzLnNpZ25lcnMgPSB2YWx1ZTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIHB1YmxpYyBhZGRTaWduZXIoc2lnbmVyOiBzdHJpbmcpOiBJTWVzc2FnZUJ1aWxkZXIge1xuICAgIGlmICghdGhpcy5zaWduZXJzLmluY2x1ZGVzKHNpZ25lcikpIHtcbiAgICAgIHRoaXMuc2lnbmVycy5wdXNoKHNpZ25lcik7XG4gICAgfVxuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgcHVibGljIGdldERpZ2VzdCgpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLmRpZ2VzdDtcbiAgfVxuXG4gIHB1YmxpYyBzZXREaWdlc3QodmFsdWU6IHN0cmluZyk6IElNZXNzYWdlQnVpbGRlciB7XG4gICAgdGhpcy5kaWdlc3QgPSB2YWx1ZTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKiBCdWlsZHMgYSBtZXNzYWdlIHVzaW5nIHRoZSBwcmV2aW91c2x5IHNldCBwYXlsb2FkIGFuZCBtZXRhZGF0YVxuICAgKiBAcmV0dXJucyBBIFByb21pc2UgcmVzb2x2aW5nIHRvIHRoZSBidWlsdCBJTWVzc2FnZVxuICAgKi9cbiAgcHVibGljIGFzeW5jIGJ1aWxkKCk6IFByb21pc2U8SU1lc3NhZ2U+IHtcbiAgICB0cnkge1xuICAgICAgaWYgKCF0aGlzLnBheWxvYWQpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdNZXNzYWdlIHBheWxvYWQgbXVzdCBiZSBzZXQgYmVmb3JlIGJ1aWxkaW5nIHRoZSBtZXNzYWdlJyk7XG4gICAgICB9XG4gICAgICByZXR1cm4gdGhpcy5idWlsZE1lc3NhZ2Uoe1xuICAgICAgICBjb2luQ29uZmlnOiB0aGlzLmNvaW5Db25maWcsXG4gICAgICAgIHBheWxvYWQ6IHRoaXMucGF5bG9hZCxcbiAgICAgICAgdHlwZTogdGhpcy50eXBlLFxuICAgICAgICBzaWduYXR1cmVzOiB0aGlzLnNpZ25hdHVyZXMsXG4gICAgICAgIHNpZ25lcnM6IHRoaXMuc2lnbmVycyxcbiAgICAgICAgbWV0YWRhdGE6IHtcbiAgICAgICAgICAuLi50aGlzLm1ldGFkYXRhLFxuICAgICAgICAgIGVuY29kaW5nOiAndXRmOCcsXG4gICAgICAgIH0sXG4gICAgICB9KTtcbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgIGlmIChlcnIgaW5zdGFuY2VvZiBFcnJvcikge1xuICAgICAgICB0aHJvdyBlcnI7XG4gICAgICB9XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYEZhaWxlZCB0byBidWlsZCBtZXNzYWdlIG9mIHR5cGUgJHt0aGlzLnR5cGV9YCk7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIGFic3RyYWN0IGJ1aWxkTWVzc2FnZShvcHRpb25zOiBNZXNzYWdlT3B0aW9ucyk6IFByb21pc2U8SU1lc3NhZ2U+O1xuXG4gIC8qKlxuICAgKiBQYXJzZSBhIGJyb2FkY2FzdGFibGUgbWVzc2FnZSBiYWNrIGludG8gYSBtZXNzYWdlXG4gICAqIEBwYXJhbSBicm9hZGNhc3RNZXNzYWdlIFRoZSBicm9hZGNhc3RhYmxlIG1lc3NhZ2UgdG8gcGFyc2VcbiAgICogQHJldHVybnMgVGhlIHBhcnNlZCBtZXNzYWdlXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgZnJvbUJyb2FkY2FzdEZvcm1hdChicm9hZGNhc3RNZXNzYWdlOiBCcm9hZGNhc3RhYmxlTWVzc2FnZSk6IFByb21pc2U8SU1lc3NhZ2U+IHtcbiAgICBjb25zdCB7IHR5cGUsIHBheWxvYWQsIHNlcmlhbGl6ZWRTaWduYXR1cmVzLCBzaWduZXJzLCBtZXRhZGF0YSB9ID0gYnJvYWRjYXN0TWVzc2FnZTtcbiAgICBpZiAodHlwZSAhPT0gdGhpcy50eXBlKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgbWVzc2FnZSB0eXBlLCBleHBlY3RlZCAke3RoaXMudHlwZX1gKTtcbiAgICB9XG4gICAgdGhpcy5wYXlsb2FkID0gcGF5bG9hZDtcbiAgICB0aGlzLnNpZ25hdHVyZXMgPSBkZXNlcmlhbGl6ZVNpZ25hdHVyZXMoc2VyaWFsaXplZFNpZ25hdHVyZXMpO1xuICAgIHRoaXMuc2lnbmVycyA9IHNpZ25lcnMgfHwgW107XG4gICAgdGhpcy5tZXRhZGF0YSA9IHtcbiAgICAgIC4uLm1ldGFkYXRhLFxuICAgICAgZW5jb2Rpbmc6ICd1dGY4JyxcbiAgICB9O1xuICAgIHJldHVybiB0aGlzLmJ1aWxkKCk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"baseMessageBuilderFactory.d.ts","sourceRoot":"","sources":["../../../../../src/account-lib/baseCoin/messages/baseMessageBuilderFactory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,EAAE,eAAe,EAAE,sBAAsB,EAAE,MAAM,SAAS,CAAC;AAClE,OAAO,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"baseMessageBuilderFactory.d.ts","sourceRoot":"","sources":["../../../../../src/account-lib/baseCoin/messages/baseMessageBuilderFactory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,EAAE,eAAe,EAAE,sBAAsB,EAAE,MAAM,SAAS,CAAC;AAClE,OAAO,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAG3E;;GAEG;AACH,8BAAsB,yBAA0B,YAAW,sBAAsB;IAC/E,SAAS,CAAC,UAAU,EAAE,QAAQ,CAAC,UAAU,CAAC,CAAC;IAE3C;;;OAGG;IACH,SAAS,aAAa,UAAU,EAAE,QAAQ,CAAC,UAAU,CAAC;IAItD;;;;OAIG;aACa,iBAAiB,CAAC,IAAI,EAAE,mBAAmB,GAAG,eAAe;IAE7E;;;;OAIG;IACH,mBAAmB,CAAC,gBAAgB,EAAE,oBAAoB,GAAG,eAAe;IAa5E;;;;OAIG;IACH,mBAAmB,CAAC,eAAe,EAAE,MAAM,GAAG,eAAe;CAI9D"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.BaseMessageBuilderFactory = void 0;
|
|
4
|
+
const iface_1 = require("../iface");
|
|
4
5
|
/**
|
|
5
6
|
* Base Message Builder
|
|
6
7
|
*/
|
|
@@ -18,7 +19,16 @@ class BaseMessageBuilderFactory {
|
|
|
18
19
|
* @returns A message builder instance for the broadcastable message type
|
|
19
20
|
*/
|
|
20
21
|
fromBroadcastFormat(broadcastMessage) {
|
|
21
|
-
|
|
22
|
+
const builder = this.getMessageBuilder(broadcastMessage.type);
|
|
23
|
+
builder.setPayload(broadcastMessage.payload);
|
|
24
|
+
builder.setMetadata(broadcastMessage.metadata || {});
|
|
25
|
+
if (broadcastMessage.signers) {
|
|
26
|
+
builder.setSigners(broadcastMessage.signers);
|
|
27
|
+
}
|
|
28
|
+
if (broadcastMessage.serializedSignatures) {
|
|
29
|
+
builder.setSignatures((0, iface_1.deserializeSignatures)(broadcastMessage.serializedSignatures));
|
|
30
|
+
}
|
|
31
|
+
return builder;
|
|
22
32
|
}
|
|
23
33
|
/**
|
|
24
34
|
* Parses a broadcastable message and gets the message builder based on the message type.
|
|
@@ -31,4 +41,4 @@ class BaseMessageBuilderFactory {
|
|
|
31
41
|
}
|
|
32
42
|
}
|
|
33
43
|
exports.BaseMessageBuilderFactory = BaseMessageBuilderFactory;
|
|
34
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
44
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZU1lc3NhZ2VCdWlsZGVyRmFjdG9yeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9hY2NvdW50LWxpYi9iYXNlQ29pbi9tZXNzYWdlcy9iYXNlTWVzc2FnZUJ1aWxkZXJGYWN0b3J5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUdBLG9DQUFpRDtBQUVqRDs7R0FFRztBQUNILE1BQXNCLHlCQUF5QjtJQUc3Qzs7O09BR0c7SUFDSCxZQUFzQixVQUFnQztRQUNwRCxJQUFJLENBQUMsVUFBVSxHQUFHLFVBQVUsQ0FBQztJQUMvQixDQUFDO0lBU0Q7Ozs7T0FJRztJQUNILG1CQUFtQixDQUFDLGdCQUFzQztRQUN4RCxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDOUQsT0FBTyxDQUFDLFVBQVUsQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUM3QyxPQUFPLENBQUMsV0FBVyxDQUFDLGdCQUFnQixDQUFDLFFBQVEsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUNyRCxJQUFJLGdCQUFnQixDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQzdCLE9BQU8sQ0FBQyxVQUFVLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDL0MsQ0FBQztRQUNELElBQUksZ0JBQWdCLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztZQUMxQyxPQUFPLENBQUMsYUFBYSxDQUFDLElBQUEsNkJBQXFCLEVBQUMsZ0JBQWdCLENBQUMsb0JBQW9CLENBQUMsQ0FBQyxDQUFDO1FBQ3RGLENBQUM7UUFDRCxPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILG1CQUFtQixDQUFDLGVBQXVCO1FBQ3pDLE1BQU0sZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxlQUFlLENBQXlCLENBQUM7UUFDN0UsT0FBTyxJQUFJLENBQUMsbUJBQW1CLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztJQUNwRCxDQUFDO0NBQ0Y7QUE3Q0QsOERBNkNDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQmFzZUNvaW4gYXMgQ29pbkNvbmZpZyB9IGZyb20gJ0BiaXRnby9zdGF0aWNzJztcbmltcG9ydCB7IElNZXNzYWdlQnVpbGRlciwgSU1lc3NhZ2VCdWlsZGVyRmFjdG9yeSB9IGZyb20gJy4vaWZhY2UnO1xuaW1wb3J0IHsgQnJvYWRjYXN0YWJsZU1lc3NhZ2UsIE1lc3NhZ2VTdGFuZGFyZFR5cGUgfSBmcm9tICcuLi8uLi8uLi9iaXRnbyc7XG5pbXBvcnQgeyBkZXNlcmlhbGl6ZVNpZ25hdHVyZXMgfSBmcm9tICcuLi9pZmFjZSc7XG5cbi8qKlxuICogQmFzZSBNZXNzYWdlIEJ1aWxkZXJcbiAqL1xuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEJhc2VNZXNzYWdlQnVpbGRlckZhY3RvcnkgaW1wbGVtZW50cyBJTWVzc2FnZUJ1aWxkZXJGYWN0b3J5IHtcbiAgcHJvdGVjdGVkIGNvaW5Db25maWc6IFJlYWRvbmx5PENvaW5Db25maWc+O1xuXG4gIC8qKlxuICAgKiBCYXNlIGNvbnN0cnVjdG9yLlxuICAgKiBAcGFyYW0gY29pbkNvbmZpZyBCYXNlQ29pbiBmcm9tIHN0YXRpY3MgbGlicmFyeVxuICAgKi9cbiAgcHJvdGVjdGVkIGNvbnN0cnVjdG9yKGNvaW5Db25maWc6IFJlYWRvbmx5PENvaW5Db25maWc+KSB7XG4gICAgdGhpcy5jb2luQ29uZmlnID0gY29pbkNvbmZpZztcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIGEgbWVzc2FnZSBidWlsZGVyIGZvciB0aGUgc3BlY2lmaWVkIG1lc3NhZ2UgdHlwZVxuICAgKiBAcGFyYW0gdHlwZSBUaGUgdHlwZSBvZiBtZXNzYWdlIHRvIGJ1aWxkXG4gICAqIEByZXR1cm5zIEEgbWVzc2FnZSBidWlsZGVyIGluc3RhbmNlIGZvciB0aGUgc3BlY2lmaWVkIHR5cGVcbiAgICovXG4gIHB1YmxpYyBhYnN0cmFjdCBnZXRNZXNzYWdlQnVpbGRlcih0eXBlOiBNZXNzYWdlU3RhbmRhcmRUeXBlKTogSU1lc3NhZ2VCdWlsZGVyO1xuXG4gIC8qKlxuICAgKiBHZXRzIGEgbWVzc2FnZSBidWlsZGVyIGZyb20gYSBicm9hZGNhc3RhYmxlIG1lc3NhZ2VcbiAgICogQHBhcmFtIGJyb2FkY2FzdE1lc3NhZ2UgVGhlIGJyb2FkY2FzdGFibGUgbWVzc2FnZVxuICAgKiBAcmV0dXJucyBBIG1lc3NhZ2UgYnVpbGRlciBpbnN0YW5jZSBmb3IgdGhlIGJyb2FkY2FzdGFibGUgbWVzc2FnZSB0eXBlXG4gICAqL1xuICBmcm9tQnJvYWRjYXN0Rm9ybWF0KGJyb2FkY2FzdE1lc3NhZ2U6IEJyb2FkY2FzdGFibGVNZXNzYWdlKTogSU1lc3NhZ2VCdWlsZGVyIHtcbiAgICBjb25zdCBidWlsZGVyID0gdGhpcy5nZXRNZXNzYWdlQnVpbGRlcihicm9hZGNhc3RNZXNzYWdlLnR5cGUpO1xuICAgIGJ1aWxkZXIuc2V0UGF5bG9hZChicm9hZGNhc3RNZXNzYWdlLnBheWxvYWQpO1xuICAgIGJ1aWxkZXIuc2V0TWV0YWRhdGEoYnJvYWRjYXN0TWVzc2FnZS5tZXRhZGF0YSB8fCB7fSk7XG4gICAgaWYgKGJyb2FkY2FzdE1lc3NhZ2Uuc2lnbmVycykge1xuICAgICAgYnVpbGRlci5zZXRTaWduZXJzKGJyb2FkY2FzdE1lc3NhZ2Uuc2lnbmVycyk7XG4gICAgfVxuICAgIGlmIChicm9hZGNhc3RNZXNzYWdlLnNlcmlhbGl6ZWRTaWduYXR1cmVzKSB7XG4gICAgICBidWlsZGVyLnNldFNpZ25hdHVyZXMoZGVzZXJpYWxpemVTaWduYXR1cmVzKGJyb2FkY2FzdE1lc3NhZ2Uuc2VyaWFsaXplZFNpZ25hdHVyZXMpKTtcbiAgICB9XG4gICAgcmV0dXJuIGJ1aWxkZXI7XG4gIH1cblxuICAvKipcbiAgICogUGFyc2VzIGEgYnJvYWRjYXN0YWJsZSBtZXNzYWdlIGFuZCBnZXRzIHRoZSBtZXNzYWdlIGJ1aWxkZXIgYmFzZWQgb24gdGhlIG1lc3NhZ2UgdHlwZS5cbiAgICogQHBhcmFtIGJyb2FkY2FzdFN0cmluZyBUaGUgYnJvYWRjYXN0YWJsZSBtZXNzYWdlIHRvIHBhcnNlXG4gICAqIEByZXR1cm5zIEEgbWVzc2FnZSBidWlsZGVyIGluc3RhbmNlIGZvciB0aGUgcGFyc2VkIGJyb2FkY2FzdGFibGUgbWVzc2FnZSB0eXBlXG4gICAqL1xuICBmcm9tQnJvYWRjYXN0U3RyaW5nKGJyb2FkY2FzdFN0cmluZzogc3RyaW5nKTogSU1lc3NhZ2VCdWlsZGVyIHtcbiAgICBjb25zdCBicm9hZGNhc3RNZXNzYWdlID0gSlNPTi5wYXJzZShicm9hZGNhc3RTdHJpbmcpIGFzIEJyb2FkY2FzdGFibGVNZXNzYWdlO1xuICAgIHJldHVybiB0aGlzLmZyb21Ccm9hZGNhc3RGb3JtYXQoYnJvYWRjYXN0TWVzc2FnZSk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { BroadcastableMessage, MessageMetadata, MessagePayload, MessageStandardType } from '../../../bitgo';
|
|
2
|
+
import { Signature } from '../iface';
|
|
2
3
|
/**
|
|
3
4
|
* Represents a built message that can be signed
|
|
4
5
|
*/
|
|
@@ -32,17 +33,17 @@ export interface IMessage {
|
|
|
32
33
|
/**
|
|
33
34
|
* Gets all signatures associated with this message
|
|
34
35
|
*/
|
|
35
|
-
getSignatures():
|
|
36
|
+
getSignatures(): Signature[];
|
|
36
37
|
/**
|
|
37
38
|
* Sets signatures for this message
|
|
38
39
|
* @param signatures Array of signatures to set
|
|
39
40
|
*/
|
|
40
|
-
setSignatures(signatures:
|
|
41
|
+
setSignatures(signatures: Signature[]): void;
|
|
41
42
|
/**
|
|
42
43
|
* Adds a signature to this message
|
|
43
44
|
* @param signature The signature to add
|
|
44
45
|
*/
|
|
45
|
-
addSignature(signature:
|
|
46
|
+
addSignature(signature: Signature): void;
|
|
46
47
|
/**
|
|
47
48
|
* Returns the payload that should be signed
|
|
48
49
|
* This might be different from the original payload in some standards
|
|
@@ -61,6 +62,13 @@ export interface IMessage {
|
|
|
61
62
|
* @returns A JSON string representation of the broadcastable message
|
|
62
63
|
*/
|
|
63
64
|
toBroadcastString(): Promise<string>;
|
|
65
|
+
/**
|
|
66
|
+
* Verifies if the provided encoded message matches the expected format
|
|
67
|
+
* @param messageEncodedHex The encoded message in hex format to verify
|
|
68
|
+
* @param metadata Optional metadata to include in the verification
|
|
69
|
+
* @returns A Promise resolving to true if the message is valid, false otherwise
|
|
70
|
+
*/
|
|
71
|
+
verifyEncodedPayload(messageEncodedHex: string, metadata?: Record<string, unknown>): Promise<boolean>;
|
|
64
72
|
}
|
|
65
73
|
/**
|
|
66
74
|
* Core interface for message building strategies
|
|
@@ -83,13 +91,13 @@ export interface IMessageBuilder {
|
|
|
83
91
|
* @param signatures The signatures to add
|
|
84
92
|
* @returns The builder instance for chaining
|
|
85
93
|
*/
|
|
86
|
-
setSignatures(signatures:
|
|
94
|
+
setSignatures(signatures: Signature[]): IMessageBuilder;
|
|
87
95
|
/**
|
|
88
96
|
* Adds a signature to the message
|
|
89
97
|
* @param signature The signature to add
|
|
90
98
|
* @returns The builder instance for chaining
|
|
91
99
|
*/
|
|
92
|
-
addSignature(signature:
|
|
100
|
+
addSignature(signature: Signature): IMessageBuilder;
|
|
93
101
|
/**
|
|
94
102
|
* Sets the signers for the message
|
|
95
103
|
* @param signers Array of addresses or public keys
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"iface.d.ts","sourceRoot":"","sources":["../../../../../src/account-lib/baseCoin/messages/iface.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,eAAe,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"iface.d.ts","sourceRoot":"","sources":["../../../../../src/account-lib/baseCoin/messages/iface.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,eAAe,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAC5G,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAErC;;GAEG;AACH,MAAM,WAAW,QAAQ;IACvB;;OAEG;IACH,OAAO,IAAI,mBAAmB,CAAC;IAE/B;;OAEG;IACH,UAAU,IAAI,cAAc,CAAC;IAE7B;;OAEG;IACH,WAAW,IAAI,eAAe,GAAG,SAAS,CAAC;IAE3C;;OAEG;IACH,UAAU,IAAI,MAAM,EAAE,CAAC;IAEvB;;;OAGG;IACH,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IAEhC;;;OAGG;IACH,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IAEpC;;OAEG;IACH,aAAa,IAAI,SAAS,EAAE,CAAC;IAE7B;;;OAGG;IACH,aAAa,CAAC,UAAU,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC;IAE7C;;;OAGG;IACH,YAAY,CAAC,SAAS,EAAE,SAAS,GAAG,IAAI,CAAC;IAEzC;;;;OAIG;IACH,kBAAkB,IAAI,OAAO,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC;IAE/C;;;;OAIG;IACH,iBAAiB,IAAI,OAAO,CAAC,oBAAoB,CAAC,CAAC;IAEnD;;;;OAIG;IACH,iBAAiB,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;IAErC;;;;;OAKG;IACH,oBAAoB,CAAC,iBAAiB,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CACvG;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B;;;;OAIG;IACH,UAAU,CAAC,OAAO,EAAE,cAAc,GAAG,eAAe,CAAC;IAErD;;;;OAIG;IACH,WAAW,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,eAAe,CAAC;IAEhE;;;;OAIG;IACH,aAAa,CAAC,UAAU,EAAE,SAAS,EAAE,GAAG,eAAe,CAAC;IAExD;;;;OAIG;IACH,YAAY,CAAC,SAAS,EAAE,SAAS,GAAG,eAAe,CAAC;IAEpD;;;;OAIG;IACH,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,eAAe,CAAC;IAE/C;;;;OAIG;IACH,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,eAAe,CAAC;IAE3C;;;OAGG;IACH,UAAU,IAAI,cAAc,GAAG,SAAS,CAAC;IAEzC;;;OAGG;IACH,WAAW,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAAC;IAEnD;;;OAGG;IACH,OAAO,IAAI,mBAAmB,CAAC;IAE/B;;;OAGG;IACH,KAAK,IAAI,OAAO,CAAC,QAAQ,CAAC,CAAC;IAE3B;;;;OAIG;IACH,mBAAmB,CAAC,OAAO,EAAE,oBAAoB,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;CACvE;AAED;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC;;;;OAIG;IACH,iBAAiB,CAAC,IAAI,EAAE,mBAAmB,GAAG,eAAe,CAAC;IAE9D;;;;;OAKG;IACH,mBAAmB,CAAC,gBAAgB,EAAE,oBAAoB,GAAG,eAAe,CAAC;IAE7E;;;;OAIG;IACH,mBAAmB,CAAC,eAAe,EAAE,MAAM,GAAG,eAAe,CAAC;CAC/D"}
|