@camstack/addon-osd-manager 0.1.46 → 0.1.48

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/_stub.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import "./virtualExposes-BgZ5Cn7S.mjs";
2
- import "./virtual_mf-REMOTE_ENTRY_ID___mfe_internal__addon_osd_manager_page__remoteEntry_js-SZ6AoKiv.mjs";
2
+ import "./virtual_mf-REMOTE_ENTRY_ID___mfe_internal__addon_osd_manager_page__remoteEntry_js-CVxDdrya.mjs";
3
3
  import { _ as e, c as t, d as n, h as r, i, l as a, m as o, n as s, p as c, r as l, t as u, u as d, y as f } from "./_virtual_mf___mfe_internal__addon_osd_manager_page__loadShare__react__loadShare__.js-Bs1t18EM.mjs";
4
4
  import { i as p, o as m, r as h, s as g } from "./responsive-DqaxuER_.mjs";
5
5
  import { c as _, l as v, u as y } from "./use-device-snapshot-CuMjvbLq.mjs";
@@ -1,9 +1,9 @@
1
- import "./virtual_mf-REMOTE_ENTRY_ID___mfe_internal__addon_osd_manager_page__remoteEntry_js-SZ6AoKiv.mjs";
1
+ import "./virtual_mf-REMOTE_ENTRY_ID___mfe_internal__addon_osd_manager_page__remoteEntry_js-CVxDdrya.mjs";
2
2
  //#region \0virtual:mf-localSharedImportMap:__mfe_internal__addon_osd_manager_page
