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
@@ -61,103 +61,45 @@ class VertexPropertySerializer {
61
61
  bufs.push(this.ioc.listSerializer.serialize([], true));
62
62
  return buffer_1.Buffer.concat(bufs);
63
63
  }
64
- deserialize(buffer, fullyQualifiedFormat = true) {
65
- let len = 0;
66
- let cursor = buffer;
67
- try {
68
- if (buffer === undefined || buffer === null || !(buffer instanceof buffer_1.Buffer)) {
69
- throw new Error('buffer is missing');
70
- }
71
- if (buffer.length < 1) {
72
- throw new Error('buffer is empty');
73
- }
74
- if (fullyQualifiedFormat) {
75
- const type_code = cursor.readUInt8();
76
- len++;
77
- if (type_code !== this.ioc.DataType.VERTEXPROPERTY) {
78
- throw new Error('unexpected {type_code}');
79
- }
80
- cursor = cursor.slice(1);
81
- if (cursor.length < 1) {
82
- throw new Error('{value_flag} is missing');
83
- }
84
- const value_flag = cursor.readUInt8();
85
- len++;
86
- if (value_flag === 1) {
87
- return { v: null, len };
88
- }
89
- if (value_flag !== 0) {
90
- throw new Error('unexpected {value_flag}');
91
- }
92
- cursor = cursor.slice(1);
93
- }
94
- // {id} is a fully qualified typed value composed of {type_code}{type_info}{value_flag}{value}
95
- let id, id_len;
96
- try {
97
- ({ v: id, len: id_len } = this.ioc.anySerializer.deserialize(cursor));
98
- len += id_len;
99
- }
100
- catch (err) {
101
- err.message = '{id}: ' + err.message;
102
- throw err;
103
- }
104
- cursor = cursor.slice(id_len);
105
- // {label} is a List value
106
- let label, label_len;
107
- try {
108
- ({ v: label, len: label_len } = this.ioc.listSerializer.deserialize(cursor, false));
109
- label = Array.isArray(label) && label.length > 0 ? label[0] : label;
110
- len += label_len;
111
- }
112
- catch (err) {
113
- err.message = '{label}: ' + err.message;
114
- throw err;
115
- }
116
- cursor = cursor.slice(label_len);
117
- // {value} is a fully qualified typed value composed of {type_code}{type_info}{value_flag}{value}
118
- let value, value_len;
119
- try {
120
- ({ v: value, len: value_len } = this.ioc.anySerializer.deserialize(cursor));
121
- len += value_len;
122
- }
123
- catch (err) {
124
- err.message = '{value}: ' + err.message;
125
- throw err;
126
- }
127
- cursor = cursor.slice(value_len);
128
- // {parent} is a fully qualified typed value composed of {type_code}{type_info}{value_flag}{value} which contains the parent Vertex.
129
- // Note that as TinkerPop currently send "references" only, this value will always be null.
130
- let parent_len;
131
- try {
132
- ({ len: parent_len } = this.ioc.unspecifiedNullSerializer.deserialize(cursor));
133
- len += parent_len;
134
- }
135
- catch (err) {
136
- err.message = '{parent}: ' + err.message;
137
- throw err;
138
- }
139
- // TODO: should we verify that parent is null?
140
- cursor = cursor.slice(parent_len);
141
- // {properties} is a fully qualified typed value composed of {type_code}{type_info}{value_flag}{value} which contains properties. Note that as TinkerPop currently send "references" only, this value will always be null.
142
- let properties, properties_len;
143
- try {
144
- ({ v: properties, len: properties_len } = this.ioc.anySerializer.deserialize(cursor));
145
- len += properties_len;
146
- }
147
- catch (err) {
148
- err.message = '{properties}: ' + err.message;
149
- throw err;
150
- }
151
- // TODO: should we verify that properties is null?
152
- cursor = cursor.slice(properties_len);
153
- // null properties are deserialized into empty lists
154
- const vp_props = properties ? properties : [];
155
- const v = new graph_js_1.VertexProperty(id, label, value, vp_props);
156
- return { v, len };
64
+ /**
65
+ * Async deserialization of vertex property value bytes from a StreamReader.
66
+ * @param {StreamReader} reader
67
+ * @param {number} valueFlag
68
+ * @param {number} typeCode
69
+ * @returns {Promise<VertexProperty>}
70
+ */
71
+ async deserializeValue(reader, valueFlag, typeCode) {
72
+ // {id} fully qualified
73
+ const id = await this.ioc.anySerializer.deserialize(reader);
74
+ // {label} bare list, extract first element
75
+ const labelList = await this.ioc.listSerializer.deserializeValue(reader, 0x00, this.ioc.DataType.LIST);
76
+ const label = Array.isArray(labelList) && labelList.length > 0 ? labelList[0] : labelList;
77
+ // {value} fully qualified
78
+ const value = await this.ioc.anySerializer.deserialize(reader);
79
+ // {parent} fully qualified (always null in current TinkerPop)
80
+ await this.ioc.anySerializer.deserialize(reader);
81
+ // {properties} fully qualified
82
+ const properties = await this.ioc.anySerializer.deserialize(reader);
83
+ return new graph_js_1.VertexProperty(id, label, value, properties || []);
84
+ }
85
+ /**
86
+ * Async fully-qualified deserialization from a StreamReader.
87
+ * @param {StreamReader} reader
88
+ * @returns {Promise<VertexProperty|null>}
89
+ */
90
+ async deserialize(reader) {
91
+ const type_code = await reader.readUInt8();
92
+ if (type_code !== this.ioc.DataType.VERTEXPROPERTY) {
93
+ throw new Error(`VertexPropertySerializer: unexpected {type_code}=0x${type_code.toString(16)}`);
94
+ }
95
+ const value_flag = await reader.readUInt8();
96
+ if (value_flag === 0x01) {
97
+ return null;
157
98
  }
158
- catch (err) {
159
- throw this.ioc.utils.des_error({ serializer: this, args: arguments, cursor, err });
99
+ if (value_flag !== 0x00) {
100
+ throw new Error(`VertexPropertySerializer: unexpected {value_flag}=0x${value_flag.toString(16)}`);
160
101
  }
102
+ return this.deserializeValue(reader, value_flag, type_code);
161
103
  }
162
104
  }
163
105
  exports.default = VertexPropertySerializer;
@@ -3,13 +3,20 @@ export default class VertexPropertySerializer {
3
3
  ioc: any;
4
4
  canBeUsedFor(value: any): value is VertexProperty<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: VertexProperty<any, any, Record<string, any>, any>;
11
- len: number;
12
- };
6
+ /**
7
+ * Async deserialization of vertex property value bytes from a StreamReader.
8
+ * @param {StreamReader} reader
9
+ * @param {number} valueFlag
10
+ * @param {number} typeCode
11
+ * @returns {Promise<VertexProperty>}
12
+ */
13
+ deserializeValue(reader: StreamReader, valueFlag: number, typeCode: number): Promise<VertexProperty>;
14
+ /**
15
+ * Async fully-qualified deserialization from a StreamReader.
16
+ * @param {StreamReader} reader
17
+ * @returns {Promise<VertexProperty|null>}
18
+ */
19
+ deserialize(reader: StreamReader): Promise<VertexProperty | null>;
13
20
  }
14
21
  import { VertexProperty } from '../../../graph.cjs';
15
22
  import { Buffer } from 'buffer';
@@ -48,81 +48,54 @@ class VertexSerializer {
48
48
  // {id}
49
49
  bufs.push(this.ioc.anySerializer.serialize(item.id));
50
50
  // {label}
51
- const labels = Array.isArray(item.label) ? item.label : item.label ? [item.label] : [];
51
+ const labels = item.labels instanceof Set
52
+ ? Array.from(item.labels)
53
+ : Array.isArray(item.label)
54
+ ? item.label
55
+ : item.label
56
+ ? [item.label]
57
+ : [];
52
58
  bufs.push(this.ioc.listSerializer.serialize(labels, false));
53
59
  // {properties}
54
60
  bufs.push(this.ioc.listSerializer.serialize([], true));
55
61
  return buffer_1.Buffer.concat(bufs);
56
62
  }
57
- deserialize(buffer, fullyQualifiedFormat = true) {
58
- let len = 0;
59
- let cursor = buffer;
60
- try {
61
- if (buffer === undefined || buffer === null || !(buffer instanceof buffer_1.Buffer)) {
62
- throw new Error('buffer is missing');
63
- }
64
- if (buffer.length < 1) {
65
- throw new Error('buffer is empty');
66
- }
67
- if (fullyQualifiedFormat) {
68
- const type_code = cursor.readUInt8();
69
- len++;
70
- if (type_code !== this.ioc.DataType.VERTEX) {
71
- throw new Error('unexpected {type_code}');
72
- }
73
- cursor = cursor.slice(1);
74
- if (cursor.length < 1) {
75
- throw new Error('{value_flag} is missing');
76
- }
77
- const value_flag = cursor.readUInt8();
78
- len++;
79
- if (value_flag === 1) {
80
- return { v: null, len };
81
- }
82
- if (value_flag !== 0) {
83
- throw new Error('unexpected {value_flag}');
84
- }
85
- cursor = cursor.slice(1);
86
- }
87
- let id, id_len;
88
- try {
89
- ({ v: id, len: id_len } = this.ioc.anySerializer.deserialize(cursor));
90
- len += id_len;
91
- }
92
- catch (err) {
93
- err.message = '{id}: ' + err.message;
94
- throw err;
95
- }
96
- cursor = cursor.slice(id_len);
97
- let label, label_len;
98
- try {
99
- ({ v: label, len: label_len } = this.ioc.listSerializer.deserialize(cursor, false));
100
- label = Array.isArray(label) && label.length > 0 ? label[0] : label;
101
- len += label_len;
102
- }
103
- catch (err) {
104
- err.message = '{label}: ' + err.message;
105
- throw err;
106
- }
107
- cursor = cursor.slice(label_len);
108
- let properties, properties_len;
109
- try {
110
- ({ v: properties, len: properties_len } = this.ioc.anySerializer.deserialize(cursor));
111
- len += properties_len;
112
- }
113
- catch (err) {
114
- err.message = '{properties}: ' + err.message;
115
- throw err;
116
- }
117
- cursor = cursor.slice(properties_len);
118
- // null properties are deserialized into empty lists
119
- const vertex_props = properties ? properties : [];
120
- const v = new graph_js_1.Vertex(id, label, vertex_props);
121
- return { v, len };
63
+ /**
64
+ * Async deserialization of vertex value bytes from a StreamReader.
65
+ * @param {StreamReader} reader
66
+ * @param {number} valueFlag
67
+ * @param {number} typeCode
68
+ * @returns {Promise<Vertex>}
69
+ */
70
+ async deserializeValue(reader, valueFlag, typeCode) {
71
+ // {id} fully qualified
72
+ const id = await this.ioc.anySerializer.deserialize(reader);
73
+ // {label} bare list - full multi-label list
74
+ const labelList = await this.ioc.listSerializer.deserializeValue(reader, 0x00, this.ioc.DataType.LIST);
75
+ const labels = Array.isArray(labelList) ? labelList : labelList ? [labelList] : [];
76
+ const label = labels.length > 0 ? labels[0] : 'vertex';
77
+ // {properties} fully qualified
78
+ const properties = await this.ioc.anySerializer.deserialize(reader);
79
+ return new graph_js_1.Vertex(id, label, properties || [], labels);
80
+ }
81
+ /**
82
+ * Async fully-qualified deserialization from a StreamReader.
83
+ * @param {StreamReader} reader
84
+ * @returns {Promise<Vertex|null>}
85
+ */
86
+ async deserialize(reader) {
87
+ const type_code = await reader.readUInt8();
88
+ if (type_code !== this.ioc.DataType.VERTEX) {
89
+ throw new Error(`VertexSerializer: unexpected {type_code}=0x${type_code.toString(16)}`);
90
+ }
91
+ const value_flag = await reader.readUInt8();
92
+ if (value_flag === 0x01) {
93
+ return null;
122
94
  }
123
- catch (err) {
124
- throw this.ioc.utils.des_error({ serializer: this, args: arguments, cursor, err });
95
+ if (value_flag !== 0x00) {
96
+ throw new Error(`VertexSerializer: unexpected {value_flag}=0x${value_flag.toString(16)}`);
125
97
  }
98
+ return this.deserializeValue(reader, value_flag, type_code);
126
99
  }
127
100
  }
128
101
  exports.default = VertexSerializer;
@@ -3,15 +3,20 @@ export default class VertexSerializer {
3
3
  ioc: any;
4
4
  canBeUsedFor(value: any): value is Vertex<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: Vertex<any, Record<string, any>, any, {
11
- [x: string]: [import("../../../graph.cjs").VertexProperty<string, any, Record<string, any>, any>, ...import("../../../graph.cjs").VertexProperty<string, any, Record<string, any>, any>[]];
12
- }>;
13
- len: number;
14
- };
6
+ /**
7
+ * Async deserialization of vertex value bytes from a StreamReader.
8
+ * @param {StreamReader} reader
9
+ * @param {number} valueFlag
10
+ * @param {number} typeCode
11
+ * @returns {Promise<Vertex>}
12
+ */
13
+ deserializeValue(reader: StreamReader, valueFlag: number, typeCode: number): Promise<Vertex>;
14
+ /**
15
+ * Async fully-qualified deserialization from a StreamReader.
16
+ * @param {StreamReader} reader
17
+ * @returns {Promise<Vertex|null>}
18
+ */
19
+ deserialize(reader: StreamReader): Promise<Vertex | null>;
15
20
  }
16
21
  import { Vertex } from '../../../graph.cjs';
17
22
  import { Buffer } from 'buffer';
@@ -17,66 +17,183 @@
17
17
  * specific language governing permissions and limitations
18
18
  * under the License.
19
19
  */
20
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
21
- if (k2 === undefined) k2 = k;
22
- var desc = Object.getOwnPropertyDescriptor(m, k);
23
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
24
- desc = { enumerable: true, get: function() { return m[k]; } };
25
- }
26
- Object.defineProperty(o, k2, desc);
27
- }) : (function(o, m, k, k2) {
28
- if (k2 === undefined) k2 = k;
29
- o[k2] = m[k];
30
- }));
31
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
32
- Object.defineProperty(o, "default", { enumerable: true, value: v });
33
- }) : function(o, v) {
34
- o["default"] = v;
35
- });
36
- var __importStar = (this && this.__importStar) || (function () {
37
- var ownKeys = function(o) {
38
- ownKeys = Object.getOwnPropertyNames || function (o) {
39
- var ar = [];
40
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
41
- return ar;
42
- };
43
- return ownKeys(o);
44
- };
45
- return function (mod) {
46
- if (mod && mod.__esModule) return mod;
47
- var result = {};
48
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
49
- __setModuleDefault(result, mod);
50
- return result;
51
- };
52
- })();
53
20
  Object.defineProperty(exports, "__esModule", { value: true });
