@camstack/addon-export-hap 1.2.91 → 1.2.93
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/hap-export.addon.js +36 -9
- package/dist/hap-export.addon.mjs +36 -9
- package/package.json +1 -1
package/dist/hap-export.addon.js
CHANGED
|
@@ -12669,6 +12669,9 @@ var QueryFilterSchema = object({
|
|
|
12669
12669
|
whereBetween: record(string(), tuple([unknown(), unknown()])).optional(),
|
|
12670
12670
|
/** NULL-safe exclusion: matches rows whose field is NULL OR != the value. */
|
|
12671
12671
|
whereNot: record(string(), unknown()).optional(),
|
|
12672
|
+
/** NULL-safe exclusion of a SET — `whereNot` for more than one value. An
|
|
12673
|
+
* empty list excludes nothing. See `QueryFilter.whereNotIn`. */
|
|
12674
|
+
whereNotIn: record(string(), array(unknown())).optional(),
|
|
12672
12675
|
orderBy: object({
|
|
12673
12676
|
field: string(),
|
|
12674
12677
|
direction: _enum(["asc", "desc"])
|
|
@@ -12689,7 +12692,8 @@ var MutationFilterSchema = object({
|
|
|
12689
12692
|
where: record(string(), unknown()).optional(),
|
|
12690
12693
|
whereIn: record(string(), array(unknown())).optional(),
|
|
12691
12694
|
whereBetween: record(string(), tuple([unknown(), unknown()])).optional(),
|
|
12692
|
-
whereNot: record(string(), unknown()).optional()
|
|
12695
|
+
whereNot: record(string(), unknown()).optional(),
|
|
12696
|
+
whereNotIn: record(string(), array(unknown())).optional()
|
|
12693
12697
|
});
|
|
12694
12698
|
/**
|
|
12695
12699
|
* One scalar an {@link settingsStoreCapability.methods.aggregate} call asks for.
|
|
@@ -19260,10 +19264,12 @@ var TrackSourceSchema = _enum([
|
|
|
19260
19264
|
* Terminal for the plain `markForTrain` toggle: returning it to `staging` is
|
|
19261
19265
|
* a deliberate action of the retrain page, not a side effect of a checkbox.
|
|
19262
19266
|
*
|
|
19263
|
-
* There is no `null`. The state is stored `TEXT NOT NULL DEFAULT 'none'`
|
|
19264
|
-
*
|
|
19265
|
-
*
|
|
19266
|
-
*
|
|
19267
|
+
* There is no `null`. The state is stored `TEXT NOT NULL DEFAULT 'none'` so that
|
|
19268
|
+
* every row is selectable by a positive predicate. (The filter language has
|
|
19269
|
+
* since grown the NULL-safe `whereNot` / `whereNotIn` and an `IS NULL` reading
|
|
19270
|
+
* of `where: { f: null }`, which is how {@link TrackSourceSchema} can be
|
|
19271
|
+
* filtered on a NULLABLE column — see `excludeSources`. It did not when this
|
|
19272
|
+
* column was designed, and a NOT NULL column is still the better shape.)
|
|
19267
19273
|
*/
|
|
19268
19274
|
var RetrainStatusSchema = _enum([
|
|
19269
19275
|
"none",
|
|
@@ -19999,7 +20005,9 @@ var RecentTracksQueryInput = object({
|
|
|
19999
20005
|
* whose class list is unreadable are kept, and the client's rule stays the
|
|
20000
20006
|
* exact one.
|
|
20001
20007
|
*/
|
|
20002
|
-
classes: array(string()).optional()
|
|
20008
|
+
classes: array(string()).optional(),
|
|
20009
|
+
/** See {@link ExcludeSourcesDoc}. */
|
|
20010
|
+
excludeSources: array(TrackSourceSchema).optional()
|
|
20003
20011
|
});
|
|
20004
20012
|
/**
|
|
20005
20013
|
* A Summary (D359): the per-camera session envelope that references tracks.
|
|
@@ -20427,7 +20435,9 @@ DeviceType.Camera, method(object({ deviceId: number() }), array(TrackSchema).rea
|
|
|
20427
20435
|
* selected is an operator who has not narrowed anything, and an empty
|
|
20428
20436
|
* timeline would read as a camera that saw nothing.
|
|
20429
20437
|
*/
|
|
20430
|
-
classes: array(string()).optional()
|
|
20438
|
+
classes: array(string()).optional(),
|
|
20439
|
+
/** See {@link ExcludeSourcesDoc}. */
|
|
20440
|
+
excludeSources: array(TrackSourceSchema).optional()
|
|
20431
20441
|
}), array(TrackSchema).readonly()), method(RecentTracksQueryInput, RecentTracksPageSchema), method(SummariesQueryInput, SummariesPageSchema), method(object({ id: string() }), SummaryDetailSchema.nullable()), method(object({ deviceId: number() }), _void(), {
|
|
20432
20442
|
kind: "mutation",
|
|
20433
20443
|
auth: "admin"
|
|
@@ -20932,8 +20942,25 @@ var occupancyRecheckFramesField = {
|
|
|
20932
20942
|
* (analyzer attaches detected `regions[]`; onboard does not — the
|
|
20933
20943
|
* camera typically only reports a binary signal plus an optional
|
|
20934
20944
|
* channel/AI class which lives in dedicated event channels).
|
|
20935
|
-
|
|
20936
|
-
|
|
20945
|
+
*
|
|
20946
|
+
* - `onboard` — the camera's firmware said something moved.
|
|
20947
|
+
* - `analyzer` — this runner's frame-diff said so, and attaches `regions[]`.
|
|
20948
|
+
* - `device-activity` — the DEVICE said it is doing its job: the
|
|
20949
|
+
* `recording-signal` LEVEL the same device raises for the recorder
|
|
20950
|
+
* ([D380](../../../../docs/decisions/adr-0380-a-device-decided-recording-is-a-mode-with-no-schedule-seeded-once.md)),
|
|
20951
|
+
* republished as a motion source. It attaches **nothing** — no regions, no
|
|
20952
|
+
* class: the only fact it carries is that the device is active, and a robot
|
|
20953
|
+
* vacuum that is itself the moving object has no region worth sending. It is
|
|
20954
|
+
* a LEVEL, so unlike `onboard` it has a real falling edge, and unlike
|
|
20955
|
+
* `analyzer` it must not open the frame-diff side-channel — the runner's
|
|
20956
|
+
* `handleOnboardMotionAnalyzer` gate is `source === 'onboard'` and stays that
|
|
20957
|
+
* way ([D392](../../../../docs/decisions/adr-0392-a-device-that-says-it-is-working-is-a-motion-source-of-its-own.md)).
|
|
20958
|
+
*/
|
|
20959
|
+
var MotionSourceEnum = _enum([
|
|
20960
|
+
"onboard",
|
|
20961
|
+
"analyzer",
|
|
20962
|
+
"device-activity"
|
|
20963
|
+
]);
|
|
20937
20964
|
/**
|
|
20938
20965
|
* List of motion sources active on a camera. Empty array is valid:
|
|
20939
20966
|
* "no source" — happens for battery cams without firmware motion when
|
|
@@ -12657,6 +12657,9 @@ var QueryFilterSchema = object({
|
|
|
12657
12657
|
whereBetween: record(string(), tuple([unknown(), unknown()])).optional(),
|
|
12658
12658
|
/** NULL-safe exclusion: matches rows whose field is NULL OR != the value. */
|
|
12659
12659
|
whereNot: record(string(), unknown()).optional(),
|
|
12660
|
+
/** NULL-safe exclusion of a SET — `whereNot` for more than one value. An
|
|
12661
|
+
* empty list excludes nothing. See `QueryFilter.whereNotIn`. */
|
|
12662
|
+
whereNotIn: record(string(), array(unknown())).optional(),
|
|
12660
12663
|
orderBy: object({
|
|
12661
12664
|
field: string(),
|
|
12662
12665
|
direction: _enum(["asc", "desc"])
|
|
@@ -12677,7 +12680,8 @@ var MutationFilterSchema = object({
|
|
|
12677
12680
|
where: record(string(), unknown()).optional(),
|
|
12678
12681
|
whereIn: record(string(), array(unknown())).optional(),
|
|
12679
12682
|
whereBetween: record(string(), tuple([unknown(), unknown()])).optional(),
|
|
12680
|
-
whereNot: record(string(), unknown()).optional()
|
|
12683
|
+
whereNot: record(string(), unknown()).optional(),
|
|
12684
|
+
whereNotIn: record(string(), array(unknown())).optional()
|
|
12681
12685
|
});
|
|
12682
12686
|
/**
|
|
12683
12687
|
* One scalar an {@link settingsStoreCapability.methods.aggregate} call asks for.
|
|
@@ -19248,10 +19252,12 @@ var TrackSourceSchema = _enum([
|
|
|
19248
19252
|
* Terminal for the plain `markForTrain` toggle: returning it to `staging` is
|
|
19249
19253
|
* a deliberate action of the retrain page, not a side effect of a checkbox.
|
|
19250
19254
|
*
|
|
19251
|
-
* There is no `null`. The state is stored `TEXT NOT NULL DEFAULT 'none'`
|
|
19252
|
-
*
|
|
19253
|
-
*
|
|
19254
|
-
*
|
|
19255
|
+
* There is no `null`. The state is stored `TEXT NOT NULL DEFAULT 'none'` so that
|
|
19256
|
+
* every row is selectable by a positive predicate. (The filter language has
|
|
19257
|
+
* since grown the NULL-safe `whereNot` / `whereNotIn` and an `IS NULL` reading
|
|
19258
|
+
* of `where: { f: null }`, which is how {@link TrackSourceSchema} can be
|
|
19259
|
+
* filtered on a NULLABLE column — see `excludeSources`. It did not when this
|
|
19260
|
+
* column was designed, and a NOT NULL column is still the better shape.)
|
|
19255
19261
|
*/
|
|
19256
19262
|
var RetrainStatusSchema = _enum([
|
|
19257
19263
|
"none",
|
|
@@ -19987,7 +19993,9 @@ var RecentTracksQueryInput = object({
|
|
|
19987
19993
|
* whose class list is unreadable are kept, and the client's rule stays the
|
|
19988
19994
|
* exact one.
|
|
19989
19995
|
*/
|
|
19990
|
-
classes: array(string()).optional()
|
|
19996
|
+
classes: array(string()).optional(),
|
|
19997
|
+
/** See {@link ExcludeSourcesDoc}. */
|
|
19998
|
+
excludeSources: array(TrackSourceSchema).optional()
|
|
19991
19999
|
});
|
|
19992
20000
|
/**
|
|
19993
20001
|
* A Summary (D359): the per-camera session envelope that references tracks.
|
|
@@ -20415,7 +20423,9 @@ DeviceType.Camera, method(object({ deviceId: number() }), array(TrackSchema).rea
|
|
|
20415
20423
|
* selected is an operator who has not narrowed anything, and an empty
|
|
20416
20424
|
* timeline would read as a camera that saw nothing.
|
|
20417
20425
|
*/
|
|
20418
|
-
classes: array(string()).optional()
|
|
20426
|
+
classes: array(string()).optional(),
|
|
20427
|
+
/** See {@link ExcludeSourcesDoc}. */
|
|
20428
|
+
excludeSources: array(TrackSourceSchema).optional()
|
|
20419
20429
|
}), array(TrackSchema).readonly()), method(RecentTracksQueryInput, RecentTracksPageSchema), method(SummariesQueryInput, SummariesPageSchema), method(object({ id: string() }), SummaryDetailSchema.nullable()), method(object({ deviceId: number() }), _void(), {
|
|
20420
20430
|
kind: "mutation",
|
|
20421
20431
|
auth: "admin"
|
|
@@ -20920,8 +20930,25 @@ var occupancyRecheckFramesField = {
|
|
|
20920
20930
|
* (analyzer attaches detected `regions[]`; onboard does not — the
|
|
20921
20931
|
* camera typically only reports a binary signal plus an optional
|
|
20922
20932
|
* channel/AI class which lives in dedicated event channels).
|
|
20923
|
-
|
|
20924
|
-
|
|
20933
|
+
*
|
|
20934
|
+
* - `onboard` — the camera's firmware said something moved.
|
|
20935
|
+
* - `analyzer` — this runner's frame-diff said so, and attaches `regions[]`.
|
|
20936
|
+
* - `device-activity` — the DEVICE said it is doing its job: the
|
|
20937
|
+
* `recording-signal` LEVEL the same device raises for the recorder
|
|
20938
|
+
* ([D380](../../../../docs/decisions/adr-0380-a-device-decided-recording-is-a-mode-with-no-schedule-seeded-once.md)),
|
|
20939
|
+
* republished as a motion source. It attaches **nothing** — no regions, no
|
|
20940
|
+
* class: the only fact it carries is that the device is active, and a robot
|
|
20941
|
+
* vacuum that is itself the moving object has no region worth sending. It is
|
|
20942
|
+
* a LEVEL, so unlike `onboard` it has a real falling edge, and unlike
|
|
20943
|
+
* `analyzer` it must not open the frame-diff side-channel — the runner's
|
|
20944
|
+
* `handleOnboardMotionAnalyzer` gate is `source === 'onboard'` and stays that
|
|
20945
|
+
* way ([D392](../../../../docs/decisions/adr-0392-a-device-that-says-it-is-working-is-a-motion-source-of-its-own.md)).
|
|
20946
|
+
*/
|
|
20947
|
+
var MotionSourceEnum = _enum([
|
|
20948
|
+
"onboard",
|
|
20949
|
+
"analyzer",
|
|
20950
|
+
"device-activity"
|
|
20951
|
+
]);
|
|
20925
20952
|
/**
|
|
20926
20953
|
* List of motion sources active on a camera. Empty array is valid:
|
|
20927
20954
|
* "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-hap",
|
|
3
|
-
"version": "1.2.
|
|
3
|
+
"version": "1.2.93",
|
|
4
4
|
"description": "HomeKit (HAP) exporter for CamStack devices. Publishes each exposed device as its own HomeKit accessory: cameras and doorbells with SRTP streaming, HomeKit Secure Video, motion, two-way audio, PTZ and battery; switches, lights, locks and sensors through a capability→service table.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"camstack",
|