@camstack/types 1.2.242 → 1.2.244

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.
@@ -173,10 +173,23 @@ export type CameraSwitchAuthority = z.infer<typeof CameraSwitchAuthoritySchema>;
173
173
  export declare const CameraSwitchUnavailableReasonSchema: z.ZodEnum<{
174
174
  "no-provider": "no-provider";
175
175
  "source-unreachable": "source-unreachable";
176
- "not-configured": "not-configured";
177
176
  "device-disabled": "device-disabled";
178
177
  }>;
179
178
  export type CameraSwitchUnavailableReason = z.infer<typeof CameraSwitchUnavailableReasonSchema>;
179
+ /**
180
+ * Something true about a switch that is nonetheless OFFERED.
181
+ *
182
+ * The distinction from {@link CameraSwitchUnavailableReasonSchema} is the
183
+ * whole point: a reason replaces the control, a warning travels WITH it. The
184
+ * privacy mask taught us the difference — greying the one button that starts
185
+ * the feature teaches the operator the feature is broken, while a live toggle
186
+ * that flips nothing teaches them the switch is broken. Neither is true; the
187
+ * honest surface is a working toggle that says what is missing.
188
+ */
189
+ export declare const CameraSwitchWarningSchema: z.ZodEnum<{
190
+ "no-privacy-zones": "no-privacy-zones";
191
+ }>;
192
+ export type CameraSwitchWarning = z.infer<typeof CameraSwitchWarningSchema>;
180
193
  /**
181
194
  * One switch, resolved for one camera.
182
195
  *
@@ -203,9 +216,11 @@ export declare const CameraSwitchSchema: z.ZodObject<{
203
216
  unavailableReason: z.ZodOptional<z.ZodEnum<{
204
217
  "no-provider": "no-provider";
205
218
  "source-unreachable": "source-unreachable";
206
- "not-configured": "not-configured";
207
219
  "device-disabled": "device-disabled";
208
220
  }>>;
221
+ warning: z.ZodOptional<z.ZodEnum<{
222
+ "no-privacy-zones": "no-privacy-zones";
223
+ }>>;
209
224
  enabled: z.ZodBoolean;
210
225
  authority: z.ZodDiscriminatedUnion<[z.ZodObject<{
211
226
  kind: z.ZodLiteral<"device-disabled">;
@@ -248,9 +263,11 @@ export declare const CameraSwitchGroupSchema: z.ZodObject<{
248
263
  unavailableReason: z.ZodOptional<z.ZodEnum<{
249
264
  "no-provider": "no-provider";
250
265
  "source-unreachable": "source-unreachable";
251
- "not-configured": "not-configured";
252
266
  "device-disabled": "device-disabled";
253
267
  }>>;
268
+ warning: z.ZodOptional<z.ZodEnum<{
269
+ "no-privacy-zones": "no-privacy-zones";
270
+ }>>;
254
271
  enabled: z.ZodBoolean;
255
272
  authority: z.ZodDiscriminatedUnion<[z.ZodObject<{
256
273
  kind: z.ZodLiteral<"device-disabled">;
@@ -446,10 +463,11 @@ export interface PrivacyMaskSwitchState {
446
463
  * (`getStatus().regions.length`). `null` = supported, but the status could
447
464
  * not be read.
448
465
  *
449
- * **Zero is not "off", it is "nothing to switch".** Toggling the master
450
- * enable with no zones changes not one pixel — the dead control D62 exists
451
- * to remove — so it resolves to `not-configured`, which tells the operator
452
- * to go and draw one instead of leaving them pressing a button.
466
+ * **Zero is not "off", it is "nothing to blank yet".** The master enable
467
+ * still writes to the camera and still persists; it just has no region to
468
+ * act on. So the switch is offered with the `no-privacy-zones` warning,
469
+ * which names the missing thing. `null` is a different answer entirely and
470
+ * stays unavailable.
453
471
  */
454
472
  readonly configuredRegions: number | null;
