@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.
Files changed (97) hide show
  1. package/LICENSE +39 -0
  2. package/babel.config.js +16 -0
  3. package/jest.config.ts +39 -0
  4. package/lib/account-provider.d.ts +8 -0
  5. package/lib/account-provider.d.ts.map +1 -0
  6. package/lib/account-provider.js +15 -0
  7. package/lib/account-provider.js.map +1 -0
  8. package/lib/biometric-provider.d.ts +29 -0
  9. package/lib/biometric-provider.d.ts.map +1 -0
  10. package/lib/biometric-provider.js +54 -0
  11. package/lib/biometric-provider.js.map +1 -0
  12. package/lib/credential-provider.d.ts +58 -0
  13. package/lib/credential-provider.d.ts.map +1 -0
  14. package/lib/credential-provider.js +198 -0
  15. package/lib/credential-provider.js.map +1 -0
  16. package/lib/did-provider.d.ts +79 -0
  17. package/lib/did-provider.d.ts.map +1 -0
  18. package/lib/did-provider.js +215 -0
  19. package/lib/did-provider.js.map +1 -0
  20. package/lib/ecosystem-tools.d.ts +11 -0
  21. package/lib/ecosystem-tools.d.ts.map +1 -0
  22. package/lib/ecosystem-tools.js +33 -0
  23. package/lib/ecosystem-tools.js.map +1 -0
  24. package/lib/helpers.d.ts +8 -0
  25. package/lib/helpers.d.ts.map +1 -0
  26. package/lib/helpers.js +63 -0
  27. package/lib/helpers.js.map +1 -0
  28. package/lib/message-provider.d.ts +36 -0
  29. package/lib/message-provider.d.ts.map +1 -0
  30. package/lib/message-provider.js +172 -0
  31. package/lib/message-provider.js.map +1 -0
  32. package/lib/messages/message-helpers.d.ts +110 -0
  33. package/lib/messages/message-helpers.d.ts.map +1 -0
  34. package/lib/messages/message-helpers.js +106 -0
  35. package/lib/messages/message-helpers.js.map +1 -0
  36. package/lib/network-resolver.d.ts +19 -0
  37. package/lib/network-resolver.d.ts.map +1 -0
  38. package/lib/network-resolver.js +80 -0
  39. package/lib/network-resolver.js.map +1 -0
  40. package/lib/types.d.ts +63 -0
  41. package/lib/types.d.ts.map +1 -0
  42. package/lib/types.js +3 -0
  43. package/lib/types.js.map +1 -0
  44. package/lib/v1-helpers.d.ts +20 -0
  45. package/lib/v1-helpers.d.ts.map +1 -0
  46. package/lib/v1-helpers.js +147 -0
  47. package/lib/v1-helpers.js.map +1 -0
  48. package/lib/verification-controller.d.ts +48 -0
  49. package/lib/verification-controller.d.ts.map +1 -0
  50. package/lib/verification-controller.js +219 -0
  51. package/lib/verification-controller.js.map +1 -0
  52. package/lib/wallet-to-wallet-verification/walletToWalletVerificationProvider.d.ts +20 -0
  53. package/lib/wallet-to-wallet-verification/walletToWalletVerificationProvider.d.ts.map +1 -0
  54. package/lib/wallet-to-wallet-verification/walletToWalletVerificationProvider.js +140 -0
  55. package/lib/wallet-to-wallet-verification/walletToWalletVerificationProvider.js.map +1 -0
  56. package/lib/wallet-wasm.d.ts +10 -0
  57. package/lib/wallet-wasm.d.ts.map +1 -0
  58. package/lib/wallet-wasm.js +62 -0
  59. package/lib/wallet-wasm.js.map +1 -0
  60. package/lib/wallet.d.ts +11 -0
  61. package/lib/wallet.d.ts.map +1 -0
  62. package/lib/wallet.js +173 -0
  63. package/lib/wallet.js.map +1 -0
  64. package/package.json +34 -0
  65. package/setup-tests.ts +1 -0
  66. package/src/account-provider.ts +18 -0
  67. package/src/biometric-provider.ts +82 -0
  68. package/src/credential-provider.test.ts +164 -0
  69. package/src/credential-provider.ts +272 -0
  70. package/src/did-provider.test.ts +203 -0
  71. package/src/did-provider.ts +263 -0
  72. package/src/ecosystem-tools.ts +37 -0
  73. package/src/fixtures/any-credential-proof-request.json +30 -0
  74. package/src/fixtures/biometrics-credential-bbs-revocation.json +62 -0
  75. package/src/fixtures/customer-credential.json +39 -0
  76. package/src/fixtures/iiw-credential.json +59 -0
  77. package/src/fixtures/iiw-template.json +33 -0
  78. package/src/fixtures/university-degree-bbs.json +57 -0
  79. package/src/fixtures/university-degree-proof-request.json +32 -0
  80. package/src/helpers.ts +61 -0
  81. package/src/message-provider.test.ts +115 -0
  82. package/src/message-provider.ts +221 -0
  83. package/src/messages/message-helpers.ts +125 -0
  84. package/src/messages/relay-service-mocks/demo-app-messages.json +450 -0
  85. package/src/network-resolver.test.ts +142 -0
  86. package/src/network-resolver.ts +122 -0
  87. package/src/types.ts +75 -0
  88. package/src/v1-helpers.ts +160 -0
  89. package/src/verification-controller.test.ts +149 -0
  90. package/src/verification-controller.ts +276 -0
  91. package/src/wallet-to-wallet-verification/walletToWalletVerificationProvider.ts +216 -0
  92. package/src/wallet-wasm.ts +74 -0
  93. package/src/wallet.test.ts +72 -0
  94. package/src/wallet.ts +211 -0
  95. package/tsconfig.build.json +26 -0
  96. package/tsconfig.build.tsbuildinfo +1 -0
  97. 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.