3
3
  var e = {
4
4
  "@camstack/sdk": {
5
5
  name: "@camstack/sdk",
6
- version: "1.2.55",
6
+ version: "1.2.56",
7
7
  scope: ["default"],
8
8
  loaded: !1,
9
9
  from: "addon_osd_manager_page",
@@ -18,7 +18,7 @@ var e = {
18
18
  },
19
19
  "@camstack/types": {
20
20
  name: "@camstack/types",
21
- version: "1.2.135",
21
+ version: "1.2.136",
22
22
  scope: ["default"],
23
23
  loaded: !1,
24
24
  from: "addon_osd_manager_page",
@@ -33,7 +33,7 @@ var e = {
33
33
  },
34
34
  "@camstack/ui-library": {
35
35
  name: "@camstack/ui-library",
36
- version: "1.2.100",
36
+ version: "1.2.102",
37
37
  scope: ["default"],
38
38
  loaded: !1,
39
39
  from: "addon_osd_manager_page",
@@ -36,7 +36,7 @@ async function r() {
36
36
  }
37
37
  },
38
38
  "@camstack/types": {
39
- version: "1.2.135",
39
+ version: "1.2.136",
40
40
  scope: "default",
41
41
  shareConfig: {
42
42
  singleton: !0,
@@ -45,7 +45,7 @@ async function r() {
45
45
  }
46
46
  },
47
47
  "@camstack/sdk": {
48
- version: "1.2.55",
48
+ version: "1.2.56",
49
49
  scope: "default",
50
50
  shareConfig: {
51
51
  singleton: !0,
@@ -81,7 +81,7 @@ async function r() {
81
81
  }
82
82
  },
83
83
  "@camstack/ui-library": {
84
- version: "1.2.100",
84
+ version: "1.2.102",
85
85
  scope: "default",
86
86
  shareConfig: {
87
87
  singleton: !0,
package/dist/index.js CHANGED
@@ -7817,7 +7817,8 @@ var OpsLogReasonSchema = _enum([
7817
7817
  "quota",
7818
7818
  "manual",
7819
7819
  "operator",
7820
- "maintenance"
7820
+ "maintenance",
7821
+ "orphaned-device"
7821
7822
  ]);
7822
7823
  /** One audit row, shared verbatim by both domains. */
7823
7824
  var OpsLogEntrySchema = object({
@@ -14038,6 +14039,29 @@ var DevicePersistConfigPayloadSchema = object({
14038
14039
  deviceId: number(),
14039
14040
  data: record(string(), unknown())
14040
14041
  });
14042
+ /** What a migration actually did, per switch. `unreachable` is a first-class
14043
+ * answer: a camera that could not be asked is not a camera that was silenced. */
14044
+ var MigrateSwitchOutcomeSchema = _enum([
14045
+ "off",
14046
+ "on",
14047
+ "not-offered",
14048
+ "unreachable"
14049
+ ]);
14050
+ var MigrateSwitchReportSchema = object({
14051
+ deviceId: number(),
14052
+ switchId: CameraSwitchIdSchema,
14053
+ outcome: MigrateSwitchOutcomeSchema,
14054
+ detail: string().optional()
14055
+ });
14056
+ var MigrateDeviceResultSchema = object({
14057
+ sourceId: number(),
14058
+ targetId: number(),
14059
+ switches: array(MigrateSwitchReportSchema).readonly(),
14060
+ /** Switches that could NOT be turned off on the source. Empty is the only
14061
+ * value meaning the replaced hardware is quiet. */
14062
+ sourceStillLive: array(CameraSwitchIdSchema).readonly(),
14063
+ swapped: boolean()
14064
+ });
14041
14065
  var deviceManagerCapability = {
14042
14066
  name: "device-manager",
14043
14067
  scope: "system",
@@ -14052,6 +14076,33 @@ var deviceManagerCapability = {
14052
14076
  addonId: string(),
14053
14077
  stableId: string()
14054
14078
  }), object({ id: number() }), { kind: "mutation" }),
14079
+ /**
14080
+ * Replace a camera: the new hardware inherits the number the system knows.
14081
+ *
14082
+ * Everything general about a camera is keyed on the numeric id and nothing
14083
+ * else — the recording path on disk, the hour ledger, the media store, zone
14084
+ * ownership, and all four ecosystem exports. So a replacement moves the
14085
+ * NUMBER rather than the work, and the operator keeps their footage, their
14086
+ * rules and their integrations.
14087
+ *
14088
+ * Both cameras are switched off first, then the identities are exchanged
14089
+ * (children follow their parent), then the target — now answering on the
14090
+ * inherited number — is switched back on.
14091
+ *
14092
+ * **A switch that could not be written is REPORTED, not swallowed.** The
14093
+ * source is characteristically broken, and two of the eight switches write
14094
+ * the camera itself, so on a dead one they cannot be written at all.
14095
+ * `sourceStillLive` names what stayed live; empty is the only value that
14096
+ * means the old hardware is quiet. The migration proceeds either way —
14097
+ * refusing would refuse the case this exists for.
14098
+ */
14099
+ migrateDevice: method(object({
14100
+ sourceId: number(),
14101
+ targetId: number()
14102
+ }), MigrateDeviceResultSchema, {
14103
+ kind: "mutation",
14104
+ auth: "admin"
14105
+ }),
14055
14106
  /** Register a device in the DB + in-memory registry. Called by DeviceManagerApi.register(). */
14056
14107
  registerDevice: method(DeviceRegisterPayloadSchema, _void(), { kind: "mutation" }),
14057
14108
  /** Remove a device from the DB + in-memory registry. Called by DeviceManagerApi.remove(). */
@@ -38536,6 +38587,12 @@ Object.freeze({
38536
38587
  addonId: null,
38537
38588
  access: "view"
38538
38589
  },
38590
+ "deviceManager.migrateDevice": {
38591
+ capName: "device-manager",
38592
+ capScope: "system",
38593
+ addonId: null,
38594
+ access: "create"
38595
+ },
38539
38596
  "deviceManager.persistConfig": {
38540
38597
  capName: "device-manager",
38541
38598
  capScope: "system",
package/dist/index.mjs CHANGED
@@ -7813,7 +7813,8 @@ var OpsLogReasonSchema = _enum([
7813
7813
  "quota",
7814
7814
  "manual",
7815
7815
  "operator",
7816
- "maintenance"
7816
+ "maintenance",
7817
+ "orphaned-device"
7817
7818
  ]);
7818
7819
  /** One audit row, shared verbatim by both domains. */
7819
7820
  var OpsLogEntrySchema = object({
@@ -14034,6 +14035,29 @@ var DevicePersistConfigPayloadSchema = object({
14034
14035
  deviceId: number(),
14035
14036
  data: record(string(), unknown())
14036
14037
  });
14038
+ /** What a migration actually did, per switch. `unreachable` is a first-class
14039
+ * answer: a camera that could not be asked is not a camera that was silenced. */
14040
+ var MigrateSwitchOutcomeSchema = _enum([
14041
+ "off",
14042
+ "on",
14043
+ "not-offered",
14044
+ "unreachable"
14045
+ ]);
14046
+ var MigrateSwitchReportSchema = object({
14047
+ deviceId: number(),
14048
+ switchId: CameraSwitchIdSchema,
14049
+ outcome: MigrateSwitchOutcomeSchema,
14050
+ detail: string().optional()
14051
+ });
14052
+ var MigrateDeviceResultSchema = object({
14053
+ sourceId: number(),
14054
+ targetId: number(),
14055
+ switches: array(MigrateSwitchReportSchema).readonly(),
14056
+ /** Switches that could NOT be turned off on the source. Empty is the only
14057
+ * value meaning the replaced hardware is quiet. */
14058
+ sourceStillLive: array(CameraSwitchIdSchema).readonly(),
14059
+ swapped: boolean()
14060
+ });
14037
14061
  var deviceManagerCapability = {
14038
14062
  name: "device-manager",
14039
14063
  scope: "system",
@@ -14048,6 +14072,33 @@ var deviceManagerCapability = {
14048
14072
  addonId: string(),
14049
14073
  stableId: string()
14050
14074
  }), object({ id: number() }), { kind: "mutation" }),
14075
+ /**
14076
+ * Replace a camera: the new hardware inherits the number the system knows.
14077
+ *
14078
+ * Everything general about a camera is keyed on the numeric id and nothing
14079
+ * else — the recording path on disk, the hour ledger, the media store, zone
14080
+ * ownership, and all four ecosystem exports. So a replacement moves the
14081
+ * NUMBER rather than the work, and the operator keeps their footage, their
14082
+ * rules and their integrations.
14083
+ *
14084
+ * Both cameras are switched off first, then the identities are exchanged
14085
+ * (children follow their parent), then the target — now answering on the
14086
+ * inherited number — is switched back on.
14087
+ *
14088
+ * **A switch that could not be written is REPORTED, not swallowed.** The
14089
+ * source is characteristically broken, and two of the eight switches write
14090
+ * the camera itself, so on a dead one they cannot be written at all.
14091
+ * `sourceStillLive` names what stayed live; empty is the only value that
14092
+ * means the old hardware is quiet. The migration proceeds either way —
14093
+ * refusing would refuse the case this exists for.
14094
+ */
14095
+ migrateDevice: method(object({
14096
+ sourceId: number(),
14097
+ targetId: number()
14098
+ }), MigrateDeviceResultSchema, {
14099
+ kind: "mutation",
14100
+ auth: "admin"
14101
+ }),
14051
14102
  /** Register a device in the DB + in-memory registry. Called by DeviceManagerApi.register(). */
14052
14103
  registerDevice: method(DeviceRegisterPayloadSchema, _void(), { kind: "mutation" }),
14053
14104
  /** Remove a device from the DB + in-memory registry. Called by DeviceManagerApi.remove(). */
@@ -38532,6 +38583,12 @@ Object.freeze({
38532
38583
  addonId: null,
38533
38584
  access: "view"
38534
38585
  },
38586
+ "deviceManager.migrateDevice": {
38587
+ capName: "device-manager",
38588
+ capScope: "system",
38589
+ addonId: null,
38590
+ access: "create"
38591
+ },
38535
38592
  "deviceManager.persistConfig": {
38536
38593
  capName: "device-manager",
38537
38594
  capScope: "system",
@@ -1,2 +1,2 @@
1
- import { n as e, t } from "./virtual_mf-REMOTE_ENTRY_ID___mfe_internal__addon_osd_manager_page__remoteEntry_js-SZ6AoKiv.mjs";
1
+ import { n as e, t } from "./virtual_mf-REMOTE_ENTRY_ID___mfe_internal__addon_osd_manager_page__remoteEntry_js-CVxDdrya.mjs";
2
2
  export { t as get, e as init };
@@ -2753,7 +2753,7 @@ async function rr(e) {
2753
2753
  }
2754
2754
  }
2755
2755
  async function ir() {
2756
- return tr ||= rr(() => import("./_virtual_mf-localSharedImportMap___mfe_internal__addon_osd_manager_page-BEvvxLiA.mjs")).catch((e) => {
2756
+ return tr ||= rr(() => import("./_virtual_mf-localSharedImportMap___mfe_internal__addon_osd_manager_page-B1JcZp4M.mjs")).catch((e) => {
2757
2757
  throw tr = void 0, e;
2758
2758
  }), tr;
2759
2759
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@camstack/addon-osd-manager",
3
- "version": "0.1.46",
3
+ "version": "0.1.48",
4
4
  "description": "Binds camera on-screen-display slots to live state and recognitions",
5
5
  "keywords": [
6
6
  "camstack",