@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,216 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.SystemManagerImpl = void 0;
4
- const types_1 = require("@scrypted/types");
5
- const event_registry_1 = require("../event-registry");
6
- const rpc_1 = require("../rpc");
7
- // import type { PluginComponent } from "../services/plugin";
8
- const descriptor_1 = require("./descriptor");
9
- function newDeviceProxy(id, systemManager) {
10
- const handler = new DeviceProxyHandler(id, systemManager);
11
- return new Proxy(handler, handler);
12
- }
13
- class DeviceProxyHandler {
14
- id;
15
- systemManager;
16
- customProperties;
17
- device;
18
- constructor(id, systemManager) {
19
- this.id = id;
20
- this.systemManager = systemManager;
21
- }
22
- toPrimitive() {
23
- return `ScryptedDevice-${this.id}`;
24
- }
25
- ownKeys(target) {
26
- const interfaces = new Set(this.systemManager.state[this.id].interfaces.value);
27
- const methods = (0, descriptor_1.getInterfaceMethods)(this.systemManager.descriptors || types_1.ScryptedInterfaceDescriptors, interfaces);
28
- const properties = (0, descriptor_1.getInterfaceProperties)(this.systemManager.descriptors || types_1.ScryptedInterfaceDescriptors, interfaces);
29
- return [...methods, ...properties];
30
- }
31
- getOwnPropertyDescriptor(target, p) {
32
- const interfaces = new Set(this.systemManager.state[this.id].interfaces.value);
33
- const methods = (0, descriptor_1.getInterfaceMethods)(this.systemManager.descriptors || types_1.ScryptedInterfaceDescriptors, interfaces);
34
- const prop = p.toString();
35
- if (methods.includes(prop)) {
36
- return {
37
- configurable: true,
38
- };
39
- }
40
- const properties = (0, descriptor_1.getInterfaceProperties)(this.systemManager.descriptors || types_1.ScryptedInterfaceDescriptors, interfaces);
41
- if (properties.includes(prop)) {
42
- return {
43
- configurable: true,
44
- value: this.systemManager.state[this.id][prop]?.value
45
- };
46
- }
47
- }
48
- deleteProperty(target, p) {
49
- const prop = p.toString();
50
- if (Object.keys(types_1.ScryptedInterfaceProperty).includes(prop))
51
- return false;
52
- this.customProperties ||= new Map();
53
- this.customProperties.set(p, undefined);
54
- return true;
55
- }
56
- set(target, p, newValue, receiver) {
57
- const prop = p.toString();
58
- if (Object.keys(types_1.ScryptedInterfaceProperty).includes(prop))
59
- return false;
60
- this.customProperties ||= new Map();
61
- this.customProperties.set(p, newValue);
62
- return true;
63
- }
64
- get(target, p, receiver) {
65
- if (p === 'id')
66
- return this.id;
67
- if (this.customProperties?.has(p))
68
- return this.customProperties.get(p);
69
- const handled = rpc_1.RpcPeer.handleFunctionInvocations(this, target, p, receiver);
70
- if (handled)
71
- return handled;
72
- const interfaces = new Set(this.systemManager.state[this.id].interfaces?.value || []);
73
- const prop = p.toString();
74
- const isValidProperty = this.systemManager.propertyInterfaces?.[prop] || descriptor_1.propertyInterfaces[prop];
75
- // this will also return old properties that should not exist on a device. ie, a disabled mixin provider.
76
- // should this change?
77
- if (isValidProperty)
78
- return this.systemManager.state[this.id]?.[p]?.value;
79
- if (!(0, descriptor_1.isValidInterfaceMethod)(this.systemManager.descriptors || types_1.ScryptedInterfaceDescriptors, interfaces, prop))
80
- return;
81
- if (types_1.ScryptedInterfaceDescriptors[types_1.ScryptedInterface.ScryptedDevice].methods.includes(prop))
82
- return this[p].bind(this);
83
- return new Proxy(() => p, this);
84
- }
85
- ensureDevice() {
86
- if (!this.device)
87
- this.device = this.systemManager.api.getDeviceById(this.id);
88
- return this.device;
89
- }
90
- async apply(target, thisArg, argArray) {
91
- const method = target();
92
- const device = await this.ensureDevice();
93
- return device[method](...argArray);
94
- }
95
- listen(event, callback) {
96
- return this.systemManager.listenDevice(this.id, event, callback);
97
- }
98
- async setName(name) {
99
- return this.systemManager.api.setDeviceProperty(this.id, types_1.ScryptedInterfaceProperty.name, name);
100
- }
101
- async setRoom(room) {
102
- return this.systemManager.api.setDeviceProperty(this.id, types_1.ScryptedInterfaceProperty.room, room);
103
- }
104
- async setType(type) {
105
- return this.systemManager.api.setDeviceProperty(this.id, types_1.ScryptedInterfaceProperty.type, type);
106
- }
107
- async setMixins(mixins) {
108
- const plugins = await this.systemManager.getComponent('plugins'); // as PluginComponent;
109
- await plugins.setMixins(this.id, mixins);
110
- }
111
- async probe() {
112
- return this.apply(() => 'probe', undefined, []);
113
- }
114
- }
115
- class EventListenerRegisterImpl {
116
- promise;
117
- constructor(promise) {
118
- this.promise = promise;
119
- }
120
- async removeListener() {
121
- try {
122
- const register = await this.promise;
123
- this.promise = undefined;
124
- register?.removeListener();
125
- }
126
- catch (e) {
127
- console.error('removeListener', e);
128
- }
129
- }
130
- }
131
- function makeOneWayCallback(input) {
132
- const f = input;
133
- const oneways = f[rpc_1.RpcPeer.PROPERTY_PROXY_ONEWAY_METHODS] || [];
134
- if (!oneways.includes(null))
135
- oneways.push(null);
136
- f[rpc_1.RpcPeer.PROPERTY_PROXY_ONEWAY_METHODS] = oneways;
137
- return input;
138
- }
139
- class SystemManagerImpl {
140
- api;
141
- state;
142
- deviceProxies = {};
143
- log;
144
- events = new event_registry_1.EventRegistry();
145
- typesVersion;
146
- descriptors;
147
- propertyInterfaces;
148
- getDeviceState(id) {
149
- return this.state[id];
150
- }
151
- getSystemState() {
152
- return this.state;
153
- }
154
- getDeviceById(idOrPluginId, nativeId) {
155
- let id;
156
- if (this.state[idOrPluginId]) {
157
- // don't allow invalid input on nativeId, must be nullish if there is an exact id match.
158
- if (nativeId != null)
159
- return;
160
- id = idOrPluginId;
161
- }
162
- else {
163
- for (const check of Object.keys(this.state)) {
164
- const state = this.state[check];
165
- if (!state)
166
- continue;
167
- if (state[types_1.ScryptedInterfaceProperty.pluginId]?.value === idOrPluginId) {
168
- // null and undefined should match here.
169
- if (state[types_1.ScryptedInterfaceProperty.nativeId]?.value == nativeId) {
170
- id = check;
171
- break;
172
- }
173
- }
174
- }
175
- }
176
- if (!id)
177
- return;
178
- let proxy = this.deviceProxies[id];
179
- if (!proxy)
180
- proxy = this.deviceProxies[id] = newDeviceProxy(id, this);
181
- return proxy;
182
- }
183
- getDeviceByName(name) {
184
- for (const id of Object.keys(this.state)) {
185
- const s = this.state[id];
186
- if (s.interfaces?.value?.includes(types_1.ScryptedInterface.ScryptedPlugin) && s.pluginId?.value === name)
187
- return this.getDeviceById(id);
188
- if (s.name.value === name)
189
- return this.getDeviceById(id);
190
- }
191
- }
192
- listen(callback) {
193
- return this.events.listen(makeOneWayCallback((id, eventDetails, eventData) => callback(this.getDeviceById(id), eventDetails, eventData)));
194
- }
195
- listenDevice(id, options, callback) {
196
- let { watch } = (options || {});
197
- // passive watching can be fast pathed to observe local state
198
- if (watch)
199
- return this.events.listenDevice(id, options, (eventDetails, eventData) => callback(this.getDeviceById(id), eventDetails, eventData));
200
- return new EventListenerRegisterImpl(this.api.listenDevice(id, options, makeOneWayCallback((eventDetails, eventData) => callback(this.getDeviceById(id), eventDetails, eventData))));
201
- }
202
- async removeDevice(id) {
203
- return this.api.removeDevice(id);
204
- }
205
- getComponent(id) {
206
- return this.api.getComponent(id);
207
- }
208
- setScryptedInterfaceDescriptors(typesVersion, descriptors) {
209
- this.typesVersion = typesVersion;
210
- this.descriptors = descriptors;
211
- this.propertyInterfaces = (0, descriptor_1.getPropertyInterfaces)(descriptors);
212
- return this.api.setScryptedInterfaceDescriptors(typesVersion, descriptors);
213
- }
214
- }
215
- exports.SystemManagerImpl = SystemManagerImpl;
216
- //# sourceMappingURL=system.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"system.js","sourceRoot":"","sources":["../../src/plugin/system.ts"],"names":[],"mappings":"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"}
@@ -1,11 +0,0 @@
1
- /// <reference types="node" />
2
- import { RpcSerializer } from "./rpc";
3
- export declare class BufferSerializer implements RpcSerializer {
4
- serialize(value: Buffer): string;
5
- deserialize(serialized: any): Buffer;
6
- }
7
- export declare class SidebandBufferSerializer implements RpcSerializer {
8
- bufferSerializer: BufferSerializer;
9
- serialize(value: any, serializationContext?: any): string | number;
10
- deserialize(serialized: any, serializationContext?: any): Buffer;
11
- }
@@ -1,30 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.SidebandBufferSerializer = exports.BufferSerializer = void 0;
4
- class BufferSerializer {
5
- serialize(value) {
6
- return value.toString('base64');
7
- }
8
- deserialize(serialized) {
9
- return Buffer.from(serialized, 'base64');
10
- }
11
- }
12
- exports.BufferSerializer = BufferSerializer;
13
- class SidebandBufferSerializer {
14
- bufferSerializer = new BufferSerializer();
15
- serialize(value, serializationContext) {
16
- if (!serializationContext)
17
- return this.bufferSerializer.serialize(value);
18
- const buffers = serializationContext.buffers = serializationContext.buffers || [];
19
- buffers.push(value);
20
- return buffers.length - 1;
21
- }
22
- deserialize(serialized, serializationContext) {
23
- if (!serializationContext?.buffers)
24
- return this.bufferSerializer.deserialize(serialized);
25
- const buffers = serializationContext.buffers;
26
- return buffers[serialized];
27
- }
28
- }
29
- exports.SidebandBufferSerializer = SidebandBufferSerializer;
30
- //# sourceMappingURL=rpc-buffer-serializer.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"rpc-buffer-serializer.js","sourceRoot":"","sources":["../src/rpc-buffer-serializer.ts"],"names":[],"mappings":";;;AAEA,MAAa,gBAAgB;IACzB,SAAS,CAAC,KAAa;QACnB,OAAO,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IACpC,CAAC;IACD,WAAW,CAAC,UAAe;QACvB,OAAO,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;IAC7C,CAAC;CACJ;AAPD,4CAOC;AAED,MAAa,wBAAwB;IACjC,gBAAgB,GAAG,IAAI,gBAAgB,EAAE,CAAC;IAE1C,SAAS,CAAC,KAAU,EAAE,oBAA0B;QAC5C,IAAI,CAAC,oBAAoB;YACrB,OAAO,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QAClD,MAAM,OAAO,GAAa,oBAAoB,CAAC,OAAO,GAAG,oBAAoB,CAAC,OAAO,IAAI,EAAE,CAAC;QAC5F,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACpB,OAAO,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC;IAC9B,CAAC;IAED,WAAW,CAAC,UAAe,EAAE,oBAA0B;QACnD,IAAI,CAAC,oBAAoB,EAAE,OAAO;YAC9B,OAAO,IAAI,CAAC,gBAAgB,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;QACzD,MAAM,OAAO,GAAa,oBAAoB,CAAC,OAAO,CAAC;QACvD,OAAO,OAAO,CAAC,UAAU,CAAC,CAAC;IAC/B,CAAC;CACJ;AAjBD,4DAiBC"}
@@ -1,24 +0,0 @@
1
- /// <reference types="node" />
2
- /// <reference types="node" />
3
- import type { Readable, Writable } from "stream";
4
- import { RpcPeer } from "./rpc";
5
- export declare function createDuplexRpcPeer(selfName: string, peerName: string, readable: Readable, writable: Writable): RpcPeer;
6
- export declare function createRpcSerializer(options: {
7
- sendMessageBuffer: (buffer: Buffer) => void;
8
- sendMessageFinish: (message: any) => void;
9
- }): {
10
- kill: (message: string) => void;
11
- sendMessage: (message: any, reject: (e: Error) => void, serializationContext: any) => void;
12
- setupRpcPeer: (peer: RpcPeer) => void;
13
- onMessageBuffer: (buffer: Buffer) => void;
14
- onMessageFinish: (message: any) => void;
15
- onDisconnected: () => void;
16
- };
17
- export declare function createRpcDuplexSerializer(writable: {
18
- write: (data: Buffer) => void;
19
- }): {
20
- onData: (data: Buffer) => void;
21
- setupRpcPeer: (peer: RpcPeer) => void;
22
- sendMessage: (message: any, reject: (e: Error) => void, serializationContext: any) => void;
23
- onDisconnected: () => void;
24
- };
@@ -1,144 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.createRpcDuplexSerializer = exports.createRpcSerializer = exports.createDuplexRpcPeer = void 0;
4
- const rpc_buffer_serializer_1 = require("./rpc-buffer-serializer");
5
- const rpc_1 = require("./rpc");
6
- function createDuplexRpcPeer(selfName, peerName, readable, writable) {
7
- const serializer = createRpcDuplexSerializer(writable);
8
- const rpcPeer = new rpc_1.RpcPeer(selfName, peerName, (message, reject, serializationContext) => {
9
- try {
10
- serializer.sendMessage(message, reject, serializationContext);
11
- }
12
- catch (e) {
13
- reject?.(e);
14
- readable.destroy();
15
- }
16
- });
17
- serializer.setupRpcPeer(rpcPeer);
18
- readable.on('data', data => serializer.onData(data));
19
- readable.on('close', serializer.onDisconnected);
20
- readable.on('error', serializer.onDisconnected);
21
- return rpcPeer;
22
- }
23
- exports.createDuplexRpcPeer = createDuplexRpcPeer;
24
- function createRpcSerializer(options) {
25
- let rpcPeer;
26
- const { sendMessageBuffer, sendMessageFinish } = options;
27
- let connected = true;
28
- const onDisconnected = () => {
29
- connected = false;
30
- rpcPeer.kill('connection closed.');
31
- };
32
- const sendMessage = (message, reject, serializationContext) => {
33
- if (!connected) {
34
- reject?.(new Error('peer disconnected'));
35
- return;
36
- }
37
- const buffers = serializationContext?.buffers;
38
- if (buffers) {
39
- for (const buffer of buffers) {
40
- sendMessageBuffer(buffer);
41
- }
42
- }
43
- sendMessageFinish(message);
44
- };
45
- let pendingSerializationContext = {};
46
- const setupRpcPeer = (peer) => {
47
- rpcPeer = peer;
48
- rpcPeer.addSerializer(Buffer, 'Buffer', new rpc_buffer_serializer_1.SidebandBufferSerializer());
49
- rpcPeer.constructorSerializerMap.set(Uint8Array, 'Buffer');
50
- };
51
- const onMessageBuffer = (buffer) => {
52
- pendingSerializationContext = pendingSerializationContext || {
53
- buffers: [],
54
- };
55
- const buffers = pendingSerializationContext.buffers;
56
- buffers.push(buffer);
57
- };
58
- const onMessageFinish = (message) => {
59
- const messageSerializationContext = pendingSerializationContext;
60
- pendingSerializationContext = undefined;
61
- rpcPeer.handleMessage(message, messageSerializationContext);
62
- };
63
- const kill = (message) => {
64
- rpcPeer.kill(message);
65
- };
66
- return {
67
- kill,
68
- sendMessage,
69
- setupRpcPeer,
70
- onMessageBuffer,
71
- onMessageFinish,
72
- onDisconnected,
73
- };
74
- }
75
- exports.createRpcSerializer = createRpcSerializer;
76
- function createRpcDuplexSerializer(writable) {
77
- const socketSend = (type, data) => {
78
- const header = Buffer.alloc(5);
79
- header.writeUInt32BE(data.length + 1, 0);
80
- header.writeUInt8(type, 4);
81
- writable.write(Buffer.concat([header, data]));
82
- };
83
- const createSocketSend = (type) => {
84
- return (data) => {
85
- return socketSend(type, data);
86
- };
87
- };
88
- const sendMessageBuffer = createSocketSend(1);
89
- const sendMessageFinish = createSocketSend(0);
90
- const serializer = createRpcSerializer({
91
- sendMessageBuffer,
92
- sendMessageFinish: (message) => sendMessageFinish(Buffer.from(JSON.stringify(message))),
93
- });
94
- let header;
95
- let pending;
96
- const readPending = (length) => {
97
- if (!pending || pending.length < length)
98
- return;
99
- const ret = pending.slice(0, length);
100
- pending = pending.slice(length);
101
- if (!pending.length)
102
- pending = undefined;
103
- return ret;
104
- };
105
- const onData = (data) => {
106
- if (!pending)
107
- pending = data;
108
- else
109
- pending = Buffer.concat([pending, data]);
110
- while (true) {
111
- if (!header) {
112
- header = readPending(5);
113
- if (!header)
114
- return;
115
- }
116
- const length = header.readUInt32BE(0);
117
- const type = header.readUInt8(4);
118
- const payload = readPending(length - 1);
119
- if (!payload)
120
- return;
121
- header = undefined;
122
- if (type === 0) {
123
- try {
124
- const message = JSON.parse(payload.toString());
125
- serializer.onMessageFinish(message);
126
- }
127
- catch (e) {
128
- serializer.kill('message parse failure ' + e.message);
129
- }
130
- }
131
- else {
132
- serializer.onMessageBuffer(payload);
133
- }
134
- }
135
- };
136
- return {
137
- onData,
138
- setupRpcPeer: serializer.setupRpcPeer,
139
- sendMessage: serializer.sendMessage,
140
- onDisconnected: serializer.onDisconnected,
141
- };
142
- }
143
- exports.createRpcDuplexSerializer = createRpcDuplexSerializer;
144
- //# sourceMappingURL=rpc-serializer.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"rpc-serializer.js","sourceRoot":"","sources":["../src/rpc-serializer.ts"],"names":[],"mappings":"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"}
package/dist/rpc.d.ts DELETED
@@ -1,147 +0,0 @@
1
- /// <reference types="node" />
2
- export declare function startPeriodicGarbageCollection(): NodeJS.Timer;
3
- export interface RpcMessage {
4
- type: 'apply' | 'result' | 'finalize' | 'param';
5
- }
6
- export interface RpcParam extends RpcMessage {
7
- type: 'param';
8
- id: string;
9
- param: string;
10
- }
11
- export interface RpcApply extends RpcMessage {
12
- type: 'apply';
13
- id: string | undefined;
14
- proxyId: string;
15
- args: any[];
16
- method: string;
17
- oneway?: boolean;
18
- }
19
- export interface RpcResult extends RpcMessage {
20
- type: 'result';
21
- id: string;
22
- /**
23
- * @deprecated
24
- */
25
- stack?: string;
26
- /**
27
- * @deprecated
28
- */
29
- message?: string;
30
- throw?: boolean;
31
- result?: any;
32
- }
33
- interface RpcRemoteProxyValue {
34
- __remote_proxy_id: string | undefined;
35
- __remote_proxy_finalizer_id: string | undefined;
36
- __remote_constructor_name: string;
37
- __remote_proxy_props: any;
38
- __remote_proxy_oneway_methods: string[];
39
- __serialized_value?: any;
40
- }
41
- interface Deferred {
42
- resolve: any;
43
- reject: any;
44
- }
45
- export interface PrimitiveProxyHandler<T extends object> extends ProxyHandler<T> {
46
- toPrimitive(): any;
47
- }
48
- interface SerialiedRpcResultError {
49
- name: string;
50
- stack: string;
51
- message: string;
52
- }
53
- export declare class RPCResultError extends Error {
54
- cause?: Error;
55
- constructor(peer: RpcPeer, message: string, cause?: Error, options?: {
56
- name: string;
57
- stack: string | undefined;
58
- });
59
- }
60
- declare class WeakRef<T> {
61
- target: T;
62
- constructor(target: any);
63
- deref(): T;
64
- }
65
- export interface RpcSerializer {
66
- serialize(value: any, serializationContext?: any): any;
67
- deserialize(serialized: any, serializationContext?: any): any;
68
- }
69
- interface LocalProxiedEntry {
70
- id: string;
71
- finalizerId: string | undefined;
72
- }
73
- interface ErrorType {
74
- name: string;
75
- message: string;
76
- stack?: string;
77
- }
78
- export declare class RpcPeer {
79
- selfName: string;
80
- peerName: string;
81
- send: (message: RpcMessage, reject?: (e: Error) => void, serializationContext?: any) => void;
82
- idCounter: number;
83
- params: {
84
- [name: string]: any;
85
- };
86
- pendingResults: {
87
- [id: string]: Deferred;
88
- };
89
- proxyCounter: number;
90
- localProxied: Map<any, LocalProxiedEntry>;
91
- localProxyMap: Map<string, any>;
92
- remoteWeakProxies: {
93
- [id: string]: WeakRef<any>;
94
- };
95
- finalizers: FinalizationRegistry<unknown>;
96
- nameDeserializerMap: Map<string, RpcSerializer>;
97
- onProxyTypeSerialization: Map<string, (value: any) => void>;
98
- onProxySerialization: (value: any, proxyId: string) => any;
99
- constructorSerializerMap: Map<any, string>;
100
- transportSafeArgumentTypes: Set<string>;
101
- killed: Promise<string>;
102
- killedDeferred: Deferred;
103
- tags: any;
104
- yieldedAsyncIterators: Set<AsyncGenerator<unknown, any, unknown>>;
105
- static readonly finalizerIdSymbol: unique symbol;
106
- static remotesCollected: number;
107
- static remotesCreated: number;
108
- static activeRpcPeer: RpcPeer;
109
- static isRpcProxy(value: any): boolean;
110
- static getDefaultTransportSafeArgumentTypes(): Set<string>;
111
- static handleFunctionInvocations(thiz: PrimitiveProxyHandler<any>, target: any, p: PropertyKey, receiver: any): any;
112
- static getIteratorNext(target: any): string;
113
- static prepareProxyProperties(value: any): any;
114
- static readonly RPC_RESULT_ERROR_NAME = "RPCResultError";
115
- static readonly PROPERTY_PROXY_ID = "__proxy_id";
116
- static readonly PROPERTY_PROXY_ONEWAY_METHODS = "__proxy_oneway_methods";
117
- static readonly PROPERTY_JSON_DISABLE_SERIALIZATION = "__json_disable_serialization";
118
- static readonly PROPERTY_PROXY_PROPERTIES = "__proxy_props";
119
- static readonly PROPERTY_JSON_COPY_SERIALIZE_CHILDREN = "__json_copy_serialize_children";
120
- static readonly PROBED_PROPERTIES: Set<any>;
121
- constructor(selfName: string, peerName: string, send: (message: RpcMessage, reject?: (e: Error) => void, serializationContext?: any) => void);
122
- static isTransportSafe(value: any): boolean;
123
- isTransportSafe(value: any): boolean;
124
- createPendingResult(cb: (id: string, reject: (e: Error) => void) => void): Promise<any>;
125
- kill(message?: string): void;
126
- addSerializer(ctr: any, name: string, serializer: RpcSerializer): void;
127
- finalize(entry: LocalProxiedEntry): void;
128
- getParam(param: string): Promise<any>;
129
- evalLocal<T>(script: string, filename?: string, coercedParams?: {
130
- [name: string]: any;
131
- }): T;
132
- /**
133
- * @deprecated
134
- * @param result
135
- * @param e
136
- */
137
- createErrorResult(result: RpcResult, e: ErrorType): void;
138
- deserialize(value: any, deserializationContext: any): any;
139
- deserializeError(e: SerialiedRpcResultError): RPCResultError;
140
- serializeError(e: ErrorType): RpcRemoteProxyValue;
141
- serialize(value: any, serializationContext: any): any;
142
- newProxy(proxyId: string, proxyConstructorName: string, proxyProps: any, proxyOneWayMethods: string[]): any;
143
- handleMessage(message: RpcMessage, deserializationContext?: any): void;
144
- private handleMessageInternal;
145
- }
146
- export declare function getEvalSource(): string;
147
- export {};