@camstack/addon-export-alexa 1.2.98 → 1.2.99
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.
|
@@ -19858,7 +19858,17 @@ var EventDensityBucketSchema = object({
|
|
|
19858
19858
|
bucketStart: number(),
|
|
19859
19859
|
motion: number().int(),
|
|
19860
19860
|
object: number().int(),
|
|
19861
|
-
audio: number().int()
|
|
19861
|
+
audio: number().int(),
|
|
19862
|
+
/**
|
|
19863
|
+
* Energy-weighted mean dBFS of the audio events in this bucket — the LEVEL,
|
|
19864
|
+
* as opposed to `audio`, which is their COUNT (D431).
|
|
19865
|
+
*
|
|
19866
|
+
* ABSENT when the bucket holds no audio event. Absence means "nothing was
|
|
19867
|
+
* measured", which is not the same claim as silence, and a lane that cannot
|
|
19868
|
+
* tell them apart paints a quiet hour at full scale — which is exactly what
|
|
19869
|
+
* the count-on-a-level-meter did.
|
|
19870
|
+
*/
|
|
19871
|
+
audioDbfs: number().optional()
|
|
19862
19872
|
});
|
|
19863
19873
|
/**
|
|
19864
19874
|
* One camera's row in a `getEventDensityBatch` answer.
|
|
@@ -28025,7 +28035,23 @@ var RecordingRangeSchema = object({
|
|
|
28025
28035
|
});
|
|
28026
28036
|
var RecordingAvailabilitySchema = object({
|
|
28027
28037
|
deviceId: number(),
|
|
28028
|
-
ranges: array(RecordingRangeSchema)
|
|
28038
|
+
ranges: array(RecordingRangeSchema),
|
|
28039
|
+
/**
|
|
28040
|
+
* Every profile this camera has footage in — not only the one `ranges`
|
|
28041
|
+
* describes (D433).
|
|
28042
|
+
*
|
|
28043
|
+
* `ranges` answers for ONE profile by design: the timeline is a single bar,
|
|
28044
|
+
* and enumerating all of them triples the directory reads for a bar that
|
|
28045
|
+
* would look identical. But the answer used to say nothing about that, so a
|
|
28046
|
+
* caller asking "what can I export?" read the single preferred profile as
|
|
28047
|
+
* the only one that exists — on this deployment every camera records `high`
|
|
28048
|
+
* AND `low`, the low tree holding 14 GB for camera 615 alone, and the export
|
|
28049
|
+
* UI could not see it.
|
|
28050
|
+
*
|
|
28051
|
+
* Cheap: it is the same shallow directory read the profile CHOICE already
|
|
28052
|
+
* makes. Ask for a specific profile's ranges with the `profile` input.
|
|
28053
|
+
*/
|
|
28054
|
+
profilesWithFootage: array(string())
|
|
28029
28055
|
});
|
|
28030
28056
|
var RecordingDaysSchema = object({
|
|
28031
28057
|
deviceId: number(),
|
|
@@ -28051,7 +28077,11 @@ var RecordingDaysSchema = object({
|
|
|
28051
28077
|
var RecordingAvailabilityForDeviceSchema = object({
|
|
28052
28078
|
deviceId: number(),
|
|
28053
28079
|
read: _enum(["read", "unreadable"]),
|
|
28054
|
-
ranges: array(RecordingRangeSchema).readonly()
|
|
28080
|
+
ranges: array(RecordingRangeSchema).readonly(),
|
|
28081
|
+
/** Same field, same meaning, as the singular answer (D433). A row that
|
|
28082
|
+
* dropped it would tell a grid caller the archive holds one profile.
|
|
28083
|
+
* Empty on an `'unreadable'` row: nobody looked. */
|
|
28084
|
+
profilesWithFootage: array(string()).readonly()
|
|
28055
28085
|
});
|
|
28056
28086
|
/**
|
|
28057
28087
|
* One camera's row in a `getDaysWithRecordingsBatch` answer. Same rule as
|
|
@@ -28341,7 +28371,14 @@ var ReadWindowBytesResultSchema = discriminatedUnion("kind", [object({
|
|
|
28341
28371
|
method(object({
|
|
28342
28372
|
deviceId: number(),
|
|
28343
28373
|
fromMs: number(),
|
|
28344
|
-
toMs: number()
|
|
28374
|
+
toMs: number(),
|
|
28375
|
+
/**
|
|
28376
|
+
* Answer for THIS profile instead of the preferred one (D433). Absent
|
|
28377
|
+
* keeps the timeline's behaviour — one bar, one profile, one set of
|
|
28378
|
+
* reads. `profilesWithFootage` on the answer says what may be asked
|
|
28379
|
+
* for.
|
|
28380
|
+
*/
|
|
28381
|
+
profile: string().optional()
|
|
28345
28382
|
}), RecordingAvailabilitySchema, {
|
|
28346
28383
|
kind: "query",
|
|
28347
28384
|
auth: "protected"
|
|
@@ -19831,7 +19831,17 @@ var EventDensityBucketSchema = object({
|
|
|
19831
19831
|
bucketStart: number(),
|
|
19832
19832
|
motion: number().int(),
|
|
19833
19833
|
object: number().int(),
|
|
19834
|
-
audio: number().int()
|
|
19834
|
+
audio: number().int(),
|
|
19835
|
+
/**
|
|
19836
|
+
* Energy-weighted mean dBFS of the audio events in this bucket — the LEVEL,
|
|
19837
|
+
* as opposed to `audio`, which is their COUNT (D431).
|
|
19838
|
+
*
|
|
19839
|
+
* ABSENT when the bucket holds no audio event. Absence means "nothing was
|
|
19840
|
+
* measured", which is not the same claim as silence, and a lane that cannot
|
|
19841
|
+
* tell them apart paints a quiet hour at full scale — which is exactly what
|
|
19842
|
+
* the count-on-a-level-meter did.
|
|
19843
|
+
*/
|
|
19844
|
+
audioDbfs: number().optional()
|
|
19835
19845
|
});
|
|
19836
19846
|
/**
|
|
19837
19847
|
* One camera's row in a `getEventDensityBatch` answer.
|
|
@@ -27998,7 +28008,23 @@ var RecordingRangeSchema = object({
|
|
|
27998
28008
|
});
|
|
27999
28009
|
var RecordingAvailabilitySchema = object({
|
|
28000
28010
|
deviceId: number(),
|
|
28001
|
-
ranges: array(RecordingRangeSchema)
|
|
28011
|
+
ranges: array(RecordingRangeSchema),
|
|
28012
|
+
/**
|
|
28013
|
+
* Every profile this camera has footage in — not only the one `ranges`
|
|
28014
|
+
* describes (D433).
|
|
28015
|
+
*
|
|
28016
|
+
* `ranges` answers for ONE profile by design: the timeline is a single bar,
|
|
28017
|
+
* and enumerating all of them triples the directory reads for a bar that
|
|
28018
|
+
* would look identical. But the answer used to say nothing about that, so a
|
|
28019
|
+
* caller asking "what can I export?" read the single preferred profile as
|
|
28020
|
+
* the only one that exists — on this deployment every camera records `high`
|
|
28021
|
+
* AND `low`, the low tree holding 14 GB for camera 615 alone, and the export
|
|
28022
|
+
* UI could not see it.
|
|
28023
|
+
*
|
|
28024
|
+
* Cheap: it is the same shallow directory read the profile CHOICE already
|
|
28025
|
+
* makes. Ask for a specific profile's ranges with the `profile` input.
|
|
28026
|
+
*/
|
|
28027
|
+
profilesWithFootage: array(string())
|
|
28002
28028
|
});
|
|
28003
28029
|
var RecordingDaysSchema = object({
|
|
28004
28030
|
deviceId: number(),
|
|
@@ -28024,7 +28050,11 @@ var RecordingDaysSchema = object({
|
|
|
28024
28050
|
var RecordingAvailabilityForDeviceSchema = object({
|
|
28025
28051
|
deviceId: number(),
|
|
28026
28052
|
read: _enum(["read", "unreadable"]),
|
|
28027
|
-
ranges: array(RecordingRangeSchema).readonly()
|
|
28053
|
+
ranges: array(RecordingRangeSchema).readonly(),
|
|
28054
|
+
/** Same field, same meaning, as the singular answer (D433). A row that
|
|
28055
|
+
* dropped it would tell a grid caller the archive holds one profile.
|
|
28056
|
+
* Empty on an `'unreadable'` row: nobody looked. */
|
|
28057
|
+
profilesWithFootage: array(string()).readonly()
|
|
28028
28058
|
});
|
|
28029
28059
|
/**
|
|
28030
28060
|
* One camera's row in a `getDaysWithRecordingsBatch` answer. Same rule as
|
|
@@ -28314,7 +28344,14 @@ var ReadWindowBytesResultSchema = discriminatedUnion("kind", [object({
|
|
|
28314
28344
|
method(object({
|
|
28315
28345
|
deviceId: number(),
|
|
28316
28346
|
fromMs: number(),
|
|
28317
|
-
toMs: number()
|
|
28347
|
+
toMs: number(),
|
|
28348
|
+
/**
|
|
28349
|
+
* Answer for THIS profile instead of the preferred one (D433). Absent
|
|
28350
|
+
* keeps the timeline's behaviour — one bar, one profile, one set of
|
|
28351
|
+
* reads. `profilesWithFootage` on the answer says what may be asked
|
|
28352
|
+
* for.
|
|
28353
|
+
*/
|
|
28354
|
+
profile: string().optional()
|
|
28318
28355
|
}), RecordingAvailabilitySchema, {
|
|
28319
28356
|
kind: "query",
|
|
28320
28357
|
auth: "protected"
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@camstack/addon-export-alexa",
|
|
3
|
-
"version": "1.2.
|
|
3
|
+
"version": "1.2.99",
|
|
4
4
|
"description": "Alexa Smart Home Skill export — hub-side OAuth provider + directive handler. The companion AWS Lambda forwards Alexa directives to this addon's /addon/export-alexa/directive endpoint.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"camstack",
|