@camstack/ui-library 0.1.47 → 0.1.49
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/composites/index.d.ts +2 -0
- package/dist/composites/scope-picker.d.ts +3 -3
- package/dist/composites/stream-broker-selector.d.ts +10 -0
- package/dist/generated/system-hooks.d.ts +78 -0
- package/dist/index.cjs +395 -45
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +356 -46
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.cjs
CHANGED
|
@@ -15767,6 +15767,10 @@ var useBatteryGetStatus = trpc.battery.getStatus.useQuery;
|
|
|
15767
15767
|
var useBrightnessSetBrightness = trpc.brightness.setBrightness.useMutation;
|
|
15768
15768
|
/** Generated alias around `trpc.brightness.getStatus.useQuery`. */
|
|
15769
15769
|
var useBrightnessGetStatus = trpc.brightness.getStatus.useQuery;
|
|
15770
|
+
/** Generated alias around `trpc.cameraCredentials.getCredentials.useQuery`. */
|
|
15771
|
+
var useCameraCredentialsGetCredentials = trpc.cameraCredentials.getCredentials.useQuery;
|
|
15772
|
+
/** Generated alias around `trpc.cameraCredentials.getStatus.useQuery`. */
|
|
15773
|
+
var useCameraCredentialsGetStatus = trpc.cameraCredentials.getStatus.useQuery;
|
|
15770
15774
|
/** Generated alias around `trpc.cameraStreams.getCameraStreams.useQuery`. */
|
|
15771
15775
|
var useCameraStreamsGetCameraStreams = trpc.cameraStreams.getCameraStreams.useQuery;
|
|
15772
15776
|
/** Generated alias around `trpc.cameraStreams.getBrokerStreams.useQuery`. */
|
|
@@ -15811,6 +15815,22 @@ var useDeviceDiscoveryAdoptDevice = trpc.deviceDiscovery.adoptDevice.useMutation
|
|
|
15811
15815
|
var useDeviceDiscoveryReleaseDevice = trpc.deviceDiscovery.releaseDevice.useMutation;
|
|
15812
15816
|
/** Generated alias around `trpc.deviceDiscovery.getStatus.useQuery`. */
|
|
15813
15817
|
var useDeviceDiscoveryGetStatus = trpc.deviceDiscovery.getStatus.useQuery;
|
|
15818
|
+
/** Generated alias around `trpc.deviceExport.getStatus.useQuery`. */
|
|
15819
|
+
var useDeviceExportGetStatus = trpc.deviceExport.getStatus.useQuery;
|
|
15820
|
+
/** Generated alias around `trpc.deviceExport.listSupportedDeviceKinds.useQuery`. */
|
|
15821
|
+
var useDeviceExportListSupportedDeviceKinds = trpc.deviceExport.listSupportedDeviceKinds.useQuery;
|
|
15822
|
+
/** Generated alias around `trpc.deviceExport.listExposedDevices.useQuery`. */
|
|
15823
|
+
var useDeviceExportListExposedDevices = trpc.deviceExport.listExposedDevices.useQuery;
|
|
15824
|
+
/** Generated alias around `trpc.deviceExport.exposeDevice.useMutation`. */
|
|
15825
|
+
var useDeviceExportExposeDevice = trpc.deviceExport.exposeDevice.useMutation;
|
|
15826
|
+
/** Generated alias around `trpc.deviceExport.unexposeDevice.useMutation`. */
|
|
15827
|
+
var useDeviceExportUnexposeDevice = trpc.deviceExport.unexposeDevice.useMutation;
|
|
15828
|
+
/** Generated alias around `trpc.deviceExport.getDeviceSettingsContribution.useQuery`. */
|
|
15829
|
+
var useDeviceExportGetDeviceSettingsContribution = trpc.deviceExport.getDeviceSettingsContribution.useQuery;
|
|
15830
|
+
/** Generated alias around `trpc.deviceExport.getDeviceLiveContribution.useQuery`. */
|
|
15831
|
+
var useDeviceExportGetDeviceLiveContribution = trpc.deviceExport.getDeviceLiveContribution.useQuery;
|
|
15832
|
+
/** Generated alias around `trpc.deviceExport.applyDeviceSettingsPatch.useMutation`. */
|
|
15833
|
+
var useDeviceExportApplyDeviceSettingsPatch = trpc.deviceExport.applyDeviceSettingsPatch.useMutation;
|
|
15814
15834
|
/** Generated alias around `trpc.deviceManager.allocateDeviceId.useMutation`. */
|
|
15815
15835
|
var useDeviceManagerAllocateDeviceId = trpc.deviceManager.allocateDeviceId.useMutation;
|
|
15816
15836
|
/** Generated alias around `trpc.deviceManager.registerDevice.useMutation`. */
|
|
@@ -15941,6 +15961,8 @@ var useDeviceStateGetCapSlice = trpc.deviceState.getCapSlice.useQuery;
|
|
|
15941
15961
|
var useDeviceStateGetAllSnapshots = trpc.deviceState.getAllSnapshots.useQuery;
|
|
15942
15962
|
/** Generated alias around `trpc.deviceState.setCapSlice.useMutation`. */
|
|
15943
15963
|
var useDeviceStateSetCapSlice = trpc.deviceState.setCapSlice.useMutation;
|
|
15964
|
+
/** Generated alias around `trpc.deviceStatus.getStatus.useQuery`. */
|
|
15965
|
+
var useDeviceStatusGetStatus = trpc.deviceStatus.getStatus.useQuery;
|
|
15944
15966
|
/** Generated alias around `trpc.doorbell.getStatus.useQuery`. */
|
|
15945
15967
|
var useDoorbellGetStatus = trpc.doorbell.getStatus.useQuery;
|
|
15946
15968
|
/** Generated alias around `trpc.events.getEvents.useQuery`. */
|
|
@@ -15949,6 +15971,8 @@ var useEventsGetEvents = trpc.events.getEvents.useQuery;
|
|
|
15949
15971
|
var useEventsGetEventThumbnail = trpc.events.getEventThumbnail.useQuery;
|
|
15950
15972
|
/** Generated alias around `trpc.events.getEventClipUrl.useQuery`. */
|
|
15951
15973
|
var useEventsGetEventClipUrl = trpc.events.getEventClipUrl.useQuery;
|
|
15974
|
+
/** Generated alias around `trpc.featureProbe.getStatus.useQuery`. */
|
|
15975
|
+
var useFeatureProbeGetStatus = trpc.featureProbe.getStatus.useQuery;
|
|
15952
15976
|
/** Generated alias around `trpc.integrations.list.useQuery`. */
|
|
15953
15977
|
var useIntegrationsList = trpc.integrations.list.useQuery;
|
|
15954
15978
|
/** Generated alias around `trpc.integrations.get.useQuery`. */
|
|
@@ -15975,6 +15999,12 @@ var useIntercomStartSession = trpc.intercom.startSession.useMutation;
|
|
|
15975
15999
|
var useIntercomHandleAnswer = trpc.intercom.handleAnswer.useMutation;
|
|
15976
16000
|
/** Generated alias around `trpc.intercom.stopSession.useMutation`. */
|
|
15977
16001
|
var useIntercomStopSession = trpc.intercom.stopSession.useMutation;
|
|
16002
|
+
/** Generated alias around `trpc.intercom.startTalkSession.useMutation`. */
|
|
16003
|
+
var useIntercomStartTalkSession = trpc.intercom.startTalkSession.useMutation;
|
|
16004
|
+
/** Generated alias around `trpc.intercom.pushTalkPcm.useMutation`. */
|
|
16005
|
+
var useIntercomPushTalkPcm = trpc.intercom.pushTalkPcm.useMutation;
|
|
16006
|
+
/** Generated alias around `trpc.intercom.endTalkSession.useMutation`. */
|
|
16007
|
+
var useIntercomEndTalkSession = trpc.intercom.endTalkSession.useMutation;
|
|
15978
16008
|
/** Generated alias around `trpc.intercom.getStatus.useQuery`. */
|
|
15979
16009
|
var useIntercomGetStatus = trpc.intercom.getStatus.useQuery;
|
|
15980
16010
|
/** Generated alias around `trpc.localNetwork.list.useQuery`. */
|
|
@@ -15989,6 +16019,18 @@ var useLocalNetworkGetAllowedAddresses = trpc.localNetwork.getAllowedAddresses.u
|
|
|
15989
16019
|
var useLocalNetworkSetAllowedAddresses = trpc.localNetwork.setAllowedAddresses.useMutation;
|
|
15990
16020
|
/** Generated alias around `trpc.localNetwork.resetAllowlistToBestMatch.useMutation`. */
|
|
15991
16021
|
var useLocalNetworkResetAllowlistToBestMatch = trpc.localNetwork.resetAllowlistToBestMatch.useMutation;
|
|
16022
|
+
/** Generated alias around `trpc.meshNetwork.getStatus.useQuery`. */
|
|
16023
|
+
var useMeshNetworkGetStatus = trpc.meshNetwork.getStatus.useQuery;
|
|
16024
|
+
/** Generated alias around `trpc.meshNetwork.join.useMutation`. */
|
|
16025
|
+
var useMeshNetworkJoin = trpc.meshNetwork.join.useMutation;
|
|
16026
|
+
/** Generated alias around `trpc.meshNetwork.startLogin.useMutation`. */
|
|
16027
|
+
var useMeshNetworkStartLogin = trpc.meshNetwork.startLogin.useMutation;
|
|
16028
|
+
/** Generated alias around `trpc.meshNetwork.leave.useMutation`. */
|
|
16029
|
+
var useMeshNetworkLeave = trpc.meshNetwork.leave.useMutation;
|
|
16030
|
+
/** Generated alias around `trpc.meshNetwork.listPeers.useQuery`. */
|
|
16031
|
+
var useMeshNetworkListPeers = trpc.meshNetwork.listPeers.useQuery;
|
|
16032
|
+
/** Generated alias around `trpc.meshNetwork.testConnection.useMutation`. */
|
|
16033
|
+
var useMeshNetworkTestConnection = trpc.meshNetwork.testConnection.useMutation;
|
|
15992
16034
|
/** Generated alias around `trpc.meshOrchestrator.listProviders.useQuery`. */
|
|
15993
16035
|
var useMeshOrchestratorListProviders = trpc.meshOrchestrator.listProviders.useQuery;
|
|
15994
16036
|
/** Generated alias around `trpc.meshOrchestrator.joinProvider.useMutation`. */
|
|
@@ -16037,6 +16079,22 @@ var useMotionDetectionApplyDeviceSettingsPatch = trpc.motionDetection.applyDevic
|
|
|
16037
16079
|
var useMotionTriggerSetMotionTrigger = trpc.motionTrigger.setMotionTrigger.useMutation;
|
|
16038
16080
|
/** Generated alias around `trpc.motionTrigger.getStatus.useQuery`. */
|
|
16039
16081
|
var useMotionTriggerGetStatus = trpc.motionTrigger.getStatus.useQuery;
|
|
16082
|
+
/** Generated alias around `trpc.mqttBroker.listBrokers.useQuery`. */
|
|
16083
|
+
var useMqttBrokerListBrokers = trpc.mqttBroker.listBrokers.useQuery;
|
|
16084
|
+
/** Generated alias around `trpc.mqttBroker.getBrokerConfig.useQuery`. */
|
|
16085
|
+
var useMqttBrokerGetBrokerConfig = trpc.mqttBroker.getBrokerConfig.useQuery;
|
|
16086
|
+
/** Generated alias around `trpc.mqttBroker.addBroker.useMutation`. */
|
|
16087
|
+
var useMqttBrokerAddBroker = trpc.mqttBroker.addBroker.useMutation;
|
|
16088
|
+
/** Generated alias around `trpc.mqttBroker.removeBroker.useMutation`. */
|
|
16089
|
+
var useMqttBrokerRemoveBroker = trpc.mqttBroker.removeBroker.useMutation;
|
|
16090
|
+
/** Generated alias around `trpc.mqttBroker.testConnection.useMutation`. */
|
|
16091
|
+
var useMqttBrokerTestConnection = trpc.mqttBroker.testConnection.useMutation;
|
|
16092
|
+
/** Generated alias around `trpc.mqttBroker.startEmbeddedBroker.useMutation`. */
|
|
16093
|
+
var useMqttBrokerStartEmbeddedBroker = trpc.mqttBroker.startEmbeddedBroker.useMutation;
|
|
16094
|
+
/** Generated alias around `trpc.mqttBroker.stopEmbeddedBroker.useMutation`. */
|
|
16095
|
+
var useMqttBrokerStopEmbeddedBroker = trpc.mqttBroker.stopEmbeddedBroker.useMutation;
|
|
16096
|
+
/** Generated alias around `trpc.mqttBroker.getStatus.useQuery`. */
|
|
16097
|
+
var useMqttBrokerGetStatus = trpc.mqttBroker.getStatus.useQuery;
|
|
16040
16098
|
/** Generated alias around `trpc.nativeObjectDetection.getStatus.useQuery`. */
|
|
16041
16099
|
var useNativeObjectDetectionGetStatus = trpc.nativeObjectDetection.getStatus.useQuery;
|
|
16042
16100
|
/** Generated alias around `trpc.networkQuality.getDeviceStats.useQuery`. */
|
|
@@ -16265,6 +16323,10 @@ var usePlatformProbeGetHardware = trpc.platformProbe.getHardware.useQuery;
|
|
|
16265
16323
|
var usePlatformProbeResolveInferenceConfig = trpc.platformProbe.resolveInferenceConfig.useQuery;
|
|
16266
16324
|
/** Generated alias around `trpc.platformProbe.resolveHwAccel.useQuery`. */
|
|
16267
16325
|
var usePlatformProbeResolveHwAccel = trpc.platformProbe.resolveHwAccel.useQuery;
|
|
16326
|
+
/** Generated alias around `trpc.platformProbe.getHardwareEncoders.useQuery`. */
|
|
16327
|
+
var usePlatformProbeGetHardwareEncoders = trpc.platformProbe.getHardwareEncoders.useQuery;
|
|
16328
|
+
/** Generated alias around `trpc.platformProbe.refreshHardwareEncoders.useMutation`. */
|
|
16329
|
+
var usePlatformProbeRefreshHardwareEncoders = trpc.platformProbe.refreshHardwareEncoders.useMutation;
|
|
16268
16330
|
/** Generated alias around `trpc.ptz.move.useMutation`. */
|
|
16269
16331
|
var usePtzMove = trpc.ptz.move.useMutation;
|
|
16270
16332
|
/** Generated alias around `trpc.ptz.continuousMove.useMutation`. */
|
|
@@ -16437,6 +16499,10 @@ var useStreamBrokerKillClient = trpc.streamBroker.killClient.useMutation;
|
|
|
16437
16499
|
var useStreamBrokerRestartProfile = trpc.streamBroker.restartProfile.useMutation;
|
|
16438
16500
|
/** Generated alias around `trpc.streamBroker.getStreamUrl.useQuery`. */
|
|
16439
16501
|
var useStreamBrokerGetStreamUrl = trpc.streamBroker.getStreamUrl.useQuery;
|
|
16502
|
+
/** Generated alias around `trpc.streamBroker.getStreamWithCodec.useMutation`. */
|
|
16503
|
+
var useStreamBrokerGetStreamWithCodec = trpc.streamBroker.getStreamWithCodec.useMutation;
|
|
16504
|
+
/** Generated alias around `trpc.streamBroker.releaseStreamWithCodec.useMutation`. */
|
|
16505
|
+
var useStreamBrokerReleaseStreamWithCodec = trpc.streamBroker.releaseStreamWithCodec.useMutation;
|
|
16440
16506
|
/** Generated alias around `trpc.streamBroker.getBroker.useQuery`. */
|
|
16441
16507
|
var useStreamBrokerGetBroker = trpc.streamBroker.getBroker.useQuery;
|
|
16442
16508
|
/** Generated alias around `trpc.streamBroker.setPreBufferDuration.useMutation`. */
|
|
@@ -16519,10 +16585,22 @@ var useUserManagementRevokeScopedToken = trpc.userManagement.revokeScopedToken.u
|
|
|
16519
16585
|
var useUserManagementValidateScopedToken = trpc.userManagement.validateScopedToken.useQuery;
|
|
16520
16586
|
/** Generated alias around `trpc.userManagement.listScopedTokens.useQuery`. */
|
|
16521
16587
|
var useUserManagementListScopedTokens = trpc.userManagement.listScopedTokens.useQuery;
|
|
16588
|
+
/** Generated alias around `trpc.userManagement.setupTotp.useMutation`. */
|
|
16589
|
+
var useUserManagementSetupTotp = trpc.userManagement.setupTotp.useMutation;
|
|
16590
|
+
/** Generated alias around `trpc.userManagement.confirmTotp.useMutation`. */
|
|
16591
|
+
var useUserManagementConfirmTotp = trpc.userManagement.confirmTotp.useMutation;
|
|
16592
|
+
/** Generated alias around `trpc.userManagement.disableTotp.useMutation`. */
|
|
16593
|
+
var useUserManagementDisableTotp = trpc.userManagement.disableTotp.useMutation;
|
|
16594
|
+
/** Generated alias around `trpc.userManagement.getTotpStatus.useQuery`. */
|
|
16595
|
+
var useUserManagementGetTotpStatus = trpc.userManagement.getTotpStatus.useQuery;
|
|
16596
|
+
/** Generated alias around `trpc.userManagement.verifyTotp.useMutation`. */
|
|
16597
|
+
var useUserManagementVerifyTotp = trpc.userManagement.verifyTotp.useMutation;
|
|
16522
16598
|
/** Generated alias around `trpc.webrtcSession.listStreams.useQuery`. */
|
|
16523
16599
|
var useWebrtcSessionListStreams = trpc.webrtcSession.listStreams.useQuery;
|
|
16524
16600
|
/** Generated alias around `trpc.webrtcSession.createSession.useMutation`. */
|
|
16525
16601
|
var useWebrtcSessionCreateSession = trpc.webrtcSession.createSession.useMutation;
|
|
16602
|
+
/** Generated alias around `trpc.webrtcSession.handleOffer.useMutation`. */
|
|
16603
|
+
var useWebrtcSessionHandleOffer = trpc.webrtcSession.handleOffer.useMutation;
|
|
16526
16604
|
/** Generated alias around `trpc.webrtcSession.handleAnswer.useMutation`. */
|
|
16527
16605
|
var useWebrtcSessionHandleAnswer = trpc.webrtcSession.handleAnswer.useMutation;
|
|
16528
16606
|
/** Generated alias around `trpc.webrtcSession.closeSession.useMutation`. */
|
|
@@ -19939,6 +20017,79 @@ function SnapshotPreview({ src, isLoading, onPlay, onRetry, extraOverlay, suppre
|
|
|
19939
20017
|
});
|
|
19940
20018
|
}
|
|
19941
20019
|
//#endregion
|
|
20020
|
+
//#region src/composites/stream-broker-selector.tsx
|
|
20021
|
+
/**
|
|
20022
|
+
* StreamBrokerSelector — reusable per-device "preferred stream" picker.
|
|
20023
|
+
*
|
|
20024
|
+
* Renders a single `<Select>` with options sourced from the device's
|
|
20025
|
+
* camera-streams cap (`getRtspEntries`). The first option is always
|
|
20026
|
+
* "Auto (best available)"; remaining options are one per enabled
|
|
20027
|
+
* RTSP restream entry, labelled by stream profile (`High` / `Mid` /
|
|
20028
|
+
* `Low` …) and tagged with codec + resolution when the broker reports
|
|
20029
|
+
* them.
|
|
20030
|
+
*
|
|
20031
|
+
* Used by addon-built panels that don't flow through the form-builder
|
|
20032
|
+
* `ConfigUISchema` aggregator (the cap-driven aggregator already
|
|
20033
|
+
* embeds an equivalent `select` field with server-resolved options —
|
|
20034
|
+
* the addons return the same list inline). Reach for this composite
|
|
20035
|
+
* when you need an out-of-form selector in a bespoke React tree (e.g.
|
|
20036
|
+
* an addon's wizard page, a debug panel, etc.).
|
|
20037
|
+
*
|
|
20038
|
+
* Loading / empty / error states all render a degraded select rather
|
|
20039
|
+
* than vanishing — the operator can always pick `Auto` even if the
|
|
20040
|
+
* device's broker is currently unreachable.
|
|
20041
|
+
*/
|
|
20042
|
+
var AUTO_OPTION = {
|
|
20043
|
+
value: "auto",
|
|
20044
|
+
label: "Auto (best available)"
|
|
20045
|
+
};
|
|
20046
|
+
/** Friendly profile label — "high" → "High", "mid" → "Mid", etc. */
|
|
20047
|
+
function profileLabel(streamId) {
|
|
20048
|
+
return streamId.charAt(0).toUpperCase() + streamId.slice(1);
|
|
20049
|
+
}
|
|
20050
|
+
function StreamBrokerSelector({ deviceId, value, onChange, disabled, label, className }) {
|
|
20051
|
+
const labelId = (0, react.useId)();
|
|
20052
|
+
const query = useCameraStreamsGetRtspEntries({ deviceId }, { refetchOnWindowFocus: false });
|
|
20053
|
+
const [options, setOptions] = (0, react.useState)([AUTO_OPTION]);
|
|
20054
|
+
(0, react.useEffect)(() => {
|
|
20055
|
+
if (!query.data) return;
|
|
20056
|
+
const prefix = `${deviceId}/`;
|
|
20057
|
+
const next = [AUTO_OPTION];
|
|
20058
|
+
for (const entry of query.data) {
|
|
20059
|
+
if (!entry.enabled) continue;
|
|
20060
|
+
const streamId = entry.brokerId.startsWith(prefix) ? entry.brokerId.slice(prefix.length) : entry.brokerId;
|
|
20061
|
+
next.push({
|
|
20062
|
+
value: streamId,
|
|
20063
|
+
label: profileLabel(streamId)
|
|
20064
|
+
});
|
|
20065
|
+
}
|
|
20066
|
+
setOptions(next);
|
|
20067
|
+
}, [query.data, deviceId]);
|
|
20068
|
+
const resolvedLabel = label ?? "Preferred stream";
|
|
20069
|
+
const helperText = query.isLoading ? "Loading available streams…" : query.isError ? "Could not load streams — only Auto available." : options.length === 1 ? "No enabled streams found — only Auto available." : null;
|
|
20070
|
+
return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
20071
|
+
className,
|
|
20072
|
+
children: [
|
|
20073
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("label", {
|
|
20074
|
+
id: labelId,
|
|
20075
|
+
className: "text-xs font-medium text-foreground-muted block mb-1",
|
|
20076
|
+
children: resolvedLabel
|
|
20077
|
+
}),
|
|
20078
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)(Select, {
|
|
20079
|
+
"aria-labelledby": labelId,
|
|
20080
|
+
options,
|
|
20081
|
+
value,
|
|
20082
|
+
disabled,
|
|
20083
|
+
onChange: (e) => onChange(e.target.value)
|
|
20084
|
+
}),
|
|
20085
|
+
helperText !== null && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("p", {
|
|
20086
|
+
className: "text-foreground-subtle text-[10px] mt-1",
|
|
20087
|
+
children: helperText
|
|
20088
|
+
})
|
|
20089
|
+
]
|
|
20090
|
+
});
|
|
20091
|
+
}
|
|
20092
|
+
//#endregion
|
|
19942
20093
|
//#region src/composites/audio-waveform.tsx
|
|
19943
20094
|
/**
|
|
19944
20095
|
* Canvas-based audio waveform visualization.
|
|
@@ -23013,23 +23164,20 @@ function KebabMenu({ items, header, triggerClassName, title = "More actions" })
|
|
|
23013
23164
|
* <ScopePicker> — operator-facing editor for a `TokenScope[]` value.
|
|
23014
23165
|
*
|
|
23015
23166
|
* Two consumers: the user-scope editor on `/system/users` (admin grants
|
|
23016
|
-
* a baseline scope set to a
|
|
23017
|
-
*
|
|
23018
|
-
*
|
|
23167
|
+
* a baseline scope set to a non-admin user) and the scoped-token create
|
|
23168
|
+
* modal on `/system/api-keys` (a caller carves out a subset of THEIR
|
|
23169
|
+
* scopes for a `cst_*` token).
|
|
23019
23170
|
*
|
|
23020
|
-
*
|
|
23021
|
-
* -
|
|
23022
|
-
*
|
|
23023
|
-
* -
|
|
23024
|
-
*
|
|
23025
|
-
*
|
|
23026
|
-
*
|
|
23027
|
-
* rejected by the server-side Zod schema (`access.min(1)`).
|
|
23171
|
+
* Row shapes per scope `type`:
|
|
23172
|
+
* - category → target: 'device' | 'system'
|
|
23173
|
+
* - capability → target: cap name from `KNOWN_CAP_NAMES`
|
|
23174
|
+
* - addon → target: addon id from `useAddonsList`
|
|
23175
|
+
* - device → targets: readonly deviceId[] (multi-select)
|
|
23176
|
+
*
|
|
23177
|
+
* `access` is always 3 independent checkboxes (view / create / delete).
|
|
23028
23178
|
*
|
|
23029
23179
|
* `clampToParent` narrows the target dropdown + access checkboxes to
|
|
23030
|
-
* what the CALLER possesses
|
|
23031
|
-
* the UI, mirroring the structural check in `createScopedToken`.
|
|
23032
|
-
* Admins should pass `null` to allow everything.
|
|
23180
|
+
* what the CALLER possesses. Admins pass `null` to allow everything.
|
|
23033
23181
|
*/
|
|
23034
23182
|
var ACCESS_OPTIONS = [
|
|
23035
23183
|
{
|
|
@@ -23051,6 +23199,8 @@ var ACCESS_OPTIONS = [
|
|
|
23051
23199
|
hint: "Destructive ops (delete/revoke/reset/…)"
|
|
23052
23200
|
}
|
|
23053
23201
|
];
|
|
23202
|
+
/** Static targets for the `category` scope type (auto-grow categories). */
|
|
23203
|
+
var CATEGORY_CHOICES = ["device", "system"];
|
|
23054
23204
|
function defaultRow() {
|
|
23055
23205
|
return {
|
|
23056
23206
|
type: "capability",
|
|
@@ -23058,11 +23208,36 @@ function defaultRow() {
|
|
|
23058
23208
|
access: ["view"]
|
|
23059
23209
|
};
|
|
23060
23210
|
}
|
|
23061
|
-
|
|
23062
|
-
|
|
23211
|
+
/**
|
|
23212
|
+
* Collect the union of device targets a parent grants. Used to clamp
|
|
23213
|
+
* the device picker so a child grant can't refer to a deviceId the
|
|
23214
|
+
* caller themselves doesn't have.
|
|
23215
|
+
*/
|
|
23216
|
+
function parentDeviceTargets(parent) {
|
|
23217
|
+
if (parent == null) return [];
|
|
23218
|
+
const out = /* @__PURE__ */ new Set();
|
|
23219
|
+
for (const s of parent) if (s.type === "device") for (const t of s.targets) out.add(t);
|
|
23220
|
+
return [...out];
|
|
23221
|
+
}
|
|
23222
|
+
function clampedSingleTargets(type, parent, addonChoices, capChoices) {
|
|
23223
|
+
let universe;
|
|
23224
|
+
switch (type) {
|
|
23225
|
+
case "addon":
|
|
23226
|
+
universe = addonChoices;
|
|
23227
|
+
break;
|
|
23228
|
+
case "capability":
|
|
23229
|
+
universe = capChoices;
|
|
23230
|
+
break;
|
|
23231
|
+
case "category":
|
|
23232
|
+
universe = CATEGORY_CHOICES.map((c) => ({
|
|
23233
|
+
value: c,
|
|
23234
|
+
label: c
|
|
23235
|
+
}));
|
|
23236
|
+
break;
|
|
23237
|
+
}
|
|
23063
23238
|
if (parent == null) return universe;
|
|
23064
|
-
const allowed = new Set(parent.filter((s) => s.type === type).map((s) => s.target));
|
|
23065
|
-
return universe.filter((t) => allowed.has(t));
|
|
23239
|
+
const allowed = new Set(parent.filter((s) => s.type !== "device" && s.type === type).map((s) => s.target));
|
|
23240
|
+
return universe.filter((t) => allowed.has(t.value));
|
|
23066
23241
|
}
|
|
23067
23242
|
function clampedAccessForRow(row, parent) {
|
|
23068
23243
|
if (parent == null) return [
|
|
@@ -23070,7 +23245,12 @@ function clampedAccessForRow(row, parent) {
|
|
|
23070
23245
|
"create",
|
|
23071
23246
|
"delete"
|
|
23072
23247
|
];
|
|
23073
|
-
const matches = parent.filter((s) =>
|
|
23248
|
+
const matches = parent.filter((s) => {
|
|
23249
|
+
if (s.type !== row.type) return false;
|
|
23250
|
+
if (s.type === "device" && row.type === "device") return s.targets.some((t) => row.targets.includes(t));
|
|
23251
|
+
if (s.type !== "device" && row.type !== "device") return s.target === row.target;
|
|
23252
|
+
return false;
|
|
23253
|
+
});
|
|
23074
23254
|
if (matches.length === 0) return [];
|
|
23075
23255
|
const out = /* @__PURE__ */ new Set();
|
|
23076
23256
|
for (const m of matches) for (const a of m.access) out.add(a);
|
|
@@ -23078,17 +23258,75 @@ function clampedAccessForRow(row, parent) {
|
|
|
23078
23258
|
}
|
|
23079
23259
|
function ScopePicker({ value, onChange, clampToParent, emptyHint }) {
|
|
23080
23260
|
const { data: addons } = useAddonsList();
|
|
23081
|
-
const
|
|
23082
|
-
const
|
|
23261
|
+
const { data: devices } = useDeviceManagerListAll({});
|
|
23262
|
+
const addonChoices = (0, react.useMemo)(() => (addons ?? []).map((a) => ({
|
|
23263
|
+
value: a.manifest.id,
|
|
23264
|
+
label: a.manifest.id
|
|
23265
|
+
})).sort((a, b) => a.label.localeCompare(b.label)), [addons]);
|
|
23266
|
+
const capChoices = (0, react.useMemo)(() => [..._camstack_types.KNOWN_CAP_NAMES].sort().map((c) => ({
|
|
23267
|
+
value: c,
|
|
23268
|
+
label: c
|
|
23269
|
+
})), []);
|
|
23270
|
+
const deviceChoices = (0, react.useMemo)(() => (devices ?? []).map((d) => ({
|
|
23271
|
+
value: String(d.id),
|
|
23272
|
+
label: `${d.name} (#${d.id} · ${d.addonId})`
|
|
23273
|
+
})).sort((a, b) => a.label.localeCompare(b.label)), [devices]);
|
|
23274
|
+
const parentDeviceClamp = (0, react.useMemo)(() => clampToParent == null ? null : parentDeviceTargets(clampToParent), [clampToParent]);
|
|
23275
|
+
/**
|
|
23276
|
+
* Build a fresh scope row when `type` changes. The discriminated union
|
|
23277
|
+
* forces us to re-construct the object per variant so the resulting
|
|
23278
|
+
* shape matches one of the four union members exactly.
|
|
23279
|
+
*/
|
|
23280
|
+
const rebuildForType = (next, access) => {
|
|
23281
|
+
const accessArr = [...access];
|
|
23282
|
+
switch (next) {
|
|
23283
|
+
case "category": return {
|
|
23284
|
+
type: "category",
|
|
23285
|
+
target: "device",
|
|
23286
|
+
access: accessArr
|
|
23287
|
+
};
|
|
23288
|
+
case "capability": return {
|
|
23289
|
+
type: "capability",
|
|
23290
|
+
target: "",
|
|
23291
|
+
access: accessArr
|
|
23292
|
+
};
|
|
23293
|
+
case "addon": return {
|
|
23294
|
+
type: "addon",
|
|
23295
|
+
target: "",
|
|
23296
|
+
access: accessArr
|
|
23297
|
+
};
|
|
23298
|
+
case "device": return {
|
|
23299
|
+
type: "device",
|
|
23300
|
+
targets: [],
|
|
23301
|
+
access: accessArr
|
|
23302
|
+
};
|
|
23303
|
+
}
|
|
23304
|
+
};
|
|
23083
23305
|
const update = (idx, patch) => {
|
|
23084
23306
|
onChange(value.map((s, i) => {
|
|
23085
23307
|
if (i !== idx) return s;
|
|
23086
|
-
|
|
23087
|
-
|
|
23088
|
-
|
|
23308
|
+
if (patch.type !== void 0 && patch.type !== s.type) return rebuildForType(patch.type, patch.access ?? s.access);
|
|
23309
|
+
const access = [...patch.access ?? s.access];
|
|
23310
|
+
if (s.type === "device") return {
|
|
23311
|
+
type: "device",
|
|
23312
|
+
targets: [...patch.targets ?? s.targets],
|
|
23313
|
+
access
|
|
23314
|
+
};
|
|
23315
|
+
if (s.type === "category") return {
|
|
23316
|
+
type: "category",
|
|
23317
|
+
target: patch.target ?? s.target,
|
|
23318
|
+
access
|
|
23319
|
+
};
|
|
23320
|
+
if (s.type === "capability") return {
|
|
23321
|
+
type: "capability",
|
|
23322
|
+
target: patch.target ?? s.target,
|
|
23323
|
+
access
|
|
23324
|
+
};
|
|
23325
|
+
return {
|
|
23326
|
+
type: "addon",
|
|
23327
|
+
target: patch.target ?? s.target,
|
|
23328
|
+
access
|
|
23089
23329
|
};
|
|
23090
|
-
if (patch.type !== void 0 && patch.type !== s.type) next.target = "";
|
|
23091
|
-
return next;
|
|
23092
23330
|
}));
|
|
23093
23331
|
};
|
|
23094
23332
|
const removeAt = (idx) => {
|
|
@@ -23105,24 +23343,39 @@ function ScopePicker({ value, onChange, clampToParent, emptyHint }) {
|
|
|
23105
23343
|
children: emptyHint
|
|
23106
23344
|
}),
|
|
23107
23345
|
value.map((row, idx) => {
|
|
23108
|
-
const targetChoices = clampedTargetsForType(row.type, clampToParent, addonChoices, capChoices);
|
|
23109
23346
|
const allowedAccess = clampedAccessForRow(row, clampToParent);
|
|
23110
23347
|
return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
23111
|
-
className: "flex flex-wrap items-
|
|
23348
|
+
className: "flex flex-wrap items-start gap-1.5 rounded border border-border bg-surface px-2 py-1.5",
|
|
23112
23349
|
children: [
|
|
23113
23350
|
/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("select", {
|
|
23114
23351
|
value: row.type,
|
|
23115
23352
|
onChange: (e) => update(idx, { type: e.target.value }),
|
|
23116
23353
|
className: "rounded border border-border bg-background px-2 py-1 text-[11px] focus:outline-none focus:ring-1 focus:ring-primary",
|
|
23117
|
-
children: [
|
|
23118
|
-
|
|
23119
|
-
|
|
23120
|
-
|
|
23121
|
-
|
|
23122
|
-
|
|
23123
|
-
|
|
23354
|
+
children: [
|
|
23355
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("option", {
|
|
23356
|
+
value: "category",
|
|
23357
|
+
children: "category"
|
|
23358
|
+
}),
|
|
23359
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("option", {
|
|
23360
|
+
value: "capability",
|
|
23361
|
+
children: "capability"
|
|
23362
|
+
}),
|
|
23363
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("option", {
|
|
23364
|
+
value: "addon",
|
|
23365
|
+
children: "addon"
|
|
23366
|
+
}),
|
|
23367
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("option", {
|
|
23368
|
+
value: "device",
|
|
23369
|
+
children: "device"
|
|
23370
|
+
})
|
|
23371
|
+
]
|
|
23124
23372
|
}),
|
|
23125
|
-
/* @__PURE__ */ (0, react_jsx_runtime.
|
|
23373
|
+
row.type === "device" ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)(DeviceTargetPicker, {
|
|
23374
|
+
value: row.targets,
|
|
23375
|
+
choices: deviceChoices,
|
|
23376
|
+
clampToParent: parentDeviceClamp,
|
|
23377
|
+
onChange: (targets) => update(idx, { targets })
|
|
23378
|
+
}) : /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("select", {
|
|
23126
23379
|
value: row.target,
|
|
23127
23380
|
onChange: (e) => update(idx, { target: e.target.value }),
|
|
23128
23381
|
className: "flex-1 min-w-[160px] rounded border border-border bg-background px-2 py-1 text-[11px] font-mono focus:outline-none focus:ring-1 focus:ring-primary",
|
|
@@ -23133,10 +23386,10 @@ function ScopePicker({ value, onChange, clampToParent, emptyHint }) {
|
|
|
23133
23386
|
row.type,
|
|
23134
23387
|
" —"
|
|
23135
23388
|
]
|
|
23136
|
-
}),
|
|
23137
|
-
value: t,
|
|
23138
|
-
children: t
|
|
23139
|
-
}, t))]
|
|
23389
|
+
}), clampedSingleTargets(row.type, clampToParent, addonChoices, capChoices).map((t) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)("option", {
|
|
23390
|
+
value: t.value,
|
|
23391
|
+
children: t.label
|
|
23392
|
+
}, t.value))]
|
|
23140
23393
|
}),
|
|
23141
23394
|
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
23142
23395
|
className: "flex items-center gap-1",
|
|
@@ -23184,16 +23437,73 @@ function ScopePicker({ value, onChange, clampToParent, emptyHint }) {
|
|
|
23184
23437
|
]
|
|
23185
23438
|
});
|
|
23186
23439
|
}
|
|
23440
|
+
function DeviceTargetPicker({ value, choices, clampToParent, onChange }) {
|
|
23441
|
+
const [pendingAdd, setPendingAdd] = (0, react.useState)("");
|
|
23442
|
+
const visibleChoices = (0, react.useMemo)(() => {
|
|
23443
|
+
const filtered = clampToParent == null ? choices : choices.filter((c) => clampToParent.includes(c.value));
|
|
23444
|
+
const taken = new Set(value);
|
|
23445
|
+
return filtered.filter((c) => !taken.has(c.value));
|
|
23446
|
+
}, [
|
|
23447
|
+
choices,
|
|
23448
|
+
clampToParent,
|
|
23449
|
+
value
|
|
23450
|
+
]);
|
|
23451
|
+
const labelFor = (id) => choices.find((c) => c.value === id)?.label ?? `#${id}`;
|
|
23452
|
+
const handleAdd = (id) => {
|
|
23453
|
+
if (!id) return;
|
|
23454
|
+
onChange([...value, id]);
|
|
23455
|
+
setPendingAdd("");
|
|
23456
|
+
};
|
|
23457
|
+
const handleRemove = (id) => {
|
|
23458
|
+
onChange(value.filter((v) => v !== id));
|
|
23459
|
+
};
|
|
23460
|
+
return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
23461
|
+
className: "flex-1 min-w-[160px] flex flex-wrap items-center gap-1",
|
|
23462
|
+
children: [
|
|
23463
|
+
value.length === 0 && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
|
|
23464
|
+
className: "text-[10px] text-foreground-subtle italic px-1",
|
|
23465
|
+
children: "no devices selected"
|
|
23466
|
+
}),
|
|
23467
|
+
value.map((id) => /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("span", {
|
|
23468
|
+
className: "inline-flex items-center gap-1 rounded bg-primary/10 px-1.5 py-0.5 text-[10px] font-mono text-primary",
|
|
23469
|
+
children: [labelFor(id), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("button", {
|
|
23470
|
+
type: "button",
|
|
23471
|
+
onClick: () => handleRemove(id),
|
|
23472
|
+
className: "hover:text-danger transition-colors",
|
|
23473
|
+
title: "Remove device",
|
|
23474
|
+
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(X, { className: "h-2.5 w-2.5" })
|
|
23475
|
+
})]
|
|
23476
|
+
}, id)),
|
|
23477
|
+
visibleChoices.length > 0 && /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("select", {
|
|
23478
|
+
value: pendingAdd,
|
|
23479
|
+
onChange: (e) => handleAdd(e.target.value),
|
|
23480
|
+
className: "rounded border border-border bg-background px-1.5 py-0.5 text-[10px] focus:outline-none focus:ring-1 focus:ring-primary",
|
|
23481
|
+
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("option", {
|
|
23482
|
+
value: "",
|
|
23483
|
+
children: "+ add device…"
|
|
23484
|
+
}), visibleChoices.map((c) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)("option", {
|
|
23485
|
+
value: c.value,
|
|
23486
|
+
children: c.label
|
|
23487
|
+
}, c.value))]
|
|
23488
|
+
})
|
|
23489
|
+
]
|
|
23490
|
+
});
|
|
23491
|
+
}
|
|
23187
23492
|
/**
|
|
23188
23493
|
* Validation helper. The wire schema (`TokenScopeSchema`) requires every
|
|
23189
|
-
* scope to carry a non-empty target and `access.length >= 1`.
|
|
23190
|
-
* before passing the picker output to a mutate call so the
|
|
23191
|
-
* clean inline error instead of a tRPC ZodError.
|
|
23494
|
+
* scope to carry a non-empty target/targets and `access.length >= 1`.
|
|
23495
|
+
* Use this before passing the picker output to a mutate call so the
|
|
23496
|
+
* user sees a clean inline error instead of a tRPC ZodError.
|
|
23192
23497
|
*/
|
|
23193
23498
|
function validateScopes(scopes) {
|
|
23194
23499
|
for (const s of scopes) {
|
|
23195
|
-
if (s.
|
|
23196
|
-
|
|
23500
|
+
if (s.type === "device") {
|
|
23501
|
+
if (s.targets.length === 0) return `Scope device: pick at least one device`;
|
|
23502
|
+
} else if (s.target.trim().length === 0) return `Scope ${s.type}: pick a target`;
|
|
23503
|
+
if (s.access.length === 0) {
|
|
23504
|
+
const targetDesc = s.type === "device" ? `[${s.targets.join(",")}]` : s.target;
|
|
23505
|
+
return `Scope ${s.type}:${targetDesc}: pick at least one access`;
|
|
23506
|
+
}
|
|
23197
23507
|
}
|
|
23198
23508
|
return null;
|
|
23199
23509
|
}
|
|
@@ -24042,6 +24352,7 @@ exports.StateValuesStream = StateValuesStream;
|
|
|
24042
24352
|
exports.StatusBadge = StatusBadge;
|
|
24043
24353
|
exports.StepTimings = StepTimings;
|
|
24044
24354
|
exports.StepTreeMaster = StepTreeMaster;
|
|
24355
|
+
exports.StreamBrokerSelector = StreamBrokerSelector;
|
|
24045
24356
|
exports.StreamPanel = StreamPanel;
|
|
24046
24357
|
exports.Switch = Switch;
|
|
24047
24358
|
exports.SystemProvider = SystemProvider;
|
|
@@ -24158,6 +24469,8 @@ exports.useBackupUpsertDestinationPolicy = useBackupUpsertDestinationPolicy;
|
|
|
24158
24469
|
exports.useBatteryGetStatus = useBatteryGetStatus;
|
|
24159
24470
|
exports.useBrightnessGetStatus = useBrightnessGetStatus;
|
|
24160
24471
|
exports.useBrightnessSetBrightness = useBrightnessSetBrightness;
|
|
24472
|
+
exports.useCameraCredentialsGetCredentials = useCameraCredentialsGetCredentials;
|
|
24473
|
+
exports.useCameraCredentialsGetStatus = useCameraCredentialsGetStatus;
|
|
24161
24474
|
exports.useCameraStreamsGetBrokerStreams = useCameraStreamsGetBrokerStreams;
|
|
24162
24475
|
exports.useCameraStreamsGetCameraStreams = useCameraStreamsGetCameraStreams;
|
|
24163
24476
|
exports.useCameraStreamsGetRtspEntries = useCameraStreamsGetRtspEntries;
|
|
@@ -24189,6 +24502,14 @@ exports.useDeviceDiscoveryGetStatus = useDeviceDiscoveryGetStatus;
|
|
|
24189
24502
|
exports.useDeviceDiscoveryListDiscovered = useDeviceDiscoveryListDiscovered;
|
|
24190
24503
|
exports.useDeviceDiscoveryRefreshDiscovery = useDeviceDiscoveryRefreshDiscovery;
|
|
24191
24504
|
exports.useDeviceDiscoveryReleaseDevice = useDeviceDiscoveryReleaseDevice;
|
|
24505
|
+
exports.useDeviceExportApplyDeviceSettingsPatch = useDeviceExportApplyDeviceSettingsPatch;
|
|
24506
|
+
exports.useDeviceExportExposeDevice = useDeviceExportExposeDevice;
|
|
24507
|
+
exports.useDeviceExportGetDeviceLiveContribution = useDeviceExportGetDeviceLiveContribution;
|
|
24508
|
+
exports.useDeviceExportGetDeviceSettingsContribution = useDeviceExportGetDeviceSettingsContribution;
|
|
24509
|
+
exports.useDeviceExportGetStatus = useDeviceExportGetStatus;
|
|
24510
|
+
exports.useDeviceExportListExposedDevices = useDeviceExportListExposedDevices;
|
|
24511
|
+
exports.useDeviceExportListSupportedDeviceKinds = useDeviceExportListSupportedDeviceKinds;
|
|
24512
|
+
exports.useDeviceExportUnexposeDevice = useDeviceExportUnexposeDevice;
|
|
24192
24513
|
exports.useDeviceId = useDeviceId;
|
|
24193
24514
|
exports.useDeviceManagerAddLocation = useDeviceManagerAddLocation;
|
|
24194
24515
|
exports.useDeviceManagerAdoptDevice = useDeviceManagerAdoptDevice;
|
|
@@ -24260,6 +24581,7 @@ exports.useDeviceStateGetCapSlice = useDeviceStateGetCapSlice;
|
|
|
24260
24581
|
exports.useDeviceStateGetSnapshot = useDeviceStateGetSnapshot;
|
|
24261
24582
|
exports.useDeviceStateSetCapSlice = useDeviceStateSetCapSlice;
|
|
24262
24583
|
exports.useDeviceStateSlice = useDeviceStateSlice;
|
|
24584
|
+
exports.useDeviceStatusGetStatus = useDeviceStatusGetStatus;
|
|
24263
24585
|
exports.useDeviceWebrtc = useDeviceWebrtc;
|
|
24264
24586
|
exports.useDevices = useDevices;
|
|
24265
24587
|
exports.useDoorbellEvents = useDoorbellEvents;
|
|
@@ -24270,6 +24592,7 @@ exports.useEventStreamMap = useEventStreamMap;
|
|
|
24270
24592
|
exports.useEventsGetEventClipUrl = useEventsGetEventClipUrl;
|
|
24271
24593
|
exports.useEventsGetEventThumbnail = useEventsGetEventThumbnail;
|
|
24272
24594
|
exports.useEventsGetEvents = useEventsGetEvents;
|
|
24595
|
+
exports.useFeatureProbeGetStatus = useFeatureProbeGetStatus;
|
|
24273
24596
|
exports.useIntegrationsCreate = useIntegrationsCreate;
|
|
24274
24597
|
exports.useIntegrationsDelete = useIntegrationsDelete;
|
|
24275
24598
|
exports.useIntegrationsGet = useIntegrationsGet;
|
|
@@ -24280,9 +24603,12 @@ exports.useIntegrationsList = useIntegrationsList;
|
|
|
24280
24603
|
exports.useIntegrationsSetSettings = useIntegrationsSetSettings;
|
|
24281
24604
|
exports.useIntegrationsTestConnection = useIntegrationsTestConnection;
|
|
24282
24605
|
exports.useIntegrationsUpdate = useIntegrationsUpdate;
|
|
24606
|
+
exports.useIntercomEndTalkSession = useIntercomEndTalkSession;
|
|
24283
24607
|
exports.useIntercomGetStatus = useIntercomGetStatus;
|
|
24284
24608
|
exports.useIntercomHandleAnswer = useIntercomHandleAnswer;
|
|
24609
|
+
exports.useIntercomPushTalkPcm = useIntercomPushTalkPcm;
|
|
24285
24610
|
exports.useIntercomStartSession = useIntercomStartSession;
|
|
24611
|
+
exports.useIntercomStartTalkSession = useIntercomStartTalkSession;
|
|
24286
24612
|
exports.useIntercomStopSession = useIntercomStopSession;
|
|
24287
24613
|
exports.useIsMidWidth = useIsMidWidth;
|
|
24288
24614
|
exports.useIsMobile = useIsMobile;
|
|
@@ -24294,6 +24620,12 @@ exports.useLocalNetworkGetPreferred = useLocalNetworkGetPreferred;
|
|
|
24294
24620
|
exports.useLocalNetworkList = useLocalNetworkList;
|
|
24295
24621
|
exports.useLocalNetworkResetAllowlistToBestMatch = useLocalNetworkResetAllowlistToBestMatch;
|
|
24296
24622
|
exports.useLocalNetworkSetAllowedAddresses = useLocalNetworkSetAllowedAddresses;
|
|
24623
|
+
exports.useMeshNetworkGetStatus = useMeshNetworkGetStatus;
|
|
24624
|
+
exports.useMeshNetworkJoin = useMeshNetworkJoin;
|
|
24625
|
+
exports.useMeshNetworkLeave = useMeshNetworkLeave;
|
|
24626
|
+
exports.useMeshNetworkListPeers = useMeshNetworkListPeers;
|
|
24627
|
+
exports.useMeshNetworkStartLogin = useMeshNetworkStartLogin;
|
|
24628
|
+
exports.useMeshNetworkTestConnection = useMeshNetworkTestConnection;
|
|
24297
24629
|
exports.useMeshOrchestratorJoinProvider = useMeshOrchestratorJoinProvider;
|
|
24298
24630
|
exports.useMeshOrchestratorLeaveProvider = useMeshOrchestratorLeaveProvider;
|
|
24299
24631
|
exports.useMeshOrchestratorListProviders = useMeshOrchestratorListProviders;
|
|
@@ -24318,6 +24650,14 @@ exports.useMotionGetStatus = useMotionGetStatus;
|
|
|
24318
24650
|
exports.useMotionIsDetected = useMotionIsDetected;
|
|
24319
24651
|
exports.useMotionTriggerGetStatus = useMotionTriggerGetStatus;
|
|
24320
24652
|
exports.useMotionTriggerSetMotionTrigger = useMotionTriggerSetMotionTrigger;
|
|
24653
|
+
exports.useMqttBrokerAddBroker = useMqttBrokerAddBroker;
|
|
24654
|
+
exports.useMqttBrokerGetBrokerConfig = useMqttBrokerGetBrokerConfig;
|
|
24655
|
+
exports.useMqttBrokerGetStatus = useMqttBrokerGetStatus;
|
|
24656
|
+
exports.useMqttBrokerListBrokers = useMqttBrokerListBrokers;
|
|
24657
|
+
exports.useMqttBrokerRemoveBroker = useMqttBrokerRemoveBroker;
|
|
24658
|
+
exports.useMqttBrokerStartEmbeddedBroker = useMqttBrokerStartEmbeddedBroker;
|
|
24659
|
+
exports.useMqttBrokerStopEmbeddedBroker = useMqttBrokerStopEmbeddedBroker;
|
|
24660
|
+
exports.useMqttBrokerTestConnection = useMqttBrokerTestConnection;
|
|
24321
24661
|
exports.useNativeObjectDetectionGetStatus = useNativeObjectDetectionGetStatus;
|
|
24322
24662
|
exports.useNetworkQualityGetAllStats = useNetworkQualityGetAllStats;
|
|
24323
24663
|
exports.useNetworkQualityGetDeviceStats = useNetworkQualityGetDeviceStats;
|
|
@@ -24433,6 +24773,8 @@ exports.usePipelineRunnerGetLocalMetrics = usePipelineRunnerGetLocalMetrics;
|
|
|
24433
24773
|
exports.usePipelineRunnerReportMotion = usePipelineRunnerReportMotion;
|
|
24434
24774
|
exports.usePlatformProbeGetCapabilities = usePlatformProbeGetCapabilities;
|
|
24435
24775
|
exports.usePlatformProbeGetHardware = usePlatformProbeGetHardware;
|
|
24776
|
+
exports.usePlatformProbeGetHardwareEncoders = usePlatformProbeGetHardwareEncoders;
|
|
24777
|
+
exports.usePlatformProbeRefreshHardwareEncoders = usePlatformProbeRefreshHardwareEncoders;
|
|
24436
24778
|
exports.usePlatformProbeResolveHwAccel = usePlatformProbeResolveHwAccel;
|
|
24437
24779
|
exports.usePlatformProbeResolveInferenceConfig = usePlatformProbeResolveInferenceConfig;
|
|
24438
24780
|
exports.usePlayerOverlayLayer = usePlayerOverlayLayer;
|
|
@@ -24525,6 +24867,7 @@ exports.useStreamBrokerGetPreBufferInfo = useStreamBrokerGetPreBufferInfo;
|
|
|
24525
24867
|
exports.useStreamBrokerGetRtspEntry = useStreamBrokerGetRtspEntry;
|
|
24526
24868
|
exports.useStreamBrokerGetRtspPort = useStreamBrokerGetRtspPort;
|
|
24527
24869
|
exports.useStreamBrokerGetStreamUrl = useStreamBrokerGetStreamUrl;
|
|
24870
|
+
exports.useStreamBrokerGetStreamWithCodec = useStreamBrokerGetStreamWithCodec;
|
|
24528
24871
|
exports.useStreamBrokerIsRtspEnabled = useStreamBrokerIsRtspEnabled;
|
|
24529
24872
|
exports.useStreamBrokerKillClient = useStreamBrokerKillClient;
|
|
24530
24873
|
exports.useStreamBrokerListAllCameraStreams = useStreamBrokerListAllCameraStreams;
|
|
@@ -24532,6 +24875,7 @@ exports.useStreamBrokerListAllProfileSlots = useStreamBrokerListAllProfileSlots;
|
|
|
24532
24875
|
exports.useStreamBrokerListClients = useStreamBrokerListClients;
|
|
24533
24876
|
exports.useStreamBrokerPublishCameraStream = useStreamBrokerPublishCameraStream;
|
|
24534
24877
|
exports.useStreamBrokerRegenerateRtspToken = useStreamBrokerRegenerateRtspToken;
|
|
24878
|
+
exports.useStreamBrokerReleaseStreamWithCodec = useStreamBrokerReleaseStreamWithCodec;
|
|
24535
24879
|
exports.useStreamBrokerRestartProfile = useStreamBrokerRestartProfile;
|
|
24536
24880
|
exports.useStreamBrokerRetractCameraStream = useStreamBrokerRetractCameraStream;
|
|
24537
24881
|
exports.useStreamBrokerSetPreBufferDuration = useStreamBrokerSetPreBufferDuration;
|
|
@@ -24555,10 +24899,13 @@ exports.useTurnOrchestratorGetAllServers = useTurnOrchestratorGetAllServers;
|
|
|
24555
24899
|
exports.useTurnOrchestratorListProviders = useTurnOrchestratorListProviders;
|
|
24556
24900
|
exports.useTurnOrchestratorSetProviderEnabled = useTurnOrchestratorSetProviderEnabled;
|
|
24557
24901
|
exports.useTurnProviderGetTurnServers = useTurnProviderGetTurnServers;
|
|
24902
|
+
exports.useUserManagementConfirmTotp = useUserManagementConfirmTotp;
|
|
24558
24903
|
exports.useUserManagementCreateApiKey = useUserManagementCreateApiKey;
|
|
24559
24904
|
exports.useUserManagementCreateScopedToken = useUserManagementCreateScopedToken;
|
|
24560
24905
|
exports.useUserManagementCreateUser = useUserManagementCreateUser;
|
|
24561
24906
|
exports.useUserManagementDeleteUser = useUserManagementDeleteUser;
|
|
24907
|
+
exports.useUserManagementDisableTotp = useUserManagementDisableTotp;
|
|
24908
|
+
exports.useUserManagementGetTotpStatus = useUserManagementGetTotpStatus;
|
|
24562
24909
|
exports.useUserManagementListApiKeys = useUserManagementListApiKeys;
|
|
24563
24910
|
exports.useUserManagementListScopedTokens = useUserManagementListScopedTokens;
|
|
24564
24911
|
exports.useUserManagementListUsers = useUserManagementListUsers;
|
|
@@ -24566,13 +24913,16 @@ exports.useUserManagementResetPassword = useUserManagementResetPassword;
|
|
|
24566
24913
|
exports.useUserManagementRevokeApiKey = useUserManagementRevokeApiKey;
|
|
24567
24914
|
exports.useUserManagementRevokeScopedToken = useUserManagementRevokeScopedToken;
|
|
24568
24915
|
exports.useUserManagementSetUserScopes = useUserManagementSetUserScopes;
|
|
24916
|
+
exports.useUserManagementSetupTotp = useUserManagementSetupTotp;
|
|
24569
24917
|
exports.useUserManagementUpdateUser = useUserManagementUpdateUser;
|
|
24570
24918
|
exports.useUserManagementValidateApiKey = useUserManagementValidateApiKey;
|
|
24571
24919
|
exports.useUserManagementValidateCredentials = useUserManagementValidateCredentials;
|
|
24572
24920
|
exports.useUserManagementValidateScopedToken = useUserManagementValidateScopedToken;
|
|
24921
|
+
exports.useUserManagementVerifyTotp = useUserManagementVerifyTotp;
|
|
24573
24922
|
exports.useWebrtcSessionCloseSession = useWebrtcSessionCloseSession;
|
|
24574
24923
|
exports.useWebrtcSessionCreateSession = useWebrtcSessionCreateSession;
|
|
24575
24924
|
exports.useWebrtcSessionHandleAnswer = useWebrtcSessionHandleAnswer;
|
|
24925
|
+
exports.useWebrtcSessionHandleOffer = useWebrtcSessionHandleOffer;
|
|
24576
24926
|
exports.useWebrtcSessionHasAdaptiveBitrate = useWebrtcSessionHasAdaptiveBitrate;
|
|
24577
24927
|
exports.useWebrtcSessionListStreams = useWebrtcSessionListStreams;
|
|
24578
24928
|
exports.useWidget = useWidget;
|