@scrypted/server 0.123.31 → 0.123.33

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.
Files changed (67) hide show
  1. package/dist/plugin/device.d.ts +60 -0
  2. package/dist/plugin/device.js +249 -0
  3. package/dist/plugin/device.js.map +1 -0
  4. package/dist/plugin/endpoint.d.ts +45 -0
  5. package/dist/plugin/endpoint.js +97 -0
  6. package/dist/plugin/endpoint.js.map +1 -0
  7. package/dist/plugin/plugin-host.d.ts +1 -1
  8. package/dist/plugin/plugin-host.js +11 -10
  9. package/dist/plugin/plugin-host.js.map +1 -1
  10. package/dist/plugin/plugin-remote-worker.js +18 -16
  11. package/dist/plugin/plugin-remote-worker.js.map +1 -1
  12. package/dist/plugin/plugin-remote.d.ts +2 -51
  13. package/dist/plugin/plugin-remote.js +6 -337
  14. package/dist/plugin/plugin-remote.js.map +1 -1
  15. package/dist/plugin/runtime/child-process-worker.d.ts +1 -1
  16. package/dist/plugin/runtime/child-process-worker.js +2 -2
  17. package/dist/plugin/runtime/child-process-worker.js.map +1 -1
  18. package/dist/plugin/runtime/cluster-fork-worker.d.ts +4 -4
  19. package/dist/plugin/runtime/cluster-fork-worker.js +8 -3
  20. package/dist/plugin/runtime/cluster-fork-worker.js.map +1 -1
  21. package/dist/plugin/runtime/custom-worker.d.ts +1 -1
  22. package/dist/plugin/runtime/custom-worker.js +3 -3
  23. package/dist/plugin/runtime/custom-worker.js.map +1 -1
  24. package/dist/plugin/runtime/node-fork-worker.d.ts +1 -1
  25. package/dist/plugin/runtime/node-fork-worker.js +2 -2
  26. package/dist/plugin/runtime/node-fork-worker.js.map +1 -1
  27. package/dist/plugin/runtime/python-worker.d.ts +1 -1
  28. package/dist/plugin/runtime/python-worker.js +3 -3
  29. package/dist/plugin/runtime/python-worker.js.map +1 -1
  30. package/dist/plugin/runtime/runtime-host.d.ts +1 -1
  31. package/dist/plugin/runtime/runtime-host.js +3 -3
  32. package/dist/plugin/runtime/runtime-host.js.map +1 -1
  33. package/dist/plugin/system.js +0 -1
  34. package/dist/plugin/system.js.map +1 -1
  35. package/dist/runtime.d.ts +4 -4
  36. package/dist/runtime.js +1 -1
  37. package/dist/runtime.js.map +1 -1
  38. package/dist/scrypted-cluster-main.d.ts +14 -3
  39. package/dist/scrypted-cluster-main.js +42 -18
  40. package/dist/scrypted-cluster-main.js.map +1 -1
  41. package/dist/scrypted-server-main.js +1 -0
  42. package/dist/scrypted-server-main.js.map +1 -1
  43. package/dist/services/cluster-fork.d.ts +4 -3
  44. package/dist/services/cluster-fork.js +7 -5
  45. package/dist/services/cluster-fork.js.map +1 -1
  46. package/package.json +2 -2
  47. package/python/cluster_labels.py +2 -2
  48. package/python/cluster_setup.py +1 -1
  49. package/python/plugin_console.py +8 -0
  50. package/python/plugin_remote.py +116 -34
  51. package/python/rpc.py +5 -4
  52. package/src/plugin/device.ts +261 -0
  53. package/src/plugin/endpoint.ts +109 -0
  54. package/src/plugin/plugin-host.ts +25 -21
  55. package/src/plugin/plugin-remote-worker.ts +30 -20
  56. package/src/plugin/plugin-remote.ts +6 -364
  57. package/src/plugin/runtime/child-process-worker.ts +3 -1
  58. package/src/plugin/runtime/cluster-fork-worker.ts +20 -12
  59. package/src/plugin/runtime/custom-worker.ts +3 -3
  60. package/src/plugin/runtime/node-fork-worker.ts +2 -2
  61. package/src/plugin/runtime/python-worker.ts +3 -3
  62. package/src/plugin/runtime/runtime-host.ts +4 -4
  63. package/src/plugin/system.ts +0 -1
  64. package/src/runtime.ts +4 -4
  65. package/src/scrypted-cluster-main.ts +54 -29
  66. package/src/scrypted-server-main.ts +1 -0
  67. package/src/services/cluster-fork.ts +10 -8
