@camera.ui/browser 0.0.1

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 (241) hide show
  1. package/CHANGELOG.md +8 -0
  2. package/LICENSE.md +22 -0
  3. package/README.md +1 -0
  4. package/dist/bundle.browser.js +1 -0
  5. package/dist/client/node/src/api.d.ts +5 -0
  6. package/dist/client/node/src/api.js +27 -0
  7. package/dist/client/node/src/api.js.map +1 -0
  8. package/dist/client/node/src/client.d.ts +20 -0
  9. package/dist/client/node/src/client.js +106 -0
  10. package/dist/client/node/src/client.js.map +1 -0
  11. package/dist/client/node/src/index.d.ts +2 -0
  12. package/dist/client/node/src/index.js +19 -0
  13. package/dist/client/node/src/index.js.map +1 -0
  14. package/dist/client/node/src/proxy/cameraDevice/cameraDevice.browser.d.ts +48 -0
  15. package/dist/client/node/src/proxy/cameraDevice/cameraDevice.browser.js +176 -0
  16. package/dist/client/node/src/proxy/cameraDevice/cameraDevice.browser.js.map +1 -0
  17. package/dist/client/node/src/proxy/cameraDevice/cameraDevice.mock.d.ts +1 -0
  18. package/dist/client/node/src/proxy/cameraDevice/cameraDevice.mock.js +3 -0
  19. package/dist/client/node/src/proxy/cameraDevice/cameraDevice.mock.js.map +1 -0
  20. package/dist/client/node/src/proxy/cameraDevice/cameraDevice.node.d.ts +11 -0
  21. package/dist/client/node/src/proxy/cameraDevice/cameraDevice.node.js +51 -0
  22. package/dist/client/node/src/proxy/cameraDevice/cameraDevice.node.js.map +1 -0
  23. package/dist/client/node/src/proxy/cameraDevice/index.d.ts +6 -0
  24. package/dist/client/node/src/proxy/cameraDevice/index.js +11 -0
  25. package/dist/client/node/src/proxy/cameraDevice/index.js.map +1 -0
  26. package/dist/client/node/src/proxy/deviceManager.d.ts +15 -0
  27. package/dist/client/node/src/proxy/deviceManager.js +67 -0
  28. package/dist/client/node/src/proxy/deviceManager.js.map +1 -0
  29. package/dist/client/node/src/proxy/index.d.ts +4 -0
  30. package/dist/client/node/src/proxy/index.js +21 -0
  31. package/dist/client/node/src/proxy/index.js.map +1 -0
  32. package/dist/client/node/src/proxy/pluginsManager.d.ts +9 -0
  33. package/dist/client/node/src/proxy/pluginsManager.js +25 -0
  34. package/dist/client/node/src/proxy/pluginsManager.js.map +1 -0
  35. package/dist/client/node/src/proxy/systemManager.d.ts +9 -0
  36. package/dist/client/node/src/proxy/systemManager.js +25 -0
  37. package/dist/client/node/src/proxy/systemManager.js.map +1 -0
  38. package/dist/client/node/src/socket.d.ts +9 -0
  39. package/dist/client/node/src/socket.js +45 -0
  40. package/dist/client/node/src/socket.js.map +1 -0
  41. package/dist/client/node/src/types.d.ts +22 -0
  42. package/dist/client/node/src/types.js +3 -0
  43. package/dist/client/node/src/types.js.map +1 -0
  44. package/dist/package.json +149 -0
  45. package/dist/shared/common/utils.d.ts +6 -0
  46. package/dist/shared/common/utils.js +66 -0
  47. package/dist/shared/common/utils.js.map +1 -0
  48. package/dist/shared/types/index.d.ts +8 -0
  49. package/dist/shared/types/index.js +23 -0
  50. package/dist/shared/types/index.js.map +1 -0
  51. package/dist/src/api/database/index.d.ts +25 -0
  52. package/dist/src/api/database/index.js +203 -0
  53. package/dist/src/api/database/index.js.map +1 -0
  54. package/dist/src/api/database/types.d.ts +153 -0
  55. package/dist/src/api/database/types.js +3 -0
  56. package/dist/src/api/database/types.js.map +1 -0
  57. package/dist/src/api/go2rtc/api/application.d.ts +8 -0
  58. package/dist/src/api/go2rtc/api/application.js +32 -0
  59. package/dist/src/api/go2rtc/api/application.js.map +1 -0
  60. package/dist/src/api/go2rtc/api/index.d.ts +3 -0
  61. package/dist/src/api/go2rtc/api/index.js +33 -0
  62. package/dist/src/api/go2rtc/api/index.js.map +1 -0
  63. package/dist/src/api/go2rtc/api/snapshot.d.ts +6 -0
  64. package/dist/src/api/go2rtc/api/snapshot.js +22 -0
  65. package/dist/src/api/go2rtc/api/snapshot.js.map +1 -0
  66. package/dist/src/api/go2rtc/api/streams.d.ts +10 -0
  67. package/dist/src/api/go2rtc/api/streams.js +32 -0
  68. package/dist/src/api/go2rtc/api/streams.js.map +1 -0
  69. package/dist/src/api/go2rtc/index.d.ts +3 -0
  70. package/dist/src/api/go2rtc/index.js +13 -0
  71. package/dist/src/api/go2rtc/index.js.map +1 -0
  72. package/dist/src/api/go2rtc/types.d.ts +43 -0
  73. package/dist/src/api/go2rtc/types.js +3 -0
  74. package/dist/src/api/go2rtc/types.js.map +1 -0
  75. package/dist/src/api/middlewares/socketAuth.middleware.d.ts +41 -0
  76. package/dist/src/api/middlewares/socketAuth.middleware.js +90 -0
  77. package/dist/src/api/middlewares/socketAuth.middleware.js.map +1 -0
  78. package/dist/src/api/schemas/backup.schema.d.ts +220 -0
  79. package/dist/src/api/schemas/backup.schema.js +94 -0
  80. package/dist/src/api/schemas/backup.schema.js.map +1 -0
  81. package/dist/src/api/schemas/cameras.schema.d.ts +316 -0
  82. package/dist/src/api/schemas/cameras.schema.js +124 -0
  83. package/dist/src/api/schemas/cameras.schema.js.map +1 -0
  84. package/dist/src/api/schemas/config.schema.d.ts +202 -0
  85. package/dist/src/api/schemas/config.schema.js +94 -0
  86. package/dist/src/api/schemas/config.schema.js.map +1 -0
  87. package/dist/src/api/schemas/go2rtc.schema.d.ts +604 -0
  88. package/dist/src/api/schemas/go2rtc.schema.js +204 -0
  89. package/dist/src/api/schemas/go2rtc.schema.js.map +1 -0
  90. package/dist/src/api/schemas/users.schema.d.ts +515 -0
  91. package/dist/src/api/schemas/users.schema.js +131 -0
  92. package/dist/src/api/schemas/users.schema.js.map +1 -0
  93. package/dist/src/api/services/auth.service.d.ts +20 -0
  94. package/dist/src/api/services/auth.service.js +104 -0
  95. package/dist/src/api/services/auth.service.js.map +1 -0
  96. package/dist/src/api/services/cameras.service.d.ts +40 -0
  97. package/dist/src/api/services/cameras.service.js +535 -0
  98. package/dist/src/api/services/cameras.service.js.map +1 -0
  99. package/dist/src/api/services/plugins.service.d.ts +23 -0
  100. package/dist/src/api/services/plugins.service.js +115 -0
  101. package/dist/src/api/services/plugins.service.js.map +1 -0
  102. package/dist/src/api/services/users.service.d.ts +13 -0
  103. package/dist/src/api/services/users.service.js +54 -0
  104. package/dist/src/api/services/users.service.js.map +1 -0
  105. package/dist/src/api/types/index.d.ts +522 -0
  106. package/dist/src/api/types/index.js +12 -0
  107. package/dist/src/api/types/index.js.map +1 -0
  108. package/dist/src/api/utils/cert.d.ts +17 -0
  109. package/dist/src/api/utils/cert.js +437 -0
  110. package/dist/src/api/utils/cert.js.map +1 -0
  111. package/dist/src/api/ws/index.d.ts +15 -0
  112. package/dist/src/api/ws/index.js +89 -0
  113. package/dist/src/api/ws/index.js.map +1 -0
  114. package/dist/src/api/ws/nsp/logs.d.ts +11 -0
  115. package/dist/src/api/ws/nsp/logs.js +121 -0
  116. package/dist/src/api/ws/nsp/logs.js.map +1 -0
  117. package/dist/src/api/ws/nsp/main.d.ts +9 -0
  118. package/dist/src/api/ws/nsp/main.js +49 -0
  119. package/dist/src/api/ws/nsp/main.js.map +1 -0
  120. package/dist/src/api/ws/nsp/metrics.d.ts +33 -0
  121. package/dist/src/api/ws/nsp/metrics.js +225 -0
  122. package/dist/src/api/ws/nsp/metrics.js.map +1 -0
  123. package/dist/src/api/ws/nsp/notifications.d.ts +11 -0
  124. package/dist/src/api/ws/nsp/notifications.js +39 -0
  125. package/dist/src/api/ws/nsp/notifications.js.map +1 -0
  126. package/dist/src/api/ws/nsp/plugins.d.ts +13 -0
  127. package/dist/src/api/ws/nsp/plugins.js +33 -0
  128. package/dist/src/api/ws/nsp/plugins.js.map +1 -0
  129. package/dist/src/api/ws/nsp/status.d.ts +12 -0
  130. package/dist/src/api/ws/nsp/status.js +41 -0
  131. package/dist/src/api/ws/nsp/status.js.map +1 -0
  132. package/dist/src/api/ws/nsp/streams.d.ts +30 -0
  133. package/dist/src/api/ws/nsp/streams.js +140 -0
  134. package/dist/src/api/ws/nsp/streams.js.map +1 -0
  135. package/dist/src/api/ws/types.d.ts +82 -0
  136. package/dist/src/api/ws/types.js +3 -0
  137. package/dist/src/api/ws/types.js.map +1 -0
  138. package/dist/src/api.d.ts +60 -0
  139. package/dist/src/api.js +66 -0
  140. package/dist/src/api.js.map +1 -0
  141. package/dist/src/camera/index.d.ts +54 -0
  142. package/dist/src/camera/index.js +210 -0
  143. package/dist/src/camera/index.js.map +1 -0
  144. package/dist/src/camera/streaming/peer-connection.d.ts +31 -0
  145. package/dist/src/camera/streaming/peer-connection.js +157 -0
  146. package/dist/src/camera/streaming/peer-connection.js.map +1 -0
  147. package/dist/src/camera/streaming/streaming-session.d.ts +32 -0
  148. package/dist/src/camera/streaming/streaming-session.js +172 -0
  149. package/dist/src/camera/streaming/streaming-session.js.map +1 -0
  150. package/dist/src/camera/streaming/webrtc-connection.d.ts +33 -0
  151. package/dist/src/camera/streaming/webrtc-connection.js +156 -0
  152. package/dist/src/camera/streaming/webrtc-connection.js.map +1 -0
  153. package/dist/src/camera/subscribed.d.ts +6 -0
  154. package/dist/src/camera/subscribed.js +14 -0
  155. package/dist/src/camera/subscribed.js.map +1 -0
  156. package/dist/src/camera/types.d.ts +130 -0
  157. package/dist/src/camera/types.js +3 -0
  158. package/dist/src/camera/types.js.map +1 -0
  159. package/dist/src/go2rtc/index.d.ts +24 -0
  160. package/dist/src/go2rtc/index.js +220 -0
  161. package/dist/src/go2rtc/index.js.map +1 -0
  162. package/dist/src/go2rtc/types.d.ts +14 -0
  163. package/dist/src/go2rtc/types.js +76 -0
  164. package/dist/src/go2rtc/types.js.map +1 -0
  165. package/dist/src/plugins/base.d.ts +19 -0
  166. package/dist/src/plugins/base.js +26 -0
  167. package/dist/src/plugins/base.js.map +1 -0
  168. package/dist/src/plugins/cameraStorage.d.ts +97 -0
  169. package/dist/src/plugins/cameraStorage.js +290 -0
  170. package/dist/src/plugins/cameraStorage.js.map +1 -0
  171. package/dist/src/plugins/child.d.ts +18 -0
  172. package/dist/src/plugins/child.js +140 -0
  173. package/dist/src/plugins/child.js.map +1 -0
  174. package/dist/src/plugins/config.d.ts +113 -0
  175. package/dist/src/plugins/config.js +234 -0
  176. package/dist/src/plugins/config.js.map +1 -0
  177. package/dist/src/plugins/index.d.ts +36 -0
  178. package/dist/src/plugins/index.js +328 -0
  179. package/dist/src/plugins/index.js.map +1 -0
  180. package/dist/src/plugins/plugin.d.ts +47 -0
  181. package/dist/src/plugins/plugin.js +215 -0
  182. package/dist/src/plugins/plugin.js.map +1 -0
  183. package/dist/src/plugins/schema.d.ts +268 -0
  184. package/dist/src/plugins/schema.js +717 -0
  185. package/dist/src/plugins/schema.js.map +1 -0
  186. package/dist/src/plugins/storage.d.ts +28 -0
  187. package/dist/src/plugins/storage.js +45 -0
  188. package/dist/src/plugins/storage.js.map +1 -0
  189. package/dist/src/plugins/types.d.ts +162 -0
  190. package/dist/src/plugins/types.js +21 -0
  191. package/dist/src/plugins/types.js.map +1 -0
  192. package/dist/src/plugins/worker.d.ts +27 -0
  193. package/dist/src/plugins/worker.js +236 -0
  194. package/dist/src/plugins/worker.js.map +1 -0
  195. package/dist/src/proxy/client/cameraDevice.d.ts +29 -0
  196. package/dist/src/proxy/client/cameraDevice.js +171 -0
  197. package/dist/src/proxy/client/cameraDevice.js.map +1 -0
  198. package/dist/src/proxy/client/deviceManager.d.ts +40 -0
  199. package/dist/src/proxy/client/deviceManager.js +239 -0
  200. package/dist/src/proxy/client/deviceManager.js.map +1 -0
  201. package/dist/src/proxy/client/index.d.ts +4 -0
  202. package/dist/src/proxy/client/index.js +21 -0
  203. package/dist/src/proxy/client/index.js.map +1 -0
  204. package/dist/src/proxy/client/pluginsManager.d.ts +35 -0
  205. package/dist/src/proxy/client/pluginsManager.js +237 -0
  206. package/dist/src/proxy/client/pluginsManager.js.map +1 -0
  207. package/dist/src/proxy/client/systemManager.d.ts +29 -0
  208. package/dist/src/proxy/client/systemManager.js +163 -0
  209. package/dist/src/proxy/client/systemManager.js.map +1 -0
  210. package/dist/src/proxy/index.d.ts +20 -0
  211. package/dist/src/proxy/index.js +98 -0
  212. package/dist/src/proxy/index.js.map +1 -0
  213. package/dist/src/proxy/proxies/camera.d.ts +26 -0
  214. package/dist/src/proxy/proxies/camera.js +72 -0
  215. package/dist/src/proxy/proxies/camera.js.map +1 -0
  216. package/dist/src/proxy/proxies/plugin.d.ts +30 -0
  217. package/dist/src/proxy/proxies/plugin.js +110 -0
  218. package/dist/src/proxy/proxies/plugin.js.map +1 -0
  219. package/dist/src/proxy/proxies/server.d.ts +34 -0
  220. package/dist/src/proxy/proxies/server.js +92 -0
  221. package/dist/src/proxy/proxies/server.js.map +1 -0
  222. package/dist/src/proxy/types.d.ts +189 -0
  223. package/dist/src/proxy/types.js +3 -0
  224. package/dist/src/proxy/types.js.map +1 -0
  225. package/dist/src/proxy/utils/generateKeys.d.ts +5 -0
  226. package/dist/src/proxy/utils/generateKeys.js +13 -0
  227. package/dist/src/proxy/utils/generateKeys.js.map +1 -0
  228. package/dist/src/proxy/ws/index.d.ts +21 -0
  229. package/dist/src/proxy/ws/index.js +75 -0
  230. package/dist/src/proxy/ws/index.js.map +1 -0
  231. package/dist/src/services/config/index.d.ts +60 -0
  232. package/dist/src/services/config/index.js +319 -0
  233. package/dist/src/services/config/index.js.map +1 -0
  234. package/dist/src/services/config/types.d.ts +153 -0
  235. package/dist/src/services/config/types.js +13 -0
  236. package/dist/src/services/config/types.js.map +1 -0
  237. package/dist/src/services/logger/index.d.ts +37 -0
  238. package/dist/src/services/logger/index.js +181 -0
  239. package/dist/src/services/logger/index.js.map +1 -0
  240. package/package.json +46 -0
  241. package/webpack.config.js +29 -0
