@microsoft/live-share-react 1.0.0-preview.11 → 1.0.0-preview.13
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/README.md +3 -3
- package/bin/index.d.ts +7 -0
- package/bin/index.d.ts.map +1 -0
- package/bin/index.js +7 -0
- package/bin/index.js.map +1 -0
- package/bin/interfaces/LiveInterfaceExtensions.d.ts +9 -0
- package/bin/interfaces/LiveInterfaceExtensions.d.ts.map +1 -0
- package/bin/interfaces/LiveInterfaceExtensions.js +6 -0
- package/bin/interfaces/LiveInterfaceExtensions.js.map +1 -0
- package/bin/interfaces/index.d.ts +2 -0
- package/bin/interfaces/index.d.ts.map +1 -0
- package/bin/interfaces/index.js +2 -0
- package/bin/interfaces/index.js.map +1 -0
- package/bin/internal-hooks/index.d.ts +2 -0
- package/bin/internal-hooks/index.d.ts.map +1 -0
- package/bin/internal-hooks/index.js +2 -0
- package/bin/internal-hooks/index.js.map +1 -0
- package/bin/internal-hooks/useDynamicDDSRegistry.d.ts +14 -0
- package/bin/internal-hooks/useDynamicDDSRegistry.d.ts.map +1 -0
- package/bin/internal-hooks/useDynamicDDSRegistry.js +142 -0
- package/bin/internal-hooks/useDynamicDDSRegistry.js.map +1 -0
- package/bin/internal-hooks/useSharedStateRegistry.d.ts +31 -0
- package/bin/internal-hooks/useSharedStateRegistry.d.ts.map +1 -0
- package/bin/internal-hooks/useSharedStateRegistry.js +102 -0
- package/bin/internal-hooks/useSharedStateRegistry.js.map +1 -0
- package/bin/internal-hooks/useStateRef.d.ts +7 -0
- package/bin/internal-hooks/useStateRef.d.ts.map +1 -0
- package/bin/internal-hooks/useStateRef.js +15 -0
- package/bin/internal-hooks/useStateRef.js.map +1 -0
- package/bin/live-hooks/index.d.ts +7 -0
- package/bin/live-hooks/index.d.ts.map +1 -0
- package/bin/live-hooks/index.js +7 -0
- package/bin/live-hooks/index.js.map +1 -0
- package/bin/live-hooks/useLiveAICompletion.d.ts +29 -0
- package/bin/live-hooks/useLiveAICompletion.d.ts.map +1 -0
- package/bin/live-hooks/useLiveAICompletion.js +186 -0
- package/bin/live-hooks/useLiveAICompletion.js.map +1 -0
- package/bin/live-hooks/useLiveCanvas.d.ts +28 -0
- package/bin/live-hooks/useLiveCanvas.d.ts.map +1 -0
- package/bin/live-hooks/useLiveCanvas.js +159 -0
- package/bin/live-hooks/useLiveCanvas.js.map +1 -0
- package/bin/live-hooks/useLiveCoPilot.d.ts +28 -0
- package/bin/live-hooks/useLiveCoPilot.d.ts.map +1 -0
- package/bin/live-hooks/useLiveCoPilot.js +178 -0
- package/bin/live-hooks/useLiveCoPilot.js.map +1 -0
- package/bin/live-hooks/useLiveEvent.d.ts +22 -0
- package/bin/live-hooks/useLiveEvent.d.ts.map +1 -0
- package/bin/live-hooks/useLiveEvent.js +93 -0
- package/bin/live-hooks/useLiveEvent.js.map +1 -0
- package/bin/live-hooks/useLivePresence.d.ts +26 -0
- package/bin/live-hooks/useLivePresence.d.ts.map +1 -0
- package/bin/live-hooks/useLivePresence.js +102 -0
- package/bin/live-hooks/useLivePresence.js.map +1 -0
- package/bin/live-hooks/useLiveState.d.ts +20 -0
- package/bin/live-hooks/useLiveState.d.ts.map +1 -0
- package/bin/live-hooks/useLiveState.js +73 -0
- package/bin/live-hooks/useLiveState.js.map +1 -0
- package/bin/live-hooks/useLiveTimer.d.ts +8 -0
- package/bin/live-hooks/useLiveTimer.d.ts.map +1 -0
- package/bin/live-hooks/useLiveTimer.js +145 -0
- package/bin/live-hooks/useLiveTimer.js.map +1 -0
- package/bin/live-hooks/useMediaSynchronizer.d.ts +23 -0
- package/bin/live-hooks/useMediaSynchronizer.d.ts.map +1 -0
- package/bin/live-hooks/useMediaSynchronizer.js +185 -0
- package/bin/live-hooks/useMediaSynchronizer.js.map +1 -0
- package/bin/live-share-turbo/AzureTurboClient.d.ts +39 -0
- package/bin/live-share-turbo/AzureTurboClient.d.ts.map +1 -0
- package/bin/live-share-turbo/AzureTurboClient.js +56 -0
- package/bin/live-share-turbo/AzureTurboClient.js.map +1 -0
- package/bin/live-share-turbo/LiveShareTurboClient.d.ts +53 -0
- package/bin/live-share-turbo/LiveShareTurboClient.d.ts.map +1 -0
- package/bin/live-share-turbo/LiveShareTurboClient.js +69 -0
- package/bin/live-share-turbo/LiveShareTurboClient.js.map +1 -0
- package/bin/live-share-turbo/dds-objects/TurboDataObject.d.ts +31 -0
- package/bin/live-share-turbo/dds-objects/TurboDataObject.d.ts.map +1 -0
- package/bin/live-share-turbo/dds-objects/TurboDataObject.js +75 -0
- package/bin/live-share-turbo/dds-objects/TurboDataObject.js.map +1 -0
- package/bin/live-share-turbo/dds-objects/TurboLiveCanvas.d.ts +48 -0
- package/bin/live-share-turbo/dds-objects/TurboLiveCanvas.d.ts.map +1 -0
- package/bin/live-share-turbo/dds-objects/TurboLiveCanvas.js +104 -0
- package/bin/live-share-turbo/dds-objects/TurboLiveCanvas.js.map +1 -0
- package/bin/live-share-turbo/dds-objects/TurboLiveEvent.d.ts +28 -0
- package/bin/live-share-turbo/dds-objects/TurboLiveEvent.d.ts.map +1 -0
- package/bin/live-share-turbo/dds-objects/TurboLiveEvent.js +68 -0
- package/bin/live-share-turbo/dds-objects/TurboLiveEvent.js.map +1 -0
- package/bin/live-share-turbo/dds-objects/TurboLiveMediaSession.d.ts +60 -0
- package/bin/live-share-turbo/dds-objects/TurboLiveMediaSession.d.ts.map +1 -0
- package/bin/live-share-turbo/dds-objects/TurboLiveMediaSession.js +111 -0
- package/bin/live-share-turbo/dds-objects/TurboLiveMediaSession.js.map +1 -0
- package/bin/live-share-turbo/dds-objects/TurboLivePresence.d.ts +77 -0
- package/bin/live-share-turbo/dds-objects/TurboLivePresence.d.ts.map +1 -0
- package/bin/live-share-turbo/dds-objects/TurboLivePresence.js +137 -0
- package/bin/live-share-turbo/dds-objects/TurboLivePresence.js.map +1 -0
- package/bin/live-share-turbo/dds-objects/TurboLiveState.d.ts +30 -0
- package/bin/live-share-turbo/dds-objects/TurboLiveState.d.ts.map +1 -0
- package/bin/live-share-turbo/dds-objects/TurboLiveState.js +74 -0
- package/bin/live-share-turbo/dds-objects/TurboLiveState.js.map +1 -0
- package/bin/live-share-turbo/dds-objects/TurboSharedMap.d.ts +61 -0
- package/bin/live-share-turbo/dds-objects/TurboSharedMap.d.ts.map +1 -0
- package/bin/live-share-turbo/dds-objects/TurboSharedMap.js +108 -0
- package/bin/live-share-turbo/dds-objects/TurboSharedMap.js.map +1 -0
- package/bin/live-share-turbo/dds-objects/index.d.ts +8 -0
- package/bin/live-share-turbo/dds-objects/index.d.ts.map +1 -0
- package/bin/live-share-turbo/dds-objects/index.js +8 -0
- package/bin/live-share-turbo/dds-objects/index.js.map +1 -0
- package/bin/live-share-turbo/index.d.ts +5 -0
- package/bin/live-share-turbo/index.d.ts.map +1 -0
- package/bin/live-share-turbo/index.js +5 -0
- package/bin/live-share-turbo/index.js.map +1 -0
- package/bin/live-share-turbo/interfaces/IFluidTurboClient.d.ts +15 -0
- package/bin/live-share-turbo/interfaces/IFluidTurboClient.d.ts.map +1 -0
- package/bin/live-share-turbo/interfaces/IFluidTurboClient.js +2 -0
- package/bin/live-share-turbo/interfaces/IFluidTurboClient.js.map +1 -0
- package/bin/live-share-turbo/interfaces/index.d.ts +3 -0
- package/bin/live-share-turbo/interfaces/index.d.ts.map +1 -0
- package/bin/live-share-turbo/interfaces/index.js +3 -0
- package/bin/live-share-turbo/interfaces/index.js.map +1 -0
- package/bin/live-share-turbo/internals/FluidTurboClient.d.ts +39 -0
- package/bin/live-share-turbo/internals/FluidTurboClient.d.ts.map +1 -0
- package/bin/live-share-turbo/internals/FluidTurboClient.js +121 -0
- package/bin/live-share-turbo/internals/FluidTurboClient.js.map +1 -0
- package/bin/live-share-turbo/internals/index.d.ts +2 -0
- package/bin/live-share-turbo/internals/index.d.ts.map +1 -0
- package/bin/live-share-turbo/internals/index.js +2 -0
- package/bin/live-share-turbo/internals/index.js.map +1 -0
- package/bin/live-share-turbo/internals/types.d.ts +4 -0
- package/bin/live-share-turbo/internals/types.d.ts.map +1 -0
- package/bin/live-share-turbo/internals/types.js +2 -0
- package/bin/live-share-turbo/internals/types.js.map +1 -0
- package/bin/providers/AzureProvider.d.ts +34 -0
- package/bin/providers/AzureProvider.d.ts.map +1 -0
- package/bin/providers/AzureProvider.js +102 -0
- package/bin/providers/AzureProvider.js.map +1 -0
- package/bin/providers/FluidContextProvider.d.ts +34 -0
- package/bin/providers/FluidContextProvider.d.ts.map +1 -0
- package/bin/providers/FluidContextProvider.js +99 -0
- package/bin/providers/FluidContextProvider.js.map +1 -0
- package/bin/providers/LiveShareContextProvider.d.ts +42 -0
- package/bin/providers/LiveShareContextProvider.d.ts.map +1 -0
- package/bin/providers/LiveShareContextProvider.js +63 -0
- package/bin/providers/LiveShareContextProvider.js.map +1 -0
- package/bin/providers/LiveShareProvider.d.ts +63 -0
- package/bin/providers/LiveShareProvider.d.ts.map +1 -0
- package/bin/providers/LiveShareProvider.js +69 -0
- package/bin/providers/LiveShareProvider.js.map +1 -0
- package/bin/providers/index.d.ts +3 -0
- package/bin/providers/index.d.ts.map +1 -0
- package/bin/providers/index.js +3 -0
- package/bin/providers/index.js.map +1 -0
- package/bin/shared-hooks/index.d.ts +4 -0
- package/bin/shared-hooks/index.d.ts.map +1 -0
- package/bin/shared-hooks/index.js +4 -0
- package/bin/shared-hooks/index.js.map +1 -0
- package/bin/shared-hooks/useDynamicDDS.d.ts +19 -0
- package/bin/shared-hooks/useDynamicDDS.d.ts.map +1 -0
- package/bin/shared-hooks/useDynamicDDS.js +68 -0
- package/bin/shared-hooks/useDynamicDDS.js.map +1 -0
- package/bin/shared-hooks/useLockedTask.d.ts +11 -0
- package/bin/shared-hooks/useLockedTask.d.ts.map +1 -0
- package/bin/shared-hooks/useLockedTask.js +82 -0
- package/bin/shared-hooks/useLockedTask.js.map +1 -0
- package/bin/shared-hooks/useSharedMap.d.ts +22 -0
- package/bin/shared-hooks/useSharedMap.d.ts.map +1 -0
- package/bin/shared-hooks/useSharedMap.js +106 -0
- package/bin/shared-hooks/useSharedMap.js.map +1 -0
- package/bin/shared-hooks/useSharedState.d.ts +21 -0
- package/bin/shared-hooks/useSharedState.d.ts.map +1 -0
- package/bin/shared-hooks/useSharedState.js +67 -0
- package/bin/shared-hooks/useSharedState.js.map +1 -0
- package/bin/shared-hooks/useTaskManager.d.ts +13 -0
- package/bin/shared-hooks/useTaskManager.d.ts.map +1 -0
- package/bin/shared-hooks/useTaskManager.js +86 -0
- package/bin/shared-hooks/useTaskManager.js.map +1 -0
- package/bin/types/ActionTypes.d.ts +106 -0
- package/bin/types/ActionTypes.d.ts.map +1 -0
- package/bin/types/ActionTypes.js +6 -0
- package/bin/types/ActionTypes.js.map +1 -0
- package/bin/types/PropTypes.d.ts +8 -0
- package/bin/types/PropTypes.d.ts.map +1 -0
- package/bin/types/PropTypes.js +6 -0
- package/bin/types/PropTypes.js.map +1 -0
- package/bin/types/ResultTypes.d.ts +175 -0
- package/bin/types/ResultTypes.d.ts.map +1 -0
- package/bin/types/ResultTypes.js +6 -0
- package/bin/types/ResultTypes.js.map +1 -0
- package/bin/types/index.d.ts +4 -0
- package/bin/types/index.d.ts.map +1 -0
- package/bin/types/index.js +4 -0
- package/bin/types/index.js.map +1 -0
- package/bin/utils/getContainerSchema.d.ts +8 -0
- package/bin/utils/getContainerSchema.d.ts.map +1 -0
- package/bin/utils/getContainerSchema.js +41 -0
- package/bin/utils/getContainerSchema.js.map +1 -0
- package/bin/utils/index.d.ts +2 -0
- package/bin/utils/index.d.ts.map +1 -0
- package/bin/utils/index.js +2 -0
- package/bin/utils/index.js.map +1 -0
- package/bin/utils/type-check.d.ts +15 -0
- package/bin/utils/type-check.d.ts.map +1 -0
- package/bin/utils/type-check.js +54 -0
- package/bin/utils/type-check.js.map +1 -0
- package/package.json +13 -13
- package/src/internal-hooks/useSharedStateRegistry.ts +6 -5
- package/src/live-hooks/useLiveEvent.ts +14 -18
- package/src/live-hooks/useLivePresence.ts +13 -7
- package/src/live-hooks/useLiveState.ts +8 -6
- package/src/live-hooks/useLiveTimer.ts +21 -18
- package/src/live-hooks/useMediaSynchronizer.ts +37 -27
- package/src/providers/AzureProvider.tsx +2 -7
- package/src/providers/LiveShareProvider.tsx +45 -15
- package/src/shared-hooks/useDynamicDDS.ts +15 -8
- package/src/shared-hooks/useSharedMap.ts +17 -10
- package/src/shared-hooks/useSharedState.ts +5 -1
- package/src/types/ActionTypes.ts +89 -11
- package/src/types/ResultTypes.ts +22 -8
package/README.md
CHANGED
|
@@ -172,7 +172,7 @@ export function CardList() {
|
|
|
172
172
|
|
|
173
173
|
### useLivePresence
|
|
174
174
|
|
|
175
|
-
Presence makes it easy to track which users are currently in the session and assign custom data to them.
|
|
175
|
+
Presence makes it easy to track which users are currently in the session and assign custom data to them.
|
|
176
176
|
|
|
177
177
|
```javascript
|
|
178
178
|
import { useLivePresence } from "@microsoft/live-share-react";
|
|
@@ -180,7 +180,7 @@ import { PresenceState } from "@microsoft/live-share";
|
|
|
180
180
|
|
|
181
181
|
export function OnlineUsers() {
|
|
182
182
|
const { localUser, allUsers, updatePresence } = useLivePresence(
|
|
183
|
-
"
|
|
183
|
+
"UNIQUE-PRESENCE-KEY", // required unique key for presence
|
|
184
184
|
{ favoriteColor: "red" } // optional custom data object
|
|
185
185
|
);
|
|
186
186
|
return (
|
|
@@ -584,7 +584,7 @@ The Live Share SDK contains dependencies for [@microsoft/teams-js](https://www.n
|
|
|
584
584
|
|
|
585
585
|
| @microsoft/live-share | @microsoft/teams-js | fluid-framework | @microsoft/live-share-\* | @fluidframework/azure-client | @microsoft/TeamsFx | @microsoft/TeamsFx-react |
|
|
586
586
|
| --------------------- | -------------------- | --------------- | -------------------------- | ---------------------------- | ------------------------------- | ------------------------------- |
|
|
587
|
-
| 1.0.0-preview.
|
|
587
|
+
| 1.0.0-preview.13 | ^2.11.0 | ^1.2.3 | 1.0.0-preview.13 (optional) | ^1.0.0 (optional) | ^2.5.0 (optional) | ^2.5.0 (optional) |
|
|
588
588
|
| 1.0.0-preview.10 | ^2.10.1 | ~1.2.3 | 1.0.0-preview.10 (optional) | ~1.0.2 (optional) | ^2.5.0 (optional) | ^2.5.0 (optional) |
|
|
589
589
|
| 1.0.0-preview.8 | ^2.5.0 | ~1.2.3 | 1.0.0-preview.10 (optional) | ~1.0.2 (optional) | ^2.5.0 (optional) | ^2.5.0 (optional) |
|
|
590
590
|
| 1.0.0-preview.3 | 2.0.0-experimental.1 | ~1.2.3 | 1.0.0-preview.3 (optional) | ~1.0.2 (optional) | 2.0.0-experimental.0 (optional) | 2.0.0-experimental.0 (optional) |
|
package/bin/index.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC;AAC7B,cAAc,SAAS,CAAC;AACxB,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC"}
|
package/bin/index.js
ADDED
package/bin/index.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC;AAC7B,cAAc,SAAS,CAAC;AACxB,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
3
|
+
* Licensed under the Microsoft Live Share SDK License.
|
|
4
|
+
*/
|
|
5
|
+
export interface IReceiveLiveEvent<TEvent extends object = object> {
|
|
6
|
+
event: TEvent;
|
|
7
|
+
local: boolean;
|
|
8
|
+
}
|
|
9
|
+
//# sourceMappingURL=LiveInterfaceExtensions.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LiveInterfaceExtensions.d.ts","sourceRoot":"","sources":["../../src/interfaces/LiveInterfaceExtensions.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,WAAW,iBAAiB,CAAC,MAAM,SAAS,MAAM,GAAG,MAAM;IAC7D,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,OAAO,CAAC;CAClB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LiveInterfaceExtensions.js","sourceRoot":"","sources":["../../src/interfaces/LiveInterfaceExtensions.ts"],"names":[],"mappings":"AAAA;;;GAGG"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/interfaces/index.ts"],"names":[],"mappings":"AAAA,cAAc,2BAA2B,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/interfaces/index.ts"],"names":[],"mappings":"AAAA,cAAc,2BAA2B,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/internal-hooks/index.ts"],"names":[],"mappings":"AAAA,cAAc,0BAA0B,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/internal-hooks/index.ts"],"names":[],"mappings":"AAAA,cAAc,0BAA0B,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { IAzureContainerResults, RegisterDDSSetStateAction, UnregisterDDSSetStateAction } from "../types";
|
|
2
|
+
export interface IDynamicDDSRegistry {
|
|
3
|
+
registerDDSSetStateAction: RegisterDDSSetStateAction;
|
|
4
|
+
unregisterDDSSetStateAction: UnregisterDDSSetStateAction;
|
|
5
|
+
}
|
|
6
|
+
/**
|
|
7
|
+
* Hook used internally to keep track of the DDSSetStateActionMap for each unique key. It gets DDS objects for provided keys where they exist and creates
|
|
8
|
+
* them where they do not, providing the DDS objects to components that use them.
|
|
9
|
+
*
|
|
10
|
+
* @param results IAzureContainerResults response or undefined
|
|
11
|
+
* @returns IDynamicDDSRegistry object
|
|
12
|
+
*/
|
|
13
|
+
export declare const useDynamicDDSRegistry: (results: IAzureContainerResults | undefined) => IDynamicDDSRegistry;
|
|
14
|
+
//# sourceMappingURL=useDynamicDDSRegistry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useDynamicDDSRegistry.d.ts","sourceRoot":"","sources":["../../src/internal-hooks/useDynamicDDSRegistry.ts"],"names":[],"mappings":"AAQA,OAAO,EACH,sBAAsB,EACtB,yBAAyB,EAEzB,2BAA2B,EAC9B,MAAM,UAAU,CAAC;AAElB,MAAM,WAAW,mBAAmB;IAChC,yBAAyB,EAAE,yBAAyB,CAAC;IACrD,2BAA2B,EAAE,2BAA2B,CAAC;CAC5D;AAED;;;;;;GAMG;AACH,eAAO,MAAM,qBAAqB,YACrB,sBAAsB,GAAG,SAAS,KAC5C,mBAyKF,CAAC"}
|
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
2
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
3
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
4
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
5
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
6
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
7
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
8
|
+
});
|
|
9
|
+
};
|
|
10
|
+
import { useCallback, useEffect, useRef } from "react";
|
|
11
|
+
/**
|
|
12
|
+
* Hook used internally to keep track of the DDSSetStateActionMap for each unique key. It gets DDS objects for provided keys where they exist and creates
|
|
13
|
+
* them where they do not, providing the DDS objects to components that use them.
|
|
14
|
+
*
|
|
15
|
+
* @param results IAzureContainerResults response or undefined
|
|
16
|
+
* @returns IDynamicDDSRegistry object
|
|
17
|
+
*/
|
|
18
|
+
export const useDynamicDDSRegistry = (results) => {
|
|
19
|
+
const registeredDDSSetStateActionMapRef = useRef(new Map());
|
|
20
|
+
// Get the DDS from dynamicObjects for a given key, if known
|
|
21
|
+
const getDDS = useCallback((key) => __awaiter(void 0, void 0, void 0, function* () {
|
|
22
|
+
const dynamicObjectMap = results === null || results === void 0 ? void 0 : results.container.initialObjects.dynamicObjects;
|
|
23
|
+
if (dynamicObjectMap) {
|
|
24
|
+
const handleValue = dynamicObjectMap.get(key);
|
|
25
|
+
if (handleValue) {
|
|
26
|
+
const dds = yield handleValue.get();
|
|
27
|
+
return dds;
|
|
28
|
+
}
|
|
29
|
+
else {
|
|
30
|
+
return undefined;
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
else {
|
|
34
|
+
throw new Error("getDDS should never be called if dynamicObjects is undefined");
|
|
35
|
+
}
|
|
36
|
+
}), [results]);
|
|
37
|
+
// Create a new DDS of type T in dynamicObjects
|
|
38
|
+
const createDDS = useCallback((key, objectClass) => __awaiter(void 0, void 0, void 0, function* () {
|
|
39
|
+
const dynamicObjectMap = results === null || results === void 0 ? void 0 : results.container.initialObjects.dynamicObjects;
|
|
40
|
+
if (dynamicObjectMap) {
|
|
41
|
+
// Create a new DDS and set the handle to the DDS
|
|
42
|
+
const dds = yield results.container.create(objectClass);
|
|
43
|
+
dynamicObjectMap.set(key, dds.handle);
|
|
44
|
+
return dds;
|
|
45
|
+
}
|
|
46
|
+
else {
|
|
47
|
+
throw new Error("createDDS: should never be called if dynamicObjectsMap is undefined");
|
|
48
|
+
}
|
|
49
|
+
}), [results]);
|
|
50
|
+
// Callback for hooks (e.g., useSharedMap) to register a new set state action so they
|
|
51
|
+
// always have the most recent DDS. If one does not exist, we create it here.
|
|
52
|
+
const registerDDSSetStateAction = useCallback((uniqueKey, componentId, objectClass, setLocalStateAction, onDidFirstInitialize) => __awaiter(void 0, void 0, void 0, function* () {
|
|
53
|
+
let shouldCreateIfNeeded = false;
|
|
54
|
+
let actionsMap = registeredDDSSetStateActionMapRef.current.get(uniqueKey);
|
|
55
|
+
if (actionsMap) {
|
|
56
|
+
if (!actionsMap.has(componentId)) {
|
|
57
|
+
shouldCreateIfNeeded = true;
|
|
58
|
+
actionsMap.set(componentId, setLocalStateAction);
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
else {
|
|
62
|
+
shouldCreateIfNeeded = true;
|
|
63
|
+
actionsMap = new Map();
|
|
64
|
+
actionsMap.set(componentId, setLocalStateAction);
|
|
65
|
+
registeredDDSSetStateActionMapRef.current.set(uniqueKey, actionsMap);
|
|
66
|
+
}
|
|
67
|
+
try {
|
|
68
|
+
// Set initial values, if known
|
|
69
|
+
let dds = yield getDDS(uniqueKey);
|
|
70
|
+
if (dds) {
|
|
71
|
+
setLocalStateAction(dds);
|
|
72
|
+
}
|
|
73
|
+
else if (shouldCreateIfNeeded) {
|
|
74
|
+
// Create a new DDS of type T
|
|
75
|
+
dds = yield createDDS(uniqueKey, objectClass);
|
|
76
|
+
setLocalStateAction(dds);
|
|
77
|
+
onDidFirstInitialize === null || onDidFirstInitialize === void 0 ? void 0 : onDidFirstInitialize(dds);
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
catch (error) {
|
|
81
|
+
throw error;
|
|
82
|
+
}
|
|
83
|
+
}), [results]);
|
|
84
|
+
// Callback for hooks (e.g., useSharedMap) to unregister their set state actions
|
|
85
|
+
const unregisterDDSSetStateAction = useCallback((uniqueKey, componentId) => {
|
|
86
|
+
let actionsMap = registeredDDSSetStateActionMapRef.current.get(uniqueKey);
|
|
87
|
+
if (actionsMap === null || actionsMap === void 0 ? void 0 : actionsMap.has(componentId)) {
|
|
88
|
+
actionsMap.delete(componentId);
|
|
89
|
+
}
|
|
90
|
+
}, []);
|
|
91
|
+
// Initial setup
|
|
92
|
+
useEffect(() => {
|
|
93
|
+
if (!results)
|
|
94
|
+
return;
|
|
95
|
+
const { container } = results;
|
|
96
|
+
const dynamicObjectMap = container.initialObjects
|
|
97
|
+
.dynamicObjects;
|
|
98
|
+
// Register value changed listener
|
|
99
|
+
const valueChangedListener = (changed, local) => {
|
|
100
|
+
if (local)
|
|
101
|
+
return;
|
|
102
|
+
if (registeredDDSSetStateActionMapRef.current.has(changed.key)) {
|
|
103
|
+
const actionMap = registeredDDSSetStateActionMapRef.current.get(changed.key);
|
|
104
|
+
// Get the DDS for the changed value, if known
|
|
105
|
+
getDDS(changed.key)
|
|
106
|
+
.then((dds) => {
|
|
107
|
+
// Update each component that has registered an action in actionMap
|
|
108
|
+
actionMap === null || actionMap === void 0 ? void 0 : actionMap.forEach((setLocalStateHandler) => {
|
|
109
|
+
setLocalStateHandler(dds);
|
|
110
|
+
});
|
|
111
|
+
})
|
|
112
|
+
.catch((error) => console.error(error));
|
|
113
|
+
}
|
|
114
|
+
};
|
|
115
|
+
dynamicObjectMap.on("valueChanged", valueChangedListener);
|
|
116
|
+
// Set initial values
|
|
117
|
+
dynamicObjectMap.forEach((handleValue, key) => {
|
|
118
|
+
const actionMap = registeredDDSSetStateActionMapRef.current.get(key);
|
|
119
|
+
if (handleValue) {
|
|
120
|
+
handleValue
|
|
121
|
+
.get()
|
|
122
|
+
.then((dds) => {
|
|
123
|
+
// Update each component that has registered an action in actionMap
|
|
124
|
+
actionMap === null || actionMap === void 0 ? void 0 : actionMap.forEach((setLocalStateHandler) => {
|
|
125
|
+
setLocalStateHandler(dds);
|
|
126
|
+
});
|
|
127
|
+
})
|
|
128
|
+
.catch((error) => {
|
|
129
|
+
console.error(error);
|
|
130
|
+
});
|
|
131
|
+
}
|
|
132
|
+
});
|
|
133
|
+
return () => {
|
|
134
|
+
dynamicObjectMap.off("valueChanged", valueChangedListener);
|
|
135
|
+
};
|
|
136
|
+
}, [results]);
|
|
137
|
+
return {
|
|
138
|
+
registerDDSSetStateAction,
|
|
139
|
+
unregisterDDSSetStateAction,
|
|
140
|
+
};
|
|
141
|
+
};
|
|
142
|
+
//# sourceMappingURL=useDynamicDDSRegistry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useDynamicDDSRegistry.js","sourceRoot":"","sources":["../../src/internal-hooks/useDynamicDDSRegistry.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
3
|
+
* Licensed under the Microsoft Live Share SDK License.
|
|
4
|
+
*/
|
|
5
|
+
import { DeleteSharedStateAction, IAzureContainerResults, RegisterSharedSetStateAction, UnregisterSharedSetStateAction, UpdateSharedStateAction } from "../types";
|
|
6
|
+
export interface ISharedStateRegistryResponse {
|
|
7
|
+
/**
|
|
8
|
+
* Register a set state action callback
|
|
9
|
+
*/
|
|
10
|
+
registerSharedSetStateAction: RegisterSharedSetStateAction;
|
|
11
|
+
/**
|
|
12
|
+
* Unregister a set state action callback
|
|
13
|
+
*/
|
|
14
|
+
unregisterSharedSetStateAction: UnregisterSharedSetStateAction;
|
|
15
|
+
/**
|
|
16
|
+
* Setter callback to update the shared state
|
|
17
|
+
*/
|
|
18
|
+
updateSharedState: UpdateSharedStateAction;
|
|
19
|
+
/**
|
|
20
|
+
* Delete a shared state value
|
|
21
|
+
*/
|
|
22
|
+
deleteSharedState: DeleteSharedStateAction;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Hook used internally to keep track of the SharedSetStateActionMap for each unique key. It sets state values for provided keys and updates components listening to the values.
|
|
26
|
+
*
|
|
27
|
+
* @param results IAzureContainerResults response or undefined
|
|
28
|
+
* @returns ISharedStateRegistryResponse object
|
|
29
|
+
*/
|
|
30
|
+
export declare const useSharedStateRegistry: (results: IAzureContainerResults | undefined) => ISharedStateRegistryResponse;
|
|
31
|
+
//# sourceMappingURL=useSharedStateRegistry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useSharedStateRegistry.d.ts","sourceRoot":"","sources":["../../src/internal-hooks/useSharedStateRegistry.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,EACH,uBAAuB,EACvB,sBAAsB,EACtB,4BAA4B,EAE5B,8BAA8B,EAC9B,uBAAuB,EAC1B,MAAM,UAAU,CAAC;AAElB,MAAM,WAAW,4BAA4B;IACzC;;OAEG;IACH,4BAA4B,EAAE,4BAA4B,CAAC;IAC3D;;OAEG;IACH,8BAA8B,EAAE,8BAA8B,CAAC;IAC/D;;OAEG;IACH,iBAAiB,EAAE,uBAAuB,CAAC;IAC3C;;OAEG;IACH,iBAAiB,EAAE,uBAAuB,CAAC;CAC9C;AAED;;;;;GAKG;AACH,eAAO,MAAM,sBAAsB,YACtB,sBAAsB,GAAG,SAAS,KAC5C,4BAwHF,CAAC"}
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
3
|
+
* Licensed under the Microsoft Live Share SDK License.
|
|
4
|
+
*/
|
|
5
|
+
import React from "react";
|
|
6
|
+
/**
|
|
7
|
+
* Hook used internally to keep track of the SharedSetStateActionMap for each unique key. It sets state values for provided keys and updates components listening to the values.
|
|
8
|
+
*
|
|
9
|
+
* @param results IAzureContainerResults response or undefined
|
|
10
|
+
* @returns ISharedStateRegistryResponse object
|
|
11
|
+
*/
|
|
12
|
+
export const useSharedStateRegistry = (results) => {
|
|
13
|
+
const registeredSharedSetStateActionMapRef = React.useRef(new Map());
|
|
14
|
+
/**
|
|
15
|
+
* @see ISharedStateRegistryResponse.registerSharedSetStateAction
|
|
16
|
+
*/
|
|
17
|
+
const registerSharedSetStateAction = React.useCallback((uniqueKey, componentId, setLocalStateAction) => {
|
|
18
|
+
let actionsMap = registeredSharedSetStateActionMapRef.current.get(uniqueKey);
|
|
19
|
+
if (actionsMap) {
|
|
20
|
+
if (!actionsMap.has(componentId)) {
|
|
21
|
+
actionsMap.set(componentId, setLocalStateAction);
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
else {
|
|
25
|
+
actionsMap = new Map();
|
|
26
|
+
actionsMap.set(componentId, setLocalStateAction);
|
|
27
|
+
registeredSharedSetStateActionMapRef.current.set(uniqueKey, actionsMap);
|
|
28
|
+
}
|
|
29
|
+
// Set initial values, if known
|
|
30
|
+
const stateMap = results === null || results === void 0 ? void 0 : results.container.initialObjects.TURBO_STATE_MAP;
|
|
31
|
+
const initialValue = stateMap === null || stateMap === void 0 ? void 0 : stateMap.get(uniqueKey);
|
|
32
|
+
if (initialValue) {
|
|
33
|
+
setLocalStateAction(initialValue);
|
|
34
|
+
}
|
|
35
|
+
}, [results]);
|
|
36
|
+
/**
|
|
37
|
+
* @see ISharedStateRegistryResponse.unregisterSharedSetStateAction
|
|
38
|
+
*/
|
|
39
|
+
const unregisterSharedSetStateAction = React.useCallback((uniqueKey, componentId) => {
|
|
40
|
+
let actionsMap = registeredSharedSetStateActionMapRef.current.get(uniqueKey);
|
|
41
|
+
if (actionsMap === null || actionsMap === void 0 ? void 0 : actionsMap.has(componentId)) {
|
|
42
|
+
actionsMap.delete(componentId);
|
|
43
|
+
}
|
|
44
|
+
}, []);
|
|
45
|
+
/**
|
|
46
|
+
* @see ISharedStateRegistryResponse.updateSharedState
|
|
47
|
+
*/
|
|
48
|
+
const updateSharedState = React.useCallback((uniqueKey, value) => {
|
|
49
|
+
if (!results)
|
|
50
|
+
return;
|
|
51
|
+
const { container } = results;
|
|
52
|
+
const stateMap = container.initialObjects
|
|
53
|
+
.TURBO_STATE_MAP;
|
|
54
|
+
stateMap.set(uniqueKey, value);
|
|
55
|
+
}, [results]);
|
|
56
|
+
/**
|
|
57
|
+
* @see ISharedStateRegistryResponse.deleteSharedState
|
|
58
|
+
*/
|
|
59
|
+
const deleteSharedState = React.useCallback((uniqueKey) => {
|
|
60
|
+
if (!results)
|
|
61
|
+
return;
|
|
62
|
+
const { container } = results;
|
|
63
|
+
let actionsMap = registeredSharedSetStateActionMapRef.current.get(uniqueKey);
|
|
64
|
+
actionsMap === null || actionsMap === void 0 ? void 0 : actionsMap.clear();
|
|
65
|
+
const stateMap = container.initialObjects
|
|
66
|
+
.TURBO_STATE_MAP;
|
|
67
|
+
stateMap.delete(uniqueKey);
|
|
68
|
+
}, [results]);
|
|
69
|
+
React.useEffect(() => {
|
|
70
|
+
if (!results)
|
|
71
|
+
return;
|
|
72
|
+
const { container } = results;
|
|
73
|
+
const stateMap = container.initialObjects.TURBO_STATE_MAP;
|
|
74
|
+
const valueChangedListener = (changed) => {
|
|
75
|
+
if (registeredSharedSetStateActionMapRef.current.has(changed.key)) {
|
|
76
|
+
const value = stateMap.get(changed.key);
|
|
77
|
+
const actionMap = registeredSharedSetStateActionMapRef.current.get(changed.key);
|
|
78
|
+
actionMap === null || actionMap === void 0 ? void 0 : actionMap.forEach((setLocalStateHandler) => {
|
|
79
|
+
setLocalStateHandler(value);
|
|
80
|
+
});
|
|
81
|
+
}
|
|
82
|
+
};
|
|
83
|
+
stateMap.on("valueChanged", valueChangedListener);
|
|
84
|
+
// Set initial values
|
|
85
|
+
stateMap.forEach((value, key) => {
|
|
86
|
+
const actionMap = registeredSharedSetStateActionMapRef.current.get(key);
|
|
87
|
+
actionMap === null || actionMap === void 0 ? void 0 : actionMap.forEach((setLocalStateHandler) => {
|
|
88
|
+
setLocalStateHandler(value);
|
|
89
|
+
});
|
|
90
|
+
});
|
|
91
|
+
return () => {
|
|
92
|
+
stateMap.off("valueChanged", valueChangedListener);
|
|
93
|
+
};
|
|
94
|
+
}, [results]);
|
|
95
|
+
return {
|
|
96
|
+
registerSharedSetStateAction,
|
|
97
|
+
unregisterSharedSetStateAction,
|
|
98
|
+
updateSharedState,
|
|
99
|
+
deleteSharedState,
|
|
100
|
+
};
|
|
101
|
+
};
|
|
102
|
+
//# sourceMappingURL=useSharedStateRegistry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useSharedStateRegistry.js","sourceRoot":"","sources":["../../src/internal-hooks/useSharedStateRegistry.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
3
|
+
* Licensed under the MIT License.
|
|
4
|
+
*/
|
|
5
|
+
import { MutableRefObject } from "react";
|
|
6
|
+
export declare function useStateRef<T>(initialValue: T): [T, MutableRefObject<T>, (value: T) => void];
|
|
7
|
+
//# sourceMappingURL=useStateRef.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useStateRef.d.ts","sourceRoot":"","sources":["../../src/internal-hooks/useStateRef.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAiC,gBAAgB,EAAE,MAAM,OAAO,CAAC;AAExE,wBAAgB,WAAW,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,gBAAgB,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,IAAI,CAAC,CAa5F"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
3
|
+
* Licensed under the MIT License.
|
|
4
|
+
*/
|
|
5
|
+
import { useState, useRef, useCallback } from "react";
|
|
6
|
+
export function useStateRef(initialValue) {
|
|
7
|
+
const reference = useRef(initialValue);
|
|
8
|
+
const [state, setState] = useState(reference.current);
|
|
9
|
+
const setValue = useCallback((value) => {
|
|
10
|
+
reference.current = value;
|
|
11
|
+
setState(reference.current);
|
|
12
|
+
}, [reference, setState]);
|
|
13
|
+
return [state, reference, setValue];
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=useStateRef.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useStateRef.js","sourceRoot":"","sources":["../../src/internal-hooks/useStateRef.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAoB,MAAM,OAAO,CAAC;AAExE,MAAM,UAAU,WAAW,CAAI,YAAe;IAC5C,MAAM,SAAS,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC;IACvC,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;IAEtD,MAAM,QAAQ,GAAG,WAAW,CAC1B,CAAC,KAAQ,EAAE,EAAE;QACX,SAAS,CAAC,OAAO,GAAG,KAAK,CAAC;QAC1B,QAAQ,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;IAC9B,CAAC,EACD,CAAC,SAAS,EAAE,QAAQ,CAAC,CACtB,CAAC;IAEF,OAAO,CAAC,KAAK,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;AACtC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/live-hooks/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,wBAAwB,CAAC;AACvC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC;AAChC,cAAc,gBAAgB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/live-hooks/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,wBAAwB,CAAC;AACvC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC;AAChC,cAAc,gBAAgB,CAAC"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
3
|
+
* Licensed under the Microsoft Live Share SDK License.
|
|
4
|
+
*/
|
|
5
|
+
import { UserMeetingRole } from "@microsoft/live-share";
|
|
6
|
+
import { IUseLiveAICompletionResults } from "../types";
|
|
7
|
+
/**
|
|
8
|
+
* React hook for using a Live Share Turbo `LiveAICompletion`. Intended for use with OpenAI's Completion API.
|
|
9
|
+
*
|
|
10
|
+
* @remarks
|
|
11
|
+
* Use this hook to set up an `LiveAICompletion` object, which is used for using AI completions collaboratively at minimal cost.
|
|
12
|
+
*
|
|
13
|
+
* @param uniqueKey the unique key for the `LiveAICompletion`. If one does not yet exist, a new one.
|
|
14
|
+
* @param onGetCompletion React useCallback function that returns a Promise<string> for the latest `promptValue`. Function is intended to
|
|
15
|
+
* communicate with a backend API that uses OpenAI's Completion API.
|
|
16
|
+
* @param allowedRoles Optional. The meeting roles eligible to send events through this object.
|
|
17
|
+
* @param defaultPromptValue Optional. Text that sets the default prompt value. Default value is an empty string.
|
|
18
|
+
* @param autoCompletions Optional. Stateful boolean that when true, will automatically send completions when the `promptValue` changes. Default value is
|
|
19
|
+
* false.
|
|
20
|
+
* @param debounceDelayMilliseconds Optional. Stateful number that changes the debounce interval when `autoCompletions` is true. Default value is 2500.
|
|
21
|
+
* @param lockPrompt Optional. Stateful boolean that when true, will restrict prompt changes to only the user with `haveCompletionLock` set to true. Default
|
|
22
|
+
* value is false.
|
|
23
|
+
* @param lockCompletion Optional. Stateful boolean that when true, will restrict manual completion changes to only the user with `haveCompletionLock`
|
|
24
|
+
* set to true. This does not impact the `autoCompletions` setting, because `autoCompletions` already has this behavior. Default value is false.
|
|
25
|
+
*
|
|
26
|
+
* @returns IUseLiveAICompletionResults object that contains stateful responses and callback methods from `LiveAICompletion`.
|
|
27
|
+
*/
|
|
28
|
+
export declare const useLiveAICompletion: (uniqueKey: string, onGetCompletion: (promptValue: string) => Promise<string>, allowedRoles?: UserMeetingRole[], defaultPromptValue?: string, autoCompletions?: boolean, debounceDelayMilliseconds?: number, lockPrompt?: boolean, lockCompletion?: boolean) => IUseLiveAICompletionResults;
|
|
29
|
+
//# sourceMappingURL=useLiveAICompletion.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useLiveAICompletion.d.ts","sourceRoot":"","sources":["../../src/live-hooks/useLiveAICompletion.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAOxD,OAAO,EAAE,2BAA2B,EAAE,MAAM,UAAU,CAAC;AAGvD;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,eAAO,MAAM,mBAAmB,cACjB,MAAM,iCACc,MAAM,KAAK,QAAQ,MAAM,CAAC,iBAC1C,eAAe,EAAE,uBACX,MAAM,oBACT,OAAO,8BACG,MAAM,eACrB,OAAO,mBACH,OAAO,KACzB,2BAyMF,CAAC"}
|