@@ -0,0 +1,60 @@
1
+ import { Device, DeviceManager, DeviceManifest, DeviceState, Logger, ScryptedNativeId, WritableDeviceState } from '@scrypted/types';
2
+ import { PluginAPI } from './plugin-api';
3
+ import { SystemManagerImpl } from './system';
4
+ export declare class DeviceStateProxyHandler implements ProxyHandler<any> {
5
+ deviceManager: DeviceManagerImpl;
6
+ id: string;
7
+ setState: (property: string, value: any) => Promise<void>;
8
+ constructor(deviceManager: DeviceManagerImpl, id: string, setState: (property: string, value: any) => Promise<void>);
9
+ get?(target: any, p: PropertyKey, receiver: any): any;
10
+ set?(target: any, p: PropertyKey, value: any, receiver: any): boolean;
11
+ }
12
+ interface DeviceManagerDevice {
13
+ id: string;
14
+ storage: {
15
+ [key: string]: any;
16
+ };
17
+ }
18
+ export declare class DeviceManagerImpl implements DeviceManager {
19
+ systemManager: SystemManagerImpl;
20
+ getDeviceConsole: (nativeId?: ScryptedNativeId) => Console;
21
+ getMixinConsole: (mixinId: string, nativeId?: ScryptedNativeId) => Console;
22
+ api: PluginAPI;
23
+ nativeIds: Map<string, DeviceManagerDevice>;
24
+ deviceStorage: Map<string, StorageImpl>;
25
+ mixinStorage: Map<string, Map<string, StorageImpl>>;
26
+ constructor(systemManager: SystemManagerImpl, getDeviceConsole: (nativeId?: ScryptedNativeId) => Console, getMixinConsole: (mixinId: string, nativeId?: ScryptedNativeId) => Console);
27
+ requestRestart(): Promise<void>;
28
+ getDeviceLogger(nativeId?: ScryptedNativeId): Logger;
29
+ getDeviceState(nativeId?: any): DeviceState;
30
+ createDeviceState(id: string, setState: (property: string, value: any) => Promise<void>): WritableDeviceState;
31
+ getDeviceStorage(nativeId?: any): StorageImpl;
32
+ getMixinStorage(id: string, nativeId?: ScryptedNativeId): StorageImpl;
33
+ pruneMixinStorage(): void;
34
+ onMixinEvent(id: string, nativeId: ScryptedNativeId, eventInterface: string, eventData: any): Promise<void>;
35
+ getNativeIds(): string[];
36
+ onDeviceDiscovered(device: Device): Promise<string>;
37
+ onDeviceRemoved(nativeId: string): Promise<void>;
38
+ onDeviceEvent(nativeId: any, eventInterface: any, eventData?: any): Promise<void>;
39
+ onDevicesChanged(devices: DeviceManifest): Promise<void>;
40
+ }
41
+ export declare class StorageImpl implements Storage {
42
+ deviceManager: DeviceManagerImpl;
43
+ nativeId: ScryptedNativeId;
44
+ prefix?: string;
45
+ api: PluginAPI;
46
+ [name: string]: any;
47
+ private static allowedMethods;
48
+ private static indexedHandler;
49
+ constructor(deviceManager: DeviceManagerImpl, nativeId: ScryptedNativeId, prefix?: string);
50
+ get storage(): {
51
+ [key: string]: any;
52
+ };
53
+ get length(): number;
54
+ clear(): void;
55
+ getItem(key: string): string;
56
+ key(index: number): string;
57
+ removeItem(key: string): void;
58
+ setItem(key: string, value: string): void;
59
+ }
60
+ export {};
@@ -0,0 +1,249 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.StorageImpl = exports.DeviceManagerImpl = exports.DeviceStateProxyHandler = void 0;
4
+ const rpc_1 = require("../rpc");
5
+ const plugin_state_check_1 = require("./plugin-state-check");
6
+ class DeviceLogger {
7
+ console;
8
+ nativeId;
9
+ api;
10
+ logger;
11
+ constructor(api, nativeId, console) {
12
+ this.console = console;
13
+ this.api = api;
14
+ this.nativeId = nativeId;
15
+ }
16
+ async ensureLogger() {
17
+ if (!this.logger)
18
+ this.logger = this.api.getLogger(this.nativeId);
19
+ return await this.logger;
20
+ }
21
+ async log(level, message) {
22
+ (await this.ensureLogger()).log(level, message);
23
+ }
24
+ a(msg) {
25
+ this.log('a', msg);
26
+ }
27
+ async clear() {
28
+ (await this.ensureLogger()).clear();
29
+ }
30
+ async clearAlert(msg) {
31
+ (await this.ensureLogger()).clearAlert(msg);
32
+ }
33
+ async clearAlerts() {
34
+ (await this.ensureLogger()).clearAlerts();
35
+ }
36
+ d(msg) {
37
+ this.log('d', msg);
38
+ }
39
+ e(msg) {
40
+ this.log('e', msg);
41
+ }
42
+ i(msg) {
43
+ this.log('i', msg);
44
+ }
45
+ v(msg) {
46
+ this.log('v', msg);
47
+ }
48
+ w(msg) {
49
+ this.log('w', msg);
50
+ }
51
+ }
52
+ class DeviceStateProxyHandler {
53
+ deviceManager;
54
+ id;
55
+ setState;
56
+ constructor(deviceManager, id, setState) {
57
+ this.deviceManager = deviceManager;
58
+ this.id = id;
59
+ this.setState = setState;
60
+ }
61
+ get(target, p, receiver) {
62
+ if (p === 'id')
63
+ return this.id;
64
+ if (p === rpc_1.RpcPeer.PROPERTY_PROXY_PROPERTIES)
65
+ return { id: this.id };
66
+ if (p === 'setState')
67
+ return this.setState;
68
+ return this.deviceManager.systemManager.state[this.id][p]?.value;
69
+ }
70
+ set(target, p, value, receiver) {
71
+ (0, plugin_state_check_1.checkProperty)(p.toString(), value);
72
+ this.deviceManager.systemManager.state[this.id][p] = {
73
+ value,
74
+ };
75
+ this.setState(p.toString(), value);
76
+ return true;
77
+ }
78
+ }
79
+ exports.DeviceStateProxyHandler = DeviceStateProxyHandler;
80
+ class DeviceManagerImpl {
81
+ systemManager;
82
+ getDeviceConsole;
83
+ getMixinConsole;
84
+ api;
85
+ nativeIds = new Map();
86
+ deviceStorage = new Map();
87
+ mixinStorage = new Map();
88
+ constructor(systemManager, getDeviceConsole, getMixinConsole) {
89
+ this.systemManager = systemManager;
90
+ this.getDeviceConsole = getDeviceConsole;
91
+ this.getMixinConsole = getMixinConsole;
92
+ }
93
+ async requestRestart() {
94
+ return this.api.requestRestart();
95
+ }
96
+ getDeviceLogger(nativeId) {
97
+ return new DeviceLogger(this.api, nativeId, this.getDeviceConsole?.(nativeId) || console);
98
+ }
99
+ getDeviceState(nativeId) {
100
+ const handler = new DeviceStateProxyHandler(this, this.nativeIds.get(nativeId).id, (property, value) => this.api.setState(nativeId, property, value));
101
+ return new Proxy(handler, handler);
102
+ }
103
+ createDeviceState(id, setState) {
104
+ const handler = new DeviceStateProxyHandler(this, id, setState);
105
+ return new Proxy(handler, handler);
106
+ }
107
+ getDeviceStorage(nativeId) {
108
+ let ret = this.deviceStorage.get(nativeId);
109
+ if (!ret) {
110
+ ret = new StorageImpl(this, nativeId);
111
+ this.deviceStorage.set(nativeId, ret);
112
+ }
113
+ return ret;
114
+ }
115
+ getMixinStorage(id, nativeId) {
116
+ let ms = this.mixinStorage.get(nativeId);
117
+ if (!ms) {
118
+ ms = new Map();
119
+ this.mixinStorage.set(nativeId, ms);
120
+ }
121
+ let ret = ms.get(id);
122
+ if (!ret) {
123
+ ret = new StorageImpl(this, nativeId, `mixin:${id}:`);
124
+ ms.set(id, ret);
125
+ }
126
+ return ret;
127
+ }
128
+ pruneMixinStorage() {
129
+ for (const nativeId of this.nativeIds.keys()) {
130
+ const storage = this.nativeIds.get(nativeId).storage;
131
+ for (const key of Object.keys(storage)) {
132
+ if (!key.startsWith('mixin:'))
133
+ continue;
134
+ const [, id,] = key.split(':');
135
+ // there's no rush to persist this, it will happen automatically on the plugin
136
+ // persisting something at some point.
137
+ // the key itself is unreachable due to the device no longer existing.
138
+ if (id && !this.systemManager.state[id])
139
+ delete storage[key];
140
+ }
141
+ }
142
+ }
143
+ async onMixinEvent(id, nativeId, eventInterface, eventData) {
144
+ return this.api.onMixinEvent(id, nativeId, eventInterface, eventData);
145
+ }
146
+ getNativeIds() {
147
+ return Array.from(this.nativeIds.keys());
148
+ }
149
+ async onDeviceDiscovered(device) {
150
+ return this.api.onDeviceDiscovered(device);
151
+ }
152
+ async onDeviceRemoved(nativeId) {
153
+ return this.api.onDeviceRemoved(nativeId);
154
+ }
155
+ async onDeviceEvent(nativeId, eventInterface, eventData) {
156
+ return this.api.onDeviceEvent(nativeId, eventInterface, eventData);
157
+ }
158
+ async onDevicesChanged(devices) {
159
+ return this.api.onDevicesChanged(devices);
160
+ }
161
+ }
162
+ exports.DeviceManagerImpl = DeviceManagerImpl;
163
+ function toStorageString(value) {
164
+ if (value === null)
165
+ return 'null';
166
+ if (value === undefined)
167
+ return 'undefined';
168
+ return value.toString();
169
+ }
170
+ class StorageImpl {
171
+ deviceManager;
172
+ nativeId;
173
+ prefix;
174
+ api;
175
+ static allowedMethods = [
176
+ 'length',
177
+ 'clear',
178
+ 'getItem',
179
+ 'setItem',
180
+ 'key',
181
+ 'removeItem',
182
+ ];
183
+ static indexedHandler = {
184
+ get(target, property) {
185
+ const keyString = property.toString();
186
+ if (StorageImpl.allowedMethods.includes(keyString)) {
187
+ const f = target[keyString];
188
+ if (keyString === 'length')
189
+ return f;
190
+ return f.bind(target);
191
+ }
192
+ return target.getItem(toStorageString(property));
193
+ },
194
+ set(target, property, value) {
195
+ target.setItem(toStorageString(property), value);
196
+ return true;
197
+ }
198
+ };
199
+ constructor(deviceManager, nativeId, prefix) {
200
+ this.deviceManager = deviceManager;
201
+ this.nativeId = nativeId;
202
+ this.prefix = prefix;
203
+ this.deviceManager = deviceManager;
204
+ this.api = deviceManager.api;
205
+ this.nativeId = nativeId;
206
+ if (!this.prefix)
207
+ this.prefix = '';
208
+ return new Proxy(this, StorageImpl.indexedHandler);
209
+ }
210
+ get storage() {
211
+ return this.deviceManager.nativeIds.get(this.nativeId).storage;
212
+ }
213
+ get length() {
214
+ return Object.keys(this.storage).filter(key => key.startsWith(this.prefix)).length;
215
+ }
216
+ clear() {
217
+ if (!this.prefix) {
218
+ this.deviceManager.nativeIds.get(this.nativeId).storage = {};
219
+ }
220
+ else {
221
+ const storage = this.storage;
222
+ Object.keys(this.storage).filter(key => key.startsWith(this.prefix)).forEach(key => delete storage[key]);
223
+ }
224
+ this.api.setStorage(this.nativeId, this.storage);
225
+ }
226
+ getItem(key) {
227
+ return this.storage[this.prefix + key];
228
+ }
229
+ key(index) {
230
+ if (!this.prefix) {
231
+ return Object.keys(this.storage)[index];
232
+ }
233
+ return Object.keys(this.storage).filter(key => key.startsWith(this.prefix))[index].substring(this.prefix.length);
234
+ }
235
+ removeItem(key) {
236
+ delete this.storage[this.prefix + key];
237
+ this.api.setStorage(this.nativeId, this.storage);
238
+ }
239
+ setItem(key, value) {
240
+ key = toStorageString(key);
241
+ value = toStorageString(value);
242
+ if (this.storage[this.prefix + key] === value)
243
+ return;
244
+ this.storage[this.prefix + key] = value;
245
+ this.api.setStorage(this.nativeId, this.storage);
246
+ }
247
+ }
248
+ exports.StorageImpl = StorageImpl;
249
+ //# sourceMappingURL=device.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"device.js","sourceRoot":"","sources":["../../src/plugin/device.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,45 @@
1
+ import { EndpointAccessControlAllowOrigin, MediaManager, type EndpointManager, type ScryptedNativeId } from "@scrypted/types";
2
+ import type { DeviceManagerImpl } from "./device";
3
+ import type { PluginAPI } from "./plugin-api";
4
+ export declare class EndpointManagerImpl implements EndpointManager {
5
+ deviceManager: DeviceManagerImpl;
6
+ api: PluginAPI;
7
+ pluginId: string;
8
+ mediaManager: MediaManager;
9
+ getEndpoint(nativeId?: ScryptedNativeId): string;
10
+ getUrlSafeIp(): Promise<string>;
11
+ /**
12
+ * @deprecated
13
+ */
14
+ getAuthenticatedPath(nativeId?: ScryptedNativeId): Promise<string>;
15
+ /**
16
+ * @deprecated
17
+ */
18
+ getInsecurePublicLocalEndpoint(nativeId?: ScryptedNativeId): Promise<string>;
19
+ /**
20
+ * @deprecated
21
+ */
22
+ getPublicCloudEndpoint(nativeId?: ScryptedNativeId): Promise<string>;
23
+ /**
24
+ * @deprecated
25
+ */
26
+ getPublicLocalEndpoint(nativeId?: ScryptedNativeId): Promise<string>;
27
+ /**
28
+ * @deprecated
29
+ */
30
+ getPublicPushEndpoint(nativeId?: ScryptedNativeId): Promise<string>;
31
+ getPath(nativeId?: string, options?: {
32
+ public?: boolean;
33
+ }): Promise<string>;
34
+ getLocalEndpoint(nativeId?: string, options?: {
35
+ public?: boolean;
36
+ insecure?: boolean;
37
+ }): Promise<string>;
38
+ getCloudEndpoint(nativeId?: string, options?: {
39
+ public?: boolean;
40
+ }): Promise<string>;
41
+ getCloudPushEndpoint(nativeId?: string): Promise<string>;
42
+ setLocalAddresses(addresses: string[]): Promise<void>;
43
+ getLocalAddresses(): Promise<string[]>;
44
+ setAccessControlAllowOrigin(options: EndpointAccessControlAllowOrigin): Promise<void>;
45
+ }
@@ -0,0 +1,97 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.EndpointManagerImpl = void 0;
4
+ const types_1 = require("@scrypted/types");
5
+ class EndpointManagerImpl {
6
+ deviceManager;
7
+ api;
8
+ pluginId;
9
+ mediaManager;
10
+ getEndpoint(nativeId) {
11
+ if (!nativeId)
12
+ return this.pluginId;
13
+ const id = this.deviceManager.nativeIds.get(nativeId)?.id;
14
+ if (!id)
15
+ throw new Error('invalid nativeId ' + nativeId);
16
+ if (!nativeId)
17
+ return this.pluginId;
18
+ return id;
19
+ }
20
+ async getUrlSafeIp() {
21
+ // ipv6 addresses have colons and need to be bracketed for url safety
22
+ const ip = await this.api.getComponent('SCRYPTED_IP_ADDRESS');
23
+ return ip?.includes(':') ? `[${ip}]` : ip;
24
+ }
25
+ /**
26
+ * @deprecated
27
+ */
28
+ async getAuthenticatedPath(nativeId) {
29
+ return this.getPath(nativeId);
30
+ }
31
+ /**
32
+ * @deprecated
33
+ */
34
+ async getInsecurePublicLocalEndpoint(nativeId) {
35
+ return this.getLocalEndpoint(nativeId, {
36
+ insecure: true,
37
+ public: true,
38
+ });
39
+ }
40
+ /**
41
+ * @deprecated
42
+ */
43
+ async getPublicCloudEndpoint(nativeId) {
44
+ return this.getCloudEndpoint(nativeId, {
45
+ public: true,
46
+ });
47
+ }
48
+ /**
49
+ * @deprecated
50
+ */
51
+ async getPublicLocalEndpoint(nativeId) {
52
+ return this.getLocalEndpoint(nativeId, {
53
+ public: true,
54
+ });
55
+ }
56
+ /**
57
+ * @deprecated
58
+ */
59
+ async getPublicPushEndpoint(nativeId) {
60
+ const mo = await this.mediaManager.createMediaObject(Buffer.from(this.getEndpoint(nativeId)), types_1.ScryptedMimeTypes.PushEndpoint);
61
+ return this.mediaManager.convertMediaObjectToUrl(mo, types_1.ScryptedMimeTypes.PushEndpoint);
62
+ }
63
+ async getPath(nativeId, options) {
64
+ return `/endpoint/${this.getEndpoint(nativeId)}/${options?.public ? 'public/' : ''}`;
65
+ }
66
+ async getLocalEndpoint(nativeId, options) {
67
+ const protocol = options?.insecure ? 'http' : 'https';
68
+ const port = await this.api.getComponent(options?.insecure ? 'SCRYPTED_INSECURE_PORT' : 'SCRYPTED_SECURE_PORT');
69
+ const path = await this.getPath(nativeId, options);
70
+ const url = `${protocol}://${await this.getUrlSafeIp()}:${port}${path}`;
71
+ return url;
72
+ }
73
+ async getCloudEndpoint(nativeId, options) {
74
+ const local = await this.getLocalEndpoint(nativeId, options);
75
+ const mo = await this.mediaManager.createMediaObject(Buffer.from(local), types_1.ScryptedMimeTypes.LocalUrl);
76
+ return this.mediaManager.convertMediaObjectToUrl(mo, types_1.ScryptedMimeTypes.LocalUrl);
77
+ }
78
+ async getCloudPushEndpoint(nativeId) {
79
+ const mo = await this.mediaManager.createMediaObject(Buffer.from(this.getEndpoint(nativeId)), types_1.ScryptedMimeTypes.PushEndpoint);
80
+ return this.mediaManager.convertMediaObjectToUrl(mo, types_1.ScryptedMimeTypes.PushEndpoint);
81
+ }
82
+ async setLocalAddresses(addresses) {
83
+ const addressSettings = await this.api.getComponent('addresses');
84
+ return addressSettings.setLocalAddresses(addresses);
85
+ }
86
+ async getLocalAddresses() {
87
+ const addressSettings = await this.api.getComponent('addresses');
88
+ return await addressSettings.getLocalAddresses();
89
+ }
90
+ async setAccessControlAllowOrigin(options) {
91
+ const self = this;
92
+ const setAccessControlAllowOrigin = await this.deviceManager.systemManager.getComponent('setAccessControlAllowOrigin');
93
+ return setAccessControlAllowOrigin(options);
94
+ }
95
+ }
96
+ exports.EndpointManagerImpl = EndpointManagerImpl;
97
+ //# sourceMappingURL=endpoint.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"endpoint.js","sourceRoot":"","sources":["../../src/plugin/endpoint.ts"],"names":[],"mappings":"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"}
@@ -10,7 +10,7 @@ import { PluginRemote } from './plugin-api';
10
10
  import { ConsoleServer } from './plugin-console';
