@camera.ui/browser 0.0.2 → 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 +1 -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,215 +0,0 @@
1
- "use strict";
2
- /**
3
- *
4
- * @url https://github.com/homebridge/homebridge/blob/src/plugin.ts
5
- * (c) Homebridge <https://github.com/homebridge>
6
- *
7
- **/
8
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
9
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
10
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
11
- 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;
12
- return c > 3 && r && Object.defineProperty(target, key, r), r;
13
- };
14
- var __metadata = (this && this.__metadata) || function (k, v) {
15
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
16
- };
17
- var __importDefault = (this && this.__importDefault) || function (mod) {
18
- return (mod && mod.__esModule) ? mod : { "default": mod };
19
- };
20
- Object.defineProperty(exports, "__esModule", { value: true });
21
- exports.Plugin = void 0;
22
- const assert_1 = __importDefault(require("assert"));
23
- const compare_versions_1 = __importDefault(require("compare-versions"));
24
- const path_1 = __importDefault(require("path"));
25
- const fs_extra_1 = __importDefault(require("fs-extra"));
26
- const url_1 = require("url");
27
- const tsyringe_1 = require("tsyringe");
28
- const _1 = require(".");
29
- const config_1 = require("./config");
30
- const config_2 = require("../services/config");
31
- // Workaround for https://github.com/microsoft/TypeScript/issues/43329
32
- const _importDynamic = new Function('modulePath', 'return import(modulePath)');
33
- /**
34
- * Represents a loaded camera.ui plugin.
35
- */
36
- let Plugin = class Plugin {
37
- disabled = false;
38
- logger;
39
- configService;
40
- // private _id!: string;
41
- _info;
42
- _contract;
43
- id;
44
- pluginName;
45
- displayName;
46
- scope;
47
- isESM;
48
- config;
49
- isSymLink;
50
- installPath;
51
- configFile;
52
- storagePath;
53
- main;
54
- loadContext;
55
- pluginInitializer; // default exported function from the plugin that initializes it
56
- pluginConstructor = new Map();
57
- get info() {
58
- return this._info;
59
- }
60
- get contract() {
61
- return this._contract;
62
- }
63
- constructor(pluginName, installPath, packageJSON, pluginId, scope, storagePath) {
64
- this.logger = tsyringe_1.container.resolve('logger');
65
- this.configService = tsyringe_1.container.resolve('configService');
66
- this.id = pluginId;
67
- this._info = this.parsePackageJson(packageJSON, installPath);
68
- this.pluginName = pluginName;
69
- this.displayName = this.info.displayName;
70
- this.scope = scope;
71
- this.installPath = installPath;
72
- this.main = '';
73
- this.isSymLink = fs_extra_1.default.lstatSync(this.installPath).isSymbolicLink();
74
- this.storagePath = path_1.default.resolve(storagePath || this.configService.PLUGINS_STORAGE_PATH, this.pluginName);
75
- this.configFile = path_1.default.resolve(this.storagePath, 'config.json');
76
- this.config = new config_1.PluginConfigService(this.configFile);
77
- // figure out the main module
78
- // exports is available - https://nodejs.org/dist/latest-v14.x/docs/api/packages.html#packages_package_entry_points
79
- if (packageJSON.exports) {
80
- // main entrypoint - https://nodejs.org/dist/latest-v14.x/docs/api/packages.html#packages_main_entry_point_export
81
- if (typeof packageJSON.exports === 'string') {
82
- this.main = packageJSON.exports;
83
- }
84
- else {
85
- // subpath export - https://nodejs.org/dist/latest-v14.x/docs/api/packages.html#packages_subpath_exports
86
- // conditional exports - https://nodejs.org/dist/latest-v14.x/docs/api/packages.html#packages_conditional_exports
87
- const exports = packageJSON.exports.import || packageJSON.exports.require || packageJSON.exports.node || packageJSON.exports.default || packageJSON.exports['.'];
88
- // check if conditional export is nested
89
- if (typeof exports !== 'string') {
90
- if (exports.import) {
91
- this.main = exports.import;
92
- }
93
- else {
94
- this.main = exports.require || exports.node || exports.default;
95
- }
96
- }
97
- else {
98
- this.main = exports;
99
- }
100
- }
101
- }
102
- // exports search was not successful, fallback to package.main, using index.js as fallback
103
- if (!this.main) {
104
- this.main = packageJSON.main || './index.js';
105
- }
106
- // check if it is a ESM module
107
- this.isESM = this.main.endsWith('.mjs') || (this.main.endsWith('.js') && packageJSON.type === 'module');
108
- this.loadContext = {
109
- engines: packageJSON.engines,
110
- dependencies: packageJSON.dependencies,
111
- };
112
- }
113
- getPluginConstructor(pluginName) {
114
- const constructor = this.pluginConstructor.get(pluginName);
115
- if (!constructor) {
116
- throw new Error(`The requested plugin '${pluginName}' was not registered by the plugin '${this.pluginName}'.`);
117
- }
118
- return constructor;
119
- }
120
- initialize(api) {
121
- if (!this.pluginInitializer) {
122
- throw new Error("Tried to initialize a plugin which hasn't been loaded yet!");
123
- }
124
- return this.pluginInitializer(api);
125
- }
126
- async load() {
127
- const context = this.loadContext;
128
- (0, assert_1.default)(context, 'Reached illegal state. Plugin state is undefined!');
129
- this.loadContext = undefined;
130
- // pluck out the camera.ui version requirement
131
- if (!context.engines || !context.engines['camera.ui']) {
132
- throw new Error(`Plugin ${this.installPath} does not contain the 'camera.ui' package in 'engines'.`);
133
- }
134
- const versionRequired = context.engines['camera.ui'];
135
- const nodeVersionRequired = context.engines.node;
136
- // make sure the version is satisfied by the currently running version of camera.ui
137
- if (!compare_versions_1.default.compare(config_2.ConfigService.VERSION.replace(/[^\d.]/g, ''), versionRequired.replace(/[^\d.]/g, ''), '>=')) {
138
- this.logger.warn(`The plugin "${this.pluginName}" requires a camera.ui version of ${versionRequired} which does \
139
- not satisfy the current camera.ui version of ${config_2.ConfigService.VERSION}. You may need to update this plugin (or camera.ui) to a newer version. \
140
- You may face unexpected issues or stability problems running this plugin.`);
141
- }
142
- // make sure the version is satisfied by the currently running version of Node
143
- if (nodeVersionRequired && !compare_versions_1.default.compare(process.version, nodeVersionRequired.replace(/[^\d.]/g, ''), '>=')) {
144
- this.logger.warn(`The plugin "${this.pluginName}" requires Node.js version of ${nodeVersionRequired} which does \
145
- not satisfy the current Node.js version of ${process.version}. You may need to upgrade your installation of Node.js`);
146
- }
147
- const dependencies = context.dependencies || {};
148
- if (dependencies['camera.ui']) {
149
- this.logger.error(`The plugin "${this.pluginName}" defines 'camera.ui' in their 'dependencies' section, \
150
- meaning they carry an additional copy of camera.ui. This not only wastes disk space, but also can cause \
151
- major incompatibility issues and thus is considered bad practice. Please inform the developer to update their plugin!`);
152
- }
153
- const mainPath = path_1.default.join(this.installPath, this.main);
154
- const pluginModules = this.isESM ? await _importDynamic((0, url_1.pathToFileURL)(mainPath).href) : require(mainPath);
155
- if (typeof pluginModules === 'function') {
156
- this.pluginInitializer = pluginModules;
157
- }
158
- else if (pluginModules && typeof pluginModules.default === 'function') {
159
- this.pluginInitializer = pluginModules.default;
160
- }
161
- else {
162
- throw new Error(`Plugin ${this.installPath} does not export a initializer function from main.`);
163
- }
164
- }
165
- registerPlugin(constructor, contract) {
166
- if (this.pluginConstructor.has(contract.pluginName)) {
167
- throw new Error(`Plugin '${contract.pluginName}' tried to register '${contract.pluginName}' which has already been registered!`);
168
- }
169
- this._contract = {
170
- // displayName: contract.displayName,
171
- pluginName: contract.pluginName,
172
- builtIns: contract.builtIns || [],
173
- extension: contract.extension,
174
- };
175
- this.pluginConstructor.set(contract.pluginName, constructor);
176
- }
177
- reparsePackageJson() {
178
- const pjson = _1.PluginManager.loadPackageJSON(this.installPath);
179
- this._info = this.parsePackageJson(pjson, this.installPath);
180
- return this._info;
181
- }
182
- parsePackageJson(pjson, installPath) {
183
- const pluginPackageJson = {
184
- id: this.id,
185
- disabled: this.configService.config?.plugins?.disabledPlugins?.includes(this.pluginName) || false,
186
- private: pjson.private || false,
187
- pluginName: pjson.name,
188
- displayName: pjson.displayName || _1.PluginManager.transformDisplaName(pjson.name),
189
- author: pjson.author ? (typeof pjson.author === 'string' ? pjson.author : pjson.author.name) : undefined,
190
- description: pjson.description ? pjson.description.replace(/(?:https?|ftp):\/\/[\n\S]+/g, '').trim() : pjson.name,
191
- installedVersion: pjson.version || '0.0.0',
192
- latestVersion: pjson.version || '0.0.0',
193
- globalInstall: false,
194
- publicPackage: pjson.private || false,
195
- engines: pjson.engines,
196
- installPath,
197
- links: {
198
- npm: `https://www.npmjs.com/package/${this.pluginName}`,
199
- homepage: pjson.homepage,
200
- },
201
- };
202
- return pluginPackageJson;
203
- }
204
- };
205
- exports.Plugin = Plugin;
206
- exports.Plugin = Plugin = __decorate([
207
- (0, tsyringe_1.registry)([
208
- {
209
- token: 'configService',
210
- useValue: (0, tsyringe_1.delay)(() => config_2.ConfigService),
211
- },
212
- ]),
213
- __metadata("design:paramtypes", [String, String, Object, String, String, String])
214
- ], Plugin);
215
- //# sourceMappingURL=plugin.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"plugin.js","sourceRoot":"","sources":["../../../../../src/plugins/plugin.ts"],"names":[],"mappings":"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"}