hap-nodejs 0.10.0-beta.3 → 0.10.0-beta.7

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 (78) hide show
  1. package/README.md +1 -1
  2. package/dist/BridgedCore.js +1 -1
  3. package/dist/BridgedCore.js.map +1 -1
  4. package/dist/Core.js +1 -1
  5. package/dist/Core.js.map +1 -1
  6. package/dist/accessories/Camera_accessory.js +373 -1
  7. package/dist/accessories/Camera_accessory.js.map +1 -1
  8. package/dist/accessories/gstreamer-audioProducer.js +2 -3
  9. package/dist/accessories/gstreamer-audioProducer.js.map +1 -1
  10. package/dist/index.d.ts +5 -0
  11. package/dist/index.d.ts.map +1 -1
  12. package/dist/index.js +13 -3
  13. package/dist/index.js.map +1 -1
  14. package/dist/internal-types.d.ts +2 -0
  15. package/dist/internal-types.d.ts.map +1 -1
  16. package/dist/internal-types.js.map +1 -1
  17. package/dist/lib/Accessory.d.ts +25 -4
  18. package/dist/lib/Accessory.d.ts.map +1 -1
  19. package/dist/lib/Accessory.js +61 -22
  20. package/dist/lib/Accessory.js.map +1 -1
  21. package/dist/lib/Advertiser.d.ts +19 -2
  22. package/dist/lib/Advertiser.d.ts.map +1 -1
  23. package/dist/lib/Advertiser.js +100 -7
  24. package/dist/lib/Advertiser.js.map +1 -1
  25. package/dist/lib/Characteristic.d.ts.map +1 -1
  26. package/dist/lib/Characteristic.js +7 -6
  27. package/dist/lib/Characteristic.js.map +1 -1
  28. package/dist/lib/Service.d.ts.map +1 -1
  29. package/dist/lib/Service.js.map +1 -1
  30. package/dist/lib/camera/RTPStreamManagement.d.ts +40 -4
  31. package/dist/lib/camera/RTPStreamManagement.d.ts.map +1 -1
  32. package/dist/lib/camera/RTPStreamManagement.js +75 -5
  33. package/dist/lib/camera/RTPStreamManagement.js.map +1 -1
  34. package/dist/lib/camera/RecordingManagement.d.ts +267 -0
  35. package/dist/lib/camera/RecordingManagement.d.ts.map +1 -0
  36. package/dist/lib/camera/RecordingManagement.js +745 -0
  37. package/dist/lib/camera/RecordingManagement.js.map +1 -0
  38. package/dist/lib/camera/index.d.ts +1 -0
  39. package/dist/lib/camera/index.d.ts.map +1 -1
  40. package/dist/lib/camera/index.js +1 -0
  41. package/dist/lib/camera/index.js.map +1 -1
  42. package/dist/lib/controller/AdaptiveLightingController.d.ts.map +1 -1
  43. package/dist/lib/controller/AdaptiveLightingController.js +4 -2
  44. package/dist/lib/controller/AdaptiveLightingController.js.map +1 -1
  45. package/dist/lib/controller/CameraController.d.ts +252 -7
  46. package/dist/lib/controller/CameraController.d.ts.map +1 -1
  47. package/dist/lib/controller/CameraController.js +368 -23
  48. package/dist/lib/controller/CameraController.js.map +1 -1
  49. package/dist/lib/controller/DoorbellController.d.ts +43 -1
  50. package/dist/lib/controller/DoorbellController.d.ts.map +1 -1
  51. package/dist/lib/controller/DoorbellController.js +62 -11
  52. package/dist/lib/controller/DoorbellController.js.map +1 -1
  53. package/dist/lib/controller/RemoteController.d.ts +3 -3
  54. package/dist/lib/controller/RemoteController.d.ts.map +1 -1
  55. package/dist/lib/controller/RemoteController.js +13 -11
  56. package/dist/lib/controller/RemoteController.js.map +1 -1
  57. package/dist/lib/datastream/DataStreamManagement.d.ts.map +1 -1
  58. package/dist/lib/datastream/DataStreamManagement.js.map +1 -1
  59. package/dist/lib/datastream/DataStreamParser.d.ts.map +1 -1
  60. package/dist/lib/datastream/DataStreamParser.js +2 -1
  61. package/dist/lib/datastream/DataStreamParser.js.map +1 -1
  62. package/dist/lib/datastream/DataStreamServer.d.ts +23 -4
  63. package/dist/lib/datastream/DataStreamServer.d.ts.map +1 -1
  64. package/dist/lib/datastream/DataStreamServer.js +34 -11
  65. package/dist/lib/datastream/DataStreamServer.js.map +1 -1
  66. package/dist/lib/model/ControllerStorage.d.ts.map +1 -1
  67. package/dist/lib/model/ControllerStorage.js +1 -1
  68. package/dist/lib/util/eventedhttp.d.ts +1 -1
  69. package/dist/lib/util/eventedhttp.d.ts.map +1 -1
  70. package/dist/lib/util/eventedhttp.js +1 -1
  71. package/dist/lib/util/hapCrypto.d.ts.map +1 -1
  72. package/dist/lib/util/hapCrypto.js +13 -0
  73. package/dist/lib/util/hapCrypto.js.map +1 -1
  74. package/dist/lib/util/promise-utils.d.ts +2 -0
  75. package/dist/lib/util/promise-utils.d.ts.map +1 -0
  76. package/dist/lib/util/promise-utils.js +10 -0
  77. package/dist/lib/util/promise-utils.js.map +1 -0
  78. package/package.json +6 -6
