@camstack/addon-import-alexa 0.2.79 → 0.2.81

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
@@ -12277,6 +12277,9 @@ var QueryFilterSchema = object({
12277
12277
  whereBetween: record(string(), tuple([unknown(), unknown()])).optional(),
12278
12278
  /** NULL-safe exclusion: matches rows whose field is NULL OR != the value. */
12279
12279
  whereNot: record(string(), unknown()).optional(),
12280
+ /** NULL-safe exclusion of a SET — `whereNot` for more than one value. An
12281
+ * empty list excludes nothing. See `QueryFilter.whereNotIn`. */
12282
+ whereNotIn: record(string(), array(unknown())).optional(),
12280
12283
  orderBy: object({
12281
12284
  field: string(),
12282
12285
  direction: _enum(["asc", "desc"])
@@ -12297,7 +12300,8 @@ var MutationFilterSchema = object({
12297
12300
  where: record(string(), unknown()).optional(),
12298
12301
  whereIn: record(string(), array(unknown())).optional(),
12299
12302
  whereBetween: record(string(), tuple([unknown(), unknown()])).optional(),
12300
- whereNot: record(string(), unknown()).optional()
12303
+ whereNot: record(string(), unknown()).optional(),
12304
+ whereNotIn: record(string(), array(unknown())).optional()
12301
12305
  });
12302
12306
  /**
12303
12307
  * One scalar an {@link settingsStoreCapability.methods.aggregate} call asks for.
@@ -19070,10 +19074,12 @@ var TrackSourceSchema = _enum([
19070
19074
  * Terminal for the plain `markForTrain` toggle: returning it to `staging` is
19071
19075
  * a deliberate action of the retrain page, not a side effect of a checkbox.
19072
19076
  *
19073
- * There is no `null`. The state is stored `TEXT NOT NULL DEFAULT 'none'` because
19074
- * the store's filter language has only positive equality and `whereIn` — no
19075
- * negation, no IS NULL — so a NULL would be unselectable by ANY predicate and
19076
- * would make the entire pre-column history immortal in one deploy.
19077
+ * There is no `null`. The state is stored `TEXT NOT NULL DEFAULT 'none'` so that
19078
+ * every row is selectable by a positive predicate. (The filter language has
19079
+ * since grown the NULL-safe `whereNot` / `whereNotIn` and an `IS NULL` reading
19080
+ * of `where: { f: null }`, which is how {@link TrackSourceSchema} can be
19081
+ * filtered on a NULLABLE column — see `excludeSources`. It did not when this
19082
+ * column was designed, and a NOT NULL column is still the better shape.)
19077
19083
  */
19078
19084
  var RetrainStatusSchema = _enum([
19079
19085
  "none",
@@ -19809,7 +19815,9 @@ var RecentTracksQueryInput = object({
19809
19815
  * whose class list is unreadable are kept, and the client's rule stays the
19810
19816
  * exact one.
19811
19817
  */
19812
- classes: array(string()).optional()
19818
+ classes: array(string()).optional(),
19819
+ /** See {@link ExcludeSourcesDoc}. */
19820
+ excludeSources: array(TrackSourceSchema).optional()
19813
19821
  });
19814
19822
  /**
19815
19823
  * A Summary (D359): the per-camera session envelope that references tracks.
@@ -20237,7 +20245,9 @@ DeviceType.Camera, method(object({ deviceId: number() }), array(TrackSchema).rea
20237
20245
  * selected is an operator who has not narrowed anything, and an empty
20238
20246
  * timeline would read as a camera that saw nothing.
20239
20247
  */
20240
- classes: array(string()).optional()
20248
+ classes: array(string()).optional(),
20249
+ /** See {@link ExcludeSourcesDoc}. */
20250
+ excludeSources: array(TrackSourceSchema).optional()
20241
20251
  }), array(TrackSchema).readonly()), method(RecentTracksQueryInput, RecentTracksPageSchema), method(SummariesQueryInput, SummariesPageSchema), method(object({ id: string() }), SummaryDetailSchema.nullable()), method(object({ deviceId: number() }), _void(), {
20242
20252
  kind: "mutation",
20243
20253
  auth: "admin"
@@ -20742,8 +20752,25 @@ var occupancyRecheckFramesField = {
20742
20752
  * (analyzer attaches detected `regions[]`; onboard does not — the
20743
20753
  * camera typically only reports a binary signal plus an optional
20744
20754
  * channel/AI class which lives in dedicated event channels).
20745
- */
20746
- var MotionSourceEnum = _enum(["onboard", "analyzer"]);
20755
+ *
20756
+ * - `onboard` — the camera's firmware said something moved.
20757
+ * - `analyzer` — this runner's frame-diff said so, and attaches `regions[]`.
20758
+ * - `device-activity` — the DEVICE said it is doing its job: the
20759
+ * `recording-signal` LEVEL the same device raises for the recorder
20760
+ * ([D380](../../../../docs/decisions/adr-0380-a-device-decided-recording-is-a-mode-with-no-schedule-seeded-once.md)),
20761
+ * republished as a motion source. It attaches **nothing** — no regions, no
20762
+ * class: the only fact it carries is that the device is active, and a robot
20763
+ * vacuum that is itself the moving object has no region worth sending. It is
20764
+ * a LEVEL, so unlike `onboard` it has a real falling edge, and unlike
20765
+ * `analyzer` it must not open the frame-diff side-channel — the runner's
20766
+ * `handleOnboardMotionAnalyzer` gate is `source === 'onboard'` and stays that
20767
+ * way ([D392](../../../../docs/decisions/adr-0392-a-device-that-says-it-is-working-is-a-motion-source-of-its-own.md)).
20768
+ */
20769
+ var MotionSourceEnum = _enum([
20770
+ "onboard",
20771
+ "analyzer",
20772
+ "device-activity"
20773
+ ]);
20747
20774
  /**
20748
20775
  * List of motion sources active on a camera. Empty array is valid:
20749
20776
  * "no source" — happens for battery cams without firmware motion when
package/dist/addon.mjs CHANGED
@@ -12277,6 +12277,9 @@ var QueryFilterSchema = object({
12277
12277
  whereBetween: record(string(), tuple([unknown(), unknown()])).optional(),
12278
12278
  /** NULL-safe exclusion: matches rows whose field is NULL OR != the value. */
12279
12279
  whereNot: record(string(), unknown()).optional(),
12280
+ /** NULL-safe exclusion of a SET — `whereNot` for more than one value. An
12281
+ * empty list excludes nothing. See `QueryFilter.whereNotIn`. */
12282
+ whereNotIn: record(string(), array(unknown())).optional(),
12280
12283
  orderBy: object({
12281
12284
  field: string(),
12282
12285
  direction: _enum(["asc", "desc"])
@@ -12297,7 +12300,8 @@ var MutationFilterSchema = object({
12297
12300
  where: record(string(), unknown()).optional(),
12298
12301
  whereIn: record(string(), array(unknown())).optional(),
12299
12302
  whereBetween: record(string(), tuple([unknown(), unknown()])).optional(),
12300
- whereNot: record(string(), unknown()).optional()
12303
+ whereNot: record(string(), unknown()).optional(),
12304
+ whereNotIn: record(string(), array(unknown())).optional()
12301
12305
  });
12302
12306
  /**
12303
12307
  * One scalar an {@link settingsStoreCapability.methods.aggregate} call asks for.
@@ -19070,10 +19074,12 @@ var TrackSourceSchema = _enum([
19070
19074
  * Terminal for the plain `markForTrain` toggle: returning it to `staging` is
19071
19075
  * a deliberate action of the retrain page, not a side effect of a checkbox.
19072
19076
  *
19073
- * There is no `null`. The state is stored `TEXT NOT NULL DEFAULT 'none'` because
19074
- * the store's filter language has only positive equality and `whereIn` — no
19075
- * negation, no IS NULL — so a NULL would be unselectable by ANY predicate and
19076
- * would make the entire pre-column history immortal in one deploy.
19077
+ * There is no `null`. The state is stored `TEXT NOT NULL DEFAULT 'none'` so that
19078
+ * every row is selectable by a positive predicate. (The filter language has
19079
+ * since grown the NULL-safe `whereNot` / `whereNotIn` and an `IS NULL` reading
19080
+ * of `where: { f: null }`, which is how {@link TrackSourceSchema} can be
19081
+ * filtered on a NULLABLE column — see `excludeSources`. It did not when this
19082
+ * column was designed, and a NOT NULL column is still the better shape.)
19077
19083
  */
19078
19084
  var RetrainStatusSchema = _enum([
19079
19085
  "none",
@@ -19809,7 +19815,9 @@ var RecentTracksQueryInput = object({
19809
19815
  * whose class list is unreadable are kept, and the client's rule stays the
19810
19816
  * exact one.
19811
19817
  */
19812
- classes: array(string()).optional()
19818
+ classes: array(string()).optional(),
19819
+ /** See {@link ExcludeSourcesDoc}. */
19820
+ excludeSources: array(TrackSourceSchema).optional()
19813
19821
  });
19814
19822
  /**
19815
19823
  * A Summary (D359): the per-camera session envelope that references tracks.
@@ -20237,7 +20245,9 @@ DeviceType.Camera, method(object({ deviceId: number() }), array(TrackSchema).rea
20237
20245
  * selected is an operator who has not narrowed anything, and an empty
20238
20246
  * timeline would read as a camera that saw nothing.
20239
20247
  */
20240
- classes: array(string()).optional()
20248
+ classes: array(string()).optional(),
20249
+ /** See {@link ExcludeSourcesDoc}. */
20250
+ excludeSources: array(TrackSourceSchema).optional()
20241
20251
  }), array(TrackSchema).readonly()), method(RecentTracksQueryInput, RecentTracksPageSchema), method(SummariesQueryInput, SummariesPageSchema), method(object({ id: string() }), SummaryDetailSchema.nullable()), method(object({ deviceId: number() }), _void(), {
20242
20252
  kind: "mutation",
20243
20253
  auth: "admin"
@@ -20742,8 +20752,25 @@ var occupancyRecheckFramesField = {
20742
20752
  * (analyzer attaches detected `regions[]`; onboard does not — the
20743
20753
  * camera typically only reports a binary signal plus an optional
20744
20754
  * channel/AI class which lives in dedicated event channels).
20745
- */
20746
- var MotionSourceEnum = _enum(["onboard", "analyzer"]);
20755
+ *
20756
+ * - `onboard` — the camera's firmware said something moved.
20757
+ * - `analyzer` — this runner's frame-diff said so, and attaches `regions[]`.
20758
+ * - `device-activity` — the DEVICE said it is doing its job: the
20759
+ * `recording-signal` LEVEL the same device raises for the recorder
20760
+ * ([D380](../../../../docs/decisions/adr-0380-a-device-decided-recording-is-a-mode-with-no-schedule-seeded-once.md)),
20761
+ * republished as a motion source. It attaches **nothing** — no regions, no
20762
+ * class: the only fact it carries is that the device is active, and a robot
20763
+ * vacuum that is itself the moving object has no region worth sending. It is
20764
+ * a LEVEL, so unlike `onboard` it has a real falling edge, and unlike
20765
+ * `analyzer` it must not open the frame-diff side-channel — the runner's
20766
+ * `handleOnboardMotionAnalyzer` gate is `source === 'onboard'` and stays that
20767
+ * way ([D392](../../../../docs/decisions/adr-0392-a-device-that-says-it-is-working-is-a-motion-source-of-its-own.md)).
20768
+ */
20769
+ var MotionSourceEnum = _enum([
20770
+ "onboard",
20771
+ "analyzer",
20772
+ "device-activity"
20773
+ ]);
20747
20774
  /**
20748
20775
  * List of motion sources active on a camera. Empty array is valid:
20749
20776
  * "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-import-alexa",
3
- "version": "0.2.79",
3
+ "version": "0.2.81",
4
4
  "description": "Alexa device-import provider for CamStack — imports the smart-home devices in a user's Alexa account via the unofficial alexa-remote2 cookie/token client (the inverse of the Alexa exporter)",
5
5
  "keywords": [
6
6
  "camstack",