54
- exports.DeferredPromise = exports.toArrayBuffer = exports.getUserAgent = exports.ImmutableMap = exports.emptyArray = exports.Long = void 0;
21
+ exports.DeferredPromise = exports.toArrayBuffer = exports.getUserAgent = exports.ImmutableMap = exports.emptyArray = exports.Byte = exports.Short = exports.Double = exports.Float = exports.Int = exports.Long = exports.INT32_MAX = exports.INT32_MIN = void 0;
55
22
  exports.toLong = toLong;
23
+ exports.toInt = toInt;
24
+ exports.toFloat = toFloat;
25
+ exports.toDouble = toDouble;
26
+ exports.toShort = toShort;
27
+ exports.toByte = toByte;
28
+ exports.unwrap = unwrap;
56
29
  exports.getUuid = getUuid;
57
30
  exports.getUserAgentHeader = getUserAgentHeader;
58
31
  /**
59
32
  * A module containing any utility functions.
60
33
  * @author Jorge Bay Gondra
61
34
  */
62
- const uuid = __importStar(require("uuid"));
63
- const gremlinVersion = '4.0.0-beta.2'; // DO NOT MODIFY - Configured automatically by Maven Replacer Plugin
35
+ const gremlinVersion = '4.0.0-beta.3'; // DO NOT MODIFY - Configured automatically by Maven Replacer Plugin
36
+ const INT64_MIN = -9223372036854775808n;
37
+ const INT64_MAX = 9223372036854775807n;
38
+ exports.INT32_MIN = -2147483648;
39
+ exports.INT32_MAX = 2147483647;
64
40
  function toLong(value) {
65
41
  return new Long(value);
66
42
  }
