@camstack/addon-provider-reolink 1.2.81 → 1.2.82

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
@@ -11098,6 +11098,89 @@ var LocationStatSchema = object({
11098
11098
  fileCount: number(),
11099
11099
  present: boolean()
11100
11100
  });
11101
+ /** Lifecycle of a backup run. Terminal states: succeeded / failed / cancelled. */
11102
+ var BackupRunStateSchema = _enum([
11103
+ "queued",
11104
+ "running",
11105
+ "succeeded",
11106
+ "failed",
11107
+ "cancelled"
11108
+ ]);
11109
+ /**
11110
+ * Where a running backup currently is. `queued` before it starts,
11111
+ * `building` while the tar.gz is being staged, `uploading` during the
11112
+ * per-destination fan-out, `done` once terminal.
11113
+ */
11114
+ var BackupRunPhaseSchema = _enum([
11115
+ "queued",
11116
+ "building",
11117
+ "uploading",
11118
+ "done"
11119
+ ]);
11120
+ /**
11121
+ * Observable state of one backup run — readable WHILE it runs via
11122
+ * `backup.listRuns`. This is what makes the execution queue and
11123
+ * `backup.cancel` usable: the 2026-09-04 incident (two concurrent
11124
+ * multi-GB builds, staging 5.1 GB → 18 GB, load 62) was only
11125
+ * diagnosable with `du` because nothing reported that runs existed or
11126
+ * how large the staged archive had grown.
11127
+ */
11128
+ var BackupRunSchema = object({
11129
+ /** Stable run id — the handle `backup.cancel` takes. */
11130
+ id: string(),
11131
+ state: BackupRunStateSchema,
11132
+ phase: BackupRunPhaseSchema,
11133
+ /**
11134
+ * Resolved destination location ids. Empty while queued (targets are
11135
+ * resolved when the run starts, against the then-current policies).
11136
+ */
11137
+ destinationIds: array(string()).readonly(),
11138
+ label: string().optional(),
11139
+ /** ms-epoch when the run was submitted (trigger call / schedule fire). */
11140
+ requestedAt: number(),
11141
+ /** ms-epoch when the run left the queue and started building. */
11142
+ startedAt: number().optional(),
11143
+ /** ms-epoch when the run reached a terminal state. */
11144
+ finishedAt: number().optional(),
11145
+ /** Compressed bytes of the staging archive written so far. */
11146
+ stagedBytes: number(),
11147
+ /** Final staged archive size, once the build phase completes. */
11148
+ archiveSizeBytes: number().optional(),
11149
+ /** Bytes pushed to the destination currently uploading. */
11150
+ uploadedBytes: number(),
11151
+ /** Destinations where the archive fully landed (uploaded + indexed). */
11152
+ completedDestinationIds: array(string()).readonly(),
11153
+ /** Destinations that failed during the fan-out. */
11154
+ failedDestinationIds: array(string()).readonly(),
11155
+ /** Failure message when `state === 'failed'`. */
11156
+ error: string().optional(),
11157
+ /**
11158
+ * 1-based place in the execution queue — 1 = runs next. Present only
11159
+ * while `state === 'queued'`. Stamped by the orchestrator from the
11160
+ * queue's OWN pending order, never derived from timestamps, so the
11161
+ * UI cannot show an order the executor will not honour.
11162
+ */
11163
+ queuePosition: number().int().min(1).optional()
11164
+ });
11165
+ /**
11166
+ * Result of `backup.trigger`. The call still resolves when the run
11167
+ * terminates (compat with schedule-driven runs and the admin UI), but
11168
+ * it now names the run and says whether it had to WAIT: a trigger that
11169
+ * arrives while another run is in flight is enqueued (or joined onto
11170
+ * an identical already-queued run), never started concurrently.
11171
+ */
11172
+ var BackupTriggerResultSchema = object({
11173
+ /** The run this trigger mapped to — poll it via `listRuns`, stop it via `cancel`. */
11174
+ runId: string(),
11175
+ /** True when the run waited behind an in-flight run instead of starting immediately. */
11176
+ queued: boolean(),
11177
+ /** True when this trigger was coalesced onto an identical already-queued run. */
11178
+ joined: boolean(),
11179
+ /** True when the run was cancelled before completing every destination. */
11180
+ cancelled: boolean(),
11181
+ /** One entry per destination the archive landed at (partial on cancel). */
11182
+ entries: array(BackupEntrySchema).readonly()
11183
+ });
11101
11184
  /**
11102
11185
  * A backup schedule — the N:M "entry" that binds one cron cadence to a
11103
11186
  * SET of destination locations. Supersedes the per-location cron on
@@ -11145,7 +11228,10 @@ method(_void(), array(BackupDestinationInfoSchema).readonly(), { auth: "admin" }
11145
11228
  * retention (manual runs).
11146
11229
  */
