@camstack/addon-decoder-nodeav 1.2.81 → 1.2.83

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/index.js CHANGED
@@ -11986,6 +11986,9 @@ var QueryFilterSchema = object({
11986
11986
  whereBetween: record(string(), tuple([unknown(), unknown()])).optional(),
11987
11987
  /** NULL-safe exclusion: matches rows whose field is NULL OR != the value. */
11988
11988
  whereNot: record(string(), unknown()).optional(),
11989
+ /** NULL-safe exclusion of a SET — `whereNot` for more than one value. An
11990
+ * empty list excludes nothing. See `QueryFilter.whereNotIn`. */
11991
+ whereNotIn: record(string(), array(unknown())).optional(),
11989
11992
  orderBy: object({
11990
11993
  field: string(),
11991
11994
  direction: _enum(["asc", "desc"])
@@ -12006,7 +12009,8 @@ var MutationFilterSchema = object({
12006
12009
  where: record(string(), unknown()).optional(),
12007
12010
  whereIn: record(string(), array(unknown())).optional(),
12008
12011
  whereBetween: record(string(), tuple([unknown(), unknown()])).optional(),
12009
- whereNot: record(string(), unknown()).optional()
12012
+ whereNot: record(string(), unknown()).optional(),
12013
+ whereNotIn: record(string(), array(unknown())).optional()
12010
12014
  });
12011
12015
  /**
12012
12016
  * One scalar an {@link settingsStoreCapability.methods.aggregate} call asks for.
@@ -18589,10 +18593,12 @@ var TrackSourceSchema = _enum([
18589
18593
  * Terminal for the plain `markForTrain` toggle: returning it to `staging` is
18590
18594
  * a deliberate action of the retrain page, not a side effect of a checkbox.
18591
18595
  *
18592
- * There is no `null`. The state is stored `TEXT NOT NULL DEFAULT 'none'` because
18593
- * the store's filter language has only positive equality and `whereIn` no
18594
- * negation, no IS NULL so a NULL would be unselectable by ANY predicate and
18595
- * would make the entire pre-column history immortal in one deploy.
18596
+ * There is no `null`. The state is stored `TEXT NOT NULL DEFAULT 'none'` so that
18597
+ * every row is selectable by a positive predicate. (The filter language has
18598
+ * since grown the NULL-safe `whereNot` / `whereNotIn` and an `IS NULL` reading
18599
+ * of `where: { f: null }`, which is how {@link TrackSourceSchema} can be
18600
+ * filtered on a NULLABLE column — see `excludeSources`. It did not when this
18601
+ * column was designed, and a NOT NULL column is still the better shape.)
18596
18602
  */
18597
18603
  var RetrainStatusSchema = _enum([
18598
18604
  "none",
@@ -19328,7 +19334,9 @@ var RecentTracksQueryInput = object({
19328
19334
  * whose class list is unreadable are kept, and the client's rule stays the
19329
19335
  * exact one.
19330
19336
  */
19331
- classes: array(string()).optional()
19337
+ classes: array(string()).optional(),
19338
+ /** See {@link ExcludeSourcesDoc}. */
19339
+ excludeSources: array(TrackSourceSchema).optional()
19332
19340
  });
19333
19341
  /**
19334
19342
  * A Summary (D359): the per-camera session envelope that references tracks.
@@ -19756,7 +19764,9 @@ DeviceType.Camera, method(object({ deviceId: number() }), array(TrackSchema).rea
19756
19764
  * selected is an operator who has not narrowed anything, and an empty
19757
19765
  * timeline would read as a camera that saw nothing.
19758
19766
  */
19759
- classes: array(string()).optional()
19767
+ classes: array(string()).optional(),
19768
+ /** See {@link ExcludeSourcesDoc}. */
19769
+ excludeSources: array(TrackSourceSchema).optional()
19760
19770
  }), array(TrackSchema).readonly()), method(RecentTracksQueryInput, RecentTracksPageSchema), method(SummariesQueryInput, SummariesPageSchema), method(object({ id: string() }), SummaryDetailSchema.nullable()), method(object({ deviceId: number() }), _void(), {
19761
19771
  kind: "mutation",
19762
19772
  auth: "admin"
@@ -27217,8 +27227,27 @@ var PrivacyMaskRegionSchema = object({
27217
27227
  });
27218
27228
  object({
27219
27229
  enabled: boolean(),
27220
- /** Active zones (normalized 0..1). Length ≤ maxRegions. */
27221
- regions: array(PrivacyMaskRegionSchema),
27230
+ /**
27231
+ * Active zones (normalized 0..1). Length ≤ maxRegions.
27232
+ *
27233
+ * `null` means "no answer" — the provider has never reached this camera
27234
+ * (a cold `runtimeState` slice, a battery camera asleep) or the read
27235
+ * failed. A consumer must render it as UNKNOWN and never as "this camera
27236
+ * has no zones": those two look identical to an operator right up to the
27237
+ * moment one of them is acted on, and acting on them differs completely.
27238
+ * The switch group turned an unanswered read into *"nothing is set up for
27239
+ * it to act on"* — an instruction to go and draw a zone that already
27240
+ * exists — and this editor seeded an EMPTY canvas from it, one Save away
27241
+ * from deleting the mask it could not read.
27242
+ *
27243
+ * Empty-and-answered is `[]` and stays a real answer: this camera genuinely
27244
+ * has no zones. The distinction is the same one {@link
27245
+ * PrivacyMaskStatusSchema.shape.audioEnabled} already draws for the
27246
+ * microphone, on the very same payload — both planes come from ONE refresh,
27247
+ * so it was never coherent for one of them to be able to say "unknown"
27248
+ * while the other could not.
27249
+ */
27250
+ regions: array(PrivacyMaskRegionSchema).nullable(),
27222
27251
  /**
27223
27252
  * Is the camera capturing sound right now? Read from the camera, never from
27224
27253
  * a server-side mirror.
package/dist/index.mjs CHANGED
@@ -11982,6 +11982,9 @@ var QueryFilterSchema = object({
11982
11982
  whereBetween: record(string(), tuple([unknown(), unknown()])).optional(),
11983
11983
  /** NULL-safe exclusion: matches rows whose field is NULL OR != the value. */
11984
11984
  whereNot: record(string(), unknown()).optional(),
11985
+ /** NULL-safe exclusion of a SET — `whereNot` for more than one value. An
11986
+ * empty list excludes nothing. See `QueryFilter.whereNotIn`. */
11987
+ whereNotIn: record(string(), array(unknown())).optional(),
11985
11988
  orderBy: object({
11986
11989
  field: string(),
11987
11990
  direction: _enum(["asc", "desc"])
@@ -12002,7 +12005,8 @@ var MutationFilterSchema = object({
12002
12005
  where: record(string(), unknown()).optional(),
12003
12006
  whereIn: record(string(), array(unknown())).optional(),
12004
12007
  whereBetween: record(string(), tuple([unknown(), unknown()])).optional(),
12005
- whereNot: record(string(), unknown()).optional()
12008
+ whereNot: record(string(), unknown()).optional(),
12009
+ whereNotIn: record(string(), array(unknown())).optional()
12006
12010
  });
12007
12011
  /**
12008
12012
  * One scalar an {@link settingsStoreCapability.methods.aggregate} call asks for.
@@ -18585,10 +18589,12 @@ var TrackSourceSchema = _enum([
18585
18589
  * Terminal for the plain `markForTrain` toggle: returning it to `staging` is
18586
18590
  * a deliberate action of the retrain page, not a side effect of a checkbox.
18587
18591
  *
18588
- * There is no `null`. The state is stored `TEXT NOT NULL DEFAULT 'none'` because
18589
- * the store's filter language has only positive equality and `whereIn` no
18590
- * negation, no IS NULL so a NULL would be unselectable by ANY predicate and
18591
- * would make the entire pre-column history immortal in one deploy.
18592
+ * There is no `null`. The state is stored `TEXT NOT NULL DEFAULT 'none'` so that
18593
+ * every row is selectable by a positive predicate. (The filter language has
18594
+ * since grown the NULL-safe `whereNot` / `whereNotIn` and an `IS NULL` reading
18595
+ * of `where: { f: null }`, which is how {@link TrackSourceSchema} can be
18596
+ * filtered on a NULLABLE column — see `excludeSources`. It did not when this
18597
+ * column was designed, and a NOT NULL column is still the better shape.)
18592
18598
  */
18593
18599
  var RetrainStatusSchema = _enum([
18594
18600
  "none",
@@ -19324,7 +19330,9 @@ var RecentTracksQueryInput = object({
19324
19330
  * whose class list is unreadable are kept, and the client's rule stays the
19325
19331
  * exact one.
19326
19332
  */
19327
- classes: array(string()).optional()
19333
+ classes: array(string()).optional(),
19334
+ /** See {@link ExcludeSourcesDoc}. */
19335
+ excludeSources: array(TrackSourceSchema).optional()
19328
19336
  });
19329
19337
  /**
19330
19338
  * A Summary (D359): the per-camera session envelope that references tracks.
@@ -19752,7 +19760,9 @@ DeviceType.Camera, method(object({ deviceId: number() }), array(TrackSchema).rea
19752
19760
  * selected is an operator who has not narrowed anything, and an empty
19753
19761
  * timeline would read as a camera that saw nothing.
19754
19762
  */
19755
- classes: array(string()).optional()
19763
+ classes: array(string()).optional(),
19764
+ /** See {@link ExcludeSourcesDoc}. */
19765
+ excludeSources: array(TrackSourceSchema).optional()
19756
19766
  }), array(TrackSchema).readonly()), method(RecentTracksQueryInput, RecentTracksPageSchema), method(SummariesQueryInput, SummariesPageSchema), method(object({ id: string() }), SummaryDetailSchema.nullable()), method(object({ deviceId: number() }), _void(), {
19757
19767
  kind: "mutation",
19758
19768
  auth: "admin"
@@ -27213,8 +27223,27 @@ var PrivacyMaskRegionSchema = object({
27213
27223
  });
27214
27224
  object({
27215
27225
  enabled: boolean(),
27216
- /** Active zones (normalized 0..1). Length ≤ maxRegions. */
27217
- regions: array(PrivacyMaskRegionSchema),
27226
+ /**
27227
+ * Active zones (normalized 0..1). Length ≤ maxRegions.
27228
+ *
27229
+ * `null` means "no answer" — the provider has never reached this camera
27230
+ * (a cold `runtimeState` slice, a battery camera asleep) or the read
27231
+ * failed. A consumer must render it as UNKNOWN and never as "this camera
27232
+ * has no zones": those two look identical to an operator right up to the
27233
+ * moment one of them is acted on, and acting on them differs completely.
27234
+ * The switch group turned an unanswered read into *"nothing is set up for
27235
+ * it to act on"* — an instruction to go and draw a zone that already
27236
+ * exists — and this editor seeded an EMPTY canvas from it, one Save away
27237
+ * from deleting the mask it could not read.
27238
+ *
27239
+ * Empty-and-answered is `[]` and stays a real answer: this camera genuinely
27240
+ * has no zones. The distinction is the same one {@link
27241
+ * PrivacyMaskStatusSchema.shape.audioEnabled} already draws for the
27242
+ * microphone, on the very same payload — both planes come from ONE refresh,
27243
+ * so it was never coherent for one of them to be able to say "unknown"
27244
+ * while the other could not.
27245
+ */
27246
+ regions: array(PrivacyMaskRegionSchema).nullable(),
27218
27247
  /**
27219
27248
  * Is the camera capturing sound right now? Read from the camera, never from
27220
27249
  * a server-side mirror.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@camstack/addon-decoder-nodeav",
3
- "version": "1.2.81",
3
+ "version": "1.2.83",
4
4
  "description": "Standalone in-process node-av decoder addon for CamStack",
5
5
  "keywords": [
6
6
  "camstack",