@camstack/addon-provider-rtsp 1.2.50 → 1.2.52
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
|
@@ -15931,6 +15931,8 @@ var NcSystemEventKindSchema = _enum([
|
|
|
15931
15931
|
"device-offline",
|
|
15932
15932
|
"device-disabled",
|
|
15933
15933
|
"device-enabled",
|
|
15934
|
+
"device-battery-low",
|
|
15935
|
+
"device-battery-normal",
|
|
15934
15936
|
"stream-online",
|
|
15935
15937
|
"stream-offline",
|
|
15936
15938
|
"node-online",
|
|
@@ -19245,6 +19247,34 @@ var KeyEventsForDeviceSchema = object({
|
|
|
19245
19247
|
deviceId: number(),
|
|
19246
19248
|
events: array(KeyEventSchema).readonly()
|
|
19247
19249
|
});
|
|
19250
|
+
/** One non-empty bucket of the timeline histogram. */
|
|
19251
|
+
var EventDensityBucketSchema = object({
|
|
19252
|
+
bucketStart: number(),
|
|
19253
|
+
motion: number().int(),
|
|
19254
|
+
object: number().int(),
|
|
19255
|
+
audio: number().int()
|
|
19256
|
+
});
|
|
19257
|
+
/**
|
|
19258
|
+
* One camera's row in a `getEventDensityBatch` answer.
|
|
19259
|
+
*
|
|
19260
|
+
* TWO facts, and the timeline draws them differently:
|
|
19261
|
+
*
|
|
19262
|
+
* - `read: 'read'` — the histogram for this camera. `buckets: []` is a real
|
|
19263
|
+
* claim: read, and nothing happened in the window.
|
|
19264
|
+
* - `read: 'unreadable'` — nobody could answer for this camera. `buckets` is
|
|
19265
|
+
* empty and that emptiness means NOTHING; the timeline must render unknown,
|
|
19266
|
+
* not quiet.
|
|
19267
|
+
*
|
|
19268
|
+
* Fanned out per camera the difference was free — one query rejected while the
|
|
19269
|
+
* others resolved — and collapsing to a batch is the exact moment it is lost
|
|
19270
|
+
* silently. Every requested id gets a row: a caller that asked for twelve and
|
|
19271
|
+
* got eleven cannot tell which one is missing, or that any is.
|
|
19272
|
+
*/
|
|
19273
|
+
var EventDensityForDeviceSchema = object({
|
|
19274
|
+
deviceId: number(),
|
|
19275
|
+
read: _enum(["read", "unreadable"]),
|
|
19276
|
+
buckets: array(EventDensityBucketSchema).readonly()
|
|
19277
|
+
});
|
|
19248
19278
|
object({
|
|
19249
19279
|
trackId: string(),
|
|
19250
19280
|
className: string(),
|
|
@@ -19555,12 +19585,12 @@ DeviceType.Camera, method(object({ deviceId: number() }), array(TrackSchema).rea
|
|
|
19555
19585
|
since: number(),
|
|
19556
19586
|
until: number(),
|
|
19557
19587
|
bucketMs: number().int().positive()
|
|
19558
|
-
}), array(object({
|
|
19559
|
-
|
|
19560
|
-
|
|
19561
|
-
|
|
19562
|
-
|
|
19563
|
-
})).readonly()), method(object({
|
|
19588
|
+
}), array(EventDensityBucketSchema).readonly()), method(object({
|
|
19589
|
+
deviceIds: array(number()).min(1).max(200),
|
|
19590
|
+
since: number(),
|
|
19591
|
+
until: number(),
|
|
19592
|
+
bucketMs: number().int().positive()
|
|
19593
|
+
}), array(EventDensityForDeviceSchema).readonly()), method(object({
|
|
19564
19594
|
deviceId: number(),
|
|
19565
19595
|
cutoffMs: number()
|
|
19566
19596
|
}), object({
|
|
@@ -28697,6 +28727,39 @@ var RecordingDaysSchema = object({
|
|
|
28697
28727
|
/** Local-midnight epochs (UTC ms) of days that have ≥1 recorded segment. */
|
|
28698
28728
|
days: array(number())
|
|
28699
28729
|
});
|
|
28730
|
+
/**
|
|
28731
|
+
* One camera's row in a `getAvailabilityBatch` answer.
|
|
28732
|
+
*
|
|
28733
|
+
* `ranges` is EXACTLY what `getAvailability` returns for that camera — the
|
|
28734
|
+
* batch collapses the transport, not the work — plus the one thing the singular
|
|
28735
|
+
* method never had to say:
|
|
28736
|
+
*
|
|
28737
|
+
* - `read: 'read'` — answered. `ranges: []` means "read, and this camera has
|
|
28738
|
+
* no footage in the window", which is a real claim.
|
|
28739
|
+
* - `read: 'unreadable'` — the recorder could not answer for this camera (its
|
|
28740
|
+
* calendar rung threw, its location is unmounted). `ranges` is empty and
|
|
28741
|
+
* that emptiness means NOTHING.
|
|
28742
|
+
*
|
|
28743
|
+
* A timeline that renders the second as the first tells an operator there is no
|
|
28744
|
+
* footage when the truth is that nobody looked.
|
|
28745
|
+
*/
|
|
28746
|
+
var RecordingAvailabilityForDeviceSchema = object({
|
|
28747
|
+
deviceId: number(),
|
|
28748
|
+
read: _enum(["read", "unreadable"]),
|
|
28749
|
+
ranges: array(RecordingRangeSchema).readonly()
|
|
28750
|
+
});
|
|
28751
|
+
/**
|
|
28752
|
+
* One camera's row in a `getDaysWithRecordingsBatch` answer. Same rule as
|
|
28753
|
+
* {@link RecordingAvailabilityForDeviceSchema}: `days: []` on a `'read'` row is
|
|
28754
|
+
* "no footage in this month", `read: 'unreadable'` is "nobody could look", and
|
|
28755
|
+
* the date-picker's day dots must not spell them the same.
|
|
28756
|
+
*/
|
|
28757
|
+
var RecordingDaysForDeviceSchema = object({
|
|
28758
|
+
deviceId: number(),
|
|
28759
|
+
read: _enum(["read", "unreadable"]),
|
|
28760
|
+
/** Local-midnight epochs (UTC ms) of days that have ≥1 recorded segment. */
|
|
28761
|
+
days: array(number()).readonly()
|
|
28762
|
+
});
|
|
28700
28763
|
var RecordingManifestSchema = object({
|
|
28701
28764
|
deviceId: number(),
|
|
28702
28765
|
/** Local filesystem path to the master playlist; null when no recording exists for the requested range. */
|
|
@@ -28931,6 +28994,13 @@ method(object({
|
|
|
28931
28994
|
}), RecordingAvailabilitySchema, {
|
|
28932
28995
|
kind: "query",
|
|
28933
28996
|
auth: "protected"
|
|
28997
|
+
}), method(object({
|
|
28998
|
+
deviceIds: array(number()).min(1).max(200),
|
|
28999
|
+
fromMs: number(),
|
|
29000
|
+
toMs: number()
|
|
29001
|
+
}), array(RecordingAvailabilityForDeviceSchema).readonly(), {
|
|
29002
|
+
kind: "query",
|
|
29003
|
+
auth: "protected"
|
|
28934
29004
|
}), method(object({
|
|
28935
29005
|
deviceId: number(),
|
|
28936
29006
|
fromMs: number(),
|
|
@@ -28939,6 +29009,14 @@ method(object({
|
|
|
28939
29009
|
}), RecordingDaysSchema, {
|
|
28940
29010
|
kind: "query",
|
|
28941
29011
|
auth: "protected"
|
|
29012
|
+
}), method(object({
|
|
29013
|
+
deviceIds: array(number()).min(1).max(200),
|
|
29014
|
+
fromMs: number(),
|
|
29015
|
+
toMs: number(),
|
|
29016
|
+
tzOffsetMinutes: number()
|
|
29017
|
+
}), array(RecordingDaysForDeviceSchema).readonly(), {
|
|
29018
|
+
kind: "query",
|
|
29019
|
+
auth: "protected"
|
|
28942
29020
|
}), method(object({
|
|
28943
29021
|
deviceId: number(),
|
|
28944
29022
|
fromMs: number(),
|
|
@@ -35901,6 +35979,12 @@ Object.freeze({
|
|
|
35901
35979
|
addonId: null,
|
|
35902
35980
|
access: "view"
|
|
35903
35981
|
},
|
|
35982
|
+
"pipelineAnalytics.getEventDensityBatch": {
|
|
35983
|
+
capName: "pipeline-analytics",
|
|
35984
|
+
capScope: "device",
|
|
35985
|
+
addonId: null,
|
|
35986
|
+
access: "view"
|
|
35987
|
+
},
|
|
35904
35988
|
"pipelineAnalytics.getEventMedia": {
|
|
35905
35989
|
capName: "pipeline-analytics",
|
|
35906
35990
|
capScope: "device",
|
|
@@ -37023,12 +37107,24 @@ Object.freeze({
|
|
|
37023
37107
|
addonId: null,
|
|
37024
37108
|
access: "view"
|
|
37025
37109
|
},
|
|
37110
|
+
"recording.getAvailabilityBatch": {
|
|
37111
|
+
capName: "recording",
|
|
37112
|
+
capScope: "system",
|
|
37113
|
+
addonId: null,
|
|
37114
|
+
access: "view"
|
|
37115
|
+
},
|
|
37026
37116
|
"recording.getDaysWithRecordings": {
|
|
37027
37117
|
capName: "recording",
|
|
37028
37118
|
capScope: "system",
|
|
37029
37119
|
addonId: null,
|
|
37030
37120
|
access: "view"
|
|
37031
37121
|
},
|
|
37122
|
+
"recording.getDaysWithRecordingsBatch": {
|
|
37123
|
+
capName: "recording",
|
|
37124
|
+
capScope: "system",
|
|
37125
|
+
addonId: null,
|
|
37126
|
+
access: "view"
|
|
37127
|
+
},
|
|
37032
37128
|
"recording.getDeviceConfig": {
|
|
37033
37129
|
capName: "recording",
|
|
37034
37130
|
capScope: "system",
|
|
@@ -39633,6 +39729,11 @@ Object.freeze({
|
|
|
39633
39729
|
form: "single",
|
|
39634
39730
|
optional: false
|
|
39635
39731
|
}],
|
|
39732
|
+
"pipelineAnalytics.getEventDensityBatch": [{
|
|
39733
|
+
name: "deviceIds",
|
|
39734
|
+
form: "array",
|
|
39735
|
+
optional: false
|
|
39736
|
+
}],
|
|
39636
39737
|
"pipelineAnalytics.getEventMedia": [{
|
|
39637
39738
|
name: "deviceId",
|
|
39638
39739
|
form: "single",
|
|
@@ -40048,11 +40149,21 @@ Object.freeze({
|
|
|
40048
40149
|
form: "single",
|
|
40049
40150
|
optional: false
|
|
40050
40151
|
}],
|
|
40152
|
+
"recording.getAvailabilityBatch": [{
|
|
40153
|
+
name: "deviceIds",
|
|
40154
|
+
form: "array",
|
|
40155
|
+
optional: false
|
|
40156
|
+
}],
|
|
40051
40157
|
"recording.getDaysWithRecordings": [{
|
|
40052
40158
|
name: "deviceId",
|
|
40053
40159
|
form: "single",
|
|
40054
40160
|
optional: false
|
|
40055
40161
|
}],
|
|
40162
|
+
"recording.getDaysWithRecordingsBatch": [{
|
|
40163
|
+
name: "deviceIds",
|
|
40164
|
+
form: "array",
|
|
40165
|
+
optional: false
|
|
40166
|
+
}],
|
|
40056
40167
|
"recording.getDeviceConfig": [{
|
|
40057
40168
|
name: "deviceId",
|
|
40058
40169
|
form: "single",
|
package/dist/addon.mjs
CHANGED
|
@@ -15907,6 +15907,8 @@ var NcSystemEventKindSchema = _enum([
|
|
|
15907
15907
|
"device-offline",
|
|
15908
15908
|
"device-disabled",
|
|
15909
15909
|
"device-enabled",
|
|
15910
|
+
"device-battery-low",
|
|
15911
|
+
"device-battery-normal",
|
|
15910
15912
|
"stream-online",
|
|
15911
15913
|
"stream-offline",
|
|
15912
15914
|
"node-online",
|
|
@@ -19221,6 +19223,34 @@ var KeyEventsForDeviceSchema = object({
|
|
|
19221
19223
|
deviceId: number(),
|
|
19222
19224
|
events: array(KeyEventSchema).readonly()
|
|
19223
19225
|
});
|
|
19226
|
+
/** One non-empty bucket of the timeline histogram. */
|
|
19227
|
+
var EventDensityBucketSchema = object({
|
|
19228
|
+
bucketStart: number(),
|
|
19229
|
+
motion: number().int(),
|
|
19230
|
+
object: number().int(),
|
|
19231
|
+
audio: number().int()
|
|
19232
|
+
});
|
|
19233
|
+
/**
|
|
19234
|
+
* One camera's row in a `getEventDensityBatch` answer.
|
|
19235
|
+
*
|
|
19236
|
+
* TWO facts, and the timeline draws them differently:
|
|
19237
|
+
*
|
|
19238
|
+
* - `read: 'read'` — the histogram for this camera. `buckets: []` is a real
|
|
19239
|
+
* claim: read, and nothing happened in the window.
|
|
19240
|
+
* - `read: 'unreadable'` — nobody could answer for this camera. `buckets` is
|
|
19241
|
+
* empty and that emptiness means NOTHING; the timeline must render unknown,
|
|
19242
|
+
* not quiet.
|
|
19243
|
+
*
|
|
19244
|
+
* Fanned out per camera the difference was free — one query rejected while the
|
|
19245
|
+
* others resolved — and collapsing to a batch is the exact moment it is lost
|
|
19246
|
+
* silently. Every requested id gets a row: a caller that asked for twelve and
|
|
19247
|
+
* got eleven cannot tell which one is missing, or that any is.
|
|
19248
|
+
*/
|
|
19249
|
+
var EventDensityForDeviceSchema = object({
|
|
19250
|
+
deviceId: number(),
|
|
19251
|
+
read: _enum(["read", "unreadable"]),
|
|
19252
|
+
buckets: array(EventDensityBucketSchema).readonly()
|
|
19253
|
+
});
|
|
19224
19254
|
object({
|
|
19225
19255
|
trackId: string(),
|
|
19226
19256
|
className: string(),
|
|
@@ -19531,12 +19561,12 @@ DeviceType.Camera, method(object({ deviceId: number() }), array(TrackSchema).rea
|
|
|
19531
19561
|
since: number(),
|
|
19532
19562
|
until: number(),
|
|
19533
19563
|
bucketMs: number().int().positive()
|
|
19534
|
-
}), array(object({
|
|
19535
|
-
|
|
19536
|
-
|
|
19537
|
-
|
|
19538
|
-
|
|
19539
|
-
})).readonly()), method(object({
|
|
19564
|
+
}), array(EventDensityBucketSchema).readonly()), method(object({
|
|
19565
|
+
deviceIds: array(number()).min(1).max(200),
|
|
19566
|
+
since: number(),
|
|
19567
|
+
until: number(),
|
|
19568
|
+
bucketMs: number().int().positive()
|
|
19569
|
+
}), array(EventDensityForDeviceSchema).readonly()), method(object({
|
|
19540
19570
|
deviceId: number(),
|
|
19541
19571
|
cutoffMs: number()
|
|
19542
19572
|
}), object({
|
|
@@ -28673,6 +28703,39 @@ var RecordingDaysSchema = object({
|
|
|
28673
28703
|
/** Local-midnight epochs (UTC ms) of days that have ≥1 recorded segment. */
|
|
28674
28704
|
days: array(number())
|
|
28675
28705
|
});
|
|
28706
|
+
/**
|
|
28707
|
+
* One camera's row in a `getAvailabilityBatch` answer.
|
|
28708
|
+
*
|
|
28709
|
+
* `ranges` is EXACTLY what `getAvailability` returns for that camera — the
|
|
28710
|
+
* batch collapses the transport, not the work — plus the one thing the singular
|
|
28711
|
+
* method never had to say:
|
|
28712
|
+
*
|
|
28713
|
+
* - `read: 'read'` — answered. `ranges: []` means "read, and this camera has
|
|
28714
|
+
* no footage in the window", which is a real claim.
|
|
28715
|
+
* - `read: 'unreadable'` — the recorder could not answer for this camera (its
|
|
28716
|
+
* calendar rung threw, its location is unmounted). `ranges` is empty and
|
|
28717
|
+
* that emptiness means NOTHING.
|
|
28718
|
+
*
|
|
28719
|
+
* A timeline that renders the second as the first tells an operator there is no
|
|
28720
|
+
* footage when the truth is that nobody looked.
|
|
28721
|
+
*/
|
|
28722
|
+
var RecordingAvailabilityForDeviceSchema = object({
|
|
28723
|
+
deviceId: number(),
|
|
28724
|
+
read: _enum(["read", "unreadable"]),
|
|
28725
|
+
ranges: array(RecordingRangeSchema).readonly()
|
|
28726
|
+
});
|
|
28727
|
+
/**
|
|
28728
|
+
* One camera's row in a `getDaysWithRecordingsBatch` answer. Same rule as
|
|
28729
|
+
* {@link RecordingAvailabilityForDeviceSchema}: `days: []` on a `'read'` row is
|
|
28730
|
+
* "no footage in this month", `read: 'unreadable'` is "nobody could look", and
|
|
28731
|
+
* the date-picker's day dots must not spell them the same.
|
|
28732
|
+
*/
|
|
28733
|
+
var RecordingDaysForDeviceSchema = object({
|
|
28734
|
+
deviceId: number(),
|
|
28735
|
+
read: _enum(["read", "unreadable"]),
|
|
28736
|
+
/** Local-midnight epochs (UTC ms) of days that have ≥1 recorded segment. */
|
|
28737
|
+
days: array(number()).readonly()
|
|
28738
|
+
});
|
|
28676
28739
|
var RecordingManifestSchema = object({
|
|
28677
28740
|
deviceId: number(),
|
|
28678
28741
|
/** Local filesystem path to the master playlist; null when no recording exists for the requested range. */
|
|
@@ -28907,6 +28970,13 @@ method(object({
|
|
|
28907
28970
|
}), RecordingAvailabilitySchema, {
|
|
28908
28971
|
kind: "query",
|
|
28909
28972
|
auth: "protected"
|
|
28973
|
+
}), method(object({
|
|
28974
|
+
deviceIds: array(number()).min(1).max(200),
|
|
28975
|
+
fromMs: number(),
|
|
28976
|
+
toMs: number()
|
|
28977
|
+
}), array(RecordingAvailabilityForDeviceSchema).readonly(), {
|
|
28978
|
+
kind: "query",
|
|
28979
|
+
auth: "protected"
|
|
28910
28980
|
}), method(object({
|
|
28911
28981
|
deviceId: number(),
|
|
28912
28982
|
fromMs: number(),
|
|
@@ -28915,6 +28985,14 @@ method(object({
|
|
|
28915
28985
|
}), RecordingDaysSchema, {
|
|
28916
28986
|
kind: "query",
|
|
28917
28987
|
auth: "protected"
|
|
28988
|
+
}), method(object({
|
|
28989
|
+
deviceIds: array(number()).min(1).max(200),
|
|
28990
|
+
fromMs: number(),
|
|
28991
|
+
toMs: number(),
|
|
28992
|
+
tzOffsetMinutes: number()
|
|
28993
|
+
}), array(RecordingDaysForDeviceSchema).readonly(), {
|
|
28994
|
+
kind: "query",
|
|
28995
|
+
auth: "protected"
|
|
28918
28996
|
}), method(object({
|
|
28919
28997
|
deviceId: number(),
|
|
28920
28998
|
fromMs: number(),
|
|
@@ -35877,6 +35955,12 @@ Object.freeze({
|
|
|
35877
35955
|
addonId: null,
|
|
35878
35956
|
access: "view"
|
|
35879
35957
|
},
|
|
35958
|
+
"pipelineAnalytics.getEventDensityBatch": {
|
|
35959
|
+
capName: "pipeline-analytics",
|
|
35960
|
+
capScope: "device",
|
|
35961
|
+
addonId: null,
|
|
35962
|
+
access: "view"
|
|
35963
|
+
},
|
|
35880
35964
|
"pipelineAnalytics.getEventMedia": {
|
|
35881
35965
|
capName: "pipeline-analytics",
|
|
35882
35966
|
capScope: "device",
|
|
@@ -36999,12 +37083,24 @@ Object.freeze({
|
|
|
36999
37083
|
addonId: null,
|
|
37000
37084
|
access: "view"
|
|
37001
37085
|
},
|
|
37086
|
+
"recording.getAvailabilityBatch": {
|
|
37087
|
+
capName: "recording",
|
|
37088
|
+
capScope: "system",
|
|
37089
|
+
addonId: null,
|
|
37090
|
+
access: "view"
|
|
37091
|
+
},
|
|
37002
37092
|
"recording.getDaysWithRecordings": {
|
|
37003
37093
|
capName: "recording",
|
|
37004
37094
|
capScope: "system",
|
|
37005
37095
|
addonId: null,
|
|
37006
37096
|
access: "view"
|
|
37007
37097
|
},
|
|
37098
|
+
"recording.getDaysWithRecordingsBatch": {
|
|
37099
|
+
capName: "recording",
|
|
37100
|
+
capScope: "system",
|
|
37101
|
+
addonId: null,
|
|
37102
|
+
access: "view"
|
|
37103
|
+
},
|
|
37008
37104
|
"recording.getDeviceConfig": {
|
|
37009
37105
|
capName: "recording",
|
|
37010
37106
|
capScope: "system",
|
|
@@ -39609,6 +39705,11 @@ Object.freeze({
|
|
|
39609
39705
|
form: "single",
|
|
39610
39706
|
optional: false
|
|
39611
39707
|
}],
|
|
39708
|
+
"pipelineAnalytics.getEventDensityBatch": [{
|
|
39709
|
+
name: "deviceIds",
|
|
39710
|
+
form: "array",
|
|
39711
|
+
optional: false
|
|
39712
|
+
}],
|
|
39612
39713
|
"pipelineAnalytics.getEventMedia": [{
|
|
39613
39714
|
name: "deviceId",
|
|
39614
39715
|
form: "single",
|
|
@@ -40024,11 +40125,21 @@ Object.freeze({
|
|
|
40024
40125
|
form: "single",
|
|
40025
40126
|
optional: false
|
|
40026
40127
|
}],
|
|
40128
|
+
"recording.getAvailabilityBatch": [{
|
|
40129
|
+
name: "deviceIds",
|
|
40130
|
+
form: "array",
|
|
40131
|
+
optional: false
|
|
40132
|
+
}],
|
|
40027
40133
|
"recording.getDaysWithRecordings": [{
|
|
40028
40134
|
name: "deviceId",
|
|
40029
40135
|
form: "single",
|
|
40030
40136
|
optional: false
|
|
40031
40137
|
}],
|
|
40138
|
+
"recording.getDaysWithRecordingsBatch": [{
|
|
40139
|
+
name: "deviceIds",
|
|
40140
|
+
form: "array",
|
|
40141
|
+
optional: false
|
|
40142
|
+
}],
|
|
40032
40143
|
"recording.getDeviceConfig": [{
|
|
40033
40144
|
name: "deviceId",
|
|
40034
40145
|
form: "single",
|