@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.
- package/dist/cjs/index.cjs +0 -2
- package/dist/cjs/keymaster-client.cjs +26 -26
- package/dist/cjs/keymaster.cjs +279 -218
- package/dist/cjs/node.cjs +0 -2
- package/dist/esm/index.js +0 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/keymaster-client.js +26 -26
- package/dist/esm/keymaster-client.js.map +1 -1
- package/dist/esm/keymaster.js +220 -183
- package/dist/esm/keymaster.js.map +1 -1
- package/dist/types/index.d.ts +0 -1
- package/dist/types/keymaster-client.d.ts +16 -14
- package/dist/types/keymaster.d.ts +22 -21
- package/dist/types/types.d.ts +26 -31
- package/package.json +2 -10
- package/dist/cjs/search-client.cjs +0 -87
- package/dist/esm/search-client.js +0 -81
- package/dist/esm/search-client.js.map +0 -1
- package/dist/types/search-client.d.ts +0 -9
|
@@ -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,
|
|
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
|
-
|
|
72
|
-
|
|
70
|
+
addProof<T extends object>(obj: T, controller?: string, proofPurpose?: ProofPurpose): Promise<T & {
|
|
71
|
+
proof: Proof;
|
|
73
72
|
}>;
|
|
74
|
-
|
|
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(
|
|
106
|
+
bindCredential(subjectId: string, options?: {
|
|
107
|
+
schema?: string;
|
|
108
108
|
validFrom?: string;
|
|
109
109
|
validUntil?: string;
|
|
110
|
-
|
|
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
|
-
|
|
164
|
-
|
|
165
|
-
|
|
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
|
|
168
|
-
private
|
|
168
|
+
private decryptVault;
|
|
169
|
+
private checkVaultOwner;
|
|
169
170
|
private addMemberKey;
|
|
170
171
|
private checkVaultVersion;
|
|
171
172
|
getAgentDID(doc: DidCidDocument): string;
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
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?:
|
|
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>;
|
package/dist/types/types.d.ts
CHANGED
|
@@ -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
|
|
64
|
-
|
|
65
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
|
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
|
|
177
|
+
export interface VaultOptions extends CreateAssetOptions {
|
|
179
178
|
secretMembers?: boolean;
|
|
180
179
|
version?: number;
|
|
181
180
|
}
|
|
182
|
-
export interface
|
|
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
|
|
213
|
-
|
|
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(
|
|
293
|
+
bindCredential(subject: string, options?: {
|
|
294
|
+
schema?: string;
|
|
301
295
|
validFrom?: string;
|
|
302
296
|
validUntil?: string;
|
|
303
|
-
|
|
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
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
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.
|
|
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": "
|
|
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
|
-
}
|