455
473
  /**
@@ -3434,6 +3434,7 @@ function createDeviceProxy(api, binding, opts) {
3434
3434
  pressureSensor: createSliceHandle(stateSource, binding.deviceId, "pressure-sensor"),
3435
3435
  privacyMask: createSliceHandle(stateSource, binding.deviceId, "privacy-mask"),
3436
3436
  ptzAutotrack: createSliceHandle(stateSource, binding.deviceId, "ptz-autotrack"),
3437
+ recordingOnboard: createSliceHandle(stateSource, binding.deviceId, "recording-onboard"),
3437
3438
  recordingSignal: createSliceHandle(stateSource, binding.deviceId, "recording-signal"),
3438
3439
  sceneMonitor: createSliceHandle(stateSource, binding.deviceId, "scene-monitor"),
3439
3440
  scriptRunner: createSliceHandle(stateSource, binding.deviceId, "script-runner"),
@@ -3554,6 +3555,7 @@ function createDeviceProxy(api, binding, opts) {
3554
3555
  getDeviceLiveContribution: (input) => dispatch("detection-pipeline", "detectionPipeline", "getDeviceLiveContribution", "query", input),
3555
3556
  applyDeviceSettingsPatch: (input) => dispatch("detection-pipeline", "detectionPipeline", "applyDeviceSettingsPatch", "mutation", input)
3556
3557
  },
3558
+ deviceAdminLink: { getAdminLink: (input) => dispatch("device-admin-link", "deviceAdminLink", "getAdminLink", "query", input) },
3557
3559
  deviceDiscovery: {
3558
3560
  listDiscovered: (input) => dispatch("device-discovery", "deviceDiscovery", "listDiscovered", "query", input),
3559
3561
  refreshDiscovery: (input) => dispatch("device-discovery", "deviceDiscovery", "refreshDiscovery", "mutation", input),
@@ -3835,6 +3837,11 @@ function createDeviceProxy(api, binding, opts) {
3835
3837
  setSettings: (input) => dispatch("ptz-autotrack", "ptzAutotrack", "setSettings", "mutation", input)
3836
3838
  },
3837
3839
  reboot: { reboot: (input) => dispatch("reboot", "reboot", "reboot", "mutation", input) },
3840
+ recordingOnboard: {
3841
+ getOptions: (input) => dispatch("recording-onboard", "recordingOnboard", "getOptions", "query", input),
3842
+ setSettings: (input) => dispatch("recording-onboard", "recordingOnboard", "setSettings", "mutation", input),
3843
+ getStatus: (input) => dispatch("recording-onboard", "recordingOnboard", "getStatus", "query", input)
3844
+ },
3838
3845
  recordingSignal: { getStatus: (input) => dispatch("recording-signal", "recordingSignal", "getStatus", "query", input) },
3839
3846
  sceneMonitor: {
3840
3847
  listScenes: (input) => dispatch("scene-monitor", "sceneMonitor", "listScenes", "query", input),
@@ -3904,7 +3911,8 @@ function createDeviceProxy(api, binding, opts) {
3904
3911
  listClips: (input) => dispatch("videoclips", "videoclips", "listClips", "query", input),
3905
3912
  listSources: (input) => dispatch("videoclips", "videoclips", "listSources", "query", input),
3906
3913
  getClipPlayback: (input) => dispatch("videoclips", "videoclips", "getClipPlayback", "query", input),
3907
- readClipBytes: (input) => dispatch("videoclips", "videoclips", "readClipBytes", "query", input)
3914
+ readClipBytes: (input) => dispatch("videoclips", "videoclips", "readClipBytes", "query", input),
3915
+ dialClipStream: (input) => dispatch("videoclips", "videoclips", "dialClipStream", "query", input)
3908
3916
  },
3909
3917
  waterHeater: {
3910
3918
  setTargetTemp: (input) => dispatch("water-heater", "waterHeater", "setTargetTemp", "mutation", input),
@@ -4112,7 +4120,7 @@ function createDeviceProxy(api, binding, opts) {
4112
4120
  * can answer "may a rule actuate this?" without importing the schema barrel
4113
4121
  * (~144MB RSS per runner, D28).
4114
4122
  *
4115
- * Coverage: 85 device-scoped capabilities.
4123
+ * Coverage: 87 device-scoped capabilities.
4116
4124
  */
