gremlin 4.0.0-beta.2 → 4.0.0-beta.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/cjs/driver/auth.cjs +11 -4
- package/build/cjs/driver/auth.d.cts +1 -1
- package/build/cjs/driver/client.cjs +82 -38
- package/build/cjs/driver/client.d.cts +30 -27
- package/build/cjs/driver/connection.cjs +173 -60
- package/build/cjs/driver/connection.d.cts +69 -26
- package/build/cjs/driver/dispatcher.browser.cjs +57 -0
- package/build/cjs/driver/dispatcher.browser.d.cts +35 -0
- package/build/cjs/driver/dispatcher.cjs +101 -0
- package/build/cjs/driver/dispatcher.d.cts +48 -0
- package/build/cjs/driver/driver-remote-connection.cjs +27 -15
- package/build/cjs/driver/driver-remote-connection.d.cts +10 -4
- package/build/cjs/driver/http-request.cjs +64 -0
- package/build/cjs/driver/http-request.d.cts +28 -0
- package/build/cjs/driver/logger.cjs +45 -0
- package/build/cjs/driver/logger.d.cts +29 -0
- package/build/cjs/driver/remote-connection.cjs +5 -8
- package/build/cjs/driver/remote-connection.d.cts +6 -21
- package/build/cjs/driver/request-message.cjs +110 -21
- package/build/cjs/driver/request-message.d.cts +38 -8
- package/build/cjs/driver/response-error.cjs +3 -3
- package/build/cjs/driver/response-error.d.cts +2 -2
- package/build/cjs/index.cjs +21 -0
- package/build/cjs/index.d.cts +47 -0
- package/build/cjs/language/grammar/GremlinLexer.cjs +1669 -1615
- package/build/cjs/language/grammar/GremlinLexer.d.cts +325 -316
- package/build/cjs/language/grammar/GremlinListener.cjs +322 -8
- package/build/cjs/language/grammar/GremlinListener.d.cts +351 -10
- package/build/cjs/language/grammar/GremlinParser.cjs +8700 -5798
- package/build/cjs/language/grammar/GremlinParser.d.cts +998 -619
- package/build/cjs/language/translator/AnonymizedTranslateVisitor.cjs +9 -0
- package/build/cjs/language/translator/AnonymizedTranslateVisitor.d.cts +3 -0
- package/build/cjs/language/translator/DotNetTranslateVisitor.cjs +113 -4
- package/build/cjs/language/translator/DotNetTranslateVisitor.d.cts +13 -2
- package/build/cjs/language/translator/GoTranslateVisitor.cjs +82 -0
- package/build/cjs/language/translator/GoTranslateVisitor.d.cts +9 -0
- package/build/cjs/language/translator/GroovyTranslateVisitor.cjs +23 -0
- package/build/cjs/language/translator/GroovyTranslateVisitor.d.cts +3 -0
- package/build/cjs/language/translator/JavaTranslateVisitor.cjs +23 -0
- package/build/cjs/language/translator/JavaTranslateVisitor.d.cts +3 -0
- package/build/cjs/language/translator/JavascriptTranslateVisitor.cjs +11 -0
- package/build/cjs/language/translator/JavascriptTranslateVisitor.d.cts +3 -0
- package/build/cjs/language/translator/PythonTranslateVisitor.cjs +39 -3
- package/build/cjs/language/translator/PythonTranslateVisitor.d.cts +3 -0
- package/build/cjs/language/translator/TranslateVisitor.cjs +9 -0
- package/build/cjs/language/translator/TranslateVisitor.d.cts +3 -0
- package/build/cjs/process/anonymous-traversal.cjs +5 -1
- package/build/cjs/process/graph-traversal.cjs +139 -8
- package/build/cjs/process/graph-traversal.d.cts +84 -3
- package/build/cjs/process/gremlin-lang.cjs +119 -7
- package/build/cjs/process/gremlin-lang.d.cts +6 -1
- package/build/cjs/process/gvalue.cjs +42 -0
- package/build/cjs/process/gvalue.d.cts +7 -0
- package/build/cjs/process/transaction.cjs +125 -23
- package/build/cjs/process/transaction.d.cts +50 -14
- package/build/cjs/process/traversal.cjs +105 -48
- package/build/cjs/process/traversal.d.cts +36 -10
- package/build/cjs/structure/PDTRegistry.cjs +116 -0
- package/build/cjs/structure/PDTRegistry.d.cts +34 -0
- package/build/cjs/structure/graph.cjs +351 -8
- package/build/cjs/structure/graph.d.cts +122 -3
- package/build/cjs/structure/io/binary/GraphBinary.cjs +68 -39
- package/build/cjs/structure/io/binary/GraphBinary.d.cts +15 -1
- package/build/cjs/structure/io/binary/internals/AnySerializer.cjs +34 -17
- package/build/cjs/structure/io/binary/internals/AnySerializer.d.cts +12 -2
- package/build/cjs/structure/io/binary/internals/ArraySerializer.cjs +41 -72
- package/build/cjs/structure/io/binary/internals/ArraySerializer.d.cts +14 -7
- package/build/cjs/structure/io/binary/internals/BigIntegerSerializer.cjs +34 -54
- package/build/cjs/structure/io/binary/internals/BigIntegerSerializer.d.cts +12 -7
- package/build/cjs/structure/io/binary/internals/BinarySerializer.cjs +31 -51
- package/build/cjs/structure/io/binary/internals/BinarySerializer.d.cts +12 -4
- package/build/cjs/structure/io/binary/internals/BooleanSerializer.cjs +28 -42
- package/build/cjs/structure/io/binary/internals/BooleanSerializer.d.cts +12 -4
- package/build/cjs/structure/io/binary/internals/ByteSerializer.cjs +24 -38
- package/build/cjs/structure/io/binary/internals/ByteSerializer.d.cts +12 -4
- package/build/cjs/structure/io/binary/internals/CompositePDTSerializer.cjs +81 -0
- package/build/cjs/structure/io/binary/internals/CompositePDTSerializer.d.cts +10 -0
- package/build/cjs/structure/io/binary/internals/DateTimeSerializer.cjs +52 -69
- package/build/cjs/structure/io/binary/internals/DateTimeSerializer.d.cts +12 -7
- package/build/cjs/structure/io/binary/internals/DoubleSerializer.cjs +24 -38
- package/build/cjs/structure/io/binary/internals/DoubleSerializer.d.cts +12 -4
- package/build/cjs/structure/io/binary/internals/EdgeSerializer.cjs +69 -124
- package/build/cjs/structure/io/binary/internals/EdgeSerializer.d.cts +14 -12
- package/build/cjs/structure/io/binary/internals/EnumSerializer.cjs +47 -59
- package/build/cjs/structure/io/binary/internals/EnumSerializer.d.cts +19 -4
- package/build/cjs/structure/io/binary/internals/FloatSerializer.cjs +24 -38
- package/build/cjs/structure/io/binary/internals/FloatSerializer.d.cts +12 -4
- package/build/cjs/structure/io/binary/internals/GraphBinaryReader.cjs +111 -37
- package/build/cjs/structure/io/binary/internals/GraphBinaryReader.d.cts +26 -2
- package/build/cjs/structure/io/binary/internals/GraphBinaryWriter.cjs +6 -6
- package/build/cjs/structure/io/binary/internals/GraphSerializer.cjs +184 -0
- package/build/cjs/structure/io/binary/internals/GraphSerializer.d.cts +22 -0
- package/build/cjs/structure/io/binary/internals/IntSerializer.cjs +33 -38
- package/build/cjs/structure/io/binary/internals/IntSerializer.d.cts +19 -4
- package/build/cjs/structure/io/binary/internals/LongSerializer.cjs +29 -42
- package/build/cjs/structure/io/binary/internals/LongSerializer.d.cts +13 -4
- package/build/cjs/structure/io/binary/internals/MapSerializer.cjs +36 -70
- package/build/cjs/structure/io/binary/internals/MapSerializer.d.cts +14 -7
- package/build/cjs/structure/io/binary/internals/MarkerSerializer.cjs +30 -33
- package/build/cjs/structure/io/binary/internals/MarkerSerializer.d.cts +13 -4
- package/build/cjs/structure/io/binary/internals/NumberSerializationStrategy.cjs +28 -2
- package/build/cjs/structure/io/binary/internals/NumberSerializationStrategy.d.cts +0 -3
- package/build/cjs/structure/io/binary/internals/PathSerializer.cjs +30 -55
- package/build/cjs/structure/io/binary/internals/PathSerializer.d.cts +14 -7
- package/build/cjs/structure/io/binary/internals/PrimitivePDTSerializer.cjs +80 -0
- package/build/cjs/structure/io/binary/internals/PrimitivePDTSerializer.d.cts +10 -0
- package/build/cjs/structure/io/binary/internals/PropertySerializer.cjs +32 -69
- package/build/cjs/structure/io/binary/internals/PropertySerializer.d.cts +14 -7
- package/build/cjs/structure/io/binary/internals/SetSerializer.cjs +39 -73
- package/build/cjs/structure/io/binary/internals/SetSerializer.d.cts +14 -7
- package/build/cjs/structure/io/binary/internals/ShortSerializer.cjs +24 -38
- package/build/cjs/structure/io/binary/internals/ShortSerializer.d.cts +12 -4
- package/build/cjs/structure/io/binary/internals/StreamReader.cjs +184 -0
- package/build/cjs/structure/io/binary/internals/StreamReader.d.cts +69 -0
- package/build/cjs/structure/io/binary/internals/StringSerializer.cjs +34 -53
- package/build/cjs/structure/io/binary/internals/StringSerializer.d.cts +14 -4
- package/build/cjs/structure/io/binary/internals/StubSerializer.cjs +2 -1
- package/build/cjs/structure/io/binary/internals/StubSerializer.d.cts +1 -1
- package/build/cjs/structure/io/binary/internals/TreeSerializer.cjs +139 -0
- package/build/cjs/structure/io/binary/internals/TreeSerializer.d.cts +54 -0
- package/build/cjs/structure/io/binary/internals/UnspecifiedNullSerializer.cjs +8 -31
- package/build/cjs/structure/io/binary/internals/UnspecifiedNullSerializer.d.cts +6 -4
- package/build/cjs/structure/io/binary/internals/UuidSerializer.cjs +33 -49
- package/build/cjs/structure/io/binary/internals/UuidSerializer.d.cts +12 -7
- package/build/cjs/structure/io/binary/internals/VertexPropertySerializer.cjs +37 -95
- package/build/cjs/structure/io/binary/internals/VertexPropertySerializer.d.cts +14 -7
- package/build/cjs/structure/io/binary/internals/VertexSerializer.cjs +41 -68
- package/build/cjs/structure/io/binary/internals/VertexSerializer.d.cts +14 -9
- package/build/cjs/utils.cjs +157 -40
- package/build/cjs/utils.d.cts +62 -4
- package/build/esm/driver/auth.d.ts +1 -1
- package/build/esm/driver/auth.js +11 -4
- package/build/esm/driver/client.d.ts +30 -27
- package/build/esm/driver/client.js +82 -38
- package/build/esm/driver/connection.d.ts +69 -26
- package/build/esm/driver/connection.js +172 -60
- package/build/esm/driver/dispatcher.browser.d.ts +35 -0
- package/build/esm/driver/dispatcher.browser.js +53 -0
- package/build/esm/driver/dispatcher.d.ts +48 -0
- package/build/esm/driver/dispatcher.js +94 -0
- package/build/esm/driver/driver-remote-connection.d.ts +10 -4
- package/build/esm/driver/driver-remote-connection.js +27 -15
- package/build/esm/driver/http-request.d.ts +28 -0
- package/build/esm/driver/http-request.js +60 -0
- package/build/esm/driver/logger.d.ts +29 -0
- package/build/esm/driver/logger.js +42 -0
- package/build/esm/driver/remote-connection.d.ts +6 -21
- package/build/esm/driver/remote-connection.js +5 -8
- package/build/esm/driver/request-message.d.ts +38 -8
- package/build/esm/driver/request-message.js +107 -21
- package/build/esm/driver/response-error.d.ts +2 -2
- package/build/esm/driver/response-error.js +3 -3
- package/build/esm/index.d.ts +47 -0
- package/build/esm/index.js +21 -0
- package/build/esm/language/grammar/GremlinLexer.d.ts +325 -316
- package/build/esm/language/grammar/GremlinLexer.js +1669 -1615
- package/build/esm/language/grammar/GremlinListener.d.ts +351 -10
- package/build/esm/language/grammar/GremlinListener.js +322 -8
- package/build/esm/language/grammar/GremlinParser.d.ts +998 -619
- package/build/esm/language/grammar/GremlinParser.js +8646 -5778
- package/build/esm/language/translator/AnonymizedTranslateVisitor.d.ts +3 -0
- package/build/esm/language/translator/AnonymizedTranslateVisitor.js +9 -0
- package/build/esm/language/translator/DotNetTranslateVisitor.d.ts +13 -2
- package/build/esm/language/translator/DotNetTranslateVisitor.js +113 -4
- package/build/esm/language/translator/GoTranslateVisitor.d.ts +9 -0
- package/build/esm/language/translator/GoTranslateVisitor.js +82 -0
- package/build/esm/language/translator/GroovyTranslateVisitor.d.ts +3 -0
- package/build/esm/language/translator/GroovyTranslateVisitor.js +23 -0
- package/build/esm/language/translator/JavaTranslateVisitor.d.ts +3 -0
- package/build/esm/language/translator/JavaTranslateVisitor.js +23 -0
- package/build/esm/language/translator/JavascriptTranslateVisitor.d.ts +3 -0
- package/build/esm/language/translator/JavascriptTranslateVisitor.js +11 -0
- package/build/esm/language/translator/PythonTranslateVisitor.d.ts +3 -0
- package/build/esm/language/translator/PythonTranslateVisitor.js +39 -3
- package/build/esm/language/translator/TranslateVisitor.d.ts +3 -0
- package/build/esm/language/translator/TranslateVisitor.js +9 -0
- package/build/esm/process/anonymous-traversal.js +5 -1
- package/build/esm/process/graph-traversal.d.ts +84 -3
- package/build/esm/process/graph-traversal.js +139 -8
- package/build/esm/process/gremlin-lang.d.ts +6 -1
- package/build/esm/process/gremlin-lang.js +121 -9
- package/build/esm/process/gvalue.d.ts +7 -0
- package/build/esm/process/gvalue.js +38 -0
- package/build/esm/process/transaction.d.ts +50 -14
- package/build/esm/process/transaction.js +122 -23
- package/build/esm/process/traversal.d.ts +36 -10
- package/build/esm/process/traversal.js +104 -47
- package/build/esm/structure/PDTRegistry.d.ts +34 -0
- package/build/esm/structure/PDTRegistry.js +112 -0
- package/build/esm/structure/graph.d.ts +122 -3
- package/build/esm/structure/graph.js +347 -7
- package/build/esm/structure/io/binary/GraphBinary.d.ts +15 -1
- package/build/esm/structure/io/binary/GraphBinary.js +66 -38
- package/build/esm/structure/io/binary/internals/AnySerializer.d.ts +12 -2
- package/build/esm/structure/io/binary/internals/AnySerializer.js +34 -17
- package/build/esm/structure/io/binary/internals/ArraySerializer.d.ts +14 -7
- package/build/esm/structure/io/binary/internals/ArraySerializer.js +41 -72
- package/build/esm/structure/io/binary/internals/BigIntegerSerializer.d.ts +12 -7
- package/build/esm/structure/io/binary/internals/BigIntegerSerializer.js +34 -54
- package/build/esm/structure/io/binary/internals/BinarySerializer.d.ts +12 -4
- package/build/esm/structure/io/binary/internals/BinarySerializer.js +31 -51
- package/build/esm/structure/io/binary/internals/BooleanSerializer.d.ts +12 -4
- package/build/esm/structure/io/binary/internals/BooleanSerializer.js +28 -42
- package/build/esm/structure/io/binary/internals/ByteSerializer.d.ts +12 -4
- package/build/esm/structure/io/binary/internals/ByteSerializer.js +24 -38
- package/build/esm/structure/io/binary/internals/CompositePDTSerializer.d.ts +10 -0
- package/build/esm/structure/io/binary/internals/CompositePDTSerializer.js +78 -0
- package/build/esm/structure/io/binary/internals/DateTimeSerializer.d.ts +12 -7
- package/build/esm/structure/io/binary/internals/DateTimeSerializer.js +52 -69
- package/build/esm/structure/io/binary/internals/DoubleSerializer.d.ts +12 -4
- package/build/esm/structure/io/binary/internals/DoubleSerializer.js +24 -38
- package/build/esm/structure/io/binary/internals/EdgeSerializer.d.ts +14 -12
- package/build/esm/structure/io/binary/internals/EdgeSerializer.js +69 -124
- package/build/esm/structure/io/binary/internals/EnumSerializer.d.ts +19 -4
- package/build/esm/structure/io/binary/internals/EnumSerializer.js +47 -59
- package/build/esm/structure/io/binary/internals/FloatSerializer.d.ts +12 -4
- package/build/esm/structure/io/binary/internals/FloatSerializer.js +24 -38
- package/build/esm/structure/io/binary/internals/GraphBinaryReader.d.ts +26 -2
- package/build/esm/structure/io/binary/internals/GraphBinaryReader.js +108 -37
- package/build/esm/structure/io/binary/internals/GraphBinaryWriter.js +6 -6
- package/build/esm/structure/io/binary/internals/GraphSerializer.d.ts +22 -0
- package/build/esm/structure/io/binary/internals/GraphSerializer.js +181 -0
- package/build/esm/structure/io/binary/internals/IntSerializer.d.ts +19 -4
- package/build/esm/structure/io/binary/internals/IntSerializer.js +33 -38
- package/build/esm/structure/io/binary/internals/LongSerializer.d.ts +13 -4
- package/build/esm/structure/io/binary/internals/LongSerializer.js +29 -42
- package/build/esm/structure/io/binary/internals/MapSerializer.d.ts +14 -7
- package/build/esm/structure/io/binary/internals/MapSerializer.js +36 -70
- package/build/esm/structure/io/binary/internals/MarkerSerializer.d.ts +13 -4
- package/build/esm/structure/io/binary/internals/MarkerSerializer.js +29 -33
- package/build/esm/structure/io/binary/internals/NumberSerializationStrategy.d.ts +0 -3
- package/build/esm/structure/io/binary/internals/NumberSerializationStrategy.js +28 -2
- package/build/esm/structure/io/binary/internals/PathSerializer.d.ts +14 -7
- package/build/esm/structure/io/binary/internals/PathSerializer.js +30 -55
- package/build/esm/structure/io/binary/internals/PrimitivePDTSerializer.d.ts +10 -0
- package/build/esm/structure/io/binary/internals/PrimitivePDTSerializer.js +77 -0
- package/build/esm/structure/io/binary/internals/PropertySerializer.d.ts +14 -7
- package/build/esm/structure/io/binary/internals/PropertySerializer.js +32 -69
- package/build/esm/structure/io/binary/internals/SetSerializer.d.ts +14 -7
- package/build/esm/structure/io/binary/internals/SetSerializer.js +39 -73
- package/build/esm/structure/io/binary/internals/ShortSerializer.d.ts +12 -4
- package/build/esm/structure/io/binary/internals/ShortSerializer.js +24 -38
- package/build/esm/structure/io/binary/internals/StreamReader.d.ts +69 -0
- package/build/esm/structure/io/binary/internals/StreamReader.js +181 -0
- package/build/esm/structure/io/binary/internals/StringSerializer.d.ts +14 -4
- package/build/esm/structure/io/binary/internals/StringSerializer.js +34 -53
- package/build/esm/structure/io/binary/internals/StubSerializer.d.ts +1 -1
- package/build/esm/structure/io/binary/internals/StubSerializer.js +2 -1
- package/build/esm/structure/io/binary/internals/TreeSerializer.d.ts +54 -0
- package/build/esm/structure/io/binary/internals/TreeSerializer.js +136 -0
- package/build/esm/structure/io/binary/internals/UnspecifiedNullSerializer.d.ts +6 -4
- package/build/esm/structure/io/binary/internals/UnspecifiedNullSerializer.js +8 -31
- package/build/esm/structure/io/binary/internals/UuidSerializer.d.ts +12 -7
- package/build/esm/structure/io/binary/internals/UuidSerializer.js +33 -49
- package/build/esm/structure/io/binary/internals/VertexPropertySerializer.d.ts +14 -7
- package/build/esm/structure/io/binary/internals/VertexPropertySerializer.js +37 -95
- package/build/esm/structure/io/binary/internals/VertexSerializer.d.ts +14 -9
- package/build/esm/structure/io/binary/internals/VertexSerializer.js +41 -68
- package/build/esm/utils.d.ts +62 -4
- package/build/esm/utils.js +145 -6
- package/package.json +27 -18
|
@@ -138,6 +138,15 @@ class AnonymizedTranslateVisitor extends TranslateVisitor_js_1.default {
|
|
|
138
138
|
visitUuidLiteral(ctx) {
|
|
139
139
|
this.anonymize(ctx, 'String');
|
|
140
140
|
}
|
|
141
|
+
visitCharacterLiteral(ctx) {
|
|
142
|
+
this.anonymize(ctx, 'Character');
|
|
143
|
+
}
|
|
144
|
+
visitDurationLiteral(ctx) {
|
|
145
|
+
this.anonymize(ctx, 'Duration');
|
|
146
|
+
}
|
|
147
|
+
visitBinaryLiteral(ctx) {
|
|
148
|
+
this.anonymize(ctx, 'ByteBuffer');
|
|
149
|
+
}
|
|
141
150
|
// ─── Keys — output unquoted (only values are anonymized) ─────────────────
|
|
142
151
|
visitNakedKey(ctx) {
|
|
143
152
|
this.sb.push(ctx.getText());
|
|
@@ -31,6 +31,9 @@ export default class AnonymizedTranslateVisitor extends TranslateVisitor {
|
|
|
31
31
|
visitNanLiteral(ctx: any): void;
|
|
32
32
|
visitInfLiteral(ctx: any): void;
|
|
33
33
|
visitUuidLiteral(ctx: any): void;
|
|
34
|
+
visitCharacterLiteral(ctx: any): void;
|
|
35
|
+
visitDurationLiteral(ctx: any): void;
|
|
36
|
+
visitBinaryLiteral(ctx: any): void;
|
|
34
37
|
visitNakedKey(ctx: any): void;
|
|
35
38
|
visitKeyword(ctx: any): void;
|
|
36
39
|
}
|
|
@@ -216,6 +216,31 @@ class DotNetTranslateVisitor extends TranslateVisitor_js_1.default {
|
|
|
216
216
|
this.sb.push(ctx.stringLiteral().getText());
|
|
217
217
|
this.sb.push(')');
|
|
218
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
|
+
}
|
|
219
244
|
visitClassType(ctx) {
|
|
220
245
|
this.sb.push('typeof(');
|
|
221
246
|
this.sb.push(ctx.getText());
|
|
@@ -311,6 +336,14 @@ class DotNetTranslateVisitor extends TranslateVisitor_js_1.default {
|
|
|
311
336
|
if (ctx?.variable() != null || ctx?.stringLiteral() != null)
|
|
312
337
|
this.sb.push('(string) ');
|
|
313
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
|
+
}
|
|
314
347
|
tryAppendCastToString_StringNullableLit(ctx) {
|
|
315
348
|
if (ctx?.K_NULL != null && ctx.K_NULL() != null)
|
|
316
349
|
this.sb.push('(string) ');
|
|
@@ -354,12 +387,30 @@ class DotNetTranslateVisitor extends TranslateVisitor_js_1.default {
|
|
|
354
387
|
visitTraversalSourceSpawnMethod_io(ctx) { this.handleGenerics(ctx); }
|
|
355
388
|
visitTraversalSourceSpawnMethod_union(ctx) { this.handleGenerics(ctx); }
|
|
356
389
|
visitTraversalSourceSpawnMethod_call_empty(ctx) { this.handleGenerics(ctx); }
|
|
357
|
-
|
|
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) {
|
|
358
405
|
this.sb.push(capitalize(ctx.getChild(0).getText()));
|
|
359
406
|
for (let ix = 1; ix < ctx.getChildCount(); ix++) {
|
|
360
407
|
const child = ctx.getChild(ix);
|
|
361
408
|
if (child.constructor?.name === 'StringArgumentContext')
|
|
362
409
|
this.tryAppendCastToString_StringArg(child);
|
|
410
|
+
else if (child.constructor?.name === 'StringArgumentVarargsContext') {
|
|
411
|
+
this.visitStringArgumentVarargsWithCast(child);
|
|
412
|
+
continue;
|
|
413
|
+
}
|
|
363
414
|
this.visit(child);
|
|
364
415
|
}
|
|
365
416
|
}
|
|
@@ -429,7 +480,7 @@ class DotNetTranslateVisitor extends TranslateVisitor_js_1.default {
|
|
|
429
480
|
this.visit(ctx.nestedTraversal());
|
|
430
481
|
this.sb.push(')');
|
|
431
482
|
}
|
|
432
|
-
// ─── Traversal method overrides
|
|
483
|
+
// ─── Traversal method overrides - handleGenerics ─────────────────────────
|
|
433
484
|
visitTraversalMethod_asString_Scope(ctx) { this.handleGenerics(ctx); }
|
|
434
485
|
visitTraversalMethod_branch(ctx) { this.handleGenerics(ctx); }
|
|
435
486
|
visitTraversalMethod_cap(ctx) { this.handleGenerics(ctx); }
|
|
@@ -459,7 +510,21 @@ class DotNetTranslateVisitor extends TranslateVisitor_js_1.default {
|
|
|
459
510
|
visitTraversalMethod_local(ctx) { this.handleGenerics(ctx); }
|
|
460
511
|
visitTraversalMethod_lTrim_Scope(ctx) { this.handleGenerics(ctx); }
|
|
461
512
|
visitTraversalMethod_map(ctx) { this.handleGenerics(ctx); }
|
|
462
|
-
|
|
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
|
+
}
|
|
463
528
|
visitTraversalMethod_max_Empty(ctx) { this.handleGenerics(ctx); }
|
|
464
529
|
visitTraversalMethod_max_Scope(ctx) { this.handleGenerics(ctx); }
|
|
465
530
|
visitTraversalMethod_mean_Empty(ctx) { this.handleGenerics(ctx); }
|
|
@@ -498,7 +563,7 @@ class DotNetTranslateVisitor extends TranslateVisitor_js_1.default {
|
|
|
498
563
|
visitTraversalMethod_valueMap_String(ctx) { this.handleGenerics(ctx); }
|
|
499
564
|
visitTraversalMethod_valueMap_boolean_String(ctx) { this.handleGenerics(ctx); }
|
|
500
565
|
visitTraversalMethod_values(ctx) { this.handleGenerics(ctx); }
|
|
501
|
-
// ─── Traversal method overrides
|
|
566
|
+
// ─── Traversal method overrides - handleLongArguments ────────────────────
|
|
502
567
|
visitTraversalMethod_limit_long(ctx) { this.handleLongArguments(ctx); }
|
|
503
568
|
visitTraversalMethod_limit_Scope_long(ctx) { this.handleLongArguments(ctx); }
|
|
504
569
|
visitTraversalMethod_range_long_long(ctx) { this.handleLongArguments(ctx); }
|
|
@@ -514,6 +579,10 @@ class DotNetTranslateVisitor extends TranslateVisitor_js_1.default {
|
|
|
514
579
|
const child = ctx.getChild(ix);
|
|
515
580
|
if (child.constructor?.name === 'StringArgumentContext')
|
|
516
581
|
this.tryAppendCastToString_StringArg(child);
|
|
582
|
+
else if (child.constructor?.name === 'StringArgumentVarargsContext') {
|
|
583
|
+
this.visitStringArgumentVarargsWithCast(child);
|
|
584
|
+
continue;
|
|
585
|
+
}
|
|
517
586
|
this.visit(child);
|
|
518
587
|
}
|
|
519
588
|
}
|
|
@@ -523,6 +592,10 @@ class DotNetTranslateVisitor extends TranslateVisitor_js_1.default {
|
|
|
523
592
|
const child = ctx.getChild(ix);
|
|
524
593
|
if (child.constructor?.name === 'StringArgumentContext')
|
|
525
594
|
this.tryAppendCastToString_StringArg(child);
|
|
595
|
+
else if (child.constructor?.name === 'StringArgumentVarargsContext') {
|
|
596
|
+
this.visitStringArgumentVarargsWithCast(child);
|
|
597
|
+
continue;
|
|
598
|
+
}
|
|
526
599
|
this.visit(child);
|
|
527
600
|
}
|
|
528
601
|
}
|
|
@@ -746,6 +819,42 @@ class DotNetTranslateVisitor extends TranslateVisitor_js_1.default {
|
|
|
746
819
|
}
|
|
747
820
|
}
|
|
748
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
|
+
}
|
|
749
858
|
visitTraversalMethod_property_Cardinality_Object_Object_Object(ctx) {
|
|
750
859
|
if (ctx.genericArgumentVarargs() == null || ctx.genericArgumentVarargs().getChildCount() === 0) {
|
|
751
860
|
this.sb.push(capitalize(ctx.getChild(0).getText()));
|
|
@@ -28,6 +28,9 @@ export default class DotNetTranslateVisitor extends TranslateVisitor {
|
|
|
28
28
|
visitMapEntry(ctx: any): void;
|
|
29
29
|
visitMapKey(ctx: any): void;
|
|
30
30
|
visitUuidLiteral(ctx: any): void;
|
|
31
|
+
visitCharacterLiteral(ctx: any): void;
|
|
32
|
+
visitDurationLiteral(ctx: any): void;
|
|
33
|
+
visitBinaryLiteral(ctx: any): void;
|
|
31
34
|
visitClassType(ctx: any): void;
|
|
32
35
|
visitTraversalStrategy(ctx: any): void;
|
|
33
36
|
visitConfiguration(ctx: any): void;
|
|
@@ -36,6 +39,7 @@ export default class DotNetTranslateVisitor extends TranslateVisitor {
|
|
|
36
39
|
private handleLongArguments;
|
|
37
40
|
private tryAppendCastToLong_IntArg;
|
|
38
41
|
private tryAppendCastToString_StringArg;
|
|
42
|
+
private visitStringArgumentVarargsWithCast;
|
|
39
43
|
private tryAppendCastToString_StringNullableLit;
|
|
40
44
|
private tryAppendCastToString_StringNullableArg;
|
|
41
45
|
private tryAppendCastToObject_GenericArg;
|
|
@@ -45,7 +49,9 @@ export default class DotNetTranslateVisitor extends TranslateVisitor {
|
|
|
45
49
|
visitTraversalSourceSpawnMethod_io(ctx: any): void;
|
|
46
50
|
visitTraversalSourceSpawnMethod_union(ctx: any): void;
|
|
47
51
|
visitTraversalSourceSpawnMethod_call_empty(ctx: any): void;
|
|
48
|
-
|
|
52
|
+
visitTraversalSourceSpawnMethod_match_string(ctx: any): void;
|
|
53
|
+
visitTraversalSourceSpawnMethod_match_string_map(ctx: any): void;
|
|
54
|
+
visitTraversalSourceSpawnMethod_addV_String(ctx: any): void;
|
|
49
55
|
visitTraversalSourceSpawnMethod_addE(ctx: any): void;
|
|
50
56
|
visitTraversalSourceSpawnMethod_call_string(ctx: any): void;
|
|
51
57
|
visitTraversalSourceSpawnMethod_call_string_map(ctx: any): void;
|
|
@@ -77,7 +83,9 @@ export default class DotNetTranslateVisitor extends TranslateVisitor {
|
|
|
77
83
|
visitTraversalMethod_local(ctx: any): void;
|
|
78
84
|
visitTraversalMethod_lTrim_Scope(ctx: any): void;
|
|
79
85
|
visitTraversalMethod_map(ctx: any): void;
|
|
80
|
-
|
|
86
|
+
visitTraversalMethod_match_traversal(ctx: any): void;
|
|
87
|
+
visitTraversalMethod_match_string(ctx: any): void;
|
|
88
|
+
visitTraversalMethod_match_string_map(ctx: any): void;
|
|
81
89
|
visitTraversalMethod_max_Empty(ctx: any): void;
|
|
82
90
|
visitTraversalMethod_max_Scope(ctx: any): void;
|
|
83
91
|
visitTraversalMethod_mean_Empty(ctx: any): void;
|
|
@@ -149,6 +157,9 @@ export default class DotNetTranslateVisitor extends TranslateVisitor {
|
|
|
149
157
|
visitTraversalMethod_option_Merge_Map(ctx: any): void;
|
|
150
158
|
visitTraversalMethod_option_Merge_Traversal(ctx: any): void;
|
|
151
159
|
visitTraversalMethod_option_Object_Traversal(ctx: any): void;
|
|
160
|
+
visitTraversalMethod_property_Object(ctx: any): void;
|
|
161
|
+
visitTraversalMethod_property_Cardinality_Object(ctx: any): void;
|
|
162
|
+
visitTraversalMethod_property_Traversal(ctx: any): void;
|
|
152
163
|
visitTraversalMethod_property_Cardinality_Object_Object_Object(ctx: any): void;
|
|
153
164
|
visitTraversalMethod_conjoin_String(ctx: any): void;
|
|
154
165
|
private tryAppendCastToString_StringLit;
|
|
@@ -25,6 +25,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
25
25
|
// require accepting arbitrary context types at runtime.
|
|
26
26
|
const TranslateVisitor_js_1 = __importDefault(require("./TranslateVisitor.cjs"));
|
|
27
27
|
const TranslatorException_js_1 = require("./TranslatorException.cjs");
|
|
28
|
+
const buffer_1 = require("node:buffer");
|
|
28
29
|
const GO_PACKAGE_NAME = 'gremlingo.';
|
|
29
30
|
const STRATEGY_WITH_MAP_OPTS = new Set([
|
|
30
31
|
'OptionsStrategy',
|
|
@@ -234,6 +235,40 @@ class GoTranslateVisitor extends TranslateVisitor_js_1.default {
|
|
|
234
235
|
this.visitStringLiteral(ctx.stringLiteral());
|
|
235
236
|
this.sb.push(')');
|
|
236
237
|
}
|
|
238
|
+
visitCharacterLiteral(_ctx) {
|
|
239
|
+
throw new TranslatorException_js_1.TranslatorException('Character literals are not supported in Go');
|
|
240
|
+
}
|
|
241
|
+
visitDurationLiteral(ctx) {
|
|
242
|
+
const seconds = parseInt(ctx.integerLiteral(0).getText(), 10);
|
|
243
|
+
const nanos = parseInt(ctx.integerLiteral(1).getText(), 10);
|
|
244
|
+
const isPositive = ctx.booleanLiteral() === null ||
|
|
245
|
+
ctx.booleanLiteral().getText() === 'true';
|
|
246
|
+
// Use BigInt to avoid precision loss for durations over ~104 days
|
|
247
|
+
const totalNanos = BigInt(seconds) * 1000000000n + BigInt(nanos);
|
|
248
|
+
this.sb.push(`time.Duration(${isPositive ? totalNanos : -totalNanos})`);
|
|
249
|
+
}
|
|
250
|
+
visitBinaryLiteral(ctx) {
|
|
251
|
+
const base64Str = TranslateVisitor_js_1.default.removeFirstAndLastCharacters(ctx.stringLiteral().getText());
|
|
252
|
+
const bytes = base64ToBytes(base64Str);
|
|
253
|
+
this.sb.push(GO_PACKAGE_NAME + 'ByteBuffer{Data: []byte{');
|
|
254
|
+
for (let i = 0; i < bytes.length; i++) {
|
|
255
|
+
if (i > 0)
|
|
256
|
+
this.sb.push(',');
|
|
257
|
+
this.sb.push(String(bytes[i]));
|
|
258
|
+
}
|
|
259
|
+
this.sb.push('}}');
|
|
260
|
+
}
|
|
261
|
+
visitTraversalTerminalMethod_next(ctx) {
|
|
262
|
+
// Go has no method overloading: next() maps to Next(), next(n) maps to NextN(n)
|
|
263
|
+
if (ctx.getChildCount() === 4) {
|
|
264
|
+
this.sb.push('NextN(');
|
|
265
|
+
this.visit(ctx.getChild(2));
|
|
266
|
+
this.sb.push(')');
|
|
267
|
+
}
|
|
268
|
+
else {
|
|
269
|
+
this.sb.push('Next()');
|
|
270
|
+
}
|
|
271
|
+
}
|
|
237
272
|
visitTraversalStrategy(ctx) {
|
|
238
273
|
if (ctx.getChildCount() === 1) {
|
|
239
274
|
this.sb.push(GO_PACKAGE_NAME);
|
|
@@ -296,6 +331,40 @@ class GoTranslateVisitor extends TranslateVisitor_js_1.default {
|
|
|
296
331
|
this.sb.push(transformed);
|
|
297
332
|
}
|
|
298
333
|
}
|
|
334
|
+
visitTraversalSourceSpawnMethod_match_string(ctx) {
|
|
335
|
+
this.sb.push('Match(');
|
|
336
|
+
this.visit(ctx.stringLiteral());
|
|
337
|
+
this.sb.push(')');
|
|
338
|
+
}
|
|
339
|
+
visitTraversalSourceSpawnMethod_match_string_map(ctx) {
|
|
340
|
+
this.sb.push('Match(');
|
|
341
|
+
this.visit(ctx.stringLiteral());
|
|
342
|
+
this.sb.push(', ');
|
|
343
|
+
this.visitGoParamsMap(ctx.genericMapLiteral());
|
|
344
|
+
this.sb.push(')');
|
|
345
|
+
}
|
|
346
|
+
visitTraversalMethod_match_string(ctx) {
|
|
347
|
+
this.sb.push('Match(');
|
|
348
|
+
this.visit(ctx.stringLiteral());
|
|
349
|
+
this.sb.push(')');
|
|
350
|
+
}
|
|
351
|
+
visitTraversalMethod_match_string_map(ctx) {
|
|
352
|
+
this.sb.push('Match(');
|
|
353
|
+
this.visit(ctx.stringLiteral());
|
|
354
|
+
this.sb.push(', ');
|
|
355
|
+
this.visitGoParamsMap(ctx.genericMapLiteral());
|
|
356
|
+
this.sb.push(')');
|
|
357
|
+
}
|
|
358
|
+
visitGoParamsMap(mapLiteral) {
|
|
359
|
+
this.sb.push('map[string]interface{}{');
|
|
360
|
+
const entries = mapLiteral.mapEntry();
|
|
361
|
+
for (let i = 0; i < entries.length; i++) {
|
|
362
|
+
this.visit(entries[i]);
|
|
363
|
+
if (i < entries.length - 1)
|
|
364
|
+
this.sb.push(', ');
|
|
365
|
+
}
|
|
366
|
+
this.sb.push(' }');
|
|
367
|
+
}
|
|
299
368
|
visitTraversalSourceSelfMethod_withoutStrategies(ctx) {
|
|
300
369
|
this.sb.push('WithoutStrategies(');
|
|
301
370
|
this.sb.push(GO_PACKAGE_NAME);
|
|
@@ -313,6 +382,19 @@ class GoTranslateVisitor extends TranslateVisitor_js_1.default {
|
|
|
313
382
|
}
|
|
314
383
|
}
|
|
315
384
|
exports.default = GoTranslateVisitor;
|
|
385
|
+
/**
|
|
386
|
+
* Decodes a base64 string into an array of unsigned byte values.
|
|
387
|
+
*/
|
|
388
|
+
function base64ToBytes(base64) {
|
|
389
|
+
if (base64 === '')
|
|
390
|
+
return [];
|
|
391
|
+
const buf = buffer_1.Buffer.from(base64, 'base64');
|
|
392
|
+
const bytes = new Array(buf.length);
|
|
393
|
+
for (let i = 0; i < buf.length; i++) {
|
|
394
|
+
bytes[i] = buf[i];
|
|
395
|
+
}
|
|
396
|
+
return bytes;
|
|
397
|
+
}
|
|
316
398
|
class SymbolHelper {
|
|
317
399
|
static TO_GO_MAP = {
|
|
318
400
|
'OUT': 'Out',
|
|
@@ -25,7 +25,16 @@ export default class GoTranslateVisitor extends TranslateVisitor {
|
|
|
25
25
|
visitMapEntry(ctx: any): void;
|
|
26
26
|
visitMapKey(ctx: any): void;
|
|
27
27
|
visitUuidLiteral(ctx: any): void;
|
|
28
|
+
visitCharacterLiteral(_ctx: any): void;
|
|
29
|
+
visitDurationLiteral(ctx: any): void;
|
|
30
|
+
visitBinaryLiteral(ctx: any): void;
|
|
31
|
+
visitTraversalTerminalMethod_next(ctx: any): void;
|
|
28
32
|
visitTraversalStrategy(ctx: any): void;
|
|
29
33
|
visitConfiguration(ctx: any): void;
|
|
34
|
+
visitTraversalSourceSpawnMethod_match_string(ctx: any): void;
|
|
35
|
+
visitTraversalSourceSpawnMethod_match_string_map(ctx: any): void;
|
|
36
|
+
visitTraversalMethod_match_string(ctx: any): void;
|
|
37
|
+
visitTraversalMethod_match_string_map(ctx: any): void;
|
|
38
|
+
private visitGoParamsMap;
|
|
30
39
|
visitTraversalSourceSelfMethod_withoutStrategies(ctx: any): void;
|
|
31
40
|
}
|
|
@@ -113,6 +113,29 @@ class GroovyTranslateVisitor extends TranslateVisitor_js_1.default {
|
|
|
113
113
|
this.sb.push(ctx.stringLiteral().getText());
|
|
114
114
|
this.sb.push(')');
|
|
115
115
|
}
|
|
116
|
+
visitCharacterLiteral(ctx) {
|
|
117
|
+
const text = ctx.getText();
|
|
118
|
+
const withoutSuffix = text.substring(0, text.length - 1);
|
|
119
|
+
const inner = TranslateVisitor_js_1.default.removeFirstAndLastCharacters(withoutSuffix);
|
|
120
|
+
this.sb.push("'");
|
|
121
|
+
this.sb.push(inner);
|
|
122
|
+
this.sb.push("' as char");
|
|
123
|
+
}
|
|
124
|
+
visitDurationLiteral(ctx) {
|
|
125
|
+
const seconds = parseInt(ctx.integerLiteral(0).getText(), 10);
|
|
126
|
+
const nanos = parseInt(ctx.integerLiteral(1).getText(), 10);
|
|
127
|
+
const isPositive = ctx.booleanLiteral() === null ||
|
|
128
|
+
ctx.booleanLiteral().getText() === 'true';
|
|
129
|
+
this.sb.push(`Duration.ofSeconds(${seconds}, ${nanos})`);
|
|
130
|
+
if (!isPositive) {
|
|
131
|
+
this.sb.push('.negated()');
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
visitBinaryLiteral(ctx) {
|
|
135
|
+
this.sb.push('ByteBuffer.wrap(Base64.getDecoder().decode(');
|
|
136
|
+
this.sb.push(ctx.stringLiteral().getText());
|
|
137
|
+
this.sb.push('))');
|
|
138
|
+
}
|
|
116
139
|
visitNullLiteral(ctx) {
|
|
117
140
|
if (ctx.parent?.constructor?.name === 'GenericMapNullableArgumentContext') {
|
|
118
141
|
this.sb.push('null as Map');
|
|
@@ -9,6 +9,9 @@ export default class GroovyTranslateVisitor extends TranslateVisitor {
|
|
|
9
9
|
visitFloatLiteral(ctx: any): void;
|
|
10
10
|
visitInfLiteral(ctx: any): void;
|
|
11
11
|
visitUuidLiteral(ctx: any): void;
|
|
12
|
+
visitCharacterLiteral(ctx: any): void;
|
|
13
|
+
visitDurationLiteral(ctx: any): void;
|
|
14
|
+
visitBinaryLiteral(ctx: any): void;
|
|
12
15
|
visitNullLiteral(ctx: any): void;
|
|
13
16
|
visitGenericSetLiteral(ctx: any): void;
|
|
14
17
|
visitStringLiteral(ctx: any): void;
|
|
@@ -188,6 +188,29 @@ class JavaTranslateVisitor extends TranslateVisitor_js_1.default {
|
|
|
188
188
|
this.sb.push(ctx.stringLiteral().getText());
|
|
189
189
|
this.sb.push(')');
|
|
190
190
|
}
|
|
191
|
+
visitCharacterLiteral(ctx) {
|
|
192
|
+
const text = ctx.getText();
|
|
193
|
+
const withoutSuffix = text.substring(0, text.length - 1);
|
|
194
|
+
const inner = TranslateVisitor_js_1.default.removeFirstAndLastCharacters(withoutSuffix);
|
|
195
|
+
this.sb.push("'");
|
|
196
|
+
this.sb.push(inner);
|
|
197
|
+
this.sb.push("'");
|
|
198
|
+
}
|
|
199
|
+
visitDurationLiteral(ctx) {
|
|
200
|
+
const seconds = parseInt(ctx.integerLiteral(0).getText(), 10);
|
|
201
|
+
const nanos = parseInt(ctx.integerLiteral(1).getText(), 10);
|
|
202
|
+
const isPositive = ctx.booleanLiteral() === null ||
|
|
203
|
+
ctx.booleanLiteral().getText() === 'true';
|
|
204
|
+
this.sb.push(`Duration.ofSeconds(${seconds}, ${nanos})`);
|
|
205
|
+
if (!isPositive) {
|
|
206
|
+
this.sb.push('.negated()');
|
|
207
|
+
}
|
|
208
|
+
}
|
|
209
|
+
visitBinaryLiteral(ctx) {
|
|
210
|
+
this.sb.push('ByteBuffer.wrap(Base64.getDecoder().decode(');
|
|
211
|
+
this.sb.push(ctx.stringLiteral().getText());
|
|
212
|
+
this.sb.push('))');
|
|
213
|
+
}
|
|
191
214
|
visitGenericRangeLiteral(_ctx) {
|
|
192
215
|
throw new TranslatorException_js_1.TranslatorException('Java does not support range literals');
|
|
193
216
|
}
|
|
@@ -17,6 +17,9 @@ export default class JavaTranslateVisitor extends TranslateVisitor {
|
|
|
17
17
|
visitIntegerLiteral(ctx: any): void;
|
|
18
18
|
visitFloatLiteral(ctx: any): void;
|
|
19
19
|
visitUuidLiteral(ctx: any): void;
|
|
20
|
+
visitCharacterLiteral(ctx: any): void;
|
|
21
|
+
visitDurationLiteral(ctx: any): void;
|
|
22
|
+
visitBinaryLiteral(ctx: any): void;
|
|
20
23
|
visitGenericRangeLiteral(_ctx: any): void;
|
|
21
24
|
visitGenericSetLiteral(ctx: any): void;
|
|
22
25
|
visitGenericCollectionLiteral(ctx: any): void;
|
|
@@ -176,6 +176,17 @@ class JavascriptTranslateVisitor extends TranslateVisitor_js_1.default {
|
|
|
176
176
|
this.visitStringLiteral(ctx.stringLiteral());
|
|
177
177
|
this.sb.push(')');
|
|
178
178
|
}
|
|
179
|
+
visitCharacterLiteral(_ctx) {
|
|
180
|
+
throw new TranslatorException_js_1.TranslatorException('Character literals are not supported in JavaScript');
|
|
181
|
+
}
|
|
182
|
+
visitDurationLiteral(_ctx) {
|
|
183
|
+
throw new TranslatorException_js_1.TranslatorException('Duration literals are not supported in JavaScript');
|
|
184
|
+
}
|
|
185
|
+
visitBinaryLiteral(ctx) {
|
|
186
|
+
this.sb.push("Buffer.from(");
|
|
187
|
+
this.visitStringLiteral(ctx.stringLiteral());
|
|
188
|
+
this.sb.push(",'base64')");
|
|
189
|
+
}
|
|
179
190
|
}
|
|
180
191
|
exports.default = JavascriptTranslateVisitor;
|
|
181
192
|
/**
|
|
@@ -22,4 +22,7 @@ export default class JavascriptTranslateVisitor extends TranslateVisitor {
|
|
|
22
22
|
visitGenericSetLiteral(ctx: any): void;
|
|
23
23
|
visitGenericCollectionLiteral(ctx: any): void;
|
|
24
24
|
visitUuidLiteral(ctx: any): void;
|
|
25
|
+
visitCharacterLiteral(_ctx: any): void;
|
|
26
|
+
visitDurationLiteral(_ctx: any): void;
|
|
27
|
+
visitBinaryLiteral(ctx: any): void;
|
|
25
28
|
}
|
|
@@ -40,9 +40,16 @@ class PythonTranslateVisitor extends TranslateVisitor_js_1.default {
|
|
|
40
40
|
return 'CardinalityValue';
|
|
41
41
|
}
|
|
42
42
|
handleStringLiteralText(text) {
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
43
|
+
if (text.includes("'")) {
|
|
44
|
+
this.sb.push('"');
|
|
45
|
+
this.sb.push(text);
|
|
46
|
+
this.sb.push('"');
|
|
47
|
+
}
|
|
48
|
+
else {
|
|
49
|
+
this.sb.push("'");
|
|
50
|
+
this.sb.push(text);
|
|
51
|
+
this.sb.push("'");
|
|
52
|
+
}
|
|
46
53
|
}
|
|
47
54
|
visitBooleanLiteral(ctx) {
|
|
48
55
|
const text = ctx.getText();
|
|
@@ -201,6 +208,35 @@ class PythonTranslateVisitor extends TranslateVisitor_js_1.default {
|
|
|
201
208
|
this.visitStringLiteral(ctx.stringLiteral());
|
|
202
209
|
this.sb.push(')');
|
|
203
210
|
}
|
|
211
|
+
visitCharacterLiteral(ctx) {
|
|
212
|
+
const text = ctx.getText();
|
|
213
|
+
const withoutSuffix = text.substring(0, text.length - 1);
|
|
214
|
+
const inner = TranslateVisitor_js_1.default.removeFirstAndLastCharacters(withoutSuffix);
|
|
215
|
+
this.sb.push("SingleChar('");
|
|
216
|
+
this.sb.push(inner);
|
|
217
|
+
this.sb.push("')");
|
|
218
|
+
}
|
|
219
|
+
visitDurationLiteral(ctx) {
|
|
220
|
+
const seconds = parseInt(ctx.integerLiteral(0).getText(), 10);
|
|
221
|
+
const nanos = parseInt(ctx.integerLiteral(1).getText(), 10);
|
|
222
|
+
const isPositive = ctx.booleanLiteral() === null ||
|
|
223
|
+
ctx.booleanLiteral().getText() === 'true';
|
|
224
|
+
const totalSeconds = isPositive ? seconds : -seconds;
|
|
225
|
+
// Python's timedelta has microsecond resolution; sub-microsecond nanos are truncated
|
|
226
|
+
const micros = Math.floor(nanos / 1000);
|
|
227
|
+
if (micros === 0) {
|
|
228
|
+
this.sb.push(`timedelta(seconds=${totalSeconds})`);
|
|
229
|
+
}
|
|
230
|
+
else {
|
|
231
|
+
const totalMicros = isPositive ? micros : -micros;
|
|
232
|
+
this.sb.push(`timedelta(seconds=${totalSeconds},microseconds=${totalMicros})`);
|
|
233
|
+
}
|
|
234
|
+
}
|
|
235
|
+
visitBinaryLiteral(ctx) {
|
|
236
|
+
this.sb.push('base64.b64decode(');
|
|
237
|
+
this.visitStringLiteral(ctx.stringLiteral());
|
|
238
|
+
this.sb.push(')');
|
|
239
|
+
}
|
|
204
240
|
visitTraversalStrategy(ctx) {
|
|
205
241
|
if (ctx.getChildCount() === 1) {
|
|
206
242
|
this.sb.push(ctx.getText());
|
|
@@ -23,6 +23,9 @@ export default class PythonTranslateVisitor extends TranslateVisitor {
|
|
|
23
23
|
visitMapEntry(ctx: any): void;
|
|
24
24
|
visitMapKey(ctx: any): void;
|
|
25
25
|
visitUuidLiteral(ctx: any): void;
|
|
26
|
+
visitCharacterLiteral(ctx: any): void;
|
|
27
|
+
visitDurationLiteral(ctx: any): void;
|
|
28
|
+
visitBinaryLiteral(ctx: any): void;
|
|
26
29
|
visitTraversalStrategy(ctx: any): void;
|
|
27
30
|
visitConfiguration(ctx: any): void;
|
|
28
31
|
}
|
|
@@ -346,6 +346,15 @@ class TranslateVisitor {
|
|
|
346
346
|
visitUuidLiteral(ctx) {
|
|
347
347
|
this.sb.push(ctx.getText());
|
|
348
348
|
}
|
|
349
|
+
visitCharacterLiteral(ctx) {
|
|
350
|
+
this.sb.push(ctx.getText());
|
|
351
|
+
}
|
|
352
|
+
visitDurationLiteral(ctx) {
|
|
353
|
+
this.sb.push(ctx.getText());
|
|
354
|
+
}
|
|
355
|
+
visitBinaryLiteral(ctx) {
|
|
356
|
+
this.sb.push(ctx.getText());
|
|
357
|
+
}
|
|
349
358
|
visitStringLiteral(ctx) {
|
|
350
359
|
const text = TranslateVisitor.removeFirstAndLastCharacters(ctx.getText());
|
|
351
360
|
this.handleStringLiteralText(text);
|
|
@@ -81,6 +81,9 @@ export default class TranslateVisitor {
|
|
|
81
81
|
visitNanLiteral(ctx: any): void;
|
|
82
82
|
visitInfLiteral(ctx: any): void;
|
|
83
83
|
visitUuidLiteral(ctx: any): void;
|
|
84
|
+
visitCharacterLiteral(ctx: any): void;
|
|
85
|
+
visitDurationLiteral(ctx: any): void;
|
|
86
|
+
visitBinaryLiteral(ctx: any): void;
|
|
84
87
|
visitStringLiteral(ctx: any): void;
|
|
85
88
|
visitStringNullableLiteral(ctx: any): void;
|
|
86
89
|
visitNakedKey(ctx: any): void;
|
|
@@ -62,7 +62,11 @@ class AnonymousTraversalSource {
|
|
|
62
62
|
with_(connection) {
|
|
63
63
|
const traversalStrategies = new traversal_strategy_js_1.TraversalStrategies();
|
|
64
64
|
traversalStrategies.addStrategy(new remote_connection_js_1.RemoteStrategy(connection));
|
|
65
|
-
|
|
65
|
+
const gl = new gremlin_lang_js_1.default();
|
|
66
|
+
if (connection.options?.pdtRegistry) {
|
|
67
|
+
gl.pdtRegistry = connection.options.pdtRegistry;
|
|
68
|
+
}
|
|
69
|
+
return new this.traversalSourceClass(new graph_js_1.Graph(), traversalStrategies, gl, this.traversalSourceClass, this.traversalClass);
|
|
66
70
|
}
|
|
67
71
|
/**
|
|
68
72
|
* Creates a {@link GraphTraversalSource} binding a {@link RemoteConnection} to a remote {@link Graph} instances as its
|