You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tinkerpop.apache.org by xi...@apache.org on 2023/01/21 03:22:47 UTC

svn commit: r1906850 [20/22] - in /tinkerpop/site/jsdocs/3.6.2: ./ fonts/ scripts/ scripts/prettify/ styles/

Added: tinkerpop/site/jsdocs/3.6.2/fonts/OpenSans-Regular-webfont.woff
URL: http://svn.apache.org/viewvc/tinkerpop/site/jsdocs/3.6.2/fonts/OpenSans-Regular-webfont.woff?rev=1906850&view=auto
==============================================================================
Binary file - no diff available.

Propchange: tinkerpop/site/jsdocs/3.6.2/fonts/OpenSans-Regular-webfont.woff
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: tinkerpop/site/jsdocs/3.6.2/global.html
URL: http://svn.apache.org/viewvc/tinkerpop/site/jsdocs/3.6.2/global.html?rev=1906850&view=auto
==============================================================================
--- tinkerpop/site/jsdocs/3.6.2/global.html (added)
+++ tinkerpop/site/jsdocs/3.6.2/global.html Sat Jan 21 03:22:46 2023
@@ -0,0 +1,462 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8">
+    <title>JSDoc: Global</title>
+
+    <script src="scripts/prettify/prettify.js"> </script>
+    <script src="scripts/prettify/lang-css.js"> </script>
+    <!--[if lt IE 9]>
+      <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
+    <![endif]-->
+    <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
+    <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
+</head>
+
+<body>
+
+<div id="main">
+
+    <h1 class="page-title">Global</h1>
+
+    
+
+
+
+
+<section>
+
+<header>
+    
+        <h2></h2>
+        
+    
+</header>
+
+<article>
+    <div class="container-overview">
+    
+        
+
+        
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+        
+    
+    </div>
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+        <h3 class="subsection-title">Members</h3>
+
+        
+            
+<h4 class="name" id="DataType"><span class="type-signature">(constant) </span>DataType<span class="type-signature"></span></h4>
+
+
+
+
+<div class="description">
+    Represents a GraphBinary data type.
+
+See org.apache.tinkerpop.gremlin.structure.io.binary.DataType Java class.
+</div>
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="structure_io_binary_internals_DataType.js.html">structure/io/binary/internals/DataType.js</a>, <a href="structure_io_binary_internals_DataType.js.html#line30">line 30</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+            
+<h4 class="name" id="statics"><span class="type-signature">(constant) </span>statics<span class="type-signature"> :Object</span></h4>
+
+
+
+
+<div class="description">
+    Contains the static method definitions
+</div>
+
+
+
+    <h5>Type:</h5>
+    <ul>
+        <li>
+            
+<span class="param-type">Object</span>
+
+
+        </li>
+    </ul>
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="process_graph-traversal.js.html">process/graph-traversal.js</a>, <a href="process_graph-traversal.js.html#line1445">line 1445</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+    
+
+    
+
+    
+        <h3 class="subsection-title">Type Definitions</h3>
+
+        
+                
+<h4 class="name" id="RequestOptions">RequestOptions</h4>
+
+
+
+
+<div class="description">
+    Configuration specific to the current request.
+</div>
+
+
+
+    <h5>Type:</h5>
+    <ul>
+        <li>
+            
+<span class="param-type">Object</span>
+
+
+        </li>
+    </ul>
+
+
+
+
+
+    <h5 class="subsection-title">Properties:</h5>
+
+    
+
+<table class="props">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>requestId</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">String</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">User specified request identifier which must be a UUID.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>batchSize</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">Indicates whether the Power component is present.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>userAgent</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">String</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The size in which the result of a request is to be 'batched' back to the client</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>evaluationTimeout</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The timeout for the evaluation of the request.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="driver_client.js.html">driver/client.js</a>, <a href="driver_client.js.html#line80">line 80</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+            
+    
+
+    
+</article>
+
+</section>
+
+
+
+
+</div>
+
+<nav>
+    <h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="AnonymousTraversalSource.html">AnonymousTraversalSource</a></li><li><a href="Authenticator.html">Authenticator</a></li><li><a href="Bytecode.html">Bytecode</a></li><li><a href="Client.html">Client</a></li><li><a href="Connection.html">Connection</a></li><li><a href="DriverRemoteConnection.html">DriverRemoteConnection</a></li><li><a href="EdgeLabelVerificationStrategy.html">EdgeLabelVerificationStrategy</a></li><li><a href="Graph.html">Graph</a></li><li><a href="GraphSON2Reader.html">GraphSON2Reader</a></li><li><a href="GraphSON2Writer.html">GraphSON2Writer</a></li><li><a href="GraphSON3Reader.html">GraphSON3Reader</a></li><li><a href="GraphSON3Writer.html">GraphSON3Writer</a></li><li><a href="GraphTraversal.html">GraphTraversal</a></li><li><a href="GraphTraversalSource.html">GraphTraversalSource</a></li><li><a href="HaltedTraverserStrategy.html">HaltedTraverserStrategy</a></li><li><a href="MatchAlgorithmStrat
 egy.html">MatchAlgorithmStrategy</a></li><li><a href="module.exports.html">exports</a></li><li><a href="P.html">P</a></li><li><a href="PartitionStrategy.html">PartitionStrategy</a></li><li><a href="Path.html">Path</a></li><li><a href="PlainTextSaslAuthenticator.html">PlainTextSaslAuthenticator</a></li><li><a href="ProductiveByStrategy.html">ProductiveByStrategy</a></li><li><a href="RemoteConnection.html">RemoteConnection</a></li><li><a href="RemoteStrategy.html">RemoteStrategy</a></li><li><a href="RemoteTraversal.html">RemoteTraversal</a></li><li><a href="ReservedKeysVerificationStrategy.html">ReservedKeysVerificationStrategy</a></li><li><a href="ResponseError.html">ResponseError</a></li><li><a href="ResultSet.html">ResultSet</a></li><li><a href="SaslAuthenticator.html">SaslAuthenticator</a></li><li><a href="SaslMechanismBase.html">SaslMechanismBase</a></li><li><a href="SaslMechanismPlain.html">SaslMechanismPlain</a></li><li><a href="SeedStrategy.html">SeedStrategy</a></li><li><a hr
 ef="SubgraphStrategy.html">SubgraphStrategy</a></li><li><a href="TextP.html">TextP</a></li><li><a href="Transaction.html">Transaction</a></li><li><a href="Translator.html">Translator</a></li><li><a href="TraversalStrategies.html">TraversalStrategies</a></li><li><a href="TraversalStrategy.html">TraversalStrategy</a></li><li><a href="TypeSerializer.html">TypeSerializer</a></li></ul><h3>Global</h3><ul><li><a href="global.html#DataType">DataType</a></li><li><a href="global.html#statics">statics</a></li></ul>
+</nav>
+
+<br class="clear">
+
+<footer>
+    Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.10</a> on Fri Jan 20 2023 17:38:51 GMT-0800 (Pacific Standard Time)
+</footer>
+
+<script> prettyPrint(); </script>
+<script src="scripts/linenumber.js"> </script>
+</body>
+</html>
\ No newline at end of file

