@camstack/addon-provider-dreame 0.2.50 → 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 +117 -6
- package/dist/addon.mjs +117 -6
- package/package.json +1 -1
package/dist/addon.js
CHANGED
|
@@ -66397,6 +66397,8 @@ var NcSystemEventKindSchema = _enum([
|
|
|
66397
66397
|
"device-offline",
|
|
66398
66398
|
"device-disabled",
|
|
66399
66399
|
"device-enabled",
|
|
66400
|
+
"device-battery-low",
|
|
66401
|
+
"device-battery-normal",
|
|
66400
66402
|
"stream-online",
|
|
66401
66403
|
"stream-offline",
|
|
66402
66404
|
"node-online",
|
|
@@ -69711,6 +69713,34 @@ var KeyEventsForDeviceSchema = object({
|
|
|
69711
69713
|
deviceId: number(),
|
|
69712
69714
|
events: array(KeyEventSchema).readonly()
|
|
69713
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
|
+
});
|
|
69714
69744
|
object({
|
|
69715
69745
|
trackId: string(),
|
|
69716
69746
|
className: string(),
|
|
@@ -70021,12 +70051,12 @@ DeviceType.Camera, method(object({ deviceId: number() }), array(TrackSchema).rea
|
|
|
70021
70051
|
since: number(),
|
|
70022
70052
|
until: number(),
|
|
70023
70053
|
bucketMs: number().int().positive()
|
|
70024
|
-
}), array(object({
|
|
70025
|
-
|
|
70026
|
-
|
|
70027
|
-
|
|
70028
|
-
|
|
70029
|
-
})).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({
|
|
70030
70060
|
deviceId: number(),
|
|
70031
70061
|
cutoffMs: number()
|
|
70032
70062
|
}), object({
|
|
@@ -79076,6 +79106,39 @@ var RecordingDaysSchema = object({
|
|
|
79076
79106
|
/** Local-midnight epochs (UTC ms) of days that have ≥1 recorded segment. */
|
|
79077
79107
|
days: array(number())
|
|
79078
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
|
+
});
|
|
79079
79142
|
var RecordingManifestSchema = object({
|
|
79080
79143
|
deviceId: number(),
|
|
79081
79144
|
/** Local filesystem path to the master playlist; null when no recording exists for the requested range. */
|
|
@@ -79310,6 +79373,13 @@ method(object({
|
|
|
79310
79373
|
}), RecordingAvailabilitySchema, {
|
|
79311
79374
|
kind: "query",
|
|
79312
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"
|
|
79313
79383
|
}), method(object({
|
|
79314
79384
|
deviceId: number(),
|
|
79315
79385
|
fromMs: number(),
|
|
@@ -79318,6 +79388,14 @@ method(object({
|
|
|
79318
79388
|
}), RecordingDaysSchema, {
|
|
79319
79389
|
kind: "query",
|
|
79320
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"
|
|
79321
79399
|
}), method(object({
|
|
79322
79400
|
deviceId: number(),
|
|
79323
79401
|
fromMs: number(),
|
|
@@ -86214,6 +86292,12 @@ Object.freeze({
|
|
|
86214
86292
|
addonId: null,
|
|
86215
86293
|
access: "view"
|
|
86216
86294
|
},
|
|
86295
|
+
"pipelineAnalytics.getEventDensityBatch": {
|
|
86296
|
+
capName: "pipeline-analytics",
|
|
86297
|
+
capScope: "device",
|
|
86298
|
+
addonId: null,
|
|
86299
|
+
access: "view"
|
|
86300
|
+
},
|
|
86217
86301
|
"pipelineAnalytics.getEventMedia": {
|
|
86218
86302
|
capName: "pipeline-analytics",
|
|
86219
86303
|
capScope: "device",
|
|
@@ -87336,12 +87420,24 @@ Object.freeze({
|
|
|
87336
87420
|
addonId: null,
|
|
87337
87421
|
access: "view"
|
|
87338
87422
|
},
|
|
87423
|
+
"recording.getAvailabilityBatch": {
|
|
87424
|
+
capName: "recording",
|
|
87425
|
+
capScope: "system",
|
|
87426
|
+
addonId: null,
|
|
87427
|
+
access: "view"
|
|
87428
|
+
},
|
|
87339
87429
|
"recording.getDaysWithRecordings": {
|
|
87340
87430
|
capName: "recording",
|
|
87341
87431
|
capScope: "system",
|
|
87342
87432
|
addonId: null,
|
|
87343
87433
|
access: "view"
|
|
87344
87434
|
},
|
|
87435
|
+
"recording.getDaysWithRecordingsBatch": {
|
|
87436
|
+
capName: "recording",
|
|
87437
|
+
capScope: "system",
|
|
87438
|
+
addonId: null,
|
|
87439
|
+
access: "view"
|
|
87440
|
+
},
|
|
87345
87441
|
"recording.getDeviceConfig": {
|
|
87346
87442
|
capName: "recording",
|
|
87347
87443
|
capScope: "system",
|
|
@@ -89946,6 +90042,11 @@ Object.freeze({
|
|
|
89946
90042
|
form: "single",
|
|
89947
90043
|
optional: false
|
|
89948
90044
|
}],
|
|
90045
|
+
"pipelineAnalytics.getEventDensityBatch": [{
|
|
90046
|
+
name: "deviceIds",
|
|
90047
|
+
form: "array",
|
|
90048
|
+
optional: false
|
|
90049
|
+
}],
|
|
89949
90050
|
"pipelineAnalytics.getEventMedia": [{
|
|
89950
90051
|
name: "deviceId",
|
|
89951
90052
|
form: "single",
|
|
@@ -90361,11 +90462,21 @@ Object.freeze({
|
|
|
90361
90462
|
form: "single",
|
|
90362
90463
|
optional: false
|
|
90363
90464
|
}],
|
|
90465
|
+
"recording.getAvailabilityBatch": [{
|
|
90466
|
+
name: "deviceIds",
|
|
90467
|
+
form: "array",
|
|
90468
|
+
optional: false
|
|
90469
|
+
}],
|
|
90364
90470
|
"recording.getDaysWithRecordings": [{
|
|
90365
90471
|
name: "deviceId",
|
|
90366
90472
|
form: "single",
|
|
90367
90473
|
optional: false
|
|
90368
90474
|
}],
|
|
90475
|
+
"recording.getDaysWithRecordingsBatch": [{
|
|
90476
|
+
name: "deviceIds",
|
|
90477
|
+
form: "array",
|
|
90478
|
+
optional: false
|
|
90479
|
+
}],
|
|
90369
90480
|
"recording.getDeviceConfig": [{
|
|
90370
90481
|
name: "deviceId",
|
|
90371
90482
|
form: "single",
|
package/dist/addon.mjs
CHANGED
|
@@ -66397,6 +66397,8 @@ var NcSystemEventKindSchema = _enum([
|
|
|
66397
66397
|
"device-offline",
|
|
66398
66398
|
"device-disabled",
|
|
66399
66399
|
"device-enabled",
|
|
66400
|
+
"device-battery-low",
|
|
66401
|
+
"device-battery-normal",
|
|
66400
66402
|
"stream-online",
|
|
66401
66403
|
"stream-offline",
|
|
66402
66404
|
"node-online",
|
|
@@ -69711,6 +69713,34 @@ var KeyEventsForDeviceSchema = object({
|
|
|
69711
69713
|
deviceId: number(),
|
|
69712
69714
|
events: array(KeyEventSchema).readonly()
|
|
69713
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
|
+
});
|
|
69714
69744
|
object({
|
|
69715
69745
|
trackId: string(),
|
|
69716
69746
|
className: string(),
|
|
@@ -70021,12 +70051,12 @@ DeviceType.Camera, method(object({ deviceId: number() }), array(TrackSchema).rea
|
|
|
70021
70051
|
since: number(),
|
|
70022
70052
|
until: number(),
|
|
70023
70053
|
bucketMs: number().int().positive()
|
|
70024
|
-
}), array(object({
|
|
70025
|
-
|
|
70026
|
-
|
|
70027
|
-
|
|
70028
|
-
|
|
70029
|
-
})).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({
|
|
70030
70060
|
deviceId: number(),
|
|
70031
70061
|
cutoffMs: number()
|
|
70032
70062
|
}), object({
|
|
@@ -79076,6 +79106,39 @@ var RecordingDaysSchema = object({
|
|
|
79076
79106
|
/** Local-midnight epochs (UTC ms) of days that have ≥1 recorded segment. */
|
|
79077
79107
|
days: array(number())
|
|
79078
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
|
+
});
|
|
79079
79142
|
var RecordingManifestSchema = object({
|
|
79080
79143
|
deviceId: number(),
|
|
79081
79144
|
/** Local filesystem path to the master playlist; null when no recording exists for the requested range. */
|
|
@@ -79310,6 +79373,13 @@ method(object({
|
|
|
79310
79373
|
}), RecordingAvailabilitySchema, {
|
|
79311
79374
|
kind: "query",
|
|
79312
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"
|
|
79313
79383
|
}), method(object({
|
|
79314
79384
|
deviceId: number(),
|
|
79315
79385
|
fromMs: number(),
|
|
@@ -79318,6 +79388,14 @@ method(object({
|
|
|
79318
79388
|
}), RecordingDaysSchema, {
|
|
79319
79389
|
kind: "query",
|
|
79320
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"
|
|
79321
79399
|
}), method(object({
|
|
79322
79400
|
deviceId: number(),
|
|
79323
79401
|
fromMs: number(),
|
|
@@ -86214,6 +86292,12 @@ Object.freeze({
|
|
|
86214
86292
|
addonId: null,
|
|
86215
86293
|
access: "view"
|
|
86216
86294
|
},
|
|
86295
|
+
"pipelineAnalytics.getEventDensityBatch": {
|
|
86296
|
+
capName: "pipeline-analytics",
|
|
86297
|
+
capScope: "device",
|
|
86298
|
+
addonId: null,
|
|
86299
|
+
access: "view"
|
|
86300
|
+
},
|
|
86217
86301
|
"pipelineAnalytics.getEventMedia": {
|
|
86218
86302
|
capName: "pipeline-analytics",
|
|
86219
86303
|
capScope: "device",
|
|
@@ -87336,12 +87420,24 @@ Object.freeze({
|
|
|
87336
87420
|
addonId: null,
|
|
87337
87421
|
access: "view"
|
|
87338
87422
|
},
|
|
87423
|
+
"recording.getAvailabilityBatch": {
|
|
87424
|
+
capName: "recording",
|
|
87425
|
+
capScope: "system",
|
|
87426
|
+
addonId: null,
|
|
87427
|
+
access: "view"
|
|
87428
|
+
},
|
|
87339
87429
|
"recording.getDaysWithRecordings": {
|
|
87340
87430
|
capName: "recording",
|
|
87341
87431
|
capScope: "system",
|
|
87342
87432
|
addonId: null,
|
|
87343
87433
|
access: "view"
|
|
87344
87434
|
},
|
|
87435
|
+
"recording.getDaysWithRecordingsBatch": {
|
|
87436
|
+
capName: "recording",
|
|
87437
|
+
capScope: "system",
|
|
87438
|
+
addonId: null,
|
|
87439
|
+
access: "view"
|
|
87440
|
+
},
|
|
87345
87441
|
"recording.getDeviceConfig": {
|
|
87346
87442
|
capName: "recording",
|
|
87347
87443
|
capScope: "system",
|
|
@@ -89946,6 +90042,11 @@ Object.freeze({
|
|
|
89946
90042
|
form: "single",
|
|
89947
90043
|
optional: false
|
|
89948
90044
|
}],
|
|
90045
|
+
"pipelineAnalytics.getEventDensityBatch": [{
|
|
90046
|
+
name: "deviceIds",
|
|
90047
|
+
form: "array",
|
|
90048
|
+
optional: false
|
|
90049
|
+
}],
|
|
89949
90050
|
"pipelineAnalytics.getEventMedia": [{
|
|
89950
90051
|
name: "deviceId",
|
|
89951
90052
|
form: "single",
|
|
@@ -90361,11 +90462,21 @@ Object.freeze({
|
|
|
90361
90462
|
form: "single",
|
|
90362
90463
|
optional: false
|
|
90363
90464
|
}],
|
|
90465
|
+
"recording.getAvailabilityBatch": [{
|
|
90466
|
+
name: "deviceIds",
|
|
90467
|
+
form: "array",
|
|
90468
|
+
optional: false
|
|
90469
|
+
}],
|
|
90364
90470
|
"recording.getDaysWithRecordings": [{
|
|
90365
90471
|
name: "deviceId",
|
|
90366
90472
|
form: "single",
|
|
90367
90473
|
optional: false
|
|
90368
90474
|
}],
|
|
90475
|
+
"recording.getDaysWithRecordingsBatch": [{
|
|
90476
|
+
name: "deviceIds",
|
|
90477
|
+
form: "array",
|
|
90478
|
+
optional: false
|
|
90479
|
+
}],
|
|
90369
90480
|
"recording.getDeviceConfig": [{
|
|
90370
90481
|
name: "deviceId",
|
|
90371
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",
|