@scrypted/server 0.7.92 → 0.7.93

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 (184) hide show
  1. package/package.json +1 -1
  2. package/dist/asynciterable-utils.d.ts +0 -2
  3. package/dist/asynciterable-utils.js +0 -24
  4. package/dist/asynciterable-utils.js.map +0 -1
  5. package/dist/cert.d.ts +0 -6
  6. package/dist/cert.js +0 -75
  7. package/dist/cert.js.map +0 -1
  8. package/dist/collection.d.ts +0 -1
  9. package/dist/collection.js +0 -16
  10. package/dist/collection.js.map +0 -1
  11. package/dist/db-types.d.ts +0 -38
  12. package/dist/db-types.js +0 -45
  13. package/dist/db-types.js.map +0 -1
  14. package/dist/event-registry.d.ts +0 -19
  15. package/dist/event-registry.js +0 -92
  16. package/dist/event-registry.js.map +0 -1
  17. package/dist/http-interfaces.d.ts +0 -3
  18. package/dist/http-interfaces.js +0 -73
  19. package/dist/http-interfaces.js.map +0 -1
  20. package/dist/infer-defaults.d.ts +0 -11
  21. package/dist/infer-defaults.js +0 -119
  22. package/dist/infer-defaults.js.map +0 -1
  23. package/dist/io.d.ts +0 -22
  24. package/dist/io.js +0 -3
  25. package/dist/io.js.map +0 -1
  26. package/dist/level.d.ts +0 -110
  27. package/dist/level.js +0 -135
  28. package/dist/level.js.map +0 -1
  29. package/dist/listen-zero.d.ts +0 -13
  30. package/dist/listen-zero.js +0 -48
  31. package/dist/listen-zero.js.map +0 -1
  32. package/dist/logger.d.ts +0 -29
  33. package/dist/logger.js +0 -78
  34. package/dist/logger.js.map +0 -1
  35. package/dist/media-helpers.d.ts +0 -5
  36. package/dist/media-helpers.js +0 -89
  37. package/dist/media-helpers.js.map +0 -1
  38. package/dist/mixin/mixin-cycle.d.ts +0 -3
  39. package/dist/mixin/mixin-cycle.js +0 -32
  40. package/dist/mixin/mixin-cycle.js.map +0 -1
  41. package/dist/plugin/acl.d.ts +0 -16
  42. package/dist/plugin/acl.js +0 -83
  43. package/dist/plugin/acl.js.map +0 -1
  44. package/dist/plugin/descriptor.d.ts +0 -22
  45. package/dist/plugin/descriptor.js +0 -35
  46. package/dist/plugin/descriptor.js.map +0 -1
  47. package/dist/plugin/media.d.ts +0 -71
  48. package/dist/plugin/media.js +0 -420
  49. package/dist/plugin/media.js.map +0 -1
  50. package/dist/plugin/mediaobject.d.ts +0 -10
  51. package/dist/plugin/mediaobject.js +0 -26
  52. package/dist/plugin/mediaobject.js.map +0 -1
  53. package/dist/plugin/plugin-api.d.ts +0 -106
  54. package/dist/plugin/plugin-api.js +0 -120
  55. package/dist/plugin/plugin-api.js.map +0 -1
  56. package/dist/plugin/plugin-console.d.ts +0 -28
  57. package/dist/plugin/plugin-console.js +0 -291
  58. package/dist/plugin/plugin-console.js.map +0 -1
  59. package/dist/plugin/plugin-debug.d.ts +0 -4
  60. package/dist/plugin/plugin-debug.js +0 -3
  61. package/dist/plugin/plugin-debug.js.map +0 -1
  62. package/dist/plugin/plugin-device.d.ts +0 -54
  63. package/dist/plugin/plugin-device.js +0 -413
  64. package/dist/plugin/plugin-device.js.map +0 -1
  65. package/dist/plugin/plugin-error.d.ts +0 -2
  66. package/dist/plugin/plugin-error.js +0 -7
  67. package/dist/plugin/plugin-error.js.map +0 -1
  68. package/dist/plugin/plugin-host-api.d.ts +0 -43
  69. package/dist/plugin/plugin-host-api.js +0 -177
  70. package/dist/plugin/plugin-host-api.js.map +0 -1
  71. package/dist/plugin/plugin-host.d.ts +0 -45
  72. package/dist/plugin/plugin-host.js +0 -398
  73. package/dist/plugin/plugin-host.js.map +0 -1
  74. package/dist/plugin/plugin-http.d.ts +0 -18
  75. package/dist/plugin/plugin-http.js +0 -120
  76. package/dist/plugin/plugin-http.js.map +0 -1
  77. package/dist/plugin/plugin-lazy-remote.d.ts +0 -31
  78. package/dist/plugin/plugin-lazy-remote.js +0 -75
  79. package/dist/plugin/plugin-lazy-remote.js.map +0 -1
  80. package/dist/plugin/plugin-npm-dependencies.d.ts +0 -8
  81. package/dist/plugin/plugin-npm-dependencies.js +0 -103
  82. package/dist/plugin/plugin-npm-dependencies.js.map +0 -1
  83. package/dist/plugin/plugin-remote-stats.d.ts +0 -8
  84. package/dist/plugin/plugin-remote-stats.js +0 -30
  85. package/dist/plugin/plugin-remote-stats.js.map +0 -1
  86. package/dist/plugin/plugin-remote-websocket.d.ts +0 -29
  87. package/dist/plugin/plugin-remote-websocket.js +0 -152
  88. package/dist/plugin/plugin-remote-websocket.js.map +0 -1
  89. package/dist/plugin/plugin-remote-worker.d.ts +0 -5
  90. package/dist/plugin/plugin-remote-worker.js +0 -348
  91. package/dist/plugin/plugin-remote-worker.js.map +0 -1
  92. package/dist/plugin/plugin-remote.d.ts +0 -75
  93. package/dist/plugin/plugin-remote.js +0 -598
  94. package/dist/plugin/plugin-remote.js.map +0 -1
  95. package/dist/plugin/plugin-repl.d.ts +0 -2
  96. package/dist/plugin/plugin-repl.js +0 -74
  97. package/dist/plugin/plugin-repl.js.map +0 -1
  98. package/dist/plugin/plugin-state-check.d.ts +0 -1
  99. package/dist/plugin/plugin-state-check.js +0 -27
  100. package/dist/plugin/plugin-state-check.js.map +0 -1
  101. package/dist/plugin/plugin-volume.d.ts +0 -3
  102. package/dist/plugin/plugin-volume.js +0 -31
  103. package/dist/plugin/plugin-volume.js.map +0 -1
  104. package/dist/plugin/runtime/child-process-worker.d.ts +0 -20
  105. package/dist/plugin/runtime/child-process-worker.js +0 -42
  106. package/dist/plugin/runtime/child-process-worker.js.map +0 -1
  107. package/dist/plugin/runtime/node-fork-worker.d.ts +0 -9
  108. package/dist/plugin/runtime/node-fork-worker.js +0 -67
  109. package/dist/plugin/runtime/node-fork-worker.js.map +0 -1
  110. package/dist/plugin/runtime/node-thread-worker.d.ts +0 -20
  111. package/dist/plugin/runtime/node-thread-worker.js +0 -73
  112. package/dist/plugin/runtime/node-thread-worker.js.map +0 -1
  113. package/dist/plugin/runtime/python-worker.d.ts +0 -10
  114. package/dist/plugin/runtime/python-worker.js +0 -91
  115. package/dist/plugin/runtime/python-worker.js.map +0 -1
  116. package/dist/plugin/runtime/runtime-worker.d.ts +0 -26
  117. package/dist/plugin/runtime/runtime-worker.js +0 -3
  118. package/dist/plugin/runtime/runtime-worker.js.map +0 -1
  119. package/dist/plugin/socket-serializer.d.ts +0 -5
  120. package/dist/plugin/socket-serializer.js +0 -17
  121. package/dist/plugin/socket-serializer.js.map +0 -1
  122. package/dist/plugin/system.d.ts +0 -39
  123. package/dist/plugin/system.js +0 -216
  124. package/dist/plugin/system.js.map +0 -1
  125. package/dist/rpc-buffer-serializer.d.ts +0 -11
  126. package/dist/rpc-buffer-serializer.js +0 -30
  127. package/dist/rpc-buffer-serializer.js.map +0 -1
  128. package/dist/rpc-serializer.d.ts +0 -24
  129. package/dist/rpc-serializer.js +0 -144
  130. package/dist/rpc-serializer.js.map +0 -1
  131. package/dist/rpc.d.ts +0 -147
  132. package/dist/rpc.js +0 -689
  133. package/dist/rpc.js.map +0 -1
  134. package/dist/runtime.d.ts +0 -103
  135. package/dist/runtime.js +0 -815
  136. package/dist/runtime.js.map +0 -1
  137. package/dist/scrypted-main-exports.d.ts +0 -6
  138. package/dist/scrypted-main-exports.js +0 -57
  139. package/dist/scrypted-main-exports.js.map +0 -1
  140. package/dist/scrypted-main.d.ts +0 -1
  141. package/dist/scrypted-main.js +0 -8
  142. package/dist/scrypted-main.js.map +0 -1
  143. package/dist/scrypted-plugin-main.d.ts +0 -2
  144. package/dist/scrypted-plugin-main.js +0 -43
  145. package/dist/scrypted-plugin-main.js.map +0 -1
  146. package/dist/scrypted-server-main.d.ts +0 -6
  147. package/dist/scrypted-server-main.js +0 -559
  148. package/dist/scrypted-server-main.js.map +0 -1
  149. package/dist/server-settings.d.ts +0 -5
  150. package/dist/server-settings.js +0 -91
  151. package/dist/server-settings.js.map +0 -1
  152. package/dist/services/addresses.d.ts +0 -7
  153. package/dist/services/addresses.js +0 -41
  154. package/dist/services/addresses.js.map +0 -1
  155. package/dist/services/alerts.d.ts +0 -9
  156. package/dist/services/alerts.js +0 -27
  157. package/dist/services/alerts.js.map +0 -1
  158. package/dist/services/cors.d.ts +0 -18
  159. package/dist/services/cors.js +0 -18
  160. package/dist/services/cors.js.map +0 -1
  161. package/dist/services/info.d.ts +0 -5
  162. package/dist/services/info.js +0 -18
  163. package/dist/services/info.js.map +0 -1
  164. package/dist/services/plugin.d.ts +0 -46
  165. package/dist/services/plugin.js +0 -172
  166. package/dist/services/plugin.js.map +0 -1
  167. package/dist/services/service-control.d.ts +0 -8
  168. package/dist/services/service-control.js +0 -39
  169. package/dist/services/service-control.js.map +0 -1
  170. package/dist/services/users.d.ts +0 -19
  171. package/dist/services/users.js +0 -75
  172. package/dist/services/users.js.map +0 -1
  173. package/dist/sleep.d.ts +0 -1
  174. package/dist/sleep.js +0 -8
  175. package/dist/sleep.js.map +0 -1
  176. package/dist/state.d.ts +0 -39
  177. package/dist/state.js +0 -247
  178. package/dist/state.js.map +0 -1
  179. package/dist/threading.d.ts +0 -3
  180. package/dist/threading.js +0 -93
  181. package/dist/threading.js.map +0 -1
  182. package/dist/usertoken.d.ts +0 -11
  183. package/dist/usertoken.js +0 -52
  184. package/dist/usertoken.js.map +0 -1
