@camstack/addon-provider-unifi 0.2.80 → 0.2.82
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 +36 -9
- package/dist/addon.mjs +36 -9
- package/package.json +1 -1
package/dist/addon.js
CHANGED
|
@@ -12051,6 +12051,9 @@ var QueryFilterSchema = object({
|
|
|
12051
12051
|
whereBetween: record(string(), tuple([unknown(), unknown()])).optional(),
|
|
12052
12052
|
/** NULL-safe exclusion: matches rows whose field is NULL OR != the value. */
|
|
12053
12053
|
whereNot: record(string(), unknown()).optional(),
|
|
12054
|
+
/** NULL-safe exclusion of a SET — `whereNot` for more than one value. An
|
|
12055
|
+
* empty list excludes nothing. See `QueryFilter.whereNotIn`. */
|
|
12056
|
+
whereNotIn: record(string(), array(unknown())).optional(),
|
|
12054
12057
|
orderBy: object({
|
|
12055
12058
|
field: string(),
|
|
12056
12059
|
direction: _enum(["asc", "desc"])
|
|
@@ -12071,7 +12074,8 @@ var MutationFilterSchema = object({
|
|
|
12071
12074
|
where: record(string(), unknown()).optional(),
|
|
12072
12075
|
whereIn: record(string(), array(unknown())).optional(),
|
|
12073
12076
|
whereBetween: record(string(), tuple([unknown(), unknown()])).optional(),
|
|
12074
|
-
whereNot: record(string(), unknown()).optional()
|
|
12077
|
+
whereNot: record(string(), unknown()).optional(),
|
|
12078
|
+
whereNotIn: record(string(), array(unknown())).optional()
|
|
12075
12079
|
});
|
|
12076
12080
|
/**
|
|
12077
12081
|
* One scalar an {@link settingsStoreCapability.methods.aggregate} call asks for.
|
|
@@ -18827,10 +18831,12 @@ var TrackSourceSchema = _enum([
|
|
|
18827
18831
|
* Terminal for the plain `markForTrain` toggle: returning it to `staging` is
|
|
18828
18832
|
* a deliberate action of the retrain page, not a side effect of a checkbox.
|
|
18829
18833
|
*
|
|
18830
|
-
* There is no `null`. The state is stored `TEXT NOT NULL DEFAULT 'none'`
|
|
18831
|
-
*
|
|
18832
|
-
*
|
|
18833
|
-
*
|
|
18834
|
+
* There is no `null`. The state is stored `TEXT NOT NULL DEFAULT 'none'` so that
|
|
18835
|
+
* every row is selectable by a positive predicate. (The filter language has
|
|
18836
|
+
* since grown the NULL-safe `whereNot` / `whereNotIn` and an `IS NULL` reading
|
|
18837
|
+
* of `where: { f: null }`, which is how {@link TrackSourceSchema} can be
|
|
18838
|
+
* filtered on a NULLABLE column — see `excludeSources`. It did not when this
|
|
18839
|
+
* column was designed, and a NOT NULL column is still the better shape.)
|
|
18834
18840
|
*/
|
|
18835
18841
|
var RetrainStatusSchema = _enum([
|
|
18836
18842
|
"none",
|
|
@@ -19566,7 +19572,9 @@ var RecentTracksQueryInput = object({
|
|
|
19566
19572
|
* whose class list is unreadable are kept, and the client's rule stays the
|
|
19567
19573
|
* exact one.
|
|
19568
19574
|
*/
|
|
19569
|
-
classes: array(string()).optional()
|
|
19575
|
+
classes: array(string()).optional(),
|
|
19576
|
+
/** See {@link ExcludeSourcesDoc}. */
|
|
19577
|
+
excludeSources: array(TrackSourceSchema).optional()
|
|
19570
19578
|
});
|
|
19571
19579
|
/**
|
|
19572
19580
|
* A Summary (D359): the per-camera session envelope that references tracks.
|
|
@@ -19994,7 +20002,9 @@ DeviceType.Camera, method(object({ deviceId: number() }), array(TrackSchema).rea
|
|
|
19994
20002
|
* selected is an operator who has not narrowed anything, and an empty
|
|
19995
20003
|
* timeline would read as a camera that saw nothing.
|
|
19996
20004
|
*/
|
|
19997
|
-
classes: array(string()).optional()
|
|
20005
|
+
classes: array(string()).optional(),
|
|
20006
|
+
/** See {@link ExcludeSourcesDoc}. */
|
|
20007
|
+
excludeSources: array(TrackSourceSchema).optional()
|
|
19998
20008
|
}), array(TrackSchema).readonly()), method(RecentTracksQueryInput, RecentTracksPageSchema), method(SummariesQueryInput, SummariesPageSchema), method(object({ id: string() }), SummaryDetailSchema.nullable()), method(object({ deviceId: number() }), _void(), {
|
|
19999
20009
|
kind: "mutation",
|
|
20000
20010
|
auth: "admin"
|
|
@@ -20499,8 +20509,25 @@ var occupancyRecheckFramesField = {
|
|
|
20499
20509
|
* (analyzer attaches detected `regions[]`; onboard does not — the
|
|
20500
20510
|
* camera typically only reports a binary signal plus an optional
|
|
20501
20511
|
* channel/AI class which lives in dedicated event channels).
|
|
20502
|
-
|
|
20503
|
-
|
|
20512
|
+
*
|
|
20513
|
+
* - `onboard` — the camera's firmware said something moved.
|
|
20514
|
+
* - `analyzer` — this runner's frame-diff said so, and attaches `regions[]`.
|
|
20515
|
+
* - `device-activity` — the DEVICE said it is doing its job: the
|
|
20516
|
+
* `recording-signal` LEVEL the same device raises for the recorder
|
|
20517
|
+
* ([D380](../../../../docs/decisions/adr-0380-a-device-decided-recording-is-a-mode-with-no-schedule-seeded-once.md)),
|
|
20518
|
+
* republished as a motion source. It attaches **nothing** — no regions, no
|
|
20519
|
+
* class: the only fact it carries is that the device is active, and a robot
|
|
20520
|
+
* vacuum that is itself the moving object has no region worth sending. It is
|
|
20521
|
+
* a LEVEL, so unlike `onboard` it has a real falling edge, and unlike
|
|
20522
|
+
* `analyzer` it must not open the frame-diff side-channel — the runner's
|
|
20523
|
+
* `handleOnboardMotionAnalyzer` gate is `source === 'onboard'` and stays that
|
|
20524
|
+
* way ([D392](../../../../docs/decisions/adr-0392-a-device-that-says-it-is-working-is-a-motion-source-of-its-own.md)).
|
|
20525
|
+
*/
|
|
20526
|
+
var MotionSourceEnum = _enum([
|
|
20527
|
+
"onboard",
|
|
20528
|
+
"analyzer",
|
|
20529
|
+
"device-activity"
|
|
20530
|
+
]);
|
|
20504
20531
|
/**
|
|
20505
20532
|
* List of motion sources active on a camera. Empty array is valid:
|
|
20506
20533
|
* "no source" — happens for battery cams without firmware motion when
|
package/dist/addon.mjs
CHANGED
|
@@ -12050,6 +12050,9 @@ var QueryFilterSchema = object({
|
|
|
12050
12050
|
whereBetween: record(string(), tuple([unknown(), unknown()])).optional(),
|
|
12051
12051
|
/** NULL-safe exclusion: matches rows whose field is NULL OR != the value. */
|
|
12052
12052
|
whereNot: record(string(), unknown()).optional(),
|
|
12053
|
+
/** NULL-safe exclusion of a SET — `whereNot` for more than one value. An
|
|
12054
|
+
* empty list excludes nothing. See `QueryFilter.whereNotIn`. */
|
|
12055
|
+
whereNotIn: record(string(), array(unknown())).optional(),
|
|
12053
12056
|
orderBy: object({
|
|
12054
12057
|
field: string(),
|
|
12055
12058
|
direction: _enum(["asc", "desc"])
|
|
@@ -12070,7 +12073,8 @@ var MutationFilterSchema = object({
|
|
|
12070
12073
|
where: record(string(), unknown()).optional(),
|
|
12071
12074
|
whereIn: record(string(), array(unknown())).optional(),
|
|
12072
12075
|
whereBetween: record(string(), tuple([unknown(), unknown()])).optional(),
|
|
12073
|
-
whereNot: record(string(), unknown()).optional()
|
|
12076
|
+
whereNot: record(string(), unknown()).optional(),
|
|
12077
|
+
whereNotIn: record(string(), array(unknown())).optional()
|
|
12074
12078
|
});
|
|
12075
12079
|
/**
|
|
12076
12080
|
* One scalar an {@link settingsStoreCapability.methods.aggregate} call asks for.
|
|
@@ -18826,10 +18830,12 @@ var TrackSourceSchema = _enum([
|
|
|
18826
18830
|
* Terminal for the plain `markForTrain` toggle: returning it to `staging` is
|
|
18827
18831
|
* a deliberate action of the retrain page, not a side effect of a checkbox.
|
|
18828
18832
|
*
|
|
18829
|
-
* There is no `null`. The state is stored `TEXT NOT NULL DEFAULT 'none'`
|
|
18830
|
-
*
|
|
18831
|
-
*
|
|
18832
|
-
*
|
|
18833
|
+
* There is no `null`. The state is stored `TEXT NOT NULL DEFAULT 'none'` so that
|
|
18834
|
+
* every row is selectable by a positive predicate. (The filter language has
|
|
18835
|
+
* since grown the NULL-safe `whereNot` / `whereNotIn` and an `IS NULL` reading
|
|
18836
|
+
* of `where: { f: null }`, which is how {@link TrackSourceSchema} can be
|
|
18837
|
+
* filtered on a NULLABLE column — see `excludeSources`. It did not when this
|
|
18838
|
+
* column was designed, and a NOT NULL column is still the better shape.)
|
|
18833
18839
|
*/
|
|
18834
18840
|
var RetrainStatusSchema = _enum([
|
|
18835
18841
|
"none",
|
|
@@ -19565,7 +19571,9 @@ var RecentTracksQueryInput = object({
|
|
|
19565
19571
|
* whose class list is unreadable are kept, and the client's rule stays the
|
|
19566
19572
|
* exact one.
|
|
19567
19573
|
*/
|
|
19568
|
-
classes: array(string()).optional()
|
|
19574
|
+
classes: array(string()).optional(),
|
|
19575
|
+
/** See {@link ExcludeSourcesDoc}. */
|
|
19576
|
+
excludeSources: array(TrackSourceSchema).optional()
|
|
19569
19577
|
});
|
|
19570
19578
|
/**
|
|
19571
19579
|
* A Summary (D359): the per-camera session envelope that references tracks.
|
|
@@ -19993,7 +20001,9 @@ DeviceType.Camera, method(object({ deviceId: number() }), array(TrackSchema).rea
|
|
|
19993
20001
|
* selected is an operator who has not narrowed anything, and an empty
|
|
19994
20002
|
* timeline would read as a camera that saw nothing.
|
|
19995
20003
|
*/
|
|
19996
|
-
classes: array(string()).optional()
|
|
20004
|
+
classes: array(string()).optional(),
|
|
20005
|
+
/** See {@link ExcludeSourcesDoc}. */
|
|
20006
|
+
excludeSources: array(TrackSourceSchema).optional()
|
|
19997
20007
|
}), array(TrackSchema).readonly()), method(RecentTracksQueryInput, RecentTracksPageSchema), method(SummariesQueryInput, SummariesPageSchema), method(object({ id: string() }), SummaryDetailSchema.nullable()), method(object({ deviceId: number() }), _void(), {
|
|
19998
20008
|
kind: "mutation",
|
|
19999
20009
|
auth: "admin"
|
|
@@ -20498,8 +20508,25 @@ var occupancyRecheckFramesField = {
|
|
|
20498
20508
|
* (analyzer attaches detected `regions[]`; onboard does not — the
|
|
20499
20509
|
* camera typically only reports a binary signal plus an optional
|
|
20500
20510
|
* channel/AI class which lives in dedicated event channels).
|
|
20501
|
-
|
|
20502
|
-
|
|
20511
|
+
*
|
|
20512
|
+
* - `onboard` — the camera's firmware said something moved.
|
|
20513
|
+
* - `analyzer` — this runner's frame-diff said so, and attaches `regions[]`.
|
|
20514
|
+
* - `device-activity` — the DEVICE said it is doing its job: the
|
|
20515
|
+
* `recording-signal` LEVEL the same device raises for the recorder
|
|
20516
|
+
* ([D380](../../../../docs/decisions/adr-0380-a-device-decided-recording-is-a-mode-with-no-schedule-seeded-once.md)),
|
|
20517
|
+
* republished as a motion source. It attaches **nothing** — no regions, no
|
|
20518
|
+
* class: the only fact it carries is that the device is active, and a robot
|
|
20519
|
+
* vacuum that is itself the moving object has no region worth sending. It is
|
|
20520
|
+
* a LEVEL, so unlike `onboard` it has a real falling edge, and unlike
|
|
20521
|
+
* `analyzer` it must not open the frame-diff side-channel — the runner's
|
|
20522
|
+
* `handleOnboardMotionAnalyzer` gate is `source === 'onboard'` and stays that
|
|
20523
|
+
* way ([D392](../../../../docs/decisions/adr-0392-a-device-that-says-it-is-working-is-a-motion-source-of-its-own.md)).
|
|
20524
|
+
*/
|
|
20525
|
+
var MotionSourceEnum = _enum([
|
|
20526
|
+
"onboard",
|
|
20527
|
+
"analyzer",
|
|
20528
|
+
"device-activity"
|
|
20529
|
+
]);
|
|
20503
20530
|
/**
|
|
20504
20531
|
* List of motion sources active on a camera. Empty array is valid:
|
|
20505
20532
|
* "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-unifi",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.82",
|
|
4
4
|
"description": "UniFi Network controller device-provider addon for CamStack — local-controller infra switches/APs (as containers) + network-client presence. NO cameras/Protect.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"camstack",
|