@@ -0,0 +1,203 @@
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
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.Database = void 0;
16
+ const crypto_1 = __importDefault(require("crypto"));
17
+ const pouchdb_1 = __importDefault(require("pouchdb"));
18
+ const pouchdb_adapter_memory_1 = __importDefault(require("pouchdb-adapter-memory"));
19
+ const tsyringe_1 = require("tsyringe");
20
+ let Database = class Database {
21
+ _db;
22
+ _tokensDb;
23
+ _initialized = false;
24
+ _closed = false;
25
+ app;
26
+ configService;
27
+ constructor(app) {
28
+ this.app = app;
29
+ this.configService = tsyringe_1.container.resolve('configService');
30
+ pouchdb_1.default.plugin(pouchdb_adapter_memory_1.default);
31
+ this._db = new pouchdb_1.default(this.configService.DATABASE_PATH, {
32
+ adapter: 'leveldb',
33
+ });
34
+ this._tokensDb = new pouchdb_1.default(this.configService.TOKENS_ID, { adapter: 'memory' });
35
+ tsyringe_1.container.register('dbs', { useValue: this });
36
+ }
37
+ get db() {
38
+ return this._db;
39
+ }
40
+ get tokensDb() {
41
+ return this._tokensDb;
42
+ }
43
+ async close() {
44
+ if (!this._closed) {
45
+ this._closed = true;
46
+ await this.tokensDb.close();
47
+ await this.db.close();
48
+ // logger.warn('databases closed!');
49
+ }
50
+ }
51
+ async initialize() {
52
+ if (!this._initialized) {
53
+ await this.ensureDatabases();
54
+ await this.updateConfig();
55
+ }
56
+ // const camerasDoc = await this.db.get<DBCameras>(this.configService.CAMERAS_ID);
57
+ // const cameras = camerasDoc.cameras || [];
58
+ // for (const camera of cameras) {
59
+ // // @ts-ignore
60
+ // camera.extensions.plugins = [];
61
+ // camera.extensions.hub = [];
62
+ // }
63
+ // await this.db.put(camerasDoc, { force: true });
64
+ return this;
65
+ }
66
+ async updateCameras() {
67
+ const camerasDoc = await this.db.get(this.configService.CAMERAS_ID);
68
+ const cameras = camerasDoc.cameras || [];
69
+ for (const camera of cameras) {
70
+ const go2rtcSources = Object.keys(this.configService.go2rtcConfig.streams);
71
+ for (const source of camera.sources) {
72
+ const sourceName = `${camera.name.replace(/ /g, '_').toLowerCase()}_${source.name}`;
73
+ if (go2rtcSources.includes(sourceName)) {
74
+ const urls = this.configService.go2rtcConfig.streams[sourceName];
75
+ source.urls = urls ? (typeof urls === 'string' ? [urls] : urls) : ['null'];
76
+ }
77
+ }
78
+ }
79
+ await this.db.put(camerasDoc, { force: true });
80
+ }
81
+ async createPluginDatabase(plugin) {
82
+ const pluginDb = new pouchdb_1.default(`${plugin.storagePath}/volume`, {
83
+ adapter: 'leveldb',
84
+ });
85
+ try {
86
+ await pluginDb.get('config');
87
+ }
88
+ catch (err) {
89
+ if (err.name !== 'not_found') {
90
+ throw err;
91
+ }
92
+ await pluginDb.put({
93
+ _id: 'config',
94
+ config: {},
95
+ }, { force: true });
96
+ }
97
+ finally {
98
+ await pluginDb.close();
99
+ }
100
+ }
101
+ async ensureDatabases() {
102
+ await this._tokensDb.put({
103
+ _id: this.configService.TOKENS_ID,
104
+ tokens: [],
105
+ clients: [],
106
+ }, { force: true });
107
+ try {
108
+ await this._db.get(this.configService.CAMERAS_ID);
109
+ }
110
+ catch (err) {
111
+ if (err.name !== 'not_found') {
112
+ throw err;
113
+ }
114
+ await this._db.put({
115
+ _id: this.configService.CAMERAS_ID,
116
+ cameras: [],
117
+ }, { force: true });
118
+ }
119
+ try {
120
+ await this._db.get(this.configService.USERS_ID);
121
+ }
122
+ catch (error) {
123
+ if (error.name !== 'not_found') {
124
+ throw error;
125
+ }
126
+ await this._db.put({
127
+ _id: this.configService.USERS_ID,
128
+ users: [this.generateAdmin()],
129
+ }, { force: true });
130
+ }
131
+ try {
132
+ await this._db.get(this.configService.PLUGINS_ID);
133
+ }
134
+ catch (error) {
135
+ if (error.name !== 'not_found') {
136
+ throw error;
137
+ }
138
+ await this._db.put({
139
+ _id: this.configService.PLUGINS_ID,
140
+ plugins: [],
141
+ }, { force: true });
142
+ }
143
+ try {
144
+ await this._db.get(this.configService.SETTINGS_ID);
145
+ }
146
+ catch (error) {
147
+ if (error.name !== 'not_found') {
148
+ throw error;
149
+ }
150
+ await this._db.put({
151
+ _id: this.configService.SETTINGS_ID,
152
+ settings: {},
153
+ }, { force: true });
154
+ }
155
+ this._initialized = true;
156
+ }
157
+ async updateConfig() {
158
+ const camerasDoc = await this.db.get(this.configService.CAMERAS_ID);
159
+ const cameras = camerasDoc.cameras || [];
160
+ for (const camera of cameras) {
161
+ const go2rtcSources = Object.keys(this.configService.go2rtcConfig.streams);
162
+ for (const source of camera.sources) {
163
+ const sourceName = `${camera.name.replace(/ /g, '_').toLowerCase()}_${source.name}`;
164
+ if (!go2rtcSources.includes(sourceName)) {
165
+ const urls = source.urls[0] === null ? null : source.urls;
166
+ this.configService.go2rtcConfig.streams[sourceName] = urls;
167
+ }
168
+ else {
169
+ const urls = this.configService.go2rtcConfig.streams[sourceName];
170
+ source.urls = urls ? (typeof urls === 'string' ? [urls] : urls) : ['null'];
171
+ }
172
+ }
173
+ }
174
+ await this.db.put(camerasDoc, { force: true });
175
+ this.configService.writeGo2RtcConfig();
176
+ }
177
+ generateAdmin() {
178
+ const salt = crypto_1.default.randomBytes(16).toString('base64');
179
+ const hash = crypto_1.default.createHmac('sha512', salt).update('admin').digest('base64');
180
+ return {
181
+ _id: '1',
182
+ avatar: 'logo-256.png',
183
+ username: 'admin',
184
+ password: salt + '$' + hash,
185
+ sessionTimer: 14400,
186
+ role: 'admin',
187
+ rememberMe: false,
188
+ firstLogin: true,
189
+ oneLogin: false,
190
+ preferences: {
191
+ camview: {
192
+ grids: [],
193
+ },
194
+ },
195
+ };
196
+ }
197
+ };
198
+ exports.Database = Database;
199
+ exports.Database = Database = __decorate([
200
+ (0, tsyringe_1.scoped)(tsyringe_1.Lifecycle.ContainerScoped),
201
+ __metadata("design:paramtypes", [Object])
202
+ ], Database);
203
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../src/api/database/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,153 @@
1
+ import type { JwtTokenEncoded, ClientData } from '../types';
2
+ export interface DBSettings {
3
+ _id: string;
4
+ _rev?: string;
5
+ settings: DBSetting;
6
+ }
7
+ export interface DBSetting {
8
+ }
9
+ export interface DBTokens {
10
+ _id: string;
11
+ _rev?: string;
12
+ tokens: JwtTokenEncoded[];
13
+ clients: ClientData[];
14
+ }
15
+ export interface DBUsers {
16
+ _id: string;
17
+ _rev?: string;
18
+ users: DBUser[];
19
+ }
20
+ export interface DBUser {
21
+ _id: string;
22
+ avatar: string;
23
+ username: string;
24
+ password: string;
25
+ sessionTimer: number;
26
+ role: DBRoles;
27
+ rememberMe: boolean;
28
+ oneLogin: boolean;
29
+ firstLogin: boolean;
30
+ preferences: DBUserPreferences;
31
+ }
32
+ export type DBRoles = 'admin' | 'user';
33
+ export interface DBUserPreferences {
34
+ camview: {
35
+ grids: DBCamviewLayout[];
36
+ };
37
+ }
38
+ export interface DBCamviewLayout {
39
+ _id: string;
40
+ name: string;
41
+ cameras: DBCamviewLayoutCamera[];
42
+ }
43
+ export interface DBCamviewLayoutCamera {
44
+ _id: string;
45
+ name: string;
46
+ }
47
+ export interface DBPlugins {
48
+ _id: string;
49
+ _rev?: string;
50
+ plugins: DBPlugin[];
51
+ }
52
+ export interface DBPlugin {
53
+ _id: string;
54
+ pluginName: string;
55
+ storage: DBPluginStorage;
56
+ }
57
+ export interface DBPluginStorage {
58
+ [key: string]: {
59
+ config: DBPluginStorageValue;
60
+ };
61
+ }
62
+ export interface DBPluginStorageValue {
63
+ [key: string]: any;
64
+ }
65
+ export interface DBCameras {
66
+ _id: string;
67
+ _rev?: string;
68
+ cameras: DBCamera[];
69
+ }
70
+ export interface BaseCamera {
71
+ _id: string;
72
+ nativeId?: string;
73
+ pluginId: string;
74
+ name: string;
75
+ disabled: boolean;
76
+ model: string;
77
+ type: CameraType;
78
+ }
79
+ export interface DBCamera extends BaseCamera {
80
+ sources: CameraInputSettings[];
81
+ extensions: CameraExtensions;
82
+ interface: CameraUiSettings;
83
+ recording: CameraRecordingSettings;
84
+ }
85
+ export interface Camera extends BaseCamera {
86
+ sources: CameraInput[];
87
+ }
88
+ export type CameraType = 'camera' | 'doorbell';
89
+ export interface CameraBranding {
90
+ model: string;
91
+ manufacturer: string;
92
+ hardware: string;
93
+ serialNumber: string;
94
+ firmwareVersion: string;
95
+ supportUrl: string;
96
+ }
97
+ export interface CameraExtensions {
98
+ hub?: string[];
99
+ prebuffer?: string;
100
+ motionDetection?: string;
101
+ soundDetection?: string;
102
+ objectDetection?: string;
103
+ intercom?: string;
104
+ ptz?: string;
105
+ plugins: string[];
106
+ }
107
+ export interface CameraRecordingSettings {
108
+ enabled: boolean;
109
+ }
110
+ export interface CameraInputSettings {
111
+ name: string;
112
+ roles: CameraRoles[];
113
+ urls: string[];
114
+ }
115
+ export interface Go2RtcRTSPSource {
116
+ single: string;
117
+ default: string;
118
+ mp4: string;
119
+ }
120
+ export interface Go2RtcEndpoint {
121
+ webrtc: string;
122
+ mse: string;
123
+ lmp4: string;
124
+ mmp4: string;
125
+ mp4: string;
126
+ mp4Snapshot: string;
127
+ jpegSnapshot: string;
128
+ lHlsTs: string;
129
+ lHlsFmp4: string;
130
+ mHlsFmp4: string;
131
+ mjpeg: string;
132
+ mjpegHtml: string;
133
+ }
134
+ export interface Go2RtcFFMPEGSource {
135
+ aac: string;
136
+ opus: string;
137
+ }
138
+ export interface Go2RtcSources {
139
+ webrtc: string;
140
+ rtsp: Go2RtcRTSPSource;
141
+ ffmpeg: Go2RtcFFMPEGSource;
142
+ endpoint: Go2RtcEndpoint;
143
+ }
144
+ export interface CameraInput {
145
+ name: string;
146
+ roles: CameraRoles[];
147
+ sources: Go2RtcSources;
148
+ }
149
+ export type CameraRoles = 'detect' | 'record' | 'stream' | 'snapshot' | 'none';
150
+ export interface CameraUiSettings {
151
+ streamingModes: VideoStreamingMode[];
152
+ }
153
+ export type VideoStreamingMode = 'webrtc' | 'mse' | 'webrtc/tcp' | 'mjpeg' | 'hls' | 'mp4';
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../../../src/api/database/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,8 @@
1
+ import type { ApplicationResponse } from '../types';
2
+ declare class ApplicationService {
3
+ close(query: any): Promise<void>;
4
+ info(): Promise<ApplicationResponse>;
5
+ restart(): Promise<void>;
6
+ }
7
+ declare const _default: ApplicationService;
8
+ export default _default;
@@ -0,0 +1,32 @@
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
+ const _1 = __importDefault(require("."));
7
+ const utils_1 = require("../../../../shared/common/utils");
8
+ class ApplicationService {
9
+ async close(query) {
10
+ try {
11
+ await (0, _1.default)().post('/exit', null, { params: query });
12
+ }
13
+ catch {
14
+ // Do nothing
15
+ }
16
+ }
17
+ async info() {
18
+ const response = await (0, _1.default)().get('');
19
+ return response.data;
20
+ }
21
+ async restart() {
22
+ try {
23
+ await (0, _1.default)().post('/restart');
24
+ await (0, utils_1.sleep)(250);
25
+ }
26
+ catch {
27
+ // Do nothing
28
+ }
29
+ }
30
+ }
31
+ exports.default = new ApplicationService();
32
+ //# sourceMappingURL=application.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"application.js","sourceRoot":"","sources":["../../../../../../../src/api/go2rtc/api/application.ts"],"names":[],"mappings":";;;;;AAAA,yCAAoB;AAEpB,2DAAwD;AAKxD,MAAM,kBAAkB;IACtB,KAAK,CAAC,KAAK,CAAC,KAAU;QACpB,IAAI,CAAC;YACH,MAAM,IAAA,UAAG,GAAE,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;QACrD,CAAC;QAAC,MAAM,CAAC;YACP,aAAa;QACf,CAAC;IACH,CAAC;IAED,KAAK,CAAC,IAAI;QACR,MAAM,QAAQ,GAAuC,MAAM,IAAA,UAAG,GAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACzE,OAAO,QAAQ,CAAC,IAAI,CAAC;IACvB,CAAC;IAED,KAAK,CAAC,OAAO;QACX,IAAI,CAAC;YACH,MAAM,IAAA,UAAG,GAAE,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YAC7B,MAAM,IAAA,aAAK,EAAC,GAAG,CAAC,CAAC;QACnB,CAAC;QAAC,MAAM,CAAC;YACP,aAAa;QACf,CAAC;IACH,CAAC;CACF;AAED,kBAAe,IAAI,kBAAkB,EAAE,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { type AxiosInstance } from 'axios';
2
+ declare const api: () => AxiosInstance;
3
+ export default api;
@@ -0,0 +1,33 @@
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
+ const axios_1 = __importDefault(require("axios"));
7
+ const tsyringe_1 = require("tsyringe");
8
+ const api = () => {
9
+ const configService = tsyringe_1.container.resolve('configService');
10
+ const GO2RTC_URL = `http://localhost${configService.go2rtcConfig.api.listen}`;
11
+ const GO2RTC_USERNAME = configService.go2rtcConfig.api.username;
12
+ const GO2RTC_PASSWORD = configService.go2rtcConfig.api.password;
13
+ const axiosInstance = axios_1.default.create({
14
+ baseURL: `${GO2RTC_URL}/api`,
15
+ });
16
+ axiosInstance.interceptors.request.use((config) => {
17
+ config.auth = {
18
+ username: GO2RTC_USERNAME,
19
+ password: GO2RTC_PASSWORD,
20
+ };
21
+ const source = axios_1.default.CancelToken.source();
22
+ config.cancelToken = source.token;
23
+ setTimeout(() => {
24
+ source.cancel('Timeout: request took more than 15 seconds');
25
+ }, 15000);
26
+ return config;
27
+ }, (error) => {
28
+ return Promise.reject(error);
29
+ });
30
+ return axiosInstance;
31
+ };
32
+ exports.default = api;
33
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../src/api/go2rtc/api/index.ts"],"names":[],"mappings":";;;;;AAAA,kDAAkD;AAClD,uCAAqC;AAIrC,MAAM,GAAG,GAAG,GAAkB,EAAE;IAC9B,MAAM,aAAa,GAAG,oBAAS,CAAC,OAAO,CAAgB,eAAe,CAAC,CAAC;IAExE,MAAM,UAAU,GAAG,mBAAmB,aAAa,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC;IAC9E,MAAM,eAAe,GAAG,aAAa,CAAC,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC;IAChE,MAAM,eAAe,GAAG,aAAa,CAAC,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC;IAEhE,MAAM,aAAa,GAAG,eAAK,CAAC,MAAM,CAAC;QACjC,OAAO,EAAE,GAAG,UAAU,MAAM;KAC7B,CAAC,CAAC;IAEH,aAAa,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,CACpC,CAAC,MAAM,EAAE,EAAE;QACT,MAAM,CAAC,IAAI,GAAG;YACZ,QAAQ,EAAE,eAAe;YACzB,QAAQ,EAAE,eAAe;SAC1B,CAAC;QAEF,MAAM,MAAM,GAAG,eAAK,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC;QAC1C,MAAM,CAAC,WAAW,GAAG,MAAM,CAAC,KAAK,CAAC;QAElC,UAAU,CAAC,GAAG,EAAE;YACd,MAAM,CAAC,MAAM,CAAC,4CAA4C,CAAC,CAAC;QAC9D,CAAC,EAAE,KAAK,CAAC,CAAC;QAEV,OAAO,MAAM,CAAC;IAChB,CAAC,EACD,CAAC,KAAU,EAAE,EAAE;QACb,OAAO,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC/B,CAAC,CACF,CAAC;IAEF,OAAO,aAAa,CAAC;AACvB,CAAC,CAAC;AAEF,kBAAe,GAAG,CAAC"}
@@ -0,0 +1,6 @@
1
+ declare class SnapshotService {
2
+ jpeg(data: any): Promise<string>;
3
+ mp4(data: any): Promise<string>;
4
+ }
5
+ declare const _default: SnapshotService;
6
+ export default _default;
@@ -0,0 +1,22 @@
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
+ const _1 = __importDefault(require("."));
7
+ class SnapshotService {
8
+ async jpeg(data) {
9
+ const response = await (0, _1.default)().get(`/frame.jpeg?src=${data.name}`, {
10
+ responseType: 'arraybuffer',
11
+ });
12
+ return response.data;
13
+ }
14
+ async mp4(data) {
15
+ const response = await (0, _1.default)().get(`/frame.mp4?src=${data.name}`, {
16
+ responseType: 'arraybuffer',
17
+ });
18
+ return response.data;
19
+ }
20
+ }
21
+ exports.default = new SnapshotService();
22
+ //# sourceMappingURL=snapshot.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"snapshot.js","sourceRoot":"","sources":["../../../../../../../src/api/go2rtc/api/snapshot.ts"],"names":[],"mappings":";;;;;AAAA,yCAAoB;AAIpB,MAAM,eAAe;IACnB,KAAK,CAAC,IAAI,CAAC,IAAS;QAClB,MAAM,QAAQ,GAA0B,MAAM,IAAA,UAAG,GAAE,CAAC,GAAG,CAAC,mBAAmB,IAAI,CAAC,IAAI,EAAE,EAAE;YACtF,YAAY,EAAE,aAAa;SAC5B,CAAC,CAAC;QACH,OAAO,QAAQ,CAAC,IAAI,CAAC;IACvB,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,IAAS;QACjB,MAAM,QAAQ,GAA0B,MAAM,IAAA,UAAG,GAAE,CAAC,GAAG,CAAC,kBAAkB,IAAI,CAAC,IAAI,EAAE,EAAE;YACrF,YAAY,EAAE,aAAa;SAC5B,CAAC,CAAC;QACH,OAAO,QAAQ,CAAC,IAAI,CAAC;IACvB,CAAC;CACF;AAED,kBAAe,IAAI,eAAe,EAAE,CAAC"}
@@ -0,0 +1,10 @@
1
+ import type { AxiosResponse } from 'axios';
2
+ declare class StreamsService {
3
+ createStream(data: any): Promise<AxiosResponse>;
4
+ deleteStream(data: any): Promise<AxiosResponse>;
5
+ getStreamInfo(data: any): Promise<AxiosResponse>;
6
+ sendStreamToDst(data: any): Promise<AxiosResponse>;
7
+ updateStreamSource(data: any): Promise<AxiosResponse>;
8
+ }
9
+ declare const _default: StreamsService;
10
+ export default _default;
@@ -0,0 +1,32 @@
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
+ const _1 = __importDefault(require("."));
7
+ const utils_1 = require("../../../../shared/common/utils");
8
+ class StreamsService {
9
+ async createStream(data) {
10
+ const response = await (0, _1.default)().put('/streams', null, { params: data });
11
+ return response.data;
12
+ }
13
+ async deleteStream(data) {
14
+ const query = (0, utils_1.dataToQuery)(data);
15
+ const response = await (0, _1.default)().delete(`/streams${query}`);
16
+ return response.data;
17
+ }
18
+ async getStreamInfo(data) {
19
+ const response = await (0, _1.default)().get('/streams', { params: data });
20
+ return response.data;
21
+ }
22
+ async sendStreamToDst(data) {
23
+ const response = await (0, _1.default)().post('/streams', null, { params: data });
24
+ return response.data;
25
+ }
26
+ async updateStreamSource(data) {
27
+ const response = await (0, _1.default)().patch('/streams', null, { params: data });
28
+ return response.data;
29
+ }
30
+ }
31
+ exports.default = new StreamsService();
32
+ //# sourceMappingURL=streams.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"streams.js","sourceRoot":"","sources":["../../../../../../../src/api/go2rtc/api/streams.ts"],"names":[],"mappings":";;;;;AAAA,yCAAoB;AACpB,2DAA8D;AAI9D,MAAM,cAAc;IAClB,KAAK,CAAC,YAAY,CAAC,IAAS;QAC1B,MAAM,QAAQ,GAAkB,MAAM,IAAA,UAAG,GAAE,CAAC,GAAG,CAAC,UAAU,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;QACpF,OAAO,QAAQ,CAAC,IAAI,CAAC;IACvB,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,IAAS;QAC1B,MAAM,KAAK,GAAG,IAAA,mBAAW,EAAC,IAAI,CAAC,CAAC;QAChC,MAAM,QAAQ,GAAkB,MAAM,IAAA,UAAG,GAAE,CAAC,MAAM,CAAC,WAAW,KAAK,EAAE,CAAC,CAAC;QACvE,OAAO,QAAQ,CAAC,IAAI,CAAC;IACvB,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,IAAS;QAC3B,MAAM,QAAQ,GAAkB,MAAM,IAAA,UAAG,GAAE,CAAC,GAAG,CAAC,UAAU,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;QAC9E,OAAO,QAAQ,CAAC,IAAI,CAAC;IACvB,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,IAAS;QAC7B,MAAM,QAAQ,GAAkB,MAAM,IAAA,UAAG,GAAE,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;QACrF,OAAO,QAAQ,CAAC,IAAI,CAAC;IACvB,CAAC;IAED,KAAK,CAAC,kBAAkB,CAAC,IAAS;QAChC,MAAM,QAAQ,GAAkB,MAAM,IAAA,UAAG,GAAE,CAAC,KAAK,CAAC,UAAU,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;QACtF,OAAO,QAAQ,CAAC,IAAI,CAAC;IACvB,CAAC;CACF;AAED,kBAAe,IAAI,cAAc,EAAE,CAAC"}
@@ -0,0 +1,3 @@
1
+ export { default as ApplicationApi } from './api/application';
2
+ export { default as StreamsService } from './api/streams';
3
+ export { default as SnapshotService } from './api/snapshot';
@@ -0,0 +1,13 @@
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.SnapshotService = exports.StreamsService = exports.ApplicationApi = void 0;
7
+ var application_1 = require("./api/application");
8
+ Object.defineProperty(exports, "ApplicationApi", { enumerable: true, get: function () { return __importDefault(application_1).default; } });
9
+ var streams_1 = require("./api/streams");
10
+ Object.defineProperty(exports, "StreamsService", { enumerable: true, get: function () { return __importDefault(streams_1).default; } });
11
+ var snapshot_1 = require("./api/snapshot");
12
+ Object.defineProperty(exports, "SnapshotService", { enumerable: true, get: function () { return __importDefault(snapshot_1).default; } });
13
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../src/api/go2rtc/index.ts"],"names":[],"mappings":";;;;;;AAAA,iDAA8D;AAArD,8HAAA,OAAO,OAAkB;AAClC,yCAA0D;AAAjD,0HAAA,OAAO,OAAkB;AAClC,2CAA4D;AAAnD,4HAAA,OAAO,OAAmB"}
@@ -0,0 +1,43 @@
1
+ export interface ApplicationResponse {
2
+ config_path: string;
3
+ host: string;
4
+ rtsp: RTSP;
5
+ version: string;
6
+ }
7
+ export interface RTSP {
8
+ listen: string;
9
+ default_query: string;
10
+ PacketSize: number;
11
+ }
12
+ export interface StreamInfoResponse {
13
+ producers: Consumer[];
14
+ consumers: Consumer[];
15
+ }
16
+ export interface Consumer {
17
+ type: string;
18
+ url: string;
19
+ remote_addr: string;
20
+ user_agent: string;
21
+ sdp: string;
22
+ medias: string[];
23
+ senders?: string[];
24
+ send?: number;
25
+ receivers?: string[];
26
+ recv?: number;
27
+ }
28
+ export interface HomeKitResponse {
29
+ sources: HomeKitSource[];
30
+ }
31
+ export interface HomeKitSource {
32
+ name: string;
33
+ info: string;
34
+ url: string;
35
+ location: string;
36
+ }
37
+ export interface OnvifResponse {
38
+ sources: OnvifSource[];
39
+ }
40
+ export interface OnvifSource {
41
+ name: string;
42
+ url: string;
43
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../../../src/api/go2rtc/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,41 @@
1
+ import type { Algorithm } from 'jsonwebtoken';
2
+ import type { Socket } from 'socket.io';
3
+ export declare class UnauthorizedError extends Error {
4
+ inner: {
5
+ message: string;
6
+ };
7
+ data: {
8
+ message: string;
9
+ code: string;
10
+ type: 'UnauthorizedError';
11
+ };
12
+ constructor(code: string, error: {
13
+ message: string;
14
+ });
15
+ }
16
+ export declare const isUnauthorizedError: (error: unknown) => error is UnauthorizedError;
17
+ declare module 'socket.io' {
18
+ interface Socket extends ExtendedSocket {
19
+ }
20
+ }
21
+ interface ExtendedSocket {
22
+ encodedToken?: string;
23
+ decodedToken?: any;
24
+ user?: any;
25
+ }
26
+ type SocketIOMiddleware = (socket: Socket, next: (error?: UnauthorizedError) => void) => void;
27
+ interface CompleteDecodedToken {
28
+ header: {
29
+ alg: Algorithm;
30
+ [key: string]: any;
31
+ };
32
+ payload: any;
33
+ }
34
+ type SecretCallback = (decodedToken: CompleteDecodedToken) => Promise<string> | string;
35
+ export interface AuthorizeOptions {
36
+ secret: string | SecretCallback;
37
+ algorithms?: Algorithm[];
38
+ onAuthentication?: (decodedToken: any) => Promise<any> | any;
39
+ }
40
+ export declare const authorize: (options: AuthorizeOptions) => SocketIOMiddleware;
41
+ export {};