gremlin 4.0.0-beta.2 → 4.0.0-beta.3
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/build/cjs/driver/auth.cjs +11 -4
- package/build/cjs/driver/auth.d.cts +1 -1
- package/build/cjs/driver/client.cjs +82 -38
- package/build/cjs/driver/client.d.cts +30 -27
- package/build/cjs/driver/connection.cjs +173 -60
- package/build/cjs/driver/connection.d.cts +69 -26
- package/build/cjs/driver/dispatcher.browser.cjs +57 -0
- package/build/cjs/driver/dispatcher.browser.d.cts +35 -0
- package/build/cjs/driver/dispatcher.cjs +101 -0
- package/build/cjs/driver/dispatcher.d.cts +48 -0
- package/build/cjs/driver/driver-remote-connection.cjs +27 -15
- package/build/cjs/driver/driver-remote-connection.d.cts +10 -4
- package/build/cjs/driver/http-request.cjs +64 -0
- package/build/cjs/driver/http-request.d.cts +28 -0
- package/build/cjs/driver/logger.cjs +45 -0
- package/build/cjs/driver/logger.d.cts +29 -0
- package/build/cjs/driver/remote-connection.cjs +5 -8
- package/build/cjs/driver/remote-connection.d.cts +6 -21
- package/build/cjs/driver/request-message.cjs +110 -21
- package/build/cjs/driver/request-message.d.cts +38 -8
- package/build/cjs/driver/response-error.cjs +3 -3
- package/build/cjs/driver/response-error.d.cts +2 -2
- package/build/cjs/index.cjs +21 -0
- package/build/cjs/index.d.cts +47 -0
- package/build/cjs/language/grammar/GremlinLexer.cjs +1669 -1615
- package/build/cjs/language/grammar/GremlinLexer.d.cts +325 -316
- package/build/cjs/language/grammar/GremlinListener.cjs +322 -8
- package/build/cjs/language/grammar/GremlinListener.d.cts +351 -10
- package/build/cjs/language/grammar/GremlinParser.cjs +8700 -5798
- package/build/cjs/language/grammar/GremlinParser.d.cts +998 -619
- package/build/cjs/language/translator/AnonymizedTranslateVisitor.cjs +9 -0
- package/build/cjs/language/translator/AnonymizedTranslateVisitor.d.cts +3 -0
- package/build/cjs/language/translator/DotNetTranslateVisitor.cjs +113 -4
- package/build/cjs/language/translator/DotNetTranslateVisitor.d.cts +13 -2
- package/build/cjs/language/translator/GoTranslateVisitor.cjs +82 -0
- package/build/cjs/language/translator/GoTranslateVisitor.d.cts +9 -0
- package/build/cjs/language/translator/GroovyTranslateVisitor.cjs +23 -0
- package/build/cjs/language/translator/GroovyTranslateVisitor.d.cts +3 -0
- package/build/cjs/language/translator/JavaTranslateVisitor.cjs +23 -0
- package/build/cjs/language/translator/JavaTranslateVisitor.d.cts +3 -0
- package/build/cjs/language/translator/JavascriptTranslateVisitor.cjs +11 -0
- package/build/cjs/language/translator/JavascriptTranslateVisitor.d.cts +3 -0
- package/build/cjs/language/translator/PythonTranslateVisitor.cjs +39 -3
- package/build/cjs/language/translator/PythonTranslateVisitor.d.cts +3 -0
- package/build/cjs/language/translator/TranslateVisitor.cjs +9 -0
- package/build/cjs/language/translator/TranslateVisitor.d.cts +3 -0
- package/build/cjs/process/anonymous-traversal.cjs +5 -1
- package/build/cjs/process/graph-traversal.cjs +139 -8
- package/build/cjs/process/graph-traversal.d.cts +84 -3
- package/build/cjs/process/gremlin-lang.cjs +119 -7
- package/build/cjs/process/gremlin-lang.d.cts +6 -1
- package/build/cjs/process/gvalue.cjs +42 -0
- package/build/cjs/process/gvalue.d.cts +7 -0
- package/build/cjs/process/transaction.cjs +125 -23
- package/build/cjs/process/transaction.d.cts +50 -14
- package/build/cjs/process/traversal.cjs +105 -48
- package/build/cjs/process/traversal.d.cts +36 -10
- package/build/cjs/structure/PDTRegistry.cjs +116 -0
- package/build/cjs/structure/PDTRegistry.d.cts +34 -0
- package/build/cjs/structure/graph.cjs +351 -8
- package/build/cjs/structure/graph.d.cts +122 -3
- package/build/cjs/structure/io/binary/GraphBinary.cjs +68 -39
- package/build/cjs/structure/io/binary/GraphBinary.d.cts +15 -1
- package/build/cjs/structure/io/binary/internals/AnySerializer.cjs +34 -17
- package/build/cjs/structure/io/binary/internals/AnySerializer.d.cts +12 -2
- package/build/cjs/structure/io/binary/internals/ArraySerializer.cjs +41 -72
- package/build/cjs/structure/io/binary/internals/ArraySerializer.d.cts +14 -7
- package/build/cjs/structure/io/binary/internals/BigIntegerSerializer.cjs +34 -54
- package/build/cjs/structure/io/binary/internals/BigIntegerSerializer.d.cts +12 -7
- package/build/cjs/structure/io/binary/internals/BinarySerializer.cjs +31 -51
- package/build/cjs/structure/io/binary/internals/BinarySerializer.d.cts +12 -4
- package/build/cjs/structure/io/binary/internals/BooleanSerializer.cjs +28 -42
- package/build/cjs/structure/io/binary/internals/BooleanSerializer.d.cts +12 -4
- package/build/cjs/structure/io/binary/internals/ByteSerializer.cjs +24 -38
- package/build/cjs/structure/io/binary/internals/ByteSerializer.d.cts +12 -4
- package/build/cjs/structure/io/binary/internals/CompositePDTSerializer.cjs +81 -0
- package/build/cjs/structure/io/binary/internals/CompositePDTSerializer.d.cts +10 -0
- package/build/cjs/structure/io/binary/internals/DateTimeSerializer.cjs +52 -69
- package/build/cjs/structure/io/binary/internals/DateTimeSerializer.d.cts +12 -7
- package/build/cjs/structure/io/binary/internals/DoubleSerializer.cjs +24 -38
- package/build/cjs/structure/io/binary/internals/DoubleSerializer.d.cts +12 -4
- package/build/cjs/structure/io/binary/internals/EdgeSerializer.cjs +69 -124
- package/build/cjs/structure/io/binary/internals/EdgeSerializer.d.cts +14 -12
- package/build/cjs/structure/io/binary/internals/EnumSerializer.cjs +47 -59
- package/build/cjs/structure/io/binary/internals/EnumSerializer.d.cts +19 -4
- package/build/cjs/structure/io/binary/internals/FloatSerializer.cjs +24 -38
- package/build/cjs/structure/io/binary/internals/FloatSerializer.d.cts +12 -4
- package/build/cjs/structure/io/binary/internals/GraphBinaryReader.cjs +111 -37
- package/build/cjs/structure/io/binary/internals/GraphBinaryReader.d.cts +26 -2
- package/build/cjs/structure/io/binary/internals/GraphBinaryWriter.cjs +6 -6
- package/build/cjs/structure/io/binary/internals/GraphSerializer.cjs +184 -0
- package/build/cjs/structure/io/binary/internals/GraphSerializer.d.cts +22 -0
- package/build/cjs/structure/io/binary/internals/IntSerializer.cjs +33 -38
- package/build/cjs/structure/io/binary/internals/IntSerializer.d.cts +19 -4
- package/build/cjs/structure/io/binary/internals/LongSerializer.cjs +29 -42
- package/build/cjs/structure/io/binary/internals/LongSerializer.d.cts +13 -4
- package/build/cjs/structure/io/binary/internals/MapSerializer.cjs +36 -70
- package/build/cjs/structure/io/binary/internals/MapSerializer.d.cts +14 -7
- package/build/cjs/structure/io/binary/internals/MarkerSerializer.cjs +30 -33
- package/build/cjs/structure/io/binary/internals/MarkerSerializer.d.cts +13 -4
- package/build/cjs/structure/io/binary/internals/NumberSerializationStrategy.cjs +28 -2
- package/build/cjs/structure/io/binary/internals/NumberSerializationStrategy.d.cts +0 -3
- package/build/cjs/structure/io/binary/internals/PathSerializer.cjs +30 -55
- package/build/cjs/structure/io/binary/internals/PathSerializer.d.cts +14 -7
- package/build/cjs/structure/io/binary/internals/PrimitivePDTSerializer.cjs +80 -0
- package/build/cjs/structure/io/binary/internals/PrimitivePDTSerializer.d.cts +10 -0
- package/build/cjs/structure/io/binary/internals/PropertySerializer.cjs +32 -69
- package/build/cjs/structure/io/binary/internals/PropertySerializer.d.cts +14 -7
- package/build/cjs/structure/io/binary/internals/SetSerializer.cjs +39 -73
- package/build/cjs/structure/io/binary/internals/SetSerializer.d.cts +14 -7
- package/build/cjs/structure/io/binary/internals/ShortSerializer.cjs +24 -38
- package/build/cjs/structure/io/binary/internals/ShortSerializer.d.cts +12 -4
- package/build/cjs/structure/io/binary/internals/StreamReader.cjs +184 -0
- package/build/cjs/structure/io/binary/internals/StreamReader.d.cts +69 -0
- package/build/cjs/structure/io/binary/internals/StringSerializer.cjs +34 -53
- package/build/cjs/structure/io/binary/internals/StringSerializer.d.cts +14 -4
- package/build/cjs/structure/io/binary/internals/StubSerializer.cjs +2 -1
- package/build/cjs/structure/io/binary/internals/StubSerializer.d.cts +1 -1
- package/build/cjs/structure/io/binary/internals/TreeSerializer.cjs +139 -0
- package/build/cjs/structure/io/binary/internals/TreeSerializer.d.cts +54 -0
- package/build/cjs/structure/io/binary/internals/UnspecifiedNullSerializer.cjs +8 -31
- package/build/cjs/structure/io/binary/internals/UnspecifiedNullSerializer.d.cts +6 -4
- package/build/cjs/structure/io/binary/internals/UuidSerializer.cjs +33 -49
- package/build/cjs/structure/io/binary/internals/UuidSerializer.d.cts +12 -7
- package/build/cjs/structure/io/binary/internals/VertexPropertySerializer.cjs +37 -95
- package/build/cjs/structure/io/binary/internals/VertexPropertySerializer.d.cts +14 -7
- package/build/cjs/structure/io/binary/internals/VertexSerializer.cjs +41 -68
- package/build/cjs/structure/io/binary/internals/VertexSerializer.d.cts +14 -9
- package/build/cjs/utils.cjs +157 -40
- package/build/cjs/utils.d.cts +62 -4
- package/build/esm/driver/auth.d.ts +1 -1
- package/build/esm/driver/auth.js +11 -4
- package/build/esm/driver/client.d.ts +30 -27
- package/build/esm/driver/client.js +82 -38
- package/build/esm/driver/connection.d.ts +69 -26
- package/build/esm/driver/connection.js +172 -60
- package/build/esm/driver/dispatcher.browser.d.ts +35 -0
- package/build/esm/driver/dispatcher.browser.js +53 -0
- package/build/esm/driver/dispatcher.d.ts +48 -0
- package/build/esm/driver/dispatcher.js +94 -0
- package/build/esm/driver/driver-remote-connection.d.ts +10 -4
- package/build/esm/driver/driver-remote-connection.js +27 -15
- package/build/esm/driver/http-request.d.ts +28 -0
- package/build/esm/driver/http-request.js +60 -0
- package/build/esm/driver/logger.d.ts +29 -0
- package/build/esm/driver/logger.js +42 -0
- package/build/esm/driver/remote-connection.d.ts +6 -21
- package/build/esm/driver/remote-connection.js +5 -8
- package/build/esm/driver/request-message.d.ts +38 -8
- package/build/esm/driver/request-message.js +107 -21
- package/build/esm/driver/response-error.d.ts +2 -2
- package/build/esm/driver/response-error.js +3 -3
- package/build/esm/index.d.ts +47 -0
- package/build/esm/index.js +21 -0
- package/build/esm/language/grammar/GremlinLexer.d.ts +325 -316
- package/build/esm/language/grammar/GremlinLexer.js +1669 -1615
- package/build/esm/language/grammar/GremlinListener.d.ts +351 -10
- package/build/esm/language/grammar/GremlinListener.js +322 -8
- package/build/esm/language/grammar/GremlinParser.d.ts +998 -619
- package/build/esm/language/grammar/GremlinParser.js +8646 -5778
- package/build/esm/language/translator/AnonymizedTranslateVisitor.d.ts +3 -0
- package/build/esm/language/translator/AnonymizedTranslateVisitor.js +9 -0
- package/build/esm/language/translator/DotNetTranslateVisitor.d.ts +13 -2
- package/build/esm/language/translator/DotNetTranslateVisitor.js +113 -4
- package/build/esm/language/translator/GoTranslateVisitor.d.ts +9 -0
- package/build/esm/language/translator/GoTranslateVisitor.js +82 -0
- package/build/esm/language/translator/GroovyTranslateVisitor.d.ts +3 -0
- package/build/esm/language/translator/GroovyTranslateVisitor.js +23 -0
- package/build/esm/language/translator/JavaTranslateVisitor.d.ts +3 -0
- package/build/esm/language/translator/JavaTranslateVisitor.js +23 -0
- package/build/esm/language/translator/JavascriptTranslateVisitor.d.ts +3 -0
- package/build/esm/language/translator/JavascriptTranslateVisitor.js +11 -0
- package/build/esm/language/translator/PythonTranslateVisitor.d.ts +3 -0
- package/build/esm/language/translator/PythonTranslateVisitor.js +39 -3
- package/build/esm/language/translator/TranslateVisitor.d.ts +3 -0
- package/build/esm/language/translator/TranslateVisitor.js +9 -0
- package/build/esm/process/anonymous-traversal.js +5 -1
- package/build/esm/process/graph-traversal.d.ts +84 -3
- package/build/esm/process/graph-traversal.js +139 -8
- package/build/esm/process/gremlin-lang.d.ts +6 -1
- package/build/esm/process/gremlin-lang.js +121 -9
- package/build/esm/process/gvalue.d.ts +7 -0
- package/build/esm/process/gvalue.js +38 -0
- package/build/esm/process/transaction.d.ts +50 -14
- package/build/esm/process/transaction.js +122 -23
- package/build/esm/process/traversal.d.ts +36 -10
- package/build/esm/process/traversal.js +104 -47
- package/build/esm/structure/PDTRegistry.d.ts +34 -0
- package/build/esm/structure/PDTRegistry.js +112 -0
- package/build/esm/structure/graph.d.ts +122 -3
- package/build/esm/structure/graph.js +347 -7
- package/build/esm/structure/io/binary/GraphBinary.d.ts +15 -1
- package/build/esm/structure/io/binary/GraphBinary.js +66 -38
- package/build/esm/structure/io/binary/internals/AnySerializer.d.ts +12 -2
- package/build/esm/structure/io/binary/internals/AnySerializer.js +34 -17
- package/build/esm/structure/io/binary/internals/ArraySerializer.d.ts +14 -7
- package/build/esm/structure/io/binary/internals/ArraySerializer.js +41 -72
- package/build/esm/structure/io/binary/internals/BigIntegerSerializer.d.ts +12 -7
- package/build/esm/structure/io/binary/internals/BigIntegerSerializer.js +34 -54
- package/build/esm/structure/io/binary/internals/BinarySerializer.d.ts +12 -4
- package/build/esm/structure/io/binary/internals/BinarySerializer.js +31 -51
- package/build/esm/structure/io/binary/internals/BooleanSerializer.d.ts +12 -4
- package/build/esm/structure/io/binary/internals/BooleanSerializer.js +28 -42
- package/build/esm/structure/io/binary/internals/ByteSerializer.d.ts +12 -4
- package/build/esm/structure/io/binary/internals/ByteSerializer.js +24 -38
- package/build/esm/structure/io/binary/internals/CompositePDTSerializer.d.ts +10 -0
- package/build/esm/structure/io/binary/internals/CompositePDTSerializer.js +78 -0
- package/build/esm/structure/io/binary/internals/DateTimeSerializer.d.ts +12 -7
- package/build/esm/structure/io/binary/internals/DateTimeSerializer.js +52 -69
- package/build/esm/structure/io/binary/internals/DoubleSerializer.d.ts +12 -4
- package/build/esm/structure/io/binary/internals/DoubleSerializer.js +24 -38
- package/build/esm/structure/io/binary/internals/EdgeSerializer.d.ts +14 -12
- package/build/esm/structure/io/binary/internals/EdgeSerializer.js +69 -124
- package/build/esm/structure/io/binary/internals/EnumSerializer.d.ts +19 -4
- package/build/esm/structure/io/binary/internals/EnumSerializer.js +47 -59
- package/build/esm/structure/io/binary/internals/FloatSerializer.d.ts +12 -4
- package/build/esm/structure/io/binary/internals/FloatSerializer.js +24 -38
- package/build/esm/structure/io/binary/internals/GraphBinaryReader.d.ts +26 -2
- package/build/esm/structure/io/binary/internals/GraphBinaryReader.js +108 -37
- package/build/esm/structure/io/binary/internals/GraphBinaryWriter.js +6 -6
- package/build/esm/structure/io/binary/internals/GraphSerializer.d.ts +22 -0
- package/build/esm/structure/io/binary/internals/GraphSerializer.js +181 -0
- package/build/esm/structure/io/binary/internals/IntSerializer.d.ts +19 -4
- package/build/esm/structure/io/binary/internals/IntSerializer.js +33 -38
- package/build/esm/structure/io/binary/internals/LongSerializer.d.ts +13 -4
- package/build/esm/structure/io/binary/internals/LongSerializer.js +29 -42
- package/build/esm/structure/io/binary/internals/MapSerializer.d.ts +14 -7
- package/build/esm/structure/io/binary/internals/MapSerializer.js +36 -70
- package/build/esm/structure/io/binary/internals/MarkerSerializer.d.ts +13 -4
- package/build/esm/structure/io/binary/internals/MarkerSerializer.js +29 -33
- package/build/esm/structure/io/binary/internals/NumberSerializationStrategy.d.ts +0 -3
- package/build/esm/structure/io/binary/internals/NumberSerializationStrategy.js +28 -2
- package/build/esm/structure/io/binary/internals/PathSerializer.d.ts +14 -7
- package/build/esm/structure/io/binary/internals/PathSerializer.js +30 -55
- package/build/esm/structure/io/binary/internals/PrimitivePDTSerializer.d.ts +10 -0
- package/build/esm/structure/io/binary/internals/PrimitivePDTSerializer.js +77 -0
- package/build/esm/structure/io/binary/internals/PropertySerializer.d.ts +14 -7
- package/build/esm/structure/io/binary/internals/PropertySerializer.js +32 -69
- package/build/esm/structure/io/binary/internals/SetSerializer.d.ts +14 -7
- package/build/esm/structure/io/binary/internals/SetSerializer.js +39 -73
- package/build/esm/structure/io/binary/internals/ShortSerializer.d.ts +12 -4
- package/build/esm/structure/io/binary/internals/ShortSerializer.js +24 -38
- package/build/esm/structure/io/binary/internals/StreamReader.d.ts +69 -0
- package/build/esm/structure/io/binary/internals/StreamReader.js +181 -0
- package/build/esm/structure/io/binary/internals/StringSerializer.d.ts +14 -4
- package/build/esm/structure/io/binary/internals/StringSerializer.js +34 -53
- package/build/esm/structure/io/binary/internals/StubSerializer.d.ts +1 -1
- package/build/esm/structure/io/binary/internals/StubSerializer.js +2 -1
- package/build/esm/structure/io/binary/internals/TreeSerializer.d.ts +54 -0
- package/build/esm/structure/io/binary/internals/TreeSerializer.js +136 -0
- package/build/esm/structure/io/binary/internals/UnspecifiedNullSerializer.d.ts +6 -4
- package/build/esm/structure/io/binary/internals/UnspecifiedNullSerializer.js +8 -31
- package/build/esm/structure/io/binary/internals/UuidSerializer.d.ts +12 -7
- package/build/esm/structure/io/binary/internals/UuidSerializer.js +33 -49
- package/build/esm/structure/io/binary/internals/VertexPropertySerializer.d.ts +14 -7
- package/build/esm/structure/io/binary/internals/VertexPropertySerializer.js +37 -95
- package/build/esm/structure/io/binary/internals/VertexSerializer.d.ts +14 -9
- package/build/esm/structure/io/binary/internals/VertexSerializer.js +41 -68
- package/build/esm/utils.d.ts +62 -4
- package/build/esm/utils.js +145 -6
- package/package.json +27 -18
|
@@ -3,18 +3,20 @@ export default class EdgeSerializer {
|
|
|
3
3
|
ioc: any;
|
|
4
4
|
canBeUsedFor(value: any): value is Edge<any, any, any, any, any>;
|
|
5
5
|
serialize(item: any, fullyQualifiedFormat?: boolean): Buffer<ArrayBuffer>;
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
6
|
+
/**
|
|
7
|
+
* Async deserialization of edge value bytes from a StreamReader.
|
|
8
|
+
* @param {StreamReader} reader
|
|
9
|
+
* @param {number} valueFlag
|
|
10
|
+
* @param {number} typeCode
|
|
11
|
+
* @returns {Promise<Edge>}
|
|
12
|
+
*/
|
|
13
|
+
deserializeValue(reader: StreamReader, valueFlag: number, typeCode: number): Promise<Edge>;
|
|
14
|
+
/**
|
|
15
|
+
* Async fully-qualified deserialization from a StreamReader.
|
|
16
|
+
* @param {StreamReader} reader
|
|
17
|
+
* @returns {Promise<Edge|null>}
|
|
18
|
+
*/
|
|
19
|
+
deserialize(reader: StreamReader): Promise<Edge | null>;
|
|
17
20
|
}
|
|
18
21
|
import { Edge } from '../../../graph.js';
|
|
19
22
|
import { Buffer } from 'buffer';
|
|
20
|
-
import { Vertex } from '../../../graph.js';
|
|
@@ -51,21 +51,37 @@ export default class EdgeSerializer {
|
|
|
51
51
|
// {id}
|
|
52
52
|
bufs.push(this.ioc.anySerializer.serialize(item.id));
|
|
53
53
|
// {label}
|
|
54
|
-
const labels =
|
|
54
|
+
const labels = item.labels instanceof Set
|
|
55
|
+
? Array.from(item.labels)
|
|
56
|
+
: Array.isArray(item.label)
|
|
57
|
+
? item.label
|
|
58
|
+
: item.label
|
|
59
|
+
? [item.label]
|
|
60
|
+
: [];
|
|
55
61
|
bufs.push(this.ioc.listSerializer.serialize(labels, false));
|
|
56
62
|
// {inVId}
|
|
57
63
|
const inVId = item.inV && item.inV.id;
|
|
58
64
|
bufs.push(this.ioc.anySerializer.serialize(inVId));
|
|
59
65
|
// {inVLabel}
|
|
60
|
-
const
|
|
61
|
-
|
|
66
|
+
const inVLabels = item.inV && item.inV.labels instanceof Set
|
|
67
|
+
? Array.from(item.inV.labels)
|
|
68
|
+
: item.inV && Array.isArray(item.inV.label)
|
|
69
|
+
? item.inV.label
|
|
70
|
+
: item.inV && item.inV.label
|
|
71
|
+
? [item.inV.label]
|
|
72
|
+
: [];
|
|
62
73
|
bufs.push(this.ioc.listSerializer.serialize(inVLabels, false));
|
|
63
74
|
// {outVId}
|
|
64
75
|
const outVId = item.outV && item.outV.id;
|
|
65
76
|
bufs.push(this.ioc.anySerializer.serialize(outVId));
|
|
66
77
|
// {outVLabel}
|
|
67
|
-
const
|
|
68
|
-
|
|
78
|
+
const outVLabels = item.outV && item.outV.labels instanceof Set
|
|
79
|
+
? Array.from(item.outV.labels)
|
|
80
|
+
: item.outV && Array.isArray(item.outV.label)
|
|
81
|
+
? item.outV.label
|
|
82
|
+
: item.outV && item.outV.label
|
|
83
|
+
? [item.outV.label]
|
|
84
|
+
: [];
|
|
69
85
|
bufs.push(this.ioc.listSerializer.serialize(outVLabels, false));
|
|
70
86
|
// {parent}
|
|
71
87
|
bufs.push(this.ioc.unspecifiedNullSerializer.serialize(null));
|
|
@@ -73,126 +89,55 @@ export default class EdgeSerializer {
|
|
|
73
89
|
bufs.push(this.ioc.listSerializer.serialize([], true));
|
|
74
90
|
return Buffer.concat(bufs);
|
|
75
91
|
}
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
}
|
|
122
|
-
catch (err) {
|
|
123
|
-
err.message = '{label}: ' + err.message;
|
|
124
|
-
throw err;
|
|
125
|
-
}
|
|
126
|
-
cursor = cursor.slice(label_len);
|
|
127
|
-
let inVId, inVId_len;
|
|
128
|
-
try {
|
|
129
|
-
({ v: inVId, len: inVId_len } = this.ioc.anySerializer.deserialize(cursor));
|
|
130
|
-
len += inVId_len;
|
|
131
|
-
}
|
|
132
|
-
catch (err) {
|
|
133
|
-
err.message = '{inVId}: ' + err.message;
|
|
134
|
-
throw err;
|
|
135
|
-
}
|
|
136
|
-
cursor = cursor.slice(inVId_len);
|
|
137
|
-
let inVLabel, inVLabel_len;
|
|
138
|
-
try {
|
|
139
|
-
({ v: inVLabel, len: inVLabel_len } = this.ioc.listSerializer.deserialize(cursor, false));
|
|
140
|
-
inVLabel = Array.isArray(inVLabel) && inVLabel.length > 0 ? inVLabel[0] : inVLabel;
|
|
141
|
-
len += inVLabel_len;
|
|
142
|
-
}
|
|
143
|
-
catch (err) {
|
|
144
|
-
err.message = '{inVLabel}: ' + err.message;
|
|
145
|
-
throw err;
|
|
146
|
-
}
|
|
147
|
-
cursor = cursor.slice(inVLabel_len);
|
|
148
|
-
let outVId, outVId_len;
|
|
149
|
-
try {
|
|
150
|
-
({ v: outVId, len: outVId_len } = this.ioc.anySerializer.deserialize(cursor));
|
|
151
|
-
len += outVId_len;
|
|
152
|
-
}
|
|
153
|
-
catch (err) {
|
|
154
|
-
err.message = '{outVId}: ' + err.message;
|
|
155
|
-
throw err;
|
|
156
|
-
}
|
|
157
|
-
cursor = cursor.slice(outVId_len);
|
|
158
|
-
let outVLabel, outVLabel_len;
|
|
159
|
-
try {
|
|
160
|
-
({ v: outVLabel, len: outVLabel_len } = this.ioc.listSerializer.deserialize(cursor, false));
|
|
161
|
-
outVLabel = Array.isArray(outVLabel) && outVLabel.length > 0 ? outVLabel[0] : outVLabel;
|
|
162
|
-
len += outVLabel_len;
|
|
163
|
-
}
|
|
164
|
-
catch (err) {
|
|
165
|
-
err.message = '{outVLabel}: ' + err.message;
|
|
166
|
-
throw err;
|
|
167
|
-
}
|
|
168
|
-
cursor = cursor.slice(outVLabel_len);
|
|
169
|
-
let parent_len;
|
|
170
|
-
try {
|
|
171
|
-
({ len: parent_len } = this.ioc.anySerializer.deserialize(cursor));
|
|
172
|
-
len += parent_len;
|
|
173
|
-
}
|
|
174
|
-
catch (err) {
|
|
175
|
-
err.message = '{parent}: ' + err.message;
|
|
176
|
-
throw err;
|
|
177
|
-
}
|
|
178
|
-
cursor = cursor.slice(parent_len);
|
|
179
|
-
let properties, properties_len;
|
|
180
|
-
try {
|
|
181
|
-
({ v: properties, len: properties_len } = this.ioc.anySerializer.deserialize(cursor));
|
|
182
|
-
len += properties_len;
|
|
183
|
-
}
|
|
184
|
-
catch (err) {
|
|
185
|
-
err.message = '{properties}: ' + err.message;
|
|
186
|
-
throw err;
|
|
187
|
-
}
|
|
188
|
-
cursor = cursor.slice(properties_len);
|
|
189
|
-
// null properties are deserialized into empty lists
|
|
190
|
-
const edge_props = properties ? properties : [];
|
|
191
|
-
const v = new Edge(id, new Vertex(outVId, outVLabel, null), label, new Vertex(inVId, inVLabel, null), edge_props);
|
|
192
|
-
return { v, len };
|
|
92
|
+
/**
|
|
93
|
+
* Async deserialization of edge value bytes from a StreamReader.
|
|
94
|
+
* @param {StreamReader} reader
|
|
95
|
+
* @param {number} valueFlag
|
|
96
|
+
* @param {number} typeCode
|
|
97
|
+
* @returns {Promise<Edge>}
|
|
98
|
+
*/
|
|
99
|
+
async deserializeValue(reader, valueFlag, typeCode) {
|
|
100
|
+
// {id} fully qualified
|
|
101
|
+
const id = await this.ioc.anySerializer.deserialize(reader);
|
|
102
|
+
// {label} bare list - full multi-label list
|
|
103
|
+
const labelList = await this.ioc.listSerializer.deserializeValue(reader, 0x00, this.ioc.DataType.LIST);
|
|
104
|
+
const labels = Array.isArray(labelList) ? labelList : labelList ? [labelList] : [];
|
|
105
|
+
const label = labels.length > 0 ? labels[0] : 'edge';
|
|
106
|
+
// {inVId} fully qualified
|
|
107
|
+
const inVId = await this.ioc.anySerializer.deserialize(reader);
|
|
108
|
+
// {inVLabel} bare list - full multi-label list
|
|
109
|
+
const inVLabelList = await this.ioc.listSerializer.deserializeValue(reader, 0x00, this.ioc.DataType.LIST);
|
|
110
|
+
const inVLabels = Array.isArray(inVLabelList) ? inVLabelList : inVLabelList ? [inVLabelList] : [];
|
|
111
|
+
const inVLabel = inVLabels.length > 0 ? inVLabels[0] : 'vertex';
|
|
112
|
+
// {outVId} fully qualified
|
|
113
|
+
const outVId = await this.ioc.anySerializer.deserialize(reader);
|
|
114
|
+
// {outVLabel} bare list - full multi-label list
|
|
115
|
+
const outVLabelList = await this.ioc.listSerializer.deserializeValue(reader, 0x00, this.ioc.DataType.LIST);
|
|
116
|
+
const outVLabels = Array.isArray(outVLabelList) ? outVLabelList : outVLabelList ? [outVLabelList] : [];
|
|
117
|
+
const outVLabel = outVLabels.length > 0 ? outVLabels[0] : 'vertex';
|
|
118
|
+
// {parent} fully qualified (always null in current TinkerPop)
|
|
119
|
+
await this.ioc.anySerializer.deserialize(reader);
|
|
120
|
+
// {properties} fully qualified
|
|
121
|
+
const properties = await this.ioc.anySerializer.deserialize(reader);
|
|
122
|
+
return new Edge(id, new Vertex(outVId, outVLabel, null, outVLabels), label, new Vertex(inVId, inVLabel, null, inVLabels), properties || [], labels);
|
|
123
|
+
}
|
|
124
|
+
/**
|
|
125
|
+
* Async fully-qualified deserialization from a StreamReader.
|
|
126
|
+
* @param {StreamReader} reader
|
|
127
|
+
* @returns {Promise<Edge|null>}
|
|
128
|
+
*/
|
|
129
|
+
async deserialize(reader) {
|
|
130
|
+
const type_code = await reader.readUInt8();
|
|
131
|
+
if (type_code !== this.ioc.DataType.EDGE) {
|
|
132
|
+
throw new Error(`EdgeSerializer: unexpected {type_code}=0x${type_code.toString(16)}`);
|
|
133
|
+
}
|
|
134
|
+
const value_flag = await reader.readUInt8();
|
|
135
|
+
if (value_flag === 0x01) {
|
|
136
|
+
return null;
|
|
193
137
|
}
|
|
194
|
-
|
|
195
|
-
throw
|
|
138
|
+
if (value_flag !== 0x00) {
|
|
139
|
+
throw new Error(`EdgeSerializer: unexpected {value_flag}=0x${value_flag.toString(16)}`);
|
|
196
140
|
}
|
|
141
|
+
return this.deserializeValue(reader, value_flag, type_code);
|
|
197
142
|
}
|
|
198
143
|
}
|
|
@@ -17,8 +17,23 @@ export default class EnumSerializer {
|
|
|
17
17
|
};
|
|
18
18
|
canBeUsedFor(value: any): boolean;
|
|
19
19
|
serialize(item: any, fullyQualifiedFormat?: boolean): any;
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
20
|
+
/**
|
|
21
|
+
* Resolve the type_code (already read by AnySerializer) to a typeName.
|
|
22
|
+
* Called by AnySerializer before dispatching.
|
|
23
|
+
*/
|
|
24
|
+
_typeNameForCode(type_code: any): "Direction" | "Merge" | "T" | undefined;
|
|
25
|
+
/**
|
|
26
|
+
* @param {StreamReader} reader
|
|
27
|
+
* @param {number} valueFlag - already consumed by AnySerializer
|
|
28
|
+
* @param {number} typeCode - the type_code byte already read by AnySerializer
|
|
29
|
+
* @returns {Promise<EnumValue>}
|
|
30
|
+
*/
|
|
31
|
+
deserializeValue(reader: StreamReader, valueFlag: number, typeCode: number): Promise<EnumValue>;
|
|
32
|
+
/**
|
|
33
|
+
* Async fully-qualified deserialization from a StreamReader.
|
|
34
|
+
* @param {StreamReader} reader
|
|
35
|
+
* @returns {Promise<EnumValue|null>}
|
|
36
|
+
*/
|
|
37
|
+
deserialize(reader: StreamReader): Promise<EnumValue | null>;
|
|
24
38
|
}
|
|
39
|
+
import { EnumValue } from '../../../../process/traversal.js';
|
|
@@ -59,66 +59,54 @@ export default class EnumSerializer {
|
|
|
59
59
|
bufs.push(this.ioc.stringSerializer.serialize(item.elementName, true));
|
|
60
60
|
return Buffer.concat(bufs);
|
|
61
61
|
}
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
}
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
}
|
|
107
|
-
catch (err) {
|
|
108
|
-
err.message = 'elementName: ' + err.message;
|
|
109
|
-
throw err;
|
|
110
|
-
}
|
|
111
|
-
let v;
|
|
112
|
-
if (typeName) {
|
|
113
|
-
v = this.types[typeName].enum[elementName];
|
|
114
|
-
}
|
|
115
|
-
else {
|
|
116
|
-
v = new EnumValue(undefined, elementName);
|
|
117
|
-
}
|
|
118
|
-
return { v, len };
|
|
62
|
+
/**
|
|
63
|
+
* Resolve the type_code (already read by AnySerializer) to a typeName.
|
|
64
|
+
* Called by AnySerializer before dispatching.
|
|
65
|
+
*/
|
|
66
|
+
_typeNameForCode(type_code) {
|
|
67
|
+
if (type_code === this.ioc.DataType.DIRECTION) {
|
|
68
|
+
return 'Direction';
|
|
69
|
+
}
|
|
70
|
+
if (type_code === this.ioc.DataType.MERGE) {
|
|
71
|
+
return 'Merge';
|
|
72
|
+
}
|
|
73
|
+
if (type_code === this.ioc.DataType.T) {
|
|
74
|
+
return 'T';
|
|
75
|
+
}
|
|
76
|
+
return undefined;
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* @param {StreamReader} reader
|
|
80
|
+
* @param {number} valueFlag - already consumed by AnySerializer
|
|
81
|
+
* @param {number} typeCode - the type_code byte already read by AnySerializer
|
|
82
|
+
* @returns {Promise<EnumValue>}
|
|
83
|
+
*/
|
|
84
|
+
async deserializeValue(reader, valueFlag, typeCode) {
|
|
85
|
+
const typeName = this._typeNameForCode(typeCode);
|
|
86
|
+
// elementName is a fully-qualified String (type_code + value_flag + length + text)
|
|
87
|
+
const elementName = await this.ioc.stringSerializer.deserialize(reader);
|
|
88
|
+
if (typeName) {
|
|
89
|
+
return this.types[typeName].enum[elementName];
|
|
90
|
+
}
|
|
91
|
+
return new EnumValue(undefined, elementName);
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* Async fully-qualified deserialization from a StreamReader.
|
|
95
|
+
* @param {StreamReader} reader
|
|
96
|
+
* @returns {Promise<EnumValue|null>}
|
|
97
|
+
*/
|
|
98
|
+
async deserialize(reader) {
|
|
99
|
+
const type_code = await reader.readUInt8();
|
|
100
|
+
if (!this._typeNameForCode(type_code)) {
|
|
101
|
+
throw new Error(`EnumSerializer: unexpected {type_code}=0x${type_code.toString(16)}`);
|
|
102
|
+
}
|
|
103
|
+
const value_flag = await reader.readUInt8();
|
|
104
|
+
if (value_flag === 0x01) {
|
|
105
|
+
return null;
|
|
119
106
|
}
|
|
120
|
-
|
|
121
|
-
throw
|
|
107
|
+
if (value_flag !== 0x00) {
|
|
108
|
+
throw new Error(`EnumSerializer: unexpected {value_flag}=0x${value_flag.toString(16)}`);
|
|
122
109
|
}
|
|
110
|
+
return this.deserializeValue(reader, value_flag, type_code);
|
|
123
111
|
}
|
|
124
112
|
}
|
|
@@ -3,9 +3,17 @@ export default class FloatSerializer {
|
|
|
3
3
|
ioc: any;
|
|
4
4
|
canBeUsedFor(value: any): void;
|
|
5
5
|
serialize(item: any, fullyQualifiedFormat?: boolean): Buffer<ArrayBuffer>;
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
6
|
+
/**
|
|
7
|
+
* @param {StreamReader} reader
|
|
8
|
+
* @param {number} valueFlag
|
|
9
|
+
* @param {number} typeCode
|
|
10
|
+
* @returns {Promise<number>}
|
|
11
|
+
*/
|
|
12
|
+
deserializeValue(reader: StreamReader, valueFlag: number, typeCode: number): Promise<number>;
|
|
13
|
+
/**
|
|
14
|
+
* @param {StreamReader} reader
|
|
15
|
+
* @returns {Promise<number|null>}
|
|
16
|
+
*/
|
|
17
|
+
deserialize(reader: StreamReader): Promise<number | null>;
|
|
10
18
|
}
|
|
11
19
|
import { Buffer } from 'buffer';
|
|
@@ -44,45 +44,31 @@ export default class FloatSerializer {
|
|
|
44
44
|
bufs.push(v);
|
|
45
45
|
return Buffer.concat(bufs);
|
|
46
46
|
}
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
len++;
|
|
69
|
-
if (value_flag === 1) {
|
|
70
|
-
return { v: null, len };
|
|
71
|
-
}
|
|
72
|
-
if (value_flag !== 0) {
|
|
73
|
-
throw new Error('unexpected {value_flag}');
|
|
74
|
-
}
|
|
75
|
-
cursor = cursor.slice(1);
|
|
76
|
-
}
|
|
77
|
-
if (cursor.length < 4) {
|
|
78
|
-
throw new Error('unexpected {value} length');
|
|
79
|
-
}
|
|
80
|
-
len += 4;
|
|
81
|
-
const v = cursor.readFloatBE();
|
|
82
|
-
return { v, len };
|
|
47
|
+
/**
|
|
48
|
+
* @param {StreamReader} reader
|
|
49
|
+
* @param {number} valueFlag
|
|
50
|
+
* @param {number} typeCode
|
|
51
|
+
* @returns {Promise<number>}
|
|
52
|
+
*/
|
|
53
|
+
async deserializeValue(reader, valueFlag, typeCode) {
|
|
54
|
+
return await reader.readFloatBE();
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* @param {StreamReader} reader
|
|
58
|
+
* @returns {Promise<number|null>}
|
|
59
|
+
*/
|
|
60
|
+
async deserialize(reader) {
|
|
61
|
+
const type_code = await reader.readUInt8();
|
|
62
|
+
if (type_code !== this.ioc.DataType.FLOAT) {
|
|
63
|
+
throw new Error(`FloatSerializer: unexpected {type_code}=0x${type_code.toString(16)}`);
|
|
64
|
+
}
|
|
65
|
+
const value_flag = await reader.readUInt8();
|
|
66
|
+
if (value_flag === 0x01) {
|
|
67
|
+
return null;
|
|
83
68
|
}
|
|
84
|
-
|
|
85
|
-
throw
|
|
69
|
+
if (value_flag !== 0x00) {
|
|
70
|
+
throw new Error(`FloatSerializer: unexpected {value_flag}=0x${value_flag.toString(16)}`);
|
|
86
71
|
}
|
|
72
|
+
return this.deserializeValue(reader, value_flag, type_code);
|
|
87
73
|
}
|
|
88
74
|
}
|
|
@@ -4,8 +4,15 @@
|
|
|
4
4
|
export default class GraphBinaryReader {
|
|
5
5
|
constructor(ioc: any);
|
|
6
6
|
ioc: any;
|
|
7
|
+
pdtRegistry: any;
|
|
7
8
|
get mimeType(): string;
|
|
8
|
-
|
|
9
|
+
/**
|
|
10
|
+
* Read a complete response from a Buffer. Used by the non-streaming submit() path.
|
|
11
|
+
* Returns the full { status, result } object after reading all data.
|
|
12
|
+
* @param {Buffer} buffer
|
|
13
|
+
* @returns {Promise<{status: {code, message, exception}, result: {data: any[], bulked: boolean}}>}
|
|
14
|
+
*/
|
|
15
|
+
readResponse(buffer: Buffer): Promise<{
|
|
9
16
|
status: {
|
|
10
17
|
code: any;
|
|
11
18
|
message: any;
|
|
@@ -15,5 +22,22 @@ export default class GraphBinaryReader {
|
|
|
15
22
|
data: any[];
|
|
16
23
|
bulked: boolean;
|
|
17
24
|
};
|
|
18
|
-
}
|
|
25
|
+
}>;
|
|
26
|
+
/**
|
|
27
|
+
* Stream results from a StreamReader, yielding each value as it's deserialized.
|
|
28
|
+
* Used by the streaming Connection.stream() path.
|
|
29
|
+
*
|
|
30
|
+
* Note: In the GraphBinary v4 streaming protocol, the status (including error codes)
|
|
31
|
+
* is sent *after* all result data. This means values are yielded to the consumer as
|
|
32
|
+
* they arrive, and a server error is only thrown after all values have been yielded.
|
|
33
|
+
* Consumers should be aware that partial results may have been processed before a
|
|
34
|
+
* ResponseError is thrown.
|
|
35
|
+
*
|
|
36
|
+
* @param {StreamReader} reader
|
|
37
|
+
* @returns {AsyncGenerator<any>}
|
|
38
|
+
*/
|
|
39
|
+
readResponseStream(reader: StreamReader): AsyncGenerator<any>;
|
|
40
|
+
#private;
|
|
19
41
|
}
|
|
42
|
+
import { Buffer } from 'buffer';
|
|
43
|
+
import StreamReader from './StreamReader.js';
|