@camstack/addon-decoder-nodeav 1.2.21 → 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
@@ -24352,9 +24352,21 @@ var RecordingLocationUsageSchema = object({
24352
24352
  * previously rendered as two identical "disks" with a nonsensical used
24353
24353
  * split — hydrate attribution across aliases is arbitrary by nature. */
24354
24354
  locationIds: array(string()).optional(),
24355
- /** Bytes of recordings stored on this PHYSICAL volume (all aliases). */
24355
+ /**
24356
+ * Filesystem root of the physical volume this row accounts — the only
24357
+ * operator-legible identity when a location has no `displayName` yet, and
24358
+ * what a "which disk is full" alert has to name. OPTIONAL for the same
24359
+ * train-skew reason as `oldestMs`: a recorder that predates the field omits
24360
+ * it, and this schema must keep validating that older provider's payload.
24361
+ */
24362
+ root: string().optional(),
24363
+ /** Bytes of recordings stored on this PHYSICAL volume (all aliases). This is
24364
+ * the footage's SHARE of the volume, not how full the volume is — the disk
24365
+ * also holds everything that is not recordings. Volume fill is
24366
+ * `(totalBytes - availableBytes) / totalBytes`. */
24356
24367
  usedBytes: number(),
24357
- /** Free bytes on the location's volume; null when capacity is unknown (remote). */
24368
+ /** Free bytes on the location's volume; null when capacity is unknown
24369
+ * (remote/unstattable — the recorder logs the statfs failure with the root). */
24358
24370
  availableBytes: number().nullable(),
24359
24371
  /** Total bytes of the location's volume; null when unknown. */
24360
24372
  totalBytes: number().nullable()
@@ -24366,7 +24378,15 @@ var RecordingStorageUsageSchema = object({
24366
24378
  nodeId: string(),
24367
24379
  totalUsedBytes: number(),
24368
24380
  devices: array(RecordingDeviceUsageSchema),
24369
- locations: array(RecordingLocationUsageSchema)
24381
+ /**
24382
+ * Per-physical-volume capacity. OPTIONAL, and consumers must render the rest
24383
+ * of the payload without it: the hub serves this method through a BAKED
24384
+ * router, so a hub whose framework train predates a change to this array
24385
+ * strips it out of an answer a newer recorder happily produced. A UI that
24386
+ * dereferences it unconditionally crashes the whole Storage page over a
24387
+ * missing disk bar.
24388
+ */
24389
+ locations: array(RecordingLocationUsageSchema).optional()
24370
24390
  });
24371
24391
  /**
24372
24392
  * The OPERATOR-ARMED half of multi-location recordings (D116).
@@ -33482,8 +33502,14 @@ Object.freeze({
33482
33502
  "network-access": "ingress",
33483
33503
  "smtp-provider": "email"
33484
33504
  });
33505
+ /** Schema defaults — an untouched sub-field must author exactly these. */
33506
+ var NC_AUDIO_DEFAULTS = {
33507
+ hitPercent: 60,
33508
+ samplingSeconds: 10
33509
+ };
33485
33510
  new Map(AUDIO_MACRO_LABELS.flatMap((macro) => macro.icon === void 0 ? [] : [[macro.id, macro.icon]]));
33486
33511
  new Set(["devices", "classes"]);
33512
+ NC_AUDIO_DEFAULTS.hitPercent, NC_AUDIO_DEFAULTS.samplingSeconds;
33487
33513
  /**
33488
33514
  * TimelapseRule — the STANDALONE scheduled timelapse producer's rule model.
33489
33515
  *
package/dist/index.mjs CHANGED
@@ -24348,9 +24348,21 @@ var RecordingLocationUsageSchema = object({
24348
24348
  * previously rendered as two identical "disks" with a nonsensical used
24349
24349
  * split — hydrate attribution across aliases is arbitrary by nature. */
24350
24350
  locationIds: array(string()).optional(),
24351
- /** Bytes of recordings stored on this PHYSICAL volume (all aliases). */
24351
+ /**
24352
+ * Filesystem root of the physical volume this row accounts — the only
24353
+ * operator-legible identity when a location has no `displayName` yet, and
24354
+ * what a "which disk is full" alert has to name. OPTIONAL for the same
24355
+ * train-skew reason as `oldestMs`: a recorder that predates the field omits
24356
+ * it, and this schema must keep validating that older provider's payload.
24357
+ */
24358
+ root: string().optional(),
24359
+ /** Bytes of recordings stored on this PHYSICAL volume (all aliases). This is
24360
+ * the footage's SHARE of the volume, not how full the volume is — the disk
24361
+ * also holds everything that is not recordings. Volume fill is
24362
+ * `(totalBytes - availableBytes) / totalBytes`. */
24352
24363
  usedBytes: number(),
24353
- /** Free bytes on the location's volume; null when capacity is unknown (remote). */
24364
+ /** Free bytes on the location's volume; null when capacity is unknown
24365
+ * (remote/unstattable — the recorder logs the statfs failure with the root). */
24354
24366
  availableBytes: number().nullable(),
24355
24367
  /** Total bytes of the location's volume; null when unknown. */
24356
24368
  totalBytes: number().nullable()
@@ -24362,7 +24374,15 @@ var RecordingStorageUsageSchema = object({
24362
24374
  nodeId: string(),
24363
24375
  totalUsedBytes: number(),
24364
24376
  devices: array(RecordingDeviceUsageSchema),
24365
- locations: array(RecordingLocationUsageSchema)
24377
+ /**
24378
+ * Per-physical-volume capacity. OPTIONAL, and consumers must render the rest
24379
+ * of the payload without it: the hub serves this method through a BAKED
24380
+ * router, so a hub whose framework train predates a change to this array
24381
+ * strips it out of an answer a newer recorder happily produced. A UI that
24382
+ * dereferences it unconditionally crashes the whole Storage page over a
24383
+ * missing disk bar.
24384
+ */
24385
+ locations: array(RecordingLocationUsageSchema).optional()
24366
24386
  });
24367
24387
  /**
24368
24388
  * The OPERATOR-ARMED half of multi-location recordings (D116).
@@ -33478,8 +33498,14 @@ Object.freeze({
33478
33498
  "network-access": "ingress",
33479
33499
  "smtp-provider": "email"
33480
33500
  });
33501
+ /** Schema defaults — an untouched sub-field must author exactly these. */
33502
+ var NC_AUDIO_DEFAULTS = {
33503
+ hitPercent: 60,
33504
+ samplingSeconds: 10
33505
+ };
33481
33506
  new Map(AUDIO_MACRO_LABELS.flatMap((macro) => macro.icon === void 0 ? [] : [[macro.id, macro.icon]]));
33482
33507
  new Set(["devices", "classes"]);
33508
+ NC_AUDIO_DEFAULTS.hitPercent, NC_AUDIO_DEFAULTS.samplingSeconds;
33483
33509
  /**
33484
33510
  * TimelapseRule — the STANDALONE scheduled timelapse producer's rule model.
33485
33511
  *
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@camstack/addon-decoder-nodeav",
3
- "version": "1.2.21",
3
+ "version": "1.2.22",
4
4
  "description": "Standalone in-process node-av decoder addon for CamStack",
5
5
  "keywords": [
6
6
  "camstack",