@camstack/addon-terminal 0.1.56 → 0.1.57
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 +115 -6
- package/dist/addon.mjs +115 -6
- package/package.json +1 -1
package/dist/addon.js
CHANGED
|
@@ -19235,6 +19235,34 @@ var KeyEventsForDeviceSchema = object({
|
|
|
19235
19235
|
deviceId: number(),
|
|
19236
19236
|
events: array(KeyEventSchema).readonly()
|
|
19237
19237
|
});
|
|
19238
|
+
/** One non-empty bucket of the timeline histogram. */
|
|
19239
|
+
var EventDensityBucketSchema = object({
|
|
19240
|
+
bucketStart: number(),
|
|
19241
|
+
motion: number().int(),
|
|
19242
|
+
object: number().int(),
|
|
19243
|
+
audio: number().int()
|
|
19244
|
+
});
|
|
19245
|
+
/**
|
|
19246
|
+
* One camera's row in a `getEventDensityBatch` answer.
|
|
19247
|
+
*
|
|
19248
|
+
* TWO facts, and the timeline draws them differently:
|
|
19249
|
+
*
|
|
19250
|
+
* - `read: 'read'` — the histogram for this camera. `buckets: []` is a real
|
|
19251
|
+
* claim: read, and nothing happened in the window.
|
|
19252
|
+
* - `read: 'unreadable'` — nobody could answer for this camera. `buckets` is
|
|
19253
|
+
* empty and that emptiness means NOTHING; the timeline must render unknown,
|
|
19254
|
+
* not quiet.
|
|
19255
|
+
*
|
|
19256
|
+
* Fanned out per camera the difference was free — one query rejected while the
|
|
19257
|
+
* others resolved — and collapsing to a batch is the exact moment it is lost
|
|
19258
|
+
* silently. Every requested id gets a row: a caller that asked for twelve and
|
|
19259
|
+
* got eleven cannot tell which one is missing, or that any is.
|
|
19260
|
+
*/
|
|
19261
|
+
var EventDensityForDeviceSchema = object({
|
|
19262
|
+
deviceId: number(),
|
|
19263
|
+
read: _enum(["read", "unreadable"]),
|
|
19264
|
+
buckets: array(EventDensityBucketSchema).readonly()
|
|
19265
|
+
});
|
|
19238
19266
|
object({
|
|
19239
19267
|
trackId: string(),
|
|
19240
19268
|
className: string(),
|
|
@@ -19545,12 +19573,12 @@ DeviceType.Camera, method(object({ deviceId: number() }), array(TrackSchema).rea
|
|
|
19545
19573
|
since: number(),
|
|
19546
19574
|
until: number(),
|
|
19547
19575
|
bucketMs: number().int().positive()
|
|
19548
|
-
}), array(object({
|
|
19549
|
-
|
|
19550
|
-
|
|
19551
|
-
|
|
19552
|
-
|
|
19553
|
-
})).readonly()), method(object({
|
|
19576
|
+
}), array(EventDensityBucketSchema).readonly()), method(object({
|
|
19577
|
+
deviceIds: array(number()).min(1).max(200),
|
|
19578
|
+
since: number(),
|
|
19579
|
+
until: number(),
|
|
19580
|
+
bucketMs: number().int().positive()
|
|
19581
|
+
}), array(EventDensityForDeviceSchema).readonly()), method(object({
|
|
19554
19582
|
deviceId: number(),
|
|
19555
19583
|
cutoffMs: number()
|
|
19556
19584
|
}), object({
|
|
@@ -28723,6 +28751,39 @@ var RecordingDaysSchema = object({
|
|
|
28723
28751
|
/** Local-midnight epochs (UTC ms) of days that have ≥1 recorded segment. */
|
|
28724
28752
|
days: array(number())
|
|
28725
28753
|
});
|
|
28754
|
+
/**
|
|
28755
|
+
* One camera's row in a `getAvailabilityBatch` answer.
|
|
28756
|
+
*
|
|
28757
|
+
* `ranges` is EXACTLY what `getAvailability` returns for that camera — the
|
|
28758
|
+
* batch collapses the transport, not the work — plus the one thing the singular
|
|
28759
|
+
* method never had to say:
|
|
28760
|
+
*
|
|
28761
|
+
* - `read: 'read'` — answered. `ranges: []` means "read, and this camera has
|
|
28762
|
+
* no footage in the window", which is a real claim.
|
|
28763
|
+
* - `read: 'unreadable'` — the recorder could not answer for this camera (its
|
|
28764
|
+
* calendar rung threw, its location is unmounted). `ranges` is empty and
|
|
28765
|
+
* that emptiness means NOTHING.
|
|
28766
|
+
*
|
|
28767
|
+
* A timeline that renders the second as the first tells an operator there is no
|
|
28768
|
+
* footage when the truth is that nobody looked.
|
|
28769
|
+
*/
|
|
28770
|
+
var RecordingAvailabilityForDeviceSchema = object({
|
|
28771
|
+
deviceId: number(),
|
|
28772
|
+
read: _enum(["read", "unreadable"]),
|
|
28773
|
+
ranges: array(RecordingRangeSchema).readonly()
|
|
28774
|
+
});
|
|
28775
|
+
/**
|
|
28776
|
+
* One camera's row in a `getDaysWithRecordingsBatch` answer. Same rule as
|
|
28777
|
+
* {@link RecordingAvailabilityForDeviceSchema}: `days: []` on a `'read'` row is
|
|
28778
|
+
* "no footage in this month", `read: 'unreadable'` is "nobody could look", and
|
|
28779
|
+
* the date-picker's day dots must not spell them the same.
|
|
28780
|
+
*/
|
|
28781
|
+
var RecordingDaysForDeviceSchema = object({
|
|
28782
|
+
deviceId: number(),
|
|
28783
|
+
read: _enum(["read", "unreadable"]),
|
|
28784
|
+
/** Local-midnight epochs (UTC ms) of days that have ≥1 recorded segment. */
|
|
28785
|
+
days: array(number()).readonly()
|
|
28786
|
+
});
|
|
28726
28787
|
var RecordingManifestSchema = object({
|
|
28727
28788
|
deviceId: number(),
|
|
28728
28789
|
/** Local filesystem path to the master playlist; null when no recording exists for the requested range. */
|
|
@@ -28957,6 +29018,13 @@ method(object({
|
|
|
28957
29018
|
}), RecordingAvailabilitySchema, {
|
|
28958
29019
|
kind: "query",
|
|
28959
29020
|
auth: "protected"
|
|
29021
|
+
}), method(object({
|
|
29022
|
+
deviceIds: array(number()).min(1).max(200),
|
|
29023
|
+
fromMs: number(),
|
|
29024
|
+
toMs: number()
|
|
29025
|
+
}), array(RecordingAvailabilityForDeviceSchema).readonly(), {
|
|
29026
|
+
kind: "query",
|
|
29027
|
+
auth: "protected"
|
|
28960
29028
|
}), method(object({
|
|
28961
29029
|
deviceId: number(),
|
|
28962
29030
|
fromMs: number(),
|
|
@@ -28965,6 +29033,14 @@ method(object({
|
|
|
28965
29033
|
}), RecordingDaysSchema, {
|
|
28966
29034
|
kind: "query",
|
|
28967
29035
|
auth: "protected"
|
|
29036
|
+
}), method(object({
|
|
29037
|
+
deviceIds: array(number()).min(1).max(200),
|
|
29038
|
+
fromMs: number(),
|
|
29039
|
+
toMs: number(),
|
|
29040
|
+
tzOffsetMinutes: number()
|
|
29041
|
+
}), array(RecordingDaysForDeviceSchema).readonly(), {
|
|
29042
|
+
kind: "query",
|
|
29043
|
+
auth: "protected"
|
|
28968
29044
|
}), method(object({
|
|
28969
29045
|
deviceId: number(),
|
|
28970
29046
|
fromMs: number(),
|
|
@@ -35859,6 +35935,12 @@ Object.freeze({
|
|
|
35859
35935
|
addonId: null,
|
|
35860
35936
|
access: "view"
|
|
35861
35937
|
},
|
|
35938
|
+
"pipelineAnalytics.getEventDensityBatch": {
|
|
35939
|
+
capName: "pipeline-analytics",
|
|
35940
|
+
capScope: "device",
|
|
35941
|
+
addonId: null,
|
|
35942
|
+
access: "view"
|
|
35943
|
+
},
|
|
35862
35944
|
"pipelineAnalytics.getEventMedia": {
|
|
35863
35945
|
capName: "pipeline-analytics",
|
|
35864
35946
|
capScope: "device",
|
|
@@ -36981,12 +37063,24 @@ Object.freeze({
|
|
|
36981
37063
|
addonId: null,
|
|
36982
37064
|
access: "view"
|
|
36983
37065
|
},
|
|
37066
|
+
"recording.getAvailabilityBatch": {
|
|
37067
|
+
capName: "recording",
|
|
37068
|
+
capScope: "system",
|
|
37069
|
+
addonId: null,
|
|
37070
|
+
access: "view"
|
|
37071
|
+
},
|
|
36984
37072
|
"recording.getDaysWithRecordings": {
|
|
36985
37073
|
capName: "recording",
|
|
36986
37074
|
capScope: "system",
|
|
36987
37075
|
addonId: null,
|
|
36988
37076
|
access: "view"
|
|
36989
37077
|
},
|
|
37078
|
+
"recording.getDaysWithRecordingsBatch": {
|
|
37079
|
+
capName: "recording",
|
|
37080
|
+
capScope: "system",
|
|
37081
|
+
addonId: null,
|
|
37082
|
+
access: "view"
|
|
37083
|
+
},
|
|
36990
37084
|
"recording.getDeviceConfig": {
|
|
36991
37085
|
capName: "recording",
|
|
36992
37086
|
capScope: "system",
|
|
@@ -39591,6 +39685,11 @@ Object.freeze({
|
|
|
39591
39685
|
form: "single",
|
|
39592
39686
|
optional: false
|
|
39593
39687
|
}],
|
|
39688
|
+
"pipelineAnalytics.getEventDensityBatch": [{
|
|
39689
|
+
name: "deviceIds",
|
|
39690
|
+
form: "array",
|
|
39691
|
+
optional: false
|
|
39692
|
+
}],
|
|
39594
39693
|
"pipelineAnalytics.getEventMedia": [{
|
|
39595
39694
|
name: "deviceId",
|
|
39596
39695
|
form: "single",
|
|
@@ -40006,11 +40105,21 @@ Object.freeze({
|
|
|
40006
40105
|
form: "single",
|
|
40007
40106
|
optional: false
|
|
40008
40107
|
}],
|
|
40108
|
+
"recording.getAvailabilityBatch": [{
|
|
40109
|
+
name: "deviceIds",
|
|
40110
|
+
form: "array",
|
|
40111
|
+
optional: false
|
|
40112
|
+
}],
|
|
40009
40113
|
"recording.getDaysWithRecordings": [{
|
|
40010
40114
|
name: "deviceId",
|
|
40011
40115
|
form: "single",
|
|
40012
40116
|
optional: false
|
|
40013
40117
|
}],
|
|
40118
|
+
"recording.getDaysWithRecordingsBatch": [{
|
|
40119
|
+
name: "deviceIds",
|
|
40120
|
+
form: "array",
|
|
40121
|
+
optional: false
|
|
40122
|
+
}],
|
|
40014
40123
|
"recording.getDeviceConfig": [{
|
|
40015
40124
|
name: "deviceId",
|
|
40016
40125
|
form: "single",
|
package/dist/addon.mjs
CHANGED
|
@@ -19212,6 +19212,34 @@ var KeyEventsForDeviceSchema = object({
|
|
|
19212
19212
|
deviceId: number(),
|
|
19213
19213
|
events: array(KeyEventSchema).readonly()
|
|
19214
19214
|
});
|
|
19215
|
+
/** One non-empty bucket of the timeline histogram. */
|
|
19216
|
+
var EventDensityBucketSchema = object({
|
|
19217
|
+
bucketStart: number(),
|
|
19218
|
+
motion: number().int(),
|
|
19219
|
+
object: number().int(),
|
|
19220
|
+
audio: number().int()
|
|
19221
|
+
});
|
|
19222
|
+
/**
|
|
19223
|
+
* One camera's row in a `getEventDensityBatch` answer.
|
|
19224
|
+
*
|
|
19225
|
+
* TWO facts, and the timeline draws them differently:
|
|
19226
|
+
*
|
|
19227
|
+
* - `read: 'read'` — the histogram for this camera. `buckets: []` is a real
|
|
19228
|
+
* claim: read, and nothing happened in the window.
|
|
19229
|
+
* - `read: 'unreadable'` — nobody could answer for this camera. `buckets` is
|
|
19230
|
+
* empty and that emptiness means NOTHING; the timeline must render unknown,
|
|
19231
|
+
* not quiet.
|
|
19232
|
+
*
|
|
19233
|
+
* Fanned out per camera the difference was free — one query rejected while the
|
|
19234
|
+
* others resolved — and collapsing to a batch is the exact moment it is lost
|
|
19235
|
+
* silently. Every requested id gets a row: a caller that asked for twelve and
|
|
19236
|
+
* got eleven cannot tell which one is missing, or that any is.
|
|
19237
|
+
*/
|
|
19238
|
+
var EventDensityForDeviceSchema = object({
|
|
19239
|
+
deviceId: number(),
|
|
19240
|
+
read: _enum(["read", "unreadable"]),
|
|
19241
|
+
buckets: array(EventDensityBucketSchema).readonly()
|
|
19242
|
+
});
|
|
19215
19243
|
object({
|
|
19216
19244
|
trackId: string(),
|
|
19217
19245
|
className: string(),
|
|
@@ -19522,12 +19550,12 @@ DeviceType.Camera, method(object({ deviceId: number() }), array(TrackSchema).rea
|
|
|
19522
19550
|
since: number(),
|
|
19523
19551
|
until: number(),
|
|
19524
19552
|
bucketMs: number().int().positive()
|
|
19525
|
-
}), array(object({
|
|
19526
|
-
|
|
19527
|
-
|
|
19528
|
-
|
|
19529
|
-
|
|
19530
|
-
})).readonly()), method(object({
|
|
19553
|
+
}), array(EventDensityBucketSchema).readonly()), method(object({
|
|
19554
|
+
deviceIds: array(number()).min(1).max(200),
|
|
19555
|
+
since: number(),
|
|
19556
|
+
until: number(),
|
|
19557
|
+
bucketMs: number().int().positive()
|
|
19558
|
+
}), array(EventDensityForDeviceSchema).readonly()), method(object({
|
|
19531
19559
|
deviceId: number(),
|
|
19532
19560
|
cutoffMs: number()
|
|
19533
19561
|
}), object({
|
|
@@ -28700,6 +28728,39 @@ var RecordingDaysSchema = object({
|
|
|
28700
28728
|
/** Local-midnight epochs (UTC ms) of days that have ≥1 recorded segment. */
|
|
28701
28729
|
days: array(number())
|
|
28702
28730
|
});
|
|
28731
|
+
/**
|
|
28732
|
+
* One camera's row in a `getAvailabilityBatch` answer.
|
|
28733
|
+
*
|
|
28734
|
+
* `ranges` is EXACTLY what `getAvailability` returns for that camera — the
|
|
28735
|
+
* batch collapses the transport, not the work — plus the one thing the singular
|
|
28736
|
+
* method never had to say:
|
|
28737
|
+
*
|
|
28738
|
+
* - `read: 'read'` — answered. `ranges: []` means "read, and this camera has
|
|
28739
|
+
* no footage in the window", which is a real claim.
|
|
28740
|
+
* - `read: 'unreadable'` — the recorder could not answer for this camera (its
|
|
28741
|
+
* calendar rung threw, its location is unmounted). `ranges` is empty and
|
|
28742
|
+
* that emptiness means NOTHING.
|
|
28743
|
+
*
|
|
28744
|
+
* A timeline that renders the second as the first tells an operator there is no
|
|
28745
|
+
* footage when the truth is that nobody looked.
|
|
28746
|
+
*/
|
|
28747
|
+
var RecordingAvailabilityForDeviceSchema = object({
|
|
28748
|
+
deviceId: number(),
|
|
28749
|
+
read: _enum(["read", "unreadable"]),
|
|
28750
|
+
ranges: array(RecordingRangeSchema).readonly()
|
|
28751
|
+
});
|
|
28752
|
+
/**
|
|
28753
|
+
* One camera's row in a `getDaysWithRecordingsBatch` answer. Same rule as
|
|
28754
|
+
* {@link RecordingAvailabilityForDeviceSchema}: `days: []` on a `'read'` row is
|
|
28755
|
+
* "no footage in this month", `read: 'unreadable'` is "nobody could look", and
|
|
28756
|
+
* the date-picker's day dots must not spell them the same.
|
|
28757
|
+
*/
|
|
28758
|
+
var RecordingDaysForDeviceSchema = object({
|
|
28759
|
+
deviceId: number(),
|
|
28760
|
+
read: _enum(["read", "unreadable"]),
|
|
28761
|
+
/** Local-midnight epochs (UTC ms) of days that have ≥1 recorded segment. */
|
|
28762
|
+
days: array(number()).readonly()
|
|
28763
|
+
});
|
|
28703
28764
|
var RecordingManifestSchema = object({
|
|
28704
28765
|
deviceId: number(),
|
|
28705
28766
|
/** Local filesystem path to the master playlist; null when no recording exists for the requested range. */
|
|
@@ -28934,6 +28995,13 @@ method(object({
|
|
|
28934
28995
|
}), RecordingAvailabilitySchema, {
|
|
28935
28996
|
kind: "query",
|
|
28936
28997
|
auth: "protected"
|
|
28998
|
+
}), method(object({
|
|
28999
|
+
deviceIds: array(number()).min(1).max(200),
|
|
29000
|
+
fromMs: number(),
|
|
29001
|
+
toMs: number()
|
|
29002
|
+
}), array(RecordingAvailabilityForDeviceSchema).readonly(), {
|
|
29003
|
+
kind: "query",
|
|
29004
|
+
auth: "protected"
|
|
28937
29005
|
}), method(object({
|
|
28938
29006
|
deviceId: number(),
|
|
28939
29007
|
fromMs: number(),
|
|
@@ -28942,6 +29010,14 @@ method(object({
|
|
|
28942
29010
|
}), RecordingDaysSchema, {
|
|
28943
29011
|
kind: "query",
|
|
28944
29012
|
auth: "protected"
|
|
29013
|
+
}), method(object({
|
|
29014
|
+
deviceIds: array(number()).min(1).max(200),
|
|
29015
|
+
fromMs: number(),
|
|
29016
|
+
toMs: number(),
|
|
29017
|
+
tzOffsetMinutes: number()
|
|
29018
|
+
}), array(RecordingDaysForDeviceSchema).readonly(), {
|
|
29019
|
+
kind: "query",
|
|
29020
|
+
auth: "protected"
|
|
28945
29021
|
}), method(object({
|
|
28946
29022
|
deviceId: number(),
|
|
28947
29023
|
fromMs: number(),
|
|
@@ -35836,6 +35912,12 @@ Object.freeze({
|
|
|
35836
35912
|
addonId: null,
|
|
35837
35913
|
access: "view"
|
|
35838
35914
|
},
|
|
35915
|
+
"pipelineAnalytics.getEventDensityBatch": {
|
|
35916
|
+
capName: "pipeline-analytics",
|
|
35917
|
+
capScope: "device",
|
|
35918
|
+
addonId: null,
|
|
35919
|
+
access: "view"
|
|
35920
|
+
},
|
|
35839
35921
|
"pipelineAnalytics.getEventMedia": {
|
|
35840
35922
|
capName: "pipeline-analytics",
|
|
35841
35923
|
capScope: "device",
|
|
@@ -36958,12 +37040,24 @@ Object.freeze({
|
|
|
36958
37040
|
addonId: null,
|
|
36959
37041
|
access: "view"
|
|
36960
37042
|
},
|
|
37043
|
+
"recording.getAvailabilityBatch": {
|
|
37044
|
+
capName: "recording",
|
|
37045
|
+
capScope: "system",
|
|
37046
|
+
addonId: null,
|
|
37047
|
+
access: "view"
|
|
37048
|
+
},
|
|
36961
37049
|
"recording.getDaysWithRecordings": {
|
|
36962
37050
|
capName: "recording",
|
|
36963
37051
|
capScope: "system",
|
|
36964
37052
|
addonId: null,
|
|
36965
37053
|
access: "view"
|
|
36966
37054
|
},
|
|
37055
|
+
"recording.getDaysWithRecordingsBatch": {
|
|
37056
|
+
capName: "recording",
|
|
37057
|
+
capScope: "system",
|
|
37058
|
+
addonId: null,
|
|
37059
|
+
access: "view"
|
|
37060
|
+
},
|
|
36967
37061
|
"recording.getDeviceConfig": {
|
|
36968
37062
|
capName: "recording",
|
|
36969
37063
|
capScope: "system",
|
|
@@ -39568,6 +39662,11 @@ Object.freeze({
|
|
|
39568
39662
|
form: "single",
|
|
39569
39663
|
optional: false
|
|
39570
39664
|
}],
|
|
39665
|
+
"pipelineAnalytics.getEventDensityBatch": [{
|
|
39666
|
+
name: "deviceIds",
|
|
39667
|
+
form: "array",
|
|
39668
|
+
optional: false
|
|
39669
|
+
}],
|
|
39571
39670
|
"pipelineAnalytics.getEventMedia": [{
|
|
39572
39671
|
name: "deviceId",
|
|
39573
39672
|
form: "single",
|
|
@@ -39983,11 +40082,21 @@ Object.freeze({
|
|
|
39983
40082
|
form: "single",
|
|
39984
40083
|
optional: false
|
|
39985
40084
|
}],
|
|
40085
|
+
"recording.getAvailabilityBatch": [{
|
|
40086
|
+
name: "deviceIds",
|
|
40087
|
+
form: "array",
|
|
40088
|
+
optional: false
|
|
40089
|
+
}],
|
|
39986
40090
|
"recording.getDaysWithRecordings": [{
|
|
39987
40091
|
name: "deviceId",
|
|
39988
40092
|
form: "single",
|
|
39989
40093
|
optional: false
|
|
39990
40094
|
}],
|
|
40095
|
+
"recording.getDaysWithRecordingsBatch": [{
|
|
40096
|
+
name: "deviceIds",
|
|
40097
|
+
form: "array",
|
|
40098
|
+
optional: false
|
|
40099
|
+
}],
|
|
39991
40100
|
"recording.getDeviceConfig": [{
|
|
39992
40101
|
name: "deviceId",
|
|
39993
40102
|
form: "single",
|