@fluidframework/container-definitions 2.30.0 → 2.31.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 +400 -393
- package/lib/tsdoc-metadata.json +1 -1
- package/package.json +5 -8
- package/prettier.config.cjs +0 -8
package/CHANGELOG.md
CHANGED
|
@@ -1,15 +1,19 @@
|
|
|
1
1
|
# @fluidframework/container-definitions
|
|
2
2
|
|
|
3
|
+
## 2.31.0
|
|
4
|
+
|
|
5
|
+
Dependency updates only.
|
|
6
|
+
|
|
3
7
|
## 2.30.0
|
|
4
8
|
|
|
5
9
|
### Minor Changes
|
|
6
10
|
|
|
7
|
-
-
|
|
11
|
+
- IContainer.getContainerPackageInfo() is now deprecated ([#23840](https://github.com/microsoft/FluidFramework/pull/23840)) [521be72619](https://github.com/microsoft/FluidFramework/commit/521be726198a1f88f4f8f06c0f273528a49d2957)
|
|
8
12
|
|
|
9
|
-
|
|
10
|
-
|
|
13
|
+
The `IContainer.getContainerPackageInfo()` function is now deprecated. This API will be removed in version 2.40.0.
|
|
14
|
+
Use `IFluidCodeDetails.package` returned by `IContainer.getLoadedCodeDetails()` instead.
|
|
11
15
|
|
|
12
|
-
|
|
16
|
+
See [issue #23898](https://github.com/microsoft/FluidFramework/issues/23898) for details.
|
|
13
17
|
|
|
14
18
|
## 2.23.0
|
|
15
19
|
|
|
@@ -23,10 +27,10 @@ Dependency updates only.
|
|
|
23
27
|
|
|
24
28
|
### Minor Changes
|
|
25
29
|
|
|
26
|
-
-
|
|
30
|
+
- The IContainerContext.supportedFeatures property is now deprecated ([#22877](https://github.com/microsoft/FluidFramework/pull/22877)) [4c06412bb3](https://github.com/microsoft/FluidFramework/commit/4c06412bb365d680430f83b87c456d132d9da1be)
|
|
27
31
|
|
|
28
|
-
|
|
29
|
-
|
|
32
|
+
The `IContainerContext.supportedFeatures` optional property was used internally to communicate features supported by the
|
|
33
|
+
Loader layer to the Runtime layer. This has since been replaced with functionality that is not exposed externally.
|
|
30
34
|
|
|
31
35
|
## 2.20.0
|
|
32
36
|
|
|
@@ -48,19 +52,19 @@ Dependency updates only.
|
|
|
48
52
|
|
|
49
53
|
### Minor Changes
|
|
50
54
|
|
|
51
|
-
-
|
|
55
|
+
- The inbound and outbound properties have been removed from IDeltaManager ([#22282](https://github.com/microsoft/FluidFramework/pull/22282)) [45a57693f2](https://github.com/microsoft/FluidFramework/commit/45a57693f291e0dc5e91af7f29a9b9c8f82dfad5)
|
|
52
56
|
|
|
53
|
-
|
|
57
|
+
The inbound and outbound properties were [deprecated in version 2.0.0-rc.2.0.0](https://github.com/microsoft/FluidFramework/blob/main/RELEASE_NOTES/2.0.0-rc.2.0.0.md#container-definitions-deprecate-ideltamanagerinbound-and-ideltamanageroutbound) and have been removed from `IDeltaManager`.
|
|
54
58
|
|
|
55
|
-
|
|
59
|
+
`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 when `IDeltaManger.inbound.pause()` or `IDeltaManager.inbound.resume()` were called.
|
|
56
60
|
|
|
57
|
-
|
|
61
|
+
Similarly, `IDeltaManager.outbound` contained functionality that could break core runtime features such as generation of batches and chunking. Data loss or corruption could occur when `IDeltaManger.inbound.pause()` or `IDeltaManager.inbound.resume()` were called.
|
|
58
62
|
|
|
59
|
-
|
|
63
|
+
#### Alternatives
|
|
60
64
|
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
65
|
+
- Alternatives to `IDeltaManager.inbound.on("op", ...)` are `IDeltaManager.on("op", ...)`
|
|
66
|
+
- Alternatives to calling `IDeltaManager.inbound.pause`, `IDeltaManager.outbound.pause` for `IContainer` disconnect use `IContainer.disconnect`.
|
|
67
|
+
- Alternatives to calling `IDeltaManager.inbound.resume`, `IDeltaManager.outbound.resume` for `IContainer` reconnect use `IContainer.connect`.
|
|
64
68
|
|
|
65
69
|
## 2.5.0
|
|
66
70
|
|
|
@@ -86,241 +90,241 @@ Dependency updates only.
|
|
|
86
90
|
|
|
87
91
|
### Minor Changes
|
|
88
92
|
|
|
89
|
-
-
|
|
93
|
+
- Update to TypeScript 5.4 ([#21214](https://github.com/microsoft/FluidFramework/pull/21214)) [0e6256c722](https://github.com/microsoft/FluidFramework/commit/0e6256c722d8bf024f4325bf02547daeeb18bfa6)
|
|
90
94
|
|
|
91
|
-
|
|
95
|
+
Update package implementations to use TypeScript 5.4.5.
|
|
92
96
|
|
|
93
97
|
## 2.0.0-rc.4.0.0
|
|
94
98
|
|
|
95
99
|
### Major Changes
|
|
96
100
|
|
|
97
|
-
-
|
|
101
|
+
- Audience & connection sequencing improvements [96872186d0](https://github.com/microsoft/FluidFramework/commit/96872186d0d0f245c1fece7d19b3743e501679b6)
|
|
98
102
|
|
|
99
|
-
|
|
103
|
+
Here are breaking changes in Audience behavior:
|
|
100
104
|
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
+
1. IAudience no longer implements EventEmmiter. If you used addListener() or removeListener(), please replace with on() & off() respectively.
|
|
106
|
+
2. IAudience interface implements getSelf() method and "selfChanged" event.
|
|
107
|
+
3. IContainerContext.audience is no longer optional
|
|
108
|
+
4. "connected" events are now raised (various API surfaces - IContainer, IContainerRuntime, IFluidDataStoreRuntime, etc.) a bit later in reconnection sequence for "read" connections - only after client receives its own "join" signal and caught up on ops, which makes it symmetrical with "write" connections.
|
|
105
109
|
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
110
|
+
- If this change in behavior breaks some scenario, please let us know immediately, but you can revert that behavior using the following feature gates:
|
|
111
|
+
- "Fluid.Container.DisableCatchUpBeforeDeclaringConnected"
|
|
112
|
+
- "Fluid.Container.DisableJoinSignalWait"
|
|
109
113
|
|
|
110
114
|
### Minor Changes
|
|
111
115
|
|
|
112
|
-
-
|
|
116
|
+
- Type Erase IFluidDataStoreRuntime.deltaManager [96872186d0](https://github.com/microsoft/FluidFramework/commit/96872186d0d0f245c1fece7d19b3743e501679b6)
|
|
113
117
|
|
|
114
|
-
|
|
115
|
-
|
|
118
|
+
Make IFluidDataStoreRuntime.deltaManager have an opaque type.
|
|
119
|
+
Marks the following types which were reachable from it as alpha:
|
|
116
120
|
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
121
|
+
- IConnectionDetails
|
|
122
|
+
- IDeltaSender
|
|
123
|
+
- IDeltaManagerEvents
|
|
124
|
+
- IDeltaManager
|
|
125
|
+
- IDeltaQueueEvents
|
|
126
|
+
- IDeltaQueue
|
|
127
|
+
- ReadOnlyInfo
|
|
124
128
|
|
|
125
|
-
|
|
129
|
+
As a temporary workaround, users needing access to the full delta manager API can use the `@alpha` `toDeltaManagerInternal` API to retrieve its members, but should migrate away from requiring access to those APIs.
|
|
126
130
|
|
|
127
|
-
|
|
131
|
+
Implementing a custom `IFluidDataStoreRuntime` is not supported: this is now indicated by it being marked with `@sealed`.
|
|
128
132
|
|
|
129
133
|
## 2.0.0-rc.3.0.0
|
|
130
134
|
|
|
131
135
|
### Major Changes
|
|
132
136
|
|
|
133
|
-
-
|
|
137
|
+
- container-definitions: IContainerContext.getSpecifiedCodeDetails() removed [97d68aa06b](https://github.com/microsoft/FluidFramework/commit/97d68aa06bd5c022ecb026655814aea222a062ae)
|
|
134
138
|
|
|
135
|
-
|
|
139
|
+
IContainerContext.getSpecifiedCodeDetails() was deprecated in 0.42 and has now been removed.
|
|
136
140
|
|
|
137
|
-
-
|
|
141
|
+
- Packages now use package.json "exports" and require modern module resolution [97d68aa06b](https://github.com/microsoft/FluidFramework/commit/97d68aa06bd5c022ecb026655814aea222a062ae)
|
|
138
142
|
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
143
|
+
Fluid Framework packages have been updated to use the [package.json "exports"
|
|
144
|
+
field](https://nodejs.org/docs/latest-v18.x/api/packages.html#exports) to define explicit entry points for both
|
|
145
|
+
TypeScript types and implementation code.
|
|
142
146
|
|
|
143
|
-
|
|
147
|
+
This means that using Fluid Framework packages require the following TypeScript settings in tsconfig.json:
|
|
144
148
|
|
|
145
|
-
|
|
146
|
-
|
|
149
|
+
- `"moduleResolution": "Node16"` with `"module": "Node16"`
|
|
150
|
+
- `"moduleResolution": "Bundler"` with `"module": "ESNext"`
|
|
147
151
|
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
+
We recommend using Node16/Node16 unless absolutely necessary. That will produce transpiled JavaScript that is suitable
|
|
153
|
+
for use with modern versions of Node.js _and_ Bundlers.
|
|
154
|
+
[See the TypeScript documentation](https://www.typescriptlang.org/tsconfig#moduleResolution) for more information
|
|
155
|
+
regarding the module and moduleResolution options.
|
|
152
156
|
|
|
153
|
-
|
|
154
|
-
|
|
157
|
+
**Node10 moduleResolution is not supported; it does not support Fluid Framework's API structuring pattern that is used
|
|
158
|
+
to distinguish stable APIs from those that are in development.**
|
|
155
159
|
|
|
156
160
|
## 2.0.0-rc.2.0.0
|
|
157
161
|
|
|
158
162
|
### Minor Changes
|
|
159
163
|
|
|
160
|
-
-
|
|
164
|
+
- container-definitions: Deprecate IDeltaManager.inbound and IDeltaManager.outbound ([#19636](https://github.com/microsoft/FluidFramework/issues/19636)) [305c0f4346](https://github.com/microsoft/FluidFramework/commits/305c0f4346d08cba3d345d9698e35c0a1517b31a)
|
|
161
165
|
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
+
`IDeltaManager.inbound` was deprecated because it was not very useful to the customer and there are pieces of
|
|
167
|
+
functionality that can break the core runtime if used improperly. For example, summarization and processing batches. Do
|
|
168
|
+
not use the apis on this if possible. Data loss/corruption may occur in these scenarios in which
|
|
169
|
+
`IDeltaManger.inbound.pause()` or `IDeltaManager.inbound.resume()` get called.
|
|
166
170
|
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
+
Deprecated `IDeltaManager.outbound` as it was not very useful to the customer and there are pieces of functionality
|
|
172
|
+
that can break the core runtime if used improperly. For example, generation of batches and chunking. Op batching and
|
|
173
|
+
chunking can be broken. Data loss/corruption may occur in these scenarios in which `IDeltaManger.inbound.pause()` or
|
|
174
|
+
`IDeltaManager.inbound.resume()` get called.
|
|
171
175
|
|
|
172
|
-
|
|
176
|
+
### Alternatives
|
|
173
177
|
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
178
|
+
- Alternatives to `IDeltaManager.inbound.on("op", ...)` are `IDeltaManager.on("op", ...)`
|
|
179
|
+
- Alternatives to calling `IDeltaManager.inbound.pause`, `IDeltaManager.outbound.pause` for `IContainer` disconnect
|
|
180
|
+
use `IContainer.disconnect`.
|
|
181
|
+
- Alternatives to calling `IDeltaManager.inbound.resume`, `IDeltaManager.outbound.resume` for `IContainer` reconnect
|
|
182
|
+
use `IContainer.connect`.
|
|
179
183
|
|
|
180
|
-
-
|
|
184
|
+
- container-loader: Behavior change: IContainer.attach will be made retriable in the next release ([#19246](https://github.com/microsoft/FluidFramework/issues/19246)) [3d5dfb28d4](https://github.com/microsoft/FluidFramework/commits/3d5dfb28d47b55943c6a92ec50530e6fa86b0568)
|
|
181
185
|
|
|
182
|
-
|
|
186
|
+
The `attach` function on IContainer has been modified such that the container stay open on non-fatal errors. On failure of attach the developer should inspect IContainer.closed to see if the container has been closed. If not closed, the developer can retry calling attach.
|
|
183
187
|
|
|
184
|
-
|
|
188
|
+
The functionality is currently behind a configuration `Fluid.Container.RetryOnAttachFailure` which can be set to `true` to enable the new functionality.
|
|
185
189
|
|
|
186
|
-
|
|
190
|
+
In the next release we will default to the new behavior, and it will be possible to disable this behavior by setting `Fluid.Container.RetryOnAttachFailure` to `false`
|
|
187
191
|
|
|
188
|
-
-
|
|
192
|
+
- driver-definitions: Deprecate `ISnapshotContents` ([#19314](https://github.com/microsoft/FluidFramework/issues/19314)) [fc731b69de](https://github.com/microsoft/FluidFramework/commits/fc731b69deed4a2987e9b97d8918492d689bafbc)
|
|
189
193
|
|
|
190
|
-
|
|
194
|
+
`ISnapshotContents` is deprecated. It has been replaced with `ISnapshot`.
|
|
191
195
|
|
|
192
|
-
-
|
|
196
|
+
- driver-definitions: repositoryUrl removed from IDocumentStorageService ([#19522](https://github.com/microsoft/FluidFramework/issues/19522)) [90eb3c9d33](https://github.com/microsoft/FluidFramework/commits/90eb3c9d33d80e24caa1393a50f414c5602f6aa3)
|
|
193
197
|
|
|
194
|
-
|
|
198
|
+
The `repositoryUrl` member of `IDocumentStorageService` was unused and always equal to the empty string. It has been removed.
|
|
195
199
|
|
|
196
|
-
-
|
|
200
|
+
- Deprecated error-related enums have been removed ([#19067](https://github.com/microsoft/FluidFramework/issues/19067)) [59793302e5](https://github.com/microsoft/FluidFramework/commits/59793302e56784cfb6ace0e6469345f3565b3312)
|
|
197
201
|
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
202
|
+
Error-related enums `ContainerErrorType`, `DriverErrorType`, `OdspErrorType` and `RouterliciousErrorType` were previously
|
|
203
|
+
deprecated and are now removed. There are replacement object-based enumerations of `ContainerErrorTypes`,
|
|
204
|
+
`DriverErrorTypes`, `OdspErrorTypes` and `RouterliciousErrorTypes`. Refer to the release notes of [Fluid Framework version
|
|
205
|
+
2.0.0-internal.7.0.0](https://github.com/microsoft/FluidFramework/releases/tag/client_v2.0.0-internal.7.0.0) for details
|
|
206
|
+
on the replacements.
|
|
203
207
|
|
|
204
|
-
-
|
|
208
|
+
- container-definitions: ILoaderOptions no longer accepts arbitrary key/value pairs ([#19306](https://github.com/microsoft/FluidFramework/issues/19306)) [741926e225](https://github.com/microsoft/FluidFramework/commits/741926e2253a161504ecc6a6451d8f15d7ac4ed6)
|
|
205
209
|
|
|
206
|
-
|
|
210
|
+
ILoaderOptions has been narrowed to the specific set of supported loader options, and may no longer be used to pass arbitrary key/value pairs through to the runtime.
|
|
207
211
|
|
|
208
|
-
-
|
|
212
|
+
- container-definitions: Added containerMetadata prop on IContainer interface ([#19142](https://github.com/microsoft/FluidFramework/issues/19142)) [d0d77f3516](https://github.com/microsoft/FluidFramework/commits/d0d77f3516d67f3c9faedb47b20dbd4e309c3bc2)
|
|
209
213
|
|
|
210
|
-
|
|
214
|
+
Added `containerMetadata` prop on IContainer interface.
|
|
211
215
|
|
|
212
|
-
-
|
|
216
|
+
- runtime-definitions: Moved ISignalEnvelope interface to core-interfaces ([#19142](https://github.com/microsoft/FluidFramework/issues/19142)) [d0d77f3516](https://github.com/microsoft/FluidFramework/commits/d0d77f3516d67f3c9faedb47b20dbd4e309c3bc2)
|
|
213
217
|
|
|
214
|
-
|
|
218
|
+
The `ISignalEnvelope` interface has been moved to the @fluidframework/core-interfaces package.
|
|
215
219
|
|
|
216
|
-
-
|
|
220
|
+
- Updated @fluidframework/protocol-definitions [c2791deb24](https://github.com/microsoft/FluidFramework/commits/c2791deb249e8bd03cfe2b735785bba19e7bf838)
|
|
217
221
|
|
|
218
|
-
|
|
222
|
+
The @fluidframework/protocol-definitions dependency has been upgraded to v3.2.0.
|
|
219
223
|
|
|
220
|
-
|
|
224
|
+
[See the full changelog.](https://github.com/microsoft/FluidFramework/blob/main/common/lib/protocol-definitions/CHANGELOG.md#320)
|
|
221
225
|
|
|
222
|
-
-
|
|
226
|
+
- Updated server dependencies [c2791deb24](https://github.com/microsoft/FluidFramework/commits/c2791deb249e8bd03cfe2b735785bba19e7bf838)
|
|
223
227
|
|
|
224
|
-
|
|
225
|
-
|
|
228
|
+
The following Fluid server dependencies have been updated to the latest version, 4.0.0.
|
|
229
|
+
[See the full changelog.](https://github.com/microsoft/FluidFramework/blob/main/server/routerlicious/RELEASE_NOTES/3.0.0.md)
|
|
226
230
|
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
231
|
+
- @fluidframework/gitresources
|
|
232
|
+
- @fluidframework/server-kafka-orderer
|
|
233
|
+
- @fluidframework/server-lambdas
|
|
234
|
+
- @fluidframework/server-lambdas-driver
|
|
235
|
+
- @fluidframework/server-local-server
|
|
236
|
+
- @fluidframework/server-memory-orderer
|
|
237
|
+
- @fluidframework/protocol-base
|
|
238
|
+
- @fluidframework/server-routerlicious
|
|
239
|
+
- @fluidframework/server-routerlicious-base
|
|
240
|
+
- @fluidframework/server-services
|
|
241
|
+
- @fluidframework/server-services-client
|
|
242
|
+
- @fluidframework/server-services-core
|
|
243
|
+
- @fluidframework/server-services-ordering-kafkanode
|
|
244
|
+
- @fluidframework/server-services-ordering-rdkafka
|
|
245
|
+
- @fluidframework/server-services-ordering-zookeeper
|
|
246
|
+
- @fluidframework/server-services-shared
|
|
247
|
+
- @fluidframework/server-services-telemetry
|
|
248
|
+
- @fluidframework/server-services-utils
|
|
249
|
+
- @fluidframework/server-test-utils
|
|
250
|
+
- tinylicious
|
|
247
251
|
|
|
248
252
|
## 2.0.0-rc.1.0.0
|
|
249
253
|
|
|
250
254
|
### Minor Changes
|
|
251
255
|
|
|
252
|
-
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
256
|
+
- Updated server dependencies ([#19122](https://github.com/microsoft/FluidFramework/issues/19122)) [25366b4229](https://github.com/microsoft/FluidFramework/commits/25366b422918cb43685c5f328b50450749592902)
|
|
257
|
+
|
|
258
|
+
The following Fluid server dependencies have been updated to the latest version, 3.0.0. [See the full changelog.](https://github.com/microsoft/FluidFramework/releases/tag/server_v3.0.0)
|
|
259
|
+
|
|
260
|
+
- @fluidframework/gitresources
|
|
261
|
+
- @fluidframework/server-kafka-orderer
|
|
262
|
+
- @fluidframework/server-lambdas
|
|
263
|
+
- @fluidframework/server-lambdas-driver
|
|
264
|
+
- @fluidframework/server-local-server
|
|
265
|
+
- @fluidframework/server-memory-orderer
|
|
266
|
+
- @fluidframework/protocol-base
|
|
267
|
+
- @fluidframework/server-routerlicious
|
|
268
|
+
- @fluidframework/server-routerlicious-base
|
|
269
|
+
- @fluidframework/server-services
|
|
270
|
+
- @fluidframework/server-services-client
|
|
271
|
+
- @fluidframework/server-services-core
|
|
272
|
+
- @fluidframework/server-services-ordering-kafkanode
|
|
273
|
+
- @fluidframework/server-services-ordering-rdkafka
|
|
274
|
+
- @fluidframework/server-services-ordering-zookeeper
|
|
275
|
+
- @fluidframework/server-services-shared
|
|
276
|
+
- @fluidframework/server-services-telemetry
|
|
277
|
+
- @fluidframework/server-services-utils
|
|
278
|
+
- @fluidframework/server-test-utils
|
|
279
|
+
- tinylicious
|
|
280
|
+
|
|
281
|
+
- Updated @fluidframework/protocol-definitions ([#19122](https://github.com/microsoft/FluidFramework/issues/19122)) [25366b4229](https://github.com/microsoft/FluidFramework/commits/25366b422918cb43685c5f328b50450749592902)
|
|
282
|
+
|
|
283
|
+
The @fluidframework/protocol-definitions dependency has been upgraded to v3.1.0. [See the full
|
|
284
|
+
changelog.](https://github.com/microsoft/FluidFramework/blob/main/common/lib/protocol-definitions/CHANGELOG.md#310)
|
|
281
285
|
|
|
282
286
|
## 2.0.0-internal.8.0.0
|
|
283
287
|
|
|
284
288
|
### Major Changes
|
|
285
289
|
|
|
286
|
-
-
|
|
290
|
+
- container-definitions: Removed request(...) and IFluidRouter from IContainer [9a451d4946](https://github.com/microsoft/FluidFramework/commits/9a451d4946b5c51a52e4d1ab5bf51e7b285b0d74)
|
|
287
291
|
|
|
288
|
-
|
|
289
|
-
|
|
292
|
+
The `request(...)` method and `IFluidRouter` property have been removed from `IContainer`. Please use the
|
|
293
|
+
`IContainer.getEntryPoint()` method to get the container's entry point.
|
|
290
294
|
|
|
291
|
-
|
|
295
|
+
See [Removing-IFluidRouter.md](https://github.com/microsoft/FluidFramework/blob/main/packages/common/core-interfaces/Removing-IFluidRouter.md) for more details.
|
|
292
296
|
|
|
293
|
-
-
|
|
297
|
+
- container-loader: Removed request(...) and IFluidRouter from ILoader and Loader [9a451d4946](https://github.com/microsoft/FluidFramework/commits/9a451d4946b5c51a52e4d1ab5bf51e7b285b0d74)
|
|
294
298
|
|
|
295
|
-
|
|
296
|
-
|
|
299
|
+
The `request(...)` method and `IFluidRouter` property have been removed from `ILoader` and `Loader`. Instead, after
|
|
300
|
+
calling `ILoader.resolve(...)`, call the `getEntryPoint()` method on the returned `IContainer`.
|
|
297
301
|
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
302
|
+
See
|
|
303
|
+
[Removing-IFluidRouter.md](https://github.com/microsoft/FluidFramework/blob/main/packages/common/core-interfaces/Removing-IFluidRouter.md)
|
|
304
|
+
for more details.
|
|
301
305
|
|
|
302
|
-
-
|
|
306
|
+
- container-runtime: Removed IPendingLocalState and IRuntime.notifyAttaching [9a451d4946](https://github.com/microsoft/FluidFramework/commits/9a451d4946b5c51a52e4d1ab5bf51e7b285b0d74)
|
|
303
307
|
|
|
304
|
-
|
|
305
|
-
|
|
308
|
+
The deprecated `IPendingLocalState` and `IRuntime.notifyAttaching` APIs are removed. There is no replacement as they are
|
|
309
|
+
not longer used.
|
|
306
310
|
|
|
307
|
-
-
|
|
311
|
+
- container-runtime: Removed request pattern from ContainerRuntime, IRuntime, and IContainerRuntimeBase [9a451d4946](https://github.com/microsoft/FluidFramework/commits/9a451d4946b5c51a52e4d1ab5bf51e7b285b0d74)
|
|
308
312
|
|
|
309
|
-
|
|
313
|
+
The `request(...)` method and `IFluidRouter` property have been removed from the following places:
|
|
310
314
|
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
315
|
+
- `ContainerRuntime`
|
|
316
|
+
- `IRuntime`
|
|
317
|
+
- `IContainerRuntimeBase`
|
|
314
318
|
|
|
315
|
-
|
|
319
|
+
Please use the `IRuntime.getEntryPoint()` method to get the runtime's entry point.
|
|
316
320
|
|
|
317
|
-
|
|
321
|
+
See [Removing-IFluidRouter.md](https://github.com/microsoft/FluidFramework/blob/main/packages/common/core-interfaces/Removing-IFluidRouter.md) for more details.
|
|
318
322
|
|
|
319
|
-
-
|
|
323
|
+
- container-definitions: Fix ISnapshotTreeWithBlobContents and mark internal [9a451d4946](https://github.com/microsoft/FluidFramework/commits/9a451d4946b5c51a52e4d1ab5bf51e7b285b0d74)
|
|
320
324
|
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
325
|
+
`ISnapshotTreeWithBlobContents` is an internal type that should not be used externally. Additionally, the type didn't
|
|
326
|
+
match the usage, specifically in runtime-utils where an `any` cast was used to work around undefined blobContents. The
|
|
327
|
+
type has been updated to reflect that blobContents can be undefined.
|
|
324
328
|
|
|
325
329
|
## 2.0.0-internal.7.4.0
|
|
326
330
|
|
|
@@ -342,85 +346,88 @@ Dependency updates only.
|
|
|
342
346
|
|
|
343
347
|
### Major Changes
|
|
344
348
|
|
|
345
|
-
-
|
|
349
|
+
- odsp-driver: Load container in readonly mode when driver throws DriverErrorType.outOfStorage [871b3493dd](https://github.com/microsoft/FluidFramework/commits/871b3493dd0d7ea3a89be64998ceb6cb9021a04e)
|
|
346
350
|
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
351
|
+
Handle DriverErrorType.outOfStorage error from driver and load the container in readonly mode. Currently there is no
|
|
352
|
+
handling and when the join session throws this error, the container will get closed. With this we use NoDeltaStream
|
|
353
|
+
object as connection and load the container in read mode, so that it loads properly. We also notify the that the
|
|
354
|
+
container is "readonly" through the event on delta manager so that apps can listen to this and show any UX etc. The app
|
|
355
|
+
can listen to the event like this:
|
|
352
356
|
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
357
|
+
```ts
|
|
358
|
+
container.deltaManager.on(
|
|
359
|
+
"readonly",
|
|
360
|
+
(
|
|
361
|
+
readonly?: boolean,
|
|
362
|
+
readonlyConnectionReason?: { text: string; error?: IErrorBase },
|
|
363
|
+
) => {
|
|
364
|
+
// error?.errorType will be equal to DriverErrorType.outOfStorage in this case
|
|
365
|
+
// App logic
|
|
366
|
+
},
|
|
367
|
+
);
|
|
368
|
+
```
|
|
362
369
|
|
|
363
|
-
-
|
|
370
|
+
- Dependencies on @fluidframework/protocol-definitions package updated to 3.0.0 [871b3493dd](https://github.com/microsoft/FluidFramework/commits/871b3493dd0d7ea3a89be64998ceb6cb9021a04e)
|
|
364
371
|
|
|
365
|
-
|
|
372
|
+
This included the following changes from the protocol-definitions release:
|
|
366
373
|
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
374
|
+
- Updating signal interfaces for some planned improvements. The intention is split the interface between signals
|
|
375
|
+
submitted by clients to the server and the resulting signals sent from the server to clients.
|
|
376
|
+
- A new optional type member is available on the ISignalMessage interface and a new ISentSignalMessage interface has
|
|
377
|
+
been added, which will be the typing for signals sent from the client to the server. Both extend a new
|
|
378
|
+
ISignalMessageBase interface that contains common members.
|
|
379
|
+
- The @fluidframework/common-definitions package dependency has been updated to version 1.0.0.
|
|
373
380
|
|
|
374
|
-
-
|
|
381
|
+
- container-definitions: IContainer's and IDataStore's IFluidRouter capabilities are deprecated [871b3493dd](https://github.com/microsoft/FluidFramework/commits/871b3493dd0d7ea3a89be64998ceb6cb9021a04e)
|
|
375
382
|
|
|
376
|
-
|
|
383
|
+
`IFluidRouter` and `request({ url: "/" })` on `IContainer` and `IDataStore` are deprecated and will be removed in a future major release. Please migrate all usage to the appropriate `getEntryPoint()` or `entryPoint` APIs.
|
|
377
384
|
|
|
378
|
-
|
|
385
|
+
See [Removing-IFluidRouter.md](https://github.com/microsoft/FluidFramework/blob/main/packages/common/core-interfaces/Removing-IFluidRouter.md) for more details.
|
|
379
386
|
|
|
380
|
-
-
|
|
387
|
+
- Server upgrade: dependencies on Fluid server packages updated to 2.0.1 [871b3493dd](https://github.com/microsoft/FluidFramework/commits/871b3493dd0d7ea3a89be64998ceb6cb9021a04e)
|
|
381
388
|
|
|
382
|
-
|
|
389
|
+
Dependencies on the following Fluid server package have been updated to version 2.0.1:
|
|
383
390
|
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
391
|
+
- @fluidframework/gitresources: 2.0.1
|
|
392
|
+
- @fluidframework/server-kafka-orderer: 2.0.1
|
|
393
|
+
- @fluidframework/server-lambdas: 2.0.1
|
|
394
|
+
- @fluidframework/server-lambdas-driver: 2.0.1
|
|
395
|
+
- @fluidframework/server-local-server: 2.0.1
|
|
396
|
+
- @fluidframework/server-memory-orderer: 2.0.1
|
|
397
|
+
- @fluidframework/protocol-base: 2.0.1
|
|
398
|
+
- @fluidframework/server-routerlicious: 2.0.1
|
|
399
|
+
- @fluidframework/server-routerlicious-base: 2.0.1
|
|
400
|
+
- @fluidframework/server-services: 2.0.1
|
|
401
|
+
- @fluidframework/server-services-client: 2.0.1
|
|
402
|
+
- @fluidframework/server-services-core: 2.0.1
|
|
403
|
+
- @fluidframework/server-services-ordering-kafkanode: 2.0.1
|
|
404
|
+
- @fluidframework/server-services-ordering-rdkafka: 2.0.1
|
|
405
|
+
- @fluidframework/server-services-ordering-zookeeper: 2.0.1
|
|
406
|
+
- @fluidframework/server-services-shared: 2.0.1
|
|
407
|
+
- @fluidframework/server-services-telemetry: 2.0.1
|
|
408
|
+
- @fluidframework/server-services-utils: 2.0.1
|
|
409
|
+
- @fluidframework/server-test-utils: 2.0.1
|
|
410
|
+
- tinylicious: 2.0.1
|
|
404
411
|
|
|
405
|
-
-
|
|
412
|
+
- test-utils: provideEntryPoint is required [871b3493dd](https://github.com/microsoft/FluidFramework/commits/871b3493dd0d7ea3a89be64998ceb6cb9021a04e)
|
|
406
413
|
|
|
407
|
-
|
|
414
|
+
The optional `provideEntryPoint` method has become required on a number of constructors. A value will need to be provided to the following classes:
|
|
408
415
|
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
416
|
+
- `BaseContainerRuntimeFactory`
|
|
417
|
+
- `RuntimeFactory`
|
|
418
|
+
- `ContainerRuntime` (constructor and `loadRuntime`)
|
|
419
|
+
- `FluidDataStoreRuntime`
|
|
413
420
|
|
|
414
|
-
|
|
415
|
-
|
|
421
|
+
See [testContainerRuntimeFactoryWithDefaultDataStore.ts](https://github.com/microsoft/FluidFramework/tree/main/packages/test/test-utils/src/testContainerRuntimeFactoryWithDefaultDataStore.ts) for an example implemtation of `provideEntryPoint` for ContainerRuntime.
|
|
422
|
+
See [pureDataObjectFactory.ts](https://github.com/microsoft/FluidFramework/tree/main/packages/framework/aqueduct/src/data-object-factories/pureDataObjectFactory.ts#L83) for an example implementation of `provideEntryPoint` for DataStoreRuntime.
|
|
416
423
|
|
|
417
|
-
|
|
424
|
+
Subsequently, various `entryPoint` and `getEntryPoint()` endpoints have become required. Please see [containerRuntime.ts](https://github.com/microsoft/FluidFramework/tree/main/packages/runtime/container-runtime/src/containerRuntime.ts) for example implementations of these APIs.
|
|
418
425
|
|
|
419
|
-
|
|
426
|
+
For more details, see [Removing-IFluidRouter.md](https://github.com/microsoft/FluidFramework/blob/main/packages/common/core-interfaces/Removing-IFluidRouter.md)
|
|
420
427
|
|
|
421
|
-
-
|
|
428
|
+
- Minimum TypeScript version now 5.1.6 [871b3493dd](https://github.com/microsoft/FluidFramework/commits/871b3493dd0d7ea3a89be64998ceb6cb9021a04e)
|
|
422
429
|
|
|
423
|
-
|
|
430
|
+
The minimum supported TypeScript version for Fluid 2.0 clients is now 5.1.6.
|
|
424
431
|
|
|
425
432
|
## 2.0.0-internal.6.4.0
|
|
426
433
|
|
|
@@ -434,39 +441,39 @@ Dependency updates only.
|
|
|
434
441
|
|
|
435
442
|
### Minor Changes
|
|
436
443
|
|
|
437
|
-
-
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
-
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
|
|
444
|
+
- Temporarily restore id property on IContainerContext ([#16846](https://github.com/microsoft/FluidFramework/issues/16846)) [9825a692dd](https://github.com/microsoft/FluidFramework/commits/9825a692dd27eded214e3978a7fd6028b05e6fab)
|
|
445
|
+
|
|
446
|
+
The `id` property on `IContainerContext` has been temporarily restored to ease the transition to `2.0.0-internal.6.x`.
|
|
447
|
+
It will be removed again in `2.0.0-internal.7.0.0`.
|
|
448
|
+
|
|
449
|
+
The original deprecation announcement can be found [here](https://github.com/microsoft/FluidFramework/releases/tag/client_v2.0.0-internal.5.2.0).
|
|
450
|
+
|
|
451
|
+
- Remove use of @fluidframework/common-definitions ([#16638](https://github.com/microsoft/FluidFramework/issues/16638)) [a8c81509c9](https://github.com/microsoft/FluidFramework/commits/a8c81509c9bf09cfb2092ebcf7265205f9eb6dbf)
|
|
452
|
+
|
|
453
|
+
The **@fluidframework/common-definitions** package is being deprecated, so the following interfaces and types are now
|
|
454
|
+
imported from the **@fluidframework/core-interfaces** package:
|
|
455
|
+
|
|
456
|
+
- interface IDisposable
|
|
457
|
+
- interface IErrorEvent
|
|
458
|
+
- interface IErrorEvent
|
|
459
|
+
- interface IEvent
|
|
460
|
+
- interface IEventProvider
|
|
461
|
+
- interface ILoggingError
|
|
462
|
+
- interface ITaggedTelemetryPropertyType
|
|
463
|
+
- interface ITelemetryBaseEvent
|
|
464
|
+
- interface ITelemetryBaseLogger
|
|
465
|
+
- interface ITelemetryErrorEvent
|
|
466
|
+
- interface ITelemetryGenericEvent
|
|
467
|
+
- interface ITelemetryLogger
|
|
468
|
+
- interface ITelemetryPerformanceEvent
|
|
469
|
+
- interface ITelemetryProperties
|
|
470
|
+
- type ExtendEventProvider
|
|
471
|
+
- type IEventThisPlaceHolder
|
|
472
|
+
- type IEventTransformer
|
|
473
|
+
- type ReplaceIEventThisPlaceHolder
|
|
474
|
+
- type ReplaceIEventThisPlaceHolder
|
|
475
|
+
- type TelemetryEventCategory
|
|
476
|
+
- type TelemetryEventPropertyType
|
|
470
477
|
|
|
471
478
|
## 2.0.0-internal.6.1.0
|
|
472
479
|
|
|
@@ -476,217 +483,217 @@ Dependency updates only.
|
|
|
476
483
|
|
|
477
484
|
### Major Changes
|
|
478
485
|
|
|
479
|
-
-
|
|
486
|
+
- Removed IContainerContext.existing [8abce8cdb4](https://github.com/microsoft/FluidFramework/commits/8abce8cdb4e2832fb6405fb44e393bef03d5648a)
|
|
480
487
|
|
|
481
|
-
|
|
488
|
+
The recommended means of checking for existing changed to the instantiateRuntime param in 2021, and the IContainerContext.existing member was formally deprecated in 2.0.0-internal.2.0.0. This member is now removed.
|
|
482
489
|
|
|
483
|
-
-
|
|
490
|
+
- Remove closeAndGetPendingLocalState from IContainer [8abce8cdb4](https://github.com/microsoft/FluidFramework/commits/8abce8cdb4e2832fb6405fb44e393bef03d5648a)
|
|
484
491
|
|
|
485
|
-
|
|
486
|
-
|
|
492
|
+
This change removes the deprecated and experimental method closeAndGetPendingLocalState from IContainer. It continues to
|
|
493
|
+
exist on IContainerExperimental.
|
|
487
494
|
|
|
488
|
-
|
|
489
|
-
|
|
490
|
-
|
|
495
|
+
IContainerExperimental is an interface that is easily casted to, which enables partners to access experimental features for testing and evaluation.
|
|
496
|
+
Moving the experimental method off IContainer will reduce exposure and churn on that production interface as we iterate
|
|
497
|
+
on and finalize our experimental features.
|
|
491
498
|
|
|
492
|
-
|
|
499
|
+
Experimental features should not be used in production environments.
|
|
493
500
|
|
|
494
|
-
-
|
|
501
|
+
- allSentOpsAckd and processTime events removed from IDeltaManagerEvents [8abce8cdb4](https://github.com/microsoft/FluidFramework/commits/8abce8cdb4e2832fb6405fb44e393bef03d5648a)
|
|
495
502
|
|
|
496
|
-
|
|
503
|
+
The "allSentOpsAckd" and "processTime" events on the IDeltaManagerEvents interface were deprecated in 2.0.0-internal.2.2.0 and have now been removed.
|
|
497
504
|
|
|
498
|
-
-
|
|
505
|
+
- IConnectionDetailsInternal and IDeltaHandlerStrategy removed [8abce8cdb4](https://github.com/microsoft/FluidFramework/commits/8abce8cdb4e2832fb6405fb44e393bef03d5648a)
|
|
499
506
|
|
|
500
|
-
|
|
507
|
+
IConnectionDetailsInternal and IDeltaHandlerStrategy from the @fluidframework/container-definitions package were deprecated in 2.0.0-internal.5.2.0 and have now been removed.
|
|
501
508
|
|
|
502
|
-
-
|
|
509
|
+
- Request APIs deprecated from many places [8abce8cdb4](https://github.com/microsoft/FluidFramework/commits/8abce8cdb4e2832fb6405fb44e393bef03d5648a)
|
|
503
510
|
|
|
504
|
-
|
|
511
|
+
The `request` API (associated with the `IFluidRouter` interface) has been deprecated on a number of classes and interfaces. The following are impacted:
|
|
505
512
|
|
|
506
|
-
|
|
507
|
-
|
|
508
|
-
|
|
509
|
-
|
|
510
|
-
|
|
513
|
+
- `IRuntime` and `ContainerRuntime`
|
|
514
|
+
- `IFluidDataStoreRuntime` and `FluidDataStoreRuntime`
|
|
515
|
+
- `IFluidDataStoreChannel`
|
|
516
|
+
- `MockFluidDataStoreRuntime`
|
|
517
|
+
- `TestFluidObject`
|
|
511
518
|
|
|
512
|
-
|
|
519
|
+
Please migrate usage to the corresponding `entryPoint` or `getEntryPoint()` of the object. The value for these "entryPoint" related APIs is determined from factories (for `IRuntime` and `IFluidDataStoreRuntime`) via the `initializeEntryPoint` method. If no method is passed to the factory, the corresponding `entryPoint` and `getEntryPoint()` will be undefined.
|
|
513
520
|
|
|
514
|
-
|
|
521
|
+
For an example implementation of `initializeEntryPoint`, see [pureDataObjectFactory.ts](https://github.com/microsoft/FluidFramework/blob/next/packages/framework/aqueduct/src/data-object-factories/pureDataObjectFactory.ts#L84).
|
|
515
522
|
|
|
516
|
-
|
|
523
|
+
More information of the migration off the request pattern, and current status of its removal, is documented in [Removing-IFluidRouter.md](https://github.com/microsoft/FluidFramework/blob/main/packages/common/core-interfaces/Removing-IFluidRouter.md).
|
|
517
524
|
|
|
518
|
-
-
|
|
525
|
+
- IContainer's and IDataStore's IFluidRouter capabilities are deprecated. [8abce8cdb4](https://github.com/microsoft/FluidFramework/commits/8abce8cdb4e2832fb6405fb44e393bef03d5648a)
|
|
519
526
|
|
|
520
|
-
|
|
521
|
-
|
|
522
|
-
|
|
527
|
+
- The `request` function taking an arbitrary URL and headers is deprecated
|
|
528
|
+
- However, an overload taking only `{ url: "/" }` is not, for back-compat purposes during the migration
|
|
529
|
+
from the request pattern to using entryPoint.
|
|
523
530
|
|
|
524
|
-
|
|
531
|
+
### About requesting "/" and using entryPoint
|
|
525
532
|
|
|
526
|
-
|
|
527
|
-
|
|
528
|
-
|
|
529
|
-
|
|
533
|
+
Requesting "/" is an idiom some consumers of Fluid Framework have used in their own `requestHandler`s
|
|
534
|
+
(passed to `ContainerRuntime.loadRuntime` and `FluidDataStoreRuntime`'s constructor).
|
|
535
|
+
The ability to access the "root" or "entry point" of a Container / DataStore will presently be provided by
|
|
536
|
+
`IContainer.getEntryPoint` and `IDataStore.entryPoint`. However these are still optional, so a temporary workaround is needed.
|
|
530
537
|
|
|
531
|
-
|
|
532
|
-
|
|
538
|
+
See [Removing-IFluidRouter.md](https://github.com/microsoft/FluidFramework/blob/main/packages/common/core-interfaces/Removing-IFluidRouter.md)
|
|
539
|
+
for more info on this transition from request to entryPoint.
|
|
533
540
|
|
|
534
|
-
|
|
541
|
+
### Present Replacement for requesting an arbitrary URL
|
|
535
542
|
|
|
536
|
-
|
|
543
|
+
Suppose you have these variables:
|
|
537
544
|
|
|
538
|
-
|
|
539
|
-
|
|
540
|
-
|
|
541
|
-
|
|
545
|
+
```ts
|
|
546
|
+
const container: IContainer = ...;
|
|
547
|
+
const dataStore: IDataStore = ...;
|
|
548
|
+
```
|
|
542
549
|
|
|
543
|
-
|
|
550
|
+
Before:
|
|
544
551
|
|
|
545
|
-
|
|
546
|
-
|
|
547
|
-
|
|
548
|
-
|
|
552
|
+
```ts
|
|
553
|
+
container.request({ url, headers });
|
|
554
|
+
dataStore.request({ url, headers });
|
|
555
|
+
```
|
|
549
556
|
|
|
550
|
-
|
|
557
|
+
After:
|
|
551
558
|
|
|
552
|
-
|
|
553
|
-
|
|
554
|
-
|
|
555
|
-
|
|
556
|
-
|
|
559
|
+
```ts
|
|
560
|
+
// Assume there is an interface like this in the app's Container implementation
|
|
561
|
+
interface CustomUrlRouter {
|
|
562
|
+
doRequestRouting(request: { url: string; headers: Record<string, any>; }): any;
|
|
563
|
+
}
|
|
557
564
|
|
|
558
|
-
|
|
559
|
-
|
|
560
|
-
|
|
561
|
-
|
|
565
|
+
// Prerequisite: Pass a requestHandler to ContainerRuntime.loadRuntime that routes "/"
|
|
566
|
+
// to some root object implementing CustomUrlRouter
|
|
567
|
+
const containerRouter: CustomUrlRouter = await container.request({ "/" });
|
|
568
|
+
containerRouter.doRequestRouting({ url, headers });
|
|
562
569
|
|
|
563
|
-
|
|
564
|
-
|
|
565
|
-
|
|
566
|
-
|
|
567
|
-
|
|
570
|
+
// Prerequisite: Pass a requestHandler to FluidDataStoreRuntime's constructor that routes "/"
|
|
571
|
+
// to some root object implementing CustomUrlRouter
|
|
572
|
+
const dataStoreRouter: CustomUrlRouter = await dataStore.request({ "/" });
|
|
573
|
+
dataStoreRouter.doRequestRouting({ url, headers });
|
|
574
|
+
```
|
|
568
575
|
|
|
569
|
-
|
|
576
|
+
### Looking ahead to using entryPoint
|
|
570
577
|
|
|
571
|
-
|
|
572
|
-
|
|
578
|
+
In the next major release, `getEntryPoint` and `entryPoint` should be mandatory and available for use.
|
|
579
|
+
Then you may replace each call `request({ url: "/" })` with a call to get the entryPoint using these functions/properties.
|
|
573
580
|
|
|
574
|
-
-
|
|
581
|
+
- Loader container caching off by default [8abce8cdb4](https://github.com/microsoft/FluidFramework/commits/8abce8cdb4e2832fb6405fb44e393bef03d5648a)
|
|
575
582
|
|
|
576
|
-
|
|
583
|
+
Loader container caching will now be off by default and the ability to control it is deprecated. Loader caching is deprecated and will be removed in a future release, as well as all caching functionality of containers. Please try not to rely on caching and inform us if you cannot do so.
|
|
577
584
|
|
|
578
|
-
|
|
585
|
+
If you run into trouble with this behavior, please report it ASAP to the FluidFramework team and use the following options (available in this release only) to unblock you:
|
|
579
586
|
|
|
580
|
-
|
|
581
|
-
|
|
587
|
+
- set `ILoaderProps.options.cache` to `true` when constructing a `Loader` object (see the `ILoaderOptions` interface)
|
|
588
|
+
- set `[LoaderHeader.cache]` header to `true` when requesting a container
|
|
582
589
|
|
|
583
|
-
-
|
|
590
|
+
- contextChanged event on IContainerEvents removed [8abce8cdb4](https://github.com/microsoft/FluidFramework/commits/8abce8cdb4e2832fb6405fb44e393bef03d5648a)
|
|
584
591
|
|
|
585
|
-
|
|
592
|
+
The contextChanged event on IContainerEvents was deprecated in 2.0.0-internal.2.2.0 and has now been removed.
|
|
586
593
|
|
|
587
|
-
-
|
|
594
|
+
- ICodeAllowList interface removed [8abce8cdb4](https://github.com/microsoft/FluidFramework/commits/8abce8cdb4e2832fb6405fb44e393bef03d5648a)
|
|
588
595
|
|
|
589
|
-
|
|
596
|
+
The ICodeAllowList interface was deprecated in 2.0.0-internal.3.2.0 and has now been removed.
|
|
590
597
|
|
|
591
|
-
-
|
|
598
|
+
- getPendingLocalState and closeAndGetPendingLocalState are now async [8abce8cdb4](https://github.com/microsoft/FluidFramework/commits/8abce8cdb4e2832fb6405fb44e393bef03d5648a)
|
|
592
599
|
|
|
593
|
-
|
|
600
|
+
getPendingLocalState and closeAndGetPendingLocalState are now async to allow uploading blobs to attach to a DDS (in closing scenario). There is a new parameter in those methods at the container/runtime layer "notifyImminentClosure" which is true only when closing and ensures uploading blobs fast resolve and get attached. Once we apply stashed ops to new container, blob will try to reupload and we will know where to place its references.
|
|
594
601
|
|
|
595
|
-
-
|
|
602
|
+
- Upgraded typescript transpilation target to ES2020 [8abce8cdb4](https://github.com/microsoft/FluidFramework/commits/8abce8cdb4e2832fb6405fb44e393bef03d5648a)
|
|
596
603
|
|
|
597
|
-
|
|
604
|
+
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.
|
|
598
605
|
|
|
599
|
-
-
|
|
606
|
+
- `Loader.resolve()` throws if `LoaderHeader.sequenceNumber` and `IContainerLoadMode.opsBeforeReturn` do not match [8abce8cdb4](https://github.com/microsoft/FluidFramework/commits/8abce8cdb4e2832fb6405fb44e393bef03d5648a)
|
|
600
607
|
|
|
601
|
-
|
|
608
|
+
Calling `Loader.resolve()` will now throw an error if `LoaderHeader.sequenceNumber` is defined but `IContainerLoadMode.opsBeforeReturn` is not set to "sequenceNumber". Vice versa, `Loader.resolve()` will also throw an error if `IContainerLoadMode.opsBeforeReturn` is set to "sequenceNumber" but `LoaderHeader.sequenceNumber` is not defined.
|
|
602
609
|
|
|
603
|
-
-
|
|
610
|
+
- IDeltaManager members disposed and dispose() removed [8abce8cdb4](https://github.com/microsoft/FluidFramework/commits/8abce8cdb4e2832fb6405fb44e393bef03d5648a)
|
|
604
611
|
|
|
605
|
-
|
|
612
|
+
IDeltaManager members disposed and dispose() were deprecated in 2.0.0-internal.5.3.0 and have now been removed.
|
|
606
613
|
|
|
607
|
-
-
|
|
614
|
+
- Request APIs deprecated on ILoader [8abce8cdb4](https://github.com/microsoft/FluidFramework/commits/8abce8cdb4e2832fb6405fb44e393bef03d5648a)
|
|
608
615
|
|
|
609
|
-
|
|
610
|
-
|
|
616
|
+
The `request` API (associated with the `IFluidRouter` interface) has been deprecated on `ILoader` and `Loader`.
|
|
617
|
+
Please migrate all usage to using the `IContainer.request(...)` method if using a dynamic request URL, or to the `IContainer.getEntryPoint()` method if trying to obtain the application-specified root object.
|
|
611
618
|
|
|
612
|
-
|
|
619
|
+
**Note:** The `IContainer.request(...)` method will be deprecated in an upcoming release, so do not rely on this method for a long-term solution (the APIs around `entryPoint` and `getEntryPoint()` will become required and available for usage in its place).
|
|
613
620
|
|
|
614
|
-
|
|
615
|
-
|
|
621
|
+
After calling `ILoader.resolve(...)`, call the `request(...)` method on the returned `IContainer` with a corresponding request URL. For converting a request URL from `Loader` to `Container`, use the `IUrlResolver` passed into the `Loader`'s constructor.
|
|
622
|
+
The following is an example of what this change may look like:
|
|
616
623
|
|
|
617
|
-
|
|
618
|
-
|
|
619
|
-
|
|
620
|
-
|
|
621
|
-
|
|
624
|
+
```
|
|
625
|
+
// OLD
|
|
626
|
+
const request: IRequest;
|
|
627
|
+
const urlResolver = new YourUrlResolver();
|
|
628
|
+
const loader = new Loader({ urlResolver, ... });
|
|
622
629
|
|
|
623
|
-
|
|
624
|
-
|
|
625
|
-
|
|
630
|
+
await loader.resolve(request);
|
|
631
|
+
const response = loader.request(request);
|
|
632
|
+
```
|
|
626
633
|
|
|
627
|
-
|
|
628
|
-
|
|
629
|
-
|
|
630
|
-
|
|
631
|
-
|
|
634
|
+
```
|
|
635
|
+
// NEW
|
|
636
|
+
const request: IRequest;
|
|
637
|
+
const urlResolver = new YourUrlResolver();
|
|
638
|
+
const loader = new Loader({ urlResolver, ... });
|
|
632
639
|
|
|
633
|
-
|
|
634
|
-
|
|
640
|
+
const container = await loader.resolve(request);
|
|
641
|
+
const resolvedUrl: IRequest = urlResolver.resolve(request);
|
|
635
642
|
|
|
636
|
-
|
|
637
|
-
|
|
638
|
-
|
|
639
|
-
|
|
640
|
-
|
|
643
|
+
// Parse the `resolvedUrl.url` property as necessary before passing to `container.request(...)`
|
|
644
|
+
// For an example, see the `Loader.resolveCore(...)` method
|
|
645
|
+
const parsedResolvedUrl = // implement parse logic here
|
|
646
|
+
const response = container.request(parsedResolvedUrl);
|
|
647
|
+
```
|
|
641
648
|
|
|
642
|
-
|
|
649
|
+
Status on removal of the request pattern is tracked in [Removing-IFluidRouter.md](https://github.com/microsoft/FluidFramework/blob/main/packages/common/core-interfaces/Removing-IFluidRouter.md)
|
|
643
650
|
|
|
644
|
-
-
|
|
651
|
+
- IContainerContext members removed [8abce8cdb4](https://github.com/microsoft/FluidFramework/commits/8abce8cdb4e2832fb6405fb44e393bef03d5648a)
|
|
645
652
|
|
|
646
|
-
|
|
653
|
+
IContainerContext members disposed, dispose(), serviceConfiguration, and id were deprecated in 2.0.0-internal.5.2.0 and have now been removed.
|
|
647
654
|
|
|
648
655
|
## 2.0.0-internal.5.4.0
|
|
649
656
|
|
|
650
657
|
### Minor Changes
|
|
651
658
|
|
|
652
|
-
-
|
|
659
|
+
- `ILoaderOptions.cache` has been deprecated ([#16383](https://github.com/microsoft/FluidFramework/issues/16383)) [ef9b00f1bf](https://github.com/microsoft/FluidFramework/commits/ef9b00f1bf538861ecc616c7c9e1d73707ab89fb)
|
|
653
660
|
|
|
654
|
-
|
|
661
|
+
`ILoaderOptions.cache` has been deprecated and will be removed in a future release, as well as all caching functionality of containers. Cache support will be removed soon, please try not to rely on caching, and inform us if you cannot do so.
|
|
655
662
|
|
|
656
663
|
## 2.0.0-internal.5.3.0
|
|
657
664
|
|
|
658
665
|
### Minor Changes
|
|
659
666
|
|
|
660
|
-
-
|
|
667
|
+
- Move closeAndGetPendingLocalState to IContainerExperimental ([#16302](https://github.com/microsoft/FluidFramework/issues/16302)) [93151af787](https://github.com/microsoft/FluidFramework/commits/93151af787b76e547cf3460df47f81832131db8c)
|
|
661
668
|
|
|
662
|
-
|
|
663
|
-
|
|
664
|
-
|
|
665
|
-
|
|
669
|
+
This change deprecates the experimental method closeAndGetPendingLocalState on IContainer and moves it to IContainerExperimental.
|
|
670
|
+
IContainerExperimental is an interface that is easily casted to, which enables partners to access experimental features for testing and evaluation.
|
|
671
|
+
Moving the experimental method off IContainer will reduce exposure and churn on that production interface as we iterate on and finalize our experimental features.
|
|
672
|
+
Experimental features should not be used in production environments.
|
|
666
673
|
|
|
667
|
-
-
|
|
674
|
+
- IDeltaManager members disposed and dispose() deprecated ([#16224](https://github.com/microsoft/FluidFramework/issues/16224)) [85b30b686a](https://github.com/microsoft/FluidFramework/commits/85b30b686a47563baf00ded97986610f1f3e77ed)
|
|
668
675
|
|
|
669
|
-
|
|
676
|
+
Directly calling dispose() on the IDeltaManager puts the system in an inconsistent state, and inspecting the disposed state of the IDeltaManager is not recommended (instead, prefer to inspect either the IContainer.disposed, IContainerRuntime.disposed, or IFluidDataStoreRuntime.disposed depending on your scenario). These members have been deprecated from the interface and will be removed in an upcoming release.
|
|
670
677
|
|
|
671
678
|
## 2.0.0-internal.5.2.0
|
|
672
679
|
|
|
673
680
|
### Minor Changes
|
|
674
681
|
|
|
675
|
-
-
|
|
682
|
+
- IContainerContext members deprecated ([#16180](https://github.com/microsoft/FluidFramework/issues/16180)) [bf6a26cfe6](https://github.com/microsoft/FluidFramework/commits/bf6a26cfe6ac58386f2c9af260603a15b03ba84f)
|
|
676
683
|
|
|
677
|
-
|
|
684
|
+
IContainerContext members disposed, dispose(), serviceConfiguration, and id have been deprecated and will be removed in an upcoming release.
|
|
678
685
|
|
|
679
|
-
|
|
686
|
+
disposed - The disposed state on the IContainerContext is not meaningful to the runtime.
|
|
680
687
|
|
|
681
|
-
|
|
688
|
+
dispose() - The runtime is not permitted to dispose the IContainerContext, this results in an inconsistent system state.
|
|
682
689
|
|
|
683
|
-
|
|
690
|
+
serviceConfiguration - This property is redundant, and is unused by the runtime. The same information can be found via `deltaManager.serviceConfiguration` on this object if it is necessary.
|
|
684
691
|
|
|
685
|
-
|
|
692
|
+
id - The docId is already logged by the IContainerContext.taggedLogger for telemetry purposes, so this is generally unnecessary for telemetry. If the id is needed for other purposes it should be passed to the consumer explicitly.
|
|
686
693
|
|
|
687
|
-
-
|
|
694
|
+
- IConnectionDetailsInternal and IDeltaHandlerStrategy deprecated ([#16081](https://github.com/microsoft/FluidFramework/issues/16081)) [279dcd5563](https://github.com/microsoft/FluidFramework/commits/279dcd55635b650494cf2347f21cf0e2b979413a)
|
|
688
695
|
|
|
689
|
-
|
|
696
|
+
The IConnectionDetailsInternal and IDeltaHandlerStrategy interfaces from the @fluidframework/container-definitions package have been deprecated and will be removed in a future release. These are internal-only interfaces and should not be used.
|
|
690
697
|
|
|
691
698
|
## 2.0.0-internal.5.1.0
|
|
692
699
|
|
|
@@ -696,16 +703,16 @@ Dependency updates only.
|
|
|
696
703
|
|
|
697
704
|
### Major Changes
|
|
698
705
|
|
|
699
|
-
-
|
|
706
|
+
- Calling `IContainer.close(...)` will no longer dispose the container runtime, document service, or document storage service. [8b242fdc79](https://github.com/microsoft/FluidFramework/commits/8b242fdc796714cf1da9ad3f90d02efb122af0c2)
|
|
700
707
|
|
|
701
|
-
|
|
702
|
-
|
|
703
|
-
|
|
708
|
+
If the container is not expected to be used after the `close(...)` call, replace it instead with a
|
|
709
|
+
`IContainer.dispose(...)` call (this should be the most common case). Using `IContainer.dispose(...)` will no longer
|
|
710
|
+
switch the container to "readonly" mode and relevant code should instead listen to the Container's "disposed" event.
|
|
704
711
|
|
|
705
|
-
|
|
706
|
-
|
|
712
|
+
If you intend to pass your own critical error to the container, use `IContainer.close(...)`. Once you are done using the
|
|
713
|
+
container, call `IContainer.dispose(...)`.
|
|
707
714
|
|
|
708
|
-
|
|
715
|
+
See the [Closure](packages/loader/container-loader/README.md#Closure) section of Loader README.md for more details.
|
|
709
716
|
|
|
710
717
|
## 2.0.0-internal.4.4.0
|
|
711
718
|
|
package/lib/tsdoc-metadata.json
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@fluidframework/container-definitions",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.31.1",
|
|
4
4
|
"description": "Fluid container definitions",
|
|
5
5
|
"homepage": "https://fluidframework.com",
|
|
6
6
|
"repository": {
|
|
@@ -47,8 +47,8 @@
|
|
|
47
47
|
"main": "lib/index.js",
|
|
48
48
|
"types": "lib/public.d.ts",
|
|
49
49
|
"dependencies": {
|
|
50
|
-
"@fluidframework/core-interfaces": "~2.
|
|
51
|
-
"@fluidframework/driver-definitions": "~2.
|
|
50
|
+
"@fluidframework/core-interfaces": "~2.31.1",
|
|
51
|
+
"@fluidframework/driver-definitions": "~2.31.1"
|
|
52
52
|
},
|
|
53
53
|
"devDependencies": {
|
|
54
54
|
"@arethetypeswrong/cli": "^0.17.1",
|
|
@@ -56,13 +56,12 @@
|
|
|
56
56
|
"@fluid-tools/build-cli": "^0.54.0",
|
|
57
57
|
"@fluidframework/build-common": "^2.0.3",
|
|
58
58
|
"@fluidframework/build-tools": "^0.54.0",
|
|
59
|
-
"@fluidframework/container-definitions-previous": "npm:@fluidframework/container-definitions@2.
|
|
59
|
+
"@fluidframework/container-definitions-previous": "npm:@fluidframework/container-definitions@2.31.0",
|
|
60
60
|
"@fluidframework/eslint-config-fluid": "^5.7.3",
|
|
61
|
-
"@microsoft/api-extractor": "7.
|
|
61
|
+
"@microsoft/api-extractor": "7.50.1",
|
|
62
62
|
"concurrently": "^8.2.1",
|
|
63
63
|
"copyfiles": "^2.4.1",
|
|
64
64
|
"eslint": "~8.55.0",
|
|
65
|
-
"prettier": "~3.0.3",
|
|
66
65
|
"rimraf": "^4.4.0",
|
|
67
66
|
"typescript": "~5.4.5"
|
|
68
67
|
},
|
|
@@ -94,7 +93,6 @@
|
|
|
94
93
|
"check:exports:esm:legacy": "api-extractor run --config api-extractor/api-extractor-lint-legacy.esm.json",
|
|
95
94
|
"check:exports:esm:public": "api-extractor run --config api-extractor/api-extractor-lint-public.esm.json",
|
|
96
95
|
"check:format": "npm run check:biome",
|
|
97
|
-
"check:prettier": "prettier --check . --cache --ignore-path ../../../.prettierignore",
|
|
98
96
|
"ci:build": "npm run build:compile",
|
|
99
97
|
"ci:build:api-reports": "concurrently \"npm:ci:build:api-reports:*\"",
|
|
100
98
|
"ci:build:api-reports:current": "api-extractor run --config api-extractor/api-extractor.current.json",
|
|
@@ -107,7 +105,6 @@
|
|
|
107
105
|
"eslint:fix": "eslint --format stylish src --fix --fix-type problem,suggestion,layout",
|
|
108
106
|
"format": "npm run format:biome",
|
|
109
107
|
"format:biome": "biome check . --write",
|
|
110
|
-
"format:prettier": "prettier --write . --cache --ignore-path ../../../.prettierignore",
|
|
111
108
|
"lint": "fluid-build . --task lint",
|
|
112
109
|
"lint:fix": "fluid-build . --task eslint:fix --task format",
|
|
113
110
|
"place:cjs:package-stub": "copyfiles -f ../../../common/build/build-common/src/cjs/package.json ./dist",
|