fluid-framework 2.0.0-rc.4.0.6 → 2.0.0-rc.5.0.1
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/CHANGELOG.md +173 -0
- package/api-extractor/api-extractor-lint-bundle.json +5 -0
- package/api-extractor/api-extractor-lint-legacy.cjs.json +5 -0
- package/api-extractor/api-extractor-lint-legacy.esm.json +5 -0
- package/api-extractor/api-extractor-lint-public.cjs.json +5 -0
- package/api-extractor/api-extractor-lint-public.esm.json +5 -0
- package/api-extractor.json +1 -1
- package/api-report/{fluid-framework.api.md → fluid-framework.alpha.api.md} +520 -226
- package/api-report/fluid-framework.beta.api.md +921 -0
- package/api-report/fluid-framework.public.api.md +921 -0
- package/biome.jsonc +4 -0
- package/dist/index.d.ts +24 -5
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +15 -9
- package/dist/index.js.map +1 -1
- package/dist/legacy.d.ts +37 -33
- package/dist/public.d.ts +31 -29
- package/lib/index.d.ts +24 -5
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +16 -6
- package/lib/index.js.map +1 -1
- package/lib/legacy.d.ts +37 -33
- package/lib/public.d.ts +31 -29
- package/lib/tsdoc-metadata.json +1 -1
- package/package.json +27 -16
- package/src/index.ts +68 -14
- package/tsdoc.json +4 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,178 @@
|
|
|
1
1
|
# fluid-framework
|
|
2
2
|
|
|
3
|
+
## 2.0.0-rc.5.0.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- fluid-framework: Type Erase ISharedObjectKind ([#21081](https://github.com/microsoft/FluidFramework/pull/21081)) [78f228e370](https://github.com/microsoft/FluidFramework/commit/78f228e37055bd4d9a8f02b3a1eefebf4da9c59c)
|
|
8
|
+
|
|
9
|
+
A new type, `SharedObjectKind` is added as a type erased version of `ISharedObjectKind` and `DataObjectClass`.
|
|
10
|
+
|
|
11
|
+
This type fills the role of both `ISharedObjectKind` and `DataObjectClass` in the `@public` "declarative API" exposed in the `fluid-framework` package.
|
|
12
|
+
|
|
13
|
+
This allows several types referenced by `ISharedObjectKind` to be made `@alpha` as they should only need to be used by legacy code and users of the unstable/alpha/legacy "encapsulated API".
|
|
14
|
+
|
|
15
|
+
Access to these now less public types should not be required for users of the `@public` "declarative API" exposed in the `fluid-framework` package, but can still be accessed for those who need them under the `/legacy` import paths.
|
|
16
|
+
The full list of such types is:
|
|
17
|
+
|
|
18
|
+
- `SharedTree` as exported from `@fluidframwork/tree`: It is still exported as `@public` from `fluid-framework` as `SharedObjectKind`.
|
|
19
|
+
- `ISharedObjectKind`: See new `SharedObjectKind` type for use in `@public` APIs.
|
|
20
|
+
`ISharedObject`
|
|
21
|
+
- `IChannel`
|
|
22
|
+
- `IChannelAttributes`
|
|
23
|
+
- `IChannelFactory`
|
|
24
|
+
- `IExperimentalIncrementalSummaryContext`
|
|
25
|
+
- `IGarbageCollectionData`
|
|
26
|
+
- `ISummaryStats`
|
|
27
|
+
- `ISummaryTreeWithStats`
|
|
28
|
+
- `ITelemetryContext`
|
|
29
|
+
- `IDeltaManagerErased`
|
|
30
|
+
- `IFluidDataStoreRuntimeEvents`
|
|
31
|
+
- `IFluidHandleContext`
|
|
32
|
+
- `IProvideFluidHandleContext`
|
|
33
|
+
|
|
34
|
+
Removed APIs:
|
|
35
|
+
|
|
36
|
+
- `DataObjectClass`: Usages replaced with `SharedObjectKind`.
|
|
37
|
+
- `LoadableObjectClass`: Replaced with `SharedObjectKind`.
|
|
38
|
+
- `LoadableObjectClassRecord`: Replaced with `Record<string, SharedObjectKind>`.
|
|
39
|
+
-
|
|
40
|
+
|
|
41
|
+
- tree: Added support for optional schema validation on newly inserted content in SharedTree ([#21011](https://github.com/microsoft/FluidFramework/pull/21011)) [b14e9fa607](https://github.com/microsoft/FluidFramework/commit/b14e9fa607a8281f86d0cfac631e33ef12033e21)
|
|
42
|
+
|
|
43
|
+
When defining how to view a SharedTree, an application can now specify that new content inserted into the tree should
|
|
44
|
+
be subject to schema validation at the time it is inserted, so if it's not valid according to the stored schema in the
|
|
45
|
+
tree an error is thrown immediately.
|
|
46
|
+
|
|
47
|
+
This can be accomplished by passing an `ITreeConfigurationOptions` argument with `enableSchemaValidation` set to `true`
|
|
48
|
+
when creating a `TreeConfiguration` to use with the SharedTree.
|
|
49
|
+
|
|
50
|
+
Since this feature requires additional compute when inserting new content into the tree, it is not enabled by default.
|
|
51
|
+
|
|
52
|
+
- Update to TypeScript 5.4 ([#21214](https://github.com/microsoft/FluidFramework/pull/21214)) [0e6256c722](https://github.com/microsoft/FluidFramework/commit/0e6256c722d8bf024f4325bf02547daeeb18bfa6)
|
|
53
|
+
|
|
54
|
+
Update package implementations to use TypeScript 5.4.5.
|
|
55
|
+
|
|
56
|
+
- fluid-framework: Remove some types from `@public` that are not needed ([#21326](https://github.com/microsoft/FluidFramework/pull/21326)) [b629cb80b0](https://github.com/microsoft/FluidFramework/commit/b629cb80b0e5ecdc750270807f77a0e30fab4559)
|
|
57
|
+
|
|
58
|
+
Mark the following APIs `@alpha` instead of `@public`:
|
|
59
|
+
|
|
60
|
+
- IBranchOrigin
|
|
61
|
+
- ISequencedDocumentMessage
|
|
62
|
+
- ISignalMessage
|
|
63
|
+
- ISignalMessageBase
|
|
64
|
+
- ITrace
|
|
65
|
+
|
|
66
|
+
- tree: A new tree status has been added for SharedTree nodes. ([#21270](https://github.com/microsoft/FluidFramework/pull/21270)) [8760e321b0](https://github.com/microsoft/FluidFramework/commit/8760e321b02177babfb187ae293a17a65723f249)
|
|
67
|
+
|
|
68
|
+
`TreeStatus.Created` indicates that a SharedTree node has been constructed but not yet inserted into the tree.
|
|
69
|
+
Constraints passed to the `runTransaction` API are now marked as `readonly`.
|
|
70
|
+
|
|
71
|
+
- fluid-framework: Remove several types from `@public` scope ([#21142](https://github.com/microsoft/FluidFramework/pull/21142)) [983e9f09f7](https://github.com/microsoft/FluidFramework/commit/983e9f09f7b10fef9ffa1e9af86166f0ccda7e14)
|
|
72
|
+
|
|
73
|
+
The following types have been moved from `@public` to `@alpha`:
|
|
74
|
+
|
|
75
|
+
- `IFluidSerializer`
|
|
76
|
+
- `ISharedObjectEvents`
|
|
77
|
+
- `IChannelServices`
|
|
78
|
+
- `IChannelStorageService`
|
|
79
|
+
- `IDeltaConnection`
|
|
80
|
+
- `IDeltaHandler`
|
|
81
|
+
|
|
82
|
+
These should not be needed by users of the declarative API, which is what `@public` is targeting.
|
|
83
|
+
|
|
84
|
+
- sequence: Stop ISharedString extending SharedObject ([#21067](https://github.com/microsoft/FluidFramework/pull/21067)) [47465f4b12](https://github.com/microsoft/FluidFramework/commit/47465f4b12056810112df30a6dad89282afc7a2d)
|
|
85
|
+
|
|
86
|
+
ISharedString no longer extends SharedSegmentSequence and instead extends the new ISharedSegmentSequence, which may be missing some APIs.
|
|
87
|
+
|
|
88
|
+
Attempt to migrate off the missing APIs, but if that is not practical, request they be added to ISharedSegmentSequence and cast to SharedSegmentSequence as a workaround temporally.
|
|
89
|
+
|
|
90
|
+
- Update to ES 2022 ([#21292](https://github.com/microsoft/FluidFramework/pull/21292)) [68921502f7](https://github.com/microsoft/FluidFramework/commit/68921502f79b1833c4cd6d0fe339bfb126a712c7)
|
|
91
|
+
|
|
92
|
+
Update tsconfig to target ES 2022.
|
|
93
|
+
|
|
94
|
+
- tree: Move several types into InternalTypes ([#21482](https://github.com/microsoft/FluidFramework/pull/21482)) [64d49dd362](https://github.com/microsoft/FluidFramework/commit/64d49dd3629cefe6260a1d6223e58b10c2ac0cb6)
|
|
95
|
+
|
|
96
|
+
The stable public API surface for Tree has been reduced.
|
|
97
|
+
Several types have been moved into InternalTypes, indicating that they are not fully stable nor intended to be referenced by users of Tree.
|
|
98
|
+
|
|
99
|
+
- NodeBuilderData
|
|
100
|
+
- FieldHasDefault
|
|
101
|
+
- TreeNodeSchemaNonClass
|
|
102
|
+
- TreeArrayNodeBase
|
|
103
|
+
- ScopedSchemaName
|
|
104
|
+
- DefaultProvider
|
|
105
|
+
- typeNameSymbol
|
|
106
|
+
- InsertableObjectFromSchemaRecord
|
|
107
|
+
- ObjectFromSchemaRecord
|
|
108
|
+
- FieldHasDefaultUnsafe
|
|
109
|
+
- ObjectFromSchemaRecordUnsafe
|
|
110
|
+
- TreeObjectNodeUnsafe
|
|
111
|
+
- TreeFieldFromImplicitFieldUnsafe
|
|
112
|
+
- TreeNodeFromImplicitAllowedTypesUnsafe
|
|
113
|
+
- InsertableTreeNodeFromImplicitAllowedTypesUnsafe
|
|
114
|
+
- TreeArrayNodeUnsafe
|
|
115
|
+
- TreeMapNodeUnsafe
|
|
116
|
+
- InsertableObjectFromSchemaRecordUnsafe
|
|
117
|
+
- InsertableTreeFieldFromImplicitFieldUnsafe
|
|
118
|
+
- InsertableTypedNodeUnsafe
|
|
119
|
+
- NodeBuilderDataUnsafe
|
|
120
|
+
- NodeFromSchemaUnsafe
|
|
121
|
+
- FlexList
|
|
122
|
+
- TreeApi
|
|
123
|
+
|
|
124
|
+
Additionally a few more types which could not be moved due to technically limitations have been documented that they should be treated similarly.
|
|
125
|
+
|
|
126
|
+
- TreeNodeApi
|
|
127
|
+
- TreeNodeSchemaCore
|
|
128
|
+
- All \*Unsafe type (use for construction of recursive schema).
|
|
129
|
+
- WithType
|
|
130
|
+
- AllowedTypes
|
|
131
|
+
- FieldSchemaUnsafe
|
|
132
|
+
|
|
133
|
+
Also to reduce confusion `type` was renamed to `typeNameSymbol`, and is now only type exported. `Tree.is` should be used to get type information from `TreeNodes` instead.
|
|
134
|
+
|
|
135
|
+
- tree: object node fields with statically known default values are now optional ([#21193](https://github.com/microsoft/FluidFramework/pull/21193)) [21eac41660](https://github.com/microsoft/FluidFramework/commit/21eac41660944208bad42b156d7df05fe6dc6b97)
|
|
136
|
+
|
|
137
|
+
Makes object node fields with statically known default values (i.e., `optional` and `identifier` fields) optional when creating trees, where they were previously required.
|
|
138
|
+
|
|
139
|
+
Example:
|
|
140
|
+
|
|
141
|
+
```typescript
|
|
142
|
+
class Foo extends schemaFactory.object("Foo", {
|
|
143
|
+
name: schemaFactory.string,
|
|
144
|
+
id: schemaFactory.identifier,
|
|
145
|
+
nickname: schemaFactory.optional(schemaFactory.string),
|
|
146
|
+
}) {}
|
|
147
|
+
|
|
148
|
+
// Before
|
|
149
|
+
const foo = new Foo({
|
|
150
|
+
name: "Bar",
|
|
151
|
+
id: undefined, // Had to explicitly specify `undefined` to opt into default behavior
|
|
152
|
+
nickname: undefined, // Had to explicitly specify `undefined` for optional field
|
|
153
|
+
});
|
|
154
|
+
|
|
155
|
+
// After
|
|
156
|
+
const foo = new Foo({
|
|
157
|
+
name: "Bar",
|
|
158
|
+
// Can omit `id` and `nickname` fields, as both have statically known defaults!
|
|
159
|
+
});
|
|
160
|
+
```
|
|
161
|
+
|
|
162
|
+
- tree: Breaking change: `TreeStatus.Created` is now `TreeStatus.New` ([#21278](https://github.com/microsoft/FluidFramework/pull/21278)) [5a26346a14](https://github.com/microsoft/FluidFramework/commit/5a26346a145ed54d08cd5a9b4f1c9b177711bd7c)
|
|
163
|
+
|
|
164
|
+
`TreeStatus.Created` has been renamed to `TreeStatus.New`.
|
|
165
|
+
|
|
166
|
+
- core-interfaces, tree: Unify `IDisposable` interfaces ([#21184](https://github.com/microsoft/FluidFramework/pull/21184)) [cfcb827851](https://github.com/microsoft/FluidFramework/commit/cfcb827851ffc81486db6c718380150189fb95c5)
|
|
167
|
+
|
|
168
|
+
Public APIs in `@fluidframework/tree` now use `IDisposable` from `@fluidframework/core-interfaces` replacing `disposeSymbol` with "dispose".
|
|
169
|
+
|
|
170
|
+
`IDisposable` in `@fluidframework/core-interfaces` is now `@sealed` indicating that third parties should not implement it to reserve the ability for Fluid Framework to extend it to include `Symbol.dispose` as a future non-breaking change.
|
|
171
|
+
|
|
172
|
+
- fluid-framework: Cleanup `fluid-framework` legacy exports ([#21153](https://github.com/microsoft/FluidFramework/pull/21153)) [efee21c296](https://github.com/microsoft/FluidFramework/commit/efee21c2965a02288db6e0345fcf9b3713210953)
|
|
173
|
+
|
|
174
|
+
Cleanup `fluid-framework` legacy exports to remove no longer required types.
|
|
175
|
+
|
|
3
176
|
## 2.0.0-rc.4.0.0
|
|
4
177
|
|
|
5
178
|
### Minor Changes
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://developer.microsoft.com/json-schemas/api-extractor/v7/api-extractor.schema.json",
|
|
3
|
+
"extends": "<projectFolder>/../../../common/build/build-common/api-extractor-lint.entrypoint.json",
|
|
4
|
+
"mainEntryPointFilePath": "<projectFolder>/dist/legacy.d.ts"
|
|
5
|
+
}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://developer.microsoft.com/json-schemas/api-extractor/v7/api-extractor.schema.json",
|
|
3
|
+
"extends": "<projectFolder>/../../../common/build/build-common/api-extractor-lint.entrypoint.json",
|
|
4
|
+
"mainEntryPointFilePath": "<projectFolder>/lib/legacy.d.ts"
|
|
5
|
+
}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://developer.microsoft.com/json-schemas/api-extractor/v7/api-extractor.schema.json",
|
|
3
|
+
"extends": "<projectFolder>/../../../common/build/build-common/api-extractor-lint.entrypoint.json",
|
|
4
|
+
"mainEntryPointFilePath": "<projectFolder>/dist/public.d.ts"
|
|
5
|
+
}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://developer.microsoft.com/json-schemas/api-extractor/v7/api-extractor.schema.json",
|
|
3
|
+
"extends": "<projectFolder>/../../../common/build/build-common/api-extractor-lint.entrypoint.json",
|
|
4
|
+
"mainEntryPointFilePath": "<projectFolder>/lib/public.d.ts"
|
|
5
|
+
}
|
package/api-extractor.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "https://developer.microsoft.com/json-schemas/api-extractor/v7/api-extractor.schema.json",
|
|
3
|
-
"extends": "../../../common/build/build-common/api-extractor-base.esm.
|
|
3
|
+
"extends": "../../../common/build/build-common/api-extractor-base.esm.current.json",
|
|
4
4
|
"bundledPackages": ["@fluidframework/*"],
|
|
5
5
|
"messages": {
|
|
6
6
|
"extractorMessageReporting": {
|