@camstack/addon-provider-wyze 0.2.55 → 0.2.56
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
|
@@ -19240,6 +19240,34 @@ var KeyEventsForDeviceSchema = object({
|
|
|
19240
19240
|
deviceId: number(),
|
|
19241
19241
|
events: array(KeyEventSchema).readonly()
|
|
19242
19242
|
});
|
|
19243
|
+
/** One non-empty bucket of the timeline histogram. */
|
|
19244
|
+
var EventDensityBucketSchema = object({
|
|
19245
|
+
bucketStart: number(),
|
|
19246
|
+
motion: number().int(),
|
|
19247
|
+
object: number().int(),
|
|
19248
|
+
audio: number().int()
|
|
19249
|
+
});
|
|
19250
|
+
/**
|
|
19251
|
+
* One camera's row in a `getEventDensityBatch` answer.
|
|
19252
|
+
*
|
|
19253
|
+
* TWO facts, and the timeline draws them differently:
|
|
19254
|
+
*
|
|
19255
|
+
* - `read: 'read'` — the histogram for this camera. `buckets: []` is a real
|
|
19256
|
+
* claim: read, and nothing happened in the window.
|
|
19257
|
+
* - `read: 'unreadable'` — nobody could answer for this camera. `buckets` is
|
|
19258
|
+
* empty and that emptiness means NOTHING; the timeline must render unknown,
|
|
19259
|
+
* not quiet.
|
|
19260
|
+
*
|
|
19261
|
+
* Fanned out per camera the difference was free — one query rejected while the
|
|
19262
|
+
* others resolved — and collapsing to a batch is the exact moment it is lost
|
|
19263
|
+
* silently. Every requested id gets a row: a caller that asked for twelve and
|
|
19264
|
+
* got eleven cannot tell which one is missing, or that any is.
|
|
19265
|
+
*/
|
|
19266
|
+
var EventDensityForDeviceSchema = object({
|
|
19267
|
+
deviceId: number(),
|
|
19268
|
+
read: _enum(["read", "unreadable"]),
|
|
19269
|
+
buckets: array(EventDensityBucketSchema).readonly()
|
|
19270
|
+
});
|
|
19243
19271
|
object({
|
|
19244
19272
|
trackId: string(),
|
|
19245
19273
|
className: string(),
|
|
@@ -19550,12 +19578,12 @@ DeviceType.Camera, method(object({ deviceId: number() }), array(TrackSchema).rea
|
|
|
19550
19578
|
since: number(),
|
|
19551
19579
|
until: number(),
|
|
19552
19580
|
bucketMs: number().int().positive()
|
|
19553
|
-
}), array(object({
|
|
19554
|
-
|
|
19555
|
-
|
|
19556
|
-
|
|
19557
|
-
|
|
19558
|
-
})).readonly()), method(object({
|
|
19581
|
+
}), array(EventDensityBucketSchema).readonly()), method(object({
|
|
19582
|
+
deviceIds: array(number()).min(1).max(200),
|
|
19583
|
+
since: number(),
|
|
19584
|
+
until: number(),
|
|
19585
|
+
bucketMs: number().int().positive()
|
|
19586
|
+
}), array(EventDensityForDeviceSchema).readonly()), method(object({
|
|
19559
19587
|
deviceId: number(),
|
|
19560
19588
|
cutoffMs: number()
|
|
19561
19589
|
}), object({
|
|
@@ -28692,6 +28720,39 @@ var RecordingDaysSchema = object({
|
|
|
28692
28720
|
/** Local-midnight epochs (UTC ms) of days that have ≥1 recorded segment. */
|
|
28693
28721
|
days: array(number())
|
|
28694
28722
|
});
|
|
28723
|
+
/**
|
|
28724
|
+
* One camera's row in a `getAvailabilityBatch` answer.
|
|
28725
|
+
*
|
|
28726
|
+
* `ranges` is EXACTLY what `getAvailability` returns for that camera — the
|
|
28727
|
+
* batch collapses the transport, not the work — plus the one thing the singular
|
|
28728
|
+
* method never had to say:
|
|
28729
|
+
*
|
|
28730
|
+
* - `read: 'read'` — answered. `ranges: []` means "read, and this camera has
|
|
28731
|
+
* no footage in the window", which is a real claim.
|
|
28732
|
+
* - `read: 'unreadable'` — the recorder could not answer for this camera (its
|
|
28733
|
+
* calendar rung threw, its location is unmounted). `ranges` is empty and
|
|
28734
|
+
* that emptiness means NOTHING.
|
|
28735
|
+
*
|
|
28736
|
+
* A timeline that renders the second as the first tells an operator there is no
|
|
28737
|
+
* footage when the truth is that nobody looked.
|
|
28738
|
+
*/
|
|
28739
|
+
var RecordingAvailabilityForDeviceSchema = object({
|
|
28740
|
+
deviceId: number(),
|
|
28741
|
+
read: _enum(["read", "unreadable"]),
|
|
28742
|
+
ranges: array(RecordingRangeSchema).readonly()
|
|
28743
|
+
});
|
|
28744
|
+
/**
|
|
28745
|
+
* One camera's row in a `getDaysWithRecordingsBatch` answer. Same rule as
|
|
28746
|
+
* {@link RecordingAvailabilityForDeviceSchema}: `days: []` on a `'read'` row is
|
|
28747
|
+
* "no footage in this month", `read: 'unreadable'` is "nobody could look", and
|
|
28748
|
+
* the date-picker's day dots must not spell them the same.
|
|
28749
|
+
*/
|
|
28750
|
+
var RecordingDaysForDeviceSchema = object({
|
|
28751
|
+
deviceId: number(),
|
|
28752
|
+
read: _enum(["read", "unreadable"]),
|
|
28753
|
+
/** Local-midnight epochs (UTC ms) of days that have ≥1 recorded segment. */
|
|
28754
|
+
days: array(number()).readonly()
|
|
28755
|
+
});
|
|
28695
28756
|
var RecordingManifestSchema = object({
|
|
28696
28757
|
deviceId: number(),
|
|
28697
28758
|
/** Local filesystem path to the master playlist; null when no recording exists for the requested range. */
|
|
@@ -28926,6 +28987,13 @@ method(object({
|
|
|
28926
28987
|
}), RecordingAvailabilitySchema, {
|
|
28927
28988
|
kind: "query",
|
|
28928
28989
|
auth: "protected"
|
|
28990
|
+
}), method(object({
|
|
28991
|
+
deviceIds: array(number()).min(1).max(200),
|
|
28992
|
+
fromMs: number(),
|
|
28993
|
+
toMs: number()
|
|
28994
|
+
}), array(RecordingAvailabilityForDeviceSchema).readonly(), {
|
|
28995
|
+
kind: "query",
|
|
28996
|
+
auth: "protected"
|
|
28929
28997
|
}), method(object({
|
|
28930
28998
|
deviceId: number(),
|
|
28931
28999
|
fromMs: number(),
|
|
@@ -28934,6 +29002,14 @@ method(object({
|
|
|
28934
29002
|
}), RecordingDaysSchema, {
|
|
28935
29003
|
kind: "query",
|
|
28936
29004
|
auth: "protected"
|
|
29005
|
+
}), method(object({
|
|
29006
|
+
deviceIds: array(number()).min(1).max(200),
|
|
29007
|
+
fromMs: number(),
|
|
29008
|
+
toMs: number(),
|
|
29009
|
+
tzOffsetMinutes: number()
|
|
29010
|
+
}), array(RecordingDaysForDeviceSchema).readonly(), {
|
|
29011
|
+
kind: "query",
|
|
29012
|
+
auth: "protected"
|
|
28937
29013
|
}), method(object({
|
|
28938
29014
|
deviceId: number(),
|
|
28939
29015
|
fromMs: number(),
|
|
@@ -35830,6 +35906,12 @@ Object.freeze({
|
|
|
35830
35906
|
addonId: null,
|
|
35831
35907
|
access: "view"
|
|
35832
35908
|
},
|
|
35909
|
+
"pipelineAnalytics.getEventDensityBatch": {
|
|
35910
|
+
capName: "pipeline-analytics",
|
|
35911
|
+
capScope: "device",
|
|
35912
|
+
addonId: null,
|
|
35913
|
+
access: "view"
|
|
35914
|
+
},
|
|
35833
35915
|
"pipelineAnalytics.getEventMedia": {
|
|
35834
35916
|
capName: "pipeline-analytics",
|
|
35835
35917
|
capScope: "device",
|
|
@@ -36952,12 +37034,24 @@ Object.freeze({
|
|
|
36952
37034
|
addonId: null,
|
|
36953
37035
|
access: "view"
|
|
36954
37036
|
},
|
|
37037
|
+
"recording.getAvailabilityBatch": {
|
|
37038
|
+
capName: "recording",
|
|
37039
|
+
capScope: "system",
|
|
37040
|
+
addonId: null,
|
|
37041
|
+
access: "view"
|
|
37042
|
+
},
|
|
36955
37043
|
"recording.getDaysWithRecordings": {
|
|
36956
37044
|
capName: "recording",
|
|
36957
37045
|
capScope: "system",
|
|
36958
37046
|
addonId: null,
|
|
36959
37047
|
access: "view"
|
|
36960
37048
|
},
|
|
37049
|
+
"recording.getDaysWithRecordingsBatch": {
|
|
37050
|
+
capName: "recording",
|
|
37051
|
+
capScope: "system",
|
|
37052
|
+
addonId: null,
|
|
37053
|
+
access: "view"
|
|
37054
|
+
},
|
|
36961
37055
|
"recording.getDeviceConfig": {
|
|
36962
37056
|
capName: "recording",
|
|
36963
37057
|
capScope: "system",
|
|
@@ -39562,6 +39656,11 @@ Object.freeze({
|
|
|
39562
39656
|
form: "single",
|
|
39563
39657
|
optional: false
|
|
39564
39658
|
}],
|
|
39659
|
+
"pipelineAnalytics.getEventDensityBatch": [{
|
|
39660
|
+
name: "deviceIds",
|
|
39661
|
+
form: "array",
|
|
39662
|
+
optional: false
|
|
39663
|
+
}],
|
|
39565
39664
|
"pipelineAnalytics.getEventMedia": [{
|
|
39566
39665
|
name: "deviceId",
|
|
39567
39666
|
form: "single",
|
|
@@ -39977,11 +40076,21 @@ Object.freeze({
|
|
|
39977
40076
|
form: "single",
|
|
39978
40077
|
optional: false
|
|
39979
40078
|
}],
|
|
40079
|
+
"recording.getAvailabilityBatch": [{
|
|
40080
|
+
name: "deviceIds",
|
|
40081
|
+
form: "array",
|
|
40082
|
+
optional: false
|
|
40083
|
+
}],
|
|
39980
40084
|
"recording.getDaysWithRecordings": [{
|
|
39981
40085
|
name: "deviceId",
|
|
39982
40086
|
form: "single",
|
|
39983
40087
|
optional: false
|
|
39984
40088
|
}],
|
|
40089
|
+
"recording.getDaysWithRecordingsBatch": [{
|
|
40090
|
+
name: "deviceIds",
|
|
40091
|
+
form: "array",
|
|
40092
|
+
optional: false
|
|
40093
|
+
}],
|
|
39985
40094
|
"recording.getDeviceConfig": [{
|
|
39986
40095
|
name: "deviceId",
|
|
39987
40096
|
form: "single",
|
package/dist/addon.mjs
CHANGED
|
@@ -19219,6 +19219,34 @@ var KeyEventsForDeviceSchema = object({
|
|
|
19219
19219
|
deviceId: number(),
|
|
19220
19220
|
events: array(KeyEventSchema).readonly()
|
|
19221
19221
|
});
|
|
19222
|
+
/** One non-empty bucket of the timeline histogram. */
|
|
19223
|
+
var EventDensityBucketSchema = object({
|
|
19224
|
+
bucketStart: number(),
|
|
19225
|
+
motion: number().int(),
|
|
19226
|
+
object: number().int(),
|
|
19227
|
+
audio: number().int()
|
|
19228
|
+
});
|
|
19229
|
+
/**
|
|
19230
|
+
* One camera's row in a `getEventDensityBatch` answer.
|
|
19231
|
+
*
|
|
19232
|
+
* TWO facts, and the timeline draws them differently:
|
|
19233
|
+
*
|
|
19234
|
+
* - `read: 'read'` — the histogram for this camera. `buckets: []` is a real
|
|
19235
|
+
* claim: read, and nothing happened in the window.
|
|
19236
|
+
* - `read: 'unreadable'` — nobody could answer for this camera. `buckets` is
|
|
19237
|
+
* empty and that emptiness means NOTHING; the timeline must render unknown,
|
|
19238
|
+
* not quiet.
|
|
19239
|
+
*
|
|
19240
|
+
* Fanned out per camera the difference was free — one query rejected while the
|
|
19241
|
+
* others resolved — and collapsing to a batch is the exact moment it is lost
|
|
19242
|
+
* silently. Every requested id gets a row: a caller that asked for twelve and
|
|
19243
|
+
* got eleven cannot tell which one is missing, or that any is.
|
|
19244
|
+
*/
|
|
19245
|
+
var EventDensityForDeviceSchema = object({
|
|
19246
|
+
deviceId: number(),
|
|
19247
|
+
read: _enum(["read", "unreadable"]),
|
|
19248
|
+
buckets: array(EventDensityBucketSchema).readonly()
|
|
19249
|
+
});
|
|
19222
19250
|
object({
|
|
19223
19251
|
trackId: string(),
|
|
19224
19252
|
className: string(),
|
|
@@ -19529,12 +19557,12 @@ DeviceType.Camera, method(object({ deviceId: number() }), array(TrackSchema).rea
|
|
|
19529
19557
|
since: number(),
|
|
19530
19558
|
until: number(),
|
|
19531
19559
|
bucketMs: number().int().positive()
|
|
19532
|
-
}), array(object({
|
|
19533
|
-
|
|
19534
|
-
|
|
19535
|
-
|
|
19536
|
-
|
|
19537
|
-
})).readonly()), method(object({
|
|
19560
|
+
}), array(EventDensityBucketSchema).readonly()), method(object({
|
|
19561
|
+
deviceIds: array(number()).min(1).max(200),
|
|
19562
|
+
since: number(),
|
|
19563
|
+
until: number(),
|
|
19564
|
+
bucketMs: number().int().positive()
|
|
19565
|
+
}), array(EventDensityForDeviceSchema).readonly()), method(object({
|
|
19538
19566
|
deviceId: number(),
|
|
19539
19567
|
cutoffMs: number()
|
|
19540
19568
|
}), object({
|
|
@@ -28671,6 +28699,39 @@ var RecordingDaysSchema = object({
|
|
|
28671
28699
|
/** Local-midnight epochs (UTC ms) of days that have ≥1 recorded segment. */
|
|
28672
28700
|
days: array(number())
|
|
28673
28701
|
});
|
|
28702
|
+
/**
|
|
28703
|
+
* One camera's row in a `getAvailabilityBatch` answer.
|
|
28704
|
+
*
|
|
28705
|
+
* `ranges` is EXACTLY what `getAvailability` returns for that camera — the
|
|
28706
|
+
* batch collapses the transport, not the work — plus the one thing the singular
|
|
28707
|
+
* method never had to say:
|
|
28708
|
+
*
|
|
28709
|
+
* - `read: 'read'` — answered. `ranges: []` means "read, and this camera has
|
|
28710
|
+
* no footage in the window", which is a real claim.
|
|
28711
|
+
* - `read: 'unreadable'` — the recorder could not answer for this camera (its
|
|
28712
|
+
* calendar rung threw, its location is unmounted). `ranges` is empty and
|
|
28713
|
+
* that emptiness means NOTHING.
|
|
28714
|
+
*
|
|
28715
|
+
* A timeline that renders the second as the first tells an operator there is no
|
|
28716
|
+
* footage when the truth is that nobody looked.
|
|
28717
|
+
*/
|
|
28718
|
+
var RecordingAvailabilityForDeviceSchema = object({
|
|
28719
|
+
deviceId: number(),
|
|
28720
|
+
read: _enum(["read", "unreadable"]),
|
|
28721
|
+
ranges: array(RecordingRangeSchema).readonly()
|
|
28722
|
+
});
|
|
28723
|
+
/**
|
|
28724
|
+
* One camera's row in a `getDaysWithRecordingsBatch` answer. Same rule as
|
|
28725
|
+
* {@link RecordingAvailabilityForDeviceSchema}: `days: []` on a `'read'` row is
|
|
28726
|
+
* "no footage in this month", `read: 'unreadable'` is "nobody could look", and
|
|
28727
|
+
* the date-picker's day dots must not spell them the same.
|
|
28728
|
+
*/
|
|
28729
|
+
var RecordingDaysForDeviceSchema = object({
|
|
28730
|
+
deviceId: number(),
|
|
28731
|
+
read: _enum(["read", "unreadable"]),
|
|
28732
|
+
/** Local-midnight epochs (UTC ms) of days that have ≥1 recorded segment. */
|
|
28733
|
+
days: array(number()).readonly()
|
|
28734
|
+
});
|
|
28674
28735
|
var RecordingManifestSchema = object({
|
|
28675
28736
|
deviceId: number(),
|
|
28676
28737
|
/** Local filesystem path to the master playlist; null when no recording exists for the requested range. */
|
|
@@ -28905,6 +28966,13 @@ method(object({
|
|
|
28905
28966
|
}), RecordingAvailabilitySchema, {
|
|
28906
28967
|
kind: "query",
|
|
28907
28968
|
auth: "protected"
|
|
28969
|
+
}), method(object({
|
|
28970
|
+
deviceIds: array(number()).min(1).max(200),
|
|
28971
|
+
fromMs: number(),
|
|
28972
|
+
toMs: number()
|
|
28973
|
+
}), array(RecordingAvailabilityForDeviceSchema).readonly(), {
|
|
28974
|
+
kind: "query",
|
|
28975
|
+
auth: "protected"
|
|
28908
28976
|
}), method(object({
|
|
28909
28977
|
deviceId: number(),
|
|
28910
28978
|
fromMs: number(),
|
|
@@ -28913,6 +28981,14 @@ method(object({
|
|
|
28913
28981
|
}), RecordingDaysSchema, {
|
|
28914
28982
|
kind: "query",
|
|
28915
28983
|
auth: "protected"
|
|
28984
|
+
}), method(object({
|
|
28985
|
+
deviceIds: array(number()).min(1).max(200),
|
|
28986
|
+
fromMs: number(),
|
|
28987
|
+
toMs: number(),
|
|
28988
|
+
tzOffsetMinutes: number()
|
|
28989
|
+
}), array(RecordingDaysForDeviceSchema).readonly(), {
|
|
28990
|
+
kind: "query",
|
|
28991
|
+
auth: "protected"
|
|
28916
28992
|
}), method(object({
|
|
28917
28993
|
deviceId: number(),
|
|
28918
28994
|
fromMs: number(),
|
|
@@ -35809,6 +35885,12 @@ Object.freeze({
|
|
|
35809
35885
|
addonId: null,
|
|
35810
35886
|
access: "view"
|
|
35811
35887
|
},
|
|
35888
|
+
"pipelineAnalytics.getEventDensityBatch": {
|
|
35889
|
+
capName: "pipeline-analytics",
|
|
35890
|
+
capScope: "device",
|
|
35891
|
+
addonId: null,
|
|
35892
|
+
access: "view"
|
|
35893
|
+
},
|
|
35812
35894
|
"pipelineAnalytics.getEventMedia": {
|
|
35813
35895
|
capName: "pipeline-analytics",
|
|
35814
35896
|
capScope: "device",
|
|
@@ -36931,12 +37013,24 @@ Object.freeze({
|
|
|
36931
37013
|
addonId: null,
|
|
36932
37014
|
access: "view"
|
|
36933
37015
|
},
|
|
37016
|
+
"recording.getAvailabilityBatch": {
|
|
37017
|
+
capName: "recording",
|
|
37018
|
+
capScope: "system",
|
|
37019
|
+
addonId: null,
|
|
37020
|
+
access: "view"
|
|
37021
|
+
},
|
|
36934
37022
|
"recording.getDaysWithRecordings": {
|
|
36935
37023
|
capName: "recording",
|
|
36936
37024
|
capScope: "system",
|
|
36937
37025
|
addonId: null,
|
|
36938
37026
|
access: "view"
|
|
36939
37027
|
},
|
|
37028
|
+
"recording.getDaysWithRecordingsBatch": {
|
|
37029
|
+
capName: "recording",
|
|
37030
|
+
capScope: "system",
|
|
37031
|
+
addonId: null,
|
|
37032
|
+
access: "view"
|
|
37033
|
+
},
|
|
36940
37034
|
"recording.getDeviceConfig": {
|
|
36941
37035
|
capName: "recording",
|
|
36942
37036
|
capScope: "system",
|
|
@@ -39541,6 +39635,11 @@ Object.freeze({
|
|
|
39541
39635
|
form: "single",
|
|
39542
39636
|
optional: false
|
|
39543
39637
|
}],
|
|
39638
|
+
"pipelineAnalytics.getEventDensityBatch": [{
|
|
39639
|
+
name: "deviceIds",
|
|
39640
|
+
form: "array",
|
|
39641
|
+
optional: false
|
|
39642
|
+
}],
|
|
39544
39643
|
"pipelineAnalytics.getEventMedia": [{
|
|
39545
39644
|
name: "deviceId",
|
|
39546
39645
|
form: "single",
|
|
@@ -39956,11 +40055,21 @@ Object.freeze({
|
|
|
39956
40055
|
form: "single",
|
|
39957
40056
|
optional: false
|
|
39958
40057
|
}],
|
|
40058
|
+
"recording.getAvailabilityBatch": [{
|
|
40059
|
+
name: "deviceIds",
|
|
40060
|
+
form: "array",
|
|
40061
|
+
optional: false
|
|
40062
|
+
}],
|
|
39959
40063
|
"recording.getDaysWithRecordings": [{
|
|
39960
40064
|
name: "deviceId",
|
|
39961
40065
|
form: "single",
|
|
39962
40066
|
optional: false
|
|
39963
40067
|
}],
|
|
40068
|
+
"recording.getDaysWithRecordingsBatch": [{
|
|
40069
|
+
name: "deviceIds",
|
|
40070
|
+
form: "array",
|
|
40071
|
+
optional: false
|
|
40072
|
+
}],
|
|
39964
40073
|
"recording.getDeviceConfig": [{
|
|
39965
40074
|
name: "deviceId",
|
|
39966
40075
|
form: "single",
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@camstack/addon-provider-wyze",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.56",
|
|
4
4
|
"description": "Wyze camera device-provider addon for CamStack — wraps the @apocaliss92/wyze-bridge-js P2P/DTLS client, feeding the stream-broker via the pull-rfc4571 lazy-publish path (a structural twin of addon-provider-reolink)",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"camstack",
|