@camera.ui/browser 0.0.1 → 0.0.3
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/package.json +9 -1
- package/dist/client/node/src/api.js +0 -27
- package/dist/client/node/src/api.js.map +0 -1
- package/dist/client/node/src/client.js +0 -106
- package/dist/client/node/src/client.js.map +0 -1
- package/dist/client/node/src/index.js +0 -19
- package/dist/client/node/src/index.js.map +0 -1
- package/dist/client/node/src/proxy/cameraDevice/cameraDevice.browser.js +0 -176
- package/dist/client/node/src/proxy/cameraDevice/cameraDevice.browser.js.map +0 -1
- package/dist/client/node/src/proxy/cameraDevice/cameraDevice.mock.js +0 -3
- package/dist/client/node/src/proxy/cameraDevice/cameraDevice.mock.js.map +0 -1
- package/dist/client/node/src/proxy/cameraDevice/cameraDevice.node.js +0 -51
- package/dist/client/node/src/proxy/cameraDevice/cameraDevice.node.js.map +0 -1
- package/dist/client/node/src/proxy/cameraDevice/index.js +0 -11
- package/dist/client/node/src/proxy/cameraDevice/index.js.map +0 -1
- package/dist/client/node/src/proxy/deviceManager.js +0 -67
- package/dist/client/node/src/proxy/deviceManager.js.map +0 -1
- package/dist/client/node/src/proxy/index.js +0 -21
- package/dist/client/node/src/proxy/index.js.map +0 -1
- package/dist/client/node/src/proxy/pluginsManager.js +0 -25
- package/dist/client/node/src/proxy/pluginsManager.js.map +0 -1
- package/dist/client/node/src/proxy/systemManager.js +0 -25
- package/dist/client/node/src/proxy/systemManager.js.map +0 -1
- package/dist/client/node/src/socket.js +0 -45
- package/dist/client/node/src/socket.js.map +0 -1
- package/dist/client/node/src/types.js +0 -3
- package/dist/client/node/src/types.js.map +0 -1
- package/dist/package.json +0 -149
- package/dist/shared/common/utils.js +0 -66
- package/dist/shared/common/utils.js.map +0 -1
- package/dist/shared/types/index.js +0 -23
- package/dist/shared/types/index.js.map +0 -1
- package/dist/src/api/database/index.js +0 -203
- package/dist/src/api/database/index.js.map +0 -1
- package/dist/src/api/database/types.js +0 -3
- package/dist/src/api/database/types.js.map +0 -1
- package/dist/src/api/go2rtc/api/application.js +0 -32
- package/dist/src/api/go2rtc/api/application.js.map +0 -1
- package/dist/src/api/go2rtc/api/index.js +0 -33
- package/dist/src/api/go2rtc/api/index.js.map +0 -1
- package/dist/src/api/go2rtc/api/snapshot.js +0 -22
- package/dist/src/api/go2rtc/api/snapshot.js.map +0 -1
- package/dist/src/api/go2rtc/api/streams.js +0 -32
- package/dist/src/api/go2rtc/api/streams.js.map +0 -1
- package/dist/src/api/go2rtc/index.js +0 -13
- package/dist/src/api/go2rtc/index.js.map +0 -1
- package/dist/src/api/go2rtc/types.js +0 -3
- package/dist/src/api/go2rtc/types.js.map +0 -1
- package/dist/src/api/middlewares/socketAuth.middleware.js +0 -90
- package/dist/src/api/middlewares/socketAuth.middleware.js.map +0 -1
- package/dist/src/api/schemas/backup.schema.js +0 -94
- package/dist/src/api/schemas/backup.schema.js.map +0 -1
- package/dist/src/api/schemas/cameras.schema.js +0 -124
- package/dist/src/api/schemas/cameras.schema.js.map +0 -1
- package/dist/src/api/schemas/config.schema.js +0 -94
- package/dist/src/api/schemas/config.schema.js.map +0 -1
- package/dist/src/api/schemas/go2rtc.schema.js +0 -204
- package/dist/src/api/schemas/go2rtc.schema.js.map +0 -1
- package/dist/src/api/schemas/users.schema.js +0 -131
- package/dist/src/api/schemas/users.schema.js.map +0 -1
- package/dist/src/api/services/auth.service.js +0 -104
- package/dist/src/api/services/auth.service.js.map +0 -1
- package/dist/src/api/services/cameras.service.js +0 -535
- package/dist/src/api/services/cameras.service.js.map +0 -1
- package/dist/src/api/services/plugins.service.js +0 -115
- package/dist/src/api/services/plugins.service.js.map +0 -1
- package/dist/src/api/services/users.service.js +0 -54
- package/dist/src/api/services/users.service.js.map +0 -1
- package/dist/src/api/types/index.js +0 -12
- package/dist/src/api/types/index.js.map +0 -1
- package/dist/src/api/utils/cert.js +0 -437
- package/dist/src/api/utils/cert.js.map +0 -1
- package/dist/src/api/ws/index.js +0 -89
- package/dist/src/api/ws/index.js.map +0 -1
- package/dist/src/api/ws/nsp/logs.js +0 -121
- package/dist/src/api/ws/nsp/logs.js.map +0 -1
- package/dist/src/api/ws/nsp/main.js +0 -49
- package/dist/src/api/ws/nsp/main.js.map +0 -1
- package/dist/src/api/ws/nsp/metrics.js +0 -225
- package/dist/src/api/ws/nsp/metrics.js.map +0 -1
- package/dist/src/api/ws/nsp/notifications.js +0 -39
- package/dist/src/api/ws/nsp/notifications.js.map +0 -1
- package/dist/src/api/ws/nsp/plugins.js +0 -33
- package/dist/src/api/ws/nsp/plugins.js.map +0 -1
- package/dist/src/api/ws/nsp/status.js +0 -41
- package/dist/src/api/ws/nsp/status.js.map +0 -1
- package/dist/src/api/ws/nsp/streams.js +0 -140
- package/dist/src/api/ws/nsp/streams.js.map +0 -1
- package/dist/src/api/ws/types.js +0 -3
- package/dist/src/api/ws/types.js.map +0 -1
- package/dist/src/api.js +0 -66
- package/dist/src/api.js.map +0 -1
- package/dist/src/camera/index.js +0 -210
- package/dist/src/camera/index.js.map +0 -1
- package/dist/src/camera/streaming/peer-connection.js +0 -157
- package/dist/src/camera/streaming/peer-connection.js.map +0 -1
- package/dist/src/camera/streaming/streaming-session.js +0 -172
- package/dist/src/camera/streaming/streaming-session.js.map +0 -1
- package/dist/src/camera/streaming/webrtc-connection.js +0 -156
- package/dist/src/camera/streaming/webrtc-connection.js.map +0 -1
- package/dist/src/camera/subscribed.js +0 -14
- package/dist/src/camera/subscribed.js.map +0 -1
- package/dist/src/camera/types.js +0 -3
- package/dist/src/camera/types.js.map +0 -1
- package/dist/src/go2rtc/index.js +0 -220
- package/dist/src/go2rtc/index.js.map +0 -1
- package/dist/src/go2rtc/types.js +0 -76
- package/dist/src/go2rtc/types.js.map +0 -1
- package/dist/src/plugins/base.js +0 -26
- package/dist/src/plugins/base.js.map +0 -1
- package/dist/src/plugins/cameraStorage.js +0 -290
- package/dist/src/plugins/cameraStorage.js.map +0 -1
- package/dist/src/plugins/child.js +0 -140
- package/dist/src/plugins/child.js.map +0 -1
- package/dist/src/plugins/config.js +0 -234
- package/dist/src/plugins/config.js.map +0 -1
- package/dist/src/plugins/index.js +0 -328
- package/dist/src/plugins/index.js.map +0 -1
- package/dist/src/plugins/plugin.js +0 -215
- package/dist/src/plugins/plugin.js.map +0 -1
- package/dist/src/plugins/schema.js +0 -717
- package/dist/src/plugins/schema.js.map +0 -1
- package/dist/src/plugins/storage.js +0 -45
- package/dist/src/plugins/storage.js.map +0 -1
- package/dist/src/plugins/types.js +0 -21
- package/dist/src/plugins/types.js.map +0 -1
- package/dist/src/plugins/worker.js +0 -236
- package/dist/src/plugins/worker.js.map +0 -1
- package/dist/src/proxy/client/cameraDevice.js +0 -171
- package/dist/src/proxy/client/cameraDevice.js.map +0 -1
- package/dist/src/proxy/client/deviceManager.js +0 -239
- package/dist/src/proxy/client/deviceManager.js.map +0 -1
- package/dist/src/proxy/client/index.js +0 -21
- package/dist/src/proxy/client/index.js.map +0 -1
- package/dist/src/proxy/client/pluginsManager.js +0 -237
- package/dist/src/proxy/client/pluginsManager.js.map +0 -1
- package/dist/src/proxy/client/systemManager.js +0 -163
- package/dist/src/proxy/client/systemManager.js.map +0 -1
- package/dist/src/proxy/index.js +0 -98
- package/dist/src/proxy/index.js.map +0 -1
- package/dist/src/proxy/proxies/camera.js +0 -72
- package/dist/src/proxy/proxies/camera.js.map +0 -1
- package/dist/src/proxy/proxies/plugin.js +0 -110
- package/dist/src/proxy/proxies/plugin.js.map +0 -1
- package/dist/src/proxy/proxies/server.js +0 -92
- package/dist/src/proxy/proxies/server.js.map +0 -1
- package/dist/src/proxy/types.js +0 -3
- package/dist/src/proxy/types.js.map +0 -1
- package/dist/src/proxy/utils/generateKeys.js +0 -13
- package/dist/src/proxy/utils/generateKeys.js.map +0 -1
- package/dist/src/proxy/ws/index.js +0 -75
- package/dist/src/proxy/ws/index.js.map +0 -1
- package/dist/src/services/config/index.js +0 -319
- package/dist/src/services/config/index.js.map +0 -1
- package/dist/src/services/config/types.js +0 -13
- package/dist/src/services/config/types.js.map +0 -1
- package/dist/src/services/logger/index.js +0 -181
- package/dist/src/services/logger/index.js.map +0 -1
|
@@ -1,163 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.SystemManager = void 0;
|
|
4
|
-
const zeromq_1 = require("zeromq");
|
|
5
|
-
const tsyringe_1 = require("tsyringe");
|
|
6
|
-
const uuid_1 = require("uuid");
|
|
7
|
-
const generateKeys_1 = require("../utils/generateKeys");
|
|
8
|
-
class SystemManager {
|
|
9
|
-
pluginId;
|
|
10
|
-
pluginName;
|
|
11
|
-
clientTargetId;
|
|
12
|
-
subTargetId;
|
|
13
|
-
api;
|
|
14
|
-
logger;
|
|
15
|
-
client;
|
|
16
|
-
subscriber;
|
|
17
|
-
MAX_LISTENERS_PER_EVENT = 10;
|
|
18
|
-
timeout = 30000;
|
|
19
|
-
requestIdCounter = 0;
|
|
20
|
-
pendingRequests = new Map();
|
|
21
|
-
requestQueue = [];
|
|
22
|
-
isProcessing = false;
|
|
23
|
-
eventListeners = {};
|
|
24
|
-
constructor(logger, pluginId, pluginName, reqServerAddress, pubServerAddress, serverPublicKey) {
|
|
25
|
-
const uuid = (0, uuid_1.v4)();
|
|
26
|
-
this.pluginId = pluginId;
|
|
27
|
-
this.pluginName = pluginName;
|
|
28
|
-
this.clientTargetId = `sm-client-${uuid}`;
|
|
29
|
-
this.subTargetId = `sm-sub-${pluginId}`;
|
|
30
|
-
this.api = tsyringe_1.container.resolve('api');
|
|
31
|
-
this.logger = logger;
|
|
32
|
-
const { publicKey, secretKey } = (0, generateKeys_1.generateKeyPair)();
|
|
33
|
-
this.client = new zeromq_1.Request({ routingId: this.clientTargetId });
|
|
34
|
-
this.client.curveServerKey = serverPublicKey;
|
|
35
|
-
this.client.curvePublicKey = publicKey;
|
|
36
|
-
this.client.curveSecretKey = secretKey;
|
|
37
|
-
this.client.connect(reqServerAddress);
|
|
38
|
-
this.subscriber = new zeromq_1.Subscriber();
|
|
39
|
-
this.subscriber.curveServerKey = serverPublicKey;
|
|
40
|
-
this.subscriber.curvePublicKey = publicKey;
|
|
41
|
-
this.subscriber.curveSecretKey = secretKey;
|
|
42
|
-
this.subscriber.connect(pubServerAddress);
|
|
43
|
-
this.subscriber.subscribe(this.subTargetId);
|
|
44
|
-
this.api.once('shutdown', () => {
|
|
45
|
-
try {
|
|
46
|
-
this.client.disconnect(reqServerAddress);
|
|
47
|
-
this.subscriber.disconnect(pubServerAddress);
|
|
48
|
-
}
|
|
49
|
-
catch {
|
|
50
|
-
// ignore
|
|
51
|
-
}
|
|
52
|
-
});
|
|
53
|
-
this.onReply();
|
|
54
|
-
this.listenToSubscriberEvents();
|
|
55
|
-
}
|
|
56
|
-
listen(eventType, callback) {
|
|
57
|
-
if (this.eventListeners[eventType].length >= this.MAX_LISTENERS_PER_EVENT) {
|
|
58
|
-
this.eventListeners[eventType].shift();
|
|
59
|
-
}
|
|
60
|
-
this.eventListeners[eventType].push(callback);
|
|
61
|
-
}
|
|
62
|
-
removeListener(eventType, callbackToRemove) {
|
|
63
|
-
// const listeners = this.eventListeners[eventType];
|
|
64
|
-
// if (listeners) {
|
|
65
|
-
// this.eventListeners[eventType] = listeners.filter((callback) => callback !== callbackToRemove);
|
|
66
|
-
// }
|
|
67
|
-
}
|
|
68
|
-
removeAllListeners(eventType) {
|
|
69
|
-
// if (eventType) {
|
|
70
|
-
// const listeners = this.eventListeners[eventType];
|
|
71
|
-
// if (listeners) {
|
|
72
|
-
// this.eventListeners[eventType] = [];
|
|
73
|
-
// }
|
|
74
|
-
// } else {
|
|
75
|
-
// for (const key of Object.keys(this.eventListeners) as E[]) {
|
|
76
|
-
// this.eventListeners[key] = [];
|
|
77
|
-
// }
|
|
78
|
-
// }
|
|
79
|
-
}
|
|
80
|
-
async listenToSubscriberEvents() {
|
|
81
|
-
// for await (const [topicBuffer, eventBuffer] of this.subscriber) {
|
|
82
|
-
// const topic = topicBuffer.toString();
|
|
83
|
-
// const event: SystemManagerListenerMessagePayload = JSON.parse(eventBuffer.toString());
|
|
84
|
-
// if (topic === this.subTargetId || topic === 'sm-all') {
|
|
85
|
-
// this.eventListeners[event.type]?.forEach((callback) => callback(event.data));
|
|
86
|
-
// }
|
|
87
|
-
// }
|
|
88
|
-
}
|
|
89
|
-
onRequest(fn, data = {}) {
|
|
90
|
-
const requestId = (++this.requestIdCounter).toString();
|
|
91
|
-
const payload = {
|
|
92
|
-
targetId: this.clientTargetId,
|
|
93
|
-
targetName: this.pluginName,
|
|
94
|
-
pluginId: this.pluginId,
|
|
95
|
-
fn,
|
|
96
|
-
data,
|
|
97
|
-
timestamp: Date.now(),
|
|
98
|
-
requestId,
|
|
99
|
-
};
|
|
100
|
-
return this.enqueueAndProcessRequest(payload);
|
|
101
|
-
}
|
|
102
|
-
enqueueAndProcessRequest(payload) {
|
|
103
|
-
return new Promise((resolve, reject) => {
|
|
104
|
-
const queueItem = {
|
|
105
|
-
payload,
|
|
106
|
-
resolve,
|
|
107
|
-
reject,
|
|
108
|
-
timeout: setTimeout(() => {
|
|
109
|
-
reject(new Error(`Request timed out after ${this.timeout}ms.`, { cause: payload }));
|
|
110
|
-
this.processNextRequest();
|
|
111
|
-
}, this.timeout),
|
|
112
|
-
};
|
|
113
|
-
this.requestQueue.push(queueItem);
|
|
114
|
-
this.processNextRequest();
|
|
115
|
-
});
|
|
116
|
-
}
|
|
117
|
-
async processNextRequest() {
|
|
118
|
-
if (this.isProcessing || this.requestQueue.length === 0) {
|
|
119
|
-
return;
|
|
120
|
-
}
|
|
121
|
-
this.isProcessing = true;
|
|
122
|
-
const currentRequest = this.requestQueue.shift();
|
|
123
|
-
const { payload, resolve, reject, timeout } = currentRequest;
|
|
124
|
-
try {
|
|
125
|
-
await this.client.send(JSON.stringify(payload));
|
|
126
|
-
this.pendingRequests.set(payload.requestId, { resolve, reject, timeout });
|
|
127
|
-
}
|
|
128
|
-
catch (error) {
|
|
129
|
-
clearTimeout(timeout);
|
|
130
|
-
reject(error);
|
|
131
|
-
this.isProcessing = false;
|
|
132
|
-
this.processNextRequest();
|
|
133
|
-
}
|
|
134
|
-
}
|
|
135
|
-
async onReply() {
|
|
136
|
-
for await (const [message] of this.client) {
|
|
137
|
-
try {
|
|
138
|
-
const msg = JSON.parse(message.toString());
|
|
139
|
-
this.resolveRequest(msg);
|
|
140
|
-
}
|
|
141
|
-
catch (error) {
|
|
142
|
-
this.logger.error('Error during resolving request:', message.toString(), error);
|
|
143
|
-
}
|
|
144
|
-
}
|
|
145
|
-
}
|
|
146
|
-
resolveRequest(msg) {
|
|
147
|
-
const resolver = this.pendingRequests.get(msg.replyTo);
|
|
148
|
-
if (resolver) {
|
|
149
|
-
clearTimeout(resolver.timeout);
|
|
150
|
-
if (msg.response?.error) {
|
|
151
|
-
resolver.reject(new Error(msg.response.error));
|
|
152
|
-
}
|
|
153
|
-
else {
|
|
154
|
-
resolver.resolve(msg.response);
|
|
155
|
-
}
|
|
156
|
-
this.pendingRequests.delete(msg.replyTo);
|
|
157
|
-
}
|
|
158
|
-
this.isProcessing = false;
|
|
159
|
-
this.processNextRequest();
|
|
160
|
-
}
|
|
161
|
-
}
|
|
162
|
-
exports.SystemManager = SystemManager;
|
|
163
|
-
//# sourceMappingURL=systemManager.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"systemManager.js","sourceRoot":"","sources":["../../../../../../src/proxy/client/systemManager.ts"],"names":[],"mappings":"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"}
|
package/dist/src/proxy/index.js
DELETED
|
@@ -1,98 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
-
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
-
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
-
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
-
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
-
};
|
|
8
|
-
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
-
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
-
};
|
|
11
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
-
exports.ProxyServer = void 0;
|
|
13
|
-
const zeromq_1 = require("zeromq");
|
|
14
|
-
const tsyringe_1 = require("tsyringe");
|
|
15
|
-
const ws_1 = require("../api/ws");
|
|
16
|
-
const server_1 = require("./proxies/server");
|
|
17
|
-
const camera_1 = require("./proxies/camera");
|
|
18
|
-
const plugin_1 = require("./proxies/plugin");
|
|
19
|
-
const generateKeys_1 = require("./utils/generateKeys");
|
|
20
|
-
let ProxyServer = class ProxyServer {
|
|
21
|
-
server;
|
|
22
|
-
camera;
|
|
23
|
-
plugin;
|
|
24
|
-
logger;
|
|
25
|
-
configService;
|
|
26
|
-
router;
|
|
27
|
-
reqServer;
|
|
28
|
-
pubServer;
|
|
29
|
-
socketBridge;
|
|
30
|
-
constructor() {
|
|
31
|
-
this.logger = tsyringe_1.container.resolve('logger');
|
|
32
|
-
this.configService = tsyringe_1.container.resolve('configService');
|
|
33
|
-
this.router = new zeromq_1.Router();
|
|
34
|
-
this.reqServer = new zeromq_1.Reply();
|
|
35
|
-
this.pubServer = new zeromq_1.Publisher();
|
|
36
|
-
tsyringe_1.container.register('proxy', { useValue: this });
|
|
37
|
-
}
|
|
38
|
-
async initialize() {
|
|
39
|
-
const { publicKey, secretKey } = (0, generateKeys_1.generateKeyPair)();
|
|
40
|
-
this.router.curveServer = true;
|
|
41
|
-
this.router.curveSecretKey = secretKey;
|
|
42
|
-
this.reqServer.curveServer = true;
|
|
43
|
-
this.reqServer.curveSecretKey = secretKey;
|
|
44
|
-
this.pubServer.curveServer = true;
|
|
45
|
-
this.pubServer.curveSecretKey = secretKey;
|
|
46
|
-
await Promise.all([this.router.bind('tcp://127.0.0.1:*'), this.reqServer.bind('tcp://127.0.0.1:*'), this.pubServer.bind('tcp://127.0.0.1:*')]);
|
|
47
|
-
this.configService.PROXY_ROUTER_ADDRESS = this.router.lastEndpoint;
|
|
48
|
-
this.configService.PROXY_REQ_ADDRESS = this.reqServer.lastEndpoint;
|
|
49
|
-
this.configService.PROXY_PUB_ADDRESS = this.pubServer.lastEndpoint;
|
|
50
|
-
this.configService.PROXY_PUBLIC_KEY = publicKey;
|
|
51
|
-
const socketService = tsyringe_1.container.resolve('socketService');
|
|
52
|
-
this.socketBridge = socketService.namespaces.get('/proxy');
|
|
53
|
-
this.socketBridge.init();
|
|
54
|
-
this.server = new server_1.ServerProxy(this.reqServer);
|
|
55
|
-
this.plugin = new plugin_1.PluginProxy(this.router);
|
|
56
|
-
this.camera = new camera_1.CameraDeviceProxy(this.reqServer, this.pubServer, this.socketBridge);
|
|
57
|
-
this.reqMessages();
|
|
58
|
-
}
|
|
59
|
-
async close() {
|
|
60
|
-
this.reqServer.close();
|
|
61
|
-
this.pubServer.close();
|
|
62
|
-
this.router.close();
|
|
63
|
-
}
|
|
64
|
-
async publishEvent(targetId, type, data) {
|
|
65
|
-
const event = { type, data };
|
|
66
|
-
const message = JSON.stringify(event);
|
|
67
|
-
this.socketBridge?.nsp.emit(type, data);
|
|
68
|
-
await this.pubServer.send([targetId, message]);
|
|
69
|
-
}
|
|
70
|
-
async reqMessages() {
|
|
71
|
-
for await (const [msgBuffer] of this.reqServer) {
|
|
72
|
-
try {
|
|
73
|
-
const msg = JSON.parse(msgBuffer.toString());
|
|
74
|
-
if (!msg.cameraId) {
|
|
75
|
-
await this.server.reqMessages(msg);
|
|
76
|
-
}
|
|
77
|
-
else {
|
|
78
|
-
await this.camera.reqMessages(msg);
|
|
79
|
-
}
|
|
80
|
-
}
|
|
81
|
-
catch (error) {
|
|
82
|
-
this.logger.error('Error during message processing:', msgBuffer.toString(), error);
|
|
83
|
-
}
|
|
84
|
-
}
|
|
85
|
-
}
|
|
86
|
-
};
|
|
87
|
-
exports.ProxyServer = ProxyServer;
|
|
88
|
-
exports.ProxyServer = ProxyServer = __decorate([
|
|
89
|
-
(0, tsyringe_1.registry)([
|
|
90
|
-
{
|
|
91
|
-
token: 'socketService',
|
|
92
|
-
useValue: (0, tsyringe_1.delay)(() => ws_1.SocketService),
|
|
93
|
-
},
|
|
94
|
-
]),
|
|
95
|
-
(0, tsyringe_1.scoped)(tsyringe_1.Lifecycle.ContainerScoped),
|
|
96
|
-
__metadata("design:paramtypes", [])
|
|
97
|
-
], ProxyServer);
|
|
98
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/proxy/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,72 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.CameraDeviceProxy = void 0;
|
|
4
|
-
const tsyringe_1 = require("tsyringe");
|
|
5
|
-
class CameraDeviceProxy {
|
|
6
|
-
api;
|
|
7
|
-
reqServer;
|
|
8
|
-
pubServer;
|
|
9
|
-
socketBridge;
|
|
10
|
-
constructor(reqServer, pubServer, socketBridge) {
|
|
11
|
-
this.api = tsyringe_1.container.resolve('api');
|
|
12
|
-
this.reqServer = reqServer;
|
|
13
|
-
this.pubServer = pubServer;
|
|
14
|
-
this.socketBridge = socketBridge;
|
|
15
|
-
}
|
|
16
|
-
updateState(data) {
|
|
17
|
-
const camera = this.api.getCamera(data.cameraId);
|
|
18
|
-
camera?.updateState(data.stateName, data.eventData);
|
|
19
|
-
}
|
|
20
|
-
refreshStates(data) {
|
|
21
|
-
const camera = this.api.getCamera(data.cameraId);
|
|
22
|
-
if (camera) {
|
|
23
|
-
const states = {
|
|
24
|
-
light: camera.getValue('light'),
|
|
25
|
-
motion: camera.getValue('motion'),
|
|
26
|
-
audio: camera.getValue('audio'),
|
|
27
|
-
object: camera.getValue('object'),
|
|
28
|
-
doorbell: camera.getValue('doorbell'),
|
|
29
|
-
siren: camera.getValue('siren'),
|
|
30
|
-
};
|
|
31
|
-
return states;
|
|
32
|
-
}
|
|
33
|
-
}
|
|
34
|
-
async reqMessages(msg) {
|
|
35
|
-
try {
|
|
36
|
-
if (!msg.targetId || !msg.fn || !msg.data) {
|
|
37
|
-
throw new Error('Missing message parameters');
|
|
38
|
-
}
|
|
39
|
-
if (typeof this[msg.fn] !== 'function') {
|
|
40
|
-
throw new Error(`Unknown function: ${msg.fn}`);
|
|
41
|
-
}
|
|
42
|
-
const response = this[msg.fn]({ ...(msg.data || {}), cameraId: msg.cameraId });
|
|
43
|
-
await this.reqServer.send(JSON.stringify({ response: response, replyTo: msg.requestId }));
|
|
44
|
-
}
|
|
45
|
-
catch (error) {
|
|
46
|
-
await this.reqServer.send(JSON.stringify({ response: { error: error.message }, replyTo: msg.requestId }));
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
async publishCameraMessage(cameraId, stateOrType, data) {
|
|
50
|
-
if (this.isCameraState(stateOrType)) {
|
|
51
|
-
const event = { stateName: stateOrType, data };
|
|
52
|
-
const message = JSON.stringify(event);
|
|
53
|
-
const socketEvent = 'updateState';
|
|
54
|
-
this.socketBridge.nsp.emit(stateOrType, { cameraId, data });
|
|
55
|
-
this.socketBridge.nsp.emit(socketEvent, { cameraId, stateName: stateOrType, data });
|
|
56
|
-
await this.pubServer.send([`cam-sub-${cameraId}`, message]);
|
|
57
|
-
}
|
|
58
|
-
else {
|
|
59
|
-
const event = { type: stateOrType, data };
|
|
60
|
-
const message = JSON.stringify(event);
|
|
61
|
-
const socketEvent = 'updateDevice';
|
|
62
|
-
this.socketBridge.nsp.emit(socketEvent, { cameraId, type: stateOrType, data });
|
|
63
|
-
await this.pubServer.send([`cam-sub-${cameraId}`, message]);
|
|
64
|
-
}
|
|
65
|
-
}
|
|
66
|
-
isCameraState(value) {
|
|
67
|
-
const validStateNames = ['light', 'motion', 'audio', 'object', 'doorbell', 'siren'];
|
|
68
|
-
return validStateNames.includes(value);
|
|
69
|
-
}
|
|
70
|
-
}
|
|
71
|
-
exports.CameraDeviceProxy = CameraDeviceProxy;
|
|
72
|
-
//# sourceMappingURL=camera.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"camera.js","sourceRoot":"","sources":["../../../../../../src/proxy/proxies/camera.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,110 +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.PluginProxy = void 0;
|
|
7
|
-
const tsyringe_1 = require("tsyringe");
|
|
8
|
-
const plugins_service_1 = __importDefault(require("../../api/services/plugins.service"));
|
|
9
|
-
class PluginProxy {
|
|
10
|
-
logger;
|
|
11
|
-
pluginsService;
|
|
12
|
-
router;
|
|
13
|
-
timeout = 30000;
|
|
14
|
-
pluginRequestIdCounter = 0;
|
|
15
|
-
storageRequestIdCounter = 0;
|
|
16
|
-
pendingRequests = new Map();
|
|
17
|
-
requestQueue = [];
|
|
18
|
-
isProcessing = false;
|
|
19
|
-
constructor(router) {
|
|
20
|
-
this.logger = tsyringe_1.container.resolve('logger');
|
|
21
|
-
this.pluginsService = new plugins_service_1.default();
|
|
22
|
-
this.router = router;
|
|
23
|
-
this.onReply();
|
|
24
|
-
}
|
|
25
|
-
onRequestPluginFn(pluginId, fn, ...args) {
|
|
26
|
-
const requestId = (++this.pluginRequestIdCounter).toString();
|
|
27
|
-
const payload = { fn, args, requestId, pluginId, targetId: `pm-dealer-${pluginId}` };
|
|
28
|
-
const pluginProcess = this.pluginsService.getPluginProcessById(pluginId);
|
|
29
|
-
if (!pluginProcess) {
|
|
30
|
-
throw new Error(`Plugin process with ID "${pluginId}" not found`);
|
|
31
|
-
}
|
|
32
|
-
else if (pluginProcess.status !== "started" /* PLUGIN_STATUS.STARTED */) {
|
|
33
|
-
throw new Error(`Plugin process "${pluginProcess.plugin.displayName}" not started`);
|
|
34
|
-
}
|
|
35
|
-
return this.enqueueAndProcessRequest(payload);
|
|
36
|
-
}
|
|
37
|
-
onRequestStorageFn(pluginId, cameraId, fn, ...args) {
|
|
38
|
-
const requestId = (++this.storageRequestIdCounter).toString();
|
|
39
|
-
const payload = { fn, args, requestId, cameraId, pluginId, targetId: `pm-dealer-${pluginId}` };
|
|
40
|
-
const pluginProcess = this.pluginsService.getPluginProcessById(pluginId);
|
|
41
|
-
if (!pluginProcess) {
|
|
42
|
-
throw new Error(`Plugin process with ID "${pluginId}" not found`);
|
|
43
|
-
}
|
|
44
|
-
else if (pluginProcess.status !== "started" /* PLUGIN_STATUS.STARTED */) {
|
|
45
|
-
throw new Error(`Plugin process "${pluginProcess.plugin.displayName}" not started`);
|
|
46
|
-
}
|
|
47
|
-
return this.enqueueAndProcessRequest(payload);
|
|
48
|
-
}
|
|
49
|
-
enqueueAndProcessRequest(payload) {
|
|
50
|
-
return new Promise((resolve, reject) => {
|
|
51
|
-
const queueItem = {
|
|
52
|
-
payload,
|
|
53
|
-
resolve,
|
|
54
|
-
reject,
|
|
55
|
-
timeout: setTimeout(() => {
|
|
56
|
-
reject(new Error(`Request timed out after ${this.timeout}ms.`, { cause: payload }));
|
|
57
|
-
this.processNextRequest();
|
|
58
|
-
}, this.timeout),
|
|
59
|
-
};
|
|
60
|
-
this.requestQueue.push(queueItem);
|
|
61
|
-
this.processNextRequest();
|
|
62
|
-
});
|
|
63
|
-
}
|
|
64
|
-
async processNextRequest() {
|
|
65
|
-
if (this.isProcessing || this.requestQueue.length === 0) {
|
|
66
|
-
return;
|
|
67
|
-
}
|
|
68
|
-
this.isProcessing = true;
|
|
69
|
-
const currentRequest = this.requestQueue.shift();
|
|
70
|
-
const { payload, resolve, reject, timeout } = currentRequest;
|
|
71
|
-
try {
|
|
72
|
-
await this.router.send([payload.targetId, '', JSON.stringify(payload)]);
|
|
73
|
-
this.pendingRequests.set(payload.requestId, { resolve, reject, timeout });
|
|
74
|
-
}
|
|
75
|
-
catch (error) {
|
|
76
|
-
clearTimeout(timeout);
|
|
77
|
-
reject(error);
|
|
78
|
-
this.isProcessing = false;
|
|
79
|
-
this.processNextRequest();
|
|
80
|
-
}
|
|
81
|
-
}
|
|
82
|
-
async onReply() {
|
|
83
|
-
for await (const [, message] of this.router) {
|
|
84
|
-
try {
|
|
85
|
-
const msg = JSON.parse(message.toString());
|
|
86
|
-
this.resolveRequest(msg);
|
|
87
|
-
}
|
|
88
|
-
catch (error) {
|
|
89
|
-
this.logger.error('Error during resolving router request:', message.toString(), error);
|
|
90
|
-
}
|
|
91
|
-
}
|
|
92
|
-
}
|
|
93
|
-
resolveRequest(msg) {
|
|
94
|
-
const resolver = this.pendingRequests.get(msg.replyTo);
|
|
95
|
-
if (resolver) {
|
|
96
|
-
clearTimeout(resolver.timeout);
|
|
97
|
-
if (msg.response?.error) {
|
|
98
|
-
resolver.reject(new Error(msg.response.error));
|
|
99
|
-
}
|
|
100
|
-
else {
|
|
101
|
-
resolver.resolve(msg.response);
|
|
102
|
-
}
|
|
103
|
-
this.pendingRequests.delete(msg.replyTo);
|
|
104
|
-
}
|
|
105
|
-
this.isProcessing = false;
|
|
106
|
-
this.processNextRequest();
|
|
107
|
-
}
|
|
108
|
-
}
|
|
109
|
-
exports.PluginProxy = PluginProxy;
|
|
110
|
-
//# sourceMappingURL=plugin.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"plugin.js","sourceRoot":"","sources":["../../../../../../src/proxy/proxies/plugin.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,92 +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.ServerProxy = void 0;
|
|
7
|
-
const zod_1 = require("zod");
|
|
8
|
-
const cameras_service_1 = __importDefault(require("../../api/services/cameras.service"));
|
|
9
|
-
const plugins_service_1 = __importDefault(require("../../api/services/plugins.service"));
|
|
10
|
-
const cameras_schema_1 = require("../../api/schemas/cameras.schema");
|
|
11
|
-
class ServerProxy {
|
|
12
|
-
camerasService;
|
|
13
|
-
pluginsService;
|
|
14
|
-
reqServer;
|
|
15
|
-
constructor(reqServer) {
|
|
16
|
-
this.reqServer = reqServer;
|
|
17
|
-
this.camerasService = new cameras_service_1.default();
|
|
18
|
-
this.pluginsService = new plugins_service_1.default();
|
|
19
|
-
}
|
|
20
|
-
async getCameraByName(data) {
|
|
21
|
-
return await this.camerasService.findTransformedByName(data.name);
|
|
22
|
-
}
|
|
23
|
-
async getCameraById(data) {
|
|
24
|
-
return await this.camerasService.findTransformedById(data.id);
|
|
25
|
-
}
|
|
26
|
-
async createCamera(data) {
|
|
27
|
-
const cameraExist = await this.camerasService.findByName(data.camera.name);
|
|
28
|
-
if (cameraExist) {
|
|
29
|
-
throw new Error(`Camera with name "${data.camera.name}" already exist`);
|
|
30
|
-
}
|
|
31
|
-
let cameraDB;
|
|
32
|
-
try {
|
|
33
|
-
cameraDB = cameras_schema_1.createCameraSchema.parse({
|
|
34
|
-
...data.camera,
|
|
35
|
-
_id: '',
|
|
36
|
-
nativeId: data.camera.nativeId,
|
|
37
|
-
pluginId: data.pluginId,
|
|
38
|
-
});
|
|
39
|
-
}
|
|
40
|
-
catch (error) {
|
|
41
|
-
if (error instanceof zod_1.ZodError) {
|
|
42
|
-
throw new Error(`${error.errors[0].message} - (${JSON.stringify(error.errors[0].path)})`);
|
|
43
|
-
}
|
|
44
|
-
throw error;
|
|
45
|
-
}
|
|
46
|
-
return await this.camerasService.createTransformedCamera(cameraDB);
|
|
47
|
-
}
|
|
48
|
-
async removeCameraByName(data) {
|
|
49
|
-
const camera = await this.camerasService.findByName(data.name);
|
|
50
|
-
if (!camera) {
|
|
51
|
-
throw new Error(`Camera with name "${data.name}" does not exist`);
|
|
52
|
-
}
|
|
53
|
-
if (camera.pluginId !== data.pluginId) {
|
|
54
|
-
throw new Error(`Camera with name "${data.name}" not belong to plugin with ID "${data.pluginId}"`);
|
|
55
|
-
}
|
|
56
|
-
await this.camerasService.removeByName(data.name);
|
|
57
|
-
}
|
|
58
|
-
async removeCameraById(data) {
|
|
59
|
-
const camera = await this.camerasService.findById(data.id);
|
|
60
|
-
if (!camera) {
|
|
61
|
-
throw new Error(`Camera with id "${data.id}" does not exist`);
|
|
62
|
-
}
|
|
63
|
-
if (camera.pluginId !== data.pluginId) {
|
|
64
|
-
throw new Error(`Camera with id "${data.id}" not belong to plugin with ID "${data.pluginId}"`);
|
|
65
|
-
}
|
|
66
|
-
await this.camerasService.removeById(data.id);
|
|
67
|
-
}
|
|
68
|
-
async reqMessages(msg) {
|
|
69
|
-
try {
|
|
70
|
-
if (!msg.targetId || !msg.pluginId || !msg.fn || !msg.data) {
|
|
71
|
-
throw new Error('Missing message parameters');
|
|
72
|
-
}
|
|
73
|
-
const pluginProcess = this.pluginsService.getPluginProcessById(msg.pluginId);
|
|
74
|
-
if (!pluginProcess) {
|
|
75
|
-
throw new Error(`Plugin process with ID "${msg.pluginId}" not found`);
|
|
76
|
-
}
|
|
77
|
-
else if (pluginProcess.status !== "started" /* PLUGIN_STATUS.STARTED */) {
|
|
78
|
-
throw new Error(`Plugin process "${pluginProcess.plugin.displayName}" not started`);
|
|
79
|
-
}
|
|
80
|
-
if (typeof this[msg.fn] !== 'function') {
|
|
81
|
-
throw new Error(`Unknown function: ${msg.fn}`);
|
|
82
|
-
}
|
|
83
|
-
const response = await this[msg.fn]({ ...(msg.data || {}), pluginId: msg.pluginId });
|
|
84
|
-
await this.reqServer.send(JSON.stringify({ response: response, replyTo: msg.requestId }));
|
|
85
|
-
}
|
|
86
|
-
catch (error) {
|
|
87
|
-
await this.reqServer.send(JSON.stringify({ response: { error: error.message }, replyTo: msg.requestId }));
|
|
88
|
-
}
|
|
89
|
-
}
|
|
90
|
-
}
|
|
91
|
-
exports.ServerProxy = ServerProxy;
|
|
92
|
-
//# sourceMappingURL=server.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../../../../../src/proxy/proxies/server.ts"],"names":[],"mappings":"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"}
|
package/dist/src/proxy/types.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../../src/proxy/types.ts"],"names":[],"mappings":""}
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.generateKeyPair = void 0;
|
|
4
|
-
const zeromq_1 = require("zeromq");
|
|
5
|
-
const generateKeyPair = () => {
|
|
6
|
-
const keyPair = (0, zeromq_1.curveKeyPair)();
|
|
7
|
-
return {
|
|
8
|
-
publicKey: keyPair.publicKey,
|
|
9
|
-
secretKey: keyPair.secretKey,
|
|
10
|
-
};
|
|
11
|
-
};
|
|
12
|
-
exports.generateKeyPair = generateKeyPair;
|
|
13
|
-
//# sourceMappingURL=generateKeys.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"generateKeys.js","sourceRoot":"","sources":["../../../../../../src/proxy/utils/generateKeys.ts"],"names":[],"mappings":";;;AAAA,mCAAsC;AAO/B,MAAM,eAAe,GAAG,GAAiB,EAAE;IAChD,MAAM,OAAO,GAAG,IAAA,qBAAY,GAAE,CAAC;IAE/B,OAAO;QACL,SAAS,EAAE,OAAO,CAAC,SAAS;QAC5B,SAAS,EAAE,OAAO,CAAC,SAAS;KAC7B,CAAC;AACJ,CAAC,CAAC;AAPW,QAAA,eAAe,mBAO1B"}
|