@camstack/addon-decoder-ffmpeg 1.2.20 → 1.2.22

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/index.js CHANGED
@@ -20011,6 +20011,14 @@ var ClipSchema = object({
20011
20011
  endMs: number()
20012
20012
  }),
20013
20013
  /**
20014
+ * Distinct object classes attached to this visit (`person`, `car`, …),
20015
+ * dominant first, capped at {@link MAX_CLIP_LABELS}. The ribbon renders these
20016
+ * instead of the bare kind — "Object" tells the operator nothing a colour bar
20017
+ * did not. Absent (never empty) when the visit attached no classified object
20018
+ * event, so a motion/audio-only visit keeps its kind label.
20019
+ */
20020
+ labels: array(string()).max(3).optional(),
20021
+ /**
20014
20022
  * Lazy thumbnail URL, never inlined.
20015
20023
  *
20016
20024
  * Recording-derived clips (events-mode keep-window, and the prepared
@@ -24345,9 +24353,21 @@ var RecordingLocationUsageSchema = object({
24345
24353
  * previously rendered as two identical "disks" with a nonsensical used
24346
24354
  * split — hydrate attribution across aliases is arbitrary by nature. */
24347
24355
  locationIds: array(string()).optional(),
24348
- /** Bytes of recordings stored on this PHYSICAL volume (all aliases). */
24356
+ /**
24357
+ * Filesystem root of the physical volume this row accounts — the only
24358
+ * operator-legible identity when a location has no `displayName` yet, and
24359
+ * what a "which disk is full" alert has to name. OPTIONAL for the same
24360
+ * train-skew reason as `oldestMs`: a recorder that predates the field omits
24361
+ * it, and this schema must keep validating that older provider's payload.
24362
+ */
24363
+ root: string().optional(),
24364
+ /** Bytes of recordings stored on this PHYSICAL volume (all aliases). This is
24365
+ * the footage's SHARE of the volume, not how full the volume is — the disk
24366
+ * also holds everything that is not recordings. Volume fill is
24367
+ * `(totalBytes - availableBytes) / totalBytes`. */
24349
24368
  usedBytes: number(),
24350
- /** Free bytes on the location's volume; null when capacity is unknown (remote). */
24369
+ /** Free bytes on the location's volume; null when capacity is unknown
24370
+ * (remote/unstattable — the recorder logs the statfs failure with the root). */
24351
24371
  availableBytes: number().nullable(),
24352
24372
  /** Total bytes of the location's volume; null when unknown. */
24353
24373
  totalBytes: number().nullable()
@@ -24359,7 +24379,15 @@ var RecordingStorageUsageSchema = object({
24359
24379
  nodeId: string(),
24360
24380
  totalUsedBytes: number(),
24361
24381
  devices: array(RecordingDeviceUsageSchema),
24362
- locations: array(RecordingLocationUsageSchema)
24382
+ /**
24383
+ * Per-physical-volume capacity. OPTIONAL, and consumers must render the rest
24384
+ * of the payload without it: the hub serves this method through a BAKED
24385
+ * router, so a hub whose framework train predates a change to this array
24386
+ * strips it out of an answer a newer recorder happily produced. A UI that
24387
+ * dereferences it unconditionally crashes the whole Storage page over a
24388
+ * missing disk bar.
24389
+ */
24390
+ locations: array(RecordingLocationUsageSchema).optional()
24363
24391
  });
24364
24392
  /**
24365
24393
  * The OPERATOR-ARMED half of multi-location recordings (D116).
@@ -33475,8 +33503,14 @@ Object.freeze({
33475
33503
  "network-access": "ingress",
33476
33504
  "smtp-provider": "email"
33477
33505
  });
33506
+ /** Schema defaults — an untouched sub-field must author exactly these. */
33507
+ var NC_AUDIO_DEFAULTS = {
33508
+ hitPercent: 60,
33509
+ samplingSeconds: 10
33510
+ };
33478
33511
  new Map(AUDIO_MACRO_LABELS.flatMap((macro) => macro.icon === void 0 ? [] : [[macro.id, macro.icon]]));
33479
33512
  new Set(["devices", "classes"]);
