@scrypted/server 0.0.113 → 0.0.118

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.

Potentially problematic release.


This version of @scrypted/server might be problematic. Click here for more details.

Files changed (58) hide show
  1. package/.vscode/launch.json +1 -0
  2. package/dist/http-interfaces.js +11 -4
  3. package/dist/http-interfaces.js.map +1 -1
  4. package/dist/level.js.map +1 -1
  5. package/dist/plugin/media.js +3 -3
  6. package/dist/plugin/media.js.map +1 -1
  7. package/dist/plugin/plugin-console.js.map +1 -1
  8. package/dist/plugin/plugin-device.js +25 -0
  9. package/dist/plugin/plugin-device.js.map +1 -1
  10. package/dist/plugin/plugin-host-api.js +2 -2
  11. package/dist/plugin/plugin-host-api.js.map +1 -1
  12. package/dist/plugin/plugin-host.js +111 -227
  13. package/dist/plugin/plugin-host.js.map +1 -1
  14. package/dist/plugin/plugin-lazy-remote.js.map +1 -1
  15. package/dist/plugin/plugin-npm-dependencies.js +8 -3
  16. package/dist/plugin/plugin-npm-dependencies.js.map +1 -1
  17. package/dist/plugin/plugin-remote-worker.js +253 -0
  18. package/dist/plugin/plugin-remote-worker.js.map +1 -0
  19. package/dist/plugin/plugin-remote.js +39 -15
  20. package/dist/plugin/plugin-remote.js.map +1 -1
  21. package/dist/plugin/plugin-repl.js +3 -1
  22. package/dist/plugin/plugin-repl.js.map +1 -1
  23. package/dist/plugin/system.js +11 -6
  24. package/dist/plugin/system.js.map +1 -1
  25. package/dist/rpc.js +11 -1
  26. package/dist/rpc.js.map +1 -1
  27. package/dist/runtime.js +19 -4
  28. package/dist/runtime.js.map +1 -1
  29. package/dist/scrypted-main.js +3 -437
  30. package/dist/scrypted-main.js.map +1 -1
  31. package/dist/scrypted-plugin-main.js +8 -0
  32. package/dist/scrypted-plugin-main.js.map +1 -0
  33. package/dist/scrypted-server-main.js +448 -0
  34. package/dist/scrypted-server-main.js.map +1 -0
  35. package/package.json +5 -4
  36. package/python/media.py +1 -12
  37. package/python/plugin-remote.py +15 -7
  38. package/python/rpc.py +1 -1
  39. package/src/http-interfaces.ts +12 -5
  40. package/src/level.ts +0 -2
  41. package/src/plugin/media.ts +3 -3
  42. package/src/plugin/plugin-api.ts +9 -1
  43. package/src/plugin/plugin-console.ts +0 -1
  44. package/src/plugin/plugin-device.ts +26 -2
  45. package/src/plugin/plugin-host-api.ts +2 -2
  46. package/src/plugin/plugin-host.ts +122 -253
  47. package/src/plugin/plugin-http.ts +2 -2
  48. package/src/plugin/plugin-lazy-remote.ts +1 -1
  49. package/src/plugin/plugin-npm-dependencies.ts +7 -2
  50. package/src/plugin/plugin-remote-worker.ts +272 -0
  51. package/src/plugin/plugin-remote.ts +46 -17
  52. package/src/plugin/plugin-repl.ts +4 -2
  53. package/src/plugin/system.ts +15 -13
  54. package/src/rpc.ts +18 -3
  55. package/src/runtime.ts +19 -4
  56. package/src/scrypted-main.ts +3 -508
  57. package/src/scrypted-plugin-main.ts +6 -0
  58. package/src/scrypted-server-main.ts +516 -0
@@ -3,36 +3,35 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.startPluginRemote = exports.PluginHost = void 0;
6
+ exports.PluginHost = void 0;
7
7
  const rpc_1 = require("../rpc");
8
8
  const adm_zip_1 = __importDefault(require("adm-zip"));
9
9
  const engine_io_1 = __importDefault(require("engine.io"));
10
10
  const plugin_remote_1 = require("./plugin-remote");
11
11
  const plugin_api_1 = require("./plugin-api");
12
12
  const media_1 = require("./media");
13
- const stream_1 = require("stream");
14
- const console_1 = require("console");
15
13
  const sleep_1 = require("../sleep");
16
14
  const plugin_host_api_1 = require("./plugin-host-api");
17
15
  const path_1 = __importDefault(require("path"));
18
- const source_map_support_1 = require("source-map-support");
19
- const net_1 = __importDefault(require("net"));
20
16
  const child_process_1 = __importDefault(require("child_process"));
21
17
  const readline_1 = __importDefault(require("readline"));
22
18
  const plugin_volume_1 = require("./plugin-volume");
23
19
  const plugin_npm_dependencies_1 = require("./plugin-npm-dependencies");
24
20
  const plugin_console_1 = require("./plugin-console");
25
- const plugin_repl_1 = require("./plugin-repl");
26
21
  const plugin_lazy_remote_1 = require("./plugin-lazy-remote");