@@ -0,0 +1,16 @@
1
+ module.exports = {
2
+ presets: [
3
+ [
4
+ '@babel/preset-env',
5
+ {
6
+ targets: {
7
+ node: 'current',
8
+ },
9
+ },
10
+ ],
11
+ ],
12
+ plugins: [
13
+ '@babel/plugin-proposal-class-properties',
14
+ '@babel/plugin-transform-flow-strip-types',
15
+ ],
16
+ };
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":";;;;;;AAAA,qFAA0F;AAE1F,oDAA4B;AAC5B,yEAA6E;AAe7E,SAAgB,mBAAmB,CAAC,UAAU;IAC5C,OAAO,CACL,CAAC,OAAO,UAAU,EAAE,KAAK,EAAE,IAAI,KAAK,QAAQ;QAC1C,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC;QACtD,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;YACpC,UAAU,CAAC,UAAU,CAAC,CAAC,IAAI,CACzB,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,IAAI,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CACxD,CAAC,CACL,CAAC;AACJ,CAAC;AATD,kDASC;AAED,SAAgB,mBAAmB,CAAC,UAAU;IAC5C,OAAO,CAAC,CAAC,UAAU,CAAC,cAAc,IAAI,IAAI,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,GAAG,IAAI,IAAI,EAAE,CAAC;AACzF,CAAC;AAFD,kDAEC;AAED;;;;GAIG;AACI,KAAK,UAAU,OAAO,CAAC,EAC5B,UAAU,EACV,MAAM,GAIP;IACC,IAAA,gBAAM,EAAC,CAAC,CAAC,UAAU,EAAE,wBAAwB,CAAC,CAAC;IAE/C,IAAI;QACF,IAAI,mBAAmB,CAAC,UAAU,CAAC,EAAE;YACnC,OAAO;gBACL,MAAM,EAAE,wBAAgB,CAAC,OAAO;aACjC,CAAC;SACH;QAED,MAAM,iBAAiB,GAAG,UAAU,CAAC,8BAAsB,CAAC,IAAI,MAAM,oBAAoB,CAAC;YACzF,YAAY,EAAE,UAAU,CAAC,EAAE;YAC3B,MAAM;SACP,CAAC,CAAC;QAEH,OAAO,UAAU,CAAC,8BAAsB,CAAC,CAAC;QAE1C,MAAM,kBAAkB,GAAG,MAAM,iCAAoB,CAAC,gBAAgB,CAAC;YACrE,UAAU;YACV,iBAAiB;SAClB,CAAC,CAAC;QAEH,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAI,kBAAkB,CAAC;QAEhD,IAAI,CAAC,QAAQ,EAAE;YACb,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE;gBAC3E,OAAO;oBACL,MAAM,EAAE,wBAAgB,CAAC,OAAO;oBAChC,KAAK;iBACN,CAAC;aACH;YAED,OAAO;gBACL,MAAM,EAAE,wBAAgB,CAAC,OAAO;gBAChC,KAAK,EAAE,KAAK;aACb,CAAC;SACH;QAED,OAAO;YACL,MAAM,EAAE,wBAAgB,CAAC,QAAQ;SAClC,CAAC;KACH;IAAC,OAAO,GAAG,EAAE;QACZ,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAEnB,OAAO;YACL,MAAM,EAAE,wBAAgB,CAAC,OAAO;YAChC,KAAK,EAAE,GAAG,CAAC,QAAQ,EAAE;SACtB,CAAC;KACH;AACH,CAAC;AAvDD,0BAuDC;AAEY,QAAA,sBAAsB,GAAG,oBAAoB,CAAC;AAEpD,KAAK,UAAU,aAAa,CAAC,EAAC,MAAM,EAAE,UAAU,EAAC;IACtD,MAAM,YAAY,GAAG,UAAU,CAAC,8BAAsB,CAAC,CAAC;IAExD,IAAI,YAAY,EAAE;QAChB,OAAO,UAAU,CAAC,8BAAsB,CAAC,CAAC;KAC3C;IAED,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;IAEtD,IAAI,YAAY,EAAE;QAChB,MAAM,MAAM,CAAC,WAAW,CAAC;YACvB,IAAI,EAAE,oBAAoB;YAC1B,EAAE,EAAE,GAAG,UAAU,CAAC,EAAE,UAAU;YAC9B,KAAK,EAAE,YAAY;YACnB,cAAc,EAAE,YAAY;SAC7B,CAAC,CAAC;KACJ;IAED,oBAAoB,CAAC,EAAE,MAAM,EAAE,aAAa,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;IAEjE,OAAO,QAAQ,CAAC;AAClB,CAAC;AArBD,sCAqBC;AAED,KAAK,UAAU,oBAAoB,CAAC,EAAC,YAAY,EAAE,MAAM,EAAC;IACxD,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,eAAe,CAAC,GAAG,YAAY,UAAU,CAAC,CAAC;IACzE,OAAO,QAAQ,EAAE,KAAK,CAAC;AACzB,CAAC;AAGY,QAAA,gBAAgB,GAAG;IAC9B,OAAO,EAAE,SAAS;IAClB,OAAO,EAAE,SAAS;IAClB,QAAQ,EAAE,UAAU;IACpB,OAAO,EAAE,SAAS;IAClB,OAAO,EAAE,SAAS;CACnB,CAAC;AAeF;;;;;;;GAOG;AACH,KAAK,UAAU,oBAAoB,CAAC,EAAE,MAAM,EAAE,aAAa,EAAE,UAAU,EAEtE;IACC,IAAI,WAAW,CAAC;IAEhB,IAAI,aAAa,IAAI,aAAa,CAAC,MAAM,EAAE;QACzC,WAAW,GAAG,MAAM,MAAM,CAAC,gBAAgB,CAAC,aAAa,CAAC,CAAC;KAC5D;SAAM;QACL,WAAW,GAAG,MAAM,MAAM,CAAC,kBAAkB,CAAC,sBAAsB,CAAC,CAAC;KACvE;IAED,IAAI,UAAU,GAAG,EAAE,CAAC;IAEpB,IAAI,cAAc,CAAC;IAEnB,KAAK,MAAM,UAAU,IAAI,WAAW,EAAE;QACpC,IAAI,WAAW,GAAG,CAAC,CAAC,UAAU,CAAC;QAC/B,IAAI,SAAS,GAAG,MAAM,MAAM,CAAC,eAAe,CAAC,GAAG,UAAU,CAAC,EAAE,SAAS,CAAC,CAAC;QAExE,IAAI,CAAC,SAAS,EAAE;YACd,WAAW,GAAG,IAAI,CAAC;YACnB,SAAS,GAAG;gBACV,IAAI,EAAE,kBAAkB;gBACxB,EAAE,EAAE,GAAG,UAAU,CAAC,EAAE,SAAS;gBAC7B,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;gBACnC,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;gBACnC,MAAM,EAAE,IAAI;aACb,CAAC;YAEF,MAAM,MAAM,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;SACrC;QAED,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAE3B,IAAI,CAAC,SAAS,CAAC,MAAM,IAAI,SAAS,CAAC,MAAM,KAAK,wBAAgB,CAAC,OAAO,EAAE;YACtE,WAAW,GAAG,IAAI,CAAC;SACpB;QAED,IAAI,CAAC,WAAW,EAAE;YAChB,mDAAmD;YACnD,MAAM,SAAS,GAAG,IAAI,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;YAChD,MAAM,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,GAAG,SAAS,CAAC,OAAO,EAAE,CAAC;YACxD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;YAChD,IAAI,KAAK,GAAG,EAAE,EAAE;gBACd,WAAW,GAAG,IAAI,CAAC;aACpB;SACF;QAED,IAAI,CAAC,WAAW,EAAE;YAChB,SAAS;SACV;QAED,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE;YACrB,SAAS,CAAC,MAAM,GAAG,wBAAgB,CAAC,OAAO,CAAC;YAC5C,SAAS,CAAC,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;YAC/C,MAAM,MAAM,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;SACxC;QAED,IAAI,CAAC,cAAc,EAAE;YACnB,MAAM,kBAAW,CAAC,eAAe,EAAE,CAAC;YACpC,cAAc,GAAG,IAAI,CAAC;SACvB;QAED,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,CAAC;QACrD,SAAS,CAAC,MAAM,GAAG,MAAM,EAAE,MAAM,CAAA;QACjC,SAAS,CAAC,KAAK,GAAG,MAAM,EAAE,KAAK,CAAC;QAChC,SAAS,CAAC,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QAE/C,MAAM,MAAM,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;KACxC;IAED,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,SAAgB,wBAAwB,CAAC,EACvC,MAAM,GAGP;IACC,SAAS,cAAc,CAAC,OAAe,sBAAsB;QAC3D,OAAO,MAAM,CAAC,kBAAkB,CAAC,IAAI,CAAQ,CAAC;IAChD,CAAC;IAED,OAAO;QACL,cAAc;QACd,oBAAoB,EAAE,KAAK,EAAE,YAAoB,EAAE,EAAE,CACnD,oBAAoB,CAAC,EAAC,YAAY,EAAE,MAAM,EAAC,CAAC;QAC9C,OAAO,EAAE,CAAC,EAAU,EAAE,EAAE,CAAC,MAAM,CAAC,eAAe,CAAC,EAAE,CAAC;QACnD,mBAAmB;QACnB,OAAO,EAAE,KAAK,EAAC,UAAU,EAAC,EAAE,CAC1B,OAAO,CAAC;YACN,UAAU;YACV,MAAM;SACP,CAAQ;QACX,mBAAmB,EAAE,KAAK,EAAE,UAAsB,EAAE,EAAE;YACpD,IAAA,gBAAM,EAAC,CAAC,CAAC,UAAU,EAAE,wBAAwB,CAAC,CAAC;YAE/C,IAAI,mBAAmB,CAAC,UAAU,CAAC,EAAE;gBACnC,OAAO;oBACL,MAAM,EAAE,wBAAgB,CAAC,OAAO;iBACjC,CAAC;aACH;YAED,MAAM,SAAS,GAAG,MAAM,MAAM,CAAC,eAAe,CAAC,GAAG,UAAU,CAAC,EAAE,SAAS,CAAC,CAAC;YAE1E,OAAO;gBACL,MAAM,EAAE,SAAS,EAAE,MAAM,IAAI,wBAAgB,CAAC,OAAO;gBACrD,KAAK,EAAE,SAAS,EAAE,KAAK;aACxB,CAAA;QACH,CAAC;QACD,oBAAoB,EAAE,KAAK,EAAE,KAAiC,EAAE,EAAE;YAChE,OAAO,oBAAoB,CAAC,EAAE,MAAM,EAAE,GAAG,KAAK,EAAE,CAAC,CAAC;QACpD,CAAC;QACD,aAAa,EAAE,UAAU,CAAC,EAAE,CAAC,aAAa,CAAC,EAAC,MAAM,EAAE,UAAU,EAAC,CAAC;QAChE,iEAAiE;KAClE,CAAC;AACJ,CAAC;AA1CD,4DA0CC"}
@@ -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"}