@scrypted/server 0.115.1 → 0.115.2

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 (47) hide show
  1. package/deno/deno-plugin-remote.ts +4 -0
  2. package/dist/cluster/cluster-hash.js +1 -1
  3. package/dist/cluster/cluster-hash.js.map +1 -1
  4. package/dist/cluster/connect-rpc-object.d.ts +2 -1
  5. package/dist/plugin/plugin-api.d.ts +1 -0
  6. package/dist/plugin/plugin-remote-stats.js +19 -15
  7. package/dist/plugin/plugin-remote-stats.js.map +1 -1
  8. package/dist/plugin/plugin-remote-worker.js +77 -45
  9. package/dist/plugin/plugin-remote-worker.js.map +1 -1
  10. package/dist/plugin/runtime/deno-worker.d.ts +12 -0
  11. package/dist/plugin/runtime/deno-worker.js +84 -0
  12. package/dist/plugin/runtime/deno-worker.js.map +1 -0
  13. package/dist/plugin/runtime/node-fork-worker.d.ts +1 -1
  14. package/dist/plugin/runtime/node-fork-worker.js +2 -2
  15. package/dist/plugin/runtime/node-fork-worker.js.map +1 -1
  16. package/dist/plugin/runtime/node-thread-worker.d.ts +3 -3
  17. package/dist/plugin/runtime/node-thread-worker.js +22 -7
  18. package/dist/plugin/runtime/node-thread-worker.js.map +1 -1
  19. package/dist/rpc-peer-eval.d.ts +4 -1
  20. package/dist/rpc-peer-eval.js +4 -10
  21. package/dist/rpc-peer-eval.js.map +1 -1
  22. package/dist/rpc.js +2 -2
  23. package/dist/rpc.js.map +1 -1
  24. package/dist/runtime.js +2 -0
  25. package/dist/runtime.js.map +1 -1
  26. package/dist/scrypted-main-exports.js +2 -2
  27. package/dist/scrypted-main-exports.js.map +1 -1
  28. package/dist/scrypted-main.js +4 -1
  29. package/dist/scrypted-main.js.map +1 -1
  30. package/dist/scrypted-plugin-main.js +14 -4
  31. package/dist/scrypted-plugin-main.js.map +1 -1
  32. package/package.json +4 -3
  33. package/python/plugin_remote.py +406 -218
  34. package/src/cluster/cluster-hash.ts +1 -1
  35. package/src/cluster/connect-rpc-object.ts +2 -1
  36. package/src/plugin/plugin-api.ts +1 -0
  37. package/src/plugin/plugin-remote-stats.ts +20 -15
  38. package/src/plugin/plugin-remote-worker.ts +87 -47
  39. package/src/plugin/runtime/deno-worker.ts +91 -0
  40. package/src/plugin/runtime/node-fork-worker.ts +3 -5
  41. package/src/plugin/runtime/node-thread-worker.ts +22 -6
  42. package/src/rpc-peer-eval.ts +9 -14
  43. package/src/rpc.ts +3 -3
  44. package/src/runtime.ts +2 -0
  45. package/src/scrypted-main-exports.ts +2 -2
  46. package/src/scrypted-main.ts +4 -1
  47. package/src/scrypted-plugin-main.ts +14 -4
@@ -0,0 +1,4 @@
1
+ import module from 'module';
2
+
3
+ const require = module.createRequire(import.meta.url);
4
+ require("../dist/scrypted-main.js");
@@ -6,7 +6,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.computeClusterObjectHash = computeClusterObjectHash;
7
7
  const crypto_1 = __importDefault(require("crypto"));
8
8
  function computeClusterObjectHash(o, clusterSecret) {
9
- const sha256 = crypto_1.default.createHash('sha256').update(`${o.id}${o.port}${o.sourcePort || ''}${o.proxyId}${clusterSecret}`).digest().toString('base64');
9
+ const sha256 = crypto_1.default.createHash('sha256').update(`${o.id}${o.address || ''}${o.port}${o.sourceKey || ''}${o.proxyId}${clusterSecret}`).digest().toString('base64');
10
10
  return sha256;
11
11
  }
12
12
  //# sourceMappingURL=cluster-hash.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"cluster-hash.js","sourceRoot":"","sources":["../../src/cluster/cluster-hash.ts"],"names":[],"mappings":";;;;;AAGA,4DAGC;AAND,oDAA4B;AAG5B,SAAgB,wBAAwB,CAAC,CAAgB,EAAE,aAAqB;IAC5E,MAAM,MAAM,GAAG,gBAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,UAAU,IAAI,EAAE,GAAG,CAAC,CAAC,OAAO,GAAG,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IACnJ,OAAO,MAAM,CAAC;AAClB,CAAC"}
1
+ {"version":3,"file":"cluster-hash.js","sourceRoot":"","sources":["../../src/cluster/cluster-hash.ts"],"names":[],"mappings":";;;;;AAGA,4DAGC;AAND,oDAA4B;AAG5B,SAAgB,wBAAwB,CAAC,CAAgB,EAAE,aAAqB;IAC5E,MAAM,MAAM,GAAG,gBAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,OAAO,IAAI,EAAE,GAAG,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,SAAS,IAAI,EAAE,GAAG,CAAC,CAAC,OAAO,GAAG,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IACpK,OAAO,MAAM,CAAC;AAClB,CAAC"}
@@ -1,8 +1,9 @@
1
1
  export interface ClusterObject {
2
2
  id: string;
3
+ address: string;
3
4
  port: number;
4
5
  proxyId: string;
5
- sourcePort: number;
6
+ sourceKey: string;
6
7
  sha256: string;
7
8
  }
8
9
  export type ConnectRPCObject = (o: ClusterObject) => Promise<any>;
@@ -68,6 +68,7 @@ export interface PluginRemoteLoadZipOptions {
68
68
  debug?: boolean;
69
69
  zipHash: string;
70
70
  fork?: boolean;
71
+ main?: string;
71
72
  clusterId: string;
72
73
  clusterSecret: string;
73
74
  }
