@camstack/addon-provider-dreame 0.2.77 → 0.2.78

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
@@ -63222,12 +63222,30 @@ var BackupDestinationInfoSchema = object({
63222
63222
  lastSuccessAt: number().optional(),
63223
63223
  /** Newest-archive size from `manifests.json`, or undefined. */
63224
63224
  lastSuccessSizeBytes: number().optional(),
63225
- /** Per-destination cron expression. Empty = manual-only (no schedule). */
63225
+ /**
63226
+ * Cron cadence(s) of the ENABLED schedules that fan out to this
63227
+ * destination, comma-joined. Absent when no enabled schedule targets it
63228
+ * — a destination nothing is scheduled to write to must not advertise a
63229
+ * cadence (D384). This is never the `backup_destination_policies.cron`
63230
+ * column: that per-location cron has scheduled nothing since 2026-07-28
63231
+ * and reading it made a destination with a DISABLED schedule claim a
63232
+ * nightly run.
63233
+ */
63226
63234
  cron: string().optional(),
63227
- /** ms-epoch of next computed firing for this destination's cron, if any. */
63235
+ /** ms-epoch of the next firing across those schedules (earliest), if any. */
63228
63236
  nextRunAt: number().optional(),
63229
- /** ms-epoch of last successful scheduled run (mirrors policy.lastRunAt). */
63230
- lastRunAt: number().optional()
63237
+ /**
63238
+ * ms-epoch of the last time a run ATTEMPTED to write here — success or
63239
+ * failure. Never a success stamp: pair it with `lastSuccessAt` (the
63240
+ * newest archive that actually landed) and `lastError`.
63241
+ */
63242
+ lastAttemptAt: number().optional(),
63243
+ /**
63244
+ * Why the last attempt failed, verbatim. Absent when the last attempt
63245
+ * landed the archive. A destination that has never been written to has
63246
+ * neither this nor `lastAttemptAt`.
63247
+ */
63248
+ lastError: string().optional()
63231
63249
  });
63232
63250
  /**
63233
63251
  * Per-archive entry returned by `backup.listArchives({ destinationId })`.
@@ -63390,8 +63408,16 @@ var BackupScheduleSchema = object({
63390
63408
  retentionCount: number().int().min(1).max(1e3),
63391
63409
  /** Optional subset of source locations to include; omitted = all. */
63392
63410
  dataSources: array(string()).readonly().optional(),
63393
- /** ms-epoch of last successful run. */
63394
- lastRunAt: number().optional(),
63411
+ /**
63412
+ * ms-epoch of the last tick that FIRED this schedule. Stamped before the
63413
+ * archive runs (it is the dedupe anchor), so it says "attempted", never
63414
+ * "succeeded" — a run refused by every destination stamps it too.
63415
+ */
63416
+ lastAttemptAt: number().optional(),
63417
+ /** ms-epoch of the last run of this schedule that landed at ≥1 destination. */
63418
+ lastSuccessAt: number().optional(),
63419
+ /** Why the last fired run failed, verbatim. Absent when it succeeded. */
63420
+ lastError: string().optional(),
63395
63421
  /** ms-epoch of next computed firing (read-only, filled on list). */
63396
63422
  nextRunAt: number().optional()
63397
63423
  });
