@camstack/addon-provider-reolink 1.2.43 → 1.2.45

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 CHANGED
@@ -20552,6 +20552,14 @@ var ClipSchema = object({
20552
20552
  endMs: number()
20553
20553
  }),
20554
20554
  /**
20555
+ * Distinct object classes attached to this visit (`person`, `car`, …),
20556
+ * dominant first, capped at {@link MAX_CLIP_LABELS}. The ribbon renders these
20557
+ * instead of the bare kind — "Object" tells the operator nothing a colour bar
20558
+ * did not. Absent (never empty) when the visit attached no classified object
20559
+ * event, so a motion/audio-only visit keeps its kind label.
20560
+ */
20561
+ labels: array(string()).max(3).optional(),
20562
+ /**
20555
20563
  * Lazy thumbnail URL, never inlined.
20556
20564
  *
20557
20565
  * Recording-derived clips (events-mode keep-window, and the prepared
@@ -26661,9 +26669,21 @@ var RecordingLocationUsageSchema = object({
26661
26669
  * previously rendered as two identical "disks" with a nonsensical used
26662
26670
  * split — hydrate attribution across aliases is arbitrary by nature. */
26663
26671
  locationIds: array(string()).optional(),
26664
- /** Bytes of recordings stored on this PHYSICAL volume (all aliases). */
26672
+ /**
26673
+ * Filesystem root of the physical volume this row accounts — the only
26674
+ * operator-legible identity when a location has no `displayName` yet, and
26675
+ * what a "which disk is full" alert has to name. OPTIONAL for the same
26676
+ * train-skew reason as `oldestMs`: a recorder that predates the field omits
26677
+ * it, and this schema must keep validating that older provider's payload.
26678
+ */
26679
+ root: string().optional(),
26680
+ /** Bytes of recordings stored on this PHYSICAL volume (all aliases). This is
26681
+ * the footage's SHARE of the volume, not how full the volume is — the disk
26682
+ * also holds everything that is not recordings. Volume fill is
26683
+ * `(totalBytes - availableBytes) / totalBytes`. */
26665
26684
  usedBytes: number(),
26666
- /** Free bytes on the location's volume; null when capacity is unknown (remote). */
26685
+ /** Free bytes on the location's volume; null when capacity is unknown
26686
+ * (remote/unstattable — the recorder logs the statfs failure with the root). */
26667
26687
  availableBytes: number().nullable(),
26668
26688
  /** Total bytes of the location's volume; null when unknown. */
26669
26689
  totalBytes: number().nullable()
@@ -26675,7 +26695,15 @@ var RecordingStorageUsageSchema = object({
26675
26695
  nodeId: string(),
26676
26696
  totalUsedBytes: number(),
26677
26697
  devices: array(RecordingDeviceUsageSchema),
26678
- locations: array(RecordingLocationUsageSchema)
26698
+ /**
26699
+ * Per-physical-volume capacity. OPTIONAL, and consumers must render the rest
26700
+ * of the payload without it: the hub serves this method through a BAKED
26701
+ * router, so a hub whose framework train predates a change to this array
26702
+ * strips it out of an answer a newer recorder happily produced. A UI that
26703
+ * dereferences it unconditionally crashes the whole Storage page over a
26704
+ * missing disk bar.
26705
+ */
26706
+ locations: array(RecordingLocationUsageSchema).optional()
26679
26707
  });
26680
26708
  /**
26681
26709
  * The OPERATOR-ARMED half of multi-location recordings (D116).
@@ -37738,8 +37766,14 @@ Object.freeze({
37738
37766
  "network-access": "ingress",
37739
37767
  "smtp-provider": "email"
37740
37768
  });
37769
+ /** Schema defaults — an untouched sub-field must author exactly these. */
37770
+ var NC_AUDIO_DEFAULTS = {
37771
+ hitPercent: 60,
37772
+ samplingSeconds: 10
37773
+ };
37741
37774
  new Map(AUDIO_MACRO_LABELS.flatMap((macro) => macro.icon === void 0 ? [] : [[macro.id, macro.icon]]));
37742
37775
  new Set(["devices", "classes"]);
