hyperspace-sdk-ts 2.0.0 → 2.2.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/client.d.ts +18 -0
- package/dist/client.js +157 -0
- package/package.json +1 -1
package/dist/client.d.ts
CHANGED
|
@@ -18,6 +18,14 @@ export interface SearchResult {
|
|
|
18
18
|
[key: string]: string;
|
|
19
19
|
};
|
|
20
20
|
}
|
|
21
|
+
export interface GraphNode {
|
|
22
|
+
id: number;
|
|
23
|
+
layer: number;
|
|
24
|
+
neighbors: number[];
|
|
25
|
+
metadata: {
|
|
26
|
+
[key: string]: string;
|
|
27
|
+
};
|
|
28
|
+
}
|
|
21
29
|
export declare class HyperspaceClient {
|
|
22
30
|
private client;
|
|
23
31
|
private metadata;
|
|
@@ -46,5 +54,15 @@ export declare class HyperspaceClient {
|
|
|
46
54
|
stateHash: number;
|
|
47
55
|
count: number;
|
|
48
56
|
}>;
|
|
57
|
+
getNode(id: number, layer?: number, collection?: string): Promise<GraphNode>;
|
|
58
|
+
getNeighbors(id: number, layer?: number, limit?: number, offset?: number, collection?: string): Promise<GraphNode[]>;
|
|
59
|
+
getConceptParents(id: number, layer?: number, limit?: number, collection?: string): Promise<GraphNode[]>;
|
|
60
|
+
traverse(startId: number, layer?: number, maxDepth?: number, maxNodes?: number, collection?: string, options?: {
|
|
61
|
+
filter?: {
|
|
62
|
+
[key: string]: string;
|
|
63
|
+
};
|
|
64
|
+
filters?: Filter[];
|
|
65
|
+
}): Promise<GraphNode[]>;
|
|
66
|
+
findSemanticClusters(layer?: number, minClusterSize?: number, maxClusters?: number, maxNodes?: number, collection?: string): Promise<number[][]>;
|
|
49
67
|
close(): void;
|
|
50
68
|
}
|
package/dist/client.js
CHANGED
|
@@ -234,6 +234,163 @@ class HyperspaceClient {
|
|
|
234
234
|
});
|
|
235
235
|
});
|
|
236
236
|
}
|
|
237
|
+
getNode(id, layer = 0, collection = '') {
|
|
238
|
+
return new Promise((resolve, reject) => {
|
|
239
|
+
const req = new hyperspace_pb_1.GetNodeRequest();
|
|
240
|
+
req.setCollection(collection);
|
|
241
|
+
req.setId(id);
|
|
242
|
+
req.setLayer(layer);
|
|
243
|
+
this.client.getNode(req, this.metadata, (err, resp) => {
|
|
244
|
+
if (err)
|
|
245
|
+
return reject(err);
|
|
246
|
+
const metaMap = resp.getMetadataMap();
|
|
247
|
+
const metadata = {};
|
|
248
|
+
if (metaMap.getLength() > 0) {
|
|
249
|
+
metaMap.forEach((entry, key) => {
|
|
250
|
+
metadata[key] = entry;
|
|
251
|
+
});
|
|
252
|
+
}
|
|
253
|
+
resolve({
|
|
254
|
+
id: resp.getId(),
|
|
255
|
+
layer: resp.getLayer(),
|
|
256
|
+
neighbors: resp.getNeighborsList(),
|
|
257
|
+
metadata
|
|
258
|
+
});
|
|
259
|
+
});
|
|
260
|
+
});
|
|
261
|
+
}
|
|
262
|
+
getNeighbors(id, layer = 0, limit = 64, offset = 0, collection = '') {
|
|
263
|
+
return new Promise((resolve, reject) => {
|
|
264
|
+
const req = new hyperspace_pb_1.GetNeighborsRequest();
|
|
265
|
+
req.setCollection(collection);
|
|
266
|
+
req.setId(id);
|
|
267
|
+
req.setLayer(layer);
|
|
268
|
+
req.setLimit(limit);
|
|
269
|
+
req.setOffset(offset);
|
|
270
|
+
this.client.getNeighbors(req, this.metadata, (err, resp) => {
|
|
271
|
+
if (err)
|
|
272
|
+
return reject(err);
|
|
273
|
+
const nodes = resp.getNeighborsList().map((n) => {
|
|
274
|
+
const metaMap = n.getMetadataMap();
|
|
275
|
+
const metadata = {};
|
|
276
|
+
if (metaMap.getLength() > 0) {
|
|
277
|
+
metaMap.forEach((entry, key) => {
|
|
278
|
+
metadata[key] = entry;
|
|
279
|
+
});
|
|
280
|
+
}
|
|
281
|
+
return {
|
|
282
|
+
id: n.getId(),
|
|
283
|
+
layer: n.getLayer(),
|
|
284
|
+
neighbors: n.getNeighborsList(),
|
|
285
|
+
metadata
|
|
286
|
+
};
|
|
287
|
+
});
|
|
288
|
+
resolve(nodes);
|
|
289
|
+
});
|
|
290
|
+
});
|
|
291
|
+
}
|
|
292
|
+
getConceptParents(id, layer = 0, limit = 32, collection = '') {
|
|
293
|
+
return new Promise((resolve, reject) => {
|
|
294
|
+
const req = new hyperspace_pb_1.GetConceptParentsRequest();
|
|
295
|
+
req.setCollection(collection);
|
|
296
|
+
req.setId(id);
|
|
297
|
+
req.setLayer(layer);
|
|
298
|
+
req.setLimit(limit);
|
|
299
|
+
this.client.getConceptParents(req, this.metadata, (err, resp) => {
|
|
300
|
+
if (err)
|
|
301
|
+
return reject(err);
|
|
302
|
+
const nodes = resp.getParentsList().map((n) => {
|
|
303
|
+
const metaMap = n.getMetadataMap();
|
|
304
|
+
const metadata = {};
|
|
305
|
+
if (metaMap.getLength() > 0) {
|
|
306
|
+
metaMap.forEach((entry, key) => {
|
|
307
|
+
metadata[key] = entry;
|
|
308
|
+
});
|
|
309
|
+
}
|
|
310
|
+
return {
|
|
311
|
+
id: n.getId(),
|
|
312
|
+
layer: n.getLayer(),
|
|
313
|
+
neighbors: n.getNeighborsList(),
|
|
314
|
+
metadata
|
|
315
|
+
};
|
|
316
|
+
});
|
|
317
|
+
resolve(nodes);
|
|
318
|
+
});
|
|
319
|
+
});
|
|
320
|
+
}
|
|
321
|
+
traverse(startId, layer = 0, maxDepth = 2, maxNodes = 256, collection = '', options) {
|
|
322
|
+
return new Promise((resolve, reject) => {
|
|
323
|
+
const req = new hyperspace_pb_1.TraverseRequest();
|
|
324
|
+
req.setCollection(collection);
|
|
325
|
+
req.setStartId(startId);
|
|
326
|
+
req.setLayer(layer);
|
|
327
|
+
req.setMaxDepth(maxDepth);
|
|
328
|
+
req.setMaxNodes(maxNodes);
|
|
329
|
+
if (options === null || options === void 0 ? void 0 : options.filter) {
|
|
330
|
+
const map = req.getFilterMap();
|
|
331
|
+
for (const k in options.filter) {
|
|
332
|
+
map.set(k, options.filter[k]);
|
|
333
|
+
}
|
|
334
|
+
}
|
|
335
|
+
if (options === null || options === void 0 ? void 0 : options.filters) {
|
|
336
|
+
const protoFilters = options.filters.map(f => {
|
|
337
|
+
const pf = new hyperspace_pb.Filter();
|
|
338
|
+
if (f.match) {
|
|
339
|
+
const m = new hyperspace_pb.Match();
|
|
340
|
+
m.setKey(f.match.key);
|
|
341
|
+
m.setValue(f.match.value);
|
|
342
|
+
pf.setMatch(m);
|
|
343
|
+
}
|
|
344
|
+
else if (f.range) {
|
|
345
|
+
const r = new hyperspace_pb.Range();
|
|
346
|
+
r.setKey(f.range.key);
|
|
347
|
+
if (f.range.gte !== undefined)
|
|
348
|
+
r.setGte(f.range.gte);
|
|
349
|
+
if (f.range.lte !== undefined)
|
|
350
|
+
r.setLte(f.range.lte);
|
|
351
|
+
pf.setRange(r);
|
|
352
|
+
}
|
|
353
|
+
return pf;
|
|
354
|
+
});
|
|
355
|
+
req.setFiltersList(protoFilters);
|
|
356
|
+
}
|
|
357
|
+
this.client.traverse(req, this.metadata, (err, resp) => {
|
|
358
|
+
if (err)
|
|
359
|
+
return reject(err);
|
|
360
|
+
const nodes = resp.getNodesList().map((n) => {
|
|
361
|
+
const metaMap = n.getMetadataMap();
|
|
362
|
+
const metadata = {};
|
|
363
|
+
if (metaMap.getLength() > 0) {
|
|
364
|
+
metaMap.forEach((entry, key) => {
|
|
365
|
+
metadata[key] = entry;
|
|
366
|
+
});
|
|
367
|
+
}
|
|
368
|
+
return {
|
|
369
|
+
id: n.getId(),
|
|
370
|
+
layer: n.getLayer(),
|
|
371
|
+
neighbors: n.getNeighborsList(),
|
|
372
|
+
metadata
|
|
373
|
+
};
|
|
374
|
+
});
|
|
375
|
+
resolve(nodes);
|
|
376
|
+
});
|
|
377
|
+
});
|
|
378
|
+
}
|
|
379
|
+
findSemanticClusters(layer = 0, minClusterSize = 3, maxClusters = 32, maxNodes = 10000, collection = '') {
|
|
380
|
+
return new Promise((resolve, reject) => {
|
|
381
|
+
const req = new hyperspace_pb_1.FindSemanticClustersRequest();
|
|
382
|
+
req.setCollection(collection);
|
|
383
|
+
req.setLayer(layer);
|
|
384
|
+
req.setMinClusterSize(minClusterSize);
|
|
385
|
+
req.setMaxClusters(maxClusters);
|
|
386
|
+
req.setMaxNodes(maxNodes);
|
|
387
|
+
this.client.findSemanticClusters(req, this.metadata, (err, resp) => {
|
|
388
|
+
if (err)
|
|
389
|
+
return reject(err);
|
|
390
|
+
resolve(resp.getClustersList().map((c) => c.getNodeIdsList()));
|
|
391
|
+
});
|
|
392
|
+
});
|
|
393
|
+
}
|
|
237
394
|
close() {
|
|
238
395
|
this.client.close();
|
|
239
396
|
}
|