@@ -3,21 +3,25 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.startStatsUpdater = startStatsUpdater;
4
4
  function startStatsUpdater(allMemoryStats, updateStats) {
5
5
  setInterval(() => {
6
- const cpuUsage = process.cpuUsage();
7
- allMemoryStats.set(undefined, process.memoryUsage());
8
- const memoryUsage = {
9
- rss: 0,
10
- heapTotal: 0,
11
- heapUsed: 0,
12
- external: 0,
13
- arrayBuffers: 0,
14
- };
15
- for (const mu of allMemoryStats.values()) {
16
- memoryUsage.rss += mu.rss;
17
- memoryUsage.heapTotal += mu.heapTotal;
18
- memoryUsage.heapUsed += mu.heapUsed;
19
- memoryUsage.external += mu.external;
20
- memoryUsage.arrayBuffers += mu.arrayBuffers;
6
+ let cpuUsage;
7
+ let memoryUsage;
8
+ if (process.cpuUsage) {
9
+ cpuUsage = process.cpuUsage();
10
+ allMemoryStats.set(undefined, process.memoryUsage());
11
+ memoryUsage = {
12
+ rss: 0,
13
+ heapTotal: 0,
14
+ heapUsed: 0,
15
+ external: 0,
16
+ arrayBuffers: 0,
17
+ };
18
+ for (const mu of allMemoryStats.values()) {
19
+ memoryUsage.rss += mu.rss;
20
+ memoryUsage.heapTotal += mu.heapTotal;
21
+ memoryUsage.heapUsed += mu.heapUsed;
22
+ memoryUsage.external += mu.external;
23
+ memoryUsage.arrayBuffers += mu.arrayBuffers;
24
+ }
21
25
  }
22
26
  updateStats({
23
27
  type: 'stats',
@@ -1 +1 @@
1
- {"version":3,"file":"plugin-remote-stats.js","sourceRoot":"","sources":["../../src/plugin/plugin-remote-stats.ts"],"names":[],"mappings":";;AAQA,8CA2BC;AA3BD,SAAgB,iBAAiB,CAAC,cAAyD,EAAE,WAAyC;IAClI,WAAW,CAAC,GAAG,EAAE;QACb,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;QACpC,cAAc,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC;QAErD,MAAM,WAAW,GAAuB;YACpC,GAAG,EAAE,CAAC;YACN,SAAS,EAAE,CAAC;YACZ,QAAQ,EAAE,CAAC;YACX,QAAQ,EAAE,CAAC;YACX,YAAY,EAAE,CAAC;SAClB,CAAA;QAED,KAAK,MAAM,EAAE,IAAI,cAAc,CAAC,MAAM,EAAE,EAAE,CAAC;YACvC,WAAW,CAAC,GAAG,IAAI,EAAE,CAAC,GAAG,CAAC;YAC1B,WAAW,CAAC,SAAS,IAAI,EAAE,CAAC,SAAS,CAAC;YACtC,WAAW,CAAC,QAAQ,IAAI,EAAE,CAAC,QAAQ,CAAC;YACpC,WAAW,CAAC,QAAQ,IAAI,EAAE,CAAC,QAAQ,CAAC;YACpC,WAAW,CAAC,YAAY,IAAI,EAAE,CAAC,YAAY,CAAC;QAChD,CAAC;QAED,WAAW,CAAC;YACR,IAAI,EAAE,OAAO;YACb,GAAG,EAAE,QAAQ;YACb,WAAW;SACd,CAAC,CAAC;IACP,CAAC,EAAE,KAAK,CAAC,CAAC;AACd,CAAC"}
1
+ {"version":3,"file":"plugin-remote-stats.js","sourceRoot":"","sources":["../../src/plugin/plugin-remote-stats.ts"],"names":[],"mappings":";;AAQA,8CAgCC;AAhCD,SAAgB,iBAAiB,CAAC,cAAyD,EAAE,WAAyC;IAClI,WAAW,CAAC,GAAG,EAAE;QACb,IAAI,QAAyB,CAAC;QAC9B,IAAI,WAA+B,CAAC;QACpC,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;YACnB,QAAQ,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;YAC9B,cAAc,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC;YAErD,WAAW,GAAG;gBACV,GAAG,EAAE,CAAC;gBACN,SAAS,EAAE,CAAC;gBACZ,QAAQ,EAAE,CAAC;gBACX,QAAQ,EAAE,CAAC;gBACX,YAAY,EAAE,CAAC;aAClB,CAAA;YAED,KAAK,MAAM,EAAE,IAAI,cAAc,CAAC,MAAM,EAAE,EAAE,CAAC;gBACvC,WAAW,CAAC,GAAG,IAAI,EAAE,CAAC,GAAG,CAAC;gBAC1B,WAAW,CAAC,SAAS,IAAI,EAAE,CAAC,SAAS,CAAC;gBACtC,WAAW,CAAC,QAAQ,IAAI,EAAE,CAAC,QAAQ,CAAC;gBACpC,WAAW,CAAC,QAAQ,IAAI,EAAE,CAAC,QAAQ,CAAC;gBACpC,WAAW,CAAC,YAAY,IAAI,EAAE,CAAC,YAAY,CAAC;YAChD,CAAC;QAEL,CAAC;QAED,WAAW,CAAC;YACR,IAAI,EAAE,OAAO;YACb,GAAG,EAAE,QAAQ;YACb,WAAW;SACd,CAAC,CAAC;IACP,CAAC,EAAE,KAAK,CAAC,CAAC;AACd,CAAC"}
@@ -80,9 +80,14 @@ function startPluginRemote(mainFilename, pluginId, peerSend, startPluginRemoteOp
80
80
  throw new Error(`unknown service ${name}`);
81
81
  },
82
82
  async onLoadZip(scrypted, params, packageJson, getZip, zipOptions) {
83
+ const mainFile = zipOptions?.main || 'main';
84
+ const mainNodejs = `${mainFile}.nodejs.js`;
85
+ const pluginMainNodeJs = `/plugin/${mainNodejs}`;
86
+ const pluginIdMainNodeJs = `/${pluginId}/${mainNodejs}`;
83
87
  const { clusterId, clusterSecret, zipHash } = zipOptions;
84
88
  const { zipFile, unzippedPath } = await (0, node_worker_common_1.prepareZip)((0, plugin_volume_1.getPluginVolume)(pluginId), zipHash, getZip);
85
- const onProxySerialization = (value, sourcePeerPort) => {
89
+ const SCRYPTED_CLUSTER_ADDRESS = process.env.SCRYPTED_CLUSTER_ADDRESS;
90
+ const onProxySerialization = (value, sourceKey) => {
86
91
  const properties = rpc_1.RpcPeer.prepareProxyProperties(value) || {};
87
92
  let clusterEntry = properties.__cluster;
88
93
  // ensure globally stable proxyIds.
@@ -90,15 +95,15 @@ function startPluginRemote(mainFilename, pluginId, peerSend, startPluginRemoteOp
90
95
  // if the cluster entry already exists, check if it belongs to this node.
91
96
  // if it belongs to this node, the entry must also be for this peer.
92
97
  // relying on the liveness/gc of a different peer may cause race conditions.
93
- if (clusterEntry && clusterPort === clusterEntry.port && sourcePeerPort !== clusterEntry.sourcePort)
98
+ if (clusterEntry && clusterPort === clusterEntry.port && sourceKey !== clusterEntry.sourceKey)
94
99
  clusterEntry = undefined;
95
- // set the cluster identity if it does not exist.
96
100
  if (!clusterEntry) {
97
101
  clusterEntry = {
98
102
  id: clusterId,
103
+ address: SCRYPTED_CLUSTER_ADDRESS,
99
104
  port: clusterPort,
100
105
  proxyId,
101
- sourcePort: sourcePeerPort,
106
+ sourceKey,
102
107
  sha256: null,
103
108
  };
104
109
  clusterEntry.sha256 = (0, cluster_hash_1.computeClusterObjectHash)(clusterEntry, clusterSecret);
@@ -110,8 +115,10 @@ function startPluginRemote(mainFilename, pluginId, peerSend, startPluginRemoteOp
110
115
  };
111
116
  };
112
117
  peer.onProxySerialization = onProxySerialization;
113
- const resolveObject = async (id, sourcePeerPort) => {
114
- const sourcePeer = sourcePeerPort ? await clusterPeers.get(sourcePeerPort) : peer;
118
+ const resolveObject = async (id, sourceKey) => {
119
+ const sourcePeer = sourceKey
120
+ ? await clusterPeers.get(sourceKey)
121
+ : peer;
115
122
  return sourcePeer?.localProxyMap.get(id);
116
123
  };
117
124
  // all cluster clients, incoming and outgoing, connect with random ports which can be used as peer ids
@@ -119,63 +126,79 @@ function startPluginRemote(mainFilename, pluginId, peerSend, startPluginRemoteOp
119
126
  // incoming connections: use the remote random/unique port
120
127
  // outgoing connections: use the local random/unique port
121
128
  const clusterPeers = new Map();
129
+ function getClusterPeerKey(address, port) {
130
+ return `${address}:${port}`;
131
+ }
122
132
  const clusterRpcServer = net_1.default.createServer(client => {
123
133
  const clusterPeer = (0, rpc_serializer_1.createDuplexRpcPeer)(peer.selfName, 'cluster-client', client, client);
134
+ const clusterPeerAddress = client.remoteAddress;
124
135
  const clusterPeerPort = client.remotePort;
125
- clusterPeer.onProxySerialization = (value) => onProxySerialization(value, clusterPeerPort);
126
- clusterPeers.set(clusterPeerPort, Promise.resolve(clusterPeer));
136
+ const clusterPeerKey = getClusterPeerKey(clusterPeerAddress, clusterPeerPort);
137
+ // the listening peer sourceKey (client address/port) is used by the OTHER peer (the client)
138
+ // to determine if it is already connected to THIS peer (the server).
139
+ clusterPeer.onProxySerialization = (value) => onProxySerialization(value, clusterPeerKey);
140
+ clusterPeers.set(clusterPeerKey, Promise.resolve(clusterPeer));
127
141
  startPluginRemoteOptions?.onClusterPeer?.(clusterPeer);
128
142
  const connectRPCObject = async (o) => {
129
143
  const sha256 = (0, cluster_hash_1.computeClusterObjectHash)(o, clusterSecret);
130
144
  if (sha256 !== o.sha256)
131
145
  throw new Error('secret incorrect');
132
- return resolveObject(o.proxyId, o.sourcePort);
146
+ return resolveObject(o.proxyId, o.sourceKey);
133
147
  };
134
148
  clusterPeer.params['connectRPCObject'] = connectRPCObject;
135
149
  client.on('close', () => {
136
- clusterPeers.delete(clusterPeerPort);
150
+ clusterPeers.delete(clusterPeerKey);
137
151
  clusterPeer.kill('cluster socket closed');
138
152
  });
139
153
  });
140
- const clusterPort = await (0, listen_zero_1.listenZero)(clusterRpcServer, '127.0.0.1');
141
- const ensureClusterPeer = (connectPort) => {
142
- let clusterPeerPromise = clusterPeers.get(connectPort);
143
- if (!clusterPeerPromise) {
144
- clusterPeerPromise = (async () => {
145
- const socket = net_1.default.connect(connectPort, '127.0.0.1');
146
- socket.on('close', () => clusterPeers.delete(connectPort));
147
- try {
148
- await (0, events_1.once)(socket, 'connect');
149
- // the sourcePort will be added to all rpc objects created by this peer session and used by resolveObject for later
150
- // resolution when trying to find the peer.
151
- const sourcePort = socket.address().port;
152
- const clusterPeer = (0, rpc_serializer_1.createDuplexRpcPeer)(peer.selfName, 'cluster-server', socket, socket);
153
- clusterPeer.onProxySerialization = (value) => onProxySerialization(value, sourcePort);
154
- return clusterPeer;
155
- }
156
- catch (e) {
157
- console.error('failure ipc connect', e);
158
- socket.destroy();
159
- throw e;
160
- }
161
- })();
162
- clusterPeers.set(connectPort, clusterPeerPromise);
163
- }
154
+ const listenAddress = SCRYPTED_CLUSTER_ADDRESS
155
+ ? '0.0.0.0'
156
+ : '127.0.0.1';
157
+ const clusterPort = await (0, listen_zero_1.listenZero)(clusterRpcServer, listenAddress);
158
+ const ensureClusterPeer = (address, connectPort) => {
159
+ if (!address || address === SCRYPTED_CLUSTER_ADDRESS)
160
+ address = '127.0.0.1';
161
+ const clusterPeerKey = getClusterPeerKey(address, connectPort);
162
+ let clusterPeerPromise = clusterPeers.get(clusterPeerKey);
163
+ if (clusterPeerPromise)
164
+ return clusterPeerPromise;
165
+ clusterPeerPromise = (async () => {
166
+ const socket = net_1.default.connect(connectPort, address);
167
+ socket.on('close', () => clusterPeers.delete(clusterPeerKey));
168
+ try {
169
+ await (0, events_1.once)(socket, 'connect');
170
+ // this connecting peer sourceKey (server address/port) is used by the OTHER peer (the server)
171
+ // to determine if it is already connected to THIS peer (the client).
172
+ const { address: sourceAddress, port: sourcePort } = socket.address();
173
+ if (sourceAddress !== SCRYPTED_CLUSTER_ADDRESS && sourceAddress !== '127.0.0.1')
174
+ console.warn("source address mismatch", sourceAddress);
175
+ const sourcePeerKey = getClusterPeerKey(sourceAddress, sourcePort);
176
+ const clusterPeer = (0, rpc_serializer_1.createDuplexRpcPeer)(peer.selfName, 'cluster-server', socket, socket);
177
+ clusterPeer.onProxySerialization = (value) => onProxySerialization(value, sourcePeerKey);
178
+ return clusterPeer;
179
+ }
180
+ catch (e) {
181
+ console.error('failure ipc connect', e);
182
+ socket.destroy();
183
+ throw e;
184
+ }
185
+ })();
186
+ clusterPeers.set(clusterPeerKey, clusterPeerPromise);
164
187
  return clusterPeerPromise;
165
188
  };
166
189
  scrypted.connectRPCObject = async (value) => {
167
190
  const clusterObject = value?.__cluster;
168
191
  if (clusterObject?.id !== clusterId)
169
192
  return value;
170
- const { port, proxyId, sourcePort } = clusterObject;
193
+ const { address, port, proxyId, sourceKey } = clusterObject;
171
194
  // handle the case when trying to connect to an object is on this cluster node,
172
195
  // returning the actual object, rather than initiating a loopback connection.
173
196
  if (port === clusterPort)
174
- return resolveObject(proxyId, sourcePort);
197
+ return resolveObject(proxyId, sourceKey);
175
198
  try {
176
- const clusterPeerPromise = ensureClusterPeer(port);
199
+ const clusterPeerPromise = ensureClusterPeer(address, port);
177
200
  const clusterPeer = await clusterPeerPromise;
178
- // the proxy id is guaranteed to be unique in all peers in a cluster
201
+ // may already have this proxy so check first.
179
202
  const existing = clusterPeer.remoteWeakProxies[proxyId]?.deref();
180
203
  if (existing)
181
204
  return existing;
@@ -238,7 +261,7 @@ function startPluginRemote(mainFilename, pluginId, peerSend, startPluginRemoteOp
238
261
  // window.exports = exports;
239
262
  // params.window = window;
240
263
  params.exports = exports;
241
- const entry = pluginReader('main.nodejs.js.map');
264
+ const entry = pluginReader(`${mainNodejs}.map`);
242
265
  const map = entry?.toString();
243
266
  // plugins may install their own sourcemap support during startup, so
244
267
  // hook the sourcemap installation after everything is loaded.
@@ -256,11 +279,11 @@ function startPluginRemote(mainFilename, pluginId, peerSend, startPluginRemoteOp
256
279
  (0, source_map_support_1.install)({
257
280
  environment: 'node',
258
281
  retrieveSourceMap(source) {
259
- if (source === '/plugin/main.nodejs.js' || source === `/${pluginId}/main.nodejs.js`) {
282
+ if (source === pluginMainNodeJs || source === pluginIdMainNodeJs) {
260
283
  if (!map)
261
284
  return null;
262
285
  return {
263
- url: '/plugin/main.nodejs.js',
286
+ url: pluginMainNodeJs,
264
287
  map,
265
288
  };
266
289
  }
@@ -279,13 +302,13 @@ function startPluginRemote(mainFilename, pluginId, peerSend, startPluginRemoteOp
279
302
  pong ||= await peer.getParam('pong');
280
303
  await pong(time);
281
304
  };
282
- const main = pluginReader('main.nodejs.js');
305
+ const main = pluginReader(mainNodejs);
283
306
  const script = main.toString();
284
307
  scrypted.connect = (socket, options) => {
285
308
  process.send(options, socket);
286
309
  };
287
310
  const pluginRemoteAPI = scrypted.pluginRemoteAPI;
288
- scrypted.fork = () => {
311
+ scrypted.fork = (options) => {
289
312
  const ntw = new node_thread_worker_1.NodeThreadWorker(mainFilename, pluginId, {
290
313
  packageJson,
291
314
  env: process.env,
@@ -293,6 +316,8 @@ function startPluginRemote(mainFilename, pluginId, peerSend, startPluginRemoteOp
293
316
  zipFile,
294
317
  unzippedPath,
295
318
  zipHash,
319
+ }, {
320
+ name: options?.name,
296
321
  });
297
322
  const result = (async () => {
298
323
  const threadPeer = new rpc_1.RpcPeer('main', 'thread', (message, reject) => ntw.send(message, reject));
@@ -316,17 +341,24 @@ function startPluginRemote(mainFilename, pluginId, peerSend, startPluginRemoteOp
316
341
  const forkApi = new PluginForkAPI(api);
317
342
  const remote = await (0, plugin_remote_1.setupPluginRemote)(threadPeer, forkApi, pluginId, { serverVersion }, () => systemManager.getSystemState());
318
343
  forks.add(remote);
319
- ntw.worker.on('exit', () => {
344
+ ntw.on('exit', () => {
320
345
  threadPeer.kill('worker exited');
321
346
  forkApi.removeListeners();
322
347
  forks.delete(remote);
323
348
  allMemoryStats.delete(ntw);
324
349
  });
350
+ ntw.on('error', e => {
351
+ threadPeer.kill('worker error ' + e);
352
+ forkApi.removeListeners();
353
+ forks.delete(remote);
354
+ allMemoryStats.delete(ntw);
355
+ });
325
356
  for (const [nativeId, dmd] of deviceManager.nativeIds.entries()) {
326
357
  await remote.setNativeId(nativeId, dmd.id, dmd.storage);
327
358
  }
328
359
  const forkOptions = Object.assign({}, zipOptions);
329
360
  forkOptions.fork = true;
361
+ forkOptions.main = options?.filename;
330
362
  return remote.loadZip(packageJson, getZip, forkOptions);
331
363
  })();
332
364
  result.catch(() => ntw.kill());
@@ -336,7 +368,7 @@ function startPluginRemote(mainFilename, pluginId, peerSend, startPluginRemoteOp
336
368
  };
337
369
  };
338
370
  try {
339
- const filename = zipOptions?.debug ? '/plugin/main.nodejs.js' : `/${pluginId}/main.nodejs.js`;
371
+ const filename = zipOptions?.debug ? pluginMainNodeJs : pluginIdMainNodeJs;
340
372
  (0, rpc_peer_eval_1.evalLocal)(peer, script, filename, params);
341
373
  if (zipOptions?.fork) {
342
374
  // pluginConsole?.log('plugin forked');
@@ -1 +1 @@
1
- {"version":3,"file":"plugin-remote-worker.js","sourceRoot":"","sources":["../../src/plugin/plugin-remote-worker.ts"],"names":[],"mappings":";;;;;AA8BA,8CAuYC;AApaD,mCAA8B;AAC9B,4CAAoB;AACpB,8CAAsB;AACtB,gDAAwB;AACxB,2DAAwE;AACxE,oEAA4C;AAC5C,0DAAmE;AAEnE,gDAA4C;AAC5C,gCAA6C;AAC7C,oDAA6C;AAC7C,sDAAwD;AACxD,mCAA2C;AAC3C,6CAAmG;AACnG,qDAAmD;AACnD,uEAA2F;AAC3F,mDAA2F;AAC3F,+DAAuE;AACvE,+CAAiD;AACjD,mDAAkD;AAClD,qEAAgE;AAChE,qEAA0D;AAE1D,MAAM,aAAa,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAAC,OAAO,CAAC;AAM5D,SAAgB,iBAAiB,CAAC,YAAoB,EAAE,QAAgB,EAAE,QAAgG,EAAE,wBAAmD;IAC3N,MAAM,IAAI,GAAG,IAAI,aAAO,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;IAEtD,IAAI,aAA4B,CAAC;IACjC,IAAI,aAAgC,CAAC;IACrC,IAAI,GAAc,CAAC;IAGnB,IAAI,cAA4B,CAAC;IACjC,SAAS,UAAU;QACf,IAAI,CAAC,cAAc;YACf,cAAc,GAAG,GAAG,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;QACjD,OAAO,cAAc,CAAC;IAC1B,CAAC;IAED,MAAM,EAAE,gBAAgB,EAAE,eAAe,EAAE,GAAG,IAAA,gCAAe,EAAC,GAAG,EAAE,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,EAAE,CAAC,aAAa,EAAE,GAAG,EAAE,CAAC,aAAa,EAAE,UAAU,CAAC,CAAC;IAEzI,IAAI,QAAyB,CAAC;IAE9B,IAAI,cAAuB,CAAC;IAC5B,MAAM,gBAAgB,GAAG,GAAG,EAAE;QAC1B,IAAI,CAAC,cAAc;YACf,cAAc,GAAG,gBAAgB,CAAC,SAAS,CAAC,CAAC;QACjD,OAAO,cAAc,CAAC;IAC1B,CAAC,CAAA;IAED,IAAI,2BAA+D,CAAC;IAEpE,MAAM,KAAK,GAAG,IAAI,GAAG,EAAgB,CAAC;IAEtC,IAAA,kCAAkB,EAAC,IAAI,EAAE;QACrB,kBAAkB,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;YACjC,aAAa,GAAG,EAAE,CAAC;YACnB,aAAa,GAAG,EAAE,CAAA;YAClB,OAAO,IAAI,wBAAgB,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC;QACnD,CAAC;QACD,WAAW,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE;YACnC,MAAM,iBAAkB,SAAQ,2BAAc;gBAC1C,CAAC,aAAO,CAAC,6BAA6B,CAAC,GAAI,IAAY,CAAC,aAAO,CAAC,6BAA6B,CAAC,CAAC;gBAE/F,UAAU,CAAC,QAAgB,EAAE,OAAgC;oBACzD,MAAM,EAAE,GAAG,aAAa,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC;oBACpD,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;wBACpB,CAAC,CAAC,WAAW,CAAC,QAAQ,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC;oBACzC,CAAC;oBACD,OAAO,KAAK,CAAC,UAAU,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;gBAC/C,CAAC;aACJ;YAED,GAAG,GAAG,IAAI,iBAAiB,CAAC,IAAI,CAAC,CAAC;YAClC,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;YACzB,OAAO,GAAG,CAAC;QACf,CAAC;QACD,gBAAgB;QAChB,gBAAgB;QAChB,eAAe;QACf,KAAK,CAAC,cAAc,CAAC,IAAI,EAAE,GAAG,IAAW;YACrC,IAAI,IAAI,KAAK,MAAM,EAAE,CAAC;gBAClB,IAAI,CAAC,QAAQ;oBACT,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAA;gBAC3D,OAAO,QAAQ,CAAC;YACpB,CAAC;YACD,MAAM,IAAI,KAAK,CAAC,mBAAmB,IAAI,EAAE,CAAC,CAAC;QAC/C,CAAC;QACD,KAAK,CAAC,SAAS,CAAC,QAAwB,EAAE,MAAW,EAAE,WAAgB,EAAE,MAA6B,EAAE,UAAsC;YAC1I,MAAM,EAAE,SAAS,EAAE,aAAa,EAAE,OAAO,EAAE,GAAG,UAAU,CAAC;YACzD,MAAM,EAAE,OAAO,EAAE,YAAY,EAAE,GAAG,MAAM,IAAA,+BAAU,EAAC,IAAA,+BAAe,EAAC,QAAQ,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;YAE/F,MAAM,oBAAoB,GAAG,CAAC,KAAU,EAAE,cAAuB,EAAE,EAAE;gBACjE,MAAM,UAAU,GAAG,aAAO,CAAC,sBAAsB,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;gBAC/D,IAAI,YAAY,GAAkB,UAAU,CAAC,SAAS,CAAC;gBAEvD,mCAAmC;gBACnC,MAAM,OAAO,GAAG,YAAY,EAAE,OAAO,IAAI,aAAO,CAAC,UAAU,EAAE,CAAC;gBAE9D,yEAAyE;gBACzE,oEAAoE;gBACpE,4EAA4E;gBAC5E,IAAI,YAAY,IAAI,WAAW,KAAK,YAAY,CAAC,IAAI,IAAI,cAAc,KAAK,YAAY,CAAC,UAAU;oBAC/F,YAAY,GAAG,SAAS,CAAC;gBAE7B,iDAAiD;gBACjD,IAAI,CAAC,YAAY,EAAE,CAAC;oBAChB,YAAY,GAAG;wBACX,EAAE,EAAE,SAAS;wBACb,IAAI,EAAE,WAAW;wBACjB,OAAO;wBACP,UAAU,EAAE,cAAc;wBAC1B,MAAM,EAAE,IAAI;qBACf,CAAC;oBACF,YAAY,CAAC,MAAM,GAAG,IAAA,uCAAwB,EAAC,YAAY,EAAE,aAAa,CAAC,CAAC;oBAC5E,UAAU,CAAC,SAAS,GAAG,YAAY,CAAC;gBACxC,CAAC;gBAED,OAAO;oBACH,OAAO;oBACP,UAAU;iBACb,CAAC;YACN,CAAC,CAAA;YACD,IAAI,CAAC,oBAAoB,GAAG,oBAAoB,CAAC;YAEjD,MAAM,aAAa,GAAG,KAAK,EAAE,EAAU,EAAE,cAAsB,EAAE,EAAE;gBAC/D,MAAM,UAAU,GAAG,cAAc,CAAC,CAAC,CAAC,MAAM,YAAY,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;gBAClF,OAAO,UAAU,EAAE,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAC7C,CAAC,CAAA;YAED,sGAAsG;YACtG,8DAA8D;YAC9D,0DAA0D;YAC1D,yDAAyD;YACzD,MAAM,YAAY,GAAG,IAAI,GAAG,EAA4B,CAAC;YACzD,MAAM,gBAAgB,GAAG,aAAG,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE;gBAC/C,MAAM,WAAW,GAAG,IAAA,oCAAmB,EAAC,IAAI,CAAC,QAAQ,EAAE,gBAAgB,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;gBACzF,MAAM,eAAe,GAAG,MAAM,CAAC,UAAU,CAAC;gBAC1C,WAAW,CAAC,oBAAoB,GAAG,CAAC,KAAK,EAAE,EAAE,CAAC,oBAAoB,CAAC,KAAK,EAAE,eAAe,CAAC,CAAC;gBAC3F,YAAY,CAAC,GAAG,CAAC,eAAe,EAAE,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC;gBAChE,wBAAwB,EAAE,aAAa,EAAE,CAAC,WAAW,CAAC,CAAC;gBACvD,MAAM,gBAAgB,GAAqB,KAAK,EAAE,CAAC,EAAE,EAAE;oBACnD,MAAM,MAAM,GAAG,IAAA,uCAAwB,EAAC,CAAC,EAAE,aAAa,CAAC,CAAC;oBAC1D,IAAI,MAAM,KAAK,CAAC,CAAC,MAAM;wBACnB,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAC;oBACxC,OAAO,aAAa,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,UAAU,CAAC,CAAC;gBAClD,CAAC,CAAA;gBACD,WAAW,CAAC,MAAM,CAAC,kBAAkB,CAAC,GAAG,gBAAgB,CAAC;gBAC1D,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;oBACpB,YAAY,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;oBACrC,WAAW,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;gBAC9C,CAAC,CAAC,CAAC;YACP,CAAC,CAAC,CAAA;YACF,MAAM,WAAW,GAAG,MAAM,IAAA,wBAAU,EAAC,gBAAgB,EAAE,WAAW,CAAC,CAAC;YAEpE,MAAM,iBAAiB,GAAG,CAAC,WAAmB,EAAE,EAAE;gBAC9C,IAAI,kBAAkB,GAAG,YAAY,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;gBACvD,IAAI,CAAC,kBAAkB,EAAE,CAAC;oBACtB,kBAAkB,GAAG,CAAC,KAAK,IAAI,EAAE;wBAC7B,MAAM,MAAM,GAAG,aAAG,CAAC,OAAO,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;wBACrD,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,YAAY,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC;wBAE3D,IAAI,CAAC;4BACD,MAAM,IAAA,aAAI,EAAC,MAAM,EAAE,SAAS,CAAC,CAAC;4BAC9B,mHAAmH;4BACnH,2CAA2C;4BAC3C,MAAM,UAAU,GAAI,MAAM,CAAC,OAAO,EAAsB,CAAC,IAAI,CAAC;4BAE9D,MAAM,WAAW,GAAG,IAAA,oCAAmB,EAAC,IAAI,CAAC,QAAQ,EAAE,gBAAgB,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;4BACzF,WAAW,CAAC,oBAAoB,GAAG,CAAC,KAAK,EAAE,EAAE,CAAC,oBAAoB,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;4BACtF,OAAO,WAAW,CAAC;wBACvB,CAAC;wBACD,OAAO,CAAC,EAAE,CAAC;4BACP,OAAO,CAAC,KAAK,CAAC,qBAAqB,EAAE,CAAC,CAAC,CAAC;4BACxC,MAAM,CAAC,OAAO,EAAE,CAAC;4BACjB,MAAM,CAAC,CAAC;wBACZ,CAAC;oBACL,CAAC,CAAC,EAAE,CAAC;oBACL,YAAY,CAAC,GAAG,CAAC,WAAW,EAAE,kBAAkB,CAAC,CAAC;gBACtD,CAAC;gBACD,OAAO,kBAAkB,CAAC;YAC9B,CAAC,CAAC;YAEF,QAAQ,CAAC,gBAAgB,GAAG,KAAK,EAAE,KAAU,EAAE,EAAE;gBAC7C,MAAM,aAAa,GAAkB,KAAK,EAAE,SAAS,CAAC;gBACtD,IAAI,aAAa,EAAE,EAAE,KAAK,SAAS;oBAC/B,OAAO,KAAK,CAAC;gBACjB,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,UAAU,EAAE,GAAG,aAAa,CAAC;gBACpD,+EAA+E;gBAC/E,6EAA6E;gBAC7E,IAAI,IAAI,KAAK,WAAW;oBACpB,OAAO,aAAa,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;gBAE9C,IAAI,CAAC;oBACD,MAAM,kBAAkB,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC;oBACnD,MAAM,WAAW,GAAG,MAAM,kBAAkB,CAAC;oBAC7C,oEAAoE;oBACpE,MAAM,QAAQ,GAAG,WAAW,CAAC,iBAAiB,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,CAAC;oBACjE,IAAI,QAAQ;wBACR,OAAO,QAAQ,CAAC;oBACpB,IAAI,oBAAoB,GAAqB,WAAW,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;oBAClF,IAAI,CAAC,oBAAoB,EAAE,CAAC;wBACxB,oBAAoB,GAAG,MAAM,WAAW,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC;wBACtE,WAAW,CAAC,IAAI,CAAC,kBAAkB,CAAC,GAAG,oBAAoB,CAAC;oBAChE,CAAC;oBACD,MAAM,QAAQ,GAAG,MAAM,oBAAoB,CAAC,aAAa,CAAC,CAAC;oBAC3D,IAAI,CAAC,QAAQ;wBACT,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;oBAC7C,OAAO,QAAQ,CAAC;gBACpB,CAAC;gBACD,OAAO,CAAC,EAAE,CAAC;oBACP,OAAO,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC;oBAChC,OAAO,KAAK,CAAC;gBACjB,CAAC;YACL,CAAC,CAAA;YACD,IAAI,wBAAc,CAAC,YAAY,EAAE,CAAC;gBAC9B,MAAM,KAAK,GAAG,cAAI,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,CAAA;gBAC3C,IAAI,YAAE,CAAC,UAAU,CAAC,KAAK,CAAC;oBACpB,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;;oBAErB,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;YACpC,CAAC;YAED,MAAM,YAAY,GAAG,CAAC,IAAY,EAAE,EAAE;gBAClC,MAAM,QAAQ,GAAG,cAAI,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;gBAC/C,IAAI,CAAC,YAAE,CAAC,UAAU,CAAC,QAAQ,CAAC;oBACxB,OAAO;gBACX,OAAO,YAAE,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;YACrC,CAAC,CAAC;YAEF,MAAM,aAAa,GAAG,gBAAgB,EAAE,EAAE,CAAC;YAC3C,MAAM,CAAC,OAAO,GAAG,aAAa,CAAC;YAC/B,MAAM,GAAG,GAAG,IAAA,2CAAiB,EAAC,QAAQ,CAAC,CAAC;YACxC,aAAa,EAAE,GAAG,CAAC,cAAc,EAAE,GAAG,CAAC,CAAC;YACxC,MAAM,CAAC,OAAO,GAAG,CAAC,IAAY,EAAE,EAAE;gBAC9B,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;oBACpB,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC;gBACzB,CAAC;gBACD,IAAI,CAAC;oBACD,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,YAAY,EAAE,CAAC;wBACvC,IAAI,CAAC;4BACD,MAAM,CAAC,GAAG,cAAI,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;4BACxC,MAAM,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;4BAC1B,OAAO,MAAM,CAAC;wBAClB,CAAC;wBACD,OAAO,CAAC,EAAE,CAAC;wBACX,CAAC;oBACL,CAAC;oBACD,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;oBAC7B,OAAO,MAAM,CAAC;gBAClB,CAAC;gBACD,OAAO,CAAC,EAAE,CAAC;oBACP,MAAM,CAAC,GAAG,cAAI,CAAC,IAAI,CAAC,GAAG,EAAE,cAAc,EAAE,IAAI,CAAC,CAAC;oBAC/C,OAAO,OAAO,CAAC,CAAC,CAAC,CAAC;gBACtB,CAAC;YACL,CAAC,CAAC;YACF,0BAA0B;YAC1B,MAAM,OAAO,GAAQ,EAAE,CAAC;YACxB,4BAA4B;YAC5B,0BAA0B;YAC1B,MAAM,CAAC,OAAO,GAAG,OAAO,CAAC;YAEzB,MAAM,KAAK,GAAG,YAAY,CAAC,oBAAoB,CAAC,CAAA;YAChD,MAAM,GAAG,GAAG,KAAK,EAAE,QAAQ,EAAE,CAAC;YAE9B,qEAAqE;YACrE,8DAA8D;YAC9D,2BAA2B,GAAG,CAAC,QAAQ,EAAE,EAAE;gBACvC,OAAO,CAAC,kBAAkB,CAAC,mBAAmB,CAAC,CAAC;gBAChD,OAAO,CAAC,kBAAkB,CAAC,oBAAoB,CAAC,CAAC;gBAEjD,OAAO,CAAC,EAAE,CAAC,mBAAmB,EAAE,CAAC,CAAC,EAAE;oBAChC,gBAAgB,EAAE,CAAC,KAAK,CAAC,mBAAmB,EAAE,CAAC,CAAC,CAAC;oBACjD,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,oBAAoB,GAAG,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC;gBACtE,CAAC,CAAC,CAAC;gBACH,OAAO,CAAC,EAAE,CAAC,oBAAoB,EAAE,CAAC,CAAC,EAAE;oBACjC,gBAAgB,EAAE,CAAC,KAAK,CAAC,oBAAoB,EAAE,CAAC,CAAC,CAAC;oBAClD,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,qBAAqB,GAAG,CAAE,CAAW,CAAC,KAAK,IAAI,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC;gBAClF,CAAC,CAAC,CAAC;gBAEH,IAAA,4BAAuB,EAAC;oBACpB,WAAW,EAAE,MAAM;oBACnB,iBAAiB,CAAC,MAAM;wBACpB,IAAI,MAAM,KAAK,wBAAwB,IAAI,MAAM,KAAK,IAAI,QAAQ,iBAAiB,EAAE,CAAC;4BAClF,IAAI,CAAC,GAAG;gCACJ,OAAO,IAAI,CAAC;4BAChB,OAAO;gCACH,GAAG,EAAE,wBAAwB;gCAC7B,GAAG;6BACN,CAAA;wBACL,CAAC;wBACD,OAAO,IAAI,CAAC;oBAChB,CAAC;iBACJ,CAAC,CAAC;YACP,CAAC,CAAC;YAEF,MAAM,IAAA,qDAA2B,EAAC,gBAAgB,EAAE,EAAE,WAAW,CAAC,CAAC;YAEnE,8CAA8C;YAC9C,qCAAqC;YACrC,MAAM,cAAc,GAAG,IAAI,GAAG,EAAwC,CAAC;YACvE,gGAAgG;YAChG,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,IAAA,uCAAiB,EAAC,cAAc,EAAE,WAAW,CAAC,CAAC,CAAC;YAEjG,IAAI,IAAqC,CAAC;YAC1C,IAAI,CAAC,MAAM,CAAC,IAAI,GAAG,KAAK,EAAE,IAAY,EAAE,EAAE;gBACtC,IAAI,KAAK,MAAM,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;gBACrC,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC;YACrB,CAAC,CAAC;YAEF,MAAM,IAAI,GAAG,YAAY,CAAC,gBAAgB,CAAC,CAAC;YAC5C,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;YAE/B,QAAQ,CAAC,OAAO,GAAG,CAAC,MAAM,EAAE,OAAO,EAAE,EAAE;gBACnC,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;YAClC,CAAC,CAAA;YAED,MAAM,eAAe,GAAiB,QAAQ,CAAC,eAAe,CAAC;YAE/D,QAAQ,CAAC,IAAI,GAAG,GAAG,EAAE;gBACjB,MAAM,GAAG,GAAG,IAAI,qCAAgB,CAAC,YAAY,EAAE,QAAQ,EAAE;oBACrD,WAAW;oBACX,GAAG,EAAE,OAAO,CAAC,GAAG;oBAChB,WAAW,EAAE,SAAS;oBACtB,OAAO;oBACP,YAAY;oBACZ,OAAO;iBACV,CAAC,CAAC;gBAEH,MAAM,MAAM,GAAG,CAAC,KAAK,IAAI,EAAE;oBACvB,MAAM,UAAU,GAAG,IAAI,aAAO,CAAC,MAAM,EAAE,QAAQ,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC;oBACjG,UAAU,CAAC,MAAM,CAAC,WAAW,GAAG,CAAC,KAAkB,EAAE,EAAE;wBACnD,cAAc,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,WAAW,CAAC,CAAC;oBAC/C,CAAC,CAAA;oBACD,GAAG,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC;oBAE7B,MAAM,aAAc,SAAQ,2BAAc;wBACtC,CAAC,aAAO,CAAC,6BAA6B,CAAC,GAAI,GAAW,CAAC,aAAO,CAAC,6BAA6B,CAAC,CAAC;wBAE9F,UAAU,CAAC,QAAgB,EAAE,OAAgC;4BACzD,MAAM,EAAE,GAAG,aAAa,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC;4BACpD,eAAe,CAAC,WAAW,CAAC,QAAQ,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC;4BACnD,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;gCACpB,IAAI,CAAC,KAAK,MAAM;oCACZ,SAAS;gCACb,CAAC,CAAC,WAAW,CAAC,QAAQ,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC;4BACzC,CAAC;4BACD,OAAO,KAAK,CAAC,UAAU,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;wBAC/C,CAAC;qBACJ;oBACD,MAAM,OAAO,GAAG,IAAI,aAAa,CAAC,GAAG,CAAC,CAAC;oBAEvC,MAAM,MAAM,GAAG,MAAM,IAAA,iCAAiB,EAAC,UAAU,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,aAAa,EAAE,EAAE,GAAG,EAAE,CAAC,aAAa,CAAC,cAAc,EAAE,CAAC,CAAC;oBAC/H,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;oBAClB,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE;wBACvB,UAAU,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;wBACjC,OAAO,CAAC,eAAe,EAAE,CAAC;wBAC1B,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;wBACrB,cAAc,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;oBAC/B,CAAC,CAAC,CAAC;oBAEH,KAAK,MAAM,CAAC,QAAQ,EAAE,GAAG,CAAC,IAAI,aAAa,CAAC,SAAS,CAAC,OAAO,EAAE,EAAE,CAAC;wBAC9D,MAAM,MAAM,CAAC,WAAW,CAAC,QAAQ,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC;oBAC5D,CAAC;oBAED,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,UAAU,CAAC,CAAC;oBAClD,WAAW,CAAC,IAAI,GAAG,IAAI,CAAC;oBACxB,OAAO,MAAM,CAAC,OAAO,CAAC,WAAW,EAAE,MAAM,EAAE,WAAW,CAAC,CAAA;gBAC3D,CAAC,CAAC,EAAE,CAAC;gBAEL,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;gBAE/B,OAAO;oBACH,MAAM,EAAE,GAAG,CAAC,MAAM;oBAClB,MAAM;iBACT,CAAA;YACL,CAAC,CAAA;YAED,IAAI,CAAC;gBACD,MAAM,QAAQ,GAAG,UAAU,EAAE,KAAK,CAAC,CAAC,CAAC,wBAAwB,CAAC,CAAC,CAAC,IAAI,QAAQ,iBAAiB,CAAC;gBAC9F,IAAA,yBAAS,EAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;gBAE1C,IAAI,UAAU,EAAE,IAAI,EAAE,CAAC;oBACnB,uCAAuC;oBACvC,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;oBAC1B,MAAM,MAAM,GAAG,MAAM,IAAI,EAAE,CAAC;oBAC5B,MAAM,CAAC,aAAO,CAAC,mCAAmC,CAAC,GAAG,IAAI,CAAC;oBAC3D,OAAO,MAAM,CAAC;gBAClB,CAAC;gBAED,aAAa,EAAE,GAAG,CAAC,eAAe,CAAC,CAAC;gBACpC,IAAI,cAAc,GAAG,OAAO,CAAC,OAAO,CAAC;gBACrC,0DAA0D;gBAC1D,uBAAuB;gBACvB,IAAI,cAAc,CAAC,QAAQ,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC;oBAC9C,cAAc,GAAG,IAAI,cAAc,EAAE,CAAC;gBAC1C,IAAI,OAAO,cAAc,KAAK,UAAU;oBACpC,cAAc,GAAG,MAAM,cAAc,EAAE,CAAC;gBAE5C,QAAQ,GAAG,IAAA,8BAAgB,EAAC,QAAQ,EAAE,MAAM,EAAE,cAAc,CAAC,CAAC;gBAC9D,2BAA2B,CAAC,QAAQ,CAAC,CAAC;gBAEtC,OAAO,cAAc,CAAC;YAC1B,CAAC;YACD,OAAO,CAAC,EAAE,CAAC;gBACP,aAAa,EAAE,KAAK,CAAC,wBAAwB,EAAE,CAAC,CAAC,CAAC;gBAClD,MAAM,CAAC,CAAC;YACZ,CAAC;QACL,CAAC;KACJ,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE;QACf,aAAa,GAAG,QAAQ,CAAC,aAAa,CAAC;QACvC,aAAa,GAAG,QAAQ,CAAC,aAAkC,CAAC;IAChE,CAAC,CAAC,CAAC;IAEH,OAAO,IAAI,CAAC;AAChB,CAAC"}
1
+ {"version":3,"file":"plugin-remote-worker.js","sourceRoot":"","sources":["../../src/plugin/plugin-remote-worker.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ import { RpcMessage, RpcPeer } from "../../rpc";
2
+ import { createRpcDuplexSerializer } from '../../rpc-serializer';
3
+ import { ChildProcessWorker } from "./child-process-worker";
4
+ import { RuntimeWorkerOptions } from "./runtime-worker";
5
+ export declare class DenoWorker extends ChildProcessWorker {
6
+ serializer: ReturnType<typeof createRpcDuplexSerializer>;
7
+ constructor(mainFilename: string, pluginId: string, options: RuntimeWorkerOptions);
8
+ kill(): void;
9
+ setupRpcPeer(peer: RpcPeer): void;
10
+ send(message: RpcMessage, reject?: (e: Error) => void, serializationContext?: any): void;
11
+ get pid(): number;
12
+ }
@@ -0,0 +1,84 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.DenoWorker = void 0;
7
+ const deno_1 = require("@scrypted/deno");
8
+ const child_process_1 = __importDefault(require("child_process"));
9
+ const path_1 = __importDefault(require("path"));
10
+ const child_process_worker_1 = require("./child-process-worker");
11
+ class DenoWorker extends child_process_worker_1.ChildProcessWorker {
12
+ serializer;
13
+ constructor(mainFilename, pluginId, options) {
14
+ super(pluginId, options);
15
+ const { env, pluginDebug } = options;
16
+ const execArgv = [];
17
+ if (pluginDebug) {
18
+ execArgv.push(`--inspect=0.0.0.0:${pluginDebug.inspectPort}`);
19
+ }
20
+ const args = [
21
+ '--unstable-byonm', '--unstable-bare-node-builtins', '--unstable-sloppy-imports',
22
+ 'run',
23
+ ...execArgv,
24
+ '--allow-all',
25
+ path_1.default.join(__dirname, '../../../deno', 'deno-plugin-remote.ts'),
26
+ // TODO: send this across.
27
+ // mainFilename.replace('dist', 'src').replace('.js', '.ts'),
28
+ 'child', this.pluginId
29
+ ];
30
+ this.worker = child_process_1.default.spawn((0, deno_1.getDenoPath)(), args, {
31
+ // stdio: ['pipe', 'pipe', 'pipe', 'pipe', 'pipe'],
32
+ stdio: ['pipe', 'pipe', 'pipe', 'ipc'],
33
+ env: Object.assign({
34
+ SCRYPTED_MAIN_FILENAME: mainFilename,
35
+ }, process.env, env),
36
+ serialization: 'json',
37
+ // execArgv,
38
+ });
39
+ this.worker.stderr.on('data', (data) => {
40
+ console.error(`stderr: ${data}`);
41
+ });
42
+ this.worker.stdout.on('data', (data) => {
43
+ console.log(`stdout: ${data}`);
44
+ });
45
+ this.setupWorker();
46
+ }
47
+ kill() {
48
+ }
49
+ setupRpcPeer(peer) {
50
+ this.worker.on('message', (message, sendHandle) => {
51
+ if (message.type && sendHandle) {
52
+ peer.handleMessage(message, {
53
+ sendHandle,
54
+ });
55
+ }
56
+ else if (sendHandle) {
57
+ this.emit('rpc', message, sendHandle);
58
+ }
59
+ else {
60
+ peer.handleMessage(message);
61
+ }
62
+ });
63
+ peer.transportSafeArgumentTypes.add(Buffer.name);
64
+ peer.transportSafeArgumentTypes.add(Uint8Array.name);
65
+ }
66
+ send(message, reject, serializationContext) {
67
+ try {
68
+ if (!this.worker)
69
+ throw new Error('fork worker has been killed');
70
+ this.worker.send(message, serializationContext?.sendHandle, e => {
71
+ if (e && reject)
72
+ reject(e);
73
+ });
74
+ }
75
+ catch (e) {
76
+ reject?.(e);
77
+ }
78
+ }
79
+ get pid() {
80
+ return this.worker?.pid;
81
+ }
82
+ }
83
+ exports.DenoWorker = DenoWorker;
84
+ //# sourceMappingURL=deno-worker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deno-worker.js","sourceRoot":"","sources":["../../../src/plugin/runtime/deno-worker.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
- import { RuntimeWorkerOptions as RuntimeWorkerOptions } from "./runtime-worker";
2
1
  import { RpcMessage, RpcPeer } from "../../rpc";
3
2
  import { ChildProcessWorker } from "./child-process-worker";
3
+ import { RuntimeWorkerOptions } from "./runtime-worker";
4
4
  export declare class NodeForkWorker extends ChildProcessWorker {
5
5
  constructor(mainFilename: string, pluginId: string, options: RuntimeWorkerOptions);
6
6
  setupRpcPeer(peer: RpcPeer): void;
@@ -5,9 +5,9 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.NodeForkWorker = void 0;
7
7
  const child_process_1 = __importDefault(require("child_process"));
8
- const child_process_worker_1 = require("./child-process-worker");
9
- const socket_serializer_1 = require("../socket-serializer");
10
8
  const net_1 = __importDefault(require("net"));
9
+ const socket_serializer_1 = require("../socket-serializer");
10
+ const child_process_worker_1 = require("./child-process-worker");
11
11
  class NodeForkWorker extends child_process_worker_1.ChildProcessWorker {
12
12
  constructor(mainFilename, pluginId, options) {
13
13
  super(pluginId, options);
@@ -1 +1 @@
1
- {"version":3,"file":"node-fork-worker.js","sourceRoot":"","sources":["../../../src/plugin/runtime/node-fork-worker.ts"],"names":[],"mappings":";;;;;;AACA,kEAA0C;AAG1C,iEAA4D;AAE5D,4DAAgE;AAChE,8CAAsB;AAEtB,MAAa,cAAe,SAAQ,yCAAkB;IAElD,YAAY,YAAoB,EAAE,QAAgB,EAAE,OAA6B;QAC7E,KAAK,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QAEzB,MAAM,EAAE,GAAG,EAAE,WAAW,EAAE,GAAG,OAAO,CAAC;QAErC,MAAM,QAAQ,GAAa,OAAO,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;QACpD,IAAI,WAAW,EAAE,CAAC;YACd,QAAQ,CAAC,IAAI,CAAC,qBAAqB,WAAW,CAAC,WAAW,EAAE,CAAC,CAAC;QAClE,CAAC;QAED,IAAI,CAAC,MAAM,GAAG,uBAAa,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC,EAAE;YACrE,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC;YACtC,GAAG,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC;YACxC,aAAa,EAAE,UAAU;YACzB,QAAQ;SACX,CAAC,CAAC;QAEH,IAAI,CAAC,WAAW,EAAE,CAAC;IACvB,CAAC;IAED,YAAY,CAAC,IAAa;QACtB,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC,OAAO,EAAE,UAAU,EAAE,EAAE;YAC9C,IAAK,OAAe,CAAC,IAAI,IAAI,UAAU,EAAE,CAAC;gBACtC,IAAI,CAAC,aAAa,CAAC,OAAc,EAAE;oBAC/B,UAAU;iBACb,CAAC,CAAC;YACP,CAAC;iBACI,IAAI,UAAU,EAAE,CAAC;gBAClB,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC;YAC1C,CAAC;iBACI,CAAC;gBACF,IAAI,CAAC,aAAa,CAAC,OAAc,CAAC,CAAC;YACvC,CAAC;QACL,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,0BAA0B,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACjD,IAAI,CAAC,0BAA0B,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QACrD,IAAI,CAAC,aAAa,CAAC,aAAG,CAAC,MAAM,EAAE,aAAG,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,4CAAwB,EAAE,CAAC,CAAC;IACpF,CAAC;IAED,IAAI,CAAC,OAAmB,EAAE,MAA2B,EAAE,oBAA0B;QAC7E,IAAI,CAAC;YACD,IAAI,CAAC,IAAI,CAAC,MAAM;gBACZ,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;YACnD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,oBAAoB,EAAE,UAAU,EAAE,CAAC,CAAC,EAAE;gBAC5D,IAAI,CAAC,IAAI,MAAM;oBACX,MAAM,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC,CAAC,CAAC;QACP,CAAC;QACD,OAAO,CAAC,EAAE,CAAC;YACP,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC;QAChB,CAAC;IACL,CAAC;IAED,IAAI,GAAG;QACH,OAAO,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC;IAC5B,CAAC;CACJ;AA1DD,wCA0DC"}
1
+ {"version":3,"file":"node-fork-worker.js","sourceRoot":"","sources":["../../../src/plugin/runtime/node-fork-worker.ts"],"names":[],"mappings":";;;;;;AAAA,kEAA0C;AAC1C,8CAAsB;AAEtB,4DAAgE;AAChE,iEAA4D;AAG5D,MAAa,cAAe,SAAQ,yCAAkB;IAElD,YAAY,YAAoB,EAAE,QAAgB,EAAE,OAA6B;QAC7E,KAAK,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QAEzB,MAAM,EAAE,GAAG,EAAE,WAAW,EAAE,GAAG,OAAO,CAAC;QAErC,MAAM,QAAQ,GAAa,OAAO,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;QACpD,IAAI,WAAW,EAAE,CAAC;YACd,QAAQ,CAAC,IAAI,CAAC,qBAAqB,WAAW,CAAC,WAAW,EAAE,CAAC,CAAC;QAClE,CAAC;QAED,IAAI,CAAC,MAAM,GAAG,uBAAa,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC,EAAE;YACrE,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC;YACtC,GAAG,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC;YACxC,aAAa,EAAE,UAAU;YACzB,QAAQ;SACX,CAAC,CAAC;QAEH,IAAI,CAAC,WAAW,EAAE,CAAC;IACvB,CAAC;IAED,YAAY,CAAC,IAAa;QACtB,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC,OAAO,EAAE,UAAU,EAAE,EAAE;YAC9C,IAAK,OAAe,CAAC,IAAI,IAAI,UAAU,EAAE,CAAC;gBACtC,IAAI,CAAC,aAAa,CAAC,OAAc,EAAE;oBAC/B,UAAU;iBACb,CAAC,CAAC;YACP,CAAC;iBACI,IAAI,UAAU,EAAE,CAAC;gBAClB,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC;YAC1C,CAAC;iBACI,CAAC;gBACF,IAAI,CAAC,aAAa,CAAC,OAAc,CAAC,CAAC;YACvC,CAAC;QACL,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,0BAA0B,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACjD,IAAI,CAAC,0BAA0B,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QACrD,IAAI,CAAC,aAAa,CAAC,aAAG,CAAC,MAAM,EAAE,aAAG,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,4CAAwB,EAAE,CAAC,CAAC;IACpF,CAAC;IAED,IAAI,CAAC,OAAmB,EAAE,MAA2B,EAAE,oBAA0B;QAC7E,IAAI,CAAC;YACD,IAAI,CAAC,IAAI,CAAC,MAAM;gBACZ,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;YACnD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,oBAAoB,EAAE,UAAU,EAAE,CAAC,CAAC,EAAE;gBAC5D,IAAI,CAAC,IAAI,MAAM;oBACX,MAAM,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC,CAAC,CAAC;QACP,CAAC;QACD,OAAO,CAAC,EAAE,CAAC;YACP,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC;QAChB,CAAC;IACL,CAAC;IAED,IAAI,GAAG;QACH,OAAO,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC;IAC5B,CAAC;CACJ;AA1DD,wCA0DC"}
@@ -1,12 +1,12 @@
1
1
  import worker_threads from "worker_threads";
2
- import { EventEmitter } from "ws";
2
+ import { EventEmitter } from "events";
3
3
  import { RpcMessage, RpcPeer } from "../../rpc";
4
4
  import { RuntimeWorker, RuntimeWorkerOptions } from "./runtime-worker";
5
5
  export declare class NodeThreadWorker extends EventEmitter implements RuntimeWorker {
6
6
  pluginId: string;
7
- terminated: boolean;
8
7
  worker: worker_threads.Worker;
9
- constructor(mainFilename: string, pluginId: string, options: RuntimeWorkerOptions);
8
+ port: worker_threads.MessagePort;
9
+ constructor(mainFilename: string, pluginId: string, options: RuntimeWorkerOptions, workerOptions?: worker_threads.WorkerOptions);
10
10
  get pid(): number;
11
11
  get stdout(): import("stream").Readable;
12
12
  get stderr(): import("stream").Readable;
@@ -6,21 +6,27 @@ Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.NodeThreadWorker = void 0;
7
7
  const v8_1 = __importDefault(require("v8"));
8
8
  const worker_threads_1 = __importDefault(require("worker_threads"));
9
- const ws_1 = require("ws");
10
- class NodeThreadWorker extends ws_1.EventEmitter {
9
+ const events_1 = require("events");
10
+ class NodeThreadWorker extends events_1.EventEmitter {
11
11
  pluginId;
12
- terminated;
13
12
  worker;
14
- constructor(mainFilename, pluginId, options) {
13
+ port;
14
+ constructor(mainFilename, pluginId, options, workerOptions) {
15
15
  super();
16
16
  this.pluginId = pluginId;
17
17
  const { env } = options;
18
+ const message = new worker_threads_1.default.MessageChannel();
19
+ const { port1, port2 } = message;
18
20
  this.worker = new worker_threads_1.default.Worker(mainFilename, {
19
21
  argv: ['child-thread', this.pluginId],
20
22
  env: Object.assign({}, process.env, env),
23
+ workerData: {
24
+ port: port1,
25
+ },
26
+ transferList: [port1],
27
+ ...workerOptions,
21
28
  });
22
29
  this.worker.on('exit', () => {
23
- this.terminated = true;
24
30
  this.emit('exit');
25
31
  });
26
32
  this.worker.on('error', e => {
@@ -29,6 +35,13 @@ class NodeThreadWorker extends ws_1.EventEmitter {
29
35
  this.worker.on('messageerror', e => {
30
36
  this.emit('error', e);
31
37
  });
38
+ this.port = port2;
39
+ this.port.on('messageerror', e => {
40
+ this.emit('error', e);
41
+ });
42
+ this.port.on('close', () => {
43
+ this.emit('error', new Error('port closed'));
44
+ });
32
45
  }
33
46
  get pid() {
34
47
  return this.worker.threadId;
@@ -46,20 +59,22 @@ class NodeThreadWorker extends ws_1.EventEmitter {
46
59
  this.worker.removeAllListeners();
47
60
  this.worker.stdout.removeAllListeners();
48
61
  this.worker.stderr.removeAllListeners();
62
+ this.port.close();
63
+ this.port = undefined;
49
64
  this.worker = undefined;
50
65
  }
51
66
  send(message, reject) {
52
67
  try {
53
68
  if (!this.worker)
54
69
  throw new Error('thread worker has been killed');
55
- this.worker.postMessage(v8_1.default.serialize(message));
70
+ this.port.postMessage(v8_1.default.serialize(message));
56
71
  }
57
72
  catch (e) {
58
73
  reject?.(e);
59
74
  }
60
75
  }
61
76
  setupRpcPeer(peer) {
62
- this.worker.on('message', message => peer.handleMessage(v8_1.default.deserialize(message)));
77
+ this.port.on('message', message => peer.handleMessage(v8_1.default.deserialize(message)));
63
78
  }
64
79
  }
65
80
  exports.NodeThreadWorker = NodeThreadWorker;