Dependency updates only.
-
The inbound and outbound properties have been removed from IDeltaManager (#22282) 45a57693f2
The inbound and outbound properties were deprecated in version 2.0.0-rc.2.0.0 and have been removed from
IDeltaManager
.IDeltaManager.inbound
contained functionality that could break core runtime features such as summarization and processing batches if used improperly. Data loss or corruption could occur whenIDeltaManger.inbound.pause()
orIDeltaManager.inbound.resume()
were called.Similarly,
IDeltaManager.outbound
contained functionality that could break core runtime features such as generation of batches and chunking. Data loss or corruption could occur whenIDeltaManger.inbound.pause()
orIDeltaManager.inbound.resume()
were called.- Alternatives to
IDeltaManager.inbound.on("op", ...)
areIDeltaManager.on("op", ...)
- Alternatives to calling
IDeltaManager.inbound.pause
,IDeltaManager.outbound.pause
forIContainer
disconnect useIContainer.disconnect
. - Alternatives to calling
IDeltaManager.inbound.resume
,IDeltaManager.outbound.resume
forIContainer
reconnect useIContainer.connect
.
- Alternatives to
Dependency updates only.
Dependency updates only.
Dependency updates only.
Dependency updates only.
Dependency updates only.
-
Update to TypeScript 5.4 (#21214) 0e6256c722
Update package implementations to use TypeScript 5.4.5.
Dependency updates only.
-
Packages now use package.json "exports" and require modern module resolution 97d68aa06b
Fluid Framework packages have been updated to use the package.json "exports" field to define explicit entry points for both TypeScript types and implementation code.
This means that using Fluid Framework packages require the following TypeScript settings in tsconfig.json:
"moduleResolution": "Node16"
with"module": "Node16"
"moduleResolution": "Bundler"
with"module": "ESNext"
We recommend using Node16/Node16 unless absolutely necessary. That will produce transpiled JavaScript that is suitable for use with modern versions of Node.js and Bundlers. See the TypeScript documentation for more information regarding the module and moduleResolution options.
Node10 moduleResolution is not supported; it does not support Fluid Framework's API structuring pattern that is used to distinguish stable APIs from those that are in development.
-
aqueduct: Deprecated PureDataObjectFactory.createRootInstance and replaced with PureDataObjectFactory.createInstanceWithDataStore (#19471) 0a79375ccb
This was deprecated because
PureDataObjectFactory.createRootInstance
has an issue at scale.PureDataObjectFactory.createRootInstance
used the old method of creatingPureDataObject
s with names. The issue was that simultaneous creations could happen, and the old api had no good way of dealing with those types of collisions. This version slightly improved it by resolving those collisions by assuming whatever datastore was created with the alias orrootDataStoreId
would just return that datastore. This will work for developers who expect the same type ofPureDataObject
to be returned from thecreateRootInstance
api, but if a potentially differentPureDataObject
would be returned, then this api would give you the wrong typing.For a replacement api see
PureDataObjectFactory.createInstanceWithDataStore
.This was done as a replacement of
PureDataObjectFactory.createRootInstance
. This exposes theIDataStore
interface in the form of[PureDataObject, IDataStore]
.IDataStore
provides the opportunity for developers to use theIDataStore.trySetAlias
method. This can return 3 different scenariosSuccess
,Conflict
, orAlreadyAliased
. These scenarios can allow the developer to handle conflicts as they wish. -
aqueduct: PureDataObjectFactory.instantiateDataStore now returns IFluidDataStoreChannel (#19353) 3aad53da1e
The return type of
PureDataObjectFactory.instantiateDataStore
was changed fromFluidDataStoreRuntime
toIFluidDataStoreChannel
.
Dependency updates only.
-
aqueduct: Removed getDefaultObjectFromContainer, getObjectWithIdFromContainer and getObjectFromContainer 9a451d4946
The
getDefaultObjectFromContainer
,getObjectWithIdFromContainer
andgetObjectFromContainer
helper methods have been removed from @fluidframework/aqueduct. Please move all code usage to the newentryPoint
pattern.See Removing-IFluidRouter.md for more details.
-
data-object-base: Removed IFluidRouter from DataObject interfaces and classes 9a451d4946
The
IFluidRouter
property has been removed from a number of DataObject related classes:PureDataObject
LazyLoadedDataObject
TestFluidObject
Please migrate to the new
entryPoint
pattern or use the relevantrequest
method as necessary.See Removing-IFluidRouter.md for more details.
-
aqueduct: Removed IRootDataObjectFactory 9a451d4946
The
IRootDataObjectFactory
interface has been removed. Please remove all usage of it. -
aqueduct: Removed requestHandler utilities 9a451d4946
The following
requestHandler
utilities have been removed:makeModelRequestHandler
defaultFluidObjectRequestHandler
defaultRouteRequestHandler
mountableViewRequestHandler
createFluidObjectResponse
rootDataStoreRequestHandler
handleFromLegacyUri
RuntimeRequestHandlerBuilder
Please migrate all usage to the new
entryPoint
pattern.See Removing-IFluidRouter.md for more details.
-
aqueduct: Deprecated IRootDataObjectFactory (#18565) 030ab7adf9
The
IRootDataObjectFactory
interface has been deprecated and will be removed in a future major release. Please remove all usage of it.
Dependency updates only.
Dependency updates only.
Dependency updates only.
-
aqueduct: ContainerRuntimeFactory constructors have changed 871b3493dd
The following class constructors have been changed to allow for better flexible in arguments passed:
BaseContainerRuntimeFactory
ContainerRuntimeFactoryWithDefaultDataStore
RuntimeFactory
They now use a single object for constructor params. Example change to be made:
// Old new BaseContainerRuntimeFactory( myRegistryEntries, myDependencyContainer, myRequestHandlers, myRuntimeOptions, myProvideEntryPoint, ); // New new BaseContainerRuntimeFactory({ registryEntries: myRegistryEntries, dependencyContainer: myDependencyContainer, requestHandlers: myRequestHandlers, runtimeOptions: myRuntimeOptions, provideEntryPoint: myProvideEntryPoint, });
-
DEPRECATED: container-runtime: requestHandlers are deprecated 871b3493dd
The concept of
requestHandlers
has been deprecated. Please migrate all usage of the following APIs to the newentryPoint
pattern:requestHandler
property inContainerRuntime.loadRuntime(...)
RuntimeRequestHandler
RuntimeRequestHandlerBuilder
defaultFluidObjectRequestHandler(...)
defaultRouteRequestHandler(...)
mountableViewRequestHandler(...)
buildRuntimeRequestHandler(...)
createFluidObjectResponse(...)
handleFromLegacyUri(...)
rootDataStoreRequestHandler(...)
See Removing-IFluidRouter.md for more details.
-
DEPRECATED: container-loader: Various request related APIs have been deprecated 871b3493dd
Please remove all calls to the following functions and instead use the new
entryPoint
pattern:requestFluidObject
requestResolvedObjectFromContainer
getDefaultObjectFromContainer
getObjectWithIdFromContainer
getObjectFromContainer
See Removing-IFluidRouter.md for more details.
-
container-definitions: IContainer's and IDataStore's IFluidRouter capabilities are deprecated 871b3493dd
IFluidRouter
andrequest({ url: "/" })
onIContainer
andIDataStore
are deprecated and will be removed in a future major release. Please migrate all usage to the appropriategetEntryPoint()
orentryPoint
APIs.See Removing-IFluidRouter.md for more details.
-
test-utils: provideEntryPoint is required 871b3493dd
The optional
provideEntryPoint
method has become required on a number of constructors. A value will need to be provided to the following classes:BaseContainerRuntimeFactory
RuntimeFactory
ContainerRuntime
(constructor andloadRuntime
)FluidDataStoreRuntime
See testContainerRuntimeFactoryWithDefaultDataStore.ts for an example implemtation of
provideEntryPoint
for ContainerRuntime. See pureDataObjectFactory.ts for an example implementation ofprovideEntryPoint
for DataStoreRuntime.Subsequently, various
entryPoint
andgetEntryPoint()
endpoints have become required. Please see containerRuntime.ts for example implementations of these APIs.For more details, see Removing-IFluidRouter.md
-
Minimum TypeScript version now 5.1.6 871b3493dd
The minimum supported TypeScript version for Fluid 2.0 clients is now 5.1.6.
-
aqueduct: EventForwarder and IDisposable members removed from PureDataObject 871b3493dd
The
EventForwarder
andIDisposable
members ofPureDataObject
were deprecated in 2.0.0-internal.5.2.0 and have now been removed.If your code was overriding any methods/properties from
EventForwarder
and orIDisposable
on a class that inherits (directly or transitively) fromPureDataObject
, you'll have to remove theoverride
keyword.
Dependency updates only.
Dependency updates only.
-
PureDataObject temporarily extends EventForwarder and implements IDisposable again (#16846) 9825a692dd
PureDataObject
extendsEventForwarder
and implementsIDìsposable
again to ease the transition to2.0.0-internal.6.x
. These interfaces will no longer be implemented onPureDataObject
in version2.0.0-internal.7.0.0
.The original deprecation announcement for these members can be found here.
Once the change is re-applied in
2.0.0-internal.7.0.0
, if your code was overriding any methods/properties fromEventForwarder
and orIDisposable
on a class that inherits (directly or transitively) fromPureDataObject
, you'll have to remove theoverride
keyword. -
Remove use of @fluidframework/common-definitions (#16638) a8c81509c9
The @fluidframework/common-definitions package is being deprecated, so the following interfaces and types are now imported from the @fluidframework/core-interfaces package:
- interface IDisposable
- interface IErrorEvent
- interface IErrorEvent
- interface IEvent
- interface IEventProvider
- interface ILoggingError
- interface ITaggedTelemetryPropertyType
- interface ITelemetryBaseEvent
- interface ITelemetryBaseLogger
- interface ITelemetryErrorEvent
- interface ITelemetryGenericEvent
- interface ITelemetryLogger
- interface ITelemetryPerformanceEvent
- interface ITelemetryProperties
- type ExtendEventProvider
- type IEventThisPlaceHolder
- type IEventTransformer
- type ReplaceIEventThisPlaceHolder
- type ReplaceIEventThisPlaceHolder
- type TelemetryEventCategory
- type TelemetryEventPropertyType
Dependency updates only.
-
initializeEntryPoint
will become required 8abce8cdb4The optional
initializeEntryPoint
method has been added to a number of constructors. This method argument will become required in an upcoming release and a value will need to be provided to the following classes:BaseContainerRuntimeFactory
ContainerRuntimeFactoryWithDefaultDataStore
RuntimeFactory
ContainerRuntime
(constructor andloadRuntime
)FluidDataStoreRuntime
For an example implementation of
initializeEntryPoint
, see pureDataObjectFactory.ts.This work will replace the request pattern. See Removing-IFluidRouter.md for more info on this effort.
-
EventForwarder and IDisposable members removed from PureDataObject 8abce8cdb4
The EventForwarder and IDisposable members of PureDataObject were deprecated in 2.0.0-internal.5.2.0 and have now been removed.
-
Upgraded typescript transpilation target to ES2020 8abce8cdb4
Upgraded typescript transpilation target to ES2020. This is done in order to decrease the bundle sizes of Fluid Framework packages. This has provided size improvements across the board for ex. Loader, Driver, Runtime etc. Reduced bundle sizes helps to load lesser code in apps and hence also helps to improve the perf.If any app wants to target any older versions of browsers with which this target version is not compatible, then they can use packages like babel to transpile to a older target.
Dependency updates only.
Dependency updates only.
-
EventForwarder and IDisposable members deprecated from PureDataObject (#16201) 0e838fdb3e
The EventForwarder and IDisposable members have been deprecated from PureDataObject and will be removed in an upcoming release. The EventForwarder pattern was mostly unused by the current implementation, and is also recommended against generally (instead, register and forward events explicitly). The disposal implementation was incomplete and likely to cause poor behavior as the disposal was not observable by default. Inheritors of the PureDataObject can of course still implement their own disposal logic.
Dependency updates only.
-
The following functions and classes were deprecated in previous releases and have been removed: 8b242fdc79
PureDataObject.getFluidObjectFromDirectory
IProvideContainerRuntime
and itsIContainerRuntime
member.ContainerRuntime
'sIProvideContainerRuntime
has also been removed.
PureDataObject.getFluidObjectFromDirectory
has been deprecated and will be removed in an upcoming release. Instead prefer to interface directly with the directory and handles. 9238304c77
Dependency updates only.