4117
4125
  var DEVICE_SCOPED_CAPS = new Set([
4118
4126
  "accessories",
@@ -4140,6 +4148,7 @@ var DEVICE_SCOPED_CAPS = new Set([
4140
4148
  "cover",
4141
4149
  "day-night",
4142
4150
  "detection-pipeline",
4151
+ "device-admin-link",
4143
4152
  "device-discovery",
4144
4153
  "device-ops",
4145
4154
  "device-status",
@@ -4178,6 +4187,7 @@ var DEVICE_SCOPED_CAPS = new Set([
4178
4187
  "ptz",
4179
4188
  "ptz-autotrack",
4180
4189
  "reboot",
4190
+ "recording-onboard",
4181
4191
  "recording-signal",
4182
4192
  "scene-monitor",
4183
4193
  "script-runner",
@@ -3434,6 +3434,7 @@ function createDeviceProxy(api, binding, opts) {
3434
3434
  pressureSensor: createSliceHandle(stateSource, binding.deviceId, "pressure-sensor"),
3435
3435
  privacyMask: createSliceHandle(stateSource, binding.deviceId, "privacy-mask"),
3436
3436
  ptzAutotrack: createSliceHandle(stateSource, binding.deviceId, "ptz-autotrack"),
3437
+ recordingOnboard: createSliceHandle(stateSource, binding.deviceId, "recording-onboard"),
3437
3438
  recordingSignal: createSliceHandle(stateSource, binding.deviceId, "recording-signal"),
3438
3439
  sceneMonitor: createSliceHandle(stateSource, binding.deviceId, "scene-monitor"),
3439
3440
  scriptRunner: createSliceHandle(stateSource, binding.deviceId, "script-runner"),
@@ -3554,6 +3555,7 @@ function createDeviceProxy(api, binding, opts) {
3554
3555
  getDeviceLiveContribution: (input) => dispatch("detection-pipeline", "detectionPipeline", "getDeviceLiveContribution", "query", input),
3555
3556
  applyDeviceSettingsPatch: (input) => dispatch("detection-pipeline", "detectionPipeline", "applyDeviceSettingsPatch", "mutation", input)
3556
3557
  },
3558
+ deviceAdminLink: { getAdminLink: (input) => dispatch("device-admin-link", "deviceAdminLink", "getAdminLink", "query", input) },
3557
3559
  deviceDiscovery: {
3558
3560
  listDiscovered: (input) => dispatch("device-discovery", "deviceDiscovery", "listDiscovered", "query", input),
3559
3561
  refreshDiscovery: (input) => dispatch("device-discovery", "deviceDiscovery", "refreshDiscovery", "mutation", input),
@@ -3835,6 +3837,11 @@ function createDeviceProxy(api, binding, opts) {
3835
3837
  setSettings: (input) => dispatch("ptz-autotrack", "ptzAutotrack", "setSettings", "mutation", input)
3836
3838
  },
3837
3839
  reboot: { reboot: (input) => dispatch("reboot", "reboot", "reboot", "mutation", input) },
3840
+ recordingOnboard: {
3841
+ getOptions: (input) => dispatch("recording-onboard", "recordingOnboard", "getOptions", "query", input),
3842
+ setSettings: (input) => dispatch("recording-onboard", "recordingOnboard", "setSettings", "mutation", input),
3843
+ getStatus: (input) => dispatch("recording-onboard", "recordingOnboard", "getStatus", "query", input)
3844
+ },
3838
3845
  recordingSignal: { getStatus: (input) => dispatch("recording-signal", "recordingSignal", "getStatus", "query", input) },
3839
3846
  sceneMonitor: {
3840
3847
  listScenes: (input) => dispatch("scene-monitor", "sceneMonitor", "listScenes", "query", input),
@@ -3904,7 +3911,8 @@ function createDeviceProxy(api, binding, opts) {
3904
3911
  listClips: (input) => dispatch("videoclips", "videoclips", "listClips", "query", input),
3905
3912
  listSources: (input) => dispatch("videoclips", "videoclips", "listSources", "query", input),
3906
3913
  getClipPlayback: (input) => dispatch("videoclips", "videoclips", "getClipPlayback", "query", input),
3907
- readClipBytes: (input) => dispatch("videoclips", "videoclips", "readClipBytes", "query", input)
3914
+ readClipBytes: (input) => dispatch("videoclips", "videoclips", "readClipBytes", "query", input),
3915
+ dialClipStream: (input) => dispatch("videoclips", "videoclips", "dialClipStream", "query", input)
3908
3916
  },
3909
3917
  waterHeater: {
3910
3918
  setTargetTemp: (input) => dispatch("water-heater", "waterHeater", "setTargetTemp", "mutation", input),
@@ -4112,7 +4120,7 @@ function createDeviceProxy(api, binding, opts) {
4112
4120
  * can answer "may a rule actuate this?" without importing the schema barrel
4113
4121
  * (~144MB RSS per runner, D28).
4114
4122
  *
4115
- * Coverage: 85 device-scoped capabilities.
4123
+ * Coverage: 87 device-scoped capabilities.
4116
4124
  */
4117
4125
  var DEVICE_SCOPED_CAPS = new Set([
4118
4126
  "accessories",
@@ -4140,6 +4148,7 @@ var DEVICE_SCOPED_CAPS = new Set([
4140
4148
  "cover",
4141
4149
  "day-night",
4142
4150
  "detection-pipeline",
4151
+ "device-admin-link",
4143
4152
  "device-discovery",
4144
4153
  "device-ops",
4145
4154
  "device-status",
@@ -4178,6 +4187,7 @@ var DEVICE_SCOPED_CAPS = new Set([
4178
4187
  "ptz",
4179
4188
  "ptz-autotrack",
4180
4189
  "reboot",
4190
+ "recording-onboard",
4181
4191
  "recording-signal",
4182
4192
  "scene-monitor",
4183
4193
  "script-runner",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@camstack/types",
3
- "version": "1.2.242",
3
+ "version": "1.2.244",
4
4
  "description": "Shared types, interfaces, and model catalogs for the CamStack detection ecosystem",
5
5
  "keywords": [
6
6
  "camstack",