33513
+ NC_AUDIO_DEFAULTS.hitPercent, NC_AUDIO_DEFAULTS.samplingSeconds;
33480
33514
  /**
33481
33515
  * TimelapseRule — the STANDALONE scheduled timelapse producer's rule model.
33482
33516
  *
package/dist/index.mjs CHANGED
@@ -20007,6 +20007,14 @@ var ClipSchema = object({
20007
20007
  endMs: number()
20008
20008
  }),
20009
20009
  /**
20010
+ * Distinct object classes attached to this visit (`person`, `car`, …),
20011
+ * dominant first, capped at {@link MAX_CLIP_LABELS}. The ribbon renders these
20012
+ * instead of the bare kind — "Object" tells the operator nothing a colour bar
20013
+ * did not. Absent (never empty) when the visit attached no classified object
20014
+ * event, so a motion/audio-only visit keeps its kind label.
20015
+ */
20016
+ labels: array(string()).max(3).optional(),
20017
+ /**
20010
20018
  * Lazy thumbnail URL, never inlined.
20011
20019
  *
20012
20020
  * Recording-derived clips (events-mode keep-window, and the prepared
@@ -24341,9 +24349,21 @@ var RecordingLocationUsageSchema = object({
24341
24349
  * previously rendered as two identical "disks" with a nonsensical used
24342
24350
  * split — hydrate attribution across aliases is arbitrary by nature. */
24343
24351
  locationIds: array(string()).optional(),
24344
- /** Bytes of recordings stored on this PHYSICAL volume (all aliases). */
24352
+ /**
24353
+ * Filesystem root of the physical volume this row accounts — the only
24354
+ * operator-legible identity when a location has no `displayName` yet, and
24355
+ * what a "which disk is full" alert has to name. OPTIONAL for the same
24356
+ * train-skew reason as `oldestMs`: a recorder that predates the field omits
24357
+ * it, and this schema must keep validating that older provider's payload.
24358
+ */
24359
+ root: string().optional(),
24360
+ /** Bytes of recordings stored on this PHYSICAL volume (all aliases). This is
24361
+ * the footage's SHARE of the volume, not how full the volume is — the disk
24362
+ * also holds everything that is not recordings. Volume fill is
24363
+ * `(totalBytes - availableBytes) / totalBytes`. */
24345
24364
  usedBytes: number(),
24346
- /** Free bytes on the location's volume; null when capacity is unknown (remote). */
24365
+ /** Free bytes on the location's volume; null when capacity is unknown
24366
+ * (remote/unstattable — the recorder logs the statfs failure with the root). */
24347
24367
  availableBytes: number().nullable(),
24348
24368
  /** Total bytes of the location's volume; null when unknown. */
24349
24369
  totalBytes: number().nullable()
@@ -24355,7 +24375,15 @@ var RecordingStorageUsageSchema = object({
24355
24375
  nodeId: string(),
24356
24376
  totalUsedBytes: number(),
24357
24377
  devices: array(RecordingDeviceUsageSchema),
24358
- locations: array(RecordingLocationUsageSchema)
24378
+ /**
24379
+ * Per-physical-volume capacity. OPTIONAL, and consumers must render the rest
24380
+ * of the payload without it: the hub serves this method through a BAKED
24381
+ * router, so a hub whose framework train predates a change to this array
24382
+ * strips it out of an answer a newer recorder happily produced. A UI that
24383
+ * dereferences it unconditionally crashes the whole Storage page over a
24384
+ * missing disk bar.
24385
+ */
24386
+ locations: array(RecordingLocationUsageSchema).optional()
24359
24387
  });
24360
24388
  /**
24361
24389
  * The OPERATOR-ARMED half of multi-location recordings (D116).
@@ -33471,8 +33499,14 @@ Object.freeze({
33471
33499
  "network-access": "ingress",
33472
33500
  "smtp-provider": "email"
33473
33501
  });
33502
+ /** Schema defaults — an untouched sub-field must author exactly these. */
33503
+ var NC_AUDIO_DEFAULTS = {
33504
+ hitPercent: 60,
33505
+ samplingSeconds: 10
33506
+ };
33474
33507
  new Map(AUDIO_MACRO_LABELS.flatMap((macro) => macro.icon === void 0 ? [] : [[macro.id, macro.icon]]));
33475
33508
  new Set(["devices", "classes"]);
33509
+ NC_AUDIO_DEFAULTS.hitPercent, NC_AUDIO_DEFAULTS.samplingSeconds;
33476
33510
  /**
33477
33511
  * TimelapseRule — the STANDALONE scheduled timelapse producer's rule model.
33478
33512
  *
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@camstack/addon-decoder-ffmpeg",
3
- "version": "1.2.20",
3
+ "version": "1.2.22",
4
4
  "description": "Standalone ffmpeg-subprocess decoder fallback addon for CamStack",
5
5
  "keywords": [
6
6
  "camstack",