@scrypted/server 0.58.0 → 0.61.0
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.
- package/dist/cert.js +1 -1
- package/dist/cert.js.map +1 -1
- package/dist/event-registry.js.map +1 -1
- package/dist/http-interfaces.js.map +1 -1
- package/dist/infer-defaults.js.map +1 -1
- package/dist/level.js.map +1 -1
- package/dist/listen-zero.d.ts +1 -1
- package/dist/listen-zero.js +2 -2
- package/dist/listen-zero.js.map +1 -1
- package/dist/logger.js.map +1 -1
- package/dist/media-helpers.js +1 -0
- package/dist/media-helpers.js.map +1 -1
- package/dist/mixin/mixin-cycle.js.map +1 -1
- package/dist/plugin/acl.js.map +1 -1
- package/dist/plugin/descriptor.js.map +1 -1
- package/dist/plugin/media.js +2 -2
- package/dist/plugin/media.js.map +1 -1
- package/dist/plugin/mediaobject.js.map +1 -1
- package/dist/plugin/plugin-api.js.map +1 -1
- package/dist/plugin/plugin-console.js.map +1 -1
- package/dist/plugin/plugin-device.js.map +1 -1
- package/dist/plugin/plugin-host-api.js.map +1 -1
- package/dist/plugin/plugin-host.js.map +1 -1
- package/dist/plugin/plugin-http.js.map +1 -1
- package/dist/plugin/plugin-lazy-remote.js.map +1 -1
- package/dist/plugin/plugin-npm-dependencies.js.map +1 -1
- package/dist/plugin/plugin-remote-stats.js.map +1 -1
- package/dist/plugin/plugin-remote-websocket.js.map +1 -1
- package/dist/plugin/plugin-remote-worker.js.map +1 -1
- package/dist/plugin/plugin-remote.js.map +1 -1
- package/dist/plugin/plugin-repl.js.map +1 -1
- package/dist/plugin/plugin-state-check.js.map +1 -1
- package/dist/plugin/plugin-volume.js.map +1 -1
- package/dist/plugin/runtime/node-fork-worker.js.map +1 -1
- package/dist/plugin/runtime/node-thread-worker.js.map +1 -1
- package/dist/plugin/runtime/python-worker.js.map +1 -1
- package/dist/plugin/system.js.map +1 -1
- package/dist/rpc-serializer.js +36 -21
- package/dist/rpc-serializer.js.map +1 -1
- package/dist/rpc.js.map +1 -1
- package/dist/runtime.js.map +1 -1
- package/dist/scrypted-main-exports.js.map +1 -1
- package/dist/scrypted-plugin-main.js.map +1 -1
- package/dist/scrypted-server-main.js.map +1 -1
- package/dist/server-settings.js.map +1 -1
- package/dist/services/addresses.js.map +1 -1
- package/dist/services/alerts.js.map +1 -1
- package/dist/services/info.js.map +1 -1
- package/dist/services/plugin.js.map +1 -1
- package/dist/services/service-control.d.ts +1 -5
- package/dist/services/service-control.js +1 -2
- package/dist/services/service-control.js.map +1 -1
- package/dist/services/users.js.map +1 -1
- package/dist/state.js.map +1 -1
- package/dist/threading.js.map +1 -1
- package/dist/usertoken.js.map +1 -1
- package/package.json +24 -23
- package/src/listen-zero.ts +2 -2
- package/src/media-helpers.ts +1 -0
- package/src/plugin/media.ts +2 -2
- package/src/rpc-serializer.ts +38 -24
- package/src/services/service-control.ts +1 -2
package/src/plugin/media.ts
CHANGED
@@ -363,7 +363,7 @@ export abstract class MediaManagerBase implements MediaManager {
|
|
363
363
|
node[candidateId] = inputWeight + outputWeight;
|
364
364
|
}
|
365
365
|
catch (e) {
|
366
|
-
console.warn(candidate.name, 'skipping converter due to error', e)
|
366
|
+
// console.warn(candidate.name, 'skipping converter due to error', e)
|
367
367
|
}
|
368
368
|
}
|
369
369
|
|
@@ -378,7 +378,7 @@ export abstract class MediaManagerBase implements MediaManager {
|
|
378
378
|
}
|
379
379
|
}
|
380
380
|
catch (e) {
|
381
|
-
console.warn('skipping converter due to error', e)
|
381
|
+
// console.warn('skipping converter due to error', e)
|
382
382
|
}
|
383
383
|
}
|
384
384
|
|
package/src/rpc-serializer.ts
CHANGED
@@ -112,38 +112,52 @@ export function createRpcDuplexSerializer(writable: {
|
|
112
112
|
|
113
113
|
let header: Buffer;
|
114
114
|
let pending: Buffer;
|
115
|
-
|
116
|
-
|
117
|
-
if (!pending || pending.length < length)
|
118
|
-
return;
|
119
|
-
|
120
|
-
const ret = pending.slice(0, length);
|
121
|
-
pending = pending.slice(length);
|
122
|
-
if (!pending.length)
|
123
|
-
pending = undefined;
|
124
|
-
return ret;
|
125
|
-
}
|
115
|
+
let offset: number;
|
116
|
+
let type: number;
|
126
117
|
|
127
118
|
const onData = (data: Buffer) => {
|
128
|
-
|
129
|
-
pending
|
130
|
-
else
|
131
|
-
pending = Buffer.concat([pending, data]);
|
132
|
-
|
133
|
-
while (true) {
|
134
|
-
if (!header) {
|
135
|
-
header = readPending(5);
|
119
|
+
while (data.length) {
|
120
|
+
if (!pending) {
|
136
121
|
if (!header)
|
122
|
+
header = data;
|
123
|
+
else
|
124
|
+
header = Buffer.concat([header, data]);
|
125
|
+
if (header.length < 5)
|
137
126
|
return;
|
127
|
+
|
128
|
+
// slice is used below because in web environment,
|
129
|
+
// babel seems to return a Uint8Arrray when subarray is called.
|
130
|
+
data = header.slice(5);
|
131
|
+
// length includes type field.
|
132
|
+
const length = header.readUInt32BE(0) - 1;
|
133
|
+
type = header.readUInt8(4);
|
134
|
+
if (data.length >= length && type === 0) {
|
135
|
+
// no need to alloc a buffer for this, since it can be immediately parsed
|
136
|
+
// as json.
|
137
|
+
pending = data.length === length ? data : data.slice(0, length);
|
138
|
+
offset = length;
|
139
|
+
data = data.slice(length);
|
140
|
+
}
|
141
|
+
else {
|
142
|
+
pending = Buffer.alloc(length);
|
143
|
+
offset = 0;
|
144
|
+
}
|
145
|
+
header = undefined;
|
138
146
|
}
|
139
147
|
|
140
|
-
const
|
141
|
-
|
142
|
-
|
143
|
-
|
148
|
+
const need = pending.length - offset;
|
149
|
+
if (need) {
|
150
|
+
const sub = data.slice(0, need);
|
151
|
+
data = data.slice(need);
|
152
|
+
pending.set(sub, offset);
|
153
|
+
offset += sub.length;
|
154
|
+
}
|
155
|
+
|
156
|
+
if (offset !== pending.length)
|
144
157
|
return;
|
145
158
|
|
146
|
-
|
159
|
+
const payload = pending;
|
160
|
+
pending = undefined;
|
147
161
|
|
148
162
|
if (type === 0) {
|
149
163
|
try {
|
@@ -23,12 +23,11 @@ export class ServiceControl {
|
|
23
23
|
const webhookUpdate = process.env.SCRYPTED_WEBHOOK_UPDATE;
|
24
24
|
if (webhookUpdate) {
|
25
25
|
const webhookUpdateAuthorization = process.env.SCRYPTED_WEBHOOK_UPDATE_AUTHORIZATION;
|
26
|
-
|
26
|
+
await fetchJSON(webhookUpdate, {
|
27
27
|
headers: {
|
28
28
|
Authorization: webhookUpdateAuthorization,
|
29
29
|
}
|
30
30
|
});
|
31
|
-
return json;
|
32
31
|
}
|
33
32
|
else {
|
34
33
|
fs.writeFileSync('.update', '');
|