@camstack/addon-osd-manager 0.1.104 → 0.1.106

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-DXkQksG9.mjs";
2
+ import "./virtual_mf-REMOTE_ENTRY_ID___mfe_internal__addon_osd_manager_page__remoteEntry_js-CJ3XHYgg.mjs";
3
3
  import { _ as e, c as t, d as n, h as r, i, l as a, m as o, p as s, r as c, t as l, u, y as d } from "./_virtual_mf___mfe_internal__addon_osd_manager_page__loadShare__react__loadShare__.js-Bs1t18EM.mjs";
4
4
  import { i as f, o as p, r as m, s as h } from "./responsive-NnnlKBxM.mjs";
5
5
  import { d as g, l as _, u as v } from "./use-device-snapshot-DiLFlRE2.mjs";
@@ -1,9 +1,9 @@
1
- import "./virtual_mf-REMOTE_ENTRY_ID___mfe_internal__addon_osd_manager_page__remoteEntry_js-DXkQksG9.mjs";
1
+ import "./virtual_mf-REMOTE_ENTRY_ID___mfe_internal__addon_osd_manager_page__remoteEntry_js-CJ3XHYgg.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.110",
6
+ version: "1.2.112",
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.204",
21
+ version: "1.2.206",
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.169",
36
+ version: "1.2.171",
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.204",
39
+ version: "1.2.206",
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.110",
48
+ version: "1.2.112",
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.169",
84
+ version: "1.2.171",
85
85
  scope: "default",
86
86
  shareConfig: {
87
87
  singleton: !0,
package/dist/index.js CHANGED
@@ -13065,7 +13065,23 @@ var PickStreamRequirementsSchema = object({
13065
13065
  * This is what lets one picker serve both the bypass and the full source
13066
13066
  * choice, instead of a consumer scoring privately when the bypass misses.
13067
13067
  */
13068
- allowTranscode: boolean().optional()
13068
+ allowTranscode: boolean().optional(),
13069
+ /**
13070
+ * Consider ONLY streams the broker has bound to a profile slot.
13071
+ *
13072
+ * A consumer that dials the broker — which is every exporter, since none
13073
+ * of them may open the camera's own URL — can do nothing with a source
13074
+ * that has no slot: there is no restream to dial. Without this the picker
13075
+ * can name such a stream, and each consumer discovers the dead end for
13076
+ * itself: Alexa's `profileForCamStream` returns `null` and it quietly
13077
+ * falls back, and HomeKit would have had to grow the same function again.
13078
+ *
13079
+ * Default `false`, and deliberately so: the BROKER itself picks through
13080
+ * here when it decides which source to BIND to a slot
13081
+ * (`computeInitialAssignment`), and it must see the unbound ones or it
13082
+ * could never bind them.
13083
+ */
13084
+ requireProfileBound: boolean().optional()
13069
13085
  }).readonly();
13070
13086
  var PickStreamPreferencesSchema = object({
13071
13087
  /**
@@ -13106,7 +13122,43 @@ var PickedCamStreamSchema = object({
13106
13122
  */
13107
13123
  transcodes: boolean(),
13108
13124
  /** One-line explanation of why this stream won — for logs / debug UI. */
13109
- reason: string()
13125
+ reason: string(),
13126
+ /**
13127
+ * The broker profile slot this source is bound to, when it is bound.
13128
+ *
13129
+ * Answered HERE because every consumer needs it and none of them can get it
13130
+ * from the `camStreamId` alone. Alexa wrote `profileForCamStream` for it —
13131
+ * a second cap read plus a `null` branch — and HomeKit was about to write
13132
+ * the same function a second time.
13133
+ *
13134
+ * Absent when the source has no slot, which a caller passing
13135
+ * `requireProfileBound` can never see.
13136
+ */
13137
+ profile: CamProfileSchema.optional(),
13138
+ /** The broker id of that slot, for logs that must name what was dialled. */
13139
+ brokerId: string().optional(),
13140
+ /**
13141
+ * The broker restream URL to dial for this stream.
13142
+ *
13143
+ * An exporter must never open the camera's own URL — the broker is the one
13144
+ * that dials the camera, and every consumer goes through its restream. So
13145
+ * the picker answers with the thing a consumer may actually use, instead of
13146
+ * naming a source and leaving each caller to look the URL up.
13147
+ */
13148
+ url: string().optional(),
13149
+ /**
13150
+ * Frames per second this stream really delivers, and where the number came
13151
+ * from.
13152
+ *
13153
+ * It is here because getting it wrong is expensive and silent: a HomeKit
13154
+ * accessory advertised 720p at 24 fps while the slot serving it ran at 9,
13155
+ * and the controller rendered nothing at all. The source is carried with the
13156
+ * value for the same reason the bitrate evidence is: `published` is what the
13157
+ * publisher declares and `measured` is what the broker observed, and they
13158
+ * are not interchangeable.
13159
+ */
13160
+ fps: number().positive().optional(),
13161
+ fpsSource: _enum(["published", "measured"]).optional()
13110
13162
  });
13111
13163
  /**
13112
13164
  * Camera streams — device-scoped facade over the system `stream-broker`.
package/dist/index.mjs CHANGED
@@ -13061,7 +13061,23 @@ var PickStreamRequirementsSchema = object({
13061
13061
  * This is what lets one picker serve both the bypass and the full source
13062
13062
  * choice, instead of a consumer scoring privately when the bypass misses.
13063
13063
  */
13064
- allowTranscode: boolean().optional()
13064
+ allowTranscode: boolean().optional(),
13065
+ /**
13066
+ * Consider ONLY streams the broker has bound to a profile slot.
13067
+ *
13068
+ * A consumer that dials the broker — which is every exporter, since none
13069
+ * of them may open the camera's own URL — can do nothing with a source
13070
+ * that has no slot: there is no restream to dial. Without this the picker
13071
+ * can name such a stream, and each consumer discovers the dead end for
13072
+ * itself: Alexa's `profileForCamStream` returns `null` and it quietly
13073
+ * falls back, and HomeKit would have had to grow the same function again.
13074
+ *
13075
+ * Default `false`, and deliberately so: the BROKER itself picks through
13076
+ * here when it decides which source to BIND to a slot
13077
+ * (`computeInitialAssignment`), and it must see the unbound ones or it
13078
+ * could never bind them.
13079
+ */
13080
+ requireProfileBound: boolean().optional()
13065
13081
  }).readonly();
