aboutsummaryrefslogtreecommitdiff
path: root/api1/pl.treksoft.kvision.remote
diff options
context:
space:
mode:
Diffstat (limited to 'api1/pl.treksoft.kvision.remote')
-rw-r--r--api1/pl.treksoft.kvision.remote/-call-agent/-init-.html15
-rw-r--r--api1/pl.treksoft.kvision.remote/-call-agent/index.html65
-rw-r--r--api1/pl.treksoft.kvision.remote/-call-agent/json-rpc-call.html24
-rw-r--r--api1/pl.treksoft.kvision.remote/-call-agent/remote-call.html28
-rw-r--r--api1/pl.treksoft.kvision.remote/-credentials/-init-.html15
-rw-r--r--api1/pl.treksoft.kvision.remote/-credentials/index.html61
-rw-r--r--api1/pl.treksoft.kvision.remote/-credentials/password.html14
-rw-r--r--api1/pl.treksoft.kvision.remote/-credentials/username.html14
-rw-r--r--api1/pl.treksoft.kvision.remote/-dummy-web-socket-session/-init-.html14
-rw-r--r--api1/pl.treksoft.kvision.remote/-dummy-web-socket-session/close.html16
-rw-r--r--api1/pl.treksoft.kvision.remote/-dummy-web-socket-session/get-accepted-protocol.html14
-rw-r--r--api1/pl.treksoft.kvision.remote/-dummy-web-socket-session/get-attributes.html14
-rw-r--r--api1/pl.treksoft.kvision.remote/-dummy-web-socket-session/get-binary-message-size-limit.html14
-rw-r--r--api1/pl.treksoft.kvision.remote/-dummy-web-socket-session/get-extensions.html14
-rw-r--r--api1/pl.treksoft.kvision.remote/-dummy-web-socket-session/get-handshake-headers.html14
-rw-r--r--api1/pl.treksoft.kvision.remote/-dummy-web-socket-session/get-id.html14
-rw-r--r--api1/pl.treksoft.kvision.remote/-dummy-web-socket-session/get-local-address.html14
-rw-r--r--api1/pl.treksoft.kvision.remote/-dummy-web-socket-session/get-principal.html14
-rw-r--r--api1/pl.treksoft.kvision.remote/-dummy-web-socket-session/get-remote-address.html14
-rw-r--r--api1/pl.treksoft.kvision.remote/-dummy-web-socket-session/get-text-message-size-limit.html14
-rw-r--r--api1/pl.treksoft.kvision.remote/-dummy-web-socket-session/get-uri.html14
-rw-r--r--api1/pl.treksoft.kvision.remote/-dummy-web-socket-session/index.html157
-rw-r--r--api1/pl.treksoft.kvision.remote/-dummy-web-socket-session/is-open.html14
-rw-r--r--api1/pl.treksoft.kvision.remote/-dummy-web-socket-session/send-message.html14
-rw-r--r--api1/pl.treksoft.kvision.remote/-dummy-web-socket-session/set-binary-message-size-limit.html14
-rw-r--r--api1/pl.treksoft.kvision.remote/-dummy-web-socket-session/set-text-message-size-limit.html14
-rw-r--r--api1/pl.treksoft.kvision.remote/-h-t-t-p_-u-n-a-u-t-h-o-r-i-z-e-d.html15
-rw-r--r--api1/pl.treksoft.kvision.remote/-j-s-o-n/index.html61
-rw-r--r--api1/pl.treksoft.kvision.remote/-j-s-o-n/nonstrict.html14
-rw-r--r--api1/pl.treksoft.kvision.remote/-j-s-o-n/plain.html14
-rw-r--r--api1/pl.treksoft.kvision.remote/-j-s-o-n/to-obj.html18
-rw-r--r--api1/pl.treksoft.kvision.remote/-k-v-controller/-init-.html15
-rw-r--r--api1/pl.treksoft.kvision.remote/-k-v-controller/application-context.html14
-rw-r--r--api1/pl.treksoft.kvision.remote/-k-v-controller/index.html73
-rw-r--r--api1/pl.treksoft.kvision.remote/-k-v-controller/k-v-mapping.html14
-rw-r--r--api1/pl.treksoft.kvision.remote/-k-v-controller/services.html14
-rw-r--r--api1/pl.treksoft.kvision.remote/-k-v-remote-agent/-init-.html15
-rw-r--r--api1/pl.treksoft.kvision.remote/-k-v-remote-agent/call-agent.html14
-rw-r--r--api1/pl.treksoft.kvision.remote/-k-v-remote-agent/call.html37
-rw-r--r--api1/pl.treksoft.kvision.remote/-k-v-remote-agent/index.html109
-rw-r--r--api1/pl.treksoft.kvision.remote/-k-v-remote-agent/service-manager.html14
-rw-r--r--api1/pl.treksoft.kvision.remote/-k-v-remote-agent/web-socket.html18
-rw-r--r--api1/pl.treksoft.kvision.remote/-k-v-service-manager/-init-.html15
-rw-r--r--api1/pl.treksoft.kvision.remote/-k-v-service-manager/-l-o-g.html14
-rw-r--r--api1/pl.treksoft.kvision.remote/-k-v-service-manager/bind.html52
-rw-r--r--api1/pl.treksoft.kvision.remote/-k-v-service-manager/calls.html14
-rw-r--r--api1/pl.treksoft.kvision.remote/-k-v-service-manager/counter.html14
-rw-r--r--api1/pl.treksoft.kvision.remote/-k-v-service-manager/delete-requests.html14
-rw-r--r--api1/pl.treksoft.kvision.remote/-k-v-service-manager/get-calls.html15
-rw-r--r--api1/pl.treksoft.kvision.remote/-k-v-service-manager/get-requests.html14
-rw-r--r--api1/pl.treksoft.kvision.remote/-k-v-service-manager/index.html177
-rw-r--r--api1/pl.treksoft.kvision.remote/-k-v-service-manager/mapper.html14
-rw-r--r--api1/pl.treksoft.kvision.remote/-k-v-service-manager/options-requests.html14
-rw-r--r--api1/pl.treksoft.kvision.remote/-k-v-service-manager/post-requests.html14
-rw-r--r--api1/pl.treksoft.kvision.remote/-k-v-service-manager/put-requests.html14
-rw-r--r--api1/pl.treksoft.kvision.remote/-k-v-service-manager/routes.html14
-rw-r--r--api1/pl.treksoft.kvision.remote/-k-v-service-manager/service-class.html14
-rw-r--r--api1/pl.treksoft.kvision.remote/-k-v-service-manager/web-socket-requests.html14
-rw-r--r--api1/pl.treksoft.kvision.remote/-k-v-service-manager/web-sockets-requests.html14
-rw-r--r--api1/pl.treksoft.kvision.remote/-k-v-web-socket-config/-init-.html15
-rw-r--r--api1/pl.treksoft.kvision.remote/-k-v-web-socket-config/application-context.html14
-rw-r--r--api1/pl.treksoft.kvision.remote/-k-v-web-socket-config/index.html94
-rw-r--r--api1/pl.treksoft.kvision.remote/-k-v-web-socket-config/register-web-socket-handlers.html14
-rw-r--r--api1/pl.treksoft.kvision.remote/-k-v-web-socket-config/route-interceptor.html14
-rw-r--r--api1/pl.treksoft.kvision.remote/-k-v-web-socket-config/services.html14
-rw-r--r--api1/pl.treksoft.kvision.remote/-k-v-web-socket-config/socket-handler.html14
-rw-r--r--api1/pl.treksoft.kvision.remote/-k-v-web-socket-config/web-socket-session.html14
-rw-r--r--api1/pl.treksoft.kvision.remote/-k-v_-r-o-u-t-e_-i-d_-a-t-t-r-i-b-u-t-e.html14
-rw-r--r--api1/pl.treksoft.kvision.remote/-login-service/-init-.html15
-rw-r--r--api1/pl.treksoft.kvision.remote/-login-service/index.html75
-rw-r--r--api1/pl.treksoft.kvision.remote/-login-service/login-agent.html14
-rw-r--r--api1/pl.treksoft.kvision.remote/-login-service/login-endpoint.html14
-rw-r--r--api1/pl.treksoft.kvision.remote/-login-service/login.html18
-rw-r--r--api1/pl.treksoft.kvision.remote/-object/-init-.html15
-rw-r--r--api1/pl.treksoft.kvision.remote/-object/index.html42
-rw-r--r--api1/pl.treksoft.kvision.remote/-profile/-profile.html14
-rw-r--r--api1/pl.treksoft.kvision.remote/-profile/-profile/-init-.html15
-rw-r--r--api1/pl.treksoft.kvision.remote/-profile/-profile/attributes.html14
-rw-r--r--api1/pl.treksoft.kvision.remote/-profile/-profile/authentication-attributes.html14
-rw-r--r--api1/pl.treksoft.kvision.remote/-profile/-profile/client-name.html14
-rw-r--r--api1/pl.treksoft.kvision.remote/-profile/-profile/display-name.html14
-rw-r--r--api1/pl.treksoft.kvision.remote/-profile/-profile/email.html14
-rw-r--r--api1/pl.treksoft.kvision.remote/-profile/-profile/family-name.html14
-rw-r--r--api1/pl.treksoft.kvision.remote/-profile/-profile/first-name.html14
-rw-r--r--api1/pl.treksoft.kvision.remote/-profile/-profile/id.html14
-rw-r--r--api1/pl.treksoft.kvision.remote/-profile/-profile/index.html138
-rw-r--r--api1/pl.treksoft.kvision.remote/-profile/-profile/linked-id.html14
-rw-r--r--api1/pl.treksoft.kvision.remote/-profile/-profile/permissions.html14
-rw-r--r--api1/pl.treksoft.kvision.remote/-profile/-profile/picture-url.html14
-rw-r--r--api1/pl.treksoft.kvision.remote/-profile/-profile/profile-url.html14
-rw-r--r--api1/pl.treksoft.kvision.remote/-profile/-profile/remembered.html14
-rw-r--r--api1/pl.treksoft.kvision.remote/-profile/-profile/roles.html14
-rw-r--r--api1/pl.treksoft.kvision.remote/-profile/-profile/username.html14
-rw-r--r--api1/pl.treksoft.kvision.remote/-profile/index.html140
-rw-r--r--api1/pl.treksoft.kvision.remote/-remote-agent/find-enum-value.html14
-rw-r--r--api1/pl.treksoft.kvision.remote/-remote-agent/index.html54
-rw-r--r--api1/pl.treksoft.kvision.remote/-security-exception/-init-.html15
-rw-r--r--api1/pl.treksoft.kvision.remote/-security-exception/index.html42
-rw-r--r--api1/pl.treksoft.kvision.remote/-security-mgr/-init-.html15
-rw-r--r--api1/pl.treksoft.kvision.remote/-security-mgr/after-error.html15
-rw-r--r--api1/pl.treksoft.kvision.remote/-security-mgr/after-login.html15
-rw-r--r--api1/pl.treksoft.kvision.remote/-security-mgr/index.html83
-rw-r--r--api1/pl.treksoft.kvision.remote/-security-mgr/login.html20
-rw-r--r--api1/pl.treksoft.kvision.remote/-security-mgr/with-auth.html18
-rw-r--r--api1/pl.treksoft.kvision.remote/-socket-closed-exception/-init-.html15
-rw-r--r--api1/pl.treksoft.kvision.remote/-socket-closed-exception/index.html54
-rw-r--r--api1/pl.treksoft.kvision.remote/-socket-closed-exception/reason.html14
-rw-r--r--api1/pl.treksoft.kvision.remote/-socket/-init-.html15
-rw-r--r--api1/pl.treksoft.kvision.remote/-socket/close.html15
-rw-r--r--api1/pl.treksoft.kvision.remote/-socket/connect.html15
-rw-r--r--api1/pl.treksoft.kvision.remote/-socket/index.html104
-rw-r--r--api1/pl.treksoft.kvision.remote/-socket/is-closed.html15
-rw-r--r--api1/pl.treksoft.kvision.remote/-socket/receive.html15
-rw-r--r--api1/pl.treksoft.kvision.remote/-socket/send.html15
-rw-r--r--api1/pl.treksoft.kvision.remote/-socket/state.html14
-rw-r--r--api1/pl.treksoft.kvision.remote/-web-socket-session-holder/index.html39
-rw-r--r--api1/pl.treksoft.kvision.remote/-web-socket-session-holder/web-socket-session.html14
-rw-r--r--api1/pl.treksoft.kvision.remote/add-path-patterns-from-services.html15
-rw-r--r--api1/pl.treksoft.kvision.remote/apply-routes.html15
-rw-r--r--api1/pl.treksoft.kvision.remote/get-web-socket-url.html15
-rw-r--r--api1/pl.treksoft.kvision.remote/index.html283
-rw-r--r--api1/pl.treksoft.kvision.remote/injector-key.html14
-rw-r--r--api1/pl.treksoft.kvision.remote/injector.html14
-rw-r--r--api1/pl.treksoft.kvision.remote/kvision-init.html18
-rw-r--r--api1/pl.treksoft.kvision.remote/obj.html15
-rw-r--r--api1/pl.treksoft.kvision.remote/with-profile.html17
126 files changed, 3491 insertions, 0 deletions
diff --git a/api1/pl.treksoft.kvision.remote/-call-agent/-init-.html b/api1/pl.treksoft.kvision.remote/-call-agent/-init-.html
new file mode 100644
index 00000000..2a46f6df
--- /dev/null
+++ b/api1/pl.treksoft.kvision.remote/-call-agent/-init-.html
@@ -0,0 +1,15 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>CallAgent.<init> - kvision</title>
+<link rel="stylesheet" href="../../../style.css">
+</HEAD>
+<BODY>
+<a href="../../index.html">kvision</a>&nbsp;/&nbsp;<a href="../index.html">pl.treksoft.kvision.remote</a>&nbsp;/&nbsp;<a href="index.html">CallAgent</a>&nbsp;/&nbsp;<a href="./-init-.html">&lt;init&gt;</a><br/>
+<br/>
+<h1>&lt;init&gt;</h1>
+<a name="pl.treksoft.kvision.remote.CallAgent$&lt;init&gt;()"></a>
+<code><span class="identifier">CallAgent</span><span class="symbol">(</span><span class="symbol">)</span></code>
+<p>An agent responsible for remote calls.</p>
+</BODY>
+</HTML>
diff --git a/api1/pl.treksoft.kvision.remote/-call-agent/index.html b/api1/pl.treksoft.kvision.remote/-call-agent/index.html
new file mode 100644
index 00000000..bd9ab025
--- /dev/null
+++ b/api1/pl.treksoft.kvision.remote/-call-agent/index.html
@@ -0,0 +1,65 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>CallAgent - kvision</title>
+<link rel="stylesheet" href="../../../style.css">
+</HEAD>
+<BODY>
+<a href="../../index.html">kvision</a>&nbsp;/&nbsp;<a href="../index.html">pl.treksoft.kvision.remote</a>&nbsp;/&nbsp;<a href="./index.html">CallAgent</a><br/>
+<br/>
+<h1>CallAgent</h1>
+<code><span class="keyword">open</span> <span class="keyword">class </span><span class="identifier">CallAgent</span></code>
+<p>An agent responsible for remote calls.</p>
+<h3>Constructors</h3>
+<table>
+<tbody>
+<tr>
+<td>
+<p><a href="-init-.html">&lt;init&gt;</a></p>
+</td>
+<td>
+<code><span class="identifier">CallAgent</span><span class="symbol">(</span><span class="symbol">)</span></code>
+<p>An agent responsible for remote calls.</p>
+</td>
+</tr>
+</tbody>
+</table>
+<h3>Functions</h3>
+<table>
+<tbody>
+<tr>
+<td>
+<p><a href="json-rpc-call.html">jsonRpcCall</a></p>
+</td>
+<td>
+<code><span class="keyword">fun </span><span class="identifier">jsonRpcCall</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.remote.CallAgent$jsonRpcCall(kotlin.String, kotlin.collections.List((kotlin.String)), pl.treksoft.kvision.remote.HttpMethod)/url">url</span><span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.remote.CallAgent$jsonRpcCall(kotlin.String, kotlin.collections.List((kotlin.String)), pl.treksoft.kvision.remote.HttpMethod)/data">data</span><span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/-list/index.html"><span class="identifier">List</span></a><span class="symbol">&lt;</span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">?</span><span class="symbol">&gt;</span>&nbsp;<span class="symbol">=</span>&nbsp;listOf()<span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.remote.CallAgent$jsonRpcCall(kotlin.String, kotlin.collections.List((kotlin.String)), pl.treksoft.kvision.remote.HttpMethod)/method">method</span><span class="symbol">:</span>&nbsp;<span class="identifier">HttpMethod</span>&nbsp;<span class="symbol">=</span>&nbsp;HttpMethod.POST<span class="symbol">)</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.js/-promise/index.html"><span class="identifier">Promise</span></a><span class="symbol">&lt;</span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">&gt;</span></code>
+<p>Makes an JSON-RPC call to the remote server.</p>
+</td>
+</tr>
+<tr>
+<td>
+<p><a href="remote-call.html">remoteCall</a></p>
+</td>
+<td>
+<code><span class="keyword">fun </span><span class="identifier">remoteCall</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.remote.CallAgent$remoteCall(kotlin.String, kotlin.Any, pl.treksoft.kvision.remote.HttpMethod, kotlin.String, kotlin.Function2((pl.treksoft.jquery.JQueryXHR, pl.treksoft.jquery.JQueryAjaxSettings, kotlin.Boolean)))/url">url</span><span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.remote.CallAgent$remoteCall(kotlin.String, kotlin.Any, pl.treksoft.kvision.remote.HttpMethod, kotlin.String, kotlin.Function2((pl.treksoft.jquery.JQueryXHR, pl.treksoft.jquery.JQueryAjaxSettings, kotlin.Boolean)))/data">data</span><span class="symbol">:</span>&nbsp;<span class="keyword">dynamic</span>&nbsp;<span class="symbol">=</span>&nbsp;null<span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.remote.CallAgent$remoteCall(kotlin.String, kotlin.Any, pl.treksoft.kvision.remote.HttpMethod, kotlin.String, kotlin.Function2((pl.treksoft.jquery.JQueryXHR, pl.treksoft.jquery.JQueryAjaxSettings, kotlin.Boolean)))/method">method</span><span class="symbol">:</span>&nbsp;<span class="identifier">HttpMethod</span>&nbsp;<span class="symbol">=</span>&nbsp;HttpMethod.GET<span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.remote.CallAgent$remoteCall(kotlin.String, kotlin.Any, pl.treksoft.kvision.remote.HttpMethod, kotlin.String, kotlin.Function2((pl.treksoft.jquery.JQueryXHR, pl.treksoft.jquery.JQueryAjaxSettings, kotlin.Boolean)))/contentType">contentType</span><span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a>&nbsp;<span class="symbol">=</span>&nbsp;"application/json"<span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.remote.CallAgent$remoteCall(kotlin.String, kotlin.Any, pl.treksoft.kvision.remote.HttpMethod, kotlin.String, kotlin.Function2((pl.treksoft.jquery.JQueryXHR, pl.treksoft.jquery.JQueryAjaxSettings, kotlin.Boolean)))/beforeSend">beforeSend</span><span class="symbol">:</span>&nbsp;<span class="symbol">(</span><span class="symbol">(</span><span class="identifier">JQueryXHR</span><span class="symbol">,</span>&nbsp;<span class="identifier">JQueryAjaxSettings</span><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html"><span class="identifier">Boolean</span></a><span class="symbol">)</span><span class="symbol">?</span>&nbsp;<span class="symbol">=</span>&nbsp;null<span class="symbol">)</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.js/-promise/index.html"><span class="identifier">Promise</span></a><span class="symbol">&lt;</span><span class="keyword">dynamic</span><span class="symbol">&gt;</span></code>
+<p>Makes a remote call to the remote server.</p>
+</td>
+</tr>
+</tbody>
+</table>
+<h3>Extension Functions</h3>
+<table>
+<tbody>
+<tr>
+<td>
+<p><a href="../../pl.treksoft.kvision.utils/kotlin.-any/create-instance.html">createInstance</a></p>
+</td>
+<td>
+<code><span class="keyword">fun </span><span class="symbol">&lt;</span><span class="identifier">T</span><span class="symbol">&gt;</span> <a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-any/index.html"><span class="identifier">Any</span></a><span class="symbol">?</span><span class="symbol">.</span><span class="identifier">createInstance</span><span class="symbol">(</span><span class="keyword">vararg</span> <span class="identifier" id="pl.treksoft.kvision.utils$createInstance(kotlin.Any, kotlin.Array((kotlin.Any)))/args">args</span><span class="symbol">:</span>&nbsp;<span class="keyword">dynamic</span><span class="symbol">)</span><span class="symbol">: </span><a href="../../pl.treksoft.kvision.utils/kotlin.-any/create-instance.html#T"><span class="identifier">T</span></a></code>
+<p>Helper function for creating JavaScript objects from dynamic constructors.</p>
+</td>
+</tr>
+</tbody>
+</table>
+</BODY>
+</HTML>
diff --git a/api1/pl.treksoft.kvision.remote/-call-agent/json-rpc-call.html b/api1/pl.treksoft.kvision.remote/-call-agent/json-rpc-call.html
new file mode 100644
index 00000000..12ab8c4a
--- /dev/null
+++ b/api1/pl.treksoft.kvision.remote/-call-agent/json-rpc-call.html
@@ -0,0 +1,24 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>CallAgent.jsonRpcCall - kvision</title>
+<link rel="stylesheet" href="../../../style.css">
+</HEAD>
+<BODY>
+<a href="../../index.html">kvision</a>&nbsp;/&nbsp;<a href="../index.html">pl.treksoft.kvision.remote</a>&nbsp;/&nbsp;<a href="index.html">CallAgent</a>&nbsp;/&nbsp;<a href="./json-rpc-call.html">jsonRpcCall</a><br/>
+<br/>
+<h1>jsonRpcCall</h1>
+<a name="pl.treksoft.kvision.remote.CallAgent$jsonRpcCall(kotlin.String, kotlin.collections.List((kotlin.String)), pl.treksoft.kvision.remote.HttpMethod)"></a>
+<code><span class="keyword">fun </span><span class="identifier">jsonRpcCall</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.remote.CallAgent$jsonRpcCall(kotlin.String, kotlin.collections.List((kotlin.String)), pl.treksoft.kvision.remote.HttpMethod)/url">url</span><span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.remote.CallAgent$jsonRpcCall(kotlin.String, kotlin.collections.List((kotlin.String)), pl.treksoft.kvision.remote.HttpMethod)/data">data</span><span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/-list/index.html"><span class="identifier">List</span></a><span class="symbol">&lt;</span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">?</span><span class="symbol">&gt;</span>&nbsp;<span class="symbol">=</span>&nbsp;listOf()<span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.remote.CallAgent$jsonRpcCall(kotlin.String, kotlin.collections.List((kotlin.String)), pl.treksoft.kvision.remote.HttpMethod)/method">method</span><span class="symbol">:</span>&nbsp;<span class="identifier">HttpMethod</span>&nbsp;<span class="symbol">=</span>&nbsp;HttpMethod.POST<span class="symbol">)</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.js/-promise/index.html"><span class="identifier">Promise</span></a><span class="symbol">&lt;</span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">&gt;</span></code>
+<p>Makes an JSON-RPC call to the remote server.</p>
+<h3>Parameters</h3>
+<p><a name="url"></a>
+<code>url</code> - an URL address</p>
+<p><a name="data"></a>
+<code>data</code> - data to be sent</p>
+<p><a name="method"></a>
+<code>method</code> - a HTTP method</p>
+<p><strong>Return</strong><br/>
+a promise of the result</p>
+</BODY>
+</HTML>
diff --git a/api1/pl.treksoft.kvision.remote/-call-agent/remote-call.html b/api1/pl.treksoft.kvision.remote/-call-agent/remote-call.html
new file mode 100644
index 00000000..136c3634
--- /dev/null
+++ b/api1/pl.treksoft.kvision.remote/-call-agent/remote-call.html
@@ -0,0 +1,28 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>CallAgent.remoteCall - kvision</title>
+<link rel="stylesheet" href="../../../style.css">
+</HEAD>
+<BODY>
+<a href="../../index.html">kvision</a>&nbsp;/&nbsp;<a href="../index.html">pl.treksoft.kvision.remote</a>&nbsp;/&nbsp;<a href="index.html">CallAgent</a>&nbsp;/&nbsp;<a href="./remote-call.html">remoteCall</a><br/>
+<br/>
+<h1>remoteCall</h1>
+<a name="pl.treksoft.kvision.remote.CallAgent$remoteCall(kotlin.String, kotlin.Any, pl.treksoft.kvision.remote.HttpMethod, kotlin.String, kotlin.Function2((pl.treksoft.jquery.JQueryXHR, pl.treksoft.jquery.JQueryAjaxSettings, kotlin.Boolean)))"></a>
+<code><span class="keyword">fun </span><span class="identifier">remoteCall</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.remote.CallAgent$remoteCall(kotlin.String, kotlin.Any, pl.treksoft.kvision.remote.HttpMethod, kotlin.String, kotlin.Function2((pl.treksoft.jquery.JQueryXHR, pl.treksoft.jquery.JQueryAjaxSettings, kotlin.Boolean)))/url">url</span><span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.remote.CallAgent$remoteCall(kotlin.String, kotlin.Any, pl.treksoft.kvision.remote.HttpMethod, kotlin.String, kotlin.Function2((pl.treksoft.jquery.JQueryXHR, pl.treksoft.jquery.JQueryAjaxSettings, kotlin.Boolean)))/data">data</span><span class="symbol">:</span>&nbsp;<span class="keyword">dynamic</span>&nbsp;<span class="symbol">=</span>&nbsp;null<span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.remote.CallAgent$remoteCall(kotlin.String, kotlin.Any, pl.treksoft.kvision.remote.HttpMethod, kotlin.String, kotlin.Function2((pl.treksoft.jquery.JQueryXHR, pl.treksoft.jquery.JQueryAjaxSettings, kotlin.Boolean)))/method">method</span><span class="symbol">:</span>&nbsp;<span class="identifier">HttpMethod</span>&nbsp;<span class="symbol">=</span>&nbsp;HttpMethod.GET<span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.remote.CallAgent$remoteCall(kotlin.String, kotlin.Any, pl.treksoft.kvision.remote.HttpMethod, kotlin.String, kotlin.Function2((pl.treksoft.jquery.JQueryXHR, pl.treksoft.jquery.JQueryAjaxSettings, kotlin.Boolean)))/contentType">contentType</span><span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a>&nbsp;<span class="symbol">=</span>&nbsp;"application/json"<span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.remote.CallAgent$remoteCall(kotlin.String, kotlin.Any, pl.treksoft.kvision.remote.HttpMethod, kotlin.String, kotlin.Function2((pl.treksoft.jquery.JQueryXHR, pl.treksoft.jquery.JQueryAjaxSettings, kotlin.Boolean)))/beforeSend">beforeSend</span><span class="symbol">:</span>&nbsp;<span class="symbol">(</span><span class="symbol">(</span><span class="identifier">JQueryXHR</span><span class="symbol">,</span>&nbsp;<span class="identifier">JQueryAjaxSettings</span><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html"><span class="identifier">Boolean</span></a><span class="symbol">)</span><span class="symbol">?</span>&nbsp;<span class="symbol">=</span>&nbsp;null<span class="symbol">)</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.js/-promise/index.html"><span class="identifier">Promise</span></a><span class="symbol">&lt;</span><span class="keyword">dynamic</span><span class="symbol">&gt;</span></code>
+<p>Makes a remote call to the remote server.</p>
+<h3>Parameters</h3>
+<p><a name="url"></a>
+<code>url</code> - an URL address</p>
+<p><a name="data"></a>
+<code>data</code> - data to be sent</p>
+<p><a name="method"></a>
+<code>method</code> - a HTTP method</p>
+<p><a name="contentType"></a>
+<code>contentType</code> - a content type of the request</p>
+<p><a name="beforeSend"></a>
+<code>beforeSend</code> - a content type of the request</p>
+<p><strong>Return</strong><br/>
+a promise of the result</p>
+</BODY>
+</HTML>
diff --git a/api1/pl.treksoft.kvision.remote/-credentials/-init-.html b/api1/pl.treksoft.kvision.remote/-credentials/-init-.html
new file mode 100644
index 00000000..c80a8be6
--- /dev/null
+++ b/api1/pl.treksoft.kvision.remote/-credentials/-init-.html
@@ -0,0 +1,15 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>Credentials.<init> - kvision</title>
+<link rel="stylesheet" href="../../../style.css">
+</HEAD>
+<BODY>
+<a href="../../index.html">kvision</a>&nbsp;/&nbsp;<a href="../index.html">pl.treksoft.kvision.remote</a>&nbsp;/&nbsp;<a href="index.html">Credentials</a>&nbsp;/&nbsp;<a href="./-init-.html">&lt;init&gt;</a><br/>
+<br/>
+<h1>&lt;init&gt;</h1>
+<a name="pl.treksoft.kvision.remote.Credentials$&lt;init&gt;(kotlin.String, kotlin.String)"></a>
+<code><span class="identifier">Credentials</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.remote.Credentials$<init>(kotlin.String, kotlin.String)/username">username</span><span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">?</span>&nbsp;<span class="symbol">=</span>&nbsp;null<span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.remote.Credentials$<init>(kotlin.String, kotlin.String)/password">password</span><span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">?</span>&nbsp;<span class="symbol">=</span>&nbsp;null<span class="symbol">)</span></code>
+<p>Username and password credentials.</p>
+</BODY>
+</HTML>
diff --git a/api1/pl.treksoft.kvision.remote/-credentials/index.html b/api1/pl.treksoft.kvision.remote/-credentials/index.html
new file mode 100644
index 00000000..0f549ee5
--- /dev/null
+++ b/api1/pl.treksoft.kvision.remote/-credentials/index.html
@@ -0,0 +1,61 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>Credentials - kvision</title>
+<link rel="stylesheet" href="../../../style.css">
+</HEAD>
+<BODY>
+<a href="../../index.html">kvision</a>&nbsp;/&nbsp;<a href="../index.html">pl.treksoft.kvision.remote</a>&nbsp;/&nbsp;<a href="./index.html">Credentials</a><br/>
+<br/>
+<h1>Credentials</h1>
+<code><span class="keyword">data</span> <span class="keyword">class </span><span class="identifier">Credentials</span></code>
+<p>Username and password credentials.</p>
+<h3>Constructors</h3>
+<table>
+<tbody>
+<tr>
+<td>
+<p><a href="-init-.html">&lt;init&gt;</a></p>
+</td>
+<td>
+<code><span class="identifier">Credentials</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.remote.Credentials$<init>(kotlin.String, kotlin.String)/username">username</span><span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">?</span>&nbsp;<span class="symbol">=</span>&nbsp;null<span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.remote.Credentials$<init>(kotlin.String, kotlin.String)/password">password</span><span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">?</span>&nbsp;<span class="symbol">=</span>&nbsp;null<span class="symbol">)</span></code>
+<p>Username and password credentials.</p>
+</td>
+</tr>
+</tbody>
+</table>
+<h3>Properties</h3>
+<table>
+<tbody>
+<tr>
+<td>
+<p><a href="password.html">password</a></p>
+</td>
+<td>
+<code><span class="keyword">val </span><span class="identifier">password</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">?</span></code></td>
+</tr>
+<tr>
+<td>
+<p><a href="username.html">username</a></p>
+</td>
+<td>
+<code><span class="keyword">val </span><span class="identifier">username</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">?</span></code></td>
+</tr>
+</tbody>
+</table>
+<h3>Extension Functions</h3>
+<table>
+<tbody>
+<tr>
+<td>
+<p><a href="../../pl.treksoft.kvision.utils/kotlin.-any/create-instance.html">createInstance</a></p>
+</td>
+<td>
+<code><span class="keyword">fun </span><span class="symbol">&lt;</span><span class="identifier">T</span><span class="symbol">&gt;</span> <a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-any/index.html"><span class="identifier">Any</span></a><span class="symbol">?</span><span class="symbol">.</span><span class="identifier">createInstance</span><span class="symbol">(</span><span class="keyword">vararg</span> <span class="identifier" id="pl.treksoft.kvision.utils$createInstance(kotlin.Any, kotlin.Array((kotlin.Any)))/args">args</span><span class="symbol">:</span>&nbsp;<span class="keyword">dynamic</span><span class="symbol">)</span><span class="symbol">: </span><a href="../../pl.treksoft.kvision.utils/kotlin.-any/create-instance.html#T"><span class="identifier">T</span></a></code>
+<p>Helper function for creating JavaScript objects from dynamic constructors.</p>
+</td>
+</tr>
+</tbody>
+</table>
+</BODY>
+</HTML>
diff --git a/api1/pl.treksoft.kvision.remote/-credentials/password.html b/api1/pl.treksoft.kvision.remote/-credentials/password.html
new file mode 100644
index 00000000..64b737c4
--- /dev/null
+++ b/api1/pl.treksoft.kvision.remote/-credentials/password.html
@@ -0,0 +1,14 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>Credentials.password - kvision</title>
+<link rel="stylesheet" href="../../../style.css">
+</HEAD>
+<BODY>
+<a href="../../index.html">kvision</a>&nbsp;/&nbsp;<a href="../index.html">pl.treksoft.kvision.remote</a>&nbsp;/&nbsp;<a href="index.html">Credentials</a>&nbsp;/&nbsp;<a href="./password.html">password</a><br/>
+<br/>
+<h1>password</h1>
+<a name="pl.treksoft.kvision.remote.Credentials$password"></a>
+<code><span class="keyword">val </span><span class="identifier">password</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">?</span></code>
+</BODY>
+</HTML>
diff --git a/api1/pl.treksoft.kvision.remote/-credentials/username.html b/api1/pl.treksoft.kvision.remote/-credentials/username.html
new file mode 100644
index 00000000..e86f56dc
--- /dev/null
+++ b/api1/pl.treksoft.kvision.remote/-credentials/username.html
@@ -0,0 +1,14 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>Credentials.username - kvision</title>
+<link rel="stylesheet" href="../../../style.css">
+</HEAD>
+<BODY>
+<a href="../../index.html">kvision</a>&nbsp;/&nbsp;<a href="../index.html">pl.treksoft.kvision.remote</a>&nbsp;/&nbsp;<a href="index.html">Credentials</a>&nbsp;/&nbsp;<a href="./username.html">username</a><br/>
+<br/>
+<h1>username</h1>
+<a name="pl.treksoft.kvision.remote.Credentials$username"></a>
+<code><span class="keyword">val </span><span class="identifier">username</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">?</span></code>
+</BODY>
+</HTML>
diff --git a/api1/pl.treksoft.kvision.remote/-dummy-web-socket-session/-init-.html b/api1/pl.treksoft.kvision.remote/-dummy-web-socket-session/-init-.html
new file mode 100644
index 00000000..e850f251
--- /dev/null
+++ b/api1/pl.treksoft.kvision.remote/-dummy-web-socket-session/-init-.html
@@ -0,0 +1,14 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>DummyWebSocketSession.<init> - kvision</title>
+<link rel="stylesheet" href="../../../style.css">
+</HEAD>
+<BODY>
+<a href="../../index.html">kvision</a>&nbsp;/&nbsp;<a href="../index.html">pl.treksoft.kvision.remote</a>&nbsp;/&nbsp;<a href="index.html">DummyWebSocketSession</a>&nbsp;/&nbsp;<a href="./-init-.html">&lt;init&gt;</a><br/>
+<br/>
+<h1>&lt;init&gt;</h1>
+<a name="pl.treksoft.kvision.remote.DummyWebSocketSession$&lt;init&gt;()"></a>
+<code><span class="identifier">DummyWebSocketSession</span><span class="symbol">(</span><span class="symbol">)</span></code>
+</BODY>
+</HTML>
diff --git a/api1/pl.treksoft.kvision.remote/-dummy-web-socket-session/close.html b/api1/pl.treksoft.kvision.remote/-dummy-web-socket-session/close.html
new file mode 100644
index 00000000..ef2ae5b5
--- /dev/null
+++ b/api1/pl.treksoft.kvision.remote/-dummy-web-socket-session/close.html
@@ -0,0 +1,16 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>DummyWebSocketSession.close - kvision</title>
+<link rel="stylesheet" href="../../../style.css">
+</HEAD>
+<BODY>
+<a href="../../index.html">kvision</a>&nbsp;/&nbsp;<a href="../index.html">pl.treksoft.kvision.remote</a>&nbsp;/&nbsp;<a href="index.html">DummyWebSocketSession</a>&nbsp;/&nbsp;<a href="./close.html">close</a><br/>
+<br/>
+<h1>close</h1>
+<a name="pl.treksoft.kvision.remote.DummyWebSocketSession$close()"></a>
+<code><span class="keyword">open</span> <span class="keyword">fun </span><span class="identifier">close</span><span class="symbol">(</span><span class="symbol">)</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html"><span class="identifier">Unit</span></a></code><br/>
+<a name="pl.treksoft.kvision.remote.DummyWebSocketSession$close()"></a>
+<code><span class="keyword">open</span> <span class="keyword">fun </span><span class="identifier">close</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.remote.DummyWebSocketSession$close()/status">status</span><span class="symbol">:</span>&nbsp;<span class="identifier">&lt;ERROR CLASS&gt;</span><span class="symbol">)</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html"><span class="identifier">Unit</span></a></code>
+</BODY>
+</HTML>
diff --git a/api1/pl.treksoft.kvision.remote/-dummy-web-socket-session/get-accepted-protocol.html b/api1/pl.treksoft.kvision.remote/-dummy-web-socket-session/get-accepted-protocol.html
new file mode 100644
index 00000000..a157ed79
--- /dev/null
+++ b/api1/pl.treksoft.kvision.remote/-dummy-web-socket-session/get-accepted-protocol.html
@@ -0,0 +1,14 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>DummyWebSocketSession.getAcceptedProtocol - kvision</title>
+<link rel="stylesheet" href="../../../style.css">
+</HEAD>
+<BODY>
+<a href="../../index.html">kvision</a>&nbsp;/&nbsp;<a href="../index.html">pl.treksoft.kvision.remote</a>&nbsp;/&nbsp;<a href="index.html">DummyWebSocketSession</a>&nbsp;/&nbsp;<a href="./get-accepted-protocol.html">getAcceptedProtocol</a><br/>
+<br/>
+<h1>getAcceptedProtocol</h1>
+<a name="pl.treksoft.kvision.remote.DummyWebSocketSession$getAcceptedProtocol()"></a>
+<code><span class="keyword">open</span> <span class="keyword">fun </span><span class="identifier">getAcceptedProtocol</span><span class="symbol">(</span><span class="symbol">)</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">?</span></code>
+</BODY>
+</HTML>
diff --git a/api1/pl.treksoft.kvision.remote/-dummy-web-socket-session/get-attributes.html b/api1/pl.treksoft.kvision.remote/-dummy-web-socket-session/get-attributes.html
new file mode 100644
index 00000000..7ead65c0
--- /dev/null
+++ b/api1/pl.treksoft.kvision.remote/-dummy-web-socket-session/get-attributes.html
@@ -0,0 +1,14 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>DummyWebSocketSession.getAttributes - kvision</title>
+<link rel="stylesheet" href="../../../style.css">
+</HEAD>
+<BODY>
+<a href="../../index.html">kvision</a>&nbsp;/&nbsp;<a href="../index.html">pl.treksoft.kvision.remote</a>&nbsp;/&nbsp;<a href="index.html">DummyWebSocketSession</a>&nbsp;/&nbsp;<a href="./get-attributes.html">getAttributes</a><br/>
+<br/>
+<h1>getAttributes</h1>
+<a name="pl.treksoft.kvision.remote.DummyWebSocketSession$getAttributes()"></a>
+<code><span class="keyword">open</span> <span class="keyword">fun </span><span class="identifier">getAttributes</span><span class="symbol">(</span><span class="symbol">)</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/-mutable-map/index.html"><span class="identifier">MutableMap</span></a><span class="symbol">&lt;</span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">,</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-any/index.html"><span class="identifier">Any</span></a><span class="symbol">&gt;</span></code>
+</BODY>
+</HTML>
diff --git a/api1/pl.treksoft.kvision.remote/-dummy-web-socket-session/get-binary-message-size-limit.html b/api1/pl.treksoft.kvision.remote/-dummy-web-socket-session/get-binary-message-size-limit.html
new file mode 100644
index 00000000..3a261432
--- /dev/null
+++ b/api1/pl.treksoft.kvision.remote/-dummy-web-socket-session/get-binary-message-size-limit.html
@@ -0,0 +1,14 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>DummyWebSocketSession.getBinaryMessageSizeLimit - kvision</title>
+<link rel="stylesheet" href="../../../style.css">
+</HEAD>
+<BODY>
+<a href="../../index.html">kvision</a>&nbsp;/&nbsp;<a href="../index.html">pl.treksoft.kvision.remote</a>&nbsp;/&nbsp;<a href="index.html">DummyWebSocketSession</a>&nbsp;/&nbsp;<a href="./get-binary-message-size-limit.html">getBinaryMessageSizeLimit</a><br/>
+<br/>
+<h1>getBinaryMessageSizeLimit</h1>
+<a name="pl.treksoft.kvision.remote.DummyWebSocketSession$getBinaryMessageSizeLimit()"></a>
+<code><span class="keyword">open</span> <span class="keyword">fun </span><span class="identifier">getBinaryMessageSizeLimit</span><span class="symbol">(</span><span class="symbol">)</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html"><span class="identifier">Int</span></a></code>
+</BODY>
+</HTML>
diff --git a/api1/pl.treksoft.kvision.remote/-dummy-web-socket-session/get-extensions.html b/api1/pl.treksoft.kvision.remote/-dummy-web-socket-session/get-extensions.html
new file mode 100644
index 00000000..0e24f2ab
--- /dev/null
+++ b/api1/pl.treksoft.kvision.remote/-dummy-web-socket-session/get-extensions.html
@@ -0,0 +1,14 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>DummyWebSocketSession.getExtensions - kvision</title>
+<link rel="stylesheet" href="../../../style.css">
+</HEAD>
+<BODY>
+<a href="../../index.html">kvision</a>&nbsp;/&nbsp;<a href="../index.html">pl.treksoft.kvision.remote</a>&nbsp;/&nbsp;<a href="index.html">DummyWebSocketSession</a>&nbsp;/&nbsp;<a href="./get-extensions.html">getExtensions</a><br/>
+<br/>
+<h1>getExtensions</h1>
+<a name="pl.treksoft.kvision.remote.DummyWebSocketSession$getExtensions()"></a>
+<code><span class="keyword">open</span> <span class="keyword">fun </span><span class="identifier">getExtensions</span><span class="symbol">(</span><span class="symbol">)</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/-mutable-list/index.html"><span class="identifier">MutableList</span></a><span class="symbol">&lt;</span><span class="identifier">&lt;ERROR CLASS&gt;</span><span class="symbol">&gt;</span></code>
+</BODY>
+</HTML>
diff --git a/api1/pl.treksoft.kvision.remote/-dummy-web-socket-session/get-handshake-headers.html b/api1/pl.treksoft.kvision.remote/-dummy-web-socket-session/get-handshake-headers.html
new file mode 100644
index 00000000..bfed88a2
--- /dev/null
+++ b/api1/pl.treksoft.kvision.remote/-dummy-web-socket-session/get-handshake-headers.html
@@ -0,0 +1,14 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>DummyWebSocketSession.getHandshakeHeaders - kvision</title>
+<link rel="stylesheet" href="../../../style.css">
+</HEAD>
+<BODY>
+<a href="../../index.html">kvision</a>&nbsp;/&nbsp;<a href="../index.html">pl.treksoft.kvision.remote</a>&nbsp;/&nbsp;<a href="index.html">DummyWebSocketSession</a>&nbsp;/&nbsp;<a href="./get-handshake-headers.html">getHandshakeHeaders</a><br/>
+<br/>
+<h1>getHandshakeHeaders</h1>
+<a name="pl.treksoft.kvision.remote.DummyWebSocketSession$getHandshakeHeaders()"></a>
+<code><span class="keyword">open</span> <span class="keyword">fun </span><span class="identifier">getHandshakeHeaders</span><span class="symbol">(</span><span class="symbol">)</span><span class="symbol">: </span><span class="identifier">&lt;ERROR CLASS&gt;</span></code>
+</BODY>
+</HTML>
diff --git a/api1/pl.treksoft.kvision.remote/-dummy-web-socket-session/get-id.html b/api1/pl.treksoft.kvision.remote/-dummy-web-socket-session/get-id.html
new file mode 100644
index 00000000..a3cbf587
--- /dev/null
+++ b/api1/pl.treksoft.kvision.remote/-dummy-web-socket-session/get-id.html
@@ -0,0 +1,14 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>DummyWebSocketSession.getId - kvision</title>
+<link rel="stylesheet" href="../../../style.css">
+</HEAD>
+<BODY>
+<a href="../../index.html">kvision</a>&nbsp;/&nbsp;<a href="../index.html">pl.treksoft.kvision.remote</a>&nbsp;/&nbsp;<a href="index.html">DummyWebSocketSession</a>&nbsp;/&nbsp;<a href="./get-id.html">getId</a><br/>
+<br/>
+<h1>getId</h1>
+<a name="pl.treksoft.kvision.remote.DummyWebSocketSession$getId()"></a>
+<code><span class="keyword">open</span> <span class="keyword">fun </span><span class="identifier">getId</span><span class="symbol">(</span><span class="symbol">)</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a></code>
+</BODY>
+</HTML>
diff --git a/api1/pl.treksoft.kvision.remote/-dummy-web-socket-session/get-local-address.html b/api1/pl.treksoft.kvision.remote/-dummy-web-socket-session/get-local-address.html
new file mode 100644
index 00000000..677bf3fd
--- /dev/null
+++ b/api1/pl.treksoft.kvision.remote/-dummy-web-socket-session/get-local-address.html
@@ -0,0 +1,14 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>DummyWebSocketSession.getLocalAddress - kvision</title>
+<link rel="stylesheet" href="../../../style.css">
+</HEAD>
+<BODY>
+<a href="../../index.html">kvision</a>&nbsp;/&nbsp;<a href="../index.html">pl.treksoft.kvision.remote</a>&nbsp;/&nbsp;<a href="index.html">DummyWebSocketSession</a>&nbsp;/&nbsp;<a href="./get-local-address.html">getLocalAddress</a><br/>
+<br/>
+<h1>getLocalAddress</h1>
+<a name="pl.treksoft.kvision.remote.DummyWebSocketSession$getLocalAddress()"></a>
+<code><span class="keyword">open</span> <span class="keyword">fun </span><span class="identifier">getLocalAddress</span><span class="symbol">(</span><span class="symbol">)</span><span class="symbol">: </span><a href="https://docs.oracle.com/javase/6/docs/api/java/net/InetSocketAddress.html"><span class="identifier">InetSocketAddress</span></a><span class="symbol">?</span></code>
+</BODY>
+</HTML>
diff --git a/api1/pl.treksoft.kvision.remote/-dummy-web-socket-session/get-principal.html b/api1/pl.treksoft.kvision.remote/-dummy-web-socket-session/get-principal.html
new file mode 100644
index 00000000..e0f8f5e5
--- /dev/null
+++ b/api1/pl.treksoft.kvision.remote/-dummy-web-socket-session/get-principal.html
@@ -0,0 +1,14 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>DummyWebSocketSession.getPrincipal - kvision</title>
+<link rel="stylesheet" href="../../../style.css">
+</HEAD>
+<BODY>
+<a href="../../index.html">kvision</a>&nbsp;/&nbsp;<a href="../index.html">pl.treksoft.kvision.remote</a>&nbsp;/&nbsp;<a href="index.html">DummyWebSocketSession</a>&nbsp;/&nbsp;<a href="./get-principal.html">getPrincipal</a><br/>
+<br/>
+<h1>getPrincipal</h1>
+<a name="pl.treksoft.kvision.remote.DummyWebSocketSession$getPrincipal()"></a>
+<code><span class="keyword">open</span> <span class="keyword">fun </span><span class="identifier">getPrincipal</span><span class="symbol">(</span><span class="symbol">)</span><span class="symbol">: </span><a href="https://docs.oracle.com/javase/6/docs/api/java/security/Principal.html"><span class="identifier">Principal</span></a><span class="symbol">?</span></code>
+</BODY>
+</HTML>
diff --git a/api1/pl.treksoft.kvision.remote/-dummy-web-socket-session/get-remote-address.html b/api1/pl.treksoft.kvision.remote/-dummy-web-socket-session/get-remote-address.html
new file mode 100644
index 00000000..9a4553d3
--- /dev/null
+++ b/api1/pl.treksoft.kvision.remote/-dummy-web-socket-session/get-remote-address.html
@@ -0,0 +1,14 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>DummyWebSocketSession.getRemoteAddress - kvision</title>
+<link rel="stylesheet" href="../../../style.css">
+</HEAD>
+<BODY>
+<a href="../../index.html">kvision</a>&nbsp;/&nbsp;<a href="../index.html">pl.treksoft.kvision.remote</a>&nbsp;/&nbsp;<a href="index.html">DummyWebSocketSession</a>&nbsp;/&nbsp;<a href="./get-remote-address.html">getRemoteAddress</a><br/>
+<br/>
+<h1>getRemoteAddress</h1>
+<a name="pl.treksoft.kvision.remote.DummyWebSocketSession$getRemoteAddress()"></a>
+<code><span class="keyword">open</span> <span class="keyword">fun </span><span class="identifier">getRemoteAddress</span><span class="symbol">(</span><span class="symbol">)</span><span class="symbol">: </span><a href="https://docs.oracle.com/javase/6/docs/api/java/net/InetSocketAddress.html"><span class="identifier">InetSocketAddress</span></a><span class="symbol">?</span></code>
+</BODY>
+</HTML>
diff --git a/api1/pl.treksoft.kvision.remote/-dummy-web-socket-session/get-text-message-size-limit.html b/api1/pl.treksoft.kvision.remote/-dummy-web-socket-session/get-text-message-size-limit.html
new file mode 100644
index 00000000..3d75c92b
--- /dev/null
+++ b/api1/pl.treksoft.kvision.remote/-dummy-web-socket-session/get-text-message-size-limit.html
@@ -0,0 +1,14 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>DummyWebSocketSession.getTextMessageSizeLimit - kvision</title>
+<link rel="stylesheet" href="../../../style.css">
+</HEAD>
+<BODY>
+<a href="../../index.html">kvision</a>&nbsp;/&nbsp;<a href="../index.html">pl.treksoft.kvision.remote</a>&nbsp;/&nbsp;<a href="index.html">DummyWebSocketSession</a>&nbsp;/&nbsp;<a href="./get-text-message-size-limit.html">getTextMessageSizeLimit</a><br/>
+<br/>
+<h1>getTextMessageSizeLimit</h1>
+<a name="pl.treksoft.kvision.remote.DummyWebSocketSession$getTextMessageSizeLimit()"></a>
+<code><span class="keyword">open</span> <span class="keyword">fun </span><span class="identifier">getTextMessageSizeLimit</span><span class="symbol">(</span><span class="symbol">)</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html"><span class="identifier">Int</span></a></code>
+</BODY>
+</HTML>
diff --git a/api1/pl.treksoft.kvision.remote/-dummy-web-socket-session/get-uri.html b/api1/pl.treksoft.kvision.remote/-dummy-web-socket-session/get-uri.html
new file mode 100644
index 00000000..e49c0a4a
--- /dev/null
+++ b/api1/pl.treksoft.kvision.remote/-dummy-web-socket-session/get-uri.html
@@ -0,0 +1,14 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>DummyWebSocketSession.getUri - kvision</title>
+<link rel="stylesheet" href="../../../style.css">
+</HEAD>
+<BODY>
+<a href="../../index.html">kvision</a>&nbsp;/&nbsp;<a href="../index.html">pl.treksoft.kvision.remote</a>&nbsp;/&nbsp;<a href="index.html">DummyWebSocketSession</a>&nbsp;/&nbsp;<a href="./get-uri.html">getUri</a><br/>
+<br/>
+<h1>getUri</h1>
+<a name="pl.treksoft.kvision.remote.DummyWebSocketSession$getUri()"></a>
+<code><span class="keyword">open</span> <span class="keyword">fun </span><span class="identifier">getUri</span><span class="symbol">(</span><span class="symbol">)</span><span class="symbol">: </span><a href="https://docs.oracle.com/javase/6/docs/api/java/net/URI.html"><span class="identifier">URI</span></a><span class="symbol">?</span></code>
+</BODY>
+</HTML>
diff --git a/api1/pl.treksoft.kvision.remote/-dummy-web-socket-session/index.html b/api1/pl.treksoft.kvision.remote/-dummy-web-socket-session/index.html
new file mode 100644
index 00000000..082ff9d0
--- /dev/null
+++ b/api1/pl.treksoft.kvision.remote/-dummy-web-socket-session/index.html
@@ -0,0 +1,157 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>DummyWebSocketSession - kvision</title>
+<link rel="stylesheet" href="../../../style.css">
+</HEAD>
+<BODY>
+<a href="../../index.html">kvision</a>&nbsp;/&nbsp;<a href="../index.html">pl.treksoft.kvision.remote</a>&nbsp;/&nbsp;<a href="./index.html">DummyWebSocketSession</a><br/>
+<br/>
+<h1>DummyWebSocketSession</h1>
+<code><span class="keyword">open</span> <span class="keyword">class </span><span class="identifier">DummyWebSocketSession</span></code>
+<h3>Constructors</h3>
+<table>
+<tbody>
+<tr>
+<td>
+<p><a href="-init-.html">&lt;init&gt;</a></p>
+</td>
+<td>
+<code><span class="identifier">DummyWebSocketSession</span><span class="symbol">(</span><span class="symbol">)</span></code></td>
+</tr>
+</tbody>
+</table>
+<h3>Functions</h3>
+<table>
+<tbody>
+<tr>
+<td>
+<p><a href="close.html">close</a></p>
+</td>
+<td>
+<code><span class="keyword">open</span> <span class="keyword">fun </span><span class="identifier">close</span><span class="symbol">(</span><span class="symbol">)</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html"><span class="identifier">Unit</span></a></code><br/>
+<code><span class="keyword">open</span> <span class="keyword">fun </span><span class="identifier">close</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.remote.DummyWebSocketSession$close()/status">status</span><span class="symbol">:</span>&nbsp;<span class="identifier">&lt;ERROR CLASS&gt;</span><span class="symbol">)</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html"><span class="identifier">Unit</span></a></code></td>
+</tr>
+<tr>
+<td>
+<p><a href="get-accepted-protocol.html">getAcceptedProtocol</a></p>
+</td>
+<td>
+<code><span class="keyword">open</span> <span class="keyword">fun </span><span class="identifier">getAcceptedProtocol</span><span class="symbol">(</span><span class="symbol">)</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">?</span></code></td>
+</tr>
+<tr>
+<td>
+<p><a href="get-attributes.html">getAttributes</a></p>
+</td>
+<td>
+<code><span class="keyword">open</span> <span class="keyword">fun </span><span class="identifier">getAttributes</span><span class="symbol">(</span><span class="symbol">)</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/-mutable-map/index.html"><span class="identifier">MutableMap</span></a><span class="symbol">&lt;</span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">,</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-any/index.html"><span class="identifier">Any</span></a><span class="symbol">&gt;</span></code></td>
+</tr>
+<tr>
+<td>
+<p><a href="get-binary-message-size-limit.html">getBinaryMessageSizeLimit</a></p>
+</td>
+<td>
+<code><span class="keyword">open</span> <span class="keyword">fun </span><span class="identifier">getBinaryMessageSizeLimit</span><span class="symbol">(</span><span class="symbol">)</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html"><span class="identifier">Int</span></a></code></td>
+</tr>
+<tr>
+<td>
+<p><a href="get-extensions.html">getExtensions</a></p>
+</td>
+<td>
+<code><span class="keyword">open</span> <span class="keyword">fun </span><span class="identifier">getExtensions</span><span class="symbol">(</span><span class="symbol">)</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/-mutable-list/index.html"><span class="identifier">MutableList</span></a><span class="symbol">&lt;</span><span class="identifier">&lt;ERROR CLASS&gt;</span><span class="symbol">&gt;</span></code></td>
+</tr>
+<tr>
+<td>
+<p><a href="get-handshake-headers.html">getHandshakeHeaders</a></p>
+</td>
+<td>
+<code><span class="keyword">open</span> <span class="keyword">fun </span><span class="identifier">getHandshakeHeaders</span><span class="symbol">(</span><span class="symbol">)</span><span class="symbol">: </span><span class="identifier">&lt;ERROR CLASS&gt;</span></code></td>
+</tr>
+<tr>
+<td>
+<p><a href="get-id.html">getId</a></p>
+</td>
+<td>
+<code><span class="keyword">open</span> <span class="keyword">fun </span><span class="identifier">getId</span><span class="symbol">(</span><span class="symbol">)</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a></code></td>
+</tr>
+<tr>
+<td>
+<p><a href="get-local-address.html">getLocalAddress</a></p>
+</td>
+<td>
+<code><span class="keyword">open</span> <span class="keyword">fun </span><span class="identifier">getLocalAddress</span><span class="symbol">(</span><span class="symbol">)</span><span class="symbol">: </span><a href="https://docs.oracle.com/javase/6/docs/api/java/net/InetSocketAddress.html"><span class="identifier">InetSocketAddress</span></a><span class="symbol">?</span></code></td>
+</tr>
+<tr>
+<td>
+<p><a href="get-principal.html">getPrincipal</a></p>
+</td>
+<td>
+<code><span class="keyword">open</span> <span class="keyword">fun </span><span class="identifier">getPrincipal</span><span class="symbol">(</span><span class="symbol">)</span><span class="symbol">: </span><a href="https://docs.oracle.com/javase/6/docs/api/java/security/Principal.html"><span class="identifier">Principal</span></a><span class="symbol">?</span></code></td>
+</tr>
+<tr>
+<td>
+<p><a href="get-remote-address.html">getRemoteAddress</a></p>
+</td>
+<td>
+<code><span class="keyword">open</span> <span class="keyword">fun </span><span class="identifier">getRemoteAddress</span><span class="symbol">(</span><span class="symbol">)</span><span class="symbol">: </span><a href="https://docs.oracle.com/javase/6/docs/api/java/net/InetSocketAddress.html"><span class="identifier">InetSocketAddress</span></a><span class="symbol">?</span></code></td>
+</tr>
+<tr>
+<td>
+<p><a href="get-text-message-size-limit.html">getTextMessageSizeLimit</a></p>
+</td>
+<td>
+<code><span class="keyword">open</span> <span class="keyword">fun </span><span class="identifier">getTextMessageSizeLimit</span><span class="symbol">(</span><span class="symbol">)</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html"><span class="identifier">Int</span></a></code></td>
+</tr>
+<tr>
+<td>
+<p><a href="get-uri.html">getUri</a></p>
+</td>
+<td>
+<code><span class="keyword">open</span> <span class="keyword">fun </span><span class="identifier">getUri</span><span class="symbol">(</span><span class="symbol">)</span><span class="symbol">: </span><a href="https://docs.oracle.com/javase/6/docs/api/java/net/URI.html"><span class="identifier">URI</span></a><span class="symbol">?</span></code></td>
+</tr>
+<tr>
+<td>
+<p><a href="is-open.html">isOpen</a></p>
+</td>
+<td>
+<code><span class="keyword">open</span> <span class="keyword">fun </span><span class="identifier">isOpen</span><span class="symbol">(</span><span class="symbol">)</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html"><span class="identifier">Boolean</span></a></code></td>
+</tr>
+<tr>
+<td>
+<p><a href="send-message.html">sendMessage</a></p>
+</td>
+<td>
+<code><span class="keyword">open</span> <span class="keyword">fun </span><span class="identifier">sendMessage</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.remote.DummyWebSocketSession$sendMessage((()))/message">message</span><span class="symbol">:</span>&nbsp;<span class="identifier">&lt;ERROR CLASS&gt;</span><span class="symbol">&lt;</span><span class="keyword">out</span>&nbsp;<span class="identifier">&lt;ERROR CLASS&gt;</span><span class="symbol">&gt;</span><span class="symbol">)</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html"><span class="identifier">Unit</span></a></code></td>
+</tr>
+<tr>
+<td>
+<p><a href="set-binary-message-size-limit.html">setBinaryMessageSizeLimit</a></p>
+</td>
+<td>
+<code><span class="keyword">open</span> <span class="keyword">fun </span><span class="identifier">setBinaryMessageSizeLimit</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.remote.DummyWebSocketSession$setBinaryMessageSizeLimit(kotlin.Int)/messageSizeLimit">messageSizeLimit</span><span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html"><span class="identifier">Int</span></a><span class="symbol">)</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html"><span class="identifier">Unit</span></a></code></td>
+</tr>
+<tr>
+<td>
+<p><a href="set-text-message-size-limit.html">setTextMessageSizeLimit</a></p>
+</td>
+<td>
+<code><span class="keyword">open</span> <span class="keyword">fun </span><span class="identifier">setTextMessageSizeLimit</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.remote.DummyWebSocketSession$setTextMessageSizeLimit(kotlin.Int)/messageSizeLimit">messageSizeLimit</span><span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html"><span class="identifier">Int</span></a><span class="symbol">)</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html"><span class="identifier">Unit</span></a></code></td>
+</tr>
+</tbody>
+</table>
+<h3>Extension Functions</h3>
+<table>
+<tbody>
+<tr>
+<td>
+<p><a href="../../pl.treksoft.kvision.utils/kotlin.-any/create-instance.html">createInstance</a></p>
+</td>
+<td>
+<code><span class="keyword">fun </span><span class="symbol">&lt;</span><span class="identifier">T</span><span class="symbol">&gt;</span> <a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-any/index.html"><span class="identifier">Any</span></a><span class="symbol">?</span><span class="symbol">.</span><span class="identifier">createInstance</span><span class="symbol">(</span><span class="keyword">vararg</span> <span class="identifier" id="pl.treksoft.kvision.utils$createInstance(kotlin.Any, kotlin.Array((kotlin.Any)))/args">args</span><span class="symbol">:</span>&nbsp;<span class="keyword">dynamic</span><span class="symbol">)</span><span class="symbol">: </span><a href="../../pl.treksoft.kvision.utils/kotlin.-any/create-instance.html#T"><span class="identifier">T</span></a></code>
+<p>Helper function for creating JavaScript objects from dynamic constructors.</p>
+</td>
+</tr>
+</tbody>
+</table>
+</BODY>
+</HTML>
diff --git a/api1/pl.treksoft.kvision.remote/-dummy-web-socket-session/is-open.html b/api1/pl.treksoft.kvision.remote/-dummy-web-socket-session/is-open.html
new file mode 100644
index 00000000..b98d5183
--- /dev/null
+++ b/api1/pl.treksoft.kvision.remote/-dummy-web-socket-session/is-open.html
@@ -0,0 +1,14 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>DummyWebSocketSession.isOpen - kvision</title>
+<link rel="stylesheet" href="../../../style.css">
+</HEAD>
+<BODY>
+<a href="../../index.html">kvision</a>&nbsp;/&nbsp;<a href="../index.html">pl.treksoft.kvision.remote</a>&nbsp;/&nbsp;<a href="index.html">DummyWebSocketSession</a>&nbsp;/&nbsp;<a href="./is-open.html">isOpen</a><br/>
+<br/>
+<h1>isOpen</h1>
+<a name="pl.treksoft.kvision.remote.DummyWebSocketSession$isOpen()"></a>
+<code><span class="keyword">open</span> <span class="keyword">fun </span><span class="identifier">isOpen</span><span class="symbol">(</span><span class="symbol">)</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html"><span class="identifier">Boolean</span></a></code>
+</BODY>
+</HTML>
diff --git a/api1/pl.treksoft.kvision.remote/-dummy-web-socket-session/send-message.html b/api1/pl.treksoft.kvision.remote/-dummy-web-socket-session/send-message.html
new file mode 100644
index 00000000..255e3b59
--- /dev/null
+++ b/api1/pl.treksoft.kvision.remote/-dummy-web-socket-session/send-message.html
@@ -0,0 +1,14 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>DummyWebSocketSession.sendMessage - kvision</title>
+<link rel="stylesheet" href="../../../style.css">
+</HEAD>
+<BODY>
+<a href="../../index.html">kvision</a>&nbsp;/&nbsp;<a href="../index.html">pl.treksoft.kvision.remote</a>&nbsp;/&nbsp;<a href="index.html">DummyWebSocketSession</a>&nbsp;/&nbsp;<a href="./send-message.html">sendMessage</a><br/>
+<br/>
+<h1>sendMessage</h1>
+<a name="pl.treksoft.kvision.remote.DummyWebSocketSession$sendMessage((()))"></a>
+<code><span class="keyword">open</span> <span class="keyword">fun </span><span class="identifier">sendMessage</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.remote.DummyWebSocketSession$sendMessage((()))/message">message</span><span class="symbol">:</span>&nbsp;<span class="identifier">&lt;ERROR CLASS&gt;</span><span class="symbol">&lt;</span><span class="keyword">out</span>&nbsp;<span class="identifier">&lt;ERROR CLASS&gt;</span><span class="symbol">&gt;</span><span class="symbol">)</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html"><span class="identifier">Unit</span></a></code>
+</BODY>
+</HTML>
diff --git a/api1/pl.treksoft.kvision.remote/-dummy-web-socket-session/set-binary-message-size-limit.html b/api1/pl.treksoft.kvision.remote/-dummy-web-socket-session/set-binary-message-size-limit.html
new file mode 100644
index 00000000..384d36ea
--- /dev/null
+++ b/api1/pl.treksoft.kvision.remote/-dummy-web-socket-session/set-binary-message-size-limit.html
@@ -0,0 +1,14 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>DummyWebSocketSession.setBinaryMessageSizeLimit - kvision</title>
+<link rel="stylesheet" href="../../../style.css">
+</HEAD>
+<BODY>
+<a href="../../index.html">kvision</a>&nbsp;/&nbsp;<a href="../index.html">pl.treksoft.kvision.remote</a>&nbsp;/&nbsp;<a href="index.html">DummyWebSocketSession</a>&nbsp;/&nbsp;<a href="./set-binary-message-size-limit.html">setBinaryMessageSizeLimit</a><br/>
+<br/>
+<h1>setBinaryMessageSizeLimit</h1>
+<a name="pl.treksoft.kvision.remote.DummyWebSocketSession$setBinaryMessageSizeLimit(kotlin.Int)"></a>
+<code><span class="keyword">open</span> <span class="keyword">fun </span><span class="identifier">setBinaryMessageSizeLimit</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.remote.DummyWebSocketSession$setBinaryMessageSizeLimit(kotlin.Int)/messageSizeLimit">messageSizeLimit</span><span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html"><span class="identifier">Int</span></a><span class="symbol">)</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html"><span class="identifier">Unit</span></a></code>
+</BODY>
+</HTML>
diff --git a/api1/pl.treksoft.kvision.remote/-dummy-web-socket-session/set-text-message-size-limit.html b/api1/pl.treksoft.kvision.remote/-dummy-web-socket-session/set-text-message-size-limit.html
new file mode 100644
index 00000000..1b5b8f4a
--- /dev/null
+++ b/api1/pl.treksoft.kvision.remote/-dummy-web-socket-session/set-text-message-size-limit.html
@@ -0,0 +1,14 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>DummyWebSocketSession.setTextMessageSizeLimit - kvision</title>
+<link rel="stylesheet" href="../../../style.css">
+</HEAD>
+<BODY>
+<a href="../../index.html">kvision</a>&nbsp;/&nbsp;<a href="../index.html">pl.treksoft.kvision.remote</a>&nbsp;/&nbsp;<a href="index.html">DummyWebSocketSession</a>&nbsp;/&nbsp;<a href="./set-text-message-size-limit.html">setTextMessageSizeLimit</a><br/>
+<br/>
+<h1>setTextMessageSizeLimit</h1>
+<a name="pl.treksoft.kvision.remote.DummyWebSocketSession$setTextMessageSizeLimit(kotlin.Int)"></a>
+<code><span class="keyword">open</span> <span class="keyword">fun </span><span class="identifier">setTextMessageSizeLimit</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.remote.DummyWebSocketSession$setTextMessageSizeLimit(kotlin.Int)/messageSizeLimit">messageSizeLimit</span><span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html"><span class="identifier">Int</span></a><span class="symbol">)</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html"><span class="identifier">Unit</span></a></code>
+</BODY>
+</HTML>
diff --git a/api1/pl.treksoft.kvision.remote/-h-t-t-p_-u-n-a-u-t-h-o-r-i-z-e-d.html b/api1/pl.treksoft.kvision.remote/-h-t-t-p_-u-n-a-u-t-h-o-r-i-z-e-d.html
new file mode 100644
index 00000000..8e481bac
--- /dev/null
+++ b/api1/pl.treksoft.kvision.remote/-h-t-t-p_-u-n-a-u-t-h-o-r-i-z-e-d.html
@@ -0,0 +1,15 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>HTTP_UNAUTHORIZED - kvision</title>
+<link rel="stylesheet" href="../../style.css">
+</HEAD>
+<BODY>
+<a href="../index.html">kvision</a>&nbsp;/&nbsp;<a href="index.html">pl.treksoft.kvision.remote</a>&nbsp;/&nbsp;<a href="./-h-t-t-p_-u-n-a-u-t-h-o-r-i-z-e-d.html">HTTP_UNAUTHORIZED</a><br/>
+<br/>
+<h1>HTTP_UNAUTHORIZED</h1>
+<a name="pl.treksoft.kvision.remote$HTTP_UNAUTHORIZED"></a>
+<code><span class="keyword">const</span> <span class="keyword">val </span><span class="identifier">HTTP_UNAUTHORIZED</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html"><span class="identifier">Int</span></a></code>
+<p>HTTP status unauthorized (401).</p>
+</BODY>
+</HTML>
diff --git a/api1/pl.treksoft.kvision.remote/-j-s-o-n/index.html b/api1/pl.treksoft.kvision.remote/-j-s-o-n/index.html
new file mode 100644
index 00000000..fb5f89cf
--- /dev/null
+++ b/api1/pl.treksoft.kvision.remote/-j-s-o-n/index.html
@@ -0,0 +1,61 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>JSON - kvision</title>
+<link rel="stylesheet" href="../../../style.css">
+</HEAD>
+<BODY>
+<a href="../../index.html">kvision</a>&nbsp;/&nbsp;<a href="../index.html">pl.treksoft.kvision.remote</a>&nbsp;/&nbsp;<a href="./index.html">JSON</a><br/>
+<br/>
+<h1>JSON</h1>
+<code><span class="keyword">object </span><span class="identifier">JSON</span></code>
+<p>JSON utility functions</p>
+<h3>Properties</h3>
+<table>
+<tbody>
+<tr>
+<td>
+<p><a href="nonstrict.html">nonstrict</a></p>
+</td>
+<td>
+<code><span class="keyword">val </span><span class="identifier">nonstrict</span><span class="symbol">: </span><span class="identifier">Json</span></code></td>
+</tr>
+<tr>
+<td>
+<p><a href="plain.html">plain</a></p>
+</td>
+<td>
+<code><span class="keyword">val </span><span class="identifier">plain</span><span class="symbol">: </span><span class="identifier">Json</span></code></td>
+</tr>
+</tbody>
+</table>
+<h3>Functions</h3>
+<table>
+<tbody>
+<tr>
+<td>
+<p><a href="to-obj.html">toObj</a></p>
+</td>
+<td>
+<code><span class="keyword">fun </span><span class="symbol">&lt;</span><span class="identifier">T</span><span class="symbol">&gt;</span> <a href="to-obj.html#T"><span class="identifier">T</span></a><span class="symbol">.</span><span class="identifier">toObj</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.remote.JSON$toObj(pl.treksoft.kvision.remote.JSON.toObj.T, kotlinx.serialization.SerializationStrategy((pl.treksoft.kvision.remote.JSON.toObj.T)))/serializer">serializer</span><span class="symbol">:</span>&nbsp;<span class="identifier">SerializationStrategy</span><span class="symbol">&lt;</span><a href="to-obj.html#T"><span class="identifier">T</span></a><span class="symbol">&gt;</span><span class="symbol">)</span><span class="symbol">: </span><span class="keyword">dynamic</span></code>
+<p>An extension function to convert Serializable object to JS dynamic object</p>
+</td>
+</tr>
+</tbody>
+</table>
+<h3>Extension Functions</h3>
+<table>
+<tbody>
+<tr>
+<td>
+<p><a href="../../pl.treksoft.kvision.utils/kotlin.-any/create-instance.html">createInstance</a></p>
+</td>
+<td>
+<code><span class="keyword">fun </span><span class="symbol">&lt;</span><span class="identifier">T</span><span class="symbol">&gt;</span> <a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-any/index.html"><span class="identifier">Any</span></a><span class="symbol">?</span><span class="symbol">.</span><span class="identifier">createInstance</span><span class="symbol">(</span><span class="keyword">vararg</span> <span class="identifier" id="pl.treksoft.kvision.utils$createInstance(kotlin.Any, kotlin.Array((kotlin.Any)))/args">args</span><span class="symbol">:</span>&nbsp;<span class="keyword">dynamic</span><span class="symbol">)</span><span class="symbol">: </span><a href="../../pl.treksoft.kvision.utils/kotlin.-any/create-instance.html#T"><span class="identifier">T</span></a></code>
+<p>Helper function for creating JavaScript objects from dynamic constructors.</p>
+</td>
+</tr>
+</tbody>
+</table>
+</BODY>
+</HTML>
diff --git a/api1/pl.treksoft.kvision.remote/-j-s-o-n/nonstrict.html b/api1/pl.treksoft.kvision.remote/-j-s-o-n/nonstrict.html
new file mode 100644
index 00000000..3c286444
--- /dev/null
+++ b/api1/pl.treksoft.kvision.remote/-j-s-o-n/nonstrict.html
@@ -0,0 +1,14 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>JSON.nonstrict - kvision</title>
+<link rel="stylesheet" href="../../../style.css">
+</HEAD>
+<BODY>
+<a href="../../index.html">kvision</a>&nbsp;/&nbsp;<a href="../index.html">pl.treksoft.kvision.remote</a>&nbsp;/&nbsp;<a href="index.html">JSON</a>&nbsp;/&nbsp;<a href="./nonstrict.html">nonstrict</a><br/>
+<br/>
+<h1>nonstrict</h1>
+<a name="pl.treksoft.kvision.remote.JSON$nonstrict"></a>
+<code><span class="keyword">val </span><span class="identifier">nonstrict</span><span class="symbol">: </span><span class="identifier">Json</span></code>
+</BODY>
+</HTML>
diff --git a/api1/pl.treksoft.kvision.remote/-j-s-o-n/plain.html b/api1/pl.treksoft.kvision.remote/-j-s-o-n/plain.html
new file mode 100644
index 00000000..e6997519
--- /dev/null
+++ b/api1/pl.treksoft.kvision.remote/-j-s-o-n/plain.html
@@ -0,0 +1,14 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>JSON.plain - kvision</title>
+<link rel="stylesheet" href="../../../style.css">
+</HEAD>
+<BODY>
+<a href="../../index.html">kvision</a>&nbsp;/&nbsp;<a href="../index.html">pl.treksoft.kvision.remote</a>&nbsp;/&nbsp;<a href="index.html">JSON</a>&nbsp;/&nbsp;<a href="./plain.html">plain</a><br/>
+<br/>
+<h1>plain</h1>
+<a name="pl.treksoft.kvision.remote.JSON$plain"></a>
+<code><span class="keyword">val </span><span class="identifier">plain</span><span class="symbol">: </span><span class="identifier">Json</span></code>
+</BODY>
+</HTML>
diff --git a/api1/pl.treksoft.kvision.remote/-j-s-o-n/to-obj.html b/api1/pl.treksoft.kvision.remote/-j-s-o-n/to-obj.html
new file mode 100644
index 00000000..8de7d04d
--- /dev/null
+++ b/api1/pl.treksoft.kvision.remote/-j-s-o-n/to-obj.html
@@ -0,0 +1,18 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>JSON.toObj - kvision</title>
+<link rel="stylesheet" href="../../../style.css">
+</HEAD>
+<BODY>
+<a href="../../index.html">kvision</a>&nbsp;/&nbsp;<a href="../index.html">pl.treksoft.kvision.remote</a>&nbsp;/&nbsp;<a href="index.html">JSON</a>&nbsp;/&nbsp;<a href="./to-obj.html">toObj</a><br/>
+<br/>
+<h1>toObj</h1>
+<a name="pl.treksoft.kvision.remote.JSON$toObj(pl.treksoft.kvision.remote.JSON.toObj.T, kotlinx.serialization.SerializationStrategy((pl.treksoft.kvision.remote.JSON.toObj.T)))"></a>
+<code><span class="keyword">fun </span><span class="symbol">&lt;</span><span class="identifier">T</span><span class="symbol">&gt;</span> <a href="to-obj.html#T"><span class="identifier">T</span></a><span class="symbol">.</span><span class="identifier">toObj</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.remote.JSON$toObj(pl.treksoft.kvision.remote.JSON.toObj.T, kotlinx.serialization.SerializationStrategy((pl.treksoft.kvision.remote.JSON.toObj.T)))/serializer">serializer</span><span class="symbol">:</span>&nbsp;<span class="identifier">SerializationStrategy</span><span class="symbol">&lt;</span><a href="to-obj.html#T"><span class="identifier">T</span></a><span class="symbol">&gt;</span><span class="symbol">)</span><span class="symbol">: </span><span class="keyword">dynamic</span></code>
+<p>An extension function to convert Serializable object to JS dynamic object</p>
+<h3>Parameters</h3>
+<p><a name="serializer"></a>
+<code>serializer</code> - a serializer for T</p>
+</BODY>
+</HTML>
diff --git a/api1/pl.treksoft.kvision.remote/-k-v-controller/-init-.html b/api1/pl.treksoft.kvision.remote/-k-v-controller/-init-.html
new file mode 100644
index 00000000..91e5c7fa
--- /dev/null
+++ b/api1/pl.treksoft.kvision.remote/-k-v-controller/-init-.html
@@ -0,0 +1,15 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>KVController.<init> - kvision</title>
+<link rel="stylesheet" href="../../../style.css">
+</HEAD>
+<BODY>
+<a href="../../index.html">kvision</a>&nbsp;/&nbsp;<a href="../index.html">pl.treksoft.kvision.remote</a>&nbsp;/&nbsp;<a href="index.html">KVController</a>&nbsp;/&nbsp;<a href="./-init-.html">&lt;init&gt;</a><br/>
+<br/>
+<h1>&lt;init&gt;</h1>
+<a name="pl.treksoft.kvision.remote.KVController$&lt;init&gt;()"></a>
+<code><span class="identifier">KVController</span><span class="symbol">(</span><span class="symbol">)</span></code>
+<p>Controller for handling automatic routes.</p>
+</BODY>
+</HTML>
diff --git a/api1/pl.treksoft.kvision.remote/-k-v-controller/application-context.html b/api1/pl.treksoft.kvision.remote/-k-v-controller/application-context.html
new file mode 100644
index 00000000..7d5b1bb8
--- /dev/null
+++ b/api1/pl.treksoft.kvision.remote/-k-v-controller/application-context.html
@@ -0,0 +1,14 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>KVController.applicationContext - kvision</title>
+<link rel="stylesheet" href="../../../style.css">
+</HEAD>
+<BODY>
+<a href="../../index.html">kvision</a>&nbsp;/&nbsp;<a href="../index.html">pl.treksoft.kvision.remote</a>&nbsp;/&nbsp;<a href="index.html">KVController</a>&nbsp;/&nbsp;<a href="./application-context.html">applicationContext</a><br/>
+<br/>
+<h1>applicationContext</h1>
+<a name="pl.treksoft.kvision.remote.KVController$applicationContext"></a>
+<code><span class="keyword">lateinit</span> <span class="keyword">var </span><span class="identifier">applicationContext</span><span class="symbol">: </span><span class="identifier">&lt;ERROR CLASS&gt;</span></code>
+</BODY>
+</HTML>
diff --git a/api1/pl.treksoft.kvision.remote/-k-v-controller/index.html b/api1/pl.treksoft.kvision.remote/-k-v-controller/index.html
new file mode 100644
index 00000000..59f9d3a6
--- /dev/null
+++ b/api1/pl.treksoft.kvision.remote/-k-v-controller/index.html
@@ -0,0 +1,73 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>KVController - kvision</title>
+<link rel="stylesheet" href="../../../style.css">
+</HEAD>
+<BODY>
+<a href="../../index.html">kvision</a>&nbsp;/&nbsp;<a href="../index.html">pl.treksoft.kvision.remote</a>&nbsp;/&nbsp;<a href="./index.html">KVController</a><br/>
+<br/>
+<h1>KVController</h1>
+<code><span class="keyword">open</span> <span class="keyword">class </span><span class="identifier">KVController</span></code>
+<p>Controller for handling automatic routes.</p>
+<h3>Constructors</h3>
+<table>
+<tbody>
+<tr>
+<td>
+<p><a href="-init-.html">&lt;init&gt;</a></p>
+</td>
+<td>
+<code><span class="identifier">KVController</span><span class="symbol">(</span><span class="symbol">)</span></code>
+<p>Controller for handling automatic routes.</p>
+</td>
+</tr>
+</tbody>
+</table>
+<h3>Properties</h3>
+<table>
+<tbody>
+<tr>
+<td>
+<p><a href="application-context.html">applicationContext</a></p>
+</td>
+<td>
+<code><span class="keyword">lateinit</span> <span class="keyword">var </span><span class="identifier">applicationContext</span><span class="symbol">: </span><span class="identifier">&lt;ERROR CLASS&gt;</span></code></td>
+</tr>
+<tr>
+<td>
+<p><a href="services.html">services</a></p>
+</td>
+<td>
+<code><span class="keyword">lateinit</span> <span class="keyword">var </span><span class="identifier">services</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/-list/index.html"><span class="identifier">List</span></a><span class="symbol">&lt;</span><a href="../-k-v-service-manager/index.html"><span class="identifier">KVServiceManager</span></a><span class="symbol">&lt;</span><span class="identifier">*</span><span class="symbol">&gt;</span><span class="symbol">&gt;</span></code></td>
+</tr>
+</tbody>
+</table>
+<h3>Functions</h3>
+<table>
+<tbody>
+<tr>
+<td>
+<p><a href="k-v-mapping.html">kVMapping</a></p>
+</td>
+<td>
+<code><span class="keyword">open</span> <span class="keyword">fun </span><span class="identifier">kVMapping</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.remote.KVController$kVMapping(, )/req">req</span><span class="symbol">:</span>&nbsp;<span class="identifier">&lt;ERROR CLASS&gt;</span><span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.remote.KVController$kVMapping(, )/res">res</span><span class="symbol">:</span>&nbsp;<span class="identifier">&lt;ERROR CLASS&gt;</span><span class="symbol">)</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html"><span class="identifier">Unit</span></a></code></td>
+</tr>
+</tbody>
+</table>
+<h3>Extension Functions</h3>
+<table>
+<tbody>
+<tr>
+<td>
+<p><a href="../../pl.treksoft.kvision.utils/kotlin.-any/create-instance.html">createInstance</a></p>
+</td>
+<td>
+<code><span class="keyword">fun </span><span class="symbol">&lt;</span><span class="identifier">T</span><span class="symbol">&gt;</span> <a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-any/index.html"><span class="identifier">Any</span></a><span class="symbol">?</span><span class="symbol">.</span><span class="identifier">createInstance</span><span class="symbol">(</span><span class="keyword">vararg</span> <span class="identifier" id="pl.treksoft.kvision.utils$createInstance(kotlin.Any, kotlin.Array((kotlin.Any)))/args">args</span><span class="symbol">:</span>&nbsp;<span class="keyword">dynamic</span><span class="symbol">)</span><span class="symbol">: </span><a href="../../pl.treksoft.kvision.utils/kotlin.-any/create-instance.html#T"><span class="identifier">T</span></a></code>
+<p>Helper function for creating JavaScript objects from dynamic constructors.</p>
+</td>
+</tr>
+</tbody>
+</table>
+</BODY>
+</HTML>
diff --git a/api1/pl.treksoft.kvision.remote/-k-v-controller/k-v-mapping.html b/api1/pl.treksoft.kvision.remote/-k-v-controller/k-v-mapping.html
new file mode 100644
index 00000000..38c97970
--- /dev/null
+++ b/api1/pl.treksoft.kvision.remote/-k-v-controller/k-v-mapping.html
@@ -0,0 +1,14 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>KVController.kVMapping - kvision</title>
+<link rel="stylesheet" href="../../../style.css">
+</HEAD>
+<BODY>
+<a href="../../index.html">kvision</a>&nbsp;/&nbsp;<a href="../index.html">pl.treksoft.kvision.remote</a>&nbsp;/&nbsp;<a href="index.html">KVController</a>&nbsp;/&nbsp;<a href="./k-v-mapping.html">kVMapping</a><br/>
+<br/>
+<h1>kVMapping</h1>
+<a name="pl.treksoft.kvision.remote.KVController$kVMapping(, )"></a>
+<code><span class="keyword">open</span> <span class="keyword">fun </span><span class="identifier">kVMapping</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.remote.KVController$kVMapping(, )/req">req</span><span class="symbol">:</span>&nbsp;<span class="identifier">&lt;ERROR CLASS&gt;</span><span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.remote.KVController$kVMapping(, )/res">res</span><span class="symbol">:</span>&nbsp;<span class="identifier">&lt;ERROR CLASS&gt;</span><span class="symbol">)</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html"><span class="identifier">Unit</span></a></code>
+</BODY>
+</HTML>
diff --git a/api1/pl.treksoft.kvision.remote/-k-v-controller/services.html b/api1/pl.treksoft.kvision.remote/-k-v-controller/services.html
new file mode 100644
index 00000000..15d401c6
--- /dev/null
+++ b/api1/pl.treksoft.kvision.remote/-k-v-controller/services.html
@@ -0,0 +1,14 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>KVController.services - kvision</title>
+<link rel="stylesheet" href="../../../style.css">
+</HEAD>
+<BODY>
+<a href="../../index.html">kvision</a>&nbsp;/&nbsp;<a href="../index.html">pl.treksoft.kvision.remote</a>&nbsp;/&nbsp;<a href="index.html">KVController</a>&nbsp;/&nbsp;<a href="./services.html">services</a><br/>
+<br/>
+<h1>services</h1>
+<a name="pl.treksoft.kvision.remote.KVController$services"></a>
+<code><span class="keyword">lateinit</span> <span class="keyword">var </span><span class="identifier">services</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/-list/index.html"><span class="identifier">List</span></a><span class="symbol">&lt;</span><a href="../-k-v-service-manager/index.html"><span class="identifier">KVServiceManager</span></a><span class="symbol">&lt;</span><span class="identifier">*</span><span class="symbol">&gt;</span><span class="symbol">&gt;</span></code>
+</BODY>
+</HTML>
diff --git a/api1/pl.treksoft.kvision.remote/-k-v-remote-agent/-init-.html b/api1/pl.treksoft.kvision.remote/-k-v-remote-agent/-init-.html
new file mode 100644
index 00000000..8688bc12
--- /dev/null
+++ b/api1/pl.treksoft.kvision.remote/-k-v-remote-agent/-init-.html
@@ -0,0 +1,15 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>KVRemoteAgent.<init> - kvision</title>
+<link rel="stylesheet" href="../../../style.css">
+</HEAD>
+<BODY>
+<a href="../../index.html">kvision</a>&nbsp;/&nbsp;<a href="../index.html">pl.treksoft.kvision.remote</a>&nbsp;/&nbsp;<a href="index.html">KVRemoteAgent</a>&nbsp;/&nbsp;<a href="./-init-.html">&lt;init&gt;</a><br/>
+<br/>
+<h1>&lt;init&gt;</h1>
+<a name="pl.treksoft.kvision.remote.KVRemoteAgent$&lt;init&gt;(pl.treksoft.kvision.remote.KVServiceManager((pl.treksoft.kvision.remote.KVRemoteAgent.T)))"></a>
+<code><span class="identifier">KVRemoteAgent</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.remote.KVRemoteAgent$<init>(pl.treksoft.kvision.remote.KVServiceManager((pl.treksoft.kvision.remote.KVRemoteAgent.T)))/serviceManager">serviceManager</span><span class="symbol">:</span>&nbsp;<a href="../-k-v-service-manager/index.html"><span class="identifier">KVServiceManager</span></a><span class="symbol">&lt;</span><a href="index.html#T"><span class="identifier">T</span></a><span class="symbol">&gt;</span><span class="symbol">)</span></code>
+<p>Client side agent for JSON-RPC remote calls.</p>
+</BODY>
+</HTML>
diff --git a/api1/pl.treksoft.kvision.remote/-k-v-remote-agent/call-agent.html b/api1/pl.treksoft.kvision.remote/-k-v-remote-agent/call-agent.html
new file mode 100644
index 00000000..801ee090
--- /dev/null
+++ b/api1/pl.treksoft.kvision.remote/-k-v-remote-agent/call-agent.html
@@ -0,0 +1,14 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>KVRemoteAgent.callAgent - kvision</title>
+<link rel="stylesheet" href="../../../style.css">
+</HEAD>
+<BODY>
+<a href="../../index.html">kvision</a>&nbsp;/&nbsp;<a href="../index.html">pl.treksoft.kvision.remote</a>&nbsp;/&nbsp;<a href="index.html">KVRemoteAgent</a>&nbsp;/&nbsp;<a href="./call-agent.html">callAgent</a><br/>
+<br/>
+<h1>callAgent</h1>
+<a name="pl.treksoft.kvision.remote.KVRemoteAgent$callAgent"></a>
+<code><span class="keyword">val </span><span class="identifier">callAgent</span><span class="symbol">: </span><a href="../-call-agent/index.html"><span class="identifier">CallAgent</span></a></code>
+</BODY>
+</HTML>
diff --git a/api1/pl.treksoft.kvision.remote/-k-v-remote-agent/call.html b/api1/pl.treksoft.kvision.remote/-k-v-remote-agent/call.html
new file mode 100644
index 00000000..e950647d
--- /dev/null
+++ b/api1/pl.treksoft.kvision.remote/-k-v-remote-agent/call.html
@@ -0,0 +1,37 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>KVRemoteAgent.call - kvision</title>
+<link rel="stylesheet" href="../../../style.css">
+</HEAD>
+<BODY>
+<a href="../../index.html">kvision</a>&nbsp;/&nbsp;<a href="../index.html">pl.treksoft.kvision.remote</a>&nbsp;/&nbsp;<a href="index.html">KVRemoteAgent</a>&nbsp;/&nbsp;<a href="./call.html">call</a><br/>
+<br/>
+<h1>call</h1>
+<a name="pl.treksoft.kvision.remote.KVRemoteAgent$call(kotlin.coroutines.SuspendFunction1((pl.treksoft.kvision.remote.KVRemoteAgent.call.T, pl.treksoft.kvision.remote.KVRemoteAgent.call.RET)))"></a>
+<code><span class="keyword">suspend</span> <span class="keyword">inline</span> <span class="keyword">fun </span><span class="symbol">&lt;</span><span class="keyword">reified</span>&nbsp;<span class="identifier">RET</span>&nbsp;<span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-any/index.html"><span class="identifier">Any</span></a><span class="symbol">, </span><span class="identifier">T</span><span class="symbol">&gt;</span> <span class="identifier">call</span><span class="symbol">(</span><span class="keyword">noinline</span> <span class="identifier" id="pl.treksoft.kvision.remote.KVRemoteAgent$call(kotlin.coroutines.SuspendFunction1((pl.treksoft.kvision.remote.KVRemoteAgent.call.T, pl.treksoft.kvision.remote.KVRemoteAgent.call.RET)))/function">function</span><span class="symbol">:</span>&nbsp;<span class="keyword">suspend </span><a href="call.html#T"><span class="identifier">T</span></a><span class="symbol">.</span><span class="symbol">(</span><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<a href="call.html#RET"><span class="identifier">RET</span></a><span class="symbol">)</span><span class="symbol">: </span><a href="call.html#RET"><span class="identifier">RET</span></a></code><br/>
+<a name="pl.treksoft.kvision.remote.KVRemoteAgent$call(kotlin.coroutines.SuspendFunction1((pl.treksoft.kvision.remote.KVRemoteAgent.call.T, kotlin.collections.List((pl.treksoft.kvision.remote.KVRemoteAgent.call.RET)))))"></a>
+<code><span class="keyword">suspend</span> <span class="keyword">inline</span> <span class="keyword">fun </span><span class="symbol">&lt;</span><span class="keyword">reified</span>&nbsp;<span class="identifier">RET</span>&nbsp;<span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-any/index.html"><span class="identifier">Any</span></a><span class="symbol">, </span><span class="identifier">T</span><span class="symbol">&gt;</span> <span class="identifier">call</span><span class="symbol">(</span><span class="keyword">noinline</span> <span class="identifier" id="pl.treksoft.kvision.remote.KVRemoteAgent$call(kotlin.coroutines.SuspendFunction1((pl.treksoft.kvision.remote.KVRemoteAgent.call.T, kotlin.collections.List((pl.treksoft.kvision.remote.KVRemoteAgent.call.RET)))))/function">function</span><span class="symbol">:</span>&nbsp;<span class="keyword">suspend </span><a href="call.html#T"><span class="identifier">T</span></a><span class="symbol">.</span><span class="symbol">(</span><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/-list/index.html"><span class="identifier">List</span></a><span class="symbol">&lt;</span><a href="call.html#RET"><span class="identifier">RET</span></a><span class="symbol">&gt;</span><span class="symbol">)</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/-list/index.html"><span class="identifier">List</span></a><span class="symbol">&lt;</span><a href="call.html#RET"><span class="identifier">RET</span></a><span class="symbol">&gt;</span></code><br/>
+<a name="pl.treksoft.kvision.remote.KVRemoteAgent$call(kotlin.coroutines.SuspendFunction2((pl.treksoft.kvision.remote.KVRemoteAgent.call.T, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR, pl.treksoft.kvision.remote.KVRemoteAgent.call.RET)), pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR)"></a>
+<code><span class="keyword">suspend</span> <span class="keyword">inline</span> <span class="keyword">fun </span><span class="symbol">&lt;</span><span class="keyword">reified</span>&nbsp;<span class="identifier">PAR</span><span class="symbol">, </span><span class="keyword">reified</span>&nbsp;<span class="identifier">RET</span>&nbsp;<span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-any/index.html"><span class="identifier">Any</span></a><span class="symbol">, </span><span class="identifier">T</span><span class="symbol">&gt;</span> <span class="identifier">call</span><span class="symbol">(</span><span class="keyword">noinline</span> <span class="identifier" id="pl.treksoft.kvision.remote.KVRemoteAgent$call(kotlin.coroutines.SuspendFunction2((pl.treksoft.kvision.remote.KVRemoteAgent.call.T, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR, pl.treksoft.kvision.remote.KVRemoteAgent.call.RET)), pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR)/function">function</span><span class="symbol">:</span>&nbsp;<span class="keyword">suspend </span><a href="call.html#T"><span class="identifier">T</span></a><span class="symbol">.</span><span class="symbol">(</span><a href="call.html#PAR"><span class="identifier">PAR</span></a><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<a href="call.html#RET"><span class="identifier">RET</span></a><span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.remote.KVRemoteAgent$call(kotlin.coroutines.SuspendFunction2((pl.treksoft.kvision.remote.KVRemoteAgent.call.T, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR, pl.treksoft.kvision.remote.KVRemoteAgent.call.RET)), pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR)/p">p</span><span class="symbol">:</span>&nbsp;<a href="call.html#PAR"><span class="identifier">PAR</span></a><span class="symbol">)</span><span class="symbol">: </span><a href="call.html#RET"><span class="identifier">RET</span></a></code><br/>
+<a name="pl.treksoft.kvision.remote.KVRemoteAgent$call(kotlin.coroutines.SuspendFunction2((pl.treksoft.kvision.remote.KVRemoteAgent.call.T, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR, kotlin.collections.List((pl.treksoft.kvision.remote.KVRemoteAgent.call.RET)))), pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR)"></a>
+<code><span class="keyword">suspend</span> <span class="keyword">inline</span> <span class="keyword">fun </span><span class="symbol">&lt;</span><span class="keyword">reified</span>&nbsp;<span class="identifier">PAR</span><span class="symbol">, </span><span class="keyword">reified</span>&nbsp;<span class="identifier">RET</span>&nbsp;<span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-any/index.html"><span class="identifier">Any</span></a><span class="symbol">, </span><span class="identifier">T</span><span class="symbol">&gt;</span> <span class="identifier">call</span><span class="symbol">(</span><span class="keyword">noinline</span> <span class="identifier" id="pl.treksoft.kvision.remote.KVRemoteAgent$call(kotlin.coroutines.SuspendFunction2((pl.treksoft.kvision.remote.KVRemoteAgent.call.T, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR, kotlin.collections.List((pl.treksoft.kvision.remote.KVRemoteAgent.call.RET)))), pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR)/function">function</span><span class="symbol">:</span>&nbsp;<span class="keyword">suspend </span><a href="call.html#T"><span class="identifier">T</span></a><span class="symbol">.</span><span class="symbol">(</span><a href="call.html#PAR"><span class="identifier">PAR</span></a><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/-list/index.html"><span class="identifier">List</span></a><span class="symbol">&lt;</span><a href="call.html#RET"><span class="identifier">RET</span></a><span class="symbol">&gt;</span><span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.remote.KVRemoteAgent$call(kotlin.coroutines.SuspendFunction2((pl.treksoft.kvision.remote.KVRemoteAgent.call.T, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR, kotlin.collections.List((pl.treksoft.kvision.remote.KVRemoteAgent.call.RET)))), pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR)/p">p</span><span class="symbol">:</span>&nbsp;<a href="call.html#PAR"><span class="identifier">PAR</span></a><span class="symbol">)</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/-list/index.html"><span class="identifier">List</span></a><span class="symbol">&lt;</span><a href="call.html#RET"><span class="identifier">RET</span></a><span class="symbol">&gt;</span></code><br/>
+<a name="pl.treksoft.kvision.remote.KVRemoteAgent$call(kotlin.coroutines.SuspendFunction3((pl.treksoft.kvision.remote.KVRemoteAgent.call.T, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR1, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR2, pl.treksoft.kvision.remote.KVRemoteAgent.call.RET)), pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR1, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR2)"></a>
+<code><span class="keyword">suspend</span> <span class="keyword">inline</span> <span class="keyword">fun </span><span class="symbol">&lt;</span><span class="keyword">reified</span>&nbsp;<span class="identifier">PAR1</span><span class="symbol">, </span><span class="keyword">reified</span>&nbsp;<span class="identifier">PAR2</span><span class="symbol">, </span><span class="keyword">reified</span>&nbsp;<span class="identifier">RET</span>&nbsp;<span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-any/index.html"><span class="identifier">Any</span></a><span class="symbol">, </span><span class="identifier">T</span><span class="symbol">&gt;</span> <span class="identifier">call</span><span class="symbol">(</span><span class="keyword">noinline</span> <span class="identifier" id="pl.treksoft.kvision.remote.KVRemoteAgent$call(kotlin.coroutines.SuspendFunction3((pl.treksoft.kvision.remote.KVRemoteAgent.call.T, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR1, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR2, pl.treksoft.kvision.remote.KVRemoteAgent.call.RET)), pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR1, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR2)/function">function</span><span class="symbol">:</span>&nbsp;<span class="keyword">suspend </span><a href="call.html#T"><span class="identifier">T</span></a><span class="symbol">.</span><span class="symbol">(</span><a href="call.html#PAR1"><span class="identifier">PAR1</span></a><span class="symbol">,</span>&nbsp;<a href="call.html#PAR2"><span class="identifier">PAR2</span></a><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<a href="call.html#RET"><span class="identifier">RET</span></a><span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.remote.KVRemoteAgent$call(kotlin.coroutines.SuspendFunction3((pl.treksoft.kvision.remote.KVRemoteAgent.call.T, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR1, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR2, pl.treksoft.kvision.remote.KVRemoteAgent.call.RET)), pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR1, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR2)/p1">p1</span><span class="symbol">:</span>&nbsp;<a href="call.html#PAR1"><span class="identifier">PAR1</span></a><span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.remote.KVRemoteAgent$call(kotlin.coroutines.SuspendFunction3((pl.treksoft.kvision.remote.KVRemoteAgent.call.T, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR1, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR2, pl.treksoft.kvision.remote.KVRemoteAgent.call.RET)), pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR1, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR2)/p2">p2</span><span class="symbol">:</span>&nbsp;<a href="call.html#PAR2"><span class="identifier">PAR2</span></a><span class="symbol">)</span><span class="symbol">: </span><a href="call.html#RET"><span class="identifier">RET</span></a></code><br/>
+<a name="pl.treksoft.kvision.remote.KVRemoteAgent$call(kotlin.coroutines.SuspendFunction3((pl.treksoft.kvision.remote.KVRemoteAgent.call.T, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR1, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR2, kotlin.collections.List((pl.treksoft.kvision.remote.KVRemoteAgent.call.RET)))), pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR1, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR2)"></a>
+<code><span class="keyword">suspend</span> <span class="keyword">inline</span> <span class="keyword">fun </span><span class="symbol">&lt;</span><span class="keyword">reified</span>&nbsp;<span class="identifier">PAR1</span><span class="symbol">, </span><span class="keyword">reified</span>&nbsp;<span class="identifier">PAR2</span><span class="symbol">, </span><span class="keyword">reified</span>&nbsp;<span class="identifier">RET</span>&nbsp;<span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-any/index.html"><span class="identifier">Any</span></a><span class="symbol">, </span><span class="identifier">T</span><span class="symbol">&gt;</span> <span class="identifier">call</span><span class="symbol">(</span><span class="keyword">noinline</span> <span class="identifier" id="pl.treksoft.kvision.remote.KVRemoteAgent$call(kotlin.coroutines.SuspendFunction3((pl.treksoft.kvision.remote.KVRemoteAgent.call.T, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR1, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR2, kotlin.collections.List((pl.treksoft.kvision.remote.KVRemoteAgent.call.RET)))), pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR1, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR2)/function">function</span><span class="symbol">:</span>&nbsp;<span class="keyword">suspend </span><a href="call.html#T"><span class="identifier">T</span></a><span class="symbol">.</span><span class="symbol">(</span><a href="call.html#PAR1"><span class="identifier">PAR1</span></a><span class="symbol">,</span>&nbsp;<a href="call.html#PAR2"><span class="identifier">PAR2</span></a><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/-list/index.html"><span class="identifier">List</span></a><span class="symbol">&lt;</span><a href="call.html#RET"><span class="identifier">RET</span></a><span class="symbol">&gt;</span><span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.remote.KVRemoteAgent$call(kotlin.coroutines.SuspendFunction3((pl.treksoft.kvision.remote.KVRemoteAgent.call.T, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR1, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR2, kotlin.collections.List((pl.treksoft.kvision.remote.KVRemoteAgent.call.RET)))), pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR1, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR2)/p1">p1</span><span class="symbol">:</span>&nbsp;<a href="call.html#PAR1"><span class="identifier">PAR1</span></a><span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.remote.KVRemoteAgent$call(kotlin.coroutines.SuspendFunction3((pl.treksoft.kvision.remote.KVRemoteAgent.call.T, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR1, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR2, kotlin.collections.List((pl.treksoft.kvision.remote.KVRemoteAgent.call.RET)))), pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR1, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR2)/p2">p2</span><span class="symbol">:</span>&nbsp;<a href="call.html#PAR2"><span class="identifier">PAR2</span></a><span class="symbol">)</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/-list/index.html"><span class="identifier">List</span></a><span class="symbol">&lt;</span><a href="call.html#RET"><span class="identifier">RET</span></a><span class="symbol">&gt;</span></code><br/>
+<a name="pl.treksoft.kvision.remote.KVRemoteAgent$call(kotlin.coroutines.SuspendFunction4((pl.treksoft.kvision.remote.KVRemoteAgent.call.T, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR1, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR2, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR3, pl.treksoft.kvision.remote.KVRemoteAgent.call.RET)), pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR1, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR2, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR3)"></a>
+<code><span class="keyword">suspend</span> <span class="keyword">inline</span> <span class="keyword">fun </span><span class="symbol">&lt;</span><span class="keyword">reified</span>&nbsp;<span class="identifier">PAR1</span><span class="symbol">, </span><span class="keyword">reified</span>&nbsp;<span class="identifier">PAR2</span><span class="symbol">, </span><span class="keyword">reified</span>&nbsp;<span class="identifier">PAR3</span><span class="symbol">, </span><span class="keyword">reified</span>&nbsp;<span class="identifier">RET</span>&nbsp;<span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-any/index.html"><span class="identifier">Any</span></a><span class="symbol">, </span><span class="identifier">T</span><span class="symbol">&gt;</span> <span class="identifier">call</span><span class="symbol">(</span><span class="keyword">noinline</span> <span class="identifier" id="pl.treksoft.kvision.remote.KVRemoteAgent$call(kotlin.coroutines.SuspendFunction4((pl.treksoft.kvision.remote.KVRemoteAgent.call.T, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR1, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR2, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR3, pl.treksoft.kvision.remote.KVRemoteAgent.call.RET)), pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR1, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR2, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR3)/function">function</span><span class="symbol">:</span>&nbsp;<span class="keyword">suspend </span><a href="call.html#T"><span class="identifier">T</span></a><span class="symbol">.</span><span class="symbol">(</span><a href="call.html#PAR1"><span class="identifier">PAR1</span></a><span class="symbol">,</span>&nbsp;<a href="call.html#PAR2"><span class="identifier">PAR2</span></a><span class="symbol">,</span>&nbsp;<a href="call.html#PAR3"><span class="identifier">PAR3</span></a><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<a href="call.html#RET"><span class="identifier">RET</span></a><span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.remote.KVRemoteAgent$call(kotlin.coroutines.SuspendFunction4((pl.treksoft.kvision.remote.KVRemoteAgent.call.T, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR1, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR2, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR3, pl.treksoft.kvision.remote.KVRemoteAgent.call.RET)), pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR1, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR2, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR3)/p1">p1</span><span class="symbol">:</span>&nbsp;<a href="call.html#PAR1"><span class="identifier">PAR1</span></a><span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.remote.KVRemoteAgent$call(kotlin.coroutines.SuspendFunction4((pl.treksoft.kvision.remote.KVRemoteAgent.call.T, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR1, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR2, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR3, pl.treksoft.kvision.remote.KVRemoteAgent.call.RET)), pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR1, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR2, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR3)/p2">p2</span><span class="symbol">:</span>&nbsp;<a href="call.html#PAR2"><span class="identifier">PAR2</span></a><span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.remote.KVRemoteAgent$call(kotlin.coroutines.SuspendFunction4((pl.treksoft.kvision.remote.KVRemoteAgent.call.T, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR1, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR2, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR3, pl.treksoft.kvision.remote.KVRemoteAgent.call.RET)), pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR1, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR2, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR3)/p3">p3</span><span class="symbol">:</span>&nbsp;<a href="call.html#PAR3"><span class="identifier">PAR3</span></a><span class="symbol">)</span><span class="symbol">: </span><a href="call.html#RET"><span class="identifier">RET</span></a></code><br/>
+<a name="pl.treksoft.kvision.remote.KVRemoteAgent$call(kotlin.coroutines.SuspendFunction4((pl.treksoft.kvision.remote.KVRemoteAgent.call.T, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR1, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR2, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR3, kotlin.collections.List((pl.treksoft.kvision.remote.KVRemoteAgent.call.RET)))), pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR1, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR2, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR3)"></a>
+<code><span class="keyword">suspend</span> <span class="keyword">inline</span> <span class="keyword">fun </span><span class="symbol">&lt;</span><span class="keyword">reified</span>&nbsp;<span class="identifier">PAR1</span><span class="symbol">, </span><span class="keyword">reified</span>&nbsp;<span class="identifier">PAR2</span><span class="symbol">, </span><span class="keyword">reified</span>&nbsp;<span class="identifier">PAR3</span><span class="symbol">, </span><span class="keyword">reified</span>&nbsp;<span class="identifier">RET</span>&nbsp;<span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-any/index.html"><span class="identifier">Any</span></a><span class="symbol">, </span><span class="identifier">T</span><span class="symbol">&gt;</span> <span class="identifier">call</span><span class="symbol">(</span><span class="keyword">noinline</span> <span class="identifier" id="pl.treksoft.kvision.remote.KVRemoteAgent$call(kotlin.coroutines.SuspendFunction4((pl.treksoft.kvision.remote.KVRemoteAgent.call.T, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR1, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR2, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR3, kotlin.collections.List((pl.treksoft.kvision.remote.KVRemoteAgent.call.RET)))), pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR1, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR2, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR3)/function">function</span><span class="symbol">:</span>&nbsp;<span class="keyword">suspend </span><a href="call.html#T"><span class="identifier">T</span></a><span class="symbol">.</span><span class="symbol">(</span><a href="call.html#PAR1"><span class="identifier">PAR1</span></a><span class="symbol">,</span>&nbsp;<a href="call.html#PAR2"><span class="identifier">PAR2</span></a><span class="symbol">,</span>&nbsp;<a href="call.html#PAR3"><span class="identifier">PAR3</span></a><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/-list/index.html"><span class="identifier">List</span></a><span class="symbol">&lt;</span><a href="call.html#RET"><span class="identifier">RET</span></a><span class="symbol">&gt;</span><span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.remote.KVRemoteAgent$call(kotlin.coroutines.SuspendFunction4((pl.treksoft.kvision.remote.KVRemoteAgent.call.T, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR1, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR2, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR3, kotlin.collections.List((pl.treksoft.kvision.remote.KVRemoteAgent.call.RET)))), pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR1, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR2, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR3)/p1">p1</span><span class="symbol">:</span>&nbsp;<a href="call.html#PAR1"><span class="identifier">PAR1</span></a><span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.remote.KVRemoteAgent$call(kotlin.coroutines.SuspendFunction4((pl.treksoft.kvision.remote.KVRemoteAgent.call.T, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR1, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR2, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR3, kotlin.collections.List((pl.treksoft.kvision.remote.KVRemoteAgent.call.RET)))), pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR1, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR2, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR3)/p2">p2</span><span class="symbol">:</span>&nbsp;<a href="call.html#PAR2"><span class="identifier">PAR2</span></a><span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.remote.KVRemoteAgent$call(kotlin.coroutines.SuspendFunction4((pl.treksoft.kvision.remote.KVRemoteAgent.call.T, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR1, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR2, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR3, kotlin.collections.List((pl.treksoft.kvision.remote.KVRemoteAgent.call.RET)))), pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR1, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR2, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR3)/p3">p3</span><span class="symbol">:</span>&nbsp;<a href="call.html#PAR3"><span class="identifier">PAR3</span></a><span class="symbol">)</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/-list/index.html"><span class="identifier">List</span></a><span class="symbol">&lt;</span><a href="call.html#RET"><span class="identifier">RET</span></a><span class="symbol">&gt;</span></code><br/>
+<a name="pl.treksoft.kvision.remote.KVRemoteAgent$call(kotlin.coroutines.SuspendFunction5((pl.treksoft.kvision.remote.KVRemoteAgent.call.T, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR1, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR2, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR3, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR4, pl.treksoft.kvision.remote.KVRemoteAgent.call.RET)), pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR1, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR2, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR3, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR4)"></a>
+<code><span class="keyword">suspend</span> <span class="keyword">inline</span> <span class="keyword">fun </span><span class="symbol">&lt;</span><span class="keyword">reified</span>&nbsp;<span class="identifier">PAR1</span><span class="symbol">, </span><span class="keyword">reified</span>&nbsp;<span class="identifier">PAR2</span><span class="symbol">, </span><span class="keyword">reified</span>&nbsp;<span class="identifier">PAR3</span><span class="symbol">, </span><span class="keyword">reified</span>&nbsp;<span class="identifier">PAR4</span><span class="symbol">, </span><span class="keyword">reified</span>&nbsp;<span class="identifier">RET</span>&nbsp;<span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-any/index.html"><span class="identifier">Any</span></a><span class="symbol">, </span><span class="identifier">T</span><span class="symbol">&gt;</span> <span class="identifier">call</span><span class="symbol">(</span><span class="keyword">noinline</span> <span class="identifier" id="pl.treksoft.kvision.remote.KVRemoteAgent$call(kotlin.coroutines.SuspendFunction5((pl.treksoft.kvision.remote.KVRemoteAgent.call.T, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR1, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR2, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR3, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR4, pl.treksoft.kvision.remote.KVRemoteAgent.call.RET)), pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR1, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR2, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR3, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR4)/function">function</span><span class="symbol">:</span>&nbsp;<span class="keyword">suspend </span><a href="call.html#T"><span class="identifier">T</span></a><span class="symbol">.</span><span class="symbol">(</span><a href="call.html#PAR1"><span class="identifier">PAR1</span></a><span class="symbol">,</span>&nbsp;<a href="call.html#PAR2"><span class="identifier">PAR2</span></a><span class="symbol">,</span>&nbsp;<a href="call.html#PAR3"><span class="identifier">PAR3</span></a><span class="symbol">,</span>&nbsp;<a href="call.html#PAR4"><span class="identifier">PAR4</span></a><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<a href="call.html#RET"><span class="identifier">RET</span></a><span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.remote.KVRemoteAgent$call(kotlin.coroutines.SuspendFunction5((pl.treksoft.kvision.remote.KVRemoteAgent.call.T, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR1, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR2, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR3, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR4, pl.treksoft.kvision.remote.KVRemoteAgent.call.RET)), pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR1, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR2, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR3, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR4)/p1">p1</span><span class="symbol">:</span>&nbsp;<a href="call.html#PAR1"><span class="identifier">PAR1</span></a><span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.remote.KVRemoteAgent$call(kotlin.coroutines.SuspendFunction5((pl.treksoft.kvision.remote.KVRemoteAgent.call.T, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR1, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR2, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR3, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR4, pl.treksoft.kvision.remote.KVRemoteAgent.call.RET)), pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR1, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR2, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR3, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR4)/p2">p2</span><span class="symbol">:</span>&nbsp;<a href="call.html#PAR2"><span class="identifier">PAR2</span></a><span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.remote.KVRemoteAgent$call(kotlin.coroutines.SuspendFunction5((pl.treksoft.kvision.remote.KVRemoteAgent.call.T, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR1, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR2, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR3, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR4, pl.treksoft.kvision.remote.KVRemoteAgent.call.RET)), pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR1, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR2, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR3, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR4)/p3">p3</span><span class="symbol">:</span>&nbsp;<a href="call.html#PAR3"><span class="identifier">PAR3</span></a><span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.remote.KVRemoteAgent$call(kotlin.coroutines.SuspendFunction5((pl.treksoft.kvision.remote.KVRemoteAgent.call.T, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR1, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR2, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR3, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR4, pl.treksoft.kvision.remote.KVRemoteAgent.call.RET)), pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR1, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR2, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR3, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR4)/p4">p4</span><span class="symbol">:</span>&nbsp;<a href="call.html#PAR4"><span class="identifier">PAR4</span></a><span class="symbol">)</span><span class="symbol">: </span><a href="call.html#RET"><span class="identifier">RET</span></a></code><br/>
+<a name="pl.treksoft.kvision.remote.KVRemoteAgent$call(kotlin.coroutines.SuspendFunction5((pl.treksoft.kvision.remote.KVRemoteAgent.call.T, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR1, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR2, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR3, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR4, kotlin.collections.List((pl.treksoft.kvision.remote.KVRemoteAgent.call.RET)))), pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR1, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR2, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR3, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR4)"></a>
+<code><span class="keyword">suspend</span> <span class="keyword">inline</span> <span class="keyword">fun </span><span class="symbol">&lt;</span><span class="keyword">reified</span>&nbsp;<span class="identifier">PAR1</span><span class="symbol">, </span><span class="keyword">reified</span>&nbsp;<span class="identifier">PAR2</span><span class="symbol">, </span><span class="keyword">reified</span>&nbsp;<span class="identifier">PAR3</span><span class="symbol">, </span><span class="keyword">reified</span>&nbsp;<span class="identifier">PAR4</span><span class="symbol">, </span><span class="keyword">reified</span>&nbsp;<span class="identifier">RET</span>&nbsp;<span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-any/index.html"><span class="identifier">Any</span></a><span class="symbol">, </span><span class="identifier">T</span><span class="symbol">&gt;</span> <span class="identifier">call</span><span class="symbol">(</span><span class="keyword">noinline</span> <span class="identifier" id="pl.treksoft.kvision.remote.KVRemoteAgent$call(kotlin.coroutines.SuspendFunction5((pl.treksoft.kvision.remote.KVRemoteAgent.call.T, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR1, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR2, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR3, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR4, kotlin.collections.List((pl.treksoft.kvision.remote.KVRemoteAgent.call.RET)))), pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR1, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR2, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR3, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR4)/function">function</span><span class="symbol">:</span>&nbsp;<span class="keyword">suspend </span><a href="call.html#T"><span class="identifier">T</span></a><span class="symbol">.</span><span class="symbol">(</span><a href="call.html#PAR1"><span class="identifier">PAR1</span></a><span class="symbol">,</span>&nbsp;<a href="call.html#PAR2"><span class="identifier">PAR2</span></a><span class="symbol">,</span>&nbsp;<a href="call.html#PAR3"><span class="identifier">PAR3</span></a><span class="symbol">,</span>&nbsp;<a href="call.html#PAR4"><span class="identifier">PAR4</span></a><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/-list/index.html"><span class="identifier">List</span></a><span class="symbol">&lt;</span><a href="call.html#RET"><span class="identifier">RET</span></a><span class="symbol">&gt;</span><span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.remote.KVRemoteAgent$call(kotlin.coroutines.SuspendFunction5((pl.treksoft.kvision.remote.KVRemoteAgent.call.T, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR1, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR2, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR3, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR4, kotlin.collections.List((pl.treksoft.kvision.remote.KVRemoteAgent.call.RET)))), pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR1, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR2, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR3, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR4)/p1">p1</span><span class="symbol">:</span>&nbsp;<a href="call.html#PAR1"><span class="identifier">PAR1</span></a><span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.remote.KVRemoteAgent$call(kotlin.coroutines.SuspendFunction5((pl.treksoft.kvision.remote.KVRemoteAgent.call.T, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR1, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR2, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR3, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR4, kotlin.collections.List((pl.treksoft.kvision.remote.KVRemoteAgent.call.RET)))), pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR1, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR2, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR3, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR4)/p2">p2</span><span class="symbol">:</span>&nbsp;<a href="call.html#PAR2"><span class="identifier">PAR2</span></a><span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.remote.KVRemoteAgent$call(kotlin.coroutines.SuspendFunction5((pl.treksoft.kvision.remote.KVRemoteAgent.call.T, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR1, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR2, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR3, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR4, kotlin.collections.List((pl.treksoft.kvision.remote.KVRemoteAgent.call.RET)))), pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR1, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR2, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR3, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR4)/p3">p3</span><span class="symbol">:</span>&nbsp;<a href="call.html#PAR3"><span class="identifier">PAR3</span></a><span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.remote.KVRemoteAgent$call(kotlin.coroutines.SuspendFunction5((pl.treksoft.kvision.remote.KVRemoteAgent.call.T, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR1, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR2, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR3, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR4, kotlin.collections.List((pl.treksoft.kvision.remote.KVRemoteAgent.call.RET)))), pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR1, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR2, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR3, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR4)/p4">p4</span><span class="symbol">:</span>&nbsp;<a href="call.html#PAR4"><span class="identifier">PAR4</span></a><span class="symbol">)</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/-list/index.html"><span class="identifier">List</span></a><span class="symbol">&lt;</span><a href="call.html#RET"><span class="identifier">RET</span></a><span class="symbol">&gt;</span></code><br/>
+<a name="pl.treksoft.kvision.remote.KVRemoteAgent$call(kotlin.coroutines.SuspendFunction6((pl.treksoft.kvision.remote.KVRemoteAgent.call.T, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR1, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR2, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR3, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR4, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR5, pl.treksoft.kvision.remote.KVRemoteAgent.call.RET)), pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR1, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR2, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR3, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR4, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR5)"></a>
+<code><span class="keyword">suspend</span> <span class="keyword">inline</span> <span class="keyword">fun </span><span class="symbol">&lt;</span><span class="keyword">reified</span>&nbsp;<span class="identifier">PAR1</span><span class="symbol">, </span><span class="keyword">reified</span>&nbsp;<span class="identifier">PAR2</span><span class="symbol">, </span><span class="keyword">reified</span>&nbsp;<span class="identifier">PAR3</span><span class="symbol">, </span><span class="keyword">reified</span>&nbsp;<span class="identifier">PAR4</span><span class="symbol">, </span><span class="keyword">reified</span>&nbsp;<span class="identifier">PAR5</span><span class="symbol">, </span><span class="keyword">reified</span>&nbsp;<span class="identifier">RET</span>&nbsp;<span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-any/index.html"><span class="identifier">Any</span></a><span class="symbol">, </span><span class="identifier">T</span><span class="symbol">&gt;</span> <span class="identifier">call</span><span class="symbol">(</span><span class="keyword">noinline</span> <span class="identifier" id="pl.treksoft.kvision.remote.KVRemoteAgent$call(kotlin.coroutines.SuspendFunction6((pl.treksoft.kvision.remote.KVRemoteAgent.call.T, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR1, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR2, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR3, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR4, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR5, pl.treksoft.kvision.remote.KVRemoteAgent.call.RET)), pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR1, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR2, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR3, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR4, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR5)/function">function</span><span class="symbol">:</span>&nbsp;<span class="keyword">suspend </span><a href="call.html#T"><span class="identifier">T</span></a><span class="symbol">.</span><span class="symbol">(</span><a href="call.html#PAR1"><span class="identifier">PAR1</span></a><span class="symbol">,</span>&nbsp;<a href="call.html#PAR2"><span class="identifier">PAR2</span></a><span class="symbol">,</span>&nbsp;<a href="call.html#PAR3"><span class="identifier">PAR3</span></a><span class="symbol">,</span>&nbsp;<a href="call.html#PAR4"><span class="identifier">PAR4</span></a><span class="symbol">,</span>&nbsp;<a href="call.html#PAR5"><span class="identifier">PAR5</span></a><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<a href="call.html#RET"><span class="identifier">RET</span></a><span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.remote.KVRemoteAgent$call(kotlin.coroutines.SuspendFunction6((pl.treksoft.kvision.remote.KVRemoteAgent.call.T, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR1, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR2, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR3, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR4, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR5, pl.treksoft.kvision.remote.KVRemoteAgent.call.RET)), pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR1, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR2, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR3, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR4, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR5)/p1">p1</span><span class="symbol">:</span>&nbsp;<a href="call.html#PAR1"><span class="identifier">PAR1</span></a><span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.remote.KVRemoteAgent$call(kotlin.coroutines.SuspendFunction6((pl.treksoft.kvision.remote.KVRemoteAgent.call.T, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR1, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR2, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR3, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR4, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR5, pl.treksoft.kvision.remote.KVRemoteAgent.call.RET)), pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR1, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR2, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR3, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR4, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR5)/p2">p2</span><span class="symbol">:</span>&nbsp;<a href="call.html#PAR2"><span class="identifier">PAR2</span></a><span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.remote.KVRemoteAgent$call(kotlin.coroutines.SuspendFunction6((pl.treksoft.kvision.remote.KVRemoteAgent.call.T, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR1, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR2, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR3, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR4, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR5, pl.treksoft.kvision.remote.KVRemoteAgent.call.RET)), pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR1, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR2, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR3, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR4, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR5)/p3">p3</span><span class="symbol">:</span>&nbsp;<a href="call.html#PAR3"><span class="identifier">PAR3</span></a><span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.remote.KVRemoteAgent$call(kotlin.coroutines.SuspendFunction6((pl.treksoft.kvision.remote.KVRemoteAgent.call.T, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR1, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR2, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR3, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR4, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR5, pl.treksoft.kvision.remote.KVRemoteAgent.call.RET)), pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR1, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR2, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR3, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR4, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR5)/p4">p4</span><span class="symbol">:</span>&nbsp;<a href="call.html#PAR4"><span class="identifier">PAR4</span></a><span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.remote.KVRemoteAgent$call(kotlin.coroutines.SuspendFunction6((pl.treksoft.kvision.remote.KVRemoteAgent.call.T, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR1, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR2, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR3, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR4, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR5, pl.treksoft.kvision.remote.KVRemoteAgent.call.RET)), pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR1, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR2, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR3, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR4, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR5)/p5">p5</span><span class="symbol">:</span>&nbsp;<a href="call.html#PAR5"><span class="identifier">PAR5</span></a><span class="symbol">)</span><span class="symbol">: </span><a href="call.html#RET"><span class="identifier">RET</span></a></code><br/>
+<a name="pl.treksoft.kvision.remote.KVRemoteAgent$call(kotlin.coroutines.SuspendFunction6((pl.treksoft.kvision.remote.KVRemoteAgent.call.T, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR1, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR2, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR3, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR4, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR5, kotlin.collections.List((pl.treksoft.kvision.remote.KVRemoteAgent.call.RET)))), pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR1, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR2, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR3, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR4, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR5)"></a>
+<code><span class="keyword">suspend</span> <span class="keyword">inline</span> <span class="keyword">fun </span><span class="symbol">&lt;</span><span class="keyword">reified</span>&nbsp;<span class="identifier">PAR1</span><span class="symbol">, </span><span class="keyword">reified</span>&nbsp;<span class="identifier">PAR2</span><span class="symbol">, </span><span class="keyword">reified</span>&nbsp;<span class="identifier">PAR3</span><span class="symbol">, </span><span class="keyword">reified</span>&nbsp;<span class="identifier">PAR4</span><span class="symbol">, </span><span class="keyword">reified</span>&nbsp;<span class="identifier">PAR5</span><span class="symbol">, </span><span class="keyword">reified</span>&nbsp;<span class="identifier">RET</span>&nbsp;<span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-any/index.html"><span class="identifier">Any</span></a><span class="symbol">, </span><span class="identifier">T</span><span class="symbol">&gt;</span> <span class="identifier">call</span><span class="symbol">(</span><span class="keyword">noinline</span> <span class="identifier" id="pl.treksoft.kvision.remote.KVRemoteAgent$call(kotlin.coroutines.SuspendFunction6((pl.treksoft.kvision.remote.KVRemoteAgent.call.T, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR1, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR2, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR3, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR4, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR5, kotlin.collections.List((pl.treksoft.kvision.remote.KVRemoteAgent.call.RET)))), pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR1, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR2, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR3, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR4, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR5)/function">function</span><span class="symbol">:</span>&nbsp;<span class="keyword">suspend </span><a href="call.html#T"><span class="identifier">T</span></a><span class="symbol">.</span><span class="symbol">(</span><a href="call.html#PAR1"><span class="identifier">PAR1</span></a><span class="symbol">,</span>&nbsp;<a href="call.html#PAR2"><span class="identifier">PAR2</span></a><span class="symbol">,</span>&nbsp;<a href="call.html#PAR3"><span class="identifier">PAR3</span></a><span class="symbol">,</span>&nbsp;<a href="call.html#PAR4"><span class="identifier">PAR4</span></a><span class="symbol">,</span>&nbsp;<a href="call.html#PAR5"><span class="identifier">PAR5</span></a><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/-list/index.html"><span class="identifier">List</span></a><span class="symbol">&lt;</span><a href="call.html#RET"><span class="identifier">RET</span></a><span class="symbol">&gt;</span><span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.remote.KVRemoteAgent$call(kotlin.coroutines.SuspendFunction6((pl.treksoft.kvision.remote.KVRemoteAgent.call.T, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR1, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR2, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR3, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR4, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR5, kotlin.collections.List((pl.treksoft.kvision.remote.KVRemoteAgent.call.RET)))), pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR1, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR2, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR3, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR4, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR5)/p1">p1</span><span class="symbol">:</span>&nbsp;<a href="call.html#PAR1"><span class="identifier">PAR1</span></a><span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.remote.KVRemoteAgent$call(kotlin.coroutines.SuspendFunction6((pl.treksoft.kvision.remote.KVRemoteAgent.call.T, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR1, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR2, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR3, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR4, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR5, kotlin.collections.List((pl.treksoft.kvision.remote.KVRemoteAgent.call.RET)))), pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR1, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR2, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR3, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR4, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR5)/p2">p2</span><span class="symbol">:</span>&nbsp;<a href="call.html#PAR2"><span class="identifier">PAR2</span></a><span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.remote.KVRemoteAgent$call(kotlin.coroutines.SuspendFunction6((pl.treksoft.kvision.remote.KVRemoteAgent.call.T, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR1, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR2, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR3, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR4, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR5, kotlin.collections.List((pl.treksoft.kvision.remote.KVRemoteAgent.call.RET)))), pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR1, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR2, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR3, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR4, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR5)/p3">p3</span><span class="symbol">:</span>&nbsp;<a href="call.html#PAR3"><span class="identifier">PAR3</span></a><span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.remote.KVRemoteAgent$call(kotlin.coroutines.SuspendFunction6((pl.treksoft.kvision.remote.KVRemoteAgent.call.T, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR1, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR2, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR3, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR4, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR5, kotlin.collections.List((pl.treksoft.kvision.remote.KVRemoteAgent.call.RET)))), pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR1, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR2, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR3, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR4, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR5)/p4">p4</span><span class="symbol">:</span>&nbsp;<a href="call.html#PAR4"><span class="identifier">PAR4</span></a><span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.remote.KVRemoteAgent$call(kotlin.coroutines.SuspendFunction6((pl.treksoft.kvision.remote.KVRemoteAgent.call.T, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR1, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR2, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR3, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR4, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR5, kotlin.collections.List((pl.treksoft.kvision.remote.KVRemoteAgent.call.RET)))), pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR1, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR2, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR3, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR4, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR5)/p5">p5</span><span class="symbol">:</span>&nbsp;<a href="call.html#PAR5"><span class="identifier">PAR5</span></a><span class="symbol">)</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/-list/index.html"><span class="identifier">List</span></a><span class="symbol">&lt;</span><a href="call.html#RET"><span class="identifier">RET</span></a><span class="symbol">&gt;</span></code>
+<p>Executes defined call to a remote web service.</p>
+</BODY>
+</HTML>
diff --git a/api1/pl.treksoft.kvision.remote/-k-v-remote-agent/index.html b/api1/pl.treksoft.kvision.remote/-k-v-remote-agent/index.html
new file mode 100644
index 00000000..59e0dccd
--- /dev/null
+++ b/api1/pl.treksoft.kvision.remote/-k-v-remote-agent/index.html
@@ -0,0 +1,109 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>KVRemoteAgent - kvision</title>
+<link rel="stylesheet" href="../../../style.css">
+</HEAD>
+<BODY>
+<a href="../../index.html">kvision</a>&nbsp;/&nbsp;<a href="../index.html">pl.treksoft.kvision.remote</a>&nbsp;/&nbsp;<a href="./index.html">KVRemoteAgent</a><br/>
+<br/>
+<h1>KVRemoteAgent</h1>
+<code><span class="keyword">open</span> <span class="keyword">class </span><span class="identifier">KVRemoteAgent</span><span class="symbol">&lt;</span><span class="identifier">T</span>&nbsp;<span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-any/index.html"><span class="identifier">Any</span></a><span class="symbol">&gt;</span>&nbsp;<span class="symbol">:</span>&nbsp;<a href="../-remote-agent/index.html"><span class="identifier">RemoteAgent</span></a></code>
+<p>Client side agent for JSON-RPC remote calls.</p>
+<h3>Constructors</h3>
+<table>
+<tbody>
+<tr>
+<td>
+<p><a href="-init-.html">&lt;init&gt;</a></p>
+</td>
+<td>
+<code><span class="identifier">KVRemoteAgent</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.remote.KVRemoteAgent$<init>(pl.treksoft.kvision.remote.KVServiceManager((pl.treksoft.kvision.remote.KVRemoteAgent.T)))/serviceManager">serviceManager</span><span class="symbol">:</span>&nbsp;<a href="../-k-v-service-manager/index.html"><span class="identifier">KVServiceManager</span></a><span class="symbol">&lt;</span><a href="index.html#T"><span class="identifier">T</span></a><span class="symbol">&gt;</span><span class="symbol">)</span></code>
+<p>Client side agent for JSON-RPC remote calls.</p>
+</td>
+</tr>
+</tbody>
+</table>
+<h3>Properties</h3>
+<table>
+<tbody>
+<tr>
+<td>
+<p><a href="call-agent.html">callAgent</a></p>
+</td>
+<td>
+<code><span class="keyword">val </span><span class="identifier">callAgent</span><span class="symbol">: </span><a href="../-call-agent/index.html"><span class="identifier">CallAgent</span></a></code></td>
+</tr>
+<tr>
+<td>
+<p><a href="service-manager.html">serviceManager</a></p>
+</td>
+<td>
+<code><span class="keyword">val </span><span class="identifier">serviceManager</span><span class="symbol">: </span><a href="../-k-v-service-manager/index.html"><span class="identifier">KVServiceManager</span></a><span class="symbol">&lt;</span><a href="index.html#T"><span class="identifier">T</span></a><span class="symbol">&gt;</span></code></td>
+</tr>
+</tbody>
+</table>
+<h3>Functions</h3>
+<table>
+<tbody>
+<tr>
+<td>
+<p><a href="call.html">call</a></p>
+</td>
+<td>
+<code><span class="keyword">suspend</span> <span class="keyword">fun </span><span class="symbol">&lt;</span><span class="identifier">RET</span>&nbsp;<span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-any/index.html"><span class="identifier">Any</span></a><span class="symbol">, </span><span class="identifier">T</span><span class="symbol">&gt;</span> <span class="identifier">call</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.remote.KVRemoteAgent$call(kotlin.coroutines.SuspendFunction1((pl.treksoft.kvision.remote.KVRemoteAgent.call.T, pl.treksoft.kvision.remote.KVRemoteAgent.call.RET)))/function">function</span><span class="symbol">:</span>&nbsp;<span class="keyword">suspend </span><a href="call.html#T"><span class="identifier">T</span></a><span class="symbol">.</span><span class="symbol">(</span><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<a href="call.html#RET"><span class="identifier">RET</span></a><span class="symbol">)</span><span class="symbol">: </span><a href="call.html#RET"><span class="identifier">RET</span></a></code><br/>
+<code><span class="keyword">suspend</span> <span class="keyword">fun </span><span class="symbol">&lt;</span><span class="identifier">RET</span>&nbsp;<span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-any/index.html"><span class="identifier">Any</span></a><span class="symbol">, </span><span class="identifier">T</span><span class="symbol">&gt;</span> <span class="identifier">call</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.remote.KVRemoteAgent$call(kotlin.coroutines.SuspendFunction1((pl.treksoft.kvision.remote.KVRemoteAgent.call.T, kotlin.collections.List((pl.treksoft.kvision.remote.KVRemoteAgent.call.RET)))))/function">function</span><span class="symbol">:</span>&nbsp;<span class="keyword">suspend </span><a href="call.html#T"><span class="identifier">T</span></a><span class="symbol">.</span><span class="symbol">(</span><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/-list/index.html"><span class="identifier">List</span></a><span class="symbol">&lt;</span><a href="call.html#RET"><span class="identifier">RET</span></a><span class="symbol">&gt;</span><span class="symbol">)</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/-list/index.html"><span class="identifier">List</span></a><span class="symbol">&lt;</span><a href="call.html#RET"><span class="identifier">RET</span></a><span class="symbol">&gt;</span></code><br/>
+<code><span class="keyword">suspend</span> <span class="keyword">fun </span><span class="symbol">&lt;</span><span class="identifier">PAR</span><span class="symbol">, </span><span class="identifier">RET</span>&nbsp;<span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-any/index.html"><span class="identifier">Any</span></a><span class="symbol">, </span><span class="identifier">T</span><span class="symbol">&gt;</span> <span class="identifier">call</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.remote.KVRemoteAgent$call(kotlin.coroutines.SuspendFunction2((pl.treksoft.kvision.remote.KVRemoteAgent.call.T, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR, pl.treksoft.kvision.remote.KVRemoteAgent.call.RET)), pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR)/function">function</span><span class="symbol">:</span>&nbsp;<span class="keyword">suspend </span><a href="call.html#T"><span class="identifier">T</span></a><span class="symbol">.</span><span class="symbol">(</span><a href="call.html#PAR"><span class="identifier">PAR</span></a><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<a href="call.html#RET"><span class="identifier">RET</span></a><span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.remote.KVRemoteAgent$call(kotlin.coroutines.SuspendFunction2((pl.treksoft.kvision.remote.KVRemoteAgent.call.T, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR, pl.treksoft.kvision.remote.KVRemoteAgent.call.RET)), pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR)/p">p</span><span class="symbol">:</span>&nbsp;<a href="call.html#PAR"><span class="identifier">PAR</span></a><span class="symbol">)</span><span class="symbol">: </span><a href="call.html#RET"><span class="identifier">RET</span></a></code><br/>
+<code><span class="keyword">suspend</span> <span class="keyword">fun </span><span class="symbol">&lt;</span><span class="identifier">PAR</span><span class="symbol">, </span><span class="identifier">RET</span>&nbsp;<span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-any/index.html"><span class="identifier">Any</span></a><span class="symbol">, </span><span class="identifier">T</span><span class="symbol">&gt;</span> <span class="identifier">call</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.remote.KVRemoteAgent$call(kotlin.coroutines.SuspendFunction2((pl.treksoft.kvision.remote.KVRemoteAgent.call.T, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR, kotlin.collections.List((pl.treksoft.kvision.remote.KVRemoteAgent.call.RET)))), pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR)/function">function</span><span class="symbol">:</span>&nbsp;<span class="keyword">suspend </span><a href="call.html#T"><span class="identifier">T</span></a><span class="symbol">.</span><span class="symbol">(</span><a href="call.html#PAR"><span class="identifier">PAR</span></a><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/-list/index.html"><span class="identifier">List</span></a><span class="symbol">&lt;</span><a href="call.html#RET"><span class="identifier">RET</span></a><span class="symbol">&gt;</span><span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.remote.KVRemoteAgent$call(kotlin.coroutines.SuspendFunction2((pl.treksoft.kvision.remote.KVRemoteAgent.call.T, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR, kotlin.collections.List((pl.treksoft.kvision.remote.KVRemoteAgent.call.RET)))), pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR)/p">p</span><span class="symbol">:</span>&nbsp;<a href="call.html#PAR"><span class="identifier">PAR</span></a><span class="symbol">)</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/-list/index.html"><span class="identifier">List</span></a><span class="symbol">&lt;</span><a href="call.html#RET"><span class="identifier">RET</span></a><span class="symbol">&gt;</span></code><br/>
+<code><span class="keyword">suspend</span> <span class="keyword">fun </span><span class="symbol">&lt;</span><span class="identifier">PAR1</span><span class="symbol">, </span><span class="identifier">PAR2</span><span class="symbol">, </span><span class="identifier">RET</span>&nbsp;<span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-any/index.html"><span class="identifier">Any</span></a><span class="symbol">, </span><span class="identifier">T</span><span class="symbol">&gt;</span> <span class="identifier">call</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.remote.KVRemoteAgent$call(kotlin.coroutines.SuspendFunction3((pl.treksoft.kvision.remote.KVRemoteAgent.call.T, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR1, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR2, pl.treksoft.kvision.remote.KVRemoteAgent.call.RET)), pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR1, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR2)/function">function</span><span class="symbol">:</span>&nbsp;<span class="keyword">suspend </span><a href="call.html#T"><span class="identifier">T</span></a><span class="symbol">.</span><span class="symbol">(</span><a href="call.html#PAR1"><span class="identifier">PAR1</span></a><span class="symbol">,</span>&nbsp;<a href="call.html#PAR2"><span class="identifier">PAR2</span></a><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<a href="call.html#RET"><span class="identifier">RET</span></a><span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.remote.KVRemoteAgent$call(kotlin.coroutines.SuspendFunction3((pl.treksoft.kvision.remote.KVRemoteAgent.call.T, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR1, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR2, pl.treksoft.kvision.remote.KVRemoteAgent.call.RET)), pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR1, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR2)/p1">p1</span><span class="symbol">:</span>&nbsp;<a href="call.html#PAR1"><span class="identifier">PAR1</span></a><span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.remote.KVRemoteAgent$call(kotlin.coroutines.SuspendFunction3((pl.treksoft.kvision.remote.KVRemoteAgent.call.T, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR1, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR2, pl.treksoft.kvision.remote.KVRemoteAgent.call.RET)), pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR1, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR2)/p2">p2</span><span class="symbol">:</span>&nbsp;<a href="call.html#PAR2"><span class="identifier">PAR2</span></a><span class="symbol">)</span><span class="symbol">: </span><a href="call.html#RET"><span class="identifier">RET</span></a></code><br/>
+<code><span class="keyword">suspend</span> <span class="keyword">fun </span><span class="symbol">&lt;</span><span class="identifier">PAR1</span><span class="symbol">, </span><span class="identifier">PAR2</span><span class="symbol">, </span><span class="identifier">RET</span>&nbsp;<span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-any/index.html"><span class="identifier">Any</span></a><span class="symbol">, </span><span class="identifier">T</span><span class="symbol">&gt;</span> <span class="identifier">call</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.remote.KVRemoteAgent$call(kotlin.coroutines.SuspendFunction3((pl.treksoft.kvision.remote.KVRemoteAgent.call.T, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR1, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR2, kotlin.collections.List((pl.treksoft.kvision.remote.KVRemoteAgent.call.RET)))), pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR1, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR2)/function">function</span><span class="symbol">:</span>&nbsp;<span class="keyword">suspend </span><a href="call.html#T"><span class="identifier">T</span></a><span class="symbol">.</span><span class="symbol">(</span><a href="call.html#PAR1"><span class="identifier">PAR1</span></a><span class="symbol">,</span>&nbsp;<a href="call.html#PAR2"><span class="identifier">PAR2</span></a><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/-list/index.html"><span class="identifier">List</span></a><span class="symbol">&lt;</span><a href="call.html#RET"><span class="identifier">RET</span></a><span class="symbol">&gt;</span><span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.remote.KVRemoteAgent$call(kotlin.coroutines.SuspendFunction3((pl.treksoft.kvision.remote.KVRemoteAgent.call.T, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR1, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR2, kotlin.collections.List((pl.treksoft.kvision.remote.KVRemoteAgent.call.RET)))), pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR1, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR2)/p1">p1</span><span class="symbol">:</span>&nbsp;<a href="call.html#PAR1"><span class="identifier">PAR1</span></a><span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.remote.KVRemoteAgent$call(kotlin.coroutines.SuspendFunction3((pl.treksoft.kvision.remote.KVRemoteAgent.call.T, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR1, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR2, kotlin.collections.List((pl.treksoft.kvision.remote.KVRemoteAgent.call.RET)))), pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR1, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR2)/p2">p2</span><span class="symbol">:</span>&nbsp;<a href="call.html#PAR2"><span class="identifier">PAR2</span></a><span class="symbol">)</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/-list/index.html"><span class="identifier">List</span></a><span class="symbol">&lt;</span><a href="call.html#RET"><span class="identifier">RET</span></a><span class="symbol">&gt;</span></code><br/>
+<code><span class="keyword">suspend</span> <span class="keyword">fun </span><span class="symbol">&lt;</span><span class="identifier">PAR1</span><span class="symbol">, </span><span class="identifier">PAR2</span><span class="symbol">, </span><span class="identifier">PAR3</span><span class="symbol">, </span><span class="identifier">RET</span>&nbsp;<span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-any/index.html"><span class="identifier">Any</span></a><span class="symbol">, </span><span class="identifier">T</span><span class="symbol">&gt;</span> <span class="identifier">call</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.remote.KVRemoteAgent$call(kotlin.coroutines.SuspendFunction4((pl.treksoft.kvision.remote.KVRemoteAgent.call.T, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR1, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR2, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR3, pl.treksoft.kvision.remote.KVRemoteAgent.call.RET)), pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR1, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR2, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR3)/function">function</span><span class="symbol">:</span>&nbsp;<span class="keyword">suspend </span><a href="call.html#T"><span class="identifier">T</span></a><span class="symbol">.</span><span class="symbol">(</span><a href="call.html#PAR1"><span class="identifier">PAR1</span></a><span class="symbol">,</span>&nbsp;<a href="call.html#PAR2"><span class="identifier">PAR2</span></a><span class="symbol">,</span>&nbsp;<a href="call.html#PAR3"><span class="identifier">PAR3</span></a><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<a href="call.html#RET"><span class="identifier">RET</span></a><span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.remote.KVRemoteAgent$call(kotlin.coroutines.SuspendFunction4((pl.treksoft.kvision.remote.KVRemoteAgent.call.T, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR1, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR2, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR3, pl.treksoft.kvision.remote.KVRemoteAgent.call.RET)), pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR1, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR2, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR3)/p1">p1</span><span class="symbol">:</span>&nbsp;<a href="call.html#PAR1"><span class="identifier">PAR1</span></a><span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.remote.KVRemoteAgent$call(kotlin.coroutines.SuspendFunction4((pl.treksoft.kvision.remote.KVRemoteAgent.call.T, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR1, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR2, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR3, pl.treksoft.kvision.remote.KVRemoteAgent.call.RET)), pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR1, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR2, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR3)/p2">p2</span><span class="symbol">:</span>&nbsp;<a href="call.html#PAR2"><span class="identifier">PAR2</span></a><span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.remote.KVRemoteAgent$call(kotlin.coroutines.SuspendFunction4((pl.treksoft.kvision.remote.KVRemoteAgent.call.T, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR1, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR2, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR3, pl.treksoft.kvision.remote.KVRemoteAgent.call.RET)), pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR1, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR2, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR3)/p3">p3</span><span class="symbol">:</span>&nbsp;<a href="call.html#PAR3"><span class="identifier">PAR3</span></a><span class="symbol">)</span><span class="symbol">: </span><a href="call.html#RET"><span class="identifier">RET</span></a></code><br/>
+<code><span class="keyword">suspend</span> <span class="keyword">fun </span><span class="symbol">&lt;</span><span class="identifier">PAR1</span><span class="symbol">, </span><span class="identifier">PAR2</span><span class="symbol">, </span><span class="identifier">PAR3</span><span class="symbol">, </span><span class="identifier">RET</span>&nbsp;<span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-any/index.html"><span class="identifier">Any</span></a><span class="symbol">, </span><span class="identifier">T</span><span class="symbol">&gt;</span> <span class="identifier">call</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.remote.KVRemoteAgent$call(kotlin.coroutines.SuspendFunction4((pl.treksoft.kvision.remote.KVRemoteAgent.call.T, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR1, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR2, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR3, kotlin.collections.List((pl.treksoft.kvision.remote.KVRemoteAgent.call.RET)))), pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR1, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR2, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR3)/function">function</span><span class="symbol">:</span>&nbsp;<span class="keyword">suspend </span><a href="call.html#T"><span class="identifier">T</span></a><span class="symbol">.</span><span class="symbol">(</span><a href="call.html#PAR1"><span class="identifier">PAR1</span></a><span class="symbol">,</span>&nbsp;<a href="call.html#PAR2"><span class="identifier">PAR2</span></a><span class="symbol">,</span>&nbsp;<a href="call.html#PAR3"><span class="identifier">PAR3</span></a><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/-list/index.html"><span class="identifier">List</span></a><span class="symbol">&lt;</span><a href="call.html#RET"><span class="identifier">RET</span></a><span class="symbol">&gt;</span><span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.remote.KVRemoteAgent$call(kotlin.coroutines.SuspendFunction4((pl.treksoft.kvision.remote.KVRemoteAgent.call.T, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR1, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR2, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR3, kotlin.collections.List((pl.treksoft.kvision.remote.KVRemoteAgent.call.RET)))), pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR1, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR2, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR3)/p1">p1</span><span class="symbol">:</span>&nbsp;<a href="call.html#PAR1"><span class="identifier">PAR1</span></a><span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.remote.KVRemoteAgent$call(kotlin.coroutines.SuspendFunction4((pl.treksoft.kvision.remote.KVRemoteAgent.call.T, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR1, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR2, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR3, kotlin.collections.List((pl.treksoft.kvision.remote.KVRemoteAgent.call.RET)))), pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR1, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR2, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR3)/p2">p2</span><span class="symbol">:</span>&nbsp;<a href="call.html#PAR2"><span class="identifier">PAR2</span></a><span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.remote.KVRemoteAgent$call(kotlin.coroutines.SuspendFunction4((pl.treksoft.kvision.remote.KVRemoteAgent.call.T, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR1, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR2, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR3, kotlin.collections.List((pl.treksoft.kvision.remote.KVRemoteAgent.call.RET)))), pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR1, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR2, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR3)/p3">p3</span><span class="symbol">:</span>&nbsp;<a href="call.html#PAR3"><span class="identifier">PAR3</span></a><span class="symbol">)</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/-list/index.html"><span class="identifier">List</span></a><span class="symbol">&lt;</span><a href="call.html#RET"><span class="identifier">RET</span></a><span class="symbol">&gt;</span></code><br/>
+<code><span class="keyword">suspend</span> <span class="keyword">fun </span><span class="symbol">&lt;</span><span class="identifier">PAR1</span><span class="symbol">, </span><span class="identifier">PAR2</span><span class="symbol">, </span><span class="identifier">PAR3</span><span class="symbol">, </span><span class="identifier">PAR4</span><span class="symbol">, </span><span class="identifier">RET</span>&nbsp;<span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-any/index.html"><span class="identifier">Any</span></a><span class="symbol">, </span><span class="identifier">T</span><span class="symbol">&gt;</span> <span class="identifier">call</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.remote.KVRemoteAgent$call(kotlin.coroutines.SuspendFunction5((pl.treksoft.kvision.remote.KVRemoteAgent.call.T, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR1, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR2, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR3, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR4, pl.treksoft.kvision.remote.KVRemoteAgent.call.RET)), pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR1, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR2, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR3, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR4)/function">function</span><span class="symbol">:</span>&nbsp;<span class="keyword">suspend </span><a href="call.html#T"><span class="identifier">T</span></a><span class="symbol">.</span><span class="symbol">(</span><a href="call.html#PAR1"><span class="identifier">PAR1</span></a><span class="symbol">,</span>&nbsp;<a href="call.html#PAR2"><span class="identifier">PAR2</span></a><span class="symbol">,</span>&nbsp;<a href="call.html#PAR3"><span class="identifier">PAR3</span></a><span class="symbol">,</span>&nbsp;<a href="call.html#PAR4"><span class="identifier">PAR4</span></a><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<a href="call.html#RET"><span class="identifier">RET</span></a><span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.remote.KVRemoteAgent$call(kotlin.coroutines.SuspendFunction5((pl.treksoft.kvision.remote.KVRemoteAgent.call.T, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR1, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR2, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR3, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR4, pl.treksoft.kvision.remote.KVRemoteAgent.call.RET)), pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR1, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR2, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR3, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR4)/p1">p1</span><span class="symbol">:</span>&nbsp;<a href="call.html#PAR1"><span class="identifier">PAR1</span></a><span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.remote.KVRemoteAgent$call(kotlin.coroutines.SuspendFunction5((pl.treksoft.kvision.remote.KVRemoteAgent.call.T, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR1, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR2, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR3, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR4, pl.treksoft.kvision.remote.KVRemoteAgent.call.RET)), pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR1, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR2, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR3, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR4)/p2">p2</span><span class="symbol">:</span>&nbsp;<a href="call.html#PAR2"><span class="identifier">PAR2</span></a><span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.remote.KVRemoteAgent$call(kotlin.coroutines.SuspendFunction5((pl.treksoft.kvision.remote.KVRemoteAgent.call.T, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR1, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR2, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR3, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR4, pl.treksoft.kvision.remote.KVRemoteAgent.call.RET)), pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR1, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR2, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR3, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR4)/p3">p3</span><span class="symbol">:</span>&nbsp;<a href="call.html#PAR3"><span class="identifier">PAR3</span></a><span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.remote.KVRemoteAgent$call(kotlin.coroutines.SuspendFunction5((pl.treksoft.kvision.remote.KVRemoteAgent.call.T, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR1, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR2, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR3, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR4, pl.treksoft.kvision.remote.KVRemoteAgent.call.RET)), pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR1, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR2, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR3, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR4)/p4">p4</span><span class="symbol">:</span>&nbsp;<a href="call.html#PAR4"><span class="identifier">PAR4</span></a><span class="symbol">)</span><span class="symbol">: </span><a href="call.html#RET"><span class="identifier">RET</span></a></code><br/>
+<code><span class="keyword">suspend</span> <span class="keyword">fun </span><span class="symbol">&lt;</span><span class="identifier">PAR1</span><span class="symbol">, </span><span class="identifier">PAR2</span><span class="symbol">, </span><span class="identifier">PAR3</span><span class="symbol">, </span><span class="identifier">PAR4</span><span class="symbol">, </span><span class="identifier">RET</span>&nbsp;<span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-any/index.html"><span class="identifier">Any</span></a><span class="symbol">, </span><span class="identifier">T</span><span class="symbol">&gt;</span> <span class="identifier">call</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.remote.KVRemoteAgent$call(kotlin.coroutines.SuspendFunction5((pl.treksoft.kvision.remote.KVRemoteAgent.call.T, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR1, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR2, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR3, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR4, kotlin.collections.List((pl.treksoft.kvision.remote.KVRemoteAgent.call.RET)))), pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR1, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR2, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR3, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR4)/function">function</span><span class="symbol">:</span>&nbsp;<span class="keyword">suspend </span><a href="call.html#T"><span class="identifier">T</span></a><span class="symbol">.</span><span class="symbol">(</span><a href="call.html#PAR1"><span class="identifier">PAR1</span></a><span class="symbol">,</span>&nbsp;<a href="call.html#PAR2"><span class="identifier">PAR2</span></a><span class="symbol">,</span>&nbsp;<a href="call.html#PAR3"><span class="identifier">PAR3</span></a><span class="symbol">,</span>&nbsp;<a href="call.html#PAR4"><span class="identifier">PAR4</span></a><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/-list/index.html"><span class="identifier">List</span></a><span class="symbol">&lt;</span><a href="call.html#RET"><span class="identifier">RET</span></a><span class="symbol">&gt;</span><span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.remote.KVRemoteAgent$call(kotlin.coroutines.SuspendFunction5((pl.treksoft.kvision.remote.KVRemoteAgent.call.T, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR1, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR2, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR3, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR4, kotlin.collections.List((pl.treksoft.kvision.remote.KVRemoteAgent.call.RET)))), pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR1, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR2, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR3, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR4)/p1">p1</span><span class="symbol">:</span>&nbsp;<a href="call.html#PAR1"><span class="identifier">PAR1</span></a><span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.remote.KVRemoteAgent$call(kotlin.coroutines.SuspendFunction5((pl.treksoft.kvision.remote.KVRemoteAgent.call.T, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR1, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR2, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR3, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR4, kotlin.collections.List((pl.treksoft.kvision.remote.KVRemoteAgent.call.RET)))), pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR1, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR2, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR3, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR4)/p2">p2</span><span class="symbol">:</span>&nbsp;<a href="call.html#PAR2"><span class="identifier">PAR2</span></a><span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.remote.KVRemoteAgent$call(kotlin.coroutines.SuspendFunction5((pl.treksoft.kvision.remote.KVRemoteAgent.call.T, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR1, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR2, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR3, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR4, kotlin.collections.List((pl.treksoft.kvision.remote.KVRemoteAgent.call.RET)))), pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR1, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR2, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR3, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR4)/p3">p3</span><span class="symbol">:</span>&nbsp;<a href="call.html#PAR3"><span class="identifier">PAR3</span></a><span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.remote.KVRemoteAgent$call(kotlin.coroutines.SuspendFunction5((pl.treksoft.kvision.remote.KVRemoteAgent.call.T, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR1, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR2, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR3, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR4, kotlin.collections.List((pl.treksoft.kvision.remote.KVRemoteAgent.call.RET)))), pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR1, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR2, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR3, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR4)/p4">p4</span><span class="symbol">:</span>&nbsp;<a href="call.html#PAR4"><span class="identifier">PAR4</span></a><span class="symbol">)</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/-list/index.html"><span class="identifier">List</span></a><span class="symbol">&lt;</span><a href="call.html#RET"><span class="identifier">RET</span></a><span class="symbol">&gt;</span></code><br/>
+<code><span class="keyword">suspend</span> <span class="keyword">fun </span><span class="symbol">&lt;</span><span class="identifier">PAR1</span><span class="symbol">, </span><span class="identifier">PAR2</span><span class="symbol">, </span><span class="identifier">PAR3</span><span class="symbol">, </span><span class="identifier">PAR4</span><span class="symbol">, </span><span class="identifier">PAR5</span><span class="symbol">, </span><span class="identifier">RET</span>&nbsp;<span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-any/index.html"><span class="identifier">Any</span></a><span class="symbol">, </span><span class="identifier">T</span><span class="symbol">&gt;</span> <span class="identifier">call</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.remote.KVRemoteAgent$call(kotlin.coroutines.SuspendFunction6((pl.treksoft.kvision.remote.KVRemoteAgent.call.T, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR1, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR2, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR3, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR4, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR5, pl.treksoft.kvision.remote.KVRemoteAgent.call.RET)), pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR1, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR2, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR3, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR4, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR5)/function">function</span><span class="symbol">:</span>&nbsp;<span class="keyword">suspend </span><a href="call.html#T"><span class="identifier">T</span></a><span class="symbol">.</span><span class="symbol">(</span><a href="call.html#PAR1"><span class="identifier">PAR1</span></a><span class="symbol">,</span>&nbsp;<a href="call.html#PAR2"><span class="identifier">PAR2</span></a><span class="symbol">,</span>&nbsp;<a href="call.html#PAR3"><span class="identifier">PAR3</span></a><span class="symbol">,</span>&nbsp;<a href="call.html#PAR4"><span class="identifier">PAR4</span></a><span class="symbol">,</span>&nbsp;<a href="call.html#PAR5"><span class="identifier">PAR5</span></a><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<a href="call.html#RET"><span class="identifier">RET</span></a><span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.remote.KVRemoteAgent$call(kotlin.coroutines.SuspendFunction6((pl.treksoft.kvision.remote.KVRemoteAgent.call.T, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR1, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR2, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR3, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR4, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR5, pl.treksoft.kvision.remote.KVRemoteAgent.call.RET)), pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR1, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR2, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR3, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR4, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR5)/p1">p1</span><span class="symbol">:</span>&nbsp;<a href="call.html#PAR1"><span class="identifier">PAR1</span></a><span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.remote.KVRemoteAgent$call(kotlin.coroutines.SuspendFunction6((pl.treksoft.kvision.remote.KVRemoteAgent.call.T, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR1, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR2, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR3, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR4, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR5, pl.treksoft.kvision.remote.KVRemoteAgent.call.RET)), pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR1, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR2, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR3, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR4, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR5)/p2">p2</span><span class="symbol">:</span>&nbsp;<a href="call.html#PAR2"><span class="identifier">PAR2</span></a><span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.remote.KVRemoteAgent$call(kotlin.coroutines.SuspendFunction6((pl.treksoft.kvision.remote.KVRemoteAgent.call.T, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR1, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR2, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR3, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR4, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR5, pl.treksoft.kvision.remote.KVRemoteAgent.call.RET)), pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR1, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR2, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR3, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR4, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR5)/p3">p3</span><span class="symbol">:</span>&nbsp;<a href="call.html#PAR3"><span class="identifier">PAR3</span></a><span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.remote.KVRemoteAgent$call(kotlin.coroutines.SuspendFunction6((pl.treksoft.kvision.remote.KVRemoteAgent.call.T, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR1, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR2, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR3, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR4, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR5, pl.treksoft.kvision.remote.KVRemoteAgent.call.RET)), pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR1, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR2, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR3, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR4, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR5)/p4">p4</span><span class="symbol">:</span>&nbsp;<a href="call.html#PAR4"><span class="identifier">PAR4</span></a><span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.remote.KVRemoteAgent$call(kotlin.coroutines.SuspendFunction6((pl.treksoft.kvision.remote.KVRemoteAgent.call.T, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR1, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR2, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR3, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR4, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR5, pl.treksoft.kvision.remote.KVRemoteAgent.call.RET)), pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR1, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR2, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR3, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR4, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR5)/p5">p5</span><span class="symbol">:</span>&nbsp;<a href="call.html#PAR5"><span class="identifier">PAR5</span></a><span class="symbol">)</span><span class="symbol">: </span><a href="call.html#RET"><span class="identifier">RET</span></a></code><br/>
+<code><span class="keyword">suspend</span> <span class="keyword">fun </span><span class="symbol">&lt;</span><span class="identifier">PAR1</span><span class="symbol">, </span><span class="identifier">PAR2</span><span class="symbol">, </span><span class="identifier">PAR3</span><span class="symbol">, </span><span class="identifier">PAR4</span><span class="symbol">, </span><span class="identifier">PAR5</span><span class="symbol">, </span><span class="identifier">RET</span>&nbsp;<span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-any/index.html"><span class="identifier">Any</span></a><span class="symbol">, </span><span class="identifier">T</span><span class="symbol">&gt;</span> <span class="identifier">call</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.remote.KVRemoteAgent$call(kotlin.coroutines.SuspendFunction6((pl.treksoft.kvision.remote.KVRemoteAgent.call.T, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR1, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR2, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR3, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR4, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR5, kotlin.collections.List((pl.treksoft.kvision.remote.KVRemoteAgent.call.RET)))), pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR1, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR2, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR3, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR4, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR5)/function">function</span><span class="symbol">:</span>&nbsp;<span class="keyword">suspend </span><a href="call.html#T"><span class="identifier">T</span></a><span class="symbol">.</span><span class="symbol">(</span><a href="call.html#PAR1"><span class="identifier">PAR1</span></a><span class="symbol">,</span>&nbsp;<a href="call.html#PAR2"><span class="identifier">PAR2</span></a><span class="symbol">,</span>&nbsp;<a href="call.html#PAR3"><span class="identifier">PAR3</span></a><span class="symbol">,</span>&nbsp;<a href="call.html#PAR4"><span class="identifier">PAR4</span></a><span class="symbol">,</span>&nbsp;<a href="call.html#PAR5"><span class="identifier">PAR5</span></a><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/-list/index.html"><span class="identifier">List</span></a><span class="symbol">&lt;</span><a href="call.html#RET"><span class="identifier">RET</span></a><span class="symbol">&gt;</span><span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.remote.KVRemoteAgent$call(kotlin.coroutines.SuspendFunction6((pl.treksoft.kvision.remote.KVRemoteAgent.call.T, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR1, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR2, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR3, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR4, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR5, kotlin.collections.List((pl.treksoft.kvision.remote.KVRemoteAgent.call.RET)))), pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR1, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR2, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR3, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR4, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR5)/p1">p1</span><span class="symbol">:</span>&nbsp;<a href="call.html#PAR1"><span class="identifier">PAR1</span></a><span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.remote.KVRemoteAgent$call(kotlin.coroutines.SuspendFunction6((pl.treksoft.kvision.remote.KVRemoteAgent.call.T, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR1, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR2, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR3, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR4, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR5, kotlin.collections.List((pl.treksoft.kvision.remote.KVRemoteAgent.call.RET)))), pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR1, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR2, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR3, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR4, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR5)/p2">p2</span><span class="symbol">:</span>&nbsp;<a href="call.html#PAR2"><span class="identifier">PAR2</span></a><span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.remote.KVRemoteAgent$call(kotlin.coroutines.SuspendFunction6((pl.treksoft.kvision.remote.KVRemoteAgent.call.T, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR1, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR2, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR3, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR4, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR5, kotlin.collections.List((pl.treksoft.kvision.remote.KVRemoteAgent.call.RET)))), pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR1, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR2, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR3, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR4, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR5)/p3">p3</span><span class="symbol">:</span>&nbsp;<a href="call.html#PAR3"><span class="identifier">PAR3</span></a><span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.remote.KVRemoteAgent$call(kotlin.coroutines.SuspendFunction6((pl.treksoft.kvision.remote.KVRemoteAgent.call.T, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR1, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR2, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR3, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR4, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR5, kotlin.collections.List((pl.treksoft.kvision.remote.KVRemoteAgent.call.RET)))), pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR1, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR2, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR3, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR4, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR5)/p4">p4</span><span class="symbol">:</span>&nbsp;<a href="call.html#PAR4"><span class="identifier">PAR4</span></a><span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.remote.KVRemoteAgent$call(kotlin.coroutines.SuspendFunction6((pl.treksoft.kvision.remote.KVRemoteAgent.call.T, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR1, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR2, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR3, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR4, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR5, kotlin.collections.List((pl.treksoft.kvision.remote.KVRemoteAgent.call.RET)))), pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR1, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR2, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR3, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR4, pl.treksoft.kvision.remote.KVRemoteAgent.call.PAR5)/p5">p5</span><span class="symbol">:</span>&nbsp;<a href="call.html#PAR5"><span class="identifier">PAR5</span></a><span class="symbol">)</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/-list/index.html"><span class="identifier">List</span></a><span class="symbol">&lt;</span><a href="call.html#RET"><span class="identifier">RET</span></a><span class="symbol">&gt;</span></code>
+<p>Executes defined call to a remote web service.</p>
+</td>
+</tr>
+<tr>
+<td>
+<p><a href="web-socket.html">webSocket</a></p>
+</td>
+<td>
+<code><span class="keyword">suspend</span> <span class="keyword">fun </span><span class="symbol">&lt;</span><span class="identifier">PAR1</span>&nbsp;<span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-any/index.html"><span class="identifier">Any</span></a><span class="symbol">, </span><span class="identifier">PAR2</span>&nbsp;<span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-any/index.html"><span class="identifier">Any</span></a><span class="symbol">&gt;</span> <span class="identifier">webSocket</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.remote.KVRemoteAgent$webSocket(kotlin.coroutines.SuspendFunction3((pl.treksoft.kvision.remote.KVRemoteAgent.T, ((pl.treksoft.kvision.remote.KVRemoteAgent.webSocket.PAR1)), ((pl.treksoft.kvision.remote.KVRemoteAgent.webSocket.PAR2)), kotlin.Unit)), kotlin.coroutines.SuspendFunction2((((pl.treksoft.kvision.remote.KVRemoteAgent.webSocket.PAR1)), ((pl.treksoft.kvision.remote.KVRemoteAgent.webSocket.PAR2)), kotlin.Unit)))/function">function</span><span class="symbol">:</span>&nbsp;<span class="keyword">suspend </span><a href="index.html#T"><span class="identifier">T</span></a><span class="symbol">.</span><span class="symbol">(</span><span class="identifier">&lt;ERROR CLASS&gt;</span><span class="symbol">&lt;</span><a href="web-socket.html#PAR1"><span class="identifier">PAR1</span></a><span class="symbol">&gt;</span><span class="symbol">,</span>&nbsp;<span class="identifier">&lt;ERROR CLASS&gt;</span><span class="symbol">&lt;</span><a href="web-socket.html#PAR2"><span class="identifier">PAR2</span></a><span class="symbol">&gt;</span><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html"><span class="identifier">Unit</span></a><span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.remote.KVRemoteAgent$webSocket(kotlin.coroutines.SuspendFunction3((pl.treksoft.kvision.remote.KVRemoteAgent.T, ((pl.treksoft.kvision.remote.KVRemoteAgent.webSocket.PAR1)), ((pl.treksoft.kvision.remote.KVRemoteAgent.webSocket.PAR2)), kotlin.Unit)), kotlin.coroutines.SuspendFunction2((((pl.treksoft.kvision.remote.KVRemoteAgent.webSocket.PAR1)), ((pl.treksoft.kvision.remote.KVRemoteAgent.webSocket.PAR2)), kotlin.Unit)))/handler">handler</span><span class="symbol">:</span>&nbsp;<span class="keyword">suspend </span><span class="symbol">(</span><span class="identifier">&lt;ERROR CLASS&gt;</span><span class="symbol">&lt;</span><a href="web-socket.html#PAR1"><span class="identifier">PAR1</span></a><span class="symbol">&gt;</span><span class="symbol">,</span>&nbsp;<span class="identifier">&lt;ERROR CLASS&gt;</span><span class="symbol">&lt;</span><a href="web-socket.html#PAR2"><span class="identifier">PAR2</span></a><span class="symbol">&gt;</span><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html"><span class="identifier">Unit</span></a><span class="symbol">)</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html"><span class="identifier">Unit</span></a></code>
+<p>Executes defined web socket connection</p>
+<code><span class="keyword">suspend</span> <span class="keyword">fun </span><span class="symbol">&lt;</span><span class="identifier">PAR1</span>&nbsp;<span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-any/index.html"><span class="identifier">Any</span></a><span class="symbol">, </span><span class="identifier">PAR2</span>&nbsp;<span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-any/index.html"><span class="identifier">Any</span></a><span class="symbol">&gt;</span> <span class="identifier">webSocket</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.remote.KVRemoteAgent$webSocket(kotlin.coroutines.SuspendFunction3((pl.treksoft.kvision.remote.KVRemoteAgent.T, ((pl.treksoft.kvision.remote.KVRemoteAgent.webSocket.PAR1)), ((kotlin.collections.List((pl.treksoft.kvision.remote.KVRemoteAgent.webSocket.PAR2)))), kotlin.Unit)), kotlin.coroutines.SuspendFunction2((((pl.treksoft.kvision.remote.KVRemoteAgent.webSocket.PAR1)), ((kotlin.collections.List((pl.treksoft.kvision.remote.KVRemoteAgent.webSocket.PAR2)))), kotlin.Unit)))/function">function</span><span class="symbol">:</span>&nbsp;<span class="keyword">suspend </span><a href="index.html#T"><span class="identifier">T</span></a><span class="symbol">.</span><span class="symbol">(</span><span class="identifier">&lt;ERROR CLASS&gt;</span><span class="symbol">&lt;</span><a href="web-socket.html#PAR1"><span class="identifier">PAR1</span></a><span class="symbol">&gt;</span><span class="symbol">,</span>&nbsp;<span class="identifier">&lt;ERROR CLASS&gt;</span><span class="symbol">&lt;</span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/-list/index.html"><span class="identifier">List</span></a><span class="symbol">&lt;</span><a href="web-socket.html#PAR2"><span class="identifier">PAR2</span></a><span class="symbol">&gt;</span><span class="symbol">&gt;</span><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html"><span class="identifier">Unit</span></a><span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.remote.KVRemoteAgent$webSocket(kotlin.coroutines.SuspendFunction3((pl.treksoft.kvision.remote.KVRemoteAgent.T, ((pl.treksoft.kvision.remote.KVRemoteAgent.webSocket.PAR1)), ((kotlin.collections.List((pl.treksoft.kvision.remote.KVRemoteAgent.webSocket.PAR2)))), kotlin.Unit)), kotlin.coroutines.SuspendFunction2((((pl.treksoft.kvision.remote.KVRemoteAgent.webSocket.PAR1)), ((kotlin.collections.List((pl.treksoft.kvision.remote.KVRemoteAgent.webSocket.PAR2)))), kotlin.Unit)))/handler">handler</span><span class="symbol">:</span>&nbsp;<span class="keyword">suspend </span><span class="symbol">(</span><span class="identifier">&lt;ERROR CLASS&gt;</span><span class="symbol">&lt;</span><a href="web-socket.html#PAR1"><span class="identifier">PAR1</span></a><span class="symbol">&gt;</span><span class="symbol">,</span>&nbsp;<span class="identifier">&lt;ERROR CLASS&gt;</span><span class="symbol">&lt;</span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/-list/index.html"><span class="identifier">List</span></a><span class="symbol">&lt;</span><a href="web-socket.html#PAR2"><span class="identifier">PAR2</span></a><span class="symbol">&gt;</span><span class="symbol">&gt;</span><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html"><span class="identifier">Unit</span></a><span class="symbol">)</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html"><span class="identifier">Unit</span></a></code>
+<p>Executes defined web socket connection returning list objects</p>
+</td>
+</tr>
+</tbody>
+</table>
+<h3>Inherited Functions</h3>
+<table>
+<tbody>
+<tr>
+<td>
+<p><a href="../-remote-agent/find-enum-value.html">findEnumValue</a></p>
+</td>
+<td>
+<code><span class="keyword">open</span> <span class="keyword">fun </span><span class="identifier">findEnumValue</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.remote.RemoteAgent$findEnumValue(kotlin.reflect.KClass((kotlin.Any)), kotlin.String)/kClass">kClass</span><span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.reflect/-k-class/index.html"><span class="identifier">KClass</span></a><span class="symbol">&lt;</span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-any/index.html"><span class="identifier">Any</span></a><span class="symbol">&gt;</span><span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.remote.RemoteAgent$findEnumValue(kotlin.reflect.KClass((kotlin.Any)), kotlin.String)/value">value</span><span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">)</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-any/index.html"><span class="identifier">Any</span></a><span class="symbol">?</span></code></td>
+</tr>
+</tbody>
+</table>
+<h3>Extension Functions</h3>
+<table>
+<tbody>
+<tr>
+<td>
+<p><a href="../../pl.treksoft.kvision.utils/kotlin.-any/create-instance.html">createInstance</a></p>
+</td>
+<td>
+<code><span class="keyword">fun </span><span class="symbol">&lt;</span><span class="identifier">T</span><span class="symbol">&gt;</span> <a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-any/index.html"><span class="identifier">Any</span></a><span class="symbol">?</span><span class="symbol">.</span><span class="identifier">createInstance</span><span class="symbol">(</span><span class="keyword">vararg</span> <span class="identifier" id="pl.treksoft.kvision.utils$createInstance(kotlin.Any, kotlin.Array((kotlin.Any)))/args">args</span><span class="symbol">:</span>&nbsp;<span class="keyword">dynamic</span><span class="symbol">)</span><span class="symbol">: </span><a href="../../pl.treksoft.kvision.utils/kotlin.-any/create-instance.html#T"><span class="identifier">T</span></a></code>
+<p>Helper function for creating JavaScript objects from dynamic constructors.</p>
+</td>
+</tr>
+</tbody>
+</table>
+</BODY>
+</HTML>
diff --git a/api1/pl.treksoft.kvision.remote/-k-v-remote-agent/service-manager.html b/api1/pl.treksoft.kvision.remote/-k-v-remote-agent/service-manager.html
new file mode 100644
index 00000000..72b63b25
--- /dev/null
+++ b/api1/pl.treksoft.kvision.remote/-k-v-remote-agent/service-manager.html
@@ -0,0 +1,14 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>KVRemoteAgent.serviceManager - kvision</title>
+<link rel="stylesheet" href="../../../style.css">
+</HEAD>
+<BODY>
+<a href="../../index.html">kvision</a>&nbsp;/&nbsp;<a href="../index.html">pl.treksoft.kvision.remote</a>&nbsp;/&nbsp;<a href="index.html">KVRemoteAgent</a>&nbsp;/&nbsp;<a href="./service-manager.html">serviceManager</a><br/>
+<br/>
+<h1>serviceManager</h1>
+<a name="pl.treksoft.kvision.remote.KVRemoteAgent$serviceManager"></a>
+<code><span class="keyword">val </span><span class="identifier">serviceManager</span><span class="symbol">: </span><a href="../-k-v-service-manager/index.html"><span class="identifier">KVServiceManager</span></a><span class="symbol">&lt;</span><a href="index.html#T"><span class="identifier">T</span></a><span class="symbol">&gt;</span></code>
+</BODY>
+</HTML>
diff --git a/api1/pl.treksoft.kvision.remote/-k-v-remote-agent/web-socket.html b/api1/pl.treksoft.kvision.remote/-k-v-remote-agent/web-socket.html
new file mode 100644
index 00000000..464f3144
--- /dev/null
+++ b/api1/pl.treksoft.kvision.remote/-k-v-remote-agent/web-socket.html
@@ -0,0 +1,18 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>KVRemoteAgent.webSocket - kvision</title>
+<link rel="stylesheet" href="../../../style.css">
+</HEAD>
+<BODY>
+<a href="../../index.html">kvision</a>&nbsp;/&nbsp;<a href="../index.html">pl.treksoft.kvision.remote</a>&nbsp;/&nbsp;<a href="index.html">KVRemoteAgent</a>&nbsp;/&nbsp;<a href="./web-socket.html">webSocket</a><br/>
+<br/>
+<h1>webSocket</h1>
+<a name="pl.treksoft.kvision.remote.KVRemoteAgent$webSocket(kotlin.coroutines.SuspendFunction3((pl.treksoft.kvision.remote.KVRemoteAgent.T, ((pl.treksoft.kvision.remote.KVRemoteAgent.webSocket.PAR1)), ((pl.treksoft.kvision.remote.KVRemoteAgent.webSocket.PAR2)), kotlin.Unit)), kotlin.coroutines.SuspendFunction2((((pl.treksoft.kvision.remote.KVRemoteAgent.webSocket.PAR1)), ((pl.treksoft.kvision.remote.KVRemoteAgent.webSocket.PAR2)), kotlin.Unit)))"></a>
+<code><span class="keyword">suspend</span> <span class="keyword">inline</span> <span class="keyword">fun </span><span class="symbol">&lt;</span><span class="keyword">reified</span>&nbsp;<span class="identifier">PAR1</span>&nbsp;<span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-any/index.html"><span class="identifier">Any</span></a><span class="symbol">, </span><span class="keyword">reified</span>&nbsp;<span class="identifier">PAR2</span>&nbsp;<span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-any/index.html"><span class="identifier">Any</span></a><span class="symbol">&gt;</span> <span class="identifier">webSocket</span><span class="symbol">(</span><span class="keyword">noinline</span> <span class="identifier" id="pl.treksoft.kvision.remote.KVRemoteAgent$webSocket(kotlin.coroutines.SuspendFunction3((pl.treksoft.kvision.remote.KVRemoteAgent.T, ((pl.treksoft.kvision.remote.KVRemoteAgent.webSocket.PAR1)), ((pl.treksoft.kvision.remote.KVRemoteAgent.webSocket.PAR2)), kotlin.Unit)), kotlin.coroutines.SuspendFunction2((((pl.treksoft.kvision.remote.KVRemoteAgent.webSocket.PAR1)), ((pl.treksoft.kvision.remote.KVRemoteAgent.webSocket.PAR2)), kotlin.Unit)))/function">function</span><span class="symbol">:</span>&nbsp;<span class="keyword">suspend </span><a href="index.html#T"><span class="identifier">T</span></a><span class="symbol">.</span><span class="symbol">(</span><span class="identifier">&lt;ERROR CLASS&gt;</span><span class="symbol">&lt;</span><a href="web-socket.html#PAR1"><span class="identifier">PAR1</span></a><span class="symbol">&gt;</span><span class="symbol">,</span>&nbsp;<span class="identifier">&lt;ERROR CLASS&gt;</span><span class="symbol">&lt;</span><a href="web-socket.html#PAR2"><span class="identifier">PAR2</span></a><span class="symbol">&gt;</span><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html"><span class="identifier">Unit</span></a><span class="symbol">, </span><span class="keyword">noinline</span> <span class="identifier" id="pl.treksoft.kvision.remote.KVRemoteAgent$webSocket(kotlin.coroutines.SuspendFunction3((pl.treksoft.kvision.remote.KVRemoteAgent.T, ((pl.treksoft.kvision.remote.KVRemoteAgent.webSocket.PAR1)), ((pl.treksoft.kvision.remote.KVRemoteAgent.webSocket.PAR2)), kotlin.Unit)), kotlin.coroutines.SuspendFunction2((((pl.treksoft.kvision.remote.KVRemoteAgent.webSocket.PAR1)), ((pl.treksoft.kvision.remote.KVRemoteAgent.webSocket.PAR2)), kotlin.Unit)))/handler">handler</span><span class="symbol">:</span>&nbsp;<span class="keyword">suspend </span><span class="symbol">(</span><span class="identifier">&lt;ERROR CLASS&gt;</span><span class="symbol">&lt;</span><a href="web-socket.html#PAR1"><span class="identifier">PAR1</span></a><span class="symbol">&gt;</span><span class="symbol">,</span>&nbsp;<span class="identifier">&lt;ERROR CLASS&gt;</span><span class="symbol">&lt;</span><a href="web-socket.html#PAR2"><span class="identifier">PAR2</span></a><span class="symbol">&gt;</span><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html"><span class="identifier">Unit</span></a><span class="symbol">)</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html"><span class="identifier">Unit</span></a></code>
+<p>Executes defined web socket connection</p>
+<a name="pl.treksoft.kvision.remote.KVRemoteAgent$webSocket(kotlin.coroutines.SuspendFunction3((pl.treksoft.kvision.remote.KVRemoteAgent.T, ((pl.treksoft.kvision.remote.KVRemoteAgent.webSocket.PAR1)), ((kotlin.collections.List((pl.treksoft.kvision.remote.KVRemoteAgent.webSocket.PAR2)))), kotlin.Unit)), kotlin.coroutines.SuspendFunction2((((pl.treksoft.kvision.remote.KVRemoteAgent.webSocket.PAR1)), ((kotlin.collections.List((pl.treksoft.kvision.remote.KVRemoteAgent.webSocket.PAR2)))), kotlin.Unit)))"></a>
+<code><span class="keyword">suspend</span> <span class="keyword">inline</span> <span class="keyword">fun </span><span class="symbol">&lt;</span><span class="keyword">reified</span>&nbsp;<span class="identifier">PAR1</span>&nbsp;<span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-any/index.html"><span class="identifier">Any</span></a><span class="symbol">, </span><span class="keyword">reified</span>&nbsp;<span class="identifier">PAR2</span>&nbsp;<span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-any/index.html"><span class="identifier">Any</span></a><span class="symbol">&gt;</span> <span class="identifier">webSocket</span><span class="symbol">(</span><span class="keyword">noinline</span> <span class="identifier" id="pl.treksoft.kvision.remote.KVRemoteAgent$webSocket(kotlin.coroutines.SuspendFunction3((pl.treksoft.kvision.remote.KVRemoteAgent.T, ((pl.treksoft.kvision.remote.KVRemoteAgent.webSocket.PAR1)), ((kotlin.collections.List((pl.treksoft.kvision.remote.KVRemoteAgent.webSocket.PAR2)))), kotlin.Unit)), kotlin.coroutines.SuspendFunction2((((pl.treksoft.kvision.remote.KVRemoteAgent.webSocket.PAR1)), ((kotlin.collections.List((pl.treksoft.kvision.remote.KVRemoteAgent.webSocket.PAR2)))), kotlin.Unit)))/function">function</span><span class="symbol">:</span>&nbsp;<span class="keyword">suspend </span><a href="index.html#T"><span class="identifier">T</span></a><span class="symbol">.</span><span class="symbol">(</span><span class="identifier">&lt;ERROR CLASS&gt;</span><span class="symbol">&lt;</span><a href="web-socket.html#PAR1"><span class="identifier">PAR1</span></a><span class="symbol">&gt;</span><span class="symbol">,</span>&nbsp;<span class="identifier">&lt;ERROR CLASS&gt;</span><span class="symbol">&lt;</span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/-list/index.html"><span class="identifier">List</span></a><span class="symbol">&lt;</span><a href="web-socket.html#PAR2"><span class="identifier">PAR2</span></a><span class="symbol">&gt;</span><span class="symbol">&gt;</span><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html"><span class="identifier">Unit</span></a><span class="symbol">, </span><span class="keyword">noinline</span> <span class="identifier" id="pl.treksoft.kvision.remote.KVRemoteAgent$webSocket(kotlin.coroutines.SuspendFunction3((pl.treksoft.kvision.remote.KVRemoteAgent.T, ((pl.treksoft.kvision.remote.KVRemoteAgent.webSocket.PAR1)), ((kotlin.collections.List((pl.treksoft.kvision.remote.KVRemoteAgent.webSocket.PAR2)))), kotlin.Unit)), kotlin.coroutines.SuspendFunction2((((pl.treksoft.kvision.remote.KVRemoteAgent.webSocket.PAR1)), ((kotlin.collections.List((pl.treksoft.kvision.remote.KVRemoteAgent.webSocket.PAR2)))), kotlin.Unit)))/handler">handler</span><span class="symbol">:</span>&nbsp;<span class="keyword">suspend </span><span class="symbol">(</span><span class="identifier">&lt;ERROR CLASS&gt;</span><span class="symbol">&lt;</span><a href="web-socket.html#PAR1"><span class="identifier">PAR1</span></a><span class="symbol">&gt;</span><span class="symbol">,</span>&nbsp;<span class="identifier">&lt;ERROR CLASS&gt;</span><span class="symbol">&lt;</span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/-list/index.html"><span class="identifier">List</span></a><span class="symbol">&lt;</span><a href="web-socket.html#PAR2"><span class="identifier">PAR2</span></a><span class="symbol">&gt;</span><span class="symbol">&gt;</span><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html"><span class="identifier">Unit</span></a><span class="symbol">)</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html"><span class="identifier">Unit</span></a></code>
+<p>Executes defined web socket connection returning list objects</p>
+</BODY>
+</HTML>
diff --git a/api1/pl.treksoft.kvision.remote/-k-v-service-manager/-init-.html b/api1/pl.treksoft.kvision.remote/-k-v-service-manager/-init-.html
new file mode 100644
index 00000000..f011779c
--- /dev/null
+++ b/api1/pl.treksoft.kvision.remote/-k-v-service-manager/-init-.html
@@ -0,0 +1,15 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>KVServiceManager.<init> - kvision</title>
+<link rel="stylesheet" href="../../../style.css">
+</HEAD>
+<BODY>
+<a href="../../index.html">kvision</a>&nbsp;/&nbsp;<a href="../index.html">pl.treksoft.kvision.remote</a>&nbsp;/&nbsp;<a href="index.html">KVServiceManager</a>&nbsp;/&nbsp;<a href="./-init-.html">&lt;init&gt;</a><br/>
+<br/>
+<h1>&lt;init&gt;</h1>
+<a name="pl.treksoft.kvision.remote.KVServiceManager$&lt;init&gt;(kotlin.reflect.KClass((pl.treksoft.kvision.remote.KVServiceManager.T)))"></a>
+<code><span class="identifier">KVServiceManager</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.remote.KVServiceManager$<init>(kotlin.reflect.KClass((pl.treksoft.kvision.remote.KVServiceManager.T)))/serviceClass">serviceClass</span><span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.reflect/-k-class/index.html"><span class="identifier">KClass</span></a><span class="symbol">&lt;</span><a href="index.html#T"><span class="identifier">T</span></a><span class="symbol">&gt;</span><span class="symbol">)</span></code>
+<p>Multiplatform service manager.</p>
+</BODY>
+</HTML>
diff --git a/api1/pl.treksoft.kvision.remote/-k-v-service-manager/-l-o-g.html b/api1/pl.treksoft.kvision.remote/-k-v-service-manager/-l-o-g.html
new file mode 100644
index 00000000..aa3cd070
--- /dev/null
+++ b/api1/pl.treksoft.kvision.remote/-k-v-service-manager/-l-o-g.html
@@ -0,0 +1,14 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>KVServiceManager.LOG - kvision</title>
+<link rel="stylesheet" href="../../../style.css">
+</HEAD>
+<BODY>
+<a href="../../index.html">kvision</a>&nbsp;/&nbsp;<a href="../index.html">pl.treksoft.kvision.remote</a>&nbsp;/&nbsp;<a href="index.html">KVServiceManager</a>&nbsp;/&nbsp;<a href="./-l-o-g.html">LOG</a><br/>
+<br/>
+<h1>LOG</h1>
+<a name="pl.treksoft.kvision.remote.KVServiceManager.Companion$LOG"></a>
+<code><span class="keyword">val </span><span class="identifier">LOG</span><span class="symbol">: </span><span class="identifier">&lt;ERROR CLASS&gt;</span></code>
+</BODY>
+</HTML>
diff --git a/api1/pl.treksoft.kvision.remote/-k-v-service-manager/bind.html b/api1/pl.treksoft.kvision.remote/-k-v-service-manager/bind.html
new file mode 100644
index 00000000..e5a82367
--- /dev/null
+++ b/api1/pl.treksoft.kvision.remote/-k-v-service-manager/bind.html
@@ -0,0 +1,52 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>KVServiceManager.bind - kvision</title>
+<link rel="stylesheet" href="../../../style.css">
+</HEAD>
+<BODY>
+<a href="../../index.html">kvision</a>&nbsp;/&nbsp;<a href="../index.html">pl.treksoft.kvision.remote</a>&nbsp;/&nbsp;<a href="index.html">KVServiceManager</a>&nbsp;/&nbsp;<a href="./bind.html">bind</a><br/>
+<br/>
+<h1>bind</h1>
+<a name="pl.treksoft.kvision.remote.KVServiceManager$bind(kotlin.coroutines.SuspendFunction1((pl.treksoft.kvision.remote.KVServiceManager.T, pl.treksoft.kvision.remote.KVServiceManager.bind.RET)), pl.treksoft.kvision.remote.HttpMethod, kotlin.String)"></a>
+<code><span class="keyword">protected</span> <span class="keyword">actual</span> <span class="keyword">inline</span> <span class="keyword">fun </span><span class="symbol">&lt;</span><span class="keyword">reified</span>&nbsp;<span class="identifier">RET</span><span class="symbol">&gt;</span> <span class="identifier">bind</span><span class="symbol">(</span><span class="keyword">noinline</span> <span class="identifier" id="pl.treksoft.kvision.remote.KVServiceManager$bind(kotlin.coroutines.SuspendFunction1((pl.treksoft.kvision.remote.KVServiceManager.T, pl.treksoft.kvision.remote.KVServiceManager.bind.RET)), pl.treksoft.kvision.remote.HttpMethod, kotlin.String)/function">function</span><span class="symbol">:</span>&nbsp;<span class="keyword">suspend </span><a href="index.html#T"><span class="identifier">T</span></a><span class="symbol">.</span><span class="symbol">(</span><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<a href="bind.html#RET"><span class="identifier">RET</span></a><span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.remote.KVServiceManager$bind(kotlin.coroutines.SuspendFunction1((pl.treksoft.kvision.remote.KVServiceManager.T, pl.treksoft.kvision.remote.KVServiceManager.bind.RET)), pl.treksoft.kvision.remote.HttpMethod, kotlin.String)/method">method</span><span class="symbol">:</span>&nbsp;<span class="identifier">HttpMethod</span><span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.remote.KVServiceManager$bind(kotlin.coroutines.SuspendFunction1((pl.treksoft.kvision.remote.KVServiceManager.T, pl.treksoft.kvision.remote.KVServiceManager.bind.RET)), pl.treksoft.kvision.remote.HttpMethod, kotlin.String)/route">route</span><span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">?</span><span class="symbol">)</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html"><span class="identifier">Unit</span></a></code><br/>
+<a name="pl.treksoft.kvision.remote.KVServiceManager$bind(kotlin.coroutines.SuspendFunction2((pl.treksoft.kvision.remote.KVServiceManager.T, pl.treksoft.kvision.remote.KVServiceManager.bind.PAR, pl.treksoft.kvision.remote.KVServiceManager.bind.RET)), pl.treksoft.kvision.remote.HttpMethod, kotlin.String)"></a>
+<code><span class="keyword">protected</span> <span class="keyword">actual</span> <span class="keyword">inline</span> <span class="keyword">fun </span><span class="symbol">&lt;</span><span class="keyword">reified</span>&nbsp;<span class="identifier">PAR</span><span class="symbol">, </span><span class="keyword">reified</span>&nbsp;<span class="identifier">RET</span><span class="symbol">&gt;</span> <span class="identifier">bind</span><span class="symbol">(</span><span class="keyword">noinline</span> <span class="identifier" id="pl.treksoft.kvision.remote.KVServiceManager$bind(kotlin.coroutines.SuspendFunction2((pl.treksoft.kvision.remote.KVServiceManager.T, pl.treksoft.kvision.remote.KVServiceManager.bind.PAR, pl.treksoft.kvision.remote.KVServiceManager.bind.RET)), pl.treksoft.kvision.remote.HttpMethod, kotlin.String)/function">function</span><span class="symbol">:</span>&nbsp;<span class="keyword">suspend </span><a href="index.html#T"><span class="identifier">T</span></a><span class="symbol">.</span><span class="symbol">(</span><a href="bind.html#PAR"><span class="identifier">PAR</span></a><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<a href="bind.html#RET"><span class="identifier">RET</span></a><span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.remote.KVServiceManager$bind(kotlin.coroutines.SuspendFunction2((pl.treksoft.kvision.remote.KVServiceManager.T, pl.treksoft.kvision.remote.KVServiceManager.bind.PAR, pl.treksoft.kvision.remote.KVServiceManager.bind.RET)), pl.treksoft.kvision.remote.HttpMethod, kotlin.String)/method">method</span><span class="symbol">:</span>&nbsp;<span class="identifier">HttpMethod</span><span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.remote.KVServiceManager$bind(kotlin.coroutines.SuspendFunction2((pl.treksoft.kvision.remote.KVServiceManager.T, pl.treksoft.kvision.remote.KVServiceManager.bind.PAR, pl.treksoft.kvision.remote.KVServiceManager.bind.RET)), pl.treksoft.kvision.remote.HttpMethod, kotlin.String)/route">route</span><span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">?</span><span class="symbol">)</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html"><span class="identifier">Unit</span></a></code><br/>
+<a name="pl.treksoft.kvision.remote.KVServiceManager$bind(kotlin.coroutines.SuspendFunction3((pl.treksoft.kvision.remote.KVServiceManager.T, pl.treksoft.kvision.remote.KVServiceManager.bind.PAR1, pl.treksoft.kvision.remote.KVServiceManager.bind.PAR2, pl.treksoft.kvision.remote.KVServiceManager.bind.RET)), pl.treksoft.kvision.remote.HttpMethod, kotlin.String)"></a>
+<code><span class="keyword">protected</span> <span class="keyword">actual</span> <span class="keyword">inline</span> <span class="keyword">fun </span><span class="symbol">&lt;</span><span class="keyword">reified</span>&nbsp;<span class="identifier">PAR1</span><span class="symbol">, </span><span class="keyword">reified</span>&nbsp;<span class="identifier">PAR2</span><span class="symbol">, </span><span class="keyword">reified</span>&nbsp;<span class="identifier">RET</span><span class="symbol">&gt;</span> <span class="identifier">bind</span><span class="symbol">(</span><span class="keyword">noinline</span> <span class="identifier" id="pl.treksoft.kvision.remote.KVServiceManager$bind(kotlin.coroutines.SuspendFunction3((pl.treksoft.kvision.remote.KVServiceManager.T, pl.treksoft.kvision.remote.KVServiceManager.bind.PAR1, pl.treksoft.kvision.remote.KVServiceManager.bind.PAR2, pl.treksoft.kvision.remote.KVServiceManager.bind.RET)), pl.treksoft.kvision.remote.HttpMethod, kotlin.String)/function">function</span><span class="symbol">:</span>&nbsp;<span class="keyword">suspend </span><a href="index.html#T"><span class="identifier">T</span></a><span class="symbol">.</span><span class="symbol">(</span><a href="bind.html#PAR1"><span class="identifier">PAR1</span></a><span class="symbol">,</span>&nbsp;<a href="bind.html#PAR2"><span class="identifier">PAR2</span></a><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<a href="bind.html#RET"><span class="identifier">RET</span></a><span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.remote.KVServiceManager$bind(kotlin.coroutines.SuspendFunction3((pl.treksoft.kvision.remote.KVServiceManager.T, pl.treksoft.kvision.remote.KVServiceManager.bind.PAR1, pl.treksoft.kvision.remote.KVServiceManager.bind.PAR2, pl.treksoft.kvision.remote.KVServiceManager.bind.RET)), pl.treksoft.kvision.remote.HttpMethod, kotlin.String)/method">method</span><span class="symbol">:</span>&nbsp;<span class="identifier">HttpMethod</span><span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.remote.KVServiceManager$bind(kotlin.coroutines.SuspendFunction3((pl.treksoft.kvision.remote.KVServiceManager.T, pl.treksoft.kvision.remote.KVServiceManager.bind.PAR1, pl.treksoft.kvision.remote.KVServiceManager.bind.PAR2, pl.treksoft.kvision.remote.KVServiceManager.bind.RET)), pl.treksoft.kvision.remote.HttpMethod, kotlin.String)/route">route</span><span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">?</span><span class="symbol">)</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html"><span class="identifier">Unit</span></a></code><br/>
+<a name="pl.treksoft.kvision.remote.KVServiceManager$bind(kotlin.coroutines.SuspendFunction4((pl.treksoft.kvision.remote.KVServiceManager.T, pl.treksoft.kvision.remote.KVServiceManager.bind.PAR1, pl.treksoft.kvision.remote.KVServiceManager.bind.PAR2, pl.treksoft.kvision.remote.KVServiceManager.bind.PAR3, pl.treksoft.kvision.remote.KVServiceManager.bind.RET)), pl.treksoft.kvision.remote.HttpMethod, kotlin.String)"></a>
+<code><span class="keyword">protected</span> <span class="keyword">actual</span> <span class="keyword">inline</span> <span class="keyword">fun </span><span class="symbol">&lt;</span><span class="keyword">reified</span>&nbsp;<span class="identifier">PAR1</span><span class="symbol">, </span><span class="keyword">reified</span>&nbsp;<span class="identifier">PAR2</span><span class="symbol">, </span><span class="keyword">reified</span>&nbsp;<span class="identifier">PAR3</span><span class="symbol">, </span><span class="keyword">reified</span>&nbsp;<span class="identifier">RET</span><span class="symbol">&gt;</span> <span class="identifier">bind</span><span class="symbol">(</span><span class="keyword">noinline</span> <span class="identifier" id="pl.treksoft.kvision.remote.KVServiceManager$bind(kotlin.coroutines.SuspendFunction4((pl.treksoft.kvision.remote.KVServiceManager.T, pl.treksoft.kvision.remote.KVServiceManager.bind.PAR1, pl.treksoft.kvision.remote.KVServiceManager.bind.PAR2, pl.treksoft.kvision.remote.KVServiceManager.bind.PAR3, pl.treksoft.kvision.remote.KVServiceManager.bind.RET)), pl.treksoft.kvision.remote.HttpMethod, kotlin.String)/function">function</span><span class="symbol">:</span>&nbsp;<span class="keyword">suspend </span><a href="index.html#T"><span class="identifier">T</span></a><span class="symbol">.</span><span class="symbol">(</span><a href="bind.html#PAR1"><span class="identifier">PAR1</span></a><span class="symbol">,</span>&nbsp;<a href="bind.html#PAR2"><span class="identifier">PAR2</span></a><span class="symbol">,</span>&nbsp;<a href="bind.html#PAR3"><span class="identifier">PAR3</span></a><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<a href="bind.html#RET"><span class="identifier">RET</span></a><span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.remote.KVServiceManager$bind(kotlin.coroutines.SuspendFunction4((pl.treksoft.kvision.remote.KVServiceManager.T, pl.treksoft.kvision.remote.KVServiceManager.bind.PAR1, pl.treksoft.kvision.remote.KVServiceManager.bind.PAR2, pl.treksoft.kvision.remote.KVServiceManager.bind.PAR3, pl.treksoft.kvision.remote.KVServiceManager.bind.RET)), pl.treksoft.kvision.remote.HttpMethod, kotlin.String)/method">method</span><span class="symbol">:</span>&nbsp;<span class="identifier">HttpMethod</span><span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.remote.KVServiceManager$bind(kotlin.coroutines.SuspendFunction4((pl.treksoft.kvision.remote.KVServiceManager.T, pl.treksoft.kvision.remote.KVServiceManager.bind.PAR1, pl.treksoft.kvision.remote.KVServiceManager.bind.PAR2, pl.treksoft.kvision.remote.KVServiceManager.bind.PAR3, pl.treksoft.kvision.remote.KVServiceManager.bind.RET)), pl.treksoft.kvision.remote.HttpMethod, kotlin.String)/route">route</span><span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">?</span><span class="symbol">)</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html"><span class="identifier">Unit</span></a></code><br/>
+<a name="pl.treksoft.kvision.remote.KVServiceManager$bind(kotlin.coroutines.SuspendFunction5((pl.treksoft.kvision.remote.KVServiceManager.T, pl.treksoft.kvision.remote.KVServiceManager.bind.PAR1, pl.treksoft.kvision.remote.KVServiceManager.bind.PAR2, pl.treksoft.kvision.remote.KVServiceManager.bind.PAR3, pl.treksoft.kvision.remote.KVServiceManager.bind.PAR4, pl.treksoft.kvision.remote.KVServiceManager.bind.RET)), pl.treksoft.kvision.remote.HttpMethod, kotlin.String)"></a>
+<code><span class="keyword">protected</span> <span class="keyword">actual</span> <span class="keyword">inline</span> <span class="keyword">fun </span><span class="symbol">&lt;</span><span class="keyword">reified</span>&nbsp;<span class="identifier">PAR1</span><span class="symbol">, </span><span class="keyword">reified</span>&nbsp;<span class="identifier">PAR2</span><span class="symbol">, </span><span class="keyword">reified</span>&nbsp;<span class="identifier">PAR3</span><span class="symbol">, </span><span class="keyword">reified</span>&nbsp;<span class="identifier">PAR4</span><span class="symbol">, </span><span class="keyword">reified</span>&nbsp;<span class="identifier">RET</span><span class="symbol">&gt;</span> <span class="identifier">bind</span><span class="symbol">(</span><span class="keyword">noinline</span> <span class="identifier" id="pl.treksoft.kvision.remote.KVServiceManager$bind(kotlin.coroutines.SuspendFunction5((pl.treksoft.kvision.remote.KVServiceManager.T, pl.treksoft.kvision.remote.KVServiceManager.bind.PAR1, pl.treksoft.kvision.remote.KVServiceManager.bind.PAR2, pl.treksoft.kvision.remote.KVServiceManager.bind.PAR3, pl.treksoft.kvision.remote.KVServiceManager.bind.PAR4, pl.treksoft.kvision.remote.KVServiceManager.bind.RET)), pl.treksoft.kvision.remote.HttpMethod, kotlin.String)/function">function</span><span class="symbol">:</span>&nbsp;<span class="keyword">suspend </span><a href="index.html#T"><span class="identifier">T</span></a><span class="symbol">.</span><span class="symbol">(</span><a href="bind.html#PAR1"><span class="identifier">PAR1</span></a><span class="symbol">,</span>&nbsp;<a href="bind.html#PAR2"><span class="identifier">PAR2</span></a><span class="symbol">,</span>&nbsp;<a href="bind.html#PAR3"><span class="identifier">PAR3</span></a><span class="symbol">,</span>&nbsp;<a href="bind.html#PAR4"><span class="identifier">PAR4</span></a><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<a href="bind.html#RET"><span class="identifier">RET</span></a><span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.remote.KVServiceManager$bind(kotlin.coroutines.SuspendFunction5((pl.treksoft.kvision.remote.KVServiceManager.T, pl.treksoft.kvision.remote.KVServiceManager.bind.PAR1, pl.treksoft.kvision.remote.KVServiceManager.bind.PAR2, pl.treksoft.kvision.remote.KVServiceManager.bind.PAR3, pl.treksoft.kvision.remote.KVServiceManager.bind.PAR4, pl.treksoft.kvision.remote.KVServiceManager.bind.RET)), pl.treksoft.kvision.remote.HttpMethod, kotlin.String)/method">method</span><span class="symbol">:</span>&nbsp;<span class="identifier">HttpMethod</span><span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.remote.KVServiceManager$bind(kotlin.coroutines.SuspendFunction5((pl.treksoft.kvision.remote.KVServiceManager.T, pl.treksoft.kvision.remote.KVServiceManager.bind.PAR1, pl.treksoft.kvision.remote.KVServiceManager.bind.PAR2, pl.treksoft.kvision.remote.KVServiceManager.bind.PAR3, pl.treksoft.kvision.remote.KVServiceManager.bind.PAR4, pl.treksoft.kvision.remote.KVServiceManager.bind.RET)), pl.treksoft.kvision.remote.HttpMethod, kotlin.String)/route">route</span><span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">?</span><span class="symbol">)</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html"><span class="identifier">Unit</span></a></code><br/>
+<a name="pl.treksoft.kvision.remote.KVServiceManager$bind(kotlin.coroutines.SuspendFunction6((pl.treksoft.kvision.remote.KVServiceManager.T, pl.treksoft.kvision.remote.KVServiceManager.bind.PAR1, pl.treksoft.kvision.remote.KVServiceManager.bind.PAR2, pl.treksoft.kvision.remote.KVServiceManager.bind.PAR3, pl.treksoft.kvision.remote.KVServiceManager.bind.PAR4, pl.treksoft.kvision.remote.KVServiceManager.bind.PAR5, pl.treksoft.kvision.remote.KVServiceManager.bind.RET)), pl.treksoft.kvision.remote.HttpMethod, kotlin.String)"></a>
+<code><span class="keyword">protected</span> <span class="keyword">actual</span> <span class="keyword">inline</span> <span class="keyword">fun </span><span class="symbol">&lt;</span><span class="keyword">reified</span>&nbsp;<span class="identifier">PAR1</span><span class="symbol">, </span><span class="keyword">reified</span>&nbsp;<span class="identifier">PAR2</span><span class="symbol">, </span><span class="keyword">reified</span>&nbsp;<span class="identifier">PAR3</span><span class="symbol">, </span><span class="keyword">reified</span>&nbsp;<span class="identifier">PAR4</span><span class="symbol">, </span><span class="keyword">reified</span>&nbsp;<span class="identifier">PAR5</span><span class="symbol">, </span><span class="keyword">reified</span>&nbsp;<span class="identifier">RET</span><span class="symbol">&gt;</span> <span class="identifier">bind</span><span class="symbol">(</span><span class="keyword">noinline</span> <span class="identifier" id="pl.treksoft.kvision.remote.KVServiceManager$bind(kotlin.coroutines.SuspendFunction6((pl.treksoft.kvision.remote.KVServiceManager.T, pl.treksoft.kvision.remote.KVServiceManager.bind.PAR1, pl.treksoft.kvision.remote.KVServiceManager.bind.PAR2, pl.treksoft.kvision.remote.KVServiceManager.bind.PAR3, pl.treksoft.kvision.remote.KVServiceManager.bind.PAR4, pl.treksoft.kvision.remote.KVServiceManager.bind.PAR5, pl.treksoft.kvision.remote.KVServiceManager.bind.RET)), pl.treksoft.kvision.remote.HttpMethod, kotlin.String)/function">function</span><span class="symbol">:</span>&nbsp;<span class="keyword">suspend </span><a href="index.html#T"><span class="identifier">T</span></a><span class="symbol">.</span><span class="symbol">(</span><a href="bind.html#PAR1"><span class="identifier">PAR1</span></a><span class="symbol">,</span>&nbsp;<a href="bind.html#PAR2"><span class="identifier">PAR2</span></a><span class="symbol">,</span>&nbsp;<a href="bind.html#PAR3"><span class="identifier">PAR3</span></a><span class="symbol">,</span>&nbsp;<a href="bind.html#PAR4"><span class="identifier">PAR4</span></a><span class="symbol">,</span>&nbsp;<a href="bind.html#PAR5"><span class="identifier">PAR5</span></a><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<a href="bind.html#RET"><span class="identifier">RET</span></a><span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.remote.KVServiceManager$bind(kotlin.coroutines.SuspendFunction6((pl.treksoft.kvision.remote.KVServiceManager.T, pl.treksoft.kvision.remote.KVServiceManager.bind.PAR1, pl.treksoft.kvision.remote.KVServiceManager.bind.PAR2, pl.treksoft.kvision.remote.KVServiceManager.bind.PAR3, pl.treksoft.kvision.remote.KVServiceManager.bind.PAR4, pl.treksoft.kvision.remote.KVServiceManager.bind.PAR5, pl.treksoft.kvision.remote.KVServiceManager.bind.RET)), pl.treksoft.kvision.remote.HttpMethod, kotlin.String)/method">method</span><span class="symbol">:</span>&nbsp;<span class="identifier">HttpMethod</span><span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.remote.KVServiceManager$bind(kotlin.coroutines.SuspendFunction6((pl.treksoft.kvision.remote.KVServiceManager.T, pl.treksoft.kvision.remote.KVServiceManager.bind.PAR1, pl.treksoft.kvision.remote.KVServiceManager.bind.PAR2, pl.treksoft.kvision.remote.KVServiceManager.bind.PAR3, pl.treksoft.kvision.remote.KVServiceManager.bind.PAR4, pl.treksoft.kvision.remote.KVServiceManager.bind.PAR5, pl.treksoft.kvision.remote.KVServiceManager.bind.RET)), pl.treksoft.kvision.remote.HttpMethod, kotlin.String)/route">route</span><span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">?</span><span class="symbol">)</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html"><span class="identifier">Unit</span></a></code>
+<p>Binds a given route with a function of the receiver.</p>
+<h3>Parameters</h3>
+<p><a name="function"></a>
+<code>function</code> - a function of the receiver</p>
+<p><a name="method"></a>
+<code>method</code> - a HTTP method</p>
+<p><a name="route"></a>
+<code>route</code> - a route</p>
+<a name="pl.treksoft.kvision.remote.KVServiceManager$bind(kotlin.Function3((pl.treksoft.kvision.remote.KVServiceManager.T, kotlin.String, , kotlin.collections.List(()))))"></a>
+<code><span class="keyword">protected</span> <span class="keyword">actual</span> <span class="keyword">fun </span><span class="identifier">bind</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.remote.KVServiceManager$bind(kotlin.Function3((pl.treksoft.kvision.remote.KVServiceManager.T, kotlin.String, , kotlin.collections.List(()))))/function">function</span><span class="symbol">:</span>&nbsp;<a href="index.html#T"><span class="identifier">T</span></a><span class="symbol">.</span><span class="symbol">(</span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">?</span><span class="symbol">,</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">?</span><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/-list/index.html"><span class="identifier">List</span></a><span class="symbol">&lt;</span><span class="identifier">&lt;ERROR CLASS&gt;</span><span class="symbol">&gt;</span><span class="symbol">)</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html"><span class="identifier">Unit</span></a></code>
+<p>Binds a given function of the receiver as a select options source</p>
+<h3>Parameters</h3>
+<p><a name="function"></a>
+<code>function</code> - a function of the receiver</p>
+<a name="pl.treksoft.kvision.remote.KVServiceManager$bind(kotlin.Function5((pl.treksoft.kvision.remote.KVServiceManager.T, kotlin.Int, , kotlin.collections.List(()), kotlin.collections.List(()), ((pl.treksoft.kvision.remote.KVServiceManager.bind.RET)))))"></a>
+<code><span class="keyword">protected</span> <span class="keyword">actual</span> <span class="keyword">inline</span> <span class="keyword">fun </span><span class="symbol">&lt;</span><span class="keyword">reified</span>&nbsp;<span class="identifier">RET</span><span class="symbol">&gt;</span> <span class="identifier">bind</span><span class="symbol">(</span><span class="keyword">noinline</span> <span class="identifier" id="pl.treksoft.kvision.remote.KVServiceManager$bind(kotlin.Function5((pl.treksoft.kvision.remote.KVServiceManager.T, kotlin.Int, , kotlin.collections.List(()), kotlin.collections.List(()), ((pl.treksoft.kvision.remote.KVServiceManager.bind.RET)))))/function">function</span><span class="symbol">:</span>&nbsp;<a href="index.html#T"><span class="identifier">T</span></a><span class="symbol">.</span><span class="symbol">(</span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html"><span class="identifier">Int</span></a><span class="symbol">?</span><span class="symbol">,</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html"><span class="identifier">Int</span></a><span class="symbol">?</span><span class="symbol">,</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/-list/index.html"><span class="identifier">List</span></a><span class="symbol">&lt;</span><span class="identifier">&lt;ERROR CLASS&gt;</span><span class="symbol">&gt;</span><span class="symbol">?</span><span class="symbol">,</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/-list/index.html"><span class="identifier">List</span></a><span class="symbol">&lt;</span><span class="identifier">&lt;ERROR CLASS&gt;</span><span class="symbol">&gt;</span><span class="symbol">?</span><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<span class="identifier">&lt;ERROR CLASS&gt;</span><span class="symbol">&lt;</span><a href="bind.html#RET"><span class="identifier">RET</span></a><span class="symbol">&gt;</span><span class="symbol">)</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html"><span class="identifier">Unit</span></a></code>
+<p>Binds a given function of the receiver as a tabulator component source</p>
+<h3>Parameters</h3>
+<p><a name="function"></a>
+<code>function</code> - a function of the receiver</p>
+<a name="pl.treksoft.kvision.remote.KVServiceManager$bind(kotlin.coroutines.SuspendFunction3((pl.treksoft.kvision.remote.KVServiceManager.T, ((pl.treksoft.kvision.remote.KVServiceManager.bind.PAR1)), ((pl.treksoft.kvision.remote.KVServiceManager.bind.PAR2)), kotlin.Unit)), kotlin.String)"></a>
+<code><span class="keyword">protected</span> <span class="keyword">actual</span> <span class="keyword">inline</span> <span class="keyword">fun </span><span class="symbol">&lt;</span><span class="keyword">reified</span>&nbsp;<span class="identifier">PAR1</span>&nbsp;<span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-any/index.html"><span class="identifier">Any</span></a><span class="symbol">, </span><span class="keyword">reified</span>&nbsp;<span class="identifier">PAR2</span>&nbsp;<span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-any/index.html"><span class="identifier">Any</span></a><span class="symbol">&gt;</span> <span class="identifier">bind</span><span class="symbol">(</span><span class="keyword">noinline</span> <span class="identifier" id="pl.treksoft.kvision.remote.KVServiceManager$bind(kotlin.coroutines.SuspendFunction3((pl.treksoft.kvision.remote.KVServiceManager.T, ((pl.treksoft.kvision.remote.KVServiceManager.bind.PAR1)), ((pl.treksoft.kvision.remote.KVServiceManager.bind.PAR2)), kotlin.Unit)), kotlin.String)/function">function</span><span class="symbol">:</span>&nbsp;<span class="keyword">suspend </span><a href="index.html#T"><span class="identifier">T</span></a><span class="symbol">.</span><span class="symbol">(</span><span class="identifier">&lt;ERROR CLASS&gt;</span><span class="symbol">&lt;</span><a href="bind.html#PAR1"><span class="identifier">PAR1</span></a><span class="symbol">&gt;</span><span class="symbol">,</span>&nbsp;<span class="identifier">&lt;ERROR CLASS&gt;</span><span class="symbol">&lt;</span><a href="bind.html#PAR2"><span class="identifier">PAR2</span></a><span class="symbol">&gt;</span><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html"><span class="identifier">Unit</span></a><span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.remote.KVServiceManager$bind(kotlin.coroutines.SuspendFunction3((pl.treksoft.kvision.remote.KVServiceManager.T, ((pl.treksoft.kvision.remote.KVServiceManager.bind.PAR1)), ((pl.treksoft.kvision.remote.KVServiceManager.bind.PAR2)), kotlin.Unit)), kotlin.String)/route">route</span><span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">?</span><span class="symbol">)</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html"><span class="identifier">Unit</span></a></code>
+<p>Binds a given web socket connetion with a function of the receiver.</p>
+<h3>Parameters</h3>
+<p><a name="function"></a>
+<code>function</code> - a function of the receiver</p>
+<p><a name="route"></a>
+<code>route</code> - a web socket route</p>
+</BODY>
+</HTML>
diff --git a/api1/pl.treksoft.kvision.remote/-k-v-service-manager/calls.html b/api1/pl.treksoft.kvision.remote/-k-v-service-manager/calls.html
new file mode 100644
index 00000000..7ec715d7
--- /dev/null
+++ b/api1/pl.treksoft.kvision.remote/-k-v-service-manager/calls.html
@@ -0,0 +1,14 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>KVServiceManager.calls - kvision</title>
+<link rel="stylesheet" href="../../../style.css">
+</HEAD>
+<BODY>
+<a href="../../index.html">kvision</a>&nbsp;/&nbsp;<a href="../index.html">pl.treksoft.kvision.remote</a>&nbsp;/&nbsp;<a href="index.html">KVServiceManager</a>&nbsp;/&nbsp;<a href="./calls.html">calls</a><br/>
+<br/>
+<h1>calls</h1>
+<a name="pl.treksoft.kvision.remote.KVServiceManager$calls"></a>
+<code><span class="keyword">protected</span> <span class="keyword">val </span><span class="identifier">calls</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/-mutable-map/index.html"><span class="identifier">MutableMap</span></a><span class="symbol">&lt;</span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">,</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-pair/index.html"><span class="identifier">Pair</span></a><span class="symbol">&lt;</span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">,</span>&nbsp;<span class="identifier">HttpMethod</span><span class="symbol">&gt;</span><span class="symbol">&gt;</span></code>
+</BODY>
+</HTML>
diff --git a/api1/pl.treksoft.kvision.remote/-k-v-service-manager/counter.html b/api1/pl.treksoft.kvision.remote/-k-v-service-manager/counter.html
new file mode 100644
index 00000000..54c3d28a
--- /dev/null
+++ b/api1/pl.treksoft.kvision.remote/-k-v-service-manager/counter.html
@@ -0,0 +1,14 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>KVServiceManager.counter - kvision</title>
+<link rel="stylesheet" href="../../../style.css">
+</HEAD>
+<BODY>
+<a href="../../index.html">kvision</a>&nbsp;/&nbsp;<a href="../index.html">pl.treksoft.kvision.remote</a>&nbsp;/&nbsp;<a href="index.html">KVServiceManager</a>&nbsp;/&nbsp;<a href="./counter.html">counter</a><br/>
+<br/>
+<h1>counter</h1>
+<a name="pl.treksoft.kvision.remote.KVServiceManager$counter"></a>
+<code><span class="keyword">var </span><span class="identifier">counter</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html"><span class="identifier">Int</span></a></code>
+</BODY>
+</HTML>
diff --git a/api1/pl.treksoft.kvision.remote/-k-v-service-manager/delete-requests.html b/api1/pl.treksoft.kvision.remote/-k-v-service-manager/delete-requests.html
new file mode 100644
index 00000000..6398ff4a
--- /dev/null
+++ b/api1/pl.treksoft.kvision.remote/-k-v-service-manager/delete-requests.html
@@ -0,0 +1,14 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>KVServiceManager.deleteRequests - kvision</title>
+<link rel="stylesheet" href="../../../style.css">
+</HEAD>
+<BODY>
+<a href="../../index.html">kvision</a>&nbsp;/&nbsp;<a href="../index.html">pl.treksoft.kvision.remote</a>&nbsp;/&nbsp;<a href="index.html">KVServiceManager</a>&nbsp;/&nbsp;<a href="./delete-requests.html">deleteRequests</a><br/>
+<br/>
+<h1>deleteRequests</h1>
+<a name="pl.treksoft.kvision.remote.KVServiceManager$deleteRequests"></a>
+<code><span class="keyword">val </span><span class="identifier">deleteRequests</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/-mutable-map/index.html"><span class="identifier">MutableMap</span></a><span class="symbol">&lt;</span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">,</span>&nbsp;<span class="keyword">suspend </span><span class="identifier">&lt;ERROR CLASS&gt;</span><span class="symbol">&lt;</span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html"><span class="identifier">Unit</span></a><span class="symbol">,</span>&nbsp;<span class="identifier">&lt;ERROR CLASS&gt;</span><span class="symbol">&gt;</span><span class="symbol">.</span><span class="symbol">(</span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html"><span class="identifier">Unit</span></a><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html"><span class="identifier">Unit</span></a><span class="symbol">&gt;</span></code>
+</BODY>
+</HTML>
diff --git a/api1/pl.treksoft.kvision.remote/-k-v-service-manager/get-calls.html b/api1/pl.treksoft.kvision.remote/-k-v-service-manager/get-calls.html
new file mode 100644
index 00000000..eb5887ff
--- /dev/null
+++ b/api1/pl.treksoft.kvision.remote/-k-v-service-manager/get-calls.html
@@ -0,0 +1,15 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>KVServiceManager.getCalls - kvision</title>
+<link rel="stylesheet" href="../../../style.css">
+</HEAD>
+<BODY>
+<a href="../../index.html">kvision</a>&nbsp;/&nbsp;<a href="../index.html">pl.treksoft.kvision.remote</a>&nbsp;/&nbsp;<a href="index.html">KVServiceManager</a>&nbsp;/&nbsp;<a href="./get-calls.html">getCalls</a><br/>
+<br/>
+<h1>getCalls</h1>
+<a name="pl.treksoft.kvision.remote.KVServiceManager$getCalls()"></a>
+<code><span class="keyword">fun </span><span class="identifier">getCalls</span><span class="symbol">(</span><span class="symbol">)</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/-map/index.html"><span class="identifier">Map</span></a><span class="symbol">&lt;</span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">,</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-pair/index.html"><span class="identifier">Pair</span></a><span class="symbol">&lt;</span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">,</span>&nbsp;<span class="identifier">HttpMethod</span><span class="symbol">&gt;</span><span class="symbol">&gt;</span></code>
+<p>Returns the map of defined paths.</p>
+</BODY>
+</HTML>
diff --git a/api1/pl.treksoft.kvision.remote/-k-v-service-manager/get-requests.html b/api1/pl.treksoft.kvision.remote/-k-v-service-manager/get-requests.html
new file mode 100644
index 00000000..714b7d36
--- /dev/null
+++ b/api1/pl.treksoft.kvision.remote/-k-v-service-manager/get-requests.html
@@ -0,0 +1,14 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>KVServiceManager.getRequests - kvision</title>
+<link rel="stylesheet" href="../../../style.css">
+</HEAD>
+<BODY>
+<a href="../../index.html">kvision</a>&nbsp;/&nbsp;<a href="../index.html">pl.treksoft.kvision.remote</a>&nbsp;/&nbsp;<a href="index.html">KVServiceManager</a>&nbsp;/&nbsp;<a href="./get-requests.html">getRequests</a><br/>
+<br/>
+<h1>getRequests</h1>
+<a name="pl.treksoft.kvision.remote.KVServiceManager$getRequests"></a>
+<code><span class="keyword">val </span><span class="identifier">getRequests</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/-mutable-map/index.html"><span class="identifier">MutableMap</span></a><span class="symbol">&lt;</span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">,</span>&nbsp;<span class="keyword">suspend </span><span class="identifier">&lt;ERROR CLASS&gt;</span><span class="symbol">&lt;</span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html"><span class="identifier">Unit</span></a><span class="symbol">,</span>&nbsp;<span class="identifier">&lt;ERROR CLASS&gt;</span><span class="symbol">&gt;</span><span class="symbol">.</span><span class="symbol">(</span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html"><span class="identifier">Unit</span></a><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html"><span class="identifier">Unit</span></a><span class="symbol">&gt;</span></code>
+</BODY>
+</HTML>
diff --git a/api1/pl.treksoft.kvision.remote/-k-v-service-manager/index.html b/api1/pl.treksoft.kvision.remote/-k-v-service-manager/index.html
new file mode 100644
index 00000000..dbbd8c09
--- /dev/null
+++ b/api1/pl.treksoft.kvision.remote/-k-v-service-manager/index.html
@@ -0,0 +1,177 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>KVServiceManager - kvision</title>
+<link rel="stylesheet" href="../../../style.css">
+</HEAD>
+<BODY>
+<a href="../../index.html">kvision</a>&nbsp;/&nbsp;<a href="../index.html">pl.treksoft.kvision.remote</a>&nbsp;/&nbsp;<a href="./index.html">KVServiceManager</a><br/>
+<br/>
+<h1>KVServiceManager</h1>
+<code><span class="keyword">open</span> <span class="keyword">actual</span> <span class="keyword">class </span><span class="identifier">KVServiceManager</span><span class="symbol">&lt;</span><span class="identifier">T</span>&nbsp;<span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-any/index.html"><span class="identifier">Any</span></a><span class="symbol">&gt;</span></code>
+<p>Multiplatform service manager.</p>
+<h3>Constructors</h3>
+<table>
+<tbody>
+<tr>
+<td>
+<p><a href="-init-.html">&lt;init&gt;</a></p>
+</td>
+<td>
+<code><span class="identifier">KVServiceManager</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.remote.KVServiceManager$<init>(kotlin.reflect.KClass((pl.treksoft.kvision.remote.KVServiceManager.T)))/serviceClass">serviceClass</span><span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.reflect/-k-class/index.html"><span class="identifier">KClass</span></a><span class="symbol">&lt;</span><a href="index.html#T"><span class="identifier">T</span></a><span class="symbol">&gt;</span><span class="symbol">)</span></code>
+<p>Multiplatform service manager.</p>
+</td>
+</tr>
+</tbody>
+</table>
+<h3>Properties</h3>
+<table>
+<tbody>
+<tr>
+<td>
+<p><a href="calls.html">calls</a></p>
+</td>
+<td>
+<code><span class="keyword">val </span><span class="identifier">calls</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/-mutable-map/index.html"><span class="identifier">MutableMap</span></a><span class="symbol">&lt;</span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">,</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-pair/index.html"><span class="identifier">Pair</span></a><span class="symbol">&lt;</span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">,</span>&nbsp;<span class="identifier">HttpMethod</span><span class="symbol">&gt;</span><span class="symbol">&gt;</span></code></td>
+</tr>
+<tr>
+<td>
+<p><a href="counter.html">counter</a></p>
+</td>
+<td>
+<code><span class="keyword">var </span><span class="identifier">counter</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html"><span class="identifier">Int</span></a></code></td>
+</tr>
+<tr>
+<td>
+<p><a href="delete-requests.html">deleteRequests</a></p>
+</td>
+<td>
+<code><span class="keyword">val </span><span class="identifier">deleteRequests</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/-mutable-map/index.html"><span class="identifier">MutableMap</span></a><span class="symbol">&lt;</span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">,</span>&nbsp;<span class="keyword">suspend </span><span class="identifier">&lt;ERROR CLASS&gt;</span><span class="symbol">&lt;</span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html"><span class="identifier">Unit</span></a><span class="symbol">,</span>&nbsp;<span class="identifier">&lt;ERROR CLASS&gt;</span><span class="symbol">&gt;</span><span class="symbol">.</span><span class="symbol">(</span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html"><span class="identifier">Unit</span></a><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html"><span class="identifier">Unit</span></a><span class="symbol">&gt;</span></code></td>
+</tr>
+<tr>
+<td>
+<p><a href="get-requests.html">getRequests</a></p>
+</td>
+<td>
+<code><span class="keyword">val </span><span class="identifier">getRequests</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/-mutable-map/index.html"><span class="identifier">MutableMap</span></a><span class="symbol">&lt;</span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">,</span>&nbsp;<span class="keyword">suspend </span><span class="identifier">&lt;ERROR CLASS&gt;</span><span class="symbol">&lt;</span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html"><span class="identifier">Unit</span></a><span class="symbol">,</span>&nbsp;<span class="identifier">&lt;ERROR CLASS&gt;</span><span class="symbol">&gt;</span><span class="symbol">.</span><span class="symbol">(</span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html"><span class="identifier">Unit</span></a><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html"><span class="identifier">Unit</span></a><span class="symbol">&gt;</span></code></td>
+</tr>
+<tr>
+<td>
+<p><a href="mapper.html">mapper</a></p>
+</td>
+<td>
+<code><span class="keyword">val </span><span class="identifier">mapper</span><span class="symbol">: </span><span class="identifier">&lt;ERROR CLASS&gt;</span></code></td>
+</tr>
+<tr>
+<td>
+<p><a href="options-requests.html">optionsRequests</a></p>
+</td>
+<td>
+<code><span class="keyword">val </span><span class="identifier">optionsRequests</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/-mutable-map/index.html"><span class="identifier">MutableMap</span></a><span class="symbol">&lt;</span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">,</span>&nbsp;<span class="keyword">suspend </span><span class="identifier">&lt;ERROR CLASS&gt;</span><span class="symbol">&lt;</span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html"><span class="identifier">Unit</span></a><span class="symbol">,</span>&nbsp;<span class="identifier">&lt;ERROR CLASS&gt;</span><span class="symbol">&gt;</span><span class="symbol">.</span><span class="symbol">(</span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html"><span class="identifier">Unit</span></a><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html"><span class="identifier">Unit</span></a><span class="symbol">&gt;</span></code></td>
+</tr>
+<tr>
+<td>
+<p><a href="post-requests.html">postRequests</a></p>
+</td>
+<td>
+<code><span class="keyword">val </span><span class="identifier">postRequests</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/-mutable-map/index.html"><span class="identifier">MutableMap</span></a><span class="symbol">&lt;</span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">,</span>&nbsp;<span class="keyword">suspend </span><span class="identifier">&lt;ERROR CLASS&gt;</span><span class="symbol">&lt;</span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html"><span class="identifier">Unit</span></a><span class="symbol">,</span>&nbsp;<span class="identifier">&lt;ERROR CLASS&gt;</span><span class="symbol">&gt;</span><span class="symbol">.</span><span class="symbol">(</span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html"><span class="identifier">Unit</span></a><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html"><span class="identifier">Unit</span></a><span class="symbol">&gt;</span></code></td>
+</tr>
+<tr>
+<td>
+<p><a href="put-requests.html">putRequests</a></p>
+</td>
+<td>
+<code><span class="keyword">val </span><span class="identifier">putRequests</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/-mutable-map/index.html"><span class="identifier">MutableMap</span></a><span class="symbol">&lt;</span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">,</span>&nbsp;<span class="keyword">suspend </span><span class="identifier">&lt;ERROR CLASS&gt;</span><span class="symbol">&lt;</span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html"><span class="identifier">Unit</span></a><span class="symbol">,</span>&nbsp;<span class="identifier">&lt;ERROR CLASS&gt;</span><span class="symbol">&gt;</span><span class="symbol">.</span><span class="symbol">(</span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html"><span class="identifier">Unit</span></a><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html"><span class="identifier">Unit</span></a><span class="symbol">&gt;</span></code></td>
+</tr>
+<tr>
+<td>
+<p><a href="routes.html">routes</a></p>
+</td>
+<td>
+<code><span class="keyword">val </span><span class="identifier">routes</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/-mutable-list/index.html"><span class="identifier">MutableList</span></a><span class="symbol">&lt;</span><span class="identifier">&lt;ERROR CLASS&gt;</span><span class="symbol">.</span><span class="symbol">(</span><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html"><span class="identifier">Unit</span></a><span class="symbol">&gt;</span></code></td>
+</tr>
+<tr>
+<td>
+<p><a href="service-class.html">serviceClass</a></p>
+</td>
+<td>
+<code><span class="keyword">val </span><span class="identifier">serviceClass</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.reflect/-k-class/index.html"><span class="identifier">KClass</span></a><span class="symbol">&lt;</span><a href="index.html#T"><span class="identifier">T</span></a><span class="symbol">&gt;</span></code></td>
+</tr>
+<tr>
+<td>
+<p><a href="web-socket-requests.html">webSocketRequests</a></p>
+</td>
+<td>
+<code><span class="keyword">val </span><span class="identifier">webSocketRequests</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/-mutable-map/index.html"><span class="identifier">MutableMap</span></a><span class="symbol">&lt;</span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">,</span>&nbsp;<span class="keyword">suspend </span><span class="identifier">&lt;ERROR CLASS&gt;</span><span class="symbol">.</span><span class="symbol">(</span><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html"><span class="identifier">Unit</span></a><span class="symbol">&gt;</span></code></td>
+</tr>
+<tr>
+<td>
+<p><a href="web-sockets-requests.html">webSocketsRequests</a></p>
+</td>
+<td>
+<code><span class="keyword">val </span><span class="identifier">webSocketsRequests</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/-mutable-map/index.html"><span class="identifier">MutableMap</span></a><span class="symbol">&lt;</span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">,</span>&nbsp;<span class="keyword">suspend </span><span class="symbol">(</span><span class="identifier">&lt;ERROR CLASS&gt;</span><span class="symbol">,</span>&nbsp;<span class="identifier">&lt;ERROR CLASS&gt;</span><span class="symbol">,</span>&nbsp;<span class="identifier">&lt;ERROR CLASS&gt;</span><span class="symbol">&lt;</span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">&gt;</span><span class="symbol">,</span>&nbsp;<span class="identifier">&lt;ERROR CLASS&gt;</span><span class="symbol">&lt;</span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">&gt;</span><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html"><span class="identifier">Unit</span></a><span class="symbol">&gt;</span></code></td>
+</tr>
+</tbody>
+</table>
+<h3>Functions</h3>
+<table>
+<tbody>
+<tr>
+<td>
+<p><a href="bind.html">bind</a></p>
+</td>
+<td>
+<code><span class="keyword">actual</span> <span class="keyword">fun </span><span class="symbol">&lt;</span><span class="identifier">RET</span><span class="symbol">&gt;</span> <span class="identifier">bind</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.remote.KVServiceManager$bind(kotlin.coroutines.SuspendFunction1((pl.treksoft.kvision.remote.KVServiceManager.T, pl.treksoft.kvision.remote.KVServiceManager.bind.RET)), pl.treksoft.kvision.remote.HttpMethod, kotlin.String)/function">function</span><span class="symbol">:</span>&nbsp;<span class="keyword">suspend </span><a href="index.html#T"><span class="identifier">T</span></a><span class="symbol">.</span><span class="symbol">(</span><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<a href="bind.html#RET"><span class="identifier">RET</span></a><span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.remote.KVServiceManager$bind(kotlin.coroutines.SuspendFunction1((pl.treksoft.kvision.remote.KVServiceManager.T, pl.treksoft.kvision.remote.KVServiceManager.bind.RET)), pl.treksoft.kvision.remote.HttpMethod, kotlin.String)/method">method</span><span class="symbol">:</span>&nbsp;<span class="identifier">HttpMethod</span><span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.remote.KVServiceManager$bind(kotlin.coroutines.SuspendFunction1((pl.treksoft.kvision.remote.KVServiceManager.T, pl.treksoft.kvision.remote.KVServiceManager.bind.RET)), pl.treksoft.kvision.remote.HttpMethod, kotlin.String)/route">route</span><span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">?</span><span class="symbol">)</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html"><span class="identifier">Unit</span></a></code><br/>
+<code><span class="keyword">actual</span> <span class="keyword">fun </span><span class="symbol">&lt;</span><span class="identifier">PAR</span><span class="symbol">, </span><span class="identifier">RET</span><span class="symbol">&gt;</span> <span class="identifier">bind</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.remote.KVServiceManager$bind(kotlin.coroutines.SuspendFunction2((pl.treksoft.kvision.remote.KVServiceManager.T, pl.treksoft.kvision.remote.KVServiceManager.bind.PAR, pl.treksoft.kvision.remote.KVServiceManager.bind.RET)), pl.treksoft.kvision.remote.HttpMethod, kotlin.String)/function">function</span><span class="symbol">:</span>&nbsp;<span class="keyword">suspend </span><a href="index.html#T"><span class="identifier">T</span></a><span class="symbol">.</span><span class="symbol">(</span><a href="bind.html#PAR"><span class="identifier">PAR</span></a><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<a href="bind.html#RET"><span class="identifier">RET</span></a><span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.remote.KVServiceManager$bind(kotlin.coroutines.SuspendFunction2((pl.treksoft.kvision.remote.KVServiceManager.T, pl.treksoft.kvision.remote.KVServiceManager.bind.PAR, pl.treksoft.kvision.remote.KVServiceManager.bind.RET)), pl.treksoft.kvision.remote.HttpMethod, kotlin.String)/method">method</span><span class="symbol">:</span>&nbsp;<span class="identifier">HttpMethod</span><span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.remote.KVServiceManager$bind(kotlin.coroutines.SuspendFunction2((pl.treksoft.kvision.remote.KVServiceManager.T, pl.treksoft.kvision.remote.KVServiceManager.bind.PAR, pl.treksoft.kvision.remote.KVServiceManager.bind.RET)), pl.treksoft.kvision.remote.HttpMethod, kotlin.String)/route">route</span><span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">?</span><span class="symbol">)</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html"><span class="identifier">Unit</span></a></code><br/>
+<code><span class="keyword">actual</span> <span class="keyword">fun </span><span class="symbol">&lt;</span><span class="identifier">PAR1</span><span class="symbol">, </span><span class="identifier">PAR2</span><span class="symbol">, </span><span class="identifier">RET</span><span class="symbol">&gt;</span> <span class="identifier">bind</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.remote.KVServiceManager$bind(kotlin.coroutines.SuspendFunction3((pl.treksoft.kvision.remote.KVServiceManager.T, pl.treksoft.kvision.remote.KVServiceManager.bind.PAR1, pl.treksoft.kvision.remote.KVServiceManager.bind.PAR2, pl.treksoft.kvision.remote.KVServiceManager.bind.RET)), pl.treksoft.kvision.remote.HttpMethod, kotlin.String)/function">function</span><span class="symbol">:</span>&nbsp;<span class="keyword">suspend </span><a href="index.html#T"><span class="identifier">T</span></a><span class="symbol">.</span><span class="symbol">(</span><a href="bind.html#PAR1"><span class="identifier">PAR1</span></a><span class="symbol">,</span>&nbsp;<a href="bind.html#PAR2"><span class="identifier">PAR2</span></a><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<a href="bind.html#RET"><span class="identifier">RET</span></a><span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.remote.KVServiceManager$bind(kotlin.coroutines.SuspendFunction3((pl.treksoft.kvision.remote.KVServiceManager.T, pl.treksoft.kvision.remote.KVServiceManager.bind.PAR1, pl.treksoft.kvision.remote.KVServiceManager.bind.PAR2, pl.treksoft.kvision.remote.KVServiceManager.bind.RET)), pl.treksoft.kvision.remote.HttpMethod, kotlin.String)/method">method</span><span class="symbol">:</span>&nbsp;<span class="identifier">HttpMethod</span><span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.remote.KVServiceManager$bind(kotlin.coroutines.SuspendFunction3((pl.treksoft.kvision.remote.KVServiceManager.T, pl.treksoft.kvision.remote.KVServiceManager.bind.PAR1, pl.treksoft.kvision.remote.KVServiceManager.bind.PAR2, pl.treksoft.kvision.remote.KVServiceManager.bind.RET)), pl.treksoft.kvision.remote.HttpMethod, kotlin.String)/route">route</span><span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">?</span><span class="symbol">)</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html"><span class="identifier">Unit</span></a></code><br/>
+<code><span class="keyword">actual</span> <span class="keyword">fun </span><span class="symbol">&lt;</span><span class="identifier">PAR1</span><span class="symbol">, </span><span class="identifier">PAR2</span><span class="symbol">, </span><span class="identifier">PAR3</span><span class="symbol">, </span><span class="identifier">RET</span><span class="symbol">&gt;</span> <span class="identifier">bind</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.remote.KVServiceManager$bind(kotlin.coroutines.SuspendFunction4((pl.treksoft.kvision.remote.KVServiceManager.T, pl.treksoft.kvision.remote.KVServiceManager.bind.PAR1, pl.treksoft.kvision.remote.KVServiceManager.bind.PAR2, pl.treksoft.kvision.remote.KVServiceManager.bind.PAR3, pl.treksoft.kvision.remote.KVServiceManager.bind.RET)), pl.treksoft.kvision.remote.HttpMethod, kotlin.String)/function">function</span><span class="symbol">:</span>&nbsp;<span class="keyword">suspend </span><a href="index.html#T"><span class="identifier">T</span></a><span class="symbol">.</span><span class="symbol">(</span><a href="bind.html#PAR1"><span class="identifier">PAR1</span></a><span class="symbol">,</span>&nbsp;<a href="bind.html#PAR2"><span class="identifier">PAR2</span></a><span class="symbol">,</span>&nbsp;<a href="bind.html#PAR3"><span class="identifier">PAR3</span></a><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<a href="bind.html#RET"><span class="identifier">RET</span></a><span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.remote.KVServiceManager$bind(kotlin.coroutines.SuspendFunction4((pl.treksoft.kvision.remote.KVServiceManager.T, pl.treksoft.kvision.remote.KVServiceManager.bind.PAR1, pl.treksoft.kvision.remote.KVServiceManager.bind.PAR2, pl.treksoft.kvision.remote.KVServiceManager.bind.PAR3, pl.treksoft.kvision.remote.KVServiceManager.bind.RET)), pl.treksoft.kvision.remote.HttpMethod, kotlin.String)/method">method</span><span class="symbol">:</span>&nbsp;<span class="identifier">HttpMethod</span><span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.remote.KVServiceManager$bind(kotlin.coroutines.SuspendFunction4((pl.treksoft.kvision.remote.KVServiceManager.T, pl.treksoft.kvision.remote.KVServiceManager.bind.PAR1, pl.treksoft.kvision.remote.KVServiceManager.bind.PAR2, pl.treksoft.kvision.remote.KVServiceManager.bind.PAR3, pl.treksoft.kvision.remote.KVServiceManager.bind.RET)), pl.treksoft.kvision.remote.HttpMethod, kotlin.String)/route">route</span><span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">?</span><span class="symbol">)</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html"><span class="identifier">Unit</span></a></code><br/>
+<code><span class="keyword">actual</span> <span class="keyword">fun </span><span class="symbol">&lt;</span><span class="identifier">PAR1</span><span class="symbol">, </span><span class="identifier">PAR2</span><span class="symbol">, </span><span class="identifier">PAR3</span><span class="symbol">, </span><span class="identifier">PAR4</span><span class="symbol">, </span><span class="identifier">RET</span><span class="symbol">&gt;</span> <span class="identifier">bind</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.remote.KVServiceManager$bind(kotlin.coroutines.SuspendFunction5((pl.treksoft.kvision.remote.KVServiceManager.T, pl.treksoft.kvision.remote.KVServiceManager.bind.PAR1, pl.treksoft.kvision.remote.KVServiceManager.bind.PAR2, pl.treksoft.kvision.remote.KVServiceManager.bind.PAR3, pl.treksoft.kvision.remote.KVServiceManager.bind.PAR4, pl.treksoft.kvision.remote.KVServiceManager.bind.RET)), pl.treksoft.kvision.remote.HttpMethod, kotlin.String)/function">function</span><span class="symbol">:</span>&nbsp;<span class="keyword">suspend </span><a href="index.html#T"><span class="identifier">T</span></a><span class="symbol">.</span><span class="symbol">(</span><a href="bind.html#PAR1"><span class="identifier">PAR1</span></a><span class="symbol">,</span>&nbsp;<a href="bind.html#PAR2"><span class="identifier">PAR2</span></a><span class="symbol">,</span>&nbsp;<a href="bind.html#PAR3"><span class="identifier">PAR3</span></a><span class="symbol">,</span>&nbsp;<a href="bind.html#PAR4"><span class="identifier">PAR4</span></a><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<a href="bind.html#RET"><span class="identifier">RET</span></a><span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.remote.KVServiceManager$bind(kotlin.coroutines.SuspendFunction5((pl.treksoft.kvision.remote.KVServiceManager.T, pl.treksoft.kvision.remote.KVServiceManager.bind.PAR1, pl.treksoft.kvision.remote.KVServiceManager.bind.PAR2, pl.treksoft.kvision.remote.KVServiceManager.bind.PAR3, pl.treksoft.kvision.remote.KVServiceManager.bind.PAR4, pl.treksoft.kvision.remote.KVServiceManager.bind.RET)), pl.treksoft.kvision.remote.HttpMethod, kotlin.String)/method">method</span><span class="symbol">:</span>&nbsp;<span class="identifier">HttpMethod</span><span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.remote.KVServiceManager$bind(kotlin.coroutines.SuspendFunction5((pl.treksoft.kvision.remote.KVServiceManager.T, pl.treksoft.kvision.remote.KVServiceManager.bind.PAR1, pl.treksoft.kvision.remote.KVServiceManager.bind.PAR2, pl.treksoft.kvision.remote.KVServiceManager.bind.PAR3, pl.treksoft.kvision.remote.KVServiceManager.bind.PAR4, pl.treksoft.kvision.remote.KVServiceManager.bind.RET)), pl.treksoft.kvision.remote.HttpMethod, kotlin.String)/route">route</span><span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">?</span><span class="symbol">)</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html"><span class="identifier">Unit</span></a></code><br/>
+<code><span class="keyword">actual</span> <span class="keyword">fun </span><span class="symbol">&lt;</span><span class="identifier">PAR1</span><span class="symbol">, </span><span class="identifier">PAR2</span><span class="symbol">, </span><span class="identifier">PAR3</span><span class="symbol">, </span><span class="identifier">PAR4</span><span class="symbol">, </span><span class="identifier">PAR5</span><span class="symbol">, </span><span class="identifier">RET</span><span class="symbol">&gt;</span> <span class="identifier">bind</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.remote.KVServiceManager$bind(kotlin.coroutines.SuspendFunction6((pl.treksoft.kvision.remote.KVServiceManager.T, pl.treksoft.kvision.remote.KVServiceManager.bind.PAR1, pl.treksoft.kvision.remote.KVServiceManager.bind.PAR2, pl.treksoft.kvision.remote.KVServiceManager.bind.PAR3, pl.treksoft.kvision.remote.KVServiceManager.bind.PAR4, pl.treksoft.kvision.remote.KVServiceManager.bind.PAR5, pl.treksoft.kvision.remote.KVServiceManager.bind.RET)), pl.treksoft.kvision.remote.HttpMethod, kotlin.String)/function">function</span><span class="symbol">:</span>&nbsp;<span class="keyword">suspend </span><a href="index.html#T"><span class="identifier">T</span></a><span class="symbol">.</span><span class="symbol">(</span><a href="bind.html#PAR1"><span class="identifier">PAR1</span></a><span class="symbol">,</span>&nbsp;<a href="bind.html#PAR2"><span class="identifier">PAR2</span></a><span class="symbol">,</span>&nbsp;<a href="bind.html#PAR3"><span class="identifier">PAR3</span></a><span class="symbol">,</span>&nbsp;<a href="bind.html#PAR4"><span class="identifier">PAR4</span></a><span class="symbol">,</span>&nbsp;<a href="bind.html#PAR5"><span class="identifier">PAR5</span></a><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<a href="bind.html#RET"><span class="identifier">RET</span></a><span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.remote.KVServiceManager$bind(kotlin.coroutines.SuspendFunction6((pl.treksoft.kvision.remote.KVServiceManager.T, pl.treksoft.kvision.remote.KVServiceManager.bind.PAR1, pl.treksoft.kvision.remote.KVServiceManager.bind.PAR2, pl.treksoft.kvision.remote.KVServiceManager.bind.PAR3, pl.treksoft.kvision.remote.KVServiceManager.bind.PAR4, pl.treksoft.kvision.remote.KVServiceManager.bind.PAR5, pl.treksoft.kvision.remote.KVServiceManager.bind.RET)), pl.treksoft.kvision.remote.HttpMethod, kotlin.String)/method">method</span><span class="symbol">:</span>&nbsp;<span class="identifier">HttpMethod</span><span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.remote.KVServiceManager$bind(kotlin.coroutines.SuspendFunction6((pl.treksoft.kvision.remote.KVServiceManager.T, pl.treksoft.kvision.remote.KVServiceManager.bind.PAR1, pl.treksoft.kvision.remote.KVServiceManager.bind.PAR2, pl.treksoft.kvision.remote.KVServiceManager.bind.PAR3, pl.treksoft.kvision.remote.KVServiceManager.bind.PAR4, pl.treksoft.kvision.remote.KVServiceManager.bind.PAR5, pl.treksoft.kvision.remote.KVServiceManager.bind.RET)), pl.treksoft.kvision.remote.HttpMethod, kotlin.String)/route">route</span><span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">?</span><span class="symbol">)</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html"><span class="identifier">Unit</span></a></code>
+<p>Binds a given route with a function of the receiver.</p>
+<code><span class="keyword">actual</span> <span class="keyword">fun </span><span class="identifier">bind</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.remote.KVServiceManager$bind(kotlin.Function3((pl.treksoft.kvision.remote.KVServiceManager.T, kotlin.String, , kotlin.collections.List(()))))/function">function</span><span class="symbol">:</span>&nbsp;<a href="index.html#T"><span class="identifier">T</span></a><span class="symbol">.</span><span class="symbol">(</span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">?</span><span class="symbol">,</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">?</span><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/-list/index.html"><span class="identifier">List</span></a><span class="symbol">&lt;</span><span class="identifier">&lt;ERROR CLASS&gt;</span><span class="symbol">&gt;</span><span class="symbol">)</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html"><span class="identifier">Unit</span></a></code>
+<p>Binds a given function of the receiver as a select options source</p>
+<code><span class="keyword">actual</span> <span class="keyword">fun </span><span class="symbol">&lt;</span><span class="identifier">RET</span><span class="symbol">&gt;</span> <span class="identifier">bind</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.remote.KVServiceManager$bind(kotlin.Function5((pl.treksoft.kvision.remote.KVServiceManager.T, kotlin.Int, , kotlin.collections.List(()), kotlin.collections.List(()), ((pl.treksoft.kvision.remote.KVServiceManager.bind.RET)))))/function">function</span><span class="symbol">:</span>&nbsp;<a href="index.html#T"><span class="identifier">T</span></a><span class="symbol">.</span><span class="symbol">(</span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html"><span class="identifier">Int</span></a><span class="symbol">?</span><span class="symbol">,</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html"><span class="identifier">Int</span></a><span class="symbol">?</span><span class="symbol">,</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/-list/index.html"><span class="identifier">List</span></a><span class="symbol">&lt;</span><span class="identifier">&lt;ERROR CLASS&gt;</span><span class="symbol">&gt;</span><span class="symbol">?</span><span class="symbol">,</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/-list/index.html"><span class="identifier">List</span></a><span class="symbol">&lt;</span><span class="identifier">&lt;ERROR CLASS&gt;</span><span class="symbol">&gt;</span><span class="symbol">?</span><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<span class="identifier">&lt;ERROR CLASS&gt;</span><span class="symbol">&lt;</span><a href="bind.html#RET"><span class="identifier">RET</span></a><span class="symbol">&gt;</span><span class="symbol">)</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html"><span class="identifier">Unit</span></a></code>
+<p>Binds a given function of the receiver as a tabulator component source</p>
+<code><span class="keyword">actual</span> <span class="keyword">fun </span><span class="symbol">&lt;</span><span class="identifier">PAR1</span>&nbsp;<span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-any/index.html"><span class="identifier">Any</span></a><span class="symbol">, </span><span class="identifier">PAR2</span>&nbsp;<span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-any/index.html"><span class="identifier">Any</span></a><span class="symbol">&gt;</span> <span class="identifier">bind</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.remote.KVServiceManager$bind(kotlin.coroutines.SuspendFunction3((pl.treksoft.kvision.remote.KVServiceManager.T, ((pl.treksoft.kvision.remote.KVServiceManager.bind.PAR1)), ((pl.treksoft.kvision.remote.KVServiceManager.bind.PAR2)), kotlin.Unit)), kotlin.String)/function">function</span><span class="symbol">:</span>&nbsp;<span class="keyword">suspend </span><a href="index.html#T"><span class="identifier">T</span></a><span class="symbol">.</span><span class="symbol">(</span><span class="identifier">&lt;ERROR CLASS&gt;</span><span class="symbol">&lt;</span><a href="bind.html#PAR1"><span class="identifier">PAR1</span></a><span class="symbol">&gt;</span><span class="symbol">,</span>&nbsp;<span class="identifier">&lt;ERROR CLASS&gt;</span><span class="symbol">&lt;</span><a href="bind.html#PAR2"><span class="identifier">PAR2</span></a><span class="symbol">&gt;</span><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html"><span class="identifier">Unit</span></a><span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.remote.KVServiceManager$bind(kotlin.coroutines.SuspendFunction3((pl.treksoft.kvision.remote.KVServiceManager.T, ((pl.treksoft.kvision.remote.KVServiceManager.bind.PAR1)), ((pl.treksoft.kvision.remote.KVServiceManager.bind.PAR2)), kotlin.Unit)), kotlin.String)/route">route</span><span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">?</span><span class="symbol">)</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html"><span class="identifier">Unit</span></a></code>
+<p>Binds a given web socket connetion with a function of the receiver.</p>
+</td>
+</tr>
+<tr>
+<td>
+<p><a href="get-calls.html">getCalls</a></p>
+</td>
+<td>
+<code><span class="keyword">fun </span><span class="identifier">getCalls</span><span class="symbol">(</span><span class="symbol">)</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/-map/index.html"><span class="identifier">Map</span></a><span class="symbol">&lt;</span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">,</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-pair/index.html"><span class="identifier">Pair</span></a><span class="symbol">&lt;</span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">,</span>&nbsp;<span class="identifier">HttpMethod</span><span class="symbol">&gt;</span><span class="symbol">&gt;</span></code>
+<p>Returns the map of defined paths.</p>
+</td>
+</tr>
+</tbody>
+</table>
+<h3>Companion Object Properties</h3>
+<table>
+<tbody>
+<tr>
+<td>
+<p><a href="-l-o-g.html">LOG</a></p>
+</td>
+<td>
+<code><span class="keyword">val </span><span class="identifier">LOG</span><span class="symbol">: </span><span class="identifier">&lt;ERROR CLASS&gt;</span></code></td>
+</tr>
+</tbody>
+</table>
+<h3>Extension Functions</h3>
+<table>
+<tbody>
+<tr>
+<td>
+<p><a href="../../pl.treksoft.kvision.utils/kotlin.-any/create-instance.html">createInstance</a></p>
+</td>
+<td>
+<code><span class="keyword">fun </span><span class="symbol">&lt;</span><span class="identifier">T</span><span class="symbol">&gt;</span> <a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-any/index.html"><span class="identifier">Any</span></a><span class="symbol">?</span><span class="symbol">.</span><span class="identifier">createInstance</span><span class="symbol">(</span><span class="keyword">vararg</span> <span class="identifier" id="pl.treksoft.kvision.utils$createInstance(kotlin.Any, kotlin.Array((kotlin.Any)))/args">args</span><span class="symbol">:</span>&nbsp;<span class="keyword">dynamic</span><span class="symbol">)</span><span class="symbol">: </span><a href="../../pl.treksoft.kvision.utils/kotlin.-any/create-instance.html#T"><span class="identifier">T</span></a></code>
+<p>Helper function for creating JavaScript objects from dynamic constructors.</p>
+</td>
+</tr>
+</tbody>
+</table>
+</BODY>
+</HTML>
diff --git a/api1/pl.treksoft.kvision.remote/-k-v-service-manager/mapper.html b/api1/pl.treksoft.kvision.remote/-k-v-service-manager/mapper.html
new file mode 100644
index 00000000..a2a8950e
--- /dev/null
+++ b/api1/pl.treksoft.kvision.remote/-k-v-service-manager/mapper.html
@@ -0,0 +1,14 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>KVServiceManager.mapper - kvision</title>
+<link rel="stylesheet" href="../../../style.css">
+</HEAD>
+<BODY>
+<a href="../../index.html">kvision</a>&nbsp;/&nbsp;<a href="../index.html">pl.treksoft.kvision.remote</a>&nbsp;/&nbsp;<a href="index.html">KVServiceManager</a>&nbsp;/&nbsp;<a href="./mapper.html">mapper</a><br/>
+<br/>
+<h1>mapper</h1>
+<a name="pl.treksoft.kvision.remote.KVServiceManager$mapper"></a>
+<code><span class="keyword">val </span><span class="identifier">mapper</span><span class="symbol">: </span><span class="identifier">&lt;ERROR CLASS&gt;</span></code>
+</BODY>
+</HTML>
diff --git a/api1/pl.treksoft.kvision.remote/-k-v-service-manager/options-requests.html b/api1/pl.treksoft.kvision.remote/-k-v-service-manager/options-requests.html
new file mode 100644
index 00000000..83d19fd1
--- /dev/null
+++ b/api1/pl.treksoft.kvision.remote/-k-v-service-manager/options-requests.html
@@ -0,0 +1,14 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>KVServiceManager.optionsRequests - kvision</title>
+<link rel="stylesheet" href="../../../style.css">
+</HEAD>
+<BODY>
+<a href="../../index.html">kvision</a>&nbsp;/&nbsp;<a href="../index.html">pl.treksoft.kvision.remote</a>&nbsp;/&nbsp;<a href="index.html">KVServiceManager</a>&nbsp;/&nbsp;<a href="./options-requests.html">optionsRequests</a><br/>
+<br/>
+<h1>optionsRequests</h1>
+<a name="pl.treksoft.kvision.remote.KVServiceManager$optionsRequests"></a>
+<code><span class="keyword">val </span><span class="identifier">optionsRequests</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/-mutable-map/index.html"><span class="identifier">MutableMap</span></a><span class="symbol">&lt;</span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">,</span>&nbsp;<span class="keyword">suspend </span><span class="identifier">&lt;ERROR CLASS&gt;</span><span class="symbol">&lt;</span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html"><span class="identifier">Unit</span></a><span class="symbol">,</span>&nbsp;<span class="identifier">&lt;ERROR CLASS&gt;</span><span class="symbol">&gt;</span><span class="symbol">.</span><span class="symbol">(</span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html"><span class="identifier">Unit</span></a><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html"><span class="identifier">Unit</span></a><span class="symbol">&gt;</span></code>
+</BODY>
+</HTML>
diff --git a/api1/pl.treksoft.kvision.remote/-k-v-service-manager/post-requests.html b/api1/pl.treksoft.kvision.remote/-k-v-service-manager/post-requests.html
new file mode 100644
index 00000000..1f819332
--- /dev/null
+++ b/api1/pl.treksoft.kvision.remote/-k-v-service-manager/post-requests.html
@@ -0,0 +1,14 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>KVServiceManager.postRequests - kvision</title>
+<link rel="stylesheet" href="../../../style.css">
+</HEAD>
+<BODY>
+<a href="../../index.html">kvision</a>&nbsp;/&nbsp;<a href="../index.html">pl.treksoft.kvision.remote</a>&nbsp;/&nbsp;<a href="index.html">KVServiceManager</a>&nbsp;/&nbsp;<a href="./post-requests.html">postRequests</a><br/>
+<br/>
+<h1>postRequests</h1>
+<a name="pl.treksoft.kvision.remote.KVServiceManager$postRequests"></a>
+<code><span class="keyword">val </span><span class="identifier">postRequests</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/-mutable-map/index.html"><span class="identifier">MutableMap</span></a><span class="symbol">&lt;</span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">,</span>&nbsp;<span class="keyword">suspend </span><span class="identifier">&lt;ERROR CLASS&gt;</span><span class="symbol">&lt;</span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html"><span class="identifier">Unit</span></a><span class="symbol">,</span>&nbsp;<span class="identifier">&lt;ERROR CLASS&gt;</span><span class="symbol">&gt;</span><span class="symbol">.</span><span class="symbol">(</span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html"><span class="identifier">Unit</span></a><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html"><span class="identifier">Unit</span></a><span class="symbol">&gt;</span></code>
+</BODY>
+</HTML>
diff --git a/api1/pl.treksoft.kvision.remote/-k-v-service-manager/put-requests.html b/api1/pl.treksoft.kvision.remote/-k-v-service-manager/put-requests.html
new file mode 100644
index 00000000..a17d543c
--- /dev/null
+++ b/api1/pl.treksoft.kvision.remote/-k-v-service-manager/put-requests.html
@@ -0,0 +1,14 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>KVServiceManager.putRequests - kvision</title>
+<link rel="stylesheet" href="../../../style.css">
+</HEAD>
+<BODY>
+<a href="../../index.html">kvision</a>&nbsp;/&nbsp;<a href="../index.html">pl.treksoft.kvision.remote</a>&nbsp;/&nbsp;<a href="index.html">KVServiceManager</a>&nbsp;/&nbsp;<a href="./put-requests.html">putRequests</a><br/>
+<br/>
+<h1>putRequests</h1>
+<a name="pl.treksoft.kvision.remote.KVServiceManager$putRequests"></a>
+<code><span class="keyword">val </span><span class="identifier">putRequests</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/-mutable-map/index.html"><span class="identifier">MutableMap</span></a><span class="symbol">&lt;</span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">,</span>&nbsp;<span class="keyword">suspend </span><span class="identifier">&lt;ERROR CLASS&gt;</span><span class="symbol">&lt;</span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html"><span class="identifier">Unit</span></a><span class="symbol">,</span>&nbsp;<span class="identifier">&lt;ERROR CLASS&gt;</span><span class="symbol">&gt;</span><span class="symbol">.</span><span class="symbol">(</span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html"><span class="identifier">Unit</span></a><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html"><span class="identifier">Unit</span></a><span class="symbol">&gt;</span></code>
+</BODY>
+</HTML>
diff --git a/api1/pl.treksoft.kvision.remote/-k-v-service-manager/routes.html b/api1/pl.treksoft.kvision.remote/-k-v-service-manager/routes.html
new file mode 100644
index 00000000..49b7318a
--- /dev/null
+++ b/api1/pl.treksoft.kvision.remote/-k-v-service-manager/routes.html
@@ -0,0 +1,14 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>KVServiceManager.routes - kvision</title>
+<link rel="stylesheet" href="../../../style.css">
+</HEAD>
+<BODY>
+<a href="../../index.html">kvision</a>&nbsp;/&nbsp;<a href="../index.html">pl.treksoft.kvision.remote</a>&nbsp;/&nbsp;<a href="index.html">KVServiceManager</a>&nbsp;/&nbsp;<a href="./routes.html">routes</a><br/>
+<br/>
+<h1>routes</h1>
+<a name="pl.treksoft.kvision.remote.KVServiceManager$routes"></a>
+<code><span class="keyword">val </span><span class="identifier">routes</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/-mutable-list/index.html"><span class="identifier">MutableList</span></a><span class="symbol">&lt;</span><span class="identifier">&lt;ERROR CLASS&gt;</span><span class="symbol">.</span><span class="symbol">(</span><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html"><span class="identifier">Unit</span></a><span class="symbol">&gt;</span></code>
+</BODY>
+</HTML>
diff --git a/api1/pl.treksoft.kvision.remote/-k-v-service-manager/service-class.html b/api1/pl.treksoft.kvision.remote/-k-v-service-manager/service-class.html
new file mode 100644
index 00000000..6ca8542d
--- /dev/null
+++ b/api1/pl.treksoft.kvision.remote/-k-v-service-manager/service-class.html
@@ -0,0 +1,14 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>KVServiceManager.serviceClass - kvision</title>
+<link rel="stylesheet" href="../../../style.css">
+</HEAD>
+<BODY>
+<a href="../../index.html">kvision</a>&nbsp;/&nbsp;<a href="../index.html">pl.treksoft.kvision.remote</a>&nbsp;/&nbsp;<a href="index.html">KVServiceManager</a>&nbsp;/&nbsp;<a href="./service-class.html">serviceClass</a><br/>
+<br/>
+<h1>serviceClass</h1>
+<a name="pl.treksoft.kvision.remote.KVServiceManager$serviceClass"></a>
+<code><span class="keyword">val </span><span class="identifier">serviceClass</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.reflect/-k-class/index.html"><span class="identifier">KClass</span></a><span class="symbol">&lt;</span><a href="index.html#T"><span class="identifier">T</span></a><span class="symbol">&gt;</span></code>
+</BODY>
+</HTML>
diff --git a/api1/pl.treksoft.kvision.remote/-k-v-service-manager/web-socket-requests.html b/api1/pl.treksoft.kvision.remote/-k-v-service-manager/web-socket-requests.html
new file mode 100644
index 00000000..2be63e6e
--- /dev/null
+++ b/api1/pl.treksoft.kvision.remote/-k-v-service-manager/web-socket-requests.html
@@ -0,0 +1,14 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>KVServiceManager.webSocketRequests - kvision</title>
+<link rel="stylesheet" href="../../../style.css">
+</HEAD>
+<BODY>
+<a href="../../index.html">kvision</a>&nbsp;/&nbsp;<a href="../index.html">pl.treksoft.kvision.remote</a>&nbsp;/&nbsp;<a href="index.html">KVServiceManager</a>&nbsp;/&nbsp;<a href="./web-socket-requests.html">webSocketRequests</a><br/>
+<br/>
+<h1>webSocketRequests</h1>
+<a name="pl.treksoft.kvision.remote.KVServiceManager$webSocketRequests"></a>
+<code><span class="keyword">val </span><span class="identifier">webSocketRequests</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/-mutable-map/index.html"><span class="identifier">MutableMap</span></a><span class="symbol">&lt;</span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">,</span>&nbsp;<span class="keyword">suspend </span><span class="identifier">&lt;ERROR CLASS&gt;</span><span class="symbol">.</span><span class="symbol">(</span><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html"><span class="identifier">Unit</span></a><span class="symbol">&gt;</span></code>
+</BODY>
+</HTML>
diff --git a/api1/pl.treksoft.kvision.remote/-k-v-service-manager/web-sockets-requests.html b/api1/pl.treksoft.kvision.remote/-k-v-service-manager/web-sockets-requests.html
new file mode 100644
index 00000000..f27f974a
--- /dev/null
+++ b/api1/pl.treksoft.kvision.remote/-k-v-service-manager/web-sockets-requests.html
@@ -0,0 +1,14 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>KVServiceManager.webSocketsRequests - kvision</title>
+<link rel="stylesheet" href="../../../style.css">
+</HEAD>
+<BODY>
+<a href="../../index.html">kvision</a>&nbsp;/&nbsp;<a href="../index.html">pl.treksoft.kvision.remote</a>&nbsp;/&nbsp;<a href="index.html">KVServiceManager</a>&nbsp;/&nbsp;<a href="./web-sockets-requests.html">webSocketsRequests</a><br/>
+<br/>
+<h1>webSocketsRequests</h1>
+<a name="pl.treksoft.kvision.remote.KVServiceManager$webSocketsRequests"></a>
+<code><span class="keyword">val </span><span class="identifier">webSocketsRequests</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/-mutable-map/index.html"><span class="identifier">MutableMap</span></a><span class="symbol">&lt;</span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">,</span>&nbsp;<span class="keyword">suspend </span><span class="symbol">(</span><span class="identifier">&lt;ERROR CLASS&gt;</span><span class="symbol">,</span>&nbsp;<span class="identifier">&lt;ERROR CLASS&gt;</span><span class="symbol">,</span>&nbsp;<span class="identifier">&lt;ERROR CLASS&gt;</span><span class="symbol">&lt;</span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">&gt;</span><span class="symbol">,</span>&nbsp;<span class="identifier">&lt;ERROR CLASS&gt;</span><span class="symbol">&lt;</span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">&gt;</span><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html"><span class="identifier">Unit</span></a><span class="symbol">&gt;</span></code>
+</BODY>
+</HTML>
diff --git a/api1/pl.treksoft.kvision.remote/-k-v-web-socket-config/-init-.html b/api1/pl.treksoft.kvision.remote/-k-v-web-socket-config/-init-.html
new file mode 100644
index 00000000..e445cb05
--- /dev/null
+++ b/api1/pl.treksoft.kvision.remote/-k-v-web-socket-config/-init-.html
@@ -0,0 +1,15 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>KVWebSocketConfig.<init> - kvision</title>
+<link rel="stylesheet" href="../../../style.css">
+</HEAD>
+<BODY>
+<a href="../../index.html">kvision</a>&nbsp;/&nbsp;<a href="../index.html">pl.treksoft.kvision.remote</a>&nbsp;/&nbsp;<a href="index.html">KVWebSocketConfig</a>&nbsp;/&nbsp;<a href="./-init-.html">&lt;init&gt;</a><br/>
+<br/>
+<h1>&lt;init&gt;</h1>
+<a name="pl.treksoft.kvision.remote.KVWebSocketConfig$&lt;init&gt;()"></a>
+<code><span class="identifier">KVWebSocketConfig</span><span class="symbol">(</span><span class="symbol">)</span></code>
+<p>Automatic websockets configuration.</p>
+</BODY>
+</HTML>
diff --git a/api1/pl.treksoft.kvision.remote/-k-v-web-socket-config/application-context.html b/api1/pl.treksoft.kvision.remote/-k-v-web-socket-config/application-context.html
new file mode 100644
index 00000000..2ef3f390
--- /dev/null
+++ b/api1/pl.treksoft.kvision.remote/-k-v-web-socket-config/application-context.html
@@ -0,0 +1,14 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>KVWebSocketConfig.applicationContext - kvision</title>
+<link rel="stylesheet" href="../../../style.css">
+</HEAD>
+<BODY>
+<a href="../../index.html">kvision</a>&nbsp;/&nbsp;<a href="../index.html">pl.treksoft.kvision.remote</a>&nbsp;/&nbsp;<a href="index.html">KVWebSocketConfig</a>&nbsp;/&nbsp;<a href="./application-context.html">applicationContext</a><br/>
+<br/>
+<h1>applicationContext</h1>
+<a name="pl.treksoft.kvision.remote.KVWebSocketConfig$applicationContext"></a>
+<code><span class="keyword">lateinit</span> <span class="keyword">var </span><span class="identifier">applicationContext</span><span class="symbol">: </span><span class="identifier">&lt;ERROR CLASS&gt;</span></code>
+</BODY>
+</HTML>
diff --git a/api1/pl.treksoft.kvision.remote/-k-v-web-socket-config/index.html b/api1/pl.treksoft.kvision.remote/-k-v-web-socket-config/index.html
new file mode 100644
index 00000000..1ca80257
--- /dev/null
+++ b/api1/pl.treksoft.kvision.remote/-k-v-web-socket-config/index.html
@@ -0,0 +1,94 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>KVWebSocketConfig - kvision</title>
+<link rel="stylesheet" href="../../../style.css">
+</HEAD>
+<BODY>
+<a href="../../index.html">kvision</a>&nbsp;/&nbsp;<a href="../index.html">pl.treksoft.kvision.remote</a>&nbsp;/&nbsp;<a href="./index.html">KVWebSocketConfig</a><br/>
+<br/>
+<h1>KVWebSocketConfig</h1>
+<code><span class="keyword">open</span> <span class="keyword">class </span><span class="identifier">KVWebSocketConfig</span></code>
+<p>Automatic websockets configuration.</p>
+<h3>Constructors</h3>
+<table>
+<tbody>
+<tr>
+<td>
+<p><a href="-init-.html">&lt;init&gt;</a></p>
+</td>
+<td>
+<code><span class="identifier">KVWebSocketConfig</span><span class="symbol">(</span><span class="symbol">)</span></code>
+<p>Automatic websockets configuration.</p>
+</td>
+</tr>
+</tbody>
+</table>
+<h3>Properties</h3>
+<table>
+<tbody>
+<tr>
+<td>
+<p><a href="application-context.html">applicationContext</a></p>
+</td>
+<td>
+<code><span class="keyword">lateinit</span> <span class="keyword">var </span><span class="identifier">applicationContext</span><span class="symbol">: </span><span class="identifier">&lt;ERROR CLASS&gt;</span></code></td>
+</tr>
+<tr>
+<td>
+<p><a href="services.html">services</a></p>
+</td>
+<td>
+<code><span class="keyword">lateinit</span> <span class="keyword">var </span><span class="identifier">services</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/-list/index.html"><span class="identifier">List</span></a><span class="symbol">&lt;</span><a href="../-k-v-service-manager/index.html"><span class="identifier">KVServiceManager</span></a><span class="symbol">&lt;</span><span class="identifier">*</span><span class="symbol">&gt;</span><span class="symbol">&gt;</span></code></td>
+</tr>
+</tbody>
+</table>
+<h3>Functions</h3>
+<table>
+<tbody>
+<tr>
+<td>
+<p><a href="register-web-socket-handlers.html">registerWebSocketHandlers</a></p>
+</td>
+<td>
+<code><span class="keyword">open</span> <span class="keyword">fun </span><span class="identifier">registerWebSocketHandlers</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.remote.KVWebSocketConfig$registerWebSocketHandlers()/registry">registry</span><span class="symbol">:</span>&nbsp;<span class="identifier">&lt;ERROR CLASS&gt;</span><span class="symbol">)</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html"><span class="identifier">Unit</span></a></code></td>
+</tr>
+<tr>
+<td>
+<p><a href="route-interceptor.html">routeInterceptor</a></p>
+</td>
+<td>
+<code><span class="keyword">open</span> <span class="keyword">fun </span><span class="identifier">routeInterceptor</span><span class="symbol">(</span><span class="symbol">)</span><span class="symbol">: </span><span class="identifier">&lt;ERROR CLASS&gt;</span></code></td>
+</tr>
+<tr>
+<td>
+<p><a href="socket-handler.html">socketHandler</a></p>
+</td>
+<td>
+<code><span class="keyword">open</span> <span class="keyword">fun </span><span class="identifier">socketHandler</span><span class="symbol">(</span><span class="symbol">)</span><span class="symbol">: </span><span class="identifier">&lt;ERROR CLASS&gt;</span></code></td>
+</tr>
+<tr>
+<td>
+<p><a href="web-socket-session.html">webSocketSession</a></p>
+</td>
+<td>
+<code><span class="keyword">open</span> <span class="keyword">fun </span><span class="identifier">webSocketSession</span><span class="symbol">(</span><span class="symbol">)</span><span class="symbol">: </span><span class="identifier">&lt;ERROR CLASS&gt;</span></code></td>
+</tr>
+</tbody>
+</table>
+<h3>Extension Functions</h3>
+<table>
+<tbody>
+<tr>
+<td>
+<p><a href="../../pl.treksoft.kvision.utils/kotlin.-any/create-instance.html">createInstance</a></p>
+</td>
+<td>
+<code><span class="keyword">fun </span><span class="symbol">&lt;</span><span class="identifier">T</span><span class="symbol">&gt;</span> <a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-any/index.html"><span class="identifier">Any</span></a><span class="symbol">?</span><span class="symbol">.</span><span class="identifier">createInstance</span><span class="symbol">(</span><span class="keyword">vararg</span> <span class="identifier" id="pl.treksoft.kvision.utils$createInstance(kotlin.Any, kotlin.Array((kotlin.Any)))/args">args</span><span class="symbol">:</span>&nbsp;<span class="keyword">dynamic</span><span class="symbol">)</span><span class="symbol">: </span><a href="../../pl.treksoft.kvision.utils/kotlin.-any/create-instance.html#T"><span class="identifier">T</span></a></code>
+<p>Helper function for creating JavaScript objects from dynamic constructors.</p>
+</td>
+</tr>
+</tbody>
+</table>
+</BODY>
+</HTML>
diff --git a/api1/pl.treksoft.kvision.remote/-k-v-web-socket-config/register-web-socket-handlers.html b/api1/pl.treksoft.kvision.remote/-k-v-web-socket-config/register-web-socket-handlers.html
new file mode 100644
index 00000000..80d40bf2
--- /dev/null
+++ b/api1/pl.treksoft.kvision.remote/-k-v-web-socket-config/register-web-socket-handlers.html
@@ -0,0 +1,14 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>KVWebSocketConfig.registerWebSocketHandlers - kvision</title>
+<link rel="stylesheet" href="../../../style.css">
+</HEAD>
+<BODY>
+<a href="../../index.html">kvision</a>&nbsp;/&nbsp;<a href="../index.html">pl.treksoft.kvision.remote</a>&nbsp;/&nbsp;<a href="index.html">KVWebSocketConfig</a>&nbsp;/&nbsp;<a href="./register-web-socket-handlers.html">registerWebSocketHandlers</a><br/>
+<br/>
+<h1>registerWebSocketHandlers</h1>
+<a name="pl.treksoft.kvision.remote.KVWebSocketConfig$registerWebSocketHandlers()"></a>
+<code><span class="keyword">open</span> <span class="keyword">fun </span><span class="identifier">registerWebSocketHandlers</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.remote.KVWebSocketConfig$registerWebSocketHandlers()/registry">registry</span><span class="symbol">:</span>&nbsp;<span class="identifier">&lt;ERROR CLASS&gt;</span><span class="symbol">)</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html"><span class="identifier">Unit</span></a></code>
+</BODY>
+</HTML>
diff --git a/api1/pl.treksoft.kvision.remote/-k-v-web-socket-config/route-interceptor.html b/api1/pl.treksoft.kvision.remote/-k-v-web-socket-config/route-interceptor.html
new file mode 100644
index 00000000..18bca5a0
--- /dev/null
+++ b/api1/pl.treksoft.kvision.remote/-k-v-web-socket-config/route-interceptor.html
@@ -0,0 +1,14 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>KVWebSocketConfig.routeInterceptor - kvision</title>
+<link rel="stylesheet" href="../../../style.css">
+</HEAD>
+<BODY>
+<a href="../../index.html">kvision</a>&nbsp;/&nbsp;<a href="../index.html">pl.treksoft.kvision.remote</a>&nbsp;/&nbsp;<a href="index.html">KVWebSocketConfig</a>&nbsp;/&nbsp;<a href="./route-interceptor.html">routeInterceptor</a><br/>
+<br/>
+<h1>routeInterceptor</h1>
+<a name="pl.treksoft.kvision.remote.KVWebSocketConfig$routeInterceptor()"></a>
+<code><span class="keyword">open</span> <span class="keyword">fun </span><span class="identifier">routeInterceptor</span><span class="symbol">(</span><span class="symbol">)</span><span class="symbol">: </span><span class="identifier">&lt;ERROR CLASS&gt;</span></code>
+</BODY>
+</HTML>
diff --git a/api1/pl.treksoft.kvision.remote/-k-v-web-socket-config/services.html b/api1/pl.treksoft.kvision.remote/-k-v-web-socket-config/services.html
new file mode 100644
index 00000000..669aa7ed
--- /dev/null
+++ b/api1/pl.treksoft.kvision.remote/-k-v-web-socket-config/services.html
@@ -0,0 +1,14 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>KVWebSocketConfig.services - kvision</title>
+<link rel="stylesheet" href="../../../style.css">
+</HEAD>
+<BODY>
+<a href="../../index.html">kvision</a>&nbsp;/&nbsp;<a href="../index.html">pl.treksoft.kvision.remote</a>&nbsp;/&nbsp;<a href="index.html">KVWebSocketConfig</a>&nbsp;/&nbsp;<a href="./services.html">services</a><br/>
+<br/>
+<h1>services</h1>
+<a name="pl.treksoft.kvision.remote.KVWebSocketConfig$services"></a>
+<code><span class="keyword">lateinit</span> <span class="keyword">var </span><span class="identifier">services</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/-list/index.html"><span class="identifier">List</span></a><span class="symbol">&lt;</span><a href="../-k-v-service-manager/index.html"><span class="identifier">KVServiceManager</span></a><span class="symbol">&lt;</span><span class="identifier">*</span><span class="symbol">&gt;</span><span class="symbol">&gt;</span></code>
+</BODY>
+</HTML>
diff --git a/api1/pl.treksoft.kvision.remote/-k-v-web-socket-config/socket-handler.html b/api1/pl.treksoft.kvision.remote/-k-v-web-socket-config/socket-handler.html
new file mode 100644
index 00000000..95b9091d
--- /dev/null
+++ b/api1/pl.treksoft.kvision.remote/-k-v-web-socket-config/socket-handler.html
@@ -0,0 +1,14 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>KVWebSocketConfig.socketHandler - kvision</title>
+<link rel="stylesheet" href="../../../style.css">
+</HEAD>
+<BODY>
+<a href="../../index.html">kvision</a>&nbsp;/&nbsp;<a href="../index.html">pl.treksoft.kvision.remote</a>&nbsp;/&nbsp;<a href="index.html">KVWebSocketConfig</a>&nbsp;/&nbsp;<a href="./socket-handler.html">socketHandler</a><br/>
+<br/>
+<h1>socketHandler</h1>
+<a name="pl.treksoft.kvision.remote.KVWebSocketConfig$socketHandler()"></a>
+<code><span class="keyword">open</span> <span class="keyword">fun </span><span class="identifier">socketHandler</span><span class="symbol">(</span><span class="symbol">)</span><span class="symbol">: </span><span class="identifier">&lt;ERROR CLASS&gt;</span></code>
+</BODY>
+</HTML>
diff --git a/api1/pl.treksoft.kvision.remote/-k-v-web-socket-config/web-socket-session.html b/api1/pl.treksoft.kvision.remote/-k-v-web-socket-config/web-socket-session.html
new file mode 100644
index 00000000..93eb1f91
--- /dev/null
+++ b/api1/pl.treksoft.kvision.remote/-k-v-web-socket-config/web-socket-session.html
@@ -0,0 +1,14 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>KVWebSocketConfig.webSocketSession - kvision</title>
+<link rel="stylesheet" href="../../../style.css">
+</HEAD>
+<BODY>
+<a href="../../index.html">kvision</a>&nbsp;/&nbsp;<a href="../index.html">pl.treksoft.kvision.remote</a>&nbsp;/&nbsp;<a href="index.html">KVWebSocketConfig</a>&nbsp;/&nbsp;<a href="./web-socket-session.html">webSocketSession</a><br/>
+<br/>
+<h1>webSocketSession</h1>
+<a name="pl.treksoft.kvision.remote.KVWebSocketConfig$webSocketSession()"></a>
+<code><span class="keyword">open</span> <span class="keyword">fun </span><span class="identifier">webSocketSession</span><span class="symbol">(</span><span class="symbol">)</span><span class="symbol">: </span><span class="identifier">&lt;ERROR CLASS&gt;</span></code>
+</BODY>
+</HTML>
diff --git a/api1/pl.treksoft.kvision.remote/-k-v_-r-o-u-t-e_-i-d_-a-t-t-r-i-b-u-t-e.html b/api1/pl.treksoft.kvision.remote/-k-v_-r-o-u-t-e_-i-d_-a-t-t-r-i-b-u-t-e.html
new file mode 100644
index 00000000..4044b73e
--- /dev/null
+++ b/api1/pl.treksoft.kvision.remote/-k-v_-r-o-u-t-e_-i-d_-a-t-t-r-i-b-u-t-e.html
@@ -0,0 +1,14 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>KV_ROUTE_ID_ATTRIBUTE - kvision</title>
+<link rel="stylesheet" href="../../style.css">
+</HEAD>
+<BODY>
+<a href="../index.html">kvision</a>&nbsp;/&nbsp;<a href="index.html">pl.treksoft.kvision.remote</a>&nbsp;/&nbsp;<a href="./-k-v_-r-o-u-t-e_-i-d_-a-t-t-r-i-b-u-t-e.html">KV_ROUTE_ID_ATTRIBUTE</a><br/>
+<br/>
+<h1>KV_ROUTE_ID_ATTRIBUTE</h1>
+<a name="pl.treksoft.kvision.remote$KV_ROUTE_ID_ATTRIBUTE"></a>
+<code><span class="keyword">const</span> <span class="keyword">val </span><span class="identifier">KV_ROUTE_ID_ATTRIBUTE</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a></code>
+</BODY>
+</HTML>
diff --git a/api1/pl.treksoft.kvision.remote/-login-service/-init-.html b/api1/pl.treksoft.kvision.remote/-login-service/-init-.html
new file mode 100644
index 00000000..eb38c216
--- /dev/null
+++ b/api1/pl.treksoft.kvision.remote/-login-service/-init-.html
@@ -0,0 +1,15 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>LoginService.<init> - kvision</title>
+<link rel="stylesheet" href="../../../style.css">
+</HEAD>
+<BODY>
+<a href="../../index.html">kvision</a>&nbsp;/&nbsp;<a href="../index.html">pl.treksoft.kvision.remote</a>&nbsp;/&nbsp;<a href="index.html">LoginService</a>&nbsp;/&nbsp;<a href="./-init-.html">&lt;init&gt;</a><br/>
+<br/>
+<h1>&lt;init&gt;</h1>
+<a name="pl.treksoft.kvision.remote.LoginService$&lt;init&gt;(kotlin.String)"></a>
+<code><span class="identifier">LoginService</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.remote.LoginService$<init>(kotlin.String)/loginEndpoint">loginEndpoint</span><span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">)</span></code>
+<p>Form login dispatcher.</p>
+</BODY>
+</HTML>
diff --git a/api1/pl.treksoft.kvision.remote/-login-service/index.html b/api1/pl.treksoft.kvision.remote/-login-service/index.html
new file mode 100644
index 00000000..c965f5d7
--- /dev/null
+++ b/api1/pl.treksoft.kvision.remote/-login-service/index.html
@@ -0,0 +1,75 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>LoginService - kvision</title>
+<link rel="stylesheet" href="../../../style.css">
+</HEAD>
+<BODY>
+<a href="../../index.html">kvision</a>&nbsp;/&nbsp;<a href="../index.html">pl.treksoft.kvision.remote</a>&nbsp;/&nbsp;<a href="./index.html">LoginService</a><br/>
+<br/>
+<h1>LoginService</h1>
+<code><span class="keyword">class </span><span class="identifier">LoginService</span></code>
+<p>Form login dispatcher.</p>
+<h3>Constructors</h3>
+<table>
+<tbody>
+<tr>
+<td>
+<p><a href="-init-.html">&lt;init&gt;</a></p>
+</td>
+<td>
+<code><span class="identifier">LoginService</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.remote.LoginService$<init>(kotlin.String)/loginEndpoint">loginEndpoint</span><span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">)</span></code>
+<p>Form login dispatcher.</p>
+</td>
+</tr>
+</tbody>
+</table>
+<h3>Properties</h3>
+<table>
+<tbody>
+<tr>
+<td>
+<p><a href="login-agent.html">loginAgent</a></p>
+</td>
+<td>
+<code><span class="keyword">val </span><span class="identifier">loginAgent</span><span class="symbol">: </span><a href="../-call-agent/index.html"><span class="identifier">CallAgent</span></a></code></td>
+</tr>
+<tr>
+<td>
+<p><a href="login-endpoint.html">loginEndpoint</a></p>
+</td>
+<td>
+<code><span class="keyword">val </span><span class="identifier">loginEndpoint</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a></code></td>
+</tr>
+</tbody>
+</table>
+<h3>Functions</h3>
+<table>
+<tbody>
+<tr>
+<td>
+<p><a href="login.html">login</a></p>
+</td>
+<td>
+<code><span class="keyword">suspend</span> <span class="keyword">fun </span><span class="identifier">login</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.remote.LoginService$login(pl.treksoft.kvision.remote.Credentials)/credentials">credentials</span><span class="symbol">:</span>&nbsp;<a href="../-credentials/index.html"><span class="identifier">Credentials</span></a><span class="symbol">?</span><span class="symbol">)</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html"><span class="identifier">Boolean</span></a></code>
+<p>Login with a form.</p>
+</td>
+</tr>
+</tbody>
+</table>
+<h3>Extension Functions</h3>
+<table>
+<tbody>
+<tr>
+<td>
+<p><a href="../../pl.treksoft.kvision.utils/kotlin.-any/create-instance.html">createInstance</a></p>
+</td>
+<td>
+<code><span class="keyword">fun </span><span class="symbol">&lt;</span><span class="identifier">T</span><span class="symbol">&gt;</span> <a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-any/index.html"><span class="identifier">Any</span></a><span class="symbol">?</span><span class="symbol">.</span><span class="identifier">createInstance</span><span class="symbol">(</span><span class="keyword">vararg</span> <span class="identifier" id="pl.treksoft.kvision.utils$createInstance(kotlin.Any, kotlin.Array((kotlin.Any)))/args">args</span><span class="symbol">:</span>&nbsp;<span class="keyword">dynamic</span><span class="symbol">)</span><span class="symbol">: </span><a href="../../pl.treksoft.kvision.utils/kotlin.-any/create-instance.html#T"><span class="identifier">T</span></a></code>
+<p>Helper function for creating JavaScript objects from dynamic constructors.</p>
+</td>
+</tr>
+</tbody>
+</table>
+</BODY>
+</HTML>
diff --git a/api1/pl.treksoft.kvision.remote/-login-service/login-agent.html b/api1/pl.treksoft.kvision.remote/-login-service/login-agent.html
new file mode 100644
index 00000000..35b8de93
--- /dev/null
+++ b/api1/pl.treksoft.kvision.remote/-login-service/login-agent.html
@@ -0,0 +1,14 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>LoginService.loginAgent - kvision</title>
+<link rel="stylesheet" href="../../../style.css">
+</HEAD>
+<BODY>
+<a href="../../index.html">kvision</a>&nbsp;/&nbsp;<a href="../index.html">pl.treksoft.kvision.remote</a>&nbsp;/&nbsp;<a href="index.html">LoginService</a>&nbsp;/&nbsp;<a href="./login-agent.html">loginAgent</a><br/>
+<br/>
+<h1>loginAgent</h1>
+<a name="pl.treksoft.kvision.remote.LoginService$loginAgent"></a>
+<code><span class="keyword">val </span><span class="identifier">loginAgent</span><span class="symbol">: </span><a href="../-call-agent/index.html"><span class="identifier">CallAgent</span></a></code>
+</BODY>
+</HTML>
diff --git a/api1/pl.treksoft.kvision.remote/-login-service/login-endpoint.html b/api1/pl.treksoft.kvision.remote/-login-service/login-endpoint.html
new file mode 100644
index 00000000..ac24b0d5
--- /dev/null
+++ b/api1/pl.treksoft.kvision.remote/-login-service/login-endpoint.html
@@ -0,0 +1,14 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>LoginService.loginEndpoint - kvision</title>
+<link rel="stylesheet" href="../../../style.css">
+</HEAD>
+<BODY>
+<a href="../../index.html">kvision</a>&nbsp;/&nbsp;<a href="../index.html">pl.treksoft.kvision.remote</a>&nbsp;/&nbsp;<a href="index.html">LoginService</a>&nbsp;/&nbsp;<a href="./login-endpoint.html">loginEndpoint</a><br/>
+<br/>
+<h1>loginEndpoint</h1>
+<a name="pl.treksoft.kvision.remote.LoginService$loginEndpoint"></a>
+<code><span class="keyword">val </span><span class="identifier">loginEndpoint</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a></code>
+</BODY>
+</HTML>
diff --git a/api1/pl.treksoft.kvision.remote/-login-service/login.html b/api1/pl.treksoft.kvision.remote/-login-service/login.html
new file mode 100644
index 00000000..bc43ce98
--- /dev/null
+++ b/api1/pl.treksoft.kvision.remote/-login-service/login.html
@@ -0,0 +1,18 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>LoginService.login - kvision</title>
+<link rel="stylesheet" href="../../../style.css">
+</HEAD>
+<BODY>
+<a href="../../index.html">kvision</a>&nbsp;/&nbsp;<a href="../index.html">pl.treksoft.kvision.remote</a>&nbsp;/&nbsp;<a href="index.html">LoginService</a>&nbsp;/&nbsp;<a href="./login.html">login</a><br/>
+<br/>
+<h1>login</h1>
+<a name="pl.treksoft.kvision.remote.LoginService$login(pl.treksoft.kvision.remote.Credentials)"></a>
+<code><span class="keyword">suspend</span> <span class="keyword">fun </span><span class="identifier">login</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.remote.LoginService$login(pl.treksoft.kvision.remote.Credentials)/credentials">credentials</span><span class="symbol">:</span>&nbsp;<a href="../-credentials/index.html"><span class="identifier">Credentials</span></a><span class="symbol">?</span><span class="symbol">)</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html"><span class="identifier">Boolean</span></a></code>
+<p>Login with a form.</p>
+<h3>Parameters</h3>
+<p><a name="credentials"></a>
+<code>credentials</code> - username and password credentials</p>
+</BODY>
+</HTML>
diff --git a/api1/pl.treksoft.kvision.remote/-object/-init-.html b/api1/pl.treksoft.kvision.remote/-object/-init-.html
new file mode 100644
index 00000000..c0d6188b
--- /dev/null
+++ b/api1/pl.treksoft.kvision.remote/-object/-init-.html
@@ -0,0 +1,15 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>Object.<init> - kvision</title>
+<link rel="stylesheet" href="../../../style.css">
+</HEAD>
+<BODY>
+<a href="../../index.html">kvision</a>&nbsp;/&nbsp;<a href="../index.html">pl.treksoft.kvision.remote</a>&nbsp;/&nbsp;<a href="index.html">Object</a>&nbsp;/&nbsp;<a href="./-init-.html">&lt;init&gt;</a><br/>
+<br/>
+<h1>&lt;init&gt;</h1>
+<a name="pl.treksoft.kvision.remote.Object$&lt;init&gt;()"></a>
+<code><span class="identifier">Object</span><span class="symbol">(</span><span class="symbol">)</span></code>
+<p>JavaScript Object type</p>
+</BODY>
+</HTML>
diff --git a/api1/pl.treksoft.kvision.remote/-object/index.html b/api1/pl.treksoft.kvision.remote/-object/index.html
new file mode 100644
index 00000000..3cb62c10
--- /dev/null
+++ b/api1/pl.treksoft.kvision.remote/-object/index.html
@@ -0,0 +1,42 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>Object - kvision</title>
+<link rel="stylesheet" href="../../../style.css">
+</HEAD>
+<BODY>
+<a href="../../index.html">kvision</a>&nbsp;/&nbsp;<a href="../index.html">pl.treksoft.kvision.remote</a>&nbsp;/&nbsp;<a href="./index.html">Object</a><br/>
+<br/>
+<h1>Object</h1>
+<code><span class="keyword">external</span> <span class="keyword">class </span><span class="identifier">Object</span></code>
+<p>JavaScript Object type</p>
+<h3>Constructors</h3>
+<table>
+<tbody>
+<tr>
+<td>
+<p><a href="-init-.html">&lt;init&gt;</a></p>
+</td>
+<td>
+<code><span class="identifier">Object</span><span class="symbol">(</span><span class="symbol">)</span></code>
+<p>JavaScript Object type</p>
+</td>
+</tr>
+</tbody>
+</table>
+<h3>Extension Functions</h3>
+<table>
+<tbody>
+<tr>
+<td>
+<p><a href="../../pl.treksoft.kvision.utils/kotlin.-any/create-instance.html">createInstance</a></p>
+</td>
+<td>
+<code><span class="keyword">fun </span><span class="symbol">&lt;</span><span class="identifier">T</span><span class="symbol">&gt;</span> <a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-any/index.html"><span class="identifier">Any</span></a><span class="symbol">?</span><span class="symbol">.</span><span class="identifier">createInstance</span><span class="symbol">(</span><span class="keyword">vararg</span> <span class="identifier" id="pl.treksoft.kvision.utils$createInstance(kotlin.Any, kotlin.Array((kotlin.Any)))/args">args</span><span class="symbol">:</span>&nbsp;<span class="keyword">dynamic</span><span class="symbol">)</span><span class="symbol">: </span><a href="../../pl.treksoft.kvision.utils/kotlin.-any/create-instance.html#T"><span class="identifier">T</span></a></code>
+<p>Helper function for creating JavaScript objects from dynamic constructors.</p>
+</td>
+</tr>
+</tbody>
+</table>
+</BODY>
+</HTML>
diff --git a/api1/pl.treksoft.kvision.remote/-profile/-profile.html b/api1/pl.treksoft.kvision.remote/-profile/-profile.html
new file mode 100644
index 00000000..a1ef9965
--- /dev/null
+++ b/api1/pl.treksoft.kvision.remote/-profile/-profile.html
@@ -0,0 +1,14 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>Profile - kvision</title>
+<link rel="stylesheet" href="../../../style.css">
+</HEAD>
+<BODY>
+<a href="../../index.html">kvision</a>&nbsp;/&nbsp;<a href="../index.html">pl.treksoft.kvision.remote</a>&nbsp;/&nbsp;<a href="./index.html">Profile</a><br/>
+<br/>
+<h1>Profile</h1>
+<code><span class="keyword">actual</span> <span class="keyword">typealias </span><span class="identifier">Profile</span>&nbsp;<span class="symbol">=</span>&nbsp;<span class="identifier">&lt;ERROR CLASS&gt;</span></code>
+<p>A user profile.</p>
+</BODY>
+</HTML>
diff --git a/api1/pl.treksoft.kvision.remote/-profile/-profile/-init-.html b/api1/pl.treksoft.kvision.remote/-profile/-profile/-init-.html
new file mode 100644
index 00000000..8e77d496
--- /dev/null
+++ b/api1/pl.treksoft.kvision.remote/-profile/-profile/-init-.html
@@ -0,0 +1,15 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>Profile.<init> - kvision</title>
+<link rel="stylesheet" href="../../../../style.css">
+</HEAD>
+<BODY>
+<a href="../../../index.html">kvision</a>&nbsp;/&nbsp;<a href="../../index.html">pl.treksoft.kvision.remote</a>&nbsp;/&nbsp;<a href="../index.html">Profile</a>&nbsp;/&nbsp;<a href="./-init-.html">&lt;init&gt;</a><br/>
+<br/>
+<h1>&lt;init&gt;</h1>
+<a name="pl.treksoft.kvision.remote.Profile$&lt;init&gt;(kotlin.String, kotlin.collections.MutableMap((kotlin.String, )), kotlin.collections.MutableMap((kotlin.String, )), kotlin.collections.MutableSet((kotlin.String)), kotlin.collections.MutableSet((kotlin.String)), kotlin.String, kotlin.Boolean, kotlin.String)"></a>
+<code><span class="identifier">Profile</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.remote.Profile$<init>(kotlin.String, kotlin.collections.MutableMap((kotlin.String, )), kotlin.collections.MutableMap((kotlin.String, )), kotlin.collections.MutableSet((kotlin.String)), kotlin.collections.MutableSet((kotlin.String)), kotlin.String, kotlin.Boolean, kotlin.String)/id">id</span><span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">?</span>&nbsp;<span class="symbol">=</span>&nbsp;null<span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.remote.Profile$<init>(kotlin.String, kotlin.collections.MutableMap((kotlin.String, )), kotlin.collections.MutableMap((kotlin.String, )), kotlin.collections.MutableSet((kotlin.String)), kotlin.collections.MutableSet((kotlin.String)), kotlin.String, kotlin.Boolean, kotlin.String)/attributes">attributes</span><span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/-mutable-map/index.html"><span class="identifier">MutableMap</span></a><span class="symbol">&lt;</span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">,</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">&gt;</span>&nbsp;<span class="symbol">=</span>&nbsp;mutableMapOf()<span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.remote.Profile$<init>(kotlin.String, kotlin.collections.MutableMap((kotlin.String, )), kotlin.collections.MutableMap((kotlin.String, )), kotlin.collections.MutableSet((kotlin.String)), kotlin.collections.MutableSet((kotlin.String)), kotlin.String, kotlin.Boolean, kotlin.String)/authenticationAttributes">authenticationAttributes</span><span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/-mutable-map/index.html"><span class="identifier">MutableMap</span></a><span class="symbol">&lt;</span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">,</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">&gt;</span>&nbsp;<span class="symbol">=</span>&nbsp;mutableMapOf()<span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.remote.Profile$<init>(kotlin.String, kotlin.collections.MutableMap((kotlin.String, )), kotlin.collections.MutableMap((kotlin.String, )), kotlin.collections.MutableSet((kotlin.String)), kotlin.collections.MutableSet((kotlin.String)), kotlin.String, kotlin.Boolean, kotlin.String)/roles">roles</span><span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/-mutable-set/index.html"><span class="identifier">MutableSet</span></a><span class="symbol">&lt;</span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">&gt;</span>&nbsp;<span class="symbol">=</span>&nbsp;mutableSetOf()<span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.remote.Profile$<init>(kotlin.String, kotlin.collections.MutableMap((kotlin.String, )), kotlin.collections.MutableMap((kotlin.String, )), kotlin.collections.MutableSet((kotlin.String)), kotlin.collections.MutableSet((kotlin.String)), kotlin.String, kotlin.Boolean, kotlin.String)/permissions">permissions</span><span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/-mutable-set/index.html"><span class="identifier">MutableSet</span></a><span class="symbol">&lt;</span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">&gt;</span>&nbsp;<span class="symbol">=</span>&nbsp;mutableSetOf()<span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.remote.Profile$<init>(kotlin.String, kotlin.collections.MutableMap((kotlin.String, )), kotlin.collections.MutableMap((kotlin.String, )), kotlin.collections.MutableSet((kotlin.String)), kotlin.collections.MutableSet((kotlin.String)), kotlin.String, kotlin.Boolean, kotlin.String)/linkedId">linkedId</span><span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">?</span>&nbsp;<span class="symbol">=</span>&nbsp;null<span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.remote.Profile$<init>(kotlin.String, kotlin.collections.MutableMap((kotlin.String, )), kotlin.collections.MutableMap((kotlin.String, )), kotlin.collections.MutableSet((kotlin.String)), kotlin.collections.MutableSet((kotlin.String)), kotlin.String, kotlin.Boolean, kotlin.String)/remembered">remembered</span><span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html"><span class="identifier">Boolean</span></a>&nbsp;<span class="symbol">=</span>&nbsp;false<span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.remote.Profile$<init>(kotlin.String, kotlin.collections.MutableMap((kotlin.String, )), kotlin.collections.MutableMap((kotlin.String, )), kotlin.collections.MutableSet((kotlin.String)), kotlin.collections.MutableSet((kotlin.String)), kotlin.String, kotlin.Boolean, kotlin.String)/clientName">clientName</span><span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">?</span>&nbsp;<span class="symbol">=</span>&nbsp;null<span class="symbol">)</span></code>
+<p>A user profile.</p>
+</BODY>
+</HTML>
diff --git a/api1/pl.treksoft.kvision.remote/-profile/-profile/attributes.html b/api1/pl.treksoft.kvision.remote/-profile/-profile/attributes.html
new file mode 100644
index 00000000..76e29511
--- /dev/null
+++ b/api1/pl.treksoft.kvision.remote/-profile/-profile/attributes.html
@@ -0,0 +1,14 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>Profile.attributes - kvision</title>
+<link rel="stylesheet" href="../../../../style.css">
+</HEAD>
+<BODY>
+<a href="../../../index.html">kvision</a>&nbsp;/&nbsp;<a href="../../index.html">pl.treksoft.kvision.remote</a>&nbsp;/&nbsp;<a href="../index.html">Profile</a>&nbsp;/&nbsp;<a href="./attributes.html">attributes</a><br/>
+<br/>
+<h1>attributes</h1>
+<a name="pl.treksoft.kvision.remote.Profile$attributes"></a>
+<code><span class="keyword">val </span><span class="identifier">attributes</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/-mutable-map/index.html"><span class="identifier">MutableMap</span></a><span class="symbol">&lt;</span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">,</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">&gt;</span></code>
+</BODY>
+</HTML>
diff --git a/api1/pl.treksoft.kvision.remote/-profile/-profile/authentication-attributes.html b/api1/pl.treksoft.kvision.remote/-profile/-profile/authentication-attributes.html
new file mode 100644
index 00000000..3eacb792
--- /dev/null
+++ b/api1/pl.treksoft.kvision.remote/-profile/-profile/authentication-attributes.html
@@ -0,0 +1,14 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>Profile.authenticationAttributes - kvision</title>
+<link rel="stylesheet" href="../../../../style.css">
+</HEAD>
+<BODY>
+<a href="../../../index.html">kvision</a>&nbsp;/&nbsp;<a href="../../index.html">pl.treksoft.kvision.remote</a>&nbsp;/&nbsp;<a href="../index.html">Profile</a>&nbsp;/&nbsp;<a href="./authentication-attributes.html">authenticationAttributes</a><br/>
+<br/>
+<h1>authenticationAttributes</h1>
+<a name="pl.treksoft.kvision.remote.Profile$authenticationAttributes"></a>
+<code><span class="keyword">val </span><span class="identifier">authenticationAttributes</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/-mutable-map/index.html"><span class="identifier">MutableMap</span></a><span class="symbol">&lt;</span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">,</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">&gt;</span></code>
+</BODY>
+</HTML>
diff --git a/api1/pl.treksoft.kvision.remote/-profile/-profile/client-name.html b/api1/pl.treksoft.kvision.remote/-profile/-profile/client-name.html
new file mode 100644
index 00000000..f84a45e0
--- /dev/null
+++ b/api1/pl.treksoft.kvision.remote/-profile/-profile/client-name.html
@@ -0,0 +1,14 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>Profile.clientName - kvision</title>
+<link rel="stylesheet" href="../../../../style.css">
+</HEAD>
+<BODY>
+<a href="../../../index.html">kvision</a>&nbsp;/&nbsp;<a href="../../index.html">pl.treksoft.kvision.remote</a>&nbsp;/&nbsp;<a href="../index.html">Profile</a>&nbsp;/&nbsp;<a href="./client-name.html">clientName</a><br/>
+<br/>
+<h1>clientName</h1>
+<a name="pl.treksoft.kvision.remote.Profile$clientName"></a>
+<code><span class="keyword">val </span><span class="identifier">clientName</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">?</span></code>
+</BODY>
+</HTML>
diff --git a/api1/pl.treksoft.kvision.remote/-profile/-profile/display-name.html b/api1/pl.treksoft.kvision.remote/-profile/-profile/display-name.html
new file mode 100644
index 00000000..ed5b697d
--- /dev/null
+++ b/api1/pl.treksoft.kvision.remote/-profile/-profile/display-name.html
@@ -0,0 +1,14 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>Profile.displayName - kvision</title>
+<link rel="stylesheet" href="../../../../style.css">
+</HEAD>
+<BODY>
+<a href="../../../index.html">kvision</a>&nbsp;/&nbsp;<a href="../../index.html">pl.treksoft.kvision.remote</a>&nbsp;/&nbsp;<a href="../index.html">Profile</a>&nbsp;/&nbsp;<a href="./display-name.html">displayName</a><br/>
+<br/>
+<h1>displayName</h1>
+<a name="pl.treksoft.kvision.remote.Profile$displayName"></a>
+<code><span class="keyword">var </span><span class="identifier">displayName</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">?</span></code>
+</BODY>
+</HTML>
diff --git a/api1/pl.treksoft.kvision.remote/-profile/-profile/email.html b/api1/pl.treksoft.kvision.remote/-profile/-profile/email.html
new file mode 100644
index 00000000..bbf474c1
--- /dev/null
+++ b/api1/pl.treksoft.kvision.remote/-profile/-profile/email.html
@@ -0,0 +1,14 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>Profile.email - kvision</title>
+<link rel="stylesheet" href="../../../../style.css">
+</HEAD>
+<BODY>
+<a href="../../../index.html">kvision</a>&nbsp;/&nbsp;<a href="../../index.html">pl.treksoft.kvision.remote</a>&nbsp;/&nbsp;<a href="../index.html">Profile</a>&nbsp;/&nbsp;<a href="./email.html">email</a><br/>
+<br/>
+<h1>email</h1>
+<a name="pl.treksoft.kvision.remote.Profile$email"></a>
+<code><span class="keyword">var </span><span class="identifier">email</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">?</span></code>
+</BODY>
+</HTML>
diff --git a/api1/pl.treksoft.kvision.remote/-profile/-profile/family-name.html b/api1/pl.treksoft.kvision.remote/-profile/-profile/family-name.html
new file mode 100644
index 00000000..9ea4ea04
--- /dev/null
+++ b/api1/pl.treksoft.kvision.remote/-profile/-profile/family-name.html
@@ -0,0 +1,14 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>Profile.familyName - kvision</title>
+<link rel="stylesheet" href="../../../../style.css">
+</HEAD>
+<BODY>
+<a href="../../../index.html">kvision</a>&nbsp;/&nbsp;<a href="../../index.html">pl.treksoft.kvision.remote</a>&nbsp;/&nbsp;<a href="../index.html">Profile</a>&nbsp;/&nbsp;<a href="./family-name.html">familyName</a><br/>
+<br/>
+<h1>familyName</h1>
+<a name="pl.treksoft.kvision.remote.Profile$familyName"></a>
+<code><span class="keyword">var </span><span class="identifier">familyName</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">?</span></code>
+</BODY>
+</HTML>
diff --git a/api1/pl.treksoft.kvision.remote/-profile/-profile/first-name.html b/api1/pl.treksoft.kvision.remote/-profile/-profile/first-name.html
new file mode 100644
index 00000000..33c933aa
--- /dev/null
+++ b/api1/pl.treksoft.kvision.remote/-profile/-profile/first-name.html
@@ -0,0 +1,14 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>Profile.firstName - kvision</title>
+<link rel="stylesheet" href="../../../../style.css">
+</HEAD>
+<BODY>
+<a href="../../../index.html">kvision</a>&nbsp;/&nbsp;<a href="../../index.html">pl.treksoft.kvision.remote</a>&nbsp;/&nbsp;<a href="../index.html">Profile</a>&nbsp;/&nbsp;<a href="./first-name.html">firstName</a><br/>
+<br/>
+<h1>firstName</h1>
+<a name="pl.treksoft.kvision.remote.Profile$firstName"></a>
+<code><span class="keyword">var </span><span class="identifier">firstName</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">?</span></code>
+</BODY>
+</HTML>
diff --git a/api1/pl.treksoft.kvision.remote/-profile/-profile/id.html b/api1/pl.treksoft.kvision.remote/-profile/-profile/id.html
new file mode 100644
index 00000000..405fe309
--- /dev/null
+++ b/api1/pl.treksoft.kvision.remote/-profile/-profile/id.html
@@ -0,0 +1,14 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>Profile.id - kvision</title>
+<link rel="stylesheet" href="../../../../style.css">
+</HEAD>
+<BODY>
+<a href="../../../index.html">kvision</a>&nbsp;/&nbsp;<a href="../../index.html">pl.treksoft.kvision.remote</a>&nbsp;/&nbsp;<a href="../index.html">Profile</a>&nbsp;/&nbsp;<a href="./id.html">id</a><br/>
+<br/>
+<h1>id</h1>
+<a name="pl.treksoft.kvision.remote.Profile$id"></a>
+<code><span class="keyword">val </span><span class="identifier">id</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">?</span></code>
+</BODY>
+</HTML>
diff --git a/api1/pl.treksoft.kvision.remote/-profile/-profile/index.html b/api1/pl.treksoft.kvision.remote/-profile/-profile/index.html
new file mode 100644
index 00000000..c8c4fbe3
--- /dev/null
+++ b/api1/pl.treksoft.kvision.remote/-profile/-profile/index.html
@@ -0,0 +1,138 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>Profile - kvision</title>
+<link rel="stylesheet" href="../../../../style.css">
+</HEAD>
+<BODY>
+<a href="../../index.html">kvision</a>&nbsp;/&nbsp;<a href="../index.html">pl.treksoft.kvision.remote</a>&nbsp;/&nbsp;<a href="./index.html">Profile</a><br/>
+<br/>
+<h1>Profile</h1>
+<code><span class="keyword">actual</span> <span class="keyword">data</span> <span class="keyword">class </span><span class="identifier">Profile</span></code>
+<p>A user profile.</p>
+<h3>Constructors</h3>
+<table>
+<tbody>
+<tr>
+<td>
+<p><a href="-profile/-init-.html">&lt;init&gt;</a></p>
+</td>
+<td>
+<code><span class="identifier">Profile</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.remote.Profile$<init>(kotlin.String, kotlin.collections.MutableMap((kotlin.String, )), kotlin.collections.MutableMap((kotlin.String, )), kotlin.collections.MutableSet((kotlin.String)), kotlin.collections.MutableSet((kotlin.String)), kotlin.String, kotlin.Boolean, kotlin.String)/id">id</span><span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">?</span>&nbsp;<span class="symbol">=</span>&nbsp;null<span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.remote.Profile$<init>(kotlin.String, kotlin.collections.MutableMap((kotlin.String, )), kotlin.collections.MutableMap((kotlin.String, )), kotlin.collections.MutableSet((kotlin.String)), kotlin.collections.MutableSet((kotlin.String)), kotlin.String, kotlin.Boolean, kotlin.String)/attributes">attributes</span><span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/-mutable-map/index.html"><span class="identifier">MutableMap</span></a><span class="symbol">&lt;</span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">,</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">&gt;</span>&nbsp;<span class="symbol">=</span>&nbsp;mutableMapOf()<span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.remote.Profile$<init>(kotlin.String, kotlin.collections.MutableMap((kotlin.String, )), kotlin.collections.MutableMap((kotlin.String, )), kotlin.collections.MutableSet((kotlin.String)), kotlin.collections.MutableSet((kotlin.String)), kotlin.String, kotlin.Boolean, kotlin.String)/authenticationAttributes">authenticationAttributes</span><span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/-mutable-map/index.html"><span class="identifier">MutableMap</span></a><span class="symbol">&lt;</span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">,</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">&gt;</span>&nbsp;<span class="symbol">=</span>&nbsp;mutableMapOf()<span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.remote.Profile$<init>(kotlin.String, kotlin.collections.MutableMap((kotlin.String, )), kotlin.collections.MutableMap((kotlin.String, )), kotlin.collections.MutableSet((kotlin.String)), kotlin.collections.MutableSet((kotlin.String)), kotlin.String, kotlin.Boolean, kotlin.String)/roles">roles</span><span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/-mutable-set/index.html"><span class="identifier">MutableSet</span></a><span class="symbol">&lt;</span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">&gt;</span>&nbsp;<span class="symbol">=</span>&nbsp;mutableSetOf()<span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.remote.Profile$<init>(kotlin.String, kotlin.collections.MutableMap((kotlin.String, )), kotlin.collections.MutableMap((kotlin.String, )), kotlin.collections.MutableSet((kotlin.String)), kotlin.collections.MutableSet((kotlin.String)), kotlin.String, kotlin.Boolean, kotlin.String)/permissions">permissions</span><span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/-mutable-set/index.html"><span class="identifier">MutableSet</span></a><span class="symbol">&lt;</span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">&gt;</span>&nbsp;<span class="symbol">=</span>&nbsp;mutableSetOf()<span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.remote.Profile$<init>(kotlin.String, kotlin.collections.MutableMap((kotlin.String, )), kotlin.collections.MutableMap((kotlin.String, )), kotlin.collections.MutableSet((kotlin.String)), kotlin.collections.MutableSet((kotlin.String)), kotlin.String, kotlin.Boolean, kotlin.String)/linkedId">linkedId</span><span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">?</span>&nbsp;<span class="symbol">=</span>&nbsp;null<span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.remote.Profile$<init>(kotlin.String, kotlin.collections.MutableMap((kotlin.String, )), kotlin.collections.MutableMap((kotlin.String, )), kotlin.collections.MutableSet((kotlin.String)), kotlin.collections.MutableSet((kotlin.String)), kotlin.String, kotlin.Boolean, kotlin.String)/remembered">remembered</span><span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html"><span class="identifier">Boolean</span></a>&nbsp;<span class="symbol">=</span>&nbsp;false<span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.remote.Profile$<init>(kotlin.String, kotlin.collections.MutableMap((kotlin.String, )), kotlin.collections.MutableMap((kotlin.String, )), kotlin.collections.MutableSet((kotlin.String)), kotlin.collections.MutableSet((kotlin.String)), kotlin.String, kotlin.Boolean, kotlin.String)/clientName">clientName</span><span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">?</span>&nbsp;<span class="symbol">=</span>&nbsp;null<span class="symbol">)</span></code>
+<p>A user profile.</p>
+</td>
+</tr>
+</tbody>
+</table>
+<h3>Properties</h3>
+<table>
+<tbody>
+<tr>
+<td>
+<p><a href="-profile/attributes.html">attributes</a></p>
+</td>
+<td>
+<code><span class="keyword">val </span><span class="identifier">attributes</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/-mutable-map/index.html"><span class="identifier">MutableMap</span></a><span class="symbol">&lt;</span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">,</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">&gt;</span></code></td>
+</tr>
+<tr>
+<td>
+<p><a href="-profile/authentication-attributes.html">authenticationAttributes</a></p>
+</td>
+<td>
+<code><span class="keyword">val </span><span class="identifier">authenticationAttributes</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/-mutable-map/index.html"><span class="identifier">MutableMap</span></a><span class="symbol">&lt;</span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">,</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">&gt;</span></code></td>
+</tr>
+<tr>
+<td>
+<p><a href="-profile/client-name.html">clientName</a></p>
+</td>
+<td>
+<code><span class="keyword">val </span><span class="identifier">clientName</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">?</span></code></td>
+</tr>
+<tr>
+<td>
+<p><a href="-profile/display-name.html">displayName</a></p>
+</td>
+<td>
+<code><span class="keyword">var </span><span class="identifier">displayName</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">?</span></code></td>
+</tr>
+<tr>
+<td>
+<p><a href="-profile/email.html">email</a></p>
+</td>
+<td>
+<code><span class="keyword">var </span><span class="identifier">email</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">?</span></code></td>
+</tr>
+<tr>
+<td>
+<p><a href="-profile/family-name.html">familyName</a></p>
+</td>
+<td>
+<code><span class="keyword">var </span><span class="identifier">familyName</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">?</span></code></td>
+</tr>
+<tr>
+<td>
+<p><a href="-profile/first-name.html">firstName</a></p>
+</td>
+<td>
+<code><span class="keyword">var </span><span class="identifier">firstName</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">?</span></code></td>
+</tr>
+<tr>
+<td>
+<p><a href="-profile/id.html">id</a></p>
+</td>
+<td>
+<code><span class="keyword">val </span><span class="identifier">id</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">?</span></code></td>
+</tr>
+<tr>
+<td>
+<p><a href="-profile/linked-id.html">linkedId</a></p>
+</td>
+<td>
+<code><span class="keyword">val </span><span class="identifier">linkedId</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">?</span></code></td>
+</tr>
+<tr>
+<td>
+<p><a href="-profile/permissions.html">permissions</a></p>
+</td>
+<td>
+<code><span class="keyword">val </span><span class="identifier">permissions</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/-mutable-set/index.html"><span class="identifier">MutableSet</span></a><span class="symbol">&lt;</span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">&gt;</span></code></td>
+</tr>
+<tr>
+<td>
+<p><a href="-profile/picture-url.html">pictureUrl</a></p>
+</td>
+<td>
+<code><span class="keyword">var </span><span class="identifier">pictureUrl</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">?</span></code></td>
+</tr>
+<tr>
+<td>
+<p><a href="-profile/profile-url.html">profileUrl</a></p>
+</td>
+<td>
+<code><span class="keyword">var </span><span class="identifier">profileUrl</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">?</span></code></td>
+</tr>
+<tr>
+<td>
+<p><a href="-profile/remembered.html">remembered</a></p>
+</td>
+<td>
+<code><span class="keyword">val </span><span class="identifier">remembered</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html"><span class="identifier">Boolean</span></a></code></td>
+</tr>
+<tr>
+<td>
+<p><a href="-profile/roles.html">roles</a></p>
+</td>
+<td>
+<code><span class="keyword">val </span><span class="identifier">roles</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/-mutable-set/index.html"><span class="identifier">MutableSet</span></a><span class="symbol">&lt;</span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">&gt;</span></code></td>
+</tr>
+<tr>
+<td>
+<p><a href="-profile/username.html">username</a></p>
+</td>
+<td>
+<code><span class="keyword">var </span><span class="identifier">username</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">?</span></code></td>
+</tr>
+</tbody>
+</table>
+</BODY>
+</HTML>
diff --git a/api1/pl.treksoft.kvision.remote/-profile/-profile/linked-id.html b/api1/pl.treksoft.kvision.remote/-profile/-profile/linked-id.html
new file mode 100644
index 00000000..93772631
--- /dev/null
+++ b/api1/pl.treksoft.kvision.remote/-profile/-profile/linked-id.html
@@ -0,0 +1,14 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>Profile.linkedId - kvision</title>
+<link rel="stylesheet" href="../../../../style.css">
+</HEAD>
+<BODY>
+<a href="../../../index.html">kvision</a>&nbsp;/&nbsp;<a href="../../index.html">pl.treksoft.kvision.remote</a>&nbsp;/&nbsp;<a href="../index.html">Profile</a>&nbsp;/&nbsp;<a href="./linked-id.html">linkedId</a><br/>
+<br/>
+<h1>linkedId</h1>
+<a name="pl.treksoft.kvision.remote.Profile$linkedId"></a>
+<code><span class="keyword">val </span><span class="identifier">linkedId</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">?</span></code>
+</BODY>
+</HTML>
diff --git a/api1/pl.treksoft.kvision.remote/-profile/-profile/permissions.html b/api1/pl.treksoft.kvision.remote/-profile/-profile/permissions.html
new file mode 100644
index 00000000..286422b0
--- /dev/null
+++ b/api1/pl.treksoft.kvision.remote/-profile/-profile/permissions.html
@@ -0,0 +1,14 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>Profile.permissions - kvision</title>
+<link rel="stylesheet" href="../../../../style.css">
+</HEAD>
+<BODY>
+<a href="../../../index.html">kvision</a>&nbsp;/&nbsp;<a href="../../index.html">pl.treksoft.kvision.remote</a>&nbsp;/&nbsp;<a href="../index.html">Profile</a>&nbsp;/&nbsp;<a href="./permissions.html">permissions</a><br/>
+<br/>
+<h1>permissions</h1>
+<a name="pl.treksoft.kvision.remote.Profile$permissions"></a>
+<code><span class="keyword">val </span><span class="identifier">permissions</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/-mutable-set/index.html"><span class="identifier">MutableSet</span></a><span class="symbol">&lt;</span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">&gt;</span></code>
+</BODY>
+</HTML>
diff --git a/api1/pl.treksoft.kvision.remote/-profile/-profile/picture-url.html b/api1/pl.treksoft.kvision.remote/-profile/-profile/picture-url.html
new file mode 100644
index 00000000..b2c35256
--- /dev/null
+++ b/api1/pl.treksoft.kvision.remote/-profile/-profile/picture-url.html
@@ -0,0 +1,14 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>Profile.pictureUrl - kvision</title>
+<link rel="stylesheet" href="../../../../style.css">
+</HEAD>
+<BODY>
+<a href="../../../index.html">kvision</a>&nbsp;/&nbsp;<a href="../../index.html">pl.treksoft.kvision.remote</a>&nbsp;/&nbsp;<a href="../index.html">Profile</a>&nbsp;/&nbsp;<a href="./picture-url.html">pictureUrl</a><br/>
+<br/>
+<h1>pictureUrl</h1>
+<a name="pl.treksoft.kvision.remote.Profile$pictureUrl"></a>
+<code><span class="keyword">var </span><span class="identifier">pictureUrl</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">?</span></code>
+</BODY>
+</HTML>
diff --git a/api1/pl.treksoft.kvision.remote/-profile/-profile/profile-url.html b/api1/pl.treksoft.kvision.remote/-profile/-profile/profile-url.html
new file mode 100644
index 00000000..00370b2e
--- /dev/null
+++ b/api1/pl.treksoft.kvision.remote/-profile/-profile/profile-url.html
@@ -0,0 +1,14 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>Profile.profileUrl - kvision</title>
+<link rel="stylesheet" href="../../../../style.css">
+</HEAD>
+<BODY>
+<a href="../../../index.html">kvision</a>&nbsp;/&nbsp;<a href="../../index.html">pl.treksoft.kvision.remote</a>&nbsp;/&nbsp;<a href="../index.html">Profile</a>&nbsp;/&nbsp;<a href="./profile-url.html">profileUrl</a><br/>
+<br/>
+<h1>profileUrl</h1>
+<a name="pl.treksoft.kvision.remote.Profile$profileUrl"></a>
+<code><span class="keyword">var </span><span class="identifier">profileUrl</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">?</span></code>
+</BODY>
+</HTML>
diff --git a/api1/pl.treksoft.kvision.remote/-profile/-profile/remembered.html b/api1/pl.treksoft.kvision.remote/-profile/-profile/remembered.html
new file mode 100644
index 00000000..8b4e6caf
--- /dev/null
+++ b/api1/pl.treksoft.kvision.remote/-profile/-profile/remembered.html
@@ -0,0 +1,14 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>Profile.remembered - kvision</title>
+<link rel="stylesheet" href="../../../../style.css">
+</HEAD>
+<BODY>
+<a href="../../../index.html">kvision</a>&nbsp;/&nbsp;<a href="../../index.html">pl.treksoft.kvision.remote</a>&nbsp;/&nbsp;<a href="../index.html">Profile</a>&nbsp;/&nbsp;<a href="./remembered.html">remembered</a><br/>
+<br/>
+<h1>remembered</h1>
+<a name="pl.treksoft.kvision.remote.Profile$remembered"></a>
+<code><span class="keyword">val </span><span class="identifier">remembered</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html"><span class="identifier">Boolean</span></a></code>
+</BODY>
+</HTML>
diff --git a/api1/pl.treksoft.kvision.remote/-profile/-profile/roles.html b/api1/pl.treksoft.kvision.remote/-profile/-profile/roles.html
new file mode 100644
index 00000000..90d41e0b
--- /dev/null
+++ b/api1/pl.treksoft.kvision.remote/-profile/-profile/roles.html
@@ -0,0 +1,14 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>Profile.roles - kvision</title>
+<link rel="stylesheet" href="../../../../style.css">
+</HEAD>
+<BODY>
+<a href="../../../index.html">kvision</a>&nbsp;/&nbsp;<a href="../../index.html">pl.treksoft.kvision.remote</a>&nbsp;/&nbsp;<a href="../index.html">Profile</a>&nbsp;/&nbsp;<a href="./roles.html">roles</a><br/>
+<br/>
+<h1>roles</h1>
+<a name="pl.treksoft.kvision.remote.Profile$roles"></a>
+<code><span class="keyword">val </span><span class="identifier">roles</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/-mutable-set/index.html"><span class="identifier">MutableSet</span></a><span class="symbol">&lt;</span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">&gt;</span></code>
+</BODY>
+</HTML>
diff --git a/api1/pl.treksoft.kvision.remote/-profile/-profile/username.html b/api1/pl.treksoft.kvision.remote/-profile/-profile/username.html
new file mode 100644
index 00000000..c74044f4
--- /dev/null
+++ b/api1/pl.treksoft.kvision.remote/-profile/-profile/username.html
@@ -0,0 +1,14 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>Profile.username - kvision</title>
+<link rel="stylesheet" href="../../../../style.css">
+</HEAD>
+<BODY>
+<a href="../../../index.html">kvision</a>&nbsp;/&nbsp;<a href="../../index.html">pl.treksoft.kvision.remote</a>&nbsp;/&nbsp;<a href="../index.html">Profile</a>&nbsp;/&nbsp;<a href="./username.html">username</a><br/>
+<br/>
+<h1>username</h1>
+<a name="pl.treksoft.kvision.remote.Profile$username"></a>
+<code><span class="keyword">var </span><span class="identifier">username</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">?</span></code>
+</BODY>
+</HTML>
diff --git a/api1/pl.treksoft.kvision.remote/-profile/index.html b/api1/pl.treksoft.kvision.remote/-profile/index.html
new file mode 100644
index 00000000..cbb24bda
--- /dev/null
+++ b/api1/pl.treksoft.kvision.remote/-profile/index.html
@@ -0,0 +1,140 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>pl.treksoft.kvision.remote.Profile - kvision</title>
+<link rel="stylesheet" href="../../../style.css">
+</HEAD>
+<BODY>
+<a href="../../index.html">kvision</a>&nbsp;/&nbsp;<a href="../index.html">pl.treksoft.kvision.remote</a>&nbsp;/&nbsp;<a href="./index.html">Profile</a><br/>
+<br/>
+<h1>Profile</h1>
+<code><span class="keyword">actual</span> <span class="keyword">typealias </span><span class="identifier">Profile</span>&nbsp;<span class="symbol">=</span>&nbsp;<span class="identifier">&lt;ERROR CLASS&gt;</span></code>
+<p>A user profile.</p>
+<code><span class="keyword">actual</span> <span class="keyword">data</span> <span class="keyword">class </span><span class="identifier">Profile</span></code>
+<p>A user profile.</p>
+<h3>Constructors</h3>
+<table>
+<tbody>
+<tr>
+<td>
+<p><a href="-profile/-init-.html">&lt;init&gt;</a></p>
+</td>
+<td>
+<code><span class="identifier">Profile</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.remote.Profile$<init>(kotlin.String, kotlin.collections.MutableMap((kotlin.String, )), kotlin.collections.MutableMap((kotlin.String, )), kotlin.collections.MutableSet((kotlin.String)), kotlin.collections.MutableSet((kotlin.String)), kotlin.String, kotlin.Boolean, kotlin.String)/id">id</span><span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">?</span>&nbsp;<span class="symbol">=</span>&nbsp;null<span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.remote.Profile$<init>(kotlin.String, kotlin.collections.MutableMap((kotlin.String, )), kotlin.collections.MutableMap((kotlin.String, )), kotlin.collections.MutableSet((kotlin.String)), kotlin.collections.MutableSet((kotlin.String)), kotlin.String, kotlin.Boolean, kotlin.String)/attributes">attributes</span><span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/-mutable-map/index.html"><span class="identifier">MutableMap</span></a><span class="symbol">&lt;</span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">,</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">&gt;</span>&nbsp;<span class="symbol">=</span>&nbsp;mutableMapOf()<span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.remote.Profile$<init>(kotlin.String, kotlin.collections.MutableMap((kotlin.String, )), kotlin.collections.MutableMap((kotlin.String, )), kotlin.collections.MutableSet((kotlin.String)), kotlin.collections.MutableSet((kotlin.String)), kotlin.String, kotlin.Boolean, kotlin.String)/authenticationAttributes">authenticationAttributes</span><span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/-mutable-map/index.html"><span class="identifier">MutableMap</span></a><span class="symbol">&lt;</span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">,</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">&gt;</span>&nbsp;<span class="symbol">=</span>&nbsp;mutableMapOf()<span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.remote.Profile$<init>(kotlin.String, kotlin.collections.MutableMap((kotlin.String, )), kotlin.collections.MutableMap((kotlin.String, )), kotlin.collections.MutableSet((kotlin.String)), kotlin.collections.MutableSet((kotlin.String)), kotlin.String, kotlin.Boolean, kotlin.String)/roles">roles</span><span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/-mutable-set/index.html"><span class="identifier">MutableSet</span></a><span class="symbol">&lt;</span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">&gt;</span>&nbsp;<span class="symbol">=</span>&nbsp;mutableSetOf()<span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.remote.Profile$<init>(kotlin.String, kotlin.collections.MutableMap((kotlin.String, )), kotlin.collections.MutableMap((kotlin.String, )), kotlin.collections.MutableSet((kotlin.String)), kotlin.collections.MutableSet((kotlin.String)), kotlin.String, kotlin.Boolean, kotlin.String)/permissions">permissions</span><span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/-mutable-set/index.html"><span class="identifier">MutableSet</span></a><span class="symbol">&lt;</span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">&gt;</span>&nbsp;<span class="symbol">=</span>&nbsp;mutableSetOf()<span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.remote.Profile$<init>(kotlin.String, kotlin.collections.MutableMap((kotlin.String, )), kotlin.collections.MutableMap((kotlin.String, )), kotlin.collections.MutableSet((kotlin.String)), kotlin.collections.MutableSet((kotlin.String)), kotlin.String, kotlin.Boolean, kotlin.String)/linkedId">linkedId</span><span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">?</span>&nbsp;<span class="symbol">=</span>&nbsp;null<span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.remote.Profile$<init>(kotlin.String, kotlin.collections.MutableMap((kotlin.String, )), kotlin.collections.MutableMap((kotlin.String, )), kotlin.collections.MutableSet((kotlin.String)), kotlin.collections.MutableSet((kotlin.String)), kotlin.String, kotlin.Boolean, kotlin.String)/remembered">remembered</span><span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html"><span class="identifier">Boolean</span></a>&nbsp;<span class="symbol">=</span>&nbsp;false<span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.remote.Profile$<init>(kotlin.String, kotlin.collections.MutableMap((kotlin.String, )), kotlin.collections.MutableMap((kotlin.String, )), kotlin.collections.MutableSet((kotlin.String)), kotlin.collections.MutableSet((kotlin.String)), kotlin.String, kotlin.Boolean, kotlin.String)/clientName">clientName</span><span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">?</span>&nbsp;<span class="symbol">=</span>&nbsp;null<span class="symbol">)</span></code>
+<p>A user profile.</p>
+</td>
+</tr>
+</tbody>
+</table>
+<h3>Properties</h3>
+<table>
+<tbody>
+<tr>
+<td>
+<p><a href="-profile/attributes.html">attributes</a></p>
+</td>
+<td>
+<code><span class="keyword">val </span><span class="identifier">attributes</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/-mutable-map/index.html"><span class="identifier">MutableMap</span></a><span class="symbol">&lt;</span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">,</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">&gt;</span></code></td>
+</tr>
+<tr>
+<td>
+<p><a href="-profile/authentication-attributes.html">authenticationAttributes</a></p>
+</td>
+<td>
+<code><span class="keyword">val </span><span class="identifier">authenticationAttributes</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/-mutable-map/index.html"><span class="identifier">MutableMap</span></a><span class="symbol">&lt;</span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">,</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">&gt;</span></code></td>
+</tr>
+<tr>
+<td>
+<p><a href="-profile/client-name.html">clientName</a></p>
+</td>
+<td>
+<code><span class="keyword">val </span><span class="identifier">clientName</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">?</span></code></td>
+</tr>
+<tr>
+<td>
+<p><a href="-profile/display-name.html">displayName</a></p>
+</td>
+<td>
+<code><span class="keyword">var </span><span class="identifier">displayName</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">?</span></code></td>
+</tr>
+<tr>
+<td>
+<p><a href="-profile/email.html">email</a></p>
+</td>
+<td>
+<code><span class="keyword">var </span><span class="identifier">email</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">?</span></code></td>
+</tr>
+<tr>
+<td>
+<p><a href="-profile/family-name.html">familyName</a></p>
+</td>
+<td>
+<code><span class="keyword">var </span><span class="identifier">familyName</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">?</span></code></td>
+</tr>
+<tr>
+<td>
+<p><a href="-profile/first-name.html">firstName</a></p>
+</td>
+<td>
+<code><span class="keyword">var </span><span class="identifier">firstName</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">?</span></code></td>
+</tr>
+<tr>
+<td>
+<p><a href="-profile/id.html">id</a></p>
+</td>
+<td>
+<code><span class="keyword">val </span><span class="identifier">id</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">?</span></code></td>
+</tr>
+<tr>
+<td>
+<p><a href="-profile/linked-id.html">linkedId</a></p>
+</td>
+<td>
+<code><span class="keyword">val </span><span class="identifier">linkedId</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">?</span></code></td>
+</tr>
+<tr>
+<td>
+<p><a href="-profile/permissions.html">permissions</a></p>
+</td>
+<td>
+<code><span class="keyword">val </span><span class="identifier">permissions</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/-mutable-set/index.html"><span class="identifier">MutableSet</span></a><span class="symbol">&lt;</span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">&gt;</span></code></td>
+</tr>
+<tr>
+<td>
+<p><a href="-profile/picture-url.html">pictureUrl</a></p>
+</td>
+<td>
+<code><span class="keyword">var </span><span class="identifier">pictureUrl</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">?</span></code></td>
+</tr>
+<tr>
+<td>
+<p><a href="-profile/profile-url.html">profileUrl</a></p>
+</td>
+<td>
+<code><span class="keyword">var </span><span class="identifier">profileUrl</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">?</span></code></td>
+</tr>
+<tr>
+<td>
+<p><a href="-profile/remembered.html">remembered</a></p>
+</td>
+<td>
+<code><span class="keyword">val </span><span class="identifier">remembered</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html"><span class="identifier">Boolean</span></a></code></td>
+</tr>
+<tr>
+<td>
+<p><a href="-profile/roles.html">roles</a></p>
+</td>
+<td>
+<code><span class="keyword">val </span><span class="identifier">roles</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/-mutable-set/index.html"><span class="identifier">MutableSet</span></a><span class="symbol">&lt;</span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">&gt;</span></code></td>
+</tr>
+<tr>
+<td>
+<p><a href="-profile/username.html">username</a></p>
+</td>
+<td>
+<code><span class="keyword">var </span><span class="identifier">username</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">?</span></code></td>
+</tr>
+</tbody>
+</table>
+</BODY>
+</HTML>
diff --git a/api1/pl.treksoft.kvision.remote/-remote-agent/find-enum-value.html b/api1/pl.treksoft.kvision.remote/-remote-agent/find-enum-value.html
new file mode 100644
index 00000000..85de1c51
--- /dev/null
+++ b/api1/pl.treksoft.kvision.remote/-remote-agent/find-enum-value.html
@@ -0,0 +1,14 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>RemoteAgent.findEnumValue - kvision</title>
+<link rel="stylesheet" href="../../../style.css">
+</HEAD>
+<BODY>
+<a href="../../index.html">kvision</a>&nbsp;/&nbsp;<a href="../index.html">pl.treksoft.kvision.remote</a>&nbsp;/&nbsp;<a href="index.html">RemoteAgent</a>&nbsp;/&nbsp;<a href="./find-enum-value.html">findEnumValue</a><br/>
+<br/>
+<h1>findEnumValue</h1>
+<a name="pl.treksoft.kvision.remote.RemoteAgent$findEnumValue(kotlin.reflect.KClass((kotlin.Any)), kotlin.String)"></a>
+<code><span class="keyword">open</span> <span class="keyword">fun </span><span class="identifier">findEnumValue</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.remote.RemoteAgent$findEnumValue(kotlin.reflect.KClass((kotlin.Any)), kotlin.String)/kClass">kClass</span><span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.reflect/-k-class/index.html"><span class="identifier">KClass</span></a><span class="symbol">&lt;</span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-any/index.html"><span class="identifier">Any</span></a><span class="symbol">&gt;</span><span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.remote.RemoteAgent$findEnumValue(kotlin.reflect.KClass((kotlin.Any)), kotlin.String)/value">value</span><span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">)</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-any/index.html"><span class="identifier">Any</span></a><span class="symbol">?</span></code>
+</BODY>
+</HTML>
diff --git a/api1/pl.treksoft.kvision.remote/-remote-agent/index.html b/api1/pl.treksoft.kvision.remote/-remote-agent/index.html
new file mode 100644
index 00000000..e2a03476
--- /dev/null
+++ b/api1/pl.treksoft.kvision.remote/-remote-agent/index.html
@@ -0,0 +1,54 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>RemoteAgent - kvision</title>
+<link rel="stylesheet" href="../../../style.css">
+</HEAD>
+<BODY>
+<a href="../../index.html">kvision</a>&nbsp;/&nbsp;<a href="../index.html">pl.treksoft.kvision.remote</a>&nbsp;/&nbsp;<a href="./index.html">RemoteAgent</a><br/>
+<br/>
+<h1>RemoteAgent</h1>
+<code><span class="keyword">interface </span><span class="identifier">RemoteAgent</span></code>
+<p>Interface for client side agent for JSON-RPC remote calls.</p>
+<h3>Functions</h3>
+<table>
+<tbody>
+<tr>
+<td>
+<p><a href="find-enum-value.html">findEnumValue</a></p>
+</td>
+<td>
+<code><span class="keyword">open</span> <span class="keyword">fun </span><span class="identifier">findEnumValue</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.remote.RemoteAgent$findEnumValue(kotlin.reflect.KClass((kotlin.Any)), kotlin.String)/kClass">kClass</span><span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.reflect/-k-class/index.html"><span class="identifier">KClass</span></a><span class="symbol">&lt;</span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-any/index.html"><span class="identifier">Any</span></a><span class="symbol">&gt;</span><span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.remote.RemoteAgent$findEnumValue(kotlin.reflect.KClass((kotlin.Any)), kotlin.String)/value">value</span><span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">)</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-any/index.html"><span class="identifier">Any</span></a><span class="symbol">?</span></code></td>
+</tr>
+</tbody>
+</table>
+<h3>Extension Functions</h3>
+<table>
+<tbody>
+<tr>
+<td>
+<p><a href="../../pl.treksoft.kvision.utils/kotlin.-any/create-instance.html">createInstance</a></p>
+</td>
+<td>
+<code><span class="keyword">fun </span><span class="symbol">&lt;</span><span class="identifier">T</span><span class="symbol">&gt;</span> <a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-any/index.html"><span class="identifier">Any</span></a><span class="symbol">?</span><span class="symbol">.</span><span class="identifier">createInstance</span><span class="symbol">(</span><span class="keyword">vararg</span> <span class="identifier" id="pl.treksoft.kvision.utils$createInstance(kotlin.Any, kotlin.Array((kotlin.Any)))/args">args</span><span class="symbol">:</span>&nbsp;<span class="keyword">dynamic</span><span class="symbol">)</span><span class="symbol">: </span><a href="../../pl.treksoft.kvision.utils/kotlin.-any/create-instance.html#T"><span class="identifier">T</span></a></code>
+<p>Helper function for creating JavaScript objects from dynamic constructors.</p>
+</td>
+</tr>
+</tbody>
+</table>
+<h3>Inheritors</h3>
+<table>
+<tbody>
+<tr>
+<td>
+<p><a href="../-k-v-remote-agent/index.html">KVRemoteAgent</a></p>
+</td>
+<td>
+<code><span class="keyword">open</span> <span class="keyword">class </span><span class="identifier">KVRemoteAgent</span><span class="symbol">&lt;</span><span class="identifier">T</span>&nbsp;<span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-any/index.html"><span class="identifier">Any</span></a><span class="symbol">&gt;</span>&nbsp;<span class="symbol">:</span>&nbsp;<a href="./index.html"><span class="identifier">RemoteAgent</span></a></code>
+<p>Client side agent for JSON-RPC remote calls.</p>
+</td>
+</tr>
+</tbody>
+</table>
+</BODY>
+</HTML>
diff --git a/api1/pl.treksoft.kvision.remote/-security-exception/-init-.html b/api1/pl.treksoft.kvision.remote/-security-exception/-init-.html
new file mode 100644
index 00000000..d959cf47
--- /dev/null
+++ b/api1/pl.treksoft.kvision.remote/-security-exception/-init-.html
@@ -0,0 +1,15 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>SecurityException.<init> - kvision</title>
+<link rel="stylesheet" href="../../../style.css">
+</HEAD>
+<BODY>
+<a href="../../index.html">kvision</a>&nbsp;/&nbsp;<a href="../index.html">pl.treksoft.kvision.remote</a>&nbsp;/&nbsp;<a href="index.html">SecurityException</a>&nbsp;/&nbsp;<a href="./-init-.html">&lt;init&gt;</a><br/>
+<br/>
+<h1>&lt;init&gt;</h1>
+<a name="pl.treksoft.kvision.remote.SecurityException$&lt;init&gt;(kotlin.String)"></a>
+<code><span class="identifier">SecurityException</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.remote.SecurityException$<init>(kotlin.String)/message">message</span><span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">)</span></code>
+<p>A security exception.</p>
+</BODY>
+</HTML>
diff --git a/api1/pl.treksoft.kvision.remote/-security-exception/index.html b/api1/pl.treksoft.kvision.remote/-security-exception/index.html
new file mode 100644
index 00000000..3a2a7270
--- /dev/null
+++ b/api1/pl.treksoft.kvision.remote/-security-exception/index.html
@@ -0,0 +1,42 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>SecurityException - kvision</title>
+<link rel="stylesheet" href="../../../style.css">
+</HEAD>
+<BODY>
+<a href="../../index.html">kvision</a>&nbsp;/&nbsp;<a href="../index.html">pl.treksoft.kvision.remote</a>&nbsp;/&nbsp;<a href="./index.html">SecurityException</a><br/>
+<br/>
+<h1>SecurityException</h1>
+<code><span class="keyword">class </span><span class="identifier">SecurityException</span>&nbsp;<span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-exception/index.html"><span class="identifier">Exception</span></a></code>
+<p>A security exception.</p>
+<h3>Constructors</h3>
+<table>
+<tbody>
+<tr>
+<td>
+<p><a href="-init-.html">&lt;init&gt;</a></p>
+</td>
+<td>
+<code><span class="identifier">SecurityException</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.remote.SecurityException$<init>(kotlin.String)/message">message</span><span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">)</span></code>
+<p>A security exception.</p>
+</td>
+</tr>
+</tbody>
+</table>
+<h3>Extension Functions</h3>
+<table>
+<tbody>
+<tr>
+<td>
+<p><a href="../../pl.treksoft.kvision.utils/kotlin.-any/create-instance.html">createInstance</a></p>
+</td>
+<td>
+<code><span class="keyword">fun </span><span class="symbol">&lt;</span><span class="identifier">T</span><span class="symbol">&gt;</span> <a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-any/index.html"><span class="identifier">Any</span></a><span class="symbol">?</span><span class="symbol">.</span><span class="identifier">createInstance</span><span class="symbol">(</span><span class="keyword">vararg</span> <span class="identifier" id="pl.treksoft.kvision.utils$createInstance(kotlin.Any, kotlin.Array((kotlin.Any)))/args">args</span><span class="symbol">:</span>&nbsp;<span class="keyword">dynamic</span><span class="symbol">)</span><span class="symbol">: </span><a href="../../pl.treksoft.kvision.utils/kotlin.-any/create-instance.html#T"><span class="identifier">T</span></a></code>
+<p>Helper function for creating JavaScript objects from dynamic constructors.</p>
+</td>
+</tr>
+</tbody>
+</table>
+</BODY>
+</HTML>
diff --git a/api1/pl.treksoft.kvision.remote/-security-mgr/-init-.html b/api1/pl.treksoft.kvision.remote/-security-mgr/-init-.html
new file mode 100644
index 00000000..d276e99a
--- /dev/null
+++ b/api1/pl.treksoft.kvision.remote/-security-mgr/-init-.html
@@ -0,0 +1,15 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>SecurityMgr.<init> - kvision</title>
+<link rel="stylesheet" href="../../../style.css">
+</HEAD>
+<BODY>
+<a href="../../index.html">kvision</a>&nbsp;/&nbsp;<a href="../index.html">pl.treksoft.kvision.remote</a>&nbsp;/&nbsp;<a href="index.html">SecurityMgr</a>&nbsp;/&nbsp;<a href="./-init-.html">&lt;init&gt;</a><br/>
+<br/>
+<h1>&lt;init&gt;</h1>
+<a name="pl.treksoft.kvision.remote.SecurityMgr$&lt;init&gt;()"></a>
+<code><span class="identifier">SecurityMgr</span><span class="symbol">(</span><span class="symbol">)</span></code>
+<p>Form login dispatcher.</p>
+</BODY>
+</HTML>
diff --git a/api1/pl.treksoft.kvision.remote/-security-mgr/after-error.html b/api1/pl.treksoft.kvision.remote/-security-mgr/after-error.html
new file mode 100644
index 00000000..68c357da
--- /dev/null
+++ b/api1/pl.treksoft.kvision.remote/-security-mgr/after-error.html
@@ -0,0 +1,15 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>SecurityMgr.afterError - kvision</title>
+<link rel="stylesheet" href="../../../style.css">
+</HEAD>
+<BODY>
+<a href="../../index.html">kvision</a>&nbsp;/&nbsp;<a href="../index.html">pl.treksoft.kvision.remote</a>&nbsp;/&nbsp;<a href="index.html">SecurityMgr</a>&nbsp;/&nbsp;<a href="./after-error.html">afterError</a><br/>
+<br/>
+<h1>afterError</h1>
+<a name="pl.treksoft.kvision.remote.SecurityMgr$afterError()"></a>
+<code><span class="keyword">open</span> <span class="keyword">suspend</span> <span class="keyword">fun </span><span class="identifier">afterError</span><span class="symbol">(</span><span class="symbol">)</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html"><span class="identifier">Unit</span></a></code>
+<p>Method called after error.</p>
+</BODY>
+</HTML>
diff --git a/api1/pl.treksoft.kvision.remote/-security-mgr/after-login.html b/api1/pl.treksoft.kvision.remote/-security-mgr/after-login.html
new file mode 100644
index 00000000..f018290f
--- /dev/null
+++ b/api1/pl.treksoft.kvision.remote/-security-mgr/after-login.html
@@ -0,0 +1,15 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>SecurityMgr.afterLogin - kvision</title>
+<link rel="stylesheet" href="../../../style.css">
+</HEAD>
+<BODY>
+<a href="../../index.html">kvision</a>&nbsp;/&nbsp;<a href="../index.html">pl.treksoft.kvision.remote</a>&nbsp;/&nbsp;<a href="index.html">SecurityMgr</a>&nbsp;/&nbsp;<a href="./after-login.html">afterLogin</a><br/>
+<br/>
+<h1>afterLogin</h1>
+<a name="pl.treksoft.kvision.remote.SecurityMgr$afterLogin()"></a>
+<code><span class="keyword">open</span> <span class="keyword">suspend</span> <span class="keyword">fun </span><span class="identifier">afterLogin</span><span class="symbol">(</span><span class="symbol">)</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html"><span class="identifier">Unit</span></a></code>
+<p>Method called after successful login.</p>
+</BODY>
+</HTML>
diff --git a/api1/pl.treksoft.kvision.remote/-security-mgr/index.html b/api1/pl.treksoft.kvision.remote/-security-mgr/index.html
new file mode 100644
index 00000000..625ecad1
--- /dev/null
+++ b/api1/pl.treksoft.kvision.remote/-security-mgr/index.html
@@ -0,0 +1,83 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>SecurityMgr - kvision</title>
+<link rel="stylesheet" href="../../../style.css">
+</HEAD>
+<BODY>
+<a href="../../index.html">kvision</a>&nbsp;/&nbsp;<a href="../index.html">pl.treksoft.kvision.remote</a>&nbsp;/&nbsp;<a href="./index.html">SecurityMgr</a><br/>
+<br/>
+<h1>SecurityMgr</h1>
+<code><span class="keyword">abstract</span> <span class="keyword">class </span><span class="identifier">SecurityMgr</span></code>
+<p>Form login dispatcher.</p>
+<h3>Constructors</h3>
+<table>
+<tbody>
+<tr>
+<td>
+<p><a href="-init-.html">&lt;init&gt;</a></p>
+</td>
+<td>
+<code><span class="identifier">SecurityMgr</span><span class="symbol">(</span><span class="symbol">)</span></code>
+<p>Form login dispatcher.</p>
+</td>
+</tr>
+</tbody>
+</table>
+<h3>Functions</h3>
+<table>
+<tbody>
+<tr>
+<td>
+<p><a href="after-error.html">afterError</a></p>
+</td>
+<td>
+<code><span class="keyword">open</span> <span class="keyword">suspend</span> <span class="keyword">fun </span><span class="identifier">afterError</span><span class="symbol">(</span><span class="symbol">)</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html"><span class="identifier">Unit</span></a></code>
+<p>Method called after error.</p>
+</td>
+</tr>
+<tr>
+<td>
+<p><a href="after-login.html">afterLogin</a></p>
+</td>
+<td>
+<code><span class="keyword">open</span> <span class="keyword">suspend</span> <span class="keyword">fun </span><span class="identifier">afterLogin</span><span class="symbol">(</span><span class="symbol">)</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html"><span class="identifier">Unit</span></a></code>
+<p>Method called after successful login.</p>
+</td>
+</tr>
+<tr>
+<td>
+<p><a href="login.html">login</a></p>
+</td>
+<td>
+<code><span class="keyword">abstract</span> <span class="keyword">suspend</span> <span class="keyword">fun </span><span class="identifier">login</span><span class="symbol">(</span><span class="symbol">)</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html"><span class="identifier">Boolean</span></a></code>
+<p>Login user.</p>
+</td>
+</tr>
+<tr>
+<td>
+<p><a href="with-auth.html">withAuth</a></p>
+</td>
+<td>
+<code><span class="keyword">suspend</span> <span class="keyword">fun </span><span class="symbol">&lt;</span><span class="identifier">T</span><span class="symbol">&gt;</span> <span class="identifier">withAuth</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.remote.SecurityMgr$withAuth(kotlin.coroutines.SuspendFunction0((pl.treksoft.kvision.remote.SecurityMgr.withAuth.T)))/block">block</span><span class="symbol">:</span>&nbsp;<span class="keyword">suspend </span><span class="symbol">(</span><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<a href="with-auth.html#T"><span class="identifier">T</span></a><span class="symbol">)</span><span class="symbol">: </span><a href="with-auth.html#T"><span class="identifier">T</span></a></code>
+<p>Executes given block of code after successful authentication.</p>
+</td>
+</tr>
+</tbody>
+</table>
+<h3>Extension Functions</h3>
+<table>
+<tbody>
+<tr>
+<td>
+<p><a href="../../pl.treksoft.kvision.utils/kotlin.-any/create-instance.html">createInstance</a></p>
+</td>
+<td>
+<code><span class="keyword">fun </span><span class="symbol">&lt;</span><span class="identifier">T</span><span class="symbol">&gt;</span> <a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-any/index.html"><span class="identifier">Any</span></a><span class="symbol">?</span><span class="symbol">.</span><span class="identifier">createInstance</span><span class="symbol">(</span><span class="keyword">vararg</span> <span class="identifier" id="pl.treksoft.kvision.utils$createInstance(kotlin.Any, kotlin.Array((kotlin.Any)))/args">args</span><span class="symbol">:</span>&nbsp;<span class="keyword">dynamic</span><span class="symbol">)</span><span class="symbol">: </span><a href="../../pl.treksoft.kvision.utils/kotlin.-any/create-instance.html#T"><span class="identifier">T</span></a></code>
+<p>Helper function for creating JavaScript objects from dynamic constructors.</p>
+</td>
+</tr>
+</tbody>
+</table>
+</BODY>
+</HTML>
diff --git a/api1/pl.treksoft.kvision.remote/-security-mgr/login.html b/api1/pl.treksoft.kvision.remote/-security-mgr/login.html
new file mode 100644
index 00000000..a859fdd1
--- /dev/null
+++ b/api1/pl.treksoft.kvision.remote/-security-mgr/login.html
@@ -0,0 +1,20 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>SecurityMgr.login - kvision</title>
+<link rel="stylesheet" href="../../../style.css">
+</HEAD>
+<BODY>
+<a href="../../index.html">kvision</a>&nbsp;/&nbsp;<a href="../index.html">pl.treksoft.kvision.remote</a>&nbsp;/&nbsp;<a href="index.html">SecurityMgr</a>&nbsp;/&nbsp;<a href="./login.html">login</a><br/>
+<br/>
+<h1>login</h1>
+<a name="pl.treksoft.kvision.remote.SecurityMgr$login()"></a>
+<code><span class="keyword">abstract</span> <span class="keyword">suspend</span> <span class="keyword">fun </span><span class="identifier">login</span><span class="symbol">(</span><span class="symbol">)</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html"><span class="identifier">Boolean</span></a></code>
+<p>Login user.</p>
+<h3>Exceptions</h3>
+<p><a name="SecurityException"></a>
+<code>SecurityException</code> - if login is not successful</p>
+<p><strong>Return</strong><br/>
+true if login is successful</p>
+</BODY>
+</HTML>
diff --git a/api1/pl.treksoft.kvision.remote/-security-mgr/with-auth.html b/api1/pl.treksoft.kvision.remote/-security-mgr/with-auth.html
new file mode 100644
index 00000000..2411563a
--- /dev/null
+++ b/api1/pl.treksoft.kvision.remote/-security-mgr/with-auth.html
@@ -0,0 +1,18 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>SecurityMgr.withAuth - kvision</title>
+<link rel="stylesheet" href="../../../style.css">
+</HEAD>
+<BODY>
+<a href="../../index.html">kvision</a>&nbsp;/&nbsp;<a href="../index.html">pl.treksoft.kvision.remote</a>&nbsp;/&nbsp;<a href="index.html">SecurityMgr</a>&nbsp;/&nbsp;<a href="./with-auth.html">withAuth</a><br/>
+<br/>
+<h1>withAuth</h1>
+<a name="pl.treksoft.kvision.remote.SecurityMgr$withAuth(kotlin.coroutines.SuspendFunction0((pl.treksoft.kvision.remote.SecurityMgr.withAuth.T)))"></a>
+<code><span class="keyword">suspend</span> <span class="keyword">fun </span><span class="symbol">&lt;</span><span class="identifier">T</span><span class="symbol">&gt;</span> <span class="identifier">withAuth</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.remote.SecurityMgr$withAuth(kotlin.coroutines.SuspendFunction0((pl.treksoft.kvision.remote.SecurityMgr.withAuth.T)))/block">block</span><span class="symbol">:</span>&nbsp;<span class="keyword">suspend </span><span class="symbol">(</span><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<a href="with-auth.html#T"><span class="identifier">T</span></a><span class="symbol">)</span><span class="symbol">: </span><a href="with-auth.html#T"><span class="identifier">T</span></a></code>
+<p>Executes given block of code after successful authentication.</p>
+<h3>Parameters</h3>
+<p><a name="block"></a>
+<code>block</code> - a block of code</p>
+</BODY>
+</HTML>
diff --git a/api1/pl.treksoft.kvision.remote/-socket-closed-exception/-init-.html b/api1/pl.treksoft.kvision.remote/-socket-closed-exception/-init-.html
new file mode 100644
index 00000000..85a90cdf
--- /dev/null
+++ b/api1/pl.treksoft.kvision.remote/-socket-closed-exception/-init-.html
@@ -0,0 +1,15 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>SocketClosedException.<init> - kvision</title>
+<link rel="stylesheet" href="../../../style.css">
+</HEAD>
+<BODY>
+<a href="../../index.html">kvision</a>&nbsp;/&nbsp;<a href="../index.html">pl.treksoft.kvision.remote</a>&nbsp;/&nbsp;<a href="index.html">SocketClosedException</a>&nbsp;/&nbsp;<a href="./-init-.html">&lt;init&gt;</a><br/>
+<br/>
+<h1>&lt;init&gt;</h1>
+<a name="pl.treksoft.kvision.remote.SocketClosedException$&lt;init&gt;(kotlin.String)"></a>
+<code><span class="identifier">SocketClosedException</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.remote.SocketClosedException$<init>(kotlin.String)/reason">reason</span><span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">)</span></code>
+<p>Websocket closed exception class.</p>
+</BODY>
+</HTML>
diff --git a/api1/pl.treksoft.kvision.remote/-socket-closed-exception/index.html b/api1/pl.treksoft.kvision.remote/-socket-closed-exception/index.html
new file mode 100644
index 00000000..d55fb44d
--- /dev/null
+++ b/api1/pl.treksoft.kvision.remote/-socket-closed-exception/index.html
@@ -0,0 +1,54 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>SocketClosedException - kvision</title>
+<link rel="stylesheet" href="../../../style.css">
+</HEAD>
+<BODY>
+<a href="../../index.html">kvision</a>&nbsp;/&nbsp;<a href="../index.html">pl.treksoft.kvision.remote</a>&nbsp;/&nbsp;<a href="./index.html">SocketClosedException</a><br/>
+<br/>
+<h1>SocketClosedException</h1>
+<code><span class="keyword">class </span><span class="identifier">SocketClosedException</span>&nbsp;<span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-throwable/index.html"><span class="identifier">Throwable</span></a></code>
+<p>Websocket closed exception class.</p>
+<h3>Constructors</h3>
+<table>
+<tbody>
+<tr>
+<td>
+<p><a href="-init-.html">&lt;init&gt;</a></p>
+</td>
+<td>
+<code><span class="identifier">SocketClosedException</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.remote.SocketClosedException$<init>(kotlin.String)/reason">reason</span><span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">)</span></code>
+<p>Websocket closed exception class.</p>
+</td>
+</tr>
+</tbody>
+</table>
+<h3>Properties</h3>
+<table>
+<tbody>
+<tr>
+<td>
+<p><a href="reason.html">reason</a></p>
+</td>
+<td>
+<code><span class="keyword">val </span><span class="identifier">reason</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a></code></td>
+</tr>
+</tbody>
+</table>
+<h3>Extension Functions</h3>
+<table>
+<tbody>
+<tr>
+<td>
+<p><a href="../../pl.treksoft.kvision.utils/kotlin.-any/create-instance.html">createInstance</a></p>
+</td>
+<td>
+<code><span class="keyword">fun </span><span class="symbol">&lt;</span><span class="identifier">T</span><span class="symbol">&gt;</span> <a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-any/index.html"><span class="identifier">Any</span></a><span class="symbol">?</span><span class="symbol">.</span><span class="identifier">createInstance</span><span class="symbol">(</span><span class="keyword">vararg</span> <span class="identifier" id="pl.treksoft.kvision.utils$createInstance(kotlin.Any, kotlin.Array((kotlin.Any)))/args">args</span><span class="symbol">:</span>&nbsp;<span class="keyword">dynamic</span><span class="symbol">)</span><span class="symbol">: </span><a href="../../pl.treksoft.kvision.utils/kotlin.-any/create-instance.html#T"><span class="identifier">T</span></a></code>
+<p>Helper function for creating JavaScript objects from dynamic constructors.</p>
+</td>
+</tr>
+</tbody>
+</table>
+</BODY>
+</HTML>
diff --git a/api1/pl.treksoft.kvision.remote/-socket-closed-exception/reason.html b/api1/pl.treksoft.kvision.remote/-socket-closed-exception/reason.html
new file mode 100644
index 00000000..d5392fef
--- /dev/null
+++ b/api1/pl.treksoft.kvision.remote/-socket-closed-exception/reason.html
@@ -0,0 +1,14 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>SocketClosedException.reason - kvision</title>
+<link rel="stylesheet" href="../../../style.css">
+</HEAD>
+<BODY>
+<a href="../../index.html">kvision</a>&nbsp;/&nbsp;<a href="../index.html">pl.treksoft.kvision.remote</a>&nbsp;/&nbsp;<a href="index.html">SocketClosedException</a>&nbsp;/&nbsp;<a href="./reason.html">reason</a><br/>
+<br/>
+<h1>reason</h1>
+<a name="pl.treksoft.kvision.remote.SocketClosedException$reason"></a>
+<code><span class="keyword">val </span><span class="identifier">reason</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a></code>
+</BODY>
+</HTML>
diff --git a/api1/pl.treksoft.kvision.remote/-socket/-init-.html b/api1/pl.treksoft.kvision.remote/-socket/-init-.html
new file mode 100644
index 00000000..2e0478a7
--- /dev/null
+++ b/api1/pl.treksoft.kvision.remote/-socket/-init-.html
@@ -0,0 +1,15 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>Socket.<init> - kvision</title>
+<link rel="stylesheet" href="../../../style.css">
+</HEAD>
+<BODY>
+<a href="../../index.html">kvision</a>&nbsp;/&nbsp;<a href="../index.html">pl.treksoft.kvision.remote</a>&nbsp;/&nbsp;<a href="index.html">Socket</a>&nbsp;/&nbsp;<a href="./-init-.html">&lt;init&gt;</a><br/>
+<br/>
+<h1>&lt;init&gt;</h1>
+<a name="pl.treksoft.kvision.remote.Socket$&lt;init&gt;()"></a>
+<code><span class="identifier">Socket</span><span class="symbol">(</span><span class="symbol">)</span></code>
+<p>A websocket client implementation.</p>
+</BODY>
+</HTML>
diff --git a/api1/pl.treksoft.kvision.remote/-socket/close.html b/api1/pl.treksoft.kvision.remote/-socket/close.html
new file mode 100644
index 00000000..1e67ef23
--- /dev/null
+++ b/api1/pl.treksoft.kvision.remote/-socket/close.html
@@ -0,0 +1,15 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>Socket.close - kvision</title>
+<link rel="stylesheet" href="../../../style.css">
+</HEAD>
+<BODY>
+<a href="../../index.html">kvision</a>&nbsp;/&nbsp;<a href="../index.html">pl.treksoft.kvision.remote</a>&nbsp;/&nbsp;<a href="index.html">Socket</a>&nbsp;/&nbsp;<a href="./close.html">close</a><br/>
+<br/>
+<h1>close</h1>
+<a name="pl.treksoft.kvision.remote.Socket$close(kotlin.Short)"></a>
+<code><span class="keyword">fun </span><span class="identifier">close</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.remote.Socket$close(kotlin.Short)/code">code</span><span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-short/index.html"><span class="identifier">Short</span></a>&nbsp;<span class="symbol">=</span>&nbsp;1000<span class="symbol">)</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html"><span class="identifier">Unit</span></a></code>
+<p>Close a websocket.</p>
+</BODY>
+</HTML>
diff --git a/api1/pl.treksoft.kvision.remote/-socket/connect.html b/api1/pl.treksoft.kvision.remote/-socket/connect.html
new file mode 100644
index 00000000..550d176d
--- /dev/null
+++ b/api1/pl.treksoft.kvision.remote/-socket/connect.html
@@ -0,0 +1,15 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>Socket.connect - kvision</title>
+<link rel="stylesheet" href="../../../style.css">
+</HEAD>
+<BODY>
+<a href="../../index.html">kvision</a>&nbsp;/&nbsp;<a href="../index.html">pl.treksoft.kvision.remote</a>&nbsp;/&nbsp;<a href="index.html">Socket</a>&nbsp;/&nbsp;<a href="./connect.html">connect</a><br/>
+<br/>
+<h1>connect</h1>
+<a name="pl.treksoft.kvision.remote.Socket$connect(kotlin.String, kotlin.Long)"></a>
+<code><span class="keyword">suspend</span> <span class="keyword">fun </span><span class="identifier">connect</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.remote.Socket$connect(kotlin.String, kotlin.Long)/url">url</span><span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.remote.Socket$connect(kotlin.String, kotlin.Long)/retryDelay">retryDelay</span><span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-long/index.html"><span class="identifier">Long</span></a>&nbsp;<span class="symbol">=</span>&nbsp;1000<span class="symbol">)</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html"><span class="identifier">Unit</span></a></code>
+<p>Connect to a websocket.</p>
+</BODY>
+</HTML>
diff --git a/api1/pl.treksoft.kvision.remote/-socket/index.html b/api1/pl.treksoft.kvision.remote/-socket/index.html
new file mode 100644
index 00000000..215e6db9
--- /dev/null
+++ b/api1/pl.treksoft.kvision.remote/-socket/index.html
@@ -0,0 +1,104 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>Socket - kvision</title>
+<link rel="stylesheet" href="../../../style.css">
+</HEAD>
+<BODY>
+<a href="../../index.html">kvision</a>&nbsp;/&nbsp;<a href="../index.html">pl.treksoft.kvision.remote</a>&nbsp;/&nbsp;<a href="./index.html">Socket</a><br/>
+<br/>
+<h1>Socket</h1>
+<code><span class="keyword">class </span><span class="identifier">Socket</span></code>
+<p>A websocket client implementation.</p>
+<h3>Constructors</h3>
+<table>
+<tbody>
+<tr>
+<td>
+<p><a href="-init-.html">&lt;init&gt;</a></p>
+</td>
+<td>
+<code><span class="identifier">Socket</span><span class="symbol">(</span><span class="symbol">)</span></code>
+<p>A websocket client implementation.</p>
+</td>
+</tr>
+</tbody>
+</table>
+<h3>Properties</h3>
+<table>
+<tbody>
+<tr>
+<td>
+<p><a href="state.html">state</a></p>
+</td>
+<td>
+<code><span class="keyword">val </span><span class="identifier">state</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-short/index.html"><span class="identifier">Short</span></a></code></td>
+</tr>
+</tbody>
+</table>
+<h3>Functions</h3>
+<table>
+<tbody>
+<tr>
+<td>
+<p><a href="close.html">close</a></p>
+</td>
+<td>
+<code><span class="keyword">fun </span><span class="identifier">close</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.remote.Socket$close(kotlin.Short)/code">code</span><span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-short/index.html"><span class="identifier">Short</span></a>&nbsp;<span class="symbol">=</span>&nbsp;1000<span class="symbol">)</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html"><span class="identifier">Unit</span></a></code>
+<p>Close a websocket.</p>
+</td>
+</tr>
+<tr>
+<td>
+<p><a href="connect.html">connect</a></p>
+</td>
+<td>
+<code><span class="keyword">suspend</span> <span class="keyword">fun </span><span class="identifier">connect</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.remote.Socket$connect(kotlin.String, kotlin.Long)/url">url</span><span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.remote.Socket$connect(kotlin.String, kotlin.Long)/retryDelay">retryDelay</span><span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-long/index.html"><span class="identifier">Long</span></a>&nbsp;<span class="symbol">=</span>&nbsp;1000<span class="symbol">)</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html"><span class="identifier">Unit</span></a></code>
+<p>Connect to a websocket.</p>
+</td>
+</tr>
+<tr>
+<td>
+<p><a href="is-closed.html">isClosed</a></p>
+</td>
+<td>
+<code><span class="keyword">fun </span><span class="identifier">isClosed</span><span class="symbol">(</span><span class="symbol">)</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html"><span class="identifier">Boolean</span></a></code>
+<p>Returns if a websocket is closed.</p>
+</td>
+</tr>
+<tr>
+<td>
+<p><a href="receive.html">receive</a></p>
+</td>
+<td>
+<code><span class="keyword">suspend</span> <span class="keyword">fun </span><span class="identifier">receive</span><span class="symbol">(</span><span class="symbol">)</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a></code>
+<p>Receive a string from a websocket.</p>
+</td>
+</tr>
+<tr>
+<td>
+<p><a href="send.html">send</a></p>
+</td>
+<td>
+<code><span class="keyword">fun </span><span class="identifier">send</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.remote.Socket$send(kotlin.String)/obj">obj</span><span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">)</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html"><span class="identifier">Unit</span></a></code>
+<p>Send string to a websocket.</p>
+</td>
+</tr>
+</tbody>
+</table>
+<h3>Extension Functions</h3>
+<table>
+<tbody>
+<tr>
+<td>
+<p><a href="../../pl.treksoft.kvision.utils/kotlin.-any/create-instance.html">createInstance</a></p>
+</td>
+<td>
+<code><span class="keyword">fun </span><span class="symbol">&lt;</span><span class="identifier">T</span><span class="symbol">&gt;</span> <a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-any/index.html"><span class="identifier">Any</span></a><span class="symbol">?</span><span class="symbol">.</span><span class="identifier">createInstance</span><span class="symbol">(</span><span class="keyword">vararg</span> <span class="identifier" id="pl.treksoft.kvision.utils$createInstance(kotlin.Any, kotlin.Array((kotlin.Any)))/args">args</span><span class="symbol">:</span>&nbsp;<span class="keyword">dynamic</span><span class="symbol">)</span><span class="symbol">: </span><a href="../../pl.treksoft.kvision.utils/kotlin.-any/create-instance.html#T"><span class="identifier">T</span></a></code>
+<p>Helper function for creating JavaScript objects from dynamic constructors.</p>
+</td>
+</tr>
+</tbody>
+</table>
+</BODY>
+</HTML>
diff --git a/api1/pl.treksoft.kvision.remote/-socket/is-closed.html b/api1/pl.treksoft.kvision.remote/-socket/is-closed.html
new file mode 100644
index 00000000..66a1b37d
--- /dev/null
+++ b/api1/pl.treksoft.kvision.remote/-socket/is-closed.html
@@ -0,0 +1,15 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>Socket.isClosed - kvision</title>
+<link rel="stylesheet" href="../../../style.css">
+</HEAD>
+<BODY>
+<a href="../../index.html">kvision</a>&nbsp;/&nbsp;<a href="../index.html">pl.treksoft.kvision.remote</a>&nbsp;/&nbsp;<a href="index.html">Socket</a>&nbsp;/&nbsp;<a href="./is-closed.html">isClosed</a><br/>
+<br/>
+<h1>isClosed</h1>
+<a name="pl.treksoft.kvision.remote.Socket$isClosed()"></a>
+<code><span class="keyword">fun </span><span class="identifier">isClosed</span><span class="symbol">(</span><span class="symbol">)</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html"><span class="identifier">Boolean</span></a></code>
+<p>Returns if a websocket is closed.</p>
+</BODY>
+</HTML>
diff --git a/api1/pl.treksoft.kvision.remote/-socket/receive.html b/api1/pl.treksoft.kvision.remote/-socket/receive.html
new file mode 100644
index 00000000..f6f43b34
--- /dev/null
+++ b/api1/pl.treksoft.kvision.remote/-socket/receive.html
@@ -0,0 +1,15 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>Socket.receive - kvision</title>
+<link rel="stylesheet" href="../../../style.css">
+</HEAD>
+<BODY>
+<a href="../../index.html">kvision</a>&nbsp;/&nbsp;<a href="../index.html">pl.treksoft.kvision.remote</a>&nbsp;/&nbsp;<a href="index.html">Socket</a>&nbsp;/&nbsp;<a href="./receive.html">receive</a><br/>
+<br/>
+<h1>receive</h1>
+<a name="pl.treksoft.kvision.remote.Socket$receive()"></a>
+<code><span class="keyword">suspend</span> <span class="keyword">fun </span><span class="identifier">receive</span><span class="symbol">(</span><span class="symbol">)</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a></code>
+<p>Receive a string from a websocket.</p>
+</BODY>
+</HTML>
diff --git a/api1/pl.treksoft.kvision.remote/-socket/send.html b/api1/pl.treksoft.kvision.remote/-socket/send.html
new file mode 100644
index 00000000..f160ea23
--- /dev/null
+++ b/api1/pl.treksoft.kvision.remote/-socket/send.html
@@ -0,0 +1,15 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>Socket.send - kvision</title>
+<link rel="stylesheet" href="../../../style.css">
+</HEAD>
+<BODY>
+<a href="../../index.html">kvision</a>&nbsp;/&nbsp;<a href="../index.html">pl.treksoft.kvision.remote</a>&nbsp;/&nbsp;<a href="index.html">Socket</a>&nbsp;/&nbsp;<a href="./send.html">send</a><br/>
+<br/>
+<h1>send</h1>
+<a name="pl.treksoft.kvision.remote.Socket$send(kotlin.String)"></a>
+<code><span class="keyword">fun </span><span class="identifier">send</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.remote.Socket$send(kotlin.String)/obj">obj</span><span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">)</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html"><span class="identifier">Unit</span></a></code>
+<p>Send string to a websocket.</p>
+</BODY>
+</HTML>
diff --git a/api1/pl.treksoft.kvision.remote/-socket/state.html b/api1/pl.treksoft.kvision.remote/-socket/state.html
new file mode 100644
index 00000000..4b60c7f4
--- /dev/null
+++ b/api1/pl.treksoft.kvision.remote/-socket/state.html
@@ -0,0 +1,14 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>Socket.state - kvision</title>
+<link rel="stylesheet" href="../../../style.css">
+</HEAD>
+<BODY>
+<a href="../../index.html">kvision</a>&nbsp;/&nbsp;<a href="../index.html">pl.treksoft.kvision.remote</a>&nbsp;/&nbsp;<a href="index.html">Socket</a>&nbsp;/&nbsp;<a href="./state.html">state</a><br/>
+<br/>
+<h1>state</h1>
+<a name="pl.treksoft.kvision.remote.Socket$state"></a>
+<code><span class="keyword">val </span><span class="identifier">state</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-short/index.html"><span class="identifier">Short</span></a></code>
+</BODY>
+</HTML>
diff --git a/api1/pl.treksoft.kvision.remote/-web-socket-session-holder/index.html b/api1/pl.treksoft.kvision.remote/-web-socket-session-holder/index.html
new file mode 100644
index 00000000..cca78b75
--- /dev/null
+++ b/api1/pl.treksoft.kvision.remote/-web-socket-session-holder/index.html
@@ -0,0 +1,39 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>WebSocketSessionHolder - kvision</title>
+<link rel="stylesheet" href="../../../style.css">
+</HEAD>
+<BODY>
+<a href="../../index.html">kvision</a>&nbsp;/&nbsp;<a href="../index.html">pl.treksoft.kvision.remote</a>&nbsp;/&nbsp;<a href="./index.html">WebSocketSessionHolder</a><br/>
+<br/>
+<h1>WebSocketSessionHolder</h1>
+<code><span class="keyword">object </span><span class="identifier">WebSocketSessionHolder</span></code>
+<h3>Properties</h3>
+<table>
+<tbody>
+<tr>
+<td>
+<p><a href="web-socket-session.html">webSocketSession</a></p>
+</td>
+<td>
+<code><span class="keyword">var </span><span class="identifier">webSocketSession</span><span class="symbol">: </span><span class="identifier">&lt;ERROR CLASS&gt;</span></code></td>
+</tr>
+</tbody>
+</table>
+<h3>Extension Functions</h3>
+<table>
+<tbody>
+<tr>
+<td>
+<p><a href="../../pl.treksoft.kvision.utils/kotlin.-any/create-instance.html">createInstance</a></p>
+</td>
+<td>
+<code><span class="keyword">fun </span><span class="symbol">&lt;</span><span class="identifier">T</span><span class="symbol">&gt;</span> <a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-any/index.html"><span class="identifier">Any</span></a><span class="symbol">?</span><span class="symbol">.</span><span class="identifier">createInstance</span><span class="symbol">(</span><span class="keyword">vararg</span> <span class="identifier" id="pl.treksoft.kvision.utils$createInstance(kotlin.Any, kotlin.Array((kotlin.Any)))/args">args</span><span class="symbol">:</span>&nbsp;<span class="keyword">dynamic</span><span class="symbol">)</span><span class="symbol">: </span><a href="../../pl.treksoft.kvision.utils/kotlin.-any/create-instance.html#T"><span class="identifier">T</span></a></code>
+<p>Helper function for creating JavaScript objects from dynamic constructors.</p>
+</td>
+</tr>
+</tbody>
+</table>
+</BODY>
+</HTML>
diff --git a/api1/pl.treksoft.kvision.remote/-web-socket-session-holder/web-socket-session.html b/api1/pl.treksoft.kvision.remote/-web-socket-session-holder/web-socket-session.html
new file mode 100644
index 00000000..79762c28
--- /dev/null
+++ b/api1/pl.treksoft.kvision.remote/-web-socket-session-holder/web-socket-session.html
@@ -0,0 +1,14 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>WebSocketSessionHolder.webSocketSession - kvision</title>
+<link rel="stylesheet" href="../../../style.css">
+</HEAD>
+<BODY>
+<a href="../../index.html">kvision</a>&nbsp;/&nbsp;<a href="../index.html">pl.treksoft.kvision.remote</a>&nbsp;/&nbsp;<a href="index.html">WebSocketSessionHolder</a>&nbsp;/&nbsp;<a href="./web-socket-session.html">webSocketSession</a><br/>
+<br/>
+<h1>webSocketSession</h1>
+<a name="pl.treksoft.kvision.remote.WebSocketSessionHolder$webSocketSession"></a>
+<code><span class="keyword">var </span><span class="identifier">webSocketSession</span><span class="symbol">: </span><span class="identifier">&lt;ERROR CLASS&gt;</span></code>
+</BODY>
+</HTML>
diff --git a/api1/pl.treksoft.kvision.remote/add-path-patterns-from-services.html b/api1/pl.treksoft.kvision.remote/add-path-patterns-from-services.html
new file mode 100644
index 00000000..0c3d8c8d
--- /dev/null
+++ b/api1/pl.treksoft.kvision.remote/add-path-patterns-from-services.html
@@ -0,0 +1,15 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>addPathPatternsFromServices - kvision</title>
+<link rel="stylesheet" href="../../style.css">
+</HEAD>
+<BODY>
+<a href="../index.html">kvision</a>&nbsp;/&nbsp;<a href="index.html">pl.treksoft.kvision.remote</a>&nbsp;/&nbsp;<a href="./add-path-patterns-from-services.html">addPathPatternsFromServices</a><br/>
+<br/>
+<h1>addPathPatternsFromServices</h1>
+<a name="pl.treksoft.kvision.remote$addPathPatternsFromServices(, kotlin.collections.List((pl.treksoft.kvision.remote.KVServiceManager((kotlin.Any)))))"></a>
+<code><span class="keyword">fun </span><span class="identifier">&lt;ERROR CLASS&gt;</span><span class="symbol">.</span><span class="identifier">addPathPatternsFromServices</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.remote$addPathPatternsFromServices(, kotlin.collections.List((pl.treksoft.kvision.remote.KVServiceManager((kotlin.Any)))))/services">services</span><span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/-list/index.html"><span class="identifier">List</span></a><span class="symbol">&lt;</span><a href="-k-v-service-manager/index.html"><span class="identifier">KVServiceManager</span></a><span class="symbol">&lt;</span><span class="identifier">*</span><span class="symbol">&gt;</span><span class="symbol">&gt;</span><span class="symbol">)</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html"><span class="identifier">Unit</span></a></code>
+<p>A function to gather paths for an interceptor from a list of service managers.</p>
+</BODY>
+</HTML>
diff --git a/api1/pl.treksoft.kvision.remote/apply-routes.html b/api1/pl.treksoft.kvision.remote/apply-routes.html
new file mode 100644
index 00000000..431ef8d2
--- /dev/null
+++ b/api1/pl.treksoft.kvision.remote/apply-routes.html
@@ -0,0 +1,15 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>applyRoutes - kvision</title>
+<link rel="stylesheet" href="../../style.css">
+</HEAD>
+<BODY>
+<a href="../index.html">kvision</a>&nbsp;/&nbsp;<a href="index.html">pl.treksoft.kvision.remote</a>&nbsp;/&nbsp;<a href="./apply-routes.html">applyRoutes</a><br/>
+<br/>
+<h1>applyRoutes</h1>
+<a name="pl.treksoft.kvision.remote$applyRoutes(, pl.treksoft.kvision.remote.KVServiceManager((pl.treksoft.kvision.remote.applyRoutes.T)))"></a>
+<code><span class="keyword">fun </span><span class="symbol">&lt;</span><span class="identifier">T</span>&nbsp;<span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-any/index.html"><span class="identifier">Any</span></a><span class="symbol">&gt;</span> <span class="identifier">&lt;ERROR CLASS&gt;</span><span class="symbol">.</span><span class="identifier">applyRoutes</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.remote$applyRoutes(, pl.treksoft.kvision.remote.KVServiceManager((pl.treksoft.kvision.remote.applyRoutes.T)))/serviceManager">serviceManager</span><span class="symbol">:</span>&nbsp;<a href="-k-v-service-manager/index.html"><span class="identifier">KVServiceManager</span></a><span class="symbol">&lt;</span><a href="apply-routes.html#T"><span class="identifier">T</span></a><span class="symbol">&gt;</span><span class="symbol">)</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html"><span class="identifier">Unit</span></a></code>
+<p>A function to generate routes based on definitions from the service manager.</p>
+</BODY>
+</HTML>
diff --git a/api1/pl.treksoft.kvision.remote/get-web-socket-url.html b/api1/pl.treksoft.kvision.remote/get-web-socket-url.html
new file mode 100644
index 00000000..b69cc662
--- /dev/null
+++ b/api1/pl.treksoft.kvision.remote/get-web-socket-url.html
@@ -0,0 +1,15 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>getWebSocketUrl - kvision</title>
+<link rel="stylesheet" href="../../style.css">
+</HEAD>
+<BODY>
+<a href="../index.html">kvision</a>&nbsp;/&nbsp;<a href="index.html">pl.treksoft.kvision.remote</a>&nbsp;/&nbsp;<a href="./get-web-socket-url.html">getWebSocketUrl</a><br/>
+<br/>
+<h1>getWebSocketUrl</h1>
+<a name="pl.treksoft.kvision.remote$getWebSocketUrl(kotlin.String)"></a>
+<code><span class="keyword">fun </span><span class="identifier">getWebSocketUrl</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.remote$getWebSocketUrl(kotlin.String)/url">url</span><span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">)</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a></code>
+<p>Creates a websocket URL from current window.location and given path.</p>
+</BODY>
+</HTML>
diff --git a/api1/pl.treksoft.kvision.remote/index.html b/api1/pl.treksoft.kvision.remote/index.html
new file mode 100644
index 00000000..72968669
--- /dev/null
+++ b/api1/pl.treksoft.kvision.remote/index.html
@@ -0,0 +1,283 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>pl.treksoft.kvision.remote - kvision</title>
+<link rel="stylesheet" href="../../style.css">
+</HEAD>
+<BODY>
+<a href="../index.html">kvision</a>&nbsp;/&nbsp;<a href="./index.html">pl.treksoft.kvision.remote</a><br/>
+<br/>
+<h2>Package pl.treksoft.kvision.remote</h2>
+<p>A set of components for creating multiplatform automatic JSON-RPC connectivity with a backend server.</p>
+<h3>Types</h3>
+<table>
+<tbody>
+<tr>
+<td>
+<p><a href="-call-agent/index.html">CallAgent</a></p>
+</td>
+<td>
+<code><span class="keyword">open</span> <span class="keyword">class </span><span class="identifier">CallAgent</span></code>
+<p>An agent responsible for remote calls.</p>
+</td>
+</tr>
+<tr>
+<td>
+<p><a href="-credentials/index.html">Credentials</a></p>
+</td>
+<td>
+<code><span class="keyword">data</span> <span class="keyword">class </span><span class="identifier">Credentials</span></code>
+<p>Username and password credentials.</p>
+</td>
+</tr>
+<tr>
+<td>
+<p><a href="-dummy-web-socket-session/index.html">DummyWebSocketSession</a></p>
+</td>
+<td>
+<code><span class="keyword">open</span> <span class="keyword">class </span><span class="identifier">DummyWebSocketSession</span></code></td>
+</tr>
+<tr>
+<td>
+<p><a href="-j-s-o-n/index.html">JSON</a></p>
+</td>
+<td>
+<code><span class="keyword">object </span><span class="identifier">JSON</span></code>
+<p>JSON utility functions</p>
+</td>
+</tr>
+<tr>
+<td>
+<p><a href="-k-v-controller/index.html">KVController</a></p>
+</td>
+<td>
+<code><span class="keyword">open</span> <span class="keyword">class </span><span class="identifier">KVController</span></code>
+<p>Controller for handling automatic routes.</p>
+</td>
+</tr>
+<tr>
+<td>
+<p><a href="-k-v-remote-agent/index.html">KVRemoteAgent</a></p>
+</td>
+<td>
+<code><span class="keyword">open</span> <span class="keyword">class </span><span class="identifier">KVRemoteAgent</span><span class="symbol">&lt;</span><span class="identifier">T</span>&nbsp;<span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-any/index.html"><span class="identifier">Any</span></a><span class="symbol">&gt;</span>&nbsp;<span class="symbol">:</span>&nbsp;<a href="-remote-agent/index.html"><span class="identifier">RemoteAgent</span></a></code>
+<p>Client side agent for JSON-RPC remote calls.</p>
+</td>
+</tr>
+<tr>
+<td>
+<p><a href="-k-v-service-manager/index.html">KVServiceManager</a></p>
+</td>
+<td>
+<code><span class="keyword">open</span> <span class="keyword">actual</span> <span class="keyword">class </span><span class="identifier">KVServiceManager</span><span class="symbol">&lt;</span><span class="identifier">T</span>&nbsp;<span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-any/index.html"><span class="identifier">Any</span></a><span class="symbol">&gt;</span></code>
+<p>Multiplatform service manager.</p>
+</td>
+</tr>
+<tr>
+<td>
+<p><a href="-k-v-web-socket-config/index.html">KVWebSocketConfig</a></p>
+</td>
+<td>
+<code><span class="keyword">open</span> <span class="keyword">class </span><span class="identifier">KVWebSocketConfig</span></code>
+<p>Automatic websockets configuration.</p>
+</td>
+</tr>
+<tr>
+<td>
+<p><a href="-login-service/index.html">LoginService</a></p>
+</td>
+<td>
+<code><span class="keyword">class </span><span class="identifier">LoginService</span></code>
+<p>Form login dispatcher.</p>
+</td>
+</tr>
+<tr>
+<td>
+<p><a href="-object/index.html">Object</a></p>
+</td>
+<td>
+<code><span class="keyword">external</span> <span class="keyword">class </span><span class="identifier">Object</span></code>
+<p>JavaScript Object type</p>
+</td>
+</tr>
+<tr>
+<td>
+<p><a href="-profile/index.html">Profile</a></p>
+</td>
+<td>
+<code><span class="keyword">actual</span> <span class="keyword">data</span> <span class="keyword">class </span><span class="identifier">Profile</span></code>
+<p>A user profile.</p>
+</td>
+</tr>
+<tr>
+<td>
+<p><a href="-remote-agent/index.html">RemoteAgent</a></p>
+</td>
+<td>
+<code><span class="keyword">interface </span><span class="identifier">RemoteAgent</span></code>
+<p>Interface for client side agent for JSON-RPC remote calls.</p>
+</td>
+</tr>
+<tr>
+<td>
+<p><a href="-security-mgr/index.html">SecurityMgr</a></p>
+</td>
+<td>
+<code><span class="keyword">abstract</span> <span class="keyword">class </span><span class="identifier">SecurityMgr</span></code>
+<p>Form login dispatcher.</p>
+</td>
+</tr>
+<tr>
+<td>
+<p><a href="-socket/index.html">Socket</a></p>
+</td>
+<td>
+<code><span class="keyword">class </span><span class="identifier">Socket</span></code>
+<p>A websocket client implementation.</p>
+</td>
+</tr>
+<tr>
+<td>
+<p><a href="-web-socket-session-holder/index.html">WebSocketSessionHolder</a></p>
+</td>
+<td>
+<code><span class="keyword">object </span><span class="identifier">WebSocketSessionHolder</span></code></td>
+</tr>
+</tbody>
+</table>
+<h3>Exceptions</h3>
+<table>
+<tbody>
+<tr>
+<td>
+<p><a href="-security-exception/index.html">SecurityException</a></p>
+</td>
+<td>
+<code><span class="keyword">class </span><span class="identifier">SecurityException</span>&nbsp;<span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-exception/index.html"><span class="identifier">Exception</span></a></code>
+<p>A security exception.</p>
+</td>
+</tr>
+<tr>
+<td>
+<p><a href="-socket-closed-exception/index.html">SocketClosedException</a></p>
+</td>
+<td>
+<code><span class="keyword">class </span><span class="identifier">SocketClosedException</span>&nbsp;<span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-throwable/index.html"><span class="identifier">Throwable</span></a></code>
+<p>Websocket closed exception class.</p>
+</td>
+</tr>
+</tbody>
+</table>
+<h3>Type Aliases</h3>
+<table>
+<tbody>
+<tr>
+<td>
+<p><a href="-profile/index.html">Profile</a></p>
+</td>
+<td>
+<code><span class="keyword">actual</span> <span class="keyword">typealias </span><span class="identifier">Profile</span>&nbsp;<span class="symbol">=</span>&nbsp;<span class="identifier">&lt;ERROR CLASS&gt;</span></code>
+<p>A user profile.</p>
+</td>
+</tr>
+</tbody>
+</table>
+<h3>Properties</h3>
+<table>
+<tbody>
+<tr>
+<td>
+<p><a href="-h-t-t-p_-u-n-a-u-t-h-o-r-i-z-e-d.html">HTTP_UNAUTHORIZED</a></p>
+</td>
+<td>
+<code><span class="keyword">const</span> <span class="keyword">val </span><span class="identifier">HTTP_UNAUTHORIZED</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html"><span class="identifier">Int</span></a></code>
+<p>HTTP status unauthorized (401).</p>
+</td>
+</tr>
+<tr>
+<td>
+<p><a href="injector.html">injector</a></p>
+</td>
+<td>
+<code><span class="keyword">val </span><span class="identifier">&lt;ERROR CLASS&gt;</span><span class="symbol">.</span><span class="identifier">injector</span><span class="symbol">: </span><span class="identifier">&lt;ERROR CLASS&gt;</span></code></td>
+</tr>
+<tr>
+<td>
+<p><a href="injector-key.html">injectorKey</a></p>
+</td>
+<td>
+<code><span class="keyword">val </span><span class="identifier">injectorKey</span><span class="symbol">: </span><span class="identifier">&lt;ERROR CLASS&gt;</span></code></td>
+</tr>
+<tr>
+<td>
+<p><a href="-k-v_-r-o-u-t-e_-i-d_-a-t-t-r-i-b-u-t-e.html">KV_ROUTE_ID_ATTRIBUTE</a></p>
+</td>
+<td>
+<code><span class="keyword">const</span> <span class="keyword">val </span><span class="identifier">KV_ROUTE_ID_ATTRIBUTE</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a></code></td>
+</tr>
+</tbody>
+</table>
+<h3>Functions</h3>
+<table>
+<tbody>
+<tr>
+<td>
+<p><a href="add-path-patterns-from-services.html">addPathPatternsFromServices</a></p>
+</td>
+<td>
+<code><span class="keyword">fun </span><span class="identifier">&lt;ERROR CLASS&gt;</span><span class="symbol">.</span><span class="identifier">addPathPatternsFromServices</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.remote$addPathPatternsFromServices(, kotlin.collections.List((pl.treksoft.kvision.remote.KVServiceManager((kotlin.Any)))))/services">services</span><span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/-list/index.html"><span class="identifier">List</span></a><span class="symbol">&lt;</span><a href="-k-v-service-manager/index.html"><span class="identifier">KVServiceManager</span></a><span class="symbol">&lt;</span><span class="identifier">*</span><span class="symbol">&gt;</span><span class="symbol">&gt;</span><span class="symbol">)</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html"><span class="identifier">Unit</span></a></code>
+<p>A function to gather paths for an interceptor from a list of service managers.</p>
+</td>
+</tr>
+<tr>
+<td>
+<p><a href="apply-routes.html">applyRoutes</a></p>
+</td>
+<td>
+<code><span class="keyword">fun </span><span class="symbol">&lt;</span><span class="identifier">T</span>&nbsp;<span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-any/index.html"><span class="identifier">Any</span></a><span class="symbol">&gt;</span> <span class="identifier">&lt;ERROR CLASS&gt;</span><span class="symbol">.</span><span class="identifier">applyRoutes</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.remote$applyRoutes(, pl.treksoft.kvision.remote.KVServiceManager((pl.treksoft.kvision.remote.applyRoutes.T)))/serviceManager">serviceManager</span><span class="symbol">:</span>&nbsp;<a href="-k-v-service-manager/index.html"><span class="identifier">KVServiceManager</span></a><span class="symbol">&lt;</span><a href="apply-routes.html#T"><span class="identifier">T</span></a><span class="symbol">&gt;</span><span class="symbol">)</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html"><span class="identifier">Unit</span></a></code>
+<p>A function to generate routes based on definitions from the service manager.</p>
+</td>
+</tr>
+<tr>
+<td>
+<p><a href="get-web-socket-url.html">getWebSocketUrl</a></p>
+</td>
+<td>
+<code><span class="keyword">fun </span><span class="identifier">getWebSocketUrl</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.remote$getWebSocketUrl(kotlin.String)/url">url</span><span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a><span class="symbol">)</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html"><span class="identifier">String</span></a></code>
+<p>Creates a websocket URL from current window.location and given path.</p>
+</td>
+</tr>
+<tr>
+<td>
+<p><a href="kvision-init.html">kvisionInit</a></p>
+</td>
+<td>
+<code><span class="keyword">fun </span><span class="identifier">&lt;ERROR CLASS&gt;</span><span class="symbol">.</span><span class="identifier">kvisionInit</span><span class="symbol">(</span><span class="symbol">)</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html"><span class="identifier">Unit</span></a></code>
+<p>Initialization function for Jooby server.</p>
+<code><span class="keyword">fun </span><span class="identifier">&lt;ERROR CLASS&gt;</span><span class="symbol">.</span><span class="identifier">kvisionInit</span><span class="symbol">(</span><span class="keyword">vararg</span> <span class="identifier" id="pl.treksoft.kvision.remote$kvisionInit(, kotlin.Array(()))/modules">modules</span><span class="symbol">:</span>&nbsp;<span class="identifier">&lt;ERROR CLASS&gt;</span><span class="symbol">)</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html"><span class="identifier">Unit</span></a></code>
+<p>Initialization function for Ktor server.</p>
+</td>
+</tr>
+<tr>
+<td>
+<p><a href="obj.html">obj</a></p>
+</td>
+<td>
+<code><span class="keyword">fun </span><span class="identifier">obj</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.remote$obj(kotlin.Function1((kotlin.Any, kotlin.Unit)))/init">init</span><span class="symbol">:</span>&nbsp;<span class="keyword">dynamic</span><span class="symbol">.</span><span class="symbol">(</span><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html"><span class="identifier">Unit</span></a><span class="symbol">)</span><span class="symbol">: </span><span class="keyword">dynamic</span></code>
+<p>Helper function for creating JavaScript objects.</p>
+</td>
+</tr>
+<tr>
+<td>
+<p><a href="with-profile.html">withProfile</a></p>
+</td>
+<td>
+<code><span class="keyword">suspend</span> <span class="keyword">fun </span><span class="symbol">&lt;</span><span class="identifier">RESP</span><span class="symbol">&gt;</span> <span class="identifier">&lt;ERROR CLASS&gt;</span><span class="symbol">.</span><span class="identifier">withProfile</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.remote$withProfile(, kotlin.coroutines.SuspendFunction1((pl.treksoft.kvision.remote.Profile, pl.treksoft.kvision.remote.withProfile.RESP)))/block">block</span><span class="symbol">:</span>&nbsp;<span class="keyword">suspend </span><span class="symbol">(</span><a href="-profile/index.html"><span class="identifier">Profile</span></a><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<a href="with-profile.html#RESP"><span class="identifier">RESP</span></a><span class="symbol">)</span><span class="symbol">: </span><a href="with-profile.html#RESP"><span class="identifier">RESP</span></a></code><br/>
+<code><span class="keyword">suspend</span> <span class="keyword">fun </span><span class="symbol">&lt;</span><span class="identifier">RESP</span><span class="symbol">&gt;</span> <span class="identifier">withProfile</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.remote$withProfile(kotlin.coroutines.SuspendFunction1((pl.treksoft.kvision.remote.Profile, pl.treksoft.kvision.remote.withProfile.RESP)))/block">block</span><span class="symbol">:</span>&nbsp;<span class="keyword">suspend </span><span class="symbol">(</span><a href="-profile/index.html"><span class="identifier">Profile</span></a><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<a href="with-profile.html#RESP"><span class="identifier">RESP</span></a><span class="symbol">)</span><span class="symbol">: </span><a href="with-profile.html#RESP"><span class="identifier">RESP</span></a></code>
+<p>A helper extension function for processing with authenticated user profile.</p>
+</td>
+</tr>
+</tbody>
+</table>
+</BODY>
+</HTML>
diff --git a/api1/pl.treksoft.kvision.remote/injector-key.html b/api1/pl.treksoft.kvision.remote/injector-key.html
new file mode 100644
index 00000000..5c9bcf01
--- /dev/null
+++ b/api1/pl.treksoft.kvision.remote/injector-key.html
@@ -0,0 +1,14 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>injectorKey - kvision</title>
+<link rel="stylesheet" href="../../style.css">
+</HEAD>
+<BODY>
+<a href="../index.html">kvision</a>&nbsp;/&nbsp;<a href="index.html">pl.treksoft.kvision.remote</a>&nbsp;/&nbsp;<a href="./injector-key.html">injectorKey</a><br/>
+<br/>
+<h1>injectorKey</h1>
+<a name="pl.treksoft.kvision.remote$injectorKey"></a>
+<code><span class="keyword">val </span><span class="identifier">injectorKey</span><span class="symbol">: </span><span class="identifier">&lt;ERROR CLASS&gt;</span></code>
+</BODY>
+</HTML>
diff --git a/api1/pl.treksoft.kvision.remote/injector.html b/api1/pl.treksoft.kvision.remote/injector.html
new file mode 100644
index 00000000..b3251d14
--- /dev/null
+++ b/api1/pl.treksoft.kvision.remote/injector.html
@@ -0,0 +1,14 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>injector - kvision</title>
+<link rel="stylesheet" href="../../style.css">
+</HEAD>
+<BODY>
+<a href="../index.html">kvision</a>&nbsp;/&nbsp;<a href="index.html">pl.treksoft.kvision.remote</a>&nbsp;/&nbsp;<a href="./injector.html">injector</a><br/>
+<br/>
+<h1>injector</h1>
+<a name="pl.treksoft.kvision.remote$injector#"></a>
+<code><span class="keyword">val </span><span class="identifier">&lt;ERROR CLASS&gt;</span><span class="symbol">.</span><span class="identifier">injector</span><span class="symbol">: </span><span class="identifier">&lt;ERROR CLASS&gt;</span></code>
+</BODY>
+</HTML>
diff --git a/api1/pl.treksoft.kvision.remote/kvision-init.html b/api1/pl.treksoft.kvision.remote/kvision-init.html
new file mode 100644
index 00000000..1892b1fa
--- /dev/null
+++ b/api1/pl.treksoft.kvision.remote/kvision-init.html
@@ -0,0 +1,18 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>kvisionInit - kvision</title>
+<link rel="stylesheet" href="../../style.css">
+</HEAD>
+<BODY>
+<a href="../index.html">kvision</a>&nbsp;/&nbsp;<a href="index.html">pl.treksoft.kvision.remote</a>&nbsp;/&nbsp;<a href="./kvision-init.html">kvisionInit</a><br/>
+<br/>
+<h1>kvisionInit</h1>
+<a name="pl.treksoft.kvision.remote$kvisionInit()"></a>
+<code><span class="keyword">fun </span><span class="identifier">&lt;ERROR CLASS&gt;</span><span class="symbol">.</span><span class="identifier">kvisionInit</span><span class="symbol">(</span><span class="symbol">)</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html"><span class="identifier">Unit</span></a></code>
+<p>Initialization function for Jooby server.</p>
+<a name="pl.treksoft.kvision.remote$kvisionInit(, kotlin.Array(()))"></a>
+<code><span class="keyword">fun </span><span class="identifier">&lt;ERROR CLASS&gt;</span><span class="symbol">.</span><span class="identifier">kvisionInit</span><span class="symbol">(</span><span class="keyword">vararg</span> <span class="identifier" id="pl.treksoft.kvision.remote$kvisionInit(, kotlin.Array(()))/modules">modules</span><span class="symbol">:</span>&nbsp;<span class="identifier">&lt;ERROR CLASS&gt;</span><span class="symbol">)</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html"><span class="identifier">Unit</span></a></code>
+<p>Initialization function for Ktor server.</p>
+</BODY>
+</HTML>
diff --git a/api1/pl.treksoft.kvision.remote/obj.html b/api1/pl.treksoft.kvision.remote/obj.html
new file mode 100644
index 00000000..86b2d05f
--- /dev/null
+++ b/api1/pl.treksoft.kvision.remote/obj.html
@@ -0,0 +1,15 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>obj - kvision</title>
+<link rel="stylesheet" href="../../style.css">
+</HEAD>
+<BODY>
+<a href="../index.html">kvision</a>&nbsp;/&nbsp;<a href="index.html">pl.treksoft.kvision.remote</a>&nbsp;/&nbsp;<a href="./obj.html">obj</a><br/>
+<br/>
+<h1>obj</h1>
+<a name="pl.treksoft.kvision.remote$obj(kotlin.Function1((kotlin.Any, kotlin.Unit)))"></a>
+<code><span class="keyword">fun </span><span class="identifier">obj</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.remote$obj(kotlin.Function1((kotlin.Any, kotlin.Unit)))/init">init</span><span class="symbol">:</span>&nbsp;<span class="keyword">dynamic</span><span class="symbol">.</span><span class="symbol">(</span><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html"><span class="identifier">Unit</span></a><span class="symbol">)</span><span class="symbol">: </span><span class="keyword">dynamic</span></code>
+<p>Helper function for creating JavaScript objects.</p>
+</BODY>
+</HTML>
diff --git a/api1/pl.treksoft.kvision.remote/with-profile.html b/api1/pl.treksoft.kvision.remote/with-profile.html
new file mode 100644
index 00000000..41a2dba8
--- /dev/null
+++ b/api1/pl.treksoft.kvision.remote/with-profile.html
@@ -0,0 +1,17 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>withProfile - kvision</title>
+<link rel="stylesheet" href="../../style.css">
+</HEAD>
+<BODY>
+<a href="../index.html">kvision</a>&nbsp;/&nbsp;<a href="index.html">pl.treksoft.kvision.remote</a>&nbsp;/&nbsp;<a href="./with-profile.html">withProfile</a><br/>
+<br/>
+<h1>withProfile</h1>
+<a name="pl.treksoft.kvision.remote$withProfile(, kotlin.coroutines.SuspendFunction1((pl.treksoft.kvision.remote.Profile, pl.treksoft.kvision.remote.withProfile.RESP)))"></a>
+<code><span class="keyword">suspend</span> <span class="keyword">fun </span><span class="symbol">&lt;</span><span class="identifier">RESP</span><span class="symbol">&gt;</span> <span class="identifier">&lt;ERROR CLASS&gt;</span><span class="symbol">.</span><span class="identifier">withProfile</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.remote$withProfile(, kotlin.coroutines.SuspendFunction1((pl.treksoft.kvision.remote.Profile, pl.treksoft.kvision.remote.withProfile.RESP)))/block">block</span><span class="symbol">:</span>&nbsp;<span class="keyword">suspend </span><span class="symbol">(</span><a href="-profile/index.html"><span class="identifier">Profile</span></a><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<a href="with-profile.html#RESP"><span class="identifier">RESP</span></a><span class="symbol">)</span><span class="symbol">: </span><a href="with-profile.html#RESP"><span class="identifier">RESP</span></a></code><br/>
+<a name="pl.treksoft.kvision.remote$withProfile(kotlin.coroutines.SuspendFunction1((pl.treksoft.kvision.remote.Profile, pl.treksoft.kvision.remote.withProfile.RESP)))"></a>
+<code><span class="keyword">suspend</span> <span class="keyword">fun </span><span class="symbol">&lt;</span><span class="identifier">RESP</span><span class="symbol">&gt;</span> <span class="identifier">withProfile</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.remote$withProfile(kotlin.coroutines.SuspendFunction1((pl.treksoft.kvision.remote.Profile, pl.treksoft.kvision.remote.withProfile.RESP)))/block">block</span><span class="symbol">:</span>&nbsp;<span class="keyword">suspend </span><span class="symbol">(</span><a href="-profile/index.html"><span class="identifier">Profile</span></a><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<a href="with-profile.html#RESP"><span class="identifier">RESP</span></a><span class="symbol">)</span><span class="symbol">: </span><a href="with-profile.html#RESP"><span class="identifier">RESP</span></a></code>
+<p>A helper extension function for processing with authenticated user profile.</p>
+</BODY>
+</HTML>