@camstack/addon-provider-reolink 1.2.103 → 1.2.105

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/addon.js CHANGED
@@ -12655,6 +12655,9 @@ var QueryFilterSchema = object({
12655
12655
  whereBetween: record(string(), tuple([unknown(), unknown()])).optional(),
12656
12656
  /** NULL-safe exclusion: matches rows whose field is NULL OR != the value. */
12657
12657
  whereNot: record(string(), unknown()).optional(),
12658
+ /** NULL-safe exclusion of a SET — `whereNot` for more than one value. An
12659
+ * empty list excludes nothing. See `QueryFilter.whereNotIn`. */
12660
+ whereNotIn: record(string(), array(unknown())).optional(),
12658
12661
  orderBy: object({
12659
12662
  field: string(),
12660
12663
  direction: _enum(["asc", "desc"])
@@ -12675,7 +12678,8 @@ var MutationFilterSchema = object({
12675
12678
  where: record(string(), unknown()).optional(),
12676
12679
  whereIn: record(string(), array(unknown())).optional(),
12677
12680
  whereBetween: record(string(), tuple([unknown(), unknown()])).optional(),
12678
- whereNot: record(string(), unknown()).optional()
12681
+ whereNot: record(string(), unknown()).optional(),
12682
+ whereNotIn: record(string(), array(unknown())).optional()
12679
12683
  });
12680
12684
  /**
12681
12685
  * One scalar an {@link settingsStoreCapability.methods.aggregate} call asks for.
@@ -19471,10 +19475,12 @@ var TrackSourceSchema = _enum([
19471
19475
  * Terminal for the plain `markForTrain` toggle: returning it to `staging` is
19472
19476
  * a deliberate action of the retrain page, not a side effect of a checkbox.
19473
19477
  *
19474
- * There is no `null`. The state is stored `TEXT NOT NULL DEFAULT 'none'` because
19475
- * the store's filter language has only positive equality and `whereIn` no
19476
- * negation, no IS NULL so a NULL would be unselectable by ANY predicate and
19477
- * would make the entire pre-column history immortal in one deploy.
19478
+ * There is no `null`. The state is stored `TEXT NOT NULL DEFAULT 'none'` so that
19479
+ * every row is selectable by a positive predicate. (The filter language has
19480
+ * since grown the NULL-safe `whereNot` / `whereNotIn` and an `IS NULL` reading
19481
+ * of `where: { f: null }`, which is how {@link TrackSourceSchema} can be
19482
+ * filtered on a NULLABLE column — see `excludeSources`. It did not when this
19483
+ * column was designed, and a NOT NULL column is still the better shape.)
19478
19484
  */
19479
19485
  var RetrainStatusSchema = _enum([
19480
19486
  "none",
@@ -20210,7 +20216,9 @@ var RecentTracksQueryInput = object({
20210
20216
  * whose class list is unreadable are kept, and the client's rule stays the
20211
20217
  * exact one.
20212
20218
  */
20213
- classes: array(string()).optional()
20219
+ classes: array(string()).optional(),
20220
+ /** See {@link ExcludeSourcesDoc}. */
20221
+ excludeSources: array(TrackSourceSchema).optional()
20214
20222
  });
20215
20223
  /**
20216
20224
  * A Summary (D359): the per-camera session envelope that references tracks.
@@ -20638,7 +20646,9 @@ DeviceType.Camera, method(object({ deviceId: number() }), array(TrackSchema).rea
20638
20646
  * selected is an operator who has not narrowed anything, and an empty
20639
20647
  * timeline would read as a camera that saw nothing.
20640
20648
  */
20641
- classes: array(string()).optional()
20649
+ classes: array(string()).optional(),
20650
+ /** See {@link ExcludeSourcesDoc}. */
20651
+ excludeSources: array(TrackSourceSchema).optional()
20642
20652
  }), array(TrackSchema).readonly()), method(RecentTracksQueryInput, RecentTracksPageSchema), method(SummariesQueryInput, SummariesPageSchema), method(object({ id: string() }), SummaryDetailSchema.nullable()), method(object({ deviceId: number() }), _void(), {
20643
20653
  kind: "mutation",
20644
20654
  auth: "admin"
@@ -21143,8 +21153,25 @@ var occupancyRecheckFramesField = {
21143
21153
  * (analyzer attaches detected `regions[]`; onboard does not — the
21144
21154
  * camera typically only reports a binary signal plus an optional
21145
21155
  * channel/AI class which lives in dedicated event channels).
21146
- */
21147
- var MotionSourceEnum = _enum(["onboard", "analyzer"]);
21156
+ *
21157
+ * - `onboard` — the camera's firmware said something moved.
21158
+ * - `analyzer` — this runner's frame-diff said so, and attaches `regions[]`.
21159
+ * - `device-activity` — the DEVICE said it is doing its job: the
21160
+ * `recording-signal` LEVEL the same device raises for the recorder
21161
+ * ([D380](../../../../docs/decisions/adr-0380-a-device-decided-recording-is-a-mode-with-no-schedule-seeded-once.md)),
21162
+ * republished as a motion source. It attaches **nothing** — no regions, no
21163
+ * class: the only fact it carries is that the device is active, and a robot
21164
+ * vacuum that is itself the moving object has no region worth sending. It is
21165
+ * a LEVEL, so unlike `onboard` it has a real falling edge, and unlike
21166
+ * `analyzer` it must not open the frame-diff side-channel — the runner's
21167
+ * `handleOnboardMotionAnalyzer` gate is `source === 'onboard'` and stays that
21168
+ * way ([D392](../../../../docs/decisions/adr-0392-a-device-that-says-it-is-working-is-a-motion-source-of-its-own.md)).
21169
+ */
21170
+ var MotionSourceEnum = _enum([
21171
+ "onboard",
21172
+ "analyzer",
21173
+ "device-activity"
21174
+ ]);
21148
21175
  /**
21149
21176
  * List of motion sources active on a camera. Empty array is valid:
21150
21177
  * "no source" — happens for battery cams without firmware motion when
package/dist/addon.mjs CHANGED
@@ -12650,6 +12650,9 @@ var QueryFilterSchema = object({
12650
12650
  whereBetween: record(string(), tuple([unknown(), unknown()])).optional(),
12651
12651
  /** NULL-safe exclusion: matches rows whose field is NULL OR != the value. */
12652
12652
  whereNot: record(string(), unknown()).optional(),
12653
+ /** NULL-safe exclusion of a SET — `whereNot` for more than one value. An
12654
+ * empty list excludes nothing. See `QueryFilter.whereNotIn`. */
12655
+ whereNotIn: record(string(), array(unknown())).optional(),
12653
12656
  orderBy: object({
12654
12657
  field: string(),
12655
12658
  direction: _enum(["asc", "desc"])
@@ -12670,7 +12673,8 @@ var MutationFilterSchema = object({
12670
12673
  where: record(string(), unknown()).optional(),
12671
12674
  whereIn: record(string(), array(unknown())).optional(),
12672
12675
  whereBetween: record(string(), tuple([unknown(), unknown()])).optional(),
12673
- whereNot: record(string(), unknown()).optional()
12676
+ whereNot: record(string(), unknown()).optional(),
12677
+ whereNotIn: record(string(), array(unknown())).optional()
12674
12678
  });
12675
12679
  /**
12676
12680
  * One scalar an {@link settingsStoreCapability.methods.aggregate} call asks for.
@@ -19466,10 +19470,12 @@ var TrackSourceSchema = _enum([
19466
19470
  * Terminal for the plain `markForTrain` toggle: returning it to `staging` is
19467
19471
  * a deliberate action of the retrain page, not a side effect of a checkbox.
19468
19472
  *
19469
- * There is no `null`. The state is stored `TEXT NOT NULL DEFAULT 'none'` because
19470
- * the store's filter language has only positive equality and `whereIn` no
19471
- * negation, no IS NULL so a NULL would be unselectable by ANY predicate and
19472
- * would make the entire pre-column history immortal in one deploy.
19473
+ * There is no `null`. The state is stored `TEXT NOT NULL DEFAULT 'none'` so that
19474
+ * every row is selectable by a positive predicate. (The filter language has
19475
+ * since grown the NULL-safe `whereNot` / `whereNotIn` and an `IS NULL` reading
19476
+ * of `where: { f: null }`, which is how {@link TrackSourceSchema} can be
19477
+ * filtered on a NULLABLE column — see `excludeSources`. It did not when this
19478
+ * column was designed, and a NOT NULL column is still the better shape.)
19473
19479
  */
19474
19480
  var RetrainStatusSchema = _enum([
19475
19481
  "none",
@@ -20205,7 +20211,9 @@ var RecentTracksQueryInput = object({
20205
20211
  * whose class list is unreadable are kept, and the client's rule stays the
20206
20212
  * exact one.
20207
20213
  */
20208
- classes: array(string()).optional()
20214
+ classes: array(string()).optional(),
20215
+ /** See {@link ExcludeSourcesDoc}. */
20216
+ excludeSources: array(TrackSourceSchema).optional()
20209
20217
  });
20210
20218
  /**
20211
20219
  * A Summary (D359): the per-camera session envelope that references tracks.
@@ -20633,7 +20641,9 @@ DeviceType.Camera, method(object({ deviceId: number() }), array(TrackSchema).rea
20633
20641
  * selected is an operator who has not narrowed anything, and an empty
20634
20642
  * timeline would read as a camera that saw nothing.
20635
20643
  */
20636
- classes: array(string()).optional()
20644
+ classes: array(string()).optional(),
20645
+ /** See {@link ExcludeSourcesDoc}. */
20646
+ excludeSources: array(TrackSourceSchema).optional()
20637
20647
  }), array(TrackSchema).readonly()), method(RecentTracksQueryInput, RecentTracksPageSchema), method(SummariesQueryInput, SummariesPageSchema), method(object({ id: string() }), SummaryDetailSchema.nullable()), method(object({ deviceId: number() }), _void(), {
20638
20648
  kind: "mutation",
20639
20649
  auth: "admin"
@@ -21138,8 +21148,25 @@ var occupancyRecheckFramesField = {
21138
21148
  * (analyzer attaches detected `regions[]`; onboard does not — the
21139
21149
  * camera typically only reports a binary signal plus an optional
21140
21150
  * channel/AI class which lives in dedicated event channels).
21141
- */
21142
- var MotionSourceEnum = _enum(["onboard", "analyzer"]);
21151
+ *
21152
+ * - `onboard` — the camera's firmware said something moved.
21153
+ * - `analyzer` — this runner's frame-diff said so, and attaches `regions[]`.
21154
+ * - `device-activity` — the DEVICE said it is doing its job: the
21155
+ * `recording-signal` LEVEL the same device raises for the recorder
21156
+ * ([D380](../../../../docs/decisions/adr-0380-a-device-decided-recording-is-a-mode-with-no-schedule-seeded-once.md)),
21157
+ * republished as a motion source. It attaches **nothing** — no regions, no
21158
+ * class: the only fact it carries is that the device is active, and a robot
21159
+ * vacuum that is itself the moving object has no region worth sending. It is
21160
+ * a LEVEL, so unlike `onboard` it has a real falling edge, and unlike
21161
+ * `analyzer` it must not open the frame-diff side-channel — the runner's
21162
+ * `handleOnboardMotionAnalyzer` gate is `source === 'onboard'` and stays that
21163
+ * way ([D392](../../../../docs/decisions/adr-0392-a-device-that-says-it-is-working-is-a-motion-source-of-its-own.md)).
21164
+ */
21165
+ var MotionSourceEnum = _enum([
21166
+ "onboard",
21167
+ "analyzer",
21168
+ "device-activity"
21169
+ ]);
21143
21170
  /**
21144
21171
  * List of motion sources active on a camera. Empty array is valid:
21145
21172
  * "no source" — happens for battery cams without firmware motion when
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@camstack/addon-provider-reolink",
3
- "version": "1.2.103",
3
+ "version": "1.2.105",
4
4
  "description": "Reolink camera device provider addon for CamStack — native Baichuan protocol",
5
5
  "keywords": [
6
6
  "camstack",