diff --git a/external/werift b/external/werift index dee040447..6456377ba 160000 --- a/external/werift +++ b/external/werift @@ -1 +1 @@ -Subproject commit dee040447b274e470bfaa55d94340b74863dd0b6 +Subproject commit 6456377baa15d709d9959a8c461f26b0dcc16ed6 diff --git a/plugins/webrtc/package-lock.json b/plugins/webrtc/package-lock.json index 38ddb8bdd..70f5e61ae 100644 --- a/plugins/webrtc/package-lock.json +++ b/plugins/webrtc/package-lock.json @@ -1,20 +1,20 @@ { "name": "@scrypted/webrtc", - "version": "0.2.33", + "version": "0.2.37", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "@scrypted/webrtc", - "version": "0.2.33", + "version": "0.2.37", "dependencies": { "@scrypted/common": "file:../../common", "@scrypted/sdk": "file:../../sdk", - "ip": "^1.1.5" + "ip": "^2.0.1" }, "devDependencies": { - "@types/ip": "^1.1.0", - "@types/node": "^18.11.18" + "@types/ip": "^1.1.3", + "@types/node": "^22.1.0" } }, "../../common": { @@ -83,23 +83,22 @@ }, "../../sdk": { "name": "@scrypted/sdk", - "version": "0.3.45", + "version": "0.3.50", "license": "ISC", "dependencies": { - "@babel/preset-typescript": "^7.18.6", - "adm-zip": "^0.4.13", - "axios": "^1.6.5", - "babel-loader": "^9.1.0", - "babel-plugin-const-enum": "^1.1.0", - "esbuild": "^0.15.9", + "@babel/preset-typescript": "^7.24.7", + "adm-zip": "^0.5.14", + "axios": "^1.7.3", + "babel-loader": "^9.1.3", + "babel-plugin-const-enum": "^1.2.0", "ncp": "^2.0.0", "raw-loader": "^4.0.2", - "rimraf": "^3.0.2", - "tmp": "^0.2.1", - "ts-loader": "^9.4.2", - "typescript": "^4.9.4", - "webpack": "^5.75.0", - "webpack-bundle-analyzer": "^4.5.0" + "rimraf": "^6.0.1", + "tmp": "^0.2.3", + "ts-loader": "^9.5.1", + "typescript": "^5.5.4", + "webpack": "^5.93.0", + "webpack-bundle-analyzer": "^4.10.2" }, "bin": { "scrypted-changelog": "bin/scrypted-changelog.js", @@ -111,11 +110,11 @@ "scrypted-webpack": "bin/scrypted-webpack.js" }, "devDependencies": { - "@types/node": "^18.11.18", - "@types/stringify-object": "^4.0.0", + "@types/node": "^22.1.0", + "@types/stringify-object": "^4.0.5", "stringify-object": "^3.3.0", - "ts-node": "^10.4.0", - "typedoc": "^0.23.21" + "ts-node": "^10.9.2", + "typedoc": "^0.26.5" } }, "node_modules/@scrypted/common": { @@ -127,24 +126,33 @@ "link": true }, "node_modules/@types/ip": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@types/ip/-/ip-1.1.0.tgz", - "integrity": "sha512-dwNe8gOoF70VdL6WJBwVHtQmAX4RMd62M+mAB9HQFjG1/qiCLM/meRy95Pd14FYBbEDwCq7jgJs89cHpLBu4HQ==", + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/@types/ip/-/ip-1.1.3.tgz", + "integrity": "sha512-64waoJgkXFTYnCYDUWgSATJ/dXEBanVkaP5d4Sbk7P6U7cTTMhxVyROTckc6JKdwCrgnAjZMn0k3177aQxtDEA==", "dev": true, "dependencies": { "@types/node": "*" } }, "node_modules/@types/node": { - "version": "18.11.18", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.11.18.tgz", - "integrity": "sha512-DHQpWGjyQKSHj3ebjFI/wRKcqQcdR+MoFBygntYOZytCqNfkd2ZC4ARDJ2DQqhjH5p85Nnd3jhUJIXrszFX/JA==", - "dev": true + "version": "22.1.0", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.1.0.tgz", + "integrity": "sha512-AOmuRF0R2/5j1knA3c6G3HOk523Ga+l+ZXltX8SF1+5oqcXijjfTd8fY3XRZqSihEu9XhtQnKYLmkFaoxgsJHw==", + "dev": true, + "dependencies": { + "undici-types": "~6.13.0" + } }, "node_modules/ip": { - "version": "1.1.9", - "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.9.tgz", - "integrity": "sha512-cyRxvOEpNHNtchU3Ln9KC/auJgup87llfQpQ+t5ghoC/UhL16SWzbueiCsdTnWmqAWl7LadfuwhlqmtOaqMHdQ==" + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/ip/-/ip-2.0.1.tgz", + "integrity": "sha512-lJUL9imLTNi1ZfXT+DU6rBBdbiKGBuay9B6xGSPVjUeQwaH1RIGqef8RZkUtHioLmSNpPR5M4HVKJGm1j8FWVQ==" + }, + "node_modules/undici-types": { + "version": "6.13.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.13.0.tgz", + "integrity": "sha512-xtFJHudx8S2DSoujjMd1WeWvn7KKWFRESZTMeL1RptAYERu29D6jphMjjY+vn96jvN3kVPDNxU/E13VTaXj6jg==", + "dev": true } }, "dependencies": { @@ -162,46 +170,54 @@ "@scrypted/sdk": { "version": "file:../../sdk", "requires": { - "@babel/preset-typescript": "^7.18.6", - "@types/node": "^18.11.18", - "@types/stringify-object": "^4.0.0", - "adm-zip": "^0.4.13", - "axios": "^1.6.5", - "babel-loader": "^9.1.0", - "babel-plugin-const-enum": "^1.1.0", - "esbuild": "^0.15.9", + "@babel/preset-typescript": "^7.24.7", + "@types/node": "^22.1.0", + "@types/stringify-object": "^4.0.5", + "adm-zip": "^0.5.14", + "axios": "^1.7.3", + "babel-loader": "^9.1.3", + "babel-plugin-const-enum": "^1.2.0", "ncp": "^2.0.0", "raw-loader": "^4.0.2", - "rimraf": "^3.0.2", + "rimraf": "^6.0.1", "stringify-object": "^3.3.0", - "tmp": "^0.2.1", - "ts-loader": "^9.4.2", - "ts-node": "^10.4.0", - "typedoc": "^0.23.21", - "typescript": "^4.9.4", - "webpack": "^5.75.0", - "webpack-bundle-analyzer": "^4.5.0" + "tmp": "^0.2.3", + "ts-loader": "^9.5.1", + "ts-node": "^10.9.2", + "typedoc": "^0.26.5", + "typescript": "^5.5.4", + "webpack": "^5.93.0", + "webpack-bundle-analyzer": "^4.10.2" } }, "@types/ip": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@types/ip/-/ip-1.1.0.tgz", - "integrity": "sha512-dwNe8gOoF70VdL6WJBwVHtQmAX4RMd62M+mAB9HQFjG1/qiCLM/meRy95Pd14FYBbEDwCq7jgJs89cHpLBu4HQ==", + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/@types/ip/-/ip-1.1.3.tgz", + "integrity": "sha512-64waoJgkXFTYnCYDUWgSATJ/dXEBanVkaP5d4Sbk7P6U7cTTMhxVyROTckc6JKdwCrgnAjZMn0k3177aQxtDEA==", "dev": true, "requires": { "@types/node": "*" } }, "@types/node": { - "version": "18.11.18", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.11.18.tgz", - "integrity": "sha512-DHQpWGjyQKSHj3ebjFI/wRKcqQcdR+MoFBygntYOZytCqNfkd2ZC4ARDJ2DQqhjH5p85Nnd3jhUJIXrszFX/JA==", - "dev": true + "version": "22.1.0", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.1.0.tgz", + "integrity": "sha512-AOmuRF0R2/5j1knA3c6G3HOk523Ga+l+ZXltX8SF1+5oqcXijjfTd8fY3XRZqSihEu9XhtQnKYLmkFaoxgsJHw==", + "dev": true, + "requires": { + "undici-types": "~6.13.0" + } }, "ip": { - "version": "1.1.9", - "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.9.tgz", - "integrity": "sha512-cyRxvOEpNHNtchU3Ln9KC/auJgup87llfQpQ+t5ghoC/UhL16SWzbueiCsdTnWmqAWl7LadfuwhlqmtOaqMHdQ==" + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/ip/-/ip-2.0.1.tgz", + "integrity": "sha512-lJUL9imLTNi1ZfXT+DU6rBBdbiKGBuay9B6xGSPVjUeQwaH1RIGqef8RZkUtHioLmSNpPR5M4HVKJGm1j8FWVQ==" + }, + "undici-types": { + "version": "6.13.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.13.0.tgz", + "integrity": "sha512-xtFJHudx8S2DSoujjMd1WeWvn7KKWFRESZTMeL1RptAYERu29D6jphMjjY+vn96jvN3kVPDNxU/E13VTaXj6jg==", + "dev": true } } } diff --git a/plugins/webrtc/package.json b/plugins/webrtc/package.json index 7febdf9d5..5af0384c7 100644 --- a/plugins/webrtc/package.json +++ b/plugins/webrtc/package.json @@ -1,6 +1,6 @@ { "name": "@scrypted/webrtc", - "version": "0.2.33", + "version": "0.2.37", "scripts": { "scrypted-setup-project": "scrypted-setup-project", "prescrypted-setup-project": "scrypted-package-json", @@ -33,10 +33,10 @@ "dependencies": { "@scrypted/common": "file:../../common", "@scrypted/sdk": "file:../../sdk", - "ip": "^1.1.5" + "ip": "^2.0.1" }, "devDependencies": { - "@types/ip": "^1.1.0", - "@types/node": "^18.11.18" + "@types/ip": "^1.1.3", + "@types/node": "^22.1.0" } } diff --git a/plugins/webrtc/src/main.ts b/plugins/webrtc/src/main.ts index 9abb7b0f1..6debf432a 100644 --- a/plugins/webrtc/src/main.ts +++ b/plugins/webrtc/src/main.ts @@ -20,6 +20,7 @@ import { WebRTCCamera } from "./webrtc-camera"; import { MediaStreamTrack, PeerConfig, RTCPeerConnection, defaultPeerConfig } from './werift'; import { WeriftSignalingSession } from './werift-signaling-session'; import { RTCPeerConnectionPipe, createRTCPeerConnectionSource, getRTCMediaStreamOptions } from './wrtc-to-rtsp'; +import worker_threads from 'worker_threads'; const { mediaManager, systemManager, deviceManager } = sdk; @@ -29,7 +30,7 @@ defaultPeerConfig.headerExtensions = { audio: [], }; -const zygote = createZygote>(); +const zygote = worker_threads.isMainThread ? createZygote>() : undefined; class WebRTCMixin extends SettingsMixinDeviceBase implements RTCSignalingChannel, VideoCamera, Intercom { storageSettings = new StorageSettings(this, {}); diff --git a/plugins/webrtc/tsconfig.json b/plugins/webrtc/tsconfig.json index 34a847ad8..ba9b4d395 100644 --- a/plugins/webrtc/tsconfig.json +++ b/plugins/webrtc/tsconfig.json @@ -1,6 +1,6 @@ { "compilerOptions": { - "module": "commonjs", + "module": "Node16", "target": "ES2021", "resolveJsonModule": true, "moduleResolution": "Node16",