@camstack/addon-provider-onvif 1.2.49 → 1.2.51
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
|
@@ -15627,6 +15627,8 @@ var NcSystemEventKindSchema = _enum([
|
|
|
15627
15627
|
"device-offline",
|
|
15628
15628
|
"device-disabled",
|
|
15629
15629
|
"device-enabled",
|
|
15630
|
+
"device-battery-low",
|
|
15631
|
+
"device-battery-normal",
|
|
15630
15632
|
"stream-online",
|
|
15631
15633
|
"stream-offline",
|
|
15632
15634
|
"node-online",
|
|
@@ -18901,6 +18903,34 @@ var KeyEventsForDeviceSchema = object({
|
|
|
18901
18903
|
deviceId: number(),
|
|
18902
18904
|
events: array(KeyEventSchema).readonly()
|
|
18903
18905
|
});
|
|
18906
|
+
/** One non-empty bucket of the timeline histogram. */
|
|
18907
|
+
var EventDensityBucketSchema = object({
|
|
18908
|
+
bucketStart: number(),
|
|
18909
|
+
motion: number().int(),
|
|
18910
|
+
object: number().int(),
|
|
18911
|
+
audio: number().int()
|
|
18912
|
+
});
|
|
18913
|
+
/**
|
|
18914
|
+
* One camera's row in a `getEventDensityBatch` answer.
|
|
18915
|
+
*
|
|
18916
|
+
* TWO facts, and the timeline draws them differently:
|
|
18917
|
+
*
|
|
18918
|
+
* - `read: 'read'` — the histogram for this camera. `buckets: []` is a real
|
|
18919
|
+
* claim: read, and nothing happened in the window.
|
|
18920
|
+
* - `read: 'unreadable'` — nobody could answer for this camera. `buckets` is
|
|
18921
|
+
* empty and that emptiness means NOTHING; the timeline must render unknown,
|
|
18922
|
+
* not quiet.
|
|
18923
|
+
*
|
|
18924
|
+
* Fanned out per camera the difference was free — one query rejected while the
|
|
18925
|
+
* others resolved — and collapsing to a batch is the exact moment it is lost
|
|
18926
|
+
* silently. Every requested id gets a row: a caller that asked for twelve and
|
|
18927
|
+
* got eleven cannot tell which one is missing, or that any is.
|
|
18928
|
+
*/
|
|
18929
|
+
var EventDensityForDeviceSchema = object({
|
|
18930
|
+
deviceId: number(),
|
|
18931
|
+
read: _enum(["read", "unreadable"]),
|
|
18932
|
+
buckets: array(EventDensityBucketSchema).readonly()
|
|
18933
|
+
});
|
|
18904
18934
|
object({
|
|
18905
18935
|
trackId: string(),
|
|
18906
18936
|
className: string(),
|
|
@@ -19211,12 +19241,12 @@ DeviceType.Camera, method(object({ deviceId: number() }), array(TrackSchema).rea
|
|
|
19211
19241
|
since: number(),
|
|
19212
19242
|
until: number(),
|
|
19213
19243
|
bucketMs: number().int().positive()
|
|
19214
|
-
}), array(object({
|
|
19215
|
-
|
|
19216
|
-
|
|
19217
|
-
|
|
19218
|
-
|
|
19219
|
-
})).readonly()), method(object({
|
|
19244
|
+
}), array(EventDensityBucketSchema).readonly()), method(object({
|
|
19245
|
+
deviceIds: array(number()).min(1).max(200),
|
|
19246
|
+
since: number(),
|
|
19247
|
+
until: number(),
|
|
19248
|
+
bucketMs: number().int().positive()
|
|
19249
|
+
}), array(EventDensityForDeviceSchema).readonly()), method(object({
|
|
19220
19250
|
deviceId: number(),
|
|
19221
19251
|
cutoffMs: number()
|
|
19222
19252
|
}), object({
|
|
@@ -26672,6 +26702,39 @@ var RecordingDaysSchema = object({
|
|
|
26672
26702
|
/** Local-midnight epochs (UTC ms) of days that have ≥1 recorded segment. */
|
|
26673
26703
|
days: array(number())
|
|
26674
26704
|
});
|
|
26705
|
+
/**
|
|
26706
|
+
* One camera's row in a `getAvailabilityBatch` answer.
|
|
26707
|
+
*
|
|
26708
|
+
* `ranges` is EXACTLY what `getAvailability` returns for that camera — the
|
|
26709
|
+
* batch collapses the transport, not the work — plus the one thing the singular
|
|
26710
|
+
* method never had to say:
|
|
26711
|
+
*
|
|
26712
|
+
* - `read: 'read'` — answered. `ranges: []` means "read, and this camera has
|
|
26713
|
+
* no footage in the window", which is a real claim.
|
|
26714
|
+
* - `read: 'unreadable'` — the recorder could not answer for this camera (its
|
|
26715
|
+
* calendar rung threw, its location is unmounted). `ranges` is empty and
|
|
26716
|
+
* that emptiness means NOTHING.
|
|
26717
|
+
*
|
|
26718
|
+
* A timeline that renders the second as the first tells an operator there is no
|
|
26719
|
+
* footage when the truth is that nobody looked.
|
|
26720
|
+
*/
|
|
26721
|
+
var RecordingAvailabilityForDeviceSchema = object({
|
|
26722
|
+
deviceId: number(),
|
|
26723
|
+
read: _enum(["read", "unreadable"]),
|
|
26724
|
+
ranges: array(RecordingRangeSchema).readonly()
|
|
26725
|
+
});
|
|
26726
|
+
/**
|
|
26727
|
+
* One camera's row in a `getDaysWithRecordingsBatch` answer. Same rule as
|
|
26728
|
+
* {@link RecordingAvailabilityForDeviceSchema}: `days: []` on a `'read'` row is
|
|
26729
|
+
* "no footage in this month", `read: 'unreadable'` is "nobody could look", and
|
|
26730
|
+
* the date-picker's day dots must not spell them the same.
|
|
26731
|
+
*/
|
|
26732
|
+
var RecordingDaysForDeviceSchema = object({
|
|
26733
|
+
deviceId: number(),
|
|
26734
|
+
read: _enum(["read", "unreadable"]),
|
|
26735
|
+
/** Local-midnight epochs (UTC ms) of days that have ≥1 recorded segment. */
|
|
26736
|
+
days: array(number()).readonly()
|
|
26737
|
+
});
|
|
26675
26738
|
var RecordingManifestSchema = object({
|
|
26676
26739
|
deviceId: number(),
|
|
26677
26740
|
/** Local filesystem path to the master playlist; null when no recording exists for the requested range. */
|
|
@@ -26906,6 +26969,13 @@ method(object({
|
|
|
26906
26969
|
}), RecordingAvailabilitySchema, {
|
|
26907
26970
|
kind: "query",
|
|
26908
26971
|
auth: "protected"
|
|
26972
|
+
}), method(object({
|
|
26973
|
+
deviceIds: array(number()).min(1).max(200),
|
|
26974
|
+
fromMs: number(),
|
|
26975
|
+
toMs: number()
|
|
26976
|
+
}), array(RecordingAvailabilityForDeviceSchema).readonly(), {
|
|
26977
|
+
kind: "query",
|
|
26978
|
+
auth: "protected"
|
|
26909
26979
|
}), method(object({
|
|
26910
26980
|
deviceId: number(),
|
|
26911
26981
|
fromMs: number(),
|
|
@@ -26914,6 +26984,14 @@ method(object({
|
|
|
26914
26984
|
}), RecordingDaysSchema, {
|
|
26915
26985
|
kind: "query",
|
|
26916
26986
|
auth: "protected"
|
|
26987
|
+
}), method(object({
|
|
26988
|
+
deviceIds: array(number()).min(1).max(200),
|
|
26989
|
+
fromMs: number(),
|
|
26990
|
+
toMs: number(),
|
|
26991
|
+
tzOffsetMinutes: number()
|
|
26992
|
+
}), array(RecordingDaysForDeviceSchema).readonly(), {
|
|
26993
|
+
kind: "query",
|
|
26994
|
+
auth: "protected"
|
|
26917
26995
|
}), method(object({
|
|
26918
26996
|
deviceId: number(),
|
|
26919
26997
|
fromMs: number(),
|
|
@@ -32521,6 +32599,12 @@ Object.freeze({
|
|
|
32521
32599
|
addonId: null,
|
|
32522
32600
|
access: "view"
|
|
32523
32601
|
},
|
|
32602
|
+
"pipelineAnalytics.getEventDensityBatch": {
|
|
32603
|
+
capName: "pipeline-analytics",
|
|
32604
|
+
capScope: "device",
|
|
32605
|
+
addonId: null,
|
|
32606
|
+
access: "view"
|
|
32607
|
+
},
|
|
32524
32608
|
"pipelineAnalytics.getEventMedia": {
|
|
32525
32609
|
capName: "pipeline-analytics",
|
|
32526
32610
|
capScope: "device",
|
|
@@ -33643,12 +33727,24 @@ Object.freeze({
|
|
|
33643
33727
|
addonId: null,
|
|
33644
33728
|
access: "view"
|
|
33645
33729
|
},
|
|
33730
|
+
"recording.getAvailabilityBatch": {
|
|
33731
|
+
capName: "recording",
|
|
33732
|
+
capScope: "system",
|
|
33733
|
+
addonId: null,
|
|
33734
|
+
access: "view"
|
|
33735
|
+
},
|
|
33646
33736
|
"recording.getDaysWithRecordings": {
|
|
33647
33737
|
capName: "recording",
|
|
33648
33738
|
capScope: "system",
|
|
33649
33739
|
addonId: null,
|
|
33650
33740
|
access: "view"
|
|
33651
33741
|
},
|
|
33742
|
+
"recording.getDaysWithRecordingsBatch": {
|
|
33743
|
+
capName: "recording",
|
|
33744
|
+
capScope: "system",
|
|
33745
|
+
addonId: null,
|
|
33746
|
+
access: "view"
|
|
33747
|
+
},
|
|
33652
33748
|
"recording.getDeviceConfig": {
|
|
33653
33749
|
capName: "recording",
|
|
33654
33750
|
capScope: "system",
|
|
@@ -36253,6 +36349,11 @@ Object.freeze({
|
|
|
36253
36349
|
form: "single",
|
|
36254
36350
|
optional: false
|
|
36255
36351
|
}],
|
|
36352
|
+
"pipelineAnalytics.getEventDensityBatch": [{
|
|
36353
|
+
name: "deviceIds",
|
|
36354
|
+
form: "array",
|
|
36355
|
+
optional: false
|
|
36356
|
+
}],
|
|
36256
36357
|
"pipelineAnalytics.getEventMedia": [{
|
|
36257
36358
|
name: "deviceId",
|
|
36258
36359
|
form: "single",
|
|
@@ -36668,11 +36769,21 @@ Object.freeze({
|
|
|
36668
36769
|
form: "single",
|
|
36669
36770
|
optional: false
|
|
36670
36771
|
}],
|
|
36772
|
+
"recording.getAvailabilityBatch": [{
|
|
36773
|
+
name: "deviceIds",
|
|
36774
|
+
form: "array",
|
|
36775
|
+
optional: false
|
|
36776
|
+
}],
|
|
36671
36777
|
"recording.getDaysWithRecordings": [{
|
|
36672
36778
|
name: "deviceId",
|
|
36673
36779
|
form: "single",
|
|
36674
36780
|
optional: false
|
|
36675
36781
|
}],
|
|
36782
|
+
"recording.getDaysWithRecordingsBatch": [{
|
|
36783
|
+
name: "deviceIds",
|
|
36784
|
+
form: "array",
|
|
36785
|
+
optional: false
|
|
36786
|
+
}],
|
|
36676
36787
|
"recording.getDeviceConfig": [{
|
|
36677
36788
|
name: "deviceId",
|
|
36678
36789
|
form: "single",
|
package/dist/addon.mjs
CHANGED
|
@@ -15628,6 +15628,8 @@ var NcSystemEventKindSchema = _enum([
|
|
|
15628
15628
|
"device-offline",
|
|
15629
15629
|
"device-disabled",
|
|
15630
15630
|
"device-enabled",
|
|
15631
|
+
"device-battery-low",
|
|
15632
|
+
"device-battery-normal",
|
|
15631
15633
|
"stream-online",
|
|
15632
15634
|
"stream-offline",
|
|
15633
15635
|
"node-online",
|
|
@@ -18902,6 +18904,34 @@ var KeyEventsForDeviceSchema = object({
|
|
|
18902
18904
|
deviceId: number(),
|
|
18903
18905
|
events: array(KeyEventSchema).readonly()
|
|
18904
18906
|
});
|
|
18907
|
+
/** One non-empty bucket of the timeline histogram. */
|
|
18908
|
+
var EventDensityBucketSchema = object({
|
|
18909
|
+
bucketStart: number(),
|
|
18910
|
+
motion: number().int(),
|
|
18911
|
+
object: number().int(),
|
|
18912
|
+
audio: number().int()
|
|
18913
|
+
});
|
|
18914
|
+
/**
|
|
18915
|
+
* One camera's row in a `getEventDensityBatch` answer.
|
|
18916
|
+
*
|
|
18917
|
+
* TWO facts, and the timeline draws them differently:
|
|
18918
|
+
*
|
|
18919
|
+
* - `read: 'read'` — the histogram for this camera. `buckets: []` is a real
|
|
18920
|
+
* claim: read, and nothing happened in the window.
|
|
18921
|
+
* - `read: 'unreadable'` — nobody could answer for this camera. `buckets` is
|
|
18922
|
+
* empty and that emptiness means NOTHING; the timeline must render unknown,
|
|
18923
|
+
* not quiet.
|
|
18924
|
+
*
|
|
18925
|
+
* Fanned out per camera the difference was free — one query rejected while the
|
|
18926
|
+
* others resolved — and collapsing to a batch is the exact moment it is lost
|
|
18927
|
+
* silently. Every requested id gets a row: a caller that asked for twelve and
|
|
18928
|
+
* got eleven cannot tell which one is missing, or that any is.
|
|
18929
|
+
*/
|
|
18930
|
+
var EventDensityForDeviceSchema = object({
|
|
18931
|
+
deviceId: number(),
|
|
18932
|
+
read: _enum(["read", "unreadable"]),
|
|
18933
|
+
buckets: array(EventDensityBucketSchema).readonly()
|
|
18934
|
+
});
|
|
18905
18935
|
object({
|
|
18906
18936
|
trackId: string(),
|
|
18907
18937
|
className: string(),
|
|
@@ -19212,12 +19242,12 @@ DeviceType.Camera, method(object({ deviceId: number() }), array(TrackSchema).rea
|
|
|
19212
19242
|
since: number(),
|
|
19213
19243
|
until: number(),
|
|
19214
19244
|
bucketMs: number().int().positive()
|
|
19215
|
-
}), array(object({
|
|
19216
|
-
|
|
19217
|
-
|
|
19218
|
-
|
|
19219
|
-
|
|
19220
|
-
})).readonly()), method(object({
|
|
19245
|
+
}), array(EventDensityBucketSchema).readonly()), method(object({
|
|
19246
|
+
deviceIds: array(number()).min(1).max(200),
|
|
19247
|
+
since: number(),
|
|
19248
|
+
until: number(),
|
|
19249
|
+
bucketMs: number().int().positive()
|
|
19250
|
+
}), array(EventDensityForDeviceSchema).readonly()), method(object({
|
|
19221
19251
|
deviceId: number(),
|
|
19222
19252
|
cutoffMs: number()
|
|
19223
19253
|
}), object({
|
|
@@ -26673,6 +26703,39 @@ var RecordingDaysSchema = object({
|
|
|
26673
26703
|
/** Local-midnight epochs (UTC ms) of days that have ≥1 recorded segment. */
|
|
26674
26704
|
days: array(number())
|
|
26675
26705
|
});
|
|
26706
|
+
/**
|
|
26707
|
+
* One camera's row in a `getAvailabilityBatch` answer.
|
|
26708
|
+
*
|
|
26709
|
+
* `ranges` is EXACTLY what `getAvailability` returns for that camera — the
|
|
26710
|
+
* batch collapses the transport, not the work — plus the one thing the singular
|
|
26711
|
+
* method never had to say:
|
|
26712
|
+
*
|
|
26713
|
+
* - `read: 'read'` — answered. `ranges: []` means "read, and this camera has
|
|
26714
|
+
* no footage in the window", which is a real claim.
|
|
26715
|
+
* - `read: 'unreadable'` — the recorder could not answer for this camera (its
|
|
26716
|
+
* calendar rung threw, its location is unmounted). `ranges` is empty and
|
|
26717
|
+
* that emptiness means NOTHING.
|
|
26718
|
+
*
|
|
26719
|
+
* A timeline that renders the second as the first tells an operator there is no
|
|
26720
|
+
* footage when the truth is that nobody looked.
|
|
26721
|
+
*/
|
|
26722
|
+
var RecordingAvailabilityForDeviceSchema = object({
|
|
26723
|
+
deviceId: number(),
|
|
26724
|
+
read: _enum(["read", "unreadable"]),
|
|
26725
|
+
ranges: array(RecordingRangeSchema).readonly()
|
|
26726
|
+
});
|
|
26727
|
+
/**
|
|
26728
|
+
* One camera's row in a `getDaysWithRecordingsBatch` answer. Same rule as
|
|
26729
|
+
* {@link RecordingAvailabilityForDeviceSchema}: `days: []` on a `'read'` row is
|
|
26730
|
+
* "no footage in this month", `read: 'unreadable'` is "nobody could look", and
|
|
26731
|
+
* the date-picker's day dots must not spell them the same.
|
|
26732
|
+
*/
|
|
26733
|
+
var RecordingDaysForDeviceSchema = object({
|
|
26734
|
+
deviceId: number(),
|
|
26735
|
+
read: _enum(["read", "unreadable"]),
|
|
26736
|
+
/** Local-midnight epochs (UTC ms) of days that have ≥1 recorded segment. */
|
|
26737
|
+
days: array(number()).readonly()
|
|
26738
|
+
});
|
|
26676
26739
|
var RecordingManifestSchema = object({
|
|
26677
26740
|
deviceId: number(),
|
|
26678
26741
|
/** Local filesystem path to the master playlist; null when no recording exists for the requested range. */
|
|
@@ -26907,6 +26970,13 @@ method(object({
|
|
|
26907
26970
|
}), RecordingAvailabilitySchema, {
|
|
26908
26971
|
kind: "query",
|
|
26909
26972
|
auth: "protected"
|
|
26973
|
+
}), method(object({
|
|
26974
|
+
deviceIds: array(number()).min(1).max(200),
|
|
26975
|
+
fromMs: number(),
|
|
26976
|
+
toMs: number()
|
|
26977
|
+
}), array(RecordingAvailabilityForDeviceSchema).readonly(), {
|
|
26978
|
+
kind: "query",
|
|
26979
|
+
auth: "protected"
|
|
26910
26980
|
}), method(object({
|
|
26911
26981
|
deviceId: number(),
|
|
26912
26982
|
fromMs: number(),
|
|
@@ -26915,6 +26985,14 @@ method(object({
|
|
|
26915
26985
|
}), RecordingDaysSchema, {
|
|
26916
26986
|
kind: "query",
|
|
26917
26987
|
auth: "protected"
|
|
26988
|
+
}), method(object({
|
|
26989
|
+
deviceIds: array(number()).min(1).max(200),
|
|
26990
|
+
fromMs: number(),
|
|
26991
|
+
toMs: number(),
|
|
26992
|
+
tzOffsetMinutes: number()
|
|
26993
|
+
}), array(RecordingDaysForDeviceSchema).readonly(), {
|
|
26994
|
+
kind: "query",
|
|
26995
|
+
auth: "protected"
|
|
26918
26996
|
}), method(object({
|
|
26919
26997
|
deviceId: number(),
|
|
26920
26998
|
fromMs: number(),
|
|
@@ -32522,6 +32600,12 @@ Object.freeze({
|
|
|
32522
32600
|
addonId: null,
|
|
32523
32601
|
access: "view"
|
|
32524
32602
|
},
|
|
32603
|
+
"pipelineAnalytics.getEventDensityBatch": {
|
|
32604
|
+
capName: "pipeline-analytics",
|
|
32605
|
+
capScope: "device",
|
|
32606
|
+
addonId: null,
|
|
32607
|
+
access: "view"
|
|
32608
|
+
},
|
|
32525
32609
|
"pipelineAnalytics.getEventMedia": {
|
|
32526
32610
|
capName: "pipeline-analytics",
|
|
32527
32611
|
capScope: "device",
|
|
@@ -33644,12 +33728,24 @@ Object.freeze({
|
|
|
33644
33728
|
addonId: null,
|
|
33645
33729
|
access: "view"
|
|
33646
33730
|
},
|
|
33731
|
+
"recording.getAvailabilityBatch": {
|
|
33732
|
+
capName: "recording",
|
|
33733
|
+
capScope: "system",
|
|
33734
|
+
addonId: null,
|
|
33735
|
+
access: "view"
|
|
33736
|
+
},
|
|
33647
33737
|
"recording.getDaysWithRecordings": {
|
|
33648
33738
|
capName: "recording",
|
|
33649
33739
|
capScope: "system",
|
|
33650
33740
|
addonId: null,
|
|
33651
33741
|
access: "view"
|
|
33652
33742
|
},
|
|
33743
|
+
"recording.getDaysWithRecordingsBatch": {
|
|
33744
|
+
capName: "recording",
|
|
33745
|
+
capScope: "system",
|
|
33746
|
+
addonId: null,
|
|
33747
|
+
access: "view"
|
|
33748
|
+
},
|
|
33653
33749
|
"recording.getDeviceConfig": {
|
|
33654
33750
|
capName: "recording",
|
|
33655
33751
|
capScope: "system",
|
|
@@ -36254,6 +36350,11 @@ Object.freeze({
|
|
|
36254
36350
|
form: "single",
|
|
36255
36351
|
optional: false
|
|
36256
36352
|
}],
|
|
36353
|
+
"pipelineAnalytics.getEventDensityBatch": [{
|
|
36354
|
+
name: "deviceIds",
|
|
36355
|
+
form: "array",
|
|
36356
|
+
optional: false
|
|
36357
|
+
}],
|
|
36257
36358
|
"pipelineAnalytics.getEventMedia": [{
|
|
36258
36359
|
name: "deviceId",
|
|
36259
36360
|
form: "single",
|
|
@@ -36669,11 +36770,21 @@ Object.freeze({
|
|
|
36669
36770
|
form: "single",
|
|
36670
36771
|
optional: false
|
|
36671
36772
|
}],
|
|
36773
|
+
"recording.getAvailabilityBatch": [{
|
|
36774
|
+
name: "deviceIds",
|
|
36775
|
+
form: "array",
|
|
36776
|
+
optional: false
|
|
36777
|
+
}],
|
|
36672
36778
|
"recording.getDaysWithRecordings": [{
|
|
36673
36779
|
name: "deviceId",
|
|
36674
36780
|
form: "single",
|
|
36675
36781
|
optional: false
|
|
36676
36782
|
}],
|
|
36783
|
+
"recording.getDaysWithRecordingsBatch": [{
|
|
36784
|
+
name: "deviceIds",
|
|
36785
|
+
form: "array",
|
|
36786
|
+
optional: false
|
|
36787
|
+
}],
|
|
36677
36788
|
"recording.getDeviceConfig": [{
|
|
36678
36789
|
name: "deviceId",
|
|
36679
36790
|
form: "single",
|