@camstack/addon-provider-reolink 1.2.74 → 1.2.75
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
|
@@ -19814,6 +19814,34 @@ var KeyEventsForDeviceSchema = object({
|
|
|
19814
19814
|
deviceId: number(),
|
|
19815
19815
|
events: array(KeyEventSchema).readonly()
|
|
19816
19816
|
});
|
|
19817
|
+
/** One non-empty bucket of the timeline histogram. */
|
|
19818
|
+
var EventDensityBucketSchema = object({
|
|
19819
|
+
bucketStart: number(),
|
|
19820
|
+
motion: number().int(),
|
|
19821
|
+
object: number().int(),
|
|
19822
|
+
audio: number().int()
|
|
19823
|
+
});
|
|
19824
|
+
/**
|
|
19825
|
+
* One camera's row in a `getEventDensityBatch` answer.
|
|
19826
|
+
*
|
|
19827
|
+
* TWO facts, and the timeline draws them differently:
|
|
19828
|
+
*
|
|
19829
|
+
* - `read: 'read'` — the histogram for this camera. `buckets: []` is a real
|
|
19830
|
+
* claim: read, and nothing happened in the window.
|
|
19831
|
+
* - `read: 'unreadable'` — nobody could answer for this camera. `buckets` is
|
|
19832
|
+
* empty and that emptiness means NOTHING; the timeline must render unknown,
|
|
19833
|
+
* not quiet.
|
|
19834
|
+
*
|
|
19835
|
+
* Fanned out per camera the difference was free — one query rejected while the
|
|
19836
|
+
* others resolved — and collapsing to a batch is the exact moment it is lost
|
|
19837
|
+
* silently. Every requested id gets a row: a caller that asked for twelve and
|
|
19838
|
+
* got eleven cannot tell which one is missing, or that any is.
|
|
19839
|
+
*/
|
|
19840
|
+
var EventDensityForDeviceSchema = object({
|
|
19841
|
+
deviceId: number(),
|
|
19842
|
+
read: _enum(["read", "unreadable"]),
|
|
19843
|
+
buckets: array(EventDensityBucketSchema).readonly()
|
|
19844
|
+
});
|
|
19817
19845
|
object({
|
|
19818
19846
|
trackId: string(),
|
|
19819
19847
|
className: string(),
|
|
@@ -20124,12 +20152,12 @@ DeviceType.Camera, method(object({ deviceId: number() }), array(TrackSchema).rea
|
|
|
20124
20152
|
since: number(),
|
|
20125
20153
|
until: number(),
|
|
20126
20154
|
bucketMs: number().int().positive()
|
|
20127
|
-
}), array(object({
|
|
20128
|
-
|
|
20129
|
-
|
|
20130
|
-
|
|
20131
|
-
|
|
20132
|
-
})).readonly()), method(object({
|
|
20155
|
+
}), array(EventDensityBucketSchema).readonly()), method(object({
|
|
20156
|
+
deviceIds: array(number()).min(1).max(200),
|
|
20157
|
+
since: number(),
|
|
20158
|
+
until: number(),
|
|
20159
|
+
bucketMs: number().int().positive()
|
|
20160
|
+
}), array(EventDensityForDeviceSchema).readonly()), method(object({
|
|
20133
20161
|
deviceId: number(),
|
|
20134
20162
|
cutoffMs: number()
|
|
20135
20163
|
}), object({
|
|
@@ -29345,6 +29373,39 @@ var RecordingDaysSchema = object({
|
|
|
29345
29373
|
/** Local-midnight epochs (UTC ms) of days that have ≥1 recorded segment. */
|
|
29346
29374
|
days: array(number())
|
|
29347
29375
|
});
|
|
29376
|
+
/**
|
|
29377
|
+
* One camera's row in a `getAvailabilityBatch` answer.
|
|
29378
|
+
*
|
|
29379
|
+
* `ranges` is EXACTLY what `getAvailability` returns for that camera — the
|
|
29380
|
+
* batch collapses the transport, not the work — plus the one thing the singular
|
|
29381
|
+
* method never had to say:
|
|
29382
|
+
*
|
|
29383
|
+
* - `read: 'read'` — answered. `ranges: []` means "read, and this camera has
|
|
29384
|
+
* no footage in the window", which is a real claim.
|
|
29385
|
+
* - `read: 'unreadable'` — the recorder could not answer for this camera (its
|
|
29386
|
+
* calendar rung threw, its location is unmounted). `ranges` is empty and
|
|
29387
|
+
* that emptiness means NOTHING.
|
|
29388
|
+
*
|
|
29389
|
+
* A timeline that renders the second as the first tells an operator there is no
|
|
29390
|
+
* footage when the truth is that nobody looked.
|
|
29391
|
+
*/
|
|
29392
|
+
var RecordingAvailabilityForDeviceSchema = object({
|
|
29393
|
+
deviceId: number(),
|
|
29394
|
+
read: _enum(["read", "unreadable"]),
|
|
29395
|
+
ranges: array(RecordingRangeSchema).readonly()
|
|
29396
|
+
});
|
|
29397
|
+
/**
|
|
29398
|
+
* One camera's row in a `getDaysWithRecordingsBatch` answer. Same rule as
|
|
29399
|
+
* {@link RecordingAvailabilityForDeviceSchema}: `days: []` on a `'read'` row is
|
|
29400
|
+
* "no footage in this month", `read: 'unreadable'` is "nobody could look", and
|
|
29401
|
+
* the date-picker's day dots must not spell them the same.
|
|
29402
|
+
*/
|
|
29403
|
+
var RecordingDaysForDeviceSchema = object({
|
|
29404
|
+
deviceId: number(),
|
|
29405
|
+
read: _enum(["read", "unreadable"]),
|
|
29406
|
+
/** Local-midnight epochs (UTC ms) of days that have ≥1 recorded segment. */
|
|
29407
|
+
days: array(number()).readonly()
|
|
29408
|
+
});
|
|
29348
29409
|
var RecordingManifestSchema = object({
|
|
29349
29410
|
deviceId: number(),
|
|
29350
29411
|
/** Local filesystem path to the master playlist; null when no recording exists for the requested range. */
|
|
@@ -29579,6 +29640,13 @@ method(object({
|
|
|
29579
29640
|
}), RecordingAvailabilitySchema, {
|
|
29580
29641
|
kind: "query",
|
|
29581
29642
|
auth: "protected"
|
|
29643
|
+
}), method(object({
|
|
29644
|
+
deviceIds: array(number()).min(1).max(200),
|
|
29645
|
+
fromMs: number(),
|
|
29646
|
+
toMs: number()
|
|
29647
|
+
}), array(RecordingAvailabilityForDeviceSchema).readonly(), {
|
|
29648
|
+
kind: "query",
|
|
29649
|
+
auth: "protected"
|
|
29582
29650
|
}), method(object({
|
|
29583
29651
|
deviceId: number(),
|
|
29584
29652
|
fromMs: number(),
|
|
@@ -29587,6 +29655,14 @@ method(object({
|
|
|
29587
29655
|
}), RecordingDaysSchema, {
|
|
29588
29656
|
kind: "query",
|
|
29589
29657
|
auth: "protected"
|
|
29658
|
+
}), method(object({
|
|
29659
|
+
deviceIds: array(number()).min(1).max(200),
|
|
29660
|
+
fromMs: number(),
|
|
29661
|
+
toMs: number(),
|
|
29662
|
+
tzOffsetMinutes: number()
|
|
29663
|
+
}), array(RecordingDaysForDeviceSchema).readonly(), {
|
|
29664
|
+
kind: "query",
|
|
29665
|
+
auth: "protected"
|
|
29590
29666
|
}), method(object({
|
|
29591
29667
|
deviceId: number(),
|
|
29592
29668
|
fromMs: number(),
|
|
@@ -36848,6 +36924,12 @@ Object.freeze({
|
|
|
36848
36924
|
addonId: null,
|
|
36849
36925
|
access: "view"
|
|
36850
36926
|
},
|
|
36927
|
+
"pipelineAnalytics.getEventDensityBatch": {
|
|
36928
|
+
capName: "pipeline-analytics",
|
|
36929
|
+
capScope: "device",
|
|
36930
|
+
addonId: null,
|
|
36931
|
+
access: "view"
|
|
36932
|
+
},
|
|
36851
36933
|
"pipelineAnalytics.getEventMedia": {
|
|
36852
36934
|
capName: "pipeline-analytics",
|
|
36853
36935
|
capScope: "device",
|
|
@@ -37970,12 +38052,24 @@ Object.freeze({
|
|
|
37970
38052
|
addonId: null,
|
|
37971
38053
|
access: "view"
|
|
37972
38054
|
},
|
|
38055
|
+
"recording.getAvailabilityBatch": {
|
|
38056
|
+
capName: "recording",
|
|
38057
|
+
capScope: "system",
|
|
38058
|
+
addonId: null,
|
|
38059
|
+
access: "view"
|
|
38060
|
+
},
|
|
37973
38061
|
"recording.getDaysWithRecordings": {
|
|
37974
38062
|
capName: "recording",
|
|
37975
38063
|
capScope: "system",
|
|
37976
38064
|
addonId: null,
|
|
37977
38065
|
access: "view"
|
|
37978
38066
|
},
|
|
38067
|
+
"recording.getDaysWithRecordingsBatch": {
|
|
38068
|
+
capName: "recording",
|
|
38069
|
+
capScope: "system",
|
|
38070
|
+
addonId: null,
|
|
38071
|
+
access: "view"
|
|
38072
|
+
},
|
|
37979
38073
|
"recording.getDeviceConfig": {
|
|
37980
38074
|
capName: "recording",
|
|
37981
38075
|
capScope: "system",
|
|
@@ -40580,6 +40674,11 @@ Object.freeze({
|
|
|
40580
40674
|
form: "single",
|
|
40581
40675
|
optional: false
|
|
40582
40676
|
}],
|
|
40677
|
+
"pipelineAnalytics.getEventDensityBatch": [{
|
|
40678
|
+
name: "deviceIds",
|
|
40679
|
+
form: "array",
|
|
40680
|
+
optional: false
|
|
40681
|
+
}],
|
|
40583
40682
|
"pipelineAnalytics.getEventMedia": [{
|
|
40584
40683
|
name: "deviceId",
|
|
40585
40684
|
form: "single",
|
|
@@ -40995,11 +41094,21 @@ Object.freeze({
|
|
|
40995
41094
|
form: "single",
|
|
40996
41095
|
optional: false
|
|
40997
41096
|
}],
|
|
41097
|
+
"recording.getAvailabilityBatch": [{
|
|
41098
|
+
name: "deviceIds",
|
|
41099
|
+
form: "array",
|
|
41100
|
+
optional: false
|
|
41101
|
+
}],
|
|
40998
41102
|
"recording.getDaysWithRecordings": [{
|
|
40999
41103
|
name: "deviceId",
|
|
41000
41104
|
form: "single",
|
|
41001
41105
|
optional: false
|
|
41002
41106
|
}],
|
|
41107
|
+
"recording.getDaysWithRecordingsBatch": [{
|
|
41108
|
+
name: "deviceIds",
|
|
41109
|
+
form: "array",
|
|
41110
|
+
optional: false
|
|
41111
|
+
}],
|
|
41003
41112
|
"recording.getDeviceConfig": [{
|
|
41004
41113
|
name: "deviceId",
|
|
41005
41114
|
form: "single",
|
package/dist/addon.mjs
CHANGED
|
@@ -19809,6 +19809,34 @@ var KeyEventsForDeviceSchema = object({
|
|
|
19809
19809
|
deviceId: number(),
|
|
19810
19810
|
events: array(KeyEventSchema).readonly()
|
|
19811
19811
|
});
|
|
19812
|
+
/** One non-empty bucket of the timeline histogram. */
|
|
19813
|
+
var EventDensityBucketSchema = object({
|
|
19814
|
+
bucketStart: number(),
|
|
19815
|
+
motion: number().int(),
|
|
19816
|
+
object: number().int(),
|
|
19817
|
+
audio: number().int()
|
|
19818
|
+
});
|
|
19819
|
+
/**
|
|
19820
|
+
* One camera's row in a `getEventDensityBatch` answer.
|
|
19821
|
+
*
|
|
19822
|
+
* TWO facts, and the timeline draws them differently:
|
|
19823
|
+
*
|
|
19824
|
+
* - `read: 'read'` — the histogram for this camera. `buckets: []` is a real
|
|
19825
|
+
* claim: read, and nothing happened in the window.
|
|
19826
|
+
* - `read: 'unreadable'` — nobody could answer for this camera. `buckets` is
|
|
19827
|
+
* empty and that emptiness means NOTHING; the timeline must render unknown,
|
|
19828
|
+
* not quiet.
|
|
19829
|
+
*
|
|
19830
|
+
* Fanned out per camera the difference was free — one query rejected while the
|
|
19831
|
+
* others resolved — and collapsing to a batch is the exact moment it is lost
|
|
19832
|
+
* silently. Every requested id gets a row: a caller that asked for twelve and
|
|
19833
|
+
* got eleven cannot tell which one is missing, or that any is.
|
|
19834
|
+
*/
|
|
19835
|
+
var EventDensityForDeviceSchema = object({
|
|
19836
|
+
deviceId: number(),
|
|
19837
|
+
read: _enum(["read", "unreadable"]),
|
|
19838
|
+
buckets: array(EventDensityBucketSchema).readonly()
|
|
19839
|
+
});
|
|
19812
19840
|
object({
|
|
19813
19841
|
trackId: string(),
|
|
19814
19842
|
className: string(),
|
|
@@ -20119,12 +20147,12 @@ DeviceType.Camera, method(object({ deviceId: number() }), array(TrackSchema).rea
|
|
|
20119
20147
|
since: number(),
|
|
20120
20148
|
until: number(),
|
|
20121
20149
|
bucketMs: number().int().positive()
|
|
20122
|
-
}), array(object({
|
|
20123
|
-
|
|
20124
|
-
|
|
20125
|
-
|
|
20126
|
-
|
|
20127
|
-
})).readonly()), method(object({
|
|
20150
|
+
}), array(EventDensityBucketSchema).readonly()), method(object({
|
|
20151
|
+
deviceIds: array(number()).min(1).max(200),
|
|
20152
|
+
since: number(),
|
|
20153
|
+
until: number(),
|
|
20154
|
+
bucketMs: number().int().positive()
|
|
20155
|
+
}), array(EventDensityForDeviceSchema).readonly()), method(object({
|
|
20128
20156
|
deviceId: number(),
|
|
20129
20157
|
cutoffMs: number()
|
|
20130
20158
|
}), object({
|
|
@@ -29340,6 +29368,39 @@ var RecordingDaysSchema = object({
|
|
|
29340
29368
|
/** Local-midnight epochs (UTC ms) of days that have ≥1 recorded segment. */
|
|
29341
29369
|
days: array(number())
|
|
29342
29370
|
});
|
|
29371
|
+
/**
|
|
29372
|
+
* One camera's row in a `getAvailabilityBatch` answer.
|
|
29373
|
+
*
|
|
29374
|
+
* `ranges` is EXACTLY what `getAvailability` returns for that camera — the
|
|
29375
|
+
* batch collapses the transport, not the work — plus the one thing the singular
|
|
29376
|
+
* method never had to say:
|
|
29377
|
+
*
|
|
29378
|
+
* - `read: 'read'` — answered. `ranges: []` means "read, and this camera has
|
|
29379
|
+
* no footage in the window", which is a real claim.
|
|
29380
|
+
* - `read: 'unreadable'` — the recorder could not answer for this camera (its
|
|
29381
|
+
* calendar rung threw, its location is unmounted). `ranges` is empty and
|
|
29382
|
+
* that emptiness means NOTHING.
|
|
29383
|
+
*
|
|
29384
|
+
* A timeline that renders the second as the first tells an operator there is no
|
|
29385
|
+
* footage when the truth is that nobody looked.
|
|
29386
|
+
*/
|
|
29387
|
+
var RecordingAvailabilityForDeviceSchema = object({
|
|
29388
|
+
deviceId: number(),
|
|
29389
|
+
read: _enum(["read", "unreadable"]),
|
|
29390
|
+
ranges: array(RecordingRangeSchema).readonly()
|
|
29391
|
+
});
|
|
29392
|
+
/**
|
|
29393
|
+
* One camera's row in a `getDaysWithRecordingsBatch` answer. Same rule as
|
|
29394
|
+
* {@link RecordingAvailabilityForDeviceSchema}: `days: []` on a `'read'` row is
|
|
29395
|
+
* "no footage in this month", `read: 'unreadable'` is "nobody could look", and
|
|
29396
|
+
* the date-picker's day dots must not spell them the same.
|
|
29397
|
+
*/
|
|
29398
|
+
var RecordingDaysForDeviceSchema = object({
|
|
29399
|
+
deviceId: number(),
|
|
29400
|
+
read: _enum(["read", "unreadable"]),
|
|
29401
|
+
/** Local-midnight epochs (UTC ms) of days that have ≥1 recorded segment. */
|
|
29402
|
+
days: array(number()).readonly()
|
|
29403
|
+
});
|
|
29343
29404
|
var RecordingManifestSchema = object({
|
|
29344
29405
|
deviceId: number(),
|
|
29345
29406
|
/** Local filesystem path to the master playlist; null when no recording exists for the requested range. */
|
|
@@ -29574,6 +29635,13 @@ method(object({
|
|
|
29574
29635
|
}), RecordingAvailabilitySchema, {
|
|
29575
29636
|
kind: "query",
|
|
29576
29637
|
auth: "protected"
|
|
29638
|
+
}), method(object({
|
|
29639
|
+
deviceIds: array(number()).min(1).max(200),
|
|
29640
|
+
fromMs: number(),
|
|
29641
|
+
toMs: number()
|
|
29642
|
+
}), array(RecordingAvailabilityForDeviceSchema).readonly(), {
|
|
29643
|
+
kind: "query",
|
|
29644
|
+
auth: "protected"
|
|
29577
29645
|
}), method(object({
|
|
29578
29646
|
deviceId: number(),
|
|
29579
29647
|
fromMs: number(),
|
|
@@ -29582,6 +29650,14 @@ method(object({
|
|
|
29582
29650
|
}), RecordingDaysSchema, {
|
|
29583
29651
|
kind: "query",
|
|
29584
29652
|
auth: "protected"
|
|
29653
|
+
}), method(object({
|
|
29654
|
+
deviceIds: array(number()).min(1).max(200),
|
|
29655
|
+
fromMs: number(),
|
|
29656
|
+
toMs: number(),
|
|
29657
|
+
tzOffsetMinutes: number()
|
|
29658
|
+
}), array(RecordingDaysForDeviceSchema).readonly(), {
|
|
29659
|
+
kind: "query",
|
|
29660
|
+
auth: "protected"
|
|
29585
29661
|
}), method(object({
|
|
29586
29662
|
deviceId: number(),
|
|
29587
29663
|
fromMs: number(),
|
|
@@ -36843,6 +36919,12 @@ Object.freeze({
|
|
|
36843
36919
|
addonId: null,
|
|
36844
36920
|
access: "view"
|
|
36845
36921
|
},
|
|
36922
|
+
"pipelineAnalytics.getEventDensityBatch": {
|
|
36923
|
+
capName: "pipeline-analytics",
|
|
36924
|
+
capScope: "device",
|
|
36925
|
+
addonId: null,
|
|
36926
|
+
access: "view"
|
|
36927
|
+
},
|
|
36846
36928
|
"pipelineAnalytics.getEventMedia": {
|
|
36847
36929
|
capName: "pipeline-analytics",
|
|
36848
36930
|
capScope: "device",
|
|
@@ -37965,12 +38047,24 @@ Object.freeze({
|
|
|
37965
38047
|
addonId: null,
|
|
37966
38048
|
access: "view"
|
|
37967
38049
|
},
|
|
38050
|
+
"recording.getAvailabilityBatch": {
|
|
38051
|
+
capName: "recording",
|
|
38052
|
+
capScope: "system",
|
|
38053
|
+
addonId: null,
|
|
38054
|
+
access: "view"
|
|
38055
|
+
},
|
|
37968
38056
|
"recording.getDaysWithRecordings": {
|
|
37969
38057
|
capName: "recording",
|
|
37970
38058
|
capScope: "system",
|
|
37971
38059
|
addonId: null,
|
|
37972
38060
|
access: "view"
|
|
37973
38061
|
},
|
|
38062
|
+
"recording.getDaysWithRecordingsBatch": {
|
|
38063
|
+
capName: "recording",
|
|
38064
|
+
capScope: "system",
|
|
38065
|
+
addonId: null,
|
|
38066
|
+
access: "view"
|
|
38067
|
+
},
|
|
37974
38068
|
"recording.getDeviceConfig": {
|
|
37975
38069
|
capName: "recording",
|
|
37976
38070
|
capScope: "system",
|
|
@@ -40575,6 +40669,11 @@ Object.freeze({
|
|
|
40575
40669
|
form: "single",
|
|
40576
40670
|
optional: false
|
|
40577
40671
|
}],
|
|
40672
|
+
"pipelineAnalytics.getEventDensityBatch": [{
|
|
40673
|
+
name: "deviceIds",
|
|
40674
|
+
form: "array",
|
|
40675
|
+
optional: false
|
|
40676
|
+
}],
|
|
40578
40677
|
"pipelineAnalytics.getEventMedia": [{
|
|
40579
40678
|
name: "deviceId",
|
|
40580
40679
|
form: "single",
|
|
@@ -40990,11 +41089,21 @@ Object.freeze({
|
|
|
40990
41089
|
form: "single",
|
|
40991
41090
|
optional: false
|
|
40992
41091
|
}],
|
|
41092
|
+
"recording.getAvailabilityBatch": [{
|
|
41093
|
+
name: "deviceIds",
|
|
41094
|
+
form: "array",
|
|
41095
|
+
optional: false
|
|
41096
|
+
}],
|
|
40993
41097
|
"recording.getDaysWithRecordings": [{
|
|
40994
41098
|
name: "deviceId",
|
|
40995
41099
|
form: "single",
|
|
40996
41100
|
optional: false
|
|
40997
41101
|
}],
|
|
41102
|
+
"recording.getDaysWithRecordingsBatch": [{
|
|
41103
|
+
name: "deviceIds",
|
|
41104
|
+
form: "array",
|
|
41105
|
+
optional: false
|
|
41106
|
+
}],
|
|
40998
41107
|
"recording.getDeviceConfig": [{
|
|
40999
41108
|
name: "deviceId",
|
|
41000
41109
|
form: "single",
|