gremlin 3.8.1 → 4.0.0-beta.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +18 -4
- package/build/cjs/driver/auth.cjs +69 -0
- package/build/cjs/driver/auth.d.cts +9 -0
- package/build/cjs/driver/client.cjs +134 -0
- package/build/cjs/driver/client.d.cts +85 -0
- package/build/cjs/driver/connection.cjs +250 -0
- package/build/cjs/driver/connection.d.cts +63 -0
- package/build/cjs/driver/driver-remote-connection.cjs +141 -0
- package/build/cjs/driver/driver-remote-connection.d.cts +33 -0
- package/build/cjs/driver/remote-connection.cjs +75 -0
- package/build/cjs/driver/remote-connection.d.cts +72 -0
- package/build/cjs/driver/request-message.cjs +157 -0
- package/build/cjs/driver/request-message.d.cts +49 -0
- package/build/cjs/driver/response-error.cjs +45 -0
- package/build/cjs/driver/response-error.d.cts +13 -0
- package/build/cjs/driver/result-set.cjs +111 -0
- package/build/cjs/driver/result-set.d.cts +29 -0
- package/build/cjs/index.cjs +125 -0
- package/build/cjs/index.d.cts +393 -0
- package/build/cjs/language/grammar/GremlinLexer.cjs +1851 -0
- package/build/cjs/language/grammar/GremlinLexer.d.cts +340 -0
- package/build/cjs/language/grammar/GremlinListener.cjs +4490 -0
- package/build/cjs/language/grammar/GremlinListener.d.cts +4898 -0
- package/build/cjs/language/grammar/GremlinParser.cjs +35244 -0
- package/build/cjs/language/grammar/GremlinParser.d.cts +5881 -0
- package/build/cjs/language/index.cjs +48 -0
- package/build/cjs/language/index.d.cts +12 -0
- package/build/cjs/language/translator/AnonymizedTranslateVisitor.cjs +157 -0
- package/build/cjs/language/translator/AnonymizedTranslateVisitor.d.cts +36 -0
- package/build/cjs/language/translator/DotNetTranslateVisitor.cjs +826 -0
- package/build/cjs/language/translator/DotNetTranslateVisitor.d.cts +155 -0
- package/build/cjs/language/translator/GoTranslateVisitor.cjs +339 -0
- package/build/cjs/language/translator/GoTranslateVisitor.d.cts +31 -0
- package/build/cjs/language/translator/GremlinTranslator.cjs +96 -0
- package/build/cjs/language/translator/GremlinTranslator.d.cts +18 -0
- package/build/cjs/language/translator/GroovyTranslateVisitor.cjs +287 -0
- package/build/cjs/language/translator/GroovyTranslateVisitor.d.cts +34 -0
- package/build/cjs/language/translator/JavaTranslateVisitor.cjs +247 -0
- package/build/cjs/language/translator/JavaTranslateVisitor.d.cts +23 -0
- package/build/cjs/language/translator/JavascriptTranslateVisitor.cjs +220 -0
- package/build/cjs/language/translator/JavascriptTranslateVisitor.d.cts +25 -0
- package/build/cjs/language/translator/PythonTranslateVisitor.cjs +304 -0
- package/build/cjs/language/translator/PythonTranslateVisitor.d.cts +28 -0
- package/build/cjs/language/translator/TranslateVisitor.cjs +389 -0
- package/build/cjs/language/translator/TranslateVisitor.d.cts +91 -0
- package/build/cjs/language/translator/Translation.cjs +47 -0
- package/build/cjs/language/translator/Translation.d.cts +13 -0
- package/build/cjs/language/translator/Translator.cjs +46 -0
- package/build/cjs/language/translator/Translator.d.cts +24 -0
- package/build/cjs/language/translator/TranslatorException.cjs +31 -0
- package/build/cjs/language/translator/TranslatorException.d.cts +6 -0
- package/build/cjs/process/anonymous-traversal.cjs +78 -0
- package/build/cjs/process/anonymous-traversal.d.cts +40 -0
- package/build/cjs/process/graph-traversal.cjs +1702 -0
- package/build/cjs/process/graph-traversal.d.cts +1134 -0
- package/build/cjs/process/gremlin-lang.cjs +196 -0
- package/build/cjs/process/gremlin-lang.d.cts +15 -0
- package/build/cjs/process/transaction.cjs +69 -0
- package/build/cjs/process/transaction.d.cts +34 -0
- package/build/cjs/process/traversal-strategy.cjs +360 -0
- package/build/cjs/process/traversal-strategy.d.cts +211 -0
- package/build/cjs/process/traversal.cjs +482 -0
- package/build/cjs/process/traversal.d.cts +186 -0
- package/build/cjs/structure/graph.cjs +157 -0
- package/build/cjs/structure/graph.d.cts +57 -0
- package/build/cjs/structure/io/binary/GraphBinary.cjs +148 -0
- package/build/cjs/structure/io/binary/GraphBinary.d.cts +91 -0
- package/build/cjs/structure/io/binary/internals/AnySerializer.cjs +80 -0
- package/build/cjs/structure/io/binary/internals/AnySerializer.d.cts +8 -0
- package/build/cjs/structure/io/binary/internals/ArraySerializer.cjs +139 -0
- package/build/cjs/structure/io/binary/internals/ArraySerializer.d.cts +15 -0
- package/build/cjs/structure/io/binary/internals/BigIntegerSerializer.cjs +136 -0
- package/build/cjs/structure/io/binary/internals/BigIntegerSerializer.d.cts +14 -0
- package/build/cjs/structure/io/binary/internals/BinarySerializer.cjs +112 -0
- package/build/cjs/structure/io/binary/internals/BinarySerializer.d.cts +11 -0
- package/build/cjs/structure/io/binary/internals/BooleanSerializer.cjs +93 -0
- package/build/cjs/structure/io/binary/internals/BooleanSerializer.d.cts +11 -0
- package/build/cjs/structure/io/binary/internals/ByteSerializer.cjs +88 -0
- package/build/cjs/structure/io/binary/internals/ByteSerializer.d.cts +10 -0
- package/build/cjs/structure/io/binary/internals/DataType.cjs +63 -0
- package/build/cjs/structure/io/binary/internals/DataType.d.cts +35 -0
- package/build/cjs/structure/io/binary/internals/DateTimeSerializer.cjs +139 -0
- package/build/cjs/structure/io/binary/internals/DateTimeSerializer.d.cts +15 -0
- package/build/cjs/structure/io/binary/internals/DoubleSerializer.cjs +91 -0
- package/build/cjs/structure/io/binary/internals/DoubleSerializer.d.cts +11 -0
- package/build/cjs/structure/io/binary/internals/EdgeSerializer.cjs +201 -0
- package/build/cjs/structure/io/binary/internals/EdgeSerializer.d.cts +20 -0
- package/build/cjs/structure/io/binary/internals/EnumSerializer.cjs +127 -0
- package/build/cjs/structure/io/binary/internals/EnumSerializer.d.cts +24 -0
- package/build/cjs/structure/io/binary/internals/FloatSerializer.cjs +91 -0
- package/build/cjs/structure/io/binary/internals/FloatSerializer.d.cts +11 -0
- package/build/cjs/structure/io/binary/internals/GraphBinaryReader.cjs +97 -0
- package/build/cjs/structure/io/binary/internals/GraphBinaryReader.d.cts +19 -0
- package/build/cjs/structure/io/binary/internals/GraphBinaryWriter.cjs +85 -0
- package/build/cjs/structure/io/binary/internals/GraphBinaryWriter.d.cts +9 -0
- package/build/cjs/structure/io/binary/internals/IntSerializer.cjs +103 -0
- package/build/cjs/structure/io/binary/internals/IntSerializer.d.cts +13 -0
- package/build/cjs/structure/io/binary/internals/LongSerializer.cjs +95 -0
- package/build/cjs/structure/io/binary/internals/LongSerializer.d.cts +11 -0
- package/build/cjs/structure/io/binary/internals/MapSerializer.cjs +144 -0
- package/build/cjs/structure/io/binary/internals/MapSerializer.d.cts +13 -0
- package/build/cjs/structure/io/binary/internals/MarkerSerializer.cjs +63 -0
- package/build/cjs/structure/io/binary/internals/MarkerSerializer.d.cts +8 -0
- package/build/cjs/structure/io/binary/internals/NumberSerializationStrategy.cjs +66 -0
- package/build/cjs/structure/io/binary/internals/NumberSerializationStrategy.d.cts +9 -0
- package/build/cjs/structure/io/binary/internals/PathSerializer.cjs +113 -0
- package/build/cjs/structure/io/binary/internals/PathSerializer.d.cts +15 -0
- package/build/cjs/structure/io/binary/internals/PropertySerializer.cjs +130 -0
- package/build/cjs/structure/io/binary/internals/PropertySerializer.d.cts +15 -0
- package/build/cjs/structure/io/binary/internals/SetSerializer.cjs +138 -0
- package/build/cjs/structure/io/binary/internals/SetSerializer.d.cts +15 -0
- package/build/cjs/structure/io/binary/internals/ShortSerializer.cjs +91 -0
- package/build/cjs/structure/io/binary/internals/ShortSerializer.d.cts +11 -0
- package/build/cjs/structure/io/binary/internals/StringSerializer.cjs +107 -0
- package/build/cjs/structure/io/binary/internals/StringSerializer.d.cts +11 -0
- package/{lib/driver/auth/authenticator.js → build/cjs/structure/io/binary/internals/StubSerializer.cjs} +14 -20
- package/build/cjs/structure/io/binary/internals/StubSerializer.d.cts +7 -0
- package/build/cjs/structure/io/binary/internals/UnspecifiedNullSerializer.cjs +70 -0
- package/build/cjs/structure/io/binary/internals/UnspecifiedNullSerializer.d.cts +11 -0
- package/build/cjs/structure/io/binary/internals/UuidSerializer.cjs +109 -0
- package/build/cjs/structure/io/binary/internals/UuidSerializer.d.cts +14 -0
- package/build/cjs/structure/io/binary/internals/VertexPropertySerializer.cjs +163 -0
- package/build/cjs/structure/io/binary/internals/VertexPropertySerializer.d.cts +15 -0
- package/build/cjs/structure/io/binary/internals/VertexSerializer.cjs +128 -0
- package/build/cjs/structure/io/binary/internals/VertexSerializer.d.cts +17 -0
- package/build/cjs/structure/io/binary/internals/utils.cjs +53 -0
- package/build/cjs/structure/io/binary/internals/utils.d.cts +6 -0
- package/build/cjs/utils.cjs +142 -0
- package/build/cjs/utils.d.cts +20 -0
- package/build/esm/driver/auth.d.ts +9 -0
- package/build/esm/driver/auth.js +65 -0
- package/build/esm/driver/client.d.ts +85 -0
- package/build/esm/driver/client.js +128 -0
- package/build/esm/driver/connection.d.ts +63 -0
- package/build/esm/driver/connection.js +211 -0
- package/build/esm/driver/driver-remote-connection.d.ts +33 -0
- package/build/esm/driver/driver-remote-connection.js +102 -0
- package/build/esm/driver/remote-connection.d.ts +72 -0
- package/build/esm/driver/remote-connection.js +69 -0
- package/build/esm/driver/request-message.d.ts +49 -0
- package/build/esm/driver/request-message.js +152 -0
- package/build/esm/driver/response-error.d.ts +13 -0
- package/{lib → build/esm}/driver/response-error.js +21 -26
- package/build/esm/driver/result-set.d.ts +29 -0
- package/build/esm/driver/result-set.js +75 -0
- package/build/esm/index.d.ts +393 -0
- package/{index.js → build/esm/index.js} +23 -33
- package/build/esm/language/grammar/GremlinLexer.d.ts +340 -0
- package/build/esm/language/grammar/GremlinLexer.js +1814 -0
- package/build/esm/language/grammar/GremlinListener.d.ts +4898 -0
- package/build/esm/language/grammar/GremlinListener.js +4486 -0
- package/build/esm/language/grammar/GremlinParser.d.ts +5881 -0
- package/build/esm/language/grammar/GremlinParser.js +34711 -0
- package/build/esm/language/index.d.ts +12 -0
- package/build/esm/language/index.js +30 -0
- package/build/esm/language/translator/AnonymizedTranslateVisitor.d.ts +36 -0
- package/build/esm/language/translator/AnonymizedTranslateVisitor.js +151 -0
- package/build/esm/language/translator/DotNetTranslateVisitor.d.ts +155 -0
- package/build/esm/language/translator/DotNetTranslateVisitor.js +820 -0
- package/build/esm/language/translator/GoTranslateVisitor.d.ts +31 -0
- package/build/esm/language/translator/GoTranslateVisitor.js +333 -0
- package/build/esm/language/translator/GremlinTranslator.d.ts +18 -0
- package/build/esm/language/translator/GremlinTranslator.js +89 -0
- package/build/esm/language/translator/GroovyTranslateVisitor.d.ts +34 -0
- package/build/esm/language/translator/GroovyTranslateVisitor.js +281 -0
- package/build/esm/language/translator/JavaTranslateVisitor.d.ts +23 -0
- package/build/esm/language/translator/JavaTranslateVisitor.js +241 -0
- package/build/esm/language/translator/JavascriptTranslateVisitor.d.ts +25 -0
- package/build/esm/language/translator/JavascriptTranslateVisitor.js +214 -0
- package/build/esm/language/translator/PythonTranslateVisitor.d.ts +28 -0
- package/build/esm/language/translator/PythonTranslateVisitor.js +298 -0
- package/build/esm/language/translator/TranslateVisitor.d.ts +91 -0
- package/build/esm/language/translator/TranslateVisitor.js +386 -0
- package/build/esm/language/translator/Translation.d.ts +13 -0
- package/build/esm/language/translator/Translation.js +43 -0
- package/build/esm/language/translator/Translator.d.ts +24 -0
- package/build/esm/language/translator/Translator.js +40 -0
- package/build/esm/language/translator/TranslatorException.d.ts +6 -0
- package/build/esm/language/translator/TranslatorException.js +27 -0
- package/build/esm/process/anonymous-traversal.d.ts +40 -0
- package/build/esm/process/anonymous-traversal.js +72 -0
- package/build/esm/process/graph-traversal.d.ts +1134 -0
- package/build/esm/process/graph-traversal.js +1693 -0
- package/build/esm/process/gremlin-lang.d.ts +15 -0
- package/build/esm/process/gremlin-lang.js +193 -0
- package/build/esm/process/transaction.d.ts +34 -0
- package/build/esm/process/transaction.js +65 -0
- package/build/esm/process/traversal-strategy.d.ts +211 -0
- package/build/esm/process/traversal-strategy.js +319 -0
- package/build/esm/process/traversal.d.ts +186 -0
- package/build/esm/process/traversal.js +469 -0
- package/build/esm/structure/graph.d.ts +57 -0
- package/build/esm/structure/graph.js +148 -0
- package/build/esm/structure/io/binary/GraphBinary.d.ts +91 -0
- package/build/esm/structure/io/binary/GraphBinary.js +108 -0
- package/build/esm/structure/io/binary/internals/AnySerializer.d.ts +8 -0
- package/build/esm/structure/io/binary/internals/AnySerializer.js +77 -0
- package/build/esm/structure/io/binary/internals/ArraySerializer.d.ts +15 -0
- package/build/esm/structure/io/binary/internals/ArraySerializer.js +136 -0
- package/build/esm/structure/io/binary/internals/BigIntegerSerializer.d.ts +14 -0
- package/build/esm/structure/io/binary/internals/BigIntegerSerializer.js +133 -0
- package/build/esm/structure/io/binary/internals/BinarySerializer.d.ts +11 -0
- package/build/esm/structure/io/binary/internals/BinarySerializer.js +109 -0
- package/build/esm/structure/io/binary/internals/BooleanSerializer.d.ts +11 -0
- package/build/esm/structure/io/binary/internals/BooleanSerializer.js +90 -0
- package/build/esm/structure/io/binary/internals/ByteSerializer.d.ts +10 -0
- package/build/esm/structure/io/binary/internals/ByteSerializer.js +85 -0
- package/build/esm/structure/io/binary/internals/DataType.d.ts +35 -0
- package/{lib/driver/auth/mechanisms/sasl-mechanism-base.js → build/esm/structure/io/binary/internals/DataType.js} +43 -34
- package/build/esm/structure/io/binary/internals/DateTimeSerializer.d.ts +15 -0
- package/build/esm/structure/io/binary/internals/DateTimeSerializer.js +136 -0
- package/build/esm/structure/io/binary/internals/DoubleSerializer.d.ts +11 -0
- package/build/esm/structure/io/binary/internals/DoubleSerializer.js +88 -0
- package/build/esm/structure/io/binary/internals/EdgeSerializer.d.ts +20 -0
- package/build/esm/structure/io/binary/internals/EdgeSerializer.js +198 -0
- package/build/esm/structure/io/binary/internals/EnumSerializer.d.ts +24 -0
- package/build/esm/structure/io/binary/internals/EnumSerializer.js +124 -0
- package/build/esm/structure/io/binary/internals/FloatSerializer.d.ts +11 -0
- package/build/esm/structure/io/binary/internals/FloatSerializer.js +88 -0
- package/build/esm/structure/io/binary/internals/GraphBinaryReader.d.ts +19 -0
- package/build/esm/structure/io/binary/internals/GraphBinaryReader.js +94 -0
- package/build/esm/structure/io/binary/internals/GraphBinaryWriter.d.ts +9 -0
- package/build/esm/structure/io/binary/internals/GraphBinaryWriter.js +82 -0
- package/build/esm/structure/io/binary/internals/IntSerializer.d.ts +13 -0
- package/build/esm/structure/io/binary/internals/IntSerializer.js +100 -0
- package/build/esm/structure/io/binary/internals/LongSerializer.d.ts +11 -0
- package/build/esm/structure/io/binary/internals/LongSerializer.js +92 -0
- package/build/esm/structure/io/binary/internals/MapSerializer.d.ts +13 -0
- package/build/esm/structure/io/binary/internals/MapSerializer.js +141 -0
- package/build/esm/structure/io/binary/internals/MarkerSerializer.d.ts +8 -0
- package/build/esm/structure/io/binary/internals/MarkerSerializer.js +60 -0
- package/build/esm/structure/io/binary/internals/NumberSerializationStrategy.d.ts +9 -0
- package/build/esm/structure/io/binary/internals/NumberSerializationStrategy.js +63 -0
- package/build/esm/structure/io/binary/internals/PathSerializer.d.ts +15 -0
- package/build/esm/structure/io/binary/internals/PathSerializer.js +110 -0
- package/build/esm/structure/io/binary/internals/PropertySerializer.d.ts +15 -0
- package/build/esm/structure/io/binary/internals/PropertySerializer.js +127 -0
- package/build/esm/structure/io/binary/internals/SetSerializer.d.ts +15 -0
- package/build/esm/structure/io/binary/internals/SetSerializer.js +135 -0
- package/build/esm/structure/io/binary/internals/ShortSerializer.d.ts +11 -0
- package/build/esm/structure/io/binary/internals/ShortSerializer.js +88 -0
- package/build/esm/structure/io/binary/internals/StringSerializer.d.ts +11 -0
- package/build/esm/structure/io/binary/internals/StringSerializer.js +104 -0
- package/build/esm/structure/io/binary/internals/StubSerializer.d.ts +7 -0
- package/{.prettierrc.js → build/esm/structure/io/binary/internals/StubSerializer.js} +11 -11
- package/build/esm/structure/io/binary/internals/UnspecifiedNullSerializer.d.ts +11 -0
- package/build/esm/structure/io/binary/internals/UnspecifiedNullSerializer.js +67 -0
- package/build/esm/structure/io/binary/internals/UuidSerializer.d.ts +14 -0
- package/build/esm/structure/io/binary/internals/UuidSerializer.js +106 -0
- package/build/esm/structure/io/binary/internals/VertexPropertySerializer.d.ts +15 -0
- package/build/esm/structure/io/binary/internals/VertexPropertySerializer.js +160 -0
- package/build/esm/structure/io/binary/internals/VertexSerializer.d.ts +17 -0
- package/build/esm/structure/io/binary/internals/VertexSerializer.js +125 -0
- package/build/esm/structure/io/binary/internals/utils.d.ts +6 -0
- package/{lib → build/esm}/structure/io/binary/internals/utils.js +23 -35
- package/build/esm/utils.d.ts +20 -0
- package/build/esm/utils.js +98 -0
- package/package.json +56 -20
- package/.nvmrc +0 -1
- package/NOTICE +0 -5
- package/doc/AnonymousTraversalSource.html +0 -793
- package/doc/Authenticator.html +0 -303
- package/doc/Bytecode.html +0 -941
- package/doc/CardinalityValue.html +0 -711
- package/doc/Client.html +0 -1869
- package/doc/Connection.html +0 -1192
- package/doc/DriverRemoteConnection.html +0 -1528
- package/doc/EdgeLabelVerificationStrategy.html +0 -238
- package/doc/Graph.html +0 -343
- package/doc/GraphSON2Reader.html +0 -407
- package/doc/GraphSON2Writer.html +0 -558
- package/doc/GraphSON3Reader.html +0 -170
- package/doc/GraphSON3Writer.html +0 -170
- package/doc/GraphTraversal.html +0 -22974
- package/doc/GraphTraversalSource.html +0 -3683
- package/doc/HaltedTraverserStrategy.html +0 -215
- package/doc/MatchAlgorithmStrategy.html +0 -210
- package/doc/P.html +0 -2020
- package/doc/PartitionStrategy.html +0 -387
- package/doc/Path.html +0 -242
- package/doc/PlainTextSaslAuthenticator.html +0 -456
- package/doc/ProductiveByStrategy.html +0 -258
- package/doc/RemoteConnection.html +0 -1086
- package/doc/RemoteStrategy.html +0 -307
- package/doc/RemoteTraversal.html +0 -170
- package/doc/ReservedKeysVerificationStrategy.html +0 -261
- package/doc/ResponseError.html +0 -360
- package/doc/ResultSet.html +0 -633
- package/doc/SaslAuthenticator.html +0 -455
- package/doc/SaslMechanismBase.html +0 -506
- package/doc/SaslMechanismPlain.html +0 -925
- package/doc/SeedStrategy.html +0 -288
- package/doc/SubgraphStrategy.html +0 -387
- package/doc/TextP.html +0 -1440
- package/doc/Transaction.html +0 -655
- package/doc/Translator.html +0 -527
- package/doc/TraversalStrategies.html +0 -652
- package/doc/TraversalStrategy.html +0 -393
- package/doc/TypeSerializer.html +0 -166
- package/doc/driver_auth_authenticator.js.html +0 -89
- package/doc/driver_auth_mechanisms_sasl-mechanism-base.js.html +0 -103
- package/doc/driver_auth_mechanisms_sasl-mechanism-plain.js.html +0 -157
- package/doc/driver_auth_plain-text-sasl-authenticator.js.html +0 -106
- package/doc/driver_auth_sasl-authenticator.js.html +0 -100
- package/doc/driver_client.js.html +0 -250
- package/doc/driver_connection.js.html +0 -518
- package/doc/driver_driver-remote-connection.js.html +0 -193
- package/doc/driver_remote-connection.js.html +0 -198
- package/doc/driver_response-error.js.html +0 -98
- package/doc/driver_result-set.js.html +0 -134
- package/doc/fonts/OpenSans-Bold-webfont.eot +0 -0
- package/doc/fonts/OpenSans-Bold-webfont.svg +0 -1830
- package/doc/fonts/OpenSans-Bold-webfont.woff +0 -0
- package/doc/fonts/OpenSans-BoldItalic-webfont.eot +0 -0
- package/doc/fonts/OpenSans-BoldItalic-webfont.svg +0 -1830
- package/doc/fonts/OpenSans-BoldItalic-webfont.woff +0 -0
- package/doc/fonts/OpenSans-Italic-webfont.eot +0 -0
- package/doc/fonts/OpenSans-Italic-webfont.svg +0 -1830
- package/doc/fonts/OpenSans-Italic-webfont.woff +0 -0
- package/doc/fonts/OpenSans-Light-webfont.eot +0 -0
- package/doc/fonts/OpenSans-Light-webfont.svg +0 -1831
- package/doc/fonts/OpenSans-Light-webfont.woff +0 -0
- package/doc/fonts/OpenSans-LightItalic-webfont.eot +0 -0
- package/doc/fonts/OpenSans-LightItalic-webfont.svg +0 -1835
- package/doc/fonts/OpenSans-LightItalic-webfont.woff +0 -0
- package/doc/fonts/OpenSans-Regular-webfont.eot +0 -0
- package/doc/fonts/OpenSans-Regular-webfont.svg +0 -1831
- package/doc/fonts/OpenSans-Regular-webfont.woff +0 -0
- package/doc/global.html +0 -728
- package/doc/index.html +0 -185
- package/doc/module.exports.html +0 -301
- package/doc/process_anonymous-traversal.js.html +0 -138
- package/doc/process_bytecode.js.html +0 -175
- package/doc/process_graph-traversal.js.html +0 -1936
- package/doc/process_transaction.js.html +0 -151
- package/doc/process_translator.js.html +0 -172
- package/doc/process_traversal-strategy.js.html +0 -466
- package/doc/process_traversal.js.html +0 -592
- package/doc/scripts/linenumber.js +0 -25
- package/doc/scripts/prettify/Apache-License-2.0.txt +0 -202
- package/doc/scripts/prettify/lang-css.js +0 -2
- package/doc/scripts/prettify/prettify.js +0 -28
- package/doc/structure_graph.js.html +0 -233
- package/doc/structure_io_binary_internals_DataType.js.html +0 -151
- package/doc/structure_io_binary_internals_GraphBinaryReader.js.html +0 -133
- package/doc/structure_io_binary_internals_GraphBinaryWriter.js.html +0 -136
- package/doc/structure_io_graph-serializer.js.html +0 -354
- package/doc/structure_io_type-serializers.js.html +0 -617
- package/doc/styles/jsdoc-default.css +0 -358
- package/doc/styles/prettify-jsdoc.css +0 -111
- package/doc/styles/prettify-tomorrow.css +0 -132
- package/doc/utils.js.html +0 -181
- package/docker-compose.yml +0 -76
- package/eslint.config.mjs +0 -143
- package/lib/driver/auth/mechanisms/sasl-mechanism-plain.js +0 -106
- package/lib/driver/auth/plain-text-sasl-authenticator.js +0 -55
- package/lib/driver/auth/sasl-authenticator.js +0 -49
- package/lib/driver/client.js +0 -199
- package/lib/driver/connection.js +0 -467
- package/lib/driver/driver-remote-connection.js +0 -142
- package/lib/driver/remote-connection.js +0 -147
- package/lib/driver/result-set.js +0 -83
- package/lib/process/anonymous-traversal.js +0 -87
- package/lib/process/bytecode.js +0 -124
- package/lib/process/graph-traversal.js +0 -1885
- package/lib/process/transaction.js +0 -100
- package/lib/process/translator.js +0 -121
- package/lib/process/traversal-strategy.js +0 -415
- package/lib/process/traversal.js +0 -541
- package/lib/structure/graph.js +0 -182
- package/lib/structure/io/binary/GraphBinary.js +0 -110
- package/lib/structure/io/binary/internals/AnySerializer.js +0 -100
- package/lib/structure/io/binary/internals/ArraySerializer.js +0 -137
- package/lib/structure/io/binary/internals/BigIntegerSerializer.js +0 -153
- package/lib/structure/io/binary/internals/BooleanSerializer.js +0 -105
- package/lib/structure/io/binary/internals/BulkSetSerializer.js +0 -126
- package/lib/structure/io/binary/internals/ByteBufferSerializer.js +0 -126
- package/lib/structure/io/binary/internals/ByteSerializer.js +0 -97
- package/lib/structure/io/binary/internals/BytecodeSerializer.js +0 -250
- package/lib/structure/io/binary/internals/ClassSerializer.js +0 -60
- package/lib/structure/io/binary/internals/DataType.js +0 -100
- package/lib/structure/io/binary/internals/DateSerializer.js +0 -105
- package/lib/structure/io/binary/internals/DoubleSerializer.js +0 -101
- package/lib/structure/io/binary/internals/EdgeSerializer.js +0 -216
- package/lib/structure/io/binary/internals/EnumSerializer.js +0 -152
- package/lib/structure/io/binary/internals/FloatSerializer.js +0 -101
- package/lib/structure/io/binary/internals/GraphBinaryReader.js +0 -82
- package/lib/structure/io/binary/internals/GraphBinaryWriter.js +0 -85
- package/lib/structure/io/binary/internals/IntSerializer.js +0 -114
- package/lib/structure/io/binary/internals/LambdaSerializer.js +0 -71
- package/lib/structure/io/binary/internals/LongSerializer.js +0 -109
- package/lib/structure/io/binary/internals/LongSerializerNg.js +0 -104
- package/lib/structure/io/binary/internals/MapSerializer.js +0 -155
- package/lib/structure/io/binary/internals/NumberSerializationStrategy.js +0 -73
- package/lib/structure/io/binary/internals/OffsetDateTimeSerializer.js +0 -151
- package/lib/structure/io/binary/internals/PSerializer.js +0 -152
- package/lib/structure/io/binary/internals/PathSerializer.js +0 -124
- package/lib/structure/io/binary/internals/PropertySerializer.js +0 -142
- package/lib/structure/io/binary/internals/SetSerializer.js +0 -134
- package/lib/structure/io/binary/internals/ShortSerializer.js +0 -101
- package/lib/structure/io/binary/internals/StringSerializer.js +0 -116
- package/lib/structure/io/binary/internals/TextPSerializer.js +0 -146
- package/lib/structure/io/binary/internals/TraversalStrategySerializer.js +0 -69
- package/lib/structure/io/binary/internals/TraverserSerializer.js +0 -124
- package/lib/structure/io/binary/internals/UnspecifiedNullSerializer.js +0 -77
- package/lib/structure/io/binary/internals/UuidSerializer.js +0 -121
- package/lib/structure/io/binary/internals/VertexPropertySerializer.js +0 -176
- package/lib/structure/io/binary/internals/VertexSerializer.js +0 -139
- package/lib/structure/io/graph-serializer.js +0 -303
- package/lib/structure/io/type-serializers.js +0 -566
- package/lib/utils.js +0 -130
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Licensed to the Apache Software Foundation (ASF) under one
|
|
3
|
+
* or more contributor license agreements. See the NOTICE file
|
|
4
|
+
* distributed with this work for additional information
|
|
5
|
+
* regarding copyright ownership. The ASF licenses this file
|
|
6
|
+
* to you under the Apache License, Version 2.0 (the
|
|
7
|
+
* "License"); you may not use this file except in compliance
|
|
8
|
+
* with the License. You may obtain a copy of the License at
|
|
9
|
+
*
|
|
10
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
11
|
+
*
|
|
12
|
+
* Unless required by applicable law or agreed to in writing,
|
|
13
|
+
* software distributed under the License is distributed on an
|
|
14
|
+
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
|
15
|
+
* KIND, either express or implied. See the License for the
|
|
16
|
+
* specific language governing permissions and limitations
|
|
17
|
+
* under the License.
|
|
18
|
+
*/
|
|
19
|
+
/**
|
|
20
|
+
* @author Igor Ostapenko
|
|
21
|
+
*/
|
|
22
|
+
import { Buffer } from 'buffer';
|
|
23
|
+
export default class BinarySerializer {
|
|
24
|
+
constructor(ioc) {
|
|
25
|
+
this.ioc = ioc;
|
|
26
|
+
this.ioc.serializers[ioc.DataType.BINARY] = this;
|
|
27
|
+
}
|
|
28
|
+
canBeUsedFor(value) {
|
|
29
|
+
return value instanceof Buffer;
|
|
30
|
+
}
|
|
31
|
+
serialize(item, fullyQualifiedFormat = true) {
|
|
32
|
+
if (item === undefined || item === null) {
|
|
33
|
+
if (fullyQualifiedFormat) {
|
|
34
|
+
return Buffer.from([this.ioc.DataType.BINARY, 0x01]);
|
|
35
|
+
}
|
|
36
|
+
return Buffer.from([0x00, 0x00, 0x00, 0x00]); // {length} = 0
|
|
37
|
+
}
|
|
38
|
+
const bufs = [];
|
|
39
|
+
if (fullyQualifiedFormat) {
|
|
40
|
+
bufs.push(Buffer.from([this.ioc.DataType.BINARY, 0x00]));
|
|
41
|
+
}
|
|
42
|
+
// {length}
|
|
43
|
+
let length = item.length;
|
|
44
|
+
if (length < 0) {
|
|
45
|
+
length = 0; // TODO: test it
|
|
46
|
+
}
|
|
47
|
+
if (length > this.ioc.intSerializer.INT32_MAX) {
|
|
48
|
+
throw new Error(`Buffer length=${length} is greater than supported max_length=${this.ioc.intSerializer.INT32_MAX}.`);
|
|
49
|
+
}
|
|
50
|
+
bufs.push(this.ioc.intSerializer.serialize(length, false));
|
|
51
|
+
// {value} sequence of bytes
|
|
52
|
+
bufs.push(item);
|
|
53
|
+
return Buffer.concat(bufs);
|
|
54
|
+
}
|
|
55
|
+
deserialize(buffer, fullyQualifiedFormat = true) {
|
|
56
|
+
let len = 0;
|
|
57
|
+
let cursor = buffer;
|
|
58
|
+
try {
|
|
59
|
+
if (buffer === undefined || buffer === null || !(buffer instanceof Buffer)) {
|
|
60
|
+
throw new Error('buffer is missing');
|
|
61
|
+
}
|
|
62
|
+
if (buffer.length < 1) {
|
|
63
|
+
throw new Error('buffer is empty');
|
|
64
|
+
}
|
|
65
|
+
if (fullyQualifiedFormat) {
|
|
66
|
+
const type_code = cursor.readUInt8();
|
|
67
|
+
len++;
|
|
68
|
+
if (type_code !== this.ioc.DataType.BINARY) {
|
|
69
|
+
throw new Error('unexpected {type_code}');
|
|
70
|
+
}
|
|
71
|
+
cursor = cursor.slice(1);
|
|
72
|
+
if (cursor.length < 1) {
|
|
73
|
+
throw new Error('{value_flag} is missing');
|
|
74
|
+
}
|
|
75
|
+
const value_flag = cursor.readUInt8();
|
|
76
|
+
len++;
|
|
77
|
+
if (value_flag === 1) {
|
|
78
|
+
return { v: null, len };
|
|
79
|
+
}
|
|
80
|
+
if (value_flag !== 0) {
|
|
81
|
+
throw new Error('unexpected {value_flag}');
|
|
82
|
+
}
|
|
83
|
+
cursor = cursor.slice(1);
|
|
84
|
+
}
|
|
85
|
+
let length, length_len;
|
|
86
|
+
try {
|
|
87
|
+
({ v: length, len: length_len } = this.ioc.intSerializer.deserialize(cursor, false));
|
|
88
|
+
len += length_len;
|
|
89
|
+
}
|
|
90
|
+
catch (err) {
|
|
91
|
+
err.message = '{length}: ' + err.message;
|
|
92
|
+
throw err;
|
|
93
|
+
}
|
|
94
|
+
if (length < 0) {
|
|
95
|
+
throw new Error('{length} is less than zero');
|
|
96
|
+
}
|
|
97
|
+
cursor = cursor.slice(length_len);
|
|
98
|
+
if (cursor.length < length) {
|
|
99
|
+
throw new Error(`{value}: unexpected actual {value} length=${cursor.length} when {length}=${length}`);
|
|
100
|
+
}
|
|
101
|
+
const v = cursor.slice(0, length);
|
|
102
|
+
len += length;
|
|
103
|
+
return { v, len };
|
|
104
|
+
}
|
|
105
|
+
catch (err) {
|
|
106
|
+
throw this.ioc.utils.des_error({ serializer: this, args: arguments, cursor, err });
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export default class BooleanSerializer {
|
|
2
|
+
constructor(ioc: any);
|
|
3
|
+
ioc: any;
|
|
4
|
+
canBeUsedFor(value: any): value is boolean;
|
|
5
|
+
serialize(item: any, fullyQualifiedFormat?: boolean): Buffer<ArrayBuffer>;
|
|
6
|
+
deserialize(buffer: any, fullyQualifiedFormat?: boolean, ...args: any[]): {
|
|
7
|
+
v: any;
|
|
8
|
+
len: number;
|
|
9
|
+
};
|
|
10
|
+
}
|
|
11
|
+
import { Buffer } from 'buffer';
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Licensed to the Apache Software Foundation (ASF) under one
|
|
3
|
+
* or more contributor license agreements. See the NOTICE file
|
|
4
|
+
* distributed with this work for additional information
|
|
5
|
+
* regarding copyright ownership. The ASF licenses this file
|
|
6
|
+
* to you under the Apache License, Version 2.0 (the
|
|
7
|
+
* "License"); you may not use this file except in compliance
|
|
8
|
+
* with the License. You may obtain a copy of the License at
|
|
9
|
+
*
|
|
10
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
11
|
+
*
|
|
12
|
+
* Unless required by applicable law or agreed to in writing,
|
|
13
|
+
* software distributed under the License is distributed on an
|
|
14
|
+
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
|
15
|
+
* KIND, either express or implied. See the License for the
|
|
16
|
+
* specific language governing permissions and limitations
|
|
17
|
+
* under the License.
|
|
18
|
+
*/
|
|
19
|
+
/**
|
|
20
|
+
* @author Igor Ostapenko
|
|
21
|
+
*/
|
|
22
|
+
import { Buffer } from 'buffer';
|
|
23
|
+
export default class BooleanSerializer {
|
|
24
|
+
constructor(ioc) {
|
|
25
|
+
this.ioc = ioc;
|
|
26
|
+
this.ioc.serializers[ioc.DataType.BOOLEAN] = this;
|
|
27
|
+
}
|
|
28
|
+
canBeUsedFor(value) {
|
|
29
|
+
return typeof value === 'boolean';
|
|
30
|
+
}
|
|
31
|
+
serialize(item, fullyQualifiedFormat = true) {
|
|
32
|
+
if (item === undefined || item === null) {
|
|
33
|
+
if (fullyQualifiedFormat) {
|
|
34
|
+
return Buffer.from([this.ioc.DataType.BOOLEAN, 0x01]);
|
|
35
|
+
}
|
|
36
|
+
return Buffer.from([0x00]);
|
|
37
|
+
}
|
|
38
|
+
const bufs = [];
|
|
39
|
+
if (fullyQualifiedFormat) {
|
|
40
|
+
bufs.push(Buffer.from([this.ioc.DataType.BOOLEAN, 0x00]));
|
|
41
|
+
}
|
|
42
|
+
bufs.push(Buffer.from([item ? 0x01 : 0x00]));
|
|
43
|
+
return Buffer.concat(bufs);
|
|
44
|
+
}
|
|
45
|
+
deserialize(buffer, fullyQualifiedFormat = true) {
|
|
46
|
+
let len = 0;
|
|
47
|
+
let cursor = buffer;
|
|
48
|
+
try {
|
|
49
|
+
if (buffer === undefined || buffer === null || !(buffer instanceof Buffer)) {
|
|
50
|
+
throw new Error('buffer is missing');
|
|
51
|
+
}
|
|
52
|
+
if (buffer.length < 1) {
|
|
53
|
+
throw new Error('buffer is empty');
|
|
54
|
+
}
|
|
55
|
+
if (fullyQualifiedFormat) {
|
|
56
|
+
const type_code = cursor.readUInt8();
|
|
57
|
+
len++;
|
|
58
|
+
if (type_code !== this.ioc.DataType.BOOLEAN) {
|
|
59
|
+
throw new Error('unexpected {type_code}');
|
|
60
|
+
}
|
|
61
|
+
cursor = cursor.slice(1);
|
|
62
|
+
if (cursor.length < 1) {
|
|
63
|
+
throw new Error('{value_flag} is missing');
|
|
64
|
+
}
|
|
65
|
+
const value_flag = cursor.readUInt8();
|
|
66
|
+
len++;
|
|
67
|
+
if (value_flag === 1) {
|
|
68
|
+
return { v: null, len };
|
|
69
|
+
}
|
|
70
|
+
if (value_flag !== 0) {
|
|
71
|
+
throw new Error('unexpected {value_flag}');
|
|
72
|
+
}
|
|
73
|
+
cursor = cursor.slice(1);
|
|
74
|
+
}
|
|
75
|
+
if (cursor.length < 1) {
|
|
76
|
+
throw new Error('unexpected {value} length');
|
|
77
|
+
}
|
|
78
|
+
len += 1;
|
|
79
|
+
let v = cursor.readUInt8();
|
|
80
|
+
if (v !== 0x00 && v !== 0x01) {
|
|
81
|
+
throw new Error(`unexpected boolean byte=${v}`);
|
|
82
|
+
}
|
|
83
|
+
v = v === 0x01;
|
|
84
|
+
return { v, len };
|
|
85
|
+
}
|
|
86
|
+
catch (err) {
|
|
87
|
+
throw this.ioc.utils.des_error({ serializer: this, args: arguments, cursor, err });
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export default class ByteSerializer {
|
|
2
|
+
constructor(ioc: any);
|
|
3
|
+
ioc: any;
|
|
4
|
+
serialize(item: any, fullyQualifiedFormat?: boolean): Buffer<ArrayBuffer>;
|
|
5
|
+
deserialize(buffer: any, fullyQualifiedFormat?: boolean, ...args: any[]): {
|
|
6
|
+
v: any;
|
|
7
|
+
len: number;
|
|
8
|
+
};
|
|
9
|
+
}
|
|
10
|
+
import { Buffer } from 'buffer';
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Licensed to the Apache Software Foundation (ASF) under one
|
|
3
|
+
* or more contributor license agreements. See the NOTICE file
|
|
4
|
+
* distributed with this work for additional information
|
|
5
|
+
* regarding copyright ownership. The ASF licenses this file
|
|
6
|
+
* to you under the Apache License, Version 2.0 (the
|
|
7
|
+
* "License"); you may not use this file except in compliance
|
|
8
|
+
* with the License. You may obtain a copy of the License at
|
|
9
|
+
*
|
|
10
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
11
|
+
*
|
|
12
|
+
* Unless required by applicable law or agreed to in writing,
|
|
13
|
+
* software distributed under the License is distributed on an
|
|
14
|
+
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
|
15
|
+
* KIND, either express or implied. See the License for the
|
|
16
|
+
* specific language governing permissions and limitations
|
|
17
|
+
* under the License.
|
|
18
|
+
*/
|
|
19
|
+
/**
|
|
20
|
+
* @author Igor Ostapenko
|
|
21
|
+
*/
|
|
22
|
+
import { Buffer } from 'buffer';
|
|
23
|
+
export default class ByteSerializer {
|
|
24
|
+
constructor(ioc) {
|
|
25
|
+
this.ioc = ioc;
|
|
26
|
+
this.ioc.serializers[ioc.DataType.BYTE] = this;
|
|
27
|
+
}
|
|
28
|
+
serialize(item, fullyQualifiedFormat = true) {
|
|
29
|
+
if (item === undefined || item === null) {
|
|
30
|
+
if (fullyQualifiedFormat) {
|
|
31
|
+
return Buffer.from([this.ioc.DataType.BYTE, 0x01]);
|
|
32
|
+
}
|
|
33
|
+
return Buffer.from([0x00]);
|
|
34
|
+
}
|
|
35
|
+
const bufs = [];
|
|
36
|
+
if (fullyQualifiedFormat) {
|
|
37
|
+
bufs.push(Buffer.from([this.ioc.DataType.BYTE, 0x00]));
|
|
38
|
+
}
|
|
39
|
+
const v = Buffer.alloc(1);
|
|
40
|
+
v.writeInt8(item); // if item is not within int8 limits writeInt8 will error
|
|
41
|
+
bufs.push(v);
|
|
42
|
+
return Buffer.concat(bufs);
|
|
43
|
+
}
|
|
44
|
+
deserialize(buffer, fullyQualifiedFormat = true) {
|
|
45
|
+
let len = 0;
|
|
46
|
+
let cursor = buffer;
|
|
47
|
+
try {
|
|
48
|
+
if (buffer === undefined || buffer === null || !(buffer instanceof Buffer)) {
|
|
49
|
+
throw new Error('buffer is missing');
|
|
50
|
+
}
|
|
51
|
+
if (buffer.length < 1) {
|
|
52
|
+
throw new Error('buffer is empty');
|
|
53
|
+
}
|
|
54
|
+
if (fullyQualifiedFormat) {
|
|
55
|
+
const type_code = cursor.readUInt8();
|
|
56
|
+
len++;
|
|
57
|
+
if (type_code !== this.ioc.DataType.BYTE) {
|
|
58
|
+
throw new Error('unexpected {type_code}');
|
|
59
|
+
}
|
|
60
|
+
cursor = cursor.slice(1);
|
|
61
|
+
if (cursor.length < 1) {
|
|
62
|
+
throw new Error('{value_flag} is missing');
|
|
63
|
+
}
|
|
64
|
+
const value_flag = cursor.readUInt8();
|
|
65
|
+
len++;
|
|
66
|
+
if (value_flag === 1) {
|
|
67
|
+
return { v: null, len };
|
|
68
|
+
}
|
|
69
|
+
if (value_flag !== 0) {
|
|
70
|
+
throw new Error('unexpected {value_flag}');
|
|
71
|
+
}
|
|
72
|
+
cursor = cursor.slice(1);
|
|
73
|
+
}
|
|
74
|
+
if (cursor.length < 1) {
|
|
75
|
+
throw new Error('unexpected {value} length');
|
|
76
|
+
}
|
|
77
|
+
len += 1;
|
|
78
|
+
const v = cursor.readInt8();
|
|
79
|
+
return { v, len };
|
|
80
|
+
}
|
|
81
|
+
catch (err) {
|
|
82
|
+
throw this.ioc.utils.des_error({ serializer: this, args: arguments, cursor, err });
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
export default DataType;
|
|
2
|
+
declare namespace DataType {
|
|
3
|
+
let INT: number;
|
|
4
|
+
let LONG: number;
|
|
5
|
+
let STRING: number;
|
|
6
|
+
let DATETIME: number;
|
|
7
|
+
let DOUBLE: number;
|
|
8
|
+
let FLOAT: number;
|
|
9
|
+
let LIST: number;
|
|
10
|
+
let MAP: number;
|
|
11
|
+
let SET: number;
|
|
12
|
+
let UUID: number;
|
|
13
|
+
let EDGE: number;
|
|
14
|
+
let PATH: number;
|
|
15
|
+
let PROPERTY: number;
|
|
16
|
+
let GRAPH: number;
|
|
17
|
+
let VERTEX: number;
|
|
18
|
+
let VERTEXPROPERTY: number;
|
|
19
|
+
let DIRECTION: number;
|
|
20
|
+
let T: number;
|
|
21
|
+
let BIGDECIMAL: number;
|
|
22
|
+
let BIGINTEGER: number;
|
|
23
|
+
let BYTE: number;
|
|
24
|
+
let BINARY: number;
|
|
25
|
+
let SHORT: number;
|
|
26
|
+
let BOOLEAN: number;
|
|
27
|
+
let TREE: number;
|
|
28
|
+
let MERGE: number;
|
|
29
|
+
let CHAR: number;
|
|
30
|
+
let DURATION: number;
|
|
31
|
+
let COMPOSITEPDT: number;
|
|
32
|
+
let PRIMITIVEPDT: number;
|
|
33
|
+
let MARKER: number;
|
|
34
|
+
let UNSPECIFIED_NULL: number;
|
|
35
|
+
}
|
|
@@ -16,37 +16,46 @@
|
|
|
16
16
|
* specific language governing permissions and limitations
|
|
17
17
|
* under the License.
|
|
18
18
|
*/
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
19
|
+
/**
|
|
20
|
+
* @author Igor Ostapenko
|
|
21
|
+
*/
|
|
22
|
+
/**
|
|
23
|
+
* Represents a GraphBinary data type.
|
|
24
|
+
*
|
|
25
|
+
* See org.apache.tinkerpop.gremlin.structure.io.binary.DataType Java class.
|
|
26
|
+
*/
|
|
27
|
+
const DataType = {
|
|
28
|
+
INT: 0x01,
|
|
29
|
+
LONG: 0x02,
|
|
30
|
+
STRING: 0x03,
|
|
31
|
+
DATETIME: 0x04,
|
|
32
|
+
DOUBLE: 0x07,
|
|
33
|
+
FLOAT: 0x08,
|
|
34
|
+
LIST: 0x09,
|
|
35
|
+
MAP: 0x0a,
|
|
36
|
+
SET: 0x0b,
|
|
37
|
+
UUID: 0x0c,
|
|
38
|
+
EDGE: 0x0d,
|
|
39
|
+
PATH: 0x0e,
|
|
40
|
+
PROPERTY: 0x0f,
|
|
41
|
+
GRAPH: 0x10,
|
|
42
|
+
VERTEX: 0x11,
|
|
43
|
+
VERTEXPROPERTY: 0x12,
|
|
44
|
+
DIRECTION: 0x18,
|
|
45
|
+
T: 0x20,
|
|
46
|
+
BIGDECIMAL: 0x22,
|
|
47
|
+
BIGINTEGER: 0x23,
|
|
48
|
+
BYTE: 0x24,
|
|
49
|
+
BINARY: 0x25,
|
|
50
|
+
SHORT: 0x26,
|
|
51
|
+
BOOLEAN: 0x27,
|
|
52
|
+
TREE: 0x2b,
|
|
53
|
+
MERGE: 0x2e,
|
|
54
|
+
CHAR: 0x80,
|
|
55
|
+
DURATION: 0x81,
|
|
56
|
+
COMPOSITEPDT: 0xf0,
|
|
57
|
+
PRIMITIVEPDT: 0xf1,
|
|
58
|
+
MARKER: 0xfd,
|
|
59
|
+
UNSPECIFIED_NULL: 0xfe,
|
|
60
|
+
};
|
|
61
|
+
export default DataType;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
export default class DateTimeSerializer {
|
|
2
|
+
constructor(ioc: any);
|
|
3
|
+
ioc: any;
|
|
4
|
+
ID: any;
|
|
5
|
+
canBeUsedFor(value: any): value is Date;
|
|
6
|
+
serialize(item: any, fullyQualifiedFormat?: boolean): Buffer<ArrayBuffer>;
|
|
7
|
+
deserialize(buffer: any, fullyQualifiedFormat?: boolean, ...args: any[]): {
|
|
8
|
+
v: null;
|
|
9
|
+
len: number;
|
|
10
|
+
} | {
|
|
11
|
+
v: Date;
|
|
12
|
+
len: number;
|
|
13
|
+
};
|
|
14
|
+
}
|
|
15
|
+
import { Buffer } from 'buffer';
|
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Licensed to the Apache Software Foundation (ASF) under one
|
|
3
|
+
* or more contributor license agreements. See the NOTICE file
|
|
4
|
+
* distributed with this work for additional information
|
|
5
|
+
* regarding copyright ownership. The ASF licenses this file
|
|
6
|
+
* to you under the Apache License, Version 2.0 (the
|
|
7
|
+
* "License"); you may not use this file except in compliance
|
|
8
|
+
* with the License. You may obtain a copy of the License at
|
|
9
|
+
*
|
|
10
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
11
|
+
*
|
|
12
|
+
* Unless required by applicable law or agreed to in writing,
|
|
13
|
+
* software distributed under the License is distributed on an
|
|
14
|
+
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
|
15
|
+
* KIND, either express or implied. See the License for the
|
|
16
|
+
* specific language governing permissions and limitations
|
|
17
|
+
* under the License.
|
|
18
|
+
*/
|
|
19
|
+
import { Buffer } from 'buffer';
|
|
20
|
+
export default class DateTimeSerializer {
|
|
21
|
+
constructor(ioc) {
|
|
22
|
+
this.ioc = ioc;
|
|
23
|
+
this.ID = ioc.DataType.DATETIME;
|
|
24
|
+
this.ioc.serializers[this.ID] = this;
|
|
25
|
+
}
|
|
26
|
+
canBeUsedFor(value) {
|
|
27
|
+
return value instanceof Date;
|
|
28
|
+
}
|
|
29
|
+
serialize(item, fullyQualifiedFormat = true) {
|
|
30
|
+
if (item === undefined || item === null) {
|
|
31
|
+
if (fullyQualifiedFormat) {
|
|
32
|
+
return Buffer.from([this.ID, 0x01]);
|
|
33
|
+
}
|
|
34
|
+
return Buffer.alloc(18);
|
|
35
|
+
}
|
|
36
|
+
const bufs = [];
|
|
37
|
+
if (fullyQualifiedFormat) {
|
|
38
|
+
bufs.push(Buffer.from([this.ID, 0x00]));
|
|
39
|
+
}
|
|
40
|
+
const v = Buffer.alloc(18);
|
|
41
|
+
let offset = 0;
|
|
42
|
+
// Year (Int32BE)
|
|
43
|
+
v.writeInt32BE(item.getUTCFullYear(), offset);
|
|
44
|
+
offset += 4;
|
|
45
|
+
// Month (UInt8, 1-based)
|
|
46
|
+
v.writeUInt8(item.getUTCMonth() + 1, offset);
|
|
47
|
+
offset += 1;
|
|
48
|
+
// Day (UInt8, 1-based)
|
|
49
|
+
v.writeUInt8(item.getUTCDate(), offset);
|
|
50
|
+
offset += 1;
|
|
51
|
+
// Nanoseconds since midnight (BigInt64BE)
|
|
52
|
+
const hours = item.getUTCHours();
|
|
53
|
+
const minutes = item.getUTCMinutes();
|
|
54
|
+
const seconds = item.getUTCSeconds();
|
|
55
|
+
const millis = item.getUTCMilliseconds();
|
|
56
|
+
const nanos = BigInt(hours * 3600 + minutes * 60 + seconds) * 1000000000n + BigInt(millis) * 1000000n;
|
|
57
|
+
v.writeBigInt64BE(nanos, offset);
|
|
58
|
+
offset += 8;
|
|
59
|
+
// UTC offset in seconds (Int32BE) - always 0 for JS Date
|
|
60
|
+
v.writeInt32BE(0, offset);
|
|
61
|
+
bufs.push(v);
|
|
62
|
+
return Buffer.concat(bufs);
|
|
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)) {
|
|
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.ID) {
|
|
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
|
+
if (cursor.length < 18) {
|
|
95
|
+
throw new Error('unexpected {value} length');
|
|
96
|
+
}
|
|
97
|
+
len += 18;
|
|
98
|
+
let offset = 0;
|
|
99
|
+
// Read year (Int32BE)
|
|
100
|
+
const year = cursor.readInt32BE(offset);
|
|
101
|
+
offset += 4;
|
|
102
|
+
// Read month (UInt8, 1-based)
|
|
103
|
+
const month = cursor.readUInt8(offset);
|
|
104
|
+
offset += 1;
|
|
105
|
+
// Read day (UInt8, 1-based)
|
|
106
|
+
const day = cursor.readUInt8(offset);
|
|
107
|
+
offset += 1;
|
|
108
|
+
// Read nanoseconds since midnight (BigInt64BE)
|
|
109
|
+
const nanos = cursor.readBigInt64BE(offset);
|
|
110
|
+
offset += 8;
|
|
111
|
+
// Read UTC offset in seconds (Int32BE) - JS Date cannot represent non-zero offsets
|
|
112
|
+
const utcOffset = cursor.readInt32BE(offset);
|
|
113
|
+
offset += 4;
|
|
114
|
+
// Convert nanos to time components
|
|
115
|
+
const hours = Number(nanos / 3600000000000n);
|
|
116
|
+
const remainingNanos = nanos % 3600000000000n;
|
|
117
|
+
const minutes = Number(remainingNanos / 60000000000n);
|
|
118
|
+
const remainingNanos2 = remainingNanos % 60000000000n;
|
|
119
|
+
const seconds = Number(remainingNanos2 / 1000000000n);
|
|
120
|
+
const millis = Number((remainingNanos2 % 1000000000n) / 1000000n);
|
|
121
|
+
const v = new Date(Date.UTC(year, month - 1, day, hours, minutes, seconds, millis));
|
|
122
|
+
// Date.UTC treats years 0-99 as 1900-1999, correct it
|
|
123
|
+
if (year >= 0 && year <= 99) {
|
|
124
|
+
v.setUTCFullYear(year);
|
|
125
|
+
}
|
|
126
|
+
// Adjust for non-zero UTC offset (JS Date is always UTC internally)
|
|
127
|
+
if (utcOffset !== 0) {
|
|
128
|
+
v.setTime(v.getTime() - utcOffset * 1000);
|
|
129
|
+
}
|
|
130
|
+
return { v, len };
|
|
131
|
+
}
|
|
132
|
+
catch (err) {
|
|
133
|
+
throw this.ioc.utils.des_error({ serializer: this, args: arguments, cursor, err });
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export default class DoubleSerializer {
|
|
2
|
+
constructor(ioc: any);
|
|
3
|
+
ioc: any;
|
|
4
|
+
canBeUsedFor(value: any): boolean;
|
|
5
|
+
serialize(item: any, fullyQualifiedFormat?: boolean): Buffer<ArrayBuffer>;
|
|
6
|
+
deserialize(buffer: any, fullyQualifiedFormat?: boolean, ...args: any[]): {
|
|
7
|
+
v: any;
|
|
8
|
+
len: number;
|
|
9
|
+
};
|
|
10
|
+
}
|
|
11
|
+
import { Buffer } from 'buffer';
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Licensed to the Apache Software Foundation (ASF) under one
|
|
3
|
+
* or more contributor license agreements. See the NOTICE file
|
|
4
|
+
* distributed with this work for additional information
|
|
5
|
+
* regarding copyright ownership. The ASF licenses this file
|
|
6
|
+
* to you under the Apache License, Version 2.0 (the
|
|
7
|
+
* "License"); you may not use this file except in compliance
|
|
8
|
+
* with the License. You may obtain a copy of the License at
|
|
9
|
+
*
|
|
10
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
11
|
+
*
|
|
12
|
+
* Unless required by applicable law or agreed to in writing,
|
|
13
|
+
* software distributed under the License is distributed on an
|
|
14
|
+
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
|
15
|
+
* KIND, either express or implied. See the License for the
|
|
16
|
+
* specific language governing permissions and limitations
|
|
17
|
+
* under the License.
|
|
18
|
+
*/
|
|
19
|
+
/**
|
|
20
|
+
* @author Igor Ostapenko
|
|
21
|
+
*/
|
|
22
|
+
import { Buffer } from 'buffer';
|
|
23
|
+
export default class DoubleSerializer {
|
|
24
|
+
constructor(ioc) {
|
|
25
|
+
this.ioc = ioc;
|
|
26
|
+
this.ioc.serializers[ioc.DataType.DOUBLE] = this;
|
|
27
|
+
}
|
|
28
|
+
canBeUsedFor(value) {
|
|
29
|
+
return typeof value === 'number' && !Number.isInteger(value);
|
|
30
|
+
}
|
|
31
|
+
serialize(item, fullyQualifiedFormat = true) {
|
|
32
|
+
if (item === undefined || item === null) {
|
|
33
|
+
if (fullyQualifiedFormat) {
|
|
34
|
+
return Buffer.from([this.ioc.DataType.DOUBLE, 0x01]);
|
|
35
|
+
}
|
|
36
|
+
return Buffer.from([0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00]);
|
|
37
|
+
}
|
|
38
|
+
const bufs = [];
|
|
39
|
+
if (fullyQualifiedFormat) {
|
|
40
|
+
bufs.push(Buffer.from([this.ioc.DataType.DOUBLE, 0x00]));
|
|
41
|
+
}
|
|
42
|
+
const v = Buffer.alloc(8);
|
|
43
|
+
v.writeDoubleBE(item);
|
|
44
|
+
bufs.push(v);
|
|
45
|
+
return Buffer.concat(bufs);
|
|
46
|
+
}
|
|
47
|
+
deserialize(buffer, fullyQualifiedFormat = true) {
|
|
48
|
+
let len = 0;
|
|
49
|
+
let cursor = buffer;
|
|
50
|
+
try {
|
|
51
|
+
if (buffer === undefined || buffer === null || !(buffer instanceof Buffer)) {
|
|
52
|
+
throw new Error('buffer is missing');
|
|
53
|
+
}
|
|
54
|
+
if (buffer.length < 1) {
|
|
55
|
+
throw new Error('buffer is empty');
|
|
56
|
+
}
|
|
57
|
+
if (fullyQualifiedFormat) {
|
|
58
|
+
const type_code = cursor.readUInt8();
|
|
59
|
+
len++;
|
|
60
|
+
if (type_code !== this.ioc.DataType.DOUBLE) {
|
|
61
|
+
throw new Error('unexpected {type_code}');
|
|
62
|
+
}
|
|
63
|
+
cursor = cursor.slice(1);
|
|
64
|
+
if (cursor.length < 1) {
|
|
65
|
+
throw new Error('{value_flag} is missing');
|
|
66
|
+
}
|
|
67
|
+
const value_flag = cursor.readUInt8();
|
|
68
|
+
len++;
|
|
69
|
+
if (value_flag === 1) {
|
|
70
|
+
return { v: null, len };
|
|
71
|
+
}
|
|
72
|
+
if (value_flag !== 0) {
|
|
73
|
+
throw new Error('unexpected {value_flag}');
|
|
74
|
+
}
|
|
75
|
+
cursor = cursor.slice(1);
|
|
76
|
+
}
|
|
77
|
+
if (cursor.length < 8) {
|
|
78
|
+
throw new Error('unexpected {value} length');
|
|
79
|
+
}
|
|
80
|
+
len += 8;
|
|
81
|
+
const v = cursor.readDoubleBE();
|
|
82
|
+
return { v, len };
|
|
83
|
+
}
|
|
84
|
+
catch (err) {
|
|
85
|
+
throw this.ioc.utils.des_error({ serializer: this, args: arguments, cursor, err });
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
}
|