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.
Files changed (261) hide show
  1. package/build/cjs/driver/auth.cjs +11 -4
  2. package/build/cjs/driver/auth.d.cts +1 -1
  3. package/build/cjs/driver/client.cjs +82 -38
  4. package/build/cjs/driver/client.d.cts +30 -27
  5. package/build/cjs/driver/connection.cjs +173 -60
  6. package/build/cjs/driver/connection.d.cts +69 -26
  7. package/build/cjs/driver/dispatcher.browser.cjs +57 -0
  8. package/build/cjs/driver/dispatcher.browser.d.cts +35 -0
  9. package/build/cjs/driver/dispatcher.cjs +101 -0
  10. package/build/cjs/driver/dispatcher.d.cts +48 -0
  11. package/build/cjs/driver/driver-remote-connection.cjs +27 -15
  12. package/build/cjs/driver/driver-remote-connection.d.cts +10 -4
  13. package/build/cjs/driver/http-request.cjs +64 -0
  14. package/build/cjs/driver/http-request.d.cts +28 -0
  15. package/build/cjs/driver/logger.cjs +45 -0
  16. package/build/cjs/driver/logger.d.cts +29 -0
  17. package/build/cjs/driver/remote-connection.cjs +5 -8
  18. package/build/cjs/driver/remote-connection.d.cts +6 -21
  19. package/build/cjs/driver/request-message.cjs +110 -21
  20. package/build/cjs/driver/request-message.d.cts +38 -8
  21. package/build/cjs/driver/response-error.cjs +3 -3
  22. package/build/cjs/driver/response-error.d.cts +2 -2
  23. package/build/cjs/index.cjs +21 -0
  24. package/build/cjs/index.d.cts +47 -0
  25. package/build/cjs/language/grammar/GremlinLexer.cjs +1669 -1615
  26. package/build/cjs/language/grammar/GremlinLexer.d.cts +325 -316
  27. package/build/cjs/language/grammar/GremlinListener.cjs +322 -8
  28. package/build/cjs/language/grammar/GremlinListener.d.cts +351 -10
  29. package/build/cjs/language/grammar/GremlinParser.cjs +8700 -5798
  30. package/build/cjs/language/grammar/GremlinParser.d.cts +998 -619
  31. package/build/cjs/language/translator/AnonymizedTranslateVisitor.cjs +9 -0
  32. package/build/cjs/language/translator/AnonymizedTranslateVisitor.d.cts +3 -0
  33. package/build/cjs/language/translator/DotNetTranslateVisitor.cjs +113 -4
  34. package/build/cjs/language/translator/DotNetTranslateVisitor.d.cts +13 -2
  35. package/build/cjs/language/translator/GoTranslateVisitor.cjs +82 -0
  36. package/build/cjs/language/translator/GoTranslateVisitor.d.cts +9 -0
  37. package/build/cjs/language/translator/GroovyTranslateVisitor.cjs +23 -0
  38. package/build/cjs/language/translator/GroovyTranslateVisitor.d.cts +3 -0
  39. package/build/cjs/language/translator/JavaTranslateVisitor.cjs +23 -0
  40. package/build/cjs/language/translator/JavaTranslateVisitor.d.cts +3 -0
  41. package/build/cjs/language/translator/JavascriptTranslateVisitor.cjs +11 -0
  42. package/build/cjs/language/translator/JavascriptTranslateVisitor.d.cts +3 -0
  43. package/build/cjs/language/translator/PythonTranslateVisitor.cjs +39 -3
  44. package/build/cjs/language/translator/PythonTranslateVisitor.d.cts +3 -0
  45. package/build/cjs/language/translator/TranslateVisitor.cjs +9 -0
  46. package/build/cjs/language/translator/TranslateVisitor.d.cts +3 -0
  47. package/build/cjs/process/anonymous-traversal.cjs +5 -1
  48. package/build/cjs/process/graph-traversal.cjs +139 -8
  49. package/build/cjs/process/graph-traversal.d.cts +84 -3
  50. package/build/cjs/process/gremlin-lang.cjs +119 -7
  51. package/build/cjs/process/gremlin-lang.d.cts +6 -1
  52. package/build/cjs/process/gvalue.cjs +42 -0
  53. package/build/cjs/process/gvalue.d.cts +7 -0
  54. package/build/cjs/process/transaction.cjs +125 -23
  55. package/build/cjs/process/transaction.d.cts +50 -14
  56. package/build/cjs/process/traversal.cjs +105 -48
  57. package/build/cjs/process/traversal.d.cts +36 -10
  58. package/build/cjs/structure/PDTRegistry.cjs +116 -0
  59. package/build/cjs/structure/PDTRegistry.d.cts +34 -0
  60. package/build/cjs/structure/graph.cjs +351 -8
  61. package/build/cjs/structure/graph.d.cts +122 -3
  62. package/build/cjs/structure/io/binary/GraphBinary.cjs +68 -39
  63. package/build/cjs/structure/io/binary/GraphBinary.d.cts +15 -1
  64. package/build/cjs/structure/io/binary/internals/AnySerializer.cjs +34 -17
  65. package/build/cjs/structure/io/binary/internals/AnySerializer.d.cts +12 -2
  66. package/build/cjs/structure/io/binary/internals/ArraySerializer.cjs +41 -72
  67. package/build/cjs/structure/io/binary/internals/ArraySerializer.d.cts +14 -7
  68. package/build/cjs/structure/io/binary/internals/BigIntegerSerializer.cjs +34 -54
  69. package/build/cjs/structure/io/binary/internals/BigIntegerSerializer.d.cts +12 -7
  70. package/build/cjs/structure/io/binary/internals/BinarySerializer.cjs +31 -51
  71. package/build/cjs/structure/io/binary/internals/BinarySerializer.d.cts +12 -4
  72. package/build/cjs/structure/io/binary/internals/BooleanSerializer.cjs +28 -42
  73. package/build/cjs/structure/io/binary/internals/BooleanSerializer.d.cts +12 -4
  74. package/build/cjs/structure/io/binary/internals/ByteSerializer.cjs +24 -38
  75. package/build/cjs/structure/io/binary/internals/ByteSerializer.d.cts +12 -4
  76. package/build/cjs/structure/io/binary/internals/CompositePDTSerializer.cjs +81 -0
  77. package/build/cjs/structure/io/binary/internals/CompositePDTSerializer.d.cts +10 -0
  78. package/build/cjs/structure/io/binary/internals/DateTimeSerializer.cjs +52 -69
  79. package/build/cjs/structure/io/binary/internals/DateTimeSerializer.d.cts +12 -7
  80. package/build/cjs/structure/io/binary/internals/DoubleSerializer.cjs +24 -38
  81. package/build/cjs/structure/io/binary/internals/DoubleSerializer.d.cts +12 -4
  82. package/build/cjs/structure/io/binary/internals/EdgeSerializer.cjs +69 -124
  83. package/build/cjs/structure/io/binary/internals/EdgeSerializer.d.cts +14 -12
  84. package/build/cjs/structure/io/binary/internals/EnumSerializer.cjs +47 -59
  85. package/build/cjs/structure/io/binary/internals/EnumSerializer.d.cts +19 -4
  86. package/build/cjs/structure/io/binary/internals/FloatSerializer.cjs +24 -38
  87. package/build/cjs/structure/io/binary/internals/FloatSerializer.d.cts +12 -4
  88. package/build/cjs/structure/io/binary/internals/GraphBinaryReader.cjs +111 -37
  89. package/build/cjs/structure/io/binary/internals/GraphBinaryReader.d.cts +26 -2
  90. package/build/cjs/structure/io/binary/internals/GraphBinaryWriter.cjs +6 -6
  91. package/build/cjs/structure/io/binary/internals/GraphSerializer.cjs +184 -0
  92. package/build/cjs/structure/io/binary/internals/GraphSerializer.d.cts +22 -0
  93. package/build/cjs/structure/io/binary/internals/IntSerializer.cjs +33 -38
  94. package/build/cjs/structure/io/binary/internals/IntSerializer.d.cts +19 -4
  95. package/build/cjs/structure/io/binary/internals/LongSerializer.cjs +29 -42
  96. package/build/cjs/structure/io/binary/internals/LongSerializer.d.cts +13 -4
  97. package/build/cjs/structure/io/binary/internals/MapSerializer.cjs +36 -70
  98. package/build/cjs/structure/io/binary/internals/MapSerializer.d.cts +14 -7
  99. package/build/cjs/structure/io/binary/internals/MarkerSerializer.cjs +30 -33
  100. package/build/cjs/structure/io/binary/internals/MarkerSerializer.d.cts +13 -4
  101. package/build/cjs/structure/io/binary/internals/NumberSerializationStrategy.cjs +28 -2
  102. package/build/cjs/structure/io/binary/internals/NumberSerializationStrategy.d.cts +0 -3
  103. package/build/cjs/structure/io/binary/internals/PathSerializer.cjs +30 -55
  104. package/build/cjs/structure/io/binary/internals/PathSerializer.d.cts +14 -7
  105. package/build/cjs/structure/io/binary/internals/PrimitivePDTSerializer.cjs +80 -0
  106. package/build/cjs/structure/io/binary/internals/PrimitivePDTSerializer.d.cts +10 -0
  107. package/build/cjs/structure/io/binary/internals/PropertySerializer.cjs +32 -69
  108. package/build/cjs/structure/io/binary/internals/PropertySerializer.d.cts +14 -7
  109. package/build/cjs/structure/io/binary/internals/SetSerializer.cjs +39 -73
  110. package/build/cjs/structure/io/binary/internals/SetSerializer.d.cts +14 -7
  111. package/build/cjs/structure/io/binary/internals/ShortSerializer.cjs +24 -38
  112. package/build/cjs/structure/io/binary/internals/ShortSerializer.d.cts +12 -4
  113. package/build/cjs/structure/io/binary/internals/StreamReader.cjs +184 -0
  114. package/build/cjs/structure/io/binary/internals/StreamReader.d.cts +69 -0
  115. package/build/cjs/structure/io/binary/internals/StringSerializer.cjs +34 -53
  116. package/build/cjs/structure/io/binary/internals/StringSerializer.d.cts +14 -4
  117. package/build/cjs/structure/io/binary/internals/StubSerializer.cjs +2 -1
  118. package/build/cjs/structure/io/binary/internals/StubSerializer.d.cts +1 -1
  119. package/build/cjs/structure/io/binary/internals/TreeSerializer.cjs +139 -0
  120. package/build/cjs/structure/io/binary/internals/TreeSerializer.d.cts +54 -0
  121. package/build/cjs/structure/io/binary/internals/UnspecifiedNullSerializer.cjs +8 -31
  122. package/build/cjs/structure/io/binary/internals/UnspecifiedNullSerializer.d.cts +6 -4
  123. package/build/cjs/structure/io/binary/internals/UuidSerializer.cjs +33 -49
  124. package/build/cjs/structure/io/binary/internals/UuidSerializer.d.cts +12 -7
  125. package/build/cjs/structure/io/binary/internals/VertexPropertySerializer.cjs +37 -95
  126. package/build/cjs/structure/io/binary/internals/VertexPropertySerializer.d.cts +14 -7
  127. package/build/cjs/structure/io/binary/internals/VertexSerializer.cjs +41 -68
  128. package/build/cjs/structure/io/binary/internals/VertexSerializer.d.cts +14 -9
  129. package/build/cjs/utils.cjs +157 -40
  130. package/build/cjs/utils.d.cts +62 -4
  131. package/build/esm/driver/auth.d.ts +1 -1
  132. package/build/esm/driver/auth.js +11 -4
  133. package/build/esm/driver/client.d.ts +30 -27
  134. package/build/esm/driver/client.js +82 -38
  135. package/build/esm/driver/connection.d.ts +69 -26
  136. package/build/esm/driver/connection.js +172 -60
  137. package/build/esm/driver/dispatcher.browser.d.ts +35 -0
  138. package/build/esm/driver/dispatcher.browser.js +53 -0
  139. package/build/esm/driver/dispatcher.d.ts +48 -0
  140. package/build/esm/driver/dispatcher.js +94 -0
  141. package/build/esm/driver/driver-remote-connection.d.ts +10 -4
  142. package/build/esm/driver/driver-remote-connection.js +27 -15
  143. package/build/esm/driver/http-request.d.ts +28 -0
  144. package/build/esm/driver/http-request.js +60 -0
  145. package/build/esm/driver/logger.d.ts +29 -0
  146. package/build/esm/driver/logger.js +42 -0
  147. package/build/esm/driver/remote-connection.d.ts +6 -21
  148. package/build/esm/driver/remote-connection.js +5 -8
  149. package/build/esm/driver/request-message.d.ts +38 -8
  150. package/build/esm/driver/request-message.js +107 -21
  151. package/build/esm/driver/response-error.d.ts +2 -2
  152. package/build/esm/driver/response-error.js +3 -3
  153. package/build/esm/index.d.ts +47 -0
  154. package/build/esm/index.js +21 -0
  155. package/build/esm/language/grammar/GremlinLexer.d.ts +325 -316
  156. package/build/esm/language/grammar/GremlinLexer.js +1669 -1615
  157. package/build/esm/language/grammar/GremlinListener.d.ts +351 -10
  158. package/build/esm/language/grammar/GremlinListener.js +322 -8
  159. package/build/esm/language/grammar/GremlinParser.d.ts +998 -619
  160. package/build/esm/language/grammar/GremlinParser.js +8646 -5778
  161. package/build/esm/language/translator/AnonymizedTranslateVisitor.d.ts +3 -0
  162. package/build/esm/language/translator/AnonymizedTranslateVisitor.js +9 -0
  163. package/build/esm/language/translator/DotNetTranslateVisitor.d.ts +13 -2
  164. package/build/esm/language/translator/DotNetTranslateVisitor.js +113 -4
  165. package/build/esm/language/translator/GoTranslateVisitor.d.ts +9 -0
  166. package/build/esm/language/translator/GoTranslateVisitor.js +82 -0
  167. package/build/esm/language/translator/GroovyTranslateVisitor.d.ts +3 -0
  168. package/build/esm/language/translator/GroovyTranslateVisitor.js +23 -0
  169. package/build/esm/language/translator/JavaTranslateVisitor.d.ts +3 -0
  170. package/build/esm/language/translator/JavaTranslateVisitor.js +23 -0
  171. package/build/esm/language/translator/JavascriptTranslateVisitor.d.ts +3 -0
  172. package/build/esm/language/translator/JavascriptTranslateVisitor.js +11 -0
  173. package/build/esm/language/translator/PythonTranslateVisitor.d.ts +3 -0
  174. package/build/esm/language/translator/PythonTranslateVisitor.js +39 -3
  175. package/build/esm/language/translator/TranslateVisitor.d.ts +3 -0
  176. package/build/esm/language/translator/TranslateVisitor.js +9 -0
  177. package/build/esm/process/anonymous-traversal.js +5 -1
  178. package/build/esm/process/graph-traversal.d.ts +84 -3
  179. package/build/esm/process/graph-traversal.js +139 -8
  180. package/build/esm/process/gremlin-lang.d.ts +6 -1
  181. package/build/esm/process/gremlin-lang.js +121 -9
  182. package/build/esm/process/gvalue.d.ts +7 -0
  183. package/build/esm/process/gvalue.js +38 -0
  184. package/build/esm/process/transaction.d.ts +50 -14
  185. package/build/esm/process/transaction.js +122 -23
  186. package/build/esm/process/traversal.d.ts +36 -10
  187. package/build/esm/process/traversal.js +104 -47
  188. package/build/esm/structure/PDTRegistry.d.ts +34 -0
  189. package/build/esm/structure/PDTRegistry.js +112 -0
  190. package/build/esm/structure/graph.d.ts +122 -3
  191. package/build/esm/structure/graph.js +347 -7
  192. package/build/esm/structure/io/binary/GraphBinary.d.ts +15 -1
  193. package/build/esm/structure/io/binary/GraphBinary.js +66 -38
  194. package/build/esm/structure/io/binary/internals/AnySerializer.d.ts +12 -2
  195. package/build/esm/structure/io/binary/internals/AnySerializer.js +34 -17
  196. package/build/esm/structure/io/binary/internals/ArraySerializer.d.ts +14 -7
  197. package/build/esm/structure/io/binary/internals/ArraySerializer.js +41 -72
  198. package/build/esm/structure/io/binary/internals/BigIntegerSerializer.d.ts +12 -7
  199. package/build/esm/structure/io/binary/internals/BigIntegerSerializer.js +34 -54
  200. package/build/esm/structure/io/binary/internals/BinarySerializer.d.ts +12 -4
  201. package/build/esm/structure/io/binary/internals/BinarySerializer.js +31 -51
  202. package/build/esm/structure/io/binary/internals/BooleanSerializer.d.ts +12 -4
  203. package/build/esm/structure/io/binary/internals/BooleanSerializer.js +28 -42
  204. package/build/esm/structure/io/binary/internals/ByteSerializer.d.ts +12 -4
  205. package/build/esm/structure/io/binary/internals/ByteSerializer.js +24 -38
  206. package/build/esm/structure/io/binary/internals/CompositePDTSerializer.d.ts +10 -0
  207. package/build/esm/structure/io/binary/internals/CompositePDTSerializer.js +78 -0
  208. package/build/esm/structure/io/binary/internals/DateTimeSerializer.d.ts +12 -7
  209. package/build/esm/structure/io/binary/internals/DateTimeSerializer.js +52 -69
  210. package/build/esm/structure/io/binary/internals/DoubleSerializer.d.ts +12 -4
  211. package/build/esm/structure/io/binary/internals/DoubleSerializer.js +24 -38
  212. package/build/esm/structure/io/binary/internals/EdgeSerializer.d.ts +14 -12
  213. package/build/esm/structure/io/binary/internals/EdgeSerializer.js +69 -124
  214. package/build/esm/structure/io/binary/internals/EnumSerializer.d.ts +19 -4
  215. package/build/esm/structure/io/binary/internals/EnumSerializer.js +47 -59
  216. package/build/esm/structure/io/binary/internals/FloatSerializer.d.ts +12 -4
  217. package/build/esm/structure/io/binary/internals/FloatSerializer.js +24 -38
  218. package/build/esm/structure/io/binary/internals/GraphBinaryReader.d.ts +26 -2
  219. package/build/esm/structure/io/binary/internals/GraphBinaryReader.js +108 -37
  220. package/build/esm/structure/io/binary/internals/GraphBinaryWriter.js +6 -6
  221. package/build/esm/structure/io/binary/internals/GraphSerializer.d.ts +22 -0
  222. package/build/esm/structure/io/binary/internals/GraphSerializer.js +181 -0
  223. package/build/esm/structure/io/binary/internals/IntSerializer.d.ts +19 -4
  224. package/build/esm/structure/io/binary/internals/IntSerializer.js +33 -38
  225. package/build/esm/structure/io/binary/internals/LongSerializer.d.ts +13 -4
  226. package/build/esm/structure/io/binary/internals/LongSerializer.js +29 -42
  227. package/build/esm/structure/io/binary/internals/MapSerializer.d.ts +14 -7
  228. package/build/esm/structure/io/binary/internals/MapSerializer.js +36 -70
  229. package/build/esm/structure/io/binary/internals/MarkerSerializer.d.ts +13 -4
  230. package/build/esm/structure/io/binary/internals/MarkerSerializer.js +29 -33
  231. package/build/esm/structure/io/binary/internals/NumberSerializationStrategy.d.ts +0 -3
  232. package/build/esm/structure/io/binary/internals/NumberSerializationStrategy.js +28 -2
  233. package/build/esm/structure/io/binary/internals/PathSerializer.d.ts +14 -7
  234. package/build/esm/structure/io/binary/internals/PathSerializer.js +30 -55
  235. package/build/esm/structure/io/binary/internals/PrimitivePDTSerializer.d.ts +10 -0
  236. package/build/esm/structure/io/binary/internals/PrimitivePDTSerializer.js +77 -0
  237. package/build/esm/structure/io/binary/internals/PropertySerializer.d.ts +14 -7
  238. package/build/esm/structure/io/binary/internals/PropertySerializer.js +32 -69
  239. package/build/esm/structure/io/binary/internals/SetSerializer.d.ts +14 -7
  240. package/build/esm/structure/io/binary/internals/SetSerializer.js +39 -73
  241. package/build/esm/structure/io/binary/internals/ShortSerializer.d.ts +12 -4
  242. package/build/esm/structure/io/binary/internals/ShortSerializer.js +24 -38
  243. package/build/esm/structure/io/binary/internals/StreamReader.d.ts +69 -0
  244. package/build/esm/structure/io/binary/internals/StreamReader.js +181 -0
  245. package/build/esm/structure/io/binary/internals/StringSerializer.d.ts +14 -4
  246. package/build/esm/structure/io/binary/internals/StringSerializer.js +34 -53
  247. package/build/esm/structure/io/binary/internals/StubSerializer.d.ts +1 -1
  248. package/build/esm/structure/io/binary/internals/StubSerializer.js +2 -1
  249. package/build/esm/structure/io/binary/internals/TreeSerializer.d.ts +54 -0
  250. package/build/esm/structure/io/binary/internals/TreeSerializer.js +136 -0
  251. package/build/esm/structure/io/binary/internals/UnspecifiedNullSerializer.d.ts +6 -4
  252. package/build/esm/structure/io/binary/internals/UnspecifiedNullSerializer.js +8 -31
  253. package/build/esm/structure/io/binary/internals/UuidSerializer.d.ts +12 -7
  254. package/build/esm/structure/io/binary/internals/UuidSerializer.js +33 -49
  255. package/build/esm/structure/io/binary/internals/VertexPropertySerializer.d.ts +14 -7
  256. package/build/esm/structure/io/binary/internals/VertexPropertySerializer.js +37 -95
  257. package/build/esm/structure/io/binary/internals/VertexSerializer.d.ts +14 -9
  258. package/build/esm/structure/io/binary/internals/VertexSerializer.js +41 -68
  259. package/build/esm/utils.d.ts +62 -4
  260. package/build/esm/utils.js +145 -6
  261. 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
