This is an automated email from the ASF dual-hosted git repository. spmallette pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/tinkerpop.git
commit d72dc666a70fcedb9788b2100b0720d25042fd76 Merge: f0daf38371 f4f693760d Author: Stephen Mallette <[email protected]> AuthorDate: Wed Mar 25 07:35:33 2026 -0400 Merge pull request #3341 from apache/js-multi Consolidate JS packages under gremlin-js/ with npm workspaces .github/dependabot.yml | 6 +- .github/workflows/build-test.yml | 6 +- .gitignore | 6 + bin/publish-docs.sh | 2 +- bin/run-examples.sh | 10 +- bin/validate-distribution.sh | 2 +- docker/build.sh | 2 +- .../dev/developer/development-environment.asciidoc | 4 +- docs/src/dev/developer/release.asciidoc | 25 +- .../gremlin-javascript/package-lock.json | 4534 ------ gremlin-js/AGENTS.md | 103 + .../gremlin-javascript/.gitignore | 0 .../gremlin-javascript/.mocharc.json | 0 .../gremlin-javascript/.npmignore | 0 .../gremlin-javascript/.nvmrc | 0 .../gremlin-javascript/.prettierrc.cjs | 0 gremlin-js/gremlin-javascript/AGENTS.md | 138 + .../gremlin-javascript/LICENSE | 0 .../gremlin-javascript/NOTICE | 0 .../gremlin-javascript/README.md | 0 .../gremlin-javascript/docker-compose.yml | 33 +- .../gremlin-javascript/eslint.config.mjs | 1 + .../examples/browser/.gitignore | 0 .../examples/browser/.yarnrc.yml | 0 .../gremlin-javascript}/examples/browser/index.css | 0 .../examples/browser/index.html | 0 .../gremlin-javascript}/examples/browser/index.ts | 0 .../examples/browser/package.json | 0 .../gremlin-javascript}/examples/browser/utils.ts | 0 .../gremlin-javascript}/examples/browser/yarn.lock | 0 .../gremlin-javascript}/examples/node/.gitignore | 0 .../examples/node/basic-gremlin.js | 0 .../examples/node/connections.js | 0 .../examples/node/modern-traversals.js | 0 .../examples/node/package-lock.json | 0 .../gremlin-javascript}/examples/node/package.json | 2 +- .../lib/driver/auth/authenticator.ts | 0 .../gremlin-javascript/lib/driver/client.ts | 0 .../gremlin-javascript/lib/driver/connection.ts | 0 .../lib/driver/driver-remote-connection.ts | 0 .../lib/driver/remote-connection.ts | 0 .../lib/driver/request-message.ts | 0 .../lib/driver/response-error.ts | 0 .../gremlin-javascript/lib/driver/result-set.ts | 0 .../gremlin-javascript/lib/index.ts | 0 .../gremlin-javascript/lib/language/index.ts | 0 .../gremlin-javascript/lib/language/package.json | 0 .../translator/AnonymizedTranslateVisitor.ts | 0 .../language/translator/DotNetTranslateVisitor.ts | 0 .../lib/language/translator/GoTranslateVisitor.ts | 0 .../lib/language/translator/GremlinTranslator.ts | 0 .../language/translator/GroovyTranslateVisitor.ts | 0 .../language/translator/JavaTranslateVisitor.ts | 0 .../translator/JavascriptTranslateVisitor.ts | 0 .../language/translator/PythonTranslateVisitor.ts | 0 .../lib/language/translator/TranslateVisitor.ts | 0 .../lib/language/translator/Translation.ts | 0 .../lib/language/translator/Translator.ts | 0 .../lib/language/translator/TranslatorException.ts | 0 .../lib/process/anonymous-traversal.ts | 0 .../lib/process/graph-traversal.ts | 0 .../gremlin-javascript/lib/process/gremlin-lang.ts | 0 .../gremlin-javascript/lib/process/transaction.ts | 0 .../lib/process/traversal-strategy.ts | 0 .../gremlin-javascript/lib/process/traversal.ts | 0 .../gremlin-javascript/lib/structure/graph.ts | 0 .../lib/structure/io/binary/GraphBinary.js | 0 .../structure/io/binary/internals/AnySerializer.js | 0 .../io/binary/internals/ArraySerializer.js | 0 .../io/binary/internals/BigIntegerSerializer.js | 0 .../io/binary/internals/BinarySerializer.js | 0 .../io/binary/internals/BooleanSerializer.js | 0 .../io/binary/internals/ByteSerializer.js | 0 .../lib/structure/io/binary/internals/DataType.js | 0 .../io/binary/internals/DateTimeSerializer.js | 0 .../io/binary/internals/DoubleSerializer.js | 0 .../io/binary/internals/EdgeSerializer.js | 0 .../io/binary/internals/EnumSerializer.js | 0 .../io/binary/internals/FloatSerializer.js | 0 .../io/binary/internals/GraphBinaryReader.js | 0 .../io/binary/internals/GraphBinaryWriter.js | 0 .../structure/io/binary/internals/IntSerializer.js | 0 .../io/binary/internals/LongSerializer.js | 0 .../structure/io/binary/internals/MapSerializer.js | 0 .../io/binary/internals/MarkerSerializer.js | 0 .../internals/NumberSerializationStrategy.js | 0 .../io/binary/internals/PathSerializer.js | 0 .../io/binary/internals/PropertySerializer.js | 0 .../structure/io/binary/internals/SetSerializer.js | 0 .../io/binary/internals/ShortSerializer.js | 0 .../io/binary/internals/StringSerializer.js | 0 .../io/binary/internals/StubSerializer.js | 0 .../binary/internals/UnspecifiedNullSerializer.js | 0 .../io/binary/internals/UuidSerializer.js | 0 .../binary/internals/VertexPropertySerializer.js | 0 .../io/binary/internals/VertexSerializer.js | 0 .../lib/structure/io/binary/internals/utils.js | 0 .../gremlin-javascript/lib/utils.ts | 0 .../gremlin-javascript/package.json | 10 +- .../gremlin-javascript}/pom.xml | 45 +- .../scripts/groovy}/generate.groovy | 2 +- .../gremlin-javascript/scripts/patch-antlr4ng.js | 25 +- .../test/cucumber/element-comparison.js | 0 .../test/cucumber/feature-steps.js | 0 .../gremlin-javascript/test/cucumber/gremlin.js | 0 .../gremlin-javascript/test/cucumber/world.js | 0 .../gremlin-javascript/test/helper.js | 0 .../test/integration/client-tests.js | 0 .../test/integration/remote-connection-tests.js | 0 .../test/integration/socket-connection-tests.js | 0 .../test/integration/traversal-test.js | 0 .../gremlin-javascript/test/unit/client-test.js | 0 .../test/unit/element-comparison-test.js | 0 .../gremlin-javascript/test/unit/exports-test.js | 0 .../unit/graphbinary/GraphBinaryReader-test.js | 0 .../unit/graphbinary/GraphBinaryWriter-test.js | 0 .../test/unit/graphbinary/error-cases-test.js | 0 .../test/unit/graphbinary/model-test.js | 0 .../test/unit/graphbinary/model.js | 0 .../test/unit/graphbinary/null-handling-test.js | 0 .../test/unit/graphbinary/type-detection-test.js | 0 .../test/unit/gremlin-lang-test.js | 0 .../test/unit/result-set-test.js | 0 .../test/unit/structure-types-test.js | 0 .../test/unit/translator/corpus-test.js | 0 .../unit/translator/gremlin-translator-test.js | 0 .../test/unit/traversal-strategy-test.js | 0 .../gremlin-javascript/test/unit/traversal-test.js | 0 .../gremlin-javascript/tsconfig.json | 0 .../gremlin-javascript/tsconfig.test.json | 0 .../gremlin-mcp}/.env.example | 0 .../gremlin-mcp}/.gitignore | 0 .../gremlin-mcp}/.npmignore | 0 .../gremlin-mcp}/.prettierignore | 0 .../gremlin-mcp}/.prettierrc | 0 .../javascript => gremlin-js/gremlin-mcp}/LICENSE | 0 .../javascript => gremlin-js/gremlin-mcp}/NOTICE | 0 .../gremlin-mcp}/README.md | 4 +- .../gremlin-mcp}/eslint.config.js | 0 .../gremlin-mcp}/jest.config.js | 0 .../gremlin-mcp}/package.json | 6 +- {gremlin-mcp => gremlin-js/gremlin-mcp}/pom.xml | 76 +- .../gremlin-mcp}/scripts/generate-step-names.js | 2 +- .../gremlin-mcp}/src/config.ts | 0 .../gremlin-mcp}/src/connectivity-state.ts | 0 .../gremlin-mcp}/src/constants.ts | 0 .../gremlin-mcp}/src/errors.ts | 0 .../gremlin-mcp}/src/gremlin/client.ts | 0 .../gremlin-mcp}/src/gremlin/connection.ts | 0 .../gremlin-mcp}/src/gremlin/edge-patterns.ts | 0 .../src/gremlin/models/graph-schema.ts | 0 .../gremlin-mcp}/src/gremlin/models/index.ts | 0 .../src/gremlin/models/query-result.ts | 0 .../gremlin-mcp}/src/gremlin/property-analyzer.ts | 0 .../gremlin-mcp}/src/gremlin/query-utils.ts | 0 .../gremlin-mcp}/src/gremlin/schema-assembly.ts | 0 .../gremlin-mcp}/src/gremlin/schema-cache.ts | 0 .../gremlin-mcp}/src/gremlin/schema-generator.ts | 0 .../gremlin-mcp}/src/gremlin/schema.ts | 0 .../gremlin-mcp}/src/gremlin/service.ts | 0 .../gremlin-mcp}/src/gremlin/types.ts | 0 .../gremlin-mcp}/src/handlers/resources.ts | 0 .../gremlin-mcp}/src/handlers/tool-patterns.ts | 0 .../gremlin-mcp}/src/handlers/tools.ts | 0 .../gremlin-mcp}/src/server.ts | 0 .../gremlin-mcp}/src/translator/index.ts | 0 .../gremlin-mcp}/src/translator/llm.ts | 0 .../src/translator/normalizers/shared.ts | 0 .../gremlin-mcp}/src/translator/stepNames.ts | 0 .../gremlin-mcp}/src/utils/result-metadata.ts | 0 .../gremlin-mcp}/src/utils/result-parser.ts | 0 .../gremlin-mcp}/src/utils/type-guards.ts | 0 .../gremlin-mcp}/tests/config.test.ts | 0 .../gremlin-mcp}/tests/edge-patterns.test.ts | 0 .../gremlin-mcp}/tests/gremlint-format.test.ts | 2 +- .../tests/integration/mcp-integration.test.ts | 0 .../gremlin-mcp}/tests/models.test.ts | 0 .../gremlin-mcp}/tests/property-analyzer.test.ts | 0 .../gremlin-mcp}/tests/query-utils.test.ts | 0 .../tests/resource-read.integration.test.ts | 0 .../gremlin-mcp}/tests/resources.test.ts | 0 .../gremlin-mcp}/tests/schema-assembly.test.ts | 0 .../gremlin-mcp}/tests/setup.ts | 0 .../gremlin-mcp}/tsconfig.json | 9 - {gremlint => gremlin-js/gremlint}/.gitignore | 0 {gremlint => gremlin-js/gremlint}/.prettierrc | 0 {gremlint => gremlin-js/gremlint}/LICENSE | 0 {gremlint => gremlin-js/gremlint}/NOTICE | 0 {gremlint => gremlin-js/gremlint}/README.md | 0 {gremlint => gremlin-js/gremlint}/jestconfig.json | 0 {gremlint => gremlin-js/gremlint}/package.json | 0 {gremlint => gremlin-js/gremlint}/pom.xml | 22 +- .../__tests__/closureIndentation.test.ts | 0 .../curlyBracketMultilineWrapping.test.ts | 0 .../__tests__/curlyBracketWrapping.test.ts | 0 .../formatQuery/__tests__/defaultConfig.test.ts | 0 .../determineWhatPartsOfCodeAreGremlin.test.ts | 0 .../__tests__/dotsAfterLineBreaks.test.ts | 0 .../invalidIndentationAndMaxLineLength.test.ts | 0 .../src/formatQuery/__tests__/layoutUtils.test.ts | 0 .../formatQuery/__tests__/maxLineLength.test.ts | 0 .../__tests__/modulatorIndentation.test.ts | 0 .../__tests__/modulatorWrapping.test.ts | 0 .../__tests__/multipleQueriesAtOnce.test.ts | 0 .../__tests__/nonGremlinIndentation.test.ts | 0 .../__tests__/nonMethodIndentation.test.ts | 0 .../gremlint}/src/formatQuery/consts.ts | 0 .../formatQuery/formatSyntaxTrees/formatClosure.ts | 0 .../formatQuery/formatSyntaxTrees/formatMethod.ts | 0 .../formatSyntaxTrees/formatNonGremlin.ts | 0 .../formatQuery/formatSyntaxTrees/formatString.ts | 0 .../formatTraversal/getStepGroups/index.ts | 0 .../getStepGroups/reduceFirstStepInStepGroup.ts | 0 .../getStepGroups/reduceLastStepInStepGroup.ts | 0 .../getStepGroups/reduceMiddleStepInStepGroup.ts | 0 .../getStepGroups/reduceSingleStepInStepGroup.ts | 0 .../formatTraversal/getStepGroups/utils.ts | 0 .../formatSyntaxTrees/formatTraversal/index.ts | 0 .../formatQuery/formatSyntaxTrees/formatWord.ts | 0 .../src/formatQuery/formatSyntaxTrees/index.ts | 0 .../src/formatQuery/formatSyntaxTrees/utils.ts | 0 .../gremlint}/src/formatQuery/index.ts | 0 .../gremlint}/src/formatQuery/layoutUtils.ts | 0 .../__tests__/extractGremlinQueries.test.ts | 0 .../parseToSyntaxTrees/extractGremlinQueries.ts | 0 .../src/formatQuery/parseToSyntaxTrees/index.ts | 0 .../recreateQueryOnelinerFromSyntaxTree.ts | 0 .../recreateQueryStringFromFormattedSyntaxTrees.ts | 0 .../gremlint}/src/formatQuery/types.ts | 0 .../gremlint}/src/formatQuery/utils.ts | 0 {gremlint => gremlin-js/gremlint}/src/index.ts | 0 {gremlint => gremlin-js/gremlint}/tsconfig.json | 0 {gremlint => gremlin-js/gremlint}/tslint.json | 0 gremlin-js/package-lock.json | 15924 +++++++++++++++++++ gremlin-js/package.json | 9 + gremlin-js/pom.xml | 108 + gremlin-mcp/src/main/javascript/package-lock.json | 9010 ----------- .../gremlin/language/translator/translations.json | 70 +- gremlint/package-lock.json | 11089 ------------- pom.xml | 13 +- source-release.xml | 29 +- 241 files changed, 16568 insertions(+), 24761 deletions(-)
