gremlin 3.8.1 → 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 (455) hide show
  1. package/README.md +18 -4
  2. package/build/cjs/driver/auth.cjs +76 -0
  3. package/build/cjs/driver/auth.d.cts +9 -0
  4. package/build/cjs/driver/client.cjs +178 -0
  5. package/build/cjs/driver/client.d.cts +88 -0
  6. package/build/cjs/driver/connection.cjs +363 -0
  7. package/build/cjs/driver/connection.d.cts +106 -0
  8. package/build/cjs/driver/dispatcher.browser.cjs +57 -0
  9. package/build/cjs/driver/dispatcher.browser.d.cts +35 -0
  10. package/build/cjs/driver/dispatcher.cjs +101 -0
  11. package/build/cjs/driver/dispatcher.d.cts +48 -0
  12. package/build/cjs/driver/driver-remote-connection.cjs +153 -0
  13. package/build/cjs/driver/driver-remote-connection.d.cts +39 -0
  14. package/build/cjs/driver/http-request.cjs +64 -0
  15. package/build/cjs/driver/http-request.d.cts +28 -0
  16. package/build/cjs/driver/logger.cjs +45 -0
  17. package/build/cjs/driver/logger.d.cts +29 -0
  18. package/build/cjs/driver/remote-connection.cjs +72 -0
  19. package/build/cjs/driver/remote-connection.d.cts +57 -0
  20. package/build/cjs/driver/request-message.cjs +246 -0
  21. package/build/cjs/driver/request-message.d.cts +79 -0
  22. package/build/cjs/driver/response-error.cjs +45 -0
  23. package/build/cjs/driver/response-error.d.cts +13 -0
  24. package/build/cjs/driver/result-set.cjs +111 -0
  25. package/build/cjs/driver/result-set.d.cts +29 -0
  26. package/build/cjs/index.cjs +146 -0
  27. package/build/cjs/index.d.cts +440 -0
  28. package/build/cjs/language/grammar/GremlinLexer.cjs +1905 -0
  29. package/build/cjs/language/grammar/GremlinLexer.d.cts +349 -0
  30. package/build/cjs/language/grammar/GremlinListener.cjs +4804 -0
  31. package/build/cjs/language/grammar/GremlinListener.d.cts +5239 -0
  32. package/build/cjs/language/grammar/GremlinParser.cjs +38146 -0
  33. package/build/cjs/language/grammar/GremlinParser.d.cts +6260 -0
  34. package/build/cjs/language/index.cjs +48 -0
  35. package/build/cjs/language/index.d.cts +12 -0
  36. package/build/cjs/language/translator/AnonymizedTranslateVisitor.cjs +166 -0
  37. package/build/cjs/language/translator/AnonymizedTranslateVisitor.d.cts +39 -0
  38. package/build/cjs/language/translator/DotNetTranslateVisitor.cjs +935 -0
  39. package/build/cjs/language/translator/DotNetTranslateVisitor.d.cts +166 -0
  40. package/build/cjs/language/translator/GoTranslateVisitor.cjs +421 -0
  41. package/build/cjs/language/translator/GoTranslateVisitor.d.cts +40 -0
  42. package/build/cjs/language/translator/GremlinTranslator.cjs +96 -0
  43. package/build/cjs/language/translator/GremlinTranslator.d.cts +18 -0
  44. package/build/cjs/language/translator/GroovyTranslateVisitor.cjs +310 -0
  45. package/build/cjs/language/translator/GroovyTranslateVisitor.d.cts +37 -0
  46. package/build/cjs/language/translator/JavaTranslateVisitor.cjs +270 -0
  47. package/build/cjs/language/translator/JavaTranslateVisitor.d.cts +26 -0
  48. package/build/cjs/language/translator/JavascriptTranslateVisitor.cjs +231 -0
  49. package/build/cjs/language/translator/JavascriptTranslateVisitor.d.cts +28 -0
  50. package/build/cjs/language/translator/PythonTranslateVisitor.cjs +340 -0
  51. package/build/cjs/language/translator/PythonTranslateVisitor.d.cts +31 -0
  52. package/build/cjs/language/translator/TranslateVisitor.cjs +398 -0
  53. package/build/cjs/language/translator/TranslateVisitor.d.cts +94 -0
  54. package/build/cjs/language/translator/Translation.cjs +47 -0
  55. package/build/cjs/language/translator/Translation.d.cts +13 -0
  56. package/build/cjs/language/translator/Translator.cjs +46 -0
  57. package/build/cjs/language/translator/Translator.d.cts +24 -0
  58. package/build/cjs/language/translator/TranslatorException.cjs +31 -0
  59. package/build/cjs/language/translator/TranslatorException.d.cts +6 -0
  60. package/build/cjs/process/anonymous-traversal.cjs +82 -0
  61. package/build/cjs/process/anonymous-traversal.d.cts +40 -0
  62. package/build/cjs/process/graph-traversal.cjs +1833 -0
  63. package/build/cjs/process/graph-traversal.d.cts +1215 -0
  64. package/build/cjs/process/gremlin-lang.cjs +308 -0
  65. package/build/cjs/process/gremlin-lang.d.cts +20 -0
  66. package/{lib/driver/response-error.js → build/cjs/process/gvalue.cjs} +23 -28
  67. package/build/cjs/process/gvalue.d.cts +7 -0
  68. package/build/cjs/process/transaction.cjs +171 -0
  69. package/build/cjs/process/transaction.d.cts +70 -0
  70. package/build/cjs/process/traversal-strategy.cjs +360 -0
  71. package/build/cjs/process/traversal-strategy.d.cts +211 -0
  72. package/build/cjs/process/traversal.cjs +539 -0
  73. package/build/cjs/process/traversal.d.cts +212 -0
  74. package/build/cjs/structure/PDTRegistry.cjs +116 -0
  75. package/build/cjs/structure/PDTRegistry.d.cts +34 -0
  76. package/build/cjs/structure/graph.cjs +500 -0
  77. package/build/cjs/structure/graph.d.cts +176 -0
  78. package/build/cjs/structure/io/binary/GraphBinary.cjs +177 -0
  79. package/build/cjs/structure/io/binary/GraphBinary.d.cts +105 -0
  80. package/build/cjs/structure/io/binary/internals/AnySerializer.cjs +97 -0
  81. package/build/cjs/structure/io/binary/internals/AnySerializer.d.cts +18 -0
  82. package/build/cjs/structure/io/binary/internals/ArraySerializer.cjs +108 -0
  83. package/build/cjs/structure/io/binary/internals/ArraySerializer.d.cts +22 -0
  84. package/build/cjs/structure/io/binary/internals/BigIntegerSerializer.cjs +116 -0
  85. package/build/cjs/structure/io/binary/internals/BigIntegerSerializer.d.cts +19 -0
  86. package/build/cjs/structure/io/binary/internals/BinarySerializer.cjs +92 -0
  87. package/build/cjs/structure/io/binary/internals/BinarySerializer.d.cts +19 -0
  88. package/build/cjs/structure/io/binary/internals/BooleanSerializer.cjs +79 -0
  89. package/build/cjs/structure/io/binary/internals/BooleanSerializer.d.cts +19 -0
  90. package/build/cjs/structure/io/binary/internals/ByteSerializer.cjs +74 -0
  91. package/build/cjs/structure/io/binary/internals/ByteSerializer.d.cts +18 -0
  92. package/build/cjs/structure/io/binary/internals/CompositePDTSerializer.cjs +81 -0
  93. package/build/cjs/structure/io/binary/internals/CompositePDTSerializer.d.cts +10 -0
  94. package/build/cjs/structure/io/binary/internals/DataType.cjs +63 -0
  95. package/build/cjs/structure/io/binary/internals/DataType.d.cts +35 -0
  96. package/build/cjs/structure/io/binary/internals/DateTimeSerializer.cjs +122 -0
  97. package/build/cjs/structure/io/binary/internals/DateTimeSerializer.d.cts +20 -0
  98. package/build/cjs/structure/io/binary/internals/DoubleSerializer.cjs +77 -0
  99. package/build/cjs/structure/io/binary/internals/DoubleSerializer.d.cts +19 -0
  100. package/build/cjs/structure/io/binary/internals/EdgeSerializer.cjs +146 -0
  101. package/build/cjs/structure/io/binary/internals/EdgeSerializer.d.cts +22 -0
  102. package/build/cjs/structure/io/binary/internals/EnumSerializer.cjs +115 -0
  103. package/build/cjs/structure/io/binary/internals/EnumSerializer.d.cts +39 -0
  104. package/build/cjs/structure/io/binary/internals/FloatSerializer.cjs +77 -0
  105. package/build/cjs/structure/io/binary/internals/FloatSerializer.d.cts +19 -0
  106. package/build/cjs/structure/io/binary/internals/GraphBinaryReader.cjs +171 -0
  107. package/build/cjs/structure/io/binary/internals/GraphBinaryReader.d.cts +43 -0
  108. package/build/cjs/structure/io/binary/internals/GraphBinaryWriter.cjs +85 -0
  109. package/build/cjs/structure/io/binary/internals/GraphBinaryWriter.d.cts +9 -0
  110. package/build/cjs/structure/io/binary/internals/GraphSerializer.cjs +184 -0
  111. package/build/cjs/structure/io/binary/internals/GraphSerializer.d.cts +22 -0
  112. package/build/cjs/structure/io/binary/internals/IntSerializer.cjs +98 -0
  113. package/build/cjs/structure/io/binary/internals/IntSerializer.d.cts +28 -0
  114. package/build/cjs/structure/io/binary/internals/LongSerializer.cjs +82 -0
  115. package/build/cjs/structure/io/binary/internals/LongSerializer.d.cts +20 -0
  116. package/build/cjs/structure/io/binary/internals/MapSerializer.cjs +110 -0
  117. package/build/cjs/structure/io/binary/internals/MapSerializer.d.cts +20 -0
  118. package/build/cjs/structure/io/binary/internals/MarkerSerializer.cjs +60 -0
  119. package/build/cjs/structure/io/binary/internals/MarkerSerializer.d.cts +17 -0
  120. package/build/cjs/structure/io/binary/internals/NumberSerializationStrategy.cjs +92 -0
  121. package/build/cjs/structure/io/binary/internals/NumberSerializationStrategy.d.cts +6 -0
  122. package/build/cjs/structure/io/binary/internals/PathSerializer.cjs +88 -0
  123. package/build/cjs/structure/io/binary/internals/PathSerializer.d.cts +22 -0
  124. package/build/cjs/structure/io/binary/internals/PrimitivePDTSerializer.cjs +80 -0
  125. package/build/cjs/structure/io/binary/internals/PrimitivePDTSerializer.d.cts +10 -0
  126. package/build/cjs/structure/io/binary/internals/PropertySerializer.cjs +93 -0
  127. package/build/cjs/structure/io/binary/internals/PropertySerializer.d.cts +22 -0
  128. package/build/cjs/structure/io/binary/internals/SetSerializer.cjs +104 -0
  129. package/build/cjs/structure/io/binary/internals/SetSerializer.d.cts +22 -0
  130. package/build/cjs/structure/io/binary/internals/ShortSerializer.cjs +77 -0
  131. package/build/cjs/structure/io/binary/internals/ShortSerializer.d.cts +19 -0
  132. package/build/cjs/structure/io/binary/internals/StreamReader.cjs +184 -0
  133. package/build/cjs/structure/io/binary/internals/StreamReader.d.cts +69 -0
  134. package/build/cjs/structure/io/binary/internals/StringSerializer.cjs +88 -0
  135. package/build/cjs/structure/io/binary/internals/StringSerializer.d.cts +21 -0
  136. package/build/cjs/structure/io/binary/internals/StubSerializer.cjs +33 -0
  137. package/build/cjs/structure/io/binary/internals/StubSerializer.d.cts +7 -0
  138. package/build/cjs/structure/io/binary/internals/TreeSerializer.cjs +139 -0
  139. package/build/cjs/structure/io/binary/internals/TreeSerializer.d.cts +54 -0
  140. package/build/cjs/structure/io/binary/internals/UnspecifiedNullSerializer.cjs +47 -0
  141. package/build/cjs/structure/io/binary/internals/UnspecifiedNullSerializer.d.cts +13 -0
  142. package/build/cjs/structure/io/binary/internals/UuidSerializer.cjs +93 -0
  143. package/build/cjs/structure/io/binary/internals/UuidSerializer.d.cts +19 -0
  144. package/build/cjs/structure/io/binary/internals/VertexPropertySerializer.cjs +105 -0
  145. package/build/cjs/structure/io/binary/internals/VertexPropertySerializer.d.cts +22 -0
  146. package/build/cjs/structure/io/binary/internals/VertexSerializer.cjs +101 -0
  147. package/build/cjs/structure/io/binary/internals/VertexSerializer.d.cts +22 -0
  148. package/build/cjs/structure/io/binary/internals/utils.cjs +53 -0
  149. package/build/cjs/structure/io/binary/internals/utils.d.cts +6 -0
  150. package/build/cjs/utils.cjs +259 -0
  151. package/build/cjs/utils.d.cts +78 -0
  152. package/build/esm/driver/auth.d.ts +9 -0
  153. package/build/esm/driver/auth.js +72 -0
  154. package/build/esm/driver/client.d.ts +88 -0
  155. package/build/esm/driver/client.js +172 -0
  156. package/build/esm/driver/connection.d.ts +106 -0
  157. package/build/esm/driver/connection.js +323 -0
  158. package/build/esm/driver/dispatcher.browser.d.ts +35 -0
  159. package/build/esm/driver/dispatcher.browser.js +53 -0
  160. package/build/esm/driver/dispatcher.d.ts +48 -0
  161. package/build/esm/driver/dispatcher.js +94 -0
  162. package/build/esm/driver/driver-remote-connection.d.ts +39 -0
  163. package/build/esm/driver/driver-remote-connection.js +114 -0
  164. package/build/esm/driver/http-request.d.ts +28 -0
  165. package/build/esm/driver/http-request.js +60 -0
  166. package/build/esm/driver/logger.d.ts +29 -0
  167. package/build/esm/driver/logger.js +42 -0
  168. package/build/esm/driver/remote-connection.d.ts +57 -0
  169. package/build/esm/driver/remote-connection.js +66 -0
  170. package/build/esm/driver/request-message.d.ts +79 -0
  171. package/build/esm/driver/request-message.js +238 -0
  172. package/build/esm/driver/response-error.d.ts +13 -0
  173. package/{lib/driver/auth/mechanisms/sasl-mechanism-base.js → build/esm/driver/response-error.js} +24 -34
  174. package/build/esm/driver/result-set.d.ts +29 -0
  175. package/build/esm/driver/result-set.js +75 -0
  176. package/build/esm/index.d.ts +440 -0
  177. package/{index.js → build/esm/index.js} +44 -33
  178. package/build/esm/language/grammar/GremlinLexer.d.ts +349 -0
  179. package/build/esm/language/grammar/GremlinLexer.js +1868 -0
  180. package/build/esm/language/grammar/GremlinListener.d.ts +5239 -0
  181. package/build/esm/language/grammar/GremlinListener.js +4800 -0
  182. package/build/esm/language/grammar/GremlinParser.d.ts +6260 -0
  183. package/build/esm/language/grammar/GremlinParser.js +37579 -0
  184. package/build/esm/language/index.d.ts +12 -0
  185. package/build/esm/language/index.js +30 -0
  186. package/build/esm/language/translator/AnonymizedTranslateVisitor.d.ts +39 -0
  187. package/build/esm/language/translator/AnonymizedTranslateVisitor.js +160 -0
  188. package/build/esm/language/translator/DotNetTranslateVisitor.d.ts +166 -0
  189. package/build/esm/language/translator/DotNetTranslateVisitor.js +929 -0
  190. package/build/esm/language/translator/GoTranslateVisitor.d.ts +40 -0
  191. package/build/esm/language/translator/GoTranslateVisitor.js +415 -0
  192. package/build/esm/language/translator/GremlinTranslator.d.ts +18 -0
  193. package/build/esm/language/translator/GremlinTranslator.js +89 -0
  194. package/build/esm/language/translator/GroovyTranslateVisitor.d.ts +37 -0
  195. package/build/esm/language/translator/GroovyTranslateVisitor.js +304 -0
  196. package/build/esm/language/translator/JavaTranslateVisitor.d.ts +26 -0
  197. package/build/esm/language/translator/JavaTranslateVisitor.js +264 -0
  198. package/build/esm/language/translator/JavascriptTranslateVisitor.d.ts +28 -0
  199. package/build/esm/language/translator/JavascriptTranslateVisitor.js +225 -0
  200. package/build/esm/language/translator/PythonTranslateVisitor.d.ts +31 -0
  201. package/build/esm/language/translator/PythonTranslateVisitor.js +334 -0
  202. package/build/esm/language/translator/TranslateVisitor.d.ts +94 -0
  203. package/build/esm/language/translator/TranslateVisitor.js +395 -0
  204. package/build/esm/language/translator/Translation.d.ts +13 -0
  205. package/build/esm/language/translator/Translation.js +43 -0
  206. package/build/esm/language/translator/Translator.d.ts +24 -0
  207. package/build/esm/language/translator/Translator.js +40 -0
  208. package/build/esm/language/translator/TranslatorException.d.ts +6 -0
  209. package/build/esm/language/translator/TranslatorException.js +27 -0
  210. package/build/esm/process/anonymous-traversal.d.ts +40 -0
  211. package/build/esm/process/anonymous-traversal.js +76 -0
  212. package/build/esm/process/graph-traversal.d.ts +1215 -0
  213. package/build/esm/process/graph-traversal.js +1824 -0
  214. package/build/esm/process/gremlin-lang.d.ts +20 -0
  215. package/build/esm/process/gremlin-lang.js +305 -0
  216. package/build/esm/process/gvalue.d.ts +7 -0
  217. package/{lib/driver/auth/authenticator.js → build/esm/process/gvalue.js} +19 -19
  218. package/build/esm/process/transaction.d.ts +70 -0
  219. package/build/esm/process/transaction.js +164 -0
  220. package/build/esm/process/traversal-strategy.d.ts +211 -0
  221. package/build/esm/process/traversal-strategy.js +319 -0
  222. package/build/esm/process/traversal.d.ts +212 -0
  223. package/build/esm/process/traversal.js +526 -0
  224. package/build/esm/structure/PDTRegistry.d.ts +34 -0
  225. package/build/esm/structure/PDTRegistry.js +112 -0
  226. package/build/esm/structure/graph.d.ts +176 -0
  227. package/build/esm/structure/graph.js +488 -0
  228. package/build/esm/structure/io/binary/GraphBinary.d.ts +105 -0
  229. package/build/esm/structure/io/binary/GraphBinary.js +136 -0
  230. package/build/esm/structure/io/binary/internals/AnySerializer.d.ts +18 -0
  231. package/build/esm/structure/io/binary/internals/AnySerializer.js +94 -0
  232. package/build/esm/structure/io/binary/internals/ArraySerializer.d.ts +22 -0
  233. package/build/esm/structure/io/binary/internals/ArraySerializer.js +105 -0
  234. package/build/esm/structure/io/binary/internals/BigIntegerSerializer.d.ts +19 -0
  235. package/build/esm/structure/io/binary/internals/BigIntegerSerializer.js +113 -0
  236. package/build/esm/structure/io/binary/internals/BinarySerializer.d.ts +19 -0
  237. package/build/esm/structure/io/binary/internals/BinarySerializer.js +89 -0
  238. package/build/esm/structure/io/binary/internals/BooleanSerializer.d.ts +19 -0
  239. package/build/esm/structure/io/binary/internals/BooleanSerializer.js +76 -0
  240. package/build/esm/structure/io/binary/internals/ByteSerializer.d.ts +18 -0
  241. package/build/esm/structure/io/binary/internals/ByteSerializer.js +71 -0
  242. package/build/esm/structure/io/binary/internals/CompositePDTSerializer.d.ts +10 -0
  243. package/build/esm/structure/io/binary/internals/CompositePDTSerializer.js +78 -0
  244. package/build/esm/structure/io/binary/internals/DataType.d.ts +35 -0
  245. package/build/esm/structure/io/binary/internals/DataType.js +61 -0
  246. package/build/esm/structure/io/binary/internals/DateTimeSerializer.d.ts +20 -0
  247. package/build/esm/structure/io/binary/internals/DateTimeSerializer.js +119 -0
  248. package/build/esm/structure/io/binary/internals/DoubleSerializer.d.ts +19 -0
  249. package/build/esm/structure/io/binary/internals/DoubleSerializer.js +74 -0
  250. package/build/esm/structure/io/binary/internals/EdgeSerializer.d.ts +22 -0
  251. package/build/esm/structure/io/binary/internals/EdgeSerializer.js +143 -0
  252. package/build/esm/structure/io/binary/internals/EnumSerializer.d.ts +39 -0
  253. package/build/esm/structure/io/binary/internals/EnumSerializer.js +112 -0
  254. package/build/esm/structure/io/binary/internals/FloatSerializer.d.ts +19 -0
  255. package/build/esm/structure/io/binary/internals/FloatSerializer.js +74 -0
  256. package/build/esm/structure/io/binary/internals/GraphBinaryReader.d.ts +43 -0
  257. package/build/esm/structure/io/binary/internals/GraphBinaryReader.js +165 -0
  258. package/build/esm/structure/io/binary/internals/GraphBinaryWriter.d.ts +9 -0
  259. package/build/esm/structure/io/binary/internals/GraphBinaryWriter.js +82 -0
  260. package/build/esm/structure/io/binary/internals/GraphSerializer.d.ts +22 -0
  261. package/build/esm/structure/io/binary/internals/GraphSerializer.js +181 -0
  262. package/build/esm/structure/io/binary/internals/IntSerializer.d.ts +28 -0
  263. package/build/esm/structure/io/binary/internals/IntSerializer.js +95 -0
  264. package/build/esm/structure/io/binary/internals/LongSerializer.d.ts +20 -0
  265. package/build/esm/structure/io/binary/internals/LongSerializer.js +79 -0
  266. package/build/esm/structure/io/binary/internals/MapSerializer.d.ts +20 -0
  267. package/build/esm/structure/io/binary/internals/MapSerializer.js +107 -0
  268. package/build/esm/structure/io/binary/internals/MarkerSerializer.d.ts +17 -0
  269. package/build/esm/structure/io/binary/internals/MarkerSerializer.js +56 -0
  270. package/build/esm/structure/io/binary/internals/NumberSerializationStrategy.d.ts +6 -0
  271. package/build/esm/structure/io/binary/internals/NumberSerializationStrategy.js +89 -0
  272. package/build/esm/structure/io/binary/internals/PathSerializer.d.ts +22 -0
  273. package/build/esm/structure/io/binary/internals/PathSerializer.js +85 -0
  274. package/build/esm/structure/io/binary/internals/PrimitivePDTSerializer.d.ts +10 -0
  275. package/build/esm/structure/io/binary/internals/PrimitivePDTSerializer.js +77 -0
  276. package/build/esm/structure/io/binary/internals/PropertySerializer.d.ts +22 -0
  277. package/build/esm/structure/io/binary/internals/PropertySerializer.js +90 -0
  278. package/build/esm/structure/io/binary/internals/SetSerializer.d.ts +22 -0
  279. package/build/esm/structure/io/binary/internals/SetSerializer.js +101 -0
  280. package/build/esm/structure/io/binary/internals/ShortSerializer.d.ts +19 -0
  281. package/build/esm/structure/io/binary/internals/ShortSerializer.js +74 -0
  282. package/build/esm/structure/io/binary/internals/StreamReader.d.ts +69 -0
  283. package/build/esm/structure/io/binary/internals/StreamReader.js +181 -0
  284. package/build/esm/structure/io/binary/internals/StringSerializer.d.ts +21 -0
  285. package/build/esm/structure/io/binary/internals/StringSerializer.js +85 -0
  286. package/build/esm/structure/io/binary/internals/StubSerializer.d.ts +7 -0
  287. package/{.prettierrc.js → build/esm/structure/io/binary/internals/StubSerializer.js} +12 -11
  288. package/build/esm/structure/io/binary/internals/TreeSerializer.d.ts +54 -0
  289. package/build/esm/structure/io/binary/internals/TreeSerializer.js +136 -0
  290. package/build/esm/structure/io/binary/internals/UnspecifiedNullSerializer.d.ts +13 -0
  291. package/build/esm/structure/io/binary/internals/UnspecifiedNullSerializer.js +44 -0
  292. package/build/esm/structure/io/binary/internals/UuidSerializer.d.ts +19 -0
  293. package/build/esm/structure/io/binary/internals/UuidSerializer.js +90 -0
  294. package/build/esm/structure/io/binary/internals/VertexPropertySerializer.d.ts +22 -0
  295. package/build/esm/structure/io/binary/internals/VertexPropertySerializer.js +102 -0
  296. package/build/esm/structure/io/binary/internals/VertexSerializer.d.ts +22 -0
  297. package/build/esm/structure/io/binary/internals/VertexSerializer.js +98 -0
  298. package/build/esm/structure/io/binary/internals/utils.d.ts +6 -0
  299. package/{lib → build/esm}/structure/io/binary/internals/utils.js +23 -35
  300. package/build/esm/utils.d.ts +78 -0
  301. package/build/esm/utils.js +237 -0
  302. package/package.json +71 -26
  303. package/.nvmrc +0 -1
  304. package/NOTICE +0 -5
  305. package/doc/AnonymousTraversalSource.html +0 -793
  306. package/doc/Authenticator.html +0 -303
  307. package/doc/Bytecode.html +0 -941
  308. package/doc/CardinalityValue.html +0 -711
  309. package/doc/Client.html +0 -1869
  310. package/doc/Connection.html +0 -1192
  311. package/doc/DriverRemoteConnection.html +0 -1528
  312. package/doc/EdgeLabelVerificationStrategy.html +0 -238
  313. package/doc/Graph.html +0 -343
  314. package/doc/GraphSON2Reader.html +0 -407
  315. package/doc/GraphSON2Writer.html +0 -558
  316. package/doc/GraphSON3Reader.html +0 -170
  317. package/doc/GraphSON3Writer.html +0 -170
  318. package/doc/GraphTraversal.html +0 -22974
  319. package/doc/GraphTraversalSource.html +0 -3683
  320. package/doc/HaltedTraverserStrategy.html +0 -215
  321. package/doc/MatchAlgorithmStrategy.html +0 -210
  322. package/doc/P.html +0 -2020
  323. package/doc/PartitionStrategy.html +0 -387
  324. package/doc/Path.html +0 -242
  325. package/doc/PlainTextSaslAuthenticator.html +0 -456
  326. package/doc/ProductiveByStrategy.html +0 -258
  327. package/doc/RemoteConnection.html +0 -1086
  328. package/doc/RemoteStrategy.html +0 -307
  329. package/doc/RemoteTraversal.html +0 -170
  330. package/doc/ReservedKeysVerificationStrategy.html +0 -261
  331. package/doc/ResponseError.html +0 -360
  332. package/doc/ResultSet.html +0 -633
  333. package/doc/SaslAuthenticator.html +0 -455
  334. package/doc/SaslMechanismBase.html +0 -506
  335. package/doc/SaslMechanismPlain.html +0 -925
  336. package/doc/SeedStrategy.html +0 -288
  337. package/doc/SubgraphStrategy.html +0 -387
  338. package/doc/TextP.html +0 -1440
  339. package/doc/Transaction.html +0 -655
  340. package/doc/Translator.html +0 -527
  341. package/doc/TraversalStrategies.html +0 -652
  342. package/doc/TraversalStrategy.html +0 -393
  343. package/doc/TypeSerializer.html +0 -166
  344. package/doc/driver_auth_authenticator.js.html +0 -89
  345. package/doc/driver_auth_mechanisms_sasl-mechanism-base.js.html +0 -103
  346. package/doc/driver_auth_mechanisms_sasl-mechanism-plain.js.html +0 -157
  347. package/doc/driver_auth_plain-text-sasl-authenticator.js.html +0 -106
  348. package/doc/driver_auth_sasl-authenticator.js.html +0 -100
  349. package/doc/driver_client.js.html +0 -250
  350. package/doc/driver_connection.js.html +0 -518
  351. package/doc/driver_driver-remote-connection.js.html +0 -193
  352. package/doc/driver_remote-connection.js.html +0 -198
  353. package/doc/driver_response-error.js.html +0 -98
  354. package/doc/driver_result-set.js.html +0 -134
  355. package/doc/fonts/OpenSans-Bold-webfont.eot +0 -0
  356. package/doc/fonts/OpenSans-Bold-webfont.svg +0 -1830
  357. package/doc/fonts/OpenSans-Bold-webfont.woff +0 -0
  358. package/doc/fonts/OpenSans-BoldItalic-webfont.eot +0 -0
  359. package/doc/fonts/OpenSans-BoldItalic-webfont.svg +0 -1830
  360. package/doc/fonts/OpenSans-BoldItalic-webfont.woff +0 -0
  361. package/doc/fonts/OpenSans-Italic-webfont.eot +0 -0
  362. package/doc/fonts/OpenSans-Italic-webfont.svg +0 -1830
  363. package/doc/fonts/OpenSans-Italic-webfont.woff +0 -0
  364. package/doc/fonts/OpenSans-Light-webfont.eot +0 -0
  365. package/doc/fonts/OpenSans-Light-webfont.svg +0 -1831
  366. package/doc/fonts/OpenSans-Light-webfont.woff +0 -0
  367. package/doc/fonts/OpenSans-LightItalic-webfont.eot +0 -0
  368. package/doc/fonts/OpenSans-LightItalic-webfont.svg +0 -1835
  369. package/doc/fonts/OpenSans-LightItalic-webfont.woff +0 -0
  370. package/doc/fonts/OpenSans-Regular-webfont.eot +0 -0
  371. package/doc/fonts/OpenSans-Regular-webfont.svg +0 -1831
  372. package/doc/fonts/OpenSans-Regular-webfont.woff +0 -0
  373. package/doc/global.html +0 -728
  374. package/doc/index.html +0 -185
  375. package/doc/module.exports.html +0 -301
  376. package/doc/process_anonymous-traversal.js.html +0 -138
  377. package/doc/process_bytecode.js.html +0 -175
  378. package/doc/process_graph-traversal.js.html +0 -1936
  379. package/doc/process_transaction.js.html +0 -151
  380. package/doc/process_translator.js.html +0 -172
  381. package/doc/process_traversal-strategy.js.html +0 -466
  382. package/doc/process_traversal.js.html +0 -592
  383. package/doc/scripts/linenumber.js +0 -25
  384. package/doc/scripts/prettify/Apache-License-2.0.txt +0 -202
  385. package/doc/scripts/prettify/lang-css.js +0 -2
  386. package/doc/scripts/prettify/prettify.js +0 -28
  387. package/doc/structure_graph.js.html +0 -233
  388. package/doc/structure_io_binary_internals_DataType.js.html +0 -151
  389. package/doc/structure_io_binary_internals_GraphBinaryReader.js.html +0 -133
  390. package/doc/structure_io_binary_internals_GraphBinaryWriter.js.html +0 -136
  391. package/doc/structure_io_graph-serializer.js.html +0 -354
  392. package/doc/structure_io_type-serializers.js.html +0 -617
  393. package/doc/styles/jsdoc-default.css +0 -358
  394. package/doc/styles/prettify-jsdoc.css +0 -111
  395. package/doc/styles/prettify-tomorrow.css +0 -132
  396. package/doc/utils.js.html +0 -181
  397. package/docker-compose.yml +0 -76
  398. package/eslint.config.mjs +0 -143
  399. package/lib/driver/auth/mechanisms/sasl-mechanism-plain.js +0 -106
  400. package/lib/driver/auth/plain-text-sasl-authenticator.js +0 -55
  401. package/lib/driver/auth/sasl-authenticator.js +0 -49
  402. package/lib/driver/client.js +0 -199
  403. package/lib/driver/connection.js +0 -467
  404. package/lib/driver/driver-remote-connection.js +0 -142
  405. package/lib/driver/remote-connection.js +0 -147
  406. package/lib/driver/result-set.js +0 -83
  407. package/lib/process/anonymous-traversal.js +0 -87
  408. package/lib/process/bytecode.js +0 -124
  409. package/lib/process/graph-traversal.js +0 -1885
  410. package/lib/process/transaction.js +0 -100
  411. package/lib/process/translator.js +0 -121
  412. package/lib/process/traversal-strategy.js +0 -415
  413. package/lib/process/traversal.js +0 -541
  414. package/lib/structure/graph.js +0 -182
  415. package/lib/structure/io/binary/GraphBinary.js +0 -110
  416. package/lib/structure/io/binary/internals/AnySerializer.js +0 -100
  417. package/lib/structure/io/binary/internals/ArraySerializer.js +0 -137
  418. package/lib/structure/io/binary/internals/BigIntegerSerializer.js +0 -153
  419. package/lib/structure/io/binary/internals/BooleanSerializer.js +0 -105
  420. package/lib/structure/io/binary/internals/BulkSetSerializer.js +0 -126
  421. package/lib/structure/io/binary/internals/ByteBufferSerializer.js +0 -126
  422. package/lib/structure/io/binary/internals/ByteSerializer.js +0 -97
  423. package/lib/structure/io/binary/internals/BytecodeSerializer.js +0 -250
  424. package/lib/structure/io/binary/internals/ClassSerializer.js +0 -60
  425. package/lib/structure/io/binary/internals/DataType.js +0 -100
  426. package/lib/structure/io/binary/internals/DateSerializer.js +0 -105
  427. package/lib/structure/io/binary/internals/DoubleSerializer.js +0 -101
  428. package/lib/structure/io/binary/internals/EdgeSerializer.js +0 -216
  429. package/lib/structure/io/binary/internals/EnumSerializer.js +0 -152
  430. package/lib/structure/io/binary/internals/FloatSerializer.js +0 -101
  431. package/lib/structure/io/binary/internals/GraphBinaryReader.js +0 -82
  432. package/lib/structure/io/binary/internals/GraphBinaryWriter.js +0 -85
  433. package/lib/structure/io/binary/internals/IntSerializer.js +0 -114
  434. package/lib/structure/io/binary/internals/LambdaSerializer.js +0 -71
  435. package/lib/structure/io/binary/internals/LongSerializer.js +0 -109
  436. package/lib/structure/io/binary/internals/LongSerializerNg.js +0 -104
  437. package/lib/structure/io/binary/internals/MapSerializer.js +0 -155
  438. package/lib/structure/io/binary/internals/NumberSerializationStrategy.js +0 -73
  439. package/lib/structure/io/binary/internals/OffsetDateTimeSerializer.js +0 -151
  440. package/lib/structure/io/binary/internals/PSerializer.js +0 -152
  441. package/lib/structure/io/binary/internals/PathSerializer.js +0 -124
  442. package/lib/structure/io/binary/internals/PropertySerializer.js +0 -142
  443. package/lib/structure/io/binary/internals/SetSerializer.js +0 -134
  444. package/lib/structure/io/binary/internals/ShortSerializer.js +0 -101
  445. package/lib/structure/io/binary/internals/StringSerializer.js +0 -116
  446. package/lib/structure/io/binary/internals/TextPSerializer.js +0 -146
  447. package/lib/structure/io/binary/internals/TraversalStrategySerializer.js +0 -69
  448. package/lib/structure/io/binary/internals/TraverserSerializer.js +0 -124
  449. package/lib/structure/io/binary/internals/UnspecifiedNullSerializer.js +0 -77
  450. package/lib/structure/io/binary/internals/UuidSerializer.js +0 -121
  451. package/lib/structure/io/binary/internals/VertexPropertySerializer.js +0 -176
  452. package/lib/structure/io/binary/internals/VertexSerializer.js +0 -139
  453. package/lib/structure/io/graph-serializer.js +0 -303
  454. package/lib/structure/io/type-serializers.js +0 -566
  455. package/lib/utils.js +0 -130
