@didcid/gatekeeper 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/{abstract-json-BJMq-iEa.cjs → abstract-json-DNKwEI6F.cjs} +1 -1
- package/dist/cjs/db/json-cache.cjs +1 -1
- package/dist/cjs/db/json-memory.cjs +1 -1
- package/dist/cjs/db/json.cjs +1 -1
- package/dist/cjs/db/mongo.cjs +5 -5
- package/dist/cjs/db/redis.cjs +6 -6
- package/dist/cjs/db/sqlite.cjs +2 -2
- package/dist/cjs/gatekeeper-client.cjs +21 -0
- package/dist/cjs/gatekeeper.cjs +220 -39
- package/dist/cjs/index.cjs +1 -1
- package/dist/cjs/node.cjs +1 -1
- package/dist/esm/db/abstract-json.js +1 -1
- package/dist/esm/db/abstract-json.js.map +1 -1
- package/dist/esm/db/mongo.js +5 -5
- package/dist/esm/db/mongo.js.map +1 -1
- package/dist/esm/db/redis.js +6 -6
- package/dist/esm/db/redis.js.map +1 -1
- package/dist/esm/db/sqlite.js +2 -2
- package/dist/esm/db/sqlite.js.map +1 -1
- package/dist/esm/gatekeeper-client.js +21 -0
- package/dist/esm/gatekeeper-client.js.map +1 -1
- package/dist/esm/gatekeeper.js +104 -39
- package/dist/esm/gatekeeper.js.map +1 -1
- package/dist/esm/search-index.js +118 -0
- package/dist/esm/search-index.js.map +1 -0
- package/dist/types/gatekeeper-client.d.ts +5 -0
- package/dist/types/gatekeeper.d.ts +10 -2
- package/dist/types/search-index.d.ts +12 -0
- package/dist/types/types.d.ts +16 -7
- package/package.json +2 -2
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
export default class SearchIndex {
|
|
2
|
+
docs = new Map();
|
|
3
|
+
static ARRAY_WILDCARD_END = /\[\*]$/;
|
|
4
|
+
static ARRAY_WILDCARD_MID = /\[\*]\./;
|
|
5
|
+
store(did, doc) {
|
|
6
|
+
// Only index didDocumentData to focus on actual content
|
|
7
|
+
const data = doc.didDocumentData;
|
|
8
|
+
if (data && typeof data === 'object') {
|
|
9
|
+
this.docs.set(did, JSON.parse(JSON.stringify(data)));
|
|
10
|
+
}
|
|
11
|
+
else {
|
|
12
|
+
this.docs.set(did, {});
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
delete(did) {
|
|
16
|
+
this.docs.delete(did);
|
|
17
|
+
}
|
|
18
|
+
clear() {
|
|
19
|
+
this.docs.clear();
|
|
20
|
+
}
|
|
21
|
+
get size() {
|
|
22
|
+
return this.docs.size;
|
|
23
|
+
}
|
|
24
|
+
searchDocs(q) {
|
|
25
|
+
const out = [];
|
|
26
|
+
for (const [did, doc] of this.docs.entries()) {
|
|
27
|
+
if (JSON.stringify(doc).includes(q))
|
|
28
|
+
out.push(did);
|
|
29
|
+
}
|
|
30
|
+
return out;
|
|
31
|
+
}
|
|
32
|
+
queryDocs(where) {
|
|
33
|
+
const entry = Object.entries(where)[0];
|
|
34
|
+
if (!entry) {
|
|
35
|
+
return [];
|
|
36
|
+
}
|
|
37
|
+
const [rawPath, cond] = entry;
|
|
38
|
+
if (typeof cond !== 'object' || cond === null || !Array.isArray(cond.$in)) {
|
|
39
|
+
throw new Error('Only {$in:[...]} supported');
|
|
40
|
+
}
|
|
41
|
+
const list = cond.$in;
|
|
42
|
+
const isKeyWildcard = rawPath.endsWith('.*');
|
|
43
|
+
const isValueWildcard = rawPath.includes('.*.');
|
|
44
|
+
const isArrayTail = SearchIndex.ARRAY_WILDCARD_END.test(rawPath);
|
|
45
|
+
const isArrayMid = SearchIndex.ARRAY_WILDCARD_MID.test(rawPath);
|
|
46
|
+
const result = [];
|
|
47
|
+
for (const [did, doc] of this.docs.entries()) {
|
|
48
|
+
let match = false;
|
|
49
|
+
if (isArrayTail) {
|
|
50
|
+
const basePath = rawPath.replace(SearchIndex.ARRAY_WILDCARD_END, '');
|
|
51
|
+
const arr = this.getPath(doc, basePath);
|
|
52
|
+
if (Array.isArray(arr)) {
|
|
53
|
+
match = arr.some(v => list.includes(v));
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
else if (isArrayMid) {
|
|
57
|
+
const [prefix, suffix] = rawPath.split('[*].');
|
|
58
|
+
const arr = this.getPath(doc, prefix);
|
|
59
|
+
if (Array.isArray(arr)) {
|
|
60
|
+
match = arr.some(el => list.includes(this.getPath(el, suffix)));
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
else if (isKeyWildcard) {
|
|
64
|
+
const basePath = rawPath.slice(0, -2);
|
|
65
|
+
const obj = this.getPath(doc, basePath);
|
|
66
|
+
if (obj && typeof obj === 'object' && !Array.isArray(obj)) {
|
|
67
|
+
const keys = Object.keys(obj);
|
|
68
|
+
match = keys.some(k => list.includes(k));
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
else if (isValueWildcard) {
|
|
72
|
+
const [prefix, suffix] = rawPath.split('.*.');
|
|
73
|
+
const obj = this.getPath(doc, prefix);
|
|
74
|
+
if (obj && typeof obj === 'object' && !Array.isArray(obj)) {
|
|
75
|
+
const values = Object.values(obj);
|
|
76
|
+
match = values.some(v => list.includes(this.getPath(v, suffix)));
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
else {
|
|
80
|
+
const val = this.getPath(doc, rawPath);
|
|
81
|
+
match = list.includes(val);
|
|
82
|
+
}
|
|
83
|
+
if (match) {
|
|
84
|
+
result.push(did);
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
return result;
|
|
88
|
+
}
|
|
89
|
+
getPath(root, path) {
|
|
90
|
+
if (!path || root == null) {
|
|
91
|
+
return undefined;
|
|
92
|
+
}
|
|
93
|
+
const clean = path.startsWith('$.') ? path.slice(2) : path.startsWith('$') ? path.slice(1) : path;
|
|
94
|
+
if (!clean) {
|
|
95
|
+
return root;
|
|
96
|
+
}
|
|
97
|
+
const parts = clean.split('.');
|
|
98
|
+
let cur = root;
|
|
99
|
+
for (const rawPart of parts) {
|
|
100
|
+
if (cur == null) {
|
|
101
|
+
return undefined;
|
|
102
|
+
}
|
|
103
|
+
const idx = Number.isInteger(+rawPart) ? +rawPart : null;
|
|
104
|
+
if (idx !== null && Array.isArray(cur)) {
|
|
105
|
+
cur = cur[idx];
|
|
106
|
+
continue;
|
|
107
|
+
}
|
|
108
|
+
if (typeof cur === 'object') {
|
|
109
|
+
cur = cur[rawPart];
|
|
110
|
+
}
|
|
111
|
+
else {
|
|
112
|
+
return undefined;
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
return cur;
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
//# sourceMappingURL=search-index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"search-index.js","sourceRoot":"","sources":["../../src/search-index.ts"],"names":[],"mappings":"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"}
|
|
@@ -37,4 +37,9 @@ export default class GatekeeperClient implements GatekeeperInterface {
|
|
|
37
37
|
getBlock(registry: string, block?: BlockId): Promise<BlockInfo | null>;
|
|
38
38
|
addBlock(registry: string, block: BlockInfo): Promise<boolean>;
|
|
39
39
|
generateDID(operation: Operation): Promise<string>;
|
|
40
|
+
searchDocs(q: string): Promise<string[]>;
|
|
41
|
+
queryDocs(where: Record<string, unknown>): Promise<string[]>;
|
|
42
|
+
search(query: {
|
|
43
|
+
where: Record<string, unknown>;
|
|
44
|
+
}): Promise<string[]>;
|
|
40
45
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { BatchMetadata, BlockId, BlockInfo, CheckDIDsOptions, GatekeeperInterface, GatekeeperEvent, GatekeeperOptions, ImportEventsResult, Operation, DidCidDocument, ResolveDIDOptions, GetDIDOptions, CheckDIDsResult, ImportBatchResult, ProcessEventsResult, VerifyDbResult,
|
|
1
|
+
import { BatchMetadata, BlockId, BlockInfo, CheckDIDsOptions, GatekeeperInterface, GatekeeperEvent, GatekeeperOptions, ImportEventsResult, Operation, DidCidDocument, ResolveDIDOptions, GetDIDOptions, CheckDIDsResult, ImportBatchResult, ProcessEventsResult, VerifyDbResult, Proof } from './types.js';
|
|
2
2
|
declare enum ImportStatus {
|
|
3
3
|
ADDED = "added",
|
|
4
4
|
MERGED = "merged",
|
|
@@ -18,7 +18,10 @@ export default class Gatekeeper implements GatekeeperInterface {
|
|
|
18
18
|
private readonly maxQueueSize;
|
|
19
19
|
supportedRegistries: string[];
|
|
20
20
|
private didLocks;
|
|
21
|
+
private searchIndex;
|
|
21
22
|
constructor(options: GatekeeperOptions);
|
|
23
|
+
initSearchIndex(): Promise<void>;
|
|
24
|
+
private updateSearchIndex;
|
|
22
25
|
private withDidLock;
|
|
23
26
|
verifyDb(options?: {
|
|
24
27
|
chatty?: boolean;
|
|
@@ -32,7 +35,7 @@ export default class Gatekeeper implements GatekeeperInterface {
|
|
|
32
35
|
verifyDIDFormat(did: string): boolean;
|
|
33
36
|
verifyDateFormat(time?: string): boolean;
|
|
34
37
|
verifyHashFormat(hash: string): boolean;
|
|
35
|
-
|
|
38
|
+
verifyProofFormat(proof?: Proof): boolean;
|
|
36
39
|
verifyCreateOperation(operation: Operation): Promise<boolean>;
|
|
37
40
|
verifyUpdateOperation(operation: Operation, doc: DidCidDocument): Promise<boolean>;
|
|
38
41
|
queueOperation(registry: string, operation: Operation): Promise<void>;
|
|
@@ -63,5 +66,10 @@ export default class Gatekeeper implements GatekeeperInterface {
|
|
|
63
66
|
getData(cid: string): Promise<Buffer | null>;
|
|
64
67
|
addJSON(json: object): Promise<string>;
|
|
65
68
|
getJSON(cid: string): Promise<object | null>;
|
|
69
|
+
searchDocs(q: string): Promise<string[]>;
|
|
70
|
+
queryDocs(where: Record<string, unknown>): Promise<string[]>;
|
|
71
|
+
search(query: {
|
|
72
|
+
where: Record<string, unknown>;
|
|
73
|
+
}): Promise<string[]>;
|
|
66
74
|
}
|
|
67
75
|
export {};
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export default class SearchIndex {
|
|
2
|
+
private docs;
|
|
3
|
+
private static readonly ARRAY_WILDCARD_END;
|
|
4
|
+
private static readonly ARRAY_WILDCARD_MID;
|
|
5
|
+
store(did: string, doc: object): void;
|
|
6
|
+
delete(did: string): void;
|
|
7
|
+
clear(): void;
|
|
8
|
+
get size(): number;
|
|
9
|
+
searchDocs(q: string): string[];
|
|
10
|
+
queryDocs(where: Record<string, unknown>): string[];
|
|
11
|
+
private getPath;
|
|
12
|
+
}
|
package/dist/types/types.d.ts
CHANGED
|
@@ -148,6 +148,11 @@ export interface GatekeeperInterface {
|
|
|
148
148
|
getBlock(registry: string, block?: BlockId): Promise<BlockInfo | null>;
|
|
149
149
|
addBlock(registry: string, block: BlockInfo): Promise<boolean>;
|
|
150
150
|
generateDID(operation: Operation): Promise<string>;
|
|
151
|
+
searchDocs(q: string): Promise<string[]>;
|
|
152
|
+
queryDocs(where: Record<string, unknown>): Promise<string[]>;
|
|
153
|
+
search(query: {
|
|
154
|
+
where: Record<string, unknown>;
|
|
155
|
+
}): Promise<string[]>;
|
|
151
156
|
}
|
|
152
157
|
export interface DidRegistration {
|
|
153
158
|
height?: number;
|
|
@@ -171,7 +176,8 @@ export interface DocumentMetadata {
|
|
|
171
176
|
updated?: string;
|
|
172
177
|
canonicalId?: string;
|
|
173
178
|
versionId?: string;
|
|
174
|
-
|
|
179
|
+
versionSequence?: string;
|
|
180
|
+
version?: number;
|
|
175
181
|
confirmed?: boolean;
|
|
176
182
|
deactivated?: boolean;
|
|
177
183
|
deleted?: string;
|
|
@@ -189,6 +195,7 @@ export interface DidCidDocument {
|
|
|
189
195
|
publicKeyJwk?: EcdsaJwkPublic;
|
|
190
196
|
}>;
|
|
191
197
|
authentication?: string[];
|
|
198
|
+
assertionMethod?: string[];
|
|
192
199
|
};
|
|
193
200
|
didDocumentMetadata?: DocumentMetadata;
|
|
194
201
|
didResolutionMetadata?: {
|
|
@@ -199,16 +206,18 @@ export interface DidCidDocument {
|
|
|
199
206
|
didDocumentData?: unknown;
|
|
200
207
|
didDocumentRegistration?: DocumentRegistration;
|
|
201
208
|
}
|
|
202
|
-
export
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
209
|
+
export type ProofPurpose = "assertionMethod" | "authentication";
|
|
210
|
+
export interface Proof {
|
|
211
|
+
type: "EcdsaSecp256k1Signature2019";
|
|
212
|
+
created: string;
|
|
213
|
+
verificationMethod: string;
|
|
214
|
+
proofPurpose: ProofPurpose;
|
|
215
|
+
proofValue: string;
|
|
207
216
|
}
|
|
208
217
|
export interface Operation {
|
|
209
218
|
type: 'create' | 'update' | 'delete';
|
|
210
219
|
created?: string;
|
|
211
|
-
|
|
220
|
+
proof?: Proof;
|
|
212
221
|
registration?: DocumentRegistration;
|
|
213
222
|
publicJwk?: EcdsaJwkPublic;
|
|
214
223
|
controller?: string;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@didcid/gatekeeper",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.3.0",
|
|
4
4
|
"description": "Archon Gatekeeper",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"module": "./dist/esm/index.js",
|
|
@@ -124,5 +124,5 @@
|
|
|
124
124
|
"devDependencies": {
|
|
125
125
|
"@rollup/plugin-json": "^6.1.0"
|
|
126
126
|
},
|
|
127
|
-
"gitHead": "
|
|
127
|
+
"gitHead": "1563f84a36453fd632771eea93e1aa911e3ebc33"
|
|
128
128
|
}
|