@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.
- package/dist/camera/accessory.d.ts +8 -8
- package/dist/camera/accessory.js +85 -84
- package/dist/camera/accessory.js.map +1 -1
- package/dist/camera/streamingDelegate.js +4 -2
- package/dist/camera/streamingDelegate.js.map +1 -1
- package/dist/types.d.ts +8 -0
- package/dist/utils/utils.d.ts +7 -0
- package/dist/utils/utils.js +32 -0
- package/dist/utils/utils.js.map +1 -0
- package/package.json +4 -4
|
@@ -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
|
-
|
|
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
|
|
13
|
-
private cameraServices;
|
|
13
|
+
private accessory?;
|
|
14
|
+
private cameraServices?;
|
|
14
15
|
private published;
|
|
15
|
-
private
|
|
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
|
}
|
package/dist/camera/accessory.js
CHANGED
|
@@ -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
|
-
|
|
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
|
-
|
|
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
|
|
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
|
-
|
|
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:
|
|
73
|
+
port: accessoryPortOverride,
|
|
73
74
|
bind: undefined,
|
|
74
|
-
addIdentifyingMaterial:
|
|
75
|
+
addIdentifyingMaterial: true,
|
|
75
76
|
advertiser: this.config.advertiser,
|
|
76
77
|
};
|
|
77
|
-
|
|
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
|
-
|
|
90
|
-
|
|
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
|
-
|
|
98
|
-
|
|
99
|
-
|
|
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.
|
|
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
|
-
|
|
137
|
-
|
|
138
|
-
|
|
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
|
-
|
|
178
|
+
accessoryPortOverride: {
|
|
174
179
|
type: 'number',
|
|
175
|
-
key: '
|
|
180
|
+
key: 'accessoryPortOverride',
|
|
176
181
|
title: 'Port',
|
|
177
|
-
description: '
|
|
182
|
+
description: 'Override the port to use for the HomeKit camera',
|
|
178
183
|
group: 'Pairing',
|
|
179
|
-
defaultValue: 0,
|
|
180
184
|
store: true,
|
|
181
|
-
|
|
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
|
-
|
|
202
|
-
type: '
|
|
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
|
-
|
|
211
|
-
|
|
212
|
-
|
|
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:
|
|
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,
|
|
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
|
|
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":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AACnC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
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.
|
|
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.
|
|
25
|
+
"@camera.ui/types": "^0.0.55",
|
|
26
26
|
"@rushstack/eslint-patch": "^1.10.4",
|
|
27
|
-
"@types/node": "^22.
|
|
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.
|
|
38
|
+
"updates": "^16.4.0"
|
|
39
39
|
},
|
|
40
40
|
"bugs": {
|
|
41
41
|
"url": "https://github.com/seydx/camera.ui/issues"
|