11
11
  import { PluginDebug } from './plugin-debug';
12
12
  import { PluginHostAPI } from './plugin-host-api';
13
- import { RuntimeWorker } from './runtime/runtime-worker';
13
+ import type { RuntimeWorker } from './runtime/runtime-worker';
14
14
  export declare class UnsupportedRuntimeError extends Error {
15
15
  constructor(runtime: string);
16
16
  }
@@ -315,6 +315,14 @@ class PluginHost {
315
315
  if (!workerHost)
316
316
  throw new UnsupportedRuntimeError(this.packageJson.scrypted.runtime);
317
317
  let peer;
318
+ const runtimeWorkerOptions = {
319
+ packageJson: this.packageJson,
320
+ env,
321
+ pluginDebug,
322
+ unzippedPath: this.unzippedPath,
323
+ zipFile: this.zipFile,
324
+ zipHash: this.zipHash,
325
+ };
318
326
  if (!(0, cluster_labels_1.needsClusterForkWorker)(this.packageJson.scrypted)) {
319
327
  this.peer = new rpc_1.RpcPeer('host', this.pluginId, (message, reject, serializationContext) => {
320
328
  if (connected) {
@@ -325,14 +333,7 @@ class PluginHost {
325
333
  }
326
334
  });
327
335
  peer = Promise.resolve(this.peer);
328
- this.worker = workerHost(this.scrypted.mainFilename, this.pluginId, {
329
- packageJson: this.packageJson,
330
- env,
331
- pluginDebug,
332
- unzippedPath: this.unzippedPath,
333
- zipFile: this.zipFile,
334
- zipHash: this.zipHash,
335
- }, this.scrypted);
336
+ this.worker = workerHost(this.scrypted.mainFilename, runtimeWorkerOptions, this.scrypted);
336
337
  this.worker.setupRpcPeer(this.peer);
337
338
  this.worker.stdout.on('data', data => console.log(data.toString()));
338
339
  this.worker.stderr.on('data', data => console.error(data.toString()));
@@ -347,13 +348,13 @@ class PluginHost {
347
348
  }
348
349
  });
349
350
  const clusterSetup = (0, cluster_setup_1.setupCluster)(this.peer);
350
- const { runtimeWorker, forkPeer, clusterWorkerId } = (0, cluster_fork_worker_1.createClusterForkWorker)((async () => {
351
+ const { runtimeWorker, forkPeer, clusterWorkerId } = (0, cluster_fork_worker_1.createClusterForkWorker)(runtimeWorkerOptions, this.packageJson.scrypted, (async () => {
351
352
  await clusterSetup.initializeCluster({
352
353
  clusterId: this.scrypted.clusterId,
353
354
  clusterSecret: this.scrypted.clusterSecret,
354
355
  });
355
356
  return this.scrypted.clusterFork;
356
- })(), this.zipHash, async () => fs_1.default.promises.readFile(this.zipFile), this.packageJson.scrypted, this.packageJson, clusterSetup.connectRPCObject);
357
+ })(), async () => fs_1.default.promises.readFile(this.zipFile), clusterSetup.connectRPCObject);
357
358
  forkPeer.then(peer => {
358
359
  const originalPeer = this.peer;
359
360
  originalPeer.killedSafe.finally(() => peer.kill());
@@ -1 +1 @@
1
- {"version":3,"file":"plugin-host.js","sourceRoot":"","sources":["../../src/plugin/plugin-host.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"plugin-host.js","sourceRoot":"","sources":["../../src/plugin/plugin-host.ts"],"names":[],"mappings":"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"}