diff --git a/8.8.1/9.0.0 b/8.8.1/9.0.0 new file mode 120000 index 00000000..c9277c5a --- /dev/null +++ b/8.8.1/9.0.0 @@ -0,0 +1 @@ +9.0.0 \ No newline at end of file diff --git a/9.0.0/.nojekyll b/9.0.0/.nojekyll new file mode 100644 index 00000000..e2ac6616 --- /dev/null +++ b/9.0.0/.nojekyll @@ -0,0 +1 @@ +TypeDoc added this file to prevent GitHub Pages from using Jekyll. You can turn off this behavior by setting the `githubPages` option to false. \ No newline at end of file diff --git a/9.0.0/assets/highlight.css b/9.0.0/assets/highlight.css new file mode 100644 index 00000000..54adc3f2 --- /dev/null +++ b/9.0.0/assets/highlight.css @@ -0,0 +1,134 @@ +:root { + --light-hl-0: #795E26; + --dark-hl-0: #DCDCAA; + --light-hl-1: #000000; + --dark-hl-1: #D4D4D4; + --light-hl-2: #A31515; + --dark-hl-2: #CE9178; + --light-hl-3: #0000FF; + --dark-hl-3: #569CD6; + --light-hl-4: #008000; + --dark-hl-4: #6A9955; + --light-hl-5: #800000; + --dark-hl-5: #808080; + --light-hl-6: #800000; + --dark-hl-6: #569CD6; + --light-hl-7: #000000FF; + --dark-hl-7: #D4D4D4; + --light-hl-8: #E50000; + --dark-hl-8: #9CDCFE; + --light-hl-9: #0000FF; + --dark-hl-9: #CE9178; + --light-hl-10: #AF00DB; + --dark-hl-10: #C586C0; + --light-hl-11: #001080; + --dark-hl-11: #9CDCFE; + --light-hl-12: #0070C1; + --dark-hl-12: #4FC1FF; + --light-hl-13: #098658; + --dark-hl-13: #B5CEA8; + --light-hl-14: #267F99; + --dark-hl-14: #4EC9B0; + --light-hl-15: #EE0000; + --dark-hl-15: #D7BA7D; + --light-code-background: #FFFFFF; + --dark-code-background: #1E1E1E; +} + +@media (prefers-color-scheme: light) { :root { + --hl-0: var(--light-hl-0); + --hl-1: var(--light-hl-1); + --hl-2: var(--light-hl-2); + --hl-3: var(--light-hl-3); + --hl-4: var(--light-hl-4); + --hl-5: var(--light-hl-5); + --hl-6: var(--light-hl-6); + --hl-7: var(--light-hl-7); + --hl-8: var(--light-hl-8); + --hl-9: var(--light-hl-9); + --hl-10: var(--light-hl-10); + --hl-11: var(--light-hl-11); + --hl-12: var(--light-hl-12); + --hl-13: var(--light-hl-13); + --hl-14: var(--light-hl-14); + --hl-15: var(--light-hl-15); + --code-background: var(--light-code-background); +} } + +@media (prefers-color-scheme: dark) { :root { + --hl-0: var(--dark-hl-0); + --hl-1: var(--dark-hl-1); + --hl-2: var(--dark-hl-2); + --hl-3: var(--dark-hl-3); + --hl-4: var(--dark-hl-4); + --hl-5: var(--dark-hl-5); + --hl-6: var(--dark-hl-6); + --hl-7: var(--dark-hl-7); + --hl-8: var(--dark-hl-8); + --hl-9: var(--dark-hl-9); + --hl-10: var(--dark-hl-10); + --hl-11: var(--dark-hl-11); + --hl-12: var(--dark-hl-12); + --hl-13: var(--dark-hl-13); + --hl-14: var(--dark-hl-14); + --hl-15: var(--dark-hl-15); + --code-background: var(--dark-code-background); +} } + +:root[data-theme='light'] { + --hl-0: var(--light-hl-0); + --hl-1: var(--light-hl-1); + --hl-2: var(--light-hl-2); + --hl-3: var(--light-hl-3); + --hl-4: var(--light-hl-4); + --hl-5: var(--light-hl-5); + --hl-6: var(--light-hl-6); + --hl-7: var(--light-hl-7); + --hl-8: var(--light-hl-8); + --hl-9: var(--light-hl-9); + --hl-10: var(--light-hl-10); + --hl-11: var(--light-hl-11); + --hl-12: var(--light-hl-12); + --hl-13: var(--light-hl-13); + --hl-14: var(--light-hl-14); + --hl-15: var(--light-hl-15); + --code-background: var(--light-code-background); +} + +:root[data-theme='dark'] { + --hl-0: var(--dark-hl-0); + --hl-1: var(--dark-hl-1); + --hl-2: var(--dark-hl-2); + --hl-3: var(--dark-hl-3); + --hl-4: var(--dark-hl-4); + --hl-5: var(--dark-hl-5); + --hl-6: var(--dark-hl-6); + --hl-7: var(--dark-hl-7); + --hl-8: var(--dark-hl-8); + --hl-9: var(--dark-hl-9); + --hl-10: var(--dark-hl-10); + --hl-11: var(--dark-hl-11); + --hl-12: var(--dark-hl-12); + --hl-13: var(--dark-hl-13); + --hl-14: var(--dark-hl-14); + --hl-15: var(--dark-hl-15); + --code-background: var(--dark-code-background); +} + +.hl-0 { color: var(--hl-0); } +.hl-1 { color: var(--hl-1); } +.hl-2 { color: var(--hl-2); } +.hl-3 { color: var(--hl-3); } +.hl-4 { color: var(--hl-4); } +.hl-5 { color: var(--hl-5); } +.hl-6 { color: var(--hl-6); } +.hl-7 { color: var(--hl-7); } +.hl-8 { color: var(--hl-8); } +.hl-9 { color: var(--hl-9); } +.hl-10 { color: var(--hl-10); } +.hl-11 { color: var(--hl-11); } +.hl-12 { color: var(--hl-12); } +.hl-13 { color: var(--hl-13); } +.hl-14 { color: var(--hl-14); } +.hl-15 { color: var(--hl-15); } +pre, code { background: var(--code-background); } diff --git a/9.0.0/assets/icons.js b/9.0.0/assets/icons.js new file mode 100644 index 00000000..b79c9e89 --- /dev/null +++ b/9.0.0/assets/icons.js @@ -0,0 +1,15 @@ +(function(svg) { + svg.innerHTML = ``; + svg.style.display = 'none'; + if (location.protocol === 'file:') { + if (document.readyState === 'loading') document.addEventListener('DOMContentLoaded', updateUseElements); + else updateUseElements() + function updateUseElements() { + document.querySelectorAll('use').forEach(el => { + if (el.getAttribute('href').includes('#icon-')) { + el.setAttribute('href', el.getAttribute('href').replace(/.*#/, '#')); + } + }); + } + } +})(document.body.appendChild(document.createElementNS('http://www.w3.org/2000/svg', 'svg'))) \ No newline at end of file diff --git a/9.0.0/assets/icons.svg b/9.0.0/assets/icons.svg new file mode 100644 index 00000000..7dead611 --- /dev/null +++ b/9.0.0/assets/icons.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/9.0.0/assets/main.js b/9.0.0/assets/main.js new file mode 100644 index 00000000..d6f13886 --- /dev/null +++ b/9.0.0/assets/main.js @@ -0,0 +1,59 @@ +"use strict"; +"use strict";(()=>{var Ce=Object.create;var ne=Object.defineProperty;var Pe=Object.getOwnPropertyDescriptor;var Oe=Object.getOwnPropertyNames;var _e=Object.getPrototypeOf,Re=Object.prototype.hasOwnProperty;var Me=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports);var Fe=(t,e,n,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of Oe(e))!Re.call(t,i)&&i!==n&&ne(t,i,{get:()=>e[i],enumerable:!(r=Pe(e,i))||r.enumerable});return t};var De=(t,e,n)=>(n=t!=null?Ce(_e(t)):{},Fe(e||!t||!t.__esModule?ne(n,"default",{value:t,enumerable:!0}):n,t));var ae=Me((se,oe)=>{(function(){var t=function(e){var n=new t.Builder;return n.pipeline.add(t.trimmer,t.stopWordFilter,t.stemmer),n.searchPipeline.add(t.stemmer),e.call(n,n),n.build()};t.version="2.3.9";t.utils={},t.utils.warn=function(e){return function(n){e.console&&console.warn&&console.warn(n)}}(this),t.utils.asString=function(e){return e==null?"":e.toString()},t.utils.clone=function(e){if(e==null)return e;for(var n=Object.create(null),r=Object.keys(e),i=0;i0){var d=t.utils.clone(n)||{};d.position=[a,u],d.index=s.length,s.push(new t.Token(r.slice(a,o),d))}a=o+1}}return s},t.tokenizer.separator=/[\s\-]+/;t.Pipeline=function(){this._stack=[]},t.Pipeline.registeredFunctions=Object.create(null),t.Pipeline.registerFunction=function(e,n){n in this.registeredFunctions&&t.utils.warn("Overwriting existing registered function: "+n),e.label=n,t.Pipeline.registeredFunctions[e.label]=e},t.Pipeline.warnIfFunctionNotRegistered=function(e){var n=e.label&&e.label in this.registeredFunctions;n||t.utils.warn(`Function is not registered with pipeline. This may cause problems when serialising the index. +`,e)},t.Pipeline.load=function(e){var n=new t.Pipeline;return e.forEach(function(r){var i=t.Pipeline.registeredFunctions[r];if(i)n.add(i);else throw new Error("Cannot load unregistered function: "+r)}),n},t.Pipeline.prototype.add=function(){var e=Array.prototype.slice.call(arguments);e.forEach(function(n){t.Pipeline.warnIfFunctionNotRegistered(n),this._stack.push(n)},this)},t.Pipeline.prototype.after=function(e,n){t.Pipeline.warnIfFunctionNotRegistered(n);var r=this._stack.indexOf(e);if(r==-1)throw new Error("Cannot find existingFn");r=r+1,this._stack.splice(r,0,n)},t.Pipeline.prototype.before=function(e,n){t.Pipeline.warnIfFunctionNotRegistered(n);var r=this._stack.indexOf(e);if(r==-1)throw new Error("Cannot find existingFn");this._stack.splice(r,0,n)},t.Pipeline.prototype.remove=function(e){var n=this._stack.indexOf(e);n!=-1&&this._stack.splice(n,1)},t.Pipeline.prototype.run=function(e){for(var n=this._stack.length,r=0;r1&&(oe&&(r=s),o!=e);)i=r-n,s=n+Math.floor(i/2),o=this.elements[s*2];if(o==e||o>e)return s*2;if(ol?d+=2:a==l&&(n+=r[u+1]*i[d+1],u+=2,d+=2);return n},t.Vector.prototype.similarity=function(e){return this.dot(e)/this.magnitude()||0},t.Vector.prototype.toArray=function(){for(var e=new Array(this.elements.length/2),n=1,r=0;n0){var o=s.str.charAt(0),a;o in s.node.edges?a=s.node.edges[o]:(a=new t.TokenSet,s.node.edges[o]=a),s.str.length==1&&(a.final=!0),i.push({node:a,editsRemaining:s.editsRemaining,str:s.str.slice(1)})}if(s.editsRemaining!=0){if("*"in s.node.edges)var l=s.node.edges["*"];else{var l=new t.TokenSet;s.node.edges["*"]=l}if(s.str.length==0&&(l.final=!0),i.push({node:l,editsRemaining:s.editsRemaining-1,str:s.str}),s.str.length>1&&i.push({node:s.node,editsRemaining:s.editsRemaining-1,str:s.str.slice(1)}),s.str.length==1&&(s.node.final=!0),s.str.length>=1){if("*"in s.node.edges)var u=s.node.edges["*"];else{var u=new t.TokenSet;s.node.edges["*"]=u}s.str.length==1&&(u.final=!0),i.push({node:u,editsRemaining:s.editsRemaining-1,str:s.str.slice(1)})}if(s.str.length>1){var d=s.str.charAt(0),y=s.str.charAt(1),p;y in s.node.edges?p=s.node.edges[y]:(p=new t.TokenSet,s.node.edges[y]=p),s.str.length==1&&(p.final=!0),i.push({node:p,editsRemaining:s.editsRemaining-1,str:d+s.str.slice(2)})}}}return r},t.TokenSet.fromString=function(e){for(var n=new t.TokenSet,r=n,i=0,s=e.length;i=e;n--){var r=this.uncheckedNodes[n],i=r.child.toString();i in this.minimizedNodes?r.parent.edges[r.char]=this.minimizedNodes[i]:(r.child._str=i,this.minimizedNodes[i]=r.child),this.uncheckedNodes.pop()}};t.Index=function(e){this.invertedIndex=e.invertedIndex,this.fieldVectors=e.fieldVectors,this.tokenSet=e.tokenSet,this.fields=e.fields,this.pipeline=e.pipeline},t.Index.prototype.search=function(e){return this.query(function(n){var r=new t.QueryParser(e,n);r.parse()})},t.Index.prototype.query=function(e){for(var n=new t.Query(this.fields),r=Object.create(null),i=Object.create(null),s=Object.create(null),o=Object.create(null),a=Object.create(null),l=0;l1?this._b=1:this._b=e},t.Builder.prototype.k1=function(e){this._k1=e},t.Builder.prototype.add=function(e,n){var r=e[this._ref],i=Object.keys(this._fields);this._documents[r]=n||{},this.documentCount+=1;for(var s=0;s=this.length)return t.QueryLexer.EOS;var e=this.str.charAt(this.pos);return this.pos+=1,e},t.QueryLexer.prototype.width=function(){return this.pos-this.start},t.QueryLexer.prototype.ignore=function(){this.start==this.pos&&(this.pos+=1),this.start=this.pos},t.QueryLexer.prototype.backup=function(){this.pos-=1},t.QueryLexer.prototype.acceptDigitRun=function(){var e,n;do e=this.next(),n=e.charCodeAt(0);while(n>47&&n<58);e!=t.QueryLexer.EOS&&this.backup()},t.QueryLexer.prototype.more=function(){return this.pos1&&(e.backup(),e.emit(t.QueryLexer.TERM)),e.ignore(),e.more())return t.QueryLexer.lexText},t.QueryLexer.lexEditDistance=function(e){return e.ignore(),e.acceptDigitRun(),e.emit(t.QueryLexer.EDIT_DISTANCE),t.QueryLexer.lexText},t.QueryLexer.lexBoost=function(e){return e.ignore(),e.acceptDigitRun(),e.emit(t.QueryLexer.BOOST),t.QueryLexer.lexText},t.QueryLexer.lexEOS=function(e){e.width()>0&&e.emit(t.QueryLexer.TERM)},t.QueryLexer.termSeparator=t.tokenizer.separator,t.QueryLexer.lexText=function(e){for(;;){var n=e.next();if(n==t.QueryLexer.EOS)return t.QueryLexer.lexEOS;if(n.charCodeAt(0)==92){e.escapeCharacter();continue}if(n==":")return t.QueryLexer.lexField;if(n=="~")return e.backup(),e.width()>0&&e.emit(t.QueryLexer.TERM),t.QueryLexer.lexEditDistance;if(n=="^")return e.backup(),e.width()>0&&e.emit(t.QueryLexer.TERM),t.QueryLexer.lexBoost;if(n=="+"&&e.width()===1||n=="-"&&e.width()===1)return e.emit(t.QueryLexer.PRESENCE),t.QueryLexer.lexText;if(n.match(t.QueryLexer.termSeparator))return t.QueryLexer.lexTerm}},t.QueryParser=function(e,n){this.lexer=new t.QueryLexer(e),this.query=n,this.currentClause={},this.lexemeIdx=0},t.QueryParser.prototype.parse=function(){this.lexer.run(),this.lexemes=this.lexer.lexemes;for(var e=t.QueryParser.parseClause;e;)e=e(this);return this.query},t.QueryParser.prototype.peekLexeme=function(){return this.lexemes[this.lexemeIdx]},t.QueryParser.prototype.consumeLexeme=function(){var e=this.peekLexeme();return this.lexemeIdx+=1,e},t.QueryParser.prototype.nextClause=function(){var e=this.currentClause;this.query.clause(e),this.currentClause={}},t.QueryParser.parseClause=function(e){var n=e.peekLexeme();if(n!=null)switch(n.type){case t.QueryLexer.PRESENCE:return t.QueryParser.parsePresence;case t.QueryLexer.FIELD:return t.QueryParser.parseField;case t.QueryLexer.TERM:return t.QueryParser.parseTerm;default:var r="expected either a field or a term, found "+n.type;throw n.str.length>=1&&(r+=" with value '"+n.str+"'"),new t.QueryParseError(r,n.start,n.end)}},t.QueryParser.parsePresence=function(e){var n=e.consumeLexeme();if(n!=null){switch(n.str){case"-":e.currentClause.presence=t.Query.presence.PROHIBITED;break;case"+":e.currentClause.presence=t.Query.presence.REQUIRED;break;default:var r="unrecognised presence operator'"+n.str+"'";throw new t.QueryParseError(r,n.start,n.end)}var i=e.peekLexeme();if(i==null){var r="expecting term or field, found nothing";throw new t.QueryParseError(r,n.start,n.end)}switch(i.type){case t.QueryLexer.FIELD:return t.QueryParser.parseField;case t.QueryLexer.TERM:return t.QueryParser.parseTerm;default:var r="expecting term or field, found '"+i.type+"'";throw new t.QueryParseError(r,i.start,i.end)}}},t.QueryParser.parseField=function(e){var n=e.consumeLexeme();if(n!=null){if(e.query.allFields.indexOf(n.str)==-1){var r=e.query.allFields.map(function(o){return"'"+o+"'"}).join(", "),i="unrecognised field '"+n.str+"', possible fields: "+r;throw new t.QueryParseError(i,n.start,n.end)}e.currentClause.fields=[n.str];var s=e.peekLexeme();if(s==null){var i="expecting term, found nothing";throw new t.QueryParseError(i,n.start,n.end)}switch(s.type){case t.QueryLexer.TERM:return t.QueryParser.parseTerm;default:var i="expecting term, found '"+s.type+"'";throw new t.QueryParseError(i,s.start,s.end)}}},t.QueryParser.parseTerm=function(e){var n=e.consumeLexeme();if(n!=null){e.currentClause.term=n.str.toLowerCase(),n.str.indexOf("*")!=-1&&(e.currentClause.usePipeline=!1);var r=e.peekLexeme();if(r==null){e.nextClause();return}switch(r.type){case t.QueryLexer.TERM:return e.nextClause(),t.QueryParser.parseTerm;case t.QueryLexer.FIELD:return e.nextClause(),t.QueryParser.parseField;case t.QueryLexer.EDIT_DISTANCE:return t.QueryParser.parseEditDistance;case t.QueryLexer.BOOST:return t.QueryParser.parseBoost;case t.QueryLexer.PRESENCE:return e.nextClause(),t.QueryParser.parsePresence;default:var i="Unexpected lexeme type '"+r.type+"'";throw new t.QueryParseError(i,r.start,r.end)}}},t.QueryParser.parseEditDistance=function(e){var n=e.consumeLexeme();if(n!=null){var r=parseInt(n.str,10);if(isNaN(r)){var i="edit distance must be numeric";throw new t.QueryParseError(i,n.start,n.end)}e.currentClause.editDistance=r;var s=e.peekLexeme();if(s==null){e.nextClause();return}switch(s.type){case t.QueryLexer.TERM:return e.nextClause(),t.QueryParser.parseTerm;case t.QueryLexer.FIELD:return e.nextClause(),t.QueryParser.parseField;case t.QueryLexer.EDIT_DISTANCE:return t.QueryParser.parseEditDistance;case t.QueryLexer.BOOST:return t.QueryParser.parseBoost;case t.QueryLexer.PRESENCE:return e.nextClause(),t.QueryParser.parsePresence;default:var i="Unexpected lexeme type '"+s.type+"'";throw new t.QueryParseError(i,s.start,s.end)}}},t.QueryParser.parseBoost=function(e){var n=e.consumeLexeme();if(n!=null){var r=parseInt(n.str,10);if(isNaN(r)){var i="boost must be numeric";throw new t.QueryParseError(i,n.start,n.end)}e.currentClause.boost=r;var s=e.peekLexeme();if(s==null){e.nextClause();return}switch(s.type){case t.QueryLexer.TERM:return e.nextClause(),t.QueryParser.parseTerm;case t.QueryLexer.FIELD:return e.nextClause(),t.QueryParser.parseField;case t.QueryLexer.EDIT_DISTANCE:return t.QueryParser.parseEditDistance;case t.QueryLexer.BOOST:return t.QueryParser.parseBoost;case t.QueryLexer.PRESENCE:return e.nextClause(),t.QueryParser.parsePresence;default:var i="Unexpected lexeme type '"+s.type+"'";throw new t.QueryParseError(i,s.start,s.end)}}},function(e,n){typeof define=="function"&&define.amd?define(n):typeof se=="object"?oe.exports=n():e.lunr=n()}(this,function(){return t})})()});var re=[];function G(t,e){re.push({selector:e,constructor:t})}var U=class{constructor(){this.alwaysVisibleMember=null;this.createComponents(document.body),this.ensureFocusedElementVisible(),this.listenForCodeCopies(),window.addEventListener("hashchange",()=>this.ensureFocusedElementVisible()),document.body.style.display||(this.ensureFocusedElementVisible(),this.updateIndexVisibility(),this.scrollToHash())}createComponents(e){re.forEach(n=>{e.querySelectorAll(n.selector).forEach(r=>{r.dataset.hasInstance||(new n.constructor({el:r,app:this}),r.dataset.hasInstance=String(!0))})})}filterChanged(){this.ensureFocusedElementVisible()}showPage(){document.body.style.display&&(console.log("Show page"),document.body.style.removeProperty("display"),this.ensureFocusedElementVisible(),this.updateIndexVisibility(),this.scrollToHash())}scrollToHash(){if(location.hash){console.log("Scorlling");let e=document.getElementById(location.hash.substring(1));if(!e)return;e.scrollIntoView({behavior:"instant",block:"start"})}}ensureActivePageVisible(){let e=document.querySelector(".tsd-navigation .current"),n=e?.parentElement;for(;n&&!n.classList.contains(".tsd-navigation");)n instanceof HTMLDetailsElement&&(n.open=!0),n=n.parentElement;if(e&&!e.checkVisibility()){let r=e.getBoundingClientRect().top-document.documentElement.clientHeight/4;document.querySelector(".site-menu").scrollTop=r}}updateIndexVisibility(){let e=document.querySelector(".tsd-index-content"),n=e?.open;e&&(e.open=!0),document.querySelectorAll(".tsd-index-section").forEach(r=>{r.style.display="block";let i=Array.from(r.querySelectorAll(".tsd-index-link")).every(s=>s.offsetParent==null);r.style.display=i?"none":"block"}),e&&(e.open=n)}ensureFocusedElementVisible(){if(this.alwaysVisibleMember&&(this.alwaysVisibleMember.classList.remove("always-visible"),this.alwaysVisibleMember.firstElementChild.remove(),this.alwaysVisibleMember=null),!location.hash)return;let e=document.getElementById(location.hash.substring(1));if(!e)return;let n=e.parentElement;for(;n&&n.tagName!=="SECTION";)n=n.parentElement;if(n&&n.offsetParent==null){this.alwaysVisibleMember=n,n.classList.add("always-visible");let r=document.createElement("p");r.classList.add("warning"),r.textContent="This member is normally hidden due to your filter settings.",n.prepend(r)}}listenForCodeCopies(){document.querySelectorAll("pre > button").forEach(e=>{let n;e.addEventListener("click",()=>{e.previousElementSibling instanceof HTMLElement&&navigator.clipboard.writeText(e.previousElementSibling.innerText.trim()),e.textContent="Copied!",e.classList.add("visible"),clearTimeout(n),n=setTimeout(()=>{e.classList.remove("visible"),n=setTimeout(()=>{e.textContent="Copy"},100)},1e3)})})}};var ie=(t,e=100)=>{let n;return()=>{clearTimeout(n),n=setTimeout(()=>t(),e)}};var de=De(ae());async function le(t,e){if(!window.searchData)return;let n=await fetch(window.searchData),r=new Blob([await n.arrayBuffer()]).stream().pipeThrough(new DecompressionStream("gzip")),i=await new Response(r).json();t.data=i,t.index=de.Index.load(i.index),e.classList.remove("loading"),e.classList.add("ready")}function he(){let t=document.getElementById("tsd-search");if(!t)return;let e={base:t.dataset.base+"/"},n=document.getElementById("tsd-search-script");t.classList.add("loading"),n&&(n.addEventListener("error",()=>{t.classList.remove("loading"),t.classList.add("failure")}),n.addEventListener("load",()=>{le(e,t)}),le(e,t));let r=document.querySelector("#tsd-search input"),i=document.querySelector("#tsd-search .results");if(!r||!i)throw new Error("The input field or the result list wrapper was not found");let s=!1;i.addEventListener("mousedown",()=>s=!0),i.addEventListener("mouseup",()=>{s=!1,t.classList.remove("has-focus")}),r.addEventListener("focus",()=>t.classList.add("has-focus")),r.addEventListener("blur",()=>{s||(s=!1,t.classList.remove("has-focus"))}),Ae(t,i,r,e)}function Ae(t,e,n,r){n.addEventListener("input",ie(()=>{Ve(t,e,n,r)},200));let i=!1;n.addEventListener("keydown",s=>{i=!0,s.key=="Enter"?Ne(e,n):s.key=="Escape"?n.blur():s.key=="ArrowUp"?ue(e,-1):s.key==="ArrowDown"?ue(e,1):i=!1}),n.addEventListener("keypress",s=>{i&&s.preventDefault()}),document.body.addEventListener("keydown",s=>{s.altKey||s.ctrlKey||s.metaKey||!n.matches(":focus")&&s.key==="/"&&(n.focus(),s.preventDefault())})}function Ve(t,e,n,r){if(!r.index||!r.data)return;e.textContent="";let i=n.value.trim(),s;if(i){let o=i.split(" ").map(a=>a.length?`*${a}*`:"").join(" ");s=r.index.search(o)}else s=[];for(let o=0;oa.score-o.score);for(let o=0,a=Math.min(10,s.length);o`,d=ce(l.name,i);globalThis.DEBUG_SEARCH_WEIGHTS&&(d+=` (score: ${s[o].score.toFixed(2)})`),l.parent&&(d=` + ${ce(l.parent,i)}.${d}`);let y=document.createElement("li");y.classList.value=l.classes??"";let p=document.createElement("a");p.href=r.base+l.url,p.innerHTML=u+d,y.append(p),e.appendChild(y)}}function ue(t,e){let n=t.querySelector(".current");if(!n)n=t.querySelector(e==1?"li:first-child":"li:last-child"),n&&n.classList.add("current");else{let r=n;if(e===1)do r=r.nextElementSibling??void 0;while(r instanceof HTMLElement&&r.offsetParent==null);else do r=r.previousElementSibling??void 0;while(r instanceof HTMLElement&&r.offsetParent==null);r&&(n.classList.remove("current"),r.classList.add("current"))}}function Ne(t,e){let n=t.querySelector(".current");if(n||(n=t.querySelector("li:first-child")),n){let r=n.querySelector("a");r&&(window.location.href=r.href),e.blur()}}function ce(t,e){if(e==="")return t;let n=t.toLocaleLowerCase(),r=e.toLocaleLowerCase(),i=[],s=0,o=n.indexOf(r);for(;o!=-1;)i.push(K(t.substring(s,o)),`${K(t.substring(o,o+r.length))}`),s=o+r.length,o=n.indexOf(r,s);return i.push(K(t.substring(s))),i.join("")}var He={"&":"&","<":"<",">":">","'":"'",'"':"""};function K(t){return t.replace(/[&<>"'"]/g,e=>He[e])}var I=class{constructor(e){this.el=e.el,this.app=e.app}};var F="mousedown",fe="mousemove",H="mouseup",J={x:0,y:0},pe=!1,ee=!1,Be=!1,D=!1,me=/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent);document.documentElement.classList.add(me?"is-mobile":"not-mobile");me&&"ontouchstart"in document.documentElement&&(Be=!0,F="touchstart",fe="touchmove",H="touchend");document.addEventListener(F,t=>{ee=!0,D=!1;let e=F=="touchstart"?t.targetTouches[0]:t;J.y=e.pageY||0,J.x=e.pageX||0});document.addEventListener(fe,t=>{if(ee&&!D){let e=F=="touchstart"?t.targetTouches[0]:t,n=J.x-(e.pageX||0),r=J.y-(e.pageY||0);D=Math.sqrt(n*n+r*r)>10}});document.addEventListener(H,()=>{ee=!1});document.addEventListener("click",t=>{pe&&(t.preventDefault(),t.stopImmediatePropagation(),pe=!1)});var X=class extends I{constructor(e){super(e),this.className=this.el.dataset.toggle||"",this.el.addEventListener(H,n=>this.onPointerUp(n)),this.el.addEventListener("click",n=>n.preventDefault()),document.addEventListener(F,n=>this.onDocumentPointerDown(n)),document.addEventListener(H,n=>this.onDocumentPointerUp(n))}setActive(e){if(this.active==e)return;this.active=e,document.documentElement.classList.toggle("has-"+this.className,e),this.el.classList.toggle("active",e);let n=(this.active?"to-has-":"from-has-")+this.className;document.documentElement.classList.add(n),setTimeout(()=>document.documentElement.classList.remove(n),500)}onPointerUp(e){D||(this.setActive(!0),e.preventDefault())}onDocumentPointerDown(e){if(this.active){if(e.target.closest(".col-sidebar, .tsd-filter-group"))return;this.setActive(!1)}}onDocumentPointerUp(e){if(!D&&this.active&&e.target.closest(".col-sidebar")){let n=e.target.closest("a");if(n){let r=window.location.href;r.indexOf("#")!=-1&&(r=r.substring(0,r.indexOf("#"))),n.href.substring(0,r.length)==r&&setTimeout(()=>this.setActive(!1),250)}}}};var te;try{te=localStorage}catch{te={getItem(){return null},setItem(){}}}var Q=te;var ye=document.head.appendChild(document.createElement("style"));ye.dataset.for="filters";var Y=class extends I{constructor(e){super(e),this.key=`filter-${this.el.name}`,this.value=this.el.checked,this.el.addEventListener("change",()=>{this.setLocalStorage(this.el.checked)}),this.setLocalStorage(this.fromLocalStorage()),ye.innerHTML+=`html:not(.${this.key}) .tsd-is-${this.el.name} { display: none; } +`,this.app.updateIndexVisibility()}fromLocalStorage(){let e=Q.getItem(this.key);return e?e==="true":this.el.checked}setLocalStorage(e){Q.setItem(this.key,e.toString()),this.value=e,this.handleValueChange()}handleValueChange(){this.el.checked=this.value,document.documentElement.classList.toggle(this.key,this.value),this.app.filterChanged(),this.app.updateIndexVisibility()}};var Z=class extends I{constructor(e){super(e),this.summary=this.el.querySelector(".tsd-accordion-summary"),this.icon=this.summary.querySelector("svg"),this.key=`tsd-accordion-${this.summary.dataset.key??this.summary.textContent.trim().replace(/\s+/g,"-").toLowerCase()}`;let n=Q.getItem(this.key);this.el.open=n?n==="true":this.el.open,this.el.addEventListener("toggle",()=>this.update());let r=this.summary.querySelector("a");r&&r.addEventListener("click",()=>{location.assign(r.href)}),this.update()}update(){this.icon.style.transform=`rotate(${this.el.open?0:-90}deg)`,Q.setItem(this.key,this.el.open.toString())}};function ge(t){let e=Q.getItem("tsd-theme")||"os";t.value=e,ve(e),t.addEventListener("change",()=>{Q.setItem("tsd-theme",t.value),ve(t.value)})}function ve(t){document.documentElement.dataset.theme=t}var Le;function be(){let t=document.getElementById("tsd-nav-script");t&&(t.addEventListener("load",xe),xe())}async function xe(){let t=document.getElementById("tsd-nav-container");if(!t||!window.navigationData)return;let n=await(await fetch(window.navigationData)).arrayBuffer(),r=new Blob([n]).stream().pipeThrough(new DecompressionStream("gzip")),i=await new Response(r).json();Le=t.dataset.base+"/",t.innerHTML="";for(let s of i)we(s,t,[]);window.app.createComponents(t),window.app.showPage(),window.app.ensureActivePageVisible()}function we(t,e,n){let r=e.appendChild(document.createElement("li"));if(t.children){let i=[...n,t.text],s=r.appendChild(document.createElement("details"));s.className=t.class?`${t.class} tsd-index-accordion`:"tsd-index-accordion",s.dataset.key=i.join("$");let o=s.appendChild(document.createElement("summary"));o.className="tsd-accordion-summary",o.innerHTML='',Ee(t,o);let a=s.appendChild(document.createElement("div"));a.className="tsd-accordion-details";let l=a.appendChild(document.createElement("ul"));l.className="tsd-nested-navigation";for(let u of t.children)we(u,l,i)}else Ee(t,r,t.class)}function Ee(t,e,n){if(t.path){let r=e.appendChild(document.createElement("a"));r.href=Le+t.path,n&&(r.className=n),location.pathname===r.pathname&&r.classList.add("current"),t.kind&&(r.innerHTML=``),r.appendChild(document.createElement("span")).textContent=t.text}else e.appendChild(document.createElement("span")).textContent=t.text}G(X,"a[data-toggle]");G(Z,".tsd-index-accordion");G(Y,".tsd-filter-item input[type=checkbox]");var Se=document.getElementById("tsd-theme");Se&&ge(Se);var je=new U;Object.defineProperty(window,"app",{value:je});he();be();})(); +/*! Bundled license information: + +lunr/lunr.js: + (** + * lunr - http://lunrjs.com - A bit like Solr, but much smaller and not as bright - 2.3.9 + * Copyright (C) 2020 Oliver Nightingale + * @license MIT + *) + (*! + * lunr.utils + * Copyright (C) 2020 Oliver Nightingale + *) + (*! + * lunr.Set + * Copyright (C) 2020 Oliver Nightingale + *) + (*! + * lunr.tokenizer + * Copyright (C) 2020 Oliver Nightingale + *) + (*! + * lunr.Pipeline + * Copyright (C) 2020 Oliver Nightingale + *) + (*! + * lunr.Vector + * Copyright (C) 2020 Oliver Nightingale + *) + (*! + * lunr.stemmer + * Copyright (C) 2020 Oliver Nightingale + * Includes code from - http://tartarus.org/~martin/PorterStemmer/js.txt + *) + (*! + * lunr.stopWordFilter + * Copyright (C) 2020 Oliver Nightingale + *) + (*! + * lunr.trimmer + * Copyright (C) 2020 Oliver Nightingale + *) + (*! + * lunr.TokenSet + * Copyright (C) 2020 Oliver Nightingale + *) + (*! + * lunr.Index + * Copyright (C) 2020 Oliver Nightingale + *) + (*! + * lunr.Builder + * Copyright (C) 2020 Oliver Nightingale + *) +*/ diff --git a/9.0.0/assets/navigation.js b/9.0.0/assets/navigation.js new file mode 100644 index 00000000..e45419e3 --- /dev/null +++ b/9.0.0/assets/navigation.js @@ -0,0 +1 @@ +window.navigationData = "data:application/octet-stream;base64,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" \ No newline at end of file diff --git a/9.0.0/assets/search.js b/9.0.0/assets/search.js new file mode 100644 index 00000000..e96703e0 --- /dev/null +++ b/9.0.0/assets/search.js @@ -0,0 +1 @@ +window.searchData = "data:application/octet-stream;base64,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"; \ No newline at end of file diff --git a/9.0.0/assets/style.css b/9.0.0/assets/style.css new file mode 100644 index 00000000..778b9492 --- /dev/null +++ b/9.0.0/assets/style.css @@ -0,0 +1,1412 @@ +:root { + /* Light */ + --light-color-background: #f2f4f8; + --light-color-background-secondary: #eff0f1; + --light-color-warning-text: #222; + --light-color-background-warning: #e6e600; + --light-color-icon-background: var(--light-color-background); + --light-color-accent: #c5c7c9; + --light-color-active-menu-item: var(--light-color-accent); + --light-color-text: #222; + --light-color-text-aside: #6e6e6e; + --light-color-link: #1f70c2; + + --light-color-ts-keyword: #056bd6; + --light-color-ts-project: #b111c9; + --light-color-ts-module: var(--light-color-ts-project); + --light-color-ts-namespace: var(--light-color-ts-project); + --light-color-ts-enum: #7e6f15; + --light-color-ts-enum-member: var(--light-color-ts-enum); + --light-color-ts-variable: #4760ec; + --light-color-ts-function: #572be7; + --light-color-ts-class: #1f70c2; + --light-color-ts-interface: #108024; + --light-color-ts-constructor: var(--light-color-ts-class); + --light-color-ts-property: var(--light-color-ts-variable); + --light-color-ts-method: var(--light-color-ts-function); + --light-color-ts-call-signature: var(--light-color-ts-method); + --light-color-ts-index-signature: var(--light-color-ts-property); + --light-color-ts-constructor-signature: var(--light-color-ts-constructor); + --light-color-ts-parameter: var(--light-color-ts-variable); + /* type literal not included as links will never be generated to it */ + --light-color-ts-type-parameter: #a55c0e; + --light-color-ts-accessor: var(--light-color-ts-property); + --light-color-ts-get-signature: var(--light-color-ts-accessor); + --light-color-ts-set-signature: var(--light-color-ts-accessor); + --light-color-ts-type-alias: #d51270; + /* reference not included as links will be colored with the kind that it points to */ + + --light-external-icon: url("data:image/svg+xml;utf8,"); + --light-color-scheme: light; + + /* Dark */ + --dark-color-background: #2b2e33; + --dark-color-background-secondary: #1e2024; + --dark-color-background-warning: #bebe00; + --dark-color-warning-text: #222; + --dark-color-icon-background: var(--dark-color-background-secondary); + --dark-color-accent: #9096a2; + --dark-color-active-menu-item: #5d5d6a; + --dark-color-text: #f5f5f5; + --dark-color-text-aside: #dddddd; + --dark-color-link: #00aff4; + + --dark-color-ts-keyword: #3399ff; + --dark-color-ts-project: #e358ff; + --dark-color-ts-module: var(--dark-color-ts-project); + --dark-color-ts-namespace: var(--dark-color-ts-project); + --dark-color-ts-enum: #f4d93e; + --dark-color-ts-enum-member: var(--dark-color-ts-enum); + --dark-color-ts-variable: #798dff; + --dark-color-ts-function: #a280ff; + --dark-color-ts-class: #8ac4ff; + --dark-color-ts-interface: #6cff87; + --dark-color-ts-constructor: var(--dark-color-ts-class); + --dark-color-ts-property: var(--dark-color-ts-variable); + --dark-color-ts-method: var(--dark-color-ts-function); + --dark-color-ts-call-signature: var(--dark-color-ts-method); + --dark-color-ts-index-signature: var(--dark-color-ts-property); + --dark-color-ts-constructor-signature: var(--dark-color-ts-constructor); + --dark-color-ts-parameter: var(--dark-color-ts-variable); + /* type literal not included as links will never be generated to it */ + --dark-color-ts-type-parameter: #e07d13; + --dark-color-ts-accessor: var(--dark-color-ts-property); + --dark-color-ts-get-signature: var(--dark-color-ts-accessor); + --dark-color-ts-set-signature: var(--dark-color-ts-accessor); + --dark-color-ts-type-alias: #ff6492; + /* reference not included as links will be colored with the kind that it points to */ + + --dark-external-icon: url("data:image/svg+xml;utf8,"); + --dark-color-scheme: dark; +} + +@media (prefers-color-scheme: light) { + :root { + --color-background: var(--light-color-background); + --color-background-secondary: var(--light-color-background-secondary); + --color-background-warning: var(--light-color-background-warning); + --color-warning-text: var(--light-color-warning-text); + --color-icon-background: var(--light-color-icon-background); + --color-accent: var(--light-color-accent); + --color-active-menu-item: var(--light-color-active-menu-item); + --color-text: var(--light-color-text); + --color-text-aside: var(--light-color-text-aside); + --color-link: var(--light-color-link); + + --color-ts-keyword: var(--light-color-ts-keyword); + --color-ts-module: var(--light-color-ts-module); + --color-ts-namespace: var(--light-color-ts-namespace); + --color-ts-enum: var(--light-color-ts-enum); + --color-ts-enum-member: var(--light-color-ts-enum-member); + --color-ts-variable: var(--light-color-ts-variable); + --color-ts-function: var(--light-color-ts-function); + --color-ts-class: var(--light-color-ts-class); + --color-ts-interface: var(--light-color-ts-interface); + --color-ts-constructor: var(--light-color-ts-constructor); + --color-ts-property: var(--light-color-ts-property); + --color-ts-method: var(--light-color-ts-method); + --color-ts-call-signature: var(--light-color-ts-call-signature); + --color-ts-index-signature: var(--light-color-ts-index-signature); + --color-ts-constructor-signature: var( + --light-color-ts-constructor-signature + ); + --color-ts-parameter: var(--light-color-ts-parameter); + --color-ts-type-parameter: var(--light-color-ts-type-parameter); + --color-ts-accessor: var(--light-color-ts-accessor); + --color-ts-get-signature: var(--light-color-ts-get-signature); + --color-ts-set-signature: var(--light-color-ts-set-signature); + --color-ts-type-alias: var(--light-color-ts-type-alias); + + --external-icon: var(--light-external-icon); + --color-scheme: var(--light-color-scheme); + } +} + +@media (prefers-color-scheme: dark) { + :root { + --color-background: var(--dark-color-background); + --color-background-secondary: var(--dark-color-background-secondary); + --color-background-warning: var(--dark-color-background-warning); + --color-warning-text: var(--dark-color-warning-text); + --color-icon-background: var(--dark-color-icon-background); + --color-accent: var(--dark-color-accent); + --color-active-menu-item: var(--dark-color-active-menu-item); + --color-text: var(--dark-color-text); + --color-text-aside: var(--dark-color-text-aside); + --color-link: var(--dark-color-link); + + --color-ts-keyword: var(--dark-color-ts-keyword); + --color-ts-module: var(--dark-color-ts-module); + --color-ts-namespace: var(--dark-color-ts-namespace); + --color-ts-enum: var(--dark-color-ts-enum); + --color-ts-enum-member: var(--dark-color-ts-enum-member); + --color-ts-variable: var(--dark-color-ts-variable); + --color-ts-function: var(--dark-color-ts-function); + --color-ts-class: var(--dark-color-ts-class); + --color-ts-interface: var(--dark-color-ts-interface); + --color-ts-constructor: var(--dark-color-ts-constructor); + --color-ts-property: var(--dark-color-ts-property); + --color-ts-method: var(--dark-color-ts-method); + --color-ts-call-signature: var(--dark-color-ts-call-signature); + --color-ts-index-signature: var(--dark-color-ts-index-signature); + --color-ts-constructor-signature: var( + --dark-color-ts-constructor-signature + ); + --color-ts-parameter: var(--dark-color-ts-parameter); + --color-ts-type-parameter: var(--dark-color-ts-type-parameter); + --color-ts-accessor: var(--dark-color-ts-accessor); + --color-ts-get-signature: var(--dark-color-ts-get-signature); + --color-ts-set-signature: var(--dark-color-ts-set-signature); + --color-ts-type-alias: var(--dark-color-ts-type-alias); + + --external-icon: var(--dark-external-icon); + --color-scheme: var(--dark-color-scheme); + } +} + +html { + color-scheme: var(--color-scheme); +} + +body { + margin: 0; +} + +:root[data-theme="light"] { + --color-background: var(--light-color-background); + --color-background-secondary: var(--light-color-background-secondary); + --color-background-warning: var(--light-color-background-warning); + --color-warning-text: var(--light-color-warning-text); + --color-icon-background: var(--light-color-icon-background); + --color-accent: var(--light-color-accent); + --color-active-menu-item: var(--light-color-active-menu-item); + --color-text: var(--light-color-text); + --color-text-aside: var(--light-color-text-aside); + --color-link: var(--light-color-link); + + --color-ts-keyword: var(--light-color-ts-keyword); + --color-ts-module: var(--light-color-ts-module); + --color-ts-namespace: var(--light-color-ts-namespace); + --color-ts-enum: var(--light-color-ts-enum); + --color-ts-enum-member: var(--light-color-ts-enum-member); + --color-ts-variable: var(--light-color-ts-variable); + --color-ts-function: var(--light-color-ts-function); + --color-ts-class: var(--light-color-ts-class); + --color-ts-interface: var(--light-color-ts-interface); + --color-ts-constructor: var(--light-color-ts-constructor); + --color-ts-property: var(--light-color-ts-property); + --color-ts-method: var(--light-color-ts-method); + --color-ts-call-signature: var(--light-color-ts-call-signature); + --color-ts-index-signature: var(--light-color-ts-index-signature); + --color-ts-constructor-signature: var( + --light-color-ts-constructor-signature + ); + --color-ts-parameter: var(--light-color-ts-parameter); + --color-ts-type-parameter: var(--light-color-ts-type-parameter); + --color-ts-accessor: var(--light-color-ts-accessor); + --color-ts-get-signature: var(--light-color-ts-get-signature); + --color-ts-set-signature: var(--light-color-ts-set-signature); + --color-ts-type-alias: var(--light-color-ts-type-alias); + + --external-icon: var(--light-external-icon); + --color-scheme: var(--light-color-scheme); +} + +:root[data-theme="dark"] { + --color-background: var(--dark-color-background); + --color-background-secondary: var(--dark-color-background-secondary); + --color-background-warning: var(--dark-color-background-warning); + --color-warning-text: var(--dark-color-warning-text); + --color-icon-background: var(--dark-color-icon-background); + --color-accent: var(--dark-color-accent); + --color-active-menu-item: var(--dark-color-active-menu-item); + --color-text: var(--dark-color-text); + --color-text-aside: var(--dark-color-text-aside); + --color-link: var(--dark-color-link); + + --color-ts-keyword: var(--dark-color-ts-keyword); + --color-ts-module: var(--dark-color-ts-module); + --color-ts-namespace: var(--dark-color-ts-namespace); + --color-ts-enum: var(--dark-color-ts-enum); + --color-ts-enum-member: var(--dark-color-ts-enum-member); + --color-ts-variable: var(--dark-color-ts-variable); + --color-ts-function: var(--dark-color-ts-function); + --color-ts-class: var(--dark-color-ts-class); + --color-ts-interface: var(--dark-color-ts-interface); + --color-ts-constructor: var(--dark-color-ts-constructor); + --color-ts-property: var(--dark-color-ts-property); + --color-ts-method: var(--dark-color-ts-method); + --color-ts-call-signature: var(--dark-color-ts-call-signature); + --color-ts-index-signature: var(--dark-color-ts-index-signature); + --color-ts-constructor-signature: var( + --dark-color-ts-constructor-signature + ); + --color-ts-parameter: var(--dark-color-ts-parameter); + --color-ts-type-parameter: var(--dark-color-ts-type-parameter); + --color-ts-accessor: var(--dark-color-ts-accessor); + --color-ts-get-signature: var(--dark-color-ts-get-signature); + --color-ts-set-signature: var(--dark-color-ts-set-signature); + --color-ts-type-alias: var(--dark-color-ts-type-alias); + + --external-icon: var(--dark-external-icon); + --color-scheme: var(--dark-color-scheme); +} + +.always-visible, +.always-visible .tsd-signatures { + display: inherit !important; +} + +h1, +h2, +h3, +h4, +h5, +h6 { + line-height: 1.2; +} + +h1 > a:not(.link), +h2 > a:not(.link), +h3 > a:not(.link), +h4 > a:not(.link), +h5 > a:not(.link), +h6 > a:not(.link) { + text-decoration: none; + color: var(--color-text); +} + +h1 { + font-size: 1.875rem; + margin: 0.67rem 0; +} + +h2 { + font-size: 1.5rem; + margin: 0.83rem 0; +} + +h3 { + font-size: 1.25rem; + margin: 1rem 0; +} + +h4 { + font-size: 1.05rem; + margin: 1.33rem 0; +} + +h5 { + font-size: 1rem; + margin: 1.5rem 0; +} + +h6 { + font-size: 0.875rem; + margin: 2.33rem 0; +} + +.uppercase { + text-transform: uppercase; +} + +dl, +menu, +ol, +ul { + margin: 1em 0; +} + +dd { + margin: 0 0 0 40px; +} + +.container { + max-width: 1700px; + padding: 0 2rem; +} + +/* Footer */ +footer { + border-top: 1px solid var(--color-accent); + padding-top: 1rem; + padding-bottom: 1rem; + max-height: 3.5rem; +} +.tsd-generator { + margin: 0 1em; +} + +.container-main { + margin: 0 auto; + /* toolbar, footer, margin */ + min-height: calc(100vh - 41px - 56px - 4rem); +} + +@keyframes fade-in { + from { + opacity: 0; + } + to { + opacity: 1; + } +} +@keyframes fade-out { + from { + opacity: 1; + visibility: visible; + } + to { + opacity: 0; + } +} +@keyframes fade-in-delayed { + 0% { + opacity: 0; + } + 33% { + opacity: 0; + } + 100% { + opacity: 1; + } +} +@keyframes fade-out-delayed { + 0% { + opacity: 1; + visibility: visible; + } + 66% { + opacity: 0; + } + 100% { + opacity: 0; + } +} +@keyframes pop-in-from-right { + from { + transform: translate(100%, 0); + } + to { + transform: translate(0, 0); + } +} +@keyframes pop-out-to-right { + from { + transform: translate(0, 0); + visibility: visible; + } + to { + transform: translate(100%, 0); + } +} +body { + background: var(--color-background); + font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Noto Sans", + Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji"; + font-size: 16px; + color: var(--color-text); +} + +a { + color: var(--color-link); + text-decoration: none; +} +a:hover { + text-decoration: underline; +} +a.external[target="_blank"] { + background-image: var(--external-icon); + background-position: top 3px right; + background-repeat: no-repeat; + padding-right: 13px; +} + +code, +pre { + font-family: Menlo, Monaco, Consolas, "Courier New", monospace; + padding: 0.2em; + margin: 0; + font-size: 0.875rem; + border-radius: 0.8em; +} + +pre { + position: relative; + white-space: pre; + white-space: pre-wrap; + word-wrap: break-word; + padding: 10px; + border: 1px solid var(--color-accent); +} +pre code { + padding: 0; + font-size: 100%; +} +pre > button { + position: absolute; + top: 10px; + right: 10px; + opacity: 0; + transition: opacity 0.1s; + box-sizing: border-box; +} +pre:hover > button, +pre > button.visible { + opacity: 1; +} + +blockquote { + margin: 1em 0; + padding-left: 1em; + border-left: 4px solid gray; +} + +.tsd-typography { + line-height: 1.333em; +} +.tsd-typography ul { + list-style: square; + padding: 0 0 0 20px; + margin: 0; +} +.tsd-typography .tsd-index-panel h3, +.tsd-index-panel .tsd-typography h3, +.tsd-typography h4, +.tsd-typography h5, +.tsd-typography h6 { + font-size: 1em; +} +.tsd-typography h5, +.tsd-typography h6 { + font-weight: normal; +} +.tsd-typography p, +.tsd-typography ul, +.tsd-typography ol { + margin: 1em 0; +} +.tsd-typography table { + border-collapse: collapse; + border: none; +} +.tsd-typography td, +.tsd-typography th { + padding: 6px 13px; + border: 1px solid var(--color-accent); +} +.tsd-typography thead, +.tsd-typography tr:nth-child(even) { + background-color: var(--color-background-secondary); +} + +.tsd-breadcrumb { + margin: 0; + padding: 0; + color: var(--color-text-aside); +} +.tsd-breadcrumb a { + color: var(--color-text-aside); + text-decoration: none; +} +.tsd-breadcrumb a:hover { + text-decoration: underline; +} +.tsd-breadcrumb li { + display: inline; +} +.tsd-breadcrumb li:after { + content: " / "; +} + +.tsd-comment-tags { + display: flex; + flex-direction: column; +} +dl.tsd-comment-tag-group { + display: flex; + align-items: center; + overflow: hidden; + margin: 0.5em 0; +} +dl.tsd-comment-tag-group dt { + display: flex; + margin-right: 0.5em; + font-size: 0.875em; + font-weight: normal; +} +dl.tsd-comment-tag-group dd { + margin: 0; +} +code.tsd-tag { + padding: 0.25em 0.4em; + border: 0.1em solid var(--color-accent); + margin-right: 0.25em; + font-size: 70%; +} +h1 code.tsd-tag:first-of-type { + margin-left: 0.25em; +} + +dl.tsd-comment-tag-group dd:before, +dl.tsd-comment-tag-group dd:after { + content: " "; +} +dl.tsd-comment-tag-group dd pre, +dl.tsd-comment-tag-group dd:after { + clear: both; +} +dl.tsd-comment-tag-group p { + margin: 0; +} + +.tsd-panel.tsd-comment .lead { + font-size: 1.1em; + line-height: 1.333em; + margin-bottom: 2em; +} +.tsd-panel.tsd-comment .lead:last-child { + margin-bottom: 0; +} + +.tsd-filter-visibility h4 { + font-size: 1rem; + padding-top: 0.75rem; + padding-bottom: 0.5rem; + margin: 0; +} +.tsd-filter-item:not(:last-child) { + margin-bottom: 0.5rem; +} +.tsd-filter-input { + display: flex; + width: fit-content; + width: -moz-fit-content; + align-items: center; + user-select: none; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + cursor: pointer; +} +.tsd-filter-input input[type="checkbox"] { + cursor: pointer; + position: absolute; + width: 1.5em; + height: 1.5em; + opacity: 0; +} +.tsd-filter-input input[type="checkbox"]:disabled { + pointer-events: none; +} +.tsd-filter-input svg { + cursor: pointer; + width: 1.5em; + height: 1.5em; + margin-right: 0.5em; + border-radius: 0.33em; + /* Leaving this at full opacity breaks event listeners on Firefox. + Don't remove unless you know what you're doing. */ + opacity: 0.99; +} +.tsd-filter-input input[type="checkbox"]:focus + svg { + transform: scale(0.95); +} +.tsd-filter-input input[type="checkbox"]:focus:not(:focus-visible) + svg { + transform: scale(1); +} +.tsd-checkbox-background { + fill: var(--color-accent); +} +input[type="checkbox"]:checked ~ svg .tsd-checkbox-checkmark { + stroke: var(--color-text); +} +.tsd-filter-input input:disabled ~ svg > .tsd-checkbox-background { + fill: var(--color-background); + stroke: var(--color-accent); + stroke-width: 0.25rem; +} +.tsd-filter-input input:disabled ~ svg > .tsd-checkbox-checkmark { + stroke: var(--color-accent); +} + +.tsd-theme-toggle { + padding-top: 0.75rem; +} +.tsd-theme-toggle > h4 { + display: inline; + vertical-align: middle; + margin-right: 0.75rem; +} + +.tsd-hierarchy { + list-style: square; + margin: 0; +} +.tsd-hierarchy .target { + font-weight: bold; +} + +.tsd-full-hierarchy:not(:last-child) { + margin-bottom: 1em; + padding-bottom: 1em; + border-bottom: 1px solid var(--color-accent); +} +.tsd-full-hierarchy, +.tsd-full-hierarchy ul { + list-style: none; + margin: 0; + padding: 0; +} +.tsd-full-hierarchy ul { + padding-left: 1.5rem; +} +.tsd-full-hierarchy a { + padding: 0.25rem 0 !important; + font-size: 1rem; + display: inline-flex; + align-items: center; + color: var(--color-text); +} + +.tsd-panel-group.tsd-index-group { + margin-bottom: 0; +} +.tsd-index-panel .tsd-index-list { + list-style: none; + line-height: 1.333em; + margin: 0; + padding: 0.25rem 0 0 0; + overflow: hidden; + display: grid; + grid-template-columns: repeat(3, 1fr); + column-gap: 1rem; + grid-template-rows: auto; +} +@media (max-width: 1024px) { + .tsd-index-panel .tsd-index-list { + grid-template-columns: repeat(2, 1fr); + } +} +@media (max-width: 768px) { + .tsd-index-panel .tsd-index-list { + grid-template-columns: repeat(1, 1fr); + } +} +.tsd-index-panel .tsd-index-list li { + -webkit-page-break-inside: avoid; + -moz-page-break-inside: avoid; + -ms-page-break-inside: avoid; + -o-page-break-inside: avoid; + page-break-inside: avoid; +} + +.tsd-flag { + display: inline-block; + padding: 0.25em 0.4em; + border-radius: 4px; + color: var(--color-comment-tag-text); + background-color: var(--color-comment-tag); + text-indent: 0; + font-size: 75%; + line-height: 1; + font-weight: normal; +} + +.tsd-anchor { + position: relative; + top: -100px; +} + +.tsd-member { + position: relative; +} +.tsd-member .tsd-anchor + h3 { + display: flex; + align-items: center; + margin-top: 0; + margin-bottom: 0; + border-bottom: none; +} + +.tsd-navigation.settings { + margin: 1rem 0; +} +.tsd-navigation > a, +.tsd-navigation .tsd-accordion-summary { + width: calc(100% - 0.25rem); + display: flex; + align-items: center; +} +.tsd-navigation a, +.tsd-navigation summary > span, +.tsd-page-navigation a { + display: flex; + width: calc(100% - 0.25rem); + align-items: center; + padding: 0.25rem; + color: var(--color-text); + text-decoration: none; + box-sizing: border-box; +} +.tsd-navigation a.current, +.tsd-page-navigation a.current { + background: var(--color-active-menu-item); +} +.tsd-navigation a:hover, +.tsd-page-navigation a:hover { + text-decoration: underline; +} +.tsd-navigation ul, +.tsd-page-navigation ul { + margin-top: 0; + margin-bottom: 0; + padding: 0; + list-style: none; +} +.tsd-navigation li, +.tsd-page-navigation li { + padding: 0; + max-width: 100%; +} +.tsd-nested-navigation { + margin-left: 3rem; +} +.tsd-nested-navigation > li > details { + margin-left: -1.5rem; +} +.tsd-small-nested-navigation { + margin-left: 1.5rem; +} +.tsd-small-nested-navigation > li > details { + margin-left: -1.5rem; +} + +.tsd-page-navigation ul { + padding-left: 1.75rem; +} + +#tsd-sidebar-links a { + margin-top: 0; + margin-bottom: 0.5rem; + line-height: 1.25rem; +} +#tsd-sidebar-links a:last-of-type { + margin-bottom: 0; +} + +a.tsd-index-link { + padding: 0.25rem 0 !important; + font-size: 1rem; + line-height: 1.25rem; + display: inline-flex; + align-items: center; + color: var(--color-text); +} +.tsd-accordion-summary { + list-style-type: none; /* hide marker on non-safari */ + outline: none; /* broken on safari, so just hide it */ +} +.tsd-accordion-summary::-webkit-details-marker { + display: none; /* hide marker on safari */ +} +.tsd-accordion-summary, +.tsd-accordion-summary a { + user-select: none; + -moz-user-select: none; + -webkit-user-select: none; + -ms-user-select: none; + + cursor: pointer; +} +.tsd-accordion-summary a { + width: calc(100% - 1.5rem); +} +.tsd-accordion-summary > * { + margin-top: 0; + margin-bottom: 0; + padding-top: 0; + padding-bottom: 0; +} +.tsd-index-accordion .tsd-accordion-summary > svg { + margin-left: 0.25rem; +} +.tsd-index-content > :not(:first-child) { + margin-top: 0.75rem; +} +.tsd-index-heading { + margin-top: 1.5rem; + margin-bottom: 0.75rem; +} + +.tsd-kind-icon { + margin-right: 0.5rem; + width: 1.25rem; + height: 1.25rem; + min-width: 1.25rem; + min-height: 1.25rem; +} +.tsd-kind-icon path { + transform-origin: center; + transform: scale(1.1); +} +.tsd-signature > .tsd-kind-icon { + margin-right: 0.8rem; +} + +.tsd-panel { + margin-bottom: 2.5rem; +} +.tsd-panel.tsd-member { + margin-bottom: 4rem; +} +.tsd-panel:empty { + display: none; +} +.tsd-panel > h1, +.tsd-panel > h2, +.tsd-panel > h3 { + margin: 1.5rem -1.5rem 0.75rem -1.5rem; + padding: 0 1.5rem 0.75rem 1.5rem; +} +.tsd-panel > h1.tsd-before-signature, +.tsd-panel > h2.tsd-before-signature, +.tsd-panel > h3.tsd-before-signature { + margin-bottom: 0; + border-bottom: none; +} + +.tsd-panel-group { + margin: 4rem 0; +} +.tsd-panel-group.tsd-index-group { + margin: 2rem 0; +} +.tsd-panel-group.tsd-index-group details { + margin: 2rem 0; +} + +#tsd-search { + transition: background-color 0.2s; +} +#tsd-search .title { + position: relative; + z-index: 2; +} +#tsd-search .field { + position: absolute; + left: 0; + top: 0; + right: 2.5rem; + height: 100%; +} +#tsd-search .field input { + box-sizing: border-box; + position: relative; + top: -50px; + z-index: 1; + width: 100%; + padding: 0 10px; + opacity: 0; + outline: 0; + border: 0; + background: transparent; + color: var(--color-text); +} +#tsd-search .field label { + position: absolute; + overflow: hidden; + right: -40px; +} +#tsd-search .field input, +#tsd-search .title, +#tsd-toolbar-links a { + transition: opacity 0.2s; +} +#tsd-search .results { + position: absolute; + visibility: hidden; + top: 40px; + width: 100%; + margin: 0; + padding: 0; + list-style: none; + box-shadow: 0 0 4px rgba(0, 0, 0, 0.25); +} +#tsd-search .results li { + background-color: var(--color-background); + line-height: initial; + padding: 4px; +} +#tsd-search .results li:nth-child(even) { + background-color: var(--color-background-secondary); +} +#tsd-search .results li.state { + display: none; +} +#tsd-search .results li.current:not(.no-results), +#tsd-search .results li:hover:not(.no-results) { + background-color: var(--color-accent); +} +#tsd-search .results a { + display: flex; + align-items: center; + padding: 0.25rem; + box-sizing: border-box; +} +#tsd-search .results a:before { + top: 10px; +} +#tsd-search .results span.parent { + color: var(--color-text-aside); + font-weight: normal; +} +#tsd-search.has-focus { + background-color: var(--color-accent); +} +#tsd-search.has-focus .field input { + top: 0; + opacity: 1; +} +#tsd-search.has-focus .title, +#tsd-search.has-focus #tsd-toolbar-links a { + z-index: 0; + opacity: 0; +} +#tsd-search.has-focus .results { + visibility: visible; +} +#tsd-search.loading .results li.state.loading { + display: block; +} +#tsd-search.failure .results li.state.failure { + display: block; +} + +#tsd-toolbar-links { + position: absolute; + top: 0; + right: 2rem; + height: 100%; + display: flex; + align-items: center; + justify-content: flex-end; +} +#tsd-toolbar-links a { + margin-left: 1.5rem; +} +#tsd-toolbar-links a:hover { + text-decoration: underline; +} + +.tsd-signature { + margin: 0 0 1rem 0; + padding: 1rem 0.5rem; + border: 1px solid var(--color-accent); + font-family: Menlo, Monaco, Consolas, "Courier New", monospace; + font-size: 14px; + overflow-x: auto; +} + +.tsd-signature-keyword { + color: var(--color-ts-keyword); + font-weight: normal; +} + +.tsd-signature-symbol { + color: var(--color-text-aside); + font-weight: normal; +} + +.tsd-signature-type { + font-style: italic; + font-weight: normal; +} + +.tsd-signatures { + padding: 0; + margin: 0 0 1em 0; + list-style-type: none; +} +.tsd-signatures .tsd-signature { + margin: 0; + border-color: var(--color-accent); + border-width: 1px 0; + transition: background-color 0.1s; +} +.tsd-description .tsd-signatures .tsd-signature { + border-width: 1px; +} + +ul.tsd-parameter-list, +ul.tsd-type-parameter-list { + list-style: square; + margin: 0; + padding-left: 20px; +} +ul.tsd-parameter-list > li.tsd-parameter-signature, +ul.tsd-type-parameter-list > li.tsd-parameter-signature { + list-style: none; + margin-left: -20px; +} +ul.tsd-parameter-list h5, +ul.tsd-type-parameter-list h5 { + font-size: 16px; + margin: 1em 0 0.5em 0; +} +.tsd-sources { + margin-top: 1rem; + font-size: 0.875em; +} +.tsd-sources a { + color: var(--color-text-aside); + text-decoration: underline; +} +.tsd-sources ul { + list-style: none; + padding: 0; +} + +.tsd-page-toolbar { + position: sticky; + z-index: 1; + top: 0; + left: 0; + width: 100%; + color: var(--color-text); + background: var(--color-background-secondary); + border-bottom: 1px var(--color-accent) solid; + transition: transform 0.3s ease-in-out; +} +.tsd-page-toolbar a { + color: var(--color-text); + text-decoration: none; +} +.tsd-page-toolbar a.title { + font-weight: bold; +} +.tsd-page-toolbar a.title:hover { + text-decoration: underline; +} +.tsd-page-toolbar .tsd-toolbar-contents { + display: flex; + justify-content: space-between; + height: 2.5rem; + margin: 0 auto; +} +.tsd-page-toolbar .table-cell { + position: relative; + white-space: nowrap; + line-height: 40px; +} +.tsd-page-toolbar .table-cell:first-child { + width: 100%; +} +.tsd-page-toolbar .tsd-toolbar-icon { + box-sizing: border-box; + line-height: 0; + padding: 12px 0; +} + +.tsd-widget { + display: inline-block; + overflow: hidden; + opacity: 0.8; + height: 40px; + transition: + opacity 0.1s, + background-color 0.2s; + vertical-align: bottom; + cursor: pointer; +} +.tsd-widget:hover { + opacity: 0.9; +} +.tsd-widget.active { + opacity: 1; + background-color: var(--color-accent); +} +.tsd-widget.no-caption { + width: 40px; +} +.tsd-widget.no-caption:before { + margin: 0; +} + +.tsd-widget.options, +.tsd-widget.menu { + display: none; +} +input[type="checkbox"] + .tsd-widget:before { + background-position: -120px 0; +} +input[type="checkbox"]:checked + .tsd-widget:before { + background-position: -160px 0; +} + +img { + max-width: 100%; +} + +.tsd-anchor-icon { + display: inline-flex; + align-items: center; + margin-left: 0.5rem; + vertical-align: middle; + color: var(--color-text); +} + +.tsd-anchor-icon svg { + width: 1em; + height: 1em; + visibility: hidden; +} + +.tsd-anchor-link:hover > .tsd-anchor-icon svg { + visibility: visible; +} + +.deprecated { + text-decoration: line-through !important; +} + +.warning { + padding: 1rem; + color: var(--color-warning-text); + background: var(--color-background-warning); +} + +.tsd-kind-project { + color: var(--color-ts-project); +} +.tsd-kind-module { + color: var(--color-ts-module); +} +.tsd-kind-namespace { + color: var(--color-ts-namespace); +} +.tsd-kind-enum { + color: var(--color-ts-enum); +} +.tsd-kind-enum-member { + color: var(--color-ts-enum-member); +} +.tsd-kind-variable { + color: var(--color-ts-variable); +} +.tsd-kind-function { + color: var(--color-ts-function); +} +.tsd-kind-class { + color: var(--color-ts-class); +} +.tsd-kind-interface { + color: var(--color-ts-interface); +} +.tsd-kind-constructor { + color: var(--color-ts-constructor); +} +.tsd-kind-property { + color: var(--color-ts-property); +} +.tsd-kind-method { + color: var(--color-ts-method); +} +.tsd-kind-call-signature { + color: var(--color-ts-call-signature); +} +.tsd-kind-index-signature { + color: var(--color-ts-index-signature); +} +.tsd-kind-constructor-signature { + color: var(--color-ts-constructor-signature); +} +.tsd-kind-parameter { + color: var(--color-ts-parameter); +} +.tsd-kind-type-literal { + color: var(--color-ts-type-literal); +} +.tsd-kind-type-parameter { + color: var(--color-ts-type-parameter); +} +.tsd-kind-accessor { + color: var(--color-ts-accessor); +} +.tsd-kind-get-signature { + color: var(--color-ts-get-signature); +} +.tsd-kind-set-signature { + color: var(--color-ts-set-signature); +} +.tsd-kind-type-alias { + color: var(--color-ts-type-alias); +} + +/* if we have a kind icon, don't color the text by kind */ +.tsd-kind-icon ~ span { + color: var(--color-text); +} + +* { + scrollbar-width: thin; + scrollbar-color: var(--color-accent) var(--color-icon-background); +} + +*::-webkit-scrollbar { + width: 0.75rem; +} + +*::-webkit-scrollbar-track { + background: var(--color-icon-background); +} + +*::-webkit-scrollbar-thumb { + background-color: var(--color-accent); + border-radius: 999rem; + border: 0.25rem solid var(--color-icon-background); +} + +/* mobile */ +@media (max-width: 769px) { + .tsd-widget.options, + .tsd-widget.menu { + display: inline-block; + } + + .container-main { + display: flex; + } + html .col-content { + float: none; + max-width: 100%; + width: 100%; + } + html .col-sidebar { + position: fixed !important; + overflow-y: auto; + -webkit-overflow-scrolling: touch; + z-index: 1024; + top: 0 !important; + bottom: 0 !important; + left: auto !important; + right: 0 !important; + padding: 1.5rem 1.5rem 0 0; + width: 75vw; + visibility: hidden; + background-color: var(--color-background); + transform: translate(100%, 0); + } + html .col-sidebar > *:last-child { + padding-bottom: 20px; + } + html .overlay { + content: ""; + display: block; + position: fixed; + z-index: 1023; + top: 0; + left: 0; + right: 0; + bottom: 0; + background-color: rgba(0, 0, 0, 0.75); + visibility: hidden; + } + + .to-has-menu .overlay { + animation: fade-in 0.4s; + } + + .to-has-menu .col-sidebar { + animation: pop-in-from-right 0.4s; + } + + .from-has-menu .overlay { + animation: fade-out 0.4s; + } + + .from-has-menu .col-sidebar { + animation: pop-out-to-right 0.4s; + } + + .has-menu body { + overflow: hidden; + } + .has-menu .overlay { + visibility: visible; + } + .has-menu .col-sidebar { + visibility: visible; + transform: translate(0, 0); + display: flex; + flex-direction: column; + gap: 1.5rem; + max-height: 100vh; + padding: 1rem 2rem; + } + .has-menu .tsd-navigation { + max-height: 100%; + } +} + +/* one sidebar */ +@media (min-width: 770px) { + .container-main { + display: grid; + grid-template-columns: minmax(0, 1fr) minmax(0, 2fr); + grid-template-areas: "sidebar content"; + margin: 2rem auto; + } + + .col-sidebar { + grid-area: sidebar; + } + .col-content { + grid-area: content; + padding: 0 1rem; + } +} +@media (min-width: 770px) and (max-width: 1399px) { + .col-sidebar { + max-height: calc(100vh - 2rem - 42px); + overflow: auto; + position: sticky; + top: 42px; + padding-top: 1rem; + } + .site-menu { + margin-top: 1rem; + } +} + +/* two sidebars */ +@media (min-width: 1200px) { + .container-main { + grid-template-columns: minmax(0, 1fr) minmax(0, 2.5fr) minmax(0, 20rem); + grid-template-areas: "sidebar content toc"; + } + + .col-sidebar { + display: contents; + } + + .page-menu { + grid-area: toc; + padding-left: 1rem; + } + .site-menu { + grid-area: sidebar; + } + + .site-menu { + margin-top: 1rem 0; + } + + .page-menu, + .site-menu { + max-height: calc(100vh - 2rem - 42px); + overflow: auto; + position: sticky; + top: 42px; + } +} diff --git a/9.0.0/classes/analyzer.Analyzer.html b/9.0.0/classes/analyzer.Analyzer.html new file mode 100644 index 00000000..c2997ff2 --- /dev/null +++ b/9.0.0/classes/analyzer.Analyzer.html @@ -0,0 +1,25 @@ +Analyzer | arangojs - v9.0.0

Represents an Analyzer in a database.Database.

+

Accessors

Methods

Accessors

  • get name(): string
  • Name of this Analyzer.

    +

    See also database.Database.

    +

    Returns string

Methods

  • Deletes the Analyzer from the database.

    +

    Parameters

    • force: boolean = false

      Whether the Analyzer should still be deleted even if it +is currently in use.

      +

    Returns Promise<ArangoApiResponse<{
        name: string;
    }>>

    Example

    const db = new Database();
    const analyzer = db.analyzer("some-analyzer");
    await analyzer.drop();
    // the Analyzer "some-analyzer" no longer exists +
    +
  • Checks whether the Analyzer exists.

    +

    Returns Promise<boolean>

    Example

    const db = new Database();
    const analyzer = db.analyzer("some-analyzer");
    const result = await analyzer.exists();
    // result indicates whether the Analyzer exists +
    +
  • Retrieves the Analyzer definition for the Analyzer.

    +

    Returns Promise<ArangoApiResponse<AnalyzerDescription>>

    Example

    const db = new Database();
    const analyzer = db.analyzer("some-analyzer");
    const definition = await analyzer.get();
    // definition contains the Analyzer definition +
    +
\ No newline at end of file diff --git a/9.0.0/classes/cursor.ArrayCursor.html b/9.0.0/classes/cursor.ArrayCursor.html new file mode 100644 index 00000000..66061d6b --- /dev/null +++ b/9.0.0/classes/cursor.ArrayCursor.html @@ -0,0 +1,130 @@ +ArrayCursor | arangojs - v9.0.0

Class ArrayCursor<T>

The ArrayCursor type represents a cursor returned from a +database.Database#query.

+

When using TypeScript, cursors can be cast to a specific item type in order +to increase type safety.

+

See also BatchedArrayCursor.

+

Example

const db = new Database();
const query = aql`FOR x IN 1..5 RETURN x`;
const result = await db.query(query) as ArrayCursor<number>; +
+

Example

const db = new Database();
const query = aql`FOR x IN 1..10 RETURN x`;
const cursor = await db.query(query);
for await (const value of cursor) {
// Process each value asynchronously
await processValue(value);
} +
+

Type Parameters

  • T = any

    Type to use for each item. Defaults to any.

    +

Accessors

  • get count(): undefined | number
  • Total number of documents in the query result. Only available if the +count option was used.

    +

    Returns undefined | number

  • get hasNext(): boolean
  • Whether the cursor has more values. If set to false, the cursor has +already been depleted and contains no more items.

    +

    Returns boolean

Methods

  • Enables use with for await to deplete the cursor by asynchronously +yielding every value in the cursor's remaining result set.

    +

    Note: If the result set spans multiple batches, any remaining batches +will only be fetched on demand. Depending on the cursor's TTL and the +processing speed, this may result in the server discarding the cursor +before it is fully depleted.

    +

    Returns AsyncGenerator<T, undefined, undefined>

    Example

    const cursor = await db.query(aql`
    FOR user IN users
    FILTER user.isActive
    RETURN user
    `);
    for await (const user of cursor) {
    console.log(user.email, user.isAdmin);
    } +
    +
  • Depletes the cursor, then returns an array containing all values in the +cursor's remaining result list.

    +

    Returns Promise<T[]>

    Example

    const cursor = await db.query(aql`FOR x IN 1..5 RETURN x`);
    const result = await cursor.all(); // [1, 2, 3, 4, 5]
    console.log(cursor.hasNext); // false +
    +
  • Depletes the cursor by applying the callback function to each item in +the cursor's remaining result list. Returns an array containing the +return values of callback for each item, flattened to a depth of 1.

    +

    Note: If the result set spans multiple batches, any remaining batches +will only be fetched on demand. Depending on the cursor's TTL and the +processing speed, this may result in the server discarding the cursor +before it is fully depleted.

    +

    See also: +Array.prototype.flatMap.

    +

    Type Parameters

    • R

      Return type of the callback function.

      +

    Parameters

    • callback: ((currentValue, index, self) => R | R[])

      Function to execute on each element.

      +
        • (currentValue, index, self): R | R[]
        • Parameters

          • currentValue: T
          • index: number
          • self: this

          Returns R | R[]

    Returns Promise<R[]>

    Example

    const cursor = await db.query(aql`FOR x IN 1..5 RETURN x`);
    const squares = await cursor.flatMap((currentValue) => {
    return [currentValue, currentValue ** 2];
    });
    console.log(squares); // [1, 1, 2, 4, 3, 9, 4, 16, 5, 25]
    console.log(cursor.hasNext); // false +
    +

    Example

    const cursor = await db.query(aql`FOR x IN 1..5 RETURN x`);
    const odds = await cursor.flatMap((currentValue) => {
    if (currentValue % 2 === 0) {
    return []; // empty array flattens into nothing
    }
    return currentValue; // or [currentValue]
    });
    console.logs(odds); // [1, 3, 5] +
    +
  • Advances the cursor by applying the callback function to each item in +the cursor's remaining result list until the cursor is depleted or +callback returns the exact value false. Returns a promise that +evalues to true unless the function returned false.

    +

    Note: If the result set spans multiple batches, any remaining batches +will only be fetched on demand. Depending on the cursor's TTL and the +processing speed, this may result in the server discarding the cursor +before it is fully depleted.

    +

    See also: +Array.prototype.forEach.

    +

    Parameters

    • callback: ((currentValue, index, self) => false | void)

      Function to execute on each element.

      +
        • (currentValue, index, self): false | void
        • Parameters

          • currentValue: T
          • index: number
          • self: this

          Returns false | void

    Returns Promise<boolean>

    Example

    const cursor = await db.query(aql`FOR x IN 1..5 RETURN x`);
    const result = await cursor.forEach((currentValue) => {
    console.log(currentValue);
    });
    console.log(result) // true
    console.log(cursor.hasNext); // false +
    +

    Example

    const cursor = await db.query(aql`FOR x IN 1..5 RETURN x`);
    const result = await cursor.forEach((currentValue) => {
    console.log(currentValue);
    return false; // stop after the first item
    });
    console.log(result); // false
    console.log(cursor.hasNext); // true +
    +
  • Kills the cursor and frees up associated database resources.

    +

    This method has no effect if all batches have already been fetched.

    +

    Returns Promise<void>

    Example

    const cursor1 = await db.query(aql`FOR x IN 1..5 RETURN x`);
    console.log(cursor1.hasMore); // false
    await cursor1.kill(); // no effect

    const cursor2 = await db.query(
    aql`FOR x IN 1..5 RETURN x`,
    { batchSize: 2 }
    );
    console.log(cursor2.hasMore); // true
    await cursor2.kill(); // cursor is depleted +
    +
  • Depletes the cursor by applying the callback function to each item in +the cursor's remaining result list. Returns an array containing the +return values of callback for each item.

    +

    Note: This creates an array of all return values, which may impact +memory use when working with very large query result sets. Consider using +ArrayCursor#forEach, ArrayCursor#reduce or +ArrayCursor#flatMap instead.

    +

    See also: +Array.prototype.map.

    +

    Type Parameters

    • R

      Return type of the callback function.

      +

    Parameters

    • callback: ((currentValue, index, self) => R)

      Function to execute on each element.

      +
        • (currentValue, index, self): R
        • Parameters

          • currentValue: T
          • index: number
          • self: this

          Returns R

    Returns Promise<R[]>

    Example

    const cursor = await db.query(aql`FOR x IN 1..5 RETURN x`);
    const squares = await cursor.map((currentValue) => {
    return currentValue ** 2;
    });
    console.log(squares); // [1, 4, 9, 16, 25]
    console.log(cursor.hasNext); // false +
    +
  • Advances the cursor and returns the next value in the cursor's remaining +result list, or undefined if the cursor has been depleted.

    +

    Note: If the result set spans multiple batches, any remaining batches +will only be fetched on demand. Depending on the cursor's TTL and the +processing speed, this may result in the server discarding the cursor +before it is fully depleted.

    +

    Returns Promise<undefined | T>

    Example

    const cursor = await db.query(aql`FOR x IN 1..3 RETURN x`);
    const one = await cursor.next(); // 1
    const two = await cursor.next(); // 2
    const three = await cursor.next(); // 3
    const empty = await cursor.next(); // undefined +
    +
  • Depletes the cursor by applying the reducer function to each item in +the cursor's remaining result list. Returns the return value of reducer +for the last item.

    +

    Note: Most complex uses of the reduce method can be replaced with +simpler code using ArrayCursor#forEach or the for await syntax.

    +

    Note: If the result set spans multiple batches, any remaining batches +will only be fetched on demand. Depending on the cursor's TTL and the +processing speed, this may result in the server discarding the cursor +before it is fully depleted.

    +

    See also: +Array.prototype.reduce.

    +

    Type Parameters

    • R

      Return type of the reducer function.

      +

    Parameters

    • reducer: ((accumulator, currentValue, index, self) => R)

      Function to execute on each element.

      +
        • (accumulator, currentValue, index, self): R
        • Parameters

          • accumulator: R
          • currentValue: T
          • index: number
          • self: this

          Returns R

    • initialValue: R

      Initial value of the accumulator value passed to +the reducer function.

      +

    Returns Promise<R>

    Example

    function largestOfTwo(one, two) {
    return Math.max(one, two);
    }
    const cursor = await db.query(aql`FOR x IN 1..5 RETURN x`);
    const result = await cursor.reduce(largestOfTwo, 0);
    console.log(result); // 5
    console.log(cursor.hasNext); // false
    const emptyResult = await cursor.reduce(largestOfTwo, 0);
    console.log(emptyResult); // 0 +
    +

    Example

    // BAD! NEEDLESSLY COMPLEX!
    const cursor = await db.query(aql`FOR x IN 1..5 RETURN x`);
    const result = await cursor.reduce((accumulator, currentValue) => {
    if (currentValue % 2 === 0) {
    accumulator.even.push(...currentValue);
    } else {
    accumulator.odd.push(...currentValue);
    }
    return accumulator;
    }, { odd: [], even: [] });
    console.log(result); // { odd: [1, 3, 5], even: [2, 4] }

    // GOOD! MUCH SIMPLER!
    const cursor = await db.query(aql`FOR x IN 1..5 RETURN x`);
    const odd = [];
    const even = [];
    for await (const currentValue of cursor) {
    if (currentValue % 2 === 0) {
    even.push(currentValue);
    } else {
    odd.push(currentValue);
    }
    }
    console.log({ odd, even }); // { odd: [1, 3, 5], even: [2, 4] } +
    +
  • Depletes the cursor by applying the reducer function to each item in +the cursor's remaining result list. Returns the return value of reducer +for the last item.

    +

    Note: If the result set spans multiple batches, any remaining batches +will only be fetched on demand. Depending on the cursor's TTL and the +processing speed, this may result in the server discarding the cursor +before it is fully depleted.

    +

    See also: +Array.prototype.reduce.

    +

    Type Parameters

    • R

      Return type of the reducer function.

      +

    Parameters

    • reducer: ((accumulator, currentValue, index, self) => R)

      Function to execute on each element.

      +
        • (accumulator, currentValue, index, self): R
        • Parameters

          • accumulator: T | R
          • currentValue: T
          • index: number
          • self: this

          Returns R

    Returns Promise<undefined | R>

    Example

    function largestOfTwo(one, two) {
    return Math.max(one, two);
    }
    const cursor = await db.query(aql`FOR x IN 1..5 RETURN x`);
    const result = await cursor.reduce(largestOfTwo);
    console.log(result); // 5
    console.log(cursor.hasNext); // false
    const emptyResult = await cursor.reduce(largestOfTwo);
    console.log(emptyResult); // undefined +
    +
\ No newline at end of file diff --git a/9.0.0/classes/cursor.BatchedArrayCursor.html b/9.0.0/classes/cursor.BatchedArrayCursor.html new file mode 100644 index 00000000..bf56dc40 --- /dev/null +++ b/9.0.0/classes/cursor.BatchedArrayCursor.html @@ -0,0 +1,141 @@ +BatchedArrayCursor | arangojs - v9.0.0

Class BatchedArrayCursor<T>

The BatchedArrayCursor provides a batch-wise API to an ArrayCursor.

+

When using TypeScript, cursors can be cast to a specific item type in order +to increase type safety.

+

Example

const db = new Database();
const query = aql`FOR x IN 1..5 RETURN x`;
const cursor = await db.query(query) as ArrayCursor<number>;
const batches = cursor.batches; +
+

Example

const db = new Database();
const query = aql`FOR x IN 1..10000 RETURN x`;
const cursor = await db.query(query, { batchSize: 10 });
for await (const batch of cursor.batches) {
// Process all values in a batch in parallel
await Promise.all(batch.map(
value => asyncProcessValue(value)
));
} +
+

Type Parameters

  • T = any

    Type to use for each item. Defaults to any.

    +

Accessors

  • get count(): undefined | number
  • Total number of documents in the query result. Only available if the +count option was used.

    +

    Returns undefined | number

  • get extra(): Readonly<CursorExtras>
  • Additional information about the cursor.

    +

    Returns Readonly<CursorExtras>

  • get hasMore(): boolean
  • Whether the cursor has any remaining batches that haven't yet been +fetched. If set to false, all batches have been fetched and no +additional requests to the server will be made when consuming any +remaining batches from this cursor.

    +

    Returns boolean

  • get hasNext(): boolean
  • Whether the cursor has more batches. If set to false, the cursor has +already been depleted and contains no more batches.

    +

    Returns boolean

Methods

  • Enables use with for await to deplete the cursor by asynchronously +yielding every batch in the cursor's remaining result set.

    +

    Note: If the result set spans multiple batches, any remaining batches +will only be fetched on demand. Depending on the cursor's TTL and the +processing speed, this may result in the server discarding the cursor +before it is fully depleted.

    +

    Returns AsyncGenerator<T[], undefined, undefined>

    Example

    const cursor = await db.query(aql`
    FOR user IN users
    FILTER user.isActive
    RETURN user
    `);
    for await (const users of cursor.batches) {
    for (const user of users) {
    console.log(user.email, user.isAdmin);
    }
    } +
    +
  • Depletes the cursor, then returns an array containing all batches in the +cursor's remaining result list.

    +

    Returns Promise<T[][]>

    Example

    const cursor = await db.query(
    aql`FOR x IN 1..5 RETURN x`,
    { batchSize: 2 }
    );
    const result = await cursor.batches.all(); // [[1, 2], [3, 4], [5]]
    console.log(cursor.hasNext); // false +
    +
  • Depletes the cursor by applying the callback function to each batch in +the cursor's remaining result list. Returns an array containing the +return values of callback for each batch, flattened to a depth of 1.

    +

    Note: If the result set spans multiple batches, any remaining batches +will only be fetched on demand. Depending on the cursor's TTL and the +processing speed, this may result in the server discarding the cursor +before it is fully depleted.

    +

    See also: +Array.prototype.flatMap.

    +

    Type Parameters

    • R

      Return type of the callback function.

      +

    Parameters

    • callback: ((currentBatch, index, self) => R | R[])

      Function to execute on each element.

      +
        • (currentBatch, index, self): R | R[]
        • Parameters

          • currentBatch: T[]
          • index: number
          • self: this

          Returns R | R[]

    Returns Promise<R[]>

    Example

    const cursor = await db.query(
    aql`FOR x IN 1..5 RETURN x`,
    { batchSize: 2 }
    );
    const squares = await cursor.batches.flatMap((currentBatch) => {
    return currentBatch.map((value) => value ** 2);
    });
    console.log(squares); // [1, 1, 2, 4, 3, 9, 4, 16, 5, 25]
    console.log(cursor.hasNext); // false +
    +

    Example

    const cursor = await db.query(
    aql`FOR x IN 1..5 RETURN x`,
    { batchSize: 1 }
    );
    const odds = await cursor.batches.flatMap((currentBatch) => {
    if (currentBatch[0] % 2 === 0) {
    return []; // empty array flattens into nothing
    }
    return currentBatch;
    });
    console.logs(odds); // [1, 3, 5] +
    +
  • Advances the cursor by applying the callback function to each item in +the cursor's remaining result list until the cursor is depleted or +callback returns the exact value false. Returns a promise that +evalues to true unless the function returned false.

    +

    Note: If the result set spans multiple batches, any remaining batches +will only be fetched on demand. Depending on the cursor's TTL and the +processing speed, this may result in the server discarding the cursor +before it is fully depleted.

    +

    See also: +Array.prototype.forEach.

    +

    Parameters

    • callback: ((currentBatch, index, self) => false | void)

      Function to execute on each element.

      +
        • (currentBatch, index, self): false | void
        • Parameters

          • currentBatch: T[]
          • index: number
          • self: this

          Returns false | void

    Returns Promise<boolean>

    Example

    const cursor = await db.query(
    aql`FOR x IN 1..5 RETURN x`,
    { batchSize: 2 }
    );
    const result = await cursor.batches.forEach((currentBatch) => {
    for (const value of currentBatch) {
    console.log(value);
    }
    });
    console.log(result) // true
    console.log(cursor.hasNext); // false +
    +

    Example

    const cursor = await db.query(
    aql`FOR x IN 1..5 RETURN x`,
    { batchSize: 2 }
    );
    const result = await cursor.batches.forEach((currentBatch) => {
    for (const value of currentBatch) {
    console.log(value);
    }
    return false; // stop after the first batch
    });
    console.log(result); // false
    console.log(cursor.hasNext); // true +
    +
  • Drains the cursor and frees up associated database resources.

    +

    This method has no effect if all batches have already been consumed.

    +

    Returns Promise<void>

    Example

    const cursor1 = await db.query(aql`FOR x IN 1..5 RETURN x`);
    console.log(cursor1.hasMore); // false
    await cursor1.kill(); // no effect

    const cursor2 = await db.query(
    aql`FOR x IN 1..5 RETURN x`,
    { batchSize: 2 }
    );
    console.log(cursor2.hasMore); // true
    await cursor2.kill(); // cursor is depleted +
    +
  • Loads all remaining batches from the server.

    +

    Warning: This may impact memory use when working with very large +query result sets.

    +

    Returns Promise<void>

    Example

    const cursor = await db.query(
    aql`FOR x IN 1..5 RETURN x`,
    { batchSize: 1 }
    );
    console.log(cursor.hasMore); // true
    await cursor.batches.loadAll();
    console.log(cursor.hasMore); // false
    console.log(cursor.hasNext); // true
    for await (const item of cursor) {
    console.log(item);
    // No server roundtrips necessary any more
    } +
    +
  • Depletes the cursor by applying the callback function to each batch in +the cursor's remaining result list. Returns an array containing the +return values of callback for each batch.

    +

    Note: This creates an array of all return values, which may impact +memory use when working with very large query result sets. Consider using +BatchedArrayCursor#forEach, BatchedArrayCursor#reduce or +BatchedArrayCursor#flatMap instead.

    +

    See also: +Array.prototype.map.

    +

    Type Parameters

    • R

      Return type of the callback function.

      +

    Parameters

    • callback: ((currentBatch, index, self) => R)

      Function to execute on each element.

      +
        • (currentBatch, index, self): R
        • Parameters

          • currentBatch: T[]
          • index: number
          • self: this

          Returns R

    Returns Promise<R[]>

    Example

    const cursor = await db.query(
    aql`FOR x IN 1..5 RETURN x`,
    { batchSize: 2 }
    );
    const squares = await cursor.batches.map((currentBatch) => {
    return currentBatch.map((value) => value ** 2);
    });
    console.log(squares); // [[1, 4], [9, 16], [25]]
    console.log(cursor.hasNext); // false +
    +
  • Advances the cursor and returns all remaining values in the cursor's +current batch. If the current batch has already been exhausted, fetches +the next batch from the server and returns it, or undefined if the +cursor has been depleted.

    +

    Note: If the result set spans multiple batches, any remaining batches +will only be fetched on demand. Depending on the cursor's TTL and the +processing speed, this may result in the server discarding the cursor +before it is fully depleted.

    +

    Returns Promise<undefined | T[]>

    Example

    const cursor = await db.query(
    aql`FOR i IN 1..10 RETURN i`,
    { batchSize: 5 }
    );
    const firstBatch = await cursor.batches.next(); // [1, 2, 3, 4, 5]
    await cursor.next(); // 6
    const lastBatch = await cursor.batches.next(); // [7, 8, 9, 10]
    console.log(cursor.hasNext); // false +
    +
  • Depletes the cursor by applying the reducer function to each batch in +the cursor's remaining result list. Returns the return value of reducer +for the last batch.

    +

    Note: Most complex uses of the reduce method can be replaced with +simpler code using BatchedArrayCursor#forEach or the for await +syntax.

    +

    Note: If the result set spans multiple batches, any remaining batches +will only be fetched on demand. Depending on the cursor's TTL and the +processing speed, this may result in the server discarding the cursor +before it is fully depleted.

    +

    See also: +Array.prototype.reduce.

    +

    Type Parameters

    • R

      Return type of the reducer function.

      +

    Parameters

    • reducer: ((accumulator, currentBatch, index, self) => R)

      Function to execute on each element.

      +
        • (accumulator, currentBatch, index, self): R
        • Parameters

          • accumulator: R
          • currentBatch: T[]
          • index: number
          • self: this

          Returns R

    • initialValue: R

      Initial value of the accumulator value passed to +the reducer function.

      +

    Returns Promise<R>

    Example

    function largestValue(baseline, values) {
    return Math.max(baseline, ...values);
    }
    const cursor = await db.query(
    aql`FOR x IN 1..5 RETURN x`,
    { batchSize: 3 }
    );
    const result = await cursor.batches.reduce(largestValue, 0);
    console.log(result); // 5
    console.log(cursor.hasNext); // false
    const emptyResult = await cursor.batches.reduce(largestValue, 0);
    console.log(emptyResult); // 0 +
    +

    Example

    // BAD! NEEDLESSLY COMPLEX!
    const cursor = await db.query(
    aql`FOR x IN 1..5 RETURN x`,
    { batchSize: 1 }
    );
    const result = await cursor.reduce((accumulator, currentBatch) => {
    if (currentBatch[0] % 2 === 0) {
    accumulator.even.push(...currentBatch);
    } else {
    accumulator.odd.push(...currentBatch);
    }
    return accumulator;
    }, { odd: [], even: [] });
    console.log(result); // { odd: [1, 3, 5], even: [2, 4] }

    // GOOD! MUCH SIMPLER!
    const cursor = await db.query(aql`FOR x IN 1..5 RETURN x`);
    const odd = [];
    const even = [];
    for await (const currentBatch of cursor) {
    if (currentBatch[0] % 2 === 0) {
    even.push(...currentBatch);
    } else {
    odd.push(...currentBatch);
    }
    }
    console.log({ odd, even }); // { odd: [1, 3, 5], even: [2, 4] } +
    +
  • Depletes the cursor by applying the reducer function to each batch in +the cursor's remaining result list. Returns the return value of reducer +for the last batch.

    +

    Note: If the result set spans multiple batches, any remaining batches +will only be fetched on demand. Depending on the cursor's TTL and the +processing speed, this may result in the server discarding the cursor +before it is fully depleted.

    +

    See also: +Array.prototype.reduce.

    +

    Type Parameters

    • R

      Return type of the reducer function.

      +

    Parameters

    • reducer: ((accumulator, currentBatch, index, self) => R)

      Function to execute on each element.

      +
        • (accumulator, currentBatch, index, self): R
        • Parameters

          • accumulator: T[] | R
          • currentBatch: T[]
          • index: number
          • self: this

          Returns R

    Returns Promise<undefined | R>

    Example

    function largestValue(values1, values2) {
    return [Math.max(...values1, ...values2)];
    }
    const cursor = await db.query(
    aql`FOR x IN 1..5 RETURN x`,
    { batchSize: 3 }
    );
    const result = await cursor.batches.reduce(largestValue);
    console.log(result); // [5]
    console.log(cursor.hasNext); // false +
    +
\ No newline at end of file diff --git a/9.0.0/classes/database.Database.html b/9.0.0/classes/database.Database.html new file mode 100644 index 00000000..4358eae9 --- /dev/null +++ b/9.0.0/classes/database.Database.html @@ -0,0 +1,1237 @@ +Database | arangojs - v9.0.0

An object representing a single ArangoDB database. All arangojs collections, +cursors, analyzers and so on are linked to a Database object.

+

Constructors

Accessors

Methods

acquireHostList +analyzer +analyzers +beginTransaction +clearSlowQueries +clearUserAccessLevel +close +collection +collections +commitLocalServiceState +computeClusterRebalance +createAnalyzer +createCollection +createDatabase +createEdgeCollection +createFunction +createGraph +createHotBackup +createJob +createUser +createView +database +databases +deleteAllJobResults +deleteExpiredJobResults +deleteHotBackup +downloadService +dropDatabase +dropFunction +executeClusterRebalance +executeTransaction +exists +explain +get +getClusterImbalance +getLogEntries +getLogLevel +getLogMessages +getService +getServiceConfiguration +getServiceDependencies +getServiceDocumentation +getServiceReadme +getUser +getUserAccessLevel +getUserDatabases +graph +graphs +installService +job +killQuery +listAnalyzers +listCollections +listCompletedJobs +listDatabases +listFunctions +listGraphs +listHotBackups +listPendingJobs +listRunningQueries +listServiceScripts +listServices +listSlowQueries +listTransactions +listUserDatabases +listUsers +listViews +login +parse +query +queryRules +queryTracking +rebalanceCluster +removeUser +renameCollection +renameView +renewAuthToken +replaceService +replaceServiceConfiguration +replaceServiceDependencies +replaceUser +restoreHotBackup +route +runServiceScript +runServiceTests +setLogLevel +setResponseQueueTimeSamples +setServiceDevelopmentMode +setUserAccessLevel +shutdown +time +transaction +transactions +uninstallService +updateServiceConfiguration +updateServiceDependencies +updateUser +upgradeService +useBasicAuth +useBearerAuth +userDatabases +version +view +views +waitForPropagation +withTransaction +

Constructors

  • Creates a new Database instance with its own connection pool.

    +

    See also Database#database.

    +

    Parameters

    • Optional config: Config

      An object with configuration options.

      +

    Returns Database

    Example

    const db = new Database({
    url: "http://127.0.0.1:8529",
    databaseName: "my_database",
    auth: { username: "admin", password: "hunter2" },
    }); +
    +
  • Creates a new Database instance with its own connection pool.

    +

    See also Database#database.

    +

    Parameters

    • url: string | string[]

      Base URL of the ArangoDB server or list of server URLs. +Equivalent to the url option in connection.Config.

      +
    • Optional name: string

    Returns Database

    Example

    const db = new Database("http://127.0.0.1:8529", "my_database");
    db.useBasicAuth("admin", "hunter2"); +
    +

Accessors

  • get name(): string
  • Name of the ArangoDB database this instance represents.

    +

    Returns string

  • get queueTime(): QueueTimeMetrics
  • Methods for accessing the server-reported queue times of the mostly +recently received responses.

    +

    Returns QueueTimeMetrics

Methods

  • Updates the URL list by requesting a list of all coordinators in the +cluster and adding any endpoints not initially specified in the +connection.Config.

    +

    For long-running processes communicating with an ArangoDB cluster it is +recommended to run this method periodically (e.g. once per hour) to make +sure new coordinators are picked up correctly and can be used for +fail-over or load balancing.

    +

    Parameters

    • overwrite: boolean = false

      If set to true, the existing host list will be +replaced instead of extended.

      +

    Returns Promise<void>

    Example

    const db = new Database();
    const interval = setInterval(
    () => db.acquireHostList(),
    5 * 60 * 1000 // every 5 minutes
    );

    // later
    clearInterval(interval);
    system.close(); +
    +
  • Returns an analyzer.Analyzer instance representing the Analyzer with the +given analyzerName.

    +

    Parameters

    • analyzerName: string

    Returns Analyzer

    Example

    const db = new Database();
    const analyzer = db.analyzer("some-analyzer");
    const info = await analyzer.get(); +
    +
  • Fetches all Analyzers visible in the database and returns an array of +analyzer.Analyzer instances for those Analyzers.

    +

    See also Database#listAnalyzers.

    +

    Returns Promise<Analyzer[]>

    Example

    const db = new Database();
    const analyzers = await db.analyzers();
    // analyzers is an array of Analyzer instances +
    +
  • Begins a new streaming transaction for the given collections, then returns +a transaction.Transaction instance for the transaction.

    +

    Collections can be specified as collection names (strings) or objects +implementing the collection.ArangoCollection interface: Collection, +graph.GraphVertexCollection, graph.GraphEdgeCollection as +well as (in TypeScript) collection.DocumentCollection and +collection.EdgeCollection.

    +

    Parameters

    Returns Promise<Transaction>

    Example

    const vertices = db.collection("vertices");
    const edges = db.collection("edges");
    const trx = await db.beginTransaction({
    read: ["vertices"],
    write: [edges] // collection instances can be passed directly
    });
    const start = await trx.step(() => vertices.document("a"));
    const end = await trx.step(() => vertices.document("b"));
    await trx.step(() => edges.save({ _from: start._id, _to: end._id }));
    await trx.commit(); +
    +
  • Begins a new streaming transaction for the given collections, then returns +a transaction.Transaction instance for the transaction.

    +

    Collections can be specified as collection names (strings) or objects +implementing the collection.ArangoCollection interface: Collection, +graph.GraphVertexCollection, graph.GraphEdgeCollection as well as +(in TypeScript) collection.DocumentCollection and collection.EdgeCollection.

    +

    Parameters

    • collections: (string | ArangoCollection)[]

      Collections that can be read from and written to +during the transaction.

      +
    • Optional options: TransactionOptions

      Options for the transaction.

      +

    Returns Promise<Transaction>

    Example

    const vertices = db.collection("vertices");
    const edges = db.collection("edges");
    const trx = await db.beginTransaction([
    "vertices",
    edges // collection instances can be passed directly
    ]);
    const start = await trx.step(() => vertices.document("a"));
    const end = await trx.step(() => vertices.document("b"));
    await trx.step(() => edges.save({ _from: start._id, _to: end._id }));
    await trx.commit(); +
    +
  • Begins a new streaming transaction for the given collections, then returns +a transaction.Transaction instance for the transaction.

    +

    The Collection can be specified as a collection name (string) or an object +implementing the collection.ArangoCollection interface: Collection, +graph.GraphVertexCollection, graph.GraphEdgeCollection as well as +(in TypeScript) collection.DocumentCollection and collection.EdgeCollection.

    +

    Parameters

    • collection: string | ArangoCollection

      A collection that can be read from and written to +during the transaction.

      +
    • Optional options: TransactionOptions

      Options for the transaction.

      +

    Returns Promise<Transaction>

    Example

    const vertices = db.collection("vertices");
    const start = vertices.document("a");
    const end = vertices.document("b");
    const edges = db.collection("edges");
    const trx = await db.beginTransaction(
    edges // collection instances can be passed directly
    );
    await trx.step(() => edges.save({ _from: start._id, _to: end._id }));
    await trx.commit(); +
    +
  • Clears the list of recent slow queries.

    +

    See also Database#listSlowQueries.

    +

    Returns Promise<void>

    Example

    const db = new Database();
    await db.clearSlowQueries();
    // Slow query list is now cleared +
    +
  • Clears the given ArangoDB user's access level for the database, or the +given collection in the given database.

    +

    Parameters

    • username: string

      Name of the ArangoDB user to clear the access level for.

      +
    • __namedParameters: UserAccessLevelOptions

    Returns Promise<ArangoApiResponse<Record<string, AccessLevel>>>

    Example

    const db = new Database();
    await db.clearUserAccessLevel("steve");
    // The access level of the user "steve" has been cleared for the current
    // database. +
    +

    Example

    const db = new Database();
    await db.clearUserAccessLevel("steve", { database: "staging" });
    // The access level of the user "steve" has been cleared for the "staging"
    // database. +
    +

    Example

    const db = new Database();
    await db.clearUserAccessLevel("steve", { collection: "pokemons" });
    // The access level of the user "steve" has been cleared for the
    // "pokemons" collection in the current database. +
    +

    Example

    const db = new Database();
    await db.clearUserAccessLevel("steve", {
    database: "staging",
    collection: "pokemons"
    });
    // The access level of the user "steve" has been cleared for the
    // "pokemons" collection in the "staging" database. +
    +

    Example

    const db = new Database();
    const staging = db.database("staging");
    await db.clearUserAccessLevel("steve", { database: staging });
    // The access level of the user "steve" has been cleared for the "staging"
    // database. +
    +

    Example

    const db = new Database();
    const staging = db.database("staging");
    await db.clearUserAccessLevel("steve", {
    collection: staging.collection("pokemons")
    });
    // The access level of the user "steve" has been cleared for the
    // "pokemons" collection in database "staging". +
    +
  • Closes all active connections of this database instance.

    +

    Can be used to clean up idling connections during longer periods of +inactivity.

    +

    Note: This method currently has no effect in the browser version of +arangojs.

    +

    Returns void

    Example

    const db = new Database();
    const sessions = db.collection("sessions");
    // Clean up expired sessions once per hour
    setInterval(async () => {
    await db.query(aql`
    FOR session IN ${sessions}
    FILTER session.expires < DATE_NOW()
    REMOVE session IN ${sessions}
    `);
    // Making sure to close the connections because they're no longer used
    system.close();
    }, 1000 * 60 * 60); +
    +
  • Returns a Collection instance for the given collection name.

    +

    In TypeScript the collection implements both the +collection.DocumentCollection and collection.EdgeCollection +interfaces and can be cast to either type to enforce a stricter API.

    +

    Type Parameters

    • T extends Record<string, any> = any

      Type to use for document data. Defaults to any.

      +

    Parameters

    • collectionName: string

      Name of the edge collection.

      +

    Returns DocumentCollection<T, T> & EdgeCollection<T, T>

    Example

    const db = new Database();
    const collection = db.collection("potatoes"); +
    +

    Example

    interface Person {
    name: string;
    }
    const db = new Database();
    const persons = db.collection<Person>("persons"); +
    +

    Example

    interface Person {
    name: string;
    }
    interface Friend {
    startDate: number;
    endDate?: number;
    }
    const db = new Database();
    const documents = db.collection("persons") as DocumentCollection<Person>;
    const edges = db.collection("friends") as EdgeCollection<Friend>; +
    +
  • Fetches all collections from the database and returns an array of +Collection instances.

    +

    In TypeScript these instances implement both the +collection.DocumentCollection and collection.EdgeCollection +interfaces and can be cast to either type to enforce a stricter API.

    +

    See also Database#listCollections.

    +

    Parameters

    • excludeSystem: boolean = true

      Whether system collections should be excluded.

      +

    Returns Promise<(DocumentCollection<any, any> & EdgeCollection<any, any>)[]>

    Example

    const db = new Database();
    const collections = await db.collections();
    // collections is an array of DocumentCollection and EdgeCollection
    // instances not including system collections +
    +

    Example

    const db = new Database();
    const collections = await db.collections(false);
    // collections is an array of DocumentCollection and EdgeCollection
    // instances including system collections +
    +
  • Writes all locally available services to the database and updates any +service bundles missing in the database.

    +

    Parameters

    • replace: boolean = false

      If set to true, outdated services will also be +committed. This can be used to solve some consistency problems when +service bundles are missing in the database or were deleted manually.

      +

    Returns Promise<void>

    Example

    await db.commitLocalServiceState();
    // all services available on the coordinator have been written to the db +
    +

    Example

    await db.commitLocalServiceState(true);
    // all service conflicts have been resolved in favor of this coordinator +
    +
  • Computes a set of move shard operations to rebalance the cluster.

    +

    Parameters

    Returns Promise<ClusterRebalanceResult>

    Example

    const db = new Database();
    const result = await db.computerClusterRebalance({
    moveLeaders: true,
    moveFollowers: true
    });
    if (result.moves.length) {
    await db.executeClusterRebalance(result.moves);
    } +
    +
  • Creates a new Analyzer with the given analyzerName and options, then +returns an analyzer.Analyzer instance for the new Analyzer.

    +

    Parameters

    • analyzerName: string

      Name of the Analyzer.

      +
    • options: CreateAnalyzerOptions

      An object defining the properties of the Analyzer.

      +

    Returns Promise<Analyzer>

    Example

    const db = new Database();
    const analyzer = await db.createAnalyzer("potatoes", { type: "identity" });
    // the identity Analyzer "potatoes" now exists +
    +
  • Creates a new collection with the given collectionName and options, +then returns a collection.DocumentCollection instance for the new collection.

    +

    Type Parameters

    • T extends Record<string, any> = any

      Type to use for document data. Defaults to any.

      +

    Parameters

    Returns Promise<DocumentCollection<T, T>>

    Example

    const db = new Database();
    const documents = db.createCollection("persons"); +
    +

    Example

    interface Person {
    name: string;
    }
    const db = new Database();
    const documents = db.createCollection<Person>("persons"); +
    +
  • Creates a new edge collection with the given collectionName and +options, then returns an collection.EdgeCollection instance for the new +edge collection.

    +

    Type Parameters

    • T extends Record<string, any> = any

      Type to use for edge document data. Defaults to any.

      +

    Parameters

    Returns Promise<EdgeCollection<T, T>>

    Example

    const db = new Database();
    const edges = db.createCollection("friends", {
    type: CollectionType.EDGE_COLLECTION
    }); +
    +

    Example

    interface Friend {
    startDate: number;
    endDate?: number;
    }
    const db = new Database();
    const edges = db.createCollection<Friend>("friends", {
    type: CollectionType.EDGE_COLLECTION
    }); +
    +
  • Creates a new database with the given databaseName with the given +options and returns a Database instance for that database.

    +

    Parameters

    • databaseName: string

      Name of the database to create.

      +
    • Optional options: CreateDatabaseOptions

      Options for creating the database.

      +

    Returns Promise<Database>

    Example

    const db = new Database();
    const info = await db.createDatabase("mydb", {
    users: [{ username: "root" }]
    });
    // the database has been created +
    +
  • Creates a new database with the given databaseName with the given +users and returns a Database instance for that database.

    +

    Parameters

    • databaseName: string

      Name of the database to create.

      +
    • users: CreateDatabaseUser[]

      Database users to create with the database.

      +

    Returns Promise<Database>

    Example

    const db = new Database();
    const info = await db.createDatabase("mydb", [{ username: "root" }]);
    // the database has been created +
    +
  • Creates a new edge collection with the given collectionName and +options, then returns an collection.EdgeCollection instance for the new +edge collection.

    +

    This is a convenience method for calling Database#createCollection +with options.type set to EDGE_COLLECTION.

    +

    Type Parameters

    • T extends Record<string, any> = any

      Type to use for edge document data. Defaults to any.

      +

    Parameters

    • collectionName: string

      Name of the new collection.

      +
    • Optional options: CreateCollectionOptions

      Options for creating the collection.

      +

    Returns Promise<EdgeCollection<T, T>>

    Example

    const db = new Database();
    const edges = db.createEdgeCollection("friends"); +
    +

    Example

    interface Friend {
    startDate: number;
    endDate?: number;
    }
    const db = new Database();
    const edges = db.createEdgeCollection<Friend>("friends"); +
    +
  • Creates an AQL user function with the given name and code if it does +not already exist or replaces it if a function with the same name already +existed.

    +

    Parameters

    • name: string

      A valid AQL function name. The function name must consist +of at least two alphanumeric identifiers separated with double colons.

      +
    • code: string

      A string evaluating to a JavaScript function (not a +JavaScript function object).

      +
    • isDeterministic: boolean = false

      If set to true, the function is expected to +always return the same result for equivalent inputs. This option currently +has no effect but may allow for optimizations in the future.

      +

    Returns Promise<ArangoApiResponse<{
        isNewlyCreated: boolean;
    }>>

    Example

    const db = new Database();
    await db.createFunction(
    "ACME::ACCOUNTING::CALCULATE_VAT",
    "(price) => price * 0.19"
    );
    // Use the new function in an AQL query with template handler:
    const cursor = await db.query(aql`
    FOR product IN products
    RETURN MERGE(
    { vat: ACME::ACCOUNTING::CALCULATE_VAT(product.price) },
    product
    )
    `);
    // cursor is a cursor for the query result +
    +
  • Creates a graph with the given graphName and edgeDefinitions, then +returns a graph.Graph instance for the new graph.

    +

    Parameters

    • graphName: string

      Name of the graph to be created.

      +
    • edgeDefinitions: EdgeDefinitionOptions[]

      An array of edge definitions.

      +
    • Optional options: CreateGraphOptions

      An object defining the properties of the graph.

      +

    Returns Promise<Graph>

  • (Enterprise Edition only.) Creates a hot backup of the entire ArangoDB +deployment including all databases, collections, etc.

    +

    Returns an object describing the backup result.

    +

    Parameters

    Returns Promise<HotBackupResult>

    Example

    const info = await db.createHotBackup();
    // a hot backup has been created +
    +
  • Creates an async job by executing the given callback function. The first +database request performed by the callback will be marked for asynchronous +execution and its result will be made available as an async job.

    +

    Returns a Job instance that can be used to retrieve the result +of the callback function once the request has been executed.

    +

    Type Parameters

    • T

    Parameters

    • callback: (() => Promise<T>)

      Callback function to execute as an async job.

      +
        • (): Promise<T>
        • Returns Promise<T>

    Returns Promise<Job<T>>

    Example

    const db = new Database();
    const job = await db.createJob(() => db.collections());
    while (!job.isLoaded) {
    await timeout(1000);
    await job.load();
    }
    // job.result is a list of Collection instances +
    +
  • Creates a new ArangoDB user with the given password.

    +

    Parameters

    • username: string

      Name of the ArangoDB user to create.

      +
    • passwd: string

      Password of the new ArangoDB user.

      +

    Returns Promise<ArangoApiResponse<ArangoUser>>

    Example

    const db = new Database();
    const user = await db.createUser("steve", "hunter2");
    // The user "steve" has been created +
    +
  • Creates a new ArangoDB user with the given options.

    +

    Parameters

    • username: string

      Name of the ArangoDB user to create.

      +
    • options: UserOptions

      Additional options for creating the ArangoDB user.

      +

    Returns Promise<ArangoApiResponse<ArangoUser>>

    Example

    const db = new Database();
    const user = await db.createUser("steve", { passwd: "hunter2" });
    // The user "steve" has been created +
    +
  • Creates a new View with the given viewName and options, then returns a +view.View instance for the new View.

    +

    Parameters

    • viewName: string

      Name of the View.

      +
    • options: CreateViewOptions

      An object defining the properties of the View.

      +

    Returns Promise<View>

    Example

    const db = new Database();
    const view = await db.createView("potatoes", { type: "arangosearch" });
    // the ArangoSearch View "potatoes" now exists +
    +
  • Creates a new Database instance for the given databaseName that +shares this database's connection pool.

    +

    See also :constructor.

    +

    Parameters

    • databaseName: string

      Name of the database.

      +

    Returns Database

    Example

    const systemDb = new Database();
    const myDb = system.database("my_database"); +
    +
  • Fetches all databases from the server and returns an array of Database +instances for those databases.

    +

    See also Database#listDatabases and +Database#userDatabases.

    +

    Returns Promise<Database[]>

    Example

    const db = new Database();
    const names = await db.databases();
    // databases is an array of databases +
    +
  • Deletes the results of all completed async jobs.

    +

    Returns Promise<void>

  • Deletes the results of all completed async jobs created before the given +threshold.

    +

    Parameters

    • threshold: number

      The expiration timestamp in milliseconds.

      +

    Returns Promise<void>

    Example

    const db = new Database();
    const ONE_WEEK = 7 * 24 * 60 * 60 * 1000;
    await db.deleteExpiredJobResults(Date.now() - ONE_WEEK);
    // all job results older than a week have been deleted +
    +
  • (Enterprise Edition only.) Deletes a local hot backup.

    +

    Parameters

    • id: string

      The ID of the backup to delete.

      +

    Returns Promise<void>

    Example

    await db.deleteHotBackup("2023-09-19T15.38.21Z_example");
    // the backup has been deleted +
    +
  • Retrieves a zip bundle containing the service files.

    +

    Returns a Buffer in node.js or Blob in the browser.

    +

    Parameters

    • mount: string

      The service's mount point, relative to the database.

      +

    Returns Promise<Buffer | Blob>

    Example

    const db = new Database();
    const serviceBundle = await db.downloadService("/my-foxx"); +
    +
  • Deletes the database with the given databaseName from the server.

    +

    Parameters

    • databaseName: string

      Name of the database to delete.

      +

    Returns Promise<boolean>

    Example

    const db = new Database();
    await db.dropDatabase("mydb");
    // database "mydb" no longer exists +
    +
  • Deletes the AQL user function with the given name from the database.

    +

    Parameters

    • name: string

      The name of the user function to drop.

      +
    • group: boolean = false

      If set to true, all functions with a name starting with +name will be deleted, otherwise only the function with the exact name +will be deleted.

      +

    Returns Promise<ArangoApiResponse<{
        deletedCount: number;
    }>>

    Example

    const db = new Database();
    await db.dropFunction("ACME::ACCOUNTING::CALCULATE_VAT");
    // the function no longer exists +
    +
  • Executes the given cluster move shard operations.

    +

    Parameters

    Returns Promise<unknown>

    Example

    const db = new Database();
    const result = await db.computerClusterRebalance({
    moveLeaders: true,
    moveFollowers: true
    });
    if (result.moves.length) {
    await db.executeClusterRebalance(result.moves);
    } +
    +
  • Performs a server-side JavaScript transaction and returns its return +value.

    +

    Collections can be specified as collection names (strings) or objects +implementing the collection.ArangoCollection interface: Collection, +graph.GraphVertexCollection, graph.GraphEdgeCollection as well as +(in TypeScript) collection.DocumentCollection and collection.EdgeCollection.

    +

    Note: The action function will be evaluated and executed on the +server inside ArangoDB's embedded JavaScript environment and can not +access any values other than those passed via the params option.

    +

    See the official ArangoDB documentation for +the JavaScript @arangodb module +for information about accessing the database from within ArangoDB's +server-side JavaScript environment.

    +

    Parameters

    • collections: TransactionCollections & {
          allowImplicit?: boolean;
      }

      Collections involved in the transaction.

      +
    • action: string

      A string evaluating to a JavaScript function to be +executed on the server.

      +
    • Optional options: TransactionOptions & {
          params?: any;
      }

      Options for the transaction. If options.allowImplicit +is specified, it will be used if collections.allowImplicit was not +specified.

      +

    Returns Promise<any>

    Example

    const db = new Database();

    const action = `
    function(params) {
    // This code will be executed inside ArangoDB!
    const { query } = require("@arangodb");
    return query\`
    FOR user IN _users
    FILTER user.age > ${params.age}
    RETURN u.user
    \`.toArray();
    }
    `);

    const result = await db.executeTransaction({
    read: ["_users"]
    }, action, {
    params: { age: 12 }
    });
    // result contains the return value of the action +
    +
  • Performs a server-side transaction and returns its return value.

    +

    Collections can be specified as collection names (strings) or objects +implementing the collection.ArangoCollection interface: Collection, +graph.GraphVertexCollection, graph.GraphEdgeCollection as well as +(in TypeScript) collection.DocumentCollection and collection.EdgeCollection.

    +

    Note: The action function will be evaluated and executed on the +server inside ArangoDB's embedded JavaScript environment and can not +access any values other than those passed via the params option. +See the official ArangoDB documentation for +the JavaScript @arangodb module +for information about accessing the database from within ArangoDB's +server-side JavaScript environment.

    +

    Parameters

    • collections: (string | ArangoCollection)[]

      Collections that can be read from and written to +during the transaction.

      +
    • action: string

      A string evaluating to a JavaScript function to be +executed on the server.

      +
    • Optional options: TransactionOptions & {
          params?: any;
      }

      Options for the transaction.

      +

    Returns Promise<any>

    Example

    const db = new Database();

    const action = `
    function(params) {
    // This code will be executed inside ArangoDB!
    const { query } = require("@arangodb");
    return query\`
    FOR user IN _users
    FILTER user.age > ${params.age}
    RETURN u.user
    \`.toArray();
    }
    `);

    const result = await db.executeTransaction(["_users"], action, {
    params: { age: 12 }
    });
    // result contains the return value of the action +
    +
  • Performs a server-side transaction and returns its return value.

    +

    The Collection can be specified as a collection name (string) or an object +implementing the collection.ArangoCollection interface: Collection, +graph.GraphVertexCollection, graph.GraphEdgeCollection as well as +(in TypeScript) collection.DocumentCollection and collection.EdgeCollection.

    +

    Note: The action function will be evaluated and executed on the +server inside ArangoDB's embedded JavaScript environment and can not +access any values other than those passed via the params option. +See the official ArangoDB documentation for +the JavaScript @arangodb module +for information about accessing the database from within ArangoDB's +server-side JavaScript environment.

    +

    Parameters

    • collection: string | ArangoCollection

      A collection that can be read from and written to +during the transaction.

      +
    • action: string

      A string evaluating to a JavaScript function to be +executed on the server.

      +
    • Optional options: TransactionOptions & {
          params?: any;
      }

      Options for the transaction.

      +

    Returns Promise<any>

    Example

    const db = new Database();

    const action = `
    function(params) {
    // This code will be executed inside ArangoDB!
    const { query } = require("@arangodb");
    return query\`
    FOR user IN _users
    FILTER user.age > ${params.age}
    RETURN u.user
    \`.toArray();
    }
    `);

    const result = await db.executeTransaction("_users", action, {
    params: { age: 12 }
    });
    // result contains the return value of the action +
    +
  • Checks whether the database exists.

    +

    Returns Promise<boolean>

    Example

    const db = new Database();
    const result = await db.exists();
    // result indicates whether the database exists +
    +
  • Explains a database query using the given query.

    +

    See the aql!aql template string handler for information about how +to create a query string without manually defining bind parameters nor +having to worry about escaping variables.

    +

    Parameters

    • query: AqlQuery<any>

      An object containing an AQL query string and bind +parameters, e.g. the object returned from an aql!aql template string.

      +
    • Optional options: ExplainOptions & {
          allPlans?: false;
      }

      Options for explaining the query.

      +

    Returns Promise<ArangoApiResponse<SingleExplainResult>>

    Example

    const db = new Database();
    const collection = db.collection("some-collection");
    const explanation = await db.explain(aql`
    FOR doc IN ${collection}
    FILTER doc.flavor == "strawberry"
    RETURN doc._key
    `); +
    +
  • Explains a database query using the given query.

    +

    See the aql!aql template string handler for information about how +to create a query string without manually defining bind parameters nor +having to worry about escaping variables.

    +

    Parameters

    • query: AqlQuery<any>

      An object containing an AQL query string and bind +parameters, e.g. the object returned from an aql!aql template string.

      +
    • Optional options: ExplainOptions & {
          allPlans: true;
      }

      Options for explaining the query.

      +

    Returns Promise<ArangoApiResponse<MultiExplainResult>>

    Example

    const db = new Database();
    const collection = db.collection("some-collection");
    const explanation = await db.explain(
    aql`
    FOR doc IN ${collection}
    FILTER doc.flavor == "strawberry"
    RETURN doc._key
    `,
    { allPlans: true }
    ); +
    +
  • Explains a database query using the given query and bindVars.

    +

    See the aql!aql template string handler for a safer and easier +alternative to passing strings directly.

    +

    Parameters

    • query: string | AqlLiteral

      An AQL query string.

      +
    • Optional bindVars: Record<string, any>

      An object defining bind parameters for the query.

      +
    • Optional options: ExplainOptions & {
          allPlans?: false;
      }

      Options for explaining the query.

      +

    Returns Promise<ArangoApiResponse<SingleExplainResult>>

    Example

    const db = new Database();
    const collection = db.collection("some-collection");
    const explanation = await db.explain(
    `
    FOR doc IN @@collection
    FILTER doc.flavor == "strawberry"
    RETURN doc._key
    `,
    { "@collection": collection.name }
    ); +
    +
  • Explains a database query using the given query and bindVars.

    +

    See the aql!aql template string handler for a safer and easier +alternative to passing strings directly.

    +

    Parameters

    • query: string | AqlLiteral

      An AQL query string.

      +
    • Optional bindVars: Record<string, any>

      An object defining bind parameters for the query.

      +
    • Optional options: ExplainOptions & {
          allPlans: true;
      }

      Options for explaining the query.

      +

    Returns Promise<ArangoApiResponse<MultiExplainResult>>

    Example

    const db = new Database();
    const collection = db.collection("some-collection");
    const explanation = await db.explain(
    `
    FOR doc IN @@collection
    FILTER doc.flavor == "strawberry"
    RETURN doc._key
    `,
    { "@collection": collection.name },
    { allPlans: true }
    ); +
    +
  • Fetches the database description for the active database from the server.

    +

    Returns Promise<DatabaseInfo>

    Example

    const db = new Database();
    const info = await db.get();
    // the database exists +
    +
  • Computes the current cluster imbalance.

    +

    Returns Promise<ClusterRebalanceState>

    Example

    const db = new Database();
    const imbalance = await db.getClusterImbalance(); +
    +
  • Retrieves the log messages from the server's global log.

    +

    Parameters

    Returns Promise<LogEntries>

    Example

    const log = await db.getLogEntries();
    for (let i = 0; i < log.totalAmount; i++) {
    console.log(`${
    new Date(log.timestamp[i] * 1000).toISOString()
    } - [${LogLevel[log.level[i]]}] ${log.text[i]} (#${log.lid[i]})`);
    } +
    +
  • Retrieves the server's current log level for each topic.

    +

    Returns Promise<Record<string, LogLevelSetting>>

    Example

    const levels = await db.getLogLevel();
    console.log(levels.request); // log level for incoming requests +
    +
  • Retrieves the log messages from the server's global log.

    +

    Parameters

    Returns Promise<LogMessage[]>

    Deprecated

    This endpoint has been deprecated in ArangoDB 3.8. +Use Database#getLogEntries instead.

    +

    Example

    const messages = await db.getLogMessages();
    for (const m of messages) {
    console.log(`${m.date} - [${m.level}] ${m.message} (#${m.id})`);
    } +
    +
  • Retrieves information about a mounted service.

    +

    Parameters

    • mount: string

      The service's mount point, relative to the database.

      +

    Returns Promise<ServiceInfo>

    Example

    const db = new Database();
    const info = await db.getService("/my-service");
    // info contains detailed information about the service +
    +
  • Retrieves information about the service's configuration options and their +current values.

    +

    See also Database#replaceServiceConfiguration and +Database#updateServiceConfiguration.

    +

    Parameters

    • mount: string

      The service's mount point, relative to the database.

      +
    • Optional minimal: false

      If set to true, the result will only include each +configuration option's current value. Otherwise it will include the full +definition for each option.

      +

    Returns Promise<Record<string, ServiceConfiguration>>

    Example

    const db = new Database();
    const config = await db.getServiceConfiguration("/my-service");
    for (const [key, option] of Object.entries(config)) {
    console.log(`${option.title} (${key}): ${option.current}`);
    } +
    +
  • Retrieves information about the service's configuration options and their +current values.

    +

    See also Database#replaceServiceConfiguration and +Database#updateServiceConfiguration.

    +

    Parameters

    • mount: string

      The service's mount point, relative to the database.

      +
    • minimal: true

      If set to true, the result will only include each +configuration option's current value. Otherwise it will include the full +definition for each option.

      +

    Returns Promise<Record<string, any>>

    Example

    const db = new Database();
    const config = await db.getServiceConfiguration("/my-service", true);
    for (const [key, value] of Object.entries(config)) {
    console.log(`${key}: ${value}`);
    } +
    +
  • Retrieves information about the service's dependencies and their current +mount points.

    +

    See also Database#replaceServiceDependencies and +Database#updateServiceDependencies.

    +

    Parameters

    • mount: string

      The service's mount point, relative to the database.

      +
    • Optional minimal: false

      If set to true, the result will only include each +dependency's current mount point. Otherwise it will include the full +definition for each dependency.

      +

    Returns Promise<Record<string, SingleServiceDependency | MultiServiceDependency>>

    Example

    const db = new Database();
    const deps = await db.getServiceDependencies("/my-service");
    for (const [key, dep] of Object.entries(deps)) {
    console.log(`${dep.title} (${key}): ${dep.current}`);
    } +
    +
  • Retrieves information about the service's dependencies and their current +mount points.

    +

    See also Database#replaceServiceDependencies and +Database#updateServiceDependencies.

    +

    Parameters

    • mount: string

      The service's mount point, relative to the database.

      +
    • minimal: true

      If set to true, the result will only include each +dependency's current mount point. Otherwise it will include the full +definition for each dependency.

      +

    Returns Promise<Record<string, string | string[]>>

    Example

    const db = new Database();
    const deps = await db.getServiceDependencies("/my-service", true);
    for (const [key, value] of Object.entries(deps)) {
    console.log(`${key}: ${value}`);
    } +
    +
  • Retrieves an Open API compatible Swagger API description object for the +service installed at the given mount point.

    +

    Parameters

    • mount: string

      The service's mount point, relative to the database.

      +

    Returns Promise<SwaggerJson>

    Example

    const db = new Database();
    const spec = await db.getServiceDocumentation("/my-service");
    // spec is a Swagger API description of the service +
    +
  • Retrieves the text content of the service's README or README.md file.

    +

    Returns undefined if no such file could be found.

    +

    Parameters

    • mount: string

      The service's mount point, relative to the database.

      +

    Returns Promise<undefined | string>

    Example

    const db = new Database();
    const readme = await db.getServiceReadme("/my-service");
    if (readme !== undefined) console.log(readme);
    else console.warn(`No README found.`) +
    +
  • Fetches the user data of a single ArangoDB user.

    +

    Parameters

    • username: string

      Name of the ArangoDB user to fetch.

      +

    Returns Promise<ArangoApiResponse<ArangoUser>>

    Example

    const db = new Database();
    const user = await db.getUser("steve");
    // user is the user object for the user named "steve" +
    +
  • Fetches the given ArangoDB user's access level for the database, or the +given collection in the given database.

    +

    Parameters

    • username: string

      Name of the ArangoDB user to fetch the access level for.

      +
    • __namedParameters: UserAccessLevelOptions

    Returns Promise<AccessLevel>

    Example

    const db = new Database();
    const accessLevel = await db.getUserAccessLevel("steve");
    // The access level of the user "steve" has been fetched for the current
    // database. +
    +

    Example

    const db = new Database();
    const accessLevel = await db.getUserAccessLevel("steve", {
    database: "staging"
    });
    // The access level of the user "steve" has been fetched for the "staging"
    // database. +
    +

    Example

    const db = new Database();
    const accessLevel = await db.getUserAccessLevel("steve", {
    collection: "pokemons"
    });
    // The access level of the user "steve" has been fetched for the
    // "pokemons" collection in the current database. +
    +

    Example

    const db = new Database();
    const accessLevel = await db.getUserAccessLevel("steve", {
    database: "staging",
    collection: "pokemons"
    });
    // The access level of the user "steve" has been fetched for the
    // "pokemons" collection in the "staging" database. +
    +

    Example

    const db = new Database();
    const staging = db.database("staging");
    const accessLevel = await db.getUserAccessLevel("steve", {
    database: staging
    });
    // The access level of the user "steve" has been fetched for the "staging"
    // database. +
    +

    Example

    const db = new Database();
    const staging = db.database("staging");
    const accessLevel = await db.getUserAccessLevel("steve", {
    collection: staging.collection("pokemons")
    });
    // The access level of the user "steve" has been fetched for the
    // "pokemons" collection in database "staging". +
    +
  • Fetches an object mapping names of databases to the access level of the +given ArangoDB user for those databases.

    +

    Parameters

    • username: string

      Name of the ArangoDB user to fetch the access levels for.

      +
    • Optional full: false

      Whether access levels for collections should be included.

      +

    Returns Promise<Record<string, AccessLevel>>

    Example

    const db = new Database();
    const accessLevels = await db.getUserDatabases("steve");
    for (const [databaseName, accessLevel] of Object.entries(accessLevels)) {
    console.log(`${databaseName}: ${accessLevel}`);
    } +
    +
  • Fetches an object mapping names of databases to the access level of the +given ArangoDB user for those databases and the collections within each +database.

    +

    Parameters

    • username: string

      Name of the ArangoDB user to fetch the access levels for.

      +
    • full: true

      Whether access levels for collections should be included.

      +

    Returns Promise<Record<string, {
        collections: Record<string, "undefined" | AccessLevel>;
        permission: AccessLevel;
    }>>

    Example

    const db = new Database();
    const accessLevels = await db.getUserDatabases("steve", true);
    for (const [databaseName, obj] of Object.entries(accessLevels)) {
    console.log(`${databaseName}: ${obj.permission}`);
    for (const [collectionName, accessLevel] of Object.entries(obj.collections)) {
    console.log(`${databaseName}/${collectionName}: ${accessLevel}`);
    }
    } +
    +
  • Returns a graph.Graph instance representing the graph with the given +graphName.

    +

    Parameters

    • graphName: string

      Name of the graph.

      +

    Returns Graph

    Example

    const db = new Database();
    const graph = db.graph("some-graph"); +
    +
  • Fetches all graphs from the database and returns an array of graph.Graph +instances for those graphs.

    +

    See also Database#listGraphs.

    +

    Returns Promise<Graph[]>

    Example

    const db = new Database();
    const graphs = await db.graphs();
    // graphs is an array of Graph instances +
    +
  • Installs a new service.

    +

    Parameters

    • mount: string

      The service's mount point, relative to the database.

      +
    • source: string | Blob | File

      The service bundle to install.

      +
    • options: InstallServiceOptions = {}

      Options for installing the service.

      +

    Returns Promise<ServiceInfo>

    Example

    const db = new Database();
    // Using a Buffer in Node.js as source
    const source = new Blob([await fs.readFileSync("./my-foxx-service.zip")]);
    const info = await db.installService("/hello", source); +
    +

    Example

    const db = new Database();
    // Using a Blob in Node.js as source
    const source = await fs.openAsBlob("./my-foxx-service.zip");
    const info = await db.installService("/hello", source); +
    +

    Example

    const db = new Database();
    // Using a File from a browser file input as source
    const element = document.getElementById("my-file-input");
    const source = element.files[0];
    const info = await db.installService("/hello", source); +
    +
  • Returns a job.Job instance for the given jobId.

    +

    Parameters

    • jobId: string

      ID of the async job.

      +

    Returns Job<any>

    Example

    const db = new Database();
    const job = db.job("12345"); +
    +
  • Kills a running query with the given queryId.

    +

    See also Database#listRunningQueries.

    +

    Parameters

    • queryId: string

      The ID of a currently running query.

      +

    Returns Promise<void>

    Example

    const db = new Database();
    const queries = await db.listRunningQueries();
    await Promise.all(queries.map(
    async (query) => {
    if (query.state === "executing") {
    await db.killQuery(query.id);
    }
    }
    )); +
    +
  • Fetches all Analyzers visible in the database and returns an array of +Analyzer descriptions.

    +

    See also Database#analyzers.

    +

    Returns Promise<AnalyzerDescription[]>

    Example

    const db = new Database();
    const analyzers = await db.listAnalyzers();
    // analyzers is an array of Analyzer descriptions +
    +
  • Fetches all collections from the database and returns an array of +collection descriptions.

    +

    See also Database#collections.

    +

    Parameters

    • excludeSystem: boolean = true

      Whether system collections should be excluded.

      +

    Returns Promise<CollectionMetadata[]>

    Example

    const db = new Database();
    const collections = await db.listCollections();
    // collections is an array of collection descriptions
    // not including system collections +
    +

    Example

    const db = new Database();
    const collections = await db.listCollections(false);
    // collections is an array of collection descriptions
    // including system collections +
    +
  • Returns a list of the IDs of all currently available completed async jobs.

    +

    Returns Promise<string[]>

    Example

    const db = new Database();
    const completedJobs = await db.listCompletedJobs();
    console.log(completedJobs); // e.g. ["12345", "67890"] +
    +
  • Fetches all databases from the server and returns an array of their names.

    +

    See also Database#databases and +Database#listUserDatabases.

    +

    Returns Promise<string[]>

    Example

    const db = new Database();
    const names = await db.listDatabases();
    // databases is an array of database names +
    +
  • Fetches a list of all AQL user functions registered with the database.

    +

    Returns Promise<AqlUserFunction[]>

    Example

    const db = new Database();
    const functions = await db.listFunctions();
    const names = functions.map(fn => fn.name); +
    +
  • Fetches all graphs from the database and returns an array of graph +descriptions.

    +

    See also Database#graphs.

    +

    Returns Promise<GraphInfo[]>

    Example

    const db = new Database();
    const graphs = await db.listGraphs();
    // graphs is an array of graph descriptions +
    +
  • (Enterprise Edition only.) Retrieves a list of all locally found hot +backups.

    +

    Parameters

    • Optional id: string | string[]

      If specified, only the backup with the given ID will be +returned.

      +

    Returns Promise<HotBackupList>

    Example

    const backups = await db.listHotBackups();
    for (const backup of backups) {
    console.log(backup.id);
    } +
    +
  • Returns a list of the IDs of all currently pending async jobs.

    +

    Returns Promise<string[]>

    Example

    const db = new Database();
    const pendingJobs = await db.listPendingJobs();
    console.log(pendingJobs); // e.g. ["12345", "67890"] +
    +
  • Fetches a list of information for all currently running queries.

    +

    See also Database#listSlowQueries and Database#killQuery.

    +

    Returns Promise<QueryInfo[]>

    Example

    const db = new Database();
    const queries = await db.listRunningQueries(); +
    +
  • Retrieves a list of scripts defined in the service manifest's "scripts" +section mapped to their human readable representations.

    +

    Parameters

    • mount: string

      The service's mount point, relative to the database.

      +

    Returns Promise<Record<string, string>>

    Example

    const db = new Database();
    const scripts = await db.listServiceScripts("/my-service");
    for (const [name, title] of Object.entries(scripts)) {
    console.log(`${name}: ${title}`);
    } +
    +
  • Fetches a list of all installed service.

    +

    Parameters

    • excludeSystem: boolean = true

      Whether system services should be excluded.

      +

    Returns Promise<ServiceSummary[]>

    Example

    const db = new Database();
    const services = await db.listServices(); +
    +

    Example

    const db = new Database();
    const services = await db.listServices(false); // all services +
    +
  • Fetches a list of information for all recent slow queries.

    +

    See also Database#listRunningQueries and +Database#clearSlowQueries.

    +

    Returns Promise<QueryInfo[]>

    Example

    const db = new Database();
    const queries = await db.listSlowQueries();
    // Only works if slow query tracking is enabled +
    +
  • Fetches all active transactions from the database and returns an array of +transaction descriptions.

    +

    See also Database#transactions.

    +

    Returns Promise<TransactionDetails[]>

    Example

    const db = new Database();
    const transactions = await db.listTransactions();
    // transactions is an array of transaction descriptions +
    +
  • Fetches all databases accessible to the active user from the server and +returns an array of their names.

    +

    See also Database#userDatabases and +Database#listDatabases.

    +

    Returns Promise<string[]>

    Example

    const db = new Database();
    const names = await db.listUserDatabases();
    // databases is an array of database names +
    +
  • Fetches all ArangoDB users visible to the authenticated user and returns +an array of user objects.

    +

    Returns Promise<ArangoUser[]>

    Example

    const db = new Database();
    const users = await db.listUsers();
    // users is an array of user objects +
    +
  • Fetches all Views from the database and returns an array of View +descriptions.

    +

    See also Database#views.

    +

    Returns Promise<ViewDescription[]>

    Example

    const db = new Database();

    const views = await db.listViews();
    // views is an array of View descriptions +
    +
  • Validates the given database credentials and exchanges them for an +authentication token, then uses the authentication token for future +requests and returns it.

    +

    Parameters

    • username: string = "root"

      The username to authenticate with.

      +
    • password: string = ""

      The password to authenticate with.

      +

    Returns Promise<string>

    Example

    const db = new Database();
    await db.login("admin", "hunter2");
    // with an authentication token for the "admin" user. +
    +
  • Parses the given query and returns the result.

    +

    See the aql!aql template string handler for information about how +to create a query string without manually defining bind parameters nor +having to worry about escaping variables.

    +

    Parameters

    • query: string | AqlLiteral | AqlQuery<any>

      An AQL query string or an object containing an AQL query +string and bind parameters, e.g. the object returned from an aql!aql +template string.

      +

    Returns Promise<ParseResult>

    Example

    const db = new Database();
    const collection = db.collection("some-collection");
    const ast = await db.parse(aql`
    FOR doc IN ${collection}
    FILTER doc.flavor == "strawberry"
    RETURN doc._key
    `); +
    +
  • Performs a database query using the given query, then returns a new +cursor.ArrayCursor instance for the result set.

    +

    See the aql!aql template string handler for information about how +to create a query string without manually defining bind parameters nor +having to worry about escaping variables.

    +

    Note: When executing a query in a streaming transaction using the +step method, the resulting cursor will be bound to that transaction and +you do not need to use the step method to consume it.

    +

    Type Parameters

    • T = any

    Parameters

    • query: AqlQuery<T>

      An object containing an AQL query string and bind +parameters, e.g. the object returned from an aql!aql template string.

      +
    • Optional options: QueryOptions

      Options for the query execution.

      +

    Returns Promise<ArrayCursor<T>>

    Example

    const db = new Database();
    const active = true;
    const Users = db.collection("_users");

    // Using an aql template string:
    // Bind parameters are automatically extracted and arangojs collections
    // are automatically passed as collection bind parameters.
    const cursor = await db.query(aql`
    FOR u IN ${Users}
    FILTER u.authData.active == ${active}
    RETURN u.user
    `);
    // cursor is a cursor for the query result +
    +

    Example

    const db = new Database();
    const active = true;
    const Users = db.collection("_users");

    // Using an object with a regular multi-line string
    const cursor = await db.query({
    query: `
    FOR u IN @@users
    FILTER u.authData.active == @active
    RETURN u.user
    `,
    bindVars: { active: active, "@users": Users.name }
    }); +
    +
  • Performs a database query using the given query and bindVars, then +returns a new cursor.ArrayCursor instance for the result set.

    +

    See the aql!aql template string handler for a safer and easier +alternative to passing strings directly.

    +

    Note: When executing a query in a streaming transaction using the +step method, the resulting cursor will be bound to that transaction and +you do not need to use the step method to consume it.

    +

    Type Parameters

    • T = any

    Parameters

    • query: string | AqlLiteral

      An AQL query string.

      +
    • Optional bindVars: Record<string, any>

      An object defining bind parameters for the query.

      +
    • Optional options: QueryOptions

      Options for the query execution.

      +

    Returns Promise<ArrayCursor<T>>

    Example

    const db = new Database();
    const active = true;
    const Users = db.collection("_users");

    const cursor = await db.query(
    // A normal multi-line string
    `
    FOR u IN @@users
    FILTER u.authData.active == @active
    RETURN u.user
    `,
    { active: active, "@users": Users.name }
    ); +
    +

    Example

    const db = new Database();
    const active = true;
    const Users = db.collection("_users");

    const cursor = await db.query(
    // An AQL literal created from a normal multi-line string
    aql.literal(`
    FOR u IN @@users
    FILTER u.authData.active == @active
    RETURN u.user
    `),
    { active: active, "@users": Users.name }
    ); +
    +
  • Fetches the available optimizer rules.

    +

    Returns Promise<QueryOptimizerRule[]>

    Example

    const db = new Database();
    const rules = await db.queryRules();
    for (const rule of rules) {
    console.log(rule.name);
    } +
    +
  • Fetches the query tracking properties.

    +

    Returns Promise<QueryTracking>

    Example

    const db = new Database();
    const tracking = await db.queryTracking();
    console.log(tracking.enabled); +
    +
  • Modifies the query tracking properties.

    +

    Parameters

    Returns Promise<QueryTracking>

    Example

    const db = new Database();
    // track up to 5 slow queries exceeding 5 seconds execution time
    await db.setQueryTracking({
    enabled: true,
    trackSlowQueries: true,
    maxSlowQueries: 5,
    slowQueryThreshold: 5
    }); +
    +
  • Computes a set of move shard operations to rebalance the cluster and +executes them.

    +

    Parameters

    Returns Promise<ClusterRebalanceResult>

    Example

    const db = new Database();
    const result = await db.rebalanceCluster({
    moveLeaders: true,
    moveFollowers: true
    });
    // The cluster is now rebalanced. +
    +
  • Removes the ArangoDB user with the given username from the server.

    +

    Parameters

    • username: string

      Name of the ArangoDB user to remove.

      +

    Returns Promise<ArangoApiResponse<Record<string, never>>>

    Example

    const db = new Database();
    await db.removeUser("steve");
    // The user "steve" has been removed +
    +
  • Renames the collection collectionName to newName.

    +

    Additionally removes any stored Collection instance for +collectionName from the Database instance's internal cache.

    +

    Note: Renaming collections may not be supported when ArangoDB is +running in a cluster configuration.

    +

    Parameters

    • collectionName: string

      Current name of the collection.

      +
    • newName: string

      The new name of the collection.

      +

    Returns Promise<ArangoApiResponse<CollectionMetadata>>

  • Renames the view viewName to newName.

    +

    Additionally removes any stored view.View instance for viewName from +the Database instance's internal cache.

    +

    Note: Renaming views may not be supported when ArangoDB is running in +a cluster configuration.

    +

    Parameters

    • viewName: string

      Current name of the view.

      +
    • newName: string

      The new name of the view.

      +

    Returns Promise<ArangoApiResponse<ViewDescription>>

  • Attempts to renew the authentication token passed to Database#useBearerAuth +or returned and used by Database#login. If a new authentication +token is issued, it will be used for future requests and returned.

    +

    Returns Promise<null | string>

    Example

    const db = new Database();
    await db.login("admin", "hunter2");
    // ... later ...
    const newToken = await db.renewAuthToken();
    if (!newToken) // no new token issued +
    +
  • Replaces an existing service with a new service by completely removing the +old service and installing a new service at the same mount point.

    +

    Parameters

    • mount: string

      The service's mount point, relative to the database.

      +
    • source: string | Blob | File

      The service bundle to install.

      +
    • options: ReplaceServiceOptions = {}

      Options for replacing the service.

      +

    Returns Promise<ServiceInfo>

    Example

    const db = new Database();
    // Using a Buffer in Node.js as source
    const source = new Blob([await fs.readFileSync("./my-foxx-service.zip")]);
    const info = await db.replaceService("/hello", source); +
    +

    Example

    const db = new Database();
    // Using a Blob in Node.js as source
    const source = await fs.openAsBlob("./my-foxx-service.zip");
    const info = await db.replaceService("/hello", source); +
    +

    Example

    const db = new Database();
    // Using a File from a browser file input as source
    const element = document.getElementById("my-file-input");
    const source = element.files[0];
    const info = await db.replaceService("/hello", source); +
    +
  • Replaces the configuration of the given service, discarding any existing +values for options not specified.

    +

    See also Database#updateServiceConfiguration and +Database#getServiceConfiguration.

    +

    Parameters

    • mount: string

      The service's mount point, relative to the database.

      +
    • cfg: Record<string, any>

      An object mapping configuration option names to values.

      +
    • Optional minimal: false

      If set to true, the result will only include each +configuration option's current value and warning (if any). +Otherwise it will include the full definition for each option.

      +

    Returns Promise<Record<string, ServiceConfiguration & {
        warning?: string;
    }>>

    Example

    const db = new Database();
    const config = { currency: "USD", locale: "en-US" };
    const info = await db.replaceServiceConfiguration("/my-service", config);
    for (const [key, option] of Object.entries(info)) {
    console.log(`${option.title} (${key}): ${option.value}`);
    if (option.warning) console.warn(`Warning: ${option.warning}`);
    } +
    +
  • Replaces the configuration of the given service, discarding any existing +values for options not specified.

    +

    See also Database#updateServiceConfiguration and +Database#getServiceConfiguration.

    +

    Parameters

    • mount: string

      The service's mount point, relative to the database.

      +
    • cfg: Record<string, any>

      An object mapping configuration option names to values.

      +
    • minimal: true

      If set to true, the result will only include each +configuration option's current value and warning (if any). +Otherwise it will include the full definition for each option.

      +

    Returns Promise<{
        values: Record<string, any>;
        warnings: Record<string, string>;
    }>

    Example

    const db = new Database();
    const config = { currency: "USD", locale: "en-US" };
    const info = await db.replaceServiceConfiguration("/my-service", config);
    for (const [key, value] of Object.entries(info.values)) {
    console.log(`${key}: ${value}`);
    if (info.warnings[key]) console.warn(`Warning: ${info.warnings[key]}`);
    } +
    +
  • Replaces the dependencies of the given service, discarding any existing +mount points for dependencies not specified.

    +

    See also Database#updateServiceDependencies and +Database#getServiceDependencies.

    +

    Parameters

    • mount: string

      The service's mount point, relative to the database.

      +
    • deps: Record<string, string>
    • Optional minimal: false

      If set to true, the result will only include each +dependency's current mount point. Otherwise it will include the full +definition for each dependency.

      +

    Returns Promise<Record<string, (SingleServiceDependency | MultiServiceDependency) & {
        warning?: string;
    }>>

    Example

    const db = new Database();
    const deps = { mailer: "/mailer-api", auth: "/remote-auth" };
    const info = await db.replaceServiceDependencies("/my-service", deps);
    for (const [key, dep] of Object.entries(info)) {
    console.log(`${dep.title} (${key}): ${dep.current}`);
    if (dep.warning) console.warn(`Warning: ${dep.warning}`);
    } +
    +
  • Replaces the dependencies of the given service, discarding any existing +mount points for dependencies not specified.

    +

    See also Database#updateServiceDependencies and +Database#getServiceDependencies.

    +

    Parameters

    • mount: string

      The service's mount point, relative to the database.

      +
    • deps: Record<string, string>
    • minimal: true

      If set to true, the result will only include each +dependency's current mount point. Otherwise it will include the full +definition for each dependency.

      +

    Returns Promise<{
        values: Record<string, string>;
        warnings: Record<string, string>;
    }>

    Example

    const db = new Database();
    const deps = { mailer: "/mailer-api", auth: "/remote-auth" };
    const info = await db.replaceServiceDependencies(
    "/my-service",
    deps,
    true
    );
    for (const [key, value] of Object.entries(info)) {
    console.log(`${key}: ${value}`);
    if (info.warnings[key]) console.warn(`Warning: ${info.warnings[key]}`);
    } +
    +
  • Replaces the ArangoDB user's option with the new options.

    +

    Parameters

    • username: string

      Name of the ArangoDB user to modify.

      +
    • options: UserOptions

      New options to replace the user's existing options.

      +

    Returns Promise<ArangoApiResponse<ArangoUser>>

    Example

    const db = new Database();
    const user = await db.replaceUser("steve", { passwd: "", active: false });
    // The user "steve" has been set to inactive with an empty password +
    +
  • (Enteprise Edition only.) Restores a consistent local hot backup.

    +

    Returns the directory path of the restored backup.

    +

    Parameters

    • id: string

      The ID of the backup to restore.

      +

    Returns Promise<string>

    Example

    await db.restoreHotBackup("2023-09-19T15.38.21Z_example");
    // the backup has been restored +
    +
  • Returns a new route.Route instance for the given path (relative to the +database) that can be used to perform arbitrary HTTP requests.

    +

    Parameters

    • Optional path: string

      The database-relative URL of the route. Defaults to the +database API root.

      +
    • Optional headers: Headers | Record<string, string>

      Default headers that should be sent with each request to +the route.

      +

    Returns Route

    Example

    const db = new Database();
    const myFoxxService = db.route("my-foxx-service");
    const response = await myFoxxService.post("users", {
    username: "admin",
    password: "hunter2"
    });
    // response.body is the result of
    // POST /_db/_system/my-foxx-service/users
    // with JSON request body '{"username": "admin", "password": "hunter2"}' +
    +
  • Executes a service script and retrieves its result exposed as +module.exports (if any).

    +

    Parameters

    • mount: string

      The service's mount point, relative to the database.

      +
    • name: string

      Name of the service script to execute as defined in the +service manifest.

      +
    • Optional params: any

      Arbitrary value that will be exposed to the script as +argv[0] in the service context (e.g. module.context.argv[0]). +Must be serializable to JSON.

      +

    Returns Promise<any>

    Example

    const db = new Database();
    const result = await db.runServiceScript(
    "/my-service",
    "create-user",
    {
    username: "service_admin",
    password: "hunter2"
    }
    ); +
    +
  • Runs the tests of a given service and returns the results using the +"default" reporter.

    +

    Parameters

    • mount: string

      The service's mount point, relative to the database.

      +
    • Optional options: {
          filter?: string;
          idiomatic?: false;
          reporter?: "default";
      }

      Options for running the tests.

      +
      • Optional filter?: string

        If set, only tests with full names including this exact string will be +executed.

        +
      • Optional idiomatic?: false

        Whether the reporter should use "idiomatic" mode. Has no effect when +using the "default" or "suite" reporters.

        +
      • Optional reporter?: "default"

    Returns Promise<ServiceTestDefaultReport>

    Example

    const db = new Database();
    const testReport = await db.runServiceTests("/my-foxx"); +
    +
  • Runs the tests of a given service and returns the results using the +"suite" reporter, which groups the test result by test suite.

    +

    Parameters

    • mount: string

      The service's mount point, relative to the database.

      +
    • options: {
          filter?: string;
          idiomatic?: false;
          reporter: "suite";
      }

      Options for running the tests.

      +
      • Optional filter?: string

        If set, only tests with full names including this exact string will be +executed.

        +
      • Optional idiomatic?: false

        Whether the reporter should use "idiomatic" mode. Has no effect when +using the "default" or "suite" reporters.

        +
      • reporter: "suite"

    Returns Promise<ServiceTestSuiteReport>

    Example

    const db = new Database();
    const suiteReport = await db.runServiceTests(
    "/my-foxx",
    { reporter: "suite" }
    ); +
    +
  • Runs the tests of a given service and returns the results using the +"stream" reporter, which represents the results as a sequence of tuples +representing events.

    +

    Parameters

    • mount: string

      The service's mount point, relative to the database.

      +
    • options: {
          filter?: string;
          idiomatic?: false;
          reporter: "stream";
      }

      Options for running the tests.

      +
      • Optional filter?: string

        If set, only tests with full names including this exact string will be +executed.

        +
      • Optional idiomatic?: false

        Whether the reporter should use "idiomatic" mode. If set to true, +the results will be returned as a formatted string.

        +
      • reporter: "stream"

    Returns Promise<ServiceTestStreamReport>

    Example

    const db = new Database();
    const streamEvents = await db.runServiceTests(
    "/my-foxx",
    { reporter: "stream" }
    ); +
    +
  • Runs the tests of a given service and returns the results using the +"tap" reporter, which represents the results as an array of strings using +the "tap" format.

    +

    Parameters

    • mount: string

      The service's mount point, relative to the database.

      +
    • options: {
          filter?: string;
          idiomatic?: false;
          reporter: "tap";
      }

      Options for running the tests.

      +
      • Optional filter?: string

        If set, only tests with full names including this exact string will be +executed.

        +
      • Optional idiomatic?: false

        Whether the reporter should use "idiomatic" mode. If set to true, +the results will be returned as a formatted string.

        +
      • reporter: "tap"

    Returns Promise<ServiceTestTapReport>

    Example

    const db = new Database();
    const tapLines = await db.runServiceTests(
    "/my-foxx",
    { reporter: "tap" }
    ); +
    +
  • Runs the tests of a given service and returns the results using the +"xunit" reporter, which represents the results as an XML document using +the JSONML exchange format.

    +

    Parameters

    • mount: string

      The service's mount point, relative to the database.

      +
    • options: {
          filter?: string;
          idiomatic?: false;
          reporter: "xunit";
      }

      Options for running the tests.

      +
      • Optional filter?: string

        If set, only tests with full names including this exact string will be +executed.

        +
      • Optional idiomatic?: false

        Whether the reporter should use "idiomatic" mode. If set to true, +the results will be returned as a formatted string.

        +
      • reporter: "xunit"

    Returns Promise<ServiceTestXunitReport>

    Example

    const db = new Database();
    const jsonML = await db.runServiceTests(
    "/my-foxx",
    { reporter: "xunit" }
    ); +
    +
  • Runs the tests of a given service and returns the results as a string +using the "stream" reporter in "idiomatic" mode, which represents the +results as a line-delimited JSON stream of tuples representing events.

    +

    Parameters

    • mount: string

      The service's mount point, relative to the database.

      +
    • options: {
          filter?: string;
          idiomatic: true;
          reporter: "stream";
      }

      Options for running the tests.

      +
      • Optional filter?: string

        If set, only tests with full names including this exact string will be +executed.

        +
      • idiomatic: true

        Whether the reporter should use "idiomatic" mode. If set to false, +the results will be returned as an array of tuples instead of a +string.

        +
      • reporter: "stream"

    Returns Promise<string>

    Example

    const db = new Database();
    const streamReport = await db.runServiceTests(
    "/my-foxx",
    { reporter: "stream", idiomatic: true }
    ); +
    +
  • Runs the tests of a given service and returns the results as a string +using the "tap" reporter in "idiomatic" mode, which represents the +results using the "tap" format.

    +

    Parameters

    • mount: string

      The service's mount point, relative to the database.

      +
    • options: {
          filter?: string;
          idiomatic: true;
          reporter: "tap";
      }

      Options for running the tests.

      +
      • Optional filter?: string

        If set, only tests with full names including this exact string will be +executed.

        +
      • idiomatic: true

        Whether the reporter should use "idiomatic" mode. If set to false, +the results will be returned as an array of strings instead of a +single string.

        +
      • reporter: "tap"

    Returns Promise<string>

    Example

    const db = new Database();
    const tapReport = await db.runServiceTests(
    "/my-foxx",
    { reporter: "tap", idiomatic: true }
    ); +
    +
  • Runs the tests of a given service and returns the results as a string +using the "xunit" reporter in "idiomatic" mode, which represents the +results as an XML document.

    +

    Parameters

    • mount: string

      The service's mount point, relative to the database.

      +
    • options: {
          filter?: string;
          idiomatic: true;
          reporter: "xunit";
      }

      Options for running the tests.

      +
      • Optional filter?: string

        If set, only tests with full names including this exact string will be +executed.

        +
      • idiomatic: true

        Whether the reporter should use "idiomatic" mode. If set to false, +the results will be returned using the JSONML exchange format +instead of a string.

        +
      • reporter: "xunit"

    Returns Promise<string>

    Example

    const db = new Database();
    const xml = await db.runServiceTests(
    "/my-foxx",
    { reporter: "xunit", idiomatic: true }
    ); +
    +
  • Sets the server's log level for each of the given topics to the given level.

    +

    Any omitted topics will be left unchanged.

    +

    Parameters

    • levels: Record<string, LogLevelSetting>

      An object mapping topic names to log levels.

      +

    Returns Promise<Record<string, LogLevelSetting>>

    Example

    await db.setLogLevel({ request: "debug" });
    // Debug information will now be logged for each request +
    +
  • Sets the limit for the number of values of the most recently received +server-reported queue times that can be accessed using +Database#queueTime.

    +

    Parameters

    • responseQueueTimeSamples: number

      Number of values to maintain.

      +

    Returns void

  • Enables or disables development mode for the given service.

    +

    Parameters

    • mount: string

      The service's mount point, relative to the database.

      +
    • enabled: boolean = true

      Whether development mode should be enabled or disabled.

      +

    Returns Promise<ServiceInfo>

    Example

    const db = new Database();
    await db.setServiceDevelopmentMode("/my-service", true);
    // the service is now in development mode
    await db.setServiceDevelopmentMode("/my-service", false);
    // the service is now in production mode +
    +
  • Sets the given ArangoDB user's access level for the database, or the +given collection in the given database.

    +

    Parameters

    Returns Promise<ArangoApiResponse<Record<string, AccessLevel>>>

    Example

    const db = new Database();
    await db.setUserAccessLevel("steve", { grant: "rw" });
    // The user "steve" now has read-write access to the current database. +
    +

    Example

    const db = new Database();
    await db.setUserAccessLevel("steve", {
    database: "staging",
    grant: "rw"
    });
    // The user "steve" now has read-write access to the "staging" database. +
    +

    Example

    const db = new Database();
    await db.setUserAccessLevel("steve", {
    collection: "pokemons",
    grant: "rw"
    });
    // The user "steve" now has read-write access to the "pokemons" collection
    // in the current database. +
    +

    Example

    const db = new Database();
    await db.setUserAccessLevel("steve", {
    database: "staging",
    collection: "pokemons",
    grant: "rw"
    });
    // The user "steve" now has read-write access to the "pokemons" collection
    // in the "staging" database. +
    +

    Example

    const db = new Database();
    const staging = db.database("staging");
    await db.setUserAccessLevel("steve", {
    database: staging,
    grant: "rw"
    });
    // The user "steve" now has read-write access to the "staging" database. +
    +

    Example

    const db = new Database();
    const staging = db.database("staging");
    await db.setUserAccessLevel("steve", {
    collection: staging.collection("pokemons"),
    grant: "rw"
    });
    // The user "steve" now has read-write access to the "pokemons" collection
    // in database "staging". +
    +
  • Attempts to initiate a clean shutdown of the server.

    +

    Returns Promise<void>

  • Retrives the server's current system time in milliseconds with microsecond +precision.

    +

    Returns Promise<number>

  • Returns a transaction.Transaction instance for an existing streaming +transaction with the given id.

    +

    See also Database#beginTransaction.

    +

    Parameters

    • transactionId: string

    Returns Transaction

    Example

    const trx1 = await db.beginTransaction(collections);
    const id = trx1.id;
    // later
    const trx2 = db.transaction(id);
    await trx2.commit(); +
    +
  • Fetches all active transactions from the database and returns an array of +transaction.Transaction instances for those transactions.

    +

    See also Database#listTransactions.

    +

    Returns Promise<Transaction[]>

    Example

    const db = new Database();
    const transactions = await db.transactions();
    // transactions is an array of transactions +
    +
  • Completely removes a service from the database.

    +

    Parameters

    • mount: string

      The service's mount point, relative to the database.

      +
    • Optional options: UninstallServiceOptions

      Options for uninstalling the service.

      +

    Returns Promise<void>

    Example

    const db = new Database();
    await db.uninstallService("/my-foxx"); +
    +
  • Updates the configuration of the given service while maintaining any +existing values for options not specified.

    +

    See also Database#replaceServiceConfiguration and +Database#getServiceConfiguration.

    +

    Parameters

    • mount: string

      The service's mount point, relative to the database.

      +
    • cfg: Record<string, any>

      An object mapping configuration option names to values.

      +
    • Optional minimal: false

      If set to true, the result will only include each +configuration option's current value and warning (if any). +Otherwise it will include the full definition for each option.

      +

    Returns Promise<Record<string, ServiceConfiguration & {
        warning?: string;
    }>>

    Example

    const db = new Database();
    const config = { currency: "USD", locale: "en-US" };
    const info = await db.updateServiceConfiguration("/my-service", config);
    for (const [key, option] of Object.entries(info)) {
    console.log(`${option.title} (${key}): ${option.value}`);
    if (option.warning) console.warn(`Warning: ${option.warning}`);
    } +
    +
  • Updates the configuration of the given service while maintaining any +existing values for options not specified.

    +

    See also Database#replaceServiceConfiguration and +Database#getServiceConfiguration.

    +

    Parameters

    • mount: string

      The service's mount point, relative to the database.

      +
    • cfg: Record<string, any>

      An object mapping configuration option names to values.

      +
    • minimal: true

      If set to true, the result will only include each +configuration option's current value and warning (if any). +Otherwise it will include the full definition for each option.

      +

    Returns Promise<{
        values: Record<string, any>;
        warnings: Record<string, string>;
    }>

    Example

    const db = new Database();
    const config = { currency: "USD", locale: "en-US" };
    const info = await db.updateServiceConfiguration("/my-service", config);
    for (const [key, value] of Object.entries(info.values)) {
    console.log(`${key}: ${value}`);
    if (info.warnings[key]) console.warn(`Warning: ${info.warnings[key]}`);
    } +
    +
  • Updates the dependencies of the given service while maintaining any +existing mount points for dependencies not specified.

    +

    See also Database#replaceServiceDependencies and +Database#getServiceDependencies.

    +

    Parameters

    • mount: string

      The service's mount point, relative to the database.

      +
    • deps: Record<string, string>
    • Optional minimal: false

      If set to true, the result will only include each +dependency's current mount point. Otherwise it will include the full +definition for each dependency.

      +

    Returns Promise<Record<string, (SingleServiceDependency | MultiServiceDependency) & {
        warning?: string;
    }>>

    Example

    const db = new Database();
    const deps = { mailer: "/mailer-api", auth: "/remote-auth" };
    const info = await db.updateServiceDependencies("/my-service", deps);
    for (const [key, dep] of Object.entries(info)) {
    console.log(`${dep.title} (${key}): ${dep.current}`);
    if (dep.warning) console.warn(`Warning: ${dep.warning}`);
    } +
    +
  • Updates the dependencies of the given service while maintaining any +existing mount points for dependencies not specified.

    +

    See also Database#replaceServiceDependencies and +Database#getServiceDependencies.

    +

    Parameters

    • mount: string

      The service's mount point, relative to the database.

      +
    • deps: Record<string, string>
    • minimal: true

      If set to true, the result will only include each +dependency's current mount point. Otherwise it will include the full +definition for each dependency.

      +

    Returns Promise<{
        values: Record<string, string>;
        warnings: Record<string, string>;
    }>

    Example

    const db = new Database();
    const deps = { mailer: "/mailer-api", auth: "/remote-auth" };
    const info = await db.updateServiceDependencies(
    "/my-service",
    deps,
    true
    );
    for (const [key, value] of Object.entries(info)) {
    console.log(`${key}: ${value}`);
    if (info.warnings[key]) console.warn(`Warning: ${info.warnings[key]}`);
    } +
    +
  • Sets the password of a given ArangoDB user to the new value.

    +

    Parameters

    • username: string

      Name of the ArangoDB user to change the password for.

      +
    • passwd: string

      New password for the ArangoDB user.

      +

    Returns Promise<ArangoApiResponse<ArangoUser>>

    Example

    const db = new Database();
    const user = await db.updateUser("steve", "hunter2");
    // The user "steve" has received a new password +
    +
  • Updates the ArangoDB user with the new options.

    +

    Parameters

    • username: string

      Name of the ArangoDB user to modify.

      +
    • options: Partial<UserOptions>

      Options of the ArangoDB user to modify.

      +

    Returns Promise<ArangoApiResponse<ArangoUser>>

    Example

    const db = new Database();
    const user = await db.updateUser("steve", { active: false });
    // The user "steve" has been set to inactive +
    +
  • Replaces an existing service with a new service while retaining the old +service's configuration and dependencies.

    +

    Parameters

    • mount: string

      The service's mount point, relative to the database.

      +
    • source: string | Blob | File

      The service bundle to install.

      +
    • options: UpgradeServiceOptions = {}

      Options for upgrading the service.

      +

    Returns Promise<ServiceInfo>

    Example

    const db = new Database();
    // Using a Buffer in Node.js as source
    const source = new Blob([await fs.readFileSync("./my-foxx-service.zip")]);
    const info = await db.upgradeService("/hello", source); +
    +

    Example

    const db = new Database();
    // Using a Blob in Node.js as source
    const source = await fs.openAsBlob("./my-foxx-service.zip");
    const info = await db.upgradeService("/hello", source); +
    +

    Example

    const db = new Database();
    // Using a File from a browser file input as source
    const element = document.getElementById("my-file-input");
    const source = element.files[0];
    const info = await db.upgradeService("/hello", source); +
    +
  • Updates the underlying connection's authorization header to use Basic +authentication with the given username and password, then returns +itself.

    +

    Parameters

    • username: string = "root"

      The username to authenticate with.

      +
    • password: string = ""

      The password to authenticate with.

      +

    Returns this

    Example

    const db = new Database();
    db.useBasicAuth("admin", "hunter2");
    // with the username "admin" and password "hunter2". +
    +
  • Updates the underlying connection's authorization header to use Bearer +authentication with the given authentication token, then returns itself.

    +

    Parameters

    • token: string

      The token to authenticate with.

      +

    Returns this

    Example

    const db = new Database();
    db.useBearerAuth("keyboardcat");
    // The database instance now uses Bearer authentication. +
    +
  • Fetches all databases accessible to the active user from the server and +returns an array of Database instances for those databases.

    +

    See also Database#listUserDatabases and +Database#databases.

    +

    Returns Promise<Database[]>

    Example

    const db = new Database();
    const names = await db.userDatabases();
    // databases is an array of databases +
    +
  • Fetches version information from the ArangoDB server.

    +

    Parameters

    • Optional details: boolean

      If set to true, additional information about the +ArangoDB server will be available as the details property.

      +

    Returns Promise<VersionInfo>

    Example

    const db = new Database();
    const version = await db.version();
    // the version object contains the ArangoDB version information.
    // license: "community" or "enterprise"
    // version: ArangoDB version number
    // server: description of the server +
    +
  • Returns a view.View instance for the given viewName.

    +

    Parameters

    • viewName: string

      Name of the ArangoSearch or SearchAlias View.

      +

    Returns View

    Example

    const db = new Database();
    const view = db.view("potatoes"); +
    +
  • Fetches all Views from the database and returns an array of +view.View instances +for the Views.

    +

    See also Database#listViews.

    +

    Returns Promise<View[]>

    Example

    const db = new Database();
    const views = await db.views();
    // views is an array of ArangoSearch View instances +
    +
  • Performs a request against every known coordinator and returns when the +request has succeeded against every coordinator or the timeout is reached.

    +

    Note: This method is primarily intended to make database setup easier +in cluster scenarios and requires all coordinators to be known to arangojs +before the method is invoked. The method is not useful in single-server or +leader-follower replication scenarios.

    +

    Parameters

    • request: RequestOptions

      Request to perform against each known coordinator.

      +
    • Optional timeout: number

      Maximum number of milliseconds to wait for propagation.

      +

    Returns Promise<void>

    Example

    const db = new Database({ loadBalancingStrategy: "ROUND_ROBIN" });
    await system.acquireHostList();
    const analyzer = db.analyzer("my-analyzer");
    await analyzer.create();
    await db.waitForPropagation(
    { path: `/_api/analyzer/${encodeURIComponent(analyzer.name)}` },
    30000
    );
    // Analyzer has been propagated to all coordinators and can safely be used +
    +
  • Begins and commits a transaction using the given callback. Individual +requests that are part of the transaction need to be wrapped in the step +function passed into the callback. If the promise returned by the callback +is rejected, the transaction will be aborted.

    +

    Collections can be specified as collection names (strings) or objects +implementing the collection.ArangoCollection interface: Collection, +graph.GraphVertexCollection, graph.GraphEdgeCollection as +well as (in TypeScript) collection.DocumentCollection and +collection.EdgeCollection.

    +

    Type Parameters

    • T

    Parameters

    • collections: TransactionCollections

      Collections involved in the transaction.

      +
    • callback: ((step) => Promise<T>)

      Callback function executing the transaction steps.

      +
        • (step): Promise<T>
        • Parameters

          • step: (<T>(callback) => Promise<T>)
              • <T>(callback): Promise<T>
              • Executes the given function locally as a single step of the transaction.

                +

                Type Parameters

                • T

                  Type of the callback's returned promise.

                  +

                Parameters

                • callback: (() => Promise<T>)

                  Callback function returning a promise.

                  +

                  Warning: The callback function should wrap a single call of an async +arangojs method (e.g. a method on a Collection object of a collection +that is involved in the transaction or the db.query method). +If the callback function is async, only the first promise-returning (or +async) method call will be executed as part of the transaction. See the +examples below for how to avoid common mistakes when using this method.

                  +

                  Note: Avoid defining the callback as an async function if possible +as arangojs will throw an error if the callback did not return a promise. +Async functions will return an empty promise by default, making it harder +to notice if you forgot to return something from the callback.

                  +

                  Note: Although almost anything can be wrapped in a callback and passed +to this method, that does not guarantee ArangoDB can actually do it in a +transaction. Refer to the ArangoDB documentation if you are unsure whether +a given operation can be executed as part of a transaction. Generally any +modification or retrieval of data is eligible but modifications of +collections or databases are not.

                  +
                    • (): Promise<T>
                    • Returns Promise<T>

                Returns Promise<T>

                Example

                const db = new Database();
                const vertices = db.collection("vertices");
                const edges = db.collection("edges");
                const trx = await db.beginTransaction({ write: [vertices, edges] });

                // The following code will be part of the transaction
                const left = await trx.step(() => vertices.save({ label: "left" }));
                const right = await trx.step(() => vertices.save({ label: "right" }));

                // Results from preceding actions can be used normally
                await trx.step(() => edges.save({
                _from: left._id,
                _to: right._id,
                data: "potato"
                }));

                // Transaction must be committed for changes to take effected
                // Always call either trx.commit or trx.abort to end a transaction
                await trx.commit(); +
                +

                Example

                // BAD! If the callback is an async function it must only use await once!
                await trx.step(async () => {
                await collection.save(data);
                await collection.save(moreData); // WRONG
                });

                // BAD! Callback function must use only one arangojs call!
                await trx.step(() => {
                return collection.save(data)
                .then(() => collection.save(moreData)); // WRONG
                });

                // BETTER: Wrap every arangojs method call that should be part of the
                // transaction in a separate `trx.step` call
                await trx.step(() => collection.save(data));
                await trx.step(() => collection.save(moreData)); +
                +

                Example

                // BAD! If the callback is an async function it must not await before
                // calling an arangojs method!
                await trx.step(async () => {
                await doSomethingElse();
                return collection.save(data); // WRONG
                });

                // BAD! Any arangojs inside the callback must not happen inside a promise
                // method!
                await trx.step(() => {
                return doSomethingElse()
                .then(() => collection.save(data)); // WRONG
                });

                // BETTER: Perform any async logic needed outside the `trx.step` call
                await doSomethingElse();
                await trx.step(() => collection.save(data));

                // OKAY: You can perform async logic in the callback after the arangojs
                // method call as long as it does not involve additional arangojs method
                // calls, but this makes it easy to make mistakes later
                await trx.step(async () => {
                await collection.save(data);
                await doSomethingDifferent(); // no arangojs method calls allowed
                }); +
                +

                Example

                // BAD! The callback should not use any functions that themselves use any
                // arangojs methods!
                async function saveSomeData() {
                await collection.save(data);
                await collection.save(moreData);
                }
                await trx.step(() => saveSomeData()); // WRONG

                // BETTER: Pass the transaction to functions that need to call arangojs
                // methods inside a transaction
                async function saveSomeData(trx) {
                await trx.step(() => collection.save(data));
                await trx.step(() => collection.save(moreData));
                }
                await saveSomeData(); // no `trx.step` call needed +
                +

                Example

                // BAD! You must wait for the promise to resolve (or await on the
                // `trx.step` call) before calling `trx.step` again!
                trx.step(() => collection.save(data)); // WRONG
                await trx.step(() => collection.save(moreData));

                // BAD! The trx.step callback can not make multiple calls to async arangojs
                // methods, not even using Promise.all!
                await trx.step(() => Promise.all([ // WRONG
                collection.save(data),
                collection.save(moreData),
                ]));

                // BAD! Multiple `trx.step` calls can not run in parallel!
                await Promise.all([ // WRONG
                trx.step(() => collection.save(data)),
                trx.step(() => collection.save(moreData)),
                ]));

                // BETTER: Always call `trx.step` sequentially, one after the other
                await trx.step(() => collection.save(data));
                await trx.step(() => collection.save(moreData));

                // OKAY: The then callback can be used if async/await is not available
                trx.step(() => collection.save(data))
                .then(() => trx.step(() => collection.save(moreData))); +
                +

                Example

                // BAD! The callback will return an empty promise that resolves before
                // the inner arangojs method call has even talked to ArangoDB!
                await trx.step(async () => {
                collection.save(data); // WRONG
                });

                // BETTER: Use an arrow function so you don't forget to return
                await trx.step(() => collection.save(data));

                // OKAY: Remember to always return when using a function body
                await trx.step(() => {
                return collection.save(data); // easy to forget!
                });

                // OKAY: You do not have to use arrow functions but it helps
                await trx.step(function () {
                return collection.save(data);
                }); +
                +

                Example

                // BAD! You can not pass promises instead of a callback!
                await trx.step(collection.save(data)); // WRONG

                // BETTER: Wrap the code in a function and pass the function instead
                await trx.step(() => collection.save(data)); +
                +

                Example

                // WORSE: Calls to non-async arangojs methods don't need to be performed
                // as part of a transaction
                const collection = await trx.step(() => db.collection("my-documents"));

                // BETTER: If an arangojs method is not async and doesn't return promises,
                // call it without `trx.step`
                const collection = db.collection("my-documents"); +
                +

          Returns Promise<T>

    • Optional options: TransactionOptions

      Options for the transaction.

      +

    Returns Promise<T>

    Example

    const vertices = db.collection("vertices");
    const edges = db.collection("edges");
    await db.withTransaction(
    {
    read: ["vertices"],
    write: [edges] // collection instances can be passed directly
    },
    async (step) => {
    const start = await step(() => vertices.document("a"));
    const end = await step(() => vertices.document("b"));
    await step(() => edges.save({ _from: start._id, _to: end._id }));
    }
    ); +
    +
  • Begins and commits a transaction using the given callback. Individual +requests that are part of the transaction need to be wrapped in the step +function passed into the callback. If the promise returned by the callback +is rejected, the transaction will be aborted.

    +

    Collections can be specified as collection names (strings) or objects +implementing the collection.ArangoCollection interface: Collection, +graph.GraphVertexCollection, graph.GraphEdgeCollection as well as +(in TypeScript) collection.DocumentCollection and collection.EdgeCollection.

    +

    Type Parameters

    • T

    Parameters

    • collections: (string | ArangoCollection)[]

      Collections that can be read from and written to +during the transaction.

      +
    • callback: ((step) => Promise<T>)

      Callback function executing the transaction steps.

      +
        • (step): Promise<T>
        • Parameters

          • step: (<T>(callback) => Promise<T>)
              • <T>(callback): Promise<T>
              • Executes the given function locally as a single step of the transaction.

                +

                Type Parameters

                • T

                  Type of the callback's returned promise.

                  +

                Parameters

                • callback: (() => Promise<T>)

                  Callback function returning a promise.

                  +

                  Warning: The callback function should wrap a single call of an async +arangojs method (e.g. a method on a Collection object of a collection +that is involved in the transaction or the db.query method). +If the callback function is async, only the first promise-returning (or +async) method call will be executed as part of the transaction. See the +examples below for how to avoid common mistakes when using this method.

                  +

                  Note: Avoid defining the callback as an async function if possible +as arangojs will throw an error if the callback did not return a promise. +Async functions will return an empty promise by default, making it harder +to notice if you forgot to return something from the callback.

                  +

                  Note: Although almost anything can be wrapped in a callback and passed +to this method, that does not guarantee ArangoDB can actually do it in a +transaction. Refer to the ArangoDB documentation if you are unsure whether +a given operation can be executed as part of a transaction. Generally any +modification or retrieval of data is eligible but modifications of +collections or databases are not.

                  +
                    • (): Promise<T>
                    • Returns Promise<T>

                Returns Promise<T>

                Example

                const db = new Database();
                const vertices = db.collection("vertices");
                const edges = db.collection("edges");
                const trx = await db.beginTransaction({ write: [vertices, edges] });

                // The following code will be part of the transaction
                const left = await trx.step(() => vertices.save({ label: "left" }));
                const right = await trx.step(() => vertices.save({ label: "right" }));

                // Results from preceding actions can be used normally
                await trx.step(() => edges.save({
                _from: left._id,
                _to: right._id,
                data: "potato"
                }));

                // Transaction must be committed for changes to take effected
                // Always call either trx.commit or trx.abort to end a transaction
                await trx.commit(); +
                +

                Example

                // BAD! If the callback is an async function it must only use await once!
                await trx.step(async () => {
                await collection.save(data);
                await collection.save(moreData); // WRONG
                });

                // BAD! Callback function must use only one arangojs call!
                await trx.step(() => {
                return collection.save(data)
                .then(() => collection.save(moreData)); // WRONG
                });

                // BETTER: Wrap every arangojs method call that should be part of the
                // transaction in a separate `trx.step` call
                await trx.step(() => collection.save(data));
                await trx.step(() => collection.save(moreData)); +
                +

                Example

                // BAD! If the callback is an async function it must not await before
                // calling an arangojs method!
                await trx.step(async () => {
                await doSomethingElse();
                return collection.save(data); // WRONG
                });

                // BAD! Any arangojs inside the callback must not happen inside a promise
                // method!
                await trx.step(() => {
                return doSomethingElse()
                .then(() => collection.save(data)); // WRONG
                });

                // BETTER: Perform any async logic needed outside the `trx.step` call
                await doSomethingElse();
                await trx.step(() => collection.save(data));

                // OKAY: You can perform async logic in the callback after the arangojs
                // method call as long as it does not involve additional arangojs method
                // calls, but this makes it easy to make mistakes later
                await trx.step(async () => {
                await collection.save(data);
                await doSomethingDifferent(); // no arangojs method calls allowed
                }); +
                +

                Example

                // BAD! The callback should not use any functions that themselves use any
                // arangojs methods!
                async function saveSomeData() {
                await collection.save(data);
                await collection.save(moreData);
                }
                await trx.step(() => saveSomeData()); // WRONG

                // BETTER: Pass the transaction to functions that need to call arangojs
                // methods inside a transaction
                async function saveSomeData(trx) {
                await trx.step(() => collection.save(data));
                await trx.step(() => collection.save(moreData));
                }
                await saveSomeData(); // no `trx.step` call needed +
                +

                Example

                // BAD! You must wait for the promise to resolve (or await on the
                // `trx.step` call) before calling `trx.step` again!
                trx.step(() => collection.save(data)); // WRONG
                await trx.step(() => collection.save(moreData));

                // BAD! The trx.step callback can not make multiple calls to async arangojs
                // methods, not even using Promise.all!
                await trx.step(() => Promise.all([ // WRONG
                collection.save(data),
                collection.save(moreData),
                ]));

                // BAD! Multiple `trx.step` calls can not run in parallel!
                await Promise.all([ // WRONG
                trx.step(() => collection.save(data)),
                trx.step(() => collection.save(moreData)),
                ]));

                // BETTER: Always call `trx.step` sequentially, one after the other
                await trx.step(() => collection.save(data));
                await trx.step(() => collection.save(moreData));

                // OKAY: The then callback can be used if async/await is not available
                trx.step(() => collection.save(data))
                .then(() => trx.step(() => collection.save(moreData))); +
                +

                Example

                // BAD! The callback will return an empty promise that resolves before
                // the inner arangojs method call has even talked to ArangoDB!
                await trx.step(async () => {
                collection.save(data); // WRONG
                });

                // BETTER: Use an arrow function so you don't forget to return
                await trx.step(() => collection.save(data));

                // OKAY: Remember to always return when using a function body
                await trx.step(() => {
                return collection.save(data); // easy to forget!
                });

                // OKAY: You do not have to use arrow functions but it helps
                await trx.step(function () {
                return collection.save(data);
                }); +
                +

                Example

                // BAD! You can not pass promises instead of a callback!
                await trx.step(collection.save(data)); // WRONG

                // BETTER: Wrap the code in a function and pass the function instead
                await trx.step(() => collection.save(data)); +
                +

                Example

                // WORSE: Calls to non-async arangojs methods don't need to be performed
                // as part of a transaction
                const collection = await trx.step(() => db.collection("my-documents"));

                // BETTER: If an arangojs method is not async and doesn't return promises,
                // call it without `trx.step`
                const collection = db.collection("my-documents"); +
                +

          Returns Promise<T>

    • Optional options: TransactionOptions

      Options for the transaction.

      +

    Returns Promise<T>

    Example

    const vertices = db.collection("vertices");
    const edges = db.collection("edges");
    await db.withTransaction(
    [
    "vertices",
    edges, // collection instances can be passed directly
    ],
    async (step) => {
    const start = await step(() => vertices.document("a"));
    const end = await step(() => vertices.document("b"));
    await step(() => edges.save({ _from: start._id, _to: end._id }));
    }
    ); +
    +
  • Begins and commits a transaction using the given callback. Individual +requests that are part of the transaction need to be wrapped in the step +function passed into the callback. If the promise returned by the callback +is rejected, the transaction will be aborted.

    +

    The Collection can be specified as a collection name (string) or an object +implementing the collection.ArangoCollection interface: Collection, +graph.GraphVertexCollection, graph.GraphEdgeCollection as well as +(in TypeScript) collection.DocumentCollection and collection.EdgeCollection.

    +

    Type Parameters

    • T

    Parameters

    • collection: string | ArangoCollection

      A collection that can be read from and written to +during the transaction.

      +
    • callback: ((step) => Promise<T>)

      Callback function executing the transaction steps.

      +
        • (step): Promise<T>
        • Parameters

          • step: (<T>(callback) => Promise<T>)
              • <T>(callback): Promise<T>
              • Executes the given function locally as a single step of the transaction.

                +

                Type Parameters

                • T

                  Type of the callback's returned promise.

                  +

                Parameters

                • callback: (() => Promise<T>)

                  Callback function returning a promise.

                  +

                  Warning: The callback function should wrap a single call of an async +arangojs method (e.g. a method on a Collection object of a collection +that is involved in the transaction or the db.query method). +If the callback function is async, only the first promise-returning (or +async) method call will be executed as part of the transaction. See the +examples below for how to avoid common mistakes when using this method.

                  +

                  Note: Avoid defining the callback as an async function if possible +as arangojs will throw an error if the callback did not return a promise. +Async functions will return an empty promise by default, making it harder +to notice if you forgot to return something from the callback.

                  +

                  Note: Although almost anything can be wrapped in a callback and passed +to this method, that does not guarantee ArangoDB can actually do it in a +transaction. Refer to the ArangoDB documentation if you are unsure whether +a given operation can be executed as part of a transaction. Generally any +modification or retrieval of data is eligible but modifications of +collections or databases are not.

                  +
                    • (): Promise<T>
                    • Returns Promise<T>

                Returns Promise<T>

                Example

                const db = new Database();
                const vertices = db.collection("vertices");
                const edges = db.collection("edges");
                const trx = await db.beginTransaction({ write: [vertices, edges] });

                // The following code will be part of the transaction
                const left = await trx.step(() => vertices.save({ label: "left" }));
                const right = await trx.step(() => vertices.save({ label: "right" }));

                // Results from preceding actions can be used normally
                await trx.step(() => edges.save({
                _from: left._id,
                _to: right._id,
                data: "potato"
                }));

                // Transaction must be committed for changes to take effected
                // Always call either trx.commit or trx.abort to end a transaction
                await trx.commit(); +
                +

                Example

                // BAD! If the callback is an async function it must only use await once!
                await trx.step(async () => {
                await collection.save(data);
                await collection.save(moreData); // WRONG
                });

                // BAD! Callback function must use only one arangojs call!
                await trx.step(() => {
                return collection.save(data)
                .then(() => collection.save(moreData)); // WRONG
                });

                // BETTER: Wrap every arangojs method call that should be part of the
                // transaction in a separate `trx.step` call
                await trx.step(() => collection.save(data));
                await trx.step(() => collection.save(moreData)); +
                +

                Example

                // BAD! If the callback is an async function it must not await before
                // calling an arangojs method!
                await trx.step(async () => {
                await doSomethingElse();
                return collection.save(data); // WRONG
                });

                // BAD! Any arangojs inside the callback must not happen inside a promise
                // method!
                await trx.step(() => {
                return doSomethingElse()
                .then(() => collection.save(data)); // WRONG
                });

                // BETTER: Perform any async logic needed outside the `trx.step` call
                await doSomethingElse();
                await trx.step(() => collection.save(data));

                // OKAY: You can perform async logic in the callback after the arangojs
                // method call as long as it does not involve additional arangojs method
                // calls, but this makes it easy to make mistakes later
                await trx.step(async () => {
                await collection.save(data);
                await doSomethingDifferent(); // no arangojs method calls allowed
                }); +
                +

                Example

                // BAD! The callback should not use any functions that themselves use any
                // arangojs methods!
                async function saveSomeData() {
                await collection.save(data);
                await collection.save(moreData);
                }
                await trx.step(() => saveSomeData()); // WRONG

                // BETTER: Pass the transaction to functions that need to call arangojs
                // methods inside a transaction
                async function saveSomeData(trx) {
                await trx.step(() => collection.save(data));
                await trx.step(() => collection.save(moreData));
                }
                await saveSomeData(); // no `trx.step` call needed +
                +

                Example

                // BAD! You must wait for the promise to resolve (or await on the
                // `trx.step` call) before calling `trx.step` again!
                trx.step(() => collection.save(data)); // WRONG
                await trx.step(() => collection.save(moreData));

                // BAD! The trx.step callback can not make multiple calls to async arangojs
                // methods, not even using Promise.all!
                await trx.step(() => Promise.all([ // WRONG
                collection.save(data),
                collection.save(moreData),
                ]));

                // BAD! Multiple `trx.step` calls can not run in parallel!
                await Promise.all([ // WRONG
                trx.step(() => collection.save(data)),
                trx.step(() => collection.save(moreData)),
                ]));

                // BETTER: Always call `trx.step` sequentially, one after the other
                await trx.step(() => collection.save(data));
                await trx.step(() => collection.save(moreData));

                // OKAY: The then callback can be used if async/await is not available
                trx.step(() => collection.save(data))
                .then(() => trx.step(() => collection.save(moreData))); +
                +

                Example

                // BAD! The callback will return an empty promise that resolves before
                // the inner arangojs method call has even talked to ArangoDB!
                await trx.step(async () => {
                collection.save(data); // WRONG
                });

                // BETTER: Use an arrow function so you don't forget to return
                await trx.step(() => collection.save(data));

                // OKAY: Remember to always return when using a function body
                await trx.step(() => {
                return collection.save(data); // easy to forget!
                });

                // OKAY: You do not have to use arrow functions but it helps
                await trx.step(function () {
                return collection.save(data);
                }); +
                +

                Example

                // BAD! You can not pass promises instead of a callback!
                await trx.step(collection.save(data)); // WRONG

                // BETTER: Wrap the code in a function and pass the function instead
                await trx.step(() => collection.save(data)); +
                +

                Example

                // WORSE: Calls to non-async arangojs methods don't need to be performed
                // as part of a transaction
                const collection = await trx.step(() => db.collection("my-documents"));

                // BETTER: If an arangojs method is not async and doesn't return promises,
                // call it without `trx.step`
                const collection = db.collection("my-documents"); +
                +

          Returns Promise<T>

    • Optional options: TransactionOptions

      Options for the transaction.

      +

    Returns Promise<T>

    Example

    const vertices = db.collection("vertices");
    const start = vertices.document("a");
    const end = vertices.document("b");
    const edges = db.collection("edges");
    await db.withTransaction(
    edges, // collection instances can be passed directly
    async (step) => {
    await step(() => edges.save({ _from: start._id, _to: end._id }));
    }
    ); +
    +
\ No newline at end of file diff --git a/9.0.0/classes/error.ArangoError.html b/9.0.0/classes/error.ArangoError.html new file mode 100644 index 00000000..d0a4b049 --- /dev/null +++ b/9.0.0/classes/error.ArangoError.html @@ -0,0 +1,17 @@ +ArangoError | arangojs - v9.0.0

Class ArangoError

Represents an error returned by ArangoDB.

+

Hierarchy

  • Error
    • ArangoError

Properties

code: number

HTTP status code included in the server error response object.

+
errorNum: number

ArangoDB error code.

+

See ArangoDB error documentation.

+
name: string = "ArangoError"
response: any

Server response object.

+
prepareStackTrace?: ((err, stackTraces) => any)

Optional override for formatting stack traces

+

Type declaration

    • (err, stackTraces): any
    • Parameters

      • err: Error
      • stackTraces: CallSite[]

      Returns any

stackTraceLimit: number

Methods

  • Returns {
        code: number;
        error: boolean;
        errorMessage: string;
        errorNum: number;
    }

    • code: number
    • error: boolean
    • errorMessage: string
    • errorNum: number
  • Create .stack property on a target object

    +

    Parameters

    • targetObject: object
    • Optional constructorOpt: Function

    Returns void

\ No newline at end of file diff --git a/9.0.0/classes/error.HttpError.html b/9.0.0/classes/error.HttpError.html new file mode 100644 index 00000000..a42910ff --- /dev/null +++ b/9.0.0/classes/error.HttpError.html @@ -0,0 +1,14 @@ +HttpError | arangojs - v9.0.0

Class HttpError

Represents a plain HTTP error response.

+

Hierarchy

  • Error
    • HttpError

Properties

code: number

HTTP status code of the server response.

+
name: string = "HttpError"
response: any

Server response object.

+
prepareStackTrace?: ((err, stackTraces) => any)

Optional override for formatting stack traces

+

Type declaration

    • (err, stackTraces): any
    • Parameters

      • err: Error
      • stackTraces: CallSite[]

      Returns any

stackTraceLimit: number

Methods

  • Returns {
        code: number;
        error: boolean;
    }

    • code: number
    • error: boolean
  • Create .stack property on a target object

    +

    Parameters

    • targetObject: object
    • Optional constructorOpt: Function

    Returns void

\ No newline at end of file diff --git a/9.0.0/classes/graph.Graph.html b/9.0.0/classes/graph.Graph.html new file mode 100644 index 00000000..6a37d19a --- /dev/null +++ b/9.0.0/classes/graph.Graph.html @@ -0,0 +1,97 @@ +Graph | arangojs - v9.0.0

Represents a graph in a database.Database.

+

Accessors

  • get name(): string
  • Name of the graph.

    +

    Returns string

Methods

  • Adds an edge definition to this graph.

    +

    Parameters

    Returns Promise<GraphInfo>

    Example

    const db = new Database();
    const graph = db.graph("some-graph");
    await graph.addEdgeDefinition({
    collection: "edges",
    from: ["start-vertices"],
    to: ["end-vertices"],
    });
    // The edge definition has been added to the graph +
    +
  • Adds the given collection to this graph as a vertex collection.

    +

    Parameters

    Returns Promise<GraphInfo>

    Example

    const db = new Database();
    const graph = db.graph("some-graph");
    await graph.addVertexCollection("more-vertices");
    // The collection "more-vertices" has been added to the graph
    const extra = db.collection("extra-vertices");
    await graph.addVertexCollection(extra);
    // The collection "extra-vertices" has been added to the graph +
    +
  • Creates a graph with the given edgeDefinitions and options for this +graph's name.

    +

    Parameters

    Returns Promise<GraphInfo>

    Example

    const db = new Database();
    const graph = db.graph("some-graph");
    const info = await graph.create([
    {
    collection: "edges",
    from: ["start-vertices"],
    to: ["end-vertices"],
    },
    ]);
    // graph now exists +
    +
  • Deletes the graph from the database.

    +

    Parameters

    • dropCollections: boolean = false

      If set to true, the collections associated with +the graph will also be deleted.

      +

    Returns Promise<boolean>

    Example

    const db = new Database();
    const graph = db.graph("some-graph");
    await graph.drop();
    // the graph "some-graph" no longer exists +
    +
  • Returns a graph.GraphEdgeCollection instance for the given collection +name representing the collection in this graph.

    +

    Type Parameters

    • T extends Record<string, any> = any

      Type to use for document data. Defaults to any.

      +

    Parameters

    Returns GraphEdgeCollection<T>

    Example

    const db = new Database();
    const graph = db.graph("some-graph");
    const info = await graph.create([
    {
    collection: "edges",
    from: ["start-vertices"],
    to: ["end-vertices"],
    },
    ]);
    const graphEdgeCollection = graph.edgeCollection("edges");
    // Access the underlying EdgeCollection API:
    const edgeCollection = graphEdgeCollection.collection; +
    +
  • Fetches all edge collections of this graph from the database and returns +an array of graph.GraphEdgeCollection instances.

    +

    See also graph.Graph#listEdgeCollections.

    +

    Returns Promise<GraphEdgeCollection<any>[]>

    Example

    const db = new Database();
    const graph = db.graph("some-graph");
    const info = await graph.create([
    {
    collection: "edges",
    from: ["start-vertices"],
    to: ["end-vertices"],
    },
    ]);
    const graphEdgeCollections = await graph.edgeCollections();
    for (const collection of graphEdgeCollection) {
    console.log(collection.name);
    // "edges"
    } +
    +
  • Checks whether the graph exists.

    +

    Returns Promise<boolean>

    Example

    const db = new Database();
    const graph = db.graph("some-graph");
    const result = await graph.exists();
    // result indicates whether the graph exists +
    +
  • Retrieves general information about the graph.

    +

    Returns Promise<GraphInfo>

    Example

    const db = new Database();
    const graph = db.graph("some-graph");
    const data = await graph.get();
    // data contains general information about the graph +
    +
  • Fetches all edge collections of this graph from the database and returns +an array of their names.

    +

    See also graph.Graph#edgeCollections.

    +

    Returns Promise<string[]>

    Example

    const db = new Database();
    const graph = db.graph("some-graph");
    const info = await graph.create([
    {
    collection: "edges",
    from: ["start-vertices"],
    to: ["end-vertices"],
    },
    ]);
    const edgeCollectionNames = await graph.listEdgeCollections();
    // ["edges"] +
    +
  • Fetches all vertex collections of this graph from the database and returns +an array of their names.

    +

    See also graph.Graph#vertexCollections.

    +

    Returns Promise<string[]>

    Example

    const db = new Database();
    const graph = db.graph("some-graph");
    const info = await graph.create([
    {
    collection: "edges",
    from: ["start-vertices"],
    to: ["end-vertices"],
    },
    ]);
    const vertexCollectionNames = await graph.listVertexCollections();
    // ["start-vertices", "end-vertices"] +
    +
  • Removes the edge definition for the given edge collection from this graph.

    +

    Parameters

    • collection: string | ArangoCollection

      Edge collection for which to remove the definition.

      +
    • dropCollection: boolean = false

      If set to true, the collection will also be +deleted from the database.

      +

    Returns Promise<GraphInfo>

    Example

    const db = new Database();
    const graph = db.graph("some-graph");
    const info = await graph.create([
    {
    collection: "edges",
    from: ["start-vertices"],
    to: ["end-vertices"],
    },
    ]);
    await graph.removeEdgeDefinition("edges");
    // The edge definition for "edges" has been replaced +
    +
  • Removes the given collection from this graph as a vertex collection.

    +

    Parameters

    • collection: string | ArangoCollection

      Collection to remove from the graph.

      +
    • dropCollection: boolean = false

      If set to true, the collection will also be +deleted from the database.

      +

    Returns Promise<GraphInfo>

    Example

    const db = new Database();
    const graph = db.graph("some-graph");
    const info = await graph.create([
    {
    collection: "edges",
    from: ["start-vertices"],
    to: ["end-vertices"],
    },
    ]);
    await graph.removeVertexCollection("start-vertices");
    // The collection "start-vertices" is no longer part of the graph. +
    +
  • Replaces an edge definition in this graph. The existing edge definition +for the given edge collection will be overwritten.

    +

    Parameters

    Returns Promise<GraphInfo>

    Example

    const db = new Database();
    const graph = db.graph("some-graph");
    const info = await graph.create([
    {
    collection: "edges",
    from: ["start-vertices"],
    to: ["end-vertices"],
    },
    ]);
    await graph.replaceEdgeDefinition({
    collection: "edges",
    from: ["start-vertices"],
    to: ["other-vertices"],
    });
    // The edge definition for "edges" has been replaced +
    +
  • Replaces an edge definition in this graph. The existing edge definition +for the given edge collection will be overwritten.

    +

    Parameters

    Returns Promise<GraphInfo>

    Example

    const db = new Database();
    const graph = db.graph("some-graph");
    const info = await graph.create([
    {
    collection: "edges",
    from: ["start-vertices"],
    to: ["end-vertices"],
    },
    ]);
    await graph.replaceEdgeDefinition("edges", {
    collection: "edges",
    from: ["start-vertices"],
    to: ["other-vertices"],
    });
    // The edge definition for "edges" has been replaced +
    +
  • Fetches all vertex collections of this graph from the database and returns +an array of graph.GraphVertexCollection instances.

    +

    See also graph.Graph#listVertexCollections.

    +

    Returns Promise<GraphVertexCollection<any>[]>

    Example

    const db = new Database();
    const graph = db.graph("some-graph");
    const info = await graph.create([
    {
    collection: "edges",
    from: ["start-vertices"],
    to: ["end-vertices"],
    },
    ]);
    const vertexCollections = await graph.vertexCollections();
    for (const vertexCollection of vertexCollections) {
    console.log(vertexCollection.name);
    // "start-vertices"
    // "end-vertices"
    } +
    +
\ No newline at end of file diff --git a/9.0.0/classes/graph.GraphEdgeCollection.html b/9.0.0/classes/graph.GraphEdgeCollection.html new file mode 100644 index 00000000..90f33485 --- /dev/null +++ b/9.0.0/classes/graph.GraphEdgeCollection.html @@ -0,0 +1,73 @@ +GraphEdgeCollection | arangojs - v9.0.0

Class GraphEdgeCollection<T>

Represents a collection.EdgeCollection of edges in a graph.Graph.

+

Type Parameters

  • T extends Record<string, any> = any

    Type to use for document data. Defaults to any.

    +

Implements

Accessors

  • get graph(): Graph
  • The graph.Graph instance this edge collection is bound to.

    +

    Returns Graph

  • get name(): string
  • Name of the collection.

    +

    Returns string

Methods

  • Retrieves the edge matching the given key or id.

    +

    Throws an exception when passed a edge or _id from a different +collection, or if the edge does not exist.

    +

    Parameters

    Returns Promise<Edge<T>>

    Example

    const graph = db.graph("some-graph");
    const collection = graph.edgeCollection("friends")
    try {
    const edge = await collection.edge("abc123");
    console.log(edge);
    } catch (e: any) {
    console.error("Could not find edge");
    } +
    +

    Example

    const graph = db.graph("some-graph");
    const collection = graph.edgeCollection("friends")
    const edge = await collection.edge("abc123", { graceful: true });
    if (edge) {
    console.log(edge);
    } else {
    console.error("Edge does not exist");
    } +
    +
  • Retrieves the edge matching the given key or id.

    +

    Throws an exception when passed a edge or _id from a different +collection, or if the edge does not exist.

    +

    Parameters

    • selector: DocumentSelector

      Document _key, _id or object with either of those +properties (e.g. a edge from this collection).

      +
    • graceful: boolean

      If set to true, null is returned instead of an +exception being thrown if the edge does not exist.

      +

    Returns Promise<Edge<T>>

    Example

    const graph = db.graph("some-graph");
    const collection = graph.edgeCollection("friends")
    try {
    const edge = await collection.edge("abc123", false);
    console.log(edge);
    } catch (e: any) {
    console.error("Could not find edge");
    } +
    +

    Example

    const graph = db.graph("some-graph");
    const collection = graph.edgeCollection("friends")
    const edge = await collection.edge("abc123", true);
    if (edge) {
    console.log(edge);
    } else {
    console.error("Edge does not exist");
    } +
    +
  • Checks whether a edge matching the given key or id exists in this +collection.

    +

    Throws an exception when passed a edge or _id from a different +collection.

    +

    Parameters

    • selector: DocumentSelector

      Document _key, _id or object with either of those +properties (e.g. a edge from this collection).

      +

    Returns Promise<boolean>

    Example

    const graph = db.graph("some-graph");
    const collection = graph.edgeCollection("friends")
    const exists = await collection.edgeExists("abc123");
    if (!exists) {
    console.log("Edge does not exist");
    } +
    +
  • Removes an existing edge from the collection.

    +

    Throws an exception when passed a edge or _id from a different +collection.

    +

    Parameters

    Returns Promise<DocumentMetadata & {
        old?: Edge<T>;
    }>

    Example

    const db = new Database();
    const collection = db.collection("friends");
    const doc = await collection.edge("musadir");
    await collection.remove(doc);
    // edge with key "musadir" deleted +
    +
  • Replaces an existing edge in the collection.

    +

    Throws an exception when passed a edge or _id from a different +collection.

    +

    Parameters

    Returns Promise<DocumentMetadata & {
        new?: Edge<T>;
        old?: Edge<T>;
    }>

    Example

    const db = new Database();
    const collection = db.collection("friends");
    await collection.save(
    {
    _key: "musadir",
    _from: "users/rana",
    _to: "users/mudasir",
    active: true,
    best: true
    }
    );
    const result = await collection.replace(
    "musadir",
    { active: false },
    { returnNew: true }
    );
    console.log(result.new.active, result.new.best); // false undefined +
    +
  • Inserts a new edge with the given data into the collection.

    +

    Parameters

    Returns Promise<DocumentMetadata & {
        new?: Edge<T>;
    }>

    Example

    const db = new Database();
    const collection = db.collection("friends");
    const result = await collection.save(
    { _from: "users/rana", _to: "users/mudasir", active: false },
    { returnNew: true }
    ); +
    +
  • Updates an existing edge in the collection.

    +

    Throws an exception when passed a edge or _id from a different +collection.

    +

    Parameters

    Returns Promise<DocumentMetadata & {
        new?: Edge<T>;
        old?: Edge<T>;
    }>

    Example

    const db = new Database();
    const collection = db.collection("friends");
    await collection.save(
    {
    _key: "musadir",
    _from: "users/rana",
    _to: "users/mudasir",
    active: true,
    best: true
    }
    );
    const result = await collection.update(
    "musadir",
    { active: false },
    { returnNew: true }
    );
    console.log(result.new.active, result.new.best); // false true +
    +
\ No newline at end of file diff --git a/9.0.0/classes/graph.GraphVertexCollection.html b/9.0.0/classes/graph.GraphVertexCollection.html new file mode 100644 index 00000000..1ade9e13 --- /dev/null +++ b/9.0.0/classes/graph.GraphVertexCollection.html @@ -0,0 +1,75 @@ +GraphVertexCollection | arangojs - v9.0.0

Class GraphVertexCollection<T>

Represents a collection.DocumentCollection of vertices in a graph.Graph.

+

Type Parameters

  • T extends Record<string, any> = any

    Type to use for document data. Defaults to any.

    +

Implements

Accessors

  • get graph(): Graph
  • The graph.Graph instance this vertex collection is bound to.

    +

    Returns Graph

  • get name(): string
  • Name of the collection.

    +

    Returns string

Methods

  • Removes an existing vertex from the collection.

    +

    Throws an exception when passed a vertex or _id from a different +collection.

    +

    Parameters

    Returns Promise<DocumentMetadata & {
        old?: Document<T>;
    }>

    Example

    const graph = db.graph("some-graph");
    const collection = graph.vertexCollection("vertices");
    await collection.remove("abc123");
    // document with key "abc123" deleted +
    +

    Example

    const graph = db.graph("some-graph");
    const collection = graph.vertexCollection("vertices");
    const doc = await collection.vertex("abc123");
    await collection.remove(doc);
    // document with key "abc123" deleted +
    +
  • Replaces an existing vertex in the collection.

    +

    Throws an exception when passed a vertex or _id from a different +collection.

    +

    Parameters

    Returns Promise<DocumentMetadata & {
        new?: Document<T>;
        old?: Document<T>;
    }>

    Example

    const graph = db.graph("some-graph");
    const collection = graph.collection("vertices");
    await collection.save({ _key: "a", color: "blue", count: 1 });
    const result = await collection.replace(
    "a",
    { color: "red" },
    { returnNew: true }
    );
    console.log(result.new.color, result.new.count); // "red" undefined +
    +
  • Inserts a new vertex with the given data into the collection.

    +

    Parameters

    Returns Promise<DocumentMetadata & {
        new?: Document<T>;
    }>

    Example

    const graph = db.graph("some-graph");
    const collection = graph.vertexCollection("friends");
    const result = await collection.save(
    { _key: "a", color: "blue", count: 1 },
    { returnNew: true }
    );
    console.log(result.new.color, result.new.count); // "blue" 1 +
    +
  • Updates an existing vertex in the collection.

    +

    Throws an exception when passed a vertex or _id from a different +collection.

    +

    Parameters

    Returns Promise<DocumentMetadata & {
        new?: Document<T>;
        old?: Document<T>;
    }>

    Example

    const graph = db.graph("some-graph");
    const collection = graph.collection("vertices");
    await collection.save({ _key: "a", color: "blue", count: 1 });
    const result = await collection.update(
    "a",
    { count: 2 },
    { returnNew: true }
    );
    console.log(result.new.color, result.new.count); // "blue" 2 +
    +
  • Retrieves the vertex matching the given key or id.

    +

    Throws an exception when passed a vertex or _id from a different +collection.

    +

    Parameters

    Returns Promise<Document<T>>

    Example

    const graph = db.graph("some-graph");
    const collection = graph.vertexCollection("vertices");
    try {
    const vertex = await collection.vertex("abc123");
    console.log(vertex);
    } catch (e: any) {
    console.error("Could not find vertex");
    } +
    +

    Example

    const graph = db.graph("some-graph");
    const collection = graph.vertexCollection("vertices");
    const vertex = await collection.vertex("abc123", { graceful: true });
    if (vertex) {
    console.log(vertex);
    } else {
    console.error("Could not find vertex");
    } +
    +
  • Retrieves the vertex matching the given key or id.

    +

    Throws an exception when passed a vertex or _id from a different +collection.

    +

    Parameters

    • selector: DocumentSelector

      Document _key, _id or object with either of those +properties (e.g. a vertex from this collection).

      +
    • graceful: boolean

      If set to true, null is returned instead of an +exception being thrown if the vertex does not exist.

      +

    Returns Promise<Document<T>>

    Example

    const graph = db.graph("some-graph");
    const collection = graph.vertexCollection("vertices");
    try {
    const vertex = await collection.vertex("abc123", false);
    console.log(vertex);
    } catch (e: any) {
    console.error("Could not find vertex");
    } +
    +

    Example

    const graph = db.graph("some-graph");
    const collection = graph.vertexCollection("vertices");
    const vertex = await collection.vertex("abc123", true);
    if (vertex) {
    console.log(vertex);
    } else {
    console.error("Could not find vertex");
    } +
    +
  • Checks whether a vertex matching the given key or id exists in this +collection.

    +

    Throws an exception when passed a vertex or _id from a different +collection.

    +

    Parameters

    • selector: DocumentSelector

      Document _key, _id or object with either of those +properties (e.g. a vertex from this collection).

      +

    Returns Promise<boolean>

    Example

    const graph = db.graph("some-graph");
    const collection = graph.vertexCollection("vertices");
    const exists = await collection.vertexExists("abc123");
    if (!exists) {
    console.log("Vertex does not exist");
    } +
    +
\ No newline at end of file diff --git a/9.0.0/classes/job.Job.html b/9.0.0/classes/job.Job.html new file mode 100644 index 00000000..9631fc31 --- /dev/null +++ b/9.0.0/classes/job.Job.html @@ -0,0 +1,23 @@ +Job | arangojs - v9.0.0

Class Job<T>

Represents an async job in a database.Database.

+

Type Parameters

  • T = any

Accessors

  • get id(): string
  • The job's ID.

    +

    Returns string

  • get isLoaded(): boolean
  • Whether the job's results have been loaded. If set to true, the job's +result can be accessed from Job.result.

    +

    Returns boolean

  • get result(): undefined | T
  • The job's result if it has been loaded or undefined otherwise.

    +

    Returns undefined | T

Methods

  • Cancels the job if it is still running. Note that it may take some time to +actually cancel the job.

    +

    Returns Promise<void>

  • Deletes the result if it has not already been retrieved or deleted.

    +

    Returns Promise<void>

  • Fetches the job's completion state.

    +

    Returns true if the job has completed, false otherwise.

    +

    Returns Promise<boolean>

    Example

    // poll for the job to complete
    while (!(await job.getCompleted())) {
    await timeout(1000);
    }
    // job result is now available and can be loaded
    await job.load();
    console.log(job.result); +
    +
  • Loads the job's result from the database if it is not already loaded.

    +

    Returns Promise<undefined | T>

    Example

    // poll for the job to complete
    while (!job.isLoaded) {
    await timeout(1000);
    const result = await job.load();
    console.log(result);
    }
    // job result is now loaded and can also be accessed from job.result
    console.log(job.result); +
    +
\ No newline at end of file diff --git a/9.0.0/classes/route.Route.html b/9.0.0/classes/route.Route.html new file mode 100644 index 00000000..5dfe6dfd --- /dev/null +++ b/9.0.0/classes/route.Route.html @@ -0,0 +1,108 @@ +Route | arangojs - v9.0.0

Represents an arbitrary route relative to an ArangoDB database.

+

Methods

  • Performs a DELETE request against the given path relative to this route +and returns the server response.

    +

    Parameters

    • path: string

      Path relative to this route.

      +
    • Optional search: Record<string, any> | URLSearchParams

      Query string parameters for this request.

      +
    • Optional headers: Headers | Record<string, string>

      Additional headers to send with this request.

      +

    Returns Promise<ArangojsResponse>

    Example

    const db = new Database();
    const foxx = db.route("/my-foxx-service");
    const res = await foxx.delete("/users/admin"); +
    +
  • Performs a DELETE request against the given path relative to this route +and returns the server response.

    +

    Parameters

    • Optional search: Record<string, any> | URLSearchParams

      Query string parameters for this request.

      +
    • Optional headers: Headers | Record<string, string>

      Additional headers to send with this request.

      +

    Returns Promise<ArangojsResponse>

    Example

    const db = new Database();
    const foxx = db.route("/my-foxx-service");
    const user = foxx.roue("/users/admin");
    const res = await user.delete(); +
    +
  • Performs a GET request against the given path relative to this route +and returns the server response.

    +

    Parameters

    • path: string

      Path relative to this route.

      +
    • Optional search: Record<string, any> | URLSearchParams

      Query string parameters for this request.

      +
    • Optional headers: Headers | Record<string, string>

      Additional headers to send with this request.

      +

    Returns Promise<ArangojsResponse>

    Example

    const db = new Database();
    const foxx = db.route("/my-foxx-service");
    const res = await foxx.get("/users", { offset: 10, limit: 5 }); +
    +
  • Performs a GET request against the given path relative to this route +and returns the server response.

    +

    Parameters

    • Optional search: Record<string, any> | URLSearchParams

      Query string parameters for this request.

      +
    • Optional headers: Headers | Record<string, string>

      Additional headers to send with this request.

      +

    Returns Promise<ArangojsResponse>

    Example

    const db = new Database();
    const foxx = db.route("/my-foxx-service");
    const users = foxx.route("/users");
    const res = await users.get({ offset: 10, limit: 5 }); +
    +
  • Performs a HEAD request against the given path relative to this route +and returns the server response.

    +

    Parameters

    • path: string

      Path relative to this route.

      +
    • Optional search: Record<string, any> | URLSearchParams

      Query string parameters for this request.

      +
    • Optional headers: Headers | Record<string, string>

      Additional headers to send with this request.

      +

    Returns Promise<ArangojsResponse>

    Example

    const db = new Database();
    const foxx = db.route("/my-foxx-service");
    const res = await foxx.head("/users", { offset: 10, limit: 5 }); +
    +
  • Performs a HEAD request against the given path relative to this route +and returns the server response.

    +

    Parameters

    • Optional search: Record<string, any> | URLSearchParams

      Query string parameters for this request.

      +
    • Optional headers: Headers | Record<string, string>

      Additional headers to send with this request.

      +

    Returns Promise<ArangojsResponse>

    Example

    const db = new Database();
    const foxx = db.route("/my-foxx-service");
    const users = foxx.route("/users");
    const res = await users.head({ offset: 10, limit: 5 }); +
    +
  • Performs a PATCH request against the given path relative to this route +and returns the server response.

    +

    Parameters

    • path: string

      Path relative to this route.

      +
    • Optional body: any

      Body of the request object.

      +
    • Optional search: Record<string, any> | URLSearchParams

      Query string parameters for this request.

      +
    • Optional headers: Headers | Record<string, string>

      Additional headers to send with this request.

      +

    Returns Promise<ArangojsResponse>

    Example

    const db = new Database();
    const foxx = db.route("/my-foxx-service");
    const res = await foxx.patch("/users/admin", { password: "admin" }); +
    +
  • Performs a PATCH request against the given path relative to this route +and returns the server response.

    +

    Note: body must not be a string.

    +

    Parameters

    • Optional body: any

      Body of the request object. Must not be a string.

      +
    • Optional search: Record<string, any> | URLSearchParams

      Query string parameters for this request.

      +
    • Optional headers: Headers | Record<string, string>

      Additional headers to send with this request.

      +

    Returns Promise<ArangojsResponse>

    Example

    const db = new Database();
    const foxx = db.route("/my-foxx-service");
    const user = foxx.route("/users/admin")
    const res = await user.patch({ password: "admin" }); +
    +
  • Performs a POST request against the given path relative to this route +and returns the server response.

    +

    Parameters

    • path: string

      Path relative to this route.

      +
    • Optional body: any

      Body of the request object.

      +
    • Optional search: Record<string, any> | URLSearchParams

      Query string parameters for this request.

      +
    • Optional headers: Headers | Record<string, string>

      Additional headers to send with this request.

      +

    Returns Promise<ArangojsResponse>

    Example

    const db = new Database();
    const foxx = db.route("/my-foxx-service");
    const res = await foxx.post("/users", {
    username: "admin",
    password: "hunter2"
    }); +
    +
  • Performs a POST request against the given path relative to this route +and returns the server response.

    +

    Note: body must not be a string.

    +

    Parameters

    • Optional body: any

      Body of the request object. Must not be a string.

      +
    • Optional search: Record<string, any> | URLSearchParams

      Query string parameters for this request.

      +
    • Optional headers: Headers | Record<string, string>

      Additional headers to send with this request.

      +

    Returns Promise<ArangojsResponse>

    Example

    const db = new Database();
    const foxx = db.route("/my-foxx-service");
    const users = foxx.route("/users");
    const res = await users.post({
    username: "admin",
    password: "hunter2"
    }); +
    +
  • Performs a PUT request against the given path relative to this route +and returns the server response.

    +

    Parameters

    • path: string

      Path relative to this route.

      +
    • Optional body: any

      Body of the request object.

      +
    • Optional search: Record<string, any> | URLSearchParams

      Query string parameters for this request.

      +
    • Optional headers: Headers | Record<string, string>

      Additional headers to send with this request.

      +

    Returns Promise<ArangojsResponse>

    Example

    const db = new Database();
    const foxx = db.route("/my-foxx-service");
    const res = await foxx.put("/users/admin/password", { password: "admin" }); +
    +
  • Performs a PUT request against the given path relative to this route +and returns the server response.

    +

    Note: body must not be a string.

    +

    Parameters

    • Optional body: any

      Body of the request object. Must not be a string.

      +
    • Optional search: Record<string, any> | URLSearchParams

      Query string parameters for this request.

      +
    • Optional headers: Headers | Record<string, string>

      Additional headers to send with this request.

      +

    Returns Promise<ArangojsResponse>

    Example

    const db = new Database();
    const foxx = db.route("/my-foxx-service");
    const password = foxx.route("/users/admin/password");
    const res = await password.put({ password: "admin" }); +
    +
  • Performs an arbitrary HTTP request relative to this route and returns the +server response.

    +

    Parameters

    Returns Promise<ArangojsResponse>

    Example

    const db = new Database();
    const foxx = db.route("/my-foxx-service");
    const res = await foxx.request({
    method: "POST",
    path: "/users",
    body: {
    username: "admin",
    password: "hunter2"
    }
    }); +
    +
  • Creates a new route relative to this route that inherits any of its default +HTTP headers.

    +

    Parameters

    • path: string

      Path relative to this route.

      +
    • Optional headers: Headers | Record<string, string>

      Additional headers that will be sent with each request.

      +

    Returns Route

    Example

    const db = new Database();
    const foxx = db.route("/my-foxx-service");
    const users = foxx.route("/users"); +
    +
\ No newline at end of file diff --git a/9.0.0/classes/transaction.Transaction.html b/9.0.0/classes/transaction.Transaction.html new file mode 100644 index 00000000..4f1f7a1b --- /dev/null +++ b/9.0.0/classes/transaction.Transaction.html @@ -0,0 +1,59 @@ +Transaction | arangojs - v9.0.0

Represents a streaming transaction in a database.Database.

+

Accessors

id +

Methods

Accessors

Methods

  • Attempts to abort the transaction to the databases.

    +

    Parameters

    Returns Promise<TransactionStatus>

    Example

    const db = new Database();
    const col = db.collection("some-collection");
    const trx = db.beginTransaction(col);
    await trx.step(() => col.save({ hello: "world" }));
    const result = await trx.abort();
    // result indicates the updated transaction status +
    +
  • Attempts to commit the transaction to the databases.

    +

    Parameters

    Returns Promise<TransactionStatus>

    Example

    const db = new Database();
    const col = db.collection("some-collection");
    const trx = db.beginTransaction(col);
    await trx.step(() => col.save({ hello: "world" }));
    const result = await trx.commit();
    // result indicates the updated transaction status +
    +
  • Checks whether the transaction exists.

    +

    Returns Promise<boolean>

    Example

    const db = new Database();
    const trx = db.transaction("some-transaction");
    const result = await trx.exists();
    // result indicates whether the transaction exists +
    +
  • Retrieves general information about the transaction.

    +

    Returns Promise<TransactionStatus>

    Example

    const db = new Database();
    const col = db.collection("some-collection");
    const trx = db.beginTransaction(col);
    await trx.step(() => col.save({ hello: "world" }));
    const info = await trx.get();
    // the transaction exists +
    +
  • Executes the given function locally as a single step of the transaction.

    +

    Type Parameters

    • T

      Type of the callback's returned promise.

      +

    Parameters

    • callback: (() => Promise<T>)

      Callback function returning a promise.

      +

      Warning: The callback function should wrap a single call of an async +arangojs method (e.g. a method on a Collection object of a collection +that is involved in the transaction or the db.query method). +If the callback function is async, only the first promise-returning (or +async) method call will be executed as part of the transaction. See the +examples below for how to avoid common mistakes when using this method.

      +

      Note: Avoid defining the callback as an async function if possible +as arangojs will throw an error if the callback did not return a promise. +Async functions will return an empty promise by default, making it harder +to notice if you forgot to return something from the callback.

      +

      Note: Although almost anything can be wrapped in a callback and passed +to this method, that does not guarantee ArangoDB can actually do it in a +transaction. Refer to the ArangoDB documentation if you are unsure whether +a given operation can be executed as part of a transaction. Generally any +modification or retrieval of data is eligible but modifications of +collections or databases are not.

      +
        • (): Promise<T>
        • Returns Promise<T>

    Returns Promise<T>

    Example

    const db = new Database();
    const vertices = db.collection("vertices");
    const edges = db.collection("edges");
    const trx = await db.beginTransaction({ write: [vertices, edges] });

    // The following code will be part of the transaction
    const left = await trx.step(() => vertices.save({ label: "left" }));
    const right = await trx.step(() => vertices.save({ label: "right" }));

    // Results from preceding actions can be used normally
    await trx.step(() => edges.save({
    _from: left._id,
    _to: right._id,
    data: "potato"
    }));

    // Transaction must be committed for changes to take effected
    // Always call either trx.commit or trx.abort to end a transaction
    await trx.commit(); +
    +

    Example

    // BAD! If the callback is an async function it must only use await once!
    await trx.step(async () => {
    await collection.save(data);
    await collection.save(moreData); // WRONG
    });

    // BAD! Callback function must use only one arangojs call!
    await trx.step(() => {
    return collection.save(data)
    .then(() => collection.save(moreData)); // WRONG
    });

    // BETTER: Wrap every arangojs method call that should be part of the
    // transaction in a separate `trx.step` call
    await trx.step(() => collection.save(data));
    await trx.step(() => collection.save(moreData)); +
    +

    Example

    // BAD! If the callback is an async function it must not await before
    // calling an arangojs method!
    await trx.step(async () => {
    await doSomethingElse();
    return collection.save(data); // WRONG
    });

    // BAD! Any arangojs inside the callback must not happen inside a promise
    // method!
    await trx.step(() => {
    return doSomethingElse()
    .then(() => collection.save(data)); // WRONG
    });

    // BETTER: Perform any async logic needed outside the `trx.step` call
    await doSomethingElse();
    await trx.step(() => collection.save(data));

    // OKAY: You can perform async logic in the callback after the arangojs
    // method call as long as it does not involve additional arangojs method
    // calls, but this makes it easy to make mistakes later
    await trx.step(async () => {
    await collection.save(data);
    await doSomethingDifferent(); // no arangojs method calls allowed
    }); +
    +

    Example

    // BAD! The callback should not use any functions that themselves use any
    // arangojs methods!
    async function saveSomeData() {
    await collection.save(data);
    await collection.save(moreData);
    }
    await trx.step(() => saveSomeData()); // WRONG

    // BETTER: Pass the transaction to functions that need to call arangojs
    // methods inside a transaction
    async function saveSomeData(trx) {
    await trx.step(() => collection.save(data));
    await trx.step(() => collection.save(moreData));
    }
    await saveSomeData(); // no `trx.step` call needed +
    +

    Example

    // BAD! You must wait for the promise to resolve (or await on the
    // `trx.step` call) before calling `trx.step` again!
    trx.step(() => collection.save(data)); // WRONG
    await trx.step(() => collection.save(moreData));

    // BAD! The trx.step callback can not make multiple calls to async arangojs
    // methods, not even using Promise.all!
    await trx.step(() => Promise.all([ // WRONG
    collection.save(data),
    collection.save(moreData),
    ]));

    // BAD! Multiple `trx.step` calls can not run in parallel!
    await Promise.all([ // WRONG
    trx.step(() => collection.save(data)),
    trx.step(() => collection.save(moreData)),
    ]));

    // BETTER: Always call `trx.step` sequentially, one after the other
    await trx.step(() => collection.save(data));
    await trx.step(() => collection.save(moreData));

    // OKAY: The then callback can be used if async/await is not available
    trx.step(() => collection.save(data))
    .then(() => trx.step(() => collection.save(moreData))); +
    +

    Example

    // BAD! The callback will return an empty promise that resolves before
    // the inner arangojs method call has even talked to ArangoDB!
    await trx.step(async () => {
    collection.save(data); // WRONG
    });

    // BETTER: Use an arrow function so you don't forget to return
    await trx.step(() => collection.save(data));

    // OKAY: Remember to always return when using a function body
    await trx.step(() => {
    return collection.save(data); // easy to forget!
    });

    // OKAY: You do not have to use arrow functions but it helps
    await trx.step(function () {
    return collection.save(data);
    }); +
    +

    Example

    // BAD! You can not pass promises instead of a callback!
    await trx.step(collection.save(data)); // WRONG

    // BETTER: Wrap the code in a function and pass the function instead
    await trx.step(() => collection.save(data)); +
    +

    Example

    // WORSE: Calls to non-async arangojs methods don't need to be performed
    // as part of a transaction
    const collection = await trx.step(() => db.collection("my-documents"));

    // BETTER: If an arangojs method is not async and doesn't return promises,
    // call it without `trx.step`
    const collection = db.collection("my-documents"); +
    +
\ No newline at end of file diff --git a/9.0.0/classes/view.View.html b/9.0.0/classes/view.View.html new file mode 100644 index 00000000..758131aa --- /dev/null +++ b/9.0.0/classes/view.View.html @@ -0,0 +1,44 @@ +View | arangojs - v9.0.0

Represents a View in a database.Database.

+

Accessors

  • get name(): string
  • Name of the View.

    +

    Returns string

Methods

  • Deletes the View from the database.

    +

    Returns Promise<boolean>

    Example

    const db = new Database();
    const view = db.view("some-view");
    await view.drop();
    // the View "some-view" no longer exists +
    +
  • Checks whether the View exists.

    +

    Returns Promise<boolean>

    Example

    const db = new Database();
    const view = db.view("some-view");
    const exists = await view.exists();
    console.log(exists); // indicates whether the View exists +
    +
  • Retrieves general information about the View.

    +

    Returns Promise<ArangoApiResponse<ViewDescription>>

    Example

    const db = new Database();
    const view = db.view("some-view");
    const data = await view.get();
    // data contains general information about the View +
    +
  • Retrieves the View's properties.

    +

    Returns Promise<ArangoApiResponse<ViewProperties>>

    Example

    const db = new Database();
    const view = db.view("some-view");
    const data = await view.properties();
    // data contains the View's properties +
    +
  • Renames the View and updates the instance's name to newName.

    +

    Additionally removes the instance from the database.Database's internal +cache.

    +

    Note: Renaming Views may not be supported when ArangoDB is +running in a cluster configuration.

    +

    Parameters

    • newName: string

      The new name of the View.

      +

    Returns Promise<ArangoApiResponse<ViewDescription>>

    Example

    const db = new Database();
    const view1 = db.view("some-view");
    await view1.rename("other-view");
    const view2 = db.view("some-view");
    const view3 = db.view("other-view");
    // Note all three View instances are different objects but
    // view1 and view3 represent the same ArangoDB view! +
    +
\ No newline at end of file diff --git a/9.0.0/enums/collection.CollectionStatus.html b/9.0.0/enums/collection.CollectionStatus.html new file mode 100644 index 00000000..4806afdb --- /dev/null +++ b/9.0.0/enums/collection.CollectionStatus.html @@ -0,0 +1,8 @@ +CollectionStatus | arangojs - v9.0.0

Enumeration CollectionStatus

Integer values indicating the collection loading status.

+

Enumeration Members

Enumeration Members

DELETED: 5
LOADED: 3
LOADING: 6
NEWBORN: 1
UNLOADED: 2
UNLOADING: 4
\ No newline at end of file diff --git a/9.0.0/enums/collection.CollectionType.html b/9.0.0/enums/collection.CollectionType.html new file mode 100644 index 00000000..934aa8e3 --- /dev/null +++ b/9.0.0/enums/collection.CollectionType.html @@ -0,0 +1,4 @@ +CollectionType | arangojs - v9.0.0

Enumeration CollectionType

Integer values indicating the collection type.

+

Enumeration Members

Enumeration Members

DOCUMENT_COLLECTION: 2
EDGE_COLLECTION: 3
\ No newline at end of file diff --git a/9.0.0/enums/database.LogLevel.html b/9.0.0/enums/database.LogLevel.html new file mode 100644 index 00000000..5d8f509d --- /dev/null +++ b/9.0.0/enums/database.LogLevel.html @@ -0,0 +1,7 @@ +LogLevel | arangojs - v9.0.0

Enumeration LogLevel

Numeric representation of the logging level of a log entry.

+

Enumeration Members

Enumeration Members

DEBUG: 4
ERROR: 1
FATAL: 0
INFO: 3
WARNING: 2
\ No newline at end of file diff --git a/9.0.0/functions/analyzer.isArangoAnalyzer.html b/9.0.0/functions/analyzer.isArangoAnalyzer.html new file mode 100644 index 00000000..694df315 --- /dev/null +++ b/9.0.0/functions/analyzer.isArangoAnalyzer.html @@ -0,0 +1,3 @@ +isArangoAnalyzer | arangojs - v9.0.0

Function isArangoAnalyzer

  • Indicates whether the given value represents an Analyzer.

    +

    Parameters

    • analyzer: any

      A value that might be an Analyzer.

      +

    Returns analyzer is Analyzer

\ No newline at end of file diff --git a/9.0.0/functions/aql.aql.html b/9.0.0/functions/aql.aql.html new file mode 100644 index 00000000..3ee9e2c9 --- /dev/null +++ b/9.0.0/functions/aql.aql.html @@ -0,0 +1,23 @@ +aql | arangojs - v9.0.0

Function aql

  • Template string handler (template tag) for AQL queries.

    +

    The aql tag can be used to write complex AQL queries as multi-line strings +without having to worry about bindVars and the distinction between +collections and regular parameters.

    +

    Tagged template strings will return an AqlQuery object with +query and bindVars attributes reflecting any interpolated values.

    +

    Any collection.ArangoCollection instance used in a query string will +be recognized as a collection reference and generate an AQL collection bind +parameter instead of a regular AQL value bind parameter.

    +

    Note: you should always use the aql template tag when writing +dynamic AQL queries instead of using untagged (normal) template strings. +Untagged template strings will inline any interpolated values and return +a plain string as result. The aql template tag will only inline references +to the interpolated values and produce an AQL query object containing both +the query and the values. This prevents most injection attacks when using +untrusted values in dynamic queries.

    +

    Type Parameters

    • T = any

    Parameters

    • templateStrings: TemplateStringsArray
    • Rest ...args: AqlValue[]

    Returns AqlQuery<T>

    Example

    // Some user-supplied string that may be malicious
    const untrustedValue = req.body.email;

    // Without aql tag: BAD! DO NOT DO THIS!
    const badQuery = `
    FOR user IN users
    FILTER user.email == "${untrustedValue}"
    RETURN user
    `;
    // e.g. if untrustedValue is '" || user.admin == true || "':
    // Query:
    // FOR user IN users
    // FILTER user.email == "" || user.admin == true || ""
    // RETURN user

    // With the aql tag: GOOD! MUCH SAFER!
    const betterQuery = aql`
    FOR user IN users
    FILTER user.email == ${untrustedValue}
    RETURN user
    `;
    // Query:
    // FOR user IN users
    // FILTER user.email == @value0
    // RETURN user
    // Bind parameters:
    // value0 -> untrustedValue +
    +

    Example

    const collection = db.collection("some-collection");
    const minValue = 23;
    const result = await db.query(aql`
    FOR d IN ${collection}
    FILTER d.num > ${minValue}
    RETURN d
    `);

    // Equivalent raw query object
    const result2 = await db.query({
    query: `
    FOR d IN @@collection
    FILTER d.num > @minValue
    RETURN d
    `,
    bindVars: {
    "@collection": collection.name,
    minValue: minValue
    }
    }); +
    +

    Example

    const collection = db.collection("some-collection");
    const color = "green";
    const filter = aql`FILTER d.color == ${color}'`;
    const result = await db.query(aql`
    FOR d IN ${collection}
    ${filter}
    RETURN d
    `); +
    +
\ No newline at end of file diff --git a/9.0.0/functions/aql.isAqlLiteral.html b/9.0.0/functions/aql.isAqlLiteral.html new file mode 100644 index 00000000..3163d23b --- /dev/null +++ b/9.0.0/functions/aql.isAqlLiteral.html @@ -0,0 +1,3 @@ +isAqlLiteral | arangojs - v9.0.0

Function isAqlLiteral

  • Indicates whether the given value is an AqlLiteral.

    +

    Parameters

    • literal: any

      A value that might be an AqlLiteral.

      +

    Returns literal is AqlLiteral

\ No newline at end of file diff --git a/9.0.0/functions/aql.isAqlQuery.html b/9.0.0/functions/aql.isAqlQuery.html new file mode 100644 index 00000000..c9807cc0 --- /dev/null +++ b/9.0.0/functions/aql.isAqlQuery.html @@ -0,0 +1,3 @@ +isAqlQuery | arangojs - v9.0.0

Function isAqlQuery

  • Indicates whether the given value is an AqlQuery.

    +

    Parameters

    • query: any

      A value that might be an AqlQuery.

      +

    Returns query is AqlQuery<any>

\ No newline at end of file diff --git a/9.0.0/functions/aql.join.html b/9.0.0/functions/aql.join.html new file mode 100644 index 00000000..5b22e63c --- /dev/null +++ b/9.0.0/functions/aql.join.html @@ -0,0 +1,15 @@ +join | arangojs - v9.0.0

Function join

  • Constructs AqlQuery objects from an array of arbitrary values.

    +

    Note: Nesting aql template strings is a much safer alternative +for most use cases. This low-level helper function only exists to +complement the aql tag when constructing complex queries from dynamic +arrays of query fragments.

    +

    Parameters

    • values: AqlValue[]

      Array of values to join. These values will behave exactly +like values interpolated in an aql template string.

      +
    • sep: string = " "

      Seperator to insert between values. This value will behave +exactly like a value passed to literal, i.e. it will be +inlined as-is, rather than being converted into a bind parameter.

      +

    Returns AqlQuery

    Example

    const users = db.collection("users");
    const filters = [];
    if (adminsOnly) filters.push(aql`FILTER user.admin`);
    if (activeOnly) filters.push(aql`FILTER user.active`);
    const result = await db.query(aql`
    FOR user IN ${users}
    ${join(filters)}
    RETURN user
    `); +
    +

    Example

    const users = db.collection("users");
    const keys = ["jreyes", "ghermann"];

    // BAD! NEEDLESSLY COMPLEX!
    const docs = keys.map(key => aql`DOCUMENT(${users}, ${key}`));
    const result = await db.query(aql`
    FOR user IN [
    ${join(docs, ", ")}
    ]
    RETURN user
    `);
    // Query:
    // FOR user IN [
    // DOCUMENT(@@value0, @value1), DOCUMENT(@@value0, @value2)
    // ]
    // RETURN user
    // Bind parameters:
    // @value0 -> "users"
    // value1 -> "jreyes"
    // value2 -> "ghermann"

    // GOOD! MUCH SIMPLER!
    const result = await db.query(aql`
    FOR key IN ${keys}
    LET user = DOCUMENT(${users}, key)
    RETURN user
    `);
    // Query:
    // FOR user IN @value0
    // LET user = DOCUMENT(@@value1, key)
    // RETURN user
    // Bind parameters:
    // value0 -> ["jreyes", "ghermann"]
    // @value1 -> "users" +
    +
\ No newline at end of file diff --git a/9.0.0/functions/aql.literal.html b/9.0.0/functions/aql.literal.html new file mode 100644 index 00000000..b6932d58 --- /dev/null +++ b/9.0.0/functions/aql.literal.html @@ -0,0 +1,15 @@ +literal | arangojs - v9.0.0

Function literal

  • Marks an arbitrary scalar value (i.e. a string, number or boolean) as +safe for being inlined directly into AQL queries when used in an aql +template string, rather than being converted into a bind parameter.

    +

    Note: Nesting aql template strings is a much safer alternative for +most use cases. This low-level helper function only exists to help with +rare edge cases where a trusted AQL query fragment must be read from a +string (e.g. when reading query fragments from JSON) and should only be +used as a last resort.

    +

    Parameters

    • value: undefined | null | string | number | boolean | AqlLiteral

    Returns AqlLiteral

    Example

    // BAD! DO NOT DO THIS!
    const sortDirection = literal('ASC');

    // GOOD! DO THIS INSTEAD!
    const sortDirection = aql`ASC`; +
    +

    Example

    // BAD! DO NOT DO THIS!
    const filterColor = literal('FILTER d.color == "green"');
    const result = await db.query(aql`
    FOR d IN some-collection
    ${filterColor}
    RETURN d
    `);

    // GOOD! DO THIS INSTEAD!
    const color = "green";
    const filterColor = aql`FILTER d.color === ${color}`;
    const result = await db.query(aql`
    FOR d IN some-collection
    ${filterColor}
    RETURN d
    `); +
    +

    Example

    // WARNING: We explicitly trust the environment variable to be safe!
    const filter = literal(process.env.FILTER_STATEMENT);
    const users = await db.query(aql`
    FOR user IN users
    ${filter}
    RETURN user
    `); +
    +
\ No newline at end of file diff --git a/9.0.0/functions/collection.collectionToString.html b/9.0.0/functions/collection.collectionToString.html new file mode 100644 index 00000000..5ea7d20b --- /dev/null +++ b/9.0.0/functions/collection.collectionToString.html @@ -0,0 +1,4 @@ +collectionToString | arangojs - v9.0.0

Function collectionToString

  • Coerces the given collection name or ArangoCollection object to +a string representing the collection name.

    +

    Parameters

    Returns string

\ No newline at end of file diff --git a/9.0.0/functions/collection.isArangoCollection.html b/9.0.0/functions/collection.isArangoCollection.html new file mode 100644 index 00000000..61b18006 --- /dev/null +++ b/9.0.0/functions/collection.isArangoCollection.html @@ -0,0 +1,3 @@ +isArangoCollection | arangojs - v9.0.0

Function isArangoCollection

  • Indicates whether the given value represents an ArangoCollection.

    +

    Parameters

    • collection: any

      A value that might be a collection.

      +

    Returns collection is ArangoCollection

\ No newline at end of file diff --git a/9.0.0/functions/database.isArangoDatabase.html b/9.0.0/functions/database.isArangoDatabase.html new file mode 100644 index 00000000..d8e194c0 --- /dev/null +++ b/9.0.0/functions/database.isArangoDatabase.html @@ -0,0 +1,3 @@ +isArangoDatabase | arangojs - v9.0.0

Function isArangoDatabase

  • Indicates whether the given value represents a Database.

    +

    Parameters

    • database: any

      A value that might be a database.

      +

    Returns database is Database

\ No newline at end of file diff --git a/9.0.0/functions/error.isArangoError.html b/9.0.0/functions/error.isArangoError.html new file mode 100644 index 00000000..53ba577c --- /dev/null +++ b/9.0.0/functions/error.isArangoError.html @@ -0,0 +1,3 @@ +isArangoError | arangojs - v9.0.0

Function isArangoError

  • Indicates whether the given value represents an ArangoError.

    +

    Parameters

    • error: any

      A value that might be an ArangoError.

      +

    Returns error is ArangoError

\ No newline at end of file diff --git a/9.0.0/functions/error.isSystemError.html b/9.0.0/functions/error.isSystemError.html new file mode 100644 index 00000000..ae63d50f --- /dev/null +++ b/9.0.0/functions/error.isSystemError.html @@ -0,0 +1,2 @@ +isSystemError | arangojs - v9.0.0

Function isSystemError

  • Indicates whether the given value represents a Node.js SystemError.

    +

    Parameters

    • err: any

    Returns err is SystemError

\ No newline at end of file diff --git a/9.0.0/functions/graph.isArangoGraph.html b/9.0.0/functions/graph.isArangoGraph.html new file mode 100644 index 00000000..37d0d8c5 --- /dev/null +++ b/9.0.0/functions/graph.isArangoGraph.html @@ -0,0 +1,3 @@ +isArangoGraph | arangojs - v9.0.0

Function isArangoGraph

  • Indicates whether the given value represents a graph.Graph.

    +

    Parameters

    • graph: any

      A value that might be a Graph.

      +

    Returns graph is Graph

\ No newline at end of file diff --git a/9.0.0/functions/index.arangojs.html b/9.0.0/functions/index.arangojs.html new file mode 100644 index 00000000..ad6de629 --- /dev/null +++ b/9.0.0/functions/index.arangojs.html @@ -0,0 +1,12 @@ +arangojs | arangojs - v9.0.0

Function arangojs

  • Creates a new Database instance with its own connection pool.

    +

    This is a wrapper function for the database.Database:constructor.

    +

    Parameters

    • Optional config: Config

      An object with configuration options.

      +

    Returns Database

    Example

    const db = arangojs({
    url: "http://127.0.0.1:8529",
    databaseName: "myDatabase",
    auth: { username: "admin", password: "hunter2" },
    }); +
    +
  • Creates a new Database instance with its own connection pool.

    +

    This is a wrapper function for the database.Database:constructor.

    +

    Parameters

    • url: string | string[]

      Base URL of the ArangoDB server or list of server URLs. +Equivalent to the url option in connection.Config.

      +
    • Optional name: string

    Returns Database

    Example

    const db = arangojs("http://127.0.0.1:8529", "myDatabase");
    db.useBasicAuth("admin", "hunter2"); +
    +
\ No newline at end of file diff --git a/9.0.0/functions/transaction.isArangoTransaction.html b/9.0.0/functions/transaction.isArangoTransaction.html new file mode 100644 index 00000000..e7770a53 --- /dev/null +++ b/9.0.0/functions/transaction.isArangoTransaction.html @@ -0,0 +1,3 @@ +isArangoTransaction | arangojs - v9.0.0

Function isArangoTransaction

  • Indicates whether the given value represents a Transaction.

    +

    Parameters

    • transaction: any

      A value that might be a transaction.

      +

    Returns transaction is Transaction

\ No newline at end of file diff --git a/9.0.0/functions/view.isArangoView.html b/9.0.0/functions/view.isArangoView.html new file mode 100644 index 00000000..57d4665c --- /dev/null +++ b/9.0.0/functions/view.isArangoView.html @@ -0,0 +1,3 @@ +isArangoView | arangojs - v9.0.0

Function isArangoView

  • Indicates whether the given value represents a View.

    +

    Parameters

    • view: any

      A value that might be a View.

      +

    Returns view is View

\ No newline at end of file diff --git a/9.0.0/hierarchy.html b/9.0.0/hierarchy.html new file mode 100644 index 00000000..5733b17a --- /dev/null +++ b/9.0.0/hierarchy.html @@ -0,0 +1 @@ +arangojs - v9.0.0
\ No newline at end of file diff --git a/9.0.0/index.html b/9.0.0/index.html new file mode 100644 index 00000000..f44f4b11 --- /dev/null +++ b/9.0.0/index.html @@ -0,0 +1,148 @@ +arangojs - v9.0.0

arangojs - v9.0.0

ArangoDB JavaScript Driver

The official ArangoDB JavaScript client for Node.js and the browser.

+

license - APACHE-2.0 +Tests

+

npm package status

+

Links

+

Install

With npm or yarn

npm install --save arangojs
## - or -
yarn add arangojs +
+

For browsers

When using modern JavaScript tooling with a bundler and compiler (e.g. Babel), +arangojs can be installed using npm or yarn like any other dependency.

+

You can also use jsDelivr CDN during development:

+
<script type="importmap">
{
"imports": {
"arangojs": "https://cdn.jsdelivr.net/npm/arangojs@9.0.0-preview.1/esm/index.js?+esm"
}
}
</script>
<script type="module">
import { Database } from "arangojs";
const db = new Database();
// ...
</script> +
+

Basic usage example

Modern JavaScript/TypeScript with async/await and ES Modules:

+
import { Database, aql } from "arangojs";

const db = new Database();
const Pokemons = db.collection("my-pokemons");

async function main() {
try {
const pokemons = await db.query(aql`
FOR pokemon IN ${Pokemons}
FILTER pokemon.type == "fire"
RETURN pokemon
`);
console.log("My pokemans, let me show you them:");
for await (const pokemon of pokemons) {
console.log(pokemon.name);
}
} catch (err) {
console.error(err.message);
}
}

main(); +
+

Using a different database:

+
const db = new Database({
url: "http://127.0.0.1:8529",
databaseName: "pancakes",
auth: { username: "root", password: "hunter2" },
});

// The credentials can be swapped at any time
db.useBasicAuth("admin", "maplesyrup"); +
+

Old-school JavaScript with promises and CommonJS:

+
var arangojs = require("arangojs");
var Database = arangojs.Database;

var db = new Database();
var pokemons = db.collection("pokemons");

db.query({
query: "FOR p IN @@c FILTER p.type == 'fire' RETURN p",
bindVars: { "@c": "pokemons" },
})
.then(function (cursor) {
console.log("My pokemons, let me show you them:");
return cursor.forEach(function (pokemon) {
console.log(pokemon.name);
});
})
.catch(function (err) {
console.error(err.message);
}); +
+

Note: The examples throughout this documentation use async/await +and other modern language features like multi-line strings and template tags. +When developing for an environment without support for these language features, +substitute promises for await syntax as in the above example.

+

Compatibility

The arangojs driver is compatible with the latest stable version of ArangoDB +available at the time of the driver release and remains compatible with the +two most recent Node.js LTS versions in accordance with the official +Node.js long-term support schedule. Versions +of ArangoDB that have reached their end of life +by the time of a driver release are explicitly not supported.

+

For a list of changes between recent versions of the driver, see the +CHANGELOG.

+

Note: arangojs is only intended to be used in Node.js or a browser to access +ArangoDB from outside the database. If you are looking for the ArangoDB +JavaScript API for Foxx or for accessing ArangoDB +from within the arangosh interactive shell, please refer to the documentation +of the @arangodb module +and the db object instead.

+

Error responses

If arangojs encounters an API error, it will throw an ArangoError with +an errorNum property indicating the ArangoDB error code and the code +property indicating the HTTP status code from the response body.

+

For any other non-ArangoDB error responses (4xx/5xx status code), it will throw +an HttpError error with the status code indicated by the code property.

+

If the server response did not indicate an error but the response body could +not be parsed, a regular SyntaxError may be thrown instead.

+

In all of these cases the server response object will be exposed as the +response property on the error object.

+

If the request failed at a network level or the connection was closed without +receiving a response, the underlying system error will be thrown instead.

+

Common issues

Missing functions or unexpected server errors

Please make sure you are using the latest version of this driver and that the +version of the arangojs documentation you are reading matches that version.

+

Changes in the major version number of arangojs (e.g. 7.x.y -> 8.0.0) indicate +backwards-incompatible changes in the arangojs API that may require changes in +your code when upgrading your version of arangojs.

+

Additionally please ensure that your version of Node.js (or browser) and +ArangoDB are supported by the version of arangojs you are trying to use. See +the compatibility section for additional information.

+

Note: As of June 2018 ArangoDB 2.8 has reached its End of Life and is no +longer supported in arangojs 7 and later. If your code needs to work with +ArangoDB 2.8 you can continue using arangojs 6 and enable ArangoDB 2.8 +compatibility mode by setting the config option arangoVersion: 20800 to +enable the ArangoDB 2.8 compatibility mode in arangojs 6.

+

You can install an older version of arangojs using npm or yarn:

+
# for version 6.x.x
yarn add arangojs@6
# - or -
npm install --save arangojs@6 +
+

No code intelligence when using require instead of import

If you are using require to import the arangojs module in JavaScript, the +default export might not be recognized as a function by the code intelligence +of common editors like Visual Studio Code, breaking auto-complete and other +useful features.

+

As a workaround, use the arangojs function exported by that module instead +of calling the module itself:

+
  const arangojs = require("arangojs");

- const db = arangojs({
+ const db = arangojs.arangojs({
url: ARANGODB_SERVER,
}); +
+

Alternatively you can use the Database class directly:

+
  const arangojs = require("arangojs");
+ const Database = arangojs.Database;

- const db = arangojs({
+ const db = new Database({
url: ARANGODB_SERVER,
}); +
+

Or using object destructuring:

+
- const arangojs = require("arangojs");
+ const { Database } = require("arangojs");

- const db = arangojs({
+ const db = new Database({
url: ARANGODB_SERVER,
}); +
+

Error stack traces contain no useful information

Due to the async, queue-based behavior of arangojs, the stack traces generated +when an error occur rarely provide enough information to determine the location +in your own code where the request was initiated.

+

Using the precaptureStackTraces configuration option, arangojs will attempt +to always generate stack traces proactively when a request is performed, +allowing arangojs to provide more meaningful stack traces at the cost of an +impact to performance even when no error occurs.

+
  const { Database } = require("arangojs");

const db = new Database({
url: ARANGODB_SERVER,
+ precaptureStackTraces: true,
}); +
+

Note that arangojs will attempt to use Error.captureStackTrace if available +and fall back to generating a stack trace by throwing an error. In environments +that do not support the stack property on error objects, this option will +still impact performance but not result in any additional information becoming +available.

+

Node.js ReferenceError: window is not defined

If you compile your Node project using a build tool like Webpack, you may need +to tell it to +target the correct environment:

+
// webpack.config.js
+ "target": "node", +
+

To support use in both browser and Node environments arangojs uses the +package.json browser field, +to substitute browser-specific implementations for certain modules. +Build tools like Webpack will respect this field when targetting a browser +environment and may need to be explicitly told you are targetting Node instead.

+

Node.js with self-signed HTTPS certificates

If you need to support self-signed HTTPS certificates in Node.js, you may have +to override the global fetch agent. At the time of this writing, there is no +official way to do this for the native fetch implementation in Node.js.

+

However as Node.js uses the undici module for its fetch implementation +internally, you can override the global agent by adding undici as a +dependency to your project and using its setGlobalDispatcher as follows:

+
import { Agent, setGlobalDispatcher } from "undici";

setGlobalDispatcher(
new Agent({
ca: [
fs.readFileSync(".ssl/sub.class1.server.ca.pem"),
fs.readFileSync(".ssl/ca.pem"),
],
})
); +
+

Although this is strongly discouraged, it's also possible to disable +HTTPS certificate validation entirely, but note this has +extremely dangerous security implications:

+
import { Agent, setGlobalDispatcher } from "undici";

setGlobalDispatcher(
new Agent({
rejectUnauthorized: false,
})
); +
+

When using arangojs in the browser, self-signed HTTPS certificates need to +be trusted by the browser or use a trusted root certificate.

+

Streaming transactions leak

When using the transaction.step method it is important to be aware of the +limitations of what a callback passed to this method is allowed to do.

+
const collection = db.collection(collectionName);
const trx = db.transaction(transactionId);

// WARNING: This code will not work as intended!
await trx.step(async () => {
await collection.save(doc1);
await collection.save(doc2); // Not part of the transaction!
});

// INSTEAD: Always perform a single operation per step:
await trx.step(() => collection.save(doc1));
await trx.step(() => collection.save(doc2)); +
+

Please refer to the documentation of this method for additional examples.

+

Streaming transactions timeout in cluster

Example messages: transaction not found, transaction already expired.

+

Transactions have +different guarantees +in a cluster.

+

When using arangojs in a cluster with load balancing, you may need to adjust +the value of config.poolSize to accommodate the number of transactions +you need to be able to run in parallel. The default value is likely to be too +low for most cluster scenarios involving frequent streaming transactions.

+

Note: When using a high value for config.poolSize you may have +to adjust the maximum number of threads in the ArangoDB configuration using +the server.maximal-threads option +to support larger numbers of concurrent transactions on the server side.

+

License

The Apache License, Version 2.0. For more information, see the accompanying +LICENSE file.

+

Includes code from x3-linkedlist +used under the MIT license.

+
\ No newline at end of file diff --git a/9.0.0/interfaces/aql.AqlLiteral.html b/9.0.0/interfaces/aql.AqlLiteral.html new file mode 100644 index 00000000..d3bc1ec7 --- /dev/null +++ b/9.0.0/interfaces/aql.AqlLiteral.html @@ -0,0 +1,5 @@ +AqlLiteral | arangojs - v9.0.0

Interface AqlLiteral

An object representing a trusted AQL literal that will be inlined directly +when used in an AQL template or passed to AQL helper functions.

+

Arbitrary values can be converted to trusted AQL literals by passing them +to the literal helper function.

+
interface AqlLiteral {}
\ No newline at end of file diff --git a/9.0.0/interfaces/aql.AqlQuery.html b/9.0.0/interfaces/aql.AqlQuery.html new file mode 100644 index 00000000..ea0afb81 --- /dev/null +++ b/9.0.0/interfaces/aql.AqlQuery.html @@ -0,0 +1,10 @@ +AqlQuery | arangojs - v9.0.0

Interface AqlQuery<T>

Generic AQL query object consisting of an AQL query string and its bind +parameters.

+
interface AqlQuery<T> {
    [type]?: any;
    bindVars: Record<string, any>;
    query: string;
}

Type Parameters

  • T = any

Properties

Properties

[type]?: any
bindVars: Record<string, any>

An object mapping AQL bind parameter names to their respective values.

+

Names of parameters representing collections are prefixed with an +at-symbol.

+
query: string

An AQL query string.

+
\ No newline at end of file diff --git a/9.0.0/interfaces/collection.ArangoCollection.html b/9.0.0/interfaces/collection.ArangoCollection.html new file mode 100644 index 00000000..acd14da1 --- /dev/null +++ b/9.0.0/interfaces/collection.ArangoCollection.html @@ -0,0 +1,6 @@ +ArangoCollection | arangojs - v9.0.0

Interface ArangoCollection

A marker interface identifying objects that can be used in AQL template +strings to create references to ArangoDB collections.

+

See aql!aql.

+
interface ArangoCollection {
    name: string;
}

Hierarchy (view full)

Implemented by

Properties

Properties

name: string

Name of the collection.

+
\ No newline at end of file diff --git a/9.0.0/interfaces/collection.DocumentCollection.html b/9.0.0/interfaces/collection.DocumentCollection.html new file mode 100644 index 00000000..01a251c8 --- /dev/null +++ b/9.0.0/interfaces/collection.DocumentCollection.html @@ -0,0 +1,289 @@ +DocumentCollection | arangojs - v9.0.0

Interface DocumentCollection<EntryResultType, EntryInputType>

Represents an document collection in a database.Database.

+

See EdgeCollection for a variant of this interface more suited for +edge collections.

+

When using TypeScript, collections can be cast to a specific document data +type to increase type safety.

+

Param: T

Type to use for document data. Defaults to any.

+

Example

interface Person {
name: string;
}
const db = new Database();
const documents = db.collection("persons") as DocumentCollection<Person>; +
+
interface DocumentCollection<EntryResultType, EntryInputType> {
    name: string;
    checksum(options?): Promise<ArangoApiResponse<CollectionMetadata & {
        checksum: string;
        revision: string;
    }>>;
    compact(): Promise<ArangoApiResponse<Record<string, never>>>;
    count(): Promise<ArangoApiResponse<CollectionMetadata & CollectionProperties & {
        count: number;
    }>>;
    create(options?): Promise<ArangoApiResponse<CollectionMetadata & CollectionProperties>>;
    document(selector, options?): Promise<Document<EntryResultType>>;
    document(selector, graceful): Promise<Document<EntryResultType>>;
    documentExists(selector, options?): Promise<boolean>;
    documentId(selector): string;
    documents(selectors, options?): Promise<Document<EntryResultType>[]>;
    drop(options?): Promise<ArangoApiResponse<Record<string, never>>>;
    dropIndex(selector): Promise<ArangoApiResponse<{
        id: string;
    }>>;
    ensureIndex(details): Promise<ArangoApiResponse<GenericIndex & {
        cacheEnabled: boolean;
        deduplicate: boolean;
        estimates: boolean;
        fields: string[];
        storedValues?: string[];
        type: "persistent";
    } & {
        isNewlyCreated: boolean;
    }>>;
    ensureIndex(details): Promise<ArangoApiResponse<GenericIndex & {
        expireAfter: number;
        fields: [string];
        selectivityEstimate: number;
        type: "ttl";
    } & {
        isNewlyCreated: boolean;
    }>>;
    ensureIndex(details): Promise<ArangoApiResponse<GenericIndex & {
        fieldValueTypes: "double";
        fields: string[];
        type: "mdi";
    } & {
        isNewlyCreated: boolean;
    }>>;
    ensureIndex(details): Promise<ArangoApiResponse<GenericIndex & {
        bestIndexedLevel: number;
        fields: [string, string] | [string];
        geoJson: boolean;
        legacyPolygons: boolean;
        maxNumCoverCells: number;
        type: "geo";
        worstIndexedLevel: number;
    } & {
        isNewlyCreated: boolean;
    }>>;
    ensureIndex(details): Promise<ArangoApiResponse<GenericIndex & {
        analyzer: string;
        cache?: boolean;
        cleanupIntervalStep: number;
        commitIntervalMsec: number;
        consolidationIntervalMsec: number;
        consolidationPolicy: Required<TierConsolidationPolicy>;
        features: AnalyzerFeature[];
        fields: {
            analyzer?: string;
            cache?: boolean;
            features?: AnalyzerFeature[];
            includeAllFields?: boolean;
            name: string;
            nested?: InvertedIndexNestedField[];
            searchField?: boolean;
            trackListPositions?: boolean;
        }[];
        includeAllFields: boolean;
        optimizeTopK: string[];
        parallelism: number;
        primaryKeyCache?: boolean;
        primarySort: {
            cache?: boolean;
            compression: Compression;
            fields: {
                direction: Direction;
                field: string;
            }[];
        };
        searchField: boolean;
        storedValues: {
            cache?: boolean;
            compression: Compression;
            fields: string[];
        }[];
        trackListPositions: boolean;
        type: "inverted";
        writeBufferActive: number;
        writeBufferIdle: number;
        writeBufferSizeMax: number;
    } & {
        isNewlyCreated: boolean;
    }>>;
    ensureIndex(details): Promise<ArangoApiResponse<Index & {
        isNewlyCreated: boolean;
    }>>;
    exists(): Promise<boolean>;
    figures(details?): Promise<ArangoApiResponse<CollectionMetadata & CollectionProperties & {
        count: number;
        figures: Record<string, any>;
    }>>;
    get(): Promise<ArangoApiResponse<CollectionMetadata>>;
    getResponsibleShard(document): Promise<string>;
    import(data, options?): Promise<CollectionImportResult>;
    import(data, options?): Promise<CollectionImportResult>;
    import(data, options?): Promise<CollectionImportResult>;
    index(selector): Promise<Index>;
    indexes(options?): Promise<Index[]>;
    loadIndexes(): Promise<boolean>;
    properties(): Promise<ArangoApiResponse<CollectionMetadata & CollectionProperties>>;
    properties(properties): Promise<ArangoApiResponse<CollectionMetadata & CollectionProperties>>;
    recalculateCount(): Promise<boolean>;
    remove(selector, options?): Promise<DocumentMetadata & {
        old?: Document<EntryResultType>;
    }>;
    removeAll(selectors, options?): Promise<(DocumentOperationFailure | DocumentMetadata & {
        old?: Document<EntryResultType>;
    })[]>;
    rename(newName): Promise<ArangoApiResponse<CollectionMetadata>>;
    replace(selector, newData, options?): Promise<DocumentMetadata & {
        _oldRev?: string;
    } & {
        new?: Document<EntryResultType>;
        old?: Document<EntryResultType>;
    }>;
    replaceAll(newData, options?): Promise<(DocumentOperationFailure | DocumentMetadata & {
        _oldRev?: string;
    } & {
        new?: Document<EntryResultType>;
        old?: Document<EntryResultType>;
    })[]>;
    revision(): Promise<ArangoApiResponse<CollectionMetadata & CollectionProperties & {
        revision: string;
    }>>;
    save(data, options?): Promise<DocumentMetadata & {
        _oldRev?: string;
    } & {
        new?: Document<EntryResultType>;
        old?: Document<EntryResultType>;
    }>;
    saveAll(data, options?): Promise<(DocumentOperationFailure | DocumentMetadata & {
        _oldRev?: string;
    } & {
        new?: Document<EntryResultType>;
        old?: Document<EntryResultType>;
    })[]>;
    truncate(): Promise<ArangoApiResponse<CollectionMetadata>>;
    update(selector, newData, options?): Promise<DocumentMetadata & {
        _oldRev?: string;
    } & {
        new?: Document<EntryResultType>;
        old?: Document<EntryResultType>;
    }>;
    updateAll(newData, options?): Promise<(DocumentOperationFailure | DocumentMetadata & {
        _oldRev?: string;
    } & {
        new?: Document<EntryResultType>;
        old?: Document<EntryResultType>;
    })[]>;
}

Type Parameters

  • EntryResultType extends Record<string, any> = any
  • EntryInputType extends Record<string, any> = EntryResultType

Hierarchy (view full)

Properties

name: string

Name of the collection.

+

Methods

  • Retrieves the collection checksum.

    +

    Parameters

    Returns Promise<ArangoApiResponse<CollectionMetadata & {
        checksum: string;
        revision: string;
    }>>

    Example

    const db = new Database();
    const collection = db.collection("some-collection");
    const data = await collection.checksum();
    // data contains the collection's checksum +
    +
  • Triggers compaction for a collection.

    +

    Returns Promise<ArangoApiResponse<Record<string, never>>>

    Example

    const db = new Database();
    const collection = db.collection("some-collection");
    await collection.compact();
    // Background compaction is triggered on the collection +
    +
  • Creates a collection with the given options and the instance's name.

    +

    See also database.Database#createCollection and +database.Database#createEdgeCollection.

    +

    Note: When called on an EdgeCollection instance in TypeScript, +the type option must still be set to the correct CollectionType. +Otherwise this will result in the collection being created with the +default type (i.e. as a document collection).

    +

    Parameters

    Returns Promise<ArangoApiResponse<CollectionMetadata & CollectionProperties>>

    Example

    const db = new Database();
    const collection = db.collection("potatoes");
    await collection.create();
    // the document collection "potatoes" now exists +
    +

    Example

    const db = new Database();
    const collection = db.collection("friends");
    await collection.create({ type: CollectionType.EDGE_COLLECTION });
    // the edge collection "friends" now exists +
    +

    Example

    interface Friend {
    startDate: number;
    endDate?: number;
    }
    const db = new Database();
    const collection = db.collection("friends") as EdgeCollection<Friend>;
    // even in TypeScript you still need to indicate the collection type
    // if you want to create an edge collection
    await collection.create({ type: CollectionType.EDGE_COLLECTION });
    // the edge collection "friends" now exists +
    +
  • Retrieves the document matching the given key or id.

    +

    Throws an exception when passed a document or _id from a different +collection.

    +

    Parameters

    • selector: DocumentSelector

      Document _key, _id or object with either of those +properties (e.g. a document from this collection).

      +
    • Optional options: CollectionReadOptions

      Options for retrieving the document.

      +

    Returns Promise<Document<EntryResultType>>

    Example

    const db = new Database();
    const collection = db.collection("some-collection");
    try {
    const document = await collection.document("abc123");
    console.log(document);
    } catch (e: any) {
    console.error("Could not find document");
    } +
    +

    Example

    const db = new Database();
    const collection = db.collection("some-collection");
    const document = await collection.document("abc123", { graceful: true });
    if (document) {
    console.log(document);
    } else {
    console.error("Could not find document");
    } +
    +
  • Retrieves the document matching the given key or id.

    +

    Throws an exception when passed a document or _id from a different +collection.

    +

    Parameters

    • selector: DocumentSelector

      Document _key, _id or object with either of those +properties (e.g. a document from this collection).

      +
    • graceful: boolean

      If set to true, null is returned instead of an +exception being thrown if the document does not exist.

      +

    Returns Promise<Document<EntryResultType>>

    Example

    const db = new Database();
    const collection = db.collection("some-collection");
    try {
    const document = await collection.document("abc123", false);
    console.log(document);
    } catch (e: any) {
    console.error("Could not find document");
    } +
    +

    Example

    const db = new Database();
    const collection = db.collection("some-collection");
    const document = await collection.document("abc123", true);
    if (document) {
    console.log(document);
    } else {
    console.error("Could not find document");
    } +
    +
  • Checks whether a document matching the given key or id exists in this +collection.

    +

    Throws an exception when passed a document or _id from a different +collection.

    +

    Parameters

    Returns Promise<boolean>

    Example

    const db = new Database();
    const collection = db.collection("some-collection");
    const exists = await collection.documentExists("abc123");
    if (!exists) {
    console.log("Document does not exist");
    } +
    +
  • Derives a document _id from the given selector for this collection.

    +

    Throws an exception when passed a document or _id from a different +collection.

    +

    Parameters

    • selector: DocumentSelector

      Document _key, _id or object with either of those +properties (e.g. a document from this collection).

      +

    Returns string

    Example

    const db = new Database();
    const collection = db.collection("some-collection");
    const meta = await collection.save({ foo: "bar" }, { returnNew: true });
    const doc = meta.new;
    console.log(collection.documentId(meta)); // via meta._id
    console.log(collection.documentId(doc)); // via doc._id
    console.log(collection.documentId(meta._key)); // also works +
    +

    Example

    const db = new Database();
    const collection1 = db.collection("some-collection");
    const collection2 = db.collection("other-collection");
    const meta = await collection1.save({ foo: "bar" });
    // Mixing collections is usually a mistake
    console.log(collection1.documentId(meta)); // ok: same collection
    console.log(collection2.documentId(meta)); // throws: wrong collection
    console.log(collection2.documentId(meta._id)); // also throws
    console.log(collection2.documentId(meta._key)); // ok but wrong collection +
    +
  • Retrieves the documents matching the given key or id values.

    +

    Throws an exception when passed a document or _id from a different +collection, or if the document does not exist.

    +

    Parameters

    • selectors: (string | ObjectWithKey)[]

      Array of document _key, _id or objects with either +of those properties (e.g. a document from this collection).

      +
    • Optional options: CollectionBatchReadOptions

      Options for retrieving the documents.

      +

    Returns Promise<Document<EntryResultType>[]>

    Example

    const db = new Database();
    const collection = db.collection("some-collection");
    try {
    const documents = await collection.documents(["abc123", "xyz456"]);
    console.log(documents);
    } catch (e: any) {
    console.error("Could not find document");
    } +
    +
  • Deletes the collection from the database.

    +

    Parameters

    Returns Promise<ArangoApiResponse<Record<string, never>>>

    Example

    const db = new Database();
    const collection = db.collection("some-collection");
    await collection.drop();
    // The collection "some-collection" is now an ex-collection +
    +
  • Deletes the index with the given name or id from the database.

    +

    Parameters

    • selector: IndexSelector

      Index name, id or object with either property.

      +

    Returns Promise<ArangoApiResponse<{
        id: string;
    }>>

    Example

    const db = new Database();
    const collection = db.collection("some-collection");
    await collection.dropIndex("some-index");
    // The index "some-index" no longer exists +
    +
  • Creates a persistent index on the collection if it does not already exist.

    +

    Parameters

    Returns Promise<ArangoApiResponse<GenericIndex & {
        cacheEnabled: boolean;
        deduplicate: boolean;
        estimates: boolean;
        fields: string[];
        storedValues?: string[];
        type: "persistent";
    } & {
        isNewlyCreated: boolean;
    }>>

    Example

    const db = new Database();
    const collection = db.collection("some-collection");
    // Create a unique index for looking up documents by username
    await collection.ensureIndex({
    type: "persistent",
    fields: ["username"],
    name: "unique-usernames",
    unique: true
    }); +
    +
  • Creates a TTL index on the collection if it does not already exist.

    +

    Parameters

    Returns Promise<ArangoApiResponse<GenericIndex & {
        expireAfter: number;
        fields: [string];
        selectivityEstimate: number;
        type: "ttl";
    } & {
        isNewlyCreated: boolean;
    }>>

    Example

    const db = new Database();
    const collection = db.collection("some-collection");
    // Expire documents with "createdAt" timestamp one day after creation
    await collection.ensureIndex({
    type: "ttl",
    fields: ["createdAt"],
    expireAfter: 60 * 60 * 24 // 24 hours
    }); +
    +

    Example

    const db = new Database();
    const collection = db.collection("some-collection");
    // Expire documents with "expiresAt" timestamp according to their value
    await collection.ensureIndex({
    type: "ttl",
    fields: ["expiresAt"],
    expireAfter: 0 // when attribute value is exceeded
    }); +
    +
  • Creates a multi-dimensional index on the collection if it does not already exist.

    +

    Parameters

    Returns Promise<ArangoApiResponse<GenericIndex & {
        fieldValueTypes: "double";
        fields: string[];
        type: "mdi";
    } & {
        isNewlyCreated: boolean;
    }>>

    Example

    const db = new Database();
    const collection = db.collection("some-points");
    // Create a multi-dimensional index for the attributes x, y and z
    await collection.ensureIndex({
    type: "mdi",
    fields: ["x", "y", "z"],
    fieldValueTypes: "double"
    }); +
    +
    
    +
    +
  • Creates a geo index on the collection if it does not already exist.

    +

    Parameters

    Returns Promise<ArangoApiResponse<GenericIndex & {
        bestIndexedLevel: number;
        fields: [string, string] | [string];
        geoJson: boolean;
        legacyPolygons: boolean;
        maxNumCoverCells: number;
        type: "geo";
        worstIndexedLevel: number;
    } & {
        isNewlyCreated: boolean;
    }>>

    Example

    const db = new Database();
    const collection = db.collection("some-collection");
    // Create an index for GeoJSON data
    await collection.ensureIndex({
    type: "geo",
    fields: ["lngLat"],
    geoJson: true
    }); +
    +
  • Creates a inverted index on the collection if it does not already exist.

    +

    Parameters

    Returns Promise<ArangoApiResponse<GenericIndex & {
        analyzer: string;
        cache?: boolean;
        cleanupIntervalStep: number;
        commitIntervalMsec: number;
        consolidationIntervalMsec: number;
        consolidationPolicy: Required<TierConsolidationPolicy>;
        features: AnalyzerFeature[];
        fields: {
            analyzer?: string;
            cache?: boolean;
            features?: AnalyzerFeature[];
            includeAllFields?: boolean;
            name: string;
            nested?: InvertedIndexNestedField[];
            searchField?: boolean;
            trackListPositions?: boolean;
        }[];
        includeAllFields: boolean;
        optimizeTopK: string[];
        parallelism: number;
        primaryKeyCache?: boolean;
        primarySort: {
            cache?: boolean;
            compression: Compression;
            fields: {
                direction: Direction;
                field: string;
            }[];
        };
        searchField: boolean;
        storedValues: {
            cache?: boolean;
            compression: Compression;
            fields: string[];
        }[];
        trackListPositions: boolean;
        type: "inverted";
        writeBufferActive: number;
        writeBufferIdle: number;
        writeBufferSizeMax: number;
    } & {
        isNewlyCreated: boolean;
    }>>

    Example

    const db = new Database();
    const collection = db.collection("some-collection");
    // Create an inverted index
    await collection.ensureIndex({
    type: "inverted",
    fields: ["a", { name: "b", analyzer: "text_en" }]
    }); +
    +
  • Creates an index on the collection if it does not already exist.

    +

    Parameters

    Returns Promise<ArangoApiResponse<Index & {
        isNewlyCreated: boolean;
    }>>

    Example

    const db = new Database();
    const collection = db.collection("some-collection");
    // Create a unique index for looking up documents by username
    await collection.ensureIndex({
    type: "persistent",
    fields: ["username"],
    name: "unique-usernames",
    unique: true
    }); +
    +
  • Checks whether the collection exists.

    +

    Returns Promise<boolean>

    Example

    const db = new Database();
    const collection = db.collection("some-collection");
    const result = await collection.exists();
    // result indicates whether the collection exists +
    +
  • Retrieves statistics for a collection.

    +

    Parameters

    • Optional details: boolean

      whether to return extended storage engine-specific details +to the figures, which may cause additional load and impact performance

      +

    Returns Promise<ArangoApiResponse<CollectionMetadata & CollectionProperties & {
        count: number;
        figures: Record<string, any>;
    }>>

    Example

    const db = new Database();
    const collection = db.collection("some-collection");
    const data = await collection.figures();
    // data contains the collection's figures +
    +
  • Retrieves general information about the collection.

    +

    Returns Promise<ArangoApiResponse<CollectionMetadata>>

    Example

    const db = new Database();
    const collection = db.collection("some-collection");
    const data = await collection.get();
    // data contains general information about the collection +
    +
  • Retrieves the shardId of the shard responsible for the given document.

    +

    Parameters

    Returns Promise<string>

    Example

    const db = new Database();
    const collection = db.collection("some-collection");
    const responsibleShard = await collection.getResponsibleShard(); +
    +
  • Bulk imports the given data into the collection.

    +

    Parameters

    Returns Promise<CollectionImportResult>

    Example

    const db = new Database();
    const collection = db.collection("some-collection");
    await collection.import(
    [
    { _key: "jcd", password: "bionicman" },
    { _key: "jreyes", password: "amigo" },
    { _key: "ghermann", password: "zeitgeist" }
    ]
    ); +
    +
  • Bulk imports the given data into the collection.

    +

    Parameters

    • data: any[][]

      The data to import, as an array containing a single array of +attribute names followed by one or more arrays of attribute values for +each document.

      +
    • Optional options: CollectionImportOptions

      Options for importing the data.

      +

    Returns Promise<CollectionImportResult>

    Example

    const db = new Database();
    const collection = db.collection("some-collection");
    await collection.import(
    [
    [ "_key", "password" ],
    [ "jcd", "bionicman" ],
    [ "jreyes", "amigo" ],
    [ "ghermann", "zeitgeist" ]
    ]
    ); +
    +
  • Bulk imports the given data into the collection.

    +

    If type is omitted, data must contain one JSON array per line with +the first array providing the attribute names and all other arrays +providing attribute values for each document.

    +

    If type is set to "documents", data must contain one JSON document +per line.

    +

    If type is set to "list", data must contain a JSON array of +documents.

    +

    If type is set to "auto", data can be in either of the formats +supported by "documents" or "list".

    +

    Parameters

    • data: string | Buffer | Blob

      The data to import as a Buffer (Node), Blob (browser) or +string.

      +
    • Optional options: CollectionImportOptions & {
          type?: "documents" | "list" | "auto";
      }

      Options for importing the data.

      +

    Returns Promise<CollectionImportResult>

    Example

    const db = new Database();
    const collection = db.collection("some-collection");
    await collection.import(
    '{"_key":"jcd","password":"bionicman"}\r\n' +
    '{"_key":"jreyes","password":"amigo"}\r\n' +
    '{"_key":"ghermann","password":"zeitgeist"}\r\n',
    { type: "documents" } // or "auto"
    ); +
    +

    Example

    const db = new Database();
    const collection = db.collection("some-collection");
    await collection.import(
    '[{"_key":"jcd","password":"bionicman"},' +
    '{"_key":"jreyes","password":"amigo"},' +
    '{"_key":"ghermann","password":"zeitgeist"}]',
    { type: "list" } // or "auto"
    ); +
    +

    Example

    const db = new Database();
    const collection = db.collection("some-collection");
    await collection.import(
    '["_key","password"]\r\n' +
    '["jcd","bionicman"]\r\n' +
    '["jreyes","amigo"]\r\n' +
    '["ghermann","zeitgeist"]\r\n'
    ); +
    +
  • Returns an index description by name or id if it exists.

    +

    Parameters

    • selector: IndexSelector

      Index name, id or object with either property.

      +

    Returns Promise<Index>

    Example

    const db = new Database();
    const collection = db.collection("some-collection");
    const index = await collection.index("some-index"); +
    +
  • Returns a list of all index descriptions for the collection.

    +

    Parameters

    Returns Promise<Index[]>

    Example

    const db = new Database();
    const collection = db.collection("some-collection");
    const indexes = await collection.indexes(); +
    +
  • Instructs ArangoDB to load as many indexes of the collection into memory +as permitted by the memory limit.

    +

    Returns Promise<boolean>

    Example

    const db = new Database();
    const collection = db.collection("indexed-collection");
    await collection.loadIndexes();
    // the indexes are now loaded into memory +
    +
  • Instructs ArangoDB to recalculate the collection's document count to fix +any inconsistencies.

    +

    Returns Promise<boolean>

    Example

    const db = new Database();
    const collection = db.collection("inconsistent-collection");
    const badData = await collection.count();
    // oh no, the collection count looks wrong -- fix it!
    await collection.recalculateCount();
    const goodData = await collection.count();
    // goodData contains the collection's improved count +
    +
  • Removes an existing document from the collection.

    +

    Throws an exception when passed a document or _id from a different +collection.

    +

    Parameters

    • selector: DocumentSelector

      Document _key, _id or object with either of those +properties (e.g. a document from this collection).

      +
    • Optional options: CollectionRemoveOptions

      Options for removing the document.

      +

    Returns Promise<DocumentMetadata & {
        old?: Document<EntryResultType>;
    }>

    Example

    const db = new Database();
    const collection = db.collection("some-collection");
    await collection.remove("abc123");
    // document with key "abc123" deleted +
    +

    Example

    const db = new Database();
    const collection = db.collection("some-collection");
    const doc = await collection.document("abc123");
    await collection.remove(doc);
    // document with key "abc123" deleted +
    +
  • Removes existing documents from the collection.

    +

    Throws an exception when passed any document or _id from a different +collection.

    +

    Parameters

    • selectors: (string | ObjectWithKey)[]

      Documents _key, _id or objects with either of those +properties (e.g. documents from this collection).

      +
    • Optional options: Omit<CollectionRemoveOptions, "ifMatch">

      Options for removing the documents.

      +

    Returns Promise<(DocumentOperationFailure | DocumentMetadata & {
        old?: Document<EntryResultType>;
    })[]>

    Example

    const db = new Database();
    const collection = db.collection("some-collection");
    await collection.removeAll(["abc123", "def456"]);
    // document with keys "abc123" and "def456" deleted +
    +
  • Renames the collection and updates the instance's name to newName.

    +

    Additionally removes the instance from the database.Database's internal +cache.

    +

    Note: Renaming collections may not be supported when ArangoDB is +running in a cluster configuration.

    +

    Parameters

    • newName: string

      The new name of the collection.

      +

    Returns Promise<ArangoApiResponse<CollectionMetadata>>

    Example

    const db = new Database();
    const collection1 = db.collection("some-collection");
    await collection1.rename("other-collection");
    const collection2 = db.collection("some-collection");
    const collection3 = db.collection("other-collection");
    // Note all three collection instances are different objects but
    // collection1 and collection3 represent the same ArangoDB collection! +
    +
  • Replaces an existing document in the collection.

    +

    Throws an exception when passed a document or _id from a different +collection.

    +

    Parameters

    Returns Promise<DocumentMetadata & {
        _oldRev?: string;
    } & {
        new?: Document<EntryResultType>;
        old?: Document<EntryResultType>;
    }>

    Example

    const db = new Database();
    const collection = db.collection("some-collection");
    await collection.save({ _key: "a", color: "blue", count: 1 });
    const result = await collection.replace(
    "a",
    { color: "red" },
    { returnNew: true }
    );
    console.log(result.new.color, result.new.count); // "red" undefined +
    +
  • Replaces existing documents in the collection, identified by the _key or +_id of each document.

    +

    Parameters

    Returns Promise<(DocumentOperationFailure | DocumentMetadata & {
        _oldRev?: string;
    } & {
        new?: Document<EntryResultType>;
        old?: Document<EntryResultType>;
    })[]>

    Example

    const db = new Database();
    const collection = db.collection("some-collection");
    await collection.save({ _key: "a", color: "blue", count: 1 });
    await collection.save({ _key: "b", color: "green", count: 3 });
    const result = await collection.replaceAll(
    [
    { _key: "a", color: "red" },
    { _key: "b", color: "yellow", count: 2 }
    ],
    { returnNew: true }
    );
    console.log(result[0].new.color, result[0].new.count); // "red" undefined
    console.log(result[1].new.color, result[1].new.count); // "yellow" 2 +
    +
  • Deletes all documents in the collection.

    +

    Returns Promise<ArangoApiResponse<CollectionMetadata>>

    Example

    const db = new Database();
    const collection = db.collection("some-collection");
    await collection.truncate();
    // millions of documents cry out in terror and are suddenly silenced,
    // the collection "some-collection" is now empty +
    +
  • Updates an existing document in the collection.

    +

    Throws an exception when passed a document or _id from a different +collection.

    +

    Parameters

    Returns Promise<DocumentMetadata & {
        _oldRev?: string;
    } & {
        new?: Document<EntryResultType>;
        old?: Document<EntryResultType>;
    }>

    Example

    const db = new Database();
    const collection = db.collection("some-collection");
    await collection.save({ _key: "a", color: "blue", count: 1 });
    const result = await collection.update(
    "a",
    { count: 2 },
    { returnNew: true }
    );
    console.log(result.new.color, result.new.count); // "blue" 2 +
    +
  • Updates existing documents in the collection, identified by the _key or +_id of each document.

    +

    Parameters

    Returns Promise<(DocumentOperationFailure | DocumentMetadata & {
        _oldRev?: string;
    } & {
        new?: Document<EntryResultType>;
        old?: Document<EntryResultType>;
    })[]>

    Example

    const db = new Database();
    const collection = db.collection("some-collection");
    await collection.save({ _key: "a", color: "blue", count: 1 });
    await collection.save({ _key: "b", color: "green", count: 3 });
    const result = await collection.updateAll(
    [
    { _key: "a", count: 2 },
    { _key: "b", count: 4 }
    ],
    { returnNew: true }
    );
    console.log(result[0].new.color, result[0].new.count); // "blue" 2
    console.log(result[1].new.color, result[1].new.count); // "green" 4 +
    +
\ No newline at end of file diff --git a/9.0.0/interfaces/collection.EdgeCollection.html b/9.0.0/interfaces/collection.EdgeCollection.html new file mode 100644 index 00000000..45fad260 --- /dev/null +++ b/9.0.0/interfaces/collection.EdgeCollection.html @@ -0,0 +1,319 @@ +EdgeCollection | arangojs - v9.0.0

Interface EdgeCollection<EntryResultType, EntryInputType>

Represents an edge collection in a database.Database.

+

See DocumentCollection for a more generic variant of this interface +more suited for regular document collections.

+

See also graph.GraphEdgeCollection for the type representing an edge +collection in a graph.Graph.

+

When using TypeScript, collections can be cast to a specific edge document +data type to increase type safety.

+

Param: T

Type to use for edge document data. Defaults to any.

+

Example

interface Friend {
startDate: number;
endDate?: number;
}
const db = new Database();
const edges = db.collection("friends") as EdgeCollection<Friend>; +
+
interface EdgeCollection<EntryResultType, EntryInputType> {
    name: string;
    checksum(options?): Promise<ArangoApiResponse<CollectionMetadata & {
        checksum: string;
        revision: string;
    }>>;
    compact(): Promise<ArangoApiResponse<Record<string, never>>>;
    count(): Promise<ArangoApiResponse<CollectionMetadata & CollectionProperties & {
        count: number;
    }>>;
    create(options?): Promise<ArangoApiResponse<CollectionMetadata & CollectionProperties>>;
    document(selector, options?): Promise<Edge<EntryResultType>>;
    document(selector, graceful): Promise<Edge<EntryResultType>>;
    documentExists(selector, options?): Promise<boolean>;
    documentId(selector): string;
    documents(selectors, options?): Promise<Edge<EntryResultType>[]>;
    drop(options?): Promise<ArangoApiResponse<Record<string, never>>>;
    dropIndex(selector): Promise<ArangoApiResponse<{
        id: string;
    }>>;
    edges(selector, options?): Promise<ArangoApiResponse<CollectionEdgesResult<EntryResultType>>>;
    ensureIndex(details): Promise<ArangoApiResponse<GenericIndex & {
        cacheEnabled: boolean;
        deduplicate: boolean;
        estimates: boolean;
        fields: string[];
        storedValues?: string[];
        type: "persistent";
    } & {
        isNewlyCreated: boolean;
    }>>;
    ensureIndex(details): Promise<ArangoApiResponse<GenericIndex & {
        expireAfter: number;
        fields: [string];
        selectivityEstimate: number;
        type: "ttl";
    } & {
        isNewlyCreated: boolean;
    }>>;
    ensureIndex(details): Promise<ArangoApiResponse<GenericIndex & {
        fieldValueTypes: "double";
        fields: string[];
        type: "mdi";
    } & {
        isNewlyCreated: boolean;
    }>>;
    ensureIndex(details): Promise<ArangoApiResponse<GenericIndex & {
        bestIndexedLevel: number;
        fields: [string, string] | [string];
        geoJson: boolean;
        legacyPolygons: boolean;
        maxNumCoverCells: number;
        type: "geo";
        worstIndexedLevel: number;
    } & {
        isNewlyCreated: boolean;
    }>>;
    ensureIndex(details): Promise<ArangoApiResponse<GenericIndex & {
        analyzer: string;
        cache?: boolean;
        cleanupIntervalStep: number;
        commitIntervalMsec: number;
        consolidationIntervalMsec: number;
        consolidationPolicy: Required<TierConsolidationPolicy>;
        features: AnalyzerFeature[];
        fields: {
            analyzer?: string;
            cache?: boolean;
            features?: AnalyzerFeature[];
            includeAllFields?: boolean;
            name: string;
            nested?: InvertedIndexNestedField[];
            searchField?: boolean;
            trackListPositions?: boolean;
        }[];
        includeAllFields: boolean;
        optimizeTopK: string[];
        parallelism: number;
        primaryKeyCache?: boolean;
        primarySort: {
            cache?: boolean;
            compression: Compression;
            fields: {
                direction: Direction;
                field: string;
            }[];
        };
        searchField: boolean;
        storedValues: {
            cache?: boolean;
            compression: Compression;
            fields: string[];
        }[];
        trackListPositions: boolean;
        type: "inverted";
        writeBufferActive: number;
        writeBufferIdle: number;
        writeBufferSizeMax: number;
    } & {
        isNewlyCreated: boolean;
    }>>;
    ensureIndex(details): Promise<ArangoApiResponse<Index & {
        isNewlyCreated: boolean;
    }>>;
    exists(): Promise<boolean>;
    figures(details?): Promise<ArangoApiResponse<CollectionMetadata & CollectionProperties & {
        count: number;
        figures: Record<string, any>;
    }>>;
    get(): Promise<ArangoApiResponse<CollectionMetadata>>;
    getResponsibleShard(document): Promise<string>;
    import(data, options?): Promise<CollectionImportResult>;
    import(data, options?): Promise<CollectionImportResult>;
    import(data, options?): Promise<CollectionImportResult>;
    inEdges(selector, options?): Promise<ArangoApiResponse<CollectionEdgesResult<EntryResultType>>>;
    index(selector): Promise<Index>;
    indexes(options?): Promise<Index[]>;
    loadIndexes(): Promise<boolean>;
    outEdges(selector, options?): Promise<ArangoApiResponse<CollectionEdgesResult<EntryResultType>>>;
    properties(): Promise<ArangoApiResponse<CollectionMetadata & CollectionProperties>>;
    properties(properties): Promise<ArangoApiResponse<CollectionMetadata & CollectionProperties>>;
    recalculateCount(): Promise<boolean>;
    remove(selector, options?): Promise<DocumentMetadata & {
        old?: Edge<EntryResultType>;
    }>;
    removeAll(selectors, options?): Promise<(DocumentOperationFailure | DocumentMetadata & {
        old?: Edge<EntryResultType>;
    })[]>;
    rename(newName): Promise<ArangoApiResponse<CollectionMetadata>>;
    replace(selector, newData, options?): Promise<DocumentMetadata & {
        _oldRev?: string;
    } & {
        new?: Edge<EntryResultType>;
        old?: Edge<EntryResultType>;
    }>;
    replaceAll(newData, options?): Promise<(DocumentOperationFailure | DocumentMetadata & {
        _oldRev?: string;
    } & {
        new?: Edge<EntryResultType>;
        old?: Edge<EntryResultType>;
    })[]>;
    revision(): Promise<ArangoApiResponse<CollectionMetadata & CollectionProperties & {
        revision: string;
    }>>;
    save(data, options?): Promise<DocumentMetadata & {
        _oldRev?: string;
    } & {
        new?: Edge<EntryResultType>;
        old?: Edge<EntryResultType>;
    }>;
    saveAll(data, options?): Promise<(DocumentOperationFailure | DocumentMetadata & {
        _oldRev?: string;
    } & {
        new?: Edge<EntryResultType>;
        old?: Edge<EntryResultType>;
    })[]>;
    truncate(): Promise<ArangoApiResponse<CollectionMetadata>>;
    update(selector, newData, options?): Promise<DocumentMetadata & {
        _oldRev?: string;
    } & {
        new?: Edge<EntryResultType>;
        old?: Edge<EntryResultType>;
    }>;
    updateAll(newData, options?): Promise<(DocumentOperationFailure | DocumentMetadata & {
        _oldRev?: string;
    } & {
        new?: Edge<EntryResultType>;
        old?: Edge<EntryResultType>;
    })[]>;
}

Type Parameters

  • EntryResultType extends Record<string, any> = any
  • EntryInputType extends Record<string, any> = EntryResultType

Hierarchy (view full)

Properties

name: string

Name of the collection.

+

Methods

  • Retrieves the collection checksum.

    +

    Parameters

    Returns Promise<ArangoApiResponse<CollectionMetadata & {
        checksum: string;
        revision: string;
    }>>

    Example

    const db = new Database();
    const collection = db.collection("some-collection");
    const data = await collection.checksum();
    // data contains the collection's checksum +
    +
  • Triggers compaction for a collection.

    +

    Returns Promise<ArangoApiResponse<Record<string, never>>>

    Example

    const db = new Database();
    const collection = db.collection("some-collection");
    await collection.compact();
    // Background compaction is triggered on the collection +
    +
  • Creates a collection with the given options and the instance's name.

    +

    See also database.Database#createCollection and +database.Database#createEdgeCollection.

    +

    Note: When called on an EdgeCollection instance in TypeScript, +the type option must still be set to the correct CollectionType. +Otherwise this will result in the collection being created with the +default type (i.e. as a document collection).

    +

    Parameters

    Returns Promise<ArangoApiResponse<CollectionMetadata & CollectionProperties>>

    Example

    const db = new Database();
    const collection = db.collection("potatoes");
    await collection.create();
    // the document collection "potatoes" now exists +
    +

    Example

    const db = new Database();
    const collection = db.collection("friends");
    await collection.create({ type: CollectionType.EDGE_COLLECTION });
    // the edge collection "friends" now exists +
    +

    Example

    interface Friend {
    startDate: number;
    endDate?: number;
    }
    const db = new Database();
    const collection = db.collection("friends") as EdgeCollection<Friend>;
    // even in TypeScript you still need to indicate the collection type
    // if you want to create an edge collection
    await collection.create({ type: CollectionType.EDGE_COLLECTION });
    // the edge collection "friends" now exists +
    +
  • Retrieves the document matching the given key or id.

    +

    Throws an exception when passed a document or _id from a different +collection, or if the document does not exist.

    +

    Parameters

    • selector: DocumentSelector

      Document _key, _id or object with either of those +properties (e.g. a document from this collection).

      +
    • Optional options: CollectionReadOptions

      Options for retrieving the document.

      +

    Returns Promise<Edge<EntryResultType>>

    Example

    const db = new Database();
    const collection = db.collection("some-collection");
    try {
    const document = await collection.document("abc123");
    console.log(document);
    } catch (e: any) {
    console.error("Could not find document");
    } +
    +

    Example

    const db = new Database();
    const collection = db.collection("some-collection");
    const document = await collection.document("abc123", { graceful: true });
    if (document) {
    console.log(document);
    } else {
    console.error("Document does not exist");
    } +
    +
  • Retrieves the document matching the given key or id.

    +

    Throws an exception when passed a document or _id from a different +collection, or if the document does not exist.

    +

    Parameters

    • selector: DocumentSelector

      Document _key, _id or object with either of those +properties (e.g. a document from this collection).

      +
    • graceful: boolean

      If set to true, null is returned instead of an +exception being thrown if the document does not exist.

      +

    Returns Promise<Edge<EntryResultType>>

    Example

    const db = new Database();
    const collection = db.collection("some-collection");
    try {
    const document = await collection.document("abc123", false);
    console.log(document);
    } catch (e: any) {
    console.error("Could not find document");
    } +
    +

    Example

    const db = new Database();
    const collection = db.collection("some-collection");
    const document = await collection.document("abc123", true);
    if (document) {
    console.log(document);
    } else {
    console.error("Document does not exist");
    } +
    +
  • Checks whether a document matching the given key or id exists in this +collection.

    +

    Throws an exception when passed a document or _id from a different +collection.

    +

    Parameters

    Returns Promise<boolean>

    Example

    const db = new Database();
    const collection = db.collection("some-collection");
    const exists = await collection.documentExists("abc123");
    if (!exists) {
    console.log("Document does not exist");
    } +
    +
  • Derives a document _id from the given selector for this collection.

    +

    Throws an exception when passed a document or _id from a different +collection.

    +

    Parameters

    • selector: DocumentSelector

      Document _key, _id or object with either of those +properties (e.g. a document from this collection).

      +

    Returns string

    Example

    const db = new Database();
    const collection = db.collection("some-collection");
    const meta = await collection.save({ foo: "bar" }, { returnNew: true });
    const doc = meta.new;
    console.log(collection.documentId(meta)); // via meta._id
    console.log(collection.documentId(doc)); // via doc._id
    console.log(collection.documentId(meta._key)); // also works +
    +

    Example

    const db = new Database();
    const collection1 = db.collection("some-collection");
    const collection2 = db.collection("other-collection");
    const meta = await collection1.save({ foo: "bar" });
    // Mixing collections is usually a mistake
    console.log(collection1.documentId(meta)); // ok: same collection
    console.log(collection2.documentId(meta)); // throws: wrong collection
    console.log(collection2.documentId(meta._id)); // also throws
    console.log(collection2.documentId(meta._key)); // ok but wrong collection +
    +
  • Retrieves the documents matching the given key or id values.

    +

    Throws an exception when passed a document or _id from a different +collection, or if the document does not exist.

    +

    Parameters

    • selectors: (string | ObjectWithKey)[]

      Array of document _key, _id or objects with either +of those properties (e.g. a document from this collection).

      +
    • Optional options: CollectionBatchReadOptions

      Options for retrieving the documents.

      +

    Returns Promise<Edge<EntryResultType>[]>

    Example

    const db = new Database();
    const collection = db.collection("some-collection");
    try {
    const documents = await collection.documents(["abc123", "xyz456"]);
    console.log(documents);
    } catch (e: any) {
    console.error("Could not find document");
    } +
    +
  • Deletes the collection from the database.

    +

    Parameters

    Returns Promise<ArangoApiResponse<Record<string, never>>>

    Example

    const db = new Database();
    const collection = db.collection("some-collection");
    await collection.drop();
    // The collection "some-collection" is now an ex-collection +
    +
  • Deletes the index with the given name or id from the database.

    +

    Parameters

    • selector: IndexSelector

      Index name, id or object with either property.

      +

    Returns Promise<ArangoApiResponse<{
        id: string;
    }>>

    Example

    const db = new Database();
    const collection = db.collection("some-collection");
    await collection.dropIndex("some-index");
    // The index "some-index" no longer exists +
    +
  • Retrieves a list of all edges of the document matching the given +selector.

    +

    Throws an exception when passed a document or _id from a different +collection.

    +

    Parameters

    • selector: DocumentSelector

      Document _key, _id or object with either of those +properties (e.g. a document from this collection).

      +
    • Optional options: CollectionEdgesOptions

      Options for retrieving the edges.

      +

    Returns Promise<ArangoApiResponse<CollectionEdgesResult<EntryResultType>>>

    Example

    const db = new Database();
    const collection = db.collection("edges");
    await collection.import([
    ["_key", "_from", "_to"],
    ["x", "vertices/a", "vertices/b"],
    ["y", "vertices/a", "vertices/c"],
    ["z", "vertices/d", "vertices/a"],
    ]);
    const edges = await collection.edges("vertices/a");
    console.log(edges.map((edge) => edge._key)); // ["x", "y", "z"] +
    +
  • Creates a persistent index on the collection if it does not already exist.

    +

    Parameters

    Returns Promise<ArangoApiResponse<GenericIndex & {
        cacheEnabled: boolean;
        deduplicate: boolean;
        estimates: boolean;
        fields: string[];
        storedValues?: string[];
        type: "persistent";
    } & {
        isNewlyCreated: boolean;
    }>>

    Example

    const db = new Database();
    const collection = db.collection("some-collection");
    // Create a unique index for looking up documents by username
    await collection.ensureIndex({
    type: "persistent",
    fields: ["username"],
    name: "unique-usernames",
    unique: true
    }); +
    +
  • Creates a TTL index on the collection if it does not already exist.

    +

    Parameters

    Returns Promise<ArangoApiResponse<GenericIndex & {
        expireAfter: number;
        fields: [string];
        selectivityEstimate: number;
        type: "ttl";
    } & {
        isNewlyCreated: boolean;
    }>>

    Example

    const db = new Database();
    const collection = db.collection("some-collection");
    // Expire documents with "createdAt" timestamp one day after creation
    await collection.ensureIndex({
    type: "ttl",
    fields: ["createdAt"],
    expireAfter: 60 * 60 * 24 // 24 hours
    }); +
    +

    Example

    const db = new Database();
    const collection = db.collection("some-collection");
    // Expire documents with "expiresAt" timestamp according to their value
    await collection.ensureIndex({
    type: "ttl",
    fields: ["expiresAt"],
    expireAfter: 0 // when attribute value is exceeded
    }); +
    +
  • Creates a multi-dimensional index on the collection if it does not already exist.

    +

    Parameters

    Returns Promise<ArangoApiResponse<GenericIndex & {
        fieldValueTypes: "double";
        fields: string[];
        type: "mdi";
    } & {
        isNewlyCreated: boolean;
    }>>

    Example

    const db = new Database();
    const collection = db.collection("some-points");
    // Create a multi-dimensional index for the attributes x, y and z
    await collection.ensureIndex({
    type: "mdi",
    fields: ["x", "y", "z"],
    fieldValueTypes: "double"
    }); +
    +
    
    +
    +
  • Creates a geo index on the collection if it does not already exist.

    +

    Parameters

    Returns Promise<ArangoApiResponse<GenericIndex & {
        bestIndexedLevel: number;
        fields: [string, string] | [string];
        geoJson: boolean;
        legacyPolygons: boolean;
        maxNumCoverCells: number;
        type: "geo";
        worstIndexedLevel: number;
    } & {
        isNewlyCreated: boolean;
    }>>

    Example

    const db = new Database();
    const collection = db.collection("some-collection");
    // Create an index for GeoJSON data
    await collection.ensureIndex({
    type: "geo",
    fields: ["lngLat"],
    geoJson: true
    }); +
    +
  • Creates a inverted index on the collection if it does not already exist.

    +

    Parameters

    Returns Promise<ArangoApiResponse<GenericIndex & {
        analyzer: string;
        cache?: boolean;
        cleanupIntervalStep: number;
        commitIntervalMsec: number;
        consolidationIntervalMsec: number;
        consolidationPolicy: Required<TierConsolidationPolicy>;
        features: AnalyzerFeature[];
        fields: {
            analyzer?: string;
            cache?: boolean;
            features?: AnalyzerFeature[];
            includeAllFields?: boolean;
            name: string;
            nested?: InvertedIndexNestedField[];
            searchField?: boolean;
            trackListPositions?: boolean;
        }[];
        includeAllFields: boolean;
        optimizeTopK: string[];
        parallelism: number;
        primaryKeyCache?: boolean;
        primarySort: {
            cache?: boolean;
            compression: Compression;
            fields: {
                direction: Direction;
                field: string;
            }[];
        };
        searchField: boolean;
        storedValues: {
            cache?: boolean;
            compression: Compression;
            fields: string[];
        }[];
        trackListPositions: boolean;
        type: "inverted";
        writeBufferActive: number;
        writeBufferIdle: number;
        writeBufferSizeMax: number;
    } & {
        isNewlyCreated: boolean;
    }>>

    Example

    const db = new Database();
    const collection = db.collection("some-collection");
    // Create an inverted index
    await collection.ensureIndex({
    type: "inverted",
    fields: ["a", { name: "b", analyzer: "text_en" }]
    }); +
    +
  • Creates an index on the collection if it does not already exist.

    +

    Parameters

    Returns Promise<ArangoApiResponse<Index & {
        isNewlyCreated: boolean;
    }>>

    Example

    const db = new Database();
    const collection = db.collection("some-collection");
    // Create a unique index for looking up documents by username
    await collection.ensureIndex({
    type: "persistent",
    fields: ["username"],
    name: "unique-usernames",
    unique: true
    }); +
    +
  • Checks whether the collection exists.

    +

    Returns Promise<boolean>

    Example

    const db = new Database();
    const collection = db.collection("some-collection");
    const result = await collection.exists();
    // result indicates whether the collection exists +
    +
  • Retrieves statistics for a collection.

    +

    Parameters

    • Optional details: boolean

      whether to return extended storage engine-specific details +to the figures, which may cause additional load and impact performance

      +

    Returns Promise<ArangoApiResponse<CollectionMetadata & CollectionProperties & {
        count: number;
        figures: Record<string, any>;
    }>>

    Example

    const db = new Database();
    const collection = db.collection("some-collection");
    const data = await collection.figures();
    // data contains the collection's figures +
    +
  • Retrieves the shardId of the shard responsible for the given document.

    +

    Parameters

    Returns Promise<string>

    Example

    const db = new Database();
    const collection = db.collection("some-collection");
    const responsibleShard = await collection.getResponsibleShard(); +
    +
  • Bulk imports the given data into the collection.

    +

    Parameters

    Returns Promise<CollectionImportResult>

    Example

    const db = new Database();
    const collection = db.collection("some-collection");
    await collection.import(
    [
    { _key: "x", _from: "vertices/a", _to: "vertices/b", weight: 1 },
    { _key: "y", _from: "vertices/a", _to: "vertices/c", weight: 2 }
    ]
    ); +
    +
  • Bulk imports the given data into the collection.

    +

    Parameters

    • data: any[][]

      The data to import, as an array containing a single array of +attribute names followed by one or more arrays of attribute values for +each edge document.

      +
    • Optional options: CollectionImportOptions

      Options for importing the data.

      +

    Returns Promise<CollectionImportResult>

    Example

    const db = new Database();
    const collection = db.collection("some-collection");
    await collection.import(
    [
    [ "_key", "_from", "_to", "weight" ],
    [ "x", "vertices/a", "vertices/b", 1 ],
    [ "y", "vertices/a", "vertices/c", 2 ]
    ]
    ); +
    +
  • Bulk imports the given data into the collection.

    +

    If type is omitted, data must contain one JSON array per line with +the first array providing the attribute names and all other arrays +providing attribute values for each edge document.

    +

    If type is set to "documents", data must contain one JSON document +per line.

    +

    If type is set to "list", data must contain a JSON array of +edge documents.

    +

    If type is set to "auto", data can be in either of the formats +supported by "documents" or "list".

    +

    Parameters

    • data: string | Buffer | Blob

      The data to import as a Buffer (Node), Blob (browser) or +string.

      +
    • Optional options: CollectionImportOptions & {
          type?: "documents" | "list" | "auto";
      }

      Options for importing the data.

      +

    Returns Promise<CollectionImportResult>

    Example

    const db = new Database();
    const collection = db.collection("some-collection");
    await collection.import(
    '{"_key":"x","_from":"vertices/a","_to":"vertices/b","weight":1}\r\n' +
    '{"_key":"y","_from":"vertices/a","_to":"vertices/c","weight":2}\r\n',
    { type: "documents" } // or "auto"
    ); +
    +

    Example

    const db = new Database();
    const collection = db.collection("some-collection");
    await collection.import(
    '[{"_key":"x","_from":"vertices/a","_to":"vertices/b","weight":1},' +
    '{"_key":"y","_from":"vertices/a","_to":"vertices/c","weight":2}]',
    { type: "list" } // or "auto"
    ); +
    +

    Example

    const db = new Database();
    const collection = db.collection("some-collection");
    await collection.import(
    '["_key","_from","_to","weight"]\r\n' +
    '["x","vertices/a","vertices/b",1]\r\n' +
    '["y","vertices/a","vertices/c",2]\r\n'
    ); +
    +
  • Retrieves a list of all incoming edges of the document matching the given +selector.

    +

    Throws an exception when passed a document or _id from a different +collection.

    +

    Parameters

    • selector: DocumentSelector

      Document _key, _id or object with either of those +properties (e.g. a document from this collection).

      +
    • Optional options: CollectionEdgesOptions

      Options for retrieving the edges.

      +

    Returns Promise<ArangoApiResponse<CollectionEdgesResult<EntryResultType>>>

    Example

    const db = new Database();
    const collection = db.collection("edges");
    await collection.import([
    ["_key", "_from", "_to"],
    ["x", "vertices/a", "vertices/b"],
    ["y", "vertices/a", "vertices/c"],
    ["z", "vertices/d", "vertices/a"],
    ]);
    const edges = await collection.inEdges("vertices/a");
    console.log(edges.map((edge) => edge._key)); // ["z"] +
    +
  • Returns an index description by name or id if it exists.

    +

    Parameters

    • selector: IndexSelector

      Index name, id or object with either property.

      +

    Returns Promise<Index>

    Example

    const db = new Database();
    const collection = db.collection("some-collection");
    const index = await collection.index("some-index"); +
    +
  • Returns a list of all index descriptions for the collection.

    +

    Parameters

    Returns Promise<Index[]>

    Example

    const db = new Database();
    const collection = db.collection("some-collection");
    const indexes = await collection.indexes(); +
    +
  • Instructs ArangoDB to load as many indexes of the collection into memory +as permitted by the memory limit.

    +

    Returns Promise<boolean>

    Example

    const db = new Database();
    const collection = db.collection("indexed-collection");
    await collection.loadIndexes();
    // the indexes are now loaded into memory +
    +
  • Retrieves a list of all outgoing edges of the document matching the given +selector.

    +

    Throws an exception when passed a document or _id from a different +collection.

    +

    Parameters

    • selector: DocumentSelector

      Document _key, _id or object with either of those +properties (e.g. a document from this collection).

      +
    • Optional options: CollectionEdgesOptions

      Options for retrieving the edges.

      +

    Returns Promise<ArangoApiResponse<CollectionEdgesResult<EntryResultType>>>

    Example

    const db = new Database();
    const collection = db.collection("edges");
    await collection.import([
    ["_key", "_from", "_to"],
    ["x", "vertices/a", "vertices/b"],
    ["y", "vertices/a", "vertices/c"],
    ["z", "vertices/d", "vertices/a"],
    ]);
    const edges = await collection.outEdges("vertices/a");
    console.log(edges.map((edge) => edge._key)); // ["x", "y"] +
    +
  • Instructs ArangoDB to recalculate the collection's document count to fix +any inconsistencies.

    +

    Returns Promise<boolean>

    Example

    const db = new Database();
    const collection = db.collection("inconsistent-collection");
    const badData = await collection.count();
    // oh no, the collection count looks wrong -- fix it!
    await collection.recalculateCount();
    const goodData = await collection.count();
    // goodData contains the collection's improved count +
    +
  • Removes an existing document from the collection.

    +

    Throws an exception when passed a document or _id from a different +collection.

    +

    Parameters

    • selector: DocumentSelector

      Document _key, _id or object with either of those +properties (e.g. a document from this collection).

      +
    • Optional options: CollectionRemoveOptions

      Options for removing the document.

      +

    Returns Promise<DocumentMetadata & {
        old?: Edge<EntryResultType>;
    }>

    Example

    const db = new Database();
    const collection = db.collection("friends");
    const doc = await collection.document("musadir");
    await collection.remove(doc);
    // document with key "musadir" deleted +
    +
  • Renames the collection and updates the instance's name to newName.

    +

    Additionally removes the instance from the database.Database's internal +cache.

    +

    Note: Renaming collections may not be supported when ArangoDB is +running in a cluster configuration.

    +

    Parameters

    • newName: string

      The new name of the collection.

      +

    Returns Promise<ArangoApiResponse<CollectionMetadata>>

    Example

    const db = new Database();
    const collection1 = db.collection("some-collection");
    await collection1.rename("other-collection");
    const collection2 = db.collection("some-collection");
    const collection3 = db.collection("other-collection");
    // Note all three collection instances are different objects but
    // collection1 and collection3 represent the same ArangoDB collection! +
    +
  • Replaces an existing document in the collection.

    +

    Throws an exception when passed a document or _id from a different +collection.

    +

    Parameters

    Returns Promise<DocumentMetadata & {
        _oldRev?: string;
    } & {
        new?: Edge<EntryResultType>;
        old?: Edge<EntryResultType>;
    }>

    Example

    const db = new Database();
    const collection = db.collection("friends");
    await collection.save(
    {
    _key: "musadir",
    _from: "users/rana",
    _to: "users/mudasir",
    active: true,
    best: true
    }
    );
    const result = await collection.replace(
    "musadir",
    { active: false },
    { returnNew: true }
    );
    console.log(result.new.active, result.new.best); // false undefined +
    +
  • Replaces existing documents in the collection, identified by the _key or +_id of each document.

    +

    Parameters

    Returns Promise<(DocumentOperationFailure | DocumentMetadata & {
        _oldRev?: string;
    } & {
        new?: Edge<EntryResultType>;
        old?: Edge<EntryResultType>;
    })[]>

    Example

    const db = new Database();
    const collection = db.collection("friends");
    await collection.save(
    {
    _key: "musadir",
    _from: "users/rana",
    _to: "users/mudasir",
    active: true,
    best: true
    }
    );
    await collection.save(
    {
    _key: "salman",
    _from: "users/rana",
    _to: "users/salman",
    active: false,
    best: false
    }
    );
    const result = await collection.replaceAll(
    [
    { _key: "musadir", active: false },
    { _key: "salman", active: true, best: true }
    ],
    { returnNew: true }
    );
    console.log(result[0].new.active, result[0].new.best); // false undefined
    console.log(result[1].new.active, result[1].new.best); // true true +
    +
  • Updates an existing document in the collection.

    +

    Throws an exception when passed a document or _id from a different +collection.

    +

    Parameters

    Returns Promise<DocumentMetadata & {
        _oldRev?: string;
    } & {
        new?: Edge<EntryResultType>;
        old?: Edge<EntryResultType>;
    }>

    Example

    const db = new Database();
    const collection = db.collection("friends");
    await collection.save(
    {
    _key: "musadir",
    _from: "users/rana",
    _to: "users/mudasir",
    active: true,
    best: true
    }
    );
    const result = await collection.update(
    "musadir",
    { active: false },
    { returnNew: true }
    );
    console.log(result.new.active, result.new.best); // false true +
    +
  • Updates existing documents in the collection, identified by the _key or +_id of each document.

    +

    Parameters

    • newData: (Patch<DocumentData<EntryInputType>> & ({
          _key: string;
      } | {
          _id: string;
      }))[]

      The data for updating the documents.

      +
    • Optional options: CollectionUpdateOptions

      Options for updating the documents.

      +
      const db = new Database();
      const collection = db.collection("friends");
      await collection.save(
      {
      _key: "musadir",
      _from: "users/rana",
      _to: "users/mudasir",
      active: true,
      best: true
      }
      );
      await collection.save(
      {
      _key: "salman",
      _from: "users/rana",
      _to: "users/salman",
      active: false,
      best: false
      }
      );
      const result = await collection.updateAll(
      [
      { _key: "musadir", active: false },
      { _key: "salman", active: true, best: true }
      ],
      { returnNew: true }
      );
      console.log(result[0].new.active, result[0].new.best); // false true
      console.log(result[1].new.active, result[1].new.best); // true true +
      +

    Returns Promise<(DocumentOperationFailure | DocumentMetadata & {
        _oldRev?: string;
    } & {
        new?: Edge<EntryResultType>;
        old?: Edge<EntryResultType>;
    })[]>

\ No newline at end of file diff --git a/9.0.0/interfaces/cursor.CursorExtras.html b/9.0.0/interfaces/cursor.CursorExtras.html new file mode 100644 index 00000000..49bd643b --- /dev/null +++ b/9.0.0/interfaces/cursor.CursorExtras.html @@ -0,0 +1,10 @@ +CursorExtras | arangojs - v9.0.0

Interface CursorExtras

Additional information about the cursor.

+
interface CursorExtras {
    plan?: Record<string, any>;
    profile?: Record<string, number>;
    stats?: CursorStats;
    warnings: {
        code: number;
        message: string;
    }[];
}

Properties

Properties

plan?: Record<string, any>

Query execution plan for the executed query.

+
profile?: Record<string, number>

Additional profiling information for the executed query.

+
stats?: CursorStats

Additional statistics about the query execution.

+
warnings: {
    code: number;
    message: string;
}[]

Warnings encountered while executing the query.

+

Type declaration

  • code: number
  • message: string
\ No newline at end of file diff --git a/9.0.0/interfaces/cursor.CursorStats.html b/9.0.0/interfaces/cursor.CursorStats.html new file mode 100644 index 00000000..75e12ff6 --- /dev/null +++ b/9.0.0/interfaces/cursor.CursorStats.html @@ -0,0 +1,36 @@ +CursorStats | arangojs - v9.0.0

Interface CursorStats

Additional statics about the query execution of the cursor.

+
interface CursorStats {
    cacheHits: number;
    cacheMisses: number;
    cursorsCreated: number;
    cursorsRearmed: number;
    executionTime: number;
    filtered: number;
    fullCount?: number;
    httpRequests: number;
    nodes?: {
        calls: number;
        filter: number;
        id: number;
        items: number;
        runtime: number;
    }[];
    peakMemoryUsage: number;
    scannedFull: number;
    scannedIndex: number;
    writesExecuted: number;
    writesIgnored: number;
}

Properties

cacheHits: number

Total number of index entries read from in-memory caches for indexes of +type edge or persistent.

+
cacheMisses: number

Total number of cache read attempts for index entries that could not be +served from in-memory caches for indexes of type edge or persistent.

+
cursorsCreated: number

Total number of cursor objects created during query execution.

+
cursorsRearmed: number

Total number of times an existing cursor object was repurposed.

+
executionTime: number

Execution time of the query in seconds.

+
filtered: number

Total number of documents that were removed after executing a filter condition in a FilterNode.

+
fullCount?: number

Total number of documents that matched the search condition if the query’s final top-level LIMIT statement were not present.

+
httpRequests: number

Total number of cluster-internal HTTP requests performed.

+
nodes?: {
    calls: number;
    filter: number;
    id: number;
    items: number;
    runtime: number;
}[]

Runtime statistics per query execution node if profile was set to 2 or greater.

+

Type declaration

  • calls: number

    Number of calls in this node.

    +
  • filter: number
  • id: number

    Execution node ID to correlate this node with nodes in the extra.plan.

    +
  • items: number

    Number of temporary result items returned by this node.

    +
  • runtime: number

    Execution time of this node in seconds.

    +
peakMemoryUsage: number

Maximum memory usage of the query while it was running.

+
scannedFull: number

Total number of documents iterated over when scanning a collection without an index.

+
scannedIndex: number

Total number of documents iterated over when scanning a collection using an index.

+
writesExecuted: number

Total number of data-modification operations successfully executed.

+
writesIgnored: number

Total number of data-modification operations that were unsuccessful, but have been ignored because of query option ignoreErrors.

+
\ No newline at end of file diff --git a/9.0.0/interfaces/error.SystemError.html b/9.0.0/interfaces/error.SystemError.html new file mode 100644 index 00000000..06b686aa --- /dev/null +++ b/9.0.0/interfaces/error.SystemError.html @@ -0,0 +1,5 @@ +SystemError | arangojs - v9.0.0

Interface SystemError

Interface representing a Node.js SystemError.

+
interface SystemError {
    code: string;
    errno: string | number;
    syscall: string;
}

Hierarchy

  • Error
    • SystemError

Properties

Properties

code: string
errno: string | number
syscall: string
\ No newline at end of file diff --git a/9.0.0/interfaces/view.ArangoSearchViewStoredValueOptions.html b/9.0.0/interfaces/view.ArangoSearchViewStoredValueOptions.html new file mode 100644 index 00000000..eea860a0 --- /dev/null +++ b/9.0.0/interfaces/view.ArangoSearchViewStoredValueOptions.html @@ -0,0 +1,12 @@ +ArangoSearchViewStoredValueOptions | arangojs - v9.0.0

Interface ArangoSearchViewStoredValueOptions

Options for creating a stored value in an ArangoSearch View.

+
interface ArangoSearchViewStoredValueOptions {
    cache?: boolean;
    compression?: Compression;
    fields: string[];
}

Properties

Properties

cache?: boolean

(Enterprise Edition only.) If set to true, then stored values will +always be cached in memory.

+

Default: false

+
compression?: Compression

How the attribute values should be compressed.

+

Default: "lz4"

+
fields: string[]

Attribute paths for which values should be stored in the view index +in addition to those used for sorting via primarySort.

+
\ No newline at end of file diff --git a/9.0.0/modules/analyzer.html b/9.0.0/modules/analyzer.html new file mode 100644 index 00000000..d93cb5f8 --- /dev/null +++ b/9.0.0/modules/analyzer.html @@ -0,0 +1,49 @@ +analyzer | arangojs - v9.0.0
\ No newline at end of file diff --git a/9.0.0/modules/aql.html b/9.0.0/modules/aql.html new file mode 100644 index 00000000..e7c1f554 --- /dev/null +++ b/9.0.0/modules/aql.html @@ -0,0 +1,14 @@ +aql | arangojs - v9.0.0

Module aql

import { aql } from "arangojs/aql.js";
+
+

The "aql" module provides the aql template string handler and +helper functions, as well as associated types and interfaces for TypeScript.

+

The aql function and namespace is also re-exported by the "index" module.

+

Index

Interfaces

Type Aliases

Functions

\ No newline at end of file diff --git a/9.0.0/modules/collection.html b/9.0.0/modules/collection.html new file mode 100644 index 00000000..1f8baca8 --- /dev/null +++ b/9.0.0/modules/collection.html @@ -0,0 +1,42 @@ +collection | arangojs - v9.0.0
\ No newline at end of file diff --git a/9.0.0/modules/connection.html b/9.0.0/modules/connection.html new file mode 100644 index 00000000..cd735acc --- /dev/null +++ b/9.0.0/modules/connection.html @@ -0,0 +1,12 @@ +connection | arangojs - v9.0.0

Module connection

import type { Config } from "arangojs/connection.js";
+
+

The "connection" module provides connection and configuration related types +for TypeScript.

+

Index

Type Aliases

\ No newline at end of file diff --git a/9.0.0/modules/cursor.html b/9.0.0/modules/cursor.html new file mode 100644 index 00000000..5332e603 --- /dev/null +++ b/9.0.0/modules/cursor.html @@ -0,0 +1,8 @@ +cursor | arangojs - v9.0.0

Module cursor

import type { ArrayCursor, BatchedArrayCursor } from "arangojs/cursor.js";
+
+

The "cursor" module provides cursor-related interfaces for TypeScript.

+

Index

Classes

Interfaces

\ No newline at end of file diff --git a/9.0.0/modules/database.html b/9.0.0/modules/database.html new file mode 100644 index 00000000..29c45153 --- /dev/null +++ b/9.0.0/modules/database.html @@ -0,0 +1,70 @@ +database | arangojs - v9.0.0

Module database

import { Database } from "arangojs/database.js";
+
+

The "database" module provides the Database class and associated +types and interfaces for TypeScript.

+

The Database class is also re-exported by the "index" module.

+

Index

Enumerations

Classes

Type Aliases

Functions

\ No newline at end of file diff --git a/9.0.0/modules/documents.html b/9.0.0/modules/documents.html new file mode 100644 index 00000000..dc39e1ca --- /dev/null +++ b/9.0.0/modules/documents.html @@ -0,0 +1,14 @@ +documents | arangojs - v9.0.0

Module documents

import type { Document, Edge } from "arangojs/documents.js";
+
+

The "documents" module provides document/edge related types for TypeScript.

+

Index

Type Aliases

\ No newline at end of file diff --git a/9.0.0/modules/error.html b/9.0.0/modules/error.html new file mode 100644 index 00000000..90425091 --- /dev/null +++ b/9.0.0/modules/error.html @@ -0,0 +1,10 @@ +error | arangojs - v9.0.0

Module error

import type { ArangoError, HttpError } from "arangojs/error.js";
+
+

The "error" module provides types and interfaces for TypeScript related +to arangojs error handling.

+

Index

Classes

Interfaces

Functions

\ No newline at end of file diff --git a/9.0.0/modules/foxx_manifest.html b/9.0.0/modules/foxx_manifest.html new file mode 100644 index 00000000..df794901 --- /dev/null +++ b/9.0.0/modules/foxx_manifest.html @@ -0,0 +1,10 @@ +foxx-manifest | arangojs - v9.0.0

Module foxx-manifest

import type { FoxxManifest } from "arangojs/foxx-manifest.js";
+
+

The "foxx-manifest" module provides the Foxx manifest type for TypeScript.

+

Generated from JSON Schema +using json-schema-to-typescript.

+

Index

Type Aliases

\ No newline at end of file diff --git a/9.0.0/modules/graph.html b/9.0.0/modules/graph.html new file mode 100644 index 00000000..f5bdeef1 --- /dev/null +++ b/9.0.0/modules/graph.html @@ -0,0 +1,20 @@ +graph | arangojs - v9.0.0

Module graph

import type {
Graph,
GraphVertexCollection,
GraphEdgeCollection,
} from "arangojs/graph.js"; +
+

The "graph" module provides graph related types and interfaces +for TypeScript.

+

Index

Classes

Type Aliases

Functions

\ No newline at end of file diff --git a/9.0.0/modules/index.html b/9.0.0/modules/index.html new file mode 100644 index 00000000..c4174e83 --- /dev/null +++ b/9.0.0/modules/index.html @@ -0,0 +1,12 @@ +index | arangojs - v9.0.0

Module index

import arangojs, { aql, Database } from "arangojs";
+
+

The "index" module is the default entry point when importing the arangojs +module or using the web build in the browser.

+

If you are just getting started, you probably want to use the +arangojs function, which is also the default export of this module, +or the database.Database class for which it is a wrapper.

+

References

Functions

References

Re-exports Database
Re-exports aql
Renames and re-exports arangojs
\ No newline at end of file diff --git a/9.0.0/modules/indexes.html b/9.0.0/modules/indexes.html new file mode 100644 index 00000000..9484c00f --- /dev/null +++ b/9.0.0/modules/indexes.html @@ -0,0 +1,27 @@ +indexes | arangojs - v9.0.0

Module indexes

import type {
FulltextIndex,
GeoIndex,
MdiIndex,
PersistentIndex,
PrimaryIndex,
TtlIndex,
} from "arangojs/indexes.js"; +
+

The "indexes" module provides index-related types for TypeScript.

+

Index

Type Aliases

\ No newline at end of file diff --git a/9.0.0/modules/job.html b/9.0.0/modules/job.html new file mode 100644 index 00000000..1bdd8de6 --- /dev/null +++ b/9.0.0/modules/job.html @@ -0,0 +1,2 @@ +job | arangojs - v9.0.0

Module job

Index

Classes

Job +
\ No newline at end of file diff --git a/9.0.0/modules/route.html b/9.0.0/modules/route.html new file mode 100644 index 00000000..dddf1ed5 --- /dev/null +++ b/9.0.0/modules/route.html @@ -0,0 +1,5 @@ +route | arangojs - v9.0.0

Module route

import type { Route } from "arangojs/route.js";
+
+

The "route" module provides route related types and interfaces for TypeScript.

+

Index

Classes

\ No newline at end of file diff --git a/9.0.0/modules/transaction.html b/9.0.0/modules/transaction.html new file mode 100644 index 00000000..85c9b31a --- /dev/null +++ b/9.0.0/modules/transaction.html @@ -0,0 +1,10 @@ +transaction | arangojs - v9.0.0

Module transaction

import type { Transaction } from "arangojs/transaction.js";
+
+

The "transaction" module provides transaction related types and interfaces +for TypeScript.

+

Index

Classes

Type Aliases

Functions

\ No newline at end of file diff --git a/9.0.0/modules/view.html b/9.0.0/modules/view.html new file mode 100644 index 00000000..e6a028e6 --- /dev/null +++ b/9.0.0/modules/view.html @@ -0,0 +1,31 @@ +view | arangojs - v9.0.0
\ No newline at end of file diff --git a/9.0.0/types/analyzer.AnalyzerDescription.html b/9.0.0/types/analyzer.AnalyzerDescription.html new file mode 100644 index 00000000..ec6bcca6 --- /dev/null +++ b/9.0.0/types/analyzer.AnalyzerDescription.html @@ -0,0 +1,2 @@ +AnalyzerDescription | arangojs - v9.0.0
\ No newline at end of file diff --git a/9.0.0/types/analyzer.AnalyzerFeature.html b/9.0.0/types/analyzer.AnalyzerFeature.html new file mode 100644 index 00000000..f6516525 --- /dev/null +++ b/9.0.0/types/analyzer.AnalyzerFeature.html @@ -0,0 +1,2 @@ +AnalyzerFeature | arangojs - v9.0.0

Type alias AnalyzerFeature

AnalyzerFeature: "frequency" | "norm" | "position" | "offset"

Name of a feature enabled for an Analyzer.

+
\ No newline at end of file diff --git a/9.0.0/types/analyzer.AqlAnalyzerDescription.html b/9.0.0/types/analyzer.AqlAnalyzerDescription.html new file mode 100644 index 00000000..602fc5c0 --- /dev/null +++ b/9.0.0/types/analyzer.AqlAnalyzerDescription.html @@ -0,0 +1,2 @@ +AqlAnalyzerDescription | arangojs - v9.0.0

Type alias AqlAnalyzerDescription

AqlAnalyzerDescription: GenericAnalyzerDescription & {
    properties: {
        batchSize: number;
        collapsePositions: boolean;
        keepNull: boolean;
        memoryLimit: number;
        queryString: string;
        returnType: "string" | "number" | "bool";
    };
    type: "aql";
}

An object describing an AQL Analyzer

+

Type declaration

  • properties: {
        batchSize: number;
        collapsePositions: boolean;
        keepNull: boolean;
        memoryLimit: number;
        queryString: string;
        returnType: "string" | "number" | "bool";
    }
    • batchSize: number
    • collapsePositions: boolean
    • keepNull: boolean
    • memoryLimit: number
    • queryString: string
    • returnType: "string" | "number" | "bool"
  • type: "aql"
\ No newline at end of file diff --git a/9.0.0/types/analyzer.ClassificationAnalyzerDescription.html b/9.0.0/types/analyzer.ClassificationAnalyzerDescription.html new file mode 100644 index 00000000..3597af82 --- /dev/null +++ b/9.0.0/types/analyzer.ClassificationAnalyzerDescription.html @@ -0,0 +1,2 @@ +ClassificationAnalyzerDescription | arangojs - v9.0.0

Type alias ClassificationAnalyzerDescription

ClassificationAnalyzerDescription: GenericAnalyzerDescription & {
    properties: {
        model_location: string;
        threshold: number;
        top_k: number;
    };
    type: "classification";
}

(Enterprise Edition only.) An object describing a Classification Analyzer

+

Type declaration

  • properties: {
        model_location: string;
        threshold: number;
        top_k: number;
    }
    • model_location: string
    • threshold: number
    • top_k: number
  • type: "classification"
\ No newline at end of file diff --git a/9.0.0/types/analyzer.CollationAnalyzerDescription.html b/9.0.0/types/analyzer.CollationAnalyzerDescription.html new file mode 100644 index 00000000..33bbcc20 --- /dev/null +++ b/9.0.0/types/analyzer.CollationAnalyzerDescription.html @@ -0,0 +1,2 @@ +CollationAnalyzerDescription | arangojs - v9.0.0

Type alias CollationAnalyzerDescription

CollationAnalyzerDescription: GenericAnalyzerDescription & {
    properties: {
        locale: string;
    };
    type: "collation";
}

An object describing a Collation Analyzer

+

Type declaration

  • properties: {
        locale: string;
    }
    • locale: string
  • type: "collation"
\ No newline at end of file diff --git a/9.0.0/types/analyzer.CreateAnalyzerOptions.html b/9.0.0/types/analyzer.CreateAnalyzerOptions.html new file mode 100644 index 00000000..06978ee2 --- /dev/null +++ b/9.0.0/types/analyzer.CreateAnalyzerOptions.html @@ -0,0 +1,2 @@ +CreateAnalyzerOptions | arangojs - v9.0.0
\ No newline at end of file diff --git a/9.0.0/types/analyzer.CreateAqlAnalyzerOptions.html b/9.0.0/types/analyzer.CreateAqlAnalyzerOptions.html new file mode 100644 index 00000000..7f582f8d --- /dev/null +++ b/9.0.0/types/analyzer.CreateAqlAnalyzerOptions.html @@ -0,0 +1,17 @@ +CreateAqlAnalyzerOptions | arangojs - v9.0.0

Type alias CreateAqlAnalyzerOptions

CreateAqlAnalyzerOptions: {
    features?: AnalyzerFeature[];
    properties: {
        batchSize?: number;
        collapsePositions?: boolean;
        keepNull?: boolean;
        memoryLimit?: number;
        queryString: string;
        returnType?: "string" | "number" | "bool";
    };
    type: "aql";
}

Options for creating an AQL Analyzer

+

Type declaration

  • Optional features?: AnalyzerFeature[]

    Features to enable for this Analyzer.

    +
  • properties: {
        batchSize?: number;
        collapsePositions?: boolean;
        keepNull?: boolean;
        memoryLimit?: number;
        queryString: string;
        returnType?: "string" | "number" | "bool";
    }

    Additional properties for the Analyzer.

    +
    • Optional batchSize?: number

      Number between 1 and 1000 that determines the batch size for reading +data from the query.

      +

      Default: 1

      +
    • Optional collapsePositions?: boolean

      If set to true, the position is set to 0 for all members of the query result array.

      +

      Default: false

      +
    • Optional keepNull?: boolean

      If set to false, null values will be discarded from the View index.

      +

      Default: true

      +
    • Optional memoryLimit?: number

      Memory limit for query execution in bytes.

      +

      Default: 1048576 (1 MiB)

      +
    • queryString: string

      AQL query to be executed.

      +
    • Optional returnType?: "string" | "number" | "bool"

      Data type of the returned tokens.

      +

      Default: "string"

      +
  • type: "aql"

    Type of the Analyzer.

    +
\ No newline at end of file diff --git a/9.0.0/types/analyzer.CreateClassificationAnalyzerOptions.html b/9.0.0/types/analyzer.CreateClassificationAnalyzerOptions.html new file mode 100644 index 00000000..41ba1b91 --- /dev/null +++ b/9.0.0/types/analyzer.CreateClassificationAnalyzerOptions.html @@ -0,0 +1,10 @@ +CreateClassificationAnalyzerOptions | arangojs - v9.0.0

Type alias CreateClassificationAnalyzerOptions

CreateClassificationAnalyzerOptions: {
    features?: AnalyzerFeature[];
    properties: {
        model_location: string;
        threshold?: number;
        top_k?: number;
    };
    type: "classification";
}

(Enterprise Edition only.) Options for creating a Classification Analyzer

+

Type declaration

  • Optional features?: AnalyzerFeature[]

    Features to enable for this Analyzer.

    +
  • properties: {
        model_location: string;
        threshold?: number;
        top_k?: number;
    }

    Additional properties for the Analyzer.

    +
    • model_location: string

      On-disk path to the trained fastText supervised model.

      +
    • Optional threshold?: number

      Probability threshold for which a label will be assigned to an input.

      +

      Default: 0.99

      +
    • Optional top_k?: number

      Number of class labels that will be produced per input.

      +

      Default: 1

      +
  • type: "classification"

    Type of the Analyzer.

    +
\ No newline at end of file diff --git a/9.0.0/types/analyzer.CreateCollationAnalyzerOptions.html b/9.0.0/types/analyzer.CreateCollationAnalyzerOptions.html new file mode 100644 index 00000000..f6393d9a --- /dev/null +++ b/9.0.0/types/analyzer.CreateCollationAnalyzerOptions.html @@ -0,0 +1,7 @@ +CreateCollationAnalyzerOptions | arangojs - v9.0.0

Type alias CreateCollationAnalyzerOptions

CreateCollationAnalyzerOptions: {
    features?: AnalyzerFeature[];
    properties: {
        locale: string;
    };
    type: "collation";
}

Options for creating a Collation Analyzer

+

Type declaration

  • Optional features?: AnalyzerFeature[]

    Features to enable for this Analyzer.

    +
  • properties: {
        locale: string;
    }

    Additional properties for the Analyzer.

    +
    • locale: string

      Text locale.

      +

      Format: language[_COUNTRY][.encoding][@variant]

      +
  • type: "collation"

    Type of the Analyzer.

    +
\ No newline at end of file diff --git a/9.0.0/types/analyzer.CreateDelimiterAnalyzerOptions.html b/9.0.0/types/analyzer.CreateDelimiterAnalyzerOptions.html new file mode 100644 index 00000000..7194da65 --- /dev/null +++ b/9.0.0/types/analyzer.CreateDelimiterAnalyzerOptions.html @@ -0,0 +1,7 @@ +CreateDelimiterAnalyzerOptions | arangojs - v9.0.0

Type alias CreateDelimiterAnalyzerOptions

CreateDelimiterAnalyzerOptions: {
    features?: AnalyzerFeature[];
    properties: string | {
        delimiter: string;
    };
    type: "delimiter";
}

Options for creating a Delimiter Analyzer.

+

Type declaration

  • Optional features?: AnalyzerFeature[]

    Features to enable for this Analyzer.

    +
  • properties: string | {
        delimiter: string;
    }

    Additional properties for the Analyzer.

    +

    The value will be used as delimiter to split text into tokens as specified +in RFC 4180, without starting new records on newlines.

    +
  • type: "delimiter"

    Type of the Analyzer.

    +
\ No newline at end of file diff --git a/9.0.0/types/analyzer.CreateGeoJsonAnalyzerOptions.html b/9.0.0/types/analyzer.CreateGeoJsonAnalyzerOptions.html new file mode 100644 index 00000000..6eeb410f --- /dev/null +++ b/9.0.0/types/analyzer.CreateGeoJsonAnalyzerOptions.html @@ -0,0 +1,12 @@ +CreateGeoJsonAnalyzerOptions | arangojs - v9.0.0

Type alias CreateGeoJsonAnalyzerOptions

CreateGeoJsonAnalyzerOptions: {
    features?: AnalyzerFeature[];
    properties: {
        options?: {
            maxCells?: number;
            maxLevel?: number;
            minLevel?: number;
        };
        type?: "shape" | "centroid" | "point";
    };
    type: "geojson";
}

Options for creating a GeoJSON Analyzer

+

Type declaration

  • Optional features?: AnalyzerFeature[]

    Features to enable for this Analyzer.

    +
  • properties: {
        options?: {
            maxCells?: number;
            maxLevel?: number;
            minLevel?: number;
        };
        type?: "shape" | "centroid" | "point";
    }

    Additional properties for the Analyzer.

    +
    • Optional options?: {
          maxCells?: number;
          maxLevel?: number;
          minLevel?: number;
      }

      Options for fine-tuning geo queries.

      +

      Default: { maxCells: 20, minLevel: 4, maxLevel: 23 }

      +
      • Optional maxCells?: number
      • Optional maxLevel?: number
      • Optional minLevel?: number
    • Optional type?: "shape" | "centroid" | "point"

      If set to "centroid", only the centroid of the input geometry will be +computed and indexed.

      +

      If set to "point" only GeoJSON objects of type Point will be indexed and +all other geometry types will be ignored.

      +

      Default: "shape"

      +
  • type: "geojson"

    Type of the Analyzer.

    +
\ No newline at end of file diff --git a/9.0.0/types/analyzer.CreateGeoPointAnalyzerOptions.html b/9.0.0/types/analyzer.CreateGeoPointAnalyzerOptions.html new file mode 100644 index 00000000..11bd9d93 --- /dev/null +++ b/9.0.0/types/analyzer.CreateGeoPointAnalyzerOptions.html @@ -0,0 +1,11 @@ +CreateGeoPointAnalyzerOptions | arangojs - v9.0.0

Type alias CreateGeoPointAnalyzerOptions

CreateGeoPointAnalyzerOptions: {
    features?: AnalyzerFeature[];
    properties: {
        latitude?: string[];
        longitude?: string[];
        options?: {
            maxLevel?: number;
            minCells?: number;
            minLevel?: number;
        };
    };
    type: "geopoint";
}

Options for creating a GeoPoint Analyzer

+

Type declaration

  • Optional features?: AnalyzerFeature[]

    Features to enable for this Analyzer.

    +
  • properties: {
        latitude?: string[];
        longitude?: string[];
        options?: {
            maxLevel?: number;
            minCells?: number;
            minLevel?: number;
        };
    }

    Additional properties for the Analyzer.

    +
    • Optional latitude?: string[]

      Attribute paths of the latitude value relative to the field for which the +Analyzer is defined in the View.

      +
    • Optional longitude?: string[]

      Attribute paths of the longitude value relative to the field for which the +Analyzer is defined in the View.

      +
    • Optional options?: {
          maxLevel?: number;
          minCells?: number;
          minLevel?: number;
      }

      Options for fine-tuning geo queries.

      +

      Default: { maxCells: 20, minLevel: 4, maxLevel: 23 }

      +
      • Optional maxLevel?: number
      • Optional minCells?: number
      • Optional minLevel?: number
  • type: "geopoint"

    Type of the Analyzer.

    +
\ No newline at end of file diff --git a/9.0.0/types/analyzer.CreateGeoS2AnalyzerOptions.html b/9.0.0/types/analyzer.CreateGeoS2AnalyzerOptions.html new file mode 100644 index 00000000..ff0b1267 --- /dev/null +++ b/9.0.0/types/analyzer.CreateGeoS2AnalyzerOptions.html @@ -0,0 +1,19 @@ +CreateGeoS2AnalyzerOptions | arangojs - v9.0.0

Type alias CreateGeoS2AnalyzerOptions

CreateGeoS2AnalyzerOptions: {
    features?: AnalyzerFeature[];
    properties: {
        format?: "latLngDouble" | "latLngInt" | "s2Point";
        options?: {
            maxCells?: number;
            maxLevel?: number;
            minLevel?: number;
        };
        type?: "shape" | "centroid" | "point";
    };
    type: "geo_s2";
}

(Enterprise Edition only.) Options for creating a Geo S2 Analyzer

+

Type declaration

  • Optional features?: AnalyzerFeature[]

    Features to enable for this Analyzer.

    +
  • properties: {
        format?: "latLngDouble" | "latLngInt" | "s2Point";
        options?: {
            maxCells?: number;
            maxLevel?: number;
            minLevel?: number;
        };
        type?: "shape" | "centroid" | "point";
    }

    Additional properties for the Analyzer.

    +
    • Optional format?: "latLngDouble" | "latLngInt" | "s2Point"

      If set to "latLngDouble", each latitude and longitude value is stored +as an 8-byte floating-point value (16 bytes per coordinate pair).

      +

      If set to "latLngInt", each latitude and longitude value is stored as +a 4-byte integer value (8 bytes per coordinate pair).

      +

      If set to "s2Point", each longitude-latitude pair is stored in the +native format of Google S2 (24 bytes per coordinate pair).

      +

      Default: "latLngDouble"

      +
    • Optional options?: {
          maxCells?: number;
          maxLevel?: number;
          minLevel?: number;
      }

      Options for fine-tuning geo queries.

      +

      Default: { maxCells: 20, minLevel: 4, maxLevel: 23 }

      +
      • Optional maxCells?: number
      • Optional maxLevel?: number
      • Optional minLevel?: number
    • Optional type?: "shape" | "centroid" | "point"

      If set to "centroid", only the centroid of the input geometry will be +computed and indexed.

      +

      If set to "point" only GeoJSON objects of type Point will be indexed and +all other geometry types will be ignored.

      +

      Default: "shape"

      +
  • type: "geo_s2"

    Type of the Analyzer.

    +
\ No newline at end of file diff --git a/9.0.0/types/analyzer.CreateIdentityAnalyzerOptions.html b/9.0.0/types/analyzer.CreateIdentityAnalyzerOptions.html new file mode 100644 index 00000000..31b25f2e --- /dev/null +++ b/9.0.0/types/analyzer.CreateIdentityAnalyzerOptions.html @@ -0,0 +1,6 @@ +CreateIdentityAnalyzerOptions | arangojs - v9.0.0

Type alias CreateIdentityAnalyzerOptions

CreateIdentityAnalyzerOptions: {
    features?: AnalyzerFeature[];
    properties?: Record<string, never>;
    type: "identity";
}

Options for creating an Identity Analyzer.

+

Type declaration

  • Optional features?: AnalyzerFeature[]

    Features to enable for this Analyzer.

    +
  • Optional properties?: Record<string, never>

    Additional properties for the Analyzer.

    +

    The identity Analyzer does not take additional properties.

    +
  • type: "identity"

    Type of the Analyzer.

    +
\ No newline at end of file diff --git a/9.0.0/types/analyzer.CreateMinHashAnalyzerOptions.html b/9.0.0/types/analyzer.CreateMinHashAnalyzerOptions.html new file mode 100644 index 00000000..3d108d48 --- /dev/null +++ b/9.0.0/types/analyzer.CreateMinHashAnalyzerOptions.html @@ -0,0 +1,7 @@ +CreateMinHashAnalyzerOptions | arangojs - v9.0.0

Type alias CreateMinHashAnalyzerOptions

CreateMinHashAnalyzerOptions: {
    features?: AnalyzerFeature[];
    properties: {
        analyzer: Omit<CreateAnalyzerOptions, "features">;
        numHashes: number;
    };
    type: "minhash";
}

(Enterprise Edition only.) Options for creating a MinHash Analyzer

+

Type declaration

  • Optional features?: AnalyzerFeature[]

    Features to enable for this Analyzer.

    +
  • properties: {
        analyzer: Omit<CreateAnalyzerOptions, "features">;
        numHashes: number;
    }

    Additional properties for the Analyzer.

    +
    • analyzer: Omit<CreateAnalyzerOptions, "features">

      An Analyzer definition-like object with type and properties attributes.

      +
    • numHashes: number

      Size of the MinHash signature.

      +
  • type: "minhash"

    Type of the Analyzer.

    +
\ No newline at end of file diff --git a/9.0.0/types/analyzer.CreateMultiDelimiterAnalyzerOptions.html b/9.0.0/types/analyzer.CreateMultiDelimiterAnalyzerOptions.html new file mode 100644 index 00000000..35cf68da --- /dev/null +++ b/9.0.0/types/analyzer.CreateMultiDelimiterAnalyzerOptions.html @@ -0,0 +1,7 @@ +CreateMultiDelimiterAnalyzerOptions | arangojs - v9.0.0

Type alias CreateMultiDelimiterAnalyzerOptions

CreateMultiDelimiterAnalyzerOptions: {
    features?: AnalyzerFeature[];
    properties: {
        delimiters: string[];
    };
    type: "multi_delimiter";
}

Options for creating a Multi-Delimiter Analyzer.

+

Type declaration

  • Optional features?: AnalyzerFeature[]

    Features to enable for this Analyzer.

    +
  • properties: {
        delimiters: string[];
    }

    Additional properties for the Analyzer.

    +

    The value will be used as delimiter to split text into tokens as specified +in RFC 4180, without starting new records on newlines.

    +
    • delimiters: string[]
  • type: "multi_delimiter"

    Type of the Analyzer.

    +
\ No newline at end of file diff --git a/9.0.0/types/analyzer.CreateNearestNeighborsAnalyzerOptions.html b/9.0.0/types/analyzer.CreateNearestNeighborsAnalyzerOptions.html new file mode 100644 index 00000000..e4aceab8 --- /dev/null +++ b/9.0.0/types/analyzer.CreateNearestNeighborsAnalyzerOptions.html @@ -0,0 +1,8 @@ +CreateNearestNeighborsAnalyzerOptions | arangojs - v9.0.0

Type alias CreateNearestNeighborsAnalyzerOptions

CreateNearestNeighborsAnalyzerOptions: {
    features?: AnalyzerFeature[];
    properties: {
        model_location: string;
        top_k?: number;
    };
    type: "nearest_neighbors";
}

(Enterprise Edition only.) Options for creating a NearestNeighbors Analyzer.

+

Type declaration

  • Optional features?: AnalyzerFeature[]

    Features to enable for this Analyzer.

    +
  • properties: {
        model_location: string;
        top_k?: number;
    }

    Additional properties for the Analyzer.

    +
    • model_location: string

      On-disk path to the trained fastText supervised model.

      +
    • Optional top_k?: number

      Number of class labels that will be produced per input.

      +

      Default: 1

      +
  • type: "nearest_neighbors"

    Type of the Analyzer.

    +
\ No newline at end of file diff --git a/9.0.0/types/analyzer.CreateNgramAnalyzerOptions.html b/9.0.0/types/analyzer.CreateNgramAnalyzerOptions.html new file mode 100644 index 00000000..30c96868 --- /dev/null +++ b/9.0.0/types/analyzer.CreateNgramAnalyzerOptions.html @@ -0,0 +1,8 @@ +CreateNgramAnalyzerOptions | arangojs - v9.0.0

Type alias CreateNgramAnalyzerOptions

CreateNgramAnalyzerOptions: {
    features?: AnalyzerFeature[];
    properties: {
        max: number;
        min: number;
        preserveOriginal: boolean;
    };
    type: "ngram";
}

Options for creating an Ngram Analyzer.

+

Type declaration

  • Optional features?: AnalyzerFeature[]

    Features to enable for this Analyzer.

    +
  • properties: {
        max: number;
        min: number;
        preserveOriginal: boolean;
    }

    Additional properties for the Analyzer.

    +
    • max: number

      Maximum n-gram length.

      +
    • min: number

      Minimum n-gram length.

      +
    • preserveOriginal: boolean

      Output the original value as well.

      +
  • type: "ngram"

    Type of the Analyzer.

    +
\ No newline at end of file diff --git a/9.0.0/types/analyzer.CreateNormAnalyzerOptions.html b/9.0.0/types/analyzer.CreateNormAnalyzerOptions.html new file mode 100644 index 00000000..26e05910 --- /dev/null +++ b/9.0.0/types/analyzer.CreateNormAnalyzerOptions.html @@ -0,0 +1,11 @@ +CreateNormAnalyzerOptions | arangojs - v9.0.0

Type alias CreateNormAnalyzerOptions

CreateNormAnalyzerOptions: {
    features?: AnalyzerFeature[];
    properties: {
        accent?: boolean;
        case?: "lower" | "none" | "upper";
        locale: string;
    };
    type: "norm";
}

Options for creating a Norm Analyzer.

+

Type declaration

  • Optional features?: AnalyzerFeature[]

    Features to enable for this Analyzer.

    +
  • properties: {
        accent?: boolean;
        case?: "lower" | "none" | "upper";
        locale: string;
    }

    Additional properties for the Analyzer.

    +
    • Optional accent?: boolean

      Preserve accents in returned words.

      +

      Default: false

      +
    • Optional case?: "lower" | "none" | "upper"

      Case conversion.

      +

      Default: "lower"

      +
    • locale: string

      Text locale.

      +

      Format: language[_COUNTRY][.encoding][@variant]

      +
  • type: "norm"

    Type of the Analyzer.

    +
\ No newline at end of file diff --git a/9.0.0/types/analyzer.CreatePipelineAnalyzerOptions.html b/9.0.0/types/analyzer.CreatePipelineAnalyzerOptions.html new file mode 100644 index 00000000..c6cc982a --- /dev/null +++ b/9.0.0/types/analyzer.CreatePipelineAnalyzerOptions.html @@ -0,0 +1,6 @@ +CreatePipelineAnalyzerOptions | arangojs - v9.0.0

Type alias CreatePipelineAnalyzerOptions

CreatePipelineAnalyzerOptions: {
    features?: AnalyzerFeature[];
    properties: {
        pipeline: Omit<CreateAnalyzerOptions, "features">[];
    };
    type: "pipeline";
}

Options for creating a Pipeline Analyzer

+

Type declaration

  • Optional features?: AnalyzerFeature[]

    Features to enable for this Analyzer.

    +
  • properties: {
        pipeline: Omit<CreateAnalyzerOptions, "features">[];
    }

    Additional properties for the Analyzer.

    +
    • pipeline: Omit<CreateAnalyzerOptions, "features">[]

      Definitions for Analyzers to chain in this Pipeline Analyzer.

      +
  • type: "pipeline"

    Type of the Analyzer.

    +
\ No newline at end of file diff --git a/9.0.0/types/analyzer.CreateSegmentationAnalyzerOptions.html b/9.0.0/types/analyzer.CreateSegmentationAnalyzerOptions.html new file mode 100644 index 00000000..68cfc31d --- /dev/null +++ b/9.0.0/types/analyzer.CreateSegmentationAnalyzerOptions.html @@ -0,0 +1,9 @@ +CreateSegmentationAnalyzerOptions | arangojs - v9.0.0

Type alias CreateSegmentationAnalyzerOptions

CreateSegmentationAnalyzerOptions: {
    features?: AnalyzerFeature[];
    properties: {
        break?: "all" | "alpha" | "graphic";
        case?: "lower" | "upper" | "none";
    };
    type: "segmentation";
}

Options for creating a Segmentation Analyzer

+

Type declaration

  • Optional features?: AnalyzerFeature[]

    Features to enable for this Analyzer.

    +
  • properties: {
        break?: "all" | "alpha" | "graphic";
        case?: "lower" | "upper" | "none";
    }

    Additional properties for the Analyzer.

    +
    • Optional break?: "all" | "alpha" | "graphic"

      Which tokens should be returned.

      +

      Default: "alpha"

      +
    • Optional case?: "lower" | "upper" | "none"

      What case all returned tokens should be converted to if applicable.

      +

      Default: "none"

      +
  • type: "segmentation"

    Type of the Analyzer.

    +
\ No newline at end of file diff --git a/9.0.0/types/analyzer.CreateStemAnalyzerOptions.html b/9.0.0/types/analyzer.CreateStemAnalyzerOptions.html new file mode 100644 index 00000000..6d5f47b0 --- /dev/null +++ b/9.0.0/types/analyzer.CreateStemAnalyzerOptions.html @@ -0,0 +1,7 @@ +CreateStemAnalyzerOptions | arangojs - v9.0.0

Type alias CreateStemAnalyzerOptions

CreateStemAnalyzerOptions: {
    features?: AnalyzerFeature[];
    properties: {
        locale: string;
    };
    type: "stem";
}

Options for creating a Stem Analyzer.

+

Type declaration

  • Optional features?: AnalyzerFeature[]

    Features to enable for this Analyzer.

    +
  • properties: {
        locale: string;
    }

    Additional properties for the Analyzer.

    +

    The value defines the text locale.

    +

    Format: language[_COUNTRY][.encoding][@variant]

    +
    • locale: string
  • type: "stem"

    Type of the Analyzer.

    +
\ No newline at end of file diff --git a/9.0.0/types/analyzer.CreateStopwordsAnalyzerOptions.html b/9.0.0/types/analyzer.CreateStopwordsAnalyzerOptions.html new file mode 100644 index 00000000..78ab50e9 --- /dev/null +++ b/9.0.0/types/analyzer.CreateStopwordsAnalyzerOptions.html @@ -0,0 +1,8 @@ +CreateStopwordsAnalyzerOptions | arangojs - v9.0.0

Type alias CreateStopwordsAnalyzerOptions

CreateStopwordsAnalyzerOptions: {
    features?: AnalyzerFeature[];
    properties: {
        hex?: boolean;
        stopwords: string[];
    };
    type: "stopwords";
}

Options for creating a Stopwords Analyzer

+

Type declaration

  • Optional features?: AnalyzerFeature[]

    Features to enable for this Analyzer.

    +
  • properties: {
        hex?: boolean;
        stopwords: string[];
    }

    Additional properties for the Analyzer.

    +
    • Optional hex?: boolean

      Whether stopword values should be interpreted as hex-encoded strings.

      +

      Default: false

      +
    • stopwords: string[]

      Array of strings that describe the tokens to be discarded.

      +
  • type: "stopwords"

    Type of the Analyzer.

    +
\ No newline at end of file diff --git a/9.0.0/types/analyzer.CreateTextAnalyzerOptions.html b/9.0.0/types/analyzer.CreateTextAnalyzerOptions.html new file mode 100644 index 00000000..6fd79ac5 --- /dev/null +++ b/9.0.0/types/analyzer.CreateTextAnalyzerOptions.html @@ -0,0 +1,20 @@ +CreateTextAnalyzerOptions | arangojs - v9.0.0

Type alias CreateTextAnalyzerOptions

CreateTextAnalyzerOptions: {
    features?: AnalyzerFeature[];
    properties: {
        accent?: boolean;
        case?: "lower" | "none" | "upper";
        edgeNgram?: {
            max?: number;
            min?: number;
            preserveOriginal?: boolean;
        };
        locale: string;
        stemming?: boolean;
        stopwords?: string[];
        stopwordsPath?: string;
    };
    type: "text";
}

Options for creating a Text Analyzer.

+

Type declaration

  • Optional features?: AnalyzerFeature[]

    Features to enable for this Analyzer.

    +
  • properties: {
        accent?: boolean;
        case?: "lower" | "none" | "upper";
        edgeNgram?: {
            max?: number;
            min?: number;
            preserveOriginal?: boolean;
        };
        locale: string;
        stemming?: boolean;
        stopwords?: string[];
        stopwordsPath?: string;
    }

    Additional properties for the Analyzer.

    +
    • Optional accent?: boolean

      Preserve accents in returned words.

      +

      Default: false

      +
    • Optional case?: "lower" | "none" | "upper"

      Case conversion.

      +

      Default: "lower"

      +
    • Optional edgeNgram?: {
          max?: number;
          min?: number;
          preserveOriginal?: boolean;
      }

      If present, then edge n-grams are generated for each token (word).

      +
      • Optional max?: number
      • Optional min?: number
      • Optional preserveOriginal?: boolean
    • locale: string

      Text locale.

      +

      Format: language[_COUNTRY][.encoding][@variant]

      +
    • Optional stemming?: boolean

      Apply stemming on returned words.

      +

      Default: true

      +
    • Optional stopwords?: string[]

      Words to omit from result.

      +

      Defaults to the words loaded from the file at stopwordsPath.

      +
    • Optional stopwordsPath?: string

      Path with a language sub-directory containing files with words to omit.

      +

      Defaults to the path specified in the server-side environment variable +IRESEARCH_TEXT_STOPWORD_PATH or the current working directory of the +ArangoDB process.

      +
  • type: "text"

    Type of the Analyzer.

    +
\ No newline at end of file diff --git a/9.0.0/types/analyzer.CreateWildcardAnalyzerOptions.html b/9.0.0/types/analyzer.CreateWildcardAnalyzerOptions.html new file mode 100644 index 00000000..30dfbbec --- /dev/null +++ b/9.0.0/types/analyzer.CreateWildcardAnalyzerOptions.html @@ -0,0 +1,7 @@ +CreateWildcardAnalyzerOptions | arangojs - v9.0.0

Type alias CreateWildcardAnalyzerOptions

CreateWildcardAnalyzerOptions: {
    features?: AnalyzerFeature[];
    properties: {
        analyzer?: Omit<CreateAnalyzerOptions, "features">;
        ngramSize: string;
    };
    type: "wildcard";
}

Options for creating a Wildcard Analyzer.

+

Type declaration

  • Optional features?: AnalyzerFeature[]

    Features to enable for this Analyzer.

    +
  • properties: {
        analyzer?: Omit<CreateAnalyzerOptions, "features">;
        ngramSize: string;
    }

    Additional properties for the Analyzer.

    +
    • Optional analyzer?: Omit<CreateAnalyzerOptions, "features">

      An Analyzer definition-like object with type and properties attributes.

      +
    • ngramSize: string

      N-gram length. Must be a positive integer greater than or equal to 2.

      +
  • type: "wildcard"

    Type of the Analyzer.

    +
\ No newline at end of file diff --git a/9.0.0/types/analyzer.DelimiterAnalyzerDescription.html b/9.0.0/types/analyzer.DelimiterAnalyzerDescription.html new file mode 100644 index 00000000..bceba7b6 --- /dev/null +++ b/9.0.0/types/analyzer.DelimiterAnalyzerDescription.html @@ -0,0 +1,2 @@ +DelimiterAnalyzerDescription | arangojs - v9.0.0

Type alias DelimiterAnalyzerDescription

DelimiterAnalyzerDescription: GenericAnalyzerDescription & {
    properties: {
        delimiter: string;
    };
    type: "delimiter";
}

An object describing a Delimiter Analyzer.

+

Type declaration

  • properties: {
        delimiter: string;
    }
    • delimiter: string
  • type: "delimiter"
\ No newline at end of file diff --git a/9.0.0/types/analyzer.GenericAnalyzerDescription.html b/9.0.0/types/analyzer.GenericAnalyzerDescription.html new file mode 100644 index 00000000..b1dce2fe --- /dev/null +++ b/9.0.0/types/analyzer.GenericAnalyzerDescription.html @@ -0,0 +1,4 @@ +GenericAnalyzerDescription | arangojs - v9.0.0

Type alias GenericAnalyzerDescription

GenericAnalyzerDescription: {
    features: AnalyzerFeature[];
    name: string;
}

Shared attributes of all Analyzer descriptions.

+

Type declaration

  • features: AnalyzerFeature[]

    Features enabled for this Analyzer.

    +
  • name: string

    A unique name for this Analyzer.

    +
\ No newline at end of file diff --git a/9.0.0/types/analyzer.GeoJsonAnalyzerDescription.html b/9.0.0/types/analyzer.GeoJsonAnalyzerDescription.html new file mode 100644 index 00000000..4ab467e8 --- /dev/null +++ b/9.0.0/types/analyzer.GeoJsonAnalyzerDescription.html @@ -0,0 +1,2 @@ +GeoJsonAnalyzerDescription | arangojs - v9.0.0

Type alias GeoJsonAnalyzerDescription

GeoJsonAnalyzerDescription: GenericAnalyzerDescription & {
    properties: {
        description: {
            maxCells: number;
            maxLevel: number;
            minLevel: number;
        };
        type: "shape" | "centroid" | "point";
    };
    type: "geojson";
}

An object describing a GeoJSON Analyzer

+

Type declaration

  • properties: {
        description: {
            maxCells: number;
            maxLevel: number;
            minLevel: number;
        };
        type: "shape" | "centroid" | "point";
    }
    • description: {
          maxCells: number;
          maxLevel: number;
          minLevel: number;
      }
      • maxCells: number
      • maxLevel: number
      • minLevel: number
    • type: "shape" | "centroid" | "point"
  • type: "geojson"
\ No newline at end of file diff --git a/9.0.0/types/analyzer.GeoPointAnalyzerDescription.html b/9.0.0/types/analyzer.GeoPointAnalyzerDescription.html new file mode 100644 index 00000000..c6cefbcd --- /dev/null +++ b/9.0.0/types/analyzer.GeoPointAnalyzerDescription.html @@ -0,0 +1,2 @@ +GeoPointAnalyzerDescription | arangojs - v9.0.0

Type alias GeoPointAnalyzerDescription

GeoPointAnalyzerDescription: GenericAnalyzerDescription & {
    properties: {
        description: {
            maxLevel: number;
            minCells: number;
            minLevel: number;
        };
        latitude: string[];
        longitude: string[];
    };
    type: "geopoint";
}

An object describing a GeoPoint Analyzer

+

Type declaration

  • properties: {
        description: {
            maxLevel: number;
            minCells: number;
            minLevel: number;
        };
        latitude: string[];
        longitude: string[];
    }
    • description: {
          maxLevel: number;
          minCells: number;
          minLevel: number;
      }
      • maxLevel: number
      • minCells: number
      • minLevel: number
    • latitude: string[]
    • longitude: string[]
  • type: "geopoint"
\ No newline at end of file diff --git a/9.0.0/types/analyzer.GeoS2AnalyzerDescription.html b/9.0.0/types/analyzer.GeoS2AnalyzerDescription.html new file mode 100644 index 00000000..d5b697e9 --- /dev/null +++ b/9.0.0/types/analyzer.GeoS2AnalyzerDescription.html @@ -0,0 +1,2 @@ +GeoS2AnalyzerDescription | arangojs - v9.0.0

Type alias GeoS2AnalyzerDescription

GeoS2AnalyzerDescription: GenericAnalyzerDescription & {
    properties: {
        description: {
            maxCells: number;
            maxLevel: number;
            minLevel: number;
        };
        format: "latLngDouble" | "latLngInt" | "s2Point";
        type: "shape" | "centroid" | "point";
    };
    type: "geo_s2";
}

(Enterprise Edition only.) An object describing a GeoS2 Analyzer

+

Type declaration

  • properties: {
        description: {
            maxCells: number;
            maxLevel: number;
            minLevel: number;
        };
        format: "latLngDouble" | "latLngInt" | "s2Point";
        type: "shape" | "centroid" | "point";
    }
    • description: {
          maxCells: number;
          maxLevel: number;
          minLevel: number;
      }
      • maxCells: number
      • maxLevel: number
      • minLevel: number
    • format: "latLngDouble" | "latLngInt" | "s2Point"
    • type: "shape" | "centroid" | "point"
  • type: "geo_s2"
\ No newline at end of file diff --git a/9.0.0/types/analyzer.IdentityAnalyzerDescription.html b/9.0.0/types/analyzer.IdentityAnalyzerDescription.html new file mode 100644 index 00000000..9bea0a31 --- /dev/null +++ b/9.0.0/types/analyzer.IdentityAnalyzerDescription.html @@ -0,0 +1,2 @@ +IdentityAnalyzerDescription | arangojs - v9.0.0

Type alias IdentityAnalyzerDescription

IdentityAnalyzerDescription: GenericAnalyzerDescription & {
    properties: Record<string, never>;
    type: "identity";
}

An object describing an Identity Analyzer.

+

Type declaration

  • properties: Record<string, never>
  • type: "identity"
\ No newline at end of file diff --git a/9.0.0/types/analyzer.MinHashAnalyzerDescription.html b/9.0.0/types/analyzer.MinHashAnalyzerDescription.html new file mode 100644 index 00000000..578270b0 --- /dev/null +++ b/9.0.0/types/analyzer.MinHashAnalyzerDescription.html @@ -0,0 +1,2 @@ +MinHashAnalyzerDescription | arangojs - v9.0.0

Type alias MinHashAnalyzerDescription

MinHashAnalyzerDescription: GenericAnalyzerDescription & {
    properties: {
        analyzer: Omit<AnalyzerDescription, "name" | "features">;
        numHashes: number;
    };
    type: "minhash";
}

(Enterprise Edition only.) An object describing a MinHash Analyzer

+

Type declaration

  • properties: {
        analyzer: Omit<AnalyzerDescription, "name" | "features">;
        numHashes: number;
    }
  • type: "minhash"
\ No newline at end of file diff --git a/9.0.0/types/analyzer.MultiDelimiterAnalyzerDescription.html b/9.0.0/types/analyzer.MultiDelimiterAnalyzerDescription.html new file mode 100644 index 00000000..a2d14638 --- /dev/null +++ b/9.0.0/types/analyzer.MultiDelimiterAnalyzerDescription.html @@ -0,0 +1,2 @@ +MultiDelimiterAnalyzerDescription | arangojs - v9.0.0

Type alias MultiDelimiterAnalyzerDescription

MultiDelimiterAnalyzerDescription: GenericAnalyzerDescription & {
    properties: {
        delimiters: string[];
    };
    type: "multi_delimiter";
}

An object describing a Multi Delimiter Analyzer.

+

Type declaration

  • properties: {
        delimiters: string[];
    }
    • delimiters: string[]
  • type: "multi_delimiter"
\ No newline at end of file diff --git a/9.0.0/types/analyzer.NearestNeighborsAnalyzerDescription.html b/9.0.0/types/analyzer.NearestNeighborsAnalyzerDescription.html new file mode 100644 index 00000000..ee028e33 --- /dev/null +++ b/9.0.0/types/analyzer.NearestNeighborsAnalyzerDescription.html @@ -0,0 +1,2 @@ +NearestNeighborsAnalyzerDescription | arangojs - v9.0.0

Type alias NearestNeighborsAnalyzerDescription

NearestNeighborsAnalyzerDescription: GenericAnalyzerDescription & {
    properties: {
        model_location: string;
        top_k: number;
    };
    type: "nearest_neighbors";
}

(Enterprise Edition only.) An object describing a NearestNeighbors Analyzer

+

Type declaration

  • properties: {
        model_location: string;
        top_k: number;
    }
    • model_location: string
    • top_k: number
  • type: "nearest_neighbors"
\ No newline at end of file diff --git a/9.0.0/types/analyzer.NgramAnalyzerDescription.html b/9.0.0/types/analyzer.NgramAnalyzerDescription.html new file mode 100644 index 00000000..eafa5dfe --- /dev/null +++ b/9.0.0/types/analyzer.NgramAnalyzerDescription.html @@ -0,0 +1,2 @@ +NgramAnalyzerDescription | arangojs - v9.0.0

Type alias NgramAnalyzerDescription

NgramAnalyzerDescription: GenericAnalyzerDescription & {
    properties: {
        max: number;
        min: number;
        preserveOriginal: boolean;
    };
    type: "ngram";
}

An object describing an Ngram Analyzer.

+

Type declaration

  • properties: {
        max: number;
        min: number;
        preserveOriginal: boolean;
    }
    • max: number
    • min: number
    • preserveOriginal: boolean
  • type: "ngram"
\ No newline at end of file diff --git a/9.0.0/types/analyzer.NormAnalyzerDescription.html b/9.0.0/types/analyzer.NormAnalyzerDescription.html new file mode 100644 index 00000000..ecd74237 --- /dev/null +++ b/9.0.0/types/analyzer.NormAnalyzerDescription.html @@ -0,0 +1,2 @@ +NormAnalyzerDescription | arangojs - v9.0.0

Type alias NormAnalyzerDescription

NormAnalyzerDescription: GenericAnalyzerDescription & {
    properties: {
        accent: boolean;
        case: "lower" | "none" | "upper";
        locale: string;
    };
    type: "norm";
}

An object describing a Norm Analyzer.

+

Type declaration

  • properties: {
        accent: boolean;
        case: "lower" | "none" | "upper";
        locale: string;
    }
    • accent: boolean
    • case: "lower" | "none" | "upper"
    • locale: string
  • type: "norm"
\ No newline at end of file diff --git a/9.0.0/types/analyzer.PipelineAnalyzerDescription.html b/9.0.0/types/analyzer.PipelineAnalyzerDescription.html new file mode 100644 index 00000000..010458c6 --- /dev/null +++ b/9.0.0/types/analyzer.PipelineAnalyzerDescription.html @@ -0,0 +1,2 @@ +PipelineAnalyzerDescription | arangojs - v9.0.0

Type alias PipelineAnalyzerDescription

PipelineAnalyzerDescription: GenericAnalyzerDescription & {
    properties: {
        pipeline: Omit<AnalyzerDescription, "name" | "features">[];
    };
    type: "pipeline";
}

An object describing a Pipeline Analyzer

+

Type declaration

\ No newline at end of file diff --git a/9.0.0/types/analyzer.SegmentationAnalyzerDescription.html b/9.0.0/types/analyzer.SegmentationAnalyzerDescription.html new file mode 100644 index 00000000..05bf435a --- /dev/null +++ b/9.0.0/types/analyzer.SegmentationAnalyzerDescription.html @@ -0,0 +1,2 @@ +SegmentationAnalyzerDescription | arangojs - v9.0.0

Type alias SegmentationAnalyzerDescription

SegmentationAnalyzerDescription: GenericAnalyzerDescription & {
    properties: {
        break: "all" | "alpha" | "graphic";
        case: "lower" | "upper" | "none";
    };
    type: "segmentation";
}

An object describing a Segmentation Analyzer

+

Type declaration

  • properties: {
        break: "all" | "alpha" | "graphic";
        case: "lower" | "upper" | "none";
    }
    • break: "all" | "alpha" | "graphic"
    • case: "lower" | "upper" | "none"
  • type: "segmentation"
\ No newline at end of file diff --git a/9.0.0/types/analyzer.StemAnalyzerDescription.html b/9.0.0/types/analyzer.StemAnalyzerDescription.html new file mode 100644 index 00000000..0857dfa2 --- /dev/null +++ b/9.0.0/types/analyzer.StemAnalyzerDescription.html @@ -0,0 +1,2 @@ +StemAnalyzerDescription | arangojs - v9.0.0

Type alias StemAnalyzerDescription

StemAnalyzerDescription: GenericAnalyzerDescription & {
    properties: {
        locale: string;
    };
    type: "stem";
}

An object describing a Stem Analyzer.

+

Type declaration

  • properties: {
        locale: string;
    }
    • locale: string
  • type: "stem"
\ No newline at end of file diff --git a/9.0.0/types/analyzer.StopwordsAnalyzerDescription.html b/9.0.0/types/analyzer.StopwordsAnalyzerDescription.html new file mode 100644 index 00000000..1b15bcac --- /dev/null +++ b/9.0.0/types/analyzer.StopwordsAnalyzerDescription.html @@ -0,0 +1,2 @@ +StopwordsAnalyzerDescription | arangojs - v9.0.0

Type alias StopwordsAnalyzerDescription

StopwordsAnalyzerDescription: GenericAnalyzerDescription & {
    properties: {
        hex: boolean;
        stopwords: string[];
    };
    type: "stopwords";
}

An object describing a Stopwords Analyzer

+

Type declaration

  • properties: {
        hex: boolean;
        stopwords: string[];
    }
    • hex: boolean
    • stopwords: string[]
  • type: "stopwords"
\ No newline at end of file diff --git a/9.0.0/types/analyzer.TextAnalyzerDescription.html b/9.0.0/types/analyzer.TextAnalyzerDescription.html new file mode 100644 index 00000000..e7084383 --- /dev/null +++ b/9.0.0/types/analyzer.TextAnalyzerDescription.html @@ -0,0 +1,2 @@ +TextAnalyzerDescription | arangojs - v9.0.0

Type alias TextAnalyzerDescription

TextAnalyzerDescription: GenericAnalyzerDescription & {
    properties: {
        accent: boolean;
        case: "lower" | "none" | "upper";
        edgeNgram: {
            max: number;
            min: number;
            preserveOriginal: boolean;
        };
        locale: string;
        stemming: boolean;
        stopwords: string[];
        stopwordsPath: string;
    };
    type: "text";
}

An object describing a Text Analyzer.

+

Type declaration

  • properties: {
        accent: boolean;
        case: "lower" | "none" | "upper";
        edgeNgram: {
            max: number;
            min: number;
            preserveOriginal: boolean;
        };
        locale: string;
        stemming: boolean;
        stopwords: string[];
        stopwordsPath: string;
    }
    • accent: boolean
    • case: "lower" | "none" | "upper"
    • edgeNgram: {
          max: number;
          min: number;
          preserveOriginal: boolean;
      }
      • max: number
      • min: number
      • preserveOriginal: boolean
    • locale: string
    • stemming: boolean
    • stopwords: string[]
    • stopwordsPath: string
  • type: "text"
\ No newline at end of file diff --git a/9.0.0/types/analyzer.WildcardAnalyzerDescription.html b/9.0.0/types/analyzer.WildcardAnalyzerDescription.html new file mode 100644 index 00000000..2cf0d509 --- /dev/null +++ b/9.0.0/types/analyzer.WildcardAnalyzerDescription.html @@ -0,0 +1,2 @@ +WildcardAnalyzerDescription | arangojs - v9.0.0

Type alias WildcardAnalyzerDescription

WildcardAnalyzerDescription: GenericAnalyzerDescription & {
    properties: {
        analyzer?: Omit<AnalyzerDescription, "name" | "features">;
        ngramSize: number;
    };
    type: "wildcard";
}

An object describing a Wildcard Analyzer

+

Type declaration

  • properties: {
        analyzer?: Omit<AnalyzerDescription, "name" | "features">;
        ngramSize: number;
    }
  • type: "wildcard"
\ No newline at end of file diff --git a/9.0.0/types/aql.AqlValue.html b/9.0.0/types/aql.AqlValue.html new file mode 100644 index 00000000..2bd05f02 --- /dev/null +++ b/9.0.0/types/aql.AqlValue.html @@ -0,0 +1,3 @@ +AqlValue | arangojs - v9.0.0

Type alias AqlValue

AqlValue: ArangoCollection | View | Graph | GeneratedAqlQuery | AqlLiteral | string | number | boolean | null | undefined | Record<string, any> | any[]

A value that can be used in an AQL template string or passed to an AQL +helper function.

+
\ No newline at end of file diff --git a/9.0.0/types/collection.CollectionBatchReadOptions.html b/9.0.0/types/collection.CollectionBatchReadOptions.html new file mode 100644 index 00000000..dba0a341 --- /dev/null +++ b/9.0.0/types/collection.CollectionBatchReadOptions.html @@ -0,0 +1,5 @@ +CollectionBatchReadOptions | arangojs - v9.0.0

Type alias CollectionBatchReadOptions

CollectionBatchReadOptions: {
    allowDirtyRead?: boolean;
}

Options for retrieving multiple documents from a collection.

+

Type declaration

  • Optional allowDirtyRead?: boolean

    If set to true, the request will explicitly permit ArangoDB to return a +potentially dirty or stale result and arangojs will load balance the +request without distinguishing between leaders and followers.

    +
\ No newline at end of file diff --git a/9.0.0/types/collection.CollectionChecksumOptions.html b/9.0.0/types/collection.CollectionChecksumOptions.html new file mode 100644 index 00000000..f96135ac --- /dev/null +++ b/9.0.0/types/collection.CollectionChecksumOptions.html @@ -0,0 +1,8 @@ +CollectionChecksumOptions | arangojs - v9.0.0

Type alias CollectionChecksumOptions

CollectionChecksumOptions: {
    withData?: boolean;
    withRevisions?: boolean;
}

Options for retrieving a collection checksum.

+

Type declaration

  • Optional withData?: boolean

    If set to true, document data will be included in the calculation +of the checksum.

    +

    Default: false

    +
  • Optional withRevisions?: boolean

    If set to true, revision IDs will be included in the calculation +of the checksum.

    +

    Default: false

    +
\ No newline at end of file diff --git a/9.0.0/types/collection.CollectionDropOptions.html b/9.0.0/types/collection.CollectionDropOptions.html new file mode 100644 index 00000000..7931e59a --- /dev/null +++ b/9.0.0/types/collection.CollectionDropOptions.html @@ -0,0 +1,6 @@ +CollectionDropOptions | arangojs - v9.0.0

Type alias CollectionDropOptions

CollectionDropOptions: {
    isSystem?: boolean;
}

Options for dropping collections.

+

Type declaration

  • Optional isSystem?: boolean

    Whether the collection is a system collection. If the collection is a +system collection, this option must be set to true or ArangoDB will +refuse to drop the collection.

    +

    Default: false

    +
\ No newline at end of file diff --git a/9.0.0/types/collection.CollectionEdgesOptions.html b/9.0.0/types/collection.CollectionEdgesOptions.html new file mode 100644 index 00000000..244eaba3 --- /dev/null +++ b/9.0.0/types/collection.CollectionEdgesOptions.html @@ -0,0 +1,5 @@ +CollectionEdgesOptions | arangojs - v9.0.0

Type alias CollectionEdgesOptions

CollectionEdgesOptions: {
    allowDirtyRead?: boolean;
}

Options for retrieving a document's edges from a collection.

+

Type declaration

  • Optional allowDirtyRead?: boolean

    If set to true, the request will explicitly permit ArangoDB to return a +potentially dirty or stale result and arangojs will load balance the +request without distinguishing between leaders and followers.

    +
\ No newline at end of file diff --git a/9.0.0/types/collection.CollectionEdgesResult.html b/9.0.0/types/collection.CollectionEdgesResult.html new file mode 100644 index 00000000..adc01dc1 --- /dev/null +++ b/9.0.0/types/collection.CollectionEdgesResult.html @@ -0,0 +1,2 @@ +CollectionEdgesResult | arangojs - v9.0.0

Type alias CollectionEdgesResult<T>

CollectionEdgesResult<T>: {
    edges: Edge<T>[];
    stats: {
        filtered: number;
        scannedIndex: number;
    };
}

Result of retrieving edges in a collection.

+

Type Parameters

  • T extends Record<string, any> = any

Type declaration

  • edges: Edge<T>[]
  • stats: {
        filtered: number;
        scannedIndex: number;
    }
    • filtered: number
    • scannedIndex: number
\ No newline at end of file diff --git a/9.0.0/types/collection.CollectionImportOptions.html b/9.0.0/types/collection.CollectionImportOptions.html new file mode 100644 index 00000000..16bbcc69 --- /dev/null +++ b/9.0.0/types/collection.CollectionImportOptions.html @@ -0,0 +1,19 @@ +CollectionImportOptions | arangojs - v9.0.0

Type alias CollectionImportOptions

CollectionImportOptions: {
    complete?: boolean;
    details?: boolean;
    fromPrefix?: string;
    onDuplicate?: "error" | "update" | "replace" | "ignore";
    overwrite?: boolean;
    toPrefix?: string;
    waitForSync?: boolean;
}

Options for bulk importing documents into a collection.

+

Type declaration

  • Optional complete?: boolean

    If set to true, the import will abort if any error occurs.

    +
  • Optional details?: boolean

    Whether the response should contain additional details about documents +that could not be imported.

    +
  • Optional fromPrefix?: string

    (Edge collections only.) Prefix to prepend to _from attribute values.

    +
  • Optional onDuplicate?: "error" | "update" | "replace" | "ignore"

    Controls behavior when a unique constraint is violated on the document key.

    +
      +
    • "error": the document will not be imported.
    • +
    • "update: the document will be merged into the existing document.
    • +
    • "replace": the document will replace the existing document.
    • +
    • "ignore": the document will not be imported and the unique constraint +error will be ignored.
    • +
    +

    Default: "error"

    +
  • Optional overwrite?: boolean

    If set to true, the collection is truncated before the data is imported.

    +

    Default: false

    +
  • Optional toPrefix?: string

    (Edge collections only.) Prefix to prepend to _to attribute values.

    +
  • Optional waitForSync?: boolean

    Whether to wait for the documents to have been synced to disk.

    +
\ No newline at end of file diff --git a/9.0.0/types/collection.CollectionImportResult.html b/9.0.0/types/collection.CollectionImportResult.html new file mode 100644 index 00000000..dc155f2e --- /dev/null +++ b/9.0.0/types/collection.CollectionImportResult.html @@ -0,0 +1,9 @@ +CollectionImportResult | arangojs - v9.0.0

Type alias CollectionImportResult

CollectionImportResult: {
    created: number;
    details?: string[];
    empty: number;
    error: false;
    errors: number;
    ignored: number;
    updated: number;
}

Result of a collection bulk import.

+

Type declaration

  • created: number

    Number of new documents imported.

    +
  • Optional details?: string[]

    Additional details about any errors encountered during the import.

    +
  • empty: number

    Number of empty documents.

    +
  • error: false

    Whether the import failed.

    +
  • errors: number

    Number of documents that failed with an error.

    +
  • ignored: number

    Number of documents that failed with an error that is ignored.

    +
  • updated: number

    Number of documents updated.

    +
\ No newline at end of file diff --git a/9.0.0/types/collection.CollectionInsertOptions.html b/9.0.0/types/collection.CollectionInsertOptions.html new file mode 100644 index 00000000..f99d7157 --- /dev/null +++ b/9.0.0/types/collection.CollectionInsertOptions.html @@ -0,0 +1,30 @@ +CollectionInsertOptions | arangojs - v9.0.0

Type alias CollectionInsertOptions

CollectionInsertOptions: {
    mergeObjects?: boolean;
    overwriteMode?: "ignore" | "update" | "replace" | "conflict";
    refillIndexCaches?: boolean;
    returnNew?: boolean;
    returnOld?: boolean;
    silent?: boolean;
    versionAttribute?: string;
    waitForSync?: boolean;
}

Options for inserting a new document into a collection.

+

Type declaration

  • Optional mergeObjects?: boolean

    If set to false, object properties that already exist in the old +document will be overwritten rather than merged when an existing document +with the same _key or _id is updated. This does not affect arrays.

    +

    Default: true

    +
  • Optional overwriteMode?: "ignore" | "update" | "replace" | "conflict"

    Defines what should happen if a document with the same _key or _id +already exists, instead of throwing an exception.

    +

    Default: `"conflict"

    +
  • Optional refillIndexCaches?: boolean

    If set to true, new entries will be added to in-memory index caches if +document insertions affect the edge index or cache-enabled persistent +indexes.

    +

    Default: false

    +
  • Optional returnNew?: boolean

    If set to true, the complete new document will be returned as the new +property on the result object. Has no effect if silent is set to true.

    +

    Default: false

    +
  • Optional returnOld?: boolean

    If set to true, the complete old document will be returned as the old +property on the result object. Has no effect if silent is set to true. +This option is only available when overwriteMode is set to "update" or +"replace".

    +

    Default: false

    +
  • Optional silent?: boolean

    If set to true, no data will be returned by the server. This option can +be used to reduce network traffic.

    +

    Default: false

    +
  • Optional versionAttribute?: string

    If set, the attribute with the name specified by the option is looked up +in the stored document and the attribute value is compared numerically to +the value of the versioning attribute in the supplied document that is +supposed to update/replace it.

    +
  • Optional waitForSync?: boolean

    If set to true, data will be synchronized to disk before returning.

    +

    Default: false

    +
\ No newline at end of file diff --git a/9.0.0/types/collection.CollectionKeyOptions.html b/9.0.0/types/collection.CollectionKeyOptions.html new file mode 100644 index 00000000..a0c9b589 --- /dev/null +++ b/9.0.0/types/collection.CollectionKeyOptions.html @@ -0,0 +1,8 @@ +CollectionKeyOptions | arangojs - v9.0.0

Type alias CollectionKeyOptions

CollectionKeyOptions: {
    allowUserKeys?: boolean;
    increment?: number;
    offset?: number;
    type?: KeyGenerator;
}

An object defining the collection's key generation.

+

Type declaration

  • Optional allowUserKeys?: boolean

    Unless set to false, documents can be created with a user-specified +_key attribute.

    +

    Default: true

    +
  • Optional increment?: number

    (Autoincrement only.) How many steps to increment the key each time.

    +
  • Optional offset?: number

    (Autoincrement only.) Initial offset for the key.

    +
  • Optional type?: KeyGenerator

    Type of key generator to use.

    +
\ No newline at end of file diff --git a/9.0.0/types/collection.CollectionKeyProperties.html b/9.0.0/types/collection.CollectionKeyProperties.html new file mode 100644 index 00000000..852a1adb --- /dev/null +++ b/9.0.0/types/collection.CollectionKeyProperties.html @@ -0,0 +1,7 @@ +CollectionKeyProperties | arangojs - v9.0.0

Type alias CollectionKeyProperties

CollectionKeyProperties: {
    allowUserKeys: boolean;
    increment?: number;
    lastValue: number;
    offset?: number;
    type: KeyGenerator;
}

An object defining the collection's key generation.

+

Type declaration

  • allowUserKeys: boolean

    Whether documents can be created with a user-specified _key attribute.

    +
  • Optional increment?: number

    (Autoincrement only.) How many steps to increment the key each time.

    +
  • lastValue: number

    Most recent key that has been generated.

    +
  • Optional offset?: number

    (Autoincrement only.) Initial offset for the key.

    +
  • type: KeyGenerator

    Type of key generator to use.

    +
\ No newline at end of file diff --git a/9.0.0/types/collection.CollectionMetadata.html b/9.0.0/types/collection.CollectionMetadata.html new file mode 100644 index 00000000..d96e615c --- /dev/null +++ b/9.0.0/types/collection.CollectionMetadata.html @@ -0,0 +1,6 @@ +CollectionMetadata | arangojs - v9.0.0

Type alias CollectionMetadata

CollectionMetadata: {
    globallyUniqueId: string;
    name: string;
    status: CollectionStatus;
    type: CollectionType;
}

General information about a collection.

+

Type declaration

  • globallyUniqueId: string

    A globally unique identifier for this collection.

    +
  • name: string

    Collection name.

    +
  • status: CollectionStatus

    An integer indicating the collection loading status.

    +
  • type: CollectionType

    An integer indicating the collection type.

    +
\ No newline at end of file diff --git a/9.0.0/types/collection.CollectionProperties.html b/9.0.0/types/collection.CollectionProperties.html new file mode 100644 index 00000000..1966e4c4 --- /dev/null +++ b/9.0.0/types/collection.CollectionProperties.html @@ -0,0 +1,25 @@ +CollectionProperties | arangojs - v9.0.0

Type alias CollectionProperties

CollectionProperties: {
    cacheEnabled: boolean;
    computedValues: ComputedValueProperties[];
    distributeShardsLike?: string;
    isDisjoint?: string;
    isSmart?: boolean;
    keyOptions: CollectionKeyProperties;
    numberOfShards?: number;
    replicationFactor?: number | "satellite";
    schema: SchemaProperties | null;
    shardKeys?: string[];
    shardingStrategy?: ShardingStrategy;
    smartGraphAttribute?: string;
    smartJoinAttribute?: string;
    statusString: string;
    syncByRevision: boolean;
    waitForSync: boolean;
    writeConcern: number;
}

An object defining the properties of a collection.

+

Type declaration

  • cacheEnabled: boolean

    Whether the in-memory hash cache is enabled for this collection.

    +
  • computedValues: ComputedValueProperties[]

    Computed values applied to documents in this collection.

    +
  • Optional distributeShardsLike?: string

    (Enterprise Edition cluster only.) If set to a collection name, sharding +of the new collection will follow the rules for that collection. As long +as the new collection exists, the indicated collection can not be dropped.

    +
  • Optional isDisjoint?: string

    (Enterprise Edition only.) Whether the SmartGraph this collection belongs to is disjoint.

    +
  • Optional isSmart?: boolean

    (Enterprise Edition only.) Whether the collection is used in a SmartGraph or EnterpriseGraph.

    +
  • keyOptions: CollectionKeyProperties

    An object defining the collection's key generation.

    +
  • Optional numberOfShards?: number

    (Cluster only.) Number of shards of this collection.

    +
  • Optional replicationFactor?: number | "satellite"

    (Cluster only.) Replication factor of the collection.

    +
  • schema: SchemaProperties | null

    Properties for validating documents in the collection.

    +
  • Optional shardKeys?: string[]

    (Cluster only.) Keys of this collection that will be used for +sharding.

    +
  • Optional shardingStrategy?: ShardingStrategy

    (Cluster only.) Sharding strategy of the collection.

    +
  • Optional smartGraphAttribute?: string

    (Enterprise Edition cluster only.) Attribute used for sharding.

    +
  • Optional smartJoinAttribute?: string

    (Enterprise Edition cluster only.) Attribute containing the shard key +value of the referred-to smart join collection.

    +
  • statusString: string

    A human-readable representation of the collection loading status.

    +
  • syncByRevision: boolean

    Whether the newer revision-based replication protocol is enabled for +this collection.

    +
  • waitForSync: boolean

    Whether data should be synchronized to disk before returning from +a document create, update, replace or removal operation.

    +
  • writeConcern: number

    (Cluster only.) Write concern for this collection.

    +
\ No newline at end of file diff --git a/9.0.0/types/collection.CollectionPropertiesOptions.html b/9.0.0/types/collection.CollectionPropertiesOptions.html new file mode 100644 index 00000000..5af7cc3c --- /dev/null +++ b/9.0.0/types/collection.CollectionPropertiesOptions.html @@ -0,0 +1,13 @@ +CollectionPropertiesOptions | arangojs - v9.0.0

Type alias CollectionPropertiesOptions

CollectionPropertiesOptions: {
    cacheEnabled?: boolean;
    computedValues?: ComputedValueOptions[];
    replicationFactor?: number | "satellite";
    schema?: SchemaOptions;
    waitForSync?: boolean;
    writeConcern?: number;
}

Options for setting a collection's properties.

+

See DocumentCollection#properties and EdgeCollection#properties.

+

Type declaration

  • Optional cacheEnabled?: boolean

    Whether the in-memory hash cache is enabled for this collection.

    +

    Default: false

    +
  • Optional computedValues?: ComputedValueOptions[]

    Computed values to apply to documents in this collection.

    +
  • Optional replicationFactor?: number | "satellite"

    (Cluster only.) How many copies of each document should be kept in the +cluster.

    +

    Default: 1

    +
  • Optional schema?: SchemaOptions

    Options for validating documents in this collection.

    +
  • Optional waitForSync?: boolean

    Whether data should be synchronized to disk before returning from +a document create, update, replace or removal operation.

    +
  • Optional writeConcern?: number

    (Cluster only.) Write concern for this collection.

    +
\ No newline at end of file diff --git a/9.0.0/types/collection.CollectionReadOptions.html b/9.0.0/types/collection.CollectionReadOptions.html new file mode 100644 index 00000000..41c3e46c --- /dev/null +++ b/9.0.0/types/collection.CollectionReadOptions.html @@ -0,0 +1,12 @@ +CollectionReadOptions | arangojs - v9.0.0

Type alias CollectionReadOptions

CollectionReadOptions: {
    allowDirtyRead?: boolean;
    graceful?: boolean;
    ifMatch?: string;
    ifNoneMatch?: string;
}

Options for retrieving a document from a collection.

+

Type declaration

  • Optional allowDirtyRead?: boolean

    If set to true, the request will explicitly permit ArangoDB to return a +potentially dirty or stale result and arangojs will load balance the +request without distinguishing between leaders and followers.

    +
  • Optional graceful?: boolean

    If set to true, null is returned instead of an exception being thrown +if the document does not exist.

    +
  • Optional ifMatch?: string

    If set to a document revision, the request will fail with an error if the +document exists but its _rev does not match the given revision.

    +
  • Optional ifNoneMatch?: string

    If set to a document revision, the request will fail with an error if the +document exists and its _rev matches the given revision. Note that an +HttpError with code 304 will be thrown instead of an ArangoError.

    +
\ No newline at end of file diff --git a/9.0.0/types/collection.CollectionRemoveOptions.html b/9.0.0/types/collection.CollectionRemoveOptions.html new file mode 100644 index 00000000..47a340fe --- /dev/null +++ b/9.0.0/types/collection.CollectionRemoveOptions.html @@ -0,0 +1,16 @@ +CollectionRemoveOptions | arangojs - v9.0.0

Type alias CollectionRemoveOptions

CollectionRemoveOptions: {
    ifMatch?: string;
    refillIndexCaches?: boolean;
    returnOld?: boolean;
    silent?: boolean;
    waitForSync?: boolean;
}

Options for removing a document from a collection.

+

Type declaration

  • Optional ifMatch?: string

    If set to a document revision, the document will only be removed if its +_rev matches the given revision.

    +
  • Optional refillIndexCaches?: boolean

    If set to true, existing entries in in-memory index caches will be +deleted if document removals affect the edge index or cache-enabled +persistent indexes.

    +

    Default: false

    +
  • Optional returnOld?: boolean

    If set to true, the complete old document will be returned as the old +property on the result object. Has no effect if silent is set to true.

    +

    Default: false

    +
  • Optional silent?: boolean

    If set to true, no data will be returned by the server. This option can +be used to reduce network traffic.

    +

    Default: false

    +
  • Optional waitForSync?: boolean

    If set to true, changes will be synchronized to disk before returning.

    +

    Default: false

    +
\ No newline at end of file diff --git a/9.0.0/types/collection.CollectionReplaceOptions.html b/9.0.0/types/collection.CollectionReplaceOptions.html new file mode 100644 index 00000000..44baa059 --- /dev/null +++ b/9.0.0/types/collection.CollectionReplaceOptions.html @@ -0,0 +1,26 @@ +CollectionReplaceOptions | arangojs - v9.0.0

Type alias CollectionReplaceOptions

CollectionReplaceOptions: {
    ifMatch?: string;
    ignoreRevs?: boolean;
    refillIndexCaches?: boolean;
    returnNew?: boolean;
    returnOld?: boolean;
    silent?: boolean;
    versionAttribute?: string;
    waitForSync?: boolean;
}

Options for replacing an existing document in a collection.

+

Type declaration

  • Optional ifMatch?: string

    If set to a document revision, the document will only be replaced if its +_rev matches the given revision.

    +
  • Optional ignoreRevs?: boolean

    If set to false, the existing document will only be modified if its +_rev property matches the same property on the new data.

    +

    Default: true

    +
  • Optional refillIndexCaches?: boolean

    If set to true, existing entries in in-memory index caches will be +updated if document replacements affect the edge index or cache-enabled +persistent indexes.

    +

    Default: false

    +
  • Optional returnNew?: boolean

    If set to true, the complete new document will be returned as the new +property on the result object. Has no effect if silent is set to true.

    +

    Default: false

    +
  • Optional returnOld?: boolean

    If set to true, the complete old document will be returned as the old +property on the result object. Has no effect if silent is set to true.

    +

    Default: false

    +
  • Optional silent?: boolean

    If set to true, no data will be returned by the server. This option can +be used to reduce network traffic.

    +

    Default: false

    +
  • Optional versionAttribute?: string

    If set, the attribute with the name specified by the option is looked up +in the stored document and the attribute value is compared numerically to +the value of the versioning attribute in the supplied document that is +supposed to update/replace it.

    +
  • Optional waitForSync?: boolean

    If set to true, data will be synchronized to disk before returning.

    +

    Default: false

    +
\ No newline at end of file diff --git a/9.0.0/types/collection.CollectionUpdateOptions.html b/9.0.0/types/collection.CollectionUpdateOptions.html new file mode 100644 index 00000000..f7c7f9df --- /dev/null +++ b/9.0.0/types/collection.CollectionUpdateOptions.html @@ -0,0 +1,33 @@ +CollectionUpdateOptions | arangojs - v9.0.0

Type alias CollectionUpdateOptions

CollectionUpdateOptions: {
    ifMatch?: string;
    ignoreRevs?: boolean;
    keepNull?: boolean;
    mergeObjects?: boolean;
    refillIndexCaches?: boolean;
    returnNew?: boolean;
    returnOld?: boolean;
    silent?: boolean;
    versionAttribute?: string;
    waitForSync?: boolean;
}

Options for updating a document in a collection.

+

Type declaration

  • Optional ifMatch?: string

    If set to a document revision, the document will only be updated if its +_rev matches the given revision.

    +
  • Optional ignoreRevs?: boolean

    If set to false, the existing document will only be modified if its +_rev property matches the same property on the new data.

    +

    Default: true

    +
  • Optional keepNull?: boolean

    If set to false, properties with a value of null will be removed from +the new document.

    +

    Default: true

    +
  • Optional mergeObjects?: boolean

    If set to false, object properties that already exist in the old +document will be overwritten rather than merged. This does not affect +arrays.

    +

    Default: true

    +
  • Optional refillIndexCaches?: boolean

    If set to true, existing entries in in-memory index caches will be +updated if document updates affect the edge index or cache-enabled +persistent indexes.

    +

    Default: false

    +
  • Optional returnNew?: boolean

    If set to true, the complete new document will be returned as the new +property on the result object. Has no effect if silent is set to true.

    +

    Default: false

    +
  • Optional returnOld?: boolean

    If set to true, the complete old document will be returned as the old +property on the result object. Has no effect if silent is set to true.

    +

    Default: false

    +
  • Optional silent?: boolean

    If set to true, no data will be returned by the server. This option can +be used to reduce network traffic.

    +

    Default: false

    +
  • Optional versionAttribute?: string

    If set, the attribute with the name specified by the option is looked up +in the stored document and the attribute value is compared numerically to +the value of the versioning attribute in the supplied document that is +supposed to update/replace it.

    +
  • Optional waitForSync?: boolean

    If set to true, data will be synchronized to disk before returning.

    +

    Default: false

    +
\ No newline at end of file diff --git a/9.0.0/types/collection.ComputedValueOptions.html b/9.0.0/types/collection.ComputedValueOptions.html new file mode 100644 index 00000000..dad77c05 --- /dev/null +++ b/9.0.0/types/collection.ComputedValueOptions.html @@ -0,0 +1,17 @@ +ComputedValueOptions | arangojs - v9.0.0

Type alias ComputedValueOptions

ComputedValueOptions: {
    computeOn?: WriteOperation[];
    expression: string | AqlLiteral | AqlQuery;
    failOnWarning?: boolean;
    keepNull?: boolean;
    name: string;
    overwrite?: boolean;
}

Options for creating a computed value.

+

Type declaration

  • Optional computeOn?: WriteOperation[]

    Which operations should result in the value being computed.

    +

    Default: ["insert", "update", "replace"]

    +
  • expression: string | AqlLiteral | AqlQuery

    AQL RETURN expression that computes the value.

    +

    Note that when passing an AQL query object, the bindVars will be ignored.

    +
  • Optional failOnWarning?: boolean

    Whether the write operation should fail if the expression produces a +warning.

    +

    Default: false

    +
  • Optional keepNull?: boolean

    If set to false, the field will be unset if the expression evaluates to +null. Otherwise the field will be set to the value null. Has no effect +if overwrite is set to false.

    +

    Default: true

    +
  • name: string

    Name of the target attribute of the computed value.

    +
  • Optional overwrite?: boolean

    If set to false, the computed value will not be applied if the +expression evaluates to null.

    +

    Default: true

    +
\ No newline at end of file diff --git a/9.0.0/types/collection.ComputedValueProperties.html b/9.0.0/types/collection.ComputedValueProperties.html new file mode 100644 index 00000000..af0e6a39 --- /dev/null +++ b/9.0.0/types/collection.ComputedValueProperties.html @@ -0,0 +1,12 @@ +ComputedValueProperties | arangojs - v9.0.0

Type alias ComputedValueProperties

ComputedValueProperties: {
    computeOn: WriteOperation[];
    expression: string;
    failOnWarning: boolean;
    keepNull: boolean;
    name: string;
    overwrite: boolean;
}

Properties defining a computed value.

+

Type declaration

  • computeOn: WriteOperation[]

    Which operations should result in the value being computed.

    +
  • expression: string

    AQL RETURN expression that computes the value.

    +
  • failOnWarning: boolean

    Whether the write operation should fail if the expression produces a +warning.

    +
  • keepNull: boolean

    If set to false, the field will be unset if the expression evaluates to +null. Otherwise the field will be set to the value null. Has no effect +if overwrite is set to false.

    +
  • name: string

    Name of the target attribute of the computed value.

    +
  • overwrite: boolean

    If set to false, the computed value will not be applied if the +expression evaluates to null.

    +
\ No newline at end of file diff --git a/9.0.0/types/collection.CreateCollectionOptions.html b/9.0.0/types/collection.CreateCollectionOptions.html new file mode 100644 index 00000000..a952487d --- /dev/null +++ b/9.0.0/types/collection.CreateCollectionOptions.html @@ -0,0 +1,33 @@ +CreateCollectionOptions | arangojs - v9.0.0

Type alias CreateCollectionOptions

CreateCollectionOptions: {
    cacheEnabled?: boolean;
    computedValues?: ComputedValueOptions[];
    distributeShardsLike?: string;
    enforceReplicationFactor?: boolean;
    keyOptions?: CollectionKeyOptions;
    numberOfShards?: number;
    replicationFactor?: number;
    schema?: SchemaOptions;
    shardKeys?: string[];
    shardingStrategy?: ShardingStrategy;
    smartGraphAttribute?: string;
    smartJoinAttribute?: string;
    waitForSync?: boolean;
    waitForSyncReplication?: boolean;
    writeConcern?: number;
}

Type declaration

  • Optional cacheEnabled?: boolean

    Whether the in-memory hash cache is enabled for this collection.

    +
  • Optional computedValues?: ComputedValueOptions[]

    Computed values to apply to documents in this collection.

    +
  • Optional distributeShardsLike?: string

    (Enterprise Edition cluster only.) If set to a collection name, sharding +of the new collection will follow the rules for that collection. As long +as the new collection exists, the indicated collection can not be dropped.

    +
  • Optional enforceReplicationFactor?: boolean

    (Cluster only.) Unless set to false, the server will check whether +enough replicas are available at creation time and bail out otherwise.

    +

    Default: true

    +
  • Optional keyOptions?: CollectionKeyOptions

    An object defining the collection's key generation.

    +
  • Optional numberOfShards?: number

    (Cluster only.) Number of shards to distribute the collection across.

    +

    Default: 1

    +
  • Optional replicationFactor?: number

    (Cluster only.) How many copies of each document should be kept in the +cluster.

    +

    Default: 1

    +
  • Optional schema?: SchemaOptions

    Options for validating documents in the collection.

    +
  • Optional shardKeys?: string[]

    (Cluster only.) Document attributes to use to determine the target shard +for each document.

    +

    Default: ["_key"]

    +
  • Optional shardingStrategy?: ShardingStrategy

    (Cluster only.) Sharding strategy to use.

    +
  • Optional smartGraphAttribute?: string

    (Enterprise Edition cluster only.) Attribute used for sharding.

    +
  • Optional smartJoinAttribute?: string

    (Enterprise Edition cluster only.) Attribute containing the shard key +value of the referred-to smart join collection.

    +
  • Optional waitForSync?: boolean

    If set to true, data will be synchronized to disk before returning from +a document create, update, replace or removal operation.

    +

    Default: false

    +
  • Optional waitForSyncReplication?: boolean

    (Cluster only.) Unless set to false, the server will wait for all +replicas to create the collection before returning.

    +

    Default: true

    +
  • Optional writeConcern?: number

    (Cluster only.) Write concern for this collection.

    +
\ No newline at end of file diff --git a/9.0.0/types/collection.DocumentExistsOptions.html b/9.0.0/types/collection.DocumentExistsOptions.html new file mode 100644 index 00000000..adeb2c59 --- /dev/null +++ b/9.0.0/types/collection.DocumentExistsOptions.html @@ -0,0 +1,6 @@ +DocumentExistsOptions | arangojs - v9.0.0

Type alias DocumentExistsOptions

DocumentExistsOptions: {
    ifMatch?: string;
    ifNoneMatch?: string;
}

Options for checking whether a document exists in a collection.

+

Type declaration

  • Optional ifMatch?: string

    If set to a document revision, the document will only match if its _rev +matches the given revision.

    +
  • Optional ifNoneMatch?: string

    If set to a document revision, the document will only match if its _rev +does not match the given revision.

    +
\ No newline at end of file diff --git a/9.0.0/types/collection.DocumentOperationFailure.html b/9.0.0/types/collection.DocumentOperationFailure.html new file mode 100644 index 00000000..129dc941 --- /dev/null +++ b/9.0.0/types/collection.DocumentOperationFailure.html @@ -0,0 +1,5 @@ +DocumentOperationFailure | arangojs - v9.0.0

Type alias DocumentOperationFailure

DocumentOperationFailure: {
    error: true;
    errorMessage: string;
    errorNum: number;
}

Represents a bulk operation failure for an individual document.

+

Type declaration

  • error: true

    Indicates that the operation failed.

    +
  • errorMessage: string

    Human-readable description of the failure.

    +
  • errorNum: number

    Numeric representation of the failure.

    +
\ No newline at end of file diff --git a/9.0.0/types/collection.DocumentOperationMetadata.html b/9.0.0/types/collection.DocumentOperationMetadata.html new file mode 100644 index 00000000..7b03265d --- /dev/null +++ b/9.0.0/types/collection.DocumentOperationMetadata.html @@ -0,0 +1,3 @@ +DocumentOperationMetadata | arangojs - v9.0.0

Type alias DocumentOperationMetadata

DocumentOperationMetadata: DocumentMetadata & {
    _oldRev?: string;
}

Metadata returned by a document operation.

+

Type declaration

  • Optional _oldRev?: string

    Revision of the document that was updated or replaced by this operation.

    +
\ No newline at end of file diff --git a/9.0.0/types/collection.IndexListOptions.html b/9.0.0/types/collection.IndexListOptions.html new file mode 100644 index 00000000..791afc51 --- /dev/null +++ b/9.0.0/types/collection.IndexListOptions.html @@ -0,0 +1,6 @@ +IndexListOptions | arangojs - v9.0.0

Type alias IndexListOptions

IndexListOptions: {
    withHidden?: boolean;
    withStats?: boolean;
}

Type declaration

  • Optional withHidden?: boolean

    If set to true, includes indexes that are not yet fully built but are +in the building phase.

    +

    Default: false.

    +
  • Optional withStats?: boolean

    If set to true, includes additional information about each index.

    +

    Default: false

    +
\ No newline at end of file diff --git a/9.0.0/types/collection.KeyGenerator.html b/9.0.0/types/collection.KeyGenerator.html new file mode 100644 index 00000000..7e254b5f --- /dev/null +++ b/9.0.0/types/collection.KeyGenerator.html @@ -0,0 +1,2 @@ +KeyGenerator | arangojs - v9.0.0

Type alias KeyGenerator

KeyGenerator: "traditional" | "autoincrement" | "uuid" | "padded"

Type of key generator.

+
\ No newline at end of file diff --git a/9.0.0/types/collection.SchemaOptions.html b/9.0.0/types/collection.SchemaOptions.html new file mode 100644 index 00000000..803594a7 --- /dev/null +++ b/9.0.0/types/collection.SchemaOptions.html @@ -0,0 +1,6 @@ +SchemaOptions | arangojs - v9.0.0

Type alias SchemaOptions

SchemaOptions: {
    level?: ValidationLevel;
    message?: string;
    rule: any;
}

Options for validating collection documents.

+

Type declaration

  • Optional level?: ValidationLevel

    When validation should be applied.

    +

    Default: "strict"

    +
  • Optional message?: string

    Message to be used if validation fails.

    +
  • rule: any

    JSON Schema description of the validation schema for documents.

    +
\ No newline at end of file diff --git a/9.0.0/types/collection.SchemaProperties.html b/9.0.0/types/collection.SchemaProperties.html new file mode 100644 index 00000000..60d56971 --- /dev/null +++ b/9.0.0/types/collection.SchemaProperties.html @@ -0,0 +1,6 @@ +SchemaProperties | arangojs - v9.0.0

Type alias SchemaProperties

SchemaProperties: {
    level: ValidationLevel;
    message: string;
    rule: any;
    type: "json";
}

Properties for validating documents in a collection.

+

Type declaration

  • level: ValidationLevel

    When validation should be applied.

    +
  • message: string

    Message to be used if validation fails.

    +
  • rule: any

    JSON Schema description of the validation schema for documents.

    +
  • type: "json"

    Type of document validation.

    +
\ No newline at end of file diff --git a/9.0.0/types/collection.ShardingStrategy.html b/9.0.0/types/collection.ShardingStrategy.html new file mode 100644 index 00000000..7dbf298a --- /dev/null +++ b/9.0.0/types/collection.ShardingStrategy.html @@ -0,0 +1,2 @@ +ShardingStrategy | arangojs - v9.0.0

Type alias ShardingStrategy

ShardingStrategy: "hash" | "enterprise-hash-smart-edge" | "enterprise-hash-smart-vertex" | "community-compat" | "enterprise-compat" | "enterprise-smart-edge-compat"

Strategy for sharding a collection.

+
\ No newline at end of file diff --git a/9.0.0/types/collection.ValidationLevel.html b/9.0.0/types/collection.ValidationLevel.html new file mode 100644 index 00000000..c49db8a5 --- /dev/null +++ b/9.0.0/types/collection.ValidationLevel.html @@ -0,0 +1,9 @@ +ValidationLevel | arangojs - v9.0.0

Type alias ValidationLevel

ValidationLevel: "none" | "new" | "moderate" | "strict"

When a validation should be applied.

+
    +
  • "none": No validation.
  • +
  • "new": Newly inserted documents are validated.
  • +
  • "moderate": New and modified documents are validated unless the modified +document was already invalid.
  • +
  • "strict": New and modified documents are always validated.
  • +
+
\ No newline at end of file diff --git a/9.0.0/types/collection.WriteOperation.html b/9.0.0/types/collection.WriteOperation.html new file mode 100644 index 00000000..9df67255 --- /dev/null +++ b/9.0.0/types/collection.WriteOperation.html @@ -0,0 +1,2 @@ +WriteOperation | arangojs - v9.0.0

Type alias WriteOperation

WriteOperation: "insert" | "update" | "replace"

Write operation that can result in a computed value being computed.

+
\ No newline at end of file diff --git a/9.0.0/types/connection.ArangoApiResponse.html b/9.0.0/types/connection.ArangoApiResponse.html new file mode 100644 index 00000000..0c4e8389 --- /dev/null +++ b/9.0.0/types/connection.ArangoApiResponse.html @@ -0,0 +1,2 @@ +ArangoApiResponse | arangojs - v9.0.0

Type alias ArangoApiResponse<T>

ArangoApiResponse<T>: T & ArangoResponseMetadata

Extends the given base type T with the generic HTTP API response properties.

+

Type Parameters

  • T
\ No newline at end of file diff --git a/9.0.0/types/connection.ArangoResponseMetadata.html b/9.0.0/types/connection.ArangoResponseMetadata.html new file mode 100644 index 00000000..233b7c15 --- /dev/null +++ b/9.0.0/types/connection.ArangoResponseMetadata.html @@ -0,0 +1,4 @@ +ArangoResponseMetadata | arangojs - v9.0.0

Type alias ArangoResponseMetadata

ArangoResponseMetadata: {
    code: number;
    error: false;
}

Generic properties shared by all ArangoDB HTTP API responses.

+

Type declaration

  • code: number

    Response status code, typically 200.

    +
  • error: false

    Indicates that the request was successful.

    +
\ No newline at end of file diff --git a/9.0.0/types/connection.BasicAuthCredentials.html b/9.0.0/types/connection.BasicAuthCredentials.html new file mode 100644 index 00000000..cf01cb6e --- /dev/null +++ b/9.0.0/types/connection.BasicAuthCredentials.html @@ -0,0 +1,4 @@ +BasicAuthCredentials | arangojs - v9.0.0

Type alias BasicAuthCredentials

BasicAuthCredentials: {
    password?: string;
    username: string;
}

Credentials for HTTP Basic authentication.

+

Type declaration

  • Optional password?: string

    Password to use for authentication. Defaults to an empty string.

    +
  • username: string

    Username to use for authentication, e.g. "root".

    +
\ No newline at end of file diff --git a/9.0.0/types/connection.BearerAuthCredentials.html b/9.0.0/types/connection.BearerAuthCredentials.html new file mode 100644 index 00000000..ddc552ec --- /dev/null +++ b/9.0.0/types/connection.BearerAuthCredentials.html @@ -0,0 +1,3 @@ +BearerAuthCredentials | arangojs - v9.0.0

Type alias BearerAuthCredentials

BearerAuthCredentials: {
    token: string;
}

Credentials for HTTP Bearer token authentication.

+

Type declaration

  • token: string

    Bearer token to use for authentication.

    +
\ No newline at end of file diff --git a/9.0.0/types/connection.Config.html b/9.0.0/types/connection.Config.html new file mode 100644 index 00000000..9218223e --- /dev/null +++ b/9.0.0/types/connection.Config.html @@ -0,0 +1,119 @@ +Config | arangojs - v9.0.0

Type alias Config

Config: {
    afterResponse?: ((err, res?) => void);
    arangoVersion?: number;
    auth?: BasicAuthCredentials | BearerAuthCredentials;
    beforeRequest?: ((req) => void);
    credentials?: "omit" | "include" | "same-origin";
    databaseName?: string;
    headers?: Headers | Record<string, string>;
    keepalive?: boolean;
    loadBalancingStrategy?: LoadBalancingStrategy;
    maxRetries?: false | number;
    poolSize?: number;
    precaptureStackTraces?: boolean;
    responseQueueTimeSamples?: number;
    retryOnConflict?: number;
    url?: string | string[];
}

Options for configuring arangojs.

+

Type declaration

  • Optional afterResponse?: ((err, res?) => void)

    Callback that will be invoked when the server response has been received +and processed or when the request has been failed without a response.

    +

    The originating request will be available as the request property +on either the error or response object.

    +
      • (err, res?): void
      • Parameters

        • err: ArangojsError | null

          Error encountered when handling this request or null.

          +
        • Optional res: ArangojsResponse

          Response object for this request, if no error occurred.

          +

        Returns void

  • Optional arangoVersion?: number

    Numeric representation of the ArangoDB version the driver should expect. +The format is defined as XYYZZ where X is the major version, Y is +the zero-filled two-digit minor version and Z is the zero-filled two-digit +bugfix version, e.g. 30102 for 3.1.2, 20811 for 2.8.11.

    +

    Depending on this value certain methods may become unavailable or change +their behavior to remain compatible with different versions of ArangoDB.

    +

    Default: 31100

    +
  • Optional auth?: BasicAuthCredentials | BearerAuthCredentials

    Credentials to use for authentication.

    +

    See also database.Database#useBasicAuth and +database.Database#useBearerAuth.

    +

    Default: { username: "root", password: "" }

    +
  • Optional beforeRequest?: ((req) => void)

    Callback that will be invoked with the finished request object before it +is finalized. In the browser the request may already have been sent.

    +
      • (req): void
      • Parameters

        • req: globalThis.Request

          Request object or XHR instance used for this request.

          +

        Returns void

  • Optional credentials?: "omit" | "include" | "same-origin"

    (Browser only.) Determines whether credentials (e.g. cookies) will be sent +with requests to the ArangoDB server.

    +

    If set to same-origin, credentials will only be included with requests +on the same URL origin as the invoking script. If set to include, +credentials will always be sent. If set to omit, credentials will be +excluded from all requests.

    +

    Default: same-origin

    +
  • Optional databaseName?: string

    Name of the database to use.

    +

    Default: "_system"

    +
  • Optional headers?: Headers | Record<string, string>

    An object with additional headers to send with every request.

    +

    If an "authorization" header is provided, it will be overridden when +using database.Database#useBasicAuth, database.Database#useBearerAuth or +the auth configuration option.

    +
  • Optional keepalive?: boolean

    If set to true, requests will keep the underlying connection open until +it times out or is closed. In browsers this prevents requests from being +cancelled when the user navigates away from the page.

    +

    Default: true

    +
  • Optional loadBalancingStrategy?: LoadBalancingStrategy

    Determines the behavior when multiple URLs are provided:

    +
      +
    • "NONE": No load balancing. All requests will be handled by the first +URL in the list until a network error is encountered. On network error, +arangojs will advance to using the next URL in the list.

      +
    • +
    • "ONE_RANDOM": Randomly picks one URL from the list initially, then +behaves like "NONE".

      +
    • +
    • "ROUND_ROBIN": Every sequential request uses the next URL in the list.

      +
    • +
    +

    Default: "NONE"

    +
  • Optional maxRetries?: false | number

    Determines the behavior when a request fails because the underlying +connection to the server could not be opened +(i.e. ECONNREFUSED in Node.js):

    +
      +
    • false: the request fails immediately.

      +
    • +
    • 0: the request is retried until a server can be reached but only a +total number of times matching the number of known servers (including +the initial failed request).

      +
    • +
    • any other number: the request is retried until a server can be reached +or the request has been retried a total of maxRetries number of times +(not including the initial failed request).

      +
    • +
    +

    When working with a single server, the retries (if any) will be made to +the same server.

    +

    This setting currently has no effect when using arangojs in a browser.

    +

    Note: Requests bound to a specific server (e.g. fetching query results) +will never be retried automatically and ignore this setting.

    +

    Note: To set the number of retries when a write-write conflict is +encountered, see retryOnConflict instead.

    +

    Default: 0

    +
  • Optional poolSize?: number

    Maximum number of parallel requests arangojs will perform. If any +additional requests are attempted, they will be enqueued until one of the +active requests has completed.

    +

    Note: when using ROUND_ROBIN load balancing and passing an array of +URLs in the url option, the default value of this option will be set to +3 * url.length instead of 3.

    +

    Default: 3

    +
  • Optional precaptureStackTraces?: boolean

    If set to true, arangojs will generate stack traces every time a request +is initiated and augment the stack traces of any errors it generates.

    +

    Warning: This will cause arangojs to generate stack traces in advance +even if the request does not result in an error. Generating stack traces +may negatively impact performance.

    +
  • Optional responseQueueTimeSamples?: number

    Limits the number of values of server-reported response queue times that +will be stored and accessible using database.Database#queueTime. If set to +a finite value, older values will be discarded to make room for new values +when that limit is reached.

    +

    Default: 10

    +
  • Optional retryOnConflict?: number

    If set to a positive number, requests will automatically be retried at +most this many times if they result in a write-write conflict.

    +

    Default: 0

    +
  • Optional url?: string | string[]

    Base URL of the ArangoDB server or list of server URLs.

    +

    When working with a cluster, the method database.Database#acquireHostList +can be used to automatically pick up additional coordinators/followers at +any point.

    +

    When running ArangoDB on a unix socket, e.g. /tmp/arangodb.sock, the +following URL formats are supported for unix sockets:

    +
      +
    • unix:///tmp/arangodb.sock (no SSL)
    • +
    • http+unix:///tmp/arangodb.sock (or https+unix:// for SSL)
    • +
    • http://unix:/tmp/arangodb.sock (or https://unix: for SSL)
    • +
    +

    Additionally ssl and tls are treated as synonymous with https and +tcp is treated as synonymous with http, so the following URLs are +considered identical:

    +
      +
    • tcp://127.0.0.1:8529 and http://127.0.0.1:8529
    • +
    • ssl://127.0.0.1:8529 and https://127.0.0.1:8529
    • +
    • tcp+unix:///tmp/arangodb.sock and http+unix:///tmp/arangodb.sock
    • +
    • ssl+unix:///tmp/arangodb.sock and https+unix:///tmp/arangodb.sock
    • +
    • tcp://unix:/tmp/arangodb.sock and http://unix:/tmp/arangodb.sock
    • +
    • ssl://unix:/tmp/arangodb.sock and https://unix:/tmp/arangodb.sock
    • +
    +

    See also auth for passing authentication credentials.

    +

    Default: "http://127.0.0.1:8529"

    +
\ No newline at end of file diff --git a/9.0.0/types/connection.LoadBalancingStrategy.html b/9.0.0/types/connection.LoadBalancingStrategy.html new file mode 100644 index 00000000..916fc548 --- /dev/null +++ b/9.0.0/types/connection.LoadBalancingStrategy.html @@ -0,0 +1,13 @@ +LoadBalancingStrategy | arangojs - v9.0.0

Type alias LoadBalancingStrategy

LoadBalancingStrategy: "NONE" | "ROUND_ROBIN" | "ONE_RANDOM"

Determines the behavior when multiple URLs are used:

+
    +
  • "NONE": No load balancing. All requests will be handled by the first +URL in the list until a network error is encountered. On network error, +arangojs will advance to using the next URL in the list.

    +
  • +
  • "ONE_RANDOM": Randomly picks one URL from the list initially, then +behaves like "NONE".

    +
  • +
  • "ROUND_ROBIN": Every sequential request uses the next URL in the list.

    +
  • +
+
\ No newline at end of file diff --git a/9.0.0/types/connection.RequestOptions.html b/9.0.0/types/connection.RequestOptions.html new file mode 100644 index 00000000..a0faa965 --- /dev/null +++ b/9.0.0/types/connection.RequestOptions.html @@ -0,0 +1,23 @@ +RequestOptions | arangojs - v9.0.0

Type alias RequestOptions

RequestOptions: {
    allowDirtyRead?: boolean;
    basePath?: string;
    body?: any;
    expectBinary?: boolean;
    headers?: Headers | Record<string, string>;
    isBinary?: boolean;
    method?: string;
    path?: string;
    retryOnConflict?: number;
    search?: URLSearchParams | Record<string, any>;
    timeout?: number;
}

Options for performing a request with arangojs.

+

Type declaration

  • Optional allowDirtyRead?: boolean

    Whether ArangoDB is allowed to perform a dirty read to respond to this +request. If set to true, the response may reflect a dirty state from +a non-authoritative server.

    +
  • Optional basePath?: string

    Optional prefix path to prepend to the path.

    +
  • Optional body?: any

    Request body data.

    +
  • Optional expectBinary?: boolean

    If set to true, the response body will not be interpreted as JSON and +instead passed as-is.

    +
  • Optional headers?: Headers | Record<string, string>

    HTTP headers to pass along with this request in addition to the default +headers generated by arangojs.

    +
  • Optional isBinary?: boolean

    If set to true, the request body will not be converted to JSON and +instead passed as-is.

    +
  • Optional method?: string

    HTTP method to use in order to perform the request.

    +

    Default: "GET"

    +
  • Optional path?: string

    URL path, relative to the basePath and server domain.

    +
  • Optional retryOnConflict?: number

    If set to a positive number, the request will automatically be retried at +most this many times if it results in a write-write conflict.

    +

    Default: config.retryOnConflict

    +
  • Optional search?: URLSearchParams | Record<string, any>

    URL parameters to pass as part of the query string.

    +
  • Optional timeout?: number

    Time in milliseconds after which arangojs will abort the request if the +socket has not already timed out.

    +

    See also agentOptions.timeout in Config.

    +
\ No newline at end of file diff --git a/9.0.0/types/database.AccessLevel.html b/9.0.0/types/database.AccessLevel.html new file mode 100644 index 00000000..1970913c --- /dev/null +++ b/9.0.0/types/database.AccessLevel.html @@ -0,0 +1,2 @@ +AccessLevel | arangojs - v9.0.0

Type alias AccessLevel

AccessLevel: "rw" | "ro" | "none"

Access level for an ArangoDB user's access to a collection or database.

+
\ No newline at end of file diff --git a/9.0.0/types/database.AqlUserFunction.html b/9.0.0/types/database.AqlUserFunction.html new file mode 100644 index 00000000..af62adf8 --- /dev/null +++ b/9.0.0/types/database.AqlUserFunction.html @@ -0,0 +1,6 @@ +AqlUserFunction | arangojs - v9.0.0

Type alias AqlUserFunction

AqlUserFunction: {
    code: string;
    isDeterministic: boolean;
    name: string;
}

Definition of an AQL User Function.

+

Type declaration

  • code: string

    Implementation of the AQL User Function.

    +
  • isDeterministic: boolean

    Whether the function is deterministic.

    +

    See Database#createFunction.

    +
  • name: string

    Name of the AQL User Function.

    +
\ No newline at end of file diff --git a/9.0.0/types/database.ArangoUser.html b/9.0.0/types/database.ArangoUser.html new file mode 100644 index 00000000..9a118917 --- /dev/null +++ b/9.0.0/types/database.ArangoUser.html @@ -0,0 +1,5 @@ +ArangoUser | arangojs - v9.0.0

Type alias ArangoUser

ArangoUser: {
    active: boolean;
    extra: Record<string, any>;
    user: string;
}

Properties of an ArangoDB user object.

+

Type declaration

  • active: boolean

    Whether the ArangoDB user account is enabled and can authenticate.

    +
  • extra: Record<string, any>

    Additional information to store about this user.

    +
  • user: string

    ArangoDB username of the user.

    +
\ No newline at end of file diff --git a/9.0.0/types/database.AstNode.html b/9.0.0/types/database.AstNode.html new file mode 100644 index 00000000..cf63293a --- /dev/null +++ b/9.0.0/types/database.AstNode.html @@ -0,0 +1,2 @@ +AstNode | arangojs - v9.0.0

Type alias AstNode

AstNode: {
    subNodes: AstNode[];
    type: string;
    [key: string]: any;
}

Node in an AQL abstract syntax tree (AST).

+

Type declaration

  • [key: string]: any
  • subNodes: AstNode[]
  • type: string
\ No newline at end of file diff --git a/9.0.0/types/database.ClusterImbalanceInfo.html b/9.0.0/types/database.ClusterImbalanceInfo.html new file mode 100644 index 00000000..afa09e59 --- /dev/null +++ b/9.0.0/types/database.ClusterImbalanceInfo.html @@ -0,0 +1,18 @@ +ClusterImbalanceInfo | arangojs - v9.0.0

Type alias ClusterImbalanceInfo

ClusterImbalanceInfo: {
    leader: {
        imbalance: number;
        leaderDupl: number[];
        numberShards: number[];
        targetWeight: number[];
        totalShards: number;
        totalWeight: number;
        weightUsed: number[];
    };
    shards: {
        imbalance: number;
        numberShards: number[];
        sizeUsed: number[];
        targetSize: number[];
        totalShards: number;
        totalShardsFromSystemCollections: number;
        totalUsed: number;
    };
}

Information about a cluster imbalance.

+

Type declaration

  • leader: {
        imbalance: number;
        leaderDupl: number[];
        numberShards: number[];
        targetWeight: number[];
        totalShards: number;
        totalWeight: number;
        weightUsed: number[];
    }

    Information about the leader imbalance.

    +
    • imbalance: number

      The measure of the total imbalance. A high value indicates a high imbalance.

      +
    • leaderDupl: number[]

      The measure of the leader shard distribution. The higher the number, the worse the distribution.

      +
    • numberShards: number[]

      The number of leader shards per DB-Server.

      +
    • targetWeight: number[]

      The ideal weight of leader shards per DB-Server.

      +
    • totalShards: number

      The sum of shards, counting leader shards only.

      +
    • totalWeight: number

      The sum of all weights.

      +
    • weightUsed: number[]

      The weight of leader shards per DB-Server. A leader has a weight of 1 by default but it is higher if collections can only be moved together because of distributeShardsLike.

      +
  • shards: {
        imbalance: number;
        numberShards: number[];
        sizeUsed: number[];
        targetSize: number[];
        totalShards: number;
        totalShardsFromSystemCollections: number;
        totalUsed: number;
    }

    Information about the shard imbalance.

    +
    • imbalance: number

      The measure of the total imbalance. A high value indicates a high imbalance.

      +
    • numberShards: number[]

      The number of leader and follower shards per DB-Server.

      +
    • sizeUsed: number[]

      The size of shards per DB-Server.

      +
    • targetSize: number[]

      The ideal size of shards per DB-Server.

      +
    • totalShards: number

      The sum of shards, counting leader and follower shards.

      +
    • totalShardsFromSystemCollections: number

      The sum of system collection shards, counting leader shards only.

      +
    • totalUsed: number

      The sum of the sizes.

      +
\ No newline at end of file diff --git a/9.0.0/types/database.ClusterRebalanceMove.html b/9.0.0/types/database.ClusterRebalanceMove.html new file mode 100644 index 00000000..7e638363 --- /dev/null +++ b/9.0.0/types/database.ClusterRebalanceMove.html @@ -0,0 +1,6 @@ +ClusterRebalanceMove | arangojs - v9.0.0

Type alias ClusterRebalanceMove

ClusterRebalanceMove: {
    collection: number;
    from: string;
    isLeader: boolean;
    shard: string;
    to: string;
}

Type declaration

  • collection: number

    Collection ID of the collection the shard belongs to.

    +
  • from: string

    The server name from which to move.

    +
  • isLeader: boolean

    True if this is a leader move shard operation.

    +
  • shard: string

    Shard ID of the shard to be moved.

    +
  • to: string

    The ID of the destination server.

    +
\ No newline at end of file diff --git a/9.0.0/types/database.ClusterRebalanceOptions.html b/9.0.0/types/database.ClusterRebalanceOptions.html new file mode 100644 index 00000000..dc620773 --- /dev/null +++ b/9.0.0/types/database.ClusterRebalanceOptions.html @@ -0,0 +1,15 @@ +ClusterRebalanceOptions | arangojs - v9.0.0

Type alias ClusterRebalanceOptions

ClusterRebalanceOptions: {
    databasesExcluded?: string[];
    excludeSystemCollections?: boolean;
    leaderChanges?: boolean;
    maximumNumberOfMoves?: number;
    moveFollowers?: boolean;
    moveLeaders?: boolean;
    piFactor?: number;
}

Options for rebalancing the cluster.

+

Type declaration

  • Optional databasesExcluded?: string[]

    A list of database names to exclude from the analysis.

    +

    Default: []

    +
  • Optional excludeSystemCollections?: boolean

    Ignore system collections in the rebalance plan.

    +

    Default: false

    +
  • Optional leaderChanges?: boolean

    Allow leader changes without moving data.

    +

    Default: true

    +
  • Optional maximumNumberOfMoves?: number

    Maximum number of moves to be computed.

    +

    Default: 1000

    +
  • Optional moveFollowers?: boolean

    Allow moving followers.

    +

    Default: false

    +
  • Optional moveLeaders?: boolean

    Allow moving leaders.

    +

    Default: false

    +
  • Optional piFactor?: number

    Default: 256**6

    +
\ No newline at end of file diff --git a/9.0.0/types/database.ClusterRebalanceResult.html b/9.0.0/types/database.ClusterRebalanceResult.html new file mode 100644 index 00000000..c19810e7 --- /dev/null +++ b/9.0.0/types/database.ClusterRebalanceResult.html @@ -0,0 +1,4 @@ +ClusterRebalanceResult | arangojs - v9.0.0

Type alias ClusterRebalanceResult

ClusterRebalanceResult: {
    imbalanceAfter: ClusterImbalanceInfo;
    imbalanceBefore: ClusterImbalanceInfo;
    moves: ClusterRebalanceMove[];
}

Type declaration

\ No newline at end of file diff --git a/9.0.0/types/database.ClusterRebalanceState.html b/9.0.0/types/database.ClusterRebalanceState.html new file mode 100644 index 00000000..057dca25 --- /dev/null +++ b/9.0.0/types/database.ClusterRebalanceState.html @@ -0,0 +1,4 @@ +ClusterRebalanceState | arangojs - v9.0.0

Type alias ClusterRebalanceState

ClusterRebalanceState: ClusterImbalanceInfo & {
    pendingMoveShards: number;
    todoMoveShards: number;
}

Information about the current state of the cluster imbalance.

+

Type declaration

  • pendingMoveShards: number

    The number of pending move shard operations.

    +
  • todoMoveShards: number

    The number of planned move shard operations.

    +
\ No newline at end of file diff --git a/9.0.0/types/database.CreateDatabaseOptions.html b/9.0.0/types/database.CreateDatabaseOptions.html new file mode 100644 index 00000000..efc8a74a --- /dev/null +++ b/9.0.0/types/database.CreateDatabaseOptions.html @@ -0,0 +1,12 @@ +CreateDatabaseOptions | arangojs - v9.0.0

Type alias CreateDatabaseOptions

CreateDatabaseOptions: {
    replicationFactor?: "satellite" | number;
    sharding?: "" | "flexible" | "single";
    users?: CreateDatabaseUser[];
    writeConcern?: number;
}

Options for creating a database.

+

See Database#createDatabase.

+

Type declaration

  • Optional replicationFactor?: "satellite" | number

    (Cluster only.) Default replication factor for new collections in this +database.

    +

    Setting this to 1 disables replication. Setting this to "satellite" +will replicate to every DBServer.

    +
  • Optional sharding?: "" | "flexible" | "single"

    (Cluster only.) The sharding method to use for new collections in the +database.

    +
  • Optional users?: CreateDatabaseUser[]

    Database users to create with the database.

    +
  • Optional writeConcern?: number

    (Cluster only.) Default write concern for new collections created in this +database.

    +
\ No newline at end of file diff --git a/9.0.0/types/database.CreateDatabaseUser.html b/9.0.0/types/database.CreateDatabaseUser.html new file mode 100644 index 00000000..ec332c0a --- /dev/null +++ b/9.0.0/types/database.CreateDatabaseUser.html @@ -0,0 +1,8 @@ +CreateDatabaseUser | arangojs - v9.0.0

Type alias CreateDatabaseUser

CreateDatabaseUser: {
    active?: boolean;
    extra?: Record<string, any>;
    passwd?: string;
    username: string;
}

Database user to create with a database.

+

Type declaration

  • Optional active?: boolean

    Whether the user is active.

    +

    Default: true

    +
  • Optional extra?: Record<string, any>

    Additional data to store with the user object.

    +
  • Optional passwd?: string

    Password of the user to create.

    +

    Default: ""

    +
  • username: string

    Username of the user to create.

    +
\ No newline at end of file diff --git a/9.0.0/types/database.CreateUserOptions.html b/9.0.0/types/database.CreateUserOptions.html new file mode 100644 index 00000000..a208798e --- /dev/null +++ b/9.0.0/types/database.CreateUserOptions.html @@ -0,0 +1,8 @@ +CreateUserOptions | arangojs - v9.0.0

Type alias CreateUserOptions

CreateUserOptions: {
    active?: boolean;
    extra?: Record<string, any>;
    passwd: string;
    user: string;
}

Options for creating an ArangoDB user.

+

Type declaration

  • Optional active?: boolean

    Whether the ArangoDB user account is enabled and can authenticate.

    +

    Default: true

    +
  • Optional extra?: Record<string, any>

    Additional information to store about this user.

    +

    Default: {}

    +
  • passwd: string

    Password the ArangoDB user will use for authentication.

    +
  • user: string

    ArangoDB username of the user.

    +
\ No newline at end of file diff --git a/9.0.0/types/database.DatabaseInfo.html b/9.0.0/types/database.DatabaseInfo.html new file mode 100644 index 00000000..fa97264f --- /dev/null +++ b/9.0.0/types/database.DatabaseInfo.html @@ -0,0 +1,13 @@ +DatabaseInfo | arangojs - v9.0.0

Type alias DatabaseInfo

DatabaseInfo: {
    id: string;
    isSystem: boolean;
    name: string;
    path: string;
    replicationFactor?: "satellite" | number;
    sharding?: "" | "flexible" | "single";
    writeConcern?: number;
}

Object describing a database.

+

See Database#get.

+

Type declaration

  • id: string

    Unique identifier of the database.

    +
  • isSystem: boolean

    Whether the database is the system database.

    +
  • name: string

    Name of the database.

    +
  • path: string

    File system path of the database.

    +
  • Optional replicationFactor?: "satellite" | number

    (Cluster only.) Default replication factor for new collections in this +database.

    +
  • Optional sharding?: "" | "flexible" | "single"

    (Cluster only.) The sharding method to use for new collections in the +database.

    +
  • Optional writeConcern?: number

    (Cluster only.) Default write concern for new collections created in this +database.

    +
\ No newline at end of file diff --git a/9.0.0/types/database.ExplainOptions.html b/9.0.0/types/database.ExplainOptions.html new file mode 100644 index 00000000..9d19dfe3 --- /dev/null +++ b/9.0.0/types/database.ExplainOptions.html @@ -0,0 +1,13 @@ +ExplainOptions | arangojs - v9.0.0

Type alias ExplainOptions

ExplainOptions: {
    allPlans?: boolean;
    maxNumberOfPlans?: number;
    optimizer?: {
        rules: string[];
    };
}

Options for explaining a query.

+

See Database#explain.

+

Type declaration

  • Optional allPlans?: boolean

    If set to true, all possible execution plans will be returned as the +plans property. Otherwise only the optimal execution plan will be +returned as the plan property.

    +

    Default: false

    +
  • Optional maxNumberOfPlans?: number

    Maximum number of plans that the optimizer is allowed to generate. +Setting this to a low value limits the amount of work the optimizer does.

    +
  • Optional optimizer?: {
        rules: string[];
    }

    An object with a rules property specifying a list of optimizer rules to +be included or excluded by the optimizer for this query. Prefix a rule +name with + to include it, or - to exclude it. The name all acts as +an alias matching all optimizer rules.

    +
    • rules: string[]
\ No newline at end of file diff --git a/9.0.0/types/database.ExplainPlan.html b/9.0.0/types/database.ExplainPlan.html new file mode 100644 index 00000000..c28756c5 --- /dev/null +++ b/9.0.0/types/database.ExplainPlan.html @@ -0,0 +1,9 @@ +ExplainPlan | arangojs - v9.0.0

Type alias ExplainPlan

ExplainPlan: {
    collections: {
        name: string;
        type: "read" | "write";
    }[];
    estimatedCost: number;
    estimatedNrItems: number;
    isModificationQuery: boolean;
    nodes: {
        dependencies: number[];
        estimatedCost: number;
        estimatedNrItems: number;
        id: number;
        type: string;
        [key: string]: any;
    }[];
    rules: string[];
    variables: {
        id: number;
        name: string;
    }[];
}

Plan explaining query execution.

+

Type declaration

  • collections: {
        name: string;
        type: "read" | "write";
    }[]

    Information about collections involved in the query.

    +
  • estimatedCost: number

    Total estimated cost of the plan.

    +
  • estimatedNrItems: number

    Estimated number of items returned by the query.

    +
  • isModificationQuery: boolean

    Whether the query is a data modification query.

    +
  • nodes: {
        dependencies: number[];
        estimatedCost: number;
        estimatedNrItems: number;
        id: number;
        type: string;
        [key: string]: any;
    }[]

    Execution nodes in this plan.

    +
  • rules: string[]

    Rules applied by the optimizer.

    +
  • variables: {
        id: number;
        name: string;
    }[]

    Variables used in the query.

    +
\ No newline at end of file diff --git a/9.0.0/types/database.ExplainStats.html b/9.0.0/types/database.ExplainStats.html new file mode 100644 index 00000000..8ef21dc0 --- /dev/null +++ b/9.0.0/types/database.ExplainStats.html @@ -0,0 +1,7 @@ +ExplainStats | arangojs - v9.0.0

Type alias ExplainStats

ExplainStats: {
    executionTime: number;
    peakMemoryUsage: number;
    plansCreated: number;
    rulesExecuted: number;
    rulesSkipped: number;
}

Optimizer statistics for an explained query.

+

Type declaration

  • executionTime: number

    Time in seconds needed to explain the query.

    +
  • peakMemoryUsage: number

    Maximum memory usage in bytes of the query during explain.

    +
  • plansCreated: number

    Total number of plans created.

    +
  • rulesExecuted: number

    Total number of rules executed for this query.

    +
  • rulesSkipped: number

    Number of rules skipped for this query.

    +
\ No newline at end of file diff --git a/9.0.0/types/database.HotBackupList.html b/9.0.0/types/database.HotBackupList.html new file mode 100644 index 00000000..5e31e915 --- /dev/null +++ b/9.0.0/types/database.HotBackupList.html @@ -0,0 +1,2 @@ +HotBackupList | arangojs - v9.0.0

Type alias HotBackupList

HotBackupList: {
    list: Record<string, HotBackupResult & {
        available: boolean;
        countIncludesFilesOnly: boolean;
        keys: any[];
        nrPiecesPresent: number;
        version: string;
    }>;
    server: string;
}

(Enterprise Edition only.) List of known hot backups.

+

Type declaration

  • list: Record<string, HotBackupResult & {
        available: boolean;
        countIncludesFilesOnly: boolean;
        keys: any[];
        nrPiecesPresent: number;
        version: string;
    }>
  • server: string
\ No newline at end of file diff --git a/9.0.0/types/database.HotBackupOptions.html b/9.0.0/types/database.HotBackupOptions.html new file mode 100644 index 00000000..9efbb19b --- /dev/null +++ b/9.0.0/types/database.HotBackupOptions.html @@ -0,0 +1,15 @@ +HotBackupOptions | arangojs - v9.0.0

Type alias HotBackupOptions

HotBackupOptions: {
    allowInconsistent?: boolean;
    force?: boolean;
    label?: string;
    timeout?: number;
}

(Enterprise Edition only.) Options for creating a hot backup.

+

Type declaration

  • Optional allowInconsistent?: boolean

    If set to true and no global transaction lock can be acquired within the +given timeout, a possibly inconsistent backup is taken.

    +

    Default: false

    +
  • Optional force?: boolean

    (Enterprise Edition cluster only.) If set to true and no global +transaction lock can be acquired within the given timeout, all running +transactions are forcefully aborted to ensure that a consistent backup +can be created.

    +

    Default: false.

    +
  • Optional label?: string

    Label to appended to the backup's identifier.

    +

    Default: If omitted or empty, a UUID will be generated.

    +
  • Optional timeout?: number

    Time in seconds that the operation will attempt to get a consistent +snapshot.

    +

    Default: 120.

    +
\ No newline at end of file diff --git a/9.0.0/types/database.HotBackupResult.html b/9.0.0/types/database.HotBackupResult.html new file mode 100644 index 00000000..18f2c07c --- /dev/null +++ b/9.0.0/types/database.HotBackupResult.html @@ -0,0 +1,2 @@ +HotBackupResult | arangojs - v9.0.0

Type alias HotBackupResult

HotBackupResult: {
    datetime: string;
    id: string;
    nrDBServers: number;
    nrFiles: number;
    potentiallyInconsistent: boolean;
    sizeInBytes: number;
}

(Enterprise Edition only.) Result of a hot backup.

+

Type declaration

  • datetime: string
  • id: string
  • nrDBServers: number
  • nrFiles: number
  • potentiallyInconsistent: boolean
  • sizeInBytes: number
\ No newline at end of file diff --git a/9.0.0/types/database.InstallServiceOptions.html b/9.0.0/types/database.InstallServiceOptions.html new file mode 100644 index 00000000..022f074b --- /dev/null +++ b/9.0.0/types/database.InstallServiceOptions.html @@ -0,0 +1,15 @@ +InstallServiceOptions | arangojs - v9.0.0

Type alias InstallServiceOptions

InstallServiceOptions: {
    configuration?: Record<string, any>;
    dependencies?: Record<string, string>;
    development?: boolean;
    legacy?: boolean;
    setup?: boolean;
}

Options for installing the service.

+

See Database#installService.

+

Type declaration

  • Optional configuration?: Record<string, any>

    An object mapping configuration option names to values.

    +

    See also Database#getServiceConfiguration.

    +
  • Optional dependencies?: Record<string, string>

    An object mapping dependency aliases to mount points.

    +

    See also Database#getServiceDependencies.

    +
  • Optional development?: boolean

    Whether the service should be installed in development mode.

    +

    See also Database#setServiceDevelopmentMode.

    +

    Default: false

    +
  • Optional legacy?: boolean

    Whether the service should be installed in legacy compatibility mode

    +

    This overrides the engines option in the service manifest (if any).

    +

    Default: false

    +
  • Optional setup?: boolean

    Whether the "setup" script should be executed.

    +

    Default: true

    +
\ No newline at end of file diff --git a/9.0.0/types/database.LogEntries.html b/9.0.0/types/database.LogEntries.html new file mode 100644 index 00000000..4213e08a --- /dev/null +++ b/9.0.0/types/database.LogEntries.html @@ -0,0 +1,2 @@ +LogEntries | arangojs - v9.0.0

Type alias LogEntries

LogEntries: {
    level: LogLevel[];
    lid: number[];
    text: string[];
    timestamp: number[];
    topic: string[];
    totalAmount: number;
}

An object representing a list of log entries.

+

Type declaration

  • level: LogLevel[]
  • lid: number[]
  • text: string[]
  • timestamp: number[]
  • topic: string[]
  • totalAmount: number
\ No newline at end of file diff --git a/9.0.0/types/database.LogEntriesOptions.html b/9.0.0/types/database.LogEntriesOptions.html new file mode 100644 index 00000000..fb61d58d --- /dev/null +++ b/9.0.0/types/database.LogEntriesOptions.html @@ -0,0 +1,13 @@ +LogEntriesOptions | arangojs - v9.0.0

Type alias LogEntriesOptions

LogEntriesOptions: {
    level?: LogLevel | LogLevelLabel | Lowercase<LogLevelLabel>;
    offset?: number;
    search?: string;
    size?: number;
    sort?: LogSortDirection;
    start?: number;
    upto?: LogLevel | LogLevelLabel | Lowercase<LogLevelLabel>;
}

Options for retrieving log entries.

+

Type declaration

  • Optional level?: LogLevel | LogLevelLabel | Lowercase<LogLevelLabel>

    If set, only log entries with this log level will be returned.

    +
  • Optional offset?: number

    If set, this many log entries will be skipped.

    +
  • Optional search?: string

    If set, only log entries containing the specified text will be returned.

    +
  • Optional size?: number

    If set, only this many entries will be returned.

    +
  • Optional sort?: LogSortDirection

    If set to "desc", log entries will be returned in reverse chronological +order.

    +

    Default: "asc".

    +
  • Optional start?: number

    If set, only log entries with an lid greater than or equal to this value +will be returned.

    +
  • Optional upto?: LogLevel | LogLevelLabel | Lowercase<LogLevelLabel>

    Maximum log level of the entries to retrieve.

    +

    Default: INFO.

    +
\ No newline at end of file diff --git a/9.0.0/types/database.LogLevelLabel.html b/9.0.0/types/database.LogLevelLabel.html new file mode 100644 index 00000000..67361d9b --- /dev/null +++ b/9.0.0/types/database.LogLevelLabel.html @@ -0,0 +1,2 @@ +LogLevelLabel | arangojs - v9.0.0

Type alias LogLevelLabel

LogLevelLabel: "FATAL" | "ERROR" | "WARNING" | "INFO" | "DEBUG"

String representation of the logging level of a log entry.

+
\ No newline at end of file diff --git a/9.0.0/types/database.LogLevelSetting.html b/9.0.0/types/database.LogLevelSetting.html new file mode 100644 index 00000000..7f3c6c39 --- /dev/null +++ b/9.0.0/types/database.LogLevelSetting.html @@ -0,0 +1,2 @@ +LogLevelSetting | arangojs - v9.0.0

Type alias LogLevelSetting

LogLevelSetting: LogLevelLabel | "DEFAULT"

Logging level setting.

+
\ No newline at end of file diff --git a/9.0.0/types/database.LogMessage.html b/9.0.0/types/database.LogMessage.html new file mode 100644 index 00000000..8ee7f4db --- /dev/null +++ b/9.0.0/types/database.LogMessage.html @@ -0,0 +1,2 @@ +LogMessage | arangojs - v9.0.0

Type alias LogMessage

LogMessage: {
    date: string;
    id: number;
    level: LogLevelLabel;
    message: string;
    topic: string;
}

An object representing a single log entry.

+

Type declaration

  • date: string
  • id: number
  • level: LogLevelLabel
  • message: string
  • topic: string
\ No newline at end of file diff --git a/9.0.0/types/database.LogSortDirection.html b/9.0.0/types/database.LogSortDirection.html new file mode 100644 index 00000000..6d96edc9 --- /dev/null +++ b/9.0.0/types/database.LogSortDirection.html @@ -0,0 +1,2 @@ +LogSortDirection | arangojs - v9.0.0

Type alias LogSortDirection

LogSortDirection: "asc" | "desc"

Log sorting direction, ascending or descending.

+
\ No newline at end of file diff --git a/9.0.0/types/database.MultiExplainResult.html b/9.0.0/types/database.MultiExplainResult.html new file mode 100644 index 00000000..8f0ab44f --- /dev/null +++ b/9.0.0/types/database.MultiExplainResult.html @@ -0,0 +1,6 @@ +MultiExplainResult | arangojs - v9.0.0

Type alias MultiExplainResult

MultiExplainResult: {
    cacheable: boolean;
    plans: ExplainPlan[];
    stats: ExplainStats;
    warnings: {
        code: number;
        message: string;
    }[];
}

Result of explaining a query with multiple plans.

+

Type declaration

  • cacheable: boolean

    Whether it would be possible to cache the query.

    +
  • plans: ExplainPlan[]

    Query plans.

    +
  • stats: ExplainStats

    Optimizer statistics for the explained query.

    +
  • warnings: {
        code: number;
        message: string;
    }[]

    Warnings encountered while planning the query execution.

    +
\ No newline at end of file diff --git a/9.0.0/types/database.MultiServiceDependency.html b/9.0.0/types/database.MultiServiceDependency.html new file mode 100644 index 00000000..579b9d05 --- /dev/null +++ b/9.0.0/types/database.MultiServiceDependency.html @@ -0,0 +1,10 @@ +MultiServiceDependency | arangojs - v9.0.0

Type alias MultiServiceDependency

MultiServiceDependency: {
    current?: string[];
    description?: string;
    multiple: true;
    name: string;
    required: boolean;
    title: string;
    version: string;
}

Object describing a multi-service dependency defined by a Foxx service.

+

Type declaration

  • Optional current?: string[]

    Current mount points the dependency is resolved to.

    +
  • Optional description?: string

    Human-readable description of the dependency.

    +
  • multiple: true

    Whether this is a multi-service dependency.

    +
  • name: string

    Name of the service the dependency expects to match.

    +
  • required: boolean

    Whether the dependency must be matched in order for the service +to be operational.

    +
  • title: string

    Formatted name of the dependency.

    +
  • version: string

    Version of the service the dependency expects to match.

    +
\ No newline at end of file diff --git a/9.0.0/types/database.ParseResult.html b/9.0.0/types/database.ParseResult.html new file mode 100644 index 00000000..9acee393 --- /dev/null +++ b/9.0.0/types/database.ParseResult.html @@ -0,0 +1,6 @@ +ParseResult | arangojs - v9.0.0

Type alias ParseResult

ParseResult: {
    ast: AstNode[];
    bindVars: string[];
    collections: string[];
    parsed: boolean;
}

Result of parsing a query.

+

Type declaration

  • ast: AstNode[]

    Abstract syntax tree (AST) of the query.

    +
  • bindVars: string[]

    Names of all bind parameters used in the query.

    +
  • collections: string[]

    Names of all collections involved in the query.

    +
  • parsed: boolean

    Whether the query was parsed.

    +
\ No newline at end of file diff --git a/9.0.0/types/database.QueryInfo.html b/9.0.0/types/database.QueryInfo.html new file mode 100644 index 00000000..3f843fe0 --- /dev/null +++ b/9.0.0/types/database.QueryInfo.html @@ -0,0 +1,12 @@ +QueryInfo | arangojs - v9.0.0

Type alias QueryInfo

QueryInfo: {
    bindVars: Record<string, any>;
    database: string;
    id: string;
    peakMemoryUsage: number;
    query: string;
    runTime: number;
    started: string;
    state: "executing" | "finished" | "killed";
    stream: boolean;
    user: string;
}

Object describing a query.

+

Type declaration

  • bindVars: Record<string, any>

    Bind parameters used in the query.

    +
  • database: string

    Name of the database the query runs in.

    +
  • id: string

    Unique identifier for this query.

    +
  • peakMemoryUsage: number

    Maximum memory usage in bytes of the query.

    +
  • query: string

    Query string (potentially truncated).

    +
  • runTime: number

    Query's running time in seconds.

    +
  • started: string

    Date and time the query was started.

    +
  • state: "executing" | "finished" | "killed"

    Query's current execution state.

    +
  • stream: boolean

    Whether the query uses a streaming cursor.

    +
  • user: string

    Name of the user that started the query.

    +
\ No newline at end of file diff --git a/9.0.0/types/database.QueryOptimizerRule.html b/9.0.0/types/database.QueryOptimizerRule.html new file mode 100644 index 00000000..232c6926 --- /dev/null +++ b/9.0.0/types/database.QueryOptimizerRule.html @@ -0,0 +1,2 @@ +QueryOptimizerRule | arangojs - v9.0.0

Type alias QueryOptimizerRule

QueryOptimizerRule: {
    flags: {
        canBeDisabled: boolean;
        canCreateAdditionalPlans: boolean;
        clusterOnly: boolean;
        disabledByDefault: boolean;
        enterpriseOnly: boolean;
        hidden: boolean;
    };
    name: string;
}

Optimizer rule for AQL queries.

+

Type declaration

  • flags: {
        canBeDisabled: boolean;
        canCreateAdditionalPlans: boolean;
        clusterOnly: boolean;
        disabledByDefault: boolean;
        enterpriseOnly: boolean;
        hidden: boolean;
    }
    • canBeDisabled: boolean
    • canCreateAdditionalPlans: boolean
    • clusterOnly: boolean
    • disabledByDefault: boolean
    • enterpriseOnly: boolean
    • hidden: boolean
  • name: string
\ No newline at end of file diff --git a/9.0.0/types/database.QueryOptions.html b/9.0.0/types/database.QueryOptions.html new file mode 100644 index 00000000..5eb2e2e8 --- /dev/null +++ b/9.0.0/types/database.QueryOptions.html @@ -0,0 +1,80 @@ +QueryOptions | arangojs - v9.0.0

Type alias QueryOptions

QueryOptions: {
    allowDirtyRead?: boolean;
    allowRetry?: boolean;
    batchSize?: number;
    cache?: boolean;
    count?: boolean;
    failOnWarning?: boolean;
    fillBlockCache?: boolean;
    fullCount?: boolean;
    intermediateCommitCount?: number;
    intermediateCommitSize?: number;
    maxNodesPerCallstack?: number;
    maxPlans?: number;
    maxRuntime?: number;
    maxTransactionSize?: number;
    maxWarningsCount?: number;
    memoryLimit?: number;
    optimizer?: {
        rules: string[];
    };
    profile?: boolean | number;
    retryOnConflict?: number;
    satelliteSyncWait?: number;
    skipInaccessibleCollections?: boolean;
    stream?: boolean;
    timeout?: number;
    ttl?: number;
}

Options for executing a query.

+

See Database#query.

+

Type declaration

  • Optional allowDirtyRead?: boolean

    If set to true, the query will be executed with support for dirty reads +enabled, permitting ArangoDB to return a potentially dirty or stale result +and arangojs will load balance the request without distinguishing between +leaders and followers.

    +

    Note that dirty reads are only supported for read-only queries, not data +modification queries (e.g. using INSERT, UPDATE, REPLACE or +REMOVE) and only when using ArangoDB 3.4 or later.

    +

    Default: false

    +
  • Optional allowRetry?: boolean

    If set to true, cursor results will be stored by ArangoDB in such a way +that batch reads can be retried in the case of a communication error.

    +

    Default: false

    +
  • Optional batchSize?: number

    Number of result values to be transferred by the server in each +network roundtrip (or "batch").

    +

    Must be greater than zero.

    +
  • Optional cache?: boolean

    If set to false, the AQL query results cache lookup will be skipped for +this query.

    +

    Default: true

    +
  • Optional count?: boolean

    Unless set to false, the number of result values in the result set will +be returned in the count attribute. This may be disabled by default in +a future version of ArangoDB if calculating this value has a performance +impact for some queries.

    +

    Default: true.

    +
  • Optional failOnWarning?: boolean

    If set to true, the query will throw an exception and abort if it would + otherwise produce a warning.

    +
  • Optional fillBlockCache?: boolean

    If set to false, the query data will not be stored in the RocksDB block +cache. This can be used to avoid thrashing he block cache when reading a +lot of data.

    +
  • Optional fullCount?: boolean

    If set to true and the query has a LIMIT clause, the total number of +values matched before the last top-level LIMIT in the query was applied +will be returned in the extra.stats.fullCount attribute.

    +
  • Optional intermediateCommitCount?: number

    Maximum number of operations after which an intermediate commit is +automatically performed.

    +
  • Optional intermediateCommitSize?: number

    Maximum total size of operations in bytes after which an intermediate +commit is automatically performed.

    +
  • Optional maxNodesPerCallstack?: number

    Controls after how many execution nodes in a query a stack split should be +performed.

    +

    Default: 250 (200 on macOS)

    +
  • Optional maxPlans?: number

    Limits the maximum number of plans that will be created by the AQL query +optimizer.

    +
  • Optional maxRuntime?: number

    Maximum allowed execution time before the query will be killed in seconds.

    +

    If set to 0, the query will be allowed to run indefinitely.

    +

    Default: 0

    +
  • Optional maxTransactionSize?: number

    Maximum size of transactions in bytes.

    +
  • Optional maxWarningsCount?: number

    Limits the maximum number of warnings a query will return.

    +
  • Optional memoryLimit?: number

    Maximum memory size in bytes that the query is allowed to use. +Exceeding this value will result in the query failing with an error.

    +

    If set to 0, the memory limit is disabled.

    +

    Default: 0

    +
  • Optional optimizer?: {
        rules: string[];
    }

    An object with a rules property specifying a list of optimizer rules to +be included or excluded by the optimizer for this query. Prefix a rule +name with + to include it, or - to exclude it. The name all acts as +an alias matching all optimizer rules.

    +
    • rules: string[]
  • Optional profile?: boolean | number

    If set to 1 or true, additional query profiling information will be +returned in the extra.profile attribute if the query is not served from +the result cache.

    +

    If set to 2, the query will return execution stats per query plan node +in the extra.stats.nodes attribute. Additionally the query plan is +returned in extra.plan.

    +
  • Optional retryOnConflict?: number

    If set to a positive number, the query will automatically be retried at +most this many times if it results in a write-write conflict.

    +

    Default: 0

    +
  • Optional satelliteSyncWait?: number

    (Enterprise Edition cluster only.) Limits the maximum time in seconds a +DBServer will wait to bring satellite collections involved in the query +into sync. Exceeding this value will result in the query being stopped.

    +

    Default: 60

    +
  • Optional skipInaccessibleCollections?: boolean

    (Enterprise Edition cluster only.) If set to true, collections +inaccessible to current user will result in an access error instead +of being treated as empty.

    +
  • Optional stream?: boolean

    If set to true, the query will be executed as a streaming query.

    +
  • Optional timeout?: number

    Maximum time in milliseconds arangojs will wait for a server response. +Exceeding this value will result in the request being cancelled.

    +

    Note: Setting a timeout for the client does not guarantee the query +will be killed by ArangoDB if it is already being executed. See the +maxRuntime option for limiting the execution time within ArangoDB.

    +
  • Optional ttl?: number

    Time-to-live for the cursor in seconds. The cursor results may be +garbage collected by ArangoDB after this much time has passed.

    +

    Default: 30

    +
\ No newline at end of file diff --git a/9.0.0/types/database.QueryTracking.html b/9.0.0/types/database.QueryTracking.html new file mode 100644 index 00000000..7be2936c --- /dev/null +++ b/9.0.0/types/database.QueryTracking.html @@ -0,0 +1,9 @@ +QueryTracking | arangojs - v9.0.0

Type alias QueryTracking

QueryTracking: {
    enabled: boolean;
    maxQueryStringLength: number;
    maxSlowQueries: number;
    slowQueryThreshold: number;
    trackBindVars: boolean;
    trackSlowQueries: boolean;
}

Information about query tracking.

+

Type declaration

  • enabled: boolean

    Whether query tracking is enabled.

    +
  • maxQueryStringLength: number

    Maximum query string length in bytes that is kept in the list.

    +
  • maxSlowQueries: number

    Maximum number of slow queries that is kept in the list.

    +
  • slowQueryThreshold: number

    Threshold execution time in seconds for when a query is +considered slow.

    +
  • trackBindVars: boolean

    Whether bind parameters are being tracked along with queries.

    +
  • trackSlowQueries: boolean

    Whether slow queries are being tracked.

    +
\ No newline at end of file diff --git a/9.0.0/types/database.QueryTrackingOptions.html b/9.0.0/types/database.QueryTrackingOptions.html new file mode 100644 index 00000000..19771c36 --- /dev/null +++ b/9.0.0/types/database.QueryTrackingOptions.html @@ -0,0 +1,11 @@ +QueryTrackingOptions | arangojs - v9.0.0

Type alias QueryTrackingOptions

QueryTrackingOptions: {
    enabled?: boolean;
    maxQueryStringLength?: number;
    maxSlowQueries?: number;
    slowQueryThreshold?: number;
    trackBindVars?: boolean;
    trackSlowQueries?: boolean;
}

Options for query tracking.

+

See Database#queryTracking.

+

Type declaration

  • Optional enabled?: boolean

    If set to false, neither queries nor slow queries will be tracked.

    +
  • Optional maxQueryStringLength?: number

    Maximum query string length in bytes that will be kept in the list.

    +
  • Optional maxSlowQueries?: number

    Maximum number of slow queries to be kept in the list.

    +
  • Optional slowQueryThreshold?: number

    Threshold execution time in seconds for when a query will be +considered slow.

    +
  • Optional trackBindVars?: boolean

    If set to true, bind parameters will be tracked along with queries.

    +
  • Optional trackSlowQueries?: boolean

    If set to true and enabled is also set to true, slow queries will be +tracked if their execution time exceeds slowQueryThreshold.

    +
\ No newline at end of file diff --git a/9.0.0/types/database.QueueTimeMetrics.html b/9.0.0/types/database.QueueTimeMetrics.html new file mode 100644 index 00000000..b4634929 --- /dev/null +++ b/9.0.0/types/database.QueueTimeMetrics.html @@ -0,0 +1,9 @@ +QueueTimeMetrics | arangojs - v9.0.0

Type alias QueueTimeMetrics

QueueTimeMetrics: {
    getAvg: (() => number);
    getLatest: (() => number | undefined);
    getValues: (() => [number, number][]);
}

An object providing methods for accessing queue time metrics of the most +recently received server responses if the server supports this feature.

+

Type declaration

  • getAvg: (() => number)

    Returns the average queue time of the most recently received responses +in seconds.

    +
      • (): number
      • Returns number

  • getLatest: (() => number | undefined)

    Returns the queue time of the most recently received response in seconds.

    +
      • (): number | undefined
      • Returns number | undefined

  • getValues: (() => [number, number][])

    Returns a list of the most recently received queue time values as tuples +of the timestamp of the response being processed in milliseconds and the +queue time in seconds.

    +
      • (): [number, number][]
      • Returns [number, number][]

\ No newline at end of file diff --git a/9.0.0/types/database.ReplaceServiceOptions.html b/9.0.0/types/database.ReplaceServiceOptions.html new file mode 100644 index 00000000..7ecd0153 --- /dev/null +++ b/9.0.0/types/database.ReplaceServiceOptions.html @@ -0,0 +1,21 @@ +ReplaceServiceOptions | arangojs - v9.0.0

Type alias ReplaceServiceOptions

ReplaceServiceOptions: {
    configuration?: Record<string, any>;
    dependencies?: Record<string, string>;
    development?: boolean;
    force?: boolean;
    legacy?: boolean;
    setup?: boolean;
    teardown?: boolean;
}

Options for replacing a service.

+

See Database#replaceService.

+

Type declaration

  • Optional configuration?: Record<string, any>

    An object mapping configuration option names to values.

    +

    See also Database#getServiceConfiguration.

    +
  • Optional dependencies?: Record<string, string>

    An object mapping dependency aliases to mount points.

    +

    See also Database#getServiceDependencies.

    +
  • Optional development?: boolean

    Whether the service should be installed in development mode.

    +

    See also Database#setServiceDevelopmentMode.

    +

    Default: false

    +
  • Optional force?: boolean

    If set to true, replacing a service that does not already exist will +fall back to installing the new service.

    +

    Default: false

    +
  • Optional legacy?: boolean

    Whether the service should be installed in legacy compatibility mode

    +

    This overrides the engines option in the service manifest (if any).

    +

    Default: false

    +
  • Optional setup?: boolean

    Whether the "setup" script should be executed.

    +

    Default: true

    +
  • Optional teardown?: boolean

    Whether the existing service's "teardown" script should be executed +prior to removing that service.

    +

    Default: true

    +
\ No newline at end of file diff --git a/9.0.0/types/database.ServiceConfiguration.html b/9.0.0/types/database.ServiceConfiguration.html new file mode 100644 index 00000000..e549c772 --- /dev/null +++ b/9.0.0/types/database.ServiceConfiguration.html @@ -0,0 +1,15 @@ +ServiceConfiguration | arangojs - v9.0.0

Type alias ServiceConfiguration

ServiceConfiguration: {
    current: any;
    currentRaw: any;
    default?: any;
    description?: string;
    required: boolean;
    title: string;
    type: "integer" | "boolean" | "string" | "number" | "json" | "password" | "int" | "bool";
}

Object describing a configuration option of a Foxx service.

+

Type declaration

  • current: any

    Processed current value of the configuration option as exposed in the +service code.

    +
  • currentRaw: any

    Current value of the configuration option as stored internally.

    +
  • Optional default?: any

    Default value of the configuration option.

    +
  • Optional description?: string

    Human-readable description of the configuration option.

    +
  • required: boolean

    Whether the configuration option must be set in order for the service +to be operational.

    +
  • title: string

    Formatted name of the configuration option.

    +
  • type: "integer" | "boolean" | "string" | "number" | "json" | "password" | "int" | "bool"

    Data type of the configuration value.

    +

    Note: "int" and "bool" are historical synonyms for "integer" and +"boolean". The "password" type is synonymous with "string" but can +be used to distinguish values which should not be displayed in plain text +by software when managing the service.

    +
\ No newline at end of file diff --git a/9.0.0/types/database.ServiceInfo.html b/9.0.0/types/database.ServiceInfo.html new file mode 100644 index 00000000..d2883498 --- /dev/null +++ b/9.0.0/types/database.ServiceInfo.html @@ -0,0 +1,13 @@ +ServiceInfo | arangojs - v9.0.0

Type alias ServiceInfo

ServiceInfo: {
    checksum: string;
    development: boolean;
    legacy: boolean;
    manifest: FoxxManifest;
    mount: string;
    name?: string;
    options: {
        configuration: Record<string, any>;
        dependencies: Record<string, string>;
    };
    path: string;
    version?: string;
}

Object describing a Foxx service in detail.

+

Type declaration

  • checksum: string

    Internal checksum of the service's initial source bundle.

    +
  • development: boolean

    Whether development mode is enabled for this service.

    +
  • legacy: boolean

    Whether the service is running in legacy compatibility mode.

    +
  • manifest: FoxxManifest

    Content of the service manifest of this service.

    +
  • mount: string

    Service mount point, relative to the database.

    +
  • Optional name?: string

    Name defined in the service manifest.

    +
  • options: {
        configuration: Record<string, any>;
        dependencies: Record<string, string>;
    }

    Options for this service.

    +
    • configuration: Record<string, any>

      Configuration values set for this service.

      +
    • dependencies: Record<string, string>

      Service dependency configuration of this service.

      +
  • path: string

    File system path of the service.

    +
  • Optional version?: string

    Version defined in the service manifest.

    +
\ No newline at end of file diff --git a/9.0.0/types/database.ServiceSummary.html b/9.0.0/types/database.ServiceSummary.html new file mode 100644 index 00000000..985fdf99 --- /dev/null +++ b/9.0.0/types/database.ServiceSummary.html @@ -0,0 +1,9 @@ +ServiceSummary | arangojs - v9.0.0

Type alias ServiceSummary

ServiceSummary: {
    development: boolean;
    legacy: boolean;
    mount: string;
    name?: string;
    provides: Record<string, string>;
    version?: string;
}

Object briefly describing a Foxx service.

+

Type declaration

  • development: boolean

    Whether development mode is enabled for this service.

    +
  • legacy: boolean

    Whether the service is running in legacy compatibility mode.

    +
  • mount: string

    Service mount point, relative to the database.

    +
  • Optional name?: string

    Name defined in the service manifest.

    +
  • provides: Record<string, string>

    Service dependencies the service expects to be able to match as a mapping +from dependency names to versions the service is compatible with.

    +
  • Optional version?: string

    Version defined in the service manifest.

    +
\ No newline at end of file diff --git a/9.0.0/types/database.ServiceTestDefaultReport.html b/9.0.0/types/database.ServiceTestDefaultReport.html new file mode 100644 index 00000000..b18ecedf --- /dev/null +++ b/9.0.0/types/database.ServiceTestDefaultReport.html @@ -0,0 +1,2 @@ +ServiceTestDefaultReport | arangojs - v9.0.0

Type alias ServiceTestDefaultReport

ServiceTestDefaultReport: {
    failures: ServiceTestDefaultTest[];
    passes: ServiceTestDefaultTest[];
    pending: ServiceTestDefaultTest[];
    stats: ServiceTestStats;
    tests: ServiceTestDefaultTest[];
}

Test results for a Foxx service's tests using the default reporter.

+
\ No newline at end of file diff --git a/9.0.0/types/database.ServiceTestDefaultTest.html b/9.0.0/types/database.ServiceTestDefaultTest.html new file mode 100644 index 00000000..29da10ac --- /dev/null +++ b/9.0.0/types/database.ServiceTestDefaultTest.html @@ -0,0 +1,2 @@ +ServiceTestDefaultTest | arangojs - v9.0.0

Type alias ServiceTestDefaultTest

ServiceTestDefaultTest: {
    duration: number;
    err?: string;
    fullTitle: string;
    title: string;
}

Test results for a single test case using the default reporter.

+

Type declaration

  • duration: number
  • Optional err?: string
  • fullTitle: string
  • title: string
\ No newline at end of file diff --git a/9.0.0/types/database.ServiceTestStats.html b/9.0.0/types/database.ServiceTestStats.html new file mode 100644 index 00000000..c44d8133 --- /dev/null +++ b/9.0.0/types/database.ServiceTestStats.html @@ -0,0 +1,7 @@ +ServiceTestStats | arangojs - v9.0.0

Type alias ServiceTestStats

ServiceTestStats: {
    duration: number;
    failures: number;
    passes: number;
    pending: number;
    tests: number;
}

Test stats for a Foxx service's tests.

+

Type declaration

  • duration: number

    Total test duration in milliseconds.

    +
  • failures: number

    Number of tests that failed.

    +
  • passes: number

    Number of tests that ran successfully.

    +
  • pending: number

    Number of tests skipped or not executed.

    +
  • tests: number

    Total number of tests found.

    +
\ No newline at end of file diff --git a/9.0.0/types/database.ServiceTestStreamReport.html b/9.0.0/types/database.ServiceTestStreamReport.html new file mode 100644 index 00000000..0a6c7b43 --- /dev/null +++ b/9.0.0/types/database.ServiceTestStreamReport.html @@ -0,0 +1,2 @@ +ServiceTestStreamReport | arangojs - v9.0.0

Type alias ServiceTestStreamReport

ServiceTestStreamReport: (["start", {
    total: number;
}] | ["pass", ServiceTestStreamTest] | ["fail", ServiceTestStreamTest] | ["end", ServiceTestStats])[]

Test results for a Foxx service's tests using the stream reporter.

+
\ No newline at end of file diff --git a/9.0.0/types/database.ServiceTestStreamTest.html b/9.0.0/types/database.ServiceTestStreamTest.html new file mode 100644 index 00000000..1a0a7148 --- /dev/null +++ b/9.0.0/types/database.ServiceTestStreamTest.html @@ -0,0 +1,2 @@ +ServiceTestStreamTest | arangojs - v9.0.0

Type alias ServiceTestStreamTest

ServiceTestStreamTest: {
    duration: number;
    err?: string;
    fullTitle: string;
    title: string;
}

Test results for a single test case using the stream reporter.

+

Type declaration

  • duration: number
  • Optional err?: string
  • fullTitle: string
  • title: string
\ No newline at end of file diff --git a/9.0.0/types/database.ServiceTestSuite.html b/9.0.0/types/database.ServiceTestSuite.html new file mode 100644 index 00000000..ed11106f --- /dev/null +++ b/9.0.0/types/database.ServiceTestSuite.html @@ -0,0 +1,2 @@ +ServiceTestSuite | arangojs - v9.0.0

Type alias ServiceTestSuite

ServiceTestSuite: {
    suites: ServiceTestSuite[];
    tests: ServiceTestSuiteTest[];
    title: string;
}

Test results for a single test suite using the suite reporter.

+

Type declaration

\ No newline at end of file diff --git a/9.0.0/types/database.ServiceTestSuiteReport.html b/9.0.0/types/database.ServiceTestSuiteReport.html new file mode 100644 index 00000000..8330760e --- /dev/null +++ b/9.0.0/types/database.ServiceTestSuiteReport.html @@ -0,0 +1,2 @@ +ServiceTestSuiteReport | arangojs - v9.0.0

Type alias ServiceTestSuiteReport

ServiceTestSuiteReport: {
    stats: ServiceTestStats;
    suites: ServiceTestSuite[];
    tests: ServiceTestSuiteTest[];
}

Test results for a Foxx service's tests using the suite reporter.

+

Type declaration

\ No newline at end of file diff --git a/9.0.0/types/database.ServiceTestSuiteTest.html b/9.0.0/types/database.ServiceTestSuiteTest.html new file mode 100644 index 00000000..fa3b5a49 --- /dev/null +++ b/9.0.0/types/database.ServiceTestSuiteTest.html @@ -0,0 +1,2 @@ +ServiceTestSuiteTest | arangojs - v9.0.0

Type alias ServiceTestSuiteTest

ServiceTestSuiteTest: {
    duration: number;
    err?: any;
    result: "pending" | "pass" | "fail";
    title: string;
}

Test results for a single test case using the suite reporter.

+

Type declaration

  • duration: number
  • Optional err?: any
  • result: "pending" | "pass" | "fail"
  • title: string
\ No newline at end of file diff --git a/9.0.0/types/database.ServiceTestTapReport.html b/9.0.0/types/database.ServiceTestTapReport.html new file mode 100644 index 00000000..9b36b7c1 --- /dev/null +++ b/9.0.0/types/database.ServiceTestTapReport.html @@ -0,0 +1,2 @@ +ServiceTestTapReport | arangojs - v9.0.0

Type alias ServiceTestTapReport

ServiceTestTapReport: string[]

Test results for a Foxx service's tests in TAP format.

+
\ No newline at end of file diff --git a/9.0.0/types/database.ServiceTestXunitReport.html b/9.0.0/types/database.ServiceTestXunitReport.html new file mode 100644 index 00000000..d710b1c1 --- /dev/null +++ b/9.0.0/types/database.ServiceTestXunitReport.html @@ -0,0 +1,3 @@ +ServiceTestXunitReport | arangojs - v9.0.0

Type alias ServiceTestXunitReport

ServiceTestXunitReport: ["testsuite", {
    errors: number;
    failures: number;
    skip: number;
    tests: number;
    time: number;
    timestamp: number;
}, ...ServiceTestXunitTest[]]

Test results for a Foxx service's tests in XUnit format using the JSONML +representation.

+

Type declaration

  • errors: number
  • failures: number
  • skip: number
  • tests: number
  • time: number
  • timestamp: number
\ No newline at end of file diff --git a/9.0.0/types/database.ServiceTestXunitTest.html b/9.0.0/types/database.ServiceTestXunitTest.html new file mode 100644 index 00000000..303c0a11 --- /dev/null +++ b/9.0.0/types/database.ServiceTestXunitTest.html @@ -0,0 +1,3 @@ +ServiceTestXunitTest | arangojs - v9.0.0

Type alias ServiceTestXunitTest

ServiceTestXunitTest: ["testcase", {
    classname: string;
    name: string;
    time: number;
}] | ["testcase", {
    classname: string;
    name: string;
    time: number;
}, ["failure", {
    message: string;
    type: string;
}, string]]

Test results for a single test case in XUnit format using the JSONML +representation.

+
\ No newline at end of file diff --git a/9.0.0/types/database.SingleExplainResult.html b/9.0.0/types/database.SingleExplainResult.html new file mode 100644 index 00000000..d0e5b3f3 --- /dev/null +++ b/9.0.0/types/database.SingleExplainResult.html @@ -0,0 +1,6 @@ +SingleExplainResult | arangojs - v9.0.0

Type alias SingleExplainResult

SingleExplainResult: {
    cacheable: boolean;
    plan: ExplainPlan;
    stats: ExplainStats;
    warnings: {
        code: number;
        message: string;
    }[];
}

Result of explaining a query with a single plan.

+

Type declaration

  • cacheable: boolean

    Whether it would be possible to cache the query.

    +
  • plan: ExplainPlan

    Query plan.

    +
  • stats: ExplainStats

    Optimizer statistics for the explained query.

    +
  • warnings: {
        code: number;
        message: string;
    }[]

    Warnings encountered while planning the query execution.

    +
\ No newline at end of file diff --git a/9.0.0/types/database.SingleServiceDependency.html b/9.0.0/types/database.SingleServiceDependency.html new file mode 100644 index 00000000..095b0eff --- /dev/null +++ b/9.0.0/types/database.SingleServiceDependency.html @@ -0,0 +1,10 @@ +SingleServiceDependency | arangojs - v9.0.0

Type alias SingleServiceDependency

SingleServiceDependency: {
    current?: string;
    description?: string;
    multiple: false;
    name: string;
    required: boolean;
    title: string;
    version: string;
}

Object describing a single-service dependency defined by a Foxx service.

+

Type declaration

  • Optional current?: string

    Current mount point the dependency is resolved to.

    +
  • Optional description?: string

    Human-readable description of the dependency.

    +
  • multiple: false

    Whether this is a multi-service dependency.

    +
  • name: string

    Name of the service the dependency expects to match.

    +
  • required: boolean

    Whether the dependency must be matched in order for the service +to be operational.

    +
  • title: string

    Formatted name of the dependency.

    +
  • version: string

    Version of the service the dependency expects to match.

    +
\ No newline at end of file diff --git a/9.0.0/types/database.SwaggerJson.html b/9.0.0/types/database.SwaggerJson.html new file mode 100644 index 00000000..7f411d5a --- /dev/null +++ b/9.0.0/types/database.SwaggerJson.html @@ -0,0 +1,2 @@ +SwaggerJson | arangojs - v9.0.0

Type alias SwaggerJson

SwaggerJson: {
    info: {
        description: string;
        license: string;
        title: string;
        version: string;
    };
    path: {
        [key: string]: any;
    };
    [key: string]: any;
}

OpenAPI 2.0 description of a Foxx service.

+

Type declaration

  • [key: string]: any
  • info: {
        description: string;
        license: string;
        title: string;
        version: string;
    }
    • description: string
    • license: string
    • title: string
    • version: string
  • path: {
        [key: string]: any;
    }
    • [key: string]: any
\ No newline at end of file diff --git a/9.0.0/types/database.TransactionCollections.html b/9.0.0/types/database.TransactionCollections.html new file mode 100644 index 00000000..44eba3cf --- /dev/null +++ b/9.0.0/types/database.TransactionCollections.html @@ -0,0 +1,9 @@ +TransactionCollections | arangojs - v9.0.0

Type alias TransactionCollections

TransactionCollections: {
    exclusive?: (string | ArangoCollection)[] | string | ArangoCollection;
    read?: (string | ArangoCollection)[] | string | ArangoCollection;
    write?: (string | ArangoCollection)[] | string | ArangoCollection;
}

Collections involved in a transaction.

+

Type declaration

  • Optional exclusive?: (string | ArangoCollection)[] | string | ArangoCollection

    An array of collections or a single collection that will be read from or +written to during the transaction with no other writes being able to run +in parallel.

    +
  • Optional read?: (string | ArangoCollection)[] | string | ArangoCollection

    An array of collections or a single collection that will be read from +during the transaction.

    +
  • Optional write?: (string | ArangoCollection)[] | string | ArangoCollection

    An array of collections or a single collection that will be read from or +written to during the transaction.

    +
\ No newline at end of file diff --git a/9.0.0/types/database.TransactionDetails.html b/9.0.0/types/database.TransactionDetails.html new file mode 100644 index 00000000..bf04d954 --- /dev/null +++ b/9.0.0/types/database.TransactionDetails.html @@ -0,0 +1,5 @@ +TransactionDetails | arangojs - v9.0.0

Type alias TransactionDetails

TransactionDetails: {
    id: string;
    state: "running" | "committed" | "aborted";
}

Details for a transaction.

+

See also transaction.TransactionStatus.

+

Type declaration

  • id: string

    Unique identifier of the transaction.

    +
  • state: "running" | "committed" | "aborted"

    Status (or "state") of the transaction.

    +
\ No newline at end of file diff --git a/9.0.0/types/database.TransactionOptions.html b/9.0.0/types/database.TransactionOptions.html new file mode 100644 index 00000000..9a1bb348 --- /dev/null +++ b/9.0.0/types/database.TransactionOptions.html @@ -0,0 +1,18 @@ +TransactionOptions | arangojs - v9.0.0

Type alias TransactionOptions

TransactionOptions: {
    allowDirtyRead?: boolean;
    allowImplicit?: boolean;
    lockTimeout?: number;
    maxTransactionSize?: number;
    skipFastLockRound?: boolean;
    waitForSync?: boolean;
}

Options for how the transaction should be performed.

+

Type declaration

  • Optional allowDirtyRead?: boolean

    If set to true, the request will explicitly permit ArangoDB to return a +potentially dirty or stale result and arangojs will load balance the +request without distinguishing between leaders and followers.

    +
  • Optional allowImplicit?: boolean

    Whether the transaction may read from collections not specified for this +transaction. If set to false, accessing any collections not specified +will result in the transaction being aborted to avoid potential deadlocks.

    +

    Default: true.

    +
  • Optional lockTimeout?: number

    Determines how long the database will wait while attempting to gain locks +on collections used by the transaction before timing out.

    +
  • Optional maxTransactionSize?: number

    Determines the transaction size limit in bytes.

    +
  • Optional skipFastLockRound?: boolean

    If set to true, the fast lock round will be skipped, which makes each +locking operation take longer but guarantees deterministic locking order +and may avoid deadlocks when many concurrent transactions are queued and +try to access the same collection with an exclusive lock.

    +
  • Optional waitForSync?: boolean

    Determines whether to force the transaction to write all data to disk +before returning.

    +
\ No newline at end of file diff --git a/9.0.0/types/database.UninstallServiceOptions.html b/9.0.0/types/database.UninstallServiceOptions.html new file mode 100644 index 00000000..5c284440 --- /dev/null +++ b/9.0.0/types/database.UninstallServiceOptions.html @@ -0,0 +1,9 @@ +UninstallServiceOptions | arangojs - v9.0.0

Type alias UninstallServiceOptions

UninstallServiceOptions: {
    force?: boolean;
    teardown?: boolean;
}

Options for uninstalling a service.

+

See Database#uninstallService.

+

Type declaration

  • Optional force?: boolean

    If set to true, uninstalling a service that does not already exist +will be considered successful.

    +

    Default: false

    +
  • Optional teardown?: boolean

    Whether the service's "teardown" script should be executed +prior to removing that service.

    +

    Default: true

    +
\ No newline at end of file diff --git a/9.0.0/types/database.UpgradeServiceOptions.html b/9.0.0/types/database.UpgradeServiceOptions.html new file mode 100644 index 00000000..d300e5a9 --- /dev/null +++ b/9.0.0/types/database.UpgradeServiceOptions.html @@ -0,0 +1,21 @@ +UpgradeServiceOptions | arangojs - v9.0.0

Type alias UpgradeServiceOptions

UpgradeServiceOptions: {
    configuration?: Record<string, any>;
    dependencies?: Record<string, string>;
    development?: boolean;
    force?: boolean;
    legacy?: boolean;
    setup?: boolean;
    teardown?: boolean;
}

Options for upgrading a service.

+

See Database#upgradeService.

+

Type declaration

  • Optional configuration?: Record<string, any>

    An object mapping configuration option names to values.

    +

    See also Database#getServiceConfiguration.

    +
  • Optional dependencies?: Record<string, string>

    An object mapping dependency aliases to mount points.

    +

    See also Database#getServiceDependencies.

    +
  • Optional development?: boolean

    Whether the service should be installed in development mode.

    +

    See also Database#setServiceDevelopmentMode.

    +

    Default: false

    +
  • Optional force?: boolean

    Unless set to true, upgrading a service that does not already exist will +fall back to installing the new service.

    +

    Default: false

    +
  • Optional legacy?: boolean

    Whether the service should be installed in legacy compatibility mode

    +

    This overrides the engines option in the service manifest (if any).

    +

    Default: false

    +
  • Optional setup?: boolean

    Whether the "setup" script should be executed.

    +

    Default: true

    +
  • Optional teardown?: boolean

    Whether the existing service's "teardown" script should be executed +prior to upgrading that service.

    +

    Default: false

    +
\ No newline at end of file diff --git a/9.0.0/types/database.UserAccessLevelOptions.html b/9.0.0/types/database.UserAccessLevelOptions.html new file mode 100644 index 00000000..0d1b5bcf --- /dev/null +++ b/9.0.0/types/database.UserAccessLevelOptions.html @@ -0,0 +1,7 @@ +UserAccessLevelOptions | arangojs - v9.0.0

Type alias UserAccessLevelOptions

UserAccessLevelOptions: {
    collection?: ArangoCollection | string;
    database?: Database | string;
}

Options for accessing or manipulating access levels.

+

Type declaration

  • Optional collection?: ArangoCollection | string

    The collection to access or manipulate the access level of.

    +
  • Optional database?: Database | string

    The database to access or manipulate the access level of.

    +

    If collection is an ArangoCollection, this option defaults to the +database the collection is contained in. Otherwise this option defaults to +the current database.

    +
\ No newline at end of file diff --git a/9.0.0/types/database.UserOptions.html b/9.0.0/types/database.UserOptions.html new file mode 100644 index 00000000..bdc87879 --- /dev/null +++ b/9.0.0/types/database.UserOptions.html @@ -0,0 +1,7 @@ +UserOptions | arangojs - v9.0.0

Type alias UserOptions

UserOptions: {
    active?: boolean;
    extra?: Record<string, any>;
    passwd: string;
}

Options for modifying an ArangoDB user.

+

Type declaration

  • Optional active?: boolean

    Whether the ArangoDB user account is enabled and can authenticate.

    +

    Default: true

    +
  • Optional extra?: Record<string, any>

    Additional information to store about this user.

    +

    Default: {}

    +
  • passwd: string

    Password the ArangoDB user will use for authentication.

    +
\ No newline at end of file diff --git a/9.0.0/types/database.VersionInfo.html b/9.0.0/types/database.VersionInfo.html new file mode 100644 index 00000000..cac9e199 --- /dev/null +++ b/9.0.0/types/database.VersionInfo.html @@ -0,0 +1,6 @@ +VersionInfo | arangojs - v9.0.0

Type alias VersionInfo

VersionInfo: {
    details?: {
        [key: string]: string;
    };
    license: "community" | "enterprise";
    server: string;
    version: string;
}

Result of retrieving database version information.

+

Type declaration

  • Optional details?: {
        [key: string]: string;
    }

    Additional information about the ArangoDB server.

    +
    • [key: string]: string
  • license: "community" | "enterprise"

    ArangoDB license type or "edition".

    +
  • server: string

    Value identifying the server type, i.e. "arango".

    +
  • version: string

    ArangoDB server version.

    +
\ No newline at end of file diff --git a/9.0.0/types/documents.Document.html b/9.0.0/types/documents.Document.html new file mode 100644 index 00000000..b257673e --- /dev/null +++ b/9.0.0/types/documents.Document.html @@ -0,0 +1,2 @@ +Document | arangojs - v9.0.0

Type alias Document<T>

Document<T>: T & DocumentMetadata & Partial<EdgeMetadata>

Type representing a document stored in a collection.

+

Type Parameters

  • T extends Record<string, any> = any
\ No newline at end of file diff --git a/9.0.0/types/documents.DocumentData.html b/9.0.0/types/documents.DocumentData.html new file mode 100644 index 00000000..3975f30e --- /dev/null +++ b/9.0.0/types/documents.DocumentData.html @@ -0,0 +1,2 @@ +DocumentData | arangojs - v9.0.0

Type alias DocumentData<T>

DocumentData<T>: T & Partial<DocumentMetadata> & Partial<EdgeMetadata>

Type representing an object that can be stored in a collection.

+

Type Parameters

  • T extends Record<string, any> = any
\ No newline at end of file diff --git a/9.0.0/types/documents.DocumentMetadata.html b/9.0.0/types/documents.DocumentMetadata.html new file mode 100644 index 00000000..2987bc80 --- /dev/null +++ b/9.0.0/types/documents.DocumentMetadata.html @@ -0,0 +1,7 @@ +DocumentMetadata | arangojs - v9.0.0

Type alias DocumentMetadata

DocumentMetadata: {
    _id: string;
    _key: string;
    _rev: string;
}

Common ArangoDB metadata properties of a document.

+

Type declaration

  • _id: string

    Unique ID of the document, which is composed of the collection name +and the document _key.

    +
  • _key: string

    Key of the document, which uniquely identifies the document within its +collection.

    +
  • _rev: string

    Revision of the document data.

    +
\ No newline at end of file diff --git a/9.0.0/types/documents.DocumentSelector.html b/9.0.0/types/documents.DocumentSelector.html new file mode 100644 index 00000000..8e15bc4d --- /dev/null +++ b/9.0.0/types/documents.DocumentSelector.html @@ -0,0 +1,5 @@ +DocumentSelector | arangojs - v9.0.0

Type alias DocumentSelector

DocumentSelector: ObjectWithId | ObjectWithKey | string

A value that can be used to identify a document within a collection in +arangojs methods, i.e. a partial ArangoDB document or the value of a +document's _key or _id.

+

See documents.DocumentMetadata.

+
\ No newline at end of file diff --git a/9.0.0/types/documents.Edge.html b/9.0.0/types/documents.Edge.html new file mode 100644 index 00000000..0f6784ab --- /dev/null +++ b/9.0.0/types/documents.Edge.html @@ -0,0 +1,2 @@ +Edge | arangojs - v9.0.0

Type alias Edge<T>

Type representing an edge document stored in an edge collection.

+

Type Parameters

  • T extends Record<string, any> = any
\ No newline at end of file diff --git a/9.0.0/types/documents.EdgeData.html b/9.0.0/types/documents.EdgeData.html new file mode 100644 index 00000000..6e7094ba --- /dev/null +++ b/9.0.0/types/documents.EdgeData.html @@ -0,0 +1,2 @@ +EdgeData | arangojs - v9.0.0

Type alias EdgeData<T>

EdgeData<T>: T & Partial<DocumentMetadata> & EdgeMetadata

Type representing an object that can be stored in an edge collection.

+

Type Parameters

  • T extends Record<string, any> = any
\ No newline at end of file diff --git a/9.0.0/types/documents.EdgeMetadata.html b/9.0.0/types/documents.EdgeMetadata.html new file mode 100644 index 00000000..18b9f492 --- /dev/null +++ b/9.0.0/types/documents.EdgeMetadata.html @@ -0,0 +1,4 @@ +EdgeMetadata | arangojs - v9.0.0

Type alias EdgeMetadata

EdgeMetadata: {
    _from: string;
    _to: string;
}

ArangoDB metadata defining the relations of an edge document.

+

Type declaration

  • _from: string

    Unique ID of the document that acts as the edge's start vertex.

    +
  • _to: string

    Unique ID of the document that acts as the edge's end vertex.

    +
\ No newline at end of file diff --git a/9.0.0/types/documents.ObjectWithId.html b/9.0.0/types/documents.ObjectWithId.html new file mode 100644 index 00000000..53ec4a4e --- /dev/null +++ b/9.0.0/types/documents.ObjectWithId.html @@ -0,0 +1,3 @@ +ObjectWithId | arangojs - v9.0.0

Type alias ObjectWithId

ObjectWithId: {
    _id: string;
    [key: string]: any;
}

An object with an ArangoDB document _id property.

+

See documents.DocumentMetadata.

+

Type declaration

  • [key: string]: any
  • _id: string
\ No newline at end of file diff --git a/9.0.0/types/documents.ObjectWithKey.html b/9.0.0/types/documents.ObjectWithKey.html new file mode 100644 index 00000000..96019c7e --- /dev/null +++ b/9.0.0/types/documents.ObjectWithKey.html @@ -0,0 +1,3 @@ +ObjectWithKey | arangojs - v9.0.0

Type alias ObjectWithKey

ObjectWithKey: {
    _key: string;
    [key: string]: any;
}

An object with an ArangoDB document _key property.

+

See documents.DocumentMetadata.

+

Type declaration

  • [key: string]: any
  • _key: string
\ No newline at end of file diff --git a/9.0.0/types/documents.Patch.html b/9.0.0/types/documents.Patch.html new file mode 100644 index 00000000..e0c02f41 --- /dev/null +++ b/9.0.0/types/documents.Patch.html @@ -0,0 +1,5 @@ +Patch | arangojs - v9.0.0

Type alias Patch<T>

Patch<T>: {
    [K in keyof T]?: T[K] | Patch<T[K]>
}

Type representing patch data for a given object type to represent a payload +ArangoDB can apply in a document PATCH request (i.e. a partial update).

+

This differs from Partial in that it also applies itself to any nested +objects recursively.

+

Type Parameters

  • T = Record<string, any>
\ No newline at end of file diff --git a/9.0.0/types/foxx_manifest.Configuration.html b/9.0.0/types/foxx_manifest.Configuration.html new file mode 100644 index 00000000..7815f5b2 --- /dev/null +++ b/9.0.0/types/foxx_manifest.Configuration.html @@ -0,0 +1,6 @@ +Configuration | arangojs - v9.0.0

Type alias Configuration

Configuration: {
    default?: any;
    description?: string;
    required?: boolean;
    type: "integer" | "boolean" | "number" | "string" | "json" | "password" | "int" | "bool";
}

A configuration option.

+

Type declaration

  • Optional default?: any

    The default value for this option in plain JSON. Can be omitted to provide no default value.

    +
  • Optional description?: string

    A human-readable description of the option.

    +
  • Optional required?: boolean

    Whether the service can not function without this option. Defaults to true unless a default value is provided.

    +
  • type: "integer" | "boolean" | "number" | "string" | "json" | "password" | "int" | "bool"

    The type of value expected for this option.

    +
\ No newline at end of file diff --git a/9.0.0/types/foxx_manifest.Dependency.html b/9.0.0/types/foxx_manifest.Dependency.html new file mode 100644 index 00000000..c1e97acd --- /dev/null +++ b/9.0.0/types/foxx_manifest.Dependency.html @@ -0,0 +1,7 @@ +Dependency | arangojs - v9.0.0

Type alias Dependency

Dependency: {
    description?: string;
    multiple?: boolean;
    name?: string;
    required?: boolean;
    version?: string;
}

A service dependency.

+

Type declaration

  • Optional description?: string

    A description of how the API is used or why it is needed.

    +
  • Optional multiple?: boolean

    Whether the dependency can be specified more than once.

    +
  • Optional name?: string

    Name of the API the service expects.

    +
  • Optional required?: boolean

    Whether the service can not function without this dependency.

    +
  • Optional version?: string

    The semantic version ranges of the API the service expects.

    +
\ No newline at end of file diff --git a/9.0.0/types/foxx_manifest.File.html b/9.0.0/types/foxx_manifest.File.html new file mode 100644 index 00000000..51c0935e --- /dev/null +++ b/9.0.0/types/foxx_manifest.File.html @@ -0,0 +1,5 @@ +File | arangojs - v9.0.0
File: {
    gzip?: boolean;
    path: string;
    type?: string;
}

A service file asset.

+

Type declaration

  • Optional gzip?: boolean

    If set to true the file will be served with gzip-encoding if supported by the client. This can be useful when serving text files like client-side JavaScript, CSS or HTML.

    +
  • path: string

    Relative path of the file or folder within the service.

    +
  • Optional type?: string

    The MIME content type of the file. Defaults to an intelligent guess based on the filename's extension.

    +
\ No newline at end of file diff --git a/9.0.0/types/foxx_manifest.FoxxManifest.html b/9.0.0/types/foxx_manifest.FoxxManifest.html new file mode 100644 index 00000000..7e3ad38b --- /dev/null +++ b/9.0.0/types/foxx_manifest.FoxxManifest.html @@ -0,0 +1,20 @@ +FoxxManifest | arangojs - v9.0.0

Type alias FoxxManifest

FoxxManifest: {
    author?: string;
    configuration?: Record<string, Configuration>;
    contributors?: string[];
    defaultDocument?: string;
    dependencies?: Record<string, string | Dependency>;
    description?: string;
    engines?: Record<string, string> & {
        arangodb?: string;
    };
    files?: Record<string, string | File>;
    keywords?: string[];
    lib?: string;
    license?: string;
    main?: string;
    name?: string;
    provides?: Record<string, string>;
    scripts?: Record<string, string>;
    tests?: string | string[];
    thumbnail?: string;
    version?: string;
}

Schema for ArangoDB Foxx service manifests.

+

Type declaration

  • Optional author?: string

    The full name of the author of the service (i.e. you). This will be shown in the web interface.

    +
  • Optional configuration?: Record<string, Configuration>

    An object defining the configuration options this service requires.

    +
  • Optional contributors?: string[]

    A list of names of people that have contributed to the development of the service in some way. This will be shown in the web interface.

    +
  • Optional defaultDocument?: string

    If specified, the / (root) route of the service will automatically redirect to the given relative path, e.g. "index.html".

    +
  • Optional dependencies?: Record<string, string | Dependency>

    The dependencies this service uses, i.e. which APIs its dependencies need to be compatible with.

    +
  • Optional description?: string

    A human-readable description of the service. This will be shown in the web interface.

    +
  • Optional engines?: Record<string, string> & {
        arangodb?: string;
    }

    An object indicating the semantic version ranges of ArangoDB (or compatible environments) the service will be compatible with.

    +
  • Optional files?: Record<string, string | File>

    An object defining file assets served by this service.

    +
  • Optional keywords?: string[]

    A list of keywords that help categorize this service. This is used by the Foxx Store installers to organize services.

    +
  • Optional lib?: string

    The relative path to the Foxx JavaScript files in the service, e.g. "lib". Defaults to the folder containing this manifest.

    +
  • Optional license?: string

    A string identifying the license under which the service is published, ideally in the form of an SPDX license identifier. This will be shown in the web interface.

    +
  • Optional main?: string

    The relative path to the main entry point of this service (relative to lib), e.g. "index.js".

    +
  • Optional name?: string

    The name of the Foxx service. This will be shown in the web interface.

    +
  • Optional provides?: Record<string, string>

    The dependencies this provides, i.e. which APIs it claims to be compatible with.

    +
  • Optional scripts?: Record<string, string>

    An object defining named scripts provided by this service, which can either be used directly or as queued jobs by other services.

    +
  • Optional tests?: string | string[]

    A path/pattern or list of paths/patterns of JavaScript tests provided for this service.

    +
  • Optional thumbnail?: string

    The filename of a thumbnail that will be used alongside the service in the web interface. This should be a JPEG or PNG image that looks good at sizes 50x50 and 160x160.

    +
  • Optional version?: string

    The version number of the Foxx service. The version number must follow the semantic versioning format. This will be shown in the web interface.

    +
\ No newline at end of file diff --git a/9.0.0/types/graph.AddEdgeDefinitionOptions.html b/9.0.0/types/graph.AddEdgeDefinitionOptions.html new file mode 100644 index 00000000..715e17d1 --- /dev/null +++ b/9.0.0/types/graph.AddEdgeDefinitionOptions.html @@ -0,0 +1,3 @@ +AddEdgeDefinitionOptions | arangojs - v9.0.0

Type alias AddEdgeDefinitionOptions

AddEdgeDefinitionOptions: {
    satellites?: (string | ArangoCollection)[];
}

Type declaration

  • Optional satellites?: (string | ArangoCollection)[]

    (Enterprise Edition cluster only.) Collections to be included in a Hybrid +SmartGraph.

    +
\ No newline at end of file diff --git a/9.0.0/types/graph.AddVertexCollectionOptions.html b/9.0.0/types/graph.AddVertexCollectionOptions.html new file mode 100644 index 00000000..da442c5c --- /dev/null +++ b/9.0.0/types/graph.AddVertexCollectionOptions.html @@ -0,0 +1,3 @@ +AddVertexCollectionOptions | arangojs - v9.0.0

Type alias AddVertexCollectionOptions

AddVertexCollectionOptions: {
    satellites?: (string | ArangoCollection)[];
}

Type declaration

  • Optional satellites?: (string | ArangoCollection)[]

    (Enterprise Edition cluster only.) Collections to be included in a Hybrid +SmartGraph.

    +
\ No newline at end of file diff --git a/9.0.0/types/graph.CreateGraphOptions.html b/9.0.0/types/graph.CreateGraphOptions.html new file mode 100644 index 00000000..f16b0c6e --- /dev/null +++ b/9.0.0/types/graph.CreateGraphOptions.html @@ -0,0 +1,25 @@ +CreateGraphOptions | arangojs - v9.0.0

Type alias CreateGraphOptions

CreateGraphOptions: {
    isDisjoint?: boolean;
    isSmart?: boolean;
    numberOfShards?: number;
    orphanCollections?: (string | ArangoCollection)[] | string | ArangoCollection;
    replicationFactor?: number | "satellite";
    satellites?: (string | ArangoCollection)[];
    smartGraphAttribute?: string;
    waitForSync?: boolean;
    writeConcern?: number;
}

Option for creating a graph.

+

Type declaration

  • Optional isDisjoint?: boolean

    (Enterprise Edition cluster only.) If set to true, the graph will be +created as a Disjoint SmartGraph.

    +

    Default: false

    +
  • Optional isSmart?: boolean

    (Enterprise Edition cluster only.) If set to true, the graph will be +created as a SmartGraph.

    +

    Default: false

    +
  • Optional numberOfShards?: number

    (Cluster only.) Number of shards that is used for every collection +within this graph.

    +

    Has no effect when replicationFactor is set to "satellite".

    +
  • Optional orphanCollections?: (string | ArangoCollection)[] | string | ArangoCollection

    Additional vertex collections. Documents within these collections do not +have edges within this graph.

    +
  • Optional replicationFactor?: number | "satellite"

    (Cluster only.) Replication factor used when initially creating +collections for this graph.

    +

    Default: 1

    +
  • Optional satellites?: (string | ArangoCollection)[]

    (Enterprise Edition cluster only.) Collections to be included in a Hybrid +SmartGraph.

    +
  • Optional smartGraphAttribute?: string

    (Enterprise Edition cluster only.) Attribute containing the shard key +value to use for smart sharding.

    +
  • Optional waitForSync?: boolean

    If set to true, the request will wait until all modifications have been +synchronized to disk before returning successfully.

    +

    Default: false

    +
  • Optional writeConcern?: number

    (Cluster only.) Write concern for new collections in the graph.

    +

    Has no effect when replicationFactor is set to "satellite".

    +
\ No newline at end of file diff --git a/9.0.0/types/graph.EdgeDefinition.html b/9.0.0/types/graph.EdgeDefinition.html new file mode 100644 index 00000000..bb07f625 --- /dev/null +++ b/9.0.0/types/graph.EdgeDefinition.html @@ -0,0 +1,5 @@ +EdgeDefinition | arangojs - v9.0.0

Type alias EdgeDefinition

EdgeDefinition: {
    collection: string;
    from: string[];
    to: string[];
}

Definition of a relation in a graph.Graph.

+

Type declaration

  • collection: string

    Name of the collection containing the edges.

    +
  • from: string[]

    Array of names of collections containing the start vertices.

    +
  • to: string[]

    Array of names of collections containing the end vertices.

    +
\ No newline at end of file diff --git a/9.0.0/types/graph.EdgeDefinitionOptions.html b/9.0.0/types/graph.EdgeDefinitionOptions.html new file mode 100644 index 00000000..78a1d19d --- /dev/null +++ b/9.0.0/types/graph.EdgeDefinitionOptions.html @@ -0,0 +1,5 @@ +EdgeDefinitionOptions | arangojs - v9.0.0

Type alias EdgeDefinitionOptions

EdgeDefinitionOptions: {
    collection: string | ArangoCollection;
    from: (string | ArangoCollection)[] | string | ArangoCollection;
    to: (string | ArangoCollection)[] | string | ArangoCollection;
}

An edge definition used to define a collection of edges in a graph.Graph.

+

Type declaration

\ No newline at end of file diff --git a/9.0.0/types/graph.GraphCollectionInsertOptions.html b/9.0.0/types/graph.GraphCollectionInsertOptions.html new file mode 100644 index 00000000..36d98502 --- /dev/null +++ b/9.0.0/types/graph.GraphCollectionInsertOptions.html @@ -0,0 +1,7 @@ +GraphCollectionInsertOptions | arangojs - v9.0.0

Type alias GraphCollectionInsertOptions

GraphCollectionInsertOptions: {
    returnNew?: boolean;
    waitForSync?: boolean;
}

Options for inserting a document into a graph collection.

+

Type declaration

  • Optional returnNew?: boolean

    If set to true, the complete new document will be returned as the new +property on the result object.

    +

    Default: false

    +
  • Optional waitForSync?: boolean

    If set to true, data will be synchronized to disk before returning.

    +

    Default: false

    +
\ No newline at end of file diff --git a/9.0.0/types/graph.GraphCollectionReadOptions.html b/9.0.0/types/graph.GraphCollectionReadOptions.html new file mode 100644 index 00000000..76083643 --- /dev/null +++ b/9.0.0/types/graph.GraphCollectionReadOptions.html @@ -0,0 +1,12 @@ +GraphCollectionReadOptions | arangojs - v9.0.0

Type alias GraphCollectionReadOptions

GraphCollectionReadOptions: {
    allowDirtyRead?: boolean;
    graceful?: boolean;
    rev?: string;
}

Options for retrieving a document from a graph collection.

+

Type declaration

  • Optional allowDirtyRead?: boolean

    If set to true, the request will explicitly permit ArangoDB to return a +potentially dirty or stale result and arangojs will load balance the +request without distinguishing between leaders and followers.

    +

    Default: false

    +
  • Optional graceful?: boolean

    If set to true, null is returned instead of an exception being thrown +if the document does not exist.

    +

    Default: false

    +
  • Optional rev?: string

    If set to a document revision, the document will only be returned if its +_rev property matches this value.

    +

    See also documents.DocumentMetadata.

    +
\ No newline at end of file diff --git a/9.0.0/types/graph.GraphCollectionRemoveOptions.html b/9.0.0/types/graph.GraphCollectionRemoveOptions.html new file mode 100644 index 00000000..81b85725 --- /dev/null +++ b/9.0.0/types/graph.GraphCollectionRemoveOptions.html @@ -0,0 +1,10 @@ +GraphCollectionRemoveOptions | arangojs - v9.0.0

Type alias GraphCollectionRemoveOptions

GraphCollectionRemoveOptions: {
    returnOld?: boolean;
    rev?: string;
    waitForSync?: boolean;
}

Options for removing a document from a graph collection.

+

Type declaration

  • Optional returnOld?: boolean

    If set to true, the complete old document will be returned as the old +property on the result object.

    +

    Default: false

    +
  • Optional rev?: string

    If set to a document revision, the document will only be removed if its +_rev property matches this value.

    +

    See also documents.DocumentMetadata.

    +
  • Optional waitForSync?: boolean

    If set to true, data will be synchronized to disk before returning.

    +

    Default: false

    +
\ No newline at end of file diff --git a/9.0.0/types/graph.GraphCollectionReplaceOptions.html b/9.0.0/types/graph.GraphCollectionReplaceOptions.html new file mode 100644 index 00000000..219c48fe --- /dev/null +++ b/9.0.0/types/graph.GraphCollectionReplaceOptions.html @@ -0,0 +1,16 @@ +GraphCollectionReplaceOptions | arangojs - v9.0.0

Type alias GraphCollectionReplaceOptions

GraphCollectionReplaceOptions: {
    keepNull?: boolean;
    returnNew?: boolean;
    returnOld?: boolean;
    rev?: string;
    waitForSync?: boolean;
}

Options for replacing a document in a graph collection.

+

Type declaration

  • Optional keepNull?: boolean

    If set to false, properties with a value of null will be removed from +the new document.

    +

    Default: true

    +
  • Optional returnNew?: boolean

    If set to true, the complete new document will be returned as the new +property on the result object.

    +

    Default: false

    +
  • Optional returnOld?: boolean

    If set to true, the complete old document will be returned as the old +property on the result object.

    +

    Default: false

    +
  • Optional rev?: string

    If set to a document revision, the document will only be modified if its +_rev property matches this value.

    +

    See also documents.DocumentMetadata.

    +
  • Optional waitForSync?: boolean

    If set to true, data will be synchronized to disk before returning.

    +

    Default: false

    +
\ No newline at end of file diff --git a/9.0.0/types/graph.GraphInfo.html b/9.0.0/types/graph.GraphInfo.html new file mode 100644 index 00000000..0676c3ad --- /dev/null +++ b/9.0.0/types/graph.GraphInfo.html @@ -0,0 +1,19 @@ +GraphInfo | arangojs - v9.0.0

Type alias GraphInfo

GraphInfo: {
    edgeDefinitions: EdgeDefinition[];
    isDisjoint?: boolean;
    isSatellite?: boolean;
    isSmart?: boolean;
    name: string;
    numberOfShards?: number;
    orphanCollections: string[];
    replicationFactor?: number;
    smartGraphAttribute?: string;
    writeConcern?: number;
}

General information about a graph.

+

Type declaration

  • edgeDefinitions: EdgeDefinition[]

    Definitions for the relations of the graph.

    +
  • Optional isDisjoint?: boolean

    (Enterprise Edition cluster only.) If set to true, the graph has been +created as a Disjoint SmartGraph.

    +
  • Optional isSatellite?: boolean

    (Enterprise Edition cluster only.) If set to true, the graph is a +SatelliteGraph.

    +
  • Optional isSmart?: boolean

    (Enterprise Edition cluster only.) If set to true, the graph has been +created as a SmartGraph.

    +
  • name: string

    Name of the graph.

    +
  • Optional numberOfShards?: number

    (Cluster only.) Number of shards that is used for every collection +within this graph.

    +
  • orphanCollections: string[]

    Additional vertex collections. Documents within these collections do not +have edges within this graph.

    +
  • Optional replicationFactor?: number

    (Cluster only.) Replication factor used when initially creating +collections for this graph.

    +
  • Optional smartGraphAttribute?: string

    (Enterprise Edition cluster only.) Attribute containing the shard key +value to use for smart sharding.

    +
  • Optional writeConcern?: number

    (Cluster only.) Write concern for new collections in the graph.

    +
\ No newline at end of file diff --git a/9.0.0/types/graph.ReplaceEdgeDefinitionOptions.html b/9.0.0/types/graph.ReplaceEdgeDefinitionOptions.html new file mode 100644 index 00000000..434b6c32 --- /dev/null +++ b/9.0.0/types/graph.ReplaceEdgeDefinitionOptions.html @@ -0,0 +1,3 @@ +ReplaceEdgeDefinitionOptions | arangojs - v9.0.0

Type alias ReplaceEdgeDefinitionOptions

ReplaceEdgeDefinitionOptions: {
    satellites?: string[];
}

Type declaration

  • Optional satellites?: string[]

    (Enterprise Edition cluster only.) Collections to be included in a Hybrid +SmartGraph.

    +
\ No newline at end of file diff --git a/9.0.0/types/indexes.EnsureGeoIndexOptions.html b/9.0.0/types/indexes.EnsureGeoIndexOptions.html new file mode 100644 index 00000000..d96c8f02 --- /dev/null +++ b/9.0.0/types/indexes.EnsureGeoIndexOptions.html @@ -0,0 +1,31 @@ +EnsureGeoIndexOptions | arangojs - v9.0.0

Type alias EnsureGeoIndexOptions

EnsureGeoIndexOptions: {
    fields: [string, string];
    geoJson?: false;
    inBackground?: boolean;
    legacyPolygons?: boolean;
    name?: string;
    type: "geo";
} | {
    fields: [string];
    geoJson?: boolean;
    inBackground?: boolean;
    legacyPolygons?: boolean;
    name?: string;
    type: "geo";
}

Options for creating a geo index.

+

Type declaration

  • fields: [string, string]

    Attribute paths for the document's latitude and longitude values.

    +
  • Optional geoJson?: false

    If set to true, fields must be an array containing a single attribute +path and the attribute value must be an array with two values, the first +of which will be interpreted as the longitude and the second of which will +be interpreted as the latitude of the document.

    +

    Default: false

    +
  • Optional inBackground?: boolean

    If set to true, the index will be created in the background to reduce +the write-lock duration for the collection during index creation.

    +

    Default: false

    +
  • Optional legacyPolygons?: boolean

    If set to true, the index will use pre-3.10 rules for parsing +GeoJSON polygons. This option is always implicitly true when using +ArangoDB 3.9 or lower.

    +
  • Optional name?: string

    A unique name for this index.

    +
  • type: "geo"

Type declaration

  • fields: [string]

    An array containing the attribute path for an array containing two values, +the first of which will be interpreted as the latitude, the second as the +longitude. If geoJson is set to true, the order is reversed to match +the GeoJSON format.

    +
  • Optional geoJson?: boolean

    If set to true, fields must be an array containing a single attribute +path and the attribute value must be an array with two values, the first +of which will be interpreted as the longitude and the second of which will +be interpreted as the latitude of the document.

    +

    Default: false

    +
  • Optional inBackground?: boolean

    If set to true, the index will be created in the background to reduce +the write-lock duration for the collection during index creation.

    +

    Default: false

    +
  • Optional legacyPolygons?: boolean

    If set to true, the index will use pre-3.10 rules for parsing +GeoJSON polygons. This option is always implicitly true when using +ArangoDB 3.9 or lower.

    +
  • Optional name?: string

    A unique name for this index.

    +
  • type: "geo"
\ No newline at end of file diff --git a/9.0.0/types/indexes.EnsureIndexOptions.html b/9.0.0/types/indexes.EnsureIndexOptions.html new file mode 100644 index 00000000..7313015f --- /dev/null +++ b/9.0.0/types/indexes.EnsureIndexOptions.html @@ -0,0 +1,2 @@ +EnsureIndexOptions | arangojs - v9.0.0

Type alias EnsureIndexOptions

Options for creating an index.

+
\ No newline at end of file diff --git a/9.0.0/types/indexes.EnsureInvertedIndexOptions.html b/9.0.0/types/indexes.EnsureInvertedIndexOptions.html new file mode 100644 index 00000000..be22c1d8 --- /dev/null +++ b/9.0.0/types/indexes.EnsureInvertedIndexOptions.html @@ -0,0 +1,65 @@ +EnsureInvertedIndexOptions | arangojs - v9.0.0

Type alias EnsureInvertedIndexOptions

EnsureInvertedIndexOptions: {
    analyzer?: string;
    cache?: boolean;
    cleanupIntervalStep?: number;
    commitIntervalMsec?: number;
    consolidationIntervalMsec?: number;
    consolidationPolicy?: TierConsolidationPolicy;
    features?: AnalyzerFeature[];
    fields: (string | InvertedIndexFieldOptions)[];
    inBackground?: boolean;
    includeAllFields?: boolean;
    name?: string;
    optimizeTopK?: string[];
    parallelism?: number;
    primaryKeyCache?: boolean;
    primarySort?: {
        cache?: boolean;
        compression?: Compression;
        fields: InvertedIndexPrimarySortFieldOptions[];
    };
    searchField?: boolean;
    storedValues?: InvertedIndexStoredValueOptions[];
    trackListPositions?: boolean;
    type: "inverted";
    writeBufferActive?: number;
    writeBufferIdle?: number;
    writeBufferSizeMax?: number;
}

Options for creating an inverted index.

+

Type declaration

  • Optional analyzer?: string

    Name of the default Analyzer to apply to the values of indexed fields.

    +

    Default: "identity"

    +
  • Optional cache?: boolean

    (Enterprise Edition only.) If set to true, then field normalization +values will always be cached in memory.

    +

    Default: false

    +
  • Optional cleanupIntervalStep?: number

    Wait at least this many commits between removing unused files in the +ArangoSearch data directory.

    +

    Default: 2

    +
  • Optional commitIntervalMsec?: number

    Wait at least this many milliseconds between committing View data store +changes and making documents visible to queries.

    +

    Default: 1000

    +
  • Optional consolidationIntervalMsec?: number

    Wait at least this many milliseconds between applying +consolidationPolicy to consolidate View data store and possibly release +space on the filesystem.

    +

    Default: 1000

    +
  • Optional consolidationPolicy?: TierConsolidationPolicy

    The consolidation policy to apply for selecting which segments should be +merged.

    +

    Default: { type: "tier" }

    +
  • Optional features?: AnalyzerFeature[]

    List of Analyzer features to enable for the default Analyzer.

    +

    Defaults to the Analyzer's features.

    +
  • fields: (string | InvertedIndexFieldOptions)[]

    An array of attribute paths or objects specifying options for the fields.

    +
  • Optional inBackground?: boolean

    If set to true, the index will be created in the background to reduce +the write-lock duration for the collection during index creation.

    +

    Default: false

    +
  • Optional includeAllFields?: boolean

    If set to true, all document attributes are indexed, excluding any +sub-attributes configured in the fields array. The analyzer and +features properties apply to the sub-attributes. This option only +applies when using the index in a SearchAlias View.

    +

    Default: false

    +
  • Optional name?: string

    A unique name for this index.

    +
  • Optional optimizeTopK?: string[]

    An array of strings defining sort expressions to optimize.

    +
  • Optional parallelism?: number

    The number of threads to use for indexing the fields.

    +

    Default: 2

    +
  • Optional primaryKeyCache?: boolean

    (Enterprise Edition only.) If set to true, then the primary key column +will always be cached in memory.

    +

    Default: false

    +
  • Optional primarySort?: {
        cache?: boolean;
        compression?: Compression;
        fields: InvertedIndexPrimarySortFieldOptions[];
    }

    Primary sort order to optimize AQL queries using a matching sort order.

    +
    • Optional cache?: boolean

      (Enterprise Edition only.) If set to true, then primary sort columns +will always be cached in memory.

      +

      Default: false

      +
    • Optional compression?: Compression

      How the primary sort data should be compressed.

      +

      Default: "lz4"

      +
    • fields: InvertedIndexPrimarySortFieldOptions[]

      An array of fields to sort the index by.

      +
  • Optional searchField?: boolean

    If set to true array values will by default be indexed using the same +behavior as ArangoSearch Views. This option only applies when using the +index in a SearchAlias View.

    +

    Default: false

    +
  • Optional storedValues?: InvertedIndexStoredValueOptions[]

    An array of attribute paths that will be stored in the index but can not +be used for index lookups or sorting but can avoid full document lookups.

    +
  • Optional trackListPositions?: boolean

    If set to true, the position of values in array values are tracked and +need to be specified in queries. Otherwise all values in an array are +treated as equivalent. This option only applies when using the index in a +SearchAlias View.

    +

    Default: false

    +
  • type: "inverted"

    Type of this index.

    +
  • Optional writeBufferActive?: number

    Maximum number of concurrent active writers (segments) that perform a +transaction.

    +

    Default: 0 (disabled)

    +
  • Optional writeBufferIdle?: number

    Maximum number of writers (segments) cached in the pool.

    +

    Default: 64

    +
  • Optional writeBufferSizeMax?: number

    Maximum memory byte size per writer (segment) before a writer (segment) +flush is triggered.

    +

    Default: 33554432 (32 MiB)

    +
\ No newline at end of file diff --git a/9.0.0/types/indexes.EnsureMdiIndexOptions.html b/9.0.0/types/indexes.EnsureMdiIndexOptions.html new file mode 100644 index 00000000..23b20d43 --- /dev/null +++ b/9.0.0/types/indexes.EnsureMdiIndexOptions.html @@ -0,0 +1,11 @@ +EnsureMdiIndexOptions | arangojs - v9.0.0

Type alias EnsureMdiIndexOptions

EnsureMdiIndexOptions: {
    fieldValueTypes: "double";
    fields: string[];
    inBackground?: boolean;
    name?: string;
    type: "mdi";
    unique?: boolean;
}

Options for creating a MDI index.

+

Type declaration

  • fieldValueTypes: "double"

    Data type of the dimension attributes.

    +
  • fields: string[]

    An array containing attribute paths for the dimensions.

    +
  • Optional inBackground?: boolean

    If set to true, the index will be created in the background to reduce +the write-lock duration for the collection during index creation.

    +

    Default: false

    +
  • Optional name?: string

    A unique name for this index.

    +
  • type: "mdi"

    Type of this index.

    +
  • Optional unique?: boolean

    If set to true, a unique index will be created.

    +

    Default: false

    +
\ No newline at end of file diff --git a/9.0.0/types/indexes.EnsurePersistentIndexOptions.html b/9.0.0/types/indexes.EnsurePersistentIndexOptions.html new file mode 100644 index 00000000..c3010956 --- /dev/null +++ b/9.0.0/types/indexes.EnsurePersistentIndexOptions.html @@ -0,0 +1,25 @@ +EnsurePersistentIndexOptions | arangojs - v9.0.0

Type alias EnsurePersistentIndexOptions

EnsurePersistentIndexOptions: {
    cacheEnabled?: boolean;
    deduplicate?: boolean;
    estimates?: boolean;
    fields: string[];
    inBackground?: boolean;
    name?: string;
    sparse?: boolean;
    storedValues?: string[];
    type: "persistent";
    unique?: boolean;
}

Options for creating a persistent index.

+

Type declaration

  • Optional cacheEnabled?: boolean

    If set to true, an in-memory hash cache will be put in front of the +persistent index.

    +

    Default: false

    +
  • Optional deduplicate?: boolean

    If set to false, inserting duplicate index values from the same +document will lead to a unique constraint error if this is a unique index.

    +

    Default: true

    +
  • Optional estimates?: boolean

    If set to false, index selectivity estimates will be disabled for this +index.

    +

    Default: true

    +
  • fields: string[]

    An array of attribute paths.

    +
  • Optional inBackground?: boolean

    If set to true, the index will be created in the background to reduce +the write-lock duration for the collection during index creation.

    +

    Default: false

    +
  • Optional name?: string

    A unique name for this index.

    +
  • Optional sparse?: boolean

    If set to true, the index will omit documents that do not contain at +least one of the attribute paths in fields and these documents will be +ignored for uniqueness checks.

    +

    Default: false

    +
  • Optional storedValues?: string[]

    An array of attribute paths that will be stored in the index but can not +be used for index lookups or sorting but can avoid full document lookups.

    +
  • type: "persistent"

    Type of this index.

    +
  • Optional unique?: boolean

    If set to true, a unique index will be created.

    +

    Default: false

    +
\ No newline at end of file diff --git a/9.0.0/types/indexes.EnsureTtlIndexOptions.html b/9.0.0/types/indexes.EnsureTtlIndexOptions.html new file mode 100644 index 00000000..e63035d1 --- /dev/null +++ b/9.0.0/types/indexes.EnsureTtlIndexOptions.html @@ -0,0 +1,10 @@ +EnsureTtlIndexOptions | arangojs - v9.0.0

Type alias EnsureTtlIndexOptions

EnsureTtlIndexOptions: {
    expireAfter: number;
    fields: [string];
    inBackground?: boolean;
    name?: string;
    type: "ttl";
}

Options for creating a TTL index.

+

Type declaration

  • expireAfter: number

    Duration in seconds after the attribute value at which the document will +be considered as expired.

    +
  • fields: [string]

    An array containing exactly one attribute path.

    +
  • Optional inBackground?: boolean

    If set to true, the index will be created in the background to reduce +the write-lock duration for the collection during index creation.

    +

    Default: false

    +
  • Optional name?: string

    A unique name for this index.

    +
  • type: "ttl"

    Type of this index.

    +
\ No newline at end of file diff --git a/9.0.0/types/indexes.GenericIndex.html b/9.0.0/types/indexes.GenericIndex.html new file mode 100644 index 00000000..fc0e0ec7 --- /dev/null +++ b/9.0.0/types/indexes.GenericIndex.html @@ -0,0 +1,9 @@ +GenericIndex | arangojs - v9.0.0

Type alias GenericIndex

GenericIndex: {
    figures?: Record<string, any>;
    id: string;
    name: string;
    progress?: number;
    sparse: boolean;
    unique: boolean;
}

Shared attributes of all index types.

+

Type declaration

  • Optional figures?: Record<string, any>

    Additional stats about this index.

    +
  • id: string

    A unique identifier for this index.

    +
  • name: string

    A unique name for this index.

    +
  • Optional progress?: number

    Progress of this index if it is still being created.

    +
  • sparse: boolean

    Whether documents not containing at least one of the attribute paths +are omitted by this index.

    +
  • unique: boolean

    Whether this index enforces uniqueness for values of its attribute paths.

    +
\ No newline at end of file diff --git a/9.0.0/types/indexes.GeoIndex.html b/9.0.0/types/indexes.GeoIndex.html new file mode 100644 index 00000000..b47368e6 --- /dev/null +++ b/9.0.0/types/indexes.GeoIndex.html @@ -0,0 +1,2 @@ +GeoIndex | arangojs - v9.0.0

Type alias GeoIndex

GeoIndex: GenericIndex & {
    bestIndexedLevel: number;
    fields: [string] | [string, string];
    geoJson: boolean;
    legacyPolygons: boolean;
    maxNumCoverCells: number;
    type: "geo";
    worstIndexedLevel: number;
}

An object representing a geo index.

+

Type declaration

  • bestIndexedLevel: number
  • fields: [string] | [string, string]
  • geoJson: boolean
  • legacyPolygons: boolean
  • maxNumCoverCells: number
  • type: "geo"
  • worstIndexedLevel: number
\ No newline at end of file diff --git a/9.0.0/types/indexes.Index.html b/9.0.0/types/indexes.Index.html new file mode 100644 index 00000000..227811af --- /dev/null +++ b/9.0.0/types/indexes.Index.html @@ -0,0 +1,2 @@ +Index | arangojs - v9.0.0

Type alias Index

An object representing an index.

+
\ No newline at end of file diff --git a/9.0.0/types/indexes.IndexDetails.html b/9.0.0/types/indexes.IndexDetails.html new file mode 100644 index 00000000..6da31975 --- /dev/null +++ b/9.0.0/types/indexes.IndexDetails.html @@ -0,0 +1 @@ +IndexDetails | arangojs - v9.0.0

Type alias IndexDetails

IndexDetails: Index & {
    figures?: Record<string, any>;
    progress?: number;
}

Type declaration

  • Optional figures?: Record<string, any>
  • Optional progress?: number
\ No newline at end of file diff --git a/9.0.0/types/indexes.IndexSelector.html b/9.0.0/types/indexes.IndexSelector.html new file mode 100644 index 00000000..b4c51b1a --- /dev/null +++ b/9.0.0/types/indexes.IndexSelector.html @@ -0,0 +1,2 @@ +IndexSelector | arangojs - v9.0.0

Type alias IndexSelector

IndexSelector: ObjectWithId | ObjectWithName | string

Index name, id or object with a name or id property.

+
\ No newline at end of file diff --git a/9.0.0/types/indexes.InvertedIndex.html b/9.0.0/types/indexes.InvertedIndex.html new file mode 100644 index 00000000..8153707b --- /dev/null +++ b/9.0.0/types/indexes.InvertedIndex.html @@ -0,0 +1,2 @@ +InvertedIndex | arangojs - v9.0.0

Type alias InvertedIndex

InvertedIndex: GenericIndex & {
    analyzer: string;
    cache?: boolean;
    cleanupIntervalStep: number;
    commitIntervalMsec: number;
    consolidationIntervalMsec: number;
    consolidationPolicy: Required<TierConsolidationPolicy>;
    features: AnalyzerFeature[];
    fields: {
        analyzer?: string;
        cache?: boolean;
        features?: AnalyzerFeature[];
        includeAllFields?: boolean;
        name: string;
        nested?: InvertedIndexNestedField[];
        searchField?: boolean;
        trackListPositions?: boolean;
    }[];
    includeAllFields: boolean;
    optimizeTopK: string[];
    parallelism: number;
    primaryKeyCache?: boolean;
    primarySort: {
        cache?: boolean;
        compression: Compression;
        fields: {
            direction: Direction;
            field: string;
        }[];
    };
    searchField: boolean;
    storedValues: {
        cache?: boolean;
        compression: Compression;
        fields: string[];
    }[];
    trackListPositions: boolean;
    type: "inverted";
    writeBufferActive: number;
    writeBufferIdle: number;
    writeBufferSizeMax: number;
}

An object representing an inverted index.

+

Type declaration

  • analyzer: string
  • Optional cache?: boolean
  • cleanupIntervalStep: number
  • commitIntervalMsec: number
  • consolidationIntervalMsec: number
  • consolidationPolicy: Required<TierConsolidationPolicy>
  • features: AnalyzerFeature[]
  • fields: {
        analyzer?: string;
        cache?: boolean;
        features?: AnalyzerFeature[];
        includeAllFields?: boolean;
        name: string;
        nested?: InvertedIndexNestedField[];
        searchField?: boolean;
        trackListPositions?: boolean;
    }[]
  • includeAllFields: boolean
  • optimizeTopK: string[]
  • parallelism: number
  • Optional primaryKeyCache?: boolean
  • primarySort: {
        cache?: boolean;
        compression: Compression;
        fields: {
            direction: Direction;
            field: string;
        }[];
    }
    • Optional cache?: boolean
    • compression: Compression
    • fields: {
          direction: Direction;
          field: string;
      }[]
  • searchField: boolean
  • storedValues: {
        cache?: boolean;
        compression: Compression;
        fields: string[];
    }[]
  • trackListPositions: boolean
  • type: "inverted"
  • writeBufferActive: number
  • writeBufferIdle: number
  • writeBufferSizeMax: number
\ No newline at end of file diff --git a/9.0.0/types/indexes.InvertedIndexFieldOptions.html b/9.0.0/types/indexes.InvertedIndexFieldOptions.html new file mode 100644 index 00000000..3fe06912 --- /dev/null +++ b/9.0.0/types/indexes.InvertedIndexFieldOptions.html @@ -0,0 +1,27 @@ +InvertedIndexFieldOptions | arangojs - v9.0.0

Type alias InvertedIndexFieldOptions

InvertedIndexFieldOptions: {
    analyzer?: string;
    cache?: boolean;
    features?: AnalyzerFeature[];
    includeAllFields?: boolean;
    name: string;
    nested?: (string | InvertedIndexNestedFieldOptions)[];
    searchField?: boolean;
    trackListPositions?: boolean;
}

Options for an attribute path in an inverted index.

+

Type declaration

  • Optional analyzer?: string

    Name of the Analyzer to apply to the values of this field.

    +

    Defaults to the analyzer specified on the index itself.

    +
  • Optional cache?: boolean

    (Enterprise Edition only.) If set to true, then field normalization +values will always be cached in memory.

    +

    Defaults to the value of cache specified on the index itself.

    +
  • Optional features?: AnalyzerFeature[]

    List of Analyzer features to enable for this field's Analyzer.

    +

    Defaults to the features of the Analyzer.

    +
  • Optional includeAllFields?: boolean

    If set to true, all document attributes are indexed, excluding any +sub-attributes configured in the fields array. The analyzer and +features properties apply to the sub-attributes. This option only +applies when using the index in a SearchAlias View.

    +

    Defaults to the value of includeAllFields specified on the index itself.

    +
  • name: string

    An attribute path.

    +
  • Optional nested?: (string | InvertedIndexNestedFieldOptions)[]

    (Enterprise Edition only.) Sub-objects to index to allow querying for +co-occurring values.

    +
  • Optional searchField?: boolean

    If set to true array values will be indexed using the same behavior as +ArangoSearch Views. This option only applies when using the index in a +SearchAlias View.

    +

    Defaults to the value of searchField specified on the index itself.

    +
  • Optional trackListPositions?: boolean

    If set to true, the position of values in array values are tracked and +need to be specified in queries. Otherwise all values in an array are +treated as equivalent. This option only applies when using the index in a +SearchAlias View.

    +

    Defaults to the value of trackListPositions specified on the index +itself.

    +
\ No newline at end of file diff --git a/9.0.0/types/indexes.InvertedIndexNestedField.html b/9.0.0/types/indexes.InvertedIndexNestedField.html new file mode 100644 index 00000000..ee83a293 --- /dev/null +++ b/9.0.0/types/indexes.InvertedIndexNestedField.html @@ -0,0 +1,3 @@ +InvertedIndexNestedField | arangojs - v9.0.0

Type alias InvertedIndexNestedField

InvertedIndexNestedField: {
    analyzer?: string;
    features?: AnalyzerFeature[];
    name: string;
    nested?: InvertedIndexNestedField[];
    searchField?: boolean;
}

(Enterprise Edition only.) An object representing a nested field in an +inverted index.

+

Type declaration

\ No newline at end of file diff --git a/9.0.0/types/indexes.InvertedIndexNestedFieldOptions.html b/9.0.0/types/indexes.InvertedIndexNestedFieldOptions.html new file mode 100644 index 00000000..f0161ed4 --- /dev/null +++ b/9.0.0/types/indexes.InvertedIndexNestedFieldOptions.html @@ -0,0 +1,13 @@ +InvertedIndexNestedFieldOptions | arangojs - v9.0.0

Type alias InvertedIndexNestedFieldOptions

InvertedIndexNestedFieldOptions: {
    analyzer?: string;
    features?: AnalyzerFeature[];
    name: string;
    nested?: (string | InvertedIndexNestedFieldOptions)[];
    searchField?: boolean;
}

(Enterprise Edition only.) Options for a nested field in an inverted index.

+

Type declaration

  • Optional analyzer?: string

    Name of the Analyzer to apply to the values of this field.

    +

    Defaults to the analyzer specified on the parent options or on the index +itself.

    +
  • Optional features?: AnalyzerFeature[]

    List of Analyzer features to enable for this field's Analyzer.

    +

    Defaults to the features of the Analyzer.

    +
  • name: string

    An attribute path.

    +
  • Optional nested?: (string | InvertedIndexNestedFieldOptions)[]

    Sub-objects to index to allow querying for co-occurring values.

    +
  • Optional searchField?: boolean

    If set to true array values will be indexed using the same behavior as +ArangoSearch Views. This option only applies when using the index in a +SearchAlias View.

    +

    Defaults to the value of searchField specified on the index itself.

    +
\ No newline at end of file diff --git a/9.0.0/types/indexes.InvertedIndexPrimarySortFieldOptions.html b/9.0.0/types/indexes.InvertedIndexPrimarySortFieldOptions.html new file mode 100644 index 00000000..6662cf50 --- /dev/null +++ b/9.0.0/types/indexes.InvertedIndexPrimarySortFieldOptions.html @@ -0,0 +1,4 @@ +InvertedIndexPrimarySortFieldOptions | arangojs - v9.0.0

Type alias InvertedIndexPrimarySortFieldOptions

InvertedIndexPrimarySortFieldOptions: {
    direction: Direction;
    field: string;
}

Options for defining a primary sort field on an inverted index.

+

Type declaration

  • direction: Direction

    The sorting direction.

    +
  • field: string

    The attribute path to sort by.

    +
\ No newline at end of file diff --git a/9.0.0/types/indexes.InvertedIndexStoredValueOptions.html b/9.0.0/types/indexes.InvertedIndexStoredValueOptions.html new file mode 100644 index 00000000..649323bd --- /dev/null +++ b/9.0.0/types/indexes.InvertedIndexStoredValueOptions.html @@ -0,0 +1,8 @@ +InvertedIndexStoredValueOptions | arangojs - v9.0.0

Type alias InvertedIndexStoredValueOptions

InvertedIndexStoredValueOptions: {
    cache?: boolean;
    compression?: Compression;
    fields: string[];
}

Options for defining a stored value on an inverted index.

+

Type declaration

  • Optional cache?: boolean

    (Enterprise Edition only.) If set to true, then stored values will +always be cached in memory.

    +

    Default: false

    +
  • Optional compression?: Compression

    How the attribute values should be compressed.

    +

    Default: "lz4"

    +
  • fields: string[]

    The attribute paths to store.

    +
\ No newline at end of file diff --git a/9.0.0/types/indexes.MdiIndex.html b/9.0.0/types/indexes.MdiIndex.html new file mode 100644 index 00000000..78152924 --- /dev/null +++ b/9.0.0/types/indexes.MdiIndex.html @@ -0,0 +1,2 @@ +MdiIndex | arangojs - v9.0.0

Type alias MdiIndex

MdiIndex: GenericIndex & {
    fieldValueTypes: "double";
    fields: string[];
    type: "mdi";
}

An object representing a MDI index.

+

Type declaration

  • fieldValueTypes: "double"
  • fields: string[]
  • type: "mdi"
\ No newline at end of file diff --git a/9.0.0/types/indexes.ObjectWithId.html b/9.0.0/types/indexes.ObjectWithId.html new file mode 100644 index 00000000..45abea30 --- /dev/null +++ b/9.0.0/types/indexes.ObjectWithId.html @@ -0,0 +1 @@ +ObjectWithId | arangojs - v9.0.0

Type alias ObjectWithId

ObjectWithId: {
    id: string;
    [key: string]: any;
}

Type declaration

  • [key: string]: any
  • id: string
\ No newline at end of file diff --git a/9.0.0/types/indexes.ObjectWithName.html b/9.0.0/types/indexes.ObjectWithName.html new file mode 100644 index 00000000..6ab90186 --- /dev/null +++ b/9.0.0/types/indexes.ObjectWithName.html @@ -0,0 +1 @@ +ObjectWithName | arangojs - v9.0.0

Type alias ObjectWithName

ObjectWithName: {
    name: string;
    [key: string]: any;
}

Type declaration

  • [key: string]: any
  • name: string
\ No newline at end of file diff --git a/9.0.0/types/indexes.PersistentIndex.html b/9.0.0/types/indexes.PersistentIndex.html new file mode 100644 index 00000000..e680132a --- /dev/null +++ b/9.0.0/types/indexes.PersistentIndex.html @@ -0,0 +1,2 @@ +PersistentIndex | arangojs - v9.0.0

Type alias PersistentIndex

PersistentIndex: GenericIndex & {
    cacheEnabled: boolean;
    deduplicate: boolean;
    estimates: boolean;
    fields: string[];
    storedValues?: string[];
    type: "persistent";
}

An object representing a persistent index.

+

Type declaration

  • cacheEnabled: boolean
  • deduplicate: boolean
  • estimates: boolean
  • fields: string[]
  • Optional storedValues?: string[]
  • type: "persistent"
\ No newline at end of file diff --git a/9.0.0/types/indexes.PrimaryIndex.html b/9.0.0/types/indexes.PrimaryIndex.html new file mode 100644 index 00000000..05c616c7 --- /dev/null +++ b/9.0.0/types/indexes.PrimaryIndex.html @@ -0,0 +1,2 @@ +PrimaryIndex | arangojs - v9.0.0

Type alias PrimaryIndex

PrimaryIndex: GenericIndex & {
    fields: string[];
    selectivityEstimate: number;
    type: "primary";
}

An object representing a primary index.

+

Type declaration

  • fields: string[]
  • selectivityEstimate: number
  • type: "primary"
\ No newline at end of file diff --git a/9.0.0/types/indexes.TtlIndex.html b/9.0.0/types/indexes.TtlIndex.html new file mode 100644 index 00000000..255ed3d5 --- /dev/null +++ b/9.0.0/types/indexes.TtlIndex.html @@ -0,0 +1,2 @@ +TtlIndex | arangojs - v9.0.0

Type alias TtlIndex

TtlIndex: GenericIndex & {
    expireAfter: number;
    fields: [string];
    selectivityEstimate: number;
    type: "ttl";
}

An object representing a TTL index.

+

Type declaration

  • expireAfter: number
  • fields: [string]
  • selectivityEstimate: number
  • type: "ttl"
\ No newline at end of file diff --git a/9.0.0/types/transaction.TransactionAbortOptions.html b/9.0.0/types/transaction.TransactionAbortOptions.html new file mode 100644 index 00000000..1dcde791 --- /dev/null +++ b/9.0.0/types/transaction.TransactionAbortOptions.html @@ -0,0 +1,5 @@ +TransactionAbortOptions | arangojs - v9.0.0

Type alias TransactionAbortOptions

TransactionAbortOptions: {
    allowDirtyRead?: boolean;
}

Options for how the transaction should be aborted.

+

Type declaration

  • Optional allowDirtyRead?: boolean

    If set to true, the request will explicitly permit ArangoDB to return a +potentially dirty or stale result and arangojs will load balance the +request without distinguishing between leaders and followers.

    +
\ No newline at end of file diff --git a/9.0.0/types/transaction.TransactionCommitOptions.html b/9.0.0/types/transaction.TransactionCommitOptions.html new file mode 100644 index 00000000..af214908 --- /dev/null +++ b/9.0.0/types/transaction.TransactionCommitOptions.html @@ -0,0 +1,5 @@ +TransactionCommitOptions | arangojs - v9.0.0

Type alias TransactionCommitOptions

TransactionCommitOptions: {
    allowDirtyRead?: boolean;
}

Options for how the transaction should be committed.

+

Type declaration

  • Optional allowDirtyRead?: boolean

    If set to true, the request will explicitly permit ArangoDB to return a +potentially dirty or stale result and arangojs will load balance the +request without distinguishing between leaders and followers.

    +
\ No newline at end of file diff --git a/9.0.0/types/transaction.TransactionStatus.html b/9.0.0/types/transaction.TransactionStatus.html new file mode 100644 index 00000000..91700808 --- /dev/null +++ b/9.0.0/types/transaction.TransactionStatus.html @@ -0,0 +1,5 @@ +TransactionStatus | arangojs - v9.0.0

Type alias TransactionStatus

TransactionStatus: {
    id: string;
    status: "running" | "committed" | "aborted";
}

Status of a given transaction.

+

See also database.TransactionDetails.

+

Type declaration

  • id: string

    Unique identifier of the transaction.

    +
  • status: "running" | "committed" | "aborted"

    Status of the transaction.

    +
\ No newline at end of file diff --git a/9.0.0/types/view.ArangoSearchViewDescription.html b/9.0.0/types/view.ArangoSearchViewDescription.html new file mode 100644 index 00000000..3dc2218f --- /dev/null +++ b/9.0.0/types/view.ArangoSearchViewDescription.html @@ -0,0 +1 @@ +ArangoSearchViewDescription | arangojs - v9.0.0

Type alias ArangoSearchViewDescription

ArangoSearchViewDescription: GenericViewDescription & {
    type: "arangosearch";
}

Type declaration

  • type: "arangosearch"
\ No newline at end of file diff --git a/9.0.0/types/view.ArangoSearchViewLink.html b/9.0.0/types/view.ArangoSearchViewLink.html new file mode 100644 index 00000000..eccf937b --- /dev/null +++ b/9.0.0/types/view.ArangoSearchViewLink.html @@ -0,0 +1,2 @@ +ArangoSearchViewLink | arangojs - v9.0.0

Type alias ArangoSearchViewLink

ArangoSearchViewLink: {
    analyzers: string[];
    cache: boolean;
    fields: Record<string, ArangoSearchViewLink>;
    includeAllFields: boolean;
    nested?: Record<string, ArangoSearchViewLink>;
    storeValues: "none" | "id";
    trackListPositions: boolean;
}

A link definition for an ArangoSearch View.

+

Type declaration

  • analyzers: string[]
  • cache: boolean
  • fields: Record<string, ArangoSearchViewLink>
  • includeAllFields: boolean
  • Optional nested?: Record<string, ArangoSearchViewLink>
  • storeValues: "none" | "id"
  • trackListPositions: boolean
\ No newline at end of file diff --git a/9.0.0/types/view.ArangoSearchViewLinkOptions.html b/9.0.0/types/view.ArangoSearchViewLinkOptions.html new file mode 100644 index 00000000..b2418c62 --- /dev/null +++ b/9.0.0/types/view.ArangoSearchViewLinkOptions.html @@ -0,0 +1,23 @@ +ArangoSearchViewLinkOptions | arangojs - v9.0.0

Type alias ArangoSearchViewLinkOptions

ArangoSearchViewLinkOptions: {
    analyzers?: string[];
    cache?: boolean;
    fields?: Record<string, ArangoSearchViewLinkOptions>;
    inBackground?: boolean;
    includeAllFields?: boolean;
    nested?: Record<string, ArangoSearchViewLinkOptions>;
    storeValues?: "none" | "id";
    trackListPositions?: boolean;
}

A link definition for an ArangoSearch View.

+

Type declaration

  • Optional analyzers?: string[]

    A list of names of Analyzers to apply to values of processed document +attributes.

    +

    Default: ["identity"]

    +
  • Optional cache?: boolean

    (Enterprise Edition only.) If set to true, then field normalization +values will always be cached in memory.

    +

    Default: false

    +
  • Optional fields?: Record<string, ArangoSearchViewLinkOptions>

    An object mapping names of attributes to process for each document to +ArangoSearchViewLinkOptions definitions.

    +
  • Optional inBackground?: boolean

    If set to true, then no exclusive lock is used on the source collection +during View index creation, so that it remains basically available.

    +

    Default: false

    +
  • Optional includeAllFields?: boolean

    If set to true, all document attributes will be processed, otherwise +only the attributes in fields will be processed.

    +

    Default: false

    +
  • Optional nested?: Record<string, ArangoSearchViewLinkOptions>

    (Enterprise Edition only.) An object mapping attribute names to +ArangoSearchViewLinkOptions definitions to index sub-objects +stored in an array.

    +
  • Optional storeValues?: "none" | "id"

    Controls how the view should keep track of the attribute values.

    +

    Default: "none"

    +
  • Optional trackListPositions?: boolean

    If set to true, the position of values in array values will be tracked, +otherwise all values in an array will be treated as equal alternatives.

    +
\ No newline at end of file diff --git a/9.0.0/types/view.ArangoSearchViewPatchPropertiesOptions.html b/9.0.0/types/view.ArangoSearchViewPatchPropertiesOptions.html new file mode 100644 index 00000000..613c4d14 --- /dev/null +++ b/9.0.0/types/view.ArangoSearchViewPatchPropertiesOptions.html @@ -0,0 +1,2 @@ +ArangoSearchViewPatchPropertiesOptions | arangojs - v9.0.0

Type alias ArangoSearchViewPatchPropertiesOptions

ArangoSearchViewPatchPropertiesOptions: ArangoSearchViewPropertiesOptions

Options for partially modifying the properties of an ArangoSearch View.

+
\ No newline at end of file diff --git a/9.0.0/types/view.ArangoSearchViewProperties.html b/9.0.0/types/view.ArangoSearchViewProperties.html new file mode 100644 index 00000000..0a210cfc --- /dev/null +++ b/9.0.0/types/view.ArangoSearchViewProperties.html @@ -0,0 +1,2 @@ +ArangoSearchViewProperties | arangojs - v9.0.0

Type alias ArangoSearchViewProperties

ArangoSearchViewProperties: ArangoSearchViewDescription & {
    cleanupIntervalStep: number;
    commitIntervalMsec: number;
    consolidationIntervalMsec: number;
    consolidationPolicy: TierConsolidationPolicy | BytesAccumConsolidationPolicy;
    links: Record<string, Omit<ArangoSearchViewLink, "nested">>;
    optimizeTopK: string[];
    primaryKeyCache: boolean;
    primarySort: {
        direction: Direction;
        field: string;
    }[];
    primarySortCache: boolean;
    primarySortCompression: Compression;
    storedValues: {
        cache: boolean;
        compression: Compression;
        fields: string[];
    }[];
    writebufferActive: number;
    writebufferIdle: number;
    writebufferSizeMax: number;
}

Properties of an ArangoSearch View.

+

Type declaration

  • cleanupIntervalStep: number
  • commitIntervalMsec: number
  • consolidationIntervalMsec: number
  • consolidationPolicy: TierConsolidationPolicy | BytesAccumConsolidationPolicy
  • links: Record<string, Omit<ArangoSearchViewLink, "nested">>
  • optimizeTopK: string[]
  • primaryKeyCache: boolean
  • primarySort: {
        direction: Direction;
        field: string;
    }[]
  • primarySortCache: boolean
  • primarySortCompression: Compression
  • storedValues: {
        cache: boolean;
        compression: Compression;
        fields: string[];
    }[]
  • writebufferActive: number
  • writebufferIdle: number
  • writebufferSizeMax: number
\ No newline at end of file diff --git a/9.0.0/types/view.ArangoSearchViewPropertiesOptions.html b/9.0.0/types/view.ArangoSearchViewPropertiesOptions.html new file mode 100644 index 00000000..ac3f468d --- /dev/null +++ b/9.0.0/types/view.ArangoSearchViewPropertiesOptions.html @@ -0,0 +1,14 @@ +ArangoSearchViewPropertiesOptions | arangojs - v9.0.0

Type alias ArangoSearchViewPropertiesOptions

ArangoSearchViewPropertiesOptions: {
    cleanupIntervalStep?: number;
    commitIntervalMsec?: number;
    consolidationIntervalMsec?: number;
    consolidationPolicy?: TierConsolidationPolicy;
    links?: Record<string, Omit<ArangoSearchViewLinkOptions, "nested">>;
}

Options for modifying the properties of an ArangoSearch View.

+

Type declaration

  • Optional cleanupIntervalStep?: number

    How many commits to wait between removing unused files.

    +

    Default: 2

    +
  • Optional commitIntervalMsec?: number

    How long to wait between commiting View data store changes and making +documents visible to queries.

    +

    Default: 1000

    +
  • Optional consolidationIntervalMsec?: number

    How long to wait between applying the consolidationPolicy.

    +

    Default: 10000

    +
  • Optional consolidationPolicy?: TierConsolidationPolicy

    Consolidation policy to apply for selecting which segments should be +merged.

    +

    Default: { type: "tier" }

    +
  • Optional links?: Record<string, Omit<ArangoSearchViewLinkOptions, "nested">>

    An object mapping names of linked collections to +ArangoSearchViewLinkOptions definitions.

    +
\ No newline at end of file diff --git a/9.0.0/types/view.BytesAccumConsolidationPolicy.html b/9.0.0/types/view.BytesAccumConsolidationPolicy.html new file mode 100644 index 00000000..b725411d --- /dev/null +++ b/9.0.0/types/view.BytesAccumConsolidationPolicy.html @@ -0,0 +1,7 @@ +BytesAccumConsolidationPolicy | arangojs - v9.0.0

Type alias BytesAccumConsolidationPolicy

BytesAccumConsolidationPolicy: {
    threshold?: number;
    type: "bytes_accum";
}

Policy to consolidate based on segment byte size and live document count as +dictated by the customization attributes.

+

Type declaration

  • Optional threshold?: number

    Must be in the range of 0.0 to 1.0.

    +
  • type: "bytes_accum"

    Type of consolidation policy.

    +

Deprecated

The bytes_accum consolidation policy was deprecated in +ArangoDB 3.7 and should be replaced with the tier consolidation policy.

+
\ No newline at end of file diff --git a/9.0.0/types/view.Compression.html b/9.0.0/types/view.Compression.html new file mode 100644 index 00000000..04aa019c --- /dev/null +++ b/9.0.0/types/view.Compression.html @@ -0,0 +1,2 @@ +Compression | arangojs - v9.0.0

Type alias Compression

Compression: "lz4" | "none"

Compression for storing data.

+
\ No newline at end of file diff --git a/9.0.0/types/view.CreateArangoSearchViewOptions.html b/9.0.0/types/view.CreateArangoSearchViewOptions.html new file mode 100644 index 00000000..54ade91e --- /dev/null +++ b/9.0.0/types/view.CreateArangoSearchViewOptions.html @@ -0,0 +1,26 @@ +CreateArangoSearchViewOptions | arangojs - v9.0.0

Type alias CreateArangoSearchViewOptions

CreateArangoSearchViewOptions: ArangoSearchViewPropertiesOptions & {
    optimizeTopK?: string[];
    primaryKeyCache?: boolean;
    primarySort?: ({
        direction: Direction;
        field: string;
    } | {
        asc: boolean;
        field: string;
    })[];
    primarySortCache?: boolean;
    primarySortCompression?: Compression;
    storedValues?: ArangoSearchViewStoredValueOptions[] | string[] | string[][];
    type: "arangosearch";
    writebufferActive?: number;
    writebufferIdle?: number;
    writebufferSizeMax?: number;
}

Options for creating an ArangoSearch View.

+

Type declaration

  • Optional optimizeTopK?: string[]

    An array of strings defining sort expressions to optimize.

    +
  • Optional primaryKeyCache?: boolean

    (Enterprise Edition only.) If set to true, then primary key columns +will always be cached in memory.

    +

    Default: false

    +
  • Optional primarySort?: ({
        direction: Direction;
        field: string;
    } | {
        asc: boolean;
        field: string;
    })[]

    Attribute path (field) for the value of each document that will be +used for sorting.

    +

    If direction is set to "asc" or asc is set to true, +the primary sorting order will be ascending.

    +

    If direction is set to "desc" or asc is set to false, +the primary sorting order will be descending.

    +
  • Optional primarySortCache?: boolean

    (Enterprise Edition only.) If set to true, then primary sort columns +will always be cached in memory.

    +

    Default: false

    +
  • Optional primarySortCompression?: Compression

    Compression to use for the primary sort data.

    +

    Default: "lz4"

    +
  • Optional storedValues?: ArangoSearchViewStoredValueOptions[] | string[] | string[][]

    Attribute paths for which values should be stored in the view index +in addition to those used for sorting via primarySort.

    +
  • type: "arangosearch"

    Type of the View.

    +
  • Optional writebufferActive?: number

    Maximum number of concurrent active writers that perform a transaction.

    +

    Default: 0

    +
  • Optional writebufferIdle?: number

    Maximum number of writers cached in the pool.

    +

    Default: 64

    +
  • Optional writebufferSizeMax?: number

    Maximum memory byte size per writer before a writer flush is triggered.

    +

    Default: 33554432 (32 MiB)

    +
\ No newline at end of file diff --git a/9.0.0/types/view.CreateSearchAliasViewOptions.html b/9.0.0/types/view.CreateSearchAliasViewOptions.html new file mode 100644 index 00000000..44973c81 --- /dev/null +++ b/9.0.0/types/view.CreateSearchAliasViewOptions.html @@ -0,0 +1,3 @@ +CreateSearchAliasViewOptions | arangojs - v9.0.0

Type alias CreateSearchAliasViewOptions

CreateSearchAliasViewOptions: SearchAliasViewPropertiesOptions & {
    type: "search-alias";
}

Options for creating a SearchAlias View.

+

Type declaration

  • type: "search-alias"

    Type of the View.

    +
\ No newline at end of file diff --git a/9.0.0/types/view.CreateViewOptions.html b/9.0.0/types/view.CreateViewOptions.html new file mode 100644 index 00000000..7c5b8f8b --- /dev/null +++ b/9.0.0/types/view.CreateViewOptions.html @@ -0,0 +1,2 @@ +CreateViewOptions | arangojs - v9.0.0

Type alias CreateViewOptions

Options for creating a View.

+
\ No newline at end of file diff --git a/9.0.0/types/view.Direction.html b/9.0.0/types/view.Direction.html new file mode 100644 index 00000000..d247ae66 --- /dev/null +++ b/9.0.0/types/view.Direction.html @@ -0,0 +1,2 @@ +Direction | arangojs - v9.0.0

Type alias Direction

Direction: "desc" | "asc"

Sorting direction. Descending or ascending.

+
\ No newline at end of file diff --git a/9.0.0/types/view.GenericViewDescription.html b/9.0.0/types/view.GenericViewDescription.html new file mode 100644 index 00000000..3d100ccb --- /dev/null +++ b/9.0.0/types/view.GenericViewDescription.html @@ -0,0 +1,5 @@ +GenericViewDescription | arangojs - v9.0.0

Type alias GenericViewDescription

GenericViewDescription: {
    globallyUniqueId: string;
    id: string;
    name: string;
}

Generic description of a View.

+

Type declaration

  • globallyUniqueId: string

    A globally unique identifier for this View.

    +
  • id: string

    An identifier for this View.

    +
  • name: string

    Name of the View.

    +
\ No newline at end of file diff --git a/9.0.0/types/view.SearchAliasViewDescription.html b/9.0.0/types/view.SearchAliasViewDescription.html new file mode 100644 index 00000000..8e5a8816 --- /dev/null +++ b/9.0.0/types/view.SearchAliasViewDescription.html @@ -0,0 +1 @@ +SearchAliasViewDescription | arangojs - v9.0.0

Type alias SearchAliasViewDescription

SearchAliasViewDescription: GenericViewDescription & {
    type: "search-alias";
}

Type declaration

  • type: "search-alias"
\ No newline at end of file diff --git a/9.0.0/types/view.SearchAliasViewIndexOptions.html b/9.0.0/types/view.SearchAliasViewIndexOptions.html new file mode 100644 index 00000000..acf7a92d --- /dev/null +++ b/9.0.0/types/view.SearchAliasViewIndexOptions.html @@ -0,0 +1,4 @@ +SearchAliasViewIndexOptions | arangojs - v9.0.0

Type alias SearchAliasViewIndexOptions

SearchAliasViewIndexOptions: {
    collection: string;
    index: string;
}

Options defining an index used in a SearchAlias View.

+

Type declaration

  • collection: string

    Name of a collection.

    +
  • index: string

    Name of an inverted index in the collection.

    +
\ No newline at end of file diff --git a/9.0.0/types/view.SearchAliasViewPatchIndexOptions.html b/9.0.0/types/view.SearchAliasViewPatchIndexOptions.html new file mode 100644 index 00000000..e1da7839 --- /dev/null +++ b/9.0.0/types/view.SearchAliasViewPatchIndexOptions.html @@ -0,0 +1,4 @@ +SearchAliasViewPatchIndexOptions | arangojs - v9.0.0

Type alias SearchAliasViewPatchIndexOptions

SearchAliasViewPatchIndexOptions: SearchAliasViewIndexOptions & {
    operation?: "add" | "del";
}

Options defining an index to be modified in a SearchAlias View.

+

Type declaration

  • Optional operation?: "add" | "del"

    Whether to add or remove the index.

    +

    Default: "add"

    +
\ No newline at end of file diff --git a/9.0.0/types/view.SearchAliasViewPatchPropertiesOptions.html b/9.0.0/types/view.SearchAliasViewPatchPropertiesOptions.html new file mode 100644 index 00000000..a8138649 --- /dev/null +++ b/9.0.0/types/view.SearchAliasViewPatchPropertiesOptions.html @@ -0,0 +1,3 @@ +SearchAliasViewPatchPropertiesOptions | arangojs - v9.0.0

Type alias SearchAliasViewPatchPropertiesOptions

SearchAliasViewPatchPropertiesOptions: {
    indexes: SearchAliasViewPatchIndexOptions[];
}

Options for partially modifying the properties of a SearchAlias View.

+

Type declaration

\ No newline at end of file diff --git a/9.0.0/types/view.SearchAliasViewProperties.html b/9.0.0/types/view.SearchAliasViewProperties.html new file mode 100644 index 00000000..54acadb7 --- /dev/null +++ b/9.0.0/types/view.SearchAliasViewProperties.html @@ -0,0 +1,2 @@ +SearchAliasViewProperties | arangojs - v9.0.0

Type alias SearchAliasViewProperties

SearchAliasViewProperties: SearchAliasViewDescription & {
    indexes: {
        collection: string;
        index: string;
    }[];
}

Properties of a SearchAlias View.

+

Type declaration

  • indexes: {
        collection: string;
        index: string;
    }[]
\ No newline at end of file diff --git a/9.0.0/types/view.SearchAliasViewPropertiesOptions.html b/9.0.0/types/view.SearchAliasViewPropertiesOptions.html new file mode 100644 index 00000000..df8dbd74 --- /dev/null +++ b/9.0.0/types/view.SearchAliasViewPropertiesOptions.html @@ -0,0 +1,3 @@ +SearchAliasViewPropertiesOptions | arangojs - v9.0.0

Type alias SearchAliasViewPropertiesOptions

SearchAliasViewPropertiesOptions: {
    indexes: SearchAliasViewIndexOptions[];
}

Options for modifying the properties of a SearchAlias View.

+

Type declaration

\ No newline at end of file diff --git a/9.0.0/types/view.TierConsolidationPolicy.html b/9.0.0/types/view.TierConsolidationPolicy.html new file mode 100644 index 00000000..4f573986 --- /dev/null +++ b/9.0.0/types/view.TierConsolidationPolicy.html @@ -0,0 +1,17 @@ +TierConsolidationPolicy | arangojs - v9.0.0

Type alias TierConsolidationPolicy

TierConsolidationPolicy: {
    minScore?: number;
    segmentsBytesFloor?: number;
    segmentsBytesMax?: number;
    segmentsMax?: number;
    segmentsMin?: number;
    type: "tier";
}

Policy to consolidate if the sum of all candidate segment byte size is less +than the total segment byte size multiplied by a given threshold.

+

Type declaration

  • Optional minScore?: number

    Consolidation candidates with a score less than this value will be +filtered out.

    +

    Default: 0

    +
  • Optional segmentsBytesFloor?: number

    Size below which all segments are treated as equivalent.

    +

    Default: 2097152 (2 MiB)

    +
  • Optional segmentsBytesMax?: number

    Maximum allowed size of all consolidation segments.

    +

    Default: 5368709120 (5 GiB)

    +
  • Optional segmentsMax?: number

    Maximum number of segments that are evaluated as candidates for +consolidation.

    +

    Default: 10

    +
  • Optional segmentsMin?: number

    Minimum number of segments that are evaluated as candidates for +consolidation.

    +

    Default: 1

    +
  • type: "tier"

    Type of consolidation policy.

    +
\ No newline at end of file diff --git a/9.0.0/types/view.ViewDescription.html b/9.0.0/types/view.ViewDescription.html new file mode 100644 index 00000000..4866634c --- /dev/null +++ b/9.0.0/types/view.ViewDescription.html @@ -0,0 +1 @@ +ViewDescription | arangojs - v9.0.0

Type alias ViewDescription

\ No newline at end of file diff --git a/9.0.0/types/view.ViewPatchPropertiesOptions.html b/9.0.0/types/view.ViewPatchPropertiesOptions.html new file mode 100644 index 00000000..53774fad --- /dev/null +++ b/9.0.0/types/view.ViewPatchPropertiesOptions.html @@ -0,0 +1,2 @@ +ViewPatchPropertiesOptions | arangojs - v9.0.0

Type alias ViewPatchPropertiesOptions

Options for partially modifying a View's properties.

+
\ No newline at end of file diff --git a/9.0.0/types/view.ViewProperties.html b/9.0.0/types/view.ViewProperties.html new file mode 100644 index 00000000..bfa05023 --- /dev/null +++ b/9.0.0/types/view.ViewProperties.html @@ -0,0 +1 @@ +ViewProperties | arangojs - v9.0.0

Type alias ViewProperties

\ No newline at end of file diff --git a/9.0.0/types/view.ViewPropertiesOptions.html b/9.0.0/types/view.ViewPropertiesOptions.html new file mode 100644 index 00000000..9c5164d7 --- /dev/null +++ b/9.0.0/types/view.ViewPropertiesOptions.html @@ -0,0 +1,2 @@ +ViewPropertiesOptions | arangojs - v9.0.0

Type alias ViewPropertiesOptions

Options for replacing a View's properties.

+
\ No newline at end of file diff --git a/CHANGELOG.md b/CHANGELOG.md index b72672da..605aea68 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -19,47 +19,7 @@ This driver uses semantic versioning: - A change in the major version (e.g. 1.Y.Z -> 2.0.0) indicates _breaking_ changes that require changes in your code to upgrade. -## [9.0.0-preview.4] - 2024-06-18 - -### Added - -- Added readonly `Job#id` property - - This property was not previously exposed. - -## [9.0.0-preview.3] - 2024-06-12 - -### Removed - -- Removed `Collection` methods for simple queries: `list`, `all`, `any`, - `byExample`, `firstExample`, `removeByExample`, `replaceByExample`, - `updateByExample`, `lookupByKeys`, `removeByKeys`, `fulltext` - - Simple queries were deprecated in ArangoDB 3.4 and can be replicated with AQL. - -### Added - -- Added support for `withStats` option in `collection.indexes` - - This method now takes an object with `withStats` and `withHidden` options - instead of a boolean flag. - -## [9.0.0-preview.2] - 2024-05-15 - -### Changed - -- Inlined `x3-linkedlist` dependency - - Inlining this dependency should help make arangojs more portable. - -### Added - -- Added support for `withHidden` option in `collection.indexes` - - This option was introduced in ArangoDB 3.10.13 and 3.11.7 and allows - fetching the progress information of indexes that are in the building phase. - -## [9.0.0-preview.1] - 2024-04-16 +## [9.0.0] - 2024-07-31 This is a major release and breaks backwards compatibility. @@ -92,6 +52,12 @@ for upgrading your code to arangojs v9. published to npm. The npm package can still be used in the browser by using common frontend tooling like webpack or rollup. +- Removed `Collection` methods for simple queries: `list`, `all`, `any`, + `byExample`, `firstExample`, `removeByExample`, `replaceByExample`, + `updateByExample`, `lookupByKeys`, `removeByKeys`, `fulltext` + + Simple queries were deprecated in ArangoDB 3.4 and can be replicated with AQL. + ### Changed - Replaced request logic with native `fetch` API ([#788](https://github.com/arangodb/arangojs/issues/788), DE-578, DE-758) @@ -121,6 +87,17 @@ for upgrading your code to arangojs v9. should help support more environments and reduce the size of the browser bundle. +- Inlined `x3-linkedlist` dependency + + Inlining this dependency should help make arangojs more portable. + +- Split the Collection type parameter into result and input types ([#807](https://github.com/arangodb/arangojs/issues/807)) + + It is now possible to specify a separate type for the data passed when + creating or modifying documents in addition to the type of the data returned + when fetching documents. This allows excluding computed properties from + the input type while still including them in the result type. + ### Added - Added ESM support (DE-236) @@ -129,6 +106,29 @@ for upgrading your code to arangojs v9. and provides exports for both types of environments. This change should be backwards-compatible. +- Added support for `withHidden` option in `collection.indexes` + + This option was introduced in ArangoDB 3.10.13 and 3.11.7 and allows + fetching the progress information of indexes that are in the building phase. + +- Added support for `withStats` option in `collection.indexes` + + This method now takes an object with `withStats` and `withHidden` options + instead of a boolean flag. + +- Added readonly `Job#id` property + + This property was not previously exposed. + +- Added `skipFastLockRound` option for streaming transactions + + This option was introduced in 3.12.1 and allows skipping the fast lock round. + +- Added non-specific `EnsureIndexOptions` type and `ensureIndex` method + signature ([#778](https://github.com/arangodb/arangojs/issues/778)) + + This allows creating indexes without narrowing the index type. + ## [8.8.1] - 2024-03-20 ### Added @@ -1909,10 +1909,7 @@ For a detailed list of changes between pre-release versions of v7 see the Graph methods now only return the relevant part of the response body. -[9.0.0-preview.4]: https://github.com/arangodb/arangojs/compare/v9.0.0-preview.3...v9.0.0-preview.4 -[9.0.0-preview.3]: https://github.com/arangodb/arangojs/compare/v9.0.0-preview.2...v9.0.0-preview.3 -[9.0.0-preview.2]: https://github.com/arangodb/arangojs/compare/v9.0.0-preview.1...v9.0.0-preview.2 -[9.0.0-preview.1]: https://github.com/arangodb/arangojs/compare/v8.8.1...v9.0.0-preview.1 +[9.0.0]: https://github.com/arangodb/arangojs/compare/v8.8.1...v9.0.0 [8.8.1]: https://github.com/arangodb/arangojs/compare/v8.8.0...v8.8.1 [8.8.0]: https://github.com/arangodb/arangojs/compare/v8.7.0...v8.8.0 [8.7.0]: https://github.com/arangodb/arangojs/compare/v8.6.0...v8.7.0 diff --git a/VERSION b/VERSION new file mode 100644 index 00000000..f7ee0669 --- /dev/null +++ b/VERSION @@ -0,0 +1 @@ +9.0.0 diff --git a/VERSION.md b/VERSION.md index fb461292..65deb8bc 100644 --- a/VERSION.md +++ b/VERSION.md @@ -2,4 +2,4 @@ permalink: /VERSION title: "VERSION" --- -8.8.1 + diff --git a/_data/versions.json b/_data/versions.json index 8d216146..e7470500 100644 --- a/_data/versions.json +++ b/_data/versions.json @@ -1 +1 @@ -{"all":["9.0.0-preview.4","9.0.0-preview.3","9.0.0-preview.2","9.0.0-preview.1","8.8.1","8.8.0","8.7.0","8.6.0","8.5.0","8.4.1","8.4.0","8.3.1","8.3.0","8.2.1","8.2.0","8.1.0","8.0.0","8.0.0-rc.1","7.8.0","7.7.0","7.6.1","7.6.0","7.5.0","7.5.0-preview-arangodb.3.8","7.4.0","7.3.0","7.2.0","7.1.1","7.1.0","7.0.2","7.0.1","7.0.0","7.0.0-rc.2","7.0.0-rc.1","7.0.0-rc.0","7.0.0-preview.1","7.0.0-preview.0","6.14.1"],"stable":["8.8.1","8.8.0","8.7.0","8.6.0","8.5.0","8.4.1","8.4.0","8.3.1","8.3.0","8.2.1","8.2.0","8.1.0","8.0.0","7.8.0","7.7.0","7.6.1","7.6.0","7.5.0","7.4.0","7.3.0","7.2.0","7.1.1","7.1.0","7.0.2","7.0.1","7.0.0","6.14.1"]} +{"all":["9.0.0","9.0.0-preview.4","9.0.0-preview.3","9.0.0-preview.2","9.0.0-preview.1","8.8.1","8.8.0","8.7.0","8.6.0","8.5.0","8.4.1","8.4.0","8.3.1","8.3.0","8.2.1","8.2.0","8.1.0","8.0.0","8.0.0-rc.1","7.8.0","7.7.0","7.6.1","7.6.0","7.5.0","7.5.0-preview-arangodb.3.8","7.4.0","7.3.0","7.2.0","7.1.1","7.1.0","7.0.2","7.0.1","7.0.0","7.0.0-rc.2","7.0.0-rc.1","7.0.0-rc.0","7.0.0-preview.1","7.0.0-preview.0","6.14.1"],"stable":["9.0.0","8.8.1","8.8.0","8.7.0","8.6.0","8.5.0","8.4.1","8.4.0","8.3.1","8.3.0","8.2.1","8.2.0","8.1.0","8.0.0","7.8.0","7.7.0","7.6.1","7.6.0","7.5.0","7.4.0","7.3.0","7.2.0","7.1.1","7.1.0","7.0.2","7.0.1","7.0.0","6.14.1"]}