22
+ const crypto_1 = __importDefault(require("crypto"));
23
+ const fs_1 = __importDefault(require("fs"));
24
+ const mkdirp_1 = __importDefault(require("mkdirp"));
25
+ const rimraf_1 = __importDefault(require("rimraf"));
27
26
  class PluginHost {
28
27
  pluginDebug;
28
+ static sharedWorker;
29
29
  worker;
30
30
  peer;
31
31
  pluginId;
32
32
  module;
33
33
  scrypted;
34
34
  remote;
35
- zip;
36
35
  io = (0, engine_io_1.default)(undefined, {
37
36
  pingTimeout: 120000,
38
37
  });
@@ -43,10 +42,11 @@ class PluginHost {
43
42
  stats;
44
43
  killed = false;
45
44
  consoleServer;
45
+ unzippedPath;
46
46
  kill() {
47
47
  this.killed = true;
48
48
  this.api.removeListeners();
49
- this.worker.kill();
49
+ this.worker.kill('SIGKILL');
50
50
  this.io.close();
51
51
  for (const s of Object.values(this.ws)) {
52
52
  s.close();
@@ -77,13 +77,16 @@ class PluginHost {
77
77
  this.pluginId = plugin._id;
78
78
  this.pluginName = plugin.packageJson?.name;
79
79
  this.packageJson = plugin.packageJson;
80
- const logger = scrypted.getDeviceLogger(scrypted.findPluginDevice(plugin._id));
81
- const volume = path_1.default.join(process.cwd(), 'volume');
82
- const cwd = (0, plugin_volume_1.ensurePluginVolume)(this.pluginId);
80
+ let zipBuffer = Buffer.from(plugin.zip, 'base64');
81
+ // allow garbage collection of the base 64 contents
82
+ plugin = undefined;
83
+ const logger = scrypted.getDeviceLogger(scrypted.findPluginDevice(this.pluginId));
84
+ const volume = (0, plugin_volume_1.getScryptedVolume)();
85
+ const pluginVolume = (0, plugin_volume_1.ensurePluginVolume)(this.pluginId);
83
86
  this.startPluginHost(logger, {
84
- NODE_PATH: path_1.default.join(cwd, 'node_modules'),
85
- SCRYPTED_PLUGIN_VOLUME: cwd,
86
- }, plugin.packageJson.scrypted.runtime);
87
+ NODE_PATH: path_1.default.join((0, plugin_npm_dependencies_1.getPluginNodePath)(this.pluginId), 'node_modules'),
88
+ SCRYPTED_PLUGIN_VOLUME: pluginVolume,
89
+ }, this.packageJson.scrypted.runtime);
87
90
  this.io.on('connection', async (socket) => {
88
91
  try {
89
92
  try {
@@ -116,9 +119,25 @@ class PluginHost {
116
119
  const mediaManager = runtime === 'python'
117
120
  ? new media_1.MediaManagerHostImpl(scrypted.stateManager.getSystemState(), id => scrypted.getDevice(id), console)
118
121
  : undefined;
119
- this.api = new plugin_host_api_1.PluginHostAPI(scrypted, plugin, this, mediaManager);
120
- const zipBuffer = Buffer.from(plugin.zip, 'base64');
121
- this.zip = new adm_zip_1.default(zipBuffer);
122
+ this.api = new plugin_host_api_1.PluginHostAPI(scrypted, this.pluginId, this, mediaManager);
123
+ const zipDir = path_1.default.join(pluginVolume, 'zip');
124
+ const extractVersion = "1-";
125
+ const hash = extractVersion + crypto_1.default.createHash('md5').update(zipBuffer).digest().toString('hex');
126
+ const zipFilename = `${hash}.zip`;
127
+ const zipFile = path_1.default.join(zipDir, zipFilename);
128
+ this.unzippedPath = path_1.default.join(zipDir, 'unzipped');
129
+ {
130
+ const zipDirTmp = zipDir + '.tmp';
131
+ if (!fs_1.default.existsSync(zipFile)) {
132
+ rimraf_1.default.sync(zipDirTmp);
133
+ rimraf_1.default.sync(zipDir);
134
+ mkdirp_1.default.sync(zipDirTmp);
135
+ fs_1.default.writeFileSync(path_1.default.join(zipDirTmp, zipFilename), zipBuffer);
136
+ const admZip = new adm_zip_1.default(zipBuffer);
137
+ admZip.extractAllTo(path_1.default.join(zipDirTmp, 'unzipped'), true);
138
+ fs_1.default.renameSync(zipDirTmp, zipDir);
139
+ }
140
+ }
122
141
  logger.log('i', `loading ${this.pluginName}`);
123
142
  logger.log('i', 'pid ' + this.worker?.pid);
124
143
  const remotePromise = (0, plugin_remote_1.setupPluginRemote)(this.peer, this.api, self.pluginId, () => this.scrypted.stateManager.getSystemState());
@@ -142,18 +161,25 @@ class PluginHost {
142
161
  }
143
162
  const fail = 'Plugin failed to load. Console for more information.';
144
163
  try {
164
+ const isPython = runtime === 'python';
145
165
  const loadZipOptions = {
146
166
  // if debugging, use a normalized path for sourcemap resolution, otherwise
147
167
  // prefix with module path.
148
- filename: runtime === 'python'
168
+ filename: isPython
149
169
  ? pluginDebug
150
170
  ? `${volume}/plugin.zip`
151
- : `${cwd}/plugin.zip`
171
+ : zipFile
152
172
  : pluginDebug
153
173
  ? '/plugin/main.nodejs.js'
154
174
  : `/${this.pluginId}/main.nodejs.js`,
175
+ unzippedPath: this.unzippedPath,
155
176
  };
156
- const module = await remote.loadZip(plugin.packageJson, zipBuffer, loadZipOptions);
177
+ // original implementation sent the zipBuffer, sending the zipFile name now.
178
+ // can switch back for non-local plugins.
179
+ const modulePromise = remote.loadZip(this.packageJson, zipFile, loadZipOptions);
180
+ // allow garbage collection of the zip buffer
181
+ zipBuffer = undefined;
182
+ const module = await modulePromise;
157
183
  logger.log('i', `loaded ${this.pluginName}`);
158
184
  logger.clearAlert(fail);
159
185
  return { module, remote };
@@ -214,25 +240,70 @@ class PluginHost {
214
240
  if (this.pluginDebug) {
215
241
  execArgv.push(`--inspect=0.0.0.0:${this.pluginDebug.inspectPort}`);
216
242
  }
217
- this.worker = child_process_1.default.fork(require.main.filename, ['child'], {
218
- stdio: ['pipe', 'pipe', 'pipe', 'ipc'],
219
- env: Object.assign({}, process.env, env),
220
- serialization: 'advanced',
221
- execArgv,
222
- });
223
- this.peer = new rpc_1.RpcPeer('host', this.pluginId, (message, reject) => {
224
- if (connected) {
225
- this.worker.send(message, undefined, e => {
226
- if (e && reject)
227
- reject(e);
243
+ const useSharedWorker = process.env.SCRYPTED_SHARED_WORKER &&
244
+ this.packageJson.scrypted.sharedWorker !== false &&
245
+ this.packageJson.scrypted.realfs !== true &&
246
+ Object.keys(this.packageJson.optionalDependencies || {}).length === 0;
247
+ if (useSharedWorker) {
248
+ if (!PluginHost.sharedWorker) {
249
+ PluginHost.sharedWorker = child_process_1.default.fork(require.main.filename, ['child', '@scrypted/shared'], {
250
+ stdio: ['pipe', 'pipe', 'pipe', 'ipc'],
251
+ env: Object.assign({}, process.env, env),
252
+ serialization: 'advanced',
253
+ execArgv,
228
254
  });
255
+ PluginHost.sharedWorker.setMaxListeners(100);
256
+ PluginHost.sharedWorker.on('close', () => PluginHost.sharedWorker = undefined);
257
+ PluginHost.sharedWorker.on('error', () => PluginHost.sharedWorker = undefined);
258
+ PluginHost.sharedWorker.on('exit', () => PluginHost.sharedWorker = undefined);
259
+ PluginHost.sharedWorker.on('disconnect', () => PluginHost.sharedWorker = undefined);
229
260
  }
230
- else if (reject) {
231
- reject(new Error('peer disconnected'));
232
- }
233
- });
261
+ PluginHost.sharedWorker.send({
262
+ type: 'start',
263
+ pluginId: this.pluginId,
264
+ });
265
+ this.worker = PluginHost.sharedWorker;
266
+ this.worker.on('message', (message) => {
267
+ if (message.pluginId === this.pluginId)
268
+ this.peer.handleMessage(message.message);
269
+ });
270
+ this.peer = new rpc_1.RpcPeer('host', this.pluginId, (message, reject) => {
271
+ if (connected) {
272
+ this.worker.send({
273
+ type: 'message',
274
+ pluginId: this.pluginId,
275
+ message: message,
276
+ }, undefined, e => {
277
+ if (e && reject)
278
+ reject(e);
279
+ });
280
+ }
281
+ else if (reject) {
282
+ reject(new Error('peer disconnected'));
283
+ }
284
+ });
285
+ }
286
+ else {
287
+ this.worker = child_process_1.default.fork(require.main.filename, ['child', this.pluginId], {
288
+ stdio: ['pipe', 'pipe', 'pipe', 'ipc'],
289
+ env: Object.assign({}, process.env, env),
290
+ serialization: 'advanced',
291
+ execArgv,
292
+ });
293
+ this.worker.on('message', message => this.peer.handleMessage(message));
294
+ this.peer = new rpc_1.RpcPeer('host', this.pluginId, (message, reject) => {
295
+ if (connected) {
296
+ this.worker.send(message, undefined, e => {
297
+ if (e && reject)
298
+ reject(e);
299
+ });
300
+ }
301
+ else if (reject) {
302
+ reject(new Error('peer disconnected'));
303
+ }
304
+ });
305
+ }
234
306
  this.peer.transportSafeArgumentTypes.add(Buffer.name);
235
- this.worker.on('message', message => this.peer.handleMessage(message));
236
307
  }
237
308
  this.worker.stdout.on('data', data => console.log(data.toString()));
238
309
  this.worker.stderr.on('data', data => console.error(data.toString()));
@@ -241,6 +312,10 @@ class PluginHost {
241
312
  const { pluginConsole } = cs;
242
313
  pluginConsole.log('starting plugin', this.pluginId, this.packageJson.version);
243
314
  });
315
+ this.worker.on('close', () => {
316
+ connected = false;
317
+ logger.log('e', `${this.pluginName} close`);
318
+ });
244
319
  this.worker.on('disconnect', () => {
245
320
  connected = false;
246
321
  logger.log('e', `${this.pluginName} disconnected`);
@@ -281,195 +356,4 @@ class PluginHost {
281
356
  }
282
357
  }
283
358
  exports.PluginHost = PluginHost;
284
- function startPluginRemote() {
285
- const peer = new rpc_1.RpcPeer('unknown', 'host', (message, reject) => process.send(message, undefined, {
286
- swallowErrors: !reject,
287
- }, e => {
288
- if (e)
289
- reject?.(e);
290
- }));
291
- peer.transportSafeArgumentTypes.add(Buffer.name);
292
- process.on('message', message => peer.handleMessage(message));
293
- let systemManager;
294
- let deviceManager;
295
- let api;
296
- let pluginId;
297
- const getConsole = (hook, also, alsoPrefix) => {
298
- const stdout = new stream_1.PassThrough();
299
- const stderr = new stream_1.PassThrough();
300
- hook(stdout, stderr);
301
- const ret = new console_1.Console(stdout, stderr);
302
- const methods = [
303
- 'log', 'warn',
304
- 'dir', 'time',
305
- 'timeEnd', 'timeLog',
306
- 'trace', 'assert',
307
- 'clear', 'count',
308
- 'countReset', 'group',
309
- 'groupEnd', 'table',
310
- 'debug', 'info',
311
- 'dirxml', 'error',
312
- 'groupCollapsed',
313
- ];
314
- const printers = ['log', 'info', 'debug', 'trace', 'warn', 'error'];
315
- for (const m of methods) {
316
- const old = ret[m].bind(ret);
317
- ret[m] = (...args) => {
318
- // prefer the mixin version for local/remote console dump.
319
- if (also && alsoPrefix && printers.includes(m)) {
320
- also[m](alsoPrefix, ...args);
321
- }
322
- else {
323
- console[m](...args);
324
- }
325
- // call through to old method to ensure it gets written
326
- // to log buffer.
327
- old(...args);
328
- };
329
- }
330
- return ret;
331
- };
332
- const getDeviceConsole = (nativeId) => {
333
- // the the plugin console is simply the default console
334
- // and gets read from stderr/stdout.
335
- if (!nativeId)
336
- return console;
337
- return getConsole(async (stdout, stderr) => {
338
- const plugins = await api.getComponent('plugins');
339
- const connect = async () => {
340
- const port = await plugins.getRemoteServicePort(peer.selfName, 'console-writer');
341
- const socket = net_1.default.connect(port);
342
- socket.write(nativeId + '\n');
343
- const writer = (data) => {
344
- socket.write(data);
345
- };
346
- stdout.on('data', writer);
347
- stderr.on('data', writer);
348
- socket.on('error', () => {
349
- stdout.removeAllListeners();
350
- stderr.removeAllListeners();
351
- stdout.pause();
352
- stderr.pause();
353
- setTimeout(connect, 10000);
354
- });
355
- };
356
- connect();
357
- }, undefined, undefined);
358
- };
359
- const getMixinConsole = (mixinId, nativeId) => {
360
- return getConsole(async (stdout, stderr) => {
361
- if (!mixinId) {
362
- return;
363
- }
364
- // todo: fix this. a mixin provider can mixin another device to make it a mixin provider itself.
365
- // so the mixin id in the mixin table will be incorrect.
366
- // there's no easy way to fix this from the remote.
367
- // if (!systemManager.getDeviceById(mixinId).mixins.includes(idForNativeId(nativeId))) {
368
- // return;
369
- // }
370
- const plugins = await systemManager.getComponent('plugins');
371
- const connect = async () => {
372
- const ds = deviceManager.getDeviceState(nativeId);
373
- if (!ds) {
374
- // deleted?
375
- return;
376
- }
377
- const { pluginId, nativeId: mixinNativeId } = await plugins.getDeviceInfo(mixinId);
378
- const port = await plugins.getRemoteServicePort(pluginId, 'console-writer');
379
- const socket = net_1.default.connect(port);
380
- socket.write(mixinNativeId + '\n');
381
- const writer = (data) => {
382
- let str = data.toString().trim();
383
- str = str.replaceAll('\n', `\n[${ds.name}]: `);
384
- str = `[${ds.name}]: ` + str + '\n';
385
- socket.write(str);
386
- };
387
- stdout.on('data', writer);
388
- stderr.on('data', writer);
389
- socket.on('error', () => {
390
- stdout.removeAllListeners();
391
- stderr.removeAllListeners();
392
- stdout.pause();
393
- stderr.pause();
394
- setTimeout(connect, 10000);
395
- });
396
- };
397
- connect();
398
- }, getDeviceConsole(nativeId), `[${systemManager.getDeviceById(mixinId)?.name}]`);
399
- };
400
- let lastCpuUsage;
401
- setInterval(() => {
402
- const cpuUsage = process.cpuUsage(lastCpuUsage);
403
- lastCpuUsage = cpuUsage;
404
- peer.sendOob({
405
- type: 'stats',
406
- cpu: cpuUsage,
407
- memoryUsage: process.memoryUsage(),
408
- });
409
- global?.gc();
410
- }, 10000);
411
- let replPort;
412
- let _pluginConsole;
413
- const getPluginConsole = () => {
414
- if (!_pluginConsole)
415
- _pluginConsole = getDeviceConsole(undefined);
416
- return _pluginConsole;
417
- };
418
- (0, plugin_remote_1.attachPluginRemote)(peer, {
419
- createMediaManager: async (sm) => {
420
- systemManager = sm;
421
- return new media_1.MediaManagerImpl(systemManager, getPluginConsole());
422
- },
423
- onGetRemote: async (_api, _pluginId) => {
424
- api = _api;
425
- pluginId = _pluginId;
426
- peer.selfName = pluginId;
427
- },
428
- onPluginReady: async (scrypted, params, plugin) => {
429
- replPort = (0, plugin_repl_1.createREPLServer)(scrypted, params, plugin);
430
- },
431
- getPluginConsole,
432
- getDeviceConsole,
433
- getMixinConsole,
434
- async getServicePort(name, ...args) {
435
- if (name === 'repl') {
436
- if (!replPort)
437
- throw new Error('REPL unavailable: Plugin not loaded.');
438
- return replPort;
439
- }
440
- throw new Error(`unknown service ${name}`);
441
- },
442
- async onLoadZip(zip, packageJson) {
443
- (0, source_map_support_1.install)({
444
- environment: 'node',
445
- retrieveSourceMap(source) {
446
- if (source === '/plugin/main.nodejs.js' || source === `/${pluginId}/main.nodejs.js`) {
447
- const entry = zip.getEntry('main.nodejs.js.map');
448
- const map = entry?.getData().toString();
449
- if (!map)
450
- return null;
451
- return {
452
- url: '/plugin/main.nodejs.js',
453
- map,
454
- };
455
- }
456
- return null;
457
- }
458
- });
459
- await (0, plugin_npm_dependencies_1.installOptionalDependencies)(getPluginConsole(), packageJson);
460
- }
461
- }).then(scrypted => {
462
- systemManager = scrypted.systemManager;
463
- deviceManager = scrypted.deviceManager;
464
- process.on('uncaughtException', e => {
465
- getPluginConsole().error('uncaughtException', e);
466
- scrypted.log.e('uncaughtException ' + e?.toString());
467
- });
468
- process.on('unhandledRejection', e => {
469
- getPluginConsole().error('unhandledRejection', e);
470
- scrypted.log.e('unhandledRejection ' + e?.toString());
471
- });
472
- });
473
- }
474
- exports.startPluginRemote = startPluginRemote;
475
359
  //# sourceMappingURL=plugin-host.js.map
@@ -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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"}
@@ -1 +1 @@
1
- {"version":3,"file":"plugin-lazy-remote.js","sourceRoot":"","sources":["../../src/plugin/plugin-lazy-remote.ts"],"names":[],"mappings":";;;AAGA;;;;;GAKG;AACF,MAAa,UAAU;IAGD;IAA6C;IAFhE,MAAM,CAAe;IAErB,YAAmB,aAAoC,EAAS,kBAAyC;QAAtF,kBAAa,GAAb,aAAa,CAAuB;QAAS,uBAAkB,GAAlB,kBAAkB,CAAuB;QACrG,IAAI,CAAC,kBAAkB,GAAG,CAAC,KAAK,IAAI,EAAE;YAClC,IAAI,CAAC,MAAM,GAAG,MAAM,kBAAkB,CAAC;YACvC,OAAO,IAAI,CAAC,MAAM,CAAC;QACvB,CAAC,CAAC,EAAE,CAAC;IACT,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,WAAgB,EAAE,OAAe,EAAE,OAAoC;QACjF,IAAI,CAAC,IAAI,CAAC,MAAM;YACZ,MAAM,IAAI,CAAC,kBAAkB,CAAC;QAClC,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,WAAW,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IAC9D,CAAC;IACD,KAAK,CAAC,cAAc,CAAC,KAAoE;QACrF,IAAI,CAAC,IAAI,CAAC,MAAM;YACZ,MAAM,IAAI,CAAC,kBAAkB,CAAC;QAClC,OAAO,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;IAC7C,CAAC;IACD,KAAK,CAAC,WAAW,CAAC,QAA0B,EAAE,EAAU,EAAE,OAAgC;QACtF,IAAI,CAAC,IAAI,CAAC,MAAM;YACZ,MAAM,IAAI,CAAC,kBAAkB,CAAC;QAClC,OAAO,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,QAAQ,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC;IAC1D,CAAC;IACD,KAAK,CAAC,iBAAiB,CAAC,EAAU,EAAE,KAAiD;QACjF,IAAI;YACA,IAAI,CAAC,IAAI,CAAC,MAAM;gBACZ,MAAM,IAAI,CAAC,kBAAkB,CAAC;SACrC;QACD,OAAO,CAAC,EAAE;YACN,OAAO;SACV;QACD,OAAO,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;IACpD,CAAC;IACD,KAAK,CAAC,MAAM,CAAC,EAAU,EAAE,SAAiB,EAAE,cAAsB,EAAE,QAAgB,EAAE,aAAgC,EAAE,OAAiB;QACrI,IAAI;YACA,IAAI,CAAC,IAAI,CAAC,MAAM;gBACZ,MAAM,IAAI,CAAC,kBAAkB,CAAC;SACrC;QACD,OAAO,CAAC,EAAE;YACN,OAAO;SACV;QACD,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,SAAS,EAAE,cAAc,EAAE,QAAQ,EAAE,aAAa,EAAE,OAAO,CAAC,CAAC;IAC/F,CAAC;IACD,KAAK,CAAC,OAAO,CAAC,EAAU,EAAE,KAAa,EAAE,OAAa;QAClD,IAAI,CAAC,IAAI,CAAC,MAAM;YACZ,MAAM,IAAI,CAAC,kBAAkB,CAAC;QAClC,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;IACnD,CAAC;IACD,KAAK,CAAC,iBAAiB,CAAC,EAAU,EAAE,QAAyD;QACzF,IAAI,CAAC,IAAI,CAAC,MAAM;YACZ,MAAM,IAAI,CAAC,kBAAkB,CAAC;QAClC,OAAO,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC;IACvD,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,IAAY,EAAE,GAAG,IAAW;QAC7C,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC;QACxC,OAAO,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,CAAC;IAChD,CAAC;CACJ;AA5DA,gCA4DA"}
1
+ {"version":3,"file":"plugin-lazy-remote.js","sourceRoot":"","sources":["../../src/plugin/plugin-lazy-remote.ts"],"names":[],"mappings":";;;AAGA;;;;;GAKG;AACF,MAAa,UAAU;IAGD;IAA6C;IAFhE,MAAM,CAAe;IAErB,YAAmB,aAAoC,EAAS,kBAAyC;QAAtF,kBAAa,GAAb,aAAa,CAAuB;QAAS,uBAAkB,GAAlB,kBAAkB,CAAuB;QACrG,IAAI,CAAC,kBAAkB,GAAG,CAAC,KAAK,IAAI,EAAE;YAClC,IAAI,CAAC,MAAM,GAAG,MAAM,kBAAkB,CAAC;YACvC,OAAO,IAAI,CAAC,MAAM,CAAC;QACvB,CAAC,CAAC,EAAE,CAAC;IACT,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,WAAgB,EAAE,OAAsB,EAAE,OAAoC;QACxF,IAAI,CAAC,IAAI,CAAC,MAAM;YACZ,MAAM,IAAI,CAAC,kBAAkB,CAAC;QAClC,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,WAAW,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IAC9D,CAAC;IACD,KAAK,CAAC,cAAc,CAAC,KAAoE;QACrF,IAAI,CAAC,IAAI,CAAC,MAAM;YACZ,MAAM,IAAI,CAAC,kBAAkB,CAAC;QAClC,OAAO,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;IAC7C,CAAC;IACD,KAAK,CAAC,WAAW,CAAC,QAA0B,EAAE,EAAU,EAAE,OAAgC;QACtF,IAAI,CAAC,IAAI,CAAC,MAAM;YACZ,MAAM,IAAI,CAAC,kBAAkB,CAAC;QAClC,OAAO,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,QAAQ,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC;IAC1D,CAAC;IACD,KAAK,CAAC,iBAAiB,CAAC,EAAU,EAAE,KAAiD;QACjF,IAAI;YACA,IAAI,CAAC,IAAI,CAAC,MAAM;gBACZ,MAAM,IAAI,CAAC,kBAAkB,CAAC;SACrC;QACD,OAAO,CAAC,EAAE;YACN,OAAO;SACV;QACD,OAAO,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;IACpD,CAAC;IACD,KAAK,CAAC,MAAM,CAAC,EAAU,EAAE,SAAiB,EAAE,cAAsB,EAAE,QAAgB,EAAE,aAAgC,EAAE,OAAiB;QACrI,IAAI;YACA,IAAI,CAAC,IAAI,CAAC,MAAM;gBACZ,MAAM,IAAI,CAAC,kBAAkB,CAAC;SACrC;QACD,OAAO,CAAC,EAAE;YACN,OAAO;SACV;QACD,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,SAAS,EAAE,cAAc,EAAE,QAAQ,EAAE,aAAa,EAAE,OAAO,CAAC,CAAC;IAC/F,CAAC;IACD,KAAK,CAAC,OAAO,CAAC,EAAU,EAAE,KAAa,EAAE,OAAa;QAClD,IAAI,CAAC,IAAI,CAAC,MAAM;YACZ,MAAM,IAAI,CAAC,kBAAkB,CAAC;QAClC,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;IACnD,CAAC;IACD,KAAK,CAAC,iBAAiB,CAAC,EAAU,EAAE,QAAyD;QACzF,IAAI,CAAC,IAAI,CAAC,MAAM;YACZ,MAAM,IAAI,CAAC,kBAAkB,CAAC;QAClC,OAAO,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC;IACvD,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,IAAY,EAAE,GAAG,IAAW;QAC7C,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC;QACxC,OAAO,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,CAAC;IAChD,CAAC;CACJ;AA5DA,gCA4DA"}
@@ -3,7 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.installOptionalDependencies = void 0;
6
+ exports.installOptionalDependencies = exports.getPluginNodePath = void 0;
7
7
  const plugin_volume_1 = require("./plugin-volume");
8
8
  const fs_1 = __importDefault(require("fs"));
9
9
  const child_process_1 = __importDefault(require("child_process"));
@@ -11,9 +11,14 @@ const path_1 = __importDefault(require("path"));
11
11
  const events_1 = require("events");
12
12
  const process_1 = __importDefault(require("process"));
13
13
  const mkdirp_1 = __importDefault(require("mkdirp"));
14
- async function installOptionalDependencies(console, packageJson) {
15
- const pluginVolume = (0, plugin_volume_1.ensurePluginVolume)(packageJson.name);
14
+ function getPluginNodePath(name) {
15
+ const pluginVolume = (0, plugin_volume_1.ensurePluginVolume)(name);
16
16
  const nodePrefix = path_1.default.join(pluginVolume, `${process_1.default.platform}-${process_1.default.arch}`);
17
+ return nodePrefix;
18
+ }
19
+ exports.getPluginNodePath = getPluginNodePath;
20
+ async function installOptionalDependencies(console, packageJson) {
21
+ const nodePrefix = getPluginNodePath(packageJson.name);
17
22
  const packageJsonPath = path_1.default.join(nodePrefix, 'package.json');
18
23
  const currentInstalledPackageJsonPath = path_1.default.join(nodePrefix, 'package.installed.json');
19
24
  let currentPackageJson;
@@ -1 +1 @@
1
- {"version":3,"file":"plugin-npm-dependencies.js","sourceRoot":"","sources":["../../src/plugin/plugin-npm-dependencies.ts"],"names":[],"mappings":";;;;;;AAAA,mDAAqD;AACrD,4CAAoB;AACpB,kEAA0C;AAC1C,gDAAwB;AACxB,mCAA8B;AAC9B,sDAA8B;AAC9B,oDAA4B;AAErB,KAAK,UAAU,2BAA2B,CAAC,OAAgB,EAAE,WAAgB;IAChF,MAAM,YAAY,GAAG,IAAA,kCAAkB,EAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IAC1D,MAAM,UAAU,GAAG,cAAI,CAAC,IAAI,CAAC,YAAY,EAAE,GAAG,iBAAO,CAAC,QAAQ,IAAI,iBAAO,CAAC,IAAI,EAAE,CAAC,CAAC;IAClF,MAAM,eAAe,GAAG,cAAI,CAAC,IAAI,CAAC,UAAU,EAAE,cAAc,CAAC,CAAC;IAC9D,MAAM,+BAA+B,GAAG,cAAI,CAAC,IAAI,CAAC,UAAU,EAAE,wBAAwB,CAAC,CAAC;IAExF,IAAI,kBAAuB,CAAC;IAC5B,IAAI;QACA,kBAAkB,GAAG,IAAI,CAAC,KAAK,CAAC,YAAE,CAAC,YAAY,CAAC,+BAA+B,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;KAChG;IACD,OAAO,CAAC,EAAE;KACT;IAED,MAAM,EAAE,oBAAoB,EAAE,GAAG,WAAW,CAAC;IAC7C,IAAI,CAAC,oBAAoB;QACrB,OAAO;IACX,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC,MAAM;QACzC,OAAO;IACX,MAAM,2BAA2B,GAAG,kBAAkB,EAAE,YAAY,IAAI,EAAE,CAAC;IAE3E,IAAI,IAAI,CAAC,SAAS,CAAC,oBAAoB,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,2BAA2B,CAAC,EAAE;QACtF,OAAO,CAAC,GAAG,CAAC,mCAAmC,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC,CAAC;QACvF,OAAO;KACV;IAED,OAAO,CAAC,GAAG,CAAC,gCAAgC,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC,CAAC;IAEpF,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,WAAW,CAAC,CAAC;IAC/C,OAAO,CAAC,YAAY,GAAG,OAAO,CAAC,oBAAoB,CAAC;IACpD,OAAO,OAAO,CAAC,oBAAoB,CAAC;IACpC,OAAO,OAAO,CAAC,eAAe,CAAC;IAE/B,gBAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACxB,YAAE,CAAC,aAAa,CAAC,eAAe,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC;IAE3D,MAAM,EAAE,GAAG,uBAAa,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,UAAU,EAAE,UAAU,EAAE,SAAS,CAAC,EAAE;QACvE,GAAG,EAAE,UAAU;QACf,KAAK,EAAE,SAAS;KACnB,CAAC,CAAC;IAEH,MAAM,IAAA,aAAI,EAAC,EAAE,EAAE,MAAM,CAAC,CAAC;IACvB,IAAI,EAAE,CAAC,QAAQ,KAAK,CAAC;QACjB,MAAM,IAAI,KAAK,CAAC,yCAAyC,GAAG,EAAE,CAAC,QAAQ,CAAC,CAAC;IAE7E,YAAE,CAAC,aAAa,CAAC,+BAA+B,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC;IAC3E,OAAO,CAAC,GAAG,CAAC,gCAAgC,CAAC,CAAC;AAClD,CAAC;AA9CD,kEA8CC"}
1
+ {"version":3,"file":"plugin-npm-dependencies.js","sourceRoot":"","sources":["../../src/plugin/plugin-npm-dependencies.ts"],"names":[],"mappings":";;;;;;AAAA,mDAAqD;AACrD,4CAAoB;AACpB,kEAA0C;AAC1C,gDAAwB;AACxB,mCAA8B;AAC9B,sDAA8B;AAC9B,oDAA4B;AAE5B,SAAgB,iBAAiB,CAAC,IAAY;IAC1C,MAAM,YAAY,GAAG,IAAA,kCAAkB,EAAC,IAAI,CAAC,CAAC;IAC9C,MAAM,UAAU,GAAG,cAAI,CAAC,IAAI,CAAC,YAAY,EAAE,GAAG,iBAAO,CAAC,QAAQ,IAAI,iBAAO,CAAC,IAAI,EAAE,CAAC,CAAC;IAClF,OAAO,UAAU,CAAC;AACtB,CAAC;AAJD,8CAIC;AAEM,KAAK,UAAU,2BAA2B,CAAC,OAAgB,EAAE,WAAgB;IAChF,MAAM,UAAU,GAAG,iBAAiB,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IACvD,MAAM,eAAe,GAAG,cAAI,CAAC,IAAI,CAAC,UAAU,EAAE,cAAc,CAAC,CAAC;IAC9D,MAAM,+BAA+B,GAAG,cAAI,CAAC,IAAI,CAAC,UAAU,EAAE,wBAAwB,CAAC,CAAC;IAExF,IAAI,kBAAuB,CAAC;IAC5B,IAAI;QACA,kBAAkB,GAAG,IAAI,CAAC,KAAK,CAAC,YAAE,CAAC,YAAY,CAAC,+BAA+B,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;KAChG;IACD,OAAO,CAAC,EAAE;KACT;IAED,MAAM,EAAE,oBAAoB,EAAE,GAAG,WAAW,CAAC;IAC7C,IAAI,CAAC,oBAAoB;QACrB,OAAO;IACX,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC,MAAM;QACzC,OAAO;IACX,MAAM,2BAA2B,GAAG,kBAAkB,EAAE,YAAY,IAAI,EAAE,CAAC;IAE3E,IAAI,IAAI,CAAC,SAAS,CAAC,oBAAoB,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,2BAA2B,CAAC,EAAE;QACtF,OAAO,CAAC,GAAG,CAAC,mCAAmC,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC,CAAC;QACvF,OAAO;KACV;IAED,OAAO,CAAC,GAAG,CAAC,gCAAgC,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC,CAAC;IAEpF,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,WAAW,CAAC,CAAC;IAC/C,OAAO,CAAC,YAAY,GAAG,OAAO,CAAC,oBAAoB,CAAC;IACpD,OAAO,OAAO,CAAC,oBAAoB,CAAC;IACpC,OAAO,OAAO,CAAC,eAAe,CAAC;IAE/B,gBAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACxB,YAAE,CAAC,aAAa,CAAC,eAAe,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC;IAE3D,MAAM,EAAE,GAAG,uBAAa,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,UAAU,EAAE,UAAU,EAAE,SAAS,CAAC,EAAE;QACvE,GAAG,EAAE,UAAU;QACf,KAAK,EAAE,SAAS;KACnB,CAAC,CAAC;IAEH,MAAM,IAAA,aAAI,EAAC,EAAE,EAAE,MAAM,CAAC,CAAC;IACvB,IAAI,EAAE,CAAC,QAAQ,KAAK,CAAC;QACjB,MAAM,IAAI,KAAK,CAAC,yCAAyC,GAAG,EAAE,CAAC,QAAQ,CAAC,CAAC;IAE7E,YAAE,CAAC,aAAa,CAAC,+BAA+B,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC;IAC3E,OAAO,CAAC,GAAG,CAAC,gCAAgC,CAAC,CAAC;AAClD,CAAC;AA7CD,kEA6CC"}