@chrisalvir1/camera-ui-homekit-4k 0.6.14 → 0.6.15
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/CHANGELOG.md +16 -0
- package/LICENSE.md +19 -6
- package/README.md +10 -12
- package/bundle.zip +0 -0
- package/package.json +24 -43
- package/LICENSE +0 -21
- package/dist/accessories/AccessoryConfigStore.d.ts +0 -36
- package/dist/accessories/AccessoryConfigStore.js +0 -79
- package/dist/accessories/CameraAccessoryManager.d.ts +0 -125
- package/dist/accessories/CameraAccessoryManager.js +0 -1501
- package/dist/accessories/DetectionMotion.d.ts +0 -20
- package/dist/accessories/DetectionMotion.js +0 -38
- package/dist/accessories/HapCameraAccessory.d.ts +0 -99
- package/dist/accessories/HapCameraAccessory.js +0 -366
- package/dist/accessories/RecordingAudioDefaults.d.ts +0 -12
- package/dist/accessories/RecordingAudioDefaults.js +0 -11
- package/dist/admin/AdminController.d.ts +0 -96
- package/dist/admin/AdminController.js +0 -494
- package/dist/admin/AdminModels.d.ts +0 -124
- package/dist/admin/AdminModels.js +0 -1
- package/dist/audio/AacConfiguration.d.ts +0 -7
- package/dist/audio/AacConfiguration.js +0 -23
- package/dist/audio/AacEldRtpTranscoder.d.ts +0 -22
- package/dist/audio/AacEldRtpTranscoder.js +0 -118
- package/dist/audio/AacRtpPacket.d.ts +0 -2
- package/dist/audio/AacRtpPacket.js +0 -23
- package/dist/audio/AudioCapabilityResolver.d.ts +0 -6
- package/dist/audio/AudioCapabilityResolver.js +0 -27
- package/dist/audio/AudioClockVerifier.d.ts +0 -4
- package/dist/audio/AudioClockVerifier.js +0 -45
- package/dist/audio/AudioFixtureProvenance.d.ts +0 -8
- package/dist/audio/AudioFixtureProvenance.js +0 -23
- package/dist/audio/AudioRecordingInspector.d.ts +0 -22
- package/dist/audio/AudioRecordingInspector.js +0 -189
- package/dist/audio/AudioRecordingMuxer.d.ts +0 -1
- package/dist/audio/AudioRecordingMuxer.js +0 -41
- package/dist/audio/AudioRtpInspector.d.ts +0 -40
- package/dist/audio/AudioRtpInspector.js +0 -66
- package/dist/audio/AudioSessionEvidence.d.ts +0 -86
- package/dist/audio/AudioSessionEvidence.js +0 -29
- package/dist/audio/AudioSignalVerifier.d.ts +0 -13
- package/dist/audio/AudioSignalVerifier.js +0 -47
- package/dist/audio/AudioSourceInspector.d.ts +0 -6
- package/dist/audio/AudioSourceInspector.js +0 -29
- package/dist/audio/AudioTranscodePlan.d.ts +0 -2
- package/dist/audio/AudioTranscodePlan.js +0 -8
- package/dist/audio/AudioTypes.d.ts +0 -81
- package/dist/audio/AudioTypes.js +0 -1
- package/dist/audio/G711.d.ts +0 -4
- package/dist/audio/G711.js +0 -18
- package/dist/audio/IsoBmff.d.ts +0 -15
- package/dist/audio/IsoBmff.js +0 -33
- package/dist/audio/NativeAudioEngine.d.ts +0 -48
- package/dist/audio/NativeAudioEngine.js +0 -55
- package/dist/audio/OpusPacket.d.ts +0 -6
- package/dist/audio/OpusPacket.js +0 -15
- package/dist/audio/RtpAudioPacket.d.ts +0 -9
- package/dist/audio/RtpAudioPacket.js +0 -16
- package/dist/audio/SyntheticOpusOgg.d.ts +0 -2
- package/dist/audio/SyntheticOpusOgg.js +0 -40
- package/dist/camera-ui/CameraUiAdapter.d.ts +0 -227
- package/dist/camera-ui/CameraUiAdapter.js +0 -693
- package/dist/camera-ui/CameraUiAudioAdapter.d.ts +0 -13
- package/dist/camera-ui/CameraUiAudioAdapter.js +0 -258
- package/dist/camera-ui/RuntimeMetadata.d.ts +0 -9
- package/dist/camera-ui/RuntimeMetadata.js +0 -31
- package/dist/camera-ui/adminSchema.d.ts +0 -4
- package/dist/camera-ui/adminSchema.js +0 -69
- package/dist/camera-ui/cameraSettingsSchema.d.ts +0 -4
- package/dist/camera-ui/cameraSettingsSchema.js +0 -77
- package/dist/capabilities/CapabilityResolver.d.ts +0 -21
- package/dist/capabilities/CapabilityResolver.js +0 -12
- package/dist/config/FeatureFlagStore.d.ts +0 -16
- package/dist/config/FeatureFlagStore.js +0 -43
- package/dist/diagnostics/DiagnosticBundleExporter.d.ts +0 -23
- package/dist/diagnostics/DiagnosticBundleExporter.js +0 -57
- package/dist/diagnostics/DiagnosticModeStore.d.ts +0 -20
- package/dist/diagnostics/DiagnosticModeStore.js +0 -53
- package/dist/diagnostics/Diagnostics.d.ts +0 -18
- package/dist/diagnostics/Diagnostics.js +0 -44
- package/dist/diagnostics/RateLimitedLogger.d.ts +0 -24
- package/dist/diagnostics/RateLimitedLogger.js +0 -55
- package/dist/diagnostics/SecretRedactor.d.ts +0 -4
- package/dist/diagnostics/SecretRedactor.js +0 -55
- package/dist/diagnostics/StructuredLogger.d.ts +0 -12
- package/dist/diagnostics/StructuredLogger.js +0 -23
- package/dist/errors/errors.d.ts +0 -28
- package/dist/errors/errors.js +0 -25
- package/dist/generated/build-info.d.ts +0 -12
- package/dist/generated/build-info.js +0 -227
- package/dist/h264/AudioRuntime.d.ts +0 -21
- package/dist/h264/AudioRuntime.js +0 -130
- package/dist/h264/H264CameraStreamDelegate.d.ts +0 -46
- package/dist/h264/H264CameraStreamDelegate.js +0 -419
- package/dist/h264/H264RecordingSession.d.ts +0 -50
- package/dist/h264/H264RecordingSession.js +0 -247
- package/dist/h264/LiveRtpSession.d.ts +0 -59
- package/dist/h264/LiveRtpSession.js +0 -230
- package/dist/h264/NetworkEndpoint.d.ts +0 -6
- package/dist/h264/NetworkEndpoint.js +0 -49
- package/dist/h264/RtpContinuity.d.ts +0 -12
- package/dist/h264/RtpContinuity.js +0 -31
- package/dist/h264/VideoProcessing.d.ts +0 -13
- package/dist/h264/VideoProcessing.js +0 -21
- package/dist/hap/HapAdapter.d.ts +0 -29
- package/dist/hap/HapAdapter.js +0 -73
- package/dist/hap/SrtpContext.d.ts +0 -34
- package/dist/hap/SrtpContext.js +0 -184
- package/dist/hksv3/ConcurrentTierProbe.d.ts +0 -29
- package/dist/hksv3/ConcurrentTierProbe.js +0 -82
- package/dist/hksv3/Fmp4TierMeasurement.d.ts +0 -4
- package/dist/hksv3/Fmp4TierMeasurement.js +0 -17
- package/dist/hksv3/H264RtpTranscoder.d.ts +0 -21
- package/dist/hksv3/H264RtpTranscoder.js +0 -154
- package/dist/hksv3/HapWebRtcDelegate.d.ts +0 -79
- package/dist/hksv3/HapWebRtcDelegate.js +0 -92
- package/dist/hksv3/LocalRtpDelegate.d.ts +0 -68
- package/dist/hksv3/LocalRtpDelegate.js +0 -699
- package/dist/hksv3/LocalRtpProtocol.d.ts +0 -89
- package/dist/hksv3/LocalRtpProtocol.js +0 -239
- package/dist/hksv3/OpusRtpTranscoder.d.ts +0 -39
- package/dist/hksv3/OpusRtpTranscoder.js +0 -227
- package/dist/hksv3/SFrame.d.ts +0 -71
- package/dist/hksv3/SFrame.js +0 -326
- package/dist/hksv3/SFrameRtp.d.ts +0 -38
- package/dist/hksv3/SFrameRtp.js +0 -137
- package/dist/hksv3/VideoTierResolver.d.ts +0 -49
- package/dist/hksv3/VideoTierResolver.js +0 -86
- package/dist/hksv3/WebRtcSecureVideoSession.d.ts +0 -94
- package/dist/hksv3/WebRtcSecureVideoSession.js +0 -493
- package/dist/identity/IdentityStore.d.ts +0 -16
- package/dist/identity/IdentityStore.js +0 -46
- package/dist/index.d.ts +0 -46
- package/dist/index.js +0 -206
- package/dist/media/AccessUnitDigest.d.ts +0 -10
- package/dist/media/AccessUnitDigest.js +0 -59
- package/dist/media/AccessUnitMatcher.d.ts +0 -43
- package/dist/media/AccessUnitMatcher.js +0 -80
- package/dist/media/AudioPolicy.d.ts +0 -7
- package/dist/media/AudioPolicy.js +0 -19
- package/dist/media/CameraMediaProfile.d.ts +0 -13
- package/dist/media/CameraMediaProfile.js +0 -25
- package/dist/media/FixtureProvenance.d.ts +0 -79
- package/dist/media/FixtureProvenance.js +0 -100
- package/dist/media/Fmp4Inspector.d.ts +0 -27
- package/dist/media/Fmp4Inspector.js +0 -253
- package/dist/media/H264RtpAssembler.d.ts +0 -43
- package/dist/media/H264RtpAssembler.js +0 -184
- package/dist/media/HevcRtpAssembler.d.ts +0 -49
- package/dist/media/HevcRtpAssembler.js +0 -203
- package/dist/media/MediaPolicy.d.ts +0 -12
- package/dist/media/MediaPolicy.js +0 -13
- package/dist/media/NativePassthroughVerifier.d.ts +0 -20
- package/dist/media/NativePassthroughVerifier.js +0 -53
- package/dist/media/NativeVideoEngine.d.ts +0 -38
- package/dist/media/NativeVideoEngine.js +0 -93
- package/dist/media/Phase3Evidence.d.ts +0 -36
- package/dist/media/Phase3Evidence.js +0 -170
- package/dist/media/SourceBitstreamExtractor.d.ts +0 -27
- package/dist/media/SourceBitstreamExtractor.js +0 -302
- package/dist/media/SourceInspector.d.ts +0 -15
- package/dist/media/SourceInspector.js +0 -224
- package/dist/media/SourceSelector.d.ts +0 -13
- package/dist/media/SourceSelector.js +0 -31
- package/dist/media/VideoCapabilityResolver.d.ts +0 -5
- package/dist/media/VideoCapabilityResolver.js +0 -10
- package/dist/media/VideoEvidenceCollector.d.ts +0 -12
- package/dist/media/VideoEvidenceCollector.js +0 -34
- package/dist/media/VideoPolicy.d.ts +0 -8
- package/dist/media/VideoPolicy.js +0 -43
- package/dist/media/VideoSessionManager.d.ts +0 -16
- package/dist/media/VideoSessionManager.js +0 -61
- package/dist/mqtt/MqttEntityMapper.d.ts +0 -23
- package/dist/mqtt/MqttEntityMapper.js +0 -120
- package/dist/mqtt/MqttPtzBridge.d.ts +0 -51
- package/dist/mqtt/MqttPtzBridge.js +0 -349
- package/dist/mqtt/MqttSettingsStore.d.ts +0 -18
- package/dist/mqtt/MqttSettingsStore.js +0 -56
- package/dist/pairing/PairingPresenter.d.ts +0 -7
- package/dist/pairing/PairingPresenter.js +0 -6
- package/dist/persistence/AtomicJsonStore.d.ts +0 -12
- package/dist/persistence/AtomicJsonStore.js +0 -62
- package/dist/recording/AudioOnlyFmp4Session.d.ts +0 -46
- package/dist/recording/AudioOnlyFmp4Session.js +0 -276
- package/dist/recording/CameraUiHdsRecordingDelegate.d.ts +0 -47
- package/dist/recording/CameraUiHdsRecordingDelegate.js +0 -334
- package/dist/recording/HevcOpusCmafDelegate.d.ts +0 -34
- package/dist/recording/HevcOpusCmafDelegate.js +0 -267
- package/dist/recording/RecordingAdapter.d.ts +0 -8
- package/dist/recording/RecordingAdapter.js +0 -4
- package/dist/recording/RecordingTiming.d.ts +0 -4
- package/dist/recording/RecordingTiming.js +0 -107
- package/dist/services/ServiceMapper.d.ts +0 -11
- package/dist/services/ServiceMapper.js +0 -9
- package/dist/sessions/LiveSessionManager.d.ts +0 -2
- package/dist/sessions/LiveSessionManager.js +0 -2
- package/dist/sessions/SessionContext.d.ts +0 -1
- package/dist/sessions/SessionContext.js +0 -1
- package/dist/sessions/SessionId.d.ts +0 -1
- package/dist/sessions/SessionId.js +0 -2
- package/dist/sessions/SessionManager.d.ts +0 -24
- package/dist/sessions/SessionManager.js +0 -60
- package/dist/sessions/resilience.d.ts +0 -3
- package/dist/sessions/resilience.js +0 -29
- package/dist/types/diagnostics.d.ts +0 -21
- package/dist/types/diagnostics.js +0 -1
- package/dist/types/media.d.ts +0 -163
- package/dist/types/media.js +0 -9
- package/dist/types/sessions.d.ts +0 -11
- package/dist/types/sessions.js +0 -1
- package/dist/version/LocalRegistryServer.d.ts +0 -12
- package/dist/version/LocalRegistryServer.js +0 -165
- package/dist/version/VersionManager.d.ts +0 -12
- package/dist/version/VersionManager.js +0 -15
- package/docs/CONFIRMED_CHANGES_AND_VERSIONING.md +0 -527
- package/docs/HKSV3_HEVC_CHANGES.md +0 -25
- package/docs/architecture.md +0 -192
- package/docs/atomic-rule-hevc-hksv3.md +0 -74
- package/docs/audio-fixtures-manifest.json +0 -105
- package/docs/bidirectional-audio.md +0 -19
- package/docs/capability-audit-plan.md +0 -53
- package/docs/deployment-0.6.12.md +0 -56
- package/docs/detection-bridge-policy.md +0 -120
- package/docs/development.md +0 -181
- package/docs/diagnostics.md +0 -87
- package/docs/file-tree.txt +0 -83
- package/docs/fixture-determinism.json +0 -30
- package/docs/fixtures-manifest.json +0 -525
- package/docs/h264-audio-normalization.md +0 -97
- package/docs/h264-wifi-validation.md +0 -68
- package/docs/hksv3-ios27-audit-plan.md +0 -133
- package/docs/hksv3-ios27-checkpoint.md +0 -328
- package/docs/hksv3-phase-1-audit.md +0 -76
- package/docs/hksv3-readiness-audit-2026-10-16.md +0 -54
- package/docs/home-assistant-mqtt.md +0 -103
- package/docs/live-hevc-preserved-settings.md +0 -11
- package/docs/npm-publication-readiness.md +0 -55
- package/docs/phase-1-validation.md +0 -108
- package/docs/phase-2-validation.md +0 -222
- package/docs/phase-3-evidence-history.json +0 -854
- package/docs/phase-3-evidence.json +0 -2877
- package/docs/phase-3-validation.md +0 -345
- package/docs/phase-4-checkpoint.md +0 -96
- package/docs/phase-4-harness.json +0 -1499
- package/docs/phase-4-runtime-evidence.json +0 -904
- package/docs/phase-4-validation.md +0 -217
- package/docs/security.md +0 -124
- package/docs/tapo-c402-current-checkpoint.md +0 -168
- package/vendor/hap-nodejs/LICENSE +0 -176
- package/vendor/hap-nodejs/PATCH.md +0 -37
- package/vendor/hap-nodejs/README.md +0 -86
- package/vendor/hap-nodejs/dist/accessories/AirConditioner_accessory.d.ts +0 -2
- package/vendor/hap-nodejs/dist/accessories/AirConditioner_accessory.js +0 -128
- package/vendor/hap-nodejs/dist/accessories/AppleTVRemote_accessory.d.ts +0 -2
- package/vendor/hap-nodejs/dist/accessories/AppleTVRemote_accessory.js +0 -159
- package/vendor/hap-nodejs/dist/accessories/Camera_accessory.d.ts +0 -2
- package/vendor/hap-nodejs/dist/accessories/Camera_accessory.js +0 -545
- package/vendor/hap-nodejs/dist/accessories/Fan_accessory.d.ts +0 -2
- package/vendor/hap-nodejs/dist/accessories/Fan_accessory.js +0 -74
- package/vendor/hap-nodejs/dist/accessories/GarageDoorOpener_accessory.d.ts +0 -2
- package/vendor/hap-nodejs/dist/accessories/GarageDoorOpener_accessory.js +0 -78
- package/vendor/hap-nodejs/dist/accessories/Light-AdaptiveLighting_accessory.d.ts +0 -2
- package/vendor/hap-nodejs/dist/accessories/Light-AdaptiveLighting_accessory.js +0 -106
- package/vendor/hap-nodejs/dist/accessories/Light_accessory.d.ts +0 -2
- package/vendor/hap-nodejs/dist/accessories/Light_accessory.js +0 -145
- package/vendor/hap-nodejs/dist/accessories/Lock_accessory.d.ts +0 -2
- package/vendor/hap-nodejs/dist/accessories/Lock_accessory.js +0 -76
- package/vendor/hap-nodejs/dist/accessories/MotionSensor_accessory.d.ts +0 -2
- package/vendor/hap-nodejs/dist/accessories/MotionSensor_accessory.js +0 -45
- package/vendor/hap-nodejs/dist/accessories/Outlet_accessory.d.ts +0 -2
- package/vendor/hap-nodejs/dist/accessories/Outlet_accessory.js +0 -79
- package/vendor/hap-nodejs/dist/accessories/SmartSpeaker_accessory.d.ts +0 -2
- package/vendor/hap-nodejs/dist/accessories/SmartSpeaker_accessory.js +0 -44
- package/vendor/hap-nodejs/dist/accessories/Sprinkler_accessory.d.ts +0 -2
- package/vendor/hap-nodejs/dist/accessories/Sprinkler_accessory.js +0 -128
- package/vendor/hap-nodejs/dist/accessories/TV_accessory.d.ts +0 -2
- package/vendor/hap-nodejs/dist/accessories/TV_accessory.js +0 -101
- package/vendor/hap-nodejs/dist/accessories/TemperatureSensor_accessory.d.ts +0 -2
- package/vendor/hap-nodejs/dist/accessories/TemperatureSensor_accessory.js +0 -44
- package/vendor/hap-nodejs/dist/accessories/Wi-FiRouter_accessory.d.ts +0 -3
- package/vendor/hap-nodejs/dist/accessories/Wi-FiRouter_accessory.js +0 -17
- package/vendor/hap-nodejs/dist/accessories/Wi-FiSatellite_accessory.d.ts +0 -3
- package/vendor/hap-nodejs/dist/accessories/Wi-FiSatellite_accessory.js +0 -19
- package/vendor/hap-nodejs/dist/accessories/gstreamer-audioProducer.d.ts +0 -25
- package/vendor/hap-nodejs/dist/accessories/gstreamer-audioProducer.js +0 -145
- package/vendor/hap-nodejs/dist/accessories/types.d.ts +0 -78
- package/vendor/hap-nodejs/dist/accessories/types.js +0 -88
- package/vendor/hap-nodejs/dist/index.d.ts +0 -50
- package/vendor/hap-nodejs/dist/index.js +0 -54
- package/vendor/hap-nodejs/dist/internal-types.d.ts +0 -76
- package/vendor/hap-nodejs/dist/internal-types.js +0 -80
- package/vendor/hap-nodejs/dist/lib/Accessory.d.ts +0 -521
- package/vendor/hap-nodejs/dist/lib/Accessory.js +0 -1762
- package/vendor/hap-nodejs/dist/lib/Advertiser.d.ts +0 -190
- package/vendor/hap-nodejs/dist/lib/Advertiser.js +0 -592
- package/vendor/hap-nodejs/dist/lib/Bridge.d.ts +0 -12
- package/vendor/hap-nodejs/dist/lib/Bridge.js +0 -19
- package/vendor/hap-nodejs/dist/lib/Characteristic.d.ts +0 -1768
- package/vendor/hap-nodejs/dist/lib/Characteristic.js +0 -2532
- package/vendor/hap-nodejs/dist/lib/HAPServer.d.ts +0 -299
- package/vendor/hap-nodejs/dist/lib/HAPServer.js +0 -968
- package/vendor/hap-nodejs/dist/lib/Service.d.ts +0 -598
- package/vendor/hap-nodejs/dist/lib/Service.js +0 -797
- package/vendor/hap-nodejs/dist/lib/camera/CMAFIngest.d.ts +0 -102
- package/vendor/hap-nodejs/dist/lib/camera/CMAFIngest.js +0 -317
- package/vendor/hap-nodejs/dist/lib/camera/HDSSnapshotTransport.d.ts +0 -38
- package/vendor/hap-nodejs/dist/lib/camera/HDSSnapshotTransport.js +0 -174
- package/vendor/hap-nodejs/dist/lib/camera/RTPProxy.d.ts +0 -59
- package/vendor/hap-nodejs/dist/lib/camera/RTPProxy.js +0 -267
- package/vendor/hap-nodejs/dist/lib/camera/RTPStreamManagement.d.ts +0 -379
- package/vendor/hap-nodejs/dist/lib/camera/RTPStreamManagement.js +0 -1021
- package/vendor/hap-nodejs/dist/lib/camera/RecordingManagement.d.ts +0 -325
- package/vendor/hap-nodejs/dist/lib/camera/RecordingManagement.js +0 -800
- package/vendor/hap-nodejs/dist/lib/camera/SecureVideoCredentials.d.ts +0 -20
- package/vendor/hap-nodejs/dist/lib/camera/SecureVideoCredentials.js +0 -48
- package/vendor/hap-nodejs/dist/lib/camera/SecureVideoTypes.d.ts +0 -618
- package/vendor/hap-nodejs/dist/lib/camera/SecureVideoTypes.js +0 -911
- package/vendor/hap-nodejs/dist/lib/camera/index.d.ts +0 -8
- package/vendor/hap-nodejs/dist/lib/camera/index.js +0 -11
- package/vendor/hap-nodejs/dist/lib/controller/AdaptiveLightingController.d.ts +0 -452
- package/vendor/hap-nodejs/dist/lib/controller/AdaptiveLightingController.js +0 -868
- package/vendor/hap-nodejs/dist/lib/controller/CameraController.d.ts +0 -410
- package/vendor/hap-nodejs/dist/lib/controller/CameraController.js +0 -658
- package/vendor/hap-nodejs/dist/lib/controller/Controller.d.ts +0 -197
- package/vendor/hap-nodejs/dist/lib/controller/Controller.js +0 -32
- package/vendor/hap-nodejs/dist/lib/controller/DoorbellController.d.ts +0 -59
- package/vendor/hap-nodejs/dist/lib/controller/DoorbellController.js +0 -102
- package/vendor/hap-nodejs/dist/lib/controller/RemoteController.d.ts +0 -434
- package/vendor/hap-nodejs/dist/lib/controller/RemoteController.js +0 -1178
- package/vendor/hap-nodejs/dist/lib/controller/SecureVideoController.d.ts +0 -380
- package/vendor/hap-nodejs/dist/lib/controller/SecureVideoController.js +0 -947
- package/vendor/hap-nodejs/dist/lib/controller/index.d.ts +0 -7
- package/vendor/hap-nodejs/dist/lib/controller/index.js +0 -10
- package/vendor/hap-nodejs/dist/lib/datastream/DataStreamManagement.d.ts +0 -73
- package/vendor/hap-nodejs/dist/lib/datastream/DataStreamManagement.js +0 -205
- package/vendor/hap-nodejs/dist/lib/datastream/DataStreamParser.d.ts +0 -186
- package/vendor/hap-nodejs/dist/lib/datastream/DataStreamParser.js +0 -880
- package/vendor/hap-nodejs/dist/lib/datastream/DataStreamServer.d.ts +0 -351
- package/vendor/hap-nodejs/dist/lib/datastream/DataStreamServer.js +0 -878
- package/vendor/hap-nodejs/dist/lib/datastream/index.d.ts +0 -4
- package/vendor/hap-nodejs/dist/lib/datastream/index.js +0 -7
- package/vendor/hap-nodejs/dist/lib/definitions/CharacteristicDefinitions.d.ts +0 -2245
- package/vendor/hap-nodejs/dist/lib/definitions/CharacteristicDefinitions.js +0 -4957
- package/vendor/hap-nodejs/dist/lib/definitions/ServiceDefinitions.d.ts +0 -584
- package/vendor/hap-nodejs/dist/lib/definitions/ServiceDefinitions.js +0 -1518
- package/vendor/hap-nodejs/dist/lib/definitions/generate-definitions.d.ts +0 -34
- package/vendor/hap-nodejs/dist/lib/definitions/generate-definitions.js +0 -624
- package/vendor/hap-nodejs/dist/lib/definitions/generator-configuration.d.ts +0 -22
- package/vendor/hap-nodejs/dist/lib/definitions/generator-configuration.js +0 -734
- package/vendor/hap-nodejs/dist/lib/definitions/index.d.ts +0 -3
- package/vendor/hap-nodejs/dist/lib/definitions/index.js +0 -6
- package/vendor/hap-nodejs/dist/lib/gen/HomeKit.d.ts +0 -8
- package/vendor/hap-nodejs/dist/lib/gen/HomeKit.js +0 -9
- package/vendor/hap-nodejs/dist/lib/model/AccessoryInfo.d.ts +0 -91
- package/vendor/hap-nodejs/dist/lib/model/AccessoryInfo.js +0 -311
- package/vendor/hap-nodejs/dist/lib/model/ControllerStorage.d.ts +0 -46
- package/vendor/hap-nodejs/dist/lib/model/ControllerStorage.js +0 -277
- package/vendor/hap-nodejs/dist/lib/model/HAPFileStorage.d.ts +0 -75
- package/vendor/hap-nodejs/dist/lib/model/HAPFileStorage.js +0 -190
- package/vendor/hap-nodejs/dist/lib/model/HAPStorage.d.ts +0 -26
- package/vendor/hap-nodejs/dist/lib/model/HAPStorage.js +0 -79
- package/vendor/hap-nodejs/dist/lib/model/IdentifierCache.d.ts +0 -33
- package/vendor/hap-nodejs/dist/lib/model/IdentifierCache.js +0 -114
- package/vendor/hap-nodejs/dist/lib/tv/AccessControlManagement.d.ts +0 -83
- package/vendor/hap-nodejs/dist/lib/tv/AccessControlManagement.js +0 -127
- package/vendor/hap-nodejs/dist/lib/util/checkName.d.ts +0 -8
- package/vendor/hap-nodejs/dist/lib/util/checkName.js +0 -28
- package/vendor/hap-nodejs/dist/lib/util/clone.d.ts +0 -7
- package/vendor/hap-nodejs/dist/lib/util/clone.js +0 -22
- package/vendor/hap-nodejs/dist/lib/util/color-utils.d.ts +0 -18
- package/vendor/hap-nodejs/dist/lib/util/color-utils.js +0 -442
- package/vendor/hap-nodejs/dist/lib/util/eventedhttp.d.ts +0 -251
- package/vendor/hap-nodejs/dist/lib/util/eventedhttp.js +0 -714
- package/vendor/hap-nodejs/dist/lib/util/hapCrypto.d.ts +0 -50
- package/vendor/hap-nodejs/dist/lib/util/hapCrypto.js +0 -185
- package/vendor/hap-nodejs/dist/lib/util/hapStatusError.d.ts +0 -16
- package/vendor/hap-nodejs/dist/lib/util/hapStatusError.js +0 -29
- package/vendor/hap-nodejs/dist/lib/util/net-utils.d.ts +0 -21
- package/vendor/hap-nodejs/dist/lib/util/net-utils.js +0 -79
- package/vendor/hap-nodejs/dist/lib/util/once.d.ts +0 -7
- package/vendor/hap-nodejs/dist/lib/util/once.js +0 -22
- package/vendor/hap-nodejs/dist/lib/util/promise-utils.d.ts +0 -14
- package/vendor/hap-nodejs/dist/lib/util/promise-utils.js +0 -29
- package/vendor/hap-nodejs/dist/lib/util/request-util.d.ts +0 -36
- package/vendor/hap-nodejs/dist/lib/util/request-util.js +0 -108
- package/vendor/hap-nodejs/dist/lib/util/time.d.ts +0 -9
- package/vendor/hap-nodejs/dist/lib/util/time.js +0 -23
- package/vendor/hap-nodejs/dist/lib/util/tlv.d.ts +0 -90
- package/vendor/hap-nodejs/dist/lib/util/tlv.js +0 -318
- package/vendor/hap-nodejs/dist/lib/util/uuid.d.ts +0 -23
- package/vendor/hap-nodejs/dist/lib/util/uuid.js +0 -78
- package/vendor/hap-nodejs/dist/types.d.ts +0 -276
- package/vendor/hap-nodejs/dist/types.js +0 -11
- package/vendor/hap-nodejs/package.json +0 -93
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,21 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [0.6.15] — Camera.UI platform install targets
|
|
4
|
+
|
|
5
|
+
- Declare macOS, Windows, and Linux on x64 and ARM64 as npm install targets,
|
|
6
|
+
matching Camera.UI's supported server platforms. Runtime testing remains
|
|
7
|
+
verified on macOS ARM64 only; the other targets require host-specific checks.
|
|
8
|
+
- Keep the official logo in the published bundle and assert the install target
|
|
9
|
+
matrix and package version in the bundle smoke test.
|
|
10
|
+
- Publish the Camera.UI-generated `bundle/` artifact rather than the source
|
|
11
|
+
repository root. This removes source-only runtime dependencies from the npm
|
|
12
|
+
install path and ships the `cameraui` metadata, `bundle.zip`, and logo that
|
|
13
|
+
Camera.UI consumes.
|
|
14
|
+
- Embed the pinned HAP runtime and its complete production dependency tree in
|
|
15
|
+
`bundle.zip`. Camera.UI therefore performs no dependency download after
|
|
16
|
+
extracting the npm package, avoiding installation failures caused by a
|
|
17
|
+
user-owned npm cache with incorrect permissions.
|
|
18
|
+
|
|
3
19
|
## [0.6.14] — npm account scope correction
|
|
4
20
|
|
|
5
21
|
- Rename the public package from `@chrisalvir/camera-ui-homekit-4k` to
|
package/LICENSE.md
CHANGED
|
@@ -1,8 +1,21 @@
|
|
|
1
|
-
|
|
1
|
+
HOMEKIT 4K PROPRIETARY SOFTWARE LICENSE
|
|
2
2
|
|
|
3
|
-
Copyright Chrisalvir. All rights reserved.
|
|
3
|
+
Copyright (c) 2026 Chrisalvir. All rights reserved.
|
|
4
4
|
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
5
|
+
Permission is granted to download, install, and run an unmodified copy of
|
|
6
|
+
HOMEKIT 4K with Camera.UI for lawful personal or commercial use. This permission
|
|
7
|
+
does not transfer ownership of the software.
|
|
8
|
+
|
|
9
|
+
You may not modify, adapt, translate, or create derivative works from HOMEKIT
|
|
10
|
+
4K. You may not redistribute, sublicense, republish, or sell copies of the
|
|
11
|
+
software. Any permission beyond downloading, installing, and running an
|
|
12
|
+
unmodified copy requires prior written permission from the copyright holder.
|
|
13
|
+
|
|
14
|
+
The copyright notice and this license must accompany any permitted unmodified
|
|
15
|
+
copy.
|
|
16
|
+
|
|
17
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
18
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
19
|
+
FITNESS FOR A PARTICULAR PURPOSE, AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
20
|
+
AUTHOR OR COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES, OR OTHER LIABILITY
|
|
21
|
+
ARISING FROM, OUT OF, OR IN CONNECTION WITH THE SOFTWARE OR ITS USE.
|
package/README.md
CHANGED
|
@@ -6,10 +6,10 @@ HomeKit 4K exports cameras assigned to the plugin in Camera.UI as separate
|
|
|
6
6
|
Apple Home accessories. Camera.UI remains the source of camera streams,
|
|
7
7
|
capabilities, sensors, and detector configuration.
|
|
8
8
|
|
|
9
|
-
**
|
|
10
|
-
with Camera.UI 2.3.0 using
|
|
11
|
-
the npm scope to match the owner's npm account and
|
|
12
|
-
behavior. Runtime evidence and limits are in
|
|
9
|
+
**Next release prepared: 0.6.15 (not published).** Runtime behavior was
|
|
10
|
+
validated on the developer MacBook with Camera.UI 2.3.0 using package 0.6.12.
|
|
11
|
+
Version 0.6.14 fixed the npm scope to match the owner's npm account and did not
|
|
12
|
+
change camera runtime behavior. Runtime evidence and limits are in
|
|
13
13
|
[`docs/deployment-0.6.12.md`](docs/deployment-0.6.12.md).
|
|
14
14
|
|
|
15
15
|
## Current behavior
|
|
@@ -33,14 +33,12 @@ behavior. Runtime evidence and limits are in
|
|
|
33
33
|
|
|
34
34
|
## Requirements and installation
|
|
35
35
|
|
|
36
|
-
The package
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
must be confirmed or removed before promising support for other Camera.UI
|
|
43
|
-
platforms.
|
|
36
|
+
The package declares Camera.UI >=2.3.0 and Node.js >=22.18.0. Starting with
|
|
37
|
+
0.6.15, npm allows installation on macOS, Windows, and Linux on x64 or ARM64.
|
|
38
|
+
The runtime has only been exercised on macOS ARM64; Windows, Linux, and macOS
|
|
39
|
+
Intel still need real-host validation before they can be called verified.
|
|
40
|
+
In Camera.UI's plugin store, search for the shorter text `camera-ui-homekit-4k`
|
|
41
|
+
and select the scoped package `@chrisalvir1/camera-ui-homekit-4k`.
|
|
44
42
|
|
|
45
43
|
## Development
|
|
46
44
|
|
package/bundle.zip
ADDED
|
Binary file
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@chrisalvir1/camera-ui-homekit-4k",
|
|
3
3
|
"displayName": "HOMEKIT 4K — by Chrisalvir",
|
|
4
|
-
"version": "0.6.
|
|
4
|
+
"version": "0.6.15",
|
|
5
5
|
"description": "Exports Camera.UI cameras to Apple Home with H.264/HKSV and HEVC/HKSV3 streaming paths.",
|
|
6
6
|
"homepage": "https://github.com/Chrisalvir1/homekit-4k",
|
|
7
7
|
"repository": {
|
|
@@ -17,58 +17,26 @@
|
|
|
17
17
|
"access": "public",
|
|
18
18
|
"registry": "https://registry.npmjs.org/"
|
|
19
19
|
},
|
|
20
|
-
"type": "
|
|
20
|
+
"type": "commonjs",
|
|
21
21
|
"main": "./dist/index.js",
|
|
22
22
|
"types": "./dist/index.d.ts",
|
|
23
23
|
"files": [
|
|
24
|
-
"
|
|
25
|
-
"
|
|
26
|
-
"
|
|
27
|
-
"vendor/hap-nodejs/dist/**/*.d.ts",
|
|
28
|
-
"vendor/hap-nodejs/package.json",
|
|
29
|
-
"vendor/hap-nodejs/LICENSE",
|
|
30
|
-
"vendor/hap-nodejs/PATCH.md",
|
|
31
|
-
"vendor/hap-nodejs/README.md",
|
|
32
|
-
"docs",
|
|
33
|
-
"LICENSE",
|
|
34
|
-
"logo.png",
|
|
35
|
-
"README.md",
|
|
36
|
-
"CHANGELOG.md"
|
|
24
|
+
"bundle.zip",
|
|
25
|
+
"CHANGELOG.md",
|
|
26
|
+
"logo.png"
|
|
37
27
|
],
|
|
38
28
|
"engines": {
|
|
39
29
|
"node": ">=22.18.0",
|
|
40
30
|
"camera.ui": ">=2.3.0"
|
|
41
31
|
},
|
|
42
32
|
"os": [
|
|
43
|
-
"darwin"
|
|
33
|
+
"darwin",
|
|
34
|
+
"linux",
|
|
35
|
+
"win32"
|
|
44
36
|
],
|
|
45
37
|
"cpu": [
|
|
46
|
-
"arm64"
|
|
47
|
-
|
|
48
|
-
"dependencies": {
|
|
49
|
-
"@camera.ui/sdk": "1.4.1",
|
|
50
|
-
"@homebridge/hap-nodejs": "file:vendor/hap-nodejs",
|
|
51
|
-
"@noble/ciphers": "2.4.0",
|
|
52
|
-
"fflate": "0.8.3",
|
|
53
|
-
"mqtt": "5.16.0",
|
|
54
|
-
"qrcode": "1.5.4",
|
|
55
|
-
"werift": "0.23.0"
|
|
56
|
-
},
|
|
57
|
-
"devDependencies": {
|
|
58
|
-
"@camera.ui/cli": "0.0.116",
|
|
59
|
-
"@types/node": "24.10.0",
|
|
60
|
-
"@types/qrcode": "1.5.6",
|
|
61
|
-
"eslint": "10.11.0",
|
|
62
|
-
"typescript": "5.9.3",
|
|
63
|
-
"typescript-eslint": "8.71.0"
|
|
64
|
-
},
|
|
65
|
-
"homekit4k": {
|
|
66
|
-
"releaseChannel": "stable"
|
|
67
|
-
},
|
|
68
|
-
"keywords": [
|
|
69
|
-
"camera-ui-plugin",
|
|
70
|
-
"camera-ui",
|
|
71
|
-
"homekit"
|
|
38
|
+
"arm64",
|
|
39
|
+
"x64"
|
|
72
40
|
],
|
|
73
41
|
"scripts": {
|
|
74
42
|
"build": "node scripts/build-vendored-hap.mjs && node scripts/build.mjs",
|
|
@@ -84,6 +52,19 @@
|
|
|
84
52
|
"smoke:bundle": "node scripts/smoke-bundle.mjs",
|
|
85
53
|
"examples": "pnpm build && node scripts/examples.mjs",
|
|
86
54
|
"bundle:camera-ui": "pnpm build && cui bundle && node scripts/finalize-camera-ui-bundle.mjs",
|
|
55
|
+
"publish:camera-ui": "pnpm bundle:camera-ui && npm publish ./bundle --access public --registry=https://registry.npmjs.org/",
|
|
87
56
|
"test:audio": "pnpm build && node scripts/audio-lab/test-audio.mjs"
|
|
57
|
+
},
|
|
58
|
+
"homekit4k": {
|
|
59
|
+
"releaseChannel": "stable"
|
|
60
|
+
},
|
|
61
|
+
"packageManager": "pnpm@11.25.0",
|
|
62
|
+
"keywords": [
|
|
63
|
+
"camera-ui-plugin",
|
|
64
|
+
"camera-ui",
|
|
65
|
+
"homekit"
|
|
66
|
+
],
|
|
67
|
+
"cameraui": {
|
|
68
|
+
"protocolLevel": 2
|
|
88
69
|
}
|
|
89
|
-
}
|
|
70
|
+
}
|
package/LICENSE
DELETED
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
HOMEKIT 4K PROPRIETARY SOFTWARE LICENSE
|
|
2
|
-
|
|
3
|
-
Copyright (c) 2026 Chrisalvir. All rights reserved.
|
|
4
|
-
|
|
5
|
-
Permission is granted to download, install, and run an unmodified copy of
|
|
6
|
-
HOMEKIT 4K with Camera.UI for lawful personal or commercial use. This permission
|
|
7
|
-
does not transfer ownership of the software.
|
|
8
|
-
|
|
9
|
-
You may not modify, adapt, translate, or create derivative works from HOMEKIT
|
|
10
|
-
4K. You may not redistribute, sublicense, republish, or sell copies of the
|
|
11
|
-
software. Any permission beyond downloading, installing, and running an
|
|
12
|
-
unmodified copy requires prior written permission from the copyright holder.
|
|
13
|
-
|
|
14
|
-
The copyright notice and this license must accompany any permitted unmodified
|
|
15
|
-
copy.
|
|
16
|
-
|
|
17
|
-
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
18
|
-
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
19
|
-
FITNESS FOR A PARTICULAR PURPOSE, AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
20
|
-
AUTHOR OR COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES, OR OTHER LIABILITY
|
|
21
|
-
ARISING FROM, OUT OF, OR IN CONNECTION WITH THE SOFTWARE OR ITS USE.
|
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
export interface StoredPtzPosition {
|
|
2
|
-
pan: number;
|
|
3
|
-
tilt: number;
|
|
4
|
-
zoom: number;
|
|
5
|
-
}
|
|
6
|
-
export interface StoredPtzPreset {
|
|
7
|
-
name: string;
|
|
8
|
-
position: StoredPtzPosition;
|
|
9
|
-
savedAt: string;
|
|
10
|
-
includeInPatrol: boolean;
|
|
11
|
-
}
|
|
12
|
-
export type HomeKitVideoMode = 'CLASSIC_H264' | 'HKSV3_LOCAL_HEVC';
|
|
13
|
-
export interface CameraAccessoryConfig {
|
|
14
|
-
exportEnabled: boolean;
|
|
15
|
-
/** True after the one-time first-export default for HEVC/HKSV3 recording audio was applied. */
|
|
16
|
-
recordingAudioDefaultInitialized: boolean;
|
|
17
|
-
sourceId?: string;
|
|
18
|
-
videoMode: HomeKitVideoMode;
|
|
19
|
-
ptzEnabled: boolean;
|
|
20
|
-
patrolEnabled: boolean;
|
|
21
|
-
patrolIntervalSeconds: number;
|
|
22
|
-
presets: Array<StoredPtzPreset | null>;
|
|
23
|
-
defaultPreset?: number;
|
|
24
|
-
tracking: {
|
|
25
|
-
person: boolean;
|
|
26
|
-
animal: boolean;
|
|
27
|
-
vehicle: boolean;
|
|
28
|
-
};
|
|
29
|
-
}
|
|
30
|
-
export declare class AccessoryConfigStore {
|
|
31
|
-
private readonly store;
|
|
32
|
-
constructor(root: string);
|
|
33
|
-
get(cameraId: string): Promise<CameraAccessoryConfig>;
|
|
34
|
-
update(cameraId: string, change: (current: CameraAccessoryConfig) => CameraAccessoryConfig): Promise<CameraAccessoryConfig>;
|
|
35
|
-
exportEnabled(): Promise<string[]>;
|
|
36
|
-
}
|
|
@@ -1,79 +0,0 @@
|
|
|
1
|
-
import { join } from 'node:path';
|
|
2
|
-
import { AtomicJsonStore, record } from "../persistence/AtomicJsonStore.js";
|
|
3
|
-
const initialCamera = () => ({ exportEnabled: false, recordingAudioDefaultInitialized: false,
|
|
4
|
-
videoMode: 'CLASSIC_H264', ptzEnabled: false, patrolEnabled: false, patrolIntervalSeconds: 15,
|
|
5
|
-
presets: [null, null, null, null, null],
|
|
6
|
-
tracking: { person: false, animal: false, vehicle: false } });
|
|
7
|
-
function decode(value) {
|
|
8
|
-
if (!record(value) || value.schemaVersion !== 1 || !record(value.cameras))
|
|
9
|
-
throw new Error('Invalid accessory configuration schema');
|
|
10
|
-
const cameras = Object.create(null);
|
|
11
|
-
for (const [cameraId, raw] of Object.entries(value.cameras)) {
|
|
12
|
-
if (!cameraId || !record(raw) || typeof raw.exportEnabled !== 'boolean' || typeof raw.ptzEnabled !== 'boolean' ||
|
|
13
|
-
!Array.isArray(raw.presets) || raw.presets.length !== 5 || !record(raw.tracking) ||
|
|
14
|
-
typeof raw.tracking.person !== 'boolean' || typeof raw.tracking.animal !== 'boolean' || typeof raw.tracking.vehicle !== 'boolean') {
|
|
15
|
-
throw new Error('Invalid per-camera accessory configuration');
|
|
16
|
-
}
|
|
17
|
-
const presets = raw.presets.map(preset => {
|
|
18
|
-
if (preset === null)
|
|
19
|
-
return null;
|
|
20
|
-
if (!record(preset) || typeof preset.name !== 'string' || !preset.name.trim() || typeof preset.savedAt !== 'string' ||
|
|
21
|
-
!record(preset.position) || typeof preset.position.pan !== 'number' || typeof preset.position.tilt !== 'number' ||
|
|
22
|
-
typeof preset.position.zoom !== 'number' || ![preset.position.pan, preset.position.tilt, preset.position.zoom].every(Number.isFinite)) {
|
|
23
|
-
throw new Error('Invalid PTZ preset');
|
|
24
|
-
}
|
|
25
|
-
const pan = preset.position.pan;
|
|
26
|
-
const tilt = preset.position.tilt;
|
|
27
|
-
const zoom = preset.position.zoom;
|
|
28
|
-
if (pan < -1 || pan > 1 || tilt < -1 || tilt > 1 || zoom < 0 || zoom > 1)
|
|
29
|
-
throw new Error('PTZ position is outside normalized limits');
|
|
30
|
-
return { name: preset.name.trim().slice(0, 48), savedAt: preset.savedAt,
|
|
31
|
-
position: { pan, tilt, zoom }, includeInPatrol: typeof preset.includeInPatrol === 'boolean' ? preset.includeInPatrol : true };
|
|
32
|
-
});
|
|
33
|
-
const defaultPreset = raw.defaultPreset;
|
|
34
|
-
if (defaultPreset !== undefined && (typeof defaultPreset !== 'number' || !Number.isInteger(defaultPreset) || defaultPreset < 0 ||
|
|
35
|
-
defaultPreset >= 5 || presets[defaultPreset] === null)) {
|
|
36
|
-
throw new Error('Invalid default PTZ preset');
|
|
37
|
-
}
|
|
38
|
-
if (!record(raw.tracking) || typeof raw.tracking.person !== 'boolean' || typeof raw.tracking.animal !== 'boolean' ||
|
|
39
|
-
typeof raw.tracking.vehicle !== 'boolean')
|
|
40
|
-
throw new Error('Invalid tracking flags');
|
|
41
|
-
cameras[cameraId] = { exportEnabled: raw.exportEnabled,
|
|
42
|
-
// Older saved camera configs predate the default. Initialize HEVC/HKSV3
|
|
43
|
-
// once after HAP restore, then persist the marker so later user choices stick.
|
|
44
|
-
recordingAudioDefaultInitialized: typeof raw.recordingAudioDefaultInitialized === 'boolean'
|
|
45
|
-
? raw.recordingAudioDefaultInitialized : false,
|
|
46
|
-
videoMode: raw.videoMode === 'HKSV3_LOCAL_HEVC' ? 'HKSV3_LOCAL_HEVC' : 'CLASSIC_H264', ptzEnabled: raw.ptzEnabled,
|
|
47
|
-
patrolEnabled: typeof raw.patrolEnabled === 'boolean' ? raw.patrolEnabled : false,
|
|
48
|
-
...(typeof raw.sourceId === 'string' && raw.sourceId ? { sourceId: raw.sourceId } : {}), presets,
|
|
49
|
-
patrolIntervalSeconds: typeof raw.patrolIntervalSeconds === 'number' && Number.isInteger(raw.patrolIntervalSeconds) &&
|
|
50
|
-
raw.patrolIntervalSeconds >= 5 && raw.patrolIntervalSeconds <= 300 ? raw.patrolIntervalSeconds : 15,
|
|
51
|
-
...(typeof defaultPreset === 'number' ? { defaultPreset } : {}),
|
|
52
|
-
tracking: { person: raw.tracking.person, animal: raw.tracking.animal, vehicle: raw.tracking.vehicle } };
|
|
53
|
-
}
|
|
54
|
-
return { schemaVersion: 1, cameras };
|
|
55
|
-
}
|
|
56
|
-
export class AccessoryConfigStore {
|
|
57
|
-
store;
|
|
58
|
-
constructor(root) {
|
|
59
|
-
this.store = new AtomicJsonStore(join(root, 'accessories', 'config.json'), () => ({ schemaVersion: 1, cameras: {} }), decode);
|
|
60
|
-
}
|
|
61
|
-
async get(cameraId) {
|
|
62
|
-
const value = (await this.store.read()).cameras[cameraId];
|
|
63
|
-
return structuredClone(value ?? initialCamera());
|
|
64
|
-
}
|
|
65
|
-
async update(cameraId, change) {
|
|
66
|
-
if (!cameraId.trim())
|
|
67
|
-
throw new Error('Camera ID required');
|
|
68
|
-
const state = await this.store.update(current => {
|
|
69
|
-
const previous = current.cameras[cameraId] ?? initialCamera();
|
|
70
|
-
const updated = change(structuredClone(previous));
|
|
71
|
-
return { schemaVersion: 1, cameras: { ...current.cameras, [cameraId]: updated } };
|
|
72
|
-
});
|
|
73
|
-
return structuredClone(state.cameras[cameraId]);
|
|
74
|
-
}
|
|
75
|
-
async exportEnabled() {
|
|
76
|
-
const state = await this.store.read();
|
|
77
|
-
return Object.entries(state.cameras).filter(([, config]) => config.exportEnabled).map(([cameraId]) => cameraId);
|
|
78
|
-
}
|
|
79
|
-
}
|
|
@@ -1,125 +0,0 @@
|
|
|
1
|
-
import type { CameraUiAdapter } from '../camera-ui/CameraUiAdapter.ts';
|
|
2
|
-
import type { IdentityStore } from '../identity/IdentityStore.ts';
|
|
3
|
-
import type { NativeVideoEngine } from '../media/NativeVideoEngine.ts';
|
|
4
|
-
import type { Diagnostics } from '../diagnostics/Diagnostics.ts';
|
|
5
|
-
import type { InspectableHapAdapter } from '../hap/HapAdapter.ts';
|
|
6
|
-
import { AccessoryConfigStore, type HomeKitVideoMode } from './AccessoryConfigStore.ts';
|
|
7
|
-
import { type H264AudioRuntime } from '../h264/AudioRuntime.ts';
|
|
8
|
-
export interface AccessoryView {
|
|
9
|
-
cameraId: string;
|
|
10
|
-
name: string;
|
|
11
|
-
published: boolean;
|
|
12
|
-
paired: boolean;
|
|
13
|
-
sourceId?: string;
|
|
14
|
-
videoCodec?: string;
|
|
15
|
-
width?: number;
|
|
16
|
-
height?: number;
|
|
17
|
-
processing: 'UNKNOWN_NOT_VERIFIED';
|
|
18
|
-
audio: 'H264_NORMALIZED_AUDIO_UNVERIFIED' | 'PCMA_8KHZ_ADVERTISED_UNVERIFIED' | 'OPUS_48KHZ_20MS_FROM_PCMA_8KHZ_UNVERIFIED' | 'OPUS_48KHZ_OR_AAC_ELD_24KHZ_20MS_FROM_PCMA_8KHZ_UNVERIFIED';
|
|
19
|
-
entities: Array<{
|
|
20
|
-
id: string;
|
|
21
|
-
type: string;
|
|
22
|
-
name: string;
|
|
23
|
-
capabilities: string[];
|
|
24
|
-
}>;
|
|
25
|
-
ptz?: {
|
|
26
|
-
available: boolean;
|
|
27
|
-
enabled: boolean;
|
|
28
|
-
patrolEnabled: boolean;
|
|
29
|
-
capabilities: string[];
|
|
30
|
-
nativePresets?: string[];
|
|
31
|
-
positions: Array<({
|
|
32
|
-
name: string;
|
|
33
|
-
position: {
|
|
34
|
-
pan: number;
|
|
35
|
-
tilt: number;
|
|
36
|
-
zoom: number;
|
|
37
|
-
};
|
|
38
|
-
includeInPatrol: boolean;
|
|
39
|
-
} | null)>;
|
|
40
|
-
defaultPositionSlot?: number;
|
|
41
|
-
patrolIntervalSeconds: number;
|
|
42
|
-
position?: {
|
|
43
|
-
pan: number;
|
|
44
|
-
tilt: number;
|
|
45
|
-
zoom: number;
|
|
46
|
-
};
|
|
47
|
-
};
|
|
48
|
-
error?: string;
|
|
49
|
-
}
|
|
50
|
-
export interface PairingView {
|
|
51
|
-
setupUri: string;
|
|
52
|
-
manualCode: string;
|
|
53
|
-
paired: false;
|
|
54
|
-
}
|
|
55
|
-
export declare function brandedHomeKitSetupQr(setupUri: string, manualCode?: string, accessoryName?: string): Promise<string>;
|
|
56
|
-
export declare function brandedHomeKitPlaceholderQr(statusBadge: string, lines: string[], footerBadge?: string, accessoryName?: string, variant?: 'info' | 'success' | 'warn'): string;
|
|
57
|
-
export declare function formatHomeKitPin(value: number): string;
|
|
58
|
-
/** Publishes one independent classic HAP camera accessory for an explicitly selected Camera.UI camera. */
|
|
59
|
-
export declare class CameraAccessoryManager {
|
|
60
|
-
private readonly host;
|
|
61
|
-
private readonly hapAdapter;
|
|
62
|
-
private readonly identities;
|
|
63
|
-
private readonly video;
|
|
64
|
-
private readonly diagnostics;
|
|
65
|
-
private readonly storagePath;
|
|
66
|
-
private readonly h264AudioRuntime;
|
|
67
|
-
readonly config: AccessoryConfigStore;
|
|
68
|
-
private readonly live;
|
|
69
|
-
private readonly statuses;
|
|
70
|
-
private readonly serial;
|
|
71
|
-
private closed;
|
|
72
|
-
private readonly patrolJobs;
|
|
73
|
-
private readonly pendingPositionMoves;
|
|
74
|
-
private readonly stoppingPtz;
|
|
75
|
-
private readonly ptzStateListeners;
|
|
76
|
-
constructor(host: CameraUiAdapter, hapAdapter: InspectableHapAdapter, identities: IdentityStore, video: NativeVideoEngine, diagnostics: Diagnostics, storagePath: string, h264AudioRuntime?: () => Promise<H264AudioRuntime>);
|
|
77
|
-
start(): Promise<void>;
|
|
78
|
-
cameraAvailable(cameraId: string): Promise<void>;
|
|
79
|
-
cameraUnavailable(cameraId: string): Promise<void>;
|
|
80
|
-
sensorsChanged(): Promise<void>;
|
|
81
|
-
onPtzPatrolStateChanged(listener: (cameraId: string, enabled: boolean) => void): () => void;
|
|
82
|
-
enable(cameraId: string, sourceId: string, videoMode?: HomeKitVideoMode): Promise<void>;
|
|
83
|
-
disable(cameraId: string): Promise<void>;
|
|
84
|
-
/** Clears this accessory's local HAP pairing records. The Home app may also require removal on the iPhone. */
|
|
85
|
-
unlink(cameraId: string): Promise<void>;
|
|
86
|
-
ptzInfo(cameraId: string): Promise<AccessoryView['ptz']>;
|
|
87
|
-
setPtzEnabled(cameraId: string, enabled: boolean): Promise<void>;
|
|
88
|
-
setPtzPatrolEnabled(cameraId: string, enabled: boolean): Promise<void>;
|
|
89
|
-
savePtzPreset(cameraId: string, slot: number, name: string): Promise<void>;
|
|
90
|
-
setDefaultPtzPreset(cameraId: string, slot: number): Promise<void>;
|
|
91
|
-
setPtzPresetIncludedInPatrol(cameraId: string, slot: number, included: boolean): Promise<void>;
|
|
92
|
-
deletePtzPreset(cameraId: string, slot: number): Promise<void>;
|
|
93
|
-
movePtzRelative(cameraId: string, panDelta: number, tiltDelta: number, zoomDelta: number): Promise<void>;
|
|
94
|
-
jogPtz(cameraId: string, pan: number, tilt: number, zoom: number): Promise<void>;
|
|
95
|
-
stopPtz(cameraId: string): Promise<void>;
|
|
96
|
-
moveToPtzPreset(cameraId: string, slot: number): Promise<void>;
|
|
97
|
-
moveToDefaultPtzPreset(cameraId: string): Promise<void>;
|
|
98
|
-
pairing(cameraId: string): Promise<PairingView | undefined>;
|
|
99
|
-
pairingQr(cameraId: string): Promise<string>;
|
|
100
|
-
snapshot(): Promise<AccessoryView[]>;
|
|
101
|
-
close(): Promise<void>;
|
|
102
|
-
private publish;
|
|
103
|
-
private measuredSecureVideoTiers;
|
|
104
|
-
private updateMotionState;
|
|
105
|
-
private bindMotion;
|
|
106
|
-
private bindCameraEntities;
|
|
107
|
-
private entityView;
|
|
108
|
-
private storedPairingState;
|
|
109
|
-
private rotatePin;
|
|
110
|
-
private unpublish;
|
|
111
|
-
private disposeLive;
|
|
112
|
-
private refreshStatus;
|
|
113
|
-
private findPtz;
|
|
114
|
-
private presetNames;
|
|
115
|
-
private schedulePatrol;
|
|
116
|
-
private advancePatrol;
|
|
117
|
-
private failPatrol;
|
|
118
|
-
private clearPatrol;
|
|
119
|
-
private requirePtz;
|
|
120
|
-
private moveToSavedPosition;
|
|
121
|
-
private stopPtzMovement;
|
|
122
|
-
private validPosition;
|
|
123
|
-
private runtime;
|
|
124
|
-
private queue;
|
|
125
|
-
}
|