Added: tinkerpop/site/jsdocs/3.6.2/index.html
URL: http://svn.apache.org/viewvc/tinkerpop/site/jsdocs/3.6.2/index.html?rev=1906850&view=auto
==============================================================================
--- tinkerpop/site/jsdocs/3.6.2/index.html (added)
+++ tinkerpop/site/jsdocs/3.6.2/index.html Sat Jan 21 03:22:46 2023
@@ -0,0 +1,185 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8">
+    <title>JSDoc: Home</title>
+
+    <script src="scripts/prettify/prettify.js"> </script>
+    <script src="scripts/prettify/lang-css.js"> </script>
+    <!--[if lt IE 9]>
+      <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
+    <![endif]-->
+    <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
+    <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
+</head>
+
+<body>
+
+<div id="main">
+
+    <h1 class="page-title">Home</h1>
+
+    
+
+
+
+    
+
+
+    <h3> </h3>
+
+
+
+
+
+
+
+
+
+
+    
+
+
+
+
+    <section>
+        <article><!--
+
+ Licensed to the Apache Software Foundation (ASF) under one
+ or more contributor license agreements.  See the NOTICE file
+ distributed with this work for additional information
+ regarding copyright ownership.  The ASF licenses this file
+ to you under the Apache License, Version 2.0 (the
+ "License"); you may not use this file except in compliance
+ with the License.  You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing,
+ software distributed under the License is distributed on an
+ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ KIND, either express or implied.  See the License for the
+ specific language governing permissions and limitations
+ under the License.
+
+-->
+<h1>JavaScript Gremlin Language Variant</h1>
+<p><a href="https://tinkerpop.apache.org">Apache TinkerPop™</a> is a graph computing framework for both graph databases (OLTP) and graph analytic systems
+(OLAP). <a href="https://tinkerpop.apache.org/gremlin.html">Gremlin</a> is the graph traversal language of TinkerPop. It can be described as a functional,
+data-flow language that enables users to succinctly express complex traversals on (or queries of) their application's
+property graph.</p>
+<p>Gremlin-Javascript implements Gremlin within the JavaScript language and can be used on Node.js.</p>
+<pre class="prettyprint source lang-bash"><code>npm install gremlin
+</code></pre>
+<p>Gremlin-Javascript is designed to connect to a &quot;server&quot; that is hosting a TinkerPop-enabled graph system. That &quot;server&quot;
+could be <a href="https://tinkerpop.apache.org/docs/current/reference/#gremlin-server">Gremlin Server</a> or a <a href="https://tinkerpop.apache.org/docs/current/reference/#connecting-rgp">remote Gremlin provider</a> that exposes protocols by which Gremlin-Javascript
+can connect.</p>
+<p>A typical connection to a server running on &quot;localhost&quot; that supports the Gremlin Server protocol using websockets
+looks like this:</p>
+<pre class="prettyprint source lang-javascript"><code>const gremlin = require('gremlin');
+const traversal = gremlin.process.AnonymousTraversalSource.traversal;
+const DriverRemoteConnection = gremlin.driver.DriverRemoteConnection;
+
+const g = traversal().withRemote(new DriverRemoteConnection('ws://localhost:8182/gremlin'));
+</code></pre>
+<p>Once &quot;g&quot; has been created using a connection, it is then possible to start writing Gremlin traversals to query the
+remote graph:</p>
+<pre class="prettyprint source lang-javascript"><code>g.V().hasLabel('person').values('name').toList()
+  .then(names => console.log(names));
+
+const names = await g.V().hasLabel('person').values('name').toList();
+console.log(names);
+</code></pre>
+<h1>Sample Traversals</h1>
+<p>The Gremlin language allows users to write highly expressive graph traversals and has a broad list of functions that
+cover a wide body of features. The <a href="https://tinkerpop.apache.org/docs/current/reference/#graph-traversal-steps">Reference Documentation</a> describes these functions and other aspects of the
+TinkerPop ecosystem including some specifics on <a href="https://tinkerpop.apache.org/docs/current/reference/#gremlin-javascript">Gremlin in Javascript</a> itself. Most of the examples found in the
+documentation use Groovy language syntax in the <a href="https://tinkerpop.apache.org/docs/current/tutorials/the-gremlin-console/">Gremlin Console</a>. For the most part, these examples
+should generally translate to Javascript with <a href="https://tinkerpop.apache.org/docs/current/reference/#gremlin-javascript-differences">little modification</a>. Given the strong correspondence
+between canonical Gremlin in Java and its variants like Javascript, there is a limited amount of Javascript-specific
+documentation and examples. This strong correspondence among variants ensures that the general Gremlin reference
+documentation is applicable to all variants and that users moving between development languages can easily adopt the
+Gremlin variant for that language.</p>
+<h2>Create Vertex</h2>
+<pre class="prettyprint source lang-javascript"><code>/* if we want to assign our own ID and properties to this vertex */
+const { t: { id } } = gremlin.process;
+const { cardinality: { single } } = gremlin.process;
+
+/**
+ * Create a new vertex with Id, Label and properties
+ * @param {String,Number} vertexId Vertex Id (assuming the graph database allows id assignment)
+ * @param {String} vlabel Vertex Label
+ */
+const createVertex = async (vertexId, vlabel) => {
+  const vertex = await g.addV(vlabel)
+    .property(id, vertexId)
+    .property(single, 'name', 'Apache')
+    .property('lastname', 'Tinkerpop') // default database cardinality
+    .next();
+
+  return vertex.value;
+};
+</code></pre>
+<h2>Find Vertices</h2>
+<pre class="prettyprint source lang-javascript"><code>/**
+ * List all vertexes in db
+ * @param {Number} limit
+ */
+const listAll = async (limit = 500) => {
+  return g.V().limit(limit).elementMap().toList();
+};
+/**
+ * Find unique vertex with id
+ * @param {Object} vertexId Vertex Id
+ */
+const findVertex = async (vertexId) => {
+  const vertex = await g.V(vertexId).elementMap().next();
+  return vertex.value;
+};
+/**
+ * Find vertices by label and 'name' property
+ * @param {String} vlabel Vertex label
+ * @param {String} name value of 'name' property
+ */
+const listByLabelAndName = async (vlabel, name) => {
+  return g.V().has(vlabel, 'name', name).elementMap().toList();
+};
+</code></pre>
+<h2>Update Vertex</h2>
+<pre class="prettyprint source lang-javascript"><code>const { cardinality: { single } } = gremlin.process;
+
+/**
+ * Update Vertex Properties
+ * @param {String,Number} vertexId Vertex Id
+ * @param {String} name Vertex Name Property
+ */
+const updateVertex = async (vertexId, label, name) => {
+  const vertex = await g.V(vertexId).property(single, 'name', name).next();
+  return vertex.value;
+};
+</code></pre>
+<p><strong>NOTE</strong> that versions suffixed with &quot;-rc&quot; are considered release candidates (i.e. pre-alpha, alpha, beta, etc.) and thus
+for early testing purposes only. These releases are not suitable for production.</p></article>
+    </section>
+
+
+
+
+
+
+</div>
+
+<nav>
+    <h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="AnonymousTraversalSource.html">AnonymousTraversalSource</a></li><li><a href="Authenticator.html">Authenticator</a></li><li><a href="Bytecode.html">Bytecode</a></li><li><a href="Client.html">Client</a></li><li><a href="Connection.html">Connection</a></li><li><a href="DriverRemoteConnection.html">DriverRemoteConnection</a></li><li><a href="EdgeLabelVerificationStrategy.html">EdgeLabelVerificationStrategy</a></li><li><a href="Graph.html">Graph</a></li><li><a href="GraphSON2Reader.html">GraphSON2Reader</a></li><li><a href="GraphSON2Writer.html">GraphSON2Writer</a></li><li><a href="GraphSON3Reader.html">GraphSON3Reader</a></li><li><a href="GraphSON3Writer.html">GraphSON3Writer</a></li><li><a href="GraphTraversal.html">GraphTraversal</a></li><li><a href="GraphTraversalSource.html">GraphTraversalSource</a></li><li><a href="HaltedTraverserStrategy.html">HaltedTraverserStrategy</a></li><li><a href="MatchAlgorithmStrat
 egy.html">MatchAlgorithmStrategy</a></li><li><a href="module.exports.html">exports</a></li><li><a href="P.html">P</a></li><li><a href="PartitionStrategy.html">PartitionStrategy</a></li><li><a href="Path.html">Path</a></li><li><a href="PlainTextSaslAuthenticator.html">PlainTextSaslAuthenticator</a></li><li><a href="ProductiveByStrategy.html">ProductiveByStrategy</a></li><li><a href="RemoteConnection.html">RemoteConnection</a></li><li><a href="RemoteStrategy.html">RemoteStrategy</a></li><li><a href="RemoteTraversal.html">RemoteTraversal</a></li><li><a href="ReservedKeysVerificationStrategy.html">ReservedKeysVerificationStrategy</a></li><li><a href="ResponseError.html">ResponseError</a></li><li><a href="ResultSet.html">ResultSet</a></li><li><a href="SaslAuthenticator.html">SaslAuthenticator</a></li><li><a href="SaslMechanismBase.html">SaslMechanismBase</a></li><li><a href="SaslMechanismPlain.html">SaslMechanismPlain</a></li><li><a href="SeedStrategy.html">SeedStrategy</a></li><li><a hr
 ef="SubgraphStrategy.html">SubgraphStrategy</a></li><li><a href="TextP.html">TextP</a></li><li><a href="Transaction.html">Transaction</a></li><li><a href="Translator.html">Translator</a></li><li><a href="TraversalStrategies.html">TraversalStrategies</a></li><li><a href="TraversalStrategy.html">TraversalStrategy</a></li><li><a href="TypeSerializer.html">TypeSerializer</a></li></ul><h3>Global</h3><ul><li><a href="global.html#DataType">DataType</a></li><li><a href="global.html#statics">statics</a></li></ul>
+</nav>
+
+<br class="clear">
+
+<footer>
+    Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.10</a> on Fri Jan 20 2023 17:38:52 GMT-0800 (Pacific Standard Time)
+</footer>
+
+<script> prettyPrint(); </script>
+<script src="scripts/linenumber.js"> </script>
+</body>
+</html>
\ No newline at end of file

Added: tinkerpop/site/jsdocs/3.6.2/module.exports.html
URL: http://svn.apache.org/viewvc/tinkerpop/site/jsdocs/3.6.2/module.exports.html?rev=1906850&view=auto
==============================================================================
--- tinkerpop/site/jsdocs/3.6.2/module.exports.html (added)
+++ tinkerpop/site/jsdocs/3.6.2/module.exports.html Sat Jan 21 03:22:46 2023
@@ -0,0 +1,301 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8">
+    <title>JSDoc: Class: exports</title>
+
+    <script src="scripts/prettify/prettify.js"> </script>
+    <script src="scripts/prettify/lang-css.js"> </script>
+    <!--[if lt IE 9]>
+      <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
+    <![endif]-->
+    <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
+    <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
+</head>
+
+<body>
+
+<div id="main">
+
+    <h1 class="page-title">Class: exports</h1>
+
+    
+
+
+
+
+<section>
+
+<header>
+    
+        <h2><span class="attribs"><span class="type-signature"></span></span>exports<span class="signature">()</span><span class="type-signature"></span></h2>
+        
+            <div class="class-description">GraphBinary reader.</div>
+        
+    
+</header>
+
+<article>
+    <div class="container-overview">
+    
+        
+
+    
+    <h2>Constructor</h2>
+    
+
+    
+    <h4 class="name" id="exports"><span class="type-signature"></span>new exports<span class="signature">()</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="structure_io_binary_internals_GraphBinaryReader.js.html">structure/io/binary/internals/GraphBinaryReader.js</a>, <a href="structure_io_binary_internals_GraphBinaryReader.js.html#line28">line 28</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+    
+    </div>
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+</article>
+
+</section>
+
+
+
+
+
+
+
+<section>
+
+<header>
+    
+        <h2><span class="attribs"><span class="type-signature"></span></span>exports<span class="signature">()</span><span class="type-signature"></span></h2>
+        
+            <div class="class-description">GraphBinary writer.</div>
+        
+    
+</header>
+
+<article>
+    <div class="container-overview">
+    
+        
+
+    
+    <h2>Constructor</h2>
+    
+
+    
+    <h4 class="name" id="exports"><span class="type-signature"></span>new exports<span class="signature">()</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="structure_io_binary_internals_GraphBinaryWriter.js.html">structure/io/binary/internals/GraphBinaryWriter.js</a>, <a href="structure_io_binary_internals_GraphBinaryWriter.js.html#line28">line 28</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+    
+    </div>
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+</article>
+
+</section>
+
+
+
+
+</div>
+
+<nav>
+    <h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="AnonymousTraversalSource.html">AnonymousTraversalSource</a></li><li><a href="Authenticator.html">Authenticator</a></li><li><a href="Bytecode.html">Bytecode</a></li><li><a href="Client.html">Client</a></li><li><a href="Connection.html">Connection</a></li><li><a href="DriverRemoteConnection.html">DriverRemoteConnection</a></li><li><a href="EdgeLabelVerificationStrategy.html">EdgeLabelVerificationStrategy</a></li><li><a href="Graph.html">Graph</a></li><li><a href="GraphSON2Reader.html">GraphSON2Reader</a></li><li><a href="GraphSON2Writer.html">GraphSON2Writer</a></li><li><a href="GraphSON3Reader.html">GraphSON3Reader</a></li><li><a href="GraphSON3Writer.html">GraphSON3Writer</a></li><li><a href="GraphTraversal.html">GraphTraversal</a></li><li><a href="GraphTraversalSource.html">GraphTraversalSource</a></li><li><a href="HaltedTraverserStrategy.html">HaltedTraverserStrategy</a></li><li><a href="MatchAlgorithmStrat
 egy.html">MatchAlgorithmStrategy</a></li><li><a href="module.exports.html">exports</a></li><li><a href="P.html">P</a></li><li><a href="PartitionStrategy.html">PartitionStrategy</a></li><li><a href="Path.html">Path</a></li><li><a href="PlainTextSaslAuthenticator.html">PlainTextSaslAuthenticator</a></li><li><a href="ProductiveByStrategy.html">ProductiveByStrategy</a></li><li><a href="RemoteConnection.html">RemoteConnection</a></li><li><a href="RemoteStrategy.html">RemoteStrategy</a></li><li><a href="RemoteTraversal.html">RemoteTraversal</a></li><li><a href="ReservedKeysVerificationStrategy.html">ReservedKeysVerificationStrategy</a></li><li><a href="ResponseError.html">ResponseError</a></li><li><a href="ResultSet.html">ResultSet</a></li><li><a href="SaslAuthenticator.html">SaslAuthenticator</a></li><li><a href="SaslMechanismBase.html">SaslMechanismBase</a></li><li><a href="SaslMechanismPlain.html">SaslMechanismPlain</a></li><li><a href="SeedStrategy.html">SeedStrategy</a></li><li><a hr
 ef="SubgraphStrategy.html">SubgraphStrategy</a></li><li><a href="TextP.html">TextP</a></li><li><a href="Transaction.html">Transaction</a></li><li><a href="Translator.html">Translator</a></li><li><a href="TraversalStrategies.html">TraversalStrategies</a></li><li><a href="TraversalStrategy.html">TraversalStrategy</a></li><li><a href="TypeSerializer.html">TypeSerializer</a></li></ul><h3>Global</h3><ul><li><a href="global.html#DataType">DataType</a></li><li><a href="global.html#statics">statics</a></li></ul>
