@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,115 +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
- const tsyringe_1 = require("tsyringe");
13
- const uuid_1 = require("uuid");
14
- const database_1 = require("../database");
15
- const plugins_1 = require("../../plugins");
16
- let PluginsService = class PluginsService {
17
- configService;
18
- dbs;
19
- pluginManager;
20
- constructor() {
21
- this.configService = tsyringe_1.container.resolve('configService');
22
- this.dbs = tsyringe_1.container.resolve('dbs');
23
- this.pluginManager = tsyringe_1.container.resolve('pluginManager');
24
- }
25
- // installed plugins
26
- getPluginByName(pluginName) {
27
- const installedPlugins = this.installedPlugins();
28
- const plugin = installedPlugins.find((plugin) => plugin.pluginName === pluginName);
29
- return plugin;
30
- }
31
- getPluginById(id) {
32
- const installedPlugins = this.installedPlugins();
33
- const plugin = installedPlugins.find((plugin) => plugin.id === id);
34
- return plugin;
35
- }
36
- getPluginProcessByName(pluginName) {
37
- const installedPluginsProcesses = this.installedPluginProcesses();
38
- const plugin = installedPluginsProcesses.find((pluginProcess) => pluginProcess.plugin.pluginName === pluginName);
39
- return plugin;
40
- }
41
- getPluginProcessById(id) {
42
- const installedPluginsProcesses = this.installedPluginProcesses();
43
- const plugin = installedPluginsProcesses.find((pluginProcess) => pluginProcess.plugin.id === id);
44
- return plugin;
45
- }
46
- installedPlugins() {
47
- return Array.from(this.pluginManager.plugins).map(([, plugin]) => plugin);
48
- }
49
- installedPluginProcesses() {
50
- return Array.from(this.pluginManager.pluginWorkers).map(([, plugin]) => plugin);
51
- }
52
- // db plugins
53
- async listPluginDb() {
54
- const pluginsDoc = await this.dbs.db.get(this.configService.PLUGINS_ID);
55
- return pluginsDoc.plugins || [];
56
- }
57
- async getPluginDbByName(pluginName) {
58
- const pluginsDoc = await this.dbs.db.get(this.configService.PLUGINS_ID);
59
- return pluginsDoc.plugins.find((pluginObj) => pluginObj.pluginName === pluginName);
60
- }
61
- async getPluginDbById(id) {
62
- const pluginsDoc = await this.dbs.db.get(this.configService.PLUGINS_ID);
63
- return pluginsDoc.plugins.find((pluginObj) => pluginObj._id === id);
64
- }
65
- async insertPluginDb(pluginName) {
66
- const pluginsDoc = await this.dbs.db.get(this.configService.PLUGINS_ID);
67
- const pluginExist = pluginsDoc.plugins.find((pluginObj) => pluginObj.pluginName === pluginName);
68
- if (pluginExist) {
69
- return pluginExist;
70
- }
71
- const pluginData = {
72
- _id: (0, uuid_1.v4)(),
73
- pluginName,
74
- storage: {},
75
- };
76
- pluginsDoc.plugins.push(pluginData);
77
- await this.dbs.db.put(pluginsDoc, { force: true });
78
- return pluginData;
79
- }
80
- async removePluginDbByName(pluginName) {
81
- const pluginsDoc = await this.dbs.db.get(this.configService.PLUGINS_ID);
82
- pluginsDoc.plugins = pluginsDoc.plugins.filter((pluginObj) => pluginObj.pluginName !== pluginName);
83
- await this.dbs.db.put(pluginsDoc, { force: true });
84
- }
85
- async removePluginDbById(id) {
86
- const pluginsDoc = await this.dbs.db.get(this.configService.PLUGINS_ID);
87
- pluginsDoc.plugins = pluginsDoc.plugins.filter((pluginObj) => pluginObj._id !== id);
88
- await this.dbs.db.put(pluginsDoc, { force: true });
89
- }
90
- async removeAllPluginsDb() {
91
- const pluginsDoc = await this.dbs.db.get(this.configService.PLUGINS_ID);
92
- pluginsDoc.plugins = [];
93
- await this.dbs.db.put(pluginsDoc, { force: true });
94
- }
95
- async removeOrphanPluginsDb() {
96
- const pluginsDoc = await this.dbs.db.get(this.configService.PLUGINS_ID);
97
- pluginsDoc.plugins = pluginsDoc.plugins.filter((pluginObj) => Boolean(this.getPluginByName(pluginObj.pluginName)));
98
- await this.dbs.db.put(pluginsDoc, { force: true });
99
- }
100
- };
101
- PluginsService = __decorate([
102
- (0, tsyringe_1.registry)([
103
- {
104
- token: 'dbs',
105
- useValue: (0, tsyringe_1.delay)(() => database_1.Database),
106
- },
107
- {
108
- token: 'pluginManager',
109
- useValue: (0, tsyringe_1.delay)(() => plugins_1.PluginManager),
110
- },
111
- ]),
112
- __metadata("design:paramtypes", [])
113
- ], PluginsService);
114
- exports.default = PluginsService;
115
- //# sourceMappingURL=plugins.service.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"plugins.service.js","sourceRoot":"","sources":["../../../../../../src/api/services/plugins.service.ts"],"names":[],"mappings":"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"}
@@ -1,54 +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
- const lodash_mergewith_1 = __importDefault(require("lodash.mergewith"));
7
- const tsyringe_1 = require("tsyringe");
8
- class UsersService {
9
- configService;
10
- dbs;
11
- constructor() {
12
- this.configService = tsyringe_1.container.resolve('configService');
13
- this.dbs = tsyringe_1.container.resolve('dbs');
14
- }
15
- async createUser(userData) {
16
- const usersDoc = await this.dbs.db.get(this.configService.USERS_ID);
17
- usersDoc.users.push(userData);
18
- await this.dbs.db.put(usersDoc, { force: true });
19
- return userData;
20
- }
21
- async findById(id) {
22
- const usersDoc = await this.dbs.db.get(this.configService.USERS_ID);
23
- return usersDoc.users?.find((userObj) => userObj._id === id);
24
- }
25
- async findByName(username) {
26
- const usersDoc = await this.dbs.db.get(this.configService.USERS_ID);
27
- return usersDoc.users?.find((userObj) => userObj.username === username);
28
- }
29
- async list() {
30
- const usersDoc = await this.dbs.db.get(this.configService.USERS_ID);
31
- return usersDoc.users || [];
32
- }
33
- async patchUser(username, userData) {
34
- const usersDoc = await this.dbs.db.get(this.configService.USERS_ID);
35
- const user = usersDoc.users.find((userObj) => userObj.username === username);
36
- if (user) {
37
- (0, lodash_mergewith_1.default)(user, userData);
38
- await this.dbs.db.put(usersDoc, { force: true });
39
- }
40
- return user;
41
- }
42
- async removeByName(username) {
43
- const usersDoc = await this.dbs.db.get(this.configService.USERS_ID);
44
- usersDoc.users = usersDoc.users.filter((userObj) => userObj.username !== username);
45
- await this.dbs.db.put(usersDoc, { force: true });
46
- }
47
- async removeAll() {
48
- const usersDoc = await this.dbs.db.get(this.configService.USERS_ID);
49
- usersDoc.users = usersDoc.users.filter((userObj) => userObj._id !== '1');
50
- await this.dbs.db.put(usersDoc, { force: true });
51
- }
52
- }
53
- exports.default = UsersService;
54
- //# sourceMappingURL=users.service.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"users.service.js","sourceRoot":"","sources":["../../../../../../src/api/services/users.service.ts"],"names":[],"mappings":"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"}
@@ -1,12 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.PAGINATION_DEFAULTS = exports.REFRESH_TOKEN = void 0;
4
- var REFRESH_TOKEN;
5
- (function (REFRESH_TOKEN) {
6
- REFRESH_TOKEN["EXPIRES_IN"] = "7d";
7
- })(REFRESH_TOKEN || (exports.REFRESH_TOKEN = REFRESH_TOKEN = {}));
8
- exports.PAGINATION_DEFAULTS = {
9
- page: 1,
10
- pageSize: 5,
11
- };
12
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../src/api/types/index.ts"],"names":[],"mappings":";;;AAwDA,IAAY,aAEX;AAFD,WAAY,aAAa;IACvB,kCAAiB,CAAA;AACnB,CAAC,EAFW,aAAa,6BAAb,aAAa,QAExB;AAEY,QAAA,mBAAmB,GAAoB;IAClD,IAAI,EAAE,CAAC;IACP,QAAQ,EAAE,CAAC;CACZ,CAAC"}
@@ -1,437 +0,0 @@
1
- 'use-strict';
2
- "use strict";
3
- var __importDefault = (this && this.__importDefault) || function (mod) {
4
- return (mod && mod.__esModule) ? mod : { "default": mod };
5
- };
6
- Object.defineProperty(exports, "__esModule", { value: true });
7
- exports.createCert = exports.createCSR = exports.createRootCA = exports.getCert = exports.P12_PASSWORD = exports.P12_FILENAME = exports.ROOT_KEY_FILENAME = exports.ROOT_CERT_FILENAME = exports.HOST_KEY_FILENAME = exports.HOST_CERT_FILENAME = void 0;
8
- const node_forge_1 = __importDefault(require("node-forge"));
9
- const fs_extra_1 = __importDefault(require("fs-extra"));
10
- const net_1 = require("net");
11
- const path_1 = __importDefault(require("path"));
12
- const tsyringe_1 = require("tsyringe");
13
- // export const CSR_CERT_FILENAME = 'camera.ui.csr.cert.pem';
14
- exports.HOST_CERT_FILENAME = 'camera.ui.cert.pem';
15
- exports.HOST_KEY_FILENAME = 'camera.ui.key.pem';
16
- exports.ROOT_CERT_FILENAME = 'camera.ui.root.cert.pem';
17
- exports.ROOT_KEY_FILENAME = 'camera.ui.root.key.pem';
18
- exports.P12_FILENAME = 'camera.ui.p12';
19
- exports.P12_PASSWORD = 'camera.ui';
20
- const DEFAULTS = {
21
- C: 'DE',
22
- ST: 'Berlin',
23
- L: 'Berlin',
24
- O: 'camera.ui',
25
- OU: 'cui',
26
- CN: 'camera.ui root certificate',
27
- ROOT_CN: 'camera.ui root certificate',
28
- };
29
- const makeNumberPositive = (hexString) => {
30
- let mostSignificativeHexDigitAsInt = Number.parseInt(hexString[0], 16);
31
- if (mostSignificativeHexDigitAsInt < 8) {
32
- return hexString;
33
- }
34
- mostSignificativeHexDigitAsInt -= 8;
35
- return mostSignificativeHexDigitAsInt.toString() + hexString.slice(1);
36
- };
37
- // Generate a random serial number for the Certificate
38
- const randomSerialNumber = () => {
39
- return makeNumberPositive(node_forge_1.default.util.bytesToHex(node_forge_1.default.random.getBytesSync(20)));
40
- };
41
- // Get the Not Before Date for a Certificate (will be valid from 2 days ago)
42
- const getCertNotBefore = () => {
43
- const twoDaysAgo = new Date(Date.now() - 60 * 60 * 24 * 2 * 1000);
44
- const year = twoDaysAgo.getFullYear();
45
- const month = (twoDaysAgo.getMonth() + 1).toString().padStart(2, '0');
46
- const day = twoDaysAgo.getDate();
47
- return new Date(`${year}-${month}-${day} 00:00:00Z`);
48
- };
49
- // Get Certificate Expiration Date (Valid for 90 Days)
50
- const getCertNotAfter = (notBefore) => {
51
- const ninetyDaysLater = new Date(notBefore.getTime() + 60 * 60 * 24 * 90 * 1000);
52
- const year = ninetyDaysLater.getFullYear();
53
- const month = (ninetyDaysLater.getMonth() + 1).toString().padStart(2, '0');
54
- const day = ninetyDaysLater.getDate();
55
- return new Date(`${year}-${month}-${day} 23:59:59Z`);
56
- };
57
- // Get CA Expiration Date (Valid for 100 Years)
58
- const getCANotAfter = (notBefore) => {
59
- const year = notBefore.getFullYear() + 100;
60
- const month = (notBefore.getMonth() + 1).toString().padStart(2, '0');
61
- const day = notBefore.getDate();
62
- return new Date(`${year}-${month}-${day} 23:59:59Z`);
63
- };
64
- const getCert = () => {
65
- const logger = tsyringe_1.container.resolve('logger');
66
- const configService = tsyringe_1.container.resolve('configService');
67
- const certFile = path_1.default.resolve(configService.STORAGE_PATH, exports.ROOT_CERT_FILENAME);
68
- const keyFile = path_1.default.resolve(configService.STORAGE_PATH, exports.ROOT_KEY_FILENAME);
69
- let cert;
70
- let key;
71
- let certPath;
72
- let keyPath;
73
- const { config } = configService;
74
- if (config.ssl?.certFile && config.ssl?.keyFile && fs_extra_1.default.existsSync(config.ssl.certFile) && fs_extra_1.default.existsSync(config.ssl.keyFile)) {
75
- logger.debug('Configuring server with certificate/key defined in camera.ui.yaml...');
76
- cert = fs_extra_1.default.readFileSync(config.ssl.certFile, 'utf8');
77
- key = fs_extra_1.default.readFileSync(config.ssl.keyFile, 'utf8');
78
- certPath = config.ssl.certFile;
79
- keyPath = config.ssl.keyFile;
80
- }
81
- else {
82
- logger.debug('Generating new certificate/key for server...');
83
- const data = (0, exports.createRootCA)(config.ssl?.addresses);
84
- cert = data.cert;
85
- key = data.key;
86
- certPath = certFile;
87
- keyPath = keyFile;
88
- }
89
- return {
90
- cert,
91
- certPath,
92
- key,
93
- keyPath,
94
- };
95
- };
96
- exports.getCert = getCert;
97
- const createRootCA = (customAddresses = ['localhost', '127.0.0.1']) => {
98
- const configService = tsyringe_1.container.resolve('configService');
99
- const serialNumber = randomSerialNumber();
100
- const addresses = customAddresses.map((address) => {
101
- const object = (0, net_1.isIPv4)(address) || (0, net_1.isIPv6)(address)
102
- ? {
103
- type: 7,
104
- ip: address,
105
- }
106
- : {
107
- type: 2,
108
- value: address,
109
- };
110
- return object;
111
- }) || [];
112
- if (addresses.length === 0 || !addresses.some((addr) => addr.value === '127.0.0.1')) {
113
- addresses.push({
114
- type: 7,
115
- ip: '127.0.0.1',
116
- });
117
- }
118
- // Define the attributes for the new Root CA
119
- const attributes = [
120
- {
121
- shortName: 'C',
122
- value: DEFAULTS.C,
123
- },
124
- {
125
- shortName: 'ST',
126
- value: DEFAULTS.ST,
127
- },
128
- {
129
- shortName: 'L',
130
- value: DEFAULTS.L,
131
- },
132
- {
133
- shortName: 'CN',
134
- value: DEFAULTS.ROOT_CN,
135
- },
136
- {
137
- shortName: 'O',
138
- value: DEFAULTS.O,
139
- },
140
- {
141
- shortName: 'OU',
142
- value: DEFAULTS.OU,
143
- },
144
- ];
145
- const extensions = [
146
- {
147
- name: 'basicConstraints',
148
- cA: true,
149
- critical: true,
150
- },
151
- {
152
- name: 'keyUsage',
153
- critical: true,
154
- keyCertSign: true,
155
- cRLSign: true,
156
- digitalSignature: true,
157
- nonRepudiation: true,
158
- keyEncipherment: true,
159
- dataEncipherment: true,
160
- },
161
- // x509lint ERROR CA root certificate with Extended Key Usage
162
- /*{
163
- name: 'extKeyUsage',
164
- serverAuth: true,
165
- clientAuth: true,
166
- codeSigning: true,
167
- emailProtection: true,
168
- timeStamping: true,
169
- },*/
170
- {
171
- name: 'nsCertType',
172
- client: true,
173
- server: true,
174
- email: true,
175
- objsign: true,
176
- sslCA: true,
177
- emailCA: true,
178
- objCA: true,
179
- },
180
- {
181
- name: 'subjectKeyIdentifier',
182
- },
183
- /*{
184
- name: 'authorityKeyIdentifier',
185
- keyid: 'always',
186
- issuer: true,
187
- },*/
188
- {
189
- name: 'authorityKeyIdentifier',
190
- keyIdentifier: true,
191
- //authorityCertIssuer: true,
192
- //serialNumber: serialNumber,
193
- },
194
- {
195
- name: 'subjectAltName',
196
- altNames: addresses,
197
- },
198
- ];
199
- // Create a new Keypair for the Root CA
200
- const { privateKey, publicKey } = node_forge_1.default.pki.rsa.generateKeyPair(2048);
201
- // Create an empty Certificate
202
- const cert = node_forge_1.default.pki.createCertificate();
203
- // Set the Certificate attributes for the new Root CA
204
- cert.publicKey = publicKey;
205
- cert.privateKey = privateKey;
206
- cert.serialNumber = serialNumber;
207
- cert.validity.notBefore = getCertNotBefore();
208
- cert.validity.notAfter = getCANotAfter(cert.validity.notBefore);
209
- cert.setSubject(attributes);
210
- cert.setIssuer(attributes);
211
- cert.setExtensions(extensions);
212
- // Self-sign the Certificate
213
- cert.sign(privateKey, node_forge_1.default.md.sha512.create());
214
- // Convert to PEM format
215
- const pemCert = node_forge_1.default.pki.certificateToPem(cert);
216
- const pemPrivateKey = node_forge_1.default.pki.privateKeyToPem(privateKey);
217
- // Write Root CA PEM cert/key to disk
218
- const rootCertFilePath = path_1.default.resolve(configService.STORAGE_PATH, exports.ROOT_CERT_FILENAME);
219
- const rootPrivateKeyFilePath = path_1.default.resolve(configService.STORAGE_PATH, exports.ROOT_KEY_FILENAME);
220
- fs_extra_1.default.writeFileSync(rootCertFilePath, pemCert);
221
- fs_extra_1.default.writeFileSync(rootPrivateKeyFilePath, pemPrivateKey);
222
- // Return the PEM encoded cert and private key
223
- return {
224
- cert: pemCert,
225
- certPath: rootCertFilePath,
226
- key: pemPrivateKey,
227
- keyPath: rootPrivateKeyFilePath,
228
- };
229
- };
230
- exports.createRootCA = createRootCA;
231
- const createCSR = (addresses, keys) => {
232
- const csr = node_forge_1.default.pki.createCertificationRequest();
233
- csr.publicKey = keys.publicKey;
234
- const subject = [
235
- {
236
- shortName: 'C',
237
- value: DEFAULTS.C,
238
- },
239
- {
240
- shortName: 'ST',
241
- value: DEFAULTS.ST,
242
- },
243
- {
244
- shortName: 'L',
245
- value: DEFAULTS.L,
246
- },
247
- {
248
- shortName: 'O',
249
- value: DEFAULTS.O,
250
- },
251
- {
252
- shortName: 'OU',
253
- value: DEFAULTS.OU,
254
- },
255
- {
256
- shortName: 'CN',
257
- value: DEFAULTS.CN,
258
- },
259
- ];
260
- const attributes = [
261
- {
262
- name: 'extensionRequest',
263
- extensions: [
264
- {
265
- name: 'subjectAltName',
266
- altNames: addresses,
267
- },
268
- ],
269
- },
270
- ];
271
- csr.setSubject(subject);
272
- // Bug: https://github.com/digitalbazaar/forge/issues/1036
273
- // @ts-ignore
274
- csr.setAttributes(attributes);
275
- // sign certification request
276
- csr.sign(keys.privateKey, node_forge_1.default.md.sha512.create());
277
- // Bug?
278
- // @ts-ignore
279
- if (csr.verify()) {
280
- // Convert to PEM format
281
- const pemCert = node_forge_1.default.pki.certificationRequestToPem(csr);
282
- return {
283
- cert: pemCert,
284
- };
285
- }
286
- else {
287
- throw new Error('Signature not verified.');
288
- }
289
- // Convert to PEM format
290
- // const pemCert = forge.pki.certificationRequestToPem(csr);
291
- // Write CSR PEM cert to disk
292
- // const certFilePath = path.resolve(STORAGE_PATH, 'camera.ui.csr.cert.pem');
293
- // fs.writeFileSync(certFilePath, pemCert);
294
- // Return the PEM encoded cert and private key
295
- // return {
296
- // certificate: pemCert,
297
- // };
298
- };
299
- exports.createCSR = createCSR;
300
- const createCert = (customAddresses = ['localhost', '127.0.0.1'] /*, rootCAObject*/) => {
301
- const configService = tsyringe_1.container.resolve('configService');
302
- const addresses = customAddresses.map((address) => {
303
- return {
304
- type: (0, net_1.isIPv4)(address) || (0, net_1.isIPv6)(address) ? 7 : 2,
305
- value: address,
306
- };
307
- });
308
- if (addresses.length === 0) {
309
- addresses.push({
310
- type: 7,
311
- value: '127.0.0.1',
312
- });
313
- }
314
- // Create Root CA
315
- // if (!rootCAObject) {
316
- // const rootCertPath = path.resolve(STORAGE_PATH, ROOT_CERT_FILENAME);
317
- // const rootKeyPath = path.resolve(STORAGE_PATH, ROOT_KEY_FILENAME);
318
- // const storageDirectory = fs.readdirSync(STORAGE_PATH);
319
- // const rootFilesExist = storageDirectory.every((value) => [ROOT_CERT_FILENAME, ROOT_KEY_FILENAME].includes(value));
320
- // rootCAObject = !rootFilesExist
321
- // ? createRootCA(STORAGE_PATH)
322
- // : {
323
- // certificate: fs.readFileSync(rootCertPath, 'ascii'),
324
- // privateKey: fs.readFileSync(rootKeyPath, 'ascii'),
325
- // };
326
- // }
327
- // Create a new Keypair
328
- const keyPairs = node_forge_1.default.pki.rsa.generateKeyPair(2048);
329
- // Create Root CA
330
- const rootCAObject = (0, exports.createRootCA)(customAddresses);
331
- // Create CSR
332
- //const csrObject = createCSR(addresses, keyPairs);
333
- // Convert the Root CA and CSR PEM details, to a forge Object
334
- //const csr = forge.pki.certificationRequestFromPem(csrObject.certificate);
335
- const caCert = node_forge_1.default.pki.certificateFromPem(rootCAObject.cert);
336
- const caKey = node_forge_1.default.pki.privateKeyFromPem(rootCAObject.key);
337
- const caStore = node_forge_1.default.pki.createCaStore([caCert]);
338
- // This seams like a hack but something is wrong in forge it adds the wrong key
339
- const authorityKeyIdentifier = caCert.getExtension('authorityKeyIdentifier');
340
- const t = Buffer.from(authorityKeyIdentifier.value).slice(5);
341
- const attributes = [
342
- {
343
- shortName: 'C',
344
- value: DEFAULTS.C,
345
- },
346
- {
347
- shortName: 'ST',
348
- value: DEFAULTS.ST,
349
- },
350
- {
351
- shortName: 'L',
352
- value: DEFAULTS.L,
353
- },
354
- {
355
- shortName: 'CN',
356
- value: DEFAULTS.CN,
357
- },
358
- {
359
- shortName: 'O',
360
- value: DEFAULTS.O,
361
- },
362
- ];
363
- const extensions = [
364
- {
365
- name: 'basicConstraints',
366
- cA: false,
367
- },
368
- {
369
- name: 'nsCertType',
370
- server: true,
371
- },
372
- {
373
- name: 'subjectKeyIdentifier',
374
- },
375
- {
376
- name: 'authorityKeyIdentifier',
377
- authorityCertIssuer: true,
378
- serialNumber: caCert.serialNumber,
379
- keyIdentifier: t,
380
- },
381
- {
382
- name: 'keyUsage',
383
- critical: true,
384
- digitalSignature: true,
385
- nonRepudiation: true,
386
- keyEncipherment: true,
387
- },
388
- {
389
- name: 'extKeyUsage',
390
- serverAuth: true,
391
- },
392
- {
393
- name: 'subjectAltName',
394
- altNames: addresses,
395
- },
396
- ];
397
- // Create an empty Certificate
398
- const cert = node_forge_1.default.pki.createCertificate();
399
- // Set the attributes for the new Host Certificate
400
- cert.publicKey = keyPairs.publicKey;
401
- cert.serialNumber = randomSerialNumber();
402
- cert.validity.notBefore = getCertNotBefore();
403
- cert.validity.notAfter = getCertNotAfter(cert.validity.notBefore);
404
- cert.setSubject(attributes);
405
- //cert.setSubject(csr.subject.attributes);
406
- cert.setIssuer(caCert.subject.attributes);
407
- cert.setExtensions(extensions);
408
- // Sign the new Host Certificate using the CA
409
- cert.sign(caKey, node_forge_1.default.md.sha512.create());
410
- node_forge_1.default.pki.verifyCertificateChain(caStore, [cert, caCert]);
411
- // Convert to PEM format
412
- const pemCert = node_forge_1.default.pki.certificateToPem(cert);
413
- const pemPrivateKey = node_forge_1.default.pki.privateKeyToPem(keyPairs.privateKey);
414
- // Generate .p12 file
415
- const pkcs12 = node_forge_1.default.pkcs12.toPkcs12Asn1(keyPairs.privateKey, [caCert], exports.P12_PASSWORD, {
416
- algorithm: '3des',
417
- generateLocalKeyId: true,
418
- friendlyName: 'camera.ui',
419
- });
420
- const pkcs12Der = node_forge_1.default.asn1.toDer(pkcs12).getBytes();
421
- // Write PEM cert/key to disk
422
- const certFilePath = path_1.default.resolve(configService.STORAGE_PATH, exports.HOST_CERT_FILENAME);
423
- const privateKeyFilePath = path_1.default.resolve(configService.STORAGE_PATH, exports.HOST_KEY_FILENAME);
424
- const p12FilePath = path_1.default.resolve(configService.STORAGE_PATH, exports.P12_FILENAME);
425
- fs_extra_1.default.writeFileSync(certFilePath, pemCert);
426
- fs_extra_1.default.writeFileSync(privateKeyFilePath, pemPrivateKey);
427
- fs_extra_1.default.writeFileSync(p12FilePath, pkcs12Der, 'binary');
428
- // Return the PEM encoded cert and private key
429
- return {
430
- cert: pemCert,
431
- certPath: certFilePath,
432
- key: pemPrivateKey,
433
- keyPath: privateKeyFilePath,
434
- };
435
- };
436
- exports.createCert = createCert;
437
- //# sourceMappingURL=cert.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"cert.js","sourceRoot":"","sources":["../../../../../../src/api/utils/cert.ts"],"names":[],"mappings":"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"}