@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.
Files changed (158) hide show
  1. package/package.json +9 -1
  2. package/dist/client/node/src/api.js +0 -27
  3. package/dist/client/node/src/api.js.map +0 -1
  4. package/dist/client/node/src/client.js +0 -106
  5. package/dist/client/node/src/client.js.map +0 -1
  6. package/dist/client/node/src/index.js +0 -19
  7. package/dist/client/node/src/index.js.map +0 -1
  8. package/dist/client/node/src/proxy/cameraDevice/cameraDevice.browser.js +0 -176
  9. package/dist/client/node/src/proxy/cameraDevice/cameraDevice.browser.js.map +0 -1
  10. package/dist/client/node/src/proxy/cameraDevice/cameraDevice.mock.js +0 -3
  11. package/dist/client/node/src/proxy/cameraDevice/cameraDevice.mock.js.map +0 -1
  12. package/dist/client/node/src/proxy/cameraDevice/cameraDevice.node.js +0 -51
  13. package/dist/client/node/src/proxy/cameraDevice/cameraDevice.node.js.map +0 -1
  14. package/dist/client/node/src/proxy/cameraDevice/index.js +0 -11
  15. package/dist/client/node/src/proxy/cameraDevice/index.js.map +0 -1
  16. package/dist/client/node/src/proxy/deviceManager.js +0 -67
  17. package/dist/client/node/src/proxy/deviceManager.js.map +0 -1
  18. package/dist/client/node/src/proxy/index.js +0 -21
  19. package/dist/client/node/src/proxy/index.js.map +0 -1
  20. package/dist/client/node/src/proxy/pluginsManager.js +0 -25
  21. package/dist/client/node/src/proxy/pluginsManager.js.map +0 -1
  22. package/dist/client/node/src/proxy/systemManager.js +0 -25
  23. package/dist/client/node/src/proxy/systemManager.js.map +0 -1
  24. package/dist/client/node/src/socket.js +0 -45
  25. package/dist/client/node/src/socket.js.map +0 -1
  26. package/dist/client/node/src/types.js +0 -3
  27. package/dist/client/node/src/types.js.map +0 -1
  28. package/dist/package.json +0 -149
  29. package/dist/shared/common/utils.js +0 -66
  30. package/dist/shared/common/utils.js.map +0 -1
  31. package/dist/shared/types/index.js +0 -23
  32. package/dist/shared/types/index.js.map +0 -1
  33. package/dist/src/api/database/index.js +0 -203
  34. package/dist/src/api/database/index.js.map +0 -1
  35. package/dist/src/api/database/types.js +0 -3
  36. package/dist/src/api/database/types.js.map +0 -1
  37. package/dist/src/api/go2rtc/api/application.js +0 -32
  38. package/dist/src/api/go2rtc/api/application.js.map +0 -1
  39. package/dist/src/api/go2rtc/api/index.js +0 -33
  40. package/dist/src/api/go2rtc/api/index.js.map +0 -1
  41. package/dist/src/api/go2rtc/api/snapshot.js +0 -22
  42. package/dist/src/api/go2rtc/api/snapshot.js.map +0 -1
  43. package/dist/src/api/go2rtc/api/streams.js +0 -32
  44. package/dist/src/api/go2rtc/api/streams.js.map +0 -1
  45. package/dist/src/api/go2rtc/index.js +0 -13
  46. package/dist/src/api/go2rtc/index.js.map +0 -1
  47. package/dist/src/api/go2rtc/types.js +0 -3
  48. package/dist/src/api/go2rtc/types.js.map +0 -1
  49. package/dist/src/api/middlewares/socketAuth.middleware.js +0 -90
  50. package/dist/src/api/middlewares/socketAuth.middleware.js.map +0 -1
  51. package/dist/src/api/schemas/backup.schema.js +0 -94
  52. package/dist/src/api/schemas/backup.schema.js.map +0 -1
  53. package/dist/src/api/schemas/cameras.schema.js +0 -124
  54. package/dist/src/api/schemas/cameras.schema.js.map +0 -1
  55. package/dist/src/api/schemas/config.schema.js +0 -94
  56. package/dist/src/api/schemas/config.schema.js.map +0 -1
  57. package/dist/src/api/schemas/go2rtc.schema.js +0 -204
  58. package/dist/src/api/schemas/go2rtc.schema.js.map +0 -1
  59. package/dist/src/api/schemas/users.schema.js +0 -131
  60. package/dist/src/api/schemas/users.schema.js.map +0 -1
  61. package/dist/src/api/services/auth.service.js +0 -104
  62. package/dist/src/api/services/auth.service.js.map +0 -1
  63. package/dist/src/api/services/cameras.service.js +0 -535
  64. package/dist/src/api/services/cameras.service.js.map +0 -1
  65. package/dist/src/api/services/plugins.service.js +0 -115
  66. package/dist/src/api/services/plugins.service.js.map +0 -1
  67. package/dist/src/api/services/users.service.js +0 -54
  68. package/dist/src/api/services/users.service.js.map +0 -1
  69. package/dist/src/api/types/index.js +0 -12
  70. package/dist/src/api/types/index.js.map +0 -1
  71. package/dist/src/api/utils/cert.js +0 -437
  72. package/dist/src/api/utils/cert.js.map +0 -1
  73. package/dist/src/api/ws/index.js +0 -89
  74. package/dist/src/api/ws/index.js.map +0 -1
  75. package/dist/src/api/ws/nsp/logs.js +0 -121
  76. package/dist/src/api/ws/nsp/logs.js.map +0 -1
  77. package/dist/src/api/ws/nsp/main.js +0 -49
  78. package/dist/src/api/ws/nsp/main.js.map +0 -1
  79. package/dist/src/api/ws/nsp/metrics.js +0 -225
  80. package/dist/src/api/ws/nsp/metrics.js.map +0 -1
  81. package/dist/src/api/ws/nsp/notifications.js +0 -39
  82. package/dist/src/api/ws/nsp/notifications.js.map +0 -1
  83. package/dist/src/api/ws/nsp/plugins.js +0 -33
  84. package/dist/src/api/ws/nsp/plugins.js.map +0 -1
  85. package/dist/src/api/ws/nsp/status.js +0 -41
  86. package/dist/src/api/ws/nsp/status.js.map +0 -1
  87. package/dist/src/api/ws/nsp/streams.js +0 -140
  88. package/dist/src/api/ws/nsp/streams.js.map +0 -1
  89. package/dist/src/api/ws/types.js +0 -3
  90. package/dist/src/api/ws/types.js.map +0 -1
  91. package/dist/src/api.js +0 -66
  92. package/dist/src/api.js.map +0 -1
  93. package/dist/src/camera/index.js +0 -210
  94. package/dist/src/camera/index.js.map +0 -1
  95. package/dist/src/camera/streaming/peer-connection.js +0 -157
  96. package/dist/src/camera/streaming/peer-connection.js.map +0 -1
  97. package/dist/src/camera/streaming/streaming-session.js +0 -172
  98. package/dist/src/camera/streaming/streaming-session.js.map +0 -1
  99. package/dist/src/camera/streaming/webrtc-connection.js +0 -156
  100. package/dist/src/camera/streaming/webrtc-connection.js.map +0 -1
  101. package/dist/src/camera/subscribed.js +0 -14
  102. package/dist/src/camera/subscribed.js.map +0 -1
  103. package/dist/src/camera/types.js +0 -3
  104. package/dist/src/camera/types.js.map +0 -1
  105. package/dist/src/go2rtc/index.js +0 -220
  106. package/dist/src/go2rtc/index.js.map +0 -1
  107. package/dist/src/go2rtc/types.js +0 -76
  108. package/dist/src/go2rtc/types.js.map +0 -1
  109. package/dist/src/plugins/base.js +0 -26
  110. package/dist/src/plugins/base.js.map +0 -1
  111. package/dist/src/plugins/cameraStorage.js +0 -290
  112. package/dist/src/plugins/cameraStorage.js.map +0 -1
  113. package/dist/src/plugins/child.js +0 -140
  114. package/dist/src/plugins/child.js.map +0 -1
  115. package/dist/src/plugins/config.js +0 -234
  116. package/dist/src/plugins/config.js.map +0 -1
  117. package/dist/src/plugins/index.js +0 -328
  118. package/dist/src/plugins/index.js.map +0 -1
  119. package/dist/src/plugins/plugin.js +0 -215
  120. package/dist/src/plugins/plugin.js.map +0 -1
  121. package/dist/src/plugins/schema.js +0 -717
  122. package/dist/src/plugins/schema.js.map +0 -1
  123. package/dist/src/plugins/storage.js +0 -45
  124. package/dist/src/plugins/storage.js.map +0 -1
  125. package/dist/src/plugins/types.js +0 -21
  126. package/dist/src/plugins/types.js.map +0 -1
  127. package/dist/src/plugins/worker.js +0 -236
  128. package/dist/src/plugins/worker.js.map +0 -1
  129. package/dist/src/proxy/client/cameraDevice.js +0 -171
  130. package/dist/src/proxy/client/cameraDevice.js.map +0 -1
  131. package/dist/src/proxy/client/deviceManager.js +0 -239
  132. package/dist/src/proxy/client/deviceManager.js.map +0 -1
  133. package/dist/src/proxy/client/index.js +0 -21
  134. package/dist/src/proxy/client/index.js.map +0 -1
  135. package/dist/src/proxy/client/pluginsManager.js +0 -237
  136. package/dist/src/proxy/client/pluginsManager.js.map +0 -1
  137. package/dist/src/proxy/client/systemManager.js +0 -163
  138. package/dist/src/proxy/client/systemManager.js.map +0 -1
  139. package/dist/src/proxy/index.js +0 -98
  140. package/dist/src/proxy/index.js.map +0 -1
  141. package/dist/src/proxy/proxies/camera.js +0 -72
  142. package/dist/src/proxy/proxies/camera.js.map +0 -1
  143. package/dist/src/proxy/proxies/plugin.js +0 -110
  144. package/dist/src/proxy/proxies/plugin.js.map +0 -1
  145. package/dist/src/proxy/proxies/server.js +0 -92
  146. package/dist/src/proxy/proxies/server.js.map +0 -1
  147. package/dist/src/proxy/types.js +0 -3
  148. package/dist/src/proxy/types.js.map +0 -1
  149. package/dist/src/proxy/utils/generateKeys.js +0 -13
  150. package/dist/src/proxy/utils/generateKeys.js.map +0 -1
  151. package/dist/src/proxy/ws/index.js +0 -75
  152. package/dist/src/proxy/ws/index.js.map +0 -1
  153. package/dist/src/services/config/index.js +0 -319
  154. package/dist/src/services/config/index.js.map +0 -1
  155. package/dist/src/services/config/types.js +0 -13
  156. package/dist/src/services/config/types.js.map +0 -1
  157. package/dist/src/services/logger/index.js +0 -181
  158. package/dist/src/services/logger/index.js.map +0 -1
