diff --git a/.eslintignore b/.eslintignore
new file mode 100644
index 0000000000000000000000000000000000000000..3c3629e647f5ddf82548912e337bea9826b434af
--- /dev/null
+++ b/.eslintignore
@@ -0,0 +1 @@
+node_modules
diff --git a/.eslintrc.js b/.eslintrc.js
new file mode 100644
index 0000000000000000000000000000000000000000..3af391c3d07f11465cf93e6770e06de31c8ba480
--- /dev/null
+++ b/.eslintrc.js
@@ -0,0 +1,45 @@
+module.exports = {
+  root: true, // Make sure eslint picks up the config at the root of the directory
+  parser: '@typescript-eslint/parser',
+  parserOptions: {
+    ecmaVersion: 2020, // Use the latest ecmascript standard
+    sourceType: 'module', // Allows using import/export statements
+    ecmaFeatures: {
+      jsx: true, // Enable JSX since we're using React
+    },
+  },
+  settings: {
+    react: {
+      version: 'detect', // Automatically detect the react version
+    },
+  },
+  env: {
+    browser: true, // Enables browser globals like window and document
+    amd: true, // Enables require() and define() as global variables as per the amd spec.
+    node: true, // Enables Node.js global variables and Node.js scoping.
+  },
+  plugins: ['simple-import-sort'],
+  extends: [
+    'eslint:recommended',
+    'plugin:react/recommended',
+    'plugin:jsx-a11y/recommended',
+    'plugin:prettier/recommended', // Make this the last element so prettier config overrides other formatting rules
+    'plugin:@typescript-eslint/eslint-recommended',
+    'plugin:@typescript-eslint/recommended',
+    'plugin:react-hooks/recommended',
+    'prettier/@typescript-eslint',
+  ],
+  rules: {
+    'prettier/prettier': ['error', {}, { usePrettierrc: true }], // Use our .prettierrc file as source
+    'react/react-in-jsx-scope': 'off',
+    'react/prop-types': 'off',
+    'jsx-a11y/anchor-is-valid': [
+      'error',
+      {
+        components: ['Link'],
+        specialLink: ['hrefLeft', 'hrefRight'],
+        aspects: ['invalidHref', 'preferButton'],
+      },
+    ],
+  },
+};
diff --git a/.gitignore b/.gitignore
index fab25c561a36b87531568565e05be49d44a79e7f..b888588fabf938f358d21d590fbc0e25cba3ade2 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,4 +1,7 @@
 node_modules
 junit.xml
 coverage/
-build/
\ No newline at end of file
+build/
+**/*.crt
+**/*.key
+src/testy.ts
\ No newline at end of file
diff --git a/package.json b/package.json
index 8b26efdee4e8c463f2e68ef261788a664ec3ffa9..f5cdb3c5931a26979397d99e5aa62faf1c193a0b 100644
--- a/package.json
+++ b/package.json
@@ -6,8 +6,7 @@
   "scripts": {
     "dev": "tsc -w --outDir build",
     "build": "tsc --outDir build",
-    "test": "mocha tests/unit",
-    "test:device": "mocha tests/integration",
+    "test": "mocha tests/integration",
     "docs": "npx typedoc",
     "prepublishOnly": "npm run build && npm run docs"
   },
diff --git a/public/assets/js/search.json b/public/assets/js/search.json
index 23f6604d00495def75b8fe22a9a5b8063c677951..527fbaf1c14e153ecc7c323eaf655c52e35242a7 100644
--- a/public/assets/js/search.json
+++ b/public/assets/js/search.json
@@ -1 +1 @@
-{"kinds":{"1":"Module","32":"Variable","64":"Function","256":"Interface","1024":"Property","65536":"Type literal","4194304":"Type alias"},"rows":[{"id":0,"kind":1,"name":"\"protocol/js-usp-protobuf/protoMessage\"","url":"modules/_protocol_js_usp_protobuf_protomessage_.html","classes":"tsd-kind-module"},{"id":1,"kind":32,"name":"rootRecord","url":"modules/_protocol_js_usp_protobuf_protomessage_.html#rootrecord","classes":"tsd-kind-variable tsd-parent-kind-module tsd-is-not-exported","parent":"\"protocol/js-usp-protobuf/protoMessage\""},{"id":2,"kind":32,"name":"rootMsg","url":"modules/_protocol_js_usp_protobuf_protomessage_.html#rootmsg","classes":"tsd-kind-variable tsd-parent-kind-module tsd-is-not-exported","parent":"\"protocol/js-usp-protobuf/protoMessage\""},{"id":3,"kind":32,"name":"Header","url":"modules/_protocol_js_usp_protobuf_protomessage_.html#header","classes":"tsd-kind-variable tsd-parent-kind-module tsd-is-not-exported","parent":"\"protocol/js-usp-protobuf/protoMessage\""},{"id":4,"kind":32,"name":"createRecord","url":"modules/_protocol_js_usp_protobuf_protomessage_.html#createrecord","classes":"tsd-kind-variable tsd-parent-kind-module tsd-is-not-exported","parent":"\"protocol/js-usp-protobuf/protoMessage\""},{"id":5,"kind":64,"name":"init","url":"modules/_protocol_js_usp_protobuf_protomessage_.html#init","classes":"tsd-kind-function tsd-parent-kind-module","parent":"\"protocol/js-usp-protobuf/protoMessage\""},{"id":6,"kind":64,"name":"makeGetMessage","url":"modules/_protocol_js_usp_protobuf_protomessage_.html#makegetmessage","classes":"tsd-kind-function tsd-parent-kind-module","parent":"\"protocol/js-usp-protobuf/protoMessage\""},{"id":7,"kind":64,"name":"makeDeleteMessage","url":"modules/_protocol_js_usp_protobuf_protomessage_.html#makedeletemessage","classes":"tsd-kind-function tsd-parent-kind-module","parent":"\"protocol/js-usp-protobuf/protoMessage\""},{"id":8,"kind":64,"name":"makeSetMessage","url":"modules/_protocol_js_usp_protobuf_protomessage_.html#makesetmessage","classes":"tsd-kind-function tsd-parent-kind-module","parent":"\"protocol/js-usp-protobuf/protoMessage\""},{"id":9,"kind":64,"name":"makeAddMessage","url":"modules/_protocol_js_usp_protobuf_protomessage_.html#makeaddmessage","classes":"tsd-kind-function tsd-parent-kind-module","parent":"\"protocol/js-usp-protobuf/protoMessage\""},{"id":10,"kind":64,"name":"makeOperateMessage","url":"modules/_protocol_js_usp_protobuf_protomessage_.html#makeoperatemessage","classes":"tsd-kind-function tsd-parent-kind-module","parent":"\"protocol/js-usp-protobuf/protoMessage\""},{"id":11,"kind":64,"name":"decode","url":"modules/_protocol_js_usp_protobuf_protomessage_.html#decode","classes":"tsd-kind-function tsd-parent-kind-module","parent":"\"protocol/js-usp-protobuf/protoMessage\""},{"id":12,"kind":1,"name":"\"protocol/lib\"","url":"modules/_protocol_lib_.html","classes":"tsd-kind-module"},{"id":13,"kind":32,"name":"digitRe","url":"modules/_protocol_lib_.html#digitre","classes":"tsd-kind-variable tsd-parent-kind-module tsd-is-not-exported","parent":"\"protocol/lib\""},{"id":14,"kind":32,"name":"digitDotRe","url":"modules/_protocol_lib_.html#digitdotre","classes":"tsd-kind-variable tsd-parent-kind-module tsd-is-not-exported","parent":"\"protocol/lib\""},{"id":15,"kind":64,"name":"isDigit","url":"modules/_protocol_lib_.html#isdigit","classes":"tsd-kind-function tsd-parent-kind-module tsd-is-not-exported","parent":"\"protocol/lib\""},{"id":16,"kind":64,"name":"firstIsIndex","url":"modules/_protocol_lib_.html#firstisindex","classes":"tsd-kind-function tsd-parent-kind-module tsd-is-not-exported","parent":"\"protocol/lib\""},{"id":17,"kind":64,"name":"unflatten","url":"modules/_protocol_lib_.html#unflatten","classes":"tsd-kind-function tsd-parent-kind-module","parent":"\"protocol/lib\""},{"id":18,"kind":64,"name":"search","url":"modules/_protocol_lib_.html#search","classes":"tsd-kind-function tsd-parent-kind-module","parent":"\"protocol/lib\""},{"id":19,"kind":64,"name":"_searchAll","url":"modules/_protocol_lib_.html#_searchall","classes":"tsd-kind-function tsd-parent-kind-module tsd-is-not-exported","parent":"\"protocol/lib\""},{"id":20,"kind":64,"name":"searchAll","url":"modules/_protocol_lib_.html#searchall","classes":"tsd-kind-function tsd-parent-kind-module","parent":"\"protocol/lib\""},{"id":21,"kind":64,"name":"unwrapObject","url":"modules/_protocol_lib_.html#unwrapobject","classes":"tsd-kind-function tsd-parent-kind-module","parent":"\"protocol/lib\""},{"id":22,"kind":64,"name":"unwrapArray","url":"modules/_protocol_lib_.html#unwraparray","classes":"tsd-kind-function tsd-parent-kind-module","parent":"\"protocol/lib\""},{"id":23,"kind":1,"name":"\"protocol/index\"","url":"modules/_protocol_index_.html","classes":"tsd-kind-module"},{"id":24,"kind":64,"name":"encodeGet","url":"modules/_protocol_index_.html#encodeget","classes":"tsd-kind-function tsd-parent-kind-module tsd-is-not-exported","parent":"\"protocol/index\""},{"id":25,"kind":64,"name":"encodeSet","url":"modules/_protocol_index_.html#encodeset","classes":"tsd-kind-function tsd-parent-kind-module tsd-is-not-exported","parent":"\"protocol/index\""},{"id":26,"kind":64,"name":"encodeOperate","url":"modules/_protocol_index_.html#encodeoperate","classes":"tsd-kind-function tsd-parent-kind-module tsd-is-not-exported","parent":"\"protocol/index\""},{"id":27,"kind":64,"name":"extractType","url":"modules/_protocol_index_.html#extracttype","classes":"tsd-kind-function tsd-parent-kind-module tsd-is-not-exported","parent":"\"protocol/index\""},{"id":28,"kind":64,"name":"decodeGet","url":"modules/_protocol_index_.html#decodeget","classes":"tsd-kind-function tsd-parent-kind-module tsd-is-not-exported","parent":"\"protocol/index\""},{"id":29,"kind":32,"name":"ignorableTypes","url":"modules/_protocol_index_.html#ignorabletypes","classes":"tsd-kind-variable tsd-parent-kind-module tsd-is-not-exported","parent":"\"protocol/index\""},{"id":30,"kind":64,"name":"decode","url":"modules/_protocol_index_.html#decode","classes":"tsd-kind-function tsd-parent-kind-module tsd-is-not-exported","parent":"\"protocol/index\""},{"id":31,"kind":64,"name":"encodeAdd","url":"modules/_protocol_index_.html#encodeadd","classes":"tsd-kind-function tsd-parent-kind-module tsd-is-not-exported","parent":"\"protocol/index\""},{"id":32,"kind":64,"name":"encodeDelete","url":"modules/_protocol_index_.html#encodedelete","classes":"tsd-kind-function tsd-parent-kind-module tsd-is-not-exported","parent":"\"protocol/index\""},{"id":33,"kind":64,"name":"encode","url":"modules/_protocol_index_.html#encode","classes":"tsd-kind-function tsd-parent-kind-module tsd-is-not-exported","parent":"\"protocol/index\""},{"id":34,"kind":32,"name":"defaultPublishEndpoint","url":"modules/_protocol_index_.html#defaultpublishendpoint","classes":"tsd-kind-variable tsd-parent-kind-module tsd-is-not-exported","parent":"\"protocol/index\""},{"id":35,"kind":32,"name":"defaultSubscribeEndpoint","url":"modules/_protocol_index_.html#defaultsubscribeendpoint","classes":"tsd-kind-variable tsd-parent-kind-module tsd-is-not-exported","parent":"\"protocol/index\""},{"id":36,"kind":64,"name":"connect","url":"modules/_protocol_index_.html#connect","classes":"tsd-kind-function tsd-parent-kind-module","parent":"\"protocol/index\""},{"id":37,"kind":64,"name":"mqtt","url":"modules/_protocol_index_.html#mqtt","classes":"tsd-kind-function tsd-parent-kind-module","parent":"\"protocol/index\""},{"id":38,"kind":1,"name":"\"lib\"","url":"modules/_lib_.html","classes":"tsd-kind-module"},{"id":39,"kind":64,"name":"timer","url":"modules/_lib_.html#timer","classes":"tsd-kind-function tsd-parent-kind-module","parent":"\"lib\""},{"id":40,"kind":64,"name":"loopTimer","url":"modules/_lib_.html#looptimer","classes":"tsd-kind-function tsd-parent-kind-module","parent":"\"lib\""},{"id":41,"kind":64,"name":"makeRouter","url":"modules/_lib_.html#makerouter","classes":"tsd-kind-function tsd-parent-kind-module","parent":"\"lib\""},{"id":42,"kind":1,"name":"\"index\"","url":"modules/_index_.html","classes":"tsd-kind-module"},{"id":43,"kind":64,"name":"addDot","url":"modules/_index_.html#adddot","classes":"tsd-kind-function tsd-parent-kind-module tsd-is-not-exported","parent":"\"index\""},{"id":44,"kind":64,"name":"splitReference","url":"modules/_index_.html#splitreference","classes":"tsd-kind-function tsd-parent-kind-module tsd-is-not-exported","parent":"\"index\""},{"id":45,"kind":64,"name":"resolveReferences","url":"modules/_index_.html#resolvereferences","classes":"tsd-kind-function tsd-parent-kind-module tsd-is-not-exported","parent":"\"index\""},{"id":46,"kind":64,"name":"throwMsgError","url":"modules/_index_.html#throwmsgerror","classes":"tsd-kind-function tsd-parent-kind-module tsd-is-not-exported","parent":"\"index\""},{"id":47,"kind":64,"name":"isReference","url":"modules/_index_.html#isreference","classes":"tsd-kind-function tsd-parent-kind-module tsd-is-not-exported","parent":"\"index\""},{"id":48,"kind":64,"name":"isError","url":"modules/_index_.html#iserror","classes":"tsd-kind-function tsd-parent-kind-module tsd-is-not-exported","parent":"\"index\""},{"id":49,"kind":64,"name":"isPromiseResult","url":"modules/_index_.html#ispromiseresult","classes":"tsd-kind-function tsd-parent-kind-module tsd-is-not-exported","parent":"\"index\""},{"id":50,"kind":32,"name":"commandsWithReturnValue","url":"modules/_index_.html#commandswithreturnvalue","classes":"tsd-kind-variable tsd-parent-kind-module tsd-is-not-exported","parent":"\"index\""},{"id":51,"kind":64,"name":"decode","url":"modules/_index_.html#decode","classes":"tsd-kind-function tsd-parent-kind-module tsd-is-not-exported","parent":"\"index\""},{"id":52,"kind":64,"name":"handleSend","url":"modules/_index_.html#handlesend","classes":"tsd-kind-function tsd-parent-kind-module tsd-is-not-exported","parent":"\"index\""},{"id":53,"kind":64,"name":"makeGet","url":"modules/_index_.html#makeget","classes":"tsd-kind-function tsd-parent-kind-module tsd-is-not-exported","parent":"\"index\""},{"id":54,"kind":64,"name":"makeSet","url":"modules/_index_.html#makeset","classes":"tsd-kind-function tsd-parent-kind-module tsd-is-not-exported","parent":"\"index\""},{"id":55,"kind":64,"name":"makeAdd","url":"modules/_index_.html#makeadd","classes":"tsd-kind-function tsd-parent-kind-module tsd-is-not-exported","parent":"\"index\""},{"id":56,"kind":64,"name":"makeDel","url":"modules/_index_.html#makedel","classes":"tsd-kind-function tsd-parent-kind-module tsd-is-not-exported","parent":"\"index\""},{"id":57,"kind":32,"name":"operateSubscriptionPath","url":"modules/_index_.html#operatesubscriptionpath","classes":"tsd-kind-variable tsd-parent-kind-module tsd-is-not-exported","parent":"\"index\""},{"id":58,"kind":4194304,"name":"AddFn","url":"modules/_index_.html#addfn","classes":"tsd-kind-type-alias tsd-parent-kind-module tsd-is-not-exported","parent":"\"index\""},{"id":59,"kind":65536,"name":"__type","url":"modules/_index_.html#addfn.__type","classes":"tsd-kind-type-literal tsd-parent-kind-type-alias tsd-is-not-exported","parent":"\"index\".AddFn"},{"id":60,"kind":4194304,"name":"DelFn","url":"modules/_index_.html#delfn","classes":"tsd-kind-type-alias tsd-parent-kind-module tsd-is-not-exported","parent":"\"index\""},{"id":61,"kind":65536,"name":"__type","url":"modules/_index_.html#delfn.__type-1","classes":"tsd-kind-type-literal tsd-parent-kind-type-alias tsd-is-not-exported","parent":"\"index\".DelFn"},{"id":62,"kind":64,"name":"makeOperate","url":"modules/_index_.html#makeoperate","classes":"tsd-kind-function tsd-parent-kind-module tsd-is-not-exported","parent":"\"index\""},{"id":63,"kind":64,"name":"connect","url":"modules/_index_.html#connect","classes":"tsd-kind-function tsd-parent-kind-module tsd-is-not-exported","parent":"\"index\""},{"id":64,"kind":1,"name":"\"types.d\"","url":"modules/_types_d_.html","classes":"tsd-kind-module"},{"id":65,"kind":256,"name":"ConnectOptions","url":"interfaces/_types_d_.connectoptions.html","classes":"tsd-kind-interface tsd-parent-kind-module","parent":"\"types.d\""},{"id":66,"kind":1024,"name":"toId","url":"interfaces/_types_d_.connectoptions.html#toid","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"\"types.d\".ConnectOptions"},{"id":67,"kind":1024,"name":"fromId","url":"interfaces/_types_d_.connectoptions.html#fromid","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"\"types.d\".ConnectOptions"},{"id":68,"kind":1024,"name":"publishEndpoint","url":"interfaces/_types_d_.connectoptions.html#publishendpoint","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"\"types.d\".ConnectOptions"},{"id":69,"kind":1024,"name":"subscribeEndpoint","url":"interfaces/_types_d_.connectoptions.html#subscribeendpoint","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"\"types.d\".ConnectOptions"},{"id":70,"kind":1024,"name":"port","url":"interfaces/_types_d_.connectoptions.html#port","classes":"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited","parent":"\"types.d\".ConnectOptions"},{"id":71,"kind":1024,"name":"host","url":"interfaces/_types_d_.connectoptions.html#host","classes":"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited","parent":"\"types.d\".ConnectOptions"},{"id":72,"kind":1024,"name":"hostname","url":"interfaces/_types_d_.connectoptions.html#hostname","classes":"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited","parent":"\"types.d\".ConnectOptions"},{"id":73,"kind":1024,"name":"path","url":"interfaces/_types_d_.connectoptions.html#path","classes":"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited","parent":"\"types.d\".ConnectOptions"},{"id":74,"kind":1024,"name":"protocol","url":"interfaces/_types_d_.connectoptions.html#protocol","classes":"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited","parent":"\"types.d\".ConnectOptions"},{"id":75,"kind":1024,"name":"wsOptions","url":"interfaces/_types_d_.connectoptions.html#wsoptions","classes":"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited","parent":"\"types.d\".ConnectOptions"},{"id":76,"kind":1024,"name":"keepalive","url":"interfaces/_types_d_.connectoptions.html#keepalive","classes":"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited","parent":"\"types.d\".ConnectOptions"},{"id":77,"kind":1024,"name":"clientId","url":"interfaces/_types_d_.connectoptions.html#clientid","classes":"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited","parent":"\"types.d\".ConnectOptions"},{"id":78,"kind":1024,"name":"protocolId","url":"interfaces/_types_d_.connectoptions.html#protocolid","classes":"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited","parent":"\"types.d\".ConnectOptions"},{"id":79,"kind":1024,"name":"protocolVersion","url":"interfaces/_types_d_.connectoptions.html#protocolversion","classes":"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited","parent":"\"types.d\".ConnectOptions"},{"id":80,"kind":1024,"name":"clean","url":"interfaces/_types_d_.connectoptions.html#clean","classes":"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited","parent":"\"types.d\".ConnectOptions"},{"id":81,"kind":1024,"name":"reconnectPeriod","url":"interfaces/_types_d_.connectoptions.html#reconnectperiod","classes":"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited","parent":"\"types.d\".ConnectOptions"},{"id":82,"kind":1024,"name":"connectTimeout","url":"interfaces/_types_d_.connectoptions.html#connecttimeout","classes":"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited","parent":"\"types.d\".ConnectOptions"},{"id":83,"kind":1024,"name":"username","url":"interfaces/_types_d_.connectoptions.html#username","classes":"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited","parent":"\"types.d\".ConnectOptions"},{"id":84,"kind":1024,"name":"password","url":"interfaces/_types_d_.connectoptions.html#password","classes":"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited","parent":"\"types.d\".ConnectOptions"},{"id":85,"kind":1024,"name":"incomingStore","url":"interfaces/_types_d_.connectoptions.html#incomingstore","classes":"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited","parent":"\"types.d\".ConnectOptions"},{"id":86,"kind":1024,"name":"outgoingStore","url":"interfaces/_types_d_.connectoptions.html#outgoingstore","classes":"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited","parent":"\"types.d\".ConnectOptions"},{"id":87,"kind":1024,"name":"queueQoSZero","url":"interfaces/_types_d_.connectoptions.html#queueqoszero","classes":"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited","parent":"\"types.d\".ConnectOptions"},{"id":88,"kind":1024,"name":"reschedulePings","url":"interfaces/_types_d_.connectoptions.html#reschedulepings","classes":"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited","parent":"\"types.d\".ConnectOptions"},{"id":89,"kind":1024,"name":"servers","url":"interfaces/_types_d_.connectoptions.html#servers","classes":"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited","parent":"\"types.d\".ConnectOptions"},{"id":90,"kind":1024,"name":"resubscribe","url":"interfaces/_types_d_.connectoptions.html#resubscribe","classes":"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited","parent":"\"types.d\".ConnectOptions"},{"id":91,"kind":1024,"name":"will","url":"interfaces/_types_d_.connectoptions.html#will","classes":"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited","parent":"\"types.d\".ConnectOptions"},{"id":92,"kind":1024,"name":"transformWsUrl","url":"interfaces/_types_d_.connectoptions.html#transformwsurl","classes":"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited","parent":"\"types.d\".ConnectOptions"},{"id":93,"kind":1024,"name":"properties","url":"interfaces/_types_d_.connectoptions.html#properties","classes":"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited","parent":"\"types.d\".ConnectOptions"},{"id":94,"kind":1024,"name":"key","url":"interfaces/_types_d_.connectoptions.html#key","classes":"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited","parent":"\"types.d\".ConnectOptions"},{"id":95,"kind":1024,"name":"cert","url":"interfaces/_types_d_.connectoptions.html#cert","classes":"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited","parent":"\"types.d\".ConnectOptions"},{"id":96,"kind":1024,"name":"ca","url":"interfaces/_types_d_.connectoptions.html#ca","classes":"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited","parent":"\"types.d\".ConnectOptions"},{"id":97,"kind":1024,"name":"rejectUnauthorized","url":"interfaces/_types_d_.connectoptions.html#rejectunauthorized","classes":"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited","parent":"\"types.d\".ConnectOptions"},{"id":98,"kind":256,"name":"ConnectEvents","url":"interfaces/_types_d_.connectevents.html","classes":"tsd-kind-interface tsd-parent-kind-module","parent":"\"types.d\""},{"id":99,"kind":1024,"name":"onTimeout","url":"interfaces/_types_d_.connectevents.html#ontimeout","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"\"types.d\".ConnectEvents"},{"id":100,"kind":256,"name":"Device","url":"interfaces/_types_d_.device.html","classes":"tsd-kind-interface tsd-parent-kind-module","parent":"\"types.d\""},{"id":101,"kind":1024,"name":"get","url":"interfaces/_types_d_.device.html#get","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"\"types.d\".Device"},{"id":102,"kind":65536,"name":"__type","url":"interfaces/_types_d_.device.html#get.__type-3","classes":"tsd-kind-type-literal tsd-parent-kind-property","parent":"\"types.d\".Device.get"},{"id":103,"kind":1024,"name":"set","url":"interfaces/_types_d_.device.html#set","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"\"types.d\".Device"},{"id":104,"kind":65536,"name":"__type","url":"interfaces/_types_d_.device.html#set.__type-8","classes":"tsd-kind-type-literal tsd-parent-kind-property","parent":"\"types.d\".Device.set"},{"id":105,"kind":1024,"name":"operate","url":"interfaces/_types_d_.device.html#operate","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"\"types.d\".Device"},{"id":106,"kind":65536,"name":"__type","url":"interfaces/_types_d_.device.html#operate.__type-5","classes":"tsd-kind-type-literal tsd-parent-kind-property","parent":"\"types.d\".Device.operate"},{"id":107,"kind":1024,"name":"add","url":"interfaces/_types_d_.device.html#add","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"\"types.d\".Device"},{"id":108,"kind":65536,"name":"__type","url":"interfaces/_types_d_.device.html#add.__type","classes":"tsd-kind-type-literal tsd-parent-kind-property","parent":"\"types.d\".Device.add"},{"id":109,"kind":1024,"name":"del","url":"interfaces/_types_d_.device.html#del","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"\"types.d\".Device"},{"id":110,"kind":65536,"name":"__type","url":"interfaces/_types_d_.device.html#del.__type-1","classes":"tsd-kind-type-literal tsd-parent-kind-property","parent":"\"types.d\".Device.del"},{"id":111,"kind":1024,"name":"resolve","url":"interfaces/_types_d_.device.html#resolve","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"\"types.d\".Device"},{"id":112,"kind":65536,"name":"__type","url":"interfaces/_types_d_.device.html#resolve.__type-6","classes":"tsd-kind-type-literal tsd-parent-kind-property","parent":"\"types.d\".Device.resolve"},{"id":113,"kind":1024,"name":"disconnect","url":"interfaces/_types_d_.device.html#disconnect","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"\"types.d\".Device"},{"id":114,"kind":65536,"name":"__type","url":"interfaces/_types_d_.device.html#disconnect.__type-2","classes":"tsd-kind-type-literal tsd-parent-kind-property","parent":"\"types.d\".Device.disconnect"},{"id":115,"kind":1024,"name":"id","url":"interfaces/_types_d_.device.html#id","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"\"types.d\".Device"},{"id":116,"kind":65536,"name":"__type","url":"interfaces/_types_d_.device.html#id.__type-4","classes":"tsd-kind-type-literal tsd-parent-kind-property","parent":"\"types.d\".Device.id"},{"id":117,"kind":1024,"name":"roles","url":"interfaces/_types_d_.device.html#roles","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"\"types.d\".Device"},{"id":118,"kind":65536,"name":"__type","url":"interfaces/_types_d_.device.html#roles.__type-7","classes":"tsd-kind-type-literal tsd-parent-kind-property","parent":"\"types.d\".Device.roles"},{"id":119,"kind":256,"name":"OperateOptions","url":"interfaces/_types_d_.operateoptions.html","classes":"tsd-kind-interface tsd-parent-kind-module","parent":"\"types.d\""},{"id":120,"kind":1024,"name":"ID","url":"interfaces/_types_d_.operateoptions.html#id","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"\"types.d\".OperateOptions"},{"id":121,"kind":1024,"name":"Persistent","url":"interfaces/_types_d_.operateoptions.html#persistent","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"\"types.d\".OperateOptions"},{"id":122,"kind":256,"name":"EncodeArgs","url":"interfaces/_types_d_.encodeargs.html","classes":"tsd-kind-interface tsd-parent-kind-module","parent":"\"types.d\""},{"id":123,"kind":1024,"name":"path","url":"interfaces/_types_d_.encodeargs.html#path","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"\"types.d\".EncodeArgs"},{"id":124,"kind":1024,"name":"paths","url":"interfaces/_types_d_.encodeargs.html#paths","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"\"types.d\".EncodeArgs"},{"id":125,"kind":1024,"name":"value","url":"interfaces/_types_d_.encodeargs.html#value","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"\"types.d\".EncodeArgs"},{"id":126,"kind":1024,"name":"input","url":"interfaces/_types_d_.encodeargs.html#input","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"\"types.d\".EncodeArgs"},{"id":127,"kind":1024,"name":"action","url":"interfaces/_types_d_.encodeargs.html#action","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"\"types.d\".EncodeArgs"},{"id":128,"kind":1024,"name":"operateID","url":"interfaces/_types_d_.encodeargs.html#operateid","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"\"types.d\".EncodeArgs"},{"id":129,"kind":256,"name":"DeviceError","url":"interfaces/_types_d_.deviceerror.html","classes":"tsd-kind-interface tsd-parent-kind-module","parent":"\"types.d\""},{"id":130,"kind":1024,"name":"type","url":"interfaces/_types_d_.deviceerror.html#type","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"\"types.d\".DeviceError"},{"id":131,"kind":1024,"name":"reason","url":"interfaces/_types_d_.deviceerror.html#reason","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"\"types.d\".DeviceError"},{"id":132,"kind":1024,"name":"path","url":"interfaces/_types_d_.deviceerror.html#path","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"\"types.d\".DeviceError"},{"id":133,"kind":256,"name":"BaseMessage","url":"interfaces/_types_d_.basemessage.html","classes":"tsd-kind-interface tsd-parent-kind-module","parent":"\"types.d\""},{"id":134,"kind":1024,"name":"id","url":"interfaces/_types_d_.basemessage.html#id","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"\"types.d\".BaseMessage"},{"id":135,"kind":1024,"name":"type","url":"interfaces/_types_d_.basemessage.html#type","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"\"types.d\".BaseMessage"},{"id":136,"kind":1024,"name":"path","url":"interfaces/_types_d_.basemessage.html#path","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"\"types.d\".BaseMessage"},{"id":137,"kind":1024,"name":"data","url":"interfaces/_types_d_.basemessage.html#data","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"\"types.d\".BaseMessage"},{"id":138,"kind":65536,"name":"__type","url":"interfaces/_types_d_.basemessage.html#data.__type","classes":"tsd-kind-type-literal tsd-parent-kind-property","parent":"\"types.d\".BaseMessage.data"},{"id":139,"kind":256,"name":"ErrorMessage","url":"interfaces/_types_d_.errormessage.html","classes":"tsd-kind-interface tsd-parent-kind-module","parent":"\"types.d\""},{"id":140,"kind":1024,"name":"type","url":"interfaces/_types_d_.errormessage.html#type","classes":"tsd-kind-property tsd-parent-kind-interface tsd-is-overwrite","parent":"\"types.d\".ErrorMessage"},{"id":141,"kind":1024,"name":"data","url":"interfaces/_types_d_.errormessage.html#data","classes":"tsd-kind-property tsd-parent-kind-interface tsd-is-overwrite","parent":"\"types.d\".ErrorMessage"},{"id":142,"kind":65536,"name":"__type","url":"interfaces/_types_d_.errormessage.html#data.__type","classes":"tsd-kind-type-literal tsd-parent-kind-property","parent":"\"types.d\".ErrorMessage.data"},{"id":143,"kind":32,"name":"reason","url":"interfaces/_types_d_.errormessage.html#data.__type.reason","classes":"tsd-kind-variable tsd-parent-kind-type-literal","parent":"\"types.d\".ErrorMessage.data.__type"},{"id":144,"kind":1024,"name":"id","url":"interfaces/_types_d_.errormessage.html#id","classes":"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited","parent":"\"types.d\".ErrorMessage"},{"id":145,"kind":1024,"name":"path","url":"interfaces/_types_d_.errormessage.html#path","classes":"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited","parent":"\"types.d\".ErrorMessage"},{"id":146,"kind":256,"name":"GetMessage","url":"interfaces/_types_d_.getmessage.html","classes":"tsd-kind-interface tsd-parent-kind-module","parent":"\"types.d\""},{"id":147,"kind":1024,"name":"type","url":"interfaces/_types_d_.getmessage.html#type","classes":"tsd-kind-property tsd-parent-kind-interface tsd-is-overwrite","parent":"\"types.d\".GetMessage"},{"id":148,"kind":1024,"name":"data","url":"interfaces/_types_d_.getmessage.html#data","classes":"tsd-kind-property tsd-parent-kind-interface tsd-is-overwrite","parent":"\"types.d\".GetMessage"},{"id":149,"kind":1024,"name":"id","url":"interfaces/_types_d_.getmessage.html#id","classes":"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited","parent":"\"types.d\".GetMessage"},{"id":150,"kind":1024,"name":"path","url":"interfaces/_types_d_.getmessage.html#path","classes":"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited","parent":"\"types.d\".GetMessage"},{"id":151,"kind":256,"name":"SetMessage","url":"interfaces/_types_d_.setmessage.html","classes":"tsd-kind-interface tsd-parent-kind-module","parent":"\"types.d\""},{"id":152,"kind":1024,"name":"type","url":"interfaces/_types_d_.setmessage.html#type","classes":"tsd-kind-property tsd-parent-kind-interface tsd-is-overwrite","parent":"\"types.d\".SetMessage"},{"id":153,"kind":1024,"name":"data","url":"interfaces/_types_d_.setmessage.html#data","classes":"tsd-kind-property tsd-parent-kind-interface tsd-is-overwrite","parent":"\"types.d\".SetMessage"},{"id":154,"kind":65536,"name":"__type","url":"interfaces/_types_d_.setmessage.html#data.__type","classes":"tsd-kind-type-literal tsd-parent-kind-property","parent":"\"types.d\".SetMessage.data"},{"id":155,"kind":32,"name":"updated","url":"interfaces/_types_d_.setmessage.html#data.__type.updated","classes":"tsd-kind-variable tsd-parent-kind-type-literal","parent":"\"types.d\".SetMessage.data.__type"},{"id":156,"kind":1024,"name":"id","url":"interfaces/_types_d_.setmessage.html#id","classes":"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited","parent":"\"types.d\".SetMessage"},{"id":157,"kind":1024,"name":"path","url":"interfaces/_types_d_.setmessage.html#path","classes":"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited","parent":"\"types.d\".SetMessage"},{"id":158,"kind":256,"name":"OperateMessage","url":"interfaces/_types_d_.operatemessage.html","classes":"tsd-kind-interface tsd-parent-kind-module","parent":"\"types.d\""},{"id":159,"kind":1024,"name":"type","url":"interfaces/_types_d_.operatemessage.html#type","classes":"tsd-kind-property tsd-parent-kind-interface tsd-is-overwrite","parent":"\"types.d\".OperateMessage"},{"id":160,"kind":1024,"name":"data","url":"interfaces/_types_d_.operatemessage.html#data","classes":"tsd-kind-property tsd-parent-kind-interface tsd-is-overwrite","parent":"\"types.d\".OperateMessage"},{"id":161,"kind":1024,"name":"id","url":"interfaces/_types_d_.operatemessage.html#id","classes":"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited","parent":"\"types.d\".OperateMessage"},{"id":162,"kind":1024,"name":"path","url":"interfaces/_types_d_.operatemessage.html#path","classes":"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited","parent":"\"types.d\".OperateMessage"},{"id":163,"kind":256,"name":"NotifyMessage","url":"interfaces/_types_d_.notifymessage.html","classes":"tsd-kind-interface tsd-parent-kind-module","parent":"\"types.d\""},{"id":164,"kind":1024,"name":"type","url":"interfaces/_types_d_.notifymessage.html#type","classes":"tsd-kind-property tsd-parent-kind-interface tsd-is-overwrite","parent":"\"types.d\".NotifyMessage"},{"id":165,"kind":1024,"name":"data","url":"interfaces/_types_d_.notifymessage.html#data","classes":"tsd-kind-property tsd-parent-kind-interface tsd-is-overwrite","parent":"\"types.d\".NotifyMessage"},{"id":166,"kind":1024,"name":"id","url":"interfaces/_types_d_.notifymessage.html#id","classes":"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited","parent":"\"types.d\".NotifyMessage"},{"id":167,"kind":1024,"name":"path","url":"interfaces/_types_d_.notifymessage.html#path","classes":"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited","parent":"\"types.d\".NotifyMessage"},{"id":168,"kind":256,"name":"AddMessage","url":"interfaces/_types_d_.addmessage.html","classes":"tsd-kind-interface tsd-parent-kind-module","parent":"\"types.d\""},{"id":169,"kind":1024,"name":"type","url":"interfaces/_types_d_.addmessage.html#type","classes":"tsd-kind-property tsd-parent-kind-interface tsd-is-overwrite","parent":"\"types.d\".AddMessage"},{"id":170,"kind":1024,"name":"data","url":"interfaces/_types_d_.addmessage.html#data","classes":"tsd-kind-property tsd-parent-kind-interface tsd-is-overwrite","parent":"\"types.d\".AddMessage"},{"id":171,"kind":1024,"name":"id","url":"interfaces/_types_d_.addmessage.html#id","classes":"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited","parent":"\"types.d\".AddMessage"},{"id":172,"kind":1024,"name":"path","url":"interfaces/_types_d_.addmessage.html#path","classes":"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited","parent":"\"types.d\".AddMessage"},{"id":173,"kind":256,"name":"DeleteMessage","url":"interfaces/_types_d_.deletemessage.html","classes":"tsd-kind-interface tsd-parent-kind-module","parent":"\"types.d\""},{"id":174,"kind":1024,"name":"type","url":"interfaces/_types_d_.deletemessage.html#type","classes":"tsd-kind-property tsd-parent-kind-interface tsd-is-overwrite","parent":"\"types.d\".DeleteMessage"},{"id":175,"kind":1024,"name":"data","url":"interfaces/_types_d_.deletemessage.html#data","classes":"tsd-kind-property tsd-parent-kind-interface tsd-is-overwrite","parent":"\"types.d\".DeleteMessage"},{"id":176,"kind":65536,"name":"__type","url":"interfaces/_types_d_.deletemessage.html#data.__type","classes":"tsd-kind-type-literal tsd-parent-kind-property","parent":"\"types.d\".DeleteMessage.data"},{"id":177,"kind":32,"name":"deleted","url":"interfaces/_types_d_.deletemessage.html#data.__type.deleted","classes":"tsd-kind-variable tsd-parent-kind-type-literal","parent":"\"types.d\".DeleteMessage.data.__type"},{"id":178,"kind":1024,"name":"id","url":"interfaces/_types_d_.deletemessage.html#id","classes":"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited","parent":"\"types.d\".DeleteMessage"},{"id":179,"kind":1024,"name":"path","url":"interfaces/_types_d_.deletemessage.html#path","classes":"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited","parent":"\"types.d\".DeleteMessage"},{"id":180,"kind":256,"name":"ProtocolArgs","url":"interfaces/_types_d_.protocolargs.html","classes":"tsd-kind-interface tsd-parent-kind-module","parent":"\"types.d\""},{"id":181,"kind":1024,"name":"onMessage","url":"interfaces/_types_d_.protocolargs.html#onmessage","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"\"types.d\".ProtocolArgs"},{"id":182,"kind":65536,"name":"__type","url":"interfaces/_types_d_.protocolargs.html#onmessage.__type-1","classes":"tsd-kind-type-literal tsd-parent-kind-property","parent":"\"types.d\".ProtocolArgs.onMessage"},{"id":183,"kind":1024,"name":"onError","url":"interfaces/_types_d_.protocolargs.html#onerror","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"\"types.d\".ProtocolArgs"},{"id":184,"kind":65536,"name":"__type","url":"interfaces/_types_d_.protocolargs.html#onerror.__type","classes":"tsd-kind-type-literal tsd-parent-kind-property","parent":"\"types.d\".ProtocolArgs.onError"},{"id":185,"kind":256,"name":"InitResult","url":"interfaces/_types_d_.initresult.html","classes":"tsd-kind-interface tsd-parent-kind-module","parent":"\"types.d\""},{"id":186,"kind":1024,"name":"timeout","url":"interfaces/_types_d_.initresult.html#timeout","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"\"types.d\".InitResult"},{"id":187,"kind":256,"name":"Protocol","url":"interfaces/_types_d_.protocol.html","classes":"tsd-kind-interface tsd-parent-kind-module","parent":"\"types.d\""},{"id":188,"kind":1024,"name":"init","url":"interfaces/_types_d_.protocol.html#init","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"\"types.d\".Protocol"},{"id":189,"kind":65536,"name":"__type","url":"interfaces/_types_d_.protocol.html#init.__type-2","classes":"tsd-kind-type-literal tsd-parent-kind-property","parent":"\"types.d\".Protocol.init"},{"id":190,"kind":1024,"name":"close","url":"interfaces/_types_d_.protocol.html#close","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"\"types.d\".Protocol"},{"id":191,"kind":65536,"name":"__type","url":"interfaces/_types_d_.protocol.html#close.__type","classes":"tsd-kind-type-literal tsd-parent-kind-property","parent":"\"types.d\".Protocol.close"},{"id":192,"kind":1024,"name":"send","url":"interfaces/_types_d_.protocol.html#send","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"\"types.d\".Protocol"},{"id":193,"kind":65536,"name":"__type","url":"interfaces/_types_d_.protocol.html#send.__type-3","classes":"tsd-kind-type-literal tsd-parent-kind-property","parent":"\"types.d\".Protocol.send"},{"id":194,"kind":1024,"name":"encode","url":"interfaces/_types_d_.protocol.html#encode","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"\"types.d\".Protocol"},{"id":195,"kind":65536,"name":"__type","url":"interfaces/_types_d_.protocol.html#encode.__type-1","classes":"tsd-kind-type-literal tsd-parent-kind-property","parent":"\"types.d\".Protocol.encode"},{"id":196,"kind":256,"name":"ProtocolEvents","url":"interfaces/_types_d_.protocolevents.html","classes":"tsd-kind-interface tsd-parent-kind-module","parent":"\"types.d\""},{"id":197,"kind":1024,"name":"onMessage","url":"interfaces/_types_d_.protocolevents.html#onmessage","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"\"types.d\".ProtocolEvents"},{"id":198,"kind":65536,"name":"__type","url":"interfaces/_types_d_.protocolevents.html#onmessage.__type","classes":"tsd-kind-type-literal tsd-parent-kind-property","parent":"\"types.d\".ProtocolEvents.onMessage"},{"id":199,"kind":256,"name":"MQTTRequest","url":"interfaces/_types_d_.mqttrequest.html","classes":"tsd-kind-interface tsd-parent-kind-module","parent":"\"types.d\""},{"id":200,"kind":1024,"name":"id","url":"interfaces/_types_d_.mqttrequest.html#id","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"\"types.d\".MQTTRequest"},{"id":201,"kind":1024,"name":"data","url":"interfaces/_types_d_.mqttrequest.html#data","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"\"types.d\".MQTTRequest"},{"id":202,"kind":4194304,"name":"IClientOptions","url":"modules/_types_d_.html#iclientoptions","classes":"tsd-kind-type-alias tsd-parent-kind-module","parent":"\"types.d\""},{"id":203,"kind":4194304,"name":"PromiseResult","url":"modules/_types_d_.html#promiseresult","classes":"tsd-kind-type-alias tsd-parent-kind-module","parent":"\"types.d\""},{"id":204,"kind":65536,"name":"__type","url":"modules/_types_d_.html#promiseresult.__type-3","classes":"tsd-kind-type-literal tsd-parent-kind-type-alias","parent":"\"types.d\".PromiseResult"},{"id":205,"kind":32,"name":"resolve","url":"modules/_types_d_.html#promiseresult.__type-3.resolve","classes":"tsd-kind-variable tsd-parent-kind-type-literal","parent":"\"types.d\".PromiseResult.__type"},{"id":206,"kind":32,"name":"reject","url":"modules/_types_d_.html#promiseresult.__type-3.reject","classes":"tsd-kind-variable tsd-parent-kind-type-literal","parent":"\"types.d\".PromiseResult.__type"},{"id":207,"kind":4194304,"name":"Router","url":"modules/_types_d_.html#router","classes":"tsd-kind-type-alias tsd-parent-kind-module","parent":"\"types.d\""},{"id":208,"kind":4194304,"name":"SendFn","url":"modules/_types_d_.html#sendfn","classes":"tsd-kind-type-alias tsd-parent-kind-module","parent":"\"types.d\""},{"id":209,"kind":65536,"name":"__type","url":"modules/_types_d_.html#sendfn.__type-5","classes":"tsd-kind-type-literal tsd-parent-kind-type-alias","parent":"\"types.d\".SendFn"},{"id":210,"kind":4194304,"name":"OperateFunction","url":"modules/_types_d_.html#operatefunction","classes":"tsd-kind-type-alias tsd-parent-kind-module","parent":"\"types.d\""},{"id":211,"kind":65536,"name":"__type","url":"modules/_types_d_.html#operatefunction.__type-2","classes":"tsd-kind-type-literal tsd-parent-kind-type-alias","parent":"\"types.d\".OperateFunction"},{"id":212,"kind":4194304,"name":"OperateCleanupFunction","url":"modules/_types_d_.html#operatecleanupfunction","classes":"tsd-kind-type-alias tsd-parent-kind-module","parent":"\"types.d\""},{"id":213,"kind":65536,"name":"__type","url":"modules/_types_d_.html#operatecleanupfunction.__type-1","classes":"tsd-kind-type-literal tsd-parent-kind-type-alias","parent":"\"types.d\".OperateCleanupFunction"},{"id":214,"kind":4194304,"name":"Role","url":"modules/_types_d_.html#role","classes":"tsd-kind-type-alias tsd-parent-kind-module","parent":"\"types.d\""},{"id":215,"kind":4194304,"name":"JSObject","url":"modules/_types_d_.html#jsobject","classes":"tsd-kind-type-alias tsd-parent-kind-module","parent":"\"types.d\""},{"id":216,"kind":65536,"name":"__type","url":"modules/_types_d_.html#jsobject.__type","classes":"tsd-kind-type-literal tsd-parent-kind-type-alias","parent":"\"types.d\".JSObject"},{"id":217,"kind":4194304,"name":"CommandType","url":"modules/_types_d_.html#commandtype","classes":"tsd-kind-type-alias tsd-parent-kind-module","parent":"\"types.d\""},{"id":218,"kind":4194304,"name":"MessageType","url":"modules/_types_d_.html#messagetype","classes":"tsd-kind-type-alias tsd-parent-kind-module","parent":"\"types.d\""},{"id":219,"kind":4194304,"name":"JSType","url":"modules/_types_d_.html#jstype","classes":"tsd-kind-type-alias tsd-parent-kind-module","parent":"\"types.d\""},{"id":220,"kind":4194304,"name":"USPMessage","url":"modules/_types_d_.html#uspmessage","classes":"tsd-kind-type-alias tsd-parent-kind-module","parent":"\"types.d\""},{"id":221,"kind":4194304,"name":"RejectFn","url":"modules/_types_d_.html#rejectfn","classes":"tsd-kind-type-alias tsd-parent-kind-module","parent":"\"types.d\""},{"id":222,"kind":65536,"name":"__type","url":"modules/_types_d_.html#rejectfn.__type-4","classes":"tsd-kind-type-literal tsd-parent-kind-type-alias","parent":"\"types.d\".RejectFn"}],"index":{"version":"2.3.9","fields":["name","parent"],"fieldVectors":[["name/0",[0,15.968,1,15.968,2,15.968]],["parent/0",[]],["name/1",[3,50.245]],["parent/1",[0,1.662,1,1.662,2,1.662]],["name/2",[4,50.245]],["parent/2",[0,1.662,1,1.662,2,1.662]],["name/3",[5,50.245]],["parent/3",[0,1.662,1,1.662,2,1.662]],["name/4",[6,50.245]],["parent/4",[0,1.662,1,1.662,2,1.662]],["name/5",[7,45.118]],["parent/5",[0,1.662,1,1.662,2,1.662]],["name/6",[8,50.245]],["parent/6",[0,1.662,1,1.662,2,1.662]],["name/7",[9,50.245]],["parent/7",[0,1.662,1,1.662,2,1.662]],["name/8",[10,50.245]],["parent/8",[0,1.662,1,1.662,2,1.662]],["name/9",[11,50.245]],["parent/9",[0,1.662,1,1.662,2,1.662]],["name/10",[12,50.245]],["parent/10",[0,1.662,1,1.662,2,1.662]],["name/11",[13,41.741]],["parent/11",[0,1.662,1,1.662,2,1.662]],["name/12",[14,29.801]],["parent/12",[]],["name/13",[15,50.245]],["parent/13",[14,3.053]],["name/14",[16,50.245]],["parent/14",[14,3.053]],["name/15",[17,50.245]],["parent/15",[14,3.053]],["name/16",[18,50.245]],["parent/16",[14,3.053]],["name/17",[19,50.245]],["parent/17",[14,3.053]],["name/18",[20,50.245]],["parent/18",[14,3.053]],["name/19",[21,50.245]],["parent/19",[14,3.053]],["name/20",[22,50.245]],["parent/20",[14,3.053]],["name/21",[23,50.245]],["parent/21",[14,3.053]],["name/22",[24,50.245]],["parent/22",[14,3.053]],["name/23",[25,26.806]],["parent/23",[]],["name/24",[26,50.245]],["parent/24",[25,2.746]],["name/25",[27,50.245]],["parent/25",[25,2.746]],["name/26",[28,50.245]],["parent/26",[25,2.746]],["name/27",[29,50.245]],["parent/27",[25,2.746]],["name/28",[30,50.245]],["parent/28",[25,2.746]],["name/29",[31,50.245]],["parent/29",[25,2.746]],["name/30",[13,41.741]],["parent/30",[25,2.746]],["name/31",[32,50.245]],["parent/31",[25,2.746]],["name/32",[33,50.245]],["parent/32",[25,2.746]],["name/33",[34,45.118]],["parent/33",[25,2.746]],["name/34",[35,50.245]],["parent/34",[25,2.746]],["name/35",[36,50.245]],["parent/35",[25,2.746]],["name/36",[37,45.118]],["parent/36",[25,2.746]],["name/37",[38,50.245]],["parent/37",[25,2.746]],["name/38",[39,39.218]],["parent/38",[]],["name/39",[40,50.245]],["parent/39",[39,4.018]],["name/40",[41,50.245]],["parent/40",[39,4.018]],["name/41",[42,50.245]],["parent/41",[39,4.018]],["name/42",[43,23.999]],["parent/42",[]],["name/43",[44,50.245]],["parent/43",[43,2.459]],["name/44",[45,50.245]],["parent/44",[43,2.459]],["name/45",[46,50.245]],["parent/45",[43,2.459]],["name/46",[47,50.245]],["parent/46",[43,2.459]],["name/47",[48,50.245]],["parent/47",[43,2.459]],["name/48",[49,50.245]],["parent/48",[43,2.459]],["name/49",[50,50.245]],["parent/49",[43,2.459]],["name/50",[51,50.245]],["parent/50",[43,2.459]],["name/51",[13,41.741]],["parent/51",[43,2.459]],["name/52",[52,50.245]],["parent/52",[43,2.459]],["name/53",[53,50.245]],["parent/53",[43,2.459]],["name/54",[54,50.245]],["parent/54",[43,2.459]],["name/55",[55,50.245]],["parent/55",[43,2.459]],["name/56",[56,50.245]],["parent/56",[43,2.459]],["name/57",[57,50.245]],["parent/57",[43,2.459]],["name/58",[58,50.245]],["parent/58",[43,2.459]],["name/59",[59,20.693]],["parent/59",[60,5.147]],["name/60",[61,50.245]],["parent/60",[43,2.459]],["name/61",[59,20.693]],["parent/61",[62,5.147]],["name/62",[63,50.245]],["parent/62",[43,2.459]],["name/63",[37,45.118]],["parent/63",[43,2.459]],["name/64",[64,19.07]],["parent/64",[]],["name/65",[65,50.245]],["parent/65",[64,1.954]],["name/66",[66,50.245]],["parent/66",[67,1.985]],["name/67",[68,50.245]],["parent/67",[67,1.985]],["name/68",[69,50.245]],["parent/68",[67,1.985]],["name/69",[70,50.245]],["parent/69",[67,1.985]],["name/70",[71,50.245]],["parent/70",[67,1.985]],["name/71",[72,50.245]],["parent/71",[67,1.985]],["name/72",[73,50.245]],["parent/72",[67,1.985]],["name/73",[74,29.801]],["parent/73",[67,1.985]],["name/74",[75,45.118]],["parent/74",[67,1.985]],["name/75",[76,50.245]],["parent/75",[67,1.985]],["name/76",[77,50.245]],["parent/76",[67,1.985]],["name/77",[78,50.245]],["parent/77",[67,1.985]],["name/78",[79,50.245]],["parent/78",[67,1.985]],["name/79",[80,50.245]],["parent/79",[67,1.985]],["name/80",[81,50.245]],["parent/80",[67,1.985]],["name/81",[82,50.245]],["parent/81",[67,1.985]],["name/82",[83,50.245]],["parent/82",[67,1.985]],["name/83",[84,50.245]],["parent/83",[67,1.985]],["name/84",[85,50.245]],["parent/84",[67,1.985]],["name/85",[86,50.245]],["parent/85",[67,1.985]],["name/86",[87,50.245]],["parent/86",[67,1.985]],["name/87",[88,50.245]],["parent/87",[67,1.985]],["name/88",[89,50.245]],["parent/88",[67,1.985]],["name/89",[90,50.245]],["parent/89",[67,1.985]],["name/90",[91,50.245]],["parent/90",[67,1.985]],["name/91",[92,50.245]],["parent/91",[67,1.985]],["name/92",[93,50.245]],["parent/92",[67,1.985]],["name/93",[94,50.245]],["parent/93",[67,1.985]],["name/94",[95,50.245]],["parent/94",[67,1.985]],["name/95",[96,50.245]],["parent/95",[67,1.985]],["name/96",[97,50.245]],["parent/96",[67,1.985]],["name/97",[98,50.245]],["parent/97",[67,1.985]],["name/98",[99,50.245]],["parent/98",[64,1.954]],["name/99",[100,50.245]],["parent/99",[101,5.147]],["name/100",[102,50.245]],["parent/100",[64,1.954]],["name/101",[103,50.245]],["parent/101",[104,3.249]],["name/102",[59,20.693]],["parent/102",[105,5.147]],["name/103",[106,50.245]],["parent/103",[104,3.249]],["name/104",[59,20.693]],["parent/104",[107,5.147]],["name/105",[108,50.245]],["parent/105",[104,3.249]],["name/106",[59,20.693]],["parent/106",[109,5.147]],["name/107",[110,50.245]],["parent/107",[104,3.249]],["name/108",[59,20.693]],["parent/108",[111,5.147]],["name/109",[112,50.245]],["parent/109",[104,3.249]],["name/110",[59,20.693]],["parent/110",[113,5.147]],["name/111",[114,45.118]],["parent/111",[104,3.249]],["name/112",[59,20.693]],["parent/112",[115,5.147]],["name/113",[116,50.245]],["parent/113",[104,3.249]],["name/114",[59,20.693]],["parent/114",[117,5.147]],["name/115",[118,29.801]],["parent/115",[104,3.249]],["name/116",[59,20.693]],["parent/116",[119,5.147]],["name/117",[120,50.245]],["parent/117",[104,3.249]],["name/118",[59,20.693]],["parent/118",[121,5.147]],["name/119",[122,50.245]],["parent/119",[64,1.954]],["name/120",[118,29.801]],["parent/120",[123,4.622]],["name/121",[124,50.245]],["parent/121",[123,4.622]],["name/122",[125,50.245]],["parent/122",[64,1.954]],["name/123",[74,29.801]],["parent/123",[126,3.64]],["name/124",[127,50.245]],["parent/124",[126,3.64]],["name/125",[128,50.245]],["parent/125",[126,3.64]],["name/126",[129,50.245]],["parent/126",[126,3.64]],["name/127",[130,50.245]],["parent/127",[126,3.64]],["name/128",[131,50.245]],["parent/128",[126,3.64]],["name/129",[132,50.245]],["parent/129",[64,1.954]],["name/130",[133,31.719]],["parent/130",[134,4.276]],["name/131",[135,45.118]],["parent/131",[134,4.276]],["name/132",[74,29.801]],["parent/132",[134,4.276]],["name/133",[136,50.245]],["parent/133",[64,1.954]],["name/134",[118,29.801]],["parent/134",[137,4.018]],["name/135",[133,31.719]],["parent/135",[137,4.018]],["name/136",[74,29.801]],["parent/136",[137,4.018]],["name/137",[138,31.719]],["parent/137",[137,4.018]],["name/138",[59,20.693]],["parent/138",[139,5.147]],["name/139",[140,50.245]],["parent/139",[64,1.954]],["name/140",[133,31.719]],["parent/140",[141,4.018]],["name/141",[138,31.719]],["parent/141",[141,4.018]],["name/142",[59,20.693]],["parent/142",[142,5.147]],["name/143",[135,45.118]],["parent/143",[143,5.147]],["name/144",[118,29.801]],["parent/144",[141,4.018]],["name/145",[74,29.801]],["parent/145",[141,4.018]],["name/146",[144,50.245]],["parent/146",[64,1.954]],["name/147",[133,31.719]],["parent/147",[145,4.018]],["name/148",[138,31.719]],["parent/148",[145,4.018]],["name/149",[118,29.801]],["parent/149",[145,4.018]],["name/150",[74,29.801]],["parent/150",[145,4.018]],["name/151",[146,50.245]],["parent/151",[64,1.954]],["name/152",[133,31.719]],["parent/152",[147,4.018]],["name/153",[138,31.719]],["parent/153",[147,4.018]],["name/154",[59,20.693]],["parent/154",[148,5.147]],["name/155",[149,50.245]],["parent/155",[150,5.147]],["name/156",[118,29.801]],["parent/156",[147,4.018]],["name/157",[74,29.801]],["parent/157",[147,4.018]],["name/158",[151,50.245]],["parent/158",[64,1.954]],["name/159",[133,31.719]],["parent/159",[152,4.018]],["name/160",[138,31.719]],["parent/160",[152,4.018]],["name/161",[118,29.801]],["parent/161",[152,4.018]],["name/162",[74,29.801]],["parent/162",[152,4.018]],["name/163",[153,50.245]],["parent/163",[64,1.954]],["name/164",[133,31.719]],["parent/164",[154,4.018]],["name/165",[138,31.719]],["parent/165",[154,4.018]],["name/166",[118,29.801]],["parent/166",[154,4.018]],["name/167",[74,29.801]],["parent/167",[154,4.018]],["name/168",[155,50.245]],["parent/168",[64,1.954]],["name/169",[133,31.719]],["parent/169",[156,4.018]],["name/170",[138,31.719]],["parent/170",[156,4.018]],["name/171",[118,29.801]],["parent/171",[156,4.018]],["name/172",[74,29.801]],["parent/172",[156,4.018]],["name/173",[157,50.245]],["parent/173",[64,1.954]],["name/174",[133,31.719]],["parent/174",[158,4.018]],["name/175",[138,31.719]],["parent/175",[158,4.018]],["name/176",[59,20.693]],["parent/176",[159,5.147]],["name/177",[160,50.245]],["parent/177",[161,5.147]],["name/178",[118,29.801]],["parent/178",[158,4.018]],["name/179",[74,29.801]],["parent/179",[158,4.018]],["name/180",[162,50.245]],["parent/180",[64,1.954]],["name/181",[163,45.118]],["parent/181",[164,4.622]],["name/182",[59,20.693]],["parent/182",[165,5.147]],["name/183",[166,50.245]],["parent/183",[164,4.622]],["name/184",[59,20.693]],["parent/184",[167,5.147]],["name/185",[168,50.245]],["parent/185",[64,1.954]],["name/186",[169,50.245]],["parent/186",[170,5.147]],["name/187",[75,45.118]],["parent/187",[64,1.954]],["name/188",[7,45.118]],["parent/188",[171,4.018]],["name/189",[59,20.693]],["parent/189",[172,5.147]],["name/190",[173,50.245]],["parent/190",[171,4.018]],["name/191",[59,20.693]],["parent/191",[174,5.147]],["name/192",[175,50.245]],["parent/192",[171,4.018]],["name/193",[59,20.693]],["parent/193",[176,5.147]],["name/194",[34,45.118]],["parent/194",[171,4.018]],["name/195",[59,20.693]],["parent/195",[177,5.147]],["name/196",[178,50.245]],["parent/196",[64,1.954]],["name/197",[163,45.118]],["parent/197",[179,5.147]],["name/198",[59,20.693]],["parent/198",[180,5.147]],["name/199",[181,50.245]],["parent/199",[64,1.954]],["name/200",[118,29.801]],["parent/200",[182,4.622]],["name/201",[138,31.719]],["parent/201",[182,4.622]],["name/202",[183,50.245]],["parent/202",[64,1.954]],["name/203",[184,50.245]],["parent/203",[64,1.954]],["name/204",[59,20.693]],["parent/204",[185,5.147]],["name/205",[114,45.118]],["parent/205",[186,4.622]],["name/206",[187,50.245]],["parent/206",[186,4.622]],["name/207",[188,50.245]],["parent/207",[64,1.954]],["name/208",[189,50.245]],["parent/208",[64,1.954]],["name/209",[59,20.693]],["parent/209",[190,5.147]],["name/210",[191,50.245]],["parent/210",[64,1.954]],["name/211",[59,20.693]],["parent/211",[192,5.147]],["name/212",[193,50.245]],["parent/212",[64,1.954]],["name/213",[59,20.693]],["parent/213",[194,5.147]],["name/214",[195,50.245]],["parent/214",[64,1.954]],["name/215",[196,50.245]],["parent/215",[64,1.954]],["name/216",[59,20.693]],["parent/216",[197,5.147]],["name/217",[198,50.245]],["parent/217",[64,1.954]],["name/218",[199,50.245]],["parent/218",[64,1.954]],["name/219",[200,50.245]],["parent/219",[64,1.954]],["name/220",[201,50.245]],["parent/220",[64,1.954]],["name/221",[202,50.245]],["parent/221",[64,1.954]],["name/222",[59,20.693]],["parent/222",[203,5.147]]],"invertedIndex":[["__type",{"_index":59,"name":{"59":{},"61":{},"102":{},"104":{},"106":{},"108":{},"110":{},"112":{},"114":{},"116":{},"118":{},"138":{},"142":{},"154":{},"176":{},"182":{},"184":{},"189":{},"191":{},"193":{},"195":{},"198":{},"204":{},"209":{},"211":{},"213":{},"216":{},"222":{}},"parent":{}}],["_searchall",{"_index":21,"name":{"19":{}},"parent":{}}],["action",{"_index":130,"name":{"127":{}},"parent":{}}],["add",{"_index":110,"name":{"107":{}},"parent":{}}],["adddot",{"_index":44,"name":{"43":{}},"parent":{}}],["addfn",{"_index":58,"name":{"58":{}},"parent":{}}],["addmessage",{"_index":155,"name":{"168":{}},"parent":{}}],["basemessage",{"_index":136,"name":{"133":{}},"parent":{}}],["ca",{"_index":97,"name":{"96":{}},"parent":{}}],["cert",{"_index":96,"name":{"95":{}},"parent":{}}],["clean",{"_index":81,"name":{"80":{}},"parent":{}}],["clientid",{"_index":78,"name":{"77":{}},"parent":{}}],["close",{"_index":173,"name":{"190":{}},"parent":{}}],["commandswithreturnvalue",{"_index":51,"name":{"50":{}},"parent":{}}],["commandtype",{"_index":198,"name":{"217":{}},"parent":{}}],["connect",{"_index":37,"name":{"36":{},"63":{}},"parent":{}}],["connectevents",{"_index":99,"name":{"98":{}},"parent":{}}],["connectoptions",{"_index":65,"name":{"65":{}},"parent":{}}],["connecttimeout",{"_index":83,"name":{"82":{}},"parent":{}}],["createrecord",{"_index":6,"name":{"4":{}},"parent":{}}],["data",{"_index":138,"name":{"137":{},"141":{},"148":{},"153":{},"160":{},"165":{},"170":{},"175":{},"201":{}},"parent":{}}],["decode",{"_index":13,"name":{"11":{},"30":{},"51":{}},"parent":{}}],["decodeget",{"_index":30,"name":{"28":{}},"parent":{}}],["defaultpublishendpoint",{"_index":35,"name":{"34":{}},"parent":{}}],["defaultsubscribeendpoint",{"_index":36,"name":{"35":{}},"parent":{}}],["del",{"_index":112,"name":{"109":{}},"parent":{}}],["deleted",{"_index":160,"name":{"177":{}},"parent":{}}],["deletemessage",{"_index":157,"name":{"173":{}},"parent":{}}],["delfn",{"_index":61,"name":{"60":{}},"parent":{}}],["device",{"_index":102,"name":{"100":{}},"parent":{}}],["deviceerror",{"_index":132,"name":{"129":{}},"parent":{}}],["digitdotre",{"_index":16,"name":{"14":{}},"parent":{}}],["digitre",{"_index":15,"name":{"13":{}},"parent":{}}],["disconnect",{"_index":116,"name":{"113":{}},"parent":{}}],["encode",{"_index":34,"name":{"33":{},"194":{}},"parent":{}}],["encodeadd",{"_index":32,"name":{"31":{}},"parent":{}}],["encodeargs",{"_index":125,"name":{"122":{}},"parent":{}}],["encodedelete",{"_index":33,"name":{"32":{}},"parent":{}}],["encodeget",{"_index":26,"name":{"24":{}},"parent":{}}],["encodeoperate",{"_index":28,"name":{"26":{}},"parent":{}}],["encodeset",{"_index":27,"name":{"25":{}},"parent":{}}],["errormessage",{"_index":140,"name":{"139":{}},"parent":{}}],["extracttype",{"_index":29,"name":{"27":{}},"parent":{}}],["firstisindex",{"_index":18,"name":{"16":{}},"parent":{}}],["fromid",{"_index":68,"name":{"67":{}},"parent":{}}],["get",{"_index":103,"name":{"101":{}},"parent":{}}],["getmessage",{"_index":144,"name":{"146":{}},"parent":{}}],["handlesend",{"_index":52,"name":{"52":{}},"parent":{}}],["header",{"_index":5,"name":{"3":{}},"parent":{}}],["host",{"_index":72,"name":{"71":{}},"parent":{}}],["hostname",{"_index":73,"name":{"72":{}},"parent":{}}],["iclientoptions",{"_index":183,"name":{"202":{}},"parent":{}}],["id",{"_index":118,"name":{"115":{},"120":{},"134":{},"144":{},"149":{},"156":{},"161":{},"166":{},"171":{},"178":{},"200":{}},"parent":{}}],["ignorabletypes",{"_index":31,"name":{"29":{}},"parent":{}}],["incomingstore",{"_index":86,"name":{"85":{}},"parent":{}}],["index",{"_index":43,"name":{"42":{}},"parent":{"43":{},"44":{},"45":{},"46":{},"47":{},"48":{},"49":{},"50":{},"51":{},"52":{},"53":{},"54":{},"55":{},"56":{},"57":{},"58":{},"60":{},"62":{},"63":{}}}],["index\".addfn",{"_index":60,"name":{},"parent":{"59":{}}}],["index\".delfn",{"_index":62,"name":{},"parent":{"61":{}}}],["init",{"_index":7,"name":{"5":{},"188":{}},"parent":{}}],["initresult",{"_index":168,"name":{"185":{}},"parent":{}}],["input",{"_index":129,"name":{"126":{}},"parent":{}}],["isdigit",{"_index":17,"name":{"15":{}},"parent":{}}],["iserror",{"_index":49,"name":{"48":{}},"parent":{}}],["ispromiseresult",{"_index":50,"name":{"49":{}},"parent":{}}],["isreference",{"_index":48,"name":{"47":{}},"parent":{}}],["jsobject",{"_index":196,"name":{"215":{}},"parent":{}}],["jstype",{"_index":200,"name":{"219":{}},"parent":{}}],["keepalive",{"_index":77,"name":{"76":{}},"parent":{}}],["key",{"_index":95,"name":{"94":{}},"parent":{}}],["lib",{"_index":39,"name":{"38":{}},"parent":{"39":{},"40":{},"41":{}}}],["looptimer",{"_index":41,"name":{"40":{}},"parent":{}}],["makeadd",{"_index":55,"name":{"55":{}},"parent":{}}],["makeaddmessage",{"_index":11,"name":{"9":{}},"parent":{}}],["makedel",{"_index":56,"name":{"56":{}},"parent":{}}],["makedeletemessage",{"_index":9,"name":{"7":{}},"parent":{}}],["makeget",{"_index":53,"name":{"53":{}},"parent":{}}],["makegetmessage",{"_index":8,"name":{"6":{}},"parent":{}}],["makeoperate",{"_index":63,"name":{"62":{}},"parent":{}}],["makeoperatemessage",{"_index":12,"name":{"10":{}},"parent":{}}],["makerouter",{"_index":42,"name":{"41":{}},"parent":{}}],["makeset",{"_index":54,"name":{"54":{}},"parent":{}}],["makesetmessage",{"_index":10,"name":{"8":{}},"parent":{}}],["messagetype",{"_index":199,"name":{"218":{}},"parent":{}}],["mqtt",{"_index":38,"name":{"37":{}},"parent":{}}],["mqttrequest",{"_index":181,"name":{"199":{}},"parent":{}}],["notifymessage",{"_index":153,"name":{"163":{}},"parent":{}}],["onerror",{"_index":166,"name":{"183":{}},"parent":{}}],["onmessage",{"_index":163,"name":{"181":{},"197":{}},"parent":{}}],["ontimeout",{"_index":100,"name":{"99":{}},"parent":{}}],["operate",{"_index":108,"name":{"105":{}},"parent":{}}],["operatecleanupfunction",{"_index":193,"name":{"212":{}},"parent":{}}],["operatefunction",{"_index":191,"name":{"210":{}},"parent":{}}],["operateid",{"_index":131,"name":{"128":{}},"parent":{}}],["operatemessage",{"_index":151,"name":{"158":{}},"parent":{}}],["operateoptions",{"_index":122,"name":{"119":{}},"parent":{}}],["operatesubscriptionpath",{"_index":57,"name":{"57":{}},"parent":{}}],["outgoingstore",{"_index":87,"name":{"86":{}},"parent":{}}],["password",{"_index":85,"name":{"84":{}},"parent":{}}],["path",{"_index":74,"name":{"73":{},"123":{},"132":{},"136":{},"145":{},"150":{},"157":{},"162":{},"167":{},"172":{},"179":{}},"parent":{}}],["paths",{"_index":127,"name":{"124":{}},"parent":{}}],["persistent",{"_index":124,"name":{"121":{}},"parent":{}}],["port",{"_index":71,"name":{"70":{}},"parent":{}}],["promiseresult",{"_index":184,"name":{"203":{}},"parent":{}}],["properties",{"_index":94,"name":{"93":{}},"parent":{}}],["protobuf/protomessage",{"_index":2,"name":{"0":{}},"parent":{"1":{},"2":{},"3":{},"4":{},"5":{},"6":{},"7":{},"8":{},"9":{},"10":{},"11":{}}}],["protocol",{"_index":75,"name":{"74":{},"187":{}},"parent":{}}],["protocol/index",{"_index":25,"name":{"23":{}},"parent":{"24":{},"25":{},"26":{},"27":{},"28":{},"29":{},"30":{},"31":{},"32":{},"33":{},"34":{},"35":{},"36":{},"37":{}}}],["protocol/js",{"_index":0,"name":{"0":{}},"parent":{"1":{},"2":{},"3":{},"4":{},"5":{},"6":{},"7":{},"8":{},"9":{},"10":{},"11":{}}}],["protocol/lib",{"_index":14,"name":{"12":{}},"parent":{"13":{},"14":{},"15":{},"16":{},"17":{},"18":{},"19":{},"20":{},"21":{},"22":{}}}],["protocolargs",{"_index":162,"name":{"180":{}},"parent":{}}],["protocolevents",{"_index":178,"name":{"196":{}},"parent":{}}],["protocolid",{"_index":79,"name":{"78":{}},"parent":{}}],["protocolversion",{"_index":80,"name":{"79":{}},"parent":{}}],["publishendpoint",{"_index":69,"name":{"68":{}},"parent":{}}],["queueqoszero",{"_index":88,"name":{"87":{}},"parent":{}}],["reason",{"_index":135,"name":{"131":{},"143":{}},"parent":{}}],["reconnectperiod",{"_index":82,"name":{"81":{}},"parent":{}}],["reject",{"_index":187,"name":{"206":{}},"parent":{}}],["rejectfn",{"_index":202,"name":{"221":{}},"parent":{}}],["rejectunauthorized",{"_index":98,"name":{"97":{}},"parent":{}}],["reschedulepings",{"_index":89,"name":{"88":{}},"parent":{}}],["resolve",{"_index":114,"name":{"111":{},"205":{}},"parent":{}}],["resolvereferences",{"_index":46,"name":{"45":{}},"parent":{}}],["resubscribe",{"_index":91,"name":{"90":{}},"parent":{}}],["role",{"_index":195,"name":{"214":{}},"parent":{}}],["roles",{"_index":120,"name":{"117":{}},"parent":{}}],["rootmsg",{"_index":4,"name":{"2":{}},"parent":{}}],["rootrecord",{"_index":3,"name":{"1":{}},"parent":{}}],["router",{"_index":188,"name":{"207":{}},"parent":{}}],["search",{"_index":20,"name":{"18":{}},"parent":{}}],["searchall",{"_index":22,"name":{"20":{}},"parent":{}}],["send",{"_index":175,"name":{"192":{}},"parent":{}}],["sendfn",{"_index":189,"name":{"208":{}},"parent":{}}],["servers",{"_index":90,"name":{"89":{}},"parent":{}}],["set",{"_index":106,"name":{"103":{}},"parent":{}}],["setmessage",{"_index":146,"name":{"151":{}},"parent":{}}],["splitreference",{"_index":45,"name":{"44":{}},"parent":{}}],["subscribeendpoint",{"_index":70,"name":{"69":{}},"parent":{}}],["throwmsgerror",{"_index":47,"name":{"46":{}},"parent":{}}],["timeout",{"_index":169,"name":{"186":{}},"parent":{}}],["timer",{"_index":40,"name":{"39":{}},"parent":{}}],["toid",{"_index":66,"name":{"66":{}},"parent":{}}],["transformwsurl",{"_index":93,"name":{"92":{}},"parent":{}}],["type",{"_index":133,"name":{"130":{},"135":{},"140":{},"147":{},"152":{},"159":{},"164":{},"169":{},"174":{}},"parent":{}}],["types.d",{"_index":64,"name":{"64":{}},"parent":{"65":{},"98":{},"100":{},"119":{},"122":{},"129":{},"133":{},"139":{},"146":{},"151":{},"158":{},"163":{},"168":{},"173":{},"180":{},"185":{},"187":{},"196":{},"199":{},"202":{},"203":{},"207":{},"208":{},"210":{},"212":{},"214":{},"215":{},"217":{},"218":{},"219":{},"220":{},"221":{}}}],["types.d\".addmessage",{"_index":156,"name":{},"parent":{"169":{},"170":{},"171":{},"172":{}}}],["types.d\".basemessage",{"_index":137,"name":{},"parent":{"134":{},"135":{},"136":{},"137":{}}}],["types.d\".basemessage.data",{"_index":139,"name":{},"parent":{"138":{}}}],["types.d\".connectevents",{"_index":101,"name":{},"parent":{"99":{}}}],["types.d\".connectoptions",{"_index":67,"name":{},"parent":{"66":{},"67":{},"68":{},"69":{},"70":{},"71":{},"72":{},"73":{},"74":{},"75":{},"76":{},"77":{},"78":{},"79":{},"80":{},"81":{},"82":{},"83":{},"84":{},"85":{},"86":{},"87":{},"88":{},"89":{},"90":{},"91":{},"92":{},"93":{},"94":{},"95":{},"96":{},"97":{}}}],["types.d\".deletemessage",{"_index":158,"name":{},"parent":{"174":{},"175":{},"178":{},"179":{}}}],["types.d\".deletemessage.data",{"_index":159,"name":{},"parent":{"176":{}}}],["types.d\".deletemessage.data.__type",{"_index":161,"name":{},"parent":{"177":{}}}],["types.d\".device",{"_index":104,"name":{},"parent":{"101":{},"103":{},"105":{},"107":{},"109":{},"111":{},"113":{},"115":{},"117":{}}}],["types.d\".device.add",{"_index":111,"name":{},"parent":{"108":{}}}],["types.d\".device.del",{"_index":113,"name":{},"parent":{"110":{}}}],["types.d\".device.disconnect",{"_index":117,"name":{},"parent":{"114":{}}}],["types.d\".device.get",{"_index":105,"name":{},"parent":{"102":{}}}],["types.d\".device.id",{"_index":119,"name":{},"parent":{"116":{}}}],["types.d\".device.operate",{"_index":109,"name":{},"parent":{"106":{}}}],["types.d\".device.resolve",{"_index":115,"name":{},"parent":{"112":{}}}],["types.d\".device.roles",{"_index":121,"name":{},"parent":{"118":{}}}],["types.d\".device.set",{"_index":107,"name":{},"parent":{"104":{}}}],["types.d\".deviceerror",{"_index":134,"name":{},"parent":{"130":{},"131":{},"132":{}}}],["types.d\".encodeargs",{"_index":126,"name":{},"parent":{"123":{},"124":{},"125":{},"126":{},"127":{},"128":{}}}],["types.d\".errormessage",{"_index":141,"name":{},"parent":{"140":{},"141":{},"144":{},"145":{}}}],["types.d\".errormessage.data",{"_index":142,"name":{},"parent":{"142":{}}}],["types.d\".errormessage.data.__type",{"_index":143,"name":{},"parent":{"143":{}}}],["types.d\".getmessage",{"_index":145,"name":{},"parent":{"147":{},"148":{},"149":{},"150":{}}}],["types.d\".initresult",{"_index":170,"name":{},"parent":{"186":{}}}],["types.d\".jsobject",{"_index":197,"name":{},"parent":{"216":{}}}],["types.d\".mqttrequest",{"_index":182,"name":{},"parent":{"200":{},"201":{}}}],["types.d\".notifymessage",{"_index":154,"name":{},"parent":{"164":{},"165":{},"166":{},"167":{}}}],["types.d\".operatecleanupfunction",{"_index":194,"name":{},"parent":{"213":{}}}],["types.d\".operatefunction",{"_index":192,"name":{},"parent":{"211":{}}}],["types.d\".operatemessage",{"_index":152,"name":{},"parent":{"159":{},"160":{},"161":{},"162":{}}}],["types.d\".operateoptions",{"_index":123,"name":{},"parent":{"120":{},"121":{}}}],["types.d\".promiseresult",{"_index":185,"name":{},"parent":{"204":{}}}],["types.d\".promiseresult.__type",{"_index":186,"name":{},"parent":{"205":{},"206":{}}}],["types.d\".protocol",{"_index":171,"name":{},"parent":{"188":{},"190":{},"192":{},"194":{}}}],["types.d\".protocol.close",{"_index":174,"name":{},"parent":{"191":{}}}],["types.d\".protocol.encode",{"_index":177,"name":{},"parent":{"195":{}}}],["types.d\".protocol.init",{"_index":172,"name":{},"parent":{"189":{}}}],["types.d\".protocol.send",{"_index":176,"name":{},"parent":{"193":{}}}],["types.d\".protocolargs",{"_index":164,"name":{},"parent":{"181":{},"183":{}}}],["types.d\".protocolargs.onerror",{"_index":167,"name":{},"parent":{"184":{}}}],["types.d\".protocolargs.onmessage",{"_index":165,"name":{},"parent":{"182":{}}}],["types.d\".protocolevents",{"_index":179,"name":{},"parent":{"197":{}}}],["types.d\".protocolevents.onmessage",{"_index":180,"name":{},"parent":{"198":{}}}],["types.d\".rejectfn",{"_index":203,"name":{},"parent":{"222":{}}}],["types.d\".sendfn",{"_index":190,"name":{},"parent":{"209":{}}}],["types.d\".setmessage",{"_index":147,"name":{},"parent":{"152":{},"153":{},"156":{},"157":{}}}],["types.d\".setmessage.data",{"_index":148,"name":{},"parent":{"154":{}}}],["types.d\".setmessage.data.__type",{"_index":150,"name":{},"parent":{"155":{}}}],["unflatten",{"_index":19,"name":{"17":{}},"parent":{}}],["unwraparray",{"_index":24,"name":{"22":{}},"parent":{}}],["unwrapobject",{"_index":23,"name":{"21":{}},"parent":{}}],["updated",{"_index":149,"name":{"155":{}},"parent":{}}],["username",{"_index":84,"name":{"83":{}},"parent":{}}],["usp",{"_index":1,"name":{"0":{}},"parent":{"1":{},"2":{},"3":{},"4":{},"5":{},"6":{},"7":{},"8":{},"9":{},"10":{},"11":{}}}],["uspmessage",{"_index":201,"name":{"220":{}},"parent":{}}],["value",{"_index":128,"name":{"125":{}},"parent":{}}],["will",{"_index":92,"name":{"91":{}},"parent":{}}],["wsoptions",{"_index":76,"name":{"75":{}},"parent":{}}]],"pipeline":[]}}
\ No newline at end of file
+{"kinds":{"1":"Module","32":"Variable","64":"Function","256":"Interface","1024":"Property","65536":"Type literal","4194304":"Type alias"},"rows":[{"id":0,"kind":1,"name":"\"types\"","url":"modules/_types_.html","classes":"tsd-kind-module"},{"id":1,"kind":256,"name":"USP","url":"interfaces/_types_.usp.html","classes":"tsd-kind-interface tsd-parent-kind-module","parent":"\"types\""},{"id":2,"kind":1024,"name":"get","url":"interfaces/_types_.usp.html#get","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"\"types\".USP"},{"id":3,"kind":1024,"name":"set","url":"interfaces/_types_.usp.html#set","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"\"types\".USP"},{"id":4,"kind":1024,"name":"operate","url":"interfaces/_types_.usp.html#operate","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"\"types\".USP"},{"id":5,"kind":1024,"name":"add","url":"interfaces/_types_.usp.html#add","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"\"types\".USP"},{"id":6,"kind":1024,"name":"del","url":"interfaces/_types_.usp.html#del","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"\"types\".USP"},{"id":7,"kind":1024,"name":"resolve","url":"interfaces/_types_.usp.html#resolve","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"\"types\".USP"},{"id":8,"kind":1024,"name":"disconnect","url":"interfaces/_types_.usp.html#disconnect","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"\"types\".USP"},{"id":9,"kind":65536,"name":"__type","url":"interfaces/_types_.usp.html#disconnect.__type","classes":"tsd-kind-type-literal tsd-parent-kind-property","parent":"\"types\".USP.disconnect"},{"id":10,"kind":256,"name":"OperateOptions","url":"interfaces/_types_.operateoptions.html","classes":"tsd-kind-interface tsd-parent-kind-module tsd-is-not-exported","parent":"\"types\""},{"id":11,"kind":1024,"name":"ID","url":"interfaces/_types_.operateoptions.html#id","classes":"tsd-kind-property tsd-parent-kind-interface tsd-is-not-exported","parent":"\"types\".OperateOptions"},{"id":12,"kind":1024,"name":"Persistent","url":"interfaces/_types_.operateoptions.html#persistent","classes":"tsd-kind-property tsd-parent-kind-interface tsd-is-not-exported","parent":"\"types\".OperateOptions"},{"id":13,"kind":256,"name":"PbRequestHeader","url":"interfaces/_types_.pbrequestheader.html","classes":"tsd-kind-interface tsd-parent-kind-module","parent":"\"types\""},{"id":14,"kind":1024,"name":"msgId","url":"interfaces/_types_.pbrequestheader.html#msgid","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"\"types\".PbRequestHeader"},{"id":15,"kind":1024,"name":"msgType","url":"interfaces/_types_.pbrequestheader.html#msgtype","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"\"types\".PbRequestHeader"},{"id":16,"kind":1024,"name":"lookup","url":"interfaces/_types_.pbrequestheader.html#lookup","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"\"types\".PbRequestHeader"},{"id":17,"kind":256,"name":"PbRequestBody","url":"interfaces/_types_.pbrequestbody.html","classes":"tsd-kind-interface tsd-parent-kind-module","parent":"\"types\""},{"id":18,"kind":1024,"name":"lookup","url":"interfaces/_types_.pbrequestbody.html#lookup","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"\"types\".PbRequestBody"},{"id":19,"kind":1024,"name":"request","url":"interfaces/_types_.pbrequestbody.html#request","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"\"types\".PbRequestBody"},{"id":20,"kind":256,"name":"PbRequestMessage","url":"interfaces/_types_.pbrequestmessage.html","classes":"tsd-kind-interface tsd-parent-kind-module","parent":"\"types\""},{"id":21,"kind":1024,"name":"header","url":"interfaces/_types_.pbrequestmessage.html#header","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"\"types\".PbRequestMessage"},{"id":22,"kind":1024,"name":"body","url":"interfaces/_types_.pbrequestmessage.html#body","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"\"types\".PbRequestMessage"},{"id":23,"kind":1024,"name":"lookup","url":"interfaces/_types_.pbrequestmessage.html#lookup","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"\"types\".PbRequestMessage"},{"id":24,"kind":256,"name":"ConnectionOptions","url":"interfaces/_types_.connectionoptions.html","classes":"tsd-kind-interface tsd-parent-kind-module","parent":"\"types\""},{"id":25,"kind":1024,"name":"username","url":"interfaces/_types_.connectionoptions.html#username","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"\"types\".ConnectionOptions"},{"id":26,"kind":1024,"name":"password","url":"interfaces/_types_.connectionoptions.html#password","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"\"types\".ConnectionOptions"},{"id":27,"kind":1024,"name":"host","url":"interfaces/_types_.connectionoptions.html#host","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"\"types\".ConnectionOptions"},{"id":28,"kind":1024,"name":"fromId","url":"interfaces/_types_.connectionoptions.html#fromid","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"\"types\".ConnectionOptions"},{"id":29,"kind":1024,"name":"toId","url":"interfaces/_types_.connectionoptions.html#toid","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"\"types\".ConnectionOptions"},{"id":30,"kind":1024,"name":"protocol","url":"interfaces/_types_.connectionoptions.html#protocol","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"\"types\".ConnectionOptions"},{"id":31,"kind":1024,"name":"port","url":"interfaces/_types_.connectionoptions.html#port","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"\"types\".ConnectionOptions"},{"id":32,"kind":1024,"name":"publishEndpoint","url":"interfaces/_types_.connectionoptions.html#publishendpoint","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"\"types\".ConnectionOptions"},{"id":33,"kind":1024,"name":"subscribeEndpoint","url":"interfaces/_types_.connectionoptions.html#subscribeendpoint","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"\"types\".ConnectionOptions"},{"id":34,"kind":256,"name":"ConnectionEvents","url":"interfaces/_types_.connectionevents.html","classes":"tsd-kind-interface tsd-parent-kind-module","parent":"\"types\""},{"id":35,"kind":1024,"name":"onError","url":"interfaces/_types_.connectionevents.html#onerror","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"\"types\".ConnectionEvents"},{"id":36,"kind":256,"name":"RecipeObject","url":"interfaces/_types_.recipeobject.html","classes":"tsd-kind-interface tsd-parent-kind-module","parent":"\"types\""},{"id":37,"kind":1024,"name":"name","url":"interfaces/_types_.recipeobject.html#name","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"\"types\".RecipeObject"},{"id":38,"kind":1024,"name":"make","url":"interfaces/_types_.recipeobject.html#make","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"\"types\".RecipeObject"},{"id":39,"kind":4194304,"name":"CommandType","url":"modules/_types_.html#commandtype","classes":"tsd-kind-type-alias tsd-parent-kind-module","parent":"\"types\""},{"id":40,"kind":4194304,"name":"GetReturn","url":"modules/_types_.html#getreturn","classes":"tsd-kind-type-alias tsd-parent-kind-module","parent":"\"types\""},{"id":41,"kind":4194304,"name":"GetCommand","url":"modules/_types_.html#getcommand","classes":"tsd-kind-type-alias tsd-parent-kind-module","parent":"\"types\""},{"id":42,"kind":65536,"name":"__type","url":"modules/_types_.html#getcommand.__type-8","classes":"tsd-kind-type-literal tsd-parent-kind-type-alias","parent":"\"types\".GetCommand"},{"id":43,"kind":4194304,"name":"SetCommand","url":"modules/_types_.html#setcommand","classes":"tsd-kind-type-alias tsd-parent-kind-module","parent":"\"types\""},{"id":44,"kind":65536,"name":"__type","url":"modules/_types_.html#setcommand.__type-25","classes":"tsd-kind-type-literal tsd-parent-kind-type-alias","parent":"\"types\".SetCommand"},{"id":45,"kind":4194304,"name":"AddCommand","url":"modules/_types_.html#addcommand","classes":"tsd-kind-type-alias tsd-parent-kind-module","parent":"\"types\""},{"id":46,"kind":65536,"name":"__type","url":"modules/_types_.html#addcommand.__type","classes":"tsd-kind-type-literal tsd-parent-kind-type-alias","parent":"\"types\".AddCommand"},{"id":47,"kind":4194304,"name":"DelCommand","url":"modules/_types_.html#delcommand","classes":"tsd-kind-type-alias tsd-parent-kind-module","parent":"\"types\""},{"id":48,"kind":65536,"name":"__type","url":"modules/_types_.html#delcommand.__type-5","classes":"tsd-kind-type-literal tsd-parent-kind-type-alias","parent":"\"types\".DelCommand"},{"id":49,"kind":4194304,"name":"OperateFn","url":"modules/_types_.html#operatefn","classes":"tsd-kind-type-alias tsd-parent-kind-module","parent":"\"types\""},{"id":50,"kind":65536,"name":"__type","url":"modules/_types_.html#operatefn.__type-13","classes":"tsd-kind-type-literal tsd-parent-kind-type-alias","parent":"\"types\".OperateFn"},{"id":51,"kind":4194304,"name":"OperateClearFn","url":"modules/_types_.html#operateclearfn","classes":"tsd-kind-type-alias tsd-parent-kind-module","parent":"\"types\""},{"id":52,"kind":65536,"name":"__type","url":"modules/_types_.html#operateclearfn.__type-11","classes":"tsd-kind-type-literal tsd-parent-kind-type-alias","parent":"\"types\".OperateClearFn"},{"id":53,"kind":4194304,"name":"OperateCommand","url":"modules/_types_.html#operatecommand","classes":"tsd-kind-type-alias tsd-parent-kind-module","parent":"\"types\""},{"id":54,"kind":65536,"name":"__type","url":"modules/_types_.html#operatecommand.__type-12","classes":"tsd-kind-type-literal tsd-parent-kind-type-alias","parent":"\"types\".OperateCommand"},{"id":55,"kind":4194304,"name":"Command","url":"modules/_types_.html#command","classes":"tsd-kind-type-alias tsd-parent-kind-module","parent":"\"types\""},{"id":56,"kind":4194304,"name":"PbRequestCommand","url":"modules/_types_.html#pbrequestcommand","classes":"tsd-kind-type-alias tsd-parent-kind-module","parent":"\"types\""},{"id":57,"kind":4194304,"name":"PbRequestCommandOperate","url":"modules/_types_.html#pbrequestcommandoperate","classes":"tsd-kind-type-alias tsd-parent-kind-module","parent":"\"types\""},{"id":58,"kind":65536,"name":"__type","url":"modules/_types_.html#pbrequestcommandoperate.__type-20","classes":"tsd-kind-type-literal tsd-parent-kind-type-alias","parent":"\"types\".PbRequestCommandOperate"},{"id":59,"kind":32,"name":"operate","url":"modules/_types_.html#pbrequestcommandoperate.__type-20.operate","classes":"tsd-kind-variable tsd-parent-kind-type-literal","parent":"\"types\".PbRequestCommandOperate.__type"},{"id":60,"kind":65536,"name":"__type","url":"modules/_types_.html#pbrequestcommandoperate.__type-20.operate.__type-21","classes":"tsd-kind-type-literal tsd-parent-kind-variable","parent":"\"types\".PbRequestCommandOperate.__type.operate"},{"id":61,"kind":32,"name":"command","url":"modules/_types_.html#pbrequestcommandoperate.__type-20.operate.__type-21.command-1","classes":"tsd-kind-variable tsd-parent-kind-type-literal","parent":"\"types\".PbRequestCommandOperate.__type.operate.__type"},{"id":62,"kind":32,"name":"commandKey","url":"modules/_types_.html#pbrequestcommandoperate.__type-20.operate.__type-21.commandkey","classes":"tsd-kind-variable tsd-parent-kind-type-literal","parent":"\"types\".PbRequestCommandOperate.__type.operate.__type"},{"id":63,"kind":32,"name":"sendResp","url":"modules/_types_.html#pbrequestcommandoperate.__type-20.operate.__type-21.sendresp","classes":"tsd-kind-variable tsd-parent-kind-type-literal","parent":"\"types\".PbRequestCommandOperate.__type.operate.__type"},{"id":64,"kind":32,"name":"inputArgs","url":"modules/_types_.html#pbrequestcommandoperate.__type-20.operate.__type-21.inputargs","classes":"tsd-kind-variable tsd-parent-kind-type-literal","parent":"\"types\".PbRequestCommandOperate.__type.operate.__type"},{"id":65,"kind":4194304,"name":"PbRequestCommandDel","url":"modules/_types_.html#pbrequestcommanddel","classes":"tsd-kind-type-alias tsd-parent-kind-module","parent":"\"types\""},{"id":66,"kind":65536,"name":"__type","url":"modules/_types_.html#pbrequestcommanddel.__type-16","classes":"tsd-kind-type-literal tsd-parent-kind-type-alias","parent":"\"types\".PbRequestCommandDel"},{"id":67,"kind":32,"name":"delete","url":"modules/_types_.html#pbrequestcommanddel.__type-16.delete","classes":"tsd-kind-variable tsd-parent-kind-type-literal","parent":"\"types\".PbRequestCommandDel.__type"},{"id":68,"kind":65536,"name":"__type","url":"modules/_types_.html#pbrequestcommanddel.__type-16.delete.__type-17","classes":"tsd-kind-type-literal tsd-parent-kind-variable","parent":"\"types\".PbRequestCommandDel.__type.delete"},{"id":69,"kind":32,"name":"allowPartial","url":"modules/_types_.html#pbrequestcommanddel.__type-16.delete.__type-17.allowpartial-1","classes":"tsd-kind-variable tsd-parent-kind-type-literal","parent":"\"types\".PbRequestCommandDel.__type.delete.__type"},{"id":70,"kind":32,"name":"objPaths","url":"modules/_types_.html#pbrequestcommanddel.__type-16.delete.__type-17.objpaths","classes":"tsd-kind-variable tsd-parent-kind-type-literal","parent":"\"types\".PbRequestCommandDel.__type.delete.__type"},{"id":71,"kind":4194304,"name":"PbRequestCommandGet","url":"modules/_types_.html#pbrequestcommandget","classes":"tsd-kind-type-alias tsd-parent-kind-module","parent":"\"types\""},{"id":72,"kind":65536,"name":"__type","url":"modules/_types_.html#pbrequestcommandget.__type-18","classes":"tsd-kind-type-literal tsd-parent-kind-type-alias","parent":"\"types\".PbRequestCommandGet"},{"id":73,"kind":32,"name":"get","url":"modules/_types_.html#pbrequestcommandget.__type-18.get","classes":"tsd-kind-variable tsd-parent-kind-type-literal","parent":"\"types\".PbRequestCommandGet.__type"},{"id":74,"kind":65536,"name":"__type","url":"modules/_types_.html#pbrequestcommandget.__type-18.get.__type-19","classes":"tsd-kind-type-literal tsd-parent-kind-variable","parent":"\"types\".PbRequestCommandGet.__type.get"},{"id":75,"kind":32,"name":"paramPaths","url":"modules/_types_.html#pbrequestcommandget.__type-18.get.__type-19.parampaths","classes":"tsd-kind-variable tsd-parent-kind-type-literal","parent":"\"types\".PbRequestCommandGet.__type.get.__type"},{"id":76,"kind":4194304,"name":"PbRequestCommandSet","url":"modules/_types_.html#pbrequestcommandset","classes":"tsd-kind-type-alias tsd-parent-kind-module","parent":"\"types\""},{"id":77,"kind":65536,"name":"__type","url":"modules/_types_.html#pbrequestcommandset.__type-22","classes":"tsd-kind-type-literal tsd-parent-kind-type-alias","parent":"\"types\".PbRequestCommandSet"},{"id":78,"kind":32,"name":"set","url":"modules/_types_.html#pbrequestcommandset.__type-22.set","classes":"tsd-kind-variable tsd-parent-kind-type-literal","parent":"\"types\".PbRequestCommandSet.__type"},{"id":79,"kind":65536,"name":"__type","url":"modules/_types_.html#pbrequestcommandset.__type-22.set.__type-23","classes":"tsd-kind-type-literal tsd-parent-kind-variable","parent":"\"types\".PbRequestCommandSet.__type.set"},{"id":80,"kind":32,"name":"allowPartial","url":"modules/_types_.html#pbrequestcommandset.__type-22.set.__type-23.allowpartial-2","classes":"tsd-kind-variable tsd-parent-kind-type-literal","parent":"\"types\".PbRequestCommandSet.__type.set.__type"},{"id":81,"kind":32,"name":"updateObjs","url":"modules/_types_.html#pbrequestcommandset.__type-22.set.__type-23.updateobjs","classes":"tsd-kind-variable tsd-parent-kind-type-literal","parent":"\"types\".PbRequestCommandSet.__type.set.__type"},{"id":82,"kind":4194304,"name":"PbRequestCommandAdd","url":"modules/_types_.html#pbrequestcommandadd","classes":"tsd-kind-type-alias tsd-parent-kind-module","parent":"\"types\""},{"id":83,"kind":65536,"name":"__type","url":"modules/_types_.html#pbrequestcommandadd.__type-14","classes":"tsd-kind-type-literal tsd-parent-kind-type-alias","parent":"\"types\".PbRequestCommandAdd"},{"id":84,"kind":32,"name":"add","url":"modules/_types_.html#pbrequestcommandadd.__type-14.add","classes":"tsd-kind-variable tsd-parent-kind-type-literal","parent":"\"types\".PbRequestCommandAdd.__type"},{"id":85,"kind":65536,"name":"__type","url":"modules/_types_.html#pbrequestcommandadd.__type-14.add.__type-15","classes":"tsd-kind-type-literal tsd-parent-kind-variable","parent":"\"types\".PbRequestCommandAdd.__type.add"},{"id":86,"kind":32,"name":"allowPartial","url":"modules/_types_.html#pbrequestcommandadd.__type-14.add.__type-15.allowpartial","classes":"tsd-kind-variable tsd-parent-kind-type-literal","parent":"\"types\".PbRequestCommandAdd.__type.add.__type"},{"id":87,"kind":32,"name":"createObjs","url":"modules/_types_.html#pbrequestcommandadd.__type-14.add.__type-15.createobjs","classes":"tsd-kind-variable tsd-parent-kind-type-literal","parent":"\"types\".PbRequestCommandAdd.__type.add.__type"},{"id":88,"kind":4194304,"name":"Recipe","url":"modules/_types_.html#recipe","classes":"tsd-kind-type-alias tsd-parent-kind-module","parent":"\"types\""},{"id":89,"kind":4194304,"name":"ResolveRecipe","url":"modules/_types_.html#resolverecipe","classes":"tsd-kind-type-alias tsd-parent-kind-module","parent":"\"types\""},{"id":90,"kind":65536,"name":"__type","url":"modules/_types_.html#resolverecipe.__type-24","classes":"tsd-kind-type-literal tsd-parent-kind-type-alias","parent":"\"types\".ResolveRecipe"},{"id":91,"kind":4194304,"name":"GetResponse","url":"modules/_types_.html#getresponse","classes":"tsd-kind-type-alias tsd-parent-kind-module","parent":"\"types\""},{"id":92,"kind":4194304,"name":"Response","url":"modules/_types_.html#response","classes":"tsd-kind-type-alias tsd-parent-kind-module","parent":"\"types\""},{"id":93,"kind":4194304,"name":"DecodeFn","url":"modules/_types_.html#decodefn","classes":"tsd-kind-type-alias tsd-parent-kind-module","parent":"\"types\""},{"id":94,"kind":65536,"name":"__type","url":"modules/_types_.html#decodefn.__type-4","classes":"tsd-kind-type-literal tsd-parent-kind-type-alias","parent":"\"types\".DecodeFn"},{"id":95,"kind":4194304,"name":"EncodeArgs","url":"modules/_types_.html#encodeargs","classes":"tsd-kind-type-alias tsd-parent-kind-module","parent":"\"types\""},{"id":96,"kind":65536,"name":"__type","url":"modules/_types_.html#encodeargs.__type-6","classes":"tsd-kind-type-literal tsd-parent-kind-type-alias","parent":"\"types\".EncodeArgs"},{"id":97,"kind":32,"name":"rootMsg","url":"modules/_types_.html#encodeargs.__type-6.rootmsg","classes":"tsd-kind-variable tsd-parent-kind-type-literal","parent":"\"types\".EncodeArgs.__type"},{"id":98,"kind":32,"name":"rootRecord","url":"modules/_types_.html#encodeargs.__type-6.rootrecord","classes":"tsd-kind-variable tsd-parent-kind-type-literal","parent":"\"types\".EncodeArgs.__type"},{"id":99,"kind":32,"name":"header","url":"modules/_types_.html#encodeargs.__type-6.header","classes":"tsd-kind-variable tsd-parent-kind-type-literal","parent":"\"types\".EncodeArgs.__type"},{"id":100,"kind":32,"name":"options","url":"modules/_types_.html#encodeargs.__type-6.options","classes":"tsd-kind-variable tsd-parent-kind-type-literal","parent":"\"types\".EncodeArgs.__type"},{"id":101,"kind":32,"name":"args","url":"modules/_types_.html#encodeargs.__type-6.args","classes":"tsd-kind-variable tsd-parent-kind-type-literal","parent":"\"types\".EncodeArgs.__type"},{"id":102,"kind":4194304,"name":"EncodeFn","url":"modules/_types_.html#encodefn","classes":"tsd-kind-type-alias tsd-parent-kind-module","parent":"\"types\""},{"id":103,"kind":65536,"name":"__type","url":"modules/_types_.html#encodefn.__type-7","classes":"tsd-kind-type-literal tsd-parent-kind-type-alias","parent":"\"types\".EncodeFn"},{"id":104,"kind":4194304,"name":"CallFn","url":"modules/_types_.html#callfn","classes":"tsd-kind-type-alias tsd-parent-kind-module","parent":"\"types\""},{"id":105,"kind":65536,"name":"__type","url":"modules/_types_.html#callfn.__type-1","classes":"tsd-kind-type-literal tsd-parent-kind-type-alias","parent":"\"types\".CallFn"},{"id":106,"kind":4194304,"name":"MakeFn","url":"modules/_types_.html#makefn","classes":"tsd-kind-type-alias tsd-parent-kind-module","parent":"\"types\""},{"id":107,"kind":65536,"name":"__type","url":"modules/_types_.html#makefn.__type-9","classes":"tsd-kind-type-literal tsd-parent-kind-type-alias","parent":"\"types\".MakeFn"},{"id":108,"kind":4194304,"name":"MakeRecipeFn","url":"modules/_types_.html#makerecipefn","classes":"tsd-kind-type-alias tsd-parent-kind-module","parent":"\"types\""},{"id":109,"kind":65536,"name":"__type","url":"modules/_types_.html#makerecipefn.__type-10","classes":"tsd-kind-type-literal tsd-parent-kind-type-alias","parent":"\"types\".MakeRecipeFn"},{"id":110,"kind":4194304,"name":"CommandTrigger","url":"modules/_types_.html#commandtrigger","classes":"tsd-kind-type-alias tsd-parent-kind-module","parent":"\"types\""},{"id":111,"kind":65536,"name":"__type","url":"modules/_types_.html#commandtrigger.__type-3","classes":"tsd-kind-type-literal tsd-parent-kind-type-alias","parent":"\"types\".CommandTrigger"},{"id":112,"kind":32,"name":"decode","url":"modules/_types_.html#commandtrigger.__type-3.decode-1","classes":"tsd-kind-variable tsd-parent-kind-type-literal","parent":"\"types\".CommandTrigger.__type"},{"id":113,"kind":32,"name":"encode","url":"modules/_types_.html#commandtrigger.__type-3.encode-1","classes":"tsd-kind-variable tsd-parent-kind-type-literal","parent":"\"types\".CommandTrigger.__type"},{"id":114,"kind":4194304,"name":"CommandObject","url":"modules/_types_.html#commandobject","classes":"tsd-kind-type-alias tsd-parent-kind-module","parent":"\"types\""},{"id":115,"kind":65536,"name":"__type","url":"modules/_types_.html#commandobject.__type-2","classes":"tsd-kind-type-literal tsd-parent-kind-type-alias","parent":"\"types\".CommandObject"},{"id":116,"kind":32,"name":"encode","url":"modules/_types_.html#commandobject.__type-2.encode","classes":"tsd-kind-variable tsd-parent-kind-type-literal","parent":"\"types\".CommandObject.__type"},{"id":117,"kind":32,"name":"decode","url":"modules/_types_.html#commandobject.__type-2.decode","classes":"tsd-kind-variable tsd-parent-kind-type-literal","parent":"\"types\".CommandObject.__type"},{"id":118,"kind":32,"name":"make","url":"modules/_types_.html#commandobject.__type-2.make","classes":"tsd-kind-variable tsd-parent-kind-type-literal","parent":"\"types\".CommandObject.__type"},{"id":119,"kind":32,"name":"name","url":"modules/_types_.html#commandobject.__type-2.name","classes":"tsd-kind-variable tsd-parent-kind-type-literal","parent":"\"types\".CommandObject.__type"},{"id":120,"kind":32,"name":"trigger","url":"modules/_types_.html#commandobject.__type-2.trigger","classes":"tsd-kind-variable tsd-parent-kind-type-literal","parent":"\"types\".CommandObject.__type"},{"id":121,"kind":32,"name":"keepRoute","url":"modules/_types_.html#commandobject.__type-2.keeproute","classes":"tsd-kind-variable tsd-parent-kind-type-literal","parent":"\"types\".CommandObject.__type"},{"id":122,"kind":1,"name":"\"commands/util\"","url":"modules/_commands_util_.html","classes":"tsd-kind-module"},{"id":123,"kind":32,"name":"digitRe","url":"modules/_commands_util_.html#digitre","classes":"tsd-kind-variable tsd-parent-kind-module tsd-is-not-exported","parent":"\"commands/util\""},{"id":124,"kind":32,"name":"digitDotRe","url":"modules/_commands_util_.html#digitdotre","classes":"tsd-kind-variable tsd-parent-kind-module tsd-is-not-exported","parent":"\"commands/util\""},{"id":125,"kind":64,"name":"isDigit","url":"modules/_commands_util_.html#isdigit","classes":"tsd-kind-function tsd-parent-kind-module tsd-is-not-exported","parent":"\"commands/util\""},{"id":126,"kind":64,"name":"firstIsIndex","url":"modules/_commands_util_.html#firstisindex","classes":"tsd-kind-function tsd-parent-kind-module tsd-is-not-exported","parent":"\"commands/util\""},{"id":127,"kind":64,"name":"unflatten","url":"modules/_commands_util_.html#unflatten","classes":"tsd-kind-function tsd-parent-kind-module","parent":"\"commands/util\""},{"id":128,"kind":64,"name":"search","url":"modules/_commands_util_.html#search","classes":"tsd-kind-function tsd-parent-kind-module","parent":"\"commands/util\""},{"id":129,"kind":64,"name":"_searchAll","url":"modules/_commands_util_.html#_searchall","classes":"tsd-kind-function tsd-parent-kind-module tsd-is-not-exported","parent":"\"commands/util\""},{"id":130,"kind":64,"name":"searchAll","url":"modules/_commands_util_.html#searchall","classes":"tsd-kind-function tsd-parent-kind-module","parent":"\"commands/util\""},{"id":131,"kind":64,"name":"extractCommand","url":"modules/_commands_util_.html#extractcommand","classes":"tsd-kind-function tsd-parent-kind-module","parent":"\"commands/util\""},{"id":132,"kind":64,"name":"unwrapObject","url":"modules/_commands_util_.html#unwrapobject","classes":"tsd-kind-function tsd-parent-kind-module","parent":"\"commands/util\""},{"id":133,"kind":64,"name":"unwrapArray","url":"modules/_commands_util_.html#unwraparray","classes":"tsd-kind-function tsd-parent-kind-module","parent":"\"commands/util\""},{"id":134,"kind":64,"name":"makeBuffer","url":"modules/_commands_util_.html#makebuffer","classes":"tsd-kind-function tsd-parent-kind-module","parent":"\"commands/util\""},{"id":135,"kind":64,"name":"uniq","url":"modules/_commands_util_.html#uniq","classes":"tsd-kind-function tsd-parent-kind-module","parent":"\"commands/util\""},{"id":136,"kind":64,"name":"encodeObject","url":"modules/_commands_util_.html#encodeobject","classes":"tsd-kind-function tsd-parent-kind-module","parent":"\"commands/util\""},{"id":137,"kind":64,"name":"encodePairs","url":"modules/_commands_util_.html#encodepairs","classes":"tsd-kind-function tsd-parent-kind-module","parent":"\"commands/util\""},{"id":138,"kind":1,"name":"\"commands/add\"","url":"modules/_commands_add_.html","classes":"tsd-kind-module"},{"id":139,"kind":64,"name":"decode","url":"modules/_commands_add_.html#decode","classes":"tsd-kind-function tsd-parent-kind-module tsd-is-not-exported","parent":"\"commands/add\""},{"id":140,"kind":64,"name":"encode","url":"modules/_commands_add_.html#encode","classes":"tsd-kind-function tsd-parent-kind-module tsd-is-not-exported","parent":"\"commands/add\""},{"id":141,"kind":64,"name":"make","url":"modules/_commands_add_.html#make","classes":"tsd-kind-function tsd-parent-kind-module tsd-is-not-exported","parent":"\"commands/add\""},{"id":142,"kind":1,"name":"\"commands/del\"","url":"modules/_commands_del_.html","classes":"tsd-kind-module"},{"id":143,"kind":64,"name":"decode","url":"modules/_commands_del_.html#decode","classes":"tsd-kind-function tsd-parent-kind-module tsd-is-not-exported","parent":"\"commands/del\""},{"id":144,"kind":64,"name":"encode","url":"modules/_commands_del_.html#encode","classes":"tsd-kind-function tsd-parent-kind-module tsd-is-not-exported","parent":"\"commands/del\""},{"id":145,"kind":64,"name":"make","url":"modules/_commands_del_.html#make","classes":"tsd-kind-function tsd-parent-kind-module tsd-is-not-exported","parent":"\"commands/del\""},{"id":146,"kind":1,"name":"\"commands/get\"","url":"modules/_commands_get_.html","classes":"tsd-kind-module"},{"id":147,"kind":64,"name":"decode","url":"modules/_commands_get_.html#decode","classes":"tsd-kind-function tsd-parent-kind-module tsd-is-not-exported","parent":"\"commands/get\""},{"id":148,"kind":64,"name":"encode","url":"modules/_commands_get_.html#encode","classes":"tsd-kind-function tsd-parent-kind-module tsd-is-not-exported","parent":"\"commands/get\""},{"id":149,"kind":64,"name":"make","url":"modules/_commands_get_.html#make","classes":"tsd-kind-function tsd-parent-kind-module tsd-is-not-exported","parent":"\"commands/get\""},{"id":150,"kind":1,"name":"\"commands/set\"","url":"modules/_commands_set_.html","classes":"tsd-kind-module"},{"id":151,"kind":64,"name":"decode","url":"modules/_commands_set_.html#decode","classes":"tsd-kind-function tsd-parent-kind-module tsd-is-not-exported","parent":"\"commands/set\""},{"id":152,"kind":64,"name":"encode","url":"modules/_commands_set_.html#encode","classes":"tsd-kind-function tsd-parent-kind-module tsd-is-not-exported","parent":"\"commands/set\""},{"id":153,"kind":64,"name":"make","url":"modules/_commands_set_.html#make","classes":"tsd-kind-function tsd-parent-kind-module tsd-is-not-exported","parent":"\"commands/set\""},{"id":154,"kind":1,"name":"\"commands/operate\"","url":"modules/_commands_operate_.html","classes":"tsd-kind-module"},{"id":155,"kind":64,"name":"decode","url":"modules/_commands_operate_.html#decode","classes":"tsd-kind-function tsd-parent-kind-module tsd-is-not-exported","parent":"\"commands/operate\""},{"id":156,"kind":64,"name":"encode","url":"modules/_commands_operate_.html#encode","classes":"tsd-kind-function tsd-parent-kind-module tsd-is-not-exported","parent":"\"commands/operate\""},{"id":157,"kind":32,"name":"operateSubscriptionPath","url":"modules/_commands_operate_.html#operatesubscriptionpath","classes":"tsd-kind-variable tsd-parent-kind-module tsd-is-not-exported","parent":"\"commands/operate\""},{"id":158,"kind":64,"name":"make","url":"modules/_commands_operate_.html#make","classes":"tsd-kind-function tsd-parent-kind-module tsd-is-not-exported","parent":"\"commands/operate\""},{"id":159,"kind":1,"name":"\"commands/recipes/resolve\"","url":"modules/_commands_recipes_resolve_.html","classes":"tsd-kind-module"},{"id":160,"kind":64,"name":"splitReference","url":"modules/_commands_recipes_resolve_.html#splitreference","classes":"tsd-kind-function tsd-parent-kind-module tsd-is-not-exported","parent":"\"commands/recipes/resolve\""},{"id":161,"kind":64,"name":"isReference","url":"modules/_commands_recipes_resolve_.html#isreference","classes":"tsd-kind-function tsd-parent-kind-module tsd-is-not-exported","parent":"\"commands/recipes/resolve\""},{"id":162,"kind":64,"name":"addDot","url":"modules/_commands_recipes_resolve_.html#adddot","classes":"tsd-kind-function tsd-parent-kind-module tsd-is-not-exported","parent":"\"commands/recipes/resolve\""},{"id":163,"kind":64,"name":"resolveReferences","url":"modules/_commands_recipes_resolve_.html#resolvereferences","classes":"tsd-kind-function tsd-parent-kind-module tsd-is-not-exported","parent":"\"commands/recipes/resolve\""},{"id":164,"kind":64,"name":"make","url":"modules/_commands_recipes_resolve_.html#make","classes":"tsd-kind-function tsd-parent-kind-module tsd-is-not-exported","parent":"\"commands/recipes/resolve\""},{"id":165,"kind":1,"name":"\"commands/index\"","url":"modules/_commands_index_.html","classes":"tsd-kind-module"},{"id":166,"kind":32,"name":"rootRecord","url":"modules/_commands_index_.html#rootrecord","classes":"tsd-kind-variable tsd-parent-kind-module","parent":"\"commands/index\""},{"id":167,"kind":32,"name":"rootMsg","url":"modules/_commands_index_.html#rootmsg","classes":"tsd-kind-variable tsd-parent-kind-module","parent":"\"commands/index\""},{"id":168,"kind":32,"name":"header","url":"modules/_commands_index_.html#header","classes":"tsd-kind-variable tsd-parent-kind-module","parent":"\"commands/index\""},{"id":169,"kind":32,"name":"commands","url":"modules/_commands_index_.html#commands","classes":"tsd-kind-variable tsd-parent-kind-module tsd-is-not-exported","parent":"\"commands/index\""},{"id":170,"kind":32,"name":"recipes","url":"modules/_commands_index_.html#recipes","classes":"tsd-kind-variable tsd-parent-kind-module tsd-is-not-exported","parent":"\"commands/index\""},{"id":171,"kind":32,"name":"allFunctions","url":"modules/_commands_index_.html#allfunctions","classes":"tsd-kind-variable tsd-parent-kind-module tsd-is-not-exported","parent":"\"commands/index\""},{"id":172,"kind":64,"name":"makeCommands","url":"modules/_commands_index_.html#makecommands","classes":"tsd-kind-function tsd-parent-kind-module","parent":"\"commands/index\""},{"id":173,"kind":64,"name":"parseTrigger","url":"modules/_commands_index_.html#parsetrigger","classes":"tsd-kind-function tsd-parent-kind-module tsd-is-not-exported","parent":"\"commands/index\""},{"id":174,"kind":64,"name":"findDecode","url":"modules/_commands_index_.html#finddecode","classes":"tsd-kind-function tsd-parent-kind-module tsd-is-not-exported","parent":"\"commands/index\""},{"id":175,"kind":64,"name":"findEncode","url":"modules/_commands_index_.html#findencode","classes":"tsd-kind-function tsd-parent-kind-module tsd-is-not-exported","parent":"\"commands/index\""},{"id":176,"kind":64,"name":"unkownErr","url":"modules/_commands_index_.html#unkownerr","classes":"tsd-kind-function tsd-parent-kind-module tsd-is-not-exported","parent":"\"commands/index\""},{"id":177,"kind":32,"name":"ignorableCommands","url":"modules/_commands_index_.html#ignorablecommands","classes":"tsd-kind-variable tsd-parent-kind-module tsd-is-not-exported","parent":"\"commands/index\""},{"id":178,"kind":64,"name":"isIgnorable","url":"modules/_commands_index_.html#isignorable","classes":"tsd-kind-function tsd-parent-kind-module tsd-is-not-exported","parent":"\"commands/index\""},{"id":179,"kind":64,"name":"decode","url":"modules/_commands_index_.html#decode","classes":"tsd-kind-function tsd-parent-kind-module","parent":"\"commands/index\""},{"id":180,"kind":64,"name":"makeEncode","url":"modules/_commands_index_.html#makeencode","classes":"tsd-kind-function tsd-parent-kind-module","parent":"\"commands/index\""},{"id":181,"kind":64,"name":"convert","url":"modules/_commands_index_.html#convert","classes":"tsd-kind-function tsd-parent-kind-module tsd-is-not-exported","parent":"\"commands/index\""},{"id":182,"kind":64,"name":"isError","url":"modules/_commands_index_.html#iserror","classes":"tsd-kind-function tsd-parent-kind-module tsd-is-not-exported","parent":"\"commands/index\""},{"id":183,"kind":32,"name":"internalKeys","url":"modules/_commands_index_.html#internalkeys","classes":"tsd-kind-variable tsd-parent-kind-module tsd-is-not-exported","parent":"\"commands/index\""},{"id":184,"kind":64,"name":"isInternal","url":"modules/_commands_index_.html#isinternal","classes":"tsd-kind-function tsd-parent-kind-module tsd-is-not-exported","parent":"\"commands/index\""},{"id":185,"kind":64,"name":"makePayload","url":"modules/_commands_index_.html#makepayload","classes":"tsd-kind-function tsd-parent-kind-module tsd-is-not-exported","parent":"\"commands/index\""},{"id":186,"kind":64,"name":"isStringArray","url":"modules/_commands_index_.html#isstringarray","classes":"tsd-kind-function tsd-parent-kind-module tsd-is-not-exported","parent":"\"commands/index\""},{"id":187,"kind":64,"name":"needsConversion","url":"modules/_commands_index_.html#needsconversion","classes":"tsd-kind-function tsd-parent-kind-module tsd-is-not-exported","parent":"\"commands/index\""},{"id":188,"kind":64,"name":"_convert","url":"modules/_commands_index_.html#_convert","classes":"tsd-kind-function tsd-parent-kind-module tsd-is-not-exported","parent":"\"commands/index\""},{"id":189,"kind":1,"name":"\"util\"","url":"modules/_util_.html","classes":"tsd-kind-module"},{"id":190,"kind":64,"name":"makeRouter","url":"modules/_util_.html#makerouter","classes":"tsd-kind-function tsd-parent-kind-module","parent":"\"util\""},{"id":191,"kind":1,"name":"\"index\"","url":"modules/_index_.html","classes":"tsd-kind-module"},{"id":192,"kind":32,"name":"defaultPublishEndpoint","url":"modules/_index_.html#defaultpublishendpoint","classes":"tsd-kind-variable tsd-parent-kind-module tsd-is-not-exported","parent":"\"index\""},{"id":193,"kind":32,"name":"defaultSubscribeEndpoint","url":"modules/_index_.html#defaultsubscribeendpoint","classes":"tsd-kind-variable tsd-parent-kind-module tsd-is-not-exported","parent":"\"index\""},{"id":194,"kind":64,"name":"_connect","url":"modules/_index_.html#_connect","classes":"tsd-kind-function tsd-parent-kind-module tsd-is-not-exported","parent":"\"index\""},{"id":195,"kind":64,"name":"connect","url":"modules/_index_.html#connect","classes":"tsd-kind-function tsd-parent-kind-module","parent":"\"index\""}],"index":{"version":"2.3.9","fields":["name","parent"],"fieldVectors":[["name/0",[0,16.589]],["parent/0",[]],["name/1",[1,48.777]],["parent/1",[0,1.619]],["name/2",[2,43.669]],["parent/2",[3,3.191]],["name/3",[4,43.669]],["parent/3",[3,3.191]],["name/4",[5,43.669]],["parent/4",[3,3.191]],["name/5",[6,43.669]],["parent/5",[3,3.191]],["name/6",[7,48.777]],["parent/6",[3,3.191]],["name/7",[8,48.777]],["parent/7",[3,3.191]],["name/8",[9,48.777]],["parent/8",[3,3.191]],["name/9",[10,19.69]],["parent/9",[11,4.762]],["name/10",[12,48.777]],["parent/10",[0,1.619]],["name/11",[13,48.777]],["parent/11",[14,4.263]],["name/12",[15,48.777]],["parent/12",[14,4.263]],["name/13",[16,48.777]],["parent/13",[0,1.619]],["name/14",[17,48.777]],["parent/14",[18,3.935]],["name/15",[19,48.777]],["parent/15",[18,3.935]],["name/16",[20,40.304]],["parent/16",[18,3.935]],["name/17",[21,48.777]],["parent/17",[0,1.619]],["name/18",[20,40.304]],["parent/18",[22,4.263]],["name/19",[23,48.777]],["parent/19",[22,4.263]],["name/20",[24,48.777]],["parent/20",[0,1.619]],["name/21",[25,40.304]],["parent/21",[26,3.935]],["name/22",[27,48.777]],["parent/22",[26,3.935]],["name/23",[20,40.304]],["parent/23",[26,3.935]],["name/24",[28,48.777]],["parent/24",[0,1.619]],["name/25",[29,48.777]],["parent/25",[30,2.96]],["name/26",[31,48.777]],["parent/26",[30,2.96]],["name/27",[32,48.777]],["parent/27",[30,2.96]],["name/28",[33,48.777]],["parent/28",[30,2.96]],["name/29",[34,48.777]],["parent/29",[30,2.96]],["name/30",[35,48.777]],["parent/30",[30,2.96]],["name/31",[36,48.777]],["parent/31",[30,2.96]],["name/32",[37,48.777]],["parent/32",[30,2.96]],["name/33",[38,48.777]],["parent/33",[30,2.96]],["name/34",[39,48.777]],["parent/34",[0,1.619]],["name/35",[40,48.777]],["parent/35",[41,4.762]],["name/36",[42,48.777]],["parent/36",[0,1.619]],["name/37",[43,43.669]],["parent/37",[44,4.263]],["name/38",[45,31.431]],["parent/38",[44,4.263]],["name/39",[46,48.777]],["parent/39",[0,1.619]],["name/40",[47,48.777]],["parent/40",[0,1.619]],["name/41",[48,48.777]],["parent/41",[0,1.619]],["name/42",[10,19.69]],["parent/42",[49,4.762]],["name/43",[50,48.777]],["parent/43",[0,1.619]],["name/44",[10,19.69]],["parent/44",[51,4.762]],["name/45",[52,48.777]],["parent/45",[0,1.619]],["name/46",[10,19.69]],["parent/46",[53,4.762]],["name/47",[54,48.777]],["parent/47",[0,1.619]],["name/48",[10,19.69]],["parent/48",[55,4.762]],["name/49",[56,48.777]],["parent/49",[0,1.619]],["name/50",[10,19.69]],["parent/50",[57,4.762]],["name/51",[58,48.777]],["parent/51",[0,1.619]],["name/52",[10,19.69]],["parent/52",[59,4.762]],["name/53",[60,48.777]],["parent/53",[0,1.619]],["name/54",[10,19.69]],["parent/54",[61,4.762]],["name/55",[62,43.669]],["parent/55",[0,1.619]],["name/56",[63,48.777]],["parent/56",[0,1.619]],["name/57",[64,48.777]],["parent/57",[0,1.619]],["name/58",[10,19.69]],["parent/58",[65,4.762]],["name/59",[5,43.669]],["parent/59",[66,4.762]],["name/60",[10,19.69]],["parent/60",[67,4.762]],["name/61",[62,43.669]],["parent/61",[68,3.689]],["name/62",[69,48.777]],["parent/62",[68,3.689]],["name/63",[70,48.777]],["parent/63",[68,3.689]],["name/64",[71,48.777]],["parent/64",[68,3.689]],["name/65",[72,48.777]],["parent/65",[0,1.619]],["name/66",[10,19.69]],["parent/66",[73,4.762]],["name/67",[74,48.777]],["parent/67",[75,4.762]],["name/68",[10,19.69]],["parent/68",[76,4.762]],["name/69",[77,40.304]],["parent/69",[78,4.263]],["name/70",[79,48.777]],["parent/70",[78,4.263]],["name/71",[80,48.777]],["parent/71",[0,1.619]],["name/72",[10,19.69]],["parent/72",[81,4.762]],["name/73",[2,43.669]],["parent/73",[82,4.762]],["name/74",[10,19.69]],["parent/74",[83,4.762]],["name/75",[84,48.777]],["parent/75",[85,4.762]],["name/76",[86,48.777]],["parent/76",[0,1.619]],["name/77",[10,19.69]],["parent/77",[87,4.762]],["name/78",[4,43.669]],["parent/78",[88,4.762]],["name/79",[10,19.69]],["parent/79",[89,4.762]],["name/80",[77,40.304]],["parent/80",[90,4.263]],["name/81",[91,48.777]],["parent/81",[90,4.263]],["name/82",[92,48.777]],["parent/82",[0,1.619]],["name/83",[10,19.69]],["parent/83",[93,4.762]],["name/84",[6,43.669]],["parent/84",[94,4.762]],["name/85",[10,19.69]],["parent/85",[95,4.762]],["name/86",[77,40.304]],["parent/86",[96,4.263]],["name/87",[97,48.777]],["parent/87",[96,4.263]],["name/88",[98,48.777]],["parent/88",[0,1.619]],["name/89",[99,48.777]],["parent/89",[0,1.619]],["name/90",[10,19.69]],["parent/90",[100,4.762]],["name/91",[101,48.777]],["parent/91",[0,1.619]],["name/92",[102,48.777]],["parent/92",[0,1.619]],["name/93",[103,48.777]],["parent/93",[0,1.619]],["name/94",[10,19.69]],["parent/94",[104,4.762]],["name/95",[105,48.777]],["parent/95",[0,1.619]],["name/96",[10,19.69]],["parent/96",[106,4.762]],["name/97",[107,43.669]],["parent/97",[108,3.493]],["name/98",[109,43.669]],["parent/98",[108,3.493]],["name/99",[25,40.304]],["parent/99",[108,3.493]],["name/100",[110,48.777]],["parent/100",[108,3.493]],["name/101",[111,48.777]],["parent/101",[108,3.493]],["name/102",[112,48.777]],["parent/102",[0,1.619]],["name/103",[10,19.69]],["parent/103",[113,4.762]],["name/104",[114,48.777]],["parent/104",[0,1.619]],["name/105",[10,19.69]],["parent/105",[115,4.762]],["name/106",[116,48.777]],["parent/106",[0,1.619]],["name/107",[10,19.69]],["parent/107",[117,4.762]],["name/108",[118,48.777]],["parent/108",[0,1.619]],["name/109",[10,19.69]],["parent/109",[119,4.762]],["name/110",[120,48.777]],["parent/110",[0,1.619]],["name/111",[10,19.69]],["parent/111",[121,4.762]],["name/112",[122,31.431]],["parent/112",[123,4.263]],["name/113",[124,32.683]],["parent/113",[123,4.263]],["name/114",[125,48.777]],["parent/114",[0,1.619]],["name/115",[10,19.69]],["parent/115",[126,4.762]],["name/116",[124,32.683]],["parent/116",[127,3.33]],["name/117",[122,31.431]],["parent/117",[127,3.33]],["name/118",[45,31.431]],["parent/118",[127,3.33]],["name/119",[43,43.669]],["parent/119",[127,3.33]],["name/120",[128,48.777]],["parent/120",[127,3.33]],["name/121",[129,48.777]],["parent/121",[127,3.33]],["name/122",[130,24.798]],["parent/122",[]],["name/123",[131,48.777]],["parent/123",[130,2.421]],["name/124",[132,48.777]],["parent/124",[130,2.421]],["name/125",[133,48.777]],["parent/125",[130,2.421]],["name/126",[134,48.777]],["parent/126",[130,2.421]],["name/127",[135,48.777]],["parent/127",[130,2.421]],["name/128",[136,48.777]],["parent/128",[130,2.421]],["name/129",[137,48.777]],["parent/129",[130,2.421]],["name/130",[138,48.777]],["parent/130",[130,2.421]],["name/131",[139,48.777]],["parent/131",[130,2.421]],["name/132",[140,48.777]],["parent/132",[130,2.421]],["name/133",[141,48.777]],["parent/133",[130,2.421]],["name/134",[142,48.777]],["parent/134",[130,2.421]],["name/135",[143,48.777]],["parent/135",[130,2.421]],["name/136",[144,48.777]],["parent/136",[130,2.421]],["name/137",[145,48.777]],["parent/137",[130,2.421]],["name/138",[146,37.791]],["parent/138",[]],["name/139",[122,31.431]],["parent/139",[146,3.689]],["name/140",[124,32.683]],["parent/140",[146,3.689]],["name/141",[45,31.431]],["parent/141",[146,3.689]],["name/142",[147,37.791]],["parent/142",[]],["name/143",[122,31.431]],["parent/143",[147,3.689]],["name/144",[124,32.683]],["parent/144",[147,3.689]],["name/145",[45,31.431]],["parent/145",[147,3.689]],["name/146",[148,37.791]],["parent/146",[]],["name/147",[122,31.431]],["parent/147",[148,3.689]],["name/148",[124,32.683]],["parent/148",[148,3.689]],["name/149",[45,31.431]],["parent/149",[148,3.689]],["name/150",[149,37.791]],["parent/150",[]],["name/151",[122,31.431]],["parent/151",[149,3.689]],["name/152",[124,32.683]],["parent/152",[149,3.689]],["name/153",[45,31.431]],["parent/153",[149,3.689]],["name/154",[150,35.785]],["parent/154",[]],["name/155",[122,31.431]],["parent/155",[150,3.493]],["name/156",[124,32.683]],["parent/156",[150,3.493]],["name/157",[151,48.777]],["parent/157",[150,3.493]],["name/158",[45,31.431]],["parent/158",[150,3.493]],["name/159",[152,34.114]],["parent/159",[]],["name/160",[153,48.777]],["parent/160",[152,3.33]],["name/161",[154,48.777]],["parent/161",[152,3.33]],["name/162",[155,48.777]],["parent/162",[152,3.33]],["name/163",[156,48.777]],["parent/163",[152,3.33]],["name/164",[45,31.431]],["parent/164",[152,3.33]],["name/165",[157,20.845]],["parent/165",[]],["name/166",[109,43.669]],["parent/166",[157,2.035]],["name/167",[107,43.669]],["parent/167",[157,2.035]],["name/168",[25,40.304]],["parent/168",[157,2.035]],["name/169",[158,48.777]],["parent/169",[157,2.035]],["name/170",[159,48.777]],["parent/170",[157,2.035]],["name/171",[160,48.777]],["parent/171",[157,2.035]],["name/172",[161,48.777]],["parent/172",[157,2.035]],["name/173",[162,48.777]],["parent/173",[157,2.035]],["name/174",[163,48.777]],["parent/174",[157,2.035]],["name/175",[164,48.777]],["parent/175",[157,2.035]],["name/176",[165,48.777]],["parent/176",[157,2.035]],["name/177",[166,48.777]],["parent/177",[157,2.035]],["name/178",[167,48.777]],["parent/178",[157,2.035]],["name/179",[122,31.431]],["parent/179",[157,2.035]],["name/180",[168,48.777]],["parent/180",[157,2.035]],["name/181",[169,48.777]],["parent/181",[157,2.035]],["name/182",[170,48.777]],["parent/182",[157,2.035]],["name/183",[171,48.777]],["parent/183",[157,2.035]],["name/184",[172,48.777]],["parent/184",[157,2.035]],["name/185",[173,48.777]],["parent/185",[157,2.035]],["name/186",[174,48.777]],["parent/186",[157,2.035]],["name/187",[175,48.777]],["parent/187",[157,2.035]],["name/188",[176,48.777]],["parent/188",[157,2.035]],["name/189",[177,43.669]],["parent/189",[]],["name/190",[178,48.777]],["parent/190",[177,4.263]],["name/191",[179,35.785]],["parent/191",[]],["name/192",[180,48.777]],["parent/192",[179,3.493]],["name/193",[181,48.777]],["parent/193",[179,3.493]],["name/194",[182,48.777]],["parent/194",[179,3.493]],["name/195",[183,48.777]],["parent/195",[179,3.493]]],"invertedIndex":[["__type",{"_index":10,"name":{"9":{},"42":{},"44":{},"46":{},"48":{},"50":{},"52":{},"54":{},"58":{},"60":{},"66":{},"68":{},"72":{},"74":{},"77":{},"79":{},"83":{},"85":{},"90":{},"94":{},"96":{},"103":{},"105":{},"107":{},"109":{},"111":{},"115":{}},"parent":{}}],["_connect",{"_index":182,"name":{"194":{}},"parent":{}}],["_convert",{"_index":176,"name":{"188":{}},"parent":{}}],["_searchall",{"_index":137,"name":{"129":{}},"parent":{}}],["add",{"_index":6,"name":{"5":{},"84":{}},"parent":{}}],["addcommand",{"_index":52,"name":{"45":{}},"parent":{}}],["adddot",{"_index":155,"name":{"162":{}},"parent":{}}],["allfunctions",{"_index":160,"name":{"171":{}},"parent":{}}],["allowpartial",{"_index":77,"name":{"69":{},"80":{},"86":{}},"parent":{}}],["args",{"_index":111,"name":{"101":{}},"parent":{}}],["body",{"_index":27,"name":{"22":{}},"parent":{}}],["callfn",{"_index":114,"name":{"104":{}},"parent":{}}],["command",{"_index":62,"name":{"55":{},"61":{}},"parent":{}}],["commandkey",{"_index":69,"name":{"62":{}},"parent":{}}],["commandobject",{"_index":125,"name":{"114":{}},"parent":{}}],["commands",{"_index":158,"name":{"169":{}},"parent":{}}],["commands/add",{"_index":146,"name":{"138":{}},"parent":{"139":{},"140":{},"141":{}}}],["commands/del",{"_index":147,"name":{"142":{}},"parent":{"143":{},"144":{},"145":{}}}],["commands/get",{"_index":148,"name":{"146":{}},"parent":{"147":{},"148":{},"149":{}}}],["commands/index",{"_index":157,"name":{"165":{}},"parent":{"166":{},"167":{},"168":{},"169":{},"170":{},"171":{},"172":{},"173":{},"174":{},"175":{},"176":{},"177":{},"178":{},"179":{},"180":{},"181":{},"182":{},"183":{},"184":{},"185":{},"186":{},"187":{},"188":{}}}],["commands/operate",{"_index":150,"name":{"154":{}},"parent":{"155":{},"156":{},"157":{},"158":{}}}],["commands/recipes/resolve",{"_index":152,"name":{"159":{}},"parent":{"160":{},"161":{},"162":{},"163":{},"164":{}}}],["commands/set",{"_index":149,"name":{"150":{}},"parent":{"151":{},"152":{},"153":{}}}],["commands/util",{"_index":130,"name":{"122":{}},"parent":{"123":{},"124":{},"125":{},"126":{},"127":{},"128":{},"129":{},"130":{},"131":{},"132":{},"133":{},"134":{},"135":{},"136":{},"137":{}}}],["commandtrigger",{"_index":120,"name":{"110":{}},"parent":{}}],["commandtype",{"_index":46,"name":{"39":{}},"parent":{}}],["connect",{"_index":183,"name":{"195":{}},"parent":{}}],["connectionevents",{"_index":39,"name":{"34":{}},"parent":{}}],["connectionoptions",{"_index":28,"name":{"24":{}},"parent":{}}],["convert",{"_index":169,"name":{"181":{}},"parent":{}}],["createobjs",{"_index":97,"name":{"87":{}},"parent":{}}],["decode",{"_index":122,"name":{"112":{},"117":{},"139":{},"143":{},"147":{},"151":{},"155":{},"179":{}},"parent":{}}],["decodefn",{"_index":103,"name":{"93":{}},"parent":{}}],["defaultpublishendpoint",{"_index":180,"name":{"192":{}},"parent":{}}],["defaultsubscribeendpoint",{"_index":181,"name":{"193":{}},"parent":{}}],["del",{"_index":7,"name":{"6":{}},"parent":{}}],["delcommand",{"_index":54,"name":{"47":{}},"parent":{}}],["delete",{"_index":74,"name":{"67":{}},"parent":{}}],["digitdotre",{"_index":132,"name":{"124":{}},"parent":{}}],["digitre",{"_index":131,"name":{"123":{}},"parent":{}}],["disconnect",{"_index":9,"name":{"8":{}},"parent":{}}],["encode",{"_index":124,"name":{"113":{},"116":{},"140":{},"144":{},"148":{},"152":{},"156":{}},"parent":{}}],["encodeargs",{"_index":105,"name":{"95":{}},"parent":{}}],["encodefn",{"_index":112,"name":{"102":{}},"parent":{}}],["encodeobject",{"_index":144,"name":{"136":{}},"parent":{}}],["encodepairs",{"_index":145,"name":{"137":{}},"parent":{}}],["extractcommand",{"_index":139,"name":{"131":{}},"parent":{}}],["finddecode",{"_index":163,"name":{"174":{}},"parent":{}}],["findencode",{"_index":164,"name":{"175":{}},"parent":{}}],["firstisindex",{"_index":134,"name":{"126":{}},"parent":{}}],["fromid",{"_index":33,"name":{"28":{}},"parent":{}}],["get",{"_index":2,"name":{"2":{},"73":{}},"parent":{}}],["getcommand",{"_index":48,"name":{"41":{}},"parent":{}}],["getresponse",{"_index":101,"name":{"91":{}},"parent":{}}],["getreturn",{"_index":47,"name":{"40":{}},"parent":{}}],["header",{"_index":25,"name":{"21":{},"99":{},"168":{}},"parent":{}}],["host",{"_index":32,"name":{"27":{}},"parent":{}}],["id",{"_index":13,"name":{"11":{}},"parent":{}}],["ignorablecommands",{"_index":166,"name":{"177":{}},"parent":{}}],["index",{"_index":179,"name":{"191":{}},"parent":{"192":{},"193":{},"194":{},"195":{}}}],["inputargs",{"_index":71,"name":{"64":{}},"parent":{}}],["internalkeys",{"_index":171,"name":{"183":{}},"parent":{}}],["isdigit",{"_index":133,"name":{"125":{}},"parent":{}}],["iserror",{"_index":170,"name":{"182":{}},"parent":{}}],["isignorable",{"_index":167,"name":{"178":{}},"parent":{}}],["isinternal",{"_index":172,"name":{"184":{}},"parent":{}}],["isreference",{"_index":154,"name":{"161":{}},"parent":{}}],["isstringarray",{"_index":174,"name":{"186":{}},"parent":{}}],["keeproute",{"_index":129,"name":{"121":{}},"parent":{}}],["lookup",{"_index":20,"name":{"16":{},"18":{},"23":{}},"parent":{}}],["make",{"_index":45,"name":{"38":{},"118":{},"141":{},"145":{},"149":{},"153":{},"158":{},"164":{}},"parent":{}}],["makebuffer",{"_index":142,"name":{"134":{}},"parent":{}}],["makecommands",{"_index":161,"name":{"172":{}},"parent":{}}],["makeencode",{"_index":168,"name":{"180":{}},"parent":{}}],["makefn",{"_index":116,"name":{"106":{}},"parent":{}}],["makepayload",{"_index":173,"name":{"185":{}},"parent":{}}],["makerecipefn",{"_index":118,"name":{"108":{}},"parent":{}}],["makerouter",{"_index":178,"name":{"190":{}},"parent":{}}],["msgid",{"_index":17,"name":{"14":{}},"parent":{}}],["msgtype",{"_index":19,"name":{"15":{}},"parent":{}}],["name",{"_index":43,"name":{"37":{},"119":{}},"parent":{}}],["needsconversion",{"_index":175,"name":{"187":{}},"parent":{}}],["objpaths",{"_index":79,"name":{"70":{}},"parent":{}}],["onerror",{"_index":40,"name":{"35":{}},"parent":{}}],["operate",{"_index":5,"name":{"4":{},"59":{}},"parent":{}}],["operateclearfn",{"_index":58,"name":{"51":{}},"parent":{}}],["operatecommand",{"_index":60,"name":{"53":{}},"parent":{}}],["operatefn",{"_index":56,"name":{"49":{}},"parent":{}}],["operateoptions",{"_index":12,"name":{"10":{}},"parent":{}}],["operatesubscriptionpath",{"_index":151,"name":{"157":{}},"parent":{}}],["options",{"_index":110,"name":{"100":{}},"parent":{}}],["parampaths",{"_index":84,"name":{"75":{}},"parent":{}}],["parsetrigger",{"_index":162,"name":{"173":{}},"parent":{}}],["password",{"_index":31,"name":{"26":{}},"parent":{}}],["pbrequestbody",{"_index":21,"name":{"17":{}},"parent":{}}],["pbrequestcommand",{"_index":63,"name":{"56":{}},"parent":{}}],["pbrequestcommandadd",{"_index":92,"name":{"82":{}},"parent":{}}],["pbrequestcommanddel",{"_index":72,"name":{"65":{}},"parent":{}}],["pbrequestcommandget",{"_index":80,"name":{"71":{}},"parent":{}}],["pbrequestcommandoperate",{"_index":64,"name":{"57":{}},"parent":{}}],["pbrequestcommandset",{"_index":86,"name":{"76":{}},"parent":{}}],["pbrequestheader",{"_index":16,"name":{"13":{}},"parent":{}}],["pbrequestmessage",{"_index":24,"name":{"20":{}},"parent":{}}],["persistent",{"_index":15,"name":{"12":{}},"parent":{}}],["port",{"_index":36,"name":{"31":{}},"parent":{}}],["protocol",{"_index":35,"name":{"30":{}},"parent":{}}],["publishendpoint",{"_index":37,"name":{"32":{}},"parent":{}}],["recipe",{"_index":98,"name":{"88":{}},"parent":{}}],["recipeobject",{"_index":42,"name":{"36":{}},"parent":{}}],["recipes",{"_index":159,"name":{"170":{}},"parent":{}}],["request",{"_index":23,"name":{"19":{}},"parent":{}}],["resolve",{"_index":8,"name":{"7":{}},"parent":{}}],["resolverecipe",{"_index":99,"name":{"89":{}},"parent":{}}],["resolvereferences",{"_index":156,"name":{"163":{}},"parent":{}}],["response",{"_index":102,"name":{"92":{}},"parent":{}}],["rootmsg",{"_index":107,"name":{"97":{},"167":{}},"parent":{}}],["rootrecord",{"_index":109,"name":{"98":{},"166":{}},"parent":{}}],["search",{"_index":136,"name":{"128":{}},"parent":{}}],["searchall",{"_index":138,"name":{"130":{}},"parent":{}}],["sendresp",{"_index":70,"name":{"63":{}},"parent":{}}],["set",{"_index":4,"name":{"3":{},"78":{}},"parent":{}}],["setcommand",{"_index":50,"name":{"43":{}},"parent":{}}],["splitreference",{"_index":153,"name":{"160":{}},"parent":{}}],["subscribeendpoint",{"_index":38,"name":{"33":{}},"parent":{}}],["toid",{"_index":34,"name":{"29":{}},"parent":{}}],["trigger",{"_index":128,"name":{"120":{}},"parent":{}}],["types",{"_index":0,"name":{"0":{}},"parent":{"1":{},"10":{},"13":{},"17":{},"20":{},"24":{},"34":{},"36":{},"39":{},"40":{},"41":{},"43":{},"45":{},"47":{},"49":{},"51":{},"53":{},"55":{},"56":{},"57":{},"65":{},"71":{},"76":{},"82":{},"88":{},"89":{},"91":{},"92":{},"93":{},"95":{},"102":{},"104":{},"106":{},"108":{},"110":{},"114":{}}}],["types\".addcommand",{"_index":53,"name":{},"parent":{"46":{}}}],["types\".callfn",{"_index":115,"name":{},"parent":{"105":{}}}],["types\".commandobject",{"_index":126,"name":{},"parent":{"115":{}}}],["types\".commandobject.__type",{"_index":127,"name":{},"parent":{"116":{},"117":{},"118":{},"119":{},"120":{},"121":{}}}],["types\".commandtrigger",{"_index":121,"name":{},"parent":{"111":{}}}],["types\".commandtrigger.__type",{"_index":123,"name":{},"parent":{"112":{},"113":{}}}],["types\".connectionevents",{"_index":41,"name":{},"parent":{"35":{}}}],["types\".connectionoptions",{"_index":30,"name":{},"parent":{"25":{},"26":{},"27":{},"28":{},"29":{},"30":{},"31":{},"32":{},"33":{}}}],["types\".decodefn",{"_index":104,"name":{},"parent":{"94":{}}}],["types\".delcommand",{"_index":55,"name":{},"parent":{"48":{}}}],["types\".encodeargs",{"_index":106,"name":{},"parent":{"96":{}}}],["types\".encodeargs.__type",{"_index":108,"name":{},"parent":{"97":{},"98":{},"99":{},"100":{},"101":{}}}],["types\".encodefn",{"_index":113,"name":{},"parent":{"103":{}}}],["types\".getcommand",{"_index":49,"name":{},"parent":{"42":{}}}],["types\".makefn",{"_index":117,"name":{},"parent":{"107":{}}}],["types\".makerecipefn",{"_index":119,"name":{},"parent":{"109":{}}}],["types\".operateclearfn",{"_index":59,"name":{},"parent":{"52":{}}}],["types\".operatecommand",{"_index":61,"name":{},"parent":{"54":{}}}],["types\".operatefn",{"_index":57,"name":{},"parent":{"50":{}}}],["types\".operateoptions",{"_index":14,"name":{},"parent":{"11":{},"12":{}}}],["types\".pbrequestbody",{"_index":22,"name":{},"parent":{"18":{},"19":{}}}],["types\".pbrequestcommandadd",{"_index":93,"name":{},"parent":{"83":{}}}],["types\".pbrequestcommandadd.__type",{"_index":94,"name":{},"parent":{"84":{}}}],["types\".pbrequestcommandadd.__type.add",{"_index":95,"name":{},"parent":{"85":{}}}],["types\".pbrequestcommandadd.__type.add.__type",{"_index":96,"name":{},"parent":{"86":{},"87":{}}}],["types\".pbrequestcommanddel",{"_index":73,"name":{},"parent":{"66":{}}}],["types\".pbrequestcommanddel.__type",{"_index":75,"name":{},"parent":{"67":{}}}],["types\".pbrequestcommanddel.__type.delete",{"_index":76,"name":{},"parent":{"68":{}}}],["types\".pbrequestcommanddel.__type.delete.__type",{"_index":78,"name":{},"parent":{"69":{},"70":{}}}],["types\".pbrequestcommandget",{"_index":81,"name":{},"parent":{"72":{}}}],["types\".pbrequestcommandget.__type",{"_index":82,"name":{},"parent":{"73":{}}}],["types\".pbrequestcommandget.__type.get",{"_index":83,"name":{},"parent":{"74":{}}}],["types\".pbrequestcommandget.__type.get.__type",{"_index":85,"name":{},"parent":{"75":{}}}],["types\".pbrequestcommandoperate",{"_index":65,"name":{},"parent":{"58":{}}}],["types\".pbrequestcommandoperate.__type",{"_index":66,"name":{},"parent":{"59":{}}}],["types\".pbrequestcommandoperate.__type.operate",{"_index":67,"name":{},"parent":{"60":{}}}],["types\".pbrequestcommandoperate.__type.operate.__type",{"_index":68,"name":{},"parent":{"61":{},"62":{},"63":{},"64":{}}}],["types\".pbrequestcommandset",{"_index":87,"name":{},"parent":{"77":{}}}],["types\".pbrequestcommandset.__type",{"_index":88,"name":{},"parent":{"78":{}}}],["types\".pbrequestcommandset.__type.set",{"_index":89,"name":{},"parent":{"79":{}}}],["types\".pbrequestcommandset.__type.set.__type",{"_index":90,"name":{},"parent":{"80":{},"81":{}}}],["types\".pbrequestheader",{"_index":18,"name":{},"parent":{"14":{},"15":{},"16":{}}}],["types\".pbrequestmessage",{"_index":26,"name":{},"parent":{"21":{},"22":{},"23":{}}}],["types\".recipeobject",{"_index":44,"name":{},"parent":{"37":{},"38":{}}}],["types\".resolverecipe",{"_index":100,"name":{},"parent":{"90":{}}}],["types\".setcommand",{"_index":51,"name":{},"parent":{"44":{}}}],["types\".usp",{"_index":3,"name":{},"parent":{"2":{},"3":{},"4":{},"5":{},"6":{},"7":{},"8":{}}}],["types\".usp.disconnect",{"_index":11,"name":{},"parent":{"9":{}}}],["unflatten",{"_index":135,"name":{"127":{}},"parent":{}}],["uniq",{"_index":143,"name":{"135":{}},"parent":{}}],["unkownerr",{"_index":165,"name":{"176":{}},"parent":{}}],["unwraparray",{"_index":141,"name":{"133":{}},"parent":{}}],["unwrapobject",{"_index":140,"name":{"132":{}},"parent":{}}],["updateobjs",{"_index":91,"name":{"81":{}},"parent":{}}],["username",{"_index":29,"name":{"25":{}},"parent":{}}],["usp",{"_index":1,"name":{"1":{}},"parent":{}}],["util",{"_index":177,"name":{"189":{}},"parent":{"190":{}}}]],"pipeline":[]}}
\ No newline at end of file
diff --git a/public/globals.html b/public/globals.html
index a798c6d8182d2b516424ab3536f1898d9d626bb1..009047335a937264e04379344924a9d9d7059ee9 100644
--- a/public/globals.html
+++ b/public/globals.html
@@ -70,13 +70,19 @@
 						<section class="tsd-index-section ">
 							<h3>Modules</h3>
 							<ul class="tsd-index-list">
-								<li class="tsd-kind-module tsd-is-external"><a href="modules/_config_.html" class="tsd-kind-icon">&quot;config&quot;</a></li>
+								<li class="tsd-kind-module"><a href="modules/_commands_add_.html" class="tsd-kind-icon">&quot;commands/add&quot;</a></li>
+								<li class="tsd-kind-module"><a href="modules/_commands_del_.html" class="tsd-kind-icon">&quot;commands/del&quot;</a></li>
+								<li class="tsd-kind-module"><a href="modules/_commands_get_.html" class="tsd-kind-icon">&quot;commands/get&quot;</a></li>
+								<li class="tsd-kind-module"><a href="modules/_commands_index_.html" class="tsd-kind-icon">&quot;commands/index&quot;</a></li>
+								<li class="tsd-kind-module"><a href="modules/_commands_operate_.html" class="tsd-kind-icon">&quot;commands/operate&quot;</a></li>
+								<li class="tsd-kind-module"><a href="modules/_commands_recipes_resolve_.html" class="tsd-kind-icon">&quot;commands/recipes/resolve&quot;</a></li>
+								<li class="tsd-kind-module"><a href="modules/_commands_set_.html" class="tsd-kind-icon">&quot;commands/set&quot;</a></li>
+								<li class="tsd-kind-module"><a href="modules/_commands_util_.html" class="tsd-kind-icon">&quot;commands/util&quot;</a></li>
 								<li class="tsd-kind-module"><a href="modules/_index_.html" class="tsd-kind-icon">&quot;index&quot;</a></li>
-								<li class="tsd-kind-module"><a href="modules/_lib_.html" class="tsd-kind-icon">&quot;lib&quot;</a></li>
-								<li class="tsd-kind-module"><a href="modules/_protocol_index_.html" class="tsd-kind-icon">&quot;protocol/index&quot;</a></li>
-								<li class="tsd-kind-module"><a href="modules/_protocol_js_usp_protobuf_protomessage_.html" class="tsd-kind-icon">&quot;protocol/js-<wbr>usp-<wbr>protobuf/proto<wbr>Message&quot;</a></li>
-								<li class="tsd-kind-module"><a href="modules/_protocol_lib_.html" class="tsd-kind-icon">&quot;protocol/lib&quot;</a></li>
-								<li class="tsd-kind-module"><a href="modules/_types_d_.html" class="tsd-kind-icon">&quot;types.d&quot;</a></li>
+								<li class="tsd-kind-module tsd-is-external"><a href="modules/_specs_usp_msg_1_1_.html" class="tsd-kind-icon">&quot;specs/usp-<wbr>msg-<wbr>1-1&quot;</a></li>
+								<li class="tsd-kind-module tsd-is-external"><a href="modules/_specs_usp_record_1_1_.html" class="tsd-kind-icon">&quot;specs/usp-<wbr>record-<wbr>1-1&quot;</a></li>
+								<li class="tsd-kind-module"><a href="modules/_types_.html" class="tsd-kind-icon">&quot;types&quot;</a></li>
+								<li class="tsd-kind-module"><a href="modules/_util_.html" class="tsd-kind-icon">&quot;util&quot;</a></li>
 							</ul>
 						</section>
 					</div>
@@ -89,23 +95,50 @@
 					<li class="globals current ">
 						<a href="globals.html"><em>Globals</em></a>
 					</li>
+					<li class="label tsd-is-external">
+						<span>Internals</span>
+					</li>
 					<li class=" tsd-kind-module">
-						<a href="modules/_index_.html">&quot;index&quot;</a>
+						<a href="modules/_commands_add_.html">&quot;commands/add&quot;</a>
+					</li>
+					<li class=" tsd-kind-module">
+						<a href="modules/_commands_del_.html">&quot;commands/del&quot;</a>
+					</li>
+					<li class=" tsd-kind-module">
+						<a href="modules/_commands_get_.html">&quot;commands/get&quot;</a>
+					</li>
+					<li class=" tsd-kind-module">
+						<a href="modules/_commands_index_.html">&quot;commands/index&quot;</a>
 					</li>
 					<li class=" tsd-kind-module">
-						<a href="modules/_lib_.html">&quot;lib&quot;</a>
+						<a href="modules/_commands_operate_.html">&quot;commands/operate&quot;</a>
 					</li>
 					<li class=" tsd-kind-module">
-						<a href="modules/_protocol_index_.html">&quot;protocol/index&quot;</a>
+						<a href="modules/_commands_recipes_resolve_.html">&quot;commands/recipes/resolve&quot;</a>
 					</li>
 					<li class=" tsd-kind-module">
-						<a href="modules/_protocol_js_usp_protobuf_protomessage_.html">&quot;protocol/js-<wbr>usp-<wbr>protobuf/proto<wbr>Message&quot;</a>
+						<a href="modules/_commands_set_.html">&quot;commands/set&quot;</a>
 					</li>
 					<li class=" tsd-kind-module">
-						<a href="modules/_protocol_lib_.html">&quot;protocol/lib&quot;</a>
+						<a href="modules/_commands_util_.html">&quot;commands/util&quot;</a>
 					</li>
 					<li class=" tsd-kind-module">
-						<a href="modules/_types_d_.html">&quot;types.d&quot;</a>
+						<a href="modules/_index_.html">&quot;index&quot;</a>
+					</li>
+					<li class=" tsd-kind-module">
+						<a href="modules/_types_.html">&quot;types&quot;</a>
+					</li>
+					<li class=" tsd-kind-module">
+						<a href="modules/_util_.html">&quot;util&quot;</a>
+					</li>
+					<li class="label tsd-is-external">
+						<span>Externals</span>
+					</li>
+					<li class=" tsd-kind-module tsd-is-external">
+						<a href="modules/_specs_usp_msg_1_1_.html">&quot;specs/usp-<wbr>msg-<wbr>1-1&quot;</a>
+					</li>
+					<li class=" tsd-kind-module tsd-is-external">
+						<a href="modules/_specs_usp_record_1_1_.html">&quot;specs/usp-<wbr>record-<wbr>1-1&quot;</a>
 					</li>
 				</ul>
 			</nav>
diff --git a/public/index.html b/public/index.html
index 5d48b14f99f4d9733461e694a58ac0e9bb060f5c..a76c43a7e6646393e13f33e86400e89b3da42b69 100644
--- a/public/index.html
+++ b/public/index.html
@@ -199,23 +199,50 @@ run();</code></pre>
 					<li class="globals  ">
 						<a href="globals.html"><em>Globals</em></a>
 					</li>
+					<li class="label tsd-is-external">
+						<span>Internals</span>
+					</li>
 					<li class=" tsd-kind-module">
-						<a href="modules/_index_.html">&quot;index&quot;</a>
+						<a href="modules/_commands_add_.html">&quot;commands/add&quot;</a>
+					</li>
+					<li class=" tsd-kind-module">
+						<a href="modules/_commands_del_.html">&quot;commands/del&quot;</a>
+					</li>
+					<li class=" tsd-kind-module">
+						<a href="modules/_commands_get_.html">&quot;commands/get&quot;</a>
+					</li>
+					<li class=" tsd-kind-module">
+						<a href="modules/_commands_index_.html">&quot;commands/index&quot;</a>
 					</li>
 					<li class=" tsd-kind-module">
-						<a href="modules/_lib_.html">&quot;lib&quot;</a>
+						<a href="modules/_commands_operate_.html">&quot;commands/operate&quot;</a>
 					</li>
 					<li class=" tsd-kind-module">
-						<a href="modules/_protocol_index_.html">&quot;protocol/index&quot;</a>
+						<a href="modules/_commands_recipes_resolve_.html">&quot;commands/recipes/resolve&quot;</a>
 					</li>
 					<li class=" tsd-kind-module">
-						<a href="modules/_protocol_js_usp_protobuf_protomessage_.html">&quot;protocol/js-<wbr>usp-<wbr>protobuf/proto<wbr>Message&quot;</a>
+						<a href="modules/_commands_set_.html">&quot;commands/set&quot;</a>
 					</li>
 					<li class=" tsd-kind-module">
-						<a href="modules/_protocol_lib_.html">&quot;protocol/lib&quot;</a>
+						<a href="modules/_commands_util_.html">&quot;commands/util&quot;</a>
 					</li>
 					<li class=" tsd-kind-module">
-						<a href="modules/_types_d_.html">&quot;types.d&quot;</a>
+						<a href="modules/_index_.html">&quot;index&quot;</a>
+					</li>
+					<li class=" tsd-kind-module">
+						<a href="modules/_types_.html">&quot;types&quot;</a>
+					</li>
+					<li class=" tsd-kind-module">
+						<a href="modules/_util_.html">&quot;util&quot;</a>
+					</li>
+					<li class="label tsd-is-external">
+						<span>Externals</span>
+					</li>
+					<li class=" tsd-kind-module tsd-is-external">
+						<a href="modules/_specs_usp_msg_1_1_.html">&quot;specs/usp-<wbr>msg-<wbr>1-1&quot;</a>
+					</li>
+					<li class=" tsd-kind-module tsd-is-external">
+						<a href="modules/_specs_usp_record_1_1_.html">&quot;specs/usp-<wbr>record-<wbr>1-1&quot;</a>
 					</li>
 				</ul>
 			</nav>
diff --git a/public/interfaces/_types_.connectionevents.html b/public/interfaces/_types_.connectionevents.html
new file mode 100644
index 0000000000000000000000000000000000000000..d50a5342ada489e3c4fedea9b12bafac33787a33
--- /dev/null
+++ b/public/interfaces/_types_.connectionevents.html
@@ -0,0 +1,306 @@
+<!doctype html>
+<html class="default no-js">
+<head>
+	<meta charset="utf-8">
+	<meta http-equiv="X-UA-Compatible" content="IE=edge">
+	<title>ConnectionEvents | usp-js</title>
+	<meta name="description" content="Documentation for usp-js">
+	<meta name="viewport" content="width=device-width, initial-scale=1">
+	<link rel="stylesheet" href="../assets/css/main.css">
+</head>
+<body>
+<header>
+	<div class="tsd-page-toolbar">
+		<div class="container">
+			<div class="table-wrap">
+				<div class="table-cell" id="tsd-search" data-index="../assets/js/search.json" data-base="..">
+					<div class="field">
+						<label for="tsd-search-field" class="tsd-widget search no-caption">Search</label>
+						<input id="tsd-search-field" type="text" />
+					</div>
+					<ul class="results">
+						<li class="state loading">Preparing search index...</li>
+						<li class="state failure">The search index is not available</li>
+					</ul>
+					<a href="../index.html" class="title">usp-js</a>
+				</div>
+				<div class="table-cell" id="tsd-widgets">
+					<div id="tsd-filter">
+						<a href="#" class="tsd-widget options no-caption" data-toggle="options">Options</a>
+						<div class="tsd-filter-group">
+							<div class="tsd-select" id="tsd-filter-visibility">
+								<span class="tsd-select-label">All</span>
+								<ul class="tsd-select-list">
+									<li data-value="public">Public</li>
+									<li data-value="protected">Public/Protected</li>
+									<li data-value="private" class="selected">All</li>
+								</ul>
+							</div>
+							<input type="checkbox" id="tsd-filter-inherited" checked />
+							<label class="tsd-widget" for="tsd-filter-inherited">Inherited</label>
+							<input type="checkbox" id="tsd-filter-externals" checked />
+							<label class="tsd-widget" for="tsd-filter-externals">Externals</label>
+							<input type="checkbox" id="tsd-filter-only-exported" />
+							<label class="tsd-widget" for="tsd-filter-only-exported">Only exported</label>
+						</div>
+					</div>
+					<a href="#" class="tsd-widget menu no-caption" data-toggle="menu">Menu</a>
+				</div>
+			</div>
+		</div>
+	</div>
+	<div class="tsd-page-title">
+		<div class="container">
+			<ul class="tsd-breadcrumb">
+				<li>
+					<a href="../globals.html">Globals</a>
+				</li>
+				<li>
+					<a href="../modules/_types_.html">&quot;types&quot;</a>
+				</li>
+				<li>
+					<a href="_types_.connectionevents.html">ConnectionEvents</a>
+				</li>
+			</ul>
+			<h1>Interface ConnectionEvents</h1>
+		</div>
+	</div>
+</header>
+<div class="container container-main">
+	<div class="row">
+		<div class="col-8 col-content">
+			<section class="tsd-panel tsd-hierarchy">
+				<h3>Hierarchy</h3>
+				<ul class="tsd-hierarchy">
+					<li>
+						<span class="target">ConnectionEvents</span>
+					</li>
+				</ul>
+			</section>
+			<section class="tsd-panel-group tsd-index-group">
+				<h2>Index</h2>
+				<section class="tsd-panel tsd-index-panel">
+					<div class="tsd-index-content">
+						<section class="tsd-index-section ">
+							<h3>Properties</h3>
+							<ul class="tsd-index-list">
+								<li class="tsd-kind-property tsd-parent-kind-interface"><a href="_types_.connectionevents.html#onerror" class="tsd-kind-icon">on<wbr>Error</a></li>
+							</ul>
+						</section>
+					</div>
+				</section>
+			</section>
+			<section class="tsd-panel-group tsd-member-group ">
+				<h2>Properties</h2>
+				<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-interface">
+					<a name="onerror" class="tsd-anchor"></a>
+					<h3><span class="tsd-flag ts-flagOptional">Optional</span> on<wbr>Error</h3>
+					<div class="tsd-signature tsd-kind-icon">on<wbr>Error<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">undefined</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">(</span>err<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol"> =&gt; </span><span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">)</span></div>
+					<aside class="tsd-sources">
+						<ul>
+							<li>Defined in types.ts:255</li>
+						</ul>
+					</aside>
+				</section>
+			</section>
+		</div>
+		<div class="col-4 col-menu menu-sticky-wrap menu-highlight">
+			<nav class="tsd-navigation primary">
+				<ul>
+					<li class="globals  ">
+						<a href="../globals.html"><em>Globals</em></a>
+					</li>
+					<li class="label tsd-is-external">
+						<span>Internals</span>
+					</li>
+					<li class=" tsd-kind-module">
+						<a href="../modules/_commands_add_.html">&quot;commands/add&quot;</a>
+					</li>
+					<li class=" tsd-kind-module">
+						<a href="../modules/_commands_del_.html">&quot;commands/del&quot;</a>
+					</li>
+					<li class=" tsd-kind-module">
+						<a href="../modules/_commands_get_.html">&quot;commands/get&quot;</a>
+					</li>
+					<li class=" tsd-kind-module">
+						<a href="../modules/_commands_index_.html">&quot;commands/index&quot;</a>
+					</li>
+					<li class=" tsd-kind-module">
+						<a href="../modules/_commands_operate_.html">&quot;commands/operate&quot;</a>
+					</li>
+					<li class=" tsd-kind-module">
+						<a href="../modules/_commands_recipes_resolve_.html">&quot;commands/recipes/resolve&quot;</a>
+					</li>
+					<li class=" tsd-kind-module">
+						<a href="../modules/_commands_set_.html">&quot;commands/set&quot;</a>
+					</li>
+					<li class=" tsd-kind-module">
+						<a href="../modules/_commands_util_.html">&quot;commands/util&quot;</a>
+					</li>
+					<li class=" tsd-kind-module">
+						<a href="../modules/_index_.html">&quot;index&quot;</a>
+					</li>
+					<li class="current tsd-kind-module">
+						<a href="../modules/_types_.html">&quot;types&quot;</a>
+					</li>
+					<li class=" tsd-kind-module">
+						<a href="../modules/_util_.html">&quot;util&quot;</a>
+					</li>
+					<li class="label tsd-is-external">
+						<span>Externals</span>
+					</li>
+					<li class=" tsd-kind-module tsd-is-external">
+						<a href="../modules/_specs_usp_msg_1_1_.html">&quot;specs/usp-<wbr>msg-<wbr>1-1&quot;</a>
+					</li>
+					<li class=" tsd-kind-module tsd-is-external">
+						<a href="../modules/_specs_usp_record_1_1_.html">&quot;specs/usp-<wbr>record-<wbr>1-1&quot;</a>
+					</li>
+				</ul>
+			</nav>
+			<nav class="tsd-navigation secondary menu-sticky">
+				<ul class="before-current">
+				</ul>
+				<ul class="current">
+					<li class="current tsd-kind-interface tsd-parent-kind-module">
+						<a href="_types_.connectionevents.html" class="tsd-kind-icon">Connection<wbr>Events</a>
+						<ul>
+							<li class=" tsd-kind-property tsd-parent-kind-interface">
+								<a href="_types_.connectionevents.html#onerror" class="tsd-kind-icon">on<wbr>Error</a>
+							</li>
+						</ul>
+					</li>
+				</ul>
+				<ul class="after-current">
+					<li class=" tsd-kind-interface tsd-parent-kind-module">
+						<a href="_types_.connectionoptions.html" class="tsd-kind-icon">Connection<wbr>Options</a>
+					</li>
+					<li class=" tsd-kind-interface tsd-parent-kind-module tsd-is-not-exported">
+						<a href="_types_.operateoptions.html" class="tsd-kind-icon">Operate<wbr>Options</a>
+					</li>
+					<li class=" tsd-kind-interface tsd-parent-kind-module">
+						<a href="_types_.pbrequestbody.html" class="tsd-kind-icon">Pb<wbr>Request<wbr>Body</a>
+					</li>
+					<li class=" tsd-kind-interface tsd-parent-kind-module">
+						<a href="_types_.pbrequestheader.html" class="tsd-kind-icon">Pb<wbr>Request<wbr>Header</a>
+					</li>
+					<li class=" tsd-kind-interface tsd-parent-kind-module">
+						<a href="_types_.pbrequestmessage.html" class="tsd-kind-icon">Pb<wbr>Request<wbr>Message</a>
+					</li>
+					<li class=" tsd-kind-interface tsd-parent-kind-module">
+						<a href="_types_.recipeobject.html" class="tsd-kind-icon">Recipe<wbr>Object</a>
+					</li>
+					<li class=" tsd-kind-interface tsd-parent-kind-module">
+						<a href="_types_.usp.html" class="tsd-kind-icon">USP</a>
+					</li>
+					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
+						<a href="../modules/_types_.html#addcommand" class="tsd-kind-icon">Add<wbr>Command</a>
+					</li>
+					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
+						<a href="../modules/_types_.html#callfn" class="tsd-kind-icon">Call<wbr>Fn</a>
+					</li>
+					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
+						<a href="../modules/_types_.html#command" class="tsd-kind-icon">Command</a>
+					</li>
+					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
+						<a href="../modules/_types_.html#commandobject" class="tsd-kind-icon">Command<wbr>Object</a>
+					</li>
+					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
+						<a href="../modules/_types_.html#commandtrigger" class="tsd-kind-icon">Command<wbr>Trigger</a>
+					</li>
+					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
+						<a href="../modules/_types_.html#commandtype" class="tsd-kind-icon">Command<wbr>Type</a>
+					</li>
+					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
+						<a href="../modules/_types_.html#decodefn" class="tsd-kind-icon">Decode<wbr>Fn</a>
+					</li>
+					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
+						<a href="../modules/_types_.html#delcommand" class="tsd-kind-icon">Del<wbr>Command</a>
+					</li>
+					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
+						<a href="../modules/_types_.html#encodeargs" class="tsd-kind-icon">Encode<wbr>Args</a>
+					</li>
+					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
+						<a href="../modules/_types_.html#encodefn" class="tsd-kind-icon">Encode<wbr>Fn</a>
+					</li>
+					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
+						<a href="../modules/_types_.html#getcommand" class="tsd-kind-icon">Get<wbr>Command</a>
+					</li>
+					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
+						<a href="../modules/_types_.html#getresponse" class="tsd-kind-icon">Get<wbr>Response</a>
+					</li>
+					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
+						<a href="../modules/_types_.html#getreturn" class="tsd-kind-icon">Get<wbr>Return</a>
+					</li>
+					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
+						<a href="../modules/_types_.html#makefn" class="tsd-kind-icon">Make<wbr>Fn</a>
+					</li>
+					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
+						<a href="../modules/_types_.html#makerecipefn" class="tsd-kind-icon">Make<wbr>Recipe<wbr>Fn</a>
+					</li>
+					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
+						<a href="../modules/_types_.html#operateclearfn" class="tsd-kind-icon">Operate<wbr>Clear<wbr>Fn</a>
+					</li>
+					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
+						<a href="../modules/_types_.html#operatecommand" class="tsd-kind-icon">Operate<wbr>Command</a>
+					</li>
+					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
+						<a href="../modules/_types_.html#operatefn" class="tsd-kind-icon">Operate<wbr>Fn</a>
+					</li>
+					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
+						<a href="../modules/_types_.html#pbrequestcommand" class="tsd-kind-icon">Pb<wbr>Request<wbr>Command</a>
+					</li>
+					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
+						<a href="../modules/_types_.html#pbrequestcommandadd" class="tsd-kind-icon">Pb<wbr>Request<wbr>Command<wbr>Add</a>
+					</li>
+					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
+						<a href="../modules/_types_.html#pbrequestcommanddel" class="tsd-kind-icon">Pb<wbr>Request<wbr>Command<wbr>Del</a>
+					</li>
+					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
+						<a href="../modules/_types_.html#pbrequestcommandget" class="tsd-kind-icon">Pb<wbr>Request<wbr>Command<wbr>Get</a>
+					</li>
+					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
+						<a href="../modules/_types_.html#pbrequestcommandoperate" class="tsd-kind-icon">Pb<wbr>Request<wbr>Command<wbr>Operate</a>
+					</li>
+					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
+						<a href="../modules/_types_.html#pbrequestcommandset" class="tsd-kind-icon">Pb<wbr>Request<wbr>Command<wbr>Set</a>
+					</li>
+					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
+						<a href="../modules/_types_.html#recipe" class="tsd-kind-icon">Recipe</a>
+					</li>
+					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
+						<a href="../modules/_types_.html#resolverecipe" class="tsd-kind-icon">Resolve<wbr>Recipe</a>
+					</li>
+					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
+						<a href="../modules/_types_.html#response" class="tsd-kind-icon">Response</a>
+					</li>
+					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
+						<a href="../modules/_types_.html#setcommand" class="tsd-kind-icon">Set<wbr>Command</a>
+					</li>
+				</ul>
+			</nav>
+		</div>
+	</div>
+</div>
+<footer class="with-border-bottom">
+	<div class="container">
+		<h2>Legend</h2>
+		<div class="tsd-legend-group">
+			<ul class="tsd-legend">
+				<li class="tsd-kind-variable"><span class="tsd-kind-icon">Variable</span></li>
+				<li class="tsd-kind-function"><span class="tsd-kind-icon">Function</span></li>
+				<li class="tsd-kind-type-alias"><span class="tsd-kind-icon">Type alias</span></li>
+			</ul>
+			<ul class="tsd-legend">
+				<li class="tsd-kind-interface"><span class="tsd-kind-icon">Interface</span></li>
+				<li class="tsd-kind-property tsd-parent-kind-interface"><span class="tsd-kind-icon">Property</span></li>
+			</ul>
+		</div>
+	</div>
+</footer>
+<div class="container tsd-generator">
+	<p>Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p>
+</div>
+<div class="overlay"></div>
+<script src="../assets/js/main.js"></script>
+</body>
+</html>
\ No newline at end of file
diff --git a/public/interfaces/_types_.connectionoptions.html b/public/interfaces/_types_.connectionoptions.html
new file mode 100644
index 0000000000000000000000000000000000000000..f9e08332f9380c7fa1e322ecc7a55433c02f719b
--- /dev/null
+++ b/public/interfaces/_types_.connectionoptions.html
@@ -0,0 +1,422 @@
+<!doctype html>
+<html class="default no-js">
+<head>
+	<meta charset="utf-8">
+	<meta http-equiv="X-UA-Compatible" content="IE=edge">
+	<title>ConnectionOptions | usp-js</title>
+	<meta name="description" content="Documentation for usp-js">
+	<meta name="viewport" content="width=device-width, initial-scale=1">
+	<link rel="stylesheet" href="../assets/css/main.css">
+</head>
+<body>
+<header>
+	<div class="tsd-page-toolbar">
+		<div class="container">
+			<div class="table-wrap">
+				<div class="table-cell" id="tsd-search" data-index="../assets/js/search.json" data-base="..">
+					<div class="field">
+						<label for="tsd-search-field" class="tsd-widget search no-caption">Search</label>
+						<input id="tsd-search-field" type="text" />
+					</div>
+					<ul class="results">
+						<li class="state loading">Preparing search index...</li>
+						<li class="state failure">The search index is not available</li>
+					</ul>
+					<a href="../index.html" class="title">usp-js</a>
+				</div>
+				<div class="table-cell" id="tsd-widgets">
+					<div id="tsd-filter">
+						<a href="#" class="tsd-widget options no-caption" data-toggle="options">Options</a>
+						<div class="tsd-filter-group">
+							<div class="tsd-select" id="tsd-filter-visibility">
+								<span class="tsd-select-label">All</span>
+								<ul class="tsd-select-list">
+									<li data-value="public">Public</li>
+									<li data-value="protected">Public/Protected</li>
+									<li data-value="private" class="selected">All</li>
+								</ul>
+							</div>
+							<input type="checkbox" id="tsd-filter-inherited" checked />
+							<label class="tsd-widget" for="tsd-filter-inherited">Inherited</label>
+							<input type="checkbox" id="tsd-filter-externals" checked />
+							<label class="tsd-widget" for="tsd-filter-externals">Externals</label>
+							<input type="checkbox" id="tsd-filter-only-exported" />
+							<label class="tsd-widget" for="tsd-filter-only-exported">Only exported</label>
+						</div>
+					</div>
+					<a href="#" class="tsd-widget menu no-caption" data-toggle="menu">Menu</a>
+				</div>
+			</div>
+		</div>
+	</div>
+	<div class="tsd-page-title">
+		<div class="container">
+			<ul class="tsd-breadcrumb">
+				<li>
+					<a href="../globals.html">Globals</a>
+				</li>
+				<li>
+					<a href="../modules/_types_.html">&quot;types&quot;</a>
+				</li>
+				<li>
+					<a href="_types_.connectionoptions.html">ConnectionOptions</a>
+				</li>
+			</ul>
+			<h1>Interface ConnectionOptions</h1>
+		</div>
+	</div>
+</header>
+<div class="container container-main">
+	<div class="row">
+		<div class="col-8 col-content">
+			<section class="tsd-panel tsd-hierarchy">
+				<h3>Hierarchy</h3>
+				<ul class="tsd-hierarchy">
+					<li>
+						<span class="target">ConnectionOptions</span>
+					</li>
+				</ul>
+			</section>
+			<section class="tsd-panel tsd-kind-interface tsd-parent-kind-module">
+				<h3 class="tsd-before-signature">Indexable</h3>
+				<div class="tsd-signature tsd-kind-icon"><span class="tsd-signature-symbol">[</span>key: <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">]: </span><span class="tsd-signature-type">any</span></div>
+			</section>
+			<section class="tsd-panel-group tsd-index-group">
+				<h2>Index</h2>
+				<section class="tsd-panel tsd-index-panel">
+					<div class="tsd-index-content">
+						<section class="tsd-index-section ">
+							<h3>Properties</h3>
+							<ul class="tsd-index-list">
+								<li class="tsd-kind-property tsd-parent-kind-interface"><a href="_types_.connectionoptions.html#fromid" class="tsd-kind-icon">from<wbr>Id</a></li>
+								<li class="tsd-kind-property tsd-parent-kind-interface"><a href="_types_.connectionoptions.html#host" class="tsd-kind-icon">host</a></li>
+								<li class="tsd-kind-property tsd-parent-kind-interface"><a href="_types_.connectionoptions.html#password" class="tsd-kind-icon">password</a></li>
+								<li class="tsd-kind-property tsd-parent-kind-interface"><a href="_types_.connectionoptions.html#port" class="tsd-kind-icon">port</a></li>
+								<li class="tsd-kind-property tsd-parent-kind-interface"><a href="_types_.connectionoptions.html#protocol" class="tsd-kind-icon">protocol</a></li>
+								<li class="tsd-kind-property tsd-parent-kind-interface"><a href="_types_.connectionoptions.html#publishendpoint" class="tsd-kind-icon">publish<wbr>Endpoint</a></li>
+								<li class="tsd-kind-property tsd-parent-kind-interface"><a href="_types_.connectionoptions.html#subscribeendpoint" class="tsd-kind-icon">subscribe<wbr>Endpoint</a></li>
+								<li class="tsd-kind-property tsd-parent-kind-interface"><a href="_types_.connectionoptions.html#toid" class="tsd-kind-icon">to<wbr>Id</a></li>
+								<li class="tsd-kind-property tsd-parent-kind-interface"><a href="_types_.connectionoptions.html#username" class="tsd-kind-icon">username</a></li>
+							</ul>
+						</section>
+					</div>
+				</section>
+			</section>
+			<section class="tsd-panel-group tsd-member-group ">
+				<h2>Properties</h2>
+				<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-interface">
+					<a name="fromid" class="tsd-anchor"></a>
+					<h3>from<wbr>Id</h3>
+					<div class="tsd-signature tsd-kind-icon">from<wbr>Id<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span></div>
+					<aside class="tsd-sources">
+						<ul>
+							<li>Defined in types.ts:217</li>
+						</ul>
+					</aside>
+				</section>
+				<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-interface">
+					<a name="host" class="tsd-anchor"></a>
+					<h3>host</h3>
+					<div class="tsd-signature tsd-kind-icon">host<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span></div>
+					<aside class="tsd-sources">
+						<ul>
+							<li>Defined in types.ts:216</li>
+						</ul>
+					</aside>
+				</section>
+				<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-interface">
+					<a name="password" class="tsd-anchor"></a>
+					<h3>password</h3>
+					<div class="tsd-signature tsd-kind-icon">password<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span></div>
+					<aside class="tsd-sources">
+						<ul>
+							<li>Defined in types.ts:215</li>
+						</ul>
+					</aside>
+				</section>
+				<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-interface">
+					<a name="port" class="tsd-anchor"></a>
+					<h3><span class="tsd-flag ts-flagOptional">Optional</span> port</h3>
+					<div class="tsd-signature tsd-kind-icon">port<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">undefined</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">number</span></div>
+					<aside class="tsd-sources">
+						<ul>
+							<li>Defined in types.ts:220</li>
+						</ul>
+					</aside>
+				</section>
+				<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-interface">
+					<a name="protocol" class="tsd-anchor"></a>
+					<h3><span class="tsd-flag ts-flagOptional">Optional</span> protocol</h3>
+					<div class="tsd-signature tsd-kind-icon">protocol<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">"wss"</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">"ws"</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">"mqtt"</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">"mqtts"</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">"tcp"</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">"ssl"</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">"wx"</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">"wxs"</span></div>
+					<aside class="tsd-sources">
+						<ul>
+							<li>Defined in types.ts:219</li>
+						</ul>
+					</aside>
+				</section>
+				<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-interface">
+					<a name="publishendpoint" class="tsd-anchor"></a>
+					<h3><span class="tsd-flag ts-flagOptional">Optional</span> publish<wbr>Endpoint</h3>
+					<div class="tsd-signature tsd-kind-icon">publish<wbr>Endpoint<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">undefined</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">string</span></div>
+					<aside class="tsd-sources">
+						<ul>
+							<li>Defined in types.ts:221</li>
+						</ul>
+					</aside>
+				</section>
+				<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-interface">
+					<a name="subscribeendpoint" class="tsd-anchor"></a>
+					<h3><span class="tsd-flag ts-flagOptional">Optional</span> subscribe<wbr>Endpoint</h3>
+					<div class="tsd-signature tsd-kind-icon">subscribe<wbr>Endpoint<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">undefined</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">string</span></div>
+					<aside class="tsd-sources">
+						<ul>
+							<li>Defined in types.ts:222</li>
+						</ul>
+					</aside>
+				</section>
+				<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-interface">
+					<a name="toid" class="tsd-anchor"></a>
+					<h3>to<wbr>Id</h3>
+					<div class="tsd-signature tsd-kind-icon">to<wbr>Id<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span></div>
+					<aside class="tsd-sources">
+						<ul>
+							<li>Defined in types.ts:218</li>
+						</ul>
+					</aside>
+				</section>
+				<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-interface">
+					<a name="username" class="tsd-anchor"></a>
+					<h3>username</h3>
+					<div class="tsd-signature tsd-kind-icon">username<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span></div>
+					<aside class="tsd-sources">
+						<ul>
+							<li>Defined in types.ts:214</li>
+						</ul>
+					</aside>
+				</section>
+			</section>
+		</div>
+		<div class="col-4 col-menu menu-sticky-wrap menu-highlight">
+			<nav class="tsd-navigation primary">
+				<ul>
+					<li class="globals  ">
+						<a href="../globals.html"><em>Globals</em></a>
+					</li>
+					<li class="label tsd-is-external">
+						<span>Internals</span>
+					</li>
+					<li class=" tsd-kind-module">
+						<a href="../modules/_commands_add_.html">&quot;commands/add&quot;</a>
+					</li>
+					<li class=" tsd-kind-module">
+						<a href="../modules/_commands_del_.html">&quot;commands/del&quot;</a>
+					</li>
+					<li class=" tsd-kind-module">
+						<a href="../modules/_commands_get_.html">&quot;commands/get&quot;</a>
+					</li>
+					<li class=" tsd-kind-module">
+						<a href="../modules/_commands_index_.html">&quot;commands/index&quot;</a>
+					</li>
+					<li class=" tsd-kind-module">
+						<a href="../modules/_commands_operate_.html">&quot;commands/operate&quot;</a>
+					</li>
+					<li class=" tsd-kind-module">
+						<a href="../modules/_commands_recipes_resolve_.html">&quot;commands/recipes/resolve&quot;</a>
+					</li>
+					<li class=" tsd-kind-module">
+						<a href="../modules/_commands_set_.html">&quot;commands/set&quot;</a>
+					</li>
+					<li class=" tsd-kind-module">
+						<a href="../modules/_commands_util_.html">&quot;commands/util&quot;</a>
+					</li>
+					<li class=" tsd-kind-module">
+						<a href="../modules/_index_.html">&quot;index&quot;</a>
+					</li>
+					<li class="current tsd-kind-module">
+						<a href="../modules/_types_.html">&quot;types&quot;</a>
+					</li>
+					<li class=" tsd-kind-module">
+						<a href="../modules/_util_.html">&quot;util&quot;</a>
+					</li>
+					<li class="label tsd-is-external">
+						<span>Externals</span>
+					</li>
+					<li class=" tsd-kind-module tsd-is-external">
+						<a href="../modules/_specs_usp_msg_1_1_.html">&quot;specs/usp-<wbr>msg-<wbr>1-1&quot;</a>
+					</li>
+					<li class=" tsd-kind-module tsd-is-external">
+						<a href="../modules/_specs_usp_record_1_1_.html">&quot;specs/usp-<wbr>record-<wbr>1-1&quot;</a>
+					</li>
+				</ul>
+			</nav>
+			<nav class="tsd-navigation secondary menu-sticky">
+				<ul class="before-current">
+					<li class=" tsd-kind-interface tsd-parent-kind-module">
+						<a href="_types_.connectionevents.html" class="tsd-kind-icon">Connection<wbr>Events</a>
+					</li>
+				</ul>
+				<ul class="current">
+					<li class="current tsd-kind-interface tsd-parent-kind-module">
+						<a href="_types_.connectionoptions.html" class="tsd-kind-icon">Connection<wbr>Options</a>
+						<ul>
+							<li class=" tsd-kind-property tsd-parent-kind-interface">
+								<a href="_types_.connectionoptions.html#fromid" class="tsd-kind-icon">from<wbr>Id</a>
+							</li>
+							<li class=" tsd-kind-property tsd-parent-kind-interface">
+								<a href="_types_.connectionoptions.html#host" class="tsd-kind-icon">host</a>
+							</li>
+							<li class=" tsd-kind-property tsd-parent-kind-interface">
+								<a href="_types_.connectionoptions.html#password" class="tsd-kind-icon">password</a>
+							</li>
+							<li class=" tsd-kind-property tsd-parent-kind-interface">
+								<a href="_types_.connectionoptions.html#port" class="tsd-kind-icon">port</a>
+							</li>
+							<li class=" tsd-kind-property tsd-parent-kind-interface">
+								<a href="_types_.connectionoptions.html#protocol" class="tsd-kind-icon">protocol</a>
+							</li>
+							<li class=" tsd-kind-property tsd-parent-kind-interface">
+								<a href="_types_.connectionoptions.html#publishendpoint" class="tsd-kind-icon">publish<wbr>Endpoint</a>
+							</li>
+							<li class=" tsd-kind-property tsd-parent-kind-interface">
+								<a href="_types_.connectionoptions.html#subscribeendpoint" class="tsd-kind-icon">subscribe<wbr>Endpoint</a>
+							</li>
+							<li class=" tsd-kind-property tsd-parent-kind-interface">
+								<a href="_types_.connectionoptions.html#toid" class="tsd-kind-icon">to<wbr>Id</a>
+							</li>
+							<li class=" tsd-kind-property tsd-parent-kind-interface">
+								<a href="_types_.connectionoptions.html#username" class="tsd-kind-icon">username</a>
+							</li>
+						</ul>
+					</li>
+				</ul>
+				<ul class="after-current">
+					<li class=" tsd-kind-interface tsd-parent-kind-module tsd-is-not-exported">
+						<a href="_types_.operateoptions.html" class="tsd-kind-icon">Operate<wbr>Options</a>
+					</li>
+					<li class=" tsd-kind-interface tsd-parent-kind-module">
+						<a href="_types_.pbrequestbody.html" class="tsd-kind-icon">Pb<wbr>Request<wbr>Body</a>
+					</li>
+					<li class=" tsd-kind-interface tsd-parent-kind-module">
+						<a href="_types_.pbrequestheader.html" class="tsd-kind-icon">Pb<wbr>Request<wbr>Header</a>
+					</li>
+					<li class=" tsd-kind-interface tsd-parent-kind-module">
+						<a href="_types_.pbrequestmessage.html" class="tsd-kind-icon">Pb<wbr>Request<wbr>Message</a>
+					</li>
+					<li class=" tsd-kind-interface tsd-parent-kind-module">
+						<a href="_types_.recipeobject.html" class="tsd-kind-icon">Recipe<wbr>Object</a>
+					</li>
+					<li class=" tsd-kind-interface tsd-parent-kind-module">
+						<a href="_types_.usp.html" class="tsd-kind-icon">USP</a>
+					</li>
+					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
+						<a href="../modules/_types_.html#addcommand" class="tsd-kind-icon">Add<wbr>Command</a>
+					</li>
+					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
+						<a href="../modules/_types_.html#callfn" class="tsd-kind-icon">Call<wbr>Fn</a>
+					</li>
+					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
+						<a href="../modules/_types_.html#command" class="tsd-kind-icon">Command</a>
+					</li>
+					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
+						<a href="../modules/_types_.html#commandobject" class="tsd-kind-icon">Command<wbr>Object</a>
+					</li>
+					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
+						<a href="../modules/_types_.html#commandtrigger" class="tsd-kind-icon">Command<wbr>Trigger</a>
+					</li>
+					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
+						<a href="../modules/_types_.html#commandtype" class="tsd-kind-icon">Command<wbr>Type</a>
+					</li>
+					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
+						<a href="../modules/_types_.html#decodefn" class="tsd-kind-icon">Decode<wbr>Fn</a>
+					</li>
+					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
+						<a href="../modules/_types_.html#delcommand" class="tsd-kind-icon">Del<wbr>Command</a>
+					</li>
+					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
+						<a href="../modules/_types_.html#encodeargs" class="tsd-kind-icon">Encode<wbr>Args</a>
+					</li>
+					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
+						<a href="../modules/_types_.html#encodefn" class="tsd-kind-icon">Encode<wbr>Fn</a>
+					</li>
+					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
+						<a href="../modules/_types_.html#getcommand" class="tsd-kind-icon">Get<wbr>Command</a>
+					</li>
+					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
+						<a href="../modules/_types_.html#getresponse" class="tsd-kind-icon">Get<wbr>Response</a>
+					</li>
+					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
+						<a href="../modules/_types_.html#getreturn" class="tsd-kind-icon">Get<wbr>Return</a>
+					</li>
+					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
+						<a href="../modules/_types_.html#makefn" class="tsd-kind-icon">Make<wbr>Fn</a>
+					</li>
+					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
+						<a href="../modules/_types_.html#makerecipefn" class="tsd-kind-icon">Make<wbr>Recipe<wbr>Fn</a>
+					</li>
+					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
+						<a href="../modules/_types_.html#operateclearfn" class="tsd-kind-icon">Operate<wbr>Clear<wbr>Fn</a>
+					</li>
+					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
+						<a href="../modules/_types_.html#operatecommand" class="tsd-kind-icon">Operate<wbr>Command</a>
+					</li>
+					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
+						<a href="../modules/_types_.html#operatefn" class="tsd-kind-icon">Operate<wbr>Fn</a>
+					</li>
+					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
+						<a href="../modules/_types_.html#pbrequestcommand" class="tsd-kind-icon">Pb<wbr>Request<wbr>Command</a>
+					</li>
+					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
+						<a href="../modules/_types_.html#pbrequestcommandadd" class="tsd-kind-icon">Pb<wbr>Request<wbr>Command<wbr>Add</a>
+					</li>
+					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
+						<a href="../modules/_types_.html#pbrequestcommanddel" class="tsd-kind-icon">Pb<wbr>Request<wbr>Command<wbr>Del</a>
+					</li>
+					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
+						<a href="../modules/_types_.html#pbrequestcommandget" class="tsd-kind-icon">Pb<wbr>Request<wbr>Command<wbr>Get</a>
+					</li>
+					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
+						<a href="../modules/_types_.html#pbrequestcommandoperate" class="tsd-kind-icon">Pb<wbr>Request<wbr>Command<wbr>Operate</a>
+					</li>
+					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
+						<a href="../modules/_types_.html#pbrequestcommandset" class="tsd-kind-icon">Pb<wbr>Request<wbr>Command<wbr>Set</a>
+					</li>
+					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
+						<a href="../modules/_types_.html#recipe" class="tsd-kind-icon">Recipe</a>
+					</li>
+					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
+						<a href="../modules/_types_.html#resolverecipe" class="tsd-kind-icon">Resolve<wbr>Recipe</a>
+					</li>
+					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
+						<a href="../modules/_types_.html#response" class="tsd-kind-icon">Response</a>
+					</li>
+					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
+						<a href="../modules/_types_.html#setcommand" class="tsd-kind-icon">Set<wbr>Command</a>
+					</li>
+				</ul>
+			</nav>
+		</div>
+	</div>
+</div>
+<footer class="with-border-bottom">
+	<div class="container">
+		<h2>Legend</h2>
+		<div class="tsd-legend-group">
+			<ul class="tsd-legend">
+				<li class="tsd-kind-variable"><span class="tsd-kind-icon">Variable</span></li>
+				<li class="tsd-kind-function"><span class="tsd-kind-icon">Function</span></li>
+				<li class="tsd-kind-type-alias"><span class="tsd-kind-icon">Type alias</span></li>
+			</ul>
+			<ul class="tsd-legend">
+				<li class="tsd-kind-interface"><span class="tsd-kind-icon">Interface</span></li>
+				<li class="tsd-kind-property tsd-parent-kind-interface"><span class="tsd-kind-icon">Property</span></li>
+			</ul>
+		</div>
+	</div>
+</footer>
+<div class="container tsd-generator">
+	<p>Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p>
+</div>
+<div class="overlay"></div>
+<script src="../assets/js/main.js"></script>
+</body>
+</html>
\ No newline at end of file
diff --git a/public/interfaces/_types_d_.operateoptions.html b/public/interfaces/_types_.operateoptions.html
similarity index 51%
rename from public/interfaces/_types_d_.operateoptions.html
rename to public/interfaces/_types_.operateoptions.html
index 951af182ef154b209d47aeffb58234030dd21ff9..10092bbbb2dc899cfd789ffa8e36a384c585ceae 100644
--- a/public/interfaces/_types_d_.operateoptions.html
+++ b/public/interfaces/_types_.operateoptions.html
@@ -56,10 +56,10 @@
 					<a href="../globals.html">Globals</a>
 				</li>
 				<li>
-					<a href="../modules/_types_d_.html">&quot;types.d&quot;</a>
+					<a href="../modules/_types_.html">&quot;types&quot;</a>
 				</li>
 				<li>
-					<a href="_types_d_.operateoptions.html">OperateOptions</a>
+					<a href="_types_.operateoptions.html">OperateOptions</a>
 				</li>
 			</ul>
 			<h1>Interface OperateOptions</h1>
@@ -69,13 +69,6 @@
 <div class="container container-main">
 	<div class="row">
 		<div class="col-8 col-content">
-			<section class="tsd-panel tsd-comment">
-				<div class="tsd-comment tsd-typography">
-					<div class="lead">
-						<p>Options for Operate Subscription</p>
-					</div>
-				</div>
-			</section>
 			<section class="tsd-panel tsd-hierarchy">
 				<h3>Hierarchy</h3>
 				<ul class="tsd-hierarchy">
@@ -88,47 +81,37 @@
 				<h2>Index</h2>
 				<section class="tsd-panel tsd-index-panel">
 					<div class="tsd-index-content">
-						<section class="tsd-index-section ">
+						<section class="tsd-index-section tsd-is-not-exported">
 							<h3>Properties</h3>
 							<ul class="tsd-index-list">
-								<li class="tsd-kind-property tsd-parent-kind-interface"><a href="_types_d_.operateoptions.html#id" class="tsd-kind-icon">ID</a></li>
-								<li class="tsd-kind-property tsd-parent-kind-interface"><a href="_types_d_.operateoptions.html#persistent" class="tsd-kind-icon">Persistent</a></li>
+								<li class="tsd-kind-property tsd-parent-kind-interface tsd-is-not-exported"><a href="_types_.operateoptions.html#id" class="tsd-kind-icon">ID</a></li>
+								<li class="tsd-kind-property tsd-parent-kind-interface tsd-is-not-exported"><a href="_types_.operateoptions.html#persistent" class="tsd-kind-icon">Persistent</a></li>
 							</ul>
 						</section>
 					</div>
 				</section>
 			</section>
-			<section class="tsd-panel-group tsd-member-group ">
+			<section class="tsd-panel-group tsd-member-group tsd-is-not-exported">
 				<h2>Properties</h2>
-				<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-interface">
+				<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-interface tsd-is-not-exported">
 					<a name="id" class="tsd-anchor"></a>
 					<h3><span class="tsd-flag ts-flagOptional">Optional</span> ID</h3>
 					<div class="tsd-signature tsd-kind-icon">ID<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">undefined</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">string</span></div>
 					<aside class="tsd-sources">
 						<ul>
-							<li>Defined in src/types.d.ts:116</li>
+							<li>Defined in types.ts:190</li>
 						</ul>
 					</aside>
-					<div class="tsd-comment tsd-typography">
-						<div class="lead">
-							<p>Subscription ID (optional)</p>
-						</div>
-					</div>
 				</section>
-				<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-interface">
+				<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-interface tsd-is-not-exported">
 					<a name="persistent" class="tsd-anchor"></a>
 					<h3><span class="tsd-flag ts-flagOptional">Optional</span> Persistent</h3>
 					<div class="tsd-signature tsd-kind-icon">Persistent<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">undefined</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">false</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">true</span></div>
 					<aside class="tsd-sources">
 						<ul>
-							<li>Defined in src/types.d.ts:118</li>
+							<li>Defined in types.ts:191</li>
 						</ul>
 					</aside>
-					<div class="tsd-comment tsd-typography">
-						<div class="lead">
-							<p>Should subscription remain through sessions (optional)</p>
-						</div>
-					</div>
 				</section>
 			</section>
 		</div>
@@ -138,135 +121,174 @@
 					<li class="globals  ">
 						<a href="../globals.html"><em>Globals</em></a>
 					</li>
+					<li class="label tsd-is-external">
+						<span>Internals</span>
+					</li>
 					<li class=" tsd-kind-module">
-						<a href="../modules/_index_.html">&quot;index&quot;</a>
+						<a href="../modules/_commands_add_.html">&quot;commands/add&quot;</a>
 					</li>
 					<li class=" tsd-kind-module">
-						<a href="../modules/_lib_.html">&quot;lib&quot;</a>
+						<a href="../modules/_commands_del_.html">&quot;commands/del&quot;</a>
 					</li>
 					<li class=" tsd-kind-module">
-						<a href="../modules/_protocol_index_.html">&quot;protocol/index&quot;</a>
+						<a href="../modules/_commands_get_.html">&quot;commands/get&quot;</a>
 					</li>
 					<li class=" tsd-kind-module">
-						<a href="../modules/_protocol_js_usp_protobuf_protomessage_.html">&quot;protocol/js-<wbr>usp-<wbr>protobuf/proto<wbr>Message&quot;</a>
+						<a href="../modules/_commands_index_.html">&quot;commands/index&quot;</a>
 					</li>
 					<li class=" tsd-kind-module">
-						<a href="../modules/_protocol_lib_.html">&quot;protocol/lib&quot;</a>
+						<a href="../modules/_commands_operate_.html">&quot;commands/operate&quot;</a>
+					</li>
+					<li class=" tsd-kind-module">
+						<a href="../modules/_commands_recipes_resolve_.html">&quot;commands/recipes/resolve&quot;</a>
+					</li>
+					<li class=" tsd-kind-module">
+						<a href="../modules/_commands_set_.html">&quot;commands/set&quot;</a>
+					</li>
+					<li class=" tsd-kind-module">
+						<a href="../modules/_commands_util_.html">&quot;commands/util&quot;</a>
+					</li>
+					<li class=" tsd-kind-module">
+						<a href="../modules/_index_.html">&quot;index&quot;</a>
 					</li>
 					<li class="current tsd-kind-module">
-						<a href="../modules/_types_d_.html">&quot;types.d&quot;</a>
+						<a href="../modules/_types_.html">&quot;types&quot;</a>
+					</li>
+					<li class=" tsd-kind-module">
+						<a href="../modules/_util_.html">&quot;util&quot;</a>
+					</li>
+					<li class="label tsd-is-external">
+						<span>Externals</span>
+					</li>
+					<li class=" tsd-kind-module tsd-is-external">
+						<a href="../modules/_specs_usp_msg_1_1_.html">&quot;specs/usp-<wbr>msg-<wbr>1-1&quot;</a>
+					</li>
+					<li class=" tsd-kind-module tsd-is-external">
+						<a href="../modules/_specs_usp_record_1_1_.html">&quot;specs/usp-<wbr>record-<wbr>1-1&quot;</a>
 					</li>
 				</ul>
 			</nav>
 			<nav class="tsd-navigation secondary menu-sticky">
 				<ul class="before-current">
 					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.addmessage.html" class="tsd-kind-icon">Add<wbr>Message</a>
+						<a href="_types_.connectionevents.html" class="tsd-kind-icon">Connection<wbr>Events</a>
 					</li>
 					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.basemessage.html" class="tsd-kind-icon">Base<wbr>Message</a>
+						<a href="_types_.connectionoptions.html" class="tsd-kind-icon">Connection<wbr>Options</a>
 					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.connectevents.html" class="tsd-kind-icon">Connect<wbr>Events</a>
+				</ul>
+				<ul class="current">
+					<li class="current tsd-kind-interface tsd-parent-kind-module tsd-is-not-exported">
+						<a href="_types_.operateoptions.html" class="tsd-kind-icon">Operate<wbr>Options</a>
+						<ul>
+							<li class=" tsd-kind-property tsd-parent-kind-interface tsd-is-not-exported">
+								<a href="_types_.operateoptions.html#id" class="tsd-kind-icon">ID</a>
+							</li>
+							<li class=" tsd-kind-property tsd-parent-kind-interface tsd-is-not-exported">
+								<a href="_types_.operateoptions.html#persistent" class="tsd-kind-icon">Persistent</a>
+							</li>
+						</ul>
 					</li>
+				</ul>
+				<ul class="after-current">
 					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.connectoptions.html" class="tsd-kind-icon">Connect<wbr>Options</a>
+						<a href="_types_.pbrequestbody.html" class="tsd-kind-icon">Pb<wbr>Request<wbr>Body</a>
 					</li>
 					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.deletemessage.html" class="tsd-kind-icon">Delete<wbr>Message</a>
+						<a href="_types_.pbrequestheader.html" class="tsd-kind-icon">Pb<wbr>Request<wbr>Header</a>
 					</li>
 					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.device.html" class="tsd-kind-icon">Device</a>
+						<a href="_types_.pbrequestmessage.html" class="tsd-kind-icon">Pb<wbr>Request<wbr>Message</a>
 					</li>
 					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.deviceerror.html" class="tsd-kind-icon">Device<wbr>Error</a>
+						<a href="_types_.recipeobject.html" class="tsd-kind-icon">Recipe<wbr>Object</a>
 					</li>
 					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.encodeargs.html" class="tsd-kind-icon">Encode<wbr>Args</a>
+						<a href="_types_.usp.html" class="tsd-kind-icon">USP</a>
 					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.errormessage.html" class="tsd-kind-icon">Error<wbr>Message</a>
+					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
+						<a href="../modules/_types_.html#addcommand" class="tsd-kind-icon">Add<wbr>Command</a>
 					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.getmessage.html" class="tsd-kind-icon">Get<wbr>Message</a>
+					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
+						<a href="../modules/_types_.html#callfn" class="tsd-kind-icon">Call<wbr>Fn</a>
 					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.initresult.html" class="tsd-kind-icon">Init<wbr>Result</a>
+					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
+						<a href="../modules/_types_.html#command" class="tsd-kind-icon">Command</a>
 					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.mqttrequest.html" class="tsd-kind-icon">MQTTRequest</a>
+					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
+						<a href="../modules/_types_.html#commandobject" class="tsd-kind-icon">Command<wbr>Object</a>
 					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.notifymessage.html" class="tsd-kind-icon">Notify<wbr>Message</a>
+					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
+						<a href="../modules/_types_.html#commandtrigger" class="tsd-kind-icon">Command<wbr>Trigger</a>
 					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.operatemessage.html" class="tsd-kind-icon">Operate<wbr>Message</a>
+					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
+						<a href="../modules/_types_.html#commandtype" class="tsd-kind-icon">Command<wbr>Type</a>
 					</li>
-				</ul>
-				<ul class="current">
-					<li class="current tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.operateoptions.html" class="tsd-kind-icon">Operate<wbr>Options</a>
-						<ul>
-							<li class=" tsd-kind-property tsd-parent-kind-interface">
-								<a href="_types_d_.operateoptions.html#id" class="tsd-kind-icon">ID</a>
-							</li>
-							<li class=" tsd-kind-property tsd-parent-kind-interface">
-								<a href="_types_d_.operateoptions.html#persistent" class="tsd-kind-icon">Persistent</a>
-							</li>
-						</ul>
+					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
+						<a href="../modules/_types_.html#decodefn" class="tsd-kind-icon">Decode<wbr>Fn</a>
 					</li>
-				</ul>
-				<ul class="after-current">
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.protocol.html" class="tsd-kind-icon">Protocol</a>
+					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
+						<a href="../modules/_types_.html#delcommand" class="tsd-kind-icon">Del<wbr>Command</a>
 					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.protocolargs.html" class="tsd-kind-icon">Protocol<wbr>Args</a>
+					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
+						<a href="../modules/_types_.html#encodeargs" class="tsd-kind-icon">Encode<wbr>Args</a>
 					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.protocolevents.html" class="tsd-kind-icon">Protocol<wbr>Events</a>
+					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
+						<a href="../modules/_types_.html#encodefn" class="tsd-kind-icon">Encode<wbr>Fn</a>
 					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.setmessage.html" class="tsd-kind-icon">Set<wbr>Message</a>
+					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
+						<a href="../modules/_types_.html#getcommand" class="tsd-kind-icon">Get<wbr>Command</a>
+					</li>
+					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
+						<a href="../modules/_types_.html#getresponse" class="tsd-kind-icon">Get<wbr>Response</a>
+					</li>
+					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
+						<a href="../modules/_types_.html#getreturn" class="tsd-kind-icon">Get<wbr>Return</a>
+					</li>
+					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
+						<a href="../modules/_types_.html#makefn" class="tsd-kind-icon">Make<wbr>Fn</a>
+					</li>
+					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
+						<a href="../modules/_types_.html#makerecipefn" class="tsd-kind-icon">Make<wbr>Recipe<wbr>Fn</a>
 					</li>
 					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
-						<a href="../modules/_types_d_.html#commandtype" class="tsd-kind-icon">Command<wbr>Type</a>
+						<a href="../modules/_types_.html#operateclearfn" class="tsd-kind-icon">Operate<wbr>Clear<wbr>Fn</a>
 					</li>
 					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
-						<a href="../modules/_types_d_.html#iclientoptions" class="tsd-kind-icon">IClient<wbr>Options</a>
+						<a href="../modules/_types_.html#operatecommand" class="tsd-kind-icon">Operate<wbr>Command</a>
 					</li>
 					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
-						<a href="../modules/_types_d_.html#jsobject" class="tsd-kind-icon">JSObject</a>
+						<a href="../modules/_types_.html#operatefn" class="tsd-kind-icon">Operate<wbr>Fn</a>
 					</li>
 					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
-						<a href="../modules/_types_d_.html#jstype" class="tsd-kind-icon">JSType</a>
+						<a href="../modules/_types_.html#pbrequestcommand" class="tsd-kind-icon">Pb<wbr>Request<wbr>Command</a>
 					</li>
 					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
-						<a href="../modules/_types_d_.html#messagetype" class="tsd-kind-icon">Message<wbr>Type</a>
+						<a href="../modules/_types_.html#pbrequestcommandadd" class="tsd-kind-icon">Pb<wbr>Request<wbr>Command<wbr>Add</a>
 					</li>
 					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
-						<a href="../modules/_types_d_.html#operatecleanupfunction" class="tsd-kind-icon">Operate<wbr>Cleanup<wbr>Function</a>
+						<a href="../modules/_types_.html#pbrequestcommanddel" class="tsd-kind-icon">Pb<wbr>Request<wbr>Command<wbr>Del</a>
 					</li>
 					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
-						<a href="../modules/_types_d_.html#operatefunction" class="tsd-kind-icon">Operate<wbr>Function</a>
+						<a href="../modules/_types_.html#pbrequestcommandget" class="tsd-kind-icon">Pb<wbr>Request<wbr>Command<wbr>Get</a>
 					</li>
 					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
-						<a href="../modules/_types_d_.html#promiseresult" class="tsd-kind-icon">Promise<wbr>Result</a>
+						<a href="../modules/_types_.html#pbrequestcommandoperate" class="tsd-kind-icon">Pb<wbr>Request<wbr>Command<wbr>Operate</a>
 					</li>
 					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
-						<a href="../modules/_types_d_.html#rejectfn" class="tsd-kind-icon">Reject<wbr>Fn</a>
+						<a href="../modules/_types_.html#pbrequestcommandset" class="tsd-kind-icon">Pb<wbr>Request<wbr>Command<wbr>Set</a>
 					</li>
 					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
-						<a href="../modules/_types_d_.html#role" class="tsd-kind-icon">Role</a>
+						<a href="../modules/_types_.html#recipe" class="tsd-kind-icon">Recipe</a>
 					</li>
 					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
-						<a href="../modules/_types_d_.html#router" class="tsd-kind-icon">Router</a>
+						<a href="../modules/_types_.html#resolverecipe" class="tsd-kind-icon">Resolve<wbr>Recipe</a>
 					</li>
 					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
-						<a href="../modules/_types_d_.html#sendfn" class="tsd-kind-icon">Send<wbr>Fn</a>
+						<a href="../modules/_types_.html#response" class="tsd-kind-icon">Response</a>
 					</li>
 					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
-						<a href="../modules/_types_d_.html#uspmessage" class="tsd-kind-icon">USPMessage</a>
+						<a href="../modules/_types_.html#setcommand" class="tsd-kind-icon">Set<wbr>Command</a>
 					</li>
 				</ul>
 			</nav>
diff --git a/public/interfaces/_types_.pbrequestbody.html b/public/interfaces/_types_.pbrequestbody.html
new file mode 100644
index 0000000000000000000000000000000000000000..51859af555f91fd1de6a2f18af6ea871d0aa61fe
--- /dev/null
+++ b/public/interfaces/_types_.pbrequestbody.html
@@ -0,0 +1,320 @@
+<!doctype html>
+<html class="default no-js">
+<head>
+	<meta charset="utf-8">
+	<meta http-equiv="X-UA-Compatible" content="IE=edge">
+	<title>PbRequestBody | usp-js</title>
+	<meta name="description" content="Documentation for usp-js">
+	<meta name="viewport" content="width=device-width, initial-scale=1">
+	<link rel="stylesheet" href="../assets/css/main.css">
+</head>
+<body>
+<header>
+	<div class="tsd-page-toolbar">
+		<div class="container">
+			<div class="table-wrap">
+				<div class="table-cell" id="tsd-search" data-index="../assets/js/search.json" data-base="..">
+					<div class="field">
+						<label for="tsd-search-field" class="tsd-widget search no-caption">Search</label>
+						<input id="tsd-search-field" type="text" />
+					</div>
+					<ul class="results">
+						<li class="state loading">Preparing search index...</li>
+						<li class="state failure">The search index is not available</li>
+					</ul>
+					<a href="../index.html" class="title">usp-js</a>
+				</div>
+				<div class="table-cell" id="tsd-widgets">
+					<div id="tsd-filter">
+						<a href="#" class="tsd-widget options no-caption" data-toggle="options">Options</a>
+						<div class="tsd-filter-group">
+							<div class="tsd-select" id="tsd-filter-visibility">
+								<span class="tsd-select-label">All</span>
+								<ul class="tsd-select-list">
+									<li data-value="public">Public</li>
+									<li data-value="protected">Public/Protected</li>
+									<li data-value="private" class="selected">All</li>
+								</ul>
+							</div>
+							<input type="checkbox" id="tsd-filter-inherited" checked />
+							<label class="tsd-widget" for="tsd-filter-inherited">Inherited</label>
+							<input type="checkbox" id="tsd-filter-externals" checked />
+							<label class="tsd-widget" for="tsd-filter-externals">Externals</label>
+							<input type="checkbox" id="tsd-filter-only-exported" />
+							<label class="tsd-widget" for="tsd-filter-only-exported">Only exported</label>
+						</div>
+					</div>
+					<a href="#" class="tsd-widget menu no-caption" data-toggle="menu">Menu</a>
+				</div>
+			</div>
+		</div>
+	</div>
+	<div class="tsd-page-title">
+		<div class="container">
+			<ul class="tsd-breadcrumb">
+				<li>
+					<a href="../globals.html">Globals</a>
+				</li>
+				<li>
+					<a href="../modules/_types_.html">&quot;types&quot;</a>
+				</li>
+				<li>
+					<a href="_types_.pbrequestbody.html">PbRequestBody</a>
+				</li>
+			</ul>
+			<h1>Interface PbRequestBody</h1>
+		</div>
+	</div>
+</header>
+<div class="container container-main">
+	<div class="row">
+		<div class="col-8 col-content">
+			<section class="tsd-panel tsd-hierarchy">
+				<h3>Hierarchy</h3>
+				<ul class="tsd-hierarchy">
+					<li>
+						<span class="target">PbRequestBody</span>
+					</li>
+				</ul>
+			</section>
+			<section class="tsd-panel-group tsd-index-group">
+				<h2>Index</h2>
+				<section class="tsd-panel tsd-index-panel">
+					<div class="tsd-index-content">
+						<section class="tsd-index-section ">
+							<h3>Properties</h3>
+							<ul class="tsd-index-list">
+								<li class="tsd-kind-property tsd-parent-kind-interface"><a href="_types_.pbrequestbody.html#lookup" class="tsd-kind-icon">lookup</a></li>
+								<li class="tsd-kind-property tsd-parent-kind-interface"><a href="_types_.pbrequestbody.html#request" class="tsd-kind-icon">request</a></li>
+							</ul>
+						</section>
+					</div>
+				</section>
+			</section>
+			<section class="tsd-panel-group tsd-member-group ">
+				<h2>Properties</h2>
+				<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-interface">
+					<a name="lookup" class="tsd-anchor"></a>
+					<h3>lookup</h3>
+					<div class="tsd-signature tsd-kind-icon">lookup<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">"Body"</span></div>
+					<aside class="tsd-sources">
+						<ul>
+							<li>Defined in types.ts:201</li>
+						</ul>
+					</aside>
+				</section>
+				<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-interface">
+					<a name="request" class="tsd-anchor"></a>
+					<h3>request</h3>
+					<div class="tsd-signature tsd-kind-icon">request<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-symbol">{ </span>lookup<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">"Request"</span><span class="tsd-signature-symbol"> }</span><span class="tsd-signature-symbol"> &amp; </span><a href="../modules/_types_.html#pbrequestcommand" class="tsd-signature-type">PbRequestCommand</a></div>
+					<aside class="tsd-sources">
+						<ul>
+							<li>Defined in types.ts:202</li>
+						</ul>
+					</aside>
+				</section>
+			</section>
+		</div>
+		<div class="col-4 col-menu menu-sticky-wrap menu-highlight">
+			<nav class="tsd-navigation primary">
+				<ul>
+					<li class="globals  ">
+						<a href="../globals.html"><em>Globals</em></a>
+					</li>
+					<li class="label tsd-is-external">
+						<span>Internals</span>
+					</li>
+					<li class=" tsd-kind-module">
+						<a href="../modules/_commands_add_.html">&quot;commands/add&quot;</a>
+					</li>
+					<li class=" tsd-kind-module">
+						<a href="../modules/_commands_del_.html">&quot;commands/del&quot;</a>
+					</li>
+					<li class=" tsd-kind-module">
+						<a href="../modules/_commands_get_.html">&quot;commands/get&quot;</a>
+					</li>
+					<li class=" tsd-kind-module">
+						<a href="../modules/_commands_index_.html">&quot;commands/index&quot;</a>
+					</li>
+					<li class=" tsd-kind-module">
+						<a href="../modules/_commands_operate_.html">&quot;commands/operate&quot;</a>
+					</li>
+					<li class=" tsd-kind-module">
+						<a href="../modules/_commands_recipes_resolve_.html">&quot;commands/recipes/resolve&quot;</a>
+					</li>
+					<li class=" tsd-kind-module">
+						<a href="../modules/_commands_set_.html">&quot;commands/set&quot;</a>
+					</li>
+					<li class=" tsd-kind-module">
+						<a href="../modules/_commands_util_.html">&quot;commands/util&quot;</a>
+					</li>
+					<li class=" tsd-kind-module">
+						<a href="../modules/_index_.html">&quot;index&quot;</a>
+					</li>
+					<li class="current tsd-kind-module">
+						<a href="../modules/_types_.html">&quot;types&quot;</a>
+					</li>
+					<li class=" tsd-kind-module">
+						<a href="../modules/_util_.html">&quot;util&quot;</a>
+					</li>
+					<li class="label tsd-is-external">
+						<span>Externals</span>
+					</li>
+					<li class=" tsd-kind-module tsd-is-external">
+						<a href="../modules/_specs_usp_msg_1_1_.html">&quot;specs/usp-<wbr>msg-<wbr>1-1&quot;</a>
+					</li>
+					<li class=" tsd-kind-module tsd-is-external">
+						<a href="../modules/_specs_usp_record_1_1_.html">&quot;specs/usp-<wbr>record-<wbr>1-1&quot;</a>
+					</li>
+				</ul>
+			</nav>
+			<nav class="tsd-navigation secondary menu-sticky">
+				<ul class="before-current">
+					<li class=" tsd-kind-interface tsd-parent-kind-module">
+						<a href="_types_.connectionevents.html" class="tsd-kind-icon">Connection<wbr>Events</a>
+					</li>
+					<li class=" tsd-kind-interface tsd-parent-kind-module">
+						<a href="_types_.connectionoptions.html" class="tsd-kind-icon">Connection<wbr>Options</a>
+					</li>
+					<li class=" tsd-kind-interface tsd-parent-kind-module tsd-is-not-exported">
+						<a href="_types_.operateoptions.html" class="tsd-kind-icon">Operate<wbr>Options</a>
+					</li>
+				</ul>
+				<ul class="current">
+					<li class="current tsd-kind-interface tsd-parent-kind-module">
+						<a href="_types_.pbrequestbody.html" class="tsd-kind-icon">Pb<wbr>Request<wbr>Body</a>
+						<ul>
+							<li class=" tsd-kind-property tsd-parent-kind-interface">
+								<a href="_types_.pbrequestbody.html#lookup" class="tsd-kind-icon">lookup</a>
+							</li>
+							<li class=" tsd-kind-property tsd-parent-kind-interface">
+								<a href="_types_.pbrequestbody.html#request" class="tsd-kind-icon">request</a>
+							</li>
+						</ul>
+					</li>
+				</ul>
+				<ul class="after-current">
+					<li class=" tsd-kind-interface tsd-parent-kind-module">
+						<a href="_types_.pbrequestheader.html" class="tsd-kind-icon">Pb<wbr>Request<wbr>Header</a>
+					</li>
+					<li class=" tsd-kind-interface tsd-parent-kind-module">
+						<a href="_types_.pbrequestmessage.html" class="tsd-kind-icon">Pb<wbr>Request<wbr>Message</a>
+					</li>
+					<li class=" tsd-kind-interface tsd-parent-kind-module">
+						<a href="_types_.recipeobject.html" class="tsd-kind-icon">Recipe<wbr>Object</a>
+					</li>
+					<li class=" tsd-kind-interface tsd-parent-kind-module">
+						<a href="_types_.usp.html" class="tsd-kind-icon">USP</a>
+					</li>
+					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
+						<a href="../modules/_types_.html#addcommand" class="tsd-kind-icon">Add<wbr>Command</a>
+					</li>
+					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
+						<a href="../modules/_types_.html#callfn" class="tsd-kind-icon">Call<wbr>Fn</a>
+					</li>
+					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
+						<a href="../modules/_types_.html#command" class="tsd-kind-icon">Command</a>
+					</li>
+					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
+						<a href="../modules/_types_.html#commandobject" class="tsd-kind-icon">Command<wbr>Object</a>
+					</li>
+					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
+						<a href="../modules/_types_.html#commandtrigger" class="tsd-kind-icon">Command<wbr>Trigger</a>
+					</li>
+					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
+						<a href="../modules/_types_.html#commandtype" class="tsd-kind-icon">Command<wbr>Type</a>
+					</li>
+					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
+						<a href="../modules/_types_.html#decodefn" class="tsd-kind-icon">Decode<wbr>Fn</a>
+					</li>
+					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
+						<a href="../modules/_types_.html#delcommand" class="tsd-kind-icon">Del<wbr>Command</a>
+					</li>
+					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
+						<a href="../modules/_types_.html#encodeargs" class="tsd-kind-icon">Encode<wbr>Args</a>
+					</li>
+					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
+						<a href="../modules/_types_.html#encodefn" class="tsd-kind-icon">Encode<wbr>Fn</a>
+					</li>
+					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
+						<a href="../modules/_types_.html#getcommand" class="tsd-kind-icon">Get<wbr>Command</a>
+					</li>
+					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
+						<a href="../modules/_types_.html#getresponse" class="tsd-kind-icon">Get<wbr>Response</a>
+					</li>
+					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
+						<a href="../modules/_types_.html#getreturn" class="tsd-kind-icon">Get<wbr>Return</a>
+					</li>
+					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
+						<a href="../modules/_types_.html#makefn" class="tsd-kind-icon">Make<wbr>Fn</a>
+					</li>
+					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
+						<a href="../modules/_types_.html#makerecipefn" class="tsd-kind-icon">Make<wbr>Recipe<wbr>Fn</a>
+					</li>
+					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
+						<a href="../modules/_types_.html#operateclearfn" class="tsd-kind-icon">Operate<wbr>Clear<wbr>Fn</a>
+					</li>
+					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
+						<a href="../modules/_types_.html#operatecommand" class="tsd-kind-icon">Operate<wbr>Command</a>
+					</li>
+					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
+						<a href="../modules/_types_.html#operatefn" class="tsd-kind-icon">Operate<wbr>Fn</a>
+					</li>
+					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
+						<a href="../modules/_types_.html#pbrequestcommand" class="tsd-kind-icon">Pb<wbr>Request<wbr>Command</a>
+					</li>
+					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
+						<a href="../modules/_types_.html#pbrequestcommandadd" class="tsd-kind-icon">Pb<wbr>Request<wbr>Command<wbr>Add</a>
+					</li>
+					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
+						<a href="../modules/_types_.html#pbrequestcommanddel" class="tsd-kind-icon">Pb<wbr>Request<wbr>Command<wbr>Del</a>
+					</li>
+					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
+						<a href="../modules/_types_.html#pbrequestcommandget" class="tsd-kind-icon">Pb<wbr>Request<wbr>Command<wbr>Get</a>
+					</li>
+					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
+						<a href="../modules/_types_.html#pbrequestcommandoperate" class="tsd-kind-icon">Pb<wbr>Request<wbr>Command<wbr>Operate</a>
+					</li>
+					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
+						<a href="../modules/_types_.html#pbrequestcommandset" class="tsd-kind-icon">Pb<wbr>Request<wbr>Command<wbr>Set</a>
+					</li>
+					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
+						<a href="../modules/_types_.html#recipe" class="tsd-kind-icon">Recipe</a>
+					</li>
+					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
+						<a href="../modules/_types_.html#resolverecipe" class="tsd-kind-icon">Resolve<wbr>Recipe</a>
+					</li>
+					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
+						<a href="../modules/_types_.html#response" class="tsd-kind-icon">Response</a>
+					</li>
+					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
+						<a href="../modules/_types_.html#setcommand" class="tsd-kind-icon">Set<wbr>Command</a>
+					</li>
+				</ul>
+			</nav>
+		</div>
+	</div>
+</div>
+<footer class="with-border-bottom">
+	<div class="container">
+		<h2>Legend</h2>
+		<div class="tsd-legend-group">
+			<ul class="tsd-legend">
+				<li class="tsd-kind-variable"><span class="tsd-kind-icon">Variable</span></li>
+				<li class="tsd-kind-function"><span class="tsd-kind-icon">Function</span></li>
+				<li class="tsd-kind-type-alias"><span class="tsd-kind-icon">Type alias</span></li>
+			</ul>
+			<ul class="tsd-legend">
+				<li class="tsd-kind-interface"><span class="tsd-kind-icon">Interface</span></li>
+				<li class="tsd-kind-property tsd-parent-kind-interface"><span class="tsd-kind-icon">Property</span></li>
+			</ul>
+		</div>
+	</div>
+</footer>
+<div class="container tsd-generator">
+	<p>Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p>
+</div>
+<div class="overlay"></div>
+<script src="../assets/js/main.js"></script>
+</body>
+</html>
\ No newline at end of file
diff --git a/public/interfaces/_types_.pbrequestheader.html b/public/interfaces/_types_.pbrequestheader.html
new file mode 100644
index 0000000000000000000000000000000000000000..e1de2de65c9e265761679de849f99bb287fd4411
--- /dev/null
+++ b/public/interfaces/_types_.pbrequestheader.html
@@ -0,0 +1,334 @@
+<!doctype html>
+<html class="default no-js">
+<head>
+	<meta charset="utf-8">
+	<meta http-equiv="X-UA-Compatible" content="IE=edge">
+	<title>PbRequestHeader | usp-js</title>
+	<meta name="description" content="Documentation for usp-js">
+	<meta name="viewport" content="width=device-width, initial-scale=1">
+	<link rel="stylesheet" href="../assets/css/main.css">
+</head>
+<body>
+<header>
+	<div class="tsd-page-toolbar">
+		<div class="container">
+			<div class="table-wrap">
+				<div class="table-cell" id="tsd-search" data-index="../assets/js/search.json" data-base="..">
+					<div class="field">
+						<label for="tsd-search-field" class="tsd-widget search no-caption">Search</label>
+						<input id="tsd-search-field" type="text" />
+					</div>
+					<ul class="results">
+						<li class="state loading">Preparing search index...</li>
+						<li class="state failure">The search index is not available</li>
+					</ul>
+					<a href="../index.html" class="title">usp-js</a>
+				</div>
+				<div class="table-cell" id="tsd-widgets">
+					<div id="tsd-filter">
+						<a href="#" class="tsd-widget options no-caption" data-toggle="options">Options</a>
+						<div class="tsd-filter-group">
+							<div class="tsd-select" id="tsd-filter-visibility">
+								<span class="tsd-select-label">All</span>
+								<ul class="tsd-select-list">
+									<li data-value="public">Public</li>
+									<li data-value="protected">Public/Protected</li>
+									<li data-value="private" class="selected">All</li>
+								</ul>
+							</div>
+							<input type="checkbox" id="tsd-filter-inherited" checked />
+							<label class="tsd-widget" for="tsd-filter-inherited">Inherited</label>
+							<input type="checkbox" id="tsd-filter-externals" checked />
+							<label class="tsd-widget" for="tsd-filter-externals">Externals</label>
+							<input type="checkbox" id="tsd-filter-only-exported" />
+							<label class="tsd-widget" for="tsd-filter-only-exported">Only exported</label>
+						</div>
+					</div>
+					<a href="#" class="tsd-widget menu no-caption" data-toggle="menu">Menu</a>
+				</div>
+			</div>
+		</div>
+	</div>
+	<div class="tsd-page-title">
+		<div class="container">
+			<ul class="tsd-breadcrumb">
+				<li>
+					<a href="../globals.html">Globals</a>
+				</li>
+				<li>
+					<a href="../modules/_types_.html">&quot;types&quot;</a>
+				</li>
+				<li>
+					<a href="_types_.pbrequestheader.html">PbRequestHeader</a>
+				</li>
+			</ul>
+			<h1>Interface PbRequestHeader</h1>
+		</div>
+	</div>
+</header>
+<div class="container container-main">
+	<div class="row">
+		<div class="col-8 col-content">
+			<section class="tsd-panel tsd-hierarchy">
+				<h3>Hierarchy</h3>
+				<ul class="tsd-hierarchy">
+					<li>
+						<span class="target">PbRequestHeader</span>
+					</li>
+				</ul>
+			</section>
+			<section class="tsd-panel-group tsd-index-group">
+				<h2>Index</h2>
+				<section class="tsd-panel tsd-index-panel">
+					<div class="tsd-index-content">
+						<section class="tsd-index-section ">
+							<h3>Properties</h3>
+							<ul class="tsd-index-list">
+								<li class="tsd-kind-property tsd-parent-kind-interface"><a href="_types_.pbrequestheader.html#lookup" class="tsd-kind-icon">lookup</a></li>
+								<li class="tsd-kind-property tsd-parent-kind-interface"><a href="_types_.pbrequestheader.html#msgid" class="tsd-kind-icon">msg<wbr>Id</a></li>
+								<li class="tsd-kind-property tsd-parent-kind-interface"><a href="_types_.pbrequestheader.html#msgtype" class="tsd-kind-icon">msg<wbr>Type</a></li>
+							</ul>
+						</section>
+					</div>
+				</section>
+			</section>
+			<section class="tsd-panel-group tsd-member-group ">
+				<h2>Properties</h2>
+				<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-interface">
+					<a name="lookup" class="tsd-anchor"></a>
+					<h3>lookup</h3>
+					<div class="tsd-signature tsd-kind-icon">lookup<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">"Header"</span></div>
+					<aside class="tsd-sources">
+						<ul>
+							<li>Defined in types.ts:197</li>
+						</ul>
+					</aside>
+				</section>
+				<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-interface">
+					<a name="msgid" class="tsd-anchor"></a>
+					<h3>msg<wbr>Id</h3>
+					<div class="tsd-signature tsd-kind-icon">msg<wbr>Id<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span></div>
+					<aside class="tsd-sources">
+						<ul>
+							<li>Defined in types.ts:195</li>
+						</ul>
+					</aside>
+				</section>
+				<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-interface">
+					<a name="msgtype" class="tsd-anchor"></a>
+					<h3>msg<wbr>Type</h3>
+					<div class="tsd-signature tsd-kind-icon">msg<wbr>Type<span class="tsd-signature-symbol">:</span> <a href="../modules/_types_.html#commandtype" class="tsd-signature-type">CommandType</a></div>
+					<aside class="tsd-sources">
+						<ul>
+							<li>Defined in types.ts:196</li>
+						</ul>
+					</aside>
+				</section>
+			</section>
+		</div>
+		<div class="col-4 col-menu menu-sticky-wrap menu-highlight">
+			<nav class="tsd-navigation primary">
+				<ul>
+					<li class="globals  ">
+						<a href="../globals.html"><em>Globals</em></a>
+					</li>
+					<li class="label tsd-is-external">
+						<span>Internals</span>
+					</li>
+					<li class=" tsd-kind-module">
+						<a href="../modules/_commands_add_.html">&quot;commands/add&quot;</a>
+					</li>
+					<li class=" tsd-kind-module">
+						<a href="../modules/_commands_del_.html">&quot;commands/del&quot;</a>
+					</li>
+					<li class=" tsd-kind-module">
+						<a href="../modules/_commands_get_.html">&quot;commands/get&quot;</a>
+					</li>
+					<li class=" tsd-kind-module">
+						<a href="../modules/_commands_index_.html">&quot;commands/index&quot;</a>
+					</li>
+					<li class=" tsd-kind-module">
+						<a href="../modules/_commands_operate_.html">&quot;commands/operate&quot;</a>
+					</li>
+					<li class=" tsd-kind-module">
+						<a href="../modules/_commands_recipes_resolve_.html">&quot;commands/recipes/resolve&quot;</a>
+					</li>
+					<li class=" tsd-kind-module">
+						<a href="../modules/_commands_set_.html">&quot;commands/set&quot;</a>
+					</li>
+					<li class=" tsd-kind-module">
+						<a href="../modules/_commands_util_.html">&quot;commands/util&quot;</a>
+					</li>
+					<li class=" tsd-kind-module">
+						<a href="../modules/_index_.html">&quot;index&quot;</a>
+					</li>
+					<li class="current tsd-kind-module">
+						<a href="../modules/_types_.html">&quot;types&quot;</a>
+					</li>
+					<li class=" tsd-kind-module">
+						<a href="../modules/_util_.html">&quot;util&quot;</a>
+					</li>
+					<li class="label tsd-is-external">
+						<span>Externals</span>
+					</li>
+					<li class=" tsd-kind-module tsd-is-external">
+						<a href="../modules/_specs_usp_msg_1_1_.html">&quot;specs/usp-<wbr>msg-<wbr>1-1&quot;</a>
+					</li>
+					<li class=" tsd-kind-module tsd-is-external">
+						<a href="../modules/_specs_usp_record_1_1_.html">&quot;specs/usp-<wbr>record-<wbr>1-1&quot;</a>
+					</li>
+				</ul>
+			</nav>
+			<nav class="tsd-navigation secondary menu-sticky">
+				<ul class="before-current">
+					<li class=" tsd-kind-interface tsd-parent-kind-module">
+						<a href="_types_.connectionevents.html" class="tsd-kind-icon">Connection<wbr>Events</a>
+					</li>
+					<li class=" tsd-kind-interface tsd-parent-kind-module">
+						<a href="_types_.connectionoptions.html" class="tsd-kind-icon">Connection<wbr>Options</a>
+					</li>
+					<li class=" tsd-kind-interface tsd-parent-kind-module tsd-is-not-exported">
+						<a href="_types_.operateoptions.html" class="tsd-kind-icon">Operate<wbr>Options</a>
+					</li>
+					<li class=" tsd-kind-interface tsd-parent-kind-module">
+						<a href="_types_.pbrequestbody.html" class="tsd-kind-icon">Pb<wbr>Request<wbr>Body</a>
+					</li>
+				</ul>
+				<ul class="current">
+					<li class="current tsd-kind-interface tsd-parent-kind-module">
+						<a href="_types_.pbrequestheader.html" class="tsd-kind-icon">Pb<wbr>Request<wbr>Header</a>
+						<ul>
+							<li class=" tsd-kind-property tsd-parent-kind-interface">
+								<a href="_types_.pbrequestheader.html#lookup" class="tsd-kind-icon">lookup</a>
+							</li>
+							<li class=" tsd-kind-property tsd-parent-kind-interface">
+								<a href="_types_.pbrequestheader.html#msgid" class="tsd-kind-icon">msg<wbr>Id</a>
+							</li>
+							<li class=" tsd-kind-property tsd-parent-kind-interface">
+								<a href="_types_.pbrequestheader.html#msgtype" class="tsd-kind-icon">msg<wbr>Type</a>
+							</li>
+						</ul>
+					</li>
+				</ul>
+				<ul class="after-current">
+					<li class=" tsd-kind-interface tsd-parent-kind-module">
+						<a href="_types_.pbrequestmessage.html" class="tsd-kind-icon">Pb<wbr>Request<wbr>Message</a>
+					</li>
+					<li class=" tsd-kind-interface tsd-parent-kind-module">
+						<a href="_types_.recipeobject.html" class="tsd-kind-icon">Recipe<wbr>Object</a>
+					</li>
+					<li class=" tsd-kind-interface tsd-parent-kind-module">
+						<a href="_types_.usp.html" class="tsd-kind-icon">USP</a>
+					</li>
+					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
+						<a href="../modules/_types_.html#addcommand" class="tsd-kind-icon">Add<wbr>Command</a>
+					</li>
+					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
+						<a href="../modules/_types_.html#callfn" class="tsd-kind-icon">Call<wbr>Fn</a>
+					</li>
+					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
+						<a href="../modules/_types_.html#command" class="tsd-kind-icon">Command</a>
+					</li>
+					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
+						<a href="../modules/_types_.html#commandobject" class="tsd-kind-icon">Command<wbr>Object</a>
+					</li>
+					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
+						<a href="../modules/_types_.html#commandtrigger" class="tsd-kind-icon">Command<wbr>Trigger</a>
+					</li>
+					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
+						<a href="../modules/_types_.html#commandtype" class="tsd-kind-icon">Command<wbr>Type</a>
+					</li>
+					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
+						<a href="../modules/_types_.html#decodefn" class="tsd-kind-icon">Decode<wbr>Fn</a>
+					</li>
+					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
+						<a href="../modules/_types_.html#delcommand" class="tsd-kind-icon">Del<wbr>Command</a>
+					</li>
+					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
+						<a href="../modules/_types_.html#encodeargs" class="tsd-kind-icon">Encode<wbr>Args</a>
+					</li>
+					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
+						<a href="../modules/_types_.html#encodefn" class="tsd-kind-icon">Encode<wbr>Fn</a>
+					</li>
+					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
+						<a href="../modules/_types_.html#getcommand" class="tsd-kind-icon">Get<wbr>Command</a>
+					</li>
+					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
+						<a href="../modules/_types_.html#getresponse" class="tsd-kind-icon">Get<wbr>Response</a>
+					</li>
+					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
+						<a href="../modules/_types_.html#getreturn" class="tsd-kind-icon">Get<wbr>Return</a>
+					</li>
+					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
+						<a href="../modules/_types_.html#makefn" class="tsd-kind-icon">Make<wbr>Fn</a>
+					</li>
+					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
+						<a href="../modules/_types_.html#makerecipefn" class="tsd-kind-icon">Make<wbr>Recipe<wbr>Fn</a>
+					</li>
+					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
+						<a href="../modules/_types_.html#operateclearfn" class="tsd-kind-icon">Operate<wbr>Clear<wbr>Fn</a>
+					</li>
+					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
+						<a href="../modules/_types_.html#operatecommand" class="tsd-kind-icon">Operate<wbr>Command</a>
+					</li>
+					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
+						<a href="../modules/_types_.html#operatefn" class="tsd-kind-icon">Operate<wbr>Fn</a>
+					</li>
+					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
+						<a href="../modules/_types_.html#pbrequestcommand" class="tsd-kind-icon">Pb<wbr>Request<wbr>Command</a>
+					</li>
+					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
+						<a href="../modules/_types_.html#pbrequestcommandadd" class="tsd-kind-icon">Pb<wbr>Request<wbr>Command<wbr>Add</a>
+					</li>
+					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
+						<a href="../modules/_types_.html#pbrequestcommanddel" class="tsd-kind-icon">Pb<wbr>Request<wbr>Command<wbr>Del</a>
+					</li>
+					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
+						<a href="../modules/_types_.html#pbrequestcommandget" class="tsd-kind-icon">Pb<wbr>Request<wbr>Command<wbr>Get</a>
+					</li>
+					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
+						<a href="../modules/_types_.html#pbrequestcommandoperate" class="tsd-kind-icon">Pb<wbr>Request<wbr>Command<wbr>Operate</a>
+					</li>
+					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
+						<a href="../modules/_types_.html#pbrequestcommandset" class="tsd-kind-icon">Pb<wbr>Request<wbr>Command<wbr>Set</a>
+					</li>
+					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
+						<a href="../modules/_types_.html#recipe" class="tsd-kind-icon">Recipe</a>
+					</li>
+					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
+						<a href="../modules/_types_.html#resolverecipe" class="tsd-kind-icon">Resolve<wbr>Recipe</a>
+					</li>
+					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
+						<a href="../modules/_types_.html#response" class="tsd-kind-icon">Response</a>
+					</li>
+					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
+						<a href="../modules/_types_.html#setcommand" class="tsd-kind-icon">Set<wbr>Command</a>
+					</li>
+				</ul>
+			</nav>
+		</div>
+	</div>
+</div>
+<footer class="with-border-bottom">
+	<div class="container">
+		<h2>Legend</h2>
+		<div class="tsd-legend-group">
+			<ul class="tsd-legend">
+				<li class="tsd-kind-variable"><span class="tsd-kind-icon">Variable</span></li>
+				<li class="tsd-kind-function"><span class="tsd-kind-icon">Function</span></li>
+				<li class="tsd-kind-type-alias"><span class="tsd-kind-icon">Type alias</span></li>
+			</ul>
+			<ul class="tsd-legend">
+				<li class="tsd-kind-interface"><span class="tsd-kind-icon">Interface</span></li>
+				<li class="tsd-kind-property tsd-parent-kind-interface"><span class="tsd-kind-icon">Property</span></li>
+			</ul>
+		</div>
+	</div>
+</footer>
+<div class="container tsd-generator">
+	<p>Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p>
+</div>
+<div class="overlay"></div>
+<script src="../assets/js/main.js"></script>
+</body>
+</html>
\ No newline at end of file
diff --git a/public/interfaces/_types_.pbrequestmessage.html b/public/interfaces/_types_.pbrequestmessage.html
new file mode 100644
index 0000000000000000000000000000000000000000..9546f8b2d282a8338022785685b6058c9acfd6ea
--- /dev/null
+++ b/public/interfaces/_types_.pbrequestmessage.html
@@ -0,0 +1,334 @@
+<!doctype html>
+<html class="default no-js">
+<head>
+	<meta charset="utf-8">
+	<meta http-equiv="X-UA-Compatible" content="IE=edge">
+	<title>PbRequestMessage | usp-js</title>
+	<meta name="description" content="Documentation for usp-js">
+	<meta name="viewport" content="width=device-width, initial-scale=1">
+	<link rel="stylesheet" href="../assets/css/main.css">
+</head>
+<body>
+<header>
+	<div class="tsd-page-toolbar">
+		<div class="container">
+			<div class="table-wrap">
+				<div class="table-cell" id="tsd-search" data-index="../assets/js/search.json" data-base="..">
+					<div class="field">
+						<label for="tsd-search-field" class="tsd-widget search no-caption">Search</label>
+						<input id="tsd-search-field" type="text" />
+					</div>
+					<ul class="results">
+						<li class="state loading">Preparing search index...</li>
+						<li class="state failure">The search index is not available</li>
+					</ul>
+					<a href="../index.html" class="title">usp-js</a>
+				</div>
+				<div class="table-cell" id="tsd-widgets">
+					<div id="tsd-filter">
+						<a href="#" class="tsd-widget options no-caption" data-toggle="options">Options</a>
+						<div class="tsd-filter-group">
+							<div class="tsd-select" id="tsd-filter-visibility">
+								<span class="tsd-select-label">All</span>
+								<ul class="tsd-select-list">
+									<li data-value="public">Public</li>
+									<li data-value="protected">Public/Protected</li>
+									<li data-value="private" class="selected">All</li>
+								</ul>
+							</div>
+							<input type="checkbox" id="tsd-filter-inherited" checked />
+							<label class="tsd-widget" for="tsd-filter-inherited">Inherited</label>
+							<input type="checkbox" id="tsd-filter-externals" checked />
+							<label class="tsd-widget" for="tsd-filter-externals">Externals</label>
+							<input type="checkbox" id="tsd-filter-only-exported" />
+							<label class="tsd-widget" for="tsd-filter-only-exported">Only exported</label>
+						</div>
+					</div>
+					<a href="#" class="tsd-widget menu no-caption" data-toggle="menu">Menu</a>
+				</div>
+			</div>
+		</div>
+	</div>
+	<div class="tsd-page-title">
+		<div class="container">
+			<ul class="tsd-breadcrumb">
+				<li>
+					<a href="../globals.html">Globals</a>
+				</li>
+				<li>
+					<a href="../modules/_types_.html">&quot;types&quot;</a>
+				</li>
+				<li>
+					<a href="_types_.pbrequestmessage.html">PbRequestMessage</a>
+				</li>
+			</ul>
+			<h1>Interface PbRequestMessage</h1>
+		</div>
+	</div>
+</header>
+<div class="container container-main">
+	<div class="row">
+		<div class="col-8 col-content">
+			<section class="tsd-panel tsd-hierarchy">
+				<h3>Hierarchy</h3>
+				<ul class="tsd-hierarchy">
+					<li>
+						<span class="target">PbRequestMessage</span>
+					</li>
+				</ul>
+			</section>
+			<section class="tsd-panel-group tsd-index-group">
+				<h2>Index</h2>
+				<section class="tsd-panel tsd-index-panel">
+					<div class="tsd-index-content">
+						<section class="tsd-index-section ">
+							<h3>Properties</h3>
+							<ul class="tsd-index-list">
+								<li class="tsd-kind-property tsd-parent-kind-interface"><a href="_types_.pbrequestmessage.html#body" class="tsd-kind-icon">body</a></li>
+								<li class="tsd-kind-property tsd-parent-kind-interface"><a href="_types_.pbrequestmessage.html#header" class="tsd-kind-icon">header</a></li>
+								<li class="tsd-kind-property tsd-parent-kind-interface"><a href="_types_.pbrequestmessage.html#lookup" class="tsd-kind-icon">lookup</a></li>
+							</ul>
+						</section>
+					</div>
+				</section>
+			</section>
+			<section class="tsd-panel-group tsd-member-group ">
+				<h2>Properties</h2>
+				<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-interface">
+					<a name="body" class="tsd-anchor"></a>
+					<h3>body</h3>
+					<div class="tsd-signature tsd-kind-icon">body<span class="tsd-signature-symbol">:</span> <a href="_types_.pbrequestbody.html" class="tsd-signature-type">PbRequestBody</a></div>
+					<aside class="tsd-sources">
+						<ul>
+							<li>Defined in types.ts:209</li>
+						</ul>
+					</aside>
+				</section>
+				<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-interface">
+					<a name="header" class="tsd-anchor"></a>
+					<h3>header</h3>
+					<div class="tsd-signature tsd-kind-icon">header<span class="tsd-signature-symbol">:</span> <a href="_types_.pbrequestheader.html" class="tsd-signature-type">PbRequestHeader</a></div>
+					<aside class="tsd-sources">
+						<ul>
+							<li>Defined in types.ts:208</li>
+						</ul>
+					</aside>
+				</section>
+				<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-interface">
+					<a name="lookup" class="tsd-anchor"></a>
+					<h3>lookup</h3>
+					<div class="tsd-signature tsd-kind-icon">lookup<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">"Msg"</span></div>
+					<aside class="tsd-sources">
+						<ul>
+							<li>Defined in types.ts:210</li>
+						</ul>
+					</aside>
+				</section>
+			</section>
+		</div>
+		<div class="col-4 col-menu menu-sticky-wrap menu-highlight">
+			<nav class="tsd-navigation primary">
+				<ul>
+					<li class="globals  ">
+						<a href="../globals.html"><em>Globals</em></a>
+					</li>
+					<li class="label tsd-is-external">
+						<span>Internals</span>
+					</li>
+					<li class=" tsd-kind-module">
+						<a href="../modules/_commands_add_.html">&quot;commands/add&quot;</a>
+					</li>
+					<li class=" tsd-kind-module">
+						<a href="../modules/_commands_del_.html">&quot;commands/del&quot;</a>
+					</li>
+					<li class=" tsd-kind-module">
+						<a href="../modules/_commands_get_.html">&quot;commands/get&quot;</a>
+					</li>
+					<li class=" tsd-kind-module">
+						<a href="../modules/_commands_index_.html">&quot;commands/index&quot;</a>
+					</li>
+					<li class=" tsd-kind-module">
+						<a href="../modules/_commands_operate_.html">&quot;commands/operate&quot;</a>
+					</li>
+					<li class=" tsd-kind-module">
+						<a href="../modules/_commands_recipes_resolve_.html">&quot;commands/recipes/resolve&quot;</a>
+					</li>
+					<li class=" tsd-kind-module">
+						<a href="../modules/_commands_set_.html">&quot;commands/set&quot;</a>
+					</li>
+					<li class=" tsd-kind-module">
+						<a href="../modules/_commands_util_.html">&quot;commands/util&quot;</a>
+					</li>
+					<li class=" tsd-kind-module">
+						<a href="../modules/_index_.html">&quot;index&quot;</a>
+					</li>
+					<li class="current tsd-kind-module">
+						<a href="../modules/_types_.html">&quot;types&quot;</a>
+					</li>
+					<li class=" tsd-kind-module">
+						<a href="../modules/_util_.html">&quot;util&quot;</a>
+					</li>
+					<li class="label tsd-is-external">
+						<span>Externals</span>
+					</li>
+					<li class=" tsd-kind-module tsd-is-external">
+						<a href="../modules/_specs_usp_msg_1_1_.html">&quot;specs/usp-<wbr>msg-<wbr>1-1&quot;</a>
+					</li>
+					<li class=" tsd-kind-module tsd-is-external">
+						<a href="../modules/_specs_usp_record_1_1_.html">&quot;specs/usp-<wbr>record-<wbr>1-1&quot;</a>
+					</li>
+				</ul>
+			</nav>
+			<nav class="tsd-navigation secondary menu-sticky">
+				<ul class="before-current">
+					<li class=" tsd-kind-interface tsd-parent-kind-module">
+						<a href="_types_.connectionevents.html" class="tsd-kind-icon">Connection<wbr>Events</a>
+					</li>
+					<li class=" tsd-kind-interface tsd-parent-kind-module">
+						<a href="_types_.connectionoptions.html" class="tsd-kind-icon">Connection<wbr>Options</a>
+					</li>
+					<li class=" tsd-kind-interface tsd-parent-kind-module tsd-is-not-exported">
+						<a href="_types_.operateoptions.html" class="tsd-kind-icon">Operate<wbr>Options</a>
+					</li>
+					<li class=" tsd-kind-interface tsd-parent-kind-module">
+						<a href="_types_.pbrequestbody.html" class="tsd-kind-icon">Pb<wbr>Request<wbr>Body</a>
+					</li>
+					<li class=" tsd-kind-interface tsd-parent-kind-module">
+						<a href="_types_.pbrequestheader.html" class="tsd-kind-icon">Pb<wbr>Request<wbr>Header</a>
+					</li>
+				</ul>
+				<ul class="current">
+					<li class="current tsd-kind-interface tsd-parent-kind-module">
+						<a href="_types_.pbrequestmessage.html" class="tsd-kind-icon">Pb<wbr>Request<wbr>Message</a>
+						<ul>
+							<li class=" tsd-kind-property tsd-parent-kind-interface">
+								<a href="_types_.pbrequestmessage.html#body" class="tsd-kind-icon">body</a>
+							</li>
+							<li class=" tsd-kind-property tsd-parent-kind-interface">
+								<a href="_types_.pbrequestmessage.html#header" class="tsd-kind-icon">header</a>
+							</li>
+							<li class=" tsd-kind-property tsd-parent-kind-interface">
+								<a href="_types_.pbrequestmessage.html#lookup" class="tsd-kind-icon">lookup</a>
+							</li>
+						</ul>
+					</li>
+				</ul>
+				<ul class="after-current">
+					<li class=" tsd-kind-interface tsd-parent-kind-module">
+						<a href="_types_.recipeobject.html" class="tsd-kind-icon">Recipe<wbr>Object</a>
+					</li>
+					<li class=" tsd-kind-interface tsd-parent-kind-module">
+						<a href="_types_.usp.html" class="tsd-kind-icon">USP</a>
+					</li>
+					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
+						<a href="../modules/_types_.html#addcommand" class="tsd-kind-icon">Add<wbr>Command</a>
+					</li>
+					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
+						<a href="../modules/_types_.html#callfn" class="tsd-kind-icon">Call<wbr>Fn</a>
+					</li>
+					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
+						<a href="../modules/_types_.html#command" class="tsd-kind-icon">Command</a>
+					</li>
+					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
+						<a href="../modules/_types_.html#commandobject" class="tsd-kind-icon">Command<wbr>Object</a>
+					</li>
+					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
+						<a href="../modules/_types_.html#commandtrigger" class="tsd-kind-icon">Command<wbr>Trigger</a>
+					</li>
+					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
+						<a href="../modules/_types_.html#commandtype" class="tsd-kind-icon">Command<wbr>Type</a>
+					</li>
+					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
+						<a href="../modules/_types_.html#decodefn" class="tsd-kind-icon">Decode<wbr>Fn</a>
+					</li>
+					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
+						<a href="../modules/_types_.html#delcommand" class="tsd-kind-icon">Del<wbr>Command</a>
+					</li>
+					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
+						<a href="../modules/_types_.html#encodeargs" class="tsd-kind-icon">Encode<wbr>Args</a>
+					</li>
+					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
+						<a href="../modules/_types_.html#encodefn" class="tsd-kind-icon">Encode<wbr>Fn</a>
+					</li>
+					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
+						<a href="../modules/_types_.html#getcommand" class="tsd-kind-icon">Get<wbr>Command</a>
+					</li>
+					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
+						<a href="../modules/_types_.html#getresponse" class="tsd-kind-icon">Get<wbr>Response</a>
+					</li>
+					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
+						<a href="../modules/_types_.html#getreturn" class="tsd-kind-icon">Get<wbr>Return</a>
+					</li>
+					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
+						<a href="../modules/_types_.html#makefn" class="tsd-kind-icon">Make<wbr>Fn</a>
+					</li>
+					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
+						<a href="../modules/_types_.html#makerecipefn" class="tsd-kind-icon">Make<wbr>Recipe<wbr>Fn</a>
+					</li>
+					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
+						<a href="../modules/_types_.html#operateclearfn" class="tsd-kind-icon">Operate<wbr>Clear<wbr>Fn</a>
+					</li>
+					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
+						<a href="../modules/_types_.html#operatecommand" class="tsd-kind-icon">Operate<wbr>Command</a>
+					</li>
+					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
+						<a href="../modules/_types_.html#operatefn" class="tsd-kind-icon">Operate<wbr>Fn</a>
+					</li>
+					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
+						<a href="../modules/_types_.html#pbrequestcommand" class="tsd-kind-icon">Pb<wbr>Request<wbr>Command</a>
+					</li>
+					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
+						<a href="../modules/_types_.html#pbrequestcommandadd" class="tsd-kind-icon">Pb<wbr>Request<wbr>Command<wbr>Add</a>
+					</li>
+					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
+						<a href="../modules/_types_.html#pbrequestcommanddel" class="tsd-kind-icon">Pb<wbr>Request<wbr>Command<wbr>Del</a>
+					</li>
+					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
+						<a href="../modules/_types_.html#pbrequestcommandget" class="tsd-kind-icon">Pb<wbr>Request<wbr>Command<wbr>Get</a>
+					</li>
+					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
+						<a href="../modules/_types_.html#pbrequestcommandoperate" class="tsd-kind-icon">Pb<wbr>Request<wbr>Command<wbr>Operate</a>
+					</li>
+					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
+						<a href="../modules/_types_.html#pbrequestcommandset" class="tsd-kind-icon">Pb<wbr>Request<wbr>Command<wbr>Set</a>
+					</li>
+					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
+						<a href="../modules/_types_.html#recipe" class="tsd-kind-icon">Recipe</a>
+					</li>
+					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
+						<a href="../modules/_types_.html#resolverecipe" class="tsd-kind-icon">Resolve<wbr>Recipe</a>
+					</li>
+					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
+						<a href="../modules/_types_.html#response" class="tsd-kind-icon">Response</a>
+					</li>
+					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
+						<a href="../modules/_types_.html#setcommand" class="tsd-kind-icon">Set<wbr>Command</a>
+					</li>
+				</ul>
+			</nav>
+		</div>
+	</div>
+</div>
+<footer class="with-border-bottom">
+	<div class="container">
+		<h2>Legend</h2>
+		<div class="tsd-legend-group">
+			<ul class="tsd-legend">
+				<li class="tsd-kind-variable"><span class="tsd-kind-icon">Variable</span></li>
+				<li class="tsd-kind-function"><span class="tsd-kind-icon">Function</span></li>
+				<li class="tsd-kind-type-alias"><span class="tsd-kind-icon">Type alias</span></li>
+			</ul>
+			<ul class="tsd-legend">
+				<li class="tsd-kind-interface"><span class="tsd-kind-icon">Interface</span></li>
+				<li class="tsd-kind-property tsd-parent-kind-interface"><span class="tsd-kind-icon">Property</span></li>
+			</ul>
+		</div>
+	</div>
+</footer>
+<div class="container tsd-generator">
+	<p>Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p>
+</div>
+<div class="overlay"></div>
+<script src="../assets/js/main.js"></script>
+</body>
+</html>
\ No newline at end of file
diff --git a/public/interfaces/_types_.recipeobject.html b/public/interfaces/_types_.recipeobject.html
new file mode 100644
index 0000000000000000000000000000000000000000..844037baba9ba365ae4a9d4a8c6f391f82c46f21
--- /dev/null
+++ b/public/interfaces/_types_.recipeobject.html
@@ -0,0 +1,320 @@
+<!doctype html>
+<html class="default no-js">
+<head>
+	<meta charset="utf-8">
+	<meta http-equiv="X-UA-Compatible" content="IE=edge">
+	<title>RecipeObject | usp-js</title>
+	<meta name="description" content="Documentation for usp-js">
+	<meta name="viewport" content="width=device-width, initial-scale=1">
+	<link rel="stylesheet" href="../assets/css/main.css">
+</head>
+<body>
+<header>
+	<div class="tsd-page-toolbar">
+		<div class="container">
+			<div class="table-wrap">
+				<div class="table-cell" id="tsd-search" data-index="../assets/js/search.json" data-base="..">
+					<div class="field">
+						<label for="tsd-search-field" class="tsd-widget search no-caption">Search</label>
+						<input id="tsd-search-field" type="text" />
+					</div>
+					<ul class="results">
+						<li class="state loading">Preparing search index...</li>
+						<li class="state failure">The search index is not available</li>
+					</ul>
+					<a href="../index.html" class="title">usp-js</a>
+				</div>
+				<div class="table-cell" id="tsd-widgets">
+					<div id="tsd-filter">
+						<a href="#" class="tsd-widget options no-caption" data-toggle="options">Options</a>
+						<div class="tsd-filter-group">
+							<div class="tsd-select" id="tsd-filter-visibility">
+								<span class="tsd-select-label">All</span>
+								<ul class="tsd-select-list">
+									<li data-value="public">Public</li>
+									<li data-value="protected">Public/Protected</li>
+									<li data-value="private" class="selected">All</li>
+								</ul>
+							</div>
+							<input type="checkbox" id="tsd-filter-inherited" checked />
+							<label class="tsd-widget" for="tsd-filter-inherited">Inherited</label>
+							<input type="checkbox" id="tsd-filter-externals" checked />
+							<label class="tsd-widget" for="tsd-filter-externals">Externals</label>
+							<input type="checkbox" id="tsd-filter-only-exported" />
+							<label class="tsd-widget" for="tsd-filter-only-exported">Only exported</label>
+						</div>
+					</div>
+					<a href="#" class="tsd-widget menu no-caption" data-toggle="menu">Menu</a>
+				</div>
+			</div>
+		</div>
+	</div>
+	<div class="tsd-page-title">
+		<div class="container">
+			<ul class="tsd-breadcrumb">
+				<li>
+					<a href="../globals.html">Globals</a>
+				</li>
+				<li>
+					<a href="../modules/_types_.html">&quot;types&quot;</a>
+				</li>
+				<li>
+					<a href="_types_.recipeobject.html">RecipeObject</a>
+				</li>
+			</ul>
+			<h1>Interface RecipeObject</h1>
+		</div>
+	</div>
+</header>
+<div class="container container-main">
+	<div class="row">
+		<div class="col-8 col-content">
+			<section class="tsd-panel tsd-hierarchy">
+				<h3>Hierarchy</h3>
+				<ul class="tsd-hierarchy">
+					<li>
+						<span class="target">RecipeObject</span>
+					</li>
+				</ul>
+			</section>
+			<section class="tsd-panel-group tsd-index-group">
+				<h2>Index</h2>
+				<section class="tsd-panel tsd-index-panel">
+					<div class="tsd-index-content">
+						<section class="tsd-index-section ">
+							<h3>Properties</h3>
+							<ul class="tsd-index-list">
+								<li class="tsd-kind-property tsd-parent-kind-interface"><a href="_types_.recipeobject.html#make" class="tsd-kind-icon">make</a></li>
+								<li class="tsd-kind-property tsd-parent-kind-interface"><a href="_types_.recipeobject.html#name" class="tsd-kind-icon">name</a></li>
+							</ul>
+						</section>
+					</div>
+				</section>
+			</section>
+			<section class="tsd-panel-group tsd-member-group ">
+				<h2>Properties</h2>
+				<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-interface">
+					<a name="make" class="tsd-anchor"></a>
+					<h3>make</h3>
+					<div class="tsd-signature tsd-kind-icon">make<span class="tsd-signature-symbol">:</span> <a href="../modules/_types_.html#makefn" class="tsd-signature-type">MakeFn</a></div>
+					<aside class="tsd-sources">
+						<ul>
+							<li>Defined in types.ts:260</li>
+						</ul>
+					</aside>
+				</section>
+				<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-interface">
+					<a name="name" class="tsd-anchor"></a>
+					<h3>name</h3>
+					<div class="tsd-signature tsd-kind-icon">name<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span></div>
+					<aside class="tsd-sources">
+						<ul>
+							<li>Defined in types.ts:259</li>
+						</ul>
+					</aside>
+				</section>
+			</section>
+		</div>
+		<div class="col-4 col-menu menu-sticky-wrap menu-highlight">
+			<nav class="tsd-navigation primary">
+				<ul>
+					<li class="globals  ">
+						<a href="../globals.html"><em>Globals</em></a>
+					</li>
+					<li class="label tsd-is-external">
+						<span>Internals</span>
+					</li>
+					<li class=" tsd-kind-module">
+						<a href="../modules/_commands_add_.html">&quot;commands/add&quot;</a>
+					</li>
+					<li class=" tsd-kind-module">
+						<a href="../modules/_commands_del_.html">&quot;commands/del&quot;</a>
+					</li>
+					<li class=" tsd-kind-module">
+						<a href="../modules/_commands_get_.html">&quot;commands/get&quot;</a>
+					</li>
+					<li class=" tsd-kind-module">
+						<a href="../modules/_commands_index_.html">&quot;commands/index&quot;</a>
+					</li>
+					<li class=" tsd-kind-module">
+						<a href="../modules/_commands_operate_.html">&quot;commands/operate&quot;</a>
+					</li>
+					<li class=" tsd-kind-module">
+						<a href="../modules/_commands_recipes_resolve_.html">&quot;commands/recipes/resolve&quot;</a>
+					</li>
+					<li class=" tsd-kind-module">
+						<a href="../modules/_commands_set_.html">&quot;commands/set&quot;</a>
+					</li>
+					<li class=" tsd-kind-module">
+						<a href="../modules/_commands_util_.html">&quot;commands/util&quot;</a>
+					</li>
+					<li class=" tsd-kind-module">
+						<a href="../modules/_index_.html">&quot;index&quot;</a>
+					</li>
+					<li class="current tsd-kind-module">
+						<a href="../modules/_types_.html">&quot;types&quot;</a>
+					</li>
+					<li class=" tsd-kind-module">
+						<a href="../modules/_util_.html">&quot;util&quot;</a>
+					</li>
+					<li class="label tsd-is-external">
+						<span>Externals</span>
+					</li>
+					<li class=" tsd-kind-module tsd-is-external">
+						<a href="../modules/_specs_usp_msg_1_1_.html">&quot;specs/usp-<wbr>msg-<wbr>1-1&quot;</a>
+					</li>
+					<li class=" tsd-kind-module tsd-is-external">
+						<a href="../modules/_specs_usp_record_1_1_.html">&quot;specs/usp-<wbr>record-<wbr>1-1&quot;</a>
+					</li>
+				</ul>
+			</nav>
+			<nav class="tsd-navigation secondary menu-sticky">
+				<ul class="before-current">
+					<li class=" tsd-kind-interface tsd-parent-kind-module">
+						<a href="_types_.connectionevents.html" class="tsd-kind-icon">Connection<wbr>Events</a>
+					</li>
+					<li class=" tsd-kind-interface tsd-parent-kind-module">
+						<a href="_types_.connectionoptions.html" class="tsd-kind-icon">Connection<wbr>Options</a>
+					</li>
+					<li class=" tsd-kind-interface tsd-parent-kind-module tsd-is-not-exported">
+						<a href="_types_.operateoptions.html" class="tsd-kind-icon">Operate<wbr>Options</a>
+					</li>
+					<li class=" tsd-kind-interface tsd-parent-kind-module">
+						<a href="_types_.pbrequestbody.html" class="tsd-kind-icon">Pb<wbr>Request<wbr>Body</a>
+					</li>
+					<li class=" tsd-kind-interface tsd-parent-kind-module">
+						<a href="_types_.pbrequestheader.html" class="tsd-kind-icon">Pb<wbr>Request<wbr>Header</a>
+					</li>
+					<li class=" tsd-kind-interface tsd-parent-kind-module">
+						<a href="_types_.pbrequestmessage.html" class="tsd-kind-icon">Pb<wbr>Request<wbr>Message</a>
+					</li>
+				</ul>
+				<ul class="current">
+					<li class="current tsd-kind-interface tsd-parent-kind-module">
+						<a href="_types_.recipeobject.html" class="tsd-kind-icon">Recipe<wbr>Object</a>
+						<ul>
+							<li class=" tsd-kind-property tsd-parent-kind-interface">
+								<a href="_types_.recipeobject.html#make" class="tsd-kind-icon">make</a>
+							</li>
+							<li class=" tsd-kind-property tsd-parent-kind-interface">
+								<a href="_types_.recipeobject.html#name" class="tsd-kind-icon">name</a>
+							</li>
+						</ul>
+					</li>
+				</ul>
+				<ul class="after-current">
+					<li class=" tsd-kind-interface tsd-parent-kind-module">
+						<a href="_types_.usp.html" class="tsd-kind-icon">USP</a>
+					</li>
+					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
+						<a href="../modules/_types_.html#addcommand" class="tsd-kind-icon">Add<wbr>Command</a>
+					</li>
+					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
+						<a href="../modules/_types_.html#callfn" class="tsd-kind-icon">Call<wbr>Fn</a>
+					</li>
+					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
+						<a href="../modules/_types_.html#command" class="tsd-kind-icon">Command</a>
+					</li>
+					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
+						<a href="../modules/_types_.html#commandobject" class="tsd-kind-icon">Command<wbr>Object</a>
+					</li>
+					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
+						<a href="../modules/_types_.html#commandtrigger" class="tsd-kind-icon">Command<wbr>Trigger</a>
+					</li>
+					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
+						<a href="../modules/_types_.html#commandtype" class="tsd-kind-icon">Command<wbr>Type</a>
+					</li>
+					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
+						<a href="../modules/_types_.html#decodefn" class="tsd-kind-icon">Decode<wbr>Fn</a>
+					</li>
+					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
+						<a href="../modules/_types_.html#delcommand" class="tsd-kind-icon">Del<wbr>Command</a>
+					</li>
+					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
+						<a href="../modules/_types_.html#encodeargs" class="tsd-kind-icon">Encode<wbr>Args</a>
+					</li>
+					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
+						<a href="../modules/_types_.html#encodefn" class="tsd-kind-icon">Encode<wbr>Fn</a>
+					</li>
+					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
+						<a href="../modules/_types_.html#getcommand" class="tsd-kind-icon">Get<wbr>Command</a>
+					</li>
+					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
+						<a href="../modules/_types_.html#getresponse" class="tsd-kind-icon">Get<wbr>Response</a>
+					</li>
+					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
+						<a href="../modules/_types_.html#getreturn" class="tsd-kind-icon">Get<wbr>Return</a>
+					</li>
+					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
+						<a href="../modules/_types_.html#makefn" class="tsd-kind-icon">Make<wbr>Fn</a>
+					</li>
+					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
+						<a href="../modules/_types_.html#makerecipefn" class="tsd-kind-icon">Make<wbr>Recipe<wbr>Fn</a>
+					</li>
+					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
+						<a href="../modules/_types_.html#operateclearfn" class="tsd-kind-icon">Operate<wbr>Clear<wbr>Fn</a>
+					</li>
+					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
+						<a href="../modules/_types_.html#operatecommand" class="tsd-kind-icon">Operate<wbr>Command</a>
+					</li>
+					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
+						<a href="../modules/_types_.html#operatefn" class="tsd-kind-icon">Operate<wbr>Fn</a>
+					</li>
+					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
+						<a href="../modules/_types_.html#pbrequestcommand" class="tsd-kind-icon">Pb<wbr>Request<wbr>Command</a>
+					</li>
+					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
+						<a href="../modules/_types_.html#pbrequestcommandadd" class="tsd-kind-icon">Pb<wbr>Request<wbr>Command<wbr>Add</a>
+					</li>
+					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
+						<a href="../modules/_types_.html#pbrequestcommanddel" class="tsd-kind-icon">Pb<wbr>Request<wbr>Command<wbr>Del</a>
+					</li>
+					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
+						<a href="../modules/_types_.html#pbrequestcommandget" class="tsd-kind-icon">Pb<wbr>Request<wbr>Command<wbr>Get</a>
+					</li>
+					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
+						<a href="../modules/_types_.html#pbrequestcommandoperate" class="tsd-kind-icon">Pb<wbr>Request<wbr>Command<wbr>Operate</a>
+					</li>
+					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
+						<a href="../modules/_types_.html#pbrequestcommandset" class="tsd-kind-icon">Pb<wbr>Request<wbr>Command<wbr>Set</a>
+					</li>
+					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
+						<a href="../modules/_types_.html#recipe" class="tsd-kind-icon">Recipe</a>
+					</li>
+					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
+						<a href="../modules/_types_.html#resolverecipe" class="tsd-kind-icon">Resolve<wbr>Recipe</a>
+					</li>
+					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
+						<a href="../modules/_types_.html#response" class="tsd-kind-icon">Response</a>
+					</li>
+					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
+						<a href="../modules/_types_.html#setcommand" class="tsd-kind-icon">Set<wbr>Command</a>
+					</li>
+				</ul>
+			</nav>
+		</div>
+	</div>
+</div>
+<footer class="with-border-bottom">
+	<div class="container">
+		<h2>Legend</h2>
+		<div class="tsd-legend-group">
+			<ul class="tsd-legend">
+				<li class="tsd-kind-variable"><span class="tsd-kind-icon">Variable</span></li>
+				<li class="tsd-kind-function"><span class="tsd-kind-icon">Function</span></li>
+				<li class="tsd-kind-type-alias"><span class="tsd-kind-icon">Type alias</span></li>
+			</ul>
+			<ul class="tsd-legend">
+				<li class="tsd-kind-interface"><span class="tsd-kind-icon">Interface</span></li>
+				<li class="tsd-kind-property tsd-parent-kind-interface"><span class="tsd-kind-icon">Property</span></li>
+			</ul>
+		</div>
+	</div>
+</footer>
+<div class="container tsd-generator">
+	<p>Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p>
+</div>
+<div class="overlay"></div>
+<script src="../assets/js/main.js"></script>
+</body>
+</html>
\ No newline at end of file
diff --git a/public/interfaces/_types_.usp.html b/public/interfaces/_types_.usp.html
new file mode 100644
index 0000000000000000000000000000000000000000..79604ef64c27b119b8b52a6cc976119fc6e4939c
--- /dev/null
+++ b/public/interfaces/_types_.usp.html
@@ -0,0 +1,508 @@
+<!doctype html>
+<html class="default no-js">
+<head>
+	<meta charset="utf-8">
+	<meta http-equiv="X-UA-Compatible" content="IE=edge">
+	<title>USP | usp-js</title>
+	<meta name="description" content="Documentation for usp-js">
+	<meta name="viewport" content="width=device-width, initial-scale=1">
+	<link rel="stylesheet" href="../assets/css/main.css">
+</head>
+<body>
+<header>
+	<div class="tsd-page-toolbar">
+		<div class="container">
+			<div class="table-wrap">
+				<div class="table-cell" id="tsd-search" data-index="../assets/js/search.json" data-base="..">
+					<div class="field">
+						<label for="tsd-search-field" class="tsd-widget search no-caption">Search</label>
+						<input id="tsd-search-field" type="text" />
+					</div>
+					<ul class="results">
+						<li class="state loading">Preparing search index...</li>
+						<li class="state failure">The search index is not available</li>
+					</ul>
+					<a href="../index.html" class="title">usp-js</a>
+				</div>
+				<div class="table-cell" id="tsd-widgets">
+					<div id="tsd-filter">
+						<a href="#" class="tsd-widget options no-caption" data-toggle="options">Options</a>
+						<div class="tsd-filter-group">
+							<div class="tsd-select" id="tsd-filter-visibility">
+								<span class="tsd-select-label">All</span>
+								<ul class="tsd-select-list">
+									<li data-value="public">Public</li>
+									<li data-value="protected">Public/Protected</li>
+									<li data-value="private" class="selected">All</li>
+								</ul>
+							</div>
+							<input type="checkbox" id="tsd-filter-inherited" checked />
+							<label class="tsd-widget" for="tsd-filter-inherited">Inherited</label>
+							<input type="checkbox" id="tsd-filter-externals" checked />
+							<label class="tsd-widget" for="tsd-filter-externals">Externals</label>
+							<input type="checkbox" id="tsd-filter-only-exported" />
+							<label class="tsd-widget" for="tsd-filter-only-exported">Only exported</label>
+						</div>
+					</div>
+					<a href="#" class="tsd-widget menu no-caption" data-toggle="menu">Menu</a>
+				</div>
+			</div>
+		</div>
+	</div>
+	<div class="tsd-page-title">
+		<div class="container">
+			<ul class="tsd-breadcrumb">
+				<li>
+					<a href="../globals.html">Globals</a>
+				</li>
+				<li>
+					<a href="../modules/_types_.html">&quot;types&quot;</a>
+				</li>
+				<li>
+					<a href="_types_.usp.html">USP</a>
+				</li>
+			</ul>
+			<h1>Interface USP</h1>
+		</div>
+	</div>
+</header>
+<div class="container container-main">
+	<div class="row">
+		<div class="col-8 col-content">
+			<section class="tsd-panel tsd-comment">
+				<div class="tsd-comment tsd-typography">
+					<div class="lead">
+						<p>Device API</p>
+					</div>
+				</div>
+			</section>
+			<section class="tsd-panel tsd-hierarchy">
+				<h3>Hierarchy</h3>
+				<ul class="tsd-hierarchy">
+					<li>
+						<span class="target">USP</span>
+					</li>
+				</ul>
+			</section>
+			<section class="tsd-panel-group tsd-index-group">
+				<h2>Index</h2>
+				<section class="tsd-panel tsd-index-panel">
+					<div class="tsd-index-content">
+						<section class="tsd-index-section ">
+							<h3>Properties</h3>
+							<ul class="tsd-index-list">
+								<li class="tsd-kind-property tsd-parent-kind-interface"><a href="_types_.usp.html#add" class="tsd-kind-icon">add</a></li>
+								<li class="tsd-kind-property tsd-parent-kind-interface"><a href="_types_.usp.html#del" class="tsd-kind-icon">del</a></li>
+								<li class="tsd-kind-property tsd-parent-kind-interface"><a href="_types_.usp.html#disconnect" class="tsd-kind-icon">disconnect</a></li>
+								<li class="tsd-kind-property tsd-parent-kind-interface"><a href="_types_.usp.html#get" class="tsd-kind-icon">get</a></li>
+								<li class="tsd-kind-property tsd-parent-kind-interface"><a href="_types_.usp.html#operate" class="tsd-kind-icon">operate</a></li>
+								<li class="tsd-kind-property tsd-parent-kind-interface"><a href="_types_.usp.html#resolve" class="tsd-kind-icon">resolve</a></li>
+								<li class="tsd-kind-property tsd-parent-kind-interface"><a href="_types_.usp.html#set" class="tsd-kind-icon">set</a></li>
+							</ul>
+						</section>
+					</div>
+				</section>
+			</section>
+			<section class="tsd-panel-group tsd-member-group ">
+				<h2>Properties</h2>
+				<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-interface">
+					<a name="add" class="tsd-anchor"></a>
+					<h3>add</h3>
+					<div class="tsd-signature tsd-kind-icon">add<span class="tsd-signature-symbol">:</span> <a href="../modules/_types_.html#addcommand" class="tsd-signature-type">AddCommand</a></div>
+					<aside class="tsd-sources">
+						<ul>
+							<li>Defined in types.ts:159</li>
+						</ul>
+					</aside>
+					<div class="tsd-comment tsd-typography">
+						<div class="lead">
+							<p>Add object to path</p>
+						</div>
+						<dl class="tsd-comment-tags">
+							<dt>param</dt>
+							<dd><p>Path to add to (e.g. &quot;Device.NAT.PortMapping.&quot;)</p>
+							</dd>
+							<dt>param</dt>
+							<dd><p>Optional object to add (if skipped will use default values)</p>
+							</dd>
+							<dt>returns</dt>
+							<dd><p>Full path of new object</p>
+								<pre><code><span class="hljs-keyword">await</span> usp.<span class="hljs-keyword">add</span>(<span class="hljs-string">&quot;Device.NAT.PortMapping.&quot;</span>)</code></pre>
+							</dd>
+						</dl>
+					</div>
+				</section>
+				<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-interface">
+					<a name="del" class="tsd-anchor"></a>
+					<h3>del</h3>
+					<div class="tsd-signature tsd-kind-icon">del<span class="tsd-signature-symbol">:</span> <a href="../modules/_types_.html#delcommand" class="tsd-signature-type">DelCommand</a></div>
+					<aside class="tsd-sources">
+						<ul>
+							<li>Defined in types.ts:168</li>
+						</ul>
+					</aside>
+					<div class="tsd-comment tsd-typography">
+						<div class="lead">
+							<p>Delete object at path</p>
+						</div>
+						<dl class="tsd-comment-tags">
+							<dt>param</dt>
+							<dd><p>Full path to delete (e.g. &quot;Device.NAT.PortMapping.1.&quot;)</p>
+								<pre><code><span class="hljs-selector-tag">await</span> <span class="hljs-selector-tag">usp</span><span class="hljs-selector-class">.del</span>(&quot;<span class="hljs-selector-tag">Device</span><span class="hljs-selector-class">.NAT</span><span class="hljs-selector-class">.PortMapping</span>.1.&quot;)</code></pre>
+							</dd>
+						</dl>
+					</div>
+				</section>
+				<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-interface">
+					<a name="disconnect" class="tsd-anchor"></a>
+					<h3>disconnect</h3>
+					<div class="tsd-signature tsd-kind-icon">disconnect<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol"> =&gt; </span><span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">&gt;</span></div>
+					<aside class="tsd-sources">
+						<ul>
+							<li>Defined in types.ts:186</li>
+						</ul>
+					</aside>
+					<div class="tsd-comment tsd-typography">
+						<div class="lead">
+							<p>Disconenct from device</p>
+							<pre><code>await usp.<span class="hljs-built_in">disconnect</span>()</code></pre>
+						</div>
+					</div>
+					<div class="tsd-type-declaration">
+						<h4>Type declaration</h4>
+						<ul class="tsd-parameters">
+							<li class="tsd-parameter-signature">
+								<ul class="tsd-signatures tsd-kind-type-literal tsd-parent-kind-property">
+									<li class="tsd-signature tsd-kind-icon"><span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">&gt;</span></li>
+								</ul>
+								<ul class="tsd-descriptions">
+									<li class="tsd-description">
+										<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">&gt;</span></h4>
+									</li>
+								</ul>
+							</li>
+						</ul>
+					</div>
+				</section>
+				<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-interface">
+					<a name="get" class="tsd-anchor"></a>
+					<h3>get</h3>
+					<div class="tsd-signature tsd-kind-icon">get<span class="tsd-signature-symbol">:</span> <a href="../modules/_types_.html#getcommand" class="tsd-signature-type">GetCommand</a></div>
+					<aside class="tsd-sources">
+						<ul>
+							<li>Defined in types.ts:123</li>
+						</ul>
+					</aside>
+					<div class="tsd-comment tsd-typography">
+						<div class="lead">
+							<p>Get value at path</p>
+						</div>
+						<dl class="tsd-comment-tags">
+							<dt>param</dt>
+							<dd><p>Location of value (e.g. &quot;Device.DeviceInfo.&quot;)</p>
+								<pre><code><span class="hljs-keyword">await</span> usp.<span class="hljs-keyword">get</span>(<span class="hljs-string">&quot;Device.WiFi.Radio.1.&quot;</span>)
+<span class="hljs-comment">// or</span>
+<span class="hljs-keyword">await</span> usp.<span class="hljs-keyword">get</span>([<span class="hljs-string">&quot;Device.WiFi.Radio.1.&quot;</span>, <span class="hljs-string">&quot;Device.WiFi.Radio.2.&quot;</span>])</code></pre>
+							</dd>
+						</dl>
+					</div>
+				</section>
+				<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-interface">
+					<a name="operate" class="tsd-anchor"></a>
+					<h3>operate</h3>
+					<div class="tsd-signature tsd-kind-icon">operate<span class="tsd-signature-symbol">:</span> <a href="../modules/_types_.html#operatecommand" class="tsd-signature-type">OperateCommand</a></div>
+					<aside class="tsd-sources">
+						<ul>
+							<li>Defined in types.ts:148</li>
+						</ul>
+					</aside>
+					<div class="tsd-comment tsd-typography">
+						<div class="lead">
+							<p>Create a command</p>
+						</div>
+						<dl class="tsd-comment-tags">
+							<dt>param</dt>
+							<dd><p>Full path of command (e.g. &quot;Device.IP.Diagnostics.IPPing()&quot;)</p>
+							</dd>
+							<dt>param</dt>
+							<dd><p>Subscription options (not required)</p>
+							</dd>
+							<dt>returns</dt>
+							<dd><p>Function that executes command</p>
+								<pre><code><span class="hljs-keyword">const</span> [ping, cleanPing] = <span class="hljs-keyword">await</span> usp.operate(<span class="hljs-string">&quot;Device.IP.Diagnostics.IPPing()&quot;</span>)
+<span class="hljs-keyword">const</span> results = <span class="hljs-keyword">await</span> ping({ Host: <span class="hljs-string">&quot;iopsys.eu&quot;</span> })
+<span class="hljs-keyword">await</span> cleanPing()</code></pre>
+							</dd>
+						</dl>
+					</div>
+				</section>
+				<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-interface">
+					<a name="resolve" class="tsd-anchor"></a>
+					<h3>resolve</h3>
+					<div class="tsd-signature tsd-kind-icon">resolve<span class="tsd-signature-symbol">:</span> <a href="../modules/_types_.html#resolverecipe" class="tsd-signature-type">ResolveRecipe</a></div>
+					<aside class="tsd-sources">
+						<ul>
+							<li>Defined in types.ts:178</li>
+						</ul>
+					</aside>
+					<div class="tsd-comment tsd-typography">
+						<div class="lead">
+							<p>Resolve references in message</p>
+						</div>
+						<dl class="tsd-comment-tags">
+							<dt>param</dt>
+							<dd><p>Message with reference in it</p>
+							</dd>
+							<dt>param</dt>
+							<dd><p>Optional level of nesting to resolve to (avoid using high numbers)</p>
+								<pre><code><span class="hljs-selector-tag">await</span> <span class="hljs-selector-tag">usp</span><span class="hljs-selector-class">.get</span>(&quot;<span class="hljs-selector-tag">Device</span><span class="hljs-selector-class">.WiFi</span><span class="hljs-selector-class">.Radio</span>.1.&quot;)<span class="hljs-selector-class">.then</span>(<span class="hljs-selector-tag">device</span><span class="hljs-selector-class">.resolve</span>)</code></pre>
+							</dd>
+						</dl>
+					</div>
+				</section>
+				<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-interface">
+					<a name="set" class="tsd-anchor"></a>
+					<h3>set</h3>
+					<div class="tsd-signature tsd-kind-icon">set<span class="tsd-signature-symbol">:</span> <a href="../modules/_types_.html#setcommand" class="tsd-signature-type">SetCommand</a></div>
+					<aside class="tsd-sources">
+						<ul>
+							<li>Defined in types.ts:135</li>
+						</ul>
+					</aside>
+					<div class="tsd-comment tsd-typography">
+						<div class="lead">
+							<p>Set value at path</p>
+						</div>
+						<dl class="tsd-comment-tags">
+							<dt>param</dt>
+							<dd><p>Location of value (e.g. &quot;Device.DeviceInfo.&quot;)</p>
+							</dd>
+							<dt>param</dt>
+							<dd><p>Value to assign</p>
+								<pre><code><span class="hljs-selector-tag">await</span> <span class="hljs-selector-tag">usp</span><span class="hljs-selector-class">.set</span>(&quot;<span class="hljs-selector-tag">Device</span><span class="hljs-selector-class">.WiFi</span><span class="hljs-selector-class">.Radio</span>.1.&quot;, { <span class="hljs-attribute">Name</span>: <span class="hljs-string">&quot;radio-1&quot;</span> })
+// <span class="hljs-selector-tag">or</span>
+<span class="hljs-selector-tag">await</span> <span class="hljs-selector-tag">usp</span><span class="hljs-selector-class">.set</span>(&quot;<span class="hljs-selector-tag">Device</span><span class="hljs-selector-class">.WiFi</span><span class="hljs-selector-class">.Radio</span>.1<span class="hljs-selector-class">.Name</span>&quot;, &quot;<span class="hljs-selector-tag">radio-1</span>&quot;)</code></pre>
+							</dd>
+						</dl>
+					</div>
+				</section>
+			</section>
+		</div>
+		<div class="col-4 col-menu menu-sticky-wrap menu-highlight">
+			<nav class="tsd-navigation primary">
+				<ul>
+					<li class="globals  ">
+						<a href="../globals.html"><em>Globals</em></a>
+					</li>
+					<li class="label tsd-is-external">
+						<span>Internals</span>
+					</li>
+					<li class=" tsd-kind-module">
+						<a href="../modules/_commands_add_.html">&quot;commands/add&quot;</a>
+					</li>
+					<li class=" tsd-kind-module">
+						<a href="../modules/_commands_del_.html">&quot;commands/del&quot;</a>
+					</li>
+					<li class=" tsd-kind-module">
+						<a href="../modules/_commands_get_.html">&quot;commands/get&quot;</a>
+					</li>
+					<li class=" tsd-kind-module">
+						<a href="../modules/_commands_index_.html">&quot;commands/index&quot;</a>
+					</li>
+					<li class=" tsd-kind-module">
+						<a href="../modules/_commands_operate_.html">&quot;commands/operate&quot;</a>
+					</li>
+					<li class=" tsd-kind-module">
+						<a href="../modules/_commands_recipes_resolve_.html">&quot;commands/recipes/resolve&quot;</a>
+					</li>
+					<li class=" tsd-kind-module">
+						<a href="../modules/_commands_set_.html">&quot;commands/set&quot;</a>
+					</li>
+					<li class=" tsd-kind-module">
+						<a href="../modules/_commands_util_.html">&quot;commands/util&quot;</a>
+					</li>
+					<li class=" tsd-kind-module">
+						<a href="../modules/_index_.html">&quot;index&quot;</a>
+					</li>
+					<li class="current tsd-kind-module">
+						<a href="../modules/_types_.html">&quot;types&quot;</a>
+					</li>
+					<li class=" tsd-kind-module">
+						<a href="../modules/_util_.html">&quot;util&quot;</a>
+					</li>
+					<li class="label tsd-is-external">
+						<span>Externals</span>
+					</li>
+					<li class=" tsd-kind-module tsd-is-external">
+						<a href="../modules/_specs_usp_msg_1_1_.html">&quot;specs/usp-<wbr>msg-<wbr>1-1&quot;</a>
+					</li>
+					<li class=" tsd-kind-module tsd-is-external">
+						<a href="../modules/_specs_usp_record_1_1_.html">&quot;specs/usp-<wbr>record-<wbr>1-1&quot;</a>
+					</li>
+				</ul>
+			</nav>
+			<nav class="tsd-navigation secondary menu-sticky">
+				<ul class="before-current">
+					<li class=" tsd-kind-interface tsd-parent-kind-module">
+						<a href="_types_.connectionevents.html" class="tsd-kind-icon">Connection<wbr>Events</a>
+					</li>
+					<li class=" tsd-kind-interface tsd-parent-kind-module">
+						<a href="_types_.connectionoptions.html" class="tsd-kind-icon">Connection<wbr>Options</a>
+					</li>
+					<li class=" tsd-kind-interface tsd-parent-kind-module tsd-is-not-exported">
+						<a href="_types_.operateoptions.html" class="tsd-kind-icon">Operate<wbr>Options</a>
+					</li>
+					<li class=" tsd-kind-interface tsd-parent-kind-module">
+						<a href="_types_.pbrequestbody.html" class="tsd-kind-icon">Pb<wbr>Request<wbr>Body</a>
+					</li>
+					<li class=" tsd-kind-interface tsd-parent-kind-module">
+						<a href="_types_.pbrequestheader.html" class="tsd-kind-icon">Pb<wbr>Request<wbr>Header</a>
+					</li>
+					<li class=" tsd-kind-interface tsd-parent-kind-module">
+						<a href="_types_.pbrequestmessage.html" class="tsd-kind-icon">Pb<wbr>Request<wbr>Message</a>
+					</li>
+					<li class=" tsd-kind-interface tsd-parent-kind-module">
+						<a href="_types_.recipeobject.html" class="tsd-kind-icon">Recipe<wbr>Object</a>
+					</li>
+				</ul>
+				<ul class="current">
+					<li class="current tsd-kind-interface tsd-parent-kind-module">
+						<a href="_types_.usp.html" class="tsd-kind-icon">USP</a>
+						<ul>
+							<li class=" tsd-kind-property tsd-parent-kind-interface">
+								<a href="_types_.usp.html#add" class="tsd-kind-icon">add</a>
+							</li>
+							<li class=" tsd-kind-property tsd-parent-kind-interface">
+								<a href="_types_.usp.html#del" class="tsd-kind-icon">del</a>
+							</li>
+							<li class=" tsd-kind-property tsd-parent-kind-interface">
+								<a href="_types_.usp.html#disconnect" class="tsd-kind-icon">disconnect</a>
+							</li>
+							<li class=" tsd-kind-property tsd-parent-kind-interface">
+								<a href="_types_.usp.html#get" class="tsd-kind-icon">get</a>
+							</li>
+							<li class=" tsd-kind-property tsd-parent-kind-interface">
+								<a href="_types_.usp.html#operate" class="tsd-kind-icon">operate</a>
+							</li>
+							<li class=" tsd-kind-property tsd-parent-kind-interface">
+								<a href="_types_.usp.html#resolve" class="tsd-kind-icon">resolve</a>
+							</li>
+							<li class=" tsd-kind-property tsd-parent-kind-interface">
+								<a href="_types_.usp.html#set" class="tsd-kind-icon">set</a>
+							</li>
+						</ul>
+					</li>
+				</ul>
+				<ul class="after-current">
+					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
+						<a href="../modules/_types_.html#addcommand" class="tsd-kind-icon">Add<wbr>Command</a>
+					</li>
+					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
+						<a href="../modules/_types_.html#callfn" class="tsd-kind-icon">Call<wbr>Fn</a>
+					</li>
+					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
+						<a href="../modules/_types_.html#command" class="tsd-kind-icon">Command</a>
+					</li>
+					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
+						<a href="../modules/_types_.html#commandobject" class="tsd-kind-icon">Command<wbr>Object</a>
+					</li>
+					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
+						<a href="../modules/_types_.html#commandtrigger" class="tsd-kind-icon">Command<wbr>Trigger</a>
+					</li>
+					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
+						<a href="../modules/_types_.html#commandtype" class="tsd-kind-icon">Command<wbr>Type</a>
+					</li>
+					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
+						<a href="../modules/_types_.html#decodefn" class="tsd-kind-icon">Decode<wbr>Fn</a>
+					</li>
+					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
+						<a href="../modules/_types_.html#delcommand" class="tsd-kind-icon">Del<wbr>Command</a>
+					</li>
+					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
+						<a href="../modules/_types_.html#encodeargs" class="tsd-kind-icon">Encode<wbr>Args</a>
+					</li>
+					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
+						<a href="../modules/_types_.html#encodefn" class="tsd-kind-icon">Encode<wbr>Fn</a>
+					</li>
+					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
+						<a href="../modules/_types_.html#getcommand" class="tsd-kind-icon">Get<wbr>Command</a>
+					</li>
+					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
+						<a href="../modules/_types_.html#getresponse" class="tsd-kind-icon">Get<wbr>Response</a>
+					</li>
+					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
+						<a href="../modules/_types_.html#getreturn" class="tsd-kind-icon">Get<wbr>Return</a>
+					</li>
+					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
+						<a href="../modules/_types_.html#makefn" class="tsd-kind-icon">Make<wbr>Fn</a>
+					</li>
+					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
+						<a href="../modules/_types_.html#makerecipefn" class="tsd-kind-icon">Make<wbr>Recipe<wbr>Fn</a>
+					</li>
+					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
+						<a href="../modules/_types_.html#operateclearfn" class="tsd-kind-icon">Operate<wbr>Clear<wbr>Fn</a>
+					</li>
+					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
+						<a href="../modules/_types_.html#operatecommand" class="tsd-kind-icon">Operate<wbr>Command</a>
+					</li>
+					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
+						<a href="../modules/_types_.html#operatefn" class="tsd-kind-icon">Operate<wbr>Fn</a>
+					</li>
+					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
+						<a href="../modules/_types_.html#pbrequestcommand" class="tsd-kind-icon">Pb<wbr>Request<wbr>Command</a>
+					</li>
+					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
+						<a href="../modules/_types_.html#pbrequestcommandadd" class="tsd-kind-icon">Pb<wbr>Request<wbr>Command<wbr>Add</a>
+					</li>
+					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
+						<a href="../modules/_types_.html#pbrequestcommanddel" class="tsd-kind-icon">Pb<wbr>Request<wbr>Command<wbr>Del</a>
+					</li>
+					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
+						<a href="../modules/_types_.html#pbrequestcommandget" class="tsd-kind-icon">Pb<wbr>Request<wbr>Command<wbr>Get</a>
+					</li>
+					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
+						<a href="../modules/_types_.html#pbrequestcommandoperate" class="tsd-kind-icon">Pb<wbr>Request<wbr>Command<wbr>Operate</a>
+					</li>
+					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
+						<a href="../modules/_types_.html#pbrequestcommandset" class="tsd-kind-icon">Pb<wbr>Request<wbr>Command<wbr>Set</a>
+					</li>
+					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
+						<a href="../modules/_types_.html#recipe" class="tsd-kind-icon">Recipe</a>
+					</li>
+					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
+						<a href="../modules/_types_.html#resolverecipe" class="tsd-kind-icon">Resolve<wbr>Recipe</a>
+					</li>
+					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
+						<a href="../modules/_types_.html#response" class="tsd-kind-icon">Response</a>
+					</li>
+					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
+						<a href="../modules/_types_.html#setcommand" class="tsd-kind-icon">Set<wbr>Command</a>
+					</li>
+				</ul>
+			</nav>
+		</div>
+	</div>
+</div>
+<footer class="with-border-bottom">
+	<div class="container">
+		<h2>Legend</h2>
+		<div class="tsd-legend-group">
+			<ul class="tsd-legend">
+				<li class="tsd-kind-variable"><span class="tsd-kind-icon">Variable</span></li>
+				<li class="tsd-kind-function"><span class="tsd-kind-icon">Function</span></li>
+				<li class="tsd-kind-type-alias"><span class="tsd-kind-icon">Type alias</span></li>
+			</ul>
+			<ul class="tsd-legend">
+				<li class="tsd-kind-interface"><span class="tsd-kind-icon">Interface</span></li>
+				<li class="tsd-kind-property tsd-parent-kind-interface"><span class="tsd-kind-icon">Property</span></li>
+			</ul>
+		</div>
+	</div>
+</footer>
+<div class="container tsd-generator">
+	<p>Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p>
+</div>
+<div class="overlay"></div>
+<script src="../assets/js/main.js"></script>
+</body>
+</html>
\ No newline at end of file
diff --git a/public/interfaces/_types_d_.addmessage.html b/public/interfaces/_types_d_.addmessage.html
deleted file mode 100644
index df42a3fc06a2645b21a5afddc3c52f701e01f26c..0000000000000000000000000000000000000000
--- a/public/interfaces/_types_d_.addmessage.html
+++ /dev/null
@@ -1,325 +0,0 @@
-<!doctype html>
-<html class="default no-js">
-<head>
-	<meta charset="utf-8">
-	<meta http-equiv="X-UA-Compatible" content="IE=edge">
-	<title>AddMessage | usp-js</title>
-	<meta name="description" content="Documentation for usp-js">
-	<meta name="viewport" content="width=device-width, initial-scale=1">
-	<link rel="stylesheet" href="../assets/css/main.css">
-</head>
-<body>
-<header>
-	<div class="tsd-page-toolbar">
-		<div class="container">
-			<div class="table-wrap">
-				<div class="table-cell" id="tsd-search" data-index="../assets/js/search.json" data-base="..">
-					<div class="field">
-						<label for="tsd-search-field" class="tsd-widget search no-caption">Search</label>
-						<input id="tsd-search-field" type="text" />
-					</div>
-					<ul class="results">
-						<li class="state loading">Preparing search index...</li>
-						<li class="state failure">The search index is not available</li>
-					</ul>
-					<a href="../index.html" class="title">usp-js</a>
-				</div>
-				<div class="table-cell" id="tsd-widgets">
-					<div id="tsd-filter">
-						<a href="#" class="tsd-widget options no-caption" data-toggle="options">Options</a>
-						<div class="tsd-filter-group">
-							<div class="tsd-select" id="tsd-filter-visibility">
-								<span class="tsd-select-label">All</span>
-								<ul class="tsd-select-list">
-									<li data-value="public">Public</li>
-									<li data-value="protected">Public/Protected</li>
-									<li data-value="private" class="selected">All</li>
-								</ul>
-							</div>
-							<input type="checkbox" id="tsd-filter-inherited" checked />
-							<label class="tsd-widget" for="tsd-filter-inherited">Inherited</label>
-							<input type="checkbox" id="tsd-filter-externals" checked />
-							<label class="tsd-widget" for="tsd-filter-externals">Externals</label>
-							<input type="checkbox" id="tsd-filter-only-exported" />
-							<label class="tsd-widget" for="tsd-filter-only-exported">Only exported</label>
-						</div>
-					</div>
-					<a href="#" class="tsd-widget menu no-caption" data-toggle="menu">Menu</a>
-				</div>
-			</div>
-		</div>
-	</div>
-	<div class="tsd-page-title">
-		<div class="container">
-			<ul class="tsd-breadcrumb">
-				<li>
-					<a href="../globals.html">Globals</a>
-				</li>
-				<li>
-					<a href="../modules/_types_d_.html">&quot;types.d&quot;</a>
-				</li>
-				<li>
-					<a href="_types_d_.addmessage.html">AddMessage</a>
-				</li>
-			</ul>
-			<h1>Interface AddMessage</h1>
-		</div>
-	</div>
-</header>
-<div class="container container-main">
-	<div class="row">
-		<div class="col-8 col-content">
-			<section class="tsd-panel tsd-comment">
-				<div class="tsd-comment tsd-typography">
-					<div class="lead">
-						<p>Add Message</p>
-					</div>
-				</div>
-			</section>
-			<section class="tsd-panel tsd-hierarchy">
-				<h3>Hierarchy</h3>
-				<ul class="tsd-hierarchy">
-					<li>
-						<a href="_types_d_.basemessage.html" class="tsd-signature-type">BaseMessage</a>
-						<ul class="tsd-hierarchy">
-							<li>
-								<span class="target">AddMessage</span>
-							</li>
-						</ul>
-					</li>
-				</ul>
-			</section>
-			<section class="tsd-panel-group tsd-index-group">
-				<h2>Index</h2>
-				<section class="tsd-panel tsd-index-panel">
-					<div class="tsd-index-content">
-						<section class="tsd-index-section ">
-							<h3>Properties</h3>
-							<ul class="tsd-index-list">
-								<li class="tsd-kind-property tsd-parent-kind-interface tsd-is-overwrite"><a href="_types_d_.addmessage.html#data" class="tsd-kind-icon">data</a></li>
-								<li class="tsd-kind-property tsd-parent-kind-interface tsd-is-inherited"><a href="_types_d_.addmessage.html#id" class="tsd-kind-icon">id</a></li>
-								<li class="tsd-kind-property tsd-parent-kind-interface tsd-is-inherited"><a href="_types_d_.addmessage.html#path" class="tsd-kind-icon">path</a></li>
-								<li class="tsd-kind-property tsd-parent-kind-interface tsd-is-overwrite"><a href="_types_d_.addmessage.html#type" class="tsd-kind-icon">type</a></li>
-							</ul>
-						</section>
-					</div>
-				</section>
-			</section>
-			<section class="tsd-panel-group tsd-member-group ">
-				<h2>Properties</h2>
-				<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-interface tsd-is-overwrite">
-					<a name="data" class="tsd-anchor"></a>
-					<h3>data</h3>
-					<div class="tsd-signature tsd-kind-icon">data<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span></div>
-					<aside class="tsd-sources">
-						<p>Overrides <a href="_types_d_.basemessage.html">BaseMessage</a>.<a href="_types_d_.basemessage.html#data">data</a></p>
-						<ul>
-							<li>Defined in src/types.d.ts:191</li>
-						</ul>
-					</aside>
-				</section>
-				<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-interface tsd-is-inherited">
-					<a name="id" class="tsd-anchor"></a>
-					<h3>id</h3>
-					<div class="tsd-signature tsd-kind-icon">id<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span></div>
-					<aside class="tsd-sources">
-						<p>Inherited from <a href="_types_d_.basemessage.html">BaseMessage</a>.<a href="_types_d_.basemessage.html#id">id</a></p>
-						<ul>
-							<li>Defined in src/types.d.ts:154</li>
-						</ul>
-					</aside>
-				</section>
-				<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-interface tsd-is-inherited">
-					<a name="path" class="tsd-anchor"></a>
-					<h3>path</h3>
-					<div class="tsd-signature tsd-kind-icon">path<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span></div>
-					<aside class="tsd-sources">
-						<p>Inherited from <a href="_types_d_.basemessage.html">BaseMessage</a>.<a href="_types_d_.basemessage.html#path">path</a></p>
-						<ul>
-							<li>Defined in src/types.d.ts:156</li>
-						</ul>
-					</aside>
-				</section>
-				<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-interface tsd-is-overwrite">
-					<a name="type" class="tsd-anchor"></a>
-					<h3>type</h3>
-					<div class="tsd-signature tsd-kind-icon">type<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">"add"</span></div>
-					<aside class="tsd-sources">
-						<p>Overrides <a href="_types_d_.basemessage.html">BaseMessage</a>.<a href="_types_d_.basemessage.html#type">type</a></p>
-						<ul>
-							<li>Defined in src/types.d.ts:190</li>
-						</ul>
-					</aside>
-				</section>
-			</section>
-		</div>
-		<div class="col-4 col-menu menu-sticky-wrap menu-highlight">
-			<nav class="tsd-navigation primary">
-				<ul>
-					<li class="globals  ">
-						<a href="../globals.html"><em>Globals</em></a>
-					</li>
-					<li class=" tsd-kind-module">
-						<a href="../modules/_index_.html">&quot;index&quot;</a>
-					</li>
-					<li class=" tsd-kind-module">
-						<a href="../modules/_lib_.html">&quot;lib&quot;</a>
-					</li>
-					<li class=" tsd-kind-module">
-						<a href="../modules/_protocol_index_.html">&quot;protocol/index&quot;</a>
-					</li>
-					<li class=" tsd-kind-module">
-						<a href="../modules/_protocol_js_usp_protobuf_protomessage_.html">&quot;protocol/js-<wbr>usp-<wbr>protobuf/proto<wbr>Message&quot;</a>
-					</li>
-					<li class=" tsd-kind-module">
-						<a href="../modules/_protocol_lib_.html">&quot;protocol/lib&quot;</a>
-					</li>
-					<li class="current tsd-kind-module">
-						<a href="../modules/_types_d_.html">&quot;types.d&quot;</a>
-					</li>
-				</ul>
-			</nav>
-			<nav class="tsd-navigation secondary menu-sticky">
-				<ul class="before-current">
-				</ul>
-				<ul class="current">
-					<li class="current tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.addmessage.html" class="tsd-kind-icon">Add<wbr>Message</a>
-						<ul>
-							<li class=" tsd-kind-property tsd-parent-kind-interface tsd-is-overwrite">
-								<a href="_types_d_.addmessage.html#data" class="tsd-kind-icon">data</a>
-							</li>
-							<li class=" tsd-kind-property tsd-parent-kind-interface tsd-is-inherited">
-								<a href="_types_d_.addmessage.html#id" class="tsd-kind-icon">id</a>
-							</li>
-							<li class=" tsd-kind-property tsd-parent-kind-interface tsd-is-inherited">
-								<a href="_types_d_.addmessage.html#path" class="tsd-kind-icon">path</a>
-							</li>
-							<li class=" tsd-kind-property tsd-parent-kind-interface tsd-is-overwrite">
-								<a href="_types_d_.addmessage.html#type" class="tsd-kind-icon">type</a>
-							</li>
-						</ul>
-					</li>
-				</ul>
-				<ul class="after-current">
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.basemessage.html" class="tsd-kind-icon">Base<wbr>Message</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.connectevents.html" class="tsd-kind-icon">Connect<wbr>Events</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.connectoptions.html" class="tsd-kind-icon">Connect<wbr>Options</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.deletemessage.html" class="tsd-kind-icon">Delete<wbr>Message</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.device.html" class="tsd-kind-icon">Device</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.deviceerror.html" class="tsd-kind-icon">Device<wbr>Error</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.encodeargs.html" class="tsd-kind-icon">Encode<wbr>Args</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.errormessage.html" class="tsd-kind-icon">Error<wbr>Message</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.getmessage.html" class="tsd-kind-icon">Get<wbr>Message</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.initresult.html" class="tsd-kind-icon">Init<wbr>Result</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.mqttrequest.html" class="tsd-kind-icon">MQTTRequest</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.notifymessage.html" class="tsd-kind-icon">Notify<wbr>Message</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.operatemessage.html" class="tsd-kind-icon">Operate<wbr>Message</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.operateoptions.html" class="tsd-kind-icon">Operate<wbr>Options</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.protocol.html" class="tsd-kind-icon">Protocol</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.protocolargs.html" class="tsd-kind-icon">Protocol<wbr>Args</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.protocolevents.html" class="tsd-kind-icon">Protocol<wbr>Events</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.setmessage.html" class="tsd-kind-icon">Set<wbr>Message</a>
-					</li>
-					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
-						<a href="../modules/_types_d_.html#commandtype" class="tsd-kind-icon">Command<wbr>Type</a>
-					</li>
-					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
-						<a href="../modules/_types_d_.html#iclientoptions" class="tsd-kind-icon">IClient<wbr>Options</a>
-					</li>
-					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
-						<a href="../modules/_types_d_.html#jsobject" class="tsd-kind-icon">JSObject</a>
-					</li>
-					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
-						<a href="../modules/_types_d_.html#jstype" class="tsd-kind-icon">JSType</a>
-					</li>
-					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
-						<a href="../modules/_types_d_.html#messagetype" class="tsd-kind-icon">Message<wbr>Type</a>
-					</li>
-					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
-						<a href="../modules/_types_d_.html#operatecleanupfunction" class="tsd-kind-icon">Operate<wbr>Cleanup<wbr>Function</a>
-					</li>
-					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
-						<a href="../modules/_types_d_.html#operatefunction" class="tsd-kind-icon">Operate<wbr>Function</a>
-					</li>
-					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
-						<a href="../modules/_types_d_.html#promiseresult" class="tsd-kind-icon">Promise<wbr>Result</a>
-					</li>
-					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
-						<a href="../modules/_types_d_.html#rejectfn" class="tsd-kind-icon">Reject<wbr>Fn</a>
-					</li>
-					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
-						<a href="../modules/_types_d_.html#role" class="tsd-kind-icon">Role</a>
-					</li>
-					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
-						<a href="../modules/_types_d_.html#router" class="tsd-kind-icon">Router</a>
-					</li>
-					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
-						<a href="../modules/_types_d_.html#sendfn" class="tsd-kind-icon">Send<wbr>Fn</a>
-					</li>
-					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
-						<a href="../modules/_types_d_.html#uspmessage" class="tsd-kind-icon">USPMessage</a>
-					</li>
-				</ul>
-			</nav>
-		</div>
-	</div>
-</div>
-<footer class="with-border-bottom">
-	<div class="container">
-		<h2>Legend</h2>
-		<div class="tsd-legend-group">
-			<ul class="tsd-legend">
-				<li class="tsd-kind-variable"><span class="tsd-kind-icon">Variable</span></li>
-				<li class="tsd-kind-function"><span class="tsd-kind-icon">Function</span></li>
-				<li class="tsd-kind-type-alias"><span class="tsd-kind-icon">Type alias</span></li>
-			</ul>
-			<ul class="tsd-legend">
-				<li class="tsd-kind-interface"><span class="tsd-kind-icon">Interface</span></li>
-				<li class="tsd-kind-property tsd-parent-kind-interface"><span class="tsd-kind-icon">Property</span></li>
-			</ul>
-		</div>
-	</div>
-</footer>
-<div class="container tsd-generator">
-	<p>Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p>
-</div>
-<div class="overlay"></div>
-<script src="../assets/js/main.js"></script>
-</body>
-</html>
\ No newline at end of file
diff --git a/public/interfaces/_types_d_.basemessage.html b/public/interfaces/_types_d_.basemessage.html
deleted file mode 100644
index f7fdc251adc2b59e588b762971d5e3a6c6864271..0000000000000000000000000000000000000000
--- a/public/interfaces/_types_d_.basemessage.html
+++ /dev/null
@@ -1,344 +0,0 @@
-<!doctype html>
-<html class="default no-js">
-<head>
-	<meta charset="utf-8">
-	<meta http-equiv="X-UA-Compatible" content="IE=edge">
-	<title>BaseMessage | usp-js</title>
-	<meta name="description" content="Documentation for usp-js">
-	<meta name="viewport" content="width=device-width, initial-scale=1">
-	<link rel="stylesheet" href="../assets/css/main.css">
-</head>
-<body>
-<header>
-	<div class="tsd-page-toolbar">
-		<div class="container">
-			<div class="table-wrap">
-				<div class="table-cell" id="tsd-search" data-index="../assets/js/search.json" data-base="..">
-					<div class="field">
-						<label for="tsd-search-field" class="tsd-widget search no-caption">Search</label>
-						<input id="tsd-search-field" type="text" />
-					</div>
-					<ul class="results">
-						<li class="state loading">Preparing search index...</li>
-						<li class="state failure">The search index is not available</li>
-					</ul>
-					<a href="../index.html" class="title">usp-js</a>
-				</div>
-				<div class="table-cell" id="tsd-widgets">
-					<div id="tsd-filter">
-						<a href="#" class="tsd-widget options no-caption" data-toggle="options">Options</a>
-						<div class="tsd-filter-group">
-							<div class="tsd-select" id="tsd-filter-visibility">
-								<span class="tsd-select-label">All</span>
-								<ul class="tsd-select-list">
-									<li data-value="public">Public</li>
-									<li data-value="protected">Public/Protected</li>
-									<li data-value="private" class="selected">All</li>
-								</ul>
-							</div>
-							<input type="checkbox" id="tsd-filter-inherited" checked />
-							<label class="tsd-widget" for="tsd-filter-inherited">Inherited</label>
-							<input type="checkbox" id="tsd-filter-externals" checked />
-							<label class="tsd-widget" for="tsd-filter-externals">Externals</label>
-							<input type="checkbox" id="tsd-filter-only-exported" />
-							<label class="tsd-widget" for="tsd-filter-only-exported">Only exported</label>
-						</div>
-					</div>
-					<a href="#" class="tsd-widget menu no-caption" data-toggle="menu">Menu</a>
-				</div>
-			</div>
-		</div>
-	</div>
-	<div class="tsd-page-title">
-		<div class="container">
-			<ul class="tsd-breadcrumb">
-				<li>
-					<a href="../globals.html">Globals</a>
-				</li>
-				<li>
-					<a href="../modules/_types_d_.html">&quot;types.d&quot;</a>
-				</li>
-				<li>
-					<a href="_types_d_.basemessage.html">BaseMessage</a>
-				</li>
-			</ul>
-			<h1>Interface BaseMessage</h1>
-		</div>
-	</div>
-</header>
-<div class="container container-main">
-	<div class="row">
-		<div class="col-8 col-content">
-			<section class="tsd-panel tsd-comment">
-				<div class="tsd-comment tsd-typography">
-					<div class="lead">
-						<p>Base Message passed between protocol and api</p>
-					</div>
-				</div>
-			</section>
-			<section class="tsd-panel tsd-hierarchy">
-				<h3>Hierarchy</h3>
-				<ul class="tsd-hierarchy">
-					<li>
-						<span class="target">BaseMessage</span>
-						<ul class="tsd-hierarchy">
-							<li>
-								<a href="_types_d_.errormessage.html" class="tsd-signature-type">ErrorMessage</a>
-							</li>
-							<li>
-								<a href="_types_d_.getmessage.html" class="tsd-signature-type">GetMessage</a>
-							</li>
-							<li>
-								<a href="_types_d_.setmessage.html" class="tsd-signature-type">SetMessage</a>
-							</li>
-							<li>
-								<a href="_types_d_.operatemessage.html" class="tsd-signature-type">OperateMessage</a>
-							</li>
-							<li>
-								<a href="_types_d_.notifymessage.html" class="tsd-signature-type">NotifyMessage</a>
-							</li>
-							<li>
-								<a href="_types_d_.addmessage.html" class="tsd-signature-type">AddMessage</a>
-							</li>
-							<li>
-								<a href="_types_d_.deletemessage.html" class="tsd-signature-type">DeleteMessage</a>
-							</li>
-						</ul>
-					</li>
-				</ul>
-			</section>
-			<section class="tsd-panel-group tsd-index-group">
-				<h2>Index</h2>
-				<section class="tsd-panel tsd-index-panel">
-					<div class="tsd-index-content">
-						<section class="tsd-index-section ">
-							<h3>Properties</h3>
-							<ul class="tsd-index-list">
-								<li class="tsd-kind-property tsd-parent-kind-interface"><a href="_types_d_.basemessage.html#data" class="tsd-kind-icon">data</a></li>
-								<li class="tsd-kind-property tsd-parent-kind-interface"><a href="_types_d_.basemessage.html#id" class="tsd-kind-icon">id</a></li>
-								<li class="tsd-kind-property tsd-parent-kind-interface"><a href="_types_d_.basemessage.html#path" class="tsd-kind-icon">path</a></li>
-								<li class="tsd-kind-property tsd-parent-kind-interface"><a href="_types_d_.basemessage.html#type" class="tsd-kind-icon">type</a></li>
-							</ul>
-						</section>
-					</div>
-				</section>
-			</section>
-			<section class="tsd-panel-group tsd-member-group ">
-				<h2>Properties</h2>
-				<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-interface">
-					<a name="data" class="tsd-anchor"></a>
-					<h3>data</h3>
-					<div class="tsd-signature tsd-kind-icon">data<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-symbol">{}</span></div>
-					<aside class="tsd-sources">
-						<ul>
-							<li>Defined in src/types.d.ts:157</li>
-						</ul>
-					</aside>
-					<div class="tsd-type-declaration">
-						<h4>Type declaration</h4>
-						<ul class="tsd-parameters">
-						</ul>
-					</div>
-				</section>
-				<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-interface">
-					<a name="id" class="tsd-anchor"></a>
-					<h3>id</h3>
-					<div class="tsd-signature tsd-kind-icon">id<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span></div>
-					<aside class="tsd-sources">
-						<ul>
-							<li>Defined in src/types.d.ts:154</li>
-						</ul>
-					</aside>
-				</section>
-				<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-interface">
-					<a name="path" class="tsd-anchor"></a>
-					<h3>path</h3>
-					<div class="tsd-signature tsd-kind-icon">path<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span></div>
-					<aside class="tsd-sources">
-						<ul>
-							<li>Defined in src/types.d.ts:156</li>
-						</ul>
-					</aside>
-				</section>
-				<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-interface">
-					<a name="type" class="tsd-anchor"></a>
-					<h3>type</h3>
-					<div class="tsd-signature tsd-kind-icon">type<span class="tsd-signature-symbol">:</span> <a href="../modules/_types_d_.html#messagetype" class="tsd-signature-type">MessageType</a></div>
-					<aside class="tsd-sources">
-						<ul>
-							<li>Defined in src/types.d.ts:155</li>
-						</ul>
-					</aside>
-				</section>
-			</section>
-		</div>
-		<div class="col-4 col-menu menu-sticky-wrap menu-highlight">
-			<nav class="tsd-navigation primary">
-				<ul>
-					<li class="globals  ">
-						<a href="../globals.html"><em>Globals</em></a>
-					</li>
-					<li class=" tsd-kind-module">
-						<a href="../modules/_index_.html">&quot;index&quot;</a>
-					</li>
-					<li class=" tsd-kind-module">
-						<a href="../modules/_lib_.html">&quot;lib&quot;</a>
-					</li>
-					<li class=" tsd-kind-module">
-						<a href="../modules/_protocol_index_.html">&quot;protocol/index&quot;</a>
-					</li>
-					<li class=" tsd-kind-module">
-						<a href="../modules/_protocol_js_usp_protobuf_protomessage_.html">&quot;protocol/js-<wbr>usp-<wbr>protobuf/proto<wbr>Message&quot;</a>
-					</li>
-					<li class=" tsd-kind-module">
-						<a href="../modules/_protocol_lib_.html">&quot;protocol/lib&quot;</a>
-					</li>
-					<li class="current tsd-kind-module">
-						<a href="../modules/_types_d_.html">&quot;types.d&quot;</a>
-					</li>
-				</ul>
-			</nav>
-			<nav class="tsd-navigation secondary menu-sticky">
-				<ul class="before-current">
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.addmessage.html" class="tsd-kind-icon">Add<wbr>Message</a>
-					</li>
-				</ul>
-				<ul class="current">
-					<li class="current tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.basemessage.html" class="tsd-kind-icon">Base<wbr>Message</a>
-						<ul>
-							<li class=" tsd-kind-property tsd-parent-kind-interface">
-								<a href="_types_d_.basemessage.html#data" class="tsd-kind-icon">data</a>
-							</li>
-							<li class=" tsd-kind-property tsd-parent-kind-interface">
-								<a href="_types_d_.basemessage.html#id" class="tsd-kind-icon">id</a>
-							</li>
-							<li class=" tsd-kind-property tsd-parent-kind-interface">
-								<a href="_types_d_.basemessage.html#path" class="tsd-kind-icon">path</a>
-							</li>
-							<li class=" tsd-kind-property tsd-parent-kind-interface">
-								<a href="_types_d_.basemessage.html#type" class="tsd-kind-icon">type</a>
-							</li>
-						</ul>
-					</li>
-				</ul>
-				<ul class="after-current">
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.connectevents.html" class="tsd-kind-icon">Connect<wbr>Events</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.connectoptions.html" class="tsd-kind-icon">Connect<wbr>Options</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.deletemessage.html" class="tsd-kind-icon">Delete<wbr>Message</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.device.html" class="tsd-kind-icon">Device</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.deviceerror.html" class="tsd-kind-icon">Device<wbr>Error</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.encodeargs.html" class="tsd-kind-icon">Encode<wbr>Args</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.errormessage.html" class="tsd-kind-icon">Error<wbr>Message</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.getmessage.html" class="tsd-kind-icon">Get<wbr>Message</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.initresult.html" class="tsd-kind-icon">Init<wbr>Result</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.mqttrequest.html" class="tsd-kind-icon">MQTTRequest</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.notifymessage.html" class="tsd-kind-icon">Notify<wbr>Message</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.operatemessage.html" class="tsd-kind-icon">Operate<wbr>Message</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.operateoptions.html" class="tsd-kind-icon">Operate<wbr>Options</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.protocol.html" class="tsd-kind-icon">Protocol</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.protocolargs.html" class="tsd-kind-icon">Protocol<wbr>Args</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.protocolevents.html" class="tsd-kind-icon">Protocol<wbr>Events</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.setmessage.html" class="tsd-kind-icon">Set<wbr>Message</a>
-					</li>
-					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
-						<a href="../modules/_types_d_.html#commandtype" class="tsd-kind-icon">Command<wbr>Type</a>
-					</li>
-					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
-						<a href="../modules/_types_d_.html#iclientoptions" class="tsd-kind-icon">IClient<wbr>Options</a>
-					</li>
-					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
-						<a href="../modules/_types_d_.html#jsobject" class="tsd-kind-icon">JSObject</a>
-					</li>
-					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
-						<a href="../modules/_types_d_.html#jstype" class="tsd-kind-icon">JSType</a>
-					</li>
-					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
-						<a href="../modules/_types_d_.html#messagetype" class="tsd-kind-icon">Message<wbr>Type</a>
-					</li>
-					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
-						<a href="../modules/_types_d_.html#operatecleanupfunction" class="tsd-kind-icon">Operate<wbr>Cleanup<wbr>Function</a>
-					</li>
-					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
-						<a href="../modules/_types_d_.html#operatefunction" class="tsd-kind-icon">Operate<wbr>Function</a>
-					</li>
-					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
-						<a href="../modules/_types_d_.html#promiseresult" class="tsd-kind-icon">Promise<wbr>Result</a>
-					</li>
-					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
-						<a href="../modules/_types_d_.html#rejectfn" class="tsd-kind-icon">Reject<wbr>Fn</a>
-					</li>
-					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
-						<a href="../modules/_types_d_.html#role" class="tsd-kind-icon">Role</a>
-					</li>
-					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
-						<a href="../modules/_types_d_.html#router" class="tsd-kind-icon">Router</a>
-					</li>
-					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
-						<a href="../modules/_types_d_.html#sendfn" class="tsd-kind-icon">Send<wbr>Fn</a>
-					</li>
-					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
-						<a href="../modules/_types_d_.html#uspmessage" class="tsd-kind-icon">USPMessage</a>
-					</li>
-				</ul>
-			</nav>
-		</div>
-	</div>
-</div>
-<footer class="with-border-bottom">
-	<div class="container">
-		<h2>Legend</h2>
-		<div class="tsd-legend-group">
-			<ul class="tsd-legend">
-				<li class="tsd-kind-variable"><span class="tsd-kind-icon">Variable</span></li>
-				<li class="tsd-kind-function"><span class="tsd-kind-icon">Function</span></li>
-				<li class="tsd-kind-type-alias"><span class="tsd-kind-icon">Type alias</span></li>
-			</ul>
-			<ul class="tsd-legend">
-				<li class="tsd-kind-interface"><span class="tsd-kind-icon">Interface</span></li>
-				<li class="tsd-kind-property tsd-parent-kind-interface"><span class="tsd-kind-icon">Property</span></li>
-			</ul>
-		</div>
-	</div>
-</footer>
-<div class="container tsd-generator">
-	<p>Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p>
-</div>
-<div class="overlay"></div>
-<script src="../assets/js/main.js"></script>
-</body>
-</html>
\ No newline at end of file
diff --git a/public/interfaces/_types_d_.connectevents.html b/public/interfaces/_types_d_.connectevents.html
deleted file mode 100644
index c616336f7ced110097dd1e4d991dcd807916db02..0000000000000000000000000000000000000000
--- a/public/interfaces/_types_d_.connectevents.html
+++ /dev/null
@@ -1,279 +0,0 @@
-<!doctype html>
-<html class="default no-js">
-<head>
-	<meta charset="utf-8">
-	<meta http-equiv="X-UA-Compatible" content="IE=edge">
-	<title>ConnectEvents | usp-js</title>
-	<meta name="description" content="Documentation for usp-js">
-	<meta name="viewport" content="width=device-width, initial-scale=1">
-	<link rel="stylesheet" href="../assets/css/main.css">
-</head>
-<body>
-<header>
-	<div class="tsd-page-toolbar">
-		<div class="container">
-			<div class="table-wrap">
-				<div class="table-cell" id="tsd-search" data-index="../assets/js/search.json" data-base="..">
-					<div class="field">
-						<label for="tsd-search-field" class="tsd-widget search no-caption">Search</label>
-						<input id="tsd-search-field" type="text" />
-					</div>
-					<ul class="results">
-						<li class="state loading">Preparing search index...</li>
-						<li class="state failure">The search index is not available</li>
-					</ul>
-					<a href="../index.html" class="title">usp-js</a>
-				</div>
-				<div class="table-cell" id="tsd-widgets">
-					<div id="tsd-filter">
-						<a href="#" class="tsd-widget options no-caption" data-toggle="options">Options</a>
-						<div class="tsd-filter-group">
-							<div class="tsd-select" id="tsd-filter-visibility">
-								<span class="tsd-select-label">All</span>
-								<ul class="tsd-select-list">
-									<li data-value="public">Public</li>
-									<li data-value="protected">Public/Protected</li>
-									<li data-value="private" class="selected">All</li>
-								</ul>
-							</div>
-							<input type="checkbox" id="tsd-filter-inherited" checked />
-							<label class="tsd-widget" for="tsd-filter-inherited">Inherited</label>
-							<input type="checkbox" id="tsd-filter-externals" checked />
-							<label class="tsd-widget" for="tsd-filter-externals">Externals</label>
-							<input type="checkbox" id="tsd-filter-only-exported" />
-							<label class="tsd-widget" for="tsd-filter-only-exported">Only exported</label>
-						</div>
-					</div>
-					<a href="#" class="tsd-widget menu no-caption" data-toggle="menu">Menu</a>
-				</div>
-			</div>
-		</div>
-	</div>
-	<div class="tsd-page-title">
-		<div class="container">
-			<ul class="tsd-breadcrumb">
-				<li>
-					<a href="../globals.html">Globals</a>
-				</li>
-				<li>
-					<a href="../modules/_types_d_.html">&quot;types.d&quot;</a>
-				</li>
-				<li>
-					<a href="_types_d_.connectevents.html">ConnectEvents</a>
-				</li>
-			</ul>
-			<h1>Interface ConnectEvents</h1>
-		</div>
-	</div>
-</header>
-<div class="container container-main">
-	<div class="row">
-		<div class="col-8 col-content">
-			<section class="tsd-panel tsd-comment">
-				<div class="tsd-comment tsd-typography">
-					<div class="lead">
-						<p>Connection lifecycle event handlers</p>
-					</div>
-				</div>
-			</section>
-			<section class="tsd-panel tsd-hierarchy">
-				<h3>Hierarchy</h3>
-				<ul class="tsd-hierarchy">
-					<li>
-						<span class="target">ConnectEvents</span>
-					</li>
-				</ul>
-			</section>
-			<section class="tsd-panel-group tsd-index-group">
-				<h2>Index</h2>
-				<section class="tsd-panel tsd-index-panel">
-					<div class="tsd-index-content">
-						<section class="tsd-index-section ">
-							<h3>Properties</h3>
-							<ul class="tsd-index-list">
-								<li class="tsd-kind-property tsd-parent-kind-interface"><a href="_types_d_.connectevents.html#ontimeout" class="tsd-kind-icon">on<wbr>Timeout</a></li>
-							</ul>
-						</section>
-					</div>
-				</section>
-			</section>
-			<section class="tsd-panel-group tsd-member-group ">
-				<h2>Properties</h2>
-				<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-interface">
-					<a name="ontimeout" class="tsd-anchor"></a>
-					<h3><span class="tsd-flag ts-flagOptional">Optional</span> on<wbr>Timeout</h3>
-					<div class="tsd-signature tsd-kind-icon">on<wbr>Timeout<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">undefined</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol"> =&gt; </span><span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">)</span></div>
-					<aside class="tsd-sources">
-						<ul>
-							<li>Defined in src/types.d.ts:25</li>
-						</ul>
-					</aside>
-					<div class="tsd-comment tsd-typography">
-						<div class="lead">
-							<p>Handler for idle timeout</p>
-						</div>
-					</div>
-				</section>
-			</section>
-		</div>
-		<div class="col-4 col-menu menu-sticky-wrap menu-highlight">
-			<nav class="tsd-navigation primary">
-				<ul>
-					<li class="globals  ">
-						<a href="../globals.html"><em>Globals</em></a>
-					</li>
-					<li class=" tsd-kind-module">
-						<a href="../modules/_index_.html">&quot;index&quot;</a>
-					</li>
-					<li class=" tsd-kind-module">
-						<a href="../modules/_lib_.html">&quot;lib&quot;</a>
-					</li>
-					<li class=" tsd-kind-module">
-						<a href="../modules/_protocol_index_.html">&quot;protocol/index&quot;</a>
-					</li>
-					<li class=" tsd-kind-module">
-						<a href="../modules/_protocol_js_usp_protobuf_protomessage_.html">&quot;protocol/js-<wbr>usp-<wbr>protobuf/proto<wbr>Message&quot;</a>
-					</li>
-					<li class=" tsd-kind-module">
-						<a href="../modules/_protocol_lib_.html">&quot;protocol/lib&quot;</a>
-					</li>
-					<li class="current tsd-kind-module">
-						<a href="../modules/_types_d_.html">&quot;types.d&quot;</a>
-					</li>
-				</ul>
-			</nav>
-			<nav class="tsd-navigation secondary menu-sticky">
-				<ul class="before-current">
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.addmessage.html" class="tsd-kind-icon">Add<wbr>Message</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.basemessage.html" class="tsd-kind-icon">Base<wbr>Message</a>
-					</li>
-				</ul>
-				<ul class="current">
-					<li class="current tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.connectevents.html" class="tsd-kind-icon">Connect<wbr>Events</a>
-						<ul>
-							<li class=" tsd-kind-property tsd-parent-kind-interface">
-								<a href="_types_d_.connectevents.html#ontimeout" class="tsd-kind-icon">on<wbr>Timeout</a>
-							</li>
-						</ul>
-					</li>
-				</ul>
-				<ul class="after-current">
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.connectoptions.html" class="tsd-kind-icon">Connect<wbr>Options</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.deletemessage.html" class="tsd-kind-icon">Delete<wbr>Message</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.device.html" class="tsd-kind-icon">Device</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.deviceerror.html" class="tsd-kind-icon">Device<wbr>Error</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.encodeargs.html" class="tsd-kind-icon">Encode<wbr>Args</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.errormessage.html" class="tsd-kind-icon">Error<wbr>Message</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.getmessage.html" class="tsd-kind-icon">Get<wbr>Message</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.initresult.html" class="tsd-kind-icon">Init<wbr>Result</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.mqttrequest.html" class="tsd-kind-icon">MQTTRequest</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.notifymessage.html" class="tsd-kind-icon">Notify<wbr>Message</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.operatemessage.html" class="tsd-kind-icon">Operate<wbr>Message</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.operateoptions.html" class="tsd-kind-icon">Operate<wbr>Options</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.protocol.html" class="tsd-kind-icon">Protocol</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.protocolargs.html" class="tsd-kind-icon">Protocol<wbr>Args</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.protocolevents.html" class="tsd-kind-icon">Protocol<wbr>Events</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.setmessage.html" class="tsd-kind-icon">Set<wbr>Message</a>
-					</li>
-					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
-						<a href="../modules/_types_d_.html#commandtype" class="tsd-kind-icon">Command<wbr>Type</a>
-					</li>
-					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
-						<a href="../modules/_types_d_.html#iclientoptions" class="tsd-kind-icon">IClient<wbr>Options</a>
-					</li>
-					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
-						<a href="../modules/_types_d_.html#jsobject" class="tsd-kind-icon">JSObject</a>
-					</li>
-					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
-						<a href="../modules/_types_d_.html#jstype" class="tsd-kind-icon">JSType</a>
-					</li>
-					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
-						<a href="../modules/_types_d_.html#messagetype" class="tsd-kind-icon">Message<wbr>Type</a>
-					</li>
-					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
-						<a href="../modules/_types_d_.html#operatecleanupfunction" class="tsd-kind-icon">Operate<wbr>Cleanup<wbr>Function</a>
-					</li>
-					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
-						<a href="../modules/_types_d_.html#operatefunction" class="tsd-kind-icon">Operate<wbr>Function</a>
-					</li>
-					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
-						<a href="../modules/_types_d_.html#promiseresult" class="tsd-kind-icon">Promise<wbr>Result</a>
-					</li>
-					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
-						<a href="../modules/_types_d_.html#rejectfn" class="tsd-kind-icon">Reject<wbr>Fn</a>
-					</li>
-					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
-						<a href="../modules/_types_d_.html#role" class="tsd-kind-icon">Role</a>
-					</li>
-					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
-						<a href="../modules/_types_d_.html#router" class="tsd-kind-icon">Router</a>
-					</li>
-					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
-						<a href="../modules/_types_d_.html#sendfn" class="tsd-kind-icon">Send<wbr>Fn</a>
-					</li>
-					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
-						<a href="../modules/_types_d_.html#uspmessage" class="tsd-kind-icon">USPMessage</a>
-					</li>
-				</ul>
-			</nav>
-		</div>
-	</div>
-</div>
-<footer class="with-border-bottom">
-	<div class="container">
-		<h2>Legend</h2>
-		<div class="tsd-legend-group">
-			<ul class="tsd-legend">
-				<li class="tsd-kind-variable"><span class="tsd-kind-icon">Variable</span></li>
-				<li class="tsd-kind-function"><span class="tsd-kind-icon">Function</span></li>
-				<li class="tsd-kind-type-alias"><span class="tsd-kind-icon">Type alias</span></li>
-			</ul>
-			<ul class="tsd-legend">
-				<li class="tsd-kind-interface"><span class="tsd-kind-icon">Interface</span></li>
-				<li class="tsd-kind-property tsd-parent-kind-interface"><span class="tsd-kind-icon">Property</span></li>
-			</ul>
-		</div>
-	</div>
-</footer>
-<div class="container tsd-generator">
-	<p>Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p>
-</div>
-<div class="overlay"></div>
-<script src="../assets/js/main.js"></script>
-</body>
-</html>
\ No newline at end of file
diff --git a/public/interfaces/_types_d_.connectoptions.html b/public/interfaces/_types_d_.connectoptions.html
deleted file mode 100644
index 6703a4676d55e2020a8bbb54f467be391eeb1027..0000000000000000000000000000000000000000
--- a/public/interfaces/_types_d_.connectoptions.html
+++ /dev/null
@@ -1,814 +0,0 @@
-<!doctype html>
-<html class="default no-js">
-<head>
-	<meta charset="utf-8">
-	<meta http-equiv="X-UA-Compatible" content="IE=edge">
-	<title>ConnectOptions | usp-js</title>
-	<meta name="description" content="Documentation for usp-js">
-	<meta name="viewport" content="width=device-width, initial-scale=1">
-	<link rel="stylesheet" href="../assets/css/main.css">
-</head>
-<body>
-<header>
-	<div class="tsd-page-toolbar">
-		<div class="container">
-			<div class="table-wrap">
-				<div class="table-cell" id="tsd-search" data-index="../assets/js/search.json" data-base="..">
-					<div class="field">
-						<label for="tsd-search-field" class="tsd-widget search no-caption">Search</label>
-						<input id="tsd-search-field" type="text" />
-					</div>
-					<ul class="results">
-						<li class="state loading">Preparing search index...</li>
-						<li class="state failure">The search index is not available</li>
-					</ul>
-					<a href="../index.html" class="title">usp-js</a>
-				</div>
-				<div class="table-cell" id="tsd-widgets">
-					<div id="tsd-filter">
-						<a href="#" class="tsd-widget options no-caption" data-toggle="options">Options</a>
-						<div class="tsd-filter-group">
-							<div class="tsd-select" id="tsd-filter-visibility">
-								<span class="tsd-select-label">All</span>
-								<ul class="tsd-select-list">
-									<li data-value="public">Public</li>
-									<li data-value="protected">Public/Protected</li>
-									<li data-value="private" class="selected">All</li>
-								</ul>
-							</div>
-							<input type="checkbox" id="tsd-filter-inherited" checked />
-							<label class="tsd-widget" for="tsd-filter-inherited">Inherited</label>
-							<input type="checkbox" id="tsd-filter-externals" checked />
-							<label class="tsd-widget" for="tsd-filter-externals">Externals</label>
-							<input type="checkbox" id="tsd-filter-only-exported" />
-							<label class="tsd-widget" for="tsd-filter-only-exported">Only exported</label>
-						</div>
-					</div>
-					<a href="#" class="tsd-widget menu no-caption" data-toggle="menu">Menu</a>
-				</div>
-			</div>
-		</div>
-	</div>
-	<div class="tsd-page-title">
-		<div class="container">
-			<ul class="tsd-breadcrumb">
-				<li>
-					<a href="../globals.html">Globals</a>
-				</li>
-				<li>
-					<a href="../modules/_types_d_.html">&quot;types.d&quot;</a>
-				</li>
-				<li>
-					<a href="_types_d_.connectoptions.html">ConnectOptions</a>
-				</li>
-			</ul>
-			<h1>Interface ConnectOptions</h1>
-		</div>
-	</div>
-</header>
-<div class="container container-main">
-	<div class="row">
-		<div class="col-8 col-content">
-			<section class="tsd-panel tsd-hierarchy">
-				<h3>Hierarchy</h3>
-				<ul class="tsd-hierarchy">
-					<li>
-						<span class="tsd-signature-type">IClientOptions</span>
-						<ul class="tsd-hierarchy">
-							<li>
-								<span class="target">ConnectOptions</span>
-							</li>
-						</ul>
-					</li>
-				</ul>
-			</section>
-			<section class="tsd-panel-group tsd-index-group">
-				<h2>Index</h2>
-				<section class="tsd-panel tsd-index-panel">
-					<div class="tsd-index-content">
-						<section class="tsd-index-section ">
-							<h3>Properties</h3>
-							<ul class="tsd-index-list">
-								<li class="tsd-kind-property tsd-parent-kind-interface tsd-is-inherited"><a href="_types_d_.connectoptions.html#ca" class="tsd-kind-icon">ca</a></li>
-								<li class="tsd-kind-property tsd-parent-kind-interface tsd-is-inherited"><a href="_types_d_.connectoptions.html#cert" class="tsd-kind-icon">cert</a></li>
-								<li class="tsd-kind-property tsd-parent-kind-interface tsd-is-inherited"><a href="_types_d_.connectoptions.html#clean" class="tsd-kind-icon">clean</a></li>
-								<li class="tsd-kind-property tsd-parent-kind-interface tsd-is-inherited"><a href="_types_d_.connectoptions.html#clientid" class="tsd-kind-icon">client<wbr>Id</a></li>
-								<li class="tsd-kind-property tsd-parent-kind-interface tsd-is-inherited"><a href="_types_d_.connectoptions.html#connecttimeout" class="tsd-kind-icon">connect<wbr>Timeout</a></li>
-								<li class="tsd-kind-property tsd-parent-kind-interface"><a href="_types_d_.connectoptions.html#fromid" class="tsd-kind-icon">from<wbr>Id</a></li>
-								<li class="tsd-kind-property tsd-parent-kind-interface tsd-is-inherited"><a href="_types_d_.connectoptions.html#host" class="tsd-kind-icon">host</a></li>
-								<li class="tsd-kind-property tsd-parent-kind-interface tsd-is-inherited"><a href="_types_d_.connectoptions.html#hostname" class="tsd-kind-icon">hostname</a></li>
-								<li class="tsd-kind-property tsd-parent-kind-interface tsd-is-inherited"><a href="_types_d_.connectoptions.html#incomingstore" class="tsd-kind-icon">incoming<wbr>Store</a></li>
-								<li class="tsd-kind-property tsd-parent-kind-interface tsd-is-inherited"><a href="_types_d_.connectoptions.html#keepalive" class="tsd-kind-icon">keepalive</a></li>
-								<li class="tsd-kind-property tsd-parent-kind-interface tsd-is-inherited"><a href="_types_d_.connectoptions.html#key" class="tsd-kind-icon">key</a></li>
-								<li class="tsd-kind-property tsd-parent-kind-interface tsd-is-inherited"><a href="_types_d_.connectoptions.html#outgoingstore" class="tsd-kind-icon">outgoing<wbr>Store</a></li>
-								<li class="tsd-kind-property tsd-parent-kind-interface tsd-is-inherited"><a href="_types_d_.connectoptions.html#password" class="tsd-kind-icon">password</a></li>
-								<li class="tsd-kind-property tsd-parent-kind-interface tsd-is-inherited"><a href="_types_d_.connectoptions.html#path" class="tsd-kind-icon">path</a></li>
-								<li class="tsd-kind-property tsd-parent-kind-interface tsd-is-inherited"><a href="_types_d_.connectoptions.html#port" class="tsd-kind-icon">port</a></li>
-								<li class="tsd-kind-property tsd-parent-kind-interface tsd-is-inherited"><a href="_types_d_.connectoptions.html#properties" class="tsd-kind-icon">properties</a></li>
-								<li class="tsd-kind-property tsd-parent-kind-interface tsd-is-inherited"><a href="_types_d_.connectoptions.html#protocol" class="tsd-kind-icon">protocol</a></li>
-								<li class="tsd-kind-property tsd-parent-kind-interface tsd-is-inherited"><a href="_types_d_.connectoptions.html#protocolid" class="tsd-kind-icon">protocol<wbr>Id</a></li>
-								<li class="tsd-kind-property tsd-parent-kind-interface tsd-is-inherited"><a href="_types_d_.connectoptions.html#protocolversion" class="tsd-kind-icon">protocol<wbr>Version</a></li>
-								<li class="tsd-kind-property tsd-parent-kind-interface"><a href="_types_d_.connectoptions.html#publishendpoint" class="tsd-kind-icon">publish<wbr>Endpoint</a></li>
-								<li class="tsd-kind-property tsd-parent-kind-interface tsd-is-inherited"><a href="_types_d_.connectoptions.html#queueqoszero" class="tsd-kind-icon">queue<wbr>QoSZero</a></li>
-								<li class="tsd-kind-property tsd-parent-kind-interface tsd-is-inherited"><a href="_types_d_.connectoptions.html#reconnectperiod" class="tsd-kind-icon">reconnect<wbr>Period</a></li>
-								<li class="tsd-kind-property tsd-parent-kind-interface tsd-is-inherited"><a href="_types_d_.connectoptions.html#rejectunauthorized" class="tsd-kind-icon">reject<wbr>Unauthorized</a></li>
-								<li class="tsd-kind-property tsd-parent-kind-interface tsd-is-inherited"><a href="_types_d_.connectoptions.html#reschedulepings" class="tsd-kind-icon">reschedule<wbr>Pings</a></li>
-								<li class="tsd-kind-property tsd-parent-kind-interface tsd-is-inherited"><a href="_types_d_.connectoptions.html#resubscribe" class="tsd-kind-icon">resubscribe</a></li>
-								<li class="tsd-kind-property tsd-parent-kind-interface tsd-is-inherited"><a href="_types_d_.connectoptions.html#servers" class="tsd-kind-icon">servers</a></li>
-								<li class="tsd-kind-property tsd-parent-kind-interface"><a href="_types_d_.connectoptions.html#subscribeendpoint" class="tsd-kind-icon">subscribe<wbr>Endpoint</a></li>
-								<li class="tsd-kind-property tsd-parent-kind-interface"><a href="_types_d_.connectoptions.html#toid" class="tsd-kind-icon">to<wbr>Id</a></li>
-								<li class="tsd-kind-property tsd-parent-kind-interface tsd-is-inherited"><a href="_types_d_.connectoptions.html#transformwsurl" class="tsd-kind-icon">transform<wbr>WsUrl</a></li>
-								<li class="tsd-kind-property tsd-parent-kind-interface tsd-is-inherited"><a href="_types_d_.connectoptions.html#username" class="tsd-kind-icon">username</a></li>
-								<li class="tsd-kind-property tsd-parent-kind-interface tsd-is-inherited"><a href="_types_d_.connectoptions.html#will" class="tsd-kind-icon">will</a></li>
-								<li class="tsd-kind-property tsd-parent-kind-interface tsd-is-inherited"><a href="_types_d_.connectoptions.html#wsoptions" class="tsd-kind-icon">ws<wbr>Options</a></li>
-							</ul>
-						</section>
-					</div>
-				</section>
-			</section>
-			<section class="tsd-panel-group tsd-member-group ">
-				<h2>Properties</h2>
-				<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-interface tsd-is-inherited">
-					<a name="ca" class="tsd-anchor"></a>
-					<h3><span class="tsd-flag ts-flagOptional">Optional</span> ca</h3>
-					<div class="tsd-signature tsd-kind-icon">ca<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">Buffer</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">Buffer</span><span class="tsd-signature-symbol">[]</span></div>
-					<aside class="tsd-sources">
-						<p>Inherited from <a href="_types_d_.connectoptions.html">ConnectOptions</a>.<a href="_types_d_.connectoptions.html#ca">ca</a></p>
-						<ul>
-							<li>Defined in node_modules/mqtt/types/lib/client-options.d.ts:130</li>
-						</ul>
-					</aside>
-					<div class="tsd-comment tsd-typography">
-						<div class="lead">
-							<p>Optionally override the trusted CA certificates in PEM format</p>
-						</div>
-					</div>
-				</section>
-				<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-interface tsd-is-inherited">
-					<a name="cert" class="tsd-anchor"></a>
-					<h3><span class="tsd-flag ts-flagOptional">Optional</span> cert</h3>
-					<div class="tsd-signature tsd-kind-icon">cert<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">Buffer</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">Buffer</span><span class="tsd-signature-symbol">[]</span></div>
-					<aside class="tsd-sources">
-						<p>Inherited from <a href="_types_d_.connectoptions.html">ConnectOptions</a>.<a href="_types_d_.connectoptions.html#cert">cert</a></p>
-						<ul>
-							<li>Defined in node_modules/mqtt/types/lib/client-options.d.ts:126</li>
-						</ul>
-					</aside>
-					<div class="tsd-comment tsd-typography">
-						<div class="lead">
-							<p>optional cert chains in PEM format</p>
-						</div>
-					</div>
-				</section>
-				<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-interface tsd-is-inherited">
-					<a name="clean" class="tsd-anchor"></a>
-					<h3><span class="tsd-flag ts-flagOptional">Optional</span> clean</h3>
-					<div class="tsd-signature tsd-kind-icon">clean<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">undefined</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">false</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">true</span></div>
-					<aside class="tsd-sources">
-						<p>Inherited from <a href="_types_d_.connectoptions.html">ConnectOptions</a>.<a href="_types_d_.connectoptions.html#clean">clean</a></p>
-						<ul>
-							<li>Defined in node_modules/mqtt/types/lib/client-options.d.ts:36</li>
-						</ul>
-					</aside>
-					<div class="tsd-comment tsd-typography">
-						<div class="lead">
-							<p>true, set to false to receive QoS 1 and 2 messages while offline</p>
-						</div>
-					</div>
-				</section>
-				<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-interface tsd-is-inherited">
-					<a name="clientid" class="tsd-anchor"></a>
-					<h3><span class="tsd-flag ts-flagOptional">Optional</span> client<wbr>Id</h3>
-					<div class="tsd-signature tsd-kind-icon">client<wbr>Id<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">undefined</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">string</span></div>
-					<aside class="tsd-sources">
-						<p>Inherited from <a href="_types_d_.connectoptions.html">ConnectOptions</a>.<a href="_types_d_.connectoptions.html#clientid">clientId</a></p>
-						<ul>
-							<li>Defined in node_modules/mqtt/types/lib/client-options.d.ts:24</li>
-						</ul>
-					</aside>
-					<div class="tsd-comment tsd-typography">
-						<div class="lead">
-							<p>&#39;mqttjs_&#39; + Math.random().toString(16).substr(2, 8)</p>
-						</div>
-					</div>
-				</section>
-				<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-interface tsd-is-inherited">
-					<a name="connecttimeout" class="tsd-anchor"></a>
-					<h3><span class="tsd-flag ts-flagOptional">Optional</span> connect<wbr>Timeout</h3>
-					<div class="tsd-signature tsd-kind-icon">connect<wbr>Timeout<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">undefined</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">number</span></div>
-					<aside class="tsd-sources">
-						<p>Inherited from <a href="_types_d_.connectoptions.html">ConnectOptions</a>.<a href="_types_d_.connectoptions.html#connecttimeout">connectTimeout</a></p>
-						<ul>
-							<li>Defined in node_modules/mqtt/types/lib/client-options.d.ts:44</li>
-						</ul>
-					</aside>
-					<div class="tsd-comment tsd-typography">
-						<div class="lead">
-							<p>30 * 1000 milliseconds, time to wait before a CONNACK is received</p>
-						</div>
-					</div>
-				</section>
-				<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-interface">
-					<a name="fromid" class="tsd-anchor"></a>
-					<h3>from<wbr>Id</h3>
-					<div class="tsd-signature tsd-kind-icon">from<wbr>Id<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span></div>
-					<aside class="tsd-sources">
-						<ul>
-							<li>Defined in src/types.d.ts:5</li>
-						</ul>
-					</aside>
-				</section>
-				<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-interface tsd-is-inherited">
-					<a name="host" class="tsd-anchor"></a>
-					<h3><span class="tsd-flag ts-flagOptional">Optional</span> host</h3>
-					<div class="tsd-signature tsd-kind-icon">host<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">undefined</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">string</span></div>
-					<aside class="tsd-sources">
-						<p>Inherited from <a href="_types_d_.connectoptions.html">ConnectOptions</a>.<a href="_types_d_.connectoptions.html#host">host</a></p>
-						<ul>
-							<li>Defined in node_modules/mqtt/types/lib/client-options.d.ts:9</li>
-						</ul>
-					</aside>
-				</section>
-				<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-interface tsd-is-inherited">
-					<a name="hostname" class="tsd-anchor"></a>
-					<h3><span class="tsd-flag ts-flagOptional">Optional</span> hostname</h3>
-					<div class="tsd-signature tsd-kind-icon">hostname<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">undefined</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">string</span></div>
-					<aside class="tsd-sources">
-						<p>Inherited from <a href="_types_d_.connectoptions.html">ConnectOptions</a>.<a href="_types_d_.connectoptions.html#hostname">hostname</a></p>
-						<ul>
-							<li>Defined in node_modules/mqtt/types/lib/client-options.d.ts:10</li>
-						</ul>
-					</aside>
-				</section>
-				<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-interface tsd-is-inherited">
-					<a name="incomingstore" class="tsd-anchor"></a>
-					<h3><span class="tsd-flag ts-flagOptional">Optional</span> incoming<wbr>Store</h3>
-					<div class="tsd-signature tsd-kind-icon">incoming<wbr>Store<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">Store</span></div>
-					<aside class="tsd-sources">
-						<p>Inherited from <a href="_types_d_.connectoptions.html">ConnectOptions</a>.<a href="_types_d_.connectoptions.html#incomingstore">incomingStore</a></p>
-						<ul>
-							<li>Defined in node_modules/mqtt/types/lib/client-options.d.ts:56</li>
-						</ul>
-					</aside>
-					<div class="tsd-comment tsd-typography">
-						<div class="lead">
-							<p>a Store for the incoming packets</p>
-						</div>
-					</div>
-				</section>
-				<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-interface tsd-is-inherited">
-					<a name="keepalive" class="tsd-anchor"></a>
-					<h3><span class="tsd-flag ts-flagOptional">Optional</span> keepalive</h3>
-					<div class="tsd-signature tsd-kind-icon">keepalive<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">undefined</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">number</span></div>
-					<aside class="tsd-sources">
-						<p>Inherited from <a href="_types_d_.connectoptions.html">ConnectOptions</a>.<a href="_types_d_.connectoptions.html#keepalive">keepalive</a></p>
-						<ul>
-							<li>Defined in node_modules/mqtt/types/lib/client-options.d.ts:20</li>
-						</ul>
-					</aside>
-					<div class="tsd-comment tsd-typography">
-						<div class="lead">
-							<p> 10 seconds, set to 0 to disable</p>
-						</div>
-					</div>
-				</section>
-				<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-interface tsd-is-inherited">
-					<a name="key" class="tsd-anchor"></a>
-					<h3><span class="tsd-flag ts-flagOptional">Optional</span> key</h3>
-					<div class="tsd-signature tsd-kind-icon">key<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">Buffer</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">Buffer</span><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">Object</span><span class="tsd-signature-symbol">[]</span></div>
-					<aside class="tsd-sources">
-						<p>Inherited from <a href="_types_d_.connectoptions.html">ConnectOptions</a>.<a href="_types_d_.connectoptions.html#key">key</a></p>
-						<ul>
-							<li>Defined in node_modules/mqtt/types/lib/client-options.d.ts:122</li>
-						</ul>
-					</aside>
-					<div class="tsd-comment tsd-typography">
-						<div class="lead">
-							<p>optional private keys in PEM format</p>
-						</div>
-					</div>
-				</section>
-				<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-interface tsd-is-inherited">
-					<a name="outgoingstore" class="tsd-anchor"></a>
-					<h3><span class="tsd-flag ts-flagOptional">Optional</span> outgoing<wbr>Store</h3>
-					<div class="tsd-signature tsd-kind-icon">outgoing<wbr>Store<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">Store</span></div>
-					<aside class="tsd-sources">
-						<p>Inherited from <a href="_types_d_.connectoptions.html">ConnectOptions</a>.<a href="_types_d_.connectoptions.html#outgoingstore">outgoingStore</a></p>
-						<ul>
-							<li>Defined in node_modules/mqtt/types/lib/client-options.d.ts:60</li>
-						</ul>
-					</aside>
-					<div class="tsd-comment tsd-typography">
-						<div class="lead">
-							<p>a Store for the outgoing packets</p>
-						</div>
-					</div>
-				</section>
-				<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-interface tsd-is-inherited">
-					<a name="password" class="tsd-anchor"></a>
-					<h3><span class="tsd-flag ts-flagOptional">Optional</span> password</h3>
-					<div class="tsd-signature tsd-kind-icon">password<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">undefined</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">string</span></div>
-					<aside class="tsd-sources">
-						<p>Inherited from <a href="_types_d_.connectoptions.html">ConnectOptions</a>.<a href="_types_d_.connectoptions.html#password">password</a></p>
-						<ul>
-							<li>Defined in node_modules/mqtt/types/lib/client-options.d.ts:52</li>
-						</ul>
-					</aside>
-					<div class="tsd-comment tsd-typography">
-						<div class="lead">
-							<p>the password required by your broker, if any</p>
-						</div>
-					</div>
-				</section>
-				<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-interface tsd-is-inherited">
-					<a name="path" class="tsd-anchor"></a>
-					<h3><span class="tsd-flag ts-flagOptional">Optional</span> path</h3>
-					<div class="tsd-signature tsd-kind-icon">path<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">undefined</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">string</span></div>
-					<aside class="tsd-sources">
-						<p>Inherited from <a href="_types_d_.connectoptions.html">ConnectOptions</a>.<a href="_types_d_.connectoptions.html#path">path</a></p>
-						<ul>
-							<li>Defined in node_modules/mqtt/types/lib/client-options.d.ts:11</li>
-						</ul>
-					</aside>
-				</section>
-				<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-interface tsd-is-inherited">
-					<a name="port" class="tsd-anchor"></a>
-					<h3><span class="tsd-flag ts-flagOptional">Optional</span> port</h3>
-					<div class="tsd-signature tsd-kind-icon">port<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">undefined</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">number</span></div>
-					<aside class="tsd-sources">
-						<p>Inherited from <a href="_types_d_.connectoptions.html">ConnectOptions</a>.<a href="_types_d_.connectoptions.html#port">port</a></p>
-						<ul>
-							<li>Defined in node_modules/mqtt/types/lib/client-options.d.ts:8</li>
-						</ul>
-					</aside>
-				</section>
-				<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-interface tsd-is-inherited">
-					<a name="properties" class="tsd-anchor"></a>
-					<h3><span class="tsd-flag ts-flagOptional">Optional</span> properties</h3>
-					<div class="tsd-signature tsd-kind-icon">properties<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">undefined</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-symbol">{ </span>authenticationData<span class="tsd-signature-symbol">?: </span><span class="tsd-signature-type">Buffer</span><span class="tsd-signature-symbol">; </span>authenticationMethod<span class="tsd-signature-symbol">?: </span><span class="tsd-signature-type">undefined</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">; </span>maximumPacketSize<span class="tsd-signature-symbol">?: </span><span class="tsd-signature-type">undefined</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">; </span>receiveMaximum<span class="tsd-signature-symbol">?: </span><span class="tsd-signature-type">undefined</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">; </span>requestProblemInformation<span class="tsd-signature-symbol">?: </span><span class="tsd-signature-type">undefined</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">false</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">true</span><span class="tsd-signature-symbol">; </span>requestResponseInformation<span class="tsd-signature-symbol">?: </span><span class="tsd-signature-type">undefined</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">false</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">true</span><span class="tsd-signature-symbol">; </span>sessionExpiryInterval<span class="tsd-signature-symbol">?: </span><span class="tsd-signature-type">undefined</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">; </span>topicAliasMaximum<span class="tsd-signature-symbol">?: </span><span class="tsd-signature-type">undefined</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">; </span>userProperties<span class="tsd-signature-symbol">?: </span><span class="tsd-signature-type">Object</span><span class="tsd-signature-symbol"> }</span></div>
-					<aside class="tsd-sources">
-						<p>Inherited from <a href="_types_d_.connectoptions.html">ConnectOptions</a>.<a href="_types_d_.connectoptions.html#properties">properties</a></p>
-						<ul>
-							<li>Defined in node_modules/mqtt/types/lib/client-options.d.ts:106</li>
-						</ul>
-					</aside>
-				</section>
-				<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-interface tsd-is-inherited">
-					<a name="protocol" class="tsd-anchor"></a>
-					<h3><span class="tsd-flag ts-flagOptional">Optional</span> protocol</h3>
-					<div class="tsd-signature tsd-kind-icon">protocol<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">"wss"</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">"ws"</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">"mqtt"</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">"mqtts"</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">"tcp"</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">"ssl"</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">"wx"</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">"wxs"</span></div>
-					<aside class="tsd-sources">
-						<p>Inherited from <a href="_types_d_.connectoptions.html">ConnectOptions</a>.<a href="_types_d_.connectoptions.html#protocol">protocol</a></p>
-						<ul>
-							<li>Defined in node_modules/mqtt/types/lib/client-options.d.ts:12</li>
-						</ul>
-					</aside>
-				</section>
-				<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-interface tsd-is-inherited">
-					<a name="protocolid" class="tsd-anchor"></a>
-					<h3><span class="tsd-flag ts-flagOptional">Optional</span> protocol<wbr>Id</h3>
-					<div class="tsd-signature tsd-kind-icon">protocol<wbr>Id<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">undefined</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">string</span></div>
-					<aside class="tsd-sources">
-						<p>Inherited from <a href="_types_d_.connectoptions.html">ConnectOptions</a>.<a href="_types_d_.connectoptions.html#protocolid">protocolId</a></p>
-						<ul>
-							<li>Defined in node_modules/mqtt/types/lib/client-options.d.ts:28</li>
-						</ul>
-					</aside>
-					<div class="tsd-comment tsd-typography">
-						<div class="lead">
-							<p>&#39;MQTT&#39;</p>
-						</div>
-					</div>
-				</section>
-				<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-interface tsd-is-inherited">
-					<a name="protocolversion" class="tsd-anchor"></a>
-					<h3><span class="tsd-flag ts-flagOptional">Optional</span> protocol<wbr>Version</h3>
-					<div class="tsd-signature tsd-kind-icon">protocol<wbr>Version<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">undefined</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">number</span></div>
-					<aside class="tsd-sources">
-						<p>Inherited from <a href="_types_d_.connectoptions.html">ConnectOptions</a>.<a href="_types_d_.connectoptions.html#protocolversion">protocolVersion</a></p>
-						<ul>
-							<li>Defined in node_modules/mqtt/types/lib/client-options.d.ts:32</li>
-						</ul>
-					</aside>
-					<div class="tsd-comment tsd-typography">
-						<div class="lead">
-							<p>4</p>
-						</div>
-					</div>
-				</section>
-				<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-interface">
-					<a name="publishendpoint" class="tsd-anchor"></a>
-					<h3><span class="tsd-flag ts-flagOptional">Optional</span> publish<wbr>Endpoint</h3>
-					<div class="tsd-signature tsd-kind-icon">publish<wbr>Endpoint<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">undefined</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">string</span></div>
-					<aside class="tsd-sources">
-						<ul>
-							<li>Defined in src/types.d.ts:6</li>
-						</ul>
-					</aside>
-				</section>
-				<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-interface tsd-is-inherited">
-					<a name="queueqoszero" class="tsd-anchor"></a>
-					<h3><span class="tsd-flag ts-flagOptional">Optional</span> queue<wbr>QoSZero</h3>
-					<div class="tsd-signature tsd-kind-icon">queue<wbr>QoSZero<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">undefined</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">false</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">true</span></div>
-					<aside class="tsd-sources">
-						<p>Inherited from <a href="_types_d_.connectoptions.html">ConnectOptions</a>.<a href="_types_d_.connectoptions.html#queueqoszero">queueQoSZero</a></p>
-						<ul>
-							<li>Defined in node_modules/mqtt/types/lib/client-options.d.ts:61</li>
-						</ul>
-					</aside>
-				</section>
-				<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-interface tsd-is-inherited">
-					<a name="reconnectperiod" class="tsd-anchor"></a>
-					<h3><span class="tsd-flag ts-flagOptional">Optional</span> reconnect<wbr>Period</h3>
-					<div class="tsd-signature tsd-kind-icon">reconnect<wbr>Period<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">undefined</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">number</span></div>
-					<aside class="tsd-sources">
-						<p>Inherited from <a href="_types_d_.connectoptions.html">ConnectOptions</a>.<a href="_types_d_.connectoptions.html#reconnectperiod">reconnectPeriod</a></p>
-						<ul>
-							<li>Defined in node_modules/mqtt/types/lib/client-options.d.ts:40</li>
-						</ul>
-					</aside>
-					<div class="tsd-comment tsd-typography">
-						<div class="lead">
-							<p>1000 milliseconds, interval between two reconnections</p>
-						</div>
-					</div>
-				</section>
-				<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-interface tsd-is-inherited">
-					<a name="rejectunauthorized" class="tsd-anchor"></a>
-					<h3><span class="tsd-flag ts-flagOptional">Optional</span> reject<wbr>Unauthorized</h3>
-					<div class="tsd-signature tsd-kind-icon">reject<wbr>Unauthorized<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">undefined</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">false</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">true</span></div>
-					<aside class="tsd-sources">
-						<p>Inherited from <a href="_types_d_.connectoptions.html">ConnectOptions</a>.<a href="_types_d_.connectoptions.html#rejectunauthorized">rejectUnauthorized</a></p>
-						<ul>
-							<li>Defined in node_modules/mqtt/types/lib/client-options.d.ts:131</li>
-						</ul>
-					</aside>
-				</section>
-				<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-interface tsd-is-inherited">
-					<a name="reschedulepings" class="tsd-anchor"></a>
-					<h3><span class="tsd-flag ts-flagOptional">Optional</span> reschedule<wbr>Pings</h3>
-					<div class="tsd-signature tsd-kind-icon">reschedule<wbr>Pings<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">undefined</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">false</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">true</span></div>
-					<aside class="tsd-sources">
-						<p>Inherited from <a href="_types_d_.connectoptions.html">ConnectOptions</a>.<a href="_types_d_.connectoptions.html#reschedulepings">reschedulePings</a></p>
-						<ul>
-							<li>Defined in node_modules/mqtt/types/lib/client-options.d.ts:62</li>
-						</ul>
-					</aside>
-				</section>
-				<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-interface tsd-is-inherited">
-					<a name="resubscribe" class="tsd-anchor"></a>
-					<h3><span class="tsd-flag ts-flagOptional">Optional</span> resubscribe</h3>
-					<div class="tsd-signature tsd-kind-icon">resubscribe<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">undefined</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">false</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">true</span></div>
-					<aside class="tsd-sources">
-						<p>Inherited from <a href="_types_d_.connectoptions.html">ConnectOptions</a>.<a href="_types_d_.connectoptions.html#resubscribe">resubscribe</a></p>
-						<ul>
-							<li>Defined in node_modules/mqtt/types/lib/client-options.d.ts:71</li>
-						</ul>
-					</aside>
-					<div class="tsd-comment tsd-typography">
-						<div class="lead">
-							<p>true, set to false to disable re-subscribe functionality</p>
-						</div>
-					</div>
-				</section>
-				<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-interface tsd-is-inherited">
-					<a name="servers" class="tsd-anchor"></a>
-					<h3><span class="tsd-flag ts-flagOptional">Optional</span> servers</h3>
-					<div class="tsd-signature tsd-kind-icon">servers<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">Array</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-symbol">{ </span>host<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">; </span>port<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">; </span>protocol<span class="tsd-signature-symbol">?: </span><span class="tsd-signature-type">"wss"</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">"ws"</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">"mqtt"</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">"mqtts"</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">"tcp"</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">"ssl"</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">"wx"</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">"wxs"</span><span class="tsd-signature-symbol"> }</span><span class="tsd-signature-symbol">&gt;</span></div>
-					<aside class="tsd-sources">
-						<p>Inherited from <a href="_types_d_.connectoptions.html">ConnectOptions</a>.<a href="_types_d_.connectoptions.html#servers">servers</a></p>
-						<ul>
-							<li>Defined in node_modules/mqtt/types/lib/client-options.d.ts:63</li>
-						</ul>
-					</aside>
-				</section>
-				<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-interface">
-					<a name="subscribeendpoint" class="tsd-anchor"></a>
-					<h3><span class="tsd-flag ts-flagOptional">Optional</span> subscribe<wbr>Endpoint</h3>
-					<div class="tsd-signature tsd-kind-icon">subscribe<wbr>Endpoint<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">undefined</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">string</span></div>
-					<aside class="tsd-sources">
-						<ul>
-							<li>Defined in src/types.d.ts:7</li>
-						</ul>
-					</aside>
-				</section>
-				<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-interface">
-					<a name="toid" class="tsd-anchor"></a>
-					<h3>to<wbr>Id</h3>
-					<div class="tsd-signature tsd-kind-icon">to<wbr>Id<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span></div>
-					<aside class="tsd-sources">
-						<ul>
-							<li>Defined in src/types.d.ts:4</li>
-						</ul>
-					</aside>
-				</section>
-				<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-interface tsd-is-inherited">
-					<a name="transformwsurl" class="tsd-anchor"></a>
-					<h3><span class="tsd-flag ts-flagOptional">Optional</span> transform<wbr>WsUrl</h3>
-					<div class="tsd-signature tsd-kind-icon">transform<wbr>WsUrl<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">undefined</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">(</span>url<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span>, options<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">IClientOptions</span>, client<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">MqttClient</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol"> =&gt; </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">)</span></div>
-					<aside class="tsd-sources">
-						<p>Inherited from <a href="_types_d_.connectoptions.html">ConnectOptions</a>.<a href="_types_d_.connectoptions.html#transformwsurl">transformWsUrl</a></p>
-						<ul>
-							<li>Defined in node_modules/mqtt/types/lib/client-options.d.ts:105</li>
-						</ul>
-					</aside>
-				</section>
-				<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-interface tsd-is-inherited">
-					<a name="username" class="tsd-anchor"></a>
-					<h3><span class="tsd-flag ts-flagOptional">Optional</span> username</h3>
-					<div class="tsd-signature tsd-kind-icon">username<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">undefined</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">string</span></div>
-					<aside class="tsd-sources">
-						<p>Inherited from <a href="_types_d_.connectoptions.html">ConnectOptions</a>.<a href="_types_d_.connectoptions.html#username">username</a></p>
-						<ul>
-							<li>Defined in node_modules/mqtt/types/lib/client-options.d.ts:48</li>
-						</ul>
-					</aside>
-					<div class="tsd-comment tsd-typography">
-						<div class="lead">
-							<p>the username required by your broker, if any</p>
-						</div>
-					</div>
-				</section>
-				<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-interface tsd-is-inherited">
-					<a name="will" class="tsd-anchor"></a>
-					<h3><span class="tsd-flag ts-flagOptional">Optional</span> will</h3>
-					<div class="tsd-signature tsd-kind-icon">will<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">undefined</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-symbol">{ </span>payload<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Buffer</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">; </span>properties<span class="tsd-signature-symbol">?: </span><span class="tsd-signature-type">undefined</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-symbol">{ </span>contentType<span class="tsd-signature-symbol">?: </span><span class="tsd-signature-type">undefined</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">; </span>correlationData<span class="tsd-signature-symbol">?: </span><span class="tsd-signature-type">Buffer</span><span class="tsd-signature-symbol">; </span>messageExpiryInterval<span class="tsd-signature-symbol">?: </span><span class="tsd-signature-type">undefined</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">; </span>payloadFormatIndicator<span class="tsd-signature-symbol">?: </span><span class="tsd-signature-type">undefined</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">false</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">true</span><span class="tsd-signature-symbol">; </span>responseTopic<span class="tsd-signature-symbol">?: </span><span class="tsd-signature-type">undefined</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">; </span>userProperties<span class="tsd-signature-symbol">?: </span><span class="tsd-signature-type">Object</span><span class="tsd-signature-symbol">; </span>willDelayInterval<span class="tsd-signature-symbol">?: </span><span class="tsd-signature-type">undefined</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol"> }</span><span class="tsd-signature-symbol">; </span>qos<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">QoS</span><span class="tsd-signature-symbol">; </span>retain<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">boolean</span><span class="tsd-signature-symbol">; </span>topic<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol"> }</span></div>
-					<aside class="tsd-sources">
-						<p>Inherited from <a href="_types_d_.connectoptions.html">ConnectOptions</a>.<a href="_types_d_.connectoptions.html#will">will</a></p>
-						<ul>
-							<li>Defined in node_modules/mqtt/types/lib/client-options.d.ts:75</li>
-						</ul>
-					</aside>
-					<div class="tsd-comment tsd-typography">
-						<div class="lead">
-							<p>a message that will sent by the broker automatically when the client disconnect badly.</p>
-						</div>
-					</div>
-				</section>
-				<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-interface tsd-is-inherited">
-					<a name="wsoptions" class="tsd-anchor"></a>
-					<h3><span class="tsd-flag ts-flagOptional">Optional</span> ws<wbr>Options</h3>
-					<div class="tsd-signature tsd-kind-icon">ws<wbr>Options<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">undefined</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-symbol">{}</span></div>
-					<aside class="tsd-sources">
-						<p>Inherited from <a href="_types_d_.connectoptions.html">ConnectOptions</a>.<a href="_types_d_.connectoptions.html#wsoptions">wsOptions</a></p>
-						<ul>
-							<li>Defined in node_modules/mqtt/types/lib/client-options.d.ts:14</li>
-						</ul>
-					</aside>
-				</section>
-			</section>
-		</div>
-		<div class="col-4 col-menu menu-sticky-wrap menu-highlight">
-			<nav class="tsd-navigation primary">
-				<ul>
-					<li class="globals  ">
-						<a href="../globals.html"><em>Globals</em></a>
-					</li>
-					<li class=" tsd-kind-module">
-						<a href="../modules/_index_.html">&quot;index&quot;</a>
-					</li>
-					<li class=" tsd-kind-module">
-						<a href="../modules/_lib_.html">&quot;lib&quot;</a>
-					</li>
-					<li class=" tsd-kind-module">
-						<a href="../modules/_protocol_index_.html">&quot;protocol/index&quot;</a>
-					</li>
-					<li class=" tsd-kind-module">
-						<a href="../modules/_protocol_js_usp_protobuf_protomessage_.html">&quot;protocol/js-<wbr>usp-<wbr>protobuf/proto<wbr>Message&quot;</a>
-					</li>
-					<li class=" tsd-kind-module">
-						<a href="../modules/_protocol_lib_.html">&quot;protocol/lib&quot;</a>
-					</li>
-					<li class="current tsd-kind-module">
-						<a href="../modules/_types_d_.html">&quot;types.d&quot;</a>
-					</li>
-				</ul>
-			</nav>
-			<nav class="tsd-navigation secondary menu-sticky">
-				<ul class="before-current">
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.addmessage.html" class="tsd-kind-icon">Add<wbr>Message</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.basemessage.html" class="tsd-kind-icon">Base<wbr>Message</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.connectevents.html" class="tsd-kind-icon">Connect<wbr>Events</a>
-					</li>
-				</ul>
-				<ul class="current">
-					<li class="current tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.connectoptions.html" class="tsd-kind-icon">Connect<wbr>Options</a>
-						<ul>
-							<li class=" tsd-kind-property tsd-parent-kind-interface tsd-is-inherited">
-								<a href="_types_d_.connectoptions.html#ca" class="tsd-kind-icon">ca</a>
-							</li>
-							<li class=" tsd-kind-property tsd-parent-kind-interface tsd-is-inherited">
-								<a href="_types_d_.connectoptions.html#cert" class="tsd-kind-icon">cert</a>
-							</li>
-							<li class=" tsd-kind-property tsd-parent-kind-interface tsd-is-inherited">
-								<a href="_types_d_.connectoptions.html#clean" class="tsd-kind-icon">clean</a>
-							</li>
-							<li class=" tsd-kind-property tsd-parent-kind-interface tsd-is-inherited">
-								<a href="_types_d_.connectoptions.html#clientid" class="tsd-kind-icon">client<wbr>Id</a>
-							</li>
-							<li class=" tsd-kind-property tsd-parent-kind-interface tsd-is-inherited">
-								<a href="_types_d_.connectoptions.html#connecttimeout" class="tsd-kind-icon">connect<wbr>Timeout</a>
-							</li>
-							<li class=" tsd-kind-property tsd-parent-kind-interface">
-								<a href="_types_d_.connectoptions.html#fromid" class="tsd-kind-icon">from<wbr>Id</a>
-							</li>
-							<li class=" tsd-kind-property tsd-parent-kind-interface tsd-is-inherited">
-								<a href="_types_d_.connectoptions.html#host" class="tsd-kind-icon">host</a>
-							</li>
-							<li class=" tsd-kind-property tsd-parent-kind-interface tsd-is-inherited">
-								<a href="_types_d_.connectoptions.html#hostname" class="tsd-kind-icon">hostname</a>
-							</li>
-							<li class=" tsd-kind-property tsd-parent-kind-interface tsd-is-inherited">
-								<a href="_types_d_.connectoptions.html#incomingstore" class="tsd-kind-icon">incoming<wbr>Store</a>
-							</li>
-							<li class=" tsd-kind-property tsd-parent-kind-interface tsd-is-inherited">
-								<a href="_types_d_.connectoptions.html#keepalive" class="tsd-kind-icon">keepalive</a>
-							</li>
-							<li class=" tsd-kind-property tsd-parent-kind-interface tsd-is-inherited">
-								<a href="_types_d_.connectoptions.html#key" class="tsd-kind-icon">key</a>
-							</li>
-							<li class=" tsd-kind-property tsd-parent-kind-interface tsd-is-inherited">
-								<a href="_types_d_.connectoptions.html#outgoingstore" class="tsd-kind-icon">outgoing<wbr>Store</a>
-							</li>
-							<li class=" tsd-kind-property tsd-parent-kind-interface tsd-is-inherited">
-								<a href="_types_d_.connectoptions.html#password" class="tsd-kind-icon">password</a>
-							</li>
-							<li class=" tsd-kind-property tsd-parent-kind-interface tsd-is-inherited">
-								<a href="_types_d_.connectoptions.html#path" class="tsd-kind-icon">path</a>
-							</li>
-							<li class=" tsd-kind-property tsd-parent-kind-interface tsd-is-inherited">
-								<a href="_types_d_.connectoptions.html#port" class="tsd-kind-icon">port</a>
-							</li>
-							<li class=" tsd-kind-property tsd-parent-kind-interface tsd-is-inherited">
-								<a href="_types_d_.connectoptions.html#properties" class="tsd-kind-icon">properties</a>
-							</li>
-							<li class=" tsd-kind-property tsd-parent-kind-interface tsd-is-inherited">
-								<a href="_types_d_.connectoptions.html#protocol" class="tsd-kind-icon">protocol</a>
-							</li>
-							<li class=" tsd-kind-property tsd-parent-kind-interface tsd-is-inherited">
-								<a href="_types_d_.connectoptions.html#protocolid" class="tsd-kind-icon">protocol<wbr>Id</a>
-							</li>
-							<li class=" tsd-kind-property tsd-parent-kind-interface tsd-is-inherited">
-								<a href="_types_d_.connectoptions.html#protocolversion" class="tsd-kind-icon">protocol<wbr>Version</a>
-							</li>
-							<li class=" tsd-kind-property tsd-parent-kind-interface">
-								<a href="_types_d_.connectoptions.html#publishendpoint" class="tsd-kind-icon">publish<wbr>Endpoint</a>
-							</li>
-							<li class=" tsd-kind-property tsd-parent-kind-interface tsd-is-inherited">
-								<a href="_types_d_.connectoptions.html#queueqoszero" class="tsd-kind-icon">queue<wbr>QoSZero</a>
-							</li>
-							<li class=" tsd-kind-property tsd-parent-kind-interface tsd-is-inherited">
-								<a href="_types_d_.connectoptions.html#reconnectperiod" class="tsd-kind-icon">reconnect<wbr>Period</a>
-							</li>
-							<li class=" tsd-kind-property tsd-parent-kind-interface tsd-is-inherited">
-								<a href="_types_d_.connectoptions.html#rejectunauthorized" class="tsd-kind-icon">reject<wbr>Unauthorized</a>
-							</li>
-							<li class=" tsd-kind-property tsd-parent-kind-interface tsd-is-inherited">
-								<a href="_types_d_.connectoptions.html#reschedulepings" class="tsd-kind-icon">reschedule<wbr>Pings</a>
-							</li>
-							<li class=" tsd-kind-property tsd-parent-kind-interface tsd-is-inherited">
-								<a href="_types_d_.connectoptions.html#resubscribe" class="tsd-kind-icon">resubscribe</a>
-							</li>
-							<li class=" tsd-kind-property tsd-parent-kind-interface tsd-is-inherited">
-								<a href="_types_d_.connectoptions.html#servers" class="tsd-kind-icon">servers</a>
-							</li>
-							<li class=" tsd-kind-property tsd-parent-kind-interface">
-								<a href="_types_d_.connectoptions.html#subscribeendpoint" class="tsd-kind-icon">subscribe<wbr>Endpoint</a>
-							</li>
-							<li class=" tsd-kind-property tsd-parent-kind-interface">
-								<a href="_types_d_.connectoptions.html#toid" class="tsd-kind-icon">to<wbr>Id</a>
-							</li>
-							<li class=" tsd-kind-property tsd-parent-kind-interface tsd-is-inherited">
-								<a href="_types_d_.connectoptions.html#transformwsurl" class="tsd-kind-icon">transform<wbr>WsUrl</a>
-							</li>
-							<li class=" tsd-kind-property tsd-parent-kind-interface tsd-is-inherited">
-								<a href="_types_d_.connectoptions.html#username" class="tsd-kind-icon">username</a>
-							</li>
-							<li class=" tsd-kind-property tsd-parent-kind-interface tsd-is-inherited">
-								<a href="_types_d_.connectoptions.html#will" class="tsd-kind-icon">will</a>
-							</li>
-							<li class=" tsd-kind-property tsd-parent-kind-interface tsd-is-inherited">
-								<a href="_types_d_.connectoptions.html#wsoptions" class="tsd-kind-icon">ws<wbr>Options</a>
-							</li>
-						</ul>
-					</li>
-				</ul>
-				<ul class="after-current">
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.deletemessage.html" class="tsd-kind-icon">Delete<wbr>Message</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.device.html" class="tsd-kind-icon">Device</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.deviceerror.html" class="tsd-kind-icon">Device<wbr>Error</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.encodeargs.html" class="tsd-kind-icon">Encode<wbr>Args</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.errormessage.html" class="tsd-kind-icon">Error<wbr>Message</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.getmessage.html" class="tsd-kind-icon">Get<wbr>Message</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.initresult.html" class="tsd-kind-icon">Init<wbr>Result</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.mqttrequest.html" class="tsd-kind-icon">MQTTRequest</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.notifymessage.html" class="tsd-kind-icon">Notify<wbr>Message</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.operatemessage.html" class="tsd-kind-icon">Operate<wbr>Message</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.operateoptions.html" class="tsd-kind-icon">Operate<wbr>Options</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.protocol.html" class="tsd-kind-icon">Protocol</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.protocolargs.html" class="tsd-kind-icon">Protocol<wbr>Args</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.protocolevents.html" class="tsd-kind-icon">Protocol<wbr>Events</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.setmessage.html" class="tsd-kind-icon">Set<wbr>Message</a>
-					</li>
-					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
-						<a href="../modules/_types_d_.html#commandtype" class="tsd-kind-icon">Command<wbr>Type</a>
-					</li>
-					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
-						<a href="../modules/_types_d_.html#iclientoptions" class="tsd-kind-icon">IClient<wbr>Options</a>
-					</li>
-					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
-						<a href="../modules/_types_d_.html#jsobject" class="tsd-kind-icon">JSObject</a>
-					</li>
-					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
-						<a href="../modules/_types_d_.html#jstype" class="tsd-kind-icon">JSType</a>
-					</li>
-					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
-						<a href="../modules/_types_d_.html#messagetype" class="tsd-kind-icon">Message<wbr>Type</a>
-					</li>
-					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
-						<a href="../modules/_types_d_.html#operatecleanupfunction" class="tsd-kind-icon">Operate<wbr>Cleanup<wbr>Function</a>
-					</li>
-					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
-						<a href="../modules/_types_d_.html#operatefunction" class="tsd-kind-icon">Operate<wbr>Function</a>
-					</li>
-					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
-						<a href="../modules/_types_d_.html#promiseresult" class="tsd-kind-icon">Promise<wbr>Result</a>
-					</li>
-					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
-						<a href="../modules/_types_d_.html#rejectfn" class="tsd-kind-icon">Reject<wbr>Fn</a>
-					</li>
-					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
-						<a href="../modules/_types_d_.html#role" class="tsd-kind-icon">Role</a>
-					</li>
-					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
-						<a href="../modules/_types_d_.html#router" class="tsd-kind-icon">Router</a>
-					</li>
-					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
-						<a href="../modules/_types_d_.html#sendfn" class="tsd-kind-icon">Send<wbr>Fn</a>
-					</li>
-					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
-						<a href="../modules/_types_d_.html#uspmessage" class="tsd-kind-icon">USPMessage</a>
-					</li>
-				</ul>
-			</nav>
-		</div>
-	</div>
-</div>
-<footer class="with-border-bottom">
-	<div class="container">
-		<h2>Legend</h2>
-		<div class="tsd-legend-group">
-			<ul class="tsd-legend">
-				<li class="tsd-kind-variable"><span class="tsd-kind-icon">Variable</span></li>
-				<li class="tsd-kind-function"><span class="tsd-kind-icon">Function</span></li>
-				<li class="tsd-kind-type-alias"><span class="tsd-kind-icon">Type alias</span></li>
-			</ul>
-			<ul class="tsd-legend">
-				<li class="tsd-kind-interface"><span class="tsd-kind-icon">Interface</span></li>
-				<li class="tsd-kind-property tsd-parent-kind-interface"><span class="tsd-kind-icon">Property</span></li>
-			</ul>
-		</div>
-	</div>
-</footer>
-<div class="container tsd-generator">
-	<p>Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p>
-</div>
-<div class="overlay"></div>
-<script src="../assets/js/main.js"></script>
-</body>
-</html>
\ No newline at end of file
diff --git a/public/interfaces/_types_d_.deletemessage.html b/public/interfaces/_types_d_.deletemessage.html
deleted file mode 100644
index 8ab1a234291915bf41a7265e1454c11094171092..0000000000000000000000000000000000000000
--- a/public/interfaces/_types_d_.deletemessage.html
+++ /dev/null
@@ -1,333 +0,0 @@
-<!doctype html>
-<html class="default no-js">
-<head>
-	<meta charset="utf-8">
-	<meta http-equiv="X-UA-Compatible" content="IE=edge">
-	<title>DeleteMessage | usp-js</title>
-	<meta name="description" content="Documentation for usp-js">
-	<meta name="viewport" content="width=device-width, initial-scale=1">
-	<link rel="stylesheet" href="../assets/css/main.css">
-</head>
-<body>
-<header>
-	<div class="tsd-page-toolbar">
-		<div class="container">
-			<div class="table-wrap">
-				<div class="table-cell" id="tsd-search" data-index="../assets/js/search.json" data-base="..">
-					<div class="field">
-						<label for="tsd-search-field" class="tsd-widget search no-caption">Search</label>
-						<input id="tsd-search-field" type="text" />
-					</div>
-					<ul class="results">
-						<li class="state loading">Preparing search index...</li>
-						<li class="state failure">The search index is not available</li>
-					</ul>
-					<a href="../index.html" class="title">usp-js</a>
-				</div>
-				<div class="table-cell" id="tsd-widgets">
-					<div id="tsd-filter">
-						<a href="#" class="tsd-widget options no-caption" data-toggle="options">Options</a>
-						<div class="tsd-filter-group">
-							<div class="tsd-select" id="tsd-filter-visibility">
-								<span class="tsd-select-label">All</span>
-								<ul class="tsd-select-list">
-									<li data-value="public">Public</li>
-									<li data-value="protected">Public/Protected</li>
-									<li data-value="private" class="selected">All</li>
-								</ul>
-							</div>
-							<input type="checkbox" id="tsd-filter-inherited" checked />
-							<label class="tsd-widget" for="tsd-filter-inherited">Inherited</label>
-							<input type="checkbox" id="tsd-filter-externals" checked />
-							<label class="tsd-widget" for="tsd-filter-externals">Externals</label>
-							<input type="checkbox" id="tsd-filter-only-exported" />
-							<label class="tsd-widget" for="tsd-filter-only-exported">Only exported</label>
-						</div>
-					</div>
-					<a href="#" class="tsd-widget menu no-caption" data-toggle="menu">Menu</a>
-				</div>
-			</div>
-		</div>
-	</div>
-	<div class="tsd-page-title">
-		<div class="container">
-			<ul class="tsd-breadcrumb">
-				<li>
-					<a href="../globals.html">Globals</a>
-				</li>
-				<li>
-					<a href="../modules/_types_d_.html">&quot;types.d&quot;</a>
-				</li>
-				<li>
-					<a href="_types_d_.deletemessage.html">DeleteMessage</a>
-				</li>
-			</ul>
-			<h1>Interface DeleteMessage</h1>
-		</div>
-	</div>
-</header>
-<div class="container container-main">
-	<div class="row">
-		<div class="col-8 col-content">
-			<section class="tsd-panel tsd-comment">
-				<div class="tsd-comment tsd-typography">
-					<div class="lead">
-						<p>Delete Message</p>
-					</div>
-				</div>
-			</section>
-			<section class="tsd-panel tsd-hierarchy">
-				<h3>Hierarchy</h3>
-				<ul class="tsd-hierarchy">
-					<li>
-						<a href="_types_d_.basemessage.html" class="tsd-signature-type">BaseMessage</a>
-						<ul class="tsd-hierarchy">
-							<li>
-								<span class="target">DeleteMessage</span>
-							</li>
-						</ul>
-					</li>
-				</ul>
-			</section>
-			<section class="tsd-panel-group tsd-index-group">
-				<h2>Index</h2>
-				<section class="tsd-panel tsd-index-panel">
-					<div class="tsd-index-content">
-						<section class="tsd-index-section ">
-							<h3>Properties</h3>
-							<ul class="tsd-index-list">
-								<li class="tsd-kind-property tsd-parent-kind-interface tsd-is-overwrite"><a href="_types_d_.deletemessage.html#data" class="tsd-kind-icon">data</a></li>
-								<li class="tsd-kind-property tsd-parent-kind-interface tsd-is-inherited"><a href="_types_d_.deletemessage.html#id" class="tsd-kind-icon">id</a></li>
-								<li class="tsd-kind-property tsd-parent-kind-interface tsd-is-inherited"><a href="_types_d_.deletemessage.html#path" class="tsd-kind-icon">path</a></li>
-								<li class="tsd-kind-property tsd-parent-kind-interface tsd-is-overwrite"><a href="_types_d_.deletemessage.html#type" class="tsd-kind-icon">type</a></li>
-							</ul>
-						</section>
-					</div>
-				</section>
-			</section>
-			<section class="tsd-panel-group tsd-member-group ">
-				<h2>Properties</h2>
-				<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-interface tsd-is-overwrite">
-					<a name="data" class="tsd-anchor"></a>
-					<h3>data</h3>
-					<div class="tsd-signature tsd-kind-icon">data<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-symbol">{ </span>deleted<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">true</span><span class="tsd-signature-symbol"> }</span></div>
-					<aside class="tsd-sources">
-						<p>Overrides <a href="_types_d_.basemessage.html">BaseMessage</a>.<a href="_types_d_.basemessage.html#data">data</a></p>
-						<ul>
-							<li>Defined in src/types.d.ts:196</li>
-						</ul>
-					</aside>
-					<div class="tsd-type-declaration">
-						<h4>Type declaration</h4>
-						<ul class="tsd-parameters">
-							<li class="tsd-parameter">
-								<h5>deleted<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">true</span></h5>
-							</li>
-						</ul>
-					</div>
-				</section>
-				<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-interface tsd-is-inherited">
-					<a name="id" class="tsd-anchor"></a>
-					<h3>id</h3>
-					<div class="tsd-signature tsd-kind-icon">id<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span></div>
-					<aside class="tsd-sources">
-						<p>Inherited from <a href="_types_d_.basemessage.html">BaseMessage</a>.<a href="_types_d_.basemessage.html#id">id</a></p>
-						<ul>
-							<li>Defined in src/types.d.ts:154</li>
-						</ul>
-					</aside>
-				</section>
-				<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-interface tsd-is-inherited">
-					<a name="path" class="tsd-anchor"></a>
-					<h3>path</h3>
-					<div class="tsd-signature tsd-kind-icon">path<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span></div>
-					<aside class="tsd-sources">
-						<p>Inherited from <a href="_types_d_.basemessage.html">BaseMessage</a>.<a href="_types_d_.basemessage.html#path">path</a></p>
-						<ul>
-							<li>Defined in src/types.d.ts:156</li>
-						</ul>
-					</aside>
-				</section>
-				<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-interface tsd-is-overwrite">
-					<a name="type" class="tsd-anchor"></a>
-					<h3>type</h3>
-					<div class="tsd-signature tsd-kind-icon">type<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">"delete"</span></div>
-					<aside class="tsd-sources">
-						<p>Overrides <a href="_types_d_.basemessage.html">BaseMessage</a>.<a href="_types_d_.basemessage.html#type">type</a></p>
-						<ul>
-							<li>Defined in src/types.d.ts:195</li>
-						</ul>
-					</aside>
-				</section>
-			</section>
-		</div>
-		<div class="col-4 col-menu menu-sticky-wrap menu-highlight">
-			<nav class="tsd-navigation primary">
-				<ul>
-					<li class="globals  ">
-						<a href="../globals.html"><em>Globals</em></a>
-					</li>
-					<li class=" tsd-kind-module">
-						<a href="../modules/_index_.html">&quot;index&quot;</a>
-					</li>
-					<li class=" tsd-kind-module">
-						<a href="../modules/_lib_.html">&quot;lib&quot;</a>
-					</li>
-					<li class=" tsd-kind-module">
-						<a href="../modules/_protocol_index_.html">&quot;protocol/index&quot;</a>
-					</li>
-					<li class=" tsd-kind-module">
-						<a href="../modules/_protocol_js_usp_protobuf_protomessage_.html">&quot;protocol/js-<wbr>usp-<wbr>protobuf/proto<wbr>Message&quot;</a>
-					</li>
-					<li class=" tsd-kind-module">
-						<a href="../modules/_protocol_lib_.html">&quot;protocol/lib&quot;</a>
-					</li>
-					<li class="current tsd-kind-module">
-						<a href="../modules/_types_d_.html">&quot;types.d&quot;</a>
-					</li>
-				</ul>
-			</nav>
-			<nav class="tsd-navigation secondary menu-sticky">
-				<ul class="before-current">
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.addmessage.html" class="tsd-kind-icon">Add<wbr>Message</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.basemessage.html" class="tsd-kind-icon">Base<wbr>Message</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.connectevents.html" class="tsd-kind-icon">Connect<wbr>Events</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.connectoptions.html" class="tsd-kind-icon">Connect<wbr>Options</a>
-					</li>
-				</ul>
-				<ul class="current">
-					<li class="current tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.deletemessage.html" class="tsd-kind-icon">Delete<wbr>Message</a>
-						<ul>
-							<li class=" tsd-kind-property tsd-parent-kind-interface tsd-is-overwrite">
-								<a href="_types_d_.deletemessage.html#data" class="tsd-kind-icon">data</a>
-							</li>
-							<li class=" tsd-kind-property tsd-parent-kind-interface tsd-is-inherited">
-								<a href="_types_d_.deletemessage.html#id" class="tsd-kind-icon">id</a>
-							</li>
-							<li class=" tsd-kind-property tsd-parent-kind-interface tsd-is-inherited">
-								<a href="_types_d_.deletemessage.html#path" class="tsd-kind-icon">path</a>
-							</li>
-							<li class=" tsd-kind-property tsd-parent-kind-interface tsd-is-overwrite">
-								<a href="_types_d_.deletemessage.html#type" class="tsd-kind-icon">type</a>
-							</li>
-						</ul>
-					</li>
-				</ul>
-				<ul class="after-current">
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.device.html" class="tsd-kind-icon">Device</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.deviceerror.html" class="tsd-kind-icon">Device<wbr>Error</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.encodeargs.html" class="tsd-kind-icon">Encode<wbr>Args</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.errormessage.html" class="tsd-kind-icon">Error<wbr>Message</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.getmessage.html" class="tsd-kind-icon">Get<wbr>Message</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.initresult.html" class="tsd-kind-icon">Init<wbr>Result</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.mqttrequest.html" class="tsd-kind-icon">MQTTRequest</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.notifymessage.html" class="tsd-kind-icon">Notify<wbr>Message</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.operatemessage.html" class="tsd-kind-icon">Operate<wbr>Message</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.operateoptions.html" class="tsd-kind-icon">Operate<wbr>Options</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.protocol.html" class="tsd-kind-icon">Protocol</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.protocolargs.html" class="tsd-kind-icon">Protocol<wbr>Args</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.protocolevents.html" class="tsd-kind-icon">Protocol<wbr>Events</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.setmessage.html" class="tsd-kind-icon">Set<wbr>Message</a>
-					</li>
-					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
-						<a href="../modules/_types_d_.html#commandtype" class="tsd-kind-icon">Command<wbr>Type</a>
-					</li>
-					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
-						<a href="../modules/_types_d_.html#iclientoptions" class="tsd-kind-icon">IClient<wbr>Options</a>
-					</li>
-					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
-						<a href="../modules/_types_d_.html#jsobject" class="tsd-kind-icon">JSObject</a>
-					</li>
-					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
-						<a href="../modules/_types_d_.html#jstype" class="tsd-kind-icon">JSType</a>
-					</li>
-					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
-						<a href="../modules/_types_d_.html#messagetype" class="tsd-kind-icon">Message<wbr>Type</a>
-					</li>
-					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
-						<a href="../modules/_types_d_.html#operatecleanupfunction" class="tsd-kind-icon">Operate<wbr>Cleanup<wbr>Function</a>
-					</li>
-					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
-						<a href="../modules/_types_d_.html#operatefunction" class="tsd-kind-icon">Operate<wbr>Function</a>
-					</li>
-					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
-						<a href="../modules/_types_d_.html#promiseresult" class="tsd-kind-icon">Promise<wbr>Result</a>
-					</li>
-					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
-						<a href="../modules/_types_d_.html#rejectfn" class="tsd-kind-icon">Reject<wbr>Fn</a>
-					</li>
-					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
-						<a href="../modules/_types_d_.html#role" class="tsd-kind-icon">Role</a>
-					</li>
-					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
-						<a href="../modules/_types_d_.html#router" class="tsd-kind-icon">Router</a>
-					</li>
-					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
-						<a href="../modules/_types_d_.html#sendfn" class="tsd-kind-icon">Send<wbr>Fn</a>
-					</li>
-					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
-						<a href="../modules/_types_d_.html#uspmessage" class="tsd-kind-icon">USPMessage</a>
-					</li>
-				</ul>
-			</nav>
-		</div>
-	</div>
-</div>
-<footer class="with-border-bottom">
-	<div class="container">
-		<h2>Legend</h2>
-		<div class="tsd-legend-group">
-			<ul class="tsd-legend">
-				<li class="tsd-kind-variable"><span class="tsd-kind-icon">Variable</span></li>
-				<li class="tsd-kind-function"><span class="tsd-kind-icon">Function</span></li>
-				<li class="tsd-kind-type-alias"><span class="tsd-kind-icon">Type alias</span></li>
-			</ul>
-			<ul class="tsd-legend">
-				<li class="tsd-kind-interface"><span class="tsd-kind-icon">Interface</span></li>
-				<li class="tsd-kind-property tsd-parent-kind-interface"><span class="tsd-kind-icon">Property</span></li>
-			</ul>
-		</div>
-	</div>
-</footer>
-<div class="container tsd-generator">
-	<p>Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p>
-</div>
-<div class="overlay"></div>
-<script src="../assets/js/main.js"></script>
-</body>
-</html>
\ No newline at end of file
diff --git a/public/interfaces/_types_d_.device.html b/public/interfaces/_types_d_.device.html
deleted file mode 100644
index fd4e141aba5177c92b5e2bec45119a61dc582e35..0000000000000000000000000000000000000000
--- a/public/interfaces/_types_d_.device.html
+++ /dev/null
@@ -1,675 +0,0 @@
-<!doctype html>
-<html class="default no-js">
-<head>
-	<meta charset="utf-8">
-	<meta http-equiv="X-UA-Compatible" content="IE=edge">
-	<title>Device | usp-js</title>
-	<meta name="description" content="Documentation for usp-js">
-	<meta name="viewport" content="width=device-width, initial-scale=1">
-	<link rel="stylesheet" href="../assets/css/main.css">
-</head>
-<body>
-<header>
-	<div class="tsd-page-toolbar">
-		<div class="container">
-			<div class="table-wrap">
-				<div class="table-cell" id="tsd-search" data-index="../assets/js/search.json" data-base="..">
-					<div class="field">
-						<label for="tsd-search-field" class="tsd-widget search no-caption">Search</label>
-						<input id="tsd-search-field" type="text" />
-					</div>
-					<ul class="results">
-						<li class="state loading">Preparing search index...</li>
-						<li class="state failure">The search index is not available</li>
-					</ul>
-					<a href="../index.html" class="title">usp-js</a>
-				</div>
-				<div class="table-cell" id="tsd-widgets">
-					<div id="tsd-filter">
-						<a href="#" class="tsd-widget options no-caption" data-toggle="options">Options</a>
-						<div class="tsd-filter-group">
-							<div class="tsd-select" id="tsd-filter-visibility">
-								<span class="tsd-select-label">All</span>
-								<ul class="tsd-select-list">
-									<li data-value="public">Public</li>
-									<li data-value="protected">Public/Protected</li>
-									<li data-value="private" class="selected">All</li>
-								</ul>
-							</div>
-							<input type="checkbox" id="tsd-filter-inherited" checked />
-							<label class="tsd-widget" for="tsd-filter-inherited">Inherited</label>
-							<input type="checkbox" id="tsd-filter-externals" checked />
-							<label class="tsd-widget" for="tsd-filter-externals">Externals</label>
-							<input type="checkbox" id="tsd-filter-only-exported" />
-							<label class="tsd-widget" for="tsd-filter-only-exported">Only exported</label>
-						</div>
-					</div>
-					<a href="#" class="tsd-widget menu no-caption" data-toggle="menu">Menu</a>
-				</div>
-			</div>
-		</div>
-	</div>
-	<div class="tsd-page-title">
-		<div class="container">
-			<ul class="tsd-breadcrumb">
-				<li>
-					<a href="../globals.html">Globals</a>
-				</li>
-				<li>
-					<a href="../modules/_types_d_.html">&quot;types.d&quot;</a>
-				</li>
-				<li>
-					<a href="_types_d_.device.html">Device</a>
-				</li>
-			</ul>
-			<h1>Interface Device</h1>
-		</div>
-	</div>
-</header>
-<div class="container container-main">
-	<div class="row">
-		<div class="col-8 col-content">
-			<section class="tsd-panel tsd-comment">
-				<div class="tsd-comment tsd-typography">
-					<div class="lead">
-						<p>Device API</p>
-					</div>
-				</div>
-			</section>
-			<section class="tsd-panel tsd-hierarchy">
-				<h3>Hierarchy</h3>
-				<ul class="tsd-hierarchy">
-					<li>
-						<span class="target">Device</span>
-					</li>
-				</ul>
-			</section>
-			<section class="tsd-panel-group tsd-index-group">
-				<h2>Index</h2>
-				<section class="tsd-panel tsd-index-panel">
-					<div class="tsd-index-content">
-						<section class="tsd-index-section ">
-							<h3>Properties</h3>
-							<ul class="tsd-index-list">
-								<li class="tsd-kind-property tsd-parent-kind-interface"><a href="_types_d_.device.html#add" class="tsd-kind-icon">add</a></li>
-								<li class="tsd-kind-property tsd-parent-kind-interface"><a href="_types_d_.device.html#del" class="tsd-kind-icon">del</a></li>
-								<li class="tsd-kind-property tsd-parent-kind-interface"><a href="_types_d_.device.html#disconnect" class="tsd-kind-icon">disconnect</a></li>
-								<li class="tsd-kind-property tsd-parent-kind-interface"><a href="_types_d_.device.html#get" class="tsd-kind-icon">get</a></li>
-								<li class="tsd-kind-property tsd-parent-kind-interface"><a href="_types_d_.device.html#id" class="tsd-kind-icon">id</a></li>
-								<li class="tsd-kind-property tsd-parent-kind-interface"><a href="_types_d_.device.html#operate" class="tsd-kind-icon">operate</a></li>
-								<li class="tsd-kind-property tsd-parent-kind-interface"><a href="_types_d_.device.html#resolve" class="tsd-kind-icon">resolve</a></li>
-								<li class="tsd-kind-property tsd-parent-kind-interface"><a href="_types_d_.device.html#roles" class="tsd-kind-icon">roles</a></li>
-								<li class="tsd-kind-property tsd-parent-kind-interface"><a href="_types_d_.device.html#set" class="tsd-kind-icon">set</a></li>
-							</ul>
-						</section>
-					</div>
-				</section>
-			</section>
-			<section class="tsd-panel-group tsd-member-group ">
-				<h2>Properties</h2>
-				<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-interface">
-					<a name="add" class="tsd-anchor"></a>
-					<h3>add</h3>
-					<div class="tsd-signature tsd-kind-icon">add<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-symbol">(</span>path<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span>, values<span class="tsd-signature-symbol">?: </span><a href="../modules/_types_d_.html#jsobject" class="tsd-signature-type">JSObject</a><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol"> =&gt; </span><span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">&gt;</span></div>
-					<aside class="tsd-sources">
-						<ul>
-							<li>Defined in src/types.d.ts:77</li>
-						</ul>
-					</aside>
-					<div class="tsd-comment tsd-typography">
-						<div class="lead">
-							<p>Add object to path</p>
-						</div>
-						<dl class="tsd-comment-tags">
-							<dt>param</dt>
-							<dd><p>Path to add to (e.g. &quot;Device.NAT.PortMapping.&quot;)</p>
-							</dd>
-							<dt>param</dt>
-							<dd><p>Optional object to add (if skipped will use default values)</p>
-							</dd>
-							<dt>returns</dt>
-							<dd><p>Full path of new object</p>
-								<pre><code><span class="hljs-keyword">await</span> usp.<span class="hljs-keyword">add</span>(<span class="hljs-string">&quot;Device.NAT.PortMapping.&quot;</span>)</code></pre>
-							</dd>
-						</dl>
-					</div>
-					<div class="tsd-type-declaration">
-						<h4>Type declaration</h4>
-						<ul class="tsd-parameters">
-							<li class="tsd-parameter-signature">
-								<ul class="tsd-signatures tsd-kind-type-literal tsd-parent-kind-property">
-									<li class="tsd-signature tsd-kind-icon"><span class="tsd-signature-symbol">(</span>path<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span>, values<span class="tsd-signature-symbol">?: </span><a href="../modules/_types_d_.html#jsobject" class="tsd-signature-type">JSObject</a><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">&gt;</span></li>
-								</ul>
-								<ul class="tsd-descriptions">
-									<li class="tsd-description">
-										<h4 class="tsd-parameters-title">Parameters</h4>
-										<ul class="tsd-parameters">
-											<li>
-												<h5>path: <span class="tsd-signature-type">string</span></h5>
-											</li>
-											<li>
-												<h5><span class="tsd-flag ts-flagOptional">Optional</span> values: <a href="../modules/_types_d_.html#jsobject" class="tsd-signature-type">JSObject</a></h5>
-											</li>
-										</ul>
-										<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">&gt;</span></h4>
-									</li>
-								</ul>
-							</li>
-						</ul>
-					</div>
-				</section>
-				<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-interface">
-					<a name="del" class="tsd-anchor"></a>
-					<h3>del</h3>
-					<div class="tsd-signature tsd-kind-icon">del<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-symbol">(</span>path<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol"> =&gt; </span><span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">&gt;</span></div>
-					<aside class="tsd-sources">
-						<ul>
-							<li>Defined in src/types.d.ts:86</li>
-						</ul>
-					</aside>
-					<div class="tsd-comment tsd-typography">
-						<div class="lead">
-							<p>Delete object at path</p>
-						</div>
-						<dl class="tsd-comment-tags">
-							<dt>param</dt>
-							<dd><p>Full path to delete (e.g. &quot;Device.NAT.PortMapping.1.&quot;)</p>
-								<pre><code><span class="hljs-selector-tag">await</span> <span class="hljs-selector-tag">usp</span><span class="hljs-selector-class">.del</span>(&quot;<span class="hljs-selector-tag">Device</span><span class="hljs-selector-class">.NAT</span><span class="hljs-selector-class">.PortMapping</span>.1.&quot;)</code></pre>
-							</dd>
-						</dl>
-					</div>
-					<div class="tsd-type-declaration">
-						<h4>Type declaration</h4>
-						<ul class="tsd-parameters">
-							<li class="tsd-parameter-signature">
-								<ul class="tsd-signatures tsd-kind-type-literal tsd-parent-kind-property">
-									<li class="tsd-signature tsd-kind-icon"><span class="tsd-signature-symbol">(</span>path<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">&gt;</span></li>
-								</ul>
-								<ul class="tsd-descriptions">
-									<li class="tsd-description">
-										<h4 class="tsd-parameters-title">Parameters</h4>
-										<ul class="tsd-parameters">
-											<li>
-												<h5>path: <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">[]</span></h5>
-											</li>
-										</ul>
-										<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">&gt;</span></h4>
-									</li>
-								</ul>
-							</li>
-						</ul>
-					</div>
-				</section>
-				<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-interface">
-					<a name="disconnect" class="tsd-anchor"></a>
-					<h3>disconnect</h3>
-					<div class="tsd-signature tsd-kind-icon">disconnect<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol"> =&gt; </span><span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">&gt;</span></div>
-					<aside class="tsd-sources">
-						<ul>
-							<li>Defined in src/types.d.ts:104</li>
-						</ul>
-					</aside>
-					<div class="tsd-comment tsd-typography">
-						<div class="lead">
-							<p>Disconenct from device</p>
-							<pre><code>await usp.<span class="hljs-built_in">disconnect</span>()</code></pre>
-						</div>
-					</div>
-					<div class="tsd-type-declaration">
-						<h4>Type declaration</h4>
-						<ul class="tsd-parameters">
-							<li class="tsd-parameter-signature">
-								<ul class="tsd-signatures tsd-kind-type-literal tsd-parent-kind-property">
-									<li class="tsd-signature tsd-kind-icon"><span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">&gt;</span></li>
-								</ul>
-								<ul class="tsd-descriptions">
-									<li class="tsd-description">
-										<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">&gt;</span></h4>
-									</li>
-								</ul>
-							</li>
-						</ul>
-					</div>
-				</section>
-				<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-interface">
-					<a name="get" class="tsd-anchor"></a>
-					<h3>get</h3>
-					<div class="tsd-signature tsd-kind-icon">get<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-symbol">(</span>path<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol"> =&gt; </span><span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><a href="../modules/_types_d_.html#jstype" class="tsd-signature-type">JSType</a><span class="tsd-signature-symbol">&gt;</span></div>
-					<aside class="tsd-sources">
-						<ul>
-							<li>Defined in src/types.d.ts:38</li>
-						</ul>
-					</aside>
-					<div class="tsd-comment tsd-typography">
-						<div class="lead">
-							<p>Get value at path</p>
-						</div>
-						<dl class="tsd-comment-tags">
-							<dt>param</dt>
-							<dd><p>Location of value (e.g. &quot;Device.DeviceInfo.&quot;)</p>
-								<pre><code><span class="hljs-keyword">await</span> usp.<span class="hljs-keyword">get</span>(<span class="hljs-string">&quot;Device.WiFi.Radio.1.&quot;</span>)
-<span class="hljs-comment">// or</span>
-<span class="hljs-keyword">await</span> usp.<span class="hljs-keyword">get</span>([<span class="hljs-string">&quot;Device.WiFi.Radio.1.&quot;</span>, <span class="hljs-string">&quot;Device.WiFi.Radio.2.&quot;</span>])</code></pre>
-							</dd>
-						</dl>
-					</div>
-					<div class="tsd-type-declaration">
-						<h4>Type declaration</h4>
-						<ul class="tsd-parameters">
-							<li class="tsd-parameter-signature">
-								<ul class="tsd-signatures tsd-kind-type-literal tsd-parent-kind-property">
-									<li class="tsd-signature tsd-kind-icon"><span class="tsd-signature-symbol">(</span>path<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><a href="../modules/_types_d_.html#jstype" class="tsd-signature-type">JSType</a><span class="tsd-signature-symbol">&gt;</span></li>
-								</ul>
-								<ul class="tsd-descriptions">
-									<li class="tsd-description">
-										<h4 class="tsd-parameters-title">Parameters</h4>
-										<ul class="tsd-parameters">
-											<li>
-												<h5>path: <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">[]</span></h5>
-											</li>
-										</ul>
-										<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><a href="../modules/_types_d_.html#jstype" class="tsd-signature-type">JSType</a><span class="tsd-signature-symbol">&gt;</span></h4>
-									</li>
-								</ul>
-							</li>
-						</ul>
-					</div>
-				</section>
-				<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-interface">
-					<a name="id" class="tsd-anchor"></a>
-					<h3>id</h3>
-					<div class="tsd-signature tsd-kind-icon">id<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol"> =&gt; </span><span class="tsd-signature-type">string</span></div>
-					<aside class="tsd-sources">
-						<ul>
-							<li>Defined in src/types.d.ts:107</li>
-						</ul>
-					</aside>
-					<div class="tsd-comment tsd-typography">
-						<div class="lead">
-							<p>Connection id</p>
-						</div>
-					</div>
-					<div class="tsd-type-declaration">
-						<h4>Type declaration</h4>
-						<ul class="tsd-parameters">
-							<li class="tsd-parameter-signature">
-								<ul class="tsd-signatures tsd-kind-type-literal tsd-parent-kind-property">
-									<li class="tsd-signature tsd-kind-icon"><span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span></li>
-								</ul>
-								<ul class="tsd-descriptions">
-									<li class="tsd-description">
-										<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">string</span></h4>
-									</li>
-								</ul>
-							</li>
-						</ul>
-					</div>
-				</section>
-				<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-interface">
-					<a name="operate" class="tsd-anchor"></a>
-					<h3>operate</h3>
-					<div class="tsd-signature tsd-kind-icon">operate<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-symbol">(</span>path<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span>, opts<span class="tsd-signature-symbol">?: </span><a href="_types_d_.operateoptions.html" class="tsd-signature-type">OperateOptions</a><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol"> =&gt; </span><span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-symbol">[</span><a href="../modules/_types_d_.html#operatefunction" class="tsd-signature-type">OperateFunction</a><span class="tsd-signature-symbol">, </span><a href="../modules/_types_d_.html#operatecleanupfunction" class="tsd-signature-type">OperateCleanupFunction</a><span class="tsd-signature-symbol">]</span><span class="tsd-signature-symbol">&gt;</span></div>
-					<aside class="tsd-sources">
-						<ul>
-							<li>Defined in src/types.d.ts:63</li>
-						</ul>
-					</aside>
-					<div class="tsd-comment tsd-typography">
-						<div class="lead">
-							<p>Create a command</p>
-						</div>
-						<dl class="tsd-comment-tags">
-							<dt>param</dt>
-							<dd><p>Full path of command (e.g. &quot;Device.IP.Diagnostics.IPPing()&quot;)</p>
-							</dd>
-							<dt>param</dt>
-							<dd><p>Subscription options (not required)</p>
-							</dd>
-							<dt>returns</dt>
-							<dd><p>Function that executes command</p>
-								<pre><code><span class="hljs-keyword">const</span> [ping, cleanPing] = <span class="hljs-keyword">await</span> usp.operate(<span class="hljs-string">&quot;Device.IP.Diagnostics.IPPing()&quot;</span>)
-<span class="hljs-keyword">const</span> results = <span class="hljs-keyword">await</span> ping({ Host: <span class="hljs-string">&quot;iopsys.eu&quot;</span> })
-<span class="hljs-keyword">await</span> cleanPing()</code></pre>
-							</dd>
-						</dl>
-					</div>
-					<div class="tsd-type-declaration">
-						<h4>Type declaration</h4>
-						<ul class="tsd-parameters">
-							<li class="tsd-parameter-signature">
-								<ul class="tsd-signatures tsd-kind-type-literal tsd-parent-kind-property">
-									<li class="tsd-signature tsd-kind-icon"><span class="tsd-signature-symbol">(</span>path<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span>, opts<span class="tsd-signature-symbol">?: </span><a href="_types_d_.operateoptions.html" class="tsd-signature-type">OperateOptions</a><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-symbol">[</span><a href="../modules/_types_d_.html#operatefunction" class="tsd-signature-type">OperateFunction</a><span class="tsd-signature-symbol">, </span><a href="../modules/_types_d_.html#operatecleanupfunction" class="tsd-signature-type">OperateCleanupFunction</a><span class="tsd-signature-symbol">]</span><span class="tsd-signature-symbol">&gt;</span></li>
-								</ul>
-								<ul class="tsd-descriptions">
-									<li class="tsd-description">
-										<h4 class="tsd-parameters-title">Parameters</h4>
-										<ul class="tsd-parameters">
-											<li>
-												<h5>path: <span class="tsd-signature-type">string</span></h5>
-											</li>
-											<li>
-												<h5><span class="tsd-flag ts-flagOptional">Optional</span> opts: <a href="_types_d_.operateoptions.html" class="tsd-signature-type">OperateOptions</a></h5>
-											</li>
-										</ul>
-										<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-symbol">[</span><a href="../modules/_types_d_.html#operatefunction" class="tsd-signature-type">OperateFunction</a><span class="tsd-signature-symbol">, </span><a href="../modules/_types_d_.html#operatecleanupfunction" class="tsd-signature-type">OperateCleanupFunction</a><span class="tsd-signature-symbol">]</span><span class="tsd-signature-symbol">&gt;</span></h4>
-									</li>
-								</ul>
-							</li>
-						</ul>
-					</div>
-				</section>
-				<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-interface">
-					<a name="resolve" class="tsd-anchor"></a>
-					<h3>resolve</h3>
-					<div class="tsd-signature tsd-kind-icon">resolve<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-symbol">(</span>msg<span class="tsd-signature-symbol">: </span><a href="../modules/_types_d_.html#jstype" class="tsd-signature-type">JSType</a>, level<span class="tsd-signature-symbol">?: </span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol"> =&gt; </span><span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><a href="../modules/_types_d_.html#jstype" class="tsd-signature-type">JSType</a><span class="tsd-signature-symbol">&gt;</span></div>
-					<aside class="tsd-sources">
-						<ul>
-							<li>Defined in src/types.d.ts:96</li>
-						</ul>
-					</aside>
-					<div class="tsd-comment tsd-typography">
-						<div class="lead">
-							<p>Resolve references in message</p>
-						</div>
-						<dl class="tsd-comment-tags">
-							<dt>param</dt>
-							<dd><p>Message with reference in it</p>
-							</dd>
-							<dt>param</dt>
-							<dd><p>Optional level of nesting to resolve to (avoid using high numbers)</p>
-								<pre><code><span class="hljs-selector-tag">await</span> <span class="hljs-selector-tag">usp</span><span class="hljs-selector-class">.get</span>(&quot;<span class="hljs-selector-tag">Device</span><span class="hljs-selector-class">.WiFi</span><span class="hljs-selector-class">.Radio</span>.1.&quot;)<span class="hljs-selector-class">.then</span>(<span class="hljs-selector-tag">device</span><span class="hljs-selector-class">.resolve</span>)</code></pre>
-							</dd>
-						</dl>
-					</div>
-					<div class="tsd-type-declaration">
-						<h4>Type declaration</h4>
-						<ul class="tsd-parameters">
-							<li class="tsd-parameter-signature">
-								<ul class="tsd-signatures tsd-kind-type-literal tsd-parent-kind-property">
-									<li class="tsd-signature tsd-kind-icon"><span class="tsd-signature-symbol">(</span>msg<span class="tsd-signature-symbol">: </span><a href="../modules/_types_d_.html#jstype" class="tsd-signature-type">JSType</a>, level<span class="tsd-signature-symbol">?: </span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><a href="../modules/_types_d_.html#jstype" class="tsd-signature-type">JSType</a><span class="tsd-signature-symbol">&gt;</span></li>
-								</ul>
-								<ul class="tsd-descriptions">
-									<li class="tsd-description">
-										<h4 class="tsd-parameters-title">Parameters</h4>
-										<ul class="tsd-parameters">
-											<li>
-												<h5>msg: <a href="../modules/_types_d_.html#jstype" class="tsd-signature-type">JSType</a></h5>
-											</li>
-											<li>
-												<h5><span class="tsd-flag ts-flagDefault value">Default value</span> level: <span class="tsd-signature-type">number</span><span class="tsd-signature-symbol"> = 1</span></h5>
-											</li>
-										</ul>
-										<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><a href="../modules/_types_d_.html#jstype" class="tsd-signature-type">JSType</a><span class="tsd-signature-symbol">&gt;</span></h4>
-									</li>
-								</ul>
-							</li>
-						</ul>
-					</div>
-				</section>
-				<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-interface">
-					<a name="roles" class="tsd-anchor"></a>
-					<h3>roles</h3>
-					<div class="tsd-signature tsd-kind-icon">roles<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol"> =&gt; </span><a href="../modules/_types_d_.html#role" class="tsd-signature-type">Role</a><span class="tsd-signature-symbol">[]</span></div>
-					<aside class="tsd-sources">
-						<ul>
-							<li>Defined in src/types.d.ts:110</li>
-						</ul>
-					</aside>
-					<div class="tsd-comment tsd-typography">
-						<div class="lead">
-							<p>Roles of current session</p>
-						</div>
-					</div>
-					<div class="tsd-type-declaration">
-						<h4>Type declaration</h4>
-						<ul class="tsd-parameters">
-							<li class="tsd-parameter-signature">
-								<ul class="tsd-signatures tsd-kind-type-literal tsd-parent-kind-property">
-									<li class="tsd-signature tsd-kind-icon"><span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="../modules/_types_d_.html#role" class="tsd-signature-type">Role</a><span class="tsd-signature-symbol">[]</span></li>
-								</ul>
-								<ul class="tsd-descriptions">
-									<li class="tsd-description">
-										<h4 class="tsd-returns-title">Returns <a href="../modules/_types_d_.html#role" class="tsd-signature-type">Role</a><span class="tsd-signature-symbol">[]</span></h4>
-									</li>
-								</ul>
-							</li>
-						</ul>
-					</div>
-				</section>
-				<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-interface">
-					<a name="set" class="tsd-anchor"></a>
-					<h3>set</h3>
-					<div class="tsd-signature tsd-kind-icon">set<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-symbol">(</span>path<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span>, value<span class="tsd-signature-symbol">: </span><a href="../modules/_types_d_.html#jstype" class="tsd-signature-type">JSType</a><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol"> =&gt; </span><span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">&gt;</span></div>
-					<aside class="tsd-sources">
-						<ul>
-							<li>Defined in src/types.d.ts:50</li>
-						</ul>
-					</aside>
-					<div class="tsd-comment tsd-typography">
-						<div class="lead">
-							<p>Set value at path</p>
-						</div>
-						<dl class="tsd-comment-tags">
-							<dt>param</dt>
-							<dd><p>Location of value (e.g. &quot;Device.DeviceInfo.&quot;)</p>
-							</dd>
-							<dt>param</dt>
-							<dd><p>Value to assign</p>
-								<pre><code><span class="hljs-selector-tag">await</span> <span class="hljs-selector-tag">usp</span><span class="hljs-selector-class">.set</span>(&quot;<span class="hljs-selector-tag">Device</span><span class="hljs-selector-class">.WiFi</span><span class="hljs-selector-class">.Radio</span>.1.&quot;, { <span class="hljs-attribute">Name</span>: <span class="hljs-string">&quot;radio-1&quot;</span> })
-// <span class="hljs-selector-tag">or</span>
-<span class="hljs-selector-tag">await</span> <span class="hljs-selector-tag">usp</span><span class="hljs-selector-class">.set</span>(&quot;<span class="hljs-selector-tag">Device</span><span class="hljs-selector-class">.WiFi</span><span class="hljs-selector-class">.Radio</span>.1<span class="hljs-selector-class">.Name</span>&quot;, &quot;<span class="hljs-selector-tag">radio-1</span>&quot;)</code></pre>
-							</dd>
-						</dl>
-					</div>
-					<div class="tsd-type-declaration">
-						<h4>Type declaration</h4>
-						<ul class="tsd-parameters">
-							<li class="tsd-parameter-signature">
-								<ul class="tsd-signatures tsd-kind-type-literal tsd-parent-kind-property">
-									<li class="tsd-signature tsd-kind-icon"><span class="tsd-signature-symbol">(</span>path<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span>, value<span class="tsd-signature-symbol">: </span><a href="../modules/_types_d_.html#jstype" class="tsd-signature-type">JSType</a><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">&gt;</span></li>
-								</ul>
-								<ul class="tsd-descriptions">
-									<li class="tsd-description">
-										<h4 class="tsd-parameters-title">Parameters</h4>
-										<ul class="tsd-parameters">
-											<li>
-												<h5>path: <span class="tsd-signature-type">string</span></h5>
-											</li>
-											<li>
-												<h5>value: <a href="../modules/_types_d_.html#jstype" class="tsd-signature-type">JSType</a></h5>
-											</li>
-										</ul>
-										<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">&gt;</span></h4>
-									</li>
-								</ul>
-							</li>
-						</ul>
-					</div>
-				</section>
-			</section>
-		</div>
-		<div class="col-4 col-menu menu-sticky-wrap menu-highlight">
-			<nav class="tsd-navigation primary">
-				<ul>
-					<li class="globals  ">
-						<a href="../globals.html"><em>Globals</em></a>
-					</li>
-					<li class=" tsd-kind-module">
-						<a href="../modules/_index_.html">&quot;index&quot;</a>
-					</li>
-					<li class=" tsd-kind-module">
-						<a href="../modules/_lib_.html">&quot;lib&quot;</a>
-					</li>
-					<li class=" tsd-kind-module">
-						<a href="../modules/_protocol_index_.html">&quot;protocol/index&quot;</a>
-					</li>
-					<li class=" tsd-kind-module">
-						<a href="../modules/_protocol_js_usp_protobuf_protomessage_.html">&quot;protocol/js-<wbr>usp-<wbr>protobuf/proto<wbr>Message&quot;</a>
-					</li>
-					<li class=" tsd-kind-module">
-						<a href="../modules/_protocol_lib_.html">&quot;protocol/lib&quot;</a>
-					</li>
-					<li class="current tsd-kind-module">
-						<a href="../modules/_types_d_.html">&quot;types.d&quot;</a>
-					</li>
-				</ul>
-			</nav>
-			<nav class="tsd-navigation secondary menu-sticky">
-				<ul class="before-current">
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.addmessage.html" class="tsd-kind-icon">Add<wbr>Message</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.basemessage.html" class="tsd-kind-icon">Base<wbr>Message</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.connectevents.html" class="tsd-kind-icon">Connect<wbr>Events</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.connectoptions.html" class="tsd-kind-icon">Connect<wbr>Options</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.deletemessage.html" class="tsd-kind-icon">Delete<wbr>Message</a>
-					</li>
-				</ul>
-				<ul class="current">
-					<li class="current tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.device.html" class="tsd-kind-icon">Device</a>
-						<ul>
-							<li class=" tsd-kind-property tsd-parent-kind-interface">
-								<a href="_types_d_.device.html#add" class="tsd-kind-icon">add</a>
-							</li>
-							<li class=" tsd-kind-property tsd-parent-kind-interface">
-								<a href="_types_d_.device.html#del" class="tsd-kind-icon">del</a>
-							</li>
-							<li class=" tsd-kind-property tsd-parent-kind-interface">
-								<a href="_types_d_.device.html#disconnect" class="tsd-kind-icon">disconnect</a>
-							</li>
-							<li class=" tsd-kind-property tsd-parent-kind-interface">
-								<a href="_types_d_.device.html#get" class="tsd-kind-icon">get</a>
-							</li>
-							<li class=" tsd-kind-property tsd-parent-kind-interface">
-								<a href="_types_d_.device.html#id" class="tsd-kind-icon">id</a>
-							</li>
-							<li class=" tsd-kind-property tsd-parent-kind-interface">
-								<a href="_types_d_.device.html#operate" class="tsd-kind-icon">operate</a>
-							</li>
-							<li class=" tsd-kind-property tsd-parent-kind-interface">
-								<a href="_types_d_.device.html#resolve" class="tsd-kind-icon">resolve</a>
-							</li>
-							<li class=" tsd-kind-property tsd-parent-kind-interface">
-								<a href="_types_d_.device.html#roles" class="tsd-kind-icon">roles</a>
-							</li>
-							<li class=" tsd-kind-property tsd-parent-kind-interface">
-								<a href="_types_d_.device.html#set" class="tsd-kind-icon">set</a>
-							</li>
-						</ul>
-					</li>
-				</ul>
-				<ul class="after-current">
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.deviceerror.html" class="tsd-kind-icon">Device<wbr>Error</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.encodeargs.html" class="tsd-kind-icon">Encode<wbr>Args</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.errormessage.html" class="tsd-kind-icon">Error<wbr>Message</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.getmessage.html" class="tsd-kind-icon">Get<wbr>Message</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.initresult.html" class="tsd-kind-icon">Init<wbr>Result</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.mqttrequest.html" class="tsd-kind-icon">MQTTRequest</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.notifymessage.html" class="tsd-kind-icon">Notify<wbr>Message</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.operatemessage.html" class="tsd-kind-icon">Operate<wbr>Message</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.operateoptions.html" class="tsd-kind-icon">Operate<wbr>Options</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.protocol.html" class="tsd-kind-icon">Protocol</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.protocolargs.html" class="tsd-kind-icon">Protocol<wbr>Args</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.protocolevents.html" class="tsd-kind-icon">Protocol<wbr>Events</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.setmessage.html" class="tsd-kind-icon">Set<wbr>Message</a>
-					</li>
-					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
-						<a href="../modules/_types_d_.html#commandtype" class="tsd-kind-icon">Command<wbr>Type</a>
-					</li>
-					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
-						<a href="../modules/_types_d_.html#iclientoptions" class="tsd-kind-icon">IClient<wbr>Options</a>
-					</li>
-					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
-						<a href="../modules/_types_d_.html#jsobject" class="tsd-kind-icon">JSObject</a>
-					</li>
-					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
-						<a href="../modules/_types_d_.html#jstype" class="tsd-kind-icon">JSType</a>
-					</li>
-					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
-						<a href="../modules/_types_d_.html#messagetype" class="tsd-kind-icon">Message<wbr>Type</a>
-					</li>
-					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
-						<a href="../modules/_types_d_.html#operatecleanupfunction" class="tsd-kind-icon">Operate<wbr>Cleanup<wbr>Function</a>
-					</li>
-					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
-						<a href="../modules/_types_d_.html#operatefunction" class="tsd-kind-icon">Operate<wbr>Function</a>
-					</li>
-					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
-						<a href="../modules/_types_d_.html#promiseresult" class="tsd-kind-icon">Promise<wbr>Result</a>
-					</li>
-					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
-						<a href="../modules/_types_d_.html#rejectfn" class="tsd-kind-icon">Reject<wbr>Fn</a>
-					</li>
-					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
-						<a href="../modules/_types_d_.html#role" class="tsd-kind-icon">Role</a>
-					</li>
-					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
-						<a href="../modules/_types_d_.html#router" class="tsd-kind-icon">Router</a>
-					</li>
-					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
-						<a href="../modules/_types_d_.html#sendfn" class="tsd-kind-icon">Send<wbr>Fn</a>
-					</li>
-					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
-						<a href="../modules/_types_d_.html#uspmessage" class="tsd-kind-icon">USPMessage</a>
-					</li>
-				</ul>
-			</nav>
-		</div>
-	</div>
-</div>
-<footer class="with-border-bottom">
-	<div class="container">
-		<h2>Legend</h2>
-		<div class="tsd-legend-group">
-			<ul class="tsd-legend">
-				<li class="tsd-kind-variable"><span class="tsd-kind-icon">Variable</span></li>
-				<li class="tsd-kind-function"><span class="tsd-kind-icon">Function</span></li>
-				<li class="tsd-kind-type-alias"><span class="tsd-kind-icon">Type alias</span></li>
-			</ul>
-			<ul class="tsd-legend">
-				<li class="tsd-kind-interface"><span class="tsd-kind-icon">Interface</span></li>
-				<li class="tsd-kind-property tsd-parent-kind-interface"><span class="tsd-kind-icon">Property</span></li>
-			</ul>
-		</div>
-	</div>
-</footer>
-<div class="container tsd-generator">
-	<p>Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p>
-</div>
-<div class="overlay"></div>
-<script src="../assets/js/main.js"></script>
-</body>
-</html>
\ No newline at end of file
diff --git a/public/interfaces/_types_d_.deviceerror.html b/public/interfaces/_types_d_.deviceerror.html
deleted file mode 100644
index 0bd8c7d1510ccbd1e6e777666d7ef3e35046e100..0000000000000000000000000000000000000000
--- a/public/interfaces/_types_d_.deviceerror.html
+++ /dev/null
@@ -1,302 +0,0 @@
-<!doctype html>
-<html class="default no-js">
-<head>
-	<meta charset="utf-8">
-	<meta http-equiv="X-UA-Compatible" content="IE=edge">
-	<title>DeviceError | usp-js</title>
-	<meta name="description" content="Documentation for usp-js">
-	<meta name="viewport" content="width=device-width, initial-scale=1">
-	<link rel="stylesheet" href="../assets/css/main.css">
-</head>
-<body>
-<header>
-	<div class="tsd-page-toolbar">
-		<div class="container">
-			<div class="table-wrap">
-				<div class="table-cell" id="tsd-search" data-index="../assets/js/search.json" data-base="..">
-					<div class="field">
-						<label for="tsd-search-field" class="tsd-widget search no-caption">Search</label>
-						<input id="tsd-search-field" type="text" />
-					</div>
-					<ul class="results">
-						<li class="state loading">Preparing search index...</li>
-						<li class="state failure">The search index is not available</li>
-					</ul>
-					<a href="../index.html" class="title">usp-js</a>
-				</div>
-				<div class="table-cell" id="tsd-widgets">
-					<div id="tsd-filter">
-						<a href="#" class="tsd-widget options no-caption" data-toggle="options">Options</a>
-						<div class="tsd-filter-group">
-							<div class="tsd-select" id="tsd-filter-visibility">
-								<span class="tsd-select-label">All</span>
-								<ul class="tsd-select-list">
-									<li data-value="public">Public</li>
-									<li data-value="protected">Public/Protected</li>
-									<li data-value="private" class="selected">All</li>
-								</ul>
-							</div>
-							<input type="checkbox" id="tsd-filter-inherited" checked />
-							<label class="tsd-widget" for="tsd-filter-inherited">Inherited</label>
-							<input type="checkbox" id="tsd-filter-externals" checked />
-							<label class="tsd-widget" for="tsd-filter-externals">Externals</label>
-							<input type="checkbox" id="tsd-filter-only-exported" />
-							<label class="tsd-widget" for="tsd-filter-only-exported">Only exported</label>
-						</div>
-					</div>
-					<a href="#" class="tsd-widget menu no-caption" data-toggle="menu">Menu</a>
-				</div>
-			</div>
-		</div>
-	</div>
-	<div class="tsd-page-title">
-		<div class="container">
-			<ul class="tsd-breadcrumb">
-				<li>
-					<a href="../globals.html">Globals</a>
-				</li>
-				<li>
-					<a href="../modules/_types_d_.html">&quot;types.d&quot;</a>
-				</li>
-				<li>
-					<a href="_types_d_.deviceerror.html">DeviceError</a>
-				</li>
-			</ul>
-			<h1>Interface DeviceError</h1>
-		</div>
-	</div>
-</header>
-<div class="container container-main">
-	<div class="row">
-		<div class="col-8 col-content">
-			<section class="tsd-panel tsd-comment">
-				<div class="tsd-comment tsd-typography">
-					<div class="lead">
-						<p>User error message</p>
-					</div>
-				</div>
-			</section>
-			<section class="tsd-panel tsd-hierarchy">
-				<h3>Hierarchy</h3>
-				<ul class="tsd-hierarchy">
-					<li>
-						<span class="target">DeviceError</span>
-					</li>
-				</ul>
-			</section>
-			<section class="tsd-panel-group tsd-index-group">
-				<h2>Index</h2>
-				<section class="tsd-panel tsd-index-panel">
-					<div class="tsd-index-content">
-						<section class="tsd-index-section ">
-							<h3>Properties</h3>
-							<ul class="tsd-index-list">
-								<li class="tsd-kind-property tsd-parent-kind-interface"><a href="_types_d_.deviceerror.html#path" class="tsd-kind-icon">path</a></li>
-								<li class="tsd-kind-property tsd-parent-kind-interface"><a href="_types_d_.deviceerror.html#reason" class="tsd-kind-icon">reason</a></li>
-								<li class="tsd-kind-property tsd-parent-kind-interface"><a href="_types_d_.deviceerror.html#type" class="tsd-kind-icon">type</a></li>
-							</ul>
-						</section>
-					</div>
-				</section>
-			</section>
-			<section class="tsd-panel-group tsd-member-group ">
-				<h2>Properties</h2>
-				<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-interface">
-					<a name="path" class="tsd-anchor"></a>
-					<h3><span class="tsd-flag ts-flagOptional">Optional</span> path</h3>
-					<div class="tsd-signature tsd-kind-icon">path<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">undefined</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">string</span></div>
-					<aside class="tsd-sources">
-						<ul>
-							<li>Defined in src/types.d.ts:150</li>
-						</ul>
-					</aside>
-				</section>
-				<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-interface">
-					<a name="reason" class="tsd-anchor"></a>
-					<h3>reason</h3>
-					<div class="tsd-signature tsd-kind-icon">reason<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span></div>
-					<aside class="tsd-sources">
-						<ul>
-							<li>Defined in src/types.d.ts:149</li>
-						</ul>
-					</aside>
-				</section>
-				<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-interface">
-					<a name="type" class="tsd-anchor"></a>
-					<h3>type</h3>
-					<div class="tsd-signature tsd-kind-icon">type<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">"error"</span></div>
-					<aside class="tsd-sources">
-						<ul>
-							<li>Defined in src/types.d.ts:148</li>
-						</ul>
-					</aside>
-				</section>
-			</section>
-		</div>
-		<div class="col-4 col-menu menu-sticky-wrap menu-highlight">
-			<nav class="tsd-navigation primary">
-				<ul>
-					<li class="globals  ">
-						<a href="../globals.html"><em>Globals</em></a>
-					</li>
-					<li class=" tsd-kind-module">
-						<a href="../modules/_index_.html">&quot;index&quot;</a>
-					</li>
-					<li class=" tsd-kind-module">
-						<a href="../modules/_lib_.html">&quot;lib&quot;</a>
-					</li>
-					<li class=" tsd-kind-module">
-						<a href="../modules/_protocol_index_.html">&quot;protocol/index&quot;</a>
-					</li>
-					<li class=" tsd-kind-module">
-						<a href="../modules/_protocol_js_usp_protobuf_protomessage_.html">&quot;protocol/js-<wbr>usp-<wbr>protobuf/proto<wbr>Message&quot;</a>
-					</li>
-					<li class=" tsd-kind-module">
-						<a href="../modules/_protocol_lib_.html">&quot;protocol/lib&quot;</a>
-					</li>
-					<li class="current tsd-kind-module">
-						<a href="../modules/_types_d_.html">&quot;types.d&quot;</a>
-					</li>
-				</ul>
-			</nav>
-			<nav class="tsd-navigation secondary menu-sticky">
-				<ul class="before-current">
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.addmessage.html" class="tsd-kind-icon">Add<wbr>Message</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.basemessage.html" class="tsd-kind-icon">Base<wbr>Message</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.connectevents.html" class="tsd-kind-icon">Connect<wbr>Events</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.connectoptions.html" class="tsd-kind-icon">Connect<wbr>Options</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.deletemessage.html" class="tsd-kind-icon">Delete<wbr>Message</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.device.html" class="tsd-kind-icon">Device</a>
-					</li>
-				</ul>
-				<ul class="current">
-					<li class="current tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.deviceerror.html" class="tsd-kind-icon">Device<wbr>Error</a>
-						<ul>
-							<li class=" tsd-kind-property tsd-parent-kind-interface">
-								<a href="_types_d_.deviceerror.html#path" class="tsd-kind-icon">path</a>
-							</li>
-							<li class=" tsd-kind-property tsd-parent-kind-interface">
-								<a href="_types_d_.deviceerror.html#reason" class="tsd-kind-icon">reason</a>
-							</li>
-							<li class=" tsd-kind-property tsd-parent-kind-interface">
-								<a href="_types_d_.deviceerror.html#type" class="tsd-kind-icon">type</a>
-							</li>
-						</ul>
-					</li>
-				</ul>
-				<ul class="after-current">
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.encodeargs.html" class="tsd-kind-icon">Encode<wbr>Args</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.errormessage.html" class="tsd-kind-icon">Error<wbr>Message</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.getmessage.html" class="tsd-kind-icon">Get<wbr>Message</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.initresult.html" class="tsd-kind-icon">Init<wbr>Result</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.mqttrequest.html" class="tsd-kind-icon">MQTTRequest</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.notifymessage.html" class="tsd-kind-icon">Notify<wbr>Message</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.operatemessage.html" class="tsd-kind-icon">Operate<wbr>Message</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.operateoptions.html" class="tsd-kind-icon">Operate<wbr>Options</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.protocol.html" class="tsd-kind-icon">Protocol</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.protocolargs.html" class="tsd-kind-icon">Protocol<wbr>Args</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.protocolevents.html" class="tsd-kind-icon">Protocol<wbr>Events</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.setmessage.html" class="tsd-kind-icon">Set<wbr>Message</a>
-					</li>
-					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
-						<a href="../modules/_types_d_.html#commandtype" class="tsd-kind-icon">Command<wbr>Type</a>
-					</li>
-					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
-						<a href="../modules/_types_d_.html#iclientoptions" class="tsd-kind-icon">IClient<wbr>Options</a>
-					</li>
-					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
-						<a href="../modules/_types_d_.html#jsobject" class="tsd-kind-icon">JSObject</a>
-					</li>
-					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
-						<a href="../modules/_types_d_.html#jstype" class="tsd-kind-icon">JSType</a>
-					</li>
-					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
-						<a href="../modules/_types_d_.html#messagetype" class="tsd-kind-icon">Message<wbr>Type</a>
-					</li>
-					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
-						<a href="../modules/_types_d_.html#operatecleanupfunction" class="tsd-kind-icon">Operate<wbr>Cleanup<wbr>Function</a>
-					</li>
-					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
-						<a href="../modules/_types_d_.html#operatefunction" class="tsd-kind-icon">Operate<wbr>Function</a>
-					</li>
-					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
-						<a href="../modules/_types_d_.html#promiseresult" class="tsd-kind-icon">Promise<wbr>Result</a>
-					</li>
-					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
-						<a href="../modules/_types_d_.html#rejectfn" class="tsd-kind-icon">Reject<wbr>Fn</a>
-					</li>
-					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
-						<a href="../modules/_types_d_.html#role" class="tsd-kind-icon">Role</a>
-					</li>
-					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
-						<a href="../modules/_types_d_.html#router" class="tsd-kind-icon">Router</a>
-					</li>
-					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
-						<a href="../modules/_types_d_.html#sendfn" class="tsd-kind-icon">Send<wbr>Fn</a>
-					</li>
-					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
-						<a href="../modules/_types_d_.html#uspmessage" class="tsd-kind-icon">USPMessage</a>
-					</li>
-				</ul>
-			</nav>
-		</div>
-	</div>
-</div>
-<footer class="with-border-bottom">
-	<div class="container">
-		<h2>Legend</h2>
-		<div class="tsd-legend-group">
-			<ul class="tsd-legend">
-				<li class="tsd-kind-variable"><span class="tsd-kind-icon">Variable</span></li>
-				<li class="tsd-kind-function"><span class="tsd-kind-icon">Function</span></li>
-				<li class="tsd-kind-type-alias"><span class="tsd-kind-icon">Type alias</span></li>
-			</ul>
-			<ul class="tsd-legend">
-				<li class="tsd-kind-interface"><span class="tsd-kind-icon">Interface</span></li>
-				<li class="tsd-kind-property tsd-parent-kind-interface"><span class="tsd-kind-icon">Property</span></li>
-			</ul>
-		</div>
-	</div>
-</footer>
-<div class="container tsd-generator">
-	<p>Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p>
-</div>
-<div class="overlay"></div>
-<script src="../assets/js/main.js"></script>
-</body>
-</html>
\ No newline at end of file
diff --git a/public/interfaces/_types_d_.encodeargs.html b/public/interfaces/_types_d_.encodeargs.html
deleted file mode 100644
index 74bc8d1bbefdeba661181b9ab34822087cef752a..0000000000000000000000000000000000000000
--- a/public/interfaces/_types_d_.encodeargs.html
+++ /dev/null
@@ -1,344 +0,0 @@
-<!doctype html>
-<html class="default no-js">
-<head>
-	<meta charset="utf-8">
-	<meta http-equiv="X-UA-Compatible" content="IE=edge">
-	<title>EncodeArgs | usp-js</title>
-	<meta name="description" content="Documentation for usp-js">
-	<meta name="viewport" content="width=device-width, initial-scale=1">
-	<link rel="stylesheet" href="../assets/css/main.css">
-</head>
-<body>
-<header>
-	<div class="tsd-page-toolbar">
-		<div class="container">
-			<div class="table-wrap">
-				<div class="table-cell" id="tsd-search" data-index="../assets/js/search.json" data-base="..">
-					<div class="field">
-						<label for="tsd-search-field" class="tsd-widget search no-caption">Search</label>
-						<input id="tsd-search-field" type="text" />
-					</div>
-					<ul class="results">
-						<li class="state loading">Preparing search index...</li>
-						<li class="state failure">The search index is not available</li>
-					</ul>
-					<a href="../index.html" class="title">usp-js</a>
-				</div>
-				<div class="table-cell" id="tsd-widgets">
-					<div id="tsd-filter">
-						<a href="#" class="tsd-widget options no-caption" data-toggle="options">Options</a>
-						<div class="tsd-filter-group">
-							<div class="tsd-select" id="tsd-filter-visibility">
-								<span class="tsd-select-label">All</span>
-								<ul class="tsd-select-list">
-									<li data-value="public">Public</li>
-									<li data-value="protected">Public/Protected</li>
-									<li data-value="private" class="selected">All</li>
-								</ul>
-							</div>
-							<input type="checkbox" id="tsd-filter-inherited" checked />
-							<label class="tsd-widget" for="tsd-filter-inherited">Inherited</label>
-							<input type="checkbox" id="tsd-filter-externals" checked />
-							<label class="tsd-widget" for="tsd-filter-externals">Externals</label>
-							<input type="checkbox" id="tsd-filter-only-exported" />
-							<label class="tsd-widget" for="tsd-filter-only-exported">Only exported</label>
-						</div>
-					</div>
-					<a href="#" class="tsd-widget menu no-caption" data-toggle="menu">Menu</a>
-				</div>
-			</div>
-		</div>
-	</div>
-	<div class="tsd-page-title">
-		<div class="container">
-			<ul class="tsd-breadcrumb">
-				<li>
-					<a href="../globals.html">Globals</a>
-				</li>
-				<li>
-					<a href="../modules/_types_d_.html">&quot;types.d&quot;</a>
-				</li>
-				<li>
-					<a href="_types_d_.encodeargs.html">EncodeArgs</a>
-				</li>
-			</ul>
-			<h1>Interface EncodeArgs</h1>
-		</div>
-	</div>
-</header>
-<div class="container container-main">
-	<div class="row">
-		<div class="col-8 col-content">
-			<section class="tsd-panel tsd-comment">
-				<div class="tsd-comment tsd-typography">
-					<div class="lead">
-						<p>Arguments for encoding commands</p>
-					</div>
-				</div>
-			</section>
-			<section class="tsd-panel tsd-hierarchy">
-				<h3>Hierarchy</h3>
-				<ul class="tsd-hierarchy">
-					<li>
-						<span class="target">EncodeArgs</span>
-					</li>
-				</ul>
-			</section>
-			<section class="tsd-panel-group tsd-index-group">
-				<h2>Index</h2>
-				<section class="tsd-panel tsd-index-panel">
-					<div class="tsd-index-content">
-						<section class="tsd-index-section ">
-							<h3>Properties</h3>
-							<ul class="tsd-index-list">
-								<li class="tsd-kind-property tsd-parent-kind-interface"><a href="_types_d_.encodeargs.html#action" class="tsd-kind-icon">action</a></li>
-								<li class="tsd-kind-property tsd-parent-kind-interface"><a href="_types_d_.encodeargs.html#input" class="tsd-kind-icon">input</a></li>
-								<li class="tsd-kind-property tsd-parent-kind-interface"><a href="_types_d_.encodeargs.html#operateid" class="tsd-kind-icon">operateID</a></li>
-								<li class="tsd-kind-property tsd-parent-kind-interface"><a href="_types_d_.encodeargs.html#path" class="tsd-kind-icon">path</a></li>
-								<li class="tsd-kind-property tsd-parent-kind-interface"><a href="_types_d_.encodeargs.html#paths" class="tsd-kind-icon">paths</a></li>
-								<li class="tsd-kind-property tsd-parent-kind-interface"><a href="_types_d_.encodeargs.html#value" class="tsd-kind-icon">value</a></li>
-							</ul>
-						</section>
-					</div>
-				</section>
-			</section>
-			<section class="tsd-panel-group tsd-member-group ">
-				<h2>Properties</h2>
-				<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-interface">
-					<a name="action" class="tsd-anchor"></a>
-					<h3>action</h3>
-					<div class="tsd-signature tsd-kind-icon">action<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span></div>
-					<aside class="tsd-sources">
-						<ul>
-							<li>Defined in src/types.d.ts:132</li>
-						</ul>
-					</aside>
-				</section>
-				<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-interface">
-					<a name="input" class="tsd-anchor"></a>
-					<h3>input</h3>
-					<div class="tsd-signature tsd-kind-icon">input<span class="tsd-signature-symbol">:</span> <a href="../modules/_types_d_.html#jsobject" class="tsd-signature-type">JSObject</a></div>
-					<aside class="tsd-sources">
-						<ul>
-							<li>Defined in src/types.d.ts:131</li>
-						</ul>
-					</aside>
-				</section>
-				<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-interface">
-					<a name="operateid" class="tsd-anchor"></a>
-					<h3>operateID</h3>
-					<div class="tsd-signature tsd-kind-icon">operateID<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span></div>
-					<aside class="tsd-sources">
-						<ul>
-							<li>Defined in src/types.d.ts:133</li>
-						</ul>
-					</aside>
-				</section>
-				<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-interface">
-					<a name="path" class="tsd-anchor"></a>
-					<h3>path</h3>
-					<div class="tsd-signature tsd-kind-icon">path<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span></div>
-					<aside class="tsd-sources">
-						<ul>
-							<li>Defined in src/types.d.ts:128</li>
-						</ul>
-					</aside>
-				</section>
-				<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-interface">
-					<a name="paths" class="tsd-anchor"></a>
-					<h3>paths</h3>
-					<div class="tsd-signature tsd-kind-icon">paths<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">[]</span></div>
-					<aside class="tsd-sources">
-						<ul>
-							<li>Defined in src/types.d.ts:129</li>
-						</ul>
-					</aside>
-				</section>
-				<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-interface">
-					<a name="value" class="tsd-anchor"></a>
-					<h3>value</h3>
-					<div class="tsd-signature tsd-kind-icon">value<span class="tsd-signature-symbol">:</span> <a href="../modules/_types_d_.html#jstype" class="tsd-signature-type">JSType</a></div>
-					<aside class="tsd-sources">
-						<ul>
-							<li>Defined in src/types.d.ts:130</li>
-						</ul>
-					</aside>
-				</section>
-			</section>
-		</div>
-		<div class="col-4 col-menu menu-sticky-wrap menu-highlight">
-			<nav class="tsd-navigation primary">
-				<ul>
-					<li class="globals  ">
-						<a href="../globals.html"><em>Globals</em></a>
-					</li>
-					<li class=" tsd-kind-module">
-						<a href="../modules/_index_.html">&quot;index&quot;</a>
-					</li>
-					<li class=" tsd-kind-module">
-						<a href="../modules/_lib_.html">&quot;lib&quot;</a>
-					</li>
-					<li class=" tsd-kind-module">
-						<a href="../modules/_protocol_index_.html">&quot;protocol/index&quot;</a>
-					</li>
-					<li class=" tsd-kind-module">
-						<a href="../modules/_protocol_js_usp_protobuf_protomessage_.html">&quot;protocol/js-<wbr>usp-<wbr>protobuf/proto<wbr>Message&quot;</a>
-					</li>
-					<li class=" tsd-kind-module">
-						<a href="../modules/_protocol_lib_.html">&quot;protocol/lib&quot;</a>
-					</li>
-					<li class="current tsd-kind-module">
-						<a href="../modules/_types_d_.html">&quot;types.d&quot;</a>
-					</li>
-				</ul>
-			</nav>
-			<nav class="tsd-navigation secondary menu-sticky">
-				<ul class="before-current">
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.addmessage.html" class="tsd-kind-icon">Add<wbr>Message</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.basemessage.html" class="tsd-kind-icon">Base<wbr>Message</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.connectevents.html" class="tsd-kind-icon">Connect<wbr>Events</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.connectoptions.html" class="tsd-kind-icon">Connect<wbr>Options</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.deletemessage.html" class="tsd-kind-icon">Delete<wbr>Message</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.device.html" class="tsd-kind-icon">Device</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.deviceerror.html" class="tsd-kind-icon">Device<wbr>Error</a>
-					</li>
-				</ul>
-				<ul class="current">
-					<li class="current tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.encodeargs.html" class="tsd-kind-icon">Encode<wbr>Args</a>
-						<ul>
-							<li class=" tsd-kind-property tsd-parent-kind-interface">
-								<a href="_types_d_.encodeargs.html#action" class="tsd-kind-icon">action</a>
-							</li>
-							<li class=" tsd-kind-property tsd-parent-kind-interface">
-								<a href="_types_d_.encodeargs.html#input" class="tsd-kind-icon">input</a>
-							</li>
-							<li class=" tsd-kind-property tsd-parent-kind-interface">
-								<a href="_types_d_.encodeargs.html#operateid" class="tsd-kind-icon">operateID</a>
-							</li>
-							<li class=" tsd-kind-property tsd-parent-kind-interface">
-								<a href="_types_d_.encodeargs.html#path" class="tsd-kind-icon">path</a>
-							</li>
-							<li class=" tsd-kind-property tsd-parent-kind-interface">
-								<a href="_types_d_.encodeargs.html#paths" class="tsd-kind-icon">paths</a>
-							</li>
-							<li class=" tsd-kind-property tsd-parent-kind-interface">
-								<a href="_types_d_.encodeargs.html#value" class="tsd-kind-icon">value</a>
-							</li>
-						</ul>
-					</li>
-				</ul>
-				<ul class="after-current">
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.errormessage.html" class="tsd-kind-icon">Error<wbr>Message</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.getmessage.html" class="tsd-kind-icon">Get<wbr>Message</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.initresult.html" class="tsd-kind-icon">Init<wbr>Result</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.mqttrequest.html" class="tsd-kind-icon">MQTTRequest</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.notifymessage.html" class="tsd-kind-icon">Notify<wbr>Message</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.operatemessage.html" class="tsd-kind-icon">Operate<wbr>Message</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.operateoptions.html" class="tsd-kind-icon">Operate<wbr>Options</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.protocol.html" class="tsd-kind-icon">Protocol</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.protocolargs.html" class="tsd-kind-icon">Protocol<wbr>Args</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.protocolevents.html" class="tsd-kind-icon">Protocol<wbr>Events</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.setmessage.html" class="tsd-kind-icon">Set<wbr>Message</a>
-					</li>
-					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
-						<a href="../modules/_types_d_.html#commandtype" class="tsd-kind-icon">Command<wbr>Type</a>
-					</li>
-					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
-						<a href="../modules/_types_d_.html#iclientoptions" class="tsd-kind-icon">IClient<wbr>Options</a>
-					</li>
-					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
-						<a href="../modules/_types_d_.html#jsobject" class="tsd-kind-icon">JSObject</a>
-					</li>
-					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
-						<a href="../modules/_types_d_.html#jstype" class="tsd-kind-icon">JSType</a>
-					</li>
-					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
-						<a href="../modules/_types_d_.html#messagetype" class="tsd-kind-icon">Message<wbr>Type</a>
-					</li>
-					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
-						<a href="../modules/_types_d_.html#operatecleanupfunction" class="tsd-kind-icon">Operate<wbr>Cleanup<wbr>Function</a>
-					</li>
-					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
-						<a href="../modules/_types_d_.html#operatefunction" class="tsd-kind-icon">Operate<wbr>Function</a>
-					</li>
-					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
-						<a href="../modules/_types_d_.html#promiseresult" class="tsd-kind-icon">Promise<wbr>Result</a>
-					</li>
-					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
-						<a href="../modules/_types_d_.html#rejectfn" class="tsd-kind-icon">Reject<wbr>Fn</a>
-					</li>
-					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
-						<a href="../modules/_types_d_.html#role" class="tsd-kind-icon">Role</a>
-					</li>
-					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
-						<a href="../modules/_types_d_.html#router" class="tsd-kind-icon">Router</a>
-					</li>
-					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
-						<a href="../modules/_types_d_.html#sendfn" class="tsd-kind-icon">Send<wbr>Fn</a>
-					</li>
-					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
-						<a href="../modules/_types_d_.html#uspmessage" class="tsd-kind-icon">USPMessage</a>
-					</li>
-				</ul>
-			</nav>
-		</div>
-	</div>
-</div>
-<footer class="with-border-bottom">
-	<div class="container">
-		<h2>Legend</h2>
-		<div class="tsd-legend-group">
-			<ul class="tsd-legend">
-				<li class="tsd-kind-variable"><span class="tsd-kind-icon">Variable</span></li>
-				<li class="tsd-kind-function"><span class="tsd-kind-icon">Function</span></li>
-				<li class="tsd-kind-type-alias"><span class="tsd-kind-icon">Type alias</span></li>
-			</ul>
-			<ul class="tsd-legend">
-				<li class="tsd-kind-interface"><span class="tsd-kind-icon">Interface</span></li>
-				<li class="tsd-kind-property tsd-parent-kind-interface"><span class="tsd-kind-icon">Property</span></li>
-			</ul>
-		</div>
-	</div>
-</footer>
-<div class="container tsd-generator">
-	<p>Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p>
-</div>
-<div class="overlay"></div>
-<script src="../assets/js/main.js"></script>
-</body>
-</html>
\ No newline at end of file
diff --git a/public/interfaces/_types_d_.errormessage.html b/public/interfaces/_types_d_.errormessage.html
deleted file mode 100644
index 1e895b5eba99e13e8541172e42d3d6690778849e..0000000000000000000000000000000000000000
--- a/public/interfaces/_types_d_.errormessage.html
+++ /dev/null
@@ -1,333 +0,0 @@
-<!doctype html>
-<html class="default no-js">
-<head>
-	<meta charset="utf-8">
-	<meta http-equiv="X-UA-Compatible" content="IE=edge">
-	<title>ErrorMessage | usp-js</title>
-	<meta name="description" content="Documentation for usp-js">
-	<meta name="viewport" content="width=device-width, initial-scale=1">
-	<link rel="stylesheet" href="../assets/css/main.css">
-</head>
-<body>
-<header>
-	<div class="tsd-page-toolbar">
-		<div class="container">
-			<div class="table-wrap">
-				<div class="table-cell" id="tsd-search" data-index="../assets/js/search.json" data-base="..">
-					<div class="field">
-						<label for="tsd-search-field" class="tsd-widget search no-caption">Search</label>
-						<input id="tsd-search-field" type="text" />
-					</div>
-					<ul class="results">
-						<li class="state loading">Preparing search index...</li>
-						<li class="state failure">The search index is not available</li>
-					</ul>
-					<a href="../index.html" class="title">usp-js</a>
-				</div>
-				<div class="table-cell" id="tsd-widgets">
-					<div id="tsd-filter">
-						<a href="#" class="tsd-widget options no-caption" data-toggle="options">Options</a>
-						<div class="tsd-filter-group">
-							<div class="tsd-select" id="tsd-filter-visibility">
-								<span class="tsd-select-label">All</span>
-								<ul class="tsd-select-list">
-									<li data-value="public">Public</li>
-									<li data-value="protected">Public/Protected</li>
-									<li data-value="private" class="selected">All</li>
-								</ul>
-							</div>
-							<input type="checkbox" id="tsd-filter-inherited" checked />
-							<label class="tsd-widget" for="tsd-filter-inherited">Inherited</label>
-							<input type="checkbox" id="tsd-filter-externals" checked />
-							<label class="tsd-widget" for="tsd-filter-externals">Externals</label>
-							<input type="checkbox" id="tsd-filter-only-exported" />
-							<label class="tsd-widget" for="tsd-filter-only-exported">Only exported</label>
-						</div>
-					</div>
-					<a href="#" class="tsd-widget menu no-caption" data-toggle="menu">Menu</a>
-				</div>
-			</div>
-		</div>
-	</div>
-	<div class="tsd-page-title">
-		<div class="container">
-			<ul class="tsd-breadcrumb">
-				<li>
-					<a href="../globals.html">Globals</a>
-				</li>
-				<li>
-					<a href="../modules/_types_d_.html">&quot;types.d&quot;</a>
-				</li>
-				<li>
-					<a href="_types_d_.errormessage.html">ErrorMessage</a>
-				</li>
-			</ul>
-			<h1>Interface ErrorMessage</h1>
-		</div>
-	</div>
-</header>
-<div class="container container-main">
-	<div class="row">
-		<div class="col-8 col-content">
-			<section class="tsd-panel tsd-comment">
-				<div class="tsd-comment tsd-typography">
-					<div class="lead">
-						<p>Error message</p>
-					</div>
-				</div>
-			</section>
-			<section class="tsd-panel tsd-hierarchy">
-				<h3>Hierarchy</h3>
-				<ul class="tsd-hierarchy">
-					<li>
-						<a href="_types_d_.basemessage.html" class="tsd-signature-type">BaseMessage</a>
-						<ul class="tsd-hierarchy">
-							<li>
-								<span class="target">ErrorMessage</span>
-							</li>
-						</ul>
-					</li>
-				</ul>
-			</section>
-			<section class="tsd-panel-group tsd-index-group">
-				<h2>Index</h2>
-				<section class="tsd-panel tsd-index-panel">
-					<div class="tsd-index-content">
-						<section class="tsd-index-section ">
-							<h3>Properties</h3>
-							<ul class="tsd-index-list">
-								<li class="tsd-kind-property tsd-parent-kind-interface tsd-is-overwrite"><a href="_types_d_.errormessage.html#data" class="tsd-kind-icon">data</a></li>
-								<li class="tsd-kind-property tsd-parent-kind-interface tsd-is-inherited"><a href="_types_d_.errormessage.html#id" class="tsd-kind-icon">id</a></li>
-								<li class="tsd-kind-property tsd-parent-kind-interface tsd-is-inherited"><a href="_types_d_.errormessage.html#path" class="tsd-kind-icon">path</a></li>
-								<li class="tsd-kind-property tsd-parent-kind-interface tsd-is-overwrite"><a href="_types_d_.errormessage.html#type" class="tsd-kind-icon">type</a></li>
-							</ul>
-						</section>
-					</div>
-				</section>
-			</section>
-			<section class="tsd-panel-group tsd-member-group ">
-				<h2>Properties</h2>
-				<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-interface tsd-is-overwrite">
-					<a name="data" class="tsd-anchor"></a>
-					<h3>data</h3>
-					<div class="tsd-signature tsd-kind-icon">data<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-symbol">{ </span>reason<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol"> }</span></div>
-					<aside class="tsd-sources">
-						<p>Overrides <a href="_types_d_.basemessage.html">BaseMessage</a>.<a href="_types_d_.basemessage.html#data">data</a></p>
-						<ul>
-							<li>Defined in src/types.d.ts:162</li>
-						</ul>
-					</aside>
-					<div class="tsd-type-declaration">
-						<h4>Type declaration</h4>
-						<ul class="tsd-parameters">
-							<li class="tsd-parameter">
-								<h5>reason<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span></h5>
-							</li>
-						</ul>
-					</div>
-				</section>
-				<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-interface tsd-is-inherited">
-					<a name="id" class="tsd-anchor"></a>
-					<h3>id</h3>
-					<div class="tsd-signature tsd-kind-icon">id<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span></div>
-					<aside class="tsd-sources">
-						<p>Inherited from <a href="_types_d_.basemessage.html">BaseMessage</a>.<a href="_types_d_.basemessage.html#id">id</a></p>
-						<ul>
-							<li>Defined in src/types.d.ts:154</li>
-						</ul>
-					</aside>
-				</section>
-				<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-interface tsd-is-inherited">
-					<a name="path" class="tsd-anchor"></a>
-					<h3>path</h3>
-					<div class="tsd-signature tsd-kind-icon">path<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span></div>
-					<aside class="tsd-sources">
-						<p>Inherited from <a href="_types_d_.basemessage.html">BaseMessage</a>.<a href="_types_d_.basemessage.html#path">path</a></p>
-						<ul>
-							<li>Defined in src/types.d.ts:156</li>
-						</ul>
-					</aside>
-				</section>
-				<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-interface tsd-is-overwrite">
-					<a name="type" class="tsd-anchor"></a>
-					<h3>type</h3>
-					<div class="tsd-signature tsd-kind-icon">type<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">"error"</span></div>
-					<aside class="tsd-sources">
-						<p>Overrides <a href="_types_d_.basemessage.html">BaseMessage</a>.<a href="_types_d_.basemessage.html#type">type</a></p>
-						<ul>
-							<li>Defined in src/types.d.ts:161</li>
-						</ul>
-					</aside>
-				</section>
-			</section>
-		</div>
-		<div class="col-4 col-menu menu-sticky-wrap menu-highlight">
-			<nav class="tsd-navigation primary">
-				<ul>
-					<li class="globals  ">
-						<a href="../globals.html"><em>Globals</em></a>
-					</li>
-					<li class=" tsd-kind-module">
-						<a href="../modules/_index_.html">&quot;index&quot;</a>
-					</li>
-					<li class=" tsd-kind-module">
-						<a href="../modules/_lib_.html">&quot;lib&quot;</a>
-					</li>
-					<li class=" tsd-kind-module">
-						<a href="../modules/_protocol_index_.html">&quot;protocol/index&quot;</a>
-					</li>
-					<li class=" tsd-kind-module">
-						<a href="../modules/_protocol_js_usp_protobuf_protomessage_.html">&quot;protocol/js-<wbr>usp-<wbr>protobuf/proto<wbr>Message&quot;</a>
-					</li>
-					<li class=" tsd-kind-module">
-						<a href="../modules/_protocol_lib_.html">&quot;protocol/lib&quot;</a>
-					</li>
-					<li class="current tsd-kind-module">
-						<a href="../modules/_types_d_.html">&quot;types.d&quot;</a>
-					</li>
-				</ul>
-			</nav>
-			<nav class="tsd-navigation secondary menu-sticky">
-				<ul class="before-current">
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.addmessage.html" class="tsd-kind-icon">Add<wbr>Message</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.basemessage.html" class="tsd-kind-icon">Base<wbr>Message</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.connectevents.html" class="tsd-kind-icon">Connect<wbr>Events</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.connectoptions.html" class="tsd-kind-icon">Connect<wbr>Options</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.deletemessage.html" class="tsd-kind-icon">Delete<wbr>Message</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.device.html" class="tsd-kind-icon">Device</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.deviceerror.html" class="tsd-kind-icon">Device<wbr>Error</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.encodeargs.html" class="tsd-kind-icon">Encode<wbr>Args</a>
-					</li>
-				</ul>
-				<ul class="current">
-					<li class="current tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.errormessage.html" class="tsd-kind-icon">Error<wbr>Message</a>
-						<ul>
-							<li class=" tsd-kind-property tsd-parent-kind-interface tsd-is-overwrite">
-								<a href="_types_d_.errormessage.html#data" class="tsd-kind-icon">data</a>
-							</li>
-							<li class=" tsd-kind-property tsd-parent-kind-interface tsd-is-inherited">
-								<a href="_types_d_.errormessage.html#id" class="tsd-kind-icon">id</a>
-							</li>
-							<li class=" tsd-kind-property tsd-parent-kind-interface tsd-is-inherited">
-								<a href="_types_d_.errormessage.html#path" class="tsd-kind-icon">path</a>
-							</li>
-							<li class=" tsd-kind-property tsd-parent-kind-interface tsd-is-overwrite">
-								<a href="_types_d_.errormessage.html#type" class="tsd-kind-icon">type</a>
-							</li>
-						</ul>
-					</li>
-				</ul>
-				<ul class="after-current">
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.getmessage.html" class="tsd-kind-icon">Get<wbr>Message</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.initresult.html" class="tsd-kind-icon">Init<wbr>Result</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.mqttrequest.html" class="tsd-kind-icon">MQTTRequest</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.notifymessage.html" class="tsd-kind-icon">Notify<wbr>Message</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.operatemessage.html" class="tsd-kind-icon">Operate<wbr>Message</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.operateoptions.html" class="tsd-kind-icon">Operate<wbr>Options</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.protocol.html" class="tsd-kind-icon">Protocol</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.protocolargs.html" class="tsd-kind-icon">Protocol<wbr>Args</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.protocolevents.html" class="tsd-kind-icon">Protocol<wbr>Events</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.setmessage.html" class="tsd-kind-icon">Set<wbr>Message</a>
-					</li>
-					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
-						<a href="../modules/_types_d_.html#commandtype" class="tsd-kind-icon">Command<wbr>Type</a>
-					</li>
-					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
-						<a href="../modules/_types_d_.html#iclientoptions" class="tsd-kind-icon">IClient<wbr>Options</a>
-					</li>
-					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
-						<a href="../modules/_types_d_.html#jsobject" class="tsd-kind-icon">JSObject</a>
-					</li>
-					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
-						<a href="../modules/_types_d_.html#jstype" class="tsd-kind-icon">JSType</a>
-					</li>
-					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
-						<a href="../modules/_types_d_.html#messagetype" class="tsd-kind-icon">Message<wbr>Type</a>
-					</li>
-					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
-						<a href="../modules/_types_d_.html#operatecleanupfunction" class="tsd-kind-icon">Operate<wbr>Cleanup<wbr>Function</a>
-					</li>
-					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
-						<a href="../modules/_types_d_.html#operatefunction" class="tsd-kind-icon">Operate<wbr>Function</a>
-					</li>
-					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
-						<a href="../modules/_types_d_.html#promiseresult" class="tsd-kind-icon">Promise<wbr>Result</a>
-					</li>
-					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
-						<a href="../modules/_types_d_.html#rejectfn" class="tsd-kind-icon">Reject<wbr>Fn</a>
-					</li>
-					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
-						<a href="../modules/_types_d_.html#role" class="tsd-kind-icon">Role</a>
-					</li>
-					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
-						<a href="../modules/_types_d_.html#router" class="tsd-kind-icon">Router</a>
-					</li>
-					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
-						<a href="../modules/_types_d_.html#sendfn" class="tsd-kind-icon">Send<wbr>Fn</a>
-					</li>
-					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
-						<a href="../modules/_types_d_.html#uspmessage" class="tsd-kind-icon">USPMessage</a>
-					</li>
-				</ul>
-			</nav>
-		</div>
-	</div>
-</div>
-<footer class="with-border-bottom">
-	<div class="container">
-		<h2>Legend</h2>
-		<div class="tsd-legend-group">
-			<ul class="tsd-legend">
-				<li class="tsd-kind-variable"><span class="tsd-kind-icon">Variable</span></li>
-				<li class="tsd-kind-function"><span class="tsd-kind-icon">Function</span></li>
-				<li class="tsd-kind-type-alias"><span class="tsd-kind-icon">Type alias</span></li>
-			</ul>
-			<ul class="tsd-legend">
-				<li class="tsd-kind-interface"><span class="tsd-kind-icon">Interface</span></li>
-				<li class="tsd-kind-property tsd-parent-kind-interface"><span class="tsd-kind-icon">Property</span></li>
-			</ul>
-		</div>
-	</div>
-</footer>
-<div class="container tsd-generator">
-	<p>Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p>
-</div>
-<div class="overlay"></div>
-<script src="../assets/js/main.js"></script>
-</body>
-</html>
\ No newline at end of file
diff --git a/public/interfaces/_types_d_.getmessage.html b/public/interfaces/_types_d_.getmessage.html
deleted file mode 100644
index d33ab8f3bb040ee1c00b5cf483d99bc3646e618d..0000000000000000000000000000000000000000
--- a/public/interfaces/_types_d_.getmessage.html
+++ /dev/null
@@ -1,325 +0,0 @@
-<!doctype html>
-<html class="default no-js">
-<head>
-	<meta charset="utf-8">
-	<meta http-equiv="X-UA-Compatible" content="IE=edge">
-	<title>GetMessage | usp-js</title>
-	<meta name="description" content="Documentation for usp-js">
-	<meta name="viewport" content="width=device-width, initial-scale=1">
-	<link rel="stylesheet" href="../assets/css/main.css">
-</head>
-<body>
-<header>
-	<div class="tsd-page-toolbar">
-		<div class="container">
-			<div class="table-wrap">
-				<div class="table-cell" id="tsd-search" data-index="../assets/js/search.json" data-base="..">
-					<div class="field">
-						<label for="tsd-search-field" class="tsd-widget search no-caption">Search</label>
-						<input id="tsd-search-field" type="text" />
-					</div>
-					<ul class="results">
-						<li class="state loading">Preparing search index...</li>
-						<li class="state failure">The search index is not available</li>
-					</ul>
-					<a href="../index.html" class="title">usp-js</a>
-				</div>
-				<div class="table-cell" id="tsd-widgets">
-					<div id="tsd-filter">
-						<a href="#" class="tsd-widget options no-caption" data-toggle="options">Options</a>
-						<div class="tsd-filter-group">
-							<div class="tsd-select" id="tsd-filter-visibility">
-								<span class="tsd-select-label">All</span>
-								<ul class="tsd-select-list">
-									<li data-value="public">Public</li>
-									<li data-value="protected">Public/Protected</li>
-									<li data-value="private" class="selected">All</li>
-								</ul>
-							</div>
-							<input type="checkbox" id="tsd-filter-inherited" checked />
-							<label class="tsd-widget" for="tsd-filter-inherited">Inherited</label>
-							<input type="checkbox" id="tsd-filter-externals" checked />
-							<label class="tsd-widget" for="tsd-filter-externals">Externals</label>
-							<input type="checkbox" id="tsd-filter-only-exported" />
-							<label class="tsd-widget" for="tsd-filter-only-exported">Only exported</label>
-						</div>
-					</div>
-					<a href="#" class="tsd-widget menu no-caption" data-toggle="menu">Menu</a>
-				</div>
-			</div>
-		</div>
-	</div>
-	<div class="tsd-page-title">
-		<div class="container">
-			<ul class="tsd-breadcrumb">
-				<li>
-					<a href="../globals.html">Globals</a>
-				</li>
-				<li>
-					<a href="../modules/_types_d_.html">&quot;types.d&quot;</a>
-				</li>
-				<li>
-					<a href="_types_d_.getmessage.html">GetMessage</a>
-				</li>
-			</ul>
-			<h1>Interface GetMessage</h1>
-		</div>
-	</div>
-</header>
-<div class="container container-main">
-	<div class="row">
-		<div class="col-8 col-content">
-			<section class="tsd-panel tsd-comment">
-				<div class="tsd-comment tsd-typography">
-					<div class="lead">
-						<p>Get Message</p>
-					</div>
-				</div>
-			</section>
-			<section class="tsd-panel tsd-hierarchy">
-				<h3>Hierarchy</h3>
-				<ul class="tsd-hierarchy">
-					<li>
-						<a href="_types_d_.basemessage.html" class="tsd-signature-type">BaseMessage</a>
-						<ul class="tsd-hierarchy">
-							<li>
-								<span class="target">GetMessage</span>
-							</li>
-						</ul>
-					</li>
-				</ul>
-			</section>
-			<section class="tsd-panel-group tsd-index-group">
-				<h2>Index</h2>
-				<section class="tsd-panel tsd-index-panel">
-					<div class="tsd-index-content">
-						<section class="tsd-index-section ">
-							<h3>Properties</h3>
-							<ul class="tsd-index-list">
-								<li class="tsd-kind-property tsd-parent-kind-interface tsd-is-overwrite"><a href="_types_d_.getmessage.html#data" class="tsd-kind-icon">data</a></li>
-								<li class="tsd-kind-property tsd-parent-kind-interface tsd-is-inherited"><a href="_types_d_.getmessage.html#id" class="tsd-kind-icon">id</a></li>
-								<li class="tsd-kind-property tsd-parent-kind-interface tsd-is-inherited"><a href="_types_d_.getmessage.html#path" class="tsd-kind-icon">path</a></li>
-								<li class="tsd-kind-property tsd-parent-kind-interface tsd-is-overwrite"><a href="_types_d_.getmessage.html#type" class="tsd-kind-icon">type</a></li>
-							</ul>
-						</section>
-					</div>
-				</section>
-			</section>
-			<section class="tsd-panel-group tsd-member-group ">
-				<h2>Properties</h2>
-				<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-interface tsd-is-overwrite">
-					<a name="data" class="tsd-anchor"></a>
-					<h3>data</h3>
-					<div class="tsd-signature tsd-kind-icon">data<span class="tsd-signature-symbol">:</span> <a href="../modules/_types_d_.html#jstype" class="tsd-signature-type">JSType</a></div>
-					<aside class="tsd-sources">
-						<p>Overrides <a href="_types_d_.basemessage.html">BaseMessage</a>.<a href="_types_d_.basemessage.html#data">data</a></p>
-						<ul>
-							<li>Defined in src/types.d.ts:169</li>
-						</ul>
-					</aside>
-				</section>
-				<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-interface tsd-is-inherited">
-					<a name="id" class="tsd-anchor"></a>
-					<h3>id</h3>
-					<div class="tsd-signature tsd-kind-icon">id<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span></div>
-					<aside class="tsd-sources">
-						<p>Inherited from <a href="_types_d_.basemessage.html">BaseMessage</a>.<a href="_types_d_.basemessage.html#id">id</a></p>
-						<ul>
-							<li>Defined in src/types.d.ts:154</li>
-						</ul>
-					</aside>
-				</section>
-				<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-interface tsd-is-inherited">
-					<a name="path" class="tsd-anchor"></a>
-					<h3>path</h3>
-					<div class="tsd-signature tsd-kind-icon">path<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span></div>
-					<aside class="tsd-sources">
-						<p>Inherited from <a href="_types_d_.basemessage.html">BaseMessage</a>.<a href="_types_d_.basemessage.html#path">path</a></p>
-						<ul>
-							<li>Defined in src/types.d.ts:156</li>
-						</ul>
-					</aside>
-				</section>
-				<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-interface tsd-is-overwrite">
-					<a name="type" class="tsd-anchor"></a>
-					<h3>type</h3>
-					<div class="tsd-signature tsd-kind-icon">type<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">"get"</span></div>
-					<aside class="tsd-sources">
-						<p>Overrides <a href="_types_d_.basemessage.html">BaseMessage</a>.<a href="_types_d_.basemessage.html#type">type</a></p>
-						<ul>
-							<li>Defined in src/types.d.ts:168</li>
-						</ul>
-					</aside>
-				</section>
-			</section>
-		</div>
-		<div class="col-4 col-menu menu-sticky-wrap menu-highlight">
-			<nav class="tsd-navigation primary">
-				<ul>
-					<li class="globals  ">
-						<a href="../globals.html"><em>Globals</em></a>
-					</li>
-					<li class=" tsd-kind-module">
-						<a href="../modules/_index_.html">&quot;index&quot;</a>
-					</li>
-					<li class=" tsd-kind-module">
-						<a href="../modules/_lib_.html">&quot;lib&quot;</a>
-					</li>
-					<li class=" tsd-kind-module">
-						<a href="../modules/_protocol_index_.html">&quot;protocol/index&quot;</a>
-					</li>
-					<li class=" tsd-kind-module">
-						<a href="../modules/_protocol_js_usp_protobuf_protomessage_.html">&quot;protocol/js-<wbr>usp-<wbr>protobuf/proto<wbr>Message&quot;</a>
-					</li>
-					<li class=" tsd-kind-module">
-						<a href="../modules/_protocol_lib_.html">&quot;protocol/lib&quot;</a>
-					</li>
-					<li class="current tsd-kind-module">
-						<a href="../modules/_types_d_.html">&quot;types.d&quot;</a>
-					</li>
-				</ul>
-			</nav>
-			<nav class="tsd-navigation secondary menu-sticky">
-				<ul class="before-current">
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.addmessage.html" class="tsd-kind-icon">Add<wbr>Message</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.basemessage.html" class="tsd-kind-icon">Base<wbr>Message</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.connectevents.html" class="tsd-kind-icon">Connect<wbr>Events</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.connectoptions.html" class="tsd-kind-icon">Connect<wbr>Options</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.deletemessage.html" class="tsd-kind-icon">Delete<wbr>Message</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.device.html" class="tsd-kind-icon">Device</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.deviceerror.html" class="tsd-kind-icon">Device<wbr>Error</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.encodeargs.html" class="tsd-kind-icon">Encode<wbr>Args</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.errormessage.html" class="tsd-kind-icon">Error<wbr>Message</a>
-					</li>
-				</ul>
-				<ul class="current">
-					<li class="current tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.getmessage.html" class="tsd-kind-icon">Get<wbr>Message</a>
-						<ul>
-							<li class=" tsd-kind-property tsd-parent-kind-interface tsd-is-overwrite">
-								<a href="_types_d_.getmessage.html#data" class="tsd-kind-icon">data</a>
-							</li>
-							<li class=" tsd-kind-property tsd-parent-kind-interface tsd-is-inherited">
-								<a href="_types_d_.getmessage.html#id" class="tsd-kind-icon">id</a>
-							</li>
-							<li class=" tsd-kind-property tsd-parent-kind-interface tsd-is-inherited">
-								<a href="_types_d_.getmessage.html#path" class="tsd-kind-icon">path</a>
-							</li>
-							<li class=" tsd-kind-property tsd-parent-kind-interface tsd-is-overwrite">
-								<a href="_types_d_.getmessage.html#type" class="tsd-kind-icon">type</a>
-							</li>
-						</ul>
-					</li>
-				</ul>
-				<ul class="after-current">
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.initresult.html" class="tsd-kind-icon">Init<wbr>Result</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.mqttrequest.html" class="tsd-kind-icon">MQTTRequest</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.notifymessage.html" class="tsd-kind-icon">Notify<wbr>Message</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.operatemessage.html" class="tsd-kind-icon">Operate<wbr>Message</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.operateoptions.html" class="tsd-kind-icon">Operate<wbr>Options</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.protocol.html" class="tsd-kind-icon">Protocol</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.protocolargs.html" class="tsd-kind-icon">Protocol<wbr>Args</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.protocolevents.html" class="tsd-kind-icon">Protocol<wbr>Events</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.setmessage.html" class="tsd-kind-icon">Set<wbr>Message</a>
-					</li>
-					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
-						<a href="../modules/_types_d_.html#commandtype" class="tsd-kind-icon">Command<wbr>Type</a>
-					</li>
-					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
-						<a href="../modules/_types_d_.html#iclientoptions" class="tsd-kind-icon">IClient<wbr>Options</a>
-					</li>
-					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
-						<a href="../modules/_types_d_.html#jsobject" class="tsd-kind-icon">JSObject</a>
-					</li>
-					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
-						<a href="../modules/_types_d_.html#jstype" class="tsd-kind-icon">JSType</a>
-					</li>
-					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
-						<a href="../modules/_types_d_.html#messagetype" class="tsd-kind-icon">Message<wbr>Type</a>
-					</li>
-					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
-						<a href="../modules/_types_d_.html#operatecleanupfunction" class="tsd-kind-icon">Operate<wbr>Cleanup<wbr>Function</a>
-					</li>
-					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
-						<a href="../modules/_types_d_.html#operatefunction" class="tsd-kind-icon">Operate<wbr>Function</a>
-					</li>
-					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
-						<a href="../modules/_types_d_.html#promiseresult" class="tsd-kind-icon">Promise<wbr>Result</a>
-					</li>
-					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
-						<a href="../modules/_types_d_.html#rejectfn" class="tsd-kind-icon">Reject<wbr>Fn</a>
-					</li>
-					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
-						<a href="../modules/_types_d_.html#role" class="tsd-kind-icon">Role</a>
-					</li>
-					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
-						<a href="../modules/_types_d_.html#router" class="tsd-kind-icon">Router</a>
-					</li>
-					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
-						<a href="../modules/_types_d_.html#sendfn" class="tsd-kind-icon">Send<wbr>Fn</a>
-					</li>
-					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
-						<a href="../modules/_types_d_.html#uspmessage" class="tsd-kind-icon">USPMessage</a>
-					</li>
-				</ul>
-			</nav>
-		</div>
-	</div>
-</div>
-<footer class="with-border-bottom">
-	<div class="container">
-		<h2>Legend</h2>
-		<div class="tsd-legend-group">
-			<ul class="tsd-legend">
-				<li class="tsd-kind-variable"><span class="tsd-kind-icon">Variable</span></li>
-				<li class="tsd-kind-function"><span class="tsd-kind-icon">Function</span></li>
-				<li class="tsd-kind-type-alias"><span class="tsd-kind-icon">Type alias</span></li>
-			</ul>
-			<ul class="tsd-legend">
-				<li class="tsd-kind-interface"><span class="tsd-kind-icon">Interface</span></li>
-				<li class="tsd-kind-property tsd-parent-kind-interface"><span class="tsd-kind-icon">Property</span></li>
-			</ul>
-		</div>
-	</div>
-</footer>
-<div class="container tsd-generator">
-	<p>Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p>
-</div>
-<div class="overlay"></div>
-<script src="../assets/js/main.js"></script>
-</body>
-</html>
\ No newline at end of file
diff --git a/public/interfaces/_types_d_.initresult.html b/public/interfaces/_types_d_.initresult.html
deleted file mode 100644
index 522fab049af6deed475fc9b398add5b0fc382632..0000000000000000000000000000000000000000
--- a/public/interfaces/_types_d_.initresult.html
+++ /dev/null
@@ -1,279 +0,0 @@
-<!doctype html>
-<html class="default no-js">
-<head>
-	<meta charset="utf-8">
-	<meta http-equiv="X-UA-Compatible" content="IE=edge">
-	<title>InitResult | usp-js</title>
-	<meta name="description" content="Documentation for usp-js">
-	<meta name="viewport" content="width=device-width, initial-scale=1">
-	<link rel="stylesheet" href="../assets/css/main.css">
-</head>
-<body>
-<header>
-	<div class="tsd-page-toolbar">
-		<div class="container">
-			<div class="table-wrap">
-				<div class="table-cell" id="tsd-search" data-index="../assets/js/search.json" data-base="..">
-					<div class="field">
-						<label for="tsd-search-field" class="tsd-widget search no-caption">Search</label>
-						<input id="tsd-search-field" type="text" />
-					</div>
-					<ul class="results">
-						<li class="state loading">Preparing search index...</li>
-						<li class="state failure">The search index is not available</li>
-					</ul>
-					<a href="../index.html" class="title">usp-js</a>
-				</div>
-				<div class="table-cell" id="tsd-widgets">
-					<div id="tsd-filter">
-						<a href="#" class="tsd-widget options no-caption" data-toggle="options">Options</a>
-						<div class="tsd-filter-group">
-							<div class="tsd-select" id="tsd-filter-visibility">
-								<span class="tsd-select-label">All</span>
-								<ul class="tsd-select-list">
-									<li data-value="public">Public</li>
-									<li data-value="protected">Public/Protected</li>
-									<li data-value="private" class="selected">All</li>
-								</ul>
-							</div>
-							<input type="checkbox" id="tsd-filter-inherited" checked />
-							<label class="tsd-widget" for="tsd-filter-inherited">Inherited</label>
-							<input type="checkbox" id="tsd-filter-externals" checked />
-							<label class="tsd-widget" for="tsd-filter-externals">Externals</label>
-							<input type="checkbox" id="tsd-filter-only-exported" />
-							<label class="tsd-widget" for="tsd-filter-only-exported">Only exported</label>
-						</div>
-					</div>
-					<a href="#" class="tsd-widget menu no-caption" data-toggle="menu">Menu</a>
-				</div>
-			</div>
-		</div>
-	</div>
-	<div class="tsd-page-title">
-		<div class="container">
-			<ul class="tsd-breadcrumb">
-				<li>
-					<a href="../globals.html">Globals</a>
-				</li>
-				<li>
-					<a href="../modules/_types_d_.html">&quot;types.d&quot;</a>
-				</li>
-				<li>
-					<a href="_types_d_.initresult.html">InitResult</a>
-				</li>
-			</ul>
-			<h1>Interface InitResult</h1>
-		</div>
-	</div>
-</header>
-<div class="container container-main">
-	<div class="row">
-		<div class="col-8 col-content">
-			<section class="tsd-panel tsd-comment">
-				<div class="tsd-comment tsd-typography">
-					<div class="lead">
-						<p>Results of initialiazing protocol</p>
-					</div>
-				</div>
-			</section>
-			<section class="tsd-panel tsd-hierarchy">
-				<h3>Hierarchy</h3>
-				<ul class="tsd-hierarchy">
-					<li>
-						<span class="target">InitResult</span>
-					</li>
-				</ul>
-			</section>
-			<section class="tsd-panel-group tsd-index-group">
-				<h2>Index</h2>
-				<section class="tsd-panel tsd-index-panel">
-					<div class="tsd-index-content">
-						<section class="tsd-index-section ">
-							<h3>Properties</h3>
-							<ul class="tsd-index-list">
-								<li class="tsd-kind-property tsd-parent-kind-interface"><a href="_types_d_.initresult.html#timeout" class="tsd-kind-icon">timeout</a></li>
-							</ul>
-						</section>
-					</div>
-				</section>
-			</section>
-			<section class="tsd-panel-group tsd-member-group ">
-				<h2>Properties</h2>
-				<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-interface">
-					<a name="timeout" class="tsd-anchor"></a>
-					<h3>timeout</h3>
-					<div class="tsd-signature tsd-kind-icon">timeout<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">number</span></div>
-					<aside class="tsd-sources">
-						<ul>
-							<li>Defined in src/types.d.ts:220</li>
-						</ul>
-					</aside>
-					<div class="tsd-comment tsd-typography">
-						<div class="lead">
-							<p>Session timeout in seconds</p>
-						</div>
-					</div>
-				</section>
-			</section>
-		</div>
-		<div class="col-4 col-menu menu-sticky-wrap menu-highlight">
-			<nav class="tsd-navigation primary">
-				<ul>
-					<li class="globals  ">
-						<a href="../globals.html"><em>Globals</em></a>
-					</li>
-					<li class=" tsd-kind-module">
-						<a href="../modules/_index_.html">&quot;index&quot;</a>
-					</li>
-					<li class=" tsd-kind-module">
-						<a href="../modules/_lib_.html">&quot;lib&quot;</a>
-					</li>
-					<li class=" tsd-kind-module">
-						<a href="../modules/_protocol_index_.html">&quot;protocol/index&quot;</a>
-					</li>
-					<li class=" tsd-kind-module">
-						<a href="../modules/_protocol_js_usp_protobuf_protomessage_.html">&quot;protocol/js-<wbr>usp-<wbr>protobuf/proto<wbr>Message&quot;</a>
-					</li>
-					<li class=" tsd-kind-module">
-						<a href="../modules/_protocol_lib_.html">&quot;protocol/lib&quot;</a>
-					</li>
-					<li class="current tsd-kind-module">
-						<a href="../modules/_types_d_.html">&quot;types.d&quot;</a>
-					</li>
-				</ul>
-			</nav>
-			<nav class="tsd-navigation secondary menu-sticky">
-				<ul class="before-current">
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.addmessage.html" class="tsd-kind-icon">Add<wbr>Message</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.basemessage.html" class="tsd-kind-icon">Base<wbr>Message</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.connectevents.html" class="tsd-kind-icon">Connect<wbr>Events</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.connectoptions.html" class="tsd-kind-icon">Connect<wbr>Options</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.deletemessage.html" class="tsd-kind-icon">Delete<wbr>Message</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.device.html" class="tsd-kind-icon">Device</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.deviceerror.html" class="tsd-kind-icon">Device<wbr>Error</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.encodeargs.html" class="tsd-kind-icon">Encode<wbr>Args</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.errormessage.html" class="tsd-kind-icon">Error<wbr>Message</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.getmessage.html" class="tsd-kind-icon">Get<wbr>Message</a>
-					</li>
-				</ul>
-				<ul class="current">
-					<li class="current tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.initresult.html" class="tsd-kind-icon">Init<wbr>Result</a>
-						<ul>
-							<li class=" tsd-kind-property tsd-parent-kind-interface">
-								<a href="_types_d_.initresult.html#timeout" class="tsd-kind-icon">timeout</a>
-							</li>
-						</ul>
-					</li>
-				</ul>
-				<ul class="after-current">
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.mqttrequest.html" class="tsd-kind-icon">MQTTRequest</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.notifymessage.html" class="tsd-kind-icon">Notify<wbr>Message</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.operatemessage.html" class="tsd-kind-icon">Operate<wbr>Message</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.operateoptions.html" class="tsd-kind-icon">Operate<wbr>Options</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.protocol.html" class="tsd-kind-icon">Protocol</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.protocolargs.html" class="tsd-kind-icon">Protocol<wbr>Args</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.protocolevents.html" class="tsd-kind-icon">Protocol<wbr>Events</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.setmessage.html" class="tsd-kind-icon">Set<wbr>Message</a>
-					</li>
-					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
-						<a href="../modules/_types_d_.html#commandtype" class="tsd-kind-icon">Command<wbr>Type</a>
-					</li>
-					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
-						<a href="../modules/_types_d_.html#iclientoptions" class="tsd-kind-icon">IClient<wbr>Options</a>
-					</li>
-					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
-						<a href="../modules/_types_d_.html#jsobject" class="tsd-kind-icon">JSObject</a>
-					</li>
-					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
-						<a href="../modules/_types_d_.html#jstype" class="tsd-kind-icon">JSType</a>
-					</li>
-					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
-						<a href="../modules/_types_d_.html#messagetype" class="tsd-kind-icon">Message<wbr>Type</a>
-					</li>
-					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
-						<a href="../modules/_types_d_.html#operatecleanupfunction" class="tsd-kind-icon">Operate<wbr>Cleanup<wbr>Function</a>
-					</li>
-					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
-						<a href="../modules/_types_d_.html#operatefunction" class="tsd-kind-icon">Operate<wbr>Function</a>
-					</li>
-					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
-						<a href="../modules/_types_d_.html#promiseresult" class="tsd-kind-icon">Promise<wbr>Result</a>
-					</li>
-					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
-						<a href="../modules/_types_d_.html#rejectfn" class="tsd-kind-icon">Reject<wbr>Fn</a>
-					</li>
-					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
-						<a href="../modules/_types_d_.html#role" class="tsd-kind-icon">Role</a>
-					</li>
-					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
-						<a href="../modules/_types_d_.html#router" class="tsd-kind-icon">Router</a>
-					</li>
-					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
-						<a href="../modules/_types_d_.html#sendfn" class="tsd-kind-icon">Send<wbr>Fn</a>
-					</li>
-					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
-						<a href="../modules/_types_d_.html#uspmessage" class="tsd-kind-icon">USPMessage</a>
-					</li>
-				</ul>
-			</nav>
-		</div>
-	</div>
-</div>
-<footer class="with-border-bottom">
-	<div class="container">
-		<h2>Legend</h2>
-		<div class="tsd-legend-group">
-			<ul class="tsd-legend">
-				<li class="tsd-kind-variable"><span class="tsd-kind-icon">Variable</span></li>
-				<li class="tsd-kind-function"><span class="tsd-kind-icon">Function</span></li>
-				<li class="tsd-kind-type-alias"><span class="tsd-kind-icon">Type alias</span></li>
-			</ul>
-			<ul class="tsd-legend">
-				<li class="tsd-kind-interface"><span class="tsd-kind-icon">Interface</span></li>
-				<li class="tsd-kind-property tsd-parent-kind-interface"><span class="tsd-kind-icon">Property</span></li>
-			</ul>
-		</div>
-	</div>
-</footer>
-<div class="container tsd-generator">
-	<p>Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p>
-</div>
-<div class="overlay"></div>
-<script src="../assets/js/main.js"></script>
-</body>
-</html>
\ No newline at end of file
diff --git a/public/interfaces/_types_d_.mqttrequest.html b/public/interfaces/_types_d_.mqttrequest.html
deleted file mode 100644
index 842c7edcb85a3fff1d7ff3cc9e8e534ffd7bfdca..0000000000000000000000000000000000000000
--- a/public/interfaces/_types_d_.mqttrequest.html
+++ /dev/null
@@ -1,298 +0,0 @@
-<!doctype html>
-<html class="default no-js">
-<head>
-	<meta charset="utf-8">
-	<meta http-equiv="X-UA-Compatible" content="IE=edge">
-	<title>MQTTRequest | usp-js</title>
-	<meta name="description" content="Documentation for usp-js">
-	<meta name="viewport" content="width=device-width, initial-scale=1">
-	<link rel="stylesheet" href="../assets/css/main.css">
-</head>
-<body>
-<header>
-	<div class="tsd-page-toolbar">
-		<div class="container">
-			<div class="table-wrap">
-				<div class="table-cell" id="tsd-search" data-index="../assets/js/search.json" data-base="..">
-					<div class="field">
-						<label for="tsd-search-field" class="tsd-widget search no-caption">Search</label>
-						<input id="tsd-search-field" type="text" />
-					</div>
-					<ul class="results">
-						<li class="state loading">Preparing search index...</li>
-						<li class="state failure">The search index is not available</li>
-					</ul>
-					<a href="../index.html" class="title">usp-js</a>
-				</div>
-				<div class="table-cell" id="tsd-widgets">
-					<div id="tsd-filter">
-						<a href="#" class="tsd-widget options no-caption" data-toggle="options">Options</a>
-						<div class="tsd-filter-group">
-							<div class="tsd-select" id="tsd-filter-visibility">
-								<span class="tsd-select-label">All</span>
-								<ul class="tsd-select-list">
-									<li data-value="public">Public</li>
-									<li data-value="protected">Public/Protected</li>
-									<li data-value="private" class="selected">All</li>
-								</ul>
-							</div>
-							<input type="checkbox" id="tsd-filter-inherited" checked />
-							<label class="tsd-widget" for="tsd-filter-inherited">Inherited</label>
-							<input type="checkbox" id="tsd-filter-externals" checked />
-							<label class="tsd-widget" for="tsd-filter-externals">Externals</label>
-							<input type="checkbox" id="tsd-filter-only-exported" />
-							<label class="tsd-widget" for="tsd-filter-only-exported">Only exported</label>
-						</div>
-					</div>
-					<a href="#" class="tsd-widget menu no-caption" data-toggle="menu">Menu</a>
-				</div>
-			</div>
-		</div>
-	</div>
-	<div class="tsd-page-title">
-		<div class="container">
-			<ul class="tsd-breadcrumb">
-				<li>
-					<a href="../globals.html">Globals</a>
-				</li>
-				<li>
-					<a href="../modules/_types_d_.html">&quot;types.d&quot;</a>
-				</li>
-				<li>
-					<a href="_types_d_.mqttrequest.html">MQTTRequest</a>
-				</li>
-			</ul>
-			<h1>Interface MQTTRequest</h1>
-		</div>
-	</div>
-</header>
-<div class="container container-main">
-	<div class="row">
-		<div class="col-8 col-content">
-			<section class="tsd-panel tsd-comment">
-				<div class="tsd-comment tsd-typography">
-					<div class="lead">
-						<p>Mqtt message structure</p>
-					</div>
-				</div>
-			</section>
-			<section class="tsd-panel tsd-hierarchy">
-				<h3>Hierarchy</h3>
-				<ul class="tsd-hierarchy">
-					<li>
-						<span class="target">MQTTRequest</span>
-					</li>
-				</ul>
-			</section>
-			<section class="tsd-panel-group tsd-index-group">
-				<h2>Index</h2>
-				<section class="tsd-panel tsd-index-panel">
-					<div class="tsd-index-content">
-						<section class="tsd-index-section ">
-							<h3>Properties</h3>
-							<ul class="tsd-index-list">
-								<li class="tsd-kind-property tsd-parent-kind-interface"><a href="_types_d_.mqttrequest.html#data" class="tsd-kind-icon">data</a></li>
-								<li class="tsd-kind-property tsd-parent-kind-interface"><a href="_types_d_.mqttrequest.html#id" class="tsd-kind-icon">id</a></li>
-							</ul>
-						</section>
-					</div>
-				</section>
-			</section>
-			<section class="tsd-panel-group tsd-member-group ">
-				<h2>Properties</h2>
-				<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-interface">
-					<a name="data" class="tsd-anchor"></a>
-					<h3>data</h3>
-					<div class="tsd-signature tsd-kind-icon">data<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">any</span></div>
-					<aside class="tsd-sources">
-						<ul>
-							<li>Defined in src/types.d.ts:249</li>
-						</ul>
-					</aside>
-					<div class="tsd-comment tsd-typography">
-						<div class="lead">
-							<p>Message data</p>
-						</div>
-					</div>
-				</section>
-				<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-interface">
-					<a name="id" class="tsd-anchor"></a>
-					<h3>id</h3>
-					<div class="tsd-signature tsd-kind-icon">id<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span></div>
-					<aside class="tsd-sources">
-						<ul>
-							<li>Defined in src/types.d.ts:247</li>
-						</ul>
-					</aside>
-					<div class="tsd-comment tsd-typography">
-						<div class="lead">
-							<p>Message id</p>
-						</div>
-					</div>
-				</section>
-			</section>
-		</div>
-		<div class="col-4 col-menu menu-sticky-wrap menu-highlight">
-			<nav class="tsd-navigation primary">
-				<ul>
-					<li class="globals  ">
-						<a href="../globals.html"><em>Globals</em></a>
-					</li>
-					<li class=" tsd-kind-module">
-						<a href="../modules/_index_.html">&quot;index&quot;</a>
-					</li>
-					<li class=" tsd-kind-module">
-						<a href="../modules/_lib_.html">&quot;lib&quot;</a>
-					</li>
-					<li class=" tsd-kind-module">
-						<a href="../modules/_protocol_index_.html">&quot;protocol/index&quot;</a>
-					</li>
-					<li class=" tsd-kind-module">
-						<a href="../modules/_protocol_js_usp_protobuf_protomessage_.html">&quot;protocol/js-<wbr>usp-<wbr>protobuf/proto<wbr>Message&quot;</a>
-					</li>
-					<li class=" tsd-kind-module">
-						<a href="../modules/_protocol_lib_.html">&quot;protocol/lib&quot;</a>
-					</li>
-					<li class="current tsd-kind-module">
-						<a href="../modules/_types_d_.html">&quot;types.d&quot;</a>
-					</li>
-				</ul>
-			</nav>
-			<nav class="tsd-navigation secondary menu-sticky">
-				<ul class="before-current">
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.addmessage.html" class="tsd-kind-icon">Add<wbr>Message</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.basemessage.html" class="tsd-kind-icon">Base<wbr>Message</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.connectevents.html" class="tsd-kind-icon">Connect<wbr>Events</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.connectoptions.html" class="tsd-kind-icon">Connect<wbr>Options</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.deletemessage.html" class="tsd-kind-icon">Delete<wbr>Message</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.device.html" class="tsd-kind-icon">Device</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.deviceerror.html" class="tsd-kind-icon">Device<wbr>Error</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.encodeargs.html" class="tsd-kind-icon">Encode<wbr>Args</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.errormessage.html" class="tsd-kind-icon">Error<wbr>Message</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.getmessage.html" class="tsd-kind-icon">Get<wbr>Message</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.initresult.html" class="tsd-kind-icon">Init<wbr>Result</a>
-					</li>
-				</ul>
-				<ul class="current">
-					<li class="current tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.mqttrequest.html" class="tsd-kind-icon">MQTTRequest</a>
-						<ul>
-							<li class=" tsd-kind-property tsd-parent-kind-interface">
-								<a href="_types_d_.mqttrequest.html#data" class="tsd-kind-icon">data</a>
-							</li>
-							<li class=" tsd-kind-property tsd-parent-kind-interface">
-								<a href="_types_d_.mqttrequest.html#id" class="tsd-kind-icon">id</a>
-							</li>
-						</ul>
-					</li>
-				</ul>
-				<ul class="after-current">
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.notifymessage.html" class="tsd-kind-icon">Notify<wbr>Message</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.operatemessage.html" class="tsd-kind-icon">Operate<wbr>Message</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.operateoptions.html" class="tsd-kind-icon">Operate<wbr>Options</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.protocol.html" class="tsd-kind-icon">Protocol</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.protocolargs.html" class="tsd-kind-icon">Protocol<wbr>Args</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.protocolevents.html" class="tsd-kind-icon">Protocol<wbr>Events</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.setmessage.html" class="tsd-kind-icon">Set<wbr>Message</a>
-					</li>
-					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
-						<a href="../modules/_types_d_.html#commandtype" class="tsd-kind-icon">Command<wbr>Type</a>
-					</li>
-					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
-						<a href="../modules/_types_d_.html#iclientoptions" class="tsd-kind-icon">IClient<wbr>Options</a>
-					</li>
-					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
-						<a href="../modules/_types_d_.html#jsobject" class="tsd-kind-icon">JSObject</a>
-					</li>
-					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
-						<a href="../modules/_types_d_.html#jstype" class="tsd-kind-icon">JSType</a>
-					</li>
-					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
-						<a href="../modules/_types_d_.html#messagetype" class="tsd-kind-icon">Message<wbr>Type</a>
-					</li>
-					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
-						<a href="../modules/_types_d_.html#operatecleanupfunction" class="tsd-kind-icon">Operate<wbr>Cleanup<wbr>Function</a>
-					</li>
-					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
-						<a href="../modules/_types_d_.html#operatefunction" class="tsd-kind-icon">Operate<wbr>Function</a>
-					</li>
-					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
-						<a href="../modules/_types_d_.html#promiseresult" class="tsd-kind-icon">Promise<wbr>Result</a>
-					</li>
-					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
-						<a href="../modules/_types_d_.html#rejectfn" class="tsd-kind-icon">Reject<wbr>Fn</a>
-					</li>
-					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
-						<a href="../modules/_types_d_.html#role" class="tsd-kind-icon">Role</a>
-					</li>
-					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
-						<a href="../modules/_types_d_.html#router" class="tsd-kind-icon">Router</a>
-					</li>
-					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
-						<a href="../modules/_types_d_.html#sendfn" class="tsd-kind-icon">Send<wbr>Fn</a>
-					</li>
-					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
-						<a href="../modules/_types_d_.html#uspmessage" class="tsd-kind-icon">USPMessage</a>
-					</li>
-				</ul>
-			</nav>
-		</div>
-	</div>
-</div>
-<footer class="with-border-bottom">
-	<div class="container">
-		<h2>Legend</h2>
-		<div class="tsd-legend-group">
-			<ul class="tsd-legend">
-				<li class="tsd-kind-variable"><span class="tsd-kind-icon">Variable</span></li>
-				<li class="tsd-kind-function"><span class="tsd-kind-icon">Function</span></li>
-				<li class="tsd-kind-type-alias"><span class="tsd-kind-icon">Type alias</span></li>
-			</ul>
-			<ul class="tsd-legend">
-				<li class="tsd-kind-interface"><span class="tsd-kind-icon">Interface</span></li>
-				<li class="tsd-kind-property tsd-parent-kind-interface"><span class="tsd-kind-icon">Property</span></li>
-			</ul>
-		</div>
-	</div>
-</footer>
-<div class="container tsd-generator">
-	<p>Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p>
-</div>
-<div class="overlay"></div>
-<script src="../assets/js/main.js"></script>
-</body>
-</html>
\ No newline at end of file
diff --git a/public/interfaces/_types_d_.notifymessage.html b/public/interfaces/_types_d_.notifymessage.html
deleted file mode 100644
index 43d444983366baeef69e017b5fd529999a689874..0000000000000000000000000000000000000000
--- a/public/interfaces/_types_d_.notifymessage.html
+++ /dev/null
@@ -1,325 +0,0 @@
-<!doctype html>
-<html class="default no-js">
-<head>
-	<meta charset="utf-8">
-	<meta http-equiv="X-UA-Compatible" content="IE=edge">
-	<title>NotifyMessage | usp-js</title>
-	<meta name="description" content="Documentation for usp-js">
-	<meta name="viewport" content="width=device-width, initial-scale=1">
-	<link rel="stylesheet" href="../assets/css/main.css">
-</head>
-<body>
-<header>
-	<div class="tsd-page-toolbar">
-		<div class="container">
-			<div class="table-wrap">
-				<div class="table-cell" id="tsd-search" data-index="../assets/js/search.json" data-base="..">
-					<div class="field">
-						<label for="tsd-search-field" class="tsd-widget search no-caption">Search</label>
-						<input id="tsd-search-field" type="text" />
-					</div>
-					<ul class="results">
-						<li class="state loading">Preparing search index...</li>
-						<li class="state failure">The search index is not available</li>
-					</ul>
-					<a href="../index.html" class="title">usp-js</a>
-				</div>
-				<div class="table-cell" id="tsd-widgets">
-					<div id="tsd-filter">
-						<a href="#" class="tsd-widget options no-caption" data-toggle="options">Options</a>
-						<div class="tsd-filter-group">
-							<div class="tsd-select" id="tsd-filter-visibility">
-								<span class="tsd-select-label">All</span>
-								<ul class="tsd-select-list">
-									<li data-value="public">Public</li>
-									<li data-value="protected">Public/Protected</li>
-									<li data-value="private" class="selected">All</li>
-								</ul>
-							</div>
-							<input type="checkbox" id="tsd-filter-inherited" checked />
-							<label class="tsd-widget" for="tsd-filter-inherited">Inherited</label>
-							<input type="checkbox" id="tsd-filter-externals" checked />
-							<label class="tsd-widget" for="tsd-filter-externals">Externals</label>
-							<input type="checkbox" id="tsd-filter-only-exported" />
-							<label class="tsd-widget" for="tsd-filter-only-exported">Only exported</label>
-						</div>
-					</div>
-					<a href="#" class="tsd-widget menu no-caption" data-toggle="menu">Menu</a>
-				</div>
-			</div>
-		</div>
-	</div>
-	<div class="tsd-page-title">
-		<div class="container">
-			<ul class="tsd-breadcrumb">
-				<li>
-					<a href="../globals.html">Globals</a>
-				</li>
-				<li>
-					<a href="../modules/_types_d_.html">&quot;types.d&quot;</a>
-				</li>
-				<li>
-					<a href="_types_d_.notifymessage.html">NotifyMessage</a>
-				</li>
-			</ul>
-			<h1>Interface NotifyMessage</h1>
-		</div>
-	</div>
-</header>
-<div class="container container-main">
-	<div class="row">
-		<div class="col-8 col-content">
-			<section class="tsd-panel tsd-comment">
-				<div class="tsd-comment tsd-typography">
-					<div class="lead">
-						<p>Notify Message</p>
-					</div>
-				</div>
-			</section>
-			<section class="tsd-panel tsd-hierarchy">
-				<h3>Hierarchy</h3>
-				<ul class="tsd-hierarchy">
-					<li>
-						<a href="_types_d_.basemessage.html" class="tsd-signature-type">BaseMessage</a>
-						<ul class="tsd-hierarchy">
-							<li>
-								<span class="target">NotifyMessage</span>
-							</li>
-						</ul>
-					</li>
-				</ul>
-			</section>
-			<section class="tsd-panel-group tsd-index-group">
-				<h2>Index</h2>
-				<section class="tsd-panel tsd-index-panel">
-					<div class="tsd-index-content">
-						<section class="tsd-index-section ">
-							<h3>Properties</h3>
-							<ul class="tsd-index-list">
-								<li class="tsd-kind-property tsd-parent-kind-interface tsd-is-overwrite"><a href="_types_d_.notifymessage.html#data" class="tsd-kind-icon">data</a></li>
-								<li class="tsd-kind-property tsd-parent-kind-interface tsd-is-inherited"><a href="_types_d_.notifymessage.html#id" class="tsd-kind-icon">id</a></li>
-								<li class="tsd-kind-property tsd-parent-kind-interface tsd-is-inherited"><a href="_types_d_.notifymessage.html#path" class="tsd-kind-icon">path</a></li>
-								<li class="tsd-kind-property tsd-parent-kind-interface tsd-is-overwrite"><a href="_types_d_.notifymessage.html#type" class="tsd-kind-icon">type</a></li>
-							</ul>
-						</section>
-					</div>
-				</section>
-			</section>
-			<section class="tsd-panel-group tsd-member-group ">
-				<h2>Properties</h2>
-				<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-interface tsd-is-overwrite">
-					<a name="data" class="tsd-anchor"></a>
-					<h3>data</h3>
-					<div class="tsd-signature tsd-kind-icon">data<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">JSValue</span></div>
-					<aside class="tsd-sources">
-						<p>Overrides <a href="_types_d_.basemessage.html">BaseMessage</a>.<a href="_types_d_.basemessage.html#data">data</a></p>
-						<ul>
-							<li>Defined in src/types.d.ts:186</li>
-						</ul>
-					</aside>
-				</section>
-				<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-interface tsd-is-inherited">
-					<a name="id" class="tsd-anchor"></a>
-					<h3>id</h3>
-					<div class="tsd-signature tsd-kind-icon">id<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span></div>
-					<aside class="tsd-sources">
-						<p>Inherited from <a href="_types_d_.basemessage.html">BaseMessage</a>.<a href="_types_d_.basemessage.html#id">id</a></p>
-						<ul>
-							<li>Defined in src/types.d.ts:154</li>
-						</ul>
-					</aside>
-				</section>
-				<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-interface tsd-is-inherited">
-					<a name="path" class="tsd-anchor"></a>
-					<h3>path</h3>
-					<div class="tsd-signature tsd-kind-icon">path<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span></div>
-					<aside class="tsd-sources">
-						<p>Inherited from <a href="_types_d_.basemessage.html">BaseMessage</a>.<a href="_types_d_.basemessage.html#path">path</a></p>
-						<ul>
-							<li>Defined in src/types.d.ts:156</li>
-						</ul>
-					</aside>
-				</section>
-				<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-interface tsd-is-overwrite">
-					<a name="type" class="tsd-anchor"></a>
-					<h3>type</h3>
-					<div class="tsd-signature tsd-kind-icon">type<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">"notify"</span></div>
-					<aside class="tsd-sources">
-						<p>Overrides <a href="_types_d_.basemessage.html">BaseMessage</a>.<a href="_types_d_.basemessage.html#type">type</a></p>
-						<ul>
-							<li>Defined in src/types.d.ts:185</li>
-						</ul>
-					</aside>
-				</section>
-			</section>
-		</div>
-		<div class="col-4 col-menu menu-sticky-wrap menu-highlight">
-			<nav class="tsd-navigation primary">
-				<ul>
-					<li class="globals  ">
-						<a href="../globals.html"><em>Globals</em></a>
-					</li>
-					<li class=" tsd-kind-module">
-						<a href="../modules/_index_.html">&quot;index&quot;</a>
-					</li>
-					<li class=" tsd-kind-module">
-						<a href="../modules/_lib_.html">&quot;lib&quot;</a>
-					</li>
-					<li class=" tsd-kind-module">
-						<a href="../modules/_protocol_index_.html">&quot;protocol/index&quot;</a>
-					</li>
-					<li class=" tsd-kind-module">
-						<a href="../modules/_protocol_js_usp_protobuf_protomessage_.html">&quot;protocol/js-<wbr>usp-<wbr>protobuf/proto<wbr>Message&quot;</a>
-					</li>
-					<li class=" tsd-kind-module">
-						<a href="../modules/_protocol_lib_.html">&quot;protocol/lib&quot;</a>
-					</li>
-					<li class="current tsd-kind-module">
-						<a href="../modules/_types_d_.html">&quot;types.d&quot;</a>
-					</li>
-				</ul>
-			</nav>
-			<nav class="tsd-navigation secondary menu-sticky">
-				<ul class="before-current">
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.addmessage.html" class="tsd-kind-icon">Add<wbr>Message</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.basemessage.html" class="tsd-kind-icon">Base<wbr>Message</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.connectevents.html" class="tsd-kind-icon">Connect<wbr>Events</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.connectoptions.html" class="tsd-kind-icon">Connect<wbr>Options</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.deletemessage.html" class="tsd-kind-icon">Delete<wbr>Message</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.device.html" class="tsd-kind-icon">Device</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.deviceerror.html" class="tsd-kind-icon">Device<wbr>Error</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.encodeargs.html" class="tsd-kind-icon">Encode<wbr>Args</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.errormessage.html" class="tsd-kind-icon">Error<wbr>Message</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.getmessage.html" class="tsd-kind-icon">Get<wbr>Message</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.initresult.html" class="tsd-kind-icon">Init<wbr>Result</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.mqttrequest.html" class="tsd-kind-icon">MQTTRequest</a>
-					</li>
-				</ul>
-				<ul class="current">
-					<li class="current tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.notifymessage.html" class="tsd-kind-icon">Notify<wbr>Message</a>
-						<ul>
-							<li class=" tsd-kind-property tsd-parent-kind-interface tsd-is-overwrite">
-								<a href="_types_d_.notifymessage.html#data" class="tsd-kind-icon">data</a>
-							</li>
-							<li class=" tsd-kind-property tsd-parent-kind-interface tsd-is-inherited">
-								<a href="_types_d_.notifymessage.html#id" class="tsd-kind-icon">id</a>
-							</li>
-							<li class=" tsd-kind-property tsd-parent-kind-interface tsd-is-inherited">
-								<a href="_types_d_.notifymessage.html#path" class="tsd-kind-icon">path</a>
-							</li>
-							<li class=" tsd-kind-property tsd-parent-kind-interface tsd-is-overwrite">
-								<a href="_types_d_.notifymessage.html#type" class="tsd-kind-icon">type</a>
-							</li>
-						</ul>
-					</li>
-				</ul>
-				<ul class="after-current">
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.operatemessage.html" class="tsd-kind-icon">Operate<wbr>Message</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.operateoptions.html" class="tsd-kind-icon">Operate<wbr>Options</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.protocol.html" class="tsd-kind-icon">Protocol</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.protocolargs.html" class="tsd-kind-icon">Protocol<wbr>Args</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.protocolevents.html" class="tsd-kind-icon">Protocol<wbr>Events</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.setmessage.html" class="tsd-kind-icon">Set<wbr>Message</a>
-					</li>
-					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
-						<a href="../modules/_types_d_.html#commandtype" class="tsd-kind-icon">Command<wbr>Type</a>
-					</li>
-					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
-						<a href="../modules/_types_d_.html#iclientoptions" class="tsd-kind-icon">IClient<wbr>Options</a>
-					</li>
-					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
-						<a href="../modules/_types_d_.html#jsobject" class="tsd-kind-icon">JSObject</a>
-					</li>
-					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
-						<a href="../modules/_types_d_.html#jstype" class="tsd-kind-icon">JSType</a>
-					</li>
-					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
-						<a href="../modules/_types_d_.html#messagetype" class="tsd-kind-icon">Message<wbr>Type</a>
-					</li>
-					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
-						<a href="../modules/_types_d_.html#operatecleanupfunction" class="tsd-kind-icon">Operate<wbr>Cleanup<wbr>Function</a>
-					</li>
-					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
-						<a href="../modules/_types_d_.html#operatefunction" class="tsd-kind-icon">Operate<wbr>Function</a>
-					</li>
-					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
-						<a href="../modules/_types_d_.html#promiseresult" class="tsd-kind-icon">Promise<wbr>Result</a>
-					</li>
-					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
-						<a href="../modules/_types_d_.html#rejectfn" class="tsd-kind-icon">Reject<wbr>Fn</a>
-					</li>
-					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
-						<a href="../modules/_types_d_.html#role" class="tsd-kind-icon">Role</a>
-					</li>
-					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
-						<a href="../modules/_types_d_.html#router" class="tsd-kind-icon">Router</a>
-					</li>
-					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
-						<a href="../modules/_types_d_.html#sendfn" class="tsd-kind-icon">Send<wbr>Fn</a>
-					</li>
-					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
-						<a href="../modules/_types_d_.html#uspmessage" class="tsd-kind-icon">USPMessage</a>
-					</li>
-				</ul>
-			</nav>
-		</div>
-	</div>
-</div>
-<footer class="with-border-bottom">
-	<div class="container">
-		<h2>Legend</h2>
-		<div class="tsd-legend-group">
-			<ul class="tsd-legend">
-				<li class="tsd-kind-variable"><span class="tsd-kind-icon">Variable</span></li>
-				<li class="tsd-kind-function"><span class="tsd-kind-icon">Function</span></li>
-				<li class="tsd-kind-type-alias"><span class="tsd-kind-icon">Type alias</span></li>
-			</ul>
-			<ul class="tsd-legend">
-				<li class="tsd-kind-interface"><span class="tsd-kind-icon">Interface</span></li>
-				<li class="tsd-kind-property tsd-parent-kind-interface"><span class="tsd-kind-icon">Property</span></li>
-			</ul>
-		</div>
-	</div>
-</footer>
-<div class="container tsd-generator">
-	<p>Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p>
-</div>
-<div class="overlay"></div>
-<script src="../assets/js/main.js"></script>
-</body>
-</html>
\ No newline at end of file
diff --git a/public/interfaces/_types_d_.operatemessage.html b/public/interfaces/_types_d_.operatemessage.html
deleted file mode 100644
index 5a9157a1bef7e92e23d77ff15d5000d140149649..0000000000000000000000000000000000000000
--- a/public/interfaces/_types_d_.operatemessage.html
+++ /dev/null
@@ -1,325 +0,0 @@
-<!doctype html>
-<html class="default no-js">
-<head>
-	<meta charset="utf-8">
-	<meta http-equiv="X-UA-Compatible" content="IE=edge">
-	<title>OperateMessage | usp-js</title>
-	<meta name="description" content="Documentation for usp-js">
-	<meta name="viewport" content="width=device-width, initial-scale=1">
-	<link rel="stylesheet" href="../assets/css/main.css">
-</head>
-<body>
-<header>
-	<div class="tsd-page-toolbar">
-		<div class="container">
-			<div class="table-wrap">
-				<div class="table-cell" id="tsd-search" data-index="../assets/js/search.json" data-base="..">
-					<div class="field">
-						<label for="tsd-search-field" class="tsd-widget search no-caption">Search</label>
-						<input id="tsd-search-field" type="text" />
-					</div>
-					<ul class="results">
-						<li class="state loading">Preparing search index...</li>
-						<li class="state failure">The search index is not available</li>
-					</ul>
-					<a href="../index.html" class="title">usp-js</a>
-				</div>
-				<div class="table-cell" id="tsd-widgets">
-					<div id="tsd-filter">
-						<a href="#" class="tsd-widget options no-caption" data-toggle="options">Options</a>
-						<div class="tsd-filter-group">
-							<div class="tsd-select" id="tsd-filter-visibility">
-								<span class="tsd-select-label">All</span>
-								<ul class="tsd-select-list">
-									<li data-value="public">Public</li>
-									<li data-value="protected">Public/Protected</li>
-									<li data-value="private" class="selected">All</li>
-								</ul>
-							</div>
-							<input type="checkbox" id="tsd-filter-inherited" checked />
-							<label class="tsd-widget" for="tsd-filter-inherited">Inherited</label>
-							<input type="checkbox" id="tsd-filter-externals" checked />
-							<label class="tsd-widget" for="tsd-filter-externals">Externals</label>
-							<input type="checkbox" id="tsd-filter-only-exported" />
-							<label class="tsd-widget" for="tsd-filter-only-exported">Only exported</label>
-						</div>
-					</div>
-					<a href="#" class="tsd-widget menu no-caption" data-toggle="menu">Menu</a>
-				</div>
-			</div>
-		</div>
-	</div>
-	<div class="tsd-page-title">
-		<div class="container">
-			<ul class="tsd-breadcrumb">
-				<li>
-					<a href="../globals.html">Globals</a>
-				</li>
-				<li>
-					<a href="../modules/_types_d_.html">&quot;types.d&quot;</a>
-				</li>
-				<li>
-					<a href="_types_d_.operatemessage.html">OperateMessage</a>
-				</li>
-			</ul>
-			<h1>Interface OperateMessage</h1>
-		</div>
-	</div>
-</header>
-<div class="container container-main">
-	<div class="row">
-		<div class="col-8 col-content">
-			<section class="tsd-panel tsd-comment">
-				<div class="tsd-comment tsd-typography">
-					<div class="lead">
-						<p>Operate Message</p>
-					</div>
-				</div>
-			</section>
-			<section class="tsd-panel tsd-hierarchy">
-				<h3>Hierarchy</h3>
-				<ul class="tsd-hierarchy">
-					<li>
-						<a href="_types_d_.basemessage.html" class="tsd-signature-type">BaseMessage</a>
-						<ul class="tsd-hierarchy">
-							<li>
-								<span class="target">OperateMessage</span>
-							</li>
-						</ul>
-					</li>
-				</ul>
-			</section>
-			<section class="tsd-panel-group tsd-index-group">
-				<h2>Index</h2>
-				<section class="tsd-panel tsd-index-panel">
-					<div class="tsd-index-content">
-						<section class="tsd-index-section ">
-							<h3>Properties</h3>
-							<ul class="tsd-index-list">
-								<li class="tsd-kind-property tsd-parent-kind-interface tsd-is-overwrite"><a href="_types_d_.operatemessage.html#data" class="tsd-kind-icon">data</a></li>
-								<li class="tsd-kind-property tsd-parent-kind-interface tsd-is-inherited"><a href="_types_d_.operatemessage.html#id" class="tsd-kind-icon">id</a></li>
-								<li class="tsd-kind-property tsd-parent-kind-interface tsd-is-inherited"><a href="_types_d_.operatemessage.html#path" class="tsd-kind-icon">path</a></li>
-								<li class="tsd-kind-property tsd-parent-kind-interface tsd-is-overwrite"><a href="_types_d_.operatemessage.html#type" class="tsd-kind-icon">type</a></li>
-							</ul>
-						</section>
-					</div>
-				</section>
-			</section>
-			<section class="tsd-panel-group tsd-member-group ">
-				<h2>Properties</h2>
-				<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-interface tsd-is-overwrite">
-					<a name="data" class="tsd-anchor"></a>
-					<h3>data</h3>
-					<div class="tsd-signature tsd-kind-icon">data<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">JSValue</span></div>
-					<aside class="tsd-sources">
-						<p>Overrides <a href="_types_d_.basemessage.html">BaseMessage</a>.<a href="_types_d_.basemessage.html#data">data</a></p>
-						<ul>
-							<li>Defined in src/types.d.ts:181</li>
-						</ul>
-					</aside>
-				</section>
-				<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-interface tsd-is-inherited">
-					<a name="id" class="tsd-anchor"></a>
-					<h3>id</h3>
-					<div class="tsd-signature tsd-kind-icon">id<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span></div>
-					<aside class="tsd-sources">
-						<p>Inherited from <a href="_types_d_.basemessage.html">BaseMessage</a>.<a href="_types_d_.basemessage.html#id">id</a></p>
-						<ul>
-							<li>Defined in src/types.d.ts:154</li>
-						</ul>
-					</aside>
-				</section>
-				<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-interface tsd-is-inherited">
-					<a name="path" class="tsd-anchor"></a>
-					<h3>path</h3>
-					<div class="tsd-signature tsd-kind-icon">path<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span></div>
-					<aside class="tsd-sources">
-						<p>Inherited from <a href="_types_d_.basemessage.html">BaseMessage</a>.<a href="_types_d_.basemessage.html#path">path</a></p>
-						<ul>
-							<li>Defined in src/types.d.ts:156</li>
-						</ul>
-					</aside>
-				</section>
-				<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-interface tsd-is-overwrite">
-					<a name="type" class="tsd-anchor"></a>
-					<h3>type</h3>
-					<div class="tsd-signature tsd-kind-icon">type<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">"operate"</span></div>
-					<aside class="tsd-sources">
-						<p>Overrides <a href="_types_d_.basemessage.html">BaseMessage</a>.<a href="_types_d_.basemessage.html#type">type</a></p>
-						<ul>
-							<li>Defined in src/types.d.ts:180</li>
-						</ul>
-					</aside>
-				</section>
-			</section>
-		</div>
-		<div class="col-4 col-menu menu-sticky-wrap menu-highlight">
-			<nav class="tsd-navigation primary">
-				<ul>
-					<li class="globals  ">
-						<a href="../globals.html"><em>Globals</em></a>
-					</li>
-					<li class=" tsd-kind-module">
-						<a href="../modules/_index_.html">&quot;index&quot;</a>
-					</li>
-					<li class=" tsd-kind-module">
-						<a href="../modules/_lib_.html">&quot;lib&quot;</a>
-					</li>
-					<li class=" tsd-kind-module">
-						<a href="../modules/_protocol_index_.html">&quot;protocol/index&quot;</a>
-					</li>
-					<li class=" tsd-kind-module">
-						<a href="../modules/_protocol_js_usp_protobuf_protomessage_.html">&quot;protocol/js-<wbr>usp-<wbr>protobuf/proto<wbr>Message&quot;</a>
-					</li>
-					<li class=" tsd-kind-module">
-						<a href="../modules/_protocol_lib_.html">&quot;protocol/lib&quot;</a>
-					</li>
-					<li class="current tsd-kind-module">
-						<a href="../modules/_types_d_.html">&quot;types.d&quot;</a>
-					</li>
-				</ul>
-			</nav>
-			<nav class="tsd-navigation secondary menu-sticky">
-				<ul class="before-current">
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.addmessage.html" class="tsd-kind-icon">Add<wbr>Message</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.basemessage.html" class="tsd-kind-icon">Base<wbr>Message</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.connectevents.html" class="tsd-kind-icon">Connect<wbr>Events</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.connectoptions.html" class="tsd-kind-icon">Connect<wbr>Options</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.deletemessage.html" class="tsd-kind-icon">Delete<wbr>Message</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.device.html" class="tsd-kind-icon">Device</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.deviceerror.html" class="tsd-kind-icon">Device<wbr>Error</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.encodeargs.html" class="tsd-kind-icon">Encode<wbr>Args</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.errormessage.html" class="tsd-kind-icon">Error<wbr>Message</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.getmessage.html" class="tsd-kind-icon">Get<wbr>Message</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.initresult.html" class="tsd-kind-icon">Init<wbr>Result</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.mqttrequest.html" class="tsd-kind-icon">MQTTRequest</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.notifymessage.html" class="tsd-kind-icon">Notify<wbr>Message</a>
-					</li>
-				</ul>
-				<ul class="current">
-					<li class="current tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.operatemessage.html" class="tsd-kind-icon">Operate<wbr>Message</a>
-						<ul>
-							<li class=" tsd-kind-property tsd-parent-kind-interface tsd-is-overwrite">
-								<a href="_types_d_.operatemessage.html#data" class="tsd-kind-icon">data</a>
-							</li>
-							<li class=" tsd-kind-property tsd-parent-kind-interface tsd-is-inherited">
-								<a href="_types_d_.operatemessage.html#id" class="tsd-kind-icon">id</a>
-							</li>
-							<li class=" tsd-kind-property tsd-parent-kind-interface tsd-is-inherited">
-								<a href="_types_d_.operatemessage.html#path" class="tsd-kind-icon">path</a>
-							</li>
-							<li class=" tsd-kind-property tsd-parent-kind-interface tsd-is-overwrite">
-								<a href="_types_d_.operatemessage.html#type" class="tsd-kind-icon">type</a>
-							</li>
-						</ul>
-					</li>
-				</ul>
-				<ul class="after-current">
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.operateoptions.html" class="tsd-kind-icon">Operate<wbr>Options</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.protocol.html" class="tsd-kind-icon">Protocol</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.protocolargs.html" class="tsd-kind-icon">Protocol<wbr>Args</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.protocolevents.html" class="tsd-kind-icon">Protocol<wbr>Events</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.setmessage.html" class="tsd-kind-icon">Set<wbr>Message</a>
-					</li>
-					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
-						<a href="../modules/_types_d_.html#commandtype" class="tsd-kind-icon">Command<wbr>Type</a>
-					</li>
-					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
-						<a href="../modules/_types_d_.html#iclientoptions" class="tsd-kind-icon">IClient<wbr>Options</a>
-					</li>
-					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
-						<a href="../modules/_types_d_.html#jsobject" class="tsd-kind-icon">JSObject</a>
-					</li>
-					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
-						<a href="../modules/_types_d_.html#jstype" class="tsd-kind-icon">JSType</a>
-					</li>
-					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
-						<a href="../modules/_types_d_.html#messagetype" class="tsd-kind-icon">Message<wbr>Type</a>
-					</li>
-					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
-						<a href="../modules/_types_d_.html#operatecleanupfunction" class="tsd-kind-icon">Operate<wbr>Cleanup<wbr>Function</a>
-					</li>
-					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
-						<a href="../modules/_types_d_.html#operatefunction" class="tsd-kind-icon">Operate<wbr>Function</a>
-					</li>
-					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
-						<a href="../modules/_types_d_.html#promiseresult" class="tsd-kind-icon">Promise<wbr>Result</a>
-					</li>
-					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
-						<a href="../modules/_types_d_.html#rejectfn" class="tsd-kind-icon">Reject<wbr>Fn</a>
-					</li>
-					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
-						<a href="../modules/_types_d_.html#role" class="tsd-kind-icon">Role</a>
-					</li>
-					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
-						<a href="../modules/_types_d_.html#router" class="tsd-kind-icon">Router</a>
-					</li>
-					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
-						<a href="../modules/_types_d_.html#sendfn" class="tsd-kind-icon">Send<wbr>Fn</a>
-					</li>
-					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
-						<a href="../modules/_types_d_.html#uspmessage" class="tsd-kind-icon">USPMessage</a>
-					</li>
-				</ul>
-			</nav>
-		</div>
-	</div>
-</div>
-<footer class="with-border-bottom">
-	<div class="container">
-		<h2>Legend</h2>
-		<div class="tsd-legend-group">
-			<ul class="tsd-legend">
-				<li class="tsd-kind-variable"><span class="tsd-kind-icon">Variable</span></li>
-				<li class="tsd-kind-function"><span class="tsd-kind-icon">Function</span></li>
-				<li class="tsd-kind-type-alias"><span class="tsd-kind-icon">Type alias</span></li>
-			</ul>
-			<ul class="tsd-legend">
-				<li class="tsd-kind-interface"><span class="tsd-kind-icon">Interface</span></li>
-				<li class="tsd-kind-property tsd-parent-kind-interface"><span class="tsd-kind-icon">Property</span></li>
-			</ul>
-		</div>
-	</div>
-</footer>
-<div class="container tsd-generator">
-	<p>Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p>
-</div>
-<div class="overlay"></div>
-<script src="../assets/js/main.js"></script>
-</body>
-</html>
\ No newline at end of file
diff --git a/public/interfaces/_types_d_.protocol.html b/public/interfaces/_types_d_.protocol.html
deleted file mode 100644
index a2478c550670bf06b5c6fb1c08d4df59198c82aa..0000000000000000000000000000000000000000
--- a/public/interfaces/_types_d_.protocol.html
+++ /dev/null
@@ -1,424 +0,0 @@
-<!doctype html>
-<html class="default no-js">
-<head>
-	<meta charset="utf-8">
-	<meta http-equiv="X-UA-Compatible" content="IE=edge">
-	<title>Protocol | usp-js</title>
-	<meta name="description" content="Documentation for usp-js">
-	<meta name="viewport" content="width=device-width, initial-scale=1">
-	<link rel="stylesheet" href="../assets/css/main.css">
-</head>
-<body>
-<header>
-	<div class="tsd-page-toolbar">
-		<div class="container">
-			<div class="table-wrap">
-				<div class="table-cell" id="tsd-search" data-index="../assets/js/search.json" data-base="..">
-					<div class="field">
-						<label for="tsd-search-field" class="tsd-widget search no-caption">Search</label>
-						<input id="tsd-search-field" type="text" />
-					</div>
-					<ul class="results">
-						<li class="state loading">Preparing search index...</li>
-						<li class="state failure">The search index is not available</li>
-					</ul>
-					<a href="../index.html" class="title">usp-js</a>
-				</div>
-				<div class="table-cell" id="tsd-widgets">
-					<div id="tsd-filter">
-						<a href="#" class="tsd-widget options no-caption" data-toggle="options">Options</a>
-						<div class="tsd-filter-group">
-							<div class="tsd-select" id="tsd-filter-visibility">
-								<span class="tsd-select-label">All</span>
-								<ul class="tsd-select-list">
-									<li data-value="public">Public</li>
-									<li data-value="protected">Public/Protected</li>
-									<li data-value="private" class="selected">All</li>
-								</ul>
-							</div>
-							<input type="checkbox" id="tsd-filter-inherited" checked />
-							<label class="tsd-widget" for="tsd-filter-inherited">Inherited</label>
-							<input type="checkbox" id="tsd-filter-externals" checked />
-							<label class="tsd-widget" for="tsd-filter-externals">Externals</label>
-							<input type="checkbox" id="tsd-filter-only-exported" />
-							<label class="tsd-widget" for="tsd-filter-only-exported">Only exported</label>
-						</div>
-					</div>
-					<a href="#" class="tsd-widget menu no-caption" data-toggle="menu">Menu</a>
-				</div>
-			</div>
-		</div>
-	</div>
-	<div class="tsd-page-title">
-		<div class="container">
-			<ul class="tsd-breadcrumb">
-				<li>
-					<a href="../globals.html">Globals</a>
-				</li>
-				<li>
-					<a href="../modules/_types_d_.html">&quot;types.d&quot;</a>
-				</li>
-				<li>
-					<a href="_types_d_.protocol.html">Protocol</a>
-				</li>
-			</ul>
-			<h1>Interface Protocol</h1>
-		</div>
-	</div>
-</header>
-<div class="container container-main">
-	<div class="row">
-		<div class="col-8 col-content">
-			<section class="tsd-panel tsd-comment">
-				<div class="tsd-comment tsd-typography">
-					<div class="lead">
-						<p>Protocol interface</p>
-					</div>
-				</div>
-			</section>
-			<section class="tsd-panel tsd-hierarchy">
-				<h3>Hierarchy</h3>
-				<ul class="tsd-hierarchy">
-					<li>
-						<span class="target">Protocol</span>
-					</li>
-				</ul>
-			</section>
-			<section class="tsd-panel-group tsd-index-group">
-				<h2>Index</h2>
-				<section class="tsd-panel tsd-index-panel">
-					<div class="tsd-index-content">
-						<section class="tsd-index-section ">
-							<h3>Properties</h3>
-							<ul class="tsd-index-list">
-								<li class="tsd-kind-property tsd-parent-kind-interface"><a href="_types_d_.protocol.html#close" class="tsd-kind-icon">close</a></li>
-								<li class="tsd-kind-property tsd-parent-kind-interface"><a href="_types_d_.protocol.html#encode" class="tsd-kind-icon">encode</a></li>
-								<li class="tsd-kind-property tsd-parent-kind-interface"><a href="_types_d_.protocol.html#init" class="tsd-kind-icon">init</a></li>
-								<li class="tsd-kind-property tsd-parent-kind-interface"><a href="_types_d_.protocol.html#send" class="tsd-kind-icon">send</a></li>
-							</ul>
-						</section>
-					</div>
-				</section>
-			</section>
-			<section class="tsd-panel-group tsd-member-group ">
-				<h2>Properties</h2>
-				<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-interface">
-					<a name="close" class="tsd-anchor"></a>
-					<h3>close</h3>
-					<div class="tsd-signature tsd-kind-icon">close<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol"> =&gt; </span><span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">&gt;</span></div>
-					<aside class="tsd-sources">
-						<ul>
-							<li>Defined in src/types.d.ts:228</li>
-						</ul>
-					</aside>
-					<div class="tsd-comment tsd-typography">
-						<div class="lead">
-							<p>Close connection</p>
-						</div>
-					</div>
-					<div class="tsd-type-declaration">
-						<h4>Type declaration</h4>
-						<ul class="tsd-parameters">
-							<li class="tsd-parameter-signature">
-								<ul class="tsd-signatures tsd-kind-type-literal tsd-parent-kind-property">
-									<li class="tsd-signature tsd-kind-icon"><span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">&gt;</span></li>
-								</ul>
-								<ul class="tsd-descriptions">
-									<li class="tsd-description">
-										<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">&gt;</span></h4>
-									</li>
-								</ul>
-							</li>
-						</ul>
-					</div>
-				</section>
-				<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-interface">
-					<a name="encode" class="tsd-anchor"></a>
-					<h3>encode</h3>
-					<div class="tsd-signature tsd-kind-icon">encode<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-symbol">(</span>command<span class="tsd-signature-symbol">: </span><a href="../modules/_types_d_.html#commandtype" class="tsd-signature-type">CommandType</a>, args<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Partial</span><span class="tsd-signature-symbol">&lt;</span><a href="_types_d_.encodeargs.html" class="tsd-signature-type">EncodeArgs</a><span class="tsd-signature-symbol">&gt;</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol"> =&gt; </span><span class="tsd-signature-symbol">{ </span>data<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">; </span>id<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol"> }</span></div>
-					<aside class="tsd-sources">
-						<ul>
-							<li>Defined in src/types.d.ts:232</li>
-						</ul>
-					</aside>
-					<div class="tsd-comment tsd-typography">
-						<div class="lead">
-							<p>Encode message</p>
-						</div>
-					</div>
-					<div class="tsd-type-declaration">
-						<h4>Type declaration</h4>
-						<ul class="tsd-parameters">
-							<li class="tsd-parameter-signature">
-								<ul class="tsd-signatures tsd-kind-type-literal tsd-parent-kind-property">
-									<li class="tsd-signature tsd-kind-icon"><span class="tsd-signature-symbol">(</span>command<span class="tsd-signature-symbol">: </span><a href="../modules/_types_d_.html#commandtype" class="tsd-signature-type">CommandType</a>, args<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Partial</span><span class="tsd-signature-symbol">&lt;</span><a href="_types_d_.encodeargs.html" class="tsd-signature-type">EncodeArgs</a><span class="tsd-signature-symbol">&gt;</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-symbol">{ </span>data<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">; </span>id<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol"> }</span></li>
-								</ul>
-								<ul class="tsd-descriptions">
-									<li class="tsd-description">
-										<h4 class="tsd-parameters-title">Parameters</h4>
-										<ul class="tsd-parameters">
-											<li>
-												<h5>command: <a href="../modules/_types_d_.html#commandtype" class="tsd-signature-type">CommandType</a></h5>
-											</li>
-											<li>
-												<h5>args: <span class="tsd-signature-type">Partial</span><span class="tsd-signature-symbol">&lt;</span><a href="_types_d_.encodeargs.html" class="tsd-signature-type">EncodeArgs</a><span class="tsd-signature-symbol">&gt;</span></h5>
-											</li>
-										</ul>
-										<h4 class="tsd-returns-title">Returns <span class="tsd-signature-symbol">{ </span>data<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">; </span>id<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol"> }</span></h4>
-										<ul class="tsd-parameters">
-											<li class="tsd-parameter">
-												<h5>data<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">any</span></h5>
-											</li>
-											<li class="tsd-parameter">
-												<h5>id<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span></h5>
-											</li>
-										</ul>
-									</li>
-								</ul>
-							</li>
-						</ul>
-					</div>
-				</section>
-				<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-interface">
-					<a name="init" class="tsd-anchor"></a>
-					<h3>init</h3>
-					<div class="tsd-signature tsd-kind-icon">init<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol"> =&gt; </span><span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><a href="_types_d_.initresult.html" class="tsd-signature-type">InitResult</a><span class="tsd-signature-symbol">&gt;</span></div>
-					<aside class="tsd-sources">
-						<ul>
-							<li>Defined in src/types.d.ts:226</li>
-						</ul>
-					</aside>
-					<div class="tsd-comment tsd-typography">
-						<div class="lead">
-							<p>Initialize protocol</p>
-						</div>
-					</div>
-					<div class="tsd-type-declaration">
-						<h4>Type declaration</h4>
-						<ul class="tsd-parameters">
-							<li class="tsd-parameter-signature">
-								<ul class="tsd-signatures tsd-kind-type-literal tsd-parent-kind-property">
-									<li class="tsd-signature tsd-kind-icon"><span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><a href="_types_d_.initresult.html" class="tsd-signature-type">InitResult</a><span class="tsd-signature-symbol">&gt;</span></li>
-								</ul>
-								<ul class="tsd-descriptions">
-									<li class="tsd-description">
-										<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><a href="_types_d_.initresult.html" class="tsd-signature-type">InitResult</a><span class="tsd-signature-symbol">&gt;</span></h4>
-									</li>
-								</ul>
-							</li>
-						</ul>
-					</div>
-				</section>
-				<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-interface">
-					<a name="send" class="tsd-anchor"></a>
-					<h3>send</h3>
-					<div class="tsd-signature tsd-kind-icon">send<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-symbol">(</span>__namedParameters<span class="tsd-signature-symbol">: </span><span class="tsd-signature-symbol">{ </span>any<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol"> }</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol"> =&gt; </span><span class="tsd-signature-type">void</span></div>
-					<aside class="tsd-sources">
-						<ul>
-							<li>Defined in src/types.d.ts:230</li>
-						</ul>
-					</aside>
-					<div class="tsd-comment tsd-typography">
-						<div class="lead">
-							<p>Send message</p>
-						</div>
-					</div>
-					<div class="tsd-type-declaration">
-						<h4>Type declaration</h4>
-						<ul class="tsd-parameters">
-							<li class="tsd-parameter-signature">
-								<ul class="tsd-signatures tsd-kind-type-literal tsd-parent-kind-property">
-									<li class="tsd-signature tsd-kind-icon"><span class="tsd-signature-symbol">(</span>__namedParameters<span class="tsd-signature-symbol">: </span><span class="tsd-signature-symbol">{ </span>any<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol"> }</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">void</span></li>
-								</ul>
-								<ul class="tsd-descriptions">
-									<li class="tsd-description">
-										<h4 class="tsd-parameters-title">Parameters</h4>
-										<ul class="tsd-parameters">
-											<li>
-												<h5>__namedParameters: <span class="tsd-signature-symbol">{ </span>any<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol"> }</span></h5>
-												<ul class="tsd-parameters">
-													<li class="tsd-parameter">
-														<h5>any<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">any</span></h5>
-													</li>
-												</ul>
-											</li>
-										</ul>
-										<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">void</span></h4>
-									</li>
-								</ul>
-							</li>
-						</ul>
-					</div>
-				</section>
-			</section>
-		</div>
-		<div class="col-4 col-menu menu-sticky-wrap menu-highlight">
-			<nav class="tsd-navigation primary">
-				<ul>
-					<li class="globals  ">
-						<a href="../globals.html"><em>Globals</em></a>
-					</li>
-					<li class=" tsd-kind-module">
-						<a href="../modules/_index_.html">&quot;index&quot;</a>
-					</li>
-					<li class=" tsd-kind-module">
-						<a href="../modules/_lib_.html">&quot;lib&quot;</a>
-					</li>
-					<li class=" tsd-kind-module">
-						<a href="../modules/_protocol_index_.html">&quot;protocol/index&quot;</a>
-					</li>
-					<li class=" tsd-kind-module">
-						<a href="../modules/_protocol_js_usp_protobuf_protomessage_.html">&quot;protocol/js-<wbr>usp-<wbr>protobuf/proto<wbr>Message&quot;</a>
-					</li>
-					<li class=" tsd-kind-module">
-						<a href="../modules/_protocol_lib_.html">&quot;protocol/lib&quot;</a>
-					</li>
-					<li class="current tsd-kind-module">
-						<a href="../modules/_types_d_.html">&quot;types.d&quot;</a>
-					</li>
-				</ul>
-			</nav>
-			<nav class="tsd-navigation secondary menu-sticky">
-				<ul class="before-current">
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.addmessage.html" class="tsd-kind-icon">Add<wbr>Message</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.basemessage.html" class="tsd-kind-icon">Base<wbr>Message</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.connectevents.html" class="tsd-kind-icon">Connect<wbr>Events</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.connectoptions.html" class="tsd-kind-icon">Connect<wbr>Options</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.deletemessage.html" class="tsd-kind-icon">Delete<wbr>Message</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.device.html" class="tsd-kind-icon">Device</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.deviceerror.html" class="tsd-kind-icon">Device<wbr>Error</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.encodeargs.html" class="tsd-kind-icon">Encode<wbr>Args</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.errormessage.html" class="tsd-kind-icon">Error<wbr>Message</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.getmessage.html" class="tsd-kind-icon">Get<wbr>Message</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.initresult.html" class="tsd-kind-icon">Init<wbr>Result</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.mqttrequest.html" class="tsd-kind-icon">MQTTRequest</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.notifymessage.html" class="tsd-kind-icon">Notify<wbr>Message</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.operatemessage.html" class="tsd-kind-icon">Operate<wbr>Message</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.operateoptions.html" class="tsd-kind-icon">Operate<wbr>Options</a>
-					</li>
-				</ul>
-				<ul class="current">
-					<li class="current tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.protocol.html" class="tsd-kind-icon">Protocol</a>
-						<ul>
-							<li class=" tsd-kind-property tsd-parent-kind-interface">
-								<a href="_types_d_.protocol.html#close" class="tsd-kind-icon">close</a>
-							</li>
-							<li class=" tsd-kind-property tsd-parent-kind-interface">
-								<a href="_types_d_.protocol.html#encode" class="tsd-kind-icon">encode</a>
-							</li>
-							<li class=" tsd-kind-property tsd-parent-kind-interface">
-								<a href="_types_d_.protocol.html#init" class="tsd-kind-icon">init</a>
-							</li>
-							<li class=" tsd-kind-property tsd-parent-kind-interface">
-								<a href="_types_d_.protocol.html#send" class="tsd-kind-icon">send</a>
-							</li>
-						</ul>
-					</li>
-				</ul>
-				<ul class="after-current">
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.protocolargs.html" class="tsd-kind-icon">Protocol<wbr>Args</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.protocolevents.html" class="tsd-kind-icon">Protocol<wbr>Events</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.setmessage.html" class="tsd-kind-icon">Set<wbr>Message</a>
-					</li>
-					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
-						<a href="../modules/_types_d_.html#commandtype" class="tsd-kind-icon">Command<wbr>Type</a>
-					</li>
-					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
-						<a href="../modules/_types_d_.html#iclientoptions" class="tsd-kind-icon">IClient<wbr>Options</a>
-					</li>
-					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
-						<a href="../modules/_types_d_.html#jsobject" class="tsd-kind-icon">JSObject</a>
-					</li>
-					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
-						<a href="../modules/_types_d_.html#jstype" class="tsd-kind-icon">JSType</a>
-					</li>
-					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
-						<a href="../modules/_types_d_.html#messagetype" class="tsd-kind-icon">Message<wbr>Type</a>
-					</li>
-					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
-						<a href="../modules/_types_d_.html#operatecleanupfunction" class="tsd-kind-icon">Operate<wbr>Cleanup<wbr>Function</a>
-					</li>
-					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
-						<a href="../modules/_types_d_.html#operatefunction" class="tsd-kind-icon">Operate<wbr>Function</a>
-					</li>
-					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
-						<a href="../modules/_types_d_.html#promiseresult" class="tsd-kind-icon">Promise<wbr>Result</a>
-					</li>
-					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
-						<a href="../modules/_types_d_.html#rejectfn" class="tsd-kind-icon">Reject<wbr>Fn</a>
-					</li>
-					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
-						<a href="../modules/_types_d_.html#role" class="tsd-kind-icon">Role</a>
-					</li>
-					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
-						<a href="../modules/_types_d_.html#router" class="tsd-kind-icon">Router</a>
-					</li>
-					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
-						<a href="../modules/_types_d_.html#sendfn" class="tsd-kind-icon">Send<wbr>Fn</a>
-					</li>
-					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
-						<a href="../modules/_types_d_.html#uspmessage" class="tsd-kind-icon">USPMessage</a>
-					</li>
-				</ul>
-			</nav>
-		</div>
-	</div>
-</div>
-<footer class="with-border-bottom">
-	<div class="container">
-		<h2>Legend</h2>
-		<div class="tsd-legend-group">
-			<ul class="tsd-legend">
-				<li class="tsd-kind-variable"><span class="tsd-kind-icon">Variable</span></li>
-				<li class="tsd-kind-function"><span class="tsd-kind-icon">Function</span></li>
-				<li class="tsd-kind-type-alias"><span class="tsd-kind-icon">Type alias</span></li>
-			</ul>
-			<ul class="tsd-legend">
-				<li class="tsd-kind-interface"><span class="tsd-kind-icon">Interface</span></li>
-				<li class="tsd-kind-property tsd-parent-kind-interface"><span class="tsd-kind-icon">Property</span></li>
-			</ul>
-		</div>
-	</div>
-</footer>
-<div class="container tsd-generator">
-	<p>Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p>
-</div>
-<div class="overlay"></div>
-<script src="../assets/js/main.js"></script>
-</body>
-</html>
\ No newline at end of file
diff --git a/public/interfaces/_types_d_.protocolargs.html b/public/interfaces/_types_d_.protocolargs.html
deleted file mode 100644
index 61fcfc3981c310043039917f48125b6eede53204..0000000000000000000000000000000000000000
--- a/public/interfaces/_types_d_.protocolargs.html
+++ /dev/null
@@ -1,330 +0,0 @@
-<!doctype html>
-<html class="default no-js">
-<head>
-	<meta charset="utf-8">
-	<meta http-equiv="X-UA-Compatible" content="IE=edge">
-	<title>ProtocolArgs | usp-js</title>
-	<meta name="description" content="Documentation for usp-js">
-	<meta name="viewport" content="width=device-width, initial-scale=1">
-	<link rel="stylesheet" href="../assets/css/main.css">
-</head>
-<body>
-<header>
-	<div class="tsd-page-toolbar">
-		<div class="container">
-			<div class="table-wrap">
-				<div class="table-cell" id="tsd-search" data-index="../assets/js/search.json" data-base="..">
-					<div class="field">
-						<label for="tsd-search-field" class="tsd-widget search no-caption">Search</label>
-						<input id="tsd-search-field" type="text" />
-					</div>
-					<ul class="results">
-						<li class="state loading">Preparing search index...</li>
-						<li class="state failure">The search index is not available</li>
-					</ul>
-					<a href="../index.html" class="title">usp-js</a>
-				</div>
-				<div class="table-cell" id="tsd-widgets">
-					<div id="tsd-filter">
-						<a href="#" class="tsd-widget options no-caption" data-toggle="options">Options</a>
-						<div class="tsd-filter-group">
-							<div class="tsd-select" id="tsd-filter-visibility">
-								<span class="tsd-select-label">All</span>
-								<ul class="tsd-select-list">
-									<li data-value="public">Public</li>
-									<li data-value="protected">Public/Protected</li>
-									<li data-value="private" class="selected">All</li>
-								</ul>
-							</div>
-							<input type="checkbox" id="tsd-filter-inherited" checked />
-							<label class="tsd-widget" for="tsd-filter-inherited">Inherited</label>
-							<input type="checkbox" id="tsd-filter-externals" checked />
-							<label class="tsd-widget" for="tsd-filter-externals">Externals</label>
-							<input type="checkbox" id="tsd-filter-only-exported" />
-							<label class="tsd-widget" for="tsd-filter-only-exported">Only exported</label>
-						</div>
-					</div>
-					<a href="#" class="tsd-widget menu no-caption" data-toggle="menu">Menu</a>
-				</div>
-			</div>
-		</div>
-	</div>
-	<div class="tsd-page-title">
-		<div class="container">
-			<ul class="tsd-breadcrumb">
-				<li>
-					<a href="../globals.html">Globals</a>
-				</li>
-				<li>
-					<a href="../modules/_types_d_.html">&quot;types.d&quot;</a>
-				</li>
-				<li>
-					<a href="_types_d_.protocolargs.html">ProtocolArgs</a>
-				</li>
-			</ul>
-			<h1>Interface ProtocolArgs</h1>
-		</div>
-	</div>
-</header>
-<div class="container container-main">
-	<div class="row">
-		<div class="col-8 col-content">
-			<section class="tsd-panel tsd-comment">
-				<div class="tsd-comment tsd-typography">
-					<div class="lead">
-						<p>Protocol event handlers</p>
-					</div>
-				</div>
-			</section>
-			<section class="tsd-panel tsd-hierarchy">
-				<h3>Hierarchy</h3>
-				<ul class="tsd-hierarchy">
-					<li>
-						<span class="target">ProtocolArgs</span>
-					</li>
-				</ul>
-			</section>
-			<section class="tsd-panel-group tsd-index-group">
-				<h2>Index</h2>
-				<section class="tsd-panel tsd-index-panel">
-					<div class="tsd-index-content">
-						<section class="tsd-index-section ">
-							<h3>Properties</h3>
-							<ul class="tsd-index-list">
-								<li class="tsd-kind-property tsd-parent-kind-interface"><a href="_types_d_.protocolargs.html#onerror" class="tsd-kind-icon">on<wbr>Error</a></li>
-								<li class="tsd-kind-property tsd-parent-kind-interface"><a href="_types_d_.protocolargs.html#onmessage" class="tsd-kind-icon">on<wbr>Message</a></li>
-							</ul>
-						</section>
-					</div>
-				</section>
-			</section>
-			<section class="tsd-panel-group tsd-member-group ">
-				<h2>Properties</h2>
-				<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-interface">
-					<a name="onerror" class="tsd-anchor"></a>
-					<h3>on<wbr>Error</h3>
-					<div class="tsd-signature tsd-kind-icon">on<wbr>Error<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-symbol">(</span>err<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol"> =&gt; </span><span class="tsd-signature-type">void</span></div>
-					<aside class="tsd-sources">
-						<ul>
-							<li>Defined in src/types.d.ts:214</li>
-						</ul>
-					</aside>
-					<div class="tsd-type-declaration">
-						<h4>Type declaration</h4>
-						<ul class="tsd-parameters">
-							<li class="tsd-parameter-signature">
-								<ul class="tsd-signatures tsd-kind-type-literal tsd-parent-kind-property">
-									<li class="tsd-signature tsd-kind-icon"><span class="tsd-signature-symbol">(</span>err<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">void</span></li>
-								</ul>
-								<ul class="tsd-descriptions">
-									<li class="tsd-description">
-										<h4 class="tsd-parameters-title">Parameters</h4>
-										<ul class="tsd-parameters">
-											<li>
-												<h5>err: <span class="tsd-signature-type">any</span></h5>
-											</li>
-										</ul>
-										<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">void</span></h4>
-									</li>
-								</ul>
-							</li>
-						</ul>
-					</div>
-				</section>
-				<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-interface">
-					<a name="onmessage" class="tsd-anchor"></a>
-					<h3>on<wbr>Message</h3>
-					<div class="tsd-signature tsd-kind-icon">on<wbr>Message<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-symbol">(</span>msg<span class="tsd-signature-symbol">: </span><a href="../modules/_types_d_.html#uspmessage" class="tsd-signature-type">USPMessage</a><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol"> =&gt; </span><span class="tsd-signature-type">void</span></div>
-					<aside class="tsd-sources">
-						<ul>
-							<li>Defined in src/types.d.ts:213</li>
-						</ul>
-					</aside>
-					<div class="tsd-type-declaration">
-						<h4>Type declaration</h4>
-						<ul class="tsd-parameters">
-							<li class="tsd-parameter-signature">
-								<ul class="tsd-signatures tsd-kind-type-literal tsd-parent-kind-property">
-									<li class="tsd-signature tsd-kind-icon"><span class="tsd-signature-symbol">(</span>msg<span class="tsd-signature-symbol">: </span><a href="../modules/_types_d_.html#uspmessage" class="tsd-signature-type">USPMessage</a><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">void</span></li>
-								</ul>
-								<ul class="tsd-descriptions">
-									<li class="tsd-description">
-										<h4 class="tsd-parameters-title">Parameters</h4>
-										<ul class="tsd-parameters">
-											<li>
-												<h5>msg: <a href="../modules/_types_d_.html#uspmessage" class="tsd-signature-type">USPMessage</a></h5>
-											</li>
-										</ul>
-										<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">void</span></h4>
-									</li>
-								</ul>
-							</li>
-						</ul>
-					</div>
-				</section>
-			</section>
-		</div>
-		<div class="col-4 col-menu menu-sticky-wrap menu-highlight">
-			<nav class="tsd-navigation primary">
-				<ul>
-					<li class="globals  ">
-						<a href="../globals.html"><em>Globals</em></a>
-					</li>
-					<li class=" tsd-kind-module">
-						<a href="../modules/_index_.html">&quot;index&quot;</a>
-					</li>
-					<li class=" tsd-kind-module">
-						<a href="../modules/_lib_.html">&quot;lib&quot;</a>
-					</li>
-					<li class=" tsd-kind-module">
-						<a href="../modules/_protocol_index_.html">&quot;protocol/index&quot;</a>
-					</li>
-					<li class=" tsd-kind-module">
-						<a href="../modules/_protocol_js_usp_protobuf_protomessage_.html">&quot;protocol/js-<wbr>usp-<wbr>protobuf/proto<wbr>Message&quot;</a>
-					</li>
-					<li class=" tsd-kind-module">
-						<a href="../modules/_protocol_lib_.html">&quot;protocol/lib&quot;</a>
-					</li>
-					<li class="current tsd-kind-module">
-						<a href="../modules/_types_d_.html">&quot;types.d&quot;</a>
-					</li>
-				</ul>
-			</nav>
-			<nav class="tsd-navigation secondary menu-sticky">
-				<ul class="before-current">
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.addmessage.html" class="tsd-kind-icon">Add<wbr>Message</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.basemessage.html" class="tsd-kind-icon">Base<wbr>Message</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.connectevents.html" class="tsd-kind-icon">Connect<wbr>Events</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.connectoptions.html" class="tsd-kind-icon">Connect<wbr>Options</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.deletemessage.html" class="tsd-kind-icon">Delete<wbr>Message</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.device.html" class="tsd-kind-icon">Device</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.deviceerror.html" class="tsd-kind-icon">Device<wbr>Error</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.encodeargs.html" class="tsd-kind-icon">Encode<wbr>Args</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.errormessage.html" class="tsd-kind-icon">Error<wbr>Message</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.getmessage.html" class="tsd-kind-icon">Get<wbr>Message</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.initresult.html" class="tsd-kind-icon">Init<wbr>Result</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.mqttrequest.html" class="tsd-kind-icon">MQTTRequest</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.notifymessage.html" class="tsd-kind-icon">Notify<wbr>Message</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.operatemessage.html" class="tsd-kind-icon">Operate<wbr>Message</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.operateoptions.html" class="tsd-kind-icon">Operate<wbr>Options</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.protocol.html" class="tsd-kind-icon">Protocol</a>
-					</li>
-				</ul>
-				<ul class="current">
-					<li class="current tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.protocolargs.html" class="tsd-kind-icon">Protocol<wbr>Args</a>
-						<ul>
-							<li class=" tsd-kind-property tsd-parent-kind-interface">
-								<a href="_types_d_.protocolargs.html#onerror" class="tsd-kind-icon">on<wbr>Error</a>
-							</li>
-							<li class=" tsd-kind-property tsd-parent-kind-interface">
-								<a href="_types_d_.protocolargs.html#onmessage" class="tsd-kind-icon">on<wbr>Message</a>
-							</li>
-						</ul>
-					</li>
-				</ul>
-				<ul class="after-current">
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.protocolevents.html" class="tsd-kind-icon">Protocol<wbr>Events</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.setmessage.html" class="tsd-kind-icon">Set<wbr>Message</a>
-					</li>
-					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
-						<a href="../modules/_types_d_.html#commandtype" class="tsd-kind-icon">Command<wbr>Type</a>
-					</li>
-					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
-						<a href="../modules/_types_d_.html#iclientoptions" class="tsd-kind-icon">IClient<wbr>Options</a>
-					</li>
-					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
-						<a href="../modules/_types_d_.html#jsobject" class="tsd-kind-icon">JSObject</a>
-					</li>
-					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
-						<a href="../modules/_types_d_.html#jstype" class="tsd-kind-icon">JSType</a>
-					</li>
-					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
-						<a href="../modules/_types_d_.html#messagetype" class="tsd-kind-icon">Message<wbr>Type</a>
-					</li>
-					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
-						<a href="../modules/_types_d_.html#operatecleanupfunction" class="tsd-kind-icon">Operate<wbr>Cleanup<wbr>Function</a>
-					</li>
-					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
-						<a href="../modules/_types_d_.html#operatefunction" class="tsd-kind-icon">Operate<wbr>Function</a>
-					</li>
-					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
-						<a href="../modules/_types_d_.html#promiseresult" class="tsd-kind-icon">Promise<wbr>Result</a>
-					</li>
-					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
-						<a href="../modules/_types_d_.html#rejectfn" class="tsd-kind-icon">Reject<wbr>Fn</a>
-					</li>
-					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
-						<a href="../modules/_types_d_.html#role" class="tsd-kind-icon">Role</a>
-					</li>
-					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
-						<a href="../modules/_types_d_.html#router" class="tsd-kind-icon">Router</a>
-					</li>
-					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
-						<a href="../modules/_types_d_.html#sendfn" class="tsd-kind-icon">Send<wbr>Fn</a>
-					</li>
-					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
-						<a href="../modules/_types_d_.html#uspmessage" class="tsd-kind-icon">USPMessage</a>
-					</li>
-				</ul>
-			</nav>
-		</div>
-	</div>
-</div>
-<footer class="with-border-bottom">
-	<div class="container">
-		<h2>Legend</h2>
-		<div class="tsd-legend-group">
-			<ul class="tsd-legend">
-				<li class="tsd-kind-variable"><span class="tsd-kind-icon">Variable</span></li>
-				<li class="tsd-kind-function"><span class="tsd-kind-icon">Function</span></li>
-				<li class="tsd-kind-type-alias"><span class="tsd-kind-icon">Type alias</span></li>
-			</ul>
-			<ul class="tsd-legend">
-				<li class="tsd-kind-interface"><span class="tsd-kind-icon">Interface</span></li>
-				<li class="tsd-kind-property tsd-parent-kind-interface"><span class="tsd-kind-icon">Property</span></li>
-			</ul>
-		</div>
-	</div>
-</footer>
-<div class="container tsd-generator">
-	<p>Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p>
-</div>
-<div class="overlay"></div>
-<script src="../assets/js/main.js"></script>
-</body>
-</html>
\ No newline at end of file
diff --git a/public/interfaces/_types_d_.protocolevents.html b/public/interfaces/_types_d_.protocolevents.html
deleted file mode 100644
index 20cd5143375e2291ce8f953136a635b20b34480d..0000000000000000000000000000000000000000
--- a/public/interfaces/_types_d_.protocolevents.html
+++ /dev/null
@@ -1,300 +0,0 @@
-<!doctype html>
-<html class="default no-js">
-<head>
-	<meta charset="utf-8">
-	<meta http-equiv="X-UA-Compatible" content="IE=edge">
-	<title>ProtocolEvents | usp-js</title>
-	<meta name="description" content="Documentation for usp-js">
-	<meta name="viewport" content="width=device-width, initial-scale=1">
-	<link rel="stylesheet" href="../assets/css/main.css">
-</head>
-<body>
-<header>
-	<div class="tsd-page-toolbar">
-		<div class="container">
-			<div class="table-wrap">
-				<div class="table-cell" id="tsd-search" data-index="../assets/js/search.json" data-base="..">
-					<div class="field">
-						<label for="tsd-search-field" class="tsd-widget search no-caption">Search</label>
-						<input id="tsd-search-field" type="text" />
-					</div>
-					<ul class="results">
-						<li class="state loading">Preparing search index...</li>
-						<li class="state failure">The search index is not available</li>
-					</ul>
-					<a href="../index.html" class="title">usp-js</a>
-				</div>
-				<div class="table-cell" id="tsd-widgets">
-					<div id="tsd-filter">
-						<a href="#" class="tsd-widget options no-caption" data-toggle="options">Options</a>
-						<div class="tsd-filter-group">
-							<div class="tsd-select" id="tsd-filter-visibility">
-								<span class="tsd-select-label">All</span>
-								<ul class="tsd-select-list">
-									<li data-value="public">Public</li>
-									<li data-value="protected">Public/Protected</li>
-									<li data-value="private" class="selected">All</li>
-								</ul>
-							</div>
-							<input type="checkbox" id="tsd-filter-inherited" checked />
-							<label class="tsd-widget" for="tsd-filter-inherited">Inherited</label>
-							<input type="checkbox" id="tsd-filter-externals" checked />
-							<label class="tsd-widget" for="tsd-filter-externals">Externals</label>
-							<input type="checkbox" id="tsd-filter-only-exported" />
-							<label class="tsd-widget" for="tsd-filter-only-exported">Only exported</label>
-						</div>
-					</div>
-					<a href="#" class="tsd-widget menu no-caption" data-toggle="menu">Menu</a>
-				</div>
-			</div>
-		</div>
-	</div>
-	<div class="tsd-page-title">
-		<div class="container">
-			<ul class="tsd-breadcrumb">
-				<li>
-					<a href="../globals.html">Globals</a>
-				</li>
-				<li>
-					<a href="../modules/_types_d_.html">&quot;types.d&quot;</a>
-				</li>
-				<li>
-					<a href="_types_d_.protocolevents.html">ProtocolEvents</a>
-				</li>
-			</ul>
-			<h1>Interface ProtocolEvents</h1>
-		</div>
-	</div>
-</header>
-<div class="container container-main">
-	<div class="row">
-		<div class="col-8 col-content">
-			<section class="tsd-panel tsd-comment">
-				<div class="tsd-comment tsd-typography">
-					<div class="lead">
-						<p>Protocol event handlers</p>
-					</div>
-				</div>
-			</section>
-			<section class="tsd-panel tsd-hierarchy">
-				<h3>Hierarchy</h3>
-				<ul class="tsd-hierarchy">
-					<li>
-						<span class="target">ProtocolEvents</span>
-					</li>
-				</ul>
-			</section>
-			<section class="tsd-panel-group tsd-index-group">
-				<h2>Index</h2>
-				<section class="tsd-panel tsd-index-panel">
-					<div class="tsd-index-content">
-						<section class="tsd-index-section ">
-							<h3>Properties</h3>
-							<ul class="tsd-index-list">
-								<li class="tsd-kind-property tsd-parent-kind-interface"><a href="_types_d_.protocolevents.html#onmessage" class="tsd-kind-icon">on<wbr>Message</a></li>
-							</ul>
-						</section>
-					</div>
-				</section>
-			</section>
-			<section class="tsd-panel-group tsd-member-group ">
-				<h2>Properties</h2>
-				<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-interface">
-					<a name="onmessage" class="tsd-anchor"></a>
-					<h3>on<wbr>Message</h3>
-					<div class="tsd-signature tsd-kind-icon">on<wbr>Message<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-symbol">(</span>resp<span class="tsd-signature-symbol">: </span><a href="../modules/_types_d_.html#uspmessage" class="tsd-signature-type">USPMessage</a><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol"> =&gt; </span><span class="tsd-signature-type">void</span></div>
-					<aside class="tsd-sources">
-						<ul>
-							<li>Defined in src/types.d.ts:241</li>
-						</ul>
-					</aside>
-					<div class="tsd-comment tsd-typography">
-						<div class="lead">
-							<p>Handler for message event</p>
-						</div>
-					</div>
-					<div class="tsd-type-declaration">
-						<h4>Type declaration</h4>
-						<ul class="tsd-parameters">
-							<li class="tsd-parameter-signature">
-								<ul class="tsd-signatures tsd-kind-type-literal tsd-parent-kind-property">
-									<li class="tsd-signature tsd-kind-icon"><span class="tsd-signature-symbol">(</span>resp<span class="tsd-signature-symbol">: </span><a href="../modules/_types_d_.html#uspmessage" class="tsd-signature-type">USPMessage</a><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">void</span></li>
-								</ul>
-								<ul class="tsd-descriptions">
-									<li class="tsd-description">
-										<h4 class="tsd-parameters-title">Parameters</h4>
-										<ul class="tsd-parameters">
-											<li>
-												<h5>resp: <a href="../modules/_types_d_.html#uspmessage" class="tsd-signature-type">USPMessage</a></h5>
-											</li>
-										</ul>
-										<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">void</span></h4>
-									</li>
-								</ul>
-							</li>
-						</ul>
-					</div>
-				</section>
-			</section>
-		</div>
-		<div class="col-4 col-menu menu-sticky-wrap menu-highlight">
-			<nav class="tsd-navigation primary">
-				<ul>
-					<li class="globals  ">
-						<a href="../globals.html"><em>Globals</em></a>
-					</li>
-					<li class=" tsd-kind-module">
-						<a href="../modules/_index_.html">&quot;index&quot;</a>
-					</li>
-					<li class=" tsd-kind-module">
-						<a href="../modules/_lib_.html">&quot;lib&quot;</a>
-					</li>
-					<li class=" tsd-kind-module">
-						<a href="../modules/_protocol_index_.html">&quot;protocol/index&quot;</a>
-					</li>
-					<li class=" tsd-kind-module">
-						<a href="../modules/_protocol_js_usp_protobuf_protomessage_.html">&quot;protocol/js-<wbr>usp-<wbr>protobuf/proto<wbr>Message&quot;</a>
-					</li>
-					<li class=" tsd-kind-module">
-						<a href="../modules/_protocol_lib_.html">&quot;protocol/lib&quot;</a>
-					</li>
-					<li class="current tsd-kind-module">
-						<a href="../modules/_types_d_.html">&quot;types.d&quot;</a>
-					</li>
-				</ul>
-			</nav>
-			<nav class="tsd-navigation secondary menu-sticky">
-				<ul class="before-current">
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.addmessage.html" class="tsd-kind-icon">Add<wbr>Message</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.basemessage.html" class="tsd-kind-icon">Base<wbr>Message</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.connectevents.html" class="tsd-kind-icon">Connect<wbr>Events</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.connectoptions.html" class="tsd-kind-icon">Connect<wbr>Options</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.deletemessage.html" class="tsd-kind-icon">Delete<wbr>Message</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.device.html" class="tsd-kind-icon">Device</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.deviceerror.html" class="tsd-kind-icon">Device<wbr>Error</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.encodeargs.html" class="tsd-kind-icon">Encode<wbr>Args</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.errormessage.html" class="tsd-kind-icon">Error<wbr>Message</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.getmessage.html" class="tsd-kind-icon">Get<wbr>Message</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.initresult.html" class="tsd-kind-icon">Init<wbr>Result</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.mqttrequest.html" class="tsd-kind-icon">MQTTRequest</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.notifymessage.html" class="tsd-kind-icon">Notify<wbr>Message</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.operatemessage.html" class="tsd-kind-icon">Operate<wbr>Message</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.operateoptions.html" class="tsd-kind-icon">Operate<wbr>Options</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.protocol.html" class="tsd-kind-icon">Protocol</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.protocolargs.html" class="tsd-kind-icon">Protocol<wbr>Args</a>
-					</li>
-				</ul>
-				<ul class="current">
-					<li class="current tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.protocolevents.html" class="tsd-kind-icon">Protocol<wbr>Events</a>
-						<ul>
-							<li class=" tsd-kind-property tsd-parent-kind-interface">
-								<a href="_types_d_.protocolevents.html#onmessage" class="tsd-kind-icon">on<wbr>Message</a>
-							</li>
-						</ul>
-					</li>
-				</ul>
-				<ul class="after-current">
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.setmessage.html" class="tsd-kind-icon">Set<wbr>Message</a>
-					</li>
-					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
-						<a href="../modules/_types_d_.html#commandtype" class="tsd-kind-icon">Command<wbr>Type</a>
-					</li>
-					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
-						<a href="../modules/_types_d_.html#iclientoptions" class="tsd-kind-icon">IClient<wbr>Options</a>
-					</li>
-					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
-						<a href="../modules/_types_d_.html#jsobject" class="tsd-kind-icon">JSObject</a>
-					</li>
-					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
-						<a href="../modules/_types_d_.html#jstype" class="tsd-kind-icon">JSType</a>
-					</li>
-					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
-						<a href="../modules/_types_d_.html#messagetype" class="tsd-kind-icon">Message<wbr>Type</a>
-					</li>
-					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
-						<a href="../modules/_types_d_.html#operatecleanupfunction" class="tsd-kind-icon">Operate<wbr>Cleanup<wbr>Function</a>
-					</li>
-					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
-						<a href="../modules/_types_d_.html#operatefunction" class="tsd-kind-icon">Operate<wbr>Function</a>
-					</li>
-					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
-						<a href="../modules/_types_d_.html#promiseresult" class="tsd-kind-icon">Promise<wbr>Result</a>
-					</li>
-					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
-						<a href="../modules/_types_d_.html#rejectfn" class="tsd-kind-icon">Reject<wbr>Fn</a>
-					</li>
-					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
-						<a href="../modules/_types_d_.html#role" class="tsd-kind-icon">Role</a>
-					</li>
-					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
-						<a href="../modules/_types_d_.html#router" class="tsd-kind-icon">Router</a>
-					</li>
-					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
-						<a href="../modules/_types_d_.html#sendfn" class="tsd-kind-icon">Send<wbr>Fn</a>
-					</li>
-					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
-						<a href="../modules/_types_d_.html#uspmessage" class="tsd-kind-icon">USPMessage</a>
-					</li>
-				</ul>
-			</nav>
-		</div>
-	</div>
-</div>
-<footer class="with-border-bottom">
-	<div class="container">
-		<h2>Legend</h2>
-		<div class="tsd-legend-group">
-			<ul class="tsd-legend">
-				<li class="tsd-kind-variable"><span class="tsd-kind-icon">Variable</span></li>
-				<li class="tsd-kind-function"><span class="tsd-kind-icon">Function</span></li>
-				<li class="tsd-kind-type-alias"><span class="tsd-kind-icon">Type alias</span></li>
-			</ul>
-			<ul class="tsd-legend">
-				<li class="tsd-kind-interface"><span class="tsd-kind-icon">Interface</span></li>
-				<li class="tsd-kind-property tsd-parent-kind-interface"><span class="tsd-kind-icon">Property</span></li>
-			</ul>
-		</div>
-	</div>
-</footer>
-<div class="container tsd-generator">
-	<p>Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p>
-</div>
-<div class="overlay"></div>
-<script src="../assets/js/main.js"></script>
-</body>
-</html>
\ No newline at end of file
diff --git a/public/interfaces/_types_d_.setmessage.html b/public/interfaces/_types_d_.setmessage.html
deleted file mode 100644
index a119e9053943664cd038a3a7384f417805d1c03d..0000000000000000000000000000000000000000
--- a/public/interfaces/_types_d_.setmessage.html
+++ /dev/null
@@ -1,333 +0,0 @@
-<!doctype html>
-<html class="default no-js">
-<head>
-	<meta charset="utf-8">
-	<meta http-equiv="X-UA-Compatible" content="IE=edge">
-	<title>SetMessage | usp-js</title>
-	<meta name="description" content="Documentation for usp-js">
-	<meta name="viewport" content="width=device-width, initial-scale=1">
-	<link rel="stylesheet" href="../assets/css/main.css">
-</head>
-<body>
-<header>
-	<div class="tsd-page-toolbar">
-		<div class="container">
-			<div class="table-wrap">
-				<div class="table-cell" id="tsd-search" data-index="../assets/js/search.json" data-base="..">
-					<div class="field">
-						<label for="tsd-search-field" class="tsd-widget search no-caption">Search</label>
-						<input id="tsd-search-field" type="text" />
-					</div>
-					<ul class="results">
-						<li class="state loading">Preparing search index...</li>
-						<li class="state failure">The search index is not available</li>
-					</ul>
-					<a href="../index.html" class="title">usp-js</a>
-				</div>
-				<div class="table-cell" id="tsd-widgets">
-					<div id="tsd-filter">
-						<a href="#" class="tsd-widget options no-caption" data-toggle="options">Options</a>
-						<div class="tsd-filter-group">
-							<div class="tsd-select" id="tsd-filter-visibility">
-								<span class="tsd-select-label">All</span>
-								<ul class="tsd-select-list">
-									<li data-value="public">Public</li>
-									<li data-value="protected">Public/Protected</li>
-									<li data-value="private" class="selected">All</li>
-								</ul>
-							</div>
-							<input type="checkbox" id="tsd-filter-inherited" checked />
-							<label class="tsd-widget" for="tsd-filter-inherited">Inherited</label>
-							<input type="checkbox" id="tsd-filter-externals" checked />
-							<label class="tsd-widget" for="tsd-filter-externals">Externals</label>
-							<input type="checkbox" id="tsd-filter-only-exported" />
-							<label class="tsd-widget" for="tsd-filter-only-exported">Only exported</label>
-						</div>
-					</div>
-					<a href="#" class="tsd-widget menu no-caption" data-toggle="menu">Menu</a>
-				</div>
-			</div>
-		</div>
-	</div>
-	<div class="tsd-page-title">
-		<div class="container">
-			<ul class="tsd-breadcrumb">
-				<li>
-					<a href="../globals.html">Globals</a>
-				</li>
-				<li>
-					<a href="../modules/_types_d_.html">&quot;types.d&quot;</a>
-				</li>
-				<li>
-					<a href="_types_d_.setmessage.html">SetMessage</a>
-				</li>
-			</ul>
-			<h1>Interface SetMessage</h1>
-		</div>
-	</div>
-</header>
-<div class="container container-main">
-	<div class="row">
-		<div class="col-8 col-content">
-			<section class="tsd-panel tsd-comment">
-				<div class="tsd-comment tsd-typography">
-					<div class="lead">
-						<p>Set Message</p>
-					</div>
-				</div>
-			</section>
-			<section class="tsd-panel tsd-hierarchy">
-				<h3>Hierarchy</h3>
-				<ul class="tsd-hierarchy">
-					<li>
-						<a href="_types_d_.basemessage.html" class="tsd-signature-type">BaseMessage</a>
-						<ul class="tsd-hierarchy">
-							<li>
-								<span class="target">SetMessage</span>
-							</li>
-						</ul>
-					</li>
-				</ul>
-			</section>
-			<section class="tsd-panel-group tsd-index-group">
-				<h2>Index</h2>
-				<section class="tsd-panel tsd-index-panel">
-					<div class="tsd-index-content">
-						<section class="tsd-index-section ">
-							<h3>Properties</h3>
-							<ul class="tsd-index-list">
-								<li class="tsd-kind-property tsd-parent-kind-interface tsd-is-overwrite"><a href="_types_d_.setmessage.html#data" class="tsd-kind-icon">data</a></li>
-								<li class="tsd-kind-property tsd-parent-kind-interface tsd-is-inherited"><a href="_types_d_.setmessage.html#id" class="tsd-kind-icon">id</a></li>
-								<li class="tsd-kind-property tsd-parent-kind-interface tsd-is-inherited"><a href="_types_d_.setmessage.html#path" class="tsd-kind-icon">path</a></li>
-								<li class="tsd-kind-property tsd-parent-kind-interface tsd-is-overwrite"><a href="_types_d_.setmessage.html#type" class="tsd-kind-icon">type</a></li>
-							</ul>
-						</section>
-					</div>
-				</section>
-			</section>
-			<section class="tsd-panel-group tsd-member-group ">
-				<h2>Properties</h2>
-				<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-interface tsd-is-overwrite">
-					<a name="data" class="tsd-anchor"></a>
-					<h3>data</h3>
-					<div class="tsd-signature tsd-kind-icon">data<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-symbol">{ </span>updated<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">true</span><span class="tsd-signature-symbol"> }</span></div>
-					<aside class="tsd-sources">
-						<p>Overrides <a href="_types_d_.basemessage.html">BaseMessage</a>.<a href="_types_d_.basemessage.html#data">data</a></p>
-						<ul>
-							<li>Defined in src/types.d.ts:174</li>
-						</ul>
-					</aside>
-					<div class="tsd-type-declaration">
-						<h4>Type declaration</h4>
-						<ul class="tsd-parameters">
-							<li class="tsd-parameter">
-								<h5>updated<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">true</span></h5>
-							</li>
-						</ul>
-					</div>
-				</section>
-				<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-interface tsd-is-inherited">
-					<a name="id" class="tsd-anchor"></a>
-					<h3>id</h3>
-					<div class="tsd-signature tsd-kind-icon">id<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span></div>
-					<aside class="tsd-sources">
-						<p>Inherited from <a href="_types_d_.basemessage.html">BaseMessage</a>.<a href="_types_d_.basemessage.html#id">id</a></p>
-						<ul>
-							<li>Defined in src/types.d.ts:154</li>
-						</ul>
-					</aside>
-				</section>
-				<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-interface tsd-is-inherited">
-					<a name="path" class="tsd-anchor"></a>
-					<h3>path</h3>
-					<div class="tsd-signature tsd-kind-icon">path<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span></div>
-					<aside class="tsd-sources">
-						<p>Inherited from <a href="_types_d_.basemessage.html">BaseMessage</a>.<a href="_types_d_.basemessage.html#path">path</a></p>
-						<ul>
-							<li>Defined in src/types.d.ts:156</li>
-						</ul>
-					</aside>
-				</section>
-				<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-interface tsd-is-overwrite">
-					<a name="type" class="tsd-anchor"></a>
-					<h3>type</h3>
-					<div class="tsd-signature tsd-kind-icon">type<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">"set"</span></div>
-					<aside class="tsd-sources">
-						<p>Overrides <a href="_types_d_.basemessage.html">BaseMessage</a>.<a href="_types_d_.basemessage.html#type">type</a></p>
-						<ul>
-							<li>Defined in src/types.d.ts:173</li>
-						</ul>
-					</aside>
-				</section>
-			</section>
-		</div>
-		<div class="col-4 col-menu menu-sticky-wrap menu-highlight">
-			<nav class="tsd-navigation primary">
-				<ul>
-					<li class="globals  ">
-						<a href="../globals.html"><em>Globals</em></a>
-					</li>
-					<li class=" tsd-kind-module">
-						<a href="../modules/_index_.html">&quot;index&quot;</a>
-					</li>
-					<li class=" tsd-kind-module">
-						<a href="../modules/_lib_.html">&quot;lib&quot;</a>
-					</li>
-					<li class=" tsd-kind-module">
-						<a href="../modules/_protocol_index_.html">&quot;protocol/index&quot;</a>
-					</li>
-					<li class=" tsd-kind-module">
-						<a href="../modules/_protocol_js_usp_protobuf_protomessage_.html">&quot;protocol/js-<wbr>usp-<wbr>protobuf/proto<wbr>Message&quot;</a>
-					</li>
-					<li class=" tsd-kind-module">
-						<a href="../modules/_protocol_lib_.html">&quot;protocol/lib&quot;</a>
-					</li>
-					<li class="current tsd-kind-module">
-						<a href="../modules/_types_d_.html">&quot;types.d&quot;</a>
-					</li>
-				</ul>
-			</nav>
-			<nav class="tsd-navigation secondary menu-sticky">
-				<ul class="before-current">
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.addmessage.html" class="tsd-kind-icon">Add<wbr>Message</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.basemessage.html" class="tsd-kind-icon">Base<wbr>Message</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.connectevents.html" class="tsd-kind-icon">Connect<wbr>Events</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.connectoptions.html" class="tsd-kind-icon">Connect<wbr>Options</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.deletemessage.html" class="tsd-kind-icon">Delete<wbr>Message</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.device.html" class="tsd-kind-icon">Device</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.deviceerror.html" class="tsd-kind-icon">Device<wbr>Error</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.encodeargs.html" class="tsd-kind-icon">Encode<wbr>Args</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.errormessage.html" class="tsd-kind-icon">Error<wbr>Message</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.getmessage.html" class="tsd-kind-icon">Get<wbr>Message</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.initresult.html" class="tsd-kind-icon">Init<wbr>Result</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.mqttrequest.html" class="tsd-kind-icon">MQTTRequest</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.notifymessage.html" class="tsd-kind-icon">Notify<wbr>Message</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.operatemessage.html" class="tsd-kind-icon">Operate<wbr>Message</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.operateoptions.html" class="tsd-kind-icon">Operate<wbr>Options</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.protocol.html" class="tsd-kind-icon">Protocol</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.protocolargs.html" class="tsd-kind-icon">Protocol<wbr>Args</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.protocolevents.html" class="tsd-kind-icon">Protocol<wbr>Events</a>
-					</li>
-				</ul>
-				<ul class="current">
-					<li class="current tsd-kind-interface tsd-parent-kind-module">
-						<a href="_types_d_.setmessage.html" class="tsd-kind-icon">Set<wbr>Message</a>
-						<ul>
-							<li class=" tsd-kind-property tsd-parent-kind-interface tsd-is-overwrite">
-								<a href="_types_d_.setmessage.html#data" class="tsd-kind-icon">data</a>
-							</li>
-							<li class=" tsd-kind-property tsd-parent-kind-interface tsd-is-inherited">
-								<a href="_types_d_.setmessage.html#id" class="tsd-kind-icon">id</a>
-							</li>
-							<li class=" tsd-kind-property tsd-parent-kind-interface tsd-is-inherited">
-								<a href="_types_d_.setmessage.html#path" class="tsd-kind-icon">path</a>
-							</li>
-							<li class=" tsd-kind-property tsd-parent-kind-interface tsd-is-overwrite">
-								<a href="_types_d_.setmessage.html#type" class="tsd-kind-icon">type</a>
-							</li>
-						</ul>
-					</li>
-				</ul>
-				<ul class="after-current">
-					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
-						<a href="../modules/_types_d_.html#commandtype" class="tsd-kind-icon">Command<wbr>Type</a>
-					</li>
-					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
-						<a href="../modules/_types_d_.html#iclientoptions" class="tsd-kind-icon">IClient<wbr>Options</a>
-					</li>
-					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
-						<a href="../modules/_types_d_.html#jsobject" class="tsd-kind-icon">JSObject</a>
-					</li>
-					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
-						<a href="../modules/_types_d_.html#jstype" class="tsd-kind-icon">JSType</a>
-					</li>
-					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
-						<a href="../modules/_types_d_.html#messagetype" class="tsd-kind-icon">Message<wbr>Type</a>
-					</li>
-					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
-						<a href="../modules/_types_d_.html#operatecleanupfunction" class="tsd-kind-icon">Operate<wbr>Cleanup<wbr>Function</a>
-					</li>
-					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
-						<a href="../modules/_types_d_.html#operatefunction" class="tsd-kind-icon">Operate<wbr>Function</a>
-					</li>
-					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
-						<a href="../modules/_types_d_.html#promiseresult" class="tsd-kind-icon">Promise<wbr>Result</a>
-					</li>
-					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
-						<a href="../modules/_types_d_.html#rejectfn" class="tsd-kind-icon">Reject<wbr>Fn</a>
-					</li>
-					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
-						<a href="../modules/_types_d_.html#role" class="tsd-kind-icon">Role</a>
-					</li>
-					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
-						<a href="../modules/_types_d_.html#router" class="tsd-kind-icon">Router</a>
-					</li>
-					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
-						<a href="../modules/_types_d_.html#sendfn" class="tsd-kind-icon">Send<wbr>Fn</a>
-					</li>
-					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
-						<a href="../modules/_types_d_.html#uspmessage" class="tsd-kind-icon">USPMessage</a>
-					</li>
-				</ul>
-			</nav>
-		</div>
-	</div>
-</div>
-<footer class="with-border-bottom">
-	<div class="container">
-		<h2>Legend</h2>
-		<div class="tsd-legend-group">
-			<ul class="tsd-legend">
-				<li class="tsd-kind-variable"><span class="tsd-kind-icon">Variable</span></li>
-				<li class="tsd-kind-function"><span class="tsd-kind-icon">Function</span></li>
-				<li class="tsd-kind-type-alias"><span class="tsd-kind-icon">Type alias</span></li>
-			</ul>
-			<ul class="tsd-legend">
-				<li class="tsd-kind-interface"><span class="tsd-kind-icon">Interface</span></li>
-				<li class="tsd-kind-property tsd-parent-kind-interface"><span class="tsd-kind-icon">Property</span></li>
-			</ul>
-		</div>
-	</div>
-</footer>
-<div class="container tsd-generator">
-	<p>Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p>
-</div>
-<div class="overlay"></div>
-<script src="../assets/js/main.js"></script>
-</body>
-</html>
\ No newline at end of file
diff --git a/public/modules/_commands_add_.html b/public/modules/_commands_add_.html
new file mode 100644
index 0000000000000000000000000000000000000000..17ce81283604ff308bbfb404636feb48401bb9f0
--- /dev/null
+++ b/public/modules/_commands_add_.html
@@ -0,0 +1,301 @@
+<!doctype html>
+<html class="default no-js">
+<head>
+	<meta charset="utf-8">
+	<meta http-equiv="X-UA-Compatible" content="IE=edge">
+	<title>&quot;commands/add&quot; | usp-js</title>
+	<meta name="description" content="Documentation for usp-js">
+	<meta name="viewport" content="width=device-width, initial-scale=1">
+	<link rel="stylesheet" href="../assets/css/main.css">
+</head>
+<body>
+<header>
+	<div class="tsd-page-toolbar">
+		<div class="container">
+			<div class="table-wrap">
+				<div class="table-cell" id="tsd-search" data-index="../assets/js/search.json" data-base="..">
+					<div class="field">
+						<label for="tsd-search-field" class="tsd-widget search no-caption">Search</label>
+						<input id="tsd-search-field" type="text" />
+					</div>
+					<ul class="results">
+						<li class="state loading">Preparing search index...</li>
+						<li class="state failure">The search index is not available</li>
+					</ul>
+					<a href="../index.html" class="title">usp-js</a>
+				</div>
+				<div class="table-cell" id="tsd-widgets">
+					<div id="tsd-filter">
+						<a href="#" class="tsd-widget options no-caption" data-toggle="options">Options</a>
+						<div class="tsd-filter-group">
+							<div class="tsd-select" id="tsd-filter-visibility">
+								<span class="tsd-select-label">All</span>
+								<ul class="tsd-select-list">
+									<li data-value="public">Public</li>
+									<li data-value="protected">Public/Protected</li>
+									<li data-value="private" class="selected">All</li>
+								</ul>
+							</div>
+							<input type="checkbox" id="tsd-filter-inherited" checked />
+							<label class="tsd-widget" for="tsd-filter-inherited">Inherited</label>
+							<input type="checkbox" id="tsd-filter-externals" checked />
+							<label class="tsd-widget" for="tsd-filter-externals">Externals</label>
+							<input type="checkbox" id="tsd-filter-only-exported" />
+							<label class="tsd-widget" for="tsd-filter-only-exported">Only exported</label>
+						</div>
+					</div>
+					<a href="#" class="tsd-widget menu no-caption" data-toggle="menu">Menu</a>
+				</div>
+			</div>
+		</div>
+	</div>
+	<div class="tsd-page-title">
+		<div class="container">
+			<ul class="tsd-breadcrumb">
+				<li>
+					<a href="../globals.html">Globals</a>
+				</li>
+				<li>
+					<a href="_commands_add_.html">&quot;commands/add&quot;</a>
+				</li>
+			</ul>
+			<h1>Module &quot;commands/add&quot;</h1>
+		</div>
+	</div>
+</header>
+<div class="container container-main">
+	<div class="row">
+		<div class="col-8 col-content">
+			<section class="tsd-panel-group tsd-index-group">
+				<h2>Index</h2>
+				<section class="tsd-panel tsd-index-panel">
+					<div class="tsd-index-content">
+						<section class="tsd-index-section tsd-is-not-exported">
+							<h3>Functions</h3>
+							<ul class="tsd-index-list">
+								<li class="tsd-kind-function tsd-parent-kind-module tsd-is-not-exported"><a href="_commands_add_.html#decode" class="tsd-kind-icon">decode</a></li>
+								<li class="tsd-kind-function tsd-parent-kind-module tsd-is-not-exported"><a href="_commands_add_.html#encode" class="tsd-kind-icon">encode</a></li>
+								<li class="tsd-kind-function tsd-parent-kind-module tsd-is-not-exported"><a href="_commands_add_.html#make" class="tsd-kind-icon">make</a></li>
+							</ul>
+						</section>
+					</div>
+				</section>
+			</section>
+			<section class="tsd-panel-group tsd-member-group tsd-is-not-exported">
+				<h2>Functions</h2>
+				<section class="tsd-panel tsd-member tsd-kind-function tsd-parent-kind-module tsd-is-not-exported">
+					<a name="decode" class="tsd-anchor"></a>
+					<h3><span class="tsd-flag ts-flagConst">Const</span> decode</h3>
+					<ul class="tsd-signatures tsd-kind-function tsd-parent-kind-module tsd-is-not-exported">
+						<li class="tsd-signature tsd-kind-icon">decode<span class="tsd-signature-symbol">(</span>msg<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Record</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">&gt;</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-symbol">[</span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">null</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">]</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-symbol">[</span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">undefined</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">null</span><span class="tsd-signature-symbol">]</span></li>
+					</ul>
+					<ul class="tsd-descriptions">
+						<li class="tsd-description">
+							<aside class="tsd-sources">
+								<ul>
+									<li>Defined in commands/add.ts:4</li>
+								</ul>
+							</aside>
+							<h4 class="tsd-parameters-title">Parameters</h4>
+							<ul class="tsd-parameters">
+								<li>
+									<h5>msg: <span class="tsd-signature-type">Record</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">&gt;</span></h5>
+								</li>
+							</ul>
+							<h4 class="tsd-returns-title">Returns <span class="tsd-signature-symbol">[</span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">null</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">]</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-symbol">[</span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">undefined</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">null</span><span class="tsd-signature-symbol">]</span></h4>
+						</li>
+					</ul>
+				</section>
+				<section class="tsd-panel tsd-member tsd-kind-function tsd-parent-kind-module tsd-is-not-exported">
+					<a name="encode" class="tsd-anchor"></a>
+					<h3><span class="tsd-flag ts-flagConst">Const</span> encode</h3>
+					<ul class="tsd-signatures tsd-kind-function tsd-parent-kind-module tsd-is-not-exported">
+						<li class="tsd-signature tsd-kind-icon">encode<span class="tsd-signature-symbol">(</span>__namedParameters<span class="tsd-signature-symbol">: </span><span class="tsd-signature-symbol">{ </span>path<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">; </span>value<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol"> }</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-symbol">{ </span>lookup<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">"Msg"</span><span class="tsd-signature-symbol">; </span>body<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">object</span><span class="tsd-signature-symbol">; </span>header<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">object</span><span class="tsd-signature-symbol"> }</span></li>
+					</ul>
+					<ul class="tsd-descriptions">
+						<li class="tsd-description">
+							<aside class="tsd-sources">
+								<ul>
+									<li>Defined in commands/add.ts:13</li>
+								</ul>
+							</aside>
+							<h4 class="tsd-parameters-title">Parameters</h4>
+							<ul class="tsd-parameters">
+								<li>
+									<h5>__namedParameters: <span class="tsd-signature-symbol">{ </span>path<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">; </span>value<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol"> }</span></h5>
+									<ul class="tsd-parameters">
+										<li class="tsd-parameter">
+											<h5>path<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">any</span></h5>
+										</li>
+										<li class="tsd-parameter">
+											<h5>value<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">any</span></h5>
+										</li>
+									</ul>
+								</li>
+							</ul>
+							<h4 class="tsd-returns-title">Returns <span class="tsd-signature-symbol">{ </span>lookup<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">"Msg"</span><span class="tsd-signature-symbol">; </span>body<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">object</span><span class="tsd-signature-symbol">; </span>header<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">object</span><span class="tsd-signature-symbol"> }</span></h4>
+							<ul class="tsd-parameters">
+								<li class="tsd-parameter">
+									<h5>lookup<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">"Msg"</span></h5>
+								</li>
+								<li class="tsd-parameter">
+									<h5>body<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">object</span></h5>
+									<ul class="tsd-parameters">
+										<li class="tsd-parameter">
+											<h5>lookup<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">"Body"</span></h5>
+										</li>
+										<li class="tsd-parameter">
+											<h5>request<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">object</span></h5>
+											<ul class="tsd-parameters">
+												<li class="tsd-parameter">
+													<h5>lookup<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">"Request"</span></h5>
+												</li>
+												<li class="tsd-parameter">
+													<h5>add<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">object</span></h5>
+													<ul class="tsd-parameters">
+														<li class="tsd-parameter">
+															<h5>allow<wbr>Partial<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">false</span></h5>
+														</li>
+														<li class="tsd-parameter">
+															<h5>create<wbr>Objs<span class="tsd-signature-symbol">: </span><span class="tsd-signature-symbol">{ </span>lookup<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">"Add.CreateObject"</span><span class="tsd-signature-symbol">; </span>objPath<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">; </span>paramSettings<span class="tsd-signature-symbol">: </span><span class="tsd-signature-symbol">{ </span>lookup<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">"Add.CreateParamSetting"</span><span class="tsd-signature-symbol">; </span>param<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">; </span>required<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">false</span><span class="tsd-signature-symbol">; </span>value<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol"> }</span><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol"> }</span><span class="tsd-signature-symbol">[]</span></h5>
+														</li>
+													</ul>
+												</li>
+											</ul>
+										</li>
+									</ul>
+								</li>
+								<li class="tsd-parameter">
+									<h5>header<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">object</span></h5>
+									<ul class="tsd-parameters">
+										<li class="tsd-parameter">
+											<h5>lookup<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">"Header"</span></h5>
+										</li>
+										<li class="tsd-parameter">
+											<h5>msg<wbr>Id<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span></h5>
+										</li>
+										<li class="tsd-parameter">
+											<h5>msg<wbr>Type<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">"ADD"</span></h5>
+										</li>
+									</ul>
+								</li>
+							</ul>
+						</li>
+					</ul>
+				</section>
+				<section class="tsd-panel tsd-member tsd-kind-function tsd-parent-kind-module tsd-is-not-exported">
+					<a name="make" class="tsd-anchor"></a>
+					<h3><span class="tsd-flag ts-flagConst">Const</span> make</h3>
+					<ul class="tsd-signatures tsd-kind-function tsd-parent-kind-module tsd-is-not-exported">
+						<li class="tsd-signature tsd-kind-icon">make<span class="tsd-signature-symbol">(</span>call<span class="tsd-signature-symbol">: </span><a href="_types_.html#callfn" class="tsd-signature-type">CallFn</a><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="_types_.html#addcommand" class="tsd-signature-type">AddCommand</a></li>
+					</ul>
+					<ul class="tsd-descriptions">
+						<li class="tsd-description">
+							<aside class="tsd-sources">
+								<ul>
+									<li>Defined in commands/add.ts:44</li>
+								</ul>
+							</aside>
+							<h4 class="tsd-parameters-title">Parameters</h4>
+							<ul class="tsd-parameters">
+								<li>
+									<h5>call: <a href="_types_.html#callfn" class="tsd-signature-type">CallFn</a></h5>
+								</li>
+							</ul>
+							<h4 class="tsd-returns-title">Returns <a href="_types_.html#addcommand" class="tsd-signature-type">AddCommand</a></h4>
+						</li>
+					</ul>
+				</section>
+			</section>
+		</div>
+		<div class="col-4 col-menu menu-sticky-wrap menu-highlight">
+			<nav class="tsd-navigation primary">
+				<ul>
+					<li class="globals  ">
+						<a href="../globals.html"><em>Globals</em></a>
+					</li>
+					<li class="label tsd-is-external">
+						<span>Internals</span>
+					</li>
+					<li class="current tsd-kind-module">
+						<a href="_commands_add_.html">&quot;commands/add&quot;</a>
+					</li>
+					<li class=" tsd-kind-module">
+						<a href="_commands_del_.html">&quot;commands/del&quot;</a>
+					</li>
+					<li class=" tsd-kind-module">
+						<a href="_commands_get_.html">&quot;commands/get&quot;</a>
+					</li>
+					<li class=" tsd-kind-module">
+						<a href="_commands_index_.html">&quot;commands/index&quot;</a>
+					</li>
+					<li class=" tsd-kind-module">
+						<a href="_commands_operate_.html">&quot;commands/operate&quot;</a>
+					</li>
+					<li class=" tsd-kind-module">
+						<a href="_commands_recipes_resolve_.html">&quot;commands/recipes/resolve&quot;</a>
+					</li>
+					<li class=" tsd-kind-module">
+						<a href="_commands_set_.html">&quot;commands/set&quot;</a>
+					</li>
+					<li class=" tsd-kind-module">
+						<a href="_commands_util_.html">&quot;commands/util&quot;</a>
+					</li>
+					<li class=" tsd-kind-module">
+						<a href="_index_.html">&quot;index&quot;</a>
+					</li>
+					<li class=" tsd-kind-module">
+						<a href="_types_.html">&quot;types&quot;</a>
+					</li>
+					<li class=" tsd-kind-module">
+						<a href="_util_.html">&quot;util&quot;</a>
+					</li>
+					<li class="label tsd-is-external">
+						<span>Externals</span>
+					</li>
+					<li class=" tsd-kind-module tsd-is-external">
+						<a href="_specs_usp_msg_1_1_.html">&quot;specs/usp-<wbr>msg-<wbr>1-1&quot;</a>
+					</li>
+					<li class=" tsd-kind-module tsd-is-external">
+						<a href="_specs_usp_record_1_1_.html">&quot;specs/usp-<wbr>record-<wbr>1-1&quot;</a>
+					</li>
+				</ul>
+			</nav>
+			<nav class="tsd-navigation secondary menu-sticky">
+				<ul class="before-current">
+					<li class=" tsd-kind-function tsd-parent-kind-module tsd-is-not-exported">
+						<a href="_commands_add_.html#decode" class="tsd-kind-icon">decode</a>
+					</li>
+					<li class=" tsd-kind-function tsd-parent-kind-module tsd-is-not-exported">
+						<a href="_commands_add_.html#encode" class="tsd-kind-icon">encode</a>
+					</li>
+					<li class=" tsd-kind-function tsd-parent-kind-module tsd-is-not-exported">
+						<a href="_commands_add_.html#make" class="tsd-kind-icon">make</a>
+					</li>
+				</ul>
+			</nav>
+		</div>
+	</div>
+</div>
+<footer class="with-border-bottom">
+	<div class="container">
+		<h2>Legend</h2>
+		<div class="tsd-legend-group">
+			<ul class="tsd-legend">
+				<li class="tsd-kind-variable"><span class="tsd-kind-icon">Variable</span></li>
+				<li class="tsd-kind-function"><span class="tsd-kind-icon">Function</span></li>
+				<li class="tsd-kind-type-alias"><span class="tsd-kind-icon">Type alias</span></li>
+			</ul>
+			<ul class="tsd-legend">
+				<li class="tsd-kind-interface"><span class="tsd-kind-icon">Interface</span></li>
+			</ul>
+		</div>
+	</div>
+</footer>
+<div class="container tsd-generator">
+	<p>Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p>
+</div>
+<div class="overlay"></div>
+<script src="../assets/js/main.js"></script>
+</body>
+</html>
\ No newline at end of file
diff --git a/public/modules/_commands_del_.html b/public/modules/_commands_del_.html
new file mode 100644
index 0000000000000000000000000000000000000000..af396c110a7610236205bd95f44a8be05c7caf47
--- /dev/null
+++ b/public/modules/_commands_del_.html
@@ -0,0 +1,298 @@
+<!doctype html>
+<html class="default no-js">
+<head>
+	<meta charset="utf-8">
+	<meta http-equiv="X-UA-Compatible" content="IE=edge">
+	<title>&quot;commands/del&quot; | usp-js</title>
+	<meta name="description" content="Documentation for usp-js">
+	<meta name="viewport" content="width=device-width, initial-scale=1">
+	<link rel="stylesheet" href="../assets/css/main.css">
+</head>
+<body>
+<header>
+	<div class="tsd-page-toolbar">
+		<div class="container">
+			<div class="table-wrap">
+				<div class="table-cell" id="tsd-search" data-index="../assets/js/search.json" data-base="..">
+					<div class="field">
+						<label for="tsd-search-field" class="tsd-widget search no-caption">Search</label>
+						<input id="tsd-search-field" type="text" />
+					</div>
+					<ul class="results">
+						<li class="state loading">Preparing search index...</li>
+						<li class="state failure">The search index is not available</li>
+					</ul>
+					<a href="../index.html" class="title">usp-js</a>
+				</div>
+				<div class="table-cell" id="tsd-widgets">
+					<div id="tsd-filter">
+						<a href="#" class="tsd-widget options no-caption" data-toggle="options">Options</a>
+						<div class="tsd-filter-group">
+							<div class="tsd-select" id="tsd-filter-visibility">
+								<span class="tsd-select-label">All</span>
+								<ul class="tsd-select-list">
+									<li data-value="public">Public</li>
+									<li data-value="protected">Public/Protected</li>
+									<li data-value="private" class="selected">All</li>
+								</ul>
+							</div>
+							<input type="checkbox" id="tsd-filter-inherited" checked />
+							<label class="tsd-widget" for="tsd-filter-inherited">Inherited</label>
+							<input type="checkbox" id="tsd-filter-externals" checked />
+							<label class="tsd-widget" for="tsd-filter-externals">Externals</label>
+							<input type="checkbox" id="tsd-filter-only-exported" />
+							<label class="tsd-widget" for="tsd-filter-only-exported">Only exported</label>
+						</div>
+					</div>
+					<a href="#" class="tsd-widget menu no-caption" data-toggle="menu">Menu</a>
+				</div>
+			</div>
+		</div>
+	</div>
+	<div class="tsd-page-title">
+		<div class="container">
+			<ul class="tsd-breadcrumb">
+				<li>
+					<a href="../globals.html">Globals</a>
+				</li>
+				<li>
+					<a href="_commands_del_.html">&quot;commands/del&quot;</a>
+				</li>
+			</ul>
+			<h1>Module &quot;commands/del&quot;</h1>
+		</div>
+	</div>
+</header>
+<div class="container container-main">
+	<div class="row">
+		<div class="col-8 col-content">
+			<section class="tsd-panel-group tsd-index-group">
+				<h2>Index</h2>
+				<section class="tsd-panel tsd-index-panel">
+					<div class="tsd-index-content">
+						<section class="tsd-index-section tsd-is-not-exported">
+							<h3>Functions</h3>
+							<ul class="tsd-index-list">
+								<li class="tsd-kind-function tsd-parent-kind-module tsd-is-not-exported"><a href="_commands_del_.html#decode" class="tsd-kind-icon">decode</a></li>
+								<li class="tsd-kind-function tsd-parent-kind-module tsd-is-not-exported"><a href="_commands_del_.html#encode" class="tsd-kind-icon">encode</a></li>
+								<li class="tsd-kind-function tsd-parent-kind-module tsd-is-not-exported"><a href="_commands_del_.html#make" class="tsd-kind-icon">make</a></li>
+							</ul>
+						</section>
+					</div>
+				</section>
+			</section>
+			<section class="tsd-panel-group tsd-member-group tsd-is-not-exported">
+				<h2>Functions</h2>
+				<section class="tsd-panel tsd-member tsd-kind-function tsd-parent-kind-module tsd-is-not-exported">
+					<a name="decode" class="tsd-anchor"></a>
+					<h3><span class="tsd-flag ts-flagConst">Const</span> decode</h3>
+					<ul class="tsd-signatures tsd-kind-function tsd-parent-kind-module tsd-is-not-exported">
+						<li class="tsd-signature tsd-kind-icon">decode<span class="tsd-signature-symbol">(</span>msg<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Record</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">&gt;</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-symbol">[</span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">null</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">]</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-symbol">[</span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">null</span><span class="tsd-signature-symbol">]</span></li>
+					</ul>
+					<ul class="tsd-descriptions">
+						<li class="tsd-description">
+							<aside class="tsd-sources">
+								<ul>
+									<li>Defined in commands/del.ts:5</li>
+								</ul>
+							</aside>
+							<h4 class="tsd-parameters-title">Parameters</h4>
+							<ul class="tsd-parameters">
+								<li>
+									<h5>msg: <span class="tsd-signature-type">Record</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">&gt;</span></h5>
+								</li>
+							</ul>
+							<h4 class="tsd-returns-title">Returns <span class="tsd-signature-symbol">[</span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">null</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">]</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-symbol">[</span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">null</span><span class="tsd-signature-symbol">]</span></h4>
+						</li>
+					</ul>
+				</section>
+				<section class="tsd-panel tsd-member tsd-kind-function tsd-parent-kind-module tsd-is-not-exported">
+					<a name="encode" class="tsd-anchor"></a>
+					<h3><span class="tsd-flag ts-flagConst">Const</span> encode</h3>
+					<ul class="tsd-signatures tsd-kind-function tsd-parent-kind-module tsd-is-not-exported">
+						<li class="tsd-signature tsd-kind-icon">encode<span class="tsd-signature-symbol">(</span>__namedParameters<span class="tsd-signature-symbol">: </span><span class="tsd-signature-symbol">{ </span>paths<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol"> }</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-symbol">{ </span>lookup<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">"Msg"</span><span class="tsd-signature-symbol">; </span>body<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">object</span><span class="tsd-signature-symbol">; </span>header<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">object</span><span class="tsd-signature-symbol"> }</span></li>
+					</ul>
+					<ul class="tsd-descriptions">
+						<li class="tsd-description">
+							<aside class="tsd-sources">
+								<ul>
+									<li>Defined in commands/del.ts:18</li>
+								</ul>
+							</aside>
+							<h4 class="tsd-parameters-title">Parameters</h4>
+							<ul class="tsd-parameters">
+								<li>
+									<h5>__namedParameters: <span class="tsd-signature-symbol">{ </span>paths<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol"> }</span></h5>
+									<ul class="tsd-parameters">
+										<li class="tsd-parameter">
+											<h5>paths<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">any</span></h5>
+										</li>
+									</ul>
+								</li>
+							</ul>
+							<h4 class="tsd-returns-title">Returns <span class="tsd-signature-symbol">{ </span>lookup<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">"Msg"</span><span class="tsd-signature-symbol">; </span>body<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">object</span><span class="tsd-signature-symbol">; </span>header<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">object</span><span class="tsd-signature-symbol"> }</span></h4>
+							<ul class="tsd-parameters">
+								<li class="tsd-parameter">
+									<h5>lookup<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">"Msg"</span></h5>
+								</li>
+								<li class="tsd-parameter">
+									<h5>body<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">object</span></h5>
+									<ul class="tsd-parameters">
+										<li class="tsd-parameter">
+											<h5>lookup<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">"Body"</span></h5>
+										</li>
+										<li class="tsd-parameter">
+											<h5>request<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">object</span></h5>
+											<ul class="tsd-parameters">
+												<li class="tsd-parameter">
+													<h5>lookup<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">"Request"</span></h5>
+												</li>
+												<li class="tsd-parameter">
+													<h5>delete<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">object</span></h5>
+													<ul class="tsd-parameters">
+														<li class="tsd-parameter">
+															<h5>allow<wbr>Partial<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">false</span></h5>
+														</li>
+														<li class="tsd-parameter">
+															<h5>obj<wbr>Paths<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">[]</span></h5>
+														</li>
+													</ul>
+												</li>
+											</ul>
+										</li>
+									</ul>
+								</li>
+								<li class="tsd-parameter">
+									<h5>header<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">object</span></h5>
+									<ul class="tsd-parameters">
+										<li class="tsd-parameter">
+											<h5>lookup<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">"Header"</span></h5>
+										</li>
+										<li class="tsd-parameter">
+											<h5>msg<wbr>Id<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span></h5>
+										</li>
+										<li class="tsd-parameter">
+											<h5>msg<wbr>Type<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">"DELETE"</span></h5>
+										</li>
+									</ul>
+								</li>
+							</ul>
+						</li>
+					</ul>
+				</section>
+				<section class="tsd-panel tsd-member tsd-kind-function tsd-parent-kind-module tsd-is-not-exported">
+					<a name="make" class="tsd-anchor"></a>
+					<h3><span class="tsd-flag ts-flagConst">Const</span> make</h3>
+					<ul class="tsd-signatures tsd-kind-function tsd-parent-kind-module tsd-is-not-exported">
+						<li class="tsd-signature tsd-kind-icon">make<span class="tsd-signature-symbol">(</span>call<span class="tsd-signature-symbol">: </span><a href="_types_.html#callfn" class="tsd-signature-type">CallFn</a><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="_types_.html#delcommand" class="tsd-signature-type">DelCommand</a></li>
+					</ul>
+					<ul class="tsd-descriptions">
+						<li class="tsd-description">
+							<aside class="tsd-sources">
+								<ul>
+									<li>Defined in commands/del.ts:37</li>
+								</ul>
+							</aside>
+							<h4 class="tsd-parameters-title">Parameters</h4>
+							<ul class="tsd-parameters">
+								<li>
+									<h5>call: <a href="_types_.html#callfn" class="tsd-signature-type">CallFn</a></h5>
+								</li>
+							</ul>
+							<h4 class="tsd-returns-title">Returns <a href="_types_.html#delcommand" class="tsd-signature-type">DelCommand</a></h4>
+						</li>
+					</ul>
+				</section>
+			</section>
+		</div>
+		<div class="col-4 col-menu menu-sticky-wrap menu-highlight">
+			<nav class="tsd-navigation primary">
+				<ul>
+					<li class="globals  ">
+						<a href="../globals.html"><em>Globals</em></a>
+					</li>
+					<li class="label tsd-is-external">
+						<span>Internals</span>
+					</li>
+					<li class=" tsd-kind-module">
+						<a href="_commands_add_.html">&quot;commands/add&quot;</a>
+					</li>
+					<li class="current tsd-kind-module">
+						<a href="_commands_del_.html">&quot;commands/del&quot;</a>
+					</li>
+					<li class=" tsd-kind-module">
+						<a href="_commands_get_.html">&quot;commands/get&quot;</a>
+					</li>
+					<li class=" tsd-kind-module">
+						<a href="_commands_index_.html">&quot;commands/index&quot;</a>
+					</li>
+					<li class=" tsd-kind-module">
+						<a href="_commands_operate_.html">&quot;commands/operate&quot;</a>
+					</li>
+					<li class=" tsd-kind-module">
+						<a href="_commands_recipes_resolve_.html">&quot;commands/recipes/resolve&quot;</a>
+					</li>
+					<li class=" tsd-kind-module">
+						<a href="_commands_set_.html">&quot;commands/set&quot;</a>
+					</li>
+					<li class=" tsd-kind-module">
+						<a href="_commands_util_.html">&quot;commands/util&quot;</a>
+					</li>
+					<li class=" tsd-kind-module">
+						<a href="_index_.html">&quot;index&quot;</a>
+					</li>
+					<li class=" tsd-kind-module">
+						<a href="_types_.html">&quot;types&quot;</a>
+					</li>
+					<li class=" tsd-kind-module">
+						<a href="_util_.html">&quot;util&quot;</a>
+					</li>
+					<li class="label tsd-is-external">
+						<span>Externals</span>
+					</li>
+					<li class=" tsd-kind-module tsd-is-external">
+						<a href="_specs_usp_msg_1_1_.html">&quot;specs/usp-<wbr>msg-<wbr>1-1&quot;</a>
+					</li>
+					<li class=" tsd-kind-module tsd-is-external">
+						<a href="_specs_usp_record_1_1_.html">&quot;specs/usp-<wbr>record-<wbr>1-1&quot;</a>
+					</li>
+				</ul>
+			</nav>
+			<nav class="tsd-navigation secondary menu-sticky">
+				<ul class="before-current">
+					<li class=" tsd-kind-function tsd-parent-kind-module tsd-is-not-exported">
+						<a href="_commands_del_.html#decode" class="tsd-kind-icon">decode</a>
+					</li>
+					<li class=" tsd-kind-function tsd-parent-kind-module tsd-is-not-exported">
+						<a href="_commands_del_.html#encode" class="tsd-kind-icon">encode</a>
+					</li>
+					<li class=" tsd-kind-function tsd-parent-kind-module tsd-is-not-exported">
+						<a href="_commands_del_.html#make" class="tsd-kind-icon">make</a>
+					</li>
+				</ul>
+			</nav>
+		</div>
+	</div>
+</div>
+<footer class="with-border-bottom">
+	<div class="container">
+		<h2>Legend</h2>
+		<div class="tsd-legend-group">
+			<ul class="tsd-legend">
+				<li class="tsd-kind-variable"><span class="tsd-kind-icon">Variable</span></li>
+				<li class="tsd-kind-function"><span class="tsd-kind-icon">Function</span></li>
+				<li class="tsd-kind-type-alias"><span class="tsd-kind-icon">Type alias</span></li>
+			</ul>
+			<ul class="tsd-legend">
+				<li class="tsd-kind-interface"><span class="tsd-kind-icon">Interface</span></li>
+			</ul>
+		</div>
+	</div>
+</footer>
+<div class="container tsd-generator">
+	<p>Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p>
+</div>
+<div class="overlay"></div>
+<script src="../assets/js/main.js"></script>
+</body>
+</html>
\ No newline at end of file
diff --git a/public/modules/_commands_get_.html b/public/modules/_commands_get_.html
new file mode 100644
index 0000000000000000000000000000000000000000..4acb190f50ccd9ae1c6ff8f2325daf71cf85eba0
--- /dev/null
+++ b/public/modules/_commands_get_.html
@@ -0,0 +1,295 @@
+<!doctype html>
+<html class="default no-js">
+<head>
+	<meta charset="utf-8">
+	<meta http-equiv="X-UA-Compatible" content="IE=edge">
+	<title>&quot;commands/get&quot; | usp-js</title>
+	<meta name="description" content="Documentation for usp-js">
+	<meta name="viewport" content="width=device-width, initial-scale=1">
+	<link rel="stylesheet" href="../assets/css/main.css">
+</head>
+<body>
+<header>
+	<div class="tsd-page-toolbar">
+		<div class="container">
+			<div class="table-wrap">
+				<div class="table-cell" id="tsd-search" data-index="../assets/js/search.json" data-base="..">
+					<div class="field">
+						<label for="tsd-search-field" class="tsd-widget search no-caption">Search</label>
+						<input id="tsd-search-field" type="text" />
+					</div>
+					<ul class="results">
+						<li class="state loading">Preparing search index...</li>
+						<li class="state failure">The search index is not available</li>
+					</ul>
+					<a href="../index.html" class="title">usp-js</a>
+				</div>
+				<div class="table-cell" id="tsd-widgets">
+					<div id="tsd-filter">
+						<a href="#" class="tsd-widget options no-caption" data-toggle="options">Options</a>
+						<div class="tsd-filter-group">
+							<div class="tsd-select" id="tsd-filter-visibility">
+								<span class="tsd-select-label">All</span>
+								<ul class="tsd-select-list">
+									<li data-value="public">Public</li>
+									<li data-value="protected">Public/Protected</li>
+									<li data-value="private" class="selected">All</li>
+								</ul>
+							</div>
+							<input type="checkbox" id="tsd-filter-inherited" checked />
+							<label class="tsd-widget" for="tsd-filter-inherited">Inherited</label>
+							<input type="checkbox" id="tsd-filter-externals" checked />
+							<label class="tsd-widget" for="tsd-filter-externals">Externals</label>
+							<input type="checkbox" id="tsd-filter-only-exported" />
+							<label class="tsd-widget" for="tsd-filter-only-exported">Only exported</label>
+						</div>
+					</div>
+					<a href="#" class="tsd-widget menu no-caption" data-toggle="menu">Menu</a>
+				</div>
+			</div>
+		</div>
+	</div>
+	<div class="tsd-page-title">
+		<div class="container">
+			<ul class="tsd-breadcrumb">
+				<li>
+					<a href="../globals.html">Globals</a>
+				</li>
+				<li>
+					<a href="_commands_get_.html">&quot;commands/get&quot;</a>
+				</li>
+			</ul>
+			<h1>Module &quot;commands/get&quot;</h1>
+		</div>
+	</div>
+</header>
+<div class="container container-main">
+	<div class="row">
+		<div class="col-8 col-content">
+			<section class="tsd-panel-group tsd-index-group">
+				<h2>Index</h2>
+				<section class="tsd-panel tsd-index-panel">
+					<div class="tsd-index-content">
+						<section class="tsd-index-section tsd-is-not-exported">
+							<h3>Functions</h3>
+							<ul class="tsd-index-list">
+								<li class="tsd-kind-function tsd-parent-kind-module tsd-is-not-exported"><a href="_commands_get_.html#decode" class="tsd-kind-icon">decode</a></li>
+								<li class="tsd-kind-function tsd-parent-kind-module tsd-is-not-exported"><a href="_commands_get_.html#encode" class="tsd-kind-icon">encode</a></li>
+								<li class="tsd-kind-function tsd-parent-kind-module tsd-is-not-exported"><a href="_commands_get_.html#make" class="tsd-kind-icon">make</a></li>
+							</ul>
+						</section>
+					</div>
+				</section>
+			</section>
+			<section class="tsd-panel-group tsd-member-group tsd-is-not-exported">
+				<h2>Functions</h2>
+				<section class="tsd-panel tsd-member tsd-kind-function tsd-parent-kind-module tsd-is-not-exported">
+					<a name="decode" class="tsd-anchor"></a>
+					<h3><span class="tsd-flag ts-flagConst">Const</span> decode</h3>
+					<ul class="tsd-signatures tsd-kind-function tsd-parent-kind-module tsd-is-not-exported">
+						<li class="tsd-signature tsd-kind-icon">decode<span class="tsd-signature-symbol">(</span>msg<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Record</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">&gt;</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-symbol">[</span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">null</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">]</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-symbol">[</span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">null</span><span class="tsd-signature-symbol">]</span></li>
+					</ul>
+					<ul class="tsd-descriptions">
+						<li class="tsd-description">
+							<aside class="tsd-sources">
+								<ul>
+									<li>Defined in commands/get.ts:4</li>
+								</ul>
+							</aside>
+							<h4 class="tsd-parameters-title">Parameters</h4>
+							<ul class="tsd-parameters">
+								<li>
+									<h5>msg: <span class="tsd-signature-type">Record</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">&gt;</span></h5>
+								</li>
+							</ul>
+							<h4 class="tsd-returns-title">Returns <span class="tsd-signature-symbol">[</span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">null</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">]</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-symbol">[</span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">null</span><span class="tsd-signature-symbol">]</span></h4>
+						</li>
+					</ul>
+				</section>
+				<section class="tsd-panel tsd-member tsd-kind-function tsd-parent-kind-module tsd-is-not-exported">
+					<a name="encode" class="tsd-anchor"></a>
+					<h3><span class="tsd-flag ts-flagConst">Const</span> encode</h3>
+					<ul class="tsd-signatures tsd-kind-function tsd-parent-kind-module tsd-is-not-exported">
+						<li class="tsd-signature tsd-kind-icon">encode<span class="tsd-signature-symbol">(</span>__namedParameters<span class="tsd-signature-symbol">: </span><span class="tsd-signature-symbol">{ </span>paths<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol"> }</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-symbol">{ </span>lookup<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">"Msg"</span><span class="tsd-signature-symbol">; </span>body<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">object</span><span class="tsd-signature-symbol">; </span>header<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">object</span><span class="tsd-signature-symbol"> }</span></li>
+					</ul>
+					<ul class="tsd-descriptions">
+						<li class="tsd-description">
+							<aside class="tsd-sources">
+								<ul>
+									<li>Defined in commands/get.ts:17</li>
+								</ul>
+							</aside>
+							<h4 class="tsd-parameters-title">Parameters</h4>
+							<ul class="tsd-parameters">
+								<li>
+									<h5>__namedParameters: <span class="tsd-signature-symbol">{ </span>paths<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol"> }</span></h5>
+									<ul class="tsd-parameters">
+										<li class="tsd-parameter">
+											<h5>paths<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">any</span></h5>
+										</li>
+									</ul>
+								</li>
+							</ul>
+							<h4 class="tsd-returns-title">Returns <span class="tsd-signature-symbol">{ </span>lookup<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">"Msg"</span><span class="tsd-signature-symbol">; </span>body<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">object</span><span class="tsd-signature-symbol">; </span>header<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">object</span><span class="tsd-signature-symbol"> }</span></h4>
+							<ul class="tsd-parameters">
+								<li class="tsd-parameter">
+									<h5>lookup<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">"Msg"</span></h5>
+								</li>
+								<li class="tsd-parameter">
+									<h5>body<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">object</span></h5>
+									<ul class="tsd-parameters">
+										<li class="tsd-parameter">
+											<h5>lookup<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">"Body"</span></h5>
+										</li>
+										<li class="tsd-parameter">
+											<h5>request<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">object</span></h5>
+											<ul class="tsd-parameters">
+												<li class="tsd-parameter">
+													<h5>lookup<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">"Request"</span></h5>
+												</li>
+												<li class="tsd-parameter">
+													<h5>get<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">object</span></h5>
+													<ul class="tsd-parameters">
+														<li class="tsd-parameter">
+															<h5>param<wbr>Paths<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">[]</span></h5>
+														</li>
+													</ul>
+												</li>
+											</ul>
+										</li>
+									</ul>
+								</li>
+								<li class="tsd-parameter">
+									<h5>header<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">object</span></h5>
+									<ul class="tsd-parameters">
+										<li class="tsd-parameter">
+											<h5>lookup<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">"Header"</span></h5>
+										</li>
+										<li class="tsd-parameter">
+											<h5>msg<wbr>Id<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span></h5>
+										</li>
+										<li class="tsd-parameter">
+											<h5>msg<wbr>Type<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">"GET"</span></h5>
+										</li>
+									</ul>
+								</li>
+							</ul>
+						</li>
+					</ul>
+				</section>
+				<section class="tsd-panel tsd-member tsd-kind-function tsd-parent-kind-module tsd-is-not-exported">
+					<a name="make" class="tsd-anchor"></a>
+					<h3><span class="tsd-flag ts-flagConst">Const</span> make</h3>
+					<ul class="tsd-signatures tsd-kind-function tsd-parent-kind-module tsd-is-not-exported">
+						<li class="tsd-signature tsd-kind-icon">make<span class="tsd-signature-symbol">(</span>call<span class="tsd-signature-symbol">: </span><a href="_types_.html#callfn" class="tsd-signature-type">CallFn</a><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="_types_.html#getcommand" class="tsd-signature-type">GetCommand</a></li>
+					</ul>
+					<ul class="tsd-descriptions">
+						<li class="tsd-description">
+							<aside class="tsd-sources">
+								<ul>
+									<li>Defined in commands/get.ts:35</li>
+								</ul>
+							</aside>
+							<h4 class="tsd-parameters-title">Parameters</h4>
+							<ul class="tsd-parameters">
+								<li>
+									<h5>call: <a href="_types_.html#callfn" class="tsd-signature-type">CallFn</a></h5>
+								</li>
+							</ul>
+							<h4 class="tsd-returns-title">Returns <a href="_types_.html#getcommand" class="tsd-signature-type">GetCommand</a></h4>
+						</li>
+					</ul>
+				</section>
+			</section>
+		</div>
+		<div class="col-4 col-menu menu-sticky-wrap menu-highlight">
+			<nav class="tsd-navigation primary">
+				<ul>
+					<li class="globals  ">
+						<a href="../globals.html"><em>Globals</em></a>
+					</li>
+					<li class="label tsd-is-external">
+						<span>Internals</span>
+					</li>
+					<li class=" tsd-kind-module">
+						<a href="_commands_add_.html">&quot;commands/add&quot;</a>
+					</li>
+					<li class=" tsd-kind-module">
+						<a href="_commands_del_.html">&quot;commands/del&quot;</a>
+					</li>
+					<li class="current tsd-kind-module">
+						<a href="_commands_get_.html">&quot;commands/get&quot;</a>
+					</li>
+					<li class=" tsd-kind-module">
+						<a href="_commands_index_.html">&quot;commands/index&quot;</a>
+					</li>
+					<li class=" tsd-kind-module">
+						<a href="_commands_operate_.html">&quot;commands/operate&quot;</a>
+					</li>
+					<li class=" tsd-kind-module">
+						<a href="_commands_recipes_resolve_.html">&quot;commands/recipes/resolve&quot;</a>
+					</li>
+					<li class=" tsd-kind-module">
+						<a href="_commands_set_.html">&quot;commands/set&quot;</a>
+					</li>
+					<li class=" tsd-kind-module">
+						<a href="_commands_util_.html">&quot;commands/util&quot;</a>
+					</li>
+					<li class=" tsd-kind-module">
+						<a href="_index_.html">&quot;index&quot;</a>
+					</li>
+					<li class=" tsd-kind-module">
+						<a href="_types_.html">&quot;types&quot;</a>
+					</li>
+					<li class=" tsd-kind-module">
+						<a href="_util_.html">&quot;util&quot;</a>
+					</li>
+					<li class="label tsd-is-external">
+						<span>Externals</span>
+					</li>
+					<li class=" tsd-kind-module tsd-is-external">
+						<a href="_specs_usp_msg_1_1_.html">&quot;specs/usp-<wbr>msg-<wbr>1-1&quot;</a>
+					</li>
+					<li class=" tsd-kind-module tsd-is-external">
+						<a href="_specs_usp_record_1_1_.html">&quot;specs/usp-<wbr>record-<wbr>1-1&quot;</a>
+					</li>
+				</ul>
+			</nav>
+			<nav class="tsd-navigation secondary menu-sticky">
+				<ul class="before-current">
+					<li class=" tsd-kind-function tsd-parent-kind-module tsd-is-not-exported">
+						<a href="_commands_get_.html#decode" class="tsd-kind-icon">decode</a>
+					</li>
+					<li class=" tsd-kind-function tsd-parent-kind-module tsd-is-not-exported">
+						<a href="_commands_get_.html#encode" class="tsd-kind-icon">encode</a>
+					</li>
+					<li class=" tsd-kind-function tsd-parent-kind-module tsd-is-not-exported">
+						<a href="_commands_get_.html#make" class="tsd-kind-icon">make</a>
+					</li>
+				</ul>
+			</nav>
+		</div>
+	</div>
+</div>
+<footer class="with-border-bottom">
+	<div class="container">
+		<h2>Legend</h2>
+		<div class="tsd-legend-group">
+			<ul class="tsd-legend">
+				<li class="tsd-kind-variable"><span class="tsd-kind-icon">Variable</span></li>
+				<li class="tsd-kind-function"><span class="tsd-kind-icon">Function</span></li>
+				<li class="tsd-kind-type-alias"><span class="tsd-kind-icon">Type alias</span></li>
+			</ul>
+			<ul class="tsd-legend">
+				<li class="tsd-kind-interface"><span class="tsd-kind-icon">Interface</span></li>
+			</ul>
+		</div>
+	</div>
+</footer>
+<div class="container tsd-generator">
+	<p>Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p>
+</div>
+<div class="overlay"></div>
+<script src="../assets/js/main.js"></script>
+</body>
+</html>
\ No newline at end of file
diff --git a/public/modules/_commands_index_.html b/public/modules/_commands_index_.html
new file mode 100644
index 0000000000000000000000000000000000000000..afa394d12cbffd168ec64fabaaf4af876d838903
--- /dev/null
+++ b/public/modules/_commands_index_.html
@@ -0,0 +1,709 @@
+<!doctype html>
+<html class="default no-js">
+<head>
+	<meta charset="utf-8">
+	<meta http-equiv="X-UA-Compatible" content="IE=edge">
+	<title>&quot;commands/index&quot; | usp-js</title>
+	<meta name="description" content="Documentation for usp-js">
+	<meta name="viewport" content="width=device-width, initial-scale=1">
+	<link rel="stylesheet" href="../assets/css/main.css">
+</head>
+<body>
+<header>
+	<div class="tsd-page-toolbar">
+		<div class="container">
+			<div class="table-wrap">
+				<div class="table-cell" id="tsd-search" data-index="../assets/js/search.json" data-base="..">
+					<div class="field">
+						<label for="tsd-search-field" class="tsd-widget search no-caption">Search</label>
+						<input id="tsd-search-field" type="text" />
+					</div>
+					<ul class="results">
+						<li class="state loading">Preparing search index...</li>
+						<li class="state failure">The search index is not available</li>
+					</ul>
+					<a href="../index.html" class="title">usp-js</a>
+				</div>
+				<div class="table-cell" id="tsd-widgets">
+					<div id="tsd-filter">
+						<a href="#" class="tsd-widget options no-caption" data-toggle="options">Options</a>
+						<div class="tsd-filter-group">
+							<div class="tsd-select" id="tsd-filter-visibility">
+								<span class="tsd-select-label">All</span>
+								<ul class="tsd-select-list">
+									<li data-value="public">Public</li>
+									<li data-value="protected">Public/Protected</li>
+									<li data-value="private" class="selected">All</li>
+								</ul>
+							</div>
+							<input type="checkbox" id="tsd-filter-inherited" checked />
+							<label class="tsd-widget" for="tsd-filter-inherited">Inherited</label>
+							<input type="checkbox" id="tsd-filter-externals" checked />
+							<label class="tsd-widget" for="tsd-filter-externals">Externals</label>
+							<input type="checkbox" id="tsd-filter-only-exported" />
+							<label class="tsd-widget" for="tsd-filter-only-exported">Only exported</label>
+						</div>
+					</div>
+					<a href="#" class="tsd-widget menu no-caption" data-toggle="menu">Menu</a>
+				</div>
+			</div>
+		</div>
+	</div>
+	<div class="tsd-page-title">
+		<div class="container">
+			<ul class="tsd-breadcrumb">
+				<li>
+					<a href="../globals.html">Globals</a>
+				</li>
+				<li>
+					<a href="_commands_index_.html">&quot;commands/index&quot;</a>
+				</li>
+			</ul>
+			<h1>Module &quot;commands/index&quot;</h1>
+		</div>
+	</div>
+</header>
+<div class="container container-main">
+	<div class="row">
+		<div class="col-8 col-content">
+			<section class="tsd-panel-group tsd-index-group">
+				<h2>Index</h2>
+				<section class="tsd-panel tsd-index-panel">
+					<div class="tsd-index-content">
+						<section class="tsd-index-section ">
+							<h3>Variables</h3>
+							<ul class="tsd-index-list">
+								<li class="tsd-kind-variable tsd-parent-kind-module tsd-is-not-exported"><a href="_commands_index_.html#allfunctions" class="tsd-kind-icon">all<wbr>Functions</a></li>
+								<li class="tsd-kind-variable tsd-parent-kind-module tsd-is-not-exported"><a href="_commands_index_.html#commands" class="tsd-kind-icon">commands</a></li>
+								<li class="tsd-kind-variable tsd-parent-kind-module"><a href="_commands_index_.html#header" class="tsd-kind-icon">header</a></li>
+								<li class="tsd-kind-variable tsd-parent-kind-module tsd-is-not-exported"><a href="_commands_index_.html#ignorablecommands" class="tsd-kind-icon">ignorable<wbr>Commands</a></li>
+								<li class="tsd-kind-variable tsd-parent-kind-module tsd-is-not-exported"><a href="_commands_index_.html#internalkeys" class="tsd-kind-icon">internal<wbr>Keys</a></li>
+								<li class="tsd-kind-variable tsd-parent-kind-module tsd-is-not-exported"><a href="_commands_index_.html#recipes" class="tsd-kind-icon">recipes</a></li>
+								<li class="tsd-kind-variable tsd-parent-kind-module"><a href="_commands_index_.html#rootmsg" class="tsd-kind-icon">root<wbr>Msg</a></li>
+								<li class="tsd-kind-variable tsd-parent-kind-module"><a href="_commands_index_.html#rootrecord" class="tsd-kind-icon">root<wbr>Record</a></li>
+							</ul>
+						</section>
+						<section class="tsd-index-section ">
+							<h3>Functions</h3>
+							<ul class="tsd-index-list">
+								<li class="tsd-kind-function tsd-parent-kind-module tsd-is-not-exported"><a href="_commands_index_.html#_convert" class="tsd-kind-icon">_convert</a></li>
+								<li class="tsd-kind-function tsd-parent-kind-module tsd-is-not-exported"><a href="_commands_index_.html#convert" class="tsd-kind-icon">convert</a></li>
+								<li class="tsd-kind-function tsd-parent-kind-module"><a href="_commands_index_.html#decode" class="tsd-kind-icon">decode</a></li>
+								<li class="tsd-kind-function tsd-parent-kind-module tsd-is-not-exported"><a href="_commands_index_.html#finddecode" class="tsd-kind-icon">find<wbr>Decode</a></li>
+								<li class="tsd-kind-function tsd-parent-kind-module tsd-is-not-exported"><a href="_commands_index_.html#findencode" class="tsd-kind-icon">find<wbr>Encode</a></li>
+								<li class="tsd-kind-function tsd-parent-kind-module tsd-is-not-exported"><a href="_commands_index_.html#iserror" class="tsd-kind-icon">is<wbr>Error</a></li>
+								<li class="tsd-kind-function tsd-parent-kind-module tsd-is-not-exported"><a href="_commands_index_.html#isignorable" class="tsd-kind-icon">is<wbr>Ignorable</a></li>
+								<li class="tsd-kind-function tsd-parent-kind-module tsd-is-not-exported"><a href="_commands_index_.html#isinternal" class="tsd-kind-icon">is<wbr>Internal</a></li>
+								<li class="tsd-kind-function tsd-parent-kind-module tsd-is-not-exported"><a href="_commands_index_.html#isstringarray" class="tsd-kind-icon">is<wbr>String<wbr>Array</a></li>
+								<li class="tsd-kind-function tsd-parent-kind-module"><a href="_commands_index_.html#makecommands" class="tsd-kind-icon">make<wbr>Commands</a></li>
+								<li class="tsd-kind-function tsd-parent-kind-module"><a href="_commands_index_.html#makeencode" class="tsd-kind-icon">make<wbr>Encode</a></li>
+								<li class="tsd-kind-function tsd-parent-kind-module tsd-is-not-exported"><a href="_commands_index_.html#makepayload" class="tsd-kind-icon">make<wbr>Payload</a></li>
+								<li class="tsd-kind-function tsd-parent-kind-module tsd-is-not-exported"><a href="_commands_index_.html#needsconversion" class="tsd-kind-icon">needs<wbr>Conversion</a></li>
+								<li class="tsd-kind-function tsd-parent-kind-module tsd-is-not-exported"><a href="_commands_index_.html#parsetrigger" class="tsd-kind-icon">parse<wbr>Trigger</a></li>
+								<li class="tsd-kind-function tsd-parent-kind-module tsd-is-not-exported"><a href="_commands_index_.html#unkownerr" class="tsd-kind-icon">unkown<wbr>Err</a></li>
+							</ul>
+						</section>
+					</div>
+				</section>
+			</section>
+			<section class="tsd-panel-group tsd-member-group ">
+				<h2>Variables</h2>
+				<section class="tsd-panel tsd-member tsd-kind-variable tsd-parent-kind-module tsd-is-not-exported">
+					<a name="allfunctions" class="tsd-anchor"></a>
+					<h3><span class="tsd-flag ts-flagConst">Const</span> all<wbr>Functions</h3>
+					<div class="tsd-signature tsd-kind-icon">all<wbr>Functions<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-symbol">{ </span>make<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">; </span>name<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol"> }</span><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol"> = commands.concat(recipes as any[])</span></div>
+					<aside class="tsd-sources">
+						<ul>
+							<li>Defined in commands/index.ts:30</li>
+						</ul>
+					</aside>
+				</section>
+				<section class="tsd-panel tsd-member tsd-kind-variable tsd-parent-kind-module tsd-is-not-exported">
+					<a name="commands" class="tsd-anchor"></a>
+					<h3><span class="tsd-flag ts-flagConst">Const</span> commands</h3>
+					<div class="tsd-signature tsd-kind-icon">commands<span class="tsd-signature-symbol">:</span> <a href="_types_.html#commandobject" class="tsd-signature-type">CommandObject</a><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol"> = [get, set, add, del, operate]</span></div>
+					<aside class="tsd-sources">
+						<ul>
+							<li>Defined in commands/index.ts:28</li>
+						</ul>
+					</aside>
+				</section>
+				<section class="tsd-panel tsd-member tsd-kind-variable tsd-parent-kind-module">
+					<a name="header" class="tsd-anchor"></a>
+					<h3><span class="tsd-flag ts-flagConst">Const</span> header</h3>
+					<div class="tsd-signature tsd-kind-icon">header<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">any</span><span class="tsd-signature-symbol"> = rootMsg.lookupType(&quot;usp.Header&quot;)</span></div>
+					<aside class="tsd-sources">
+						<ul>
+							<li>Defined in commands/index.ts:18</li>
+						</ul>
+					</aside>
+				</section>
+				<section class="tsd-panel tsd-member tsd-kind-variable tsd-parent-kind-module tsd-is-not-exported">
+					<a name="ignorablecommands" class="tsd-anchor"></a>
+					<h3><span class="tsd-flag ts-flagConst">Const</span> ignorable<wbr>Commands</h3>
+					<div class="tsd-signature tsd-kind-icon">ignorable<wbr>Commands<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol"> = [&quot;OPERATE_RESP&quot;]</span></div>
+					<aside class="tsd-sources">
+						<ul>
+							<li>Defined in commands/index.ts:71</li>
+						</ul>
+					</aside>
+				</section>
+				<section class="tsd-panel tsd-member tsd-kind-variable tsd-parent-kind-module tsd-is-not-exported">
+					<a name="internalkeys" class="tsd-anchor"></a>
+					<h3><span class="tsd-flag ts-flagConst">Const</span> internal<wbr>Keys</h3>
+					<div class="tsd-signature tsd-kind-icon">internal<wbr>Keys<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol"> = [&quot;lookup&quot;]</span></div>
+					<aside class="tsd-sources">
+						<ul>
+							<li>Defined in commands/index.ts:120</li>
+						</ul>
+					</aside>
+				</section>
+				<section class="tsd-panel tsd-member tsd-kind-variable tsd-parent-kind-module tsd-is-not-exported">
+					<a name="recipes" class="tsd-anchor"></a>
+					<h3><span class="tsd-flag ts-flagConst">Const</span> recipes</h3>
+					<div class="tsd-signature tsd-kind-icon">recipes<span class="tsd-signature-symbol">:</span> <a href="../interfaces/_types_.recipeobject.html" class="tsd-signature-type">RecipeObject</a><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol"> = [resolve]</span></div>
+					<aside class="tsd-sources">
+						<ul>
+							<li>Defined in commands/index.ts:29</li>
+						</ul>
+					</aside>
+				</section>
+				<section class="tsd-panel tsd-member tsd-kind-variable tsd-parent-kind-module">
+					<a name="rootmsg" class="tsd-anchor"></a>
+					<h3><span class="tsd-flag ts-flagConst">Const</span> root<wbr>Msg</h3>
+					<div class="tsd-signature tsd-kind-icon">root<wbr>Msg<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">Root</span><span class="tsd-signature-symbol"> = protobuf.Root.fromJSON(rootMsgJson)</span></div>
+					<aside class="tsd-sources">
+						<ul>
+							<li>Defined in commands/index.ts:17</li>
+						</ul>
+					</aside>
+				</section>
+				<section class="tsd-panel tsd-member tsd-kind-variable tsd-parent-kind-module">
+					<a name="rootrecord" class="tsd-anchor"></a>
+					<h3><span class="tsd-flag ts-flagConst">Const</span> root<wbr>Record</h3>
+					<div class="tsd-signature tsd-kind-icon">root<wbr>Record<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">Root</span><span class="tsd-signature-symbol"> = protobuf.Root.fromJSON(rootRecordJson)</span></div>
+					<aside class="tsd-sources">
+						<ul>
+							<li>Defined in commands/index.ts:16</li>
+						</ul>
+					</aside>
+				</section>
+			</section>
+			<section class="tsd-panel-group tsd-member-group ">
+				<h2>Functions</h2>
+				<section class="tsd-panel tsd-member tsd-kind-function tsd-parent-kind-module tsd-is-not-exported">
+					<a name="_convert" class="tsd-anchor"></a>
+					<h3><span class="tsd-flag ts-flagConst">Const</span> _convert</h3>
+					<ul class="tsd-signatures tsd-kind-function tsd-parent-kind-module tsd-is-not-exported">
+						<li class="tsd-signature tsd-kind-icon">_convert<span class="tsd-signature-symbol">(</span>value<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">any</span></li>
+					</ul>
+					<ul class="tsd-descriptions">
+						<li class="tsd-description">
+							<aside class="tsd-sources">
+								<ul>
+									<li>Defined in commands/index.ts:140</li>
+								</ul>
+							</aside>
+							<h4 class="tsd-parameters-title">Parameters</h4>
+							<ul class="tsd-parameters">
+								<li>
+									<h5>value: <span class="tsd-signature-type">any</span></h5>
+								</li>
+							</ul>
+							<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">any</span></h4>
+						</li>
+					</ul>
+				</section>
+				<section class="tsd-panel tsd-member tsd-kind-function tsd-parent-kind-module tsd-is-not-exported">
+					<a name="convert" class="tsd-anchor"></a>
+					<h3><span class="tsd-flag ts-flagConst">Const</span> convert</h3>
+					<ul class="tsd-signatures tsd-kind-function tsd-parent-kind-module tsd-is-not-exported">
+						<li class="tsd-signature tsd-kind-icon">convert<span class="tsd-signature-symbol">(</span>msg<span class="tsd-signature-symbol">: </span><a href="../interfaces/_types_.pbrequestmessage.html" class="tsd-signature-type">PbRequestMessage</a>, bufferOptions<span class="tsd-signature-symbol">?: </span><span class="tsd-signature-type">Record</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">&gt;</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-symbol">[</span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">null</span><span class="tsd-signature-symbol">]</span></li>
+					</ul>
+					<ul class="tsd-descriptions">
+						<li class="tsd-description">
+							<aside class="tsd-sources">
+								<ul>
+									<li>Defined in commands/index.ts:103</li>
+								</ul>
+							</aside>
+							<h4 class="tsd-parameters-title">Parameters</h4>
+							<ul class="tsd-parameters">
+								<li>
+									<h5>msg: <a href="../interfaces/_types_.pbrequestmessage.html" class="tsd-signature-type">PbRequestMessage</a></h5>
+								</li>
+								<li>
+									<h5><span class="tsd-flag ts-flagOptional">Optional</span> bufferOptions: <span class="tsd-signature-type">Record</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">&gt;</span></h5>
+								</li>
+							</ul>
+							<h4 class="tsd-returns-title">Returns <span class="tsd-signature-symbol">[</span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">null</span><span class="tsd-signature-symbol">]</span></h4>
+						</li>
+					</ul>
+				</section>
+				<section class="tsd-panel tsd-member tsd-kind-function tsd-parent-kind-module">
+					<a name="decode" class="tsd-anchor"></a>
+					<h3><span class="tsd-flag ts-flagConst">Const</span> decode</h3>
+					<ul class="tsd-signatures tsd-kind-function tsd-parent-kind-module">
+						<li class="tsd-signature tsd-kind-icon">decode<span class="tsd-signature-symbol">(</span>data<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-symbol">[</span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">, </span><a href="_types_.html#response" class="tsd-signature-type">Response</a><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">null</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">]</span></li>
+					</ul>
+					<ul class="tsd-descriptions">
+						<li class="tsd-description">
+							<aside class="tsd-sources">
+								<ul>
+									<li>Defined in commands/index.ts:74</li>
+								</ul>
+							</aside>
+							<h4 class="tsd-parameters-title">Parameters</h4>
+							<ul class="tsd-parameters">
+								<li>
+									<h5>data: <span class="tsd-signature-type">any</span></h5>
+								</li>
+							</ul>
+							<h4 class="tsd-returns-title">Returns <span class="tsd-signature-symbol">[</span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">, </span><a href="_types_.html#response" class="tsd-signature-type">Response</a><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">null</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">]</span></h4>
+						</li>
+					</ul>
+				</section>
+				<section class="tsd-panel tsd-member tsd-kind-function tsd-parent-kind-module tsd-is-not-exported">
+					<a name="finddecode" class="tsd-anchor"></a>
+					<h3><span class="tsd-flag ts-flagConst">Const</span> find<wbr>Decode</h3>
+					<ul class="tsd-signatures tsd-kind-function tsd-parent-kind-module tsd-is-not-exported">
+						<li class="tsd-signature tsd-kind-icon">find<wbr>Decode<span class="tsd-signature-symbol">(</span>command<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span>, parsedMsg<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Record</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">&gt;</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="_types_.html#decodefn" class="tsd-signature-type">DecodeFn</a><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">undefined</span></li>
+					</ul>
+					<ul class="tsd-descriptions">
+						<li class="tsd-description">
+							<aside class="tsd-sources">
+								<ul>
+									<li>Defined in commands/index.ts:51</li>
+								</ul>
+							</aside>
+							<h4 class="tsd-parameters-title">Parameters</h4>
+							<ul class="tsd-parameters">
+								<li>
+									<h5>command: <span class="tsd-signature-type">string</span></h5>
+								</li>
+								<li>
+									<h5>parsedMsg: <span class="tsd-signature-type">Record</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">&gt;</span></h5>
+								</li>
+							</ul>
+							<h4 class="tsd-returns-title">Returns <a href="_types_.html#decodefn" class="tsd-signature-type">DecodeFn</a><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">undefined</span></h4>
+						</li>
+					</ul>
+				</section>
+				<section class="tsd-panel tsd-member tsd-kind-function tsd-parent-kind-module tsd-is-not-exported">
+					<a name="findencode" class="tsd-anchor"></a>
+					<h3><span class="tsd-flag ts-flagConst">Const</span> find<wbr>Encode</h3>
+					<ul class="tsd-signatures tsd-kind-function tsd-parent-kind-module tsd-is-not-exported">
+						<li class="tsd-signature tsd-kind-icon">find<wbr>Encode<span class="tsd-signature-symbol">(</span>command<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="_types_.html#commandobject" class="tsd-signature-type">CommandObject</a><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">undefined</span></li>
+					</ul>
+					<ul class="tsd-descriptions">
+						<li class="tsd-description">
+							<aside class="tsd-sources">
+								<ul>
+									<li>Defined in commands/index.ts:62</li>
+								</ul>
+							</aside>
+							<h4 class="tsd-parameters-title">Parameters</h4>
+							<ul class="tsd-parameters">
+								<li>
+									<h5>command: <span class="tsd-signature-type">string</span></h5>
+								</li>
+							</ul>
+							<h4 class="tsd-returns-title">Returns <a href="_types_.html#commandobject" class="tsd-signature-type">CommandObject</a><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">undefined</span></h4>
+						</li>
+					</ul>
+				</section>
+				<section class="tsd-panel tsd-member tsd-kind-function tsd-parent-kind-module tsd-is-not-exported">
+					<a name="iserror" class="tsd-anchor"></a>
+					<h3><span class="tsd-flag ts-flagConst">Const</span> is<wbr>Error</h3>
+					<ul class="tsd-signatures tsd-kind-function tsd-parent-kind-module tsd-is-not-exported">
+						<li class="tsd-signature tsd-kind-icon">is<wbr>Error<span class="tsd-signature-symbol">(</span>o<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">o</span><span class="tsd-signature-symbol"> is </span><span class="tsd-signature-type">string</span></li>
+					</ul>
+					<ul class="tsd-descriptions">
+						<li class="tsd-description">
+							<aside class="tsd-sources">
+								<ul>
+									<li>Defined in commands/index.ts:118</li>
+								</ul>
+							</aside>
+							<h4 class="tsd-parameters-title">Parameters</h4>
+							<ul class="tsd-parameters">
+								<li>
+									<h5>o: <span class="tsd-signature-type">any</span></h5>
+								</li>
+							</ul>
+							<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">o</span><span class="tsd-signature-symbol"> is </span><span class="tsd-signature-type">string</span></h4>
+						</li>
+					</ul>
+				</section>
+				<section class="tsd-panel tsd-member tsd-kind-function tsd-parent-kind-module tsd-is-not-exported">
+					<a name="isignorable" class="tsd-anchor"></a>
+					<h3><span class="tsd-flag ts-flagConst">Const</span> is<wbr>Ignorable</h3>
+					<ul class="tsd-signatures tsd-kind-function tsd-parent-kind-module tsd-is-not-exported">
+						<li class="tsd-signature tsd-kind-icon">is<wbr>Ignorable<span class="tsd-signature-symbol">(</span>command<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">boolean</span></li>
+					</ul>
+					<ul class="tsd-descriptions">
+						<li class="tsd-description">
+							<aside class="tsd-sources">
+								<ul>
+									<li>Defined in commands/index.ts:72</li>
+								</ul>
+							</aside>
+							<h4 class="tsd-parameters-title">Parameters</h4>
+							<ul class="tsd-parameters">
+								<li>
+									<h5>command: <span class="tsd-signature-type">string</span></h5>
+								</li>
+							</ul>
+							<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4>
+						</li>
+					</ul>
+				</section>
+				<section class="tsd-panel tsd-member tsd-kind-function tsd-parent-kind-module tsd-is-not-exported">
+					<a name="isinternal" class="tsd-anchor"></a>
+					<h3><span class="tsd-flag ts-flagConst">Const</span> is<wbr>Internal</h3>
+					<ul class="tsd-signatures tsd-kind-function tsd-parent-kind-module tsd-is-not-exported">
+						<li class="tsd-signature tsd-kind-icon">is<wbr>Internal<span class="tsd-signature-symbol">(</span>key<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">boolean</span></li>
+					</ul>
+					<ul class="tsd-descriptions">
+						<li class="tsd-description">
+							<aside class="tsd-sources">
+								<ul>
+									<li>Defined in commands/index.ts:121</li>
+								</ul>
+							</aside>
+							<h4 class="tsd-parameters-title">Parameters</h4>
+							<ul class="tsd-parameters">
+								<li>
+									<h5>key: <span class="tsd-signature-type">string</span></h5>
+								</li>
+							</ul>
+							<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4>
+						</li>
+					</ul>
+				</section>
+				<section class="tsd-panel tsd-member tsd-kind-function tsd-parent-kind-module tsd-is-not-exported">
+					<a name="isstringarray" class="tsd-anchor"></a>
+					<h3><span class="tsd-flag ts-flagConst">Const</span> is<wbr>String<wbr>Array</h3>
+					<ul class="tsd-signatures tsd-kind-function tsd-parent-kind-module tsd-is-not-exported">
+						<li class="tsd-signature tsd-kind-icon">is<wbr>String<wbr>Array<span class="tsd-signature-symbol">(</span>obj<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">boolean</span></li>
+					</ul>
+					<ul class="tsd-descriptions">
+						<li class="tsd-description">
+							<aside class="tsd-sources">
+								<ul>
+									<li>Defined in commands/index.ts:136</li>
+								</ul>
+							</aside>
+							<h4 class="tsd-parameters-title">Parameters</h4>
+							<ul class="tsd-parameters">
+								<li>
+									<h5>obj: <span class="tsd-signature-type">any</span></h5>
+								</li>
+							</ul>
+							<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4>
+						</li>
+					</ul>
+				</section>
+				<section class="tsd-panel tsd-member tsd-kind-function tsd-parent-kind-module">
+					<a name="makecommands" class="tsd-anchor"></a>
+					<h3><span class="tsd-flag ts-flagConst">Const</span> make<wbr>Commands</h3>
+					<ul class="tsd-signatures tsd-kind-function tsd-parent-kind-module">
+						<li class="tsd-signature tsd-kind-icon">make<wbr>Commands<span class="tsd-signature-symbol">(</span>call<span class="tsd-signature-symbol">: </span><a href="_types_.html#callfn" class="tsd-signature-type">CallFn</a><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">any</span></li>
+					</ul>
+					<ul class="tsd-descriptions">
+						<li class="tsd-description">
+							<aside class="tsd-sources">
+								<ul>
+									<li>Defined in commands/index.ts:32</li>
+								</ul>
+							</aside>
+							<h4 class="tsd-parameters-title">Parameters</h4>
+							<ul class="tsd-parameters">
+								<li>
+									<h5>call: <a href="_types_.html#callfn" class="tsd-signature-type">CallFn</a></h5>
+								</li>
+							</ul>
+							<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">any</span></h4>
+						</li>
+					</ul>
+				</section>
+				<section class="tsd-panel tsd-member tsd-kind-function tsd-parent-kind-module">
+					<a name="makeencode" class="tsd-anchor"></a>
+					<h3><span class="tsd-flag ts-flagConst">Const</span> make<wbr>Encode</h3>
+					<ul class="tsd-signatures tsd-kind-function tsd-parent-kind-module">
+						<li class="tsd-signature tsd-kind-icon">make<wbr>Encode<span class="tsd-signature-symbol">(</span>options<span class="tsd-signature-symbol">?: </span><span class="tsd-signature-type">Record</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">&gt;</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">(Anonymous function)</span></li>
+					</ul>
+					<ul class="tsd-descriptions">
+						<li class="tsd-description">
+							<aside class="tsd-sources">
+								<ul>
+									<li>Defined in commands/index.ts:94</li>
+								</ul>
+							</aside>
+							<h4 class="tsd-parameters-title">Parameters</h4>
+							<ul class="tsd-parameters">
+								<li>
+									<h5><span class="tsd-flag ts-flagOptional">Optional</span> options: <span class="tsd-signature-type">Record</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">&gt;</span></h5>
+								</li>
+							</ul>
+							<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">(Anonymous function)</span></h4>
+						</li>
+					</ul>
+				</section>
+				<section class="tsd-panel tsd-member tsd-kind-function tsd-parent-kind-module tsd-is-not-exported">
+					<a name="makepayload" class="tsd-anchor"></a>
+					<h3><span class="tsd-flag ts-flagConst">Const</span> make<wbr>Payload</h3>
+					<ul class="tsd-signatures tsd-kind-function tsd-parent-kind-module tsd-is-not-exported">
+						<li class="tsd-signature tsd-kind-icon">make<wbr>Payload<span class="tsd-signature-symbol">(</span>items<span class="tsd-signature-symbol">: </span><span class="tsd-signature-symbol">[</span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">]</span><span class="tsd-signature-symbol">[]</span>, isArr<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">boolean</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">any</span></li>
+					</ul>
+					<ul class="tsd-descriptions">
+						<li class="tsd-description">
+							<aside class="tsd-sources">
+								<ul>
+									<li>Defined in commands/index.ts:122</li>
+								</ul>
+							</aside>
+							<h4 class="tsd-parameters-title">Parameters</h4>
+							<ul class="tsd-parameters">
+								<li>
+									<h5>items: <span class="tsd-signature-symbol">[</span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">]</span><span class="tsd-signature-symbol">[]</span></h5>
+								</li>
+								<li>
+									<h5>isArr: <span class="tsd-signature-type">boolean</span></h5>
+								</li>
+							</ul>
+							<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">any</span></h4>
+						</li>
+					</ul>
+				</section>
+				<section class="tsd-panel tsd-member tsd-kind-function tsd-parent-kind-module tsd-is-not-exported">
+					<a name="needsconversion" class="tsd-anchor"></a>
+					<h3><span class="tsd-flag ts-flagConst">Const</span> needs<wbr>Conversion</h3>
+					<ul class="tsd-signatures tsd-kind-function tsd-parent-kind-module tsd-is-not-exported">
+						<li class="tsd-signature tsd-kind-icon">needs<wbr>Conversion<span class="tsd-signature-symbol">(</span>v<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">boolean</span></li>
+					</ul>
+					<ul class="tsd-descriptions">
+						<li class="tsd-description">
+							<aside class="tsd-sources">
+								<ul>
+									<li>Defined in commands/index.ts:138</li>
+								</ul>
+							</aside>
+							<h4 class="tsd-parameters-title">Parameters</h4>
+							<ul class="tsd-parameters">
+								<li>
+									<h5>v: <span class="tsd-signature-type">any</span></h5>
+								</li>
+							</ul>
+							<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4>
+						</li>
+					</ul>
+				</section>
+				<section class="tsd-panel tsd-member tsd-kind-function tsd-parent-kind-module tsd-is-not-exported">
+					<a name="parsetrigger" class="tsd-anchor"></a>
+					<h3><span class="tsd-flag ts-flagConst">Const</span> parse<wbr>Trigger</h3>
+					<ul class="tsd-signatures tsd-kind-function tsd-parent-kind-module tsd-is-not-exported">
+						<li class="tsd-signature tsd-kind-icon">parse<wbr>Trigger<span class="tsd-signature-symbol">(</span>trigger<span class="tsd-signature-symbol">: </span><a href="_types_.html#commandtrigger" class="tsd-signature-type">CommandTrigger</a>, command<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span>, fn<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">"encode"</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">"decode"</span>, args<span class="tsd-signature-symbol">?: </span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">boolean</span></li>
+					</ul>
+					<ul class="tsd-descriptions">
+						<li class="tsd-description">
+							<aside class="tsd-sources">
+								<ul>
+									<li>Defined in commands/index.ts:38</li>
+								</ul>
+							</aside>
+							<h4 class="tsd-parameters-title">Parameters</h4>
+							<ul class="tsd-parameters">
+								<li>
+									<h5>trigger: <a href="_types_.html#commandtrigger" class="tsd-signature-type">CommandTrigger</a></h5>
+								</li>
+								<li>
+									<h5>command: <span class="tsd-signature-type">string</span></h5>
+								</li>
+								<li>
+									<h5>fn: <span class="tsd-signature-type">"encode"</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">"decode"</span></h5>
+								</li>
+								<li>
+									<h5><span class="tsd-flag ts-flagOptional">Optional</span> args: <span class="tsd-signature-type">any</span></h5>
+								</li>
+							</ul>
+							<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4>
+						</li>
+					</ul>
+				</section>
+				<section class="tsd-panel tsd-member tsd-kind-function tsd-parent-kind-module tsd-is-not-exported">
+					<a name="unkownerr" class="tsd-anchor"></a>
+					<h3><span class="tsd-flag ts-flagConst">Const</span> unkown<wbr>Err</h3>
+					<ul class="tsd-signatures tsd-kind-function tsd-parent-kind-module tsd-is-not-exported">
+						<li class="tsd-signature tsd-kind-icon">unkown<wbr>Err<span class="tsd-signature-symbol">(</span>msg<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Record</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">&gt;</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-symbol">[</span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">]</span></li>
+					</ul>
+					<ul class="tsd-descriptions">
+						<li class="tsd-description">
+							<aside class="tsd-sources">
+								<ul>
+									<li>Defined in commands/index.ts:65</li>
+								</ul>
+							</aside>
+							<h4 class="tsd-parameters-title">Parameters</h4>
+							<ul class="tsd-parameters">
+								<li>
+									<h5>msg: <span class="tsd-signature-type">Record</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">&gt;</span></h5>
+								</li>
+							</ul>
+							<h4 class="tsd-returns-title">Returns <span class="tsd-signature-symbol">[</span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">]</span></h4>
+						</li>
+					</ul>
+				</section>
+			</section>
+		</div>
+		<div class="col-4 col-menu menu-sticky-wrap menu-highlight">
+			<nav class="tsd-navigation primary">
+				<ul>
+					<li class="globals  ">
+						<a href="../globals.html"><em>Globals</em></a>
+					</li>
+					<li class="label tsd-is-external">
+						<span>Internals</span>
+					</li>
+					<li class=" tsd-kind-module">
+						<a href="_commands_add_.html">&quot;commands/add&quot;</a>
+					</li>
+					<li class=" tsd-kind-module">
+						<a href="_commands_del_.html">&quot;commands/del&quot;</a>
+					</li>
+					<li class=" tsd-kind-module">
+						<a href="_commands_get_.html">&quot;commands/get&quot;</a>
+					</li>
+					<li class="current tsd-kind-module">
+						<a href="_commands_index_.html">&quot;commands/index&quot;</a>
+					</li>
+					<li class=" tsd-kind-module">
+						<a href="_commands_operate_.html">&quot;commands/operate&quot;</a>
+					</li>
+					<li class=" tsd-kind-module">
+						<a href="_commands_recipes_resolve_.html">&quot;commands/recipes/resolve&quot;</a>
+					</li>
+					<li class=" tsd-kind-module">
+						<a href="_commands_set_.html">&quot;commands/set&quot;</a>
+					</li>
+					<li class=" tsd-kind-module">
+						<a href="_commands_util_.html">&quot;commands/util&quot;</a>
+					</li>
+					<li class=" tsd-kind-module">
+						<a href="_index_.html">&quot;index&quot;</a>
+					</li>
+					<li class=" tsd-kind-module">
+						<a href="_types_.html">&quot;types&quot;</a>
+					</li>
+					<li class=" tsd-kind-module">
+						<a href="_util_.html">&quot;util&quot;</a>
+					</li>
+					<li class="label tsd-is-external">
+						<span>Externals</span>
+					</li>
+					<li class=" tsd-kind-module tsd-is-external">
+						<a href="_specs_usp_msg_1_1_.html">&quot;specs/usp-<wbr>msg-<wbr>1-1&quot;</a>
+					</li>
+					<li class=" tsd-kind-module tsd-is-external">
+						<a href="_specs_usp_record_1_1_.html">&quot;specs/usp-<wbr>record-<wbr>1-1&quot;</a>
+					</li>
+				</ul>
+			</nav>
+			<nav class="tsd-navigation secondary menu-sticky">
+				<ul class="before-current">
+					<li class=" tsd-kind-variable tsd-parent-kind-module tsd-is-not-exported">
+						<a href="_commands_index_.html#allfunctions" class="tsd-kind-icon">all<wbr>Functions</a>
+					</li>
+					<li class=" tsd-kind-variable tsd-parent-kind-module tsd-is-not-exported">
+						<a href="_commands_index_.html#commands" class="tsd-kind-icon">commands</a>
+					</li>
+					<li class=" tsd-kind-variable tsd-parent-kind-module">
+						<a href="_commands_index_.html#header" class="tsd-kind-icon">header</a>
+					</li>
+					<li class=" tsd-kind-variable tsd-parent-kind-module tsd-is-not-exported">
+						<a href="_commands_index_.html#ignorablecommands" class="tsd-kind-icon">ignorable<wbr>Commands</a>
+					</li>
+					<li class=" tsd-kind-variable tsd-parent-kind-module tsd-is-not-exported">
+						<a href="_commands_index_.html#internalkeys" class="tsd-kind-icon">internal<wbr>Keys</a>
+					</li>
+					<li class=" tsd-kind-variable tsd-parent-kind-module tsd-is-not-exported">
+						<a href="_commands_index_.html#recipes" class="tsd-kind-icon">recipes</a>
+					</li>
+					<li class=" tsd-kind-variable tsd-parent-kind-module">
+						<a href="_commands_index_.html#rootmsg" class="tsd-kind-icon">root<wbr>Msg</a>
+					</li>
+					<li class=" tsd-kind-variable tsd-parent-kind-module">
+						<a href="_commands_index_.html#rootrecord" class="tsd-kind-icon">root<wbr>Record</a>
+					</li>
+					<li class=" tsd-kind-function tsd-parent-kind-module tsd-is-not-exported">
+						<a href="_commands_index_.html#_convert" class="tsd-kind-icon">_convert</a>
+					</li>
+					<li class=" tsd-kind-function tsd-parent-kind-module tsd-is-not-exported">
+						<a href="_commands_index_.html#convert" class="tsd-kind-icon">convert</a>
+					</li>
+					<li class=" tsd-kind-function tsd-parent-kind-module">
+						<a href="_commands_index_.html#decode" class="tsd-kind-icon">decode</a>
+					</li>
+					<li class=" tsd-kind-function tsd-parent-kind-module tsd-is-not-exported">
+						<a href="_commands_index_.html#finddecode" class="tsd-kind-icon">find<wbr>Decode</a>
+					</li>
+					<li class=" tsd-kind-function tsd-parent-kind-module tsd-is-not-exported">
+						<a href="_commands_index_.html#findencode" class="tsd-kind-icon">find<wbr>Encode</a>
+					</li>
+					<li class=" tsd-kind-function tsd-parent-kind-module tsd-is-not-exported">
+						<a href="_commands_index_.html#iserror" class="tsd-kind-icon">is<wbr>Error</a>
+					</li>
+					<li class=" tsd-kind-function tsd-parent-kind-module tsd-is-not-exported">
+						<a href="_commands_index_.html#isignorable" class="tsd-kind-icon">is<wbr>Ignorable</a>
+					</li>
+					<li class=" tsd-kind-function tsd-parent-kind-module tsd-is-not-exported">
+						<a href="_commands_index_.html#isinternal" class="tsd-kind-icon">is<wbr>Internal</a>
+					</li>
+					<li class=" tsd-kind-function tsd-parent-kind-module tsd-is-not-exported">
+						<a href="_commands_index_.html#isstringarray" class="tsd-kind-icon">is<wbr>String<wbr>Array</a>
+					</li>
+					<li class=" tsd-kind-function tsd-parent-kind-module">
+						<a href="_commands_index_.html#makecommands" class="tsd-kind-icon">make<wbr>Commands</a>
+					</li>
+					<li class=" tsd-kind-function tsd-parent-kind-module">
+						<a href="_commands_index_.html#makeencode" class="tsd-kind-icon">make<wbr>Encode</a>
+					</li>
+					<li class=" tsd-kind-function tsd-parent-kind-module tsd-is-not-exported">
+						<a href="_commands_index_.html#makepayload" class="tsd-kind-icon">make<wbr>Payload</a>
+					</li>
+					<li class=" tsd-kind-function tsd-parent-kind-module tsd-is-not-exported">
+						<a href="_commands_index_.html#needsconversion" class="tsd-kind-icon">needs<wbr>Conversion</a>
+					</li>
+					<li class=" tsd-kind-function tsd-parent-kind-module tsd-is-not-exported">
+						<a href="_commands_index_.html#parsetrigger" class="tsd-kind-icon">parse<wbr>Trigger</a>
+					</li>
+					<li class=" tsd-kind-function tsd-parent-kind-module tsd-is-not-exported">
+						<a href="_commands_index_.html#unkownerr" class="tsd-kind-icon">unkown<wbr>Err</a>
+					</li>
+				</ul>
+			</nav>
+		</div>
+	</div>
+</div>
+<footer class="with-border-bottom">
+	<div class="container">
+		<h2>Legend</h2>
+		<div class="tsd-legend-group">
+			<ul class="tsd-legend">
+				<li class="tsd-kind-variable"><span class="tsd-kind-icon">Variable</span></li>
+				<li class="tsd-kind-function"><span class="tsd-kind-icon">Function</span></li>
+				<li class="tsd-kind-type-alias"><span class="tsd-kind-icon">Type alias</span></li>
+			</ul>
+			<ul class="tsd-legend">
+				<li class="tsd-kind-interface"><span class="tsd-kind-icon">Interface</span></li>
+			</ul>
+		</div>
+	</div>
+</footer>
+<div class="container tsd-generator">
+	<p>Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p>
+</div>
+<div class="overlay"></div>
+<script src="../assets/js/main.js"></script>
+</body>
+</html>
\ No newline at end of file
diff --git a/public/modules/_commands_operate_.html b/public/modules/_commands_operate_.html
new file mode 100644
index 0000000000000000000000000000000000000000..7b5abeb1378c985763d25145b98f18fac0531081
--- /dev/null
+++ b/public/modules/_commands_operate_.html
@@ -0,0 +1,332 @@
+<!doctype html>
+<html class="default no-js">
+<head>
+	<meta charset="utf-8">
+	<meta http-equiv="X-UA-Compatible" content="IE=edge">
+	<title>&quot;commands/operate&quot; | usp-js</title>
+	<meta name="description" content="Documentation for usp-js">
+	<meta name="viewport" content="width=device-width, initial-scale=1">
+	<link rel="stylesheet" href="../assets/css/main.css">
+</head>
+<body>
+<header>
+	<div class="tsd-page-toolbar">
+		<div class="container">
+			<div class="table-wrap">
+				<div class="table-cell" id="tsd-search" data-index="../assets/js/search.json" data-base="..">
+					<div class="field">
+						<label for="tsd-search-field" class="tsd-widget search no-caption">Search</label>
+						<input id="tsd-search-field" type="text" />
+					</div>
+					<ul class="results">
+						<li class="state loading">Preparing search index...</li>
+						<li class="state failure">The search index is not available</li>
+					</ul>
+					<a href="../index.html" class="title">usp-js</a>
+				</div>
+				<div class="table-cell" id="tsd-widgets">
+					<div id="tsd-filter">
+						<a href="#" class="tsd-widget options no-caption" data-toggle="options">Options</a>
+						<div class="tsd-filter-group">
+							<div class="tsd-select" id="tsd-filter-visibility">
+								<span class="tsd-select-label">All</span>
+								<ul class="tsd-select-list">
+									<li data-value="public">Public</li>
+									<li data-value="protected">Public/Protected</li>
+									<li data-value="private" class="selected">All</li>
+								</ul>
+							</div>
+							<input type="checkbox" id="tsd-filter-inherited" checked />
+							<label class="tsd-widget" for="tsd-filter-inherited">Inherited</label>
+							<input type="checkbox" id="tsd-filter-externals" checked />
+							<label class="tsd-widget" for="tsd-filter-externals">Externals</label>
+							<input type="checkbox" id="tsd-filter-only-exported" />
+							<label class="tsd-widget" for="tsd-filter-only-exported">Only exported</label>
+						</div>
+					</div>
+					<a href="#" class="tsd-widget menu no-caption" data-toggle="menu">Menu</a>
+				</div>
+			</div>
+		</div>
+	</div>
+	<div class="tsd-page-title">
+		<div class="container">
+			<ul class="tsd-breadcrumb">
+				<li>
+					<a href="../globals.html">Globals</a>
+				</li>
+				<li>
+					<a href="_commands_operate_.html">&quot;commands/operate&quot;</a>
+				</li>
+			</ul>
+			<h1>Module &quot;commands/operate&quot;</h1>
+		</div>
+	</div>
+</header>
+<div class="container container-main">
+	<div class="row">
+		<div class="col-8 col-content">
+			<section class="tsd-panel-group tsd-index-group">
+				<h2>Index</h2>
+				<section class="tsd-panel tsd-index-panel">
+					<div class="tsd-index-content">
+						<section class="tsd-index-section tsd-is-not-exported">
+							<h3>Variables</h3>
+							<ul class="tsd-index-list">
+								<li class="tsd-kind-variable tsd-parent-kind-module tsd-is-not-exported"><a href="_commands_operate_.html#operatesubscriptionpath" class="tsd-kind-icon">operate<wbr>Subscription<wbr>Path</a></li>
+							</ul>
+						</section>
+						<section class="tsd-index-section tsd-is-not-exported">
+							<h3>Functions</h3>
+							<ul class="tsd-index-list">
+								<li class="tsd-kind-function tsd-parent-kind-module tsd-is-not-exported"><a href="_commands_operate_.html#decode" class="tsd-kind-icon">decode</a></li>
+								<li class="tsd-kind-function tsd-parent-kind-module tsd-is-not-exported"><a href="_commands_operate_.html#encode" class="tsd-kind-icon">encode</a></li>
+								<li class="tsd-kind-function tsd-parent-kind-module tsd-is-not-exported"><a href="_commands_operate_.html#make" class="tsd-kind-icon">make</a></li>
+							</ul>
+						</section>
+					</div>
+				</section>
+			</section>
+			<section class="tsd-panel-group tsd-member-group tsd-is-not-exported">
+				<h2>Variables</h2>
+				<section class="tsd-panel tsd-member tsd-kind-variable tsd-parent-kind-module tsd-is-not-exported">
+					<a name="operatesubscriptionpath" class="tsd-anchor"></a>
+					<h3><span class="tsd-flag ts-flagConst">Const</span> operate<wbr>Subscription<wbr>Path</h3>
+					<div class="tsd-signature tsd-kind-icon">operate<wbr>Subscription<wbr>Path<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">"Device.LocalAgent.Subscription."</span><span class="tsd-signature-symbol"> = &quot;Device.LocalAgent.Subscription.&quot;</span></div>
+					<aside class="tsd-sources">
+						<ul>
+							<li>Defined in commands/operate.ts:41</li>
+						</ul>
+					</aside>
+				</section>
+			</section>
+			<section class="tsd-panel-group tsd-member-group tsd-is-not-exported">
+				<h2>Functions</h2>
+				<section class="tsd-panel tsd-member tsd-kind-function tsd-parent-kind-module tsd-is-not-exported">
+					<a name="decode" class="tsd-anchor"></a>
+					<h3><span class="tsd-flag ts-flagConst">Const</span> decode</h3>
+					<ul class="tsd-signatures tsd-kind-function tsd-parent-kind-module tsd-is-not-exported">
+						<li class="tsd-signature tsd-kind-icon">decode<span class="tsd-signature-symbol">(</span>msg<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Record</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">&gt;</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-symbol">[</span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">null</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">]</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-symbol">[</span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">null</span><span class="tsd-signature-symbol">]</span></li>
+					</ul>
+					<ul class="tsd-descriptions">
+						<li class="tsd-description">
+							<aside class="tsd-sources">
+								<ul>
+									<li>Defined in commands/operate.ts:11</li>
+								</ul>
+							</aside>
+							<h4 class="tsd-parameters-title">Parameters</h4>
+							<ul class="tsd-parameters">
+								<li>
+									<h5>msg: <span class="tsd-signature-type">Record</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">&gt;</span></h5>
+								</li>
+							</ul>
+							<h4 class="tsd-returns-title">Returns <span class="tsd-signature-symbol">[</span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">null</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">]</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-symbol">[</span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">null</span><span class="tsd-signature-symbol">]</span></h4>
+						</li>
+					</ul>
+				</section>
+				<section class="tsd-panel tsd-member tsd-kind-function tsd-parent-kind-module tsd-is-not-exported">
+					<a name="encode" class="tsd-anchor"></a>
+					<h3><span class="tsd-flag ts-flagConst">Const</span> encode</h3>
+					<ul class="tsd-signatures tsd-kind-function tsd-parent-kind-module tsd-is-not-exported">
+						<li class="tsd-signature tsd-kind-icon">encode<span class="tsd-signature-symbol">(</span>__namedParameters<span class="tsd-signature-symbol">: </span><span class="tsd-signature-symbol">{ </span>input<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">; </span>operateID<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">; </span>path<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol"> }</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-symbol">{ </span>lookup<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">"Msg"</span><span class="tsd-signature-symbol">; </span>body<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">object</span><span class="tsd-signature-symbol">; </span>header<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">object</span><span class="tsd-signature-symbol"> }</span></li>
+					</ul>
+					<ul class="tsd-descriptions">
+						<li class="tsd-description">
+							<aside class="tsd-sources">
+								<ul>
+									<li>Defined in commands/operate.ts:20</li>
+								</ul>
+							</aside>
+							<h4 class="tsd-parameters-title">Parameters</h4>
+							<ul class="tsd-parameters">
+								<li>
+									<h5>__namedParameters: <span class="tsd-signature-symbol">{ </span>input<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">; </span>operateID<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">; </span>path<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol"> }</span></h5>
+									<ul class="tsd-parameters">
+										<li class="tsd-parameter">
+											<h5>input<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">any</span></h5>
+										</li>
+										<li class="tsd-parameter">
+											<h5>operateID<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">any</span></h5>
+										</li>
+										<li class="tsd-parameter">
+											<h5>path<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">any</span></h5>
+										</li>
+									</ul>
+								</li>
+							</ul>
+							<h4 class="tsd-returns-title">Returns <span class="tsd-signature-symbol">{ </span>lookup<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">"Msg"</span><span class="tsd-signature-symbol">; </span>body<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">object</span><span class="tsd-signature-symbol">; </span>header<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">object</span><span class="tsd-signature-symbol"> }</span></h4>
+							<ul class="tsd-parameters">
+								<li class="tsd-parameter">
+									<h5>lookup<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">"Msg"</span></h5>
+								</li>
+								<li class="tsd-parameter">
+									<h5>body<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">object</span></h5>
+									<ul class="tsd-parameters">
+										<li class="tsd-parameter">
+											<h5>lookup<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">"Body"</span></h5>
+										</li>
+										<li class="tsd-parameter">
+											<h5>request<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">object</span></h5>
+											<ul class="tsd-parameters">
+												<li class="tsd-parameter">
+													<h5>lookup<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">"Request"</span></h5>
+												</li>
+												<li class="tsd-parameter">
+													<h5>operate<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">object</span></h5>
+													<ul class="tsd-parameters">
+														<li class="tsd-parameter">
+															<h5>command<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">any</span></h5>
+														</li>
+														<li class="tsd-parameter">
+															<h5>command<wbr>Key<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span></h5>
+														</li>
+														<li class="tsd-parameter">
+															<h5>input<wbr>Args<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">any</span></h5>
+														</li>
+														<li class="tsd-parameter">
+															<h5>send<wbr>Resp<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">true</span></h5>
+														</li>
+													</ul>
+												</li>
+											</ul>
+										</li>
+									</ul>
+								</li>
+								<li class="tsd-parameter">
+									<h5>header<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">object</span></h5>
+									<ul class="tsd-parameters">
+										<li class="tsd-parameter">
+											<h5>lookup<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">"Header"</span></h5>
+										</li>
+										<li class="tsd-parameter">
+											<h5>msg<wbr>Id<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">any</span></h5>
+										</li>
+										<li class="tsd-parameter">
+											<h5>msg<wbr>Type<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">"OPERATE"</span></h5>
+										</li>
+									</ul>
+								</li>
+							</ul>
+						</li>
+					</ul>
+				</section>
+				<section class="tsd-panel tsd-member tsd-kind-function tsd-parent-kind-module tsd-is-not-exported">
+					<a name="make" class="tsd-anchor"></a>
+					<h3><span class="tsd-flag ts-flagConst">Const</span> make</h3>
+					<ul class="tsd-signatures tsd-kind-function tsd-parent-kind-module tsd-is-not-exported">
+						<li class="tsd-signature tsd-kind-icon">make<span class="tsd-signature-symbol">(</span>call<span class="tsd-signature-symbol">: </span><a href="_types_.html#callfn" class="tsd-signature-type">CallFn</a><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="_types_.html#operatecommand" class="tsd-signature-type">OperateCommand</a></li>
+					</ul>
+					<ul class="tsd-descriptions">
+						<li class="tsd-description">
+							<aside class="tsd-sources">
+								<ul>
+									<li>Defined in commands/operate.ts:43</li>
+								</ul>
+							</aside>
+							<h4 class="tsd-parameters-title">Parameters</h4>
+							<ul class="tsd-parameters">
+								<li>
+									<h5>call: <a href="_types_.html#callfn" class="tsd-signature-type">CallFn</a></h5>
+								</li>
+							</ul>
+							<h4 class="tsd-returns-title">Returns <a href="_types_.html#operatecommand" class="tsd-signature-type">OperateCommand</a></h4>
+						</li>
+					</ul>
+				</section>
+			</section>
+		</div>
+		<div class="col-4 col-menu menu-sticky-wrap menu-highlight">
+			<nav class="tsd-navigation primary">
+				<ul>
+					<li class="globals  ">
+						<a href="../globals.html"><em>Globals</em></a>
+					</li>
+					<li class="label tsd-is-external">
+						<span>Internals</span>
+					</li>
+					<li class=" tsd-kind-module">
+						<a href="_commands_add_.html">&quot;commands/add&quot;</a>
+					</li>
+					<li class=" tsd-kind-module">
+						<a href="_commands_del_.html">&quot;commands/del&quot;</a>
+					</li>
+					<li class=" tsd-kind-module">
+						<a href="_commands_get_.html">&quot;commands/get&quot;</a>
+					</li>
+					<li class=" tsd-kind-module">
+						<a href="_commands_index_.html">&quot;commands/index&quot;</a>
+					</li>
+					<li class="current tsd-kind-module">
+						<a href="_commands_operate_.html">&quot;commands/operate&quot;</a>
+					</li>
+					<li class=" tsd-kind-module">
+						<a href="_commands_recipes_resolve_.html">&quot;commands/recipes/resolve&quot;</a>
+					</li>
+					<li class=" tsd-kind-module">
+						<a href="_commands_set_.html">&quot;commands/set&quot;</a>
+					</li>
+					<li class=" tsd-kind-module">
+						<a href="_commands_util_.html">&quot;commands/util&quot;</a>
+					</li>
+					<li class=" tsd-kind-module">
+						<a href="_index_.html">&quot;index&quot;</a>
+					</li>
+					<li class=" tsd-kind-module">
+						<a href="_types_.html">&quot;types&quot;</a>
+					</li>
+					<li class=" tsd-kind-module">
+						<a href="_util_.html">&quot;util&quot;</a>
+					</li>
+					<li class="label tsd-is-external">
+						<span>Externals</span>
+					</li>
+					<li class=" tsd-kind-module tsd-is-external">
+						<a href="_specs_usp_msg_1_1_.html">&quot;specs/usp-<wbr>msg-<wbr>1-1&quot;</a>
+					</li>
+					<li class=" tsd-kind-module tsd-is-external">
+						<a href="_specs_usp_record_1_1_.html">&quot;specs/usp-<wbr>record-<wbr>1-1&quot;</a>
+					</li>
+				</ul>
+			</nav>
+			<nav class="tsd-navigation secondary menu-sticky">
+				<ul class="before-current">
+					<li class=" tsd-kind-variable tsd-parent-kind-module tsd-is-not-exported">
+						<a href="_commands_operate_.html#operatesubscriptionpath" class="tsd-kind-icon">operate<wbr>Subscription<wbr>Path</a>
+					</li>
+					<li class=" tsd-kind-function tsd-parent-kind-module tsd-is-not-exported">
+						<a href="_commands_operate_.html#decode" class="tsd-kind-icon">decode</a>
+					</li>
+					<li class=" tsd-kind-function tsd-parent-kind-module tsd-is-not-exported">
+						<a href="_commands_operate_.html#encode" class="tsd-kind-icon">encode</a>
+					</li>
+					<li class=" tsd-kind-function tsd-parent-kind-module tsd-is-not-exported">
+						<a href="_commands_operate_.html#make" class="tsd-kind-icon">make</a>
+					</li>
+				</ul>
+			</nav>
+		</div>
+	</div>
+</div>
+<footer class="with-border-bottom">
+	<div class="container">
+		<h2>Legend</h2>
+		<div class="tsd-legend-group">
+			<ul class="tsd-legend">
+				<li class="tsd-kind-variable"><span class="tsd-kind-icon">Variable</span></li>
+				<li class="tsd-kind-function"><span class="tsd-kind-icon">Function</span></li>
+				<li class="tsd-kind-type-alias"><span class="tsd-kind-icon">Type alias</span></li>
+			</ul>
+			<ul class="tsd-legend">
+				<li class="tsd-kind-interface"><span class="tsd-kind-icon">Interface</span></li>
+			</ul>
+		</div>
+	</div>
+</footer>
+<div class="container tsd-generator">
+	<p>Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p>
+</div>
+<div class="overlay"></div>
+<script src="../assets/js/main.js"></script>
+</body>
+</html>
\ No newline at end of file
diff --git a/public/modules/_commands_recipes_resolve_.html b/public/modules/_commands_recipes_resolve_.html
new file mode 100644
index 0000000000000000000000000000000000000000..247fdba45be03b435bec2a2926571bcf5af9ebc8
--- /dev/null
+++ b/public/modules/_commands_recipes_resolve_.html
@@ -0,0 +1,307 @@
+<!doctype html>
+<html class="default no-js">
+<head>
+	<meta charset="utf-8">
+	<meta http-equiv="X-UA-Compatible" content="IE=edge">
+	<title>&quot;commands/recipes/resolve&quot; | usp-js</title>
+	<meta name="description" content="Documentation for usp-js">
+	<meta name="viewport" content="width=device-width, initial-scale=1">
+	<link rel="stylesheet" href="../assets/css/main.css">
+</head>
+<body>
+<header>
+	<div class="tsd-page-toolbar">
+		<div class="container">
+			<div class="table-wrap">
+				<div class="table-cell" id="tsd-search" data-index="../assets/js/search.json" data-base="..">
+					<div class="field">
+						<label for="tsd-search-field" class="tsd-widget search no-caption">Search</label>
+						<input id="tsd-search-field" type="text" />
+					</div>
+					<ul class="results">
+						<li class="state loading">Preparing search index...</li>
+						<li class="state failure">The search index is not available</li>
+					</ul>
+					<a href="../index.html" class="title">usp-js</a>
+				</div>
+				<div class="table-cell" id="tsd-widgets">
+					<div id="tsd-filter">
+						<a href="#" class="tsd-widget options no-caption" data-toggle="options">Options</a>
+						<div class="tsd-filter-group">
+							<div class="tsd-select" id="tsd-filter-visibility">
+								<span class="tsd-select-label">All</span>
+								<ul class="tsd-select-list">
+									<li data-value="public">Public</li>
+									<li data-value="protected">Public/Protected</li>
+									<li data-value="private" class="selected">All</li>
+								</ul>
+							</div>
+							<input type="checkbox" id="tsd-filter-inherited" checked />
+							<label class="tsd-widget" for="tsd-filter-inherited">Inherited</label>
+							<input type="checkbox" id="tsd-filter-externals" checked />
+							<label class="tsd-widget" for="tsd-filter-externals">Externals</label>
+							<input type="checkbox" id="tsd-filter-only-exported" />
+							<label class="tsd-widget" for="tsd-filter-only-exported">Only exported</label>
+						</div>
+					</div>
+					<a href="#" class="tsd-widget menu no-caption" data-toggle="menu">Menu</a>
+				</div>
+			</div>
+		</div>
+	</div>
+	<div class="tsd-page-title">
+		<div class="container">
+			<ul class="tsd-breadcrumb">
+				<li>
+					<a href="../globals.html">Globals</a>
+				</li>
+				<li>
+					<a href="_commands_recipes_resolve_.html">&quot;commands/recipes/resolve&quot;</a>
+				</li>
+			</ul>
+			<h1>Module &quot;commands/recipes/resolve&quot;</h1>
+		</div>
+	</div>
+</header>
+<div class="container container-main">
+	<div class="row">
+		<div class="col-8 col-content">
+			<section class="tsd-panel-group tsd-index-group">
+				<h2>Index</h2>
+				<section class="tsd-panel tsd-index-panel">
+					<div class="tsd-index-content">
+						<section class="tsd-index-section tsd-is-not-exported">
+							<h3>Functions</h3>
+							<ul class="tsd-index-list">
+								<li class="tsd-kind-function tsd-parent-kind-module tsd-is-not-exported"><a href="_commands_recipes_resolve_.html#adddot" class="tsd-kind-icon">add<wbr>Dot</a></li>
+								<li class="tsd-kind-function tsd-parent-kind-module tsd-is-not-exported"><a href="_commands_recipes_resolve_.html#isreference" class="tsd-kind-icon">is<wbr>Reference</a></li>
+								<li class="tsd-kind-function tsd-parent-kind-module tsd-is-not-exported"><a href="_commands_recipes_resolve_.html#make" class="tsd-kind-icon">make</a></li>
+								<li class="tsd-kind-function tsd-parent-kind-module tsd-is-not-exported"><a href="_commands_recipes_resolve_.html#resolvereferences" class="tsd-kind-icon">resolve<wbr>References</a></li>
+								<li class="tsd-kind-function tsd-parent-kind-module tsd-is-not-exported"><a href="_commands_recipes_resolve_.html#splitreference" class="tsd-kind-icon">split<wbr>Reference</a></li>
+							</ul>
+						</section>
+					</div>
+				</section>
+			</section>
+			<section class="tsd-panel-group tsd-member-group tsd-is-not-exported">
+				<h2>Functions</h2>
+				<section class="tsd-panel tsd-member tsd-kind-function tsd-parent-kind-module tsd-is-not-exported">
+					<a name="adddot" class="tsd-anchor"></a>
+					<h3><span class="tsd-flag ts-flagConst">Const</span> add<wbr>Dot</h3>
+					<ul class="tsd-signatures tsd-kind-function tsd-parent-kind-module tsd-is-not-exported">
+						<li class="tsd-signature tsd-kind-icon">add<wbr>Dot<span class="tsd-signature-symbol">(</span>s<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span></li>
+					</ul>
+					<ul class="tsd-descriptions">
+						<li class="tsd-description">
+							<aside class="tsd-sources">
+								<ul>
+									<li>Defined in commands/recipes/resolve.ts:5</li>
+								</ul>
+							</aside>
+							<h4 class="tsd-parameters-title">Parameters</h4>
+							<ul class="tsd-parameters">
+								<li>
+									<h5>s: <span class="tsd-signature-type">string</span></h5>
+								</li>
+							</ul>
+							<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">string</span></h4>
+						</li>
+					</ul>
+				</section>
+				<section class="tsd-panel tsd-member tsd-kind-function tsd-parent-kind-module tsd-is-not-exported">
+					<a name="isreference" class="tsd-anchor"></a>
+					<h3><span class="tsd-flag ts-flagConst">Const</span> is<wbr>Reference</h3>
+					<ul class="tsd-signatures tsd-kind-function tsd-parent-kind-module tsd-is-not-exported">
+						<li class="tsd-signature tsd-kind-icon">is<wbr>Reference<span class="tsd-signature-symbol">(</span>s<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">boolean</span></li>
+					</ul>
+					<ul class="tsd-descriptions">
+						<li class="tsd-description">
+							<aside class="tsd-sources">
+								<ul>
+									<li>Defined in commands/recipes/resolve.ts:4</li>
+								</ul>
+							</aside>
+							<h4 class="tsd-parameters-title">Parameters</h4>
+							<ul class="tsd-parameters">
+								<li>
+									<h5>s: <span class="tsd-signature-type">string</span></h5>
+								</li>
+							</ul>
+							<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4>
+						</li>
+					</ul>
+				</section>
+				<section class="tsd-panel tsd-member tsd-kind-function tsd-parent-kind-module tsd-is-not-exported">
+					<a name="make" class="tsd-anchor"></a>
+					<h3><span class="tsd-flag ts-flagConst">Const</span> make</h3>
+					<ul class="tsd-signatures tsd-kind-function tsd-parent-kind-module tsd-is-not-exported">
+						<li class="tsd-signature tsd-kind-icon">make<span class="tsd-signature-symbol">(</span>call<span class="tsd-signature-symbol">: </span><a href="_types_.html#callfn" class="tsd-signature-type">CallFn</a><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="_types_.html#resolverecipe" class="tsd-signature-type">ResolveRecipe</a></li>
+					</ul>
+					<ul class="tsd-descriptions">
+						<li class="tsd-description">
+							<aside class="tsd-sources">
+								<ul>
+									<li>Defined in commands/recipes/resolve.ts:29</li>
+								</ul>
+							</aside>
+							<h4 class="tsd-parameters-title">Parameters</h4>
+							<ul class="tsd-parameters">
+								<li>
+									<h5>call: <a href="_types_.html#callfn" class="tsd-signature-type">CallFn</a></h5>
+								</li>
+							</ul>
+							<h4 class="tsd-returns-title">Returns <a href="_types_.html#resolverecipe" class="tsd-signature-type">ResolveRecipe</a></h4>
+						</li>
+					</ul>
+				</section>
+				<section class="tsd-panel tsd-member tsd-kind-function tsd-parent-kind-module tsd-is-not-exported">
+					<a name="resolvereferences" class="tsd-anchor"></a>
+					<h3><span class="tsd-flag ts-flagConst">Const</span> resolve<wbr>References</h3>
+					<ul class="tsd-signatures tsd-kind-function tsd-parent-kind-module tsd-is-not-exported">
+						<li class="tsd-signature tsd-kind-icon">resolve<wbr>References<span class="tsd-signature-symbol">(</span>msg<span class="tsd-signature-symbol">: </span><a href="_types_.html#getreturn" class="tsd-signature-type">GetReturn</a>, call<span class="tsd-signature-symbol">: </span><a href="_types_.html#callfn" class="tsd-signature-type">CallFn</a>, level<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><a href="_types_.html#getreturn" class="tsd-signature-type">GetReturn</a><span class="tsd-signature-symbol">&gt;</span></li>
+					</ul>
+					<ul class="tsd-descriptions">
+						<li class="tsd-description">
+							<aside class="tsd-sources">
+								<ul>
+									<li>Defined in commands/recipes/resolve.ts:7</li>
+								</ul>
+							</aside>
+							<h4 class="tsd-parameters-title">Parameters</h4>
+							<ul class="tsd-parameters">
+								<li>
+									<h5>msg: <a href="_types_.html#getreturn" class="tsd-signature-type">GetReturn</a></h5>
+								</li>
+								<li>
+									<h5>call: <a href="_types_.html#callfn" class="tsd-signature-type">CallFn</a></h5>
+								</li>
+								<li>
+									<h5>level: <span class="tsd-signature-type">number</span></h5>
+								</li>
+							</ul>
+							<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><a href="_types_.html#getreturn" class="tsd-signature-type">GetReturn</a><span class="tsd-signature-symbol">&gt;</span></h4>
+						</li>
+					</ul>
+				</section>
+				<section class="tsd-panel tsd-member tsd-kind-function tsd-parent-kind-module tsd-is-not-exported">
+					<a name="splitreference" class="tsd-anchor"></a>
+					<h3><span class="tsd-flag ts-flagConst">Const</span> split<wbr>Reference</h3>
+					<ul class="tsd-signatures tsd-kind-function tsd-parent-kind-module tsd-is-not-exported">
+						<li class="tsd-signature tsd-kind-icon">split<wbr>Reference<span class="tsd-signature-symbol">(</span>s<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">[]</span></li>
+					</ul>
+					<ul class="tsd-descriptions">
+						<li class="tsd-description">
+							<aside class="tsd-sources">
+								<ul>
+									<li>Defined in commands/recipes/resolve.ts:3</li>
+								</ul>
+							</aside>
+							<h4 class="tsd-parameters-title">Parameters</h4>
+							<ul class="tsd-parameters">
+								<li>
+									<h5>s: <span class="tsd-signature-type">string</span></h5>
+								</li>
+							</ul>
+							<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">[]</span></h4>
+						</li>
+					</ul>
+				</section>
+			</section>
+		</div>
+		<div class="col-4 col-menu menu-sticky-wrap menu-highlight">
+			<nav class="tsd-navigation primary">
+				<ul>
+					<li class="globals  ">
+						<a href="../globals.html"><em>Globals</em></a>
+					</li>
+					<li class="label tsd-is-external">
+						<span>Internals</span>
+					</li>
+					<li class=" tsd-kind-module">
+						<a href="_commands_add_.html">&quot;commands/add&quot;</a>
+					</li>
+					<li class=" tsd-kind-module">
+						<a href="_commands_del_.html">&quot;commands/del&quot;</a>
+					</li>
+					<li class=" tsd-kind-module">
+						<a href="_commands_get_.html">&quot;commands/get&quot;</a>
+					</li>
+					<li class=" tsd-kind-module">
+						<a href="_commands_index_.html">&quot;commands/index&quot;</a>
+					</li>
+					<li class=" tsd-kind-module">
+						<a href="_commands_operate_.html">&quot;commands/operate&quot;</a>
+					</li>
+					<li class="current tsd-kind-module">
+						<a href="_commands_recipes_resolve_.html">&quot;commands/recipes/resolve&quot;</a>
+					</li>
+					<li class=" tsd-kind-module">
+						<a href="_commands_set_.html">&quot;commands/set&quot;</a>
+					</li>
+					<li class=" tsd-kind-module">
+						<a href="_commands_util_.html">&quot;commands/util&quot;</a>
+					</li>
+					<li class=" tsd-kind-module">
+						<a href="_index_.html">&quot;index&quot;</a>
+					</li>
+					<li class=" tsd-kind-module">
+						<a href="_types_.html">&quot;types&quot;</a>
+					</li>
+					<li class=" tsd-kind-module">
+						<a href="_util_.html">&quot;util&quot;</a>
+					</li>
+					<li class="label tsd-is-external">
+						<span>Externals</span>
+					</li>
+					<li class=" tsd-kind-module tsd-is-external">
+						<a href="_specs_usp_msg_1_1_.html">&quot;specs/usp-<wbr>msg-<wbr>1-1&quot;</a>
+					</li>
+					<li class=" tsd-kind-module tsd-is-external">
+						<a href="_specs_usp_record_1_1_.html">&quot;specs/usp-<wbr>record-<wbr>1-1&quot;</a>
+					</li>
+				</ul>
+			</nav>
+			<nav class="tsd-navigation secondary menu-sticky">
+				<ul class="before-current">
+					<li class=" tsd-kind-function tsd-parent-kind-module tsd-is-not-exported">
+						<a href="_commands_recipes_resolve_.html#adddot" class="tsd-kind-icon">add<wbr>Dot</a>
+					</li>
+					<li class=" tsd-kind-function tsd-parent-kind-module tsd-is-not-exported">
+						<a href="_commands_recipes_resolve_.html#isreference" class="tsd-kind-icon">is<wbr>Reference</a>
+					</li>
+					<li class=" tsd-kind-function tsd-parent-kind-module tsd-is-not-exported">
+						<a href="_commands_recipes_resolve_.html#make" class="tsd-kind-icon">make</a>
+					</li>
+					<li class=" tsd-kind-function tsd-parent-kind-module tsd-is-not-exported">
+						<a href="_commands_recipes_resolve_.html#resolvereferences" class="tsd-kind-icon">resolve<wbr>References</a>
+					</li>
+					<li class=" tsd-kind-function tsd-parent-kind-module tsd-is-not-exported">
+						<a href="_commands_recipes_resolve_.html#splitreference" class="tsd-kind-icon">split<wbr>Reference</a>
+					</li>
+				</ul>
+			</nav>
+		</div>
+	</div>
+</div>
+<footer class="with-border-bottom">
+	<div class="container">
+		<h2>Legend</h2>
+		<div class="tsd-legend-group">
+			<ul class="tsd-legend">
+				<li class="tsd-kind-variable"><span class="tsd-kind-icon">Variable</span></li>
+				<li class="tsd-kind-function"><span class="tsd-kind-icon">Function</span></li>
+				<li class="tsd-kind-type-alias"><span class="tsd-kind-icon">Type alias</span></li>
+			</ul>
+			<ul class="tsd-legend">
+				<li class="tsd-kind-interface"><span class="tsd-kind-icon">Interface</span></li>
+			</ul>
+		</div>
+	</div>
+</footer>
+<div class="container tsd-generator">
+	<p>Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p>
+</div>
+<div class="overlay"></div>
+<script src="../assets/js/main.js"></script>
+</body>
+</html>
\ No newline at end of file
diff --git a/public/modules/_commands_set_.html b/public/modules/_commands_set_.html
new file mode 100644
index 0000000000000000000000000000000000000000..76178c15e14f51f9a5c804092101257cca88e844
--- /dev/null
+++ b/public/modules/_commands_set_.html
@@ -0,0 +1,301 @@
+<!doctype html>
+<html class="default no-js">
+<head>
+	<meta charset="utf-8">
+	<meta http-equiv="X-UA-Compatible" content="IE=edge">
+	<title>&quot;commands/set&quot; | usp-js</title>
+	<meta name="description" content="Documentation for usp-js">
+	<meta name="viewport" content="width=device-width, initial-scale=1">
+	<link rel="stylesheet" href="../assets/css/main.css">
+</head>
+<body>
+<header>
+	<div class="tsd-page-toolbar">
+		<div class="container">
+			<div class="table-wrap">
+				<div class="table-cell" id="tsd-search" data-index="../assets/js/search.json" data-base="..">
+					<div class="field">
+						<label for="tsd-search-field" class="tsd-widget search no-caption">Search</label>
+						<input id="tsd-search-field" type="text" />
+					</div>
+					<ul class="results">
+						<li class="state loading">Preparing search index...</li>
+						<li class="state failure">The search index is not available</li>
+					</ul>
+					<a href="../index.html" class="title">usp-js</a>
+				</div>
+				<div class="table-cell" id="tsd-widgets">
+					<div id="tsd-filter">
+						<a href="#" class="tsd-widget options no-caption" data-toggle="options">Options</a>
+						<div class="tsd-filter-group">
+							<div class="tsd-select" id="tsd-filter-visibility">
+								<span class="tsd-select-label">All</span>
+								<ul class="tsd-select-list">
+									<li data-value="public">Public</li>
+									<li data-value="protected">Public/Protected</li>
+									<li data-value="private" class="selected">All</li>
+								</ul>
+							</div>
+							<input type="checkbox" id="tsd-filter-inherited" checked />
+							<label class="tsd-widget" for="tsd-filter-inherited">Inherited</label>
+							<input type="checkbox" id="tsd-filter-externals" checked />
+							<label class="tsd-widget" for="tsd-filter-externals">Externals</label>
+							<input type="checkbox" id="tsd-filter-only-exported" />
+							<label class="tsd-widget" for="tsd-filter-only-exported">Only exported</label>
+						</div>
+					</div>
+					<a href="#" class="tsd-widget menu no-caption" data-toggle="menu">Menu</a>
+				</div>
+			</div>
+		</div>
+	</div>
+	<div class="tsd-page-title">
+		<div class="container">
+			<ul class="tsd-breadcrumb">
+				<li>
+					<a href="../globals.html">Globals</a>
+				</li>
+				<li>
+					<a href="_commands_set_.html">&quot;commands/set&quot;</a>
+				</li>
+			</ul>
+			<h1>Module &quot;commands/set&quot;</h1>
+		</div>
+	</div>
+</header>
+<div class="container container-main">
+	<div class="row">
+		<div class="col-8 col-content">
+			<section class="tsd-panel-group tsd-index-group">
+				<h2>Index</h2>
+				<section class="tsd-panel tsd-index-panel">
+					<div class="tsd-index-content">
+						<section class="tsd-index-section tsd-is-not-exported">
+							<h3>Functions</h3>
+							<ul class="tsd-index-list">
+								<li class="tsd-kind-function tsd-parent-kind-module tsd-is-not-exported"><a href="_commands_set_.html#decode" class="tsd-kind-icon">decode</a></li>
+								<li class="tsd-kind-function tsd-parent-kind-module tsd-is-not-exported"><a href="_commands_set_.html#encode" class="tsd-kind-icon">encode</a></li>
+								<li class="tsd-kind-function tsd-parent-kind-module tsd-is-not-exported"><a href="_commands_set_.html#make" class="tsd-kind-icon">make</a></li>
+							</ul>
+						</section>
+					</div>
+				</section>
+			</section>
+			<section class="tsd-panel-group tsd-member-group tsd-is-not-exported">
+				<h2>Functions</h2>
+				<section class="tsd-panel tsd-member tsd-kind-function tsd-parent-kind-module tsd-is-not-exported">
+					<a name="decode" class="tsd-anchor"></a>
+					<h3><span class="tsd-flag ts-flagConst">Const</span> decode</h3>
+					<ul class="tsd-signatures tsd-kind-function tsd-parent-kind-module tsd-is-not-exported">
+						<li class="tsd-signature tsd-kind-icon">decode<span class="tsd-signature-symbol">(</span>msg<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Record</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">&gt;</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-symbol">[</span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">null</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">]</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-symbol">[</span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">null</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">null</span><span class="tsd-signature-symbol">]</span></li>
+					</ul>
+					<ul class="tsd-descriptions">
+						<li class="tsd-description">
+							<aside class="tsd-sources">
+								<ul>
+									<li>Defined in commands/set.ts:4</li>
+								</ul>
+							</aside>
+							<h4 class="tsd-parameters-title">Parameters</h4>
+							<ul class="tsd-parameters">
+								<li>
+									<h5>msg: <span class="tsd-signature-type">Record</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">&gt;</span></h5>
+								</li>
+							</ul>
+							<h4 class="tsd-returns-title">Returns <span class="tsd-signature-symbol">[</span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">null</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">]</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-symbol">[</span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">null</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">null</span><span class="tsd-signature-symbol">]</span></h4>
+						</li>
+					</ul>
+				</section>
+				<section class="tsd-panel tsd-member tsd-kind-function tsd-parent-kind-module tsd-is-not-exported">
+					<a name="encode" class="tsd-anchor"></a>
+					<h3><span class="tsd-flag ts-flagConst">Const</span> encode</h3>
+					<ul class="tsd-signatures tsd-kind-function tsd-parent-kind-module tsd-is-not-exported">
+						<li class="tsd-signature tsd-kind-icon">encode<span class="tsd-signature-symbol">(</span>__namedParameters<span class="tsd-signature-symbol">: </span><span class="tsd-signature-symbol">{ </span>initialPath<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">; </span>value<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol"> }</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-symbol">{ </span>lookup<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">"Msg"</span><span class="tsd-signature-symbol">; </span>body<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">object</span><span class="tsd-signature-symbol">; </span>header<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">object</span><span class="tsd-signature-symbol"> }</span></li>
+					</ul>
+					<ul class="tsd-descriptions">
+						<li class="tsd-description">
+							<aside class="tsd-sources">
+								<ul>
+									<li>Defined in commands/set.ts:11</li>
+								</ul>
+							</aside>
+							<h4 class="tsd-parameters-title">Parameters</h4>
+							<ul class="tsd-parameters">
+								<li>
+									<h5>__namedParameters: <span class="tsd-signature-symbol">{ </span>initialPath<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">; </span>value<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol"> }</span></h5>
+									<ul class="tsd-parameters">
+										<li class="tsd-parameter">
+											<h5>initial<wbr>Path<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">any</span></h5>
+										</li>
+										<li class="tsd-parameter">
+											<h5>value<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">any</span></h5>
+										</li>
+									</ul>
+								</li>
+							</ul>
+							<h4 class="tsd-returns-title">Returns <span class="tsd-signature-symbol">{ </span>lookup<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">"Msg"</span><span class="tsd-signature-symbol">; </span>body<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">object</span><span class="tsd-signature-symbol">; </span>header<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">object</span><span class="tsd-signature-symbol"> }</span></h4>
+							<ul class="tsd-parameters">
+								<li class="tsd-parameter">
+									<h5>lookup<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">"Msg"</span></h5>
+								</li>
+								<li class="tsd-parameter">
+									<h5>body<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">object</span></h5>
+									<ul class="tsd-parameters">
+										<li class="tsd-parameter">
+											<h5>lookup<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">"Body"</span></h5>
+										</li>
+										<li class="tsd-parameter">
+											<h5>request<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">object</span></h5>
+											<ul class="tsd-parameters">
+												<li class="tsd-parameter">
+													<h5>lookup<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">"Request"</span></h5>
+												</li>
+												<li class="tsd-parameter">
+													<h5>set<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">object</span></h5>
+													<ul class="tsd-parameters">
+														<li class="tsd-parameter">
+															<h5>allow<wbr>Partial<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">true</span></h5>
+														</li>
+														<li class="tsd-parameter">
+															<h5>update<wbr>Objs<span class="tsd-signature-symbol">: </span><span class="tsd-signature-symbol">{ </span>lookup<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">"Set.UpdateObject"</span><span class="tsd-signature-symbol">; </span>objPath<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">; </span>paramSettings<span class="tsd-signature-symbol">: </span><span class="tsd-signature-symbol">{ </span>lookup<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">"Set.UpdateParamSetting"</span><span class="tsd-signature-symbol">; </span>param<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">; </span>required<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">false</span><span class="tsd-signature-symbol">; </span>value<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol"> }</span><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol"> }</span><span class="tsd-signature-symbol">[]</span></h5>
+														</li>
+													</ul>
+												</li>
+											</ul>
+										</li>
+									</ul>
+								</li>
+								<li class="tsd-parameter">
+									<h5>header<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">object</span></h5>
+									<ul class="tsd-parameters">
+										<li class="tsd-parameter">
+											<h5>lookup<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">"Header"</span></h5>
+										</li>
+										<li class="tsd-parameter">
+											<h5>msg<wbr>Id<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span></h5>
+										</li>
+										<li class="tsd-parameter">
+											<h5>msg<wbr>Type<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">"SET"</span></h5>
+										</li>
+									</ul>
+								</li>
+							</ul>
+						</li>
+					</ul>
+				</section>
+				<section class="tsd-panel tsd-member tsd-kind-function tsd-parent-kind-module tsd-is-not-exported">
+					<a name="make" class="tsd-anchor"></a>
+					<h3><span class="tsd-flag ts-flagConst">Const</span> make</h3>
+					<ul class="tsd-signatures tsd-kind-function tsd-parent-kind-module tsd-is-not-exported">
+						<li class="tsd-signature tsd-kind-icon">make<span class="tsd-signature-symbol">(</span>call<span class="tsd-signature-symbol">: </span><a href="_types_.html#callfn" class="tsd-signature-type">CallFn</a><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="_types_.html#setcommand" class="tsd-signature-type">SetCommand</a></li>
+					</ul>
+					<ul class="tsd-descriptions">
+						<li class="tsd-description">
+							<aside class="tsd-sources">
+								<ul>
+									<li>Defined in commands/set.ts:49</li>
+								</ul>
+							</aside>
+							<h4 class="tsd-parameters-title">Parameters</h4>
+							<ul class="tsd-parameters">
+								<li>
+									<h5>call: <a href="_types_.html#callfn" class="tsd-signature-type">CallFn</a></h5>
+								</li>
+							</ul>
+							<h4 class="tsd-returns-title">Returns <a href="_types_.html#setcommand" class="tsd-signature-type">SetCommand</a></h4>
+						</li>
+					</ul>
+				</section>
+			</section>
+		</div>
+		<div class="col-4 col-menu menu-sticky-wrap menu-highlight">
+			<nav class="tsd-navigation primary">
+				<ul>
+					<li class="globals  ">
+						<a href="../globals.html"><em>Globals</em></a>
+					</li>
+					<li class="label tsd-is-external">
+						<span>Internals</span>
+					</li>
+					<li class=" tsd-kind-module">
+						<a href="_commands_add_.html">&quot;commands/add&quot;</a>
+					</li>
+					<li class=" tsd-kind-module">
+						<a href="_commands_del_.html">&quot;commands/del&quot;</a>
+					</li>
+					<li class=" tsd-kind-module">
+						<a href="_commands_get_.html">&quot;commands/get&quot;</a>
+					</li>
+					<li class=" tsd-kind-module">
+						<a href="_commands_index_.html">&quot;commands/index&quot;</a>
+					</li>
+					<li class=" tsd-kind-module">
+						<a href="_commands_operate_.html">&quot;commands/operate&quot;</a>
+					</li>
+					<li class=" tsd-kind-module">
+						<a href="_commands_recipes_resolve_.html">&quot;commands/recipes/resolve&quot;</a>
+					</li>
+					<li class="current tsd-kind-module">
+						<a href="_commands_set_.html">&quot;commands/set&quot;</a>
+					</li>
+					<li class=" tsd-kind-module">
+						<a href="_commands_util_.html">&quot;commands/util&quot;</a>
+					</li>
+					<li class=" tsd-kind-module">
+						<a href="_index_.html">&quot;index&quot;</a>
+					</li>
+					<li class=" tsd-kind-module">
+						<a href="_types_.html">&quot;types&quot;</a>
+					</li>
+					<li class=" tsd-kind-module">
+						<a href="_util_.html">&quot;util&quot;</a>
+					</li>
+					<li class="label tsd-is-external">
+						<span>Externals</span>
+					</li>
+					<li class=" tsd-kind-module tsd-is-external">
+						<a href="_specs_usp_msg_1_1_.html">&quot;specs/usp-<wbr>msg-<wbr>1-1&quot;</a>
+					</li>
+					<li class=" tsd-kind-module tsd-is-external">
+						<a href="_specs_usp_record_1_1_.html">&quot;specs/usp-<wbr>record-<wbr>1-1&quot;</a>
+					</li>
+				</ul>
+			</nav>
+			<nav class="tsd-navigation secondary menu-sticky">
+				<ul class="before-current">
+					<li class=" tsd-kind-function tsd-parent-kind-module tsd-is-not-exported">
+						<a href="_commands_set_.html#decode" class="tsd-kind-icon">decode</a>
+					</li>
+					<li class=" tsd-kind-function tsd-parent-kind-module tsd-is-not-exported">
+						<a href="_commands_set_.html#encode" class="tsd-kind-icon">encode</a>
+					</li>
+					<li class=" tsd-kind-function tsd-parent-kind-module tsd-is-not-exported">
+						<a href="_commands_set_.html#make" class="tsd-kind-icon">make</a>
+					</li>
+				</ul>
+			</nav>
+		</div>
+	</div>
+</div>
+<footer class="with-border-bottom">
+	<div class="container">
+		<h2>Legend</h2>
+		<div class="tsd-legend-group">
+			<ul class="tsd-legend">
+				<li class="tsd-kind-variable"><span class="tsd-kind-icon">Variable</span></li>
+				<li class="tsd-kind-function"><span class="tsd-kind-icon">Function</span></li>
+				<li class="tsd-kind-type-alias"><span class="tsd-kind-icon">Type alias</span></li>
+			</ul>
+			<ul class="tsd-legend">
+				<li class="tsd-kind-interface"><span class="tsd-kind-icon">Interface</span></li>
+			</ul>
+		</div>
+	</div>
+</footer>
+<div class="container tsd-generator">
+	<p>Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p>
+</div>
+<div class="overlay"></div>
+<script src="../assets/js/main.js"></script>
+</body>
+</html>
\ No newline at end of file
diff --git a/public/modules/_protocol_lib_.html b/public/modules/_commands_util_.html
similarity index 55%
rename from public/modules/_protocol_lib_.html
rename to public/modules/_commands_util_.html
index d9fccd4927601a2c8edc0bbc68b9f9776714c498..a7cc0781eff59abadddeaa9455d6412e36a1637f 100644
--- a/public/modules/_protocol_lib_.html
+++ b/public/modules/_commands_util_.html
@@ -3,7 +3,7 @@
 <head>
 	<meta charset="utf-8">
 	<meta http-equiv="X-UA-Compatible" content="IE=edge">
-	<title>&quot;protocol/lib&quot; | usp-js</title>
+	<title>&quot;commands/util&quot; | usp-js</title>
 	<meta name="description" content="Documentation for usp-js">
 	<meta name="viewport" content="width=device-width, initial-scale=1">
 	<link rel="stylesheet" href="../assets/css/main.css">
@@ -56,10 +56,10 @@
 					<a href="../globals.html">Globals</a>
 				</li>
 				<li>
-					<a href="_protocol_lib_.html">&quot;protocol/lib&quot;</a>
+					<a href="_commands_util_.html">&quot;commands/util&quot;</a>
 				</li>
 			</ul>
-			<h1>Module &quot;protocol/lib&quot;</h1>
+			<h1>Module &quot;commands/util&quot;</h1>
 		</div>
 	</div>
 </header>
@@ -73,21 +73,26 @@
 						<section class="tsd-index-section tsd-is-not-exported">
 							<h3>Variables</h3>
 							<ul class="tsd-index-list">
-								<li class="tsd-kind-variable tsd-parent-kind-module tsd-is-not-exported"><a href="_protocol_lib_.html#digitdotre" class="tsd-kind-icon">digit<wbr>Dot<wbr>Re</a></li>
-								<li class="tsd-kind-variable tsd-parent-kind-module tsd-is-not-exported"><a href="_protocol_lib_.html#digitre" class="tsd-kind-icon">digit<wbr>Re</a></li>
+								<li class="tsd-kind-variable tsd-parent-kind-module tsd-is-not-exported"><a href="_commands_util_.html#digitdotre" class="tsd-kind-icon">digit<wbr>Dot<wbr>Re</a></li>
+								<li class="tsd-kind-variable tsd-parent-kind-module tsd-is-not-exported"><a href="_commands_util_.html#digitre" class="tsd-kind-icon">digit<wbr>Re</a></li>
 							</ul>
 						</section>
 						<section class="tsd-index-section ">
 							<h3>Functions</h3>
 							<ul class="tsd-index-list">
-								<li class="tsd-kind-function tsd-parent-kind-module tsd-is-not-exported"><a href="_protocol_lib_.html#_searchall" class="tsd-kind-icon">_search<wbr>All</a></li>
-								<li class="tsd-kind-function tsd-parent-kind-module tsd-is-not-exported"><a href="_protocol_lib_.html#firstisindex" class="tsd-kind-icon">first<wbr>IsIndex</a></li>
-								<li class="tsd-kind-function tsd-parent-kind-module tsd-is-not-exported"><a href="_protocol_lib_.html#isdigit" class="tsd-kind-icon">is<wbr>Digit</a></li>
-								<li class="tsd-kind-function tsd-parent-kind-module"><a href="_protocol_lib_.html#search" class="tsd-kind-icon">search</a></li>
-								<li class="tsd-kind-function tsd-parent-kind-module"><a href="_protocol_lib_.html#searchall" class="tsd-kind-icon">search<wbr>All</a></li>
-								<li class="tsd-kind-function tsd-parent-kind-module"><a href="_protocol_lib_.html#unflatten" class="tsd-kind-icon">unflatten</a></li>
-								<li class="tsd-kind-function tsd-parent-kind-module"><a href="_protocol_lib_.html#unwraparray" class="tsd-kind-icon">unwrap<wbr>Array</a></li>
-								<li class="tsd-kind-function tsd-parent-kind-module"><a href="_protocol_lib_.html#unwrapobject" class="tsd-kind-icon">unwrap<wbr>Object</a></li>
+								<li class="tsd-kind-function tsd-parent-kind-module tsd-is-not-exported"><a href="_commands_util_.html#_searchall" class="tsd-kind-icon">_search<wbr>All</a></li>
+								<li class="tsd-kind-function tsd-parent-kind-module"><a href="_commands_util_.html#encodeobject" class="tsd-kind-icon">encode<wbr>Object</a></li>
+								<li class="tsd-kind-function tsd-parent-kind-module"><a href="_commands_util_.html#encodepairs" class="tsd-kind-icon">encode<wbr>Pairs</a></li>
+								<li class="tsd-kind-function tsd-parent-kind-module"><a href="_commands_util_.html#extractcommand" class="tsd-kind-icon">extract<wbr>Command</a></li>
+								<li class="tsd-kind-function tsd-parent-kind-module tsd-is-not-exported"><a href="_commands_util_.html#firstisindex" class="tsd-kind-icon">first<wbr>IsIndex</a></li>
+								<li class="tsd-kind-function tsd-parent-kind-module tsd-is-not-exported"><a href="_commands_util_.html#isdigit" class="tsd-kind-icon">is<wbr>Digit</a></li>
+								<li class="tsd-kind-function tsd-parent-kind-module"><a href="_commands_util_.html#makebuffer" class="tsd-kind-icon">make<wbr>Buffer</a></li>
+								<li class="tsd-kind-function tsd-parent-kind-module"><a href="_commands_util_.html#search" class="tsd-kind-icon">search</a></li>
+								<li class="tsd-kind-function tsd-parent-kind-module"><a href="_commands_util_.html#searchall" class="tsd-kind-icon">search<wbr>All</a></li>
+								<li class="tsd-kind-function tsd-parent-kind-module"><a href="_commands_util_.html#unflatten" class="tsd-kind-icon">unflatten</a></li>
+								<li class="tsd-kind-function tsd-parent-kind-module"><a href="_commands_util_.html#uniq" class="tsd-kind-icon">uniq</a></li>
+								<li class="tsd-kind-function tsd-parent-kind-module"><a href="_commands_util_.html#unwraparray" class="tsd-kind-icon">unwrap<wbr>Array</a></li>
+								<li class="tsd-kind-function tsd-parent-kind-module"><a href="_commands_util_.html#unwrapobject" class="tsd-kind-icon">unwrap<wbr>Object</a></li>
 							</ul>
 						</section>
 					</div>
@@ -101,7 +106,7 @@
 					<div class="tsd-signature tsd-kind-icon">digit<wbr>Dot<wbr>Re<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">RegExp</span><span class="tsd-signature-symbol"> = /^\d+\..*$/</span></div>
 					<aside class="tsd-sources">
 						<ul>
-							<li>Defined in src/protocol/lib.ts:2</li>
+							<li>Defined in commands/util.ts:4</li>
 						</ul>
 					</aside>
 				</section>
@@ -111,7 +116,7 @@
 					<div class="tsd-signature tsd-kind-icon">digit<wbr>Re<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">RegExp</span><span class="tsd-signature-symbol"> = /^\d+$/</span></div>
 					<aside class="tsd-sources">
 						<ul>
-							<li>Defined in src/protocol/lib.ts:1</li>
+							<li>Defined in commands/util.ts:3</li>
 						</ul>
 					</aside>
 				</section>
@@ -128,7 +133,7 @@
 						<li class="tsd-description">
 							<aside class="tsd-sources">
 								<ul>
-									<li>Defined in src/protocol/lib.ts:37</li>
+									<li>Defined in commands/util.ts:38</li>
 								</ul>
 							</aside>
 							<h4 class="tsd-parameters-title">Parameters</h4>
@@ -144,6 +149,80 @@
 						</li>
 					</ul>
 				</section>
+				<section class="tsd-panel tsd-member tsd-kind-function tsd-parent-kind-module">
+					<a name="encodeobject" class="tsd-anchor"></a>
+					<h3><span class="tsd-flag ts-flagConst">Const</span> encode<wbr>Object</h3>
+					<ul class="tsd-signatures tsd-kind-function tsd-parent-kind-module">
+						<li class="tsd-signature tsd-kind-icon">encode<wbr>Object<span class="tsd-signature-symbol">(</span>value<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Record</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">&gt;</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">undefined</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol">[]</span></li>
+					</ul>
+					<ul class="tsd-descriptions">
+						<li class="tsd-description">
+							<aside class="tsd-sources">
+								<ul>
+									<li>Defined in commands/util.ts:94</li>
+								</ul>
+							</aside>
+							<h4 class="tsd-parameters-title">Parameters</h4>
+							<ul class="tsd-parameters">
+								<li>
+									<h5>value: <span class="tsd-signature-type">Record</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">&gt;</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">undefined</span></h5>
+								</li>
+							</ul>
+							<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol">[]</span></h4>
+						</li>
+					</ul>
+				</section>
+				<section class="tsd-panel tsd-member tsd-kind-function tsd-parent-kind-module">
+					<a name="encodepairs" class="tsd-anchor"></a>
+					<h3><span class="tsd-flag ts-flagConst">Const</span> encode<wbr>Pairs</h3>
+					<ul class="tsd-signatures tsd-kind-function tsd-parent-kind-module">
+						<li class="tsd-signature tsd-kind-icon">encode<wbr>Pairs<span class="tsd-signature-symbol">(</span>pairs<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol">[]</span></li>
+					</ul>
+					<ul class="tsd-descriptions">
+						<li class="tsd-description">
+							<aside class="tsd-sources">
+								<ul>
+									<li>Defined in commands/util.ts:102</li>
+								</ul>
+							</aside>
+							<h4 class="tsd-parameters-title">Parameters</h4>
+							<ul class="tsd-parameters">
+								<li>
+									<h5>pairs: <span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">[]</span></h5>
+								</li>
+							</ul>
+							<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol">[]</span></h4>
+						</li>
+					</ul>
+				</section>
+				<section class="tsd-panel tsd-member tsd-kind-function tsd-parent-kind-module">
+					<a name="extractcommand" class="tsd-anchor"></a>
+					<h3><span class="tsd-flag ts-flagConst">Const</span> extract<wbr>Command</h3>
+					<ul class="tsd-signatures tsd-kind-function tsd-parent-kind-module">
+						<li class="tsd-signature tsd-kind-icon">extract<wbr>Command<span class="tsd-signature-symbol">(</span>msg<span class="tsd-signature-symbol">: </span><span class="tsd-signature-symbol">{}</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">undefined</span></li>
+					</ul>
+					<ul class="tsd-descriptions">
+						<li class="tsd-description">
+							<aside class="tsd-sources">
+								<ul>
+									<li>Defined in commands/util.ts:49</li>
+								</ul>
+							</aside>
+							<h4 class="tsd-parameters-title">Parameters</h4>
+							<ul class="tsd-parameters">
+								<li>
+									<h5>msg: <span class="tsd-signature-symbol">{}</span></h5>
+									<ul class="tsd-parameters">
+										<li class="tsd-parameter-index-signature">
+											<h5><span class="tsd-signature-symbol">[</span>key: <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">]: </span><span class="tsd-signature-type">any</span></h5>
+										</li>
+									</ul>
+								</li>
+							</ul>
+							<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">undefined</span></h4>
+						</li>
+					</ul>
+				</section>
 				<section class="tsd-panel tsd-member tsd-kind-function tsd-parent-kind-module tsd-is-not-exported">
 					<a name="firstisindex" class="tsd-anchor"></a>
 					<h3><span class="tsd-flag ts-flagConst">Const</span> first<wbr>IsIndex</h3>
@@ -154,7 +233,7 @@
 						<li class="tsd-description">
 							<aside class="tsd-sources">
 								<ul>
-									<li>Defined in src/protocol/lib.ts:4</li>
+									<li>Defined in commands/util.ts:6</li>
 								</ul>
 							</aside>
 							<h4 class="tsd-parameters-title">Parameters</h4>
@@ -177,7 +256,7 @@
 						<li class="tsd-description">
 							<aside class="tsd-sources">
 								<ul>
-									<li>Defined in src/protocol/lib.ts:3</li>
+									<li>Defined in commands/util.ts:5</li>
 								</ul>
 							</aside>
 							<h4 class="tsd-parameters-title">Parameters</h4>
@@ -190,6 +269,35 @@
 						</li>
 					</ul>
 				</section>
+				<section class="tsd-panel tsd-member tsd-kind-function tsd-parent-kind-module">
+					<a name="makebuffer" class="tsd-anchor"></a>
+					<h3>make<wbr>Buffer</h3>
+					<ul class="tsd-signatures tsd-kind-function tsd-parent-kind-module">
+						<li class="tsd-signature tsd-kind-icon">make<wbr>Buffer<span class="tsd-signature-symbol">(</span>rootRecord<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Root</span>, payload<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">any</span>, options<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Record</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">&gt;</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">any</span></li>
+					</ul>
+					<ul class="tsd-descriptions">
+						<li class="tsd-description">
+							<aside class="tsd-sources">
+								<ul>
+									<li>Defined in commands/util.ts:66</li>
+								</ul>
+							</aside>
+							<h4 class="tsd-parameters-title">Parameters</h4>
+							<ul class="tsd-parameters">
+								<li>
+									<h5>rootRecord: <span class="tsd-signature-type">Root</span></h5>
+								</li>
+								<li>
+									<h5>payload: <span class="tsd-signature-type">any</span></h5>
+								</li>
+								<li>
+									<h5>options: <span class="tsd-signature-type">Record</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">&gt;</span></h5>
+								</li>
+							</ul>
+							<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">any</span></h4>
+						</li>
+					</ul>
+				</section>
 				<section class="tsd-panel tsd-member tsd-kind-function tsd-parent-kind-module">
 					<a name="search" class="tsd-anchor"></a>
 					<h3><span class="tsd-flag ts-flagConst">Const</span> search</h3>
@@ -200,14 +308,9 @@
 						<li class="tsd-description">
 							<aside class="tsd-sources">
 								<ul>
-									<li>Defined in src/protocol/lib.ts:28</li>
+									<li>Defined in commands/util.ts:29</li>
 								</ul>
 							</aside>
-							<div class="tsd-comment tsd-typography">
-								<div class="lead">
-									<p>Find first attribute which has the given key, undefined if not found</p>
-								</div>
-							</div>
 							<h4 class="tsd-parameters-title">Parameters</h4>
 							<ul class="tsd-parameters">
 								<li>
@@ -231,14 +334,9 @@
 						<li class="tsd-description">
 							<aside class="tsd-sources">
 								<ul>
-									<li>Defined in src/protocol/lib.ts:46</li>
+									<li>Defined in commands/util.ts:46</li>
 								</ul>
 							</aside>
-							<div class="tsd-comment tsd-typography">
-								<div class="lead">
-									<p>Find all attributes which have the given key, empty array if none found</p>
-								</div>
-							</div>
 							<h4 class="tsd-parameters-title">Parameters</h4>
 							<ul class="tsd-parameters">
 								<li>
@@ -262,7 +360,7 @@
 						<li class="tsd-description">
 							<aside class="tsd-sources">
 								<ul>
-									<li>Defined in src/protocol/lib.ts:7</li>
+									<li>Defined in commands/util.ts:9</li>
 								</ul>
 							</aside>
 							<h4 class="tsd-parameters-title">Parameters</h4>
@@ -277,6 +375,29 @@
 						</li>
 					</ul>
 				</section>
+				<section class="tsd-panel tsd-member tsd-kind-function tsd-parent-kind-module">
+					<a name="uniq" class="tsd-anchor"></a>
+					<h3><span class="tsd-flag ts-flagConst">Const</span> uniq</h3>
+					<ul class="tsd-signatures tsd-kind-function tsd-parent-kind-module">
+						<li class="tsd-signature tsd-kind-icon">uniq<span class="tsd-signature-symbol">(</span>initial<span class="tsd-signature-symbol">?: </span><span class="tsd-signature-type">undefined</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span></li>
+					</ul>
+					<ul class="tsd-descriptions">
+						<li class="tsd-description">
+							<aside class="tsd-sources">
+								<ul>
+									<li>Defined in commands/util.ts:88</li>
+								</ul>
+							</aside>
+							<h4 class="tsd-parameters-title">Parameters</h4>
+							<ul class="tsd-parameters">
+								<li>
+									<h5><span class="tsd-flag ts-flagOptional">Optional</span> initial: <span class="tsd-signature-type">undefined</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">string</span></h5>
+								</li>
+							</ul>
+							<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">string</span></h4>
+						</li>
+					</ul>
+				</section>
 				<section class="tsd-panel tsd-member tsd-kind-function tsd-parent-kind-module">
 					<a name="unwraparray" class="tsd-anchor"></a>
 					<h3><span class="tsd-flag ts-flagConst">Const</span> unwrap<wbr>Array</h3>
@@ -287,7 +408,7 @@
 						<li class="tsd-description">
 							<aside class="tsd-sources">
 								<ul>
-									<li>Defined in src/protocol/lib.ts:58</li>
+									<li>Defined in commands/util.ts:63</li>
 								</ul>
 							</aside>
 							<div class="tsd-comment tsd-typography">
@@ -315,7 +436,7 @@
 						<li class="tsd-description">
 							<aside class="tsd-sources">
 								<ul>
-									<li>Defined in src/protocol/lib.ts:50</li>
+									<li>Defined in commands/util.ts:55</li>
 								</ul>
 							</aside>
 							<div class="tsd-comment tsd-typography">
@@ -341,57 +462,99 @@
 					<li class="globals  ">
 						<a href="../globals.html"><em>Globals</em></a>
 					</li>
+					<li class="label tsd-is-external">
+						<span>Internals</span>
+					</li>
 					<li class=" tsd-kind-module">
-						<a href="_index_.html">&quot;index&quot;</a>
+						<a href="_commands_add_.html">&quot;commands/add&quot;</a>
+					</li>
+					<li class=" tsd-kind-module">
+						<a href="_commands_del_.html">&quot;commands/del&quot;</a>
+					</li>
+					<li class=" tsd-kind-module">
+						<a href="_commands_get_.html">&quot;commands/get&quot;</a>
+					</li>
+					<li class=" tsd-kind-module">
+						<a href="_commands_index_.html">&quot;commands/index&quot;</a>
 					</li>
 					<li class=" tsd-kind-module">
-						<a href="_lib_.html">&quot;lib&quot;</a>
+						<a href="_commands_operate_.html">&quot;commands/operate&quot;</a>
 					</li>
 					<li class=" tsd-kind-module">
-						<a href="_protocol_index_.html">&quot;protocol/index&quot;</a>
+						<a href="_commands_recipes_resolve_.html">&quot;commands/recipes/resolve&quot;</a>
 					</li>
 					<li class=" tsd-kind-module">
-						<a href="_protocol_js_usp_protobuf_protomessage_.html">&quot;protocol/js-<wbr>usp-<wbr>protobuf/proto<wbr>Message&quot;</a>
+						<a href="_commands_set_.html">&quot;commands/set&quot;</a>
 					</li>
 					<li class="current tsd-kind-module">
-						<a href="_protocol_lib_.html">&quot;protocol/lib&quot;</a>
+						<a href="_commands_util_.html">&quot;commands/util&quot;</a>
+					</li>
+					<li class=" tsd-kind-module">
+						<a href="_index_.html">&quot;index&quot;</a>
 					</li>
 					<li class=" tsd-kind-module">
-						<a href="_types_d_.html">&quot;types.d&quot;</a>
+						<a href="_types_.html">&quot;types&quot;</a>
+					</li>
+					<li class=" tsd-kind-module">
+						<a href="_util_.html">&quot;util&quot;</a>
+					</li>
+					<li class="label tsd-is-external">
+						<span>Externals</span>
+					</li>
+					<li class=" tsd-kind-module tsd-is-external">
+						<a href="_specs_usp_msg_1_1_.html">&quot;specs/usp-<wbr>msg-<wbr>1-1&quot;</a>
+					</li>
+					<li class=" tsd-kind-module tsd-is-external">
+						<a href="_specs_usp_record_1_1_.html">&quot;specs/usp-<wbr>record-<wbr>1-1&quot;</a>
 					</li>
 				</ul>
 			</nav>
 			<nav class="tsd-navigation secondary menu-sticky">
 				<ul class="before-current">
 					<li class=" tsd-kind-variable tsd-parent-kind-module tsd-is-not-exported">
-						<a href="_protocol_lib_.html#digitdotre" class="tsd-kind-icon">digit<wbr>Dot<wbr>Re</a>
+						<a href="_commands_util_.html#digitdotre" class="tsd-kind-icon">digit<wbr>Dot<wbr>Re</a>
 					</li>
 					<li class=" tsd-kind-variable tsd-parent-kind-module tsd-is-not-exported">
-						<a href="_protocol_lib_.html#digitre" class="tsd-kind-icon">digit<wbr>Re</a>
+						<a href="_commands_util_.html#digitre" class="tsd-kind-icon">digit<wbr>Re</a>
 					</li>
 					<li class=" tsd-kind-function tsd-parent-kind-module tsd-is-not-exported">
-						<a href="_protocol_lib_.html#_searchall" class="tsd-kind-icon">_search<wbr>All</a>
+						<a href="_commands_util_.html#_searchall" class="tsd-kind-icon">_search<wbr>All</a>
+					</li>
+					<li class=" tsd-kind-function tsd-parent-kind-module">
+						<a href="_commands_util_.html#encodeobject" class="tsd-kind-icon">encode<wbr>Object</a>
+					</li>
+					<li class=" tsd-kind-function tsd-parent-kind-module">
+						<a href="_commands_util_.html#encodepairs" class="tsd-kind-icon">encode<wbr>Pairs</a>
+					</li>
+					<li class=" tsd-kind-function tsd-parent-kind-module">
+						<a href="_commands_util_.html#extractcommand" class="tsd-kind-icon">extract<wbr>Command</a>
 					</li>
 					<li class=" tsd-kind-function tsd-parent-kind-module tsd-is-not-exported">
-						<a href="_protocol_lib_.html#firstisindex" class="tsd-kind-icon">first<wbr>IsIndex</a>
+						<a href="_commands_util_.html#firstisindex" class="tsd-kind-icon">first<wbr>IsIndex</a>
 					</li>
 					<li class=" tsd-kind-function tsd-parent-kind-module tsd-is-not-exported">
-						<a href="_protocol_lib_.html#isdigit" class="tsd-kind-icon">is<wbr>Digit</a>
+						<a href="_commands_util_.html#isdigit" class="tsd-kind-icon">is<wbr>Digit</a>
+					</li>
+					<li class=" tsd-kind-function tsd-parent-kind-module">
+						<a href="_commands_util_.html#makebuffer" class="tsd-kind-icon">make<wbr>Buffer</a>
+					</li>
+					<li class=" tsd-kind-function tsd-parent-kind-module">
+						<a href="_commands_util_.html#search" class="tsd-kind-icon">search</a>
 					</li>
 					<li class=" tsd-kind-function tsd-parent-kind-module">
-						<a href="_protocol_lib_.html#search" class="tsd-kind-icon">search</a>
+						<a href="_commands_util_.html#searchall" class="tsd-kind-icon">search<wbr>All</a>
 					</li>
 					<li class=" tsd-kind-function tsd-parent-kind-module">
-						<a href="_protocol_lib_.html#searchall" class="tsd-kind-icon">search<wbr>All</a>
+						<a href="_commands_util_.html#unflatten" class="tsd-kind-icon">unflatten</a>
 					</li>
 					<li class=" tsd-kind-function tsd-parent-kind-module">
-						<a href="_protocol_lib_.html#unflatten" class="tsd-kind-icon">unflatten</a>
+						<a href="_commands_util_.html#uniq" class="tsd-kind-icon">uniq</a>
 					</li>
 					<li class=" tsd-kind-function tsd-parent-kind-module">
-						<a href="_protocol_lib_.html#unwraparray" class="tsd-kind-icon">unwrap<wbr>Array</a>
+						<a href="_commands_util_.html#unwraparray" class="tsd-kind-icon">unwrap<wbr>Array</a>
 					</li>
 					<li class=" tsd-kind-function tsd-parent-kind-module">
-						<a href="_protocol_lib_.html#unwrapobject" class="tsd-kind-icon">unwrap<wbr>Object</a>
+						<a href="_commands_util_.html#unwrapobject" class="tsd-kind-icon">unwrap<wbr>Object</a>
 					</li>
 				</ul>
 			</nav>
diff --git a/public/modules/_index_.html b/public/modules/_index_.html
index 3449e9dda587700a5311ad484733fa408cbe4d70..503c393fe87360db589663c0867afa19f03ab9a3 100644
--- a/public/modules/_index_.html
+++ b/public/modules/_index_.html
@@ -70,659 +70,94 @@
 				<h2>Index</h2>
 				<section class="tsd-panel tsd-index-panel">
 					<div class="tsd-index-content">
-						<section class="tsd-index-section tsd-is-not-exported">
-							<h3>Type aliases</h3>
-							<ul class="tsd-index-list">
-								<li class="tsd-kind-type-alias tsd-parent-kind-module tsd-is-not-exported"><a href="_index_.html#addfn" class="tsd-kind-icon">Add<wbr>Fn</a></li>
-								<li class="tsd-kind-type-alias tsd-parent-kind-module tsd-is-not-exported"><a href="_index_.html#delfn" class="tsd-kind-icon">Del<wbr>Fn</a></li>
-							</ul>
-						</section>
 						<section class="tsd-index-section tsd-is-not-exported">
 							<h3>Variables</h3>
 							<ul class="tsd-index-list">
-								<li class="tsd-kind-variable tsd-parent-kind-module tsd-is-not-exported"><a href="_index_.html#commandswithreturnvalue" class="tsd-kind-icon">commands<wbr>With<wbr>Return<wbr>Value</a></li>
-								<li class="tsd-kind-variable tsd-parent-kind-module tsd-is-not-exported"><a href="_index_.html#operatesubscriptionpath" class="tsd-kind-icon">operate<wbr>Subscription<wbr>Path</a></li>
+								<li class="tsd-kind-variable tsd-parent-kind-module tsd-is-not-exported"><a href="_index_.html#defaultpublishendpoint" class="tsd-kind-icon">default<wbr>Publish<wbr>Endpoint</a></li>
+								<li class="tsd-kind-variable tsd-parent-kind-module tsd-is-not-exported"><a href="_index_.html#defaultsubscribeendpoint" class="tsd-kind-icon">default<wbr>Subscribe<wbr>Endpoint</a></li>
 							</ul>
 						</section>
-						<section class="tsd-index-section tsd-is-not-exported">
+						<section class="tsd-index-section ">
 							<h3>Functions</h3>
 							<ul class="tsd-index-list">
-								<li class="tsd-kind-function tsd-parent-kind-module tsd-is-not-exported"><a href="_index_.html#adddot" class="tsd-kind-icon">add<wbr>Dot</a></li>
-								<li class="tsd-kind-function tsd-parent-kind-module tsd-is-not-exported"><a href="_index_.html#connect" class="tsd-kind-icon">connect</a></li>
-								<li class="tsd-kind-function tsd-parent-kind-module tsd-is-not-exported"><a href="_index_.html#decode" class="tsd-kind-icon">decode</a></li>
-								<li class="tsd-kind-function tsd-parent-kind-module tsd-is-not-exported"><a href="_index_.html#handlesend" class="tsd-kind-icon">handle<wbr>Send</a></li>
-								<li class="tsd-kind-function tsd-parent-kind-module tsd-is-not-exported"><a href="_index_.html#iserror" class="tsd-kind-icon">is<wbr>Error</a></li>
-								<li class="tsd-kind-function tsd-parent-kind-module tsd-is-not-exported"><a href="_index_.html#ispromiseresult" class="tsd-kind-icon">is<wbr>Promise<wbr>Result</a></li>
-								<li class="tsd-kind-function tsd-parent-kind-module tsd-is-not-exported"><a href="_index_.html#isreference" class="tsd-kind-icon">is<wbr>Reference</a></li>
-								<li class="tsd-kind-function tsd-parent-kind-module tsd-is-not-exported"><a href="_index_.html#makeadd" class="tsd-kind-icon">make<wbr>Add</a></li>
-								<li class="tsd-kind-function tsd-parent-kind-module tsd-is-not-exported"><a href="_index_.html#makedel" class="tsd-kind-icon">make<wbr>Del</a></li>
-								<li class="tsd-kind-function tsd-parent-kind-module tsd-is-not-exported"><a href="_index_.html#makeget" class="tsd-kind-icon">make<wbr>Get</a></li>
-								<li class="tsd-kind-function tsd-parent-kind-module tsd-is-not-exported"><a href="_index_.html#makeoperate" class="tsd-kind-icon">make<wbr>Operate</a></li>
-								<li class="tsd-kind-function tsd-parent-kind-module tsd-is-not-exported"><a href="_index_.html#makeset" class="tsd-kind-icon">make<wbr>Set</a></li>
-								<li class="tsd-kind-function tsd-parent-kind-module tsd-is-not-exported"><a href="_index_.html#resolvereferences" class="tsd-kind-icon">resolve<wbr>References</a></li>
-								<li class="tsd-kind-function tsd-parent-kind-module tsd-is-not-exported"><a href="_index_.html#splitreference" class="tsd-kind-icon">split<wbr>Reference</a></li>
-								<li class="tsd-kind-function tsd-parent-kind-module tsd-is-not-exported"><a href="_index_.html#throwmsgerror" class="tsd-kind-icon">throw<wbr>Msg<wbr>Error</a></li>
+								<li class="tsd-kind-function tsd-parent-kind-module tsd-is-not-exported"><a href="_index_.html#_connect" class="tsd-kind-icon">_connect</a></li>
+								<li class="tsd-kind-function tsd-parent-kind-module"><a href="_index_.html#connect" class="tsd-kind-icon">connect</a></li>
 							</ul>
 						</section>
 					</div>
 				</section>
 			</section>
-			<section class="tsd-panel-group tsd-member-group tsd-is-not-exported">
-				<h2>Type aliases</h2>
-				<section class="tsd-panel tsd-member tsd-kind-type-alias tsd-parent-kind-module tsd-is-not-exported">
-					<a name="addfn" class="tsd-anchor"></a>
-					<h3>Add<wbr>Fn</h3>
-					<div class="tsd-signature tsd-kind-icon">Add<wbr>Fn<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-symbol">(</span>path<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span>, input<span class="tsd-signature-symbol">?: </span><a href="_types_d_.html#jsobject" class="tsd-signature-type">JSObject</a><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol"> =&gt; </span><span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">&gt;</span></div>
-					<aside class="tsd-sources">
-						<ul>
-							<li>Defined in src/index.ts:145</li>
-						</ul>
-					</aside>
-					<div class="tsd-type-declaration">
-						<h4>Type declaration</h4>
-						<ul class="tsd-parameters">
-							<li class="tsd-parameter-signature">
-								<ul class="tsd-signatures tsd-kind-type-literal tsd-parent-kind-type-alias tsd-is-not-exported">
-									<li class="tsd-signature tsd-kind-icon"><span class="tsd-signature-symbol">(</span>path<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span>, input<span class="tsd-signature-symbol">?: </span><a href="_types_d_.html#jsobject" class="tsd-signature-type">JSObject</a><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">&gt;</span></li>
-								</ul>
-								<ul class="tsd-descriptions">
-									<li class="tsd-description">
-										<h4 class="tsd-parameters-title">Parameters</h4>
-										<ul class="tsd-parameters">
-											<li>
-												<h5>path: <span class="tsd-signature-type">string</span></h5>
-											</li>
-											<li>
-												<h5><span class="tsd-flag ts-flagOptional">Optional</span> input: <a href="_types_d_.html#jsobject" class="tsd-signature-type">JSObject</a></h5>
-											</li>
-										</ul>
-										<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">&gt;</span></h4>
-									</li>
-								</ul>
-							</li>
-						</ul>
-					</div>
-				</section>
-				<section class="tsd-panel tsd-member tsd-kind-type-alias tsd-parent-kind-module tsd-is-not-exported">
-					<a name="delfn" class="tsd-anchor"></a>
-					<h3>Del<wbr>Fn</h3>
-					<div class="tsd-signature tsd-kind-icon">Del<wbr>Fn<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-symbol">(</span>path<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol"> =&gt; </span><span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">&gt;</span></div>
-					<aside class="tsd-sources">
-						<ul>
-							<li>Defined in src/index.ts:146</li>
-						</ul>
-					</aside>
-					<div class="tsd-type-declaration">
-						<h4>Type declaration</h4>
-						<ul class="tsd-parameters">
-							<li class="tsd-parameter-signature">
-								<ul class="tsd-signatures tsd-kind-type-literal tsd-parent-kind-type-alias tsd-is-not-exported">
-									<li class="tsd-signature tsd-kind-icon"><span class="tsd-signature-symbol">(</span>path<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">&gt;</span></li>
-								</ul>
-								<ul class="tsd-descriptions">
-									<li class="tsd-description">
-										<h4 class="tsd-parameters-title">Parameters</h4>
-										<ul class="tsd-parameters">
-											<li>
-												<h5>path: <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">[]</span></h5>
-											</li>
-										</ul>
-										<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">&gt;</span></h4>
-									</li>
-								</ul>
-							</li>
-						</ul>
-					</div>
-				</section>
-			</section>
 			<section class="tsd-panel-group tsd-member-group tsd-is-not-exported">
 				<h2>Variables</h2>
 				<section class="tsd-panel tsd-member tsd-kind-variable tsd-parent-kind-module tsd-is-not-exported">
-					<a name="commandswithreturnvalue" class="tsd-anchor"></a>
-					<h3><span class="tsd-flag ts-flagConst">Const</span> commands<wbr>With<wbr>Return<wbr>Value</h3>
-					<div class="tsd-signature tsd-kind-icon">commands<wbr>With<wbr>Return<wbr>Value<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol"> = [&quot;get&quot;, &quot;notify&quot;, &quot;add&quot;]</span></div>
+					<a name="defaultpublishendpoint" class="tsd-anchor"></a>
+					<h3><span class="tsd-flag ts-flagConst">Const</span> default<wbr>Publish<wbr>Endpoint</h3>
+					<div class="tsd-signature tsd-kind-icon">default<wbr>Publish<wbr>Endpoint<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">"/usp/endpoint"</span><span class="tsd-signature-symbol"> = &quot;/usp/endpoint&quot;</span></div>
 					<aside class="tsd-sources">
 						<ul>
-							<li>Defined in src/index.ts:76</li>
+							<li>Defined in index.ts:5</li>
 						</ul>
 					</aside>
-					<div class="tsd-comment tsd-typography">
-						<div class="lead">
-							<p>Set of commands which have a return value</p>
-						</div>
-					</div>
 				</section>
 				<section class="tsd-panel tsd-member tsd-kind-variable tsd-parent-kind-module tsd-is-not-exported">
-					<a name="operatesubscriptionpath" class="tsd-anchor"></a>
-					<h3><span class="tsd-flag ts-flagConst">Const</span> operate<wbr>Subscription<wbr>Path</h3>
-					<div class="tsd-signature tsd-kind-icon">operate<wbr>Subscription<wbr>Path<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">"Device.LocalAgent.Subscription."</span><span class="tsd-signature-symbol"> = &quot;Device.LocalAgent.Subscription.&quot;</span></div>
+					<a name="defaultsubscribeendpoint" class="tsd-anchor"></a>
+					<h3><span class="tsd-flag ts-flagConst">Const</span> default<wbr>Subscribe<wbr>Endpoint</h3>
+					<div class="tsd-signature tsd-kind-icon">default<wbr>Subscribe<wbr>Endpoint<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">"/usp/controller"</span><span class="tsd-signature-symbol"> = &quot;/usp/controller&quot;</span></div>
 					<aside class="tsd-sources">
 						<ul>
-							<li>Defined in src/index.ts:144</li>
+							<li>Defined in index.ts:6</li>
 						</ul>
 					</aside>
 				</section>
 			</section>
-			<section class="tsd-panel-group tsd-member-group tsd-is-not-exported">
+			<section class="tsd-panel-group tsd-member-group ">
 				<h2>Functions</h2>
 				<section class="tsd-panel tsd-member tsd-kind-function tsd-parent-kind-module tsd-is-not-exported">
-					<a name="adddot" class="tsd-anchor"></a>
-					<h3><span class="tsd-flag ts-flagConst">Const</span> add<wbr>Dot</h3>
+					<a name="_connect" class="tsd-anchor"></a>
+					<h3><span class="tsd-flag ts-flagConst">Const</span> _connect</h3>
 					<ul class="tsd-signatures tsd-kind-function tsd-parent-kind-module tsd-is-not-exported">
-						<li class="tsd-signature tsd-kind-icon">add<wbr>Dot<span class="tsd-signature-symbol">(</span>s<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span></li>
+						<li class="tsd-signature tsd-kind-icon">_connect<span class="tsd-signature-symbol">(</span>opts<span class="tsd-signature-symbol">: </span><a href="../interfaces/_types_.connectionoptions.html" class="tsd-signature-type">ConnectionOptions</a><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">AsyncMqttClient</span><span class="tsd-signature-symbol">&gt;</span></li>
 					</ul>
 					<ul class="tsd-descriptions">
 						<li class="tsd-description">
 							<aside class="tsd-sources">
 								<ul>
-									<li>Defined in src/index.ts:8</li>
+									<li>Defined in index.ts:8</li>
 								</ul>
 							</aside>
-							<div class="tsd-comment tsd-typography">
-								<div class="lead">
-									<p>Add dot to the end of a string if it does not have one</p>
-								</div>
-							</div>
 							<h4 class="tsd-parameters-title">Parameters</h4>
 							<ul class="tsd-parameters">
 								<li>
-									<h5>s: <span class="tsd-signature-type">string</span></h5>
+									<h5>opts: <a href="../interfaces/_types_.connectionoptions.html" class="tsd-signature-type">ConnectionOptions</a></h5>
 								</li>
 							</ul>
-							<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">string</span></h4>
+							<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">AsyncMqttClient</span><span class="tsd-signature-symbol">&gt;</span></h4>
 						</li>
 					</ul>
 				</section>
-				<section class="tsd-panel tsd-member tsd-kind-function tsd-parent-kind-module tsd-is-not-exported">
+				<section class="tsd-panel tsd-member tsd-kind-function tsd-parent-kind-module">
 					<a name="connect" class="tsd-anchor"></a>
-					<h3><span class="tsd-flag ts-flagConst">Const</span> connect</h3>
-					<ul class="tsd-signatures tsd-kind-function tsd-parent-kind-module tsd-is-not-exported">
-						<li class="tsd-signature tsd-kind-icon">connect<span class="tsd-signature-symbol">(</span>opts<span class="tsd-signature-symbol">: </span><a href="../interfaces/_types_d_.connectoptions.html" class="tsd-signature-type">ConnectOptions</a>, events<span class="tsd-signature-symbol">?: </span><a href="../interfaces/_types_d_.connectevents.html" class="tsd-signature-type">ConnectEvents</a><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><a href="../interfaces/_types_d_.device.html" class="tsd-signature-type">Device</a><span class="tsd-signature-symbol">&gt;</span></li>
-					</ul>
-					<ul class="tsd-descriptions">
-						<li class="tsd-description">
-							<aside class="tsd-sources">
-								<ul>
-									<li>Defined in src/index.ts:193</li>
-								</ul>
-							</aside>
-							<div class="tsd-comment tsd-typography">
-								<div class="lead">
-									<p>Connect to device</p>
-								</div>
-							</div>
-							<h4 class="tsd-parameters-title">Parameters</h4>
-							<ul class="tsd-parameters">
-								<li>
-									<h5>opts: <a href="../interfaces/_types_d_.connectoptions.html" class="tsd-signature-type">ConnectOptions</a></h5>
-									<div class="tsd-comment tsd-typography">
-										<div class="lead">
-											<p>Connection options</p>
-										</div>
-									</div>
-								</li>
-								<li>
-									<h5><span class="tsd-flag ts-flagDefault value">Default value</span> events: <a href="../interfaces/_types_d_.connectevents.html" class="tsd-signature-type">ConnectEvents</a><span class="tsd-signature-symbol"> = {}</span></h5>
-									<div class="tsd-comment tsd-typography">
-										<div class="lead">
-											<p>Optional event handlers</p>
-										</div>
-									</div>
-								</li>
-							</ul>
-							<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><a href="../interfaces/_types_d_.device.html" class="tsd-signature-type">Device</a><span class="tsd-signature-symbol">&gt;</span></h4>
-							<p>A set of functions for interacting with the device</p>
-						</li>
-					</ul>
-				</section>
-				<section class="tsd-panel tsd-member tsd-kind-function tsd-parent-kind-module tsd-is-not-exported">
-					<a name="decode" class="tsd-anchor"></a>
-					<h3><span class="tsd-flag ts-flagConst">Const</span> decode</h3>
-					<ul class="tsd-signatures tsd-kind-function tsd-parent-kind-module tsd-is-not-exported">
-						<li class="tsd-signature tsd-kind-icon">decode<span class="tsd-signature-symbol">(</span>msg<span class="tsd-signature-symbol">: </span><a href="_types_d_.html#uspmessage" class="tsd-signature-type">USPMessage</a><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="_types_d_.html#jstype" class="tsd-signature-type">JSType</a><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">void</span></li>
-					</ul>
-					<ul class="tsd-descriptions">
-						<li class="tsd-description">
-							<aside class="tsd-sources">
-								<ul>
-									<li>Defined in src/index.ts:81</li>
-								</ul>
-							</aside>
-							<div class="tsd-comment tsd-typography">
-								<div class="lead">
-									<p>Transform USPMessage to expected response type</p>
-								</div>
-							</div>
-							<h4 class="tsd-parameters-title">Parameters</h4>
-							<ul class="tsd-parameters">
-								<li>
-									<h5>msg: <a href="_types_d_.html#uspmessage" class="tsd-signature-type">USPMessage</a></h5>
-								</li>
-							</ul>
-							<h4 class="tsd-returns-title">Returns <a href="_types_d_.html#jstype" class="tsd-signature-type">JSType</a><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">void</span></h4>
-						</li>
-					</ul>
-				</section>
-				<section class="tsd-panel tsd-member tsd-kind-function tsd-parent-kind-module tsd-is-not-exported">
-					<a name="handlesend" class="tsd-anchor"></a>
-					<h3><span class="tsd-flag ts-flagConst">Const</span> handle<wbr>Send</h3>
-					<ul class="tsd-signatures tsd-kind-function tsd-parent-kind-module tsd-is-not-exported">
-						<li class="tsd-signature tsd-kind-icon">handle<wbr>Send<span class="tsd-signature-symbol">(</span>msg<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><a href="_types_d_.html#uspmessage" class="tsd-signature-type">USPMessage</a><span class="tsd-signature-symbol">&gt;</span>, path<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">[]</span>, reject<span class="tsd-signature-symbol">: </span><a href="_types_d_.html#rejectfn" class="tsd-signature-type">RejectFn</a><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">undefined</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">false</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">true</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">void</span><span class="tsd-signature-symbol"> | </span><a href="_types_d_.html#jsobject" class="tsd-signature-type">JSObject</a><span class="tsd-signature-symbol">&gt;</span></li>
+					<h3>connect</h3>
+					<ul class="tsd-signatures tsd-kind-function tsd-parent-kind-module">
+						<li class="tsd-signature tsd-kind-icon">connect<span class="tsd-signature-symbol">(</span>options<span class="tsd-signature-symbol">: </span><a href="../interfaces/_types_.connectionoptions.html" class="tsd-signature-type">ConnectionOptions</a>, events<span class="tsd-signature-symbol">?: </span><a href="../interfaces/_types_.connectionevents.html" class="tsd-signature-type">ConnectionEvents</a><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><a href="../interfaces/_types_.usp.html" class="tsd-signature-type">USP</a><span class="tsd-signature-symbol">&gt;</span></li>
 					</ul>
 					<ul class="tsd-descriptions">
 						<li class="tsd-description">
 							<aside class="tsd-sources">
 								<ul>
-									<li>Defined in src/index.ts:88</li>
+									<li>Defined in index.ts:16</li>
 								</ul>
 							</aside>
-							<div class="tsd-comment tsd-typography">
-								<div class="lead">
-									<p>Wrapper function for sending message (decode message and catch errors)</p>
-								</div>
-							</div>
 							<h4 class="tsd-parameters-title">Parameters</h4>
 							<ul class="tsd-parameters">
 								<li>
-									<h5>msg: <span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><a href="_types_d_.html#uspmessage" class="tsd-signature-type">USPMessage</a><span class="tsd-signature-symbol">&gt;</span></h5>
-								</li>
-								<li>
-									<h5>path: <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">[]</span></h5>
+									<h5>options: <a href="../interfaces/_types_.connectionoptions.html" class="tsd-signature-type">ConnectionOptions</a></h5>
 								</li>
 								<li>
-									<h5>reject: <a href="_types_d_.html#rejectfn" class="tsd-signature-type">RejectFn</a></h5>
+									<h5><span class="tsd-flag ts-flagOptional">Optional</span> events: <a href="../interfaces/_types_.connectionevents.html" class="tsd-signature-type">ConnectionEvents</a></h5>
 								</li>
 							</ul>
-							<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">undefined</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">false</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">true</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">void</span><span class="tsd-signature-symbol"> | </span><a href="_types_d_.html#jsobject" class="tsd-signature-type">JSObject</a><span class="tsd-signature-symbol">&gt;</span></h4>
-						</li>
-					</ul>
-				</section>
-				<section class="tsd-panel tsd-member tsd-kind-function tsd-parent-kind-module tsd-is-not-exported">
-					<a name="iserror" class="tsd-anchor"></a>
-					<h3><span class="tsd-flag ts-flagConst">Const</span> is<wbr>Error</h3>
-					<ul class="tsd-signatures tsd-kind-function tsd-parent-kind-module tsd-is-not-exported">
-						<li class="tsd-signature tsd-kind-icon">is<wbr>Error<span class="tsd-signature-symbol">(</span>resp<span class="tsd-signature-symbol">: </span><a href="_types_d_.html#uspmessage" class="tsd-signature-type">USPMessage</a><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">resp</span><span class="tsd-signature-symbol"> is </span><span class="tsd-signature-type">ErrorMessage</span></li>
-					</ul>
-					<ul class="tsd-descriptions">
-						<li class="tsd-description">
-							<aside class="tsd-sources">
-								<ul>
-									<li>Defined in src/index.ts:64</li>
-								</ul>
-							</aside>
-							<div class="tsd-comment tsd-typography">
-								<div class="lead">
-									<p>Checks if response is an ErrorMessage</p>
-								</div>
-							</div>
-							<h4 class="tsd-parameters-title">Parameters</h4>
-							<ul class="tsd-parameters">
-								<li>
-									<h5>resp: <a href="_types_d_.html#uspmessage" class="tsd-signature-type">USPMessage</a></h5>
-								</li>
-							</ul>
-							<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">resp</span><span class="tsd-signature-symbol"> is </span><span class="tsd-signature-type">ErrorMessage</span></h4>
-						</li>
-					</ul>
-				</section>
-				<section class="tsd-panel tsd-member tsd-kind-function tsd-parent-kind-module tsd-is-not-exported">
-					<a name="ispromiseresult" class="tsd-anchor"></a>
-					<h3><span class="tsd-flag ts-flagConst">Const</span> is<wbr>Promise<wbr>Result</h3>
-					<ul class="tsd-signatures tsd-kind-function tsd-parent-kind-module tsd-is-not-exported">
-						<li class="tsd-signature tsd-kind-icon">is<wbr>Promise<wbr>Result<span class="tsd-signature-symbol">(</span>res<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">res</span><span class="tsd-signature-symbol"> is </span><span class="tsd-signature-type">PromiseResult</span></li>
-					</ul>
-					<ul class="tsd-descriptions">
-						<li class="tsd-description">
-							<aside class="tsd-sources">
-								<ul>
-									<li>Defined in src/index.ts:70</li>
-								</ul>
-							</aside>
-							<div class="tsd-comment tsd-typography">
-								<div class="lead">
-									<p>Checks if value is of type PromiseResult</p>
-								</div>
-							</div>
-							<h4 class="tsd-parameters-title">Parameters</h4>
-							<ul class="tsd-parameters">
-								<li>
-									<h5>res: <span class="tsd-signature-type">any</span></h5>
-								</li>
-							</ul>
-							<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">res</span><span class="tsd-signature-symbol"> is </span><span class="tsd-signature-type">PromiseResult</span></h4>
-						</li>
-					</ul>
-				</section>
-				<section class="tsd-panel tsd-member tsd-kind-function tsd-parent-kind-module tsd-is-not-exported">
-					<a name="isreference" class="tsd-anchor"></a>
-					<h3><span class="tsd-flag ts-flagConst">Const</span> is<wbr>Reference</h3>
-					<ul class="tsd-signatures tsd-kind-function tsd-parent-kind-module tsd-is-not-exported">
-						<li class="tsd-signature tsd-kind-icon">is<wbr>Reference<span class="tsd-signature-symbol">(</span>s<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">boolean</span></li>
-					</ul>
-					<ul class="tsd-descriptions">
-						<li class="tsd-description">
-							<aside class="tsd-sources">
-								<ul>
-									<li>Defined in src/index.ts:59</li>
-								</ul>
-							</aside>
-							<div class="tsd-comment tsd-typography">
-								<div class="lead">
-									<p>Checks if string is reference</p>
-								</div>
-							</div>
-							<h4 class="tsd-parameters-title">Parameters</h4>
-							<ul class="tsd-parameters">
-								<li>
-									<h5>s: <span class="tsd-signature-type">string</span></h5>
-								</li>
-							</ul>
-							<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4>
-						</li>
-					</ul>
-				</section>
-				<section class="tsd-panel tsd-member tsd-kind-function tsd-parent-kind-module tsd-is-not-exported">
-					<a name="makeadd" class="tsd-anchor"></a>
-					<h3><span class="tsd-flag ts-flagConst">Const</span> make<wbr>Add</h3>
-					<ul class="tsd-signatures tsd-kind-function tsd-parent-kind-module tsd-is-not-exported">
-						<li class="tsd-signature tsd-kind-icon">make<wbr>Add<span class="tsd-signature-symbol">(</span>send<span class="tsd-signature-symbol">: </span><a href="_types_d_.html#sendfn" class="tsd-signature-type">SendFn</a>, reject<span class="tsd-signature-symbol">: </span><a href="_types_d_.html#rejectfn" class="tsd-signature-type">RejectFn</a><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">(Anonymous function)</span></li>
-					</ul>
-					<ul class="tsd-descriptions">
-						<li class="tsd-description">
-							<aside class="tsd-sources">
-								<ul>
-									<li>Defined in src/index.ts:129</li>
-								</ul>
-							</aside>
-							<div class="tsd-comment tsd-typography">
-								<div class="lead">
-									<p>Make add function</p>
-								</div>
-							</div>
-							<h4 class="tsd-parameters-title">Parameters</h4>
-							<ul class="tsd-parameters">
-								<li>
-									<h5>send: <a href="_types_d_.html#sendfn" class="tsd-signature-type">SendFn</a></h5>
-								</li>
-								<li>
-									<h5>reject: <a href="_types_d_.html#rejectfn" class="tsd-signature-type">RejectFn</a></h5>
-								</li>
-							</ul>
-							<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">(Anonymous function)</span></h4>
-						</li>
-					</ul>
-				</section>
-				<section class="tsd-panel tsd-member tsd-kind-function tsd-parent-kind-module tsd-is-not-exported">
-					<a name="makedel" class="tsd-anchor"></a>
-					<h3><span class="tsd-flag ts-flagConst">Const</span> make<wbr>Del</h3>
-					<ul class="tsd-signatures tsd-kind-function tsd-parent-kind-module tsd-is-not-exported">
-						<li class="tsd-signature tsd-kind-icon">make<wbr>Del<span class="tsd-signature-symbol">(</span>send<span class="tsd-signature-symbol">: </span><a href="_types_d_.html#sendfn" class="tsd-signature-type">SendFn</a>, reject<span class="tsd-signature-symbol">: </span><a href="_types_d_.html#rejectfn" class="tsd-signature-type">RejectFn</a><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">(Anonymous function)</span></li>
-					</ul>
-					<ul class="tsd-descriptions">
-						<li class="tsd-description">
-							<aside class="tsd-sources">
-								<ul>
-									<li>Defined in src/index.ts:137</li>
-								</ul>
-							</aside>
-							<div class="tsd-comment tsd-typography">
-								<div class="lead">
-									<p>Make del function</p>
-								</div>
-							</div>
-							<h4 class="tsd-parameters-title">Parameters</h4>
-							<ul class="tsd-parameters">
-								<li>
-									<h5>send: <a href="_types_d_.html#sendfn" class="tsd-signature-type">SendFn</a></h5>
-								</li>
-								<li>
-									<h5>reject: <a href="_types_d_.html#rejectfn" class="tsd-signature-type">RejectFn</a></h5>
-								</li>
-							</ul>
-							<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">(Anonymous function)</span></h4>
-						</li>
-					</ul>
-				</section>
-				<section class="tsd-panel tsd-member tsd-kind-function tsd-parent-kind-module tsd-is-not-exported">
-					<a name="makeget" class="tsd-anchor"></a>
-					<h3><span class="tsd-flag ts-flagConst">Const</span> make<wbr>Get</h3>
-					<ul class="tsd-signatures tsd-kind-function tsd-parent-kind-module tsd-is-not-exported">
-						<li class="tsd-signature tsd-kind-icon">make<wbr>Get<span class="tsd-signature-symbol">(</span>send<span class="tsd-signature-symbol">: </span><a href="_types_d_.html#sendfn" class="tsd-signature-type">SendFn</a>, reject<span class="tsd-signature-symbol">: </span><a href="_types_d_.html#rejectfn" class="tsd-signature-type">RejectFn</a><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">(Anonymous function)</span></li>
-					</ul>
-					<ul class="tsd-descriptions">
-						<li class="tsd-description">
-							<aside class="tsd-sources">
-								<ul>
-									<li>Defined in src/index.ts:103</li>
-								</ul>
-							</aside>
-							<div class="tsd-comment tsd-typography">
-								<div class="lead">
-									<p>Make get function</p>
-								</div>
-							</div>
-							<h4 class="tsd-parameters-title">Parameters</h4>
-							<ul class="tsd-parameters">
-								<li>
-									<h5>send: <a href="_types_d_.html#sendfn" class="tsd-signature-type">SendFn</a></h5>
-								</li>
-								<li>
-									<h5>reject: <a href="_types_d_.html#rejectfn" class="tsd-signature-type">RejectFn</a></h5>
-								</li>
-							</ul>
-							<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">(Anonymous function)</span></h4>
-						</li>
-					</ul>
-				</section>
-				<section class="tsd-panel tsd-member tsd-kind-function tsd-parent-kind-module tsd-is-not-exported">
-					<a name="makeoperate" class="tsd-anchor"></a>
-					<h3><span class="tsd-flag ts-flagConst">Const</span> make<wbr>Operate</h3>
-					<ul class="tsd-signatures tsd-kind-function tsd-parent-kind-module tsd-is-not-exported">
-						<li class="tsd-signature tsd-kind-icon">make<wbr>Operate<span class="tsd-signature-symbol">(</span>send<span class="tsd-signature-symbol">: </span><a href="_types_d_.html#sendfn" class="tsd-signature-type">SendFn</a>, add<span class="tsd-signature-symbol">: </span><a href="_index_.html#addfn" class="tsd-signature-type">AddFn</a>, del<span class="tsd-signature-symbol">: </span><a href="_index_.html#delfn" class="tsd-signature-type">DelFn</a>, reject<span class="tsd-signature-symbol">: </span><a href="_types_d_.html#rejectfn" class="tsd-signature-type">RejectFn</a><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">(Anonymous function)</span></li>
-					</ul>
-					<ul class="tsd-descriptions">
-						<li class="tsd-description">
-							<aside class="tsd-sources">
-								<ul>
-									<li>Defined in src/index.ts:151</li>
-								</ul>
-							</aside>
-							<div class="tsd-comment tsd-typography">
-								<div class="lead">
-									<p>Make operate function</p>
-								</div>
-							</div>
-							<h4 class="tsd-parameters-title">Parameters</h4>
-							<ul class="tsd-parameters">
-								<li>
-									<h5>send: <a href="_types_d_.html#sendfn" class="tsd-signature-type">SendFn</a></h5>
-								</li>
-								<li>
-									<h5>add: <a href="_index_.html#addfn" class="tsd-signature-type">AddFn</a></h5>
-								</li>
-								<li>
-									<h5>del: <a href="_index_.html#delfn" class="tsd-signature-type">DelFn</a></h5>
-								</li>
-								<li>
-									<h5>reject: <a href="_types_d_.html#rejectfn" class="tsd-signature-type">RejectFn</a></h5>
-								</li>
-							</ul>
-							<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">(Anonymous function)</span></h4>
-						</li>
-					</ul>
-				</section>
-				<section class="tsd-panel tsd-member tsd-kind-function tsd-parent-kind-module tsd-is-not-exported">
-					<a name="makeset" class="tsd-anchor"></a>
-					<h3><span class="tsd-flag ts-flagConst">Const</span> make<wbr>Set</h3>
-					<ul class="tsd-signatures tsd-kind-function tsd-parent-kind-module tsd-is-not-exported">
-						<li class="tsd-signature tsd-kind-icon">make<wbr>Set<span class="tsd-signature-symbol">(</span>send<span class="tsd-signature-symbol">: </span><a href="_types_d_.html#sendfn" class="tsd-signature-type">SendFn</a>, reject<span class="tsd-signature-symbol">: </span><a href="_types_d_.html#rejectfn" class="tsd-signature-type">RejectFn</a><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">(Anonymous function)</span></li>
-					</ul>
-					<ul class="tsd-descriptions">
-						<li class="tsd-description">
-							<aside class="tsd-sources">
-								<ul>
-									<li>Defined in src/index.ts:113</li>
-								</ul>
-							</aside>
-							<div class="tsd-comment tsd-typography">
-								<div class="lead">
-									<p>Make set function</p>
-								</div>
-							</div>
-							<h4 class="tsd-parameters-title">Parameters</h4>
-							<ul class="tsd-parameters">
-								<li>
-									<h5>send: <a href="_types_d_.html#sendfn" class="tsd-signature-type">SendFn</a></h5>
-								</li>
-								<li>
-									<h5>reject: <a href="_types_d_.html#rejectfn" class="tsd-signature-type">RejectFn</a></h5>
-								</li>
-							</ul>
-							<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">(Anonymous function)</span></h4>
-						</li>
-					</ul>
-				</section>
-				<section class="tsd-panel tsd-member tsd-kind-function tsd-parent-kind-module tsd-is-not-exported">
-					<a name="resolvereferences" class="tsd-anchor"></a>
-					<h3><span class="tsd-flag ts-flagConst">Const</span> resolve<wbr>References</h3>
-					<ul class="tsd-signatures tsd-kind-function tsd-parent-kind-module tsd-is-not-exported">
-						<li class="tsd-signature tsd-kind-icon">resolve<wbr>References<span class="tsd-signature-symbol">(</span>msg<span class="tsd-signature-symbol">: </span><a href="_types_d_.html#jstype" class="tsd-signature-type">JSType</a>, get<span class="tsd-signature-symbol">: </span><span class="tsd-signature-symbol">(</span>paths<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol"> =&gt; </span><span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><a href="_types_d_.html#jstype" class="tsd-signature-type">JSType</a><span class="tsd-signature-symbol">&gt;</span>, level<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><a href="_types_d_.html#jstype" class="tsd-signature-type">JSType</a><span class="tsd-signature-symbol">&gt;</span></li>
-					</ul>
-					<ul class="tsd-descriptions">
-						<li class="tsd-description">
-							<aside class="tsd-sources">
-								<ul>
-									<li>Defined in src/index.ts:21</li>
-								</ul>
-							</aside>
-							<div class="tsd-comment tsd-typography">
-								<div class="lead">
-									<p>Resolve references in message</p>
-								</div>
-							</div>
-							<h4 class="tsd-parameters-title">Parameters</h4>
-							<ul class="tsd-parameters">
-								<li>
-									<h5>msg: <a href="_types_d_.html#jstype" class="tsd-signature-type">JSType</a></h5>
-									<div class="tsd-comment tsd-typography">
-										<div class="lead">
-											<p>Message containing reference</p>
-										</div>
-									</div>
-								</li>
-								<li>
-									<h5>get: <span class="tsd-signature-symbol">(</span>paths<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol"> =&gt; </span><span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><a href="_types_d_.html#jstype" class="tsd-signature-type">JSType</a><span class="tsd-signature-symbol">&gt;</span></h5>
-									<div class="tsd-comment tsd-typography">
-										<div class="lead">
-											<p>Function to retrieve value given reference</p>
-										</div>
-									</div>
-									<ul class="tsd-parameters">
-										<li class="tsd-parameter-signature">
-											<ul class="tsd-signatures tsd-kind-type-literal tsd-is-not-exported">
-												<li class="tsd-signature tsd-kind-icon"><span class="tsd-signature-symbol">(</span>paths<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><a href="_types_d_.html#jstype" class="tsd-signature-type">JSType</a><span class="tsd-signature-symbol">&gt;</span></li>
-											</ul>
-											<ul class="tsd-descriptions">
-												<li class="tsd-description">
-													<h4 class="tsd-parameters-title">Parameters</h4>
-													<ul class="tsd-parameters">
-														<li>
-															<h5>paths: <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">[]</span></h5>
-														</li>
-													</ul>
-													<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><a href="_types_d_.html#jstype" class="tsd-signature-type">JSType</a><span class="tsd-signature-symbol">&gt;</span></h4>
-												</li>
-											</ul>
-										</li>
-									</ul>
-								</li>
-								<li>
-									<h5>level: <span class="tsd-signature-type">number</span></h5>
-									<div class="tsd-comment tsd-typography">
-										<div class="lead">
-											<p>Number of nest levels to resolve</p>
-										</div>
-									</div>
-								</li>
-							</ul>
-							<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><a href="_types_d_.html#jstype" class="tsd-signature-type">JSType</a><span class="tsd-signature-symbol">&gt;</span></h4>
-						</li>
-					</ul>
-				</section>
-				<section class="tsd-panel tsd-member tsd-kind-function tsd-parent-kind-module tsd-is-not-exported">
-					<a name="splitreference" class="tsd-anchor"></a>
-					<h3><span class="tsd-flag ts-flagConst">Const</span> split<wbr>Reference</h3>
-					<ul class="tsd-signatures tsd-kind-function tsd-parent-kind-module tsd-is-not-exported">
-						<li class="tsd-signature tsd-kind-icon">split<wbr>Reference<span class="tsd-signature-symbol">(</span>s<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">[]</span></li>
-					</ul>
-					<ul class="tsd-descriptions">
-						<li class="tsd-description">
-							<aside class="tsd-sources">
-								<ul>
-									<li>Defined in src/index.ts:13</li>
-								</ul>
-							</aside>
-							<div class="tsd-comment tsd-typography">
-								<div class="lead">
-									<p>Split reference string</p>
-								</div>
-							</div>
-							<h4 class="tsd-parameters-title">Parameters</h4>
-							<ul class="tsd-parameters">
-								<li>
-									<h5>s: <span class="tsd-signature-type">string</span></h5>
-								</li>
-							</ul>
-							<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">[]</span></h4>
-						</li>
-					</ul>
-				</section>
-				<section class="tsd-panel tsd-member tsd-kind-function tsd-parent-kind-module tsd-is-not-exported">
-					<a name="throwmsgerror" class="tsd-anchor"></a>
-					<h3><span class="tsd-flag ts-flagConst">Const</span> throw<wbr>Msg<wbr>Error</h3>
-					<ul class="tsd-signatures tsd-kind-function tsd-parent-kind-module tsd-is-not-exported">
-						<li class="tsd-signature tsd-kind-icon">throw<wbr>Msg<wbr>Error<span class="tsd-signature-symbol">(</span>path<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">[]</span>, reject<span class="tsd-signature-symbol">: </span><span class="tsd-signature-symbol">(</span>err<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol"> =&gt; </span><span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">(Anonymous function)</span></li>
-					</ul>
-					<ul class="tsd-descriptions">
-						<li class="tsd-description">
-							<aside class="tsd-sources">
-								<ul>
-									<li>Defined in src/index.ts:46</li>
-								</ul>
-							</aside>
-							<div class="tsd-comment tsd-typography">
-								<div class="lead">
-									<p>Shorthand for throwing message-related error</p>
-								</div>
-							</div>
-							<h4 class="tsd-parameters-title">Parameters</h4>
-							<ul class="tsd-parameters">
-								<li>
-									<h5>path: <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">[]</span></h5>
-								</li>
-								<li>
-									<h5>reject: <span class="tsd-signature-symbol">(</span>err<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol"> =&gt; </span><span class="tsd-signature-type">void</span></h5>
-									<ul class="tsd-parameters">
-										<li class="tsd-parameter-signature">
-											<ul class="tsd-signatures tsd-kind-type-literal tsd-is-not-exported">
-												<li class="tsd-signature tsd-kind-icon"><span class="tsd-signature-symbol">(</span>err<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">void</span></li>
-											</ul>
-											<ul class="tsd-descriptions">
-												<li class="tsd-description">
-													<h4 class="tsd-parameters-title">Parameters</h4>
-													<ul class="tsd-parameters">
-														<li>
-															<h5>err: <span class="tsd-signature-type">any</span></h5>
-														</li>
-													</ul>
-													<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">void</span></h4>
-												</li>
-											</ul>
-										</li>
-									</ul>
-								</li>
-							</ul>
-							<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">(Anonymous function)</span></h4>
+							<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><a href="../interfaces/_types_.usp.html" class="tsd-signature-type">USP</a><span class="tsd-signature-symbol">&gt;</span></h4>
 						</li>
 					</ul>
 				</section>
@@ -734,84 +169,66 @@
 					<li class="globals  ">
 						<a href="../globals.html"><em>Globals</em></a>
 					</li>
-					<li class="current tsd-kind-module">
-						<a href="_index_.html">&quot;index&quot;</a>
+					<li class="label tsd-is-external">
+						<span>Internals</span>
 					</li>
 					<li class=" tsd-kind-module">
-						<a href="_lib_.html">&quot;lib&quot;</a>
+						<a href="_commands_add_.html">&quot;commands/add&quot;</a>
 					</li>
 					<li class=" tsd-kind-module">
-						<a href="_protocol_index_.html">&quot;protocol/index&quot;</a>
+						<a href="_commands_del_.html">&quot;commands/del&quot;</a>
 					</li>
 					<li class=" tsd-kind-module">
-						<a href="_protocol_js_usp_protobuf_protomessage_.html">&quot;protocol/js-<wbr>usp-<wbr>protobuf/proto<wbr>Message&quot;</a>
+						<a href="_commands_get_.html">&quot;commands/get&quot;</a>
 					</li>
 					<li class=" tsd-kind-module">
-						<a href="_protocol_lib_.html">&quot;protocol/lib&quot;</a>
+						<a href="_commands_index_.html">&quot;commands/index&quot;</a>
 					</li>
 					<li class=" tsd-kind-module">
-						<a href="_types_d_.html">&quot;types.d&quot;</a>
+						<a href="_commands_operate_.html">&quot;commands/operate&quot;</a>
 					</li>
-				</ul>
-			</nav>
-			<nav class="tsd-navigation secondary menu-sticky">
-				<ul class="before-current">
-					<li class=" tsd-kind-type-alias tsd-parent-kind-module tsd-is-not-exported">
-						<a href="_index_.html#addfn" class="tsd-kind-icon">Add<wbr>Fn</a>
-					</li>
-					<li class=" tsd-kind-type-alias tsd-parent-kind-module tsd-is-not-exported">
-						<a href="_index_.html#delfn" class="tsd-kind-icon">Del<wbr>Fn</a>
-					</li>
-					<li class=" tsd-kind-variable tsd-parent-kind-module tsd-is-not-exported">
-						<a href="_index_.html#commandswithreturnvalue" class="tsd-kind-icon">commands<wbr>With<wbr>Return<wbr>Value</a>
-					</li>
-					<li class=" tsd-kind-variable tsd-parent-kind-module tsd-is-not-exported">
-						<a href="_index_.html#operatesubscriptionpath" class="tsd-kind-icon">operate<wbr>Subscription<wbr>Path</a>
-					</li>
-					<li class=" tsd-kind-function tsd-parent-kind-module tsd-is-not-exported">
-						<a href="_index_.html#adddot" class="tsd-kind-icon">add<wbr>Dot</a>
-					</li>
-					<li class=" tsd-kind-function tsd-parent-kind-module tsd-is-not-exported">
-						<a href="_index_.html#connect" class="tsd-kind-icon">connect</a>
-					</li>
-					<li class=" tsd-kind-function tsd-parent-kind-module tsd-is-not-exported">
-						<a href="_index_.html#decode" class="tsd-kind-icon">decode</a>
+					<li class=" tsd-kind-module">
+						<a href="_commands_recipes_resolve_.html">&quot;commands/recipes/resolve&quot;</a>
 					</li>
-					<li class=" tsd-kind-function tsd-parent-kind-module tsd-is-not-exported">
-						<a href="_index_.html#handlesend" class="tsd-kind-icon">handle<wbr>Send</a>
+					<li class=" tsd-kind-module">
+						<a href="_commands_set_.html">&quot;commands/set&quot;</a>
 					</li>
-					<li class=" tsd-kind-function tsd-parent-kind-module tsd-is-not-exported">
-						<a href="_index_.html#iserror" class="tsd-kind-icon">is<wbr>Error</a>
+					<li class=" tsd-kind-module">
+						<a href="_commands_util_.html">&quot;commands/util&quot;</a>
 					</li>
-					<li class=" tsd-kind-function tsd-parent-kind-module tsd-is-not-exported">
-						<a href="_index_.html#ispromiseresult" class="tsd-kind-icon">is<wbr>Promise<wbr>Result</a>
+					<li class="current tsd-kind-module">
+						<a href="_index_.html">&quot;index&quot;</a>
 					</li>
-					<li class=" tsd-kind-function tsd-parent-kind-module tsd-is-not-exported">
-						<a href="_index_.html#isreference" class="tsd-kind-icon">is<wbr>Reference</a>
+					<li class=" tsd-kind-module">
+						<a href="_types_.html">&quot;types&quot;</a>
 					</li>
-					<li class=" tsd-kind-function tsd-parent-kind-module tsd-is-not-exported">
-						<a href="_index_.html#makeadd" class="tsd-kind-icon">make<wbr>Add</a>
+					<li class=" tsd-kind-module">
+						<a href="_util_.html">&quot;util&quot;</a>
 					</li>
-					<li class=" tsd-kind-function tsd-parent-kind-module tsd-is-not-exported">
-						<a href="_index_.html#makedel" class="tsd-kind-icon">make<wbr>Del</a>
+					<li class="label tsd-is-external">
+						<span>Externals</span>
 					</li>
-					<li class=" tsd-kind-function tsd-parent-kind-module tsd-is-not-exported">
-						<a href="_index_.html#makeget" class="tsd-kind-icon">make<wbr>Get</a>
+					<li class=" tsd-kind-module tsd-is-external">
+						<a href="_specs_usp_msg_1_1_.html">&quot;specs/usp-<wbr>msg-<wbr>1-1&quot;</a>
 					</li>
-					<li class=" tsd-kind-function tsd-parent-kind-module tsd-is-not-exported">
-						<a href="_index_.html#makeoperate" class="tsd-kind-icon">make<wbr>Operate</a>
+					<li class=" tsd-kind-module tsd-is-external">
+						<a href="_specs_usp_record_1_1_.html">&quot;specs/usp-<wbr>record-<wbr>1-1&quot;</a>
 					</li>
-					<li class=" tsd-kind-function tsd-parent-kind-module tsd-is-not-exported">
-						<a href="_index_.html#makeset" class="tsd-kind-icon">make<wbr>Set</a>
+				</ul>
+			</nav>
+			<nav class="tsd-navigation secondary menu-sticky">
+				<ul class="before-current">
+					<li class=" tsd-kind-variable tsd-parent-kind-module tsd-is-not-exported">
+						<a href="_index_.html#defaultpublishendpoint" class="tsd-kind-icon">default<wbr>Publish<wbr>Endpoint</a>
 					</li>
-					<li class=" tsd-kind-function tsd-parent-kind-module tsd-is-not-exported">
-						<a href="_index_.html#resolvereferences" class="tsd-kind-icon">resolve<wbr>References</a>
+					<li class=" tsd-kind-variable tsd-parent-kind-module tsd-is-not-exported">
+						<a href="_index_.html#defaultsubscribeendpoint" class="tsd-kind-icon">default<wbr>Subscribe<wbr>Endpoint</a>
 					</li>
 					<li class=" tsd-kind-function tsd-parent-kind-module tsd-is-not-exported">
-						<a href="_index_.html#splitreference" class="tsd-kind-icon">split<wbr>Reference</a>
+						<a href="_index_.html#_connect" class="tsd-kind-icon">_connect</a>
 					</li>
-					<li class=" tsd-kind-function tsd-parent-kind-module tsd-is-not-exported">
-						<a href="_index_.html#throwmsgerror" class="tsd-kind-icon">throw<wbr>Msg<wbr>Error</a>
+					<li class=" tsd-kind-function tsd-parent-kind-module">
+						<a href="_index_.html#connect" class="tsd-kind-icon">connect</a>
 					</li>
 				</ul>
 			</nav>
diff --git a/public/modules/_protocol_index_.html b/public/modules/_protocol_index_.html
deleted file mode 100644
index 4e24b7ae76f87c42f6be640413e037847ba981b8..0000000000000000000000000000000000000000
--- a/public/modules/_protocol_index_.html
+++ /dev/null
@@ -1,576 +0,0 @@
-<!doctype html>
-<html class="default no-js">
-<head>
-	<meta charset="utf-8">
-	<meta http-equiv="X-UA-Compatible" content="IE=edge">
-	<title>&quot;protocol/index&quot; | usp-js</title>
-	<meta name="description" content="Documentation for usp-js">
-	<meta name="viewport" content="width=device-width, initial-scale=1">
-	<link rel="stylesheet" href="../assets/css/main.css">
-</head>
-<body>
-<header>
-	<div class="tsd-page-toolbar">
-		<div class="container">
-			<div class="table-wrap">
-				<div class="table-cell" id="tsd-search" data-index="../assets/js/search.json" data-base="..">
-					<div class="field">
-						<label for="tsd-search-field" class="tsd-widget search no-caption">Search</label>
-						<input id="tsd-search-field" type="text" />
-					</div>
-					<ul class="results">
-						<li class="state loading">Preparing search index...</li>
-						<li class="state failure">The search index is not available</li>
-					</ul>
-					<a href="../index.html" class="title">usp-js</a>
-				</div>
-				<div class="table-cell" id="tsd-widgets">
-					<div id="tsd-filter">
-						<a href="#" class="tsd-widget options no-caption" data-toggle="options">Options</a>
-						<div class="tsd-filter-group">
-							<div class="tsd-select" id="tsd-filter-visibility">
-								<span class="tsd-select-label">All</span>
-								<ul class="tsd-select-list">
-									<li data-value="public">Public</li>
-									<li data-value="protected">Public/Protected</li>
-									<li data-value="private" class="selected">All</li>
-								</ul>
-							</div>
-							<input type="checkbox" id="tsd-filter-inherited" checked />
-							<label class="tsd-widget" for="tsd-filter-inherited">Inherited</label>
-							<input type="checkbox" id="tsd-filter-externals" checked />
-							<label class="tsd-widget" for="tsd-filter-externals">Externals</label>
-							<input type="checkbox" id="tsd-filter-only-exported" />
-							<label class="tsd-widget" for="tsd-filter-only-exported">Only exported</label>
-						</div>
-					</div>
-					<a href="#" class="tsd-widget menu no-caption" data-toggle="menu">Menu</a>
-				</div>
-			</div>
-		</div>
-	</div>
-	<div class="tsd-page-title">
-		<div class="container">
-			<ul class="tsd-breadcrumb">
-				<li>
-					<a href="../globals.html">Globals</a>
-				</li>
-				<li>
-					<a href="_protocol_index_.html">&quot;protocol/index&quot;</a>
-				</li>
-			</ul>
-			<h1>Module &quot;protocol/index&quot;</h1>
-		</div>
-	</div>
-</header>
-<div class="container container-main">
-	<div class="row">
-		<div class="col-8 col-content">
-			<section class="tsd-panel-group tsd-index-group">
-				<h2>Index</h2>
-				<section class="tsd-panel tsd-index-panel">
-					<div class="tsd-index-content">
-						<section class="tsd-index-section tsd-is-not-exported">
-							<h3>Variables</h3>
-							<ul class="tsd-index-list">
-								<li class="tsd-kind-variable tsd-parent-kind-module tsd-is-not-exported"><a href="_protocol_index_.html#defaultpublishendpoint" class="tsd-kind-icon">default<wbr>Publish<wbr>Endpoint</a></li>
-								<li class="tsd-kind-variable tsd-parent-kind-module tsd-is-not-exported"><a href="_protocol_index_.html#defaultsubscribeendpoint" class="tsd-kind-icon">default<wbr>Subscribe<wbr>Endpoint</a></li>
-								<li class="tsd-kind-variable tsd-parent-kind-module tsd-is-not-exported"><a href="_protocol_index_.html#ignorabletypes" class="tsd-kind-icon">ignorable<wbr>Types</a></li>
-							</ul>
-						</section>
-						<section class="tsd-index-section ">
-							<h3>Functions</h3>
-							<ul class="tsd-index-list">
-								<li class="tsd-kind-function tsd-parent-kind-module"><a href="_protocol_index_.html#connect" class="tsd-kind-icon">connect</a></li>
-								<li class="tsd-kind-function tsd-parent-kind-module tsd-is-not-exported"><a href="_protocol_index_.html#decode" class="tsd-kind-icon">decode</a></li>
-								<li class="tsd-kind-function tsd-parent-kind-module tsd-is-not-exported"><a href="_protocol_index_.html#decodeget" class="tsd-kind-icon">decode<wbr>Get</a></li>
-								<li class="tsd-kind-function tsd-parent-kind-module tsd-is-not-exported"><a href="_protocol_index_.html#encode" class="tsd-kind-icon">encode</a></li>
-								<li class="tsd-kind-function tsd-parent-kind-module tsd-is-not-exported"><a href="_protocol_index_.html#encodeadd" class="tsd-kind-icon">encode<wbr>Add</a></li>
-								<li class="tsd-kind-function tsd-parent-kind-module tsd-is-not-exported"><a href="_protocol_index_.html#encodedelete" class="tsd-kind-icon">encode<wbr>Delete</a></li>
-								<li class="tsd-kind-function tsd-parent-kind-module tsd-is-not-exported"><a href="_protocol_index_.html#encodeget" class="tsd-kind-icon">encode<wbr>Get</a></li>
-								<li class="tsd-kind-function tsd-parent-kind-module tsd-is-not-exported"><a href="_protocol_index_.html#encodeoperate" class="tsd-kind-icon">encode<wbr>Operate</a></li>
-								<li class="tsd-kind-function tsd-parent-kind-module tsd-is-not-exported"><a href="_protocol_index_.html#encodeset" class="tsd-kind-icon">encode<wbr>Set</a></li>
-								<li class="tsd-kind-function tsd-parent-kind-module tsd-is-not-exported"><a href="_protocol_index_.html#extracttype" class="tsd-kind-icon">extract<wbr>Type</a></li>
-								<li class="tsd-kind-function tsd-parent-kind-module"><a href="_protocol_index_.html#mqtt" class="tsd-kind-icon">mqtt</a></li>
-							</ul>
-						</section>
-					</div>
-				</section>
-			</section>
-			<section class="tsd-panel-group tsd-member-group tsd-is-not-exported">
-				<h2>Variables</h2>
-				<section class="tsd-panel tsd-member tsd-kind-variable tsd-parent-kind-module tsd-is-not-exported">
-					<a name="defaultpublishendpoint" class="tsd-anchor"></a>
-					<h3><span class="tsd-flag ts-flagConst">Const</span> default<wbr>Publish<wbr>Endpoint</h3>
-					<div class="tsd-signature tsd-kind-icon">default<wbr>Publish<wbr>Endpoint<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">"/usp/endpoint"</span><span class="tsd-signature-symbol"> = &quot;/usp/endpoint&quot;</span></div>
-					<aside class="tsd-sources">
-						<ul>
-							<li>Defined in src/protocol/index.ts:160</li>
-						</ul>
-					</aside>
-				</section>
-				<section class="tsd-panel tsd-member tsd-kind-variable tsd-parent-kind-module tsd-is-not-exported">
-					<a name="defaultsubscribeendpoint" class="tsd-anchor"></a>
-					<h3><span class="tsd-flag ts-flagConst">Const</span> default<wbr>Subscribe<wbr>Endpoint</h3>
-					<div class="tsd-signature tsd-kind-icon">default<wbr>Subscribe<wbr>Endpoint<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">"/usp/controller"</span><span class="tsd-signature-symbol"> = &quot;/usp/controller&quot;</span></div>
-					<aside class="tsd-sources">
-						<ul>
-							<li>Defined in src/protocol/index.ts:161</li>
-						</ul>
-					</aside>
-				</section>
-				<section class="tsd-panel tsd-member tsd-kind-variable tsd-parent-kind-module tsd-is-not-exported">
-					<a name="ignorabletypes" class="tsd-anchor"></a>
-					<h3><span class="tsd-flag ts-flagConst">Const</span> ignorable<wbr>Types</h3>
-					<div class="tsd-signature tsd-kind-icon">ignorable<wbr>Types<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol"> = [&quot;operate&quot;]</span></div>
-					<aside class="tsd-sources">
-						<ul>
-							<li>Defined in src/protocol/index.ts:73</li>
-						</ul>
-					</aside>
-				</section>
-			</section>
-			<section class="tsd-panel-group tsd-member-group ">
-				<h2>Functions</h2>
-				<section class="tsd-panel tsd-member tsd-kind-function tsd-parent-kind-module">
-					<a name="connect" class="tsd-anchor"></a>
-					<h3><span class="tsd-flag ts-flagConst">Const</span> connect</h3>
-					<ul class="tsd-signatures tsd-kind-function tsd-parent-kind-module">
-						<li class="tsd-signature tsd-kind-icon">connect<span class="tsd-signature-symbol">(</span>opts<span class="tsd-signature-symbol">: </span><a href="../interfaces/_types_d_.connectoptions.html" class="tsd-signature-type">ConnectOptions</a><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">AsyncMqttClient</span><span class="tsd-signature-symbol">&gt;</span></li>
-					</ul>
-					<ul class="tsd-descriptions">
-						<li class="tsd-description">
-							<aside class="tsd-sources">
-								<ul>
-									<li>Defined in src/protocol/index.ts:164</li>
-								</ul>
-							</aside>
-							<div class="tsd-comment tsd-typography">
-								<div class="lead">
-									<p>Connect to device</p>
-								</div>
-							</div>
-							<h4 class="tsd-parameters-title">Parameters</h4>
-							<ul class="tsd-parameters">
-								<li>
-									<h5>opts: <a href="../interfaces/_types_d_.connectoptions.html" class="tsd-signature-type">ConnectOptions</a></h5>
-								</li>
-							</ul>
-							<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">AsyncMqttClient</span><span class="tsd-signature-symbol">&gt;</span></h4>
-						</li>
-					</ul>
-				</section>
-				<section class="tsd-panel tsd-member tsd-kind-function tsd-parent-kind-module tsd-is-not-exported">
-					<a name="decode" class="tsd-anchor"></a>
-					<h3><span class="tsd-flag ts-flagConst">Const</span> decode</h3>
-					<ul class="tsd-signatures tsd-kind-function tsd-parent-kind-module tsd-is-not-exported">
-						<li class="tsd-signature tsd-kind-icon">decode<span class="tsd-signature-symbol">(</span>msg<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">any</span>, type<span class="tsd-signature-symbol">: </span><a href="_types_d_.html#messagetype" class="tsd-signature-type">MessageType</a><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="_types_d_.html#uspmessage" class="tsd-signature-type">USPMessage</a></li>
-					</ul>
-					<ul class="tsd-descriptions">
-						<li class="tsd-description">
-							<aside class="tsd-sources">
-								<ul>
-									<li>Defined in src/protocol/index.ts:76</li>
-								</ul>
-							</aside>
-							<div class="tsd-comment tsd-typography">
-								<div class="lead">
-									<p>Decode message</p>
-								</div>
-							</div>
-							<h4 class="tsd-parameters-title">Parameters</h4>
-							<ul class="tsd-parameters">
-								<li>
-									<h5>msg: <span class="tsd-signature-type">any</span></h5>
-								</li>
-								<li>
-									<h5>type: <a href="_types_d_.html#messagetype" class="tsd-signature-type">MessageType</a></h5>
-								</li>
-							</ul>
-							<h4 class="tsd-returns-title">Returns <a href="_types_d_.html#uspmessage" class="tsd-signature-type">USPMessage</a></h4>
-						</li>
-					</ul>
-				</section>
-				<section class="tsd-panel tsd-member tsd-kind-function tsd-parent-kind-module tsd-is-not-exported">
-					<a name="decodeget" class="tsd-anchor"></a>
-					<h3><span class="tsd-flag ts-flagConst">Const</span> decode<wbr>Get</h3>
-					<ul class="tsd-signatures tsd-kind-function tsd-parent-kind-module tsd-is-not-exported">
-						<li class="tsd-signature tsd-kind-icon">decode<wbr>Get<span class="tsd-signature-symbol">(</span>msg<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">any</span>, id<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="../interfaces/_types_d_.getmessage.html" class="tsd-signature-type">GetMessage</a></li>
-					</ul>
-					<ul class="tsd-descriptions">
-						<li class="tsd-description">
-							<aside class="tsd-sources">
-								<ul>
-									<li>Defined in src/protocol/index.ts:58</li>
-								</ul>
-							</aside>
-							<div class="tsd-comment tsd-typography">
-								<div class="lead">
-									<p>Decode get message</p>
-								</div>
-							</div>
-							<h4 class="tsd-parameters-title">Parameters</h4>
-							<ul class="tsd-parameters">
-								<li>
-									<h5>msg: <span class="tsd-signature-type">any</span></h5>
-								</li>
-								<li>
-									<h5>id: <span class="tsd-signature-type">string</span></h5>
-								</li>
-							</ul>
-							<h4 class="tsd-returns-title">Returns <a href="../interfaces/_types_d_.getmessage.html" class="tsd-signature-type">GetMessage</a></h4>
-						</li>
-					</ul>
-				</section>
-				<section class="tsd-panel tsd-member tsd-kind-function tsd-parent-kind-module tsd-is-not-exported">
-					<a name="encode" class="tsd-anchor"></a>
-					<h3><span class="tsd-flag ts-flagConst">Const</span> encode</h3>
-					<ul class="tsd-signatures tsd-kind-function tsd-parent-kind-module tsd-is-not-exported">
-						<li class="tsd-signature tsd-kind-icon">encode<span class="tsd-signature-symbol">(</span>command<span class="tsd-signature-symbol">: </span><a href="_types_d_.html#commandtype" class="tsd-signature-type">CommandType</a>, args<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Partial</span><span class="tsd-signature-symbol">&lt;</span><a href="../interfaces/_types_d_.encodeargs.html" class="tsd-signature-type">EncodeArgs</a><span class="tsd-signature-symbol">&gt;</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-symbol">{ </span>data<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">; </span>id<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol"> }</span></li>
-					</ul>
-					<ul class="tsd-descriptions">
-						<li class="tsd-description">
-							<aside class="tsd-sources">
-								<ul>
-									<li>Defined in src/protocol/index.ts:137</li>
-								</ul>
-							</aside>
-							<div class="tsd-comment tsd-typography">
-								<div class="lead">
-									<p>Encode message</p>
-								</div>
-							</div>
-							<h4 class="tsd-parameters-title">Parameters</h4>
-							<ul class="tsd-parameters">
-								<li>
-									<h5>command: <a href="_types_d_.html#commandtype" class="tsd-signature-type">CommandType</a></h5>
-								</li>
-								<li>
-									<h5>args: <span class="tsd-signature-type">Partial</span><span class="tsd-signature-symbol">&lt;</span><a href="../interfaces/_types_d_.encodeargs.html" class="tsd-signature-type">EncodeArgs</a><span class="tsd-signature-symbol">&gt;</span></h5>
-								</li>
-							</ul>
-							<h4 class="tsd-returns-title">Returns <span class="tsd-signature-symbol">{ </span>data<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">; </span>id<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol"> }</span></h4>
-							<ul class="tsd-parameters">
-								<li class="tsd-parameter">
-									<h5>data<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">any</span></h5>
-								</li>
-								<li class="tsd-parameter">
-									<h5>id<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span></h5>
-								</li>
-							</ul>
-						</li>
-					</ul>
-				</section>
-				<section class="tsd-panel tsd-member tsd-kind-function tsd-parent-kind-module tsd-is-not-exported">
-					<a name="encodeadd" class="tsd-anchor"></a>
-					<h3><span class="tsd-flag ts-flagConst">Const</span> encode<wbr>Add</h3>
-					<ul class="tsd-signatures tsd-kind-function tsd-parent-kind-module tsd-is-not-exported">
-						<li class="tsd-signature tsd-kind-icon">encode<wbr>Add<span class="tsd-signature-symbol">(</span>path<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span>, input<span class="tsd-signature-symbol">?: </span><a href="_types_d_.html#jsobject" class="tsd-signature-type">JSObject</a><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="../interfaces/_types_d_.mqttrequest.html" class="tsd-signature-type">MQTTRequest</a></li>
-					</ul>
-					<ul class="tsd-descriptions">
-						<li class="tsd-description">
-							<aside class="tsd-sources">
-								<ul>
-									<li>Defined in src/protocol/index.ts:116</li>
-								</ul>
-							</aside>
-							<div class="tsd-comment tsd-typography">
-								<div class="lead">
-									<p>Encode add message</p>
-								</div>
-							</div>
-							<h4 class="tsd-parameters-title">Parameters</h4>
-							<ul class="tsd-parameters">
-								<li>
-									<h5>path: <span class="tsd-signature-type">string</span></h5>
-								</li>
-								<li>
-									<h5><span class="tsd-flag ts-flagOptional">Optional</span> input: <a href="_types_d_.html#jsobject" class="tsd-signature-type">JSObject</a></h5>
-								</li>
-							</ul>
-							<h4 class="tsd-returns-title">Returns <a href="../interfaces/_types_d_.mqttrequest.html" class="tsd-signature-type">MQTTRequest</a></h4>
-						</li>
-					</ul>
-				</section>
-				<section class="tsd-panel tsd-member tsd-kind-function tsd-parent-kind-module tsd-is-not-exported">
-					<a name="encodedelete" class="tsd-anchor"></a>
-					<h3><span class="tsd-flag ts-flagConst">Const</span> encode<wbr>Delete</h3>
-					<ul class="tsd-signatures tsd-kind-function tsd-parent-kind-module tsd-is-not-exported">
-						<li class="tsd-signature tsd-kind-icon">encode<wbr>Delete<span class="tsd-signature-symbol">(</span>paths<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="../interfaces/_types_d_.mqttrequest.html" class="tsd-signature-type">MQTTRequest</a></li>
-					</ul>
-					<ul class="tsd-descriptions">
-						<li class="tsd-description">
-							<aside class="tsd-sources">
-								<ul>
-									<li>Defined in src/protocol/index.ts:128</li>
-								</ul>
-							</aside>
-							<div class="tsd-comment tsd-typography">
-								<div class="lead">
-									<p>Encode delete message</p>
-								</div>
-							</div>
-							<h4 class="tsd-parameters-title">Parameters</h4>
-							<ul class="tsd-parameters">
-								<li>
-									<h5>paths: <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">[]</span></h5>
-								</li>
-							</ul>
-							<h4 class="tsd-returns-title">Returns <a href="../interfaces/_types_d_.mqttrequest.html" class="tsd-signature-type">MQTTRequest</a></h4>
-						</li>
-					</ul>
-				</section>
-				<section class="tsd-panel tsd-member tsd-kind-function tsd-parent-kind-module tsd-is-not-exported">
-					<a name="encodeget" class="tsd-anchor"></a>
-					<h3><span class="tsd-flag ts-flagConst">Const</span> encode<wbr>Get</h3>
-					<ul class="tsd-signatures tsd-kind-function tsd-parent-kind-module tsd-is-not-exported">
-						<li class="tsd-signature tsd-kind-icon">encode<wbr>Get<span class="tsd-signature-symbol">(</span>paths<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="../interfaces/_types_d_.mqttrequest.html" class="tsd-signature-type">MQTTRequest</a></li>
-					</ul>
-					<ul class="tsd-descriptions">
-						<li class="tsd-description">
-							<aside class="tsd-sources">
-								<ul>
-									<li>Defined in src/protocol/index.ts:6</li>
-								</ul>
-							</aside>
-							<div class="tsd-comment tsd-typography">
-								<div class="lead">
-									<p>Encode get message</p>
-								</div>
-							</div>
-							<h4 class="tsd-parameters-title">Parameters</h4>
-							<ul class="tsd-parameters">
-								<li>
-									<h5>paths: <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">[]</span></h5>
-								</li>
-							</ul>
-							<h4 class="tsd-returns-title">Returns <a href="../interfaces/_types_d_.mqttrequest.html" class="tsd-signature-type">MQTTRequest</a></h4>
-						</li>
-					</ul>
-				</section>
-				<section class="tsd-panel tsd-member tsd-kind-function tsd-parent-kind-module tsd-is-not-exported">
-					<a name="encodeoperate" class="tsd-anchor"></a>
-					<h3><span class="tsd-flag ts-flagConst">Const</span> encode<wbr>Operate</h3>
-					<ul class="tsd-signatures tsd-kind-function tsd-parent-kind-module tsd-is-not-exported">
-						<li class="tsd-signature tsd-kind-icon">encode<wbr>Operate<span class="tsd-signature-symbol">(</span>path<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span>, action<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span>, operateID<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span>, input<span class="tsd-signature-symbol">?: </span><span class="tsd-signature-type">undefined</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">object</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="../interfaces/_types_d_.mqttrequest.html" class="tsd-signature-type">MQTTRequest</a></li>
-					</ul>
-					<ul class="tsd-descriptions">
-						<li class="tsd-description">
-							<aside class="tsd-sources">
-								<ul>
-									<li>Defined in src/protocol/index.ts:36</li>
-								</ul>
-							</aside>
-							<div class="tsd-comment tsd-typography">
-								<div class="lead">
-									<p>Encode operate message</p>
-								</div>
-							</div>
-							<h4 class="tsd-parameters-title">Parameters</h4>
-							<ul class="tsd-parameters">
-								<li>
-									<h5>path: <span class="tsd-signature-type">string</span></h5>
-								</li>
-								<li>
-									<h5>action: <span class="tsd-signature-type">string</span></h5>
-								</li>
-								<li>
-									<h5>operateID: <span class="tsd-signature-type">string</span></h5>
-								</li>
-								<li>
-									<h5><span class="tsd-flag ts-flagOptional">Optional</span> input: <span class="tsd-signature-type">undefined</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">object</span></h5>
-								</li>
-							</ul>
-							<h4 class="tsd-returns-title">Returns <a href="../interfaces/_types_d_.mqttrequest.html" class="tsd-signature-type">MQTTRequest</a></h4>
-						</li>
-					</ul>
-				</section>
-				<section class="tsd-panel tsd-member tsd-kind-function tsd-parent-kind-module tsd-is-not-exported">
-					<a name="encodeset" class="tsd-anchor"></a>
-					<h3><span class="tsd-flag ts-flagConst">Const</span> encode<wbr>Set</h3>
-					<ul class="tsd-signatures tsd-kind-function tsd-parent-kind-module tsd-is-not-exported">
-						<li class="tsd-signature tsd-kind-icon">encode<wbr>Set<span class="tsd-signature-symbol">(</span>path<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span>, value<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="../interfaces/_types_d_.mqttrequest.html" class="tsd-signature-type">MQTTRequest</a></li>
-					</ul>
-					<ul class="tsd-descriptions">
-						<li class="tsd-description">
-							<aside class="tsd-sources">
-								<ul>
-									<li>Defined in src/protocol/index.ts:15</li>
-								</ul>
-							</aside>
-							<div class="tsd-comment tsd-typography">
-								<div class="lead">
-									<p>Encode set message</p>
-								</div>
-							</div>
-							<h4 class="tsd-parameters-title">Parameters</h4>
-							<ul class="tsd-parameters">
-								<li>
-									<h5>path: <span class="tsd-signature-type">string</span></h5>
-								</li>
-								<li>
-									<h5>value: <span class="tsd-signature-type">any</span></h5>
-								</li>
-							</ul>
-							<h4 class="tsd-returns-title">Returns <a href="../interfaces/_types_d_.mqttrequest.html" class="tsd-signature-type">MQTTRequest</a></h4>
-						</li>
-					</ul>
-				</section>
-				<section class="tsd-panel tsd-member tsd-kind-function tsd-parent-kind-module tsd-is-not-exported">
-					<a name="extracttype" class="tsd-anchor"></a>
-					<h3><span class="tsd-flag ts-flagConst">Const</span> extract<wbr>Type</h3>
-					<ul class="tsd-signatures tsd-kind-function tsd-parent-kind-module tsd-is-not-exported">
-						<li class="tsd-signature tsd-kind-icon">extract<wbr>Type<span class="tsd-signature-symbol">(</span>msg<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="_types_d_.html#messagetype" class="tsd-signature-type">MessageType</a></li>
-					</ul>
-					<ul class="tsd-descriptions">
-						<li class="tsd-description">
-							<aside class="tsd-sources">
-								<ul>
-									<li>Defined in src/protocol/index.ts:50</li>
-								</ul>
-							</aside>
-							<div class="tsd-comment tsd-typography">
-								<div class="lead">
-									<p>Extract message type</p>
-								</div>
-							</div>
-							<h4 class="tsd-parameters-title">Parameters</h4>
-							<ul class="tsd-parameters">
-								<li>
-									<h5>msg: <span class="tsd-signature-type">any</span></h5>
-								</li>
-							</ul>
-							<h4 class="tsd-returns-title">Returns <a href="_types_d_.html#messagetype" class="tsd-signature-type">MessageType</a></h4>
-						</li>
-					</ul>
-				</section>
-				<section class="tsd-panel tsd-member tsd-kind-function tsd-parent-kind-module">
-					<a name="mqtt" class="tsd-anchor"></a>
-					<h3><span class="tsd-flag ts-flagConst">Const</span> mqtt</h3>
-					<ul class="tsd-signatures tsd-kind-function tsd-parent-kind-module">
-						<li class="tsd-signature tsd-kind-icon">mqtt<span class="tsd-signature-symbol">(</span>opts<span class="tsd-signature-symbol">: </span><a href="../interfaces/_types_d_.connectoptions.html" class="tsd-signature-type">ConnectOptions</a>, events<span class="tsd-signature-symbol">: </span><a href="../interfaces/_types_d_.protocolevents.html" class="tsd-signature-type">ProtocolEvents</a><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="../interfaces/_types_d_.protocol.html" class="tsd-signature-type">Protocol</a></li>
-					</ul>
-					<ul class="tsd-descriptions">
-						<li class="tsd-description">
-							<aside class="tsd-sources">
-								<ul>
-									<li>Defined in src/protocol/index.ts:173</li>
-								</ul>
-							</aside>
-							<div class="tsd-comment tsd-typography">
-								<div class="lead">
-									<p>Generate mqtt protocol</p>
-								</div>
-							</div>
-							<h4 class="tsd-parameters-title">Parameters</h4>
-							<ul class="tsd-parameters">
-								<li>
-									<h5>opts: <a href="../interfaces/_types_d_.connectoptions.html" class="tsd-signature-type">ConnectOptions</a></h5>
-								</li>
-								<li>
-									<h5>events: <a href="../interfaces/_types_d_.protocolevents.html" class="tsd-signature-type">ProtocolEvents</a></h5>
-								</li>
-							</ul>
-							<h4 class="tsd-returns-title">Returns <a href="../interfaces/_types_d_.protocol.html" class="tsd-signature-type">Protocol</a></h4>
-						</li>
-					</ul>
-				</section>
-			</section>
-		</div>
-		<div class="col-4 col-menu menu-sticky-wrap menu-highlight">
-			<nav class="tsd-navigation primary">
-				<ul>
-					<li class="globals  ">
-						<a href="../globals.html"><em>Globals</em></a>
-					</li>
-					<li class=" tsd-kind-module">
-						<a href="_index_.html">&quot;index&quot;</a>
-					</li>
-					<li class=" tsd-kind-module">
-						<a href="_lib_.html">&quot;lib&quot;</a>
-					</li>
-					<li class="current tsd-kind-module">
-						<a href="_protocol_index_.html">&quot;protocol/index&quot;</a>
-					</li>
-					<li class=" tsd-kind-module">
-						<a href="_protocol_js_usp_protobuf_protomessage_.html">&quot;protocol/js-<wbr>usp-<wbr>protobuf/proto<wbr>Message&quot;</a>
-					</li>
-					<li class=" tsd-kind-module">
-						<a href="_protocol_lib_.html">&quot;protocol/lib&quot;</a>
-					</li>
-					<li class=" tsd-kind-module">
-						<a href="_types_d_.html">&quot;types.d&quot;</a>
-					</li>
-				</ul>
-			</nav>
-			<nav class="tsd-navigation secondary menu-sticky">
-				<ul class="before-current">
-					<li class=" tsd-kind-variable tsd-parent-kind-module tsd-is-not-exported">
-						<a href="_protocol_index_.html#defaultpublishendpoint" class="tsd-kind-icon">default<wbr>Publish<wbr>Endpoint</a>
-					</li>
-					<li class=" tsd-kind-variable tsd-parent-kind-module tsd-is-not-exported">
-						<a href="_protocol_index_.html#defaultsubscribeendpoint" class="tsd-kind-icon">default<wbr>Subscribe<wbr>Endpoint</a>
-					</li>
-					<li class=" tsd-kind-variable tsd-parent-kind-module tsd-is-not-exported">
-						<a href="_protocol_index_.html#ignorabletypes" class="tsd-kind-icon">ignorable<wbr>Types</a>
-					</li>
-					<li class=" tsd-kind-function tsd-parent-kind-module">
-						<a href="_protocol_index_.html#connect" class="tsd-kind-icon">connect</a>
-					</li>
-					<li class=" tsd-kind-function tsd-parent-kind-module tsd-is-not-exported">
-						<a href="_protocol_index_.html#decode" class="tsd-kind-icon">decode</a>
-					</li>
-					<li class=" tsd-kind-function tsd-parent-kind-module tsd-is-not-exported">
-						<a href="_protocol_index_.html#decodeget" class="tsd-kind-icon">decode<wbr>Get</a>
-					</li>
-					<li class=" tsd-kind-function tsd-parent-kind-module tsd-is-not-exported">
-						<a href="_protocol_index_.html#encode" class="tsd-kind-icon">encode</a>
-					</li>
-					<li class=" tsd-kind-function tsd-parent-kind-module tsd-is-not-exported">
-						<a href="_protocol_index_.html#encodeadd" class="tsd-kind-icon">encode<wbr>Add</a>
-					</li>
-					<li class=" tsd-kind-function tsd-parent-kind-module tsd-is-not-exported">
-						<a href="_protocol_index_.html#encodedelete" class="tsd-kind-icon">encode<wbr>Delete</a>
-					</li>
-					<li class=" tsd-kind-function tsd-parent-kind-module tsd-is-not-exported">
-						<a href="_protocol_index_.html#encodeget" class="tsd-kind-icon">encode<wbr>Get</a>
-					</li>
-					<li class=" tsd-kind-function tsd-parent-kind-module tsd-is-not-exported">
-						<a href="_protocol_index_.html#encodeoperate" class="tsd-kind-icon">encode<wbr>Operate</a>
-					</li>
-					<li class=" tsd-kind-function tsd-parent-kind-module tsd-is-not-exported">
-						<a href="_protocol_index_.html#encodeset" class="tsd-kind-icon">encode<wbr>Set</a>
-					</li>
-					<li class=" tsd-kind-function tsd-parent-kind-module tsd-is-not-exported">
-						<a href="_protocol_index_.html#extracttype" class="tsd-kind-icon">extract<wbr>Type</a>
-					</li>
-					<li class=" tsd-kind-function tsd-parent-kind-module">
-						<a href="_protocol_index_.html#mqtt" class="tsd-kind-icon">mqtt</a>
-					</li>
-				</ul>
-			</nav>
-		</div>
-	</div>
-</div>
-<footer class="with-border-bottom">
-	<div class="container">
-		<h2>Legend</h2>
-		<div class="tsd-legend-group">
-			<ul class="tsd-legend">
-				<li class="tsd-kind-variable"><span class="tsd-kind-icon">Variable</span></li>
-				<li class="tsd-kind-function"><span class="tsd-kind-icon">Function</span></li>
-				<li class="tsd-kind-type-alias"><span class="tsd-kind-icon">Type alias</span></li>
-			</ul>
-			<ul class="tsd-legend">
-				<li class="tsd-kind-interface"><span class="tsd-kind-icon">Interface</span></li>
-			</ul>
-		</div>
-	</div>
-</footer>
-<div class="container tsd-generator">
-	<p>Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p>
-</div>
-<div class="overlay"></div>
-<script src="../assets/js/main.js"></script>
-</body>
-</html>
\ No newline at end of file
diff --git a/public/modules/_protocol_js_usp_protobuf_protomessage_.html b/public/modules/_protocol_js_usp_protobuf_protomessage_.html
deleted file mode 100644
index 0bc371372024cba278a771b9fa00a8196eb3a52c..0000000000000000000000000000000000000000
--- a/public/modules/_protocol_js_usp_protobuf_protomessage_.html
+++ /dev/null
@@ -1,439 +0,0 @@
-<!doctype html>
-<html class="default no-js">
-<head>
-	<meta charset="utf-8">
-	<meta http-equiv="X-UA-Compatible" content="IE=edge">
-	<title>&quot;protocol/js-usp-protobuf/protoMessage&quot; | usp-js</title>
-	<meta name="description" content="Documentation for usp-js">
-	<meta name="viewport" content="width=device-width, initial-scale=1">
-	<link rel="stylesheet" href="../assets/css/main.css">
-</head>
-<body>
-<header>
-	<div class="tsd-page-toolbar">
-		<div class="container">
-			<div class="table-wrap">
-				<div class="table-cell" id="tsd-search" data-index="../assets/js/search.json" data-base="..">
-					<div class="field">
-						<label for="tsd-search-field" class="tsd-widget search no-caption">Search</label>
-						<input id="tsd-search-field" type="text" />
-					</div>
-					<ul class="results">
-						<li class="state loading">Preparing search index...</li>
-						<li class="state failure">The search index is not available</li>
-					</ul>
-					<a href="../index.html" class="title">usp-js</a>
-				</div>
-				<div class="table-cell" id="tsd-widgets">
-					<div id="tsd-filter">
-						<a href="#" class="tsd-widget options no-caption" data-toggle="options">Options</a>
-						<div class="tsd-filter-group">
-							<div class="tsd-select" id="tsd-filter-visibility">
-								<span class="tsd-select-label">All</span>
-								<ul class="tsd-select-list">
-									<li data-value="public">Public</li>
-									<li data-value="protected">Public/Protected</li>
-									<li data-value="private" class="selected">All</li>
-								</ul>
-							</div>
-							<input type="checkbox" id="tsd-filter-inherited" checked />
-							<label class="tsd-widget" for="tsd-filter-inherited">Inherited</label>
-							<input type="checkbox" id="tsd-filter-externals" checked />
-							<label class="tsd-widget" for="tsd-filter-externals">Externals</label>
-							<input type="checkbox" id="tsd-filter-only-exported" />
-							<label class="tsd-widget" for="tsd-filter-only-exported">Only exported</label>
-						</div>
-					</div>
-					<a href="#" class="tsd-widget menu no-caption" data-toggle="menu">Menu</a>
-				</div>
-			</div>
-		</div>
-	</div>
-	<div class="tsd-page-title">
-		<div class="container">
-			<ul class="tsd-breadcrumb">
-				<li>
-					<a href="../globals.html">Globals</a>
-				</li>
-				<li>
-					<a href="_protocol_js_usp_protobuf_protomessage_.html">&quot;protocol/js-usp-protobuf/protoMessage&quot;</a>
-				</li>
-			</ul>
-			<h1>Module &quot;protocol/js-usp-protobuf/protoMessage&quot;</h1>
-		</div>
-	</div>
-</header>
-<div class="container container-main">
-	<div class="row">
-		<div class="col-8 col-content">
-			<section class="tsd-panel-group tsd-index-group">
-				<h2>Index</h2>
-				<section class="tsd-panel tsd-index-panel">
-					<div class="tsd-index-content">
-						<section class="tsd-index-section tsd-is-not-exported">
-							<h3>Variables</h3>
-							<ul class="tsd-index-list">
-								<li class="tsd-kind-variable tsd-parent-kind-module tsd-is-not-exported"><a href="_protocol_js_usp_protobuf_protomessage_.html#header" class="tsd-kind-icon">Header</a></li>
-								<li class="tsd-kind-variable tsd-parent-kind-module tsd-is-not-exported"><a href="_protocol_js_usp_protobuf_protomessage_.html#createrecord" class="tsd-kind-icon">create<wbr>Record</a></li>
-								<li class="tsd-kind-variable tsd-parent-kind-module tsd-is-not-exported"><a href="_protocol_js_usp_protobuf_protomessage_.html#rootmsg" class="tsd-kind-icon">root<wbr>Msg</a></li>
-								<li class="tsd-kind-variable tsd-parent-kind-module tsd-is-not-exported"><a href="_protocol_js_usp_protobuf_protomessage_.html#rootrecord" class="tsd-kind-icon">root<wbr>Record</a></li>
-							</ul>
-						</section>
-						<section class="tsd-index-section ">
-							<h3>Functions</h3>
-							<ul class="tsd-index-list">
-								<li class="tsd-kind-function tsd-parent-kind-module"><a href="_protocol_js_usp_protobuf_protomessage_.html#decode" class="tsd-kind-icon">decode</a></li>
-								<li class="tsd-kind-function tsd-parent-kind-module"><a href="_protocol_js_usp_protobuf_protomessage_.html#init" class="tsd-kind-icon">init</a></li>
-								<li class="tsd-kind-function tsd-parent-kind-module"><a href="_protocol_js_usp_protobuf_protomessage_.html#makeaddmessage" class="tsd-kind-icon">make<wbr>Add<wbr>Message</a></li>
-								<li class="tsd-kind-function tsd-parent-kind-module"><a href="_protocol_js_usp_protobuf_protomessage_.html#makedeletemessage" class="tsd-kind-icon">make<wbr>Delete<wbr>Message</a></li>
-								<li class="tsd-kind-function tsd-parent-kind-module"><a href="_protocol_js_usp_protobuf_protomessage_.html#makegetmessage" class="tsd-kind-icon">make<wbr>Get<wbr>Message</a></li>
-								<li class="tsd-kind-function tsd-parent-kind-module"><a href="_protocol_js_usp_protobuf_protomessage_.html#makeoperatemessage" class="tsd-kind-icon">make<wbr>Operate<wbr>Message</a></li>
-								<li class="tsd-kind-function tsd-parent-kind-module"><a href="_protocol_js_usp_protobuf_protomessage_.html#makesetmessage" class="tsd-kind-icon">make<wbr>Set<wbr>Message</a></li>
-							</ul>
-						</section>
-					</div>
-				</section>
-			</section>
-			<section class="tsd-panel-group tsd-member-group tsd-is-not-exported">
-				<h2>Variables</h2>
-				<section class="tsd-panel tsd-member tsd-kind-variable tsd-parent-kind-module tsd-is-not-exported">
-					<a name="header" class="tsd-anchor"></a>
-					<h3><span class="tsd-flag ts-flagLet">Let</span> Header</h3>
-					<div class="tsd-signature tsd-kind-icon">Header<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">any</span></div>
-					<aside class="tsd-sources">
-						<ul>
-							<li>Defined in src/protocol/js-usp-protobuf/protoMessage.ts:16</li>
-						</ul>
-					</aside>
-				</section>
-				<section class="tsd-panel tsd-member tsd-kind-variable tsd-parent-kind-module tsd-is-not-exported">
-					<a name="createrecord" class="tsd-anchor"></a>
-					<h3><span class="tsd-flag ts-flagLet">Let</span> create<wbr>Record</h3>
-					<div class="tsd-signature tsd-kind-icon">create<wbr>Record<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">any</span></div>
-					<aside class="tsd-sources">
-						<ul>
-							<li>Defined in src/protocol/js-usp-protobuf/protoMessage.ts:17</li>
-						</ul>
-					</aside>
-				</section>
-				<section class="tsd-panel tsd-member tsd-kind-variable tsd-parent-kind-module tsd-is-not-exported">
-					<a name="rootmsg" class="tsd-anchor"></a>
-					<h3><span class="tsd-flag ts-flagLet">Let</span> root<wbr>Msg</h3>
-					<div class="tsd-signature tsd-kind-icon">root<wbr>Msg<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">any</span></div>
-					<aside class="tsd-sources">
-						<ul>
-							<li>Defined in src/protocol/js-usp-protobuf/protoMessage.ts:15</li>
-						</ul>
-					</aside>
-				</section>
-				<section class="tsd-panel tsd-member tsd-kind-variable tsd-parent-kind-module tsd-is-not-exported">
-					<a name="rootrecord" class="tsd-anchor"></a>
-					<h3><span class="tsd-flag ts-flagLet">Let</span> root<wbr>Record</h3>
-					<div class="tsd-signature tsd-kind-icon">root<wbr>Record<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">Root</span></div>
-					<aside class="tsd-sources">
-						<ul>
-							<li>Defined in src/protocol/js-usp-protobuf/protoMessage.ts:14</li>
-						</ul>
-					</aside>
-				</section>
-			</section>
-			<section class="tsd-panel-group tsd-member-group ">
-				<h2>Functions</h2>
-				<section class="tsd-panel tsd-member tsd-kind-function tsd-parent-kind-module">
-					<a name="decode" class="tsd-anchor"></a>
-					<h3><span class="tsd-flag ts-flagConst">Const</span> decode</h3>
-					<ul class="tsd-signatures tsd-kind-function tsd-parent-kind-module">
-						<li class="tsd-signature tsd-kind-icon">decode<span class="tsd-signature-symbol">(</span>message<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">any</span></li>
-					</ul>
-					<ul class="tsd-descriptions">
-						<li class="tsd-description">
-							<aside class="tsd-sources">
-								<ul>
-									<li>Defined in src/protocol/js-usp-protobuf/protoMessage.ts:92</li>
-								</ul>
-							</aside>
-							<div class="tsd-comment tsd-typography">
-								<div class="lead">
-									<p>Decode message</p>
-								</div>
-							</div>
-							<h4 class="tsd-parameters-title">Parameters</h4>
-							<ul class="tsd-parameters">
-								<li>
-									<h5>message: <span class="tsd-signature-type">any</span></h5>
-								</li>
-							</ul>
-							<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">any</span></h4>
-						</li>
-					</ul>
-				</section>
-				<section class="tsd-panel tsd-member tsd-kind-function tsd-parent-kind-module">
-					<a name="init" class="tsd-anchor"></a>
-					<h3><span class="tsd-flag ts-flagConst">Const</span> init</h3>
-					<ul class="tsd-signatures tsd-kind-function tsd-parent-kind-module">
-						<li class="tsd-signature tsd-kind-icon">init<span class="tsd-signature-symbol">(</span>toId<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span>, fromId<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">&gt;</span></li>
-					</ul>
-					<ul class="tsd-descriptions">
-						<li class="tsd-description">
-							<aside class="tsd-sources">
-								<ul>
-									<li>Defined in src/protocol/js-usp-protobuf/protoMessage.ts:20</li>
-								</ul>
-							</aside>
-							<div class="tsd-comment tsd-typography">
-								<div class="lead">
-									<p>Initialize messages</p>
-								</div>
-							</div>
-							<h4 class="tsd-parameters-title">Parameters</h4>
-							<ul class="tsd-parameters">
-								<li>
-									<h5>toId: <span class="tsd-signature-type">string</span></h5>
-								</li>
-								<li>
-									<h5>fromId: <span class="tsd-signature-type">string</span></h5>
-								</li>
-							</ul>
-							<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">&gt;</span></h4>
-						</li>
-					</ul>
-				</section>
-				<section class="tsd-panel tsd-member tsd-kind-function tsd-parent-kind-module">
-					<a name="makeaddmessage" class="tsd-anchor"></a>
-					<h3><span class="tsd-flag ts-flagConst">Const</span> make<wbr>Add<wbr>Message</h3>
-					<ul class="tsd-signatures tsd-kind-function tsd-parent-kind-module">
-						<li class="tsd-signature tsd-kind-icon">make<wbr>Add<wbr>Message<span class="tsd-signature-symbol">(</span>path<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span>, values<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">[]</span></li>
-					</ul>
-					<ul class="tsd-descriptions">
-						<li class="tsd-description">
-							<aside class="tsd-sources">
-								<ul>
-									<li>Defined in src/protocol/js-usp-protobuf/protoMessage.ts:61</li>
-								</ul>
-							</aside>
-							<div class="tsd-comment tsd-typography">
-								<div class="lead">
-									<p>Make add message</p>
-								</div>
-							</div>
-							<h4 class="tsd-parameters-title">Parameters</h4>
-							<ul class="tsd-parameters">
-								<li>
-									<h5>path: <span class="tsd-signature-type">string</span></h5>
-								</li>
-								<li>
-									<h5>values: <span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">[]</span></h5>
-								</li>
-							</ul>
-							<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">[]</span></h4>
-						</li>
-					</ul>
-				</section>
-				<section class="tsd-panel tsd-member tsd-kind-function tsd-parent-kind-module">
-					<a name="makedeletemessage" class="tsd-anchor"></a>
-					<h3><span class="tsd-flag ts-flagConst">Const</span> make<wbr>Delete<wbr>Message</h3>
-					<ul class="tsd-signatures tsd-kind-function tsd-parent-kind-module">
-						<li class="tsd-signature tsd-kind-icon">make<wbr>Delete<wbr>Message<span class="tsd-signature-symbol">(</span>paths<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">[]</span></li>
-					</ul>
-					<ul class="tsd-descriptions">
-						<li class="tsd-description">
-							<aside class="tsd-sources">
-								<ul>
-									<li>Defined in src/protocol/js-usp-protobuf/protoMessage.ts:36</li>
-								</ul>
-							</aside>
-							<div class="tsd-comment tsd-typography">
-								<div class="lead">
-									<p>Make delete message</p>
-								</div>
-							</div>
-							<h4 class="tsd-parameters-title">Parameters</h4>
-							<ul class="tsd-parameters">
-								<li>
-									<h5>paths: <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">[]</span></h5>
-								</li>
-							</ul>
-							<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">[]</span></h4>
-						</li>
-					</ul>
-				</section>
-				<section class="tsd-panel tsd-member tsd-kind-function tsd-parent-kind-module">
-					<a name="makegetmessage" class="tsd-anchor"></a>
-					<h3><span class="tsd-flag ts-flagConst">Const</span> make<wbr>Get<wbr>Message</h3>
-					<ul class="tsd-signatures tsd-kind-function tsd-parent-kind-module">
-						<li class="tsd-signature tsd-kind-icon">make<wbr>Get<wbr>Message<span class="tsd-signature-symbol">(</span>paths<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">[]</span></li>
-					</ul>
-					<ul class="tsd-descriptions">
-						<li class="tsd-description">
-							<aside class="tsd-sources">
-								<ul>
-									<li>Defined in src/protocol/js-usp-protobuf/protoMessage.ts:28</li>
-								</ul>
-							</aside>
-							<div class="tsd-comment tsd-typography">
-								<div class="lead">
-									<p>Make get message</p>
-								</div>
-							</div>
-							<h4 class="tsd-parameters-title">Parameters</h4>
-							<ul class="tsd-parameters">
-								<li>
-									<h5>paths: <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">[]</span></h5>
-								</li>
-							</ul>
-							<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">[]</span></h4>
-						</li>
-					</ul>
-				</section>
-				<section class="tsd-panel tsd-member tsd-kind-function tsd-parent-kind-module">
-					<a name="makeoperatemessage" class="tsd-anchor"></a>
-					<h3><span class="tsd-flag ts-flagConst">Const</span> make<wbr>Operate<wbr>Message</h3>
-					<ul class="tsd-signatures tsd-kind-function tsd-parent-kind-module">
-						<li class="tsd-signature tsd-kind-icon">make<wbr>Operate<wbr>Message<span class="tsd-signature-symbol">(</span>path<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span>, input<span class="tsd-signature-symbol">?: </span><span class="tsd-signature-type">undefined</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">object</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">[]</span></li>
-					</ul>
-					<ul class="tsd-descriptions">
-						<li class="tsd-description">
-							<aside class="tsd-sources">
-								<ul>
-									<li>Defined in src/protocol/js-usp-protobuf/protoMessage.ts:74</li>
-								</ul>
-							</aside>
-							<div class="tsd-comment tsd-typography">
-								<div class="lead">
-									<p>Make operate message</p>
-								</div>
-							</div>
-							<h4 class="tsd-parameters-title">Parameters</h4>
-							<ul class="tsd-parameters">
-								<li>
-									<h5>path: <span class="tsd-signature-type">string</span></h5>
-								</li>
-								<li>
-									<h5><span class="tsd-flag ts-flagOptional">Optional</span> input: <span class="tsd-signature-type">undefined</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">object</span></h5>
-								</li>
-							</ul>
-							<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">[]</span></h4>
-						</li>
-					</ul>
-				</section>
-				<section class="tsd-panel tsd-member tsd-kind-function tsd-parent-kind-module">
-					<a name="makesetmessage" class="tsd-anchor"></a>
-					<h3><span class="tsd-flag ts-flagConst">Const</span> make<wbr>Set<wbr>Message</h3>
-					<ul class="tsd-signatures tsd-kind-function tsd-parent-kind-module">
-						<li class="tsd-signature tsd-kind-icon">make<wbr>Set<wbr>Message<span class="tsd-signature-symbol">(</span>path<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span>, values<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">[]</span></li>
-					</ul>
-					<ul class="tsd-descriptions">
-						<li class="tsd-description">
-							<aside class="tsd-sources">
-								<ul>
-									<li>Defined in src/protocol/js-usp-protobuf/protoMessage.ts:48</li>
-								</ul>
-							</aside>
-							<div class="tsd-comment tsd-typography">
-								<div class="lead">
-									<p>Make set message</p>
-								</div>
-							</div>
-							<h4 class="tsd-parameters-title">Parameters</h4>
-							<ul class="tsd-parameters">
-								<li>
-									<h5>path: <span class="tsd-signature-type">string</span></h5>
-								</li>
-								<li>
-									<h5>values: <span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">[]</span></h5>
-								</li>
-							</ul>
-							<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">[]</span></h4>
-						</li>
-					</ul>
-				</section>
-			</section>
-		</div>
-		<div class="col-4 col-menu menu-sticky-wrap menu-highlight">
-			<nav class="tsd-navigation primary">
-				<ul>
-					<li class="globals  ">
-						<a href="../globals.html"><em>Globals</em></a>
-					</li>
-					<li class=" tsd-kind-module">
-						<a href="_index_.html">&quot;index&quot;</a>
-					</li>
-					<li class=" tsd-kind-module">
-						<a href="_lib_.html">&quot;lib&quot;</a>
-					</li>
-					<li class=" tsd-kind-module">
-						<a href="_protocol_index_.html">&quot;protocol/index&quot;</a>
-					</li>
-					<li class="current tsd-kind-module">
-						<a href="_protocol_js_usp_protobuf_protomessage_.html">&quot;protocol/js-<wbr>usp-<wbr>protobuf/proto<wbr>Message&quot;</a>
-					</li>
-					<li class=" tsd-kind-module">
-						<a href="_protocol_lib_.html">&quot;protocol/lib&quot;</a>
-					</li>
-					<li class=" tsd-kind-module">
-						<a href="_types_d_.html">&quot;types.d&quot;</a>
-					</li>
-				</ul>
-			</nav>
-			<nav class="tsd-navigation secondary menu-sticky">
-				<ul class="before-current">
-					<li class=" tsd-kind-variable tsd-parent-kind-module tsd-is-not-exported">
-						<a href="_protocol_js_usp_protobuf_protomessage_.html#header" class="tsd-kind-icon">Header</a>
-					</li>
-					<li class=" tsd-kind-variable tsd-parent-kind-module tsd-is-not-exported">
-						<a href="_protocol_js_usp_protobuf_protomessage_.html#createrecord" class="tsd-kind-icon">create<wbr>Record</a>
-					</li>
-					<li class=" tsd-kind-variable tsd-parent-kind-module tsd-is-not-exported">
-						<a href="_protocol_js_usp_protobuf_protomessage_.html#rootmsg" class="tsd-kind-icon">root<wbr>Msg</a>
-					</li>
-					<li class=" tsd-kind-variable tsd-parent-kind-module tsd-is-not-exported">
-						<a href="_protocol_js_usp_protobuf_protomessage_.html#rootrecord" class="tsd-kind-icon">root<wbr>Record</a>
-					</li>
-					<li class=" tsd-kind-function tsd-parent-kind-module">
-						<a href="_protocol_js_usp_protobuf_protomessage_.html#decode" class="tsd-kind-icon">decode</a>
-					</li>
-					<li class=" tsd-kind-function tsd-parent-kind-module">
-						<a href="_protocol_js_usp_protobuf_protomessage_.html#init" class="tsd-kind-icon">init</a>
-					</li>
-					<li class=" tsd-kind-function tsd-parent-kind-module">
-						<a href="_protocol_js_usp_protobuf_protomessage_.html#makeaddmessage" class="tsd-kind-icon">make<wbr>Add<wbr>Message</a>
-					</li>
-					<li class=" tsd-kind-function tsd-parent-kind-module">
-						<a href="_protocol_js_usp_protobuf_protomessage_.html#makedeletemessage" class="tsd-kind-icon">make<wbr>Delete<wbr>Message</a>
-					</li>
-					<li class=" tsd-kind-function tsd-parent-kind-module">
-						<a href="_protocol_js_usp_protobuf_protomessage_.html#makegetmessage" class="tsd-kind-icon">make<wbr>Get<wbr>Message</a>
-					</li>
-					<li class=" tsd-kind-function tsd-parent-kind-module">
-						<a href="_protocol_js_usp_protobuf_protomessage_.html#makeoperatemessage" class="tsd-kind-icon">make<wbr>Operate<wbr>Message</a>
-					</li>
-					<li class=" tsd-kind-function tsd-parent-kind-module">
-						<a href="_protocol_js_usp_protobuf_protomessage_.html#makesetmessage" class="tsd-kind-icon">make<wbr>Set<wbr>Message</a>
-					</li>
-				</ul>
-			</nav>
-		</div>
-	</div>
-</div>
-<footer class="with-border-bottom">
-	<div class="container">
-		<h2>Legend</h2>
-		<div class="tsd-legend-group">
-			<ul class="tsd-legend">
-				<li class="tsd-kind-variable"><span class="tsd-kind-icon">Variable</span></li>
-				<li class="tsd-kind-function"><span class="tsd-kind-icon">Function</span></li>
-				<li class="tsd-kind-type-alias"><span class="tsd-kind-icon">Type alias</span></li>
-			</ul>
-			<ul class="tsd-legend">
-				<li class="tsd-kind-interface"><span class="tsd-kind-icon">Interface</span></li>
-			</ul>
-		</div>
-	</div>
-</footer>
-<div class="container tsd-generator">
-	<p>Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p>
-</div>
-<div class="overlay"></div>
-<script src="../assets/js/main.js"></script>
-</body>
-</html>
\ No newline at end of file
diff --git a/public/modules/_config_.html b/public/modules/_specs_usp_msg_1_1_.html
similarity index 65%
rename from public/modules/_config_.html
rename to public/modules/_specs_usp_msg_1_1_.html
index 0c3548d0f954da5fda9dbfb6da25f63a200dd334..fd51d8815584f9b5d505ceb54b857faddfbae53d 100644
--- a/public/modules/_config_.html
+++ b/public/modules/_specs_usp_msg_1_1_.html
@@ -3,7 +3,7 @@
 <head>
 	<meta charset="utf-8">
 	<meta http-equiv="X-UA-Compatible" content="IE=edge">
-	<title>&quot;config&quot; | usp-js</title>
+	<title>&quot;specs/usp-msg-1-1&quot; | usp-js</title>
 	<meta name="description" content="Documentation for usp-js">
 	<meta name="viewport" content="width=device-width, initial-scale=1">
 	<link rel="stylesheet" href="../assets/css/main.css">
@@ -56,10 +56,10 @@
 					<a href="../globals.html">Globals</a>
 				</li>
 				<li>
-					<a href="_config_.html">&quot;config&quot;</a>
+					<a href="_specs_usp_msg_1_1_.html">&quot;specs/usp-msg-1-1&quot;</a>
 				</li>
 			</ul>
-			<h1>Module &quot;config&quot;</h1>
+			<h1>Module &quot;specs/usp-msg-1-1&quot;</h1>
 		</div>
 	</div>
 </header>
@@ -73,6 +73,51 @@
 					<li class="globals  ">
 						<a href="../globals.html"><em>Globals</em></a>
 					</li>
+					<li class="label tsd-is-external">
+						<span>Internals</span>
+					</li>
+					<li class=" tsd-kind-module">
+						<a href="_commands_add_.html">&quot;commands/add&quot;</a>
+					</li>
+					<li class=" tsd-kind-module">
+						<a href="_commands_del_.html">&quot;commands/del&quot;</a>
+					</li>
+					<li class=" tsd-kind-module">
+						<a href="_commands_get_.html">&quot;commands/get&quot;</a>
+					</li>
+					<li class=" tsd-kind-module">
+						<a href="_commands_index_.html">&quot;commands/index&quot;</a>
+					</li>
+					<li class=" tsd-kind-module">
+						<a href="_commands_operate_.html">&quot;commands/operate&quot;</a>
+					</li>
+					<li class=" tsd-kind-module">
+						<a href="_commands_recipes_resolve_.html">&quot;commands/recipes/resolve&quot;</a>
+					</li>
+					<li class=" tsd-kind-module">
+						<a href="_commands_set_.html">&quot;commands/set&quot;</a>
+					</li>
+					<li class=" tsd-kind-module">
+						<a href="_commands_util_.html">&quot;commands/util&quot;</a>
+					</li>
+					<li class=" tsd-kind-module">
+						<a href="_index_.html">&quot;index&quot;</a>
+					</li>
+					<li class=" tsd-kind-module">
+						<a href="_types_.html">&quot;types&quot;</a>
+					</li>
+					<li class=" tsd-kind-module">
+						<a href="_util_.html">&quot;util&quot;</a>
+					</li>
+					<li class="label tsd-is-external">
+						<span>Externals</span>
+					</li>
+					<li class="current tsd-kind-module tsd-is-external">
+						<a href="_specs_usp_msg_1_1_.html">&quot;specs/usp-<wbr>msg-<wbr>1-1&quot;</a>
+					</li>
+					<li class=" tsd-kind-module tsd-is-external">
+						<a href="_specs_usp_record_1_1_.html">&quot;specs/usp-<wbr>record-<wbr>1-1&quot;</a>
+					</li>
 				</ul>
 			</nav>
 			<nav class="tsd-navigation secondary menu-sticky">
diff --git a/public/modules/_specs_usp_record_1_1_.html b/public/modules/_specs_usp_record_1_1_.html
new file mode 100644
index 0000000000000000000000000000000000000000..48a956f94da1261a003e1945e8dbd32ba2d2183d
--- /dev/null
+++ b/public/modules/_specs_usp_record_1_1_.html
@@ -0,0 +1,151 @@
+<!doctype html>
+<html class="default no-js">
+<head>
+	<meta charset="utf-8">
+	<meta http-equiv="X-UA-Compatible" content="IE=edge">
+	<title>&quot;specs/usp-record-1-1&quot; | usp-js</title>
+	<meta name="description" content="Documentation for usp-js">
+	<meta name="viewport" content="width=device-width, initial-scale=1">
+	<link rel="stylesheet" href="../assets/css/main.css">
+</head>
+<body>
+<header>
+	<div class="tsd-page-toolbar">
+		<div class="container">
+			<div class="table-wrap">
+				<div class="table-cell" id="tsd-search" data-index="../assets/js/search.json" data-base="..">
+					<div class="field">
+						<label for="tsd-search-field" class="tsd-widget search no-caption">Search</label>
+						<input id="tsd-search-field" type="text" />
+					</div>
+					<ul class="results">
+						<li class="state loading">Preparing search index...</li>
+						<li class="state failure">The search index is not available</li>
+					</ul>
+					<a href="../index.html" class="title">usp-js</a>
+				</div>
+				<div class="table-cell" id="tsd-widgets">
+					<div id="tsd-filter">
+						<a href="#" class="tsd-widget options no-caption" data-toggle="options">Options</a>
+						<div class="tsd-filter-group">
+							<div class="tsd-select" id="tsd-filter-visibility">
+								<span class="tsd-select-label">All</span>
+								<ul class="tsd-select-list">
+									<li data-value="public">Public</li>
+									<li data-value="protected">Public/Protected</li>
+									<li data-value="private" class="selected">All</li>
+								</ul>
+							</div>
+							<input type="checkbox" id="tsd-filter-inherited" checked />
+							<label class="tsd-widget" for="tsd-filter-inherited">Inherited</label>
+							<input type="checkbox" id="tsd-filter-externals" checked />
+							<label class="tsd-widget" for="tsd-filter-externals">Externals</label>
+							<input type="checkbox" id="tsd-filter-only-exported" />
+							<label class="tsd-widget" for="tsd-filter-only-exported">Only exported</label>
+						</div>
+					</div>
+					<a href="#" class="tsd-widget menu no-caption" data-toggle="menu">Menu</a>
+				</div>
+			</div>
+		</div>
+	</div>
+	<div class="tsd-page-title">
+		<div class="container">
+			<ul class="tsd-breadcrumb">
+				<li>
+					<a href="../globals.html">Globals</a>
+				</li>
+				<li>
+					<a href="_specs_usp_record_1_1_.html">&quot;specs/usp-record-1-1&quot;</a>
+				</li>
+			</ul>
+			<h1>Module &quot;specs/usp-record-1-1&quot;</h1>
+		</div>
+	</div>
+</header>
+<div class="container container-main">
+	<div class="row">
+		<div class="col-8 col-content">
+		</div>
+		<div class="col-4 col-menu menu-sticky-wrap menu-highlight">
+			<nav class="tsd-navigation primary">
+				<ul>
+					<li class="globals  ">
+						<a href="../globals.html"><em>Globals</em></a>
+					</li>
+					<li class="label tsd-is-external">
+						<span>Internals</span>
+					</li>
+					<li class=" tsd-kind-module">
+						<a href="_commands_add_.html">&quot;commands/add&quot;</a>
+					</li>
+					<li class=" tsd-kind-module">
+						<a href="_commands_del_.html">&quot;commands/del&quot;</a>
+					</li>
+					<li class=" tsd-kind-module">
+						<a href="_commands_get_.html">&quot;commands/get&quot;</a>
+					</li>
+					<li class=" tsd-kind-module">
+						<a href="_commands_index_.html">&quot;commands/index&quot;</a>
+					</li>
+					<li class=" tsd-kind-module">
+						<a href="_commands_operate_.html">&quot;commands/operate&quot;</a>
+					</li>
+					<li class=" tsd-kind-module">
+						<a href="_commands_recipes_resolve_.html">&quot;commands/recipes/resolve&quot;</a>
+					</li>
+					<li class=" tsd-kind-module">
+						<a href="_commands_set_.html">&quot;commands/set&quot;</a>
+					</li>
+					<li class=" tsd-kind-module">
+						<a href="_commands_util_.html">&quot;commands/util&quot;</a>
+					</li>
+					<li class=" tsd-kind-module">
+						<a href="_index_.html">&quot;index&quot;</a>
+					</li>
+					<li class=" tsd-kind-module">
+						<a href="_types_.html">&quot;types&quot;</a>
+					</li>
+					<li class=" tsd-kind-module">
+						<a href="_util_.html">&quot;util&quot;</a>
+					</li>
+					<li class="label tsd-is-external">
+						<span>Externals</span>
+					</li>
+					<li class=" tsd-kind-module tsd-is-external">
+						<a href="_specs_usp_msg_1_1_.html">&quot;specs/usp-<wbr>msg-<wbr>1-1&quot;</a>
+					</li>
+					<li class="current tsd-kind-module tsd-is-external">
+						<a href="_specs_usp_record_1_1_.html">&quot;specs/usp-<wbr>record-<wbr>1-1&quot;</a>
+					</li>
+				</ul>
+			</nav>
+			<nav class="tsd-navigation secondary menu-sticky">
+				<ul class="before-current">
+				</ul>
+			</nav>
+		</div>
+	</div>
+</div>
+<footer class="with-border-bottom">
+	<div class="container">
+		<h2>Legend</h2>
+		<div class="tsd-legend-group">
+			<ul class="tsd-legend">
+				<li class="tsd-kind-variable"><span class="tsd-kind-icon">Variable</span></li>
+				<li class="tsd-kind-function"><span class="tsd-kind-icon">Function</span></li>
+				<li class="tsd-kind-type-alias"><span class="tsd-kind-icon">Type alias</span></li>
+			</ul>
+			<ul class="tsd-legend">
+				<li class="tsd-kind-interface"><span class="tsd-kind-icon">Interface</span></li>
+			</ul>
+		</div>
+	</div>
+</footer>
+<div class="container tsd-generator">
+	<p>Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p>
+</div>
+<div class="overlay"></div>
+<script src="../assets/js/main.js"></script>
+</body>
+</html>
\ No newline at end of file
diff --git a/public/modules/_types_.html b/public/modules/_types_.html
new file mode 100644
index 0000000000000000000000000000000000000000..604a2bea47c415ea489a2021e5263ec930256038
--- /dev/null
+++ b/public/modules/_types_.html
@@ -0,0 +1,1014 @@
+<!doctype html>
+<html class="default no-js">
+<head>
+	<meta charset="utf-8">
+	<meta http-equiv="X-UA-Compatible" content="IE=edge">
+	<title>&quot;types&quot; | usp-js</title>
+	<meta name="description" content="Documentation for usp-js">
+	<meta name="viewport" content="width=device-width, initial-scale=1">
+	<link rel="stylesheet" href="../assets/css/main.css">
+</head>
+<body>
+<header>
+	<div class="tsd-page-toolbar">
+		<div class="container">
+			<div class="table-wrap">
+				<div class="table-cell" id="tsd-search" data-index="../assets/js/search.json" data-base="..">
+					<div class="field">
+						<label for="tsd-search-field" class="tsd-widget search no-caption">Search</label>
+						<input id="tsd-search-field" type="text" />
+					</div>
+					<ul class="results">
+						<li class="state loading">Preparing search index...</li>
+						<li class="state failure">The search index is not available</li>
+					</ul>
+					<a href="../index.html" class="title">usp-js</a>
+				</div>
+				<div class="table-cell" id="tsd-widgets">
+					<div id="tsd-filter">
+						<a href="#" class="tsd-widget options no-caption" data-toggle="options">Options</a>
+						<div class="tsd-filter-group">
+							<div class="tsd-select" id="tsd-filter-visibility">
+								<span class="tsd-select-label">All</span>
+								<ul class="tsd-select-list">
+									<li data-value="public">Public</li>
+									<li data-value="protected">Public/Protected</li>
+									<li data-value="private" class="selected">All</li>
+								</ul>
+							</div>
+							<input type="checkbox" id="tsd-filter-inherited" checked />
+							<label class="tsd-widget" for="tsd-filter-inherited">Inherited</label>
+							<input type="checkbox" id="tsd-filter-externals" checked />
+							<label class="tsd-widget" for="tsd-filter-externals">Externals</label>
+							<input type="checkbox" id="tsd-filter-only-exported" />
+							<label class="tsd-widget" for="tsd-filter-only-exported">Only exported</label>
+						</div>
+					</div>
+					<a href="#" class="tsd-widget menu no-caption" data-toggle="menu">Menu</a>
+				</div>
+			</div>
+		</div>
+	</div>
+	<div class="tsd-page-title">
+		<div class="container">
+			<ul class="tsd-breadcrumb">
+				<li>
+					<a href="../globals.html">Globals</a>
+				</li>
+				<li>
+					<a href="_types_.html">&quot;types&quot;</a>
+				</li>
+			</ul>
+			<h1>Module &quot;types&quot;</h1>
+		</div>
+	</div>
+</header>
+<div class="container container-main">
+	<div class="row">
+		<div class="col-8 col-content">
+			<section class="tsd-panel-group tsd-index-group">
+				<h2>Index</h2>
+				<section class="tsd-panel tsd-index-panel">
+					<div class="tsd-index-content">
+						<section class="tsd-index-section ">
+							<h3>Interfaces</h3>
+							<ul class="tsd-index-list">
+								<li class="tsd-kind-interface tsd-parent-kind-module"><a href="../interfaces/_types_.connectionevents.html" class="tsd-kind-icon">Connection<wbr>Events</a></li>
+								<li class="tsd-kind-interface tsd-parent-kind-module"><a href="../interfaces/_types_.connectionoptions.html" class="tsd-kind-icon">Connection<wbr>Options</a></li>
+								<li class="tsd-kind-interface tsd-parent-kind-module tsd-is-not-exported"><a href="../interfaces/_types_.operateoptions.html" class="tsd-kind-icon">Operate<wbr>Options</a></li>
+								<li class="tsd-kind-interface tsd-parent-kind-module"><a href="../interfaces/_types_.pbrequestbody.html" class="tsd-kind-icon">Pb<wbr>Request<wbr>Body</a></li>
+								<li class="tsd-kind-interface tsd-parent-kind-module"><a href="../interfaces/_types_.pbrequestheader.html" class="tsd-kind-icon">Pb<wbr>Request<wbr>Header</a></li>
+								<li class="tsd-kind-interface tsd-parent-kind-module"><a href="../interfaces/_types_.pbrequestmessage.html" class="tsd-kind-icon">Pb<wbr>Request<wbr>Message</a></li>
+								<li class="tsd-kind-interface tsd-parent-kind-module"><a href="../interfaces/_types_.recipeobject.html" class="tsd-kind-icon">Recipe<wbr>Object</a></li>
+								<li class="tsd-kind-interface tsd-parent-kind-module"><a href="../interfaces/_types_.usp.html" class="tsd-kind-icon">USP</a></li>
+							</ul>
+						</section>
+						<section class="tsd-index-section ">
+							<h3>Type aliases</h3>
+							<ul class="tsd-index-list">
+								<li class="tsd-kind-type-alias tsd-parent-kind-module"><a href="_types_.html#addcommand" class="tsd-kind-icon">Add<wbr>Command</a></li>
+								<li class="tsd-kind-type-alias tsd-parent-kind-module"><a href="_types_.html#callfn" class="tsd-kind-icon">Call<wbr>Fn</a></li>
+								<li class="tsd-kind-type-alias tsd-parent-kind-module"><a href="_types_.html#command" class="tsd-kind-icon">Command</a></li>
+								<li class="tsd-kind-type-alias tsd-parent-kind-module"><a href="_types_.html#commandobject" class="tsd-kind-icon">Command<wbr>Object</a></li>
+								<li class="tsd-kind-type-alias tsd-parent-kind-module"><a href="_types_.html#commandtrigger" class="tsd-kind-icon">Command<wbr>Trigger</a></li>
+								<li class="tsd-kind-type-alias tsd-parent-kind-module"><a href="_types_.html#commandtype" class="tsd-kind-icon">Command<wbr>Type</a></li>
+								<li class="tsd-kind-type-alias tsd-parent-kind-module"><a href="_types_.html#decodefn" class="tsd-kind-icon">Decode<wbr>Fn</a></li>
+								<li class="tsd-kind-type-alias tsd-parent-kind-module"><a href="_types_.html#delcommand" class="tsd-kind-icon">Del<wbr>Command</a></li>
+								<li class="tsd-kind-type-alias tsd-parent-kind-module"><a href="_types_.html#encodeargs" class="tsd-kind-icon">Encode<wbr>Args</a></li>
+								<li class="tsd-kind-type-alias tsd-parent-kind-module"><a href="_types_.html#encodefn" class="tsd-kind-icon">Encode<wbr>Fn</a></li>
+								<li class="tsd-kind-type-alias tsd-parent-kind-module"><a href="_types_.html#getcommand" class="tsd-kind-icon">Get<wbr>Command</a></li>
+								<li class="tsd-kind-type-alias tsd-parent-kind-module"><a href="_types_.html#getresponse" class="tsd-kind-icon">Get<wbr>Response</a></li>
+								<li class="tsd-kind-type-alias tsd-parent-kind-module"><a href="_types_.html#getreturn" class="tsd-kind-icon">Get<wbr>Return</a></li>
+								<li class="tsd-kind-type-alias tsd-parent-kind-module"><a href="_types_.html#makefn" class="tsd-kind-icon">Make<wbr>Fn</a></li>
+								<li class="tsd-kind-type-alias tsd-parent-kind-module"><a href="_types_.html#makerecipefn" class="tsd-kind-icon">Make<wbr>Recipe<wbr>Fn</a></li>
+								<li class="tsd-kind-type-alias tsd-parent-kind-module"><a href="_types_.html#operateclearfn" class="tsd-kind-icon">Operate<wbr>Clear<wbr>Fn</a></li>
+								<li class="tsd-kind-type-alias tsd-parent-kind-module"><a href="_types_.html#operatecommand" class="tsd-kind-icon">Operate<wbr>Command</a></li>
+								<li class="tsd-kind-type-alias tsd-parent-kind-module"><a href="_types_.html#operatefn" class="tsd-kind-icon">Operate<wbr>Fn</a></li>
+								<li class="tsd-kind-type-alias tsd-parent-kind-module"><a href="_types_.html#pbrequestcommand" class="tsd-kind-icon">Pb<wbr>Request<wbr>Command</a></li>
+								<li class="tsd-kind-type-alias tsd-parent-kind-module"><a href="_types_.html#pbrequestcommandadd" class="tsd-kind-icon">Pb<wbr>Request<wbr>Command<wbr>Add</a></li>
+								<li class="tsd-kind-type-alias tsd-parent-kind-module"><a href="_types_.html#pbrequestcommanddel" class="tsd-kind-icon">Pb<wbr>Request<wbr>Command<wbr>Del</a></li>
+								<li class="tsd-kind-type-alias tsd-parent-kind-module"><a href="_types_.html#pbrequestcommandget" class="tsd-kind-icon">Pb<wbr>Request<wbr>Command<wbr>Get</a></li>
+								<li class="tsd-kind-type-alias tsd-parent-kind-module"><a href="_types_.html#pbrequestcommandoperate" class="tsd-kind-icon">Pb<wbr>Request<wbr>Command<wbr>Operate</a></li>
+								<li class="tsd-kind-type-alias tsd-parent-kind-module"><a href="_types_.html#pbrequestcommandset" class="tsd-kind-icon">Pb<wbr>Request<wbr>Command<wbr>Set</a></li>
+								<li class="tsd-kind-type-alias tsd-parent-kind-module"><a href="_types_.html#recipe" class="tsd-kind-icon">Recipe</a></li>
+								<li class="tsd-kind-type-alias tsd-parent-kind-module"><a href="_types_.html#resolverecipe" class="tsd-kind-icon">Resolve<wbr>Recipe</a></li>
+								<li class="tsd-kind-type-alias tsd-parent-kind-module"><a href="_types_.html#response" class="tsd-kind-icon">Response</a></li>
+								<li class="tsd-kind-type-alias tsd-parent-kind-module"><a href="_types_.html#setcommand" class="tsd-kind-icon">Set<wbr>Command</a></li>
+							</ul>
+						</section>
+					</div>
+				</section>
+			</section>
+			<section class="tsd-panel-group tsd-member-group ">
+				<h2>Type aliases</h2>
+				<section class="tsd-panel tsd-member tsd-kind-type-alias tsd-parent-kind-module">
+					<a name="addcommand" class="tsd-anchor"></a>
+					<h3>Add<wbr>Command</h3>
+					<div class="tsd-signature tsd-kind-icon">Add<wbr>Command<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-symbol">(</span>path<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span>, value<span class="tsd-signature-symbol">?: </span><span class="tsd-signature-type">Record</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">&gt;</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol"> =&gt; </span><span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">&gt;</span></div>
+					<aside class="tsd-sources">
+						<ul>
+							<li>Defined in types.ts:17</li>
+						</ul>
+					</aside>
+					<div class="tsd-type-declaration">
+						<h4>Type declaration</h4>
+						<ul class="tsd-parameters">
+							<li class="tsd-parameter-signature">
+								<ul class="tsd-signatures tsd-kind-type-literal tsd-parent-kind-type-alias">
+									<li class="tsd-signature tsd-kind-icon"><span class="tsd-signature-symbol">(</span>path<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span>, value<span class="tsd-signature-symbol">?: </span><span class="tsd-signature-type">Record</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">&gt;</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">&gt;</span></li>
+								</ul>
+								<ul class="tsd-descriptions">
+									<li class="tsd-description">
+										<h4 class="tsd-parameters-title">Parameters</h4>
+										<ul class="tsd-parameters">
+											<li>
+												<h5>path: <span class="tsd-signature-type">string</span></h5>
+											</li>
+											<li>
+												<h5><span class="tsd-flag ts-flagOptional">Optional</span> value: <span class="tsd-signature-type">Record</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">&gt;</span></h5>
+											</li>
+										</ul>
+										<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">&gt;</span></h4>
+									</li>
+								</ul>
+							</li>
+						</ul>
+					</div>
+				</section>
+				<section class="tsd-panel tsd-member tsd-kind-type-alias tsd-parent-kind-module">
+					<a name="callfn" class="tsd-anchor"></a>
+					<h3>Call<wbr>Fn</h3>
+					<div class="tsd-signature tsd-kind-icon">Call<wbr>Fn<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-symbol">(</span>command<span class="tsd-signature-symbol">: </span><a href="_types_.html#commandtype" class="tsd-signature-type">CommandType</a>, args<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Record</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">&gt;</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol"> =&gt; </span><span class="tsd-signature-type">any</span></div>
+					<aside class="tsd-sources">
+						<ul>
+							<li>Defined in types.ts:238</li>
+						</ul>
+					</aside>
+					<div class="tsd-type-declaration">
+						<h4>Type declaration</h4>
+						<ul class="tsd-parameters">
+							<li class="tsd-parameter-signature">
+								<ul class="tsd-signatures tsd-kind-type-literal tsd-parent-kind-type-alias">
+									<li class="tsd-signature tsd-kind-icon"><span class="tsd-signature-symbol">(</span>command<span class="tsd-signature-symbol">: </span><a href="_types_.html#commandtype" class="tsd-signature-type">CommandType</a>, args<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Record</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">&gt;</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">any</span></li>
+								</ul>
+								<ul class="tsd-descriptions">
+									<li class="tsd-description">
+										<h4 class="tsd-parameters-title">Parameters</h4>
+										<ul class="tsd-parameters">
+											<li>
+												<h5>command: <a href="_types_.html#commandtype" class="tsd-signature-type">CommandType</a></h5>
+											</li>
+											<li>
+												<h5>args: <span class="tsd-signature-type">Record</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">&gt;</span></h5>
+											</li>
+										</ul>
+										<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">any</span></h4>
+									</li>
+								</ul>
+							</li>
+						</ul>
+					</div>
+				</section>
+				<section class="tsd-panel tsd-member tsd-kind-type-alias tsd-parent-kind-module">
+					<a name="command" class="tsd-anchor"></a>
+					<h3>Command</h3>
+					<div class="tsd-signature tsd-kind-icon">Command<span class="tsd-signature-symbol">:</span> <a href="_types_.html#getcommand" class="tsd-signature-type">GetCommand</a><span class="tsd-signature-symbol"> | </span><a href="_types_.html#setcommand" class="tsd-signature-type">SetCommand</a><span class="tsd-signature-symbol"> | </span><a href="_types_.html#addcommand" class="tsd-signature-type">AddCommand</a><span class="tsd-signature-symbol"> | </span><a href="_types_.html#delcommand" class="tsd-signature-type">DelCommand</a><span class="tsd-signature-symbol"> | </span><a href="_types_.html#operatecommand" class="tsd-signature-type">OperateCommand</a></div>
+					<aside class="tsd-sources">
+						<ul>
+							<li>Defined in types.ts:29</li>
+						</ul>
+					</aside>
+				</section>
+				<section class="tsd-panel tsd-member tsd-kind-type-alias tsd-parent-kind-module">
+					<a name="commandobject" class="tsd-anchor"></a>
+					<h3>Command<wbr>Object</h3>
+					<div class="tsd-signature tsd-kind-icon">Command<wbr>Object<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-symbol">{ </span>decode<span class="tsd-signature-symbol">: </span><a href="_types_.html#decodefn" class="tsd-signature-type">DecodeFn</a><span class="tsd-signature-symbol">; </span>encode<span class="tsd-signature-symbol">: </span><a href="_types_.html#encodefn" class="tsd-signature-type">EncodeFn</a><span class="tsd-signature-symbol">; </span>keepRoute<span class="tsd-signature-symbol">?: </span><span class="tsd-signature-type">undefined</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">false</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">true</span><span class="tsd-signature-symbol">; </span>make<span class="tsd-signature-symbol">: </span><a href="_types_.html#makefn" class="tsd-signature-type">MakeFn</a><span class="tsd-signature-symbol">; </span>name<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">; </span>trigger<span class="tsd-signature-symbol">: </span><a href="_types_.html#commandtrigger" class="tsd-signature-type">CommandTrigger</a><span class="tsd-signature-symbol"> }</span></div>
+					<aside class="tsd-sources">
+						<ul>
+							<li>Defined in types.ts:245</li>
+						</ul>
+					</aside>
+					<div class="tsd-type-declaration">
+						<h4>Type declaration</h4>
+						<ul class="tsd-parameters">
+							<li class="tsd-parameter">
+								<h5>decode<span class="tsd-signature-symbol">: </span><a href="_types_.html#decodefn" class="tsd-signature-type">DecodeFn</a></h5>
+							</li>
+							<li class="tsd-parameter">
+								<h5>encode<span class="tsd-signature-symbol">: </span><a href="_types_.html#encodefn" class="tsd-signature-type">EncodeFn</a></h5>
+							</li>
+							<li class="tsd-parameter">
+								<h5><span class="tsd-flag ts-flagOptional">Optional</span> keep<wbr>Route<span class="tsd-signature-symbol">?: </span><span class="tsd-signature-type">undefined</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">false</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">true</span></h5>
+							</li>
+							<li class="tsd-parameter">
+								<h5>make<span class="tsd-signature-symbol">: </span><a href="_types_.html#makefn" class="tsd-signature-type">MakeFn</a></h5>
+							</li>
+							<li class="tsd-parameter">
+								<h5>name<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span></h5>
+							</li>
+							<li class="tsd-parameter">
+								<h5>trigger<span class="tsd-signature-symbol">: </span><a href="_types_.html#commandtrigger" class="tsd-signature-type">CommandTrigger</a></h5>
+							</li>
+						</ul>
+					</div>
+				</section>
+				<section class="tsd-panel tsd-member tsd-kind-type-alias tsd-parent-kind-module">
+					<a name="commandtrigger" class="tsd-anchor"></a>
+					<h3>Command<wbr>Trigger</h3>
+					<div class="tsd-signature tsd-kind-icon">Command<wbr>Trigger<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-symbol">{ </span>decode<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">(</span>msg<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Record</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">&gt;</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol"> =&gt; </span><span class="tsd-signature-type">boolean</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">; </span>encode<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol"> }</span></div>
+					<aside class="tsd-sources">
+						<ul>
+							<li>Defined in types.ts:241</li>
+						</ul>
+					</aside>
+					<div class="tsd-type-declaration">
+						<h4>Type declaration</h4>
+						<ul class="tsd-parameters">
+							<li class="tsd-parameter">
+								<h5>decode<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">(</span>msg<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Record</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">&gt;</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol"> =&gt; </span><span class="tsd-signature-type">boolean</span><span class="tsd-signature-symbol">)</span></h5>
+							</li>
+							<li class="tsd-parameter">
+								<h5>encode<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span></h5>
+							</li>
+						</ul>
+					</div>
+				</section>
+				<section class="tsd-panel tsd-member tsd-kind-type-alias tsd-parent-kind-module">
+					<a name="commandtype" class="tsd-anchor"></a>
+					<h3>Command<wbr>Type</h3>
+					<div class="tsd-signature tsd-kind-icon">Command<wbr>Type<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">"GET"</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">"SET"</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">"ADD"</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">"DELETE"</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">"OPERATE"</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">"NOTIFY"</span></div>
+					<aside class="tsd-sources">
+						<ul>
+							<li>Defined in types.ts:1</li>
+						</ul>
+					</aside>
+				</section>
+				<section class="tsd-panel tsd-member tsd-kind-type-alias tsd-parent-kind-module">
+					<a name="decodefn" class="tsd-anchor"></a>
+					<h3>Decode<wbr>Fn</h3>
+					<div class="tsd-signature tsd-kind-icon">Decode<wbr>Fn<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-symbol">(</span>msg<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Record</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">&gt;</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol"> =&gt; </span><span class="tsd-signature-symbol">[</span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">null</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">]</span></div>
+					<aside class="tsd-sources">
+						<ul>
+							<li>Defined in types.ts:227</li>
+						</ul>
+					</aside>
+					<div class="tsd-type-declaration">
+						<h4>Type declaration</h4>
+						<ul class="tsd-parameters">
+							<li class="tsd-parameter-signature">
+								<ul class="tsd-signatures tsd-kind-type-literal tsd-parent-kind-type-alias">
+									<li class="tsd-signature tsd-kind-icon"><span class="tsd-signature-symbol">(</span>msg<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Record</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">&gt;</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-symbol">[</span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">null</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">]</span></li>
+								</ul>
+								<ul class="tsd-descriptions">
+									<li class="tsd-description">
+										<h4 class="tsd-parameters-title">Parameters</h4>
+										<ul class="tsd-parameters">
+											<li>
+												<h5>msg: <span class="tsd-signature-type">Record</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">&gt;</span></h5>
+											</li>
+										</ul>
+										<h4 class="tsd-returns-title">Returns <span class="tsd-signature-symbol">[</span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">null</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">]</span></h4>
+									</li>
+								</ul>
+							</li>
+						</ul>
+					</div>
+				</section>
+				<section class="tsd-panel tsd-member tsd-kind-type-alias tsd-parent-kind-module">
+					<a name="delcommand" class="tsd-anchor"></a>
+					<h3>Del<wbr>Command</h3>
+					<div class="tsd-signature tsd-kind-icon">Del<wbr>Command<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-symbol">(</span>path<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol"> =&gt; </span><span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">&gt;</span></div>
+					<aside class="tsd-sources">
+						<ul>
+							<li>Defined in types.ts:21</li>
+						</ul>
+					</aside>
+					<div class="tsd-type-declaration">
+						<h4>Type declaration</h4>
+						<ul class="tsd-parameters">
+							<li class="tsd-parameter-signature">
+								<ul class="tsd-signatures tsd-kind-type-literal tsd-parent-kind-type-alias">
+									<li class="tsd-signature tsd-kind-icon"><span class="tsd-signature-symbol">(</span>path<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">&gt;</span></li>
+								</ul>
+								<ul class="tsd-descriptions">
+									<li class="tsd-description">
+										<h4 class="tsd-parameters-title">Parameters</h4>
+										<ul class="tsd-parameters">
+											<li>
+												<h5>path: <span class="tsd-signature-type">string</span></h5>
+											</li>
+										</ul>
+										<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">&gt;</span></h4>
+									</li>
+								</ul>
+							</li>
+						</ul>
+					</div>
+				</section>
+				<section class="tsd-panel tsd-member tsd-kind-type-alias tsd-parent-kind-module">
+					<a name="encodeargs" class="tsd-anchor"></a>
+					<h3>Encode<wbr>Args</h3>
+					<div class="tsd-signature tsd-kind-icon">Encode<wbr>Args<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-symbol">{ </span>args<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Record</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">&gt;</span><span class="tsd-signature-symbol">; </span>header<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">; </span>options<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Record</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">&gt;</span><span class="tsd-signature-symbol">; </span>rootMsg<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Root</span><span class="tsd-signature-symbol">; </span>rootRecord<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Root</span><span class="tsd-signature-symbol"> }</span></div>
+					<aside class="tsd-sources">
+						<ul>
+							<li>Defined in types.ts:230</li>
+						</ul>
+					</aside>
+					<div class="tsd-type-declaration">
+						<h4>Type declaration</h4>
+						<ul class="tsd-parameters">
+							<li class="tsd-parameter">
+								<h5>args<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Record</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">&gt;</span></h5>
+							</li>
+							<li class="tsd-parameter">
+								<h5>header<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">any</span></h5>
+							</li>
+							<li class="tsd-parameter">
+								<h5>options<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Record</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">&gt;</span></h5>
+							</li>
+							<li class="tsd-parameter">
+								<h5>root<wbr>Msg<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Root</span></h5>
+							</li>
+							<li class="tsd-parameter">
+								<h5>root<wbr>Record<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Root</span></h5>
+							</li>
+						</ul>
+					</div>
+				</section>
+				<section class="tsd-panel tsd-member tsd-kind-type-alias tsd-parent-kind-module">
+					<a name="encodefn" class="tsd-anchor"></a>
+					<h3>Encode<wbr>Fn</h3>
+					<div class="tsd-signature tsd-kind-icon">Encode<wbr>Fn<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-symbol">(</span>args<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Record</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">&gt;</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol"> =&gt; </span><a href="../interfaces/_types_.pbrequestmessage.html" class="tsd-signature-type">PbRequestMessage</a></div>
+					<aside class="tsd-sources">
+						<ul>
+							<li>Defined in types.ts:237</li>
+						</ul>
+					</aside>
+					<div class="tsd-type-declaration">
+						<h4>Type declaration</h4>
+						<ul class="tsd-parameters">
+							<li class="tsd-parameter-signature">
+								<ul class="tsd-signatures tsd-kind-type-literal tsd-parent-kind-type-alias">
+									<li class="tsd-signature tsd-kind-icon"><span class="tsd-signature-symbol">(</span>args<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Record</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">&gt;</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="../interfaces/_types_.pbrequestmessage.html" class="tsd-signature-type">PbRequestMessage</a></li>
+								</ul>
+								<ul class="tsd-descriptions">
+									<li class="tsd-description">
+										<h4 class="tsd-parameters-title">Parameters</h4>
+										<ul class="tsd-parameters">
+											<li>
+												<h5>args: <span class="tsd-signature-type">Record</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">&gt;</span></h5>
+											</li>
+										</ul>
+										<h4 class="tsd-returns-title">Returns <a href="../interfaces/_types_.pbrequestmessage.html" class="tsd-signature-type">PbRequestMessage</a></h4>
+									</li>
+								</ul>
+							</li>
+						</ul>
+					</div>
+				</section>
+				<section class="tsd-panel tsd-member tsd-kind-type-alias tsd-parent-kind-module">
+					<a name="getcommand" class="tsd-anchor"></a>
+					<h3>Get<wbr>Command</h3>
+					<div class="tsd-signature tsd-kind-icon">Get<wbr>Command<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-symbol">(</span>paths<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol"> =&gt; </span><span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><a href="_types_.html#getreturn" class="tsd-signature-type">GetReturn</a><span class="tsd-signature-symbol">&gt;</span></div>
+					<aside class="tsd-sources">
+						<ul>
+							<li>Defined in types.ts:10</li>
+						</ul>
+					</aside>
+					<div class="tsd-type-declaration">
+						<h4>Type declaration</h4>
+						<ul class="tsd-parameters">
+							<li class="tsd-parameter-signature">
+								<ul class="tsd-signatures tsd-kind-type-literal tsd-parent-kind-type-alias">
+									<li class="tsd-signature tsd-kind-icon"><span class="tsd-signature-symbol">(</span>paths<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><a href="_types_.html#getreturn" class="tsd-signature-type">GetReturn</a><span class="tsd-signature-symbol">&gt;</span></li>
+								</ul>
+								<ul class="tsd-descriptions">
+									<li class="tsd-description">
+										<h4 class="tsd-parameters-title">Parameters</h4>
+										<ul class="tsd-parameters">
+											<li>
+												<h5>paths: <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">[]</span></h5>
+											</li>
+										</ul>
+										<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><a href="_types_.html#getreturn" class="tsd-signature-type">GetReturn</a><span class="tsd-signature-symbol">&gt;</span></h4>
+									</li>
+								</ul>
+							</li>
+						</ul>
+					</div>
+				</section>
+				<section class="tsd-panel tsd-member tsd-kind-type-alias tsd-parent-kind-module">
+					<a name="getresponse" class="tsd-anchor"></a>
+					<h3>Get<wbr>Response</h3>
+					<div class="tsd-signature tsd-kind-icon">Get<wbr>Response<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">Record</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">&gt;</span></div>
+					<aside class="tsd-sources">
+						<ul>
+							<li>Defined in types.ts:225</li>
+						</ul>
+					</aside>
+				</section>
+				<section class="tsd-panel tsd-member tsd-kind-type-alias tsd-parent-kind-module">
+					<a name="getreturn" class="tsd-anchor"></a>
+					<h3>Get<wbr>Return</h3>
+					<div class="tsd-signature tsd-kind-icon">Get<wbr>Return<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">Record</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">&gt;</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">Record</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">&gt;</span><span class="tsd-signature-symbol">[]</span></div>
+					<aside class="tsd-sources">
+						<ul>
+							<li>Defined in types.ts:9</li>
+						</ul>
+					</aside>
+				</section>
+				<section class="tsd-panel tsd-member tsd-kind-type-alias tsd-parent-kind-module">
+					<a name="makefn" class="tsd-anchor"></a>
+					<h3>Make<wbr>Fn</h3>
+					<div class="tsd-signature tsd-kind-icon">Make<wbr>Fn<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-symbol">(</span>call<span class="tsd-signature-symbol">: </span><a href="_types_.html#callfn" class="tsd-signature-type">CallFn</a><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol"> =&gt; </span><a href="_types_.html#command" class="tsd-signature-type">Command</a></div>
+					<aside class="tsd-sources">
+						<ul>
+							<li>Defined in types.ts:239</li>
+						</ul>
+					</aside>
+					<div class="tsd-type-declaration">
+						<h4>Type declaration</h4>
+						<ul class="tsd-parameters">
+							<li class="tsd-parameter-signature">
+								<ul class="tsd-signatures tsd-kind-type-literal tsd-parent-kind-type-alias">
+									<li class="tsd-signature tsd-kind-icon"><span class="tsd-signature-symbol">(</span>call<span class="tsd-signature-symbol">: </span><a href="_types_.html#callfn" class="tsd-signature-type">CallFn</a><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="_types_.html#command" class="tsd-signature-type">Command</a></li>
+								</ul>
+								<ul class="tsd-descriptions">
+									<li class="tsd-description">
+										<h4 class="tsd-parameters-title">Parameters</h4>
+										<ul class="tsd-parameters">
+											<li>
+												<h5>call: <a href="_types_.html#callfn" class="tsd-signature-type">CallFn</a></h5>
+											</li>
+										</ul>
+										<h4 class="tsd-returns-title">Returns <a href="_types_.html#command" class="tsd-signature-type">Command</a></h4>
+									</li>
+								</ul>
+							</li>
+						</ul>
+					</div>
+				</section>
+				<section class="tsd-panel tsd-member tsd-kind-type-alias tsd-parent-kind-module">
+					<a name="makerecipefn" class="tsd-anchor"></a>
+					<h3>Make<wbr>Recipe<wbr>Fn</h3>
+					<div class="tsd-signature tsd-kind-icon">Make<wbr>Recipe<wbr>Fn<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-symbol">(</span>call<span class="tsd-signature-symbol">: </span><a href="_types_.html#callfn" class="tsd-signature-type">CallFn</a><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol"> =&gt; </span><a href="_types_.html#recipe" class="tsd-signature-type">Recipe</a></div>
+					<aside class="tsd-sources">
+						<ul>
+							<li>Defined in types.ts:240</li>
+						</ul>
+					</aside>
+					<div class="tsd-type-declaration">
+						<h4>Type declaration</h4>
+						<ul class="tsd-parameters">
+							<li class="tsd-parameter-signature">
+								<ul class="tsd-signatures tsd-kind-type-literal tsd-parent-kind-type-alias">
+									<li class="tsd-signature tsd-kind-icon"><span class="tsd-signature-symbol">(</span>call<span class="tsd-signature-symbol">: </span><a href="_types_.html#callfn" class="tsd-signature-type">CallFn</a><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="_types_.html#recipe" class="tsd-signature-type">Recipe</a></li>
+								</ul>
+								<ul class="tsd-descriptions">
+									<li class="tsd-description">
+										<h4 class="tsd-parameters-title">Parameters</h4>
+										<ul class="tsd-parameters">
+											<li>
+												<h5>call: <a href="_types_.html#callfn" class="tsd-signature-type">CallFn</a></h5>
+											</li>
+										</ul>
+										<h4 class="tsd-returns-title">Returns <a href="_types_.html#recipe" class="tsd-signature-type">Recipe</a></h4>
+									</li>
+								</ul>
+							</li>
+						</ul>
+					</div>
+				</section>
+				<section class="tsd-panel tsd-member tsd-kind-type-alias tsd-parent-kind-module">
+					<a name="operateclearfn" class="tsd-anchor"></a>
+					<h3>Operate<wbr>Clear<wbr>Fn</h3>
+					<div class="tsd-signature tsd-kind-icon">Operate<wbr>Clear<wbr>Fn<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol"> =&gt; </span><span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">&gt;</span></div>
+					<aside class="tsd-sources">
+						<ul>
+							<li>Defined in types.ts:23</li>
+						</ul>
+					</aside>
+					<div class="tsd-type-declaration">
+						<h4>Type declaration</h4>
+						<ul class="tsd-parameters">
+							<li class="tsd-parameter-signature">
+								<ul class="tsd-signatures tsd-kind-type-literal tsd-parent-kind-type-alias">
+									<li class="tsd-signature tsd-kind-icon"><span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">&gt;</span></li>
+								</ul>
+								<ul class="tsd-descriptions">
+									<li class="tsd-description">
+										<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">&gt;</span></h4>
+									</li>
+								</ul>
+							</li>
+						</ul>
+					</div>
+				</section>
+				<section class="tsd-panel tsd-member tsd-kind-type-alias tsd-parent-kind-module">
+					<a name="operatecommand" class="tsd-anchor"></a>
+					<h3>Operate<wbr>Command</h3>
+					<div class="tsd-signature tsd-kind-icon">Operate<wbr>Command<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-symbol">(</span>path<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span>, opts<span class="tsd-signature-symbol">?: </span><a href="../interfaces/_types_.operateoptions.html" class="tsd-signature-type">OperateOptions</a><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol"> =&gt; </span><span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-symbol">[</span><a href="_types_.html#operatefn" class="tsd-signature-type">OperateFn</a><span class="tsd-signature-symbol">, </span><a href="_types_.html#operateclearfn" class="tsd-signature-type">OperateClearFn</a><span class="tsd-signature-symbol">]</span><span class="tsd-signature-symbol">&gt;</span></div>
+					<aside class="tsd-sources">
+						<ul>
+							<li>Defined in types.ts:24</li>
+						</ul>
+					</aside>
+					<div class="tsd-type-declaration">
+						<h4>Type declaration</h4>
+						<ul class="tsd-parameters">
+							<li class="tsd-parameter-signature">
+								<ul class="tsd-signatures tsd-kind-type-literal tsd-parent-kind-type-alias">
+									<li class="tsd-signature tsd-kind-icon"><span class="tsd-signature-symbol">(</span>path<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span>, opts<span class="tsd-signature-symbol">?: </span><a href="../interfaces/_types_.operateoptions.html" class="tsd-signature-type">OperateOptions</a><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-symbol">[</span><a href="_types_.html#operatefn" class="tsd-signature-type">OperateFn</a><span class="tsd-signature-symbol">, </span><a href="_types_.html#operateclearfn" class="tsd-signature-type">OperateClearFn</a><span class="tsd-signature-symbol">]</span><span class="tsd-signature-symbol">&gt;</span></li>
+								</ul>
+								<ul class="tsd-descriptions">
+									<li class="tsd-description">
+										<h4 class="tsd-parameters-title">Parameters</h4>
+										<ul class="tsd-parameters">
+											<li>
+												<h5>path: <span class="tsd-signature-type">string</span></h5>
+											</li>
+											<li>
+												<h5><span class="tsd-flag ts-flagOptional">Optional</span> opts: <a href="../interfaces/_types_.operateoptions.html" class="tsd-signature-type">OperateOptions</a></h5>
+											</li>
+										</ul>
+										<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-symbol">[</span><a href="_types_.html#operatefn" class="tsd-signature-type">OperateFn</a><span class="tsd-signature-symbol">, </span><a href="_types_.html#operateclearfn" class="tsd-signature-type">OperateClearFn</a><span class="tsd-signature-symbol">]</span><span class="tsd-signature-symbol">&gt;</span></h4>
+									</li>
+								</ul>
+							</li>
+						</ul>
+					</div>
+				</section>
+				<section class="tsd-panel tsd-member tsd-kind-type-alias tsd-parent-kind-module">
+					<a name="operatefn" class="tsd-anchor"></a>
+					<h3>Operate<wbr>Fn</h3>
+					<div class="tsd-signature tsd-kind-icon">Operate<wbr>Fn<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-symbol">(</span>input<span class="tsd-signature-symbol">?: </span><span class="tsd-signature-type">Record</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">&gt;</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol"> =&gt; </span><span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">&gt;</span></div>
+					<aside class="tsd-sources">
+						<ul>
+							<li>Defined in types.ts:22</li>
+						</ul>
+					</aside>
+					<div class="tsd-type-declaration">
+						<h4>Type declaration</h4>
+						<ul class="tsd-parameters">
+							<li class="tsd-parameter-signature">
+								<ul class="tsd-signatures tsd-kind-type-literal tsd-parent-kind-type-alias">
+									<li class="tsd-signature tsd-kind-icon"><span class="tsd-signature-symbol">(</span>input<span class="tsd-signature-symbol">?: </span><span class="tsd-signature-type">Record</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">&gt;</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">&gt;</span></li>
+								</ul>
+								<ul class="tsd-descriptions">
+									<li class="tsd-description">
+										<h4 class="tsd-parameters-title">Parameters</h4>
+										<ul class="tsd-parameters">
+											<li>
+												<h5><span class="tsd-flag ts-flagOptional">Optional</span> input: <span class="tsd-signature-type">Record</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">&gt;</span></h5>
+											</li>
+										</ul>
+										<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">&gt;</span></h4>
+									</li>
+								</ul>
+							</li>
+						</ul>
+					</div>
+				</section>
+				<section class="tsd-panel tsd-member tsd-kind-type-alias tsd-parent-kind-module">
+					<a name="pbrequestcommand" class="tsd-anchor"></a>
+					<h3>Pb<wbr>Request<wbr>Command</h3>
+					<div class="tsd-signature tsd-kind-icon">Pb<wbr>Request<wbr>Command<span class="tsd-signature-symbol">:</span> <a href="_types_.html#pbrequestcommandget" class="tsd-signature-type">PbRequestCommandGet</a><span class="tsd-signature-symbol"> | </span><a href="_types_.html#pbrequestcommandset" class="tsd-signature-type">PbRequestCommandSet</a><span class="tsd-signature-symbol"> | </span><a href="_types_.html#pbrequestcommandadd" class="tsd-signature-type">PbRequestCommandAdd</a><span class="tsd-signature-symbol"> | </span><a href="_types_.html#pbrequestcommanddel" class="tsd-signature-type">PbRequestCommandDel</a><span class="tsd-signature-symbol"> | </span><a href="_types_.html#pbrequestcommandoperate" class="tsd-signature-type">PbRequestCommandOperate</a></div>
+					<aside class="tsd-sources">
+						<ul>
+							<li>Defined in types.ts:36</li>
+						</ul>
+					</aside>
+				</section>
+				<section class="tsd-panel tsd-member tsd-kind-type-alias tsd-parent-kind-module">
+					<a name="pbrequestcommandadd" class="tsd-anchor"></a>
+					<h3>Pb<wbr>Request<wbr>Command<wbr>Add</h3>
+					<div class="tsd-signature tsd-kind-icon">Pb<wbr>Request<wbr>Command<wbr>Add<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-symbol">{ </span>add<span class="tsd-signature-symbol">: </span><span class="tsd-signature-symbol">{ </span>allowPartial<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">boolean</span><span class="tsd-signature-symbol">; </span>createObjs<span class="tsd-signature-symbol">: </span><span class="tsd-signature-symbol">{ </span>lookup<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">"Add.CreateObject"</span><span class="tsd-signature-symbol">; </span>objPath<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">; </span>paramSettings<span class="tsd-signature-symbol">: </span><span class="tsd-signature-symbol">{ </span>lookup<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">"Add.CreateParamSetting"</span><span class="tsd-signature-symbol">; </span>param<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">; </span>required<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">boolean</span><span class="tsd-signature-symbol">; </span>value<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol"> }</span><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol"> }</span><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol"> }</span><span class="tsd-signature-symbol"> }</span></div>
+					<aside class="tsd-sources">
+						<ul>
+							<li>Defined in types.ts:81</li>
+						</ul>
+					</aside>
+					<div class="tsd-type-declaration">
+						<h4>Type declaration</h4>
+						<ul class="tsd-parameters">
+							<li class="tsd-parameter">
+								<h5>add<span class="tsd-signature-symbol">: </span><span class="tsd-signature-symbol">{ </span>allowPartial<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">boolean</span><span class="tsd-signature-symbol">; </span>createObjs<span class="tsd-signature-symbol">: </span><span class="tsd-signature-symbol">{ </span>lookup<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">"Add.CreateObject"</span><span class="tsd-signature-symbol">; </span>objPath<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">; </span>paramSettings<span class="tsd-signature-symbol">: </span><span class="tsd-signature-symbol">{ </span>lookup<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">"Add.CreateParamSetting"</span><span class="tsd-signature-symbol">; </span>param<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">; </span>required<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">boolean</span><span class="tsd-signature-symbol">; </span>value<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol"> }</span><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol"> }</span><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol"> }</span></h5>
+								<ul class="tsd-parameters">
+									<li class="tsd-parameter">
+										<h5>allow<wbr>Partial<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">boolean</span></h5>
+									</li>
+									<li class="tsd-parameter">
+										<h5>create<wbr>Objs<span class="tsd-signature-symbol">: </span><span class="tsd-signature-symbol">{ </span>lookup<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">"Add.CreateObject"</span><span class="tsd-signature-symbol">; </span>objPath<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">; </span>paramSettings<span class="tsd-signature-symbol">: </span><span class="tsd-signature-symbol">{ </span>lookup<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">"Add.CreateParamSetting"</span><span class="tsd-signature-symbol">; </span>param<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">; </span>required<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">boolean</span><span class="tsd-signature-symbol">; </span>value<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol"> }</span><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol"> }</span><span class="tsd-signature-symbol">[]</span></h5>
+									</li>
+								</ul>
+							</li>
+						</ul>
+					</div>
+				</section>
+				<section class="tsd-panel tsd-member tsd-kind-type-alias tsd-parent-kind-module">
+					<a name="pbrequestcommanddel" class="tsd-anchor"></a>
+					<h3>Pb<wbr>Request<wbr>Command<wbr>Del</h3>
+					<div class="tsd-signature tsd-kind-icon">Pb<wbr>Request<wbr>Command<wbr>Del<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-symbol">{ </span>delete<span class="tsd-signature-symbol">: </span><span class="tsd-signature-symbol">{ </span>allowPartial<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">boolean</span><span class="tsd-signature-symbol">; </span>objPaths<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol"> }</span><span class="tsd-signature-symbol"> }</span></div>
+					<aside class="tsd-sources">
+						<ul>
+							<li>Defined in types.ts:52</li>
+						</ul>
+					</aside>
+					<div class="tsd-type-declaration">
+						<h4>Type declaration</h4>
+						<ul class="tsd-parameters">
+							<li class="tsd-parameter">
+								<h5>delete<span class="tsd-signature-symbol">: </span><span class="tsd-signature-symbol">{ </span>allowPartial<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">boolean</span><span class="tsd-signature-symbol">; </span>objPaths<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol"> }</span></h5>
+								<ul class="tsd-parameters">
+									<li class="tsd-parameter">
+										<h5>allow<wbr>Partial<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">boolean</span></h5>
+									</li>
+									<li class="tsd-parameter">
+										<h5>obj<wbr>Paths<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">[]</span></h5>
+									</li>
+								</ul>
+							</li>
+						</ul>
+					</div>
+				</section>
+				<section class="tsd-panel tsd-member tsd-kind-type-alias tsd-parent-kind-module">
+					<a name="pbrequestcommandget" class="tsd-anchor"></a>
+					<h3>Pb<wbr>Request<wbr>Command<wbr>Get</h3>
+					<div class="tsd-signature tsd-kind-icon">Pb<wbr>Request<wbr>Command<wbr>Get<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-symbol">{ </span>get<span class="tsd-signature-symbol">: </span><span class="tsd-signature-symbol">{ </span>paramPaths<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol"> }</span><span class="tsd-signature-symbol"> }</span></div>
+					<aside class="tsd-sources">
+						<ul>
+							<li>Defined in types.ts:59</li>
+						</ul>
+					</aside>
+					<div class="tsd-type-declaration">
+						<h4>Type declaration</h4>
+						<ul class="tsd-parameters">
+							<li class="tsd-parameter">
+								<h5>get<span class="tsd-signature-symbol">: </span><span class="tsd-signature-symbol">{ </span>paramPaths<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol"> }</span></h5>
+								<ul class="tsd-parameters">
+									<li class="tsd-parameter">
+										<h5>param<wbr>Paths<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">[]</span></h5>
+									</li>
+								</ul>
+							</li>
+						</ul>
+					</div>
+				</section>
+				<section class="tsd-panel tsd-member tsd-kind-type-alias tsd-parent-kind-module">
+					<a name="pbrequestcommandoperate" class="tsd-anchor"></a>
+					<h3>Pb<wbr>Request<wbr>Command<wbr>Operate</h3>
+					<div class="tsd-signature tsd-kind-icon">Pb<wbr>Request<wbr>Command<wbr>Operate<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-symbol">{ </span>operate<span class="tsd-signature-symbol">: </span><span class="tsd-signature-symbol">{ </span>command<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">; </span>commandKey<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">; </span>inputArgs<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Record</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">&gt;</span><span class="tsd-signature-symbol">; </span>sendResp<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">boolean</span><span class="tsd-signature-symbol"> }</span><span class="tsd-signature-symbol"> }</span></div>
+					<aside class="tsd-sources">
+						<ul>
+							<li>Defined in types.ts:43</li>
+						</ul>
+					</aside>
+					<div class="tsd-type-declaration">
+						<h4>Type declaration</h4>
+						<ul class="tsd-parameters">
+							<li class="tsd-parameter">
+								<h5>operate<span class="tsd-signature-symbol">: </span><span class="tsd-signature-symbol">{ </span>command<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">; </span>commandKey<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">; </span>inputArgs<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Record</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">&gt;</span><span class="tsd-signature-symbol">; </span>sendResp<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">boolean</span><span class="tsd-signature-symbol"> }</span></h5>
+								<ul class="tsd-parameters">
+									<li class="tsd-parameter">
+										<h5>command<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span></h5>
+									</li>
+									<li class="tsd-parameter">
+										<h5>command<wbr>Key<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span></h5>
+									</li>
+									<li class="tsd-parameter">
+										<h5>input<wbr>Args<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Record</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">&gt;</span></h5>
+									</li>
+									<li class="tsd-parameter">
+										<h5>send<wbr>Resp<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">boolean</span></h5>
+									</li>
+								</ul>
+							</li>
+						</ul>
+					</div>
+				</section>
+				<section class="tsd-panel tsd-member tsd-kind-type-alias tsd-parent-kind-module">
+					<a name="pbrequestcommandset" class="tsd-anchor"></a>
+					<h3>Pb<wbr>Request<wbr>Command<wbr>Set</h3>
+					<div class="tsd-signature tsd-kind-icon">Pb<wbr>Request<wbr>Command<wbr>Set<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-symbol">{ </span>set<span class="tsd-signature-symbol">: </span><span class="tsd-signature-symbol">{ </span>allowPartial<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">boolean</span><span class="tsd-signature-symbol">; </span>updateObjs<span class="tsd-signature-symbol">: </span><span class="tsd-signature-symbol">{ </span>lookup<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">"Set.UpdateObject"</span><span class="tsd-signature-symbol">; </span>objPath<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">; </span>paramSettings<span class="tsd-signature-symbol">: </span><span class="tsd-signature-symbol">{ </span>lookup<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">"Set.UpdateParamSetting"</span><span class="tsd-signature-symbol">; </span>param<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">; </span>required<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">boolean</span><span class="tsd-signature-symbol">; </span>value<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol"> }</span><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol"> }</span><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol"> }</span><span class="tsd-signature-symbol"> }</span></div>
+					<aside class="tsd-sources">
+						<ul>
+							<li>Defined in types.ts:65</li>
+						</ul>
+					</aside>
+					<div class="tsd-type-declaration">
+						<h4>Type declaration</h4>
+						<ul class="tsd-parameters">
+							<li class="tsd-parameter">
+								<h5>set<span class="tsd-signature-symbol">: </span><span class="tsd-signature-symbol">{ </span>allowPartial<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">boolean</span><span class="tsd-signature-symbol">; </span>updateObjs<span class="tsd-signature-symbol">: </span><span class="tsd-signature-symbol">{ </span>lookup<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">"Set.UpdateObject"</span><span class="tsd-signature-symbol">; </span>objPath<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">; </span>paramSettings<span class="tsd-signature-symbol">: </span><span class="tsd-signature-symbol">{ </span>lookup<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">"Set.UpdateParamSetting"</span><span class="tsd-signature-symbol">; </span>param<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">; </span>required<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">boolean</span><span class="tsd-signature-symbol">; </span>value<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol"> }</span><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol"> }</span><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol"> }</span></h5>
+								<ul class="tsd-parameters">
+									<li class="tsd-parameter">
+										<h5>allow<wbr>Partial<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">boolean</span></h5>
+									</li>
+									<li class="tsd-parameter">
+										<h5>update<wbr>Objs<span class="tsd-signature-symbol">: </span><span class="tsd-signature-symbol">{ </span>lookup<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">"Set.UpdateObject"</span><span class="tsd-signature-symbol">; </span>objPath<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">; </span>paramSettings<span class="tsd-signature-symbol">: </span><span class="tsd-signature-symbol">{ </span>lookup<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">"Set.UpdateParamSetting"</span><span class="tsd-signature-symbol">; </span>param<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">; </span>required<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">boolean</span><span class="tsd-signature-symbol">; </span>value<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol"> }</span><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol"> }</span><span class="tsd-signature-symbol">[]</span></h5>
+									</li>
+								</ul>
+							</li>
+						</ul>
+					</div>
+				</section>
+				<section class="tsd-panel tsd-member tsd-kind-type-alias tsd-parent-kind-module">
+					<a name="recipe" class="tsd-anchor"></a>
+					<h3>Recipe</h3>
+					<div class="tsd-signature tsd-kind-icon">Recipe<span class="tsd-signature-symbol">:</span> <a href="_types_.html#resolverecipe" class="tsd-signature-type">ResolveRecipe</a></div>
+					<aside class="tsd-sources">
+						<ul>
+							<li>Defined in types.ts:97</li>
+						</ul>
+					</aside>
+				</section>
+				<section class="tsd-panel tsd-member tsd-kind-type-alias tsd-parent-kind-module">
+					<a name="resolverecipe" class="tsd-anchor"></a>
+					<h3>Resolve<wbr>Recipe</h3>
+					<div class="tsd-signature tsd-kind-icon">Resolve<wbr>Recipe<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-symbol">(</span>msg<span class="tsd-signature-symbol">: </span><a href="_types_.html#getreturn" class="tsd-signature-type">GetReturn</a>, level<span class="tsd-signature-symbol">?: </span><span class="tsd-signature-type">undefined</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol"> =&gt; </span><span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><a href="_types_.html#getreturn" class="tsd-signature-type">GetReturn</a><span class="tsd-signature-symbol">&gt;</span></div>
+					<aside class="tsd-sources">
+						<ul>
+							<li>Defined in types.ts:99</li>
+						</ul>
+					</aside>
+					<div class="tsd-type-declaration">
+						<h4>Type declaration</h4>
+						<ul class="tsd-parameters">
+							<li class="tsd-parameter-signature">
+								<ul class="tsd-signatures tsd-kind-type-literal tsd-parent-kind-type-alias">
+									<li class="tsd-signature tsd-kind-icon"><span class="tsd-signature-symbol">(</span>msg<span class="tsd-signature-symbol">: </span><a href="_types_.html#getreturn" class="tsd-signature-type">GetReturn</a>, level<span class="tsd-signature-symbol">?: </span><span class="tsd-signature-type">undefined</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><a href="_types_.html#getreturn" class="tsd-signature-type">GetReturn</a><span class="tsd-signature-symbol">&gt;</span></li>
+								</ul>
+								<ul class="tsd-descriptions">
+									<li class="tsd-description">
+										<h4 class="tsd-parameters-title">Parameters</h4>
+										<ul class="tsd-parameters">
+											<li>
+												<h5>msg: <a href="_types_.html#getreturn" class="tsd-signature-type">GetReturn</a></h5>
+											</li>
+											<li>
+												<h5><span class="tsd-flag ts-flagOptional">Optional</span> level: <span class="tsd-signature-type">undefined</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">number</span></h5>
+											</li>
+										</ul>
+										<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><a href="_types_.html#getreturn" class="tsd-signature-type">GetReturn</a><span class="tsd-signature-symbol">&gt;</span></h4>
+									</li>
+								</ul>
+							</li>
+						</ul>
+					</div>
+				</section>
+				<section class="tsd-panel tsd-member tsd-kind-type-alias tsd-parent-kind-module">
+					<a name="response" class="tsd-anchor"></a>
+					<h3>Response</h3>
+					<div class="tsd-signature tsd-kind-icon">Response<span class="tsd-signature-symbol">:</span> <a href="_types_.html#getresponse" class="tsd-signature-type">GetResponse</a></div>
+					<aside class="tsd-sources">
+						<ul>
+							<li>Defined in types.ts:226</li>
+						</ul>
+					</aside>
+				</section>
+				<section class="tsd-panel tsd-member tsd-kind-type-alias tsd-parent-kind-module">
+					<a name="setcommand" class="tsd-anchor"></a>
+					<h3>Set<wbr>Command</h3>
+					<div class="tsd-signature tsd-kind-icon">Set<wbr>Command<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-symbol">(</span>path<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span>, value<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">Record</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">&gt;</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol"> =&gt; </span><span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">&gt;</span></div>
+					<aside class="tsd-sources">
+						<ul>
+							<li>Defined in types.ts:13</li>
+						</ul>
+					</aside>
+					<div class="tsd-type-declaration">
+						<h4>Type declaration</h4>
+						<ul class="tsd-parameters">
+							<li class="tsd-parameter-signature">
+								<ul class="tsd-signatures tsd-kind-type-literal tsd-parent-kind-type-alias">
+									<li class="tsd-signature tsd-kind-icon"><span class="tsd-signature-symbol">(</span>path<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span>, value<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">Record</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">&gt;</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">&gt;</span></li>
+								</ul>
+								<ul class="tsd-descriptions">
+									<li class="tsd-description">
+										<h4 class="tsd-parameters-title">Parameters</h4>
+										<ul class="tsd-parameters">
+											<li>
+												<h5>path: <span class="tsd-signature-type">string</span></h5>
+											</li>
+											<li>
+												<h5>value: <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">Record</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">&gt;</span></h5>
+											</li>
+										</ul>
+										<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">&gt;</span></h4>
+									</li>
+								</ul>
+							</li>
+						</ul>
+					</div>
+				</section>
+			</section>
+		</div>
+		<div class="col-4 col-menu menu-sticky-wrap menu-highlight">
+			<nav class="tsd-navigation primary">
+				<ul>
+					<li class="globals  ">
+						<a href="../globals.html"><em>Globals</em></a>
+					</li>
+					<li class="label tsd-is-external">
+						<span>Internals</span>
+					</li>
+					<li class=" tsd-kind-module">
+						<a href="_commands_add_.html">&quot;commands/add&quot;</a>
+					</li>
+					<li class=" tsd-kind-module">
+						<a href="_commands_del_.html">&quot;commands/del&quot;</a>
+					</li>
+					<li class=" tsd-kind-module">
+						<a href="_commands_get_.html">&quot;commands/get&quot;</a>
+					</li>
+					<li class=" tsd-kind-module">
+						<a href="_commands_index_.html">&quot;commands/index&quot;</a>
+					</li>
+					<li class=" tsd-kind-module">
+						<a href="_commands_operate_.html">&quot;commands/operate&quot;</a>
+					</li>
+					<li class=" tsd-kind-module">
+						<a href="_commands_recipes_resolve_.html">&quot;commands/recipes/resolve&quot;</a>
+					</li>
+					<li class=" tsd-kind-module">
+						<a href="_commands_set_.html">&quot;commands/set&quot;</a>
+					</li>
+					<li class=" tsd-kind-module">
+						<a href="_commands_util_.html">&quot;commands/util&quot;</a>
+					</li>
+					<li class=" tsd-kind-module">
+						<a href="_index_.html">&quot;index&quot;</a>
+					</li>
+					<li class="current tsd-kind-module">
+						<a href="_types_.html">&quot;types&quot;</a>
+					</li>
+					<li class=" tsd-kind-module">
+						<a href="_util_.html">&quot;util&quot;</a>
+					</li>
+					<li class="label tsd-is-external">
+						<span>Externals</span>
+					</li>
+					<li class=" tsd-kind-module tsd-is-external">
+						<a href="_specs_usp_msg_1_1_.html">&quot;specs/usp-<wbr>msg-<wbr>1-1&quot;</a>
+					</li>
+					<li class=" tsd-kind-module tsd-is-external">
+						<a href="_specs_usp_record_1_1_.html">&quot;specs/usp-<wbr>record-<wbr>1-1&quot;</a>
+					</li>
+				</ul>
+			</nav>
+			<nav class="tsd-navigation secondary menu-sticky">
+				<ul class="before-current">
+					<li class=" tsd-kind-interface tsd-parent-kind-module">
+						<a href="../interfaces/_types_.connectionevents.html" class="tsd-kind-icon">Connection<wbr>Events</a>
+					</li>
+					<li class=" tsd-kind-interface tsd-parent-kind-module">
+						<a href="../interfaces/_types_.connectionoptions.html" class="tsd-kind-icon">Connection<wbr>Options</a>
+					</li>
+					<li class=" tsd-kind-interface tsd-parent-kind-module tsd-is-not-exported">
+						<a href="../interfaces/_types_.operateoptions.html" class="tsd-kind-icon">Operate<wbr>Options</a>
+					</li>
+					<li class=" tsd-kind-interface tsd-parent-kind-module">
+						<a href="../interfaces/_types_.pbrequestbody.html" class="tsd-kind-icon">Pb<wbr>Request<wbr>Body</a>
+					</li>
+					<li class=" tsd-kind-interface tsd-parent-kind-module">
+						<a href="../interfaces/_types_.pbrequestheader.html" class="tsd-kind-icon">Pb<wbr>Request<wbr>Header</a>
+					</li>
+					<li class=" tsd-kind-interface tsd-parent-kind-module">
+						<a href="../interfaces/_types_.pbrequestmessage.html" class="tsd-kind-icon">Pb<wbr>Request<wbr>Message</a>
+					</li>
+					<li class=" tsd-kind-interface tsd-parent-kind-module">
+						<a href="../interfaces/_types_.recipeobject.html" class="tsd-kind-icon">Recipe<wbr>Object</a>
+					</li>
+					<li class=" tsd-kind-interface tsd-parent-kind-module">
+						<a href="../interfaces/_types_.usp.html" class="tsd-kind-icon">USP</a>
+					</li>
+					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
+						<a href="_types_.html#addcommand" class="tsd-kind-icon">Add<wbr>Command</a>
+					</li>
+					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
+						<a href="_types_.html#callfn" class="tsd-kind-icon">Call<wbr>Fn</a>
+					</li>
+					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
+						<a href="_types_.html#command" class="tsd-kind-icon">Command</a>
+					</li>
+					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
+						<a href="_types_.html#commandobject" class="tsd-kind-icon">Command<wbr>Object</a>
+					</li>
+					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
+						<a href="_types_.html#commandtrigger" class="tsd-kind-icon">Command<wbr>Trigger</a>
+					</li>
+					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
+						<a href="_types_.html#commandtype" class="tsd-kind-icon">Command<wbr>Type</a>
+					</li>
+					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
+						<a href="_types_.html#decodefn" class="tsd-kind-icon">Decode<wbr>Fn</a>
+					</li>
+					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
+						<a href="_types_.html#delcommand" class="tsd-kind-icon">Del<wbr>Command</a>
+					</li>
+					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
+						<a href="_types_.html#encodeargs" class="tsd-kind-icon">Encode<wbr>Args</a>
+					</li>
+					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
+						<a href="_types_.html#encodefn" class="tsd-kind-icon">Encode<wbr>Fn</a>
+					</li>
+					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
+						<a href="_types_.html#getcommand" class="tsd-kind-icon">Get<wbr>Command</a>
+					</li>
+					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
+						<a href="_types_.html#getresponse" class="tsd-kind-icon">Get<wbr>Response</a>
+					</li>
+					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
+						<a href="_types_.html#getreturn" class="tsd-kind-icon">Get<wbr>Return</a>
+					</li>
+					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
+						<a href="_types_.html#makefn" class="tsd-kind-icon">Make<wbr>Fn</a>
+					</li>
+					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
+						<a href="_types_.html#makerecipefn" class="tsd-kind-icon">Make<wbr>Recipe<wbr>Fn</a>
+					</li>
+					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
+						<a href="_types_.html#operateclearfn" class="tsd-kind-icon">Operate<wbr>Clear<wbr>Fn</a>
+					</li>
+					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
+						<a href="_types_.html#operatecommand" class="tsd-kind-icon">Operate<wbr>Command</a>
+					</li>
+					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
+						<a href="_types_.html#operatefn" class="tsd-kind-icon">Operate<wbr>Fn</a>
+					</li>
+					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
+						<a href="_types_.html#pbrequestcommand" class="tsd-kind-icon">Pb<wbr>Request<wbr>Command</a>
+					</li>
+					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
+						<a href="_types_.html#pbrequestcommandadd" class="tsd-kind-icon">Pb<wbr>Request<wbr>Command<wbr>Add</a>
+					</li>
+					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
+						<a href="_types_.html#pbrequestcommanddel" class="tsd-kind-icon">Pb<wbr>Request<wbr>Command<wbr>Del</a>
+					</li>
+					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
+						<a href="_types_.html#pbrequestcommandget" class="tsd-kind-icon">Pb<wbr>Request<wbr>Command<wbr>Get</a>
+					</li>
+					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
+						<a href="_types_.html#pbrequestcommandoperate" class="tsd-kind-icon">Pb<wbr>Request<wbr>Command<wbr>Operate</a>
+					</li>
+					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
+						<a href="_types_.html#pbrequestcommandset" class="tsd-kind-icon">Pb<wbr>Request<wbr>Command<wbr>Set</a>
+					</li>
+					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
+						<a href="_types_.html#recipe" class="tsd-kind-icon">Recipe</a>
+					</li>
+					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
+						<a href="_types_.html#resolverecipe" class="tsd-kind-icon">Resolve<wbr>Recipe</a>
+					</li>
+					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
+						<a href="_types_.html#response" class="tsd-kind-icon">Response</a>
+					</li>
+					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
+						<a href="_types_.html#setcommand" class="tsd-kind-icon">Set<wbr>Command</a>
+					</li>
+				</ul>
+			</nav>
+		</div>
+	</div>
+</div>
+<footer class="with-border-bottom">
+	<div class="container">
+		<h2>Legend</h2>
+		<div class="tsd-legend-group">
+			<ul class="tsd-legend">
+				<li class="tsd-kind-variable"><span class="tsd-kind-icon">Variable</span></li>
+				<li class="tsd-kind-function"><span class="tsd-kind-icon">Function</span></li>
+				<li class="tsd-kind-type-alias"><span class="tsd-kind-icon">Type alias</span></li>
+			</ul>
+			<ul class="tsd-legend">
+				<li class="tsd-kind-interface"><span class="tsd-kind-icon">Interface</span></li>
+			</ul>
+		</div>
+	</div>
+</footer>
+<div class="container tsd-generator">
+	<p>Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p>
+</div>
+<div class="overlay"></div>
+<script src="../assets/js/main.js"></script>
+</body>
+</html>
\ No newline at end of file
diff --git a/public/modules/_types_d_.html b/public/modules/_types_d_.html
deleted file mode 100644
index da3ea57ac9064a833bc9e970bc425218b397dbf5..0000000000000000000000000000000000000000
--- a/public/modules/_types_d_.html
+++ /dev/null
@@ -1,557 +0,0 @@
-<!doctype html>
-<html class="default no-js">
-<head>
-	<meta charset="utf-8">
-	<meta http-equiv="X-UA-Compatible" content="IE=edge">
-	<title>&quot;types.d&quot; | usp-js</title>
-	<meta name="description" content="Documentation for usp-js">
-	<meta name="viewport" content="width=device-width, initial-scale=1">
-	<link rel="stylesheet" href="../assets/css/main.css">
-</head>
-<body>
-<header>
-	<div class="tsd-page-toolbar">
-		<div class="container">
-			<div class="table-wrap">
-				<div class="table-cell" id="tsd-search" data-index="../assets/js/search.json" data-base="..">
-					<div class="field">
-						<label for="tsd-search-field" class="tsd-widget search no-caption">Search</label>
-						<input id="tsd-search-field" type="text" />
-					</div>
-					<ul class="results">
-						<li class="state loading">Preparing search index...</li>
-						<li class="state failure">The search index is not available</li>
-					</ul>
-					<a href="../index.html" class="title">usp-js</a>
-				</div>
-				<div class="table-cell" id="tsd-widgets">
-					<div id="tsd-filter">
-						<a href="#" class="tsd-widget options no-caption" data-toggle="options">Options</a>
-						<div class="tsd-filter-group">
-							<div class="tsd-select" id="tsd-filter-visibility">
-								<span class="tsd-select-label">All</span>
-								<ul class="tsd-select-list">
-									<li data-value="public">Public</li>
-									<li data-value="protected">Public/Protected</li>
-									<li data-value="private" class="selected">All</li>
-								</ul>
-							</div>
-							<input type="checkbox" id="tsd-filter-inherited" checked />
-							<label class="tsd-widget" for="tsd-filter-inherited">Inherited</label>
-							<input type="checkbox" id="tsd-filter-externals" checked />
-							<label class="tsd-widget" for="tsd-filter-externals">Externals</label>
-							<input type="checkbox" id="tsd-filter-only-exported" />
-							<label class="tsd-widget" for="tsd-filter-only-exported">Only exported</label>
-						</div>
-					</div>
-					<a href="#" class="tsd-widget menu no-caption" data-toggle="menu">Menu</a>
-				</div>
-			</div>
-		</div>
-	</div>
-	<div class="tsd-page-title">
-		<div class="container">
-			<ul class="tsd-breadcrumb">
-				<li>
-					<a href="../globals.html">Globals</a>
-				</li>
-				<li>
-					<a href="_types_d_.html">&quot;types.d&quot;</a>
-				</li>
-			</ul>
-			<h1>Module &quot;types.d&quot;</h1>
-		</div>
-	</div>
-</header>
-<div class="container container-main">
-	<div class="row">
-		<div class="col-8 col-content">
-			<section class="tsd-panel-group tsd-index-group">
-				<h2>Index</h2>
-				<section class="tsd-panel tsd-index-panel">
-					<div class="tsd-index-content">
-						<section class="tsd-index-section ">
-							<h3>Interfaces</h3>
-							<ul class="tsd-index-list">
-								<li class="tsd-kind-interface tsd-parent-kind-module"><a href="../interfaces/_types_d_.addmessage.html" class="tsd-kind-icon">Add<wbr>Message</a></li>
-								<li class="tsd-kind-interface tsd-parent-kind-module"><a href="../interfaces/_types_d_.basemessage.html" class="tsd-kind-icon">Base<wbr>Message</a></li>
-								<li class="tsd-kind-interface tsd-parent-kind-module"><a href="../interfaces/_types_d_.connectevents.html" class="tsd-kind-icon">Connect<wbr>Events</a></li>
-								<li class="tsd-kind-interface tsd-parent-kind-module"><a href="../interfaces/_types_d_.connectoptions.html" class="tsd-kind-icon">Connect<wbr>Options</a></li>
-								<li class="tsd-kind-interface tsd-parent-kind-module"><a href="../interfaces/_types_d_.deletemessage.html" class="tsd-kind-icon">Delete<wbr>Message</a></li>
-								<li class="tsd-kind-interface tsd-parent-kind-module"><a href="../interfaces/_types_d_.device.html" class="tsd-kind-icon">Device</a></li>
-								<li class="tsd-kind-interface tsd-parent-kind-module"><a href="../interfaces/_types_d_.deviceerror.html" class="tsd-kind-icon">Device<wbr>Error</a></li>
-								<li class="tsd-kind-interface tsd-parent-kind-module"><a href="../interfaces/_types_d_.encodeargs.html" class="tsd-kind-icon">Encode<wbr>Args</a></li>
-								<li class="tsd-kind-interface tsd-parent-kind-module"><a href="../interfaces/_types_d_.errormessage.html" class="tsd-kind-icon">Error<wbr>Message</a></li>
-								<li class="tsd-kind-interface tsd-parent-kind-module"><a href="../interfaces/_types_d_.getmessage.html" class="tsd-kind-icon">Get<wbr>Message</a></li>
-								<li class="tsd-kind-interface tsd-parent-kind-module"><a href="../interfaces/_types_d_.initresult.html" class="tsd-kind-icon">Init<wbr>Result</a></li>
-								<li class="tsd-kind-interface tsd-parent-kind-module"><a href="../interfaces/_types_d_.mqttrequest.html" class="tsd-kind-icon">MQTTRequest</a></li>
-								<li class="tsd-kind-interface tsd-parent-kind-module"><a href="../interfaces/_types_d_.notifymessage.html" class="tsd-kind-icon">Notify<wbr>Message</a></li>
-								<li class="tsd-kind-interface tsd-parent-kind-module"><a href="../interfaces/_types_d_.operatemessage.html" class="tsd-kind-icon">Operate<wbr>Message</a></li>
-								<li class="tsd-kind-interface tsd-parent-kind-module"><a href="../interfaces/_types_d_.operateoptions.html" class="tsd-kind-icon">Operate<wbr>Options</a></li>
-								<li class="tsd-kind-interface tsd-parent-kind-module"><a href="../interfaces/_types_d_.protocol.html" class="tsd-kind-icon">Protocol</a></li>
-								<li class="tsd-kind-interface tsd-parent-kind-module"><a href="../interfaces/_types_d_.protocolargs.html" class="tsd-kind-icon">Protocol<wbr>Args</a></li>
-								<li class="tsd-kind-interface tsd-parent-kind-module"><a href="../interfaces/_types_d_.protocolevents.html" class="tsd-kind-icon">Protocol<wbr>Events</a></li>
-								<li class="tsd-kind-interface tsd-parent-kind-module"><a href="../interfaces/_types_d_.setmessage.html" class="tsd-kind-icon">Set<wbr>Message</a></li>
-							</ul>
-						</section>
-						<section class="tsd-index-section ">
-							<h3>Type aliases</h3>
-							<ul class="tsd-index-list">
-								<li class="tsd-kind-type-alias tsd-parent-kind-module"><a href="_types_d_.html#commandtype" class="tsd-kind-icon">Command<wbr>Type</a></li>
-								<li class="tsd-kind-type-alias tsd-parent-kind-module"><a href="_types_d_.html#iclientoptions" class="tsd-kind-icon">IClient<wbr>Options</a></li>
-								<li class="tsd-kind-type-alias tsd-parent-kind-module"><a href="_types_d_.html#jsobject" class="tsd-kind-icon">JSObject</a></li>
-								<li class="tsd-kind-type-alias tsd-parent-kind-module"><a href="_types_d_.html#jstype" class="tsd-kind-icon">JSType</a></li>
-								<li class="tsd-kind-type-alias tsd-parent-kind-module"><a href="_types_d_.html#messagetype" class="tsd-kind-icon">Message<wbr>Type</a></li>
-								<li class="tsd-kind-type-alias tsd-parent-kind-module"><a href="_types_d_.html#operatecleanupfunction" class="tsd-kind-icon">Operate<wbr>Cleanup<wbr>Function</a></li>
-								<li class="tsd-kind-type-alias tsd-parent-kind-module"><a href="_types_d_.html#operatefunction" class="tsd-kind-icon">Operate<wbr>Function</a></li>
-								<li class="tsd-kind-type-alias tsd-parent-kind-module"><a href="_types_d_.html#promiseresult" class="tsd-kind-icon">Promise<wbr>Result</a></li>
-								<li class="tsd-kind-type-alias tsd-parent-kind-module"><a href="_types_d_.html#rejectfn" class="tsd-kind-icon">Reject<wbr>Fn</a></li>
-								<li class="tsd-kind-type-alias tsd-parent-kind-module"><a href="_types_d_.html#role" class="tsd-kind-icon">Role</a></li>
-								<li class="tsd-kind-type-alias tsd-parent-kind-module"><a href="_types_d_.html#router" class="tsd-kind-icon">Router</a></li>
-								<li class="tsd-kind-type-alias tsd-parent-kind-module"><a href="_types_d_.html#sendfn" class="tsd-kind-icon">Send<wbr>Fn</a></li>
-								<li class="tsd-kind-type-alias tsd-parent-kind-module"><a href="_types_d_.html#uspmessage" class="tsd-kind-icon">USPMessage</a></li>
-							</ul>
-						</section>
-					</div>
-				</section>
-			</section>
-			<section class="tsd-panel-group tsd-member-group ">
-				<h2>Type aliases</h2>
-				<section class="tsd-panel tsd-member tsd-kind-type-alias tsd-parent-kind-module">
-					<a name="commandtype" class="tsd-anchor"></a>
-					<h3>Command<wbr>Type</h3>
-					<div class="tsd-signature tsd-kind-icon">Command<wbr>Type<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">"get"</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">"set"</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">"operate"</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">"add"</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">"delete"</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">"notify"</span></div>
-					<aside class="tsd-sources">
-						<ul>
-							<li>Defined in src/types.d.ts:141</li>
-						</ul>
-					</aside>
-					<div class="tsd-comment tsd-typography">
-						<div class="lead">
-							<p>USP Commands</p>
-						</div>
-					</div>
-				</section>
-				<section class="tsd-panel tsd-member tsd-kind-type-alias tsd-parent-kind-module">
-					<a name="iclientoptions" class="tsd-anchor"></a>
-					<h3>IClient<wbr>Options</h3>
-					<div class="tsd-signature tsd-kind-icon">IClient<wbr>Options<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">IClientOptions</span></div>
-					<aside class="tsd-sources">
-						<ul>
-							<li>Defined in src/types.d.ts:2</li>
-						</ul>
-					</aside>
-				</section>
-				<section class="tsd-panel tsd-member tsd-kind-type-alias tsd-parent-kind-module">
-					<a name="jsobject" class="tsd-anchor"></a>
-					<h3>JSObject</h3>
-					<div class="tsd-signature tsd-kind-icon">JSObject<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-symbol">{}</span></div>
-					<aside class="tsd-sources">
-						<ul>
-							<li>Defined in src/types.d.ts:139</li>
-						</ul>
-					</aside>
-					<div class="tsd-comment tsd-typography">
-						<div class="lead">
-							<p>Representation of JS object</p>
-						</div>
-					</div>
-					<div class="tsd-type-declaration">
-						<h4>Type declaration</h4>
-						<ul class="tsd-parameters">
-							<li class="tsd-parameter-index-signature">
-								<h5><span class="tsd-signature-symbol">[</span>key: <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">]: </span><a href="_types_d_.html#jstype" class="tsd-signature-type">JSType</a></h5>
-							</li>
-						</ul>
-					</div>
-				</section>
-				<section class="tsd-panel tsd-member tsd-kind-type-alias tsd-parent-kind-module">
-					<a name="jstype" class="tsd-anchor"></a>
-					<h3>JSType</h3>
-					<div class="tsd-signature tsd-kind-icon">JSType<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">number</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">boolean</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol"> | </span><a href="_types_d_.html#jsobject" class="tsd-signature-type">JSObject</a></div>
-					<aside class="tsd-sources">
-						<ul>
-							<li>Defined in src/types.d.ts:145</li>
-						</ul>
-					</aside>
-					<div class="tsd-comment tsd-typography">
-						<div class="lead">
-							<p>Represents js types</p>
-						</div>
-					</div>
-				</section>
-				<section class="tsd-panel tsd-member tsd-kind-type-alias tsd-parent-kind-module">
-					<a name="messagetype" class="tsd-anchor"></a>
-					<h3>Message<wbr>Type</h3>
-					<div class="tsd-signature tsd-kind-icon">Message<wbr>Type<span class="tsd-signature-symbol">:</span> <a href="_types_d_.html#commandtype" class="tsd-signature-type">CommandType</a><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">"error"</span></div>
-					<aside class="tsd-sources">
-						<ul>
-							<li>Defined in src/types.d.ts:143</li>
-						</ul>
-					</aside>
-					<div class="tsd-comment tsd-typography">
-						<div class="lead">
-							<p>Message types</p>
-						</div>
-					</div>
-				</section>
-				<section class="tsd-panel tsd-member tsd-kind-type-alias tsd-parent-kind-module">
-					<a name="operatecleanupfunction" class="tsd-anchor"></a>
-					<h3>Operate<wbr>Cleanup<wbr>Function</h3>
-					<div class="tsd-signature tsd-kind-icon">Operate<wbr>Cleanup<wbr>Function<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol"> =&gt; </span><span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">&gt;</span></div>
-					<aside class="tsd-sources">
-						<ul>
-							<li>Defined in src/types.d.ts:124</li>
-						</ul>
-					</aside>
-					<div class="tsd-comment tsd-typography">
-						<div class="lead">
-							<p>Cleans up command subscription</p>
-						</div>
-					</div>
-					<div class="tsd-type-declaration">
-						<h4>Type declaration</h4>
-						<ul class="tsd-parameters">
-							<li class="tsd-parameter-signature">
-								<ul class="tsd-signatures tsd-kind-type-literal tsd-parent-kind-type-alias">
-									<li class="tsd-signature tsd-kind-icon"><span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">&gt;</span></li>
-								</ul>
-								<ul class="tsd-descriptions">
-									<li class="tsd-description">
-										<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">&gt;</span></h4>
-									</li>
-								</ul>
-							</li>
-						</ul>
-					</div>
-				</section>
-				<section class="tsd-panel tsd-member tsd-kind-type-alias tsd-parent-kind-module">
-					<a name="operatefunction" class="tsd-anchor"></a>
-					<h3>Operate<wbr>Function</h3>
-					<div class="tsd-signature tsd-kind-icon">Operate<wbr>Function<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-symbol">(</span>input<span class="tsd-signature-symbol">?: </span><a href="_types_d_.html#jsobject" class="tsd-signature-type">JSObject</a><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol"> =&gt; </span><span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><a href="_types_d_.html#jstype" class="tsd-signature-type">JSType</a><span class="tsd-signature-symbol">&gt;</span></div>
-					<aside class="tsd-sources">
-						<ul>
-							<li>Defined in src/types.d.ts:122</li>
-						</ul>
-					</aside>
-					<div class="tsd-comment tsd-typography">
-						<div class="lead">
-							<p>Executes a command</p>
-						</div>
-					</div>
-					<div class="tsd-type-declaration">
-						<h4>Type declaration</h4>
-						<ul class="tsd-parameters">
-							<li class="tsd-parameter-signature">
-								<ul class="tsd-signatures tsd-kind-type-literal tsd-parent-kind-type-alias">
-									<li class="tsd-signature tsd-kind-icon"><span class="tsd-signature-symbol">(</span>input<span class="tsd-signature-symbol">?: </span><a href="_types_d_.html#jsobject" class="tsd-signature-type">JSObject</a><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><a href="_types_d_.html#jstype" class="tsd-signature-type">JSType</a><span class="tsd-signature-symbol">&gt;</span></li>
-								</ul>
-								<ul class="tsd-descriptions">
-									<li class="tsd-description">
-										<h4 class="tsd-parameters-title">Parameters</h4>
-										<ul class="tsd-parameters">
-											<li>
-												<h5><span class="tsd-flag ts-flagOptional">Optional</span> input: <a href="_types_d_.html#jsobject" class="tsd-signature-type">JSObject</a></h5>
-											</li>
-										</ul>
-										<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><a href="_types_d_.html#jstype" class="tsd-signature-type">JSType</a><span class="tsd-signature-symbol">&gt;</span></h4>
-									</li>
-								</ul>
-							</li>
-						</ul>
-					</div>
-				</section>
-				<section class="tsd-panel tsd-member tsd-kind-type-alias tsd-parent-kind-module">
-					<a name="promiseresult" class="tsd-anchor"></a>
-					<h3>Promise<wbr>Result</h3>
-					<div class="tsd-signature tsd-kind-icon">Promise<wbr>Result<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-symbol">{ </span>reject<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">; </span>resolve<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol"> }</span></div>
-					<aside class="tsd-sources">
-						<ul>
-							<li>Defined in src/types.d.ts:11</li>
-						</ul>
-					</aside>
-					<div class="tsd-comment tsd-typography">
-						<div class="lead">
-							<p>Stores promise resolve and reject responses</p>
-						</div>
-					</div>
-					<div class="tsd-type-declaration">
-						<h4>Type declaration</h4>
-						<ul class="tsd-parameters">
-							<li class="tsd-parameter">
-								<h5>reject<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">any</span></h5>
-							</li>
-							<li class="tsd-parameter">
-								<h5>resolve<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">any</span></h5>
-							</li>
-						</ul>
-					</div>
-				</section>
-				<section class="tsd-panel tsd-member tsd-kind-type-alias tsd-parent-kind-module">
-					<a name="rejectfn" class="tsd-anchor"></a>
-					<h3>Reject<wbr>Fn</h3>
-					<div class="tsd-signature tsd-kind-icon">Reject<wbr>Fn<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-symbol">(</span>reason<span class="tsd-signature-symbol">?: </span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol"> =&gt; </span><span class="tsd-signature-type">void</span></div>
-					<aside class="tsd-sources">
-						<ul>
-							<li>Defined in src/types.d.ts:252</li>
-						</ul>
-					</aside>
-					<div class="tsd-type-declaration">
-						<h4>Type declaration</h4>
-						<ul class="tsd-parameters">
-							<li class="tsd-parameter-signature">
-								<ul class="tsd-signatures tsd-kind-type-literal tsd-parent-kind-type-alias">
-									<li class="tsd-signature tsd-kind-icon"><span class="tsd-signature-symbol">(</span>reason<span class="tsd-signature-symbol">?: </span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">void</span></li>
-								</ul>
-								<ul class="tsd-descriptions">
-									<li class="tsd-description">
-										<h4 class="tsd-parameters-title">Parameters</h4>
-										<ul class="tsd-parameters">
-											<li>
-												<h5><span class="tsd-flag ts-flagOptional">Optional</span> reason: <span class="tsd-signature-type">any</span></h5>
-											</li>
-										</ul>
-										<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">void</span></h4>
-									</li>
-								</ul>
-							</li>
-						</ul>
-					</div>
-				</section>
-				<section class="tsd-panel tsd-member tsd-kind-type-alias tsd-parent-kind-module">
-					<a name="role" class="tsd-anchor"></a>
-					<h3>Role</h3>
-					<div class="tsd-signature tsd-kind-icon">Role<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">"admin"</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">"user"</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">"none"</span></div>
-					<aside class="tsd-sources">
-						<ul>
-							<li>Defined in src/types.d.ts:137</li>
-						</ul>
-					</aside>
-					<div class="tsd-comment tsd-typography">
-						<div class="lead">
-							<p>Session role</p>
-						</div>
-					</div>
-				</section>
-				<section class="tsd-panel tsd-member tsd-kind-type-alias tsd-parent-kind-module">
-					<a name="router" class="tsd-anchor"></a>
-					<h3>Router</h3>
-					<div class="tsd-signature tsd-kind-icon">Router<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">Map</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">, </span><a href="_types_d_.html#promiseresult" class="tsd-signature-type">PromiseResult</a><span class="tsd-signature-symbol">&gt;</span></div>
-					<aside class="tsd-sources">
-						<ul>
-							<li>Defined in src/types.d.ts:13</li>
-						</ul>
-					</aside>
-					<div class="tsd-comment tsd-typography">
-						<div class="lead">
-							<p>Routes messages</p>
-						</div>
-					</div>
-				</section>
-				<section class="tsd-panel tsd-member tsd-kind-type-alias tsd-parent-kind-module">
-					<a name="sendfn" class="tsd-anchor"></a>
-					<h3>Send<wbr>Fn</h3>
-					<div class="tsd-signature tsd-kind-icon">Send<wbr>Fn<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-symbol">(</span>command<span class="tsd-signature-symbol">: </span><a href="_types_d_.html#commandtype" class="tsd-signature-type">CommandType</a>, args<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Partial</span><span class="tsd-signature-symbol">&lt;</span><a href="../interfaces/_types_d_.encodeargs.html" class="tsd-signature-type">EncodeArgs</a><span class="tsd-signature-symbol">&gt;</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol"> =&gt; </span><span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><a href="_types_d_.html#uspmessage" class="tsd-signature-type">USPMessage</a><span class="tsd-signature-symbol">&gt;</span></div>
-					<aside class="tsd-sources">
-						<ul>
-							<li>Defined in src/types.d.ts:15</li>
-						</ul>
-					</aside>
-					<div class="tsd-comment tsd-typography">
-						<div class="lead">
-							<p>Send Function</p>
-						</div>
-					</div>
-					<div class="tsd-type-declaration">
-						<h4>Type declaration</h4>
-						<ul class="tsd-parameters">
-							<li class="tsd-parameter-signature">
-								<ul class="tsd-signatures tsd-kind-type-literal tsd-parent-kind-type-alias">
-									<li class="tsd-signature tsd-kind-icon"><span class="tsd-signature-symbol">(</span>command<span class="tsd-signature-symbol">: </span><a href="_types_d_.html#commandtype" class="tsd-signature-type">CommandType</a>, args<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Partial</span><span class="tsd-signature-symbol">&lt;</span><a href="../interfaces/_types_d_.encodeargs.html" class="tsd-signature-type">EncodeArgs</a><span class="tsd-signature-symbol">&gt;</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><a href="_types_d_.html#uspmessage" class="tsd-signature-type">USPMessage</a><span class="tsd-signature-symbol">&gt;</span></li>
-								</ul>
-								<ul class="tsd-descriptions">
-									<li class="tsd-description">
-										<h4 class="tsd-parameters-title">Parameters</h4>
-										<ul class="tsd-parameters">
-											<li>
-												<h5>command: <a href="_types_d_.html#commandtype" class="tsd-signature-type">CommandType</a></h5>
-											</li>
-											<li>
-												<h5>args: <span class="tsd-signature-type">Partial</span><span class="tsd-signature-symbol">&lt;</span><a href="../interfaces/_types_d_.encodeargs.html" class="tsd-signature-type">EncodeArgs</a><span class="tsd-signature-symbol">&gt;</span></h5>
-											</li>
-										</ul>
-										<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><a href="_types_d_.html#uspmessage" class="tsd-signature-type">USPMessage</a><span class="tsd-signature-symbol">&gt;</span></h4>
-									</li>
-								</ul>
-							</li>
-						</ul>
-					</div>
-				</section>
-				<section class="tsd-panel tsd-member tsd-kind-type-alias tsd-parent-kind-module">
-					<a name="uspmessage" class="tsd-anchor"></a>
-					<h3>USPMessage</h3>
-					<div class="tsd-signature tsd-kind-icon">USPMessage<span class="tsd-signature-symbol">:</span> <a href="../interfaces/_types_d_.getmessage.html" class="tsd-signature-type">GetMessage</a><span class="tsd-signature-symbol"> | </span><a href="../interfaces/_types_d_.setmessage.html" class="tsd-signature-type">SetMessage</a><span class="tsd-signature-symbol"> | </span><a href="../interfaces/_types_d_.operatemessage.html" class="tsd-signature-type">OperateMessage</a><span class="tsd-signature-symbol"> | </span><a href="../interfaces/_types_d_.addmessage.html" class="tsd-signature-type">AddMessage</a><span class="tsd-signature-symbol"> | </span><a href="../interfaces/_types_d_.deletemessage.html" class="tsd-signature-type">DeleteMessage</a><span class="tsd-signature-symbol"> | </span><a href="../interfaces/_types_d_.notifymessage.html" class="tsd-signature-type">NotifyMessage</a><span class="tsd-signature-symbol"> | </span><a href="../interfaces/_types_d_.errormessage.html" class="tsd-signature-type">ErrorMessage</a></div>
-					<aside class="tsd-sources">
-						<ul>
-							<li>Defined in src/types.d.ts:202</li>
-						</ul>
-					</aside>
-					<div class="tsd-comment tsd-typography">
-						<div class="lead">
-							<p>Union of Messages</p>
-						</div>
-					</div>
-				</section>
-			</section>
-		</div>
-		<div class="col-4 col-menu menu-sticky-wrap menu-highlight">
-			<nav class="tsd-navigation primary">
-				<ul>
-					<li class="globals  ">
-						<a href="../globals.html"><em>Globals</em></a>
-					</li>
-					<li class=" tsd-kind-module">
-						<a href="_index_.html">&quot;index&quot;</a>
-					</li>
-					<li class=" tsd-kind-module">
-						<a href="_lib_.html">&quot;lib&quot;</a>
-					</li>
-					<li class=" tsd-kind-module">
-						<a href="_protocol_index_.html">&quot;protocol/index&quot;</a>
-					</li>
-					<li class=" tsd-kind-module">
-						<a href="_protocol_js_usp_protobuf_protomessage_.html">&quot;protocol/js-<wbr>usp-<wbr>protobuf/proto<wbr>Message&quot;</a>
-					</li>
-					<li class=" tsd-kind-module">
-						<a href="_protocol_lib_.html">&quot;protocol/lib&quot;</a>
-					</li>
-					<li class="current tsd-kind-module">
-						<a href="_types_d_.html">&quot;types.d&quot;</a>
-					</li>
-				</ul>
-			</nav>
-			<nav class="tsd-navigation secondary menu-sticky">
-				<ul class="before-current">
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="../interfaces/_types_d_.addmessage.html" class="tsd-kind-icon">Add<wbr>Message</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="../interfaces/_types_d_.basemessage.html" class="tsd-kind-icon">Base<wbr>Message</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="../interfaces/_types_d_.connectevents.html" class="tsd-kind-icon">Connect<wbr>Events</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="../interfaces/_types_d_.connectoptions.html" class="tsd-kind-icon">Connect<wbr>Options</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="../interfaces/_types_d_.deletemessage.html" class="tsd-kind-icon">Delete<wbr>Message</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="../interfaces/_types_d_.device.html" class="tsd-kind-icon">Device</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="../interfaces/_types_d_.deviceerror.html" class="tsd-kind-icon">Device<wbr>Error</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="../interfaces/_types_d_.encodeargs.html" class="tsd-kind-icon">Encode<wbr>Args</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="../interfaces/_types_d_.errormessage.html" class="tsd-kind-icon">Error<wbr>Message</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="../interfaces/_types_d_.getmessage.html" class="tsd-kind-icon">Get<wbr>Message</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="../interfaces/_types_d_.initresult.html" class="tsd-kind-icon">Init<wbr>Result</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="../interfaces/_types_d_.mqttrequest.html" class="tsd-kind-icon">MQTTRequest</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="../interfaces/_types_d_.notifymessage.html" class="tsd-kind-icon">Notify<wbr>Message</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="../interfaces/_types_d_.operatemessage.html" class="tsd-kind-icon">Operate<wbr>Message</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="../interfaces/_types_d_.operateoptions.html" class="tsd-kind-icon">Operate<wbr>Options</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="../interfaces/_types_d_.protocol.html" class="tsd-kind-icon">Protocol</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="../interfaces/_types_d_.protocolargs.html" class="tsd-kind-icon">Protocol<wbr>Args</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="../interfaces/_types_d_.protocolevents.html" class="tsd-kind-icon">Protocol<wbr>Events</a>
-					</li>
-					<li class=" tsd-kind-interface tsd-parent-kind-module">
-						<a href="../interfaces/_types_d_.setmessage.html" class="tsd-kind-icon">Set<wbr>Message</a>
-					</li>
-					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
-						<a href="_types_d_.html#commandtype" class="tsd-kind-icon">Command<wbr>Type</a>
-					</li>
-					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
-						<a href="_types_d_.html#iclientoptions" class="tsd-kind-icon">IClient<wbr>Options</a>
-					</li>
-					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
-						<a href="_types_d_.html#jsobject" class="tsd-kind-icon">JSObject</a>
-					</li>
-					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
-						<a href="_types_d_.html#jstype" class="tsd-kind-icon">JSType</a>
-					</li>
-					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
-						<a href="_types_d_.html#messagetype" class="tsd-kind-icon">Message<wbr>Type</a>
-					</li>
-					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
-						<a href="_types_d_.html#operatecleanupfunction" class="tsd-kind-icon">Operate<wbr>Cleanup<wbr>Function</a>
-					</li>
-					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
-						<a href="_types_d_.html#operatefunction" class="tsd-kind-icon">Operate<wbr>Function</a>
-					</li>
-					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
-						<a href="_types_d_.html#promiseresult" class="tsd-kind-icon">Promise<wbr>Result</a>
-					</li>
-					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
-						<a href="_types_d_.html#rejectfn" class="tsd-kind-icon">Reject<wbr>Fn</a>
-					</li>
-					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
-						<a href="_types_d_.html#role" class="tsd-kind-icon">Role</a>
-					</li>
-					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
-						<a href="_types_d_.html#router" class="tsd-kind-icon">Router</a>
-					</li>
-					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
-						<a href="_types_d_.html#sendfn" class="tsd-kind-icon">Send<wbr>Fn</a>
-					</li>
-					<li class=" tsd-kind-type-alias tsd-parent-kind-module">
-						<a href="_types_d_.html#uspmessage" class="tsd-kind-icon">USPMessage</a>
-					</li>
-				</ul>
-			</nav>
-		</div>
-	</div>
-</div>
-<footer class="with-border-bottom">
-	<div class="container">
-		<h2>Legend</h2>
-		<div class="tsd-legend-group">
-			<ul class="tsd-legend">
-				<li class="tsd-kind-variable"><span class="tsd-kind-icon">Variable</span></li>
-				<li class="tsd-kind-function"><span class="tsd-kind-icon">Function</span></li>
-				<li class="tsd-kind-type-alias"><span class="tsd-kind-icon">Type alias</span></li>
-			</ul>
-			<ul class="tsd-legend">
-				<li class="tsd-kind-interface"><span class="tsd-kind-icon">Interface</span></li>
-			</ul>
-		</div>
-	</div>
-</footer>
-<div class="container tsd-generator">
-	<p>Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p>
-</div>
-<div class="overlay"></div>
-<script src="../assets/js/main.js"></script>
-</body>
-</html>
\ No newline at end of file
diff --git a/public/modules/_lib_.html b/public/modules/_util_.html
similarity index 54%
rename from public/modules/_lib_.html
rename to public/modules/_util_.html
index 2034ebebf23348e63a417b0b0bff5c08a6e67790..cea9bec3f8429609888749d98eb37b44e68e88cb 100644
--- a/public/modules/_lib_.html
+++ b/public/modules/_util_.html
@@ -3,7 +3,7 @@
 <head>
 	<meta charset="utf-8">
 	<meta http-equiv="X-UA-Compatible" content="IE=edge">
-	<title>&quot;lib&quot; | usp-js</title>
+	<title>&quot;util&quot; | usp-js</title>
 	<meta name="description" content="Documentation for usp-js">
 	<meta name="viewport" content="width=device-width, initial-scale=1">
 	<link rel="stylesheet" href="../assets/css/main.css">
@@ -56,10 +56,10 @@
 					<a href="../globals.html">Globals</a>
 				</li>
 				<li>
-					<a href="_lib_.html">&quot;lib&quot;</a>
+					<a href="_util_.html">&quot;util&quot;</a>
 				</li>
 			</ul>
-			<h1>Module &quot;lib&quot;</h1>
+			<h1>Module &quot;util&quot;</h1>
 		</div>
 	</div>
 </header>
@@ -73,9 +73,7 @@
 						<section class="tsd-index-section ">
 							<h3>Functions</h3>
 							<ul class="tsd-index-list">
-								<li class="tsd-kind-function tsd-parent-kind-module"><a href="_lib_.html#looptimer" class="tsd-kind-icon">loop<wbr>Timer</a></li>
-								<li class="tsd-kind-function tsd-parent-kind-module"><a href="_lib_.html#makerouter" class="tsd-kind-icon">make<wbr>Router</a></li>
-								<li class="tsd-kind-function tsd-parent-kind-module"><a href="_lib_.html#timer" class="tsd-kind-icon">timer</a></li>
+								<li class="tsd-kind-function tsd-parent-kind-module"><a href="_util_.html#makerouter" class="tsd-kind-icon">make<wbr>Router</a></li>
 							</ul>
 						</section>
 					</div>
@@ -83,49 +81,6 @@
 			</section>
 			<section class="tsd-panel-group tsd-member-group ">
 				<h2>Functions</h2>
-				<section class="tsd-panel tsd-member tsd-kind-function tsd-parent-kind-module">
-					<a name="looptimer" class="tsd-anchor"></a>
-					<h3><span class="tsd-flag ts-flagConst">Const</span> loop<wbr>Timer</h3>
-					<ul class="tsd-signatures tsd-kind-function tsd-parent-kind-module">
-						<li class="tsd-signature tsd-kind-icon">loop<wbr>Timer<span class="tsd-signature-symbol">(</span>ms<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span>, callback<span class="tsd-signature-symbol">: </span><span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol"> =&gt; </span><span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">restart</span></li>
-					</ul>
-					<ul class="tsd-descriptions">
-						<li class="tsd-description">
-							<aside class="tsd-sources">
-								<ul>
-									<li>Defined in src/lib.ts:15</li>
-								</ul>
-							</aside>
-							<div class="tsd-comment tsd-typography">
-								<div class="lead">
-									<p>Creates a looping timer that executes the callback unless the returned function is called</p>
-								</div>
-							</div>
-							<h4 class="tsd-parameters-title">Parameters</h4>
-							<ul class="tsd-parameters">
-								<li>
-									<h5>ms: <span class="tsd-signature-type">number</span></h5>
-								</li>
-								<li>
-									<h5>callback: <span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol"> =&gt; </span><span class="tsd-signature-type">void</span></h5>
-									<ul class="tsd-parameters">
-										<li class="tsd-parameter-signature">
-											<ul class="tsd-signatures tsd-kind-type-literal">
-												<li class="tsd-signature tsd-kind-icon"><span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">void</span></li>
-											</ul>
-											<ul class="tsd-descriptions">
-												<li class="tsd-description">
-													<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">void</span></h4>
-												</li>
-											</ul>
-										</li>
-									</ul>
-								</li>
-							</ul>
-							<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">restart</span></h4>
-						</li>
-					</ul>
-				</section>
 				<section class="tsd-panel tsd-member tsd-kind-function tsd-parent-kind-module">
 					<a name="makerouter" class="tsd-anchor"></a>
 					<h3><span class="tsd-flag ts-flagConst">Const</span> make<wbr>Router</h3>
@@ -136,7 +91,7 @@
 						<li class="tsd-description">
 							<aside class="tsd-sources">
 								<ul>
-									<li>Defined in src/lib.ts:27</li>
+									<li>Defined in util.ts:5</li>
 								</ul>
 							</aside>
 							<div class="tsd-comment tsd-typography">
@@ -149,13 +104,13 @@
 								<li class="tsd-parameter">
 									<h5>add<span class="tsd-signature-symbol">: </span>function</h5>
 									<ul class="tsd-signatures tsd-kind-function tsd-parent-kind-type-literal">
-										<li class="tsd-signature tsd-kind-icon">add<span class="tsd-signature-symbol">(</span>id<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span>, data<span class="tsd-signature-symbol">: </span><a href="_types_d_.html#promiseresult" class="tsd-signature-type">PromiseResult</a><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">void</span></li>
+										<li class="tsd-signature tsd-kind-icon">add<span class="tsd-signature-symbol">(</span>id<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span>, data<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">any</span>, perm<span class="tsd-signature-symbol">?: </span><span class="tsd-signature-type">boolean</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">void</span></li>
 									</ul>
 									<ul class="tsd-descriptions">
 										<li class="tsd-description">
 											<aside class="tsd-sources">
 												<ul>
-													<li>Defined in src/lib.ts:35</li>
+													<li>Defined in util.ts:13</li>
 												</ul>
 											</aside>
 											<h4 class="tsd-parameters-title">Parameters</h4>
@@ -164,7 +119,10 @@
 													<h5>id: <span class="tsd-signature-type">string</span></h5>
 												</li>
 												<li>
-													<h5>data: <a href="_types_d_.html#promiseresult" class="tsd-signature-type">PromiseResult</a></h5>
+													<h5>data: <span class="tsd-signature-type">any</span></h5>
+												</li>
+												<li>
+													<h5><span class="tsd-flag ts-flagDefault value">Default value</span> perm: <span class="tsd-signature-type">boolean</span><span class="tsd-signature-symbol"> = false</span></h5>
 												</li>
 											</ul>
 											<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">void</span></h4>
@@ -174,13 +132,13 @@
 								<li class="tsd-parameter">
 									<h5>get<span class="tsd-signature-symbol">: </span>function</h5>
 									<ul class="tsd-signatures tsd-kind-function tsd-parent-kind-type-literal">
-										<li class="tsd-signature tsd-kind-icon">get<span class="tsd-signature-symbol">(</span>id<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-symbol">{}</span></li>
+										<li class="tsd-signature tsd-kind-icon">get<span class="tsd-signature-symbol">(</span>id<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">any</span></li>
 									</ul>
 									<ul class="tsd-descriptions">
 										<li class="tsd-description">
 											<aside class="tsd-sources">
 												<ul>
-													<li>Defined in src/lib.ts:30</li>
+													<li>Defined in util.ts:8</li>
 												</ul>
 											</aside>
 											<h4 class="tsd-parameters-title">Parameters</h4>
@@ -189,56 +147,11 @@
 													<h5>id: <span class="tsd-signature-type">string</span></h5>
 												</li>
 											</ul>
-											<h4 class="tsd-returns-title">Returns <span class="tsd-signature-symbol">{}</span></h4>
-											<ul class="tsd-parameters">
-											</ul>
-										</li>
-									</ul>
-								</li>
-							</ul>
-						</li>
-					</ul>
-				</section>
-				<section class="tsd-panel tsd-member tsd-kind-function tsd-parent-kind-module">
-					<a name="timer" class="tsd-anchor"></a>
-					<h3><span class="tsd-flag ts-flagConst">Const</span> timer</h3>
-					<ul class="tsd-signatures tsd-kind-function tsd-parent-kind-module">
-						<li class="tsd-signature tsd-kind-icon">timer<span class="tsd-signature-symbol">(</span>ms<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span>, callback<span class="tsd-signature-symbol">: </span><span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol"> =&gt; </span><span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">stop</span></li>
-					</ul>
-					<ul class="tsd-descriptions">
-						<li class="tsd-description">
-							<aside class="tsd-sources">
-								<ul>
-									<li>Defined in src/lib.ts:4</li>
-								</ul>
-							</aside>
-							<div class="tsd-comment tsd-typography">
-								<div class="lead">
-									<p>Creates a timer that exectues the callback unless the returned function is used</p>
-								</div>
-							</div>
-							<h4 class="tsd-parameters-title">Parameters</h4>
-							<ul class="tsd-parameters">
-								<li>
-									<h5>ms: <span class="tsd-signature-type">number</span></h5>
-								</li>
-								<li>
-									<h5>callback: <span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol"> =&gt; </span><span class="tsd-signature-type">void</span></h5>
-									<ul class="tsd-parameters">
-										<li class="tsd-parameter-signature">
-											<ul class="tsd-signatures tsd-kind-type-literal">
-												<li class="tsd-signature tsd-kind-icon"><span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">void</span></li>
-											</ul>
-											<ul class="tsd-descriptions">
-												<li class="tsd-description">
-													<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">void</span></h4>
-												</li>
-											</ul>
+											<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">any</span></h4>
 										</li>
 									</ul>
 								</li>
 							</ul>
-							<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">stop</span></h4>
 						</li>
 					</ul>
 				</section>
@@ -250,36 +163,57 @@
 					<li class="globals  ">
 						<a href="../globals.html"><em>Globals</em></a>
 					</li>
+					<li class="label tsd-is-external">
+						<span>Internals</span>
+					</li>
 					<li class=" tsd-kind-module">
-						<a href="_index_.html">&quot;index&quot;</a>
+						<a href="_commands_add_.html">&quot;commands/add&quot;</a>
 					</li>
-					<li class="current tsd-kind-module">
-						<a href="_lib_.html">&quot;lib&quot;</a>
+					<li class=" tsd-kind-module">
+						<a href="_commands_del_.html">&quot;commands/del&quot;</a>
+					</li>
+					<li class=" tsd-kind-module">
+						<a href="_commands_get_.html">&quot;commands/get&quot;</a>
+					</li>
+					<li class=" tsd-kind-module">
+						<a href="_commands_index_.html">&quot;commands/index&quot;</a>
 					</li>
 					<li class=" tsd-kind-module">
-						<a href="_protocol_index_.html">&quot;protocol/index&quot;</a>
+						<a href="_commands_operate_.html">&quot;commands/operate&quot;</a>
 					</li>
 					<li class=" tsd-kind-module">
-						<a href="_protocol_js_usp_protobuf_protomessage_.html">&quot;protocol/js-<wbr>usp-<wbr>protobuf/proto<wbr>Message&quot;</a>
+						<a href="_commands_recipes_resolve_.html">&quot;commands/recipes/resolve&quot;</a>
 					</li>
 					<li class=" tsd-kind-module">
-						<a href="_protocol_lib_.html">&quot;protocol/lib&quot;</a>
+						<a href="_commands_set_.html">&quot;commands/set&quot;</a>
+					</li>
+					<li class=" tsd-kind-module">
+						<a href="_commands_util_.html">&quot;commands/util&quot;</a>
+					</li>
+					<li class=" tsd-kind-module">
+						<a href="_index_.html">&quot;index&quot;</a>
 					</li>
 					<li class=" tsd-kind-module">
-						<a href="_types_d_.html">&quot;types.d&quot;</a>
+						<a href="_types_.html">&quot;types&quot;</a>
+					</li>
+					<li class="current tsd-kind-module">
+						<a href="_util_.html">&quot;util&quot;</a>
+					</li>
+					<li class="label tsd-is-external">
+						<span>Externals</span>
+					</li>
+					<li class=" tsd-kind-module tsd-is-external">
+						<a href="_specs_usp_msg_1_1_.html">&quot;specs/usp-<wbr>msg-<wbr>1-1&quot;</a>
+					</li>
+					<li class=" tsd-kind-module tsd-is-external">
+						<a href="_specs_usp_record_1_1_.html">&quot;specs/usp-<wbr>record-<wbr>1-1&quot;</a>
 					</li>
 				</ul>
 			</nav>
 			<nav class="tsd-navigation secondary menu-sticky">
 				<ul class="before-current">
 					<li class=" tsd-kind-function tsd-parent-kind-module">
-						<a href="_lib_.html#looptimer" class="tsd-kind-icon">loop<wbr>Timer</a>
-					</li>
-					<li class=" tsd-kind-function tsd-parent-kind-module">
-						<a href="_lib_.html#makerouter" class="tsd-kind-icon">make<wbr>Router</a>
-					</li>
-					<li class=" tsd-kind-function tsd-parent-kind-module">
-						<a href="_lib_.html#timer" class="tsd-kind-icon">timer</a>
+						<a href="_util_.html#makerouter" class="tsd-kind-icon">make<wbr>Router</a>
 					</li>
 				</ul>
 			</nav>
diff --git a/src/commands/add.ts b/src/commands/add.ts
new file mode 100644
index 0000000000000000000000000000000000000000..470e8ad4924025b6cbe2916ec4987fc3bd681ffe
--- /dev/null
+++ b/src/commands/add.ts
@@ -0,0 +1,57 @@
+import { DecodeFn, EncodeFn } from "../types";
+import * as util from "./util";
+
+const decode: DecodeFn = (msg) => {
+  const path: string | undefined = util.search(msg, "instantiatedPath");
+  return [path];
+};
+
+const isObj = (v) =>
+  typeof v === "object" && v.required !== undefined && v.value !== undefined;
+
+const encode: EncodeFn = ({ value, path }) => {
+  const allowPartial = value && value.allowPartial;
+  const pairs: [string, any, boolean][] = value
+    ? Object.entries(value as any[]).map(([k, v]) =>
+        isObj(v)
+          ? [k, v.value.toString(), v.required]
+          : [k, v.toString(), false]
+      )
+    : [];
+  return {
+    lookup: "Msg",
+    header: {
+      lookup: "Header",
+      msgId: util.uniq("ADD@"),
+      msgType: "ADD",
+    },
+    body: {
+      lookup: "Body",
+      request: {
+        lookup: "Request",
+        add: {
+          allowPartial,
+          createObjs: [
+            {
+              lookup: "Add.CreateObject",
+              objPath: path,
+              paramSettings: pairs
+                .filter(([k]) => k !== "allowPartial")
+                .map(([param, value, required]) => ({
+                  lookup: "Add.CreateParamSetting",
+                  param,
+                  value,
+                  required,
+                })),
+            },
+          ],
+        },
+      },
+    },
+  };
+};
+
+export default {
+  decode,
+  encode
+};
diff --git a/src/commands/del.ts b/src/commands/del.ts
new file mode 100644
index 0000000000000000000000000000000000000000..968dbcc8f02d6440022c8f5ea791207930e50d74
--- /dev/null
+++ b/src/commands/del.ts
@@ -0,0 +1,30 @@
+import { DecodeFn, EncodeFn } from "../types";
+import { uniq } from "./util";
+
+const decode: DecodeFn = (_msg) => {
+  return [null];
+};
+
+const encode: EncodeFn = ({ paths, allowPartial }) => ({
+  lookup: "Msg",
+  header: {
+    msgId: uniq("DELETE@"),
+    msgType: "DELETE",
+    lookup: "Header",
+  },
+  body: {
+    lookup: "Body",
+    request: {
+      lookup: "Request",
+      delete: {
+        objPaths: Array.isArray(paths) ? paths : [paths],
+        allowPartial: allowPartial || false
+      },
+    },
+  },
+});
+
+export default {
+  decode,
+  encode
+};
diff --git a/src/commands/get.ts b/src/commands/get.ts
new file mode 100644
index 0000000000000000000000000000000000000000..12592f3d1af16292efd23b73a702584c5a4b50e5
--- /dev/null
+++ b/src/commands/get.ts
@@ -0,0 +1,37 @@
+import { DecodeFn, EncodeFn } from "../types";
+import * as util from "./util";
+
+const decode: DecodeFn = (msg) => {
+  const resolvedPathResultsArr = util.searchAll(msg, "resolvedPathResults");
+  if (resolvedPathResultsArr) {
+    const unflattened = resolvedPathResultsArr.map((v) =>
+      util.unflatten(v.resultParams)
+    );
+    const data = util.unwrapObject(util.unwrapArray(unflattened));
+    return [data];
+  }
+  return [null];
+};
+
+const encode: EncodeFn = ({ paths }) => ({
+  lookup: "Msg",
+  header: {
+    msgId: util.uniq("GET@"),
+    msgType: "GET",
+    lookup: "Header",
+  },
+  body: {
+    lookup: "Body",
+    request: {
+      lookup: "Request",
+      get: {
+        paramPaths: Array.isArray(paths) ? paths : [paths],
+      },
+    },
+  },
+});
+
+export default {
+  decode,
+  encode
+};
diff --git a/src/commands/index.ts b/src/commands/index.ts
new file mode 100644
index 0000000000000000000000000000000000000000..0e8ad4aae009c3678aecc4c5a00677a829510930
--- /dev/null
+++ b/src/commands/index.ts
@@ -0,0 +1,154 @@
+import protobuf from "protobufjs";
+import rootRecordJson from "../specs/usp-record-1-1.json";
+import rootMsgJson from "../specs/usp-msg-1-1.json";
+import { extractCommand, makeBuffer, search, searchParent } from "./util";
+import {
+  Response,
+  CommandType,
+  CallFn,
+  CommandObject,
+  PbRequestMessage,
+  RecipeObject,
+  ResponseID,
+  OnFn,
+  DecodeResponse,
+} from "../types";
+
+export const rootRecord = protobuf.Root.fromJSON(rootRecordJson);
+export const rootMsg = protobuf.Root.fromJSON(rootMsgJson);
+export const header: any = rootMsg.lookupType("usp.Header");
+
+import get from "./get";
+import set from "./set";
+import add from "./add";
+import del from "./del";
+import operate from "./operate";
+import supported from "./supported";
+import proto from "./proto";
+import instances from "./instances";
+import notify from "./notify";
+
+import resolve from "./recipes/resolve";
+import operateRecipe from "./recipes/operate";
+import subscribe from "./recipes/subscribe";
+
+const commands: Record<CommandType, CommandObject> = {
+  GET: get,
+  ADD: add,
+  DELETE: del,
+  GET_INSTANCES: instances,
+  GET_SUPPORTED_DM: supported,
+  GET_SUPPORTED_PROTO: proto,
+  NOTIFY: notify,
+  OPERATE: operate,
+  SET: set,
+};
+
+const recipes: RecipeObject[] = [resolve, operateRecipe, subscribe];
+
+export const makeRecipes = (call: CallFn, on: OnFn): any =>
+  recipes.reduce(
+    (acc, { make, name }) => ({ ...acc, [name]: make(call, on) }),
+    {}
+  );
+
+const unkownErr = (
+  msg: Record<string, string>
+): [string, string, Record<string, any>] => ["error", "", msg];
+
+export const decode = (
+  data: any
+): DecodeResponse => {
+  const record = rootRecord.lookupType("usp_record.Record");
+  const decodedRecord: any = record.decode(data);
+
+  const msg = rootMsg.lookupType("usp.Msg");
+  const decodedMsg = msg.decode(decodedRecord.noSessionContext.payload);
+
+  const parsedMsg = JSON.parse(JSON.stringify(decodedMsg)); // forces conversions
+  const id = search(parsedMsg, "msgId") || null;
+
+  const err = searchParent(parsedMsg, "errMsg") || null;
+  if (err) return [id, null, err];
+
+  const command = extractCommand(parsedMsg);
+  if (!command) return unkownErr(parsedMsg);
+
+  const cmd: CommandObject | null =
+    commands[command.replace("_RESP", "")] || null;
+  if (!cmd) return unkownErr(parsedMsg);
+
+  const [ddata, did, derr] = cmd.decode(parsedMsg);
+  return [did || id, ddata, derr || err];
+};
+
+export const makeEncode = (options?: Record<string, string>) => (
+  command: CommandType,
+  args: Record<string, any>
+): [string, any, string | null] => {
+  const cmd = commands[command] || null;
+  if (!cmd) return ["error", null, `Uknown command: ${command}`];
+  return [...convert(cmd.encode(args), options)];
+};
+
+const convert = (
+  msg: PbRequestMessage,
+  bufferOptions?: Record<string, string>
+): [string, any, string | null] => {
+  const id = msg.header.msgId;
+  msg.header.msgType = header.MsgType[msg.header.msgType];
+
+  const converted = _convert(msg);
+  if (isError(converted)) return [id, null, converted];
+
+  const encoded = rootMsg.lookupType("usp.Msg").encode(converted).finish();
+  const buffer = makeBuffer(rootRecord, encoded, bufferOptions || {});
+  return [id, buffer, null];
+};
+
+const isError = (o: any): o is string => typeof o == "string";
+
+const internalKeys = ["lookup"];
+const isInternal = (key: string) => internalKeys.includes(key);
+const makePayload = (items: [string, any][], isArr: boolean) =>
+  items
+    .filter(([k]) => !isInternal(k))
+    .reduce(
+      (acc: any, [k, v]) =>
+        isArr
+          ? [...acc, v]
+          : {
+              ...acc,
+              [k]: v,
+            },
+      isArr ? [] : {}
+    );
+
+const isStringArray = (obj: any) =>
+  Array.isArray(obj) && obj.every((v) => typeof v === "string");
+const needsConversion = (v: any) => typeof v === "object" && !isStringArray(v);
+
+const _convert = (value: any): string | any => {
+  const skip = value.lookup === undefined;
+  const lookup = "usp." + value.lookup;
+  const item = skip ? null : rootMsg.lookupType(lookup);
+
+  const simpleValues: any[] = Object.entries(value).filter(
+    ([, v]) => !needsConversion(v)
+  );
+  const toConvert = Object.entries(value).filter(([, v]) => needsConversion(v));
+  const converted: [string, any][] = toConvert.map(([k, v]) => [
+    k,
+    _convert(v),
+  ]);
+
+  const err = converted.find(([, v]) => isError(v));
+  if (err) return err[1];
+
+  const total = converted.concat(simpleValues);
+  const payload = makePayload(total, Array.isArray(value));
+  const payloadErr = item?.verify(payload);
+  if (payloadErr) return payloadErr;
+
+  return item ? item.create(payload) : payload;
+};
diff --git a/src/commands/instances.ts b/src/commands/instances.ts
new file mode 100644
index 0000000000000000000000000000000000000000..a00930662c390705eed4afa2a336de69dd5231ed
--- /dev/null
+++ b/src/commands/instances.ts
@@ -0,0 +1,31 @@
+import { DecodeFn, EncodeFn } from "../types";
+import * as util from "./util";
+
+const decode: DecodeFn = (msg) => {
+  const results = util.search(msg, "reqPathResults");
+  return [results];
+};
+
+const encode: EncodeFn = ({ paths, firstLevelOnly = false }) => ({
+  lookup: "Msg",
+  header: {
+    msgId: util.uniq("GET_INSTANCES@"),
+    msgType: "GET_INSTANCES",
+    lookup: "Header",
+  },
+  body: {
+    lookup: "Body",
+    request: {
+      lookup: "Request",
+      getInstances: {
+        objPaths: Array.isArray(paths) ? paths : [paths],
+        firstLevelOnly
+      },
+    },
+  },
+});
+
+export default {
+  decode,
+  encode
+};
diff --git a/src/commands/notify.ts b/src/commands/notify.ts
new file mode 100644
index 0000000000000000000000000000000000000000..7467f7132d3cec6fc1dc7f732436401adc9ab876
--- /dev/null
+++ b/src/commands/notify.ts
@@ -0,0 +1,45 @@
+import { DecodeFn, EncodeFn, GetCommand, MakeFn } from "../types";
+import * as util from "./util";
+
+const parseInfo = (key: string, data: Record<string, any>) => util.search(data, key === "operComplete" ? "outputArgs" : key) 
+
+const decode: DecodeFn = (msg) => {
+  const parent = util.searchParent(msg, 'subscriptionId')
+  if (parent) {
+    const id = parent.subscriptionId
+    const relField = Object.keys(parent).find(k => k !== "subscriptionId")
+    return (id && relField) ? [parseInfo(relField, msg), id, null] : [null, id, null];
+  }
+  return [null];
+};
+
+const encode: EncodeFn = ({ paths }) => ({
+  lookup: "Msg",
+  header: {
+    msgId: util.uniq("NOTIFY@"),
+    msgType: "GET",
+    lookup: "Header",
+  },
+  body: {
+    lookup: "Body",
+    request: {
+      lookup: "Request",
+      get: {
+        paramPaths: Array.isArray(paths) ? paths : [paths],
+      },
+    },
+  },
+});
+
+const make: MakeFn = (call): GetCommand => (paths) => call("GET", { paths });
+
+export default {
+  decode,
+  encode,
+  make,
+  name: "get",
+  trigger: {
+    encode: "GET",
+    decode: "GET_RESP"
+  }
+};
diff --git a/src/commands/operate.ts b/src/commands/operate.ts
new file mode 100644
index 0000000000000000000000000000000000000000..e72dac0bb730e8f3afdabf25c0a10d0a28184119
--- /dev/null
+++ b/src/commands/operate.ts
@@ -0,0 +1,37 @@
+import {
+  DecodeFn,
+  EncodeFn,
+} from "../types";
+import * as util from "./util";
+
+const decode: DecodeFn = (msg) => {
+  const data = util.searchAll(msg, "operationResults");
+  if (data && data.length === 1) return [data[0]]
+  return [data];
+};
+
+const encode: EncodeFn = ({ path, input, id }) => ({
+  lookup: "Msg",
+  header: {
+    msgId: id,
+    msgType: "OPERATE",
+    lookup: "Header",
+  },
+  body: {
+    lookup: "Body",
+    request: {
+      lookup: "Request",
+      operate: {
+        command: path,
+        commandKey: "",
+        sendResp: false,
+        inputArgs: input || {},
+      },
+    },
+  },
+});
+
+export default {
+  decode,
+  encode
+};
diff --git a/src/commands/proto.ts b/src/commands/proto.ts
new file mode 100644
index 0000000000000000000000000000000000000000..fe2f5e6dbdfcc8a0971e253747f267169e013b60
--- /dev/null
+++ b/src/commands/proto.ts
@@ -0,0 +1,30 @@
+import { DecodeFn, EncodeFn } from "../types";
+import * as util from "./util";
+
+const decode: DecodeFn = (msg) => {
+  const results = util.search(msg, "agentSupportedProtocolVersions");
+  return [results];
+};
+
+const encode: EncodeFn = ({ versions }) => ({
+  lookup: "Msg",
+  header: {
+    msgId: util.uniq("GET_SUPPORTED_PROTO@"),
+    msgType: "GET_SUPPORTED_PROTO",
+    lookup: "Header",
+  },
+  body: {
+    lookup: "Body",
+    request: {
+      lookup: "Request",
+      getSupportedProtocol: {
+        agentSupportedProtocolVersions: versions,
+      },
+    },
+  },
+});
+
+export default {
+  decode,
+  encode
+};
diff --git a/src/commands/recipes/operate.ts b/src/commands/recipes/operate.ts
new file mode 100644
index 0000000000000000000000000000000000000000..00d683868dfb52962a16a2ffcae503b8dcbb2985
--- /dev/null
+++ b/src/commands/recipes/operate.ts
@@ -0,0 +1,37 @@
+import { MakeFn, OperateRecipe, OperateFn, OperateClearFn } from "../../types";
+import { uniq } from "../util";
+
+const operateSubscriptionPath = "Device.LocalAgent.Subscription.";
+
+const make: MakeFn = (call): OperateRecipe => async (path, opts) => {
+  const Persistent = opts?.Persistent === undefined ? false : opts.Persistent;
+  const id = "NOTIFY@" + (opts?.ID || uniq(path));
+  const operateInput = {
+    Enable: true,
+    ID: id,
+    NotifType: "OperationComplete",
+    ReferenceList: path,
+    Persistent,
+  };
+
+  const newSubPath = await call("ADD", {
+    path: operateSubscriptionPath,
+    value: operateInput,
+  });
+
+  const command: OperateFn = (input?: Record<string, any>) =>
+    call("OPERATE", {
+      path,
+      input,
+      id,
+    });
+
+  const cleanup: OperateClearFn = () => call("DELETE", { paths: newSubPath });
+
+  return [command, cleanup];
+};
+
+export default {
+  name: "operate",
+  make,
+};
diff --git a/src/commands/recipes/resolve.ts b/src/commands/recipes/resolve.ts
new file mode 100644
index 0000000000000000000000000000000000000000..cb96b73d7725688d5d1dfed7a5e383781583de49
--- /dev/null
+++ b/src/commands/recipes/resolve.ts
@@ -0,0 +1,34 @@
+import { CallFn, GetReturn, MakeRecipeFn, ResolveRecipe } from "../../types"
+
+const splitReference = (s: string) => s.split(",");
+const isReference = (s: string): boolean => s.startsWith("Device.");
+const addDot = (s: string) => (s.endsWith(".") ? s : s + ".");
+
+const resolveReferences = async (
+  msg: GetReturn,
+  call: CallFn,
+  level: number
+): Promise<GetReturn> => {
+  if (level === 0 || !["string", "object"].includes(typeof msg)) return msg;
+  if (typeof msg === "string") {
+    msg = await call("GET", { paths: splitReference(msg).map(addDot) });
+    await resolveReferences(msg, call, level - 1);
+    return msg;
+  } else if (typeof msg === "object") {
+    for (const [key, val] of Object.entries(msg)) {
+      if (typeof val === "string" && isReference(val)) {
+        msg[key] = await call("GET", { paths: splitReference(val).map(addDot) });
+        await resolveReferences(msg[key], call, level - 1);
+      } else if (typeof val === "object")
+        await resolveReferences(msg[key], call, level);
+    }
+  }
+  return msg;
+};
+
+const make: MakeRecipeFn = (call): ResolveRecipe => (msg, level) => resolveReferences(msg, call, level || 1) 
+
+export default {
+  name: "resolve",
+  make
+}
\ No newline at end of file
diff --git a/src/commands/recipes/subscribe.ts b/src/commands/recipes/subscribe.ts
new file mode 100644
index 0000000000000000000000000000000000000000..4af403315e12c7d99c8552d6c27c53b47656df1e
--- /dev/null
+++ b/src/commands/recipes/subscribe.ts
@@ -0,0 +1,30 @@
+import { MakeFn, SubscribeRecipe } from "../../types";
+
+const subscriptionPath = "Device.LocalAgent.Subscription.";
+
+const make: MakeFn = (call, on): SubscribeRecipe => async (opts, callback) => {
+  const id = "NOTIFY@" + opts.id;
+  const refList = Array.isArray(opts.reference) ? opts.reference.join(",") : opts.reference
+
+  const newSubPath = await call("ADD", {
+    path: subscriptionPath,
+    value: {
+      Enable: true,
+      ID: id,
+      NotifType: opts.notif,
+      ReferenceList: refList,
+      Persistent: false,
+    },
+  });
+
+  const clear = on(id, callback);
+  return () => {
+    clear();
+    return call("DELETE", { paths: newSubPath })
+  }
+};
+
+export default {
+  name: "subscribe",
+  make,
+};
diff --git a/src/commands/set.ts b/src/commands/set.ts
new file mode 100644
index 0000000000000000000000000000000000000000..f509ff932afcc81fe5b4bb2f56229266d6a355fd
--- /dev/null
+++ b/src/commands/set.ts
@@ -0,0 +1,60 @@
+import { DecodeFn, EncodeFn } from "../types";
+import * as util from "./util";
+
+const decode: DecodeFn = (_msg) => {
+  return [null];
+};
+
+const isObject = (v) =>
+  typeof v === "object" && v.required !== undefined && v.value !== undefined;
+
+const encode: EncodeFn = ({ value, path: initialPath }) => {
+  const allowPartial = value && value.allowPartial;
+  const isObj = typeof value === "object";
+  const attr = initialPath.split(".").pop() || "";
+  const pairs = isObj
+    ? Object.entries(value as any[]).map(([k, v]) =>
+        isObject(v)
+          ? [k, v.value.toString(), v.required]
+          : [k, v.toString(), false]
+      )
+    : [[attr, value]];
+  const path = isObj ? initialPath : initialPath.replace(attr, "");
+
+  return {
+    lookup: "Msg",
+    header: {
+      lookup: "Header",
+      msgId: util.uniq("SET@"),
+      msgType: "SET",
+    },
+    body: {
+      lookup: "Body",
+      request: {
+        lookup: "Request",
+        set: {
+          allowPartial,
+          updateObjs: [
+            {
+              lookup: "Set.UpdateObject",
+              objPath: path,
+              paramSettings: pairs
+                .filter(([k]) => k !== "allowPartial")
+                .map(([param, value, required]) => ({
+                  lookup: "Set.UpdateParamSetting",
+                  param,
+                  value,
+                  required,
+                })),
+            },
+          ],
+        },
+      },
+    },
+  };
+};
+
+export default {
+  decode,
+  encode
+};
diff --git a/src/commands/supported.ts b/src/commands/supported.ts
new file mode 100644
index 0000000000000000000000000000000000000000..9466a65873c4cda15fd68ed6763947a5774115ce
--- /dev/null
+++ b/src/commands/supported.ts
@@ -0,0 +1,34 @@
+import { DecodeFn, EncodeFn } from "../types";
+import * as util from "./util";
+
+const decode: DecodeFn = (msg) => {
+  const results = util.search(msg, "reqObjResults");
+  return [results];
+};
+
+const encode: EncodeFn = ({ paths, options = {} }) => ({
+  lookup: "Msg",
+  header: {
+    msgId: util.uniq("GET_SUPPORTED_DM@"),
+    msgType: "GET_SUPPORTED_DM",
+    lookup: "Header",
+  },
+  body: {
+    lookup: "Body",
+    request: {
+      lookup: "Request",
+      getSupportedDm: {
+        objPaths: Array.isArray(paths) ? paths : [paths],
+        firstLevelOnly: options.firstLevelOnly || false,
+        returnCommands: options.returnCommands || false,
+        returnEvents: options.returnEvents || false,
+        returnParams: options.returnParams || false,
+      },
+    },
+  },
+});
+
+export default {
+  decode,
+  encode
+};
diff --git a/src/protocol/lib.ts b/src/commands/util.ts
similarity index 53%
rename from src/protocol/lib.ts
rename to src/commands/util.ts
index 08dc8fe35624209592a373aa2b1abd4fcfefa569..e234e79211f738f8ef2ef660a3bdaee8d98964a1 100644
--- a/src/protocol/lib.ts
+++ b/src/commands/util.ts
@@ -1,3 +1,5 @@
+import { CommandType } from "../types";
+
 const digitRe = /^\d+$/;
 const digitDotRe = /^\d+\..*$/;
 const isDigit = (v: any) => digitRe.test(v);
@@ -24,7 +26,6 @@ export const unflatten = (obj: any) =>
     firstIsIndex(Object.keys(obj)[0]) ? [] : {}
   );
 
-/** Find first attribute which has the given key, undefined if not found */
 export const search = (obj: any, key: string): any => {
   if (typeof obj !== "object") return null;
   if (obj[key]) return obj[key];
@@ -34,6 +35,15 @@ export const search = (obj: any, key: string): any => {
   }
 };
 
+export const searchParent = (obj: any, key: string): Record<string, any> | undefined => {
+  if (typeof obj !== "object") return;
+  if (obj[key]) return obj;
+  for (const val of Object.values(obj)) {
+    const s = searchParent(val, key);
+    if (s) return s;
+  }
+};
+
 const _searchAll = (obj: any, key: string): any[] =>
   typeof obj !== "object"
     ? []
@@ -42,10 +52,19 @@ const _searchAll = (obj: any, key: string): any[] =>
         [] as any[]
       );
 
-/** Find all attributes which have the given key, empty array if none found */
 export const searchAll = (obj: any, key: string) =>
   _searchAll(obj, key).flat(Infinity);
 
+export const extractCommand = (msg: { [key: string]: any }): string | undefined => {
+  const msgType: string | undefined = search(msg, "msgType");
+  if (!msgType) {
+    const id: string | undefined = search(msg, "msgId")
+    const [frst] = id ? id.split("@") : [""]
+    return frst.toUpperCase()
+  }
+  return msgType;
+};
+
 /** Unwraps object with single key */
 export const unwrapObject = (data: any): any =>
   !Array.isArray(data) &&
@@ -57,3 +76,31 @@ export const unwrapObject = (data: any): any =>
 /** Unwraps array with single item */
 export const unwrapArray = (arr: any) =>
   Array.isArray(arr) && arr.length === 1 ? arr[0] : arr;
+
+export function makeBuffer(
+  rootRecord: protobuf.Root,
+  payload: any,
+  options: Record<string, string>
+) {
+  const NoSessionContextRecord = rootRecord.lookupType(
+    "usp_record.NoSessionContextRecord"
+  );
+  const noSessionContextRecordMsg = NoSessionContextRecord.create({
+    payload,
+  });
+  const record: any = rootRecord.lookupType("usp_record.Record");
+  const recordMsg = record.create({
+    version: "1.0",
+    PayloadSecurity: record.PayloadSecurity.PLAINTEXT,
+    noSessionContext: noSessionContextRecordMsg,
+    ...options,
+  });
+  const buffer = record.encode(recordMsg).finish();
+  return buffer;
+}
+
+export const uniq = (initial?: string): string =>
+  (initial || "") +
+  (
+    Date.now().toString(36) + Math.random().toString(36).substr(2, 5)
+  ).toUpperCase();
\ No newline at end of file
diff --git a/src/config.json b/src/config.json
deleted file mode 100644
index 2b2872b7f132304270463c4fc609f0f288b1ea10..0000000000000000000000000000000000000000
--- a/src/config.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
-  "connectionTimeout": 5000,
-  "protocol": "mqtt"
-}
diff --git a/src/index.ts b/src/index.ts
index b879b147b8be869686b670a8c246dbf4654809ea..59ac0e3cc849ef3306cb1464497e17070efd1fd6 100644
--- a/src/index.ts
+++ b/src/index.ts
@@ -1,188 +1,29 @@
-import use from "./protocol";
-import config from "./config.json";
-import { makeRouter, timer, loopTimer } from "./lib";
-import { JSType, USPMessage, ErrorMessage, PromiseResult, RejectFn, SendFn, JSObject, OperateOptions, OperateFunction, OperateCleanupFunction, ConnectOptions, ConnectEvents, Device, Role } from "./types";
-
-/**
- * Add dot to the end of a string if it does not have one
- */
-const addDot = (s: string) => (s.endsWith(".") ? s : s + ".");
-
-/**
- * Split reference string
- */
-const splitReference = (s: string) => s.split(",");
-
-/**
- * Resolve references in message
- * @param msg Message containing reference
- * @param get Function to retrieve value given reference
- * @param level Number of nest levels to resolve
- */
-const resolveReferences = async (
-  msg: JSType,
-  get: (paths: string | string[]) => Promise<JSType>,
-  level: number
-): Promise<JSType> => {
-  if (level === 0 || !["string", "object"].includes(typeof msg)) return msg;
-  if (typeof msg === "string") {
-    msg = await get(splitReference(msg).map(addDot));
-    await resolveReferences(msg, get, level - 1);
-    return msg;
-  } else if (typeof msg === "object") {
-    for (const [key, val] of Object.entries(msg)) {
-      if (typeof val === "string" && isReference(val)) {
-        msg[key] = await get(splitReference(val).map(addDot));
-        await resolveReferences(msg[key], get, level - 1);
-      } else if (typeof val === "object")
-        await resolveReferences(msg[key], get, level);
-    }
-  }
-  return msg;
-};
-
-/**
- * Shorthand for throwing message-related error
- */
-const throwMsgError = (path: string | string[], reject: (err: any) => void) => (
-  err: any
-) => {
-  reject({
-    type: "error",
-    path: Array.isArray(path) ? path.join(",") : path,
-    reason: err,
-  });
-};
-
-/**
- * Checks if string is reference
- */
-const isReference = (s: string): boolean => s.startsWith("Device.");
-
-/**
- * Checks if response is an ErrorMessage
- */
-const isError = (resp: USPMessage): resp is ErrorMessage =>
-  resp.type === "error";
-
-/**
- * Checks if value is of type PromiseResult
- */
-const isPromiseResult = (res: any): res is PromiseResult =>
-  typeof res === "object" && "resolve" in res;
-
-/**
- * Set of commands which have a return value
- */
-const commandsWithReturnValue = ["get", "notify", "add"];
-
-/**
- * Transform USPMessage to expected response type
- */
-const decode = (msg: USPMessage): JSType | void => {
-  if (commandsWithReturnValue.includes(msg.type)) return msg.data;
-};
-
-/**
- * Wrapper function for sending message (decode message and catch errors)
- */
-const handleSend = (
-  msg: Promise<USPMessage>,
-  path: string | string[],
-  reject: RejectFn
-) => {
-  try {
-    return msg.then(decode);
-  } catch (reason) {
-    throwMsgError(path, reject)(reason);
-  }
-};
-
-/**
- * Make get function
- */
-const makeGet = (send: SendFn, reject: RejectFn) => (path: string | string[]) =>
-  handleSend(
-    send("get", Array.isArray(path) ? { paths: path } : { path }),
-    path,
-    reject
-  ) as Promise<JSType>;
-
-/**
- * Make set function
- */
-const makeSet = (send: SendFn, reject: RejectFn) => (
-  path: string,
-  value: JSType
-) =>
-  handleSend(
-    send("set", {
-      path,
-      value,
-    }),
-    path,
-    reject
-  ) as Promise<void>;
-
-/**
- * Make add function
- */
-const makeAdd = (send: SendFn, reject: RejectFn) => (
-  path: string,
-  input?: JSObject
-) => handleSend(send("add", { path, input }), path, reject) as Promise<string>;
-
-/**
- * Make del function
- */
-const makeDel = (send: SendFn, reject: RejectFn) => (path: string | string[]) =>
-  handleSend(
-    send("delete", Array.isArray(path) ? { paths: path } : { path }),
-    path,
-    reject
-  ) as Promise<void>;
-
-const operateSubscriptionPath = "Device.LocalAgent.Subscription.";
-type AddFn = (path: string, input?: JSObject) => Promise<string>;
-type DelFn = (path: string | string[]) => Promise<void>;
-
-/**
- * Make operate function
- */
-const makeOperate = (
-  send: SendFn,
-  add: AddFn,
-  del: DelFn,
-  reject: RejectFn
-) => async (
-  path: string,
-  opts?: OperateOptions
-): Promise<[OperateFunction, OperateCleanupFunction]> => {
-  const Persistent = opts?.Persistent === undefined ? false : opts.Persistent;
-  const ID = opts?.ID || `${path}_${Date.now()}`;
-  const action = path.split(".").pop() || "";
-  const operateInput = {
-    Enable: true,
-    ID,
-    NotifType: "OperationComplete",
-    ReferenceList: path,
-    Persistent,
-  };
-  const newSubPath = await add(operateSubscriptionPath, operateInput);
-  const command = (input?: JSObject) =>
-    handleSend(
-      send("operate", {
-        path: path.replace(action, ""),
-        action,
-        input,
-        operateID: ID,
-      }),
-      path,
-      reject
-    ) as Promise<JSType>;
-
-  const cleanup = () => del(newSubPath);
-  return [command, cleanup];
+import mqttAsync from "async-mqtt";
+import { decode, makeEncode, makeRecipes } from "./commands";
+import {
+  ConnectionOptions,
+  USP,
+  CallFn,
+  ConnectionEvents,
+  URLConnectionOptions,
+  OnFn,
+} from "./types";
+import { makeCallbackRouter, makeRouter } from "./util";
+const defaultPublishEndpoint = "/usp/endpoint";
+const defaultSubscribeEndpoint = "/usp/controller";
+
+const isURL = (opts: ConnectionOptions): opts is URLConnectionOptions =>
+  "url" in opts;
+
+const _connect = (opts: ConnectionOptions) => {
+  if (isURL(opts)) return mqttAsync.connectAsync(opts.url, opts as any);
+  else
+    return opts.protocol?.startsWith("ws")
+      ? mqttAsync.connectAsync(
+          `${opts.protocol}://${opts.host}:${opts.port}`,
+          opts as any
+        )
+      : mqttAsync.connectAsync(opts);
 };
 
 /**
@@ -191,79 +32,70 @@ const makeOperate = (
  * @param events - Optional event handlers
  * @returns A set of functions for interacting with the device
  */
-const connect = async (
-  opts: ConnectOptions,
-  events: ConnectEvents = {}
-): Promise<Device> =>
-  new Promise(async (resolve, reject) => {
-    // Init values
-    const router = makeRouter();
-
-    let restartTimeout: () => void = () => null;
-    let sessionID: string = "";
-    let roles: Role[] = ["none"];
-
-    // Setup protocol
-    const protocol = use(opts, {
-      onMessage: (resp: USPMessage) => {
-        // Handle message
-        const handle = router.get(resp.id);
-        if (isPromiseResult(handle)) {
-          if (isError(resp)) handle.reject(resp.data.reason);
-          else handle.resolve(resp);
-        }
-      },
-    });
+export default async function connect(
+  options: ConnectionOptions,
+  events?: ConnectionEvents
+): Promise<USP> {
+  const subscribeEndpoint =
+    options.subscribeEndpoint || defaultSubscribeEndpoint;
+  const publishEndpoint = options.publishEndpoint || defaultPublishEndpoint;
+  const encode = makeEncode({ fromId: options.fromId, toId: options.toId });
+
+  const client = await _connect(options);
+  await client.subscribe(subscribeEndpoint);
+
+  const router = makeRouter();
+  const callbackRouter = makeCallbackRouter();
+  const handleError = (err: any) => {
+    if (events && events.onError) events.onError(err);
+  };
 
-    /**
-     * Send message to device
-     */
-    const send: SendFn = (command, args) =>
-      new Promise((resolve, reject) => {
-        try {
-          const msg = protocol.encode(command, args);
-          router.add(msg.id, { resolve, reject });
-          protocol.send(msg);
-          restartTimeout();
-        } catch (err) {
-          reject(err);
-        }
-      });
+  callbackRouter.add("error", handleError);
 
-    // Connection timeout timer
-    const stopTimer = timer(config.connectionTimeout, () =>
-      reject("Connection timed out")
-    );
+  client.on("message", (_topic, data: any) => {
+    const [id, message, err] = decode(data);
+    const call = router.get(id);
+    if (call && call.resolve && call.resolve) {
+      if (err) call.reject(err);
+      else call.resolve(message);
+    }
+    
+    const cbs = callbackRouter.get(id);
+    cbs.forEach((cb) => message && cb(message))
+  });
 
-    // Initialize connection
-    await protocol
-      .init()
-      .then(({ timeout }: { timeout: number }) => {
-        stopTimer();
-        if (events && events.onTimeout)
-          restartTimeout = loopTimer(timeout, () => {
-            protocol.close();
-            (events as any).onTimeout();
-          });
-      })
-      .catch(reject);
+  client.on("error", (err) => {
+    callbackRouter.get("error").forEach(cb => cb(err))
+    handleError(JSON.stringify(err, null, 2));
+  });
 
-    const get = makeGet(send, reject);
-    const add = makeAdd(send, reject);
-    const del = makeDel(send, reject);
+  const on: OnFn = (ident, callback) => {
+    callbackRouter.add(ident, callback);
+    return () => {
+      callbackRouter.del(ident);
+    };
+  };
 
-    resolve({
-      id: () => sessionID,
-      roles: () => roles,
-      get,
-      set: makeSet(send, reject),
-      add,
-      del,
-      operate: makeOperate(send, add, del, reject),
-      disconnect: protocol.close,
-      resolve: async (data: JSType, level = 1) =>
-        await resolveReferences(data, get, level),
+  const call: CallFn = (command, args): any =>
+    new Promise((resolve, reject) => {
+      const [id, msg, err] = encode(command, args);
+      if (err) reject(err);
+      else {
+        router.add(id, { resolve, reject });
+        client.publish(publishEndpoint, msg);
+      }
     });
-  });
 
-export default connect;
+  return {
+    get: (paths) => call("GET", { paths }),
+    set: (path, value) => call("SET", { path, value }),
+    add: (path, value) => call("ADD", { path, value }),
+    del: (paths, allowPartial) => call("DELETE", { paths, allowPartial }),
+    instances: (paths, opts) => call("GET_INSTANCES", { paths, opts }),
+    supportedDM: (paths, opts) => call("GET_SUPPORTED_DM", { paths, opts }),
+    supportedProto: (versions) => call("GET_SUPPORTED_PROTO", { versions }),
+    on,
+    ...makeRecipes(call, on),
+    disconnect: () => client.end(),
+  };
+}
diff --git a/src/lib.ts b/src/lib.ts
deleted file mode 100644
index a445bf32398616a93eeebe923b39a9cc546de84b..0000000000000000000000000000000000000000
--- a/src/lib.ts
+++ /dev/null
@@ -1,41 +0,0 @@
-import { Router, PromiseResult } from "./types";
-
-/**
- * Creates a timer that exectues the callback unless the returned function is used
- */
-export const timer = (ms: number, callback: () => void) => {
-  const t = setTimeout(callback, ms);
-  const stop = () => {
-    clearTimeout(t);
-  };
-  return stop;
-};
-
-/**
- * Creates a looping timer that executes the callback unless the returned function is called
- */
-export const loopTimer = (ms: number, callback: () => void) => {
-  let t = setTimeout(callback, ms);
-  const restart = () => {
-    clearTimeout(t);
-    t = setTimeout(callback, ms);
-  };
-  return restart;
-};
-
-/**
- * Makes a router for storing resolve/reject for a message
- */
-export const makeRouter = () => {
-  const routes: Router = new Map();
-  return {
-    get: (id: string) => {
-      const res: PromiseResult | {} = { ...routes.get(id) };
-      routes.delete(id);
-      return res;
-    },
-    add: (id: string, data: PromiseResult) => {
-      routes.set(id, data);
-    },
-  };
-};
diff --git a/src/protocol/index.ts b/src/protocol/index.ts
deleted file mode 100644
index fadb3458ff725533407bc1f373008b9a550c7bd6..0000000000000000000000000000000000000000
--- a/src/protocol/index.ts
+++ /dev/null
@@ -1,211 +0,0 @@
-import mqttAsync from "async-mqtt";
-import { AddMessage, BaseMessage, CommandType, ConnectOptions, DeleteMessage, EncodeArgs, ErrorMessage, GetMessage, InitResult, JSObject, MessageType, MQTTRequest, NotifyMessage, Protocol, ProtocolEvents, SetMessage, USPMessage } from "../types";
-import * as messages from "./js-usp-protobuf/protoMessage";
-import { search, searchAll, unflatten, unwrapArray, unwrapObject } from "./lib";
-
-/** Encode get message */
-const encodeGet = (paths: string[]): MQTTRequest => {
-  const [data, id] = messages.makeGetMessage(paths);
-  return {
-    id,
-    data,
-  };
-};
-
-/** Encode set message */
-const encodeSet = (path: string, value: any): MQTTRequest => {
-  if (typeof value !== "object") {
-    const attr = path.split(".").pop() || "";
-    const [data, id] = messages.makeSetMessage(path.replace(attr, ""), [
-      [attr, value],
-    ]);
-    return {
-      id,
-      data,
-    };
-  }
-
-  const pairs = Object.entries(value);
-  const [data, id] = messages.makeSetMessage(path, pairs);
-  return {
-    id,
-    data,
-  };
-};
-
-/** Encode operate message */
-const encodeOperate = (
-  path: string,
-  action: string,
-  operateID: string,
-  input?: object
-): MQTTRequest => {
-  const [data] = messages.makeOperateMessage(path + action, input);
-  return {
-    id: operateID,
-    data,
-  };
-};
-
-/** Extract message type */
-const extractType = (msg: any): MessageType => {
-  const msgType: string = search(msg, "msgType");
-  if (!msgType) return "get";
-  const command = msgType.split("_")[0];
-  return command ? (command.toLowerCase() as MessageType) : "get";
-};
-
-/** Decode get message */
-const decodeGet = (msg: any, id: string): GetMessage => {
-  const resolvedPathResultsArr = searchAll(msg, "resolvedPathResults");
-  const unflattened = resolvedPathResultsArr.map((v) =>
-    unflatten(v.resultParams)
-  );
-  const data = unwrapObject(unwrapArray(unflattened));
-  const path = (searchAll(msg, "requestedPath") as string[]).join(",");
-  return {
-    id,
-    path,
-    type: "get",
-    data,
-  };
-};
-
-const ignorableTypes = ["operate"];
-
-/** Decode message */
-const decode = (msg: any, type: MessageType): USPMessage => {
-  const id = search(msg, "msgId");
-  const path = search(msg, "requestedPath") || "";
-  const errMsg = search(msg, "errMsg");
-  if (errMsg)
-    return {
-      id: id.toString(),
-      type: "error",
-      data: {
-        reason: errMsg,
-      },
-      path,
-    } as ErrorMessage;
-
-  const baseMsg: BaseMessage = {
-    type,
-    path,
-    id: id.toString(),
-    data: {},
-  };
-
-  if (type === "add") {
-    const updatedPath = search(msg, "instantiatedPath");
-    return { ...baseMsg, data: updatedPath } as AddMessage;
-  } else if (type === "delete")
-    return { ...baseMsg, data: { deleted: true } } as DeleteMessage;
-  else if (type === "set")
-    return { ...baseMsg, data: { updated: true } } as SetMessage;
-  else if (type === "notify") {
-    return {
-      ...baseMsg,
-      id: search(msg, "subscriptionId"),
-      data: search(msg, "outputArgs"),
-    } as NotifyMessage;
-  }
-
-  return decodeGet(msg, id.toString());
-};
-
-/** Encode add message */
-const encodeAdd = (path: string, input?: JSObject): MQTTRequest => {
-  const pairs = input
-    ? Object.entries(input).map(([k, v]) => [k, v.toString()])
-    : [];
-  const [data, id] = messages.makeAddMessage(path, pairs);
-  return {
-    id,
-    data,
-  };
-};
-
-/** Encode delete message */
-const encodeDelete = (paths: string[]): MQTTRequest => {
-  const [data, id] = messages.makeDeleteMessage(paths);
-  return {
-    id,
-    data,
-  };
-};
-
-/** Encode message */
-const encode = (
-  command: CommandType,
-  args: Partial<EncodeArgs>
-): { data: any; id: string } => {
-  switch (command) {
-    case "operate":
-      return encodeOperate(
-        args.path || "",
-        args.action || "",
-        args.operateID || "",
-        args.input
-      );
-    case "set":
-      return encodeSet(args.path || "", args.value);
-    case "add":
-      return encodeAdd(args.path || "", args.input);
-    case "delete":
-      return encodeDelete(args.paths || [args.path || ""]);
-    default:
-      return encodeGet(args.paths || [args.path || ""]);
-  }
-};
-
-const defaultPublishEndpoint = "/usp/endpoint"
-const defaultSubscribeEndpoint = "/usp/controller"
-
-/** Connect to device */
-const connect = async (opts: ConnectOptions) =>
-  opts.protocol?.startsWith("ws")
-    ? mqttAsync.connectAsync(
-        `${opts.protocol}://${opts.host}:${opts.port}`,
-        opts
-      )
-    : mqttAsync.connectAsync(opts);
-
-/** Generate mqtt protocol */
-const mqtt = (
-  opts: ConnectOptions,
-  events: ProtocolEvents
-): Protocol => {
-  let client: any = null;
-  const init = async (): Promise<InitResult> => {
-    await messages.init(opts.toId, opts.fromId);
-    client = await connect(opts);
-    await client.subscribe(opts.subscribeEndpoint || defaultSubscribeEndpoint);
-
-    client.on("message", (_topic: string, message: any) => {
-      const msg = messages.decode(message);
-      const parsedMsg = JSON.parse(JSON.stringify(msg)); // forces conversions
-      const type: MessageType = extractType(parsedMsg);
-      if (!ignorableTypes.includes(type))
-        events.onMessage(decode(parsedMsg, type));
-    });
-
-    return {
-      timeout: Infinity,
-    };
-  };
-
-  const send = ({ data }: { data: any }): void => {
-    client.publish(opts.publishEndpoint || defaultPublishEndpoint, data);
-  };
-
-  const close = async () => client.end();
-
-  return {
-    init,
-    encode,
-    send,
-    close,
-  };
-};
-
-export default mqtt;
diff --git a/src/protocol/js-usp-protobuf/protoMessage.ts b/src/protocol/js-usp-protobuf/protoMessage.ts
deleted file mode 100644
index e49f5bf302856dddfb0fb08a3a3125a04f603868..0000000000000000000000000000000000000000
--- a/src/protocol/js-usp-protobuf/protoMessage.ts
+++ /dev/null
@@ -1,98 +0,0 @@
-import protobuf from "protobufjs";
-import {
-  createGetRequestMessage,
-  createDeleteRequestMessage,
-  createChangeRequestMessage,
-  createOperateRequestMessage,
-} from "./usp/pbRequest";
-import createMsg from "./usp/pbCreateMsg";
-
-import rootRecordJson from "./protobuf-spec/usp-record-1-1.json";
-import rootMsgJson from "./protobuf-spec/usp-msg-1-1.json";
-import makeCreateRecord from "./usp/pbRecord";
-
-let rootRecord: protobuf.Root;
-let rootMsg: any;
-let Header: any;
-let createRecord: any;
-
-/** Initialize messages */
-export const init = async (toId: string, fromId: string) => {
-  rootRecord = protobuf.Root.fromJSON(rootRecordJson);
-  rootMsg = protobuf.Root.fromJSON(rootMsgJson);
-  Header = rootMsg.lookupType("usp.Header");
-  createRecord = makeCreateRecord(toId, fromId);
-};
-
-/** Make get message */
-export const makeGetMessage = (paths: string[]) => {
-  const getMessage = createGetRequestMessage(rootMsg, paths);
-  const [bufferGetMsg, id] = createMsg(rootMsg, getMessage, Header.MsgType.GET);
-  const bufferGetRecord = createRecord(rootRecord, bufferGetMsg);
-  return [bufferGetRecord, id];
-};
-
-/** Make delete message */
-export const makeDeleteMessage = (paths: string[]) => {
-  const deleteMessage = createDeleteRequestMessage(rootMsg, paths);
-  const [bufferDeleteMsg, id] = createMsg(
-    rootMsg,
-    deleteMessage,
-    Header.MsgType.DELETE
-  );
-  const bufferDeleteRecord = createRecord(rootRecord, bufferDeleteMsg);
-  return [bufferDeleteRecord, id];
-};
-
-/** Make set message */
-export const makeSetMessage = (path: string, values: any[]) => {
-  const setMessage = createChangeRequestMessage(
-    rootMsg,
-    path,
-    values,
-    "usp.Set"
-  );
-  const [bufferSetMsg, id] = createMsg(rootMsg, setMessage, Header.MsgType.SET);
-  const bufferSetRecord = createRecord(rootRecord, bufferSetMsg);
-  return [bufferSetRecord, id];
-};
-
-/** Make add message */
-export const makeAddMessage = (path: string, values: any[]) => {
-  const addMessage = createChangeRequestMessage(
-    rootMsg,
-    path,
-    values,
-    "usp.Add"
-  );
-  const [bufferAddMsg, id] = createMsg(rootMsg, addMessage, Header.MsgType.ADD);
-  const bufferSetRecord = createRecord(rootRecord, bufferAddMsg);
-  return [bufferSetRecord, id];
-};
-
-/** Make operate message */
-export const makeOperateMessage = (path: string, input?: object) => {
-  const operateMessage = createOperateRequestMessage(
-    rootMsg,
-    path,
-    "",
-    true,
-    input
-  );
-  const [bufferOperateMsg, id] = createMsg(
-    rootMsg,
-    operateMessage,
-    Header.MsgType.OPERATE
-  );
-  const bufferOperateRecord = createRecord(rootRecord, bufferOperateMsg);
-  return [bufferOperateRecord, id];
-};
-
-/** Decode message */
-export const decode = (message: any) => {
-  const record = rootRecord.lookupType("usp_record.Record");
-  const decodedRecord: any = record.decode(message);
-  const msg = rootMsg.lookupType("usp.Msg");
-  const decodedMsg = msg.decode(decodedRecord.noSessionContext.payload);
-  return decodedMsg;
-};
diff --git a/src/protocol/js-usp-protobuf/usp/pbCreateMsg.ts b/src/protocol/js-usp-protobuf/usp/pbCreateMsg.ts
deleted file mode 100644
index 9ea087fda46f87b2fcd740a5e239546df641cd2c..0000000000000000000000000000000000000000
--- a/src/protocol/js-usp-protobuf/usp/pbCreateMsg.ts
+++ /dev/null
@@ -1,39 +0,0 @@
-let id = 0
-const createMsg = (
-  root: protobuf.Root,
-  requestMessage: any,
-  msgType: any
-) => {
-  const body = root.lookupType("usp.Body");
-
-  const errMsg = body.verify(requestMessage);
-  if (errMsg) throw Error(errMsg);
-
-  const bodyMessage = body.create(requestMessage);
-  const header = root.lookupType("usp.Header");
-
-  const msgId = (id++).toString()
-  const headerPayload = {
-    msgId,
-    msgType: msgType,
-  };
-  const headerErrMsg = header.verify(headerPayload);
-  if (headerErrMsg) throw Error(headerErrMsg);
-
-  const headerMessage = header.create(headerPayload);
-
-  const msg = root.lookupType("usp.Msg");
-  const msgPayload = {
-    header: headerMessage,
-    body: bodyMessage,
-  };
-
-  const msgErr = msg.verify(msgPayload);
-  if (msgErr) throw Error(msgErr);
-
-  const msgMessage = msg.create(msgPayload);
-  const bufferMsg = msg.encode(msgMessage).finish();
-  return [bufferMsg, msgId];
-};
-
-export default createMsg;
diff --git a/src/protocol/js-usp-protobuf/usp/pbRecord.ts b/src/protocol/js-usp-protobuf/usp/pbRecord.ts
deleted file mode 100644
index 6aef159475b91d3b44ede07c64500e5002c458d3..0000000000000000000000000000000000000000
--- a/src/protocol/js-usp-protobuf/usp/pbRecord.ts
+++ /dev/null
@@ -1,23 +0,0 @@
-const makeCreateRecord = (toId: string, fromId: string) => (
-  root: protobuf.Root,
-  bufferMsg: any
-) => {
-  const NoSessionContextRecord = root.lookupType(
-    "usp_record.NoSessionContextRecord"
-  );
-  const noSessionContextRecordMsg = NoSessionContextRecord.create({
-    payload: bufferMsg,
-  });
-  const record: any = root.lookupType("usp_record.Record");
-  const recordMsg = record.create({
-    version: "1.0",
-    toId,
-    fromId,
-    PayloadSecurity: record.PayloadSecurity.PLAINTEXT,
-    noSessionContext: noSessionContextRecordMsg,
-  });
-  const buffer = record.encode(recordMsg).finish();
-  return buffer;
-};
-
-export default makeCreateRecord;
diff --git a/src/protocol/js-usp-protobuf/usp/pbRequest.ts b/src/protocol/js-usp-protobuf/usp/pbRequest.ts
deleted file mode 100644
index be71dc89d6aad4c43598c055ad965df5c3d22242..0000000000000000000000000000000000000000
--- a/src/protocol/js-usp-protobuf/usp/pbRequest.ts
+++ /dev/null
@@ -1,159 +0,0 @@
-export const createGetRequestMessage = (
-  root: protobuf.Root,
-  paramPaths: string[]
-) => {
-  const get = root.lookupType("usp.Get");
-  const payload = { paramPaths: paramPaths };
-
-  const errMsg = get.verify(payload);
-  if (errMsg) throw Error(errMsg);
-
-  const getMessage = get.create(payload);
-  const request = root.lookupType("usp.Request");
-
-  const getPayload = { get: getMessage };
-
-  const reqErrMsg = request.verify(getPayload);
-  if (reqErrMsg) throw Error(reqErrMsg);
-
-  return { request: request.create(getPayload) };
-};
-
-export const createOperateRequestMessage = (
-  root: protobuf.Root,
-  command: string,
-  commandKey: string,
-  sendResp: boolean,
-  inputArgs: any
-) => {
-  const operate = root.lookupType("usp.Operate");
-  const payload = {
-    command: command,
-    commandKey: commandKey,
-    sendResp: sendResp,
-    inputArgs: inputArgs,
-  };
-
-  const errMsg = operate.verify(payload);
-  if (errMsg) throw Error(errMsg);
-
-  const operateMessage = operate.create(payload);
-  const request = root.lookupType("usp.Request");
-  const reqPayload = { operate: operateMessage };
-
-  const reqErrMsg = request.verify(reqPayload);
-  if (reqErrMsg) throw Error(reqErrMsg);
-
-  return { request: request.create(reqPayload) };
-};
-
-// Change can be either an Add or Set Request
-export const createChangeRequestMessage = (
-  root: protobuf.Root,
-  objPath: string,
-  pairs: any[],
-  USP_TYPE: any
-) => {
-  const createParamSetting = root.lookupType(
-    USP_TYPE === "usp.Add"
-      ? `${USP_TYPE}.CreateParamSetting`
-      : `${USP_TYPE}.UpdateParamSetting`
-  );
-  const createObject = root.lookupType(
-    USP_TYPE === "usp.Add"
-      ? `${USP_TYPE}.CreateObject`
-      : `${USP_TYPE}.UpdateObject`
-  );
-
-  const change = root.lookupType(USP_TYPE);
-
-  const createParamSettingMessage = pairs.map(([param, value]) => {
-    const payload = {
-      param,
-      value,
-      required: true,
-    };
-
-    const errMsg = createParamSetting.verify(payload);
-    if (errMsg) throw Error(errMsg);
-
-    return createParamSetting.create(payload);
-  });
-
-  const objPayload = {
-    objPath: objPath,
-    paramSettings: createParamSettingMessage,
-  };
-
-  const objErrMsg = createObject.verify(objPayload);
-  if (objErrMsg) throw Error(objErrMsg);
-
-  const createObjectMessage = createObject.create(objPayload);
-  const uspPayload =
-    USP_TYPE === "usp.Add"
-      ? {
-          allow_partial: false,
-          createObjs: [createObjectMessage],
-        }
-      : {
-          allow_partial: false,
-          updateObjs: [createObjectMessage],
-        };
-
-  const uspErrMsg = change.verify(uspPayload);
-  if (uspErrMsg) throw Error(uspErrMsg);
-
-  const changeMessage = change.create(uspPayload);
-  const request = root.lookupType("usp.Request");
-
-  const payload =
-    USP_TYPE === "usp.Add"
-      ? {
-          add: changeMessage,
-        }
-      : {
-          set: changeMessage,
-        };
-
-  const errMsg = request.verify(payload);
-  if (errMsg) throw Error(errMsg);
-
-  const requestMessage = request.create(payload);
-  const Body = root.lookupType("usp.Body");
-  const bodyPayload = {
-    request: requestMessage,
-  };
-
-  const bodyErrMsg = Body.verify(bodyPayload);
-  if (bodyErrMsg) throw Error(bodyErrMsg);
-  return bodyPayload;
-};
-
-export const createDeleteRequestMessage = (
-  root: protobuf.Root,
-  paramPaths: string[]
-) => {
-  const Delete = root.lookupType("usp.Delete");
-  const payload = {
-    allowPartial: false,
-    objPaths: paramPaths,
-  };
-
-  let errMsg = Delete.verify(payload);
-  if (errMsg) throw Error(errMsg);
-
-  const deleteMessage = Delete.create(payload);
-  const Request = root.lookupType("usp.Request");
-
-  const delPayload = {
-    delete: deleteMessage,
-  };
-
-  const delErrMsg = Request.verify(delPayload);
-  if (delErrMsg) throw Error(delErrMsg);
-
-  const requestMessage = Request.create(delPayload);
-  return {
-    request: requestMessage,
-  };
-};
diff --git a/src/protocol/js-usp-protobuf/protobuf-spec/usp-msg-1-1.json b/src/specs/usp-msg-1-1.json
similarity index 100%
rename from src/protocol/js-usp-protobuf/protobuf-spec/usp-msg-1-1.json
rename to src/specs/usp-msg-1-1.json
diff --git a/src/protocol/js-usp-protobuf/protobuf-spec/usp-msg-1-1.proto b/src/specs/usp-msg-1-1.proto
similarity index 100%
rename from src/protocol/js-usp-protobuf/protobuf-spec/usp-msg-1-1.proto
rename to src/specs/usp-msg-1-1.proto
diff --git a/src/protocol/js-usp-protobuf/protobuf-spec/usp-record-1-1.json b/src/specs/usp-record-1-1.json
similarity index 100%
rename from src/protocol/js-usp-protobuf/protobuf-spec/usp-record-1-1.json
rename to src/specs/usp-record-1-1.json
diff --git a/src/protocol/js-usp-protobuf/protobuf-spec/usp-record-1-1.proto b/src/specs/usp-record-1-1.proto
similarity index 100%
rename from src/protocol/js-usp-protobuf/protobuf-spec/usp-record-1-1.proto
rename to src/specs/usp-record-1-1.proto
diff --git a/src/types.ts b/src/types.ts
index b8556d45024bbd6bf097c9616d82b1ca52e1d959..b678b036901355c8c65f5be87898ebb28a640659 100644
--- a/src/types.ts
+++ b/src/types.ts
@@ -1,32 +1,173 @@
-// import { IClientOptions } from "async-mqtt";
-import { IClientOptions } from "async-mqtt";
+import { rootRecord } from "./commands";
 
-export interface ConnectOptions extends IClientOptions {
-  toId: string;
-  fromId: string;
-  publishEndpoint?: string;
-  subscribeEndpoint?: string;
-}
+export type CommandType =
+  | "GET"
+  | "SET"
+  | "ADD"
+  | "DELETE"
+  | "OPERATE"
+  | "NOTIFY"
+  | "GET_SUPPORTED_DM"
+  | "GET_INSTANCES"
+  | "GET_SUPPORTED_PROTO";
 
-/** Stores promise resolve and reject responses  */
-export type PromiseResult = { resolve; reject };
-/** Routes messages */
-export type Router = Map<string, PromiseResult>;
-/** Send Function */
-export type SendFn = (
-  command: CommandType,
-  args: Partial<EncodeArgs>
-) => Promise<USPMessage>;
-
-/**
- * Connection lifecycle event handlers
- */
-export interface ConnectEvents {
-  /** Handler for idle timeout */
-  onTimeout?: () => void;
+export type GetReturn = string | Record<string, any> | Record<string, any>[];
+export type GetCommand = (paths: string | string[]) => Promise<GetReturn>;
+export type SetCommand = (
+  path: string,
+  value: JSValue | JSValue[] | InputRecord
+) => Promise<void>;
+export type AddCommand = (path: string, value?: InputRecord) => Promise<string>;
+export type DelCommand = (
+  path: string,
+  allowPartial?: boolean
+) => Promise<void>;
+export type OperateFn = (input?: Record<string, any>) => Promise<any>;
+export type OperateClearFn = () => Promise<void>;
+export type OperateRecipe = (
+  path: string,
+  opts?: OperateOptions
+) => Promise<[OperateFn, OperateClearFn]>;
+export type SupportedDMCommand = (
+  paths: string | string[],
+  opts?: SuportedCommandOpts
+) => Promise<Record<string, any>>;
+export type InstancesCommand = (
+  paths: string | string[],
+  firstLevelOnly?: boolean
+) => Promise<Record<string, any>>;
+export type SupportedProtoCommand = (versions: string) => Promise<string>;
+export type SubscribeRecipe = (
+  opts: SubscriptionOptions,
+  callback: SubscriptionCallback
+) => Promise<PromiseClearFn>;
+
+export type PromiseClearFn = () => Promise<void>;
+
+export type Command =
+  | GetCommand
+  | SetCommand
+  | AddCommand
+  | DelCommand
+  | OperateRecipe
+  | SubscribeRecipe
+  | SupportedDMCommand
+  | InstancesCommand
+  | SupportedProtoCommand;
+
+export type PbRequestCommand =
+  | PbRequestCommandGet
+  | PbRequestCommandSet
+  | PbRequestCommandAdd
+  | PbRequestCommandDel
+  | PbRequestCommandOperate
+  | PbRequestCommandSupport
+  | PbRequestCommandInstance
+  | PbRequestCommandSupportProto;
+
+export interface SuportedCommandOpts {
+  firstLevelOnly?: boolean;
+  returnCommands?: boolean;
+  returnEvents?: boolean;
+  returnParams?: boolean;
 }
+
+export type InputRecord = {
+  [k: string]:
+    | {
+        required: boolean;
+        value: any;
+      }
+    | string
+    | number
+    | boolean;
+} & { allowPartial?: boolean };
+
+export type PbRequestCommandSupportProto = {
+  getSupportedProtocol: {
+    agentSupportedProtocolVersions: string;
+  };
+};
+
+export type PbRequestCommandInstance = {
+  getInstances: {
+    objPaths: string[];
+    firstLevelOnly: boolean;
+  };
+};
+
+export type PbRequestCommandSupport = {
+  getSupportedDm: {
+    objPaths: string[];
+    firstLevelOnly: boolean;
+    returnCommands: boolean;
+    returnEvents: boolean;
+    returnParams: boolean;
+  };
+};
+
+export type PbRequestCommandOperate = {
+  operate: {
+    command: string;
+    commandKey: string;
+    sendResp: boolean;
+    inputArgs: Record<string, any>;
+  };
+};
+
+export type PbRequestCommandDel = {
+  delete: {
+    allowPartial: boolean;
+    objPaths: string[];
+  };
+};
+
+export type PbRequestCommandGet = {
+  get: {
+    paramPaths: string[];
+  };
+};
+
+export type PbRequestCommandSet = {
+  set: {
+    allowPartial: boolean;
+    updateObjs: {
+      objPath: string;
+      lookup: "Set.UpdateObject";
+      paramSettings: {
+        lookup: "Set.UpdateParamSetting";
+        param: string;
+        value: any;
+        required: boolean;
+      }[];
+    }[];
+  };
+};
+
+export type PbRequestCommandAdd = {
+  add: {
+    allowPartial: boolean;
+    createObjs: {
+      lookup: "Add.CreateObject";
+      objPath: string;
+      paramSettings: {
+        param: string;
+        value: any;
+        required: boolean;
+        lookup: "Add.CreateParamSetting";
+      }[];
+    }[];
+  };
+};
+
+export type Recipe = ResolveRecipe;
+export type ResolveRecipe = (
+  msg: GetReturn,
+  level?: number
+) => Promise<GetReturn>;
+
 /** Device API */
-export interface Device {
+export interface USP {
   /**
    * Get value at path
    * @param path Location of value (e.g. "Device.DeviceInfo.")
@@ -36,7 +177,7 @@ export interface Device {
    * await usp.get(["Device.WiFi.Radio.1.", "Device.WiFi.Radio.2."])
    * ```
    */
-  get: (path: string | string[]) => Promise<JSType>;
+  get: GetCommand;
 
   /**
    * Set value at path
@@ -48,7 +189,7 @@ export interface Device {
    * await usp.set("Device.WiFi.Radio.1.Name", "radio-1")
    * ```
    */
-  set: (path: string, value: JSType) => Promise<void>;
+  set: SetCommand;
 
   /**
    * Create a command
@@ -61,10 +202,7 @@ export interface Device {
    * await cleanPing()
    * ```
    */
-  operate: (
-    path: string,
-    opts?: OperateOptions
-  ) => Promise<[OperateFunction, OperateCleanupFunction]>;
+  operate: OperateRecipe;
 
   /**
    * Add object to path
@@ -73,18 +211,21 @@ export interface Device {
    * @returns Full path of new object
    * ```
    * await usp.add("Device.NAT.PortMapping.")
+   * await usp.add("Device.NAT.PortMapping.", { Description: "cpe-1", allowPartial: true })
    * ```
    */
-  add: (path: string, values?: JSObject) => Promise<string>;
+  add: AddCommand;
 
   /**
    * Delete object at path
    * @param path Full path to delete (e.g. "Device.NAT.PortMapping.1.")
+   * @param allowPartial [Optional] Allow partial (defaults to false)
    * ```
    * await usp.del("Device.NAT.PortMapping.1.")
+   * await usp.del("Device.NAT.PortMapping.1.", true)
    * ```
    */
-  del: (path: string | string[]) => Promise<void>;
+  del: DelCommand;
 
   /**
    * Resolve references in message
@@ -94,160 +235,175 @@ export interface Device {
    * await usp.get("Device.WiFi.Radio.1.").then(device.resolve)
    * ```
    */
-  resolve: (msg: JSType, level: number) => Promise<JSType>;
+  resolve: ResolveRecipe;
+
+  /**
+   * Get Supported DM
+   * @param paths Path(s)
+   * @param opts [Optional] Response options
+   * ```
+   * await usp.supportedDM("Device.WiFi.")
+   * ```
+   */
+  supportedDM: SupportedDMCommand;
+
+  /**
+   * Get Supported Protocol
+   * @param versions Agent supported protocol versions
+   * ```
+   * await usp.supportedProto("Device.WiFi.")
+   * ```
+   */
+  supportedProto: SupportedProtoCommand;
 
   /**
-   * Disconenct from device
+   * Get instances
+   * @param paths Path(s)
+   * @param firstLevelOnly [Optional] Return only first level
+   * ```
+   * await usp.instances("Device.WiFi.")
+   * ```
+   */
+  instances: SupportedDMCommand;
+
+  /**
+   * Subscribe to event
+   * @param options Subscription options
+   * @param callback Callback on relevant message
+   * @returns Returns function to clear subscription
+   * ```
+   * const clearSub = await usp.subscribe({ id: '1234', notif: 'ObjectCreation', reference: 'Device.NAT.PortMapping.' }, console.log)
+   * ```
+   */
+  subscribe: SubscribeRecipe;
+
+  /**
+   * Add handler for messages
+   * @param ident Message identifier (identifies by id, can be a string or regexp)
+   * @param callback Callback on relevant message
+   * @returns Returns function to clear handler
+   * ```
+   * const clear = usp.on("error", () => console.log('An error!'))
+   * ```
+   */
+  on: OnFn;
+
+  /**
+   * Disconnect from device
    * ```
    * await usp.disconnect()
    * ```
    */
   disconnect: () => Promise<void>;
+}
 
-  /** Connection id */
-  id: () => string;
+type NotifType =
+  | "Event"
+  | "ValueChange"
+  | "ObjectCreation"
+  | "ObjectDeletion"
+  | "OperationComplete"
+  | "OnBoardRequest";
 
-  /** Roles of current session */
-  roles: () => Role[];
+export interface SubscriptionOptions {
+  id: string;
+  notif: NotifType;
+  reference: string | string[];
 }
 
-/** Options for Operate Subscription */
+export type SubscriptionCallback = (msg: Response) => void;
+
 export interface OperateOptions {
-  /** Subscription ID (optional) */
   ID?: string;
-  /** Should subscription remain through sessions (optional) */
   Persistent?: boolean;
 }
 
-/** Executes a command */
-export type OperateFunction = (input?: JSObject) => Promise<JSType>;
-/** Cleans up command subscription */
-export type OperateCleanupFunction = () => Promise<void>;
-
-/** Arguments for encoding commands */
-export interface EncodeArgs {
-  path: string;
-  paths: string[];
-  value: JSType;
-  input: JSObject;
-  action: string;
-  operateID: string;
+export interface PbRequestHeader {
+  msgId: string;
+  msgType: CommandType;
+  lookup: "Header";
 }
 
-/** Session role */
-export type Role = "admin" | "user" | "none";
-/** Representation of JS object */
-export type JSObject = { [key: string]: JSType };
-/** USP Commands */
-export type CommandType = "get" | "set" | "operate" | "add" | "delete" | "notify";
-/** Message types */
-export type MessageType = CommandType | "error";
-/** Represents js types */
-export type JSType = number | boolean | string | JSObject;
-/** User error message */
-export interface DeviceError {
-  type: "error";
-  reason: string;
-  path?: string;
-}
-/** Base Message passed between protocol and api */
-export interface BaseMessage {
-  id: string;
-  type: MessageType;
-  path: string;
-  data: {};
-}
-/** Error message */
-export interface ErrorMessage extends BaseMessage {
-  type: "error";
-  data: {
-    reason: string;
-  };
-}
-/** Get Message */
-export interface GetMessage extends BaseMessage {
-  type: "get";
-  data: JSType;
-}
-/** Set Message */
-export interface SetMessage extends BaseMessage {
-  type: "set";
-  data: {
-    updated: true;
-  };
-}
-/** Operate Message */
-export interface OperateMessage extends BaseMessage {
-  type: "operate";
-  data: JSType;
-}
-/** Notify Message */
-export interface NotifyMessage extends BaseMessage {
-  type: "notify";
-  data: JSType;
-}
-/** Add Message */
-export interface AddMessage extends BaseMessage {
-  type: "add";
-  data: string;
-}
-/** Delete Message */
-export interface DeleteMessage extends BaseMessage {
-  type: "delete";
-  data: {
-    deleted: true;
-  };
+export interface PbRequestBody {
+  lookup: "Body";
+  request: {
+    lookup: "Request";
+  } & PbRequestCommand;
 }
 
-/** Union of Messages */
-export type USPMessage =
-  | GetMessage
-  | SetMessage
-  | OperateMessage
-  | AddMessage
-  | DeleteMessage
-  | NotifyMessage
-  | ErrorMessage;
-
-/** Protocol event handlers */
-export interface ProtocolArgs {
-  onMessage: (msg: USPMessage) => void;
-  onError: (err: any) => void;
+export interface PbRequestMessage {
+  header: PbRequestHeader;
+  body: PbRequestBody;
+  lookup: "Msg";
 }
 
-/** Results of initialiazing protocol  */
-export interface InitResult {
-  /** Session timeout in seconds */
-  timeout: number;
-}
+export type URLConnectionOptions = {
+  url: string;
+} & OtherConnectionOptions;
+
+export type HostConnectionOptions = {
+  host: string;
+  port: number;
+  protocol: "wss" | "ws" | "mqtt" | "mqtts" | "tcp" | "ssl" | "wx" | "wxs";
+} & OtherConnectionOptions;
 
-/** Protocol interface */
-export interface Protocol {
-  /** Initialize protocol */
-  init: () => Promise<InitResult>;
-  /** Close connection */
-  close: () => Promise<void>;
-  /** Send message */
-  send: ({ data: any }) => void;
-  /** Encode message */
-  encode: (
-    command: CommandType,
-    args: Partial<EncodeArgs>
-  ) => { data: any; id: string };
+export type CertType = string | string[] | Buffer | Buffer[];
+export interface OtherConnectionOptions {
+  username: string;
+  password: string;
+  fromId: string;
+  toId: string;
+  publishEndpoint?: string;
+  subscribeEndpoint?: string;
+  ca?: CertType | Object[];
+  key?: CertType;
+  cert?: CertType;
 }
 
-/** Protocol event handlers */
-export interface ProtocolEvents {
-  /** Handler for message event */
-  onMessage: (resp: USPMessage) => void;
+export type ConnectionOptions = URLConnectionOptions | HostConnectionOptions;
+
+export type Response = string | Record<string, any>;
+export type DecodeFn = (
+  msg: Record<string, any>
+) => DecodeResponse | [any];
+export type DecodeResponse = [any, ResponseID | null, null | Response] | [any]
+export type EncodeArgs = {
+  rootMsg: protobuf.Root;
+  rootRecord: protobuf.Root;
+  header: any;
+  options: Record<string, string>;
+  args: Record<string, any>;
+};
+
+export type OnIdent = string | RegExp;
+
+export type EncodeFn = (args: Record<string, any>) => PbRequestMessage;
+export type CallArgs = Record<string, any>;
+export type ClearFn = () => void;
+export type OnFn = (
+  ident: OnIdent,
+  callback: SubscriptionCallback
+) => ClearFn;
+export type MakeFn = (call: CallFn, on: OnFn) => Command;
+export type MakeRecipeFn = (call: CallFn) => Recipe;
+export type CommandTrigger = {
+  decode: string | ((msg: Record<string, string>) => boolean);
+  encode: string;
+};
+export type CommandObject = {
+  encode: EncodeFn;
+  decode: DecodeFn;
+};
+
+export interface ConnectionEvents {
+  onError?: (err: string) => void;
 }
 
-/** Mqtt message structure */
-export interface MQTTRequest {
-  /** Message id */
-  id: string;
-  /** Message data */
-  data: any;
+export interface RecipeObject {
+  name: string;
+  make: MakeFn;
 }
 
-export type RejectFn = (reason?: any) => void
\ No newline at end of file
+export type ResponseID = "ignore" | "error" | string;
+export type JSValue = string | number | boolean;
+export type CallFn = (cmd: CommandType, args: Record<string, any>) => any;
diff --git a/src/util.ts b/src/util.ts
new file mode 100644
index 0000000000000000000000000000000000000000..ef070f10898dd77b2d183fec39532d6a4d736b7c
--- /dev/null
+++ b/src/util.ts
@@ -0,0 +1,40 @@
+import { OnIdent, SubscriptionCallback } from "./types";
+
+/**
+ * Makes a router for storing resolve/reject for a message
+ */
+export const makeRouter = () => {
+  const routes = new Map();
+  return {
+    get: (id: string) => {
+      const res = { ...routes.get(id) };
+      routes.delete(id);
+      return res;
+    },
+    add: (id: string, data: any) => {
+      routes.set(id, { ...data });
+    },
+  };
+};
+
+const toId = (id: OnIdent): string => id.toString();
+const isRegExp = (v: OnIdent): v is RegExp => typeof v === "object";
+const satisfies = (id: OnIdent, matches: string): boolean =>
+  isRegExp(id) ? matches.match(id) !== null : id === matches;
+export const makeCallbackRouter = () => {
+  const routes = new Map<
+    string,
+    { callback: SubscriptionCallback; ident: OnIdent }
+  >();
+  return {
+    get: (id: string): SubscriptionCallback[] => {
+      return Array.from(routes.values())
+        .filter(({ ident }) => satisfies(ident, id))
+        .map((v) => v.callback);
+    },
+    add: (ident: OnIdent, callback: SubscriptionCallback) => {
+      routes.set(toId(ident), { callback, ident });
+    },
+    del: (id: OnIdent) => routes.delete(toId(id)),
+  };
+};
diff --git a/tests/integration/config.json b/tests/integration/config.json
index 94151773f2084faed9e56765bce505c1c4cddcd0..17a2b9fdbc197816b8dcb340ff5b50b7a79385df 100644
--- a/tests/integration/config.json
+++ b/tests/integration/config.json
@@ -14,5 +14,12 @@
     "protocol": "ws",
     "fromId": "proto::interop-usp-controller",
     "toId": "os::002207-E40A24H17A022443"
+  },
+  "url": {
+    "url": "ws://192.168.1.1:9001",
+    "username": "admin",
+    "password": "admin",
+    "fromId": "proto::interop-usp-controller",
+    "toId": "os::002207-E40A24H17A022443"
   }
 }
diff --git a/tests/integration/index.test.js b/tests/integration/index.test.js
index 26f37c8714253b490718677c608508bebec364f7..9aa57b4039237a3632a9b096bb2e2f1a0e171e82 100644
--- a/tests/integration/index.test.js
+++ b/tests/integration/index.test.js
@@ -1,6 +1,7 @@
 const assert = require("assert");
 const connect = require("../../build/src").default;
 const config = require("./config.json");
+const fs = require('fs')
 
 describe("Test general API", () => {
   let device = null;
@@ -27,7 +28,7 @@ describe("Test general API", () => {
   it("get incorrect path throws an error", async () => {
     await device
       .get("Device.Not.A.Thing")
-      .catch((err) => assert.strictEqual(typeof err, "string"));
+      .catch((err) => assert.strictEqual(typeof err, "object"));
   });
 
   // SET
@@ -45,16 +46,16 @@ describe("Test general API", () => {
   it("set throws an error on incorrect path", async () => {
     await device
       .set("Device.Not.A.Path", { Cat: "cute" })
-      .catch((err) => assert.strictEqual(typeof err, "string"));
+      .catch((err) => assert.strictEqual(typeof err, "object"));
   });
 
   // OPERATE
 
   it("operate creates a working command", async () => {
-    const [ping] = await device.operate("Device.IP.Diagnostics.IPPing()")
-    const results = await ping({ Host: "iopsys.eu" })
-    assert.strictEqual(typeof results, "object")
-  })
+    const [ping] = await device.operate("Device.IP.Diagnostics.IPPing()");
+    const results = await ping({ Host: "iopsys.eu" });
+    assert.strictEqual(typeof results, "object");
+  });
 
   // ADD / DELETE
 
@@ -100,15 +101,34 @@ describe("Test general API", () => {
 });
 
 describe("Test specific connection types", () => {
-  let usp = null;
-
   it("Connect over ws", async () => {
-    usp = await connect(config.ws);
+    let usp = await connect(config.ws);
     const desc = await usp.get("Device.DeviceInfo.Description");
+    await usp.disconnect();
     assert.strictEqual(typeof desc, "string");
   });
 
-  after(async () => {
+  it("Connect using url", async () => {
+    let usp = await connect(config.url);
+    const desc = await usp.get("Device.DeviceInfo.Description");
     await usp.disconnect();
+    assert.strictEqual(typeof desc, "string");
   });
+
+  // it("Connect using certificates", async () => {
+  //   const URL = "ws://192.168.1.1:9001";
+  //   const CLIENT_KEY = fs.readFileSync(__dirname + "/client.key");
+  //   const CLIENT_CERT = fs.readFileSync(__dirname + "/client.crt");
+  //   const CA_CERT = [fs.readFileSync(__dirname + "/ca.crt")];
+
+  //   let usp = await connect({
+  //     ca: CA_CERT,
+  //     key: CLIENT_KEY,
+  //     cert: CLIENT_CERT,
+  //     url: URL
+  //   });
+  //   const desc = await usp.get("Device.DeviceInfo.Description");
+  //   await usp.disconnect();
+  //   assert.strictEqual(typeof desc, "string");
+  // });
 });
diff --git a/tests/unit/lib.test.js b/tests/unit/lib.test.js
deleted file mode 100644
index 933c8fef3830f4e724782525659e24ca01d95015..0000000000000000000000000000000000000000
--- a/tests/unit/lib.test.js
+++ /dev/null
@@ -1,84 +0,0 @@
-const mainLib = require("../../build/src/lib");
-const protoLib = require("../../build/src/protocol/lib");
-const assert = require("assert");
-
-describe("Test main utility functions", () => {
-  it("timer executes if not stopped", (done) => {
-    mainLib.timer(1, () => done());
-  });
-
-  it("timer does not execute if stopped", (done) => {
-    const stop = mainLib.timer(100, () => {
-      throw new Error("Timeout");
-    });
-    stop();
-    done();
-  });
-
-  it("loop timer executes if not stopped", (done) => {
-    mainLib.loopTimer(100, () => done());
-  });
-
-  it("loop timer can be restarted multiple times", (done) => {
-    const restart = mainLib.loopTimer(100, () => {
-      done();
-    });
-    restart();
-    restart();
-  });
-
-  it("makeRouter conservatively add and gets values", () => {
-    const router = mainLib.makeRouter();
-    router.add("1", {
-      resolve: () => true,
-      reject: () => false,
-    });
-
-    const { resolve } = router.get("1");
-    const doesNotExist = router.get("1");
-    assert.strictEqual(resolve(), true);
-    assert.strictEqual(doesNotExist.resolve, undefined);
-  });
-});
-
-describe("Test mqtt utility functions", () => {
-  it("unflatten", () => {
-    const unflattened = protoLib.unflatten({
-      "a.b.c": 3,
-      "a.b.f.1": 4,
-    });
-    assert.deepStrictEqual(unflattened, { a: { b: { c: 3, f: [4] } } });
-  });
-
-  it("search", () => {
-    const nestedObj = { a: { b: { c: 3, f: [4] } } };
-
-    const exists = protoLib.search(nestedObj, "f");
-    const doesNotExist = protoLib.search(nestedObj, "not-real");
-
-    assert.deepStrictEqual(exists, [4]);
-    assert.strictEqual(doesNotExist, undefined);
-  });
-
-  it("searchAll", () => {
-    const nestedObj = { a: { b: { c: 3, f: [4] }, f: 2 } };
-
-    const exists = protoLib.searchAll(nestedObj, "f");
-    const doesNotExist = protoLib.searchAll(nestedObj, "not-real");
-
-    assert.deepStrictEqual(exists, [4, 2]);
-    assert.deepStrictEqual(doesNotExist, []);
-  });
-
-  it("unwrapObject", () => {
-    assert.deepStrictEqual(protoLib.unwrapObject({ Alias: 1 }), 1);
-    assert.deepStrictEqual(protoLib.unwrapObject([{ Alias: 1 }]), [
-      { Alias: 1 },
-    ]);
-  });
-
-  it("unwrapArray", () => {
-    assert.deepStrictEqual(protoLib.unwrapArray([1]), 1);
-    assert.deepStrictEqual(protoLib.unwrapArray(1), 1);
-  });
-});