@camstack/addon-export-alexa 1.2.86 → 1.2.88
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.
|
@@ -12219,6 +12219,9 @@ var QueryFilterSchema = object({
|
|
|
12219
12219
|
whereBetween: record(string(), tuple([unknown(), unknown()])).optional(),
|
|
12220
12220
|
/** NULL-safe exclusion: matches rows whose field is NULL OR != the value. */
|
|
12221
12221
|
whereNot: record(string(), unknown()).optional(),
|
|
12222
|
+
/** NULL-safe exclusion of a SET — `whereNot` for more than one value. An
|
|
12223
|
+
* empty list excludes nothing. See `QueryFilter.whereNotIn`. */
|
|
12224
|
+
whereNotIn: record(string(), array(unknown())).optional(),
|
|
12222
12225
|
orderBy: object({
|
|
12223
12226
|
field: string(),
|
|
12224
12227
|
direction: _enum(["asc", "desc"])
|
|
@@ -12239,7 +12242,8 @@ var MutationFilterSchema = object({
|
|
|
12239
12242
|
where: record(string(), unknown()).optional(),
|
|
12240
12243
|
whereIn: record(string(), array(unknown())).optional(),
|
|
12241
12244
|
whereBetween: record(string(), tuple([unknown(), unknown()])).optional(),
|
|
12242
|
-
whereNot: record(string(), unknown()).optional()
|
|
12245
|
+
whereNot: record(string(), unknown()).optional(),
|
|
12246
|
+
whereNotIn: record(string(), array(unknown())).optional()
|
|
12243
12247
|
});
|
|
12244
12248
|
/**
|
|
12245
12249
|
* One scalar an {@link settingsStoreCapability.methods.aggregate} call asks for.
|
|
@@ -18770,10 +18774,12 @@ var TrackSourceSchema = _enum([
|
|
|
18770
18774
|
* Terminal for the plain `markForTrain` toggle: returning it to `staging` is
|
|
18771
18775
|
* a deliberate action of the retrain page, not a side effect of a checkbox.
|
|
18772
18776
|
*
|
|
18773
|
-
* There is no `null`. The state is stored `TEXT NOT NULL DEFAULT 'none'`
|
|
18774
|
-
*
|
|
18775
|
-
*
|
|
18776
|
-
*
|
|
18777
|
+
* There is no `null`. The state is stored `TEXT NOT NULL DEFAULT 'none'` so that
|
|
18778
|
+
* every row is selectable by a positive predicate. (The filter language has
|
|
18779
|
+
* since grown the NULL-safe `whereNot` / `whereNotIn` and an `IS NULL` reading
|
|
18780
|
+
* of `where: { f: null }`, which is how {@link TrackSourceSchema} can be
|
|
18781
|
+
* filtered on a NULLABLE column — see `excludeSources`. It did not when this
|
|
18782
|
+
* column was designed, and a NOT NULL column is still the better shape.)
|
|
18777
18783
|
*/
|
|
18778
18784
|
var RetrainStatusSchema = _enum([
|
|
18779
18785
|
"none",
|
|
@@ -19509,7 +19515,9 @@ var RecentTracksQueryInput = object({
|
|
|
19509
19515
|
* whose class list is unreadable are kept, and the client's rule stays the
|
|
19510
19516
|
* exact one.
|
|
19511
19517
|
*/
|
|
19512
|
-
classes: array(string()).optional()
|
|
19518
|
+
classes: array(string()).optional(),
|
|
19519
|
+
/** See {@link ExcludeSourcesDoc}. */
|
|
19520
|
+
excludeSources: array(TrackSourceSchema).optional()
|
|
19513
19521
|
});
|
|
19514
19522
|
/**
|
|
19515
19523
|
* A Summary (D359): the per-camera session envelope that references tracks.
|
|
@@ -19937,7 +19945,9 @@ DeviceType.Camera, method(object({ deviceId: number() }), array(TrackSchema).rea
|
|
|
19937
19945
|
* selected is an operator who has not narrowed anything, and an empty
|
|
19938
19946
|
* timeline would read as a camera that saw nothing.
|
|
19939
19947
|
*/
|
|
19940
|
-
classes: array(string()).optional()
|
|
19948
|
+
classes: array(string()).optional(),
|
|
19949
|
+
/** See {@link ExcludeSourcesDoc}. */
|
|
19950
|
+
excludeSources: array(TrackSourceSchema).optional()
|
|
19941
19951
|
}), array(TrackSchema).readonly()), method(RecentTracksQueryInput, RecentTracksPageSchema), method(SummariesQueryInput, SummariesPageSchema), method(object({ id: string() }), SummaryDetailSchema.nullable()), method(object({ deviceId: number() }), _void(), {
|
|
19942
19952
|
kind: "mutation",
|
|
19943
19953
|
auth: "admin"
|
|
@@ -20442,8 +20452,25 @@ var occupancyRecheckFramesField = {
|
|
|
20442
20452
|
* (analyzer attaches detected `regions[]`; onboard does not — the
|
|
20443
20453
|
* camera typically only reports a binary signal plus an optional
|
|
20444
20454
|
* channel/AI class which lives in dedicated event channels).
|
|
20445
|
-
|
|
20446
|
-
|
|
20455
|
+
*
|
|
20456
|
+
* - `onboard` — the camera's firmware said something moved.
|
|
20457
|
+
* - `analyzer` — this runner's frame-diff said so, and attaches `regions[]`.
|
|
20458
|
+
* - `device-activity` — the DEVICE said it is doing its job: the
|
|
20459
|
+
* `recording-signal` LEVEL the same device raises for the recorder
|
|
20460
|
+
* ([D380](../../../../docs/decisions/adr-0380-a-device-decided-recording-is-a-mode-with-no-schedule-seeded-once.md)),
|
|
20461
|
+
* republished as a motion source. It attaches **nothing** — no regions, no
|
|
20462
|
+
* class: the only fact it carries is that the device is active, and a robot
|
|
20463
|
+
* vacuum that is itself the moving object has no region worth sending. It is
|
|
20464
|
+
* a LEVEL, so unlike `onboard` it has a real falling edge, and unlike
|
|
20465
|
+
* `analyzer` it must not open the frame-diff side-channel — the runner's
|
|
20466
|
+
* `handleOnboardMotionAnalyzer` gate is `source === 'onboard'` and stays that
|
|
20467
|
+
* way ([D392](../../../../docs/decisions/adr-0392-a-device-that-says-it-is-working-is-a-motion-source-of-its-own.md)).
|
|
20468
|
+
*/
|
|
20469
|
+
var MotionSourceEnum = _enum([
|
|
20470
|
+
"onboard",
|
|
20471
|
+
"analyzer",
|
|
20472
|
+
"device-activity"
|
|
20473
|
+
]);
|
|
20447
20474
|
/**
|
|
20448
20475
|
* List of motion sources active on a camera. Empty array is valid:
|
|
20449
20476
|
* "no source" — happens for battery cams without firmware motion when
|
|
@@ -12192,6 +12192,9 @@ var QueryFilterSchema = object({
|
|
|
12192
12192
|
whereBetween: record(string(), tuple([unknown(), unknown()])).optional(),
|
|
12193
12193
|
/** NULL-safe exclusion: matches rows whose field is NULL OR != the value. */
|
|
12194
12194
|
whereNot: record(string(), unknown()).optional(),
|
|
12195
|
+
/** NULL-safe exclusion of a SET — `whereNot` for more than one value. An
|
|
12196
|
+
* empty list excludes nothing. See `QueryFilter.whereNotIn`. */
|
|
12197
|
+
whereNotIn: record(string(), array(unknown())).optional(),
|
|
12195
12198
|
orderBy: object({
|
|
12196
12199
|
field: string(),
|
|
12197
12200
|
direction: _enum(["asc", "desc"])
|
|
@@ -12212,7 +12215,8 @@ var MutationFilterSchema = object({
|
|
|
12212
12215
|
where: record(string(), unknown()).optional(),
|
|
12213
12216
|
whereIn: record(string(), array(unknown())).optional(),
|
|
12214
12217
|
whereBetween: record(string(), tuple([unknown(), unknown()])).optional(),
|
|
12215
|
-
whereNot: record(string(), unknown()).optional()
|
|
12218
|
+
whereNot: record(string(), unknown()).optional(),
|
|
12219
|
+
whereNotIn: record(string(), array(unknown())).optional()
|
|
12216
12220
|
});
|
|
12217
12221
|
/**
|
|
12218
12222
|
* One scalar an {@link settingsStoreCapability.methods.aggregate} call asks for.
|
|
@@ -18743,10 +18747,12 @@ var TrackSourceSchema = _enum([
|
|
|
18743
18747
|
* Terminal for the plain `markForTrain` toggle: returning it to `staging` is
|
|
18744
18748
|
* a deliberate action of the retrain page, not a side effect of a checkbox.
|
|
18745
18749
|
*
|
|
18746
|
-
* There is no `null`. The state is stored `TEXT NOT NULL DEFAULT 'none'`
|
|
18747
|
-
*
|
|
18748
|
-
*
|
|
18749
|
-
*
|
|
18750
|
+
* There is no `null`. The state is stored `TEXT NOT NULL DEFAULT 'none'` so that
|
|
18751
|
+
* every row is selectable by a positive predicate. (The filter language has
|
|
18752
|
+
* since grown the NULL-safe `whereNot` / `whereNotIn` and an `IS NULL` reading
|
|
18753
|
+
* of `where: { f: null }`, which is how {@link TrackSourceSchema} can be
|
|
18754
|
+
* filtered on a NULLABLE column — see `excludeSources`. It did not when this
|
|
18755
|
+
* column was designed, and a NOT NULL column is still the better shape.)
|
|
18750
18756
|
*/
|
|
18751
18757
|
var RetrainStatusSchema = _enum([
|
|
18752
18758
|
"none",
|
|
@@ -19482,7 +19488,9 @@ var RecentTracksQueryInput = object({
|
|
|
19482
19488
|
* whose class list is unreadable are kept, and the client's rule stays the
|
|
19483
19489
|
* exact one.
|
|
19484
19490
|
*/
|
|
19485
|
-
classes: array(string()).optional()
|
|
19491
|
+
classes: array(string()).optional(),
|
|
19492
|
+
/** See {@link ExcludeSourcesDoc}. */
|
|
19493
|
+
excludeSources: array(TrackSourceSchema).optional()
|
|
19486
19494
|
});
|
|
19487
19495
|
/**
|
|
19488
19496
|
* A Summary (D359): the per-camera session envelope that references tracks.
|
|
@@ -19910,7 +19918,9 @@ DeviceType.Camera, method(object({ deviceId: number() }), array(TrackSchema).rea
|
|
|
19910
19918
|
* selected is an operator who has not narrowed anything, and an empty
|
|
19911
19919
|
* timeline would read as a camera that saw nothing.
|
|
19912
19920
|
*/
|
|
19913
|
-
classes: array(string()).optional()
|
|
19921
|
+
classes: array(string()).optional(),
|
|
19922
|
+
/** See {@link ExcludeSourcesDoc}. */
|
|
19923
|
+
excludeSources: array(TrackSourceSchema).optional()
|
|
19914
19924
|
}), array(TrackSchema).readonly()), method(RecentTracksQueryInput, RecentTracksPageSchema), method(SummariesQueryInput, SummariesPageSchema), method(object({ id: string() }), SummaryDetailSchema.nullable()), method(object({ deviceId: number() }), _void(), {
|
|
19915
19925
|
kind: "mutation",
|
|
19916
19926
|
auth: "admin"
|
|
@@ -20415,8 +20425,25 @@ var occupancyRecheckFramesField = {
|
|
|
20415
20425
|
* (analyzer attaches detected `regions[]`; onboard does not — the
|
|
20416
20426
|
* camera typically only reports a binary signal plus an optional
|
|
20417
20427
|
* channel/AI class which lives in dedicated event channels).
|
|
20418
|
-
|
|
20419
|
-
|
|
20428
|
+
*
|
|
20429
|
+
* - `onboard` — the camera's firmware said something moved.
|
|
20430
|
+
* - `analyzer` — this runner's frame-diff said so, and attaches `regions[]`.
|
|
20431
|
+
* - `device-activity` — the DEVICE said it is doing its job: the
|
|
20432
|
+
* `recording-signal` LEVEL the same device raises for the recorder
|
|
20433
|
+
* ([D380](../../../../docs/decisions/adr-0380-a-device-decided-recording-is-a-mode-with-no-schedule-seeded-once.md)),
|
|
20434
|
+
* republished as a motion source. It attaches **nothing** — no regions, no
|
|
20435
|
+
* class: the only fact it carries is that the device is active, and a robot
|
|
20436
|
+
* vacuum that is itself the moving object has no region worth sending. It is
|
|
20437
|
+
* a LEVEL, so unlike `onboard` it has a real falling edge, and unlike
|
|
20438
|
+
* `analyzer` it must not open the frame-diff side-channel — the runner's
|
|
20439
|
+
* `handleOnboardMotionAnalyzer` gate is `source === 'onboard'` and stays that
|
|
20440
|
+
* way ([D392](../../../../docs/decisions/adr-0392-a-device-that-says-it-is-working-is-a-motion-source-of-its-own.md)).
|
|
20441
|
+
*/
|
|
20442
|
+
var MotionSourceEnum = _enum([
|
|
20443
|
+
"onboard",
|
|
20444
|
+
"analyzer",
|
|
20445
|
+
"device-activity"
|
|
20446
|
+
]);
|
|
20420
20447
|
/**
|
|
20421
20448
|
* List of motion sources active on a camera. Empty array is valid:
|
|
20422
20449
|
* "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-export-alexa",
|
|
3
|
-
"version": "1.2.
|
|
3
|
+
"version": "1.2.88",
|
|
4
4
|
"description": "Alexa Smart Home Skill export — hub-side OAuth provider + directive handler. The companion AWS Lambda forwards Alexa directives to this addon's /addon/export-alexa/directive endpoint.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"camstack",
|