@camstack/addon-osd-manager 0.1.34 → 0.1.35

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-BF_XPbUY.mjs";
2
+ import "./virtual_mf-REMOTE_ENTRY_ID___mfe_internal__addon_osd_manager_page__remoteEntry_js-D6jvK2Zd.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-pP5vcFcr.mjs";
5
5
  import { c as _, l as v, u as y } from "./use-device-snapshot-BQ24djI3.mjs";
@@ -1,9 +1,9 @@
1
- import "./virtual_mf-REMOTE_ENTRY_ID___mfe_internal__addon_osd_manager_page__remoteEntry_js-BF_XPbUY.mjs";
1
+ import "./virtual_mf-REMOTE_ENTRY_ID___mfe_internal__addon_osd_manager_page__remoteEntry_js-D6jvK2Zd.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.44",
6
+ version: "1.2.45",
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.122",
21
+ version: "1.2.123",
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.85",
36
+ version: "1.2.86",
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.122",
39
+ version: "1.2.123",
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.44",
48
+ version: "1.2.45",
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.85",
84
+ version: "1.2.86",
85
85
  scope: "default",
86
86
  shareConfig: {
87
87
  singleton: !0,
package/dist/index.js CHANGED
@@ -29318,6 +29318,33 @@ var intercomCapability = {
29318
29318
  deviceNative: true,
29319
29319
  mode: "singleton",
29320
29320
  deviceTypes: [DeviceType.Camera],
29321
+ /**
29322
+ * **Auth tier: `protected` on every method — deliberate, and load-bearing.**
29323
+ *
29324
+ * Talking through a camera is an OPERATE action, not a CONFIGURE one. This
29325
+ * cap has no configuration surface at all: all six methods open, feed and
29326
+ * close one live audio session against one `deviceId`. That is the same
29327
+ * authority as `ptz.move` or `snapshot.getSnapshot`, both `protected` — and
29328
+ * the opposite of `ptz.savePreset` / `snapshot.invalidateCache`, which are
29329
+ * `admin` because they change what the device IS.
29330
+ *
29331
+ * `protected` does not mean ungated: `protectedProcedure` runs the
29332
+ * `METHOD_ACCESS_MAP` scope check, and every method here is `scope: 'device'`
29333
+ * with `access: 'create'` and a `deviceId` in its input. So a caller needs a
29334
+ * grant that covers THAT camera at `create` — a `camera-viewer` (`view`
29335
+ * only) still cannot talk, and a grant on camera 5 cannot talk through
29336
+ * camera 7.
29337
+ *
29338
+ * Every method was `auth: 'admin'` from the initial commit, which made the
29339
+ * cap unreachable by every non-admin principal — `adminProcedure` throws
29340
+ * `FORBIDDEN: Admin required` BEFORE the scope check runs, so the scope
29341
+ * machinery generated for this cap (`METHOD_ACCESS_MAP`,
29342
+ * `DEVICE_SCOPED_CAPS`, `METHOD_DEVICE_SELECTORS`) was complete and dead. The
29343
+ * `camera-operator` scope preset has promised "PTZ control, intercom,
29344
+ * snapshots" since that same commit; the promise could not be kept. Recorded
29345
+ * as D289; `scripts/check-scope-preset-promises.ts` now fails the build if a
29346
+ * preset promises a cap no row of that preset can reach.
29347
+ */
29321
29348
  methods: {
29322
29349
  /**
29323
29350
  * Open a server-side WebRTC audio-only session. Returns an SDP
@@ -29330,7 +29357,7 @@ var intercomCapability = {
29330
29357
  sdpOffer: string()
29331
29358
  }), {
29332
29359
  kind: "mutation",
29333
- auth: "admin"
29360
+ auth: "protected"
29334
29361
  }),
29335
29362
  handleAnswer: method(object({
29336
29363
  deviceId: number(),
@@ -29338,7 +29365,7 @@ var intercomCapability = {
29338
29365
  sdpAnswer: string()
29339
29366
  }), _void(), {
29340
29367
  kind: "mutation",
29341
- auth: "admin"
29368
+ auth: "protected"
29342
29369
  }),
29343
29370
  /** Close explicitly. Server also auto-closes on 30s idle. */
29344
29371
  stopSession: method(object({
@@ -29346,7 +29373,7 @@ var intercomCapability = {
29346
29373
  sessionId: string()
29347
29374
  }), _void(), {
29348
29375
  kind: "mutation",
29349
- auth: "admin"
29376
+ auth: "protected"
29350
29377
  }),
29351
29378
  /**
29352
29379
  * Open a raw-PCM talk session (no WebRTC SDP plumbing). Used by
@@ -29359,7 +29386,7 @@ var intercomCapability = {
29359
29386
  */
29360
29387
  startTalkSession: method(object({ deviceId: number() }), object({ sessionId: string() }), {
29361
29388
  kind: "mutation",
29362
- auth: "admin"
29389
+ auth: "protected"
29363
29390
  }),
29364
29391
  /**
29365
29392
  * Push one chunk of talk-back audio onto the active talk session.
@@ -29394,12 +29421,12 @@ var intercomCapability = {
29394
29421
  sequenceNumber: number().int()
29395
29422
  }), object({ accepted: boolean() }), {
29396
29423
  kind: "mutation",
29397
- auth: "admin"
29424
+ auth: "protected"
29398
29425
  }),
29399
29426
  /** Close the raw-PCM talk session. Idempotent. */
29400
29427
  endTalkSession: method(object({ deviceId: number() }), _void(), {
29401
29428
  kind: "mutation",
29402
- auth: "admin"
29429
+ auth: "protected"
29403
29430
  })
29404
29431
  },
29405
29432
  events: { onStatusChanged: { data: object({
package/dist/index.mjs CHANGED
@@ -29314,6 +29314,33 @@ var intercomCapability = {
29314
29314
  deviceNative: true,
29315
29315
  mode: "singleton",
29316
29316
  deviceTypes: [DeviceType.Camera],
29317
+ /**
29318
+ * **Auth tier: `protected` on every method — deliberate, and load-bearing.**
29319
+ *
29320
+ * Talking through a camera is an OPERATE action, not a CONFIGURE one. This
29321
+ * cap has no configuration surface at all: all six methods open, feed and
29322
+ * close one live audio session against one `deviceId`. That is the same
29323
+ * authority as `ptz.move` or `snapshot.getSnapshot`, both `protected` — and
29324
+ * the opposite of `ptz.savePreset` / `snapshot.invalidateCache`, which are
29325
+ * `admin` because they change what the device IS.
29326
+ *
29327
+ * `protected` does not mean ungated: `protectedProcedure` runs the
29328
+ * `METHOD_ACCESS_MAP` scope check, and every method here is `scope: 'device'`
29329
+ * with `access: 'create'` and a `deviceId` in its input. So a caller needs a
29330
+ * grant that covers THAT camera at `create` — a `camera-viewer` (`view`
29331
+ * only) still cannot talk, and a grant on camera 5 cannot talk through
29332
+ * camera 7.
29333
+ *
29334
+ * Every method was `auth: 'admin'` from the initial commit, which made the
29335
+ * cap unreachable by every non-admin principal — `adminProcedure` throws
29336
+ * `FORBIDDEN: Admin required` BEFORE the scope check runs, so the scope
29337
+ * machinery generated for this cap (`METHOD_ACCESS_MAP`,
29338
+ * `DEVICE_SCOPED_CAPS`, `METHOD_DEVICE_SELECTORS`) was complete and dead. The
29339
+ * `camera-operator` scope preset has promised "PTZ control, intercom,
29340
+ * snapshots" since that same commit; the promise could not be kept. Recorded
29341
+ * as D289; `scripts/check-scope-preset-promises.ts` now fails the build if a
29342
+ * preset promises a cap no row of that preset can reach.
29343
+ */
29317
29344
  methods: {
29318
29345
  /**
29319
29346
  * Open a server-side WebRTC audio-only session. Returns an SDP
@@ -29326,7 +29353,7 @@ var intercomCapability = {
29326
29353
  sdpOffer: string()
29327
29354
  }), {
29328
29355
  kind: "mutation",
29329
- auth: "admin"
29356
+ auth: "protected"
29330
29357
  }),
29331
29358
  handleAnswer: method(object({
29332
29359
  deviceId: number(),
@@ -29334,7 +29361,7 @@ var intercomCapability = {
29334
29361
  sdpAnswer: string()
29335
29362
  }), _void(), {
29336
29363
  kind: "mutation",
29337
- auth: "admin"
29364
+ auth: "protected"
29338
29365
  }),
29339
29366
  /** Close explicitly. Server also auto-closes on 30s idle. */
29340
29367
  stopSession: method(object({
@@ -29342,7 +29369,7 @@ var intercomCapability = {
29342
29369
  sessionId: string()
29343
29370
  }), _void(), {
29344
29371
  kind: "mutation",
29345
- auth: "admin"
29372
+ auth: "protected"
29346
29373
  }),
29347
29374
  /**
29348
29375
  * Open a raw-PCM talk session (no WebRTC SDP plumbing). Used by
@@ -29355,7 +29382,7 @@ var intercomCapability = {
29355
29382
  */
29356
29383
  startTalkSession: method(object({ deviceId: number() }), object({ sessionId: string() }), {
29357
29384
  kind: "mutation",
29358
- auth: "admin"
29385
+ auth: "protected"
29359
29386
  }),
29360
29387
  /**
29361
29388
  * Push one chunk of talk-back audio onto the active talk session.
@@ -29390,12 +29417,12 @@ var intercomCapability = {
29390
29417
  sequenceNumber: number().int()
29391
29418
  }), object({ accepted: boolean() }), {
29392
29419
  kind: "mutation",
29393
- auth: "admin"
29420
+ auth: "protected"
29394
29421
  }),
29395
29422
  /** Close the raw-PCM talk session. Idempotent. */
29396
29423
  endTalkSession: method(object({ deviceId: number() }), _void(), {
29397
29424
  kind: "mutation",
29398
- auth: "admin"
29425
+ auth: "protected"
29399
29426
  })
29400
29427
  },
29401
29428
  events: { onStatusChanged: { data: object({
@@ -1,2 +1,2 @@
1
- import { n as e, t } from "./virtual_mf-REMOTE_ENTRY_ID___mfe_internal__addon_osd_manager_page__remoteEntry_js-BF_XPbUY.mjs";
1
+ import { n as e, t } from "./virtual_mf-REMOTE_ENTRY_ID___mfe_internal__addon_osd_manager_page__remoteEntry_js-D6jvK2Zd.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-BiPHv48U.mjs")).catch((e) => {
2756
+ return tr ||= rr(() => import("./_virtual_mf-localSharedImportMap___mfe_internal__addon_osd_manager_page-DKUqcAE-.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.34",
3
+ "version": "0.1.35",
4
4
  "description": "Binds camera on-screen-display slots to live state and recognitions",
5
5
  "keywords": [
6
6
  "camstack",