@@ -1,18 +0,0 @@
1
- /// <reference types="node" />
2
- import { HttpRequest } from '@scrypted/types';
3
- import { Request, Response, Router } from 'express';
4
- import { IncomingHttpHeaders, ServerResponse } from 'http';
5
- import WebSocket from "ws";
6
- export declare function isConnectionUpgrade(headers: IncomingHttpHeaders): boolean;
7
- export declare abstract class PluginHttp<T> {
8
- app: Router;
9
- wss: WebSocket.Server;
10
- constructor(app: Router);
11
- addMiddleware(): void;
12
- abstract handleEngineIOEndpoint(req: Request, res: ServerResponse, endpointRequest: HttpRequest, pluginData: T): void;
13
- abstract handleRequestEndpoint(req: Request, res: Response, endpointRequest: HttpRequest, pluginData: T): void;
14
- abstract getEndpointPluginData(req: Request, endpoint: string, isUpgrade: boolean, isEngineIOEndpoint: boolean): Promise<T>;
15
- abstract handleWebSocket(endpoint: string, httpRequest: HttpRequest, ws: WebSocket, pluginData: T): Promise<void>;
16
- abstract checkUpgrade(req: Request, res: Response, pluginData: T): void;
17
- endpointHandler(req: Request, res: Response, isPublicEndpoint: boolean, isEngineIOEndpoint: boolean, handler: (req: Request, res: Response, endpointRequest: HttpRequest, pluginData: T) => void): Promise<void>;
18
- }
@@ -1,120 +0,0 @@
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.PluginHttp = exports.isConnectionUpgrade = void 0;
7
- const body_parser_1 = __importDefault(require("body-parser"));
8
- const ws_1 = require("ws");
9
- function isConnectionUpgrade(headers) {
10
- // connection:'keep-alive, Upgrade'
11
- return headers.connection?.toLowerCase().includes('upgrade');
12
- }
13
- exports.isConnectionUpgrade = isConnectionUpgrade;
14
- class PluginHttp {
15
- app;
16
- wss = new ws_1.Server({ noServer: true });
17
- constructor(app) {
18
- this.app = app;
19
- }
20
- addMiddleware() {
21
- this.app.all(['/endpoint/@:owner/:pkg/public/engine.io/*', '/endpoint/:pkg/public/engine.io/*'], (req, res) => {
22
- this.endpointHandler(req, res, true, true, this.handleEngineIOEndpoint.bind(this));
23
- });
24
- this.app.all(['/endpoint/@:owner/:pkg/engine.io/*', '/endpoint/@:owner/:pkg/engine.io/*'], (req, res) => {
25
- this.endpointHandler(req, res, false, true, this.handleEngineIOEndpoint.bind(this));
26
- });
27
- // stringify all http endpoints
28
- this.app.all(['/endpoint/@:owner/:pkg/public', '/endpoint/@:owner/:pkg/public/*', '/endpoint/:pkg', '/endpoint/:pkg/*'], body_parser_1.default.text());
29
- this.app.all(['/endpoint/@:owner/:pkg/public', '/endpoint/@:owner/:pkg/public/*', '/endpoint/:pkg/public', '/endpoint/:pkg/public/*'], (req, res) => {
30
- this.endpointHandler(req, res, true, false, this.handleRequestEndpoint.bind(this));
31
- });
32
- this.app.all(['/endpoint/@:owner/:pkg', '/endpoint/@:owner/:pkg/*', '/endpoint/:pkg', '/endpoint/:pkg/*'], (req, res) => {
33
- this.endpointHandler(req, res, false, false, this.handleRequestEndpoint.bind(this));
34
- });
35
- }
36
- async endpointHandler(req, res, isPublicEndpoint, isEngineIOEndpoint, handler) {
37
- const isUpgrade = isConnectionUpgrade(req.headers);
38
- const end = (code, message) => {
39
- if (isUpgrade) {
40
- const socket = res.socket;
41
- socket.write(`HTTP/1.1 ${code} ${message}\r\n` +
42
- '\r\n');
43
- socket.destroy();
44
- }
45
- else {
46
- res.status(code);
47
- res.send(message);
48
- }
49
- };
50
- const { owner, pkg } = req.params;
51
- let endpoint = pkg;
52
- if (owner)
53
- endpoint = `@${owner}/${endpoint}`;
54
- const pluginData = await this.getEndpointPluginData(req, endpoint, isUpgrade, isEngineIOEndpoint);
55
- if (!pluginData) {
56
- end(404, `Not Found (plugin or device "${endpoint}" not found)`);
57
- return;
58
- }
59
- if (isEngineIOEndpoint && isUpgrade) {
60
- this.checkUpgrade(req, res, pluginData);
61
- }
62
- if (isEngineIOEndpoint && req.method === 'OPTIONS') {
63
- res.send(204);
64
- return;
65
- }
66
- if (!isPublicEndpoint && !res.locals.username) {
67
- end(401, 'Not Authorized');
68
- console.log('rejected request', isPublicEndpoint, res.locals.username, req.originalUrl);
69
- return;
70
- }
71
- if (isUpgrade && req.headers.upgrade?.toLowerCase() !== 'websocket') {
72
- end(404, 'Not Found (unknown upgrade protocol)');
73
- return;
74
- }
75
- let rootPath = `/endpoint/${endpoint}`;
76
- if (isPublicEndpoint)
77
- rootPath += '/public';
78
- const body = req.body && typeof req.body !== 'string' ? JSON.stringify(req.body) : req.body;
79
- const httpRequest = {
80
- body,
81
- headers: req.headers,
82
- method: req.method,
83
- rootPath,
84
- url: req.url,
85
- isPublicEndpoint,
86
- username: res.locals.username,
87
- aclId: res.locals.aclId,
88
- };
89
- if (!isEngineIOEndpoint && isUpgrade) {
90
- try {
91
- this.wss.handleUpgrade(req, req.socket, req.upgradeHead, async (ws) => {
92
- try {
93
- await this.handleWebSocket(endpoint, httpRequest, ws, pluginData);
94
- }
95
- catch (e) {
96
- console.error('websocket plugin error', e);
97
- ws.close();
98
- }
99
- });
100
- }
101
- catch (e) {
102
- res.status(500);
103
- res.send(e.toString());
104
- console.error(e);
105
- }
106
- }
107
- else {
108
- try {
109
- handler(req, res, httpRequest, pluginData);
110
- }
111
- catch (e) {
112
- res.status(500);
113
- res.send(e.toString());
114
- console.error(e);
115
- }
116
- }
117
- }
118
- }
119
- exports.PluginHttp = PluginHttp;
120
- //# sourceMappingURL=plugin-http.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"plugin-http.js","sourceRoot":"","sources":["../../src/plugin/plugin-http.ts"],"names":[],"mappings":"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"}
@@ -1,31 +0,0 @@
1
- /// <reference types="node" />
2
- import { EventDetails, ScryptedNativeId, SystemDeviceState } from '@scrypted/types';
3
- import { PluginRemote, PluginRemoteLoadZipOptions } from './plugin-api';
4
- /**
5
- * This remote is necessary as the host needs to create a remote synchronously
6
- * in the constructor and immediately begin queueing commands.
7
- * Warning: do not await in any of these methods unless necessary, otherwise
8
- * execution order of state reporting may fail.
9
- */
10
- export declare class LazyRemote implements PluginRemote {
11
- remotePromise: Promise<PluginRemote>;
12
- remoteReadyPromise: Promise<PluginRemote>;
13
- remote: PluginRemote;
14
- constructor(remotePromise: Promise<PluginRemote>, remoteReadyPromise: Promise<PluginRemote>);
15
- loadZip(packageJson: any, zipData: Buffer | string, options?: PluginRemoteLoadZipOptions): Promise<any>;
16
- setSystemState(state: {
17
- [id: string]: {
18
- [property: string]: SystemDeviceState;
19
- };
20
- }): Promise<void>;
21
- setNativeId(nativeId: ScryptedNativeId, id: string, storage: {
22
- [key: string]: any;
23
- }): Promise<void>;
24
- updateDeviceState(id: string, state: {
25
- [property: string]: SystemDeviceState;
26
- }): Promise<void>;
27
- notify(id: string, eventTimeOrDetails: number | EventDetails, eventInterfaceOrData: string | SystemDeviceState | any, property?: string, value?: SystemDeviceState | any, changed?: boolean): Promise<void>;
28
- ioEvent(id: string, event: string, message?: any): Promise<void>;
29
- createDeviceState(id: string, setState: (property: string, value: any) => Promise<void>): Promise<any>;
30
- getServicePort(name: string, ...args: any[]): Promise<number>;
31
- }
@@ -1,75 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.LazyRemote = void 0;
4
- /**
5
- * This remote is necessary as the host needs to create a remote synchronously
6
- * in the constructor and immediately begin queueing commands.
7
- * Warning: do not await in any of these methods unless necessary, otherwise
8
- * execution order of state reporting may fail.
9
- */
10
- class LazyRemote {
11
- remotePromise;
12
- remoteReadyPromise;
13
- remote;
14
- constructor(remotePromise, remoteReadyPromise) {
15
- this.remotePromise = remotePromise;
16
- this.remoteReadyPromise = remoteReadyPromise;
17
- this.remoteReadyPromise = (async () => {
18
- this.remote = await remoteReadyPromise;
19
- return this.remote;
20
- })();
21
- }
22
- async loadZip(packageJson, zipData, options) {
23
- if (!this.remote)
24
- await this.remoteReadyPromise;
25
- return this.remote.loadZip(packageJson, zipData, options);
26
- }
27
- async setSystemState(state) {
28
- if (!this.remote)
29
- await this.remoteReadyPromise;
30
- return this.remote.setSystemState(state);
31
- }
32
- async setNativeId(nativeId, id, storage) {
33
- if (!this.remote)
34
- await this.remoteReadyPromise;
35
- return this.remote.setNativeId(nativeId, id, storage);
36
- }
37
- async updateDeviceState(id, state) {
38
- try {
39
- if (!this.remote)
40
- await this.remoteReadyPromise;
41
- }
42
- catch (e) {
43
- return;
44
- }
45
- return this.remote.updateDeviceState(id, state);
46
- }
47
- // TODO: deprecate/clean up this signature
48
- // 12/30/2022
49
- async notify(id, eventTimeOrDetails, eventInterfaceOrData, property, value, changed) {
50
- try {
51
- if (!this.remote)
52
- await this.remoteReadyPromise;
53
- }
54
- catch (e) {
55
- return;
56
- }
57
- return this.remote.notify(id, eventTimeOrDetails, eventInterfaceOrData, property, value, changed);
58
- }
59
- async ioEvent(id, event, message) {
60
- if (!this.remote)
61
- await this.remoteReadyPromise;
62
- return this.remote.ioEvent(id, event, message);
63
- }
64
- async createDeviceState(id, setState) {
65
- if (!this.remote)
66
- await this.remoteReadyPromise;
67
- return this.remote.createDeviceState(id, setState);
68
- }
69
- async getServicePort(name, ...args) {
70
- const remote = await this.remotePromise;
71
- return remote.getServicePort(name, ...args);
72
- }
73
- }
74
- exports.LazyRemote = LazyRemote;
75
- //# sourceMappingURL=plugin-lazy-remote.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"plugin-lazy-remote.js","sourceRoot":"","sources":["../../src/plugin/plugin-lazy-remote.ts"],"names":[],"mappings":"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"}
@@ -1,8 +0,0 @@
1
- /// <reference types="node" />
2
- import child_process from 'child_process';
3
- export declare function defaultNpmExec(args: string[], options: child_process.SpawnOptions): child_process.ChildProcess;
4
- declare let npmExecFunction: typeof defaultNpmExec;
5
- export declare function setNpmExecFunction(f: typeof npmExecFunction): void;
6
- export declare function getPluginNodePath(name: string): string;
7
- export declare function installOptionalDependencies(console: Console, packageJson: any): Promise<void>;
8
- export {};
@@ -1,103 +0,0 @@
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.installOptionalDependencies = exports.getPluginNodePath = exports.setNpmExecFunction = exports.defaultNpmExec = void 0;
7
- const child_process_1 = __importDefault(require("child_process"));
8
- const events_1 = require("events");
9
- const fs_1 = __importDefault(require("fs"));
10
- const mkdirp_1 = __importDefault(require("mkdirp"));
11
- const os_1 = __importDefault(require("os"));
12
- const path_1 = __importDefault(require("path"));
13
- const process_1 = __importDefault(require("process"));
14
- const rimraf_1 = __importDefault(require("rimraf"));
15
- const semver_1 = __importDefault(require("semver"));
16
- const plugin_volume_1 = require("./plugin-volume");
17
- function defaultNpmExec(args, options) {
18
- let npm = 'npm';
19
- if (os_1.default.platform() === 'win32')
20
- npm += '.cmd';
21
- const cp = child_process_1.default.spawn(npm, args, options);
22
- return cp;
23
- }
24
- exports.defaultNpmExec = defaultNpmExec;
25
- let npmExecFunction = defaultNpmExec;
26
- function setNpmExecFunction(f) {
27
- npmExecFunction = f;
28
- }
29
- exports.setNpmExecFunction = setNpmExecFunction;
30
- function getPluginNodePath(name) {
31
- const pluginVolume = (0, plugin_volume_1.ensurePluginVolume)(name);
32
- const nodeMajorVersion = semver_1.default.parse(process_1.default.version).major;
33
- let nodeVersionedDirectory = `node${nodeMajorVersion}-${process_1.default.platform}-${process_1.default.arch}`;
34
- const scryptedBase = process_1.default.env.SCRYPTED_BASE_VERSION;
35
- if (scryptedBase)
36
- nodeVersionedDirectory += '-' + scryptedBase;
37
- const nodePrefix = path_1.default.join(pluginVolume, nodeVersionedDirectory);
38
- return nodePrefix;
39
- }
40
- exports.getPluginNodePath = getPluginNodePath;
41
- async function installOptionalDependencies(console, packageJson) {
42
- const nodePrefix = getPluginNodePath(packageJson.name);
43
- const packageJsonPath = path_1.default.join(nodePrefix, 'package.json');
44
- const currentInstalledPackageJsonPath = path_1.default.join(nodePrefix, 'package.installed.json');
45
- let currentPackageJson;
46
- try {
47
- currentPackageJson = JSON.parse(fs_1.default.readFileSync(currentInstalledPackageJsonPath).toString());
48
- }
49
- catch (e) {
50
- }
51
- try {
52
- const { optionalDependencies } = packageJson;
53
- if (!optionalDependencies)
54
- return;
55
- if (!Object.keys(optionalDependencies).length)
56
- return;
57
- const currentOptionalDependencies = currentPackageJson?.dependencies || {};
58
- if (JSON.stringify(optionalDependencies) === JSON.stringify(currentOptionalDependencies)) {
59
- console.log('native dependencies (up to date).', ...Object.keys(optionalDependencies));
60
- return;
61
- }
62
- console.log('native dependencies (outdated)', ...Object.keys(optionalDependencies));
63
- const reduced = Object.assign({}, packageJson);
64
- reduced.dependencies = reduced.optionalDependencies;
65
- delete reduced.optionalDependencies;
66
- delete reduced.devDependencies;
67
- delete reduced.scripts;
68
- mkdirp_1.default.sync(nodePrefix);
69
- fs_1.default.writeFileSync(packageJsonPath, JSON.stringify(reduced));
70
- const cp = npmExecFunction(['--prefix', nodePrefix, 'install'], {
71
- cwd: nodePrefix,
72
- stdio: 'inherit',
73
- });
74
- await (0, events_1.once)(cp, 'exit');
75
- if (cp.exitCode !== 0)
76
- throw new Error('npm installation failed with exit code ' + cp.exitCode);
77
- fs_1.default.writeFileSync(currentInstalledPackageJsonPath, JSON.stringify(reduced));
78
- console.log('native dependencies installed.');
79
- }
80
- finally {
81
- const pluginVolume = (0, plugin_volume_1.ensurePluginVolume)(packageJson.name);
82
- for (const de of await fs_1.default.promises.readdir(pluginVolume, {
83
- withFileTypes: true,
84
- })) {
85
- const filePath = path_1.default.join(pluginVolume, de.name);
86
- if (filePath === nodePrefix)
87
- continue;
88
- if (!de.isDirectory())
89
- return;
90
- if (de.name.startsWith('linux') || de.name.startsWith('darwin') || de.name.startsWith('win32')
91
- || de.name.startsWith('python') || de.name.startsWith('node')) {
92
- console.log('Removing old dependencies:', filePath);
93
- try {
94
- rimraf_1.default.sync(filePath);
95
- }
96
- catch (e) {
97
- }
98
- }
99
- }
100
- }
101
- }
102
- exports.installOptionalDependencies = installOptionalDependencies;
103
- //# sourceMappingURL=plugin-npm-dependencies.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"plugin-npm-dependencies.js","sourceRoot":"","sources":["../../src/plugin/plugin-npm-dependencies.ts"],"names":[],"mappings":"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"}
@@ -1,8 +0,0 @@
1
- /// <reference types="node" />
2
- import { NodeThreadWorker } from "./runtime/node-thread-worker";
3
- export interface PluginStats {
4
- type: 'stats';
5
- cpu: NodeJS.CpuUsage;
6
- memoryUsage: NodeJS.MemoryUsage;
7
- }
8
- export declare function startStatsUpdater(allMemoryStats: Map<NodeThreadWorker, NodeJS.MemoryUsage>, updateStats: (stats: PluginStats) => void): void;
@@ -1,30 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.startStatsUpdater = void 0;
4
- function startStatsUpdater(allMemoryStats, updateStats) {
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;
21
- }
22
- updateStats({
23
- type: 'stats',
24
- cpu: cpuUsage,
25
- memoryUsage,
26
- });
27
- }, 10000);
28
- }
29
- exports.startStatsUpdater = startStatsUpdater;
30
- //# sourceMappingURL=plugin-remote-stats.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"plugin-remote-stats.js","sourceRoot":"","sources":["../../src/plugin/plugin-remote-stats.ts"],"names":[],"mappings":";;;AAQA,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;YACtC,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;SAC/C;QAED,WAAW,CAAC;YACR,IAAI,EAAE,OAAO;YACb,GAAG,EAAE,QAAQ;YACb,WAAW;SACd,CAAC,CAAC;IACP,CAAC,EAAE,KAAK,CAAC,CAAC;AACd,CAAC;AA3BD,8CA2BC"}
@@ -1,29 +0,0 @@
1
- import { RpcPeer, RpcSerializer } from "../rpc";
2
- export interface WebSocketConnectCallbacks {
3
- connect(e: Error, ws: WebSocketMethods): void;
4
- end(): void;
5
- error(e: Error): void;
6
- data(data: string | ArrayBufferLike): void;
7
- }
8
- export interface WebSocketConnect {
9
- (connection: WebSocketConnection, callbacks: WebSocketConnectCallbacks): void;
10
- }
11
- export interface WebSocketMethods {
12
- send(message: string | ArrayBufferLike): void;
13
- close(message: string): void;
14
- }
15
- export declare function createWebSocketClass(__websocketConnect: WebSocketConnect): any;
16
- export declare class WebSocketConnection implements WebSocketMethods {
17
- url: string;
18
- websocketMethods: WebSocketMethods;
19
- [RpcPeer.PROPERTY_PROXY_PROPERTIES]: any;
20
- [RpcPeer.PROPERTY_PROXY_ONEWAY_METHODS]: string[];
21
- constructor(url: string, websocketMethods: WebSocketMethods);
22
- send(message: string | ArrayBufferLike): void;
23
- close(message: string): void;
24
- }
25
- export declare class WebSocketSerializer implements RpcSerializer {
26
- WebSocket: ReturnType<typeof createWebSocketClass>;
27
- serialize(value: any, serializationContext?: any): void;
28
- deserialize(serialized: WebSocketConnection, serializationContext?: any): any;
29
- }
@@ -1,152 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.WebSocketSerializer = exports.WebSocketConnection = exports.createWebSocketClass = void 0;
4
- const rpc_1 = require("../rpc");
5
- class WebSocketEventTarget {
6
- events = {};
7
- dispatchEvent(event) {
8
- const list = this.events[event.type];
9
- if (!list) {
10
- return;
11
- }
12
- for (const l of list) {
13
- l(event);
14
- }
15
- }
16
- addEventListener(type, f) {
17
- let list = this.events[type];
18
- if (!list) {
19
- list = this.events[type] = [];
20
- }
21
- list.push(f);
22
- }
23
- removeEventListener(type, f) {
24
- const list = this.events[type];
25
- if (!list) {
26
- return;
27
- }
28
- const index = list.indexOf(f);
29
- if (index > -1) {
30
- list.splice(index, 1);
31
- }
32
- }
33
- }
34
- function defineEventAttribute(p, type) {
35
- Object.defineProperty(p, 'on' + type, {
36
- get: function () {
37
- throw new Error(`${type} is write only`);
38
- },
39
- set: function (f) {
40
- this.events[type] = [f];
41
- }
42
- });
43
- }
44
- function createWebSocketClass(__websocketConnect) {
45
- class WebSocket extends WebSocketEventTarget {
46
- connection;
47
- _url;
48
- _protocols;
49
- readyState;
50
- constructor(connection, protocols) {
51
- super();
52
- this.connection = connection;
53
- this._url = connection.url;
54
- this._protocols = protocols;
55
- this.readyState = 0;
56
- __websocketConnect(connection, {
57
- connect: (e, ws) => {
58
- // connect
59
- if (e != null) {
60
- this.dispatchEvent({
61
- type: 'error',
62
- message: e.toString(),
63
- });
64
- return;
65
- }
66
- this.readyState = 1;
67
- this.dispatchEvent({
68
- type: 'open',
69
- });
70
- },
71
- end: () => {
72
- // end
73
- this.readyState = 3;
74
- this.dispatchEvent({
75
- type: 'close',
76
- reason: 'closed',
77
- });
78
- },
79
- error: (e) => {
80
- // error
81
- this.readyState = 3;
82
- this.dispatchEvent({
83
- type: 'error',
84
- message: e.toString(),
85
- });
86
- },
87
- data: (data) => {
88
- // data
89
- this.dispatchEvent({
90
- type: 'message',
91
- data: data,
92
- source: this,
93
- });
94
- }
95
- });
96
- }
97
- send(message) {
98
- this.connection.send(message);
99
- }
100
- get url() {
101
- return this._url;
102
- }
103
- get extensions() {
104
- return "";
105
- }
106
- close(reason) {
107
- this.connection.close(reason);
108
- }
109
- }
110
- defineEventAttribute(WebSocket.prototype, "close");
111
- defineEventAttribute(WebSocket.prototype, "error");
112
- defineEventAttribute(WebSocket.prototype, "message");
113
- defineEventAttribute(WebSocket.prototype, "open");
114
- return WebSocket;
115
- }
116
- exports.createWebSocketClass = createWebSocketClass;
117
- class WebSocketConnection {
118
- url;
119
- websocketMethods;
120
- [rpc_1.RpcPeer.PROPERTY_PROXY_PROPERTIES];
121
- [rpc_1.RpcPeer.PROPERTY_PROXY_ONEWAY_METHODS] = [
122
- "send",
123
- "close",
124
- ];
125
- constructor(url, websocketMethods) {
126
- this.url = url;
127
- this.websocketMethods = websocketMethods;
128
- this[rpc_1.RpcPeer.PROPERTY_PROXY_PROPERTIES] = {
129
- url,
130
- };
131
- }
132
- send(message) {
133
- return this.websocketMethods.send(message);
134
- }
135
- close(message) {
136
- return this.websocketMethods.close(message);
137
- }
138
- }
139
- exports.WebSocketConnection = WebSocketConnection;
140
- class WebSocketSerializer {
141
- WebSocket;
142
- serialize(value, serializationContext) {
143
- throw new Error("WebSocketSerializer should only be used for deserialization.");
144
- }
145
- deserialize(serialized, serializationContext) {
146
- if (!this.WebSocket)
147
- return undefined;
148
- return new this.WebSocket(serialized);
149
- }
150
- }
151
- exports.WebSocketSerializer = WebSocketSerializer;
152
- //# sourceMappingURL=plugin-remote-websocket.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"plugin-remote-websocket.js","sourceRoot":"","sources":["../../src/plugin/plugin-remote-websocket.ts"],"names":[],"mappings":"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"}
@@ -1,5 +0,0 @@
1
- import { RpcMessage, RpcPeer } from '../rpc';
2
- export interface StartPluginRemoteOptions {
3
- onClusterPeer(peer: RpcPeer): void;
4
- }
5
- export declare function startPluginRemote(mainFilename: string, pluginId: string, peerSend: (message: RpcMessage, reject?: (e: Error) => void, serializationContext?: any) => void, startPluginRemoteOptions?: StartPluginRemoteOptions): RpcPeer;