@camstack/addon-auth 1.2.127 → 1.2.129

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.
@@ -1,4 +1,4 @@
1
- import { a as loginMethodCapability, c as BaseAddon, i as buildAddonRouteProvider, r as authProviderCapability, s as errMsg, t as addonRoutesCapability } from "../dist-UznM2RaH.mjs";
1
+ import { a as buildAddonRouteProvider, c as errMsg, i as authProviderCapability, l as BaseAddon, n as addonRoutesCapability, o as loginMethodCapability, t as hubBrowserOrigin } from "../hub-browser-origin-lAiHaCMe.mjs";
2
2
  //#region src/magic-link/auth-magic-link.addon.ts
3
3
  /**
4
4
  * Magic-link authentication addon.
@@ -129,7 +129,7 @@ var AuthMagicLinkAddon = class extends BaseAddon {
129
129
  type: "text",
130
130
  key: "publicOrigin",
131
131
  label: "Public origin",
132
- description: "Where the email link points. Empty = read CAMSTACK_HUB_PUBLIC_URL env var.",
132
+ description: "Where the email link points. Empty = the hub address from Network (public tunnel, then mesh, then LAN).",
133
133
  default: ""
134
134
  }),
135
135
  this.field({
@@ -169,10 +169,10 @@ var AuthMagicLinkAddon = class extends BaseAddon {
169
169
  ]
170
170
  }] });
171
171
  }
172
- buildPublicOrigin() {
172
+ async buildPublicOrigin() {
173
173
  const configured = this.config.publicOrigin?.trim();
174
174
  if (configured) return configured.replace(/\/+$/, "");
175
- return (process.env["CAMSTACK_HUB_PUBLIC_URL"] || "").replace(/\/+$/, "") || "https://localhost:4443";
175
+ return await hubBrowserOrigin(this.ctx.api.localNetwork, this.ctx.logger) ?? "https://localhost:4443";
176
176
  }
177
177
  async findUserByEmail(email) {
178
178
  let users;
@@ -273,7 +273,7 @@ var AuthMagicLinkAddon = class extends BaseAddon {
273
273
  reply.send({ error: "sso-bridge capability unavailable" });
274
274
  return;
275
275
  }
276
- const link = `${this.buildPublicOrigin()}/addon/auth-magic-link/login?bridge=${encodeURIComponent(token)}`;
276
+ const link = `${await this.buildPublicOrigin()}/addon/auth-magic-link/login?bridge=${encodeURIComponent(token)}`;
277
277
  if (this.config.deliveryMode === "log-only") this.ctx.logger.warn("Magic link generated (log-only mode — NOT delivered via email)", { meta: {
278
278
  email,
279
279
  link,
@@ -3,7 +3,7 @@ Object.defineProperties(exports, {
3
3
  [Symbol.toStringTag]: { value: "Module" }
4
4
  });
5
5
  const require_chunk = require("../chunk-Cek0wNdY.js");
6
- const require_dist = require("../dist-CrTS14S8.js");
6
+ const require_hub_browser_origin = require("../hub-browser-origin-Cd5W-H0b.js");
7
7
  let node_crypto = require("node:crypto");
8
8
  node_crypto = require_chunk.__toESM(node_crypto);
9
9
  //#region ../../node_modules/jose/dist/webapi/lib/buffer_utils.js
@@ -753,7 +753,7 @@ var DEFAULT_PROVIDER = {
753
753
  };
754
754
  var DEFAULT_CONFIG = { providers: [] };
755
755
  var STATE_TTL_MS = 5 * 6e4;
756
- var AuthOidcAddon = class extends require_dist.BaseAddon {
756
+ var AuthOidcAddon = class extends require_hub_browser_origin.BaseAddon {
757
757
  /** Per-provider runtime state, keyed by `provider.id`. */
758
758
  instances = /* @__PURE__ */ new Map();
