@scrypted/server 0.0.180 → 0.0.181

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.

package/dist/threading.js CHANGED
@@ -8,10 +8,17 @@ const worker_threads_1 = __importDefault(require("worker_threads"));
8
8
  const rpc_1 = require("./rpc");
9
9
  const v8_1 = __importDefault(require("v8"));
10
10
  async function newThread(...args) {
11
- let thread = args[1];
12
11
  let params = {};
13
- if (thread) {
12
+ let modules = {};
13
+ let thread;
14
+ if (args[2]) {
15
+ modules = args[0];
16
+ params = args[1];
17
+ thread = args[2];
18
+ }
19
+ else if (args[1]) {
14
20
  params = args[0];
21
+ thread = args[1];
15
22
  }
16
23
  else {
17
24
  thread = args[0];
@@ -32,12 +39,16 @@ async function newThread(...args) {
32
39
  reject?.(e);
33
40
  }
34
41
  });
42
+ mainPeer.transportSafeArgumentTypes.add(Buffer.name);
35
43
  worker_threads.parentPort.on('message', (message) => mainPeer.handleMessage(v8.deserialize(message)));
36
- mainPeer.params.eval = async (script, paramNames, ...paramValues) => {
44
+ mainPeer.params.eval = async (script, moduleNames, paramNames, ...paramValues) => {
37
45
  const f = vm.compileFunction(`return (${script})`, paramNames, {
38
46
  filename: 'script.js',
39
47
  });
40
48
  const params = {};
49
+ for (const module of moduleNames) {
50
+ params[module] = global.require(module);
51
+ }
41
52
  for (let i = 0; i < paramNames.length; i++) {
42
53
  params[paramNames[i]] = paramValues[i];
43
54
  }
@@ -62,12 +73,14 @@ async function newThread(...args) {
62
73
  reject?.(e);
63
74
  }
64
75
  });
76
+ threadPeer.transportSafeArgumentTypes.add(Buffer.name);
65
77
  worker.on('message', (message) => threadPeer.handleMessage(v8_1.default.deserialize(message)));
66
78
  const e = await threadPeer.getParam('eval');
79
+ const moduleNames = Object.keys(modules);
67
80
  const paramNames = Object.keys(params);
68
81
  const paramValues = Object.values(params);
69
82
  try {
70
- return await e(thread.toString(), paramNames, ...paramValues);
83
+ return await e(thread.toString(), moduleNames, paramNames, ...paramValues);
71
84
  }
72
85
  finally {
73
86
  worker.terminate();
@@ -1 +1 @@
1
- {"version":3,"file":"threading.js","sourceRoot":"","sources":["../src/threading.ts"],"names":[],"mappings":";;;;;;AAAA,oEAA4C;AAC5C,+BAA+C;AAC/C,4CAAoB;AAKb,KAAK,UAAU,SAAS,CAAI,GAAG,IAAW;IAC7C,IAAI,MAAM,GAAqB,IAAI,CAAC,CAAC,CAAC,CAAC;IACvC,IAAI,MAAM,GAA2B,EAAE,CAAC;IACxC,IAAI,MAAM,EAAE;QACR,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;KACpB;SACI;QACD,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;KACpB;IAED,MAAM,CAAC,GAAG,CAAC,aAAqB,EAAE,OAAY,EAAE,EAAE;QAC9C,IAAI,aAAa,EAAE;YACf,MAAM,CAAC,GAAG,MAAa,CAAC;YACxB,CAAC,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC;SAChC;QACD,MAAM,EAAE,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAChC,MAAM,cAAc,GAAG,MAAM,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;QACxD,MAAM,EAAE,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAChC,MAAM,QAAQ,GAAG,IAAI,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,CAAC,OAAY,EAAE,MAAW,EAAE,EAAE;YACzE,IAAI;gBACA,cAAc,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC;aAChE;YACD,OAAO,CAAC,EAAE;gBACN,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC;aACf;QACL,CAAC,CAAC,CAAC;QACH,cAAc,CAAC,UAAU,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC,OAAY,EAAE,EAAE,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QAE3G,QAAQ,CAAC,MAAM,CAAC,IAAI,GAAG,KAAK,EAAE,MAAc,EAAE,UAAoB,EAAE,GAAG,WAAkB,EAAE,EAAE;YACzF,MAAM,CAAC,GAAG,EAAE,CAAC,eAAe,CAAC,WAAW,MAAM,GAAG,EAAE,UAAU,EAAE;gBAC3D,QAAQ,EAAE,WAAW;aACxB,CAAC,CAAC;YACH,MAAM,MAAM,GAAQ,EAAE,CAAC;YACvB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBACxC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;aAC1C;YACD,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,GAAG,WAAW,CAAC,CAAC;YAClC,OAAO,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC;QAC3B,CAAC,CAAA;IACL,CAAC,CAAC;IACF,MAAM,SAAS,GAAG,IAAA,mBAAa,GAAE,CAAC;IAElC,IAAI,aAAa,GAAG,MAAM,CAAC,aAAa,IAAI,EAAE,CAAC;IAE/C,MAAM,YAAY,GAAG;wBACD,SAAS;;OAE1B,CAAC,MAAM,aAAa,aAAa,CAAC;IAErC,MAAM,MAAM,GAAG,IAAI,wBAAc,CAAC,MAAM,CAAC,YAAY,EAAE;QACnD,IAAI,EAAE,IAAI;KACb,CAAC,CAAC;IAEH,MAAM,UAAU,GAAG,IAAI,aAAO,CAAC,MAAM,EAAE,QAAQ,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACjE,IAAI;YACA,MAAM,CAAC,WAAW,CAAC,YAAE,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC;SAC7C;QACD,OAAO,CAAC,EAAE;YACN,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC;SACf;IACL,CAAC,CAAC,CAAC;IACH,MAAM,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC,OAAY,EAAE,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC,YAAE,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IAE1F,MAAM,CAAC,GAAG,MAAM,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IAC5C,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACvC,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAC1C,IAAI;QACA,OAAO,MAAM,CAAC,CAAC,MAAM,CAAC,QAAQ,EAAE,EAAE,UAAU,EAAE,GAAG,WAAW,CAAC,CAAC;KACjE;YACO;QACJ,MAAM,CAAC,SAAS,EAAE,CAAC;KACtB;AACL,CAAC;AAxED,8BAwEC;AAED,KAAK,UAAU,IAAI;IACf,MAAM,GAAG,GAAG,CAAC,CAAC;IACd,MAAM,GAAG,GAAG,CAAC,CAAC;IAEd,OAAO,CAAC,GAAG,CAAC,MAAM,SAAS,CAAC;QACxB,GAAG,EAAE,GAAG;KACX,EAAE,KAAK,IAAI,EAAE;QACV,OAAO,GAAG,GAAG,GAAG,CAAC;IACrB,CAAC,CAAC,CAAC,CAAC;IAGJ,OAAO,CAAC,GAAG,CAAC,MAAM,SAAS,CAAC;QACxB,GAAG,EAAE,GAAG;KACX,EAAE,KAAK,EAAE,EAAC,GAAG,EAAC,GAAG,EAAC,EAAE,EAAE;QACnB,OAAO,GAAG,GAAG,GAAG,CAAC;IACrB,CAAC,CAAC,CAAC,CAAC;IAEJ,MAAM,oBAAoB,GAAG,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,qBAAqB,EAAE,wBAAc,CAAC,YAAY,CAAC,CAAC;IACnG,MAAM,SAAS,CAAC;QACZ,oBAAoB;KACvB,EAAE,KAAK,IAAI,EAAE;QACV,oBAAoB,EAAE,CAAC;IAC3B,CAAC,CAAC,CAAA;AACN,CAAC;AAED,YAAY;AACZ,cAAc"}
1
+ {"version":3,"file":"threading.js","sourceRoot":"","sources":["../src/threading.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,11 +1,11 @@
1
1
  {
2
2
  "name": "@scrypted/server",
3
- "version": "0.0.180",
3
+ "version": "0.0.181",
4
4
  "description": "",
5
5
  "dependencies": {
6
6
  "@mapbox/node-pre-gyp": "^1.0.8",
7
7
  "@scrypted/ffmpeg": "^1.0.10",
8
- "@scrypted/types": "^0.0.42",
8
+ "@scrypted/types": "^0.0.44",
9
9
  "adm-zip": "^0.5.3",
10
10
  "axios": "^0.21.1",
11
11
  "body-parser": "^1.19.0",
package/src/threading.ts CHANGED
@@ -4,12 +4,20 @@ import v8 from 'v8';
4
4
 
5
5
  export async function newThread<T>(thread: () => Promise<T>): Promise<T>;
6
6
  export async function newThread<V, T>(params: V, thread: (params: V) => Promise<T>): Promise<T>;
7
+ export async function newThread<M, V, T>(modules: M, params: V, thread: (params: M & V) => Promise<T>): Promise<T>;
7
8
 
8
9
  export async function newThread<T>(...args: any[]): Promise<T> {
9
- let thread: () => Promise<T> = args[1];
10
10
  let params: { [key: string]: any } = {};
11
- if (thread) {
11
+ let modules: { [key: string]: any } = {};
12
+ let thread: () => Promise<T>;
13
+ if (args[2]) {
14
+ modules = args[0]
15
+ params = args[1];
16
+ thread = args[2];
17
+ }
18
+ else if (args[1]) {
12
19
  params = args[0];
20
+ thread = args[1];
13
21
  }
14
22
  else {
15
23
  thread = args[0];
@@ -31,13 +39,17 @@ export async function newThread<T>(...args: any[]): Promise<T> {
31
39
  reject?.(e);
32
40
  }
33
41
  });
42
+ mainPeer.transportSafeArgumentTypes.add(Buffer.name);
34
43
  worker_threads.parentPort.on('message', (message: any) => mainPeer.handleMessage(v8.deserialize(message)));
35
44
 
36
- mainPeer.params.eval = async (script: string, paramNames: string[], ...paramValues: any[]) => {
45
+ mainPeer.params.eval = async (script: string, moduleNames: string[], paramNames: string[], ...paramValues: any[]) => {
37
46
  const f = vm.compileFunction(`return (${script})`, paramNames, {
38
47
  filename: 'script.js',
39
48
  });
40
49
  const params: any = {};
50
+ for (const module of moduleNames) {
51
+ params[module] = global.require(module);
52
+ }
41
53
  for (let i = 0; i < paramNames.length; i++) {
42
54
  params[paramNames[i]] = paramValues[i];
43
55
  }
@@ -66,13 +78,15 @@ export async function newThread<T>(...args: any[]): Promise<T> {
66
78
  reject?.(e);
67
79
  }
68
80
  });
81
+ threadPeer.transportSafeArgumentTypes.add(Buffer.name);
69
82
  worker.on('message', (message: any) => threadPeer.handleMessage(v8.deserialize(message)));
70
83
 
71
84
  const e = await threadPeer.getParam('eval');
85
+ const moduleNames = Object.keys(modules);
72
86
  const paramNames = Object.keys(params);
73
87
  const paramValues = Object.values(params);
74
88
  try {
75
- return await e(thread.toString(), paramNames, ...paramValues);
89
+ return await e(thread.toString(), moduleNames, paramNames, ...paramValues);
76
90
  }
77
91
  finally {
78
92
  worker.terminate();