13066
13082
  var PickStreamPreferencesSchema = object({
13067
13083
  /**
@@ -13102,7 +13118,43 @@ var PickedCamStreamSchema = object({
13102
13118
  */
13103
13119
  transcodes: boolean(),
13104
13120
  /** One-line explanation of why this stream won — for logs / debug UI. */
13105
- reason: string()
13121
+ reason: string(),
13122
+ /**
13123
+ * The broker profile slot this source is bound to, when it is bound.
13124
+ *
13125
+ * Answered HERE because every consumer needs it and none of them can get it
13126
+ * from the `camStreamId` alone. Alexa wrote `profileForCamStream` for it —
13127
+ * a second cap read plus a `null` branch — and HomeKit was about to write
13128
+ * the same function a second time.
13129
+ *
13130
+ * Absent when the source has no slot, which a caller passing
13131
+ * `requireProfileBound` can never see.
13132
+ */
13133
+ profile: CamProfileSchema.optional(),
13134
+ /** The broker id of that slot, for logs that must name what was dialled. */
13135
+ brokerId: string().optional(),
13136
+ /**
13137
+ * The broker restream URL to dial for this stream.
13138
+ *
13139
+ * An exporter must never open the camera's own URL — the broker is the one
13140
+ * that dials the camera, and every consumer goes through its restream. So
13141
+ * the picker answers with the thing a consumer may actually use, instead of
13142
+ * naming a source and leaving each caller to look the URL up.
13143
+ */
13144
+ url: string().optional(),
13145
+ /**
13146
+ * Frames per second this stream really delivers, and where the number came
13147
+ * from.
13148
+ *
13149
+ * It is here because getting it wrong is expensive and silent: a HomeKit
13150
+ * accessory advertised 720p at 24 fps while the slot serving it ran at 9,
13151
+ * and the controller rendered nothing at all. The source is carried with the
13152
+ * value for the same reason the bitrate evidence is: `published` is what the
13153
+ * publisher declares and `measured` is what the broker observed, and they
13154
+ * are not interchangeable.
13155
+ */
13156
+ fps: number().positive().optional(),
13157
+ fpsSource: _enum(["published", "measured"]).optional()
13106
13158
  });
13107
13159
  /**
13108
13160
  * Camera streams — device-scoped facade over the system `stream-broker`.
@@ -1,2 +1,2 @@
1
- import { n as e, t } from "./virtual_mf-REMOTE_ENTRY_ID___mfe_internal__addon_osd_manager_page__remoteEntry_js-DXkQksG9.mjs";
1
+ import { n as e, t } from "./virtual_mf-REMOTE_ENTRY_ID___mfe_internal__addon_osd_manager_page__remoteEntry_js-CJ3XHYgg.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-Dhd8MM4m.mjs")).catch((e) => {
2756
+ return tr ||= rr(() => import("./_virtual_mf-localSharedImportMap___mfe_internal__addon_osd_manager_page-C4_xpu5K.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.104",
3
+ "version": "0.1.106",
4
4
  "description": "Binds camera on-screen-display slots to live state and recognitions",
5
5
  "keywords": [
6
6
  "camstack",