@camstack/addon-provider-reolink 1.2.100 → 1.2.101

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
@@ -11119,12 +11119,30 @@ var BackupDestinationInfoSchema = object({
11119
11119
  lastSuccessAt: number().optional(),
11120
11120
  /** Newest-archive size from `manifests.json`, or undefined. */
11121
11121
  lastSuccessSizeBytes: number().optional(),
11122
- /** Per-destination cron expression. Empty = manual-only (no schedule). */
11122
+ /**
11123
+ * Cron cadence(s) of the ENABLED schedules that fan out to this
11124
+ * destination, comma-joined. Absent when no enabled schedule targets it
11125
+ * — a destination nothing is scheduled to write to must not advertise a
11126
+ * cadence (D384). This is never the `backup_destination_policies.cron`
11127
+ * column: that per-location cron has scheduled nothing since 2026-07-28
11128
+ * and reading it made a destination with a DISABLED schedule claim a
11129
+ * nightly run.
11130
+ */
11123
11131
  cron: string().optional(),
11124
- /** ms-epoch of next computed firing for this destination's cron, if any. */
11132
+ /** ms-epoch of the next firing across those schedules (earliest), if any. */
11125
11133
  nextRunAt: number().optional(),
11126
- /** ms-epoch of last successful scheduled run (mirrors policy.lastRunAt). */
11127
- lastRunAt: number().optional()
11134
+ /**
11135
+ * ms-epoch of the last time a run ATTEMPTED to write here — success or
11136
+ * failure. Never a success stamp: pair it with `lastSuccessAt` (the
11137
+ * newest archive that actually landed) and `lastError`.
11138
+ */
11139
+ lastAttemptAt: number().optional(),
11140
+ /**
11141
+ * Why the last attempt failed, verbatim. Absent when the last attempt
11142
+ * landed the archive. A destination that has never been written to has
11143
+ * neither this nor `lastAttemptAt`.
11144
+ */
11145
+ lastError: string().optional()
11128
11146
  });
11129
11147
  /**
11130
11148
  * Per-archive entry returned by `backup.listArchives({ destinationId })`.
@@ -11287,8 +11305,16 @@ var BackupScheduleSchema = object({
11287
11305
  retentionCount: number().int().min(1).max(1e3),
11288
11306
  /** Optional subset of source locations to include; omitted = all. */
11289
11307
  dataSources: array(string()).readonly().optional(),
11290
- /** ms-epoch of last successful run. */
11291
- lastRunAt: number().optional(),
11308
+ /**
11309
+ * ms-epoch of the last tick that FIRED this schedule. Stamped before the
11310
+ * archive runs (it is the dedupe anchor), so it says "attempted", never
11311
+ * "succeeded" — a run refused by every destination stamps it too.
11312
+ */
11313
+ lastAttemptAt: number().optional(),
11314
+ /** ms-epoch of the last run of this schedule that landed at ≥1 destination. */
11315
+ lastSuccessAt: number().optional(),
11316
+ /** Why the last fired run failed, verbatim. Absent when it succeeded. */
11317
+ lastError: string().optional(),
11292
11318
  /** ms-epoch of next computed firing (read-only, filled on list). */
11293
11319
  nextRunAt: number().optional()
11294
11320
  });
