@camstack/addon-agent-ui 1.2.53 → 1.2.54
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 +116 -7
- package/package.json +1 -1
package/dist/addon.js
CHANGED
|
@@ -18852,6 +18852,34 @@ var KeyEventsForDeviceSchema = object({
|
|
|
18852
18852
|
deviceId: number(),
|
|
18853
18853
|
events: array(KeyEventSchema).readonly()
|
|
18854
18854
|
});
|
|
18855
|
+
/** One non-empty bucket of the timeline histogram. */
|
|
18856
|
+
var EventDensityBucketSchema = object({
|
|
18857
|
+
bucketStart: number(),
|
|
18858
|
+
motion: number().int(),
|
|
18859
|
+
object: number().int(),
|
|
18860
|
+
audio: number().int()
|
|
18861
|
+
});
|
|
18862
|
+
/**
|
|
18863
|
+
* One camera's row in a `getEventDensityBatch` answer.
|
|
18864
|
+
*
|
|
18865
|
+
* TWO facts, and the timeline draws them differently:
|
|
18866
|
+
*
|
|
18867
|
+
* - `read: 'read'` — the histogram for this camera. `buckets: []` is a real
|
|
18868
|
+
* claim: read, and nothing happened in the window.
|
|
18869
|
+
* - `read: 'unreadable'` — nobody could answer for this camera. `buckets` is
|
|
18870
|
+
* empty and that emptiness means NOTHING; the timeline must render unknown,
|
|
18871
|
+
* not quiet.
|
|
18872
|
+
*
|
|
18873
|
+
* Fanned out per camera the difference was free — one query rejected while the
|
|
18874
|
+
* others resolved — and collapsing to a batch is the exact moment it is lost
|
|
18875
|
+
* silently. Every requested id gets a row: a caller that asked for twelve and
|
|
18876
|
+
* got eleven cannot tell which one is missing, or that any is.
|
|
18877
|
+
*/
|
|
18878
|
+
var EventDensityForDeviceSchema = object({
|
|
18879
|
+
deviceId: number(),
|
|
18880
|
+
read: _enum(["read", "unreadable"]),
|
|
18881
|
+
buckets: array(EventDensityBucketSchema).readonly()
|
|
18882
|
+
});
|
|
18855
18883
|
object({
|
|
18856
18884
|
trackId: string(),
|
|
18857
18885
|
className: string(),
|
|
@@ -19162,12 +19190,12 @@ DeviceType.Camera, method(object({ deviceId: number() }), array(TrackSchema).rea
|
|
|
19162
19190
|
since: number(),
|
|
19163
19191
|
until: number(),
|
|
19164
19192
|
bucketMs: number().int().positive()
|
|
19165
|
-
}), array(object({
|
|
19166
|
-
|
|
19167
|
-
|
|
19168
|
-
|
|
19169
|
-
|
|
19170
|
-
})).readonly()), method(object({
|
|
19193
|
+
}), array(EventDensityBucketSchema).readonly()), method(object({
|
|
19194
|
+
deviceIds: array(number()).min(1).max(200),
|
|
19195
|
+
since: number(),
|
|
19196
|
+
until: number(),
|
|
19197
|
+
bucketMs: number().int().positive()
|
|
19198
|
+
}), array(EventDensityForDeviceSchema).readonly()), method(object({
|
|
19171
19199
|
deviceId: number(),
|
|
19172
19200
|
cutoffMs: number()
|
|
19173
19201
|
}), object({
|
|
@@ -26477,6 +26505,39 @@ var RecordingDaysSchema = object({
|
|
|
26477
26505
|
/** Local-midnight epochs (UTC ms) of days that have ≥1 recorded segment. */
|
|
26478
26506
|
days: array(number())
|
|
26479
26507
|
});
|
|
26508
|
+
/**
|
|
26509
|
+
* One camera's row in a `getAvailabilityBatch` answer.
|
|
26510
|
+
*
|
|
26511
|
+
* `ranges` is EXACTLY what `getAvailability` returns for that camera — the
|
|
26512
|
+
* batch collapses the transport, not the work — plus the one thing the singular
|
|
26513
|
+
* method never had to say:
|
|
26514
|
+
*
|
|
26515
|
+
* - `read: 'read'` — answered. `ranges: []` means "read, and this camera has
|
|
26516
|
+
* no footage in the window", which is a real claim.
|
|
26517
|
+
* - `read: 'unreadable'` — the recorder could not answer for this camera (its
|
|
26518
|
+
* calendar rung threw, its location is unmounted). `ranges` is empty and
|
|
26519
|
+
* that emptiness means NOTHING.
|
|
26520
|
+
*
|
|
26521
|
+
* A timeline that renders the second as the first tells an operator there is no
|
|
26522
|
+
* footage when the truth is that nobody looked.
|
|
26523
|
+
*/
|
|
26524
|
+
var RecordingAvailabilityForDeviceSchema = object({
|
|
26525
|
+
deviceId: number(),
|
|
26526
|
+
read: _enum(["read", "unreadable"]),
|
|
26527
|
+
ranges: array(RecordingRangeSchema).readonly()
|
|
26528
|
+
});
|
|
26529
|
+
/**
|
|
26530
|
+
* One camera's row in a `getDaysWithRecordingsBatch` answer. Same rule as
|
|
26531
|
+
* {@link RecordingAvailabilityForDeviceSchema}: `days: []` on a `'read'` row is
|
|
26532
|
+
* "no footage in this month", `read: 'unreadable'` is "nobody could look", and
|
|
26533
|
+
* the date-picker's day dots must not spell them the same.
|
|
26534
|
+
*/
|
|
26535
|
+
var RecordingDaysForDeviceSchema = object({
|
|
26536
|
+
deviceId: number(),
|
|
26537
|
+
read: _enum(["read", "unreadable"]),
|
|
26538
|
+
/** Local-midnight epochs (UTC ms) of days that have ≥1 recorded segment. */
|
|
26539
|
+
days: array(number()).readonly()
|
|
26540
|
+
});
|
|
26480
26541
|
var RecordingManifestSchema = object({
|
|
26481
26542
|
deviceId: number(),
|
|
26482
26543
|
/** Local filesystem path to the master playlist; null when no recording exists for the requested range. */
|
|
@@ -26711,6 +26772,13 @@ method(object({
|
|
|
26711
26772
|
}), RecordingAvailabilitySchema, {
|
|
26712
26773
|
kind: "query",
|
|
26713
26774
|
auth: "protected"
|
|
26775
|
+
}), method(object({
|
|
26776
|
+
deviceIds: array(number()).min(1).max(200),
|
|
26777
|
+
fromMs: number(),
|
|
26778
|
+
toMs: number()
|
|
26779
|
+
}), array(RecordingAvailabilityForDeviceSchema).readonly(), {
|
|
26780
|
+
kind: "query",
|
|
26781
|
+
auth: "protected"
|
|
26714
26782
|
}), method(object({
|
|
26715
26783
|
deviceId: number(),
|
|
26716
26784
|
fromMs: number(),
|
|
@@ -26719,6 +26787,14 @@ method(object({
|
|
|
26719
26787
|
}), RecordingDaysSchema, {
|
|
26720
26788
|
kind: "query",
|
|
26721
26789
|
auth: "protected"
|
|
26790
|
+
}), method(object({
|
|
26791
|
+
deviceIds: array(number()).min(1).max(200),
|
|
26792
|
+
fromMs: number(),
|
|
26793
|
+
toMs: number(),
|
|
26794
|
+
tzOffsetMinutes: number()
|
|
26795
|
+
}), array(RecordingDaysForDeviceSchema).readonly(), {
|
|
26796
|
+
kind: "query",
|
|
26797
|
+
auth: "protected"
|
|
26722
26798
|
}), method(object({
|
|
26723
26799
|
deviceId: number(),
|
|
26724
26800
|
fromMs: number(),
|
|
@@ -31916,6 +31992,12 @@ Object.freeze({
|
|
|
31916
31992
|
addonId: null,
|
|
31917
31993
|
access: "view"
|
|
31918
31994
|
},
|
|
31995
|
+
"pipelineAnalytics.getEventDensityBatch": {
|
|
31996
|
+
capName: "pipeline-analytics",
|
|
31997
|
+
capScope: "device",
|
|
31998
|
+
addonId: null,
|
|
31999
|
+
access: "view"
|
|
32000
|
+
},
|
|
31919
32001
|
"pipelineAnalytics.getEventMedia": {
|
|
31920
32002
|
capName: "pipeline-analytics",
|
|
31921
32003
|
capScope: "device",
|
|
@@ -33038,12 +33120,24 @@ Object.freeze({
|
|
|
33038
33120
|
addonId: null,
|
|
33039
33121
|
access: "view"
|
|
33040
33122
|
},
|
|
33123
|
+
"recording.getAvailabilityBatch": {
|
|
33124
|
+
capName: "recording",
|
|
33125
|
+
capScope: "system",
|
|
33126
|
+
addonId: null,
|
|
33127
|
+
access: "view"
|
|
33128
|
+
},
|
|
33041
33129
|
"recording.getDaysWithRecordings": {
|
|
33042
33130
|
capName: "recording",
|
|
33043
33131
|
capScope: "system",
|
|
33044
33132
|
addonId: null,
|
|
33045
33133
|
access: "view"
|
|
33046
33134
|
},
|
|
33135
|
+
"recording.getDaysWithRecordingsBatch": {
|
|
33136
|
+
capName: "recording",
|
|
33137
|
+
capScope: "system",
|
|
33138
|
+
addonId: null,
|
|
33139
|
+
access: "view"
|
|
33140
|
+
},
|
|
33047
33141
|
"recording.getDeviceConfig": {
|
|
33048
33142
|
capName: "recording",
|
|
33049
33143
|
capScope: "system",
|
|
@@ -35648,6 +35742,11 @@ Object.freeze({
|
|
|
35648
35742
|
form: "single",
|
|
35649
35743
|
optional: false
|
|
35650
35744
|
}],
|
|
35745
|
+
"pipelineAnalytics.getEventDensityBatch": [{
|
|
35746
|
+
name: "deviceIds",
|
|
35747
|
+
form: "array",
|
|
35748
|
+
optional: false
|
|
35749
|
+
}],
|
|
35651
35750
|
"pipelineAnalytics.getEventMedia": [{
|
|
35652
35751
|
name: "deviceId",
|
|
35653
35752
|
form: "single",
|
|
@@ -36063,11 +36162,21 @@ Object.freeze({
|
|
|
36063
36162
|
form: "single",
|
|
36064
36163
|
optional: false
|
|
36065
36164
|
}],
|
|
36165
|
+
"recording.getAvailabilityBatch": [{
|
|
36166
|
+
name: "deviceIds",
|
|
36167
|
+
form: "array",
|
|
36168
|
+
optional: false
|
|
36169
|
+
}],
|
|
36066
36170
|
"recording.getDaysWithRecordings": [{
|
|
36067
36171
|
name: "deviceId",
|
|
36068
36172
|
form: "single",
|
|
36069
36173
|
optional: false
|
|
36070
36174
|
}],
|
|
36175
|
+
"recording.getDaysWithRecordingsBatch": [{
|
|
36176
|
+
name: "deviceIds",
|
|
36177
|
+
form: "array",
|
|
36178
|
+
optional: false
|
|
36179
|
+
}],
|
|
36071
36180
|
"recording.getDeviceConfig": [{
|
|
36072
36181
|
name: "deviceId",
|
|
36073
36182
|
form: "single",
|
|
@@ -37007,7 +37116,7 @@ var AgentUIAddon = class extends BaseAddon {
|
|
|
37007
37116
|
capability: adminUiCapability,
|
|
37008
37117
|
provider: {
|
|
37009
37118
|
getStaticDir: async () => ({ staticDir: path.resolve(__dirname) }),
|
|
37010
|
-
getVersion: async () => ({ version: "1.2.
|
|
37119
|
+
getVersion: async () => ({ version: "1.2.54" })
|
|
37011
37120
|
}
|
|
37012
37121
|
}];
|
|
37013
37122
|
}
|