@camstack/addon-provider-dreame 0.2.51 → 0.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 +115 -6
- package/dist/addon.mjs +115 -6
- package/package.json +1 -1
package/dist/addon.js
CHANGED
|
@@ -69713,6 +69713,34 @@ var KeyEventsForDeviceSchema = object({
|
|
|
69713
69713
|
deviceId: number(),
|
|
69714
69714
|
events: array(KeyEventSchema).readonly()
|
|
69715
69715
|
});
|
|
69716
|
+
/** One non-empty bucket of the timeline histogram. */
|
|
69717
|
+
var EventDensityBucketSchema = object({
|
|
69718
|
+
bucketStart: number(),
|
|
69719
|
+
motion: number().int(),
|
|
69720
|
+
object: number().int(),
|
|
69721
|
+
audio: number().int()
|
|
69722
|
+
});
|
|
69723
|
+
/**
|
|
69724
|
+
* One camera's row in a `getEventDensityBatch` answer.
|
|
69725
|
+
*
|
|
69726
|
+
* TWO facts, and the timeline draws them differently:
|
|
69727
|
+
*
|
|
69728
|
+
* - `read: 'read'` — the histogram for this camera. `buckets: []` is a real
|
|
69729
|
+
* claim: read, and nothing happened in the window.
|
|
69730
|
+
* - `read: 'unreadable'` — nobody could answer for this camera. `buckets` is
|
|
69731
|
+
* empty and that emptiness means NOTHING; the timeline must render unknown,
|
|
69732
|
+
* not quiet.
|
|
69733
|
+
*
|
|
69734
|
+
* Fanned out per camera the difference was free — one query rejected while the
|
|
69735
|
+
* others resolved — and collapsing to a batch is the exact moment it is lost
|
|
69736
|
+
* silently. Every requested id gets a row: a caller that asked for twelve and
|
|
69737
|
+
* got eleven cannot tell which one is missing, or that any is.
|
|
69738
|
+
*/
|
|
69739
|
+
var EventDensityForDeviceSchema = object({
|
|
69740
|
+
deviceId: number(),
|
|
69741
|
+
read: _enum(["read", "unreadable"]),
|
|
69742
|
+
buckets: array(EventDensityBucketSchema).readonly()
|
|
69743
|
+
});
|
|
69716
69744
|
object({
|
|
69717
69745
|
trackId: string(),
|
|
69718
69746
|
className: string(),
|
|
@@ -70023,12 +70051,12 @@ DeviceType.Camera, method(object({ deviceId: number() }), array(TrackSchema).rea
|
|
|
70023
70051
|
since: number(),
|
|
70024
70052
|
until: number(),
|
|
70025
70053
|
bucketMs: number().int().positive()
|
|
70026
|
-
}), array(object({
|
|
70027
|
-
|
|
70028
|
-
|
|
70029
|
-
|
|
70030
|
-
|
|
70031
|
-
})).readonly()), method(object({
|
|
70054
|
+
}), array(EventDensityBucketSchema).readonly()), method(object({
|
|
70055
|
+
deviceIds: array(number()).min(1).max(200),
|
|
70056
|
+
since: number(),
|
|
70057
|
+
until: number(),
|
|
70058
|
+
bucketMs: number().int().positive()
|
|
70059
|
+
}), array(EventDensityForDeviceSchema).readonly()), method(object({
|
|
70032
70060
|
deviceId: number(),
|
|
70033
70061
|
cutoffMs: number()
|
|
70034
70062
|
}), object({
|
|
@@ -79078,6 +79106,39 @@ var RecordingDaysSchema = object({
|
|
|
79078
79106
|
/** Local-midnight epochs (UTC ms) of days that have ≥1 recorded segment. */
|
|
79079
79107
|
days: array(number())
|
|
79080
79108
|
});
|
|
79109
|
+
/**
|
|
79110
|
+
* One camera's row in a `getAvailabilityBatch` answer.
|
|
79111
|
+
*
|
|
79112
|
+
* `ranges` is EXACTLY what `getAvailability` returns for that camera — the
|
|
79113
|
+
* batch collapses the transport, not the work — plus the one thing the singular
|
|
79114
|
+
* method never had to say:
|
|
79115
|
+
*
|
|
79116
|
+
* - `read: 'read'` — answered. `ranges: []` means "read, and this camera has
|
|
79117
|
+
* no footage in the window", which is a real claim.
|
|
79118
|
+
* - `read: 'unreadable'` — the recorder could not answer for this camera (its
|
|
79119
|
+
* calendar rung threw, its location is unmounted). `ranges` is empty and
|
|
79120
|
+
* that emptiness means NOTHING.
|
|
79121
|
+
*
|
|
79122
|
+
* A timeline that renders the second as the first tells an operator there is no
|
|
79123
|
+
* footage when the truth is that nobody looked.
|
|
79124
|
+
*/
|
|
79125
|
+
var RecordingAvailabilityForDeviceSchema = object({
|
|
79126
|
+
deviceId: number(),
|
|
79127
|
+
read: _enum(["read", "unreadable"]),
|
|
79128
|
+
ranges: array(RecordingRangeSchema).readonly()
|
|
79129
|
+
});
|
|
79130
|
+
/**
|
|
79131
|
+
* One camera's row in a `getDaysWithRecordingsBatch` answer. Same rule as
|
|
79132
|
+
* {@link RecordingAvailabilityForDeviceSchema}: `days: []` on a `'read'` row is
|
|
79133
|
+
* "no footage in this month", `read: 'unreadable'` is "nobody could look", and
|
|
79134
|
+
* the date-picker's day dots must not spell them the same.
|
|
79135
|
+
*/
|
|
79136
|
+
var RecordingDaysForDeviceSchema = object({
|
|
79137
|
+
deviceId: number(),
|
|
79138
|
+
read: _enum(["read", "unreadable"]),
|
|
79139
|
+
/** Local-midnight epochs (UTC ms) of days that have ≥1 recorded segment. */
|
|
79140
|
+
days: array(number()).readonly()
|
|
79141
|
+
});
|
|
79081
79142
|
var RecordingManifestSchema = object({
|
|
79082
79143
|
deviceId: number(),
|
|
79083
79144
|
/** Local filesystem path to the master playlist; null when no recording exists for the requested range. */
|
|
@@ -79312,6 +79373,13 @@ method(object({
|
|
|
79312
79373
|
}), RecordingAvailabilitySchema, {
|
|
79313
79374
|
kind: "query",
|
|
79314
79375
|
auth: "protected"
|
|
79376
|
+
}), method(object({
|
|
79377
|
+
deviceIds: array(number()).min(1).max(200),
|
|
79378
|
+
fromMs: number(),
|
|
79379
|
+
toMs: number()
|
|
79380
|
+
}), array(RecordingAvailabilityForDeviceSchema).readonly(), {
|
|
79381
|
+
kind: "query",
|
|
79382
|
+
auth: "protected"
|
|
79315
79383
|
}), method(object({
|
|
79316
79384
|
deviceId: number(),
|
|
79317
79385
|
fromMs: number(),
|
|
@@ -79320,6 +79388,14 @@ method(object({
|
|
|
79320
79388
|
}), RecordingDaysSchema, {
|
|
79321
79389
|
kind: "query",
|
|
79322
79390
|
auth: "protected"
|
|
79391
|
+
}), method(object({
|
|
79392
|
+
deviceIds: array(number()).min(1).max(200),
|
|
79393
|
+
fromMs: number(),
|
|
79394
|
+
toMs: number(),
|
|
79395
|
+
tzOffsetMinutes: number()
|
|
79396
|
+
}), array(RecordingDaysForDeviceSchema).readonly(), {
|
|
79397
|
+
kind: "query",
|
|
79398
|
+
auth: "protected"
|
|
79323
79399
|
}), method(object({
|
|
79324
79400
|
deviceId: number(),
|
|
79325
79401
|
fromMs: number(),
|
|
@@ -86216,6 +86292,12 @@ Object.freeze({
|
|
|
86216
86292
|
addonId: null,
|
|
86217
86293
|
access: "view"
|
|
86218
86294
|
},
|
|
86295
|
+
"pipelineAnalytics.getEventDensityBatch": {
|
|
86296
|
+
capName: "pipeline-analytics",
|
|
86297
|
+
capScope: "device",
|
|
86298
|
+
addonId: null,
|
|
86299
|
+
access: "view"
|
|
86300
|
+
},
|
|
86219
86301
|
"pipelineAnalytics.getEventMedia": {
|
|
86220
86302
|
capName: "pipeline-analytics",
|
|
86221
86303
|
capScope: "device",
|
|
@@ -87338,12 +87420,24 @@ Object.freeze({
|
|
|
87338
87420
|
addonId: null,
|
|
87339
87421
|
access: "view"
|
|
87340
87422
|
},
|
|
87423
|
+
"recording.getAvailabilityBatch": {
|
|
87424
|
+
capName: "recording",
|
|
87425
|
+
capScope: "system",
|
|
87426
|
+
addonId: null,
|
|
87427
|
+
access: "view"
|
|
87428
|
+
},
|
|
87341
87429
|
"recording.getDaysWithRecordings": {
|
|
87342
87430
|
capName: "recording",
|
|
87343
87431
|
capScope: "system",
|
|
87344
87432
|
addonId: null,
|
|
87345
87433
|
access: "view"
|
|
87346
87434
|
},
|
|
87435
|
+
"recording.getDaysWithRecordingsBatch": {
|
|
87436
|
+
capName: "recording",
|
|
87437
|
+
capScope: "system",
|
|
87438
|
+
addonId: null,
|
|
87439
|
+
access: "view"
|
|
87440
|
+
},
|
|
87347
87441
|
"recording.getDeviceConfig": {
|
|
87348
87442
|
capName: "recording",
|
|
87349
87443
|
capScope: "system",
|
|
@@ -89948,6 +90042,11 @@ Object.freeze({
|
|
|
89948
90042
|
form: "single",
|
|
89949
90043
|
optional: false
|
|
89950
90044
|
}],
|
|
90045
|
+
"pipelineAnalytics.getEventDensityBatch": [{
|
|
90046
|
+
name: "deviceIds",
|
|
90047
|
+
form: "array",
|
|
90048
|
+
optional: false
|
|
90049
|
+
}],
|
|
89951
90050
|
"pipelineAnalytics.getEventMedia": [{
|
|
89952
90051
|
name: "deviceId",
|
|
89953
90052
|
form: "single",
|
|
@@ -90363,11 +90462,21 @@ Object.freeze({
|
|
|
90363
90462
|
form: "single",
|
|
90364
90463
|
optional: false
|
|
90365
90464
|
}],
|
|
90465
|
+
"recording.getAvailabilityBatch": [{
|
|
90466
|
+
name: "deviceIds",
|
|
90467
|
+
form: "array",
|
|
90468
|
+
optional: false
|
|
90469
|
+
}],
|
|
90366
90470
|
"recording.getDaysWithRecordings": [{
|
|
90367
90471
|
name: "deviceId",
|
|
90368
90472
|
form: "single",
|
|
90369
90473
|
optional: false
|
|
90370
90474
|
}],
|
|
90475
|
+
"recording.getDaysWithRecordingsBatch": [{
|
|
90476
|
+
name: "deviceIds",
|
|
90477
|
+
form: "array",
|
|
90478
|
+
optional: false
|
|
90479
|
+
}],
|
|
90371
90480
|
"recording.getDeviceConfig": [{
|
|
90372
90481
|
name: "deviceId",
|
|
90373
90482
|
form: "single",
|
package/dist/addon.mjs
CHANGED
|
@@ -69713,6 +69713,34 @@ var KeyEventsForDeviceSchema = object({
|
|
|
69713
69713
|
deviceId: number(),
|
|
69714
69714
|
events: array(KeyEventSchema).readonly()
|
|
69715
69715
|
});
|
|
69716
|
+
/** One non-empty bucket of the timeline histogram. */
|
|
69717
|
+
var EventDensityBucketSchema = object({
|
|
69718
|
+
bucketStart: number(),
|
|
69719
|
+
motion: number().int(),
|
|
69720
|
+
object: number().int(),
|
|
69721
|
+
audio: number().int()
|
|
69722
|
+
});
|
|
69723
|
+
/**
|
|
69724
|
+
* One camera's row in a `getEventDensityBatch` answer.
|
|
69725
|
+
*
|
|
69726
|
+
* TWO facts, and the timeline draws them differently:
|
|
69727
|
+
*
|
|
69728
|
+
* - `read: 'read'` — the histogram for this camera. `buckets: []` is a real
|
|
69729
|
+
* claim: read, and nothing happened in the window.
|
|
69730
|
+
* - `read: 'unreadable'` — nobody could answer for this camera. `buckets` is
|
|
69731
|
+
* empty and that emptiness means NOTHING; the timeline must render unknown,
|
|
69732
|
+
* not quiet.
|
|
69733
|
+
*
|
|
69734
|
+
* Fanned out per camera the difference was free — one query rejected while the
|
|
69735
|
+
* others resolved — and collapsing to a batch is the exact moment it is lost
|
|
69736
|
+
* silently. Every requested id gets a row: a caller that asked for twelve and
|
|
69737
|
+
* got eleven cannot tell which one is missing, or that any is.
|
|
69738
|
+
*/
|
|
69739
|
+
var EventDensityForDeviceSchema = object({
|
|
69740
|
+
deviceId: number(),
|
|
69741
|
+
read: _enum(["read", "unreadable"]),
|
|
69742
|
+
buckets: array(EventDensityBucketSchema).readonly()
|
|
69743
|
+
});
|
|
69716
69744
|
object({
|
|
69717
69745
|
trackId: string(),
|
|
69718
69746
|
className: string(),
|
|
@@ -70023,12 +70051,12 @@ DeviceType.Camera, method(object({ deviceId: number() }), array(TrackSchema).rea
|
|
|
70023
70051
|
since: number(),
|
|
70024
70052
|
until: number(),
|
|
70025
70053
|
bucketMs: number().int().positive()
|
|
70026
|
-
}), array(object({
|
|
70027
|
-
|
|
70028
|
-
|
|
70029
|
-
|
|
70030
|
-
|
|
70031
|
-
})).readonly()), method(object({
|
|
70054
|
+
}), array(EventDensityBucketSchema).readonly()), method(object({
|
|
70055
|
+
deviceIds: array(number()).min(1).max(200),
|
|
70056
|
+
since: number(),
|
|
70057
|
+
until: number(),
|
|
70058
|
+
bucketMs: number().int().positive()
|
|
70059
|
+
}), array(EventDensityForDeviceSchema).readonly()), method(object({
|
|
70032
70060
|
deviceId: number(),
|
|
70033
70061
|
cutoffMs: number()
|
|
70034
70062
|
}), object({
|
|
@@ -79078,6 +79106,39 @@ var RecordingDaysSchema = object({
|
|
|
79078
79106
|
/** Local-midnight epochs (UTC ms) of days that have ≥1 recorded segment. */
|
|
79079
79107
|
days: array(number())
|
|
79080
79108
|
});
|
|
79109
|
+
/**
|
|
79110
|
+
* One camera's row in a `getAvailabilityBatch` answer.
|
|
79111
|
+
*
|
|
79112
|
+
* `ranges` is EXACTLY what `getAvailability` returns for that camera — the
|
|
79113
|
+
* batch collapses the transport, not the work — plus the one thing the singular
|
|
79114
|
+
* method never had to say:
|
|
79115
|
+
*
|
|
79116
|
+
* - `read: 'read'` — answered. `ranges: []` means "read, and this camera has
|
|
79117
|
+
* no footage in the window", which is a real claim.
|
|
79118
|
+
* - `read: 'unreadable'` — the recorder could not answer for this camera (its
|
|
79119
|
+
* calendar rung threw, its location is unmounted). `ranges` is empty and
|
|
79120
|
+
* that emptiness means NOTHING.
|
|
79121
|
+
*
|
|
79122
|
+
* A timeline that renders the second as the first tells an operator there is no
|
|
79123
|
+
* footage when the truth is that nobody looked.
|
|
79124
|
+
*/
|
|
79125
|
+
var RecordingAvailabilityForDeviceSchema = object({
|
|
79126
|
+
deviceId: number(),
|
|
79127
|
+
read: _enum(["read", "unreadable"]),
|
|
79128
|
+
ranges: array(RecordingRangeSchema).readonly()
|
|
79129
|
+
});
|
|
79130
|
+
/**
|
|
79131
|
+
* One camera's row in a `getDaysWithRecordingsBatch` answer. Same rule as
|
|
79132
|
+
* {@link RecordingAvailabilityForDeviceSchema}: `days: []` on a `'read'` row is
|
|
79133
|
+
* "no footage in this month", `read: 'unreadable'` is "nobody could look", and
|
|
79134
|
+
* the date-picker's day dots must not spell them the same.
|
|
79135
|
+
*/
|
|
79136
|
+
var RecordingDaysForDeviceSchema = object({
|
|
79137
|
+
deviceId: number(),
|
|
79138
|
+
read: _enum(["read", "unreadable"]),
|
|
79139
|
+
/** Local-midnight epochs (UTC ms) of days that have ≥1 recorded segment. */
|
|
79140
|
+
days: array(number()).readonly()
|
|
79141
|
+
});
|
|
79081
79142
|
var RecordingManifestSchema = object({
|
|
79082
79143
|
deviceId: number(),
|
|
79083
79144
|
/** Local filesystem path to the master playlist; null when no recording exists for the requested range. */
|
|
@@ -79312,6 +79373,13 @@ method(object({
|
|
|
79312
79373
|
}), RecordingAvailabilitySchema, {
|
|
79313
79374
|
kind: "query",
|
|
79314
79375
|
auth: "protected"
|
|
79376
|
+
}), method(object({
|
|
79377
|
+
deviceIds: array(number()).min(1).max(200),
|
|
79378
|
+
fromMs: number(),
|
|
79379
|
+
toMs: number()
|
|
79380
|
+
}), array(RecordingAvailabilityForDeviceSchema).readonly(), {
|
|
79381
|
+
kind: "query",
|
|
79382
|
+
auth: "protected"
|
|
79315
79383
|
}), method(object({
|
|
79316
79384
|
deviceId: number(),
|
|
79317
79385
|
fromMs: number(),
|
|
@@ -79320,6 +79388,14 @@ method(object({
|
|
|
79320
79388
|
}), RecordingDaysSchema, {
|
|
79321
79389
|
kind: "query",
|
|
79322
79390
|
auth: "protected"
|
|
79391
|
+
}), method(object({
|
|
79392
|
+
deviceIds: array(number()).min(1).max(200),
|
|
79393
|
+
fromMs: number(),
|
|
79394
|
+
toMs: number(),
|
|
79395
|
+
tzOffsetMinutes: number()
|
|
79396
|
+
}), array(RecordingDaysForDeviceSchema).readonly(), {
|
|
79397
|
+
kind: "query",
|
|
79398
|
+
auth: "protected"
|
|
79323
79399
|
}), method(object({
|
|
79324
79400
|
deviceId: number(),
|
|
79325
79401
|
fromMs: number(),
|
|
@@ -86216,6 +86292,12 @@ Object.freeze({
|
|
|
86216
86292
|
addonId: null,
|
|
86217
86293
|
access: "view"
|
|
86218
86294
|
},
|
|
86295
|
+
"pipelineAnalytics.getEventDensityBatch": {
|
|
86296
|
+
capName: "pipeline-analytics",
|
|
86297
|
+
capScope: "device",
|
|
86298
|
+
addonId: null,
|
|
86299
|
+
access: "view"
|
|
86300
|
+
},
|
|
86219
86301
|
"pipelineAnalytics.getEventMedia": {
|
|
86220
86302
|
capName: "pipeline-analytics",
|
|
86221
86303
|
capScope: "device",
|
|
@@ -87338,12 +87420,24 @@ Object.freeze({
|
|
|
87338
87420
|
addonId: null,
|
|
87339
87421
|
access: "view"
|
|
87340
87422
|
},
|
|
87423
|
+
"recording.getAvailabilityBatch": {
|
|
87424
|
+
capName: "recording",
|
|
87425
|
+
capScope: "system",
|
|
87426
|
+
addonId: null,
|
|
87427
|
+
access: "view"
|
|
87428
|
+
},
|
|
87341
87429
|
"recording.getDaysWithRecordings": {
|
|
87342
87430
|
capName: "recording",
|
|
87343
87431
|
capScope: "system",
|
|
87344
87432
|
addonId: null,
|
|
87345
87433
|
access: "view"
|
|
87346
87434
|
},
|
|
87435
|
+
"recording.getDaysWithRecordingsBatch": {
|
|
87436
|
+
capName: "recording",
|
|
87437
|
+
capScope: "system",
|
|
87438
|
+
addonId: null,
|
|
87439
|
+
access: "view"
|
|
87440
|
+
},
|
|
87347
87441
|
"recording.getDeviceConfig": {
|
|
87348
87442
|
capName: "recording",
|
|
87349
87443
|
capScope: "system",
|
|
@@ -89948,6 +90042,11 @@ Object.freeze({
|
|
|
89948
90042
|
form: "single",
|
|
89949
90043
|
optional: false
|
|
89950
90044
|
}],
|
|
90045
|
+
"pipelineAnalytics.getEventDensityBatch": [{
|
|
90046
|
+
name: "deviceIds",
|
|
90047
|
+
form: "array",
|
|
90048
|
+
optional: false
|
|
90049
|
+
}],
|
|
89951
90050
|
"pipelineAnalytics.getEventMedia": [{
|
|
89952
90051
|
name: "deviceId",
|
|
89953
90052
|
form: "single",
|
|
@@ -90363,11 +90462,21 @@ Object.freeze({
|
|
|
90363
90462
|
form: "single",
|
|
90364
90463
|
optional: false
|
|
90365
90464
|
}],
|
|
90465
|
+
"recording.getAvailabilityBatch": [{
|
|
90466
|
+
name: "deviceIds",
|
|
90467
|
+
form: "array",
|
|
90468
|
+
optional: false
|
|
90469
|
+
}],
|
|
90366
90470
|
"recording.getDaysWithRecordings": [{
|
|
90367
90471
|
name: "deviceId",
|
|
90368
90472
|
form: "single",
|
|
90369
90473
|
optional: false
|
|
90370
90474
|
}],
|
|
90475
|
+
"recording.getDaysWithRecordingsBatch": [{
|
|
90476
|
+
name: "deviceIds",
|
|
90477
|
+
form: "array",
|
|
90478
|
+
optional: false
|
|
90479
|
+
}],
|
|
90371
90480
|
"recording.getDeviceConfig": [{
|
|
90372
90481
|
name: "deviceId",
|
|
90373
90482
|
form: "single",
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@camstack/addon-provider-dreame",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.52",
|
|
4
4
|
"description": "Dreame robot-vacuum / lawn-mower device-provider addon for CamStack — wraps the @apocaliss92/nodedreame Dreamehome cloud client",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"camstack",
|