@@ -11337,14 +11363,7 @@ method(_void(), array(BackupDestinationInfoSchema).readonly(), { auth: "admin" }
11337
11363
  locationId: string(),
11338
11364
  enabled: boolean(),
11339
11365
  retentionCount: number().int().min(1).max(1e3),
11340
- label: string().optional(),
11341
- /**
11342
- * Per-destination cron expression. Empty string clears the
11343
- * schedule (manual-only). Validated server-side via croner;
11344
- * malformed expressions reject the upsert with an actionable
11345
- * message.
11346
- */
11347
- cron: string().optional()
11366
+ label: string().optional()
11348
11367
  }), _void(), {
11349
11368
  kind: "mutation",
11350
11369
  auth: "admin"
package/dist/addon.mjs CHANGED
@@ -11114,12 +11114,30 @@ var BackupDestinationInfoSchema = object({
11114
11114
  lastSuccessAt: number().optional(),
11115
11115
  /** Newest-archive size from `manifests.json`, or undefined. */
11116
11116
  lastSuccessSizeBytes: number().optional(),
11117
- /** Per-destination cron expression. Empty = manual-only (no schedule). */
11117
+ /**
11118
+ * Cron cadence(s) of the ENABLED schedules that fan out to this
11119
+ * destination, comma-joined. Absent when no enabled schedule targets it
11120
+ * — a destination nothing is scheduled to write to must not advertise a
11121
+ * cadence (D384). This is never the `backup_destination_policies.cron`
11122
+ * column: that per-location cron has scheduled nothing since 2026-07-28
11123
+ * and reading it made a destination with a DISABLED schedule claim a
11124
+ * nightly run.
11125
+ */
11118
11126
  cron: string().optional(),
11119
- /** ms-epoch of next computed firing for this destination's cron, if any. */
11127
+ /** ms-epoch of the next firing across those schedules (earliest), if any. */
11120
11128
  nextRunAt: number().optional(),
11121
- /** ms-epoch of last successful scheduled run (mirrors policy.lastRunAt). */
11122
- lastRunAt: number().optional()
11129
+ /**
11130
+ * ms-epoch of the last time a run ATTEMPTED to write here — success or
11131
+ * failure. Never a success stamp: pair it with `lastSuccessAt` (the
11132
+ * newest archive that actually landed) and `lastError`.
11133
+ */
11134
+ lastAttemptAt: number().optional(),
11135
+ /**
11136
+ * Why the last attempt failed, verbatim. Absent when the last attempt
11137
+ * landed the archive. A destination that has never been written to has
11138
+ * neither this nor `lastAttemptAt`.
11139
+ */
11140
+ lastError: string().optional()
11123
11141
  });
11124
11142
  /**
11125
11143
  * Per-archive entry returned by `backup.listArchives({ destinationId })`.
@@ -11282,8 +11300,16 @@ var BackupScheduleSchema = object({
11282
11300
  retentionCount: number().int().min(1).max(1e3),
11283
11301
  /** Optional subset of source locations to include; omitted = all. */
11284
11302
  dataSources: array(string()).readonly().optional(),
11285
- /** ms-epoch of last successful run. */
11286
- lastRunAt: number().optional(),
11303
+ /**
11304
+ * ms-epoch of the last tick that FIRED this schedule. Stamped before the
11305
+ * archive runs (it is the dedupe anchor), so it says "attempted", never
11306
+ * "succeeded" — a run refused by every destination stamps it too.
11307
+ */
11308
+ lastAttemptAt: number().optional(),
11309
+ /** ms-epoch of the last run of this schedule that landed at ≥1 destination. */
11310
+ lastSuccessAt: number().optional(),
11311
+ /** Why the last fired run failed, verbatim. Absent when it succeeded. */
11312
+ lastError: string().optional(),
11287
11313
  /** ms-epoch of next computed firing (read-only, filled on list). */
11288
11314
  nextRunAt: number().optional()
11289
11315
  });
@@ -11332,14 +11358,7 @@ method(_void(), array(BackupDestinationInfoSchema).readonly(), { auth: "admin" }
11332
11358
  locationId: string(),
11333
11359
  enabled: boolean(),
11334
11360
  retentionCount: number().int().min(1).max(1e3),
11335
- label: string().optional(),
11336
- /**
11337
- * Per-destination cron expression. Empty string clears the
11338
- * schedule (manual-only). Validated server-side via croner;
11339
- * malformed expressions reject the upsert with an actionable
11340
- * message.
11341
- */
11342
- cron: string().optional()
11361
+ label: string().optional()
11343
11362
  }), _void(), {
11344
11363
  kind: "mutation",
11345
11364
  auth: "admin"
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@camstack/addon-provider-reolink",
3
- "version": "1.2.100",
3
+ "version": "1.2.101",
4
4
  "description": "Reolink camera device provider addon for CamStack — native Baichuan protocol",
5
5
  "keywords": [
6
6
  "camstack",