@camstack/addon-notifiers 1.2.85 → 1.2.87
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 +38 -9
- package/dist/addon.mjs +38 -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"
|
|
@@ -27275,8 +27285,27 @@ var PrivacyMaskRegionSchema = object({
|
|
|
27275
27285
|
});
|
|
27276
27286
|
object({
|
|
27277
27287
|
enabled: boolean(),
|
|
27278
|
-
/**
|
|
27279
|
-
|
|
27288
|
+
/**
|
|
27289
|
+
* Active zones (normalized 0..1). Length ≤ maxRegions.
|
|
27290
|
+
*
|
|
27291
|
+
* `null` means "no answer" — the provider has never reached this camera
|
|
27292
|
+
* (a cold `runtimeState` slice, a battery camera asleep) or the read
|
|
27293
|
+
* failed. A consumer must render it as UNKNOWN and never as "this camera
|
|
27294
|
+
* has no zones": those two look identical to an operator right up to the
|
|
27295
|
+
* moment one of them is acted on, and acting on them differs completely.
|
|
27296
|
+
* The switch group turned an unanswered read into *"nothing is set up for
|
|
27297
|
+
* it to act on"* — an instruction to go and draw a zone that already
|
|
27298
|
+
* exists — and this editor seeded an EMPTY canvas from it, one Save away
|
|
27299
|
+
* from deleting the mask it could not read.
|
|
27300
|
+
*
|
|
27301
|
+
* Empty-and-answered is `[]` and stays a real answer: this camera genuinely
|
|
27302
|
+
* has no zones. The distinction is the same one {@link
|
|
27303
|
+
* PrivacyMaskStatusSchema.shape.audioEnabled} already draws for the
|
|
27304
|
+
* microphone, on the very same payload — both planes come from ONE refresh,
|
|
27305
|
+
* so it was never coherent for one of them to be able to say "unknown"
|
|
27306
|
+
* while the other could not.
|
|
27307
|
+
*/
|
|
27308
|
+
regions: array(PrivacyMaskRegionSchema).nullable(),
|
|
27280
27309
|
/**
|
|
27281
27310
|
* Is the camera capturing sound right now? Read from the camera, never from
|
|
27282
27311
|
* a server-side mirror.
|
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"
|
|
@@ -27248,8 +27258,27 @@ var PrivacyMaskRegionSchema = object({
|
|
|
27248
27258
|
});
|
|
27249
27259
|
object({
|
|
27250
27260
|
enabled: boolean(),
|
|
27251
|
-
/**
|
|
27252
|
-
|
|
27261
|
+
/**
|
|
27262
|
+
* Active zones (normalized 0..1). Length ≤ maxRegions.
|
|
27263
|
+
*
|
|
27264
|
+
* `null` means "no answer" — the provider has never reached this camera
|
|
27265
|
+
* (a cold `runtimeState` slice, a battery camera asleep) or the read
|
|
27266
|
+
* failed. A consumer must render it as UNKNOWN and never as "this camera
|
|
27267
|
+
* has no zones": those two look identical to an operator right up to the
|
|
27268
|
+
* moment one of them is acted on, and acting on them differs completely.
|
|
27269
|
+
* The switch group turned an unanswered read into *"nothing is set up for
|
|
27270
|
+
* it to act on"* — an instruction to go and draw a zone that already
|
|
27271
|
+
* exists — and this editor seeded an EMPTY canvas from it, one Save away
|
|
27272
|
+
* from deleting the mask it could not read.
|
|
27273
|
+
*
|
|
27274
|
+
* Empty-and-answered is `[]` and stays a real answer: this camera genuinely
|
|
27275
|
+
* has no zones. The distinction is the same one {@link
|
|
27276
|
+
* PrivacyMaskStatusSchema.shape.audioEnabled} already draws for the
|
|
27277
|
+
* microphone, on the very same payload — both planes come from ONE refresh,
|
|
27278
|
+
* so it was never coherent for one of them to be able to say "unknown"
|
|
27279
|
+
* while the other could not.
|
|
27280
|
+
*/
|
|
27281
|
+
regions: array(PrivacyMaskRegionSchema).nullable(),
|
|
27253
27282
|
/**
|
|
27254
27283
|
* Is the camera capturing sound right now? Read from the camera, never from
|
|
27255
27284
|
* a server-side mirror.
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@camstack/addon-notifiers",
|
|
3
|
-
"version": "1.2.
|
|
3
|
+
"version": "1.2.87",
|
|
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",
|