@camstack/addon-export-google 0.1.56 → 0.1.57
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.
|
@@ -19829,7 +19829,17 @@ var EventDensityBucketSchema = object({
|
|
|
19829
19829
|
bucketStart: number(),
|
|
19830
19830
|
motion: number().int(),
|
|
19831
19831
|
object: number().int(),
|
|
19832
|
-
audio: number().int()
|
|
19832
|
+
audio: number().int(),
|
|
19833
|
+
/**
|
|
19834
|
+
* Energy-weighted mean dBFS of the audio events in this bucket — the LEVEL,
|
|
19835
|
+
* as opposed to `audio`, which is their COUNT (D431).
|
|
19836
|
+
*
|
|
19837
|
+
* ABSENT when the bucket holds no audio event. Absence means "nothing was
|
|
19838
|
+
* measured", which is not the same claim as silence, and a lane that cannot
|
|
19839
|
+
* tell them apart paints a quiet hour at full scale — which is exactly what
|
|
19840
|
+
* the count-on-a-level-meter did.
|
|
19841
|
+
*/
|
|
19842
|
+
audioDbfs: number().optional()
|
|
19833
19843
|
});
|
|
19834
19844
|
/**
|
|
19835
19845
|
* One camera's row in a `getEventDensityBatch` answer.
|
|
@@ -28008,7 +28018,23 @@ var RecordingRangeSchema = object({
|
|
|
28008
28018
|
});
|
|
28009
28019
|
var RecordingAvailabilitySchema = object({
|
|
28010
28020
|
deviceId: number(),
|
|
28011
|
-
ranges: array(RecordingRangeSchema)
|
|
28021
|
+
ranges: array(RecordingRangeSchema),
|
|
28022
|
+
/**
|
|
28023
|
+
* Every profile this camera has footage in — not only the one `ranges`
|
|
28024
|
+
* describes (D433).
|
|
28025
|
+
*
|
|
28026
|
+
* `ranges` answers for ONE profile by design: the timeline is a single bar,
|
|
28027
|
+
* and enumerating all of them triples the directory reads for a bar that
|
|
28028
|
+
* would look identical. But the answer used to say nothing about that, so a
|
|
28029
|
+
* caller asking "what can I export?" read the single preferred profile as
|
|
28030
|
+
* the only one that exists — on this deployment every camera records `high`
|
|
28031
|
+
* AND `low`, the low tree holding 14 GB for camera 615 alone, and the export
|
|
28032
|
+
* UI could not see it.
|
|
28033
|
+
*
|
|
28034
|
+
* Cheap: it is the same shallow directory read the profile CHOICE already
|
|
28035
|
+
* makes. Ask for a specific profile's ranges with the `profile` input.
|
|
28036
|
+
*/
|
|
28037
|
+
profilesWithFootage: array(string())
|
|
28012
28038
|
});
|
|
28013
28039
|
var RecordingDaysSchema = object({
|
|
28014
28040
|
deviceId: number(),
|
|
@@ -28034,7 +28060,11 @@ var RecordingDaysSchema = object({
|
|
|
28034
28060
|
var RecordingAvailabilityForDeviceSchema = object({
|
|
28035
28061
|
deviceId: number(),
|
|
28036
28062
|
read: _enum(["read", "unreadable"]),
|
|
28037
|
-
ranges: array(RecordingRangeSchema).readonly()
|
|
28063
|
+
ranges: array(RecordingRangeSchema).readonly(),
|
|
28064
|
+
/** Same field, same meaning, as the singular answer (D433). A row that
|
|
28065
|
+
* dropped it would tell a grid caller the archive holds one profile.
|
|
28066
|
+
* Empty on an `'unreadable'` row: nobody looked. */
|
|
28067
|
+
profilesWithFootage: array(string()).readonly()
|
|
28038
28068
|
});
|
|
28039
28069
|
/**
|
|
28040
28070
|
* One camera's row in a `getDaysWithRecordingsBatch` answer. Same rule as
|
|
@@ -28324,7 +28354,14 @@ var ReadWindowBytesResultSchema = discriminatedUnion("kind", [object({
|
|
|
28324
28354
|
method(object({
|
|
28325
28355
|
deviceId: number(),
|
|
28326
28356
|
fromMs: number(),
|
|
28327
|
-
toMs: number()
|
|
28357
|
+
toMs: number(),
|
|
28358
|
+
/**
|
|
28359
|
+
* Answer for THIS profile instead of the preferred one (D433). Absent
|
|
28360
|
+
* keeps the timeline's behaviour — one bar, one profile, one set of
|
|
28361
|
+
* reads. `profilesWithFootage` on the answer says what may be asked
|
|
28362
|
+
* for.
|
|
28363
|
+
*/
|
|
28364
|
+
profile: string().optional()
|
|
28328
28365
|
}), RecordingAvailabilitySchema, {
|
|
28329
28366
|
kind: "query",
|
|
28330
28367
|
auth: "protected"
|
|
@@ -19825,7 +19825,17 @@ var EventDensityBucketSchema = object({
|
|
|
19825
19825
|
bucketStart: number(),
|
|
19826
19826
|
motion: number().int(),
|
|
19827
19827
|
object: number().int(),
|
|
19828
|
-
audio: number().int()
|
|
19828
|
+
audio: number().int(),
|
|
19829
|
+
/**
|
|
19830
|
+
* Energy-weighted mean dBFS of the audio events in this bucket — the LEVEL,
|
|
19831
|
+
* as opposed to `audio`, which is their COUNT (D431).
|
|
19832
|
+
*
|
|
19833
|
+
* ABSENT when the bucket holds no audio event. Absence means "nothing was
|
|
19834
|
+
* measured", which is not the same claim as silence, and a lane that cannot
|
|
19835
|
+
* tell them apart paints a quiet hour at full scale — which is exactly what
|
|
19836
|
+
* the count-on-a-level-meter did.
|
|
19837
|
+
*/
|
|
19838
|
+
audioDbfs: number().optional()
|
|
19829
19839
|
});
|
|
19830
19840
|
/**
|
|
19831
19841
|
* One camera's row in a `getEventDensityBatch` answer.
|
|
@@ -28004,7 +28014,23 @@ var RecordingRangeSchema = object({
|
|
|
28004
28014
|
});
|
|
28005
28015
|
var RecordingAvailabilitySchema = object({
|
|
28006
28016
|
deviceId: number(),
|
|
28007
|
-
ranges: array(RecordingRangeSchema)
|
|
28017
|
+
ranges: array(RecordingRangeSchema),
|
|
28018
|
+
/**
|
|
28019
|
+
* Every profile this camera has footage in — not only the one `ranges`
|
|
28020
|
+
* describes (D433).
|
|
28021
|
+
*
|
|
28022
|
+
* `ranges` answers for ONE profile by design: the timeline is a single bar,
|
|
28023
|
+
* and enumerating all of them triples the directory reads for a bar that
|
|
28024
|
+
* would look identical. But the answer used to say nothing about that, so a
|
|
28025
|
+
* caller asking "what can I export?" read the single preferred profile as
|
|
28026
|
+
* the only one that exists — on this deployment every camera records `high`
|
|
28027
|
+
* AND `low`, the low tree holding 14 GB for camera 615 alone, and the export
|
|
28028
|
+
* UI could not see it.
|
|
28029
|
+
*
|
|
28030
|
+
* Cheap: it is the same shallow directory read the profile CHOICE already
|
|
28031
|
+
* makes. Ask for a specific profile's ranges with the `profile` input.
|
|
28032
|
+
*/
|
|
28033
|
+
profilesWithFootage: array(string())
|
|
28008
28034
|
});
|
|
28009
28035
|
var RecordingDaysSchema = object({
|
|
28010
28036
|
deviceId: number(),
|
|
@@ -28030,7 +28056,11 @@ var RecordingDaysSchema = object({
|
|
|
28030
28056
|
var RecordingAvailabilityForDeviceSchema = object({
|
|
28031
28057
|
deviceId: number(),
|
|
28032
28058
|
read: _enum(["read", "unreadable"]),
|
|
28033
|
-
ranges: array(RecordingRangeSchema).readonly()
|
|
28059
|
+
ranges: array(RecordingRangeSchema).readonly(),
|
|
28060
|
+
/** Same field, same meaning, as the singular answer (D433). A row that
|
|
28061
|
+
* dropped it would tell a grid caller the archive holds one profile.
|
|
28062
|
+
* Empty on an `'unreadable'` row: nobody looked. */
|
|
28063
|
+
profilesWithFootage: array(string()).readonly()
|
|
28034
28064
|
});
|
|
28035
28065
|
/**
|
|
28036
28066
|
* One camera's row in a `getDaysWithRecordingsBatch` answer. Same rule as
|
|
@@ -28320,7 +28350,14 @@ var ReadWindowBytesResultSchema = discriminatedUnion("kind", [object({
|
|
|
28320
28350
|
method(object({
|
|
28321
28351
|
deviceId: number(),
|
|
28322
28352
|
fromMs: number(),
|
|
28323
|
-
toMs: number()
|
|
28353
|
+
toMs: number(),
|
|
28354
|
+
/**
|
|
28355
|
+
* Answer for THIS profile instead of the preferred one (D433). Absent
|
|
28356
|
+
* keeps the timeline's behaviour — one bar, one profile, one set of
|
|
28357
|
+
* reads. `profilesWithFootage` on the answer says what may be asked
|
|
28358
|
+
* for.
|
|
28359
|
+
*/
|
|
28360
|
+
profile: string().optional()
|
|
28324
28361
|
}), RecordingAvailabilitySchema, {
|
|
28325
28362
|
kind: "query",
|
|
28326
28363
|
auth: "protected"
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@camstack/addon-export-google",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.57",
|
|
4
4
|
"description": "Google Home export — hub-side smart-home fulfillment (SYNC / QUERY / EXECUTE / DISCONNECT) for the non-camera fleet, served over the hub's own OAuth account link. No Google credential is stored, sent or required.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"camstack",
|