@camstack/addon-provider-reolink 1.0.3 → 1.0.4

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.
Files changed (3) hide show
  1. package/dist/addon.js +122 -27
  2. package/dist/addon.mjs +122 -27
  3. package/package.json +1 -1
package/dist/addon.js CHANGED
@@ -5158,14 +5158,15 @@ var EventCategory = /* @__PURE__ */ function(EventCategory) {
5158
5158
  EventCategory["DeviceSleeping"] = "device.sleeping";
5159
5159
  EventCategory["RetentionCleanup"] = "retention.cleanup";
5160
5160
  /**
5161
- * Progress snapshot emitted by `BulkUpdateCoordinator` on every state
5162
- * transition (item status change, phase change, completion, cancel).
5163
- * Payload is `BulkUpdateState`. Admin UI subscribes via `useLiveEvent`
5164
- * to drive the sticky `BulkUpdateBanner` and per-row `AddonRowBadge`.
5165
- *
5166
- * Spec: docs/superpowers/specs/2026-05-21-addons-bulk-update-progress-design.md
5161
+ * Legacy bulk-update progress snapshot (payload `BulkUpdateState`). No longer
5162
+ * emitted F3 removed the coordinator that produced it; "Update all" now runs
5163
+ * as one lifecycle engine job (`AddonsJobProgress`/`AddonsJobLog`). Retained
5164
+ * (with `BulkUpdateState`) only to avoid regenerating the event maps; removed
5165
+ * in F4 once live bulk progress is re-implemented over the engine events.
5167
5166
  */
5168
5167
  EventCategory["AddonsBulkUpdateProgress"] = "addons.bulk-update-progress";
5168
+ EventCategory["AddonsJobProgress"] = "addons.job-progress";
5169
+ EventCategory["AddonsJobLog"] = "addons.job-log";
5169
5170
  /**
5170
5171
  * A container's child visibility toggled (hidden/shown). Emitted by the
5171
5172
  * `accessories` cap when a child device is hidden or revealed.
@@ -19351,6 +19352,69 @@ method(_void(), array(IntegrationWithStateSchema)), method(object({ id: string()
19351
19352
  kind: "mutation",
19352
19353
  auth: "admin"
19353
19354
  });
19355
+ var jobKindSchema = _enum([
19356
+ "install",
19357
+ "update",
19358
+ "uninstall",
19359
+ "restart"
19360
+ ]);
19361
+ var taskPhaseSchema = _enum([
19362
+ "queued",
19363
+ "fetching",
19364
+ "staged",
19365
+ "validating",
19366
+ "applying",
19367
+ "restarting",
19368
+ "applied",
19369
+ "done",
19370
+ "failed",
19371
+ "skipped"
19372
+ ]);
19373
+ var taskTargetSchema = _enum(["framework", "addon"]);
19374
+ var taskLogEntrySchema = object({
19375
+ tsMs: number(),
19376
+ nodeId: string(),
19377
+ packageName: string(),
19378
+ phase: taskPhaseSchema,
19379
+ message: string()
19380
+ });
19381
+ var lifecycleTaskSchema = object({
19382
+ taskId: string(),
19383
+ nodeId: string(),
19384
+ packageName: string(),
19385
+ fromVersion: string().nullable(),
19386
+ toVersion: string(),
19387
+ target: taskTargetSchema,
19388
+ phase: taskPhaseSchema,
19389
+ stagedPath: string().nullable(),
19390
+ attempts: number(),
19391
+ steps: array(taskLogEntrySchema),
19392
+ error: string().nullable(),
19393
+ startedAtMs: number().nullable(),
19394
+ finishedAtMs: number().nullable()
19395
+ });
19396
+ var lifecycleJobStateSchema = _enum([
19397
+ "running",
19398
+ "completed",
19399
+ "failed",
19400
+ "partially-failed",
19401
+ "cancelled"
19402
+ ]);
19403
+ var lifecycleJobScopeSchema = _enum([
19404
+ "single",
19405
+ "bulk",
19406
+ "cluster"
19407
+ ]);
19408
+ var lifecycleJobSchema = object({
19409
+ jobId: string(),
19410
+ kind: jobKindSchema,
19411
+ createdAtMs: number(),
19412
+ createdBy: string(),
19413
+ scope: lifecycleJobScopeSchema,
19414
+ tasks: array(lifecycleTaskSchema),
19415
+ state: lifecycleJobStateSchema,
19416
+ schemaVersion: literal(1)
19417
+ });
19354
19418
  /**
19355
19419
  * addons — system-scoped singleton capability for addon package
19356
19420
  * management (install, update, configure, restart) and per-addon log
@@ -19533,7 +19597,7 @@ var BulkUpdatePhaseSchema = _enum([
19533
19597
  "restarting",
19534
19598
  "finalizing"
19535
19599
  ]);
19536
- var BulkUpdateStateSchema = object({
19600
+ object({
19537
19601
  id: string(),
19538
19602
  nodeId: string(),
19539
19603
  startedAtMs: number(),
@@ -19636,20 +19700,7 @@ method(_void(), array(AddonListItemSchema).readonly()), method(object({
19636
19700
  }), UpdateFrameworkPackageResultSchema, {
19637
19701
  kind: "mutation",
19638
19702
  auth: "admin"
19639
- }), method(object({
19640
- nodeId: string(),
19641
- items: array(object({
19642
- name: string(),
19643
- version: string(),
19644
- isSystem: boolean()
19645
- })).readonly()
19646
- }), object({ id: string() }), {
19647
- kind: "mutation",
19648
- auth: "admin"
19649
- }), method(object({ id: string() }), BulkUpdateStateSchema.nullable(), { auth: "admin" }), method(object({ id: string() }), object({ cancelled: boolean() }), {
19650
- kind: "mutation",
19651
- auth: "admin"
19652
- }), method(object({ nodeId: string().optional() }), array(BulkUpdateStateSchema).readonly(), { auth: "admin" }), method(object({ name: string() }), array(PackageVersionInfoSchema).readonly()), method(object({ addonId: string() }), RestartAddonResultSchema, {
19703
+ }), method(object({ name: string() }), array(PackageVersionInfoSchema).readonly()), method(object({ addonId: string() }), RestartAddonResultSchema, {
19653
19704
  kind: "mutation",
19654
19705
  auth: "admin"
19655
19706
  }), method(object({ packageName: string() }), object({ success: literal(true) }), {
@@ -19671,6 +19722,24 @@ method(_void(), array(AddonListItemSchema).readonly()), method(object({
19671
19722
  kind: "mutation",
19672
19723
  auth: "admin"
19673
19724
  }), method(CustomActionInputSchema, unknown(), { kind: "mutation" }), method(object({
19725
+ kind: _enum([
19726
+ "install",
19727
+ "update",
19728
+ "uninstall",
19729
+ "restart"
19730
+ ]),
19731
+ targets: array(object({
19732
+ name: string().min(1),
19733
+ version: string().min(1)
19734
+ })).min(1),
19735
+ nodeIds: array(string()).optional()
19736
+ }), object({ jobId: string() }), {
19737
+ kind: "mutation",
19738
+ auth: "admin"
19739
+ }), method(object({ jobId: string() }), lifecycleJobSchema.nullable(), { auth: "admin" }), method(object({ activeOnly: boolean().optional() }), array(lifecycleJobSchema), { auth: "admin" }), method(object({ jobId: string() }), object({ cancelled: boolean() }), {
19740
+ kind: "mutation",
19741
+ auth: "admin"
19742
+ }), method(object({
19674
19743
  addonId: string(),
19675
19744
  level: LogLevelSchema$1.optional()
19676
19745
  }), LogStreamEntrySchema, { kind: "subscription" });
@@ -19711,7 +19780,7 @@ Object.freeze({
19711
19780
  addonId: null,
19712
19781
  access: "create"
19713
19782
  },
19714
- "addons.cancelBulkUpdate": {
19783
+ "addons.cancelJob": {
19715
19784
  capName: "addons",
19716
19785
  capScope: "system",
19717
19786
  addonId: null,
@@ -19741,7 +19810,7 @@ Object.freeze({
19741
19810
  addonId: null,
19742
19811
  access: "view"
19743
19812
  },
19744
- "addons.getBulkUpdateState": {
19813
+ "addons.getJob": {
19745
19814
  capName: "addons",
19746
19815
  capScope: "system",
19747
19816
  addonId: null,
@@ -19789,19 +19858,19 @@ Object.freeze({
19789
19858
  addonId: null,
19790
19859
  access: "view"
19791
19860
  },
19792
- "addons.listActiveBulkUpdates": {
19861
+ "addons.listCapabilityProviders": {
19793
19862
  capName: "addons",
19794
19863
  capScope: "system",
19795
19864
  addonId: null,
19796
19865
  access: "view"
19797
19866
  },
19798
- "addons.listCapabilityProviders": {
19867
+ "addons.listFrameworkPackages": {
19799
19868
  capName: "addons",
19800
19869
  capScope: "system",
19801
19870
  addonId: null,
19802
19871
  access: "view"
19803
19872
  },
19804
- "addons.listFrameworkPackages": {
19873
+ "addons.listJobs": {
19805
19874
  capName: "addons",
19806
19875
  capScope: "system",
19807
19876
  addonId: null,
@@ -19885,7 +19954,7 @@ Object.freeze({
19885
19954
  addonId: null,
19886
19955
  access: "create"
19887
19956
  },
19888
- "addons.startBulkUpdate": {
19957
+ "addons.startJob": {
19889
19958
  capName: "addons",
19890
19959
  capScope: "system",
19891
19960
  addonId: null,
@@ -23872,6 +23941,32 @@ Object.freeze({
23872
23941
  "network-access": "ingress",
23873
23942
  "smtp-provider": "email"
23874
23943
  });
23944
+ var frameworkSwapPackageSchema = object({
23945
+ name: string(),
23946
+ stagedPath: string(),
23947
+ backupPath: string(),
23948
+ toVersion: string(),
23949
+ fromVersion: string().nullable()
23950
+ });
23951
+ object({
23952
+ jobId: string(),
23953
+ taskId: string(),
23954
+ packages: array(frameworkSwapPackageSchema),
23955
+ requestedAtMs: number(),
23956
+ schemaVersion: literal(1)
23957
+ });
23958
+ object({
23959
+ jobId: string(),
23960
+ taskId: string(),
23961
+ backups: array(object({
23962
+ name: string(),
23963
+ backupPath: string(),
23964
+ livePath: string()
23965
+ })),
23966
+ appliedAtMs: number(),
23967
+ bootAttempts: number(),
23968
+ schemaVersion: literal(1)
23969
+ });
23875
23970
  /**
23876
23971
  * Promise-based timer helpers — used everywhere the codebase needs to
23877
23972
  * wait, back off, or schedule a retry. Before these helpers landed, each
package/dist/addon.mjs CHANGED
@@ -5153,14 +5153,15 @@ var EventCategory = /* @__PURE__ */ function(EventCategory) {
5153
5153
  EventCategory["DeviceSleeping"] = "device.sleeping";
5154
5154
  EventCategory["RetentionCleanup"] = "retention.cleanup";
5155
5155
  /**
5156
- * Progress snapshot emitted by `BulkUpdateCoordinator` on every state
5157
- * transition (item status change, phase change, completion, cancel).
5158
- * Payload is `BulkUpdateState`. Admin UI subscribes via `useLiveEvent`
5159
- * to drive the sticky `BulkUpdateBanner` and per-row `AddonRowBadge`.
5160
- *
5161
- * Spec: docs/superpowers/specs/2026-05-21-addons-bulk-update-progress-design.md
5156
+ * Legacy bulk-update progress snapshot (payload `BulkUpdateState`). No longer
5157
+ * emitted F3 removed the coordinator that produced it; "Update all" now runs
5158
+ * as one lifecycle engine job (`AddonsJobProgress`/`AddonsJobLog`). Retained
5159
+ * (with `BulkUpdateState`) only to avoid regenerating the event maps; removed
5160
+ * in F4 once live bulk progress is re-implemented over the engine events.
5162
5161
  */
5163
5162
  EventCategory["AddonsBulkUpdateProgress"] = "addons.bulk-update-progress";
5163
+ EventCategory["AddonsJobProgress"] = "addons.job-progress";
5164
+ EventCategory["AddonsJobLog"] = "addons.job-log";
5164
5165
  /**
5165
5166
  * A container's child visibility toggled (hidden/shown). Emitted by the
5166
5167
  * `accessories` cap when a child device is hidden or revealed.
@@ -19346,6 +19347,69 @@ method(_void(), array(IntegrationWithStateSchema)), method(object({ id: string()
19346
19347
  kind: "mutation",
19347
19348
  auth: "admin"
19348
19349
  });
19350
+ var jobKindSchema = _enum([
19351
+ "install",
19352
+ "update",
19353
+ "uninstall",
19354
+ "restart"
19355
+ ]);
19356
+ var taskPhaseSchema = _enum([
19357
+ "queued",
19358
+ "fetching",
19359
+ "staged",
19360
+ "validating",
19361
+ "applying",
19362
+ "restarting",
19363
+ "applied",
19364
+ "done",
19365
+ "failed",
19366
+ "skipped"
19367
+ ]);
19368
+ var taskTargetSchema = _enum(["framework", "addon"]);
19369
+ var taskLogEntrySchema = object({
19370
+ tsMs: number(),
19371
+ nodeId: string(),
19372
+ packageName: string(),
19373
+ phase: taskPhaseSchema,
19374
+ message: string()
19375
+ });
19376
+ var lifecycleTaskSchema = object({
19377
+ taskId: string(),
19378
+ nodeId: string(),
19379
+ packageName: string(),
19380
+ fromVersion: string().nullable(),
19381
+ toVersion: string(),
19382
+ target: taskTargetSchema,
19383
+ phase: taskPhaseSchema,
19384
+ stagedPath: string().nullable(),
19385
+ attempts: number(),
19386
+ steps: array(taskLogEntrySchema),
19387
+ error: string().nullable(),
19388
+ startedAtMs: number().nullable(),
19389
+ finishedAtMs: number().nullable()
19390
+ });
19391
+ var lifecycleJobStateSchema = _enum([
19392
+ "running",
19393
+ "completed",
19394
+ "failed",
19395
+ "partially-failed",
19396
+ "cancelled"
19397
+ ]);
19398
+ var lifecycleJobScopeSchema = _enum([
19399
+ "single",
19400
+ "bulk",
19401
+ "cluster"
19402
+ ]);
19403
+ var lifecycleJobSchema = object({
19404
+ jobId: string(),
19405
+ kind: jobKindSchema,
19406
+ createdAtMs: number(),
19407
+ createdBy: string(),
19408
+ scope: lifecycleJobScopeSchema,
19409
+ tasks: array(lifecycleTaskSchema),
19410
+ state: lifecycleJobStateSchema,
19411
+ schemaVersion: literal(1)
19412
+ });
19349
19413
  /**
19350
19414
  * addons — system-scoped singleton capability for addon package
19351
19415
  * management (install, update, configure, restart) and per-addon log
@@ -19528,7 +19592,7 @@ var BulkUpdatePhaseSchema = _enum([
19528
19592
  "restarting",
19529
19593
  "finalizing"
19530
19594
  ]);
19531
- var BulkUpdateStateSchema = object({
19595
+ object({
19532
19596
  id: string(),
19533
19597
  nodeId: string(),
19534
19598
  startedAtMs: number(),
@@ -19631,20 +19695,7 @@ method(_void(), array(AddonListItemSchema).readonly()), method(object({
19631
19695
  }), UpdateFrameworkPackageResultSchema, {
19632
19696
  kind: "mutation",
19633
19697
  auth: "admin"
19634
- }), method(object({
19635
- nodeId: string(),
19636
- items: array(object({
19637
- name: string(),
19638
- version: string(),
19639
- isSystem: boolean()
19640
- })).readonly()
19641
- }), object({ id: string() }), {
19642
- kind: "mutation",
19643
- auth: "admin"
19644
- }), method(object({ id: string() }), BulkUpdateStateSchema.nullable(), { auth: "admin" }), method(object({ id: string() }), object({ cancelled: boolean() }), {
19645
- kind: "mutation",
19646
- auth: "admin"
19647
- }), method(object({ nodeId: string().optional() }), array(BulkUpdateStateSchema).readonly(), { auth: "admin" }), method(object({ name: string() }), array(PackageVersionInfoSchema).readonly()), method(object({ addonId: string() }), RestartAddonResultSchema, {
19698
+ }), method(object({ name: string() }), array(PackageVersionInfoSchema).readonly()), method(object({ addonId: string() }), RestartAddonResultSchema, {
19648
19699
  kind: "mutation",
19649
19700
  auth: "admin"
19650
19701
  }), method(object({ packageName: string() }), object({ success: literal(true) }), {
@@ -19666,6 +19717,24 @@ method(_void(), array(AddonListItemSchema).readonly()), method(object({
19666
19717
  kind: "mutation",
19667
19718
  auth: "admin"
19668
19719
  }), method(CustomActionInputSchema, unknown(), { kind: "mutation" }), method(object({
19720
+ kind: _enum([
19721
+ "install",
19722
+ "update",
19723
+ "uninstall",
19724
+ "restart"
19725
+ ]),
19726
+ targets: array(object({
19727
+ name: string().min(1),
19728
+ version: string().min(1)
19729
+ })).min(1),
19730
+ nodeIds: array(string()).optional()
19731
+ }), object({ jobId: string() }), {
19732
+ kind: "mutation",
19733
+ auth: "admin"
19734
+ }), method(object({ jobId: string() }), lifecycleJobSchema.nullable(), { auth: "admin" }), method(object({ activeOnly: boolean().optional() }), array(lifecycleJobSchema), { auth: "admin" }), method(object({ jobId: string() }), object({ cancelled: boolean() }), {
19735
+ kind: "mutation",
19736
+ auth: "admin"
19737
+ }), method(object({
19669
19738
  addonId: string(),
19670
19739
  level: LogLevelSchema$1.optional()
19671
19740
  }), LogStreamEntrySchema, { kind: "subscription" });
@@ -19706,7 +19775,7 @@ Object.freeze({
19706
19775
  addonId: null,
19707
19776
  access: "create"
19708
19777
  },
19709
- "addons.cancelBulkUpdate": {
19778
+ "addons.cancelJob": {
19710
19779
  capName: "addons",
19711
19780
  capScope: "system",
19712
19781
  addonId: null,
@@ -19736,7 +19805,7 @@ Object.freeze({
19736
19805
  addonId: null,
19737
19806
  access: "view"
19738
19807
  },
19739
- "addons.getBulkUpdateState": {
19808
+ "addons.getJob": {
19740
19809
  capName: "addons",
19741
19810
  capScope: "system",
19742
19811
  addonId: null,
@@ -19784,19 +19853,19 @@ Object.freeze({
19784
19853
  addonId: null,
19785
19854
  access: "view"
19786
19855
  },
19787
- "addons.listActiveBulkUpdates": {
19856
+ "addons.listCapabilityProviders": {
19788
19857
  capName: "addons",
19789
19858
  capScope: "system",
19790
19859
  addonId: null,
19791
19860
  access: "view"
19792
19861
  },
19793
- "addons.listCapabilityProviders": {
19862
+ "addons.listFrameworkPackages": {
19794
19863
  capName: "addons",
19795
19864
  capScope: "system",
19796
19865
  addonId: null,
19797
19866
  access: "view"
19798
19867
  },
19799
- "addons.listFrameworkPackages": {
19868
+ "addons.listJobs": {
19800
19869
  capName: "addons",
19801
19870
  capScope: "system",
19802
19871
  addonId: null,
@@ -19880,7 +19949,7 @@ Object.freeze({
19880
19949
  addonId: null,
19881
19950
  access: "create"
19882
19951
  },
19883
- "addons.startBulkUpdate": {
19952
+ "addons.startJob": {
19884
19953
  capName: "addons",
19885
19954
  capScope: "system",
19886
19955
  addonId: null,
@@ -23867,6 +23936,32 @@ Object.freeze({
23867
23936
  "network-access": "ingress",
23868
23937
  "smtp-provider": "email"
23869
23938
  });
23939
+ var frameworkSwapPackageSchema = object({
23940
+ name: string(),
23941
+ stagedPath: string(),
23942
+ backupPath: string(),
23943
+ toVersion: string(),
23944
+ fromVersion: string().nullable()
23945
+ });
23946
+ object({
23947
+ jobId: string(),
23948
+ taskId: string(),
23949
+ packages: array(frameworkSwapPackageSchema),
23950
+ requestedAtMs: number(),
23951
+ schemaVersion: literal(1)
23952
+ });
23953
+ object({
23954
+ jobId: string(),
23955
+ taskId: string(),
23956
+ backups: array(object({
23957
+ name: string(),
23958
+ backupPath: string(),
23959
+ livePath: string()
23960
+ })),
23961
+ appliedAtMs: number(),
23962
+ bootAttempts: number(),
23963
+ schemaVersion: literal(1)
23964
+ });
23870
23965
  /**
23871
23966
  * Promise-based timer helpers — used everywhere the codebase needs to
23872
23967
  * wait, back off, or schedule a retry. Before these helpers landed, each
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@camstack/addon-provider-reolink",
3
- "version": "1.0.3",
3
+ "version": "1.0.4",
4
4
  "description": "Reolink camera device provider addon for CamStack — native Baichuan protocol",
5
5
  "keywords": [
6
6
  "camstack",