759
759
  /** Pending OAuth states across ALL providers. The pending entry
@@ -779,7 +779,7 @@ var AuthOidcAddon = class extends require_dist.BaseAddon {
779
779
  return this.handleCallback(code, state);
780
780
  }
781
781
  };
782
- const routeProvider = require_dist.buildAddonRouteProvider("auth-oidc", [{
782
+ const routeProvider = require_hub_browser_origin.buildAddonRouteProvider("auth-oidc", [{
783
783
  method: "GET",
784
784
  path: "/:providerId/start",
785
785
  access: "public",
@@ -796,15 +796,15 @@ var AuthOidcAddon = class extends require_dist.BaseAddon {
796
796
  this.ctx.logger.info("OIDC auth provider initialized", { meta: { providers: [...this.instances.keys()] } });
797
797
  return [
798
798
  {
799
- capability: require_dist.authProviderCapability,
799
+ capability: require_hub_browser_origin.authProviderCapability,
800
800
  provider: authProvider
801
801
  },
802
802
  {
803
- capability: require_dist.addonRoutesCapability,
803
+ capability: require_hub_browser_origin.addonRoutesCapability,
804
804
  provider: routeProvider
805
805
  },
806
806
  {
807
- capability: require_dist.loginMethodCapability,
807
+ capability: require_hub_browser_origin.loginMethodCapability,
808
808
  provider: loginMethodProvider
809
809
  }
810
810
  ];
@@ -886,7 +886,7 @@ var AuthOidcAddon = class extends require_dist.BaseAddon {
886
886
  type: "text",
887
887
  key: "redirectUri",
888
888
  label: "Redirect URI override",
889
- description: "Optional. Default uses CAMSTACK_HUB_PUBLIC_URL + the instance id.",
889
+ description: "Optional. Default uses the hub address from Network (public tunnel, then mesh, then LAN) + the instance id.",
890
890
  default: ""
891
891
  },
892
892
  {
@@ -975,12 +975,12 @@ var AuthOidcAddon = class extends require_dist.BaseAddon {
975
975
  }
976
976
  return doc;
977
977
  }
978
- buildRedirectUri(providerId) {
978
+ async buildRedirectUri(providerId) {
979
979
  const inst = this.instances.get(providerId);
980
980
  if (!inst) throw new Error(`OIDC: no provider configured with id "${providerId}"`);
981
981
  const configured = inst.config.redirectUri?.trim();
982
982
  if (configured) return configured;
983
- return `${(process.env["CAMSTACK_HUB_PUBLIC_URL"] || "https://localhost:4443").replace(/\/+$/, "")}/addon/auth-oidc/${providerId}/callback`;
983
+ return `${await require_hub_browser_origin.hubBrowserOrigin(this.ctx.api.localNetwork, this.ctx.logger) ?? "https://localhost:4443"}/addon/auth-oidc/${providerId}/callback`;
984
984
  }
985
985
  async buildLoginUrl(providerId, state) {
986
986
  const inst = this.instances.get(providerId);
@@ -989,17 +989,19 @@ var AuthOidcAddon = class extends require_dist.BaseAddon {
989
989
  const codeVerifier = node_crypto.randomBytes(32).toString("base64url");
990
990
  const codeChallenge = node_crypto.createHash("sha256").update(codeVerifier).digest("base64url");
991
991
  const nonce = node_crypto.randomBytes(16).toString("base64url");
992
+ const redirectUri = await this.buildRedirectUri(providerId);
992
993
  this.pruneExpiredStates();
993
994
  this.pendingStates.set(state, {
994
995
  codeVerifier,
995
996
  nonce,
996
997
  providerId,
998
+ redirectUri,
997
999
  createdAt: Date.now()
998
1000
  });
999
1001
  const params = new URLSearchParams({
1000
1002
  response_type: "code",
1001
1003
  client_id: inst.config.clientId,
1002
- redirect_uri: this.buildRedirectUri(providerId),
1004
+ redirect_uri: redirectUri,
1003
1005
  scope: inst.config.scopes || DEFAULT_PROVIDER.scopes,
1004
1006
  state,
1005
1007
  nonce,
@@ -1029,7 +1031,7 @@ var AuthOidcAddon = class extends require_dist.BaseAddon {
1029
1031
  body: new URLSearchParams({
1030
1032
  grant_type: "authorization_code",
1031
1033
  code,
1032
- redirect_uri: this.buildRedirectUri(providerId),
1034
+ redirect_uri: pending.redirectUri,
1033
1035
  client_id: inst.config.clientId,
1034
1036
  client_secret: inst.config.clientSecret,
1035
1037
  code_verifier: pending.codeVerifier
@@ -1049,7 +1051,7 @@ var AuthOidcAddon = class extends require_dist.BaseAddon {
1049
1051
  audience: inst.config.clientId
1050
1052
  })).payload;
1051
1053
  } catch (err) {
1052
- throw new Error(`OIDC id_token verification failed: ${require_dist.errMsg(err)}`, { cause: err });
1054
+ throw new Error(`OIDC id_token verification failed: ${require_hub_browser_origin.errMsg(err)}`, { cause: err });
1053
1055
  }
1054
1056
  if (typeof payload["nonce"] !== "string" || payload["nonce"] !== pending.nonce) throw new Error("OIDC id_token nonce mismatch — possible replay attack");
1055
1057
  const sub = typeof payload.sub === "string" ? payload.sub : null;
@@ -1087,7 +1089,7 @@ var AuthOidcAddon = class extends require_dist.BaseAddon {
1087
1089
  reply.code(500);
1088
1090
  reply.send({
1089
1091
  error: "OIDC start failed",
1090
- message: require_dist.errMsg(err)
1092
+ message: require_hub_browser_origin.errMsg(err)
1091
1093
  });
1092
1094
  }
1093
1095
  }
@@ -1133,7 +1135,7 @@ var AuthOidcAddon = class extends require_dist.BaseAddon {
1133
1135
  reply.code(500);
1134
1136
  reply.send({
1135
1137
  error: "OIDC callback failed",
1136
- message: require_dist.errMsg(err)
1138
+ message: require_hub_browser_origin.errMsg(err)
1137
1139
  });
1138
1140
  }
1139
1141
  }
@@ -1,4 +1,4 @@
1
- import { a as loginMethodCapability, c as BaseAddon, i as buildAddonRouteProvider, r as authProviderCapability, s as errMsg, t as addonRoutesCapability } from "../dist-UznM2RaH.mjs";
1
+ import { a as buildAddonRouteProvider, c as errMsg, i as authProviderCapability, l as BaseAddon, n as addonRoutesCapability, o as loginMethodCapability, t as hubBrowserOrigin } from "../hub-browser-origin-lAiHaCMe.mjs";
2
2
  import * as crypto$1 from "node:crypto";
3
3
  //#region ../../node_modules/jose/dist/webapi/lib/buffer_utils.js
4
4
  var encoder = new TextEncoder(), decoder = new TextDecoder(), strictDecoder = new TextDecoder("utf-8", { fatal: !0 });
@@ -880,7 +880,7 @@ var AuthOidcAddon = class extends BaseAddon {
880
880
  type: "text",
881
881
  key: "redirectUri",
882
882
  label: "Redirect URI override",
883
- description: "Optional. Default uses CAMSTACK_HUB_PUBLIC_URL + the instance id.",
883
+ description: "Optional. Default uses the hub address from Network (public tunnel, then mesh, then LAN) + the instance id.",
884
884
  default: ""
885
885
  },
886
886
  {
@@ -969,12 +969,12 @@ var AuthOidcAddon = class extends BaseAddon {
969
969
  }
970
970
  return doc;
971
971
  }
972
- buildRedirectUri(providerId) {
972
+ async buildRedirectUri(providerId) {
973
973
  const inst = this.instances.get(providerId);
974
974
  if (!inst) throw new Error(`OIDC: no provider configured with id "${providerId}"`);
975
975
  const configured = inst.config.redirectUri?.trim();
976
976
  if (configured) return configured;
977
- return `${(process.env["CAMSTACK_HUB_PUBLIC_URL"] || "https://localhost:4443").replace(/\/+$/, "")}/addon/auth-oidc/${providerId}/callback`;
977
+ return `${await hubBrowserOrigin(this.ctx.api.localNetwork, this.ctx.logger) ?? "https://localhost:4443"}/addon/auth-oidc/${providerId}/callback`;
978
978
  }
979
979
  async buildLoginUrl(providerId, state) {
980
980
  const inst = this.instances.get(providerId);
@@ -983,17 +983,19 @@ var AuthOidcAddon = class extends BaseAddon {
983
983
  const codeVerifier = crypto$1.randomBytes(32).toString("base64url");
984
984
  const codeChallenge = crypto$1.createHash("sha256").update(codeVerifier).digest("base64url");
985
985
  const nonce = crypto$1.randomBytes(16).toString("base64url");
986
+ const redirectUri = await this.buildRedirectUri(providerId);
986
987
  this.pruneExpiredStates();
987
988
  this.pendingStates.set(state, {
988
989
  codeVerifier,
989
990
  nonce,
990
991
  providerId,
992
+ redirectUri,
991
993
  createdAt: Date.now()
992
994
  });
993
995
  const params = new URLSearchParams({
994
996
  response_type: "code",
995
997
  client_id: inst.config.clientId,
996
- redirect_uri: this.buildRedirectUri(providerId),
998
+ redirect_uri: redirectUri,
997
999
  scope: inst.config.scopes || DEFAULT_PROVIDER.scopes,
998
1000
  state,
999
1001
  nonce,
@@ -1023,7 +1025,7 @@ var AuthOidcAddon = class extends BaseAddon {
1023
1025
  body: new URLSearchParams({
1024
1026
  grant_type: "authorization_code",
1025
1027
  code,
1026
- redirect_uri: this.buildRedirectUri(providerId),
1028
+ redirect_uri: pending.redirectUri,
1027
1029
  client_id: inst.config.clientId,
1028
1030
  client_secret: inst.config.clientSecret,
1029
1031
  code_verifier: pending.codeVerifier
@@ -1,6 +1,6 @@
1
1
  import { n as e, r as t, t as n } from "./_virtual_mf___mfe_internal__addon_auth_webauthn_widgets__loadShare__react__loadShare__.js-BIIa6vDX.mjs";
2
2
  import { n as r, t as i } from "./_virtual_mf___mfe_internal__addon_auth_webauthn_widgets__loadShare___mf_0_tanstack_mf_1_react_mf_2_query__loadShare__.js-CQ-aEQ9b.mjs";
3
- import { t as a } from "./_virtual_mf___mfe_internal__addon_auth_webauthn_widgets__loadShare___mf_0_camstack_mf_1_ui_mf_2_library__loadShare__.js-BtyGSrb1.mjs";
3
+ import { t as a } from "./_virtual_mf___mfe_internal__addon_auth_webauthn_widgets__loadShare___mf_0_camstack_mf_1_ui_mf_2_library__loadShare__.js-Bifweq9M.mjs";
4
4
  import { n as o, r as s, t as c } from "./_virtual_mf___mfe_internal__addon_auth_webauthn_widgets__loadShare__react_mf_1_jsx_mf_2_runtime__loadShare__.js-BL2etuqg.mjs";
5
5
  //#region ../../node_modules/lucide-react/dist/esm/shared/src/utils/mergeClasses.js
6
6
  var l = (...e) => e.filter((e, t, n) => !!e && e.trim() !== "" && n.indexOf(e) === t).join(" ").trim(), u = (e) => e.replace(/([a-z0-9])([A-Z])/g, "$1-$2").toLowerCase(), d = (e) => e.replace(/^([A-Z])|[\s-_]+(\w)/g, (e, t, n) => n ? n.toUpperCase() : t.toLowerCase()), f = (e) => {
@@ -3,7 +3,7 @@ import "./dist-CYZr2fwk.mjs";
3
3
  var e = {
4
4
  "@camstack/sdk": {
5
5
  name: "@camstack/sdk",
6
- version: "1.2.121",
6
+ version: "1.2.122",
7
7
  scope: ["default"],
8
8
  loaded: !1,
9
9
  from: "addon_auth_webauthn_widgets",
@@ -18,7 +18,7 @@ var e = {
18
18
  },
19
19
  "@camstack/types": {
20
20
  name: "@camstack/types",
21
- version: "1.2.306",
21
+ version: "1.2.310",
22
22
  scope: ["default"],
23
23
  loaded: !1,
24
24
  from: "addon_auth_webauthn_widgets",
@@ -33,7 +33,7 @@ var e = {
33
33
  },
34
34
  "@camstack/ui-library": {
35
35
  name: "@camstack/ui-library",
36
- version: "1.2.233",
36
+ version: "1.2.236",
37
37
  scope: ["default"],
38
38
  loaded: !1,
39
39
  from: "addon_auth_webauthn_widgets",
@@ -0,0 +1,26 @@
1
+ //#region \0virtual:mf:__mfe_internal__addon_auth_webauthn_widgets__loadShare___mf_0_camstack_mf_1_ui_mf_2_library__loadShare__.js
2
+ var e = "__mf_init__virtual:mf:__mfe_internal__addon_auth_webauthn_widgets__mf_v__runtimeInit__mf_v__.js__", t = globalThis[e];
3
+ if (!t) {
4
+ let n, r, i = new Promise((e, t) => {
5
+ n = e, r = t;
6
+ });
7
+ t = globalThis[e] = {
8
+ initPromise: i,
9
+ initResolve: n,
10
+ initReject: r
11
+ };
12
+ }
13
+ var n = t.initPromise, r = "__mf_module_cache__";
14
+ globalThis[r] ||= {
15
+ share: {},
16
+ remote: {}
17
+ }, globalThis[r].share ||= {}, globalThis[r].remote ||= {};
18
+ var i = globalThis[r], a, o = (e) => {
19
+ e.AddonGlobalSettingsForm, e.AdminLinkQuickAction, e.AgentStepEditor, e.AlarmHeroCard, e.AlarmPanelInlineControl, e.AppShell, e.ArcKnob, e.AudioClassificationList, e.AudioLevelWaveform, e.AudioWaveform, e.AutomationHeroCard, e.AutomationInlineControl, e.AutotrackSection, e.BTN_COMPACT, e.BTN_COMPACT_DANGER, e.BTN_COMPACT_PRIMARY, e.BTN_COMPACT_WARNING, e.Badge, e.BatteryBadge, e.BottomSheet, e.Breadcrumb, e.BrightnessPanel, e.Button, e.ButtonControl, e.ButtonHeroCard, e.CARD_MODE_MIN_COLUMNS, e.CENTER, e.CHIP_ACTIVE, e.CHIP_BASE, e.CHIP_INACTIVE, e.CLASS_COLORS, e.COLUMN_BREAKPOINT_CLASS, e.COLUMN_PRIORITY, e.COMMIT_DEDUPE_TOLERANCE_MS, e.COMMIT_DEDUPE_WINDOW_MS, e.CONTROL_CAP_NAMES, e.CONTROL_FILLS, e.Camera, e.CameraStreamPlayer, e.Card, e.Checkbox, e.ChildSectionAccordion, e.ClimatePanel, e.CodeBlock, e.CollapsibleCard, e.ConfigFormBuilder, e.ConfigFormField, e.ConfigNotificationTargetMultiSelectFieldView, e.ConfigNotificationTargetSelectFieldView, e.ConfigSchemaField, e.ConfirmActionButton, e.ConfirmDialogProvider, e.ConsumablesPanel, e.ContainerChildrenProvider, e.ContainerPrimaryHero, e.ControlColumn, e.ControlHeroCard, e.ControlInlineControl, e.ControlPanel, e.CopyButton, e.CoverHeroCard, e.CoverInlineControl, e.CoverPanel, e.CustomFieldRenderersProvider, e.DEFAULT_COLOR, e.DEVICE_COLUMNS, e.DEVICE_LIST_PAGE_SIZE_KEY, e.DEVICE_LIST_PAGE_SIZE_OPTIONS, e.DEVICE_PICKER_GROUP_STORAGE_KEY, e.DEVICE_ROLE_META, e.DEVICE_TYPE_CONTROL, e.DEVICE_TYPE_META, e.DISPLAY_ICON_REGISTRY, e.DataTable, e.DataTableFilterBar, e.DetectionCanvas, e.DetectionOverlay, e.DetectionResultTree, e.DevShell, e.DeviceActivityPanel, e.DeviceBatchToolbar, e.DeviceCard, e.DeviceContextProvider, e.DeviceExportPanel, e.DeviceFilterBar, e.DeviceGrid, e.DeviceItem, e.DeviceList, e.DeviceMultiSelectField, e.DevicePicker, e.DeviceQuickDetailProvider, e.DeviceSelectField, e.DeviceSelectorPicker, e.DeviceStepMatrix, e.DevicesFailedLine, e.DevicesLoadingLine, e.DevicesWidenWarning, e.Dialog, e.DialogBody, e.DialogContent, e.DialogDescription, e.DialogFooter, e.DialogHeader, e.DialogTitle, e.DialogTrigger, e.DiscoveryPanel, e.DoorbellRecentPanel, e.Dropdown, e.DropdownContent, e.DropdownItem, e.DropdownTrigger, e.DummyHeroCard, e.DummyInline, e.EMPTY_DATA_TABLE_FILTER, e.EVENT_KIND_ICONS, e.EmptyState, e.ErrorBox, e.EventKindGlyph, e.EventStream, e.ExtensionsPanel, e.EyeOff, e.FILL, e.FLEET_LIST_GC_TIME_MS, e.FLEET_LIST_QUERY_KEY, e.FLEET_LIST_STALE_TIME_MS, e.FanHeroCard, e.FanInlineControl, e.FanPanel, e.FilterBar, e.FloatingEventStream, e.FloatingLogStream, e.FloatingPanel, e.FormField, e.GRID_GAP, e.GRID_PAIRED, e.GRID_QUICK_STATS, e.Grid2x2, e.GripTrack, e.GroupedModelSelector, e.HOST_WIDGETS, e.HlsVideo, e.HoverZoomImage, e.HumidifierHeroCard, e.HumidifierInlineControl, e.INPUT_COMPACT, e.INPUT_SHELL, e.IconAction, e.IconButton, e.IconPicker, e.ImageHeroCard, e.ImageInlineControl, e.ImageOff, e.ImageSelector, e.InferenceConfigSelector, e.Input, e.KebabMenu, e.KeyValueList, e.LIST_ROW, e.Label, e.LawnMowerHeroCard, e.LawnMowerInlineControl, e.LightHeroCard, e.LightInlineControl, e.LockHeroCard, e.LockInlineControl, e.LockPanel, e.LogStream, e.LoginForm, e.MODE_COLOR, e.MaskShapeCanvas, e.MediaPlayerHeroCard, e.MediaPlayerInlineControl, e.MediaPlayerPanel, e.Mic, e.MicOff, e.MobileDrawer, e.ModelPicker, e.MotionZonesSettings, e.NAVIGATION_DRIVE_INTERVAL_MS, e.NavigationPanel, e.NetworkLinkBadge, e.NodeMultiSelectField, e.NodePicker, e.NodeSelectField, e.NotificationTargetSelectField, e.NotificationTargetsField, e.OPTION_SELECT_SEARCH_MIN_OPTIONS, e.OfflineBadge, e.OptionSelect, e.PHASE_CONFIG, e.PICKER_CHIP_LIMIT, e.PICKER_DEFAULT_GROUP_BY, e.PICKER_GROUP_BY_MODES, e.PICKER_GROUP_COLLAPSE_AT, e.PICKER_NONE_KEY, e.PICKER_NOUN_PLURAL, e.PICKER_NO_FILTERS, e.PICKER_PAGE_SIZE, e.PICKER_SEARCH_DEBOUNCE_MS, e.PICKER_WINDOW, e.PRIORITY, e.PTZOverlay, e.PageHeader, e.PhaseIcon, e.PipelineBuilder, e.PipelineRuntimeSelector, e.PipelineStep, e.PipelineTreeMatrix, e.PlaceholderChipField, e.PlayerOverlaysProvider, e.Popover, e.PopoverContent, e.PopoverRowAction, e.PopoverTrigger, e.PrimaryChildPicker, e.PrivacyMaskSettings, e.ProviderBadge, e.PtzPanel, e.QrCode, e.RECONNECT_POLICY, e.RECORDED_PLAYBACK_MODES, e.RIGHT, e.ROI_AREA_WARN_FRACTION, e.ROLE_DESCRIPTOR, e.RadialGauge, e.RecordedPlaybackProvider, e.RecordingPanel, e.ResponseLog, e.RoleDisplayDefaultsFromServer, e.RoleDisplayDefaultsProvider, e.RotateCcw, e.SCENE_CAPTURE_VARIANTS, e.SCENE_CAPTURE_VARIANTS$1, e.SECTION_BODY, e.SECTION_CARD, e.SECTION_HEADER, e.SETTING_ROW, e.SETTING_ROW_LABEL, e.SETTING_ROW_STACK_BREAKPOINT, e.SETTING_ROW_VALUE, e.SETTING_ROW_VALUE_TEXT, e.SNAPSHOT_MEDIA_PATH, e.SPLIT_PANEL_OUTER, e.SPLIT_PANEL_SIDE, e.STACK_GAP, e.STATE_COLOR, e.SceneMonitorEditor, e.ScopePicker, e.ScriptHeroCard, e.ScriptInlineControl, e.ScrollArea, e.Select, e.SelectedChip, e.SemanticBadge, e.SensorHeroCard, e.SensorInlineControl, e.SensorValueAtom, e.Separator, e.SettingRow, e.Sidebar, e.SidebarItem, e.Skeleton, e.SlideOverPanel, e.SlideToggle, e.SnapshotButton, e.SortHeaderButton, e.Square, e.StatCard, e.StateValuesStream, e.StatusBadge, e.StepTimings, e.StepTreeMaster, e.Stepper, e.StreamBrokerSelector, e.StreamDebugOverlay, e.StreamPanel, e.Switch, e.SwitchHeroCard, e.SwitchInlineControl, e.SwitchPanel, e.SystemProvider, e.TABLE_SCROLL_MAX_H, e.TEXT_FIELD_LABEL, e.TEXT_HINT, e.TEXT_METRIC, e.TEXT_SECTION_LABEL, e.TEXT_VALUE, e.TIMEZONES, e.Tabs, e.TabsContent, e.TabsList, e.TabsTrigger, e.TapToggle, e.ThemeProvider, e.ThermostatHeroCard, e.ThermostatInlineControl, e.TimezoneSelector, e.Tooltip, e.TooltipContent, e.TooltipTrigger, e.Trash2, e.UnitPicker, e.VacuumHeroCard, e.VacuumInlineControl, e.ValueReadout, e.ValveHeroCard, e.ValveInlineControl, e.VersionBadge, e.VodPlaybackProvider, e.WaterHeaterHeroCard, e.WaterHeaterInlineControl, e.WeatherHeroCard, e.WeatherInlineControl, e.WidgetMetricCard, e.WidgetPanel, e.WidgetRegistryProvider, e.WidgetSlot, e.ZoneEditingProvider, e.agentColumnKey, e.allDeviceTypeFilterOptions, e.applyFleetQueryDefaults, e.applyPickerFilters, e.ariaSortForColumn, e.badgeFor, e.badgeFor$1, e.buildStepTreeFromSchema, e.catalogHasDraft, e.childEntityId, e.childListName, e.chipOverflow, e.classifyCapability, e.clearPickerGroup, e.cn, e.columnsForContext, e.containerChildToRef, e.countableDevices, e.coverHighlight, e.coverageLine, e.coverageLine$1, e.createLucideIcon, e.createSharedContext, e.createTheme, e.cursorFractionFor, e.darkColors, e.dataTableFacets, e.defaultTheme, e.deriveDeviceKind, e.deriveWebrtcDebugStats, e.describeDeviceSelector, e.deviceIntegrationResolver, e.deviceListStateOf, e.deviceMatchesFilter, e.deviceOptionLabel, e.deviceRoleMeta, e.deviceRoleMetaOf, e.deviceTypeLabel, e.deviceTypeMeta, e.deviceTypeMetaOf, e.devicesToOptions, e.draftFromQuery, e.emptyDevicesWidens, e.ensureMfHostInit, e.eventKindLabel, e.filterDataTableRows, e.filterDeviceOptions, e.filterOptionSelectOptions, e.filterPickerDevices, e.findTimezone, e.flattenPickerGrouping, e.flattenPickerRows, e.fleetViewOf, e.formatControlDateTime, e.formatLastSeen, e.formatNumeric, e.freezeVerdict, e.fuzzyMatch, e.getClassColor, e.getPhaseVisual, e.groupAgentColumns, e.groupChildrenByLayout, e.groupPickerDevices, e.groupPickerDevicesBy, e.hardwareLabel, e.hubOrigin, e.hubPath, e.hubPath$1, e.hubUrl, e.hubWsUrl, e.humanDuration, e.humidifierTint, e.initialScrubState, e.insertAtSelection, e.isAbsentProvider, e.isAbsentProvider$1, e.isDataTableFilterActive, e.isFieldVisible, e.isGroupExpanded, e.lawnMowerActivityMeta, e.lightColors, e.loadRemoteBundle, e.makeScrubBridge, e.metadataEntries, e.metadataString, e.mirror, e.mountAddonPage, e.mountPath, e.nextReconnectAction, e.nextSort, e.nextSortDirection, e.nextTableSort, e.normalizeForSearch, e.offListSelections, e.openTopLayer, e.optionSelectSearchText, e.orphanDeviceLabel, e.overrideEntityIdFromLink, e.pageRows, e.parentDetailOf, e.parsePickerGroupBy, e.parseRecordedServerMessage, e.partitionOptionSelectSelected, e.pickerFacetFilterShown, e.pickerFacetKey, e.pickerFacetOptions, e.pickerFiltersActive, e.pickerGroupKey, e.pickerHiddenSelectedCount, e.pickerLocationKey, e.pickerQueryTokens, e.pickerRowFacts, e.pickerSearchText, e.pickerZoneFilterSuspended, e.providerIcons, e.readStoredGroupBy, e.resetHubMountForTests, e.resetPickerFilters, e.resolveContainerPrimary, e.resolveControlAlign, e.resolveDeviceControl, e.resolveDeviceIntegration, e.resolveDisplayIcon, e.resolveEffectiveDefaultModel, e.resolveEffectiveStepModel, e.resolveEventKindIcon, e.resolveOptionSelectSearchable, e.resolveParentNames, e.resolvePrimaryChild, e.resolveSelectedDevices, e.resolveSensorDisplay, e.resolveStepDefaultModel, e.resolveTableLayout, e.roiTooLarge, e.roiTooLarge$1, e.rootSourceState, e.routerBasename, e.scrubReducer, e.selectPickerGroup, e.selectedDeviceOptions, e.serializeRecordedCommand, e.shouldCommit, e.shouldEmit, e.shouldShowAddNewFooter, e.shouldShowUseQueryRow, e.shouldUseSingleNode, e.showsNoCamerasHint, e.sortRows, e.sortRowsByColumn, e.statusIcons, e.statusLine, e.statusLine$1, e.stepHasModelForFormat, e.stepModelOptions, e.stripParentNamePrefix, e.tabForSelector, e.tankAlert, e.themeToCss, e.toStationaryOverlayBox, e.toggleDataTableFacet, e.togglePickerDevice, e.togglePickerKey, e.trpc, e.typeLabel, e.useAccessoriesGetStatus, e.useAccessoriesSetChildHidden, e.useAddonPagesListPages, e.useAddonSettingsGetDeviceSettings, e.useAddonSettingsGetGlobalSettings, e.useAddonSettingsGetIntegrationSettings, e.useAddonSettingsUpdateDeviceSettings, e.useAddonSettingsUpdateGlobalSettings, e.useAddonWidgetsListWidgets, e.useAddonsApplyAutoUpdateToAll, e.useAddonsCancelJob, e.useAddonsCustom, e.useAddonsForceRefresh, e.useAddonsGetAddonAutoUpdate, e.useAddonsGetAutoUpdateSettings, e.useAddonsGetJob, e.useAddonsGetLastRestart, e.useAddonsGetLogs, e.useAddonsGetVersions, e.useAddonsInstallFromWorkspace, e.useAddonsInstallPackage, e.useAddonsIsWorkspaceAvailable, e.useAddonsList, e.useAddonsListCapabilityProviders, e.useAddonsListFrameworkPackages, e.useAddonsListJobs, e.useAddonsListPackages, e.useAddonsListUpdates, e.useAddonsListWorkspacePackages, e.useAddonsOnAddonLogs, e.useAddonsReloadPackages, e.useAddonsRestartAddon, e.useAddonsRestartServer, e.useAddonsRetryLoad, e.useAddonsRollbackPackage, e.useAddonsSearchAvailable, e.useAddonsSetAddonAutoUpdate, e.useAddonsSetAutoUpdateSettings, e.useAddonsSetCapabilityProviderEnabled, e.useAddonsStartJob, e.useAddonsUninstallPackage, e.useAddonsUpdatePackage, e.useAirQualitySensorGetStatus, e.useAlarmPanelArm, e.useAlarmPanelDisarm, e.useAlarmPanelGetStatus, e.useAlarmPanelTrigger, e.useAlert, e.useAlertsDismiss, e.useAlertsEmit, e.useAlertsGetUnreadCount, e.useAlertsList, e.useAlertsMarkAllRead, e.useAlertsMarkRead, e.useAlertsUpdate, e.useAllWidgets, e.useAmbientLightSensorGetStatus, e.useAudioAnalysisApplyDeviceSettingsPatch, e.useAudioAnalysisGetDeviceLiveContribution, e.useAudioAnalysisGetDeviceSettingsContribution, e.useAudioAnalysisResolveDeviceSettings, e.useAudioAnalyzerAnalyseChunk, e.useAudioAnalyzerAttachDevice, e.useAudioAnalyzerClassify, e.useAudioAnalyzerDetachDevice, e.useAudioAnalyzerDispose, e.useAudioAnalyzerIsReady, e.useAudioAnalyzerReprobeAudioEngine, e.useAudioCodecCanHandle, e.useAudioCodecCloseSession, e.useAudioCodecCreateDecodeSession, e.useAudioCodecCreateEncodeSession, e.useAudioCodecFlushEncode, e.useAudioCodecListActiveSessions, e.useAudioCodecListSupportedCodecs, e.useAudioCodecPullEncoded, e.useAudioCodecPullPcm, e.useAudioCodecPushEncodedFrame, e.useAudioCodecPushPcm, e.useAudioMetricsGetCurrentSnapshot, e.useAudioMetricsGetHistory, e.useAutomationControlDisable, e.useAutomationControlEnable, e.useAutomationControlGetStatus, e.useAutomationControlTrigger, e.useBackupCancel, e.useBackupDelete, e.useBackupDeleteSchedule, e.useBackupGetEntries, e.useBackupList, e.useBackupListArchives, e.useBackupListDestinations, e.useBackupListLocations, e.useBackupListRuns, e.useBackupListSchedules, e.useBackupPreviewSchedule, e.useBackupRestore, e.useBackupTrigger, e.useBackupUpsertDestinationPolicy, e.useBackupUpsertSchedule, e.useBatteryGetStatus, e.useBatteryWakeForStream, e.useBinaryGetStatus, e.useBrightnessGetStatus, e.useBrightnessSetBrightness, e.useBrokerAdd, e.useBrokerGet, e.useBrokerGetBrokerConfig, e.useBrokerGetSettings, e.useBrokerGetSettingsSchema, e.useBrokerGetState, e.useBrokerGetStatus, e.useBrokerList, e.useBrokerListProviders, e.useBrokerPublish, e.useBrokerRemove, e.useBrokerSetSettings, e.useBrokerSubscribe, e.useBrokerTestConnection, e.useBrokerTestSettings, e.useBrokerUnsubscribe, e.useButtonPress, e.useCalendarsGetPreferences, e.useCalendarsListCalendars, e.useCalendarsListEvents, e.useCalendarsSetCalendarPreference, e.useCameraCredentialsGetCredentials, e.useCameraCredentialsGetStatus, e.useCameraGridLayoutApplyDeviceSettingsPatch, e.useCameraGridLayoutGetDeviceLiveContribution, e.useCameraGridLayoutGetDeviceSettingsContribution, e.useCameraGridLayoutGetLayout, e.useCameraGridLayoutSaveLayout, e.useCameraPipelineConfigApplyDeviceSettingsPatch, e.useCameraPipelineConfigGetDeviceLiveContribution, e.useCameraPipelineConfigGetDeviceSettingsContribution, e.useCameraStreamsGetBrokerStreams, e.useCameraStreamsGetCameraStreams, e.useCameraStreamsGetProfileRtspEntries, e.useCameraStreamsGetRtspEntries, e.useCameraStreamsPickStream, e.useCapabilityPresence, e.useCarbonMonoxideGetStatus, e.useClimateControlGetStatus, e.useClimateControlSetFanMode, e.useClimateControlSetMode, e.useClimateControlSetPreset, e.useClimateControlSetSwingHorizontal, e.useClimateControlSetSwingVertical, e.useClimateControlSetTarget, e.useClimateControlSetTargetHumidity, e.useClimateControlSetTargetRange, e.useClusterNodes, e.useClusterTopology, e.useColorGetStatus, e.useColorSetColor, e.useConfirm, e.useConnectionTestDescribeTest, e.useConnectionTestTestSettings, e.useConnectivityGetStatus, e.useConsumablesGetStatus, e.useConsumablesReset, e.useContactGetStatus, e.useContainerChildren, e.useControlGetStatus, e.useControlSetValue, e.useCoreBlocksCompile, e.useCoreBlocksCreate, e.useCoreBlocksCreateComposition, e.useCoreBlocksDelete, e.useCoreBlocksGet, e.useCoreBlocksGetBlockSettings, e.useCoreBlocksGetComposition, e.useCoreBlocksGetCustomization, e.useCoreBlocksGetTypeDefs, e.useCoreBlocksList, e.useCoreBlocksListComposableCaps, e.useCoreBlocksListCompositions, e.useCoreBlocksRestart, e.useCoreBlocksSetEnabled, e.useCoreBlocksUpdate, e.useCoreBlocksUpdateBlockSettings, e.useCoreBlocksUpdateComposition, e.useCoreBlocksValidateComposition, e.useCoverClose, e.useCoverGetStatus, e.useCoverOpen, e.useCoverSetPosition, e.useCoverSetTiltPosition, e.useCoverStop, e.useCustomFieldRenderer, e.useDataTableFilter, e.useDayNightGetOptions, e.useDayNightGetStatus, e.useDayNightSetSettings, e.useDebouncedString, e.useDecoderCreateSession, e.useDecoderDestroySession, e.useDecoderGetFrame, e.useDecoderGetInfo, e.useDecoderGetShmStats, e.useDecoderGetStats, e.useDecoderListActiveSessions, e.useDecoderOpenStream, e.useDecoderPullFrames, e.useDecoderPullHandles, e.useDecoderPushPacket, e.useDecoderReprobeHwaccel, e.useDecoderSupportsCodec, e.useDecoderUpdateConfig, e.useDetectionPipelineApplyDeviceSettingsPatch, e.useDetectionPipelineGetDeviceLiveContribution, e.useDetectionPipelineGetDeviceSettingsContribution, e.useDevShell, e.useDevice, e.useDeviceAdminLink, e.useDeviceAdminLinkGetAdminLink, e.useDeviceAdoptionAdopt, e.useDeviceAdoptionGetCandidate, e.useDeviceAdoptionGetStatus, e.useDeviceAdoptionListCandidateFilters, e.useDeviceAdoptionListCandidates, e.useDeviceAdoptionRefresh, e.useDeviceAdoptionRelease, e.useDeviceAdoptionResync, e.useDeviceAutotrack, e.useDeviceBattery, e.useDeviceCapSlice, e.useDeviceCapability, e.useDeviceDetections, e.useDeviceDiscoveryAdoptDevice, e.useDeviceDiscoveryGetStatus, e.useDeviceDiscoveryListDiscovered, e.useDeviceDiscoveryRefreshDiscovery, e.useDeviceDiscoveryReleaseDevice, e.useDeviceExportApplyDeviceSettingsPatch, e.useDeviceExportExposeDevice, e.useDeviceExportGetDeviceLiveContribution, e.useDeviceExportGetDeviceSettingsContribution, e.useDeviceExportGetStatus, e.useDeviceExportListExposedDevices, e.useDeviceExportListSupportedDeviceKinds, e.useDeviceExportUnexposeDevice, e.useDeviceExtensionListCandidates, e.useDeviceExtensionListSlots, e.useDeviceExtensionListSources, e.useDeviceExtensionSetSlot, e.useDeviceId, e.useDeviceListPageSize, e.useDeviceManagerAddLocation, e.useDeviceManagerAdoptDevice, e.useDeviceManagerAdoptionAdopt, e.useDeviceManagerAdoptionCancelJob, e.useDeviceManagerAdoptionListCandidateFilters, e.useDeviceManagerAdoptionListCandidates, e.useDeviceManagerAdoptionListJobs, e.useDeviceManagerAdoptionRefresh, e.useDeviceManagerAdoptionRelease, e.useDeviceManagerAdoptionResync, e.useDeviceManagerAdoptionStartJob, e.useDeviceManagerAllocateDeviceId, e.useDeviceManagerApplyInitialMeta, e.useDeviceManagerCreateDevice, e.useDeviceManagerDisable, e.useDeviceManagerDiscoverAllProviders, e.useDeviceManagerDiscoverDevices, e.useDeviceManagerDiscoverProvider, e.useDeviceManagerDiscoveryProviders, e.useDeviceManagerEnable, e.useDeviceManagerGetAllBindings, e.useDeviceManagerGetBindings, e.useDeviceManagerGetBindingsBatch, e.useDeviceManagerGetChildren, e.useDeviceManagerGetChildrenBatch, e.useDeviceManagerGetConfigSchema, e.useDeviceManagerGetCreationSchema, e.useDeviceManagerGetDevice, e.useDeviceManagerGetDeviceAggregate, e.useDeviceManagerGetDeviceLiveInfoAggregate, e.useDeviceManagerGetDeviceSettingsAggregate, e.useDeviceManagerGetDeviceStatusAggregate, e.useDeviceManagerGetDeviceStatusAggregateBatch, e.useDeviceManagerGetLinkedDevices, e.useDeviceManagerGetLinkedDevicesBatch, e.useDeviceManagerGetRoleDisplayDefaults, e.useDeviceManagerGetSettingsSchema, e.useDeviceManagerGetStreamProfileMap, e.useDeviceManagerGetStreamSources, e.useDeviceManagerGetWireableFields, e.useDeviceManagerGetWrapperActivation, e.useDeviceManagerListAll, e.useDeviceManagerListBindableCapsForDeviceType, e.useDeviceManagerListDeviceIdsByCaps, e.useDeviceManagerListLocationDescriptions, e.useDeviceManagerListLocationIcons, e.useDeviceManagerListLocations, e.useDeviceManagerListPersistedByAddon, e.useDeviceManagerListSiteZones, e.useDeviceManagerListWrappersForCap, e.useDeviceManagerLoadConfig, e.useDeviceManagerLoadMeta, e.useDeviceManagerLoadRuntimeState, e.useDeviceManagerMigrateDevice, e.useDeviceManagerPersistConfig, e.useDeviceManagerProbeStreams, e.useDeviceManagerProviderCreationType, e.useDeviceManagerProviderDiscoveryParamsSchema, e.useDeviceManagerRegisterDevice, e.useDeviceManagerRemove, e.useDeviceManagerRemoveByIntegration, e.useDeviceManagerRemoveDevice, e.useDeviceManagerRemoveLocation, e.useDeviceManagerRemoveSiteZone, e.useDeviceManagerRenameLocation, e.useDeviceManagerRenameSiteZone, e.useDeviceManagerRunDeviceAction, e.useDeviceManagerSetChildLayout, e.useDeviceManagerSetDisabled, e.useDeviceManagerSetDisplay, e.useDeviceManagerSetIntegrationId, e.useDeviceManagerSetLinkDeviceId, e.useDeviceManagerSetLocation, e.useDeviceManagerSetLocationDescription, e.useDeviceManagerSetLocationIcon, e.useDeviceManagerSetLocationZone, e.useDeviceManagerSetMetadata, e.useDeviceManagerSetName, e.useDeviceManagerSetPrimaryChildEntityId, e.useDeviceManagerSetRole, e.useDeviceManagerSetRoleDisplayDefaults, e.useDeviceManagerSetSiteZone, e.useDeviceManagerSetStreamProfileMap, e.useDeviceManagerSetType, e.useDeviceManagerSetWrapperActive, e.useDeviceManagerTestCreationField, e.useDeviceManagerTestField, e.useDeviceManagerUpdateConfig, e.useDeviceManagerUpdateDeviceField, e.useDeviceManagerUpdateDeviceFieldsBatch, e.useDeviceNetworkLink, e.useDeviceOpsGetConfigEntries, e.useDeviceOpsGetRawState, e.useDeviceOpsGetSettingsSchema, e.useDeviceOpsGetStreamSources, e.useDeviceOpsRemoveDevice, e.useDeviceOpsRunAction, e.useDeviceOpsSetConfig, e.useDeviceProviderAdoptDiscoveredDevice, e.useDeviceProviderCreateDevice, e.useDeviceProviderDiscoverDevices, e.useDeviceProviderGetChildCreationSchema, e.useDeviceProviderGetDevices, e.useDeviceProviderGetDiscoveryParamsSchema, e.useDeviceProviderGetManualCreationType, e.useDeviceProviderGetStatus, e.useDeviceProviderReloadDevice, e.useDeviceProviderStart, e.useDeviceProviderStop, e.useDeviceProviderSupportsDiscovery, e.useDeviceProviderSupportsManualCreation, e.useDeviceProviderTestCreationField, e.useDeviceProxy, e.useDeviceProxy$1, e.useDeviceQuickDetailOpen, e.useDeviceSnapshot, e.useDeviceSnapshotImage, e.useDeviceSnapshotImage$1, e.useDeviceState, e.useDeviceStateClaimFields, e.useDeviceStateGetAllSnapshots, e.useDeviceStateGetCapSlice, e.useDeviceStateGetNativeCapSlice, e.useDeviceStateGetSnapshot, e.useDeviceStateListClaims, e.useDeviceStatePatchOwnedFields, e.useDeviceStateReleaseClaim, e.useDeviceStateSetCapSlice, e.useDeviceStateSlice, e.useDeviceStateSlice$1, e.useDeviceStatusGetStatus, e.useDeviceWebrtc, e.useDevices, e.useDoorbellEvents, e.useDoorbellGetStatus, e.useEnumSensorGetStatus, e.useEventEmitterGetStatus, e.useEventInvalidation, e.useEventStreamLatest, e.useEventStreamMap, e.useFaceGalleryAssignFace, e.useFaceGalleryAssignFaces, e.useFaceGalleryAuditIdentitySamples, e.useFaceGalleryCreateIdentity, e.useFaceGalleryDeleteFace, e.useFaceGalleryDeleteIdentity, e.useFaceGalleryGetFaceByTrack, e.useFaceGalleryGetFaceMedia, e.useFaceGalleryListIdentities, e.useFaceGalleryListIdentitySamples, e.useFaceGalleryListRecentFaces, e.useFaceGalleryRemoveSample, e.useFaceGalleryRenameIdentity, e.useFaceGallerySuggestFaceClusters, e.useFaceGalleryUnassignFace, e.useFaceGalleryUnassignFaces, e.useFanControlGetStatus, e.useFanControlSetDirection, e.useFanControlSetOscillating, e.useFanControlSetPercentage, e.useFanControlSetPreset, e.useFeatureProbeGetStatus, e.useFloodGetStatus, e.useGasGetStatus, e.useHumidifierGetStatus, e.useHumidifierSetMode, e.useHumidifierSetOn, e.useHumidifierSetTargetHumidity, e.useHumiditySensorGetStatus, e.useImageGetStatus, e.useImageSettingsGetOptions, e.useImageSettingsGetStatus, e.useImageSettingsSetSettings, e.useIntegrationsCreate, e.useIntegrationsDelete, e.useIntegrationsGet, e.useIntegrationsGetAvailableTypes, e.useIntegrationsGetByAddonId, e.useIntegrationsGetSettings, e.useIntegrationsList, e.useIntegrationsSetSettings, e.useIntegrationsTestConnection, e.useIntegrationsUpdate, e.useIntercomEndTalkSession, e.useIntercomGetStatus, e.useIntercomHandleAnswer, e.useIntercomPushTalkAudio, e.useIntercomStartSession, e.useIntercomStartTalkSession, e.useIntercomStopSession, e.useIsMidWidth, e.useIsMobile, e.useLawnMowerControlDock, e.useLawnMowerControlGetStatus, e.useLawnMowerControlPause, e.useLawnMowerControlStartMowing, e.useLiveBuffer, e.useLiveEvent, e.useLlmCancel, e.useLlmDeleteModel, e.useLlmDeleteProfile, e.useLlmGenerate, e.useLlmGenerateVision, e.useLlmGetDefaults, e.useLlmGetRuntimeStatus, e.useLlmGetUsage, e.useLlmInstallModel, e.useLlmListModelCatalog, e.useLlmListModels, e.useLlmListNodeModels, e.useLlmListProfileKinds, e.useLlmListProfiles, e.useLlmListRuntimeNodes, e.useLlmResolveModelRef, e.useLlmSetDefault, e.useLlmStartRuntime, e.useLlmStopRuntime, e.useLlmTestProfile, e.useLlmUpsertProfile, e.useLocalNetworkAddCustomAddress, e.useLocalNetworkDownloadCa, e.useLocalNetworkGetAddresses, e.useLocalNetworkGetAllowedAddresses, e.useLocalNetworkGetConnectionEndpoints, e.useLocalNetworkGetHubAddresses, e.useLocalNetworkGetNotificationEndpoint, e.useLocalNetworkGetPreferred, e.useLocalNetworkGetTlsStatus, e.useLocalNetworkGetViewerEndpoints, e.useLocalNetworkList, e.useLocalNetworkRegenerateCertificate, e.useLocalNetworkRemoveCustomAddress, e.useLocalNetworkResetAllowlistToBestMatch, e.useLocalNetworkRevertToGeneratedCertificate, e.useLocalNetworkSetAddressRole, e.useLocalNetworkSetAllowedAddresses, e.useLocalNetworkSetNotificationEndpoint, e.useLocalNetworkSetViewerEndpoints, e.useLocalNetworkUploadCertificate, e.useLockControlGetStatus, e.useLockControlLock, e.useLockControlOpen, e.useLockControlUnlock, e.useMediaPlayerGetStatus, e.useMediaPlayerNext, e.useMediaPlayerPause, e.useMediaPlayerPlay, e.useMediaPlayerPlayMedia, e.useMediaPlayerPrevious, e.useMediaPlayerSeek, e.useMediaPlayerSelectSource, e.useMediaPlayerSetMute, e.useMediaPlayerSetRepeat, e.useMediaPlayerSetShuffle, e.useMediaPlayerSetVolume, e.useMediaPlayerStop, e.useMeshNetworkGetStatus, e.useMeshNetworkJoin, e.useMeshNetworkLeave, e.useMeshNetworkListPeers, e.useMeshNetworkLogout, e.useMeshNetworkStartLogin, e.useMeshNetworkTestConnection, e.useMetricsProviderCollectSnapshot, e.useMetricsProviderGetAddonStats, e.useMetricsProviderGetCached, e.useMetricsProviderGetCpuTemperature, e.useMetricsProviderGetCurrent, e.useMetricsProviderGetDiskSpace, e.useMetricsProviderGetGpuInfo, e.useMetricsProviderGetLoadSeries, e.useMetricsProviderGetProcessStats, e.useMetricsProviderListAddonInstances, e.useMetricsProviderListNodeProcesses, e.useMotionDetectionAnalyze, e.useMotionDetectionApplyDeviceSettingsPatch, e.useMotionDetectionGetDeviceLiveContribution, e.useMotionDetectionGetDeviceSettingsContribution, e.useMotionDetectionRemoveCamera, e.useMotionDetectionReset, e.useMotionGetStatus, e.useMotionIsDetected, e.useMotionTriggerGetStatus, e.useMotionTriggerSetMotionTrigger, e.useMotionZonesGetOptions, e.useMotionZonesGetStatus, e.useMotionZonesSetZone, e.useMqttBrokerAddBroker, e.useMqttBrokerGetBrokerConfig, e.useMqttBrokerGetStatus, e.useMqttBrokerListBrokers, e.useMqttBrokerRemoveBroker, e.useMqttBrokerStartEmbeddedBroker, e.useMqttBrokerStopEmbeddedBroker, e.useMqttBrokerTestConnection, e.useNativeObjectDetectionGetOptions, e.useNativeObjectDetectionGetStatus, e.useNativeObjectDetectionSetEnabled, e.useNativeObjectDetectionSetSettings, e.useNavigation, e.useNavigationGetFeatures, e.useNavigationGetStatus, e.useNavigationGoToPoint, e.useNavigationListActions, e.useNavigationMove, e.useNavigationPlaySound, e.useNavigationRunAction, e.useNavigationSetLightLevel, e.useNavigationSetLightMode, e.useNavigationSetLightOn, e.useNavigationStop, e.useNetworkAccessGetEndpoint, e.useNetworkAccessGetStatus, e.useNetworkAccessListEndpoints, e.useNetworkAccessStart, e.useNetworkAccessStop, e.useNetworkLinkGetStatus, e.useNetworkQualityGetAllStats, e.useNetworkQualityGetDeviceStats, e.useNetworkQualityReportClientStats, e.useNodesClusterAddonStatus, e.useNodesDeployAddon, e.useNodesDirectory, e.useNodesExecuteQuery, e.useNodesGetCapUsageGraph, e.useNodesGetNodeAddons, e.useNodesRenameNode, e.useNodesRestartAddon, e.useNodesRestartNode, e.useNodesRestartProcess, e.useNodesSetProcessLogLevel, e.useNodesShutdownNode, e.useNodesTopology, e.useNodesUndeployAddon, e.useNotificationOutputDeleteTarget, e.useNotificationOutputDiscoverTargets, e.useNotificationOutputGetTarget, e.useNotificationOutputListTargetKinds, e.useNotificationOutputListTargets, e.useNotificationOutputProbeTargetConfig, e.useNotificationOutputSend, e.useNotificationOutputSetTargetEnabled, e.useNotificationOutputTestTarget, e.useNotificationOutputUpsertTarget, e.useNotificationRulesActivateAlarmProfile, e.useNotificationRulesCancelSnooze, e.useNotificationRulesCreateAlarmProfile, e.useNotificationRulesCreateRule, e.useNotificationRulesCreateSequence, e.useNotificationRulesCreateSnooze, e.useNotificationRulesDeleteAlarmProfile, e.useNotificationRulesDeleteRule, e.useNotificationRulesDeleteSequence, e.useNotificationRulesGetAlarmConfig, e.useNotificationRulesGetAlarmSensors, e.useNotificationRulesGetClipRetentionAsks, e.useNotificationRulesGetConditionCatalog, e.useNotificationRulesGetHistory, e.useNotificationRulesGetRule, e.useNotificationRulesGetRuleLastRuns, e.useNotificationRulesGetSequence, e.useNotificationRulesGetTemplateCatalog, e.useNotificationRulesListDeviceMutes, e.useNotificationRulesListRules, e.useNotificationRulesListSequences, e.useNotificationRulesListSnoozes, e.useNotificationRulesPreviewStateSummary, e.useNotificationRulesPreviewTemplate, e.useNotificationRulesRenameAlarmProfile, e.useNotificationRulesResolveArtifactUrl, e.useNotificationRulesSetAlarmConfig, e.useNotificationRulesSetDeviceMuted, e.useNotificationRulesSetRuleEnabled, e.useNotificationRulesTestRule, e.useNotificationRulesUpdateRule, e.useNotificationRulesUpdateSequence, e.useNotifierCancel, e.useNotifierGetStatus, e.useNotifierSend, e.useNumericSensorGetStatus, e.useOptimisticSlice, e.useOptionalSystem, e.useOptionalWidgetRegistry, e.useOsdGetStatus, e.useOsdManagerClearSlotBinding, e.useOsdManagerCopyDeviceConfiguration, e.useOsdManagerDeleteTemplate, e.useOsdManagerGetConditionSupport, e.useOsdManagerGetDeviceOsd, e.useOsdManagerGetSourceCatalog, e.useOsdManagerListTemplates, e.useOsdManagerPreviewSlot, e.useOsdManagerRenderDevice, e.useOsdManagerSetSlotBinding, e.useOsdManagerUpsertTemplate, e.useOsdSetOverlay, e.usePTZ, e.usePetFeederCallPet, e.usePetFeederCancelFeed, e.usePetFeederFeed, e.usePetFeederGetStatus, e.usePetFeederMarkFoodReplenished, e.usePetFeederPlaySound, e.usePetFeederResetDesiccant, e.usePetFeederSetChildLock, e.usePetFeederSetFeedSound, e.usePetFeederSetIndicatorLight, e.usePetFeederSetVolume, e.usePickerSiteZones, e.usePipelineAnalyticsApplyDeviceSettingsPatch, e.usePipelineAnalyticsCancelRelocateMedia, e.usePipelineAnalyticsCancelStorageMigrationMove, e.usePipelineAnalyticsClearTrackRelation, e.usePipelineAnalyticsClearTracks, e.usePipelineAnalyticsCompleteRetrainTrack, e.usePipelineAnalyticsCountRelocatableMedia, e.usePipelineAnalyticsCountUnstampedEventMedia, e.usePipelineAnalyticsDeleteDeviceEvents, e.usePipelineAnalyticsDeleteTracks, e.usePipelineAnalyticsDeselectRetrainFrame, e.usePipelineAnalyticsGetActiveTracks, e.usePipelineAnalyticsGetAudioEvents, e.usePipelineAnalyticsGetDeviceLiveContribution, e.usePipelineAnalyticsGetDeviceSettingsContribution, e.usePipelineAnalyticsGetEventDensity, e.usePipelineAnalyticsGetEventDensityBatch, e.usePipelineAnalyticsGetEventMedia, e.usePipelineAnalyticsGetEventMediaFootprintByKind, e.usePipelineAnalyticsGetEventStoreFootprint, e.usePipelineAnalyticsGetKeyEvents, e.usePipelineAnalyticsGetKeyEventsBatch, e.usePipelineAnalyticsGetMediaReclaimStatus, e.usePipelineAnalyticsGetMotionEvents, e.usePipelineAnalyticsGetObjectEmbeddingRebuildStatus, e.usePipelineAnalyticsGetObjectEvents, e.usePipelineAnalyticsGetRetrainExportUrl, e.usePipelineAnalyticsGetRetrainFrameImage, e.usePipelineAnalyticsGetSensorEvents, e.usePipelineAnalyticsGetStorageMigrationMoveStatus, e.usePipelineAnalyticsGetTrack, e.usePipelineAnalyticsGetTrackMedia, e.usePipelineAnalyticsGetTrainingExportSummary, e.usePipelineAnalyticsGetTrainingExportUrl, e.usePipelineAnalyticsListArchivedDebugNotes, e.usePipelineAnalyticsListBirthDecisions, e.usePipelineAnalyticsListEventKinds, e.usePipelineAnalyticsListEventKindsBatch, e.usePipelineAnalyticsListEventMedia, e.usePipelineAnalyticsListOpsLog, e.usePipelineAnalyticsListRecentTracks, e.usePipelineAnalyticsListRelocateMediaJobs, e.usePipelineAnalyticsListRetrainAnnotations, e.usePipelineAnalyticsListRetrainFrames, e.usePipelineAnalyticsListRetrainStaging, e.usePipelineAnalyticsListTrackMedia, e.usePipelineAnalyticsListTrackRelations, e.usePipelineAnalyticsListTracks, e.usePipelineAnalyticsOwnersWithMedia, e.usePipelineAnalyticsPauseForStorageMigration, e.usePipelineAnalyticsProposeRetrainAnnotations, e.usePipelineAnalyticsPruneEvents, e.usePipelineAnalyticsPruneEventsBefore, e.usePipelineAnalyticsPruneTracksBefore, e.usePipelineAnalyticsReadLongTermSeries, e.usePipelineAnalyticsRebuildObjectEmbeddings, e.usePipelineAnalyticsReclaimDebugMedia, e.usePipelineAnalyticsReconcileFromDisk, e.usePipelineAnalyticsRefreshStorageLocationsForMigration, e.usePipelineAnalyticsRelocateMedia, e.usePipelineAnalyticsRestageRetrainTrack, e.usePipelineAnalyticsResumeForStorageMigration, e.usePipelineAnalyticsSaveRetrainAnnotations, e.usePipelineAnalyticsSearchObjectEvents, e.usePipelineAnalyticsSelectRetrainFrames, e.usePipelineAnalyticsSetTrackFlags, e.usePipelineAnalyticsSetTrackPurity, e.usePipelineAnalyticsSetTrackRelation, e.usePipelineAnalyticsStartStorageMigrationMove, e.usePipelineAnalyticsWipeAllAnalytics, e.usePipelineAnalyticsWipeObjectEmbeddings, e.usePipelineExecutorCacheFrameInPool, e.usePipelineExecutorClearDeviceOverrides, e.usePipelineExecutorDeleteModel, e.usePipelineExecutorDeleteTemplate, e.usePipelineExecutorDownloadModel, e.usePipelineExecutorGetAddonModels, e.usePipelineExecutorGetAudioCapabilities, e.usePipelineExecutorGetAvailableEngines, e.usePipelineExecutorGetCapabilities, e.usePipelineExecutorGetDefaultSteps, e.usePipelineExecutorGetDetectionConfigSchema, e.usePipelineExecutorGetEffectiveTuning, e.usePipelineExecutorGetEngineProvisioning, e.usePipelineExecutorGetGlobalPipelineConfig, e.usePipelineExecutorGetGlobalSteps, e.usePipelineExecutorGetInferenceDeviceHealth, e.usePipelineExecutorGetOrchestratorConfigSchema, e.usePipelineExecutorGetReferenceAudio, e.usePipelineExecutorGetReferenceAudioFiles, e.usePipelineExecutorGetReferenceImage, e.usePipelineExecutorGetSchema, e.usePipelineExecutorGetSelectedEngine, e.usePipelineExecutorGetVideoPipelineSteps, e.usePipelineExecutorInferCached, e.usePipelineExecutorKillEngine, e.usePipelineExecutorListLoadedEngines, e.usePipelineExecutorListReferenceImages, e.usePipelineExecutorListTemplates, e.usePipelineExecutorRearmInferenceDevice, e.usePipelineExecutorRunAudioTest, e.usePipelineExecutorRunPipeline, e.usePipelineExecutorRunPipelineBatch, e.usePipelineExecutorSaveTemplate, e.usePipelineExecutorSetVideoPipelineSteps, e.usePipelineExecutorSpinEngine, e.usePipelineExecutorUncacheFrame, e.usePipelineExecutorUpdateTemplate, e.usePipelineExecutorValidatePipeline, e.usePipelineOrchestratorApplyDeviceSettingsPatch, e.usePipelineOrchestratorAssignAudio, e.usePipelineOrchestratorAssignPipeline, e.usePipelineOrchestratorDeleteTemplate, e.usePipelineOrchestratorGetAgentLoad, e.usePipelineOrchestratorGetAgentSettings, e.usePipelineOrchestratorGetAudioAssignment, e.usePipelineOrchestratorGetAudioAssignments, e.usePipelineOrchestratorGetAudioNodeLoad, e.usePipelineOrchestratorGetCameraMetrics, e.usePipelineOrchestratorGetCameraSettings, e.usePipelineOrchestratorGetCameraStatus, e.usePipelineOrchestratorGetCameraStatuses, e.usePipelineOrchestratorGetCameraStepOverrides, e.usePipelineOrchestratorGetCameraSwitches, e.usePipelineOrchestratorGetCapabilityBindings, e.usePipelineOrchestratorGetClusterModelChoice, e.usePipelineOrchestratorGetDeviceLiveContribution, e.usePipelineOrchestratorGetDeviceSettingsContribution, e.usePipelineOrchestratorGetGlobalMetrics, e.usePipelineOrchestratorGetIngestOwner, e.usePipelineOrchestratorGetNodeInferenceDevices, e.usePipelineOrchestratorGetPipelineAssignment, e.usePipelineOrchestratorGetPipelineAssignments, e.usePipelineOrchestratorGetPipelineDevicePin, e.usePipelineOrchestratorGetReconcileFromDiskStatus, e.usePipelineOrchestratorListAgentSettings, e.usePipelineOrchestratorListTemplates, e.usePipelineOrchestratorPauseForStorageMigration, e.usePipelineOrchestratorRebalance, e.usePipelineOrchestratorReconcileFromDisk, e.usePipelineOrchestratorRemoveAgentSettings, e.usePipelineOrchestratorRequestOccupancyLook, e.usePipelineOrchestratorResetNodePipelineDefaults, e.usePipelineOrchestratorResolvePipeline, e.usePipelineOrchestratorResumeForStorageMigration, e.usePipelineOrchestratorSaveTemplate, e.usePipelineOrchestratorSetAgentCapabilities, e.usePipelineOrchestratorSetAgentDecodeLimits, e.usePipelineOrchestratorSetAgentDetectWeight, e.usePipelineOrchestratorSetAgentInferenceDevices, e.usePipelineOrchestratorSetAgentMaxCameras, e.usePipelineOrchestratorSetAgentReachableHost, e.usePipelineOrchestratorSetCameraPipelineForAgent, e.usePipelineOrchestratorSetCameraSensors, e.usePipelineOrchestratorSetCameraStepOverride, e.usePipelineOrchestratorSetCameraStepToggle, e.usePipelineOrchestratorSetCameraSwitch, e.usePipelineOrchestratorSetCapabilityBinding, e.usePipelineOrchestratorSetPipelineDevicePin, e.usePipelineOrchestratorUnassignAudio, e.usePipelineOrchestratorUnassignPipeline, e.usePipelineOrchestratorUpdateTemplate, e.usePipelineRunnerAttachCamera, e.usePipelineRunnerDetachCamera, e.usePipelineRunnerGetAllCameraMetrics, e.usePipelineRunnerGetCameraMetrics, e.usePipelineRunnerGetLocalCameras, e.usePipelineRunnerGetLocalLoad, e.usePipelineRunnerGetLocalMetrics, e.usePipelineRunnerGetNativeCrop, e.usePipelineRunnerGetParkedTrackFrame, e.usePipelineRunnerParkTrackFrame, e.usePipelineRunnerReleaseParkedTrackFrames, e.usePipelineRunnerReportMotion, e.usePipelineRunnerRequestOccupancyBurst, e.usePipelineRunnerRunDetailSubtree, e.usePipelineRunnerRunStatelessStep, e.usePlateGalleryAssignPlate, e.usePlateGalleryAssignPlates, e.usePlateGalleryCorrectPlateText, e.usePlateGalleryCreateVehicle, e.usePlateGalleryDeletePlate, e.usePlateGalleryDeleteVehicle, e.usePlateGalleryGetPlateByTrack, e.usePlateGalleryGetPlateMedia, e.usePlateGalleryListPlates, e.usePlateGalleryListVehicleSamples, e.usePlateGalleryListVehicles, e.usePlateGalleryRemoveVehicleSample, e.usePlateGalleryRenameVehicle, e.usePlateGallerySearchPlates, e.usePlateGallerySuggestPlateClusters, e.usePlateGalleryUnassignPlate, e.usePlateGalleryUnassignPlates, e.usePlayerOverlayLayer, e.usePlayerOverlayLayers, e.usePlayerToolbarButton, e.usePlayerToolbarButtons, e.usePowerMeterGetStatus, e.usePresenceGetStatus, e.usePressureSensorGetStatus, e.usePrivacyMaskGetOptions, e.usePrivacyMaskGetStatus, e.usePrivacyMaskSetAudioEnabled, e.usePrivacyMaskSetMask, e.usePrompt, e.usePtzAutotrackGetSettings, e.usePtzAutotrackGetStatus, e.usePtzAutotrackSetEnabled, e.usePtzAutotrackSetSettings, e.usePtzCaptureHomeHere, e.usePtzContinuousMove, e.usePtzDeletePreset, e.usePtzGetHomePreset, e.usePtzGetHomeReturn, e.usePtzGetOptions, e.usePtzGetPosition, e.usePtzGetPresets, e.usePtzGetStatus, e.usePtzGoHome, e.usePtzGoToPreset, e.usePtzMove, e.usePtzSavePreset, e.usePtzSetAutofocus, e.usePtzSetHomePreset, e.usePtzSetHomeReturn, e.usePtzStop, e.useRebootReboot, e.useRecordedPlayback, e.useRecordingArchiveApplyDeviceSettingsPatch, e.useRecordingArchiveCancelRelocateJob, e.useRecordingArchiveCancelStorageMigrationMove, e.useRecordingArchiveDeleteFootprint, e.useRecordingArchiveGetAvailabilityBatch, e.useRecordingArchiveGetDaysWithRecordingsBatch, e.useRecordingArchiveGetDeviceConfig, e.useRecordingArchiveGetDeviceLiveContribution, e.useRecordingArchiveGetDeviceSettingsContribution, e.useRecordingArchiveGetPlacement, e.useRecordingArchiveGetRelocateResidue, e.useRecordingArchiveGetStatus, e.useRecordingArchiveGetStorageMigrationMoveStatus, e.useRecordingArchiveGetStorageUsage, e.useRecordingArchiveListOpsLog, e.useRecordingArchiveListRelocateJobs, e.useRecordingArchiveLocateSegment, e.useRecordingArchivePauseForStorageMigration, e.useRecordingArchivePlanStorageRebalance, e.useRecordingArchivePruneFootage, e.useRecordingArchiveReadGopBytes, e.useRecordingArchiveReadSegmentBytes, e.useRecordingArchiveReadWindowBytes, e.useRecordingArchiveReconcileLedgerAgainstDisk, e.useRecordingArchiveRefreshStorageLocationsForMigration, e.useRecordingArchiveRelocateFootage, e.useRecordingArchiveRenderClip, e.useRecordingArchiveRenderGif, e.useRecordingArchiveRescanStorage, e.useRecordingArchiveResumeForStorageMigration, e.useRecordingArchiveSetDeviceConfig, e.useRecordingArchiveSetDevicePlacement, e.useRecordingArchiveStartStorageMigrationMove, e.useRecordingArchiveStartStorageRebalance, e.useRecordingExportCancelExport, e.useRecordingExportCreateExport, e.useRecordingExportDeleteExport, e.useRecordingExportGetDownloadUrl, e.useRecordingExportGetExport, e.useRecordingExportListExports, e.useRecordingExportReadExportBytes, e.useRecordingGetAvailability, e.useRecordingGetDaysWithRecordings, e.useRecordingGetPlayback, e.useRecordingGetPlaybackOptions, e.useRecordingListSources, e.useRecordingOnboardGetOptions, e.useRecordingOnboardGetStatus, e.useRecordingOnboardSetSettings, e.useRecordingSignalGetStatus, e.useRemoteComponent, e.useRoleDisplayDefaults, e.useSceneMonitorCaptureReference, e.useSceneMonitorCreateScene, e.useSceneMonitorDeleteReference, e.useSceneMonitorDeleteScene, e.useSceneMonitorGetStatus, e.useSceneMonitorListScenes, e.useSceneMonitorListScenesBatch, e.useSceneMonitorRecheckNow, e.useSceneMonitorResetScene, e.useSceneMonitorUpdateScene, e.useScriptRunnerGetStatus, e.useScriptRunnerRun, e.useScriptRunnerStop, e.useScrubController, e.useServerManagementApplyServerUpdate, e.useServerManagementCheckServerUpdate, e.useServerManagementGetServerPackageStatus, e.useServerManagementRestartServer, e.useServerManagementRollbackServerUpdate, e.useSettingsStoreAggregate, e.useSettingsStoreCount, e.useSettingsStoreDeclareCollection, e.useSettingsStoreDelete, e.useSettingsStoreDeleteWhere, e.useSettingsStoreGet, e.useSettingsStoreHistogram, e.useSettingsStoreInsert, e.useSettingsStoreInsertMany, e.useSettingsStoreIsEmpty, e.useSettingsStoreQuery, e.useSettingsStoreSet, e.useSettingsStoreUpdate, e.useSettingsStoreUpdateWhere, e.useSettingsStoreUpsert, e.useSmokeGetStatus, e.useSnapshotApplyDeviceSettingsPatch, e.useSnapshotGetDebugState, e.useSnapshotGetDeviceLiveContribution, e.useSnapshotGetDeviceSettingsContribution, e.useSnapshotGetSnapshot, e.useSnapshotGetSnapshotLinks, e.useSnapshotGetSnapshotOverview, e.useSnapshotGetStatus, e.useSnapshotInvalidateCache, e.useStationaryOverlay, e.useStorageAbortUpload, e.useStorageBeginDownload, e.useStorageBeginUpload, e.useStorageDelete, e.useStorageDeleteLocation, e.useStorageEndDownload, e.useStorageExists, e.useStorageFinalizeUpload, e.useStorageGetAvailableSpace, e.useStorageList, e.useStorageListDrainProgress, e.useStorageListLocationDeclarations, e.useStorageListLocations, e.useStorageListProviders, e.useStorageMigrationCancel, e.useStorageMigrationCleanupCancel, e.useStorageMigrationCleanupStart, e.useStorageMigrationCleanupStatus, e.useStorageMigrationDrain, e.useStorageMigrationHistory, e.useStorageMigrationMovers, e.useStorageMigrationPlan, e.useStorageMigrationResidue, e.useStorageMigrationStart, e.useStorageMigrationStatus, e.useStorageRead, e.useStorageReadChunk, e.useStorageResolve, e.useStorageTestConfig, e.useStorageTestLocation, e.useStorageUpsertLocation, e.useStorageWrite, e.useStorageWriteChunk, e.useStoredGroupBy, e.useStreamBrokerAcquireEgressTranscode, e.useStreamBrokerApplyDeviceSettingsPatch, e.useStreamBrokerAssignProfile, e.useStreamBrokerFetchEventMedia, e.useStreamBrokerForgetDeviceHardware, e.useStreamBrokerGetAllRtspEntries, e.useStreamBrokerGetBrokerStats, e.useStreamBrokerGetDeviceAudioMute, e.useStreamBrokerGetDeviceLiveContribution, e.useStreamBrokerGetDeviceSettingsContribution, e.useStreamBrokerGetPreBufferInfo, e.useStreamBrokerGetRtspEntry, e.useStreamBrokerGetRtspPort, e.useStreamBrokerGetStreamUrl, e.useStreamBrokerGetStreamWithCodec, e.useStreamBrokerIsRtspEnabled, e.useStreamBrokerKillClient, e.useStreamBrokerListAllCameraStreams, e.useStreamBrokerListAllProfileSlots, e.useStreamBrokerListClients, e.useStreamBrokerProbeStream, e.useStreamBrokerProduceEventMedia, e.useStreamBrokerPublishCameraStream, e.useStreamBrokerPullAudioChunks, e.useStreamBrokerPullFrameHandles, e.useStreamBrokerRegenerateRtspToken, e.useStreamBrokerReleaseEgressTranscode, e.useStreamBrokerReleaseStreamWithCodec, e.useStreamBrokerRenderPreBufferClip, e.useStreamBrokerReportStreamSignal, e.useStreamBrokerRestartProfile, e.useStreamBrokerRetractCameraStream, e.useStreamBrokerSetDeviceAudioMute, e.useStreamBrokerSetPreBufferDuration, e.useStreamBrokerSetRtspEnabled, e.useStreamBrokerSubscribeAudioChunks, e.useStreamBrokerSubscribeFrames, e.useStreamBrokerUnassignProfile, e.useStreamBrokerUnsubscribeAudioChunks, e.useStreamBrokerUnsubscribeFrames, e.useStreamCatalogGetCatalog, e.useStreamParamsGetConfigSchema, e.useStreamParamsGetOptions, e.useStreamParamsGetStatus, e.useStreamParamsSetProfile, e.useStreamSignalsListSignals, e.useSwitchGetStatus, e.useSwitchSetState, a = e.useSystem, e.useSystem$1, e.useSystemDetectSiteLocation, e.useSystemFeatureFlags, e.useSystemForceRetentionCleanup, e.useSystemGetFailureContributions, e.useSystemGetLoadContributions, e.useSystemGetLoggingSettings, e.useSystemGetRequestCensus, e.useSystemGetRetentionConfig, e.useSystemGetSiteLocation, e.useSystemHealth, e.useSystemInfo, e.useSystemMutation, e.useSystemNetworkAddresses, e.useSystemQuery, e.useSystemSetLoggingSettings, e.useSystemSetRetentionConfig, e.useSystemSetSiteLocation, e.useTamperGetStatus, e.useTemperatureSensorGetStatus, e.useTerminalSessionAdoptLegacyMonitor, e.useTerminalSessionClose, e.useTerminalSessionCreateInstance, e.useTerminalSessionDeleteInstance, e.useTerminalSessionListInstances, e.useTerminalSessionListLegacyCameras, e.useTerminalSessionListProfiles, e.useTerminalSessionListSessions, e.useTerminalSessionOpenSession, e.useTerminalSessionPullOutput, e.useTerminalSessionResize, e.useTerminalSessionSetInstanceEnabled, e.useTerminalSessionUpdateInstance, e.useTerminalSessionWriteInput, e.useThemeMode, e.useToastOnToast, e.useTurnProviderGetTurnServers, e.useUpdateGetStatus, e.useUpdateInstallUpdate, e.useUrlQueryParam, e.useUserManagementConfirmTotp, e.useUserManagementCreateApiKey, e.useUserManagementCreateScopedToken, e.useUserManagementCreateUser, e.useUserManagementDeleteUser, e.useUserManagementDisableTotp, e.useUserManagementGetTotpStatus, e.useUserManagementListApiKeys, e.useUserManagementListOauthSessions, e.useUserManagementListScopedTokens, e.useUserManagementListUsers, e.useUserManagementOauthExchangeCode, e.useUserManagementOauthIssueCode, e.useUserManagementOauthRefresh, e.useUserManagementOauthVerifyAccessToken, e.useUserManagementResetPassword, e.useUserManagementRevokeApiKey, e.useUserManagementRevokeOauthSession, e.useUserManagementRevokeScopedToken, e.useUserManagementSetUserScopes, e.useUserManagementSetupTotp, e.useUserManagementUpdateUser, e.useUserManagementValidateApiKey, e.useUserManagementValidateCredentials, e.useUserManagementValidateScopedToken, e.useUserManagementVerifyTotp, e.useVacuumControlGetStatus, e.useVacuumControlLocate, e.useVacuumControlPause, e.useVacuumControlReturnToBase, e.useVacuumControlSetFanSpeed, e.useVacuumControlStart, e.useVacuumControlStop, e.useValveClose, e.useValveGetStatus, e.useValveOpen, e.useValveSetPosition, e.useValveStop, e.useVibrationGetStatus, e.useVideoclipsDialClipStream, e.useVideoclipsGetClipPlayback, e.useVideoclipsGetPlaybackOptions, e.useVideoclipsListClips, e.useVideoclipsListSources, e.useVideoclipsOfferClipBytes, e.useVideoclipsReadClipBytes, e.useVodPlayback, e.useWaterHeaterGetStatus, e.useWaterHeaterSetAway, e.useWaterHeaterSetOperationMode, e.useWaterHeaterSetTargetTemp, e.useWeatherGetStatus, e.useWebrtcSessionAddIceCandidate, e.useWebrtcSessionApplyDownlinkProbe, e.useWebrtcSessionCloseSession, e.useWebrtcSessionCreateSession, e.useWebrtcSessionGetIceCandidates, e.useWebrtcSessionGetSessionDebug, e.useWebrtcSessionGetSessionState, e.useWebrtcSessionHandleAnswer, e.useWebrtcSessionHandleOffer, e.useWebrtcSessionHasAdaptiveBitrate, e.useWebrtcSessionListStreams, e.useWidget, e.useWidgetMetadata, e.useWidgetRegistry, e.useZoneAnalyticsGetCameraHistory, e.useZoneAnalyticsGetCurrentSnapshot, e.useZoneAnalyticsGetCurrentSnapshotBatch, e.useZoneAnalyticsGetUnzonedHistory, e.useZoneAnalyticsGetZoneHistory, e.useZoneEditing, e.useZoneRulesListRules, e.useZoneRulesSetRules, e.useZonesAddZone, e.useZonesListZones, e.useZonesRemoveZone, e.useZonesUpdateZone, e.vacuumStateMeta, e.validateScopes, e.valveStateMeta, e.variantLabel, e.variantLabel$1, e.waterHeaterPhase, e.waterHeaterTint, e.weatherConditionMeta, e.weatherTint, e.withResolvedParentDetail, e.writeStoredGroupBy, e.default;
20
+ }, s = i.share["default:@camstack/ui-library"];
21
+ s === void 0 ? n.then(() => {
22
+ if (s = i.share["default:@camstack/ui-library"], s === void 0) throw Error("[Module Federation] Shared module @camstack/ui-library was imported before federation bootstrap finished.");
23
+ o(s);
24
+ }) : o(s);
25
+ //#endregion
26
+ export { a as t };
@@ -3,7 +3,7 @@ Object.defineProperties(exports, {
3
3
  [Symbol.toStringTag]: { value: "Module" }
4
4
  });
5
5
  const require_chunk = require("../chunk-Cek0wNdY.js");
6
- const require_dist = require("../dist-CrTS14S8.js");
6
+ const require_hub_browser_origin = require("../hub-browser-origin-Cd5W-H0b.js");
7
7
  let stream = require("stream");
8
8
  stream = require_chunk.__toESM(stream, 1);
9
9
  let http = require("http");
@@ -12165,9 +12165,9 @@ var PREF_COLUMNS = [
12165
12165
  notNull: true
12166
12166
  }
12167
12167
  ];
12168
- var StoredPreferenceSchema = require_dist.object({
12169
- secondFactorEnabled: require_dist.boolean(),
12170
- updatedAt: require_dist.number()
12168
+ var StoredPreferenceSchema = require_hub_browser_origin.object({
12169
+ secondFactorEnabled: require_hub_browser_origin.boolean(),
12170
+ updatedAt: require_hub_browser_origin.number()
12171
12171
  });
12172
12172
  var COLUMNS = [
12173
12173
  {
@@ -12472,8 +12472,8 @@ function buildAuthWebauthnLoginMethods(rpId, origin) {
12472
12472
  * the stored publicKey + counter, bumps the counter.
12473
12473
  *
12474
12474
  * Relying-Party id (RP ID) MUST match the hub's domain (or a parent
12475
- * of it). Defaults to `process.env.CAMSTACK_HUB_PUBLIC_URL`'s hostname;
12476
- * operator overrides via settings.
12475
+ * of it). Defaults to the hostname of the hub's browser-facing address
12476
+ * from the Network page (`hubBrowserOrigin`); operator overrides via settings.
12477
12477
  *
12478
12478
  * Open follow-ups:
12479
12479
  * - Login flow integration (today this addon only provides the
@@ -12482,18 +12482,18 @@ function buildAuthWebauthnLoginMethods(rpId, origin) {
12482
12482
  * - Multi-device discovery (passkey-discovery flow w/ resident keys).
12483
12483
  */