+</nav>
+
+<br class="clear">
+
+<footer>
+    Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.10</a> on Fri Jan 20 2023 17:38:52 GMT-0800 (Pacific Standard Time)
+</footer>
+
+<script> prettyPrint(); </script>
+<script src="scripts/linenumber.js"> </script>
+</body>
+</html>
\ No newline at end of file

Added: tinkerpop/site/jsdocs/3.6.2/process_anonymous-traversal.js.html
URL: http://svn.apache.org/viewvc/tinkerpop/site/jsdocs/3.6.2/process_anonymous-traversal.js.html?rev=1906850&view=auto
==============================================================================
--- tinkerpop/site/jsdocs/3.6.2/process_anonymous-traversal.js.html (added)
+++ tinkerpop/site/jsdocs/3.6.2/process_anonymous-traversal.js.html Sat Jan 21 03:22:46 2023
@@ -0,0 +1,128 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8">
+    <title>JSDoc: Source: process/anonymous-traversal.js</title>
+
+    <script src="scripts/prettify/prettify.js"> </script>
+    <script src="scripts/prettify/lang-css.js"> </script>
+    <!--[if lt IE 9]>
+      <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
+    <![endif]-->
+    <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
+    <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
+</head>
+
+<body>
+
+<div id="main">
+
+    <h1 class="page-title">Source: process/anonymous-traversal.js</h1>
+
+    
+
+
+
+    
+    <section>
+        <article>
+            <pre class="prettyprint source linenums"><code>/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *  http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
+
+'use strict';
+
+const graphTraversalModule = require('./graph-traversal');
+const TraversalStrategies = require('./traversal-strategy').TraversalStrategies;
+const GraphTraversalSource = graphTraversalModule.GraphTraversalSource;
+const Graph = require('../structure/graph').Graph;
+
+/**
+ * Provides a unified way to construct a &lt;code>TraversalSource&lt;/code> from the perspective of the traversal. In this
+ * syntax the user is creating the source and binding it to a reference which is either an existing &lt;code>Graph&lt;/code>
+ * instance or a &lt;code>RemoteConnection&lt;/code>.
+ */
+class AnonymousTraversalSource {
+  /**
+   * Creates a new instance of {@code AnonymousTraversalSource}.
+   * @param {Function} [traversalSourceClass] Optional {@code GraphTraversalSource} constructor.
+   */
+  constructor(traversalSourceClass) {
+    this.traversalSourceClass = traversalSourceClass;
+  }
+
+  /**
+   * Constructs an {@code AnonymousTraversalSource} which will then be configured to spawn a
+   * {@link GraphTraversalSource}.
+   * @param {Function} [traversalSourceClass] Optional {@code GraphTraversalSource} constructor.
+   * @returns {AnonymousTraversalSource}.
+   */
+  static traversal(traversalSourceClass) {
+    return new AnonymousTraversalSource(traversalSourceClass || GraphTraversalSource);
+  }
+
+  /**
+   * Creates a {@link GraphTraversalSource} binding a {@link RemoteConnection} to a remote {@link Graph} instances as its
+   * reference so that traversals spawned from it will execute over that reference.
+   * @param {RemoteConnection} remoteConnection
+   * @return {GraphTraversalSource}
+   */
+  withRemote(remoteConnection) {
+    return this.withGraph(new Graph()).withRemote(remoteConnection);
+  }
+
+  /**
+   * Creates the specified {@link GraphTraversalSource} binding an embedded {@link Graph} as its reference such that
+   * traversals spawned from it will execute over that reference. As there are no "embedded Graph" instances in
+   * gremlin-javascript as there on the JVM, the {@link GraphTraversalSource} can only ever be constructed as "empty"
+   * with a {@link Graph} instance (which is only a reference to a graph and is not capable of holding data). As a
+   * result, the {@link GraphTraversalSource} will do nothing unless a "remote" is then assigned to it later.
+   * @param {Graph} graph
+   * @return {GraphTraversalSource}
+   * @deprecated As of release 3.4.9, prefer {@link withRemote} until some form of "embedded graph" becomes available
+   * at which point there will be support for {@code withEmbedded} which is part of the canonical Java API.
+   */
+  withGraph(graph) {
+    return new this.traversalSourceClass(graph, new TraversalStrategies());
+  }
+}
+
+module.exports = AnonymousTraversalSource;
+</code></pre>
+        </article>
+    </section>
+
+
+
+
+</div>
+
+<nav>
+    <h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="AnonymousTraversalSource.html">AnonymousTraversalSource</a></li><li><a href="Authenticator.html">Authenticator</a></li><li><a href="Bytecode.html">Bytecode</a></li><li><a href="Client.html">Client</a></li><li><a href="Connection.html">Connection</a></li><li><a href="DriverRemoteConnection.html">DriverRemoteConnection</a></li><li><a href="EdgeLabelVerificationStrategy.html">EdgeLabelVerificationStrategy</a></li><li><a href="Graph.html">Graph</a></li><li><a href="GraphSON2Reader.html">GraphSON2Reader</a></li><li><a href="GraphSON2Writer.html">GraphSON2Writer</a></li><li><a href="GraphSON3Reader.html">GraphSON3Reader</a></li><li><a href="GraphSON3Writer.html">GraphSON3Writer</a></li><li><a href="GraphTraversal.html">GraphTraversal</a></li><li><a href="GraphTraversalSource.html">GraphTraversalSource</a></li><li><a href="HaltedTraverserStrategy.html">HaltedTraverserStrategy</a></li><li><a href="MatchAlgorithmStrat
 egy.html">MatchAlgorithmStrategy</a></li><li><a href="module.exports.html">exports</a></li><li><a href="P.html">P</a></li><li><a href="PartitionStrategy.html">PartitionStrategy</a></li><li><a href="Path.html">Path</a></li><li><a href="PlainTextSaslAuthenticator.html">PlainTextSaslAuthenticator</a></li><li><a href="ProductiveByStrategy.html">ProductiveByStrategy</a></li><li><a href="RemoteConnection.html">RemoteConnection</a></li><li><a href="RemoteStrategy.html">RemoteStrategy</a></li><li><a href="RemoteTraversal.html">RemoteTraversal</a></li><li><a href="ReservedKeysVerificationStrategy.html">ReservedKeysVerificationStrategy</a></li><li><a href="ResponseError.html">ResponseError</a></li><li><a href="ResultSet.html">ResultSet</a></li><li><a href="SaslAuthenticator.html">SaslAuthenticator</a></li><li><a href="SaslMechanismBase.html">SaslMechanismBase</a></li><li><a href="SaslMechanismPlain.html">SaslMechanismPlain</a></li><li><a href="SeedStrategy.html">SeedStrategy</a></li><li><a hr
 ef="SubgraphStrategy.html">SubgraphStrategy</a></li><li><a href="TextP.html">TextP</a></li><li><a href="Transaction.html">Transaction</a></li><li><a href="Translator.html">Translator</a></li><li><a href="TraversalStrategies.html">TraversalStrategies</a></li><li><a href="TraversalStrategy.html">TraversalStrategy</a></li><li><a href="TypeSerializer.html">TypeSerializer</a></li></ul><h3>Global</h3><ul><li><a href="global.html#DataType">DataType</a></li><li><a href="global.html#statics">statics</a></li></ul>
+</nav>
+
+<br class="clear">
+
+<footer>
+    Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.10</a> on Fri Jan 20 2023 17:38:51 GMT-0800 (Pacific Standard Time)
+</footer>
+
+<script> prettyPrint(); </script>
+<script src="scripts/linenumber.js"> </script>
+</body>
+</html>

