From 1c3c7ba7fe64afc3254199fc91ef39bf3fb9a0ea Mon Sep 17 00:00:00 2001 From: Koushik Dutta Date: Sun, 12 Sep 2021 12:04:33 -0700 Subject: [PATCH] amcrest: refactor --- plugins/amcrest/package-lock.json | 70 +++++------------------------- plugins/amcrest/package.json | 13 ++---- plugins/amcrest/src/amcrest-api.ts | 9 ++-- 3 files changed, 18 insertions(+), 74 deletions(-) diff --git a/plugins/amcrest/package-lock.json b/plugins/amcrest/package-lock.json index faa3fd5e1..f78efe7b3 100644 --- a/plugins/amcrest/package-lock.json +++ b/plugins/amcrest/package-lock.json @@ -1,41 +1,39 @@ { "name": "@scrypted/amcrest", - "version": "0.0.21", + "version": "0.0.22", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "@scrypted/amcrest", - "version": "0.0.21", + "version": "0.0.22", "license": "Apache", "dependencies": { "@mhoc/axios-digest-auth": "^0.7.0", - "axios": "^0.21.1", - "multiparty": "^4.2.2", - "url-parse": "^1.4.7" - }, - "devDependencies": { "@scrypted/sdk": "file:../../sdk", "@types/multiparty": "^0.0.33", - "@types/node": "^16.7.10" + "multiparty": "^4.2.2" } }, "../../sdk": { "name": "@scrypted/sdk", - "version": "0.0.67", - "dev": true, + "version": "0.0.72", "license": "ISC", "dependencies": { "@babel/core": "^7.2.2", "@babel/plugin-proposal-class-properties": "^7.4.4", + "@babel/plugin-proposal-optional-chaining": "^7.13.12", "@babel/plugin-transform-modules-commonjs": "^7.2.0", "@babel/plugin-transform-typescript": "^7.15.0", "@babel/polyfill": "^7.2.5", "@babel/preset-env": "^7.2.3", "@babel/preset-typescript": "^7.15.0", + "@types/node": "^16.6.1", "adm-zip": "^0.4.13", "axios": "^0.21.1", "babel-loader": "^8.0.4", + "babel-plugin-const-enum": "^1.1.0", + "babel-plugin-minify-dead-code-elimination": "^0.5.1", "babel-polyfill": "^6.26.0", "babel-template": "^6.26.0", "browserify-buffertools": "^1.0.2", @@ -64,12 +62,6 @@ "scrypted-package-json": "bin/scrypted-package-json.js", "scrypted-readme": "bin/scrypted-readme.js", "scrypted-webpack": "bin/scrypted-webpack.js" - }, - "devDependencies": { - "@babel/plugin-proposal-optional-chaining": "^7.13.12", - "@types/node": "^16.6.1", - "babel-plugin-const-enum": "^1.1.0", - "babel-plugin-minify-dead-code-elimination": "^0.5.1" } }, "../sdk": { @@ -91,7 +83,6 @@ "version": "0.0.33", "resolved": "https://registry.npmjs.org/@types/multiparty/-/multiparty-0.0.33.tgz", "integrity": "sha512-Il6cJUpSqgojT7NxbVJUvXkCblm50/yEJYtblISDsNIeNYf4yMAhdizzidUk6h8pJ8yhwK/3Fkb+3Dwcgtwl8w==", - "dev": true, "dependencies": { "@types/node": "*" } @@ -99,8 +90,7 @@ "node_modules/@types/node": { "version": "16.7.10", "resolved": "https://registry.npmjs.org/@types/node/-/node-16.7.10.tgz", - "integrity": "sha512-S63Dlv4zIPb8x6MMTgDq5WWRJQe56iBEY0O3SOFA9JrRienkOVDXSXBjjJw6HTNQYSE2JI6GMCR6LVbIMHJVvA==", - "dev": true + "integrity": "sha512-S63Dlv4zIPb8x6MMTgDq5WWRJQe56iBEY0O3SOFA9JrRienkOVDXSXBjjJw6HTNQYSE2JI6GMCR6LVbIMHJVvA==" }, "node_modules/axios": { "version": "0.21.1", @@ -170,11 +160,6 @@ "node": ">= 0.10" } }, - "node_modules/querystringify": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.1.1.tgz", - "integrity": "sha512-w7fLxIRCRT7U8Qu53jQnJyPkYZIaR4n5151KMfcJlO/A9397Wxb1amJvROTK6TOnp7PfoAmg/qXiNHI+08jRfA==" - }, "node_modules/random-bytes": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/random-bytes/-/random-bytes-1.0.0.tgz", @@ -183,11 +168,6 @@ "node": ">= 0.8" } }, - "node_modules/requires-port": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", - "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=" - }, "node_modules/safe-buffer": { "version": "5.2.1", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", @@ -238,15 +218,6 @@ "engines": { "node": ">= 0.8" } - }, - "node_modules/url-parse": { - "version": "1.4.7", - "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.4.7.tgz", - "integrity": "sha512-d3uaVyzDB9tQoSXFvuSUNFibTd9zxd2bkVrDRvF5TmvWWQwqE4lgYJ5m+x1DbecWkw+LK4RNl2CU1hHuOKPVlg==", - "dependencies": { - "querystringify": "^2.1.1", - "requires-port": "^1.0.0" - } } }, "dependencies": { @@ -301,7 +272,6 @@ "version": "0.0.33", "resolved": "https://registry.npmjs.org/@types/multiparty/-/multiparty-0.0.33.tgz", "integrity": "sha512-Il6cJUpSqgojT7NxbVJUvXkCblm50/yEJYtblISDsNIeNYf4yMAhdizzidUk6h8pJ8yhwK/3Fkb+3Dwcgtwl8w==", - "dev": true, "requires": { "@types/node": "*" } @@ -309,8 +279,7 @@ "@types/node": { "version": "16.7.10", "resolved": "https://registry.npmjs.org/@types/node/-/node-16.7.10.tgz", - "integrity": "sha512-S63Dlv4zIPb8x6MMTgDq5WWRJQe56iBEY0O3SOFA9JrRienkOVDXSXBjjJw6HTNQYSE2JI6GMCR6LVbIMHJVvA==", - "dev": true + "integrity": "sha512-S63Dlv4zIPb8x6MMTgDq5WWRJQe56iBEY0O3SOFA9JrRienkOVDXSXBjjJw6HTNQYSE2JI6GMCR6LVbIMHJVvA==" }, "axios": { "version": "0.21.1", @@ -357,21 +326,11 @@ "uid-safe": "2.1.5" } }, - "querystringify": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.1.1.tgz", - "integrity": "sha512-w7fLxIRCRT7U8Qu53jQnJyPkYZIaR4n5151KMfcJlO/A9397Wxb1amJvROTK6TOnp7PfoAmg/qXiNHI+08jRfA==" - }, "random-bytes": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/random-bytes/-/random-bytes-1.0.0.tgz", "integrity": "sha1-T2ih3Arli9P7lYSMMDJNt11kNgs=" }, - "requires-port": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", - "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=" - }, "safe-buffer": { "version": "5.2.1", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", @@ -399,15 +358,6 @@ "requires": { "random-bytes": "~1.0.0" } - }, - "url-parse": { - "version": "1.4.7", - "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.4.7.tgz", - "integrity": "sha512-d3uaVyzDB9tQoSXFvuSUNFibTd9zxd2bkVrDRvF5TmvWWQwqE4lgYJ5m+x1DbecWkw+LK4RNl2CU1hHuOKPVlg==", - "requires": { - "querystringify": "^2.1.1", - "requires-port": "^1.0.0" - } } } } diff --git a/plugins/amcrest/package.json b/plugins/amcrest/package.json index b2ee6ec7d..ad56695bf 100644 --- a/plugins/amcrest/package.json +++ b/plugins/amcrest/package.json @@ -1,6 +1,6 @@ { "name": "@scrypted/amcrest", - "version": "0.0.21", + "version": "0.0.22", "description": "Amcrest Plugin for Scrypted", "author": "Scrypted", "license": "Apache", @@ -28,15 +28,10 @@ "Settings" ] }, - "devDependencies": { - "@scrypted/sdk": "file:../../sdk", - "@types/multiparty": "^0.0.33", - "@types/node": "^16.7.10" - }, "dependencies": { + "@types/multiparty": "^0.0.33", + "@scrypted/sdk": "file:../../sdk", "@mhoc/axios-digest-auth": "^0.7.0", - "axios": "^0.21.1", - "multiparty": "^4.2.2", - "url-parse": "^1.4.7" + "multiparty": "^4.2.2" } } diff --git a/plugins/amcrest/src/amcrest-api.ts b/plugins/amcrest/src/amcrest-api.ts index edeeb4dda..3004e62de 100644 --- a/plugins/amcrest/src/amcrest-api.ts +++ b/plugins/amcrest/src/amcrest-api.ts @@ -1,7 +1,6 @@ import AxiosDigestAuth from '@mhoc/axios-digest-auth'; -import { Socket } from 'net'; -import { PassThrough, Readable, Stream } from 'stream'; -import {Form, Part} from 'multiparty'; +import { PassThrough, Readable } from 'stream'; +import { Form } from 'multiparty'; import { once } from 'events'; export enum AmcrestEvent { @@ -11,7 +10,7 @@ export enum AmcrestEvent { AudioStop = "Code=AudioMutation;action=Stop", } -async function readEvent(readable: Readable): Promise { +async function readEvent(readable: Readable): Promise { const pt = new PassThrough(); readable.pipe(pt); const buffers: Buffer[] = []; @@ -49,7 +48,7 @@ export class AmcrestCameraClient { } async* listenEvents(): AsyncGenerator { - const response = await this.digestAuth.request({ + const response = await this.digestAuth.request({ method: "GET", responseType: 'stream', url: `http://${this.ip}/cgi-bin/eventManager.cgi?action=attach&codes=[VideoMotion,AudioMutation]`,