@camstack/addon-provider-rtsp 1.0.2 → 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
@@ -5145,14 +5145,15 @@ var EventCategory = /* @__PURE__ */ function(EventCategory) {
5145
5145
  EventCategory["DeviceSleeping"] = "device.sleeping";
5146
5146
  EventCategory["RetentionCleanup"] = "retention.cleanup";
5147
5147
  /**
5148
- * Progress snapshot emitted by `BulkUpdateCoordinator` on every state
5149
- * transition (item status change, phase change, completion, cancel).
5150
- * Payload is `BulkUpdateState`. Admin UI subscribes via `useLiveEvent`
5151
- * to drive the sticky `BulkUpdateBanner` and per-row `AddonRowBadge`.
5152
- *
5153
- * Spec: docs/superpowers/specs/2026-05-21-addons-bulk-update-progress-design.md
5148
+ * Legacy bulk-update progress snapshot (payload `BulkUpdateState`). No longer
5149
+ * emitted F3 removed the coordinator that produced it; "Update all" now runs
5150
+ * as one lifecycle engine job (`AddonsJobProgress`/`AddonsJobLog`). Retained
5151
+ * (with `BulkUpdateState`) only to avoid regenerating the event maps; removed
5152
+ * in F4 once live bulk progress is re-implemented over the engine events.
5154
5153
  */
5155
5154
  EventCategory["AddonsBulkUpdateProgress"] = "addons.bulk-update-progress";
5155
+ EventCategory["AddonsJobProgress"] = "addons.job-progress";
5156
+ EventCategory["AddonsJobLog"] = "addons.job-log";
5156
5157
  /**
5157
5158
  * A container's child visibility toggled (hidden/shown). Emitted by the
5158
5159
  * `accessories` cap when a child device is hidden or revealed.
@@ -18828,6 +18829,69 @@ method(_void(), array(IntegrationWithStateSchema)), method(object({ id: string()
18828
18829
  kind: "mutation",
18829
18830
  auth: "admin"
18830
18831
  });
18832
+ var jobKindSchema = _enum([
18833
+ "install",
18834
+ "update",
18835
+ "uninstall",
18836
+ "restart"
18837
+ ]);
18838
+ var taskPhaseSchema = _enum([
18839
+ "queued",
18840
+ "fetching",
18841
+ "staged",
18842
+ "validating",
18843
+ "applying",
18844
+ "restarting",
18845
+ "applied",
18846
+ "done",
18847
+ "failed",
18848
+ "skipped"
18849
+ ]);
18850
+ var taskTargetSchema = _enum(["framework", "addon"]);
18851
+ var taskLogEntrySchema = object({
18852
+ tsMs: number(),
18853
+ nodeId: string(),
18854
+ packageName: string(),
18855
+ phase: taskPhaseSchema,
18856
+ message: string()
18857
+ });
18858
+ var lifecycleTaskSchema = object({
18859
+ taskId: string(),
18860
+ nodeId: string(),
18861
+ packageName: string(),
18862
+ fromVersion: string().nullable(),
18863
+ toVersion: string(),
18864
+ target: taskTargetSchema,
18865
+ phase: taskPhaseSchema,
18866
+ stagedPath: string().nullable(),
18867
+ attempts: number(),
18868
+ steps: array(taskLogEntrySchema),
18869
+ error: string().nullable(),
18870
+ startedAtMs: number().nullable(),
18871
+ finishedAtMs: number().nullable()
18872
+ });
18873
+ var lifecycleJobStateSchema = _enum([
18874
+ "running",
18875
+ "completed",
18876
+ "failed",
18877
+ "partially-failed",
18878
+ "cancelled"
18879
+ ]);
18880
+ var lifecycleJobScopeSchema = _enum([
18881
+ "single",
18882
+ "bulk",
18883
+ "cluster"
18884
+ ]);
18885
+ var lifecycleJobSchema = object({
18886
+ jobId: string(),
18887
+ kind: jobKindSchema,
18888
+ createdAtMs: number(),
18889
+ createdBy: string(),
18890
+ scope: lifecycleJobScopeSchema,
18891
+ tasks: array(lifecycleTaskSchema),
18892
+ state: lifecycleJobStateSchema,
18893
+ schemaVersion: literal(1)
18894
+ });
18831
18895
  /**
18832
18896
  * addons — system-scoped singleton capability for addon package
18833
18897
  * management (install, update, configure, restart) and per-addon log
@@ -19010,7 +19074,7 @@ var BulkUpdatePhaseSchema = _enum([
19010
19074
  "restarting",
19011
19075
  "finalizing"
19012
19076
  ]);
19013
- var BulkUpdateStateSchema = object({
19077
+ object({
19014
19078
  id: string(),
19015
19079
  nodeId: string(),
19016
19080
  startedAtMs: number(),
@@ -19113,20 +19177,7 @@ method(_void(), array(AddonListItemSchema).readonly()), method(object({
19113
19177
  }), UpdateFrameworkPackageResultSchema, {
19114
19178
  kind: "mutation",
19115
19179
  auth: "admin"
19116
- }), method(object({
19117
- nodeId: string(),
19118
- items: array(object({
19119
- name: string(),
19120
- version: string(),
19121
- isSystem: boolean()
19122
- })).readonly()
19123
- }), object({ id: string() }), {
19124
- kind: "mutation",
19125
- auth: "admin"
19126
- }), method(object({ id: string() }), BulkUpdateStateSchema.nullable(), { auth: "admin" }), method(object({ id: string() }), object({ cancelled: boolean() }), {
19127
- kind: "mutation",
19128
- auth: "admin"
19129
- }), method(object({ nodeId: string().optional() }), array(BulkUpdateStateSchema).readonly(), { auth: "admin" }), method(object({ name: string() }), array(PackageVersionInfoSchema).readonly()), method(object({ addonId: string() }), RestartAddonResultSchema, {
19180
+ }), method(object({ name: string() }), array(PackageVersionInfoSchema).readonly()), method(object({ addonId: string() }), RestartAddonResultSchema, {
19130
19181
  kind: "mutation",
19131
19182
  auth: "admin"
19132
19183
  }), method(object({ packageName: string() }), object({ success: literal(true) }), {
@@ -19148,6 +19199,24 @@ method(_void(), array(AddonListItemSchema).readonly()), method(object({
19148
19199
  kind: "mutation",
19149
19200
  auth: "admin"
19150
19201
  }), method(CustomActionInputSchema, unknown(), { kind: "mutation" }), method(object({
19202
+ kind: _enum([
19203
+ "install",
19204
+ "update",
19205
+ "uninstall",
19206
+ "restart"
19207
+ ]),
19208
+ targets: array(object({
19209
+ name: string().min(1),
19210
+ version: string().min(1)
19211
+ })).min(1),
19212
+ nodeIds: array(string()).optional()
19213
+ }), object({ jobId: string() }), {
19214
+ kind: "mutation",
19215
+ auth: "admin"
19216
+ }), method(object({ jobId: string() }), lifecycleJobSchema.nullable(), { auth: "admin" }), method(object({ activeOnly: boolean().optional() }), array(lifecycleJobSchema), { auth: "admin" }), method(object({ jobId: string() }), object({ cancelled: boolean() }), {
19217
+ kind: "mutation",
19218
+ auth: "admin"
19219
+ }), method(object({
19151
19220
  addonId: string(),
19152
19221
  level: LogLevelSchema$1.optional()
19153
19222
  }), LogStreamEntrySchema, { kind: "subscription" });
@@ -19188,7 +19257,7 @@ Object.freeze({
19188
19257
  addonId: null,
19189
19258
  access: "create"
19190
19259
  },
19191
- "addons.cancelBulkUpdate": {
19260
+ "addons.cancelJob": {
19192
19261
  capName: "addons",
19193
19262
  capScope: "system",
19194
19263
  addonId: null,
@@ -19218,7 +19287,7 @@ Object.freeze({
19218
19287
  addonId: null,
19219
19288
  access: "view"
19220
19289
  },
19221
- "addons.getBulkUpdateState": {
19290
+ "addons.getJob": {
19222
19291
  capName: "addons",
19223
19292
  capScope: "system",
19224
19293
  addonId: null,
@@ -19266,19 +19335,19 @@ Object.freeze({
19266
19335
  addonId: null,
19267
19336
  access: "view"
19268
19337
  },
19269
- "addons.listActiveBulkUpdates": {
19338
+ "addons.listCapabilityProviders": {
19270
19339
  capName: "addons",
19271
19340
  capScope: "system",
19272
19341
  addonId: null,
19273
19342
  access: "view"
19274
19343
  },
19275
- "addons.listCapabilityProviders": {
19344
+ "addons.listFrameworkPackages": {
19276
19345
  capName: "addons",
19277
19346
  capScope: "system",
19278
19347
  addonId: null,
19279
19348
  access: "view"
19280
19349
  },
19281
- "addons.listFrameworkPackages": {
19350
+ "addons.listJobs": {
19282
19351
  capName: "addons",
19283
19352
  capScope: "system",
19284
19353
  addonId: null,
@@ -19362,7 +19431,7 @@ Object.freeze({
19362
19431
  addonId: null,
19363
19432
  access: "create"
19364
19433
  },
19365
- "addons.startBulkUpdate": {
19434
+ "addons.startJob": {
19366
19435
  capName: "addons",
19367
19436
  capScope: "system",
19368
19437
  addonId: null,
@@ -23349,6 +23418,32 @@ Object.freeze({
23349
23418
  "network-access": "ingress",
23350
23419
  "smtp-provider": "email"
23351
23420
  });
23421
+ var frameworkSwapPackageSchema = object({
23422
+ name: string(),
23423
+ stagedPath: string(),
23424
+ backupPath: string(),
23425
+ toVersion: string(),
23426
+ fromVersion: string().nullable()
23427
+ });
23428
+ object({
23429
+ jobId: string(),
23430
+ taskId: string(),
23431
+ packages: array(frameworkSwapPackageSchema),
23432
+ requestedAtMs: number(),
23433
+ schemaVersion: literal(1)
23434
+ });
23435
+ object({
23436
+ jobId: string(),
23437
+ taskId: string(),
23438
+ backups: array(object({
23439
+ name: string(),
23440
+ backupPath: string(),
23441
+ livePath: string()
23442
+ })),
23443
+ appliedAtMs: number(),
23444
+ bootAttempts: number(),
23445
+ schemaVersion: literal(1)
23446
+ });
23352
23447
  /**
23353
23448
  * Names that, when used as URL query parameters, almost certainly carry
23354
23449
  * a secret. Matching is case-insensitive and anchored to the full param
package/dist/addon.mjs CHANGED
@@ -5144,14 +5144,15 @@ var EventCategory = /* @__PURE__ */ function(EventCategory) {
5144
5144
  EventCategory["DeviceSleeping"] = "device.sleeping";
5145
5145
  EventCategory["RetentionCleanup"] = "retention.cleanup";
5146
5146
  /**
5147
- * Progress snapshot emitted by `BulkUpdateCoordinator` on every state
5148
- * transition (item status change, phase change, completion, cancel).
5149
- * Payload is `BulkUpdateState`. Admin UI subscribes via `useLiveEvent`
5150
- * to drive the sticky `BulkUpdateBanner` and per-row `AddonRowBadge`.
5151
- *
5152
- * Spec: docs/superpowers/specs/2026-05-21-addons-bulk-update-progress-design.md
5147
+ * Legacy bulk-update progress snapshot (payload `BulkUpdateState`). No longer
5148
+ * emitted F3 removed the coordinator that produced it; "Update all" now runs
5149
+ * as one lifecycle engine job (`AddonsJobProgress`/`AddonsJobLog`). Retained
5150
+ * (with `BulkUpdateState`) only to avoid regenerating the event maps; removed
5151
+ * in F4 once live bulk progress is re-implemented over the engine events.
5153
5152
  */
5154
5153
  EventCategory["AddonsBulkUpdateProgress"] = "addons.bulk-update-progress";
5154
+ EventCategory["AddonsJobProgress"] = "addons.job-progress";
5155
+ EventCategory["AddonsJobLog"] = "addons.job-log";
5155
5156
  /**
5156
5157
  * A container's child visibility toggled (hidden/shown). Emitted by the
5157
5158
  * `accessories` cap when a child device is hidden or revealed.
@@ -18827,6 +18828,69 @@ method(_void(), array(IntegrationWithStateSchema)), method(object({ id: string()
18827
18828
  kind: "mutation",
18828
18829
  auth: "admin"
18829
18830
  });
18831
+ var jobKindSchema = _enum([
18832
+ "install",
18833
+ "update",
18834
+ "uninstall",
18835
+ "restart"
18836
+ ]);
18837
+ var taskPhaseSchema = _enum([
18838
+ "queued",
18839
+ "fetching",
18840
+ "staged",
18841
+ "validating",
18842
+ "applying",
18843
+ "restarting",
18844
+ "applied",
18845
+ "done",
18846
+ "failed",
18847
+ "skipped"
18848
+ ]);
18849
+ var taskTargetSchema = _enum(["framework", "addon"]);
18850
+ var taskLogEntrySchema = object({
18851
+ tsMs: number(),
18852
+ nodeId: string(),
18853
+ packageName: string(),
18854
+ phase: taskPhaseSchema,
18855
+ message: string()
18856
+ });
18857
+ var lifecycleTaskSchema = object({
18858
+ taskId: string(),
18859
+ nodeId: string(),
18860
+ packageName: string(),
18861
+ fromVersion: string().nullable(),
18862
+ toVersion: string(),
18863
+ target: taskTargetSchema,
18864
+ phase: taskPhaseSchema,
18865
+ stagedPath: string().nullable(),
18866
+ attempts: number(),
18867
+ steps: array(taskLogEntrySchema),
18868
+ error: string().nullable(),
18869
+ startedAtMs: number().nullable(),
18870
+ finishedAtMs: number().nullable()
18871
+ });
18872
+ var lifecycleJobStateSchema = _enum([
18873
+ "running",
18874
+ "completed",
18875
+ "failed",
18876
+ "partially-failed",
18877
+ "cancelled"
18878
+ ]);
18879
+ var lifecycleJobScopeSchema = _enum([
18880
+ "single",
18881
+ "bulk",
18882
+ "cluster"
18883
+ ]);
18884
+ var lifecycleJobSchema = object({
18885
+ jobId: string(),
18886
+ kind: jobKindSchema,
18887
+ createdAtMs: number(),
18888
+ createdBy: string(),
18889
+ scope: lifecycleJobScopeSchema,
18890
+ tasks: array(lifecycleTaskSchema),
18891
+ state: lifecycleJobStateSchema,
18892
+ schemaVersion: literal(1)
18893
+ });
18830
18894
  /**
18831
18895
  * addons — system-scoped singleton capability for addon package
18832
18896
  * management (install, update, configure, restart) and per-addon log
@@ -19009,7 +19073,7 @@ var BulkUpdatePhaseSchema = _enum([
19009
19073
  "restarting",
19010
19074
  "finalizing"
19011
19075
  ]);
19012
- var BulkUpdateStateSchema = object({
19076
+ object({
19013
19077
  id: string(),
19014
19078
  nodeId: string(),
19015
19079
  startedAtMs: number(),
@@ -19112,20 +19176,7 @@ method(_void(), array(AddonListItemSchema).readonly()), method(object({
19112
19176
  }), UpdateFrameworkPackageResultSchema, {
19113
19177
  kind: "mutation",
19114
19178
  auth: "admin"
19115
- }), method(object({
19116
- nodeId: string(),
19117
- items: array(object({
19118
- name: string(),
19119
- version: string(),
19120
- isSystem: boolean()
19121
- })).readonly()
19122
- }), object({ id: string() }), {
19123
- kind: "mutation",
19124
- auth: "admin"
19125
- }), method(object({ id: string() }), BulkUpdateStateSchema.nullable(), { auth: "admin" }), method(object({ id: string() }), object({ cancelled: boolean() }), {
19126
- kind: "mutation",
19127
- auth: "admin"
19128
- }), method(object({ nodeId: string().optional() }), array(BulkUpdateStateSchema).readonly(), { auth: "admin" }), method(object({ name: string() }), array(PackageVersionInfoSchema).readonly()), method(object({ addonId: string() }), RestartAddonResultSchema, {
19179
+ }), method(object({ name: string() }), array(PackageVersionInfoSchema).readonly()), method(object({ addonId: string() }), RestartAddonResultSchema, {
19129
19180
  kind: "mutation",
19130
19181
  auth: "admin"
19131
19182
  }), method(object({ packageName: string() }), object({ success: literal(true) }), {
@@ -19147,6 +19198,24 @@ method(_void(), array(AddonListItemSchema).readonly()), method(object({
19147
19198
  kind: "mutation",
19148
19199
  auth: "admin"
19149
19200
  }), method(CustomActionInputSchema, unknown(), { kind: "mutation" }), method(object({
19201
+ kind: _enum([
19202
+ "install",
19203
+ "update",
19204
+ "uninstall",
19205
+ "restart"
19206
+ ]),
19207
+ targets: array(object({
19208
+ name: string().min(1),
19209
+ version: string().min(1)
19210
+ })).min(1),
19211
+ nodeIds: array(string()).optional()
19212
+ }), object({ jobId: string() }), {
19213
+ kind: "mutation",
19214
+ auth: "admin"
19215
+ }), method(object({ jobId: string() }), lifecycleJobSchema.nullable(), { auth: "admin" }), method(object({ activeOnly: boolean().optional() }), array(lifecycleJobSchema), { auth: "admin" }), method(object({ jobId: string() }), object({ cancelled: boolean() }), {
19216
+ kind: "mutation",
19217
+ auth: "admin"
19218
+ }), method(object({
19150
19219
  addonId: string(),
19151
19220
  level: LogLevelSchema$1.optional()
19152
19221
  }), LogStreamEntrySchema, { kind: "subscription" });
@@ -19187,7 +19256,7 @@ Object.freeze({
19187
19256
  addonId: null,
19188
19257
  access: "create"
19189
19258
  },
19190
- "addons.cancelBulkUpdate": {
19259
+ "addons.cancelJob": {
19191
19260
  capName: "addons",
19192
19261
  capScope: "system",
19193
19262
  addonId: null,
@@ -19217,7 +19286,7 @@ Object.freeze({
19217
19286
  addonId: null,
19218
19287
  access: "view"
19219
19288
  },
19220
- "addons.getBulkUpdateState": {
19289
+ "addons.getJob": {
19221
19290
  capName: "addons",
19222
19291
  capScope: "system",
19223
19292
  addonId: null,
@@ -19265,19 +19334,19 @@ Object.freeze({
19265
19334
  addonId: null,
19266
19335
  access: "view"
19267
19336
  },
19268
- "addons.listActiveBulkUpdates": {
19337
+ "addons.listCapabilityProviders": {
19269
19338
  capName: "addons",
19270
19339
  capScope: "system",
19271
19340
  addonId: null,
19272
19341
  access: "view"
19273
19342
  },
19274
- "addons.listCapabilityProviders": {
19343
+ "addons.listFrameworkPackages": {
19275
19344
  capName: "addons",
19276
19345
  capScope: "system",
19277
19346
  addonId: null,
19278
19347
  access: "view"
19279
19348
  },
19280
- "addons.listFrameworkPackages": {
19349
+ "addons.listJobs": {
19281
19350
  capName: "addons",
19282
19351
  capScope: "system",
19283
19352
  addonId: null,
@@ -19361,7 +19430,7 @@ Object.freeze({
19361
19430
  addonId: null,
19362
19431
  access: "create"
19363
19432
  },
19364
- "addons.startBulkUpdate": {
19433
+ "addons.startJob": {
19365
19434
  capName: "addons",
19366
19435
  capScope: "system",
19367
19436
  addonId: null,
@@ -23348,6 +23417,32 @@ Object.freeze({
23348
23417
  "network-access": "ingress",
23349
23418
  "smtp-provider": "email"
23350
23419
  });
23420
+ var frameworkSwapPackageSchema = object({
23421
+ name: string(),
23422
+ stagedPath: string(),
23423
+ backupPath: string(),
23424
+ toVersion: string(),
23425
+ fromVersion: string().nullable()
23426
+ });
23427
+ object({
23428
+ jobId: string(),
23429
+ taskId: string(),
23430
+ packages: array(frameworkSwapPackageSchema),
23431
+ requestedAtMs: number(),
23432
+ schemaVersion: literal(1)
23433
+ });
23434
+ object({
23435
+ jobId: string(),
23436
+ taskId: string(),
23437
+ backups: array(object({
23438
+ name: string(),
23439
+ backupPath: string(),
23440
+ livePath: string()
23441
+ })),
23442
+ appliedAtMs: number(),
23443
+ bootAttempts: number(),
23444
+ schemaVersion: literal(1)
23445
+ });
23351
23446
  /**
23352
23447
  * Names that, when used as URL query parameters, almost certainly carry
23353
23448
  * a secret. Matching is case-insensitive and anchored to the full param
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@camstack/addon-provider-rtsp",
3
- "version": "1.0.2",
3
+ "version": "1.0.4",
4
4
  "description": "Generic RTSP camera device provider addon for CamStack",
5
5
  "keywords": [
6
6
  "camstack",