@docknetwork/wallet-sdk-core 0.4.19
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/LICENSE +39 -0
- package/babel.config.js +16 -0
- package/jest.config.ts +39 -0
- package/lib/account-provider.d.ts +8 -0
- package/lib/account-provider.d.ts.map +1 -0
- package/lib/account-provider.js +15 -0
- package/lib/account-provider.js.map +1 -0
- package/lib/biometric-provider.d.ts +29 -0
- package/lib/biometric-provider.d.ts.map +1 -0
- package/lib/biometric-provider.js +54 -0
- package/lib/biometric-provider.js.map +1 -0
- package/lib/credential-provider.d.ts +58 -0
- package/lib/credential-provider.d.ts.map +1 -0
- package/lib/credential-provider.js +198 -0
- package/lib/credential-provider.js.map +1 -0
- package/lib/did-provider.d.ts +79 -0
- package/lib/did-provider.d.ts.map +1 -0
- package/lib/did-provider.js +215 -0
- package/lib/did-provider.js.map +1 -0
- package/lib/ecosystem-tools.d.ts +11 -0
- package/lib/ecosystem-tools.d.ts.map +1 -0
- package/lib/ecosystem-tools.js +33 -0
- package/lib/ecosystem-tools.js.map +1 -0
- package/lib/helpers.d.ts +8 -0
- package/lib/helpers.d.ts.map +1 -0
- package/lib/helpers.js +63 -0
- package/lib/helpers.js.map +1 -0
- package/lib/message-provider.d.ts +36 -0
- package/lib/message-provider.d.ts.map +1 -0
- package/lib/message-provider.js +172 -0
- package/lib/message-provider.js.map +1 -0
- package/lib/messages/message-helpers.d.ts +110 -0
- package/lib/messages/message-helpers.d.ts.map +1 -0
- package/lib/messages/message-helpers.js +106 -0
- package/lib/messages/message-helpers.js.map +1 -0
- package/lib/network-resolver.d.ts +19 -0
- package/lib/network-resolver.d.ts.map +1 -0
- package/lib/network-resolver.js +80 -0
- package/lib/network-resolver.js.map +1 -0
- package/lib/types.d.ts +63 -0
- package/lib/types.d.ts.map +1 -0
- package/lib/types.js +3 -0
- package/lib/types.js.map +1 -0
- package/lib/v1-helpers.d.ts +20 -0
- package/lib/v1-helpers.d.ts.map +1 -0
- package/lib/v1-helpers.js +147 -0
- package/lib/v1-helpers.js.map +1 -0
- package/lib/verification-controller.d.ts +48 -0
- package/lib/verification-controller.d.ts.map +1 -0
- package/lib/verification-controller.js +219 -0
- package/lib/verification-controller.js.map +1 -0
- package/lib/wallet-to-wallet-verification/walletToWalletVerificationProvider.d.ts +20 -0
- package/lib/wallet-to-wallet-verification/walletToWalletVerificationProvider.d.ts.map +1 -0
- package/lib/wallet-to-wallet-verification/walletToWalletVerificationProvider.js +140 -0
- package/lib/wallet-to-wallet-verification/walletToWalletVerificationProvider.js.map +1 -0
- package/lib/wallet-wasm.d.ts +10 -0
- package/lib/wallet-wasm.d.ts.map +1 -0
- package/lib/wallet-wasm.js +62 -0
- package/lib/wallet-wasm.js.map +1 -0
- package/lib/wallet.d.ts +11 -0
- package/lib/wallet.d.ts.map +1 -0
- package/lib/wallet.js +173 -0
- package/lib/wallet.js.map +1 -0
- package/package.json +34 -0
- package/setup-tests.ts +1 -0
- package/src/account-provider.ts +18 -0
- package/src/biometric-provider.ts +82 -0
- package/src/credential-provider.test.ts +164 -0
- package/src/credential-provider.ts +272 -0
- package/src/did-provider.test.ts +203 -0
- package/src/did-provider.ts +263 -0
- package/src/ecosystem-tools.ts +37 -0
- package/src/fixtures/any-credential-proof-request.json +30 -0
- package/src/fixtures/biometrics-credential-bbs-revocation.json +62 -0
- package/src/fixtures/customer-credential.json +39 -0
- package/src/fixtures/iiw-credential.json +59 -0
- package/src/fixtures/iiw-template.json +33 -0
- package/src/fixtures/university-degree-bbs.json +57 -0
- package/src/fixtures/university-degree-proof-request.json +32 -0
- package/src/helpers.ts +61 -0
- package/src/message-provider.test.ts +115 -0
- package/src/message-provider.ts +221 -0
- package/src/messages/message-helpers.ts +125 -0
- package/src/messages/relay-service-mocks/demo-app-messages.json +450 -0
- package/src/network-resolver.test.ts +142 -0
- package/src/network-resolver.ts +122 -0
- package/src/types.ts +75 -0
- package/src/v1-helpers.ts +160 -0
- package/src/verification-controller.test.ts +149 -0
- package/src/verification-controller.ts +276 -0
- package/src/wallet-to-wallet-verification/walletToWalletVerificationProvider.ts +216 -0
- package/src/wallet-wasm.ts +74 -0
- package/src/wallet.test.ts +72 -0
- package/src/wallet.ts +211 -0
- package/tsconfig.build.json +26 -0
- package/tsconfig.build.tsbuildinfo +1 -0
- package/tsconfig.json +30 -0
package/LICENSE
ADDED
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
The Dock Labs Non-Production License (the “DL-NPL”)
|
|
2
|
+
Copyright (c) 2024 Dock Labs AG.
|
|
3
|
+
|
|
4
|
+
This software and associated documentation files (the "Software") may only be
|
|
5
|
+
used in production, if you (and any entity that you represent) have agreed to,
|
|
6
|
+
and are in compliance with, the Dock Labs Subscription Master Services Agreement
|
|
7
|
+
(MSA), available at https://www.dock.io/master-services-agreement (the “Dock
|
|
8
|
+
Terms”), or other agreement governing the use of the Software, as agreed by you
|
|
9
|
+
and Dock Labs, and otherwise have a valid Dock Labs subscription that is being
|
|
10
|
+
utilized as intended and for its designated purposes.
|
|
11
|
+
|
|
12
|
+
Subject to the foregoing sentence, you are free to modify this Software and
|
|
13
|
+
publish patches to the Software. You agree that Dock Labs and/or its licensors
|
|
14
|
+
(as applicable) retain all right, title and interest in and to all such
|
|
15
|
+
modifications and/or patches, and all such modifications and/or patches may only
|
|
16
|
+
be used, copied, modified, displayed, distributed, or otherwise exploited with a
|
|
17
|
+
valid Dock Labs subscription that is being utilized as intended and for its
|
|
18
|
+
designated purposes. Notwithstanding the foregoing, you may copy and modify the
|
|
19
|
+
Software without obtaining a subscription only for non-production development
|
|
20
|
+
and testing purposes. For the avoidance of doubt, non-production use solely
|
|
21
|
+
consists of internal use of this software within a non-production development or
|
|
22
|
+
test environment which uses fictitious data in non-durable identity credentials.
|
|
23
|
+
You are not granted any other rights beyond what is expressly stated herein.
|
|
24
|
+
Subject to the foregoing, it is forbidden to copy, merge, publish, distribute,
|
|
25
|
+
sublicense, and/or sell the Software.
|
|
26
|
+
|
|
27
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
28
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
|
|
29
|
+
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
|
|
30
|
+
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
|
|
31
|
+
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
|
|
32
|
+
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
33
|
+
|
|
34
|
+
For all third party components incorporated into the Dock Labs Software, those
|
|
35
|
+
components are licensed under the original license provided by the owner of the
|
|
36
|
+
applicable component.
|
|
37
|
+
|
|
38
|
+
If you have any questions or need further assistance, please contact
|
|
39
|
+
support@dock.io.
|
package/babel.config.js
ADDED
package/jest.config.ts
ADDED
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
module.exports = {
|
|
2
|
+
testEnvironment: 'node',
|
|
3
|
+
testTimeout: 30000,
|
|
4
|
+
testMatch: ['<rootDir>/src/**/!(*.e2e).test.ts'],
|
|
5
|
+
coverageThreshold: {
|
|
6
|
+
global: {
|
|
7
|
+
branches: 10,
|
|
8
|
+
functions: 10,
|
|
9
|
+
lines: 10,
|
|
10
|
+
statements: 10,
|
|
11
|
+
},
|
|
12
|
+
},
|
|
13
|
+
transform: {
|
|
14
|
+
'^.+\\.ts$': 'ts-jest',
|
|
15
|
+
'^.+\\.(ts|js)$': 'babel-jest',
|
|
16
|
+
},
|
|
17
|
+
resetMocks: false,
|
|
18
|
+
setupFilesAfterEnv: ['<rootDir>/setup-tests.ts'],
|
|
19
|
+
setupFiles: ['jest-localstorage-mock'],
|
|
20
|
+
moduleNameMapper: {
|
|
21
|
+
'@digitalbazaar/x25519-key-agreement-key-2020':
|
|
22
|
+
'@digitalbazaar/x25519-key-agreement-key-2020/lib/X25519KeyAgreementKey2020',
|
|
23
|
+
'@digitalbazaar/ed25519-verification-key-2020':
|
|
24
|
+
'@digitalbazaar/ed25519-verification-key-2020/lib/Ed25519VerificationKey2020',
|
|
25
|
+
'@digitalbazaar/ed25519-verification-key-2018':
|
|
26
|
+
'@digitalbazaar/ed25519-verification-key-2018/src/Ed25519VerificationKey2018',
|
|
27
|
+
'@digitalbazaar/minimal-cipher': '@digitalbazaar/minimal-cipher/Cipher',
|
|
28
|
+
'@digitalbazaar/did-method-key': '@digitalbazaar/did-method-key/lib/main',
|
|
29
|
+
'@docknetwork/wallet-sdk-wasm/lib/(.*)':
|
|
30
|
+
'@docknetwork/wallet-sdk-wasm/src/$1',
|
|
31
|
+
'@docknetwork/wallet-sdk-data-store/lib/(.*)':
|
|
32
|
+
'@docknetwork/wallet-sdk-data-store/src/$1',
|
|
33
|
+
'@docknetwork/wallet-sdk-data-store/lib':
|
|
34
|
+
'@docknetwork/wallet-sdk-data-store/src',
|
|
35
|
+
},
|
|
36
|
+
transformIgnorePatterns: [
|
|
37
|
+
'/node_modules/(?!@polkadot|@babel|@docknetwork|@digitalbazaar)',
|
|
38
|
+
],
|
|
39
|
+
};
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { IWallet } from './types';
|
|
2
|
+
import { Accounts } from '@docknetwork/wallet-sdk-wasm/src/modules/accounts';
|
|
3
|
+
interface ICreateAccountsProvider {
|
|
4
|
+
wallet: IWallet;
|
|
5
|
+
}
|
|
6
|
+
export declare function createAccountProvider({ wallet }: ICreateAccountsProvider): Accounts;
|
|
7
|
+
export {};
|
|
8
|
+
//# sourceMappingURL=account-provider.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"account-provider.d.ts","sourceRoot":"","sources":["../src/account-provider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,OAAO,EAAC,MAAM,SAAS,CAAC;AAChC,OAAO,EAAC,QAAQ,EAAC,MAAM,mDAAmD,CAAC;AAG3E,UAAU,uBAAuB;IAC/B,MAAM,EAAE,OAAO,CAAC;CACjB;AAED,wBAAgB,qBAAqB,CAAC,EAAC,MAAM,EAAC,EAAE,uBAAuB,YAStE"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.createAccountProvider = void 0;
|
|
4
|
+
const accounts_1 = require("@docknetwork/wallet-sdk-wasm/src/modules/accounts");
|
|
5
|
+
const v1_helpers_1 = require("./v1-helpers");
|
|
6
|
+
function createAccountProvider({ wallet }) {
|
|
7
|
+
const accountsModule = new accounts_1.Accounts({
|
|
8
|
+
wallet: wallet,
|
|
9
|
+
walletService: (0, v1_helpers_1.toV1WalletService)(wallet),
|
|
10
|
+
});
|
|
11
|
+
accounts_1.Accounts.instance = accountsModule;
|
|
12
|
+
return accountsModule;
|
|
13
|
+
}
|
|
14
|
+
exports.createAccountProvider = createAccountProvider;
|
|
15
|
+
//# sourceMappingURL=account-provider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"account-provider.js","sourceRoot":"","sources":["../src/account-provider.ts"],"names":[],"mappings":";;;AACA,gFAA2E;AAC3E,6CAA+C;AAM/C,SAAgB,qBAAqB,CAAC,EAAC,MAAM,EAA0B;IACrE,MAAM,cAAc,GAAG,IAAI,mBAAQ,CAAC;QAClC,MAAM,EAAE,MAAM;QACd,aAAa,EAAE,IAAA,8BAAiB,EAAC,MAAM,CAAC;KACzC,CAAC,CAAC;IAEF,mBAAgB,CAAC,QAAQ,GAAG,cAAc,CAAC;IAE5C,OAAO,cAAc,CAAC;AACxB,CAAC;AATD,sDASC"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { WalletDocument } from '@docknetwork/wallet-sdk-wasm/src/types';
|
|
2
|
+
import { IWallet } from './types';
|
|
3
|
+
export type BiometricsPluginIssuerConfig = {
|
|
4
|
+
networkId: string;
|
|
5
|
+
did: string;
|
|
6
|
+
apiKey: string;
|
|
7
|
+
apiUrl: string;
|
|
8
|
+
};
|
|
9
|
+
export type BiometricsPluginConfigs = {
|
|
10
|
+
enrollmentCredentialType: string;
|
|
11
|
+
biometricMatchCredentialType: string;
|
|
12
|
+
biometricMatchExpirationMinutes: number;
|
|
13
|
+
issuerConfigs: BiometricsPluginIssuerConfig[];
|
|
14
|
+
};
|
|
15
|
+
export declare function setBiometricConfigs(_configs: BiometricsPluginConfigs): void;
|
|
16
|
+
export declare function assertConfigs(): void;
|
|
17
|
+
export declare function getBiometricConfigs(): BiometricsPluginConfigs;
|
|
18
|
+
export declare function getIssuerConfigsForNetwork(networkId: any): BiometricsPluginIssuerConfig;
|
|
19
|
+
export declare function createBiometricBindingProvider({ wallet, onEnroll, onMatch, onCheckBiometryRequired, }: {
|
|
20
|
+
wallet: IWallet;
|
|
21
|
+
onEnroll: () => Promise<WalletDocument>;
|
|
22
|
+
onMatch: (biometricTemplate: WalletDocument) => Promise<WalletDocument>;
|
|
23
|
+
onCheckBiometryRequired: (request: any) => boolean;
|
|
24
|
+
}): {
|
|
25
|
+
enrollBiometry: () => Promise<any>;
|
|
26
|
+
matchBiometry: () => Promise<WalletDocument>;
|
|
27
|
+
checkIsBiometryRequired: (request: any) => boolean;
|
|
28
|
+
};
|
|
29
|
+
//# sourceMappingURL=biometric-provider.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"biometric-provider.d.ts","sourceRoot":"","sources":["../src/biometric-provider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,cAAc,EAAC,MAAM,wCAAwC,CAAC;AACtE,OAAO,EAAC,OAAO,EAAC,MAAM,SAAS,CAAC;AAIhC,MAAM,MAAM,4BAA4B,GAAG;IACzC,SAAS,EAAE,MAAM,CAAC;IAClB,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;CAChB,CAAA;AAED,MAAM,MAAM,uBAAuB,GAAG;IACpC,wBAAwB,EAAE,MAAM,CAAC;IACjC,4BAA4B,EAAE,MAAM,CAAC;IACrC,+BAA+B,EAAE,MAAM,CAAC;IACxC,aAAa,EAAC,4BAA4B,EAAE,CAAC;CAC9C,CAAA;AAID,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,uBAAuB,QAEpE;AAED,wBAAgB,aAAa,SAE5B;AAED,wBAAgB,mBAAmB,4BAElC;AAED,wBAAgB,0BAA0B,CAAC,SAAS,KAAA,GAAG,4BAA4B,CAElF;AAED,wBAAgB,8BAA8B,CAAC,EAC7C,MAAM,EACN,QAAQ,EACR,OAAO,EACP,uBAAuB,GACxB,EAAE;IACD,MAAM,EAAE,OAAO,CAAC;IAChB,QAAQ,EAAE,MAAM,OAAO,CAAC,cAAc,CAAC,CAAC;IACxC,OAAO,EAAE,CAAC,iBAAiB,EAAE,cAAc,KAAK,OAAO,CAAC,cAAc,CAAC,CAAC;IACxE,uBAAuB,EAAE,CAAC,OAAO,KAAA,KAAK,OAAO,CAAC;CAC/C;;;+CADuC,OAAO;EAmC9C"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.createBiometricBindingProvider = exports.getIssuerConfigsForNetwork = exports.getBiometricConfigs = exports.assertConfigs = exports.setBiometricConfigs = void 0;
|
|
7
|
+
const credential_provider_1 = require("./credential-provider");
|
|
8
|
+
const assert_1 = __importDefault(require("assert"));
|
|
9
|
+
let configs = null;
|
|
10
|
+
function setBiometricConfigs(_configs) {
|
|
11
|
+
configs = _configs;
|
|
12
|
+
}
|
|
13
|
+
exports.setBiometricConfigs = setBiometricConfigs;
|
|
14
|
+
;
|
|
15
|
+
function assertConfigs() {
|
|
16
|
+
(0, assert_1.default)(!!configs, 'Biometrics plugin not configured');
|
|
17
|
+
}
|
|
18
|
+
exports.assertConfigs = assertConfigs;
|
|
19
|
+
function getBiometricConfigs() {
|
|
20
|
+
return configs;
|
|
21
|
+
}
|
|
22
|
+
exports.getBiometricConfigs = getBiometricConfigs;
|
|
23
|
+
function getIssuerConfigsForNetwork(networkId) {
|
|
24
|
+
return getBiometricConfigs()?.issuerConfigs.find(config => config.networkId === networkId);
|
|
25
|
+
}
|
|
26
|
+
exports.getIssuerConfigsForNetwork = getIssuerConfigsForNetwork;
|
|
27
|
+
function createBiometricBindingProvider({ wallet, onEnroll, onMatch, onCheckBiometryRequired, }) {
|
|
28
|
+
const credentialProvider = (0, credential_provider_1.createCredentialProvider)({ wallet });
|
|
29
|
+
return {
|
|
30
|
+
enrollBiometry: async () => {
|
|
31
|
+
const enrollmentCredential = await onEnroll();
|
|
32
|
+
return await credentialProvider.addCredential(enrollmentCredential);
|
|
33
|
+
},
|
|
34
|
+
matchBiometry: async () => {
|
|
35
|
+
const CREDENTIAL_TYPE = configs.enrollmentCredentialType;
|
|
36
|
+
const enrollmentCredentials = await wallet.getDocumentsByType(CREDENTIAL_TYPE);
|
|
37
|
+
if (!enrollmentCredentials.length) {
|
|
38
|
+
throw new Error('Enrollment credential not found');
|
|
39
|
+
}
|
|
40
|
+
const matchConfirmationCredential = await onMatch(enrollmentCredentials[0]);
|
|
41
|
+
if (matchConfirmationCredential) {
|
|
42
|
+
const biometricMatchCredentials = await wallet.getDocumentsByType(configs.biometricMatchCredentialType);
|
|
43
|
+
for (let i = 0; i < biometricMatchCredentials.length; i++) {
|
|
44
|
+
await wallet.removeDocument(biometricMatchCredentials[0].id);
|
|
45
|
+
}
|
|
46
|
+
await wallet.addDocument(matchConfirmationCredential);
|
|
47
|
+
}
|
|
48
|
+
return matchConfirmationCredential;
|
|
49
|
+
},
|
|
50
|
+
checkIsBiometryRequired: onCheckBiometryRequired,
|
|
51
|
+
};
|
|
52
|
+
}
|
|
53
|
+
exports.createBiometricBindingProvider = createBiometricBindingProvider;
|
|
54
|
+
//# sourceMappingURL=biometric-provider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"biometric-provider.js","sourceRoot":"","sources":["../src/biometric-provider.ts"],"names":[],"mappings":";;;;;;AAEA,+DAA+D;AAC/D,oDAA4B;AAgB5B,IAAI,OAAO,GAA4B,IAAI,CAAC;AAE5C,SAAgB,mBAAmB,CAAC,QAAiC;IACnE,OAAO,GAAG,QAAQ,CAAC;AACrB,CAAC;AAFD,kDAEC;AAAA,CAAC;AAEF,SAAgB,aAAa;IAC3B,IAAA,gBAAM,EAAC,CAAC,CAAC,OAAO,EAAE,kCAAkC,CAAC,CAAC;AACxD,CAAC;AAFD,sCAEC;AAED,SAAgB,mBAAmB;IACjC,OAAO,OAAO,CAAC;AACjB,CAAC;AAFD,kDAEC;AAED,SAAgB,0BAA0B,CAAC,SAAS;IAClD,OAAO,mBAAmB,EAAE,EAAE,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC;AAC7F,CAAC;AAFD,gEAEC;AAED,SAAgB,8BAA8B,CAAC,EAC7C,MAAM,EACN,QAAQ,EACR,OAAO,EACP,uBAAuB,GAMxB;IACC,MAAM,kBAAkB,GAAG,IAAA,8CAAwB,EAAC,EAAC,MAAM,EAAC,CAAC,CAAC;IAC9D,OAAO;QACL,cAAc,EAAE,KAAK,IAAI,EAAE;YACzB,MAAM,oBAAoB,GAAG,MAAM,QAAQ,EAAE,CAAC;YAC9C,OAAO,MAAM,kBAAkB,CAAC,aAAa,CAAC,oBAAoB,CAAC,CAAC;QACtE,CAAC;QACD,aAAa,EAAE,KAAK,IAAI,EAAE;YACxB,MAAM,eAAe,GAAG,OAAO,CAAC,wBAAwB,CAAC;YACzD,MAAM,qBAAqB,GAAG,MAAM,MAAM,CAAC,kBAAkB,CAC3D,eAAe,CAChB,CAAC;YAEF,IAAI,CAAC,qBAAqB,CAAC,MAAM,EAAE;gBACjC,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;aACpD;YAED,MAAM,2BAA2B,GAAG,MAAM,OAAO,CAC/C,qBAAqB,CAAC,CAAC,CAAC,CACzB,CAAC;YAEF,IAAI,2BAA2B,EAAE;gBAC/B,MAAM,yBAAyB,GAAG,MAAM,MAAM,CAAC,kBAAkB,CAAC,OAAO,CAAC,4BAA4B,CAAC,CAAC;gBACxG,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,yBAAyB,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;oBACzD,MAAM,MAAM,CAAC,cAAc,CAAC,yBAAyB,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;iBAC9D;gBAED,MAAM,MAAM,CAAC,WAAW,CAAC,2BAA2B,CAAC,CAAC;aACvD;YAED,OAAO,2BAA2B,CAAC;QACrC,CAAC;QACD,uBAAuB,EAAE,uBAAuB;KACjD,CAAC;AACJ,CAAC;AA5CD,wEA4CC"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import { IWallet } from './types';
|
|
2
|
+
export type Credential = any;
|
|
3
|
+
export interface ICredentialProvider {
|
|
4
|
+
getCredentials(type?: string): Credential[];
|
|
5
|
+
getById(id: string): Credential;
|
|
6
|
+
getMembershipWitness(credential: any): Promise<any>;
|
|
7
|
+
isBBSPlusCredential(credential: any): boolean;
|
|
8
|
+
isValid(credential: any, forceFetch?: boolean): Promise<boolean>;
|
|
9
|
+
addCredential(credential: any): Promise<Credential>;
|
|
10
|
+
syncCredentialStatus(params: SyncCredentialStatusParams): Promise<CredentialStatusDocument[]>;
|
|
11
|
+
getCredentialStatus(credential: Credential): Promise<{
|
|
12
|
+
status: string;
|
|
13
|
+
error?: string;
|
|
14
|
+
}>;
|
|
15
|
+
}
|
|
16
|
+
export declare function isBBSPlusCredential(credential: any): any;
|
|
17
|
+
export declare function isCredentialExpired(credential: any): boolean;
|
|
18
|
+
/**
|
|
19
|
+
* Uses Dock SDK to verify a credential
|
|
20
|
+
* @param credential
|
|
21
|
+
* @returns
|
|
22
|
+
*/
|
|
23
|
+
export declare function isValid({ credential, wallet, }: {
|
|
24
|
+
credential: Credential;
|
|
25
|
+
wallet: IWallet;
|
|
26
|
+
}): Promise<{
|
|
27
|
+
status: string;
|
|
28
|
+
error?: undefined;
|
|
29
|
+
} | {
|
|
30
|
+
status: string;
|
|
31
|
+
error: any;
|
|
32
|
+
}>;
|
|
33
|
+
export declare const ACUMM_WITNESS_PROP_KEY = "$$accum__witness$$";
|
|
34
|
+
export declare function addCredential({ wallet, credential }: {
|
|
35
|
+
wallet: any;
|
|
36
|
+
credential: any;
|
|
37
|
+
}): Promise<any>;
|
|
38
|
+
export declare const CredentialStatus: {
|
|
39
|
+
Invalid: string;
|
|
40
|
+
Expired: string;
|
|
41
|
+
Verified: string;
|
|
42
|
+
Revoked: string;
|
|
43
|
+
Pending: string;
|
|
44
|
+
};
|
|
45
|
+
type SyncCredentialStatusParams = {
|
|
46
|
+
credentialIds?: string[];
|
|
47
|
+
forceFetch?: boolean;
|
|
48
|
+
};
|
|
49
|
+
type CredentialStatusDocument = {
|
|
50
|
+
id: string;
|
|
51
|
+
status: string;
|
|
52
|
+
error: string;
|
|
53
|
+
};
|
|
54
|
+
export declare function createCredentialProvider({ wallet, }: {
|
|
55
|
+
wallet: IWallet;
|
|
56
|
+
}): ICredentialProvider;
|
|
57
|
+
export {};
|
|
58
|
+
//# sourceMappingURL=credential-provider.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"credential-provider.d.ts","sourceRoot":"","sources":["../src/credential-provider.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,OAAO,EAAC,MAAM,SAAS,CAAC;AAIhC,MAAM,MAAM,UAAU,GAAG,GAAG,CAAC;AAE7B,MAAM,WAAW,mBAAmB;IAClC,cAAc,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,UAAU,EAAE,CAAC;IAC5C,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,UAAU,CAAC;IAChC,oBAAoB,CAAC,UAAU,EAAE,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IACpD,mBAAmB,CAAC,UAAU,EAAE,GAAG,GAAG,OAAO,CAAC;IAC9C,OAAO,CAAC,UAAU,EAAE,GAAG,EAAE,UAAU,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IACjE,aAAa,CAAC,UAAU,EAAE,GAAG,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;IACpD,oBAAoB,CAAC,MAAM,EAAE,0BAA0B,GAAG,OAAO,CAAC,wBAAwB,EAAE,CAAC,CAAC;IAC9F,mBAAmB,CAAC,UAAU,EAAE,UAAU,GAAG,OAAO,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAC,CAAC,CAAC;CACxF;AAED,wBAAgB,mBAAmB,CAAC,UAAU,KAAA,OAS7C;AAED,wBAAgB,mBAAmB,CAAC,UAAU,KAAA,WAE7C;AAED;;;;GAIG;AACH,wBAAsB,OAAO,CAAC,EAC5B,UAAU,EACV,MAAM,GACP,EAAE;IACD,UAAU,EAAE,UAAU,CAAC;IACvB,MAAM,EAAE,OAAO,CAAC;CACjB;;;;;;GAiDA;AAED,eAAO,MAAM,sBAAsB,uBAAuB,CAAC;AAE3D,wBAAsB,aAAa,CAAC,EAAC,MAAM,EAAE,UAAU,EAAC;;;CAAA,gBAqBvD;AAQD,eAAO,MAAM,gBAAgB;;;;;;CAM5B,CAAC;AAEF,KAAK,0BAA0B,GAAG;IAEhC,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IAEzB,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB,CAAC;AAEF,KAAK,wBAAwB,GAAG;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;CACf,CAAA;AAoFD,wBAAgB,wBAAwB,CAAC,EACvC,MAAM,GACP,EAAE;IACD,MAAM,EAAE,OAAO,CAAC;CACjB,GAAG,mBAAmB,CAsCtB"}
|
|
@@ -0,0 +1,198 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.createCredentialProvider = exports.CredentialStatus = exports.addCredential = exports.ACUMM_WITNESS_PROP_KEY = exports.isValid = exports.isCredentialExpired = exports.isBBSPlusCredential = void 0;
|
|
7
|
+
const credential_1 = require("@docknetwork/wallet-sdk-wasm/src/services/credential");
|
|
8
|
+
const assert_1 = __importDefault(require("assert"));
|
|
9
|
+
const dock_1 = require("@docknetwork/wallet-sdk-wasm/src/services/dock");
|
|
10
|
+
function isBBSPlusCredential(credential) {
|
|
11
|
+
return ((typeof credential?.proof?.type === 'string' &&
|
|
12
|
+
credential.proof.type.includes('BBS+SignatureDock')) ||
|
|
13
|
+
(Array.isArray(credential['@context']) &&
|
|
14
|
+
credential['@context'].find(context => context.bs && context.bs.indexOf('bbs') > -1)));
|
|
15
|
+
}
|
|
16
|
+
exports.isBBSPlusCredential = isBBSPlusCredential;
|
|
17
|
+
function isCredentialExpired(credential) {
|
|
18
|
+
return !!credential.expirationDate && new Date(credential.expirationDate) < new Date();
|
|
19
|
+
}
|
|
20
|
+
exports.isCredentialExpired = isCredentialExpired;
|
|
21
|
+
/**
|
|
22
|
+
* Uses Dock SDK to verify a credential
|
|
23
|
+
* @param credential
|
|
24
|
+
* @returns
|
|
25
|
+
*/
|
|
26
|
+
async function isValid({ credential, wallet, }) {
|
|
27
|
+
(0, assert_1.default)(!!credential, 'credential is required');
|
|
28
|
+
try {
|
|
29
|
+
if (isCredentialExpired(credential)) {
|
|
30
|
+
return {
|
|
31
|
+
status: exports.CredentialStatus.Expired,
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
const membershipWitness = credential[exports.ACUMM_WITNESS_PROP_KEY] || await getMembershipWitness({
|
|
35
|
+
credentialId: credential.id,
|
|
36
|
+
wallet,
|
|
37
|
+
});
|
|
38
|
+
delete credential[exports.ACUMM_WITNESS_PROP_KEY];
|
|
39
|
+
const verificationResult = await credential_1.credentialServiceRPC.verifyCredential({
|
|
40
|
+
credential,
|
|
41
|
+
membershipWitness,
|
|
42
|
+
});
|
|
43
|
+
const { verified, error } = verificationResult;
|
|
44
|
+
if (!verified) {
|
|
45
|
+
if (typeof error === 'string' && error.toLowerCase().includes('revocation')) {
|
|
46
|
+
return {
|
|
47
|
+
status: exports.CredentialStatus.Revoked,
|
|
48
|
+
error,
|
|
49
|
+
};
|
|
50
|
+
}
|
|
51
|
+
return {
|
|
52
|
+
status: exports.CredentialStatus.Invalid,
|
|
53
|
+
error: error,
|
|
54
|
+
};
|
|
55
|
+
}
|
|
56
|
+
return {
|
|
57
|
+
status: exports.CredentialStatus.Verified,
|
|
58
|
+
};
|
|
59
|
+
}
|
|
60
|
+
catch (err) {
|
|
61
|
+
console.error(err);
|
|
62
|
+
return {
|
|
63
|
+
status: exports.CredentialStatus.Invalid,
|
|
64
|
+
error: err.toString(),
|
|
65
|
+
};
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
exports.isValid = isValid;
|
|
69
|
+
exports.ACUMM_WITNESS_PROP_KEY = '$$accum__witness$$';
|
|
70
|
+
async function addCredential({ wallet, credential }) {
|
|
71
|
+
const acummWitness = credential[exports.ACUMM_WITNESS_PROP_KEY];
|
|
72
|
+
if (acummWitness) {
|
|
73
|
+
delete credential[exports.ACUMM_WITNESS_PROP_KEY];
|
|
74
|
+
}
|
|
75
|
+
const response = await wallet.addDocument(credential);
|
|
76
|
+
if (acummWitness) {
|
|
77
|
+
await wallet.addDocument({
|
|
78
|
+
type: 'AccumulatorWitness',
|
|
79
|
+
id: `${credential.id}#witness`,
|
|
80
|
+
value: acummWitness,
|
|
81
|
+
initialWitness: acummWitness,
|
|
82
|
+
});
|
|
83
|
+
}
|
|
84
|
+
syncCredentialStatus({ wallet, credentialIds: [credential.id] });
|
|
85
|
+
return response;
|
|
86
|
+
}
|
|
87
|
+
exports.addCredential = addCredential;
|
|
88
|
+
async function getMembershipWitness({ credentialId, wallet }) {
|
|
89
|
+
const document = await wallet.getDocumentById(`${credentialId}#witness`);
|
|
90
|
+
return document?.value;
|
|
91
|
+
}
|
|
92
|
+
exports.CredentialStatus = {
|
|
93
|
+
Invalid: 'invalid',
|
|
94
|
+
Expired: 'expired',
|
|
95
|
+
Verified: 'verified',
|
|
96
|
+
Revoked: 'revoked',
|
|
97
|
+
Pending: 'pending',
|
|
98
|
+
};
|
|
99
|
+
/**
|
|
100
|
+
* Fetch credential status from the chain and update the wallet
|
|
101
|
+
* Store a new document <credentialId>#status in the wallet
|
|
102
|
+
* Returns a list of CredentialStatusDocument
|
|
103
|
+
*
|
|
104
|
+
* @param param0
|
|
105
|
+
* @returns CredentialStatusDocument[]
|
|
106
|
+
*/
|
|
107
|
+
async function syncCredentialStatus({ wallet, credentialIds, forceFetch }) {
|
|
108
|
+
let credentials;
|
|
109
|
+
if (credentialIds && credentialIds.length) {
|
|
110
|
+
credentials = await wallet.getDocumentsById(credentialIds);
|
|
111
|
+
}
|
|
112
|
+
else {
|
|
113
|
+
credentials = await wallet.getDocumentsByType('VerifiableCredential');
|
|
114
|
+
}
|
|
115
|
+
let statusDocs = [];
|
|
116
|
+
let isApiConnected;
|
|
117
|
+
for (const credential of credentials) {
|
|
118
|
+
let shouldFetch = !!forceFetch;
|
|
119
|
+
let statusDoc = await wallet.getDocumentById(`${credential.id}#status`);
|
|
120
|
+
if (!statusDoc) {
|
|
121
|
+
shouldFetch = true;
|
|
122
|
+
statusDoc = {
|
|
123
|
+
type: 'CredentialStatus',
|
|
124
|
+
id: `${credential.id}#status`,
|
|
125
|
+
createdAt: new Date().toISOString(),
|
|
126
|
+
updatedAt: new Date().toISOString(),
|
|
127
|
+
status: null,
|
|
128
|
+
};
|
|
129
|
+
await wallet.addDocument(statusDoc);
|
|
130
|
+
}
|
|
131
|
+
statusDocs.push(statusDoc);
|
|
132
|
+
if (!statusDoc.status || statusDoc.status === exports.CredentialStatus.Pending) {
|
|
133
|
+
shouldFetch = true;
|
|
134
|
+
}
|
|
135
|
+
if (!shouldFetch) {
|
|
136
|
+
// check if latest fetch was more than 24 hours ago
|
|
137
|
+
const updatedAt = new Date(statusDoc.updatedAt);
|
|
138
|
+
const diff = new Date().getTime() - updatedAt.getTime();
|
|
139
|
+
const hours = Math.floor(diff / 1000 / 60 / 60);
|
|
140
|
+
if (hours > 24) {
|
|
141
|
+
shouldFetch = true;
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
if (!shouldFetch) {
|
|
145
|
+
continue;
|
|
146
|
+
}
|
|
147
|
+
if (!statusDoc.status) {
|
|
148
|
+
statusDoc.status = exports.CredentialStatus.Pending;
|
|
149
|
+
statusDoc.updatedAt = new Date().toISOString();
|
|
150
|
+
await wallet.updateDocument(statusDoc);
|
|
151
|
+
}
|
|
152
|
+
if (!isApiConnected) {
|
|
153
|
+
await dock_1.dockService.ensureDockReady();
|
|
154
|
+
isApiConnected = true;
|
|
155
|
+
}
|
|
156
|
+
const result = await isValid({ credential, wallet });
|
|
157
|
+
statusDoc.status = result?.status;
|
|
158
|
+
statusDoc.error = result?.error;
|
|
159
|
+
statusDoc.updatedAt = new Date().toISOString();
|
|
160
|
+
await wallet.updateDocument(statusDoc);
|
|
161
|
+
}
|
|
162
|
+
return statusDocs;
|
|
163
|
+
}
|
|
164
|
+
function createCredentialProvider({ wallet, }) {
|
|
165
|
+
function getCredentials(type = 'VerifiableCredential') {
|
|
166
|
+
return wallet.getDocumentsByType(type);
|
|
167
|
+
}
|
|
168
|
+
return {
|
|
169
|
+
getCredentials,
|
|
170
|
+
getMembershipWitness: async (credentialId) => getMembershipWitness({ credentialId, wallet }),
|
|
171
|
+
getById: (id) => wallet.getDocumentById(id),
|
|
172
|
+
isBBSPlusCredential,
|
|
173
|
+
isValid: async (credential) => isValid({
|
|
174
|
+
credential,
|
|
175
|
+
wallet,
|
|
176
|
+
}),
|
|
177
|
+
getCredentialStatus: async (credential) => {
|
|
178
|
+
(0, assert_1.default)(!!credential, 'credential is required');
|
|
179
|
+
if (isCredentialExpired(credential)) {
|
|
180
|
+
return {
|
|
181
|
+
status: exports.CredentialStatus.Expired,
|
|
182
|
+
};
|
|
183
|
+
}
|
|
184
|
+
const statusDoc = await wallet.getDocumentById(`${credential.id}#status`);
|
|
185
|
+
return {
|
|
186
|
+
status: statusDoc?.status || exports.CredentialStatus.Pending,
|
|
187
|
+
error: statusDoc?.error,
|
|
188
|
+
};
|
|
189
|
+
},
|
|
190
|
+
syncCredentialStatus: async (props) => {
|
|
191
|
+
return syncCredentialStatus({ wallet, ...props });
|
|
192
|
+
},
|
|
193
|
+
addCredential: credential => addCredential({ wallet, credential }),
|
|
194
|
+
// TODO: move import credential from json or URL to this provider
|
|
195
|
+
};
|
|
196
|
+
}
|
|
197
|
+
exports.createCredentialProvider = createCredentialProvider;
|
|
198
|
+
//# sourceMappingURL=credential-provider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"credential-provider.js","sourceRoot":"","sources":["../src/credential-provider.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
import { IWallet } from './types';
|
|
2
|
+
export declare function importDID({ wallet, encryptedJSONWallet, password, }: {
|
|
3
|
+
wallet: IWallet;
|
|
4
|
+
encryptedJSONWallet: any;
|
|
5
|
+
password: string;
|
|
6
|
+
}): Promise<any>;
|
|
7
|
+
export declare function createDIDock({ wallet, address, name }: {
|
|
8
|
+
wallet: any;
|
|
9
|
+
address: any;
|
|
10
|
+
name: any;
|
|
11
|
+
}): Promise<void>;
|
|
12
|
+
export declare const createDIDKeyDocument: (keypairDoc: any, didDocParams?: any) => Promise<{
|
|
13
|
+
didDocumentResolution: any;
|
|
14
|
+
keypairDoc: any;
|
|
15
|
+
}>;
|
|
16
|
+
export declare function createDIDKey({ wallet, name, derivePath, type }: {
|
|
17
|
+
wallet: any;
|
|
18
|
+
name: any;
|
|
19
|
+
derivePath?: any;
|
|
20
|
+
type?: any;
|
|
21
|
+
}): Promise<{
|
|
22
|
+
keyDoc: any;
|
|
23
|
+
didDocumentResolution: any;
|
|
24
|
+
}>;
|
|
25
|
+
/**
|
|
26
|
+
* Get DIDs list
|
|
27
|
+
*
|
|
28
|
+
* @param param0
|
|
29
|
+
* @returns
|
|
30
|
+
*/
|
|
31
|
+
export declare function getAll({ wallet }: {
|
|
32
|
+
wallet: any;
|
|
33
|
+
}): Promise<any>;
|
|
34
|
+
export declare function getDefaultDID({ wallet }: {
|
|
35
|
+
wallet: any;
|
|
36
|
+
}): Promise<any>;
|
|
37
|
+
export declare function getDIDKeyPairs({ wallet }: {
|
|
38
|
+
wallet: any;
|
|
39
|
+
}): Promise<any[]>;
|
|
40
|
+
export declare function ensureDID({ wallet }: {
|
|
41
|
+
wallet: any;
|
|
42
|
+
}): Promise<{
|
|
43
|
+
keyDoc: any;
|
|
44
|
+
didDocumentResolution: any;
|
|
45
|
+
}>;
|
|
46
|
+
export interface IDIDProvider {
|
|
47
|
+
importDID(params: {
|
|
48
|
+
encryptedJSONWallet: any;
|
|
49
|
+
password: string;
|
|
50
|
+
}): Promise<void>;
|
|
51
|
+
createDIDock(params: {
|
|
52
|
+
address: string;
|
|
53
|
+
name: string;
|
|
54
|
+
}): Promise<void>;
|
|
55
|
+
createDIDKey(params: {
|
|
56
|
+
name: string;
|
|
57
|
+
derivePath?: string;
|
|
58
|
+
type?: string;
|
|
59
|
+
}): Promise<any>;
|
|
60
|
+
editDID(params: {
|
|
61
|
+
id: string;
|
|
62
|
+
name: string;
|
|
63
|
+
}): Promise<void>;
|
|
64
|
+
deleteDID(params: {
|
|
65
|
+
id: string;
|
|
66
|
+
}): Promise<void>;
|
|
67
|
+
exportDID(params: {
|
|
68
|
+
id: string;
|
|
69
|
+
password: string;
|
|
70
|
+
}): Promise<void>;
|
|
71
|
+
getAll(): Promise<any>;
|
|
72
|
+
getDIDKeyPairs(): Promise<any>;
|
|
73
|
+
ensureDID(): Promise<any>;
|
|
74
|
+
getDefaultDID(): Promise<string>;
|
|
75
|
+
}
|
|
76
|
+
export declare function createDIDProvider({ wallet }: {
|
|
77
|
+
wallet: any;
|
|
78
|
+
}): IDIDProvider;
|
|
79
|
+
//# sourceMappingURL=did-provider.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"did-provider.d.ts","sourceRoot":"","sources":["../src/did-provider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,OAAO,EAAC,MAAM,SAAS,CAAC;AAIhC,wBAAsB,SAAS,CAAC,EAC9B,MAAM,EACN,mBAAmB,EACnB,QAAQ,GACT,EAAE;IACD,MAAM,EAAE,OAAO,CAAC;IAChB,mBAAmB,EAAE,GAAG,CAAC;IACzB,QAAQ,EAAE,MAAM,CAAC;CAClB,gBA0CA;AAED,wBAAsB,YAAY,CAAC,EAAC,MAAM,EAAE,OAAO,EAAE,IAAI,EAAC;;;;CAAA,iBA2BzD;AA+CD,eAAO,MAAM,oBAAoB,eACnB,GAAG,iBACD,GAAG;;;EAuBlB,CAAC;AAEF,wBAAsB,YAAY,CAAC,EAAC,MAAM,EAAE,IAAI,EAAE,UAAoB,EAAE,IAAc,EAAC;;;;;CAAA;;;GAiBtF;AAED;;;;;GAKG;AACH,wBAAsB,MAAM,CAAC,EAAC,MAAM,EAAC;;CAAA,gBAIpC;AAED,wBAAsB,aAAa,CAAC,EAAC,MAAM,EAAC;;CAAA,gBAI3C;AAED,wBAAsB,cAAc,CAAC,EAAC,MAAM,EAAC;;CAAA,kBAS5C;AAED,wBAAsB,SAAS,CAAC,EAAC,MAAM,EAAC;;CAAA;;;GAMvC;AAED,MAAM,WAAW,YAAY;IAC3B,SAAS,CAAC,MAAM,EAAE;QAChB,mBAAmB,EAAE,GAAG,CAAC;QACzB,QAAQ,EAAE,MAAM,CAAC;KAClB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAClB,YAAY,CAAC,MAAM,EAAE;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACrE,YAAY,CAAC,MAAM,EAAE;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAC,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAC,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IACtF,OAAO,CAAC,MAAM,EAAE;QAAC,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3D,SAAS,CAAC,MAAM,EAAE;QAAC,EAAE,EAAE,MAAM,CAAC;KAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAChD,SAAS,CAAC,MAAM,EAAE;QAAC,EAAE,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACjE,MAAM,IAAI,OAAO,CAAC,GAAG,CAAC,CAAC;IACvB,cAAc,IAAI,OAAO,CAAC,GAAG,CAAC,CAAC;IAC/B,SAAS,IAAI,OAAO,CAAC,GAAG,CAAC,CAAC;IAC1B,aAAa,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;CAClC;AAED,wBAAgB,iBAAiB,CAAC,EAAC,MAAM,EAAC;;CAAA,GAAG,YAAY,CAiCxD"}
|