diff --git a/docs/_coverpage.md b/docs/_coverpage.md
index b83029e..127ce60 100644
--- a/docs/_coverpage.md
+++ b/docs/_coverpage.md
@@ -1,6 +1,6 @@
![logo](_media/eufy-security-ws.png)
-# eufy-security-ws 1.6.3
+# eufy-security-ws 1.6.4
> A small server wrapper around [eufy-security-client](https://github.com/bropat/eufy-security-client) library to access it via a WebSocket
diff --git a/package-lock.json b/package-lock.json
index 1ecf357..a98987a 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1,18 +1,18 @@
{
"name": "eufy-security-ws",
- "version": "1.6.3",
+ "version": "1.6.4",
"lockfileVersion": 2,
"requires": true,
"packages": {
"": {
"name": "eufy-security-ws",
- "version": "1.6.3",
+ "version": "1.6.4",
"license": "MIT",
"dependencies": {
"ansi-colors": "^4.1.3",
"commander": "^11.0.0",
"date-and-time": "^3.0.2",
- "eufy-security-client": "^2.8.0",
+ "eufy-security-client": "^2.8.1",
"fs-extra": "^11.1.1",
"tslog": "^3.3.4",
"ws": "^8.13.0"
@@ -22,16 +22,16 @@
"eufy-security-server": "dist/bin/server.js"
},
"devDependencies": {
- "@types/node": "^16.18.41",
+ "@types/node": "^16.18.46",
"@types/node-rsa": "^1.1.1",
"@types/ws": "^8.5.5",
- "@typescript-eslint/eslint-plugin": "^6.4.0",
- "@typescript-eslint/parser": "^6.4.0",
- "eslint": "^8.47.0",
+ "@typescript-eslint/eslint-plugin": "^6.5.0",
+ "@typescript-eslint/parser": "^6.5.0",
+ "eslint": "^8.48.0",
"eslint-config-prettier": "^9.0.0",
- "prettier": "3.0.2",
+ "prettier": "3.0.3",
"ts-node": "^10.9.1",
- "typescript": "^5.1.6"
+ "typescript": "^5.2.2"
},
"engines": {
"node": ">=16.9.0"
@@ -114,9 +114,9 @@
}
},
"node_modules/@eslint/js": {
- "version": "8.47.0",
- "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.47.0.tgz",
- "integrity": "sha512-P6omY1zv5MItm93kLM8s2vr1HICJH8v0dvddDhysbIuZ+vcjOHg5Zbkf1mTkcmi2JA9oBG2anOkRnW8WJTS8Og==",
+ "version": "8.48.0",
+ "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.48.0.tgz",
+ "integrity": "sha512-ZSjtmelB7IJfWD2Fvb7+Z+ChTIKWq6kjda95fLcQKNS5aheVHn4IkfgRQE3sIIzTcSLwLcLZUD9UBt+V7+h+Pw==",
"dev": true,
"engines": {
"node": "^12.22.0 || ^14.17.0 || >=16.0.0"
@@ -346,9 +346,9 @@
}
},
"node_modules/@types/node": {
- "version": "16.18.41",
- "resolved": "https://registry.npmjs.org/@types/node/-/node-16.18.41.tgz",
- "integrity": "sha512-YZJjn+Aaw0xihnpdImxI22jqGbp0DCgTFKRycygjGx/Y27NnWFJa5FJ7P+MRT3u07dogEeMVh70pWpbIQollTA=="
+ "version": "16.18.46",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-16.18.46.tgz",
+ "integrity": "sha512-Mnq3O9Xz52exs3mlxMcQuA7/9VFe/dXcrgAyfjLkABIqxXKOgBRjyazTxUbjsxDa4BP7hhPliyjVTP9RDP14xg=="
},
"node_modules/@types/node-rsa": {
"version": "1.1.1",
@@ -359,6 +359,15 @@
"@types/node": "*"
}
},
+ "node_modules/@types/readable-stream": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/@types/readable-stream/-/readable-stream-4.0.2.tgz",
+ "integrity": "sha512-hhzOsMEISZ+mX1l+01F0duYt9wHEbCGmjARed0PcQoVS5zAdu7u5YbWYuNGhw09M1MgGr3kfsto+ut/MnAdKqA==",
+ "dependencies": {
+ "@types/node": "*",
+ "safe-buffer": "~5.1.1"
+ }
+ },
"node_modules/@types/responselike": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/@types/responselike/-/responselike-1.0.0.tgz",
@@ -368,31 +377,30 @@
}
},
"node_modules/@types/semver": {
- "version": "7.5.0",
- "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.0.tgz",
- "integrity": "sha512-G8hZ6XJiHnuhQKR7ZmysCeJWE08o8T0AXtk5darsCaTVsYZhhgUrq53jizaR2FvsoeCwJhlmwTjkXBY5Pn/ZHw==",
+ "version": "7.5.1",
+ "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.1.tgz",
+ "integrity": "sha512-cJRQXpObxfNKkFAZbJl2yjWtJCqELQIdShsogr1d2MilP8dKD9TE/nEKHkJgUNHdGKCQaf9HbIynuV2csLGVLg==",
"dev": true
},
"node_modules/@types/ws": {
"version": "8.5.5",
"resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.5.tgz",
"integrity": "sha512-lwhs8hktwxSjf9UaZ9tG5M03PGogvFaH8gUgLNbN9HKIg0dvv6q+gkSuJ8HN4/VbyxkuLzCjlN7GquQ0gUJfIg==",
- "dev": true,
"dependencies": {
"@types/node": "*"
}
},
"node_modules/@typescript-eslint/eslint-plugin": {
- "version": "6.4.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.4.0.tgz",
- "integrity": "sha512-62o2Hmc7Gs3p8SLfbXcipjWAa6qk2wZGChXG2JbBtYpwSRmti/9KHLqfbLs9uDigOexG+3PaQ9G2g3201FWLKg==",
+ "version": "6.5.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.5.0.tgz",
+ "integrity": "sha512-2pktILyjvMaScU6iK3925uvGU87E+N9rh372uGZgiMYwafaw9SXq86U04XPq3UH6tzRvNgBsub6x2DacHc33lw==",
"dev": true,
"dependencies": {
"@eslint-community/regexpp": "^4.5.1",
- "@typescript-eslint/scope-manager": "6.4.0",
- "@typescript-eslint/type-utils": "6.4.0",
- "@typescript-eslint/utils": "6.4.0",
- "@typescript-eslint/visitor-keys": "6.4.0",
+ "@typescript-eslint/scope-manager": "6.5.0",
+ "@typescript-eslint/type-utils": "6.5.0",
+ "@typescript-eslint/utils": "6.5.0",
+ "@typescript-eslint/visitor-keys": "6.5.0",
"debug": "^4.3.4",
"graphemer": "^1.4.0",
"ignore": "^5.2.4",
@@ -418,15 +426,15 @@
}
},
"node_modules/@typescript-eslint/parser": {
- "version": "6.4.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-6.4.0.tgz",
- "integrity": "sha512-I1Ah1irl033uxjxO9Xql7+biL3YD7w9IU8zF+xlzD/YxY6a4b7DYA08PXUUCbm2sEljwJF6ERFy2kTGAGcNilg==",
+ "version": "6.5.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-6.5.0.tgz",
+ "integrity": "sha512-LMAVtR5GN8nY0G0BadkG0XIe4AcNMeyEy3DyhKGAh9k4pLSMBO7rF29JvDBpZGCmp5Pgz5RLHP6eCpSYZJQDuQ==",
"dev": true,
"dependencies": {
- "@typescript-eslint/scope-manager": "6.4.0",
- "@typescript-eslint/types": "6.4.0",
- "@typescript-eslint/typescript-estree": "6.4.0",
- "@typescript-eslint/visitor-keys": "6.4.0",
+ "@typescript-eslint/scope-manager": "6.5.0",
+ "@typescript-eslint/types": "6.5.0",
+ "@typescript-eslint/typescript-estree": "6.5.0",
+ "@typescript-eslint/visitor-keys": "6.5.0",
"debug": "^4.3.4"
},
"engines": {
@@ -446,13 +454,13 @@
}
},
"node_modules/@typescript-eslint/scope-manager": {
- "version": "6.4.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.4.0.tgz",
- "integrity": "sha512-TUS7vaKkPWDVvl7GDNHFQMsMruD+zhkd3SdVW0d7b+7Zo+bd/hXJQ8nsiUZMi1jloWo6c9qt3B7Sqo+flC1nig==",
+ "version": "6.5.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.5.0.tgz",
+ "integrity": "sha512-A8hZ7OlxURricpycp5kdPTH3XnjG85UpJS6Fn4VzeoH4T388gQJ/PGP4ole5NfKt4WDVhmLaQ/dBLNDC4Xl/Kw==",
"dev": true,
"dependencies": {
- "@typescript-eslint/types": "6.4.0",
- "@typescript-eslint/visitor-keys": "6.4.0"
+ "@typescript-eslint/types": "6.5.0",
+ "@typescript-eslint/visitor-keys": "6.5.0"
},
"engines": {
"node": "^16.0.0 || >=18.0.0"
@@ -463,13 +471,13 @@
}
},
"node_modules/@typescript-eslint/type-utils": {
- "version": "6.4.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-6.4.0.tgz",
- "integrity": "sha512-TvqrUFFyGY0cX3WgDHcdl2/mMCWCDv/0thTtx/ODMY1QhEiyFtv/OlLaNIiYLwRpAxAtOLOY9SUf1H3Q3dlwAg==",
+ "version": "6.5.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-6.5.0.tgz",
+ "integrity": "sha512-f7OcZOkRivtujIBQ4yrJNIuwyCQO1OjocVqntl9dgSIZAdKqicj3xFDqDOzHDlGCZX990LqhLQXWRnQvsapq8A==",
"dev": true,
"dependencies": {
- "@typescript-eslint/typescript-estree": "6.4.0",
- "@typescript-eslint/utils": "6.4.0",
+ "@typescript-eslint/typescript-estree": "6.5.0",
+ "@typescript-eslint/utils": "6.5.0",
"debug": "^4.3.4",
"ts-api-utils": "^1.0.1"
},
@@ -490,9 +498,9 @@
}
},
"node_modules/@typescript-eslint/types": {
- "version": "6.4.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.4.0.tgz",
- "integrity": "sha512-+FV9kVFrS7w78YtzkIsNSoYsnOtrYVnKWSTVXoL1761CsCRv5wpDOINgsXpxD67YCLZtVQekDDyaxfjVWUJmmg==",
+ "version": "6.5.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.5.0.tgz",
+ "integrity": "sha512-eqLLOEF5/lU8jW3Bw+8auf4lZSbbljHR2saKnYqON12G/WsJrGeeDHWuQePoEf9ro22+JkbPfWQwKEC5WwLQ3w==",
"dev": true,
"engines": {
"node": "^16.0.0 || >=18.0.0"
@@ -503,13 +511,13 @@
}
},
"node_modules/@typescript-eslint/typescript-estree": {
- "version": "6.4.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.4.0.tgz",
- "integrity": "sha512-iDPJArf/K2sxvjOR6skeUCNgHR/tCQXBsa+ee1/clRKr3olZjZ/dSkXPZjG6YkPtnW6p5D1egeEPMCW6Gn4yLA==",
+ "version": "6.5.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.5.0.tgz",
+ "integrity": "sha512-q0rGwSe9e5Kk/XzliB9h2LBc9tmXX25G0833r7kffbl5437FPWb2tbpIV9wAATebC/018pGa9fwPDuvGN+LxWQ==",
"dev": true,
"dependencies": {
- "@typescript-eslint/types": "6.4.0",
- "@typescript-eslint/visitor-keys": "6.4.0",
+ "@typescript-eslint/types": "6.5.0",
+ "@typescript-eslint/visitor-keys": "6.5.0",
"debug": "^4.3.4",
"globby": "^11.1.0",
"is-glob": "^4.0.3",
@@ -530,17 +538,17 @@
}
},
"node_modules/@typescript-eslint/utils": {
- "version": "6.4.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-6.4.0.tgz",
- "integrity": "sha512-BvvwryBQpECPGo8PwF/y/q+yacg8Hn/2XS+DqL/oRsOPK+RPt29h5Ui5dqOKHDlbXrAeHUTnyG3wZA0KTDxRZw==",
+ "version": "6.5.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-6.5.0.tgz",
+ "integrity": "sha512-9nqtjkNykFzeVtt9Pj6lyR9WEdd8npPhhIPM992FWVkZuS6tmxHfGVnlUcjpUP2hv8r4w35nT33mlxd+Be1ACQ==",
"dev": true,
"dependencies": {
"@eslint-community/eslint-utils": "^4.4.0",
"@types/json-schema": "^7.0.12",
"@types/semver": "^7.5.0",
- "@typescript-eslint/scope-manager": "6.4.0",
- "@typescript-eslint/types": "6.4.0",
- "@typescript-eslint/typescript-estree": "6.4.0",
+ "@typescript-eslint/scope-manager": "6.5.0",
+ "@typescript-eslint/types": "6.5.0",
+ "@typescript-eslint/typescript-estree": "6.5.0",
"semver": "^7.5.4"
},
"engines": {
@@ -555,12 +563,12 @@
}
},
"node_modules/@typescript-eslint/visitor-keys": {
- "version": "6.4.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.4.0.tgz",
- "integrity": "sha512-yJSfyT+uJm+JRDWYRYdCm2i+pmvXJSMtPR9Cq5/XQs4QIgNoLcoRtDdzsLbLsFM/c6um6ohQkg/MLxWvoIndJA==",
+ "version": "6.5.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.5.0.tgz",
+ "integrity": "sha512-yCB/2wkbv3hPsh02ZS8dFQnij9VVQXJMN/gbQsaaY+zxALkZnxa/wagvLEFsAWMPv7d7lxQmNsIzGU1w/T/WyA==",
"dev": true,
"dependencies": {
- "@typescript-eslint/types": "6.4.0",
+ "@typescript-eslint/types": "6.5.0",
"eslint-visitor-keys": "^3.4.1"
},
"engines": {
@@ -1102,15 +1110,15 @@
}
},
"node_modules/eslint": {
- "version": "8.47.0",
- "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.47.0.tgz",
- "integrity": "sha512-spUQWrdPt+pRVP1TTJLmfRNJJHHZryFmptzcafwSvHsceV81djHOdnEeDmkdotZyLNjDhrOasNK8nikkoG1O8Q==",
+ "version": "8.48.0",
+ "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.48.0.tgz",
+ "integrity": "sha512-sb6DLeIuRXxeM1YljSe1KEx9/YYeZFQWcV8Rq9HfigmdDEugjLEVEa1ozDjL6YDjBpQHPJxJzze+alxi4T3OLg==",
"dev": true,
"dependencies": {
"@eslint-community/eslint-utils": "^4.2.0",
"@eslint-community/regexpp": "^4.6.1",
"@eslint/eslintrc": "^2.1.2",
- "@eslint/js": "^8.47.0",
+ "@eslint/js": "8.48.0",
"@humanwhocodes/config-array": "^0.11.10",
"@humanwhocodes/module-importer": "^1.0.1",
"@nodelib/fs.walk": "^1.2.8",
@@ -1255,9 +1263,9 @@
}
},
"node_modules/eufy-security-client": {
- "version": "2.8.0",
- "resolved": "https://registry.npmjs.org/eufy-security-client/-/eufy-security-client-2.8.0.tgz",
- "integrity": "sha512-pS43fmB2d+YD+9RpK1DO1xHuvHI2q9Tz2TkkER+MhdkoOtHPPFUx34nTFJWMFRpBEPdpRUy4VnCrbn3nDF44LA==",
+ "version": "2.8.1",
+ "resolved": "https://registry.npmjs.org/eufy-security-client/-/eufy-security-client-2.8.1.tgz",
+ "integrity": "sha512-EbqOJZnFEqq0ruNN2KTh/rW4xubQdNnGA6uu65dnLPEU9uE9ZoRxXEP2hDDn9HVNxmGbWHmOuT5rNlDI1OvkUQ==",
"dependencies": {
"@cospired/i18n-iso-languages": "^4.1.0",
"crypto-js": "^4.1.1",
@@ -1267,11 +1275,11 @@
"i18n-iso-countries": "^7.6.0",
"image-type": "^4.1.0",
"long": "^5.2.3",
- "mqtt": "^5.0.3",
+ "mqtt": "^5.0.4",
"node-rsa": "^1.1.1",
"node-schedule": "^2.1.1",
"p-throttle": "^4.1.1",
- "protobufjs": "^7.2.4",
+ "protobufjs": "^7.2.5",
"qs": "^6.11.2",
"sweet-collections": "^1.1.0",
"tiny-typed-emitter": "^2.1.0",
@@ -2006,10 +2014,12 @@
}
},
"node_modules/mqtt": {
- "version": "5.0.3",
- "resolved": "https://registry.npmjs.org/mqtt/-/mqtt-5.0.3.tgz",
- "integrity": "sha512-XyCzdCNFm4XXBUV7HQPd1qXYdu7GC/H+wXr+RfaztwZ72/c3sD8yRivOBdh8iKWHc+EGawSeDIvXCnvEykcJVA==",
+ "version": "5.0.4",
+ "resolved": "https://registry.npmjs.org/mqtt/-/mqtt-5.0.4.tgz",
+ "integrity": "sha512-Ao+DA4QYzIFXTQPIF0WKJfeHM2BV0kbP1xt/POPyJY2dQ02dscUJonh94NG9/aw0Fbk2L8Ex0YxobDSKUyQvcQ==",
"dependencies": {
+ "@types/readable-stream": "^4.0.1",
+ "@types/ws": "^8.5.5",
"commist": "^3.2.0",
"concat-stream": "^2.0.0",
"debug": "^4.3.4",
@@ -2248,9 +2258,9 @@
}
},
"node_modules/prettier": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.0.2.tgz",
- "integrity": "sha512-o2YR9qtniXvwEZlOKbveKfDQVyqxbEIWn48Z8m3ZJjBjcCmUy3xZGIv+7AkaeuaTr6yPXJjwv07ZWlsWbEy1rQ==",
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.0.3.tgz",
+ "integrity": "sha512-L/4pUDMxcNa8R/EthV08Zt42WBO4h1rarVtK0K+QJG0X187OLo7l699jWw0GKuwzkPQ//jMFA/8Xm6Fh3J/DAg==",
"dev": true,
"bin": {
"prettier": "bin/prettier.cjs"
@@ -2276,9 +2286,9 @@
"integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag=="
},
"node_modules/protobufjs": {
- "version": "7.2.4",
- "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-7.2.4.tgz",
- "integrity": "sha512-AT+RJgD2sH8phPmCf7OUZR8xGdcJRga4+1cOaXJ64hvcSkVhNcRHOwIxUatPH15+nj59WAGTDv3LSGZPEQbJaQ==",
+ "version": "7.2.5",
+ "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-7.2.5.tgz",
+ "integrity": "sha512-gGXRSXvxQ7UiPgfw8gevrfRWcTlSbOFg+p/N+JVJEK5VhueL2miT6qTymqAmjr1Q5WbOCyJbyrk6JfWKwlFn6A==",
"hasInstallScript": true,
"dependencies": {
"@protobufjs/aspromise": "^1.1.2",
@@ -2460,23 +2470,9 @@
}
},
"node_modules/safe-buffer": {
- "version": "5.2.1",
- "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
- "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==",
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/feross"
- },
- {
- "type": "patreon",
- "url": "https://www.patreon.com/feross"
- },
- {
- "type": "consulting",
- "url": "https://feross.org/support"
- }
- ]
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
+ "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
},
"node_modules/safer-buffer": {
"version": "2.1.2",
@@ -2596,6 +2592,25 @@
"safe-buffer": "~5.2.0"
}
},
+ "node_modules/string_decoder/node_modules/safe-buffer": {
+ "version": "5.2.1",
+ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
+ "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
+ ]
+ },
"node_modules/strip-ansi": {
"version": "6.0.1",
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
@@ -2761,9 +2776,9 @@
"integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA=="
},
"node_modules/typescript": {
- "version": "5.1.6",
- "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.1.6.tgz",
- "integrity": "sha512-zaWCozRZ6DLEWAWFrVDz1H6FVXzUSfTy5FUMWsQlU8Ym5JP9eO4xkTIROFCQvhQf61z6O/G6ugw3SgAnvvm+HA==",
+ "version": "5.2.2",
+ "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.2.2.tgz",
+ "integrity": "sha512-mI4WrpHsbCIcwT9cF4FZvr80QUeKvsUsUvKDoR+X/7XHQH98xYD8YHZg7ANtz2GtZt/CBq2QJ0thkGJMHfqc1w==",
"dev": true,
"bin": {
"tsc": "bin/tsc",
@@ -2923,9 +2938,9 @@
}
},
"@eslint/js": {
- "version": "8.47.0",
- "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.47.0.tgz",
- "integrity": "sha512-P6omY1zv5MItm93kLM8s2vr1HICJH8v0dvddDhysbIuZ+vcjOHg5Zbkf1mTkcmi2JA9oBG2anOkRnW8WJTS8Og==",
+ "version": "8.48.0",
+ "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.48.0.tgz",
+ "integrity": "sha512-ZSjtmelB7IJfWD2Fvb7+Z+ChTIKWq6kjda95fLcQKNS5aheVHn4IkfgRQE3sIIzTcSLwLcLZUD9UBt+V7+h+Pw==",
"dev": true
},
"@humanwhocodes/config-array": {
@@ -3121,9 +3136,9 @@
}
},
"@types/node": {
- "version": "16.18.41",
- "resolved": "https://registry.npmjs.org/@types/node/-/node-16.18.41.tgz",
- "integrity": "sha512-YZJjn+Aaw0xihnpdImxI22jqGbp0DCgTFKRycygjGx/Y27NnWFJa5FJ7P+MRT3u07dogEeMVh70pWpbIQollTA=="
+ "version": "16.18.46",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-16.18.46.tgz",
+ "integrity": "sha512-Mnq3O9Xz52exs3mlxMcQuA7/9VFe/dXcrgAyfjLkABIqxXKOgBRjyazTxUbjsxDa4BP7hhPliyjVTP9RDP14xg=="
},
"@types/node-rsa": {
"version": "1.1.1",
@@ -3134,6 +3149,15 @@
"@types/node": "*"
}
},
+ "@types/readable-stream": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/@types/readable-stream/-/readable-stream-4.0.2.tgz",
+ "integrity": "sha512-hhzOsMEISZ+mX1l+01F0duYt9wHEbCGmjARed0PcQoVS5zAdu7u5YbWYuNGhw09M1MgGr3kfsto+ut/MnAdKqA==",
+ "requires": {
+ "@types/node": "*",
+ "safe-buffer": "~5.1.1"
+ }
+ },
"@types/responselike": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/@types/responselike/-/responselike-1.0.0.tgz",
@@ -3143,31 +3167,30 @@
}
},
"@types/semver": {
- "version": "7.5.0",
- "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.0.tgz",
- "integrity": "sha512-G8hZ6XJiHnuhQKR7ZmysCeJWE08o8T0AXtk5darsCaTVsYZhhgUrq53jizaR2FvsoeCwJhlmwTjkXBY5Pn/ZHw==",
+ "version": "7.5.1",
+ "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.1.tgz",
+ "integrity": "sha512-cJRQXpObxfNKkFAZbJl2yjWtJCqELQIdShsogr1d2MilP8dKD9TE/nEKHkJgUNHdGKCQaf9HbIynuV2csLGVLg==",
"dev": true
},
"@types/ws": {
"version": "8.5.5",
"resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.5.tgz",
"integrity": "sha512-lwhs8hktwxSjf9UaZ9tG5M03PGogvFaH8gUgLNbN9HKIg0dvv6q+gkSuJ8HN4/VbyxkuLzCjlN7GquQ0gUJfIg==",
- "dev": true,
"requires": {
"@types/node": "*"
}
},
"@typescript-eslint/eslint-plugin": {
- "version": "6.4.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.4.0.tgz",
- "integrity": "sha512-62o2Hmc7Gs3p8SLfbXcipjWAa6qk2wZGChXG2JbBtYpwSRmti/9KHLqfbLs9uDigOexG+3PaQ9G2g3201FWLKg==",
+ "version": "6.5.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.5.0.tgz",
+ "integrity": "sha512-2pktILyjvMaScU6iK3925uvGU87E+N9rh372uGZgiMYwafaw9SXq86U04XPq3UH6tzRvNgBsub6x2DacHc33lw==",
"dev": true,
"requires": {
"@eslint-community/regexpp": "^4.5.1",
- "@typescript-eslint/scope-manager": "6.4.0",
- "@typescript-eslint/type-utils": "6.4.0",
- "@typescript-eslint/utils": "6.4.0",
- "@typescript-eslint/visitor-keys": "6.4.0",
+ "@typescript-eslint/scope-manager": "6.5.0",
+ "@typescript-eslint/type-utils": "6.5.0",
+ "@typescript-eslint/utils": "6.5.0",
+ "@typescript-eslint/visitor-keys": "6.5.0",
"debug": "^4.3.4",
"graphemer": "^1.4.0",
"ignore": "^5.2.4",
@@ -3177,54 +3200,54 @@
}
},
"@typescript-eslint/parser": {
- "version": "6.4.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-6.4.0.tgz",
- "integrity": "sha512-I1Ah1irl033uxjxO9Xql7+biL3YD7w9IU8zF+xlzD/YxY6a4b7DYA08PXUUCbm2sEljwJF6ERFy2kTGAGcNilg==",
+ "version": "6.5.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-6.5.0.tgz",
+ "integrity": "sha512-LMAVtR5GN8nY0G0BadkG0XIe4AcNMeyEy3DyhKGAh9k4pLSMBO7rF29JvDBpZGCmp5Pgz5RLHP6eCpSYZJQDuQ==",
"dev": true,
"requires": {
- "@typescript-eslint/scope-manager": "6.4.0",
- "@typescript-eslint/types": "6.4.0",
- "@typescript-eslint/typescript-estree": "6.4.0",
- "@typescript-eslint/visitor-keys": "6.4.0",
+ "@typescript-eslint/scope-manager": "6.5.0",
+ "@typescript-eslint/types": "6.5.0",
+ "@typescript-eslint/typescript-estree": "6.5.0",
+ "@typescript-eslint/visitor-keys": "6.5.0",
"debug": "^4.3.4"
}
},
"@typescript-eslint/scope-manager": {
- "version": "6.4.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.4.0.tgz",
- "integrity": "sha512-TUS7vaKkPWDVvl7GDNHFQMsMruD+zhkd3SdVW0d7b+7Zo+bd/hXJQ8nsiUZMi1jloWo6c9qt3B7Sqo+flC1nig==",
+ "version": "6.5.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.5.0.tgz",
+ "integrity": "sha512-A8hZ7OlxURricpycp5kdPTH3XnjG85UpJS6Fn4VzeoH4T388gQJ/PGP4ole5NfKt4WDVhmLaQ/dBLNDC4Xl/Kw==",
"dev": true,
"requires": {
- "@typescript-eslint/types": "6.4.0",
- "@typescript-eslint/visitor-keys": "6.4.0"
+ "@typescript-eslint/types": "6.5.0",
+ "@typescript-eslint/visitor-keys": "6.5.0"
}
},
"@typescript-eslint/type-utils": {
- "version": "6.4.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-6.4.0.tgz",
- "integrity": "sha512-TvqrUFFyGY0cX3WgDHcdl2/mMCWCDv/0thTtx/ODMY1QhEiyFtv/OlLaNIiYLwRpAxAtOLOY9SUf1H3Q3dlwAg==",
+ "version": "6.5.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-6.5.0.tgz",
+ "integrity": "sha512-f7OcZOkRivtujIBQ4yrJNIuwyCQO1OjocVqntl9dgSIZAdKqicj3xFDqDOzHDlGCZX990LqhLQXWRnQvsapq8A==",
"dev": true,
"requires": {
- "@typescript-eslint/typescript-estree": "6.4.0",
- "@typescript-eslint/utils": "6.4.0",
+ "@typescript-eslint/typescript-estree": "6.5.0",
+ "@typescript-eslint/utils": "6.5.0",
"debug": "^4.3.4",
"ts-api-utils": "^1.0.1"
}
},
"@typescript-eslint/types": {
- "version": "6.4.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.4.0.tgz",
- "integrity": "sha512-+FV9kVFrS7w78YtzkIsNSoYsnOtrYVnKWSTVXoL1761CsCRv5wpDOINgsXpxD67YCLZtVQekDDyaxfjVWUJmmg==",
+ "version": "6.5.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.5.0.tgz",
+ "integrity": "sha512-eqLLOEF5/lU8jW3Bw+8auf4lZSbbljHR2saKnYqON12G/WsJrGeeDHWuQePoEf9ro22+JkbPfWQwKEC5WwLQ3w==",
"dev": true
},
"@typescript-eslint/typescript-estree": {
- "version": "6.4.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.4.0.tgz",
- "integrity": "sha512-iDPJArf/K2sxvjOR6skeUCNgHR/tCQXBsa+ee1/clRKr3olZjZ/dSkXPZjG6YkPtnW6p5D1egeEPMCW6Gn4yLA==",
+ "version": "6.5.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.5.0.tgz",
+ "integrity": "sha512-q0rGwSe9e5Kk/XzliB9h2LBc9tmXX25G0833r7kffbl5437FPWb2tbpIV9wAATebC/018pGa9fwPDuvGN+LxWQ==",
"dev": true,
"requires": {
- "@typescript-eslint/types": "6.4.0",
- "@typescript-eslint/visitor-keys": "6.4.0",
+ "@typescript-eslint/types": "6.5.0",
+ "@typescript-eslint/visitor-keys": "6.5.0",
"debug": "^4.3.4",
"globby": "^11.1.0",
"is-glob": "^4.0.3",
@@ -3233,27 +3256,27 @@
}
},
"@typescript-eslint/utils": {
- "version": "6.4.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-6.4.0.tgz",
- "integrity": "sha512-BvvwryBQpECPGo8PwF/y/q+yacg8Hn/2XS+DqL/oRsOPK+RPt29h5Ui5dqOKHDlbXrAeHUTnyG3wZA0KTDxRZw==",
+ "version": "6.5.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-6.5.0.tgz",
+ "integrity": "sha512-9nqtjkNykFzeVtt9Pj6lyR9WEdd8npPhhIPM992FWVkZuS6tmxHfGVnlUcjpUP2hv8r4w35nT33mlxd+Be1ACQ==",
"dev": true,
"requires": {
"@eslint-community/eslint-utils": "^4.4.0",
"@types/json-schema": "^7.0.12",
"@types/semver": "^7.5.0",
- "@typescript-eslint/scope-manager": "6.4.0",
- "@typescript-eslint/types": "6.4.0",
- "@typescript-eslint/typescript-estree": "6.4.0",
+ "@typescript-eslint/scope-manager": "6.5.0",
+ "@typescript-eslint/types": "6.5.0",
+ "@typescript-eslint/typescript-estree": "6.5.0",
"semver": "^7.5.4"
}
},
"@typescript-eslint/visitor-keys": {
- "version": "6.4.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.4.0.tgz",
- "integrity": "sha512-yJSfyT+uJm+JRDWYRYdCm2i+pmvXJSMtPR9Cq5/XQs4QIgNoLcoRtDdzsLbLsFM/c6um6ohQkg/MLxWvoIndJA==",
+ "version": "6.5.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.5.0.tgz",
+ "integrity": "sha512-yCB/2wkbv3hPsh02ZS8dFQnij9VVQXJMN/gbQsaaY+zxALkZnxa/wagvLEFsAWMPv7d7lxQmNsIzGU1w/T/WyA==",
"dev": true,
"requires": {
- "@typescript-eslint/types": "6.4.0",
+ "@typescript-eslint/types": "6.5.0",
"eslint-visitor-keys": "^3.4.1"
}
},
@@ -3649,15 +3672,15 @@
"dev": true
},
"eslint": {
- "version": "8.47.0",
- "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.47.0.tgz",
- "integrity": "sha512-spUQWrdPt+pRVP1TTJLmfRNJJHHZryFmptzcafwSvHsceV81djHOdnEeDmkdotZyLNjDhrOasNK8nikkoG1O8Q==",
+ "version": "8.48.0",
+ "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.48.0.tgz",
+ "integrity": "sha512-sb6DLeIuRXxeM1YljSe1KEx9/YYeZFQWcV8Rq9HfigmdDEugjLEVEa1ozDjL6YDjBpQHPJxJzze+alxi4T3OLg==",
"dev": true,
"requires": {
"@eslint-community/eslint-utils": "^4.2.0",
"@eslint-community/regexpp": "^4.6.1",
"@eslint/eslintrc": "^2.1.2",
- "@eslint/js": "^8.47.0",
+ "@eslint/js": "8.48.0",
"@humanwhocodes/config-array": "^0.11.10",
"@humanwhocodes/module-importer": "^1.0.1",
"@nodelib/fs.walk": "^1.2.8",
@@ -3758,9 +3781,9 @@
"dev": true
},
"eufy-security-client": {
- "version": "2.8.0",
- "resolved": "https://registry.npmjs.org/eufy-security-client/-/eufy-security-client-2.8.0.tgz",
- "integrity": "sha512-pS43fmB2d+YD+9RpK1DO1xHuvHI2q9Tz2TkkER+MhdkoOtHPPFUx34nTFJWMFRpBEPdpRUy4VnCrbn3nDF44LA==",
+ "version": "2.8.1",
+ "resolved": "https://registry.npmjs.org/eufy-security-client/-/eufy-security-client-2.8.1.tgz",
+ "integrity": "sha512-EbqOJZnFEqq0ruNN2KTh/rW4xubQdNnGA6uu65dnLPEU9uE9ZoRxXEP2hDDn9HVNxmGbWHmOuT5rNlDI1OvkUQ==",
"requires": {
"@cospired/i18n-iso-languages": "^4.1.0",
"crypto-js": "^4.1.1",
@@ -3770,11 +3793,11 @@
"i18n-iso-countries": "^7.6.0",
"image-type": "^4.1.0",
"long": "^5.2.3",
- "mqtt": "^5.0.3",
+ "mqtt": "^5.0.4",
"node-rsa": "^1.1.1",
"node-schedule": "^2.1.1",
"p-throttle": "^4.1.1",
- "protobufjs": "^7.2.4",
+ "protobufjs": "^7.2.5",
"qs": "^6.11.2",
"sweet-collections": "^1.1.0",
"tiny-typed-emitter": "^2.1.0",
@@ -4322,10 +4345,12 @@
"integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA=="
},
"mqtt": {
- "version": "5.0.3",
- "resolved": "https://registry.npmjs.org/mqtt/-/mqtt-5.0.3.tgz",
- "integrity": "sha512-XyCzdCNFm4XXBUV7HQPd1qXYdu7GC/H+wXr+RfaztwZ72/c3sD8yRivOBdh8iKWHc+EGawSeDIvXCnvEykcJVA==",
+ "version": "5.0.4",
+ "resolved": "https://registry.npmjs.org/mqtt/-/mqtt-5.0.4.tgz",
+ "integrity": "sha512-Ao+DA4QYzIFXTQPIF0WKJfeHM2BV0kbP1xt/POPyJY2dQ02dscUJonh94NG9/aw0Fbk2L8Ex0YxobDSKUyQvcQ==",
"requires": {
+ "@types/readable-stream": "^4.0.1",
+ "@types/ws": "^8.5.5",
"commist": "^3.2.0",
"concat-stream": "^2.0.0",
"debug": "^4.3.4",
@@ -4496,9 +4521,9 @@
"dev": true
},
"prettier": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.0.2.tgz",
- "integrity": "sha512-o2YR9qtniXvwEZlOKbveKfDQVyqxbEIWn48Z8m3ZJjBjcCmUy3xZGIv+7AkaeuaTr6yPXJjwv07ZWlsWbEy1rQ==",
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.0.3.tgz",
+ "integrity": "sha512-L/4pUDMxcNa8R/EthV08Zt42WBO4h1rarVtK0K+QJG0X187OLo7l699jWw0GKuwzkPQ//jMFA/8Xm6Fh3J/DAg==",
"dev": true
},
"process": {
@@ -4512,9 +4537,9 @@
"integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag=="
},
"protobufjs": {
- "version": "7.2.4",
- "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-7.2.4.tgz",
- "integrity": "sha512-AT+RJgD2sH8phPmCf7OUZR8xGdcJRga4+1cOaXJ64hvcSkVhNcRHOwIxUatPH15+nj59WAGTDv3LSGZPEQbJaQ==",
+ "version": "7.2.5",
+ "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-7.2.5.tgz",
+ "integrity": "sha512-gGXRSXvxQ7UiPgfw8gevrfRWcTlSbOFg+p/N+JVJEK5VhueL2miT6qTymqAmjr1Q5WbOCyJbyrk6JfWKwlFn6A==",
"requires": {
"@protobufjs/aspromise": "^1.1.2",
"@protobufjs/base64": "^1.1.2",
@@ -4630,9 +4655,9 @@
}
},
"safe-buffer": {
- "version": "5.2.1",
- "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
- "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ=="
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
+ "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
},
"safer-buffer": {
"version": "2.1.2",
@@ -4725,6 +4750,13 @@
"integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==",
"requires": {
"safe-buffer": "~5.2.0"
+ },
+ "dependencies": {
+ "safe-buffer": {
+ "version": "5.2.1",
+ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
+ "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ=="
+ }
}
},
"strip-ansi": {
@@ -4838,9 +4870,9 @@
"integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA=="
},
"typescript": {
- "version": "5.1.6",
- "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.1.6.tgz",
- "integrity": "sha512-zaWCozRZ6DLEWAWFrVDz1H6FVXzUSfTy5FUMWsQlU8Ym5JP9eO4xkTIROFCQvhQf61z6O/G6ugw3SgAnvvm+HA==",
+ "version": "5.2.2",
+ "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.2.2.tgz",
+ "integrity": "sha512-mI4WrpHsbCIcwT9cF4FZvr80QUeKvsUsUvKDoR+X/7XHQH98xYD8YHZg7ANtz2GtZt/CBq2QJ0thkGJMHfqc1w==",
"dev": true
},
"universalify": {
diff --git a/package.json b/package.json
index a2e729d..6ac8dbe 100755
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "eufy-security-ws",
- "version": "1.6.3",
+ "version": "1.6.4",
"description": "Node WebSocket server implementation to integrate Eufy Security devices",
"main": "dist/lib/index.js",
"bin": {
@@ -46,22 +46,22 @@
"dependencies": {
"ansi-colors": "^4.1.3",
"commander": "^11.0.0",
- "eufy-security-client": "^2.8.0",
+ "eufy-security-client": "^2.8.1",
"fs-extra": "^11.1.1",
"tslog": "^3.3.4",
"ws": "^8.13.0",
"date-and-time": "^3.0.2"
},
"devDependencies": {
- "@types/node": "^16.18.41",
+ "@types/node": "^16.18.46",
"@types/node-rsa": "^1.1.1",
"@types/ws": "^8.5.5",
- "@typescript-eslint/eslint-plugin": "^6.4.0",
- "@typescript-eslint/parser": "^6.4.0",
- "eslint": "^8.47.0",
+ "@typescript-eslint/eslint-plugin": "^6.5.0",
+ "@typescript-eslint/parser": "^6.5.0",
+ "eslint": "^8.48.0",
"eslint-config-prettier": "^9.0.0",
- "prettier": "3.0.2",
+ "prettier": "3.0.3",
"ts-node": "^10.9.1",
- "typescript": "^5.1.6"
+ "typescript": "^5.2.2"
}
}
diff --git a/src/lib/server.ts b/src/lib/server.ts
index eab3c8b..7232272 100755
--- a/src/lib/server.ts
+++ b/src/lib/server.ts
@@ -460,14 +460,14 @@ interface EufySecurityServerOptions {
logger?: Logger;
}
-export interface EufySecurityServer {
+export interface IEufySecurityServer {
start(): void;
destroy(): void;
on(event: "listening", listener: () => void): this;
on(event: "error", listener: (error: Error) => void): this;
}
-export class EufySecurityServer extends EventEmitter {
+export class EufySecurityServer extends EventEmitter implements IEufySecurityServer {
private server?: HttpServer;
private wsServer?: WebSocketServer;