@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.
- package/package.json +1 -1
- package/dist/asynciterable-utils.d.ts +0 -2
- package/dist/asynciterable-utils.js +0 -24
- package/dist/asynciterable-utils.js.map +0 -1
- package/dist/cert.d.ts +0 -6
- package/dist/cert.js +0 -75
- package/dist/cert.js.map +0 -1
- package/dist/collection.d.ts +0 -1
- package/dist/collection.js +0 -16
- package/dist/collection.js.map +0 -1
- package/dist/db-types.d.ts +0 -38
- package/dist/db-types.js +0 -45
- package/dist/db-types.js.map +0 -1
- package/dist/event-registry.d.ts +0 -19
- package/dist/event-registry.js +0 -92
- package/dist/event-registry.js.map +0 -1
- package/dist/http-interfaces.d.ts +0 -3
- package/dist/http-interfaces.js +0 -73
- package/dist/http-interfaces.js.map +0 -1
- package/dist/infer-defaults.d.ts +0 -11
- package/dist/infer-defaults.js +0 -119
- package/dist/infer-defaults.js.map +0 -1
- package/dist/io.d.ts +0 -22
- package/dist/io.js +0 -3
- package/dist/io.js.map +0 -1
- package/dist/level.d.ts +0 -110
- package/dist/level.js +0 -135
- package/dist/level.js.map +0 -1
- package/dist/listen-zero.d.ts +0 -13
- package/dist/listen-zero.js +0 -48
- package/dist/listen-zero.js.map +0 -1
- package/dist/logger.d.ts +0 -29
- package/dist/logger.js +0 -78
- package/dist/logger.js.map +0 -1
- package/dist/media-helpers.d.ts +0 -5
- package/dist/media-helpers.js +0 -89
- package/dist/media-helpers.js.map +0 -1
- package/dist/mixin/mixin-cycle.d.ts +0 -3
- package/dist/mixin/mixin-cycle.js +0 -32
- package/dist/mixin/mixin-cycle.js.map +0 -1
- package/dist/plugin/acl.d.ts +0 -16
- package/dist/plugin/acl.js +0 -83
- package/dist/plugin/acl.js.map +0 -1
- package/dist/plugin/descriptor.d.ts +0 -22
- package/dist/plugin/descriptor.js +0 -35
- package/dist/plugin/descriptor.js.map +0 -1
- package/dist/plugin/media.d.ts +0 -71
- package/dist/plugin/media.js +0 -420
- package/dist/plugin/media.js.map +0 -1
- package/dist/plugin/mediaobject.d.ts +0 -10
- package/dist/plugin/mediaobject.js +0 -26
- package/dist/plugin/mediaobject.js.map +0 -1
- package/dist/plugin/plugin-api.d.ts +0 -106
- package/dist/plugin/plugin-api.js +0 -120
- package/dist/plugin/plugin-api.js.map +0 -1
- package/dist/plugin/plugin-console.d.ts +0 -28
- package/dist/plugin/plugin-console.js +0 -291
- package/dist/plugin/plugin-console.js.map +0 -1
- package/dist/plugin/plugin-debug.d.ts +0 -4
- package/dist/plugin/plugin-debug.js +0 -3
- package/dist/plugin/plugin-debug.js.map +0 -1
- package/dist/plugin/plugin-device.d.ts +0 -54
- package/dist/plugin/plugin-device.js +0 -413
- package/dist/plugin/plugin-device.js.map +0 -1
- package/dist/plugin/plugin-error.d.ts +0 -2
- package/dist/plugin/plugin-error.js +0 -7
- package/dist/plugin/plugin-error.js.map +0 -1
- package/dist/plugin/plugin-host-api.d.ts +0 -43
- package/dist/plugin/plugin-host-api.js +0 -177
- package/dist/plugin/plugin-host-api.js.map +0 -1
- package/dist/plugin/plugin-host.d.ts +0 -45
- package/dist/plugin/plugin-host.js +0 -398
- package/dist/plugin/plugin-host.js.map +0 -1
- package/dist/plugin/plugin-http.d.ts +0 -18
- package/dist/plugin/plugin-http.js +0 -120
- package/dist/plugin/plugin-http.js.map +0 -1
- package/dist/plugin/plugin-lazy-remote.d.ts +0 -31
- package/dist/plugin/plugin-lazy-remote.js +0 -75
- package/dist/plugin/plugin-lazy-remote.js.map +0 -1
- package/dist/plugin/plugin-npm-dependencies.d.ts +0 -8
- package/dist/plugin/plugin-npm-dependencies.js +0 -103
- package/dist/plugin/plugin-npm-dependencies.js.map +0 -1
- package/dist/plugin/plugin-remote-stats.d.ts +0 -8
- package/dist/plugin/plugin-remote-stats.js +0 -30
- package/dist/plugin/plugin-remote-stats.js.map +0 -1
- package/dist/plugin/plugin-remote-websocket.d.ts +0 -29
- package/dist/plugin/plugin-remote-websocket.js +0 -152
- package/dist/plugin/plugin-remote-websocket.js.map +0 -1
- package/dist/plugin/plugin-remote-worker.d.ts +0 -5
- package/dist/plugin/plugin-remote-worker.js +0 -348
- package/dist/plugin/plugin-remote-worker.js.map +0 -1
- package/dist/plugin/plugin-remote.d.ts +0 -75
- package/dist/plugin/plugin-remote.js +0 -598
- package/dist/plugin/plugin-remote.js.map +0 -1
- package/dist/plugin/plugin-repl.d.ts +0 -2
- package/dist/plugin/plugin-repl.js +0 -74
- package/dist/plugin/plugin-repl.js.map +0 -1
- package/dist/plugin/plugin-state-check.d.ts +0 -1
- package/dist/plugin/plugin-state-check.js +0 -27
- package/dist/plugin/plugin-state-check.js.map +0 -1
- package/dist/plugin/plugin-volume.d.ts +0 -3
- package/dist/plugin/plugin-volume.js +0 -31
- package/dist/plugin/plugin-volume.js.map +0 -1
- package/dist/plugin/runtime/child-process-worker.d.ts +0 -20
- package/dist/plugin/runtime/child-process-worker.js +0 -42
- package/dist/plugin/runtime/child-process-worker.js.map +0 -1
- package/dist/plugin/runtime/node-fork-worker.d.ts +0 -9
- package/dist/plugin/runtime/node-fork-worker.js +0 -67
- package/dist/plugin/runtime/node-fork-worker.js.map +0 -1
- package/dist/plugin/runtime/node-thread-worker.d.ts +0 -20
- package/dist/plugin/runtime/node-thread-worker.js +0 -73
- package/dist/plugin/runtime/node-thread-worker.js.map +0 -1
- package/dist/plugin/runtime/python-worker.d.ts +0 -10
- package/dist/plugin/runtime/python-worker.js +0 -91
- package/dist/plugin/runtime/python-worker.js.map +0 -1
- package/dist/plugin/runtime/runtime-worker.d.ts +0 -26
- package/dist/plugin/runtime/runtime-worker.js +0 -3
- package/dist/plugin/runtime/runtime-worker.js.map +0 -1
- package/dist/plugin/socket-serializer.d.ts +0 -5
- package/dist/plugin/socket-serializer.js +0 -17
- package/dist/plugin/socket-serializer.js.map +0 -1
- package/dist/plugin/system.d.ts +0 -39
- package/dist/plugin/system.js +0 -216
- package/dist/plugin/system.js.map +0 -1
- package/dist/rpc-buffer-serializer.d.ts +0 -11
- package/dist/rpc-buffer-serializer.js +0 -30
- package/dist/rpc-buffer-serializer.js.map +0 -1
- package/dist/rpc-serializer.d.ts +0 -24
- package/dist/rpc-serializer.js +0 -144
- package/dist/rpc-serializer.js.map +0 -1
- package/dist/rpc.d.ts +0 -147
- package/dist/rpc.js +0 -689
- package/dist/rpc.js.map +0 -1
- package/dist/runtime.d.ts +0 -103
- package/dist/runtime.js +0 -815
- package/dist/runtime.js.map +0 -1
- package/dist/scrypted-main-exports.d.ts +0 -6
- package/dist/scrypted-main-exports.js +0 -57
- package/dist/scrypted-main-exports.js.map +0 -1
- package/dist/scrypted-main.d.ts +0 -1
- package/dist/scrypted-main.js +0 -8
- package/dist/scrypted-main.js.map +0 -1
- package/dist/scrypted-plugin-main.d.ts +0 -2
- package/dist/scrypted-plugin-main.js +0 -43
- package/dist/scrypted-plugin-main.js.map +0 -1
- package/dist/scrypted-server-main.d.ts +0 -6
- package/dist/scrypted-server-main.js +0 -559
- package/dist/scrypted-server-main.js.map +0 -1
- package/dist/server-settings.d.ts +0 -5
- package/dist/server-settings.js +0 -91
- package/dist/server-settings.js.map +0 -1
- package/dist/services/addresses.d.ts +0 -7
- package/dist/services/addresses.js +0 -41
- package/dist/services/addresses.js.map +0 -1
- package/dist/services/alerts.d.ts +0 -9
- package/dist/services/alerts.js +0 -27
- package/dist/services/alerts.js.map +0 -1
- package/dist/services/cors.d.ts +0 -18
- package/dist/services/cors.js +0 -18
- package/dist/services/cors.js.map +0 -1
- package/dist/services/info.d.ts +0 -5
- package/dist/services/info.js +0 -18
- package/dist/services/info.js.map +0 -1
- package/dist/services/plugin.d.ts +0 -46
- package/dist/services/plugin.js +0 -172
- package/dist/services/plugin.js.map +0 -1
- package/dist/services/service-control.d.ts +0 -8
- package/dist/services/service-control.js +0 -39
- package/dist/services/service-control.js.map +0 -1
- package/dist/services/users.d.ts +0 -19
- package/dist/services/users.js +0 -75
- package/dist/services/users.js.map +0 -1
- package/dist/sleep.d.ts +0 -1
- package/dist/sleep.js +0 -8
- package/dist/sleep.js.map +0 -1
- package/dist/state.d.ts +0 -39
- package/dist/state.js +0 -247
- package/dist/state.js.map +0 -1
- package/dist/threading.d.ts +0 -3
- package/dist/threading.js +0 -93
- package/dist/threading.js.map +0 -1
- package/dist/usertoken.d.ts +0 -11
- package/dist/usertoken.js +0 -52
- package/dist/usertoken.js.map +0 -1
package/dist/plugin/system.js
DELETED
@@ -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":";;;AAAA,2CAAsS;AACtS,sDAAkD;AAClD,gCAAwD;AACxD,6DAA6D;AAC7D,6CAA8I;AAG9I,SAAS,cAAc,CAAC,EAAU,EAAE,aAAgC;IAChE,MAAM,OAAO,GAAG,IAAI,kBAAkB,CAAC,EAAE,EAAE,aAAa,CAAC,CAAC;IAC1D,OAAO,IAAI,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;AACvC,CAAC;AAED,MAAM,kBAAkB;IAGD;IAAmB;IAFtC,gBAAgB,CAAqC;IACrD,MAAM,CAA0B;IAChC,YAAmB,EAAU,EAAS,aAAgC;QAAnD,OAAE,GAAF,EAAE,CAAQ;QAAS,kBAAa,GAAb,aAAa,CAAmB;IACtE,CAAC;IAED,WAAW;QACP,OAAO,kBAAkB,IAAI,CAAC,EAAE,EAAE,CAAA;IACtC,CAAC;IAED,OAAO,CAAC,MAAW;QACf,MAAM,UAAU,GAAG,IAAI,GAAG,CAAS,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QACvF,MAAM,OAAO,GAAG,IAAA,gCAAmB,EAAC,IAAI,CAAC,aAAa,CAAC,WAAW,IAAI,oCAA4B,EAAE,UAAU,CAAC,CAAC;QAChH,MAAM,UAAU,GAAG,IAAA,mCAAsB,EAAC,IAAI,CAAC,aAAa,CAAC,WAAW,IAAI,oCAA4B,EAAE,UAAU,CAAC,CAAC;QACtH,OAAO,CAAC,GAAG,OAAO,EAAE,GAAG,UAAU,CAAC,CAAC;IACvC,CAAC;IAED,wBAAwB,CAAC,MAAW,EAAE,CAAkB;QACpD,MAAM,UAAU,GAAG,IAAI,GAAG,CAAS,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QACvF,MAAM,OAAO,GAAG,IAAA,gCAAmB,EAAC,IAAI,CAAC,aAAa,CAAC,WAAW,IAAI,oCAA4B,EAAE,UAAU,CAAC,CAAC;QAChH,MAAM,IAAI,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC;QAC1B,IAAI,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;YACxB,OAAO;gBACH,YAAY,EAAE,IAAI;aACrB,CAAC;SACL;QACD,MAAM,UAAU,GAAG,IAAA,mCAAsB,EAAC,IAAI,CAAC,aAAa,CAAC,WAAW,IAAI,oCAA4B,EAAE,UAAU,CAAC,CAAC;QACtH,IAAI,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;YAC3B,OAAO;gBACH,YAAY,EAAE,IAAI;gBAClB,KAAK,EAAE,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK;aACxD,CAAA;SACJ;IACL,CAAC;IAED,cAAc,CAAC,MAAW,EAAE,CAAkB;QAC1C,MAAM,IAAI,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC;QAC1B,IAAI,MAAM,CAAC,IAAI,CAAC,iCAAyB,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC;YACrD,OAAO,KAAK,CAAC;QAEjB,IAAI,CAAC,gBAAgB,KAAK,IAAI,GAAG,EAAE,CAAC;QACpC,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;QACxC,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,GAAG,CAAC,MAAW,EAAE,CAAkB,EAAE,QAAa,EAAE,QAAa;QAC7D,MAAM,IAAI,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC;QAC1B,IAAI,MAAM,CAAC,IAAI,CAAC,iCAAyB,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC;YACrD,OAAO,KAAK,CAAC;QAEjB,IAAI,CAAC,gBAAgB,KAAK,IAAI,GAAG,EAAE,CAAC;QACpC,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;QAEvC,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,GAAG,CAAC,MAAW,EAAE,CAAc,EAAE,QAAa;QAC1C,IAAI,CAAC,KAAK,IAAI;YACV,OAAO,IAAI,CAAC,EAAE,CAAC;QAEnB,IAAI,IAAI,CAAC,gBAAgB,EAAE,GAAG,CAAC,CAAC,CAAC;YAC7B,OAAO,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QAExC,MAAM,OAAO,GAAG,aAAO,CAAC,yBAAyB,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE,QAAQ,CAAC,CAAC;QAC7E,IAAI,OAAO;YACP,OAAO,OAAO,CAAC;QAEnB,MAAM,UAAU,GAAG,IAAI,GAAG,CAAS,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,UAAU,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC;QAC9F,MAAM,IAAI,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC;QAC1B,MAAM,eAAe,GAAG,IAAI,CAAC,aAAa,CAAC,kBAAkB,EAAE,CAAC,IAAI,CAAC,IAAI,+BAAkB,CAAC,IAAI,CAAC,CAAC;QAElG,yGAAyG;QACzG,sBAAsB;QACtB,IAAI,eAAe;YACf,OAAQ,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAS,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC;QAElE,IAAI,CAAC,IAAA,mCAAsB,EAAC,IAAI,CAAC,aAAa,CAAC,WAAW,IAAI,oCAA4B,EAAE,UAAU,EAAE,IAAI,CAAC;YACzG,OAAO;QAEX,IAAI,oCAA4B,CAAC,yBAAiB,CAAC,cAAc,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC;YACrF,OAAQ,IAAY,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAEvC,OAAO,IAAI,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;IACpC,CAAC;IAED,YAAY;QACR,IAAI,CAAC,IAAI,CAAC,MAAM;YACZ,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAChE,OAAO,IAAI,CAAC,MAAM,CAAC;IACvB,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,MAAW,EAAE,OAAY,EAAE,QAAc;QACjD,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC;QACxB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;QACzC,OAAQ,MAAc,CAAC,MAAM,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC;IAChD,CAAC;IAED,MAAM,CAAC,KAAoC,EAAE,QAAuB;QAChE,OAAO,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;IACrE,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,IAAY;QACtB,OAAO,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,iBAAiB,CAAC,IAAI,CAAC,EAAE,EAAE,iCAAyB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACnG,CAAC;IACD,KAAK,CAAC,OAAO,CAAC,IAAY;QACtB,OAAO,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,iBAAiB,CAAC,IAAI,CAAC,EAAE,EAAE,iCAAyB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACnG,CAAC;IACD,KAAK,CAAC,OAAO,CAAC,IAAwB;QAClC,OAAO,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,iBAAiB,CAAC,IAAI,CAAC,EAAE,EAAE,iCAAyB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACnG,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,MAAgB;QAC5B,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,CAAA,sBAAsB;QACvF,MAAM,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;IAC7C,CAAC;IAED,KAAK,CAAC,KAAK;QACP,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,OAAO,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC;IACpD,CAAC;CACJ;AAGD,MAAM,yBAAyB;IAC3B,OAAO,CAAiC;IACxC,YAAY,OAAuC;QAC/C,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IAC3B,CAAC;IACD,KAAK,CAAC,cAAc;QAChB,IAAI;YACA,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC;YACpC,IAAI,CAAC,OAAO,GAAG,SAAS,CAAC;YACzB,QAAQ,EAAE,cAAc,EAAE,CAAC;SAC9B;QACD,OAAO,CAAC,EAAE;YACN,OAAO,CAAC,KAAK,CAAC,gBAAgB,EAAE,CAAC,CAAC,CAAC;SACtC;IACL,CAAC;CACJ;AAED,SAAS,kBAAkB,CAAI,KAAQ;IACnC,MAAM,CAAC,GAAQ,KAAK,CAAC;IACrB,MAAM,OAAO,GAAa,CAAC,CAAC,aAAO,CAAC,6BAA6B,CAAC,IAAI,EAAE,CAAC;IACzE,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC;QACvB,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACvB,CAAC,CAAC,aAAO,CAAC,6BAA6B,CAAC,GAAG,OAAO,CAAC;IACnD,OAAO,KAAK,CAAC;AACjB,CAAC;AAED,MAAa,iBAAiB;IAC1B,GAAG,CAAY;IACf,KAAK,CAA8D;IACnE,aAAa,GAAqC,EAAE,CAAC;IACrD,GAAG,CAAS;IACZ,MAAM,GAAG,IAAI,8BAAa,EAAE,CAAC;IAC7B,YAAY,CAAS;IACrB,WAAW,CAA+D;IAC1E,kBAAkB,CAA2C;IAE7D,cAAc,CAAC,EAAU;QACrB,OAAO,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IAC1B,CAAC;IACD,cAAc;QACV,OAAO,IAAI,CAAC,KAAK,CAAC;IACtB,CAAC;IAED,aAAa,CAAC,YAAoB,EAAE,QAA2B;QAC3D,IAAI,EAAU,CAAC;QACf,IAAI,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,EAAE;YAC1B,wFAAwF;YACxF,IAAI,QAAQ,IAAI,IAAI;gBAChB,OAAO;YACX,EAAE,GAAG,YAAY,CAAC;SACrB;aACI;YACD,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;gBACzC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;gBAChC,IAAI,CAAC,KAAK;oBACN,SAAS;gBACb,IAAI,KAAK,CAAC,iCAAyB,CAAC,QAAQ,CAAC,EAAE,KAAK,KAAK,YAAY,EAAE;oBACnE,wCAAwC;oBACxC,IAAI,KAAK,CAAC,iCAAyB,CAAC,QAAQ,CAAC,EAAE,KAAK,IAAI,QAAQ,EAAE;wBAC9D,EAAE,GAAG,KAAK,CAAC;wBACX,MAAM;qBACT;iBACJ;aACJ;SACJ;QACD,IAAI,CAAC,EAAE;YACH,OAAO;QACX,IAAI,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;QACnC,IAAI,CAAC,KAAK;YACN,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC,GAAG,cAAc,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;QAC9D,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,eAAe,CAAC,IAAY;QACxB,KAAK,MAAM,EAAE,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;YACtC,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YACzB,IAAK,CAAC,CAAC,UAAU,EAAE,KAAkB,EAAE,QAAQ,CAAC,yBAAiB,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,KAAK,KAAK,IAAI;gBAC3G,OAAO,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;YAClC,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,KAAK,IAAI;gBACrB,OAAO,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;SACrC;IACL,CAAC;IACD,MAAM,CAAC,QAAuB;QAC1B,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC,EAAE,EAAE,YAAY,EAAE,SAAS,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC,EAAE,YAAY,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC;IAC9I,CAAC;IACD,YAAY,CAAC,EAAU,EAAE,OAAsC,EAAE,QAAuB;QACpF,IAAI,EAAE,KAAK,EAAE,GAAG,CAAC,OAAO,IAAI,EAAE,CAAyB,CAAC;QAExD,6DAA6D;QAC7D,IAAI,KAAK;YACL,OAAO,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,EAAE,EAAE,OAAO,EAAE,CAAC,YAAY,EAAE,SAAS,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC,EAAE,YAAY,EAAE,SAAS,CAAC,CAAC,CAAC;QAEzI,OAAO,IAAI,yBAAyB,CAAC,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,EAAE,OAAO,EAAE,kBAAkB,CAAC,CAAC,YAAY,EAAE,SAAS,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC,EAAE,YAAY,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;IACzL,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,EAAU;QACzB,OAAO,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;IACrC,CAAC;IAED,YAAY,CAAC,EAAU;QACnB,OAAO,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;IACrC,CAAC;IAED,+BAA+B,CAAC,YAAoB,EAAE,WAAyE;QAC3H,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;QACjC,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAC/B,IAAI,CAAC,kBAAkB,GAAG,IAAA,kCAAqB,EAAC,WAAW,CAAC,CAAC;QAC7D,OAAO,IAAI,CAAC,GAAG,CAAC,+BAA+B,CAAC,YAAY,EAAE,WAAW,CAAC,CAAC;IAC/E,CAAC;CACJ;AAnFD,8CAmFC"}
|
@@ -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"}
|
package/dist/rpc-serializer.d.ts
DELETED
@@ -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
|
-
};
|
package/dist/rpc-serializer.js
DELETED
@@ -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 {};
|