@camera.ui/camera-ui-homekit 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.
@@ -1,27 +1,27 @@
1
1
  import { CameraController } from 'hap-nodejs';
2
+ import { Subscribed } from '../utils/utils.js';
2
3
  import type { CameraDevice, CameraStorage } from '@camera.ui/types';
3
4
  import type HomeKit from '../index.js';
4
- export declare class CameraAccessory {
5
+ import type { CameraStorageValues } from '../types.js';
6
+ export declare class CameraAccessory extends Subscribed {
5
7
  controller?: CameraController;
6
- cameraStorage: CameraStorage;
8
+ cameraStorage: CameraStorage<CameraStorageValues>;
7
9
  private api;
8
10
  private config;
9
11
  private logger;
10
12
  private cameraDevice;
11
- private accessory;
12
- private accessoryPort?;
13
- private cameraServices;
13
+ private accessory?;
14
+ private cameraServices?;
14
15
  private published;
15
- private republishing;
16
+ private republishId;
16
17
  private publishedExternalAccessories;
17
18
  constructor(platform: HomeKit, cameraDevice: CameraDevice);
18
19
  teardown(): Promise<void>;
19
20
  private publishAccessory;
20
21
  private unpublishAccessory;
21
22
  private republishAccessory;
23
+ private resetAccessory;
22
24
  private setupAccessory;
23
- private setAccessoryCategory;
24
- private setAccessoryInformation;
25
25
  private createCameraStorage;
26
26
  private createControllerOptions;
27
27
  }
@@ -1,11 +1,13 @@
1
+ import { randomBytes } from 'crypto';
1
2
  import { Accessory, CameraController, Characteristic, Service, uuid, } from 'hap-nodejs';
2
3
  import { ControllerStorage } from 'hap-nodejs/dist/lib/model/ControllerStorage.js';
3
4
  import { baseAudioCodecs } from '../utils/codecs.js';
4
5
  import * as mac from '../utils/mac.js';
6
+ import { generateValidAccessoryName, Subscribed } from '../utils/utils.js';
5
7
  import { RecordingDelegate } from './recordingDelegate.js';
6
8
  import { CameraServices } from './services.js';
7
9
  import { StreamingDelegate } from './streamingDelegate.js';
8
- export class CameraAccessory {
10
+ export class CameraAccessory extends Subscribed {
9
11
  controller;
10
12
  cameraStorage;
11
13
  api;
@@ -13,18 +15,17 @@ export class CameraAccessory {
13
15
  logger;
14
16
  cameraDevice;
15
17
  accessory;
16
- accessoryPort;
17
18
  cameraServices;
18
19
  published = false;
19
- republishing = false;
20
+ republishId = '';
20
21
  publishedExternalAccessories = new Map();
21
22
  constructor(platform, cameraDevice) {
23
+ super();
22
24
  this.api = platform.api;
23
25
  this.config = platform.config;
24
26
  this.logger = platform.logger;
25
27
  this.cameraDevice = cameraDevice;
26
28
  this.cameraStorage = this.createCameraStorage();
27
- this.setupAccessory();
28
29
  this.cameraDevice.onConnected.subscribe(async (connected) => {
29
30
  if (connected) {
30
31
  await this.publishAccessory();
@@ -36,22 +37,25 @@ export class CameraAccessory {
36
37
  }
37
38
  async teardown() {
38
39
  if (this.published) {
39
- if (!this.republishing) {
40
+ this.published = false;
41
+ if (this.accessory) {
40
42
  this.logger.log('Unpublishing accessory:', this.cameraDevice.name);
43
+ const advertiseAddress = await this.cameraStorage?.getValue('advertiseAddress');
44
+ this.publishedExternalAccessories.delete(advertiseAddress);
45
+ this.accessory.removeAllListeners();
46
+ await this.accessory.unpublish();
47
+ await this.resetAccessory();
48
+ this.unsubscribe();
41
49
  }
42
- const advertiseAddress = await this.cameraStorage?.getValue('advertiseAddress');
43
- this.publishedExternalAccessories.delete(advertiseAddress);
44
- this.accessory.removeAllListeners();
45
- await this.accessory.unpublish();
46
- this.published = false;
47
50
  }
48
51
  }
49
52
  async publishAccessory() {
50
53
  if (!this.published) {
51
54
  try {
55
+ this.setupAccessory();
52
56
  const accessoryPin = await this.cameraStorage.getValue('accessoryPin');
53
57
  const advertiseAddress = await this.cameraStorage.getValue('advertiseAddress');
54
- const accessoryPort = this.cameraStorage.values.accessoryPort;
58
+ const accessoryPortOverride = this.cameraStorage.values.accessoryPortOverride;
55
59
  if (this.publishedExternalAccessories.has(advertiseAddress)) {
56
60
  throw new Error(`Accessory ${this.cameraDevice.name} experienced an address collision.`);
57
61
  }
@@ -59,70 +63,76 @@ export class CameraAccessory {
59
63
  this.publishedExternalAccessories.set(advertiseAddress, this.accessory);
60
64
  }
61
65
  this.accessory.on("listening" /* AccessoryEventTypes.LISTENING */, (port) => {
62
- this.accessoryPort = port;
63
66
  this.logger.debug(`${this.cameraDevice.name} is running on port ${port}`);
64
- if (!this.republishing) {
65
- this.logger.log(`Please add [${this.cameraDevice.name}] manually in Home app. Setup Code: ${accessoryPin}`);
66
- }
67
+ this.logger.log(`Please add [${this.cameraDevice.name}] manually in Home app. Setup Code: ${accessoryPin}`);
67
68
  });
68
69
  const publishInfo = {
69
70
  username: advertiseAddress,
70
71
  pincode: accessoryPin,
71
72
  category: this.accessory.category,
72
- port: accessoryPort,
73
+ port: accessoryPortOverride,
73
74
  bind: undefined,
74
- addIdentifyingMaterial: false,
75
+ addIdentifyingMaterial: true,
75
76
  advertiser: this.config.advertiser,
76
77
  };
77
- if (!this.republishing) {
78
- this.logger.log('Publishing accessory:', this.cameraDevice.name);
79
- }
78
+ this.logger.log('Publishing accessory:', this.cameraDevice.name);
80
79
  await this.accessory.publish(publishInfo);
80
+ this.accessory._server?.once('add-pairing', () => {
81
+ this.logger.debug(this.cameraDevice.name, 'Paired with Home app');
82
+ });
83
+ this.accessory._server?.once('remove-pairing', () => {
84
+ this.logger.debug(this.cameraDevice.name, 'Unpaired from Home app');
85
+ });
81
86
  this.published = true;
82
87
  }
83
88
  catch (error) {
84
89
  this.logger.error('Error publishing accessory', error);
90
+ this.unpublishAccessory();
85
91
  }
86
92
  }
87
93
  }
88
94
  async unpublishAccessory() {
89
- this.accessory.controllerStorage = new ControllerStorage(this.accessory);
90
- await this.teardown();
95
+ if (this.accessory) {
96
+ this.accessory.controllerStorage = new ControllerStorage(this.accessory);
97
+ await this.teardown();
98
+ }
91
99
  }
92
100
  async republishAccessory() {
93
- this.republishing = true;
94
101
  this.logger.log('Republishing accessory:', this.cameraDevice.name);
95
102
  await this.unpublishAccessory();
96
103
  await this.publishAccessory();
97
- setTimeout(() => {
98
- this.republishing = false;
99
- }, 100);
104
+ }
105
+ async resetAccessory() {
106
+ this.cameraStorage.values.advertiseAddress = undefined;
107
+ this.cameraServices = undefined;
108
+ this.accessory = undefined;
100
109
  }
101
110
  setupAccessory() {
102
111
  this.logger.log('Configuring accessory:', this.cameraDevice.name);
103
- this.accessory = new Accessory(this.cameraDevice.name, uuid.generate(this.cameraDevice.id));
112
+ this.accessory = new Accessory(generateValidAccessoryName(this.cameraDevice.name), uuid.generate(this.republishId + '-' + this.cameraDevice.id));
113
+ this.accessory.category = this.cameraDevice.type === 'doorbell' ? 18 /* Categories.VIDEO_DOORBELL */ : 17 /* Categories.IP_CAMERA */;
114
+ const accessoryInformation = this.accessory.getService(Service.AccessoryInformation);
115
+ accessoryInformation?.setCharacteristic(Characteristic.Name, this.cameraDevice.name);
116
+ accessoryInformation?.setCharacteristic(Characteristic.ConfiguredName, this.cameraDevice.name);
117
+ accessoryInformation?.setCharacteristic(Characteristic.Manufacturer, 'camera.ui');
118
+ accessoryInformation?.setCharacteristic(Characteristic.Identify, true);
119
+ if (this.cameraDevice.info.manufacturer)
120
+ accessoryInformation?.setCharacteristic(Characteristic.Manufacturer, this.cameraDevice.info.manufacturer);
121
+ if (this.cameraDevice.info.model)
122
+ accessoryInformation?.setCharacteristic(Characteristic.Model, this.cameraDevice.info.model);
123
+ if (this.cameraDevice.info.serialNumber)
124
+ accessoryInformation?.setCharacteristic(Characteristic.SerialNumber, this.cameraDevice.info.serialNumber);
125
+ if (this.cameraDevice.info.firmwareVersion)
126
+ accessoryInformation?.setCharacteristic(Characteristic.FirmwareRevision, this.cameraDevice.info.firmwareVersion);
104
127
  this.accessory.on("identify" /* AccessoryEventTypes.IDENTIFY */, () => this.logger.debug(this.cameraDevice.name, 'identified!'));
105
- this.setAccessoryCategory();
106
- this.setAccessoryInformation();
107
- this.cameraServices = new CameraServices(this.accessory, this.cameraDevice, this.logger);
108
- this.controller = new CameraController(this.createControllerOptions());
109
- this.accessory.configureController(this.controller);
110
- }
111
- setAccessoryCategory() {
112
- this.cameraDevice.onPropertyChange('type').subscribe(({ newData }) => {
128
+ this.addSubscriptions(this.cameraDevice.onPropertyChange('type').subscribe(({ newData }) => {
113
129
  this.logger.debug(this.cameraDevice.name, 'Changing accessory category to', newData);
114
130
  this.accessory.category = newData === 'doorbell' ? 18 /* Categories.VIDEO_DOORBELL */ : 17 /* Categories.IP_CAMERA */;
115
- });
116
- this.accessory.category = this.cameraDevice.type === 'doorbell' ? 18 /* Categories.VIDEO_DOORBELL */ : 17 /* Categories.IP_CAMERA */;
117
- }
118
- setAccessoryInformation() {
119
- this.cameraDevice.onPropertyChange('name').subscribe(({ newData }) => {
131
+ }), this.cameraDevice.onPropertyChange('name').subscribe(({ newData }) => {
120
132
  this.logger.debug(this.cameraDevice.name, 'Changing accessory name', newData);
121
- // this.cameraDevice.name = newData;
122
133
  accessoryInformation?.setCharacteristic(Characteristic.Name, this.cameraDevice.name);
123
134
  accessoryInformation?.setCharacteristic(Characteristic.ConfiguredName, this.cameraDevice.name);
124
- });
125
- this.cameraDevice.onPropertyChange('info').subscribe(({ newData }) => {
135
+ }), this.cameraDevice.onPropertyChange('info').subscribe(({ newData }) => {
126
136
  this.logger.debug(this.cameraDevice.name, 'Changing accessory information', newData);
127
137
  if (newData.manufacturer)
128
138
  accessoryInformation?.setCharacteristic(Characteristic.Manufacturer, newData.manufacturer);
@@ -132,20 +142,10 @@ export class CameraAccessory {
132
142
  accessoryInformation?.setCharacteristic(Characteristic.SerialNumber, newData.serialNumber);
133
143
  if (newData.firmwareVersion)
134
144
  accessoryInformation?.setCharacteristic(Characteristic.FirmwareRevision, newData.firmwareVersion);
135
- });
136
- const accessoryInformation = this.accessory.getService(Service.AccessoryInformation);
137
- accessoryInformation?.setCharacteristic(Characteristic.Name, this.cameraDevice.name);
138
- accessoryInformation?.setCharacteristic(Characteristic.ConfiguredName, this.cameraDevice.name);
139
- accessoryInformation?.setCharacteristic(Characteristic.Manufacturer, 'camera.ui');
140
- accessoryInformation?.setCharacteristic(Characteristic.Identify, true);
141
- if (this.cameraDevice.info.manufacturer)
142
- accessoryInformation?.setCharacteristic(Characteristic.Manufacturer, this.cameraDevice.info.manufacturer);
143
- if (this.cameraDevice.info.model)
144
- accessoryInformation?.setCharacteristic(Characteristic.Model, this.cameraDevice.info.model);
145
- if (this.cameraDevice.info.serialNumber)
146
- accessoryInformation?.setCharacteristic(Characteristic.SerialNumber, this.cameraDevice.info.serialNumber);
147
- if (this.cameraDevice.info.firmwareVersion)
148
- accessoryInformation?.setCharacteristic(Characteristic.FirmwareRevision, this.cameraDevice.info.firmwareVersion);
145
+ }));
146
+ this.cameraServices = new CameraServices(this.accessory, this.cameraDevice, this.logger);
147
+ this.controller = new CameraController(this.createControllerOptions(this.accessory));
148
+ this.accessory.configureController(this.controller);
149
149
  }
150
150
  createCameraStorage() {
151
151
  return this.api.storageController.createCameraStorage(this, this.cameraDevice.id, {
@@ -157,7 +157,7 @@ export class CameraAccessory {
157
157
  format: 'qrCode',
158
158
  group: 'Pairing',
159
159
  onGet: async () => {
160
- return this.published ? this.accessory.setupURI() : '';
160
+ return this.published && this.accessory ? this.accessory.setupURI() : '';
161
161
  },
162
162
  },
163
163
  accessoryPin: {
@@ -166,21 +166,23 @@ export class CameraAccessory {
166
166
  title: 'Pincode',
167
167
  description: 'The pincode to use for pairing the HomeKit camera',
168
168
  group: 'Pairing',
169
- defaultValue: mac.randomPinCode(),
170
169
  store: true,
171
170
  readonly: true,
171
+ onGet: async () => {
172
+ if (this.cameraStorage.values.accessoryPin) {
173
+ return this.cameraStorage.values.accessoryPin;
174
+ }
175
+ return mac.randomPinCode();
176
+ },
172
177
  },
173
- accessoryPort: {
178
+ accessoryPortOverride: {
174
179
  type: 'number',
175
- key: 'accessoryPort',
180
+ key: 'accessoryPortOverride',
176
181
  title: 'Port',
177
- description: 'The port to use for publishing the HomeKit camera',
182
+ description: 'Override the port to use for the HomeKit camera',
178
183
  group: 'Pairing',
179
- defaultValue: 0,
180
184
  store: true,
181
- onGet: async () => {
182
- return this.accessoryPort;
183
- },
185
+ required: false,
184
186
  onSet: async () => {
185
187
  await this.republishAccessory();
186
188
  },
@@ -195,25 +197,24 @@ export class CameraAccessory {
195
197
  readonly: true,
196
198
  hidden: true,
197
199
  onGet: async () => {
198
- return mac.generate(this.accessory.UUID);
200
+ return this.accessory ? mac.generate(this.republishId + '-' + this.accessory.UUID) : '';
199
201
  },
200
202
  },
201
- twoWayAudio: {
202
- type: 'boolean',
203
- key: 'twoWayAudio',
204
- title: 'Two-way Audio',
205
- description: 'Enable two-way audio',
206
- group: 'Streaming',
207
- defaultValue: true,
203
+ republishId: {
204
+ type: 'string',
208
205
  store: true,
206
+ hidden: true,
207
+ },
208
+ reset: {
209
+ type: 'button',
210
+ title: 'Reset Pairing',
211
+ key: 'reset',
212
+ group: 'Pairing',
213
+ description: 'Reset the pairing of the HomeKit camera',
209
214
  onSet: async () => {
210
- if (this.controller) {
211
- this.accessory.removeController(this.controller);
212
- this.controller = undefined;
213
- }
214
- const constrollerOptions = this.createControllerOptions();
215
- this.controller = new CameraController(constrollerOptions);
216
- this.accessory.configureController(this.controller);
215
+ this.republishId = randomBytes(8).toString('hex');
216
+ await this.cameraStorage.setValue('republishId', this.republishId);
217
+ await this.cameraStorage.setValue('accessoryPin', mac.randomPinCode());
217
218
  await this.republishAccessory();
218
219
  },
219
220
  },
@@ -238,7 +239,7 @@ export class CameraAccessory {
238
239
  },
239
240
  });
240
241
  }
241
- createControllerOptions() {
242
+ createControllerOptions(accessory) {
242
243
  const audioStreamingCodecs = [];
243
244
  const audioRecordingCodecs = [];
244
245
  const enabledStreamingCodecTypes = ["OPUS" /* AudioStreamingCodecType.OPUS */];
@@ -291,7 +292,7 @@ export class CameraAccessory {
291
292
  },
292
293
  audio: {
293
294
  codecs: audioStreamingCodecs,
294
- twoWayAudio: this.cameraStorage.values.twoWayAudio,
295
+ twoWayAudio: true,
295
296
  },
296
297
  },
297
298
  recording: {
@@ -318,7 +319,7 @@ export class CameraAccessory {
318
319
  codecs: audioRecordingCodecs,
319
320
  },
320
321
  },
321
- delegate: new RecordingDelegate(this, this.accessory, this.cameraDevice, this.logger),
322
+ delegate: new RecordingDelegate(this, accessory, this.cameraDevice, this.logger),
322
323
  },
323
324
  };
324
325
  return options;
@@ -1 +1 @@
1
- {"version":3,"file":"accessory.js","sourceRoot":"","sources":["../../src/camera/accessory.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"accessory.js","sourceRoot":"","sources":["../../src/camera/accessory.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,10 @@
1
1
  import { readFile } from 'node:fs';
2
- import { resolve } from 'node:path';
2
+ import { dirname, resolve } from 'node:path';
3
+ import { fileURLToPath } from 'node:url';
3
4
  import { promisify } from 'node:util';
4
5
  import { StreamingSessionWrapper } from './sessionWrapper.js';
5
- const __dirname = new URL('.', import.meta.url).pathname;
6
+ const __filename = fileURLToPath(import.meta.url);
7
+ const __dirname = dirname(__filename);
6
8
  function getDurationSeconds(start) {
7
9
  return (Date.now() - start) / 1000;
8
10
  }
@@ -1 +1 @@
1
- {"version":3,"file":"streamingDelegate.js","sourceRoot":"","sources":["../../src/camera/streamingDelegate.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"streamingDelegate.js","sourceRoot":"","sources":["../../src/camera/streamingDelegate.ts"],"names":[],"mappings":"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"}
package/dist/types.d.ts CHANGED
@@ -8,3 +8,11 @@ export type MP4Atom = {
8
8
  type: string;
9
9
  data: Buffer;
10
10
  };
11
+ export interface CameraStorageValues {
12
+ accessoryPin?: string;
13
+ accessoryPortOverride?: number;
14
+ advertiseAddress?: string;
15
+ republishId: string;
16
+ returnAudioCodec?: string;
17
+ transcodeRecording: boolean;
18
+ }
@@ -0,0 +1,7 @@
1
+ import type { Subscription } from 'rxjs';
2
+ export declare const generateValidAccessoryName: (input?: string) => string;
3
+ export declare class Subscribed {
4
+ private readonly subscriptions;
5
+ addSubscriptions(...subscriptions: Subscription[]): void;
6
+ protected unsubscribe(): void;
7
+ }
@@ -0,0 +1,32 @@
1
+ export const generateValidAccessoryName = (input = '') => {
2
+ // Function to remove leading and trailing special characters
3
+ const trimSpecialChars = (str) => {
4
+ return str.replace(/^[^a-zA-Z]+|[^a-zA-Z0-9]+$/g, '');
5
+ };
6
+ // Remove leading and trailing whitespace
7
+ let safeName = trimSpecialChars(input.trim());
8
+ // Replace all special characters with a space
9
+ safeName = safeName.replace(/[^\p{L}\p{N} ']/gu, ' ');
10
+ // Remove multiple spaces
11
+ safeName = safeName.replace(/\s+/g, ' ');
12
+ // Limit to 250 characters
13
+ safeName = safeName.slice(0, 250);
14
+ // Remove leading and trailing special characters again
15
+ safeName = trimSpecialChars(safeName);
16
+ // Check if the name is valid
17
+ const isValid = safeName.length >= 2 && /^[\p{L}\p{N}][\p{L}\p{N} ']*[\p{L}\p{N}]$/u.test(safeName);
18
+ if (!isValid) {
19
+ return 'Default Camera';
20
+ }
21
+ return safeName;
22
+ };
23
+ export class Subscribed {
24
+ subscriptions = [];
25
+ addSubscriptions(...subscriptions) {
26
+ this.subscriptions.push(...subscriptions);
27
+ }
28
+ unsubscribe() {
29
+ this.subscriptions.forEach((subscription) => subscription.unsubscribe());
30
+ }
31
+ }
32
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/utils/utils.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,0BAA0B,GAAG,CAAC,QAAgB,EAAE,EAAU,EAAE;IACvE,6DAA6D;IAC7D,MAAM,gBAAgB,GAAG,CAAC,GAAW,EAAU,EAAE;QAC/C,OAAO,GAAG,CAAC,OAAO,CAAC,6BAA6B,EAAE,EAAE,CAAC,CAAC;IACxD,CAAC,CAAC;IAEF,yCAAyC;IACzC,IAAI,QAAQ,GAAG,gBAAgB,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;IAE9C,8CAA8C;IAC9C,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAC,mBAAmB,EAAE,GAAG,CAAC,CAAC;IAEtD,yBAAyB;IACzB,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAEzC,0BAA0B;IAC1B,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IAElC,uDAAuD;IACvD,QAAQ,GAAG,gBAAgB,CAAC,QAAQ,CAAC,CAAC;IAEtC,6BAA6B;IAC7B,MAAM,OAAO,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,IAAI,4CAA4C,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAEpG,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,gBAAgB,CAAC;IAC1B,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC,CAAC;AAEF,MAAM,OAAO,UAAU;IACJ,aAAa,GAAmB,EAAE,CAAC;IAE7C,gBAAgB,CAAC,GAAG,aAA6B;QACtD,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,GAAG,aAAa,CAAC,CAAC;IAC5C,CAAC;IAES,WAAW;QACnB,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,YAAY,EAAE,EAAE,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC,CAAC;IAC3E,CAAC;CACF"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "displayName": "HomeKit",
3
3
  "name": "@camera.ui/camera-ui-homekit",
4
- "version": "0.0.2",
4
+ "version": "0.0.3",
5
5
  "description": "camera.ui homekit plugin",
6
6
  "author": "seydx (https://github.com/seydx/camera.ui)",
7
7
  "main": "./dist/index.js",
@@ -22,9 +22,9 @@
22
22
  "werift": "^0.19.4"
23
23
  },
24
24
  "devDependencies": {
25
- "@camera.ui/types": "^0.0.54",
25
+ "@camera.ui/types": "^0.0.55",
26
26
  "@rushstack/eslint-patch": "^1.10.4",
27
- "@types/node": "^22.1.0",
27
+ "@types/node": "^22.2.0",
28
28
  "@types/ws": "^8.5.12",
29
29
  "@typescript-eslint/eslint-plugin": "^8.0.1",
30
30
  "@typescript-eslint/parser": "^8.0.1",
@@ -35,7 +35,7 @@
35
35
  "prettier": "^3.3.3",
36
36
  "rimraf": "^6.0.1",
37
37
  "typescript": "^5.5.4",
38
- "updates": "^16.3.7"
38
+ "updates": "^16.4.0"
39
39
  },
40
40
  "bugs": {
41
41
  "url": "https://github.com/seydx/camera.ui/issues"