- deserialize(buffer: any, fullyQualifiedFormat?: boolean, ...args: any[]): {
7
- v: null;
8
- len: number;
9
- } | {
10
- v: Edge<Vertex<any, Record<string, any>, any, {
11
- [x: string]: [import("../../../graph.js").VertexProperty<string, any, Record<string, any>, any>, ...import("../../../graph.js").VertexProperty<string, any, Record<string, any>, any>[]];
12
- }>, any, Vertex<any, Record<string, any>, any, {
13
- [x: string]: [import("../../../graph.js").VertexProperty<string, any, Record<string, any>, any>, ...import("../../../graph.js").VertexProperty<string, any, Record<string, any>, any>[]];
14
- }>, Record<string, any>, any>;
15
- len: number;
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 = Array.isArray(item.label) ? item.label : item.label ? [item.label] : [];
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 inVLabel = item.inV && item.inV.label;
61
- const inVLabels = Array.isArray(inVLabel) ? inVLabel : inVLabel ? [inVLabel] : [];
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 outVLabel = item.outV && item.outV.label;
68
- const outVLabels = Array.isArray(outVLabel) ? outVLabel : outVLabel ? [outVLabel] : [];
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
- deserialize(buffer, fullyQualifiedFormat = true) {
77
- let len = 0;
78
- let cursor = buffer;
79
- try {
80
- if (buffer === undefined || buffer === null || !(buffer instanceof Buffer)) {
81
- throw new Error('buffer is missing');
82
- }
83
- if (buffer.length < 1) {
84
- throw new Error('buffer is empty');
85
- }
86
- if (fullyQualifiedFormat) {
87
- const type_code = cursor.readUInt8();
88
- len++;
89
- if (type_code !== this.ioc.DataType.EDGE) {
90
- throw new Error('unexpected {type_code}');
91
- }
92
- cursor = cursor.slice(1);
93
- if (cursor.length < 1) {
94
- throw new Error('{value_flag} is missing');
95
- }
96
- const value_flag = cursor.readUInt8();
97
- len++;
98
- if (value_flag === 1) {
99
- return { v: null, len };
100
- }
101
- if (value_flag !== 0) {
102
- throw new Error('unexpected {value_flag}');
103
- }
104
- cursor = cursor.slice(1);
105
- }
106
- let id, id_len;
107
- try {
108
- ({ v: id, len: id_len } = this.ioc.anySerializer.deserialize(cursor));
109
- len += id_len;
110
- }
111
- catch (err) {
112
- err.message = '{id}: ' + err.message;
113
- throw err;
114
- }
115
- cursor = cursor.slice(id_len);
116
- let label, label_len;
117
- try {
118
- ({ v: label, len: label_len } = this.ioc.listSerializer.deserialize(cursor, false));
119
- label = Array.isArray(label) && label.length > 0 ? label[0] : label;
120
- len += label_len;
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
- catch (err) {
195
- throw this.ioc.utils.des_error({ serializer: this, args: arguments, cursor, err });
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
- deserialize(buffer: any, fullyQualifiedFormat?: boolean, ...args: any[]): {
21
- v: any;
22
- len: number;
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
- deserialize(buffer, fullyQualifiedFormat = true) {
63
- let len = 0;
64
- let cursor = buffer;
65
- try {
66
- if (buffer === undefined || buffer === null || !(buffer instanceof Buffer)) {
67
- throw new Error('buffer is missing');
68
- }
69
- if (buffer.length < 1) {
70
- throw new Error('buffer is empty');
71
- }
72
- let typeName;
73
- if (fullyQualifiedFormat) {
74
- const type_code = cursor.readUInt8();
75
- len++;
76
- if (type_code === this.ioc.DataType.DIRECTION) {
77
- typeName = 'Direction';
78
- }
79
- else if (type_code === this.ioc.DataType.MERGE) {
80
- typeName = 'Merge';
81
- }
82
- else if (type_code === this.ioc.DataType.T) {
83
- typeName = 'T';
84
- }
85
- else {
86
- throw new Error(`unexpected {type_code}=${type_code}`);
87
- }
88
- cursor = cursor.slice(1);
89
- if (cursor.length < 1) {
90
- throw new Error('{value_flag} is missing');
91
- }
92
- const value_flag = cursor.readUInt8();
93
- len++;
94
- if (value_flag === 1) {
95
- return { v: null, len };
96
- }
97
- if (value_flag !== 0) {
98
- throw new Error('unexpected {value_flag}');
99
- }
100
- cursor = cursor.slice(1);
101
- }
102
- let elementName, elementName_len;
103
- try {
104
- ({ v: elementName, len: elementName_len } = this.ioc.stringSerializer.deserialize(cursor, true));
105
- len += elementName_len;
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
- catch (err) {
121
- throw this.ioc.utils.des_error({ serializer: this, args: arguments, cursor, err });
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
- deserialize(buffer: any, fullyQualifiedFormat?: boolean, ...args: any[]): {
7
- v: any;
8
- len: number;
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
- deserialize(buffer, fullyQualifiedFormat = true) {
48
- let len = 0;
49
- let cursor = buffer;
50
- try {
51
- if (buffer === undefined || buffer === null || !(buffer instanceof Buffer)) {
52
- throw new Error('buffer is missing');
53
- }
54
- if (buffer.length < 1) {
55
- throw new Error('buffer is empty');
56
- }
57
- if (fullyQualifiedFormat) {
58
- const type_code = cursor.readUInt8();
59
- len++;
60
- if (type_code !== this.ioc.DataType.FLOAT) {
61
- throw new Error('unexpected {type_code}');
62
- }
63
- cursor = cursor.slice(1);
64
- if (cursor.length < 1) {
65
- throw new Error('{value_flag} is missing');
66
- }
67
- const value_flag = cursor.readUInt8();
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
- catch (err) {
85
- throw this.ioc.utils.des_error({ serializer: this, args: arguments, cursor, err });
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
- readResponse(buffer: any): {
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';