@camstack/addon-notifiers 1.2.84 → 1.2.86
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
|
@@ -12123,6 +12123,9 @@ var QueryFilterSchema = object({
|
|
|
12123
12123
|
whereBetween: record(string(), tuple([unknown(), unknown()])).optional(),
|
|
12124
12124
|
/** NULL-safe exclusion: matches rows whose field is NULL OR != the value. */
|
|
12125
12125
|
whereNot: record(string(), unknown()).optional(),
|
|
12126
|
+
/** NULL-safe exclusion of a SET — `whereNot` for more than one value. An
|
|
12127
|
+
* empty list excludes nothing. See `QueryFilter.whereNotIn`. */
|
|
12128
|
+
whereNotIn: record(string(), array(unknown())).optional(),
|
|
12126
12129
|
orderBy: object({
|
|
12127
12130
|
field: string(),
|
|
12128
12131
|
direction: _enum(["asc", "desc"])
|
|
@@ -12143,7 +12146,8 @@ var MutationFilterSchema = object({
|
|
|
12143
12146
|
where: record(string(), unknown()).optional(),
|
|
12144
12147
|
whereIn: record(string(), array(unknown())).optional(),
|
|
12145
12148
|
whereBetween: record(string(), tuple([unknown(), unknown()])).optional(),
|
|
12146
|
-
whereNot: record(string(), unknown()).optional()
|
|
12149
|
+
whereNot: record(string(), unknown()).optional(),
|
|
12150
|
+
whereNotIn: record(string(), array(unknown())).optional()
|
|
12147
12151
|
});
|
|
12148
12152
|
/**
|
|
12149
12153
|
* One scalar an {@link settingsStoreCapability.methods.aggregate} call asks for.
|
|
@@ -18647,10 +18651,12 @@ var TrackSourceSchema = _enum([
|
|
|
18647
18651
|
* Terminal for the plain `markForTrain` toggle: returning it to `staging` is
|
|
18648
18652
|
* a deliberate action of the retrain page, not a side effect of a checkbox.
|
|
18649
18653
|
*
|
|
18650
|
-
* There is no `null`. The state is stored `TEXT NOT NULL DEFAULT 'none'`
|
|
18651
|
-
*
|
|
18652
|
-
*
|
|
18653
|
-
*
|
|
18654
|
+
* There is no `null`. The state is stored `TEXT NOT NULL DEFAULT 'none'` so that
|
|
18655
|
+
* every row is selectable by a positive predicate. (The filter language has
|
|
18656
|
+
* since grown the NULL-safe `whereNot` / `whereNotIn` and an `IS NULL` reading
|
|
18657
|
+
* of `where: { f: null }`, which is how {@link TrackSourceSchema} can be
|
|
18658
|
+
* filtered on a NULLABLE column — see `excludeSources`. It did not when this
|
|
18659
|
+
* column was designed, and a NOT NULL column is still the better shape.)
|
|
18654
18660
|
*/
|
|
18655
18661
|
var RetrainStatusSchema = _enum([
|
|
18656
18662
|
"none",
|
|
@@ -19386,7 +19392,9 @@ var RecentTracksQueryInput = object({
|
|
|
19386
19392
|
* whose class list is unreadable are kept, and the client's rule stays the
|
|
19387
19393
|
* exact one.
|
|
19388
19394
|
*/
|
|
19389
|
-
classes: array(string()).optional()
|
|
19395
|
+
classes: array(string()).optional(),
|
|
19396
|
+
/** See {@link ExcludeSourcesDoc}. */
|
|
19397
|
+
excludeSources: array(TrackSourceSchema).optional()
|
|
19390
19398
|
});
|
|
19391
19399
|
/**
|
|
19392
19400
|
* A Summary (D359): the per-camera session envelope that references tracks.
|
|
@@ -19814,7 +19822,9 @@ DeviceType.Camera, method(object({ deviceId: number() }), array(TrackSchema).rea
|
|
|
19814
19822
|
* selected is an operator who has not narrowed anything, and an empty
|
|
19815
19823
|
* timeline would read as a camera that saw nothing.
|
|
19816
19824
|
*/
|
|
19817
|
-
classes: array(string()).optional()
|
|
19825
|
+
classes: array(string()).optional(),
|
|
19826
|
+
/** See {@link ExcludeSourcesDoc}. */
|
|
19827
|
+
excludeSources: array(TrackSourceSchema).optional()
|
|
19818
19828
|
}), array(TrackSchema).readonly()), method(RecentTracksQueryInput, RecentTracksPageSchema), method(SummariesQueryInput, SummariesPageSchema), method(object({ id: string() }), SummaryDetailSchema.nullable()), method(object({ deviceId: number() }), _void(), {
|
|
19819
19829
|
kind: "mutation",
|
|
19820
19830
|
auth: "admin"
|
|
@@ -20319,8 +20329,25 @@ var occupancyRecheckFramesField = {
|
|
|
20319
20329
|
* (analyzer attaches detected `regions[]`; onboard does not — the
|
|
20320
20330
|
* camera typically only reports a binary signal plus an optional
|
|
20321
20331
|
* channel/AI class which lives in dedicated event channels).
|
|
20322
|
-
|
|
20323
|
-
|
|
20332
|
+
*
|
|
20333
|
+
* - `onboard` — the camera's firmware said something moved.
|
|
20334
|
+
* - `analyzer` — this runner's frame-diff said so, and attaches `regions[]`.
|
|
20335
|
+
* - `device-activity` — the DEVICE said it is doing its job: the
|
|
20336
|
+
* `recording-signal` LEVEL the same device raises for the recorder
|
|
20337
|
+
* ([D380](../../../../docs/decisions/adr-0380-a-device-decided-recording-is-a-mode-with-no-schedule-seeded-once.md)),
|
|
20338
|
+
* republished as a motion source. It attaches **nothing** — no regions, no
|
|
20339
|
+
* class: the only fact it carries is that the device is active, and a robot
|
|
20340
|
+
* vacuum that is itself the moving object has no region worth sending. It is
|
|
20341
|
+
* a LEVEL, so unlike `onboard` it has a real falling edge, and unlike
|
|
20342
|
+
* `analyzer` it must not open the frame-diff side-channel — the runner's
|
|
20343
|
+
* `handleOnboardMotionAnalyzer` gate is `source === 'onboard'` and stays that
|
|
20344
|
+
* way ([D392](../../../../docs/decisions/adr-0392-a-device-that-says-it-is-working-is-a-motion-source-of-its-own.md)).
|
|
20345
|
+
*/
|
|
20346
|
+
var MotionSourceEnum = _enum([
|
|
20347
|
+
"onboard",
|
|
20348
|
+
"analyzer",
|
|
20349
|
+
"device-activity"
|
|
20350
|
+
]);
|
|
20324
20351
|
/**
|
|
20325
20352
|
* List of motion sources active on a camera. Empty array is valid:
|
|
20326
20353
|
* "no source" — happens for battery cams without firmware motion when
|
package/dist/addon.mjs
CHANGED
|
@@ -12096,6 +12096,9 @@ var QueryFilterSchema = object({
|
|
|
12096
12096
|
whereBetween: record(string(), tuple([unknown(), unknown()])).optional(),
|
|
12097
12097
|
/** NULL-safe exclusion: matches rows whose field is NULL OR != the value. */
|
|
12098
12098
|
whereNot: record(string(), unknown()).optional(),
|
|
12099
|
+
/** NULL-safe exclusion of a SET — `whereNot` for more than one value. An
|
|
12100
|
+
* empty list excludes nothing. See `QueryFilter.whereNotIn`. */
|
|
12101
|
+
whereNotIn: record(string(), array(unknown())).optional(),
|
|
12099
12102
|
orderBy: object({
|
|
12100
12103
|
field: string(),
|
|
12101
12104
|
direction: _enum(["asc", "desc"])
|
|
@@ -12116,7 +12119,8 @@ var MutationFilterSchema = object({
|
|
|
12116
12119
|
where: record(string(), unknown()).optional(),
|
|
12117
12120
|
whereIn: record(string(), array(unknown())).optional(),
|
|
12118
12121
|
whereBetween: record(string(), tuple([unknown(), unknown()])).optional(),
|
|
12119
|
-
whereNot: record(string(), unknown()).optional()
|
|
12122
|
+
whereNot: record(string(), unknown()).optional(),
|
|
12123
|
+
whereNotIn: record(string(), array(unknown())).optional()
|
|
12120
12124
|
});
|
|
12121
12125
|
/**
|
|
12122
12126
|
* One scalar an {@link settingsStoreCapability.methods.aggregate} call asks for.
|
|
@@ -18620,10 +18624,12 @@ var TrackSourceSchema = _enum([
|
|
|
18620
18624
|
* Terminal for the plain `markForTrain` toggle: returning it to `staging` is
|
|
18621
18625
|
* a deliberate action of the retrain page, not a side effect of a checkbox.
|
|
18622
18626
|
*
|
|
18623
|
-
* There is no `null`. The state is stored `TEXT NOT NULL DEFAULT 'none'`
|
|
18624
|
-
*
|
|
18625
|
-
*
|
|
18626
|
-
*
|
|
18627
|
+
* There is no `null`. The state is stored `TEXT NOT NULL DEFAULT 'none'` so that
|
|
18628
|
+
* every row is selectable by a positive predicate. (The filter language has
|
|
18629
|
+
* since grown the NULL-safe `whereNot` / `whereNotIn` and an `IS NULL` reading
|
|
18630
|
+
* of `where: { f: null }`, which is how {@link TrackSourceSchema} can be
|
|
18631
|
+
* filtered on a NULLABLE column — see `excludeSources`. It did not when this
|
|
18632
|
+
* column was designed, and a NOT NULL column is still the better shape.)
|
|
18627
18633
|
*/
|
|
18628
18634
|
var RetrainStatusSchema = _enum([
|
|
18629
18635
|
"none",
|
|
@@ -19359,7 +19365,9 @@ var RecentTracksQueryInput = object({
|
|
|
19359
19365
|
* whose class list is unreadable are kept, and the client's rule stays the
|
|
19360
19366
|
* exact one.
|
|
19361
19367
|
*/
|
|
19362
|
-
classes: array(string()).optional()
|
|
19368
|
+
classes: array(string()).optional(),
|
|
19369
|
+
/** See {@link ExcludeSourcesDoc}. */
|
|
19370
|
+
excludeSources: array(TrackSourceSchema).optional()
|
|
19363
19371
|
});
|
|
19364
19372
|
/**
|
|
19365
19373
|
* A Summary (D359): the per-camera session envelope that references tracks.
|
|
@@ -19787,7 +19795,9 @@ DeviceType.Camera, method(object({ deviceId: number() }), array(TrackSchema).rea
|
|
|
19787
19795
|
* selected is an operator who has not narrowed anything, and an empty
|
|
19788
19796
|
* timeline would read as a camera that saw nothing.
|
|
19789
19797
|
*/
|
|
19790
|
-
classes: array(string()).optional()
|
|
19798
|
+
classes: array(string()).optional(),
|
|
19799
|
+
/** See {@link ExcludeSourcesDoc}. */
|
|
19800
|
+
excludeSources: array(TrackSourceSchema).optional()
|
|
19791
19801
|
}), array(TrackSchema).readonly()), method(RecentTracksQueryInput, RecentTracksPageSchema), method(SummariesQueryInput, SummariesPageSchema), method(object({ id: string() }), SummaryDetailSchema.nullable()), method(object({ deviceId: number() }), _void(), {
|
|
19792
19802
|
kind: "mutation",
|
|
19793
19803
|
auth: "admin"
|
|
@@ -20292,8 +20302,25 @@ var occupancyRecheckFramesField = {
|
|
|
20292
20302
|
* (analyzer attaches detected `regions[]`; onboard does not — the
|
|
20293
20303
|
* camera typically only reports a binary signal plus an optional
|
|
20294
20304
|
* channel/AI class which lives in dedicated event channels).
|
|
20295
|
-
|
|
20296
|
-
|
|
20305
|
+
*
|
|
20306
|
+
* - `onboard` — the camera's firmware said something moved.
|
|
20307
|
+
* - `analyzer` — this runner's frame-diff said so, and attaches `regions[]`.
|
|
20308
|
+
* - `device-activity` — the DEVICE said it is doing its job: the
|
|
20309
|
+
* `recording-signal` LEVEL the same device raises for the recorder
|
|
20310
|
+
* ([D380](../../../../docs/decisions/adr-0380-a-device-decided-recording-is-a-mode-with-no-schedule-seeded-once.md)),
|
|
20311
|
+
* republished as a motion source. It attaches **nothing** — no regions, no
|
|
20312
|
+
* class: the only fact it carries is that the device is active, and a robot
|
|
20313
|
+
* vacuum that is itself the moving object has no region worth sending. It is
|
|
20314
|
+
* a LEVEL, so unlike `onboard` it has a real falling edge, and unlike
|
|
20315
|
+
* `analyzer` it must not open the frame-diff side-channel — the runner's
|
|
20316
|
+
* `handleOnboardMotionAnalyzer` gate is `source === 'onboard'` and stays that
|
|
20317
|
+
* way ([D392](../../../../docs/decisions/adr-0392-a-device-that-says-it-is-working-is-a-motion-source-of-its-own.md)).
|
|
20318
|
+
*/
|
|
20319
|
+
var MotionSourceEnum = _enum([
|
|
20320
|
+
"onboard",
|
|
20321
|
+
"analyzer",
|
|
20322
|
+
"device-activity"
|
|
20323
|
+
]);
|
|
20297
20324
|
/**
|
|
20298
20325
|
* List of motion sources active on a camera. Empty array is valid:
|
|
20299
20326
|
* "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-notifiers",
|
|
3
|
-
"version": "1.2.
|
|
3
|
+
"version": "1.2.86",
|
|
4
4
|
"description": "System notifiers addon for CamStack — a `notification-output` collection provider hosting per-kind notifier adapters (ntfy, pushover, gotify, telegram, discord, webhook, zentik).",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"camstack",
|