37776
+ NC_AUDIO_DEFAULTS.hitPercent, NC_AUDIO_DEFAULTS.samplingSeconds;
37743
37777
  /**
37744
37778
  * TimelapseRule — the STANDALONE scheduled timelapse producer's rule model.
37745
37779
  *
package/dist/addon.mjs CHANGED
@@ -20547,6 +20547,14 @@ var ClipSchema = object({
20547
20547
  endMs: number()
20548
20548
  }),
20549
20549
  /**
20550
+ * Distinct object classes attached to this visit (`person`, `car`, …),
20551
+ * dominant first, capped at {@link MAX_CLIP_LABELS}. The ribbon renders these
20552
+ * instead of the bare kind — "Object" tells the operator nothing a colour bar
20553
+ * did not. Absent (never empty) when the visit attached no classified object
20554
+ * event, so a motion/audio-only visit keeps its kind label.
20555
+ */
20556
+ labels: array(string()).max(3).optional(),
20557
+ /**
20550
20558
  * Lazy thumbnail URL, never inlined.
20551
20559
  *
20552
20560
  * Recording-derived clips (events-mode keep-window, and the prepared
@@ -26656,9 +26664,21 @@ var RecordingLocationUsageSchema = object({
26656
26664
  * previously rendered as two identical "disks" with a nonsensical used
26657
26665
  * split — hydrate attribution across aliases is arbitrary by nature. */
26658
26666
  locationIds: array(string()).optional(),
26659
- /** Bytes of recordings stored on this PHYSICAL volume (all aliases). */
26667
+ /**
26668
+ * Filesystem root of the physical volume this row accounts — the only
26669
+ * operator-legible identity when a location has no `displayName` yet, and
26670
+ * what a "which disk is full" alert has to name. OPTIONAL for the same
26671
+ * train-skew reason as `oldestMs`: a recorder that predates the field omits
26672
+ * it, and this schema must keep validating that older provider's payload.
26673
+ */
26674
+ root: string().optional(),
26675
+ /** Bytes of recordings stored on this PHYSICAL volume (all aliases). This is
26676
+ * the footage's SHARE of the volume, not how full the volume is — the disk
26677
+ * also holds everything that is not recordings. Volume fill is
26678
+ * `(totalBytes - availableBytes) / totalBytes`. */
26660
26679
  usedBytes: number(),
26661
- /** Free bytes on the location's volume; null when capacity is unknown (remote). */
26680
+ /** Free bytes on the location's volume; null when capacity is unknown
26681
+ * (remote/unstattable — the recorder logs the statfs failure with the root). */
26662
26682
  availableBytes: number().nullable(),
26663
26683
  /** Total bytes of the location's volume; null when unknown. */
26664
26684
  totalBytes: number().nullable()
@@ -26670,7 +26690,15 @@ var RecordingStorageUsageSchema = object({
26670
26690
  nodeId: string(),
26671
26691
  totalUsedBytes: number(),
26672
26692
  devices: array(RecordingDeviceUsageSchema),
26673
- locations: array(RecordingLocationUsageSchema)
26693
+ /**
26694
+ * Per-physical-volume capacity. OPTIONAL, and consumers must render the rest
26695
+ * of the payload without it: the hub serves this method through a BAKED
26696
+ * router, so a hub whose framework train predates a change to this array
26697
+ * strips it out of an answer a newer recorder happily produced. A UI that
26698
+ * dereferences it unconditionally crashes the whole Storage page over a
26699
+ * missing disk bar.
26700
+ */
26701
+ locations: array(RecordingLocationUsageSchema).optional()
26674
26702
  });
26675
26703
  /**
26676
26704
  * The OPERATOR-ARMED half of multi-location recordings (D116).
@@ -37733,8 +37761,14 @@ Object.freeze({
37733
37761
  "network-access": "ingress",
37734
37762
  "smtp-provider": "email"
37735
37763
  });
37764
+ /** Schema defaults — an untouched sub-field must author exactly these. */
37765
+ var NC_AUDIO_DEFAULTS = {
37766
+ hitPercent: 60,
37767
+ samplingSeconds: 10
37768
+ };
37736
37769
  new Map(AUDIO_MACRO_LABELS.flatMap((macro) => macro.icon === void 0 ? [] : [[macro.id, macro.icon]]));
37737
37770
  new Set(["devices", "classes"]);
37771
+ NC_AUDIO_DEFAULTS.hitPercent, NC_AUDIO_DEFAULTS.samplingSeconds;
37738
37772
  /**
37739
37773
  * TimelapseRule — the STANDALONE scheduled timelapse producer's rule model.
37740
37774
  *
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@camstack/addon-provider-reolink",
3
- "version": "1.2.43",
3
+ "version": "1.2.45",
4
4
  "description": "Reolink camera device provider addon for CamStack — native Baichuan protocol",
5
5
  "keywords": [
6
6
  "camstack",