@ultipa-graph/ultipa-driver 5.1.4-s5.1 → 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 -5
- package/dist/index.js +88 -39
- 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 -5
- package/dist/types/index.js +36 -37
- 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 +40 -53
- package/dist/connection/connection.final.d.ts +0 -14
- package/dist/connection/connection.final.js +0 -96
- package/dist/connection/connection.final.js.map +0 -1
- package/dist/connection/connection.pool.d.ts +0 -21
- package/dist/connection/connection.pool.js +0 -103
- package/dist/connection/connection.pool.js.map +0 -1
- package/dist/connection/extra/base.extra.d.ts +0 -18
- package/dist/connection/extra/base.extra.js +0 -111
- package/dist/connection/extra/base.extra.js.map +0 -1
- package/dist/connection/extra/batch.insert.extra.d.ts +0 -58
- package/dist/connection/extra/batch.insert.extra.js +0 -353
- package/dist/connection/extra/batch.insert.extra.js.map +0 -1
- package/dist/connection/extra/connection.base.d.ts +0 -112
- package/dist/connection/extra/connection.base.js +0 -528
- package/dist/connection/extra/connection.base.js.map +0 -1
- package/dist/connection/extra/connection.d.ts +0 -17
- package/dist/connection/extra/connection.js +0 -44
- package/dist/connection/extra/connection.js.map +0 -1
- package/dist/connection/extra/graph.extra.d.ts +0 -54
- package/dist/connection/extra/graph.extra.js +0 -151
- package/dist/connection/extra/graph.extra.js.map +0 -1
- package/dist/connection/extra/hdc.extra.d.ts +0 -89
- package/dist/connection/extra/hdc.extra.js +0 -322
- package/dist/connection/extra/hdc.extra.js.map +0 -1
- package/dist/connection/extra/index.extra.d.ts +0 -102
- package/dist/connection/extra/index.extra.js +0 -210
- package/dist/connection/extra/index.extra.js.map +0 -1
- package/dist/connection/extra/job.extra.d.ts +0 -32
- package/dist/connection/extra/job.extra.js +0 -122
- package/dist/connection/extra/job.extra.js.map +0 -1
- package/dist/connection/extra/policy.extra.d.ts +0 -32
- package/dist/connection/extra/policy.extra.js +0 -114
- package/dist/connection/extra/policy.extra.js.map +0 -1
- package/dist/connection/extra/privilege.extra.d.ts +0 -8
- package/dist/connection/extra/privilege.extra.js +0 -20
- package/dist/connection/extra/privilege.extra.js.map +0 -1
- package/dist/connection/extra/property.extra.d.ts +0 -66
- package/dist/connection/extra/property.extra.js +0 -190
- package/dist/connection/extra/property.extra.js.map +0 -1
- package/dist/connection/extra/schema.extra.d.ts +0 -108
- package/dist/connection/extra/schema.extra.js +0 -253
- package/dist/connection/extra/schema.extra.js.map +0 -1
- package/dist/connection/extra/user.extra.d.ts +0 -28
- package/dist/connection/extra/user.extra.js +0 -91
- package/dist/connection/extra/user.extra.js.map +0 -1
- package/dist/connection/index.d.ts +0 -5
- package/dist/connection/index.js +0 -13
- package/dist/connection/index.js.map +0 -1
- package/dist/connection/network.manager.d.ts +0 -28
- package/dist/connection/network.manager.js +0 -179
- package/dist/connection/network.manager.js.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/printers/alias.d.ts +0 -2
- package/dist/printers/alias.js +0 -39
- package/dist/printers/alias.js.map +0 -1
- package/dist/printers/any.d.ts +0 -2
- package/dist/printers/any.js +0 -63
- package/dist/printers/any.js.map +0 -1
- package/dist/printers/array.aio.d.ts +0 -3
- package/dist/printers/array.aio.js +0 -259
- package/dist/printers/array.aio.js.map +0 -1
- package/dist/printers/edge.d.ts +0 -5
- package/dist/printers/edge.js +0 -78
- package/dist/printers/edge.js.map +0 -1
- package/dist/printers/explain.plan.d.ts +0 -2
- package/dist/printers/explain.plan.js +0 -46
- package/dist/printers/explain.plan.js.map +0 -1
- package/dist/printers/index.d.ts +0 -24
- package/dist/printers/index.js +0 -43
- package/dist/printers/index.js.map +0 -1
- package/dist/printers/node.d.ts +0 -5
- package/dist/printers/node.js +0 -77
- package/dist/printers/node.js.map +0 -1
- package/dist/printers/path.d.ts +0 -3
- package/dist/printers/path.js +0 -62
- package/dist/printers/path.js.map +0 -1
- package/dist/printers/status.d.ts +0 -3
- package/dist/printers/status.js +0 -68
- package/dist/printers/status.js.map +0 -1
- package/dist/printers/table.d.ts +0 -2
- package/dist/printers/table.js +0 -56
- package/dist/printers/table.js.map +0 -1
- package/dist/proto/tmp.js +0 -366
- package/dist/proto/ultipa_grpc_pb.d.ts +0 -258
- package/dist/proto/ultipa_grpc_pb.js +0 -366
- package/dist/proto/ultipa_grpc_pb.js.map +0 -1
- package/dist/proto/ultipa_pb.d.ts +0 -1
- package/dist/proto/ultipa_pb.js +0 -11002
- package/dist/proto/ultipa_pb.js.map +0 -1
- package/dist/types/index.js.map +0 -1
- package/dist/types/types.algos.params.d.ts +0 -545
- package/dist/types/types.algos.params.js +0 -16
- package/dist/types/types.algos.params.js.map +0 -1
- package/dist/types/types.d.ts +0 -1204
- package/dist/types/types.extra.d.ts +0 -146
- package/dist/types/types.extra.js +0 -27
- package/dist/types/types.extra.js.map +0 -1
- package/dist/types/types.js +0 -1596
- package/dist/types/types.js.map +0 -1
- package/dist/types/util.d.ts +0 -15
- package/dist/types/util.js +0 -136
- package/dist/types/util.js.map +0 -1
- package/dist/utils/common.d.ts +0 -3
- package/dist/utils/common.js +0 -22
- package/dist/utils/common.js.map +0 -1
- package/dist/utils/format.d.ts +0 -45
- package/dist/utils/format.js +0 -877
- package/dist/utils/format.js.map +0 -1
- package/dist/utils/index.d.ts +0 -10
- package/dist/utils/index.js +0 -30
- package/dist/utils/index.js.map +0 -1
- package/dist/utils/property.d.ts +0 -18
- package/dist/utils/property.js +0 -153
- package/dist/utils/property.js.map +0 -1
- package/dist/utils/serialize/commont.d.ts +0 -12
- package/dist/utils/serialize/commont.js +0 -46
- package/dist/utils/serialize/commont.js.map +0 -1
- package/dist/utils/serialize/deserialize.d.ts +0 -9
- package/dist/utils/serialize/deserialize.js +0 -166
- package/dist/utils/serialize/deserialize.js.map +0 -1
- package/dist/utils/serialize/null.d.ts +0 -25
- package/dist/utils/serialize/null.js +0 -136
- package/dist/utils/serialize/null.js.map +0 -1
- package/dist/utils/serialize/serialize.d.ts +0 -10
- package/dist/utils/serialize/serialize.js +0 -144
- package/dist/utils/serialize/serialize.js.map +0 -1
- package/dist/utils/stream.helper.d.ts +0 -10
- package/dist/utils/stream.helper.js +0 -71
- package/dist/utils/stream.helper.js.map +0 -1
- package/dist/utils/time.record.d.ts +0 -15
- package/dist/utils/time.record.js +0 -52
- package/dist/utils/time.record.js.map +0 -1
- package/dist/utils/ultipa.datetime.d.ts +0 -14
- package/dist/utils/ultipa.datetime.js +0 -160
- package/dist/utils/ultipa.datetime.js.map +0 -1
- package/dist/utils/uql-maker.d.ts +0 -165
- package/dist/utils/uql-maker.js +0 -402
- package/dist/utils/uql-maker.js.map +0 -1
- package/dist/utils/uql.parse.d.ts +0 -27
- package/dist/utils/uql.parse.js +0 -205
- package/dist/utils/uql.parse.js.map +0 -1
- package/readme.md +0 -65
- package/src/proto/build.sh +0 -41
- package/src/proto/build_windows.sh +0 -40
- package/src/proto/ultipa.proto +0 -492
- package/src/proto/ultipa_grpc_pb.d.ts +0 -92
- package/src/proto/ultipa_grpc_pb.js +0 -414
- package/src/proto/ultipa_pb.d.ts +0 -1806
- package/src/proto/ultipa_pb.js +0 -13499
|
@@ -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;
|