@camstack/addon-static-turn 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.
@@ -5131,14 +5131,15 @@ var EventCategory = /* @__PURE__ */ function(EventCategory) {
5131
5131
  EventCategory["DeviceSleeping"] = "device.sleeping";
5132
5132
  EventCategory["RetentionCleanup"] = "retention.cleanup";
5133
5133
  /**
5134
- * Progress snapshot emitted by `BulkUpdateCoordinator` on every state
5135
- * transition (item status change, phase change, completion, cancel).
5136
- * Payload is `BulkUpdateState`. Admin UI subscribes via `useLiveEvent`
5137
- * to drive the sticky `BulkUpdateBanner` and per-row `AddonRowBadge`.
5138
- *
5139
- * Spec: docs/superpowers/specs/2026-05-21-addons-bulk-update-progress-design.md
5134
+ * Legacy bulk-update progress snapshot (payload `BulkUpdateState`). No longer
5135
+ * emitted F3 removed the coordinator that produced it; "Update all" now runs
5136
+ * as one lifecycle engine job (`AddonsJobProgress`/`AddonsJobLog`). Retained
5137
+ * (with `BulkUpdateState`) only to avoid regenerating the event maps; removed
5138
+ * in F4 once live bulk progress is re-implemented over the engine events.
5140
5139
  */
5141
5140
  EventCategory["AddonsBulkUpdateProgress"] = "addons.bulk-update-progress";
5141
+ EventCategory["AddonsJobProgress"] = "addons.job-progress";
5142
+ EventCategory["AddonsJobLog"] = "addons.job-log";
5142
5143
  /**
5143
5144
  * A container's child visibility toggled (hidden/shown). Emitted by the
5144
5145
  * `accessories` cap when a child device is hidden or revealed.
@@ -15981,6 +15982,69 @@ method(_void(), array(IntegrationWithStateSchema)), method(object({ id: string()
15981
15982
  kind: "mutation",
15982
15983
  auth: "admin"
15983
15984
  });
15985
+ var jobKindSchema = _enum([
15986
+ "install",
15987
+ "update",
15988
+ "uninstall",
15989
+ "restart"
15990
+ ]);
15991
+ var taskPhaseSchema = _enum([
15992
+ "queued",
15993
+ "fetching",
15994
+ "staged",
15995
+ "validating",
15996
+ "applying",
15997
+ "restarting",
15998
+ "applied",
15999
+ "done",
16000
+ "failed",
16001
+ "skipped"
16002
+ ]);
16003
+ var taskTargetSchema = _enum(["framework", "addon"]);
16004
+ var taskLogEntrySchema = object({
16005
+ tsMs: number(),
16006
+ nodeId: string(),
16007
+ packageName: string(),
16008
+ phase: taskPhaseSchema,
16009
+ message: string()
16010
+ });
16011
+ var lifecycleTaskSchema = object({
16012
+ taskId: string(),
16013
+ nodeId: string(),
16014
+ packageName: string(),
16015
+ fromVersion: string().nullable(),
16016
+ toVersion: string(),
16017
+ target: taskTargetSchema,
16018
+ phase: taskPhaseSchema,
16019
+ stagedPath: string().nullable(),
16020
+ attempts: number(),
16021
+ steps: array(taskLogEntrySchema),
16022
+ error: string().nullable(),
16023
+ startedAtMs: number().nullable(),
16024
+ finishedAtMs: number().nullable()
16025
+ });
16026
+ var lifecycleJobStateSchema = _enum([
16027
+ "running",
16028
+ "completed",
16029
+ "failed",
16030
+ "partially-failed",
16031
+ "cancelled"
16032
+ ]);
16033
+ var lifecycleJobScopeSchema = _enum([
16034
+ "single",
16035
+ "bulk",
16036
+ "cluster"
16037
+ ]);
16038
+ var lifecycleJobSchema = object({
16039
+ jobId: string(),
16040
+ kind: jobKindSchema,
16041
+ createdAtMs: number(),
16042
+ createdBy: string(),
16043
+ scope: lifecycleJobScopeSchema,
16044
+ tasks: array(lifecycleTaskSchema),
16045
+ state: lifecycleJobStateSchema,
16046
+ schemaVersion: literal(1)
16047
+ });
15984
16048
  /**
15985
16049
  * addons — system-scoped singleton capability for addon package
15986
16050
  * management (install, update, configure, restart) and per-addon log
@@ -16163,7 +16227,7 @@ var BulkUpdatePhaseSchema = _enum([
16163
16227
  "restarting",
16164
16228
  "finalizing"
16165
16229
  ]);
16166
- var BulkUpdateStateSchema = object({
16230
+ object({
16167
16231
  id: string(),
16168
16232
  nodeId: string(),
16169
16233
  startedAtMs: number(),
@@ -16266,20 +16330,7 @@ method(_void(), array(AddonListItemSchema).readonly()), method(object({
16266
16330
  }), UpdateFrameworkPackageResultSchema, {
16267
16331
  kind: "mutation",
16268
16332
  auth: "admin"
16269
- }), method(object({
16270
- nodeId: string(),
16271
- items: array(object({
16272
- name: string(),
16273
- version: string(),
16274
- isSystem: boolean()
16275
- })).readonly()
16276
- }), object({ id: string() }), {
16277
- kind: "mutation",
16278
- auth: "admin"
16279
- }), method(object({ id: string() }), BulkUpdateStateSchema.nullable(), { auth: "admin" }), method(object({ id: string() }), object({ cancelled: boolean() }), {
16280
- kind: "mutation",
16281
- auth: "admin"
16282
- }), method(object({ nodeId: string().optional() }), array(BulkUpdateStateSchema).readonly(), { auth: "admin" }), method(object({ name: string() }), array(PackageVersionInfoSchema).readonly()), method(object({ addonId: string() }), RestartAddonResultSchema, {
16333
+ }), method(object({ name: string() }), array(PackageVersionInfoSchema).readonly()), method(object({ addonId: string() }), RestartAddonResultSchema, {
16283
16334
  kind: "mutation",
16284
16335
  auth: "admin"
16285
16336
  }), method(object({ packageName: string() }), object({ success: literal(true) }), {
@@ -16301,6 +16352,24 @@ method(_void(), array(AddonListItemSchema).readonly()), method(object({
16301
16352
  kind: "mutation",
16302
16353
  auth: "admin"
16303
16354
  }), method(CustomActionInputSchema, unknown(), { kind: "mutation" }), method(object({
16355
+ kind: _enum([
16356
+ "install",
16357
+ "update",
16358
+ "uninstall",
16359
+ "restart"
16360
+ ]),
16361
+ targets: array(object({
16362
+ name: string().min(1),
16363
+ version: string().min(1)
16364
+ })).min(1),
16365
+ nodeIds: array(string()).optional()
16366
+ }), object({ jobId: string() }), {
16367
+ kind: "mutation",
16368
+ auth: "admin"
16369
+ }), method(object({ jobId: string() }), lifecycleJobSchema.nullable(), { auth: "admin" }), method(object({ activeOnly: boolean().optional() }), array(lifecycleJobSchema), { auth: "admin" }), method(object({ jobId: string() }), object({ cancelled: boolean() }), {
16370
+ kind: "mutation",
16371
+ auth: "admin"
16372
+ }), method(object({
16304
16373
  addonId: string(),
16305
16374
  level: LogLevelSchema$1.optional()
16306
16375
  }), LogStreamEntrySchema, { kind: "subscription" });
@@ -16341,7 +16410,7 @@ Object.freeze({
16341
16410
  addonId: null,
16342
16411
  access: "create"
16343
16412
  },
16344
- "addons.cancelBulkUpdate": {
16413
+ "addons.cancelJob": {
16345
16414
  capName: "addons",
16346
16415
  capScope: "system",
16347
16416
  addonId: null,
@@ -16371,7 +16440,7 @@ Object.freeze({
16371
16440
  addonId: null,
16372
16441
  access: "view"
16373
16442
  },
16374
- "addons.getBulkUpdateState": {
16443
+ "addons.getJob": {
16375
16444
  capName: "addons",
16376
16445
  capScope: "system",
16377
16446
  addonId: null,
@@ -16419,19 +16488,19 @@ Object.freeze({
16419
16488
  addonId: null,
16420
16489
  access: "view"
16421
16490
  },
16422
- "addons.listActiveBulkUpdates": {
16491
+ "addons.listCapabilityProviders": {
16423
16492
  capName: "addons",
16424
16493
  capScope: "system",
16425
16494
  addonId: null,
16426
16495
  access: "view"
16427
16496
  },
16428
- "addons.listCapabilityProviders": {
16497
+ "addons.listFrameworkPackages": {
16429
16498
  capName: "addons",
16430
16499
  capScope: "system",
16431
16500
  addonId: null,
16432
16501
  access: "view"
16433
16502
  },
16434
- "addons.listFrameworkPackages": {
16503
+ "addons.listJobs": {
16435
16504
  capName: "addons",
16436
16505
  capScope: "system",
16437
16506
  addonId: null,
@@ -16515,7 +16584,7 @@ Object.freeze({
16515
16584
  addonId: null,
16516
16585
  access: "create"
16517
16586
  },
16518
- "addons.startBulkUpdate": {
16587
+ "addons.startJob": {
16519
16588
  capName: "addons",
16520
16589
  capScope: "system",
16521
16590
  addonId: null,
@@ -20502,6 +20571,32 @@ Object.freeze({
20502
20571
  "network-access": "ingress",
20503
20572
  "smtp-provider": "email"
20504
20573
  });
20574
+ var frameworkSwapPackageSchema = object({
20575
+ name: string(),
20576
+ stagedPath: string(),
20577
+ backupPath: string(),
20578
+ toVersion: string(),
20579
+ fromVersion: string().nullable()
20580
+ });
20581
+ object({
20582
+ jobId: string(),
20583
+ taskId: string(),
20584
+ packages: array(frameworkSwapPackageSchema),
20585
+ requestedAtMs: number(),
20586
+ schemaVersion: literal(1)
20587
+ });
20588
+ object({
20589
+ jobId: string(),
20590
+ taskId: string(),
20591
+ backups: array(object({
20592
+ name: string(),
20593
+ backupPath: string(),
20594
+ livePath: string()
20595
+ })),
20596
+ appliedAtMs: number(),
20597
+ bootAttempts: number(),
20598
+ schemaVersion: literal(1)
20599
+ });
20505
20600
  //#endregion
20506
20601
  //#region src/static-turn.addon.ts
20507
20602
  /**
@@ -5130,14 +5130,15 @@ var EventCategory = /* @__PURE__ */ function(EventCategory) {
5130
5130
  EventCategory["DeviceSleeping"] = "device.sleeping";
5131
5131
  EventCategory["RetentionCleanup"] = "retention.cleanup";
5132
5132
  /**
5133
- * Progress snapshot emitted by `BulkUpdateCoordinator` on every state
5134
- * transition (item status change, phase change, completion, cancel).
5135
- * Payload is `BulkUpdateState`. Admin UI subscribes via `useLiveEvent`
5136
- * to drive the sticky `BulkUpdateBanner` and per-row `AddonRowBadge`.
5137
- *
5138
- * Spec: docs/superpowers/specs/2026-05-21-addons-bulk-update-progress-design.md
5133
+ * Legacy bulk-update progress snapshot (payload `BulkUpdateState`). No longer
5134
+ * emitted F3 removed the coordinator that produced it; "Update all" now runs
5135
+ * as one lifecycle engine job (`AddonsJobProgress`/`AddonsJobLog`). Retained
5136
+ * (with `BulkUpdateState`) only to avoid regenerating the event maps; removed
5137
+ * in F4 once live bulk progress is re-implemented over the engine events.
5139
5138
  */
5140
5139
  EventCategory["AddonsBulkUpdateProgress"] = "addons.bulk-update-progress";
5140
+ EventCategory["AddonsJobProgress"] = "addons.job-progress";
5141
+ EventCategory["AddonsJobLog"] = "addons.job-log";
5141
5142
  /**
5142
5143
  * A container's child visibility toggled (hidden/shown). Emitted by the
5143
5144
  * `accessories` cap when a child device is hidden or revealed.
@@ -15980,6 +15981,69 @@ method(_void(), array(IntegrationWithStateSchema)), method(object({ id: string()
15980
15981
  kind: "mutation",
15981
15982
  auth: "admin"
15982
15983
  });
15984
+ var jobKindSchema = _enum([
15985
+ "install",
15986
+ "update",
15987
+ "uninstall",
15988
+ "restart"
15989
+ ]);
15990
+ var taskPhaseSchema = _enum([
15991
+ "queued",
15992
+ "fetching",
15993
+ "staged",
15994
+ "validating",
15995
+ "applying",
15996
+ "restarting",
15997
+ "applied",
15998
+ "done",
15999
+ "failed",
16000
+ "skipped"
16001
+ ]);
16002
+ var taskTargetSchema = _enum(["framework", "addon"]);
16003
+ var taskLogEntrySchema = object({
16004
+ tsMs: number(),
16005
+ nodeId: string(),
16006
+ packageName: string(),
16007
+ phase: taskPhaseSchema,
16008
+ message: string()
16009
+ });
16010
+ var lifecycleTaskSchema = object({
16011
+ taskId: string(),
16012
+ nodeId: string(),
16013
+ packageName: string(),
16014
+ fromVersion: string().nullable(),
16015
+ toVersion: string(),
16016
+ target: taskTargetSchema,
16017
+ phase: taskPhaseSchema,
16018
+ stagedPath: string().nullable(),
16019
+ attempts: number(),
16020
+ steps: array(taskLogEntrySchema),
16021
+ error: string().nullable(),
16022
+ startedAtMs: number().nullable(),
16023
+ finishedAtMs: number().nullable()
16024
+ });
16025
+ var lifecycleJobStateSchema = _enum([
16026
+ "running",
16027
+ "completed",
16028
+ "failed",
16029
+ "partially-failed",
16030
+ "cancelled"
16031
+ ]);
16032
+ var lifecycleJobScopeSchema = _enum([
16033
+ "single",
16034
+ "bulk",
16035
+ "cluster"
16036
+ ]);
16037
+ var lifecycleJobSchema = object({
16038
+ jobId: string(),
16039
+ kind: jobKindSchema,
16040
+ createdAtMs: number(),
16041
+ createdBy: string(),
16042
+ scope: lifecycleJobScopeSchema,
16043
+ tasks: array(lifecycleTaskSchema),
16044
+ state: lifecycleJobStateSchema,
16045
+ schemaVersion: literal(1)
16046
+ });
15983
16047
  /**
15984
16048
  * addons — system-scoped singleton capability for addon package
15985
16049
  * management (install, update, configure, restart) and per-addon log
@@ -16162,7 +16226,7 @@ var BulkUpdatePhaseSchema = _enum([
16162
16226
  "restarting",
16163
16227
  "finalizing"
16164
16228
  ]);
16165
- var BulkUpdateStateSchema = object({
16229
+ object({
16166
16230
  id: string(),
16167
16231
  nodeId: string(),
16168
16232
  startedAtMs: number(),
@@ -16265,20 +16329,7 @@ method(_void(), array(AddonListItemSchema).readonly()), method(object({
16265
16329
  }), UpdateFrameworkPackageResultSchema, {
16266
16330
  kind: "mutation",
16267
16331
  auth: "admin"
16268
- }), method(object({
16269
- nodeId: string(),
16270
- items: array(object({
16271
- name: string(),
16272
- version: string(),
16273
- isSystem: boolean()
16274
- })).readonly()
16275
- }), object({ id: string() }), {
16276
- kind: "mutation",
16277
- auth: "admin"
16278
- }), method(object({ id: string() }), BulkUpdateStateSchema.nullable(), { auth: "admin" }), method(object({ id: string() }), object({ cancelled: boolean() }), {
16279
- kind: "mutation",
16280
- auth: "admin"
16281
- }), method(object({ nodeId: string().optional() }), array(BulkUpdateStateSchema).readonly(), { auth: "admin" }), method(object({ name: string() }), array(PackageVersionInfoSchema).readonly()), method(object({ addonId: string() }), RestartAddonResultSchema, {
16332
+ }), method(object({ name: string() }), array(PackageVersionInfoSchema).readonly()), method(object({ addonId: string() }), RestartAddonResultSchema, {
16282
16333
  kind: "mutation",
16283
16334
  auth: "admin"
16284
16335
  }), method(object({ packageName: string() }), object({ success: literal(true) }), {
@@ -16300,6 +16351,24 @@ method(_void(), array(AddonListItemSchema).readonly()), method(object({
16300
16351
  kind: "mutation",
16301
16352
  auth: "admin"
16302
16353
  }), method(CustomActionInputSchema, unknown(), { kind: "mutation" }), method(object({
16354
+ kind: _enum([
16355
+ "install",
16356
+ "update",
16357
+ "uninstall",
16358
+ "restart"
16359
+ ]),
16360
+ targets: array(object({
16361
+ name: string().min(1),
16362
+ version: string().min(1)
16363
+ })).min(1),
16364
+ nodeIds: array(string()).optional()
16365
+ }), object({ jobId: string() }), {
16366
+ kind: "mutation",
16367
+ auth: "admin"
16368
+ }), method(object({ jobId: string() }), lifecycleJobSchema.nullable(), { auth: "admin" }), method(object({ activeOnly: boolean().optional() }), array(lifecycleJobSchema), { auth: "admin" }), method(object({ jobId: string() }), object({ cancelled: boolean() }), {
16369
+ kind: "mutation",
16370
+ auth: "admin"
16371
+ }), method(object({
16303
16372
  addonId: string(),
16304
16373
  level: LogLevelSchema$1.optional()
16305
16374
  }), LogStreamEntrySchema, { kind: "subscription" });
@@ -16340,7 +16409,7 @@ Object.freeze({
16340
16409
  addonId: null,
16341
16410
  access: "create"
16342
16411
  },
16343
- "addons.cancelBulkUpdate": {
16412
+ "addons.cancelJob": {
16344
16413
  capName: "addons",
16345
16414
  capScope: "system",
16346
16415
  addonId: null,
@@ -16370,7 +16439,7 @@ Object.freeze({
16370
16439
  addonId: null,
16371
16440
  access: "view"
16372
16441
  },
16373
- "addons.getBulkUpdateState": {
16442
+ "addons.getJob": {
16374
16443
  capName: "addons",
16375
16444
  capScope: "system",
16376
16445
  addonId: null,
@@ -16418,19 +16487,19 @@ Object.freeze({
16418
16487
  addonId: null,
16419
16488
  access: "view"
16420
16489
  },
16421
- "addons.listActiveBulkUpdates": {
16490
+ "addons.listCapabilityProviders": {
16422
16491
  capName: "addons",
16423
16492
  capScope: "system",
16424
16493
  addonId: null,
16425
16494
  access: "view"
16426
16495
  },
16427
- "addons.listCapabilityProviders": {
16496
+ "addons.listFrameworkPackages": {
16428
16497
  capName: "addons",
16429
16498
  capScope: "system",
16430
16499
  addonId: null,
16431
16500
  access: "view"
16432
16501
  },
16433
- "addons.listFrameworkPackages": {
16502
+ "addons.listJobs": {
16434
16503
  capName: "addons",
16435
16504
  capScope: "system",
16436
16505
  addonId: null,
@@ -16514,7 +16583,7 @@ Object.freeze({
16514
16583
  addonId: null,
16515
16584
  access: "create"
16516
16585
  },
16517
- "addons.startBulkUpdate": {
16586
+ "addons.startJob": {
16518
16587
  capName: "addons",
16519
16588
  capScope: "system",
16520
16589
  addonId: null,
@@ -20501,6 +20570,32 @@ Object.freeze({
20501
20570
  "network-access": "ingress",
20502
20571
  "smtp-provider": "email"
20503
20572
  });
20573
+ var frameworkSwapPackageSchema = object({
20574
+ name: string(),
20575
+ stagedPath: string(),
20576
+ backupPath: string(),
20577
+ toVersion: string(),
20578
+ fromVersion: string().nullable()
20579
+ });
20580
+ object({
20581
+ jobId: string(),
20582
+ taskId: string(),
20583
+ packages: array(frameworkSwapPackageSchema),
20584
+ requestedAtMs: number(),
20585
+ schemaVersion: literal(1)
20586
+ });
20587
+ object({
20588
+ jobId: string(),
20589
+ taskId: string(),
20590
+ backups: array(object({
20591
+ name: string(),
20592
+ backupPath: string(),
20593
+ livePath: string()
20594
+ })),
20595
+ appliedAtMs: number(),
20596
+ bootAttempts: number(),
20597
+ schemaVersion: literal(1)
20598
+ });
20504
20599
  //#endregion
20505
20600
  //#region src/static-turn.addon.ts
20506
20601
  /**
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@camstack/addon-static-turn",
3
- "version": "1.0.3",
3
+ "version": "1.0.4",
4
4
  "description": "Static / self-hosted (coturn) TURN provider for CamStack",
5
5
  "keywords": [
6
6
  "camstack",