@@ -1,75 +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.ProxyBridge = void 0;
13
- const tsyringe_1 = require("tsyringe");
14
- const __1 = require("../");
15
- let ProxyBridge = class ProxyBridge {
16
- nsp;
17
- nspName = '/proxy';
18
- logger;
19
- configService;
20
- proxy;
21
- constructor(io) {
22
- this.logger = tsyringe_1.container.resolve('logger');
23
- this.configService = tsyringe_1.container.resolve('configService');
24
- this.nsp = io.of(this.nspName);
25
- }
26
- init() {
27
- this.proxy = tsyringe_1.container.resolve('proxy');
28
- this.nsp.on('connection', (socket) => {
29
- this.setupEventListeners(socket);
30
- });
31
- }
32
- setupEventListeners(socket) {
33
- socket.on('managerRequest', async (data, callback) => {
34
- try {
35
- const method = this.proxy?.server?.[data.method];
36
- if (typeof method === 'function') {
37
- const response = await method.apply(this.proxy?.server, data.args);
38
- callback({ success: true, data: response });
39
- }
40
- else {
41
- throw new Error(`Method ${data.method} not found`);
42
- }
43
- }
44
- catch (error) {
45
- callback({ success: false, error: error.message });
46
- }
47
- });
48
- socket.on('cameraDeviceRequest', async (data, callback) => {
49
- try {
50
- const method = this.proxy?.camera?.[data.method];
51
- if (typeof method === 'function') {
52
- const response = await method.apply(this.proxy?.camera, data.args);
53
- callback({ success: true, data: response });
54
- }
55
- else {
56
- throw new Error(`Method ${data.method} not found`);
57
- }
58
- }
59
- catch (error) {
60
- callback({ success: false, error: error.message });
61
- }
62
- });
63
- }
64
- };
65
- exports.ProxyBridge = ProxyBridge;
66
- exports.ProxyBridge = ProxyBridge = __decorate([
67
- (0, tsyringe_1.registry)([
68
- {
69
- token: 'proxy',
70
- useValue: __1.ProxyServer,
71
- },
72
- ]),
73
- __metadata("design:paramtypes", [Function])
74
- ], ProxyBridge);
75
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../src/proxy/ws/index.ts"],"names":[],"mappings":"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"}
@@ -1,319 +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
- var __importDefault = (this && this.__importDefault) || function (mod) {
12
- return (mod && mod.__esModule) ? mod : { "default": mod };
13
- };
14
- var ConfigService_1;
15
- Object.defineProperty(exports, "__esModule", { value: true });
16
- exports.ConfigService = void 0;
17
- const crypto_1 = __importDefault(require("crypto"));
18
- const fs_extra_1 = __importDefault(require("fs-extra"));
19
- const lodash_mergewith_1 = __importDefault(require("lodash.mergewith"));
20
- const js_yaml_1 = __importDefault(require("js-yaml"));
21
- const dotenv_1 = __importDefault(require("dotenv"));
22
- const path_1 = __importDefault(require("path"));
23
- const tsyringe_1 = require("tsyringe");
24
- const zod_1 = require("zod");
25
- const cert_1 = require("../../api/utils/cert");
26
- const config_schema_1 = require("../../api/schemas/config.schema");
27
- const go2rtc_schema_1 = require("../../api/schemas/go2rtc.schema");
28
- const package_json_1 = __importDefault(require("../../../package.json"));
29
- dotenv_1.default.config({ path: path_1.default.resolve(__dirname, '../../../.env') });
30
- let ConfigService = class ConfigService {
31
- static { ConfigService_1 = this; }
32
- logger;
33
- _config;
34
- _go2rtcConfig;
35
- // database
36
- CAMERAS_ID = 'cameras';
37
- PLUGINS_ID = 'plugins';
38
- SETTINGS_ID = 'settings';
39
- TOKENS_ID = 'tokens';
40
- USERS_ID = 'users';
41
- SECRETS;
42
- // runtime
43
- static IS_DEV = process.env.NODE_ENV === 'development';
44
- static IS_DOCKER = process.env.CAMERA_UI_RUNMODE === 'docker';
45
- static IS_ELECTRON = process.env.CAMERA_UI_RUNMODE === 'electron';
46
- static IS_HA = process.env.CAMERA_UI_RUNMODE === 'ha';
47
- static IS_STANDARD = process.env.CAMERA_UI_RUNMODE === 'standard';
48
- static IS_SERVICE = process.env.CAMERA_UI_RUNMODE === 'service';
49
- // constant dirs
50
- INTERFACE_PATH = ConfigService_1.IS_DEV && !ConfigService_1.IS_ELECTRON ? path_1.default.resolve(__dirname, '../../../dist/interface') : path_1.default.resolve(__dirname, '../../../interface');
51
- BASE_PATH = !ConfigService_1.IS_ELECTRON
52
- ? path_1.default.resolve(__dirname, '..', '..', '..')
53
- : ConfigService_1.IS_DEV
54
- ? path_1.default.resolve(process.cwd(), '..', '..')
55
- : path_1.default.resolve(process.cwd());
56
- BASE_NODE_MODULE_PATH = path_1.default.resolve(this.BASE_PATH, 'node_modules');
57
- static VERSION = package_json_1.default.version;
58
- static MIN_NODE_VERSION = ConfigService_1.extractVersion(package_json_1.default.engines.node);
59
- static NODE_VERSION = process.version;
60
- // dirs
61
- STORAGE_PATH;
62
- DATABASE_PATH;
63
- USERS_STORAGE_PATH;
64
- PLUGINS_STRICT_RESOLUTION = true;
65
- PLUGINS_STORAGE_PATH;
66
- PLUGINS_INSTALL_PATH;
67
- PLUGINS_PJSON_FILE;
68
- // files
69
- LOG_FILE;
70
- CONFIG_FILE;
71
- SECRETS_FILE;
72
- FFMPEG_BINARY;
73
- GO2RTC_BINARY;
74
- GO2RTC_CONFIG_FILE;
75
- // server
76
- UI_PORT = parseInt(process.env.CAMERA_UI_DEV_UI_PORT); //dotenv
77
- UI_ELECTRON_PORT = parseInt(process.env.CAMERA_UI_DEV_UI_ELECTRON_PORT); //dotenv
78
- //proxy
79
- PROXY_ROUTER_ADDRESS;
80
- PROXY_REQ_ADDRESS;
81
- PROXY_PUB_ADDRESS;
82
- PROXY_PUBLIC_KEY;
83
- get config() {
84
- return this._config;
85
- }
86
- set config(newConfig) {
87
- this._config = config_schema_1.patchConfigSchema.parse(newConfig);
88
- }
89
- get go2rtcConfig() {
90
- return this._go2rtcConfig;
91
- }
92
- set go2rtcConfig(newConfig) {
93
- const config = go2rtc_schema_1.patchGo2RtcSchema.parse(newConfig);
94
- // update go2rtc config to ensure correct options are set or restore some restricted options
95
- this._go2rtcConfig = this.updateGo2RtcConfig(config);
96
- }
97
- constructor() {
98
- this.logger = tsyringe_1.container.resolve('logger');
99
- tsyringe_1.container.register('configService', { useValue: this });
100
- }
101
- read() {
102
- try {
103
- // update camera.ui.yaml
104
- this.updateConfig();
105
- // update secrets
106
- this.updateSecrets();
107
- // write camera.ui.yaml
108
- this.writeConfig();
109
- this.writeGo2RtcConfig();
110
- }
111
- catch (error) {
112
- this.logger.error(error);
113
- process.exit(0);
114
- }
115
- }
116
- writeConfig(newConfig) {
117
- if (newConfig) {
118
- this.config = newConfig;
119
- }
120
- fs_extra_1.default.writeFileSync(this.CONFIG_FILE, js_yaml_1.default.dump(this._config, { lineWidth: -1 }));
121
- }
122
- writeGo2RtcConfig(newConfig) {
123
- if (newConfig) {
124
- this.go2rtcConfig = newConfig;
125
- }
126
- fs_extra_1.default.writeFileSync(this.GO2RTC_CONFIG_FILE, js_yaml_1.default.dump(this._go2rtcConfig, { lineWidth: -1 }));
127
- }
128
- mergeGo2RtcConfig = async () => {
129
- // refresh stored go2rtc config and also update database
130
- this._go2rtcConfig = js_yaml_1.default.load(fs_extra_1.default.readFileSync(this.GO2RTC_CONFIG_FILE, 'utf-8'));
131
- // this.writeGo2RtcConfig();
132
- const db = tsyringe_1.container.resolve('dbs');
133
- await db?.updateCameras();
134
- };
135
- defaultConfig() {
136
- const conf = config_schema_1.patchConfigSchema.parse({
137
- port: 3443,
138
- ssl: {
139
- certFile: path_1.default.resolve(this.STORAGE_PATH, cert_1.ROOT_CERT_FILENAME),
140
- keyFile: path_1.default.resolve(this.STORAGE_PATH, cert_1.ROOT_KEY_FILENAME),
141
- addresses: ['localhost', '127.0.0.1'],
142
- },
143
- logger: {
144
- level: 'info',
145
- disableTimestamps: false,
146
- },
147
- settings: {
148
- snapshotCache: 600,
149
- },
150
- });
151
- return conf;
152
- }
153
- defaultGo2RtcConfig() {
154
- const config = go2rtc_schema_1.patchGo2RtcSchema.parse({
155
- log: {
156
- level: 'debug',
157
- format: 'text',
158
- hass: 'info',
159
- },
160
- api: {
161
- origin: '*',
162
- listen: '127.0.0.1:1984',
163
- username: 'cameraui',
164
- password: 'cameraui',
165
- },
166
- rtsp: {
167
- listen: ':8554',
168
- username: 'cameraui',
169
- password: 'cameraui',
170
- default_query: 'video=all&audio=all',
171
- },
172
- srtp: {
173
- listen: ':1937',
174
- },
175
- rtmp: {
176
- listen: ':1936',
177
- },
178
- webrtc: {
179
- listen: ':8555',
180
- candidates: [],
181
- ice_servers: [
182
- {
183
- urls: ['stun:stun.l.google.com:19302'],
184
- username: '',
185
- credential: '',
186
- },
187
- ],
188
- },
189
- ffmpeg: {
190
- bin: this.FFMPEG_BINARY,
191
- global: '-hide_banner',
192
- file: '-re -stream_loop -1 -i {input}',
193
- http: '-fflags nobuffer -flags low_delay -i {input}',
194
- rtsp: '-fflags nobuffer -flags low_delay -timeout 5000000 -user_agent go2rtc/ffmpeg -rtsp_transport tcp -i {input}',
195
- output: '-user_agent ffmpeg/go2rtc -rtsp_transport tcp -f rtsp {output}',
196
- },
197
- streams: {},
198
- });
199
- return config;
200
- }
201
- readConfig() {
202
- let config;
203
- if (fs_extra_1.default.pathExistsSync(this.CONFIG_FILE)) {
204
- config = (0, lodash_mergewith_1.default)(this.defaultConfig(), js_yaml_1.default.load(fs_extra_1.default.readFileSync(this.CONFIG_FILE, 'utf-8')));
205
- }
206
- else {
207
- config = this.defaultConfig();
208
- }
209
- try {
210
- return config_schema_1.patchConfigSchema.parse(config);
211
- }
212
- catch (error) {
213
- if (error instanceof zod_1.ZodError) {
214
- this.logger.warn('Invalid camera.ui config!', error.errors[0].message, `(${JSON.stringify(error.errors[0].path)})`);
215
- }
216
- return config;
217
- }
218
- }
219
- readGo2RtcConfig() {
220
- let go2rtcConfig;
221
- if (fs_extra_1.default.pathExistsSync(this.GO2RTC_CONFIG_FILE)) {
222
- go2rtcConfig = (0, lodash_mergewith_1.default)(this.defaultGo2RtcConfig(), js_yaml_1.default.load(fs_extra_1.default.readFileSync(this.GO2RTC_CONFIG_FILE, 'utf-8')));
223
- }
224
- else {
225
- go2rtcConfig = this.defaultGo2RtcConfig();
226
- }
227
- go2rtcConfig = this.updateGo2RtcConfig(go2rtcConfig);
228
- try {
229
- return go2rtc_schema_1.patchGo2RtcSchema.parse(go2rtcConfig);
230
- }
231
- catch (error) {
232
- if (error instanceof zod_1.ZodError) {
233
- this.logger.warn('Invalid go2rtc config!', error.errors[0].message, `(${JSON.stringify(error.errors[0].path)})`);
234
- }
235
- return go2rtcConfig;
236
- }
237
- }
238
- updateConfig = () => {
239
- // set env variables
240
- this.STORAGE_PATH = process.env.CAMERA_UI_STORAGE_PATH;
241
- this.DATABASE_PATH = process.env.CAMERA_UI_DATABASE_PATH;
242
- this.USERS_STORAGE_PATH = process.env.CAMERA_UI_USERS_STORAGE_PATH;
243
- this.PLUGINS_STORAGE_PATH = process.env.CAMERA_UI_PLUGINS_STORAGE_PATH;
244
- this.PLUGINS_INSTALL_PATH = process.env.CAMERA_UI_PLUGINS_INSTALL_PATH;
245
- this.PLUGINS_PJSON_FILE = process.env.CAMERA_UI_PLUGINS_PJSON_FILE;
246
- this.LOG_FILE = process.env.CAMERA_UI_LOG_FILE;
247
- this.CONFIG_FILE = process.env.CAMERA_UI_CONFIG_FILE;
248
- this.SECRETS_FILE = process.env.CAMERA_UI_SECRETS_FILE;
249
- this.FFMPEG_BINARY = process.env.CAMERA_UI_FFMPEG_BINARY;
250
- this.GO2RTC_BINARY = process.env.CAMERA_UI_GO2RTC_BINARY;
251
- this.GO2RTC_CONFIG_FILE = process.env.CAMERA_UI_GO2RTC_CONFIG_FILE;
252
- // validate and setup configs
253
- this._config = this.readConfig();
254
- this._go2rtcConfig = this.readGo2RtcConfig();
255
- // setup logger
256
- this.logger.debugEnabled = this._config.logger?.level === 'debug' || this._config.logger?.level === 'verbose';
257
- this.logger.verboseLogging = this._config.logger?.level === 'verbose';
258
- this.logger.disableTimestamps = this._config.logger?.disableTimestamps === true;
259
- };
260
- updateGo2RtcConfig = (go2rtcConfig) => {
261
- const newConfig = { ...go2rtcConfig };
262
- const go2rtcPort = go2rtcConfig.api.listen.split(':')[1] || 1999;
263
- // validate log
264
- // go2rtcConfig.log!.format = 'text';
265
- // go2rtcConfig.log!.level = 'debug';
266
- // validate api , todo secure credentials
267
- go2rtcConfig.api.origin = '*';
268
- go2rtcConfig.api.listen = `:${go2rtcPort}`;
269
- go2rtcConfig.rtsp.default_query = 'video=all&audio=all';
270
- return newConfig;
271
- };
272
- updateSecrets() {
273
- const createSecrets = () => {
274
- const secrets = {
275
- jwtAccessKey: crypto_1.default.randomBytes(32).toString('hex'),
276
- jwtRefreshKey: crypto_1.default.randomBytes(32).toString('hex'),
277
- };
278
- fs_extra_1.default.ensureFileSync(this.SECRETS_FILE);
279
- fs_extra_1.default.writeJsonSync(this.SECRETS_FILE, secrets, { spaces: 2 });
280
- return secrets;
281
- };
282
- const getSecrets = () => {
283
- if (fs_extra_1.default.pathExistsSync(this.SECRETS_FILE)) {
284
- try {
285
- const secrets = fs_extra_1.default.readJsonSync(this.SECRETS_FILE);
286
- if (!secrets.jwtAccessKey || !secrets.jwtRefreshKey) {
287
- return createSecrets();
288
- }
289
- else {
290
- return secrets;
291
- }
292
- }
293
- catch {
294
- return createSecrets();
295
- }
296
- }
297
- else {
298
- return createSecrets();
299
- }
300
- };
301
- this.SECRETS = getSecrets();
302
- }
303
- static extractVersion(str) {
304
- const regex = /(?:[>=^]*)(\d+\.\d+\.\d+(?:-[a-zA-Z0-9.]+)?)/;
305
- const matches = str.match(regex);
306
- if (matches && matches[1]) {
307
- return matches[1];
308
- }
309
- else {
310
- return null;
311
- }
312
- }
313
- };
314
- exports.ConfigService = ConfigService;
315
- exports.ConfigService = ConfigService = ConfigService_1 = __decorate([
316
- (0, tsyringe_1.scoped)(tsyringe_1.Lifecycle.ContainerScoped),
317
- __metadata("design:paramtypes", [])
318
- ], ConfigService);
319
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../src/services/config/index.ts"],"names":[],"mappings":"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"}
@@ -1,13 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.RUNTIME_STATUS = void 0;
4
- var RUNTIME_STATUS;
5
- (function (RUNTIME_STATUS) {
6
- RUNTIME_STATUS["READY"] = "ready";
7
- RUNTIME_STATUS["STARTING"] = "starting";
8
- RUNTIME_STATUS["STARTED"] = "started";
9
- RUNTIME_STATUS["STOPPED"] = "stopped";
10
- RUNTIME_STATUS["ERROR"] = "error";
11
- RUNTIME_STATUS["UNKNOWN"] = "unknown";
12
- })(RUNTIME_STATUS || (exports.RUNTIME_STATUS = RUNTIME_STATUS = {}));
13
- //# sourceMappingURL=types.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../../../src/services/config/types.ts"],"names":[],"mappings":";;;AAUA,IAAkB,cAOjB;AAPD,WAAkB,cAAc;IAC9B,iCAAe,CAAA;IACf,uCAAqB,CAAA;IACrB,qCAAmB,CAAA;IACnB,qCAAmB,CAAA;IACnB,iCAAe,CAAA;IACf,qCAAmB,CAAA;AACrB,CAAC,EAPiB,cAAc,8BAAd,cAAc,QAO/B"}
@@ -1,181 +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.Logger = exports.PluginLogger = void 0;
13
- require("reflect-metadata");
14
- const chalk_1 = require("chalk");
15
- const uuid_1 = require("uuid");
16
- const tsyringe_1 = require("tsyringe");
17
- const ws_1 = require("../../api/ws");
18
- class PluginLogger {
19
- subprefix;
20
- logger;
21
- get prefix() {
22
- return `${this.logger.prefix} ${(0, chalk_1.cyan)(`[${this.subprefix}]`)}`;
23
- }
24
- constructor(subprefix) {
25
- if (process.env.IS_WORKER) {
26
- this.logger = new Logger();
27
- if (process.env.CAMERA_UI_DISABLE_TIMESTAMPS) {
28
- this.logger.disableTimestamps = true;
29
- }
30
- if (process.env.CAMERA_UI_DEBUG) {
31
- this.logger.debugEnabled = true;
32
- }
33
- }
34
- else {
35
- this.logger = tsyringe_1.container.resolve('logger');
36
- }
37
- this.subprefix = subprefix;
38
- }
39
- log(...args) {
40
- console.log(this.prefix, ...args);
41
- }
42
- error(...args) {
43
- console.error(this.prefix, ...args.map((x) => (0, chalk_1.red)(x)));
44
- }
45
- warn(...args) {
46
- console.warn(this.prefix, ...args.map((x) => (0, chalk_1.yellow)(x)));
47
- }
48
- debug(...args) {
49
- console.debug(this.prefix, ...args.map((x) => (0, chalk_1.gray)(x)));
50
- }
51
- }
52
- exports.PluginLogger = PluginLogger;
53
- let Logger = class Logger {
54
- _loggerPrefix = 'camera.ui';
55
- _debugEnabled = false;
56
- _verboseLogging = false;
57
- _disableTimestamps = false;
58
- notifications = [];
59
- get debugEnabled() {
60
- return this._debugEnabled;
61
- }
62
- set debugEnabled(state) {
63
- this._debugEnabled = state;
64
- }
65
- get verboseLogging() {
66
- return this._verboseLogging;
67
- }
68
- set verboseLogging(state) {
69
- this._verboseLogging = state;
70
- }
71
- get disableTimestamps() {
72
- return this._disableTimestamps;
73
- }
74
- set disableTimestamps(state) {
75
- this._disableTimestamps = state;
76
- }
77
- get prefix() {
78
- if (!this.disableTimestamps) {
79
- return (0, chalk_1.white)(`[${this.formatDateTime(new Date())}] `) + (0, chalk_1.blue)(`[${this._loggerPrefix}]`);
80
- }
81
- else {
82
- return (0, chalk_1.blue)(`[${this._loggerPrefix}]`);
83
- }
84
- }
85
- constructor() {
86
- tsyringe_1.container.register('logger', { useValue: this });
87
- }
88
- log(...args) {
89
- console.log(this.prefix, ...args);
90
- }
91
- error(...args) {
92
- console.error(this.prefix, ...args.map((x) => (0, chalk_1.red)(x)));
93
- if (this.notifications.length > 100) {
94
- this.notifications.pop();
95
- }
96
- const notification = this.setNotification('error', ...args);
97
- this.notifications.unshift(notification);
98
- const socketService = tsyringe_1.container.resolve('socketService');
99
- socketService.io?.of?.('/notifications').emit('notifications', notification);
100
- }
101
- warn(...args) {
102
- console.warn(this.prefix, ...args.map((x) => (0, chalk_1.yellow)(x)));
103
- if (this.notifications.length > 100) {
104
- this.notifications.pop();
105
- }
106
- const notification = this.setNotification('warn', ...args);
107
- this.notifications.unshift(notification);
108
- const socketService = tsyringe_1.container.resolve('socketService');
109
- socketService.io?.of?.('/notifications').emit('notifications', notification);
110
- }
111
- debug(...args) {
112
- if (this.debugEnabled) {
113
- console.debug(this.prefix, ...args.map((x) => (0, chalk_1.gray)(x)));
114
- }
115
- }
116
- verbose(...args) {
117
- if (this.verboseLogging) {
118
- console.debug(this.prefix, ...args.map((x) => (0, chalk_1.gray)(x)));
119
- }
120
- }
121
- async notify(title, text, type, link, socket) {
122
- const socketService = tsyringe_1.container.resolve('socketService');
123
- // @ts-ignore
124
- if (socketService.io?.of) {
125
- const notification = {
126
- _id: (0, uuid_1.v4)(),
127
- title,
128
- text,
129
- type,
130
- timestamp: Date.now(),
131
- link,
132
- };
133
- this.debug('New notification', JSON.stringify(notification));
134
- // push notification to every use on /notifications nsp
135
- if (socket) {
136
- const sockets = await socketService.io.of('/notifications').fetchSockets();
137
- for (const _socket of sockets) {
138
- // @ts-ignore
139
- if (_socket.encodedToken === socket.encodedToken) {
140
- _socket.emit('notifications', notification);
141
- }
142
- }
143
- }
144
- else {
145
- socketService.io.of('/notifications').emit('notifications', notification);
146
- }
147
- }
148
- }
149
- setNotification(type, ...args) {
150
- const title = args[1] || 'Notification';
151
- const text = typeof args[0] === 'object' ? JSON.stringify(args[0]) : args[0];
152
- return {
153
- _id: (0, uuid_1.v4)(),
154
- title: title,
155
- text: text,
156
- type: type,
157
- timestamp: Date.now(),
158
- };
159
- }
160
- formatDateTime(date) {
161
- const day = date.getDate().toString().padStart(2, '0');
162
- const month = (date.getMonth() + 1).toString().padStart(2, '0');
163
- const year = date.getFullYear();
164
- const hours = date.getHours().toString().padStart(2, '0');
165
- const minutes = date.getMinutes().toString().padStart(2, '0');
166
- const seconds = date.getSeconds().toString().padStart(2, '0');
167
- return `${day}.${month}.${year}, ${hours}:${minutes}:${seconds}`;
168
- }
169
- };
170
- exports.Logger = Logger;
171
- exports.Logger = Logger = __decorate([
172
- (0, tsyringe_1.registry)([
173
- {
174
- token: 'socketService',
175
- useValue: (0, tsyringe_1.delay)(() => ws_1.SocketService),
176
- },
177
- ]),
178
- (0, tsyringe_1.scoped)(tsyringe_1.Lifecycle.ContainerScoped),
179
- __metadata("design:paramtypes", [])
180
- ], Logger);
181
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../src/services/logger/index.ts"],"names":[],"mappings":"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"}