@scrypted/server 0.132.0 → 0.132.1
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/dist/scrypted-cluster-main.d.ts +13 -2
- package/dist/scrypted-cluster-main.js +13 -11
- package/dist/scrypted-cluster-main.js.map +1 -1
- package/dist/scrypted-main-exports.d.ts +4 -0
- package/dist/scrypted-main-exports.js.map +1 -1
- package/package.json +1 -1
- package/src/scrypted-cluster-main.ts +25 -11
- package/src/scrypted-main-exports.ts +4 -0
@@ -1,11 +1,17 @@
|
|
1
1
|
import type { ForkOptions } from '@scrypted/types';
|
2
2
|
import tls from 'tls';
|
3
3
|
import type { createSelfSignedCertificate } from './cert';
|
4
|
+
import { getBuiltinRuntimeHosts } from './plugin/runtime/runtime-host';
|
4
5
|
import type { RuntimeWorkerOptions } from './plugin/runtime/runtime-worker';
|
5
6
|
import { RpcPeer } from './rpc';
|
6
7
|
import type { ScryptedRuntime } from './runtime';
|
7
8
|
import { ServiceControl } from './services/service-control';
|
8
|
-
declare function start(mainFilename: string,
|
9
|
+
declare function start(mainFilename: string, options?: {
|
10
|
+
onClusterWorkerCreated?: (options?: {
|
11
|
+
clusterPluginHosts?: ReturnType<typeof getBuiltinRuntimeHosts>;
|
12
|
+
}) => Promise<void>;
|
13
|
+
serviceControl?: ServiceControl;
|
14
|
+
}): Promise<void>;
|
9
15
|
export default start;
|
10
16
|
export interface ClusterForkOptions {
|
11
17
|
runtime?: ForkOptions['runtime'];
|
@@ -48,5 +54,10 @@ export interface ClusterForkResultInterface {
|
|
48
54
|
waitKilled(): Promise<void>;
|
49
55
|
}
|
50
56
|
export type ClusterForkParam = (runtime: string, options: RuntimeWorkerOptions, peerLiveness: PeerLiveness, getZip: () => Promise<Buffer>) => Promise<ClusterForkResultInterface>;
|
51
|
-
export declare function startClusterClient(mainFilename: string,
|
57
|
+
export declare function startClusterClient(mainFilename: string, options?: {
|
58
|
+
onClusterWorkerCreated?: (options?: {
|
59
|
+
clusterPluginHosts?: ReturnType<typeof getBuiltinRuntimeHosts>;
|
60
|
+
}) => Promise<void>;
|
61
|
+
serviceControl?: ServiceControl;
|
62
|
+
}): void;
|
52
63
|
export declare function createClusterServer(mainFilename: string, scryptedRuntime: ScryptedRuntime, certificate: ReturnType<typeof createSelfSignedCertificate>): tls.Server;
|
@@ -16,6 +16,7 @@ const tls_1 = __importDefault(require("tls"));
|
|
16
16
|
const cluster_hash_1 = require("./cluster/cluster-hash");
|
17
17
|
const cluster_labels_1 = require("./cluster/cluster-labels");
|
18
18
|
const cluster_setup_1 = require("./cluster/cluster-setup");
|
19
|
+
const ffmpeg_path_1 = require("./plugin/ffmpeg-path");
|
19
20
|
const plugin_volume_1 = require("./plugin/plugin-volume");
|
20
21
|
const node_worker_common_1 = require("./plugin/runtime/node-worker-common");
|
21
22
|
const runtime_host_1 = require("./plugin/runtime/runtime-host");
|
@@ -25,13 +26,13 @@ const env_1 = require("./services/env");
|
|
25
26
|
const info_1 = require("./services/info");
|
26
27
|
const service_control_1 = require("./services/service-control");
|
27
28
|
const sleep_1 = require("./sleep");
|
28
|
-
const ffmpeg_path_1 = require("./plugin/ffmpeg-path");
|
29
29
|
(0, source_map_support_1.install)({
|
30
30
|
environment: 'node',
|
31
31
|
});
|
32
|
-
async function start(mainFilename,
|
33
|
-
|
34
|
-
|
32
|
+
async function start(mainFilename, options) {
|
33
|
+
options ||= {};
|
34
|
+
options.serviceControl ||= new service_control_1.ServiceControl();
|
35
|
+
startClusterClient(mainFilename, options);
|
35
36
|
}
|
36
37
|
exports.default = start;
|
37
38
|
function peerLifecycle(serializer, peer, socket, type) {
|
@@ -83,11 +84,10 @@ class ClusterForkResult extends PeerLiveness {
|
|
83
84
|
}
|
84
85
|
}
|
85
86
|
exports.ClusterForkResult = ClusterForkResult;
|
86
|
-
function createClusterForkParam(mainFilename, clusterId, clusterSecret, clusterWorkerId) {
|
87
|
+
function createClusterForkParam(mainFilename, clusterId, clusterSecret, clusterWorkerId, clusterPluginHosts) {
|
87
88
|
const clusterForkParam = async (runtime, runtimeWorkerOptions, peerLiveness, getZip) => {
|
88
89
|
let runtimeWorker;
|
89
|
-
const
|
90
|
-
const rt = builtins.get(runtime);
|
90
|
+
const rt = clusterPluginHosts.get(runtime);
|
91
91
|
if (!rt)
|
92
92
|
throw new Error('unknown runtime ' + runtime);
|
93
93
|
const pluginId = runtimeWorkerOptions.packageJson.name;
|
@@ -154,7 +154,7 @@ function createClusterForkParam(mainFilename, clusterId, clusterSecret, clusterW
|
|
154
154
|
};
|
155
155
|
return clusterForkParam;
|
156
156
|
}
|
157
|
-
function startClusterClient(mainFilename,
|
157
|
+
function startClusterClient(mainFilename, options) {
|
158
158
|
console.log('Cluster client starting.');
|
159
159
|
const envControl = new env_1.EnvControl();
|
160
160
|
const originalClusterAddress = process.env.SCRYPTED_CLUSTER_ADDRESS;
|
@@ -163,6 +163,8 @@ function startClusterClient(mainFilename, serviceControl) {
|
|
163
163
|
const clusterSecret = process.env.SCRYPTED_CLUSTER_SECRET;
|
164
164
|
const clusterMode = (0, cluster_setup_1.getScryptedClusterMode)();
|
165
165
|
const [, host, port] = clusterMode;
|
166
|
+
const clusterPluginHosts = (0, runtime_host_1.getBuiltinRuntimeHosts)();
|
167
|
+
options?.onClusterWorkerCreated?.({ clusterPluginHosts });
|
166
168
|
(async () => {
|
167
169
|
while (true) {
|
168
170
|
// this sleep is here to prevent a tight loop if the server is down.
|
@@ -199,7 +201,7 @@ function startClusterClient(mainFilename, serviceControl) {
|
|
199
201
|
else
|
200
202
|
process.env.SCRYPTED_CLUSTER_ADDRESS = socket.localAddress;
|
201
203
|
const peer = preparePeer(socket, 'client');
|
202
|
-
peer.params['service-control'] = serviceControl;
|
204
|
+
peer.params['service-control'] = options?.serviceControl;
|
203
205
|
peer.params['env-control'] = envControl;
|
204
206
|
peer.params['info'] = new info_1.Info();
|
205
207
|
peer.params['fs.promises'] = {
|
@@ -229,7 +231,7 @@ function startClusterClient(mainFilename, serviceControl) {
|
|
229
231
|
const { clusterId, clusterWorkerId } = await connectForkWorker(auth, properties);
|
230
232
|
const clusterPeerSetup = (0, cluster_setup_1.setupCluster)(peer);
|
231
233
|
await clusterPeerSetup.initializeCluster({ clusterId, clusterSecret, clusterWorkerId });
|
232
|
-
peer.params['fork'] = createClusterForkParam(mainFilename, clusterId, clusterSecret, clusterWorkerId);
|
234
|
+
peer.params['fork'] = createClusterForkParam(mainFilename, clusterId, clusterSecret, clusterWorkerId, clusterPluginHosts);
|
233
235
|
await peer.killed;
|
234
236
|
}
|
235
237
|
catch (e) {
|
@@ -249,7 +251,7 @@ function createClusterServer(mainFilename, scryptedRuntime, certificate) {
|
|
249
251
|
labels: (0, cluster_labels_1.getClusterLabels)(),
|
250
252
|
id: scryptedRuntime.serverClusterWorkerId,
|
251
253
|
peer: undefined,
|
252
|
-
fork: Promise.resolve(createClusterForkParam(mainFilename, scryptedRuntime.clusterId, scryptedRuntime.clusterSecret, scryptedRuntime.serverClusterWorkerId)),
|
254
|
+
fork: Promise.resolve(createClusterForkParam(mainFilename, scryptedRuntime.clusterId, scryptedRuntime.clusterSecret, scryptedRuntime.serverClusterWorkerId, scryptedRuntime.pluginHosts)),
|
253
255
|
name: process.env.SCRYPTED_CLUSTER_WORKER_NAME || os_1.default.hostname(),
|
254
256
|
address: process.env.SCRYPTED_CLUSTER_ADDRESS,
|
255
257
|
weight: (0, cluster_labels_1.getClusterWorkerWeight)(),
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"scrypted-cluster-main.js","sourceRoot":"","sources":["../src/scrypted-cluster-main.ts"],"names":[],"mappings":"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"}
|
1
|
+
{"version":3,"file":"scrypted-cluster-main.js","sourceRoot":"","sources":["../src/scrypted-cluster-main.ts"],"names":[],"mappings":"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"}
|
@@ -1,7 +1,11 @@
|
|
1
|
+
import type { getBuiltinRuntimeHosts } from './plugin/runtime/runtime-host';
|
1
2
|
import type { Runtime } from './scrypted-server-main';
|
2
3
|
import type { ServiceControl } from './services/service-control';
|
3
4
|
declare function start(mainFilename: string, options?: {
|
4
5
|
serviceControl?: ServiceControl;
|
5
6
|
onRuntimeCreated?: (runtime: Runtime) => Promise<void>;
|
7
|
+
onClusterWorkerCreated?: (options?: {
|
8
|
+
clusterPluginHosts?: ReturnType<typeof getBuiltinRuntimeHosts>;
|
9
|
+
}) => Promise<void>;
|
6
10
|
}): any;
|
7
11
|
export default start;
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"scrypted-main-exports.js","sourceRoot":"","sources":["../src/scrypted-main-exports.ts"],"names":[],"mappings":";;;;;AAAA,8CAAsB;AACtB,oDAA4B;AAC5B,4CAAoB;AACpB,sDAA8B;AAC9B,oDAA4B;AAC5B,4CAAoB;AACpB,4CAAoB;AACpB,2DAAiE;AACjE,wDAAoD;AACpD,wEAA8E;
|
1
|
+
{"version":3,"file":"scrypted-main-exports.js","sourceRoot":"","sources":["../src/scrypted-main-exports.ts"],"names":[],"mappings":";;;;;AAAA,8CAAsB;AACtB,oDAA4B;AAC5B,4CAAoB;AACpB,sDAA8B;AAC9B,oDAA4B;AAC5B,4CAAoB;AACpB,4CAAoB;AACpB,2DAAiE;AACjE,wDAAoD;AACpD,wEAA8E;AAE9E,+BAAuE;AAEvE,wCAA+C;AAG/C,SAAS,KAAK,CAAC,YAAoB,EAAE,OAMpC;IACG,gEAAgE;IAChE,8DAA8D;IAC9D,gBAAgB;IAChB,IAAI,iBAAO,CAAC,GAAG,CAAC,2BAA2B,IAAI,YAAE,CAAC,UAAU,CAAC,iBAAO,CAAC,GAAG,CAAC,2BAA2B,CAAC,EAAE,CAAC;QACpG,OAAO,CAAC,iBAAO,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC;IACrD,CAAC;IAED,IAAI,CAAC,UAAU,CAAC,EAAE,EAAE,CAAC;QACjB,YAAE,CAAC,kBAAkB,CAAC,aAAa,CAAC,CAAA;QACpC,UAAU,CAAC,EAAE,GAAG,YAAE,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;IAC7C,CAAC;IAED,IAAI,CAAC,gBAAM,CAAC,GAAG,CAAC,iBAAO,CAAC,OAAO,EAAE,QAAQ,CAAC,EAAE,CAAC;QACzC,MAAM,IAAI,KAAK,CAAC,kEAAkE,CAAC,CAAA;IACvF,CAAC;IAED,uEAAuE;IACvE,uEAAuE;IACvE,6DAA6D;IAC7D,mCAAmC;IACnC,aAAG,CAAC,qBAAqB,CAAC,WAAW,CAAC,CAAC;IAEvC,IAAA,oCAA8B,GAAE,CAAC;IAEjC,IAAI,IAAA,4CAAyB,GAAE,EAAE,CAAC;QAC9B,6EAA6E;QAC7E,4CAA4C;QAC5C,iBAAO,CAAC,EAAE,CAAC,mBAAmB,EAAE,CAAC,CAAC,EAAE;YAChC,OAAO,CAAC,KAAK,CAAC,mBAAmB,EAAE,CAAC,CAAC,CAAC;QAC1C,CAAC,CAAC,CAAC;QACH,iBAAO,CAAC,EAAE,CAAC,oBAAoB,EAAE,CAAC,CAAC,EAAE;YACjC,OAAO,CAAC,KAAK,CAAC,oBAAoB,EAAE,CAAC,CAAC,CAAC;QAC3C,CAAC,CAAC,CAAC;QAEH,MAAM,KAAK,GAAG,OAAO,CAAC,wBAAwB,CAAC,CAAC,OAAO,CAAC;QACxD,OAAO,KAAK,CAAC,YAAY,CAAC,CAAC;IAC/B,CAAC;IAED,uEAAuE;IACvE,iBAAO,CAAC,EAAE,CAAC,oBAAoB,EAAE,KAAK,CAAC,EAAE;QACrC,IAAI,KAAK,EAAE,WAAW,KAAK,oBAAc,IAAI,KAAK,EAAE,WAAW,KAAK,0BAAW,EAAE,CAAC;YAC9E,OAAO,CAAC,KAAK,CAAC,aAAa,EAAE,KAAK,CAAC,CAAC;YACpC,MAAM,KAAK,CAAC;QAChB,CAAC;QACD,OAAO,CAAC,IAAI,CAAC,mCAAmC,EAAE,KAAK,CAAC,CAAC;IAC7D,CAAC,CAAC,CAAC;IAEH,gBAAM,CAAC,MAAM,CAAC;QACV,IAAI,EAAE,IAAA,mBAAa,GAAE;KACxB,CAAC,CAAC;IAEH,MAAM,WAAW,GAAG,IAAA,sCAAsB,GAAE,CAAC;IAC7C,IAAI,WAAW,EAAE,CAAC,CAAC,CAAC,KAAK,QAAQ,EAAE,CAAC;QAChC,MAAM,KAAK,GAAG,OAAO,CAAC,yBAAyB,CAAC,CAAC,OAAO,CAAC;QACzD,OAAO,KAAK,CAAC,YAAY,EAAE,OAAO,EAAE,cAAc,CAAC,CAAC;IACxD,CAAC;SACI,CAAC;QACF,MAAM,KAAK,GAAG,OAAO,CAAC,wBAAwB,CAAC,CAAC,OAAO,CAAC;QACxD,OAAO,KAAK,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;IACxC,CAAC;AACL,CAAC;AAED,kBAAe,KAAK,CAAC"}
|
package/package.json
CHANGED
@@ -12,6 +12,7 @@ import { computeClusterObjectHash } from './cluster/cluster-hash';
|
|
12
12
|
import { getClusterLabels, getClusterWorkerWeight } from './cluster/cluster-labels';
|
13
13
|
import { getScryptedClusterMode, InitializeCluster, setupCluster } from './cluster/cluster-setup';
|
14
14
|
import type { ClusterObject } from './cluster/connect-rpc-object';
|
15
|
+
import { getScryptedFFmpegPath } from './plugin/ffmpeg-path';
|
15
16
|
import { getPluginVolume, getScryptedVolume } from './plugin/plugin-volume';
|
16
17
|
import { prepareZip } from './plugin/runtime/node-worker-common';
|
17
18
|
import { getBuiltinRuntimeHosts } from './plugin/runtime/runtime-host';
|
@@ -23,15 +24,20 @@ import { EnvControl } from './services/env';
|
|
23
24
|
import { Info } from './services/info';
|
24
25
|
import { ServiceControl } from './services/service-control';
|
25
26
|
import { sleep } from './sleep';
|
26
|
-
import { getScryptedFFmpegPath } from './plugin/ffmpeg-path';
|
27
27
|
|
28
28
|
installSourceMapSupport({
|
29
29
|
environment: 'node',
|
30
30
|
});
|
31
31
|
|
32
|
-
async function start(mainFilename: string,
|
33
|
-
|
34
|
-
|
32
|
+
async function start(mainFilename: string, options?: {
|
33
|
+
onClusterWorkerCreated?: (options?: {
|
34
|
+
clusterPluginHosts?: ReturnType<typeof getBuiltinRuntimeHosts>,
|
35
|
+
}) => Promise<void>,
|
36
|
+
serviceControl?: ServiceControl;
|
37
|
+
}) {
|
38
|
+
options ||= {};
|
39
|
+
options.serviceControl ||= new ServiceControl();
|
40
|
+
startClusterClient(mainFilename, options);
|
35
41
|
}
|
36
42
|
|
37
43
|
export default start;
|
@@ -122,12 +128,11 @@ export interface ClusterForkResultInterface {
|
|
122
128
|
|
123
129
|
export type ClusterForkParam = (runtime: string, options: RuntimeWorkerOptions, peerLiveness: PeerLiveness, getZip: () => Promise<Buffer>) => Promise<ClusterForkResultInterface>;
|
124
130
|
|
125
|
-
function createClusterForkParam(mainFilename: string, clusterId: string, clusterSecret: string, clusterWorkerId: string) {
|
131
|
+
function createClusterForkParam(mainFilename: string, clusterId: string, clusterSecret: string, clusterWorkerId: string, clusterPluginHosts: ReturnType<typeof getBuiltinRuntimeHosts>) {
|
126
132
|
const clusterForkParam: ClusterForkParam = async (runtime, runtimeWorkerOptions, peerLiveness, getZip) => {
|
127
133
|
let runtimeWorker: RuntimeWorker;
|
128
134
|
|
129
|
-
const
|
130
|
-
const rt = builtins.get(runtime);
|
135
|
+
const rt = clusterPluginHosts.get(runtime);
|
131
136
|
if (!rt)
|
132
137
|
throw new Error('unknown runtime ' + runtime);
|
133
138
|
|
@@ -205,7 +210,12 @@ function createClusterForkParam(mainFilename: string, clusterId: string, cluster
|
|
205
210
|
return clusterForkParam;
|
206
211
|
}
|
207
212
|
|
208
|
-
export function startClusterClient(mainFilename: string,
|
213
|
+
export function startClusterClient(mainFilename: string, options?: {
|
214
|
+
onClusterWorkerCreated?: (options?: {
|
215
|
+
clusterPluginHosts?: ReturnType<typeof getBuiltinRuntimeHosts>,
|
216
|
+
}) => Promise<void>,
|
217
|
+
serviceControl?: ServiceControl;
|
218
|
+
}) {
|
209
219
|
console.log('Cluster client starting.');
|
210
220
|
|
211
221
|
const envControl = new EnvControl();
|
@@ -217,6 +227,10 @@ export function startClusterClient(mainFilename: string, serviceControl?: Servic
|
|
217
227
|
const clusterSecret = process.env.SCRYPTED_CLUSTER_SECRET;
|
218
228
|
const clusterMode = getScryptedClusterMode();
|
219
229
|
const [, host, port] = clusterMode;
|
230
|
+
|
231
|
+
const clusterPluginHosts = getBuiltinRuntimeHosts();
|
232
|
+
options?.onClusterWorkerCreated?.({ clusterPluginHosts });
|
233
|
+
|
220
234
|
(async () => {
|
221
235
|
while (true) {
|
222
236
|
// this sleep is here to prevent a tight loop if the server is down.
|
@@ -259,7 +273,7 @@ export function startClusterClient(mainFilename: string, serviceControl?: Servic
|
|
259
273
|
process.env.SCRYPTED_CLUSTER_ADDRESS = socket.localAddress;
|
260
274
|
|
261
275
|
const peer = preparePeer(socket, 'client');
|
262
|
-
peer.params['service-control'] = serviceControl;
|
276
|
+
peer.params['service-control'] = options?.serviceControl;
|
263
277
|
peer.params['env-control'] = envControl;
|
264
278
|
peer.params['info'] = new Info();
|
265
279
|
peer.params['fs.promises'] = {
|
@@ -294,7 +308,7 @@ export function startClusterClient(mainFilename: string, serviceControl?: Servic
|
|
294
308
|
const clusterPeerSetup = setupCluster(peer);
|
295
309
|
await clusterPeerSetup.initializeCluster({ clusterId, clusterSecret, clusterWorkerId });
|
296
310
|
|
297
|
-
peer.params['fork'] = createClusterForkParam(mainFilename, clusterId, clusterSecret, clusterWorkerId);
|
311
|
+
peer.params['fork'] = createClusterForkParam(mainFilename, clusterId, clusterSecret, clusterWorkerId, clusterPluginHosts);
|
298
312
|
|
299
313
|
await peer.killed;
|
300
314
|
}
|
@@ -316,7 +330,7 @@ export function createClusterServer(mainFilename: string, scryptedRuntime: Scryp
|
|
316
330
|
labels: getClusterLabels(),
|
317
331
|
id: scryptedRuntime.serverClusterWorkerId,
|
318
332
|
peer: undefined,
|
319
|
-
fork: Promise.resolve(createClusterForkParam(mainFilename, scryptedRuntime.clusterId, scryptedRuntime.clusterSecret, scryptedRuntime.serverClusterWorkerId)),
|
333
|
+
fork: Promise.resolve(createClusterForkParam(mainFilename, scryptedRuntime.clusterId, scryptedRuntime.clusterSecret, scryptedRuntime.serverClusterWorkerId, scryptedRuntime.pluginHosts)),
|
320
334
|
name: process.env.SCRYPTED_CLUSTER_WORKER_NAME || os.hostname(),
|
321
335
|
address: process.env.SCRYPTED_CLUSTER_ADDRESS,
|
322
336
|
weight: getClusterWorkerWeight(),
|
@@ -8,6 +8,7 @@ import vm from 'vm';
|
|
8
8
|
import { getScryptedClusterMode } from './cluster/cluster-setup';
|
9
9
|
import { PluginError } from './plugin/plugin-error';
|
10
10
|
import { isNodePluginWorkerProcess } from './plugin/runtime/node-fork-worker';
|
11
|
+
import type { getBuiltinRuntimeHosts } from './plugin/runtime/runtime-host';
|
11
12
|
import { RPCResultError, startPeriodicGarbageCollection } from './rpc';
|
12
13
|
import type { Runtime } from './scrypted-server-main';
|
13
14
|
import { getDotEnvPath } from './services/env';
|
@@ -16,6 +17,9 @@ import type { ServiceControl } from './services/service-control';
|
|
16
17
|
function start(mainFilename: string, options?: {
|
17
18
|
serviceControl?: ServiceControl,
|
18
19
|
onRuntimeCreated?: (runtime: Runtime) => Promise<void>,
|
20
|
+
onClusterWorkerCreated?: (options?: {
|
21
|
+
clusterPluginHosts?: ReturnType<typeof getBuiltinRuntimeHosts>,
|
22
|
+
}) => Promise<void>,
|
19
23
|
}) {
|
20
24
|
// Allow including a custom file path for platforms that require
|
21
25
|
// compatibility hacks. For example, Android may need to patch
|