Added: tinkerpop/site/jsdocs/3.6.2/process_bytecode.js.html
URL: http://svn.apache.org/viewvc/tinkerpop/site/jsdocs/3.6.2/process_bytecode.js.html?rev=1906850&view=auto
==============================================================================
--- tinkerpop/site/jsdocs/3.6.2/process_bytecode.js.html (added)
+++ tinkerpop/site/jsdocs/3.6.2/process_bytecode.js.html Sat Jan 21 03:22:46 2023
@@ -0,0 +1,175 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8">
+    <title>JSDoc: Source: process/bytecode.js</title>
+
+    <script src="scripts/prettify/prettify.js"> </script>
+    <script src="scripts/prettify/lang-css.js"> </script>
+    <!--[if lt IE 9]>
+      <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
+    <![endif]-->
+    <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
+    <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
+</head>
+
+<body>
+
+<div id="main">
+
+    <h1 class="page-title">Source: process/bytecode.js</h1>
+
+    
+
+
+
+    
+    <section>
+        <article>
+            <pre class="prettyprint source linenums"><code>/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *  http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
+
+/**
+ * @author Jorge Bay Gondra
+ */
+'use strict';
+
+const { Traversal } = require('./traversal');
+
+class Bytecode {
+  /**
+   * Creates a new instance of Bytecode
+   * @param {Bytecode} [toClone]
+   */
+  constructor(toClone) {
+    if (!toClone) {
+      this.sourceInstructions = [];
+      this.stepInstructions = [];
+    } else {
+      this.sourceInstructions = [...toClone.sourceInstructions];
+      this.stepInstructions = [...toClone.stepInstructions];
+    }
+  }
+
+  /**
+   * Adds a new source instructions
+   * @param {String} name
+   * @param {Array} values
+   * @returns {Bytecode}
+   */
+  addSource(name, values) {
+    if (name === undefined) {
+      throw new Error('Name is not defined');
+    }
+    const instruction = new Array(values.length + 1);
+    instruction[0] = name;
+    for (let i = 0; i &lt; values.length; ++i) {
+      instruction[i + 1] = values[i];
+    }
+    this.sourceInstructions.push(Bytecode._generateInstruction(name, values));
+    return this;
+  }
+
+  /**
+   * Adds a new step instructions
+   * @param {String} name
+   * @param {Array} values
+   * @returns {Bytecode}
+   */
+  addStep(name, values) {
+    if (name === undefined) {
+      throw new Error('Name is not defined');
+    }
+    this.stepInstructions.push(Bytecode._generateInstruction(name, values));
+    return this;
+  }
+
+  static _generateInstruction(name, values) {
+    const length = (values ? values.length : 0) + 1;
+    const instruction = new Array(length);
+    instruction[0] = name;
+    for (let i = 1; i &lt; length; i++) {
+      const val = values[i - 1];
+      if (val instanceof Traversal &amp;&amp; val.graph != null) {
+        throw new Error(
+          `The child traversal of ${val} was not spawned anonymously - use ` +
+            'the __ class rather than a TraversalSource to construct the child traversal',
+        );
+      }
+      instruction[i] = val;
+    }
+    return instruction;
+  }
+
+  /**
+   * Returns the JSON representation of the source and step instructions
+   * @returns {String}
+   */
+  toString() {
+    return JSON.stringify([this.sourceInstructions, this.stepInstructions]);
+  }
+
+  /**
+   * Adds a new source instructions
+   * @param {String} name
+   * @param {Array} values
+   * @returns {Bytecode}
+   */
+  static _createGraphOp(name, values) {
+    const bc = new Bytecode();
+    bc.addSource(name, values);
+    return bc;
+  }
+
+  /**
+   * Gets the &lt;code>Bytecode&lt;/code> that is meant to be sent as "graph operations" to the server.
+   * @returns {{rollback: Bytecode, commit: Bytecode}}
+   */
+  static get GraphOp() {
+    return {
+      commit: Bytecode._createGraphOp('tx', ['commit']),
+      rollback: Bytecode._createGraphOp('tx', ['rollback']),
+    };
+  }
+}
+
+module.exports = Bytecode;
+</code></pre>
+        </article>
+    </section>
+
+
+
+
+</div>
+
+<nav>
+    <h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="AnonymousTraversalSource.html">AnonymousTraversalSource</a></li><li><a href="Authenticator.html">Authenticator</a></li><li><a href="Bytecode.html">Bytecode</a></li><li><a href="Client.html">Client</a></li><li><a href="Connection.html">Connection</a></li><li><a href="DriverRemoteConnection.html">DriverRemoteConnection</a></li><li><a href="EdgeLabelVerificationStrategy.html">EdgeLabelVerificationStrategy</a></li><li><a href="Graph.html">Graph</a></li><li><a href="GraphSON2Reader.html">GraphSON2Reader</a></li><li><a href="GraphSON2Writer.html">GraphSON2Writer</a></li><li><a href="GraphSON3Reader.html">GraphSON3Reader</a></li><li><a href="GraphSON3Writer.html">GraphSON3Writer</a></li><li><a href="GraphTraversal.html">GraphTraversal</a></li><li><a href="GraphTraversalSource.html">GraphTraversalSource</a></li><li><a href="HaltedTraverserStrategy.html">HaltedTraverserStrategy</a></li><li><a href="MatchAlgorithmStrat
 egy.html">MatchAlgorithmStrategy</a></li><li><a href="module.exports.html">exports</a></li><li><a href="P.html">P</a></li><li><a href="PartitionStrategy.html">PartitionStrategy</a></li><li><a href="Path.html">Path</a></li><li><a href="PlainTextSaslAuthenticator.html">PlainTextSaslAuthenticator</a></li><li><a href="ProductiveByStrategy.html">ProductiveByStrategy</a></li><li><a href="RemoteConnection.html">RemoteConnection</a></li><li><a href="RemoteStrategy.html">RemoteStrategy</a></li><li><a href="RemoteTraversal.html">RemoteTraversal</a></li><li><a href="ReservedKeysVerificationStrategy.html">ReservedKeysVerificationStrategy</a></li><li><a href="ResponseError.html">ResponseError</a></li><li><a href="ResultSet.html">ResultSet</a></li><li><a href="SaslAuthenticator.html">SaslAuthenticator</a></li><li><a href="SaslMechanismBase.html">SaslMechanismBase</a></li><li><a href="SaslMechanismPlain.html">SaslMechanismPlain</a></li><li><a href="SeedStrategy.html">SeedStrategy</a></li><li><a hr
 ef="SubgraphStrategy.html">SubgraphStrategy</a></li><li><a href="TextP.html">TextP</a></li><li><a href="Transaction.html">Transaction</a></li><li><a href="Translator.html">Translator</a></li><li><a href="TraversalStrategies.html">TraversalStrategies</a></li><li><a href="TraversalStrategy.html">TraversalStrategy</a></li><li><a href="TypeSerializer.html">TypeSerializer</a></li></ul><h3>Global</h3><ul><li><a href="global.html#DataType">DataType</a></li><li><a href="global.html#statics">statics</a></li></ul>
+</nav>
+
+<br class="clear">
+
+<footer>
+    Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.10</a> on Fri Jan 20 2023 17:38:51 GMT-0800 (Pacific Standard Time)
+</footer>
+
+<script> prettyPrint(); </script>
+<script src="scripts/linenumber.js"> </script>
+</body>
+</html>

