From 857cc656bd2d674dbbd84b7c73c1f6beb26e4ff5 Mon Sep 17 00:00:00 2001 From: Koushik Dutta Date: Wed, 20 Mar 2024 23:44:13 -0700 Subject: [PATCH] client: update --- packages/client/package-lock.json | 32 +++++++++++++++---------------- packages/client/package.json | 8 ++++---- packages/client/src/index.ts | 28 ++++++++++++++++----------- 3 files changed, 37 insertions(+), 31 deletions(-) diff --git a/packages/client/package-lock.json b/packages/client/package-lock.json index 072378699a..133431ee7f 100644 --- a/packages/client/package-lock.json +++ b/packages/client/package-lock.json @@ -9,16 +9,16 @@ "version": "1.3.5", "license": "ISC", "dependencies": { - "@scrypted/types": "^0.3.15", + "@scrypted/types": "^0.3.27", "engine.io-client": "^6.5.3", - "follow-redirects": "^1.15.4", + "follow-redirects": "^1.15.6", "rimraf": "^5.0.5" }, "devDependencies": { "@types/ip": "^1.1.3", - "@types/node": "^20.10.8", + "@types/node": "^20.11.30", "ts-node": "^10.9.2", - "typescript": "^5.3.3" + "typescript": "^5.4.3" } }, "node_modules/@cspotcode/source-map-support": { @@ -84,9 +84,9 @@ } }, "node_modules/@scrypted/types": { - "version": "0.3.15", - "resolved": "https://registry.npmjs.org/@scrypted/types/-/types-0.3.15.tgz", - "integrity": "sha512-NTJn3z+G/DDePBZ6OgcFCQK2EI9Wecv0o9ZR3DHvnX5yaH1L6JJQxRIRTHzVmzl+ZgfnG1PjbcHzlQ68EF+xuQ==" + "version": "0.3.27", + "resolved": "https://registry.npmjs.org/@scrypted/types/-/types-0.3.27.tgz", + "integrity": "sha512-XNtlqzqt6rHyNYwWrz3iiickh1h9ACwcLC3rfwxUbFk/Vq/UbDZgp0kGyj9UW6eLVNHzWFSE2dKqyyDS6V2KAg==" }, "node_modules/@socket.io/component-emitter": { "version": "3.1.0", @@ -127,9 +127,9 @@ } }, "node_modules/@types/node": { - "version": "20.10.8", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.10.8.tgz", - "integrity": "sha512-f8nQs3cLxbAFc00vEU59yf9UyGUftkPaLGfvbVOIDdx2i1b8epBqj2aNGyP19fiyXWvlmZ7qC1XLjAzw/OKIeA==", + "version": "20.11.30", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.11.30.tgz", + "integrity": "sha512-dHM6ZxwlmuZaRmUPfv1p+KrdD1Dci04FbdEm/9wEMouFqxYoFl5aMkt0VMAUtYRQDyYvD41WJLukhq/ha3YuTw==", "dev": true, "dependencies": { "undici-types": "~5.26.4" @@ -288,9 +288,9 @@ } }, "node_modules/follow-redirects": { - "version": "1.15.4", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.4.tgz", - "integrity": "sha512-Cr4D/5wlrb0z9dgERpUL3LrmPKVDsETIJhaCMeDfuFYcqa5bldGV6wBsAN6X/vxlXQtFBMrXdXxdL8CbDTGniw==", + "version": "1.15.6", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.6.tgz", + "integrity": "sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==", "funding": [ { "type": "individual", @@ -615,9 +615,9 @@ } }, "node_modules/typescript": { - "version": "5.3.3", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.3.3.tgz", - "integrity": "sha512-pXWcraxM0uxAS+tN0AG/BF2TyqmHO014Z070UsJ+pFvYuRSq8KH8DmWpnbXe0pEPDHXZV3FcAbJkijJ5oNEnWw==", + "version": "5.4.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.4.3.tgz", + "integrity": "sha512-KrPd3PKaCLr78MalgiwJnA25Nm8HAmdwN3mYUYZgG/wizIo9EainNVQI9/yDavtVFRN2h3k8uf3GLHuhDMgEHg==", "dev": true, "bin": { "tsc": "bin/tsc", diff --git a/packages/client/package.json b/packages/client/package.json index 28933cb14b..3cb5225e00 100644 --- a/packages/client/package.json +++ b/packages/client/package.json @@ -13,14 +13,14 @@ "license": "ISC", "devDependencies": { "@types/ip": "^1.1.3", - "@types/node": "^20.10.8", + "@types/node": "^20.11.30", "ts-node": "^10.9.2", - "typescript": "^5.3.3" + "typescript": "^5.4.3" }, "dependencies": { - "@scrypted/types": "^0.3.15", + "@scrypted/types": "^0.3.27", "engine.io-client": "^6.5.3", - "follow-redirects": "^1.15.4", + "follow-redirects": "^1.15.6", "rimraf": "^5.0.5" } } diff --git a/packages/client/src/index.ts b/packages/client/src/index.ts index 9f47d1fe4b..553359aa01 100644 --- a/packages/client/src/index.ts +++ b/packages/client/src/index.ts @@ -1,4 +1,4 @@ -import { MediaObjectOptions, RTCConnectionManagement, RTCSignalingSession, ScryptedStatic } from "@scrypted/types"; +import { MediaObjectCreateOptions, RTCConnectionManagement, RTCSignalingSession, ScryptedStatic } from "@scrypted/types"; import * as eio from 'engine.io-client'; import { SocketOptions } from 'engine.io-client'; import { Deferred } from "../../../common/src/deferred"; @@ -316,15 +316,9 @@ export async function connectScryptedClient(options: ScryptedClientOptions): Pro } } - // the alternate urls must have a valid response. - const loginCheckPromises = [...urlsToCheck].map(async baseUrl => { - const loginCheck = await checkScryptedClientLogin({ - baseUrl, - previousLoginResult: options?.previousLoginResult, - }); - + function validateLoginResult(loginCheck: Awaited>) { if (loginCheck.error || loginCheck.redirect) - throw new Error('login error'); + throw new ScryptedClientLoginError(loginCheck); if (!loginCheck.authorization || !loginCheck.username || !loginCheck.queryToken) { console.error(loginCheck); @@ -332,12 +326,22 @@ export async function connectScryptedClient(options: ScryptedClientOptions): Pro } return loginCheck; + } + + // the alternate urls must have a valid response. + const loginCheckPromises = [...urlsToCheck].map(baseUrl => { + return checkScryptedClientLogin({ + baseUrl, + previousLoginResult: options?.previousLoginResult, + }) + .then(validateLoginResult); }); const baseUrlCheck = checkScryptedClientLogin({ baseUrl, previousLoginResult: options?.previousLoginResult, - }); + }) + .then(validateLoginResult); loginCheckPromises.push(baseUrlCheck); let loginCheck: Awaited>; @@ -687,7 +691,7 @@ export async function connectScryptedClient(options: ScryptedClientOptions): Pro } = scrypted; console.log('api attached', Date.now() - start); - mediaManager.createMediaObject = async(data: any, mimeType: string, options: T) => { + mediaManager.createMediaObject = async(data: any, mimeType: string, options: T) => { return new MediaObject(mimeType, data, options) as any; } @@ -866,6 +870,8 @@ export async function connectScryptedClient(options: ScryptedClientOptions): Pro cloudAddress, }, connectRPCObject, + fork: undefined, + connect: undefined, } socket.on('close', () => {