@@ -0,0 +1,935 @@
1
+ "use strict";
2
+ /*
3
+ * Licensed to the Apache Software Foundation (ASF) under one
4
+ * or more contributor license agreements. See the NOTICE file
5
+ * distributed with this work for additional information
6
+ * regarding copyright ownership. The ASF licenses this file
7
+ * to you under the Apache License, Version 2.0 (the
8
+ * "License"); you may not use this file except in compliance
9
+ * with the License. You may obtain a copy of the License at
10
+ *
11
+ * http://www.apache.org/licenses/LICENSE-2.0
12
+ *
13
+ * Unless required by applicable law or agreed to in writing,
14
+ * software distributed under the License is distributed on an
15
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16
+ * KIND, either express or implied. See the License for the
17
+ * specific language governing permissions and limitations
18
+ * under the License.
19
+ */
20
+ var __importDefault = (this && this.__importDefault) || function (mod) {
21
+ return (mod && mod.__esModule) ? mod : { "default": mod };
22
+ };
23
+ Object.defineProperty(exports, "__esModule", { value: true });
24
+ // Context parameters are typed as `any` because the generated grammar files
25
+ // require accepting arbitrary context types at runtime.
26
+ const TranslateVisitor_js_1 = __importDefault(require("./TranslateVisitor.cjs"));
27
+ const TranslatorException_js_1 = require("./TranslatorException.cjs");
28
+ // Steps whose return type needs <object, object>
29
+ const DOUBLE_GENERIC_STEPS = new Set(['group', 'valueMap']);
30
+ /**
31
+ * Converts a Gremlin traversal string into a C# source code representation.
32
+ * Mirrors the Java DotNetTranslateVisitor.
33
+ */
34
+ class DotNetTranslateVisitor extends TranslateVisitor_js_1.default {
35
+ constructor(graphTraversalSourceName = 'g') {
36
+ super(graphTraversalSourceName);
37
+ }
38
+ processGremlinSymbol(step) {
39
+ return SymbolHelper.toCSharp(step);
40
+ }
41
+ getCardinalityFunctionClass() {
42
+ return 'CardinalityValue';
43
+ }
44
+ /**
45
+ * .NET enum values are capitalized but do NOT go through processGremlinSymbol,
46
+ * since the SymbolHelper mappings (bigdecimal→BigDecimal etc.) don't apply to enums.
47
+ */
48
+ appendExplicitNaming(txt, prefix) {
49
+ if (!txt.startsWith(prefix + '.')) {
50
+ this.sb.push(prefix);
51
+ this.sb.push('.');
52
+ this.sb.push(capitalize(txt));
53
+ }
54
+ else {
55
+ const parts = txt.split('.');
56
+ this.sb.push(parts[0]);
57
+ this.sb.push('.');
58
+ this.sb.push(capitalize(parts[1]));
59
+ }
60
+ }
61
+ visitTraversalGType(ctx) {
62
+ const parts = ctx.getText().split('.');
63
+ this.sb.push(this.processGremlinSymbol(parts[0]));
64
+ this.sb.push('.');
65
+ this.sb.push(this.processGremlinSymbol(parts[1].toLowerCase()));
66
+ }
67
+ visitTraversalDirection(ctx) {
68
+ const direction = ctx.getText().toLowerCase();
69
+ this.sb.push('Direction.');
70
+ if (direction.includes('out'))
71
+ this.sb.push('Out');
72
+ else if (direction.includes('in'))
73
+ this.sb.push('In');
74
+ else if (direction.includes('from'))
75
+ this.sb.push('From');
76
+ else if (direction.includes('to'))
77
+ this.sb.push('To');
78
+ else
79
+ this.sb.push('Both');
80
+ }
81
+ visitTraversalDirectionShort(ctx) {
82
+ this.visitTraversalDirection(ctx);
83
+ }
84
+ visitTraversalDirectionLong(ctx) {
85
+ this.visitTraversalDirection(ctx);
86
+ }
87
+ visitNanLiteral(_ctx) {
88
+ this.sb.push('Double.NaN');
89
+ }
90
+ visitInfLiteral(ctx) {
91
+ if (ctx.SignedInfLiteral() != null && ctx.SignedInfLiteral().getText() === '-Infinity') {
92
+ this.sb.push('Double.NegativeInfinity');
93
+ }
94
+ else {
95
+ this.sb.push('Double.PositiveInfinity');
96
+ }
97
+ }
98
+ visitIntegerLiteral(ctx) {
99
+ const integerLiteral = ctx.getText().toLowerCase();
100
+ const lastChar = integerLiteral[integerLiteral.length - 1];
101
+ if (!/[a-z]/.test(lastChar)) {
102
+ this.sb.push(integerLiteral);
103
+ return;
104
+ }
105
+ const num = integerLiteral.slice(0, -1);
106
+ switch (lastChar) {
107
+ case 'b':
108
+ this.sb.push('(sbyte) ');
109
+ this.sb.push(num);
110
+ break;
111
+ case 's':
112
+ this.sb.push('(short) ');
113
+ this.sb.push(num);
114
+ break;
115
+ case 'i':
116
+ this.sb.push(num);
117
+ break;
118
+ case 'l':
119
+ this.sb.push(integerLiteral); // keep the 'l' suffix for C#
120
+ break;
121
+ case 'n':
122
+ this.sb.push('BigInteger.Parse("');
123
+ this.sb.push(num);
124
+ this.sb.push('")');
125
+ break;
126
+ default:
127
+ this.sb.push(integerLiteral);
128
+ }
129
+ }
130
+ visitFloatLiteral(ctx) {
131
+ if (ctx.infLiteral() != null) {
132
+ this.visit(ctx.infLiteral());
133
+ return;
134
+ }
135
+ if (ctx.nanLiteral() != null) {
136
+ this.visit(ctx.nanLiteral());
137
+ return;
138
+ }
139
+ const floatLiteral = ctx.getText().toLowerCase();
140
+ const lastChar = floatLiteral[floatLiteral.length - 1];
141
+ if (!/[a-z]/.test(lastChar)) {
142
+ this.sb.push(floatLiteral);
143
+ return;
144
+ }
145
+ const num = floatLiteral.slice(0, -1);
146
+ switch (lastChar) {
147
+ case 'f':
148
+ case 'd':
149
+ this.sb.push(floatLiteral); // keep the f/d suffix for C#
150
+ break;
151
+ case 'm':
152
+ this.sb.push('(decimal) ');
153
+ this.sb.push(num);
154
+ break;
155
+ default:
156
+ this.sb.push(floatLiteral);
157
+ }
158
+ }
159
+ visitDateLiteral(ctx) {
160
+ const dtString = ctx.getChild(2).getText();
161
+ const inner = TranslateVisitor_js_1.default.removeFirstAndLastCharacters(dtString);
162
+ this.sb.push('DateTimeOffset.Parse("');
163
+ this.sb.push(formatDatetimeJavaStyle(inner));
164
+ this.sb.push('")');
165
+ }
166
+ visitGenericRangeLiteral(_ctx) {
167
+ throw new TranslatorException_js_1.TranslatorException('.NET does not support range literals');
168
+ }
169
+ visitGenericSetLiteral(ctx) {
170
+ this.sb.push('new HashSet<object> { ');
171
+ const literals = ctx.genericLiteral();
172
+ for (let i = 0; i < literals.length; i++) {
173
+ this.visit(literals[i]);
174
+ if (i < literals.length - 1)
175
+ this.sb.push(', ');
176
+ }
177
+ this.sb.push(' }');
178
+ }
179
+ visitGenericCollectionLiteral(ctx) {
180
+ this.sb.push('new List<object> { ');
181
+ const literals = ctx.genericLiteral();
182
+ for (let i = 0; i < literals.length; i++) {
183
+ this.visit(literals[i]);
184
+ if (i < literals.length - 1)
185
+ this.sb.push(', ');
186
+ }
187
+ this.sb.push(' }');
188
+ }
189
+ visitGenericMapLiteral(ctx) {
190
+ this.sb.push('new Dictionary<object, object> {');
191
+ const entries = ctx.mapEntry();
192
+ for (let i = 0; i < entries.length; i++) {
193
+ this.visit(entries[i]);
194
+ if (i < entries.length - 1)
195
+ this.sb.push(', ');
196
+ }
197
+ this.sb.push('}');
198
+ }
199
+ visitMapEntry(ctx) {
200
+ this.sb.push('{ ');
201
+ this.visit(ctx.mapKey());
202
+ this.sb.push(', ');
203
+ this.visit(ctx.genericLiteral());
204
+ this.sb.push(' }');
205
+ }
206
+ visitMapKey(ctx) {
207
+ const keyIndex = (ctx.LPAREN() != null && ctx.RPAREN() != null) ? 1 : 0;
208
+ this.visit(ctx.getChild(keyIndex));
209
+ }
210
+ visitUuidLiteral(ctx) {
211
+ if (ctx.stringLiteral() == null) {
212
+ this.sb.push('Guid.NewGuid()');
213
+ return;
214
+ }
215
+ this.sb.push('Guid.Parse(');
216
+ this.sb.push(ctx.stringLiteral().getText());
217
+ this.sb.push(')');
218
+ }
219
+ visitCharacterLiteral(ctx) {
220
+ const text = ctx.getText();
221
+ const withoutSuffix = text.substring(0, text.length - 1);
222
+ const inner = TranslateVisitor_js_1.default.removeFirstAndLastCharacters(withoutSuffix);
223
+ this.sb.push("'");
224
+ this.sb.push(inner);
225
+ this.sb.push("'");
226
+ }
227
+ visitDurationLiteral(ctx) {
228
+ const seconds = parseInt(ctx.integerLiteral(0).getText(), 10);
229
+ const nanos = parseInt(ctx.integerLiteral(1).getText(), 10);
230
+ const isPositive = ctx.booleanLiteral() === null ||
231
+ ctx.booleanLiteral().getText() === 'true';
232
+ // Convert to ticks: 1 tick = 100 nanoseconds, 1 second = 10,000,000 ticks
233
+ const ticks = seconds * 10_000_000 + Math.floor(nanos / 100);
234
+ this.sb.push(`TimeSpan.FromTicks(${ticks}L)`);
235
+ if (!isPositive) {
236
+ this.sb.push('.Negate()');
237
+ }
238
+ }
239
+ visitBinaryLiteral(ctx) {
240
+ this.sb.push('Convert.FromBase64String(');
241
+ this.sb.push(ctx.stringLiteral().getText());
242
+ this.sb.push(')');
243
+ }
244
+ visitClassType(ctx) {
245
+ this.sb.push('typeof(');
246
+ this.sb.push(ctx.getText());
247
+ this.sb.push(')');
248
+ }
249
+ visitTraversalStrategy(ctx) {
250
+ if (ctx.getChildCount() === 1) {
251
+ this.sb.push('new ');
252
+ this.sb.push(ctx.getText());
253
+ this.sb.push('()');
254
+ return;
255
+ }
256
+ const firstText = ctx.getChild(0).getText();
257
+ const strategyName = firstText === 'new' ? ctx.getChild(1).getText() : firstText;
258
+ this.sb.push('new ');
259
+ this.sb.push(strategyName);
260
+ this.sb.push('(');
261
+ const configs = ctx.configuration();
262
+ const isOptionsStrategy = ctx.children?.some((c) => c.getText() === 'OptionsStrategy');
263
+ if (configs.length > 0 && isOptionsStrategy) {
264
+ this.sb.push('new Dictionary<string, object> {');
265
+ for (const cfg of configs) {
266
+ this.sb.push('{"');
267
+ this.sb.push(cfg.getChild(0).getText());
268
+ this.sb.push('",');
269
+ this.visit(cfg.getChild(2));
270
+ this.sb.push('},');
271
+ }
272
+ this.sb.push('}');
273
+ }
274
+ else {
275
+ for (let ix = 0; ix < configs.length; ix++) {
276
+ this.visit(configs[ix]);
277
+ if (ix < configs.length - 1)
278
+ this.sb.push(', ');
279
+ }
280
+ }
281
+ this.sb.push(')');
282
+ }
283
+ visitConfiguration(ctx) {
284
+ const key = ctx.getChild(0).getText();
285
+ this.sb.push(key);
286
+ this.sb.push(': ');
287
+ const startIdx = this.sb.length;
288
+ this.visit(ctx.getChild(2));
289
+ if (key === 'readPartitions') {
290
+ const added = this.sb.splice(startIdx);
291
+ this.sb.push(added.join('').replace('List<object>', 'HashSet<string>'));
292
+ }
293
+ else if (key === 'keys') {
294
+ const added = this.sb.splice(startIdx);
295
+ const joined = added.join('');
296
+ this.sb.push(joined.includes('HashSet<object>') ? joined.replace('HashSet<object>', 'HashSet<string>') : joined);
297
+ }
298
+ }
299
+ visitStringNullableArgumentVarargs(ctx) {
300
+ const n = ctx.getChildCount();
301
+ for (let ix = 0; ix < n; ix++) {
302
+ const child = ctx.getChild(ix);
303
+ if (child.constructor?.name === 'StringNullableArgumentContext') {
304
+ this.tryAppendCastToString_StringNullableArg(child);
305
+ }
306
+ this.visit(child);
307
+ }
308
+ }
309
+ // ─── handleGenerics helpers ─────────────────────────────────────────────
310
+ handleGenerics(ctx) {
311
+ const step = ctx.getChild(0).getText();
312
+ this.sb.push(capitalize(step));
313
+ this.sb.push(DOUBLE_GENERIC_STEPS.has(step) ? '<object, object>' : '<object>');
314
+ for (let ix = 1; ix < ctx.getChildCount(); ix++) {
315
+ this.visit(ctx.getChild(ix));
316
+ }
317
+ }
318
+ handleLongArguments(ctx) {
319
+ const step = ctx.getChild(0).getText();
320
+ this.sb.push(capitalize(step));
321
+ this.sb.push('<object>');
322
+ for (let ix = 1; ix < ctx.getChildCount(); ix++) {
323
+ const child = ctx.getChild(ix);
324
+ if (child.constructor?.name === 'IntegerArgumentContext') {
325
+ this.tryAppendCastToLong_IntArg(child);
326
+ }
327
+ this.visit(child);
328
+ }
329
+ }
330
+ // ─── Cast helpers ────────────────────────────────────────────────────────
331
+ tryAppendCastToLong_IntArg(ctx) {
332
+ if (ctx?.variable() != null)
333
+ this.sb.push('(long) ');
334
+ }
335
+ tryAppendCastToString_StringArg(ctx) {
336
+ if (ctx?.variable() != null || ctx?.stringLiteral() != null)
337
+ this.sb.push('(string) ');
338
+ }
339
+ visitStringArgumentVarargsWithCast(ctx) {
340
+ for (let ix = 0; ix < ctx.getChildCount(); ix++) {
341
+ const child = ctx.getChild(ix);
342
+ if (child.constructor?.name === 'StringArgumentContext')
343
+ this.tryAppendCastToString_StringArg(child);
344
+ this.visit(child);
345
+ }
346
+ }
347
+ tryAppendCastToString_StringNullableLit(ctx) {
348
+ if (ctx?.K_NULL != null && ctx.K_NULL() != null)
349
+ this.sb.push('(string) ');
350
+ }
351
+ tryAppendCastToString_StringNullableArg(ctx) {
352
+ if (ctx?.variable() != null ||
353
+ (ctx?.stringNullableLiteral() != null && ctx.stringNullableLiteral()?.K_NULL != null && ctx.stringNullableLiteral().K_NULL() != null)) {
354
+ this.sb.push('(string) ');
355
+ }
356
+ }
357
+ tryAppendCastToObject_GenericArg(ctx) {
358
+ if (ctx?.variable() != null ||
359
+ (ctx?.genericLiteral() != null && ctx.genericLiteral()?.nullLiteral != null && ctx.genericLiteral().nullLiteral() != null)) {
360
+ this.sb.push('(object) ');
361
+ }
362
+ }
363
+ tryAppendCastToObject_GenericLit(ctx) {
364
+ if (ctx?.nullLiteral != null && ctx.nullLiteral() != null)
365
+ this.sb.push('(object) ');
366
+ }
367
+ // ─── isCalledAsFirstStepInAnonymousTraversal ─────────────────────────────
368
+ isCalledAsFirstStepInAnonymousTraversal(ctx) {
369
+ // ctx = traversalMethod_fold_EmptyContext
370
+ // parent = traversalMethodContext → chainedTraversalContext → nestedTraversalContext
371
+ const parent = ctx.parent;
372
+ if (!parent)
373
+ return false;
374
+ const parentParent = parent.parent; // ChainedTraversalContext
375
+ if (!parentParent)
376
+ return false;
377
+ const parentParentParent = parentParent.parent; // should be NestedTraversalContext
378
+ if (parentParentParent?.constructor?.name !== 'NestedTraversalContext')
379
+ return false;
380
+ // Check if ctx is the first step: parentParent.child(0).child(0) === ctx
381
+ const firstChild = parentParent.getChild(0);
382
+ const firstGrandchild = firstChild?.getChild(0);
383
+ return firstGrandchild === ctx;
384
+ }
385
+ // ─── Source spawn method overrides ──────────────────────────────────────
386
+ visitTraversalSourceSpawnMethod_inject(ctx) { this.handleGenerics(ctx); }
387
+ visitTraversalSourceSpawnMethod_io(ctx) { this.handleGenerics(ctx); }
388
+ visitTraversalSourceSpawnMethod_union(ctx) { this.handleGenerics(ctx); }
389
+ visitTraversalSourceSpawnMethod_call_empty(ctx) { this.handleGenerics(ctx); }
390
+ visitTraversalSourceSpawnMethod_match_string(ctx) {
391
+ this.sb.push(capitalize(ctx.getChild(0).getText()));
392
+ this.sb.push('(');
393
+ this.visit(ctx.stringLiteral());
394
+ this.sb.push(')');
395
+ }
396
+ visitTraversalSourceSpawnMethod_match_string_map(ctx) {
397
+ this.sb.push(capitalize(ctx.getChild(0).getText()));
398
+ this.sb.push('(');
399
+ this.visit(ctx.stringLiteral());
400
+ this.sb.push(', (IDictionary<object, object>) ');
401
+ this.visit(ctx.genericMapLiteral());
402
+ this.sb.push(')');
403
+ }
404
+ visitTraversalSourceSpawnMethod_addV_String(ctx) {
405
+ this.sb.push(capitalize(ctx.getChild(0).getText()));
406
+ for (let ix = 1; ix < ctx.getChildCount(); ix++) {
407
+ const child = ctx.getChild(ix);
408
+ if (child.constructor?.name === 'StringArgumentContext')
409
+ this.tryAppendCastToString_StringArg(child);
410
+ else if (child.constructor?.name === 'StringArgumentVarargsContext') {
411
+ this.visitStringArgumentVarargsWithCast(child);
412
+ continue;
413
+ }
414
+ this.visit(child);
415
+ }
416
+ }
417
+ visitTraversalSourceSpawnMethod_addE(ctx) {
418
+ this.sb.push(capitalize(ctx.getChild(0).getText()));
419
+ for (let ix = 1; ix < ctx.getChildCount(); ix++) {
420
+ const child = ctx.getChild(ix);
421
+ if (child.constructor?.name === 'StringArgumentContext')
422
+ this.tryAppendCastToString_StringArg(child);
423
+ this.visit(child);
424
+ }
425
+ }
426
+ visitTraversalSourceSpawnMethod_call_string(ctx) {
427
+ this.sb.push(capitalize(ctx.getChild(0).getText()));
428
+ this.sb.push('<object>');
429
+ this.sb.push('((string) ');
430
+ this.visit(ctx.stringLiteral());
431
+ this.sb.push(')');
432
+ }
433
+ visitTraversalSourceSpawnMethod_call_string_map(ctx) {
434
+ this.sb.push(capitalize(ctx.getChild(0).getText()));
435
+ this.sb.push('<object>(');
436
+ this.visit(ctx.stringLiteral());
437
+ this.sb.push(', (IDictionary<object, object>) ');
438
+ this.visit(ctx.genericMapArgument());
439
+ this.sb.push(')');
440
+ }
441
+ visitTraversalSourceSpawnMethod_call_string_traversal(ctx) {
442
+ this.sb.push(capitalize(ctx.getChild(0).getText()));
443
+ this.sb.push('<object>(');
444
+ this.visit(ctx.stringLiteral());
445
+ this.sb.push(', (ITraversal) ');
446
+ this.visit(ctx.nestedTraversal());
447
+ this.sb.push(')');
448
+ }
449
+ visitTraversalSourceSpawnMethod_call_string_map_traversal(ctx) {
450
+ this.sb.push(capitalize(ctx.getChild(0).getText()));
451
+ this.sb.push('<object>(');
452
+ this.visit(ctx.stringLiteral());
453
+ this.sb.push(', (IDictionary<object, object>) ');
454
+ this.visit(ctx.genericMapArgument());
455
+ this.sb.push(', (ITraversal) ');
456
+ this.visit(ctx.nestedTraversal());
457
+ this.sb.push(')');
458
+ }
459
+ visitTraversalSourceSpawnMethod_mergeV_Map(ctx) {
460
+ this.visit(ctx.getChild(0));
461
+ this.sb.push('((IDictionary<object, object>) ');
462
+ this.visit(ctx.genericMapNullableArgument());
463
+ this.sb.push(')');
464
+ }
465
+ visitTraversalSourceSpawnMethod_mergeV_Traversal(ctx) {
466
+ this.visit(ctx.getChild(0));
467
+ this.sb.push('((ITraversal) ');
468
+ this.visit(ctx.nestedTraversal());
469
+ this.sb.push(')');
470
+ }
471
+ visitTraversalSourceSpawnMethod_mergeE_Map(ctx) {
472
+ this.visit(ctx.getChild(0));
473
+ this.sb.push('((IDictionary<object, object>) ');
474
+ this.visit(ctx.genericMapNullableArgument());
475
+ this.sb.push(')');
476
+ }
477
+ visitTraversalSourceSpawnMethod_mergeE_Traversal(ctx) {
478
+ this.visit(ctx.getChild(0));
479
+ this.sb.push('((ITraversal) ');
480
+ this.visit(ctx.nestedTraversal());
481
+ this.sb.push(')');
482
+ }
483
+ // ─── Traversal method overrides - handleGenerics ─────────────────────────
484
+ visitTraversalMethod_asString_Scope(ctx) { this.handleGenerics(ctx); }
485
+ visitTraversalMethod_branch(ctx) { this.handleGenerics(ctx); }
486
+ visitTraversalMethod_cap(ctx) { this.handleGenerics(ctx); }
487
+ visitTraversalMethod_choose_Function(ctx) { this.handleGenerics(ctx); }
488
+ visitTraversalMethod_choose_Predicate_Traversal(ctx) { this.handleGenerics(ctx); }
489
+ visitTraversalMethod_choose_Predicate_Traversal_Traversal(ctx) { this.handleGenerics(ctx); }
490
+ visitTraversalMethod_choose_Traversal(ctx) { this.handleGenerics(ctx); }
491
+ visitTraversalMethod_choose_Traversal_Traversal(ctx) { this.handleGenerics(ctx); }
492
+ visitTraversalMethod_choose_Traversal_Traversal_Traversal(ctx) { this.handleGenerics(ctx); }
493
+ visitTraversalMethod_coalesce(ctx) { this.handleGenerics(ctx); }
494
+ visitTraversalMethod_constant(ctx) { this.handleGenerics(ctx); }
495
+ visitTraversalMethod_elementMap(ctx) { this.handleGenerics(ctx); }
496
+ visitTraversalMethod_flatMap(ctx) { this.handleGenerics(ctx); }
497
+ visitTraversalMethod_fold_Empty(ctx) {
498
+ if (this.isCalledAsFirstStepInAnonymousTraversal(ctx)) {
499
+ this.handleGenerics(ctx);
500
+ }
501
+ else {
502
+ this.visitChildren(ctx); // base: just output Fold()
503
+ }
504
+ }
505
+ visitTraversalMethod_fold_Object_BiFunction(ctx) { this.handleGenerics(ctx); }
506
+ visitTraversalMethod_group_Empty(ctx) { this.handleGenerics(ctx); }
507
+ visitTraversalMethod_groupCount_Empty(ctx) { this.handleGenerics(ctx); }
508
+ visitTraversalMethod_index(ctx) { this.handleGenerics(ctx); }
509
+ visitTraversalMethod_length_Scope(ctx) { this.handleGenerics(ctx); }
510
+ visitTraversalMethod_local(ctx) { this.handleGenerics(ctx); }
511
+ visitTraversalMethod_lTrim_Scope(ctx) { this.handleGenerics(ctx); }
512
+ visitTraversalMethod_map(ctx) { this.handleGenerics(ctx); }
513
+ visitTraversalMethod_match_traversal(ctx) { this.handleGenerics(ctx); }
514
+ visitTraversalMethod_match_string(ctx) {
515
+ this.sb.push(capitalize(ctx.getChild(0).getText()));
516
+ this.sb.push('(');
517
+ this.visit(ctx.stringLiteral());
518
+ this.sb.push(')');
519
+ }
520
+ visitTraversalMethod_match_string_map(ctx) {
521
+ this.sb.push(capitalize(ctx.getChild(0).getText()));
522
+ this.sb.push('(');
523
+ this.visit(ctx.stringLiteral());
524
+ this.sb.push(', (IDictionary<object, object>) ');
525
+ this.visit(ctx.genericMapLiteral());
526
+ this.sb.push(')');
527
+ }
528
+ visitTraversalMethod_max_Empty(ctx) { this.handleGenerics(ctx); }
529
+ visitTraversalMethod_max_Scope(ctx) { this.handleGenerics(ctx); }
530
+ visitTraversalMethod_mean_Empty(ctx) { this.handleGenerics(ctx); }
531
+ visitTraversalMethod_mean_Scope(ctx) { this.handleGenerics(ctx); }
532
+ visitTraversalMethod_min_Empty(ctx) { this.handleGenerics(ctx); }
533
+ visitTraversalMethod_min_Scope(ctx) { this.handleGenerics(ctx); }
534
+ visitTraversalMethod_optional(ctx) { this.handleGenerics(ctx); }
535
+ visitTraversalMethod_profile_Empty(ctx) { this.handleGenerics(ctx); }
536
+ visitTraversalMethod_project(ctx) { this.handleGenerics(ctx); }
537
+ visitTraversalMethod_properties(ctx) { this.handleGenerics(ctx); }
538
+ visitTraversalMethod_propertyMap(ctx) { this.handleGenerics(ctx); }
539
+ visitTraversalMethod_replace_Scope_String_String(ctx) { this.handleGenerics(ctx); }
540
+ visitTraversalMethod_rTrim_Scope(ctx) { this.handleGenerics(ctx); }
541
+ visitTraversalMethod_sack_Empty(ctx) { this.handleGenerics(ctx); }
542
+ visitTraversalMethod_select_Column(ctx) { this.handleGenerics(ctx); }
543
+ visitTraversalMethod_select_Pop_String(ctx) { this.handleGenerics(ctx); }
544
+ visitTraversalMethod_select_Pop_String_String_String(ctx) { this.handleGenerics(ctx); }
545
+ visitTraversalMethod_select_Pop_Traversal(ctx) { this.handleGenerics(ctx); }
546
+ visitTraversalMethod_select_String(ctx) { this.handleGenerics(ctx); }
547
+ visitTraversalMethod_select_String_String_String(ctx) { this.handleGenerics(ctx); }
548
+ visitTraversalMethod_select_Traversal(ctx) { this.handleGenerics(ctx); }
549
+ visitTraversalMethod_split_Scope_String(ctx) { this.handleGenerics(ctx); }
550
+ visitTraversalMethod_substring_Scope_int(ctx) { this.handleGenerics(ctx); }
551
+ visitTraversalMethod_substring_Scope_int_int(ctx) { this.handleGenerics(ctx); }
552
+ visitTraversalMethod_sum_Empty(ctx) { this.handleGenerics(ctx); }
553
+ visitTraversalMethod_sum_Scope(ctx) { this.handleGenerics(ctx); }
554
+ visitTraversalMethod_tail_Empty(ctx) { this.handleGenerics(ctx); }
555
+ visitTraversalMethod_tail_Scope(ctx) { this.handleGenerics(ctx); }
556
+ visitTraversalMethod_toLower_Scope(ctx) { this.handleGenerics(ctx); }
557
+ visitTraversalMethod_toUpper_Scope(ctx) { this.handleGenerics(ctx); }
558
+ visitTraversalMethod_tree_Empty(ctx) { this.handleGenerics(ctx); }
559
+ visitTraversalMethod_trim_Scope(ctx) { this.handleGenerics(ctx); }
560
+ visitTraversalMethod_unfold(ctx) { this.handleGenerics(ctx); }
561
+ visitTraversalMethod_union(ctx) { this.handleGenerics(ctx); }
562
+ visitTraversalMethod_value(ctx) { this.handleGenerics(ctx); }
563
+ visitTraversalMethod_valueMap_String(ctx) { this.handleGenerics(ctx); }
564
+ visitTraversalMethod_valueMap_boolean_String(ctx) { this.handleGenerics(ctx); }
565
+ visitTraversalMethod_values(ctx) { this.handleGenerics(ctx); }
566
+ // ─── Traversal method overrides - handleLongArguments ────────────────────
567
+ visitTraversalMethod_limit_long(ctx) { this.handleLongArguments(ctx); }
568
+ visitTraversalMethod_limit_Scope_long(ctx) { this.handleLongArguments(ctx); }
569
+ visitTraversalMethod_range_long_long(ctx) { this.handleLongArguments(ctx); }
570
+ visitTraversalMethod_range_Scope_long_long(ctx) { this.handleLongArguments(ctx); }
571
+ visitTraversalMethod_skip_long(ctx) { this.handleLongArguments(ctx); }
572
+ visitTraversalMethod_skip_Scope_long(ctx) { this.handleLongArguments(ctx); }
573
+ visitTraversalMethod_tail_long(ctx) { this.handleLongArguments(ctx); }
574
+ visitTraversalMethod_tail_Scope_long(ctx) { this.handleLongArguments(ctx); }
575
+ // ─── addV / addE (string cast) ───────────────────────────────────────────
576
+ visitTraversalMethod_addV_String(ctx) {
577
+ this.sb.push(capitalize(ctx.getChild(0).getText()));
578
+ for (let ix = 1; ix < ctx.getChildCount(); ix++) {
579
+ const child = ctx.getChild(ix);
580
+ if (child.constructor?.name === 'StringArgumentContext')
581
+ this.tryAppendCastToString_StringArg(child);
582
+ else if (child.constructor?.name === 'StringArgumentVarargsContext') {
583
+ this.visitStringArgumentVarargsWithCast(child);
584
+ continue;
585
+ }
586
+ this.visit(child);
587
+ }
588
+ }
589
+ visitTraversalMethod_addE_String(ctx) {
590
+ this.sb.push(capitalize(ctx.getChild(0).getText()));
591
+ for (let ix = 1; ix < ctx.getChildCount(); ix++) {
592
+ const child = ctx.getChild(ix);
593
+ if (child.constructor?.name === 'StringArgumentContext')
594
+ this.tryAppendCastToString_StringArg(child);
595
+ else if (child.constructor?.name === 'StringArgumentVarargsContext') {
596
+ this.visitStringArgumentVarargsWithCast(child);
597
+ continue;
598
+ }
599
+ this.visit(child);
600
+ }
601
+ }
602
+ // ─── call variants ───────────────────────────────────────────────────────
603
+ visitTraversalMethod_call_string(ctx) {
604
+ this.sb.push(capitalize(ctx.getChild(0).getText()));
605
+ this.sb.push('<object>((string) ');
606
+ this.visit(ctx.stringLiteral());
607
+ this.sb.push(')');
608
+ }
609
+ visitTraversalMethod_call_string_map(ctx) {
610
+ this.sb.push(capitalize(ctx.getChild(0).getText()));
611
+ this.sb.push('<object>(');
612
+ this.visit(ctx.stringLiteral());
613
+ this.sb.push(', (IDictionary<object, object>) ');
614
+ this.visit(ctx.genericMapArgument());
615
+ this.sb.push(')');
616
+ }
617
+ visitTraversalMethod_call_string_traversal(ctx) {
618
+ this.sb.push(capitalize(ctx.getChild(0).getText()));
619
+ this.sb.push('<object>(');
620
+ this.visit(ctx.stringLiteral());
621
+ this.sb.push(', (ITraversal) ');
622
+ this.visit(ctx.nestedTraversal());
623
+ this.sb.push(')');
624
+ }
625
+ visitTraversalMethod_call_string_map_traversal(ctx) {
626
+ this.sb.push(capitalize(ctx.getChild(0).getText()));
627
+ this.sb.push('<object>(');
628
+ this.visit(ctx.stringLiteral());
629
+ this.sb.push(', (IDictionary<object, object>) ');
630
+ this.visit(ctx.genericMapArgument());
631
+ this.sb.push(', (ITraversal) ');
632
+ this.visit(ctx.nestedTraversal());
633
+ this.sb.push(')');
634
+ }
635
+ // ─── has family ──────────────────────────────────────────────────────────
636
+ visitTraversalMethod_has_String_Object(ctx) {
637
+ this.sb.push(capitalize(ctx.getChild(0).getText()));
638
+ this.sb.push('(');
639
+ this.tryAppendCastToString_StringNullableLit(ctx.stringNullableLiteral());
640
+ this.visit(ctx.stringNullableLiteral());
641
+ this.sb.push(', ');
642
+ this.tryAppendCastToObject_GenericArg(ctx.genericArgument());
643
+ this.visit(ctx.genericArgument());
644
+ this.sb.push(')');
645
+ }
646
+ visitTraversalMethod_has_String_P(ctx) {
647
+ this.sb.push(capitalize(ctx.getChild(0).getText()));
648
+ this.sb.push('(');
649
+ this.tryAppendCastToString_StringNullableLit(ctx.stringNullableLiteral());
650
+ this.visit(ctx.stringNullableLiteral());
651
+ this.sb.push(', ');
652
+ this.visit(ctx.traversalPredicate());
653
+ this.sb.push(')');
654
+ }
655
+ visitTraversalMethod_has_String_String_Object(ctx) {
656
+ this.sb.push(capitalize(ctx.getChild(0).getText()));
657
+ this.sb.push('(');
658
+ this.tryAppendCastToString_StringNullableArg(ctx.stringNullableArgument());
659
+ this.visit(ctx.stringNullableArgument());
660
+ this.sb.push(', ');
661
+ this.tryAppendCastToString_StringNullableLit(ctx.stringNullableLiteral());
662
+ this.visit(ctx.stringNullableLiteral());
663
+ this.sb.push(', ');
664
+ this.tryAppendCastToObject_GenericArg(ctx.genericArgument());
665
+ this.visit(ctx.genericArgument());
666
+ this.sb.push(')');
667
+ }
668
+ visitTraversalMethod_has_String_String_P(ctx) {
669
+ this.sb.push(capitalize(ctx.getChild(0).getText()));
670
+ this.sb.push('(');
671
+ this.tryAppendCastToString_StringNullableArg(ctx.stringNullableArgument());
672
+ this.visit(ctx.stringNullableArgument());
673
+ this.sb.push(', ');
674
+ this.tryAppendCastToString_StringNullableLit(ctx.stringNullableLiteral());
675
+ this.visit(ctx.stringNullableLiteral());
676
+ this.sb.push(', ');
677
+ this.visit(ctx.traversalPredicate());
678
+ this.sb.push(')');
679
+ }
680
+ visitTraversalMethod_has_T_Object(ctx) {
681
+ this.sb.push(capitalize(ctx.getChild(0).getText()));
682
+ this.sb.push('(');
683
+ this.visit(ctx.traversalT());
684
+ this.sb.push(', ');
685
+ this.tryAppendCastToObject_GenericArg(ctx.genericArgument());
686
+ this.visit(ctx.genericArgument());
687
+ this.sb.push(')');
688
+ }
689
+ visitTraversalMethod_has_T_P(ctx) {
690
+ this.sb.push(capitalize(ctx.getChild(0).getText()));
691
+ this.sb.push('(');
692
+ this.visit(ctx.traversalT());
693
+ this.sb.push(', ');
694
+ this.visit(ctx.traversalPredicate());
695
+ this.sb.push(')');
696
+ }
697
+ visitTraversalMethod_hasKey_P(ctx) {
698
+ this.sb.push(capitalize(ctx.getChild(0).getText()));
699
+ this.sb.push('(');
700
+ this.visit(ctx.traversalPredicate());
701
+ this.sb.push(')');
702
+ }
703
+ visitTraversalMethod_hasKey_String_String(ctx) {
704
+ // single arg: add (string) cast; multiple args: no cast
705
+ if (ctx.stringNullableLiteralVarargs() == null || ctx.stringNullableLiteralVarargs().getChildCount() === 0) {
706
+ this.sb.push(capitalize(ctx.getChild(0).getText()));
707
+ this.sb.push('(');
708
+ this.tryAppendCastToString_StringNullableLit(ctx.stringNullableLiteral());
709
+ this.visit(ctx.stringNullableLiteral());
710
+ this.sb.push(')');
711
+ }
712
+ else {
713
+ this.visitChildren(ctx);
714
+ }
715
+ }
716
+ visitTraversalMethod_hasValue_Object_Object(ctx) {
717
+ // single arg: add (object) cast; multiple args: no cast
718
+ if (ctx.genericArgumentVarargs() == null || ctx.genericArgumentVarargs().getChildCount() === 0) {
719
+ this.sb.push(capitalize(ctx.getChild(0).getText()));
720
+ this.sb.push('(');
721
+ this.tryAppendCastToObject_GenericArg(ctx.genericArgument());
722
+ this.visit(ctx.genericArgument());
723
+ this.sb.push(')');
724
+ }
725
+ else {
726
+ this.visitChildren(ctx);
727
+ }
728
+ }
729
+ visitTraversalMethod_hasValue_P(ctx) {
730
+ this.sb.push(capitalize(ctx.getChild(0).getText()));
731
+ this.sb.push('(');
732
+ this.visit(ctx.traversalPredicate());
733
+ this.sb.push(')');
734
+ }
735
+ visitTraversalMethod_hasLabel_P(ctx) {
736
+ this.sb.push(capitalize(ctx.getChild(0).getText()));
737
+ this.sb.push('(');
738
+ this.visit(ctx.traversalPredicate());
739
+ this.sb.push(')');
740
+ }
741
+ visitTraversalMethod_hasLabel_String_String(ctx) {
742
+ const step = capitalize(ctx.getChild(0).getText());
743
+ if (ctx.stringNullableArgumentVarargs() == null || ctx.stringNullableArgumentVarargs().getChildCount() === 0) {
744
+ // single arg: add (string) cast if variable or null
745
+ this.sb.push(step);
746
+ this.sb.push('(');
747
+ this.tryAppendCastToString_StringNullableArg(ctx.stringNullableArgument());
748
+ this.visit(ctx.stringNullableArgument());
749
+ this.sb.push(')');
750
+ }
751
+ else {
752
+ // multiple args
753
+ this.sb.push(step);
754
+ this.sb.push('(');
755
+ this.tryAppendCastToString_StringNullableArg(ctx.stringNullableArgument());
756
+ this.visit(ctx.stringNullableArgument());
757
+ if (ctx.stringNullableArgumentVarargs().getChildCount() > 0)
758
+ this.sb.push(', ');
759
+ this.visit(ctx.stringNullableArgumentVarargs());
760
+ this.sb.push(')');
761
+ }
762
+ }
763
+ // ─── mergeV / mergeE ─────────────────────────────────────────────────────
764
+ visitTraversalMethod_mergeV_Map(ctx) {
765
+ this.visit(ctx.getChild(0));
766
+ this.sb.push('((IDictionary<object, object>) ');
767
+ this.visit(ctx.genericMapNullableArgument());
768
+ this.sb.push(')');
769
+ }
770
+ visitTraversalMethod_mergeV_Traversal(ctx) {
771
+ this.visit(ctx.getChild(0));
772
+ this.sb.push('((ITraversal) ');
773
+ this.visit(ctx.nestedTraversal());
774
+ this.sb.push(')');
775
+ }
776
+ visitTraversalMethod_mergeE_Map(ctx) {
777
+ this.visit(ctx.getChild(0));
778
+ this.sb.push('((IDictionary<object, object>) ');
779
+ this.visit(ctx.genericMapNullableArgument());
780
+ this.sb.push(')');
781
+ }
782
+ visitTraversalMethod_mergeE_Traversal(ctx) {
783
+ this.visit(ctx.getChild(0));
784
+ this.sb.push('((ITraversal) ');
785
+ this.visit(ctx.nestedTraversal());
786
+ this.sb.push(')');
787
+ }
788
+ // ─── option ─────────────────────────────────────────────────────────────
789
+ visitTraversalMethod_option_Merge_Map(ctx) {
790
+ this.visit(ctx.getChild(0));
791
+ this.sb.push('(');
792
+ this.visit(ctx.traversalMerge());
793
+ this.sb.push(', (IDictionary<object, object>) ');
794
+ this.visit(ctx.genericMapNullableArgument());
795
+ this.sb.push(')');
796
+ }
797
+ visitTraversalMethod_option_Merge_Traversal(ctx) {
798
+ this.visit(ctx.getChild(0));
799
+ this.sb.push('(');
800
+ this.visit(ctx.traversalMerge());
801
+ this.sb.push(', (ITraversal) ');
802
+ this.visit(ctx.nestedTraversal());
803
+ this.sb.push(')');
804
+ }
805
+ visitTraversalMethod_option_Object_Traversal(ctx) {
806
+ // Only add (ITraversal) cast when the object is a traversalMerge
807
+ const argIsTraversalMerge = ctx.genericArgument()?.genericLiteral()?.traversalMerge != null &&
808
+ ctx.genericArgument().genericLiteral().traversalMerge() != null;
809
+ if (argIsTraversalMerge) {
810
+ this.visit(ctx.getChild(0));
811
+ this.sb.push('(');
812
+ this.visit(ctx.genericArgument());
813
+ this.sb.push(', (ITraversal) ');
814
+ this.visit(ctx.nestedTraversal());
815
+ this.sb.push(')');
816
+ }
817
+ else {
818
+ this.visitChildren(ctx);
819
+ }
820
+ }
821
+ // ─── property ────────────────────────────────────────────────────────────
822
+ visitTraversalMethod_property_Object(ctx) {
823
+ // Property(null) is ambiguous with Property(ITraversal) - cast null to IDictionary to disambiguate
824
+ if (ctx.genericMapNullableArgument().genericMapNullableLiteral() != null &&
825
+ ctx.genericMapNullableArgument().genericMapNullableLiteral().nullLiteral() != null) {
826
+ this.visit(ctx.getChild(0));
827
+ this.sb.push('(');
828
+ this.sb.push('(IDictionary<object, object>) ');
829
+ this.visit(ctx.genericMapNullableArgument());
830
+ this.sb.push(')');
831
+ return;
832
+ }
833
+ this.visitChildren(ctx);
834
+ }
835
+ visitTraversalMethod_property_Cardinality_Object(ctx) {
836
+ // Property(Cardinality, null) - cast null to IDictionary to disambiguate
837
+ if (ctx.genericMapNullableArgument().genericMapNullableLiteral() != null &&
838
+ ctx.genericMapNullableArgument().genericMapNullableLiteral().nullLiteral() != null) {
839
+ this.visit(ctx.getChild(0));
840
+ this.sb.push('(');
841
+ this.visit(ctx.traversalCardinality());
842
+ this.sb.push(', ');
843
+ this.sb.push('(IDictionary<object, object>) ');
844
+ this.visit(ctx.genericMapNullableArgument());
845
+ this.sb.push(')');
846
+ return;
847
+ }
848
+ this.visitChildren(ctx);
849
+ }
850
+ visitTraversalMethod_property_Traversal(ctx) {
851
+ // Property(ITraversal) - cast to ITraversal to disambiguate
852
+ this.visit(ctx.getChild(0));
853
+ this.sb.push('(');
854
+ this.sb.push('(ITraversal) ');
855
+ this.visit(ctx.nestedTraversal());
856
+ this.sb.push(')');
857
+ }
858
+ visitTraversalMethod_property_Cardinality_Object_Object_Object(ctx) {
859
+ if (ctx.genericArgumentVarargs() == null || ctx.genericArgumentVarargs().getChildCount() === 0) {
860
+ this.sb.push(capitalize(ctx.getChild(0).getText()));
861
+ this.sb.push('(');
862
+ this.visit(ctx.traversalCardinality());
863
+ this.sb.push(', ');
864
+ this.tryAppendCastToObject_GenericLit(ctx.genericLiteral());
865
+ this.visit(ctx.genericLiteral());
866
+ this.sb.push(', ');
867
+ this.tryAppendCastToObject_GenericArg(ctx.genericArgument());
868
+ this.visit(ctx.genericArgument());
869
+ this.sb.push(')');
870
+ }
871
+ else {
872
+ this.visitChildren(ctx);
873
+ }
874
+ }
875
+ // ─── conjoin ─────────────────────────────────────────────────────────────
876
+ visitTraversalMethod_conjoin_String(ctx) {
877
+ this.sb.push(capitalize(ctx.getChild(0).getText()));
878
+ this.sb.push('(');
879
+ this.tryAppendCastToString_StringLit(ctx.stringLiteral());
880
+ this.visit(ctx.stringLiteral());
881
+ this.sb.push(')');
882
+ }
883
+ tryAppendCastToString_StringLit(ctx) {
884
+ if (ctx != null)
885
+ this.sb.push('(string) ');
886
+ }
887
+ }
888
+ exports.default = DotNetTranslateVisitor;
889
+ // ─── Helpers ─────────────────────────────────────────────────────────────────
890
+ function capitalize(s) {
891
+ if (!s)
892
+ return s;
893
+ return s.charAt(0).toUpperCase() + s.slice(1);
894
+ }
895
+ /**
896
+ * Formats a datetime string the same way Java's OffsetDateTime.toString() does:
897
+ * - Truncates seconds if both seconds and milliseconds are 0
898
+ * - Uses 'Z' for UTC offset
899
+ */
900
+ function formatDatetimeJavaStyle(s) {
901
+ const d = new Date(s);
902
+ if (isNaN(d.getTime())) {
903
+ throw new TranslatorException_js_1.TranslatorException(`Invalid datetime: ${s}`);
904
+ }
905
+ const year = d.getUTCFullYear().toString().padStart(4, '0');
906
+ const month = (d.getUTCMonth() + 1).toString().padStart(2, '0');
907
+ const day = d.getUTCDate().toString().padStart(2, '0');
908
+ const hours = d.getUTCHours().toString().padStart(2, '0');
909
+ const minutes = d.getUTCMinutes().toString().padStart(2, '0');
910
+ const seconds = d.getUTCSeconds();
911
+ const millis = d.getUTCMilliseconds();
912
+ let result = `${year}-${month}-${day}T${hours}:${minutes}`;
913
+ if (seconds !== 0 || millis !== 0) {
914
+ result += ':' + seconds.toString().padStart(2, '0');
915
+ if (millis !== 0) {
916
+ result += '.' + millis.toString().padStart(3, '0').replace(/0+$/, '');
917
+ }
918
+ }
919
+ result += 'Z';
920
+ return result;
921
+ }
922
+ class SymbolHelper {
923
+ static TO_CS_MAP = {
924
+ 'graphml': 'GraphML',
925
+ 'graphson': 'GraphSON',
926
+ 'bigdecimal': 'BigDecimal',
927
+ 'bigint': 'BigInt',
928
+ 'datetime': 'DateTime',
929
+ 'uuid': 'UUID',
930
+ 'vproperty': 'VProperty',
931
+ };
932
+ static toCSharp(symbol) {
933
+ return SymbolHelper.TO_CS_MAP[symbol] ?? capitalize(symbol);
934
+ }
935
+ }