@camstack/addon-static-turn 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.
@@ -24229,9 +24229,21 @@ var RecordingLocationUsageSchema = object({
24229
24229
  * previously rendered as two identical "disks" with a nonsensical used
24230
24230
  * split — hydrate attribution across aliases is arbitrary by nature. */
24231
24231
  locationIds: array(string()).optional(),
24232
- /** Bytes of recordings stored on this PHYSICAL volume (all aliases). */
24232
+ /**
24233
+ * Filesystem root of the physical volume this row accounts — the only
24234
+ * operator-legible identity when a location has no `displayName` yet, and
24235
+ * what a "which disk is full" alert has to name. OPTIONAL for the same
24236
+ * train-skew reason as `oldestMs`: a recorder that predates the field omits
24237
+ * it, and this schema must keep validating that older provider's payload.
24238
+ */
24239
+ root: string().optional(),
24240
+ /** Bytes of recordings stored on this PHYSICAL volume (all aliases). This is
24241
+ * the footage's SHARE of the volume, not how full the volume is — the disk
24242
+ * also holds everything that is not recordings. Volume fill is
24243
+ * `(totalBytes - availableBytes) / totalBytes`. */
24233
24244
  usedBytes: number(),
24234
- /** Free bytes on the location's volume; null when capacity is unknown (remote). */
24245
+ /** Free bytes on the location's volume; null when capacity is unknown
24246
+ * (remote/unstattable — the recorder logs the statfs failure with the root). */
24235
24247
  availableBytes: number().nullable(),
24236
24248
  /** Total bytes of the location's volume; null when unknown. */
24237
24249
  totalBytes: number().nullable()
@@ -24243,7 +24255,15 @@ var RecordingStorageUsageSchema = object({
24243
24255
  nodeId: string(),
24244
24256
  totalUsedBytes: number(),
24245
24257
  devices: array(RecordingDeviceUsageSchema),
24246
- locations: array(RecordingLocationUsageSchema)
24258
+ /**
24259
+ * Per-physical-volume capacity. OPTIONAL, and consumers must render the rest
24260
+ * of the payload without it: the hub serves this method through a BAKED
24261
+ * router, so a hub whose framework train predates a change to this array
24262
+ * strips it out of an answer a newer recorder happily produced. A UI that
24263
+ * dereferences it unconditionally crashes the whole Storage page over a
24264
+ * missing disk bar.
24265
+ */
24266
+ locations: array(RecordingLocationUsageSchema).optional()
24247
24267
  });
24248
24268
  /**
24249
24269
  * The OPERATOR-ARMED half of multi-location recordings (D116).
@@ -33359,8 +33379,14 @@ Object.freeze({
33359
33379
  "network-access": "ingress",
33360
33380
  "smtp-provider": "email"
33361
33381
  });
33382
+ /** Schema defaults — an untouched sub-field must author exactly these. */
33383
+ var NC_AUDIO_DEFAULTS = {
33384
+ hitPercent: 60,
33385
+ samplingSeconds: 10
33386
+ };
33362
33387
  new Map(AUDIO_MACRO_LABELS.flatMap((macro) => macro.icon === void 0 ? [] : [[macro.id, macro.icon]]));
33363
33388
  new Set(["devices", "classes"]);
33389
+ NC_AUDIO_DEFAULTS.hitPercent, NC_AUDIO_DEFAULTS.samplingSeconds;
33364
33390
  /**
33365
33391
  * TimelapseRule — the STANDALONE scheduled timelapse producer's rule model.
33366
33392
  *
@@ -24228,9 +24228,21 @@ var RecordingLocationUsageSchema = object({
24228
24228
  * previously rendered as two identical "disks" with a nonsensical used
24229
24229
  * split — hydrate attribution across aliases is arbitrary by nature. */
24230
24230
  locationIds: array(string()).optional(),
24231
- /** Bytes of recordings stored on this PHYSICAL volume (all aliases). */
24231
+ /**
24232
+ * Filesystem root of the physical volume this row accounts — the only
24233
+ * operator-legible identity when a location has no `displayName` yet, and
24234
+ * what a "which disk is full" alert has to name. OPTIONAL for the same
24235
+ * train-skew reason as `oldestMs`: a recorder that predates the field omits
24236
+ * it, and this schema must keep validating that older provider's payload.
24237
+ */
24238
+ root: string().optional(),
24239
+ /** Bytes of recordings stored on this PHYSICAL volume (all aliases). This is
24240
+ * the footage's SHARE of the volume, not how full the volume is — the disk
24241
+ * also holds everything that is not recordings. Volume fill is
24242
+ * `(totalBytes - availableBytes) / totalBytes`. */
24232
24243
  usedBytes: number(),
24233
- /** Free bytes on the location's volume; null when capacity is unknown (remote). */
24244
+ /** Free bytes on the location's volume; null when capacity is unknown
24245
+ * (remote/unstattable — the recorder logs the statfs failure with the root). */
24234
24246
  availableBytes: number().nullable(),
24235
24247
  /** Total bytes of the location's volume; null when unknown. */
24236
24248
  totalBytes: number().nullable()
@@ -24242,7 +24254,15 @@ var RecordingStorageUsageSchema = object({
24242
24254
  nodeId: string(),
24243
24255
  totalUsedBytes: number(),
24244
24256
  devices: array(RecordingDeviceUsageSchema),
24245
- locations: array(RecordingLocationUsageSchema)
24257
+ /**
24258
+ * Per-physical-volume capacity. OPTIONAL, and consumers must render the rest
24259
+ * of the payload without it: the hub serves this method through a BAKED
24260
+ * router, so a hub whose framework train predates a change to this array
24261
+ * strips it out of an answer a newer recorder happily produced. A UI that
24262
+ * dereferences it unconditionally crashes the whole Storage page over a
24263
+ * missing disk bar.
24264
+ */
24265
+ locations: array(RecordingLocationUsageSchema).optional()
24246
24266
  });
24247
24267
  /**
24248
24268
  * The OPERATOR-ARMED half of multi-location recordings (D116).
@@ -33358,8 +33378,14 @@ Object.freeze({
33358
33378
  "network-access": "ingress",
33359
33379
  "smtp-provider": "email"
33360
33380
  });
33381
+ /** Schema defaults — an untouched sub-field must author exactly these. */
33382
+ var NC_AUDIO_DEFAULTS = {
33383
+ hitPercent: 60,
33384
+ samplingSeconds: 10
33385
+ };
33361
33386
  new Map(AUDIO_MACRO_LABELS.flatMap((macro) => macro.icon === void 0 ? [] : [[macro.id, macro.icon]]));
33362
33387
  new Set(["devices", "classes"]);
33388
+ NC_AUDIO_DEFAULTS.hitPercent, NC_AUDIO_DEFAULTS.samplingSeconds;
33363
33389
  /**
33364
33390
  * TimelapseRule — the STANDALONE scheduled timelapse producer's rule model.
33365
33391
  *
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@camstack/addon-static-turn",
3
- "version": "1.2.21",
3
+ "version": "1.2.22",
4
4
  "description": "Static / self-hosted (coturn) TURN provider for CamStack",
5
5
  "keywords": [
6
6
  "camstack",