@@ -63440,14 +63466,7 @@ method(_void(), array(BackupDestinationInfoSchema).readonly(), { auth: "admin" }
63440
63466
  locationId: string(),
63441
63467
  enabled: boolean(),
63442
63468
  retentionCount: number().int().min(1).max(1e3),
63443
- label: string().optional(),
63444
- /**
63445
- * Per-destination cron expression. Empty string clears the
63446
- * schedule (manual-only). Validated server-side via croner;
63447
- * malformed expressions reject the upsert with an actionable
63448
- * message.
63449
- */
63450
- cron: string().optional()
63469
+ label: string().optional()
63451
63470
  }), _void(), {
63452
63471
  kind: "mutation",
63453
63472
  auth: "admin"
package/dist/addon.mjs CHANGED
@@ -63219,12 +63219,30 @@ var BackupDestinationInfoSchema = object({
63219
63219
  lastSuccessAt: number().optional(),
63220
63220
  /** Newest-archive size from `manifests.json`, or undefined. */
63221
63221
  lastSuccessSizeBytes: number().optional(),
63222
- /** Per-destination cron expression. Empty = manual-only (no schedule). */
63222
+ /**
63223
+ * Cron cadence(s) of the ENABLED schedules that fan out to this
63224
+ * destination, comma-joined. Absent when no enabled schedule targets it
63225
+ * — a destination nothing is scheduled to write to must not advertise a
63226
+ * cadence (D384). This is never the `backup_destination_policies.cron`
63227
+ * column: that per-location cron has scheduled nothing since 2026-07-28
63228
+ * and reading it made a destination with a DISABLED schedule claim a
63229
+ * nightly run.
63230
+ */
63223
63231
  cron: string().optional(),
63224
- /** ms-epoch of next computed firing for this destination's cron, if any. */
63232
+ /** ms-epoch of the next firing across those schedules (earliest), if any. */
63225
63233
  nextRunAt: number().optional(),
63226
- /** ms-epoch of last successful scheduled run (mirrors policy.lastRunAt). */
63227
- lastRunAt: number().optional()
63234
+ /**
63235
+ * ms-epoch of the last time a run ATTEMPTED to write here — success or
63236
+ * failure. Never a success stamp: pair it with `lastSuccessAt` (the
63237
+ * newest archive that actually landed) and `lastError`.
63238
+ */
63239
+ lastAttemptAt: number().optional(),
63240
+ /**
63241
+ * Why the last attempt failed, verbatim. Absent when the last attempt
63242
+ * landed the archive. A destination that has never been written to has
63243
+ * neither this nor `lastAttemptAt`.
63244
+ */
63245
+ lastError: string().optional()
63228
63246
  });
63229
63247
  /**
63230
63248
  * Per-archive entry returned by `backup.listArchives({ destinationId })`.
@@ -63387,8 +63405,16 @@ var BackupScheduleSchema = object({
63387
63405
  retentionCount: number().int().min(1).max(1e3),
63388
63406
  /** Optional subset of source locations to include; omitted = all. */
63389
63407
  dataSources: array(string()).readonly().optional(),
63390
- /** ms-epoch of last successful run. */
63391
- lastRunAt: number().optional(),
63408
+ /**
63409
+ * ms-epoch of the last tick that FIRED this schedule. Stamped before the
63410
+ * archive runs (it is the dedupe anchor), so it says "attempted", never
63411
+ * "succeeded" — a run refused by every destination stamps it too.
63412
+ */
63413
+ lastAttemptAt: number().optional(),
63414
+ /** ms-epoch of the last run of this schedule that landed at ≥1 destination. */
63415
+ lastSuccessAt: number().optional(),
63416
+ /** Why the last fired run failed, verbatim. Absent when it succeeded. */
63417
+ lastError: string().optional(),
63392
63418
  /** ms-epoch of next computed firing (read-only, filled on list). */
63393
63419
  nextRunAt: number().optional()
63394
63420
  });
@@ -63437,14 +63463,7 @@ method(_void(), array(BackupDestinationInfoSchema).readonly(), { auth: "admin" }
63437
63463
  locationId: string(),
63438
63464
  enabled: boolean(),
63439
63465
  retentionCount: number().int().min(1).max(1e3),
63440
- label: string().optional(),
63441
- /**
63442
- * Per-destination cron expression. Empty string clears the
63443
- * schedule (manual-only). Validated server-side via croner;
63444
- * malformed expressions reject the upsert with an actionable
63445
- * message.
63446
- */
63447
- cron: string().optional()
63466
+ label: string().optional()
63448
63467
  }), _void(), {
63449
63468
  kind: "mutation",
63450
63469
  auth: "admin"
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@camstack/addon-provider-dreame",
3
- "version": "0.2.77",
3
+ "version": "0.2.78",
4
4
  "description": "Dreame robot-vacuum / lawn-mower device-provider addon for CamStack — wraps the @apocaliss92/nodedreame Dreamehome cloud client",
5
5
  "keywords": [
6
6
  "camstack",