12484
12484
  /** Minimal shape of a `network-access` endpoint entry we consume. */
12485
- var EndpointSchema = require_dist.object({
12486
- hostname: require_dist.string(),
12487
- url: require_dist.string()
12485
+ var EndpointSchema = require_hub_browser_origin.object({
12486
+ hostname: require_hub_browser_origin.string(),
12487
+ url: require_hub_browser_origin.string()
12488
12488
  });
12489
- var EndpointsSchema = require_dist.array(EndpointSchema);
12489
+ var EndpointsSchema = require_hub_browser_origin.array(EndpointSchema);
12490
12490
  var DEFAULT_CONFIG = {
12491
12491
  rpID: "",
12492
12492
  rpName: "CamStack",
12493
12493
  origin: "",
12494
12494
  challengeTtlSec: 300
12495
12495
  };
12496
- var AuthWebauthnAddon = class extends require_dist.BaseAddon {
12496
+ var AuthWebauthnAddon = class extends require_hub_browser_origin.BaseAddon {
12497
12497
  store = null;
12498
12498
  pending = /* @__PURE__ */ new Map();
12499
12499
  constructor() {
@@ -12517,22 +12517,22 @@ var AuthWebauthnAddon = class extends require_dist.BaseAddon {
12517
12517
  setSecondFactorPreference: async ({ userId, enabled }) => this.setSecondFactorPreference(userId, enabled)
12518
12518
  };
12519
12519
  const widgetsProvider = { listWidgets: async () => authWebauthnWidgets };
12520
- const loginMethodProvider = { getLoginMethods: async () => buildAuthWebauthnLoginMethods(this.resolveRpID(), this.resolveOrigin() ?? null) };
12520
+ const loginMethodProvider = { getLoginMethods: async () => buildAuthWebauthnLoginMethods(await this.resolveRpID(), await this.resolveOrigin()) };
12521
12521
  this.ctx.logger.info("WebAuthn passkey provider initialized", { meta: {
12522
- rpID: this.resolveRpID(),
12522
+ rpID: this.config.rpID?.trim() || "(derived from Network)",
12523
12523
  rpName: this.config.rpName
12524
12524
  } });
12525
12525
  return [
12526
12526
  {
12527
- capability: require_dist.userPasskeysCapability,
12527
+ capability: require_hub_browser_origin.userPasskeysCapability,
12528
12528
  provider
12529
12529
  },
12530
12530
  {
12531
- capability: require_dist.addonWidgetsSourceCapability,
12531
+ capability: require_hub_browser_origin.addonWidgetsSourceCapability,
12532
12532
  provider: widgetsProvider
12533
12533
  },
12534
12534
  {
12535
- capability: require_dist.loginMethodCapability,
12535
+ capability: require_hub_browser_origin.loginMethodCapability,
12536
12536
  provider: loginMethodProvider
12537
12537
  }
12538
12538
  ];
@@ -12555,14 +12555,14 @@ var AuthWebauthnAddon = class extends require_dist.BaseAddon {
12555
12555
  type: "text",
12556
12556
  key: "rpID",
12557
12557
  label: "RP ID",
12558
- description: "Hub domain (NO scheme, NO port). Empty = derive from CAMSTACK_HUB_PUBLIC_URL. localhost works for dev.",
12558
+ description: "Hub domain (NO scheme, NO port). Empty = derive from the hub address in Network (public tunnel, then mesh, then LAN). Pin it: changing RP ID invalidates enrolled passkeys. localhost works for dev.",
12559
12559
  default: ""
12560
12560
  }),
12561
12561
  this.field({
12562
12562
  type: "text",
12563
12563
  key: "origin",
12564
12564
  label: "Origin",
12565
- description: "Full origin scheme+host+port allowed for assertions. Empty = derive from CAMSTACK_HUB_PUBLIC_URL.",
12565
+ description: "Full origin scheme+host+port allowed for assertions. Empty = the hub address in Network.",
12566
12566
  default: ""
12567
12567
  }),
12568
12568
  this.field({
@@ -12617,18 +12617,26 @@ var AuthWebauthnAddon = class extends require_dist.BaseAddon {
12617
12617
  return null;
12618
12618
  }
12619
12619
  }
12620
- resolveRpID() {
12620
+ /**
12621
+ * The hub's browser-facing address when the operator pinned neither RP ID
12622
+ * nor origin: the Network page's (`hubBrowserOrigin`), else the development
12623
+ * default. An RP ID derived from it changes when the hub's address does —
12624
+ * which is why the settings banner asks the operator to PIN one.
12625
+ */
12626
+ async derivedOrigin() {
12627
+ return await require_hub_browser_origin.hubBrowserOrigin(this.ctx.api.localNetwork, this.ctx.logger) ?? "http://localhost:4443";
12628
+ }
12629
+ async resolveRpID() {
12621
12630
  if (this.config.rpID && this.config.rpID.trim()) return this.config.rpID.trim();
12622
- const origin = process.env["CAMSTACK_HUB_PUBLIC_URL"] || "http://localhost:4443";
12623
12631
  try {
12624
- return new URL(origin).hostname;
12632
+ return new URL(await this.derivedOrigin()).hostname;
12625
12633
  } catch {
12626
12634
  return "localhost";
12627
12635
  }
12628
12636
  }
12629
- resolveOrigin() {
12637
+ async resolveOrigin() {
12630
12638
  if (this.config.origin && this.config.origin.trim()) return this.config.origin.trim().replace(/\/+$/, "");
12631
- return (process.env["CAMSTACK_HUB_PUBLIC_URL"] || "http://localhost:4443").replace(/\/+$/, "");
12639
+ return this.derivedOrigin();
12632
12640
  }
12633
12641
  challengeTtlMs() {
12634
12642
  return (this.config.challengeTtlSec || DEFAULT_CONFIG.challengeTtlSec) * 1e3;
@@ -12649,7 +12657,7 @@ var AuthWebauthnAddon = class extends require_dist.BaseAddon {
12649
12657
  this.pruneExpiredChallenges();
12650
12658
  const existing = await this.store.findByUserId(userId);
12651
12659
  const options = await generateRegistrationOptions({
12652
- rpID: this.resolveRpID(),
12660
+ rpID: await this.resolveRpID(),
12653
12661
  rpName: this.config.rpName || DEFAULT_CONFIG.rpName,
12654
12662
  userID: new TextEncoder().encode(userId),
12655
12663
  userName: username,
@@ -12682,8 +12690,8 @@ var AuthWebauthnAddon = class extends require_dist.BaseAddon {
12682
12690
  const verification = await verifyRegistrationResponse({
12683
12691
  response,
12684
12692
  expectedChallenge: challenge,
12685
- expectedRPID: this.resolveRpID(),
12686
- expectedOrigin: this.resolveOrigin()
12693
+ expectedRPID: await this.resolveRpID(),
12694
+ expectedOrigin: await this.resolveOrigin()
12687
12695
  });
12688
12696
  if (!verification.verified || !verification.registrationInfo) throw new Error("finishRegistration: attestation verification failed");
12689
12697
  const credential = verification.registrationInfo.credential;
@@ -12709,7 +12717,7 @@ var AuthWebauthnAddon = class extends require_dist.BaseAddon {
12709
12717
  this.pruneExpiredChallenges();
12710
12718
  const userPasskeys = userId ? await this.store.findByUserId(userId) : [];
12711
12719
  const options = await generateAuthenticationOptions({
12712
- rpID: this.resolveRpID(),
12720
+ rpID: await this.resolveRpID(),
12713
12721
  allowCredentials: userPasskeys.map((p) => ({
12714
12722
  id: p.credentialId,
12715
12723
  transports: p.transports
@@ -12741,8 +12749,8 @@ var AuthWebauthnAddon = class extends require_dist.BaseAddon {
12741
12749
  verification = await verifyAuthenticationResponse({
12742
12750
  response,
12743
12751
  expectedChallenge: challenge,
12744
- expectedRPID: this.resolveRpID(),
12745
- expectedOrigin: this.resolveOrigin(),
12752
+ expectedRPID: await this.resolveRpID(),
12753
+ expectedOrigin: await this.resolveOrigin(),
12746
12754
  credential: {
12747
12755
  id: stored.credentialId,
12748
12756
  publicKey: this.base64urlDecode(stored.publicKey),
@@ -12780,7 +12788,7 @@ var AuthWebauthnAddon = class extends require_dist.BaseAddon {
12780
12788
  if (!this.store) throw new Error("passkey store unavailable");
12781
12789
  this.pruneExpiredChallenges();
12782
12790
  const options = await generateAuthenticationOptions({
12783
- rpID: this.resolveRpID(),
12791
+ rpID: await this.resolveRpID(),
12784
12792
  allowCredentials: [],
12785
12793
  userVerification: "required"
12786
12794
  });
@@ -12835,8 +12843,8 @@ var AuthWebauthnAddon = class extends require_dist.BaseAddon {
12835
12843
  verification = await verifyAuthenticationResponse({
12836
12844
  response,
12837
12845
  expectedChallenge: challenge,
12838
- expectedRPID: this.resolveRpID(),
12839
- expectedOrigin: this.resolveOrigin(),
12846
+ expectedRPID: await this.resolveRpID(),
12847
+ expectedOrigin: await this.resolveOrigin(),
12840
12848
  requireUserVerification: true,
12841
12849
  credential: {
12842
12850
  id: stored.credentialId,