@didcid/keymaster 0.1.3 → 0.3.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.
@@ -1,5 +1,5 @@
1
- import { DidCidDocument, ResolveDIDOptions, Operation } from '@didcid/gatekeeper/types';
2
- import { Challenge, ChallengeResponse, CheckWalletResult, CreateAssetOptions, FileAssetOptions, CreateResponseOptions, DmailItem, DmailMessage, EncryptOptions, FileAsset, FixWalletResult, Group, GroupVault, GroupVaultOptions, IDInfo, ImageAsset, IssueCredentialsOptions, KeymasterInterface, KeymasterOptions, NoticeMessage, Poll, PossiblySigned, Signature, StoredWallet, VerifiableCredential, ViewPollResult, WalletFile, WalletEncFile } from '@didcid/keymaster/types';
1
+ import { DidCidDocument, ResolveDIDOptions, Operation, Proof, ProofPurpose } from '@didcid/gatekeeper/types';
2
+ import { Challenge, ChallengeResponse, CheckWalletResult, CreateAssetOptions, FileAssetOptions, CreateResponseOptions, DmailItem, DmailMessage, EncryptOptions, FileAsset, FixWalletResult, Group, Vault, VaultOptions, IDInfo, ImageAsset, IssueCredentialsOptions, KeymasterInterface, KeymasterOptions, NoticeMessage, Poll, PossiblyProofed, StoredWallet, VerifiableCredential, ViewPollResult, WalletFile, WalletEncFile } from '@didcid/keymaster/types';
3
3
  import { EcdsaJwkPair, EcdsaJwkPublic } from '@didcid/cipher/types';
