diff --git a/.changeset/beige-candles-sleep.md b/.changeset/beige-candles-sleep.md new file mode 100644 index 000000000000..5fd1ca70d4f7 --- /dev/null +++ b/.changeset/beige-candles-sleep.md @@ -0,0 +1,16 @@ +--- +"fluid-framework": minor +"@fluidframework/presence": minor +"__section": deprecation +--- +`getPresence` from `@fluidframework/presence` is deprecated and will be removed in a future release. + +Now `getPresence` is available for import from the `fluid-framework` package. + +To prepare, make changes following this pattern: +```diff +-import { getPresence } from "@fluidframework/presence/beta"; ++import { getPresence } from "fluid-framework/beta"; +``` + +See [issue #26397](https://github.com/microsoft/FluidFramework/issues/26397) for more details. diff --git a/docs/docs/build/presence.mdx b/docs/docs/build/presence.mdx index a443edade6c1..4b876f120cb0 100644 --- a/docs/docs/build/presence.mdx +++ b/docs/docs/build/presence.mdx @@ -173,7 +173,7 @@ function logOthersCounters(counterTracker: LatestMap): void { To access Presence APIs, use `getPresence()` with any `IFluidContainer`. ```typescript -import { getPresence } from "@fluidframework/presence/beta"; +import { getPresence } from "fluid-framework/beta"; function usePresence(container: IFluidContainer): void { const presence = getPresence(container); diff --git a/examples/apps/presence-tracker/src/app.ts b/examples/apps/presence-tracker/src/app.ts index 55e0229e47d1..a820b9a72a53 100644 --- a/examples/apps/presence-tracker/src/app.ts +++ b/examples/apps/presence-tracker/src/app.ts @@ -3,13 +3,10 @@ * Licensed under the MIT License. */ -import { - getPresence, - type AttendeeId, - type AttendeeStatus, -} from "@fluidframework/presence/beta"; +import type { AttendeeId, AttendeeStatus } from "@fluidframework/presence/beta"; import { TinyliciousClient } from "@fluidframework/tinylicious-client"; import type { ContainerSchema, IFluidContainer } from "fluid-framework"; +import { getPresence } from "fluid-framework/beta"; import { FocusTracker } from "./FocusTracker.js"; import { MouseTracker } from "./MouseTracker.js"; diff --git a/examples/service-clients/azure-client/external-controller/src/app.ts b/examples/service-clients/azure-client/external-controller/src/app.ts index 3d7818c22fc1..9849f5f4d871 100644 --- a/examples/service-clients/azure-client/external-controller/src/app.ts +++ b/examples/service-clients/azure-client/external-controller/src/app.ts @@ -5,9 +5,9 @@ import { AzureClient, type AzureContainerServices } from "@fluidframework/azure-client"; import { createDevtoolsLogger, initializeDevtools } from "@fluidframework/devtools/beta"; -import { getPresence } from "@fluidframework/presence/beta"; import { createChildLogger } from "@fluidframework/telemetry-utils/legacy"; import type { IFluidContainer } from "fluid-framework"; +import { getPresence } from "fluid-framework/beta"; import { DiceRollerController, type DieValue } from "./controller.js"; import { diff --git a/packages/framework/fluid-framework/api-report/fluid-framework.alpha.api.md b/packages/framework/fluid-framework/api-report/fluid-framework.alpha.api.md index 340ab636ced3..3a6b35f57112 100644 --- a/packages/framework/fluid-framework/api-report/fluid-framework.alpha.api.md +++ b/packages/framework/fluid-framework/api-report/fluid-framework.alpha.api.md @@ -592,6 +592,12 @@ export function generateSchemaFromSimpleSchema(simple: SimpleTreeSchema): TreeSc // @alpha export function getJsonSchema(schema: ImplicitAllowedTypes, options: Required): JsonTreeSchema; +// @beta +export const getPresence: (fluidContainer: IFluidContainer) => Presence; + +// @alpha +export function getPresenceAlpha(fluidContainer: IFluidContainer): PresenceWithNotifications; + // @alpha export function getSimpleSchema(schema: ImplicitFieldSchema): SimpleTreeSchema; diff --git a/packages/framework/fluid-framework/api-report/fluid-framework.beta.api.md b/packages/framework/fluid-framework/api-report/fluid-framework.beta.api.md index 43f8f9bf5d86..dbb1540cdc73 100644 --- a/packages/framework/fluid-framework/api-report/fluid-framework.beta.api.md +++ b/packages/framework/fluid-framework/api-report/fluid-framework.beta.api.md @@ -303,6 +303,9 @@ export const ForestTypeOptimized: ForestType; // @beta export const ForestTypeReference: ForestType; +// @beta +export const getPresence: (fluidContainer: IFluidContainer) => Presence; + // @public export interface IConnection { readonly id: string; diff --git a/packages/framework/fluid-framework/api-report/fluid-framework.legacy.beta.api.md b/packages/framework/fluid-framework/api-report/fluid-framework.legacy.beta.api.md index 39a844b79a76..b9897efe31d0 100644 --- a/packages/framework/fluid-framework/api-report/fluid-framework.legacy.beta.api.md +++ b/packages/framework/fluid-framework/api-report/fluid-framework.legacy.beta.api.md @@ -306,6 +306,9 @@ export const ForestTypeOptimized: ForestType; // @beta export const ForestTypeReference: ForestType; +// @beta +export const getPresence: (fluidContainer: IFluidContainer) => Presence; + // @beta @legacy export interface IBranchOrigin { id: string; diff --git a/packages/framework/fluid-framework/src/index.ts b/packages/framework/fluid-framework/src/index.ts index c5826ec02116..014b216bd8a9 100644 --- a/packages/framework/fluid-framework/src/index.ts +++ b/packages/framework/fluid-framework/src/index.ts @@ -33,6 +33,7 @@ export type { MemberChangedListener, Myself, } from "@fluidframework/fluid-static"; +export { getPresence, getPresenceAlpha } from "@fluidframework/fluid-static/internal"; export type { SharedObjectKind } from "@fluidframework/shared-object-base"; export type { IErrorBase, diff --git a/packages/framework/fluid-static/README.md b/packages/framework/fluid-static/README.md index 233a8747c605..29f0b0eb1d42 100644 --- a/packages/framework/fluid-static/README.md +++ b/packages/framework/fluid-static/README.md @@ -30,6 +30,10 @@ For more information on the related support guarantees, see [API Support Levels] To access the `public` ([SemVer](https://semver.org/)) APIs, import via `@fluidframework/fluid-static` like normal. +To access the `beta` APIs, import via `@fluidframework/fluid-static/beta`. + +To access the `alpha` APIs, import via `@fluidframework/fluid-static/alpha`. + To access the `legacy` APIs, import via `@fluidframework/fluid-static/legacy`. ## API Documentation diff --git a/packages/framework/fluid-static/api-extractor/api-extractor-lint-alpha.cjs.json b/packages/framework/fluid-static/api-extractor/api-extractor-lint-alpha.cjs.json new file mode 100644 index 000000000000..6e31eb54fe1a --- /dev/null +++ b/packages/framework/fluid-static/api-extractor/api-extractor-lint-alpha.cjs.json @@ -0,0 +1,5 @@ +{ + "$schema": "https://developer.microsoft.com/json-schemas/api-extractor/v7/api-extractor.schema.json", + "extends": "/../../../common/build/build-common/api-extractor-lint.entrypoint.json", + "mainEntryPointFilePath": "/dist/alpha.d.ts" +} diff --git a/packages/framework/fluid-static/api-extractor/api-extractor-lint-alpha.esm.json b/packages/framework/fluid-static/api-extractor/api-extractor-lint-alpha.esm.json new file mode 100644 index 000000000000..985eb4c274d5 --- /dev/null +++ b/packages/framework/fluid-static/api-extractor/api-extractor-lint-alpha.esm.json @@ -0,0 +1,5 @@ +{ + "$schema": "https://developer.microsoft.com/json-schemas/api-extractor/v7/api-extractor.schema.json", + "extends": "/../../../common/build/build-common/api-extractor-lint.entrypoint.json", + "mainEntryPointFilePath": "/lib/alpha.d.ts" +} diff --git a/packages/framework/fluid-static/api-extractor/api-extractor-lint-beta.cjs.json b/packages/framework/fluid-static/api-extractor/api-extractor-lint-beta.cjs.json new file mode 100644 index 000000000000..7af093bb825b --- /dev/null +++ b/packages/framework/fluid-static/api-extractor/api-extractor-lint-beta.cjs.json @@ -0,0 +1,5 @@ +{ + "$schema": "https://developer.microsoft.com/json-schemas/api-extractor/v7/api-extractor.schema.json", + "extends": "/../../../common/build/build-common/api-extractor-lint.entrypoint.json", + "mainEntryPointFilePath": "/dist/beta.d.ts" +} diff --git a/packages/framework/fluid-static/api-extractor/api-extractor-lint-beta.esm.json b/packages/framework/fluid-static/api-extractor/api-extractor-lint-beta.esm.json new file mode 100644 index 000000000000..82773789eaee --- /dev/null +++ b/packages/framework/fluid-static/api-extractor/api-extractor-lint-beta.esm.json @@ -0,0 +1,5 @@ +{ + "$schema": "https://developer.microsoft.com/json-schemas/api-extractor/v7/api-extractor.schema.json", + "extends": "/../../../common/build/build-common/api-extractor-lint.entrypoint.json", + "mainEntryPointFilePath": "/lib/beta.d.ts" +} diff --git a/packages/framework/fluid-static/api-extractor/api-extractor.current.json b/packages/framework/fluid-static/api-extractor/api-extractor.current.json index 6ae39a96d271..a7100e4f08f6 100644 --- a/packages/framework/fluid-static/api-extractor/api-extractor.current.json +++ b/packages/framework/fluid-static/api-extractor/api-extractor.current.json @@ -1,5 +1,8 @@ { "$schema": "https://developer.microsoft.com/json-schemas/api-extractor/v7/api-extractor.schema.json", "extends": "/../../../common/build/build-common/api-extractor-report.esm.current.json", - "mainEntryPointFilePath": "/lib/public.d.ts" + "mainEntryPointFilePath": "/lib/alpha.d.ts", + "apiReport": { + "reportVariants": ["public", "beta", "alpha"] + } } diff --git a/packages/framework/fluid-static/api-report/fluid-static.alpha.api.md b/packages/framework/fluid-static/api-report/fluid-static.alpha.api.md new file mode 100644 index 000000000000..1605662d6aff --- /dev/null +++ b/packages/framework/fluid-static/api-report/fluid-static.alpha.api.md @@ -0,0 +1,89 @@ +## Alpha API Report File for "@fluidframework/fluid-static" + +> Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/). + +```ts + +// @public +export type CompatibilityMode = "1" | "2"; + +// @public +export type ContainerAttachProps = T; + +// @public +export interface ContainerSchema { + readonly dynamicObjectTypes?: readonly SharedObjectKind[]; + readonly initialObjects: Record; +} + +// @beta +export const getPresence: (fluidContainer: IFluidContainer) => Presence; + +// @alpha +export function getPresenceAlpha(fluidContainer: IFluidContainer): PresenceWithNotifications; + +// @public +export interface IConnection { + readonly id: string; + readonly mode: "write" | "read"; +} + +// @public @sealed +export interface IFluidContainer extends IEventProvider { + attach(props?: ContainerAttachProps): Promise; + readonly attachState: AttachState; + connect(): void; + readonly connectionState: ConnectionState; + create(objectClass: SharedObjectKind): Promise; + disconnect(): void; + dispose(): void; + readonly disposed: boolean; + readonly initialObjects: InitialObjects; + readonly isDirty: boolean; +} + +// @public @sealed +export interface IFluidContainerEvents extends IEvent { + (event: "connected", listener: () => void): void; + (event: "disconnected", listener: () => void): void; + (event: "saved", listener: () => void): void; + (event: "dirty", listener: () => void): void; + (event: "disposed", listener: (error?: ICriticalContainerError) => void): any; +} + +// @public +export interface IMember { + readonly connections: IConnection[]; + readonly id: string; +} + +// @public +export type InitialObjects = { + [K in keyof T["initialObjects"]]: T["initialObjects"][K] extends SharedObjectKind ? TChannel : never; +}; + +// @public +export interface IServiceAudience extends IEventProvider> { + getMembers(): ReadonlyMap; + getMyself(): Myself | undefined; +} + +// @public +export interface IServiceAudienceEvents extends IEvent { + // @eventProperty + (event: "membersChanged", listener: () => void): void; + // @eventProperty + (event: "memberAdded", listener: MemberChangedListener): void; + // @eventProperty + (event: "memberRemoved", listener: MemberChangedListener): void; +} + +// @public +export type MemberChangedListener = (clientId: string, member: M) => void; + +// @public +export type Myself = M & { + readonly currentConnection: string; +}; + +``` diff --git a/packages/framework/fluid-static/api-report/fluid-static.beta.api.md b/packages/framework/fluid-static/api-report/fluid-static.beta.api.md index d79be0f31535..d6c77938eaec 100644 --- a/packages/framework/fluid-static/api-report/fluid-static.beta.api.md +++ b/packages/framework/fluid-static/api-report/fluid-static.beta.api.md @@ -16,6 +16,9 @@ export interface ContainerSchema { readonly initialObjects: Record; } +// @beta +export const getPresence: (fluidContainer: IFluidContainer) => Presence; + // @public export interface IConnection { readonly id: string; diff --git a/packages/framework/fluid-static/api-report/fluid-static.legacy.beta.api.md b/packages/framework/fluid-static/api-report/fluid-static.legacy.beta.api.md index d1bbb535f076..654c74417d15 100644 --- a/packages/framework/fluid-static/api-report/fluid-static.legacy.beta.api.md +++ b/packages/framework/fluid-static/api-report/fluid-static.legacy.beta.api.md @@ -25,6 +25,9 @@ export function createTreeContainerRuntimeFactory(props: { readonly minVersionForCollabOverride?: MinimumVersionForCollab; }): IRuntimeFactory; +// @beta +export const getPresence: (fluidContainer: IFluidContainer) => Presence; + // @public export interface IConnection { readonly id: string; diff --git a/packages/framework/fluid-static/package.json b/packages/framework/fluid-static/package.json index e4550fa93806..89fce61975ba 100644 --- a/packages/framework/fluid-static/package.json +++ b/packages/framework/fluid-static/package.json @@ -23,6 +23,26 @@ "default": "./dist/index.js" } }, + "./beta": { + "import": { + "types": "./lib/beta.d.ts", + "default": "./lib/index.js" + }, + "require": { + "types": "./dist/beta.d.ts", + "default": "./dist/index.js" + } + }, + "./alpha": { + "import": { + "types": "./lib/alpha.d.ts", + "default": "./lib/index.js" + }, + "require": { + "types": "./dist/alpha.d.ts", + "default": "./dist/index.js" + } + }, "./legacy": { "import": { "types": "./lib/legacy.d.ts", @@ -65,8 +85,12 @@ "check:biome": "biome check .", "check:exports": "concurrently \"npm:check:exports:*\"", "check:exports:bundle-release-tags": "api-extractor run --config api-extractor/api-extractor-lint-bundle.json", + "check:exports:cjs:alpha": "api-extractor run --config api-extractor/api-extractor-lint-alpha.cjs.json", + "check:exports:cjs:beta": "api-extractor run --config api-extractor/api-extractor-lint-beta.cjs.json", "check:exports:cjs:legacy": "api-extractor run --config api-extractor/api-extractor-lint-legacy.cjs.json", "check:exports:cjs:public": "api-extractor run --config api-extractor/api-extractor-lint-public.cjs.json", + "check:exports:esm:alpha": "api-extractor run --config api-extractor/api-extractor-lint-alpha.esm.json", + "check:exports:esm:beta": "api-extractor run --config api-extractor/api-extractor-lint-beta.esm.json", "check:exports:esm:legacy": "api-extractor run --config api-extractor/api-extractor-lint-legacy.esm.json", "check:exports:esm:public": "api-extractor run --config api-extractor/api-extractor-lint-public.esm.json", "check:format": "npm run check:biome", @@ -114,6 +138,8 @@ }, "dependencies": { "@fluid-internal/client-utils": "workspace:~", + "@fluid-internal/presence-definitions": "workspace:~", + "@fluid-internal/presence-runtime": "workspace:~", "@fluidframework/aqueduct": "workspace:~", "@fluidframework/container-definitions": "workspace:~", "@fluidframework/container-loader": "workspace:~", diff --git a/packages/framework/fluid-static/src/getPresence.ts b/packages/framework/fluid-static/src/getPresence.ts new file mode 100644 index 000000000000..a053736dec66 --- /dev/null +++ b/packages/framework/fluid-static/src/getPresence.ts @@ -0,0 +1,43 @@ +/*! + * Copyright (c) Microsoft Corporation and contributors. All rights reserved. + * Licensed under the MIT License. + */ + +import type { + Presence, + PresenceWithNotifications, +} from "@fluid-internal/presence-definitions"; +import { + ContainerPresenceFactory, + extensionId, + // eslint-disable-next-line import-x/no-internal-modules -- any import spec is allowed for @fluid-internal/ imports - eslint-config-fluid needs updated +} from "@fluid-internal/presence-runtime/extension"; +import { assert } from "@fluidframework/core-utils/internal"; + +import type { IFluidContainer } from "./fluidContainer.js"; +import { isInternalFluidContainer } from "./fluidContainer.js"; + +/** + * Acquire a {@link @fluidframework/presence#Presence} from a Fluid Container + * @param fluidContainer - Fluid Container to acquire the map from + * @returns the {@link @fluidframework/presence#Presence} + * + * @beta + */ +export const getPresence: (fluidContainer: IFluidContainer) => Presence = getPresenceAlpha; + +/** + * Acquire a {@link @fluidframework/presence#PresenceWithNotifications} from a Fluid Container + * @param fluidContainer - Fluid Container to acquire the map from + * @returns the {@link @fluidframework/presence#PresenceWithNotifications} + * + * @alpha + */ +export function getPresenceAlpha(fluidContainer: IFluidContainer): PresenceWithNotifications { + assert( + isInternalFluidContainer(fluidContainer), + 0xa2f /* IFluidContainer was not recognized. Only Containers generated by the Fluid Framework are supported. */, + ); + const presence = fluidContainer.acquireExtension(extensionId, ContainerPresenceFactory); + return presence; +} diff --git a/packages/framework/fluid-static/src/index.ts b/packages/framework/fluid-static/src/index.ts index 1eb8a2251bcd..bef5b736a6ff 100644 --- a/packages/framework/fluid-static/src/index.ts +++ b/packages/framework/fluid-static/src/index.ts @@ -17,6 +17,7 @@ export { type IFluidContainerInternal, type InitialObjects, } from "./fluidContainer.js"; +export { getPresence, getPresenceAlpha } from "./getPresence.js"; export { createDOProviderContainerRuntimeFactory } from "./rootDataObject.js"; export { createServiceAudience } from "./serviceAudience.js"; export { createTreeContainerRuntimeFactory } from "./treeRootDataObject.js"; diff --git a/packages/framework/presence/README.md b/packages/framework/presence/README.md index c4304507b81e..26d9de1eee52 100644 --- a/packages/framework/presence/README.md +++ b/packages/framework/presence/README.md @@ -203,7 +203,7 @@ function logOthersCounters(counterTracker: LatestMap): void { To access Presence APIs, use `getPresence()` with any `IFluidContainer`. ```typescript -import { getPresence } from "@fluidframework/presence/beta"; +import { getPresence } from "fluid-framework/beta"; function usePresence(container: IFluidContainer): void { const presence = getPresence(container); diff --git a/packages/framework/presence/api-report/presence.alpha.api.md b/packages/framework/presence/api-report/presence.alpha.api.md index 608ea0ac5214..153582a8147f 100644 --- a/packages/framework/presence/api-report/presence.alpha.api.md +++ b/packages/framework/presence/api-report/presence.alpha.api.md @@ -49,12 +49,9 @@ export interface BroadcastControlSettings { // @beta export type ClientConnectionId = string; -// @beta +// @beta @deprecated export const getPresence: (fluidContainer: IFluidContainer) => Presence; -// @alpha -export function getPresenceAlpha(fluidContainer: IFluidContainer): PresenceWithNotifications; - // @beta @system export namespace InternalPresenceTypes { // @system diff --git a/packages/framework/presence/api-report/presence.beta.api.md b/packages/framework/presence/api-report/presence.beta.api.md index 72e017fdd007..a4e963b3e1f3 100644 --- a/packages/framework/presence/api-report/presence.beta.api.md +++ b/packages/framework/presence/api-report/presence.beta.api.md @@ -49,7 +49,7 @@ export interface BroadcastControlSettings { // @beta export type ClientConnectionId = string; -// @beta +// @beta @deprecated export const getPresence: (fluidContainer: IFluidContainer) => Presence; // @beta @system diff --git a/packages/framework/presence/api-report/presence.legacy.alpha.api.md b/packages/framework/presence/api-report/presence.legacy.alpha.api.md index 3bcb5f313475..f1ddf648dfb4 100644 --- a/packages/framework/presence/api-report/presence.legacy.alpha.api.md +++ b/packages/framework/presence/api-report/presence.legacy.alpha.api.md @@ -49,12 +49,9 @@ export interface BroadcastControlSettings { // @beta export type ClientConnectionId = string; -// @beta +// @beta @deprecated export const getPresence: (fluidContainer: IFluidContainer) => Presence; -// @alpha -export function getPresenceAlpha(fluidContainer: IFluidContainer): PresenceWithNotifications; - // @alpha @legacy export function getPresenceFromDataStoreContext(context: IFluidDataStoreContext): Presence; diff --git a/packages/framework/presence/src/getPresence.ts b/packages/framework/presence/src/getPresence.ts index 3c748e63aff0..fbe631a775b2 100644 --- a/packages/framework/presence/src/getPresence.ts +++ b/packages/framework/presence/src/getPresence.ts @@ -3,17 +3,14 @@ * Licensed under the MIT License. */ -import type { - Presence, - PresenceWithNotifications, -} from "@fluid-internal/presence-definitions"; +import type { Presence } from "@fluid-internal/presence-definitions"; import { ContainerPresenceFactory, extensionId, } from "@fluid-internal/presence-runtime/extension"; import { assert } from "@fluidframework/core-utils/internal"; import type { IFluidContainer } from "@fluidframework/fluid-static"; -import { isInternalFluidContainer } from "@fluidframework/fluid-static/internal"; +import { getPresenceAlpha } from "@fluidframework/fluid-static/internal"; import type { FluidDataStoreContextInternal, IFluidDataStoreContext, @@ -25,24 +22,11 @@ import type { * @returns the {@link Presence} * * @beta - */ -export const getPresence: (fluidContainer: IFluidContainer) => Presence = getPresenceAlpha; - -/** - * Acquire a {@link PresenceWithNotifications} from a Fluid Container - * @param fluidContainer - Fluid Container to acquire the map from - * @returns the {@link PresenceWithNotifications} * - * @alpha + * @deprecated Import from `fluid-framework/beta` instead. This export will be removed in the 2.110.0 release. + * See {@link https://github.com/microsoft/FluidFramework/issues/26397} */ -export function getPresenceAlpha(fluidContainer: IFluidContainer): PresenceWithNotifications { - assert( - isInternalFluidContainer(fluidContainer), - 0xa2f /* IFluidContainer was not recognized. Only Containers generated by the Fluid Framework are supported. */, - ); - const presence = fluidContainer.acquireExtension(extensionId, ContainerPresenceFactory); - return presence; -} +export const getPresence: (fluidContainer: IFluidContainer) => Presence = getPresenceAlpha; function assertContextHasExtensionProvider( context: IFluidDataStoreContext, diff --git a/packages/framework/presence/src/index.ts b/packages/framework/presence/src/index.ts index 7cd50586fe9c..4d291f8d3a2a 100644 --- a/packages/framework/presence/src/index.ts +++ b/packages/framework/presence/src/index.ts @@ -81,6 +81,5 @@ export { // Local exports export { getPresence, - getPresenceAlpha, getPresenceFromDataStoreContext, } from "./getPresence.js"; diff --git a/packages/service-clients/end-to-end-tests/azure-client/src/test/multiprocess/childClient.tool.ts b/packages/service-clients/end-to-end-tests/azure-client/src/test/multiprocess/childClient.tool.ts index 72a936cacb3b..4a752069bf74 100644 --- a/packages/service-clients/end-to-end-tests/azure-client/src/test/multiprocess/childClient.tool.ts +++ b/packages/service-clients/end-to-end-tests/azure-client/src/test/multiprocess/childClient.tool.ts @@ -17,8 +17,8 @@ import { ConnectionState } from "@fluidframework/container-loader"; import type { ITelemetryBaseLogger, LogLevel } from "@fluidframework/core-interfaces"; import type { ScopeType } from "@fluidframework/driver-definitions/legacy"; import type { ContainerSchema, IFluidContainer } from "@fluidframework/fluid-static"; +import { getPresence } from "@fluidframework/fluid-static/beta"; import { - getPresence, type Attendee, type Presence, StateFactory, diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 9ca4b9e5bf9d..bd2f576c9793 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -11434,6 +11434,12 @@ importers: '@fluid-internal/client-utils': specifier: workspace:~ version: link:../../common/client-utils + '@fluid-internal/presence-definitions': + specifier: workspace:~ + version: link:../presence-definitions + '@fluid-internal/presence-runtime': + specifier: workspace:~ + version: link:../presence-runtime '@fluidframework/aqueduct': specifier: workspace:~ version: link:../aqueduct