11147
11230
  retentionCount: number().int().min(1).max(1e3).optional()
11148
- }).optional(), array(BackupEntrySchema).readonly(), {
11231
+ }).optional(), BackupTriggerResultSchema, {
11232
+ kind: "mutation",
11233
+ auth: "admin"
11234
+ }), method(_void(), array(BackupRunSchema).readonly(), { auth: "admin" }), method(object({ runId: string() }), object({ cancelled: boolean() }), {
11149
11235
  kind: "mutation",
11150
11236
  auth: "admin"
11151
11237
  }), method(_void(), array(BackupEntrySchema).readonly(), { auth: "admin" }), method(_void(), array(LocationStatSchema).readonly(), { auth: "admin" }), method(object({
@@ -11862,6 +11948,14 @@ method(object({
11862
11948
  }), object({ success: literal(true) }), {
11863
11949
  kind: "mutation",
11864
11950
  auth: "admin"
11951
+ }), method(object({ deviceId: number().int().nonnegative() }), object({
11952
+ derivedStreamsDeleted: array(string()).readonly(),
11953
+ assignmentsPurged: boolean(),
11954
+ probeSnapshotsDropped: number().int().nonnegative(),
11955
+ rtspTokenRowsDeleted: number().int().nonnegative()
11956
+ }), {
11957
+ kind: "mutation",
11958
+ auth: "admin"
11865
11959
  }), method(object({
11866
11960
  deviceId: number(),
11867
11961
  /** Absent = the LOWEST assigned profile — a notification attachment is
@@ -34321,6 +34415,12 @@ Object.freeze({
34321
34415
  addonId: null,
34322
34416
  access: "create"
34323
34417
  },
34418
+ "backup.cancel": {
34419
+ capName: "backup",
34420
+ capScope: "system",
34421
+ addonId: null,
34422
+ access: "create"
34423
+ },
34324
34424
  "backup.delete": {
34325
34425
  capName: "backup",
34326
34426
  capScope: "system",
@@ -34363,6 +34463,12 @@ Object.freeze({
34363
34463
  addonId: null,
34364
34464
  access: "view"
34365
34465
  },
34466
+ "backup.listRuns": {
34467
+ capName: "backup",
34468
+ capScope: "system",
34469
+ addonId: null,
34470
+ access: "view"
34471
+ },
34366
34472
  "backup.listSchedules": {
34367
34473
  capName: "backup",
34368
34474
  capScope: "system",
@@ -38929,6 +39035,12 @@ Object.freeze({
38929
39035
  addonId: null,
38930
39036
  access: "create"
38931
39037
  },
39038
+ "streamBroker.forgetDeviceHardware": {
39039
+ capName: "stream-broker",
39040
+ capScope: "system",
39041
+ addonId: null,
39042
+ access: "delete"
39043
+ },
38932
39044
  "streamBroker.getAllRtspEntries": {
38933
39045
  capName: "stream-broker",
38934
39046
  capScope: "system",
@@ -41387,6 +41499,11 @@ Object.freeze({
41387
41499
  form: "single",
41388
41500
  optional: false
41389
41501
  }],
41502
+ "streamBroker.forgetDeviceHardware": [{
41503
+ name: "deviceId",
41504
+ form: "single",
41505
+ optional: false
41506
+ }],
41390
41507
  "streamBroker.getDeviceAudioMute": [{
41391
41508
  name: "deviceId",
41392
41509
  form: "single",
package/dist/addon.mjs CHANGED
@@ -11093,6 +11093,89 @@ var LocationStatSchema = object({
11093
11093
  fileCount: number(),
11094
11094
  present: boolean()
11095
11095
  });
11096
+ /** Lifecycle of a backup run. Terminal states: succeeded / failed / cancelled. */
11097
+ var BackupRunStateSchema = _enum([
11098
+ "queued",
11099
+ "running",
11100
+ "succeeded",
11101
+ "failed",
11102
+ "cancelled"
11103
+ ]);
11104
+ /**
11105
+ * Where a running backup currently is. `queued` before it starts,
11106
+ * `building` while the tar.gz is being staged, `uploading` during the
11107
+ * per-destination fan-out, `done` once terminal.
11108
+ */
11109
+ var BackupRunPhaseSchema = _enum([
11110
+ "queued",
11111
+ "building",
11112
+ "uploading",
11113
+ "done"
11114
+ ]);
11115
+ /**
11116
+ * Observable state of one backup run — readable WHILE it runs via
11117
+ * `backup.listRuns`. This is what makes the execution queue and
11118
+ * `backup.cancel` usable: the 2026-09-04 incident (two concurrent
11119
+ * multi-GB builds, staging 5.1 GB → 18 GB, load 62) was only
11120
+ * diagnosable with `du` because nothing reported that runs existed or
11121
+ * how large the staged archive had grown.
11122
+ */
11123
+ var BackupRunSchema = object({
11124
+ /** Stable run id — the handle `backup.cancel` takes. */
11125
+ id: string(),
11126
+ state: BackupRunStateSchema,
11127
+ phase: BackupRunPhaseSchema,
11128
+ /**
11129
+ * Resolved destination location ids. Empty while queued (targets are
11130
+ * resolved when the run starts, against the then-current policies).
11131
+ */
11132
+ destinationIds: array(string()).readonly(),
11133
+ label: string().optional(),
11134
+ /** ms-epoch when the run was submitted (trigger call / schedule fire). */
11135
+ requestedAt: number(),
11136
+ /** ms-epoch when the run left the queue and started building. */
11137
+ startedAt: number().optional(),
11138
+ /** ms-epoch when the run reached a terminal state. */
11139
+ finishedAt: number().optional(),
11140
+ /** Compressed bytes of the staging archive written so far. */
11141
+ stagedBytes: number(),
11142
+ /** Final staged archive size, once the build phase completes. */
11143
+ archiveSizeBytes: number().optional(),
11144
+ /** Bytes pushed to the destination currently uploading. */
11145
+ uploadedBytes: number(),
11146
+ /** Destinations where the archive fully landed (uploaded + indexed). */
11147
+ completedDestinationIds: array(string()).readonly(),
11148
+ /** Destinations that failed during the fan-out. */
11149
+ failedDestinationIds: array(string()).readonly(),
11150
+ /** Failure message when `state === 'failed'`. */
11151
+ error: string().optional(),
11152
+ /**
11153
+ * 1-based place in the execution queue — 1 = runs next. Present only
11154
+ * while `state === 'queued'`. Stamped by the orchestrator from the
11155
+ * queue's OWN pending order, never derived from timestamps, so the
11156
+ * UI cannot show an order the executor will not honour.
11157
+ */
11158
+ queuePosition: number().int().min(1).optional()
11159
+ });
11160
+ /**
11161
+ * Result of `backup.trigger`. The call still resolves when the run
11162
+ * terminates (compat with schedule-driven runs and the admin UI), but
11163
+ * it now names the run and says whether it had to WAIT: a trigger that
11164
+ * arrives while another run is in flight is enqueued (or joined onto
11165
+ * an identical already-queued run), never started concurrently.
11166
+ */
11167
+ var BackupTriggerResultSchema = object({
11168
+ /** The run this trigger mapped to — poll it via `listRuns`, stop it via `cancel`. */
11169
+ runId: string(),
11170
+ /** True when the run waited behind an in-flight run instead of starting immediately. */
11171
+ queued: boolean(),
11172
+ /** True when this trigger was coalesced onto an identical already-queued run. */
11173
+ joined: boolean(),
11174
+ /** True when the run was cancelled before completing every destination. */
11175
+ cancelled: boolean(),
11176
+ /** One entry per destination the archive landed at (partial on cancel). */
11177
+ entries: array(BackupEntrySchema).readonly()
11178
+ });
11096
11179
  /**
11097
11180
  * A backup schedule — the N:M "entry" that binds one cron cadence to a
11098
11181
  * SET of destination locations. Supersedes the per-location cron on
@@ -11140,7 +11223,10 @@ method(_void(), array(BackupDestinationInfoSchema).readonly(), { auth: "admin" }
11140
11223
  * retention (manual runs).
11141
11224
  */
11142
11225
  retentionCount: number().int().min(1).max(1e3).optional()
11143
- }).optional(), array(BackupEntrySchema).readonly(), {
11226
+ }).optional(), BackupTriggerResultSchema, {
11227
+ kind: "mutation",
11228
+ auth: "admin"
11229
+ }), method(_void(), array(BackupRunSchema).readonly(), { auth: "admin" }), method(object({ runId: string() }), object({ cancelled: boolean() }), {
11144
11230
  kind: "mutation",
11145
11231
  auth: "admin"
11146
11232
  }), method(_void(), array(BackupEntrySchema).readonly(), { auth: "admin" }), method(_void(), array(LocationStatSchema).readonly(), { auth: "admin" }), method(object({
@@ -11857,6 +11943,14 @@ method(object({
11857
11943
  }), object({ success: literal(true) }), {
11858
11944
  kind: "mutation",
11859
11945
  auth: "admin"
11946
+ }), method(object({ deviceId: number().int().nonnegative() }), object({
11947
+ derivedStreamsDeleted: array(string()).readonly(),
11948
+ assignmentsPurged: boolean(),
11949
+ probeSnapshotsDropped: number().int().nonnegative(),
11950
+ rtspTokenRowsDeleted: number().int().nonnegative()
11951
+ }), {
11952
+ kind: "mutation",
11953
+ auth: "admin"
11860
11954
  }), method(object({
11861
11955
  deviceId: number(),
11862
11956
  /** Absent = the LOWEST assigned profile — a notification attachment is
@@ -34316,6 +34410,12 @@ Object.freeze({
34316
34410
  addonId: null,
34317
34411
  access: "create"
34318
34412
  },
34413
+ "backup.cancel": {
34414
+ capName: "backup",
34415
+ capScope: "system",
34416
+ addonId: null,
34417
+ access: "create"
34418
+ },
34319
34419
  "backup.delete": {
34320
34420
  capName: "backup",
34321
34421
  capScope: "system",
@@ -34358,6 +34458,12 @@ Object.freeze({
34358
34458
  addonId: null,
34359
34459
  access: "view"
34360
34460
  },
34461
+ "backup.listRuns": {
34462
+ capName: "backup",
34463
+ capScope: "system",
34464
+ addonId: null,
34465
+ access: "view"
34466
+ },
34361
34467
  "backup.listSchedules": {
34362
34468
  capName: "backup",
34363
34469
  capScope: "system",
@@ -38924,6 +39030,12 @@ Object.freeze({
38924
39030
  addonId: null,
38925
39031
  access: "create"
38926
39032
  },
39033
+ "streamBroker.forgetDeviceHardware": {
39034
+ capName: "stream-broker",
39035
+ capScope: "system",
39036
+ addonId: null,
39037
+ access: "delete"
39038
+ },
38927
39039
  "streamBroker.getAllRtspEntries": {
38928
39040
  capName: "stream-broker",
38929
39041
  capScope: "system",
@@ -41382,6 +41494,11 @@ Object.freeze({
41382
41494
  form: "single",
41383
41495
  optional: false
41384
41496
  }],
41497
+ "streamBroker.forgetDeviceHardware": [{
41498
+ name: "deviceId",
41499
+ form: "single",
41500
+ optional: false
41501
+ }],
41385
41502
  "streamBroker.getDeviceAudioMute": [{
41386
41503
  name: "deviceId",
41387
41504
  form: "single",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@camstack/addon-provider-reolink",
3
- "version": "1.2.81",
3
+ "version": "1.2.82",
4
4
  "description": "Reolink camera device provider addon for CamStack — native Baichuan protocol",
5
5
  "keywords": [
6
6
  "camstack",