4
4
  export declare enum DmailTags {
5
5
  DMAIL = "dmail",
@@ -21,7 +21,6 @@ export default class Keymaster implements KeymasterInterface {
21
21
  private gatekeeper;
22
22
  private db;
23
23
  private cipher;
24
- private searchEngine;
25
24
  private readonly defaultRegistry;
26
25
  private readonly ephemeralRegistry;
27
26
  private readonly maxNameLength;
@@ -68,10 +67,10 @@ export default class Keymaster implements KeymasterInterface {
68
67
  decryptMessage(did: string): Promise<string>;
69
68
  encryptJSON(json: unknown, did: string, options?: EncryptOptions): Promise<string>;
70
69
  decryptJSON(did: string): Promise<unknown>;
71
- addSignature<T extends object>(obj: T, controller?: string): Promise<T & {
72
- signature: Signature;
70
+ addProof<T extends object>(obj: T, controller?: string, proofPurpose?: ProofPurpose): Promise<T & {
71
+ proof: Proof;
73
72
  }>;
74
- verifySignature<T extends PossiblySigned>(obj: T): Promise<boolean>;
73
+ verifyProof<T extends PossiblyProofed>(obj: T): Promise<boolean>;
75
74
  updateDID(id: string, doc: DidCidDocument): Promise<boolean>;
76
75
  revokeDID(id: string): Promise<boolean>;
77
76
  addToOwned(did: string, owner?: string): Promise<boolean>;
@@ -104,10 +103,12 @@ export default class Keymaster implements KeymasterInterface {
104
103
  getName(name: string): Promise<string | null>;
105
104
  removeName(name: string): Promise<boolean>;
106
105
  testAgent(id: string): Promise<boolean>;
107
- bindCredential(schemaId: string, subjectId: string, options?: {
106
+ bindCredential(subjectId: string, options?: {
107
+ schema?: string;
108
108
  validFrom?: string;
109
109
  validUntil?: string;
110
- credential?: Record<string, unknown>;
110
+ claims?: Record<string, unknown>;
111
+ types?: string[];
111
112
  }): Promise<VerifiableCredential>;
112
113
  issueCredential(credential: Partial<VerifiableCredential>, options?: IssueCredentialsOptions): Promise<string>;
113
114
  sendCredential(did: string, options?: CreateAssetOptions): Promise<string | null>;
@@ -160,29 +161,29 @@ export default class Keymaster implements KeymasterInterface {
160
161
  reveal?: boolean;
161
162
  }): Promise<boolean>;
162
163
  unpublishPoll(pollId: string): Promise<boolean>;
163
- createGroupVault(options?: GroupVaultOptions): Promise<string>;
164
- getGroupVault(groupVaultId: string, options?: ResolveDIDOptions): Promise<GroupVault>;
165
- testGroupVault(id: string, options?: ResolveDIDOptions): Promise<boolean>;
164
+ createVault(options?: VaultOptions): Promise<string>;
165
+ getVault(vaultId: string, options?: ResolveDIDOptions): Promise<Vault>;
166
+ testVault(id: string, options?: ResolveDIDOptions): Promise<boolean>;
166
167
  private generateSaltedId;
167
- private decryptGroupVault;
168
- private checkGroupVaultOwner;
168
+ private decryptVault;
169
+ private checkVaultOwner;
169
170
  private addMemberKey;
170
171
  private checkVaultVersion;
171
172
  getAgentDID(doc: DidCidDocument): string;
172
- addGroupVaultMember(vaultId: string, memberId: string): Promise<boolean>;
173
- removeGroupVaultMember(vaultId: string, memberId: string): Promise<boolean>;
174
- listGroupVaultMembers(vaultId: string): Promise<Record<string, any>>;
175
- addGroupVaultItem(vaultId: string, name: string, buffer: Buffer): Promise<boolean>;
176
- removeGroupVaultItem(vaultId: string, name: string): Promise<boolean>;
177
- listGroupVaultItems(vaultId: string, options?: ResolveDIDOptions): Promise<Record<string, any>>;
178
- getGroupVaultItem(vaultId: string, name: string, options?: ResolveDIDOptions): Promise<Buffer | null>;
173
+ addVaultMember(vaultId: string, memberId: string): Promise<boolean>;
174
+ removeVaultMember(vaultId: string, memberId: string): Promise<boolean>;
175
+ listVaultMembers(vaultId: string): Promise<Record<string, any>>;
176
+ addVaultItem(vaultId: string, name: string, buffer: Buffer): Promise<boolean>;
177
+ removeVaultItem(vaultId: string, name: string): Promise<boolean>;
178
+ listVaultItems(vaultId: string, options?: ResolveDIDOptions): Promise<Record<string, any>>;
179
+ getVaultItem(vaultId: string, name: string, options?: ResolveDIDOptions): Promise<Buffer | null>;
179
180
  listDmail(): Promise<Record<string, DmailItem>>;
180
181
  verifyTagList(tags: string[]): string[];
181
182
  fileDmail(did: string, tags: string[]): Promise<boolean>;
182
183
  removeDmail(did: string): Promise<boolean>;
183
184
  verifyRecipientList(list: string[]): Promise<string[]>;
184
185
  verifyDmail(message: DmailMessage): Promise<DmailMessage>;
185
- createDmail(message: DmailMessage, options?: GroupVaultOptions): Promise<string>;
186
+ createDmail(message: DmailMessage, options?: VaultOptions): Promise<string>;
186
187
  updateDmail(did: string, message: DmailMessage): Promise<boolean>;
187
188
  sendDmail(did: string): Promise<string | null>;
188
189
  getDmailMessage(did: string, options?: ResolveDIDOptions): Promise<DmailMessage | null>;
@@ -1,5 +1,5 @@
1
1
  import { Cipher, EcdsaJwkPublic } from '@didcid/cipher/types';
2
- import { GatekeeperInterface, DidCidDocument, ResolveDIDOptions } from '@didcid/gatekeeper/types';
2
+ import { GatekeeperInterface, DidCidDocument, ResolveDIDOptions, Proof } from '@didcid/gatekeeper/types';
3
3
  export interface Seed {
4
4
  /** Passphrase-encrypted mnemonic */
5
5
  mnemonicEnc?: {
@@ -60,11 +60,9 @@ export interface Group {
60
60
  name: string;
61
61
  members: string[];
62
62
  }
63
- export interface Signature {
64
- signer?: string;
65
- signed: string;
66
- hash: string;
67
- value: string;
63
+ export interface CredentialSchema {
64
+ id: string;
65
+ type: "JsonSchema";
68
66
  }
69
67
  export interface VerifiableCredential {
70
68
  "@context": string[];
@@ -72,17 +70,18 @@ export interface VerifiableCredential {
72
70
  issuer: string;
73
71
  validFrom: string;
74
72
  validUntil?: string;
73
+ credentialSchema?: CredentialSchema;
75
74
  credentialSubject?: {
76
75
  id: string;
76
+ [key: string]: unknown;
77
77
  };
78
- credential?: Record<string, unknown> | null;
79
- signature?: Signature;
78
+ proof?: Proof;
80
79
  }
81
80
  export interface IssueCredentialsOptions extends EncryptOptions {
82
81
  schema?: string;
83
82
  subject?: string;
84
83
  validFrom?: string;
85
- credential?: Record<string, unknown>;
84
+ claims?: Record<string, unknown>;
86
85
  }
87
86
  export interface Challenge {
88
87
  credentials?: {
@@ -165,7 +164,7 @@ export interface ImageAsset extends BinaryAsset {
165
164
  export interface FileAsset extends BinaryAsset {
166
165
  filename: string;
167
166
  }
168
- export interface GroupVault {
167
+ export interface Vault {
169
168
  version?: number;
170
169
  publicJwk: EcdsaJwkPublic;
171
170
  salt: string;
@@ -175,11 +174,11 @@ export interface GroupVault {
175
174
  items: string;
176
175
  sha256: string;
177
176
  }
178
- export interface GroupVaultOptions extends CreateAssetOptions {
177
+ export interface VaultOptions extends CreateAssetOptions {
179
178
  secretMembers?: boolean;
180
179
  version?: number;
181
180
  }
182
- export interface GroupVaultLogin {
181
+ export interface VaultLogin {
183
182
  service: string;
184
183
  username: string;
185
184
  password: string;
@@ -190,15 +189,11 @@ export interface WalletBase {
190
189
  loadWallet(): Promise<StoredWallet | null>;
191
190
  updateWallet(mutator: (wallet: StoredWallet) => void | Promise<void>): Promise<void>;
192
191
  }
193
- export interface SearchEngine {
194
- search(query: object): Promise<string[]>;
195
- }
196
192
  export interface KeymasterOptions {
197
193
  passphrase: string;
198
194
  gatekeeper: GatekeeperInterface;
199
195
  wallet: WalletBase;
200
196
  cipher: Cipher;
201
- search?: SearchEngine;
202
197
  defaultRegistry?: string;
203
198
  maxNameLength?: number;
204
199
  }
@@ -209,8 +204,8 @@ export interface EncryptedMessage {
209
204
  cipher_sender?: string | null;
210
205
  cipher_receiver?: string | null;
211
206
  }
212
- export interface PossiblySigned {
213
- signature?: Signature;
207
+ export interface PossiblyProofed {
208
+ proof?: Proof;
214
209
  }
215
210
  export interface RestClientOptions {
216
211
  url?: string;
@@ -223,8 +218,6 @@ export interface RestClientOptions {
223
218
  }
224
219
  export interface KeymasterClientOptions extends RestClientOptions {
225
220
  }
226
- export interface SearchClientOptions extends RestClientOptions {
227
- }
228
221
  export interface WaitUntilReadyOptions {
229
222
  intervalSeconds?: number;
230
223
  chatty?: boolean;
@@ -297,10 +290,12 @@ export interface KeymasterInterface {
297
290
  testSchema(did: string): Promise<boolean>;
298
291
  listSchemas(owner?: string): Promise<string[]>;
299
292
  testAgent(did: string): Promise<boolean>;
300
- bindCredential(schema: string, subject: string, options?: {
293
+ bindCredential(subject: string, options?: {
294
+ schema?: string;
301
295
  validFrom?: string;
302
296
  validUntil?: string;
303
- credential?: Record<string, unknown>;
297
+ claims?: Record<string, unknown>;
298
+ types?: string[];
304
299
  }): Promise<VerifiableCredential>;
305
300
  issueCredential(credential: Partial<VerifiableCredential>, options?: IssueCredentialsOptions): Promise<string>;
306
301
  sendCredential(did: string, options?: CreateAssetOptions): Promise<string | null>;
@@ -346,15 +341,15 @@ export interface KeymasterInterface {
346
341
  updateDocument(did: string, data: Buffer, options?: FileAssetOptions): Promise<boolean>;
347
342
  getDocument(id: string): Promise<FileAsset | null>;
348
343
  testDocument(id: string): Promise<boolean>;
349
- createGroupVault(options?: CreateAssetOptions): Promise<string>;
350
- getGroupVault(vaultId: string, options?: ResolveDIDOptions): Promise<GroupVault>;
351
- testGroupVault(vaultId: string, options?: ResolveDIDOptions): Promise<boolean>;
352
- addGroupVaultMember(vaultId: string, memberId: string): Promise<boolean>;
353
- removeGroupVaultMember(vaultId: string, memberId: string): Promise<boolean>;
354
- addGroupVaultItem(vaultId: string, name: string, buffer: Buffer): Promise<boolean>;
355
- removeGroupVaultItem(vaultId: string, name: string): Promise<boolean>;
356
- listGroupVaultItems(vaultId: string, options?: ResolveDIDOptions): Promise<Record<string, any>>;
357
- getGroupVaultItem(vaultId: string, name: string, options?: ResolveDIDOptions): Promise<Buffer | null>;
344
+ createVault(options?: VaultOptions): Promise<string>;
345
+ getVault(vaultId: string, options?: ResolveDIDOptions): Promise<Vault>;
346
+ testVault(vaultId: string, options?: ResolveDIDOptions): Promise<boolean>;
347
+ addVaultMember(vaultId: string, memberId: string): Promise<boolean>;
348
+ removeVaultMember(vaultId: string, memberId: string): Promise<boolean>;
349
+ addVaultItem(vaultId: string, name: string, buffer: Buffer): Promise<boolean>;
350
+ removeVaultItem(vaultId: string, name: string): Promise<boolean>;
351
+ listVaultItems(vaultId: string, options?: ResolveDIDOptions): Promise<Record<string, any>>;
352
+ getVaultItem(vaultId: string, name: string, options?: ResolveDIDOptions): Promise<Buffer | null>;
358
353
  createDmail(message: DmailMessage, options?: CreateAssetOptions): Promise<string>;
359
354
  updateDmail(did: string, message: DmailMessage): Promise<boolean>;
360
355
  fileDmail(did: string, tags: string[]): Promise<boolean>;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@didcid/keymaster",
3
- "version": "0.1.3",
3
+ "version": "0.3.0",
4
4
  "description": "Archon Keymaster",
5
5
  "type": "module",
6
6
  "module": "./dist/esm/index.js",
@@ -34,11 +34,6 @@
34
34
  "require": "./dist/cjs/keymaster-client.cjs",
35
35
  "types": "./dist/types/keymaster-client.d.ts"
36
36
  },
37
- "./search": {
38
- "import": "./dist/esm/search-client.js",
39
- "require": "./dist/cjs/search-client.cjs",
40
- "types": "./dist/types/search-client.d.ts"
41
- },
42
37
  "./encryption": {
43
38
  "import": "./dist/esm/encryption.js",
44
39
  "require": "./dist/cjs/encryption.cjs",
@@ -103,9 +98,6 @@
103
98
  "client": [
104
99
  "./dist/types/keymaster-client.d.ts"
105
100
  ],
106
- "search": [
107
- "./dist/types/search-client.d.ts"
108
- ],
109
101
  "encryption": [
110
102
  "./dist/types/encryption.d.ts"
111
103
  ],
@@ -167,5 +159,5 @@
167
159
  "type": "git",
168
160
  "url": "git+https://github.com/archetech/archon.git"
169
161
  },
170
- "gitHead": "dd45ee46bf0bad26d796e210f7837f36a1505960"
162
+ "gitHead": "1563f84a36453fd632771eea93e1aa911e3ebc33"
171
163
  }
@@ -1,87 +0,0 @@
1
- 'use strict';
2
-
3
- Object.defineProperty(exports, '__esModule', { value: true });
4
-
5
- var axiosModule = require('axios');
6
-
7
- const axios = axiosModule?.default ??
8
- axiosModule;
9
- const VERSION = '/api/v1';
10
- function throwError(error) {
11
- if (error.response) {
12
- throw error.response.data;
13
- }
14
- throw error;
15
- }
16
- class SearchClient {
17
- API = "/api/v1";
18
- // Factory method
19
- static async create(options) {
20
- const searchClient = new SearchClient();
21
- await searchClient.connect(options);
22
- return searchClient;
23
- }
24
- async connect(options = {}) {
25
- if (options.url) {
26
- this.API = `${options.url}${VERSION}`;
27
- }
28
- // Only used for unit testing
29
- // TBD replace console with a real logging package
30
- if (options.console) {
31
- // eslint-disable-next-line
32
- console = options.console;
33
- }
34
- if (options.waitUntilReady) {
35
- await this.waitUntilReady(options);
36
- }
37
- }
38
- async waitUntilReady(options = {}) {
39
- let { intervalSeconds = 5, chatty = false, becomeChattyAfter = 0, maxRetries = 0 } = options;
40
- let ready = false;
41
- let retries = 0;
42
- if (chatty) {
43
- console.log(`Connecting to Search-server at ${this.API}`);
44
- }
45
- while (!ready) {
46
- ready = await this.isReady();
47
- if (!ready) {
48
- if (chatty) {
49
- console.log('Waiting for Search-server to be ready...');
50
- }
51
- // wait for 1 second before checking again
52
- await new Promise(resolve => setTimeout(resolve, intervalSeconds * 1000));
53
- }
54
- retries += 1;
55
- if (maxRetries > 0 && retries > maxRetries) {
56
- return;
57
- }
58
- if (!chatty && becomeChattyAfter > 0 && retries > becomeChattyAfter) {
59
- console.log(`Connecting to Search-server at ${this.API}`);
60
- chatty = true;
61
- }
62
- }
63
- if (chatty) {
64
- console.log('Search-server is ready!');
65
- }
66
- }
67
- async isReady() {
68
- try {
69
- const response = await axios.get(`${this.API}/ready`);
70
- return response.data.ready;
71
- }
72
- catch (error) {
73
- return false;
74
- }
75
- }
76
- async search(where) {
77
- try {
78
- const response = await axios.post(`${this.API}/query`, where);
79
- return response.data;
80
- }
81
- catch (error) {
82
- throwError(error);
83
- }
84
- }
85
- }
86
-
87
- exports.default = SearchClient;
@@ -1,81 +0,0 @@
1
- import axiosModule from 'axios';
2
- const axios = axiosModule?.default ??
3
- axiosModule;
4
- const VERSION = '/api/v1';
5
- function throwError(error) {
6
- if (error.response) {
7
- throw error.response.data;
8
- }
9
- throw error;
10
- }
11
- export default class SearchClient {
12
- API = "/api/v1";
13
- // Factory method
14
- static async create(options) {
15
- const searchClient = new SearchClient();
16
- await searchClient.connect(options);
17
- return searchClient;
18
- }
19
- async connect(options = {}) {
20
- if (options.url) {
21
- this.API = `${options.url}${VERSION}`;
22
- }
23
- // Only used for unit testing
24
- // TBD replace console with a real logging package
25
- if (options.console) {
26
- // eslint-disable-next-line
27
- console = options.console;
28
- }
29
- if (options.waitUntilReady) {
30
- await this.waitUntilReady(options);
31
- }
32
- }
33
- async waitUntilReady(options = {}) {
34
- let { intervalSeconds = 5, chatty = false, becomeChattyAfter = 0, maxRetries = 0 } = options;
35
- let ready = false;
36
- let retries = 0;
37
- if (chatty) {
38
- console.log(`Connecting to Search-server at ${this.API}`);
39
- }
40
- while (!ready) {
41
- ready = await this.isReady();
42
- if (!ready) {
43
- if (chatty) {
44
- console.log('Waiting for Search-server to be ready...');
45
- }
46
- // wait for 1 second before checking again
47
- await new Promise(resolve => setTimeout(resolve, intervalSeconds * 1000));
48
- }
49
- retries += 1;
50
- if (maxRetries > 0 && retries > maxRetries) {
51
- return;
52
- }
53
- if (!chatty && becomeChattyAfter > 0 && retries > becomeChattyAfter) {
54
- console.log(`Connecting to Search-server at ${this.API}`);
55
- chatty = true;
56
- }
57
- }
58
- if (chatty) {
59
- console.log('Search-server is ready!');
60
- }
61
- }
62
- async isReady() {
63
- try {
64
- const response = await axios.get(`${this.API}/ready`);
65
- return response.data.ready;
66
- }
67
- catch (error) {
68
- return false;
69
- }
70
- }
71
- async search(where) {
72
- try {
73
- const response = await axios.post(`${this.API}/query`, where);
74
- return response.data;
75
- }
76
- catch (error) {
77
- throwError(error);
78
- }
79
- }
80
- }
81
- //# sourceMappingURL=search-client.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"search-client.js","sourceRoot":"","sources":["../../src/search-client.ts"],"names":[],"mappings":"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"}
@@ -1,9 +0,0 @@
1
- import { WaitUntilReadyOptions, SearchClientOptions, SearchEngine } from './types.js';
2
- export default class SearchClient implements SearchEngine {
3
- private API;
4
- static create(options: SearchClientOptions): Promise<SearchClient>;
5
- connect(options?: SearchClientOptions): Promise<void>;
6
- waitUntilReady(options?: WaitUntilReadyOptions): Promise<void>;
7
- isReady(): Promise<boolean>;
8
- search(where: object): Promise<string[]>;
9
- }