@camstack/addon-provider-ecowitt 0.2.21 → 0.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/addon.js CHANGED
@@ -26255,9 +26255,21 @@ var RecordingLocationUsageSchema = object({
26255
26255
  * previously rendered as two identical "disks" with a nonsensical used
26256
26256
  * split — hydrate attribution across aliases is arbitrary by nature. */
26257
26257
  locationIds: array(string()).optional(),
26258
- /** Bytes of recordings stored on this PHYSICAL volume (all aliases). */
26258
+ /**
26259
+ * Filesystem root of the physical volume this row accounts — the only
26260
+ * operator-legible identity when a location has no `displayName` yet, and
26261
+ * what a "which disk is full" alert has to name. OPTIONAL for the same
26262
+ * train-skew reason as `oldestMs`: a recorder that predates the field omits
26263
+ * it, and this schema must keep validating that older provider's payload.
26264
+ */
26265
+ root: string().optional(),
26266
+ /** Bytes of recordings stored on this PHYSICAL volume (all aliases). This is
26267
+ * the footage's SHARE of the volume, not how full the volume is — the disk
26268
+ * also holds everything that is not recordings. Volume fill is
26269
+ * `(totalBytes - availableBytes) / totalBytes`. */
26259
26270
  usedBytes: number(),
26260
- /** Free bytes on the location's volume; null when capacity is unknown (remote). */
26271
+ /** Free bytes on the location's volume; null when capacity is unknown
26272
+ * (remote/unstattable — the recorder logs the statfs failure with the root). */
26261
26273
  availableBytes: number().nullable(),
26262
26274
  /** Total bytes of the location's volume; null when unknown. */
26263
26275
  totalBytes: number().nullable()
@@ -26269,7 +26281,15 @@ var RecordingStorageUsageSchema = object({
26269
26281
  nodeId: string(),
26270
26282
  totalUsedBytes: number(),
26271
26283
  devices: array(RecordingDeviceUsageSchema),
26272
- locations: array(RecordingLocationUsageSchema)
26284
+ /**
26285
+ * Per-physical-volume capacity. OPTIONAL, and consumers must render the rest
26286
+ * of the payload without it: the hub serves this method through a BAKED
26287
+ * router, so a hub whose framework train predates a change to this array
26288
+ * strips it out of an answer a newer recorder happily produced. A UI that
26289
+ * dereferences it unconditionally crashes the whole Storage page over a
26290
+ * missing disk bar.
26291
+ */
26292
+ locations: array(RecordingLocationUsageSchema).optional()
26273
26293
  });
26274
26294
  /**
26275
26295
  * The OPERATOR-ARMED half of multi-location recordings (D116).
@@ -37054,8 +37074,14 @@ Object.freeze({
37054
37074
  "network-access": "ingress",
37055
37075
  "smtp-provider": "email"
37056
37076
  });
37077
+ /** Schema defaults — an untouched sub-field must author exactly these. */
37078
+ var NC_AUDIO_DEFAULTS = {
37079
+ hitPercent: 60,
37080
+ samplingSeconds: 10
37081
+ };
37057
37082
  new Map(AUDIO_MACRO_LABELS.flatMap((macro) => macro.icon === void 0 ? [] : [[macro.id, macro.icon]]));
37058
37083
  new Set(["devices", "classes"]);
37084
+ NC_AUDIO_DEFAULTS.hitPercent, NC_AUDIO_DEFAULTS.samplingSeconds;
37059
37085
  /**
37060
37086
  * TimelapseRule — the STANDALONE scheduled timelapse producer's rule model.
37061
37087
  *
package/dist/addon.mjs CHANGED
@@ -26254,9 +26254,21 @@ var RecordingLocationUsageSchema = object({
26254
26254
  * previously rendered as two identical "disks" with a nonsensical used
26255
26255
  * split — hydrate attribution across aliases is arbitrary by nature. */
26256
26256
  locationIds: array(string()).optional(),
26257
- /** Bytes of recordings stored on this PHYSICAL volume (all aliases). */
26257
+ /**
26258
+ * Filesystem root of the physical volume this row accounts — the only
26259
+ * operator-legible identity when a location has no `displayName` yet, and
26260
+ * what a "which disk is full" alert has to name. OPTIONAL for the same
26261
+ * train-skew reason as `oldestMs`: a recorder that predates the field omits
26262
+ * it, and this schema must keep validating that older provider's payload.
26263
+ */
26264
+ root: string().optional(),
26265
+ /** Bytes of recordings stored on this PHYSICAL volume (all aliases). This is
26266
+ * the footage's SHARE of the volume, not how full the volume is — the disk
26267
+ * also holds everything that is not recordings. Volume fill is
26268
+ * `(totalBytes - availableBytes) / totalBytes`. */
26258
26269
  usedBytes: number(),
26259
- /** Free bytes on the location's volume; null when capacity is unknown (remote). */
26270
+ /** Free bytes on the location's volume; null when capacity is unknown
26271
+ * (remote/unstattable — the recorder logs the statfs failure with the root). */
26260
26272
  availableBytes: number().nullable(),
26261
26273
  /** Total bytes of the location's volume; null when unknown. */
26262
26274
  totalBytes: number().nullable()
@@ -26268,7 +26280,15 @@ var RecordingStorageUsageSchema = object({
26268
26280
  nodeId: string(),
26269
26281
  totalUsedBytes: number(),
26270
26282
  devices: array(RecordingDeviceUsageSchema),
26271
- locations: array(RecordingLocationUsageSchema)
26283
+ /**
26284
+ * Per-physical-volume capacity. OPTIONAL, and consumers must render the rest
26285
+ * of the payload without it: the hub serves this method through a BAKED
26286
+ * router, so a hub whose framework train predates a change to this array
26287
+ * strips it out of an answer a newer recorder happily produced. A UI that
26288
+ * dereferences it unconditionally crashes the whole Storage page over a
26289
+ * missing disk bar.
26290
+ */
26291
+ locations: array(RecordingLocationUsageSchema).optional()
26272
26292
  });
26273
26293
  /**
26274
26294
  * The OPERATOR-ARMED half of multi-location recordings (D116).
@@ -37053,8 +37073,14 @@ Object.freeze({
37053
37073
  "network-access": "ingress",
37054
37074
  "smtp-provider": "email"
37055
37075
  });
37076
+ /** Schema defaults — an untouched sub-field must author exactly these. */
37077
+ var NC_AUDIO_DEFAULTS = {
37078
+ hitPercent: 60,
37079
+ samplingSeconds: 10
37080
+ };
37056
37081
  new Map(AUDIO_MACRO_LABELS.flatMap((macro) => macro.icon === void 0 ? [] : [[macro.id, macro.icon]]));
37057
37082
  new Set(["devices", "classes"]);
37083
+ NC_AUDIO_DEFAULTS.hitPercent, NC_AUDIO_DEFAULTS.samplingSeconds;
37058
37084
  /**
37059
37085
  * TimelapseRule — the STANDALONE scheduled timelapse producer's rule model.
37060
37086
  *
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@camstack/addon-provider-ecowitt",
3
- "version": "0.2.21",
3
+ "version": "0.2.22",
4
4
  "description": "Ecowitt weather-station device-provider addon for CamStack — wraps the @apocaliss92/nodewitt local-poll / push client",
5
5
  "keywords": [
6
6
  "camstack",