@camstack/addon-terminal 0.1.55 → 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 +117 -6
- package/dist/addon.mjs +117 -6
- package/package.json +1 -1
package/dist/addon.js
CHANGED
|
@@ -15919,6 +15919,8 @@ var NcSystemEventKindSchema = _enum([
|
|
|
15919
15919
|
"device-offline",
|
|
15920
15920
|
"device-disabled",
|
|
15921
15921
|
"device-enabled",
|
|
15922
|
+
"device-battery-low",
|
|
15923
|
+
"device-battery-normal",
|
|
15922
15924
|
"stream-online",
|
|
15923
15925
|
"stream-offline",
|
|
15924
15926
|
"node-online",
|
|
@@ -19233,6 +19235,34 @@ var KeyEventsForDeviceSchema = object({
|
|
|
19233
19235
|
deviceId: number(),
|
|
19234
19236
|
events: array(KeyEventSchema).readonly()
|
|
19235
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
|
+
});
|
|
19236
19266
|
object({
|
|
19237
19267
|
trackId: string(),
|
|
19238
19268
|
className: string(),
|
|
@@ -19543,12 +19573,12 @@ DeviceType.Camera, method(object({ deviceId: number() }), array(TrackSchema).rea
|
|
|
19543
19573
|
since: number(),
|
|
19544
19574
|
until: number(),
|
|
19545
19575
|
bucketMs: number().int().positive()
|
|
19546
|
-
}), array(object({
|
|
19547
|
-
|
|
19548
|
-
|
|
19549
|
-
|
|
19550
|
-
|
|
19551
|
-
})).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({
|
|
19552
19582
|
deviceId: number(),
|
|
19553
19583
|
cutoffMs: number()
|
|
19554
19584
|
}), object({
|
|
@@ -28721,6 +28751,39 @@ var RecordingDaysSchema = object({
|
|
|
28721
28751
|
/** Local-midnight epochs (UTC ms) of days that have ≥1 recorded segment. */
|
|
28722
28752
|
days: array(number())
|
|
28723
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
|
+
});
|
|
28724
28787
|
var RecordingManifestSchema = object({
|
|
28725
28788
|
deviceId: number(),
|
|
28726
28789
|
/** Local filesystem path to the master playlist; null when no recording exists for the requested range. */
|
|
@@ -28955,6 +29018,13 @@ method(object({
|
|
|
28955
29018
|
}), RecordingAvailabilitySchema, {
|
|
28956
29019
|
kind: "query",
|
|
28957
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"
|
|
28958
29028
|
}), method(object({
|
|
28959
29029
|
deviceId: number(),
|
|
28960
29030
|
fromMs: number(),
|
|
@@ -28963,6 +29033,14 @@ method(object({
|
|
|
28963
29033
|
}), RecordingDaysSchema, {
|
|
28964
29034
|
kind: "query",
|
|
28965
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"
|
|
28966
29044
|
}), method(object({
|
|
28967
29045
|
deviceId: number(),
|
|
28968
29046
|
fromMs: number(),
|
|
@@ -35857,6 +35935,12 @@ Object.freeze({
|
|
|
35857
35935
|
addonId: null,
|
|
35858
35936
|
access: "view"
|
|
35859
35937
|
},
|
|
35938
|
+
"pipelineAnalytics.getEventDensityBatch": {
|
|
35939
|
+
capName: "pipeline-analytics",
|
|
35940
|
+
capScope: "device",
|
|
35941
|
+
addonId: null,
|
|
35942
|
+
access: "view"
|
|
35943
|
+
},
|
|
35860
35944
|
"pipelineAnalytics.getEventMedia": {
|
|
35861
35945
|
capName: "pipeline-analytics",
|
|
35862
35946
|
capScope: "device",
|
|
@@ -36979,12 +37063,24 @@ Object.freeze({
|
|
|
36979
37063
|
addonId: null,
|
|
36980
37064
|
access: "view"
|
|
36981
37065
|
},
|
|
37066
|
+
"recording.getAvailabilityBatch": {
|
|
37067
|
+
capName: "recording",
|
|
37068
|
+
capScope: "system",
|
|
37069
|
+
addonId: null,
|
|
37070
|
+
access: "view"
|
|
37071
|
+
},
|
|
36982
37072
|
"recording.getDaysWithRecordings": {
|
|
36983
37073
|
capName: "recording",
|
|
36984
37074
|
capScope: "system",
|
|
36985
37075
|
addonId: null,
|
|
36986
37076
|
access: "view"
|
|
36987
37077
|
},
|
|
37078
|
+
"recording.getDaysWithRecordingsBatch": {
|
|
37079
|
+
capName: "recording",
|
|
37080
|
+
capScope: "system",
|
|
37081
|
+
addonId: null,
|
|
37082
|
+
access: "view"
|
|
37083
|
+
},
|
|
36988
37084
|
"recording.getDeviceConfig": {
|
|
36989
37085
|
capName: "recording",
|
|
36990
37086
|
capScope: "system",
|
|
@@ -39589,6 +39685,11 @@ Object.freeze({
|
|
|
39589
39685
|
form: "single",
|
|
39590
39686
|
optional: false
|
|
39591
39687
|
}],
|
|
39688
|
+
"pipelineAnalytics.getEventDensityBatch": [{
|
|
39689
|
+
name: "deviceIds",
|
|
39690
|
+
form: "array",
|
|
39691
|
+
optional: false
|
|
39692
|
+
}],
|
|
39592
39693
|
"pipelineAnalytics.getEventMedia": [{
|
|
39593
39694
|
name: "deviceId",
|
|
39594
39695
|
form: "single",
|
|
@@ -40004,11 +40105,21 @@ Object.freeze({
|
|
|
40004
40105
|
form: "single",
|
|
40005
40106
|
optional: false
|
|
40006
40107
|
}],
|
|
40108
|
+
"recording.getAvailabilityBatch": [{
|
|
40109
|
+
name: "deviceIds",
|
|
40110
|
+
form: "array",
|
|
40111
|
+
optional: false
|
|
40112
|
+
}],
|
|
40007
40113
|
"recording.getDaysWithRecordings": [{
|
|
40008
40114
|
name: "deviceId",
|
|
40009
40115
|
form: "single",
|
|
40010
40116
|
optional: false
|
|
40011
40117
|
}],
|
|
40118
|
+
"recording.getDaysWithRecordingsBatch": [{
|
|
40119
|
+
name: "deviceIds",
|
|
40120
|
+
form: "array",
|
|
40121
|
+
optional: false
|
|
40122
|
+
}],
|
|
40012
40123
|
"recording.getDeviceConfig": [{
|
|
40013
40124
|
name: "deviceId",
|
|
40014
40125
|
form: "single",
|
package/dist/addon.mjs
CHANGED
|
@@ -15896,6 +15896,8 @@ var NcSystemEventKindSchema = _enum([
|
|
|
15896
15896
|
"device-offline",
|
|
15897
15897
|
"device-disabled",
|
|
15898
15898
|
"device-enabled",
|
|
15899
|
+
"device-battery-low",
|
|
15900
|
+
"device-battery-normal",
|
|
15899
15901
|
"stream-online",
|
|
15900
15902
|
"stream-offline",
|
|
15901
15903
|
"node-online",
|
|
@@ -19210,6 +19212,34 @@ var KeyEventsForDeviceSchema = object({
|
|
|
19210
19212
|
deviceId: number(),
|
|
19211
19213
|
events: array(KeyEventSchema).readonly()
|
|
19212
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
|
+
});
|
|
19213
19243
|
object({
|
|
19214
19244
|
trackId: string(),
|
|
19215
19245
|
className: string(),
|
|
@@ -19520,12 +19550,12 @@ DeviceType.Camera, method(object({ deviceId: number() }), array(TrackSchema).rea
|
|
|
19520
19550
|
since: number(),
|
|
19521
19551
|
until: number(),
|
|
19522
19552
|
bucketMs: number().int().positive()
|
|
19523
|
-
}), array(object({
|
|
19524
|
-
|
|
19525
|
-
|
|
19526
|
-
|
|
19527
|
-
|
|
19528
|
-
})).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({
|
|
19529
19559
|
deviceId: number(),
|
|
19530
19560
|
cutoffMs: number()
|
|
19531
19561
|
}), object({
|
|
@@ -28698,6 +28728,39 @@ var RecordingDaysSchema = object({
|
|
|
28698
28728
|
/** Local-midnight epochs (UTC ms) of days that have ≥1 recorded segment. */
|
|
28699
28729
|
days: array(number())
|
|
28700
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
|
+
});
|
|
28701
28764
|
var RecordingManifestSchema = object({
|
|
28702
28765
|
deviceId: number(),
|
|
28703
28766
|
/** Local filesystem path to the master playlist; null when no recording exists for the requested range. */
|
|
@@ -28932,6 +28995,13 @@ method(object({
|
|
|
28932
28995
|
}), RecordingAvailabilitySchema, {
|
|
28933
28996
|
kind: "query",
|
|
28934
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"
|
|
28935
29005
|
}), method(object({
|
|
28936
29006
|
deviceId: number(),
|
|
28937
29007
|
fromMs: number(),
|
|
@@ -28940,6 +29010,14 @@ method(object({
|
|
|
28940
29010
|
}), RecordingDaysSchema, {
|
|
28941
29011
|
kind: "query",
|
|
28942
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"
|
|
28943
29021
|
}), method(object({
|
|
28944
29022
|
deviceId: number(),
|
|
28945
29023
|
fromMs: number(),
|
|
@@ -35834,6 +35912,12 @@ Object.freeze({
|
|
|
35834
35912
|
addonId: null,
|
|
35835
35913
|
access: "view"
|
|
35836
35914
|
},
|
|
35915
|
+
"pipelineAnalytics.getEventDensityBatch": {
|
|
35916
|
+
capName: "pipeline-analytics",
|
|
35917
|
+
capScope: "device",
|
|
35918
|
+
addonId: null,
|
|
35919
|
+
access: "view"
|
|
35920
|
+
},
|
|
35837
35921
|
"pipelineAnalytics.getEventMedia": {
|
|
35838
35922
|
capName: "pipeline-analytics",
|
|
35839
35923
|
capScope: "device",
|
|
@@ -36956,12 +37040,24 @@ Object.freeze({
|
|
|
36956
37040
|
addonId: null,
|
|
36957
37041
|
access: "view"
|
|
36958
37042
|
},
|
|
37043
|
+
"recording.getAvailabilityBatch": {
|
|
37044
|
+
capName: "recording",
|
|
37045
|
+
capScope: "system",
|
|
37046
|
+
addonId: null,
|
|
37047
|
+
access: "view"
|
|
37048
|
+
},
|
|
36959
37049
|
"recording.getDaysWithRecordings": {
|
|
36960
37050
|
capName: "recording",
|
|
36961
37051
|
capScope: "system",
|
|
36962
37052
|
addonId: null,
|
|
36963
37053
|
access: "view"
|
|
36964
37054
|
},
|
|
37055
|
+
"recording.getDaysWithRecordingsBatch": {
|
|
37056
|
+
capName: "recording",
|
|
37057
|
+
capScope: "system",
|
|
37058
|
+
addonId: null,
|
|
37059
|
+
access: "view"
|
|
37060
|
+
},
|
|
36965
37061
|
"recording.getDeviceConfig": {
|
|
36966
37062
|
capName: "recording",
|
|
36967
37063
|
capScope: "system",
|
|
@@ -39566,6 +39662,11 @@ Object.freeze({
|
|
|
39566
39662
|
form: "single",
|
|
39567
39663
|
optional: false
|
|
39568
39664
|
}],
|
|
39665
|
+
"pipelineAnalytics.getEventDensityBatch": [{
|
|
39666
|
+
name: "deviceIds",
|
|
39667
|
+
form: "array",
|
|
39668
|
+
optional: false
|
|
39669
|
+
}],
|
|
39569
39670
|
"pipelineAnalytics.getEventMedia": [{
|
|
39570
39671
|
name: "deviceId",
|
|
39571
39672
|
form: "single",
|
|
@@ -39981,11 +40082,21 @@ Object.freeze({
|
|
|
39981
40082
|
form: "single",
|
|
39982
40083
|
optional: false
|
|
39983
40084
|
}],
|
|
40085
|
+
"recording.getAvailabilityBatch": [{
|
|
40086
|
+
name: "deviceIds",
|
|
40087
|
+
form: "array",
|
|
40088
|
+
optional: false
|
|
40089
|
+
}],
|
|
39984
40090
|
"recording.getDaysWithRecordings": [{
|
|
39985
40091
|
name: "deviceId",
|
|
39986
40092
|
form: "single",
|
|
39987
40093
|
optional: false
|
|
39988
40094
|
}],
|
|
40095
|
+
"recording.getDaysWithRecordingsBatch": [{
|
|
40096
|
+
name: "deviceIds",
|
|
40097
|
+
form: "array",
|
|
40098
|
+
optional: false
|
|
40099
|
+
}],
|
|
39989
40100
|
"recording.getDeviceConfig": [{
|
|
39990
40101
|
name: "deviceId",
|
|
39991
40102
|
form: "single",
|