67
43
  class Long {
68
44
  value;
45
+ type = 'long';
69
46
  constructor(value) {
70
47
  this.value = value;
71
- if (typeof value !== 'string' && typeof value !== 'number') {
72
- throw new TypeError('The value must be a string or a number');
48
+ if (typeof value !== 'string' && typeof value !== 'number' && typeof value !== 'bigint') {
49
+ throw new TypeError('The value must be a string, a number, or a bigint');
73
50
  }
51
+ if (typeof value === 'string') {
52
+ if (!/^(?:0|-?[1-9]\d*)$/.test(value)) {
53
+ throw new TypeError('Long value must be a valid integer');
54
+ }
55
+ const n = BigInt(value);
56
+ if (n < INT64_MIN || n > INT64_MAX) {
57
+ throw new RangeError('Long value is outside int64 range');
58
+ }
59
+ }
60
+ if (typeof value === 'number') {
61
+ if (!Number.isInteger(value)) {
62
+ throw new TypeError('Long value must be an integer');
63
+ }
64
+ if (value > Number.MAX_SAFE_INTEGER || value < Number.MIN_SAFE_INTEGER) {
65
+ throw new RangeError('Long number values outside safe integer range lose precision; use string or bigint');
66
+ }
67
+ }
68
+ if (typeof value === 'bigint') {
69
+ if (value < INT64_MIN || value > INT64_MAX) {
70
+ throw new RangeError('Long value is outside int64 range');
71
+ }
72
+ }
73
+ }
74
+ valueOf() {
75
+ if (typeof this.value === 'number')
76
+ return this.value;
77
+ const big = typeof this.value === 'bigint' ? this.value : BigInt(this.value);
78
+ if (big > BigInt(Number.MAX_SAFE_INTEGER) || big < BigInt(Number.MIN_SAFE_INTEGER)) {
79
+ throw new RangeError('Long value is outside safe integer range');
80
+ }
81
+ return Number(big);
82
+ }
83
+ [Symbol.toPrimitive](hint) {
84
+ if (hint === 'string')
85
+ return String(this.value);
86
+ return this.valueOf();
87
+ }
88
+ toJSON() {
89
+ if (typeof this.value === 'bigint')
90
+ return this.value.toString();
91
+ return this.value;
74
92
  }
75
93
  }
76
94
  exports.Long = Long;
95
+ class Int {
96
+ value;
97
+ type = 'int';
98
+ constructor(value) {
99
+ this.value = value;
100
+ if (typeof value !== 'number') {
101
+ throw new TypeError('Int value must be a number');
102
+ }
103
+ if (!Number.isFinite(value) || !Number.isInteger(value)) {
104
+ throw new TypeError('Int value must be a finite integer');
105
+ }
106
+ if (value < exports.INT32_MIN || value > exports.INT32_MAX) {
107
+ throw new RangeError('Int value must be within int32 range');
108
+ }
109
+ }
110
+ valueOf() { return this.value; }
111
+ [Symbol.toPrimitive](hint) { return hint === 'string' ? String(this.value) : this.value; }
112
+ toJSON() { return this.value; }
113
+ }
114
+ exports.Int = Int;
115
+ class Float {
116
+ value;
117
+ type = 'float';
118
+ constructor(value) {
119
+ this.value = value;
120
+ if (typeof value !== 'number') {
121
+ throw new TypeError('Float value must be a number');
122
+ }
123
+ }
124
+ valueOf() { return this.value; }
125
+ [Symbol.toPrimitive](hint) { return hint === 'string' ? String(this.value) : this.value; }
126
+ toJSON() { return this.value; }
127
+ }
128
+ exports.Float = Float;
129
+ class Double {
130
+ value;
131
+ type = 'double';
132
+ constructor(value) {
133
+ this.value = value;
134
+ if (typeof value !== 'number') {
135
+ throw new TypeError('Double value must be a number');
136
+ }
137
+ }
138
+ valueOf() { return this.value; }
139
+ [Symbol.toPrimitive](hint) { return hint === 'string' ? String(this.value) : this.value; }
140
+ toJSON() { return this.value; }
141
+ }
142
+ exports.Double = Double;
143
+ class Short {
144
+ value;
145
+ type = 'short';
146
+ constructor(value) {
147
+ this.value = value;
148
+ if (typeof value !== 'number') {
149
+ throw new TypeError('Short value must be a number');
150
+ }
151
+ if (!Number.isFinite(value) || !Number.isInteger(value)) {
152
+ throw new TypeError('Short value must be a finite integer');
153
+ }
154
+ if (value < -32768 || value > 32767) {
155
+ throw new RangeError('Short value must be within int16 range');
156
+ }
157
+ }
158
+ valueOf() { return this.value; }
159
+ [Symbol.toPrimitive](hint) { return hint === 'string' ? String(this.value) : this.value; }
160
+ toJSON() { return this.value; }
161
+ }
162
+ exports.Short = Short;
163
+ class Byte {
164
+ value;
165
+ type = 'byte';
166
+ constructor(value) {
167
+ this.value = value;
168
+ if (typeof value !== 'number') {
169
+ throw new TypeError('Byte value must be a number');
170
+ }
171
+ if (!Number.isFinite(value) || !Number.isInteger(value)) {
172
+ throw new TypeError('Byte value must be a finite integer');
173
+ }
174
+ if (value < -128 || value > 127) {
175
+ throw new RangeError('Byte value must be within int8 range');
176
+ }
177
+ }
178
+ valueOf() { return this.value; }
179
+ [Symbol.toPrimitive](hint) { return hint === 'string' ? String(this.value) : this.value; }
180
+ toJSON() { return this.value; }
181
+ }
182
+ exports.Byte = Byte;
183
+ function toInt(value) { return new Int(value); }
184
+ function toFloat(value) { return new Float(value); }
185
+ function toDouble(value) { return new Double(value); }
186
+ function toShort(value) { return new Short(value); }
187
+ function toByte(value) { return new Byte(value); }
188
+ function unwrap(value) {
189
+ if (value instanceof Long || value instanceof Int || value instanceof Float ||
190
+ value instanceof Double || value instanceof Short || value instanceof Byte) {
191
+ return value.value;
192
+ }
193
+ return value;
194
+ }
77
195
  function getUuid() {
78
- // TODO: replace with `globalThis.crypto.randomUUID` once supported Node version is bump to >=19
79
- return uuid.v4();
196
+ return globalThis.crypto.randomUUID();
80
197
  }
81
198
  exports.emptyArray = Object.freeze([]);
82
199
  class ImmutableMap extends Map {
@@ -1,9 +1,67 @@
1
- export declare function toLong(value: number | string): Long;
1
+ export declare const INT32_MIN = -2147483648;
2
+ export declare const INT32_MAX = 2147483647;
3
+ export declare function toLong(value: number | string | bigint): Long;
2
4
  export declare class Long {
3
- value: number | string;
4
- constructor(value: number | string);
5
+ readonly value: number | string | bigint;
6
+ readonly type = "long";
7
+ constructor(value: number | string | bigint);
8
+ valueOf(): number;
9
+ [Symbol.toPrimitive](hint: string): string | number;
10
+ toJSON(): string | number;
5
11
  }
6
- export declare function getUuid(): string;
12
+ export declare class Int {
13
+ readonly value: number;
14
+ readonly type = "int";
15
+ constructor(value: number);
16
+ valueOf(): number;
17
+ [Symbol.toPrimitive](hint: string): string | number;
18
+ toJSON(): number;
19
+ }
20
+ export declare class Float {
21
+ readonly value: number;
22
+ readonly type = "float";
23
+ constructor(value: number);
24
+ valueOf(): number;
25
+ [Symbol.toPrimitive](hint: string): string | number;
26
+ toJSON(): number;
27
+ }
28
+ export declare class Double {
29
+ readonly value: number;
30
+ readonly type = "double";
31
+ constructor(value: number);
32
+ valueOf(): number;
33
+ [Symbol.toPrimitive](hint: string): string | number;
34
+ toJSON(): number;
35
+ }
36
+ export declare class Short {
37
+ readonly value: number;
38
+ readonly type = "short";
39
+ constructor(value: number);
40
+ valueOf(): number;
41
+ [Symbol.toPrimitive](hint: string): string | number;
42
+ toJSON(): number;
43
+ }
44
+ export declare class Byte {
45
+ readonly value: number;
46
+ readonly type = "byte";
47
+ constructor(value: number);
48
+ valueOf(): number;
49
+ [Symbol.toPrimitive](hint: string): string | number;
50
+ toJSON(): number;
51
+ }
52
+ export declare function toInt(value: number): Int;
53
+ export declare function toFloat(value: number): Float;
54
+ export declare function toDouble(value: number): Double;
55
+ export declare function toShort(value: number): Short;
56
+ export declare function toByte(value: number): Byte;
57
+ export declare function unwrap(value: Float): number;
58
+ export declare function unwrap(value: Double): number;
59
+ export declare function unwrap(value: Int): number;
60
+ export declare function unwrap(value: Long): number | string | bigint;
61
+ export declare function unwrap(value: Short): number;
62
+ export declare function unwrap(value: Byte): number;
63
+ export declare function unwrap<T>(value: T): T;
64
+ export declare function getUuid(): `${string}-${string}-${string}-${string}-${string}`;
7
65
  export declare const emptyArray: any[];
8
66
  export declare class ImmutableMap<K, V> extends Map<K, V> implements ReadonlyMap<K, V> {
9
67
  constructor(iterable?: Iterable<[K, V]>);
@@ -1,4 +1,4 @@
1
- import type { RequestInterceptor } from './connection.js';
1
+ import type { RequestInterceptor } from './http-request.js';
2
2
  export declare function basic(username: string, password: string): RequestInterceptor;
3
3
  export interface AwsCredentials {
4
4
  accessKeyId: string;