@camstack/addon-provider-hikvision 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
@@ -5134,14 +5134,15 @@ var EventCategory = /* @__PURE__ */ function(EventCategory) {
5134
5134
  EventCategory["DeviceSleeping"] = "device.sleeping";
5135
5135
  EventCategory["RetentionCleanup"] = "retention.cleanup";
5136
5136
  /**
5137
- * Progress snapshot emitted by `BulkUpdateCoordinator` on every state
5138
- * transition (item status change, phase change, completion, cancel).
5139
- * Payload is `BulkUpdateState`. Admin UI subscribes via `useLiveEvent`
5140
- * to drive the sticky `BulkUpdateBanner` and per-row `AddonRowBadge`.
5141
- *
5142
- * Spec: docs/superpowers/specs/2026-05-21-addons-bulk-update-progress-design.md
5137
+ * Legacy bulk-update progress snapshot (payload `BulkUpdateState`). No longer
5138
+ * emitted F3 removed the coordinator that produced it; "Update all" now runs
5139
+ * as one lifecycle engine job (`AddonsJobProgress`/`AddonsJobLog`). Retained
5140
+ * (with `BulkUpdateState`) only to avoid regenerating the event maps; removed
5141
+ * in F4 once live bulk progress is re-implemented over the engine events.
5143
5142
  */
5144
5143
  EventCategory["AddonsBulkUpdateProgress"] = "addons.bulk-update-progress";
5144
+ EventCategory["AddonsJobProgress"] = "addons.job-progress";
5145
+ EventCategory["AddonsJobLog"] = "addons.job-log";
5145
5146
  /**
5146
5147
  * A container's child visibility toggled (hidden/shown). Emitted by the
5147
5148
  * `accessories` cap when a child device is hidden or revealed.
@@ -19373,6 +19374,69 @@ method(_void(), array(IntegrationWithStateSchema)), method(object({ id: string()
19373
19374
  kind: "mutation",
19374
19375
  auth: "admin"
19375
19376
  });
19377
+ var jobKindSchema = _enum([
19378
+ "install",
19379
+ "update",
19380
+ "uninstall",
19381
+ "restart"
19382
+ ]);
19383
+ var taskPhaseSchema = _enum([
19384
+ "queued",
19385
+ "fetching",
19386
+ "staged",
19387
+ "validating",
19388
+ "applying",
19389
+ "restarting",
19390
+ "applied",
19391
+ "done",
19392
+ "failed",
19393
+ "skipped"
19394
+ ]);
19395
+ var taskTargetSchema = _enum(["framework", "addon"]);
19396
+ var taskLogEntrySchema = object({
19397
+ tsMs: number(),
19398
+ nodeId: string(),
19399
+ packageName: string(),
19400
+ phase: taskPhaseSchema,
19401
+ message: string()
19402
+ });
19403
+ var lifecycleTaskSchema = object({
19404
+ taskId: string(),
19405
+ nodeId: string(),
19406
+ packageName: string(),
19407
+ fromVersion: string().nullable(),
19408
+ toVersion: string(),
19409
+ target: taskTargetSchema,
19410
+ phase: taskPhaseSchema,
19411
+ stagedPath: string().nullable(),
19412
+ attempts: number(),
19413
+ steps: array(taskLogEntrySchema),
19414
+ error: string().nullable(),
19415
+ startedAtMs: number().nullable(),
19416
+ finishedAtMs: number().nullable()
19417
+ });
19418
+ var lifecycleJobStateSchema = _enum([
19419
+ "running",
19420
+ "completed",
19421
+ "failed",
19422
+ "partially-failed",
19423
+ "cancelled"
19424
+ ]);
19425
+ var lifecycleJobScopeSchema = _enum([
19426
+ "single",
19427
+ "bulk",
19428
+ "cluster"
19429
+ ]);
19430
+ var lifecycleJobSchema = object({
19431
+ jobId: string(),
19432
+ kind: jobKindSchema,
19433
+ createdAtMs: number(),
19434
+ createdBy: string(),
19435
+ scope: lifecycleJobScopeSchema,
19436
+ tasks: array(lifecycleTaskSchema),
19437
+ state: lifecycleJobStateSchema,
19438
+ schemaVersion: literal(1)
19439
+ });
19376
19440
  /**
19377
19441
  * addons — system-scoped singleton capability for addon package
19378
19442
  * management (install, update, configure, restart) and per-addon log
@@ -19555,7 +19619,7 @@ var BulkUpdatePhaseSchema = _enum([
19555
19619
  "restarting",
19556
19620
  "finalizing"
19557
19621
  ]);
19558
- var BulkUpdateStateSchema = object({
19622
+ object({
19559
19623
  id: string(),
19560
19624
  nodeId: string(),
19561
19625
  startedAtMs: number(),
@@ -19658,20 +19722,7 @@ method(_void(), array(AddonListItemSchema).readonly()), method(object({
19658
19722
  }), UpdateFrameworkPackageResultSchema, {
19659
19723
  kind: "mutation",
19660
19724
  auth: "admin"
19661
- }), method(object({
19662
- nodeId: string(),
19663
- items: array(object({
19664
- name: string(),
19665
- version: string(),
19666
- isSystem: boolean()
19667
- })).readonly()
19668
- }), object({ id: string() }), {
19669
- kind: "mutation",
19670
- auth: "admin"
19671
- }), method(object({ id: string() }), BulkUpdateStateSchema.nullable(), { auth: "admin" }), method(object({ id: string() }), object({ cancelled: boolean() }), {
19672
- kind: "mutation",
19673
- auth: "admin"
19674
- }), method(object({ nodeId: string().optional() }), array(BulkUpdateStateSchema).readonly(), { auth: "admin" }), method(object({ name: string() }), array(PackageVersionInfoSchema).readonly()), method(object({ addonId: string() }), RestartAddonResultSchema, {
19725
+ }), method(object({ name: string() }), array(PackageVersionInfoSchema).readonly()), method(object({ addonId: string() }), RestartAddonResultSchema, {
19675
19726
  kind: "mutation",
19676
19727
  auth: "admin"
19677
19728
  }), method(object({ packageName: string() }), object({ success: literal(true) }), {
@@ -19693,6 +19744,24 @@ method(_void(), array(AddonListItemSchema).readonly()), method(object({
19693
19744
  kind: "mutation",
19694
19745
  auth: "admin"
19695
19746
  }), method(CustomActionInputSchema, unknown(), { kind: "mutation" }), method(object({
19747
+ kind: _enum([
19748
+ "install",
19749
+ "update",
19750
+ "uninstall",
19751
+ "restart"
19752
+ ]),
19753
+ targets: array(object({
19754
+ name: string().min(1),
19755
+ version: string().min(1)
19756
+ })).min(1),
19757
+ nodeIds: array(string()).optional()
19758
+ }), object({ jobId: string() }), {
19759
+ kind: "mutation",
19760
+ auth: "admin"
19761
+ }), method(object({ jobId: string() }), lifecycleJobSchema.nullable(), { auth: "admin" }), method(object({ activeOnly: boolean().optional() }), array(lifecycleJobSchema), { auth: "admin" }), method(object({ jobId: string() }), object({ cancelled: boolean() }), {
19762
+ kind: "mutation",
19763
+ auth: "admin"
19764
+ }), method(object({
19696
19765
  addonId: string(),
19697
19766
  level: LogLevelSchema$1.optional()
19698
19767
  }), LogStreamEntrySchema, { kind: "subscription" });
@@ -19733,7 +19802,7 @@ Object.freeze({
19733
19802
  addonId: null,
19734
19803
  access: "create"
19735
19804
  },
19736
- "addons.cancelBulkUpdate": {
19805
+ "addons.cancelJob": {
19737
19806
  capName: "addons",
19738
19807
  capScope: "system",
19739
19808
  addonId: null,
@@ -19763,7 +19832,7 @@ Object.freeze({
19763
19832
  addonId: null,
19764
19833
  access: "view"
19765
19834
  },
19766
- "addons.getBulkUpdateState": {
19835
+ "addons.getJob": {
19767
19836
  capName: "addons",
19768
19837
  capScope: "system",
19769
19838
  addonId: null,
@@ -19811,19 +19880,19 @@ Object.freeze({
19811
19880
  addonId: null,
19812
19881
  access: "view"
19813
19882
  },
19814
- "addons.listActiveBulkUpdates": {
19883
+ "addons.listCapabilityProviders": {
19815
19884
  capName: "addons",
19816
19885
  capScope: "system",
19817
19886
  addonId: null,
19818
19887
  access: "view"
19819
19888
  },
19820
- "addons.listCapabilityProviders": {
19889
+ "addons.listFrameworkPackages": {
19821
19890
  capName: "addons",
19822
19891
  capScope: "system",
19823
19892
  addonId: null,
19824
19893
  access: "view"
19825
19894
  },
19826
- "addons.listFrameworkPackages": {
19895
+ "addons.listJobs": {
19827
19896
  capName: "addons",
19828
19897
  capScope: "system",
19829
19898
  addonId: null,
@@ -19907,7 +19976,7 @@ Object.freeze({
19907
19976
  addonId: null,
19908
19977
  access: "create"
19909
19978
  },
19910
- "addons.startBulkUpdate": {
19979
+ "addons.startJob": {
19911
19980
  capName: "addons",
19912
19981
  capScope: "system",
19913
19982
  addonId: null,
@@ -23894,6 +23963,32 @@ Object.freeze({
23894
23963
  "network-access": "ingress",
23895
23964
  "smtp-provider": "email"
23896
23965
  });
23966
+ var frameworkSwapPackageSchema = object({
23967
+ name: string(),
23968
+ stagedPath: string(),
23969
+ backupPath: string(),
23970
+ toVersion: string(),
23971
+ fromVersion: string().nullable()
23972
+ });
23973
+ object({
23974
+ jobId: string(),
23975
+ taskId: string(),
23976
+ packages: array(frameworkSwapPackageSchema),
23977
+ requestedAtMs: number(),
23978
+ schemaVersion: literal(1)
23979
+ });
23980
+ object({
23981
+ jobId: string(),
23982
+ taskId: string(),
23983
+ backups: array(object({
23984
+ name: string(),
23985
+ backupPath: string(),
23986
+ livePath: string()
23987
+ })),
23988
+ appliedAtMs: number(),
23989
+ bootAttempts: number(),
23990
+ schemaVersion: literal(1)
23991
+ });
23897
23992
  //#endregion
23898
23993
  //#region src/schema.ts
23899
23994
  /**
package/dist/addon.mjs CHANGED
@@ -5133,14 +5133,15 @@ var EventCategory = /* @__PURE__ */ function(EventCategory) {
5133
5133
  EventCategory["DeviceSleeping"] = "device.sleeping";
5134
5134
  EventCategory["RetentionCleanup"] = "retention.cleanup";
5135
5135
  /**
5136
- * Progress snapshot emitted by `BulkUpdateCoordinator` on every state
5137
- * transition (item status change, phase change, completion, cancel).
5138
- * Payload is `BulkUpdateState`. Admin UI subscribes via `useLiveEvent`
5139
- * to drive the sticky `BulkUpdateBanner` and per-row `AddonRowBadge`.
5140
- *
5141
- * Spec: docs/superpowers/specs/2026-05-21-addons-bulk-update-progress-design.md
5136
+ * Legacy bulk-update progress snapshot (payload `BulkUpdateState`). No longer
5137
+ * emitted F3 removed the coordinator that produced it; "Update all" now runs
5138
+ * as one lifecycle engine job (`AddonsJobProgress`/`AddonsJobLog`). Retained
5139
+ * (with `BulkUpdateState`) only to avoid regenerating the event maps; removed
5140
+ * in F4 once live bulk progress is re-implemented over the engine events.
5142
5141
  */
5143
5142
  EventCategory["AddonsBulkUpdateProgress"] = "addons.bulk-update-progress";
5143
+ EventCategory["AddonsJobProgress"] = "addons.job-progress";
5144
+ EventCategory["AddonsJobLog"] = "addons.job-log";
5144
5145
  /**
5145
5146
  * A container's child visibility toggled (hidden/shown). Emitted by the
5146
5147
  * `accessories` cap when a child device is hidden or revealed.
@@ -19372,6 +19373,69 @@ method(_void(), array(IntegrationWithStateSchema)), method(object({ id: string()
19372
19373
  kind: "mutation",
19373
19374
  auth: "admin"
19374
19375
  });
19376
+ var jobKindSchema = _enum([
19377
+ "install",
19378
+ "update",
19379
+ "uninstall",
19380
+ "restart"
19381
+ ]);
19382
+ var taskPhaseSchema = _enum([
19383
+ "queued",
19384
+ "fetching",
19385
+ "staged",
19386
+ "validating",
19387
+ "applying",
19388
+ "restarting",
19389
+ "applied",
19390
+ "done",
19391
+ "failed",
19392
+ "skipped"
19393
+ ]);
19394
+ var taskTargetSchema = _enum(["framework", "addon"]);
19395
+ var taskLogEntrySchema = object({
19396
+ tsMs: number(),
19397
+ nodeId: string(),
19398
+ packageName: string(),
19399
+ phase: taskPhaseSchema,
19400
+ message: string()
19401
+ });
19402
+ var lifecycleTaskSchema = object({
19403
+ taskId: string(),
19404
+ nodeId: string(),
19405
+ packageName: string(),
19406
+ fromVersion: string().nullable(),
19407
+ toVersion: string(),
19408
+ target: taskTargetSchema,
19409
+ phase: taskPhaseSchema,
19410
+ stagedPath: string().nullable(),
19411
+ attempts: number(),
19412
+ steps: array(taskLogEntrySchema),
19413
+ error: string().nullable(),
19414
+ startedAtMs: number().nullable(),
19415
+ finishedAtMs: number().nullable()
19416
+ });
19417
+ var lifecycleJobStateSchema = _enum([
19418
+ "running",
19419
+ "completed",
19420
+ "failed",
19421
+ "partially-failed",
19422
+ "cancelled"
19423
+ ]);
19424
+ var lifecycleJobScopeSchema = _enum([
19425
+ "single",
19426
+ "bulk",
19427
+ "cluster"
19428
+ ]);
19429
+ var lifecycleJobSchema = object({
19430
+ jobId: string(),
19431
+ kind: jobKindSchema,
19432
+ createdAtMs: number(),
19433
+ createdBy: string(),
19434
+ scope: lifecycleJobScopeSchema,
19435
+ tasks: array(lifecycleTaskSchema),
19436
+ state: lifecycleJobStateSchema,
19437
+ schemaVersion: literal(1)
19438
+ });
19375
19439
  /**
19376
19440
  * addons — system-scoped singleton capability for addon package
19377
19441
  * management (install, update, configure, restart) and per-addon log
@@ -19554,7 +19618,7 @@ var BulkUpdatePhaseSchema = _enum([
19554
19618
  "restarting",
19555
19619
  "finalizing"
19556
19620
  ]);
19557
- var BulkUpdateStateSchema = object({
19621
+ object({
19558
19622
  id: string(),
19559
19623
  nodeId: string(),
19560
19624
  startedAtMs: number(),
@@ -19657,20 +19721,7 @@ method(_void(), array(AddonListItemSchema).readonly()), method(object({
19657
19721
  }), UpdateFrameworkPackageResultSchema, {
19658
19722
  kind: "mutation",
19659
19723
  auth: "admin"
19660
- }), method(object({
19661
- nodeId: string(),
19662
- items: array(object({
19663
- name: string(),
19664
- version: string(),
19665
- isSystem: boolean()
19666
- })).readonly()
19667
- }), object({ id: string() }), {
19668
- kind: "mutation",
19669
- auth: "admin"
19670
- }), method(object({ id: string() }), BulkUpdateStateSchema.nullable(), { auth: "admin" }), method(object({ id: string() }), object({ cancelled: boolean() }), {
19671
- kind: "mutation",
19672
- auth: "admin"
19673
- }), method(object({ nodeId: string().optional() }), array(BulkUpdateStateSchema).readonly(), { auth: "admin" }), method(object({ name: string() }), array(PackageVersionInfoSchema).readonly()), method(object({ addonId: string() }), RestartAddonResultSchema, {
19724
+ }), method(object({ name: string() }), array(PackageVersionInfoSchema).readonly()), method(object({ addonId: string() }), RestartAddonResultSchema, {
19674
19725
  kind: "mutation",
19675
19726
  auth: "admin"
19676
19727
  }), method(object({ packageName: string() }), object({ success: literal(true) }), {
@@ -19692,6 +19743,24 @@ method(_void(), array(AddonListItemSchema).readonly()), method(object({
19692
19743
  kind: "mutation",
19693
19744
  auth: "admin"
19694
19745
  }), method(CustomActionInputSchema, unknown(), { kind: "mutation" }), method(object({
19746
+ kind: _enum([
19747
+ "install",
19748
+ "update",
19749
+ "uninstall",
19750
+ "restart"
19751
+ ]),
19752
+ targets: array(object({
19753
+ name: string().min(1),
19754
+ version: string().min(1)
19755
+ })).min(1),
19756
+ nodeIds: array(string()).optional()
19757
+ }), object({ jobId: string() }), {
19758
+ kind: "mutation",
19759
+ auth: "admin"
19760
+ }), method(object({ jobId: string() }), lifecycleJobSchema.nullable(), { auth: "admin" }), method(object({ activeOnly: boolean().optional() }), array(lifecycleJobSchema), { auth: "admin" }), method(object({ jobId: string() }), object({ cancelled: boolean() }), {
19761
+ kind: "mutation",
19762
+ auth: "admin"
19763
+ }), method(object({
19695
19764
  addonId: string(),
19696
19765
  level: LogLevelSchema$1.optional()
19697
19766
  }), LogStreamEntrySchema, { kind: "subscription" });
@@ -19732,7 +19801,7 @@ Object.freeze({
19732
19801
  addonId: null,
19733
19802
  access: "create"
19734
19803
  },
19735
- "addons.cancelBulkUpdate": {
19804
+ "addons.cancelJob": {
19736
19805
  capName: "addons",
19737
19806
  capScope: "system",
19738
19807
  addonId: null,
@@ -19762,7 +19831,7 @@ Object.freeze({
19762
19831
  addonId: null,
19763
19832
  access: "view"
19764
19833
  },
19765
- "addons.getBulkUpdateState": {
19834
+ "addons.getJob": {
19766
19835
  capName: "addons",
19767
19836
  capScope: "system",
19768
19837
  addonId: null,
@@ -19810,19 +19879,19 @@ Object.freeze({
19810
19879
  addonId: null,
19811
19880
  access: "view"
19812
19881
  },
19813
- "addons.listActiveBulkUpdates": {
19882
+ "addons.listCapabilityProviders": {
19814
19883
  capName: "addons",
19815
19884
  capScope: "system",
19816
19885
  addonId: null,
19817
19886
  access: "view"
19818
19887
  },
19819
- "addons.listCapabilityProviders": {
19888
+ "addons.listFrameworkPackages": {
19820
19889
  capName: "addons",
19821
19890
  capScope: "system",
19822
19891
  addonId: null,
19823
19892
  access: "view"
19824
19893
  },
19825
- "addons.listFrameworkPackages": {
19894
+ "addons.listJobs": {
19826
19895
  capName: "addons",
19827
19896
  capScope: "system",
19828
19897
  addonId: null,
@@ -19906,7 +19975,7 @@ Object.freeze({
19906
19975
  addonId: null,
19907
19976
  access: "create"
19908
19977
  },
19909
- "addons.startBulkUpdate": {
19978
+ "addons.startJob": {
19910
19979
  capName: "addons",
19911
19980
  capScope: "system",
19912
19981
  addonId: null,
@@ -23893,6 +23962,32 @@ Object.freeze({
23893
23962
  "network-access": "ingress",
23894
23963
  "smtp-provider": "email"
23895
23964
  });
23965
+ var frameworkSwapPackageSchema = object({
23966
+ name: string(),
23967
+ stagedPath: string(),
23968
+ backupPath: string(),
23969
+ toVersion: string(),
23970
+ fromVersion: string().nullable()
23971
+ });
23972
+ object({
23973
+ jobId: string(),
23974
+ taskId: string(),
23975
+ packages: array(frameworkSwapPackageSchema),
23976
+ requestedAtMs: number(),
23977
+ schemaVersion: literal(1)
23978
+ });
23979
+ object({
23980
+ jobId: string(),
23981
+ taskId: string(),
23982
+ backups: array(object({
23983
+ name: string(),
23984
+ backupPath: string(),
23985
+ livePath: string()
23986
+ })),
23987
+ appliedAtMs: number(),
23988
+ bootAttempts: number(),
23989
+ schemaVersion: literal(1)
23990
+ });
23896
23991
  //#endregion
23897
23992
  //#region src/schema.ts
23898
23993
  /**
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@camstack/addon-provider-hikvision",
3
- "version": "1.0.3",
3
+ "version": "1.0.4",
4
4
  "description": "Hikvision camera device provider addon for CamStack — ISAPI over HTTP(S) with digest auth (snapshot, alarm stream, RTSP discovery)",
5
5
  "keywords": [
6
6
  "camstack",