@camstack/types 1.2.242 → 1.2.243

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
  /**
@@ -3904,7 +3904,8 @@ function createDeviceProxy(api, binding, opts) {
3904
3904
  listClips: (input) => dispatch("videoclips", "videoclips", "listClips", "query", input),
3905
3905
  listSources: (input) => dispatch("videoclips", "videoclips", "listSources", "query", input),
3906
3906
  getClipPlayback: (input) => dispatch("videoclips", "videoclips", "getClipPlayback", "query", input),
3907
- readClipBytes: (input) => dispatch("videoclips", "videoclips", "readClipBytes", "query", input)
3907
+ readClipBytes: (input) => dispatch("videoclips", "videoclips", "readClipBytes", "query", input),
3908
+ dialClipStream: (input) => dispatch("videoclips", "videoclips", "dialClipStream", "query", input)
3908
3909
  },
3909
3910
  waterHeater: {
3910
3911
  setTargetTemp: (input) => dispatch("water-heater", "waterHeater", "setTargetTemp", "mutation", input),
@@ -3904,7 +3904,8 @@ function createDeviceProxy(api, binding, opts) {
3904
3904
  listClips: (input) => dispatch("videoclips", "videoclips", "listClips", "query", input),
3905
3905
  listSources: (input) => dispatch("videoclips", "videoclips", "listSources", "query", input),
3906
3906
  getClipPlayback: (input) => dispatch("videoclips", "videoclips", "getClipPlayback", "query", input),
3907
- readClipBytes: (input) => dispatch("videoclips", "videoclips", "readClipBytes", "query", input)
3907
+ readClipBytes: (input) => dispatch("videoclips", "videoclips", "readClipBytes", "query", input),
3908
+ dialClipStream: (input) => dispatch("videoclips", "videoclips", "dialClipStream", "query", input)
3908
3909
  },
3909
3910
  waterHeater: {
3910
3911
  setTargetTemp: (input) => dispatch("water-heater", "waterHeater", "setTargetTemp", "mutation", input),
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@camstack/types",
3
- "version": "1.2.242",
3
+ "version": "1.2.243",
4
4
  "description": "Shared types, interfaces, and model catalogs for the CamStack detection ecosystem",
5
5
  "keywords": [
6
6
  "camstack",