From f22966c8ebdec966adceb70b97b360aaed92641a Mon Sep 17 00:00:00 2001 From: pimterry <1526883+pimterry@users.noreply.github.com> Date: Thu, 11 Jan 2024 17:33:05 +0000 Subject: [PATCH] =?UTF-8?q?Deploying=20to=20gh-pages=20from=20@=20httptool?= =?UTF-8?q?kit/mockrtc@590bc975fa85d9e5fc9642fee4cc2d33efe9f3a8=20?= =?UTF-8?q?=F0=9F=9A=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .nojekyll | 1 + assets/highlight.css | 106 + assets/main.js | 58 + assets/search.js | 1 + assets/style.css | 1367 +++++++ classes/DataChannelStream.html | 3240 ++++++++++++++++ ...erStepDefinitions.CloseStepDefinition.html | 174 + ...finitions.CreateChannelStepDefinition.html | 188 + ...efinitions.DynamicProxyStepDefinition.html | 174 + ...lerStepDefinitions.EchoStepDefinition.html | 174 + ...epDefinitions.PeerProxyStepDefinition.html | 199 + ...lerStepDefinitions.SendStepDefinition.html | 197 + ...initions.WaitForChannelStepDefinition.html | 188 + ...nitions.WaitForDurationStepDefinition.html | 188 + ...efinitions.WaitForMediaStepDefinition.html | 174 + ...initions.WaitForMessageStepDefinition.html | 188 + ...efinitions.WaitForTrackStepDefinition.html | 174 + ...itions.HasAudioTrackMatcherDefinition.html | 170 + ...tions.HasDataChannelMatcherDefinition.html | 170 + ...itions.HasMediaTrackMatcherDefinition.html | 170 + ...itions.HasVideoTrackMatcherDefinition.html | 170 + ...Definitions.HostnameMatcherDefinition.html | 184 + ...Definitions.UrlRegexMatcherDefinition.html | 191 + ...tions.UserAgentRegexMatcherDefinition.html | 191 + classes/MediaTrackStream.html | 3258 ++++++++++++++++ classes/MockRTCAdminPlugin.html | 186 + classes/MockRTCAdminServer.html | 251 ++ classes/MockRTCConnection.html | 1127 ++++++ classes/MockRTCHandlerBuilder.html | 422 +++ classes/MockRTCRuleBuilder.html | 615 +++ classes/MockRTCServerPeer.html | 327 ++ classes/PluggableAdmin.AdminClient.html | 1076 ++++++ classes/PluggableAdmin.AdminServer.html | 270 ++ .../PluggableAdmin.SchemaIntrospector.html | 217 ++ ...min.Serialization.ClientServerChannel.html | 3330 +++++++++++++++++ ...gableAdmin.Serialization.Serializable.html | 169 + classes/RTCConnection.html | 1069 ++++++ ...ggableAdmin.Serialization.deserialize.html | 142 + ...Admin.Serialization.deserializeBuffer.html | 126 + ....Serialization.deserializeProxyConfig.html | 130 + ....Serialization.ensureParamsDeferenced.html | 133 + ...min.Serialization.maybeSerializeParam.html | 133 + ...luggableAdmin.Serialization.serialize.html | 133 + ...leAdmin.Serialization.serializeBuffer.html | 126 + ...in.Serialization.serializeProxyConfig.html | 128 + functions/getAdminServer.html | 96 + functions/getLocal.html | 95 + functions/getRemote.html | 96 + functions/hookAllWebRTC.html | 96 + functions/hookWebRTCConnection.html | 108 + index.html | 128 + interfaces/AnswerOptions.html | 124 + interfaces/ConnectionMetadata.html | 130 + interfaces/HandlerStep.html | 140 + ...StepDefinitions.HandlerStepDefinition.html | 160 + .../MatcherDefinitions.MatcherDefinition.html | 150 + interfaces/MockRTC.html | 299 ++ interfaces/MockRTCAnswerParams.html | 113 + interfaces/MockRTCExternalAnswerParams.html | 120 + interfaces/MockRTCExternalOfferParams.html | 140 + interfaces/MockRTCOfferParams.html | 133 + interfaces/MockRTCOptions.html | 122 + interfaces/MockRTCPeer.html | 274 ++ interfaces/MockRTCPeerBuilder.html | 396 ++ interfaces/MockRTCPeerOptions.html | 113 + interfaces/MockRTCSession.html | 178 + interfaces/MockRTCSessionDescription.html | 113 + interfaces/OfferOptions.html | 139 + .../PluggableAdmin.AdminClientOptions.html | 156 + interfaces/PluggableAdmin.AdminPlugin.html | 224 ++ interfaces/PluggableAdmin.AdminQuery.html | 162 + .../PluggableAdmin.AdminServerOptions.html | 190 + interfaces/PluggableAdmin.QueryContext.html | 126 + interfaces/SelectedRTCCandidate.html | 127 + interfaces/SessionData.html | 113 + interfaces/TimingEvents.html | 127 + modules/HandlerStepDefinitions.html | 129 + modules/MatcherDefinitions.html | 121 + modules/PluggableAdmin.Serialization.html | 141 + modules/PluggableAdmin.html | 125 + .../HandlerStepDefinitions.Serializable.html | 102 + types/MatcherDefinitions.Serializable.html | 98 + types/MockRTCClientOptions.html | 82 + types/MockRTCControlMessage.html | 96 + types/MockRTCEvent.html | 82 + types/MockRTCEventData.html | 252 ++ types/MockRTCRuleDefinition.html | 89 + types/ParsedSDP.html | 87 + .../PluggableAdmin.PluginClientResponse.html | 104 + ...uggableAdmin.PluginClientResponsesMap.html | 104 + types/PluggableAdmin.PluginStartParams.html | 104 + .../PluggableAdmin.PluginStartParamsMap.html | 104 + ...uggableAdmin.Serialization.Serialized.html | 122 + ...n.Serialization.SerializedProxyConfig.html | 117 + ...tion.SerializedRuleParameterReference.html | 127 + ...leAdmin.Serialization.SerializedValue.html | 127 + types/RuleHandlerBuilder.html | 82 + ...HandlerStepDefinitions.Serializable-1.html | 102 + ...rStepDefinitions.StepDefinitionLookup.html | 126 + variables/MOCKRTC_CONTROL_CHANNEL.html | 82 + ...erDefinitions.MatcherDefinitionLookup.html | 114 + .../MatcherDefinitions.Serializable-1.html | 98 + 102 files changed, 29010 insertions(+) create mode 100644 .nojekyll create mode 100644 assets/highlight.css create mode 100644 assets/main.js create mode 100644 assets/search.js create mode 100644 assets/style.css create mode 100644 classes/DataChannelStream.html create mode 100644 classes/HandlerStepDefinitions.CloseStepDefinition.html create mode 100644 classes/HandlerStepDefinitions.CreateChannelStepDefinition.html create mode 100644 classes/HandlerStepDefinitions.DynamicProxyStepDefinition.html create mode 100644 classes/HandlerStepDefinitions.EchoStepDefinition.html create mode 100644 classes/HandlerStepDefinitions.PeerProxyStepDefinition.html create mode 100644 classes/HandlerStepDefinitions.SendStepDefinition.html create mode 100644 classes/HandlerStepDefinitions.WaitForChannelStepDefinition.html create mode 100644 classes/HandlerStepDefinitions.WaitForDurationStepDefinition.html create mode 100644 classes/HandlerStepDefinitions.WaitForMediaStepDefinition.html create mode 100644 classes/HandlerStepDefinitions.WaitForMessageStepDefinition.html create mode 100644 classes/HandlerStepDefinitions.WaitForTrackStepDefinition.html create mode 100644 classes/MatcherDefinitions.HasAudioTrackMatcherDefinition.html create mode 100644 classes/MatcherDefinitions.HasDataChannelMatcherDefinition.html create mode 100644 classes/MatcherDefinitions.HasMediaTrackMatcherDefinition.html create mode 100644 classes/MatcherDefinitions.HasVideoTrackMatcherDefinition.html create mode 100644 classes/MatcherDefinitions.HostnameMatcherDefinition.html create mode 100644 classes/MatcherDefinitions.UrlRegexMatcherDefinition.html create mode 100644 classes/MatcherDefinitions.UserAgentRegexMatcherDefinition.html create mode 100644 classes/MediaTrackStream.html create mode 100644 classes/MockRTCAdminPlugin.html create mode 100644 classes/MockRTCAdminServer.html create mode 100644 classes/MockRTCConnection.html create mode 100644 classes/MockRTCHandlerBuilder.html create mode 100644 classes/MockRTCRuleBuilder.html create mode 100644 classes/MockRTCServerPeer.html create mode 100644 classes/PluggableAdmin.AdminClient.html create mode 100644 classes/PluggableAdmin.AdminServer.html create mode 100644 classes/PluggableAdmin.SchemaIntrospector.html create mode 100644 classes/PluggableAdmin.Serialization.ClientServerChannel.html create mode 100644 classes/PluggableAdmin.Serialization.Serializable.html create mode 100644 classes/RTCConnection.html create mode 100644 functions/PluggableAdmin.Serialization.deserialize.html create mode 100644 functions/PluggableAdmin.Serialization.deserializeBuffer.html create mode 100644 functions/PluggableAdmin.Serialization.deserializeProxyConfig.html create mode 100644 functions/PluggableAdmin.Serialization.ensureParamsDeferenced.html create mode 100644 functions/PluggableAdmin.Serialization.maybeSerializeParam.html create mode 100644 functions/PluggableAdmin.Serialization.serialize.html create mode 100644 functions/PluggableAdmin.Serialization.serializeBuffer.html create mode 100644 functions/PluggableAdmin.Serialization.serializeProxyConfig.html create mode 100644 functions/getAdminServer.html create mode 100644 functions/getLocal.html create mode 100644 functions/getRemote.html create mode 100644 functions/hookAllWebRTC.html create mode 100644 functions/hookWebRTCConnection.html create mode 100644 index.html create mode 100644 interfaces/AnswerOptions.html create mode 100644 interfaces/ConnectionMetadata.html create mode 100644 interfaces/HandlerStep.html create mode 100644 interfaces/HandlerStepDefinitions.HandlerStepDefinition.html create mode 100644 interfaces/MatcherDefinitions.MatcherDefinition.html create mode 100644 interfaces/MockRTC.html create mode 100644 interfaces/MockRTCAnswerParams.html create mode 100644 interfaces/MockRTCExternalAnswerParams.html create mode 100644 interfaces/MockRTCExternalOfferParams.html create mode 100644 interfaces/MockRTCOfferParams.html create mode 100644 interfaces/MockRTCOptions.html create mode 100644 interfaces/MockRTCPeer.html create mode 100644 interfaces/MockRTCPeerBuilder.html create mode 100644 interfaces/MockRTCPeerOptions.html create mode 100644 interfaces/MockRTCSession.html create mode 100644 interfaces/MockRTCSessionDescription.html create mode 100644 interfaces/OfferOptions.html create mode 100644 interfaces/PluggableAdmin.AdminClientOptions.html create mode 100644 interfaces/PluggableAdmin.AdminPlugin.html create mode 100644 interfaces/PluggableAdmin.AdminQuery.html create mode 100644 interfaces/PluggableAdmin.AdminServerOptions.html create mode 100644 interfaces/PluggableAdmin.QueryContext.html create mode 100644 interfaces/SelectedRTCCandidate.html create mode 100644 interfaces/SessionData.html create mode 100644 interfaces/TimingEvents.html create mode 100644 modules/HandlerStepDefinitions.html create mode 100644 modules/MatcherDefinitions.html create mode 100644 modules/PluggableAdmin.Serialization.html create mode 100644 modules/PluggableAdmin.html create mode 100644 types/HandlerStepDefinitions.Serializable.html create mode 100644 types/MatcherDefinitions.Serializable.html create mode 100644 types/MockRTCClientOptions.html create mode 100644 types/MockRTCControlMessage.html create mode 100644 types/MockRTCEvent.html create mode 100644 types/MockRTCEventData.html create mode 100644 types/MockRTCRuleDefinition.html create mode 100644 types/ParsedSDP.html create mode 100644 types/PluggableAdmin.PluginClientResponse.html create mode 100644 types/PluggableAdmin.PluginClientResponsesMap.html create mode 100644 types/PluggableAdmin.PluginStartParams.html create mode 100644 types/PluggableAdmin.PluginStartParamsMap.html create mode 100644 types/PluggableAdmin.Serialization.Serialized.html create mode 100644 types/PluggableAdmin.Serialization.SerializedProxyConfig.html create mode 100644 types/PluggableAdmin.Serialization.SerializedRuleParameterReference.html create mode 100644 types/PluggableAdmin.Serialization.SerializedValue.html create mode 100644 types/RuleHandlerBuilder.html create mode 100644 variables/HandlerStepDefinitions.Serializable-1.html create mode 100644 variables/HandlerStepDefinitions.StepDefinitionLookup.html create mode 100644 variables/MOCKRTC_CONTROL_CHANNEL.html create mode 100644 variables/MatcherDefinitions.MatcherDefinitionLookup.html create mode 100644 variables/MatcherDefinitions.Serializable-1.html diff --git a/.nojekyll b/.nojekyll new file mode 100644 index 0000000..e2ac661 --- /dev/null +++ b/.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/assets/highlight.css b/assets/highlight.css new file mode 100644 index 0000000..4026349 --- /dev/null +++ b/assets/highlight.css @@ -0,0 +1,106 @@ +:root { + --light-hl-0: #0000FF; + --dark-hl-0: #569CD6; + --light-hl-1: #000000; + --dark-hl-1: #D4D4D4; + --light-hl-2: #0070C1; + --dark-hl-2: #4FC1FF; + --light-hl-3: #795E26; + --dark-hl-3: #DCDCAA; + --light-hl-4: #A31515; + --dark-hl-4: #CE9178; + --light-hl-5: #001080; + --dark-hl-5: #9CDCFE; + --light-hl-6: #008000; + --dark-hl-6: #6A9955; + --light-hl-7: #000000FF; + --dark-hl-7: #D4D4D4; + --light-hl-8: #098658; + --dark-hl-8: #B5CEA8; + --light-hl-9: #AF00DB; + --dark-hl-9: #C586C0; + --light-hl-10: #811F3F; + --dark-hl-10: #D16969; + --light-hl-11: #EE0000; + --dark-hl-11: #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); + --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); + --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); + --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); + --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); } +pre, code { background: var(--code-background); } diff --git a/assets/main.js b/assets/main.js new file mode 100644 index 0000000..4c8fa61 --- /dev/null +++ b/assets/main.js @@ -0,0 +1,58 @@ +"use strict"; +"use strict";(()=>{var Se=Object.create;var re=Object.defineProperty;var we=Object.getOwnPropertyDescriptor;var Te=Object.getOwnPropertyNames;var ke=Object.getPrototypeOf,Qe=Object.prototype.hasOwnProperty;var Pe=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports);var Ie=(t,e,r,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of Te(e))!Qe.call(t,i)&&i!==r&&re(t,i,{get:()=>e[i],enumerable:!(n=we(e,i))||n.enumerable});return t};var Ce=(t,e,r)=>(r=t!=null?Se(ke(t)):{},Ie(e||!t||!t.__esModule?re(r,"default",{value:t,enumerable:!0}):r,t));var ae=Pe((se,oe)=>{(function(){var t=function(e){var r=new t.Builder;return r.pipeline.add(t.trimmer,t.stopWordFilter,t.stemmer),r.searchPipeline.add(t.stemmer),e.call(r,r),r.build()};t.version="2.3.9";t.utils={},t.utils.warn=function(e){return function(r){e.console&&console.warn&&console.warn(r)}}(this),t.utils.asString=function(e){return e==null?"":e.toString()},t.utils.clone=function(e){if(e==null)return e;for(var r=Object.create(null),n=Object.keys(e),i=0;i0){var d=t.utils.clone(r)||{};d.position=[a,u],d.index=s.length,s.push(new t.Token(n.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,r){r in this.registeredFunctions&&t.utils.warn("Overwriting existing registered function: "+r),e.label=r,t.Pipeline.registeredFunctions[e.label]=e},t.Pipeline.warnIfFunctionNotRegistered=function(e){var r=e.label&&e.label in this.registeredFunctions;r||t.utils.warn(`Function is not registered with pipeline. This may cause problems when serialising the index. +`,e)},t.Pipeline.load=function(e){var r=new t.Pipeline;return e.forEach(function(n){var i=t.Pipeline.registeredFunctions[n];if(i)r.add(i);else throw new Error("Cannot load unregistered function: "+n)}),r},t.Pipeline.prototype.add=function(){var e=Array.prototype.slice.call(arguments);e.forEach(function(r){t.Pipeline.warnIfFunctionNotRegistered(r),this._stack.push(r)},this)},t.Pipeline.prototype.after=function(e,r){t.Pipeline.warnIfFunctionNotRegistered(r);var n=this._stack.indexOf(e);if(n==-1)throw new Error("Cannot find existingFn");n=n+1,this._stack.splice(n,0,r)},t.Pipeline.prototype.before=function(e,r){t.Pipeline.warnIfFunctionNotRegistered(r);var n=this._stack.indexOf(e);if(n==-1)throw new Error("Cannot find existingFn");this._stack.splice(n,0,r)},t.Pipeline.prototype.remove=function(e){var r=this._stack.indexOf(e);r!=-1&&this._stack.splice(r,1)},t.Pipeline.prototype.run=function(e){for(var r=this._stack.length,n=0;n1&&(oe&&(n=s),o!=e);)i=n-r,s=r+Math.floor(i/2),o=this.elements[s*2];if(o==e||o>e)return s*2;if(ol?d+=2:a==l&&(r+=n[u+1]*i[d+1],u+=2,d+=2);return r},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),r=1,n=0;r0){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),m=s.str.charAt(1),y;m in s.node.edges?y=s.node.edges[m]:(y=new t.TokenSet,s.node.edges[m]=y),s.str.length==1&&(y.final=!0),i.push({node:y,editsRemaining:s.editsRemaining-1,str:d+s.str.slice(2)})}}}return n},t.TokenSet.fromString=function(e){for(var r=new t.TokenSet,n=r,i=0,s=e.length;i=e;r--){var n=this.uncheckedNodes[r],i=n.child.toString();i in this.minimizedNodes?n.parent.edges[n.char]=this.minimizedNodes[i]:(n.child._str=i,this.minimizedNodes[i]=n.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(r){var n=new t.QueryParser(e,r);n.parse()})},t.Index.prototype.query=function(e){for(var r=new t.Query(this.fields),n=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,r){var n=e[this._ref],i=Object.keys(this._fields);this._documents[n]=r||{},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,r;do e=this.next(),r=e.charCodeAt(0);while(r>47&&r<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 r=e.next();if(r==t.QueryLexer.EOS)return t.QueryLexer.lexEOS;if(r.charCodeAt(0)==92){e.escapeCharacter();continue}if(r==":")return t.QueryLexer.lexField;if(r=="~")return e.backup(),e.width()>0&&e.emit(t.QueryLexer.TERM),t.QueryLexer.lexEditDistance;if(r=="^")return e.backup(),e.width()>0&&e.emit(t.QueryLexer.TERM),t.QueryLexer.lexBoost;if(r=="+"&&e.width()===1||r=="-"&&e.width()===1)return e.emit(t.QueryLexer.PRESENCE),t.QueryLexer.lexText;if(r.match(t.QueryLexer.termSeparator))return t.QueryLexer.lexTerm}},t.QueryParser=function(e,r){this.lexer=new t.QueryLexer(e),this.query=r,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 r=e.peekLexeme();if(r!=null)switch(r.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 n="expected either a field or a term, found "+r.type;throw r.str.length>=1&&(n+=" with value '"+r.str+"'"),new t.QueryParseError(n,r.start,r.end)}},t.QueryParser.parsePresence=function(e){var r=e.consumeLexeme();if(r!=null){switch(r.str){case"-":e.currentClause.presence=t.Query.presence.PROHIBITED;break;case"+":e.currentClause.presence=t.Query.presence.REQUIRED;break;default:var n="unrecognised presence operator'"+r.str+"'";throw new t.QueryParseError(n,r.start,r.end)}var i=e.peekLexeme();if(i==null){var n="expecting term or field, found nothing";throw new t.QueryParseError(n,r.start,r.end)}switch(i.type){case t.QueryLexer.FIELD:return t.QueryParser.parseField;case t.QueryLexer.TERM:return t.QueryParser.parseTerm;default:var n="expecting term or field, found '"+i.type+"'";throw new t.QueryParseError(n,i.start,i.end)}}},t.QueryParser.parseField=function(e){var r=e.consumeLexeme();if(r!=null){if(e.query.allFields.indexOf(r.str)==-1){var n=e.query.allFields.map(function(o){return"'"+o+"'"}).join(", "),i="unrecognised field '"+r.str+"', possible fields: "+n;throw new t.QueryParseError(i,r.start,r.end)}e.currentClause.fields=[r.str];var s=e.peekLexeme();if(s==null){var i="expecting term, found nothing";throw new t.QueryParseError(i,r.start,r.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 r=e.consumeLexeme();if(r!=null){e.currentClause.term=r.str.toLowerCase(),r.str.indexOf("*")!=-1&&(e.currentClause.usePipeline=!1);var n=e.peekLexeme();if(n==null){e.nextClause();return}switch(n.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 '"+n.type+"'";throw new t.QueryParseError(i,n.start,n.end)}}},t.QueryParser.parseEditDistance=function(e){var r=e.consumeLexeme();if(r!=null){var n=parseInt(r.str,10);if(isNaN(n)){var i="edit distance must be numeric";throw new t.QueryParseError(i,r.start,r.end)}e.currentClause.editDistance=n;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 r=e.consumeLexeme();if(r!=null){var n=parseInt(r.str,10);if(isNaN(n)){var i="boost must be numeric";throw new t.QueryParseError(i,r.start,r.end)}e.currentClause.boost=n;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,r){typeof define=="function"&&define.amd?define(r):typeof se=="object"?oe.exports=r():e.lunr=r()}(this,function(){return t})})()});var ne=[];function G(t,e){ne.push({selector:e,constructor:t})}var U=class{constructor(){this.alwaysVisibleMember=null;this.createComponents(document.body),this.ensureActivePageVisible(),this.ensureFocusedElementVisible(),this.listenForCodeCopies(),window.addEventListener("hashchange",()=>this.ensureFocusedElementVisible())}createComponents(e){ne.forEach(r=>{e.querySelectorAll(r.selector).forEach(n=>{n.dataset.hasInstance||(new r.constructor({el:n,app:this}),n.dataset.hasInstance=String(!0))})})}filterChanged(){this.ensureFocusedElementVisible()}ensureActivePageVisible(){let e=document.querySelector(".tsd-navigation .current"),r=e?.parentElement;for(;r&&!r.classList.contains(".tsd-navigation");)r instanceof HTMLDetailsElement&&(r.open=!0),r=r.parentElement;if(e){let n=e.getBoundingClientRect().top-document.documentElement.clientHeight/4;document.querySelector(".site-menu").scrollTop=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 r=e.parentElement;for(;r&&r.tagName!=="SECTION";)r=r.parentElement;if(r&&r.offsetParent==null){this.alwaysVisibleMember=r,r.classList.add("always-visible");let n=document.createElement("p");n.classList.add("warning"),n.textContent="This member is normally hidden due to your filter settings.",r.prepend(n)}}listenForCodeCopies(){document.querySelectorAll("pre > button").forEach(e=>{let r;e.addEventListener("click",()=>{e.previousElementSibling instanceof HTMLElement&&navigator.clipboard.writeText(e.previousElementSibling.innerText.trim()),e.textContent="Copied!",e.classList.add("visible"),clearTimeout(r),r=setTimeout(()=>{e.classList.remove("visible"),r=setTimeout(()=>{e.textContent="Copy"},100)},1e3)})})}};var ie=(t,e=100)=>{let r;return()=>{clearTimeout(r),r=setTimeout(()=>t(),e)}};var ce=Ce(ae());function de(){let t=document.getElementById("tsd-search");if(!t)return;let e=document.getElementById("tsd-search-script");t.classList.add("loading"),e&&(e.addEventListener("error",()=>{t.classList.remove("loading"),t.classList.add("failure")}),e.addEventListener("load",()=>{t.classList.remove("loading"),t.classList.add("ready")}),window.searchData&&t.classList.remove("loading"));let r=document.querySelector("#tsd-search input"),n=document.querySelector("#tsd-search .results");if(!r||!n)throw new Error("The input field or the result list wrapper was not found");let i=!1;n.addEventListener("mousedown",()=>i=!0),n.addEventListener("mouseup",()=>{i=!1,t.classList.remove("has-focus")}),r.addEventListener("focus",()=>t.classList.add("has-focus")),r.addEventListener("blur",()=>{i||(i=!1,t.classList.remove("has-focus"))});let s={base:t.dataset.base+"/"};Oe(t,n,r,s)}function Oe(t,e,r,n){r.addEventListener("input",ie(()=>{Re(t,e,r,n)},200));let i=!1;r.addEventListener("keydown",s=>{i=!0,s.key=="Enter"?Fe(e,r):s.key=="Escape"?r.blur():s.key=="ArrowUp"?ue(e,-1):s.key==="ArrowDown"?ue(e,1):i=!1}),r.addEventListener("keypress",s=>{i&&s.preventDefault()}),document.body.addEventListener("keydown",s=>{s.altKey||s.ctrlKey||s.metaKey||!r.matches(":focus")&&s.key==="/"&&(r.focus(),s.preventDefault())})}function _e(t,e){t.index||window.searchData&&(e.classList.remove("loading"),e.classList.add("ready"),t.data=window.searchData,t.index=ce.Index.load(window.searchData.index))}function Re(t,e,r,n){if(_e(n,t),!n.index||!n.data)return;e.textContent="";let i=r.value.trim(),s=i?n.index.search(`*${i}*`):[];for(let o=0;oa.score-o.score);for(let o=0,a=Math.min(10,s.length);o${le(l.parent,i)}.${u}`);let d=document.createElement("li");d.classList.value=l.classes??"";let m=document.createElement("a");m.href=n.base+l.url,m.innerHTML=u,d.append(m),e.appendChild(d)}}function ue(t,e){let r=t.querySelector(".current");if(!r)r=t.querySelector(e==1?"li:first-child":"li:last-child"),r&&r.classList.add("current");else{let n=r;if(e===1)do n=n.nextElementSibling??void 0;while(n instanceof HTMLElement&&n.offsetParent==null);else do n=n.previousElementSibling??void 0;while(n instanceof HTMLElement&&n.offsetParent==null);n&&(r.classList.remove("current"),n.classList.add("current"))}}function Fe(t,e){let r=t.querySelector(".current");if(r||(r=t.querySelector("li:first-child")),r){let n=r.querySelector("a");n&&(window.location.href=n.href),e.blur()}}function le(t,e){if(e==="")return t;let r=t.toLocaleLowerCase(),n=e.toLocaleLowerCase(),i=[],s=0,o=r.indexOf(n);for(;o!=-1;)i.push(K(t.substring(s,o)),`${K(t.substring(o,o+n.length))}`),s=o+n.length,o=r.indexOf(n,s);return i.push(K(t.substring(s))),i.join("")}var Me={"&":"&","<":"<",">":">","'":"'",'"':"""};function K(t){return t.replace(/[&<>"'"]/g,e=>Me[e])}var P=class{constructor(e){this.el=e.el,this.app=e.app}};var M="mousedown",fe="mousemove",N="mouseup",J={x:0,y:0},he=!1,ee=!1,De=!1,D=!1,pe=/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent);document.documentElement.classList.add(pe?"is-mobile":"not-mobile");pe&&"ontouchstart"in document.documentElement&&(De=!0,M="touchstart",fe="touchmove",N="touchend");document.addEventListener(M,t=>{ee=!0,D=!1;let e=M=="touchstart"?t.targetTouches[0]:t;J.y=e.pageY||0,J.x=e.pageX||0});document.addEventListener(fe,t=>{if(ee&&!D){let e=M=="touchstart"?t.targetTouches[0]:t,r=J.x-(e.pageX||0),n=J.y-(e.pageY||0);D=Math.sqrt(r*r+n*n)>10}});document.addEventListener(N,()=>{ee=!1});document.addEventListener("click",t=>{he&&(t.preventDefault(),t.stopImmediatePropagation(),he=!1)});var X=class extends P{constructor(r){super(r);this.className=this.el.dataset.toggle||"",this.el.addEventListener(N,n=>this.onPointerUp(n)),this.el.addEventListener("click",n=>n.preventDefault()),document.addEventListener(M,n=>this.onDocumentPointerDown(n)),document.addEventListener(N,n=>this.onDocumentPointerUp(n))}setActive(r){if(this.active==r)return;this.active=r,document.documentElement.classList.toggle("has-"+this.className,r),this.el.classList.toggle("active",r);let n=(this.active?"to-has-":"from-has-")+this.className;document.documentElement.classList.add(n),setTimeout(()=>document.documentElement.classList.remove(n),500)}onPointerUp(r){D||(this.setActive(!0),r.preventDefault())}onDocumentPointerDown(r){if(this.active){if(r.target.closest(".col-sidebar, .tsd-filter-group"))return;this.setActive(!1)}}onDocumentPointerUp(r){if(!D&&this.active&&r.target.closest(".col-sidebar")){let n=r.target.closest("a");if(n){let i=window.location.href;i.indexOf("#")!=-1&&(i=i.substring(0,i.indexOf("#"))),n.href.substring(0,i.length)==i&&setTimeout(()=>this.setActive(!1),250)}}}};var te;try{te=localStorage}catch{te={getItem(){return null},setItem(){}}}var Q=te;var me=document.head.appendChild(document.createElement("style"));me.dataset.for="filters";var Y=class extends P{constructor(r){super(r);this.key=`filter-${this.el.name}`,this.value=this.el.checked,this.el.addEventListener("change",()=>{this.setLocalStorage(this.el.checked)}),this.setLocalStorage(this.fromLocalStorage()),me.innerHTML+=`html:not(.${this.key}) .tsd-is-${this.el.name} { display: none; } +`}fromLocalStorage(){let r=Q.getItem(this.key);return r?r==="true":this.el.checked}setLocalStorage(r){Q.setItem(this.key,r.toString()),this.value=r,this.handleValueChange()}handleValueChange(){this.el.checked=this.value,document.documentElement.classList.toggle(this.key,this.value),this.app.filterChanged(),document.querySelectorAll(".tsd-index-section").forEach(r=>{r.style.display="block";let n=Array.from(r.querySelectorAll(".tsd-index-link")).every(i=>i.offsetParent==null);r.style.display=n?"none":"block"})}};var Z=class extends P{constructor(r){super(r);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()),this.update()}update(){this.icon.style.transform=`rotate(${this.el.open?0:-90}deg)`,Q.setItem(this.key,this.el.open.toString())}};function ve(t){let e=Q.getItem("tsd-theme")||"os";t.value=e,ye(e),t.addEventListener("change",()=>{Q.setItem("tsd-theme",t.value),ye(t.value)})}function ye(t){document.documentElement.dataset.theme=t}de();G(X,"a[data-toggle]");G(Z,".tsd-index-accordion");G(Y,".tsd-filter-item input[type=checkbox]");var ge=document.getElementById("tsd-theme");ge&&ve(ge);var Ae=new U;Object.defineProperty(window,"app",{value:Ae});document.querySelectorAll("summary a").forEach(t=>{t.addEventListener("click",()=>{location.assign(t.href)})});})(); +/*! 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/assets/search.js b/assets/search.js new file mode 100644 index 0000000..f2557a9 --- /dev/null +++ b/assets/search.js @@ -0,0 +1 @@ +window.searchData = JSON.parse("{\"rows\":[{\"kind\":64,\"name\":\"getLocal\",\"url\":\"functions/getLocal.html\",\"classes\":\"\"},{\"kind\":64,\"name\":\"getRemote\",\"url\":\"functions/getRemote.html\",\"classes\":\"\"},{\"kind\":64,\"name\":\"getAdminServer\",\"url\":\"functions/getAdminServer.html\",\"classes\":\"\"},{\"kind\":128,\"name\":\"MockRTCAdminPlugin\",\"url\":\"classes/MockRTCAdminPlugin.html\",\"classes\":\"\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/MockRTCAdminPlugin.html#constructor\",\"classes\":\"\",\"parent\":\"MockRTCAdminPlugin\"},{\"kind\":2048,\"name\":\"start\",\"url\":\"classes/MockRTCAdminPlugin.html#start\",\"classes\":\"\",\"parent\":\"MockRTCAdminPlugin\"},{\"kind\":2048,\"name\":\"reset\",\"url\":\"classes/MockRTCAdminPlugin.html#reset\",\"classes\":\"\",\"parent\":\"MockRTCAdminPlugin\"},{\"kind\":2048,\"name\":\"stop\",\"url\":\"classes/MockRTCAdminPlugin.html#stop\",\"classes\":\"\",\"parent\":\"MockRTCAdminPlugin\"},{\"kind\":1024,\"name\":\"schema\",\"url\":\"classes/MockRTCAdminPlugin.html#schema\",\"classes\":\"\",\"parent\":\"MockRTCAdminPlugin\"},{\"kind\":2048,\"name\":\"buildResolvers\",\"url\":\"classes/MockRTCAdminPlugin.html#buildResolvers\",\"classes\":\"\",\"parent\":\"MockRTCAdminPlugin\"},{\"kind\":4,\"name\":\"HandlerStepDefinitions\",\"url\":\"modules/HandlerStepDefinitions.html\",\"classes\":\"\"},{\"kind\":32,\"name\":\"Serializable\",\"url\":\"variables/HandlerStepDefinitions.Serializable-1.html\",\"classes\":\"\",\"parent\":\"HandlerStepDefinitions\"},{\"kind\":4194304,\"name\":\"Serializable\",\"url\":\"types/HandlerStepDefinitions.Serializable.html\",\"classes\":\"\",\"parent\":\"HandlerStepDefinitions\"},{\"kind\":256,\"name\":\"HandlerStepDefinition\",\"url\":\"interfaces/HandlerStepDefinitions.HandlerStepDefinition.html\",\"classes\":\"\",\"parent\":\"HandlerStepDefinitions\"},{\"kind\":1024,\"name\":\"type\",\"url\":\"interfaces/HandlerStepDefinitions.HandlerStepDefinition.html#type\",\"classes\":\"\",\"parent\":\"HandlerStepDefinitions.HandlerStepDefinition\"},{\"kind\":128,\"name\":\"WaitForDurationStepDefinition\",\"url\":\"classes/HandlerStepDefinitions.WaitForDurationStepDefinition.html\",\"classes\":\"\",\"parent\":\"HandlerStepDefinitions\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/HandlerStepDefinitions.WaitForDurationStepDefinition.html#constructor\",\"classes\":\"\",\"parent\":\"HandlerStepDefinitions.WaitForDurationStepDefinition\"},{\"kind\":1024,\"name\":\"type\",\"url\":\"classes/HandlerStepDefinitions.WaitForDurationStepDefinition.html#type\",\"classes\":\"\",\"parent\":\"HandlerStepDefinitions.WaitForDurationStepDefinition\"},{\"kind\":1024,\"name\":\"durationMs\",\"url\":\"classes/HandlerStepDefinitions.WaitForDurationStepDefinition.html#durationMs\",\"classes\":\"\",\"parent\":\"HandlerStepDefinitions.WaitForDurationStepDefinition\"},{\"kind\":2048,\"name\":\"explain\",\"url\":\"classes/HandlerStepDefinitions.WaitForDurationStepDefinition.html#explain\",\"classes\":\"\",\"parent\":\"HandlerStepDefinitions.WaitForDurationStepDefinition\"},{\"kind\":128,\"name\":\"WaitForChannelStepDefinition\",\"url\":\"classes/HandlerStepDefinitions.WaitForChannelStepDefinition.html\",\"classes\":\"\",\"parent\":\"HandlerStepDefinitions\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/HandlerStepDefinitions.WaitForChannelStepDefinition.html#constructor\",\"classes\":\"\",\"parent\":\"HandlerStepDefinitions.WaitForChannelStepDefinition\"},{\"kind\":1024,\"name\":\"type\",\"url\":\"classes/HandlerStepDefinitions.WaitForChannelStepDefinition.html#type\",\"classes\":\"\",\"parent\":\"HandlerStepDefinitions.WaitForChannelStepDefinition\"},{\"kind\":1024,\"name\":\"channelLabel\",\"url\":\"classes/HandlerStepDefinitions.WaitForChannelStepDefinition.html#channelLabel\",\"classes\":\"\",\"parent\":\"HandlerStepDefinitions.WaitForChannelStepDefinition\"},{\"kind\":2048,\"name\":\"explain\",\"url\":\"classes/HandlerStepDefinitions.WaitForChannelStepDefinition.html#explain\",\"classes\":\"\",\"parent\":\"HandlerStepDefinitions.WaitForChannelStepDefinition\"},{\"kind\":128,\"name\":\"WaitForMessageStepDefinition\",\"url\":\"classes/HandlerStepDefinitions.WaitForMessageStepDefinition.html\",\"classes\":\"\",\"parent\":\"HandlerStepDefinitions\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/HandlerStepDefinitions.WaitForMessageStepDefinition.html#constructor\",\"classes\":\"\",\"parent\":\"HandlerStepDefinitions.WaitForMessageStepDefinition\"},{\"kind\":1024,\"name\":\"type\",\"url\":\"classes/HandlerStepDefinitions.WaitForMessageStepDefinition.html#type\",\"classes\":\"\",\"parent\":\"HandlerStepDefinitions.WaitForMessageStepDefinition\"},{\"kind\":1024,\"name\":\"channelLabel\",\"url\":\"classes/HandlerStepDefinitions.WaitForMessageStepDefinition.html#channelLabel\",\"classes\":\"\",\"parent\":\"HandlerStepDefinitions.WaitForMessageStepDefinition\"},{\"kind\":2048,\"name\":\"explain\",\"url\":\"classes/HandlerStepDefinitions.WaitForMessageStepDefinition.html#explain\",\"classes\":\"\",\"parent\":\"HandlerStepDefinitions.WaitForMessageStepDefinition\"},{\"kind\":128,\"name\":\"WaitForTrackStepDefinition\",\"url\":\"classes/HandlerStepDefinitions.WaitForTrackStepDefinition.html\",\"classes\":\"\",\"parent\":\"HandlerStepDefinitions\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/HandlerStepDefinitions.WaitForTrackStepDefinition.html#constructor\",\"classes\":\"tsd-is-inherited\",\"parent\":\"HandlerStepDefinitions.WaitForTrackStepDefinition\"},{\"kind\":1024,\"name\":\"type\",\"url\":\"classes/HandlerStepDefinitions.WaitForTrackStepDefinition.html#type\",\"classes\":\"\",\"parent\":\"HandlerStepDefinitions.WaitForTrackStepDefinition\"},{\"kind\":2048,\"name\":\"explain\",\"url\":\"classes/HandlerStepDefinitions.WaitForTrackStepDefinition.html#explain\",\"classes\":\"\",\"parent\":\"HandlerStepDefinitions.WaitForTrackStepDefinition\"},{\"kind\":128,\"name\":\"WaitForMediaStepDefinition\",\"url\":\"classes/HandlerStepDefinitions.WaitForMediaStepDefinition.html\",\"classes\":\"\",\"parent\":\"HandlerStepDefinitions\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/HandlerStepDefinitions.WaitForMediaStepDefinition.html#constructor\",\"classes\":\"tsd-is-inherited\",\"parent\":\"HandlerStepDefinitions.WaitForMediaStepDefinition\"},{\"kind\":1024,\"name\":\"type\",\"url\":\"classes/HandlerStepDefinitions.WaitForMediaStepDefinition.html#type\",\"classes\":\"\",\"parent\":\"HandlerStepDefinitions.WaitForMediaStepDefinition\"},{\"kind\":2048,\"name\":\"explain\",\"url\":\"classes/HandlerStepDefinitions.WaitForMediaStepDefinition.html#explain\",\"classes\":\"\",\"parent\":\"HandlerStepDefinitions.WaitForMediaStepDefinition\"},{\"kind\":128,\"name\":\"CreateChannelStepDefinition\",\"url\":\"classes/HandlerStepDefinitions.CreateChannelStepDefinition.html\",\"classes\":\"\",\"parent\":\"HandlerStepDefinitions\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/HandlerStepDefinitions.CreateChannelStepDefinition.html#constructor\",\"classes\":\"\",\"parent\":\"HandlerStepDefinitions.CreateChannelStepDefinition\"},{\"kind\":1024,\"name\":\"type\",\"url\":\"classes/HandlerStepDefinitions.CreateChannelStepDefinition.html#type\",\"classes\":\"\",\"parent\":\"HandlerStepDefinitions.CreateChannelStepDefinition\"},{\"kind\":1024,\"name\":\"channelLabel\",\"url\":\"classes/HandlerStepDefinitions.CreateChannelStepDefinition.html#channelLabel\",\"classes\":\"\",\"parent\":\"HandlerStepDefinitions.CreateChannelStepDefinition\"},{\"kind\":2048,\"name\":\"explain\",\"url\":\"classes/HandlerStepDefinitions.CreateChannelStepDefinition.html#explain\",\"classes\":\"\",\"parent\":\"HandlerStepDefinitions.CreateChannelStepDefinition\"},{\"kind\":128,\"name\":\"SendStepDefinition\",\"url\":\"classes/HandlerStepDefinitions.SendStepDefinition.html\",\"classes\":\"\",\"parent\":\"HandlerStepDefinitions\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/HandlerStepDefinitions.SendStepDefinition.html#constructor\",\"classes\":\"\",\"parent\":\"HandlerStepDefinitions.SendStepDefinition\"},{\"kind\":1024,\"name\":\"type\",\"url\":\"classes/HandlerStepDefinitions.SendStepDefinition.html#type\",\"classes\":\"\",\"parent\":\"HandlerStepDefinitions.SendStepDefinition\"},{\"kind\":1024,\"name\":\"channelLabel\",\"url\":\"classes/HandlerStepDefinitions.SendStepDefinition.html#channelLabel\",\"classes\":\"\",\"parent\":\"HandlerStepDefinitions.SendStepDefinition\"},{\"kind\":1024,\"name\":\"message\",\"url\":\"classes/HandlerStepDefinitions.SendStepDefinition.html#message\",\"classes\":\"\",\"parent\":\"HandlerStepDefinitions.SendStepDefinition\"},{\"kind\":2048,\"name\":\"explain\",\"url\":\"classes/HandlerStepDefinitions.SendStepDefinition.html#explain\",\"classes\":\"\",\"parent\":\"HandlerStepDefinitions.SendStepDefinition\"},{\"kind\":128,\"name\":\"CloseStepDefinition\",\"url\":\"classes/HandlerStepDefinitions.CloseStepDefinition.html\",\"classes\":\"\",\"parent\":\"HandlerStepDefinitions\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/HandlerStepDefinitions.CloseStepDefinition.html#constructor\",\"classes\":\"tsd-is-inherited\",\"parent\":\"HandlerStepDefinitions.CloseStepDefinition\"},{\"kind\":1024,\"name\":\"type\",\"url\":\"classes/HandlerStepDefinitions.CloseStepDefinition.html#type\",\"classes\":\"\",\"parent\":\"HandlerStepDefinitions.CloseStepDefinition\"},{\"kind\":2048,\"name\":\"explain\",\"url\":\"classes/HandlerStepDefinitions.CloseStepDefinition.html#explain\",\"classes\":\"\",\"parent\":\"HandlerStepDefinitions.CloseStepDefinition\"},{\"kind\":128,\"name\":\"EchoStepDefinition\",\"url\":\"classes/HandlerStepDefinitions.EchoStepDefinition.html\",\"classes\":\"\",\"parent\":\"HandlerStepDefinitions\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/HandlerStepDefinitions.EchoStepDefinition.html#constructor\",\"classes\":\"tsd-is-inherited\",\"parent\":\"HandlerStepDefinitions.EchoStepDefinition\"},{\"kind\":1024,\"name\":\"type\",\"url\":\"classes/HandlerStepDefinitions.EchoStepDefinition.html#type\",\"classes\":\"\",\"parent\":\"HandlerStepDefinitions.EchoStepDefinition\"},{\"kind\":2048,\"name\":\"explain\",\"url\":\"classes/HandlerStepDefinitions.EchoStepDefinition.html#explain\",\"classes\":\"\",\"parent\":\"HandlerStepDefinitions.EchoStepDefinition\"},{\"kind\":128,\"name\":\"PeerProxyStepDefinition\",\"url\":\"classes/HandlerStepDefinitions.PeerProxyStepDefinition.html\",\"classes\":\"\",\"parent\":\"HandlerStepDefinitions\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/HandlerStepDefinitions.PeerProxyStepDefinition.html#constructor\",\"classes\":\"\",\"parent\":\"HandlerStepDefinitions.PeerProxyStepDefinition\"},{\"kind\":1024,\"name\":\"type\",\"url\":\"classes/HandlerStepDefinitions.PeerProxyStepDefinition.html#type\",\"classes\":\"\",\"parent\":\"HandlerStepDefinitions.PeerProxyStepDefinition\"},{\"kind\":2048,\"name\":\"explain\",\"url\":\"classes/HandlerStepDefinitions.PeerProxyStepDefinition.html#explain\",\"classes\":\"\",\"parent\":\"HandlerStepDefinitions.PeerProxyStepDefinition\"},{\"kind\":2048,\"name\":\"serialize\",\"url\":\"classes/HandlerStepDefinitions.PeerProxyStepDefinition.html#serialize\",\"classes\":\"\",\"parent\":\"HandlerStepDefinitions.PeerProxyStepDefinition\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"classes/HandlerStepDefinitions.PeerProxyStepDefinition.html#serialize.serialize-1.__type\",\"classes\":\"\",\"parent\":\"HandlerStepDefinitions.PeerProxyStepDefinition.serialize.serialize\"},{\"kind\":128,\"name\":\"DynamicProxyStepDefinition\",\"url\":\"classes/HandlerStepDefinitions.DynamicProxyStepDefinition.html\",\"classes\":\"\",\"parent\":\"HandlerStepDefinitions\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/HandlerStepDefinitions.DynamicProxyStepDefinition.html#constructor\",\"classes\":\"tsd-is-inherited\",\"parent\":\"HandlerStepDefinitions.DynamicProxyStepDefinition\"},{\"kind\":1024,\"name\":\"type\",\"url\":\"classes/HandlerStepDefinitions.DynamicProxyStepDefinition.html#type\",\"classes\":\"\",\"parent\":\"HandlerStepDefinitions.DynamicProxyStepDefinition\"},{\"kind\":2048,\"name\":\"explain\",\"url\":\"classes/HandlerStepDefinitions.DynamicProxyStepDefinition.html#explain\",\"classes\":\"\",\"parent\":\"HandlerStepDefinitions.DynamicProxyStepDefinition\"},{\"kind\":32,\"name\":\"StepDefinitionLookup\",\"url\":\"variables/HandlerStepDefinitions.StepDefinitionLookup.html\",\"classes\":\"\",\"parent\":\"HandlerStepDefinitions\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"variables/HandlerStepDefinitions.StepDefinitionLookup.html#__type\",\"classes\":\"\",\"parent\":\"HandlerStepDefinitions.StepDefinitionLookup\"},{\"kind\":1024,\"name\":\"wait-for-duration\",\"url\":\"variables/HandlerStepDefinitions.StepDefinitionLookup.html#__type.wait_for_duration\",\"classes\":\"\",\"parent\":\"HandlerStepDefinitions.StepDefinitionLookup.__type\"},{\"kind\":1024,\"name\":\"wait-for-rtc-data-channel\",\"url\":\"variables/HandlerStepDefinitions.StepDefinitionLookup.html#__type.wait_for_rtc_data_channel\",\"classes\":\"\",\"parent\":\"HandlerStepDefinitions.StepDefinitionLookup.__type\"},{\"kind\":1024,\"name\":\"wait-for-rtc-track\",\"url\":\"variables/HandlerStepDefinitions.StepDefinitionLookup.html#__type.wait_for_rtc_track\",\"classes\":\"\",\"parent\":\"HandlerStepDefinitions.StepDefinitionLookup.__type\"},{\"kind\":1024,\"name\":\"wait-for-rtc-media\",\"url\":\"variables/HandlerStepDefinitions.StepDefinitionLookup.html#__type.wait_for_rtc_media\",\"classes\":\"\",\"parent\":\"HandlerStepDefinitions.StepDefinitionLookup.__type\"},{\"kind\":1024,\"name\":\"wait-for-rtc-message\",\"url\":\"variables/HandlerStepDefinitions.StepDefinitionLookup.html#__type.wait_for_rtc_message\",\"classes\":\"\",\"parent\":\"HandlerStepDefinitions.StepDefinitionLookup.__type\"},{\"kind\":1024,\"name\":\"create-rtc-data-channel\",\"url\":\"variables/HandlerStepDefinitions.StepDefinitionLookup.html#__type.create_rtc_data_channel\",\"classes\":\"\",\"parent\":\"HandlerStepDefinitions.StepDefinitionLookup.__type\"},{\"kind\":1024,\"name\":\"send-rtc-data-message\",\"url\":\"variables/HandlerStepDefinitions.StepDefinitionLookup.html#__type.send_rtc_data_message\",\"classes\":\"\",\"parent\":\"HandlerStepDefinitions.StepDefinitionLookup.__type\"},{\"kind\":1024,\"name\":\"close-rtc-connection\",\"url\":\"variables/HandlerStepDefinitions.StepDefinitionLookup.html#__type.close_rtc_connection\",\"classes\":\"\",\"parent\":\"HandlerStepDefinitions.StepDefinitionLookup.__type\"},{\"kind\":1024,\"name\":\"echo-rtc\",\"url\":\"variables/HandlerStepDefinitions.StepDefinitionLookup.html#__type.echo_rtc\",\"classes\":\"\",\"parent\":\"HandlerStepDefinitions.StepDefinitionLookup.__type\"},{\"kind\":1024,\"name\":\"rtc-peer-proxy\",\"url\":\"variables/HandlerStepDefinitions.StepDefinitionLookup.html#__type.rtc_peer_proxy\",\"classes\":\"\",\"parent\":\"HandlerStepDefinitions.StepDefinitionLookup.__type\"},{\"kind\":1024,\"name\":\"rtc-dynamic-proxy\",\"url\":\"variables/HandlerStepDefinitions.StepDefinitionLookup.html#__type.rtc_dynamic_proxy\",\"classes\":\"\",\"parent\":\"HandlerStepDefinitions.StepDefinitionLookup.__type\"},{\"kind\":4,\"name\":\"MatcherDefinitions\",\"url\":\"modules/MatcherDefinitions.html\",\"classes\":\"\"},{\"kind\":32,\"name\":\"Serializable\",\"url\":\"variables/MatcherDefinitions.Serializable-1.html\",\"classes\":\"\",\"parent\":\"MatcherDefinitions\"},{\"kind\":4194304,\"name\":\"Serializable\",\"url\":\"types/MatcherDefinitions.Serializable.html\",\"classes\":\"\",\"parent\":\"MatcherDefinitions\"},{\"kind\":256,\"name\":\"MatcherDefinition\",\"url\":\"interfaces/MatcherDefinitions.MatcherDefinition.html\",\"classes\":\"\",\"parent\":\"MatcherDefinitions\"},{\"kind\":1024,\"name\":\"type\",\"url\":\"interfaces/MatcherDefinitions.MatcherDefinition.html#type\",\"classes\":\"\",\"parent\":\"MatcherDefinitions.MatcherDefinition\"},{\"kind\":128,\"name\":\"HasDataChannelMatcherDefinition\",\"url\":\"classes/MatcherDefinitions.HasDataChannelMatcherDefinition.html\",\"classes\":\"\",\"parent\":\"MatcherDefinitions\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/MatcherDefinitions.HasDataChannelMatcherDefinition.html#constructor\",\"classes\":\"tsd-is-inherited\",\"parent\":\"MatcherDefinitions.HasDataChannelMatcherDefinition\"},{\"kind\":1024,\"name\":\"type\",\"url\":\"classes/MatcherDefinitions.HasDataChannelMatcherDefinition.html#type\",\"classes\":\"\",\"parent\":\"MatcherDefinitions.HasDataChannelMatcherDefinition\"},{\"kind\":2048,\"name\":\"explain\",\"url\":\"classes/MatcherDefinitions.HasDataChannelMatcherDefinition.html#explain\",\"classes\":\"\",\"parent\":\"MatcherDefinitions.HasDataChannelMatcherDefinition\"},{\"kind\":128,\"name\":\"HasVideoTrackMatcherDefinition\",\"url\":\"classes/MatcherDefinitions.HasVideoTrackMatcherDefinition.html\",\"classes\":\"\",\"parent\":\"MatcherDefinitions\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/MatcherDefinitions.HasVideoTrackMatcherDefinition.html#constructor\",\"classes\":\"tsd-is-inherited\",\"parent\":\"MatcherDefinitions.HasVideoTrackMatcherDefinition\"},{\"kind\":1024,\"name\":\"type\",\"url\":\"classes/MatcherDefinitions.HasVideoTrackMatcherDefinition.html#type\",\"classes\":\"\",\"parent\":\"MatcherDefinitions.HasVideoTrackMatcherDefinition\"},{\"kind\":2048,\"name\":\"explain\",\"url\":\"classes/MatcherDefinitions.HasVideoTrackMatcherDefinition.html#explain\",\"classes\":\"\",\"parent\":\"MatcherDefinitions.HasVideoTrackMatcherDefinition\"},{\"kind\":128,\"name\":\"HasAudioTrackMatcherDefinition\",\"url\":\"classes/MatcherDefinitions.HasAudioTrackMatcherDefinition.html\",\"classes\":\"\",\"parent\":\"MatcherDefinitions\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/MatcherDefinitions.HasAudioTrackMatcherDefinition.html#constructor\",\"classes\":\"tsd-is-inherited\",\"parent\":\"MatcherDefinitions.HasAudioTrackMatcherDefinition\"},{\"kind\":1024,\"name\":\"type\",\"url\":\"classes/MatcherDefinitions.HasAudioTrackMatcherDefinition.html#type\",\"classes\":\"\",\"parent\":\"MatcherDefinitions.HasAudioTrackMatcherDefinition\"},{\"kind\":2048,\"name\":\"explain\",\"url\":\"classes/MatcherDefinitions.HasAudioTrackMatcherDefinition.html#explain\",\"classes\":\"\",\"parent\":\"MatcherDefinitions.HasAudioTrackMatcherDefinition\"},{\"kind\":128,\"name\":\"HasMediaTrackMatcherDefinition\",\"url\":\"classes/MatcherDefinitions.HasMediaTrackMatcherDefinition.html\",\"classes\":\"\",\"parent\":\"MatcherDefinitions\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/MatcherDefinitions.HasMediaTrackMatcherDefinition.html#constructor\",\"classes\":\"tsd-is-inherited\",\"parent\":\"MatcherDefinitions.HasMediaTrackMatcherDefinition\"},{\"kind\":1024,\"name\":\"type\",\"url\":\"classes/MatcherDefinitions.HasMediaTrackMatcherDefinition.html#type\",\"classes\":\"\",\"parent\":\"MatcherDefinitions.HasMediaTrackMatcherDefinition\"},{\"kind\":2048,\"name\":\"explain\",\"url\":\"classes/MatcherDefinitions.HasMediaTrackMatcherDefinition.html#explain\",\"classes\":\"\",\"parent\":\"MatcherDefinitions.HasMediaTrackMatcherDefinition\"},{\"kind\":128,\"name\":\"HostnameMatcherDefinition\",\"url\":\"classes/MatcherDefinitions.HostnameMatcherDefinition.html\",\"classes\":\"\",\"parent\":\"MatcherDefinitions\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/MatcherDefinitions.HostnameMatcherDefinition.html#constructor\",\"classes\":\"\",\"parent\":\"MatcherDefinitions.HostnameMatcherDefinition\"},{\"kind\":1024,\"name\":\"type\",\"url\":\"classes/MatcherDefinitions.HostnameMatcherDefinition.html#type\",\"classes\":\"\",\"parent\":\"MatcherDefinitions.HostnameMatcherDefinition\"},{\"kind\":1024,\"name\":\"hostname\",\"url\":\"classes/MatcherDefinitions.HostnameMatcherDefinition.html#hostname\",\"classes\":\"\",\"parent\":\"MatcherDefinitions.HostnameMatcherDefinition\"},{\"kind\":2048,\"name\":\"explain\",\"url\":\"classes/MatcherDefinitions.HostnameMatcherDefinition.html#explain\",\"classes\":\"\",\"parent\":\"MatcherDefinitions.HostnameMatcherDefinition\"},{\"kind\":128,\"name\":\"UrlRegexMatcherDefinition\",\"url\":\"classes/MatcherDefinitions.UrlRegexMatcherDefinition.html\",\"classes\":\"\",\"parent\":\"MatcherDefinitions\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/MatcherDefinitions.UrlRegexMatcherDefinition.html#constructor\",\"classes\":\"\",\"parent\":\"MatcherDefinitions.UrlRegexMatcherDefinition\"},{\"kind\":1024,\"name\":\"type\",\"url\":\"classes/MatcherDefinitions.UrlRegexMatcherDefinition.html#type\",\"classes\":\"\",\"parent\":\"MatcherDefinitions.UrlRegexMatcherDefinition\"},{\"kind\":1024,\"name\":\"regexSource\",\"url\":\"classes/MatcherDefinitions.UrlRegexMatcherDefinition.html#regexSource\",\"classes\":\"\",\"parent\":\"MatcherDefinitions.UrlRegexMatcherDefinition\"},{\"kind\":1024,\"name\":\"regexFlags\",\"url\":\"classes/MatcherDefinitions.UrlRegexMatcherDefinition.html#regexFlags\",\"classes\":\"\",\"parent\":\"MatcherDefinitions.UrlRegexMatcherDefinition\"},{\"kind\":2048,\"name\":\"explain\",\"url\":\"classes/MatcherDefinitions.UrlRegexMatcherDefinition.html#explain\",\"classes\":\"\",\"parent\":\"MatcherDefinitions.UrlRegexMatcherDefinition\"},{\"kind\":128,\"name\":\"UserAgentRegexMatcherDefinition\",\"url\":\"classes/MatcherDefinitions.UserAgentRegexMatcherDefinition.html\",\"classes\":\"\",\"parent\":\"MatcherDefinitions\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/MatcherDefinitions.UserAgentRegexMatcherDefinition.html#constructor\",\"classes\":\"\",\"parent\":\"MatcherDefinitions.UserAgentRegexMatcherDefinition\"},{\"kind\":1024,\"name\":\"type\",\"url\":\"classes/MatcherDefinitions.UserAgentRegexMatcherDefinition.html#type\",\"classes\":\"\",\"parent\":\"MatcherDefinitions.UserAgentRegexMatcherDefinition\"},{\"kind\":1024,\"name\":\"regexSource\",\"url\":\"classes/MatcherDefinitions.UserAgentRegexMatcherDefinition.html#regexSource\",\"classes\":\"\",\"parent\":\"MatcherDefinitions.UserAgentRegexMatcherDefinition\"},{\"kind\":1024,\"name\":\"regexFlags\",\"url\":\"classes/MatcherDefinitions.UserAgentRegexMatcherDefinition.html#regexFlags\",\"classes\":\"\",\"parent\":\"MatcherDefinitions.UserAgentRegexMatcherDefinition\"},{\"kind\":2048,\"name\":\"explain\",\"url\":\"classes/MatcherDefinitions.UserAgentRegexMatcherDefinition.html#explain\",\"classes\":\"\",\"parent\":\"MatcherDefinitions.UserAgentRegexMatcherDefinition\"},{\"kind\":32,\"name\":\"MatcherDefinitionLookup\",\"url\":\"variables/MatcherDefinitions.MatcherDefinitionLookup.html\",\"classes\":\"\",\"parent\":\"MatcherDefinitions\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"variables/MatcherDefinitions.MatcherDefinitionLookup.html#__type\",\"classes\":\"\",\"parent\":\"MatcherDefinitions.MatcherDefinitionLookup\"},{\"kind\":1024,\"name\":\"has-rtc-data-channel\",\"url\":\"variables/MatcherDefinitions.MatcherDefinitionLookup.html#__type.has_rtc_data_channel\",\"classes\":\"\",\"parent\":\"MatcherDefinitions.MatcherDefinitionLookup.__type\"},{\"kind\":1024,\"name\":\"has-rtc-video-track\",\"url\":\"variables/MatcherDefinitions.MatcherDefinitionLookup.html#__type.has_rtc_video_track\",\"classes\":\"\",\"parent\":\"MatcherDefinitions.MatcherDefinitionLookup.__type\"},{\"kind\":1024,\"name\":\"has-rtc-audio-track\",\"url\":\"variables/MatcherDefinitions.MatcherDefinitionLookup.html#__type.has_rtc_audio_track\",\"classes\":\"\",\"parent\":\"MatcherDefinitions.MatcherDefinitionLookup.__type\"},{\"kind\":1024,\"name\":\"has-rtc-media-track\",\"url\":\"variables/MatcherDefinitions.MatcherDefinitionLookup.html#__type.has_rtc_media_track\",\"classes\":\"\",\"parent\":\"MatcherDefinitions.MatcherDefinitionLookup.__type\"},{\"kind\":1024,\"name\":\"rtc-page-hostname\",\"url\":\"variables/MatcherDefinitions.MatcherDefinitionLookup.html#__type.rtc_page_hostname\",\"classes\":\"\",\"parent\":\"MatcherDefinitions.MatcherDefinitionLookup.__type\"},{\"kind\":1024,\"name\":\"rtc-page-regex\",\"url\":\"variables/MatcherDefinitions.MatcherDefinitionLookup.html#__type.rtc_page_regex\",\"classes\":\"\",\"parent\":\"MatcherDefinitions.MatcherDefinitionLookup.__type\"},{\"kind\":1024,\"name\":\"rtc-user-agent-regex\",\"url\":\"variables/MatcherDefinitions.MatcherDefinitionLookup.html#__type.rtc_user_agent_regex\",\"classes\":\"\",\"parent\":\"MatcherDefinitions.MatcherDefinitionLookup.__type\"},{\"kind\":256,\"name\":\"HandlerStep\",\"url\":\"interfaces/HandlerStep.html\",\"classes\":\"\"},{\"kind\":2048,\"name\":\"handle\",\"url\":\"interfaces/HandlerStep.html#handle\",\"classes\":\"\",\"parent\":\"HandlerStep\"},{\"kind\":1024,\"name\":\"type\",\"url\":\"interfaces/HandlerStep.html#type\",\"classes\":\"tsd-is-inherited\",\"parent\":\"HandlerStep\"},{\"kind\":128,\"name\":\"MockRTCHandlerBuilder\",\"url\":\"classes/MockRTCHandlerBuilder.html\",\"classes\":\"\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/MockRTCHandlerBuilder.html#constructor\",\"classes\":\"\",\"parent\":\"MockRTCHandlerBuilder\"},{\"kind\":2048,\"name\":\"sleep\",\"url\":\"classes/MockRTCHandlerBuilder.html#sleep\",\"classes\":\"\",\"parent\":\"MockRTCHandlerBuilder\"},{\"kind\":2048,\"name\":\"waitForChannel\",\"url\":\"classes/MockRTCHandlerBuilder.html#waitForChannel\",\"classes\":\"\",\"parent\":\"MockRTCHandlerBuilder\"},{\"kind\":2048,\"name\":\"waitForTrack\",\"url\":\"classes/MockRTCHandlerBuilder.html#waitForTrack\",\"classes\":\"\",\"parent\":\"MockRTCHandlerBuilder\"},{\"kind\":2048,\"name\":\"waitForNextMessage\",\"url\":\"classes/MockRTCHandlerBuilder.html#waitForNextMessage\",\"classes\":\"\",\"parent\":\"MockRTCHandlerBuilder\"},{\"kind\":2048,\"name\":\"waitForNextMedia\",\"url\":\"classes/MockRTCHandlerBuilder.html#waitForNextMedia\",\"classes\":\"\",\"parent\":\"MockRTCHandlerBuilder\"},{\"kind\":2048,\"name\":\"waitForNextMessageOnChannel\",\"url\":\"classes/MockRTCHandlerBuilder.html#waitForNextMessageOnChannel\",\"classes\":\"\",\"parent\":\"MockRTCHandlerBuilder\"},{\"kind\":2048,\"name\":\"createDataChannel\",\"url\":\"classes/MockRTCHandlerBuilder.html#createDataChannel\",\"classes\":\"\",\"parent\":\"MockRTCHandlerBuilder\"},{\"kind\":2048,\"name\":\"send\",\"url\":\"classes/MockRTCHandlerBuilder.html#send\",\"classes\":\"\",\"parent\":\"MockRTCHandlerBuilder\"},{\"kind\":2048,\"name\":\"thenClose\",\"url\":\"classes/MockRTCHandlerBuilder.html#thenClose\",\"classes\":\"\",\"parent\":\"MockRTCHandlerBuilder\"},{\"kind\":2048,\"name\":\"thenSend\",\"url\":\"classes/MockRTCHandlerBuilder.html#thenSend\",\"classes\":\"\",\"parent\":\"MockRTCHandlerBuilder\"},{\"kind\":2048,\"name\":\"thenEcho\",\"url\":\"classes/MockRTCHandlerBuilder.html#thenEcho\",\"classes\":\"\",\"parent\":\"MockRTCHandlerBuilder\"},{\"kind\":2048,\"name\":\"thenForwardTo\",\"url\":\"classes/MockRTCHandlerBuilder.html#thenForwardTo\",\"classes\":\"\",\"parent\":\"MockRTCHandlerBuilder\"},{\"kind\":2048,\"name\":\"thenPassThrough\",\"url\":\"classes/MockRTCHandlerBuilder.html#thenPassThrough\",\"classes\":\"\",\"parent\":\"MockRTCHandlerBuilder\"},{\"kind\":128,\"name\":\"MockRTCRuleBuilder\",\"url\":\"classes/MockRTCRuleBuilder.html\",\"classes\":\"\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/MockRTCRuleBuilder.html#constructor\",\"classes\":\"\",\"parent\":\"MockRTCRuleBuilder\"},{\"kind\":2048,\"name\":\"withDataChannels\",\"url\":\"classes/MockRTCRuleBuilder.html#withDataChannels\",\"classes\":\"\",\"parent\":\"MockRTCRuleBuilder\"},{\"kind\":2048,\"name\":\"withMedia\",\"url\":\"classes/MockRTCRuleBuilder.html#withMedia\",\"classes\":\"\",\"parent\":\"MockRTCRuleBuilder\"},{\"kind\":2048,\"name\":\"withVideo\",\"url\":\"classes/MockRTCRuleBuilder.html#withVideo\",\"classes\":\"\",\"parent\":\"MockRTCRuleBuilder\"},{\"kind\":2048,\"name\":\"withAudio\",\"url\":\"classes/MockRTCRuleBuilder.html#withAudio\",\"classes\":\"\",\"parent\":\"MockRTCRuleBuilder\"},{\"kind\":2048,\"name\":\"fromPageHostname\",\"url\":\"classes/MockRTCRuleBuilder.html#fromPageHostname\",\"classes\":\"\",\"parent\":\"MockRTCRuleBuilder\"},{\"kind\":2048,\"name\":\"fromPageUrlMatching\",\"url\":\"classes/MockRTCRuleBuilder.html#fromPageUrlMatching\",\"classes\":\"\",\"parent\":\"MockRTCRuleBuilder\"},{\"kind\":2048,\"name\":\"fromUserAgentMatching\",\"url\":\"classes/MockRTCRuleBuilder.html#fromUserAgentMatching\",\"classes\":\"\",\"parent\":\"MockRTCRuleBuilder\"},{\"kind\":1024,\"name\":\"sleep\",\"url\":\"classes/MockRTCRuleBuilder.html#sleep\",\"classes\":\"\",\"parent\":\"MockRTCRuleBuilder\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"classes/MockRTCRuleBuilder.html#sleep.__type-5\",\"classes\":\"\",\"parent\":\"MockRTCRuleBuilder.sleep\"},{\"kind\":1024,\"name\":\"waitForChannel\",\"url\":\"classes/MockRTCRuleBuilder.html#waitForChannel\",\"classes\":\"\",\"parent\":\"MockRTCRuleBuilder\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"classes/MockRTCRuleBuilder.html#waitForChannel.__type-18\",\"classes\":\"\",\"parent\":\"MockRTCRuleBuilder.waitForChannel\"},{\"kind\":1024,\"name\":\"waitForTrack\",\"url\":\"classes/MockRTCRuleBuilder.html#waitForTrack\",\"classes\":\"\",\"parent\":\"MockRTCRuleBuilder\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"classes/MockRTCRuleBuilder.html#waitForTrack.__type-26\",\"classes\":\"\",\"parent\":\"MockRTCRuleBuilder.waitForTrack\"},{\"kind\":1024,\"name\":\"waitForNextMessage\",\"url\":\"classes/MockRTCRuleBuilder.html#waitForNextMessage\",\"classes\":\"\",\"parent\":\"MockRTCRuleBuilder\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"classes/MockRTCRuleBuilder.html#waitForNextMessage.__type-22\",\"classes\":\"\",\"parent\":\"MockRTCRuleBuilder.waitForNextMessage\"},{\"kind\":1024,\"name\":\"waitForNextMedia\",\"url\":\"classes/MockRTCRuleBuilder.html#waitForNextMedia\",\"classes\":\"\",\"parent\":\"MockRTCRuleBuilder\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"classes/MockRTCRuleBuilder.html#waitForNextMedia.__type-20\",\"classes\":\"\",\"parent\":\"MockRTCRuleBuilder.waitForNextMedia\"},{\"kind\":1024,\"name\":\"waitForNextMessageOnChannel\",\"url\":\"classes/MockRTCRuleBuilder.html#waitForNextMessageOnChannel\",\"classes\":\"\",\"parent\":\"MockRTCRuleBuilder\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"classes/MockRTCRuleBuilder.html#waitForNextMessageOnChannel.__type-24\",\"classes\":\"\",\"parent\":\"MockRTCRuleBuilder.waitForNextMessageOnChannel\"},{\"kind\":1024,\"name\":\"createDataChannel\",\"url\":\"classes/MockRTCRuleBuilder.html#createDataChannel\",\"classes\":\"\",\"parent\":\"MockRTCRuleBuilder\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"classes/MockRTCRuleBuilder.html#createDataChannel.__type\",\"classes\":\"\",\"parent\":\"MockRTCRuleBuilder.createDataChannel\"},{\"kind\":1024,\"name\":\"send\",\"url\":\"classes/MockRTCRuleBuilder.html#send\",\"classes\":\"\",\"parent\":\"MockRTCRuleBuilder\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"classes/MockRTCRuleBuilder.html#send.__type-2\",\"classes\":\"\",\"parent\":\"MockRTCRuleBuilder.send\"},{\"kind\":1024,\"name\":\"thenClose\",\"url\":\"classes/MockRTCRuleBuilder.html#thenClose\",\"classes\":\"\",\"parent\":\"MockRTCRuleBuilder\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"classes/MockRTCRuleBuilder.html#thenClose.__type-7\",\"classes\":\"\",\"parent\":\"MockRTCRuleBuilder.thenClose\"},{\"kind\":1024,\"name\":\"thenSend\",\"url\":\"classes/MockRTCRuleBuilder.html#thenSend\",\"classes\":\"\",\"parent\":\"MockRTCRuleBuilder\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"classes/MockRTCRuleBuilder.html#thenSend.__type-15\",\"classes\":\"\",\"parent\":\"MockRTCRuleBuilder.thenSend\"},{\"kind\":1024,\"name\":\"thenEcho\",\"url\":\"classes/MockRTCRuleBuilder.html#thenEcho\",\"classes\":\"\",\"parent\":\"MockRTCRuleBuilder\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"classes/MockRTCRuleBuilder.html#thenEcho.__type-9\",\"classes\":\"\",\"parent\":\"MockRTCRuleBuilder.thenEcho\"},{\"kind\":1024,\"name\":\"thenForwardTo\",\"url\":\"classes/MockRTCRuleBuilder.html#thenForwardTo\",\"classes\":\"\",\"parent\":\"MockRTCRuleBuilder\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"classes/MockRTCRuleBuilder.html#thenForwardTo.__type-11\",\"classes\":\"\",\"parent\":\"MockRTCRuleBuilder.thenForwardTo\"},{\"kind\":1024,\"name\":\"thenPassThrough\",\"url\":\"classes/MockRTCRuleBuilder.html#thenPassThrough\",\"classes\":\"\",\"parent\":\"MockRTCRuleBuilder\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"classes/MockRTCRuleBuilder.html#thenPassThrough.__type-13\",\"classes\":\"\",\"parent\":\"MockRTCRuleBuilder.thenPassThrough\"},{\"kind\":4194304,\"name\":\"RuleHandlerBuilder\",\"url\":\"types/RuleHandlerBuilder.html\",\"classes\":\"\"},{\"kind\":128,\"name\":\"MockRTCServerPeer\",\"url\":\"classes/MockRTCServerPeer.html\",\"classes\":\"\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/MockRTCServerPeer.html#constructor\",\"classes\":\"\",\"parent\":\"MockRTCServerPeer\"},{\"kind\":1024,\"name\":\"peerId\",\"url\":\"classes/MockRTCServerPeer.html#peerId\",\"classes\":\"\",\"parent\":\"MockRTCServerPeer\"},{\"kind\":2048,\"name\":\"createExternalOffer\",\"url\":\"classes/MockRTCServerPeer.html#createExternalOffer\",\"classes\":\"\",\"parent\":\"MockRTCServerPeer\"},{\"kind\":2048,\"name\":\"answerExternalOffer\",\"url\":\"classes/MockRTCServerPeer.html#answerExternalOffer\",\"classes\":\"\",\"parent\":\"MockRTCServerPeer\"},{\"kind\":2048,\"name\":\"createOffer\",\"url\":\"classes/MockRTCServerPeer.html#createOffer\",\"classes\":\"\",\"parent\":\"MockRTCServerPeer\"},{\"kind\":2048,\"name\":\"answerOffer\",\"url\":\"classes/MockRTCServerPeer.html#answerOffer\",\"classes\":\"\",\"parent\":\"MockRTCServerPeer\"},{\"kind\":2048,\"name\":\"getSession\",\"url\":\"classes/MockRTCServerPeer.html#getSession\",\"classes\":\"\",\"parent\":\"MockRTCServerPeer\"},{\"kind\":2048,\"name\":\"close\",\"url\":\"classes/MockRTCServerPeer.html#close\",\"classes\":\"\",\"parent\":\"MockRTCServerPeer\"},{\"kind\":2048,\"name\":\"getAllMessages\",\"url\":\"classes/MockRTCServerPeer.html#getAllMessages\",\"classes\":\"\",\"parent\":\"MockRTCServerPeer\"},{\"kind\":2048,\"name\":\"getMessagesOnChannel\",\"url\":\"classes/MockRTCServerPeer.html#getMessagesOnChannel\",\"classes\":\"\",\"parent\":\"MockRTCServerPeer\"},{\"kind\":256,\"name\":\"SessionData\",\"url\":\"interfaces/SessionData.html\",\"classes\":\"\"},{\"kind\":1024,\"name\":\"id\",\"url\":\"interfaces/SessionData.html#id\",\"classes\":\"\",\"parent\":\"SessionData\"},{\"kind\":1024,\"name\":\"description\",\"url\":\"interfaces/SessionData.html#description\",\"classes\":\"\",\"parent\":\"SessionData\"},{\"kind\":128,\"name\":\"RTCConnection\",\"url\":\"classes/RTCConnection.html\",\"classes\":\"\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/RTCConnection.html#constructor\",\"classes\":\"\",\"parent\":\"RTCConnection\"},{\"kind\":1024,\"name\":\"id\",\"url\":\"classes/RTCConnection.html#id\",\"classes\":\"\",\"parent\":\"RTCConnection\"},{\"kind\":262144,\"name\":\"metadata\",\"url\":\"classes/RTCConnection.html#metadata\",\"classes\":\"\",\"parent\":\"RTCConnection\"},{\"kind\":262144,\"name\":\"channels\",\"url\":\"classes/RTCConnection.html#channels\",\"classes\":\"\",\"parent\":\"RTCConnection\"},{\"kind\":262144,\"name\":\"localChannels\",\"url\":\"classes/RTCConnection.html#localChannels\",\"classes\":\"\",\"parent\":\"RTCConnection\"},{\"kind\":262144,\"name\":\"remoteChannels\",\"url\":\"classes/RTCConnection.html#remoteChannels\",\"classes\":\"\",\"parent\":\"RTCConnection\"},{\"kind\":262144,\"name\":\"mediaTracks\",\"url\":\"classes/RTCConnection.html#mediaTracks\",\"classes\":\"\",\"parent\":\"RTCConnection\"},{\"kind\":262144,\"name\":\"localMediaTracks\",\"url\":\"classes/RTCConnection.html#localMediaTracks\",\"classes\":\"\",\"parent\":\"RTCConnection\"},{\"kind\":262144,\"name\":\"remoteMediaTracks\",\"url\":\"classes/RTCConnection.html#remoteMediaTracks\",\"classes\":\"\",\"parent\":\"RTCConnection\"},{\"kind\":2048,\"name\":\"createDataChannel\",\"url\":\"classes/RTCConnection.html#createDataChannel\",\"classes\":\"\",\"parent\":\"RTCConnection\"},{\"kind\":2048,\"name\":\"setRemoteDescription\",\"url\":\"classes/RTCConnection.html#setRemoteDescription\",\"classes\":\"\",\"parent\":\"RTCConnection\"},{\"kind\":2048,\"name\":\"buildLocalDescription\",\"url\":\"classes/RTCConnection.html#buildLocalDescription\",\"classes\":\"\",\"parent\":\"RTCConnection\"},{\"kind\":2048,\"name\":\"getRemoteDescription\",\"url\":\"classes/RTCConnection.html#getRemoteDescription\",\"classes\":\"\",\"parent\":\"RTCConnection\"},{\"kind\":2048,\"name\":\"getLocalDescription\",\"url\":\"classes/RTCConnection.html#getLocalDescription\",\"classes\":\"\",\"parent\":\"RTCConnection\"},{\"kind\":2048,\"name\":\"getSelectedCandidates\",\"url\":\"classes/RTCConnection.html#getSelectedCandidates\",\"classes\":\"\",\"parent\":\"RTCConnection\"},{\"kind\":2048,\"name\":\"getMirroredLocalOffer\",\"url\":\"classes/RTCConnection.html#getMirroredLocalOffer\",\"classes\":\"\",\"parent\":\"RTCConnection\"},{\"kind\":2048,\"name\":\"getMirroredLocalAnswer\",\"url\":\"classes/RTCConnection.html#getMirroredLocalAnswer\",\"classes\":\"\",\"parent\":\"RTCConnection\"},{\"kind\":2048,\"name\":\"waitUntilConnected\",\"url\":\"classes/RTCConnection.html#waitUntilConnected\",\"classes\":\"\",\"parent\":\"RTCConnection\"},{\"kind\":1024,\"name\":\"sessionApi\",\"url\":\"classes/RTCConnection.html#sessionApi\",\"classes\":\"\",\"parent\":\"RTCConnection\"},{\"kind\":2048,\"name\":\"close\",\"url\":\"classes/RTCConnection.html#close\",\"classes\":\"\",\"parent\":\"RTCConnection\"},{\"kind\":4194304,\"name\":\"ParsedSDP\",\"url\":\"types/ParsedSDP.html\",\"classes\":\"\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"types/ParsedSDP.html#__type\",\"classes\":\"\",\"parent\":\"ParsedSDP\"},{\"kind\":1024,\"name\":\"parsedSdp\",\"url\":\"types/ParsedSDP.html#__type.parsedSdp\",\"classes\":\"\",\"parent\":\"ParsedSDP.__type\"},{\"kind\":128,\"name\":\"MockRTCConnection\",\"url\":\"classes/MockRTCConnection.html\",\"classes\":\"\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/MockRTCConnection.html#constructor\",\"classes\":\"\",\"parent\":\"MockRTCConnection\"},{\"kind\":2048,\"name\":\"proxyTrafficToExternalConnection\",\"url\":\"classes/MockRTCConnection.html#proxyTrafficToExternalConnection\",\"classes\":\"\",\"parent\":\"MockRTCConnection\"},{\"kind\":2048,\"name\":\"proxyTrafficTo\",\"url\":\"classes/MockRTCConnection.html#proxyTrafficTo\",\"classes\":\"\",\"parent\":\"MockRTCConnection\"},{\"kind\":1024,\"name\":\"id\",\"url\":\"classes/MockRTCConnection.html#id\",\"classes\":\"tsd-is-inherited\",\"parent\":\"MockRTCConnection\"},{\"kind\":262144,\"name\":\"metadata\",\"url\":\"classes/MockRTCConnection.html#metadata\",\"classes\":\"tsd-is-inherited\",\"parent\":\"MockRTCConnection\"},{\"kind\":262144,\"name\":\"channels\",\"url\":\"classes/MockRTCConnection.html#channels\",\"classes\":\"tsd-is-inherited\",\"parent\":\"MockRTCConnection\"},{\"kind\":262144,\"name\":\"localChannels\",\"url\":\"classes/MockRTCConnection.html#localChannels\",\"classes\":\"tsd-is-inherited\",\"parent\":\"MockRTCConnection\"},{\"kind\":262144,\"name\":\"remoteChannels\",\"url\":\"classes/MockRTCConnection.html#remoteChannels\",\"classes\":\"tsd-is-inherited\",\"parent\":\"MockRTCConnection\"},{\"kind\":262144,\"name\":\"mediaTracks\",\"url\":\"classes/MockRTCConnection.html#mediaTracks\",\"classes\":\"tsd-is-inherited\",\"parent\":\"MockRTCConnection\"},{\"kind\":262144,\"name\":\"localMediaTracks\",\"url\":\"classes/MockRTCConnection.html#localMediaTracks\",\"classes\":\"tsd-is-inherited\",\"parent\":\"MockRTCConnection\"},{\"kind\":262144,\"name\":\"remoteMediaTracks\",\"url\":\"classes/MockRTCConnection.html#remoteMediaTracks\",\"classes\":\"tsd-is-inherited\",\"parent\":\"MockRTCConnection\"},{\"kind\":2048,\"name\":\"createDataChannel\",\"url\":\"classes/MockRTCConnection.html#createDataChannel\",\"classes\":\"tsd-is-inherited\",\"parent\":\"MockRTCConnection\"},{\"kind\":2048,\"name\":\"setRemoteDescription\",\"url\":\"classes/MockRTCConnection.html#setRemoteDescription\",\"classes\":\"tsd-is-inherited\",\"parent\":\"MockRTCConnection\"},{\"kind\":2048,\"name\":\"buildLocalDescription\",\"url\":\"classes/MockRTCConnection.html#buildLocalDescription\",\"classes\":\"tsd-is-inherited\",\"parent\":\"MockRTCConnection\"},{\"kind\":2048,\"name\":\"getRemoteDescription\",\"url\":\"classes/MockRTCConnection.html#getRemoteDescription\",\"classes\":\"tsd-is-inherited\",\"parent\":\"MockRTCConnection\"},{\"kind\":2048,\"name\":\"getLocalDescription\",\"url\":\"classes/MockRTCConnection.html#getLocalDescription\",\"classes\":\"tsd-is-inherited\",\"parent\":\"MockRTCConnection\"},{\"kind\":2048,\"name\":\"getSelectedCandidates\",\"url\":\"classes/MockRTCConnection.html#getSelectedCandidates\",\"classes\":\"tsd-is-inherited\",\"parent\":\"MockRTCConnection\"},{\"kind\":2048,\"name\":\"getMirroredLocalOffer\",\"url\":\"classes/MockRTCConnection.html#getMirroredLocalOffer\",\"classes\":\"tsd-is-inherited\",\"parent\":\"MockRTCConnection\"},{\"kind\":2048,\"name\":\"getMirroredLocalAnswer\",\"url\":\"classes/MockRTCConnection.html#getMirroredLocalAnswer\",\"classes\":\"tsd-is-inherited\",\"parent\":\"MockRTCConnection\"},{\"kind\":2048,\"name\":\"waitUntilConnected\",\"url\":\"classes/MockRTCConnection.html#waitUntilConnected\",\"classes\":\"tsd-is-inherited\",\"parent\":\"MockRTCConnection\"},{\"kind\":1024,\"name\":\"sessionApi\",\"url\":\"classes/MockRTCConnection.html#sessionApi\",\"classes\":\"tsd-is-inherited\",\"parent\":\"MockRTCConnection\"},{\"kind\":2048,\"name\":\"close\",\"url\":\"classes/MockRTCConnection.html#close\",\"classes\":\"tsd-is-inherited\",\"parent\":\"MockRTCConnection\"},{\"kind\":128,\"name\":\"DataChannelStream\",\"url\":\"classes/DataChannelStream.html\",\"classes\":\"\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/DataChannelStream.html#constructor\",\"classes\":\"\",\"parent\":\"DataChannelStream\"},{\"kind\":262144,\"name\":\"isOpen\",\"url\":\"classes/DataChannelStream.html#isOpen\",\"classes\":\"\",\"parent\":\"DataChannelStream\"},{\"kind\":2048,\"name\":\"_read\",\"url\":\"classes/DataChannelStream.html#_read\",\"classes\":\"\",\"parent\":\"DataChannelStream\"},{\"kind\":2048,\"name\":\"_write\",\"url\":\"classes/DataChannelStream.html#_write\",\"classes\":\"\",\"parent\":\"DataChannelStream\"},{\"kind\":2048,\"name\":\"_final\",\"url\":\"classes/DataChannelStream.html#_final\",\"classes\":\"\",\"parent\":\"DataChannelStream\"},{\"kind\":2048,\"name\":\"_destroy\",\"url\":\"classes/DataChannelStream.html#_destroy\",\"classes\":\"\",\"parent\":\"DataChannelStream\"},{\"kind\":262144,\"name\":\"id\",\"url\":\"classes/DataChannelStream.html#id\",\"classes\":\"\",\"parent\":\"DataChannelStream\"},{\"kind\":262144,\"name\":\"label\",\"url\":\"classes/DataChannelStream.html#label\",\"classes\":\"\",\"parent\":\"DataChannelStream\"},{\"kind\":262144,\"name\":\"protocol\",\"url\":\"classes/DataChannelStream.html#protocol\",\"classes\":\"\",\"parent\":\"DataChannelStream\"},{\"kind\":128,\"name\":\"MediaTrackStream\",\"url\":\"classes/MediaTrackStream.html\",\"classes\":\"\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/MediaTrackStream.html#constructor\",\"classes\":\"\",\"parent\":\"MediaTrackStream\"},{\"kind\":262144,\"name\":\"isOpen\",\"url\":\"classes/MediaTrackStream.html#isOpen\",\"classes\":\"\",\"parent\":\"MediaTrackStream\"},{\"kind\":262144,\"name\":\"totalBytesSent\",\"url\":\"classes/MediaTrackStream.html#totalBytesSent\",\"classes\":\"\",\"parent\":\"MediaTrackStream\"},{\"kind\":262144,\"name\":\"totalBytesReceived\",\"url\":\"classes/MediaTrackStream.html#totalBytesReceived\",\"classes\":\"\",\"parent\":\"MediaTrackStream\"},{\"kind\":2048,\"name\":\"_read\",\"url\":\"classes/MediaTrackStream.html#_read\",\"classes\":\"\",\"parent\":\"MediaTrackStream\"},{\"kind\":2048,\"name\":\"_write\",\"url\":\"classes/MediaTrackStream.html#_write\",\"classes\":\"\",\"parent\":\"MediaTrackStream\"},{\"kind\":2048,\"name\":\"_writev\",\"url\":\"classes/MediaTrackStream.html#_writev\",\"classes\":\"\",\"parent\":\"MediaTrackStream\"},{\"kind\":2048,\"name\":\"_final\",\"url\":\"classes/MediaTrackStream.html#_final\",\"classes\":\"\",\"parent\":\"MediaTrackStream\"},{\"kind\":2048,\"name\":\"_destroy\",\"url\":\"classes/MediaTrackStream.html#_destroy\",\"classes\":\"\",\"parent\":\"MediaTrackStream\"},{\"kind\":262144,\"name\":\"direction\",\"url\":\"classes/MediaTrackStream.html#direction\",\"classes\":\"\",\"parent\":\"MediaTrackStream\"},{\"kind\":262144,\"name\":\"mid\",\"url\":\"classes/MediaTrackStream.html#mid\",\"classes\":\"\",\"parent\":\"MediaTrackStream\"},{\"kind\":262144,\"name\":\"type\",\"url\":\"classes/MediaTrackStream.html#type\",\"classes\":\"\",\"parent\":\"MediaTrackStream\"},{\"kind\":256,\"name\":\"MockRTC\",\"url\":\"interfaces/MockRTC.html\",\"classes\":\"\"},{\"kind\":2048,\"name\":\"buildPeer\",\"url\":\"interfaces/MockRTC.html#buildPeer\",\"classes\":\"\",\"parent\":\"MockRTC\"},{\"kind\":2048,\"name\":\"forConnections\",\"url\":\"interfaces/MockRTC.html#forConnections\",\"classes\":\"\",\"parent\":\"MockRTC\"},{\"kind\":2048,\"name\":\"getMatchingPeer\",\"url\":\"interfaces/MockRTC.html#getMatchingPeer\",\"classes\":\"\",\"parent\":\"MockRTC\"},{\"kind\":2048,\"name\":\"start\",\"url\":\"interfaces/MockRTC.html#start\",\"classes\":\"\",\"parent\":\"MockRTC\"},{\"kind\":2048,\"name\":\"stop\",\"url\":\"interfaces/MockRTC.html#stop\",\"classes\":\"\",\"parent\":\"MockRTC\"},{\"kind\":2048,\"name\":\"on\",\"url\":\"interfaces/MockRTC.html#on\",\"classes\":\"\",\"parent\":\"MockRTC\"},{\"kind\":2048,\"name\":\"buildPeerFromDefinition\",\"url\":\"interfaces/MockRTC.html#buildPeerFromDefinition\",\"classes\":\"\",\"parent\":\"MockRTC\"},{\"kind\":2048,\"name\":\"addRuleFromDefinition\",\"url\":\"interfaces/MockRTC.html#addRuleFromDefinition\",\"classes\":\"\",\"parent\":\"MockRTC\"},{\"kind\":2048,\"name\":\"setRulesFromDefinitions\",\"url\":\"interfaces/MockRTC.html#setRulesFromDefinitions\",\"classes\":\"\",\"parent\":\"MockRTC\"},{\"kind\":256,\"name\":\"MockRTCOptions\",\"url\":\"interfaces/MockRTCOptions.html\",\"classes\":\"\"},{\"kind\":1024,\"name\":\"debug\",\"url\":\"interfaces/MockRTCOptions.html#debug\",\"classes\":\"\",\"parent\":\"MockRTCOptions\"},{\"kind\":1024,\"name\":\"recordMessages\",\"url\":\"interfaces/MockRTCOptions.html#recordMessages\",\"classes\":\"\",\"parent\":\"MockRTCOptions\"},{\"kind\":4194304,\"name\":\"MockRTCClientOptions\",\"url\":\"types/MockRTCClientOptions.html\",\"classes\":\"\"},{\"kind\":256,\"name\":\"MockRTCPeerBuilder\",\"url\":\"interfaces/MockRTCPeerBuilder.html\",\"classes\":\"\"},{\"kind\":2048,\"name\":\"sleep\",\"url\":\"interfaces/MockRTCPeerBuilder.html#sleep\",\"classes\":\"tsd-is-inherited\",\"parent\":\"MockRTCPeerBuilder\"},{\"kind\":2048,\"name\":\"waitForChannel\",\"url\":\"interfaces/MockRTCPeerBuilder.html#waitForChannel\",\"classes\":\"tsd-is-inherited\",\"parent\":\"MockRTCPeerBuilder\"},{\"kind\":2048,\"name\":\"waitForTrack\",\"url\":\"interfaces/MockRTCPeerBuilder.html#waitForTrack\",\"classes\":\"tsd-is-inherited\",\"parent\":\"MockRTCPeerBuilder\"},{\"kind\":2048,\"name\":\"waitForNextMessage\",\"url\":\"interfaces/MockRTCPeerBuilder.html#waitForNextMessage\",\"classes\":\"tsd-is-inherited\",\"parent\":\"MockRTCPeerBuilder\"},{\"kind\":2048,\"name\":\"waitForNextMedia\",\"url\":\"interfaces/MockRTCPeerBuilder.html#waitForNextMedia\",\"classes\":\"tsd-is-inherited\",\"parent\":\"MockRTCPeerBuilder\"},{\"kind\":2048,\"name\":\"waitForNextMessageOnChannel\",\"url\":\"interfaces/MockRTCPeerBuilder.html#waitForNextMessageOnChannel\",\"classes\":\"tsd-is-inherited\",\"parent\":\"MockRTCPeerBuilder\"},{\"kind\":2048,\"name\":\"createDataChannel\",\"url\":\"interfaces/MockRTCPeerBuilder.html#createDataChannel\",\"classes\":\"tsd-is-inherited\",\"parent\":\"MockRTCPeerBuilder\"},{\"kind\":2048,\"name\":\"send\",\"url\":\"interfaces/MockRTCPeerBuilder.html#send\",\"classes\":\"tsd-is-inherited\",\"parent\":\"MockRTCPeerBuilder\"},{\"kind\":2048,\"name\":\"thenClose\",\"url\":\"interfaces/MockRTCPeerBuilder.html#thenClose\",\"classes\":\"tsd-is-inherited\",\"parent\":\"MockRTCPeerBuilder\"},{\"kind\":2048,\"name\":\"thenSend\",\"url\":\"interfaces/MockRTCPeerBuilder.html#thenSend\",\"classes\":\"tsd-is-inherited\",\"parent\":\"MockRTCPeerBuilder\"},{\"kind\":2048,\"name\":\"thenEcho\",\"url\":\"interfaces/MockRTCPeerBuilder.html#thenEcho\",\"classes\":\"tsd-is-inherited\",\"parent\":\"MockRTCPeerBuilder\"},{\"kind\":2048,\"name\":\"thenForwardTo\",\"url\":\"interfaces/MockRTCPeerBuilder.html#thenForwardTo\",\"classes\":\"tsd-is-inherited\",\"parent\":\"MockRTCPeerBuilder\"},{\"kind\":2048,\"name\":\"thenPassThrough\",\"url\":\"interfaces/MockRTCPeerBuilder.html#thenPassThrough\",\"classes\":\"tsd-is-inherited\",\"parent\":\"MockRTCPeerBuilder\"},{\"kind\":128,\"name\":\"MockRTCAdminServer\",\"url\":\"classes/MockRTCAdminServer.html\",\"classes\":\"\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/MockRTCAdminServer.html#constructor\",\"classes\":\"\",\"parent\":\"MockRTCAdminServer\"},{\"kind\":4194304,\"name\":\"MockRTCEvent\",\"url\":\"types/MockRTCEvent.html\",\"classes\":\"\"},{\"kind\":4194304,\"name\":\"MockRTCEventData\",\"url\":\"types/MockRTCEventData.html\",\"classes\":\"\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"types/MockRTCEventData.html#__type\",\"classes\":\"\",\"parent\":\"MockRTCEventData\"},{\"kind\":1024,\"name\":\"peer-connected\",\"url\":\"types/MockRTCEventData.html#__type.peer_connected\",\"classes\":\"\",\"parent\":\"MockRTCEventData.__type\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"types/MockRTCEventData.html#__type.peer_connected.__type-10\",\"classes\":\"\",\"parent\":\"MockRTCEventData.__type.peer-connected\"},{\"kind\":1024,\"name\":\"peerId\",\"url\":\"types/MockRTCEventData.html#__type.peer_connected.__type-10.peerId-9\",\"classes\":\"\",\"parent\":\"MockRTCEventData.__type.peer-connected.__type\"},{\"kind\":1024,\"name\":\"sessionId\",\"url\":\"types/MockRTCEventData.html#__type.peer_connected.__type-10.sessionId-9\",\"classes\":\"\",\"parent\":\"MockRTCEventData.__type.peer-connected.__type\"},{\"kind\":1024,\"name\":\"metadata\",\"url\":\"types/MockRTCEventData.html#__type.peer_connected.__type-10.metadata\",\"classes\":\"\",\"parent\":\"MockRTCEventData.__type.peer-connected.__type\"},{\"kind\":1024,\"name\":\"localSessionDescription\",\"url\":\"types/MockRTCEventData.html#__type.peer_connected.__type-10.localSessionDescription-1\",\"classes\":\"\",\"parent\":\"MockRTCEventData.__type.peer-connected.__type\"},{\"kind\":1024,\"name\":\"remoteSessionDescription\",\"url\":\"types/MockRTCEventData.html#__type.peer_connected.__type-10.remoteSessionDescription-1\",\"classes\":\"\",\"parent\":\"MockRTCEventData.__type.peer-connected.__type\"},{\"kind\":1024,\"name\":\"selectedLocalCandidate\",\"url\":\"types/MockRTCEventData.html#__type.peer_connected.__type-10.selectedLocalCandidate-1\",\"classes\":\"\",\"parent\":\"MockRTCEventData.__type.peer-connected.__type\"},{\"kind\":1024,\"name\":\"selectedRemoteCandidate\",\"url\":\"types/MockRTCEventData.html#__type.peer_connected.__type-10.selectedRemoteCandidate-1\",\"classes\":\"\",\"parent\":\"MockRTCEventData.__type.peer-connected.__type\"},{\"kind\":1024,\"name\":\"timingEvents\",\"url\":\"types/MockRTCEventData.html#__type.peer_connected.__type-10.timingEvents-8\",\"classes\":\"\",\"parent\":\"MockRTCEventData.__type.peer-connected.__type\"},{\"kind\":1024,\"name\":\"peer-disconnected\",\"url\":\"types/MockRTCEventData.html#__type.peer_disconnected\",\"classes\":\"\",\"parent\":\"MockRTCEventData.__type\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"types/MockRTCEventData.html#__type.peer_disconnected.__type-11\",\"classes\":\"\",\"parent\":\"MockRTCEventData.__type.peer-disconnected\"},{\"kind\":1024,\"name\":\"peerId\",\"url\":\"types/MockRTCEventData.html#__type.peer_disconnected.__type-11.peerId-10\",\"classes\":\"\",\"parent\":\"MockRTCEventData.__type.peer-disconnected.__type\"},{\"kind\":1024,\"name\":\"sessionId\",\"url\":\"types/MockRTCEventData.html#__type.peer_disconnected.__type-11.sessionId-10\",\"classes\":\"\",\"parent\":\"MockRTCEventData.__type.peer-disconnected.__type\"},{\"kind\":1024,\"name\":\"timingEvents\",\"url\":\"types/MockRTCEventData.html#__type.peer_disconnected.__type-11.timingEvents-9\",\"classes\":\"\",\"parent\":\"MockRTCEventData.__type.peer-disconnected.__type\"},{\"kind\":1024,\"name\":\"external-peer-attached\",\"url\":\"types/MockRTCEventData.html#__type.external_peer_attached\",\"classes\":\"\",\"parent\":\"MockRTCEventData.__type\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"types/MockRTCEventData.html#__type.external_peer_attached.__type-5\",\"classes\":\"\",\"parent\":\"MockRTCEventData.__type.external-peer-attached\"},{\"kind\":1024,\"name\":\"peerId\",\"url\":\"types/MockRTCEventData.html#__type.external_peer_attached.__type-5.peerId-5\",\"classes\":\"\",\"parent\":\"MockRTCEventData.__type.external-peer-attached.__type\"},{\"kind\":1024,\"name\":\"sessionId\",\"url\":\"types/MockRTCEventData.html#__type.external_peer_attached.__type-5.sessionId-5\",\"classes\":\"\",\"parent\":\"MockRTCEventData.__type.external-peer-attached.__type\"},{\"kind\":1024,\"name\":\"externalConnection\",\"url\":\"types/MockRTCEventData.html#__type.external_peer_attached.__type-5.externalConnection\",\"classes\":\"\",\"parent\":\"MockRTCEventData.__type.external-peer-attached.__type\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"types/MockRTCEventData.html#__type.external_peer_attached.__type-5.externalConnection.__type-6\",\"classes\":\"\",\"parent\":\"MockRTCEventData.__type.external-peer-attached.__type.externalConnection\"},{\"kind\":1024,\"name\":\"peerId\",\"url\":\"types/MockRTCEventData.html#__type.external_peer_attached.__type-5.externalConnection.__type-6.peerId-4\",\"classes\":\"\",\"parent\":\"MockRTCEventData.__type.external-peer-attached.__type.externalConnection.__type\"},{\"kind\":1024,\"name\":\"sessionId\",\"url\":\"types/MockRTCEventData.html#__type.external_peer_attached.__type-5.externalConnection.__type-6.sessionId-4\",\"classes\":\"\",\"parent\":\"MockRTCEventData.__type.external-peer-attached.__type.externalConnection.__type\"},{\"kind\":1024,\"name\":\"localSessionDescription\",\"url\":\"types/MockRTCEventData.html#__type.external_peer_attached.__type-5.externalConnection.__type-6.localSessionDescription\",\"classes\":\"\",\"parent\":\"MockRTCEventData.__type.external-peer-attached.__type.externalConnection.__type\"},{\"kind\":1024,\"name\":\"remoteSessionDescription\",\"url\":\"types/MockRTCEventData.html#__type.external_peer_attached.__type-5.externalConnection.__type-6.remoteSessionDescription\",\"classes\":\"\",\"parent\":\"MockRTCEventData.__type.external-peer-attached.__type.externalConnection.__type\"},{\"kind\":1024,\"name\":\"selectedLocalCandidate\",\"url\":\"types/MockRTCEventData.html#__type.external_peer_attached.__type-5.externalConnection.__type-6.selectedLocalCandidate\",\"classes\":\"\",\"parent\":\"MockRTCEventData.__type.external-peer-attached.__type.externalConnection.__type\"},{\"kind\":1024,\"name\":\"selectedRemoteCandidate\",\"url\":\"types/MockRTCEventData.html#__type.external_peer_attached.__type-5.externalConnection.__type-6.selectedRemoteCandidate\",\"classes\":\"\",\"parent\":\"MockRTCEventData.__type.external-peer-attached.__type.externalConnection.__type\"},{\"kind\":1024,\"name\":\"timingEvents\",\"url\":\"types/MockRTCEventData.html#__type.external_peer_attached.__type-5.timingEvents-4\",\"classes\":\"\",\"parent\":\"MockRTCEventData.__type.external-peer-attached.__type\"},{\"kind\":1024,\"name\":\"data-channel-opened\",\"url\":\"types/MockRTCEventData.html#__type.data_channel_opened\",\"classes\":\"\",\"parent\":\"MockRTCEventData.__type\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"types/MockRTCEventData.html#__type.data_channel_opened.__type-4\",\"classes\":\"\",\"parent\":\"MockRTCEventData.__type.data-channel-opened\"},{\"kind\":1024,\"name\":\"peerId\",\"url\":\"types/MockRTCEventData.html#__type.data_channel_opened.__type-4.peerId-3\",\"classes\":\"\",\"parent\":\"MockRTCEventData.__type.data-channel-opened.__type\"},{\"kind\":1024,\"name\":\"sessionId\",\"url\":\"types/MockRTCEventData.html#__type.data_channel_opened.__type-4.sessionId-3\",\"classes\":\"\",\"parent\":\"MockRTCEventData.__type.data-channel-opened.__type\"},{\"kind\":1024,\"name\":\"channelId\",\"url\":\"types/MockRTCEventData.html#__type.data_channel_opened.__type-4.channelId-3\",\"classes\":\"\",\"parent\":\"MockRTCEventData.__type.data-channel-opened.__type\"},{\"kind\":1024,\"name\":\"channelLabel\",\"url\":\"types/MockRTCEventData.html#__type.data_channel_opened.__type-4.channelLabel\",\"classes\":\"\",\"parent\":\"MockRTCEventData.__type.data-channel-opened.__type\"},{\"kind\":1024,\"name\":\"channelProtocol\",\"url\":\"types/MockRTCEventData.html#__type.data_channel_opened.__type-4.channelProtocol\",\"classes\":\"\",\"parent\":\"MockRTCEventData.__type.data-channel-opened.__type\"},{\"kind\":1024,\"name\":\"eventTimestamp\",\"url\":\"types/MockRTCEventData.html#__type.data_channel_opened.__type-4.eventTimestamp-3\",\"classes\":\"\",\"parent\":\"MockRTCEventData.__type.data-channel-opened.__type\"},{\"kind\":1024,\"name\":\"timingEvents\",\"url\":\"types/MockRTCEventData.html#__type.data_channel_opened.__type-4.timingEvents-3\",\"classes\":\"\",\"parent\":\"MockRTCEventData.__type.data-channel-opened.__type\"},{\"kind\":1024,\"name\":\"data-channel-message-sent\",\"url\":\"types/MockRTCEventData.html#__type.data_channel_message_sent\",\"classes\":\"\",\"parent\":\"MockRTCEventData.__type\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"types/MockRTCEventData.html#__type.data_channel_message_sent.__type-3\",\"classes\":\"\",\"parent\":\"MockRTCEventData.__type.data-channel-message-sent\"},{\"kind\":1024,\"name\":\"peerId\",\"url\":\"types/MockRTCEventData.html#__type.data_channel_message_sent.__type-3.peerId-2\",\"classes\":\"\",\"parent\":\"MockRTCEventData.__type.data-channel-message-sent.__type\"},{\"kind\":1024,\"name\":\"sessionId\",\"url\":\"types/MockRTCEventData.html#__type.data_channel_message_sent.__type-3.sessionId-2\",\"classes\":\"\",\"parent\":\"MockRTCEventData.__type.data-channel-message-sent.__type\"},{\"kind\":1024,\"name\":\"channelId\",\"url\":\"types/MockRTCEventData.html#__type.data_channel_message_sent.__type-3.channelId-2\",\"classes\":\"\",\"parent\":\"MockRTCEventData.__type.data-channel-message-sent.__type\"},{\"kind\":1024,\"name\":\"direction\",\"url\":\"types/MockRTCEventData.html#__type.data_channel_message_sent.__type-3.direction-1\",\"classes\":\"\",\"parent\":\"MockRTCEventData.__type.data-channel-message-sent.__type\"},{\"kind\":1024,\"name\":\"content\",\"url\":\"types/MockRTCEventData.html#__type.data_channel_message_sent.__type-3.content-1\",\"classes\":\"\",\"parent\":\"MockRTCEventData.__type.data-channel-message-sent.__type\"},{\"kind\":1024,\"name\":\"isBinary\",\"url\":\"types/MockRTCEventData.html#__type.data_channel_message_sent.__type-3.isBinary-1\",\"classes\":\"\",\"parent\":\"MockRTCEventData.__type.data-channel-message-sent.__type\"},{\"kind\":1024,\"name\":\"eventTimestamp\",\"url\":\"types/MockRTCEventData.html#__type.data_channel_message_sent.__type-3.eventTimestamp-2\",\"classes\":\"\",\"parent\":\"MockRTCEventData.__type.data-channel-message-sent.__type\"},{\"kind\":1024,\"name\":\"timingEvents\",\"url\":\"types/MockRTCEventData.html#__type.data_channel_message_sent.__type-3.timingEvents-2\",\"classes\":\"\",\"parent\":\"MockRTCEventData.__type.data-channel-message-sent.__type\"},{\"kind\":1024,\"name\":\"data-channel-message-received\",\"url\":\"types/MockRTCEventData.html#__type.data_channel_message_received\",\"classes\":\"\",\"parent\":\"MockRTCEventData.__type\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"types/MockRTCEventData.html#__type.data_channel_message_received.__type-2\",\"classes\":\"\",\"parent\":\"MockRTCEventData.__type.data-channel-message-received\"},{\"kind\":1024,\"name\":\"peerId\",\"url\":\"types/MockRTCEventData.html#__type.data_channel_message_received.__type-2.peerId-1\",\"classes\":\"\",\"parent\":\"MockRTCEventData.__type.data-channel-message-received.__type\"},{\"kind\":1024,\"name\":\"sessionId\",\"url\":\"types/MockRTCEventData.html#__type.data_channel_message_received.__type-2.sessionId-1\",\"classes\":\"\",\"parent\":\"MockRTCEventData.__type.data-channel-message-received.__type\"},{\"kind\":1024,\"name\":\"channelId\",\"url\":\"types/MockRTCEventData.html#__type.data_channel_message_received.__type-2.channelId-1\",\"classes\":\"\",\"parent\":\"MockRTCEventData.__type.data-channel-message-received.__type\"},{\"kind\":1024,\"name\":\"direction\",\"url\":\"types/MockRTCEventData.html#__type.data_channel_message_received.__type-2.direction\",\"classes\":\"\",\"parent\":\"MockRTCEventData.__type.data-channel-message-received.__type\"},{\"kind\":1024,\"name\":\"content\",\"url\":\"types/MockRTCEventData.html#__type.data_channel_message_received.__type-2.content\",\"classes\":\"\",\"parent\":\"MockRTCEventData.__type.data-channel-message-received.__type\"},{\"kind\":1024,\"name\":\"isBinary\",\"url\":\"types/MockRTCEventData.html#__type.data_channel_message_received.__type-2.isBinary\",\"classes\":\"\",\"parent\":\"MockRTCEventData.__type.data-channel-message-received.__type\"},{\"kind\":1024,\"name\":\"eventTimestamp\",\"url\":\"types/MockRTCEventData.html#__type.data_channel_message_received.__type-2.eventTimestamp-1\",\"classes\":\"\",\"parent\":\"MockRTCEventData.__type.data-channel-message-received.__type\"},{\"kind\":1024,\"name\":\"timingEvents\",\"url\":\"types/MockRTCEventData.html#__type.data_channel_message_received.__type-2.timingEvents-1\",\"classes\":\"\",\"parent\":\"MockRTCEventData.__type.data-channel-message-received.__type\"},{\"kind\":1024,\"name\":\"data-channel-closed\",\"url\":\"types/MockRTCEventData.html#__type.data_channel_closed\",\"classes\":\"\",\"parent\":\"MockRTCEventData.__type\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"types/MockRTCEventData.html#__type.data_channel_closed.__type-1\",\"classes\":\"\",\"parent\":\"MockRTCEventData.__type.data-channel-closed\"},{\"kind\":1024,\"name\":\"peerId\",\"url\":\"types/MockRTCEventData.html#__type.data_channel_closed.__type-1.peerId\",\"classes\":\"\",\"parent\":\"MockRTCEventData.__type.data-channel-closed.__type\"},{\"kind\":1024,\"name\":\"sessionId\",\"url\":\"types/MockRTCEventData.html#__type.data_channel_closed.__type-1.sessionId\",\"classes\":\"\",\"parent\":\"MockRTCEventData.__type.data-channel-closed.__type\"},{\"kind\":1024,\"name\":\"channelId\",\"url\":\"types/MockRTCEventData.html#__type.data_channel_closed.__type-1.channelId\",\"classes\":\"\",\"parent\":\"MockRTCEventData.__type.data-channel-closed.__type\"},{\"kind\":1024,\"name\":\"eventTimestamp\",\"url\":\"types/MockRTCEventData.html#__type.data_channel_closed.__type-1.eventTimestamp\",\"classes\":\"\",\"parent\":\"MockRTCEventData.__type.data-channel-closed.__type\"},{\"kind\":1024,\"name\":\"timingEvents\",\"url\":\"types/MockRTCEventData.html#__type.data_channel_closed.__type-1.timingEvents\",\"classes\":\"\",\"parent\":\"MockRTCEventData.__type.data-channel-closed.__type\"},{\"kind\":1024,\"name\":\"media-track-opened\",\"url\":\"types/MockRTCEventData.html#__type.media_track_opened\",\"classes\":\"\",\"parent\":\"MockRTCEventData.__type\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"types/MockRTCEventData.html#__type.media_track_opened.__type-8\",\"classes\":\"\",\"parent\":\"MockRTCEventData.__type.media-track-opened\"},{\"kind\":1024,\"name\":\"peerId\",\"url\":\"types/MockRTCEventData.html#__type.media_track_opened.__type-8.peerId-7\",\"classes\":\"\",\"parent\":\"MockRTCEventData.__type.media-track-opened.__type\"},{\"kind\":1024,\"name\":\"sessionId\",\"url\":\"types/MockRTCEventData.html#__type.media_track_opened.__type-8.sessionId-7\",\"classes\":\"\",\"parent\":\"MockRTCEventData.__type.media-track-opened.__type\"},{\"kind\":1024,\"name\":\"trackMid\",\"url\":\"types/MockRTCEventData.html#__type.media_track_opened.__type-8.trackMid-1\",\"classes\":\"\",\"parent\":\"MockRTCEventData.__type.media-track-opened.__type\"},{\"kind\":1024,\"name\":\"trackType\",\"url\":\"types/MockRTCEventData.html#__type.media_track_opened.__type-8.trackType\",\"classes\":\"\",\"parent\":\"MockRTCEventData.__type.media-track-opened.__type\"},{\"kind\":1024,\"name\":\"trackDirection\",\"url\":\"types/MockRTCEventData.html#__type.media_track_opened.__type-8.trackDirection\",\"classes\":\"\",\"parent\":\"MockRTCEventData.__type.media-track-opened.__type\"},{\"kind\":1024,\"name\":\"eventTimestamp\",\"url\":\"types/MockRTCEventData.html#__type.media_track_opened.__type-8.eventTimestamp-5\",\"classes\":\"\",\"parent\":\"MockRTCEventData.__type.media-track-opened.__type\"},{\"kind\":1024,\"name\":\"timingEvents\",\"url\":\"types/MockRTCEventData.html#__type.media_track_opened.__type-8.timingEvents-6\",\"classes\":\"\",\"parent\":\"MockRTCEventData.__type.media-track-opened.__type\"},{\"kind\":1024,\"name\":\"media-track-stats\",\"url\":\"types/MockRTCEventData.html#__type.media_track_stats\",\"classes\":\"\",\"parent\":\"MockRTCEventData.__type\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"types/MockRTCEventData.html#__type.media_track_stats.__type-9\",\"classes\":\"\",\"parent\":\"MockRTCEventData.__type.media-track-stats\"},{\"kind\":1024,\"name\":\"peerId\",\"url\":\"types/MockRTCEventData.html#__type.media_track_stats.__type-9.peerId-8\",\"classes\":\"\",\"parent\":\"MockRTCEventData.__type.media-track-stats.__type\"},{\"kind\":1024,\"name\":\"sessionId\",\"url\":\"types/MockRTCEventData.html#__type.media_track_stats.__type-9.sessionId-8\",\"classes\":\"\",\"parent\":\"MockRTCEventData.__type.media-track-stats.__type\"},{\"kind\":1024,\"name\":\"trackMid\",\"url\":\"types/MockRTCEventData.html#__type.media_track_stats.__type-9.trackMid-2\",\"classes\":\"\",\"parent\":\"MockRTCEventData.__type.media-track-stats.__type\"},{\"kind\":1024,\"name\":\"totalBytesSent\",\"url\":\"types/MockRTCEventData.html#__type.media_track_stats.__type-9.totalBytesSent\",\"classes\":\"\",\"parent\":\"MockRTCEventData.__type.media-track-stats.__type\"},{\"kind\":1024,\"name\":\"totalBytesReceived\",\"url\":\"types/MockRTCEventData.html#__type.media_track_stats.__type-9.totalBytesReceived\",\"classes\":\"\",\"parent\":\"MockRTCEventData.__type.media-track-stats.__type\"},{\"kind\":1024,\"name\":\"eventTimestamp\",\"url\":\"types/MockRTCEventData.html#__type.media_track_stats.__type-9.eventTimestamp-6\",\"classes\":\"\",\"parent\":\"MockRTCEventData.__type.media-track-stats.__type\"},{\"kind\":1024,\"name\":\"timingEvents\",\"url\":\"types/MockRTCEventData.html#__type.media_track_stats.__type-9.timingEvents-7\",\"classes\":\"\",\"parent\":\"MockRTCEventData.__type.media-track-stats.__type\"},{\"kind\":1024,\"name\":\"media-track-closed\",\"url\":\"types/MockRTCEventData.html#__type.media_track_closed\",\"classes\":\"\",\"parent\":\"MockRTCEventData.__type\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"types/MockRTCEventData.html#__type.media_track_closed.__type-7\",\"classes\":\"\",\"parent\":\"MockRTCEventData.__type.media-track-closed\"},{\"kind\":1024,\"name\":\"peerId\",\"url\":\"types/MockRTCEventData.html#__type.media_track_closed.__type-7.peerId-6\",\"classes\":\"\",\"parent\":\"MockRTCEventData.__type.media-track-closed.__type\"},{\"kind\":1024,\"name\":\"sessionId\",\"url\":\"types/MockRTCEventData.html#__type.media_track_closed.__type-7.sessionId-6\",\"classes\":\"\",\"parent\":\"MockRTCEventData.__type.media-track-closed.__type\"},{\"kind\":1024,\"name\":\"trackMid\",\"url\":\"types/MockRTCEventData.html#__type.media_track_closed.__type-7.trackMid\",\"classes\":\"\",\"parent\":\"MockRTCEventData.__type.media-track-closed.__type\"},{\"kind\":1024,\"name\":\"eventTimestamp\",\"url\":\"types/MockRTCEventData.html#__type.media_track_closed.__type-7.eventTimestamp-4\",\"classes\":\"\",\"parent\":\"MockRTCEventData.__type.media-track-closed.__type\"},{\"kind\":1024,\"name\":\"timingEvents\",\"url\":\"types/MockRTCEventData.html#__type.media_track_closed.__type-7.timingEvents-5\",\"classes\":\"\",\"parent\":\"MockRTCEventData.__type.media-track-closed.__type\"},{\"kind\":4194304,\"name\":\"MockRTCRuleDefinition\",\"url\":\"types/MockRTCRuleDefinition.html\",\"classes\":\"\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"types/MockRTCRuleDefinition.html#__type\",\"classes\":\"\",\"parent\":\"MockRTCRuleDefinition\"},{\"kind\":1024,\"name\":\"matchers\",\"url\":\"types/MockRTCRuleDefinition.html#__type.matchers\",\"classes\":\"\",\"parent\":\"MockRTCRuleDefinition.__type\"},{\"kind\":1024,\"name\":\"steps\",\"url\":\"types/MockRTCRuleDefinition.html#__type.steps\",\"classes\":\"\",\"parent\":\"MockRTCRuleDefinition.__type\"},{\"kind\":256,\"name\":\"MockRTCSessionDescription\",\"url\":\"interfaces/MockRTCSessionDescription.html\",\"classes\":\"\"},{\"kind\":1024,\"name\":\"type\",\"url\":\"interfaces/MockRTCSessionDescription.html#type\",\"classes\":\"\",\"parent\":\"MockRTCSessionDescription\"},{\"kind\":1024,\"name\":\"sdp\",\"url\":\"interfaces/MockRTCSessionDescription.html#sdp\",\"classes\":\"\",\"parent\":\"MockRTCSessionDescription\"},{\"kind\":256,\"name\":\"SelectedRTCCandidate\",\"url\":\"interfaces/SelectedRTCCandidate.html\",\"classes\":\"\"},{\"kind\":1024,\"name\":\"address\",\"url\":\"interfaces/SelectedRTCCandidate.html#address\",\"classes\":\"\",\"parent\":\"SelectedRTCCandidate\"},{\"kind\":1024,\"name\":\"port\",\"url\":\"interfaces/SelectedRTCCandidate.html#port\",\"classes\":\"\",\"parent\":\"SelectedRTCCandidate\"},{\"kind\":1024,\"name\":\"protocol\",\"url\":\"interfaces/SelectedRTCCandidate.html#protocol\",\"classes\":\"\",\"parent\":\"SelectedRTCCandidate\"},{\"kind\":1024,\"name\":\"type\",\"url\":\"interfaces/SelectedRTCCandidate.html#type\",\"classes\":\"\",\"parent\":\"SelectedRTCCandidate\"},{\"kind\":256,\"name\":\"TimingEvents\",\"url\":\"interfaces/TimingEvents.html\",\"classes\":\"\"},{\"kind\":1024,\"name\":\"startTime\",\"url\":\"interfaces/TimingEvents.html#startTime\",\"classes\":\"\",\"parent\":\"TimingEvents\"},{\"kind\":1024,\"name\":\"connectTimestamp\",\"url\":\"interfaces/TimingEvents.html#connectTimestamp\",\"classes\":\"\",\"parent\":\"TimingEvents\"},{\"kind\":1024,\"name\":\"disconnectTimestamp\",\"url\":\"interfaces/TimingEvents.html#disconnectTimestamp\",\"classes\":\"\",\"parent\":\"TimingEvents\"},{\"kind\":1024,\"name\":\"externalAttachTimestamp\",\"url\":\"interfaces/TimingEvents.html#externalAttachTimestamp\",\"classes\":\"\",\"parent\":\"TimingEvents\"},{\"kind\":256,\"name\":\"MockRTCPeer\",\"url\":\"interfaces/MockRTCPeer.html\",\"classes\":\"\"},{\"kind\":1024,\"name\":\"peerId\",\"url\":\"interfaces/MockRTCPeer.html#peerId\",\"classes\":\"\",\"parent\":\"MockRTCPeer\"},{\"kind\":2048,\"name\":\"createOffer\",\"url\":\"interfaces/MockRTCPeer.html#createOffer\",\"classes\":\"\",\"parent\":\"MockRTCPeer\"},{\"kind\":2048,\"name\":\"answerOffer\",\"url\":\"interfaces/MockRTCPeer.html#answerOffer\",\"classes\":\"\",\"parent\":\"MockRTCPeer\"},{\"kind\":2048,\"name\":\"createExternalOffer\",\"url\":\"interfaces/MockRTCPeer.html#createExternalOffer\",\"classes\":\"\",\"parent\":\"MockRTCPeer\"},{\"kind\":2048,\"name\":\"answerExternalOffer\",\"url\":\"interfaces/MockRTCPeer.html#answerExternalOffer\",\"classes\":\"\",\"parent\":\"MockRTCPeer\"},{\"kind\":2048,\"name\":\"getSession\",\"url\":\"interfaces/MockRTCPeer.html#getSession\",\"classes\":\"\",\"parent\":\"MockRTCPeer\"},{\"kind\":2048,\"name\":\"getAllMessages\",\"url\":\"interfaces/MockRTCPeer.html#getAllMessages\",\"classes\":\"\",\"parent\":\"MockRTCPeer\"},{\"kind\":2048,\"name\":\"getMessagesOnChannel\",\"url\":\"interfaces/MockRTCPeer.html#getMessagesOnChannel\",\"classes\":\"\",\"parent\":\"MockRTCPeer\"},{\"kind\":256,\"name\":\"MockRTCPeerOptions\",\"url\":\"interfaces/MockRTCPeerOptions.html\",\"classes\":\"\"},{\"kind\":1024,\"name\":\"debug\",\"url\":\"interfaces/MockRTCPeerOptions.html#debug\",\"classes\":\"\",\"parent\":\"MockRTCPeerOptions\"},{\"kind\":1024,\"name\":\"recordMessages\",\"url\":\"interfaces/MockRTCPeerOptions.html#recordMessages\",\"classes\":\"\",\"parent\":\"MockRTCPeerOptions\"},{\"kind\":256,\"name\":\"MockRTCSession\",\"url\":\"interfaces/MockRTCSession.html\",\"classes\":\"\"},{\"kind\":1024,\"name\":\"sessionId\",\"url\":\"interfaces/MockRTCSession.html#sessionId\",\"classes\":\"\",\"parent\":\"MockRTCSession\"},{\"kind\":2048,\"name\":\"createOffer\",\"url\":\"interfaces/MockRTCSession.html#createOffer\",\"classes\":\"\",\"parent\":\"MockRTCSession\"},{\"kind\":2048,\"name\":\"completeOffer\",\"url\":\"interfaces/MockRTCSession.html#completeOffer\",\"classes\":\"\",\"parent\":\"MockRTCSession\"},{\"kind\":2048,\"name\":\"answerOffer\",\"url\":\"interfaces/MockRTCSession.html#answerOffer\",\"classes\":\"\",\"parent\":\"MockRTCSession\"},{\"kind\":256,\"name\":\"MockRTCOfferParams\",\"url\":\"interfaces/MockRTCOfferParams.html\",\"classes\":\"\"},{\"kind\":1024,\"name\":\"offer\",\"url\":\"interfaces/MockRTCOfferParams.html#offer\",\"classes\":\"\",\"parent\":\"MockRTCOfferParams\"},{\"kind\":1024,\"name\":\"setAnswer\",\"url\":\"interfaces/MockRTCOfferParams.html#setAnswer\",\"classes\":\"\",\"parent\":\"MockRTCOfferParams\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"interfaces/MockRTCOfferParams.html#setAnswer.__type\",\"classes\":\"\",\"parent\":\"MockRTCOfferParams.setAnswer\"},{\"kind\":1024,\"name\":\"session\",\"url\":\"interfaces/MockRTCOfferParams.html#session\",\"classes\":\"\",\"parent\":\"MockRTCOfferParams\"},{\"kind\":256,\"name\":\"MockRTCAnswerParams\",\"url\":\"interfaces/MockRTCAnswerParams.html\",\"classes\":\"\"},{\"kind\":1024,\"name\":\"answer\",\"url\":\"interfaces/MockRTCAnswerParams.html#answer\",\"classes\":\"\",\"parent\":\"MockRTCAnswerParams\"},{\"kind\":1024,\"name\":\"session\",\"url\":\"interfaces/MockRTCAnswerParams.html#session\",\"classes\":\"\",\"parent\":\"MockRTCAnswerParams\"},{\"kind\":256,\"name\":\"MockRTCExternalOfferParams\",\"url\":\"interfaces/MockRTCExternalOfferParams.html\",\"classes\":\"\"},{\"kind\":1024,\"name\":\"id\",\"url\":\"interfaces/MockRTCExternalOfferParams.html#id\",\"classes\":\"\",\"parent\":\"MockRTCExternalOfferParams\"},{\"kind\":1024,\"name\":\"offer\",\"url\":\"interfaces/MockRTCExternalOfferParams.html#offer\",\"classes\":\"\",\"parent\":\"MockRTCExternalOfferParams\"},{\"kind\":1024,\"name\":\"setAnswer\",\"url\":\"interfaces/MockRTCExternalOfferParams.html#setAnswer\",\"classes\":\"\",\"parent\":\"MockRTCExternalOfferParams\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"interfaces/MockRTCExternalOfferParams.html#setAnswer.__type\",\"classes\":\"\",\"parent\":\"MockRTCExternalOfferParams.setAnswer\"},{\"kind\":1024,\"name\":\"session\",\"url\":\"interfaces/MockRTCExternalOfferParams.html#session\",\"classes\":\"\",\"parent\":\"MockRTCExternalOfferParams\"},{\"kind\":256,\"name\":\"MockRTCExternalAnswerParams\",\"url\":\"interfaces/MockRTCExternalAnswerParams.html\",\"classes\":\"\"},{\"kind\":1024,\"name\":\"id\",\"url\":\"interfaces/MockRTCExternalAnswerParams.html#id\",\"classes\":\"\",\"parent\":\"MockRTCExternalAnswerParams\"},{\"kind\":1024,\"name\":\"answer\",\"url\":\"interfaces/MockRTCExternalAnswerParams.html#answer\",\"classes\":\"\",\"parent\":\"MockRTCExternalAnswerParams\"},{\"kind\":1024,\"name\":\"session\",\"url\":\"interfaces/MockRTCExternalAnswerParams.html#session\",\"classes\":\"\",\"parent\":\"MockRTCExternalAnswerParams\"},{\"kind\":256,\"name\":\"OfferOptions\",\"url\":\"interfaces/OfferOptions.html\",\"classes\":\"\"},{\"kind\":1024,\"name\":\"mirrorSDP\",\"url\":\"interfaces/OfferOptions.html#mirrorSDP\",\"classes\":\"\",\"parent\":\"OfferOptions\"},{\"kind\":1024,\"name\":\"addDataStream\",\"url\":\"interfaces/OfferOptions.html#addDataStream\",\"classes\":\"\",\"parent\":\"OfferOptions\"},{\"kind\":1024,\"name\":\"connectionMetadata\",\"url\":\"interfaces/OfferOptions.html#connectionMetadata\",\"classes\":\"\",\"parent\":\"OfferOptions\"},{\"kind\":256,\"name\":\"AnswerOptions\",\"url\":\"interfaces/AnswerOptions.html\",\"classes\":\"\"},{\"kind\":1024,\"name\":\"mirrorSDP\",\"url\":\"interfaces/AnswerOptions.html#mirrorSDP\",\"classes\":\"\",\"parent\":\"AnswerOptions\"},{\"kind\":1024,\"name\":\"connectionMetadata\",\"url\":\"interfaces/AnswerOptions.html#connectionMetadata\",\"classes\":\"\",\"parent\":\"AnswerOptions\"},{\"kind\":256,\"name\":\"ConnectionMetadata\",\"url\":\"interfaces/ConnectionMetadata.html\",\"classes\":\"\"},{\"kind\":1024,\"name\":\"userAgent\",\"url\":\"interfaces/ConnectionMetadata.html#userAgent\",\"classes\":\"\",\"parent\":\"ConnectionMetadata\"},{\"kind\":1024,\"name\":\"sourceURL\",\"url\":\"interfaces/ConnectionMetadata.html#sourceURL\",\"classes\":\"\",\"parent\":\"ConnectionMetadata\"},{\"kind\":32,\"name\":\"MOCKRTC_CONTROL_CHANNEL\",\"url\":\"variables/MOCKRTC_CONTROL_CHANNEL.html\",\"classes\":\"\"},{\"kind\":4194304,\"name\":\"MockRTCControlMessage\",\"url\":\"types/MockRTCControlMessage.html\",\"classes\":\"\"},{\"kind\":64,\"name\":\"hookWebRTCConnection\",\"url\":\"functions/hookWebRTCConnection.html\",\"classes\":\"\"},{\"kind\":64,\"name\":\"hookAllWebRTC\",\"url\":\"functions/hookAllWebRTC.html\",\"classes\":\"\"}],\"index\":{\"version\":\"2.3.9\",\"fields\":[\"name\",\"comment\"],\"fieldVectors\":[[\"name/0\",[0,60.305]],[\"comment/0\",[]],[\"name/1\",[1,60.305]],[\"comment/1\",[]],[\"name/2\",[2,60.305]],[\"comment/2\",[]],[\"name/3\",[3,60.305]],[\"comment/3\",[]],[\"name/4\",[4,29.599]],[\"comment/4\",[]],[\"name/5\",[5,54.912]],[\"comment/5\",[]],[\"name/6\",[6,60.305]],[\"comment/6\",[]],[\"name/7\",[7,54.912]],[\"comment/7\",[]],[\"name/8\",[8,60.305]],[\"comment/8\",[]],[\"name/9\",[9,60.305]],[\"comment/9\",[]],[\"name/10\",[10,60.305]],[\"comment/10\",[]],[\"name/11\",[11,48.708]],[\"comment/11\",[]],[\"name/12\",[11,48.708]],[\"comment/12\",[]],[\"name/13\",[12,60.305]],[\"comment/13\",[]],[\"name/14\",[13,30.819]],[\"comment/14\",[]],[\"name/15\",[14,60.305]],[\"comment/15\",[]],[\"name/16\",[4,29.599]],[\"comment/16\",[]],[\"name/17\",[13,30.819]],[\"comment/17\",[]],[\"name/18\",[15,60.305]],[\"comment/18\",[]],[\"name/19\",[16,33.784]],[\"comment/19\",[]],[\"name/20\",[17,60.305]],[\"comment/20\",[]],[\"name/21\",[4,29.599]],[\"comment/21\",[]],[\"name/22\",[13,30.819]],[\"comment/22\",[]],[\"name/23\",[18,46.589]],[\"comment/23\",[]],[\"name/24\",[16,33.784]],[\"comment/24\",[]],[\"name/25\",[19,60.305]],[\"comment/25\",[]],[\"name/26\",[4,29.599]],[\"comment/26\",[]],[\"name/27\",[13,30.819]],[\"comment/27\",[]],[\"name/28\",[18,46.589]],[\"comment/28\",[]],[\"name/29\",[16,33.784]],[\"comment/29\",[]],[\"name/30\",[20,60.305]],[\"comment/30\",[]],[\"name/31\",[4,29.599]],[\"comment/31\",[]],[\"name/32\",[13,30.819]],[\"comment/32\",[]],[\"name/33\",[16,33.784]],[\"comment/33\",[]],[\"name/34\",[21,60.305]],[\"comment/34\",[]],[\"name/35\",[4,29.599]],[\"comment/35\",[]],[\"name/36\",[13,30.819]],[\"comment/36\",[]],[\"name/37\",[16,33.784]],[\"comment/37\",[]],[\"name/38\",[22,60.305]],[\"comment/38\",[]],[\"name/39\",[4,29.599]],[\"comment/39\",[]],[\"name/40\",[13,30.819]],[\"comment/40\",[]],[\"name/41\",[18,46.589]],[\"comment/41\",[]],[\"name/42\",[16,33.784]],[\"comment/42\",[]],[\"name/43\",[23,60.305]],[\"comment/43\",[]],[\"name/44\",[4,29.599]],[\"comment/44\",[]],[\"name/45\",[13,30.819]],[\"comment/45\",[]],[\"name/46\",[18,46.589]],[\"comment/46\",[]],[\"name/47\",[24,46.589]],[\"comment/47\",[]],[\"name/48\",[16,33.784]],[\"comment/48\",[]],[\"name/49\",[25,60.305]],[\"comment/49\",[]],[\"name/50\",[4,29.599]],[\"comment/50\",[]],[\"name/51\",[13,30.819]],[\"comment/51\",[]],[\"name/52\",[16,33.784]],[\"comment/52\",[]],[\"name/53\",[26,60.305]],[\"comment/53\",[]],[\"name/54\",[4,29.599]],[\"comment/54\",[]],[\"name/55\",[13,30.819]],[\"comment/55\",[]],[\"name/56\",[16,33.784]],[\"comment/56\",[]],[\"name/57\",[27,60.305]],[\"comment/57\",[]],[\"name/58\",[4,29.599]],[\"comment/58\",[]],[\"name/59\",[13,30.819]],[\"comment/59\",[]],[\"name/60\",[16,33.784]],[\"comment/60\",[]],[\"name/61\",[28,60.305]],[\"comment/61\",[]],[\"name/62\",[29,27.836]],[\"comment/62\",[]],[\"name/63\",[30,60.305]],[\"comment/63\",[]],[\"name/64\",[4,29.599]],[\"comment/64\",[]],[\"name/65\",[13,30.819]],[\"comment/65\",[]],[\"name/66\",[16,33.784]],[\"comment/66\",[]],[\"name/67\",[31,60.305]],[\"comment/67\",[]],[\"name/68\",[29,27.836]],[\"comment/68\",[]],[\"name/69\",[32,26.586,33,26.586,34,34.412]],[\"comment/69\",[]],[\"name/70\",[32,18.6,33,18.6,35,13.722,36,16.765,37,17.293]],[\"comment/70\",[]],[\"name/71\",[32,21.887,33,21.887,35,16.147,38,20.349]],[\"comment/71\",[]],[\"name/72\",[32,21.887,33,21.887,35,16.147,39,21.887]],[\"comment/72\",[]],[\"name/73\",[24,21.887,32,21.887,33,21.887,35,16.147]],[\"comment/73\",[]],[\"name/74\",[35,16.147,36,19.728,37,20.349,40,28.33]],[\"comment/74\",[]],[\"name/75\",[24,21.887,35,16.147,36,19.728,41,22.882]],[\"comment/75\",[]],[\"name/76\",[35,19.613,42,27.794,43,34.412]],[\"comment/76\",[]],[\"name/77\",[35,24.975,44,43.82]],[\"comment/77\",[]],[\"name/78\",[35,19.613,45,27.794,46,31.335]],[\"comment/78\",[]],[\"name/79\",[35,19.613,46,31.335,47,34.412]],[\"comment/79\",[]],[\"name/80\",[48,60.305]],[\"comment/80\",[]],[\"name/81\",[11,48.708]],[\"comment/81\",[]],[\"name/82\",[11,48.708]],[\"comment/82\",[]],[\"name/83\",[49,60.305]],[\"comment/83\",[]],[\"name/84\",[13,30.819]],[\"comment/84\",[]],[\"name/85\",[50,60.305]],[\"comment/85\",[]],[\"name/86\",[4,29.599]],[\"comment/86\",[]],[\"name/87\",[13,30.819]],[\"comment/87\",[]],[\"name/88\",[16,33.784]],[\"comment/88\",[]],[\"name/89\",[51,60.305]],[\"comment/89\",[]],[\"name/90\",[4,29.599]],[\"comment/90\",[]],[\"name/91\",[13,30.819]],[\"comment/91\",[]],[\"name/92\",[16,33.784]],[\"comment/92\",[]],[\"name/93\",[52,60.305]],[\"comment/93\",[]],[\"name/94\",[4,29.599]],[\"comment/94\",[]],[\"name/95\",[13,30.819]],[\"comment/95\",[]],[\"name/96\",[16,33.784]],[\"comment/96\",[]],[\"name/97\",[53,60.305]],[\"comment/97\",[]],[\"name/98\",[4,29.599]],[\"comment/98\",[]],[\"name/99\",[13,30.819]],[\"comment/99\",[]],[\"name/100\",[16,33.784]],[\"comment/100\",[]],[\"name/101\",[54,60.305]],[\"comment/101\",[]],[\"name/102\",[4,29.599]],[\"comment/102\",[]],[\"name/103\",[13,30.819]],[\"comment/103\",[]],[\"name/104\",[55,54.912]],[\"comment/104\",[]],[\"name/105\",[16,33.784]],[\"comment/105\",[]],[\"name/106\",[56,60.305]],[\"comment/106\",[]],[\"name/107\",[4,29.599]],[\"comment/107\",[]],[\"name/108\",[13,30.819]],[\"comment/108\",[]],[\"name/109\",[57,54.912]],[\"comment/109\",[]],[\"name/110\",[58,54.912]],[\"comment/110\",[]],[\"name/111\",[16,33.784]],[\"comment/111\",[]],[\"name/112\",[59,60.305]],[\"comment/112\",[]],[\"name/113\",[4,29.599]],[\"comment/113\",[]],[\"name/114\",[13,30.819]],[\"comment/114\",[]],[\"name/115\",[57,54.912]],[\"comment/115\",[]],[\"name/116\",[58,54.912]],[\"comment/116\",[]],[\"name/117\",[16,33.784]],[\"comment/117\",[]],[\"name/118\",[60,60.305]],[\"comment/118\",[]],[\"name/119\",[29,27.836]],[\"comment/119\",[]],[\"name/120\",[35,16.147,36,19.728,37,20.349,61,22.882]],[\"comment/120\",[]],[\"name/121\",[35,16.147,38,20.349,61,22.882,62,28.33]],[\"comment/121\",[]],[\"name/122\",[35,16.147,38,20.349,61,22.882,63,28.33]],[\"comment/122\",[]],[\"name/123\",[35,16.147,38,20.349,39,21.887,61,22.882]],[\"comment/123\",[]],[\"name/124\",[35,19.613,55,31.335,64,31.335]],[\"comment/124\",[]],[\"name/125\",[35,19.613,64,31.335,65,31.335]],[\"comment/125\",[]],[\"name/126\",[35,16.147,65,25.797,66,28.33,67,28.33]],[\"comment/126\",[]],[\"name/127\",[68,60.305]],[\"comment/127\",[]],[\"name/128\",[69,60.305]],[\"comment/128\",[]],[\"name/129\",[13,30.819]],[\"comment/129\",[]],[\"name/130\",[70,60.305]],[\"comment/130\",[]],[\"name/131\",[4,29.599]],[\"comment/131\",[]],[\"name/132\",[71,51.361]],[\"comment/132\",[]],[\"name/133\",[72,51.361]],[\"comment/133\",[]],[\"name/134\",[73,51.361]],[\"comment/134\",[]],[\"name/135\",[74,51.361]],[\"comment/135\",[]],[\"name/136\",[75,51.361]],[\"comment/136\",[]],[\"name/137\",[76,51.361]],[\"comment/137\",[]],[\"name/138\",[77,46.589]],[\"comment/138\",[]],[\"name/139\",[41,48.708]],[\"comment/139\",[]],[\"name/140\",[78,51.361]],[\"comment/140\",[]],[\"name/141\",[79,51.361]],[\"comment/141\",[]],[\"name/142\",[80,51.361]],[\"comment/142\",[]],[\"name/143\",[81,51.361]],[\"comment/143\",[]],[\"name/144\",[82,51.361]],[\"comment/144\",[]],[\"name/145\",[83,60.305]],[\"comment/145\",[]],[\"name/146\",[4,29.599]],[\"comment/146\",[]],[\"name/147\",[84,60.305]],[\"comment/147\",[]],[\"name/148\",[85,60.305]],[\"comment/148\",[]],[\"name/149\",[86,60.305]],[\"comment/149\",[]],[\"name/150\",[87,60.305]],[\"comment/150\",[]],[\"name/151\",[88,60.305]],[\"comment/151\",[]],[\"name/152\",[89,60.305]],[\"comment/152\",[]],[\"name/153\",[90,60.305]],[\"comment/153\",[]],[\"name/154\",[71,51.361]],[\"comment/154\",[]],[\"name/155\",[29,27.836]],[\"comment/155\",[]],[\"name/156\",[72,51.361]],[\"comment/156\",[]],[\"name/157\",[29,27.836]],[\"comment/157\",[]],[\"name/158\",[73,51.361]],[\"comment/158\",[]],[\"name/159\",[29,27.836]],[\"comment/159\",[]],[\"name/160\",[74,51.361]],[\"comment/160\",[]],[\"name/161\",[29,27.836]],[\"comment/161\",[]],[\"name/162\",[75,51.361]],[\"comment/162\",[]],[\"name/163\",[29,27.836]],[\"comment/163\",[]],[\"name/164\",[76,51.361]],[\"comment/164\",[]],[\"name/165\",[29,27.836]],[\"comment/165\",[]],[\"name/166\",[77,46.589]],[\"comment/166\",[]],[\"name/167\",[29,27.836]],[\"comment/167\",[]],[\"name/168\",[41,48.708]],[\"comment/168\",[]],[\"name/169\",[29,27.836]],[\"comment/169\",[]],[\"name/170\",[78,51.361]],[\"comment/170\",[]],[\"name/171\",[29,27.836]],[\"comment/171\",[]],[\"name/172\",[79,51.361]],[\"comment/172\",[]],[\"name/173\",[29,27.836]],[\"comment/173\",[]],[\"name/174\",[80,51.361]],[\"comment/174\",[]],[\"name/175\",[29,27.836]],[\"comment/175\",[]],[\"name/176\",[81,51.361]],[\"comment/176\",[]],[\"name/177\",[29,27.836]],[\"comment/177\",[]],[\"name/178\",[82,51.361]],[\"comment/178\",[]],[\"name/179\",[29,27.836]],[\"comment/179\",[]],[\"name/180\",[91,60.305]],[\"comment/180\",[]],[\"name/181\",[92,60.305]],[\"comment/181\",[]],[\"name/182\",[4,29.599]],[\"comment/182\",[]],[\"name/183\",[93,37.11]],[\"comment/183\",[]],[\"name/184\",[94,54.912]],[\"comment/184\",[]],[\"name/185\",[95,54.912]],[\"comment/185\",[]],[\"name/186\",[96,51.361]],[\"comment/186\",[]],[\"name/187\",[97,51.361]],[\"comment/187\",[]],[\"name/188\",[98,54.912]],[\"comment/188\",[]],[\"name/189\",[42,48.708]],[\"comment/189\",[]],[\"name/190\",[99,54.912]],[\"comment/190\",[]],[\"name/191\",[100,54.912]],[\"comment/191\",[]],[\"name/192\",[101,60.305]],[\"comment/192\",[]],[\"name/193\",[102,44.826]],[\"comment/193\",[]],[\"name/194\",[103,60.305]],[\"comment/194\",[]],[\"name/195\",[104,60.305]],[\"comment/195\",[]],[\"name/196\",[4,29.599]],[\"comment/196\",[]],[\"name/197\",[102,44.826]],[\"comment/197\",[]],[\"name/198\",[105,51.361]],[\"comment/198\",[]],[\"name/199\",[106,54.912]],[\"comment/199\",[]],[\"name/200\",[107,54.912]],[\"comment/200\",[]],[\"name/201\",[108,54.912]],[\"comment/201\",[]],[\"name/202\",[109,54.912]],[\"comment/202\",[]],[\"name/203\",[110,54.912]],[\"comment/203\",[]],[\"name/204\",[111,54.912]],[\"comment/204\",[]],[\"name/205\",[77,46.589]],[\"comment/205\",[]],[\"name/206\",[112,54.912]],[\"comment/206\",[]],[\"name/207\",[113,54.912]],[\"comment/207\",[]],[\"name/208\",[114,54.912]],[\"comment/208\",[]],[\"name/209\",[115,54.912]],[\"comment/209\",[]],[\"name/210\",[116,54.912]],[\"comment/210\",[]],[\"name/211\",[117,54.912]],[\"comment/211\",[]],[\"name/212\",[118,54.912]],[\"comment/212\",[]],[\"name/213\",[119,54.912]],[\"comment/213\",[]],[\"name/214\",[120,54.912]],[\"comment/214\",[]],[\"name/215\",[42,48.708]],[\"comment/215\",[]],[\"name/216\",[121,54.912]],[\"comment/216\",[]],[\"name/217\",[29,27.836]],[\"comment/217\",[]],[\"name/218\",[121,54.912]],[\"comment/218\",[]],[\"name/219\",[122,60.305]],[\"comment/219\",[]],[\"name/220\",[4,29.599]],[\"comment/220\",[]],[\"name/221\",[123,60.305]],[\"comment/221\",[]],[\"name/222\",[124,60.305]],[\"comment/222\",[]],[\"name/223\",[102,44.826]],[\"comment/223\",[]],[\"name/224\",[105,51.361]],[\"comment/224\",[]],[\"name/225\",[106,54.912]],[\"comment/225\",[]],[\"name/226\",[107,54.912]],[\"comment/226\",[]],[\"name/227\",[108,54.912]],[\"comment/227\",[]],[\"name/228\",[109,54.912]],[\"comment/228\",[]],[\"name/229\",[110,54.912]],[\"comment/229\",[]],[\"name/230\",[111,54.912]],[\"comment/230\",[]],[\"name/231\",[77,46.589]],[\"comment/231\",[]],[\"name/232\",[112,54.912]],[\"comment/232\",[]],[\"name/233\",[113,54.912]],[\"comment/233\",[]],[\"name/234\",[114,54.912]],[\"comment/234\",[]],[\"name/235\",[115,54.912]],[\"comment/235\",[]],[\"name/236\",[116,54.912]],[\"comment/236\",[]],[\"name/237\",[117,54.912]],[\"comment/237\",[]],[\"name/238\",[118,54.912]],[\"comment/238\",[]],[\"name/239\",[119,54.912]],[\"comment/239\",[]],[\"name/240\",[120,54.912]],[\"comment/240\",[]],[\"name/241\",[42,48.708]],[\"comment/241\",[]],[\"name/242\",[125,60.305]],[\"comment/242\",[]],[\"name/243\",[4,29.599]],[\"comment/243\",[]],[\"name/244\",[126,54.912]],[\"comment/244\",[]],[\"name/245\",[127,54.912]],[\"comment/245\",[]],[\"name/246\",[128,54.912]],[\"comment/246\",[]],[\"name/247\",[129,54.912]],[\"comment/247\",[]],[\"name/248\",[130,54.912]],[\"comment/248\",[]],[\"name/249\",[102,44.826]],[\"comment/249\",[]],[\"name/250\",[131,60.305]],[\"comment/250\",[]],[\"name/251\",[132,54.912]],[\"comment/251\",[]],[\"name/252\",[133,60.305]],[\"comment/252\",[]],[\"name/253\",[4,29.599]],[\"comment/253\",[]],[\"name/254\",[126,54.912]],[\"comment/254\",[]],[\"name/255\",[134,54.912]],[\"comment/255\",[]],[\"name/256\",[135,54.912]],[\"comment/256\",[]],[\"name/257\",[127,54.912]],[\"comment/257\",[]],[\"name/258\",[128,54.912]],[\"comment/258\",[]],[\"name/259\",[136,60.305]],[\"comment/259\",[]],[\"name/260\",[129,54.912]],[\"comment/260\",[]],[\"name/261\",[130,54.912]],[\"comment/261\",[]],[\"name/262\",[137,51.361]],[\"comment/262\",[]],[\"name/263\",[138,60.305]],[\"comment/263\",[]],[\"name/264\",[13,30.819]],[\"comment/264\",[]],[\"name/265\",[139,60.305]],[\"comment/265\",[]],[\"name/266\",[140,60.305]],[\"comment/266\",[]],[\"name/267\",[141,60.305]],[\"comment/267\",[]],[\"name/268\",[142,60.305]],[\"comment/268\",[]],[\"name/269\",[5,54.912]],[\"comment/269\",[]],[\"name/270\",[7,54.912]],[\"comment/270\",[]],[\"name/271\",[143,60.305]],[\"comment/271\",[]],[\"name/272\",[144,60.305]],[\"comment/272\",[]],[\"name/273\",[145,60.305]],[\"comment/273\",[]],[\"name/274\",[146,60.305]],[\"comment/274\",[]],[\"name/275\",[147,60.305]],[\"comment/275\",[]],[\"name/276\",[148,54.912]],[\"comment/276\",[]],[\"name/277\",[149,54.912]],[\"comment/277\",[]],[\"name/278\",[150,60.305]],[\"comment/278\",[]],[\"name/279\",[151,60.305]],[\"comment/279\",[]],[\"name/280\",[71,51.361]],[\"comment/280\",[]],[\"name/281\",[72,51.361]],[\"comment/281\",[]],[\"name/282\",[73,51.361]],[\"comment/282\",[]],[\"name/283\",[74,51.361]],[\"comment/283\",[]],[\"name/284\",[75,51.361]],[\"comment/284\",[]],[\"name/285\",[76,51.361]],[\"comment/285\",[]],[\"name/286\",[77,46.589]],[\"comment/286\",[]],[\"name/287\",[41,48.708]],[\"comment/287\",[]],[\"name/288\",[78,51.361]],[\"comment/288\",[]],[\"name/289\",[79,51.361]],[\"comment/289\",[]],[\"name/290\",[80,51.361]],[\"comment/290\",[]],[\"name/291\",[81,51.361]],[\"comment/291\",[]],[\"name/292\",[82,51.361]],[\"comment/292\",[]],[\"name/293\",[152,60.305]],[\"comment/293\",[]],[\"name/294\",[4,29.599]],[\"comment/294\",[]],[\"name/295\",[153,60.305]],[\"comment/295\",[]],[\"name/296\",[154,60.305]],[\"comment/296\",[]],[\"name/297\",[29,27.836]],[\"comment/297\",[]],[\"name/298\",[45,35.393,155,43.82]],[\"comment/298\",[]],[\"name/299\",[29,27.836]],[\"comment/299\",[]],[\"name/300\",[93,37.11]],[\"comment/300\",[]],[\"name/301\",[156,37.923]],[\"comment/301\",[]],[\"name/302\",[105,51.361]],[\"comment/302\",[]],[\"name/303\",[157,54.912]],[\"comment/303\",[]],[\"name/304\",[158,54.912]],[\"comment/304\",[]],[\"name/305\",[159,54.912]],[\"comment/305\",[]],[\"name/306\",[160,54.912]],[\"comment/306\",[]],[\"name/307\",[161,38.803]],[\"comment/307\",[]],[\"name/308\",[45,35.393,162,43.82]],[\"comment/308\",[]],[\"name/309\",[29,27.836]],[\"comment/309\",[]],[\"name/310\",[93,37.11]],[\"comment/310\",[]],[\"name/311\",[156,37.923]],[\"comment/311\",[]],[\"name/312\",[161,38.803]],[\"comment/312\",[]],[\"name/313\",[45,27.794,163,34.412,164,34.412]],[\"comment/313\",[]],[\"name/314\",[29,27.836]],[\"comment/314\",[]],[\"name/315\",[93,37.11]],[\"comment/315\",[]],[\"name/316\",[156,37.923]],[\"comment/316\",[]],[\"name/317\",[165,60.305]],[\"comment/317\",[]],[\"name/318\",[29,27.836]],[\"comment/318\",[]],[\"name/319\",[93,37.11]],[\"comment/319\",[]],[\"name/320\",[156,37.923]],[\"comment/320\",[]],[\"name/321\",[157,54.912]],[\"comment/321\",[]],[\"name/322\",[158,54.912]],[\"comment/322\",[]],[\"name/323\",[159,54.912]],[\"comment/323\",[]],[\"name/324\",[160,54.912]],[\"comment/324\",[]],[\"name/325\",[161,38.803]],[\"comment/325\",[]],[\"name/326\",[36,23.963,37,24.717,166,31.335]],[\"comment/326\",[]],[\"name/327\",[29,27.836]],[\"comment/327\",[]],[\"name/328\",[93,37.11]],[\"comment/328\",[]],[\"name/329\",[156,37.923]],[\"comment/329\",[]],[\"name/330\",[167,48.708]],[\"comment/330\",[]],[\"name/331\",[18,46.589]],[\"comment/331\",[]],[\"name/332\",[168,60.305]],[\"comment/332\",[]],[\"name/333\",[169,43.315]],[\"comment/333\",[]],[\"name/334\",[161,38.803]],[\"comment/334\",[]],[\"name/335\",[24,21.887,36,19.728,37,20.349,170,28.33]],[\"comment/335\",[]],[\"name/336\",[29,27.836]],[\"comment/336\",[]],[\"name/337\",[93,37.11]],[\"comment/337\",[]],[\"name/338\",[156,37.923]],[\"comment/338\",[]],[\"name/339\",[167,48.708]],[\"comment/339\",[]],[\"name/340\",[137,51.361]],[\"comment/340\",[]],[\"name/341\",[171,54.912]],[\"comment/341\",[]],[\"name/342\",[172,54.912]],[\"comment/342\",[]],[\"name/343\",[169,43.315]],[\"comment/343\",[]],[\"name/344\",[161,38.803]],[\"comment/344\",[]],[\"name/345\",[24,21.887,36,19.728,37,20.349,173,28.33]],[\"comment/345\",[]],[\"name/346\",[29,27.836]],[\"comment/346\",[]],[\"name/347\",[93,37.11]],[\"comment/347\",[]],[\"name/348\",[156,37.923]],[\"comment/348\",[]],[\"name/349\",[167,48.708]],[\"comment/349\",[]],[\"name/350\",[137,51.361]],[\"comment/350\",[]],[\"name/351\",[171,54.912]],[\"comment/351\",[]],[\"name/352\",[172,54.912]],[\"comment/352\",[]],[\"name/353\",[169,43.315]],[\"comment/353\",[]],[\"name/354\",[161,38.803]],[\"comment/354\",[]],[\"name/355\",[36,23.963,37,24.717,174,31.335]],[\"comment/355\",[]],[\"name/356\",[29,27.836]],[\"comment/356\",[]],[\"name/357\",[93,37.11]],[\"comment/357\",[]],[\"name/358\",[156,37.923]],[\"comment/358\",[]],[\"name/359\",[167,48.708]],[\"comment/359\",[]],[\"name/360\",[169,43.315]],[\"comment/360\",[]],[\"name/361\",[161,38.803]],[\"comment/361\",[]],[\"name/362\",[38,24.717,39,26.586,166,31.335]],[\"comment/362\",[]],[\"name/363\",[29,27.836]],[\"comment/363\",[]],[\"name/364\",[93,37.11]],[\"comment/364\",[]],[\"name/365\",[156,37.923]],[\"comment/365\",[]],[\"name/366\",[175,51.361]],[\"comment/366\",[]],[\"name/367\",[176,60.305]],[\"comment/367\",[]],[\"name/368\",[177,60.305]],[\"comment/368\",[]],[\"name/369\",[169,43.315]],[\"comment/369\",[]],[\"name/370\",[161,38.803]],[\"comment/370\",[]],[\"name/371\",[38,24.717,39,26.586,178,34.412]],[\"comment/371\",[]],[\"name/372\",[29,27.836]],[\"comment/372\",[]],[\"name/373\",[93,37.11]],[\"comment/373\",[]],[\"name/374\",[156,37.923]],[\"comment/374\",[]],[\"name/375\",[175,51.361]],[\"comment/375\",[]],[\"name/376\",[134,54.912]],[\"comment/376\",[]],[\"name/377\",[135,54.912]],[\"comment/377\",[]],[\"name/378\",[169,43.315]],[\"comment/378\",[]],[\"name/379\",[161,38.803]],[\"comment/379\",[]],[\"name/380\",[38,24.717,39,26.586,174,31.335]],[\"comment/380\",[]],[\"name/381\",[29,27.836]],[\"comment/381\",[]],[\"name/382\",[93,37.11]],[\"comment/382\",[]],[\"name/383\",[156,37.923]],[\"comment/383\",[]],[\"name/384\",[175,51.361]],[\"comment/384\",[]],[\"name/385\",[169,43.315]],[\"comment/385\",[]],[\"name/386\",[161,38.803]],[\"comment/386\",[]],[\"name/387\",[179,60.305]],[\"comment/387\",[]],[\"name/388\",[29,27.836]],[\"comment/388\",[]],[\"name/389\",[180,60.305]],[\"comment/389\",[]],[\"name/390\",[181,60.305]],[\"comment/390\",[]],[\"name/391\",[182,60.305]],[\"comment/391\",[]],[\"name/392\",[13,30.819]],[\"comment/392\",[]],[\"name/393\",[183,60.305]],[\"comment/393\",[]],[\"name/394\",[184,60.305]],[\"comment/394\",[]],[\"name/395\",[185,60.305]],[\"comment/395\",[]],[\"name/396\",[186,60.305]],[\"comment/396\",[]],[\"name/397\",[132,54.912]],[\"comment/397\",[]],[\"name/398\",[13,30.819]],[\"comment/398\",[]],[\"name/399\",[161,38.803]],[\"comment/399\",[]],[\"name/400\",[187,60.305]],[\"comment/400\",[]],[\"name/401\",[188,60.305]],[\"comment/401\",[]],[\"name/402\",[189,60.305]],[\"comment/402\",[]],[\"name/403\",[190,60.305]],[\"comment/403\",[]],[\"name/404\",[191,60.305]],[\"comment/404\",[]],[\"name/405\",[93,37.11]],[\"comment/405\",[]],[\"name/406\",[96,51.361]],[\"comment/406\",[]],[\"name/407\",[97,51.361]],[\"comment/407\",[]],[\"name/408\",[94,54.912]],[\"comment/408\",[]],[\"name/409\",[95,54.912]],[\"comment/409\",[]],[\"name/410\",[98,54.912]],[\"comment/410\",[]],[\"name/411\",[99,54.912]],[\"comment/411\",[]],[\"name/412\",[100,54.912]],[\"comment/412\",[]],[\"name/413\",[192,60.305]],[\"comment/413\",[]],[\"name/414\",[148,54.912]],[\"comment/414\",[]],[\"name/415\",[149,54.912]],[\"comment/415\",[]],[\"name/416\",[193,60.305]],[\"comment/416\",[]],[\"name/417\",[156,37.923]],[\"comment/417\",[]],[\"name/418\",[96,51.361]],[\"comment/418\",[]],[\"name/419\",[194,60.305]],[\"comment/419\",[]],[\"name/420\",[97,51.361]],[\"comment/420\",[]],[\"name/421\",[195,60.305]],[\"comment/421\",[]],[\"name/422\",[196,54.912]],[\"comment/422\",[]],[\"name/423\",[197,54.912]],[\"comment/423\",[]],[\"name/424\",[29,27.836]],[\"comment/424\",[]],[\"name/425\",[198,48.708]],[\"comment/425\",[]],[\"name/426\",[199,60.305]],[\"comment/426\",[]],[\"name/427\",[200,54.912]],[\"comment/427\",[]],[\"name/428\",[198,48.708]],[\"comment/428\",[]],[\"name/429\",[201,60.305]],[\"comment/429\",[]],[\"name/430\",[102,44.826]],[\"comment/430\",[]],[\"name/431\",[196,54.912]],[\"comment/431\",[]],[\"name/432\",[197,54.912]],[\"comment/432\",[]],[\"name/433\",[29,27.836]],[\"comment/433\",[]],[\"name/434\",[198,48.708]],[\"comment/434\",[]],[\"name/435\",[202,60.305]],[\"comment/435\",[]],[\"name/436\",[102,44.826]],[\"comment/436\",[]],[\"name/437\",[200,54.912]],[\"comment/437\",[]],[\"name/438\",[198,48.708]],[\"comment/438\",[]],[\"name/439\",[203,60.305]],[\"comment/439\",[]],[\"name/440\",[204,54.912]],[\"comment/440\",[]],[\"name/441\",[205,60.305]],[\"comment/441\",[]],[\"name/442\",[206,51.361]],[\"comment/442\",[]],[\"name/443\",[207,60.305]],[\"comment/443\",[]],[\"name/444\",[204,54.912]],[\"comment/444\",[]],[\"name/445\",[206,51.361]],[\"comment/445\",[]],[\"name/446\",[206,51.361]],[\"comment/446\",[]],[\"name/447\",[208,60.305]],[\"comment/447\",[]],[\"name/448\",[209,60.305]],[\"comment/448\",[]],[\"name/449\",[210,60.305]],[\"comment/449\",[]],[\"name/450\",[211,60.305]],[\"comment/450\",[]],[\"name/451\",[212,60.305]],[\"comment/451\",[]],[\"name/452\",[213,60.305]],[\"comment/452\",[]]],\"invertedIndex\":[[\"__type\",{\"_index\":29,\"name\":{\"62\":{},\"68\":{},\"119\":{},\"155\":{},\"157\":{},\"159\":{},\"161\":{},\"163\":{},\"165\":{},\"167\":{},\"169\":{},\"171\":{},\"173\":{},\"175\":{},\"177\":{},\"179\":{},\"217\":{},\"297\":{},\"299\":{},\"309\":{},\"314\":{},\"318\":{},\"327\":{},\"336\":{},\"346\":{},\"356\":{},\"363\":{},\"372\":{},\"381\":{},\"388\":{},\"424\":{},\"433\":{}},\"comment\":{}}],[\"_destroy\",{\"_index\":130,\"name\":{\"248\":{},\"261\":{}},\"comment\":{}}],[\"_final\",{\"_index\":129,\"name\":{\"247\":{},\"260\":{}},\"comment\":{}}],[\"_read\",{\"_index\":127,\"name\":{\"245\":{},\"257\":{}},\"comment\":{}}],[\"_write\",{\"_index\":128,\"name\":{\"246\":{},\"258\":{}},\"comment\":{}}],[\"_writev\",{\"_index\":136,\"name\":{\"259\":{}},\"comment\":{}}],[\"adddatastream\",{\"_index\":205,\"name\":{\"441\":{}},\"comment\":{}}],[\"address\",{\"_index\":185,\"name\":{\"395\":{}},\"comment\":{}}],[\"addrulefromdefinition\",{\"_index\":145,\"name\":{\"273\":{}},\"comment\":{}}],[\"agent\",{\"_index\":67,\"name\":{\"126\":{}},\"comment\":{}}],[\"answer\",{\"_index\":200,\"name\":{\"427\":{},\"437\":{}},\"comment\":{}}],[\"answerexternaloffer\",{\"_index\":95,\"name\":{\"185\":{},\"409\":{}},\"comment\":{}}],[\"answeroffer\",{\"_index\":97,\"name\":{\"187\":{},\"407\":{},\"420\":{}},\"comment\":{}}],[\"answeroptions\",{\"_index\":207,\"name\":{\"443\":{}},\"comment\":{}}],[\"attached\",{\"_index\":164,\"name\":{\"313\":{}},\"comment\":{}}],[\"audio\",{\"_index\":63,\"name\":{\"122\":{}},\"comment\":{}}],[\"buildlocaldescription\",{\"_index\":113,\"name\":{\"207\":{},\"233\":{}},\"comment\":{}}],[\"buildpeer\",{\"_index\":140,\"name\":{\"266\":{}},\"comment\":{}}],[\"buildpeerfromdefinition\",{\"_index\":144,\"name\":{\"272\":{}},\"comment\":{}}],[\"buildresolvers\",{\"_index\":9,\"name\":{\"9\":{}},\"comment\":{}}],[\"channel\",{\"_index\":37,\"name\":{\"70\":{},\"74\":{},\"120\":{},\"326\":{},\"335\":{},\"345\":{},\"355\":{}},\"comment\":{}}],[\"channelid\",{\"_index\":167,\"name\":{\"330\":{},\"339\":{},\"349\":{},\"359\":{}},\"comment\":{}}],[\"channellabel\",{\"_index\":18,\"name\":{\"23\":{},\"28\":{},\"41\":{},\"46\":{},\"331\":{}},\"comment\":{}}],[\"channelprotocol\",{\"_index\":168,\"name\":{\"332\":{}},\"comment\":{}}],[\"channels\",{\"_index\":106,\"name\":{\"199\":{},\"225\":{}},\"comment\":{}}],[\"close\",{\"_index\":42,\"name\":{\"76\":{},\"189\":{},\"215\":{},\"241\":{}},\"comment\":{}}],[\"closed\",{\"_index\":174,\"name\":{\"355\":{},\"380\":{}},\"comment\":{}}],[\"closestepdefinition\",{\"_index\":25,\"name\":{\"49\":{}},\"comment\":{}}],[\"completeoffer\",{\"_index\":194,\"name\":{\"419\":{}},\"comment\":{}}],[\"connected\",{\"_index\":155,\"name\":{\"298\":{}},\"comment\":{}}],[\"connection\",{\"_index\":43,\"name\":{\"76\":{}},\"comment\":{}}],[\"connectionmetadata\",{\"_index\":206,\"name\":{\"442\":{},\"445\":{},\"446\":{}},\"comment\":{}}],[\"connecttimestamp\",{\"_index\":188,\"name\":{\"401\":{}},\"comment\":{}}],[\"constructor\",{\"_index\":4,\"name\":{\"4\":{},\"16\":{},\"21\":{},\"26\":{},\"31\":{},\"35\":{},\"39\":{},\"44\":{},\"50\":{},\"54\":{},\"58\":{},\"64\":{},\"86\":{},\"90\":{},\"94\":{},\"98\":{},\"102\":{},\"107\":{},\"113\":{},\"131\":{},\"146\":{},\"182\":{},\"196\":{},\"220\":{},\"243\":{},\"253\":{},\"294\":{}},\"comment\":{}}],[\"content\",{\"_index\":171,\"name\":{\"341\":{},\"351\":{}},\"comment\":{}}],[\"create\",{\"_index\":40,\"name\":{\"74\":{}},\"comment\":{}}],[\"createchannelstepdefinition\",{\"_index\":22,\"name\":{\"38\":{}},\"comment\":{}}],[\"createdatachannel\",{\"_index\":77,\"name\":{\"138\":{},\"166\":{},\"205\":{},\"231\":{},\"286\":{}},\"comment\":{}}],[\"createexternaloffer\",{\"_index\":94,\"name\":{\"184\":{},\"408\":{}},\"comment\":{}}],[\"createoffer\",{\"_index\":96,\"name\":{\"186\":{},\"406\":{},\"418\":{}},\"comment\":{}}],[\"data\",{\"_index\":36,\"name\":{\"70\":{},\"74\":{},\"75\":{},\"120\":{},\"326\":{},\"335\":{},\"345\":{},\"355\":{}},\"comment\":{}}],[\"datachannelstream\",{\"_index\":125,\"name\":{\"242\":{}},\"comment\":{}}],[\"debug\",{\"_index\":148,\"name\":{\"276\":{},\"414\":{}},\"comment\":{}}],[\"description\",{\"_index\":103,\"name\":{\"194\":{}},\"comment\":{}}],[\"direction\",{\"_index\":137,\"name\":{\"262\":{},\"340\":{},\"350\":{}},\"comment\":{}}],[\"disconnected\",{\"_index\":162,\"name\":{\"308\":{}},\"comment\":{}}],[\"disconnecttimestamp\",{\"_index\":189,\"name\":{\"402\":{}},\"comment\":{}}],[\"duration\",{\"_index\":34,\"name\":{\"69\":{}},\"comment\":{}}],[\"durationms\",{\"_index\":15,\"name\":{\"18\":{}},\"comment\":{}}],[\"dynamic\",{\"_index\":47,\"name\":{\"79\":{}},\"comment\":{}}],[\"dynamicproxystepdefinition\",{\"_index\":30,\"name\":{\"63\":{}},\"comment\":{}}],[\"echo\",{\"_index\":44,\"name\":{\"77\":{}},\"comment\":{}}],[\"echostepdefinition\",{\"_index\":26,\"name\":{\"53\":{}},\"comment\":{}}],[\"eventtimestamp\",{\"_index\":169,\"name\":{\"333\":{},\"343\":{},\"353\":{},\"360\":{},\"369\":{},\"378\":{},\"385\":{}},\"comment\":{}}],[\"explain\",{\"_index\":16,\"name\":{\"19\":{},\"24\":{},\"29\":{},\"33\":{},\"37\":{},\"42\":{},\"48\":{},\"52\":{},\"56\":{},\"60\":{},\"66\":{},\"88\":{},\"92\":{},\"96\":{},\"100\":{},\"105\":{},\"111\":{},\"117\":{}},\"comment\":{}}],[\"external\",{\"_index\":163,\"name\":{\"313\":{}},\"comment\":{}}],[\"externalattachtimestamp\",{\"_index\":190,\"name\":{\"403\":{}},\"comment\":{}}],[\"externalconnection\",{\"_index\":165,\"name\":{\"317\":{}},\"comment\":{}}],[\"for\",{\"_index\":33,\"name\":{\"69\":{},\"70\":{},\"71\":{},\"72\":{},\"73\":{}},\"comment\":{}}],[\"forconnections\",{\"_index\":141,\"name\":{\"267\":{}},\"comment\":{}}],[\"frompagehostname\",{\"_index\":88,\"name\":{\"151\":{}},\"comment\":{}}],[\"frompageurlmatching\",{\"_index\":89,\"name\":{\"152\":{}},\"comment\":{}}],[\"fromuseragentmatching\",{\"_index\":90,\"name\":{\"153\":{}},\"comment\":{}}],[\"getadminserver\",{\"_index\":2,\"name\":{\"2\":{}},\"comment\":{}}],[\"getallmessages\",{\"_index\":99,\"name\":{\"190\":{},\"411\":{}},\"comment\":{}}],[\"getlocal\",{\"_index\":0,\"name\":{\"0\":{}},\"comment\":{}}],[\"getlocaldescription\",{\"_index\":115,\"name\":{\"209\":{},\"235\":{}},\"comment\":{}}],[\"getmatchingpeer\",{\"_index\":142,\"name\":{\"268\":{}},\"comment\":{}}],[\"getmessagesonchannel\",{\"_index\":100,\"name\":{\"191\":{},\"412\":{}},\"comment\":{}}],[\"getmirroredlocalanswer\",{\"_index\":118,\"name\":{\"212\":{},\"238\":{}},\"comment\":{}}],[\"getmirroredlocaloffer\",{\"_index\":117,\"name\":{\"211\":{},\"237\":{}},\"comment\":{}}],[\"getremote\",{\"_index\":1,\"name\":{\"1\":{}},\"comment\":{}}],[\"getremotedescription\",{\"_index\":114,\"name\":{\"208\":{},\"234\":{}},\"comment\":{}}],[\"getselectedcandidates\",{\"_index\":116,\"name\":{\"210\":{},\"236\":{}},\"comment\":{}}],[\"getsession\",{\"_index\":98,\"name\":{\"188\":{},\"410\":{}},\"comment\":{}}],[\"handle\",{\"_index\":69,\"name\":{\"128\":{}},\"comment\":{}}],[\"handlerstep\",{\"_index\":68,\"name\":{\"127\":{}},\"comment\":{}}],[\"handlerstepdefinition\",{\"_index\":12,\"name\":{\"13\":{}},\"comment\":{}}],[\"handlerstepdefinitions\",{\"_index\":10,\"name\":{\"10\":{}},\"comment\":{}}],[\"has\",{\"_index\":61,\"name\":{\"120\":{},\"121\":{},\"122\":{},\"123\":{}},\"comment\":{}}],[\"hasaudiotrackmatcherdefinition\",{\"_index\":52,\"name\":{\"93\":{}},\"comment\":{}}],[\"hasdatachannelmatcherdefinition\",{\"_index\":50,\"name\":{\"85\":{}},\"comment\":{}}],[\"hasmediatrackmatcherdefinition\",{\"_index\":53,\"name\":{\"97\":{}},\"comment\":{}}],[\"hasvideotrackmatcherdefinition\",{\"_index\":51,\"name\":{\"89\":{}},\"comment\":{}}],[\"hookallwebrtc\",{\"_index\":213,\"name\":{\"452\":{}},\"comment\":{}}],[\"hookwebrtcconnection\",{\"_index\":212,\"name\":{\"451\":{}},\"comment\":{}}],[\"hostname\",{\"_index\":55,\"name\":{\"104\":{},\"124\":{}},\"comment\":{}}],[\"hostnamematcherdefinition\",{\"_index\":54,\"name\":{\"101\":{}},\"comment\":{}}],[\"id\",{\"_index\":102,\"name\":{\"193\":{},\"197\":{},\"223\":{},\"249\":{},\"430\":{},\"436\":{}},\"comment\":{}}],[\"isbinary\",{\"_index\":172,\"name\":{\"342\":{},\"352\":{}},\"comment\":{}}],[\"isopen\",{\"_index\":126,\"name\":{\"244\":{},\"254\":{}},\"comment\":{}}],[\"label\",{\"_index\":131,\"name\":{\"250\":{}},\"comment\":{}}],[\"localchannels\",{\"_index\":107,\"name\":{\"200\":{},\"226\":{}},\"comment\":{}}],[\"localmediatracks\",{\"_index\":110,\"name\":{\"203\":{},\"229\":{}},\"comment\":{}}],[\"localsessiondescription\",{\"_index\":157,\"name\":{\"303\":{},\"321\":{}},\"comment\":{}}],[\"matcherdefinition\",{\"_index\":49,\"name\":{\"83\":{}},\"comment\":{}}],[\"matcherdefinitionlookup\",{\"_index\":60,\"name\":{\"118\":{}},\"comment\":{}}],[\"matcherdefinitions\",{\"_index\":48,\"name\":{\"80\":{}},\"comment\":{}}],[\"matchers\",{\"_index\":180,\"name\":{\"389\":{}},\"comment\":{}}],[\"media\",{\"_index\":39,\"name\":{\"72\":{},\"123\":{},\"362\":{},\"371\":{},\"380\":{}},\"comment\":{}}],[\"mediatracks\",{\"_index\":109,\"name\":{\"202\":{},\"228\":{}},\"comment\":{}}],[\"mediatrackstream\",{\"_index\":133,\"name\":{\"252\":{}},\"comment\":{}}],[\"message\",{\"_index\":24,\"name\":{\"47\":{},\"73\":{},\"75\":{},\"335\":{},\"345\":{}},\"comment\":{}}],[\"metadata\",{\"_index\":105,\"name\":{\"198\":{},\"224\":{},\"302\":{}},\"comment\":{}}],[\"mid\",{\"_index\":138,\"name\":{\"263\":{}},\"comment\":{}}],[\"mirrorsdp\",{\"_index\":204,\"name\":{\"440\":{},\"444\":{}},\"comment\":{}}],[\"mockrtc\",{\"_index\":139,\"name\":{\"265\":{}},\"comment\":{}}],[\"mockrtc_control_channel\",{\"_index\":210,\"name\":{\"449\":{}},\"comment\":{}}],[\"mockrtcadminplugin\",{\"_index\":3,\"name\":{\"3\":{}},\"comment\":{}}],[\"mockrtcadminserver\",{\"_index\":152,\"name\":{\"293\":{}},\"comment\":{}}],[\"mockrtcanswerparams\",{\"_index\":199,\"name\":{\"426\":{}},\"comment\":{}}],[\"mockrtcclientoptions\",{\"_index\":150,\"name\":{\"278\":{}},\"comment\":{}}],[\"mockrtcconnection\",{\"_index\":122,\"name\":{\"219\":{}},\"comment\":{}}],[\"mockrtccontrolmessage\",{\"_index\":211,\"name\":{\"450\":{}},\"comment\":{}}],[\"mockrtcevent\",{\"_index\":153,\"name\":{\"295\":{}},\"comment\":{}}],[\"mockrtceventdata\",{\"_index\":154,\"name\":{\"296\":{}},\"comment\":{}}],[\"mockrtcexternalanswerparams\",{\"_index\":202,\"name\":{\"435\":{}},\"comment\":{}}],[\"mockrtcexternalofferparams\",{\"_index\":201,\"name\":{\"429\":{}},\"comment\":{}}],[\"mockrtchandlerbuilder\",{\"_index\":70,\"name\":{\"130\":{}},\"comment\":{}}],[\"mockrtcofferparams\",{\"_index\":195,\"name\":{\"421\":{}},\"comment\":{}}],[\"mockrtcoptions\",{\"_index\":147,\"name\":{\"275\":{}},\"comment\":{}}],[\"mockrtcpeer\",{\"_index\":191,\"name\":{\"404\":{}},\"comment\":{}}],[\"mockrtcpeerbuilder\",{\"_index\":151,\"name\":{\"279\":{}},\"comment\":{}}],[\"mockrtcpeeroptions\",{\"_index\":192,\"name\":{\"413\":{}},\"comment\":{}}],[\"mockrtcrulebuilder\",{\"_index\":83,\"name\":{\"145\":{}},\"comment\":{}}],[\"mockrtcruledefinition\",{\"_index\":179,\"name\":{\"387\":{}},\"comment\":{}}],[\"mockrtcserverpeer\",{\"_index\":92,\"name\":{\"181\":{}},\"comment\":{}}],[\"mockrtcsession\",{\"_index\":193,\"name\":{\"416\":{}},\"comment\":{}}],[\"mockrtcsessiondescription\",{\"_index\":182,\"name\":{\"391\":{}},\"comment\":{}}],[\"offer\",{\"_index\":196,\"name\":{\"422\":{},\"431\":{}},\"comment\":{}}],[\"offeroptions\",{\"_index\":203,\"name\":{\"439\":{}},\"comment\":{}}],[\"on\",{\"_index\":143,\"name\":{\"271\":{}},\"comment\":{}}],[\"opened\",{\"_index\":166,\"name\":{\"326\":{},\"362\":{}},\"comment\":{}}],[\"page\",{\"_index\":64,\"name\":{\"124\":{},\"125\":{}},\"comment\":{}}],[\"parsedsdp\",{\"_index\":121,\"name\":{\"216\":{},\"218\":{}},\"comment\":{}}],[\"peer\",{\"_index\":45,\"name\":{\"78\":{},\"298\":{},\"308\":{},\"313\":{}},\"comment\":{}}],[\"peerid\",{\"_index\":93,\"name\":{\"183\":{},\"300\":{},\"310\":{},\"315\":{},\"319\":{},\"328\":{},\"337\":{},\"347\":{},\"357\":{},\"364\":{},\"373\":{},\"382\":{},\"405\":{}},\"comment\":{}}],[\"peerproxystepdefinition\",{\"_index\":27,\"name\":{\"57\":{}},\"comment\":{}}],[\"port\",{\"_index\":186,\"name\":{\"396\":{}},\"comment\":{}}],[\"protocol\",{\"_index\":132,\"name\":{\"251\":{},\"397\":{}},\"comment\":{}}],[\"proxy\",{\"_index\":46,\"name\":{\"78\":{},\"79\":{}},\"comment\":{}}],[\"proxytrafficto\",{\"_index\":124,\"name\":{\"222\":{}},\"comment\":{}}],[\"proxytraffictoexternalconnection\",{\"_index\":123,\"name\":{\"221\":{}},\"comment\":{}}],[\"received\",{\"_index\":173,\"name\":{\"345\":{}},\"comment\":{}}],[\"recordmessages\",{\"_index\":149,\"name\":{\"277\":{},\"415\":{}},\"comment\":{}}],[\"regex\",{\"_index\":65,\"name\":{\"125\":{},\"126\":{}},\"comment\":{}}],[\"regexflags\",{\"_index\":58,\"name\":{\"110\":{},\"116\":{}},\"comment\":{}}],[\"regexsource\",{\"_index\":57,\"name\":{\"109\":{},\"115\":{}},\"comment\":{}}],[\"remotechannels\",{\"_index\":108,\"name\":{\"201\":{},\"227\":{}},\"comment\":{}}],[\"remotemediatracks\",{\"_index\":111,\"name\":{\"204\":{},\"230\":{}},\"comment\":{}}],[\"remotesessiondescription\",{\"_index\":158,\"name\":{\"304\":{},\"322\":{}},\"comment\":{}}],[\"reset\",{\"_index\":6,\"name\":{\"6\":{}},\"comment\":{}}],[\"rtc\",{\"_index\":35,\"name\":{\"70\":{},\"71\":{},\"72\":{},\"73\":{},\"74\":{},\"75\":{},\"76\":{},\"77\":{},\"78\":{},\"79\":{},\"120\":{},\"121\":{},\"122\":{},\"123\":{},\"124\":{},\"125\":{},\"126\":{}},\"comment\":{}}],[\"rtcconnection\",{\"_index\":104,\"name\":{\"195\":{}},\"comment\":{}}],[\"rulehandlerbuilder\",{\"_index\":91,\"name\":{\"180\":{}},\"comment\":{}}],[\"schema\",{\"_index\":8,\"name\":{\"8\":{}},\"comment\":{}}],[\"sdp\",{\"_index\":183,\"name\":{\"393\":{}},\"comment\":{}}],[\"selectedlocalcandidate\",{\"_index\":159,\"name\":{\"305\":{},\"323\":{}},\"comment\":{}}],[\"selectedremotecandidate\",{\"_index\":160,\"name\":{\"306\":{},\"324\":{}},\"comment\":{}}],[\"selectedrtccandidate\",{\"_index\":184,\"name\":{\"394\":{}},\"comment\":{}}],[\"send\",{\"_index\":41,\"name\":{\"75\":{},\"139\":{},\"168\":{},\"287\":{}},\"comment\":{}}],[\"sendstepdefinition\",{\"_index\":23,\"name\":{\"43\":{}},\"comment\":{}}],[\"sent\",{\"_index\":170,\"name\":{\"335\":{}},\"comment\":{}}],[\"serializable\",{\"_index\":11,\"name\":{\"11\":{},\"12\":{},\"81\":{},\"82\":{}},\"comment\":{}}],[\"serialize\",{\"_index\":28,\"name\":{\"61\":{}},\"comment\":{}}],[\"session\",{\"_index\":198,\"name\":{\"425\":{},\"428\":{},\"434\":{},\"438\":{}},\"comment\":{}}],[\"sessionapi\",{\"_index\":120,\"name\":{\"214\":{},\"240\":{}},\"comment\":{}}],[\"sessiondata\",{\"_index\":101,\"name\":{\"192\":{}},\"comment\":{}}],[\"sessionid\",{\"_index\":156,\"name\":{\"301\":{},\"311\":{},\"316\":{},\"320\":{},\"329\":{},\"338\":{},\"348\":{},\"358\":{},\"365\":{},\"374\":{},\"383\":{},\"417\":{}},\"comment\":{}}],[\"setanswer\",{\"_index\":197,\"name\":{\"423\":{},\"432\":{}},\"comment\":{}}],[\"setremotedescription\",{\"_index\":112,\"name\":{\"206\":{},\"232\":{}},\"comment\":{}}],[\"setrulesfromdefinitions\",{\"_index\":146,\"name\":{\"274\":{}},\"comment\":{}}],[\"sleep\",{\"_index\":71,\"name\":{\"132\":{},\"154\":{},\"280\":{}},\"comment\":{}}],[\"sourceurl\",{\"_index\":209,\"name\":{\"448\":{}},\"comment\":{}}],[\"start\",{\"_index\":5,\"name\":{\"5\":{},\"269\":{}},\"comment\":{}}],[\"starttime\",{\"_index\":187,\"name\":{\"400\":{}},\"comment\":{}}],[\"stats\",{\"_index\":178,\"name\":{\"371\":{}},\"comment\":{}}],[\"stepdefinitionlookup\",{\"_index\":31,\"name\":{\"67\":{}},\"comment\":{}}],[\"steps\",{\"_index\":181,\"name\":{\"390\":{}},\"comment\":{}}],[\"stop\",{\"_index\":7,\"name\":{\"7\":{},\"270\":{}},\"comment\":{}}],[\"thenclose\",{\"_index\":78,\"name\":{\"140\":{},\"170\":{},\"288\":{}},\"comment\":{}}],[\"thenecho\",{\"_index\":80,\"name\":{\"142\":{},\"174\":{},\"290\":{}},\"comment\":{}}],[\"thenforwardto\",{\"_index\":81,\"name\":{\"143\":{},\"176\":{},\"291\":{}},\"comment\":{}}],[\"thenpassthrough\",{\"_index\":82,\"name\":{\"144\":{},\"178\":{},\"292\":{}},\"comment\":{}}],[\"thensend\",{\"_index\":79,\"name\":{\"141\":{},\"172\":{},\"289\":{}},\"comment\":{}}],[\"timingevents\",{\"_index\":161,\"name\":{\"307\":{},\"312\":{},\"325\":{},\"334\":{},\"344\":{},\"354\":{},\"361\":{},\"370\":{},\"379\":{},\"386\":{},\"399\":{}},\"comment\":{}}],[\"totalbytesreceived\",{\"_index\":135,\"name\":{\"256\":{},\"377\":{}},\"comment\":{}}],[\"totalbytessent\",{\"_index\":134,\"name\":{\"255\":{},\"376\":{}},\"comment\":{}}],[\"track\",{\"_index\":38,\"name\":{\"71\":{},\"121\":{},\"122\":{},\"123\":{},\"362\":{},\"371\":{},\"380\":{}},\"comment\":{}}],[\"trackdirection\",{\"_index\":177,\"name\":{\"368\":{}},\"comment\":{}}],[\"trackmid\",{\"_index\":175,\"name\":{\"366\":{},\"375\":{},\"384\":{}},\"comment\":{}}],[\"tracktype\",{\"_index\":176,\"name\":{\"367\":{}},\"comment\":{}}],[\"type\",{\"_index\":13,\"name\":{\"14\":{},\"17\":{},\"22\":{},\"27\":{},\"32\":{},\"36\":{},\"40\":{},\"45\":{},\"51\":{},\"55\":{},\"59\":{},\"65\":{},\"84\":{},\"87\":{},\"91\":{},\"95\":{},\"99\":{},\"103\":{},\"108\":{},\"114\":{},\"129\":{},\"264\":{},\"392\":{},\"398\":{}},\"comment\":{}}],[\"urlregexmatcherdefinition\",{\"_index\":56,\"name\":{\"106\":{}},\"comment\":{}}],[\"user\",{\"_index\":66,\"name\":{\"126\":{}},\"comment\":{}}],[\"useragent\",{\"_index\":208,\"name\":{\"447\":{}},\"comment\":{}}],[\"useragentregexmatcherdefinition\",{\"_index\":59,\"name\":{\"112\":{}},\"comment\":{}}],[\"video\",{\"_index\":62,\"name\":{\"121\":{}},\"comment\":{}}],[\"wait\",{\"_index\":32,\"name\":{\"69\":{},\"70\":{},\"71\":{},\"72\":{},\"73\":{}},\"comment\":{}}],[\"waitforchannel\",{\"_index\":72,\"name\":{\"133\":{},\"156\":{},\"281\":{}},\"comment\":{}}],[\"waitforchannelstepdefinition\",{\"_index\":17,\"name\":{\"20\":{}},\"comment\":{}}],[\"waitfordurationstepdefinition\",{\"_index\":14,\"name\":{\"15\":{}},\"comment\":{}}],[\"waitformediastepdefinition\",{\"_index\":21,\"name\":{\"34\":{}},\"comment\":{}}],[\"waitformessagestepdefinition\",{\"_index\":19,\"name\":{\"25\":{}},\"comment\":{}}],[\"waitfornextmedia\",{\"_index\":75,\"name\":{\"136\":{},\"162\":{},\"284\":{}},\"comment\":{}}],[\"waitfornextmessage\",{\"_index\":74,\"name\":{\"135\":{},\"160\":{},\"283\":{}},\"comment\":{}}],[\"waitfornextmessageonchannel\",{\"_index\":76,\"name\":{\"137\":{},\"164\":{},\"285\":{}},\"comment\":{}}],[\"waitfortrack\",{\"_index\":73,\"name\":{\"134\":{},\"158\":{},\"282\":{}},\"comment\":{}}],[\"waitfortrackstepdefinition\",{\"_index\":20,\"name\":{\"30\":{}},\"comment\":{}}],[\"waituntilconnected\",{\"_index\":119,\"name\":{\"213\":{},\"239\":{}},\"comment\":{}}],[\"withaudio\",{\"_index\":87,\"name\":{\"150\":{}},\"comment\":{}}],[\"withdatachannels\",{\"_index\":84,\"name\":{\"147\":{}},\"comment\":{}}],[\"withmedia\",{\"_index\":85,\"name\":{\"148\":{}},\"comment\":{}}],[\"withvideo\",{\"_index\":86,\"name\":{\"149\":{}},\"comment\":{}}]],\"pipeline\":[]}}"); \ No newline at end of file diff --git a/assets/style.css b/assets/style.css new file mode 100644 index 0000000..18b4f8f --- /dev/null +++ b/assets/style.css @@ -0,0 +1,1367 @@ +: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-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: var(--light-color-ts-type-alias); + --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); + /* object literal not included as it is not used and will be removed in 0.25 */ + --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-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: var(--dark-color-ts-type-alias); + --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); + /* object literal not included as it is not used and will be removed in 0.25 */ + --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-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-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-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-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, +h2 > a, +h3 > a, +h4 > a, +h5 > a, +h6 > a { + 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 */ +.tsd-generator { + border-top: 1px solid var(--color-accent); + padding-top: 1rem; + padding-bottom: 1rem; + max-height: 3.5rem; +} + +.tsd-generator > p { + margin-top: 0; + margin-bottom: 0; + padding: 0 1rem; +} + +.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: "Segoe UI", sans-serif; + 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 h4, +.tsd-typography .tsd-index-panel h3, +.tsd-index-panel .tsd-typography h3, +.tsd-typography h5, +.tsd-typography h6 { + font-size: 1em; + margin: 0; +} +.tsd-typography h5, +.tsd-typography h6 { + font-weight: normal; +} +.tsd-typography p, +.tsd-typography ul, +.tsd-typography ol { + margin: 1em 0; +} + +.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-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.5rem); +} +.tsd-navigation a, +.tsd-navigation summary > span, +.tsd-page-navigation a { + display: inline-flex; + 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-nested-navigation > li > a, +.tsd-nested-navigation > li > span { + width: calc(100% - 1.75rem - 0.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 { + padding: 0 10px; + background-color: var(--color-background); +} +#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, +#tsd-search .results li:hover { + background-color: var(--color-accent); +} +#tsd-search .results a { + display: block; +} +#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-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; +} + +.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/classes/DataChannelStream.html b/classes/DataChannelStream.html new file mode 100644 index 0000000..1e56934 --- /dev/null +++ b/classes/DataChannelStream.html @@ -0,0 +1,3240 @@ +DataChannelStream | MockRTC API Reference
+
+ +
+
+
+
+ +

Class DataChannelStream

+
+

Turns a node-datachannel DataChannel into a real Node.js stream, complete with +buffering, backpressure (up to a point - if the buffer fills up, messages are dropped), +and support for piping data elsewhere.

+

Read & written data may be either UTF-8 strings or Buffers - this difference exists at +the protocol level, and is preserved here throughout.

+
+
+
+

Hierarchy

+
    +
  • Duplex +
      +
    • DataChannelStream
+
+
+
+ +
+
+

Constructors

+
+ +
    + +
  • +
    +

    Parameters

    +
      +
    • +
      rawChannel: DataChannel
    • +
    • +
      streamOptions: {
          allowHalfOpen?: boolean;
          readableHighWaterMark?: number;
          writableHighWaterMark?: number;
      } = {}
      +
        +
      • +
        Optional allowHalfOpen?: boolean
      • +
      • +
        Optional readableHighWaterMark?: number
      • +
      • +
        Optional writableHighWaterMark?: number
    +

    Returns DataChannelStream

+
+

Properties

+
+ +
allowHalfOpen: boolean
+

If false then the stream will automatically end the writable side when the +readable side ends. Set initially by the allowHalfOpen constructor option, +which defaults to false.

+

This can be changed manually to change the half-open behavior of an existingDuplex stream instance, but must be changed before the 'end' event is +emitted.

+
+
+

Since

v0.9.4

+
+
+ +
destroyed: boolean
+

Is true after readable.destroy() has been called.

+
+
+

Since

v8.0.0

+
+
+ +
readable: boolean
+

Is true if it is safe to call readable.read(), which means +the stream has not been destroyed or emitted 'error' or 'end'.

+
+
+

Since

v11.4.0

+
+
+ +
readableAborted: boolean
+

Returns whether the stream was destroyed or errored before emitting 'end'.

+
+
+

Since

v16.8.0

+
+
+ +
readableDidRead: boolean
+

Returns whether 'data' has been emitted.

+
+
+

Since

v16.7.0

+
+
+ +
readableEncoding: null | BufferEncoding
+

Getter for the property encoding of a given Readable stream. The encodingproperty can be set using the readable.setEncoding() method.

+
+
+

Since

v12.7.0

+
+
+ +
readableEnded: boolean
+

Becomes true when 'end' event is emitted.

+
+
+

Since

v12.9.0

+
+
+ +
readableFlowing: null | boolean
+

This property reflects the current state of a Readable stream as described +in the Three states section.

+
+
+

Since

v9.4.0

+
+
+ +
readableHighWaterMark: number
+

Returns the value of highWaterMark passed when creating this Readable.

+
+
+

Since

v9.3.0

+
+
+ +
readableLength: number
+

This property contains the number of bytes (or objects) in the queue +ready to be read. The value provides introspection data regarding +the status of the highWaterMark.

+
+
+

Since

v9.4.0

+
+
+ +
readableObjectMode: boolean
+

Getter for the property objectMode of a given Readable stream.

+
+
+

Since

v12.3.0

+
+
+ +
writable: boolean
+
+ +
writableCorked: number
+
+ +
writableEnded: boolean
+
+ +
writableFinished: boolean
+
+ +
writableHighWaterMark: number
+
+ +
writableLength: number
+
+ +
writableObjectMode: boolean
+
+ +
captureRejectionSymbol: typeof captureRejectionSymbol
+
+ +
captureRejections: boolean
+

Sets or gets the default captureRejection value for all emitters.

+
+
+
+ +
defaultMaxListeners: number
+
+ +
errorMonitor: typeof errorMonitor
+

This symbol shall be used to install a listener for only monitoring 'error' +events. Listeners installed using this symbol are called before the regular +'error' listeners are called.

+

Installing a listener using this symbol does not change the behavior once an +'error' event is emitted, therefore the process will still crash if no +regular 'error' listener is installed.

+
+
+
+

Accessors

+
+ +
+
+ +
+
+ +
+
+ +
+
+

Methods

+
+ +
    + +
  • +

    Returns AsyncIterableIterator<any>

+
+ +
    + +
  • +
    +

    Parameters

    +
      +
    • +
      callback: ((error?) => void)
      +
        +
      • +
          +
        • (error?): void
        • +
        • +
          +

          Parameters

          +
            +
          • +
            Optional error: null | Error
          +

          Returns void

    +

    Returns void

+
+ +
    + +
  • +
    +

    Parameters

    +
      +
    • +
      maybeErr: null | Error
    • +
    • +
      callback: ((error) => void)
      +
        +
      • +
          +
        • (error): void
        • +
        • +
          +

          Parameters

          +
            +
          • +
            error: null | Error
          +

          Returns void

    +

    Returns void

+
+ +
    + +
  • +
    +

    Parameters

    +
      +
    • +
      callback: ((error) => void)
      +
        +
      • +
          +
        • (error): void
        • +
        • +
          +

          Parameters

          +
            +
          • +
            error: null | Error
          +

          Returns void

    +

    Returns void

+
+ +
+
+ +
    + +
  • +
    +

    Parameters

    +
      +
    • +
      chunk: unknown
    • +
    • +
      encoding: string
    • +
    • +
      callback: ((error) => void)
      +
        +
      • +
          +
        • (error): void
        • +
        • +
          +

          Parameters

          +
            +
          • +
            error: null | Error
          +

          Returns void

    +

    Returns void

+
+ +
    + +
  • +
    +

    Parameters

    +
      +
    • +
      chunks: {
          chunk: any;
          encoding: BufferEncoding;
      }[]
    • +
    • +
      callback: ((error?) => void)
      +
        +
      • +
          +
        • (error?): void
        • +
        • +
          +

          Parameters

          +
            +
          • +
            Optional error: null | Error
          +

          Returns void

    +

    Returns void

+
+ +
    + +
  • +

    Event emitter +The defined events on documents including:

    +
      +
    1. close
    2. +
    3. data
    4. +
    5. drain
    6. +
    7. end
    8. +
    9. error
    10. +
    11. finish
    12. +
    13. pause
    14. +
    15. pipe
    16. +
    17. readable
    18. +
    19. resume
    20. +
    21. unpipe
    22. +
    +
    +
    +

    Parameters

    +
      +
    • +
      event: "close"
    • +
    • +
      listener: (() => void)
      +
        +
      • +
          +
        • (): void
        • +
        • +

          Returns void

    +

    Returns DataChannelStream

    +
  • + +
  • +
    +

    Parameters

    +
      +
    • +
      event: "data"
    • +
    • +
      listener: ((chunk) => void)
      +
        +
      • +
          +
        • (chunk): void
        • +
        • +
          +

          Parameters

          +
            +
          • +
            chunk: any
          +

          Returns void

    +

    Returns DataChannelStream

  • + +
  • +
    +

    Parameters

    +
      +
    • +
      event: "drain"
    • +
    • +
      listener: (() => void)
      +
        +
      • +
          +
        • (): void
        • +
        • +

          Returns void

    +

    Returns DataChannelStream

  • + +
  • +
    +

    Parameters

    +
      +
    • +
      event: "end"
    • +
    • +
      listener: (() => void)
      +
        +
      • +
          +
        • (): void
        • +
        • +

          Returns void

    +

    Returns DataChannelStream

  • + +
  • +
    +

    Parameters

    +
      +
    • +
      event: "error"
    • +
    • +
      listener: ((err) => void)
      +
        +
      • +
          +
        • (err): void
        • +
        • +
          +

          Parameters

          +
            +
          • +
            err: Error
          +

          Returns void

    +

    Returns DataChannelStream

  • + +
  • +
    +

    Parameters

    +
      +
    • +
      event: "finish"
    • +
    • +
      listener: (() => void)
      +
        +
      • +
          +
        • (): void
        • +
        • +

          Returns void

    +

    Returns DataChannelStream

  • + +
  • +
    +

    Parameters

    +
      +
    • +
      event: "pause"
    • +
    • +
      listener: (() => void)
      +
        +
      • +
          +
        • (): void
        • +
        • +

          Returns void

    +

    Returns DataChannelStream

  • + +
  • +
    +

    Parameters

    +
      +
    • +
      event: "pipe"
    • +
    • +
      listener: ((src) => void)
      +
        +
      • +
          +
        • (src): void
        • +
        • +
          +

          Parameters

          +
            +
          • +
            src: Readable
          +

          Returns void

    +

    Returns DataChannelStream

  • + +
  • +
    +

    Parameters

    +
      +
    • +
      event: "readable"
    • +
    • +
      listener: (() => void)
      +
        +
      • +
          +
        • (): void
        • +
        • +

          Returns void

    +

    Returns DataChannelStream

  • + +
  • +
    +

    Parameters

    +
      +
    • +
      event: "resume"
    • +
    • +
      listener: (() => void)
      +
        +
      • +
          +
        • (): void
        • +
        • +

          Returns void

    +

    Returns DataChannelStream

  • + +
  • +
    +

    Parameters

    +
      +
    • +
      event: "unpipe"
    • +
    • +
      listener: ((src) => void)
      +
        +
      • +
          +
        • (src): void
        • +
        • +
          +

          Parameters

          +
            +
          • +
            src: Readable
          +

          Returns void

    +

    Returns DataChannelStream

  • + +
  • +
    +

    Parameters

    +
      +
    • +
      event: string | symbol
    • +
    • +
      listener: ((...args) => void)
      +
        +
      • +
          +
        • (...args): void
        • +
        • +
          +

          Parameters

          +
            +
          • +
            Rest ...args: any[]
          +

          Returns void

    +

    Returns DataChannelStream

+
+ +
    + +
  • +

    Returns void

+
+ +
    + +
  • +

    Destroy the stream. Optionally emit an 'error' event, and emit a 'close'event (unless emitClose is set to false). After this call, the readable +stream will release any internal resources and subsequent calls to push()will be ignored.

    +

    Once destroy() has been called any further calls will be a no-op and no +further errors except from _destroy() may be emitted as 'error'.

    +

    Implementors should not override this method, but instead implement readable._destroy().

    +
    +
    +

    Parameters

    +
      +
    • +
      Optional error: Error
      +

      Error which will be passed as payload in 'error' event

      +
      +
    +

    Returns DataChannelStream

    +
    +

    Since

    v8.0.0

    +
+
+ +
    + +
  • +
    +

    Parameters

    +
      +
    • +
      event: "close"
    +

    Returns boolean

  • + +
  • +
    +

    Parameters

    +
      +
    • +
      event: "data"
    • +
    • +
      chunk: any
    +

    Returns boolean

  • + +
  • +
    +

    Parameters

    +
      +
    • +
      event: "drain"
    +

    Returns boolean

  • + +
  • +
    +

    Parameters

    +
      +
    • +
      event: "end"
    +

    Returns boolean

  • + +
  • +
    +

    Parameters

    +
      +
    • +
      event: "error"
    • +
    • +
      err: Error
    +

    Returns boolean

  • + +
  • +
    +

    Parameters

    +
      +
    • +
      event: "finish"
    +

    Returns boolean

  • + +
  • +
    +

    Parameters

    +
      +
    • +
      event: "pause"
    +

    Returns boolean

  • + +
  • +
    +

    Parameters

    +
      +
    • +
      event: "pipe"
    • +
    • +
      src: Readable
    +

    Returns boolean

  • + +
  • +
    +

    Parameters

    +
      +
    • +
      event: "readable"
    +

    Returns boolean

  • + +
  • +
    +

    Parameters

    +
      +
    • +
      event: "resume"
    +

    Returns boolean

  • + +
  • +
    +

    Parameters

    +
      +
    • +
      event: "unpipe"
    • +
    • +
      src: Readable
    +

    Returns boolean

  • + +
  • +
    +

    Parameters

    +
      +
    • +
      event: string | symbol
    • +
    • +
      Rest ...args: any[]
    +

    Returns boolean

+
+ +
    + +
  • +
    +

    Parameters

    +
      +
    • +
      Optional cb: (() => void)
      +
        +
      • +
          +
        • (): void
        • +
        • +

          Returns void

    +

    Returns DataChannelStream

  • + +
  • +
    +

    Parameters

    +
      +
    • +
      chunk: any
    • +
    • +
      Optional cb: (() => void)
      +
        +
      • +
          +
        • (): void
        • +
        • +

          Returns void

    +

    Returns DataChannelStream

  • + +
  • +
    +

    Parameters

    +
      +
    • +
      chunk: any
    • +
    • +
      Optional encoding: BufferEncoding
    • +
    • +
      Optional cb: (() => void)
      +
        +
      • +
          +
        • (): void
        • +
        • +

          Returns void

    +

    Returns DataChannelStream

+
+ +
    + +
  • +

    Returns an array listing the events for which the emitter has registered +listeners. The values in the array are strings or Symbols.

    +
    const EventEmitter = require('events');
    const myEE = new EventEmitter();
    myEE.on('foo', () => {});
    myEE.on('bar', () => {});

    const sym = Symbol('symbol');
    myEE.on(sym, () => {});

    console.log(myEE.eventNames());
    // Prints: [ 'foo', 'bar', Symbol(symbol) ] +
    +
    +

    Returns (string | symbol)[]

    +
    +

    Since

    v6.0.0

    +
+
+ +
    + +
  • +

    Returns the current max listener value for the EventEmitter which is either +set by emitter.setMaxListeners(n) or defaults to defaultMaxListeners.

    +
    +

    Returns number

    +
    +

    Since

    v1.0.0

    +
+
+ +
    + +
  • +

    The readable.isPaused() method returns the current operating state of theReadable. This is used primarily by the mechanism that underlies thereadable.pipe() method. In most +typical cases, there will be no reason to +use this method directly.

    +
    const readable = new stream.Readable();

    readable.isPaused(); // === false
    readable.pause();
    readable.isPaused(); // === true
    readable.resume();
    readable.isPaused(); // === false +
    +
    +

    Returns boolean

    +
    +

    Since

    v0.11.14

    +
+
+ +
    + +
  • +

    Returns the number of listeners listening to the event named eventName.

    +
    +
    +

    Parameters

    +
      +
    • +
      eventName: string | symbol
      +

      The name of the event being listened for

      +
      +
    +

    Returns number

    +
    +

    Since

    v3.2.0

    +
+
+ +
    + +
  • +

    Returns a copy of the array of listeners for the event named eventName.

    +
    server.on('connection', (stream) => {
    console.log('someone connected!');
    });
    console.log(util.inspect(server.listeners('connection')));
    // Prints: [ [Function] ] +
    +
    +
    +

    Parameters

    +
      +
    • +
      eventName: string | symbol
    +

    Returns Function[]

    +
    +

    Since

    v0.1.26

    +
+
+ +
    + +
  • +

    Alias for emitter.removeListener().

    +
    +
    +

    Parameters

    +
      +
    • +
      eventName: string | symbol
    • +
    • +
      listener: ((...args) => void)
      +
        +
      • +
          +
        • (...args): void
        • +
        • +
          +

          Parameters

          +
            +
          • +
            Rest ...args: any[]
          +

          Returns void

    +

    Returns DataChannelStream

    +
    +

    Since

    v10.0.0

    +
+
+ +
    + +
  • +
    +

    Parameters

    +
      +
    • +
      event: "close"
    • +
    • +
      listener: (() => void)
      +
        +
      • +
          +
        • (): void
        • +
        • +

          Returns void

    +

    Returns DataChannelStream

  • + +
  • +
    +

    Parameters

    +
      +
    • +
      event: "data"
    • +
    • +
      listener: ((chunk) => void)
      +
        +
      • +
          +
        • (chunk): void
        • +
        • +
          +

          Parameters

          +
            +
          • +
            chunk: any
          +

          Returns void

    +

    Returns DataChannelStream

  • + +
  • +
    +

    Parameters

    +
      +
    • +
      event: "drain"
    • +
    • +
      listener: (() => void)
      +
        +
      • +
          +
        • (): void
        • +
        • +

          Returns void

    +

    Returns DataChannelStream

  • + +
  • +
    +

    Parameters

    +
      +
    • +
      event: "end"
    • +
    • +
      listener: (() => void)
      +
        +
      • +
          +
        • (): void
        • +
        • +

          Returns void

    +

    Returns DataChannelStream

  • + +
  • +
    +

    Parameters

    +
      +
    • +
      event: "error"
    • +
    • +
      listener: ((err) => void)
      +
        +
      • +
          +
        • (err): void
        • +
        • +
          +

          Parameters

          +
            +
          • +
            err: Error
          +

          Returns void

    +

    Returns DataChannelStream

  • + +
  • +
    +

    Parameters

    +
      +
    • +
      event: "finish"
    • +
    • +
      listener: (() => void)
      +
        +
      • +
          +
        • (): void
        • +
        • +

          Returns void

    +

    Returns DataChannelStream

  • + +
  • +
    +

    Parameters

    +
      +
    • +
      event: "pause"
    • +
    • +
      listener: (() => void)
      +
        +
      • +
          +
        • (): void
        • +
        • +

          Returns void

    +

    Returns DataChannelStream

  • + +
  • +
    +

    Parameters

    +
      +
    • +
      event: "pipe"
    • +
    • +
      listener: ((src) => void)
      +
        +
      • +
          +
        • (src): void
        • +
        • +
          +

          Parameters

          +
            +
          • +
            src: Readable
          +

          Returns void

    +

    Returns DataChannelStream

  • + +
  • +
    +

    Parameters

    +
      +
    • +
      event: "readable"
    • +
    • +
      listener: (() => void)
      +
        +
      • +
          +
        • (): void
        • +
        • +

          Returns void

    +

    Returns DataChannelStream

  • + +
  • +
    +

    Parameters

    +
      +
    • +
      event: "resume"
    • +
    • +
      listener: (() => void)
      +
        +
      • +
          +
        • (): void
        • +
        • +

          Returns void

    +

    Returns DataChannelStream

  • + +
  • +
    +

    Parameters

    +
      +
    • +
      event: "unpipe"
    • +
    • +
      listener: ((src) => void)
      +
        +
      • +
          +
        • (src): void
        • +
        • +
          +

          Parameters

          +
            +
          • +
            src: Readable
          +

          Returns void

    +

    Returns DataChannelStream

  • + +
  • +
    +

    Parameters

    +
      +
    • +
      event: string | symbol
    • +
    • +
      listener: ((...args) => void)
      +
        +
      • +
          +
        • (...args): void
        • +
        • +
          +

          Parameters

          +
            +
          • +
            Rest ...args: any[]
          +

          Returns void

    +

    Returns DataChannelStream

+
+ +
    + +
  • +
    +

    Parameters

    +
      +
    • +
      event: "close"
    • +
    • +
      listener: (() => void)
      +
        +
      • +
          +
        • (): void
        • +
        • +

          Returns void

    +

    Returns DataChannelStream

  • + +
  • +
    +

    Parameters

    +
      +
    • +
      event: "data"
    • +
    • +
      listener: ((chunk) => void)
      +
        +
      • +
          +
        • (chunk): void
        • +
        • +
          +

          Parameters

          +
            +
          • +
            chunk: any
          +

          Returns void

    +

    Returns DataChannelStream

  • + +
  • +
    +

    Parameters

    +
      +
    • +
      event: "drain"
    • +
    • +
      listener: (() => void)
      +
        +
      • +
          +
        • (): void
        • +
        • +

          Returns void

    +

    Returns DataChannelStream

  • + +
  • +
    +

    Parameters

    +
      +
    • +
      event: "end"
    • +
    • +
      listener: (() => void)
      +
        +
      • +
          +
        • (): void
        • +
        • +

          Returns void

    +

    Returns DataChannelStream

  • + +
  • +
    +

    Parameters

    +
      +
    • +
      event: "error"
    • +
    • +
      listener: ((err) => void)
      +
        +
      • +
          +
        • (err): void
        • +
        • +
          +

          Parameters

          +
            +
          • +
            err: Error
          +

          Returns void

    +

    Returns DataChannelStream

  • + +
  • +
    +

    Parameters

    +
      +
    • +
      event: "finish"
    • +
    • +
      listener: (() => void)
      +
        +
      • +
          +
        • (): void
        • +
        • +

          Returns void

    +

    Returns DataChannelStream

  • + +
  • +
    +

    Parameters

    +
      +
    • +
      event: "pause"
    • +
    • +
      listener: (() => void)
      +
        +
      • +
          +
        • (): void
        • +
        • +

          Returns void

    +

    Returns DataChannelStream

  • + +
  • +
    +

    Parameters

    +
      +
    • +
      event: "pipe"
    • +
    • +
      listener: ((src) => void)
      +
        +
      • +
          +
        • (src): void
        • +
        • +
          +

          Parameters

          +
            +
          • +
            src: Readable
          +

          Returns void

    +

    Returns DataChannelStream

  • + +
  • +
    +

    Parameters

    +
      +
    • +
      event: "readable"
    • +
    • +
      listener: (() => void)
      +
        +
      • +
          +
        • (): void
        • +
        • +

          Returns void

    +

    Returns DataChannelStream

  • + +
  • +
    +

    Parameters

    +
      +
    • +
      event: "resume"
    • +
    • +
      listener: (() => void)
      +
        +
      • +
          +
        • (): void
        • +
        • +

          Returns void

    +

    Returns DataChannelStream

  • + +
  • +
    +

    Parameters

    +
      +
    • +
      event: "unpipe"
    • +
    • +
      listener: ((src) => void)
      +
        +
      • +
          +
        • (src): void
        • +
        • +
          +

          Parameters

          +
            +
          • +
            src: Readable
          +

          Returns void

    +

    Returns DataChannelStream

  • + +
  • +
    +

    Parameters

    +
      +
    • +
      event: string | symbol
    • +
    • +
      listener: ((...args) => void)
      +
        +
      • +
          +
        • (...args): void
        • +
        • +
          +

          Parameters

          +
            +
          • +
            Rest ...args: any[]
          +

          Returns void

    +

    Returns DataChannelStream

+
+ +
    + +
  • +

    The readable.pause() method will cause a stream in flowing mode to stop +emitting 'data' events, switching out of flowing mode. Any data that +becomes available will remain in the internal buffer.

    +
    const readable = getReadableStreamSomehow();
    readable.on('data', (chunk) => {
    console.log(`Received ${chunk.length} bytes of data.`);
    readable.pause();
    console.log('There will be no additional data for 1 second.');
    setTimeout(() => {
    console.log('Now data will start flowing again.');
    readable.resume();
    }, 1000);
    }); +
    +

    The readable.pause() method has no effect if there is a 'readable'event listener.

    +
    +

    Returns DataChannelStream

    +
    +

    Since

    v0.9.4

    +
+
+ +
    + +
  • +
    +

    Type Parameters

    +
      +
    • +

      T extends WritableStream<T>

    +
    +

    Parameters

    +
      +
    • +
      destination: T
    • +
    • +
      Optional options: {
          end?: boolean;
      }
      +
        +
      • +
        Optional end?: boolean
    +

    Returns T

+
+ +
    + +
  • +
    +

    Parameters

    +
      +
    • +
      event: "close"
    • +
    • +
      listener: (() => void)
      +
        +
      • +
          +
        • (): void
        • +
        • +

          Returns void

    +

    Returns DataChannelStream

  • + +
  • +
    +

    Parameters

    +
      +
    • +
      event: "data"
    • +
    • +
      listener: ((chunk) => void)
      +
        +
      • +
          +
        • (chunk): void
        • +
        • +
          +

          Parameters

          +
            +
          • +
            chunk: any
          +

          Returns void

    +

    Returns DataChannelStream

  • + +
  • +
    +

    Parameters

    +
      +
    • +
      event: "drain"
    • +
    • +
      listener: (() => void)
      +
        +
      • +
          +
        • (): void
        • +
        • +

          Returns void

    +

    Returns DataChannelStream

  • + +
  • +
    +

    Parameters

    +
      +
    • +
      event: "end"
    • +
    • +
      listener: (() => void)
      +
        +
      • +
          +
        • (): void
        • +
        • +

          Returns void

    +

    Returns DataChannelStream

  • + +
  • +
    +

    Parameters

    +
      +
    • +
      event: "error"
    • +
    • +
      listener: ((err) => void)
      +
        +
      • +
          +
        • (err): void
        • +
        • +
          +

          Parameters

          +
            +
          • +
            err: Error
          +

          Returns void

    +

    Returns DataChannelStream

  • + +
  • +
    +

    Parameters

    +
      +
    • +
      event: "finish"
    • +
    • +
      listener: (() => void)
      +
        +
      • +
          +
        • (): void
        • +
        • +

          Returns void

    +

    Returns DataChannelStream

  • + +
  • +
    +

    Parameters

    +
      +
    • +
      event: "pause"
    • +
    • +
      listener: (() => void)
      +
        +
      • +
          +
        • (): void
        • +
        • +

          Returns void

    +

    Returns DataChannelStream

  • + +
  • +
    +

    Parameters

    +
      +
    • +
      event: "pipe"
    • +
    • +
      listener: ((src) => void)
      +
        +
      • +
          +
        • (src): void
        • +
        • +
          +

          Parameters

          +
            +
          • +
            src: Readable
          +

          Returns void

    +

    Returns DataChannelStream

  • + +
  • +
    +

    Parameters

    +
      +
    • +
      event: "readable"
    • +
    • +
      listener: (() => void)
      +
        +
      • +
          +
        • (): void
        • +
        • +

          Returns void

    +

    Returns DataChannelStream

  • + +
  • +
    +

    Parameters

    +
      +
    • +
      event: "resume"
    • +
    • +
      listener: (() => void)
      +
        +
      • +
          +
        • (): void
        • +
        • +

          Returns void

    +

    Returns DataChannelStream

  • + +
  • +
    +

    Parameters

    +
      +
    • +
      event: "unpipe"
    • +
    • +
      listener: ((src) => void)
      +
        +
      • +
          +
        • (src): void
        • +
        • +
          +

          Parameters

          +
            +
          • +
            src: Readable
          +

          Returns void

    +

    Returns DataChannelStream

  • + +
  • +
    +

    Parameters

    +
      +
    • +
      event: string | symbol
    • +
    • +
      listener: ((...args) => void)
      +
        +
      • +
          +
        • (...args): void
        • +
        • +
          +

          Parameters

          +
            +
          • +
            Rest ...args: any[]
          +

          Returns void

    +

    Returns DataChannelStream

+
+ +
    + +
  • +
    +

    Parameters

    +
      +
    • +
      event: "close"
    • +
    • +
      listener: (() => void)
      +
        +
      • +
          +
        • (): void
        • +
        • +

          Returns void

    +

    Returns DataChannelStream

  • + +
  • +
    +

    Parameters

    +
      +
    • +
      event: "data"
    • +
    • +
      listener: ((chunk) => void)
      +
        +
      • +
          +
        • (chunk): void
        • +
        • +
          +

          Parameters

          +
            +
          • +
            chunk: any
          +

          Returns void

    +

    Returns DataChannelStream

  • + +
  • +
    +

    Parameters

    +
      +
    • +
      event: "drain"
    • +
    • +
      listener: (() => void)
      +
        +
      • +
          +
        • (): void
        • +
        • +

          Returns void

    +

    Returns DataChannelStream

  • + +
  • +
    +

    Parameters

    +
      +
    • +
      event: "end"
    • +
    • +
      listener: (() => void)
      +
        +
      • +
          +
        • (): void
        • +
        • +

          Returns void

    +

    Returns DataChannelStream

  • + +
  • +
    +

    Parameters

    +
      +
    • +
      event: "error"
    • +
    • +
      listener: ((err) => void)
      +
        +
      • +
          +
        • (err): void
        • +
        • +
          +

          Parameters

          +
            +
          • +
            err: Error
          +

          Returns void

    +

    Returns DataChannelStream

  • + +
  • +
    +

    Parameters

    +
      +
    • +
      event: "finish"
    • +
    • +
      listener: (() => void)
      +
        +
      • +
          +
        • (): void
        • +
        • +

          Returns void

    +

    Returns DataChannelStream

  • + +
  • +
    +

    Parameters

    +
      +
    • +
      event: "pause"
    • +
    • +
      listener: (() => void)
      +
        +
      • +
          +
        • (): void
        • +
        • +

          Returns void

    +

    Returns DataChannelStream

  • + +
  • +
    +

    Parameters

    +
      +
    • +
      event: "pipe"
    • +
    • +
      listener: ((src) => void)
      +
        +
      • +
          +
        • (src): void
        • +
        • +
          +

          Parameters

          +
            +
          • +
            src: Readable
          +

          Returns void

    +

    Returns DataChannelStream

  • + +
  • +
    +

    Parameters

    +
      +
    • +
      event: "readable"
    • +
    • +
      listener: (() => void)
      +
        +
      • +
          +
        • (): void
        • +
        • +

          Returns void

    +

    Returns DataChannelStream

  • + +
  • +
    +

    Parameters

    +
      +
    • +
      event: "resume"
    • +
    • +
      listener: (() => void)
      +
        +
      • +
          +
        • (): void
        • +
        • +

          Returns void

    +

    Returns DataChannelStream

  • + +
  • +
    +

    Parameters

    +
      +
    • +
      event: "unpipe"
    • +
    • +
      listener: ((src) => void)
      +
        +
      • +
          +
        • (src): void
        • +
        • +
          +

          Parameters

          +
            +
          • +
            src: Readable
          +

          Returns void

    +

    Returns DataChannelStream

  • + +
  • +
    +

    Parameters

    +
      +
    • +
      event: string | symbol
    • +
    • +
      listener: ((...args) => void)
      +
        +
      • +
          +
        • (...args): void
        • +
        • +
          +

          Parameters

          +
            +
          • +
            Rest ...args: any[]
          +

          Returns void

    +

    Returns DataChannelStream

+
+ +
    + +
  • +
    +

    Parameters

    +
      +
    • +
      chunk: any
    • +
    • +
      Optional encoding: BufferEncoding
    +

    Returns boolean

+
+ +
    + +
  • +

    Returns a copy of the array of listeners for the event named eventName, +including any wrappers (such as those created by .once()).

    +
    const emitter = new EventEmitter();
    emitter.once('log', () => console.log('log once'));

    // Returns a new Array with a function `onceWrapper` which has a property
    // `listener` which contains the original listener bound above
    const listeners = emitter.rawListeners('log');
    const logFnWrapper = listeners[0];

    // Logs "log once" to the console and does not unbind the `once` event
    logFnWrapper.listener();

    // Logs "log once" to the console and removes the listener
    logFnWrapper();

    emitter.on('log', () => console.log('log persistently'));
    // Will return a new Array with a single function bound by `.on()` above
    const newListeners = emitter.rawListeners('log');

    // Logs "log persistently" twice
    newListeners[0]();
    emitter.emit('log'); +
    +
    +
    +

    Parameters

    +
      +
    • +
      eventName: string | symbol
    +

    Returns Function[]

    +
    +

    Since

    v9.4.0

    +
+
+ +
    + +
  • +

    The readable.read() method pulls some data out of the internal buffer and +returns it. If no data available to be read, null is returned. By default, +the data will be returned as a Buffer object unless an encoding has been +specified using the readable.setEncoding() method or the stream is operating +in object mode.

    +

    The optional size argument specifies a specific number of bytes to read. Ifsize bytes are not available to be read, null will be returned _unless_the stream has ended, in which +case all of the data remaining in the internal +buffer will be returned.

    +

    If the size argument is not specified, all of the data contained in the +internal buffer will be returned.

    +

    The size argument must be less than or equal to 1 GiB.

    +

    The readable.read() method should only be called on Readable streams +operating in paused mode. In flowing mode, readable.read() is called +automatically until the internal buffer is fully drained.

    +
    const readable = getReadableStreamSomehow();

    // 'readable' may be triggered multiple times as data is buffered in
    readable.on('readable', () => {
    let chunk;
    console.log('Stream is readable (new data received in buffer)');
    // Use a loop to make sure we read all currently available data
    while (null !== (chunk = readable.read())) {
    console.log(`Read ${chunk.length} bytes of data...`);
    }
    });

    // 'end' will be triggered once when there is no more data available
    readable.on('end', () => {
    console.log('Reached end of stream.');
    }); +
    +

    Each call to readable.read() returns a chunk of data, or null. The chunks +are not concatenated. A while loop is necessary to consume all data +currently in the buffer. When reading a large file .read() may return null, +having consumed all buffered content so far, but there is still more data to +come not yet buffered. In this case a new 'readable' event will be emitted +when there is more data in the buffer. Finally the 'end' event will be +emitted when there is no more data to come.

    +

    Therefore to read a file's whole contents from a readable, it is necessary +to collect chunks across multiple 'readable' events:

    +
    const chunks = [];

    readable.on('readable', () => {
    let chunk;
    while (null !== (chunk = readable.read())) {
    chunks.push(chunk);
    }
    });

    readable.on('end', () => {
    const content = chunks.join('');
    }); +
    +

    A Readable stream in object mode will always return a single item from +a call to readable.read(size), regardless of the value of thesize argument.

    +

    If the readable.read() method returns a chunk of data, a 'data' event will +also be emitted.

    +

    Calling read after the 'end' event has +been emitted will return null. No runtime error will be raised.

    +
    +
    +

    Parameters

    +
      +
    • +
      Optional size: number
      +

      Optional argument to specify how much data to read.

      +
      +
    +

    Returns any

    +
    +

    Since

    v0.9.4

    +
+
+ +
    + +
  • +

    Removes all listeners, or those of the specified eventName.

    +

    It is bad practice to remove listeners added elsewhere in the code, +particularly when the EventEmitter instance was created by some other +component or module (e.g. sockets or file streams).

    +

    Returns a reference to the EventEmitter, so that calls can be chained.

    +
    +
    +

    Parameters

    +
      +
    • +
      Optional event: string | symbol
    +

    Returns DataChannelStream

    +
    +

    Since

    v0.1.26

    +
+
+ +
    + +
  • +
    +

    Parameters

    +
      +
    • +
      event: "close"
    • +
    • +
      listener: (() => void)
      +
        +
      • +
          +
        • (): void
        • +
        • +

          Returns void

    +

    Returns DataChannelStream

  • + +
  • +
    +

    Parameters

    +
      +
    • +
      event: "data"
    • +
    • +
      listener: ((chunk) => void)
      +
        +
      • +
          +
        • (chunk): void
        • +
        • +
          +

          Parameters

          +
            +
          • +
            chunk: any
          +

          Returns void

    +

    Returns DataChannelStream

  • + +
  • +
    +

    Parameters

    +
      +
    • +
      event: "drain"
    • +
    • +
      listener: (() => void)
      +
        +
      • +
          +
        • (): void
        • +
        • +

          Returns void

    +

    Returns DataChannelStream

  • + +
  • +
    +

    Parameters

    +
      +
    • +
      event: "end"
    • +
    • +
      listener: (() => void)
      +
        +
      • +
          +
        • (): void
        • +
        • +

          Returns void

    +

    Returns DataChannelStream

  • + +
  • +
    +

    Parameters

    +
      +
    • +
      event: "error"
    • +
    • +
      listener: ((err) => void)
      +
        +
      • +
          +
        • (err): void
        • +
        • +
          +

          Parameters

          +
            +
          • +
            err: Error
          +

          Returns void

    +

    Returns DataChannelStream

  • + +
  • +
    +

    Parameters

    +
      +
    • +
      event: "finish"
    • +
    • +
      listener: (() => void)
      +
        +
      • +
          +
        • (): void
        • +
        • +

          Returns void

    +

    Returns DataChannelStream

  • + +
  • +
    +

    Parameters

    +
      +
    • +
      event: "pause"
    • +
    • +
      listener: (() => void)
      +
        +
      • +
          +
        • (): void
        • +
        • +

          Returns void

    +

    Returns DataChannelStream

  • + +
  • +
    +

    Parameters

    +
      +
    • +
      event: "pipe"
    • +
    • +
      listener: ((src) => void)
      +
        +
      • +
          +
        • (src): void
        • +
        • +
          +

          Parameters

          +
            +
          • +
            src: Readable
          +

          Returns void

    +

    Returns DataChannelStream

  • + +
  • +
    +

    Parameters

    +
      +
    • +
      event: "readable"
    • +
    • +
      listener: (() => void)
      +
        +
      • +
          +
        • (): void
        • +
        • +

          Returns void

    +

    Returns DataChannelStream

  • + +
  • +
    +

    Parameters

    +
      +
    • +
      event: "resume"
    • +
    • +
      listener: (() => void)
      +
        +
      • +
          +
        • (): void
        • +
        • +

          Returns void

    +

    Returns DataChannelStream

  • + +
  • +
    +

    Parameters

    +
      +
    • +
      event: "unpipe"
    • +
    • +
      listener: ((src) => void)
      +
        +
      • +
          +
        • (src): void
        • +
        • +
          +

          Parameters

          +
            +
          • +
            src: Readable
          +

          Returns void

    +

    Returns DataChannelStream

  • + +
  • +
    +

    Parameters

    +
      +
    • +
      event: string | symbol
    • +
    • +
      listener: ((...args) => void)
      +
        +
      • +
          +
        • (...args): void
        • +
        • +
          +

          Parameters

          +
            +
          • +
            Rest ...args: any[]
          +

          Returns void

    +

    Returns DataChannelStream

+
+ +
    + +
  • +

    The readable.resume() method causes an explicitly paused Readable stream to +resume emitting 'data' events, switching the stream into flowing mode.

    +

    The readable.resume() method can be used to fully consume the data from a +stream without actually processing any of that data:

    +
    getReadableStreamSomehow()
    .resume()
    .on('end', () => {
    console.log('Reached the end, but did not read anything.');
    }); +
    +

    The readable.resume() method has no effect if there is a 'readable'event listener.

    +
    +

    Returns DataChannelStream

    +
    +

    Since

    v0.9.4

    +
+
+ +
    + +
  • +
    +

    Parameters

    +
      +
    • +
      encoding: BufferEncoding
    +

    Returns DataChannelStream

+
+ +
    + +
  • +

    The readable.setEncoding() method sets the character encoding for +data read from the Readable stream.

    +

    By default, no encoding is assigned and stream data will be returned asBuffer objects. Setting an encoding causes the stream data +to be returned as strings of the specified encoding rather than as Bufferobjects. For instance, calling readable.setEncoding('utf8') will cause the +output data to be interpreted as UTF-8 data, and passed as strings. Callingreadable.setEncoding('hex') will cause the data to be encoded in hexadecimal +string format.

    +

    The Readable stream will properly handle multi-byte characters delivered +through the stream that would otherwise become improperly decoded if simply +pulled from the stream as Buffer objects.

    +
    const readable = getReadableStreamSomehow();
    readable.setEncoding('utf8');
    readable.on('data', (chunk) => {
    assert.equal(typeof chunk, 'string');
    console.log('Got %d characters of string data:', chunk.length);
    }); +
    +
    +
    +

    Parameters

    +
      +
    • +
      encoding: BufferEncoding
      +

      The encoding to use.

      +
      +
    +

    Returns DataChannelStream

    +
    +

    Since

    v0.9.4

    +
+
+ +
    + +
  • +

    By default EventEmitters will print a warning if more than 10 listeners are +added for a particular event. This is a useful default that helps finding +memory leaks. The emitter.setMaxListeners() method allows the limit to be +modified for this specific EventEmitter instance. The value can be set toInfinity (or 0) to indicate an unlimited number of listeners.

    +

    Returns a reference to the EventEmitter, so that calls can be chained.

    +
    +
    +

    Parameters

    +
      +
    • +
      n: number
    +

    Returns DataChannelStream

    +
    +

    Since

    v0.3.5

    +
+
+ +
    + +
  • +

    Returns void

+
+ +
    + +
  • +

    The readable.unpipe() method detaches a Writable stream previously attached +using the pipe method.

    +

    If the destination is not specified, then all pipes are detached.

    +

    If the destination is specified, but no pipe is set up for it, then +the method does nothing.

    +
    const fs = require('fs');
    const readable = getReadableStreamSomehow();
    const writable = fs.createWriteStream('file.txt');
    // All the data from readable goes into 'file.txt',
    // but only for the first second.
    readable.pipe(writable);
    setTimeout(() => {
    console.log('Stop writing to file.txt.');
    readable.unpipe(writable);
    console.log('Manually close the file stream.');
    writable.end();
    }, 1000); +
    +
    +
    +

    Parameters

    +
      +
    • +
      Optional destination: WritableStream
      +

      Optional specific stream to unpipe

      +
      +
    +

    Returns DataChannelStream

    +
    +

    Since

    v0.9.4

    +
+
+ +
    + +
  • +

    Passing chunk as null signals the end of the stream (EOF) and behaves the +same as readable.push(null), after which no more data can be written. The EOF +signal is put at the end of the buffer and any buffered data will still be +flushed.

    +

    The readable.unshift() method pushes a chunk of data back into the internal +buffer. This is useful in certain situations where a stream is being consumed by +code that needs to "un-consume" some amount of data that it has optimistically +pulled out of the source, so that the data can be passed on to some other party.

    +

    The stream.unshift(chunk) method cannot be called after the 'end' event +has been emitted or a runtime error will be thrown.

    +

    Developers using stream.unshift() often should consider switching to +use of a Transform stream instead. See the API for stream implementers section for more information.

    +
    // Pull off a header delimited by \n\n.
    // Use unshift() if we get too much.
    // Call the callback with (error, header, stream).
    const { StringDecoder } = require('string_decoder');
    function parseHeader(stream, callback) {
    stream.on('error', callback);
    stream.on('readable', onReadable);
    const decoder = new StringDecoder('utf8');
    let header = '';
    function onReadable() {
    let chunk;
    while (null !== (chunk = stream.read())) {
    const str = decoder.write(chunk);
    if (str.match(/\n\n/)) {
    // Found the header boundary.
    const split = str.split(/\n\n/);
    header += split.shift();
    const remaining = split.join('\n\n');
    const buf = Buffer.from(remaining, 'utf8');
    stream.removeListener('error', callback);
    // Remove the 'readable' listener before unshifting.
    stream.removeListener('readable', onReadable);
    if (buf.length)
    stream.unshift(buf);
    // Now the body of the message can be read from the stream.
    callback(null, header, stream);
    } else {
    // Still reading the header.
    header += str;
    }
    }
    }
    } +
    +

    Unlike push, stream.unshift(chunk) will not +end the reading process by resetting the internal reading state of the stream. +This can cause unexpected results if readable.unshift() is called during a +read (i.e. from within a _read implementation on a +custom stream). Following the call to readable.unshift() with an immediate push will reset the reading state appropriately, +however it is best to simply avoid calling readable.unshift() while in the +process of performing a read.

    +
    +
    +

    Parameters

    +
      +
    • +
      chunk: any
      +

      Chunk of data to unshift onto the read queue. For streams not operating in object mode, chunk must be a string, Buffer, Uint8Array or null. For object mode +streams, chunk may be any JavaScript value.

      +
      +
    • +
    • +
      Optional encoding: BufferEncoding
      +

      Encoding of string chunks. Must be a valid Buffer encoding, such as 'utf8' or 'ascii'.

      +
      +
    +

    Returns void

    +
    +

    Since

    v0.9.11

    +
+
+ +
    + +
  • +

    Prior to Node.js 0.10, streams did not implement the entire stream module API +as it is currently defined. (See Compatibility for more information.)

    +

    When using an older Node.js library that emits 'data' events and has a pause method that is advisory only, thereadable.wrap() method can be used to create a Readable +stream that uses +the old stream as its data source.

    +

    It will rarely be necessary to use readable.wrap() but the method has been +provided as a convenience for interacting with older Node.js applications and +libraries.

    +
    const { OldReader } = require('./old-api-module.js');
    const { Readable } = require('stream');
    const oreader = new OldReader();
    const myReader = new Readable().wrap(oreader);

    myReader.on('readable', () => {
    myReader.read(); // etc.
    }); +
    +
    +
    +

    Parameters

    +
      +
    • +
      stream: ReadableStream
      +

      An "old style" readable stream

      +
      +
    +

    Returns DataChannelStream

    +
    +

    Since

    v0.9.4

    +
+
+ +
    + +
  • +
    +

    Parameters

    +
      +
    • +
      chunk: any
    • +
    • +
      Optional encoding: BufferEncoding
    • +
    • +
      Optional cb: ((error) => void)
      +
        +
      • +
          +
        • (error): void
        • +
        • +
          +

          Parameters

          +
            +
          • +
            error: undefined | null | Error
          +

          Returns void

    +

    Returns boolean

  • + +
  • +
    +

    Parameters

    +
      +
    • +
      chunk: any
    • +
    • +
      Optional cb: ((error) => void)
      +
        +
      • +
          +
        • (error): void
        • +
        • +
          +

          Parameters

          +
            +
          • +
            error: undefined | null | Error
          +

          Returns void

    +

    Returns boolean

+
+ +
    + +
  • +

    A utility method for creating duplex streams.

    +
      +
    • Stream converts writable stream into writable Duplex and readable stream +to Duplex.
    • +
    • Blob converts into readable Duplex.
    • +
    • string converts into readable Duplex.
    • +
    • ArrayBuffer converts into readable Duplex.
    • +
    • AsyncIterable converts into a readable Duplex. Cannot yield null.
    • +
    • AsyncGeneratorFunction converts into a readable/writable transform +Duplex. Must take a source AsyncIterable as first parameter. Cannot yield +null.
    • +
    • AsyncFunction converts into a writable Duplex. Must return +either null or undefined
    • +
    • Object ({ writable, readable }) converts readable and +writable into Stream and then combines them into Duplex where the +Duplex will write to the writable and read from the readable.
    • +
    • Promise converts into readable Duplex. Value null is ignored.
    • +
    +
    +
    +

    Parameters

    +
      +
    • +
      src: string | Object | Stream | Blob | ArrayBuffer | Iterable<any> | AsyncIterable<any> | AsyncGeneratorFunction | Promise<any>
    +

    Returns Duplex

    +
    +

    Since

    v16.8.0

    +
+
+ +
    + +
  • +

    Returns a copy of the array of listeners for the event named eventName.

    +

    For EventEmitters this behaves exactly the same as calling .listeners on +the emitter.

    +

    For EventTargets this is the only way to get the event listeners for the +event target. This is useful for debugging and diagnostic purposes.

    +
    const { getEventListeners, EventEmitter } = require('events');

    {
    const ee = new EventEmitter();
    const listener = () => console.log('Events are fun');
    ee.on('foo', listener);
    getEventListeners(ee, 'foo'); // [listener]
    }
    {
    const et = new EventTarget();
    const listener = () => console.log('Events are fun');
    et.addEventListener('foo', listener);
    getEventListeners(et, 'foo'); // [listener]
    } +
    +
    +
    +

    Parameters

    +
      +
    • +
      emitter: EventEmitter | DOMEventTarget
    • +
    • +
      name: string | symbol
    +

    Returns Function[]

    +
    +

    Since

    v15.2.0

    +
+
+ +
    + +
  • +

    Returns whether the stream has been read from or cancelled.

    +
    +
    +

    Parameters

    +
      +
    • +
      stream: Readable | ReadableStream
    +

    Returns boolean

    +
    +

    Since

    v16.8.0

    +
+
+ +
    + +
  • +

    A class method that returns the number of listeners for the given eventNameregistered on the given emitter.

    +
    const { EventEmitter, listenerCount } = require('events');
    const myEmitter = new EventEmitter();
    myEmitter.on('event', () => {});
    myEmitter.on('event', () => {});
    console.log(listenerCount(myEmitter, 'event'));
    // Prints: 2 +
    +
    +
    +

    Parameters

    +
      +
    • +
      emitter: EventEmitter
      +

      The emitter to query

      +
      +
    • +
    • +
      eventName: string | symbol
      +

      The event name

      +
      +
    +

    Returns number

    +
    +

    Since

    v0.9.12

    + +

    Deprecated

    Since v3.2.0 - Use listenerCount instead.

    +
+
+ +
    + +
  • +
    const { on, EventEmitter } = require('events');

    (async () => {
    const ee = new EventEmitter();

    // Emit later on
    process.nextTick(() => {
    ee.emit('foo', 'bar');
    ee.emit('foo', 42);
    });

    for await (const event of on(ee, 'foo')) {
    // The execution of this inner block is synchronous and it
    // processes one event at a time (even with await). Do not use
    // if concurrent execution is required.
    console.log(event); // prints ['bar'] [42]
    }
    // Unreachable here
    })(); +
    +

    Returns an AsyncIterator that iterates eventName events. It will throw +if the EventEmitter emits 'error'. It removes all listeners when +exiting the loop. The value returned by each iteration is an array +composed of the emitted event arguments.

    +

    An AbortSignal can be used to cancel waiting on events:

    +
    const { on, EventEmitter } = require('events');
    const ac = new AbortController();

    (async () => {
    const ee = new EventEmitter();

    // Emit later on
    process.nextTick(() => {
    ee.emit('foo', 'bar');
    ee.emit('foo', 42);
    });

    for await (const event of on(ee, 'foo', { signal: ac.signal })) {
    // The execution of this inner block is synchronous and it
    // processes one event at a time (even with await). Do not use
    // if concurrent execution is required.
    console.log(event); // prints ['bar'] [42]
    }
    // Unreachable here
    })();

    process.nextTick(() => ac.abort()); +
    +
    +
    +

    Parameters

    +
      +
    • +
      emitter: EventEmitter
    • +
    • +
      eventName: string
      +

      The name of the event being listened for

      +
      +
    • +
    • +
      Optional options: StaticEventEmitterOptions
    +

    Returns AsyncIterableIterator<any>

    that iterates eventName events emitted by the emitter

    + +
    +

    Since

    v13.6.0, v12.16.0

    +
+
+ +
    + +
  • +

    Creates a Promise that is fulfilled when the EventEmitter emits the given +event or that is rejected if the EventEmitter emits 'error' while waiting. +The Promise will resolve with an array of all the arguments emitted to the +given event.

    +

    This method is intentionally generic and works with the web platform EventTarget interface, which has no special'error' event +semantics and does not listen to the 'error' event.

    +
    const { once, EventEmitter } = require('events');

    async function run() {
    const ee = new EventEmitter();

    process.nextTick(() => {
    ee.emit('myevent', 42);
    });

    const [value] = await once(ee, 'myevent');
    console.log(value);

    const err = new Error('kaboom');
    process.nextTick(() => {
    ee.emit('error', err);
    });

    try {
    await once(ee, 'myevent');
    } catch (err) {
    console.log('error happened', err);
    }
    }

    run(); +
    +

    The special handling of the 'error' event is only used when events.once()is used to wait for another event. If events.once() is used to wait for the +'error' event itself, then it is treated as any other kind of event without +special handling:

    +
    const { EventEmitter, once } = require('events');

    const ee = new EventEmitter();

    once(ee, 'error')
    .then(([err]) => console.log('ok', err.message))
    .catch((err) => console.log('error', err.message));

    ee.emit('error', new Error('boom'));

    // Prints: ok boom +
    +

    An AbortSignal can be used to cancel waiting for the event:

    +
    const { EventEmitter, once } = require('events');

    const ee = new EventEmitter();
    const ac = new AbortController();

    async function foo(emitter, event, signal) {
    try {
    await once(emitter, event, { signal });
    console.log('event emitted!');
    } catch (error) {
    if (error.name === 'AbortError') {
    console.error('Waiting for the event was canceled!');
    } else {
    console.error('There was an error', error.message);
    }
    }
    }

    foo(ee, 'foo', ac.signal);
    ac.abort(); // Abort waiting for the event
    ee.emit('foo'); // Prints: Waiting for the event was canceled! +
    +
    +
    +

    Parameters

    +
      +
    • +
      emitter: NodeEventTarget
    • +
    • +
      eventName: string | symbol
    • +
    • +
      Optional options: StaticEventEmitterOptions
    +

    Returns Promise<any[]>

    +
    +

    Since

    v11.13.0, v10.16.0

    +
  • + +
  • +
    +

    Parameters

    +
      +
    • +
      emitter: DOMEventTarget
    • +
    • +
      eventName: string
    • +
    • +
      Optional options: StaticEventEmitterOptions
    +

    Returns Promise<any[]>

+
+ +
    + +
  • +
    const {
    setMaxListeners,
    EventEmitter
    } = require('events');

    const target = new EventTarget();
    const emitter = new EventEmitter();

    setMaxListeners(5, target, emitter); +
    +
    +
    +

    Parameters

    +
      +
    • +
      Optional n: number
      +

      A non-negative number. The maximum number of listeners per EventTarget event.

      +
      +
    • +
    • +
      Rest ...eventTargets: (EventEmitter | DOMEventTarget)[]
    +

    Returns void

    +
    +

    Since

    v15.4.0

    +
+
+ +
+
+

Generated using TypeDoc

+
\ No newline at end of file diff --git a/classes/HandlerStepDefinitions.CloseStepDefinition.html b/classes/HandlerStepDefinitions.CloseStepDefinition.html new file mode 100644 index 0000000..01c3711 --- /dev/null +++ b/classes/HandlerStepDefinitions.CloseStepDefinition.html @@ -0,0 +1,174 @@ +CloseStepDefinition | MockRTC API Reference
+
+ +
+
+
+ +
+

Hierarchy

+
+
+

Implements

+
+
+
+
+ +
+
+

Constructors

+
+
+

Properties

+
+
+

Methods

+
+
+

Constructors

+
+ +
+
+

Properties

+
+ +
type: "close-rtc-connection" = 'close-rtc-connection'
+
+

Methods

+
+ +
    + +
  • +

    Returns void

+
+ +
+
+
+

Generated using TypeDoc

+
\ No newline at end of file diff --git a/classes/HandlerStepDefinitions.CreateChannelStepDefinition.html b/classes/HandlerStepDefinitions.CreateChannelStepDefinition.html new file mode 100644 index 0000000..d11abc4 --- /dev/null +++ b/classes/HandlerStepDefinitions.CreateChannelStepDefinition.html @@ -0,0 +1,188 @@ +CreateChannelStepDefinition | MockRTC API Reference
+
+ +
+
+
+ +
+

Hierarchy

+
+
+

Implements

+
+
+
+
+ +
+
+

Constructors

+
+
+

Properties

+
+
+

Methods

+
+
+

Constructors

+
+ +
+
+

Properties

+
+ +
channelLabel: string
+
+ +
type: "create-rtc-data-channel" = 'create-rtc-data-channel'
+
+

Methods

+
+ +
    + +
  • +

    Returns void

+
+ +
+
+
+

Generated using TypeDoc

+
\ No newline at end of file diff --git a/classes/HandlerStepDefinitions.DynamicProxyStepDefinition.html b/classes/HandlerStepDefinitions.DynamicProxyStepDefinition.html new file mode 100644 index 0000000..10cdcd0 --- /dev/null +++ b/classes/HandlerStepDefinitions.DynamicProxyStepDefinition.html @@ -0,0 +1,174 @@ +DynamicProxyStepDefinition | MockRTC API Reference
+
+ +
+
+
+ +
+

Hierarchy

+
+
+

Implements

+
+
+
+
+ +
+
+

Constructors

+
+
+

Properties

+
+
+

Methods

+
+
+

Constructors

+
+ +
+
+

Properties

+
+ +
type: "rtc-dynamic-proxy" = 'rtc-dynamic-proxy'
+
+

Methods

+
+ +
    + +
  • +

    Returns void

+
+ +
+
+
+

Generated using TypeDoc

+
\ No newline at end of file diff --git a/classes/HandlerStepDefinitions.EchoStepDefinition.html b/classes/HandlerStepDefinitions.EchoStepDefinition.html new file mode 100644 index 0000000..fcf50a3 --- /dev/null +++ b/classes/HandlerStepDefinitions.EchoStepDefinition.html @@ -0,0 +1,174 @@ +EchoStepDefinition | MockRTC API Reference
+
+ +
+
+
+ +
+

Hierarchy

+
+
+

Implements

+
+
+
+
+ +
+
+

Constructors

+
+
+

Properties

+
+
+

Methods

+
+
+

Constructors

+
+ +
+
+

Properties

+
+ +
type: "echo-rtc" = 'echo-rtc'
+
+

Methods

+
+ +
    + +
  • +

    Returns void

+
+ +
+
+
+

Generated using TypeDoc

+
\ No newline at end of file diff --git a/classes/HandlerStepDefinitions.PeerProxyStepDefinition.html b/classes/HandlerStepDefinitions.PeerProxyStepDefinition.html new file mode 100644 index 0000000..1054771 --- /dev/null +++ b/classes/HandlerStepDefinitions.PeerProxyStepDefinition.html @@ -0,0 +1,199 @@ +PeerProxyStepDefinition | MockRTC API Reference
+
+ +
+
+
+ +
+

Hierarchy

+
+
+

Implements

+
+
+
+
+ +
+
+

Constructors

+
+
+

Properties

+
+
+

Methods

+
+
+

Constructors

+
+ +
+
+

Properties

+
+ +
type: "rtc-peer-proxy" = 'rtc-peer-proxy'
+
+

Methods

+
+ +
    + +
  • +

    Returns void

+
+ +
+
+ +
+
+
+

Generated using TypeDoc

+
\ No newline at end of file diff --git a/classes/HandlerStepDefinitions.SendStepDefinition.html b/classes/HandlerStepDefinitions.SendStepDefinition.html new file mode 100644 index 0000000..135db29 --- /dev/null +++ b/classes/HandlerStepDefinitions.SendStepDefinition.html @@ -0,0 +1,197 @@ +SendStepDefinition | MockRTC API Reference
+
+ +
+
+
+ +
+

Hierarchy

+
+
+

Implements

+
+
+
+
+ +
+
+

Constructors

+
+
+

Properties

+
+
+

Methods

+
+
+

Constructors

+
+ +
+
+

Properties

+
+ +
channelLabel: undefined | string
+
+ +
message: string | Buffer
+
+ +
type: "send-rtc-data-message" = 'send-rtc-data-message'
+
+

Methods

+
+ +
    + +
  • +

    Returns void

+
+ +
+
+
+

Generated using TypeDoc

+
\ No newline at end of file diff --git a/classes/HandlerStepDefinitions.WaitForChannelStepDefinition.html b/classes/HandlerStepDefinitions.WaitForChannelStepDefinition.html new file mode 100644 index 0000000..51276bc --- /dev/null +++ b/classes/HandlerStepDefinitions.WaitForChannelStepDefinition.html @@ -0,0 +1,188 @@ +WaitForChannelStepDefinition | MockRTC API Reference
+
+ +
+
+
+ +
+

Hierarchy

+
+
+

Implements

+
+
+
+
+ +
+
+

Constructors

+
+
+

Properties

+
+
+

Methods

+
+
+

Constructors

+
+ +
+
+

Properties

+
+ +
channelLabel?: string
+
+ +
type: "wait-for-rtc-data-channel" = 'wait-for-rtc-data-channel'
+
+

Methods

+
+ +
    + +
  • +

    Returns void

+
+ +
+
+
+

Generated using TypeDoc

+
\ No newline at end of file diff --git a/classes/HandlerStepDefinitions.WaitForDurationStepDefinition.html b/classes/HandlerStepDefinitions.WaitForDurationStepDefinition.html new file mode 100644 index 0000000..7da9b5b --- /dev/null +++ b/classes/HandlerStepDefinitions.WaitForDurationStepDefinition.html @@ -0,0 +1,188 @@ +WaitForDurationStepDefinition | MockRTC API Reference
+
+ +
+
+
+ +
+

Hierarchy

+
+
+

Implements

+
+
+
+
+ +
+
+

Constructors

+
+
+

Properties

+
+
+

Methods

+
+
+

Constructors

+
+ +
+
+

Properties

+
+ +
durationMs: number
+
+ +
type: "wait-for-duration" = 'wait-for-duration'
+
+

Methods

+
+ +
    + +
  • +

    Returns void

+
+ +
+
+
+

Generated using TypeDoc

+
\ No newline at end of file diff --git a/classes/HandlerStepDefinitions.WaitForMediaStepDefinition.html b/classes/HandlerStepDefinitions.WaitForMediaStepDefinition.html new file mode 100644 index 0000000..255331d --- /dev/null +++ b/classes/HandlerStepDefinitions.WaitForMediaStepDefinition.html @@ -0,0 +1,174 @@ +WaitForMediaStepDefinition | MockRTC API Reference
+
+ +
+
+
+ +
+

Hierarchy

+
+
+

Implements

+
+
+
+
+ +
+
+

Constructors

+
+
+

Properties

+
+
+

Methods

+
+
+

Constructors

+
+ +
+
+

Properties

+
+ +
type: "wait-for-rtc-media" = 'wait-for-rtc-media'
+
+

Methods

+
+ +
    + +
  • +

    Returns void

+
+ +
+
+
+

Generated using TypeDoc

+
\ No newline at end of file diff --git a/classes/HandlerStepDefinitions.WaitForMessageStepDefinition.html b/classes/HandlerStepDefinitions.WaitForMessageStepDefinition.html new file mode 100644 index 0000000..6709000 --- /dev/null +++ b/classes/HandlerStepDefinitions.WaitForMessageStepDefinition.html @@ -0,0 +1,188 @@ +WaitForMessageStepDefinition | MockRTC API Reference
+
+ +
+
+
+ +
+

Hierarchy

+
+
+

Implements

+
+
+
+
+ +
+
+

Constructors

+
+
+

Properties

+
+
+

Methods

+
+
+

Constructors

+
+ +
+
+

Properties

+
+ +
channelLabel?: string
+
+ +
type: "wait-for-rtc-message" = 'wait-for-rtc-message'
+
+

Methods

+
+ +
    + +
  • +

    Returns void

+
+ +
+
+
+

Generated using TypeDoc

+
\ No newline at end of file diff --git a/classes/HandlerStepDefinitions.WaitForTrackStepDefinition.html b/classes/HandlerStepDefinitions.WaitForTrackStepDefinition.html new file mode 100644 index 0000000..6cad209 --- /dev/null +++ b/classes/HandlerStepDefinitions.WaitForTrackStepDefinition.html @@ -0,0 +1,174 @@ +WaitForTrackStepDefinition | MockRTC API Reference
+
+ +
+
+
+ +
+

Hierarchy

+
+
+

Implements

+
+
+
+
+ +
+
+

Constructors

+
+
+

Properties

+
+
+

Methods

+
+
+

Constructors

+
+ +
+
+

Properties

+
+ +
type: "wait-for-rtc-track" = 'wait-for-rtc-track'
+
+

Methods

+
+ +
    + +
  • +

    Returns void

+
+ +
+
+
+

Generated using TypeDoc

+
\ No newline at end of file diff --git a/classes/MatcherDefinitions.HasAudioTrackMatcherDefinition.html b/classes/MatcherDefinitions.HasAudioTrackMatcherDefinition.html new file mode 100644 index 0000000..d55dbf4 --- /dev/null +++ b/classes/MatcherDefinitions.HasAudioTrackMatcherDefinition.html @@ -0,0 +1,170 @@ +HasAudioTrackMatcherDefinition | MockRTC API Reference
+
+ +
+
+
+
+ +

Class HasAudioTrackMatcherDefinition

+
+

Hierarchy

+
+
+

Implements

+
+
+
+
+ +
+
+

Constructors

+
+
+

Properties

+
+
+

Methods

+
+
+

Constructors

+
+ +
+
+

Properties

+
+ +
type: "has-rtc-audio-track" = 'has-rtc-audio-track'
+
+

Methods

+
+ +
    + +
  • +

    Returns void

+
+ +
+
+
+

Generated using TypeDoc

+
\ No newline at end of file diff --git a/classes/MatcherDefinitions.HasDataChannelMatcherDefinition.html b/classes/MatcherDefinitions.HasDataChannelMatcherDefinition.html new file mode 100644 index 0000000..446bc3c --- /dev/null +++ b/classes/MatcherDefinitions.HasDataChannelMatcherDefinition.html @@ -0,0 +1,170 @@ +HasDataChannelMatcherDefinition | MockRTC API Reference
+
+ +
+
+
+
+ +

Class HasDataChannelMatcherDefinition

+
+

Hierarchy

+
+
+

Implements

+
+
+
+
+ +
+
+

Constructors

+
+
+

Properties

+
+
+

Methods

+
+
+

Constructors

+
+ +
+
+

Properties

+
+ +
type: "has-rtc-data-channel" = 'has-rtc-data-channel'
+
+

Methods

+
+ +
    + +
  • +

    Returns void

+
+ +
+
+
+

Generated using TypeDoc

+
\ No newline at end of file diff --git a/classes/MatcherDefinitions.HasMediaTrackMatcherDefinition.html b/classes/MatcherDefinitions.HasMediaTrackMatcherDefinition.html new file mode 100644 index 0000000..24ff8db --- /dev/null +++ b/classes/MatcherDefinitions.HasMediaTrackMatcherDefinition.html @@ -0,0 +1,170 @@ +HasMediaTrackMatcherDefinition | MockRTC API Reference
+
+ +
+
+
+
+ +

Class HasMediaTrackMatcherDefinition

+
+

Hierarchy

+
+
+

Implements

+
+
+
+
+ +
+
+

Constructors

+
+
+

Properties

+
+
+

Methods

+
+
+

Constructors

+
+ +
+
+

Properties

+
+ +
type: "has-rtc-media-track" = 'has-rtc-media-track'
+
+

Methods

+
+ +
    + +
  • +

    Returns void

+
+ +
+
+
+

Generated using TypeDoc

+
\ No newline at end of file diff --git a/classes/MatcherDefinitions.HasVideoTrackMatcherDefinition.html b/classes/MatcherDefinitions.HasVideoTrackMatcherDefinition.html new file mode 100644 index 0000000..e775a5f --- /dev/null +++ b/classes/MatcherDefinitions.HasVideoTrackMatcherDefinition.html @@ -0,0 +1,170 @@ +HasVideoTrackMatcherDefinition | MockRTC API Reference
+
+ +
+
+
+
+ +

Class HasVideoTrackMatcherDefinition

+
+

Hierarchy

+
+
+

Implements

+
+
+
+
+ +
+
+

Constructors

+
+
+

Properties

+
+
+

Methods

+
+
+

Constructors

+
+ +
+
+

Properties

+
+ +
type: "has-rtc-video-track" = 'has-rtc-video-track'
+
+

Methods

+
+ +
    + +
  • +

    Returns void

+
+ +
+
+
+

Generated using TypeDoc

+
\ No newline at end of file diff --git a/classes/MatcherDefinitions.HostnameMatcherDefinition.html b/classes/MatcherDefinitions.HostnameMatcherDefinition.html new file mode 100644 index 0000000..f888a9c --- /dev/null +++ b/classes/MatcherDefinitions.HostnameMatcherDefinition.html @@ -0,0 +1,184 @@ +HostnameMatcherDefinition | MockRTC API Reference
+
+ +
+
+
+ +
+

Hierarchy

+
+
+

Implements

+
+
+
+
+ +
+
+

Constructors

+
+
+

Properties

+
+
+

Methods

+
+
+

Constructors

+
+ +
+
+

Properties

+
+ +
hostname: string
+
+ +
type: "rtc-page-hostname" = 'rtc-page-hostname'
+
+

Methods

+
+ +
    + +
  • +

    Returns void

+
+ +
+
+
+

Generated using TypeDoc

+
\ No newline at end of file diff --git a/classes/MatcherDefinitions.UrlRegexMatcherDefinition.html b/classes/MatcherDefinitions.UrlRegexMatcherDefinition.html new file mode 100644 index 0000000..17157f3 --- /dev/null +++ b/classes/MatcherDefinitions.UrlRegexMatcherDefinition.html @@ -0,0 +1,191 @@ +UrlRegexMatcherDefinition | MockRTC API Reference
+
+ +
+
+
+ +
+

Hierarchy

+
+
+

Implements

+
+
+
+
+ +
+
+

Constructors

+
+
+

Properties

+
+
+

Methods

+
+
+

Constructors

+
+ +
+
+

Properties

+
+ +
regexFlags: string
+
+ +
regexSource: string
+
+ +
type: "rtc-page-regex" = 'rtc-page-regex'
+
+

Methods

+
+ +
    + +
  • +

    Returns void

+
+ +
+
+
+

Generated using TypeDoc

+
\ No newline at end of file diff --git a/classes/MatcherDefinitions.UserAgentRegexMatcherDefinition.html b/classes/MatcherDefinitions.UserAgentRegexMatcherDefinition.html new file mode 100644 index 0000000..73e6133 --- /dev/null +++ b/classes/MatcherDefinitions.UserAgentRegexMatcherDefinition.html @@ -0,0 +1,191 @@ +UserAgentRegexMatcherDefinition | MockRTC API Reference
+
+ +
+
+
+
+ +

Class UserAgentRegexMatcherDefinition

+
+

Hierarchy

+
+
+

Implements

+
+
+
+
+ +
+
+

Constructors

+
+
+

Properties

+
+
+

Methods

+
+
+

Constructors

+
+ +
+
+

Properties

+
+ +
regexFlags: string
+
+ +
regexSource: string
+
+ +
type: "rtc-user-agent-regex" = 'rtc-user-agent-regex'
+
+

Methods

+
+ +
    + +
  • +

    Returns void

+
+ +
+
+
+

Generated using TypeDoc

+
\ No newline at end of file diff --git a/classes/MediaTrackStream.html b/classes/MediaTrackStream.html new file mode 100644 index 0000000..c138cd7 --- /dev/null +++ b/classes/MediaTrackStream.html @@ -0,0 +1,3258 @@ +MediaTrackStream | MockRTC API Reference
+
+ +
+
+
+
+ +

Class MediaTrackStream

+
+

Turns a node-datachannel media track into a real Node.js stream, complete with +buffering, backpressure (up to a point - if the buffer fills up, messages are dropped), +and support for piping data elsewhere.

+
+
+
+

Hierarchy

+
    +
  • Duplex +
      +
    • MediaTrackStream
+
+
+
+ +
+
+

Constructors

+
+ +
    + +
  • +
    +

    Parameters

    +
      +
    • +
      rawTrack: Track
    • +
    • +
      streamOptions: {
          allowHalfOpen?: boolean;
          readableHighWaterMark?: number;
          writableHighWaterMark?: number;
      } = {}
      +
        +
      • +
        Optional allowHalfOpen?: boolean
      • +
      • +
        Optional readableHighWaterMark?: number
      • +
      • +
        Optional writableHighWaterMark?: number
    +

    Returns MediaTrackStream

+
+

Properties

+
+ +
allowHalfOpen: boolean
+

If false then the stream will automatically end the writable side when the +readable side ends. Set initially by the allowHalfOpen constructor option, +which defaults to false.

+

This can be changed manually to change the half-open behavior of an existingDuplex stream instance, but must be changed before the 'end' event is +emitted.

+
+
+

Since

v0.9.4

+
+
+ +
destroyed: boolean
+

Is true after readable.destroy() has been called.

+
+
+

Since

v8.0.0

+
+
+ +
readable: boolean
+

Is true if it is safe to call readable.read(), which means +the stream has not been destroyed or emitted 'error' or 'end'.

+
+
+

Since

v11.4.0

+
+
+ +
readableAborted: boolean
+

Returns whether the stream was destroyed or errored before emitting 'end'.

+
+
+

Since

v16.8.0

+
+
+ +
readableDidRead: boolean
+

Returns whether 'data' has been emitted.

+
+
+

Since

v16.7.0

+
+
+ +
readableEncoding: null | BufferEncoding
+

Getter for the property encoding of a given Readable stream. The encodingproperty can be set using the readable.setEncoding() method.

+
+
+

Since

v12.7.0

+
+
+ +
readableEnded: boolean
+

Becomes true when 'end' event is emitted.

+
+
+

Since

v12.9.0

+
+
+ +
readableFlowing: null | boolean
+

This property reflects the current state of a Readable stream as described +in the Three states section.

+
+
+

Since

v9.4.0

+
+
+ +
readableHighWaterMark: number
+

Returns the value of highWaterMark passed when creating this Readable.

+
+
+

Since

v9.3.0

+
+
+ +
readableLength: number
+

This property contains the number of bytes (or objects) in the queue +ready to be read. The value provides introspection data regarding +the status of the highWaterMark.

+
+
+

Since

v9.4.0

+
+
+ +
readableObjectMode: boolean
+

Getter for the property objectMode of a given Readable stream.

+
+
+

Since

v12.3.0

+
+
+ +
writable: boolean
+
+ +
writableCorked: number
+
+ +
writableEnded: boolean
+
+ +
writableFinished: boolean
+
+ +
writableHighWaterMark: number
+
+ +
writableLength: number
+
+ +
writableObjectMode: boolean
+
+ +
captureRejectionSymbol: typeof captureRejectionSymbol
+
+ +
captureRejections: boolean
+

Sets or gets the default captureRejection value for all emitters.

+
+
+
+ +
defaultMaxListeners: number
+
+ +
errorMonitor: typeof errorMonitor
+

This symbol shall be used to install a listener for only monitoring 'error' +events. Listeners installed using this symbol are called before the regular +'error' listeners are called.

+

Installing a listener using this symbol does not change the behavior once an +'error' event is emitted, therefore the process will still crash if no +regular 'error' listener is installed.

+
+
+
+

Accessors

+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+

Methods

+
+ +
    + +
  • +

    Returns AsyncIterableIterator<any>

+
+ +
    + +
  • +
    +

    Parameters

    +
      +
    • +
      callback: ((error?) => void)
      +
        +
      • +
          +
        • (error?): void
        • +
        • +
          +

          Parameters

          +
            +
          • +
            Optional error: null | Error
          +

          Returns void

    +

    Returns void

+
+ +
    + +
  • +
    +

    Parameters

    +
      +
    • +
      maybeErr: null | Error
    • +
    • +
      callback: ((error) => void)
      +
        +
      • +
          +
        • (error): void
        • +
        • +
          +

          Parameters

          +
            +
          • +
            error: null | Error
          +

          Returns void

    +

    Returns void

+
+ +
    + +
  • +
    +

    Parameters

    +
      +
    • +
      callback: ((error) => void)
      +
        +
      • +
          +
        • (error): void
        • +
        • +
          +

          Parameters

          +
            +
          • +
            error: null | Error
          +

          Returns void

    +

    Returns void

+
+ +
+
+ +
    + +
  • +
    +

    Parameters

    +
      +
    • +
      chunk: Buffer
    • +
    • +
      _encoding: string
    • +
    • +
      callback: ((error) => void)
      +
        +
      • +
          +
        • (error): void
        • +
        • +
          +

          Parameters

          +
            +
          • +
            error: null | Error
          +

          Returns void

    +

    Returns void

+
+ +
    + +
  • +
    +

    Parameters

    +
      +
    • +
      chunks: {
          chunk: any;
          encoding: BufferEncoding;
      }[]
    • +
    • +
      callback: ((error?) => void)
      +
        +
      • +
          +
        • (error?): void
        • +
        • +
          +

          Parameters

          +
            +
          • +
            Optional error: null | Error
          +

          Returns void

    +

    Returns void

+
+ +
    + +
  • +

    Event emitter +The defined events on documents including:

    +
      +
    1. close
    2. +
    3. data
    4. +
    5. drain
    6. +
    7. end
    8. +
    9. error
    10. +
    11. finish
    12. +
    13. pause
    14. +
    15. pipe
    16. +
    17. readable
    18. +
    19. resume
    20. +
    21. unpipe
    22. +
    +
    +
    +

    Parameters

    +
      +
    • +
      event: "close"
    • +
    • +
      listener: (() => void)
      +
        +
      • +
          +
        • (): void
        • +
        • +

          Returns void

    +

    Returns MediaTrackStream

    +
  • + +
  • +
    +

    Parameters

    +
      +
    • +
      event: "data"
    • +
    • +
      listener: ((chunk) => void)
      +
        +
      • +
          +
        • (chunk): void
        • +
        • +
          +

          Parameters

          +
            +
          • +
            chunk: any
          +

          Returns void

    +

    Returns MediaTrackStream

  • + +
  • +
    +

    Parameters

    +
      +
    • +
      event: "drain"
    • +
    • +
      listener: (() => void)
      +
        +
      • +
          +
        • (): void
        • +
        • +

          Returns void

    +

    Returns MediaTrackStream

  • + +
  • +
    +

    Parameters

    +
      +
    • +
      event: "end"
    • +
    • +
      listener: (() => void)
      +
        +
      • +
          +
        • (): void
        • +
        • +

          Returns void

    +

    Returns MediaTrackStream

  • + +
  • +
    +

    Parameters

    +
      +
    • +
      event: "error"
    • +
    • +
      listener: ((err) => void)
      +
        +
      • +
          +
        • (err): void
        • +
        • +
          +

          Parameters

          +
            +
          • +
            err: Error
          +

          Returns void

    +

    Returns MediaTrackStream

  • + +
  • +
    +

    Parameters

    +
      +
    • +
      event: "finish"
    • +
    • +
      listener: (() => void)
      +
        +
      • +
          +
        • (): void
        • +
        • +

          Returns void

    +

    Returns MediaTrackStream

  • + +
  • +
    +

    Parameters

    +
      +
    • +
      event: "pause"
    • +
    • +
      listener: (() => void)
      +
        +
      • +
          +
        • (): void
        • +
        • +

          Returns void

    +

    Returns MediaTrackStream

  • + +
  • +
    +

    Parameters

    +
      +
    • +
      event: "pipe"
    • +
    • +
      listener: ((src) => void)
      +
        +
      • +
          +
        • (src): void
        • +
        • +
          +

          Parameters

          +
            +
          • +
            src: Readable
          +

          Returns void

    +

    Returns MediaTrackStream

  • + +
  • +
    +

    Parameters

    +
      +
    • +
      event: "readable"
    • +
    • +
      listener: (() => void)
      +
        +
      • +
          +
        • (): void
        • +
        • +

          Returns void

    +

    Returns MediaTrackStream

  • + +
  • +
    +

    Parameters

    +
      +
    • +
      event: "resume"
    • +
    • +
      listener: (() => void)
      +
        +
      • +
          +
        • (): void
        • +
        • +

          Returns void

    +

    Returns MediaTrackStream

  • + +
  • +
    +

    Parameters

    +
      +
    • +
      event: "unpipe"
    • +
    • +
      listener: ((src) => void)
      +
        +
      • +
          +
        • (src): void
        • +
        • +
          +

          Parameters

          +
            +
          • +
            src: Readable
          +

          Returns void

    +

    Returns MediaTrackStream

  • + +
  • +
    +

    Parameters

    +
      +
    • +
      event: string | symbol
    • +
    • +
      listener: ((...args) => void)
      +
        +
      • +
          +
        • (...args): void
        • +
        • +
          +

          Parameters

          +
            +
          • +
            Rest ...args: any[]
          +

          Returns void

    +

    Returns MediaTrackStream

+
+ +
    + +
  • +

    Returns void

+
+ +
    + +
  • +

    Destroy the stream. Optionally emit an 'error' event, and emit a 'close'event (unless emitClose is set to false). After this call, the readable +stream will release any internal resources and subsequent calls to push()will be ignored.

    +

    Once destroy() has been called any further calls will be a no-op and no +further errors except from _destroy() may be emitted as 'error'.

    +

    Implementors should not override this method, but instead implement readable._destroy().

    +
    +
    +

    Parameters

    +
      +
    • +
      Optional error: Error
      +

      Error which will be passed as payload in 'error' event

      +
      +
    +

    Returns MediaTrackStream

    +
    +

    Since

    v8.0.0

    +
+
+ +
    + +
  • +
    +

    Parameters

    +
      +
    • +
      event: "close"
    +

    Returns boolean

  • + +
  • +
    +

    Parameters

    +
      +
    • +
      event: "data"
    • +
    • +
      chunk: any
    +

    Returns boolean

  • + +
  • +
    +

    Parameters

    +
      +
    • +
      event: "drain"
    +

    Returns boolean

  • + +
  • +
    +

    Parameters

    +
      +
    • +
      event: "end"
    +

    Returns boolean

  • + +
  • +
    +

    Parameters

    +
      +
    • +
      event: "error"
    • +
    • +
      err: Error
    +

    Returns boolean

  • + +
  • +
    +

    Parameters

    +
      +
    • +
      event: "finish"
    +

    Returns boolean

  • + +
  • +
    +

    Parameters

    +
      +
    • +
      event: "pause"
    +

    Returns boolean

  • + +
  • +
    +

    Parameters

    +
      +
    • +
      event: "pipe"
    • +
    • +
      src: Readable
    +

    Returns boolean

  • + +
  • +
    +

    Parameters

    +
      +
    • +
      event: "readable"
    +

    Returns boolean

  • + +
  • +
    +

    Parameters

    +
      +
    • +
      event: "resume"
    +

    Returns boolean

  • + +
  • +
    +

    Parameters

    +
      +
    • +
      event: "unpipe"
    • +
    • +
      src: Readable
    +

    Returns boolean

  • + +
  • +
    +

    Parameters

    +
      +
    • +
      event: string | symbol
    • +
    • +
      Rest ...args: any[]
    +

    Returns boolean

+
+ +
    + +
  • +
    +

    Parameters

    +
      +
    • +
      Optional cb: (() => void)
      +
        +
      • +
          +
        • (): void
        • +
        • +

          Returns void

    +

    Returns MediaTrackStream

  • + +
  • +
    +

    Parameters

    +
      +
    • +
      chunk: any
    • +
    • +
      Optional cb: (() => void)
      +
        +
      • +
          +
        • (): void
        • +
        • +

          Returns void

    +

    Returns MediaTrackStream

  • + +
  • +
    +

    Parameters

    +
      +
    • +
      chunk: any
    • +
    • +
      Optional encoding: BufferEncoding
    • +
    • +
      Optional cb: (() => void)
      +
        +
      • +
          +
        • (): void
        • +
        • +

          Returns void

    +

    Returns MediaTrackStream

+
+ +
    + +
  • +

    Returns an array listing the events for which the emitter has registered +listeners. The values in the array are strings or Symbols.

    +
    const EventEmitter = require('events');
    const myEE = new EventEmitter();
    myEE.on('foo', () => {});
    myEE.on('bar', () => {});

    const sym = Symbol('symbol');
    myEE.on(sym, () => {});

    console.log(myEE.eventNames());
    // Prints: [ 'foo', 'bar', Symbol(symbol) ] +
    +
    +

    Returns (string | symbol)[]

    +
    +

    Since

    v6.0.0

    +
+
+ +
    + +
  • +

    Returns the current max listener value for the EventEmitter which is either +set by emitter.setMaxListeners(n) or defaults to defaultMaxListeners.

    +
    +

    Returns number

    +
    +

    Since

    v1.0.0

    +
+
+ +
    + +
  • +

    The readable.isPaused() method returns the current operating state of theReadable. This is used primarily by the mechanism that underlies thereadable.pipe() method. In most +typical cases, there will be no reason to +use this method directly.

    +
    const readable = new stream.Readable();

    readable.isPaused(); // === false
    readable.pause();
    readable.isPaused(); // === true
    readable.resume();
    readable.isPaused(); // === false +
    +
    +

    Returns boolean

    +
    +

    Since

    v0.11.14

    +
+
+ +
    + +
  • +

    Returns the number of listeners listening to the event named eventName.

    +
    +
    +

    Parameters

    +
      +
    • +
      eventName: string | symbol
      +

      The name of the event being listened for

      +
      +
    +

    Returns number

    +
    +

    Since

    v3.2.0

    +
+
+ +
    + +
  • +

    Returns a copy of the array of listeners for the event named eventName.

    +
    server.on('connection', (stream) => {
    console.log('someone connected!');
    });
    console.log(util.inspect(server.listeners('connection')));
    // Prints: [ [Function] ] +
    +
    +
    +

    Parameters

    +
      +
    • +
      eventName: string | symbol
    +

    Returns Function[]

    +
    +

    Since

    v0.1.26

    +
+
+ +
    + +
  • +

    Alias for emitter.removeListener().

    +
    +
    +

    Parameters

    +
      +
    • +
      eventName: string | symbol
    • +
    • +
      listener: ((...args) => void)
      +
        +
      • +
          +
        • (...args): void
        • +
        • +
          +

          Parameters

          +
            +
          • +
            Rest ...args: any[]
          +

          Returns void

    +

    Returns MediaTrackStream

    +
    +

    Since

    v10.0.0

    +
+
+ +
    + +
  • +
    +

    Parameters

    +
      +
    • +
      event: "close"
    • +
    • +
      listener: (() => void)
      +
        +
      • +
          +
        • (): void
        • +
        • +

          Returns void

    +

    Returns MediaTrackStream

  • + +
  • +
    +

    Parameters

    +
      +
    • +
      event: "data"
    • +
    • +
      listener: ((chunk) => void)
      +
        +
      • +
          +
        • (chunk): void
        • +
        • +
          +

          Parameters

          +
            +
          • +
            chunk: any
          +

          Returns void

    +

    Returns MediaTrackStream

  • + +
  • +
    +

    Parameters

    +
      +
    • +
      event: "drain"
    • +
    • +
      listener: (() => void)
      +
        +
      • +
          +
        • (): void
        • +
        • +

          Returns void

    +

    Returns MediaTrackStream

  • + +
  • +
    +

    Parameters

    +
      +
    • +
      event: "end"
    • +
    • +
      listener: (() => void)
      +
        +
      • +
          +
        • (): void
        • +
        • +

          Returns void

    +

    Returns MediaTrackStream

  • + +
  • +
    +

    Parameters

    +
      +
    • +
      event: "error"
    • +
    • +
      listener: ((err) => void)
      +
        +
      • +
          +
        • (err): void
        • +
        • +
          +

          Parameters

          +
            +
          • +
            err: Error
          +

          Returns void

    +

    Returns MediaTrackStream

  • + +
  • +
    +

    Parameters

    +
      +
    • +
      event: "finish"
    • +
    • +
      listener: (() => void)
      +
        +
      • +
          +
        • (): void
        • +
        • +

          Returns void

    +

    Returns MediaTrackStream

  • + +
  • +
    +

    Parameters

    +
      +
    • +
      event: "pause"
    • +
    • +
      listener: (() => void)
      +
        +
      • +
          +
        • (): void
        • +
        • +

          Returns void

    +

    Returns MediaTrackStream

  • + +
  • +
    +

    Parameters

    +
      +
    • +
      event: "pipe"
    • +
    • +
      listener: ((src) => void)
      +
        +
      • +
          +
        • (src): void
        • +
        • +
          +

          Parameters

          +
            +
          • +
            src: Readable
          +

          Returns void

    +

    Returns MediaTrackStream

  • + +
  • +
    +

    Parameters

    +
      +
    • +
      event: "readable"
    • +
    • +
      listener: (() => void)
      +
        +
      • +
          +
        • (): void
        • +
        • +

          Returns void

    +

    Returns MediaTrackStream

  • + +
  • +
    +

    Parameters

    +
      +
    • +
      event: "resume"
    • +
    • +
      listener: (() => void)
      +
        +
      • +
          +
        • (): void
        • +
        • +

          Returns void

    +

    Returns MediaTrackStream

  • + +
  • +
    +

    Parameters

    +
      +
    • +
      event: "unpipe"
    • +
    • +
      listener: ((src) => void)
      +
        +
      • +
          +
        • (src): void
        • +
        • +
          +

          Parameters

          +
            +
          • +
            src: Readable
          +

          Returns void

    +

    Returns MediaTrackStream

  • + +
  • +
    +

    Parameters

    +
      +
    • +
      event: string | symbol
    • +
    • +
      listener: ((...args) => void)
      +
        +
      • +
          +
        • (...args): void
        • +
        • +
          +

          Parameters

          +
            +
          • +
            Rest ...args: any[]
          +

          Returns void

    +

    Returns MediaTrackStream

+
+ +
    + +
  • +
    +

    Parameters

    +
      +
    • +
      event: "close"
    • +
    • +
      listener: (() => void)
      +
        +
      • +
          +
        • (): void
        • +
        • +

          Returns void

    +

    Returns MediaTrackStream

  • + +
  • +
    +

    Parameters

    +
      +
    • +
      event: "data"
    • +
    • +
      listener: ((chunk) => void)
      +
        +
      • +
          +
        • (chunk): void
        • +
        • +
          +

          Parameters

          +
            +
          • +
            chunk: any
          +

          Returns void

    +

    Returns MediaTrackStream

  • + +
  • +
    +

    Parameters

    +
      +
    • +
      event: "drain"
    • +
    • +
      listener: (() => void)
      +
        +
      • +
          +
        • (): void
        • +
        • +

          Returns void

    +

    Returns MediaTrackStream

  • + +
  • +
    +

    Parameters

    +
      +
    • +
      event: "end"
    • +
    • +
      listener: (() => void)
      +
        +
      • +
          +
        • (): void
        • +
        • +

          Returns void

    +

    Returns MediaTrackStream

  • + +
  • +
    +

    Parameters

    +
      +
    • +
      event: "error"
    • +
    • +
      listener: ((err) => void)
      +
        +
      • +
          +
        • (err): void
        • +
        • +
          +

          Parameters

          +
            +
          • +
            err: Error
          +

          Returns void

    +

    Returns MediaTrackStream

  • + +
  • +
    +

    Parameters

    +
      +
    • +
      event: "finish"
    • +
    • +
      listener: (() => void)
      +
        +
      • +
          +
        • (): void
        • +
        • +

          Returns void

    +

    Returns MediaTrackStream

  • + +
  • +
    +

    Parameters

    +
      +
    • +
      event: "pause"
    • +
    • +
      listener: (() => void)
      +
        +
      • +
          +
        • (): void
        • +
        • +

          Returns void

    +

    Returns MediaTrackStream

  • + +
  • +
    +

    Parameters

    +
      +
    • +
      event: "pipe"
    • +
    • +
      listener: ((src) => void)
      +
        +
      • +
          +
        • (src): void
        • +
        • +
          +

          Parameters

          +
            +
          • +
            src: Readable
          +

          Returns void

    +

    Returns MediaTrackStream

  • + +
  • +
    +

    Parameters

    +
      +
    • +
      event: "readable"
    • +
    • +
      listener: (() => void)
      +
        +
      • +
          +
        • (): void
        • +
        • +

          Returns void

    +

    Returns MediaTrackStream

  • + +
  • +
    +

    Parameters

    +
      +
    • +
      event: "resume"
    • +
    • +
      listener: (() => void)
      +
        +
      • +
          +
        • (): void
        • +
        • +

          Returns void

    +

    Returns MediaTrackStream

  • + +
  • +
    +

    Parameters

    +
      +
    • +
      event: "unpipe"
    • +
    • +
      listener: ((src) => void)
      +
        +
      • +
          +
        • (src): void
        • +
        • +
          +

          Parameters

          +
            +
          • +
            src: Readable
          +

          Returns void

    +

    Returns MediaTrackStream

  • + +
  • +
    +

    Parameters

    +
      +
    • +
      event: string | symbol
    • +
    • +
      listener: ((...args) => void)
      +
        +
      • +
          +
        • (...args): void
        • +
        • +
          +

          Parameters

          +
            +
          • +
            Rest ...args: any[]
          +

          Returns void

    +

    Returns MediaTrackStream

+
+ +
    + +
  • +

    The readable.pause() method will cause a stream in flowing mode to stop +emitting 'data' events, switching out of flowing mode. Any data that +becomes available will remain in the internal buffer.

    +
    const readable = getReadableStreamSomehow();
    readable.on('data', (chunk) => {
    console.log(`Received ${chunk.length} bytes of data.`);
    readable.pause();
    console.log('There will be no additional data for 1 second.');
    setTimeout(() => {
    console.log('Now data will start flowing again.');
    readable.resume();
    }, 1000);
    }); +
    +

    The readable.pause() method has no effect if there is a 'readable'event listener.

    +
    +

    Returns MediaTrackStream

    +
    +

    Since

    v0.9.4

    +
+
+ +
    + +
  • +
    +

    Type Parameters

    +
      +
    • +

      T extends WritableStream<T>

    +
    +

    Parameters

    +
      +
    • +
      destination: T
    • +
    • +
      Optional options: {
          end?: boolean;
      }
      +
        +
      • +
        Optional end?: boolean
    +

    Returns T

+
+ +
    + +
  • +
    +

    Parameters

    +
      +
    • +
      event: "close"
    • +
    • +
      listener: (() => void)
      +
        +
      • +
          +
        • (): void
        • +
        • +

          Returns void

    +

    Returns MediaTrackStream

  • + +
  • +
    +

    Parameters

    +
      +
    • +
      event: "data"
    • +
    • +
      listener: ((chunk) => void)
      +
        +
      • +
          +
        • (chunk): void
        • +
        • +
          +

          Parameters

          +
            +
          • +
            chunk: any
          +

          Returns void

    +

    Returns MediaTrackStream

  • + +
  • +
    +

    Parameters

    +
      +
    • +
      event: "drain"
    • +
    • +
      listener: (() => void)
      +
        +
      • +
          +
        • (): void
        • +
        • +

          Returns void

    +

    Returns MediaTrackStream

  • + +
  • +
    +

    Parameters

    +
      +
    • +
      event: "end"
    • +
    • +
      listener: (() => void)
      +
        +
      • +
          +
        • (): void
        • +
        • +

          Returns void

    +

    Returns MediaTrackStream

  • + +
  • +
    +

    Parameters

    +
      +
    • +
      event: "error"
    • +
    • +
      listener: ((err) => void)
      +
        +
      • +
          +
        • (err): void
        • +
        • +
          +

          Parameters

          +
            +
          • +
            err: Error
          +

          Returns void

    +

    Returns MediaTrackStream

  • + +
  • +
    +

    Parameters

    +
      +
    • +
      event: "finish"
    • +
    • +
      listener: (() => void)
      +
        +
      • +
          +
        • (): void
        • +
        • +

          Returns void

    +

    Returns MediaTrackStream

  • + +
  • +
    +

    Parameters

    +
      +
    • +
      event: "pause"
    • +
    • +
      listener: (() => void)
      +
        +
      • +
          +
        • (): void
        • +
        • +

          Returns void

    +

    Returns MediaTrackStream

  • + +
  • +
    +

    Parameters

    +
      +
    • +
      event: "pipe"
    • +
    • +
      listener: ((src) => void)
      +
        +
      • +
          +
        • (src): void
        • +
        • +
          +

          Parameters

          +
            +
          • +
            src: Readable
          +

          Returns void

    +

    Returns MediaTrackStream

  • + +
  • +
    +

    Parameters

    +
      +
    • +
      event: "readable"
    • +
    • +
      listener: (() => void)
      +
        +
      • +
          +
        • (): void
        • +
        • +

          Returns void

    +

    Returns MediaTrackStream

  • + +
  • +
    +

    Parameters

    +
      +
    • +
      event: "resume"
    • +
    • +
      listener: (() => void)
      +
        +
      • +
          +
        • (): void
        • +
        • +

          Returns void

    +

    Returns MediaTrackStream

  • + +
  • +
    +

    Parameters

    +
      +
    • +
      event: "unpipe"
    • +
    • +
      listener: ((src) => void)
      +
        +
      • +
          +
        • (src): void
        • +
        • +
          +

          Parameters

          +
            +
          • +
            src: Readable
          +

          Returns void

    +

    Returns MediaTrackStream

  • + +
  • +
    +

    Parameters

    +
      +
    • +
      event: string | symbol
    • +
    • +
      listener: ((...args) => void)
      +
        +
      • +
          +
        • (...args): void
        • +
        • +
          +

          Parameters

          +
            +
          • +
            Rest ...args: any[]
          +

          Returns void

    +

    Returns MediaTrackStream

+
+ +
    + +
  • +
    +

    Parameters

    +
      +
    • +
      event: "close"
    • +
    • +
      listener: (() => void)
      +
        +
      • +
          +
        • (): void
        • +
        • +

          Returns void

    +

    Returns MediaTrackStream

  • + +
  • +
    +

    Parameters

    +
      +
    • +
      event: "data"
    • +
    • +
      listener: ((chunk) => void)
      +
        +
      • +
          +
        • (chunk): void
        • +
        • +
          +

          Parameters

          +
            +
          • +
            chunk: any
          +

          Returns void

    +

    Returns MediaTrackStream

  • + +
  • +
    +

    Parameters

    +
      +
    • +
      event: "drain"
    • +
    • +
      listener: (() => void)
      +
        +
      • +
          +
        • (): void
        • +
        • +

          Returns void

    +

    Returns MediaTrackStream

  • + +
  • +
    +

    Parameters

    +
      +
    • +
      event: "end"
    • +
    • +
      listener: (() => void)
      +
        +
      • +
          +
        • (): void
        • +
        • +

          Returns void

    +

    Returns MediaTrackStream

  • + +
  • +
    +

    Parameters

    +
      +
    • +
      event: "error"
    • +
    • +
      listener: ((err) => void)
      +
        +
      • +
          +
        • (err): void
        • +
        • +
          +

          Parameters

          +
            +
          • +
            err: Error
          +

          Returns void

    +

    Returns MediaTrackStream

  • + +
  • +
    +

    Parameters

    +
      +
    • +
      event: "finish"
    • +
    • +
      listener: (() => void)
      +
        +
      • +
          +
        • (): void
        • +
        • +

          Returns void

    +

    Returns MediaTrackStream

  • + +
  • +
    +

    Parameters

    +
      +
    • +
      event: "pause"
    • +
    • +
      listener: (() => void)
      +
        +
      • +
          +
        • (): void
        • +
        • +

          Returns void

    +

    Returns MediaTrackStream

  • + +
  • +
    +

    Parameters

    +
      +
    • +
      event: "pipe"
    • +
    • +
      listener: ((src) => void)
      +
        +
      • +
          +
        • (src): void
        • +
        • +
          +

          Parameters

          +
            +
          • +
            src: Readable
          +

          Returns void

    +

    Returns MediaTrackStream

  • + +
  • +
    +

    Parameters

    +
      +
    • +
      event: "readable"
    • +
    • +
      listener: (() => void)
      +
        +
      • +
          +
        • (): void
        • +
        • +

          Returns void

    +

    Returns MediaTrackStream

  • + +
  • +
    +

    Parameters

    +
      +
    • +
      event: "resume"
    • +
    • +
      listener: (() => void)
      +
        +
      • +
          +
        • (): void
        • +
        • +

          Returns void

    +

    Returns MediaTrackStream

  • + +
  • +
    +

    Parameters

    +
      +
    • +
      event: "unpipe"
    • +
    • +
      listener: ((src) => void)
      +
        +
      • +
          +
        • (src): void
        • +
        • +
          +

          Parameters

          +
            +
          • +
            src: Readable
          +

          Returns void

    +

    Returns MediaTrackStream

  • + +
  • +
    +

    Parameters

    +
      +
    • +
      event: string | symbol
    • +
    • +
      listener: ((...args) => void)
      +
        +
      • +
          +
        • (...args): void
        • +
        • +
          +

          Parameters

          +
            +
          • +
            Rest ...args: any[]
          +

          Returns void

    +

    Returns MediaTrackStream

+
+ +
    + +
  • +
    +

    Parameters

    +
      +
    • +
      chunk: any
    • +
    • +
      Optional encoding: BufferEncoding
    +

    Returns boolean

+
+ +
    + +
  • +

    Returns a copy of the array of listeners for the event named eventName, +including any wrappers (such as those created by .once()).

    +
    const emitter = new EventEmitter();
    emitter.once('log', () => console.log('log once'));

    // Returns a new Array with a function `onceWrapper` which has a property
    // `listener` which contains the original listener bound above
    const listeners = emitter.rawListeners('log');
    const logFnWrapper = listeners[0];

    // Logs "log once" to the console and does not unbind the `once` event
    logFnWrapper.listener();

    // Logs "log once" to the console and removes the listener
    logFnWrapper();

    emitter.on('log', () => console.log('log persistently'));
    // Will return a new Array with a single function bound by `.on()` above
    const newListeners = emitter.rawListeners('log');

    // Logs "log persistently" twice
    newListeners[0]();
    emitter.emit('log'); +
    +
    +
    +

    Parameters

    +
      +
    • +
      eventName: string | symbol
    +

    Returns Function[]

    +
    +

    Since

    v9.4.0

    +
+
+ +
    + +
  • +

    The readable.read() method pulls some data out of the internal buffer and +returns it. If no data available to be read, null is returned. By default, +the data will be returned as a Buffer object unless an encoding has been +specified using the readable.setEncoding() method or the stream is operating +in object mode.

    +

    The optional size argument specifies a specific number of bytes to read. Ifsize bytes are not available to be read, null will be returned _unless_the stream has ended, in which +case all of the data remaining in the internal +buffer will be returned.

    +

    If the size argument is not specified, all of the data contained in the +internal buffer will be returned.

    +

    The size argument must be less than or equal to 1 GiB.

    +

    The readable.read() method should only be called on Readable streams +operating in paused mode. In flowing mode, readable.read() is called +automatically until the internal buffer is fully drained.

    +
    const readable = getReadableStreamSomehow();

    // 'readable' may be triggered multiple times as data is buffered in
    readable.on('readable', () => {
    let chunk;
    console.log('Stream is readable (new data received in buffer)');
    // Use a loop to make sure we read all currently available data
    while (null !== (chunk = readable.read())) {
    console.log(`Read ${chunk.length} bytes of data...`);
    }
    });

    // 'end' will be triggered once when there is no more data available
    readable.on('end', () => {
    console.log('Reached end of stream.');
    }); +
    +

    Each call to readable.read() returns a chunk of data, or null. The chunks +are not concatenated. A while loop is necessary to consume all data +currently in the buffer. When reading a large file .read() may return null, +having consumed all buffered content so far, but there is still more data to +come not yet buffered. In this case a new 'readable' event will be emitted +when there is more data in the buffer. Finally the 'end' event will be +emitted when there is no more data to come.

    +

    Therefore to read a file's whole contents from a readable, it is necessary +to collect chunks across multiple 'readable' events:

    +
    const chunks = [];

    readable.on('readable', () => {
    let chunk;
    while (null !== (chunk = readable.read())) {
    chunks.push(chunk);
    }
    });

    readable.on('end', () => {
    const content = chunks.join('');
    }); +
    +

    A Readable stream in object mode will always return a single item from +a call to readable.read(size), regardless of the value of thesize argument.

    +

    If the readable.read() method returns a chunk of data, a 'data' event will +also be emitted.

    +

    Calling read after the 'end' event has +been emitted will return null. No runtime error will be raised.

    +
    +
    +

    Parameters

    +
      +
    • +
      Optional size: number
      +

      Optional argument to specify how much data to read.

      +
      +
    +

    Returns any

    +
    +

    Since

    v0.9.4

    +
+
+ +
    + +
  • +

    Removes all listeners, or those of the specified eventName.

    +

    It is bad practice to remove listeners added elsewhere in the code, +particularly when the EventEmitter instance was created by some other +component or module (e.g. sockets or file streams).

    +

    Returns a reference to the EventEmitter, so that calls can be chained.

    +
    +
    +

    Parameters

    +
      +
    • +
      Optional event: string | symbol
    +

    Returns MediaTrackStream

    +
    +

    Since

    v0.1.26

    +
+
+ +
    + +
  • +
    +

    Parameters

    +
      +
    • +
      event: "close"
    • +
    • +
      listener: (() => void)
      +
        +
      • +
          +
        • (): void
        • +
        • +

          Returns void

    +

    Returns MediaTrackStream

  • + +
  • +
    +

    Parameters

    +
      +
    • +
      event: "data"
    • +
    • +
      listener: ((chunk) => void)
      +
        +
      • +
          +
        • (chunk): void
        • +
        • +
          +

          Parameters

          +
            +
          • +
            chunk: any
          +

          Returns void

    +

    Returns MediaTrackStream

  • + +
  • +
    +

    Parameters

    +
      +
    • +
      event: "drain"
    • +
    • +
      listener: (() => void)
      +
        +
      • +
          +
        • (): void
        • +
        • +

          Returns void

    +

    Returns MediaTrackStream

  • + +
  • +
    +

    Parameters

    +
      +
    • +
      event: "end"
    • +
    • +
      listener: (() => void)
      +
        +
      • +
          +
        • (): void
        • +
        • +

          Returns void

    +

    Returns MediaTrackStream

  • + +
  • +
    +

    Parameters

    +
      +
    • +
      event: "error"
    • +
    • +
      listener: ((err) => void)
      +
        +
      • +
          +
        • (err): void
        • +
        • +
          +

          Parameters

          +
            +
          • +
            err: Error
          +

          Returns void

    +

    Returns MediaTrackStream

  • + +
  • +
    +

    Parameters

    +
      +
    • +
      event: "finish"
    • +
    • +
      listener: (() => void)
      +
        +
      • +
          +
        • (): void
        • +
        • +

          Returns void

    +

    Returns MediaTrackStream

  • + +
  • +
    +

    Parameters

    +
      +
    • +
      event: "pause"
    • +
    • +
      listener: (() => void)
      +
        +
      • +
          +
        • (): void
        • +
        • +

          Returns void

    +

    Returns MediaTrackStream

  • + +
  • +
    +

    Parameters

    +
      +
    • +
      event: "pipe"
    • +
    • +
      listener: ((src) => void)
      +
        +
      • +
          +
        • (src): void
        • +
        • +
          +

          Parameters

          +
            +
          • +
            src: Readable
          +

          Returns void

    +

    Returns MediaTrackStream

  • + +
  • +
    +

    Parameters

    +
      +
    • +
      event: "readable"
    • +
    • +
      listener: (() => void)
      +
        +
      • +
          +
        • (): void
        • +
        • +

          Returns void

    +

    Returns MediaTrackStream

  • + +
  • +
    +

    Parameters

    +
      +
    • +
      event: "resume"
    • +
    • +
      listener: (() => void)
      +
        +
      • +
          +
        • (): void
        • +
        • +

          Returns void

    +

    Returns MediaTrackStream

  • + +
  • +
    +

    Parameters

    +
      +
    • +
      event: "unpipe"
    • +
    • +
      listener: ((src) => void)
      +
        +
      • +
          +
        • (src): void
        • +
        • +
          +

          Parameters

          +
            +
          • +
            src: Readable
          +

          Returns void

    +

    Returns MediaTrackStream

  • + +
  • +
    +

    Parameters

    +
      +
    • +
      event: string | symbol
    • +
    • +
      listener: ((...args) => void)
      +
        +
      • +
          +
        • (...args): void
        • +
        • +
          +

          Parameters

          +
            +
          • +
            Rest ...args: any[]
          +

          Returns void

    +

    Returns MediaTrackStream

+
+ +
    + +
  • +

    The readable.resume() method causes an explicitly paused Readable stream to +resume emitting 'data' events, switching the stream into flowing mode.

    +

    The readable.resume() method can be used to fully consume the data from a +stream without actually processing any of that data:

    +
    getReadableStreamSomehow()
    .resume()
    .on('end', () => {
    console.log('Reached the end, but did not read anything.');
    }); +
    +

    The readable.resume() method has no effect if there is a 'readable'event listener.

    +
    +

    Returns MediaTrackStream

    +
    +

    Since

    v0.9.4

    +
+
+ +
    + +
  • +
    +

    Parameters

    +
      +
    • +
      encoding: BufferEncoding
    +

    Returns MediaTrackStream

+
+ +
    + +
  • +

    The readable.setEncoding() method sets the character encoding for +data read from the Readable stream.

    +

    By default, no encoding is assigned and stream data will be returned asBuffer objects. Setting an encoding causes the stream data +to be returned as strings of the specified encoding rather than as Bufferobjects. For instance, calling readable.setEncoding('utf8') will cause the +output data to be interpreted as UTF-8 data, and passed as strings. Callingreadable.setEncoding('hex') will cause the data to be encoded in hexadecimal +string format.

    +

    The Readable stream will properly handle multi-byte characters delivered +through the stream that would otherwise become improperly decoded if simply +pulled from the stream as Buffer objects.

    +
    const readable = getReadableStreamSomehow();
    readable.setEncoding('utf8');
    readable.on('data', (chunk) => {
    assert.equal(typeof chunk, 'string');
    console.log('Got %d characters of string data:', chunk.length);
    }); +
    +
    +
    +

    Parameters

    +
      +
    • +
      encoding: BufferEncoding
      +

      The encoding to use.

      +
      +
    +

    Returns MediaTrackStream

    +
    +

    Since

    v0.9.4

    +
+
+ +
    + +
  • +

    By default EventEmitters will print a warning if more than 10 listeners are +added for a particular event. This is a useful default that helps finding +memory leaks. The emitter.setMaxListeners() method allows the limit to be +modified for this specific EventEmitter instance. The value can be set toInfinity (or 0) to indicate an unlimited number of listeners.

    +

    Returns a reference to the EventEmitter, so that calls can be chained.

    +
    +
    +

    Parameters

    +
      +
    • +
      n: number
    +

    Returns MediaTrackStream

    +
    +

    Since

    v0.3.5

    +
+
+ +
    + +
  • +

    Returns void

+
+ +
    + +
  • +

    The readable.unpipe() method detaches a Writable stream previously attached +using the pipe method.

    +

    If the destination is not specified, then all pipes are detached.

    +

    If the destination is specified, but no pipe is set up for it, then +the method does nothing.

    +
    const fs = require('fs');
    const readable = getReadableStreamSomehow();
    const writable = fs.createWriteStream('file.txt');
    // All the data from readable goes into 'file.txt',
    // but only for the first second.
    readable.pipe(writable);
    setTimeout(() => {
    console.log('Stop writing to file.txt.');
    readable.unpipe(writable);
    console.log('Manually close the file stream.');
    writable.end();
    }, 1000); +
    +
    +
    +

    Parameters

    +
      +
    • +
      Optional destination: WritableStream
      +

      Optional specific stream to unpipe

      +
      +
    +

    Returns MediaTrackStream

    +
    +

    Since

    v0.9.4

    +
+
+ +
    + +
  • +

    Passing chunk as null signals the end of the stream (EOF) and behaves the +same as readable.push(null), after which no more data can be written. The EOF +signal is put at the end of the buffer and any buffered data will still be +flushed.

    +

    The readable.unshift() method pushes a chunk of data back into the internal +buffer. This is useful in certain situations where a stream is being consumed by +code that needs to "un-consume" some amount of data that it has optimistically +pulled out of the source, so that the data can be passed on to some other party.

    +

    The stream.unshift(chunk) method cannot be called after the 'end' event +has been emitted or a runtime error will be thrown.

    +

    Developers using stream.unshift() often should consider switching to +use of a Transform stream instead. See the API for stream implementers section for more information.

    +
    // Pull off a header delimited by \n\n.
    // Use unshift() if we get too much.
    // Call the callback with (error, header, stream).
    const { StringDecoder } = require('string_decoder');
    function parseHeader(stream, callback) {
    stream.on('error', callback);
    stream.on('readable', onReadable);
    const decoder = new StringDecoder('utf8');
    let header = '';
    function onReadable() {
    let chunk;
    while (null !== (chunk = stream.read())) {
    const str = decoder.write(chunk);
    if (str.match(/\n\n/)) {
    // Found the header boundary.
    const split = str.split(/\n\n/);
    header += split.shift();
    const remaining = split.join('\n\n');
    const buf = Buffer.from(remaining, 'utf8');
    stream.removeListener('error', callback);
    // Remove the 'readable' listener before unshifting.
    stream.removeListener('readable', onReadable);
    if (buf.length)
    stream.unshift(buf);
    // Now the body of the message can be read from the stream.
    callback(null, header, stream);
    } else {
    // Still reading the header.
    header += str;
    }
    }
    }
    } +
    +

    Unlike push, stream.unshift(chunk) will not +end the reading process by resetting the internal reading state of the stream. +This can cause unexpected results if readable.unshift() is called during a +read (i.e. from within a _read implementation on a +custom stream). Following the call to readable.unshift() with an immediate push will reset the reading state appropriately, +however it is best to simply avoid calling readable.unshift() while in the +process of performing a read.

    +
    +
    +

    Parameters

    +
      +
    • +
      chunk: any
      +

      Chunk of data to unshift onto the read queue. For streams not operating in object mode, chunk must be a string, Buffer, Uint8Array or null. For object mode +streams, chunk may be any JavaScript value.

      +
      +
    • +
    • +
      Optional encoding: BufferEncoding
      +

      Encoding of string chunks. Must be a valid Buffer encoding, such as 'utf8' or 'ascii'.

      +
      +
    +

    Returns void

    +
    +

    Since

    v0.9.11

    +
+
+ +
    + +
  • +

    Prior to Node.js 0.10, streams did not implement the entire stream module API +as it is currently defined. (See Compatibility for more information.)

    +

    When using an older Node.js library that emits 'data' events and has a pause method that is advisory only, thereadable.wrap() method can be used to create a Readable +stream that uses +the old stream as its data source.

    +

    It will rarely be necessary to use readable.wrap() but the method has been +provided as a convenience for interacting with older Node.js applications and +libraries.

    +
    const { OldReader } = require('./old-api-module.js');
    const { Readable } = require('stream');
    const oreader = new OldReader();
    const myReader = new Readable().wrap(oreader);

    myReader.on('readable', () => {
    myReader.read(); // etc.
    }); +
    +
    +
    +

    Parameters

    +
      +
    • +
      stream: ReadableStream
      +

      An "old style" readable stream

      +
      +
    +

    Returns MediaTrackStream

    +
    +

    Since

    v0.9.4

    +
+
+ +
    + +
  • +
    +

    Parameters

    +
      +
    • +
      chunk: any
    • +
    • +
      Optional encoding: BufferEncoding
    • +
    • +
      Optional cb: ((error) => void)
      +
        +
      • +
          +
        • (error): void
        • +
        • +
          +

          Parameters

          +
            +
          • +
            error: undefined | null | Error
          +

          Returns void

    +

    Returns boolean

  • + +
  • +
    +

    Parameters

    +
      +
    • +
      chunk: any
    • +
    • +
      Optional cb: ((error) => void)
      +
        +
      • +
          +
        • (error): void
        • +
        • +
          +

          Parameters

          +
            +
          • +
            error: undefined | null | Error
          +

          Returns void

    +

    Returns boolean

+
+ +
    + +
  • +

    A utility method for creating duplex streams.

    +
      +
    • Stream converts writable stream into writable Duplex and readable stream +to Duplex.
    • +
    • Blob converts into readable Duplex.
    • +
    • string converts into readable Duplex.
    • +
    • ArrayBuffer converts into readable Duplex.
    • +
    • AsyncIterable converts into a readable Duplex. Cannot yield null.
    • +
    • AsyncGeneratorFunction converts into a readable/writable transform +Duplex. Must take a source AsyncIterable as first parameter. Cannot yield +null.
    • +
    • AsyncFunction converts into a writable Duplex. Must return +either null or undefined
    • +
    • Object ({ writable, readable }) converts readable and +writable into Stream and then combines them into Duplex where the +Duplex will write to the writable and read from the readable.
    • +
    • Promise converts into readable Duplex. Value null is ignored.
    • +
    +
    +
    +

    Parameters

    +
      +
    • +
      src: string | Object | Stream | Blob | ArrayBuffer | Iterable<any> | AsyncIterable<any> | AsyncGeneratorFunction | Promise<any>
    +

    Returns Duplex

    +
    +

    Since

    v16.8.0

    +
+
+ +
    + +
  • +

    Returns a copy of the array of listeners for the event named eventName.

    +

    For EventEmitters this behaves exactly the same as calling .listeners on +the emitter.

    +

    For EventTargets this is the only way to get the event listeners for the +event target. This is useful for debugging and diagnostic purposes.

    +
    const { getEventListeners, EventEmitter } = require('events');

    {
    const ee = new EventEmitter();
    const listener = () => console.log('Events are fun');
    ee.on('foo', listener);
    getEventListeners(ee, 'foo'); // [listener]
    }
    {
    const et = new EventTarget();
    const listener = () => console.log('Events are fun');
    et.addEventListener('foo', listener);
    getEventListeners(et, 'foo'); // [listener]
    } +
    +
    +
    +

    Parameters

    +
      +
    • +
      emitter: EventEmitter | DOMEventTarget
    • +
    • +
      name: string | symbol
    +

    Returns Function[]

    +
    +

    Since

    v15.2.0

    +
+
+ +
    + +
  • +

    Returns whether the stream has been read from or cancelled.

    +
    +
    +

    Parameters

    +
      +
    • +
      stream: Readable | ReadableStream
    +

    Returns boolean

    +
    +

    Since

    v16.8.0

    +
+
+ +
    + +
  • +

    A class method that returns the number of listeners for the given eventNameregistered on the given emitter.

    +
    const { EventEmitter, listenerCount } = require('events');
    const myEmitter = new EventEmitter();
    myEmitter.on('event', () => {});
    myEmitter.on('event', () => {});
    console.log(listenerCount(myEmitter, 'event'));
    // Prints: 2 +
    +
    +
    +

    Parameters

    +
      +
    • +
      emitter: EventEmitter
      +

      The emitter to query

      +
      +
    • +
    • +
      eventName: string | symbol
      +

      The event name

      +
      +
    +

    Returns number

    +
    +

    Since

    v0.9.12

    + +

    Deprecated

    Since v3.2.0 - Use listenerCount instead.

    +
+
+ +
    + +
  • +
    const { on, EventEmitter } = require('events');

    (async () => {
    const ee = new EventEmitter();

    // Emit later on
    process.nextTick(() => {
    ee.emit('foo', 'bar');
    ee.emit('foo', 42);
    });

    for await (const event of on(ee, 'foo')) {
    // The execution of this inner block is synchronous and it
    // processes one event at a time (even with await). Do not use
    // if concurrent execution is required.
    console.log(event); // prints ['bar'] [42]
    }
    // Unreachable here
    })(); +
    +

    Returns an AsyncIterator that iterates eventName events. It will throw +if the EventEmitter emits 'error'. It removes all listeners when +exiting the loop. The value returned by each iteration is an array +composed of the emitted event arguments.

    +

    An AbortSignal can be used to cancel waiting on events:

    +
    const { on, EventEmitter } = require('events');
    const ac = new AbortController();

    (async () => {
    const ee = new EventEmitter();

    // Emit later on
    process.nextTick(() => {
    ee.emit('foo', 'bar');
    ee.emit('foo', 42);
    });

    for await (const event of on(ee, 'foo', { signal: ac.signal })) {
    // The execution of this inner block is synchronous and it
    // processes one event at a time (even with await). Do not use
    // if concurrent execution is required.
    console.log(event); // prints ['bar'] [42]
    }
    // Unreachable here
    })();

    process.nextTick(() => ac.abort()); +
    +
    +
    +

    Parameters

    +
      +
    • +
      emitter: EventEmitter
    • +
    • +
      eventName: string
      +

      The name of the event being listened for

      +
      +
    • +
    • +
      Optional options: StaticEventEmitterOptions
    +

    Returns AsyncIterableIterator<any>

    that iterates eventName events emitted by the emitter

    + +
    +

    Since

    v13.6.0, v12.16.0

    +
+
+ +
    + +
  • +

    Creates a Promise that is fulfilled when the EventEmitter emits the given +event or that is rejected if the EventEmitter emits 'error' while waiting. +The Promise will resolve with an array of all the arguments emitted to the +given event.

    +

    This method is intentionally generic and works with the web platform EventTarget interface, which has no special'error' event +semantics and does not listen to the 'error' event.

    +
    const { once, EventEmitter } = require('events');

    async function run() {
    const ee = new EventEmitter();

    process.nextTick(() => {
    ee.emit('myevent', 42);
    });

    const [value] = await once(ee, 'myevent');
    console.log(value);

    const err = new Error('kaboom');
    process.nextTick(() => {
    ee.emit('error', err);
    });

    try {
    await once(ee, 'myevent');
    } catch (err) {
    console.log('error happened', err);
    }
    }

    run(); +
    +

    The special handling of the 'error' event is only used when events.once()is used to wait for another event. If events.once() is used to wait for the +'error' event itself, then it is treated as any other kind of event without +special handling:

    +
    const { EventEmitter, once } = require('events');

    const ee = new EventEmitter();

    once(ee, 'error')
    .then(([err]) => console.log('ok', err.message))
    .catch((err) => console.log('error', err.message));

    ee.emit('error', new Error('boom'));

    // Prints: ok boom +
    +

    An AbortSignal can be used to cancel waiting for the event:

    +
    const { EventEmitter, once } = require('events');

    const ee = new EventEmitter();
    const ac = new AbortController();

    async function foo(emitter, event, signal) {
    try {
    await once(emitter, event, { signal });
    console.log('event emitted!');
    } catch (error) {
    if (error.name === 'AbortError') {
    console.error('Waiting for the event was canceled!');
    } else {
    console.error('There was an error', error.message);
    }
    }
    }

    foo(ee, 'foo', ac.signal);
    ac.abort(); // Abort waiting for the event
    ee.emit('foo'); // Prints: Waiting for the event was canceled! +
    +
    +
    +

    Parameters

    +
      +
    • +
      emitter: NodeEventTarget
    • +
    • +
      eventName: string | symbol
    • +
    • +
      Optional options: StaticEventEmitterOptions
    +

    Returns Promise<any[]>

    +
    +

    Since

    v11.13.0, v10.16.0

    +
  • + +
  • +
    +

    Parameters

    +
      +
    • +
      emitter: DOMEventTarget
    • +
    • +
      eventName: string
    • +
    • +
      Optional options: StaticEventEmitterOptions
    +

    Returns Promise<any[]>

+
+ +
    + +
  • +
    const {
    setMaxListeners,
    EventEmitter
    } = require('events');

    const target = new EventTarget();
    const emitter = new EventEmitter();

    setMaxListeners(5, target, emitter); +
    +
    +
    +

    Parameters

    +
      +
    • +
      Optional n: number
      +

      A non-negative number. The maximum number of listeners per EventTarget event.

      +
      +
    • +
    • +
      Rest ...eventTargets: (EventEmitter | DOMEventTarget)[]
    +

    Returns void

    +
    +

    Since

    v15.4.0

    +
+
+ +
+
+

Generated using TypeDoc

+
\ No newline at end of file diff --git a/classes/MockRTCAdminPlugin.html b/classes/MockRTCAdminPlugin.html new file mode 100644 index 0000000..cf5cdb4 --- /dev/null +++ b/classes/MockRTCAdminPlugin.html @@ -0,0 +1,186 @@ +MockRTCAdminPlugin | MockRTC API Reference
+
+ +
+
+
+
+ +

Class MockRTCAdminPlugin

+
+

Hierarchy

+
    +
  • MockRTCAdminPlugin
+
+

Implements

+
+
+
+
+ +
+
+

Constructors

+
+
+

Properties

+
+
+

Methods

+
+
+

Constructors

+
+ +
+
+

Properties

+
+ +
schema: DocumentNode = ...
+
+

Methods

+
+ +
+
+ +
+
+ +
+
+ +
+
+
+

Generated using TypeDoc

+
\ No newline at end of file diff --git a/classes/MockRTCAdminServer.html b/classes/MockRTCAdminServer.html new file mode 100644 index 0000000..58f465b --- /dev/null +++ b/classes/MockRTCAdminServer.html @@ -0,0 +1,251 @@ +MockRTCAdminServer | MockRTC API Reference
+
+ +
+
+
+
+ +

Class MockRTCAdminServer

+
+

Hierarchy

+
+
+
+
+ +
+
+

Constructors

+
+
+

Accessors

+
+
+

Methods

+
+
+

Constructors

+
+ +
+
+

Accessors

+
+ +
    +
  • get ruleParameterKeys(): string[]
  • +
  • +

    Returns string[]

+
+

Methods

+
+ +
    + +
  • +

    Subscribe to hear when each mock ession is started. The listener is provided the +session plugin data, which can be used to log session startup, add side-effects that +run elsewhere at startup, or preconfigure every started plugin in addition ways.

    +

    This is run synchronously when a session is created, after it has fully started +but before its been returned to remote clients.

    +
    +
    +

    Parameters

    +
      +
    • +
      event: "mock-session-started"
    • +
    • +
      listener: ((plugins, sessionId) => void)
      +
    +

    Returns void

    +
  • + +
  • +

    Subscribe to hear when a mock session is stopped. The listener is provided with +the state of all plugins that are about to be stopped. This can be used to log +mock session shutdown, add side-effects that run elsewhere at shutdown, or clean +up after sessions in other ways.

    +

    This is run synchronously immediately before the session is shutdown, whilst all +its state is still available, and before remote clients have had any response to +their request. This is also run before shutdown when the admin server itself is +cleanly shutdown with adminServer.stop().

    +
    +
    +

    Parameters

    +
      +
    • +
      event: "mock-session-stopping"
    • +
    • +
      listener: ((plugins, sessionId) => void)
      +
    +

    Returns void

    +
+
+ +
    + +
  • +

    Returns Promise<void>

+
+ +
    + +
  • +
    +

    Parameters

    +
      +
    • +
      Optional listenOptions: number | {
          host: string;
          port: number;
      }
    +

    Returns Promise<void>

+
+ +
    + +
  • +

    Returns Promise<void>

+
+
+

Generated using TypeDoc

+
\ No newline at end of file diff --git a/classes/MockRTCConnection.html b/classes/MockRTCConnection.html new file mode 100644 index 0000000..e31d218 --- /dev/null +++ b/classes/MockRTCConnection.html @@ -0,0 +1,1127 @@ +MockRTCConnection | MockRTC API Reference
+
+ +
+
+
+
+ +

Class MockRTCConnection

+
+

An RTC connection is a single connection. This base class defines the raw connection management and +tracking logic for a generic connection. The MockRTCConnection subclass extends this and adds +logic to support control channels, proxying and other MockRTC-specific additions.

+
+
+
+

Hierarchy

+
+
+
+
+ +
+
+

Constructors

+
+ +
+
+

Properties

+
+ +
id: string = ...
+
+ +
sessionApi: MockRTCSession = ...
+
+ +
captureRejectionSymbol: typeof captureRejectionSymbol
+
+ +
captureRejections: boolean
+

Sets or gets the default captureRejection value for all emitters.

+
+
+
+ +
defaultMaxListeners: number
+
+ +
errorMonitor: typeof errorMonitor
+

This symbol shall be used to install a listener for only monitoring 'error' +events. Listeners installed using this symbol are called before the regular +'error' listeners are called.

+

Installing a listener using this symbol does not change the behavior once an +'error' event is emitted, therefore the process will still crash if no +regular 'error' listener is installed.

+
+
+
+

Accessors

+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+

Methods

+
+ +
    + +
  • +

    Alias for emitter.on(eventName, listener).

    +
    +
    +

    Parameters

    +
      +
    • +
      eventName: string | symbol
    • +
    • +
      listener: ((...args) => void)
      +
        +
      • +
          +
        • (...args): void
        • +
        • +
          +

          Parameters

          +
            +
          • +
            Rest ...args: any[]
          +

          Returns void

    +

    Returns MockRTCConnection

    +
    +

    Since

    v0.1.26

    +
+
+ +
+
+ +
+
+ +
+
+ +
    + +
  • +

    Synchronously calls each of the listeners registered for the event namedeventName, in the order they were registered, passing the supplied arguments +to each.

    +

    Returns true if the event had listeners, false otherwise.

    +
    const EventEmitter = require('events');
    const myEmitter = new EventEmitter();

    // First listener
    myEmitter.on('event', function firstListener() {
    console.log('Helloooo! first listener');
    });
    // Second listener
    myEmitter.on('event', function secondListener(arg1, arg2) {
    console.log(`event with parameters ${arg1}, ${arg2} in second listener`);
    });
    // Third listener
    myEmitter.on('event', function thirdListener(...args) {
    const parameters = args.join(', ');
    console.log(`event with parameters ${parameters} in third listener`);
    });

    console.log(myEmitter.listeners('event'));

    myEmitter.emit('event', 1, 2, 3, 4, 5);

    // Prints:
    // [
    // [Function: firstListener],
    // [Function: secondListener],
    // [Function: thirdListener]
    // ]
    // Helloooo! first listener
    // event with parameters 1, 2 in second listener
    // event with parameters 1, 2, 3, 4, 5 in third listener +
    +
    +
    +

    Parameters

    +
      +
    • +
      eventName: string | symbol
    • +
    • +
      Rest ...args: any[]
    +

    Returns boolean

    +
    +

    Since

    v0.1.26

    +
+
+ +
    + +
  • +

    Returns an array listing the events for which the emitter has registered +listeners. The values in the array are strings or Symbols.

    +
    const EventEmitter = require('events');
    const myEE = new EventEmitter();
    myEE.on('foo', () => {});
    myEE.on('bar', () => {});

    const sym = Symbol('symbol');
    myEE.on(sym, () => {});

    console.log(myEE.eventNames());
    // Prints: [ 'foo', 'bar', Symbol(symbol) ] +
    +
    +

    Returns (string | symbol)[]

    +
    +

    Since

    v6.0.0

    +
+
+ +
+
+ +
    + +
  • +

    Returns the current max listener value for the EventEmitter which is either +set by emitter.setMaxListeners(n) or defaults to defaultMaxListeners.

    +
    +

    Returns number

    +
    +

    Since

    v1.0.0

    +
+
+ +
+
+ +
+
+ +
+
+ +
    + +
  • +

    Returns undefined | {
        local: {
            address: string;
            candidate: string;
            mid: string;
            port: number;
            priority: number;
            protocol: string;
            type: RTCIceCandidateType;
        };
        remote: {
            address: string;
            candidate: string;
            mid: string;
            port: number;
            priority: number;
            protocol: string;
            type: RTCIceCandidateType;
        };
    }

+
+ +
    + +
  • +

    Returns the number of listeners listening to the event named eventName.

    +
    +
    +

    Parameters

    +
      +
    • +
      eventName: string | symbol
      +

      The name of the event being listened for

      +
      +
    +

    Returns number

    +
    +

    Since

    v3.2.0

    +
+
+ +
    + +
  • +

    Returns a copy of the array of listeners for the event named eventName.

    +
    server.on('connection', (stream) => {
    console.log('someone connected!');
    });
    console.log(util.inspect(server.listeners('connection')));
    // Prints: [ [Function] ] +
    +
    +
    +

    Parameters

    +
      +
    • +
      eventName: string | symbol
    +

    Returns Function[]

    +
    +

    Since

    v0.1.26

    +
+
+ +
    + +
  • +

    Alias for emitter.removeListener().

    +
    +
    +

    Parameters

    +
      +
    • +
      eventName: string | symbol
    • +
    • +
      listener: ((...args) => void)
      +
        +
      • +
          +
        • (...args): void
        • +
        • +
          +

          Parameters

          +
            +
          • +
            Rest ...args: any[]
          +

          Returns void

    +

    Returns MockRTCConnection

    +
    +

    Since

    v10.0.0

    +
+
+ +
    + +
  • +

    Adds the listener function to the end of the listeners array for the +event named eventName. No checks are made to see if the listener has +already been added. Multiple calls passing the same combination of eventNameand listener will result in the listener being added, and called, multiple +times.

    +
    server.on('connection', (stream) => {
    console.log('someone connected!');
    }); +
    +

    Returns a reference to the EventEmitter, so that calls can be chained.

    +

    By default, event listeners are invoked in the order they are added. Theemitter.prependListener() method can be used as an alternative to add the +event listener to the beginning of the listeners array.

    +
    const myEE = new EventEmitter();
    myEE.on('foo', () => console.log('a'));
    myEE.prependListener('foo', () => console.log('b'));
    myEE.emit('foo');
    // Prints:
    // b
    // a +
    +
    +
    +

    Parameters

    +
      +
    • +
      eventName: string | symbol
      +

      The name of the event.

      +
      +
    • +
    • +
      listener: ((...args) => void)
      +

      The callback function

      +
      +
      +
        +
      • +
          +
        • (...args): void
        • +
        • +
          +

          Parameters

          +
            +
          • +
            Rest ...args: any[]
          +

          Returns void

    +

    Returns MockRTCConnection

    +
    +

    Since

    v0.1.101

    +
+
+ +
    + +
  • +

    Adds a one-timelistener function for the event named eventName. The +next time eventName is triggered, this listener is removed and then invoked.

    +
    server.once('connection', (stream) => {
    console.log('Ah, we have our first user!');
    }); +
    +

    Returns a reference to the EventEmitter, so that calls can be chained.

    +

    By default, event listeners are invoked in the order they are added. Theemitter.prependOnceListener() method can be used as an alternative to add the +event listener to the beginning of the listeners array.

    +
    const myEE = new EventEmitter();
    myEE.once('foo', () => console.log('a'));
    myEE.prependOnceListener('foo', () => console.log('b'));
    myEE.emit('foo');
    // Prints:
    // b
    // a +
    +
    +
    +

    Parameters

    +
      +
    • +
      eventName: string | symbol
      +

      The name of the event.

      +
      +
    • +
    • +
      listener: ((...args) => void)
      +

      The callback function

      +
      +
      +
        +
      • +
          +
        • (...args): void
        • +
        • +
          +

          Parameters

          +
            +
          • +
            Rest ...args: any[]
          +

          Returns void

    +

    Returns MockRTCConnection

    +
    +

    Since

    v0.3.0

    +
+
+ +
    + +
  • +

    Adds the listener function to the beginning of the listeners array for the +event named eventName. No checks are made to see if the listener has +already been added. Multiple calls passing the same combination of eventNameand listener will result in the listener being added, and called, multiple +times.

    +
    server.prependListener('connection', (stream) => {
    console.log('someone connected!');
    }); +
    +

    Returns a reference to the EventEmitter, so that calls can be chained.

    +
    +
    +

    Parameters

    +
      +
    • +
      eventName: string | symbol
      +

      The name of the event.

      +
      +
    • +
    • +
      listener: ((...args) => void)
      +

      The callback function

      +
      +
      +
        +
      • +
          +
        • (...args): void
        • +
        • +
          +

          Parameters

          +
            +
          • +
            Rest ...args: any[]
          +

          Returns void

    +

    Returns MockRTCConnection

    +
    +

    Since

    v6.0.0

    +
+
+ +
    + +
  • +

    Adds a one-timelistener function for the event named eventName to the_beginning_ of the listeners array. The next time eventName is triggered, this +listener is removed, and then invoked.

    +
    server.prependOnceListener('connection', (stream) => {
    console.log('Ah, we have our first user!');
    }); +
    +

    Returns a reference to the EventEmitter, so that calls can be chained.

    +
    +
    +

    Parameters

    +
      +
    • +
      eventName: string | symbol
      +

      The name of the event.

      +
      +
    • +
    • +
      listener: ((...args) => void)
      +

      The callback function

      +
      +
      +
        +
      • +
          +
        • (...args): void
        • +
        • +
          +

          Parameters

          +
            +
          • +
            Rest ...args: any[]
          +

          Returns void

    +

    Returns MockRTCConnection

    +
    +

    Since

    v6.0.0

    +
+
+ +
+
+ +
+
+ +
    + +
  • +

    Returns a copy of the array of listeners for the event named eventName, +including any wrappers (such as those created by .once()).

    +
    const emitter = new EventEmitter();
    emitter.once('log', () => console.log('log once'));

    // Returns a new Array with a function `onceWrapper` which has a property
    // `listener` which contains the original listener bound above
    const listeners = emitter.rawListeners('log');
    const logFnWrapper = listeners[0];

    // Logs "log once" to the console and does not unbind the `once` event
    logFnWrapper.listener();

    // Logs "log once" to the console and removes the listener
    logFnWrapper();

    emitter.on('log', () => console.log('log persistently'));
    // Will return a new Array with a single function bound by `.on()` above
    const newListeners = emitter.rawListeners('log');

    // Logs "log persistently" twice
    newListeners[0]();
    emitter.emit('log'); +
    +
    +
    +

    Parameters

    +
      +
    • +
      eventName: string | symbol
    +

    Returns Function[]

    +
    +

    Since

    v9.4.0

    +
+
+ +
    + +
  • +

    Removes all listeners, or those of the specified eventName.

    +

    It is bad practice to remove listeners added elsewhere in the code, +particularly when the EventEmitter instance was created by some other +component or module (e.g. sockets or file streams).

    +

    Returns a reference to the EventEmitter, so that calls can be chained.

    +
    +
    +

    Parameters

    +
      +
    • +
      Optional event: string | symbol
    +

    Returns MockRTCConnection

    +
    +

    Since

    v0.1.26

    +
+
+ +
    + +
  • +

    Removes the specified listener from the listener array for the event namedeventName.

    +
    const callback = (stream) => {
    console.log('someone connected!');
    };
    server.on('connection', callback);
    // ...
    server.removeListener('connection', callback); +
    +

    removeListener() will remove, at most, one instance of a listener from the +listener array. If any single listener has been added multiple times to the +listener array for the specified eventName, then removeListener() must be +called multiple times to remove each instance.

    +

    Once an event is emitted, all listeners attached to it at the +time of emitting are called in order. This implies that anyremoveListener() or removeAllListeners() calls after emitting and_before_ the last listener finishes execution will +not remove them fromemit() in progress. Subsequent events behave as expected.

    +
    const myEmitter = new MyEmitter();

    const callbackA = () => {
    console.log('A');
    myEmitter.removeListener('event', callbackB);
    };

    const callbackB = () => {
    console.log('B');
    };

    myEmitter.on('event', callbackA);

    myEmitter.on('event', callbackB);

    // callbackA removes listener callbackB but it will still be called.
    // Internal listener array at time of emit [callbackA, callbackB]
    myEmitter.emit('event');
    // Prints:
    // A
    // B

    // callbackB is now removed.
    // Internal listener array [callbackA]
    myEmitter.emit('event');
    // Prints:
    // A +
    +

    Because listeners are managed using an internal array, calling this will +change the position indices of any listener registered after the listener +being removed. This will not impact the order in which listeners are called, +but it means that any copies of the listener array as returned by +the emitter.listeners() method will need to be recreated.

    +

    When a single function has been added as a handler multiple times for a single +event (as in the example below), removeListener() will remove the most +recently added instance. In the example the once('ping')listener is removed:

    +
    const ee = new EventEmitter();

    function pong() {
    console.log('pong');
    }

    ee.on('ping', pong);
    ee.once('ping', pong);
    ee.removeListener('ping', pong);

    ee.emit('ping');
    ee.emit('ping'); +
    +

    Returns a reference to the EventEmitter, so that calls can be chained.

    +
    +
    +

    Parameters

    +
      +
    • +
      eventName: string | symbol
    • +
    • +
      listener: ((...args) => void)
      +
        +
      • +
          +
        • (...args): void
        • +
        • +
          +

          Parameters

          +
            +
          • +
            Rest ...args: any[]
          +

          Returns void

    +

    Returns MockRTCConnection

    +
    +

    Since

    v0.1.26

    +
+
+ +
    + +
  • +

    By default EventEmitters will print a warning if more than 10 listeners are +added for a particular event. This is a useful default that helps finding +memory leaks. The emitter.setMaxListeners() method allows the limit to be +modified for this specific EventEmitter instance. The value can be set toInfinity (or 0) to indicate an unlimited number of listeners.

    +

    Returns a reference to the EventEmitter, so that calls can be chained.

    +
    +
    +

    Parameters

    +
      +
    • +
      n: number
    +

    Returns MockRTCConnection

    +
    +

    Since

    v0.3.5

    +
+
+ +
+
+ +
+
+ +
    + +
  • +

    Returns a copy of the array of listeners for the event named eventName.

    +

    For EventEmitters this behaves exactly the same as calling .listeners on +the emitter.

    +

    For EventTargets this is the only way to get the event listeners for the +event target. This is useful for debugging and diagnostic purposes.

    +
    const { getEventListeners, EventEmitter } = require('events');

    {
    const ee = new EventEmitter();
    const listener = () => console.log('Events are fun');
    ee.on('foo', listener);
    getEventListeners(ee, 'foo'); // [listener]
    }
    {
    const et = new EventTarget();
    const listener = () => console.log('Events are fun');
    et.addEventListener('foo', listener);
    getEventListeners(et, 'foo'); // [listener]
    } +
    +
    +
    +

    Parameters

    +
      +
    • +
      emitter: EventEmitter | DOMEventTarget
    • +
    • +
      name: string | symbol
    +

    Returns Function[]

    +
    +

    Since

    v15.2.0

    +
+
+ +
    + +
  • +

    A class method that returns the number of listeners for the given eventNameregistered on the given emitter.

    +
    const { EventEmitter, listenerCount } = require('events');
    const myEmitter = new EventEmitter();
    myEmitter.on('event', () => {});
    myEmitter.on('event', () => {});
    console.log(listenerCount(myEmitter, 'event'));
    // Prints: 2 +
    +
    +
    +

    Parameters

    +
      +
    • +
      emitter: EventEmitter
      +

      The emitter to query

      +
      +
    • +
    • +
      eventName: string | symbol
      +

      The event name

      +
      +
    +

    Returns number

    +
    +

    Since

    v0.9.12

    + +

    Deprecated

    Since v3.2.0 - Use listenerCount instead.

    +
+
+ +
    + +
  • +
    const { on, EventEmitter } = require('events');

    (async () => {
    const ee = new EventEmitter();

    // Emit later on
    process.nextTick(() => {
    ee.emit('foo', 'bar');
    ee.emit('foo', 42);
    });

    for await (const event of on(ee, 'foo')) {
    // The execution of this inner block is synchronous and it
    // processes one event at a time (even with await). Do not use
    // if concurrent execution is required.
    console.log(event); // prints ['bar'] [42]
    }
    // Unreachable here
    })(); +
    +

    Returns an AsyncIterator that iterates eventName events. It will throw +if the EventEmitter emits 'error'. It removes all listeners when +exiting the loop. The value returned by each iteration is an array +composed of the emitted event arguments.

    +

    An AbortSignal can be used to cancel waiting on events:

    +
    const { on, EventEmitter } = require('events');
    const ac = new AbortController();

    (async () => {
    const ee = new EventEmitter();

    // Emit later on
    process.nextTick(() => {
    ee.emit('foo', 'bar');
    ee.emit('foo', 42);
    });

    for await (const event of on(ee, 'foo', { signal: ac.signal })) {
    // The execution of this inner block is synchronous and it
    // processes one event at a time (even with await). Do not use
    // if concurrent execution is required.
    console.log(event); // prints ['bar'] [42]
    }
    // Unreachable here
    })();

    process.nextTick(() => ac.abort()); +
    +
    +
    +

    Parameters

    +
      +
    • +
      emitter: EventEmitter
    • +
    • +
      eventName: string
      +

      The name of the event being listened for

      +
      +
    • +
    • +
      Optional options: StaticEventEmitterOptions
    +

    Returns AsyncIterableIterator<any>

    that iterates eventName events emitted by the emitter

    + +
    +

    Since

    v13.6.0, v12.16.0

    +
+
+ +
    + +
  • +

    Creates a Promise that is fulfilled when the EventEmitter emits the given +event or that is rejected if the EventEmitter emits 'error' while waiting. +The Promise will resolve with an array of all the arguments emitted to the +given event.

    +

    This method is intentionally generic and works with the web platform EventTarget interface, which has no special'error' event +semantics and does not listen to the 'error' event.

    +
    const { once, EventEmitter } = require('events');

    async function run() {
    const ee = new EventEmitter();

    process.nextTick(() => {
    ee.emit('myevent', 42);
    });

    const [value] = await once(ee, 'myevent');
    console.log(value);

    const err = new Error('kaboom');
    process.nextTick(() => {
    ee.emit('error', err);
    });

    try {
    await once(ee, 'myevent');
    } catch (err) {
    console.log('error happened', err);
    }
    }

    run(); +
    +

    The special handling of the 'error' event is only used when events.once()is used to wait for another event. If events.once() is used to wait for the +'error' event itself, then it is treated as any other kind of event without +special handling:

    +
    const { EventEmitter, once } = require('events');

    const ee = new EventEmitter();

    once(ee, 'error')
    .then(([err]) => console.log('ok', err.message))
    .catch((err) => console.log('error', err.message));

    ee.emit('error', new Error('boom'));

    // Prints: ok boom +
    +

    An AbortSignal can be used to cancel waiting for the event:

    +
    const { EventEmitter, once } = require('events');

    const ee = new EventEmitter();
    const ac = new AbortController();

    async function foo(emitter, event, signal) {
    try {
    await once(emitter, event, { signal });
    console.log('event emitted!');
    } catch (error) {
    if (error.name === 'AbortError') {
    console.error('Waiting for the event was canceled!');
    } else {
    console.error('There was an error', error.message);
    }
    }
    }

    foo(ee, 'foo', ac.signal);
    ac.abort(); // Abort waiting for the event
    ee.emit('foo'); // Prints: Waiting for the event was canceled! +
    +
    +
    +

    Parameters

    +
      +
    • +
      emitter: NodeEventTarget
    • +
    • +
      eventName: string | symbol
    • +
    • +
      Optional options: StaticEventEmitterOptions
    +

    Returns Promise<any[]>

    +
    +

    Since

    v11.13.0, v10.16.0

    +
  • + +
  • +
    +

    Parameters

    +
      +
    • +
      emitter: DOMEventTarget
    • +
    • +
      eventName: string
    • +
    • +
      Optional options: StaticEventEmitterOptions
    +

    Returns Promise<any[]>

+
+ +
    + +
  • +
    const {
    setMaxListeners,
    EventEmitter
    } = require('events');

    const target = new EventTarget();
    const emitter = new EventEmitter();

    setMaxListeners(5, target, emitter); +
    +
    +
    +

    Parameters

    +
      +
    • +
      Optional n: number
      +

      A non-negative number. The maximum number of listeners per EventTarget event.

      +
      +
    • +
    • +
      Rest ...eventTargets: (EventEmitter | DOMEventTarget)[]
    +

    Returns void

    +
    +

    Since

    v15.4.0

    +
+
+ +
+
+

Generated using TypeDoc

+
\ No newline at end of file diff --git a/classes/MockRTCHandlerBuilder.html b/classes/MockRTCHandlerBuilder.html new file mode 100644 index 0000000..38b590a --- /dev/null +++ b/classes/MockRTCHandlerBuilder.html @@ -0,0 +1,422 @@ +MockRTCHandlerBuilder | MockRTC API Reference
+
+ +
+
+
+
+ +

Class MockRTCHandlerBuilder<R>

+
+

The builder logic for composing RTC handling behaviour for both mock peers and rules, +by internally queuing defined actions until a .thenX() method is called to compile +the actions into either a peer or a rule (handled by an constructor callback param).

+
+
+
+

Type Parameters

+
    +
  • +

    R

+
+

Hierarchy

+
+
+
+
+ +
+
+

Steps

+
+ +
+
+ +
    + +
  • +

    Send a message or buffer on the connection's data channels.

    +

    This can take one or two arguments. If only one is provided, it is used +as a message that's sent on all open data channels. If two arguments are +provided, the first must be the data channel label, and the message (the +second) will be sent only to data channel(s) with that label.

    +

    If no matching channels are open, this is a no-op. Use waitForChannel() +to ensure the channels you're expecting are open first if necessary.

    +
    +
    +

    Parameters

    +
      +
    • +
      message: string | Buffer
    +

    Returns MockRTCHandlerBuilder<R>

    +
  • + +
  • +
    +

    Parameters

    +
      +
    • +
      channel: undefined | string
    • +
    • +
      message: string | Buffer
    +

    Returns MockRTCHandlerBuilder<R>

+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+

Final Steps

+
+ +
    + +
  • +

    Immediately close the connection.

    +

    This defines a final step, and will then create a mock peer from the full +set of steps you've defined, and return it wrapped in a promise. As soon +as the promise resolves the peer is ready to use.

    +
    +

    Returns Promise<R>

    +
+
+ +
    + +
  • +

    Echo all incoming data channel messages until the other peer closes the +connection.

    +

    This defines a final step, and will then create a mock peer from the full +set of steps you've defined, and return it wrapped in a promise. As soon +as the promise resolves the peer is ready to use.

    +
    +

    Returns Promise<R>

    +
+
+ +
    + +
  • +

    Creates a new external connection to the given remote peer connection, +matching the existing mocked connection, and then proxies all traffic +through to that peer.

    +

    This defines a final step, and will then create a mock peer from the full +set of steps you've defined, and return it wrapped in a promise. As soon +as the promise resolves the peer is ready to use.

    +
    +
    +

    Parameters

    +
      +
    • +
      peer: RTCPeerConnection
    +

    Returns Promise<R>

    +
+
+ +
    + +
  • +

    Proxy this connection dynamically to the 'real' target peer, whoever +that may be.

    +

    This assumes that you have an existing external connection already +set up and attached to this mock connection.

    +

    You can do that either by using hookWebRTCConnection or +hookAllWebRTC to hook your connection during normal setup to +automatically create an external offer to the real remote peer, or you can +do so manually using createExternalOffer or +answerExternalOffer and then passing the connection +id as here.

    +

    This defines a final step, and will then create a mock peer from the full +set of steps you've defined, and return it wrapped in a promise. As soon +as the promise resolves the peer is ready to use.

    +
    +

    Returns Promise<R>

    +
+
+ +
    + +
  • +

    Send a message or buffer on the connection's data channels, then close the +connection. This is equivalent to .send() then +.thenClose().

    +

    This defines a final step, and will then create a mock peer from the full +set of steps you've defined, and return it wrapped in a promise. As soon +as the promise resolves the peer is ready to use.

    +
    +
    +

    Parameters

    +
      +
    • +
      message: string | Buffer
    +

    Returns Promise<R>

    +
  • + +
  • +
    +

    Parameters

    +
      +
    • +
      channel: string
    • +
    • +
      message: string | Buffer
    +

    Returns Promise<R>

+
+

Other

+
+ +
+
+
+

Generated using TypeDoc

+
\ No newline at end of file diff --git a/classes/MockRTCRuleBuilder.html b/classes/MockRTCRuleBuilder.html new file mode 100644 index 0000000..213ff83 --- /dev/null +++ b/classes/MockRTCRuleBuilder.html @@ -0,0 +1,615 @@ +MockRTCRuleBuilder | MockRTC API Reference
+
+ +
+
+
+
+ +

Class MockRTCRuleBuilder

+
+

Rule builders allow you to combine sets of matchers, progressively +building a set of matching conditions, before defining the resulting +behaviour that will be applied to matching traffic.

+
+
+
+

Hierarchy

+
    +
  • MockRTCRuleBuilder
+
+

Implements

+
+
+
+
+ +
+
+

Steps

+
+ +
createDataChannel: ((channelLabel) => MockRTCHandlerBuilder<void>) = ...
+
+

Type declaration

+
    +
  • +
      +
    • (channelLabel): MockRTCHandlerBuilder<void>
    • +
    • +

      Creates a new data channel with the given name, waiting until it opens +before continuing.

      +
      +
      +

      Parameters

      +
        +
      • +
        channelLabel: string
      +

      Returns MockRTCHandlerBuilder<void>

      +
+
+ +
send: {
    (message): MockRTCHandlerBuilder<void>;
    (channel, message): MockRTCHandlerBuilder<void>;
} = ...
+
+

Type declaration

+
    +
  • +
      +
    • (message): MockRTCHandlerBuilder<void>
    • +
    • +

      Send a message or buffer on the connection's data channels.

      +

      This can take one or two arguments. If only one is provided, it is used +as a message that's sent on all open data channels. If two arguments are +provided, the first must be the data channel label, and the message (the +second) will be sent only to data channel(s) with that label.

      +

      If no matching channels are open, this is a no-op. Use waitForChannel() +to ensure the channels you're expecting are open first if necessary.

      +
      +
      +

      Parameters

      +
        +
      • +
        message: string | Buffer
      +

      Returns MockRTCHandlerBuilder<void>

      +
    • +
    • (channel, message): MockRTCHandlerBuilder<void>
    • +
    • +
      +

      Parameters

      +
        +
      • +
        channel: undefined | string
      • +
      • +
        message: string | Buffer
      +

      Returns MockRTCHandlerBuilder<void>

+
+ +
sleep: ((duration) => MockRTCHandlerBuilder<void>) = ...
+
+

Type declaration

+
+
+ +
waitForChannel: ((channelLabel?) => MockRTCHandlerBuilder<void>) = ...
+
+

Type declaration

+
    +
  • +
+
+ +
waitForNextMedia: (() => MockRTCHandlerBuilder<void>) = ...
+
+

Type declaration

+
    +
  • +
      +
    • (): MockRTCHandlerBuilder<void>
    • +
    • +

      Wait until the remote client next sends media data on a media track.

      +

      This waits for new media, ignoring any media already consumed by previous steps.

      +
      +

      Returns MockRTCHandlerBuilder<void>

      +
+
+ +
waitForNextMessage: (() => MockRTCHandlerBuilder<void>) = ...
+
+

Type declaration

+
    +
  • +
      +
    • (): MockRTCHandlerBuilder<void>
    • +
    • +

      Wait until the remote client next sends a message to us on any DataChannel.

      +

      This looks for new messages, ignoring any messages already consumed by +previous steps.

      +
      +

      Returns MockRTCHandlerBuilder<void>

      +
+
+ +
waitForNextMessageOnChannel: ((channelLabel) => MockRTCHandlerBuilder<void>) = ...
+
+

Type declaration

+
    +
  • +
      +
    • (channelLabel): MockRTCHandlerBuilder<void>
    • +
    • +

      Wait until the remote client sends a message to us on a specific DataChannel.

      +

      This looks for new messages, ignoring any messages already consumed by +previous steps.

      +
      +
      +

      Parameters

      +
        +
      • +
        channelLabel: string
      +

      Returns MockRTCHandlerBuilder<void>

      +
+
+ +
waitForTrack: (() => MockRTCHandlerBuilder<void>) = ...
+
+

Type declaration

+
+
+

Final Steps

+
+ +
thenClose: (() => Promise<void>) = ...
+
+

Type declaration

+
    +
  • +
      +
    • (): Promise<void>
    • +
    • +

      Immediately close the connection.

      +

      This defines a final step, and will then create a mock peer from the full +set of steps you've defined, and return it wrapped in a promise. As soon +as the promise resolves the peer is ready to use.

      +
      +

      Returns Promise<void>

      +
+
+ +
thenEcho: (() => Promise<void>) = ...
+
+

Type declaration

+
    +
  • +
      +
    • (): Promise<void>
    • +
    • +

      Echo all incoming data channel messages until the other peer closes the +connection.

      +

      This defines a final step, and will then create a mock peer from the full +set of steps you've defined, and return it wrapped in a promise. As soon +as the promise resolves the peer is ready to use.

      +
      +

      Returns Promise<void>

      +
+
+ +
thenForwardTo: ((peer) => Promise<void>) = ...
+
+

Type declaration

+
    +
  • +
      +
    • (peer): Promise<void>
    • +
    • +

      Creates a new external connection to the given remote peer connection, +matching the existing mocked connection, and then proxies all traffic +through to that peer.

      +

      This defines a final step, and will then create a mock peer from the full +set of steps you've defined, and return it wrapped in a promise. As soon +as the promise resolves the peer is ready to use.

      +
      +
      +

      Parameters

      +
        +
      • +
        peer: RTCPeerConnection
      +

      Returns Promise<void>

      +
+
+ +
thenPassThrough: (() => Promise<void>) = ...
+
+

Type declaration

+
    +
  • +
      +
    • (): Promise<void>
    • +
    • +

      Proxy this connection dynamically to the 'real' target peer, whoever +that may be.

      +

      This assumes that you have an existing external connection already +set up and attached to this mock connection.

      +

      You can do that either by using hookWebRTCConnection or +hookAllWebRTC to hook your connection during normal setup to +automatically create an external offer to the real remote peer, or you can +do so manually using createExternalOffer or +answerExternalOffer and then passing the connection +id as here.

      +

      This defines a final step, and will then create a mock peer from the full +set of steps you've defined, and return it wrapped in a promise. As soon +as the promise resolves the peer is ready to use.

      +
      +

      Returns Promise<void>

      +
+
+ +
thenSend: {
    (message): Promise<void>;
    (channel, message): Promise<void>;
} = ...
+
+

Type declaration

+
    +
  • +
      +
    • (message): Promise<void>
    • +
    • +

      Send a message or buffer on the connection's data channels, then close the +connection. This is equivalent to .send() then +.thenClose().

      +

      This defines a final step, and will then create a mock peer from the full +set of steps you've defined, and return it wrapped in a promise. As soon +as the promise resolves the peer is ready to use.

      +
      +
      +

      Parameters

      +
        +
      • +
        message: string | Buffer
      +

      Returns Promise<void>

      +
    • +
    • (channel, message): Promise<void>
    • +
    • +
      +

      Parameters

      +
        +
      • +
        channel: string
      • +
      • +
        message: string | Buffer
      +

      Returns Promise<void>

+
+

Matcher

+
+ +
    + +
  • +

    Match RTC connections made from hooked JavaScript running on a given hostname.

    +

    This only matches connections with explicit sourceURL metadata, which must be +either added automatically (by using the hookAllWebRTC or hookWebRTCConnection +methods) or manually (by providing metadata: { sourceURL: '...' } options +during mock connection setup).

    +
    +
    +

    Parameters

    +
      +
    • +
      hostname: string
    +

    Returns MockRTCRuleBuilder

    +
+
+ +
    + +
  • +

    Match RTC connections made from hooked JavaScript running on a matching URL.

    +

    This only matches connections with explicit sourceURL metadata, which must be +either added automatically (by using the hookAllWebRTC or hookWebRTCConnection +methods) or manually (by providing metadata: { sourceURL: '...' } options +during mock connection setup).

    +
    +
    +

    Parameters

    +
      +
    • +
      urlRegex: RegExp
    +

    Returns MockRTCRuleBuilder

    +
+
+ +
    + +
  • +

    Match RTC connections made by hooked JavaScript running within a browser with a +matching user agent string.

    +

    This only matches connections with explicit userAgent metadata, which must be +either added automatically (by using the hookAllWebRTC or hookWebRTCConnection +methods) or manually (by providing metadata: { userAgent: '...' } options +during mock connection setup).

    +
    +
    +

    Parameters

    +
      +
    • +
      userAgentRegEx: RegExp
    +

    Returns MockRTCRuleBuilder

    +
+
+

Other

+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+
+

Generated using TypeDoc

+
\ No newline at end of file diff --git a/classes/MockRTCServerPeer.html b/classes/MockRTCServerPeer.html new file mode 100644 index 0000000..7a7e371 --- /dev/null +++ b/classes/MockRTCServerPeer.html @@ -0,0 +1,327 @@ +MockRTCServerPeer | MockRTC API Reference
+
+ +
+
+
+
+ +

Class MockRTCServerPeer

+
+

A MockRTC peer represents a target you can connect to, and exposes an API to create +offers or answers to create new connections.

+

Peers have defined behaviour, and each connection will be handled accordingly and +independently.

+

Peers can also optionally track all the messages and metadata across all their +connections.

+
+
+
+

Hierarchy

+
    +
  • MockRTCServerPeer
+
+

Implements

+
+
+
+
+ +
+
+

Constructors

+
+ +
+
+

Properties

+
+ +
peerId: string = ...
+
+

Methods

+
+ +
    + +
  • +

    Takes an offer for a WebRTC connection elsewhere, and creates an answer to create +an external connection to this peer.

    +

    External connections are used for proxying traffic. They do not do anything +by default (so they ignore this peer's configured steps) but a mock connection +can be connected to an external connection using methods like +thenPassThrough.

    +

    Returns a set of answer parameters: an external connection id, the answer itself, +and a session to renegotiate the connection in future.

    +
    +
    +

    Parameters

    +
      +
    • +
      offer: RTCSessionDescriptionInit
    • +
    • +
      Optional options: AnswerOptions
    +

    Returns Promise<MockRTCExternalAnswerParams>

    +
+
+ +
+
+ +
+
+ +
    + +
  • +

    Creates an offer for a new external connection to this mock peer.

    +

    External connections are used for proxying traffic. They do not do anything +by default (so they ignore this peer's configured steps) but a mock connection +can be connected to an external connection using methods like +thenPassThrough.

    +

    Returns a set of offer parameters: an external connection id, the offer itself, +a session to renegotiate the connection in future, and a setAnswer callback to +call with an answer once you have one.

    +
    +
    +

    Parameters

    +
    +

    Returns Promise<MockRTCExternalOfferParams>

    +
+
+ +
+
+ +
+
+ +
    + +
  • +

    Retrieve an array of all data channel messages on a specific channel that this +peer has received on all connections.

    +
    +
    +

    Parameters

    +
      +
    • +
      channelName: string
    +

    Returns Promise<(string | Buffer)[]>

    +
+
+ +
    + +
  • +

    Takes a connection id, and returns the associated session.

    +

    This is useful for advanced use cases, where keeping the session returned by other +setup methods is inconvenient, and it's easier to keep ids and look up sessions +on demand instead.

    +
    +
    +

    Parameters

    +
      +
    • +
      id: string
    +

    Returns MockRTCSession

    +
+
+
+

Generated using TypeDoc

+
\ No newline at end of file diff --git a/classes/PluggableAdmin.AdminClient.html b/classes/PluggableAdmin.AdminClient.html new file mode 100644 index 0000000..bcc403d --- /dev/null +++ b/classes/PluggableAdmin.AdminClient.html @@ -0,0 +1,1076 @@ +AdminClient | MockRTC API Reference
+
+ +
+
+
+
+ +

Class AdminClient<Plugins>

+
+

A bare admin server client. This is not intended for general use, but can be useful when +building admin server plugins to mock non-HTTP protocols and other advanced use cases.

+

For normal usage of Mockttp, you should use Mockttp.getRemote() instead, to get a Mockttp +remote client, which wraps this class with the full Mockttp API for mocking HTTP.

+

This is part of Mockttp's experimental 'pluggable admin' API. It may change +unpredictably, even in minor releases.

+
+
+
+

Type Parameters

+
    +
  • +

    Plugins extends {
        [key: string]: AdminPlugin<any, any>;
    }

+
+

Hierarchy

+
    +
  • EventEmitter +
      +
    • AdminClient
+
+
+
+ +
+
+

Constructors

+
+ +
    + +
  • +
    +

    Type Parameters

    +
      +
    • +

      Plugins extends {
          [key: string]: AdminPlugin<any, any>;
      }

    +
    +

    Parameters

    +
    +

    Returns AdminClient<Plugins>

+
+

Properties

+
+ +
enableDebug: (() => Promise<void>)
+
+

Type declaration

+
    +
  • +
      +
    • (): Promise<void>
    • +
    • +

      Returns Promise<void>

+
+ +
reset: (() => Promise<void>)
+
+

Type declaration

+
    +
  • +
      +
    • (): Promise<void>
    • +
    • +

      Returns Promise<void>

+
+ +
captureRejectionSymbol: typeof captureRejectionSymbol
+
+ +
captureRejections: boolean
+

Sets or gets the default captureRejection value for all emitters.

+
+
+
+ +
defaultMaxListeners: number
+
+ +
errorMonitor: typeof errorMonitor
+

This symbol shall be used to install a listener for only monitoring 'error' +events. Listeners installed using this symbol are called before the regular +'error' listeners are called.

+

Installing a listener using this symbol does not change the behavior once an +'error' event is emitted, therefore the process will still crash if no +regular 'error' listener is installed.

+
+
+
+

Accessors

+
+ +
    +
  • get adminStream(): Duplex
  • +
  • +

    Returns Duplex

+
+ +
+
+ +
+
+

Methods

+
+ +
    + +
  • +

    Alias for emitter.on(eventName, listener).

    +
    +
    +

    Parameters

    +
      +
    • +
      eventName: string | symbol
    • +
    • +
      listener: ((...args) => void)
      +
        +
      • +
          +
        • (...args): void
        • +
        • +
          +

          Parameters

          +
            +
          • +
            Rest ...args: any[]
          +

          Returns void

    +

    Returns AdminClient<Plugins>

    +
    +

    Since

    v0.1.26

    +
+
+ +
    + +
  • +

    Synchronously calls each of the listeners registered for the event namedeventName, in the order they were registered, passing the supplied arguments +to each.

    +

    Returns true if the event had listeners, false otherwise.

    +
    const EventEmitter = require('events');
    const myEmitter = new EventEmitter();

    // First listener
    myEmitter.on('event', function firstListener() {
    console.log('Helloooo! first listener');
    });
    // Second listener
    myEmitter.on('event', function secondListener(arg1, arg2) {
    console.log(`event with parameters ${arg1}, ${arg2} in second listener`);
    });
    // Third listener
    myEmitter.on('event', function thirdListener(...args) {
    const parameters = args.join(', ');
    console.log(`event with parameters ${parameters} in third listener`);
    });

    console.log(myEmitter.listeners('event'));

    myEmitter.emit('event', 1, 2, 3, 4, 5);

    // Prints:
    // [
    // [Function: firstListener],
    // [Function: secondListener],
    // [Function: thirdListener]
    // ]
    // Helloooo! first listener
    // event with parameters 1, 2 in second listener
    // event with parameters 1, 2, 3, 4, 5 in third listener +
    +
    +
    +

    Parameters

    +
      +
    • +
      eventName: string | symbol
    • +
    • +
      Rest ...args: any[]
    +

    Returns boolean

    +
    +

    Since

    v0.1.26

    +
+
+ +
    + +
  • +

    Returns an array listing the events for which the emitter has registered +listeners. The values in the array are strings or Symbols.

    +
    const EventEmitter = require('events');
    const myEE = new EventEmitter();
    myEE.on('foo', () => {});
    myEE.on('bar', () => {});

    const sym = Symbol('symbol');
    myEE.on(sym, () => {});

    console.log(myEE.eventNames());
    // Prints: [ 'foo', 'bar', Symbol(symbol) ] +
    +
    +

    Returns (string | symbol)[]

    +
    +

    Since

    v6.0.0

    +
+
+ +
    + +
  • +

    Returns the current max listener value for the EventEmitter which is either +set by emitter.setMaxListeners(n) or defaults to defaultMaxListeners.

    +
    +

    Returns number

    +
    +

    Since

    v1.0.0

    +
+
+ +
    + +
  • +

    List the names of the rule parameters defined by the admin server. This can be +used in some advanced use cases to confirm that the parameters a client wishes to +reference are available.

    +

    Only defined for remote clients.

    +
    +

    Returns Promise<string[]>

    +
+
+ +
    + +
  • +

    Returns boolean

+
+ +
    + +
  • +

    Returns the number of listeners listening to the event named eventName.

    +
    +
    +

    Parameters

    +
      +
    • +
      eventName: string | symbol
      +

      The name of the event being listened for

      +
      +
    +

    Returns number

    +
    +

    Since

    v3.2.0

    +
+
+ +
    + +
  • +

    Returns a copy of the array of listeners for the event named eventName.

    +
    server.on('connection', (stream) => {
    console.log('someone connected!');
    });
    console.log(util.inspect(server.listeners('connection')));
    // Prints: [ [Function] ] +
    +
    +
    +

    Parameters

    +
      +
    • +
      eventName: string | symbol
    +

    Returns Function[]

    +
    +

    Since

    v0.1.26

    +
+
+ +
    + +
  • +

    Alias for emitter.removeListener().

    +
    +
    +

    Parameters

    +
      +
    • +
      eventName: string | symbol
    • +
    • +
      listener: ((...args) => void)
      +
        +
      • +
          +
        • (...args): void
        • +
        • +
          +

          Parameters

          +
            +
          • +
            Rest ...args: any[]
          +

          Returns void

    +

    Returns AdminClient<Plugins>

    +
    +

    Since

    v10.0.0

    +
+
+ +
    + +
  • +

    Adds the listener function to the end of the listeners array for the +event named eventName. No checks are made to see if the listener has +already been added. Multiple calls passing the same combination of eventNameand listener will result in the listener being added, and called, multiple +times.

    +
    server.on('connection', (stream) => {
    console.log('someone connected!');
    }); +
    +

    Returns a reference to the EventEmitter, so that calls can be chained.

    +

    By default, event listeners are invoked in the order they are added. Theemitter.prependListener() method can be used as an alternative to add the +event listener to the beginning of the listeners array.

    +
    const myEE = new EventEmitter();
    myEE.on('foo', () => console.log('a'));
    myEE.prependListener('foo', () => console.log('b'));
    myEE.emit('foo');
    // Prints:
    // b
    // a +
    +
    +
    +

    Parameters

    +
      +
    • +
      eventName: string | symbol
      +

      The name of the event.

      +
      +
    • +
    • +
      listener: ((...args) => void)
      +

      The callback function

      +
      +
      +
        +
      • +
          +
        • (...args): void
        • +
        • +
          +

          Parameters

          +
            +
          • +
            Rest ...args: any[]
          +

          Returns void

    +

    Returns AdminClient<Plugins>

    +
    +

    Since

    v0.1.101

    +
+
+ +
    + +
  • +

    Adds a one-timelistener function for the event named eventName. The +next time eventName is triggered, this listener is removed and then invoked.

    +
    server.once('connection', (stream) => {
    console.log('Ah, we have our first user!');
    }); +
    +

    Returns a reference to the EventEmitter, so that calls can be chained.

    +

    By default, event listeners are invoked in the order they are added. Theemitter.prependOnceListener() method can be used as an alternative to add the +event listener to the beginning of the listeners array.

    +
    const myEE = new EventEmitter();
    myEE.once('foo', () => console.log('a'));
    myEE.prependOnceListener('foo', () => console.log('b'));
    myEE.emit('foo');
    // Prints:
    // b
    // a +
    +
    +
    +

    Parameters

    +
      +
    • +
      eventName: string | symbol
      +

      The name of the event.

      +
      +
    • +
    • +
      listener: ((...args) => void)
      +

      The callback function

      +
      +
      +
        +
      • +
          +
        • (...args): void
        • +
        • +
          +

          Parameters

          +
            +
          • +
            Rest ...args: any[]
          +

          Returns void

    +

    Returns AdminClient<Plugins>

    +
    +

    Since

    v0.3.0

    +
+
+ +
    + +
  • +

    Adds the listener function to the beginning of the listeners array for the +event named eventName. No checks are made to see if the listener has +already been added. Multiple calls passing the same combination of eventNameand listener will result in the listener being added, and called, multiple +times.

    +
    server.prependListener('connection', (stream) => {
    console.log('someone connected!');
    }); +
    +

    Returns a reference to the EventEmitter, so that calls can be chained.

    +
    +
    +

    Parameters

    +
      +
    • +
      eventName: string | symbol
      +

      The name of the event.

      +
      +
    • +
    • +
      listener: ((...args) => void)
      +

      The callback function

      +
      +
      +
        +
      • +
          +
        • (...args): void
        • +
        • +
          +

          Parameters

          +
            +
          • +
            Rest ...args: any[]
          +

          Returns void

    +

    Returns AdminClient<Plugins>

    +
    +

    Since

    v6.0.0

    +
+
+ +
    + +
  • +

    Adds a one-timelistener function for the event named eventName to the_beginning_ of the listeners array. The next time eventName is triggered, this +listener is removed, and then invoked.

    +
    server.prependOnceListener('connection', (stream) => {
    console.log('Ah, we have our first user!');
    }); +
    +

    Returns a reference to the EventEmitter, so that calls can be chained.

    +
    +
    +

    Parameters

    +
      +
    • +
      eventName: string | symbol
      +

      The name of the event.

      +
      +
    • +
    • +
      listener: ((...args) => void)
      +

      The callback function

      +
      +
      +
        +
      • +
          +
        • (...args): void
        • +
        • +
          +

          Parameters

          +
            +
          • +
            Rest ...args: any[]
          +

          Returns void

    +

    Returns AdminClient<Plugins>

    +
    +

    Since

    v6.0.0

    +
+
+ +
    + +
  • +

    Returns a copy of the array of listeners for the event named eventName, +including any wrappers (such as those created by .once()).

    +
    const emitter = new EventEmitter();
    emitter.once('log', () => console.log('log once'));

    // Returns a new Array with a function `onceWrapper` which has a property
    // `listener` which contains the original listener bound above
    const listeners = emitter.rawListeners('log');
    const logFnWrapper = listeners[0];

    // Logs "log once" to the console and does not unbind the `once` event
    logFnWrapper.listener();

    // Logs "log once" to the console and removes the listener
    logFnWrapper();

    emitter.on('log', () => console.log('log persistently'));
    // Will return a new Array with a single function bound by `.on()` above
    const newListeners = emitter.rawListeners('log');

    // Logs "log persistently" twice
    newListeners[0]();
    emitter.emit('log'); +
    +
    +
    +

    Parameters

    +
      +
    • +
      eventName: string | symbol
    +

    Returns Function[]

    +
    +

    Since

    v9.4.0

    +
+
+ +
    + +
  • +

    Removes all listeners, or those of the specified eventName.

    +

    It is bad practice to remove listeners added elsewhere in the code, +particularly when the EventEmitter instance was created by some other +component or module (e.g. sockets or file streams).

    +

    Returns a reference to the EventEmitter, so that calls can be chained.

    +
    +
    +

    Parameters

    +
      +
    • +
      Optional event: string | symbol
    +

    Returns AdminClient<Plugins>

    +
    +

    Since

    v0.1.26

    +
+
+ +
    + +
  • +

    Removes the specified listener from the listener array for the event namedeventName.

    +
    const callback = (stream) => {
    console.log('someone connected!');
    };
    server.on('connection', callback);
    // ...
    server.removeListener('connection', callback); +
    +

    removeListener() will remove, at most, one instance of a listener from the +listener array. If any single listener has been added multiple times to the +listener array for the specified eventName, then removeListener() must be +called multiple times to remove each instance.

    +

    Once an event is emitted, all listeners attached to it at the +time of emitting are called in order. This implies that anyremoveListener() or removeAllListeners() calls after emitting and_before_ the last listener finishes execution will +not remove them fromemit() in progress. Subsequent events behave as expected.

    +
    const myEmitter = new MyEmitter();

    const callbackA = () => {
    console.log('A');
    myEmitter.removeListener('event', callbackB);
    };

    const callbackB = () => {
    console.log('B');
    };

    myEmitter.on('event', callbackA);

    myEmitter.on('event', callbackB);

    // callbackA removes listener callbackB but it will still be called.
    // Internal listener array at time of emit [callbackA, callbackB]
    myEmitter.emit('event');
    // Prints:
    // A
    // B

    // callbackB is now removed.
    // Internal listener array [callbackA]
    myEmitter.emit('event');
    // Prints:
    // A +
    +

    Because listeners are managed using an internal array, calling this will +change the position indices of any listener registered after the listener +being removed. This will not impact the order in which listeners are called, +but it means that any copies of the listener array as returned by +the emitter.listeners() method will need to be recreated.

    +

    When a single function has been added as a handler multiple times for a single +event (as in the example below), removeListener() will remove the most +recently added instance. In the example the once('ping')listener is removed:

    +
    const ee = new EventEmitter();

    function pong() {
    console.log('pong');
    }

    ee.on('ping', pong);
    ee.once('ping', pong);
    ee.removeListener('ping', pong);

    ee.emit('ping');
    ee.emit('ping'); +
    +

    Returns a reference to the EventEmitter, so that calls can be chained.

    +
    +
    +

    Parameters

    +
      +
    • +
      eventName: string | symbol
    • +
    • +
      listener: ((...args) => void)
      +
        +
      • +
          +
        • (...args): void
        • +
        • +
          +

          Parameters

          +
            +
          • +
            Rest ...args: any[]
          +

          Returns void

    +

    Returns AdminClient<Plugins>

    +
    +

    Since

    v0.1.26

    +
+
+ +
    + +
  • +
    +

    Type Parameters

    +
    +
    +

    Parameters

    +
      +
    • +
      Rest ...queries: [...Queries[]]
    +

    Returns Promise<{
        [n in string | number | symbol]: Queries[n] extends AdminQuery<any, R>
            ? R
            : never
    }>

+
+ +
    + +
  • +
    +

    Type Parameters

    +
      +
    • +

      Response

    • +
    • +

      Result = Response

    +
    +

    Parameters

    +
    +

    Returns Promise<Result>

+
+ +
    + +
  • +

    By default EventEmitters will print a warning if more than 10 listeners are +added for a particular event. This is a useful default that helps finding +memory leaks. The emitter.setMaxListeners() method allows the limit to be +modified for this specific EventEmitter instance. The value can be set toInfinity (or 0) to indicate an unlimited number of listeners.

    +

    Returns a reference to the EventEmitter, so that calls can be chained.

    +
    +
    +

    Parameters

    +
      +
    • +
      n: number
    +

    Returns AdminClient<Plugins>

    +
    +

    Since

    v0.3.5

    +
+
+ +
+
+ +
    + +
  • +

    Returns Promise<void>

+
+ +
    + +
  • +
    +

    Type Parameters

    +
      +
    • +

      Response

    • +
    • +

      Result = Response

    +
    +

    Parameters

    +
      +
    • +
      query: AdminQuery<Response, Result>
    • +
    • +
      callback: ((data) => void)
      +
        +
      • +
          +
        • (data): void
        • +
        • +
          +

          Parameters

          +
            +
          • +
            data: Result
          +

          Returns void

    +

    Returns Promise<void>

+
+ +
    + +
  • +

    Returns a copy of the array of listeners for the event named eventName.

    +

    For EventEmitters this behaves exactly the same as calling .listeners on +the emitter.

    +

    For EventTargets this is the only way to get the event listeners for the +event target. This is useful for debugging and diagnostic purposes.

    +
    const { getEventListeners, EventEmitter } = require('events');

    {
    const ee = new EventEmitter();
    const listener = () => console.log('Events are fun');
    ee.on('foo', listener);
    getEventListeners(ee, 'foo'); // [listener]
    }
    {
    const et = new EventTarget();
    const listener = () => console.log('Events are fun');
    et.addEventListener('foo', listener);
    getEventListeners(et, 'foo'); // [listener]
    } +
    +
    +
    +

    Parameters

    +
      +
    • +
      emitter: EventEmitter | DOMEventTarget
    • +
    • +
      name: string | symbol
    +

    Returns Function[]

    +
    +

    Since

    v15.2.0

    +
+
+ +
    + +
  • +

    A class method that returns the number of listeners for the given eventNameregistered on the given emitter.

    +
    const { EventEmitter, listenerCount } = require('events');
    const myEmitter = new EventEmitter();
    myEmitter.on('event', () => {});
    myEmitter.on('event', () => {});
    console.log(listenerCount(myEmitter, 'event'));
    // Prints: 2 +
    +
    +
    +

    Parameters

    +
      +
    • +
      emitter: EventEmitter
      +

      The emitter to query

      +
      +
    • +
    • +
      eventName: string | symbol
      +

      The event name

      +
      +
    +

    Returns number

    +
    +

    Since

    v0.9.12

    + +

    Deprecated

    Since v3.2.0 - Use listenerCount instead.

    +
+
+ +
    + +
  • +
    const { on, EventEmitter } = require('events');

    (async () => {
    const ee = new EventEmitter();

    // Emit later on
    process.nextTick(() => {
    ee.emit('foo', 'bar');
    ee.emit('foo', 42);
    });

    for await (const event of on(ee, 'foo')) {
    // The execution of this inner block is synchronous and it
    // processes one event at a time (even with await). Do not use
    // if concurrent execution is required.
    console.log(event); // prints ['bar'] [42]
    }
    // Unreachable here
    })(); +
    +

    Returns an AsyncIterator that iterates eventName events. It will throw +if the EventEmitter emits 'error'. It removes all listeners when +exiting the loop. The value returned by each iteration is an array +composed of the emitted event arguments.

    +

    An AbortSignal can be used to cancel waiting on events:

    +
    const { on, EventEmitter } = require('events');
    const ac = new AbortController();

    (async () => {
    const ee = new EventEmitter();

    // Emit later on
    process.nextTick(() => {
    ee.emit('foo', 'bar');
    ee.emit('foo', 42);
    });

    for await (const event of on(ee, 'foo', { signal: ac.signal })) {
    // The execution of this inner block is synchronous and it
    // processes one event at a time (even with await). Do not use
    // if concurrent execution is required.
    console.log(event); // prints ['bar'] [42]
    }
    // Unreachable here
    })();

    process.nextTick(() => ac.abort()); +
    +
    +
    +

    Parameters

    +
      +
    • +
      emitter: EventEmitter
    • +
    • +
      eventName: string
      +

      The name of the event being listened for

      +
      +
    • +
    • +
      Optional options: StaticEventEmitterOptions
    +

    Returns AsyncIterableIterator<any>

    that iterates eventName events emitted by the emitter

    + +
    +

    Since

    v13.6.0, v12.16.0

    +
+
+ +
    + +
  • +

    Creates a Promise that is fulfilled when the EventEmitter emits the given +event or that is rejected if the EventEmitter emits 'error' while waiting. +The Promise will resolve with an array of all the arguments emitted to the +given event.

    +

    This method is intentionally generic and works with the web platform EventTarget interface, which has no special'error' event +semantics and does not listen to the 'error' event.

    +
    const { once, EventEmitter } = require('events');

    async function run() {
    const ee = new EventEmitter();

    process.nextTick(() => {
    ee.emit('myevent', 42);
    });

    const [value] = await once(ee, 'myevent');
    console.log(value);

    const err = new Error('kaboom');
    process.nextTick(() => {
    ee.emit('error', err);
    });

    try {
    await once(ee, 'myevent');
    } catch (err) {
    console.log('error happened', err);
    }
    }

    run(); +
    +

    The special handling of the 'error' event is only used when events.once()is used to wait for another event. If events.once() is used to wait for the +'error' event itself, then it is treated as any other kind of event without +special handling:

    +
    const { EventEmitter, once } = require('events');

    const ee = new EventEmitter();

    once(ee, 'error')
    .then(([err]) => console.log('ok', err.message))
    .catch((err) => console.log('error', err.message));

    ee.emit('error', new Error('boom'));

    // Prints: ok boom +
    +

    An AbortSignal can be used to cancel waiting for the event:

    +
    const { EventEmitter, once } = require('events');

    const ee = new EventEmitter();
    const ac = new AbortController();

    async function foo(emitter, event, signal) {
    try {
    await once(emitter, event, { signal });
    console.log('event emitted!');
    } catch (error) {
    if (error.name === 'AbortError') {
    console.error('Waiting for the event was canceled!');
    } else {
    console.error('There was an error', error.message);
    }
    }
    }

    foo(ee, 'foo', ac.signal);
    ac.abort(); // Abort waiting for the event
    ee.emit('foo'); // Prints: Waiting for the event was canceled! +
    +
    +
    +

    Parameters

    +
      +
    • +
      emitter: NodeEventTarget
    • +
    • +
      eventName: string | symbol
    • +
    • +
      Optional options: StaticEventEmitterOptions
    +

    Returns Promise<any[]>

    +
    +

    Since

    v11.13.0, v10.16.0

    +
  • + +
  • +
    +

    Parameters

    +
      +
    • +
      emitter: DOMEventTarget
    • +
    • +
      eventName: string
    • +
    • +
      Optional options: StaticEventEmitterOptions
    +

    Returns Promise<any[]>

+
+ +
    + +
  • +
    const {
    setMaxListeners,
    EventEmitter
    } = require('events');

    const target = new EventTarget();
    const emitter = new EventEmitter();

    setMaxListeners(5, target, emitter); +
    +
    +
    +

    Parameters

    +
      +
    • +
      Optional n: number
      +

      A non-negative number. The maximum number of listeners per EventTarget event.

      +
      +
    • +
    • +
      Rest ...eventTargets: (EventEmitter | DOMEventTarget)[]
    +

    Returns void

    +
    +

    Since

    v15.4.0

    +
+
+ +
+
+

Generated using TypeDoc

+
\ No newline at end of file diff --git a/classes/PluggableAdmin.AdminServer.html b/classes/PluggableAdmin.AdminServer.html new file mode 100644 index 0000000..b924de8 --- /dev/null +++ b/classes/PluggableAdmin.AdminServer.html @@ -0,0 +1,270 @@ +AdminServer | MockRTC API Reference
+
+ +
+
+
+
+ +

Class AdminServer<Plugins>

+
+

Type Parameters

+
    +
  • +

    Plugins extends {
        [key: string]: AdminPlugin<any, any>;
    }

+
+

Hierarchy

+
+
+
+
+ +
+
+

Constructors

+
+
+

Accessors

+
+
+

Methods

+
+
+

Constructors

+
+ +
    + +
  • +
    +

    Type Parameters

    +
      +
    • +

      Plugins extends {
          [key: string]: AdminPlugin<any, any>;
      }

    +
    +

    Parameters

    +
    +

    Returns AdminServer<Plugins>

+
+

Accessors

+
+ +
    +
  • get ruleParameterKeys(): string[]
  • +
  • +

    Returns string[]

+
+

Methods

+
+ +
    + +
  • +

    Subscribe to hear when each mock ession is started. The listener is provided the +session plugin data, which can be used to log session startup, add side-effects that +run elsewhere at startup, or preconfigure every started plugin in addition ways.

    +

    This is run synchronously when a session is created, after it has fully started +but before its been returned to remote clients.

    +
    +
    +

    Parameters

    +
      +
    • +
      event: "mock-session-started"
    • +
    • +
      listener: ((plugins, sessionId) => void)
      +
        +
      • +
          +
        • (plugins, sessionId): void
        • +
        • +
          +

          Parameters

          +
            +
          • +
            plugins: Plugins
          • +
          • +
            sessionId: string
          +

          Returns void

    +

    Returns void

    +
  • + +
  • +

    Subscribe to hear when a mock session is stopped. The listener is provided with +the state of all plugins that are about to be stopped. This can be used to log +mock session shutdown, add side-effects that run elsewhere at shutdown, or clean +up after sessions in other ways.

    +

    This is run synchronously immediately before the session is shutdown, whilst all +its state is still available, and before remote clients have had any response to +their request. This is also run before shutdown when the admin server itself is +cleanly shutdown with adminServer.stop().

    +
    +
    +

    Parameters

    +
      +
    • +
      event: "mock-session-stopping"
    • +
    • +
      listener: ((plugins, sessionId) => void)
      +
        +
      • +
          +
        • (plugins, sessionId): void
        • +
        • +
          +

          Parameters

          +
            +
          • +
            plugins: Plugins
          • +
          • +
            sessionId: string
          +

          Returns void

    +

    Returns void

    +
+
+ +
    + +
  • +

    Returns Promise<void>

+
+ +
    + +
  • +
    +

    Parameters

    +
      +
    • +
      Optional listenOptions: number | {
          host: string;
          port: number;
      }
    +

    Returns Promise<void>

+
+ +
    + +
  • +

    Returns Promise<void>

+
+
+

Generated using TypeDoc

+
\ No newline at end of file diff --git a/classes/PluggableAdmin.SchemaIntrospector.html b/classes/PluggableAdmin.SchemaIntrospector.html new file mode 100644 index 0000000..b7c369d --- /dev/null +++ b/classes/PluggableAdmin.SchemaIntrospector.html @@ -0,0 +1,217 @@ +SchemaIntrospector | MockRTC API Reference
+
+ +
+
+
+ +
+

Hierarchy

+
    +
  • SchemaIntrospector
+
+
+
+ +
+
+

Constructors

+
+ +
    + +
  • +
    +

    Parameters

    +
      +
    • +
      adminServerSchema: any
    +

    Returns SchemaIntrospector

+
+

Methods

+
+ +
    + +
  • +
    +

    Parameters

    +
      +
    • +
      typeName: string | string[]
    • +
    • +
      fieldName: string
    +

    Returns string

+
+ +
    + +
  • +
    +

    Parameters

    +
      +
    • +
      typeName: string
    +

    Returns boolean

+
+ +
    + +
  • +
    +

    Parameters

    +
      +
    • +
      queryType: string
    +

    Returns boolean

+
+ +
    + +
  • +
    +

    Parameters

    +
      +
    • +
      typeName: string
    • +
    • +
      fieldName: string
    +

    Returns boolean

+
+ +
    + +
  • +
    +

    Parameters

    +
      +
    • +
      typeName: string
    • +
    • +
      fieldName: string
    +

    Returns boolean

+
+
+

Generated using TypeDoc

+
\ No newline at end of file diff --git a/classes/PluggableAdmin.Serialization.ClientServerChannel.html b/classes/PluggableAdmin.Serialization.ClientServerChannel.html new file mode 100644 index 0000000..677679f --- /dev/null +++ b/classes/PluggableAdmin.Serialization.ClientServerChannel.html @@ -0,0 +1,3330 @@ +ClientServerChannel | MockRTC API Reference
+
+ +
+
+
+ +
+

Hierarchy

+
    +
  • Duplex +
      +
    • ClientServerChannel
+
+
+
+ +
+
+

Constructors

+
+ +
    + +
  • +
    +

    Parameters

    +
      +
    • +
      rawStream: Duplex
    • +
    • +
      Optional topicId: string
    +

    Returns ClientServerChannel

+
+

Properties

+
+ +
_readFromRawStream: ((rawData) => void)
+
+

Type declaration

+
    +
  • +
      +
    • (rawData): void
    • +
    • +
      +

      Parameters

      +
        +
      • +
        rawData: any
      +

      Returns void

+
+ +
allowHalfOpen: boolean
+

If false then the stream will automatically end the writable side when the +readable side ends. Set initially by the allowHalfOpen constructor option, +which defaults to false.

+

This can be changed manually to change the half-open behavior of an existingDuplex stream instance, but must be changed before the 'end' event is +emitted.

+
+
+

Since

v0.9.4

+
+
+ +
destroyed: boolean
+

Is true after readable.destroy() has been called.

+
+
+

Since

v8.0.0

+
+
+ +
readable: boolean
+

Is true if it is safe to call readable.read(), which means +the stream has not been destroyed or emitted 'error' or 'end'.

+
+
+

Since

v11.4.0

+
+
+ +
readableAborted: boolean
+

Returns whether the stream was destroyed or errored before emitting 'end'.

+
+
+

Since

v16.8.0

+
+
+ +
readableDidRead: boolean
+

Returns whether 'data' has been emitted.

+
+
+

Since

v16.7.0

+
+
+ +
readableEncoding: null | BufferEncoding
+

Getter for the property encoding of a given Readable stream. The encodingproperty can be set using the readable.setEncoding() method.

+
+
+

Since

v12.7.0

+
+
+ +
readableEnded: boolean
+

Becomes true when 'end' event is emitted.

+
+
+

Since

v12.9.0

+
+
+ +
readableFlowing: null | boolean
+

This property reflects the current state of a Readable stream as described +in the Three states section.

+
+
+

Since

v9.4.0

+
+
+ +
readableHighWaterMark: number
+

Returns the value of highWaterMark passed when creating this Readable.

+
+
+

Since

v9.3.0

+
+
+ +
readableLength: number
+

This property contains the number of bytes (or objects) in the queue +ready to be read. The value provides introspection data regarding +the status of the highWaterMark.

+
+
+

Since

v9.4.0

+
+
+ +
readableObjectMode: boolean
+

Getter for the property objectMode of a given Readable stream.

+
+
+

Since

v12.3.0

+
+
+ +
topicId: string
+
+ +
writable: boolean
+
+ +
writableCorked: number
+
+ +
writableEnded: boolean
+
+ +
writableFinished: boolean
+
+ +
writableHighWaterMark: number
+
+ +
writableLength: number
+
+ +
writableObjectMode: boolean
+
+ +
captureRejectionSymbol: typeof captureRejectionSymbol
+
+ +
captureRejections: boolean
+

Sets or gets the default captureRejection value for all emitters.

+
+
+
+ +
defaultMaxListeners: number
+
+ +
errorMonitor: typeof errorMonitor
+

This symbol shall be used to install a listener for only monitoring 'error' +events. Listeners installed using this symbol are called before the regular +'error' listeners are called.

+

Installing a listener using this symbol does not change the behavior once an +'error' event is emitted, therefore the process will still crash if no +regular 'error' listener is installed.

+
+
+
+

Methods

+
+ +
    + +
  • +

    Returns AsyncIterableIterator<any>

+
+ +
    + +
  • +
    +

    Parameters

    +
      +
    • +
      callback: ((error?) => void)
      +
        +
      • +
          +
        • (error?): void
        • +
        • +
          +

          Parameters

          +
            +
          • +
            Optional error: null | Error
          +

          Returns void

    +

    Returns void

+
+ +
    + +
  • +
    +

    Parameters

    +
      +
    • +
      error: null | Error
    • +
    • +
      callback: ((error) => void)
      +
        +
      • +
          +
        • (error): void
        • +
        • +
          +

          Parameters

          +
            +
          • +
            error: null | Error
          +

          Returns void

    +

    Returns void

+
+ +
    + +
  • +
    +

    Parameters

    +
      +
    • +
      callback: ((error?) => void)
      +
        +
      • +
          +
        • (error?): void
        • +
        • +
          +

          Parameters

          +
            +
          • +
            Optional error: null | Error
          +

          Returns void

    +

    Returns void

+
+ +
    + +
  • +

    Returns void

+
+ +
    + +
  • +
    +

    Parameters

    +
      +
    • +
      chunks: {
          chunk: any;
          encoding: BufferEncoding;
      }[]
    • +
    • +
      callback: ((error?) => void)
      +
        +
      • +
          +
        • (error?): void
        • +
        • +
          +

          Parameters

          +
            +
          • +
            Optional error: null | Error
          +

          Returns void

    +

    Returns void

+
+ +
    + +
  • +

    Event emitter +The defined events on documents including:

    +
      +
    1. close
    2. +
    3. data
    4. +
    5. drain
    6. +
    7. end
    8. +
    9. error
    10. +
    11. finish
    12. +
    13. pause
    14. +
    15. pipe
    16. +
    17. readable
    18. +
    19. resume
    20. +
    21. unpipe
    22. +
    +
    +
    +

    Parameters

    +
      +
    • +
      event: "close"
    • +
    • +
      listener: (() => void)
      +
        +
      • +
          +
        • (): void
        • +
        • +

          Returns void

    +

    Returns ClientServerChannel

    +
  • + +
  • +
    +

    Parameters

    +
      +
    • +
      event: "data"
    • +
    • +
      listener: ((chunk) => void)
      +
        +
      • +
          +
        • (chunk): void
        • +
        • +
          +

          Parameters

          +
            +
          • +
            chunk: any
          +

          Returns void

    +

    Returns ClientServerChannel

  • + +
  • +
    +

    Parameters

    +
      +
    • +
      event: "drain"
    • +
    • +
      listener: (() => void)
      +
        +
      • +
          +
        • (): void
        • +
        • +

          Returns void

    +

    Returns ClientServerChannel

  • + +
  • +
    +

    Parameters

    +
      +
    • +
      event: "end"
    • +
    • +
      listener: (() => void)
      +
        +
      • +
          +
        • (): void
        • +
        • +

          Returns void

    +

    Returns ClientServerChannel

  • + +
  • +
    +

    Parameters

    +
      +
    • +
      event: "error"
    • +
    • +
      listener: ((err) => void)
      +
        +
      • +
          +
        • (err): void
        • +
        • +
          +

          Parameters

          +
            +
          • +
            err: Error
          +

          Returns void

    +

    Returns ClientServerChannel

  • + +
  • +
    +

    Parameters

    +
      +
    • +
      event: "finish"
    • +
    • +
      listener: (() => void)
      +
        +
      • +
          +
        • (): void
        • +
        • +

          Returns void

    +

    Returns ClientServerChannel

  • + +
  • +
    +

    Parameters

    +
      +
    • +
      event: "pause"
    • +
    • +
      listener: (() => void)
      +
        +
      • +
          +
        • (): void
        • +
        • +

          Returns void

    +

    Returns ClientServerChannel

  • + +
  • +
    +

    Parameters

    +
      +
    • +
      event: "pipe"
    • +
    • +
      listener: ((src) => void)
      +
        +
      • +
          +
        • (src): void
        • +
        • +
          +

          Parameters

          +
            +
          • +
            src: Readable
          +

          Returns void

    +

    Returns ClientServerChannel

  • + +
  • +
    +

    Parameters

    +
      +
    • +
      event: "readable"
    • +
    • +
      listener: (() => void)
      +
        +
      • +
          +
        • (): void
        • +
        • +

          Returns void

    +

    Returns ClientServerChannel

  • + +
  • +
    +

    Parameters

    +
      +
    • +
      event: "resume"
    • +
    • +
      listener: (() => void)
      +
        +
      • +
          +
        • (): void
        • +
        • +

          Returns void

    +

    Returns ClientServerChannel

  • + +
  • +
    +

    Parameters

    +
      +
    • +
      event: "unpipe"
    • +
    • +
      listener: ((src) => void)
      +
        +
      • +
          +
        • (src): void
        • +
        • +
          +

          Parameters

          +
            +
          • +
            src: Readable
          +

          Returns void

    +

    Returns ClientServerChannel

  • + +
  • +
    +

    Parameters

    +
      +
    • +
      event: string | symbol
    • +
    • +
      listener: ((...args) => void)
      +
        +
      • +
          +
        • (...args): void
        • +
        • +
          +

          Parameters

          +
            +
          • +
            Rest ...args: any[]
          +

          Returns void

    +

    Returns ClientServerChannel

+
+ +
    + +
  • +

    Returns void

+
+ +
    + +
  • +

    Destroy the stream. Optionally emit an 'error' event, and emit a 'close'event (unless emitClose is set to false). After this call, the readable +stream will release any internal resources and subsequent calls to push()will be ignored.

    +

    Once destroy() has been called any further calls will be a no-op and no +further errors except from _destroy() may be emitted as 'error'.

    +

    Implementors should not override this method, but instead implement readable._destroy().

    +
    +
    +

    Parameters

    +
      +
    • +
      Optional error: Error
      +

      Error which will be passed as payload in 'error' event

      +
      +
    +

    Returns ClientServerChannel

    +
    +

    Since

    v8.0.0

    +
+
+ +
    + +
  • +
    +

    Parameters

    +
      +
    • +
      Optional disposeReceived: boolean
    +

    Returns void

+
+ +
    + +
  • +
    +

    Parameters

    +
      +
    • +
      event: "close"
    +

    Returns boolean

  • + +
  • +
    +

    Parameters

    +
      +
    • +
      event: "data"
    • +
    • +
      chunk: any
    +

    Returns boolean

  • + +
  • +
    +

    Parameters

    +
      +
    • +
      event: "drain"
    +

    Returns boolean

  • + +
  • +
    +

    Parameters

    +
      +
    • +
      event: "end"
    +

    Returns boolean

  • + +
  • +
    +

    Parameters

    +
      +
    • +
      event: "error"
    • +
    • +
      err: Error
    +

    Returns boolean

  • + +
  • +
    +

    Parameters

    +
      +
    • +
      event: "finish"
    +

    Returns boolean

  • + +
  • +
    +

    Parameters

    +
      +
    • +
      event: "pause"
    +

    Returns boolean

  • + +
  • +
    +

    Parameters

    +
      +
    • +
      event: "pipe"
    • +
    • +
      src: Readable
    +

    Returns boolean

  • + +
  • +
    +

    Parameters

    +
      +
    • +
      event: "readable"
    +

    Returns boolean

  • + +
  • +
    +

    Parameters

    +
      +
    • +
      event: "resume"
    +

    Returns boolean

  • + +
  • +
    +

    Parameters

    +
      +
    • +
      event: "unpipe"
    • +
    • +
      src: Readable
    +

    Returns boolean

  • + +
  • +
    +

    Parameters

    +
      +
    • +
      event: string | symbol
    • +
    • +
      Rest ...args: any[]
    +

    Returns boolean

+
+ +
    + +
  • +
    +

    Parameters

    +
      +
    • +
      Optional cb: (() => void)
      +
        +
      • +
          +
        • (): void
        • +
        • +

          Returns void

    +

    Returns ClientServerChannel

  • + +
  • +
    +

    Parameters

    +
      +
    • +
      chunk: any
    • +
    • +
      Optional cb: (() => void)
      +
        +
      • +
          +
        • (): void
        • +
        • +

          Returns void

    +

    Returns ClientServerChannel

  • + +
  • +
    +

    Parameters

    +
      +
    • +
      chunk: any
    • +
    • +
      Optional encoding: BufferEncoding
    • +
    • +
      Optional cb: (() => void)
      +
        +
      • +
          +
        • (): void
        • +
        • +

          Returns void

    +

    Returns ClientServerChannel

+
+ +
    + +
  • +

    Returns an array listing the events for which the emitter has registered +listeners. The values in the array are strings or Symbols.

    +
    const EventEmitter = require('events');
    const myEE = new EventEmitter();
    myEE.on('foo', () => {});
    myEE.on('bar', () => {});

    const sym = Symbol('symbol');
    myEE.on(sym, () => {});

    console.log(myEE.eventNames());
    // Prints: [ 'foo', 'bar', Symbol(symbol) ] +
    +
    +

    Returns (string | symbol)[]

    +
    +

    Since

    v6.0.0

    +
+
+ +
    + +
  • +

    Returns the current max listener value for the EventEmitter which is either +set by emitter.setMaxListeners(n) or defaults to defaultMaxListeners.

    +
    +

    Returns number

    +
    +

    Since

    v1.0.0

    +
+
+ +
    + +
  • +

    The readable.isPaused() method returns the current operating state of theReadable. This is used primarily by the mechanism that underlies thereadable.pipe() method. In most +typical cases, there will be no reason to +use this method directly.

    +
    const readable = new stream.Readable();

    readable.isPaused(); // === false
    readable.pause();
    readable.isPaused(); // === true
    readable.resume();
    readable.isPaused(); // === false +
    +
    +

    Returns boolean

    +
    +

    Since

    v0.11.14

    +
+
+ +
    + +
  • +

    Returns the number of listeners listening to the event named eventName.

    +
    +
    +

    Parameters

    +
      +
    • +
      eventName: string | symbol
      +

      The name of the event being listened for

      +
      +
    +

    Returns number

    +
    +

    Since

    v3.2.0

    +
+
+ +
    + +
  • +

    Returns a copy of the array of listeners for the event named eventName.

    +
    server.on('connection', (stream) => {
    console.log('someone connected!');
    });
    console.log(util.inspect(server.listeners('connection')));
    // Prints: [ [Function] ] +
    +
    +
    +

    Parameters

    +
      +
    • +
      eventName: string | symbol
    +

    Returns Function[]

    +
    +

    Since

    v0.1.26

    +
+
+ +
    + +
  • +

    Alias for emitter.removeListener().

    +
    +
    +

    Parameters

    +
      +
    • +
      eventName: string | symbol
    • +
    • +
      listener: ((...args) => void)
      +
        +
      • +
          +
        • (...args): void
        • +
        • +
          +

          Parameters

          +
            +
          • +
            Rest ...args: any[]
          +

          Returns void

    +

    Returns ClientServerChannel

    +
    +

    Since

    v10.0.0

    +
+
+ +
    + +
  • +
    +

    Parameters

    +
      +
    • +
      event: "close"
    • +
    • +
      listener: (() => void)
      +
        +
      • +
          +
        • (): void
        • +
        • +

          Returns void

    +

    Returns ClientServerChannel

  • + +
  • +
    +

    Parameters

    +
      +
    • +
      event: "data"
    • +
    • +
      listener: ((chunk) => void)
      +
        +
      • +
          +
        • (chunk): void
        • +
        • +
          +

          Parameters

          +
            +
          • +
            chunk: any
          +

          Returns void

    +

    Returns ClientServerChannel

  • + +
  • +
    +

    Parameters

    +
      +
    • +
      event: "drain"
    • +
    • +
      listener: (() => void)
      +
        +
      • +
          +
        • (): void
        • +
        • +

          Returns void

    +

    Returns ClientServerChannel

  • + +
  • +
    +

    Parameters

    +
      +
    • +
      event: "end"
    • +
    • +
      listener: (() => void)
      +
        +
      • +
          +
        • (): void
        • +
        • +

          Returns void

    +

    Returns ClientServerChannel

  • + +
  • +
    +

    Parameters

    +
      +
    • +
      event: "error"
    • +
    • +
      listener: ((err) => void)
      +
        +
      • +
          +
        • (err): void
        • +
        • +
          +

          Parameters

          +
            +
          • +
            err: Error
          +

          Returns void

    +

    Returns ClientServerChannel

  • + +
  • +
    +

    Parameters

    +
      +
    • +
      event: "finish"
    • +
    • +
      listener: (() => void)
      +
        +
      • +
          +
        • (): void
        • +
        • +

          Returns void

    +

    Returns ClientServerChannel

  • + +
  • +
    +

    Parameters

    +
      +
    • +
      event: "pause"
    • +
    • +
      listener: (() => void)
      +
        +
      • +
          +
        • (): void
        • +
        • +

          Returns void

    +

    Returns ClientServerChannel

  • + +
  • +
    +

    Parameters

    +
      +
    • +
      event: "pipe"
    • +
    • +
      listener: ((src) => void)
      +
        +
      • +
          +
        • (src): void
        • +
        • +
          +

          Parameters

          +
            +
          • +
            src: Readable
          +

          Returns void

    +

    Returns ClientServerChannel

  • + +
  • +
    +

    Parameters

    +
      +
    • +
      event: "readable"
    • +
    • +
      listener: (() => void)
      +
        +
      • +
          +
        • (): void
        • +
        • +

          Returns void

    +

    Returns ClientServerChannel

  • + +
  • +
    +

    Parameters

    +
      +
    • +
      event: "resume"
    • +
    • +
      listener: (() => void)
      +
        +
      • +
          +
        • (): void
        • +
        • +

          Returns void

    +

    Returns ClientServerChannel

  • + +
  • +
    +

    Parameters

    +
      +
    • +
      event: "unpipe"
    • +
    • +
      listener: ((src) => void)
      +
        +
      • +
          +
        • (src): void
        • +
        • +
          +

          Parameters

          +
            +
          • +
            src: Readable
          +

          Returns void

    +

    Returns ClientServerChannel

  • + +
  • +
    +

    Parameters

    +
      +
    • +
      event: string | symbol
    • +
    • +
      listener: ((...args) => void)
      +
        +
      • +
          +
        • (...args): void
        • +
        • +
          +

          Parameters

          +
            +
          • +
            Rest ...args: any[]
          +

          Returns void

    +

    Returns ClientServerChannel

+
+ +
    + +
  • +
    +

    Type Parameters

    +
      +
    • +

      T

    • +
    • +

      R

    +
    +

    Parameters

    +
      +
    • +
      cb: ((request) => MaybePromise<R>)
      +
        +
      • +
          +
        • (request): MaybePromise<R>
        • +
        • +
          +

          Parameters

          +
            +
          • +
            request: T
          +

          Returns MaybePromise<R>

    +

    Returns void

  • + +
  • +
    +

    Type Parameters

    +
      +
    • +

      T

    • +
    • +

      R

    +
    +

    Parameters

    +
      +
    • +
      actionName: string
    • +
    • +
      cb: ((request) => MaybePromise<R>)
      +
        +
      • +
          +
        • (request): MaybePromise<R>
        • +
        • +
          +

          Parameters

          +
            +
          • +
            request: T
          +

          Returns MaybePromise<R>

    +

    Returns void

+
+ +
    + +
  • +
    +

    Parameters

    +
      +
    • +
      event: "close"
    • +
    • +
      listener: (() => void)
      +
        +
      • +
          +
        • (): void
        • +
        • +

          Returns void

    +

    Returns ClientServerChannel

  • + +
  • +
    +

    Parameters

    +
      +
    • +
      event: "data"
    • +
    • +
      listener: ((chunk) => void)
      +
        +
      • +
          +
        • (chunk): void
        • +
        • +
          +

          Parameters

          +
            +
          • +
            chunk: any
          +

          Returns void

    +

    Returns ClientServerChannel

  • + +
  • +
    +

    Parameters

    +
      +
    • +
      event: "drain"
    • +
    • +
      listener: (() => void)
      +
        +
      • +
          +
        • (): void
        • +
        • +

          Returns void

    +

    Returns ClientServerChannel

  • + +
  • +
    +

    Parameters

    +
      +
    • +
      event: "end"
    • +
    • +
      listener: (() => void)
      +
        +
      • +
          +
        • (): void
        • +
        • +

          Returns void

    +

    Returns ClientServerChannel

  • + +
  • +
    +

    Parameters

    +
      +
    • +
      event: "error"
    • +
    • +
      listener: ((err) => void)
      +
        +
      • +
          +
        • (err): void
        • +
        • +
          +

          Parameters

          +
            +
          • +
            err: Error
          +

          Returns void

    +

    Returns ClientServerChannel

  • + +
  • +
    +

    Parameters

    +
      +
    • +
      event: "finish"
    • +
    • +
      listener: (() => void)
      +
        +
      • +
          +
        • (): void
        • +
        • +

          Returns void

    +

    Returns ClientServerChannel

  • + +
  • +
    +

    Parameters

    +
      +
    • +
      event: "pause"
    • +
    • +
      listener: (() => void)
      +
        +
      • +
          +
        • (): void
        • +
        • +

          Returns void

    +

    Returns ClientServerChannel

  • + +
  • +
    +

    Parameters

    +
      +
    • +
      event: "pipe"
    • +
    • +
      listener: ((src) => void)
      +
        +
      • +
          +
        • (src): void
        • +
        • +
          +

          Parameters

          +
            +
          • +
            src: Readable
          +

          Returns void

    +

    Returns ClientServerChannel

  • + +
  • +
    +

    Parameters

    +
      +
    • +
      event: "readable"
    • +
    • +
      listener: (() => void)
      +
        +
      • +
          +
        • (): void
        • +
        • +

          Returns void

    +

    Returns ClientServerChannel

  • + +
  • +
    +

    Parameters

    +
      +
    • +
      event: "resume"
    • +
    • +
      listener: (() => void)
      +
        +
      • +
          +
        • (): void
        • +
        • +

          Returns void

    +

    Returns ClientServerChannel

  • + +
  • +
    +

    Parameters

    +
      +
    • +
      event: "unpipe"
    • +
    • +
      listener: ((src) => void)
      +
        +
      • +
          +
        • (src): void
        • +
        • +
          +

          Parameters

          +
            +
          • +
            src: Readable
          +

          Returns void

    +

    Returns ClientServerChannel

  • + +
  • +
    +

    Parameters

    +
      +
    • +
      event: string | symbol
    • +
    • +
      listener: ((...args) => void)
      +
        +
      • +
          +
        • (...args): void
        • +
        • +
          +

          Parameters

          +
            +
          • +
            Rest ...args: any[]
          +

          Returns void

    +

    Returns ClientServerChannel

+
+ +
    + +
  • +

    The readable.pause() method will cause a stream in flowing mode to stop +emitting 'data' events, switching out of flowing mode. Any data that +becomes available will remain in the internal buffer.

    +
    const readable = getReadableStreamSomehow();
    readable.on('data', (chunk) => {
    console.log(`Received ${chunk.length} bytes of data.`);
    readable.pause();
    console.log('There will be no additional data for 1 second.');
    setTimeout(() => {
    console.log('Now data will start flowing again.');
    readable.resume();
    }, 1000);
    }); +
    +

    The readable.pause() method has no effect if there is a 'readable'event listener.

    +
    +

    Returns ClientServerChannel

    +
    +

    Since

    v0.9.4

    +
+
+ +
    + +
  • +
    +

    Type Parameters

    +
      +
    • +

      T extends WritableStream<T>

    +
    +

    Parameters

    +
      +
    • +
      destination: T
    • +
    • +
      Optional options: {
          end?: boolean;
      }
      +
        +
      • +
        Optional end?: boolean
    +

    Returns T

+
+ +
    + +
  • +
    +

    Parameters

    +
      +
    • +
      event: "close"
    • +
    • +
      listener: (() => void)
      +
        +
      • +
          +
        • (): void
        • +
        • +

          Returns void

    +

    Returns ClientServerChannel

  • + +
  • +
    +

    Parameters

    +
      +
    • +
      event: "data"
    • +
    • +
      listener: ((chunk) => void)
      +
        +
      • +
          +
        • (chunk): void
        • +
        • +
          +

          Parameters

          +
            +
          • +
            chunk: any
          +

          Returns void

    +

    Returns ClientServerChannel

  • + +
  • +
    +

    Parameters

    +
      +
    • +
      event: "drain"
    • +
    • +
      listener: (() => void)
      +
        +
      • +
          +
        • (): void
        • +
        • +

          Returns void

    +

    Returns ClientServerChannel

  • + +
  • +
    +

    Parameters

    +
      +
    • +
      event: "end"
    • +
    • +
      listener: (() => void)
      +
        +
      • +
          +
        • (): void
        • +
        • +

          Returns void

    +

    Returns ClientServerChannel

  • + +
  • +
    +

    Parameters

    +
      +
    • +
      event: "error"
    • +
    • +
      listener: ((err) => void)
      +
        +
      • +
          +
        • (err): void
        • +
        • +
          +

          Parameters

          +
            +
          • +
            err: Error
          +

          Returns void

    +

    Returns ClientServerChannel

  • + +
  • +
    +

    Parameters

    +
      +
    • +
      event: "finish"
    • +
    • +
      listener: (() => void)
      +
        +
      • +
          +
        • (): void
        • +
        • +

          Returns void

    +

    Returns ClientServerChannel

  • + +
  • +
    +

    Parameters

    +
      +
    • +
      event: "pause"
    • +
    • +
      listener: (() => void)
      +
        +
      • +
          +
        • (): void
        • +
        • +

          Returns void

    +

    Returns ClientServerChannel

  • + +
  • +
    +

    Parameters

    +
      +
    • +
      event: "pipe"
    • +
    • +
      listener: ((src) => void)
      +
        +
      • +
          +
        • (src): void
        • +
        • +
          +

          Parameters

          +
            +
          • +
            src: Readable
          +

          Returns void

    +

    Returns ClientServerChannel

  • + +
  • +
    +

    Parameters

    +
      +
    • +
      event: "readable"
    • +
    • +
      listener: (() => void)
      +
        +
      • +
          +
        • (): void
        • +
        • +

          Returns void

    +

    Returns ClientServerChannel

  • + +
  • +
    +

    Parameters

    +
      +
    • +
      event: "resume"
    • +
    • +
      listener: (() => void)
      +
        +
      • +
          +
        • (): void
        • +
        • +

          Returns void

    +

    Returns ClientServerChannel

  • + +
  • +
    +

    Parameters

    +
      +
    • +
      event: "unpipe"
    • +
    • +
      listener: ((src) => void)
      +
        +
      • +
          +
        • (src): void
        • +
        • +
          +

          Parameters

          +
            +
          • +
            src: Readable
          +

          Returns void

    +

    Returns ClientServerChannel

  • + +
  • +
    +

    Parameters

    +
      +
    • +
      event: string | symbol
    • +
    • +
      listener: ((...args) => void)
      +
        +
      • +
          +
        • (...args): void
        • +
        • +
          +

          Parameters

          +
            +
          • +
            Rest ...args: any[]
          +

          Returns void

    +

    Returns ClientServerChannel

+
+ +
    + +
  • +
    +

    Parameters

    +
      +
    • +
      event: "close"
    • +
    • +
      listener: (() => void)
      +
        +
      • +
          +
        • (): void
        • +
        • +

          Returns void

    +

    Returns ClientServerChannel

  • + +
  • +
    +

    Parameters

    +
      +
    • +
      event: "data"
    • +
    • +
      listener: ((chunk) => void)
      +
        +
      • +
          +
        • (chunk): void
        • +
        • +
          +

          Parameters

          +
            +
          • +
            chunk: any
          +

          Returns void

    +

    Returns ClientServerChannel

  • + +
  • +
    +

    Parameters

    +
      +
    • +
      event: "drain"
    • +
    • +
      listener: (() => void)
      +
        +
      • +
          +
        • (): void
        • +
        • +

          Returns void

    +

    Returns ClientServerChannel

  • + +
  • +
    +

    Parameters

    +
      +
    • +
      event: "end"
    • +
    • +
      listener: (() => void)
      +
        +
      • +
          +
        • (): void
        • +
        • +

          Returns void

    +

    Returns ClientServerChannel

  • + +
  • +
    +

    Parameters

    +
      +
    • +
      event: "error"
    • +
    • +
      listener: ((err) => void)
      +
        +
      • +
          +
        • (err): void
        • +
        • +
          +

          Parameters

          +
            +
          • +
            err: Error
          +

          Returns void

    +

    Returns ClientServerChannel

  • + +
  • +
    +

    Parameters

    +
      +
    • +
      event: "finish"
    • +
    • +
      listener: (() => void)
      +
        +
      • +
          +
        • (): void
        • +
        • +

          Returns void

    +

    Returns ClientServerChannel

  • + +
  • +
    +

    Parameters

    +
      +
    • +
      event: "pause"
    • +
    • +
      listener: (() => void)
      +
        +
      • +
          +
        • (): void
        • +
        • +

          Returns void

    +

    Returns ClientServerChannel

  • + +
  • +
    +

    Parameters

    +
      +
    • +
      event: "pipe"
    • +
    • +
      listener: ((src) => void)
      +
        +
      • +
          +
        • (src): void
        • +
        • +
          +

          Parameters

          +
            +
          • +
            src: Readable
          +

          Returns void

    +

    Returns ClientServerChannel

  • + +
  • +
    +

    Parameters

    +
      +
    • +
      event: "readable"
    • +
    • +
      listener: (() => void)
      +
        +
      • +
          +
        • (): void
        • +
        • +

          Returns void

    +

    Returns ClientServerChannel

  • + +
  • +
    +

    Parameters

    +
      +
    • +
      event: "resume"
    • +
    • +
      listener: (() => void)
      +
        +
      • +
          +
        • (): void
        • +
        • +

          Returns void

    +

    Returns ClientServerChannel

  • + +
  • +
    +

    Parameters

    +
      +
    • +
      event: "unpipe"
    • +
    • +
      listener: ((src) => void)
      +
        +
      • +
          +
        • (src): void
        • +
        • +
          +

          Parameters

          +
            +
          • +
            src: Readable
          +

          Returns void

    +

    Returns ClientServerChannel

  • + +
  • +
    +

    Parameters

    +
      +
    • +
      event: string | symbol
    • +
    • +
      listener: ((...args) => void)
      +
        +
      • +
          +
        • (...args): void
        • +
        • +
          +

          Parameters

          +
            +
          • +
            Rest ...args: any[]
          +

          Returns void

    +

    Returns ClientServerChannel

+
+ +
    + +
  • +
    +

    Parameters

    +
      +
    • +
      chunk: any
    • +
    • +
      Optional encoding: BufferEncoding
    +

    Returns boolean

+
+ +
    + +
  • +

    Returns a copy of the array of listeners for the event named eventName, +including any wrappers (such as those created by .once()).

    +
    const emitter = new EventEmitter();
    emitter.once('log', () => console.log('log once'));

    // Returns a new Array with a function `onceWrapper` which has a property
    // `listener` which contains the original listener bound above
    const listeners = emitter.rawListeners('log');
    const logFnWrapper = listeners[0];

    // Logs "log once" to the console and does not unbind the `once` event
    logFnWrapper.listener();

    // Logs "log once" to the console and removes the listener
    logFnWrapper();

    emitter.on('log', () => console.log('log persistently'));
    // Will return a new Array with a single function bound by `.on()` above
    const newListeners = emitter.rawListeners('log');

    // Logs "log persistently" twice
    newListeners[0]();
    emitter.emit('log'); +
    +
    +
    +

    Parameters

    +
      +
    • +
      eventName: string | symbol
    +

    Returns Function[]

    +
    +

    Since

    v9.4.0

    +
+
+ +
    + +
  • +

    The readable.read() method pulls some data out of the internal buffer and +returns it. If no data available to be read, null is returned. By default, +the data will be returned as a Buffer object unless an encoding has been +specified using the readable.setEncoding() method or the stream is operating +in object mode.

    +

    The optional size argument specifies a specific number of bytes to read. Ifsize bytes are not available to be read, null will be returned _unless_the stream has ended, in which +case all of the data remaining in the internal +buffer will be returned.

    +

    If the size argument is not specified, all of the data contained in the +internal buffer will be returned.

    +

    The size argument must be less than or equal to 1 GiB.

    +

    The readable.read() method should only be called on Readable streams +operating in paused mode. In flowing mode, readable.read() is called +automatically until the internal buffer is fully drained.

    +
    const readable = getReadableStreamSomehow();

    // 'readable' may be triggered multiple times as data is buffered in
    readable.on('readable', () => {
    let chunk;
    console.log('Stream is readable (new data received in buffer)');
    // Use a loop to make sure we read all currently available data
    while (null !== (chunk = readable.read())) {
    console.log(`Read ${chunk.length} bytes of data...`);
    }
    });

    // 'end' will be triggered once when there is no more data available
    readable.on('end', () => {
    console.log('Reached end of stream.');
    }); +
    +

    Each call to readable.read() returns a chunk of data, or null. The chunks +are not concatenated. A while loop is necessary to consume all data +currently in the buffer. When reading a large file .read() may return null, +having consumed all buffered content so far, but there is still more data to +come not yet buffered. In this case a new 'readable' event will be emitted +when there is more data in the buffer. Finally the 'end' event will be +emitted when there is no more data to come.

    +

    Therefore to read a file's whole contents from a readable, it is necessary +to collect chunks across multiple 'readable' events:

    +
    const chunks = [];

    readable.on('readable', () => {
    let chunk;
    while (null !== (chunk = readable.read())) {
    chunks.push(chunk);
    }
    });

    readable.on('end', () => {
    const content = chunks.join('');
    }); +
    +

    A Readable stream in object mode will always return a single item from +a call to readable.read(size), regardless of the value of thesize argument.

    +

    If the readable.read() method returns a chunk of data, a 'data' event will +also be emitted.

    +

    Calling read after the 'end' event has +been emitted will return null. No runtime error will be raised.

    +
    +
    +

    Parameters

    +
      +
    • +
      Optional size: number
      +

      Optional argument to specify how much data to read.

      +
      +
    +

    Returns any

    +
    +

    Since

    v0.9.4

    +
+
+ +
    + +
  • +

    Removes all listeners, or those of the specified eventName.

    +

    It is bad practice to remove listeners added elsewhere in the code, +particularly when the EventEmitter instance was created by some other +component or module (e.g. sockets or file streams).

    +

    Returns a reference to the EventEmitter, so that calls can be chained.

    +
    +
    +

    Parameters

    +
      +
    • +
      Optional event: string | symbol
    +

    Returns ClientServerChannel

    +
    +

    Since

    v0.1.26

    +
+
+ +
    + +
  • +
    +

    Parameters

    +
      +
    • +
      event: "close"
    • +
    • +
      listener: (() => void)
      +
        +
      • +
          +
        • (): void
        • +
        • +

          Returns void

    +

    Returns ClientServerChannel

  • + +
  • +
    +

    Parameters

    +
      +
    • +
      event: "data"
    • +
    • +
      listener: ((chunk) => void)
      +
        +
      • +
          +
        • (chunk): void
        • +
        • +
          +

          Parameters

          +
            +
          • +
            chunk: any
          +

          Returns void

    +

    Returns ClientServerChannel

  • + +
  • +
    +

    Parameters

    +
      +
    • +
      event: "drain"
    • +
    • +
      listener: (() => void)
      +
        +
      • +
          +
        • (): void
        • +
        • +

          Returns void

    +

    Returns ClientServerChannel

  • + +
  • +
    +

    Parameters

    +
      +
    • +
      event: "end"
    • +
    • +
      listener: (() => void)
      +
        +
      • +
          +
        • (): void
        • +
        • +

          Returns void

    +

    Returns ClientServerChannel

  • + +
  • +
    +

    Parameters

    +
      +
    • +
      event: "error"
    • +
    • +
      listener: ((err) => void)
      +
        +
      • +
          +
        • (err): void
        • +
        • +
          +

          Parameters

          +
            +
          • +
            err: Error
          +

          Returns void

    +

    Returns ClientServerChannel

  • + +
  • +
    +

    Parameters

    +
      +
    • +
      event: "finish"
    • +
    • +
      listener: (() => void)
      +
        +
      • +
          +
        • (): void
        • +
        • +

          Returns void

    +

    Returns ClientServerChannel

  • + +
  • +
    +

    Parameters

    +
      +
    • +
      event: "pause"
    • +
    • +
      listener: (() => void)
      +
        +
      • +
          +
        • (): void
        • +
        • +

          Returns void

    +

    Returns ClientServerChannel

  • + +
  • +
    +

    Parameters

    +
      +
    • +
      event: "pipe"
    • +
    • +
      listener: ((src) => void)
      +
        +
      • +
          +
        • (src): void
        • +
        • +
          +

          Parameters

          +
            +
          • +
            src: Readable
          +

          Returns void

    +

    Returns ClientServerChannel

  • + +
  • +
    +

    Parameters

    +
      +
    • +
      event: "readable"
    • +
    • +
      listener: (() => void)
      +
        +
      • +
          +
        • (): void
        • +
        • +

          Returns void

    +

    Returns ClientServerChannel

  • + +
  • +
    +

    Parameters

    +
      +
    • +
      event: "resume"
    • +
    • +
      listener: (() => void)
      +
        +
      • +
          +
        • (): void
        • +
        • +

          Returns void

    +

    Returns ClientServerChannel

  • + +
  • +
    +

    Parameters

    +
      +
    • +
      event: "unpipe"
    • +
    • +
      listener: ((src) => void)
      +
        +
      • +
          +
        • (src): void
        • +
        • +
          +

          Parameters

          +
            +
          • +
            src: Readable
          +

          Returns void

    +

    Returns ClientServerChannel

  • + +
  • +
    +

    Parameters

    +
      +
    • +
      event: string | symbol
    • +
    • +
      listener: ((...args) => void)
      +
        +
      • +
          +
        • (...args): void
        • +
        • +
          +

          Parameters

          +
            +
          • +
            Rest ...args: any[]
          +

          Returns void

    +

    Returns ClientServerChannel

+
+ +
    + +
  • +
    +

    Type Parameters

    +
      +
    • +

      T extends {}

    • +
    • +

      R

    +
    +

    Parameters

    +
      +
    • +
      data: T
    +

    Returns Promise<R>

  • + +
  • +
    +

    Type Parameters

    +
      +
    • +

      T extends {}

    • +
    • +

      R

    +
    +

    Parameters

    +
      +
    • +
      action: string
    • +
    • +
      data: T
    +

    Returns Promise<R>

+
+ +
    + +
  • +

    The readable.resume() method causes an explicitly paused Readable stream to +resume emitting 'data' events, switching the stream into flowing mode.

    +

    The readable.resume() method can be used to fully consume the data from a +stream without actually processing any of that data:

    +
    getReadableStreamSomehow()
    .resume()
    .on('end', () => {
    console.log('Reached the end, but did not read anything.');
    }); +
    +

    The readable.resume() method has no effect if there is a 'readable'event listener.

    +
    +

    Returns ClientServerChannel

    +
    +

    Since

    v0.9.4

    +
+
+ +
    + +
  • +
    +

    Parameters

    +
      +
    • +
      encoding: BufferEncoding
    +

    Returns ClientServerChannel

+
+ +
    + +
  • +

    The readable.setEncoding() method sets the character encoding for +data read from the Readable stream.

    +

    By default, no encoding is assigned and stream data will be returned asBuffer objects. Setting an encoding causes the stream data +to be returned as strings of the specified encoding rather than as Bufferobjects. For instance, calling readable.setEncoding('utf8') will cause the +output data to be interpreted as UTF-8 data, and passed as strings. Callingreadable.setEncoding('hex') will cause the data to be encoded in hexadecimal +string format.

    +

    The Readable stream will properly handle multi-byte characters delivered +through the stream that would otherwise become improperly decoded if simply +pulled from the stream as Buffer objects.

    +
    const readable = getReadableStreamSomehow();
    readable.setEncoding('utf8');
    readable.on('data', (chunk) => {
    assert.equal(typeof chunk, 'string');
    console.log('Got %d characters of string data:', chunk.length);
    }); +
    +
    +
    +

    Parameters

    +
      +
    • +
      encoding: BufferEncoding
      +

      The encoding to use.

      +
      +
    +

    Returns ClientServerChannel

    +
    +

    Since

    v0.9.4

    +
+
+ +
    + +
  • +

    By default EventEmitters will print a warning if more than 10 listeners are +added for a particular event. This is a useful default that helps finding +memory leaks. The emitter.setMaxListeners() method allows the limit to be +modified for this specific EventEmitter instance. The value can be set toInfinity (or 0) to indicate an unlimited number of listeners.

    +

    Returns a reference to the EventEmitter, so that calls can be chained.

    +
    +
    +

    Parameters

    +
      +
    • +
      n: number
    +

    Returns ClientServerChannel

    +
    +

    Since

    v0.3.5

    +
+
+ +
    + +
  • +

    Returns void

+
+ +
    + +
  • +

    The readable.unpipe() method detaches a Writable stream previously attached +using the pipe method.

    +

    If the destination is not specified, then all pipes are detached.

    +

    If the destination is specified, but no pipe is set up for it, then +the method does nothing.

    +
    const fs = require('fs');
    const readable = getReadableStreamSomehow();
    const writable = fs.createWriteStream('file.txt');
    // All the data from readable goes into 'file.txt',
    // but only for the first second.
    readable.pipe(writable);
    setTimeout(() => {
    console.log('Stop writing to file.txt.');
    readable.unpipe(writable);
    console.log('Manually close the file stream.');
    writable.end();
    }, 1000); +
    +
    +
    +

    Parameters

    +
      +
    • +
      Optional destination: WritableStream
      +

      Optional specific stream to unpipe

      +
      +
    +

    Returns ClientServerChannel

    +
    +

    Since

    v0.9.4

    +
+
+ +
    + +
  • +

    Passing chunk as null signals the end of the stream (EOF) and behaves the +same as readable.push(null), after which no more data can be written. The EOF +signal is put at the end of the buffer and any buffered data will still be +flushed.

    +

    The readable.unshift() method pushes a chunk of data back into the internal +buffer. This is useful in certain situations where a stream is being consumed by +code that needs to "un-consume" some amount of data that it has optimistically +pulled out of the source, so that the data can be passed on to some other party.

    +

    The stream.unshift(chunk) method cannot be called after the 'end' event +has been emitted or a runtime error will be thrown.

    +

    Developers using stream.unshift() often should consider switching to +use of a Transform stream instead. See the API for stream implementers section for more information.

    +
    // Pull off a header delimited by \n\n.
    // Use unshift() if we get too much.
    // Call the callback with (error, header, stream).
    const { StringDecoder } = require('string_decoder');
    function parseHeader(stream, callback) {
    stream.on('error', callback);
    stream.on('readable', onReadable);
    const decoder = new StringDecoder('utf8');
    let header = '';
    function onReadable() {
    let chunk;
    while (null !== (chunk = stream.read())) {
    const str = decoder.write(chunk);
    if (str.match(/\n\n/)) {
    // Found the header boundary.
    const split = str.split(/\n\n/);
    header += split.shift();
    const remaining = split.join('\n\n');
    const buf = Buffer.from(remaining, 'utf8');
    stream.removeListener('error', callback);
    // Remove the 'readable' listener before unshifting.
    stream.removeListener('readable', onReadable);
    if (buf.length)
    stream.unshift(buf);
    // Now the body of the message can be read from the stream.
    callback(null, header, stream);
    } else {
    // Still reading the header.
    header += str;
    }
    }
    }
    } +
    +

    Unlike push, stream.unshift(chunk) will not +end the reading process by resetting the internal reading state of the stream. +This can cause unexpected results if readable.unshift() is called during a +read (i.e. from within a _read implementation on a +custom stream). Following the call to readable.unshift() with an immediate push will reset the reading state appropriately, +however it is best to simply avoid calling readable.unshift() while in the +process of performing a read.

    +
    +
    +

    Parameters

    +
      +
    • +
      chunk: any
      +

      Chunk of data to unshift onto the read queue. For streams not operating in object mode, chunk must be a string, Buffer, Uint8Array or null. For object mode +streams, chunk may be any JavaScript value.

      +
      +
    • +
    • +
      Optional encoding: BufferEncoding
      +

      Encoding of string chunks. Must be a valid Buffer encoding, such as 'utf8' or 'ascii'.

      +
      +
    +

    Returns void

    +
    +

    Since

    v0.9.11

    +
+
+ +
    + +
  • +

    Prior to Node.js 0.10, streams did not implement the entire stream module API +as it is currently defined. (See Compatibility for more information.)

    +

    When using an older Node.js library that emits 'data' events and has a pause method that is advisory only, thereadable.wrap() method can be used to create a Readable +stream that uses +the old stream as its data source.

    +

    It will rarely be necessary to use readable.wrap() but the method has been +provided as a convenience for interacting with older Node.js applications and +libraries.

    +
    const { OldReader } = require('./old-api-module.js');
    const { Readable } = require('stream');
    const oreader = new OldReader();
    const myReader = new Readable().wrap(oreader);

    myReader.on('readable', () => {
    myReader.read(); // etc.
    }); +
    +
    +
    +

    Parameters

    +
      +
    • +
      stream: ReadableStream
      +

      An "old style" readable stream

      +
      +
    +

    Returns ClientServerChannel

    +
    +

    Since

    v0.9.4

    +
+
+ +
    + +
  • +
    +

    Parameters

    +
      +
    • +
      chunk: any
    • +
    • +
      Optional encoding: BufferEncoding
    • +
    • +
      Optional cb: ((error) => void)
      +
        +
      • +
          +
        • (error): void
        • +
        • +
          +

          Parameters

          +
            +
          • +
            error: undefined | null | Error
          +

          Returns void

    +

    Returns boolean

  • + +
  • +
    +

    Parameters

    +
      +
    • +
      chunk: any
    • +
    • +
      Optional cb: ((error) => void)
      +
        +
      • +
          +
        • (error): void
        • +
        • +
          +

          Parameters

          +
            +
          • +
            error: undefined | null | Error
          +

          Returns void

    +

    Returns boolean

+
+ +
    + +
  • +

    A utility method for creating duplex streams.

    +
      +
    • Stream converts writable stream into writable Duplex and readable stream +to Duplex.
    • +
    • Blob converts into readable Duplex.
    • +
    • string converts into readable Duplex.
    • +
    • ArrayBuffer converts into readable Duplex.
    • +
    • AsyncIterable converts into a readable Duplex. Cannot yield null.
    • +
    • AsyncGeneratorFunction converts into a readable/writable transform +Duplex. Must take a source AsyncIterable as first parameter. Cannot yield +null.
    • +
    • AsyncFunction converts into a writable Duplex. Must return +either null or undefined
    • +
    • Object ({ writable, readable }) converts readable and +writable into Stream and then combines them into Duplex where the +Duplex will write to the writable and read from the readable.
    • +
    • Promise converts into readable Duplex. Value null is ignored.
    • +
    +
    +
    +

    Parameters

    +
      +
    • +
      src: string | Object | Stream | Blob | ArrayBuffer | Iterable<any> | AsyncIterable<any> | AsyncGeneratorFunction | Promise<any>
    +

    Returns Duplex

    +
    +

    Since

    v16.8.0

    +
+
+ +
    + +
  • +

    Returns a copy of the array of listeners for the event named eventName.

    +

    For EventEmitters this behaves exactly the same as calling .listeners on +the emitter.

    +

    For EventTargets this is the only way to get the event listeners for the +event target. This is useful for debugging and diagnostic purposes.

    +
    const { getEventListeners, EventEmitter } = require('events');

    {
    const ee = new EventEmitter();
    const listener = () => console.log('Events are fun');
    ee.on('foo', listener);
    getEventListeners(ee, 'foo'); // [listener]
    }
    {
    const et = new EventTarget();
    const listener = () => console.log('Events are fun');
    et.addEventListener('foo', listener);
    getEventListeners(et, 'foo'); // [listener]
    } +
    +
    +
    +

    Parameters

    +
      +
    • +
      emitter: EventEmitter | DOMEventTarget
    • +
    • +
      name: string | symbol
    +

    Returns Function[]

    +
    +

    Since

    v15.2.0

    +
+
+ +
    + +
  • +

    Returns whether the stream has been read from or cancelled.

    +
    +
    +

    Parameters

    +
      +
    • +
      stream: Readable | ReadableStream
    +

    Returns boolean

    +
    +

    Since

    v16.8.0

    +
+
+ +
    + +
  • +

    A class method that returns the number of listeners for the given eventNameregistered on the given emitter.

    +
    const { EventEmitter, listenerCount } = require('events');
    const myEmitter = new EventEmitter();
    myEmitter.on('event', () => {});
    myEmitter.on('event', () => {});
    console.log(listenerCount(myEmitter, 'event'));
    // Prints: 2 +
    +
    +
    +

    Parameters

    +
      +
    • +
      emitter: EventEmitter
      +

      The emitter to query

      +
      +
    • +
    • +
      eventName: string | symbol
      +

      The event name

      +
      +
    +

    Returns number

    +
    +

    Since

    v0.9.12

    + +

    Deprecated

    Since v3.2.0 - Use listenerCount instead.

    +
+
+ +
    + +
  • +
    const { on, EventEmitter } = require('events');

    (async () => {
    const ee = new EventEmitter();

    // Emit later on
    process.nextTick(() => {
    ee.emit('foo', 'bar');
    ee.emit('foo', 42);
    });

    for await (const event of on(ee, 'foo')) {
    // The execution of this inner block is synchronous and it
    // processes one event at a time (even with await). Do not use
    // if concurrent execution is required.
    console.log(event); // prints ['bar'] [42]
    }
    // Unreachable here
    })(); +
    +

    Returns an AsyncIterator that iterates eventName events. It will throw +if the EventEmitter emits 'error'. It removes all listeners when +exiting the loop. The value returned by each iteration is an array +composed of the emitted event arguments.

    +

    An AbortSignal can be used to cancel waiting on events:

    +
    const { on, EventEmitter } = require('events');
    const ac = new AbortController();

    (async () => {
    const ee = new EventEmitter();

    // Emit later on
    process.nextTick(() => {
    ee.emit('foo', 'bar');
    ee.emit('foo', 42);
    });

    for await (const event of on(ee, 'foo', { signal: ac.signal })) {
    // The execution of this inner block is synchronous and it
    // processes one event at a time (even with await). Do not use
    // if concurrent execution is required.
    console.log(event); // prints ['bar'] [42]
    }
    // Unreachable here
    })();

    process.nextTick(() => ac.abort()); +
    +
    +
    +

    Parameters

    +
      +
    • +
      emitter: EventEmitter
    • +
    • +
      eventName: string
      +

      The name of the event being listened for

      +
      +
    • +
    • +
      Optional options: StaticEventEmitterOptions
    +

    Returns AsyncIterableIterator<any>

    that iterates eventName events emitted by the emitter

    + +
    +

    Since

    v13.6.0, v12.16.0

    +
+
+ +
    + +
  • +

    Creates a Promise that is fulfilled when the EventEmitter emits the given +event or that is rejected if the EventEmitter emits 'error' while waiting. +The Promise will resolve with an array of all the arguments emitted to the +given event.

    +

    This method is intentionally generic and works with the web platform EventTarget interface, which has no special'error' event +semantics and does not listen to the 'error' event.

    +
    const { once, EventEmitter } = require('events');

    async function run() {
    const ee = new EventEmitter();

    process.nextTick(() => {
    ee.emit('myevent', 42);
    });

    const [value] = await once(ee, 'myevent');
    console.log(value);

    const err = new Error('kaboom');
    process.nextTick(() => {
    ee.emit('error', err);
    });

    try {
    await once(ee, 'myevent');
    } catch (err) {
    console.log('error happened', err);
    }
    }

    run(); +
    +

    The special handling of the 'error' event is only used when events.once()is used to wait for another event. If events.once() is used to wait for the +'error' event itself, then it is treated as any other kind of event without +special handling:

    +
    const { EventEmitter, once } = require('events');

    const ee = new EventEmitter();

    once(ee, 'error')
    .then(([err]) => console.log('ok', err.message))
    .catch((err) => console.log('error', err.message));

    ee.emit('error', new Error('boom'));

    // Prints: ok boom +
    +

    An AbortSignal can be used to cancel waiting for the event:

    +
    const { EventEmitter, once } = require('events');

    const ee = new EventEmitter();
    const ac = new AbortController();

    async function foo(emitter, event, signal) {
    try {
    await once(emitter, event, { signal });
    console.log('event emitted!');
    } catch (error) {
    if (error.name === 'AbortError') {
    console.error('Waiting for the event was canceled!');
    } else {
    console.error('There was an error', error.message);
    }
    }
    }

    foo(ee, 'foo', ac.signal);
    ac.abort(); // Abort waiting for the event
    ee.emit('foo'); // Prints: Waiting for the event was canceled! +
    +
    +
    +

    Parameters

    +
      +
    • +
      emitter: NodeEventTarget
    • +
    • +
      eventName: string | symbol
    • +
    • +
      Optional options: StaticEventEmitterOptions
    +

    Returns Promise<any[]>

    +
    +

    Since

    v11.13.0, v10.16.0

    +
  • + +
  • +
    +

    Parameters

    +
      +
    • +
      emitter: DOMEventTarget
    • +
    • +
      eventName: string
    • +
    • +
      Optional options: StaticEventEmitterOptions
    +

    Returns Promise<any[]>

+
+ +
    + +
  • +
    const {
    setMaxListeners,
    EventEmitter
    } = require('events');

    const target = new EventTarget();
    const emitter = new EventEmitter();

    setMaxListeners(5, target, emitter); +
    +
    +
    +

    Parameters

    +
      +
    • +
      Optional n: number
      +

      A non-negative number. The maximum number of listeners per EventTarget event.

      +
      +
    • +
    • +
      Rest ...eventTargets: (EventEmitter | DOMEventTarget)[]
    +

    Returns void

    +
    +

    Since

    v15.4.0

    +
+
+ +
+
+

Generated using TypeDoc

+
\ No newline at end of file diff --git a/classes/PluggableAdmin.Serialization.Serializable.html b/classes/PluggableAdmin.Serialization.Serializable.html new file mode 100644 index 0000000..da14640 --- /dev/null +++ b/classes/PluggableAdmin.Serialization.Serializable.html @@ -0,0 +1,169 @@ +Serializable | MockRTC API Reference
+
+ +
+
+
+ +
+

Hierarchy

+
    +
  • Serializable
+
+
+
+ +
+
+

Constructors

+
+
+

Properties

+
+
+

Methods

+
+
+

Constructors

+
+ +
+
+

Properties

+
+ +
type: string
+
+

Methods

+
+ +
    + +
  • +

    Returns void

+
+
+

Generated using TypeDoc

+
\ No newline at end of file diff --git a/classes/RTCConnection.html b/classes/RTCConnection.html new file mode 100644 index 0000000..ae86a0e --- /dev/null +++ b/classes/RTCConnection.html @@ -0,0 +1,1069 @@ +RTCConnection | MockRTC API Reference
+
+ +
+
+
+
+ +

Class RTCConnection

+
+

An RTC connection is a single connection. This base class defines the raw connection management and +tracking logic for a generic connection. The MockRTCConnection subclass extends this and adds +logic to support control channels, proxying and other MockRTC-specific additions.

+
+
+
+

Hierarchy

+
+
+
+
+ +
+
+

Constructors

+
+ +
+
+

Properties

+
+ +
id: string = ...
+
+ +
sessionApi: MockRTCSession = ...
+
+ +
captureRejectionSymbol: typeof captureRejectionSymbol
+
+ +
captureRejections: boolean
+

Sets or gets the default captureRejection value for all emitters.

+
+
+
+ +
defaultMaxListeners: number
+
+ +
errorMonitor: typeof errorMonitor
+

This symbol shall be used to install a listener for only monitoring 'error' +events. Listeners installed using this symbol are called before the regular +'error' listeners are called.

+

Installing a listener using this symbol does not change the behavior once an +'error' event is emitted, therefore the process will still crash if no +regular 'error' listener is installed.

+
+
+
+

Accessors

+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+

Methods

+
+ +
    + +
  • +

    Alias for emitter.on(eventName, listener).

    +
    +
    +

    Parameters

    +
      +
    • +
      eventName: string | symbol
    • +
    • +
      listener: ((...args) => void)
      +
        +
      • +
          +
        • (...args): void
        • +
        • +
          +

          Parameters

          +
            +
          • +
            Rest ...args: any[]
          +

          Returns void

    +

    Returns RTCConnection

    +
    +

    Since

    v0.1.26

    +
+
+ +
    + +
  • +

    Gets the local description for this connection, waiting until gathering is complete to provide a +full result. Because this waits for gathering, it will not resolve if no DataChannel, other +tracks or remote description have been provided beforehand.

    +
    +

    Returns Promise<MockRTCSessionDescription>

    +
+
+ +
+
+ +
+
+ +
    + +
  • +

    Synchronously calls each of the listeners registered for the event namedeventName, in the order they were registered, passing the supplied arguments +to each.

    +

    Returns true if the event had listeners, false otherwise.

    +
    const EventEmitter = require('events');
    const myEmitter = new EventEmitter();

    // First listener
    myEmitter.on('event', function firstListener() {
    console.log('Helloooo! first listener');
    });
    // Second listener
    myEmitter.on('event', function secondListener(arg1, arg2) {
    console.log(`event with parameters ${arg1}, ${arg2} in second listener`);
    });
    // Third listener
    myEmitter.on('event', function thirdListener(...args) {
    const parameters = args.join(', ');
    console.log(`event with parameters ${parameters} in third listener`);
    });

    console.log(myEmitter.listeners('event'));

    myEmitter.emit('event', 1, 2, 3, 4, 5);

    // Prints:
    // [
    // [Function: firstListener],
    // [Function: secondListener],
    // [Function: thirdListener]
    // ]
    // Helloooo! first listener
    // event with parameters 1, 2 in second listener
    // event with parameters 1, 2, 3, 4, 5 in third listener +
    +
    +
    +

    Parameters

    +
      +
    • +
      eventName: string | symbol
    • +
    • +
      Rest ...args: any[]
    +

    Returns boolean

    +
    +

    Since

    v0.1.26

    +
+
+ +
    + +
  • +

    Returns an array listing the events for which the emitter has registered +listeners. The values in the array are strings or Symbols.

    +
    const EventEmitter = require('events');
    const myEE = new EventEmitter();
    myEE.on('foo', () => {});
    myEE.on('bar', () => {});

    const sym = Symbol('symbol');
    myEE.on(sym, () => {});

    console.log(myEE.eventNames());
    // Prints: [ 'foo', 'bar', Symbol(symbol) ] +
    +
    +

    Returns (string | symbol)[]

    +
    +

    Since

    v6.0.0

    +
+
+ +
+
+ +
    + +
  • +

    Returns the current max listener value for the EventEmitter which is either +set by emitter.setMaxListeners(n) or defaults to defaultMaxListeners.

    +
    +

    Returns number

    +
    +

    Since

    v1.0.0

    +
+
+ +
+
+ +
+
+ +
+
+ +
    + +
  • +

    Returns undefined | {
        local: {
            address: string;
            candidate: string;
            mid: string;
            port: number;
            priority: number;
            protocol: string;
            type: RTCIceCandidateType;
        };
        remote: {
            address: string;
            candidate: string;
            mid: string;
            port: number;
            priority: number;
            protocol: string;
            type: RTCIceCandidateType;
        };
    }

+
+ +
    + +
  • +

    Returns the number of listeners listening to the event named eventName.

    +
    +
    +

    Parameters

    +
      +
    • +
      eventName: string | symbol
      +

      The name of the event being listened for

      +
      +
    +

    Returns number

    +
    +

    Since

    v3.2.0

    +
+
+ +
    + +
  • +

    Returns a copy of the array of listeners for the event named eventName.

    +
    server.on('connection', (stream) => {
    console.log('someone connected!');
    });
    console.log(util.inspect(server.listeners('connection')));
    // Prints: [ [Function] ] +
    +
    +
    +

    Parameters

    +
      +
    • +
      eventName: string | symbol
    +

    Returns Function[]

    +
    +

    Since

    v0.1.26

    +
+
+ +
    + +
  • +

    Alias for emitter.removeListener().

    +
    +
    +

    Parameters

    +
      +
    • +
      eventName: string | symbol
    • +
    • +
      listener: ((...args) => void)
      +
        +
      • +
          +
        • (...args): void
        • +
        • +
          +

          Parameters

          +
            +
          • +
            Rest ...args: any[]
          +

          Returns void

    +

    Returns RTCConnection

    +
    +

    Since

    v10.0.0

    +
+
+ +
    + +
  • +

    Adds the listener function to the end of the listeners array for the +event named eventName. No checks are made to see if the listener has +already been added. Multiple calls passing the same combination of eventNameand listener will result in the listener being added, and called, multiple +times.

    +
    server.on('connection', (stream) => {
    console.log('someone connected!');
    }); +
    +

    Returns a reference to the EventEmitter, so that calls can be chained.

    +

    By default, event listeners are invoked in the order they are added. Theemitter.prependListener() method can be used as an alternative to add the +event listener to the beginning of the listeners array.

    +
    const myEE = new EventEmitter();
    myEE.on('foo', () => console.log('a'));
    myEE.prependListener('foo', () => console.log('b'));
    myEE.emit('foo');
    // Prints:
    // b
    // a +
    +
    +
    +

    Parameters

    +
      +
    • +
      eventName: string | symbol
      +

      The name of the event.

      +
      +
    • +
    • +
      listener: ((...args) => void)
      +

      The callback function

      +
      +
      +
        +
      • +
          +
        • (...args): void
        • +
        • +
          +

          Parameters

          +
            +
          • +
            Rest ...args: any[]
          +

          Returns void

    +

    Returns RTCConnection

    +
    +

    Since

    v0.1.101

    +
+
+ +
    + +
  • +

    Adds a one-timelistener function for the event named eventName. The +next time eventName is triggered, this listener is removed and then invoked.

    +
    server.once('connection', (stream) => {
    console.log('Ah, we have our first user!');
    }); +
    +

    Returns a reference to the EventEmitter, so that calls can be chained.

    +

    By default, event listeners are invoked in the order they are added. Theemitter.prependOnceListener() method can be used as an alternative to add the +event listener to the beginning of the listeners array.

    +
    const myEE = new EventEmitter();
    myEE.once('foo', () => console.log('a'));
    myEE.prependOnceListener('foo', () => console.log('b'));
    myEE.emit('foo');
    // Prints:
    // b
    // a +
    +
    +
    +

    Parameters

    +
      +
    • +
      eventName: string | symbol
      +

      The name of the event.

      +
      +
    • +
    • +
      listener: ((...args) => void)
      +

      The callback function

      +
      +
      +
        +
      • +
          +
        • (...args): void
        • +
        • +
          +

          Parameters

          +
            +
          • +
            Rest ...args: any[]
          +

          Returns void

    +

    Returns RTCConnection

    +
    +

    Since

    v0.3.0

    +
+
+ +
    + +
  • +

    Adds the listener function to the beginning of the listeners array for the +event named eventName. No checks are made to see if the listener has +already been added. Multiple calls passing the same combination of eventNameand listener will result in the listener being added, and called, multiple +times.

    +
    server.prependListener('connection', (stream) => {
    console.log('someone connected!');
    }); +
    +

    Returns a reference to the EventEmitter, so that calls can be chained.

    +
    +
    +

    Parameters

    +
      +
    • +
      eventName: string | symbol
      +

      The name of the event.

      +
      +
    • +
    • +
      listener: ((...args) => void)
      +

      The callback function

      +
      +
      +
        +
      • +
          +
        • (...args): void
        • +
        • +
          +

          Parameters

          +
            +
          • +
            Rest ...args: any[]
          +

          Returns void

    +

    Returns RTCConnection

    +
    +

    Since

    v6.0.0

    +
+
+ +
    + +
  • +

    Adds a one-timelistener function for the event named eventName to the_beginning_ of the listeners array. The next time eventName is triggered, this +listener is removed, and then invoked.

    +
    server.prependOnceListener('connection', (stream) => {
    console.log('Ah, we have our first user!');
    }); +
    +

    Returns a reference to the EventEmitter, so that calls can be chained.

    +
    +
    +

    Parameters

    +
      +
    • +
      eventName: string | symbol
      +

      The name of the event.

      +
      +
    • +
    • +
      listener: ((...args) => void)
      +

      The callback function

      +
      +
      +
        +
      • +
          +
        • (...args): void
        • +
        • +
          +

          Parameters

          +
            +
          • +
            Rest ...args: any[]
          +

          Returns void

    +

    Returns RTCConnection

    +
    +

    Since

    v6.0.0

    +
+
+ +
    + +
  • +

    Returns a copy of the array of listeners for the event named eventName, +including any wrappers (such as those created by .once()).

    +
    const emitter = new EventEmitter();
    emitter.once('log', () => console.log('log once'));

    // Returns a new Array with a function `onceWrapper` which has a property
    // `listener` which contains the original listener bound above
    const listeners = emitter.rawListeners('log');
    const logFnWrapper = listeners[0];

    // Logs "log once" to the console and does not unbind the `once` event
    logFnWrapper.listener();

    // Logs "log once" to the console and removes the listener
    logFnWrapper();

    emitter.on('log', () => console.log('log persistently'));
    // Will return a new Array with a single function bound by `.on()` above
    const newListeners = emitter.rawListeners('log');

    // Logs "log persistently" twice
    newListeners[0]();
    emitter.emit('log'); +
    +
    +
    +

    Parameters

    +
      +
    • +
      eventName: string | symbol
    +

    Returns Function[]

    +
    +

    Since

    v9.4.0

    +
+
+ +
    + +
  • +

    Removes all listeners, or those of the specified eventName.

    +

    It is bad practice to remove listeners added elsewhere in the code, +particularly when the EventEmitter instance was created by some other +component or module (e.g. sockets or file streams).

    +

    Returns a reference to the EventEmitter, so that calls can be chained.

    +
    +
    +

    Parameters

    +
      +
    • +
      Optional event: string | symbol
    +

    Returns RTCConnection

    +
    +

    Since

    v0.1.26

    +
+
+ +
    + +
  • +

    Removes the specified listener from the listener array for the event namedeventName.

    +
    const callback = (stream) => {
    console.log('someone connected!');
    };
    server.on('connection', callback);
    // ...
    server.removeListener('connection', callback); +
    +

    removeListener() will remove, at most, one instance of a listener from the +listener array. If any single listener has been added multiple times to the +listener array for the specified eventName, then removeListener() must be +called multiple times to remove each instance.

    +

    Once an event is emitted, all listeners attached to it at the +time of emitting are called in order. This implies that anyremoveListener() or removeAllListeners() calls after emitting and_before_ the last listener finishes execution will +not remove them fromemit() in progress. Subsequent events behave as expected.

    +
    const myEmitter = new MyEmitter();

    const callbackA = () => {
    console.log('A');
    myEmitter.removeListener('event', callbackB);
    };

    const callbackB = () => {
    console.log('B');
    };

    myEmitter.on('event', callbackA);

    myEmitter.on('event', callbackB);

    // callbackA removes listener callbackB but it will still be called.
    // Internal listener array at time of emit [callbackA, callbackB]
    myEmitter.emit('event');
    // Prints:
    // A
    // B

    // callbackB is now removed.
    // Internal listener array [callbackA]
    myEmitter.emit('event');
    // Prints:
    // A +
    +

    Because listeners are managed using an internal array, calling this will +change the position indices of any listener registered after the listener +being removed. This will not impact the order in which listeners are called, +but it means that any copies of the listener array as returned by +the emitter.listeners() method will need to be recreated.

    +

    When a single function has been added as a handler multiple times for a single +event (as in the example below), removeListener() will remove the most +recently added instance. In the example the once('ping')listener is removed:

    +
    const ee = new EventEmitter();

    function pong() {
    console.log('pong');
    }

    ee.on('ping', pong);
    ee.once('ping', pong);
    ee.removeListener('ping', pong);

    ee.emit('ping');
    ee.emit('ping'); +
    +

    Returns a reference to the EventEmitter, so that calls can be chained.

    +
    +
    +

    Parameters

    +
      +
    • +
      eventName: string | symbol
    • +
    • +
      listener: ((...args) => void)
      +
        +
      • +
          +
        • (...args): void
        • +
        • +
          +

          Parameters

          +
            +
          • +
            Rest ...args: any[]
          +

          Returns void

    +

    Returns RTCConnection

    +
    +

    Since

    v0.1.26

    +
+
+ +
    + +
  • +

    By default EventEmitters will print a warning if more than 10 listeners are +added for a particular event. This is a useful default that helps finding +memory leaks. The emitter.setMaxListeners() method allows the limit to be +modified for this specific EventEmitter instance. The value can be set toInfinity (or 0) to indicate an unlimited number of listeners.

    +

    Returns a reference to the EventEmitter, so that calls can be chained.

    +
    +
    +

    Parameters

    +
      +
    • +
      n: number
    +

    Returns RTCConnection

    +
    +

    Since

    v0.3.5

    +
+
+ +
    + +
  • +
    +

    Parameters

    +
      +
    • +
      description: RTCSessionDescriptionInit
    +

    Returns void

+
+ +
+
+ +
    + +
  • +

    Returns a copy of the array of listeners for the event named eventName.

    +

    For EventEmitters this behaves exactly the same as calling .listeners on +the emitter.

    +

    For EventTargets this is the only way to get the event listeners for the +event target. This is useful for debugging and diagnostic purposes.

    +
    const { getEventListeners, EventEmitter } = require('events');

    {
    const ee = new EventEmitter();
    const listener = () => console.log('Events are fun');
    ee.on('foo', listener);
    getEventListeners(ee, 'foo'); // [listener]
    }
    {
    const et = new EventTarget();
    const listener = () => console.log('Events are fun');
    et.addEventListener('foo', listener);
    getEventListeners(et, 'foo'); // [listener]
    } +
    +
    +
    +

    Parameters

    +
      +
    • +
      emitter: EventEmitter | DOMEventTarget
    • +
    • +
      name: string | symbol
    +

    Returns Function[]

    +
    +

    Since

    v15.2.0

    +
+
+ +
    + +
  • +

    A class method that returns the number of listeners for the given eventNameregistered on the given emitter.

    +
    const { EventEmitter, listenerCount } = require('events');
    const myEmitter = new EventEmitter();
    myEmitter.on('event', () => {});
    myEmitter.on('event', () => {});
    console.log(listenerCount(myEmitter, 'event'));
    // Prints: 2 +
    +
    +
    +

    Parameters

    +
      +
    • +
      emitter: EventEmitter
      +

      The emitter to query

      +
      +
    • +
    • +
      eventName: string | symbol
      +

      The event name

      +
      +
    +

    Returns number

    +
    +

    Since

    v0.9.12

    + +

    Deprecated

    Since v3.2.0 - Use listenerCount instead.

    +
+
+ +
    + +
  • +
    const { on, EventEmitter } = require('events');

    (async () => {
    const ee = new EventEmitter();

    // Emit later on
    process.nextTick(() => {
    ee.emit('foo', 'bar');
    ee.emit('foo', 42);
    });

    for await (const event of on(ee, 'foo')) {
    // The execution of this inner block is synchronous and it
    // processes one event at a time (even with await). Do not use
    // if concurrent execution is required.
    console.log(event); // prints ['bar'] [42]
    }
    // Unreachable here
    })(); +
    +

    Returns an AsyncIterator that iterates eventName events. It will throw +if the EventEmitter emits 'error'. It removes all listeners when +exiting the loop. The value returned by each iteration is an array +composed of the emitted event arguments.

    +

    An AbortSignal can be used to cancel waiting on events:

    +
    const { on, EventEmitter } = require('events');
    const ac = new AbortController();

    (async () => {
    const ee = new EventEmitter();

    // Emit later on
    process.nextTick(() => {
    ee.emit('foo', 'bar');
    ee.emit('foo', 42);
    });

    for await (const event of on(ee, 'foo', { signal: ac.signal })) {
    // The execution of this inner block is synchronous and it
    // processes one event at a time (even with await). Do not use
    // if concurrent execution is required.
    console.log(event); // prints ['bar'] [42]
    }
    // Unreachable here
    })();

    process.nextTick(() => ac.abort()); +
    +
    +
    +

    Parameters

    +
      +
    • +
      emitter: EventEmitter
    • +
    • +
      eventName: string
      +

      The name of the event being listened for

      +
      +
    • +
    • +
      Optional options: StaticEventEmitterOptions
    +

    Returns AsyncIterableIterator<any>

    that iterates eventName events emitted by the emitter

    + +
    +

    Since

    v13.6.0, v12.16.0

    +
+
+ +
    + +
  • +

    Creates a Promise that is fulfilled when the EventEmitter emits the given +event or that is rejected if the EventEmitter emits 'error' while waiting. +The Promise will resolve with an array of all the arguments emitted to the +given event.

    +

    This method is intentionally generic and works with the web platform EventTarget interface, which has no special'error' event +semantics and does not listen to the 'error' event.

    +
    const { once, EventEmitter } = require('events');

    async function run() {
    const ee = new EventEmitter();

    process.nextTick(() => {
    ee.emit('myevent', 42);
    });

    const [value] = await once(ee, 'myevent');
    console.log(value);

    const err = new Error('kaboom');
    process.nextTick(() => {
    ee.emit('error', err);
    });

    try {
    await once(ee, 'myevent');
    } catch (err) {
    console.log('error happened', err);
    }
    }

    run(); +
    +

    The special handling of the 'error' event is only used when events.once()is used to wait for another event. If events.once() is used to wait for the +'error' event itself, then it is treated as any other kind of event without +special handling:

    +
    const { EventEmitter, once } = require('events');

    const ee = new EventEmitter();

    once(ee, 'error')
    .then(([err]) => console.log('ok', err.message))
    .catch((err) => console.log('error', err.message));

    ee.emit('error', new Error('boom'));

    // Prints: ok boom +
    +

    An AbortSignal can be used to cancel waiting for the event:

    +
    const { EventEmitter, once } = require('events');

    const ee = new EventEmitter();
    const ac = new AbortController();

    async function foo(emitter, event, signal) {
    try {
    await once(emitter, event, { signal });
    console.log('event emitted!');
    } catch (error) {
    if (error.name === 'AbortError') {
    console.error('Waiting for the event was canceled!');
    } else {
    console.error('There was an error', error.message);
    }
    }
    }

    foo(ee, 'foo', ac.signal);
    ac.abort(); // Abort waiting for the event
    ee.emit('foo'); // Prints: Waiting for the event was canceled! +
    +
    +
    +

    Parameters

    +
      +
    • +
      emitter: NodeEventTarget
    • +
    • +
      eventName: string | symbol
    • +
    • +
      Optional options: StaticEventEmitterOptions
    +

    Returns Promise<any[]>

    +
    +

    Since

    v11.13.0, v10.16.0

    +
  • + +
  • +
    +

    Parameters

    +
      +
    • +
      emitter: DOMEventTarget
    • +
    • +
      eventName: string
    • +
    • +
      Optional options: StaticEventEmitterOptions
    +

    Returns Promise<any[]>

+
+ +
    + +
  • +
    const {
    setMaxListeners,
    EventEmitter
    } = require('events');

    const target = new EventTarget();
    const emitter = new EventEmitter();

    setMaxListeners(5, target, emitter); +
    +
    +
    +

    Parameters

    +
      +
    • +
      Optional n: number
      +

      A non-negative number. The maximum number of listeners per EventTarget event.

      +
      +
    • +
    • +
      Rest ...eventTargets: (EventEmitter | DOMEventTarget)[]
    +

    Returns void

    +
    +

    Since

    v15.4.0

    +
+
+ +
+
+

Generated using TypeDoc

+
\ No newline at end of file diff --git a/functions/PluggableAdmin.Serialization.deserialize.html b/functions/PluggableAdmin.Serialization.deserialize.html new file mode 100644 index 0000000..ed88b9f --- /dev/null +++ b/functions/PluggableAdmin.Serialization.deserialize.html @@ -0,0 +1,142 @@ +deserialize | MockRTC API Reference
+
+ +
+
+
+ +
+
    + +
  • +
    +

    Type Parameters

    +
    +
    +

    Parameters

    +
      +
    • +
      data: T
    • +
    • +
      stream: Duplex
    • +
    • +
      ruleParams: RuleParameters
    • +
    • +
      lookup: {
          [key: string]: C;
      }
      +
        +
      • +
        [key: string]: C
    +

    Returns InstanceType<C>

+
+
+

Generated using TypeDoc

+
\ No newline at end of file diff --git a/functions/PluggableAdmin.Serialization.deserializeBuffer.html b/functions/PluggableAdmin.Serialization.deserializeBuffer.html new file mode 100644 index 0000000..9205417 --- /dev/null +++ b/functions/PluggableAdmin.Serialization.deserializeBuffer.html @@ -0,0 +1,126 @@ +deserializeBuffer | MockRTC API Reference
+
+ +
+
+
+ +
+
    + +
  • +
    +

    Parameters

    +
      +
    • +
      buffer: string
    +

    Returns Buffer

+
+
+

Generated using TypeDoc

+
\ No newline at end of file diff --git a/functions/PluggableAdmin.Serialization.deserializeProxyConfig.html b/functions/PluggableAdmin.Serialization.deserializeProxyConfig.html new file mode 100644 index 0000000..8375608 --- /dev/null +++ b/functions/PluggableAdmin.Serialization.deserializeProxyConfig.html @@ -0,0 +1,130 @@ +deserializeProxyConfig | MockRTC API Reference
+
+ +
+
+
+ +
+
    + +
  • +
    +

    Parameters

    +
    +

    Returns ProxySettingSource

+
+
+

Generated using TypeDoc

+
\ No newline at end of file diff --git a/functions/PluggableAdmin.Serialization.ensureParamsDeferenced.html b/functions/PluggableAdmin.Serialization.ensureParamsDeferenced.html new file mode 100644 index 0000000..25e9904 --- /dev/null +++ b/functions/PluggableAdmin.Serialization.ensureParamsDeferenced.html @@ -0,0 +1,133 @@ +ensureParamsDeferenced | MockRTC API Reference
+
+ +
+
+
+ +
+
    + +
  • +
    +

    Type Parameters

    +
      +
    • +

      T

    +
    +

    Parameters

    +
    +

    Returns T

+
+
+

Generated using TypeDoc

+
\ No newline at end of file diff --git a/functions/PluggableAdmin.Serialization.maybeSerializeParam.html b/functions/PluggableAdmin.Serialization.maybeSerializeParam.html new file mode 100644 index 0000000..29f080c --- /dev/null +++ b/functions/PluggableAdmin.Serialization.maybeSerializeParam.html @@ -0,0 +1,133 @@ +maybeSerializeParam | MockRTC API Reference
+
+ +
+
+
+ +
+
+
+
+

Generated using TypeDoc

+
\ No newline at end of file diff --git a/functions/PluggableAdmin.Serialization.serialize.html b/functions/PluggableAdmin.Serialization.serialize.html new file mode 100644 index 0000000..2a1cf63 --- /dev/null +++ b/functions/PluggableAdmin.Serialization.serialize.html @@ -0,0 +1,133 @@ +serialize | MockRTC API Reference
+
+ +
+
+
+ +
+
+
+
+

Generated using TypeDoc

+
\ No newline at end of file diff --git a/functions/PluggableAdmin.Serialization.serializeBuffer.html b/functions/PluggableAdmin.Serialization.serializeBuffer.html new file mode 100644 index 0000000..47a054e --- /dev/null +++ b/functions/PluggableAdmin.Serialization.serializeBuffer.html @@ -0,0 +1,126 @@ +serializeBuffer | MockRTC API Reference
+
+ +
+
+
+ +
+
    + +
  • +
    +

    Parameters

    +
      +
    • +
      buffer: Buffer
    +

    Returns string

+
+
+

Generated using TypeDoc

+
\ No newline at end of file diff --git a/functions/PluggableAdmin.Serialization.serializeProxyConfig.html b/functions/PluggableAdmin.Serialization.serializeProxyConfig.html new file mode 100644 index 0000000..67c58b5 --- /dev/null +++ b/functions/PluggableAdmin.Serialization.serializeProxyConfig.html @@ -0,0 +1,128 @@ +serializeProxyConfig | MockRTC API Reference
+
+ +
+
+
+ +
+
+
+
+

Generated using TypeDoc

+
\ No newline at end of file diff --git a/functions/getAdminServer.html b/functions/getAdminServer.html new file mode 100644 index 0000000..be96d84 --- /dev/null +++ b/functions/getAdminServer.html @@ -0,0 +1,96 @@ +getAdminServer | MockRTC API Reference
+
+ +
+
+
+
+ +

Function getAdminServer

+
+
    + +
  • +

    Get a MockRTC admin server, which can be used with a MockRTC remote client to create +& manage mock peers either from remote machines or from local environments +that lack necessary capabilities, e.g. to use MockRTC from inside a browser.

    +

    This function exists so you can set up these servers programmatically, but for most +usage you can just run your tests via the mockrtc binary, which will automatically +start and stop an admin server for you:

    +
    mockrtc -c <your test command>
    +
    +
    +

    Returns MockRTCAdminServer

    +
+
+
+

Generated using TypeDoc

+
\ No newline at end of file diff --git a/functions/getLocal.html b/functions/getLocal.html new file mode 100644 index 0000000..7acd092 --- /dev/null +++ b/functions/getLocal.html @@ -0,0 +1,95 @@ +getLocal | MockRTC API Reference
+
+ +
+
+
+
+ +

Function getLocal

+
+
    + +
  • +

    Get a MockRTC instance on the local machine.

    +

    In most simple environments, you can call this method directly and immediately +get a MockRTC instance and start mocking peers.

    +

    In node, the mocked peers will run in process and require no further setup.

    +

    In browsers this is an alias for getRemote. You'll need to start a MockRTC +admin server outside your tests before calling this, which will create and manage +your fake peers outside the browser.

    +
    +

    Returns MockRTC

    +
+
+
+

Generated using TypeDoc

+
\ No newline at end of file diff --git a/functions/getRemote.html b/functions/getRemote.html new file mode 100644 index 0000000..0c5b038 --- /dev/null +++ b/functions/getRemote.html @@ -0,0 +1,96 @@ +getRemote | MockRTC API Reference
+
+ +
+ +
+

Generated using TypeDoc

+
\ No newline at end of file diff --git a/functions/hookAllWebRTC.html b/functions/hookAllWebRTC.html new file mode 100644 index 0000000..33ab22f --- /dev/null +++ b/functions/hookAllWebRTC.html @@ -0,0 +1,96 @@ +hookAllWebRTC | MockRTC API Reference
+
+ +
+ +
+

Generated using TypeDoc

+
\ No newline at end of file diff --git a/functions/hookWebRTCConnection.html b/functions/hookWebRTCConnection.html new file mode 100644 index 0000000..6d97358 --- /dev/null +++ b/functions/hookWebRTCConnection.html @@ -0,0 +1,108 @@ +hookWebRTCConnection | MockRTC API Reference
+
+ +
+
+
+
+ +

Function hookWebRTCConnection

+
+
    + +
  • +

    Hooks a given RTCPeerConnection so that all connections it creates are automatically proxied +through the given MockRTCPeer.

    +

    This allows you to capture traffic without modifying your WebRTC code: you can create +offers/answers and signal them to a remote client as normal, and both the local and remote +connections will connect to MockRTC instead.

    +

    What happens once they connect depends on the configuration of the given peer. This mocked +local connection will follow the steps defined by the peer, so may receive mocked messages +injected there, or delays, or anything else. The remote peer will receive nothing until +a proxy step is reached (if ever), at which point the local & remote peers will be able to +talking directly, although all traffic will still be proxied through MockRTC for logging +and analysis/validation elsewhere.

    +

    It is possible to proxy both real peers in a connection, potentially with different mock +peers so that they experience different behaviours during the connection.

    +
    +
    +

    Parameters

    +
    +

    Returns void

    +
+
+
+

Generated using TypeDoc

+
\ No newline at end of file diff --git a/index.html b/index.html new file mode 100644 index 0000000..26e4813 --- /dev/null +++ b/index.html @@ -0,0 +1,128 @@ +MockRTC API Reference
+
+ +
+
+ +
+
+

Generated using TypeDoc

+
\ No newline at end of file diff --git a/interfaces/AnswerOptions.html b/interfaces/AnswerOptions.html new file mode 100644 index 0000000..9c8c367 --- /dev/null +++ b/interfaces/AnswerOptions.html @@ -0,0 +1,124 @@ +AnswerOptions | MockRTC API Reference
+
+ +
+
+
+
+ +

Interface AnswerOptions

+
+

Hierarchy

+
    +
  • AnswerOptions
+
+
+
+ +
+
+

Properties

+
+
+

Properties

+
+ +
connectionMetadata?: ConnectionMetadata
+

Extra metadata to associate with the connection. This will be exposed on +events like peer-connected, and can be used to add context to connections.

+

If this value is provided during renegotiation, it is merged key-wise with +any existing metadata value for the connection (i.e. existing metadata +values will not change, unless a new value for the same key is provided).

+
+
+
+ +
mirrorSDP?: string
+

A raw SDP string that should be mirrored (best efforts) where possible to +create an equivalent answer, including the same media params.

+
+
+
+
+

Generated using TypeDoc

+
\ No newline at end of file diff --git a/interfaces/ConnectionMetadata.html b/interfaces/ConnectionMetadata.html new file mode 100644 index 0000000..14618ed --- /dev/null +++ b/interfaces/ConnectionMetadata.html @@ -0,0 +1,130 @@ +ConnectionMetadata | MockRTC API Reference
+
+ +
+
+
+
+ +

Interface ConnectionMetadata

+
+

Extra metadata to associate with the connection. This will be exposed on +events like peer-connected, and can be used to add context to connections.

+

The defined fields may only be used as defined here, but all values are +optional, and any other metadata may be attached in any format here.

+

The only defined values are:

+
    +
  • userAgent - a client user-agent string (in a browser, the value of +navigator.userAgent)
  • +
  • sourceURL - the URL of the referring page, when the request is sent by +a browser
  • +
+
+
+
+

Hierarchy

+
    +
  • ConnectionMetadata
+
+

Indexable

+
[k: string]: any
+
+
+
+ +
+
+

Properties

+
+
+

Properties

+
+ +
sourceURL?: string
+
+ +
userAgent?: string
+
+
+

Generated using TypeDoc

+
\ No newline at end of file diff --git a/interfaces/HandlerStep.html b/interfaces/HandlerStep.html new file mode 100644 index 0000000..d98b0ba --- /dev/null +++ b/interfaces/HandlerStep.html @@ -0,0 +1,140 @@ +HandlerStep | MockRTC API Reference
+
+ +
+
+
+
+ +

Interface HandlerStep

+
+

Hierarchy

+
+
+
+
+ +
+
+

Properties

+
+
+

Methods

+
+
+

Properties

+
+ +
type: "wait-for-duration" | "wait-for-rtc-data-channel" | "wait-for-rtc-track" | "wait-for-rtc-media" | "wait-for-rtc-message" | "create-rtc-data-channel" | "send-rtc-data-message" | "close-rtc-connection" | "echo-rtc" | "rtc-peer-proxy" | "rtc-dynamic-proxy"
+
+

Methods

+
+ +
    + +
  • +

    Returns void

+
+ +
+
+
+

Generated using TypeDoc

+
\ No newline at end of file diff --git a/interfaces/HandlerStepDefinitions.HandlerStepDefinition.html b/interfaces/HandlerStepDefinitions.HandlerStepDefinition.html new file mode 100644 index 0000000..a0438f6 --- /dev/null +++ b/interfaces/HandlerStepDefinitions.HandlerStepDefinition.html @@ -0,0 +1,160 @@ +HandlerStepDefinition | MockRTC API Reference
+
+ +
+
+
+ +
+

Hierarchy

+
+
+

Implemented by

+
+
+
+
+ +
+
+

Properties

+
+
+

Methods

+
+
+

Properties

+
+ +
type: "wait-for-duration" | "wait-for-rtc-data-channel" | "wait-for-rtc-track" | "wait-for-rtc-media" | "wait-for-rtc-message" | "create-rtc-data-channel" | "send-rtc-data-message" | "close-rtc-connection" | "echo-rtc" | "rtc-peer-proxy" | "rtc-dynamic-proxy"
+
+

Methods

+
+ +
    + +
  • +

    Returns void

+
+
+

Generated using TypeDoc

+
\ No newline at end of file diff --git a/interfaces/MatcherDefinitions.MatcherDefinition.html b/interfaces/MatcherDefinitions.MatcherDefinition.html new file mode 100644 index 0000000..492e41a --- /dev/null +++ b/interfaces/MatcherDefinitions.MatcherDefinition.html @@ -0,0 +1,150 @@ +MatcherDefinition | MockRTC API Reference
+
+ +
+
+
+ +
+

Hierarchy

+
+
+

Implemented by

+
+
+
+
+ +
+
+

Properties

+
+
+

Methods

+
+
+

Properties

+
+ +
type: "has-rtc-data-channel" | "has-rtc-video-track" | "has-rtc-audio-track" | "has-rtc-media-track" | "rtc-page-hostname" | "rtc-page-regex" | "rtc-user-agent-regex"
+
+

Methods

+
+ +
    + +
  • +

    Returns void

+
+
+

Generated using TypeDoc

+
\ No newline at end of file diff --git a/interfaces/MockRTC.html b/interfaces/MockRTC.html new file mode 100644 index 0000000..1793b9e --- /dev/null +++ b/interfaces/MockRTC.html @@ -0,0 +1,299 @@ +MockRTC | MockRTC API Reference
+
+ +
+
+
+
+ +

Interface MockRTC

+
+

Hierarchy

+
    +
  • MockRTC
+
+
+
+ +
+
+

Methods

+
+ +
    + +
  • +

    Create a connection-matching rule from a set of matchers and step definitions.

    +

    This API is only useful if you're building rule from data programmatically, +rather than using forX() and MockRTCHandlerBuilder, which are generally +preferable otherwise.

    +
    +
    +

    Parameters

    +
    +

    Returns Promise<void>

    +
+
+ +
    + +
  • +

    Start creating a mock WebRTC peer. This method returns a builder, who +must be configured with the mock peer's settings. Once configured the +peer can be created by calling any .thenX() method to define the +peer's behaviour.

    +

    This API allows you to define a single set of handling steps, and then +connect directly to the resulting peer to run those steps directly.

    +

    To instead define multiple behaviours that match different conditions, and +then connect clients who may each see different behaviour, define your +rules using the forX() methods, and connect by using getMatchingPeer().

    +
    +

    Returns MockRTCPeerBuilder

    +
+
+ +
    + +
  • +

    Create a peer from a set of step definitions.

    +

    This API is only useful if you're building peers from data programmatically, +rather than using buildPeer() and MockRTCPeerBuilder, which are generally +preferable otherwise.

    +
    +
    +

    Parameters

    +
    +

    Returns Promise<MockRTCPeer>

    +
+
+ +
    + +
  • +

    Starting defining a mock WebRTC rule. This methods returns a rule builder, +which can be configured to define which incoming connections should be +matched, with methods like .fromPageHostname(hostname).

    +

    Once the matching is configured, start calling handler methods like +.send() to define a series of steps to run for matching connections, +and then call a .thenX() method to complete the definition and +define the rule.

    +

    The rule definition is not complete until the returned promise resolves. +Once it has resolved successfully, any future connections to the peer +returned by getMatchingPeer() will be matched against these rules, +and will run the steps for the first matching rule found.

    +
    +

    Returns MockRTCRuleBuilder

    +
+
+ +
    + +
  • +

    Get the rule-matching peer.

    +

    This peer accepts connections, matches them against defined rules (defined +via the .forX() methods) and then handles them according to the steps +for the defined rule.

    +

    To more directly define a set of steps and make a connection that will +follow those steps, define a peer with .buildPeer() and then connect +to that directly.

    +

    The default behaviour of this peer for unmatched connections is equivalent +to .thenPassThrough() - it will accept all incoming data without response +initially, and proxy all data to a remote peer if one is attached.

    +
    +

    Returns MockRTCPeer

    +
+
+ +
    + +
  • +

    Subscribe to events to monitor WebRTC interactions across all peers managed by +this MockRTC session. The events available include:

    +
      +
    • peer-connected
    • +
    • peer-disconnected
    • +
    • external-peer-attached
    • +
    • data-channel-opened
    • +
    • data-channel-message-sent
    • +
    • data-channel-message-received
    • +
    • data-channel-closed
    • +
    • media-track-opened
    • +
    • media-track-stats
    • +
    • media-track-closed
    • +
    +
    +
    +

    Type Parameters

    +
    +
    +

    Parameters

    +
      +
    • +
      event: E
    • +
    • +
      callback: ((param) => void)
      +
        +
      • +
    +

    Returns Promise<void>

    +
+
+ +
    + +
  • +

    Create a connection-matching rule from a set of matchers and step definitions.

    +

    This API is only useful if you're building rule from data programmatically, +rather than using forX() and MockRTCHandlerBuilder, which are generally +preferable otherwise.

    +
    +
    +

    Parameters

    +
    +

    Returns Promise<void>

    +
+
+ +
+
+ +
+
+
+

Generated using TypeDoc

+
\ No newline at end of file diff --git a/interfaces/MockRTCAnswerParams.html b/interfaces/MockRTCAnswerParams.html new file mode 100644 index 0000000..e310e22 --- /dev/null +++ b/interfaces/MockRTCAnswerParams.html @@ -0,0 +1,113 @@ +MockRTCAnswerParams | MockRTC API Reference
+
+ +
+ +
+

Generated using TypeDoc

+
\ No newline at end of file diff --git a/interfaces/MockRTCExternalAnswerParams.html b/interfaces/MockRTCExternalAnswerParams.html new file mode 100644 index 0000000..03a3a3f --- /dev/null +++ b/interfaces/MockRTCExternalAnswerParams.html @@ -0,0 +1,120 @@ +MockRTCExternalAnswerParams | MockRTC API Reference
+
+ +
+ +
+

Generated using TypeDoc

+
\ No newline at end of file diff --git a/interfaces/MockRTCExternalOfferParams.html b/interfaces/MockRTCExternalOfferParams.html new file mode 100644 index 0000000..67188d0 --- /dev/null +++ b/interfaces/MockRTCExternalOfferParams.html @@ -0,0 +1,140 @@ +MockRTCExternalOfferParams | MockRTC API Reference
+
+ +
+
+
+
+ +

Interface MockRTCExternalOfferParams

+
+

Hierarchy

+
    +
  • MockRTCExternalOfferParams
+
+
+
+ +
+
+

Properties

+
+
+

Properties

+
+ +
id: string
+
+ +
+
+ +
+
+ +
setAnswer: ((answer) => Promise<void>)
+
+

Type declaration

+
    +
  • +
      +
    • (answer): Promise<void>
    • +
    • +
      +

      Parameters

      +
        +
      • +
        answer: RTCSessionDescriptionInit
      +

      Returns Promise<void>

+
+
+

Generated using TypeDoc

+
\ No newline at end of file diff --git a/interfaces/MockRTCOfferParams.html b/interfaces/MockRTCOfferParams.html new file mode 100644 index 0000000..1e3bfe9 --- /dev/null +++ b/interfaces/MockRTCOfferParams.html @@ -0,0 +1,133 @@ +MockRTCOfferParams | MockRTC API Reference
+
+ +
+
+
+
+ +

Interface MockRTCOfferParams

+
+

Hierarchy

+
    +
  • MockRTCOfferParams
+
+
+
+ +
+
+

Properties

+
+
+

Properties

+
+ +
+
+ +
+
+ +
setAnswer: ((answer) => Promise<void>)
+
+

Type declaration

+
    +
  • +
      +
    • (answer): Promise<void>
    • +
    • +
      +

      Parameters

      +
        +
      • +
        answer: RTCSessionDescriptionInit
      +

      Returns Promise<void>

+
+
+

Generated using TypeDoc

+
\ No newline at end of file diff --git a/interfaces/MockRTCOptions.html b/interfaces/MockRTCOptions.html new file mode 100644 index 0000000..3cc6890 --- /dev/null +++ b/interfaces/MockRTCOptions.html @@ -0,0 +1,122 @@ +MockRTCOptions | MockRTC API Reference
+
+ +
+
+
+
+ +

Interface MockRTCOptions

+
+

Hierarchy

+
    +
  • MockRTCOptions
+
+
+
+ +
+
+

Properties

+
+
+

Properties

+
+ +
debug?: boolean
+

Should the server print extra debug information?

+
+
+
+ +
recordMessages?: boolean
+

Whether or not all DataChannel messages should be saved for later examination. +This can be useful in quick testing, but may use large amounts of data if +enabled when proxying lots of traffic.

+

Defaults to false.

+
+
+
+
+

Generated using TypeDoc

+
\ No newline at end of file diff --git a/interfaces/MockRTCPeer.html b/interfaces/MockRTCPeer.html new file mode 100644 index 0000000..62f9d44 --- /dev/null +++ b/interfaces/MockRTCPeer.html @@ -0,0 +1,274 @@ +MockRTCPeer | MockRTC API Reference
+
+ +
+
+
+
+ +

Interface MockRTCPeer

+
+

A MockRTC peer represents a target you can connect to, and exposes an API to create +offers or answers to create new connections.

+

Peers have defined behaviour, and each connection will be handled accordingly and +independently.

+

Peers can also optionally track all the messages and metadata across all their +connections.

+
+
+
+

Hierarchy

+
    +
  • MockRTCPeer
+
+

Implemented by

+
+
+
+
+ +
+
+

Properties

+
+ +
peerId: string
+
+

Methods

+
+ +
    + +
  • +

    Takes an offer for a WebRTC connection elsewhere, and creates an answer to create +an external connection to this peer.

    +

    External connections are used for proxying traffic. They do not do anything +by default (so they ignore this peer's configured steps) but a mock connection +can be connected to an external connection using methods like +thenPassThrough.

    +

    Returns a set of answer parameters: an external connection id, the answer itself, +and a session to renegotiate the connection in future.

    +
    +
    +

    Parameters

    +
      +
    • +
      offer: RTCSessionDescriptionInit
    • +
    • +
      Optional options: AnswerOptions
    +

    Returns Promise<MockRTCExternalAnswerParams>

    +
+
+ +
    + +
  • +

    Takes an offer for a WebRTC connection elsewhere, and creates an answer to +connect that to this peer.

    +

    Returns a set of answer parameters: the answer itself, and a session to renegotiate +the connection in future.

    +
    +
    +

    Parameters

    +
      +
    • +
      offer: RTCSessionDescriptionInit
    • +
    • +
      Optional options: AnswerOptions
    +

    Returns Promise<MockRTCAnswerParams>

    +
+
+ +
    + +
  • +

    Creates an offer for a new external connection to this mock peer.

    +

    External connections are used for proxying traffic. They do not do anything +by default (so they ignore this peer's configured steps) but a mock connection +can be connected to an external connection using methods like +thenPassThrough.

    +

    Returns a set of offer parameters: an external connection id, the offer itself, +a session to renegotiate the connection in future, and a setAnswer callback to +call with an answer once you have one.

    +
    +
    +

    Parameters

    +
    +

    Returns Promise<MockRTCExternalOfferParams>

    +
+
+ +
    + +
  • +

    Creates an offer for a new connection to this mock peer.

    +

    Returns a set of offer parameters: the offer itself, a session to renegotiate +the connection in future, and a setAnswer callback to call with an answer +once you have one.

    +
    +
    +

    Parameters

    +
    +

    Returns Promise<MockRTCOfferParams>

    +
+
+ +
    + +
  • +

    Retrieve an array of all data channel messages that this peer has received on +all connections.

    +
    +

    Returns Promise<(string | Buffer)[]>

    +
+
+ +
    + +
  • +

    Retrieve an array of all data channel messages on a specific channel that this +peer has received on all connections.

    +
    +
    +

    Parameters

    +
      +
    • +
      channelName: string
    +

    Returns Promise<(string | Buffer)[]>

    +
+
+ +
    + +
  • +

    Takes a connection id, and returns the associated session.

    +

    This is useful for advanced use cases, where keeping the session returned by other +setup methods is inconvenient, and it's easier to keep ids and look up sessions +on demand instead.

    +
    +
    +

    Parameters

    +
      +
    • +
      id: string
    +

    Returns MockRTCSession

    +
+
+
+

Generated using TypeDoc

+
\ No newline at end of file diff --git a/interfaces/MockRTCPeerBuilder.html b/interfaces/MockRTCPeerBuilder.html new file mode 100644 index 0000000..0a383a0 --- /dev/null +++ b/interfaces/MockRTCPeerBuilder.html @@ -0,0 +1,396 @@ +MockRTCPeerBuilder | MockRTC API Reference
+
+ +
+
+
+
+ +

Interface MockRTCPeerBuilder

+
+

The builder logic for composing RTC handling behaviour for both mock peers and rules, +by internally queuing defined actions until a .thenX() method is called to compile +the actions into either a peer or a rule (handled by an constructor callback param).

+
+
+
+

Hierarchy

+
+
+
+
+ +
+
+

Steps

+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+

Final Steps

+
+ +
+
+ +
    + +
  • +

    Echo all incoming data channel messages until the other peer closes the +connection.

    +

    This defines a final step, and will then create a mock peer from the full +set of steps you've defined, and return it wrapped in a promise. As soon +as the promise resolves the peer is ready to use.

    +
    +

    Returns Promise<MockRTCPeer>

    +
+
+ +
    + +
  • +

    Creates a new external connection to the given remote peer connection, +matching the existing mocked connection, and then proxies all traffic +through to that peer.

    +

    This defines a final step, and will then create a mock peer from the full +set of steps you've defined, and return it wrapped in a promise. As soon +as the promise resolves the peer is ready to use.

    +
    +
    +

    Parameters

    +
      +
    • +
      peer: RTCPeerConnection
    +

    Returns Promise<MockRTCPeer>

    +
+
+ +
    + +
  • +

    Proxy this connection dynamically to the 'real' target peer, whoever +that may be.

    +

    This assumes that you have an existing external connection already +set up and attached to this mock connection.

    +

    You can do that either by using hookWebRTCConnection or +hookAllWebRTC to hook your connection during normal setup to +automatically create an external offer to the real remote peer, or you can +do so manually using createExternalOffer or +answerExternalOffer and then passing the connection +id as here.

    +

    This defines a final step, and will then create a mock peer from the full +set of steps you've defined, and return it wrapped in a promise. As soon +as the promise resolves the peer is ready to use.

    +
    +

    Returns Promise<MockRTCPeer>

    +
+
+ +
+
+
+

Generated using TypeDoc

+
\ No newline at end of file diff --git a/interfaces/MockRTCPeerOptions.html b/interfaces/MockRTCPeerOptions.html new file mode 100644 index 0000000..6b43559 --- /dev/null +++ b/interfaces/MockRTCPeerOptions.html @@ -0,0 +1,113 @@ +MockRTCPeerOptions | MockRTC API Reference
+
+ +
+ +
+

Generated using TypeDoc

+
\ No newline at end of file diff --git a/interfaces/MockRTCSession.html b/interfaces/MockRTCSession.html new file mode 100644 index 0000000..b688886 --- /dev/null +++ b/interfaces/MockRTCSession.html @@ -0,0 +1,178 @@ +MockRTCSession | MockRTC API Reference
+
+ +
+
+
+
+ +

Interface MockRTCSession

+
+

Once a connection has been created, you can access its session API. This allows +for renegotiation of an existing session, while persisting the same connection +and ongoing handling process.

+
+
+
+

Hierarchy

+
    +
  • MockRTCSession
+
+
+
+ +
+
+

Properties

+
+
+

Methods

+
+
+

Properties

+
+ +
sessionId: string
+

For most use cases explicitly using the session ID isn't necessary.

+

For some advanced use cases though, it's more convenient to store session ids and use +peer.getSession, rather than using the session property from the setup methods directly.

+
+
+
+

Methods

+
+ +
+
+ +
    + +
  • +

    Provide an answer to complete an offer for this session, to renegotiate the existing connection.

    +
    +
    +

    Parameters

    +
      +
    • +
      answer: RTCSessionDescriptionInit
    +

    Returns Promise<void>

    +
+
+ +
+
+
+

Generated using TypeDoc

+
\ No newline at end of file diff --git a/interfaces/MockRTCSessionDescription.html b/interfaces/MockRTCSessionDescription.html new file mode 100644 index 0000000..15faf6e --- /dev/null +++ b/interfaces/MockRTCSessionDescription.html @@ -0,0 +1,113 @@ +MockRTCSessionDescription | MockRTC API Reference
+
+ +
+ +
+

Generated using TypeDoc

+
\ No newline at end of file diff --git a/interfaces/OfferOptions.html b/interfaces/OfferOptions.html new file mode 100644 index 0000000..b414032 --- /dev/null +++ b/interfaces/OfferOptions.html @@ -0,0 +1,139 @@ +OfferOptions | MockRTC API Reference
+
+ +
+
+
+
+ +

Interface OfferOptions

+
+

Hierarchy

+
    +
  • OfferOptions
+
+
+
+ +
+
+

Properties

+
+ +
addDataStream?: boolean
+

When using mirrorSDP, for SDP that only defines video/audio media we will +receive an offer with no data stream attached. This can be a problem for +proxied connections, which need a data stream to hook up the external +connection later. If addDataStream is set to true, a data stream will always +be created even if not present in the mirrored SDP.

+

This option has no effect if mirrorSDP is not set.

+
+
+
+ +
connectionMetadata?: ConnectionMetadata
+

Extra metadata to associate with the connection. This will be exposed on +events like peer-connected, and can be used to add context to connections.

+

If this value is provided during renegotiation, it is merged key-wise with +any existing metadata value for the connection (i.e. existing metadata +values will not change, unless a new value for the same key is provided).

+
+
+
+ +
mirrorSDP?: string
+

A raw SDP string that should be mirrored (best efforts) where possible to +create an equivalent offer, including the same media with the same params.

+
+
+
+
+

Generated using TypeDoc

+
\ No newline at end of file diff --git a/interfaces/PluggableAdmin.AdminClientOptions.html b/interfaces/PluggableAdmin.AdminClientOptions.html new file mode 100644 index 0000000..5800bec --- /dev/null +++ b/interfaces/PluggableAdmin.AdminClientOptions.html @@ -0,0 +1,156 @@ +AdminClientOptions | MockRTC API Reference
+
+ +
+
+
+
+ +

Interface AdminClientOptions

+
+

Hierarchy

+
    +
  • AdminClientOptions
+
+
+
+ +
+
+

Properties

+
+ +
adminServerUrl?: string
+

The full URL to use to connect to a Mockttp admin server when using a +remote (or local but browser) client.

+

When using a local server, this option is ignored.

+
+
+
+ +
debug?: boolean
+

Should the client print extra debug information?

+
+
+
+ +
requestOptions?: {
    headers?: {
        [key: string]: string;
    };
}
+

Options to include on all client requests.

+
+
+

Type declaration

+
    +
  • +
    Optional headers?: {
        [key: string]: string;
    }
    +
      +
    • +
      [key: string]: string
+
+
+
+

Generated using TypeDoc

+
\ No newline at end of file diff --git a/interfaces/PluggableAdmin.AdminPlugin.html b/interfaces/PluggableAdmin.AdminPlugin.html new file mode 100644 index 0000000..041a979 --- /dev/null +++ b/interfaces/PluggableAdmin.AdminPlugin.html @@ -0,0 +1,224 @@ +AdminPlugin | MockRTC API Reference
+
+ +
+
+
+
+ +

Interface AdminPlugin<StartParams, ClientResponse>

+
+

Type Parameters

+
    +
  • +

    StartParams

  • +
  • +

    ClientResponse

+
+

Hierarchy

+
    +
  • AdminPlugin
+
+

Implemented by

+
+
+
+
+ +
+
+

Properties

+
+ +
buildResolvers: ((stream, ruleParameters) => IResolvers<any, any, Record<string, any>, any>)
+
+

Type declaration

+
    +
  • +
      +
    • (stream, ruleParameters): IResolvers<any, any, Record<string, any>, any>
    • +
    • +
      +

      Parameters

      +
        +
      • +
        stream: Duplex
      • +
      • +
        ruleParameters: {
            [key: string]: any;
        }
        +
          +
        • +
          [key: string]: any
      +

      Returns IResolvers<any, any, Record<string, any>, any>

+
+ +
enableDebug?: (() => void)
+
+

Type declaration

+
    +
  • +
      +
    • (): void
    • +
    • +

      Returns void

+
+ +
reset?: (() => MaybePromise<void>)
+
+

Type declaration

+
    +
  • +
      +
    • (): MaybePromise<void>
    • +
    • +

      Returns MaybePromise<void>

+
+ +
schema: string | DocumentNode
+
+ +
start: ((options) => MaybePromise<ClientResponse>)
+
+

Type declaration

+
    +
  • +
      +
    • (options): MaybePromise<ClientResponse>
    • +
    • +
      +

      Parameters

      +
        +
      • +
        options: StartParams
      +

      Returns MaybePromise<ClientResponse>

+
+ +
stop: (() => MaybePromise<void>)
+
+

Type declaration

+
    +
  • +
      +
    • (): MaybePromise<void>
    • +
    • +

      Returns MaybePromise<void>

+
+
+

Generated using TypeDoc

+
\ No newline at end of file diff --git a/interfaces/PluggableAdmin.AdminQuery.html b/interfaces/PluggableAdmin.AdminQuery.html new file mode 100644 index 0000000..a4d84ae --- /dev/null +++ b/interfaces/PluggableAdmin.AdminQuery.html @@ -0,0 +1,162 @@ +AdminQuery | MockRTC API Reference
+
+ +
+
+
+
+ +

Interface AdminQuery<Response, Result>

+
+

Type Parameters

+
    +
  • +

    Response extends unknown

  • +
  • +

    Result extends unknown = Response

+
+

Hierarchy

+
    +
  • AdminQuery
+
+
+
+ +
+
+

Properties

+
+
+

Properties

+
+ +
query: DocumentNode
+
+ +
transformResponse?: ((result, context) => MaybePromise<Result>)
+
+

Type declaration

+
    +
  • +
      +
    • (result, context): MaybePromise<Result>
    • +
    • +
      +

      Parameters

      +
      +

      Returns MaybePromise<Result>

+
+ +
variables?: {}
+
+

Type declaration

+
    +
    +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/interfaces/PluggableAdmin.AdminServerOptions.html b/interfaces/PluggableAdmin.AdminServerOptions.html new file mode 100644 index 0000000..93fbbf0 --- /dev/null +++ b/interfaces/PluggableAdmin.AdminServerOptions.html @@ -0,0 +1,190 @@ +AdminServerOptions | MockRTC API Reference
    +
    + +
    +
    +
    +
    + +

    Interface AdminServerOptions<Plugins>

    +
    +

    Type Parameters

    +
      +
    • +

      Plugins extends {
          [key: string]: AdminPlugin<any, any>;
      }

    +
    +

    Hierarchy

    +
      +
    • AdminServerOptions
    +
    +
    +
    + +
    +
    +

    Properties

    +
    + +
    corsOptions?: CorsOptions & {
        allowPrivateNetworkAccess?: boolean;
        strict?: boolean;
    }
    +

    Set CORS options to limit the sites which can send requests to manage this admin server.

    +
    +
    +

    Type declaration

    +
      +
    • +
      Optional allowPrivateNetworkAccess?: boolean
    • +
    • +
      Optional strict?: boolean
    +
    +
    + +
    debug?: boolean
    +

    Should the admin server print extra debug information? This enables admin server debugging +only - individual mock session debugging must be enabled separately.

    +
    +
    +
    + +
    pluginDefaults?: Partial<PluginStartParamsMap<Plugins>>
    +

    Override the default parameters for sessions started from this admin server. These values will be +used for each setting that is not explicitly specified by the client when creating a mock session.

    +
    +
    +
    + +
    ruleParameters?: {
        [key: string]: any;
    }
    +

    Some rule options can't easily be specified in remote clients, since they need to access +server-side state or Node APIs directly. To handle this, referenceable parameters can +be provided here, and referenced with a { [MOCKTTP_PARAM_REF]: <value> } value in place +of the real parameter in the remote client.

    +
    +
    +

    Type declaration

    +
      +
    • +
      [key: string]: any
    +
    +
    + +
    webSocketKeepAlive?: number
    +

    Set a keep alive frequency in milliseconds for the subscription & stream websockets of each +session, to ensure they remain connected in long-lived connections, especially in browsers which +often close quiet background connections automatically.

    +
    +
    +
    +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/interfaces/PluggableAdmin.QueryContext.html b/interfaces/PluggableAdmin.QueryContext.html new file mode 100644 index 0000000..265a4aa --- /dev/null +++ b/interfaces/PluggableAdmin.QueryContext.html @@ -0,0 +1,126 @@ +QueryContext | MockRTC API Reference
    +
    + +
    +
    +
    +
    + +

    Interface QueryContext

    +
    +

    Hierarchy

    +
      +
    • QueryContext
    +
    +
    +
    + +
    +
    +

    Properties

    +
    +
    +

    Properties

    +
    + +
    adminClient: AdminClient<{}>
    +
    +

    Type declaration

    +
      +
      +
      +

      Generated using TypeDoc

      +
      \ No newline at end of file diff --git a/interfaces/SelectedRTCCandidate.html b/interfaces/SelectedRTCCandidate.html new file mode 100644 index 0000000..fa94b04 --- /dev/null +++ b/interfaces/SelectedRTCCandidate.html @@ -0,0 +1,127 @@ +SelectedRTCCandidate | MockRTC API Reference
      +
      + +
      + +
      +

      Generated using TypeDoc

      +
      \ No newline at end of file diff --git a/interfaces/SessionData.html b/interfaces/SessionData.html new file mode 100644 index 0000000..76cddb8 --- /dev/null +++ b/interfaces/SessionData.html @@ -0,0 +1,113 @@ +SessionData | MockRTC API Reference
      +
      + +
      + +
      +

      Generated using TypeDoc

      +
      \ No newline at end of file diff --git a/interfaces/TimingEvents.html b/interfaces/TimingEvents.html new file mode 100644 index 0000000..efd8ae2 --- /dev/null +++ b/interfaces/TimingEvents.html @@ -0,0 +1,127 @@ +TimingEvents | MockRTC API Reference
      +
      + +
      +
      +
      +
      + +

      Interface TimingEvents

      +
      +

      Hierarchy

      +
        +
      • TimingEvents
      +
      +
      +
      + +
      +
      +

      Properties

      +
      + +
      connectTimestamp: number
      +
      + +
      disconnectTimestamp?: number
      +
      + +
      externalAttachTimestamp?: number
      +
      + +
      startTime: number
      +
      +
      +

      Generated using TypeDoc

      +
      \ No newline at end of file diff --git a/modules/HandlerStepDefinitions.html b/modules/HandlerStepDefinitions.html new file mode 100644 index 0000000..86e91bf --- /dev/null +++ b/modules/HandlerStepDefinitions.html @@ -0,0 +1,129 @@ +HandlerStepDefinitions | MockRTC API Reference
      +
      + +
      +
      + +
      +
      +

      Generated using TypeDoc

      +
      \ No newline at end of file diff --git a/modules/MatcherDefinitions.html b/modules/MatcherDefinitions.html new file mode 100644 index 0000000..521081c --- /dev/null +++ b/modules/MatcherDefinitions.html @@ -0,0 +1,121 @@ +MatcherDefinitions | MockRTC API Reference
      +
      + +
      +
      + +
      +
      +

      Generated using TypeDoc

      +
      \ No newline at end of file diff --git a/modules/PluggableAdmin.Serialization.html b/modules/PluggableAdmin.Serialization.html new file mode 100644 index 0000000..c4df120 --- /dev/null +++ b/modules/PluggableAdmin.Serialization.html @@ -0,0 +1,141 @@ +Serialization | MockRTC API Reference
      +
      + +
      +
      +
      +
      + +

      Namespace Serialization

      +
      +
      +

      Index

      +
      +

      Classes

      +
      +
      +

      Type Aliases

      +
      +
      +

      Functions

      +
      +
      +
      +

      Generated using TypeDoc

      +
      \ No newline at end of file diff --git a/modules/PluggableAdmin.html b/modules/PluggableAdmin.html new file mode 100644 index 0000000..023119d --- /dev/null +++ b/modules/PluggableAdmin.html @@ -0,0 +1,125 @@ +PluggableAdmin | MockRTC API Reference
      +
      + +
      +
      +
      +
      + +

      Namespace PluggableAdmin

      +
      +
      +

      Index

      +
      +

      Namespaces

      +
      +
      +

      Classes

      +
      +
      +

      Interfaces

      +
      +
      +

      Type Aliases

      +
      +
      +
      +

      Generated using TypeDoc

      +
      \ No newline at end of file diff --git a/types/HandlerStepDefinitions.Serializable.html b/types/HandlerStepDefinitions.Serializable.html new file mode 100644 index 0000000..fba0e9d --- /dev/null +++ b/types/HandlerStepDefinitions.Serializable.html @@ -0,0 +1,102 @@ +Serializable | MockRTC API Reference
      +
      + +
      +
      + +
      +
      +

      Generated using TypeDoc

      +
      \ No newline at end of file diff --git a/types/MatcherDefinitions.Serializable.html b/types/MatcherDefinitions.Serializable.html new file mode 100644 index 0000000..47a280d --- /dev/null +++ b/types/MatcherDefinitions.Serializable.html @@ -0,0 +1,98 @@ +Serializable | MockRTC API Reference
      +
      + +
      + +
      +

      Generated using TypeDoc

      +
      \ No newline at end of file diff --git a/types/MockRTCClientOptions.html b/types/MockRTCClientOptions.html new file mode 100644 index 0000000..0ddcf0a --- /dev/null +++ b/types/MockRTCClientOptions.html @@ -0,0 +1,82 @@ +MockRTCClientOptions | MockRTC API Reference
      +
      + +
      + +
      +

      Generated using TypeDoc

      +
      \ No newline at end of file diff --git a/types/MockRTCControlMessage.html b/types/MockRTCControlMessage.html new file mode 100644 index 0000000..6f3bd6f --- /dev/null +++ b/types/MockRTCControlMessage.html @@ -0,0 +1,96 @@ +MockRTCControlMessage | MockRTC API Reference
      +
      + +
      + +
      +

      Generated using TypeDoc

      +
      \ No newline at end of file diff --git a/types/MockRTCEvent.html b/types/MockRTCEvent.html new file mode 100644 index 0000000..7ea910c --- /dev/null +++ b/types/MockRTCEvent.html @@ -0,0 +1,82 @@ +MockRTCEvent | MockRTC API Reference
      +
      + +
      + +
      +

      Generated using TypeDoc

      +
      \ No newline at end of file diff --git a/types/MockRTCEventData.html b/types/MockRTCEventData.html new file mode 100644 index 0000000..06b56f5 --- /dev/null +++ b/types/MockRTCEventData.html @@ -0,0 +1,252 @@ +MockRTCEventData | MockRTC API Reference
      +
      + +
      +
      +
      +
      + +

      Type alias MockRTCEventData

      +
      MockRTCEventData: {
          data-channel-closed: {
              channelId: number;
              eventTimestamp: number;
              peerId: string;
              sessionId: string;
              timingEvents: TimingEvents;
          };
          data-channel-message-received: {
              channelId: number;
              content: Buffer;
              direction: "received";
              eventTimestamp: number;
              isBinary: boolean;
              peerId: string;
              sessionId: string;
              timingEvents: TimingEvents;
          };
          data-channel-message-sent: {
              channelId: number;
              content: Buffer;
              direction: "sent";
              eventTimestamp: number;
              isBinary: boolean;
              peerId: string;
              sessionId: string;
              timingEvents: TimingEvents;
          };
          data-channel-opened: {
              channelId: number;
              channelLabel: string;
              channelProtocol: string;
              eventTimestamp: number;
              peerId: string;
              sessionId: string;
              timingEvents: TimingEvents;
          };
          external-peer-attached: {
              externalConnection: {
                  localSessionDescription: MockRTCSessionDescription;
                  peerId: string;
                  remoteSessionDescription: MockRTCSessionDescription;
                  selectedLocalCandidate: SelectedRTCCandidate;
                  selectedRemoteCandidate: SelectedRTCCandidate;
                  sessionId: string;
              };
              peerId: string;
              sessionId: string;
              timingEvents: TimingEvents;
          };
          media-track-closed: {
              eventTimestamp: number;
              peerId: string;
              sessionId: string;
              timingEvents: TimingEvents;
              trackMid: string;
          };
          media-track-opened: {
              eventTimestamp: number;
              peerId: string;
              sessionId: string;
              timingEvents: TimingEvents;
              trackDirection: string;
              trackMid: string;
              trackType: string;
          };
          media-track-stats: {
              eventTimestamp: number;
              peerId: string;
              sessionId: string;
              timingEvents: TimingEvents;
              totalBytesReceived: number;
              totalBytesSent: number;
              trackMid: string;
          };
          peer-connected: {
              localSessionDescription: MockRTCSessionDescription;
              metadata: ConnectionMetadata;
              peerId: string;
              remoteSessionDescription: MockRTCSessionDescription;
              selectedLocalCandidate: SelectedRTCCandidate;
              selectedRemoteCandidate: SelectedRTCCandidate;
              sessionId: string;
              timingEvents: TimingEvents;
          };
          peer-disconnected: {
              peerId: string;
              sessionId: string;
              timingEvents: TimingEvents;
          };
      }
      +
      +

      Type declaration

      +
        +
      • +
        data-channel-closed: {
            channelId: number;
            eventTimestamp: number;
            peerId: string;
            sessionId: string;
            timingEvents: TimingEvents;
        }
        +
          +
        • +
          channelId: number
        • +
        • +
          eventTimestamp: number
        • +
        • +
          peerId: string
        • +
        • +
          sessionId: string
        • +
        • +
          timingEvents: TimingEvents
      • +
      • +
        data-channel-message-received: {
            channelId: number;
            content: Buffer;
            direction: "received";
            eventTimestamp: number;
            isBinary: boolean;
            peerId: string;
            sessionId: string;
            timingEvents: TimingEvents;
        }
        +
          +
        • +
          channelId: number
        • +
        • +
          content: Buffer
        • +
        • +
          direction: "received"
        • +
        • +
          eventTimestamp: number
        • +
        • +
          isBinary: boolean
        • +
        • +
          peerId: string
        • +
        • +
          sessionId: string
        • +
        • +
          timingEvents: TimingEvents
      • +
      • +
        data-channel-message-sent: {
            channelId: number;
            content: Buffer;
            direction: "sent";
            eventTimestamp: number;
            isBinary: boolean;
            peerId: string;
            sessionId: string;
            timingEvents: TimingEvents;
        }
        +
          +
        • +
          channelId: number
        • +
        • +
          content: Buffer
        • +
        • +
          direction: "sent"
        • +
        • +
          eventTimestamp: number
        • +
        • +
          isBinary: boolean
        • +
        • +
          peerId: string
        • +
        • +
          sessionId: string
        • +
        • +
          timingEvents: TimingEvents
      • +
      • +
        data-channel-opened: {
            channelId: number;
            channelLabel: string;
            channelProtocol: string;
            eventTimestamp: number;
            peerId: string;
            sessionId: string;
            timingEvents: TimingEvents;
        }
        +
          +
        • +
          channelId: number
        • +
        • +
          channelLabel: string
        • +
        • +
          channelProtocol: string
        • +
        • +
          eventTimestamp: number
        • +
        • +
          peerId: string
        • +
        • +
          sessionId: string
        • +
        • +
          timingEvents: TimingEvents
      • +
      • +
        external-peer-attached: {
            externalConnection: {
                localSessionDescription: MockRTCSessionDescription;
                peerId: string;
                remoteSessionDescription: MockRTCSessionDescription;
                selectedLocalCandidate: SelectedRTCCandidate;
                selectedRemoteCandidate: SelectedRTCCandidate;
                sessionId: string;
            };
            peerId: string;
            sessionId: string;
            timingEvents: TimingEvents;
        }
        +
      • +
      • +
        media-track-closed: {
            eventTimestamp: number;
            peerId: string;
            sessionId: string;
            timingEvents: TimingEvents;
            trackMid: string;
        }
        +
          +
        • +
          eventTimestamp: number
        • +
        • +
          peerId: string
        • +
        • +
          sessionId: string
        • +
        • +
          timingEvents: TimingEvents
        • +
        • +
          trackMid: string
      • +
      • +
        media-track-opened: {
            eventTimestamp: number;
            peerId: string;
            sessionId: string;
            timingEvents: TimingEvents;
            trackDirection: string;
            trackMid: string;
            trackType: string;
        }
        +
          +
        • +
          eventTimestamp: number
        • +
        • +
          peerId: string
        • +
        • +
          sessionId: string
        • +
        • +
          timingEvents: TimingEvents
        • +
        • +
          trackDirection: string
        • +
        • +
          trackMid: string
        • +
        • +
          trackType: string
      • +
      • +
        media-track-stats: {
            eventTimestamp: number;
            peerId: string;
            sessionId: string;
            timingEvents: TimingEvents;
            totalBytesReceived: number;
            totalBytesSent: number;
            trackMid: string;
        }
        +
          +
        • +
          eventTimestamp: number
        • +
        • +
          peerId: string
        • +
        • +
          sessionId: string
        • +
        • +
          timingEvents: TimingEvents
        • +
        • +
          totalBytesReceived: number
        • +
        • +
          totalBytesSent: number
        • +
        • +
          trackMid: string
      • +
      • +
        peer-connected: {
            localSessionDescription: MockRTCSessionDescription;
            metadata: ConnectionMetadata;
            peerId: string;
            remoteSessionDescription: MockRTCSessionDescription;
            selectedLocalCandidate: SelectedRTCCandidate;
            selectedRemoteCandidate: SelectedRTCCandidate;
            sessionId: string;
            timingEvents: TimingEvents;
        }
        +
      • +
      • +
        peer-disconnected: {
            peerId: string;
            sessionId: string;
            timingEvents: TimingEvents;
        }
        +
          +
        • +
          peerId: string
        • +
        • +
          sessionId: string
        • +
        • +
          timingEvents: TimingEvents
      +
      +
      +

      Generated using TypeDoc

      +
      \ No newline at end of file diff --git a/types/MockRTCRuleDefinition.html b/types/MockRTCRuleDefinition.html new file mode 100644 index 0000000..0957725 --- /dev/null +++ b/types/MockRTCRuleDefinition.html @@ -0,0 +1,89 @@ +MockRTCRuleDefinition | MockRTC API Reference
      +
      + +
      + +
      +

      Generated using TypeDoc

      +
      \ No newline at end of file diff --git a/types/ParsedSDP.html b/types/ParsedSDP.html new file mode 100644 index 0000000..9d5c51d --- /dev/null +++ b/types/ParsedSDP.html @@ -0,0 +1,87 @@ +ParsedSDP | MockRTC API Reference
      +
      + +
      + +
      +

      Generated using TypeDoc

      +
      \ No newline at end of file diff --git a/types/PluggableAdmin.PluginClientResponse.html b/types/PluggableAdmin.PluginClientResponse.html new file mode 100644 index 0000000..f198bad --- /dev/null +++ b/types/PluggableAdmin.PluginClientResponse.html @@ -0,0 +1,104 @@ +PluginClientResponse | MockRTC API Reference
      +
      + +
      + +
      +

      Generated using TypeDoc

      +
      \ No newline at end of file diff --git a/types/PluggableAdmin.PluginClientResponsesMap.html b/types/PluggableAdmin.PluginClientResponsesMap.html new file mode 100644 index 0000000..97a131a --- /dev/null +++ b/types/PluggableAdmin.PluginClientResponsesMap.html @@ -0,0 +1,104 @@ +PluginClientResponsesMap | MockRTC API Reference
      +
      + +
      + +
      +

      Generated using TypeDoc

      +
      \ No newline at end of file diff --git a/types/PluggableAdmin.PluginStartParams.html b/types/PluggableAdmin.PluginStartParams.html new file mode 100644 index 0000000..7a92f47 --- /dev/null +++ b/types/PluggableAdmin.PluginStartParams.html @@ -0,0 +1,104 @@ +PluginStartParams | MockRTC API Reference
      +
      + +
      + +
      +

      Generated using TypeDoc

      +
      \ No newline at end of file diff --git a/types/PluggableAdmin.PluginStartParamsMap.html b/types/PluggableAdmin.PluginStartParamsMap.html new file mode 100644 index 0000000..94a8a2f --- /dev/null +++ b/types/PluggableAdmin.PluginStartParamsMap.html @@ -0,0 +1,104 @@ +PluginStartParamsMap | MockRTC API Reference
      +
      + +
      + +
      +

      Generated using TypeDoc

      +
      \ No newline at end of file diff --git a/types/PluggableAdmin.Serialization.Serialized.html b/types/PluggableAdmin.Serialization.Serialized.html new file mode 100644 index 0000000..74a0495 --- /dev/null +++ b/types/PluggableAdmin.Serialization.Serialized.html @@ -0,0 +1,122 @@ +Serialized | MockRTC API Reference
      +
      + +
      +
      +
      + +
      Serialized<T>: {
          [K in keyof T]: T[K] extends string | undefined
              ? string | undefined
              : T[K] extends unknown[]
                  ? SerializedValue<T[K][0]>[]
                  : SerializedValue<T[K]>
      }
      +
      +

      Type Parameters

      +
        +
      • +

        T

      +
      +
      +

      Generated using TypeDoc

      +
      \ No newline at end of file diff --git a/types/PluggableAdmin.Serialization.SerializedProxyConfig.html b/types/PluggableAdmin.Serialization.SerializedProxyConfig.html new file mode 100644 index 0000000..f3d7094 --- /dev/null +++ b/types/PluggableAdmin.Serialization.SerializedProxyConfig.html @@ -0,0 +1,117 @@ +SerializedProxyConfig | MockRTC API Reference
      +
      + +
      +
      +
      + +
      SerializedProxyConfig: ProxySetting | string | undefined | SerializedRuleParameterReference<ProxySettingSource> | SerializedProxyConfig[]
      +
      +
      +

      Generated using TypeDoc

      +
      \ No newline at end of file diff --git a/types/PluggableAdmin.Serialization.SerializedRuleParameterReference.html b/types/PluggableAdmin.Serialization.SerializedRuleParameterReference.html new file mode 100644 index 0000000..d4e1b3c --- /dev/null +++ b/types/PluggableAdmin.Serialization.SerializedRuleParameterReference.html @@ -0,0 +1,127 @@ +SerializedRuleParameterReference | MockRTC API Reference
      +
      + +
      +
      +
      +
      + +

      Type alias SerializedRuleParameterReference<R>

      +
      SerializedRuleParameterReference<R>: {
          __mockttp__param__reference__: string;
      }
      +
      +

      Type Parameters

      +
        +
      • +

        R

      +
      +

      Type declaration

      +
        +
      • +
        __mockttp__param__reference__: string
      +
      +
      +

      Generated using TypeDoc

      +
      \ No newline at end of file diff --git a/types/PluggableAdmin.Serialization.SerializedValue.html b/types/PluggableAdmin.Serialization.SerializedValue.html new file mode 100644 index 0000000..3e845b7 --- /dev/null +++ b/types/PluggableAdmin.Serialization.SerializedValue.html @@ -0,0 +1,127 @@ +SerializedValue | MockRTC API Reference
      +
      + +
      +
      +
      + +
      SerializedValue<T>: T & {
          topicId: string;
      }
      +
      +

      Type Parameters

      +
        +
      • +

        T

      +
      +

      Type declaration

      +
        +
      • +
        topicId: string
      +
      +
      +

      Generated using TypeDoc

      +
      \ No newline at end of file diff --git a/types/RuleHandlerBuilder.html b/types/RuleHandlerBuilder.html new file mode 100644 index 0000000..0bc2cc5 --- /dev/null +++ b/types/RuleHandlerBuilder.html @@ -0,0 +1,82 @@ +RuleHandlerBuilder | MockRTC API Reference
      +
      + +
      + +
      +

      Generated using TypeDoc

      +
      \ No newline at end of file diff --git a/variables/HandlerStepDefinitions.Serializable-1.html b/variables/HandlerStepDefinitions.Serializable-1.html new file mode 100644 index 0000000..a5b42b1 --- /dev/null +++ b/variables/HandlerStepDefinitions.Serializable-1.html @@ -0,0 +1,102 @@ +Serializable | MockRTC API Reference
      +
      + +
      +
      + +
      +
      +

      Generated using TypeDoc

      +
      \ No newline at end of file diff --git a/variables/HandlerStepDefinitions.StepDefinitionLookup.html b/variables/HandlerStepDefinitions.StepDefinitionLookup.html new file mode 100644 index 0000000..bec26ae --- /dev/null +++ b/variables/HandlerStepDefinitions.StepDefinitionLookup.html @@ -0,0 +1,126 @@ +StepDefinitionLookup | MockRTC API Reference
      +
      + +
      +
      +
      +
      + +

      Variable StepDefinitionLookupConst

      +
      StepDefinitionLookup: {
          close-rtc-connection: typeof CloseStepDefinition;
          create-rtc-data-channel: typeof CreateChannelStepDefinition;
          echo-rtc: typeof EchoStepDefinition;
          rtc-dynamic-proxy: typeof DynamicProxyStepDefinition;
          rtc-peer-proxy: typeof PeerProxyStepDefinition;
          send-rtc-data-message: typeof SendStepDefinition;
          wait-for-duration: typeof WaitForDurationStepDefinition;
          wait-for-rtc-data-channel: typeof WaitForChannelStepDefinition;
          wait-for-rtc-media: typeof WaitForMediaStepDefinition;
          wait-for-rtc-message: typeof WaitForMessageStepDefinition;
          wait-for-rtc-track: typeof WaitForTrackStepDefinition;
      } = ...
      +
      +

      Type declaration

      +
      +
      +
      +

      Generated using TypeDoc

      +
      \ No newline at end of file diff --git a/variables/MOCKRTC_CONTROL_CHANNEL.html b/variables/MOCKRTC_CONTROL_CHANNEL.html new file mode 100644 index 0000000..81782d8 --- /dev/null +++ b/variables/MOCKRTC_CONTROL_CHANNEL.html @@ -0,0 +1,82 @@ +MOCKRTC_CONTROL_CHANNEL | MockRTC API Reference
      +
      + +
      + +
      +

      Generated using TypeDoc

      +
      \ No newline at end of file diff --git a/variables/MatcherDefinitions.MatcherDefinitionLookup.html b/variables/MatcherDefinitions.MatcherDefinitionLookup.html new file mode 100644 index 0000000..1324d58 --- /dev/null +++ b/variables/MatcherDefinitions.MatcherDefinitionLookup.html @@ -0,0 +1,114 @@ +MatcherDefinitionLookup | MockRTC API Reference
      +
      + +
      +
      +
      +
      + +

      Variable MatcherDefinitionLookupConst

      +
      MatcherDefinitionLookup: {
          has-rtc-audio-track: typeof HasAudioTrackMatcherDefinition;
          has-rtc-data-channel: typeof HasDataChannelMatcherDefinition;
          has-rtc-media-track: typeof HasMediaTrackMatcherDefinition;
          has-rtc-video-track: typeof HasVideoTrackMatcherDefinition;
          rtc-page-hostname: typeof HostnameMatcherDefinition;
          rtc-page-regex: typeof UrlRegexMatcherDefinition;
          rtc-user-agent-regex: typeof UserAgentRegexMatcherDefinition;
      } = ...
      +
      +

      Type declaration

      +
      +
      +
      +

      Generated using TypeDoc

      +
      \ No newline at end of file diff --git a/variables/MatcherDefinitions.Serializable-1.html b/variables/MatcherDefinitions.Serializable-1.html new file mode 100644 index 0000000..eba0ef2 --- /dev/null +++ b/variables/MatcherDefinitions.Serializable-1.html @@ -0,0 +1,98 @@ +Serializable | MockRTC API Reference
      +
      + +
      + +
      +

      Generated using TypeDoc

      +
      \ No newline at end of file