@@ -0,0 +1,267 @@
1
+ /// <reference types="node" />
2
+ import { VideoCodecType } from ".";
3
+ import { AudioBitrate, CameraRecordingDelegate, StateChangeDelegate } from "../controller";
4
+ import { DataStreamManagement } from "../datastream";
5
+ import { CameraOperatingMode, CameraRecordingManagement } from "../definitions";
6
+ import { Service } from "../Service";
7
+ import { H264CodecParameters, H264Level, H264Profile, Resolution } from "./RTPStreamManagement";
8
+ /**
9
+ * Describes options passed to the {@link RecordingManagement}.
10
+ */
11
+ export declare type CameraRecordingOptions = {
12
+ /**
13
+ * The size of the prebuffer in milliseconds. It must be at least 4000 ms.
14
+ * A sensible value for this property is in the interval [4000, 8000].
15
+ *
16
+ * In order to provide some context to recording event, it is a good user experience
17
+ * to also have the recording of a few seconds before the event occurs.
18
+ * This exactly is the prebuffer. A camera will constantly store the last
19
+ * x seconds (the `prebufferLength`) to provide more context to a given event.
20
+ */
21
+ prebufferLength: number;
22
+ /**
23
+ * This property can be used to override the automatic heuristic of the {@link CameraController}
24
+ * which derives the {@link EventTriggerOption}s from application state.
25
+ *
26
+ * {@link EventTriggerOption}s are derived automatically as follows:
27
+ * * {@link EventTriggerOption.MOTION} is enabled when a {@link MotionSensor} is configured (via {@link CameraControllerOptions.sensors}).
28
+ * * {@link EventTriggerOption.DOORBELL} is enabled when the {@link DoorbellController} is used.
29
+ *
30
+ * Note: This property is **ADDITIVE**. Meaning if the {@link CameraController} decides to add
31
+ * a certain {@link EventTriggerOption} it will still do so. This option can only be used to
32
+ * add **additional** {@link EventTriggerOption}s!
33
+ */
34
+ overrideEventTriggerOptions?: EventTriggerOption[];
35
+ /**
36
+ * List of supported media {@link MediaContainerConfiguration}s (or a single one).
37
+ */
38
+ mediaContainerConfiguration: MediaContainerConfiguration | MediaContainerConfiguration[];
39
+ video: VideoRecordingOptions;
40
+ audio: AudioRecordingOptions;
41
+ };
42
+ /**
43
+ * Describes the Event trigger.
44
+ */
45
+ export declare const enum EventTriggerOption {
46
+ /**
47
+ * The Motion trigger. If enabled motion should trigger the start of a recording.
48
+ */
49
+ MOTION = 1,
50
+ /**
51
+ * The Doorbell trigger. If enabled a doorbell button press should trigger the start of a recording.
52
+ */
53
+ DOORBELL = 2
54
+ }
55
+ export declare const enum MediaContainerType {
56
+ FRAGMENTED_MP4 = 0
57
+ }
58
+ export interface MediaContainerConfiguration {
59
+ /**
60
+ * The type of media container.
61
+ */
62
+ type: MediaContainerType;
63
+ /**
64
+ * The length in milliseconds of every individual recording fragment.
65
+ * A typical value of HomeKit Secure Video cameras is 4000ms.
66
+ */
67
+ fragmentLength: number;
68
+ }
69
+ export interface VideoRecordingOptions {
70
+ type: VideoCodecType;
71
+ parameters: H264CodecParameters;
72
+ /**
73
+ * Required resolutions to be supported are:
74
+ * * 1920x1080
75
+ * * 1280x720
76
+ *
77
+ * The following frame rates are required to be supported:
78
+ * * 15 fps
79
+ * * 24fps or 30fps
80
+ */
81
+ resolutions: Resolution[];
82
+ }
83
+ export declare type AudioRecordingOptions = {
84
+ /**
85
+ * List (or single entry) of supported {@link AudioRecordingCodec}s.
86
+ */
87
+ codecs: AudioRecordingCodec | AudioRecordingCodec[];
88
+ };
89
+ export declare type AudioRecordingCodec = {
90
+ type: AudioRecordingCodecType;
91
+ /**
92
+ * The count of audio channels. Must be at least `1`.
93
+ * Defaults to `1`.
94
+ */
95
+ audioChannels?: number;
96
+ /**
97
+ * The supported bitrate mode. Defaults to {@link AudioBitrate.VARIABLE}.
98
+ */
99
+ bitrateMode?: AudioBitrate;
100
+ samplerate: AudioRecordingSamplerate[] | AudioRecordingSamplerate;
101
+ };
102
+ /**
103
+ * This type describes the SelectedCameraRecordingConfiguration (written by the device to {@link SelectedCameraRecordingConfiguration}).
104
+ */
105
+ export interface CameraRecordingConfiguration {
106
+ /**
107
+ * The size of the prebuffer in milliseconds.
108
+ * This value is less or equal of the value advertised in the {@link SupportedCameraRecordingConfiguration}.
109
+ */
110
+ prebufferLength: number;
111
+ /**
112
+ * List of the enabled {@link EventTriggerOption}s.
113
+ */
114
+ eventTriggerTypes: EventTriggerOption[];
115
+ /**
116
+ * The selected {@link MediaContainerConfiguration}.
117
+ */
118
+ mediaContainerConfiguration: MediaContainerConfiguration;
119
+ /**
120
+ * The selected video codec configuration.
121
+ */
122
+ videoCodec: {
123
+ type: VideoCodecType.H264;
124
+ parameters: SelectedH264CodecParameters;
125
+ resolution: Resolution;
126
+ };
127
+ /**
128
+ * The selected audio codec configuration.
129
+ */
130
+ audioCodec: AudioRecordingCodec & {
131
+ bitrate: number;
132
+ samplerate: AudioRecordingSamplerate;
133
+ };
134
+ }
135
+ export interface SelectedH264CodecParameters {
136
+ profile: H264Profile;
137
+ level: H264Level;
138
+ bitRate: number;
139
+ /**
140
+ * The selected i-frame interval in milliseconds.
141
+ */
142
+ iFrameInterval: number;
143
+ }
144
+ export declare const enum AudioRecordingCodecType {
145
+ AAC_LC = 0,
146
+ AAC_ELD = 1
147
+ }
148
+ export declare const enum AudioRecordingSamplerate {
149
+ KHZ_8 = 0,
150
+ KHZ_16 = 1,
151
+ KHZ_24 = 2,
152
+ KHZ_32 = 3,
153
+ KHZ_44_1 = 4,
154
+ KHZ_48 = 5
155
+ }
156
+ export declare const enum PacketDataType {
157
+ MEDIA_INITIALIZATION = "mediaInitialization",
158
+ MEDIA_FRAGMENT = "mediaFragment"
159
+ }
160
+ export interface RecordingPacket {
161
+ /**
162
+ * The `Buffer` containing the data of the packet.
163
+ */
164
+ data: Buffer;
165
+ /**
166
+ * Defines if this `RecordingPacket` is the last one in the recording stream.
167
+ * If `true` this will signal an end of stream and closes the recording stream.
168
+ */
169
+ isLast: boolean;
170
+ }
171
+ interface RecordingManagementServices {
172
+ recordingManagement: CameraRecordingManagement;
173
+ operatingMode: CameraOperatingMode;
174
+ dataStreamManagement: DataStreamManagement;
175
+ }
176
+ export interface RecordingManagementState {
177
+ /**
178
+ * This property stores a hash of the supported configurations (recording, video and audio) of
179
+ * the recording management. We use this to determine if the configuration was changed by the user.
180
+ * If it was changed, we need to discard the `selectedConfiguration` to signify to HomeKit Controllers
181
+ * that they might reconsider their decision based on the updated configuration.
182
+ */
183
+ configurationHash: {
184
+ algorithm: "sha256";
185
+ hash: string;
186
+ };
187
+ /**
188
+ * The base64 encoded tlv of the {@link CameraRecordingConfiguration}.
189
+ * This value MIGHT be `undefined` if no HomeKit controller has yet selected a configuration.
190
+ */
191
+ selectedConfiguration?: string;
192
+ /**
193
+ * Service `CameraRecordingManagement`; Characteristic `Active`
194
+ */
195
+ recordingActive: boolean;
196
+ /**
197
+ * Service `CameraRecordingManagement`; Characteristic `RecordingAudioActive`
198
+ */
199
+ recordingAudioActive: boolean;
200
+ /**
201
+ * Service `CameraOperatingMode`; Characteristic `EventSnapshotsActive`
202
+ */
203
+ eventSnapshotsActive: boolean;
204
+ /**
205
+ * Service `CameraOperatingMode`; Characteristic `HomeKitCameraActive`
206
+ */
207
+ homeKitCameraActive: boolean;
208
+ /**
209
+ * Service `CameraOperatingMode`; Characteristic `PeriodicSnapshotsActive`
210
+ */
211
+ periodicSnapshotsActive: boolean;
212
+ }
213
+ export declare class RecordingManagement {
214
+ readonly options: CameraRecordingOptions;
215
+ readonly delegate: CameraRecordingDelegate;
216
+ private stateChangeDelegate?;
217
+ private readonly supportedCameraRecordingConfiguration;
218
+ private readonly supportedVideoRecordingConfiguration;
219
+ private readonly supportedAudioRecordingConfiguration;
220
+ /**
221
+ * 32 bit mask of enabled {@link EventTriggerOption}s.
222
+ */
223
+ private readonly eventTriggerOptions;
224
+ readonly recordingManagementService: CameraRecordingManagement;
225
+ readonly operatingModeService: CameraOperatingMode;
226
+ readonly dataStreamManagement: DataStreamManagement;
227
+ /**
228
+ * The currently active recording stream.
229
+ * Any camera only supports one stream at a time.
230
+ */
231
+ private recordingStream?;
232
+ private selectedConfiguration?;
233
+ /**
234
+ * Array of sensor services (e.g. {@link Service.MotionSensor} or {@link Service.OccupancySensor}).
235
+ * Any service in this array owns a {@link Characteristic.StatusActive} characteristic.
236
+ * The value of the {@link Characteristic.HomeKitCameraActive} is mirrored towards the {@link Characteristic.StatusActive} characteristic.
237
+ * The array is initialized my the caller shortly after calling the constructor.
238
+ */
239
+ sensorServices: Service[];
240
+ constructor(options: CameraRecordingOptions, delegate: CameraRecordingDelegate, eventTriggerOptions: Set<EventTriggerOption>, services?: RecordingManagementServices);
241
+ private constructService;
242
+ private setupServiceHandlers;
243
+ private handleDataSendOpen;
244
+ private handleSelectedCameraRecordingConfigurationRead;
245
+ private handleSelectedCameraRecordingConfigurationWrite;
246
+ private parseSelectedConfiguration;
247
+ private _supportedCameraRecordingConfiguration;
248
+ private _supportedVideoRecordingConfiguration;
249
+ private _supportedAudioStreamConfiguration;
250
+ private computeConfigurationHash;
251
+ /**
252
+ * @private
253
+ */
254
+ serialize(): RecordingManagementState | undefined;
255
+ /**
256
+ * @private
257
+ */
258
+ deserialize(serialized: RecordingManagementState): void;
259
+ /**
260
+ * @private
261
+ */
262
+ setupStateChangeDelegate(delegate?: StateChangeDelegate): void;
263
+ destroy(): void;
264
+ handleFactoryReset(): void;
265
+ }
266
+ export {};
267
+ //# sourceMappingURL=RecordingManagement.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RecordingManagement.d.ts","sourceRoot":"","sources":["../../../src/lib/camera/RecordingManagement.ts"],"names":[],"mappings":"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"}