ultipa 6.0.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/LICENSE +21 -0
- package/README.md +65 -0
- package/dist/client.d.ts +194 -0
- package/dist/client.js +390 -0
- package/dist/config.d.ts +65 -0
- package/dist/config.js +135 -0
- package/dist/connection.d.ts +30 -0
- package/dist/connection.js +190 -0
- package/dist/errors.d.ts +99 -0
- package/dist/errors.js +237 -0
- package/dist/index.d.ts +14 -0
- package/dist/index.js +88 -0
- package/dist/printers.d.ts +33 -0
- package/dist/printers.js +312 -0
- package/dist/proto/gqldb.proto +632 -0
- package/dist/response.d.ts +256 -0
- package/dist/response.js +723 -0
- package/dist/services/admin-service.d.ts +40 -0
- package/dist/services/admin-service.js +115 -0
- package/dist/services/bulk-import-service.d.ts +35 -0
- package/dist/services/bulk-import-service.js +108 -0
- package/dist/services/converters.d.ts +57 -0
- package/dist/services/converters.js +254 -0
- package/dist/services/data-service.d.ts +44 -0
- package/dist/services/data-service.js +206 -0
- package/dist/services/graph-service.d.ts +32 -0
- package/dist/services/graph-service.js +127 -0
- package/dist/services/health-service.d.ts +50 -0
- package/dist/services/health-service.js +78 -0
- package/dist/services/index.d.ts +13 -0
- package/dist/services/index.js +30 -0
- package/dist/services/query-service.d.ts +39 -0
- package/dist/services/query-service.js +112 -0
- package/dist/services/service-context.d.ts +39 -0
- package/dist/services/service-context.js +73 -0
- package/dist/services/session-service.d.ts +24 -0
- package/dist/services/session-service.js +66 -0
- package/dist/services/transaction-service.d.ts +33 -0
- package/dist/services/transaction-service.js +100 -0
- package/dist/services.d.ts +28 -0
- package/dist/services.js +122 -0
- package/dist/session.d.ts +45 -0
- package/dist/session.js +75 -0
- package/dist/transaction.d.ts +42 -0
- package/dist/transaction.js +89 -0
- package/dist/types/bulk_import.d.ts +53 -0
- package/dist/types/bulk_import.js +6 -0
- package/dist/types/data_types.d.ts +116 -0
- package/dist/types/data_types.js +122 -0
- package/dist/types/enums.d.ts +59 -0
- package/dist/types/enums.js +67 -0
- package/dist/types/graph_models.d.ts +54 -0
- package/dist/types/graph_models.js +6 -0
- package/dist/types/index.d.ts +11 -0
- package/dist/types/index.js +36 -0
- package/dist/types/metadata.d.ts +60 -0
- package/dist/types/metadata.js +6 -0
- package/dist/types/schema.d.ts +31 -0
- package/dist/types/schema.js +6 -0
- package/dist/types/typed_value.d.ts +25 -0
- package/dist/types/typed_value.js +1176 -0
- package/dist/types/wrappers.d.ts +23 -0
- package/dist/types/wrappers.js +39 -0
- package/dist/types.d.ts +7 -0
- package/dist/types.js +24 -0
- package/package.json +50 -0
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Admin service handles administrative operations.
|
|
3
|
+
*/
|
|
4
|
+
import { ServiceContext } from './service-context';
|
|
5
|
+
import { CacheStats, CacheType, Statistics, CompactResult, ComputeTopologyResult } from '../types';
|
|
6
|
+
/**
|
|
7
|
+
* Admin service for administrative operations.
|
|
8
|
+
*/
|
|
9
|
+
export declare class AdminService {
|
|
10
|
+
private ctx;
|
|
11
|
+
constructor(ctx: ServiceContext);
|
|
12
|
+
/**
|
|
13
|
+
* Pre-allocate parser instances.
|
|
14
|
+
*/
|
|
15
|
+
warmupParser(count: number): Promise<void>;
|
|
16
|
+
/**
|
|
17
|
+
* Return cache statistics.
|
|
18
|
+
*/
|
|
19
|
+
getCacheStats(cacheType?: CacheType): Promise<CacheStats>;
|
|
20
|
+
/**
|
|
21
|
+
* Clear the specified cache.
|
|
22
|
+
*/
|
|
23
|
+
clearCache(cacheType?: CacheType): Promise<void>;
|
|
24
|
+
/**
|
|
25
|
+
* Return database statistics.
|
|
26
|
+
*/
|
|
27
|
+
getStatistics(graphName?: string): Promise<Statistics>;
|
|
28
|
+
/**
|
|
29
|
+
* Invalidate the RBAC permission cache.
|
|
30
|
+
*/
|
|
31
|
+
invalidatePermissionCache(username?: string): Promise<void>;
|
|
32
|
+
/**
|
|
33
|
+
* Trigger manual compaction of the database storage.
|
|
34
|
+
*/
|
|
35
|
+
compact(): Promise<CompactResult>;
|
|
36
|
+
/**
|
|
37
|
+
* Wait for the computing engine topology to be ready.
|
|
38
|
+
*/
|
|
39
|
+
waitForComputeTopology(graphName: string, timeoutMs?: number): Promise<ComputeTopologyResult>;
|
|
40
|
+
}
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Admin service handles administrative operations.
|
|
4
|
+
*/
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.AdminService = void 0;
|
|
7
|
+
const types_1 = require("../types");
|
|
8
|
+
const services_1 = require("../services");
|
|
9
|
+
const converters_1 = require("./converters");
|
|
10
|
+
/**
|
|
11
|
+
* Admin service for administrative operations.
|
|
12
|
+
*/
|
|
13
|
+
class AdminService {
|
|
14
|
+
ctx;
|
|
15
|
+
constructor(ctx) {
|
|
16
|
+
this.ctx = ctx;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Pre-allocate parser instances.
|
|
20
|
+
*/
|
|
21
|
+
async warmupParser(count) {
|
|
22
|
+
const metadata = this.ctx.getSessionMetadata();
|
|
23
|
+
await (0, services_1.promisifyCall)(this.ctx.clients.adminService, 'WarmupParser', { count }, metadata);
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Return cache statistics.
|
|
27
|
+
*/
|
|
28
|
+
async getCacheStats(cacheType = types_1.CacheType.ALL) {
|
|
29
|
+
const metadata = this.ctx.getSessionMetadata();
|
|
30
|
+
const response = await (0, services_1.promisifyCall)(this.ctx.clients.adminService, 'GetCacheStats', { cache_type: (0, converters_1.cacheTypeToProto)(cacheType) }, metadata);
|
|
31
|
+
return {
|
|
32
|
+
astStats: response.ast_stats
|
|
33
|
+
? {
|
|
34
|
+
hits: parseInt(response.ast_stats.hits || '0', 10),
|
|
35
|
+
misses: parseInt(response.ast_stats.misses || '0', 10),
|
|
36
|
+
evictions: parseInt(response.ast_stats.evictions || '0', 10),
|
|
37
|
+
entries: response.ast_stats.entries || 0,
|
|
38
|
+
hitRate: response.ast_stats.hit_rate || 0,
|
|
39
|
+
}
|
|
40
|
+
: undefined,
|
|
41
|
+
planStats: response.plan_stats
|
|
42
|
+
? {
|
|
43
|
+
size: response.plan_stats.size || 0,
|
|
44
|
+
capacity: response.plan_stats.capacity || 0,
|
|
45
|
+
hits: parseInt(response.plan_stats.hits || '0', 10),
|
|
46
|
+
misses: parseInt(response.plan_stats.misses || '0', 10),
|
|
47
|
+
hitRate: response.plan_stats.hit_rate || 0,
|
|
48
|
+
}
|
|
49
|
+
: undefined,
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Clear the specified cache.
|
|
54
|
+
*/
|
|
55
|
+
async clearCache(cacheType = types_1.CacheType.ALL) {
|
|
56
|
+
const metadata = this.ctx.getSessionMetadata();
|
|
57
|
+
await (0, services_1.promisifyCall)(this.ctx.clients.adminService, 'ClearCache', { cache_type: (0, converters_1.cacheTypeToProto)(cacheType) }, metadata);
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Return database statistics.
|
|
61
|
+
*/
|
|
62
|
+
async getStatistics(graphName = '') {
|
|
63
|
+
const metadata = this.ctx.getSessionMetadata();
|
|
64
|
+
const response = await (0, services_1.promisifyCall)(this.ctx.clients.adminService, 'GetStatistics', { graph_name: graphName }, metadata);
|
|
65
|
+
const labelCounts = {};
|
|
66
|
+
const edgeLabelCounts = {};
|
|
67
|
+
if (response.label_counts) {
|
|
68
|
+
for (const [key, value] of Object.entries(response.label_counts)) {
|
|
69
|
+
labelCounts[key] = parseInt(value, 10);
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
if (response.edge_label_counts) {
|
|
73
|
+
for (const [key, value] of Object.entries(response.edge_label_counts)) {
|
|
74
|
+
edgeLabelCounts[key] = parseInt(value, 10);
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
return {
|
|
78
|
+
nodeCount: parseInt(response.node_count || '0', 10),
|
|
79
|
+
edgeCount: parseInt(response.edge_count || '0', 10),
|
|
80
|
+
labelCounts,
|
|
81
|
+
edgeLabelCounts,
|
|
82
|
+
};
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* Invalidate the RBAC permission cache.
|
|
86
|
+
*/
|
|
87
|
+
async invalidatePermissionCache(username = '') {
|
|
88
|
+
const metadata = this.ctx.getSessionMetadata();
|
|
89
|
+
await (0, services_1.promisifyCall)(this.ctx.clients.adminService, 'InvalidatePermissionCache', { username }, metadata);
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* Trigger manual compaction of the database storage.
|
|
93
|
+
*/
|
|
94
|
+
async compact() {
|
|
95
|
+
const metadata = this.ctx.getSessionMetadata();
|
|
96
|
+
const response = await (0, services_1.promisifyCall)(this.ctx.clients.adminService, 'Compact', {}, metadata);
|
|
97
|
+
return {
|
|
98
|
+
success: response.success || false,
|
|
99
|
+
message: response.message || '',
|
|
100
|
+
};
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
* Wait for the computing engine topology to be ready.
|
|
104
|
+
*/
|
|
105
|
+
async waitForComputeTopology(graphName, timeoutMs = 0) {
|
|
106
|
+
const metadata = this.ctx.getSessionMetadata();
|
|
107
|
+
const response = await (0, services_1.promisifyCall)(this.ctx.clients.adminService, 'WaitForComputeTopology', { graph_name: graphName, timeout_ms: timeoutMs }, metadata);
|
|
108
|
+
return {
|
|
109
|
+
ready: response.ready || false,
|
|
110
|
+
message: response.message || '',
|
|
111
|
+
};
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
exports.AdminService = AdminService;
|
|
115
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRtaW4tc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zZXJ2aWNlcy9hZG1pbi1zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7R0FFRzs7O0FBR0gsb0NBQW1HO0FBQ25HLDBDQUE0QztBQUM1Qyw2Q0FBZ0Q7QUFFaEQ7O0dBRUc7QUFDSCxNQUFhLFlBQVk7SUFDSDtJQUFwQixZQUFvQixHQUFtQjtRQUFuQixRQUFHLEdBQUgsR0FBRyxDQUFnQjtJQUFHLENBQUM7SUFFM0M7O09BRUc7SUFDSCxLQUFLLENBQUMsWUFBWSxDQUFDLEtBQWE7UUFDOUIsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO1FBQy9DLE1BQU0sSUFBQSx3QkFBYSxFQUNqQixJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxZQUFZLEVBQzdCLGNBQWMsRUFDZCxFQUFFLEtBQUssRUFBRSxFQUNULFFBQVEsQ0FDVCxDQUFDO0lBQ0osQ0FBQztJQUVEOztPQUVHO0lBQ0gsS0FBSyxDQUFDLGFBQWEsQ0FBQyxZQUF1QixpQkFBUyxDQUFDLEdBQUc7UUFDdEQsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO1FBQy9DLE1BQU0sUUFBUSxHQUFRLE1BQU0sSUFBQSx3QkFBYSxFQUN2QyxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxZQUFZLEVBQzdCLGVBQWUsRUFDZixFQUFFLFVBQVUsRUFBRSxJQUFBLDZCQUFnQixFQUFDLFNBQVMsQ0FBQyxFQUFFLEVBQzNDLFFBQVEsQ0FDVCxDQUFDO1FBRUYsT0FBTztZQUNMLFFBQVEsRUFBRSxRQUFRLENBQUMsU0FBUztnQkFDMUIsQ0FBQyxDQUFDO29CQUNFLElBQUksRUFBRSxRQUFRLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxJQUFJLElBQUksR0FBRyxFQUFFLEVBQUUsQ0FB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RSxTQUFTLEVBQUUsRUFDaEQsUUFBUSxDQUNULENBQUM7UUFDRixPQUFPO1lBQ0wsS0FBSyxFQUFFLFFBQVEsQ0FBQyxLQUFLLElBQUksS0FBSztZQUM5QixPQUFPLEVBQUUsUUFBUSxDQUFDLE9BQU8sSUFBSSxFQUFFO1NBQ2hDLENBQUM7SUFDSixDQUFDO0NBQ0Y7QUFoSkQsb0NBZ0pDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXHJcbiAqIEFkbWluIHNlcnZpY2UgaGFuZGxlcyBhZG1pbmlzdHJhdGl2ZSBvcGVyYXRpb25zLlxyXG4gKi9cclxuXHJcbmltcG9ydCB7IFNlcnZpY2VDb250ZXh0IH0gZnJvbSAnLi9zZXJ2aWNlLWNvbnRleHQnO1xyXG5pbXBvcnQgeyBDYWNoZVN0YXRzLCBDYWNoZVR5cGUsIFN0YXRpc3RpY3MsIENvbXBhY3RSZXN1bHQsIENvbXB1dGVUb3BvbG9neVJlc3VsdCB9IGZyb20gJy4uL3R5cGVzJztcclxuaW1wb3J0IHsgcHJvbWlzaWZ5Q2FsbCB9IGZyb20gJy4uL3NlcnZpY2VzJztcclxuaW1wb3J0IHsgY2FjaGVUeXBlVG9Qcm90byB9IGZyb20gJy4vY29udmVydGVycyc7XHJcblxyXG4vKipcclxuICogQWRtaW4gc2VydmljZSBmb3IgYWRtaW5pc3RyYXRpdmUgb3BlcmF0aW9ucy5cclxuICovXHJcbmV4cG9ydCBjbGFzcyBBZG1pblNlcnZpY2Uge1xyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgY3R4OiBTZXJ2aWNlQ29udGV4dCkge31cclxuXHJcbiAgLyoqXHJcbiAgICogUHJlLWFsbG9jYXRlIHBhcnNlciBpbnN0YW5jZXMuXHJcbiAgICovXHJcbiAgYXN5bmMgd2FybXVwUGFyc2VyKGNvdW50OiBudW1iZXIpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIGNvbnN0IG1ldGFkYXRhID0gdGhpcy5jdHguZ2V0U2Vzc2lvbk1ldGFkYXRhKCk7XHJcbiAgICBhd2FpdCBwcm9taXNpZnlDYWxsKFxyXG4gICAgICB0aGlzLmN0eC5jbGllbnRzLmFkbWluU2VydmljZSxcclxuICAgICAgJ1dhcm11cFBhcnNlcicsXHJcbiAgICAgIHsgY291bnQgfSxcclxuICAgICAgbWV0YWRhdGFcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZXR1cm4gY2FjaGUgc3RhdGlzdGljcy5cclxuICAgKi9cclxuICBhc3luYyBnZXRDYWNoZVN0YXRzKGNhY2hlVHlwZTogQ2FjaGVUeXBlID0gQ2FjaGVUeXBlLkFMTCk6IFByb21pc2U8Q2FjaGVTdGF0cz4ge1xyXG4gICAgY29uc3QgbWV0YWRhdGEgPSB0aGlzLmN0eC5nZXRTZXNzaW9uTWV0YWRhdGEoKTtcclxuICAgIGNvbnN0IHJlc3BvbnNlOiBhbnkgPSBhd2FpdCBwcm9taXNpZnlDYWxsKFxyXG4gICAgICB0aGlzLmN0eC5jbGllbnRzLmFkbWluU2VydmljZSxcclxuICAgICAgJ0dldENhY2hlU3RhdHMnLFxyXG4gICAgICB7IGNhY2hlX3R5cGU6IGNhY2hlVHlwZVRvUHJvdG8oY2FjaGVUeXBlKSB9LFxyXG4gICAgICBtZXRhZGF0YVxyXG4gICAgKTtcclxuXHJcbiAgICByZXR1cm4ge1xyXG4gICAgICBhc3RTdGF0czogcmVzcG9uc2UuYXN0X3N0YXRzXHJcbiAgICAgICAgPyB7XHJcbiAgICAgICAgICAgIGhpdHM6IHBhcnNlSW50KHJlc3BvbnNlLmFzdF9zdGF0cy5oaXRzIHx8ICcwJywgMTApLFxyXG4gICAgICAgICAgICBtaXNzZXM6IHBhcnNlSW50KHJlc3BvbnNlLmFzdF9zdGF0cy5taXNzZXMgfHwgJzAnLCAxMCksXHJcbiAgICAgICAgICAgIGV2aWN0aW9uczogcGFyc2VJbnQocmVzcG9uc2UuYXN0X3N0YXRzLmV2aWN0aW9ucyB8fCAnMCcsIDEwKSxcclxuICAgICAgICAgICAgZW50cmllczogcmVzcG9uc2UuYXN0X3N0YXRzLmVudHJpZXMgfHwgMCxcclxuICAgICAgICAgICAgaGl0UmF0ZTogcmVzcG9uc2UuYXN0X3N0YXRzLmhpdF9yYXRlIHx8IDAsXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgOiB1bmRlZmluZWQsXHJcbiAgICAgIHBsYW5TdGF0czogcmVzcG9uc2UucGxhbl9zdGF0c1xyXG4gICAgICAgID8ge1xyXG4gICAgICAgICAgICBzaXplOiByZXNwb25zZS5wbGFuX3N0YXRzLnNpemUgfHwgMCxcclxuICAgICAgICAgICAgY2FwYWNpdHk6IHJlc3BvbnNlLnBsYW5fc3RhdHMuY2FwYWNpdHkgfHwgMCxcclxuICAgICAgICAgICAgaGl0czogcGFyc2VJbnQocmVzcG9uc2UucGxhbl9zdGF0cy5oaXRzIHx8ICcwJywgMTApLFxyXG4gICAgICAgICAgICBtaXNzZXM6IHBhcnNlSW50KHJlc3BvbnNlLnBsYW5fc3RhdHMubWlzc2VzIHx8ICcwJywgMTApLFxyXG4gICAgICAgICAgICBoaXRSYXRlOiByZXNwb25zZS5wbGFuX3N0YXRzLmhpdF9yYXRlIHx8IDAsXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgOiB1bmRlZmluZWQsXHJcbiAgICB9O1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQ2xlYXIgdGhlIHNwZWNpZmllZCBjYWNoZS5cclxuICAgKi9cclxuICBhc3luYyBjbGVhckNhY2hlKGNhY2hlVHlwZTogQ2FjaGVUeXBlID0gQ2FjaGVUeXBlLkFMTCk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgY29uc3QgbWV0YWRhdGEgPSB0aGlzLmN0eC5nZXRTZXNzaW9uTWV0YWRhdGEoKTtcclxuICAgIGF3YWl0IHByb21pc2lmeUNhbGwoXHJcbiAgICAgIHRoaXMuY3R4LmNsaWVudHMuYWRtaW5TZXJ2aWNlLFxyXG4gICAgICAnQ2xlYXJDYWNoZScsXHJcbiAgICAgIHsgY2FjaGVfdHlwZTogY2FjaGVUeXBlVG9Qcm90byhjYWNoZVR5cGUpIH0sXHJcbiAgICAgIG1ldGFkYXRhXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmV0dXJuIGRhdGFiYXNlIHN0YXRpc3RpY3MuXHJcbiAgICovXHJcbiAgYXN5bmMgZ2V0U3RhdGlzdGljcyhncmFwaE5hbWU6IHN0cmluZyA9ICcnKTogUHJvbWlzZTxTdGF0aXN0aWNzPiB7XHJcbiAgICBjb25zdCBtZXRhZGF0YSA9IHRoaXMuY3R4LmdldFNlc3Npb25NZXRhZGF0YSgpO1xyXG4gICAgY29uc3QgcmVzcG9uc2U6IGFueSA9IGF3YWl0IHByb21pc2lmeUNhbGwoXHJcbiAgICAgIHRoaXMuY3R4LmNsaWVudHMuYWRtaW5TZXJ2aWNlLFxyXG4gICAgICAnR2V0U3RhdGlzdGljcycsXHJcbiAgICAgIHsgZ3JhcGhfbmFtZTogZ3JhcGhOYW1lIH0sXHJcbiAgICAgIG1ldGFkYXRhXHJcbiAgICApO1xyXG5cclxuICAgIGNvbnN0IGxhYmVsQ291bnRzOiBSZWNvcmQ8c3RyaW5nLCBudW1iZXI+ID0ge307XHJcbiAgICBjb25zdCBlZGdlTGFiZWxDb3VudHM6IFJlY29yZDxzdHJpbmcsIG51bWJlcj4gPSB7fTtcclxuXHJcbiAgICBpZiAocmVzcG9uc2UubGFiZWxfY291bnRzKSB7XHJcbiAgICAgIGZvciAoY29uc3QgW2tleSwgdmFsdWVdIG9mIE9iamVjdC5lbnRyaWVzKHJlc3BvbnNlLmxhYmVsX2NvdW50cykpIHtcclxuICAgICAgICBsYWJlbENvdW50c1trZXldID0gcGFyc2VJbnQodmFsdWUgYXMgc3RyaW5nLCAxMCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBpZiAocmVzcG9uc2UuZWRnZV9sYWJlbF9jb3VudHMpIHtcclxuICAgICAgZm9yIChjb25zdCBba2V5LCB2YWx1ZV0gb2YgT2JqZWN0LmVudHJpZXMocmVzcG9uc2UuZWRnZV9sYWJlbF9jb3VudHMpKSB7XHJcbiAgICAgICAgZWRnZUxhYmVsQ291bnRzW2tleV0gPSBwYXJzZUludCh2YWx1ZSBhcyBzdHJpbmcsIDEwKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiB7XHJcbiAgICAgIG5vZGVDb3VudDogcGFyc2VJbnQocmVzcG9uc2Uubm9kZV9jb3VudCB8fCAnMCcsIDEwKSxcclxuICAgICAgZWRnZUNvdW50OiBwYXJzZUludChyZXNwb25zZS5lZGdlX2NvdW50IHx8ICcwJywgMTApLFxyXG4gICAgICBsYWJlbENvdW50cyxcclxuICAgICAgZWRnZUxhYmVsQ291bnRzLFxyXG4gICAgfTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEludmFsaWRhdGUgdGhlIFJCQUMgcGVybWlzc2lvbiBjYWNoZS5cclxuICAgKi9cclxuICBhc3luYyBpbnZhbGlkYXRlUGVybWlzc2lvbkNhY2hlKHVzZXJuYW1lOiBzdHJpbmcgPSAnJyk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgY29uc3QgbWV0YWRhdGEgPSB0aGlzLmN0eC5nZXRTZXNzaW9uTWV0YWRhdGEoKTtcclxuICAgIGF3YWl0IHByb21pc2lmeUNhbGwoXHJcbiAgICAgIHRoaXMuY3R4LmNsaWVudHMuYWRtaW5TZXJ2aWNlLFxyXG4gICAgICAnSW52YWxpZGF0ZVBlcm1pc3Npb25DYWNoZScsXHJcbiAgICAgIHsgdXNlcm5hbWUgfSxcclxuICAgICAgbWV0YWRhdGFcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBUcmlnZ2VyIG1hbnVhbCBjb21wYWN0aW9uIG9mIHRoZSBkYXRhYmFzZSBzdG9yYWdlLlxyXG4gICAqL1xyXG4gIGFzeW5jIGNvbXBhY3QoKTogUHJvbWlzZTxDb21wYWN0UmVzdWx0PiB7XHJcbiAgICBjb25zdCBtZXRhZGF0YSA9IHRoaXMuY3R4LmdldFNlc3Npb25NZXRhZGF0YSgpO1xyXG4gICAgY29uc3QgcmVzcG9uc2U6IGFueSA9IGF3YWl0IHByb21pc2lmeUNhbGwoXHJcbiAgICAgIHRoaXMuY3R4LmNsaWVudHMuYWRtaW5TZXJ2aWNlLFxyXG4gICAgICAnQ29tcGFjdCcsXHJcbiAgICAgIHt9LFxyXG4gICAgICBtZXRhZGF0YVxyXG4gICAgKTtcclxuICAgIHJldHVybiB7XHJcbiAgICAgIHN1Y2Nlc3M6IHJlc3BvbnNlLnN1Y2Nlc3MgfHwgZmFsc2UsXHJcbiAgICAgIG1lc3NhZ2U6IHJlc3BvbnNlLm1lc3NhZ2UgfHwgJycsXHJcbiAgICB9O1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogV2FpdCBmb3IgdGhlIGNvbXB1dGluZyBlbmdpbmUgdG9wb2xvZ3kgdG8gYmUgcmVhZHkuXHJcbiAgICovXHJcbiAgYXN5bmMgd2FpdEZvckNvbXB1dGVUb3BvbG9neShncmFwaE5hbWU6IHN0cmluZywgdGltZW91dE1zOiBudW1iZXIgPSAwKTogUHJvbWlzZTxDb21wdXRlVG9wb2xvZ3lSZXN1bHQ+IHtcclxuICAgIGNvbnN0IG1ldGFkYXRhID0gdGhpcy5jdHguZ2V0U2Vzc2lvbk1ldGFkYXRhKCk7XHJcbiAgICBjb25zdCByZXNwb25zZTogYW55ID0gYXdhaXQgcHJvbWlzaWZ5Q2FsbChcclxuICAgICAgdGhpcy5jdHguY2xpZW50cy5hZG1pblNlcnZpY2UsXHJcbiAgICAgICdXYWl0Rm9yQ29tcHV0ZVRvcG9sb2d5JyxcclxuICAgICAgeyBncmFwaF9uYW1lOiBncmFwaE5hbWUsIHRpbWVvdXRfbXM6IHRpbWVvdXRNcyB9LFxyXG4gICAgICBtZXRhZGF0YVxyXG4gICAgKTtcclxuICAgIHJldHVybiB7XHJcbiAgICAgIHJlYWR5OiByZXNwb25zZS5yZWFkeSB8fCBmYWxzZSxcclxuICAgICAgbWVzc2FnZTogcmVzcG9uc2UubWVzc2FnZSB8fCAnJyxcclxuICAgIH07XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Bulk import service handles bulk import session management.
|
|
3
|
+
*/
|
|
4
|
+
import { ServiceContext } from './service-context';
|
|
5
|
+
import { BulkImportOptions, BulkImportSession, CheckpointResult, EndBulkImportResult, AbortBulkImportResult, BulkImportStatus } from '../types';
|
|
6
|
+
/**
|
|
7
|
+
* Bulk import service for managing bulk import sessions.
|
|
8
|
+
*/
|
|
9
|
+
export declare class BulkImportService {
|
|
10
|
+
private ctx;
|
|
11
|
+
constructor(ctx: ServiceContext);
|
|
12
|
+
/**
|
|
13
|
+
* Start a bulk import session for optimized high-throughput inserts.
|
|
14
|
+
* @param graphName Target graph name
|
|
15
|
+
* @param options Optional bulk import configuration
|
|
16
|
+
*/
|
|
17
|
+
startBulkImport(graphName: string, options?: BulkImportOptions): Promise<BulkImportSession>;
|
|
18
|
+
/** @deprecated Checkpoint is no longer needed. */
|
|
19
|
+
checkpoint(sessionId: string): Promise<CheckpointResult>;
|
|
20
|
+
/**
|
|
21
|
+
* End the bulk import session with a final checkpoint.
|
|
22
|
+
* @param sessionId Bulk import session ID
|
|
23
|
+
*/
|
|
24
|
+
endBulkImport(sessionId: string): Promise<EndBulkImportResult>;
|
|
25
|
+
/**
|
|
26
|
+
* Cancel the bulk import session without final sync.
|
|
27
|
+
* @param sessionId Bulk import session ID
|
|
28
|
+
*/
|
|
29
|
+
abortBulkImport(sessionId: string): Promise<AbortBulkImportResult>;
|
|
30
|
+
/**
|
|
31
|
+
* Return the current status of a bulk import session.
|
|
32
|
+
* @param sessionId Bulk import session ID
|
|
33
|
+
*/
|
|
34
|
+
getBulkImportStatus(sessionId: string): Promise<BulkImportStatus>;
|
|
35
|
+
}
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Bulk import service handles bulk import session management.
|
|
4
|
+
*/
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.BulkImportService = void 0;
|
|
7
|
+
const services_1 = require("../services");
|
|
8
|
+
/**
|
|
9
|
+
* Bulk import service for managing bulk import sessions.
|
|
10
|
+
*/
|
|
11
|
+
class BulkImportService {
|
|
12
|
+
ctx;
|
|
13
|
+
constructor(ctx) {
|
|
14
|
+
this.ctx = ctx;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Start a bulk import session for optimized high-throughput inserts.
|
|
18
|
+
* @param graphName Target graph name
|
|
19
|
+
* @param options Optional bulk import configuration
|
|
20
|
+
*/
|
|
21
|
+
async startBulkImport(graphName, options) {
|
|
22
|
+
const request = {
|
|
23
|
+
graph_name: graphName,
|
|
24
|
+
};
|
|
25
|
+
if (options) {
|
|
26
|
+
if (options.checkpointEvery !== undefined) {
|
|
27
|
+
request.checkpoint_every = options.checkpointEvery.toString();
|
|
28
|
+
}
|
|
29
|
+
if (options.estimatedNodes !== undefined) {
|
|
30
|
+
request.estimated_nodes = options.estimatedNodes.toString();
|
|
31
|
+
}
|
|
32
|
+
if (options.estimatedEdges !== undefined) {
|
|
33
|
+
request.estimated_edges = options.estimatedEdges.toString();
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
const metadata = this.ctx.getSessionMetadata();
|
|
37
|
+
const response = await (0, services_1.promisifyCall)(this.ctx.clients.bulkImportService, 'StartBulkImport', request, metadata);
|
|
38
|
+
if (!response.success) {
|
|
39
|
+
throw new Error(`Start bulk import failed: ${response.message || 'unknown error'}`);
|
|
40
|
+
}
|
|
41
|
+
return {
|
|
42
|
+
success: true,
|
|
43
|
+
sessionId: response.session_id || '',
|
|
44
|
+
message: response.message || '',
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
/** @deprecated Checkpoint is no longer needed. */
|
|
48
|
+
async checkpoint(sessionId) {
|
|
49
|
+
return {
|
|
50
|
+
success: true,
|
|
51
|
+
recordCount: 0,
|
|
52
|
+
lastCheckpointCount: 0,
|
|
53
|
+
message: 'Checkpoint has been removed; use endBulkImport which performs a final flush',
|
|
54
|
+
};
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* End the bulk import session with a final checkpoint.
|
|
58
|
+
* @param sessionId Bulk import session ID
|
|
59
|
+
*/
|
|
60
|
+
async endBulkImport(sessionId) {
|
|
61
|
+
const request = {
|
|
62
|
+
session_id: sessionId,
|
|
63
|
+
};
|
|
64
|
+
const metadata = this.ctx.getSessionMetadata();
|
|
65
|
+
const response = await (0, services_1.promisifyCall)(this.ctx.clients.bulkImportService, 'EndBulkImport', request, metadata);
|
|
66
|
+
return {
|
|
67
|
+
success: response.success || false,
|
|
68
|
+
totalRecords: parseInt(response.total_records || '0', 10),
|
|
69
|
+
message: response.message || '',
|
|
70
|
+
};
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Cancel the bulk import session without final sync.
|
|
74
|
+
* @param sessionId Bulk import session ID
|
|
75
|
+
*/
|
|
76
|
+
async abortBulkImport(sessionId) {
|
|
77
|
+
const request = {
|
|
78
|
+
session_id: sessionId,
|
|
79
|
+
};
|
|
80
|
+
const metadata = this.ctx.getSessionMetadata();
|
|
81
|
+
const response = await (0, services_1.promisifyCall)(this.ctx.clients.bulkImportService, 'AbortBulkImport', request, metadata);
|
|
82
|
+
return {
|
|
83
|
+
success: response.success || false,
|
|
84
|
+
message: response.message || '',
|
|
85
|
+
};
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* Return the current status of a bulk import session.
|
|
89
|
+
* @param sessionId Bulk import session ID
|
|
90
|
+
*/
|
|
91
|
+
async getBulkImportStatus(sessionId) {
|
|
92
|
+
const request = {
|
|
93
|
+
session_id: sessionId,
|
|
94
|
+
};
|
|
95
|
+
const metadata = this.ctx.getSessionMetadata();
|
|
96
|
+
const response = await (0, services_1.promisifyCall)(this.ctx.clients.bulkImportService, 'GetBulkImportStatus', request, metadata);
|
|
97
|
+
return {
|
|
98
|
+
isActive: response.is_active || false,
|
|
99
|
+
graphName: response.graph_name || '',
|
|
100
|
+
recordCount: parseInt(response.record_count || '0', 10),
|
|
101
|
+
lastCheckpointCount: parseInt(response.last_checkpoint_count || '0', 10),
|
|
102
|
+
createdAt: parseInt(response.created_at || '0', 10),
|
|
103
|
+
lastActivity: parseInt(response.last_activity || '0', 10),
|
|
104
|
+
};
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
exports.BulkImportService = BulkImportService;
|
|
108
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVsay1pbXBvcnQtc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zZXJ2aWNlcy9idWxrLWltcG9ydC1zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7R0FFRzs7O0FBV0gsMENBQTRDO0FBRTVDOztHQUVHO0FBQ0gsTUFBYSxpQkFBaUI7SUFDUjtJQUFwQixZQUFvQixHQUFtQjtRQUFuQixRQUFHLEdBQUgsR0FBRyxDQUFnQjtJQUFHLENBQUM7SUFFM0M7Ozs7T0FJRztJQUNILEtBQUssQ0FBQyxlQUFlLENBQUMsU0FBaUIsRUFBRSxPQUEyQjtRQUNsRSxNQUFNLE9BQU8sR0FBUTtZQUNuQixVQUFVLEVBQUUsU0FBUztTQUN0QixDQUFDO1FBRUYsSUFBSSxPQUFPLEVBQUUsQ0FBQztZQUNaLElBQUksT0FBTyxDQUFDLGVBQWUsS0FBSyxTQUFTLEVBQUUsQ0FBQztnQkFDMUMsT0FBTyxDQUFDLGdCQUFnQixHQUFHLE9BQU8sQ0FBQyxlQUFlLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDaEUsQ0FBQztZQUNELElBQUksT0FBTyxDQUFDLGNBQWMsS0FBSyxTQUFTLEVBQUUsQ0FBQztnQkFDekMsT0FBTyxDQUFDLGVBQWUsR0FBRyxPQUFPLENBQUMsY0FBYyxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQzlELENBQUM7WUFDRCxJQUFJLE9BQU8sQ0FBQyxjQUFjLEtBQUssU0FBUyxFQUFFLENBQUM7Z0JBQ3pDLE9BQU8sQ0FBQyxlQUFlLEdBQUcsT0FBTyxDQUFDLGNBQWMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUM5RCxDQUFDO1FBQ0gsQ0FBQztRQUVELE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztRQUMvQyxNQUFNLFFBQVEsR0FBUSxNQUFNLElBQUEsd0JBQWEsRUFDdkMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsaUJBQWlCLEVBQ2xDLGlC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eEUsU0FBUyxFQUFFLFFBQVEsQ0FBQyxRQUFRLENBQUMsVUFBVSxJQUFJLEdBQUcsRUFBRSxFQUFFLENBQUM7WUFDbkQsWUFBWSxFQUFFLFFBQVEsQ0FBQyxRQUFRLENBQUMsYUFBYSxJQUFJLEdBQUcsRUFBRSxFQUFFLENBQUM7U0FDMUQsQ0FBQztJQUNKLENBQUM7Q0FDRjtBQS9IRCw4Q0ErSEMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcclxuICogQnVsayBpbXBvcnQgc2VydmljZSBoYW5kbGVzIGJ1bGsgaW1wb3J0IHNlc3Npb24gbWFuYWdlbWVudC5cclxuICovXHJcblxyXG5pbXBvcnQgeyBTZXJ2aWNlQ29udGV4dCB9IGZyb20gJy4vc2VydmljZS1jb250ZXh0JztcclxuaW1wb3J0IHtcclxuICBCdWxrSW1wb3J0T3B0aW9ucyxcclxuICBCdWxrSW1wb3J0U2Vzc2lvbixcclxuICBDaGVja3BvaW50UmVzdWx0LFxyXG4gIEVuZEJ1bGtJbXBvcnRSZXN1bHQsXHJcbiAgQWJvcnRCdWxrSW1wb3J0UmVzdWx0LFxyXG4gIEJ1bGtJbXBvcnRTdGF0dXMsXHJcbn0gZnJvbSAnLi4vdHlwZXMnO1xyXG5pbXBvcnQgeyBwcm9taXNpZnlDYWxsIH0gZnJvbSAnLi4vc2VydmljZXMnO1xyXG5cclxuLyoqXHJcbiAqIEJ1bGsgaW1wb3J0IHNlcnZpY2UgZm9yIG1hbmFnaW5nIGJ1bGsgaW1wb3J0IHNlc3Npb25zLlxyXG4gKi9cclxuZXhwb3J0IGNsYXNzIEJ1bGtJbXBvcnRTZXJ2aWNlIHtcclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGN0eDogU2VydmljZUNvbnRleHQpIHt9XHJcblxyXG4gIC8qKlxyXG4gICAqIFN0YXJ0IGEgYnVsayBpbXBvcnQgc2Vzc2lvbiBmb3Igb3B0aW1pemVkIGhpZ2gtdGhyb3VnaHB1dCBpbnNlcnRzLlxyXG4gICAqIEBwYXJhbSBncmFwaE5hbWUgVGFyZ2V0IGdyYXBoIG5hbWVcclxuICAgKiBAcGFyYW0gb3B0aW9ucyBPcHRpb25hbCBidWxrIGltcG9ydCBjb25maWd1cmF0aW9uXHJcbiAgICovXHJcbiAgYXN5bmMgc3RhcnRCdWxrSW1wb3J0KGdyYXBoTmFtZTogc3RyaW5nLCBvcHRpb25zPzogQnVsa0ltcG9ydE9wdGlvbnMpOiBQcm9taXNlPEJ1bGtJbXBvcnRTZXNzaW9uPiB7XHJcbiAgICBjb25zdCByZXF1ZXN0OiBhbnkgPSB7XHJcbiAgICAgIGdyYXBoX25hbWU6IGdyYXBoTmFtZSxcclxuICAgIH07XHJcblxyXG4gICAgaWYgKG9wdGlvbnMpIHtcclxuICAgICAgaWYgKG9wdGlvbnMuY2hlY2twb2ludEV2ZXJ5ICE9PSB1bmRlZmluZWQpIHtcclxuICAgICAgICByZXF1ZXN0LmNoZWNrcG9pbnRfZXZlcnkgPSBvcHRpb25zLmNoZWNrcG9pbnRFdmVyeS50b1N0cmluZygpO1xyXG4gICAgICB9XHJcbiAgICAgIGlmIChvcHRpb25zLmVzdGltYXRlZE5vZGVzICE9PSB1bmRlZmluZWQpIHtcclxuICAgICAgICByZXF1ZXN0LmVzdGltYXRlZF9ub2RlcyA9IG9wdGlvbnMuZXN0aW1hdGVkTm9kZXMudG9TdHJpbmcoKTtcclxuICAgICAgfVxyXG4gICAgICBpZiAob3B0aW9ucy5lc3RpbWF0ZWRFZGdlcyAhPT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgcmVxdWVzdC5lc3RpbWF0ZWRfZWRnZXMgPSBvcHRpb25zLmVzdGltYXRlZEVkZ2VzLnRvU3RyaW5nKCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBtZXRhZGF0YSA9IHRoaXMuY3R4LmdldFNlc3Npb25NZXRhZGF0YSgpO1xyXG4gICAgY29uc3QgcmVzcG9uc2U6IGFueSA9IGF3YWl0IHByb21pc2lmeUNhbGwoXHJcbiAgICAgIHRoaXMuY3R4LmNsaWVudHMuYnVsa0ltcG9ydFNlcnZpY2UsXHJcbiAgICAgICdTdGFydEJ1bGtJbXBvcnQnLFxyXG4gICAgICByZXF1ZXN0LFxyXG4gICAgICBtZXRhZGF0YVxyXG4gICAgKTtcclxuXHJcbiAgICBpZiAoIXJlc3BvbnNlLnN1Y2Nlc3MpIHtcclxuICAgICAgdGhyb3cgbmV3IEVycm9yKGBTdGFydCBidWxrIGltcG9ydCBmYWlsZWQ6ICR7cmVzcG9uc2UubWVzc2FnZSB8fCAndW5rbm93biBlcnJvcid9YCk7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHtcclxuICAgICAgc3VjY2VzczogdHJ1ZSxcclxuICAgICAgc2Vzc2lvbklkOiByZXNwb25zZS5zZXNzaW9uX2lkIHx8ICcnLFxyXG4gICAgICBtZXNzYWdlOiByZXNwb25zZS5tZXNzYWdlIHx8ICcnLFxyXG4gICAgfTtcclxuICB9XHJcblxyXG4gIC8qKiBAZGVwcmVjYXRlZCBDaGVja3BvaW50IGlzIG5vIGxvbmdlciBuZWVkZWQuICovXHJcbiAgYXN5bmMgY2hlY2twb2ludChzZXNzaW9uSWQ6IHN0cmluZyk6IFByb21pc2U8Q2hlY2twb2ludFJlc3VsdD4ge1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgc3VjY2VzczogdHJ1ZSxcclxuICAgICAgcmVjb3JkQ291bnQ6IDAsXHJcbiAgICAgIGxhc3RDaGVja3BvaW50Q291bnQ6IDAsXHJcbiAgICAgIG1lc3NhZ2U6ICdDaGVja3BvaW50IGhhcyBiZWVuIHJlbW92ZWQ7IHVzZSBlbmRCdWxrSW1wb3J0IHdoaWNoIHBlcmZvcm1zIGEgZmluYWwgZmx1c2gnLFxyXG4gICAgfTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEVuZCB0aGUgYnVsayBpbXBvcnQgc2Vzc2lvbiB3aXRoIGEgZmluYWwgY2hlY2twb2ludC5cclxuICAgKiBAcGFyYW0gc2Vzc2lvbklkIEJ1bGsgaW1wb3J0IHNlc3Npb24gSURcclxuICAgKi9cclxuICBhc3luYyBlbmRCdWxrSW1wb3J0KHNlc3Npb25JZDogc3RyaW5nKTogUHJvbWlzZTxFbmRCdWxrSW1wb3J0UmVzdWx0PiB7XHJcbiAgICBjb25zdCByZXF1ZXN0ID0ge1xyXG4gICAgICBzZXNzaW9uX2lkOiBzZXNzaW9uSWQsXHJcbiAgICB9O1xyXG5cclxuICAgIGNvbnN0IG1ldGFkYXRhID0gdGhpcy5jdHguZ2V0U2Vzc2lvbk1ldGFkYXRhKCk7XHJcbiAgICBjb25zdCByZXNwb25zZTogYW55ID0gYXdhaXQgcHJvbWlzaWZ5Q2FsbChcclxuICAgICAgdGhpcy5jdHguY2xpZW50cy5idWxrSW1wb3J0U2VydmljZSxcclxuICAgICAgJ0VuZEJ1bGtJbXBvcnQnLFxyXG4gICAgICByZXF1ZXN0LFxyXG4gICAgICBtZXRhZGF0YVxyXG4gICAgKTtcclxuXHJcbiAgICByZXR1cm4ge1xyXG4gICAgICBzdWNjZXNzOiByZXNwb25zZS5zdWNjZXNzIHx8IGZhbHNlLFxyXG4gICAgICB0b3RhbFJlY29yZHM6IHBhcnNlSW50KHJlc3BvbnNlLnRvdGFsX3JlY29yZHMgfHwgJzAnLCAxMCksXHJcbiAgICAgIG1lc3NhZ2U6IHJlc3BvbnNlLm1lc3NhZ2UgfHwgJycsXHJcbiAgICB9O1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQ2FuY2VsIHRoZSBidWxrIGltcG9ydCBzZXNzaW9uIHdpdGhvdXQgZmluYWwgc3luYy5cclxuICAgKiBAcGFyYW0gc2Vzc2lvbklkIEJ1bGsgaW1wb3J0IHNlc3Npb24gSURcclxuICAgKi9cclxuICBhc3luYyBhYm9ydEJ1bGtJbXBvcnQoc2Vzc2lvbklkOiBzdHJpbmcpOiBQcm9taXNlPEFib3J0QnVsa0ltcG9ydFJlc3VsdD4ge1xyXG4gICAgY29uc3QgcmVxdWVzdCA9IHtcclxuICAgICAgc2Vzc2lvbl9pZDogc2Vzc2lvbklkLFxyXG4gICAgfTtcclxuXHJcbiAgICBjb25zdCBtZXRhZGF0YSA9IHRoaXMuY3R4LmdldFNlc3Npb25NZXRhZGF0YSgpO1xyXG4gICAgY29uc3QgcmVzcG9uc2U6IGFueSA9IGF3YWl0IHByb21pc2lmeUNhbGwoXHJcbiAgICAgIHRoaXMuY3R4LmNsaWVudHMuYnVsa0ltcG9ydFNlcnZpY2UsXHJcbiAgICAgICdBYm9ydEJ1bGtJbXBvcnQnLFxyXG4gICAgICByZXF1ZXN0LFxyXG4gICAgICBtZXRhZGF0YVxyXG4gICAgKTtcclxuXHJcbiAgICByZXR1cm4ge1xyXG4gICAgICBzdWNjZXNzOiByZXNwb25zZS5zdWNjZXNzIHx8IGZhbHNlLFxyXG4gICAgICBtZXNzYWdlOiByZXNwb25zZS5tZXNzYWdlIHx8ICcnLFxyXG4gICAgfTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJldHVybiB0aGUgY3VycmVudCBzdGF0dXMgb2YgYSBidWxrIGltcG9ydCBzZXNzaW9uLlxyXG4gICAqIEBwYXJhbSBzZXNzaW9uSWQgQnVsayBpbXBvcnQgc2Vzc2lvbiBJRFxyXG4gICAqL1xyXG4gIGFzeW5jIGdldEJ1bGtJbXBvcnRTdGF0dXMoc2Vzc2lvbklkOiBzdHJpbmcpOiBQcm9taXNlPEJ1bGtJbXBvcnRTdGF0dXM+IHtcclxuICAgIGNvbnN0IHJlcXVlc3QgPSB7XHJcbiAgICAgIHNlc3Npb25faWQ6IHNlc3Npb25JZCxcclxuICAgIH07XHJcblxyXG4gICAgY29uc3QgbWV0YWRhdGEgPSB0aGlzLmN0eC5nZXRTZXNzaW9uTWV0YWRhdGEoKTtcclxuICAgIGNvbnN0IHJlc3BvbnNlOiBhbnkgPSBhd2FpdCBwcm9taXNpZnlDYWxsKFxyXG4gICAgICB0aGlzLmN0eC5jbGllbnRzLmJ1bGtJbXBvcnRTZXJ2aWNlLFxyXG4gICAgICAnR2V0QnVsa0ltcG9ydFN0YXR1cycsXHJcbiAgICAgIHJlcXVlc3QsXHJcbiAgICAgIG1ldGFkYXRhXHJcbiAgICApO1xyXG5cclxuICAgIHJldHVybiB7XHJcbiAgICAgIGlzQWN0aXZlOiByZXNwb25zZS5pc19hY3RpdmUgfHwgZmFsc2UsXHJcbiAgICAgIGdyYXBoTmFtZTogcmVzcG9uc2UuZ3JhcGhfbmFtZSB8fCAnJyxcclxuICAgICAgcmVjb3JkQ291bnQ6IHBhcnNlSW50KHJlc3BvbnNlLnJlY29yZF9jb3VudCB8fCAnMCcsIDEwKSxcclxuICAgICAgbGFzdENoZWNrcG9pbnRDb3VudDogcGFyc2VJbnQocmVzcG9uc2UubGFzdF9jaGVja3BvaW50X2NvdW50IHx8ICcwJywgMTApLFxyXG4gICAgICBjcmVhdGVkQXQ6IHBhcnNlSW50KHJlc3BvbnNlLmNyZWF0ZWRfYXQgfHwgJzAnLCAxMCksXHJcbiAgICAgIGxhc3RBY3Rpdml0eTogcGFyc2VJbnQocmVzcG9uc2UubGFzdF9hY3Rpdml0eSB8fCAnMCcsIDEwKSxcclxuICAgIH07XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Type conversion utilities between gRPC proto types and JavaScript types.
|
|
3
|
+
*/
|
|
4
|
+
import { Response } from '../response';
|
|
5
|
+
import { GraphType, HealthStatus, CacheType, GraphInfo } from '../types';
|
|
6
|
+
import { GqldbConfig } from '../config';
|
|
7
|
+
import { Session } from '../session';
|
|
8
|
+
import { QueryConfig } from '../client';
|
|
9
|
+
/**
|
|
10
|
+
* Build a GQL request from config.
|
|
11
|
+
*/
|
|
12
|
+
export declare function buildGqlRequest(query: string, session: Session | null, config: GqldbConfig, queryConfig?: QueryConfig): any;
|
|
13
|
+
/**
|
|
14
|
+
* Build parameters array for gRPC.
|
|
15
|
+
*/
|
|
16
|
+
export declare function buildParameters(params?: Record<string, any>): any[];
|
|
17
|
+
/**
|
|
18
|
+
* Convert gRPC response to Response object.
|
|
19
|
+
*/
|
|
20
|
+
export declare function convertGqlResponse(grpcResponse: any): Response;
|
|
21
|
+
/**
|
|
22
|
+
* Convert gRPC TypedValue to JS value.
|
|
23
|
+
* Uses the same decoding logic as typedValueToJS for consistency.
|
|
24
|
+
*/
|
|
25
|
+
export declare function convertTypedValue(tv: any): any;
|
|
26
|
+
/**
|
|
27
|
+
* Convert proto properties map to JS object.
|
|
28
|
+
*/
|
|
29
|
+
export declare function convertProtoProperties(protoProps: Record<string, any>): Record<string, any>;
|
|
30
|
+
/**
|
|
31
|
+
* Convert GraphInfo from proto to JS object.
|
|
32
|
+
*/
|
|
33
|
+
export declare function convertGraphInfo(g: any): GraphInfo;
|
|
34
|
+
/**
|
|
35
|
+
* Map GraphType enum to proto string.
|
|
36
|
+
*/
|
|
37
|
+
export declare function graphTypeToProto(graphType: GraphType): string;
|
|
38
|
+
/**
|
|
39
|
+
* Map proto string to GraphType enum.
|
|
40
|
+
*/
|
|
41
|
+
export declare function protoToGraphType(proto: string): GraphType;
|
|
42
|
+
/**
|
|
43
|
+
* Map proto HealthStatus to enum.
|
|
44
|
+
*/
|
|
45
|
+
export declare function protoToHealthStatus(proto: string): HealthStatus;
|
|
46
|
+
/**
|
|
47
|
+
* Map CacheType to proto string.
|
|
48
|
+
*/
|
|
49
|
+
export declare function cacheTypeToProto(cacheType: CacheType): string;
|
|
50
|
+
/**
|
|
51
|
+
* Convert NodeData to proto format.
|
|
52
|
+
*/
|
|
53
|
+
export declare function nodeDataToProto(node: any): any;
|
|
54
|
+
/**
|
|
55
|
+
* Convert EdgeData to proto format.
|
|
56
|
+
*/
|
|
57
|
+
export declare function edgeDataToProto(edge: any): any;
|