@scrypted/server 0.115.30 → 0.115.32
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bin/electron-get.d.ts +3 -0
- package/bin/electron-get.js +60 -0
- package/bin/postinstall +2 -0
- package/dist/plugin/media.js +5 -2
- package/dist/plugin/media.js.map +1 -1
- package/dist/plugin/runtime/electron-worker.d.ts +1 -1
- package/dist/plugin/runtime/electron-worker.js +12 -5
- package/dist/plugin/runtime/electron-worker.js.map +1 -1
- package/dist/plugin/runtime/runtime-host.js +6 -1
- package/dist/plugin/runtime/runtime-host.js.map +1 -1
- package/electron/bin/31.4.0/target/Electron.app/Contents/Frameworks/Electron Framework.framework/Versions/A/Electron Framework +0 -0
- package/electron/bin/31.4.0/target/Electron.app/Contents/Frameworks/Electron Framework.framework/Versions/A/Helpers/chrome_crashpad_handler +0 -0
- package/electron/bin/31.4.0/target/Electron.app/Contents/Frameworks/Electron Framework.framework/Versions/A/Libraries/libEGL.dylib +0 -0
- package/electron/bin/31.4.0/target/Electron.app/Contents/Frameworks/Electron Framework.framework/Versions/A/Libraries/libGLESv2.dylib +0 -0
- package/electron/bin/31.4.0/target/Electron.app/Contents/Frameworks/Electron Framework.framework/Versions/A/Libraries/libffmpeg.dylib +0 -0
- package/electron/bin/31.4.0/target/Electron.app/Contents/Frameworks/Electron Framework.framework/Versions/A/Libraries/libvk_swiftshader.dylib +0 -0
- package/electron/bin/31.4.0/target/Electron.app/Contents/Frameworks/Electron Framework.framework/Versions/A/Libraries/vk_swiftshader_icd.json +1 -0
- package/electron/bin/31.4.0/target/Electron.app/Contents/Frameworks/Electron Framework.framework/Versions/A/Resources/Info.plist +33 -0
- package/electron/bin/31.4.0/target/Electron.app/Contents/Frameworks/Electron Framework.framework/Versions/A/Resources/MainMenu.nib +0 -0
- package/electron/bin/31.4.0/target/Electron.app/Contents/Frameworks/Electron Framework.framework/Versions/A/Resources/af.lproj/locale.pak +0 -0
- package/electron/bin/31.4.0/target/Electron.app/Contents/Frameworks/Electron Framework.framework/Versions/A/Resources/am.lproj/locale.pak +0 -0
- package/electron/bin/31.4.0/target/Electron.app/Contents/Frameworks/Electron Framework.framework/Versions/A/Resources/ar.lproj/locale.pak +0 -0
- package/electron/bin/31.4.0/target/Electron.app/Contents/Frameworks/Electron Framework.framework/Versions/A/Resources/bg.lproj/locale.pak +0 -0
- package/electron/bin/31.4.0/target/Electron.app/Contents/Frameworks/Electron Framework.framework/Versions/A/Resources/bn.lproj/locale.pak +0 -0
- package/electron/bin/31.4.0/target/Electron.app/Contents/Frameworks/Electron Framework.framework/Versions/A/Resources/ca.lproj/locale.pak +0 -0
- package/electron/bin/31.4.0/target/Electron.app/Contents/Frameworks/Electron Framework.framework/Versions/A/Resources/chrome_100_percent.pak +0 -0
- package/electron/bin/31.4.0/target/Electron.app/Contents/Frameworks/Electron Framework.framework/Versions/A/Resources/chrome_200_percent.pak +0 -0
- package/electron/bin/31.4.0/target/Electron.app/Contents/Frameworks/Electron Framework.framework/Versions/A/Resources/cs.lproj/locale.pak +0 -0
- package/electron/bin/31.4.0/target/Electron.app/Contents/Frameworks/Electron Framework.framework/Versions/A/Resources/da.lproj/locale.pak +0 -0
- package/electron/bin/31.4.0/target/Electron.app/Contents/Frameworks/Electron Framework.framework/Versions/A/Resources/de.lproj/locale.pak +0 -0
- package/electron/bin/31.4.0/target/Electron.app/Contents/Frameworks/Electron Framework.framework/Versions/A/Resources/el.lproj/locale.pak +0 -0
- package/electron/bin/31.4.0/target/Electron.app/Contents/Frameworks/Electron Framework.framework/Versions/A/Resources/en.lproj/locale.pak +0 -0
- package/electron/bin/31.4.0/target/Electron.app/Contents/Frameworks/Electron Framework.framework/Versions/A/Resources/en_GB.lproj/locale.pak +0 -0
- package/electron/bin/31.4.0/target/Electron.app/Contents/Frameworks/Electron Framework.framework/Versions/A/Resources/es.lproj/locale.pak +0 -0
- package/electron/bin/31.4.0/target/Electron.app/Contents/Frameworks/Electron Framework.framework/Versions/A/Resources/es_419.lproj/locale.pak +0 -0
- package/electron/bin/31.4.0/target/Electron.app/Contents/Frameworks/Electron Framework.framework/Versions/A/Resources/et.lproj/locale.pak +0 -0
- package/electron/bin/31.4.0/target/Electron.app/Contents/Frameworks/Electron Framework.framework/Versions/A/Resources/fa.lproj/locale.pak +0 -0
- package/electron/bin/31.4.0/target/Electron.app/Contents/Frameworks/Electron Framework.framework/Versions/A/Resources/fi.lproj/locale.pak +0 -0
- package/electron/bin/31.4.0/target/Electron.app/Contents/Frameworks/Electron Framework.framework/Versions/A/Resources/fil.lproj/locale.pak +0 -0
- package/electron/bin/31.4.0/target/Electron.app/Contents/Frameworks/Electron Framework.framework/Versions/A/Resources/fr.lproj/locale.pak +0 -0
- package/electron/bin/31.4.0/target/Electron.app/Contents/Frameworks/Electron Framework.framework/Versions/A/Resources/gu.lproj/locale.pak +0 -0
- package/electron/bin/31.4.0/target/Electron.app/Contents/Frameworks/Electron Framework.framework/Versions/A/Resources/he.lproj/locale.pak +0 -0
- package/electron/bin/31.4.0/target/Electron.app/Contents/Frameworks/Electron Framework.framework/Versions/A/Resources/hi.lproj/locale.pak +0 -0
- package/electron/bin/31.4.0/target/Electron.app/Contents/Frameworks/Electron Framework.framework/Versions/A/Resources/hr.lproj/locale.pak +0 -0
- package/electron/bin/31.4.0/target/Electron.app/Contents/Frameworks/Electron Framework.framework/Versions/A/Resources/hu.lproj/locale.pak +0 -0
- package/electron/bin/31.4.0/target/Electron.app/Contents/Frameworks/Electron Framework.framework/Versions/A/Resources/icudtl.dat +0 -0
- package/electron/bin/31.4.0/target/Electron.app/Contents/Frameworks/Electron Framework.framework/Versions/A/Resources/id.lproj/locale.pak +0 -0
- package/electron/bin/31.4.0/target/Electron.app/Contents/Frameworks/Electron Framework.framework/Versions/A/Resources/it.lproj/locale.pak +0 -0
- package/electron/bin/31.4.0/target/Electron.app/Contents/Frameworks/Electron Framework.framework/Versions/A/Resources/ja.lproj/locale.pak +0 -0
- package/electron/bin/31.4.0/target/Electron.app/Contents/Frameworks/Electron Framework.framework/Versions/A/Resources/kn.lproj/locale.pak +0 -0
- package/electron/bin/31.4.0/target/Electron.app/Contents/Frameworks/Electron Framework.framework/Versions/A/Resources/ko.lproj/locale.pak +0 -0
- package/electron/bin/31.4.0/target/Electron.app/Contents/Frameworks/Electron Framework.framework/Versions/A/Resources/lt.lproj/locale.pak +0 -0
- package/electron/bin/31.4.0/target/Electron.app/Contents/Frameworks/Electron Framework.framework/Versions/A/Resources/lv.lproj/locale.pak +0 -0
- package/electron/bin/31.4.0/target/Electron.app/Contents/Frameworks/Electron Framework.framework/Versions/A/Resources/ml.lproj/locale.pak +0 -0
- package/electron/bin/31.4.0/target/Electron.app/Contents/Frameworks/Electron Framework.framework/Versions/A/Resources/mr.lproj/locale.pak +0 -0
- package/electron/bin/31.4.0/target/Electron.app/Contents/Frameworks/Electron Framework.framework/Versions/A/Resources/ms.lproj/locale.pak +0 -0
- package/electron/bin/31.4.0/target/Electron.app/Contents/Frameworks/Electron Framework.framework/Versions/A/Resources/nb.lproj/locale.pak +0 -0
- package/electron/bin/31.4.0/target/Electron.app/Contents/Frameworks/Electron Framework.framework/Versions/A/Resources/nl.lproj/locale.pak +0 -0
- package/electron/bin/31.4.0/target/Electron.app/Contents/Frameworks/Electron Framework.framework/Versions/A/Resources/pl.lproj/locale.pak +0 -0
- package/electron/bin/31.4.0/target/Electron.app/Contents/Frameworks/Electron Framework.framework/Versions/A/Resources/pt_BR.lproj/locale.pak +0 -0
- package/electron/bin/31.4.0/target/Electron.app/Contents/Frameworks/Electron Framework.framework/Versions/A/Resources/pt_PT.lproj/locale.pak +0 -0
- package/electron/bin/31.4.0/target/Electron.app/Contents/Frameworks/Electron Framework.framework/Versions/A/Resources/resources.pak +0 -0
- package/electron/bin/31.4.0/target/Electron.app/Contents/Frameworks/Electron Framework.framework/Versions/A/Resources/ro.lproj/locale.pak +0 -0
- package/electron/bin/31.4.0/target/Electron.app/Contents/Frameworks/Electron Framework.framework/Versions/A/Resources/ru.lproj/locale.pak +0 -0
- package/electron/bin/31.4.0/target/Electron.app/Contents/Frameworks/Electron Framework.framework/Versions/A/Resources/sk.lproj/locale.pak +0 -0
- package/electron/bin/31.4.0/target/Electron.app/Contents/Frameworks/Electron Framework.framework/Versions/A/Resources/sl.lproj/locale.pak +0 -0
- package/electron/bin/31.4.0/target/Electron.app/Contents/Frameworks/Electron Framework.framework/Versions/A/Resources/sr.lproj/locale.pak +0 -0
- package/electron/bin/31.4.0/target/Electron.app/Contents/Frameworks/Electron Framework.framework/Versions/A/Resources/sv.lproj/locale.pak +0 -0
- package/electron/bin/31.4.0/target/Electron.app/Contents/Frameworks/Electron Framework.framework/Versions/A/Resources/sw.lproj/locale.pak +0 -0
- package/electron/bin/31.4.0/target/Electron.app/Contents/Frameworks/Electron Framework.framework/Versions/A/Resources/ta.lproj/locale.pak +0 -0
- package/electron/bin/31.4.0/target/Electron.app/Contents/Frameworks/Electron Framework.framework/Versions/A/Resources/te.lproj/locale.pak +0 -0
- package/electron/bin/31.4.0/target/Electron.app/Contents/Frameworks/Electron Framework.framework/Versions/A/Resources/th.lproj/locale.pak +0 -0
- package/electron/bin/31.4.0/target/Electron.app/Contents/Frameworks/Electron Framework.framework/Versions/A/Resources/tr.lproj/locale.pak +0 -0
- package/electron/bin/31.4.0/target/Electron.app/Contents/Frameworks/Electron Framework.framework/Versions/A/Resources/uk.lproj/locale.pak +0 -0
- package/electron/bin/31.4.0/target/Electron.app/Contents/Frameworks/Electron Framework.framework/Versions/A/Resources/ur.lproj/locale.pak +0 -0
- package/electron/bin/31.4.0/target/Electron.app/Contents/Frameworks/Electron Framework.framework/Versions/A/Resources/v8_context_snapshot.arm64.bin +0 -0
- package/electron/bin/31.4.0/target/Electron.app/Contents/Frameworks/Electron Framework.framework/Versions/A/Resources/vi.lproj/locale.pak +0 -0
- package/electron/bin/31.4.0/target/Electron.app/Contents/Frameworks/Electron Framework.framework/Versions/A/Resources/zh_CN.lproj/locale.pak +0 -0
- package/electron/bin/31.4.0/target/Electron.app/Contents/Frameworks/Electron Framework.framework/Versions/A/Resources/zh_TW.lproj/locale.pak +0 -0
- package/electron/bin/31.4.0/target/Electron.app/Contents/Frameworks/Electron Helper (GPU).app/Contents/Info.plist +31 -0
- package/electron/bin/31.4.0/target/Electron.app/Contents/Frameworks/Electron Helper (GPU).app/Contents/MacOS/Electron Helper (GPU) +0 -0
- package/electron/bin/31.4.0/target/Electron.app/Contents/Frameworks/Electron Helper (GPU).app/Contents/PkgInfo +1 -0
- package/electron/bin/31.4.0/target/Electron.app/Contents/Frameworks/Electron Helper (Plugin).app/Contents/Info.plist +31 -0
- package/electron/bin/31.4.0/target/Electron.app/Contents/Frameworks/Electron Helper (Plugin).app/Contents/MacOS/Electron Helper (Plugin) +0 -0
- package/electron/bin/31.4.0/target/Electron.app/Contents/Frameworks/Electron Helper (Plugin).app/Contents/PkgInfo +1 -0
- package/electron/bin/31.4.0/target/Electron.app/Contents/Frameworks/Electron Helper (Renderer).app/Contents/Info.plist +31 -0
- package/electron/bin/31.4.0/target/Electron.app/Contents/Frameworks/Electron Helper (Renderer).app/Contents/MacOS/Electron Helper (Renderer) +0 -0
- package/electron/bin/31.4.0/target/Electron.app/Contents/Frameworks/Electron Helper (Renderer).app/Contents/PkgInfo +1 -0
- package/electron/bin/31.4.0/target/Electron.app/Contents/Frameworks/Electron Helper.app/Contents/Info.plist +31 -0
- package/electron/bin/31.4.0/target/Electron.app/Contents/Frameworks/Electron Helper.app/Contents/MacOS/Electron Helper +0 -0
- package/electron/bin/31.4.0/target/Electron.app/Contents/Frameworks/Electron Helper.app/Contents/PkgInfo +1 -0
- package/electron/bin/31.4.0/target/Electron.app/Contents/Frameworks/Mantle.framework/Versions/A/Mantle +0 -0
- package/electron/bin/31.4.0/target/Electron.app/Contents/Frameworks/Mantle.framework/Versions/A/Resources/Info.plist +36 -0
- package/electron/bin/31.4.0/target/Electron.app/Contents/Frameworks/ReactiveObjC.framework/Versions/A/ReactiveObjC +0 -0
- package/electron/bin/31.4.0/target/Electron.app/Contents/Frameworks/ReactiveObjC.framework/Versions/A/Resources/Info.plist +38 -0
- package/electron/bin/31.4.0/target/Electron.app/Contents/Frameworks/Squirrel.framework/Versions/A/Resources/Info.plist +40 -0
- package/electron/bin/31.4.0/target/Electron.app/Contents/Frameworks/Squirrel.framework/Versions/A/Resources/ShipIt +0 -0
- package/electron/bin/31.4.0/target/Electron.app/Contents/Frameworks/Squirrel.framework/Versions/A/Squirrel +0 -0
- package/electron/bin/31.4.0/target/Electron.app/Contents/Info.plist +78 -0
- package/electron/bin/31.4.0/target/Electron.app/Contents/MacOS/Electron +0 -0
- package/electron/bin/31.4.0/target/Electron.app/Contents/PkgInfo +1 -0
- package/electron/bin/31.4.0/target/Electron.app/Contents/Resources/default_app.asar +0 -0
- package/electron/bin/31.4.0/target/Electron.app/Contents/Resources/electron.icns +0 -0
- package/electron/bin/31.4.0/target/LICENSE +21 -0
- package/electron/bin/31.4.0/target/LICENSES.chromium.html +171523 -0
- package/electron/bin/31.4.0/target/version +1 -0
- package/package.json +5 -3
- package/src/plugin/media.ts +5 -2
- package/src/plugin/runtime/electron-worker.ts +19 -8
- package/src/plugin/runtime/runtime-host.ts +7 -1
@@ -0,0 +1 @@
|
|
1
|
+
31.4.0
|
package/package.json
CHANGED
@@ -1,8 +1,9 @@
|
|
1
1
|
{
|
2
2
|
"name": "@scrypted/server",
|
3
|
-
"version": "0.115.
|
3
|
+
"version": "0.115.32",
|
4
4
|
"description": "",
|
5
5
|
"dependencies": {
|
6
|
+
"@electron/get": "^3.1.0",
|
6
7
|
"@mapbox/node-pre-gyp": "^1.0.11",
|
7
8
|
"@scrypted/ffmpeg-static": "^6.1.0-build1",
|
8
9
|
"@scrypted/node-pty": "^1.0.18",
|
@@ -11,9 +12,9 @@
|
|
11
12
|
"body-parser": "^1.20.2",
|
12
13
|
"cookie-parser": "^1.4.6",
|
13
14
|
"dotenv": "^16.4.5",
|
14
|
-
"electron": "^31.4.0",
|
15
15
|
"engine.io": "^6.6.0",
|
16
16
|
"express": "^4.19.2",
|
17
|
+
"extract-zip": "^2.0.1",
|
17
18
|
"follow-redirects": "^1.15.6",
|
18
19
|
"http-auth": "^4.2.0",
|
19
20
|
"level": "^8.0.1",
|
@@ -46,7 +47,8 @@
|
|
46
47
|
"@types/semver": "^7.5.8",
|
47
48
|
"@types/source-map-support": "^0.5.10",
|
48
49
|
"@types/whatwg-mimetype": "^3.0.2",
|
49
|
-
"@types/ws": "^8.5.12"
|
50
|
+
"@types/ws": "^8.5.12",
|
51
|
+
"electron": "^31.4.0"
|
50
52
|
},
|
51
53
|
"bin": {
|
52
54
|
"scrypted-serve": "bin/scrypted-serve"
|
package/src/plugin/media.ts
CHANGED
@@ -161,8 +161,11 @@ export abstract class MediaManagerBase implements MediaManager {
|
|
161
161
|
}
|
162
162
|
|
163
163
|
async convertMediaObjectToJSON<T>(mediaObject: MediaObjectInterface, toMimeType: string): Promise<T> {
|
164
|
-
const
|
165
|
-
|
164
|
+
const json = await this.convertMediaObjectToBuffer(mediaObject, toMimeType);
|
165
|
+
// backcompat
|
166
|
+
if (json && (Buffer.isBuffer(json) || typeof json === 'string'))
|
167
|
+
return JSON.parse(json.toString());
|
168
|
+
return json as T;
|
166
169
|
}
|
167
170
|
|
168
171
|
abstract getSystemState(): { [id: string]: { [property: string]: SystemDeviceState } };
|
@@ -1,3 +1,4 @@
|
|
1
|
+
import fs from 'fs';
|
1
2
|
import path from 'path';
|
2
3
|
import child_process from 'child_process';
|
3
4
|
import net from "net";
|
@@ -6,24 +7,30 @@ import { SidebandSocketSerializer } from "../socket-serializer";
|
|
6
7
|
import { ChildProcessWorker } from "./child-process-worker";
|
7
8
|
import { RuntimeWorkerOptions } from "./runtime-worker";
|
8
9
|
import type { ScryptedRuntime } from '../../runtime';
|
10
|
+
import { electronBin } from '../../../bin/electron-get';
|
9
11
|
|
10
12
|
export class ElectronForkWorker extends ChildProcessWorker {
|
11
13
|
static allocatedDisplays = new Set<number>();
|
12
14
|
allocatedDisplay: number;
|
13
15
|
|
14
|
-
constructor(_mainFilename: string, pluginId: string, options: RuntimeWorkerOptions, runtime: ScryptedRuntime) {
|
16
|
+
constructor(_mainFilename: string, pluginId: string, options: RuntimeWorkerOptions, runtime: ScryptedRuntime, mode: 'default' | 'webgl' | 'webgpu') {
|
15
17
|
super(pluginId, options);
|
16
18
|
|
17
19
|
const { env } = options;
|
18
20
|
|
19
|
-
|
20
|
-
const electronBin: string = require('electron');
|
21
|
+
fs.chmodSync(electronBin, 0o755);
|
21
22
|
const args = [
|
22
23
|
electronBin,
|
23
|
-
|
24
24
|
'--disable-features=BlockInsecurePrivateNetworkRequests,PrivateNetworkAccessSendPreflights',
|
25
25
|
'--enable-features=SharedArrayBuffer',
|
26
26
|
];
|
27
|
+
|
28
|
+
if (mode !== 'default') {
|
29
|
+
args.push(
|
30
|
+
'--ignore-gpu-blocklist',
|
31
|
+
);
|
32
|
+
}
|
33
|
+
|
27
34
|
if (process.platform === 'linux') {
|
28
35
|
// crappy but should work.
|
29
36
|
for (let i = 50; i < 100; i++) {
|
@@ -44,11 +51,15 @@ export class ElectronForkWorker extends ChildProcessWorker {
|
|
44
51
|
// https://github.com/gpuweb/gpuweb/wiki/Implementation-Status#chromium-chrome-edge-etc
|
45
52
|
args.push(
|
46
53
|
'--no-sandbox',
|
47
|
-
'--enable-unsafe-webgpu',
|
48
|
-
'--ignore-gpu-blocklist',
|
49
|
-
'--enable-features=Vulkan',
|
50
|
-
'--disable-vulkan-surface',
|
51
54
|
);
|
55
|
+
|
56
|
+
if (mode === 'webgpu') {
|
57
|
+
args.push(
|
58
|
+
'--enable-unsafe-webgpu',
|
59
|
+
'--enable-features=Vulkan',
|
60
|
+
'--disable-vulkan-surface',
|
61
|
+
);
|
62
|
+
}
|
52
63
|
}
|
53
64
|
|
54
65
|
if (process.platform === 'darwin') {
|
@@ -13,7 +13,13 @@ export function getBuiltinRuntimeHosts() {
|
|
13
13
|
pluginHosts.set('custom', (_, pluginId, options, runtime) => new CustomRuntimeWorker(pluginId, options, runtime));
|
14
14
|
pluginHosts.set('python', (_, pluginId, options) => new PythonRuntimeWorker(pluginId, options));
|
15
15
|
pluginHosts.set('node', (mainFilename, pluginId, options) => new NodeForkWorker(mainFilename, pluginId, options));
|
16
|
-
|
16
|
+
|
17
|
+
// safe
|
18
|
+
pluginHosts.set('electron', (mainFilename, pluginId, options, runtime) => new ElectronForkWorker(mainFilename, pluginId, options, runtime, 'default'));
|
19
|
+
// mostly safe
|
20
|
+
pluginHosts.set('electron-webgl', (mainFilename, pluginId, options, runtime) => new ElectronForkWorker(mainFilename, pluginId, options, runtime, 'webgl'));
|
21
|
+
// there be dragons
|
22
|
+
pluginHosts.set('electron-webgpu', (mainFilename, pluginId, options, runtime) => new ElectronForkWorker(mainFilename, pluginId, options, runtime, 'webgpu'));
|
17
23
|
|
18
24
|
return pluginHosts;
|
19
25
|
}
|