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/19 02:09:38 UTC
svn commit: r1906787 [7/22] - in /tinkerpop/site/jsdocs/3.5.5: ./ fonts/ scripts/ scripts/prettify/ styles/
Added: tinkerpop/site/jsdocs/3.5.5/TraversalStrategy.html
URL: http://svn.apache.org/viewvc/tinkerpop/site/jsdocs/3.5.5/TraversalStrategy.html?rev=1906787&view=auto
==============================================================================
--- tinkerpop/site/jsdocs/3.5.5/TraversalStrategy.html (added)
+++ tinkerpop/site/jsdocs/3.5.5/TraversalStrategy.html Thu Jan 19 02:09:37 2023
@@ -0,0 +1,393 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+ <meta charset="utf-8">
+ <title>JSDoc: Class: TraversalStrategy</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: TraversalStrategy</h1>
+
+
+
+
+
+
+<section>
+
+<header>
+
+ <h2><span class="attribs"><span class="type-signature">(abstract) </span></span>TraversalStrategy<span class="signature">(fqcn, configuration)</span><span class="type-signature"></span></h2>
+
+
+</header>
+
+<article>
+ <div class="container-overview">
+
+
+
+
+
+
+ <h4 class="name" id="TraversalStrategy"><span class="type-signature">(abstract) </span>new TraversalStrategy<span class="signature">(fqcn, configuration)</span><span class="type-signature"></span></h4>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <h5>Parameters:</h5>
+
+
+<table class="params">
+ <thead>
+ <tr>
+
+ <th>Name</th>
+
+
+ <th>Type</th>
+
+
+
+
+
+ <th class="last">Description</th>
+ </tr>
+ </thead>
+
+ <tbody>
+
+
+ <tr>
+
+ <td class="name"><code>fqcn</code></td>
+
+
+ <td class="type">
+
+
+<span class="param-type">String</span>
+
+
+
+ </td>
+
+
+
+
+
+ <td class="description last">fully qualified class name in Java of the strategy</td>
+ </tr>
+
+
+
+ <tr>
+
+ <td class="name"><code>configuration</code></td>
+
+
+ <td class="type">
+
+
+<span class="param-type">Object</span>
+
+
+
+ </td>
+
+
+
+
+
+ <td class="description last">for the strategy</td>
+ </tr>
+
+
+ </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <dt class="tag-source">Source:</dt>
+ <dd class="tag-source"><ul class="dummy"><li>
+ <a href="process_traversal-strategy.js.html">process/traversal-strategy.js</a>, <a href="process_traversal-strategy.js.html#line71">line 71</a>
+ </li></ul></dd>
+
+
+
+
+
+
+
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ </div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <h3 class="subsection-title">Methods</h3>
+
+
+
+
+
+
+
+ <h4 class="name" id="apply"><span class="type-signature">(abstract) </span>apply<span class="signature">(traversal)</span><span class="type-signature"> → {Promise}</span></h4>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <h5>Parameters:</h5>
+
+
+<table class="params">
+ <thead>
+ <tr>
+
+ <th>Name</th>
+
+
+ <th>Type</th>
+
+
+
+
+
+ <th class="last">Description</th>
+ </tr>
+ </thead>
+
+ <tbody>
+
+
+ <tr>
+
+ <td class="name"><code>traversal</code></td>
+
+
+ <td class="type">
+
+
+<span class="param-type"><a href="Traversal.html">Traversal</a></span>
+
+
+
+ </td>
+
+
+
+
+
+ <td class="description last"></td>
+ </tr>
+
+
+ </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <dt class="tag-source">Source:</dt>
+ <dd class="tag-source"><ul class="dummy"><li>
+ <a href="process_traversal-strategy.js.html">process/traversal-strategy.js</a>, <a href="process_traversal-strategy.js.html#line86">line 86</a>
+ </li></ul></dd>
+
+
+
+
+
+
+
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<h5>Returns:</h5>
+
+
+
+
+<dl>
+ <dt>
+ Type
+ </dt>
+ <dd>
+
+<span class="param-type">Promise</span>
+
+
+ </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="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 Wed Jan 18 2023 17:10:25 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.5.5/TypeSerializer.html
URL: http://svn.apache.org/viewvc/tinkerpop/site/jsdocs/3.5.5/TypeSerializer.html?rev=1906787&view=auto
==============================================================================
--- tinkerpop/site/jsdocs/3.5.5/TypeSerializer.html (added)
+++ tinkerpop/site/jsdocs/3.5.5/TypeSerializer.html Thu Jan 19 02:09:37 2023
@@ -0,0 +1,166 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+ <meta charset="utf-8">
+ <title>JSDoc: Class: TypeSerializer</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: TypeSerializer</h1>
+
+
+
+
+
+
+<section>
+
+<header>
+
+ <h2><span class="attribs"><span class="type-signature">(abstract) </span></span>TypeSerializer<span class="signature">()</span><span class="type-signature"></span></h2>
+
+
+</header>
+
+<article>
+ <div class="container-overview">
+
+
+
+
+
+
+ <h4 class="name" id="TypeSerializer"><span class="type-signature">(abstract) </span>new TypeSerializer<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_type-serializers.js.html">structure/io/type-serializers.js</a>, <a href="structure_io_type-serializers.js.html#line37">line 37</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="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 Wed Jan 18 2023 17:10:25 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.5.5/driver_auth_authenticator.js.html
URL: http://svn.apache.org/viewvc/tinkerpop/site/jsdocs/3.5.5/driver_auth_authenticator.js.html?rev=1906787&view=auto
==============================================================================
--- tinkerpop/site/jsdocs/3.5.5/driver_auth_authenticator.js.html (added)
+++ tinkerpop/site/jsdocs/3.5.5/driver_auth_authenticator.js.html Thu Jan 19 02:09:37 2023
@@ -0,0 +1,89 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+ <meta charset="utf-8">
+ <title>JSDoc: Source: driver/auth/authenticator.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: driver/auth/authenticator.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';
+
+/** @abstract */
+class Authenticator {
+ constructor(options) {
+ this._options = options;
+ }
+
+ /**
+ * @abstract
+ * Evaluates the challenge from the server and returns appropriate response.
+ * @param {String} challenge Challenge string presented by the server.
+ */
+ evaluateChallenge(challenge) {
+ throw new Error('evaluateChallenge should be implemented');
+ }
+}
+
+module.exports = Authenticator;
+</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="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 Wed Jan 18 2023 17:10:25 GMT-0800 (Pacific Standard Time)
+</footer>
+
+<script> prettyPrint(); </script>
+<script src="scripts/linenumber.js"> </script>
+</body>
+</html>
Added: tinkerpop/site/jsdocs/3.5.5/driver_auth_mechanisms_sasl-mechanism-base.js.html
URL: http://svn.apache.org/viewvc/tinkerpop/site/jsdocs/3.5.5/driver_auth_mechanisms_sasl-mechanism-base.js.html?rev=1906787&view=auto
==============================================================================
--- tinkerpop/site/jsdocs/3.5.5/driver_auth_mechanisms_sasl-mechanism-base.js.html (added)
+++ tinkerpop/site/jsdocs/3.5.5/driver_auth_mechanisms_sasl-mechanism-base.js.html Thu Jan 19 02:09:37 2023
@@ -0,0 +1,103 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+ <meta charset="utf-8">
+ <title>JSDoc: Source: driver/auth/mechanisms/sasl-mechanism-base.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: driver/auth/mechanisms/sasl-mechanism-base.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';
+
+/** @abstract */
+class SaslMechanismBase {
+ constructor(options) {
+ this.setopts(options);
+ }
+
+ /**
+ * Returns the name of the mechanism
+ */
+ get name() {
+ return null;
+ }
+
+ /**
+ * Set the options for the mechanism
+ * @param {object} options Options specific to the mechanism
+ */
+ setopts(options) {
+ this._options = options;
+ }
+
+ /**
+ * @abstract
+ * Evaluates the challenge from the server and returns appropriate response
+ * @param {String} challenge Challenge string presented by the server
+ */
+ evaluateChallenge(challenge) {
+ throw new Error('evaluateChallenge should be implemented');
+ }
+}
+
+module.exports = SaslMechanismBase;
+</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="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 Wed Jan 18 2023 17:10:25 GMT-0800 (Pacific Standard Time)
+</footer>
+
+<script> prettyPrint(); </script>
+<script src="scripts/linenumber.js"> </script>
+</body>
+</html>
Added: tinkerpop/site/jsdocs/3.5.5/driver_auth_mechanisms_sasl-mechanism-plain.js.html
URL: http://svn.apache.org/viewvc/tinkerpop/site/jsdocs/3.5.5/driver_auth_mechanisms_sasl-mechanism-plain.js.html?rev=1906787&view=auto
==============================================================================
--- tinkerpop/site/jsdocs/3.5.5/driver_auth_mechanisms_sasl-mechanism-plain.js.html (added)
+++ tinkerpop/site/jsdocs/3.5.5/driver_auth_mechanisms_sasl-mechanism-plain.js.html Thu Jan 19 02:09:37 2023
@@ -0,0 +1,156 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+ <meta charset="utf-8">
+ <title>JSDoc: Source: driver/auth/mechanisms/sasl-mechanism-plain.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: driver/auth/mechanisms/sasl-mechanism-plain.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 SaslMechanismBase = require('./sasl-mechanism-base');
+
+class SaslMechanismPlain extends SaslMechanismBase {
+ /**
+ * Creates a new instance of SaslMechanismPlain.
+ * @param {Object} [options] The mechanism options.
+ * @param {String} [options.authzid] The identity of the client.
+ * @param {String} [options.username] The identity of user with access to server.
+ * @param {String} [options.password] The password of user with access to server.
+ * @constructor
+ */
+ constructor(options) {
+ super(options);
+
+ if (
+ this._options.username === undefined ||
+ this._options.username === null ||
+ this._options.username.length === 0 ||
+ this._options.password === undefined ||
+ this._options.password === null ||
+ this._options.password.length === 0
+ ) {
+ throw new Error('Missing credentials for SASL PLAIN mechanism');
+ }
+ }
+
+ /**
+ * Returns the name of the mechanism
+ */
+ get name() {
+ return 'PLAIN';
+ }
+
+ /**
+ * Evaluates the challenge from the server and returns appropriate response.
+ * @param {String} challenge Challenge string presented by the server.
+ * @return {Object} A Promise that resolves to a valid sasl response object.
+ */
+ evaluateChallenge(challenge) {
+ if (this._hasInitialResponse(challenge)) {
+ return Promise.resolve({
+ saslMechanism: this.name,
+ sasl: this._saslArgument(this._options.authzid, this._options.username, this._options.password),
+ });
+ }
+
+ return Promise.resolve({
+ sasl: this._saslArgument(this._options.authzid, this._options.username, this._options.password),
+ });
+ }
+
+ /**
+ * Generates a base64 encoded sasl argument based on the given parameters.
+ * @param {String} authzid Identitiy of the client.
+ * @param {String} username The identity of user with access to server.
+ * @param {String} password The password of user with access to server.
+ */
+ _saslArgument(authzid, username, password) {
+ if (authzid === undefined || authzid === null) {
+ authzid = '';
+ }
+ if (username === undefined || username === null) {
+ username = '';
+ }
+ if (password === undefined || password.length === null) {
+ password = '';
+ }
+
+ return Buffer.from(`${authzid}\0${username}\0${password}`).toString('base64');
+ }
+
+ /**
+ * Checks challenge to see if we have the initial sasl response from the server.
+ * @param {String} challenge The challenge string from the server.
+ * @return {Boolean}
+ */
+ _hasInitialResponse(challenge) {
+ if (challenge === undefined || challenge === null) {
+ return false;
+ }
+ return true;
+ }
+}
+
+module.exports = SaslMechanismPlain;
+</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="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 Wed Jan 18 2023 17:10:25 GMT-0800 (Pacific Standard Time)
+</footer>
+
+<script> prettyPrint(); </script>
+<script src="scripts/linenumber.js"> </script>
+</body>
+</html>
Added: tinkerpop/site/jsdocs/3.5.5/driver_auth_plain-text-sasl-authenticator.js.html
URL: http://svn.apache.org/viewvc/tinkerpop/site/jsdocs/3.5.5/driver_auth_plain-text-sasl-authenticator.js.html?rev=1906787&view=auto
==============================================================================
--- tinkerpop/site/jsdocs/3.5.5/driver_auth_plain-text-sasl-authenticator.js.html (added)
+++ tinkerpop/site/jsdocs/3.5.5/driver_auth_plain-text-sasl-authenticator.js.html Thu Jan 19 02:09:37 2023
@@ -0,0 +1,106 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+ <meta charset="utf-8">
+ <title>JSDoc: Source: driver/auth/plain-text-sasl-authenticator.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: driver/auth/plain-text-sasl-authenticator.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 Authenticator = require('./authenticator');
+const SaslMechanismPlain = require('./mechanisms/sasl-mechanism-plain');
+
+class PlainTextSaslAuthenticator extends Authenticator {
+ /**
+ * Creates a new instance of PlainTextSaslAuthenticator.
+ * @param {string} username Username to log into the server.
+ * @param {string} password Password for the user.
+ * @param {string} [authzid] Optional id
+ * @constructor
+ */
+ constructor(username, password, authzid) {
+ const options = {
+ mechanism: new SaslMechanismPlain({
+ username: username,
+ password: password,
+ authzid: authzid,
+ }),
+ };
+
+ super(options);
+ }
+
+ /**
+ * Evaluates the challenge from the server and returns appropriate response.
+ * @param {String} challenge Challenge string presented by the server.
+ * @return {Object} A Promise that resolves to a valid sasl response object.
+ */
+ evaluateChallenge(challenge) {
+ return this._options.mechanism.evaluateChallenge(challenge);
+ }
+}
+
+module.exports = PlainTextSaslAuthenticator;
+</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="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 Wed Jan 18 2023 17:10:25 GMT-0800 (Pacific Standard Time)
+</footer>
+
+<script> prettyPrint(); </script>
+<script src="scripts/linenumber.js"> </script>
+</body>
+</html>
Added: tinkerpop/site/jsdocs/3.5.5/driver_auth_sasl-authenticator.js.html
URL: http://svn.apache.org/viewvc/tinkerpop/site/jsdocs/3.5.5/driver_auth_sasl-authenticator.js.html?rev=1906787&view=auto
==============================================================================
--- tinkerpop/site/jsdocs/3.5.5/driver_auth_sasl-authenticator.js.html (added)
+++ tinkerpop/site/jsdocs/3.5.5/driver_auth_sasl-authenticator.js.html Thu Jan 19 02:09:37 2023
@@ -0,0 +1,100 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+ <meta charset="utf-8">
+ <title>JSDoc: Source: driver/auth/sasl-authenticator.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: driver/auth/sasl-authenticator.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 Authenticator = require('./authenticator');
+
+class SaslAuthenticator extends Authenticator {
+ /**
+ * Creates a new instance of SaslAuthenticator.
+ * @param {Object} [options] The authentication options.
+ * @param {Object} [options.mechanism] The mechanism to be used for authentication.
+ * @constructor
+ */
+ constructor(options) {
+ super(options);
+
+ if (options.mechanism === null || options.mechanism === undefined) {
+ throw new Error('No Sasl Mechanism Specified');
+ }
+ }
+
+ /**
+ * Evaluates the challenge from the server and returns appropriate response.
+ * @param {String} challenge Challenge string presented by the server.
+ * @return {Object} A Promise that resolves to a valid sasl response object.
+ */
+ evaluateChallenge(challenge) {
+ return this._options.mechanism.evaluateChallenge(challenge);
+ }
+}
+
+module.exports = SaslAuthenticator;
+</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="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 Wed Jan 18 2023 17:10:25 GMT-0800 (Pacific Standard Time)
+</footer>
+
+<script> prettyPrint(); </script>
+<script src="scripts/linenumber.js"> </script>
+</body>
+</html>
Added: tinkerpop/site/jsdocs/3.5.5/driver_client.js.html
URL: http://svn.apache.org/viewvc/tinkerpop/site/jsdocs/3.5.5/driver_client.js.html?rev=1906787&view=auto
==============================================================================
--- tinkerpop/site/jsdocs/3.5.5/driver_client.js.html (added)
+++ tinkerpop/site/jsdocs/3.5.5/driver_client.js.html Thu Jan 19 02:09:37 2023
@@ -0,0 +1,250 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+ <meta charset="utf-8">
+ <title>JSDoc: Source: driver/client.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: driver/client.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 utils = require('../utils');
+const Connection = require('./connection');
+const Bytecode = require('../process/bytecode');
+
+/**
+ * A {@link Client} contains methods to send messages to a Gremlin Server.
+ */
+class Client {
+ /**
+ * Creates a new instance of {@link Client}.
+ * @param {String} url The resource uri.
+ * @param {Object} [options] The connection options.
+ * @param {Array} [options.ca] Trusted certificates.
+ * @param {String|Array|Buffer} [options.cert] The certificate key.
+ * @param {String} [options.mimeType] The mime type to use.
+ * @param {String|Buffer} [options.pfx] The private key, certificate, and CA certs.
+ * @param {GraphSONReader} [options.reader] The reader to use.
+ * @param {Boolean} [options.rejectUnauthorized] Determines whether to verify or not the server certificate.
+ * @param {String} [options.traversalSource] The traversal source. Defaults to: 'g'.
+ * @param {GraphSONWriter} [options.writer] The writer to use.
+ * @param {Authenticator} [options.authenticator] The authentication handler to use.
+ * @param {Object} [options.headers] An associative array containing the additional header key/values for the initial request.
+ * @param {Boolean} [options.enableUserAgentOnConnect] Determines if a user agent will be sent during connection handshake. Defaults to: true
+ * @param {String} [options.processor] The name of the opProcessor to use, leave it undefined or set 'session' when session mode.
+ * @param {String} [options.session] The sessionId of Client in session mode. Defaults to null means session-less Client.
+ * @param {Boolean} [options.pingEnabled] Setup ping interval. Defaults to: true.
+ * @param {Number} [options.pingInterval] Ping request interval in ms if ping enabled. Defaults to: 60000.
+ * @param {Number} [options.pongTimeout] Timeout of pong response in ms after sending a ping. Defaults to: 30000.
+ * @constructor
+ */
+ constructor(url, options = {}) {
+ this._options = options;
+ if (this._options.processor === 'session') {
+ // compatibility with old 'session' processor setting
+ this._options.session = options.session || utils.getUuid();
+ }
+ if (this._options.session) {
+ // re-assign processor to 'session' when in session mode
+ this._options.processor = options.processor || 'session';
+ }
+ this._connection = new Connection(url, options);
+ }
+
+ /**
+ * Opens the underlying connection to the Gremlin Server, if it's not already opened.
+ * @returns {Promise}
+ */
+ open() {
+ return this._connection.open();
+ }
+
+ /**
+ * Returns true if the underlying connection is open
+ * @returns {Boolean}
+ */
+ get isOpen() {
+ return this._connection.isOpen;
+ }
+
+ /**
+ * Configuration specific to the current request.
+ * @typedef {Object} RequestOptions
+ * @property {String} requestId - User specified request identifier which must be a UUID.
+ * @property {Number} batchSize - Indicates whether the Power component is present.
+ * @property {String} userAgent - The size in which the result of a request is to be 'batched' back to the client
+ * @property {Number} evaluationTimeout - The timeout for the evaluation of the request.
+ */
+
+ /**
+ * Send a request to the Gremlin Server, can send a script or bytecode steps.
+ * @param {Bytecode|string} message The bytecode or script to send
+ * @param {Object} [bindings] The script bindings, if any.
+ * @param {RequestOptions} [requestOptions] Configuration specific to the current request.
+ * @returns {Promise}
+ */
+ submit(message, bindings, requestOptions) {
+ const requestIdOverride = requestOptions && requestOptions.requestId;
+ if (requestIdOverride) {
+ delete requestOptions['requestId'];
+ }
+
+ const args = Object.assign(
+ {
+ gremlin: message,
+ aliases: { g: this._options.traversalSource || 'g' },
+ },
+ requestOptions,
+ );
+
+ if (this._options.session && this._options.processor === 'session') {
+ args['session'] = this._options.session;
+ }
+
+ if (message instanceof Bytecode) {
+ if (this._options.session && this._options.processor === 'session') {
+ return this._connection.submit('session', 'bytecode', args, requestIdOverride);
+ }
+ return this._connection.submit('traversal', 'bytecode', args, requestIdOverride);
+ } else if (typeof message === 'string') {
+ args['bindings'] = bindings;
+ args['language'] = 'gremlin-groovy';
+ args['accept'] = this._connection.mimeType;
+ return this._connection.submit(this._options.processor || '', 'eval', args, requestIdOverride);
+ }
+ throw new TypeError('message must be of type Bytecode or string');
+ }
+
+ /**
+ * Send a request to the Gremlin Server and receive a stream for the results, can send a script or bytecode steps.
+ * @param {Bytecode|string} message The bytecode or script to send
+ * @param {Object} [bindings] The script bindings, if any.
+ * @param {RequestOptions} [requestOptions] Configuration specific to the current request.
+ * @returns {ReadableStream}
+ */
+ stream(message, bindings, requestOptions) {
+ const requestIdOverride = requestOptions && requestOptions.requestId;
+ if (requestIdOverride) {
+ delete requestOptions['requestId'];
+ }
+
+ const args = Object.assign(
+ {
+ gremlin: message,
+ aliases: { g: this._options.traversalSource || 'g' },
+ },
+ requestOptions,
+ );
+
+ if (this._options.session && this._options.processor === 'session') {
+ args['session'] = this._options.session;
+ }
+
+ if (message instanceof Bytecode) {
+ if (this._options.session && this._options.processor === 'session') {
+ return this._connection.stream('session', 'bytecode', args, requestIdOverride);
+ }
+ return this._connection.stream('traversal', 'bytecode', args, requestIdOverride);
+ } else if (typeof message === 'string') {
+ args['bindings'] = bindings;
+ args['language'] = 'gremlin-groovy';
+ args['accept'] = this._connection.mimeType;
+ return this._connection.stream(this._options.processor || '', 'eval', args, requestIdOverride);
+ }
+ throw new TypeError('message must be of type Bytecode or string');
+ }
+
+ /**
+ * Closes the underlying connection
+ * send session close request before connection close if session mode
+ * @returns {Promise}
+ */
+ close() {
+ if (this._options.session && this._options.processor === 'session') {
+ const args = { session: this._options.session };
+ return this._connection.submit(this._options.processor, 'close', args, null).then(() => this._connection.close());
+ }
+ return this._connection.close();
+ }
+
+ /**
+ * Adds an event listener to the connection
+ * @param {String} event The event name that you want to listen to.
+ * @param {Function} handler The callback to be called when the event occurs.
+ */
+ addListener(event, handler) {
+ this._connection.on(event, handler);
+ }
+
+ /**
+ * Removes a previowsly added event listener to the connection
+ * @param {String} event The event name that you want to listen to.
+ * @param {Function} handler The event handler to be removed.
+ */
+ removeListener(event, handler) {
+ this._connection.removeListener(event, handler);
+ }
+}
+
+module.exports = Client;
+</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="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 Wed Jan 18 2023 17:10:25 GMT-0800 (Pacific Standard Time)
+</footer>
+
+<script> prettyPrint(); </script>
+<script src="scripts/linenumber.js"> </script>
+</body>
+</html>
Added: tinkerpop/site/jsdocs/3.5.5/driver_connection.js.html
URL: http://svn.apache.org/viewvc/tinkerpop/site/jsdocs/3.5.5/driver_connection.js.html?rev=1906787&view=auto
==============================================================================
--- tinkerpop/site/jsdocs/3.5.5/driver_connection.js.html (added)
+++ tinkerpop/site/jsdocs/3.5.5/driver_connection.js.html Thu Jan 19 02:09:37 2023
@@ -0,0 +1,489 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+ <meta charset="utf-8">
+ <title>JSDoc: Source: driver/connection.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: driver/connection.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 EventEmitter = require('events');
+const Stream = require('stream');
+const WebSocket = require('ws');
+const util = require('util');
+const utils = require('../utils');
+const serializer = require('../structure/io/graph-serializer');
+const { graphBinaryReader, graphBinaryWriter } = require('../structure/io/binary/GraphBinary');
+const ResultSet = require('./result-set');
+const ResponseError = require('./response-error');
+
+const responseStatusCode = {
+ success: 200,
+ noContent: 204,
+ partialContent: 206,
+ authenticationChallenge: 407,
+};
+
+const defaultMimeType = 'application/vnd.gremlin-v3.0+json';
+const graphSON2MimeType = 'application/vnd.gremlin-v2.0+json';
+const graphBinaryMimeType = 'application/vnd.graphbinary-v1.0';
+
+const pingIntervalDelay = 60 * 1000;
+const pongTimeoutDelay = 30 * 1000;
+
+/**
+ * Represents a single connection to a Gremlin Server.
+ */
+class Connection extends EventEmitter {
+ /**
+ * Creates a new instance of {@link Connection}.
+ * @param {String} url The resource uri.
+ * @param {Object} [options] The connection options.
+ * @param {Array} [options.ca] Trusted certificates.
+ * @param {String|Array|Buffer} [options.cert] The certificate key.
+ * @param {String} [options.mimeType] The mime type to use.
+ * @param {String|Buffer} [options.pfx] The private key, certificate, and CA certs.
+ * @param {GraphSONReader} [options.reader] The reader to use.
+ * @param {Boolean} [options.rejectUnauthorized] Determines whether to verify or not the server certificate.
+ * @param {String} [options.traversalSource] The traversal source. Defaults to: 'g'.
+ * @param {GraphSONWriter} [options.writer] The writer to use.
+ * @param {Authenticator} [options.authenticator] The authentication handler to use.
+ * @param {Object} [options.headers] An associative array containing the additional header key/values for the initial request.
+ * @param {Boolean} [options.enableUserAgentOnConnect] Determines if a user agent will be sent during connection handshake. Defaults to: true
+ * @param {Boolean} [options.pingEnabled] Setup ping interval. Defaults to: true.
+ * @param {Number} [options.pingInterval] Ping request interval in ms if ping enabled. Defaults to: 60000.
+ * @param {Number} [options.pongTimeout] Timeout of pong response in ms after sending a ping. Defaults to: 30000.
+ * @param {Boolean} [options.connectOnStartup] Deprecated and non-functional. Open websocket on startup.
+ * @constructor
+ */
+ constructor(url, options) {
+ super();
+
+ this.url = url;
+ this.options = options = options || {};
+
+ /**
+ * Gets the MIME type.
+ * @type {String}
+ */
+ this.mimeType = options.mimeType || defaultMimeType;
+
+ // A map containing the request id and the handler. The id should be in lower case to prevent string comparison issues.
+ this._responseHandlers = {};
+ this._reader = options.reader || this._getDefaultReader(this.mimeType);
+ this._writer = options.writer || this._getDefaultWriter(this.mimeType);
+ this._openPromise = null;
+ this._openCallback = null;
+ this._closePromise = null;
+ this._closeCallback = null;
+ this._pingInterval = null;
+ this._pongTimeout = null;
+
+ this._header = String.fromCharCode(this.mimeType.length) + this.mimeType; // TODO: what if mimeType.length > 255
+ this._header_buf = Buffer.from(this._header);
+ this.isOpen = false;
+ this.traversalSource = options.traversalSource || 'g';
+ this._authenticator = options.authenticator;
+ this._enableUserAgentOnConnect = options.enableUserAgentOnConnect !== false;
+
+ this._pingEnabled = this.options.pingEnabled === false ? false : true;
+ this._pingIntervalDelay = this.options.pingInterval || pingIntervalDelay;
+ this._pongTimeoutDelay = this.options.pongTimeout || pongTimeoutDelay;
+
+ if (this.options.connectOnStartup) {
+ console.warn(
+ 'connectOnStartup is now deprecated and non-functional. To open a connection, please call open() after instantiating connection object.',
+ );
+ }
+ }
+
+ /**
+ * Opens the connection, if its not already opened.
+ * @returns {Promise}
+ */
+ open() {
+ if (this.isOpen) {
+ return Promise.resolve();
+ }
+ if (this._openPromise) {
+ return this._openPromise;
+ }
+
+ this.emit('log', 'ws open');
+ let headers = this.options.headers;
+ if (this._enableUserAgentOnConnect) {
+ if (!headers) {
+ headers = [];
+ }
+ headers[utils.getUserAgentHeader()] = utils.getUserAgent();
+ }
+
+ this._ws = new WebSocket(this.url, {
+ headers: headers,
+ ca: this.options.ca,
+ cert: this.options.cert,
+ pfx: this.options.pfx,
+ rejectUnauthorized: this.options.rejectUnauthorized,
+ });
+
+ this._ws.on('message', (data) => this._handleMessage(data));
+ this._ws.on('close', (code, message) => this._handleClose(code, message));
+
+ this._ws.on('pong', () => {
+ this.emit('log', 'ws pong received');
+ if (this._pongTimeout) {
+ clearTimeout(this._pongTimeout);
+ this._pongTimeout = null;
+ }
+ });
+ this._ws.on('ping', () => {
+ this.emit('log', 'ws ping received');
+ this._ws.pong();
+ });
+
+ return (this._openPromise = new Promise((resolve, reject) => {
+ this._ws.on('open', () => {
+ this.isOpen = true;
+ if (this._pingEnabled) {
+ this._pingHeartbeat();
+ }
+ resolve();
+ });
+ this._ws.on('error', (err) => {
+ this._handleError(err);
+ reject(err);
+ });
+ }));
+ }
+
+ /** @override */
+ submit(processor, op, args, requestId) {
+ // TINKERPOP-2847: Use lower case to prevent string comparison issues.
+ const rid = (requestId || utils.getUuid()).toLowerCase();
+ return this.open().then(
+ () =>
+ new Promise((resolve, reject) => {
+ if (op !== 'authentication') {
+ this._responseHandlers[rid] = {
+ callback: (err, result) => (err ? reject(err) : resolve(result)),
+ result: null,
+ };
+ }
+
+ const request = {
+ requestId: rid,
+ op: op || 'bytecode',
+ // if using op eval need to ensure processor stays unset if caller didn't set it.
+ processor: !processor && op !== 'eval' ? 'traversal' : processor,
+ args: args || {},
+ };
+
+ const request_buf = this._writer.writeRequest(request);
+ const message = Buffer.concat([this._header_buf, request_buf]);
+ this._ws.send(message);
+ }),
+ );
+ }
+
+ /** @override */
+ stream(processor, op, args, requestId) {
+ // TINKERPOP-2847: Use lower case to prevent string comparison issues.
+ const rid = (requestId || utils.getUuid()).toLowerCase();
+
+ const readableStream = new Stream.Readable({
+ objectMode: true,
+ read() {},
+ });
+
+ this._responseHandlers[rid] = {
+ callback: (err) => (err ? readableStream.destroy(err) : readableStream.push(null)),
+ result: readableStream,
+ };
+
+ this.open()
+ .then(() => {
+ const request = {
+ requestId: rid,
+ op: op || 'bytecode',
+ // if using op eval need to ensure processor stays unset if caller didn't set it.
+ processor: !processor && op !== 'eval' ? 'traversal' : processor,
+ args: args || {},
+ };
+
+ const request_buf = this._writer.writeRequest(request);
+ const message = Buffer.concat([this._header_buf, request_buf]);
+ this._ws.send(message);
+ })
+ .catch((err) => readableStream.destroy(err));
+
+ return readableStream;
+ }
+
+ _getDefaultReader(mimeType) {
+ if (mimeType === graphBinaryMimeType) {
+ return graphBinaryReader;
+ }
+
+ return mimeType === graphSON2MimeType ? new serializer.GraphSON2Reader() : new serializer.GraphSONReader();
+ }
+
+ _getDefaultWriter(mimeType) {
+ if (mimeType === graphBinaryMimeType) {
+ return graphBinaryWriter;
+ }
+
+ return mimeType === graphSON2MimeType ? new serializer.GraphSON2Writer() : new serializer.GraphSONWriter();
+ }
+
+ _pingHeartbeat() {
+ if (this._pingInterval) {
+ clearInterval(this._pingInterval);
+ this._pingInterval = null;
+ }
+
+ this._pingInterval = setInterval(() => {
+ if (this.isOpen === false) {
+ // in case of if not open..
+ if (this._pingInterval) {
+ clearInterval(this._pingInterval);
+ this._pingInterval = null;
+ }
+ }
+
+ this._pongTimeout = setTimeout(() => {
+ this._ws.terminate();
+ }, this._pongTimeoutDelay);
+
+ this._ws.ping();
+ }, this._pingIntervalDelay);
+ }
+
+ _handleError(err) {
+ this.emit('log', `ws error ${err}`);
+ this._cleanupWebsocket(err);
+ this.emit('socketError', err);
+ }
+
+ _handleClose(code, message) {
+ this.emit('log', `ws close code=${code} message=${message}`);
+ this._cleanupWebsocket();
+ if (this._closeCallback) {
+ this._closeCallback();
+ }
+ this.emit('close', code, message);
+ }
+
+ _handleMessage(data) {
+ const response = this._reader.readResponse(data);
+ if (response.requestId === null || response.requestId === undefined) {
+ // There was a serialization issue on the server that prevented the parsing of the request id
+ // We invoke any of the pending handlers with an error
+ Object.keys(this._responseHandlers).forEach((requestId) => {
+ const handler = this._responseHandlers[requestId];
+ this._clearHandler(requestId);
+ if (response.status !== undefined && response.status.message) {
+ return handler.callback(
+ // TINKERPOP-2285: keep the old server error message in case folks are parsing that - fix in a future breaking version
+ new ResponseError(
+ util.format(
+ 'Server error (no request information): %s (%d)',
+ response.status.message,
+ response.status.code,
+ ),
+ response.status,
+ ),
+ );
+ }
+ // TINKERPOP-2285: keep the old server error message in case folks are parsing that - fix in a future breaking version
+ return handler.callback(
+ new ResponseError(util.format('Server error (no request information): %j', response), response.status),
+ );
+ });
+ return;
+ }
+
+ // TINKERPOP-2847: Use lower case to prevent string comparison issues.
+ response.requestId = response.requestId.toLowerCase();
+ const handler = this._responseHandlers[response.requestId];
+
+ if (!handler) {
+ // The handler for a given request id was not found
+ // It was probably invoked earlier due to a serialization issue.
+ return;
+ }
+
+ if (response.status.code === responseStatusCode.authenticationChallenge && this._authenticator) {
+ this._authenticator
+ .evaluateChallenge(response.result.data)
+ .then((res) => this.submit(undefined, 'authentication', res, response.requestId))
+ .catch(handler.callback);
+
+ return;
+ } else if (response.status.code >= 400) {
+ // callback in error
+ return handler.callback(
+ // TINKERPOP-2285: keep the old server error message in case folks are parsing that - fix in a future breaking version
+ new ResponseError(
+ util.format('Server error: %s (%d)', response.status.message, response.status.code),
+ response.status,
+ ),
+ );
+ }
+
+ const isStreamingResponse = handler.result instanceof Stream.Readable;
+
+ switch (response.status.code) {
+ case responseStatusCode.noContent:
+ this._clearHandler(response.requestId);
+ if (isStreamingResponse) {
+ handler.result.push(new ResultSet(utils.emptyArray, response.status.attributes));
+ return handler.callback(null);
+ }
+ return handler.callback(null, new ResultSet(utils.emptyArray, response.status.attributes));
+ case responseStatusCode.partialContent:
+ if (isStreamingResponse) {
+ handler.result.push(new ResultSet(response.result.data, response.status.attributes));
+ break;
+ }
+ handler.result = handler.result || [];
+ handler.result.push.apply(handler.result, response.result.data);
+ break;
+ default:
+ if (isStreamingResponse) {
+ handler.result.push(new ResultSet(response.result.data, response.status.attributes));
+ return handler.callback(null);
+ }
+ if (handler.result) {
+ handler.result.push.apply(handler.result, response.result.data);
+ } else {
+ handler.result = response.result.data;
+ }
+ this._clearHandler(response.requestId);
+ return handler.callback(null, new ResultSet(handler.result, response.status.attributes));
+ }
+ }
+
+ /**
+ * clean websocket context
+ */
+ _cleanupWebsocket(err) {
+ if (this._pingInterval) {
+ clearInterval(this._pingInterval);
+ }
+ this._pingInterval = null;
+ if (this._pongTimeout) {
+ clearTimeout(this._pongTimeout);
+ }
+ this._pongTimeout = null;
+
+ // Invoke waiting callbacks to complete Promises when closing the websocket
+ Object.keys(this._responseHandlers).forEach((requestId) => {
+ const handler = this._responseHandlers[requestId];
+ const isStreamingResponse = handler.result instanceof Stream.Readable;
+ if (isStreamingResponse) {
+ handler.callback(null);
+ } else {
+ const cause = err ? err : new Error('Connection has been closed.');
+ handler.callback(cause);
+ }
+ });
+ this._ws.removeAllListeners();
+ this._openPromise = null;
+ this._closePromise = null;
+ this.isOpen = false;
+ }
+
+ /**
+ * Clears the internal state containing the callback and result buffer of a given request.
+ * @param requestId
+ * @private
+ */
+ _clearHandler(requestId) {
+ delete this._responseHandlers[requestId];
+ }
+
+ /**
+ * Closes the Connection.
+ * @return {Promise}
+ */
+ close() {
+ if (this.isOpen === false) {
+ return Promise.resolve();
+ }
+ if (!this._closePromise) {
+ this._closePromise = new Promise((resolve) => {
+ this._closeCallback = resolve;
+ this._ws.close();
+ });
+ }
+ return this._closePromise;
+ }
+}
+
+module.exports = Connection;
+</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="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 Wed Jan 18 2023 17:10:25 GMT-0800 (Pacific Standard Time)
+</footer>
+
+<script> prettyPrint(); </script>
+<script src="scripts/linenumber.js"> </script>
+</body>
+</html>
Added: tinkerpop/site/jsdocs/3.5.5/driver_driver-remote-connection.js.html
URL: http://svn.apache.org/viewvc/tinkerpop/site/jsdocs/3.5.5/driver_driver-remote-connection.js.html?rev=1906787&view=auto
==============================================================================
--- tinkerpop/site/jsdocs/3.5.5/driver_driver-remote-connection.js.html (added)
+++ tinkerpop/site/jsdocs/3.5.5/driver_driver-remote-connection.js.html Thu Jan 19 02:09:37 2023
@@ -0,0 +1,187 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+ <meta charset="utf-8">
+ <title>JSDoc: Source: driver/driver-remote-connection.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: driver/driver-remote-connection.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 rcModule = require('./remote-connection');
+const RemoteConnection = rcModule.RemoteConnection;
+const RemoteTraversal = rcModule.RemoteTraversal;
+const utils = require('../utils');
+const Client = require('./client');
+const Bytecode = require('../process/bytecode');
+const OptionsStrategy = require('../process/traversal-strategy').OptionsStrategy;
+
+/**
+ * Represents the default {@link RemoteConnection} implementation.
+ */
+class DriverRemoteConnection extends RemoteConnection {
+ /**
+ * Creates a new instance of {@link DriverRemoteConnection}.
+ * @param {String} url The resource uri.
+ * @param {Object} [options] The connection options.
+ * @param {Array} [options.ca] Trusted certificates.
+ * @param {String|Array|Buffer} [options.cert] The certificate key.
+ * @param {String} [options.mimeType] The mime type to use.
+ * @param {String|Buffer} [options.pfx] The private key, certificate, and CA certs.
+ * @param {GraphSONReader} [options.reader] The reader to use.
+ * @param {Boolean} [options.rejectUnauthorized] Determines whether to verify or not the server certificate.
+ * @param {String} [options.traversalSource] The traversal source. Defaults to: 'g'.
+ * @param {GraphSONWriter} [options.writer] The writer to use.
+ * @param {Authenticator} [options.authenticator] The authentication handler to use.
+ * @param {Object} [options.headers] An associative array containing the additional header key/values for the initial request.
+ * @param {Boolean} [options.enableUserAgentOnConnect] Determines if a user agent will be sent during connection handshake. Defaults to: true
+ * @param {Boolean} [options.pingEnabled] Setup ping interval. Defaults to: true.
+ * @param {Number} [options.pingInterval] Ping request interval in ms if ping enabled. Defaults to: 60000.
+ * @param {Number} [options.pongTimeout] Timeout of pong response in ms after sending a ping. Defaults to: 30000.
+ * @constructor
+ */
+ constructor(url, options = {}) {
+ super(url, options);
+ this._client = new Client(url, options);
+ }
+
+ /** @override */
+ open() {
+ return this._client.open();
+ }
+
+ /** @override */
+ get isOpen() {
+ return this._client.isOpen;
+ }
+
+ /** @override */
+ submit(bytecode) {
+ const optionsStrategy = bytecode.sourceInstructions.find(
+ (i) => i[0] === 'withStrategies' && i[1] instanceof OptionsStrategy,
+ );
+ const allowedKeys = ['evaluationTimeout', 'scriptEvaluationTimeout', 'batchSize', 'requestId', 'userAgent'];
+
+ let requestOptions = undefined;
+ if (optionsStrategy !== undefined) {
+ requestOptions = {};
+ const conf = optionsStrategy[1].configuration;
+ for (const key in conf) {
+ if (conf.hasOwnProperty(key) && allowedKeys.indexOf(key) > -1) {
+ requestOptions[key] = conf[key];
+ }
+ }
+ }
+
+ return this._client.submit(bytecode, null, requestOptions).then((result) => new RemoteTraversal(result.toArray()));
+ }
+
+ /** @override */
+ createSession() {
+ if (this.isSessionBound) {
+ throw new Error('Connection is already bound to a session - child sessions are not allowed');
+ }
+
+ // make sure a fresh session is used when starting a new transaction
+ const copiedOptions = Object.assign({}, this.options);
+ copiedOptions.session = utils.getUuid();
+ return new DriverRemoteConnection(this.url, copiedOptions);
+ }
+
+ /** @override */
+ get isSessionBound() {
+ return this.options.session;
+ }
+
+ /** @override */
+ commit() {
+ return this._client.submit(Bytecode.GraphOp.commit, null);
+ }
+
+ /** @override */
+ rollback() {
+ return this._client.submit(Bytecode.GraphOp.rollback, null);
+ }
+
+ /** @override */
+ close() {
+ return this._client.close();
+ }
+
+ /** @override */
+ addListener(...args) {
+ return this._client.addListener(...args);
+ }
+
+ /** @override */
+ removeListener(...args) {
+ return this._client.removeListener(...args);
+ }
+}
+
+module.exports = DriverRemoteConnection;
+</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="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 Wed Jan 18 2023 17:10:25 GMT-0800 (Pacific Standard Time)
+</footer>
+
+<script> prettyPrint(); </script>
+<script src="scripts/linenumber.js"> </script>
+</body>
+</html>