Added: tinkerpop/site/jsdocs/3.6.2/process_graph-traversal.js.html
URL: http://svn.apache.org/viewvc/tinkerpop/site/jsdocs/3.6.2/process_graph-traversal.js.html?rev=1906850&view=auto
==============================================================================
--- tinkerpop/site/jsdocs/3.6.2/process_graph-traversal.js.html (added)
+++ tinkerpop/site/jsdocs/3.6.2/process_graph-traversal.js.html Sat Jan 21 03:22:46 2023
@@ -0,0 +1,1598 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8">
+    <title>JSDoc: Source: process/graph-traversal.js</title>
+
+    <script src="scripts/prettify/prettify.js"> </script>
+    <script src="scripts/prettify/lang-css.js"> </script>
+    <!--[if lt IE 9]>
+      <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
+    <![endif]-->
+    <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
+    <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
+</head>
+
+<body>
+
+<div id="main">
+
+    <h1 class="page-title">Source: process/graph-traversal.js</h1>
+
+    
+
+
+
+    
+    <section>
+        <article>
+            <pre class="prettyprint source linenums"><code>/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *  http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
+
+/**
+ * @author Jorge Bay Gondra
+ */
+'use strict';
+
+const { Traversal } = require('./traversal');
+const { Transaction } = require('./transaction');
+const remote = require('../driver/remote-connection');
+const Bytecode = require('./bytecode');
+const { TraversalStrategies, VertexProgramStrategy, OptionsStrategy } = require('./traversal-strategy');
+
+/**
+ * Represents the primary DSL of the Gremlin traversal machine.
+ */
+class GraphTraversalSource {
+  /**
+   * Creates a new instance of {@link GraphTraversalSource}.
+   * @param {Graph} graph
+   * @param {TraversalStrategies} traversalStrategies
+   * @param {Bytecode} [bytecode]
+   * @param {Function} [graphTraversalSourceClass] Optional {@link GraphTraversalSource} constructor.
+   * @param {Function} [graphTraversalClass] Optional {@link GraphTraversal} constructor.
+   */
+  constructor(graph, traversalStrategies, bytecode, graphTraversalSourceClass, graphTraversalClass) {
+    this.graph = graph;
+    this.traversalStrategies = traversalStrategies;
+    this.bytecode = bytecode || new Bytecode();
+    this.graphTraversalSourceClass = graphTraversalSourceClass || GraphTraversalSource;
+    this.graphTraversalClass = graphTraversalClass || GraphTraversal;
+
+    // in order to keep the constructor unchanged within 3.5.x we can try to pop the RemoteConnection out of the
+    // TraversalStrategies. keeping this unchanged will allow user DSLs to not take a break.
+    // TODO: refactor this to be nicer in 3.6.0 when we can take a breaking change
+    const strat = traversalStrategies.strategies.find((ts) => ts.fqcn === 'js:RemoteStrategy');
+    this.remoteConnection = strat !== undefined ? strat.connection : undefined;
+  }
+
+  /**
+   * @param {RemoteConnection} remoteConnection
+   * @returns {GraphTraversalSource}
+   */
+  withRemote(remoteConnection) {
+    const traversalStrategy = new TraversalStrategies(this.traversalStrategies);
+    traversalStrategy.addStrategy(new remote.RemoteStrategy(remoteConnection));
+    return new this.graphTraversalSourceClass(
+      this.graph,
+      traversalStrategy,
+      new Bytecode(this.bytecode),
+      this.graphTraversalSourceClass,
+      this.graphTraversalClass,
+    );
+  }
+
+  /**
+   * Spawn a new &lt;code>Transaction&lt;/code> object that can then start and stop a transaction.
+   * @returns {Transaction}
+   */
+  tx() {
+    // you can't do g.tx().begin().tx() - no child transactions
+    if (this.remoteConnection &amp;&amp; this.remoteConnection.isSessionBound) {
+      throw new Error('This TraversalSource is already bound to a transaction - child transactions are not supported');
+    }
+
+    return new Transaction(this);
+  }
+
+  /**
+   * @param graphComputer
+   * @param workers
+   * @param result
+   * @param persist
+   * @param vertices
+   * @param edges
+   * @param configuration
+   * @returns {GraphTraversalSource}
+   */
+  withComputer(graphComputer, workers, result, persist, vertices, edges, configuration) {
+    const m = {};
+    if (graphComputer !== undefined) {
+      m.graphComputer = graphComputer;
+    }
+    if (workers !== undefined) {
+      m.workers = workers;
+    }
+    if (result !== undefined) {
+      m.result = result;
+    }
+    if (persist !== undefined) {
+      m.graphComputer = persist;
+    }
+    if (vertices !== undefined) {
+      m.vertices = vertices;
+    }
+    if (edges !== undefined) {
+      m.edges = edges;
+    }
+    if (configuration !== undefined) {
+      m.configuration = configuration;
+    }
+    return this.withStrategies(new VertexProgramStrategy(m));
+  }
+
+  /**
+   * Graph Traversal Source with method.
+   * @param {String} key
+   * @param {Object} value if not specified, the value with default to {@code true}
+   * @returns {GraphTraversalSource}
+   */
+  with_(key, value = undefined) {
+    const val = value === undefined ? true : value;
+    let optionsStrategy = this.bytecode.sourceInstructions.find(
+      (i) => i[0] === 'withStrategies' &amp;&amp; i[1] instanceof OptionsStrategy,
+    );
+    if (optionsStrategy === undefined) {
+      optionsStrategy = new OptionsStrategy({ [key]: val });
+      return this.withStrategies(optionsStrategy);
+    }
+    optionsStrategy[1].configuration[key] = val;
+    return new this.graphTraversalSourceClass(
+      this.graph,
+      new TraversalStrategies(this.traversalStrategies),
+      this.bytecode,
+      this.graphTraversalSourceClass,
+      this.graphTraversalClass,
+    );
+  }
+
+  /**
+   * Returns the string representation of the GraphTraversalSource.
+   * @returns {string}
+   */
+  toString() {
+    return 'graphtraversalsource[' + this.graph.toString() + ']';
+  }
+
+  /**
+   * Graph Traversal Source withBulk method.
+   * @param {...Object} args
+   * @returns {GraphTraversalSource}
+   */
+  withBulk(...args) {
+    const b = new Bytecode(this.bytecode).addSource('withBulk', args);
+    return new this.graphTraversalSourceClass(
+      this.graph,
+      new TraversalStrategies(this.traversalStrategies),
+      b,
+      this.graphTraversalSourceClass,
+      this.graphTraversalClass,
+    );
+  }
+
+  /**
+   * Graph Traversal Source withPath method.
+   * @param {...Object} args
+   * @returns {GraphTraversalSource}
+   */
+  withPath(...args) {
+    const b = new Bytecode(this.bytecode).addSource('withPath', args);
+    return new this.graphTraversalSourceClass(
+      this.graph,
+      new TraversalStrategies(this.traversalStrategies),
+      b,
+      this.graphTraversalSourceClass,
+      this.graphTraversalClass,
+    );
+  }
+
+  /**
+   * Graph Traversal Source withSack method.
+   * @param {...Object} args
+   * @returns {GraphTraversalSource}
+   */
+  withSack(...args) {
+    const b = new Bytecode(this.bytecode).addSource('withSack', args);
+    return new this.graphTraversalSourceClass(
+      this.graph,
+      new TraversalStrategies(this.traversalStrategies),
+      b,
+      this.graphTraversalSourceClass,
+      this.graphTraversalClass,
+    );
+  }
+
+  /**
+   * Graph Traversal Source withSideEffect method.
+   * @param {...Object} args
+   * @returns {GraphTraversalSource}
+   */
+  withSideEffect(...args) {
+    const b = new Bytecode(this.bytecode).addSource('withSideEffect', args);
+    return new this.graphTraversalSourceClass(
+      this.graph,
+      new TraversalStrategies(this.traversalStrategies),
+      b,
+      this.graphTraversalSourceClass,
+      this.graphTraversalClass,
+    );
+  }
+
+  /**
+   * Graph Traversal Source withStrategies method.
+   * @param {...Object} args
+   * @returns {GraphTraversalSource}
+   */
+  withStrategies(...args) {
+    const b = new Bytecode(this.bytecode).addSource('withStrategies', args);
+    return new this.graphTraversalSourceClass(
+      this.graph,
+      new TraversalStrategies(this.traversalStrategies),
+      b,
+      this.graphTraversalSourceClass,
+      this.graphTraversalClass,
+    );
+  }
+
+  /**
+   * Graph Traversal Source withoutStrategies method.
+   * @param {...Object} args
+   * @returns {GraphTraversalSource}
+   */
+  withoutStrategies(...args) {
+    const b = new Bytecode(this.bytecode).addSource('withoutStrategies', args);
+    return new this.graphTraversalSourceClass(
+      this.graph,
+      new TraversalStrategies(this.traversalStrategies),
+      b,
+      this.graphTraversalSourceClass,
+      this.graphTraversalClass,
+    );
+  }
+
+  /**
+   * E GraphTraversalSource step method.
+   * @param {...Object} args
+   * @returns {GraphTraversal}
+   */
+  E(...args) {
+    const b = new Bytecode(this.bytecode).addStep('E', args);
+    return new this.graphTraversalClass(this.graph, new TraversalStrategies(this.traversalStrategies), b);
+  }
+
+  /**
+   * V GraphTraversalSource step method.
+   * @param {...Object} args
+   * @returns {GraphTraversal}
+   */
+  V(...args) {
+    const b = new Bytecode(this.bytecode).addStep('V', args);
+    return new this.graphTraversalClass(this.graph, new TraversalStrategies(this.traversalStrategies), b);
+  }
+
+  /**
+   * addE GraphTraversalSource step method.
+   * @param {...Object} args
+   * @returns {GraphTraversal}
+   */
+  addE(...args) {
+    const b = new Bytecode(this.bytecode).addStep('addE', args);
+    return new this.graphTraversalClass(this.graph, new TraversalStrategies(this.traversalStrategies), b);
+  }
+
+  /**
+   * mergeV GraphTraversalSource step method.
+   * @param {...Object} args
+   * @returns {GraphTraversal}
+   */
+  mergeE(...args) {
+    const b = new Bytecode(this.bytecode).addStep('mergeE', args);
+    return new this.graphTraversalClass(this.graph, new TraversalStrategies(this.traversalStrategies), b);
+  }
+
+  /**
+   * addV GraphTraversalSource step method.
+   * @param {...Object} args
+   * @returns {GraphTraversal}
+   */
+  addV(...args) {
+    const b = new Bytecode(this.bytecode).addStep('addV', args);
+    return new this.graphTraversalClass(this.graph, new TraversalStrategies(this.traversalStrategies), b);
+  }
+
+  /**
+   * mergeV GraphTraversalSource step method.
+   * @param {...Object} args
+   * @returns {GraphTraversal}
+   */
+  mergeV(...args) {
+    const b = new Bytecode(this.bytecode).addStep('mergeV', args);
+    return new this.graphTraversalClass(this.graph, new TraversalStrategies(this.traversalStrategies), b);
+  }
+
+  /**
+   * inject GraphTraversalSource step method.
+   * @param {...Object} args
+   * @returns {GraphTraversal}
+   */
+  inject(...args) {
+    const b = new Bytecode(this.bytecode).addStep('inject', args);
+    return new this.graphTraversalClass(this.graph, new TraversalStrategies(this.traversalStrategies), b);
+  }
+
+  /**
+   * io GraphTraversalSource step method.
+   * @param {...Object} args
+   * @returns {GraphTraversal}
+   */
+  io(...args) {
+    const b = new Bytecode(this.bytecode).addStep('io', args);
+    return new this.graphTraversalClass(this.graph, new TraversalStrategies(this.traversalStrategies), b);
+  }
+
+  /**
+   * call GraphTraversalSource step method.
+   * @param {...Object} args
+   * @returns {GraphTraversal}
+   */
+  call(...args) {
+    const b = new Bytecode(this.bytecode).addStep('call', args);
+    return new this.graphTraversalClass(this.graph, new TraversalStrategies(this.traversalStrategies), b);
+  }
+}
+
+/**
+ * Represents a graph traversal.
+ */
+class GraphTraversal extends Traversal {
+  constructor(graph, traversalStrategies, bytecode) {
+    super(graph, traversalStrategies, bytecode);
+  }
+
+  /**
+   * Copy a traversal so as to reset and re-use it.
+   */
+  clone() {
+    return new GraphTraversal(this.graph, this.traversalStrategies, this.getBytecode());
+  }
+
+  /**
+   * Graph traversal V method.
+   * @param {...Object} args
+   * @returns {GraphTraversal}
+   */
+  V(...args) {
+    this.bytecode.addStep('V', args);
+    return this;
+  }
+
+  /**
+   * Graph traversal addE method.
+   * @param {...Object} args
+   * @returns {GraphTraversal}
+   */
+  addE(...args) {
+    this.bytecode.addStep('addE', args);
+    return this;
+  }
+
+  /**
+   * Graph traversal addV method.
+   * @param {...Object} args
+   * @returns {GraphTraversal}
+   */
+  addV(...args) {
+    this.bytecode.addStep('addV', args);
+    return this;
+  }
+
+  /**
+   * Graph traversal aggregate method.
+   * @param {...Object} args
+   * @returns {GraphTraversal}
+   */
+  aggregate(...args) {
+    this.bytecode.addStep('aggregate', args);
+    return this;
+  }
+
+  /**
+   * Graph traversal and method.
+   * @param {...Object} args
+   * @returns {GraphTraversal}
+   */
+  and(...args) {
+    this.bytecode.addStep('and', args);
+    return this;
+  }
+
+  /**
+   * Graph traversal as method.
+   * @param {...Object} args
+   * @returns {GraphTraversal}
+   */
+  as(...args) {
+    this.bytecode.addStep('as', args);
+    return this;
+  }
+
+  /**
+   * Graph traversal barrier method.
+   * @param {...Object} args
+   * @returns {GraphTraversal}
+   */
+  barrier(...args) {
+    this.bytecode.addStep('barrier', args);
+    return this;
+  }
+
+  /**
+   * Graph traversal both method.
+   * @param {...Object} args
+   * @returns {GraphTraversal}
+   */
+  both(...args) {
+    this.bytecode.addStep('both', args);
+    return this;
+  }
+
+  /**
+   * Graph traversal bothE method.
+   * @param {...Object} args
+   * @returns {GraphTraversal}
+   */
+  bothE(...args) {
+    this.bytecode.addStep('bothE', args);
+    return this;
+  }
+
+  /**
+   * Graph traversal bothV method.
+   * @param {...Object} args
+   * @returns {GraphTraversal}
+   */
+  bothV(...args) {
+    this.bytecode.addStep('bothV', args);
+    return this;
+  }
+
+  /**
+   * Graph traversal branch method.
+   * @param {...Object} args
+   * @returns {GraphTraversal}
+   */
+  branch(...args) {
+    this.bytecode.addStep('branch', args);
+    return this;
+  }
+
+  /**
+   * Graph traversal by method.
+   * @param {...Object} args
+   * @returns {GraphTraversal}
+   */
+  by(...args) {
+    this.bytecode.addStep('by', args);
+    return this;
+  }
+
+  /**
+   * Graph traversal call method.
+   * @param {...Object} args
+   * @returns {GraphTraversal}
+   */
+  call(...args) {
+    this.bytecode.addStep('call', args);
+    return this;
+  }
+  /**
+   * Graph traversal cap method.
+   * @param {...Object} args
+   * @returns {GraphTraversal}
+   */
+  cap(...args) {
+    this.bytecode.addStep('cap', args);
+    return this;
+  }
+
+  /**
+   * Graph traversal choose method.
+   * @param {...Object} args
+   * @returns {GraphTraversal}
+   */
+  choose(...args) {
+    this.bytecode.addStep('choose', args);
+    return this;
+  }
+
+  /**
+   * Graph traversal coalesce method.
+   * @param {...Object} args
+   * @returns {GraphTraversal}
+   */
+  coalesce(...args) {
+    this.bytecode.addStep('coalesce', args);
+    return this;
+  }
+
+  /**
+   * Graph traversal coin method.
+   * @param {...Object} args
+   * @returns {GraphTraversal}
+   */
+  coin(...args) {
+    this.bytecode.addStep('coin', args);
+    return this;
+  }
+
+  /**
+   * Graph traversal connectedComponent method.
+   * @param {...Object} args
+   * @returns {GraphTraversal}
+   */
+  connectedComponent(...args) {
+    this.bytecode.addStep('connectedComponent', args);
+    return this;
+  }
+
+  /**
+   * Graph traversal constant method.
+   * @param {...Object} args
+   * @returns {GraphTraversal}
+   */
+  constant(...args) {
+    this.bytecode.addStep('constant', args);
+    return this;
+  }
+
+  /**
+   * Graph traversal count method.
+   * @param {...Object} args
+   * @returns {GraphTraversal}
+   */
+  count(...args) {
+    this.bytecode.addStep('count', args);
+    return this;
+  }
+
+  /**
+   * Graph traversal cyclicPath method.
+   * @param {...Object} args
+   * @returns {GraphTraversal}
+   */
+  cyclicPath(...args) {
+    this.bytecode.addStep('cyclicPath', args);
+    return this;
+  }
+
+  /**
+   * Graph traversal dedup method.
+   * @param {...Object} args
+   * @returns {GraphTraversal}
+   */
+  dedup(...args) {
+    this.bytecode.addStep('dedup', args);
+    return this;
+  }
+
+  /**
+   * Graph traversal drop method.
+   * @param {...Object} args
+   * @returns {GraphTraversal}
+   */
+  drop(...args) {
+    this.bytecode.addStep('drop', args);
+    return this;
+  }
+
+  /**
+   * Graph traversal element method.
+   * @param {...Object} args
+   * @returns {GraphTraversal}
+   */
+  element(...args) {
+    this.bytecode.addStep('element', args);
+    return this;
+  }
+  /**
+   * Graph traversal elementMap method.
+   * @param {...Object} args
+   * @returns {GraphTraversal}
+   */
+  elementMap(...args) {
+    this.bytecode.addStep('elementMap', args);
+    return this;
+  }
+
+  /**
+   * Graph traversal emit method.
+   * @param {...Object} args
+   * @returns {GraphTraversal}
+   */
+  emit(...args) {
+    this.bytecode.addStep('emit', args);
+    return this;
+  }
+
+  /**
+   * Graph traversal fa method.
+   * @param {...Object} args
+   * @returns {GraphTraversal}
+   */
+  fail(...args) {
+    this.bytecode.addStep('fail', args);
+    return this;
+  }
+
+  /**
+   * Graph traversal filter method.
+   * @param {...Object} args
+   * @returns {GraphTraversal}
+   */
+  filter(...args) {
+    this.bytecode.addStep('filter', args);
+    return this;
+  }
+
+  /**
+   * Graph traversal flatMap method.
+   * @param {...Object} args
+   * @returns {GraphTraversal}
+   */
+  flatMap(...args) {
+    this.bytecode.addStep('flatMap', args);
+    return this;
+  }
+
+  /**
+   * Graph traversal fold method.
+   * @param {...Object} args
+   * @returns {GraphTraversal}
+   */
+  fold(...args) {
+    this.bytecode.addStep('fold', args);
+    return this;
+  }
+
+  /**
+   * Graph traversal from method.
+   * @param {...Object} args
+   * @returns {GraphTraversal}
+   */
+  from_(...args) {
+    this.bytecode.addStep('from', args);
+    return this;
+  }
+
+  /**
+   * Graph traversal group method.
+   * @param {...Object} args
+   * @returns {GraphTraversal}
+   */
+  group(...args) {
+    this.bytecode.addStep('group', args);
+    return this;
+  }
+
+  /**
+   * Graph traversal groupCount method.
+   * @param {...Object} args
+   * @returns {GraphTraversal}
+   */
+  groupCount(...args) {
+    this.bytecode.addStep('groupCount', args);
+    return this;
+  }
+
+  /**
+   * Graph traversal has method.
+   * @param {...Object} args
+   * @returns {GraphTraversal}
+   */
+  has(...args) {
+    this.bytecode.addStep('has', args);
+    return this;
+  }
+
+  /**
+   * Graph traversal hasId method.
+   * @param {...Object} args
+   * @returns {GraphTraversal}
+   */
+  hasId(...args) {
+    this.bytecode.addStep('hasId', args);
+    return this;
+  }
+
+  /**
+   * Graph traversal hasKey method.
+   * @param {...Object} args
+   * @returns {GraphTraversal}
+   */
+  hasKey(...args) {
+    this.bytecode.addStep('hasKey', args);
+    return this;
+  }
+
+  /**
+   * Graph traversal hasLabel method.
+   * @param {...Object} args
+   * @returns {GraphTraversal}
+   */
+  hasLabel(...args) {
+    this.bytecode.addStep('hasLabel', args);
+    return this;
+  }
+
+  /**
+   * Graph traversal hasNot method.
+   * @param {...Object} args
+   * @returns {GraphTraversal}
+   */
+  hasNot(...args) {
+    this.bytecode.addStep('hasNot', args);
+    return this;
+  }
+
+  /**
+   * Graph traversal hasValue method.
+   * @param {...Object} args
+   * @returns {GraphTraversal}
+   */
+  hasValue(...args) {
+    this.bytecode.addStep('hasValue', args);
+    return this;
+  }
+
+  /**
+   * Graph traversal id method.
+   * @param {...Object} args
+   * @returns {GraphTraversal}
+   */
+  id(...args) {
+    this.bytecode.addStep('id', args);
+    return this;
+  }
+
+  /**
+   * Graph traversal identity method.
+   * @param {...Object} args
+   * @returns {GraphTraversal}
+   */
+  identity(...args) {
+    this.bytecode.addStep('identity', args);
+    return this;
+  }
+
+  /**
+   * Graph traversal in method.
+   * @param {...Object} args
+   * @returns {GraphTraversal}
+   */
+  in_(...args) {
+    this.bytecode.addStep('in', args);
+    return this;
+  }
+
+  /**
+   * Graph traversal inE method.
+   * @param {...Object} args
+   * @returns {GraphTraversal}
+   */
+  inE(...args) {
+    this.bytecode.addStep('inE', args);
+    return this;
+  }
+
+  /**
+   * Graph traversal inV method.
+   * @param {...Object} args
+   * @returns {GraphTraversal}
+   */
+  inV(...args) {
+    this.bytecode.addStep('inV', args);
+    return this;
+  }
+
+  /**
+   * Graph traversal index method.
+   * @param {...Object} args
+   * @returns {GraphTraversal}
+   */
+  index(...args) {
+    this.bytecode.addStep('index', args);
+    return this;
+  }
+
+  /**
+   * Graph traversal inject method.
+   * @param {...Object} args
+   * @returns {GraphTraversal}
+   */
+  inject(...args) {
+    this.bytecode.addStep('inject', args);
+    return this;
+  }
+
+  /**
+   * Graph traversal is method.
+   * @param {...Object} args
+   * @returns {GraphTraversal}
+   */
+  is(...args) {
+    this.bytecode.addStep('is', args);
+    return this;
+  }
+
+  /**
+   * Graph traversal key method.
+   * @param {...Object} args
+   * @returns {GraphTraversal}
+   */
+  key(...args) {
+    this.bytecode.addStep('key', args);
+    return this;
+  }
+
+  /**
+   * Graph traversal label method.
+   * @param {...Object} args
+   * @returns {GraphTraversal}
+   */
+  label(...args) {
+    this.bytecode.addStep('label', args);
+    return this;
+  }
+
+  /**
+   * Graph traversal limit method.
+   * @param {...Object} args
+   * @returns {GraphTraversal}
+   */
+  limit(...args) {
+    this.bytecode.addStep('limit', args);
+    return this;
+  }
+
+  /**
+   * Graph traversal local method.
+   * @param {...Object} args
+   * @returns {GraphTraversal}
+   */
+  local(...args) {
+    this.bytecode.addStep('local', args);
+    return this;
+  }
+
+  /**
+   * Graph traversal loops method.
+   * @param {...Object} args
+   * @returns {GraphTraversal}
+   */
+  loops(...args) {
+    this.bytecode.addStep('loops', args);
+    return this;
+  }
+
+  /**
+   * Graph traversal map method.
+   * @param {...Object} args
+   * @returns {GraphTraversal}
+   */
+  map(...args) {
+    this.bytecode.addStep('map', args);
+    return this;
+  }
+
+  /**
+   * Graph traversal match method.
+   * @param {...Object} args
+   * @returns {GraphTraversal}
+   */
+  match(...args) {
+    this.bytecode.addStep('match', args);
+    return this;
+  }
+
+  /**
+   * Graph traversal math method.
+   * @param {...Object} args
+   * @returns {GraphTraversal}
+   */
+  math(...args) {
+    this.bytecode.addStep('math', args);
+    return this;
+  }
+
+  /**
+   * Graph traversal max method.
+   * @param {...Object} args
+   * @returns {GraphTraversal}
+   */
+  max(...args) {
+    this.bytecode.addStep('max', args);
+    return this;
+  }
+
+  /**
+   * Graph traversal mean method.
+   * @param {...Object} args
+   * @returns {GraphTraversal}
+   */
+  mean(...args) {
+    this.bytecode.addStep('mean', args);
+    return this;
+  }
+
+  /**
+   * Graph traversal mergeE method.
+   * @param {...Object} args
+   * @returns {GraphTraversal}
+   */
+  mergeE(...args) {
+    this.bytecode.addStep('mergeE', args);
+    return this;
+  }
+
+  /**
+   * Graph traversal mergeV method.
+   * @param {...Object} args
+   * @returns {GraphTraversal}
+   */
+  mergeV(...args) {
+    this.bytecode.addStep('mergeV', args);
+    return this;
+  }
+
+  /**
+   * Graph traversal min method.
+   * @param {...Object} args
+   * @returns {GraphTraversal}
+   */
+  min(...args) {
+    this.bytecode.addStep('min', args);
+    return this;
+  }
+
+  /**
+   * Graph traversal none method.
+   * @param {...Object} args
+   * @returns {GraphTraversal}
+   */
+  none(...args) {
+    this.bytecode.addStep('none', args);
+    return this;
+  }
+
+  /**
+   * Graph traversal not method.
+   * @param {...Object} args
+   * @returns {GraphTraversal}
+   */
+  not(...args) {
+    this.bytecode.addStep('not', args);
+    return this;
+  }
+
+  /**
+   * Graph traversal option method.
+   * @param {...Object} args
+   * @returns {GraphTraversal}
+   */
+  option(...args) {
+    this.bytecode.addStep('option', args);
+    return this;
+  }
+
+  /**
+   * Graph traversal optional method.
+   * @param {...Object} args
+   * @returns {GraphTraversal}
+   */
+  optional(...args) {
+    this.bytecode.addStep('optional', args);
+    return this;
+  }
+
+  /**
+   * Graph traversal or method.
+   * @param {...Object} args
+   * @returns {GraphTraversal}
+   */
+  or(...args) {
+    this.bytecode.addStep('or', args);
+    return this;
+  }
+
+  /**
+   * Graph traversal order method.
+   * @param {...Object} args
+   * @returns {GraphTraversal}
+   */
+  order(...args) {
+    this.bytecode.addStep('order', args);
+    return this;
+  }
+
+  /**
+   * Graph traversal otherV method.
+   * @param {...Object} args
+   * @returns {GraphTraversal}
+   */
+  otherV(...args) {
+    this.bytecode.addStep('otherV', args);
+    return this;
+  }
+
+  /**
+   * Graph traversal out method.
+   * @param {...Object} args
+   * @returns {GraphTraversal}
+   */
+  out(...args) {
+    this.bytecode.addStep('out', args);
+    return this;
+  }
+
+  /**
+   * Graph traversal outE method.
+   * @param {...Object} args
+   * @returns {GraphTraversal}
+   */
+  outE(...args) {
+    this.bytecode.addStep('outE', args);
+    return this;
+  }
+
+  /**
+   * Graph traversal outV method.
+   * @param {...Object} args
+   * @returns {GraphTraversal}
+   */
+  outV(...args) {
+    this.bytecode.addStep('outV', args);
+    return this;
+  }
+
+  /**
+   * Graph traversal pageRank method.
+   * @param {...Object} args
+   * @returns {GraphTraversal}
+   */
+  pageRank(...args) {
+    this.bytecode.addStep('pageRank', args);
+    return this;
+  }
+
+  /**
+   * Graph traversal path method.
+   * @param {...Object} args
+   * @returns {GraphTraversal}
+   */
+  path(...args) {
+    this.bytecode.addStep('path', args);
+    return this;
+  }
+
+  /**
+   * Graph traversal peerPressure method.
+   * @param {...Object} args
+   * @returns {GraphTraversal}
+   */
+  peerPressure(...args) {
+    this.bytecode.addStep('peerPressure', args);
+    return this;
+  }
+
+  /**
+   * Graph traversal profile method.
+   * @param {...Object} args
+   * @returns {GraphTraversal}
+   */
+  profile(...args) {
+    this.bytecode.addStep('profile', args);
+    return this;
+  }
+
+  /**
+   * Graph traversal program method.
+   * @param {...Object} args
+   * @returns {GraphTraversal}
+   */
+  program(...args) {
+    this.bytecode.addStep('program', args);
+    return this;
+  }
+
+  /**
+   * Graph traversal project method.
+   * @param {...Object} args
+   * @returns {GraphTraversal}
+   */
+  project(...args) {
+    this.bytecode.addStep('project', args);
+    return this;
+  }
+
+  /**
+   * Graph traversal properties method.
+   * @param {...Object} args
+   * @returns {GraphTraversal}
+   */
+  properties(...args) {
+    this.bytecode.addStep('properties', args);
+    return this;
+  }
+
+  /**
+   * Graph traversal property method.
+   * @param {...Object} args
+   * @returns {GraphTraversal}
+   */
+  property(...args) {
+    this.bytecode.addStep('property', args);
+    return this;
+  }
+
+  /**
+   * Graph traversal propertyMap method.
+   * @param {...Object} args
+   * @returns {GraphTraversal}
+   */
+  propertyMap(...args) {
+    this.bytecode.addStep('propertyMap', args);
+    return this;
+  }
+
+  /**
+   * Graph traversal range method.
+   * @param {...Object} args
+   * @returns {GraphTraversal}
+   */
+  range(...args) {
+    this.bytecode.addStep('range', args);
+    return this;
+  }
+
+  /**
+   * Graph traversal read method.
+   * @param {...Object} args
+   * @returns {GraphTraversal}
+   */
+  read(...args) {
+    this.bytecode.addStep('read', args);
+    return this;
+  }
+
+  /**
+   * Graph traversal repeat method.
+   * @param {...Object} args
+   * @returns {GraphTraversal}
+   */
+  repeat(...args) {
+    this.bytecode.addStep('repeat', args);
+    return this;
+  }
+
+  /**
+   * Graph traversal sack method.
+   * @param {...Object} args
+   * @returns {GraphTraversal}
+   */
+  sack(...args) {
+    this.bytecode.addStep('sack', args);
+    return this;
+  }
+
+  /**
+   * Graph traversal sample method.
+   * @param {...Object} args
+   * @returns {GraphTraversal}
+   */
+  sample(...args) {
+    this.bytecode.addStep('sample', args);
+    return this;
+  }
+
+  /**
+   * Graph traversal select method.
+   * @param {...Object} args
+   * @returns {GraphTraversal}
+   */
+  select(...args) {
+    this.bytecode.addStep('select', args);
+    return this;
+  }
+
+  /**
+   * Graph traversal shortestPath method.
+   * @param {...Object} args
+   * @returns {GraphTraversal}
+   */
+  shortestPath(...args) {
+    this.bytecode.addStep('shortestPath', args);
+    return this;
+  }
+
+  /**
+   * Graph traversal sideEffect method.
+   * @param {...Object} args
+   * @returns {GraphTraversal}
+   */
+  sideEffect(...args) {
+    this.bytecode.addStep('sideEffect', args);
+    return this;
+  }
+
+  /**
+   * Graph traversal simplePath method.
+   * @param {...Object} args
+   * @returns {GraphTraversal}
+   */
+  simplePath(...args) {
+    this.bytecode.addStep('simplePath', args);
+    return this;
+  }
+
+  /**
+   * Graph traversal skip method.
+   * @param {...Object} args
+   * @returns {GraphTraversal}
+   */
+  skip(...args) {
+    this.bytecode.addStep('skip', args);
+    return this;
+  }
+
+  /**
+   * Graph traversal store method.
+   * @param {...Object} args
+   * @returns {GraphTraversal}
+   */
+  store(...args) {
+    this.bytecode.addStep('store', args);
+    return this;
+  }
+
+  /**
+   * Graph traversal subgraph method.
+   * @param {...Object} args
+   * @returns {GraphTraversal}
+   */
+  subgraph(...args) {
+    this.bytecode.addStep('subgraph', args);
+    return this;
+  }
+
+  /**
+   * Graph traversal sum method.
+   * @param {...Object} args
+   * @returns {GraphTraversal}
+   */
+  sum(...args) {
+    this.bytecode.addStep('sum', args);
+    return this;
+  }
+
+  /**
+   * Graph traversal tail method.
+   * @param {...Object} args
+   * @returns {GraphTraversal}
+   */
+  tail(...args) {
+    this.bytecode.addStep('tail', args);
+    return this;
+  }
+
+  /**
+   * Graph traversal timeLimit method.
+   * @param {...Object} args
+   * @returns {GraphTraversal}
+   */
+  timeLimit(...args) {
+    this.bytecode.addStep('timeLimit', args);
+    return this;
+  }
+
+  /**
+   * Graph traversal times method.
+   * @param {...Object} args
+   * @returns {GraphTraversal}
+   */
+  times(...args) {
+    this.bytecode.addStep('times', args);
+    return this;
+  }
+
+  /**
+   * Graph traversal to method.
+   * @param {...Object} args
+   * @returns {GraphTraversal}
+   */
+  to(...args) {
+    this.bytecode.addStep('to', args);
+    return this;
+  }
+
+  /**
+   * Graph traversal toE method.
+   * @param {...Object} args
+   * @returns {GraphTraversal}
+   */
+  toE(...args) {
+    this.bytecode.addStep('toE', args);
+    return this;
+  }
+
+  /**
+   * Graph traversal toV method.
+   * @param {...Object} args
+   * @returns {GraphTraversal}
+   */
+  toV(...args) {
+    this.bytecode.addStep('toV', args);
+    return this;
+  }
+
+  /**
+   * Graph traversal tree method.
+   * @param {...Object} args
+   * @returns {GraphTraversal}
+   */
+  tree(...args) {
+    this.bytecode.addStep('tree', args);
+    return this;
+  }
+
+  /**
+   * Graph traversal unfold method.
+   * @param {...Object} args
+   * @returns {GraphTraversal}
+   */
+  unfold(...args) {
+    this.bytecode.addStep('unfold', args);
+    return this;
+  }
+
+  /**
+   * Graph traversal union method.
+   * @param {...Object} args
+   * @returns {GraphTraversal}
+   */
+  union(...args) {
+    this.bytecode.addStep('union', args);
+    return this;
+  }
+
+  /**
+   * Graph traversal until method.
+   * @param {...Object} args
+   * @returns {GraphTraversal}
+   */
+  until(...args) {
+    this.bytecode.addStep('until', args);
+    return this;
+  }
+
+  /**
+   * Graph traversal value method.
+   * @param {...Object} args
+   * @returns {GraphTraversal}
+   */
+  value(...args) {
+    this.bytecode.addStep('value', args);
+    return this;
+  }
+
+  /**
+   * Graph traversal valueMap method.
+   * @param {...Object} args
+   * @returns {GraphTraversal}
+   */
+  valueMap(...args) {
+    this.bytecode.addStep('valueMap', args);
+    return this;
+  }
+
+  /**
+   * Graph traversal values method.
+   * @param {...Object} args
+   * @returns {GraphTraversal}
+   */
+  values(...args) {
+    this.bytecode.addStep('values', args);
+    return this;
+  }
+
+  /**
+   * Graph traversal where method.
+   * @param {...Object} args
+   * @returns {GraphTraversal}
+   */
+  where(...args) {
+    this.bytecode.addStep('where', args);
+    return this;
+  }
+
+  /**
+   * Graph traversal with method.
+   * @param {...Object} args
+   * @returns {GraphTraversal}
+   */
+  with_(...args) {
+    this.bytecode.addStep('with', args);
+    return this;
+  }
+
+  /**
+   * Graph traversal write method.
+   * @param {...Object} args
+   * @returns {GraphTraversal}
+   */
+  write(...args) {
+    this.bytecode.addStep('write', args);
+    return this;
+  }
+}
+
+function callOnEmptyTraversal(fnName, args) {
+  const g = new GraphTraversal(null, null, new Bytecode());
+  return g[fnName].apply(g, args);
+}
+
+/**
+ * Contains the static method definitions
+ * @type {Object}
+ */
+const statics = {
+  V: (...args) => callOnEmptyTraversal('V', args),
+  addE: (...args) => callOnEmptyTraversal('addE', args),
+  addV: (...args) => callOnEmptyTraversal('addV', args),
+  aggregate: (...args) => callOnEmptyTraversal('aggregate', args),
+  and: (...args) => callOnEmptyTraversal('and', args),
+  as: (...args) => callOnEmptyTraversal('as', args),
+  barrier: (...args) => callOnEmptyTraversal('barrier', args),
+  both: (...args) => callOnEmptyTraversal('both', args),
+  bothE: (...args) => callOnEmptyTraversal('bothE', args),
+  bothV: (...args) => callOnEmptyTraversal('bothV', args),
+  branch: (...args) => callOnEmptyTraversal('branch', args),
+  call: (...args) => callOnEmptyTraversal('call', args),
+  cap: (...args) => callOnEmptyTraversal('cap', args),
+  choose: (...args) => callOnEmptyTraversal('choose', args),
+  coalesce: (...args) => callOnEmptyTraversal('coalesce', args),
+  coin: (...args) => callOnEmptyTraversal('coin', args),
+  constant: (...args) => callOnEmptyTraversal('constant', args),
+  count: (...args) => callOnEmptyTraversal('count', args),
+  cyclicPath: (...args) => callOnEmptyTraversal('cyclicPath', args),
+  dedup: (...args) => callOnEmptyTraversal('dedup', args),
+  drop: (...args) => callOnEmptyTraversal('drop', args),
+  element: (...args) => callOnEmptyTraversal('element', args),
+  elementMap: (...args) => callOnEmptyTraversal('elementMap', args),
+  emit: (...args) => callOnEmptyTraversal('emit', args),
+  fail: (...args) => callOnEmptyTraversal('fail', args),
+  filter: (...args) => callOnEmptyTraversal('filter', args),
+  flatMap: (...args) => callOnEmptyTraversal('flatMap', args),
+  fold: (...args) => callOnEmptyTraversal('fold', args),
+  group: (...args) => callOnEmptyTraversal('group', args),
+  groupCount: (...args) => callOnEmptyTraversal('groupCount', args),
+  has: (...args) => callOnEmptyTraversal('has', args),
+  hasId: (...args) => callOnEmptyTraversal('hasId', args),
+  hasKey: (...args) => callOnEmptyTraversal('hasKey', args),
+  hasLabel: (...args) => callOnEmptyTraversal('hasLabel', args),
+  hasNot: (...args) => callOnEmptyTraversal('hasNot', args),
+  hasValue: (...args) => callOnEmptyTraversal('hasValue', args),
+  id: (...args) => callOnEmptyTraversal('id', args),
+  identity: (...args) => callOnEmptyTraversal('identity', args),
+  in_: (...args) => callOnEmptyTraversal('in_', args),
+  inE: (...args) => callOnEmptyTraversal('inE', args),
+  inV: (...args) => callOnEmptyTraversal('inV', args),
+  index: (...args) => callOnEmptyTraversal('index', args),
+  inject: (...args) => callOnEmptyTraversal('inject', args),
+  is: (...args) => callOnEmptyTraversal('is', args),
+  key: (...args) => callOnEmptyTraversal('key', args),
+  label: (...args) => callOnEmptyTraversal('label', args),
+  limit: (...args) => callOnEmptyTraversal('limit', args),
+  local: (...args) => callOnEmptyTraversal('local', args),
+  loops: (...args) => callOnEmptyTraversal('loops', args),
+  map: (...args) => callOnEmptyTraversal('map', args),
+  match: (...args) => callOnEmptyTraversal('match', args),
+  math: (...args) => callOnEmptyTraversal('math', args),
+  max: (...args) => callOnEmptyTraversal('max', args),
+  mean: (...args) => callOnEmptyTraversal('mean', args),
+  mergeE: (...args) => callOnEmptyTraversal('mergeE', args),
+  mergeV: (...args) => callOnEmptyTraversal('mergeV', args),
+  min: (...args) => callOnEmptyTraversal('min', args),
+  not: (...args) => callOnEmptyTraversal('not', args),
+  optional: (...args) => callOnEmptyTraversal('optional', args),
+  or: (...args) => callOnEmptyTraversal('or', args),
+  order: (...args) => callOnEmptyTraversal('order', args),
+  otherV: (...args) => callOnEmptyTraversal('otherV', args),
+  out: (...args) => callOnEmptyTraversal('out', args),
+  outE: (...args) => callOnEmptyTraversal('outE', args),
+  outV: (...args) => callOnEmptyTraversal('outV', args),
+  path: (...args) => callOnEmptyTraversal('path', args),
+  project: (...args) => callOnEmptyTraversal('project', args),
+  properties: (...args) => callOnEmptyTraversal('properties', args),
+  property: (...args) => callOnEmptyTraversal('property', args),
+  propertyMap: (...args) => callOnEmptyTraversal('propertyMap', args),
+  range: (...args) => callOnEmptyTraversal('range', args),
+  repeat: (...args) => callOnEmptyTraversal('repeat', args),
+  sack: (...args) => callOnEmptyTraversal('sack', args),
+  sample: (...args) => callOnEmptyTraversal('sample', args),
+  select: (...args) => callOnEmptyTraversal('select', args),
+  sideEffect: (...args) => callOnEmptyTraversal('sideEffect', args),
+  simplePath: (...args) => callOnEmptyTraversal('simplePath', args),
+  skip: (...args) => callOnEmptyTraversal('skip', args),
+  store: (...args) => callOnEmptyTraversal('store', args),
+  subgraph: (...args) => callOnEmptyTraversal('subgraph', args),
+  sum: (...args) => callOnEmptyTraversal('sum', args),
+  tail: (...args) => callOnEmptyTraversal('tail', args),
+  timeLimit: (...args) => callOnEmptyTraversal('timeLimit', args),
+  times: (...args) => callOnEmptyTraversal('times', args),
+  to: (...args) => callOnEmptyTraversal('to', args),
+  toE: (...args) => callOnEmptyTraversal('toE', args),
+  toV: (...args) => callOnEmptyTraversal('toV', args),
+  tree: (...args) => callOnEmptyTraversal('tree', args),
+  unfold: (...args) => callOnEmptyTraversal('unfold', args),
+  union: (...args) => callOnEmptyTraversal('union', args),
+  until: (...args) => callOnEmptyTraversal('until', args),
+  value: (...args) => callOnEmptyTraversal('value', args),
+  valueMap: (...args) => callOnEmptyTraversal('valueMap', args),
+  values: (...args) => callOnEmptyTraversal('values', args),
+  where: (...args) => callOnEmptyTraversal('where', args),
+};
+
+module.exports = {
+  GraphTraversal,
+  GraphTraversalSource,
+  statics,
+};
+</code></pre>
+        </article>
+    </section>
+
+
+
+
+</div>
+
+<nav>
+    <h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="AnonymousTraversalSource.html">AnonymousTraversalSource</a></li><li><a href="Authenticator.html">Authenticator</a></li><li><a href="Bytecode.html">Bytecode</a></li><li><a href="Client.html">Client</a></li><li><a href="Connection.html">Connection</a></li><li><a href="DriverRemoteConnection.html">DriverRemoteConnection</a></li><li><a href="EdgeLabelVerificationStrategy.html">EdgeLabelVerificationStrategy</a></li><li><a href="Graph.html">Graph</a></li><li><a href="GraphSON2Reader.html">GraphSON2Reader</a></li><li><a href="GraphSON2Writer.html">GraphSON2Writer</a></li><li><a href="GraphSON3Reader.html">GraphSON3Reader</a></li><li><a href="GraphSON3Writer.html">GraphSON3Writer</a></li><li><a href="GraphTraversal.html">GraphTraversal</a></li><li><a href="GraphTraversalSource.html">GraphTraversalSource</a></li><li><a href="HaltedTraverserStrategy.html">HaltedTraverserStrategy</a></li><li><a href="MatchAlgorithmStrat
 egy.html">MatchAlgorithmStrategy</a></li><li><a href="module.exports.html">exports</a></li><li><a href="P.html">P</a></li><li><a href="PartitionStrategy.html">PartitionStrategy</a></li><li><a href="Path.html">Path</a></li><li><a href="PlainTextSaslAuthenticator.html">PlainTextSaslAuthenticator</a></li><li><a href="ProductiveByStrategy.html">ProductiveByStrategy</a></li><li><a href="RemoteConnection.html">RemoteConnection</a></li><li><a href="RemoteStrategy.html">RemoteStrategy</a></li><li><a href="RemoteTraversal.html">RemoteTraversal</a></li><li><a href="ReservedKeysVerificationStrategy.html">ReservedKeysVerificationStrategy</a></li><li><a href="ResponseError.html">ResponseError</a></li><li><a href="ResultSet.html">ResultSet</a></li><li><a href="SaslAuthenticator.html">SaslAuthenticator</a></li><li><a href="SaslMechanismBase.html">SaslMechanismBase</a></li><li><a href="SaslMechanismPlain.html">SaslMechanismPlain</a></li><li><a href="SeedStrategy.html">SeedStrategy</a></li><li><a hr
 ef="SubgraphStrategy.html">SubgraphStrategy</a></li><li><a href="TextP.html">TextP</a></li><li><a href="Transaction.html">Transaction</a></li><li><a href="Translator.html">Translator</a></li><li><a href="TraversalStrategies.html">TraversalStrategies</a></li><li><a href="TraversalStrategy.html">TraversalStrategy</a></li><li><a href="TypeSerializer.html">TypeSerializer</a></li></ul><h3>Global</h3><ul><li><a href="global.html#DataType">DataType</a></li><li><a href="global.html#statics">statics</a></li></ul>
+</nav>
+
+<br class="clear">
+
+<footer>
+    Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.10</a> on Fri Jan 20 2023 17:38:51 GMT-0800 (Pacific Standard Time)
+</footer>
+
+<script> prettyPrint(); </script>
+<script src="scripts/linenumber.js"> </script>
+</body>
+</html>