@fluidframework/sequence 2.23.0 → 2.31.0
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 +510 -495
- package/api-report/sequence.legacy.alpha.api.md +67 -5
- package/dist/IntervalCollectionValues.d.ts +3 -51
- package/dist/IntervalCollectionValues.d.ts.map +1 -1
- package/dist/IntervalCollectionValues.js +6 -49
- package/dist/IntervalCollectionValues.js.map +1 -1
- package/dist/index.d.ts +4 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -8
- package/dist/index.js.map +1 -1
- package/dist/intervalCollection.d.ts +292 -63
- package/dist/intervalCollection.d.ts.map +1 -1
- package/dist/intervalCollection.js +111 -193
- package/dist/intervalCollection.js.map +1 -1
- package/dist/intervalCollectionMap.d.ts +11 -32
- package/dist/intervalCollectionMap.d.ts.map +1 -1
- package/dist/intervalCollectionMap.js +37 -90
- package/dist/intervalCollectionMap.js.map +1 -1
- package/dist/intervalCollectionMapInterfaces.d.ts +10 -83
- package/dist/intervalCollectionMapInterfaces.d.ts.map +1 -1
- package/dist/intervalCollectionMapInterfaces.js.map +1 -1
- package/dist/intervalIndex/endpointInRangeIndex.d.ts +10 -11
- package/dist/intervalIndex/endpointInRangeIndex.d.ts.map +1 -1
- package/dist/intervalIndex/endpointInRangeIndex.js +4 -5
- package/dist/intervalIndex/endpointInRangeIndex.js.map +1 -1
- package/dist/intervalIndex/endpointIndex.d.ts +12 -13
- package/dist/intervalIndex/endpointIndex.d.ts.map +1 -1
- package/dist/intervalIndex/endpointIndex.js +4 -5
- package/dist/intervalIndex/endpointIndex.js.map +1 -1
- package/dist/intervalIndex/idIntervalIndex.d.ts +6 -12
- package/dist/intervalIndex/idIntervalIndex.d.ts.map +1 -1
- package/dist/intervalIndex/idIntervalIndex.js +0 -3
- package/dist/intervalIndex/idIntervalIndex.js.map +1 -1
- package/dist/intervalIndex/index.d.ts +2 -2
- package/dist/intervalIndex/index.d.ts.map +1 -1
- package/dist/intervalIndex/index.js.map +1 -1
- package/dist/intervalIndex/intervalIndex.d.ts +28 -1
- package/dist/intervalIndex/intervalIndex.d.ts.map +1 -1
- package/dist/intervalIndex/intervalIndex.js.map +1 -1
- package/dist/intervalIndex/overlappingIntervalsIndex.d.ts +30 -13
- package/dist/intervalIndex/overlappingIntervalsIndex.d.ts.map +1 -1
- package/dist/intervalIndex/overlappingIntervalsIndex.js +4 -5
- package/dist/intervalIndex/overlappingIntervalsIndex.js.map +1 -1
- package/dist/intervalIndex/overlappingSequenceIntervalsIndex.d.ts.map +1 -1
- package/dist/intervalIndex/overlappingSequenceIntervalsIndex.js +1 -1
- package/dist/intervalIndex/overlappingSequenceIntervalsIndex.js.map +1 -1
- package/dist/intervalIndex/sequenceIntervalIndexes.d.ts +2 -2
- package/dist/intervalIndex/sequenceIntervalIndexes.d.ts.map +1 -1
- package/dist/intervalIndex/sequenceIntervalIndexes.js.map +1 -1
- package/dist/intervalIndex/startpointInRangeIndex.d.ts +10 -11
- package/dist/intervalIndex/startpointInRangeIndex.d.ts.map +1 -1
- package/dist/intervalIndex/startpointInRangeIndex.js +4 -5
- package/dist/intervalIndex/startpointInRangeIndex.js.map +1 -1
- package/dist/intervals/index.d.ts +2 -3
- package/dist/intervals/index.d.ts.map +1 -1
- package/dist/intervals/index.js +1 -6
- package/dist/intervals/index.js.map +1 -1
- package/dist/intervals/intervalUtils.d.ts +3 -25
- package/dist/intervals/intervalUtils.d.ts.map +1 -1
- package/dist/intervals/intervalUtils.js.map +1 -1
- package/dist/intervals/sequenceInterval.d.ts +3 -8
- package/dist/intervals/sequenceInterval.d.ts.map +1 -1
- package/dist/intervals/sequenceInterval.js +1 -9
- package/dist/intervals/sequenceInterval.js.map +1 -1
- package/dist/legacy.d.ts +4 -0
- package/dist/packageVersion.d.ts +1 -1
- package/dist/packageVersion.js +1 -1
- package/dist/packageVersion.js.map +1 -1
- package/dist/sequence.d.ts +4 -6
- package/dist/sequence.d.ts.map +1 -1
- package/dist/sequence.js +3 -5
- package/dist/sequence.js.map +1 -1
- package/dist/sharedIntervalCollection.d.ts +2 -63
- package/dist/sharedIntervalCollection.d.ts.map +1 -1
- package/dist/sharedIntervalCollection.js +0 -113
- package/dist/sharedIntervalCollection.js.map +1 -1
- package/dist/sharedString.d.ts.map +1 -1
- package/dist/sharedString.js +6 -6
- package/dist/sharedString.js.map +1 -1
- package/lib/IntervalCollectionValues.d.ts +3 -51
- package/lib/IntervalCollectionValues.d.ts.map +1 -1
- package/lib/IntervalCollectionValues.js +5 -47
- package/lib/IntervalCollectionValues.js.map +1 -1
- package/lib/index.d.ts +4 -4
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +2 -3
- package/lib/index.js.map +1 -1
- package/lib/intervalCollection.d.ts +292 -63
- package/lib/intervalCollection.d.ts.map +1 -1
- package/lib/intervalCollection.js +113 -191
- package/lib/intervalCollection.js.map +1 -1
- package/lib/intervalCollectionMap.d.ts +11 -32
- package/lib/intervalCollectionMap.d.ts.map +1 -1
- package/lib/intervalCollectionMap.js +39 -92
- package/lib/intervalCollectionMap.js.map +1 -1
- package/lib/intervalCollectionMapInterfaces.d.ts +10 -83
- package/lib/intervalCollectionMapInterfaces.d.ts.map +1 -1
- package/lib/intervalCollectionMapInterfaces.js.map +1 -1
- package/lib/intervalIndex/endpointInRangeIndex.d.ts +10 -11
- package/lib/intervalIndex/endpointInRangeIndex.d.ts.map +1 -1
- package/lib/intervalIndex/endpointInRangeIndex.js +5 -6
- package/lib/intervalIndex/endpointInRangeIndex.js.map +1 -1
- package/lib/intervalIndex/endpointIndex.d.ts +12 -13
- package/lib/intervalIndex/endpointIndex.d.ts.map +1 -1
- package/lib/intervalIndex/endpointIndex.js +5 -6
- package/lib/intervalIndex/endpointIndex.js.map +1 -1
- package/lib/intervalIndex/idIntervalIndex.d.ts +6 -12
- package/lib/intervalIndex/idIntervalIndex.d.ts.map +1 -1
- package/lib/intervalIndex/idIntervalIndex.js +0 -3
- package/lib/intervalIndex/idIntervalIndex.js.map +1 -1
- package/lib/intervalIndex/index.d.ts +2 -2
- package/lib/intervalIndex/index.d.ts.map +1 -1
- package/lib/intervalIndex/index.js.map +1 -1
- package/lib/intervalIndex/intervalIndex.d.ts +28 -1
- package/lib/intervalIndex/intervalIndex.d.ts.map +1 -1
- package/lib/intervalIndex/intervalIndex.js.map +1 -1
- package/lib/intervalIndex/overlappingIntervalsIndex.d.ts +30 -13
- package/lib/intervalIndex/overlappingIntervalsIndex.d.ts.map +1 -1
- package/lib/intervalIndex/overlappingIntervalsIndex.js +5 -6
- package/lib/intervalIndex/overlappingIntervalsIndex.js.map +1 -1
- package/lib/intervalIndex/overlappingSequenceIntervalsIndex.d.ts.map +1 -1
- package/lib/intervalIndex/overlappingSequenceIntervalsIndex.js +2 -2
- package/lib/intervalIndex/overlappingSequenceIntervalsIndex.js.map +1 -1
- package/lib/intervalIndex/sequenceIntervalIndexes.d.ts +2 -2
- package/lib/intervalIndex/sequenceIntervalIndexes.d.ts.map +1 -1
- package/lib/intervalIndex/sequenceIntervalIndexes.js.map +1 -1
- package/lib/intervalIndex/startpointInRangeIndex.d.ts +10 -11
- package/lib/intervalIndex/startpointInRangeIndex.d.ts.map +1 -1
- package/lib/intervalIndex/startpointInRangeIndex.js +5 -6
- package/lib/intervalIndex/startpointInRangeIndex.js.map +1 -1
- package/lib/intervals/index.d.ts +2 -3
- package/lib/intervals/index.d.ts.map +1 -1
- package/lib/intervals/index.js +1 -2
- package/lib/intervals/index.js.map +1 -1
- package/lib/intervals/intervalUtils.d.ts +3 -25
- package/lib/intervals/intervalUtils.d.ts.map +1 -1
- package/lib/intervals/intervalUtils.js.map +1 -1
- package/lib/intervals/sequenceInterval.d.ts +3 -8
- package/lib/intervals/sequenceInterval.d.ts.map +1 -1
- package/lib/intervals/sequenceInterval.js +0 -8
- package/lib/intervals/sequenceInterval.js.map +1 -1
- package/lib/legacy.d.ts +4 -0
- package/lib/packageVersion.d.ts +1 -1
- package/lib/packageVersion.js +1 -1
- package/lib/packageVersion.js.map +1 -1
- package/lib/sequence.d.ts +4 -6
- package/lib/sequence.d.ts.map +1 -1
- package/lib/sequence.js +3 -5
- package/lib/sequence.js.map +1 -1
- package/lib/sharedIntervalCollection.d.ts +2 -63
- package/lib/sharedIntervalCollection.d.ts.map +1 -1
- package/lib/sharedIntervalCollection.js +1 -110
- package/lib/sharedIntervalCollection.js.map +1 -1
- package/lib/sharedString.d.ts.map +1 -1
- package/lib/sharedString.js +6 -6
- package/lib/sharedString.js.map +1 -1
- package/lib/tsdoc-metadata.json +1 -1
- package/package.json +20 -23
- package/src/IntervalCollectionValues.ts +10 -93
- package/src/index.ts +6 -17
- package/src/intervalCollection.ts +524 -343
- package/src/intervalCollectionMap.ts +72 -140
- package/src/intervalCollectionMapInterfaces.ts +13 -104
- package/src/intervalIndex/endpointInRangeIndex.ts +17 -29
- package/src/intervalIndex/endpointIndex.ts +19 -31
- package/src/intervalIndex/idIntervalIndex.ts +15 -25
- package/src/intervalIndex/index.ts +2 -1
- package/src/intervalIndex/intervalIndex.ts +30 -1
- package/src/intervalIndex/overlappingIntervalsIndex.ts +50 -27
- package/src/intervalIndex/overlappingSequenceIntervalsIndex.ts +2 -3
- package/src/intervalIndex/sequenceIntervalIndexes.ts +2 -2
- package/src/intervalIndex/startpointInRangeIndex.ts +17 -29
- package/src/intervals/index.ts +0 -3
- package/src/intervals/intervalUtils.ts +3 -38
- package/src/intervals/sequenceInterval.ts +2 -12
- package/src/packageVersion.ts +1 -1
- package/src/sequence.ts +8 -20
- package/src/sharedIntervalCollection.ts +5 -183
- package/src/sharedString.ts +6 -24
- package/dist/intervals/interval.d.ts +0 -76
- package/dist/intervals/interval.d.ts.map +0 -1
- package/dist/intervals/interval.js +0 -167
- package/dist/intervals/interval.js.map +0 -1
- package/lib/intervals/interval.d.ts +0 -76
- package/lib/intervals/interval.d.ts.map +0 -1
- package/lib/intervals/interval.js +0 -162
- package/lib/intervals/interval.js.map +0 -1
- package/prettier.config.cjs +0 -8
- package/src/intervals/interval.ts +0 -226
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,13 @@
|
|
|
1
1
|
# @fluidframework/sequence
|
|
2
2
|
|
|
3
|
+
## 2.31.0
|
|
4
|
+
|
|
5
|
+
Dependency updates only.
|
|
6
|
+
|
|
7
|
+
## 2.30.0
|
|
8
|
+
|
|
9
|
+
Dependency updates only.
|
|
10
|
+
|
|
3
11
|
## 2.23.0
|
|
4
12
|
|
|
5
13
|
Dependency updates only.
|
|
@@ -12,57 +20,57 @@ Dependency updates only.
|
|
|
12
20
|
|
|
13
21
|
### Minor Changes
|
|
14
22
|
|
|
15
|
-
-
|
|
23
|
+
- SharedMap, SharedIntervalCollection and AttributableMap now throw an error when they encounter unrecognized Ops ([#23659](https://github.com/microsoft/FluidFramework/pull/23659)) [3dd4208dd3](https://github.com/microsoft/FluidFramework/commit/3dd4208dd329a9200c4405f07e302b0ab1ff6159)
|
|
16
24
|
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
25
|
+
To avoid future versions of DDSes with new Op types causing silent data corruption and de-sync between clients,
|
|
26
|
+
DDSes should error when unable to apply an Op.
|
|
27
|
+
This prevents data loss and corruption scenarios like a summary client using old code discarding all Ops from newer clients.
|
|
20
28
|
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
29
|
+
If updating applications using SharedMap, SharedIntervalCollection and AttributableMap use a newer version which adds Ops types in the future,
|
|
30
|
+
old clients which are old enough to be from before this fix will ignore the new ops instead of erroring.
|
|
31
|
+
Therefore it may be useful to ensure this update is deployed as widely as possible before migrating any to newer versions which add new op formats to these DDSes.
|
|
24
32
|
|
|
25
33
|
## 2.20.0
|
|
26
34
|
|
|
27
35
|
### Minor Changes
|
|
28
36
|
|
|
29
|
-
-
|
|
37
|
+
- Previously deprecated Merge-Tree and SharedString ISegment members have been removed ([#23448](https://github.com/microsoft/FluidFramework/pull/23448)) [e98574fc62](https://github.com/microsoft/FluidFramework/commit/e98574fc625bea7ebce6d79284f32556aaec1c50)
|
|
30
38
|
|
|
31
|
-
|
|
32
|
-
|
|
39
|
+
The current `ISegment` interface over-exposes a number of properties which do not have an external use case, and any external usage could result in damage to the underlying merge-tree including data corruption.
|
|
40
|
+
[In Fluid Framework release 2.12.0 these properties and associated types were deprecated.](https://github.com/microsoft/FluidFramework/releases/tag/client_v2.12.0#user-content-merge-tree-and-sharedstring-isegment-deprecations-23323)
|
|
33
41
|
|
|
34
|
-
|
|
42
|
+
The only use case that will continue to be supported is determining if a segment is removed. For this purpose we've added the free function `segmentIsRemoved(segment: ISegment): boolean`.
|
|
35
43
|
|
|
36
|
-
|
|
44
|
+
For example, checking if a segment is not removed would change as follows:
|
|
37
45
|
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
46
|
+
```diff
|
|
47
|
+
- if(segment.removedSeq === undefined){
|
|
48
|
+
+ if(!segmentIsRemoved(segment)){
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
The following properties are removed from `ISegment` and its implementations:
|
|
42
52
|
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
- IRemovalInfo
|
|
65
|
-
- LocalReferenceCollection
|
|
53
|
+
- clientId
|
|
54
|
+
- index
|
|
55
|
+
- localMovedSeq
|
|
56
|
+
- localRefs
|
|
57
|
+
- localRemovedSeq
|
|
58
|
+
- localSeq
|
|
59
|
+
- movedClientsIds
|
|
60
|
+
- movedSeq
|
|
61
|
+
- movedSeqs
|
|
62
|
+
- ordinal
|
|
63
|
+
- removedClientIds
|
|
64
|
+
- removedSeq
|
|
65
|
+
- seq
|
|
66
|
+
- wasMovedOnInsert
|
|
67
|
+
|
|
68
|
+
Additionally, the following types are also removed:
|
|
69
|
+
|
|
70
|
+
- IMergeNodeCommon
|
|
71
|
+
- IMoveInfo
|
|
72
|
+
- IRemovalInfo
|
|
73
|
+
- LocalReferenceCollection
|
|
66
74
|
|
|
67
75
|
## 2.13.0
|
|
68
76
|
|
|
@@ -72,42 +80,42 @@ Dependency updates only.
|
|
|
72
80
|
|
|
73
81
|
### Minor Changes
|
|
74
82
|
|
|
75
|
-
-
|
|
83
|
+
- Merge-Tree and SharedString ISegment Deprecations ([#23323](https://github.com/microsoft/FluidFramework/pull/23323)) [e8762e37cd](https://github.com/microsoft/FluidFramework/commit/e8762e37cd5edbad36b78b5a40d62a730522e18f)
|
|
76
84
|
|
|
77
|
-
|
|
85
|
+
The current ISegment interface over-exposes a number of properties which do not have an external use case, and any external usage could result in damage to the underlying merge-tree including data corruption.
|
|
78
86
|
|
|
79
|
-
|
|
87
|
+
The only use case that will continue to be supported is determining if a segment is removed. For this purpose we've added the free function `segmentIsRemoved(segment: ISegment): boolean`.
|
|
80
88
|
|
|
81
|
-
|
|
89
|
+
For example, checking if a segment is not removed would change as follows:
|
|
82
90
|
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
91
|
+
```diff
|
|
92
|
+
- if(segment.removedSeq === undefined){
|
|
93
|
+
+ if(!segmentIsRemoved(segment)){
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
The following properties are deprecated on ISegment and its implementations:
|
|
87
97
|
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
- IRemovalInfo
|
|
110
|
-
- LocalReferenceCollection
|
|
98
|
+
- clientId
|
|
99
|
+
- index
|
|
100
|
+
- localMovedSeq
|
|
101
|
+
- localRefs
|
|
102
|
+
- localRemovedSeq
|
|
103
|
+
- localSeq
|
|
104
|
+
- movedClientsIds
|
|
105
|
+
- movedSeq
|
|
106
|
+
- movedSeqs
|
|
107
|
+
- ordinal
|
|
108
|
+
- removedClientIds
|
|
109
|
+
- removedSeq
|
|
110
|
+
- seq
|
|
111
|
+
- wasMovedOnInsert
|
|
112
|
+
|
|
113
|
+
Additionally, the following types are also deprecated, and will become internal (i.e. users of the Fluid Framework will not have access to them):
|
|
114
|
+
|
|
115
|
+
- IMergeNodeCommon
|
|
116
|
+
- IMoveInfo
|
|
117
|
+
- IRemovalInfo
|
|
118
|
+
- LocalReferenceCollection
|
|
111
119
|
|
|
112
120
|
## 2.11.0
|
|
113
121
|
|
|
@@ -117,80 +125,80 @@ Dependency updates only.
|
|
|
117
125
|
|
|
118
126
|
### Minor Changes
|
|
119
127
|
|
|
120
|
-
-
|
|
128
|
+
- Unsupported merge-tree types and related exposed internals have been removed ([#22696](https://github.com/microsoft/FluidFramework/pull/22696)) [7a032533a6](https://github.com/microsoft/FluidFramework/commit/7a032533a6ee6a6f76fe154ef65dfa33f87e5a7b)
|
|
121
129
|
|
|
122
|
-
|
|
130
|
+
As part of ongoing improvements, several internal types and related APIs have been removed. These types are unnecessary for any supported scenarios and could lead to errors if used. Since directly using these types would likely result in errors, these changes are not likely to impact any Fluid Framework consumers.
|
|
123
131
|
|
|
124
|
-
|
|
132
|
+
Removed types:
|
|
125
133
|
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
134
|
+
- IMergeTreeTextHelper
|
|
135
|
+
- MergeNode
|
|
136
|
+
- ObliterateInfo
|
|
137
|
+
- PropertiesManager
|
|
138
|
+
- PropertiesRollback
|
|
139
|
+
- SegmentGroup
|
|
140
|
+
- SegmentGroupCollection
|
|
133
141
|
|
|
134
|
-
|
|
142
|
+
In addition to removing the above types, they are no longer exposed through the following interfaces and their implementations: `ISegment`, `ReferencePosition`, and `ISerializableInterval`.
|
|
135
143
|
|
|
136
|
-
|
|
144
|
+
Removed functions:
|
|
137
145
|
|
|
138
|
-
|
|
139
|
-
|
|
146
|
+
- addProperties
|
|
147
|
+
- ack
|
|
140
148
|
|
|
141
|
-
|
|
149
|
+
Removed properties:
|
|
142
150
|
|
|
143
|
-
|
|
144
|
-
|
|
151
|
+
- propertyManager
|
|
152
|
+
- segmentGroups
|
|
145
153
|
|
|
146
|
-
|
|
147
|
-
|
|
154
|
+
The initial deprecations of the now changed or removed types were announced in Fluid Framework v2.2.0:
|
|
155
|
+
[Fluid Framework v2.2.0](https://github.com/microsoft/FluidFramework/blob/main/RELEASE_NOTES/2.2.0.md)
|
|
148
156
|
|
|
149
|
-
-
|
|
157
|
+
- SharedString DDS annotateAdjustRange ([#22751](https://github.com/microsoft/FluidFramework/pull/22751)) [d54b9dde14](https://github.com/microsoft/FluidFramework/commit/d54b9dde14e9e0e5eb7999db8ebf6da98fdfb526)
|
|
150
158
|
|
|
151
|
-
|
|
159
|
+
This update introduces a new feature to the `SharedString` DDS, allowing for the adjustment of properties over a specified range. The `annotateAdjustRange` method enables users to apply adjustments to properties within a given range, providing more flexibility and control over property modifications.
|
|
152
160
|
|
|
153
|
-
|
|
161
|
+
An adjustment is a modification applied to a property value within a specified range. Adjustments can be used to increment or decrement property values dynamically. They are particularly useful in scenarios where property values need to be updated based on user interactions or other events. For example, in a rich text editor, adjustments can be used for modifying indentation levels or font sizes, where multiple users could apply differing numerical adjustments.
|
|
154
162
|
|
|
155
|
-
|
|
163
|
+
### Key Features and Use Cases:
|
|
156
164
|
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
165
|
+
- **Adjustments with Constraints**: Adjustments can include optional minimum and maximum constraints to ensure the final value falls within specified bounds. This is particularly useful for maintaining consistent formatting in rich text editors.
|
|
166
|
+
- **Consistent Property Changes**: The feature ensures that property changes are consistent, managing both local and remote changes effectively. This is essential for collaborative rich text editing where multiple users may be making adjustments simultaneously.
|
|
167
|
+
- **Rich Text Formatting**: Adjustments can be used to modify text properties such as font size, indentation, or other formatting attributes dynamically based on user actions.
|
|
160
168
|
|
|
161
|
-
|
|
169
|
+
### Configuration and Compatibility Requirements:
|
|
162
170
|
|
|
163
|
-
|
|
171
|
+
This feature is only available when the configuration `Fluid.Sequence.mergeTreeEnableAnnotateAdjust` is set to `true`. Additionally, all collaborating clients must have this feature enabled to use it. If any client does not have this feature enabled, it will lead to the client exiting collaboration. A future major version of Fluid will enable this feature by default.
|
|
164
172
|
|
|
165
|
-
|
|
173
|
+
### Usage Example:
|
|
166
174
|
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
175
|
+
```typescript
|
|
176
|
+
sharedString.annotateAdjustRange(start, end, {
|
|
177
|
+
key: { value: 5, min: 0, max: 10 },
|
|
178
|
+
});
|
|
179
|
+
```
|
|
172
180
|
|
|
173
|
-
-
|
|
181
|
+
- MergeTree `Client` Legacy API Removed ([#22697](https://github.com/microsoft/FluidFramework/pull/22697)) [2aa0b5e794](https://github.com/microsoft/FluidFramework/commit/2aa0b5e7941efe52386782595f96ff847c786fc3)
|
|
174
182
|
|
|
175
|
-
|
|
183
|
+
The `Client` class in the merge-tree package has been removed. Types that directly or indirectly expose the merge-tree `Client` class have also been removed.
|
|
176
184
|
|
|
177
|
-
|
|
185
|
+
The removed types were not meant to be used directly, and direct usage was not supported:
|
|
178
186
|
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
187
|
+
- AttributionPolicy
|
|
188
|
+
- IClientEvents
|
|
189
|
+
- IMergeTreeAttributionOptions
|
|
190
|
+
- SharedSegmentSequence
|
|
191
|
+
- SharedStringClass
|
|
184
192
|
|
|
185
|
-
|
|
193
|
+
Some classes that referenced the `Client` class have been transitioned to interfaces. Direct instantiation of these classes was not supported or necessary for any supported scenario, so the change to an interface should not impact usage. This applies to the following types:
|
|
186
194
|
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
195
|
+
- SequenceInterval
|
|
196
|
+
- SequenceEvent
|
|
197
|
+
- SequenceDeltaEvent
|
|
198
|
+
- SequenceMaintenanceEvent
|
|
191
199
|
|
|
192
|
-
|
|
193
|
-
|
|
200
|
+
The initial deprecations of the now changed or removed types were announced in Fluid Framework v2.4.0:
|
|
201
|
+
[Several MergeTree Client Legacy APIs are now deprecated](https://github.com/microsoft/FluidFramework/blob/main/RELEASE_NOTES/2.4.0.md#several-mergetree-client-legacy-apis-are-now-deprecated-22629)
|
|
194
202
|
|
|
195
203
|
## 2.5.0
|
|
196
204
|
|
|
@@ -200,24 +208,24 @@ Dependency updates only.
|
|
|
200
208
|
|
|
201
209
|
### Minor Changes
|
|
202
210
|
|
|
203
|
-
-
|
|
211
|
+
- Several MergeTree `Client` Legacy APIs are now deprecated ([#22629](https://github.com/microsoft/FluidFramework/pull/22629)) [0b59ae89e0](https://github.com/microsoft/FluidFramework/commit/0b59ae89e0aefefad0ccef198adf99929bc4d783)
|
|
204
212
|
|
|
205
|
-
|
|
213
|
+
To reduce exposure of the `Client` class in the merge-tree package, several types have been deprecated. These types directly or indirectly expose the merge-tree `Client` class.
|
|
206
214
|
|
|
207
|
-
|
|
215
|
+
Most of these types are not meant to be used directly, and direct use is not supported:
|
|
208
216
|
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
217
|
+
- AttributionPolicy
|
|
218
|
+
- IClientEvents
|
|
219
|
+
- IMergeTreeAttributionOptions
|
|
220
|
+
- SharedSegmentSequence
|
|
221
|
+
- SharedStringClass
|
|
214
222
|
|
|
215
|
-
|
|
223
|
+
Some of the deprecations are class constructors. In those cases, we plan to replace the class with an interface which has an equivalent API. Direct instantiation of these classes is not currently supported or necessary for any supported scenario, so the change to an interface should not impact usage. This applies to the following types:
|
|
216
224
|
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
225
|
+
- SequenceInterval
|
|
226
|
+
- SequenceEvent
|
|
227
|
+
- SequenceDeltaEvent
|
|
228
|
+
- SequenceMaintenanceEvent
|
|
221
229
|
|
|
222
230
|
## 2.3.0
|
|
223
231
|
|
|
@@ -227,14 +235,14 @@ Dependency updates only.
|
|
|
227
235
|
|
|
228
236
|
### Minor Changes
|
|
229
237
|
|
|
230
|
-
-
|
|
238
|
+
- The PropertyManager class and related functions and properties are deprecated ([#22183](https://github.com/microsoft/FluidFramework/pull/22183)) [cbba69554f](https://github.com/microsoft/FluidFramework/commit/cbba69554fc5026f562f44683a902474fabd6e81)
|
|
231
239
|
|
|
232
|
-
|
|
233
|
-
|
|
240
|
+
The `PropertyManager` class, along with the `propertyManager` properties and `addProperties` functions on segments and intervals, are not intended for external use.
|
|
241
|
+
These elements will be removed in a future release for the following reasons:
|
|
234
242
|
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
243
|
+
- There are no scenarios where they need to be used directly.
|
|
244
|
+
- Using them directly will cause eventual consistency problems.
|
|
245
|
+
- Upcoming features will require modifications to these mechanisms.
|
|
238
246
|
|
|
239
247
|
## 2.1.0
|
|
240
248
|
|
|
@@ -244,286 +252,287 @@ Dependency updates only.
|
|
|
244
252
|
|
|
245
253
|
### Minor Changes
|
|
246
254
|
|
|
247
|
-
-
|
|
255
|
+
- Update to TypeScript 5.4 ([#21214](https://github.com/microsoft/FluidFramework/pull/21214)) [0e6256c722](https://github.com/microsoft/FluidFramework/commit/0e6256c722d8bf024f4325bf02547daeeb18bfa6)
|
|
248
256
|
|
|
249
|
-
|
|
257
|
+
Update package implementations to use TypeScript 5.4.5.
|
|
250
258
|
|
|
251
|
-
-
|
|
259
|
+
- sequence: Stop ISharedString extending SharedObject ([#21067](https://github.com/microsoft/FluidFramework/pull/21067)) [47465f4b12](https://github.com/microsoft/FluidFramework/commit/47465f4b12056810112df30a6dad89282afc7a2d)
|
|
252
260
|
|
|
253
|
-
|
|
261
|
+
ISharedString no longer extends SharedSegmentSequence and instead extends the new ISharedSegmentSequence, which may be missing some APIs.
|
|
254
262
|
|
|
255
|
-
|
|
263
|
+
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.
|
|
256
264
|
|
|
257
265
|
## 2.0.0-rc.4.0.0
|
|
258
266
|
|
|
259
267
|
### Minor Changes
|
|
260
268
|
|
|
261
|
-
-
|
|
269
|
+
- SharedString now uses ISharedObjectKind and does not export the factory [96872186d0](https://github.com/microsoft/FluidFramework/commit/96872186d0d0f245c1fece7d19b3743e501679b6)
|
|
262
270
|
|
|
263
|
-
|
|
264
|
-
|
|
271
|
+
Most users of `SharedString` should be unaffected as long as they stick to the factory patterns supported by ISharedObjectKind.
|
|
272
|
+
If the actual class type is needed it can be found as `SharedStringClass`.
|
|
265
273
|
|
|
266
|
-
-
|
|
274
|
+
- Deprecated members of IFluidHandle are split off into new IFluidHandleInternal interface [96872186d0](https://github.com/microsoft/FluidFramework/commit/96872186d0d0f245c1fece7d19b3743e501679b6)
|
|
267
275
|
|
|
268
|
-
|
|
269
|
-
|
|
276
|
+
Split IFluidHandle into two interfaces, `IFluidHandle` and `IFluidHandleInternal`.
|
|
277
|
+
Code depending on the previously deprecated members of IFluidHandle can access them by using `toFluidHandleInternal` from `@fluidframework/runtime-utils/legacy`.
|
|
270
278
|
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
279
|
+
External implementation of the `IFluidHandle` interface are not supported: this change makes the typing better convey this using the `ErasedType` pattern.
|
|
280
|
+
Any existing and previously working, and now broken, external implementations of `IFluidHandle` should still work at runtime, but will need some unsafe type casts to compile.
|
|
281
|
+
Such handle implementation may break in the future and thus should be replaced with use of handles produced by the Fluid Framework client packages.
|
|
274
282
|
|
|
275
283
|
## 2.0.0-rc.3.0.0
|
|
276
284
|
|
|
277
285
|
### Major Changes
|
|
278
286
|
|
|
279
|
-
-
|
|
287
|
+
- Packages now use package.json "exports" and require modern module resolution [97d68aa06b](https://github.com/microsoft/FluidFramework/commit/97d68aa06bd5c022ecb026655814aea222a062ae)
|
|
280
288
|
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
289
|
+
Fluid Framework packages have been updated to use the [package.json "exports"
|
|
290
|
+
field](https://nodejs.org/docs/latest-v18.x/api/packages.html#exports) to define explicit entry points for both
|
|
291
|
+
TypeScript types and implementation code.
|
|
284
292
|
|
|
285
|
-
|
|
293
|
+
This means that using Fluid Framework packages require the following TypeScript settings in tsconfig.json:
|
|
286
294
|
|
|
287
|
-
|
|
288
|
-
|
|
295
|
+
- `"moduleResolution": "Node16"` with `"module": "Node16"`
|
|
296
|
+
- `"moduleResolution": "Bundler"` with `"module": "ESNext"`
|
|
289
297
|
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
298
|
+
We recommend using Node16/Node16 unless absolutely necessary. That will produce transpiled JavaScript that is suitable
|
|
299
|
+
for use with modern versions of Node.js _and_ Bundlers.
|
|
300
|
+
[See the TypeScript documentation](https://www.typescriptlang.org/tsconfig#moduleResolution) for more information
|
|
301
|
+
regarding the module and moduleResolution options.
|
|
294
302
|
|
|
295
|
-
|
|
296
|
-
|
|
303
|
+
**Node10 moduleResolution is not supported; it does not support Fluid Framework's API structuring pattern that is used
|
|
304
|
+
to distinguish stable APIs from those that are in development.**
|
|
297
305
|
|
|
298
306
|
## 2.0.0-rc.2.0.0
|
|
299
307
|
|
|
300
308
|
### Minor Changes
|
|
301
309
|
|
|
302
|
-
-
|
|
310
|
+
- 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)
|
|
303
311
|
|
|
304
|
-
|
|
312
|
+
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.
|
|
305
313
|
|
|
306
314
|
## 2.0.0-rc.1.0.0
|
|
307
315
|
|
|
308
316
|
### Minor Changes
|
|
309
317
|
|
|
310
|
-
-
|
|
318
|
+
- Updated server dependencies ([#19122](https://github.com/microsoft/FluidFramework/issues/19122)) [25366b4229](https://github.com/microsoft/FluidFramework/commits/25366b422918cb43685c5f328b50450749592902)
|
|
311
319
|
|
|
312
|
-
|
|
320
|
+
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)
|
|
313
321
|
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
322
|
+
- @fluidframework/gitresources
|
|
323
|
+
- @fluidframework/server-kafka-orderer
|
|
324
|
+
- @fluidframework/server-lambdas
|
|
325
|
+
- @fluidframework/server-lambdas-driver
|
|
326
|
+
- @fluidframework/server-local-server
|
|
327
|
+
- @fluidframework/server-memory-orderer
|
|
328
|
+
- @fluidframework/protocol-base
|
|
329
|
+
- @fluidframework/server-routerlicious
|
|
330
|
+
- @fluidframework/server-routerlicious-base
|
|
331
|
+
- @fluidframework/server-services
|
|
332
|
+
- @fluidframework/server-services-client
|
|
333
|
+
- @fluidframework/server-services-core
|
|
334
|
+
- @fluidframework/server-services-ordering-kafkanode
|
|
335
|
+
- @fluidframework/server-services-ordering-rdkafka
|
|
336
|
+
- @fluidframework/server-services-ordering-zookeeper
|
|
337
|
+
- @fluidframework/server-services-shared
|
|
338
|
+
- @fluidframework/server-services-telemetry
|
|
339
|
+
- @fluidframework/server-services-utils
|
|
340
|
+
- @fluidframework/server-test-utils
|
|
341
|
+
- tinylicious
|
|
334
342
|
|
|
335
|
-
-
|
|
343
|
+
- sequence: Remove the signature of IntervalCollection.add that takes a type parameter ([#18916](https://github.com/microsoft/FluidFramework/issues/18916)) [e5b463cc8b](https://github.com/microsoft/FluidFramework/commits/e5b463cc8b24a411581c3e48f62ce1eea68dd639)
|
|
336
344
|
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
345
|
+
The previously deprecated signature of `IntervalCollection.add` that takes an `IntervalType` as a parameter is now being
|
|
346
|
+
removed. The new signature is called without the type parameter and takes the `start`, `end`, and `properties`
|
|
347
|
+
parameters as a single object.
|
|
340
348
|
|
|
341
|
-
-
|
|
349
|
+
- Updated @fluidframework/protocol-definitions ([#19122](https://github.com/microsoft/FluidFramework/issues/19122)) [25366b4229](https://github.com/microsoft/FluidFramework/commits/25366b422918cb43685c5f328b50450749592902)
|
|
342
350
|
|
|
343
|
-
|
|
344
|
-
|
|
351
|
+
The @fluidframework/protocol-definitions dependency has been upgraded to v3.1.0. [See the full
|
|
352
|
+
changelog.](https://github.com/microsoft/FluidFramework/blob/main/common/lib/protocol-definitions/CHANGELOG.md#310)
|
|
345
353
|
|
|
346
|
-
-
|
|
354
|
+
- sequence: Remove the findTile API ([#18908](https://github.com/microsoft/FluidFramework/issues/18908)) [29b093e55c](https://github.com/microsoft/FluidFramework/commits/29b093e55cb2a7e98c9445b735783f463acfb3bb)
|
|
347
355
|
|
|
348
|
-
|
|
356
|
+
The `findTile` API that was previously deprecated is now being removed. The new `searchForMarker` function provides similar functionality, and can be called with the start position, the client ID, the desired marker label to find, and the search direction, where a value of `true` indicates a forward search.
|
|
349
357
|
|
|
350
|
-
-
|
|
358
|
+
- sequence: Unify the change and changeProperties methods ([#18981](https://github.com/microsoft/FluidFramework/issues/18981)) [31ce11010a](https://github.com/microsoft/FluidFramework/commits/31ce11010a9bd2be95e805544d84df9e21b6c9a7)
|
|
351
359
|
|
|
352
|
-
|
|
360
|
+
Instead of having two separate APIs to modify an interval's endpoints and properties, combine both into the same method, IntervalCollection.change. Change is called with a string id value as the first parameter, and an object containing the start value, the end value, and/or the properties, depending on the desired modifications to the interval. Start and end must both be either defined or undefined.
|
|
353
361
|
|
|
354
|
-
|
|
362
|
+
The old functionality and signatures were deprecated in the internal.7.4.0 minor release.
|
|
355
363
|
|
|
356
|
-
-
|
|
364
|
+
- shared-object-base: SharedObject processGCDataCore now takes IFluidSerializer rather than SummarySerializer ([#18803](https://github.com/microsoft/FluidFramework/issues/18803)) [396b8e9738](https://github.com/microsoft/FluidFramework/commits/396b8e9738156ff88b62424a0076f09fb5028a32)
|
|
357
365
|
|
|
358
|
-
|
|
366
|
+
This change should be a no-op for consumers, and `SummarySerializer` and `IFluidSerializer` expose the same consumer facing APIs. This change just makes our APIs more consistent by only using interfaces, rather than a mix of interfaces and concrete implementations.
|
|
359
367
|
|
|
360
368
|
## 2.0.0-internal.8.0.0
|
|
361
369
|
|
|
362
370
|
### Major Changes
|
|
363
371
|
|
|
364
|
-
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
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
|
-
|
|
372
|
+
- sequence: Some function return types are now void instead of any [9a451d4946](https://github.com/microsoft/FluidFramework/commits/9a451d4946b5c51a52e4d1ab5bf51e7b285b0d74)
|
|
373
|
+
|
|
374
|
+
The return types of some functions have changed from `any` to `void` because the projects are now being compiled with
|
|
375
|
+
the `noImplicitAny` TypeScript compilation option. This does not represent a logic change and only serves to make the
|
|
376
|
+
typing of these functions more accurate.
|
|
377
|
+
|
|
378
|
+
- sequence: Add experimental support for the obliterate operation [9a451d4946](https://github.com/microsoft/FluidFramework/commits/9a451d4946b5c51a52e4d1ab5bf51e7b285b0d74)
|
|
379
|
+
|
|
380
|
+
This change adds experimental support for _obliterate_, a form of _remove_ that deletes concurrently inserted segments.
|
|
381
|
+
To use, enable the `mergeTreeEnableObliterate` feature flag and call the new `obliterateRange` functions.
|
|
382
|
+
|
|
383
|
+
Note: this change may cause compilation errors for those attaching event listeners. As long as obliterate isn't used in
|
|
384
|
+
current handlers, their current implementation is sound.
|
|
385
|
+
|
|
386
|
+
- datastore-definitions: Jsonable and Serializable now require a generic parameter [9a451d4946](https://github.com/microsoft/FluidFramework/commits/9a451d4946b5c51a52e4d1ab5bf51e7b285b0d74)
|
|
387
|
+
|
|
388
|
+
The `Jsonable` and `Serializable` types from @fluidframework/datastore-definitions now require a generic parameter and
|
|
389
|
+
if that type is `any` or `unknown`will return a new result `JsonableTypeWith<>` that more accurately represents the
|
|
390
|
+
limitation of serialization.
|
|
391
|
+
|
|
392
|
+
Additional modifications:
|
|
393
|
+
|
|
394
|
+
- `Jsonable`'s `TReplacement` parameter default has also been changed from `void` to `never`, which now disallows
|
|
395
|
+
`void`.
|
|
396
|
+
- Unrecognized primitive types like `symbol` are now filtered to `never` instead of `{}`.
|
|
397
|
+
- Recursive types with arrays (`[]`) are now supported.
|
|
398
|
+
|
|
399
|
+
`Serializable` is commonly used for DDS values and now requires more precision when using them. For example SharedMatrix
|
|
400
|
+
(unqualified) has an `any` default that meant values were `Serializable<any>` (i.e. `any`), but now `Serializable<any>`
|
|
401
|
+
is `JsonableTypeWith<IFluidHandle>` which may be problematic for reading or writing. Preferred correction is to specify
|
|
402
|
+
the value type but casting through `any` may provide a quick fix.
|
|
403
|
+
|
|
404
|
+
- sequence: Removed Marker.hasSimpleType and made sequence operations return void [9a451d4946](https://github.com/microsoft/FluidFramework/commits/9a451d4946b5c51a52e4d1ab5bf51e7b285b0d74)
|
|
405
|
+
|
|
406
|
+
`Marker.hasSimpleType` was unused. Sequence operations now no longer return IMergeTree\*Msg types.
|
|
407
|
+
These types are redundant with the input.
|
|
408
|
+
|
|
409
|
+
- sequence: Removed several public exports from merge-tree and sequence [9a451d4946](https://github.com/microsoft/FluidFramework/commits/9a451d4946b5c51a52e4d1ab5bf51e7b285b0d74)
|
|
410
|
+
|
|
411
|
+
The following APIs have been removed or marked internal in merge-tree and sequence. This functionality was never
|
|
412
|
+
intended for public export.
|
|
413
|
+
|
|
414
|
+
- `BaseSegment.ack`
|
|
415
|
+
- `Client`
|
|
416
|
+
- `CollaborationWindow`
|
|
417
|
+
- `compareNumbers`
|
|
418
|
+
- `compareStrings`
|
|
419
|
+
- `createAnnotateMarkerOp`
|
|
420
|
+
- `createAnnotateRangeOp`
|
|
421
|
+
- `createGroupOp`
|
|
422
|
+
- `createInsertOp`
|
|
423
|
+
- `createInsertSegmentOp`
|
|
424
|
+
- `createRemoveRangeOp`
|
|
425
|
+
- `IConsensusInfo`
|
|
426
|
+
- `IConsensusValue`
|
|
427
|
+
- `IMarkerModifiedAction`
|
|
428
|
+
- `IMergeTreeTextHelper`
|
|
429
|
+
- `LocalClientId`
|
|
430
|
+
- `MergeTreeDeltaCallback`
|
|
431
|
+
- `MergeTreeMaintenanceCallback`
|
|
432
|
+
- `NonCollabClient`
|
|
433
|
+
- `SegmentAccumulator`
|
|
434
|
+
- `SegmentGroup`
|
|
435
|
+
- `SegmentGroupCollection.enqueue`
|
|
436
|
+
- `SegmentGroupCollection.dequeue`
|
|
437
|
+
- `SegmentGroupCollection.pop`
|
|
438
|
+
- `SortedSegmentSet`
|
|
439
|
+
- `SortedSegmentSetItem`
|
|
440
|
+
- `SortedSet`
|
|
441
|
+
- `toRemovalInfo`
|
|
442
|
+
- `TreeMaintenanceSequenceNumber`
|
|
443
|
+
- `UniversalSequenceNumber`
|
|
444
|
+
- `SharedSegmentSequence.submitSequenceMessage`
|
|
445
|
+
|
|
446
|
+
- sequence: Remove support for combining ops [9a451d4946](https://github.com/microsoft/FluidFramework/commits/9a451d4946b5c51a52e4d1ab5bf51e7b285b0d74)
|
|
447
|
+
|
|
448
|
+
In sequence, removed the following APIs:
|
|
449
|
+
|
|
450
|
+
- the `combiningOp` argument from `SharedSegmentSequence.annotateRange` and `SharedString.annotateMarker`
|
|
451
|
+
- the function `SharedString.annotateMarkerNotifyConsensus`
|
|
452
|
+
|
|
453
|
+
In merge-tree, removed the following APIs:
|
|
454
|
+
|
|
455
|
+
- `ICombiningOp`
|
|
456
|
+
- the `combiningOp` field from `IMergeTreeAnnotateMsg`
|
|
457
|
+
- the `op` argument from `BaseSegment.addProperties`, `PropertiesManager.addProperties`, and `ReferencePosition.addProperties`
|
|
458
|
+
- the enum variant `PropertiesRollback.Rewrite`.
|
|
459
|
+
|
|
460
|
+
This functionality was largely unused and had no test coverage.
|
|
461
|
+
|
|
462
|
+
- sequence: Removed several APIs [9a451d4946](https://github.com/microsoft/FluidFramework/commits/9a451d4946b5c51a52e4d1ab5bf51e7b285b0d74)
|
|
463
|
+
|
|
464
|
+
The following APIs have been removed:
|
|
465
|
+
|
|
466
|
+
- `Client.getStackContext`
|
|
467
|
+
- `SharedSegmentSequence.getStackContext`
|
|
468
|
+
- `IntervalType.Nest`
|
|
469
|
+
- `ReferenceType.NestBegin`
|
|
470
|
+
- `ReferenceType.NestEnd`
|
|
471
|
+
- `internedSpaces`
|
|
472
|
+
- `RangeStackMap`
|
|
473
|
+
- `refGetRangeLabels`
|
|
474
|
+
- `refHasRangeLabel`
|
|
475
|
+
- `refHasRangeLabels`
|
|
476
|
+
|
|
477
|
+
This functionality is deprecated, has low test coverage, and is largely unused.
|
|
470
478
|
|
|
471
479
|
## 2.0.0-internal.7.4.0
|
|
472
480
|
|
|
473
481
|
### Minor Changes
|
|
474
482
|
|
|
475
|
-
-
|
|
483
|
+
- sequence: `change` and `changeProperties` are now a single method ([#18676](https://github.com/microsoft/FluidFramework/issues/18676)) [12c83d2696](https://github.com/microsoft/FluidFramework/commits/12c83d26962a1d76db6eb0ccad31fd6a7976a1af)
|
|
476
484
|
|
|
477
|
-
|
|
478
|
-
|
|
479
|
-
|
|
485
|
+
Instead of having two separate methods to change the endpoints of an interval and the properties, they have been combined into a
|
|
486
|
+
single method that will change the endpoints, properties, or both, depending on the arguments passed in. The signature
|
|
487
|
+
of this combined method is now updated as well.
|
|
480
488
|
|
|
481
|
-
|
|
482
|
-
|
|
483
|
-
|
|
484
|
-
|
|
485
|
-
|
|
489
|
+
The new way to use the change method is to call it with an interval id as the first parameter and an object containing
|
|
490
|
+
the desired portions of the interval to update as the second parameter. For the object parameter, the `endpoints` field
|
|
491
|
+
should be an object containing the new `start` and `end` values for the interval, and the `properties` field should be
|
|
492
|
+
an object containing the new properties for the interval. Either the `endpoints` field or the `properties` field can be
|
|
493
|
+
omitted, and if neither are present, `change` will return `undefined`.
|
|
486
494
|
|
|
487
|
-
|
|
495
|
+
The new usage of the change method is as follows:
|
|
488
496
|
|
|
489
|
-
|
|
497
|
+
Change interval endpoints: `change(id, { endpoints: { start: 1, end: 4 } });`
|
|
490
498
|
|
|
491
|
-
|
|
499
|
+
Change interval properties: `change(id { props: { a: 1 } });`
|
|
492
500
|
|
|
493
|
-
|
|
501
|
+
Change interval endpoints and properties: `change(id, { endpoints: { start: 1, end: 4 }, props: { a: 1 } });`
|
|
494
502
|
|
|
495
|
-
-
|
|
503
|
+
- sequence: Deprecated findOverlappingIntervals API ([#18036](https://github.com/microsoft/FluidFramework/issues/18036)) [52b864ea42](https://github.com/microsoft/FluidFramework/commits/52b864ea42759403771f2cbcb282b0ba19ce42f6)
|
|
496
504
|
|
|
497
|
-
|
|
498
|
-
|
|
499
|
-
|
|
505
|
+
The `findOverlappingIntervals` API from `IntervalCollection` has been deprecated. This functionality is moved to the
|
|
506
|
+
`OverlappingIntervalsIndex`. Users should independently attach the index to the collection and utilize the API
|
|
507
|
+
accordingly, for instance:
|
|
500
508
|
|
|
501
|
-
|
|
502
|
-
|
|
503
|
-
|
|
504
|
-
|
|
505
|
-
|
|
509
|
+
```typescript
|
|
510
|
+
const overlappingIntervalsIndex =
|
|
511
|
+
createOverlappingIntervalsIndex(sharedString);
|
|
512
|
+
collection.attachIndex(overlappingIntervalsIndex);
|
|
513
|
+
const result = overlappingIntervalsIndex.findOverlappingIntervals(start, end);
|
|
514
|
+
```
|
|
506
515
|
|
|
507
|
-
-
|
|
516
|
+
- sequence: Deprecated previousInterval and nextInterval APIs ([#18060](https://github.com/microsoft/FluidFramework/issues/18060)) [05fb45d26f](https://github.com/microsoft/FluidFramework/commits/05fb45d26f3065297e219a4bce5763e25bdcffc9)
|
|
508
517
|
|
|
509
|
-
|
|
510
|
-
|
|
511
|
-
|
|
518
|
+
The `previousInterval` and `nextInterval` APIs from `IntervalCollection` have been deprecated. These functions are moved
|
|
519
|
+
to the `EndpointIndex`. Users should independently attach the index to the collection and utilize the API accordingly,
|
|
520
|
+
for instance:
|
|
512
521
|
|
|
513
|
-
|
|
514
|
-
|
|
515
|
-
|
|
522
|
+
```typescript
|
|
523
|
+
const endpointIndex = createEndpointIndex(sharedString);
|
|
524
|
+
collection.attachIndex(endpointIndex);
|
|
516
525
|
|
|
517
|
-
|
|
518
|
-
|
|
519
|
-
|
|
526
|
+
const result1 = endpointIndex.previousInterval(pos);
|
|
527
|
+
const result2 = endpointIndex.nextInterval(pos);
|
|
528
|
+
```
|
|
520
529
|
|
|
521
|
-
-
|
|
530
|
+
- sequence: Deprecated ICombiningOp, PropertiesRollback.Rewrite, and SharedString.annotateMarkerNotifyConsensus ([#18318](https://github.com/microsoft/FluidFramework/issues/18318)) [e67c2cac5f](https://github.com/microsoft/FluidFramework/commits/e67c2cac5f275fc5c875c0bc044bbb72aaf76648)
|
|
522
531
|
|
|
523
|
-
|
|
524
|
-
|
|
525
|
-
|
|
526
|
-
|
|
532
|
+
The `ICombiningOp` and its usage in various APIs has been deprecated. APIs affected include
|
|
533
|
+
`SharedSegmentSequence.annotateRange` and `SharedString.annotateMarker`. `SharedString.annotateMarkerNotifyConsensus`
|
|
534
|
+
has also been deprecated, because it is related to combining ops. This functionality had no test coverage and was
|
|
535
|
+
largely unused.
|
|
527
536
|
|
|
528
537
|
## 2.0.0-internal.7.3.0
|
|
529
538
|
|
|
@@ -533,100 +542,100 @@ Dependency updates only.
|
|
|
533
542
|
|
|
534
543
|
### Minor Changes
|
|
535
544
|
|
|
536
|
-
-
|
|
545
|
+
- sequence: SharedString.findTile is now deprecated ([#17832](https://github.com/microsoft/FluidFramework/issues/17832)) [428234a2fb](https://github.com/microsoft/FluidFramework/commits/428234a2fb8c7a7c0bcdc9370a6632cd007c8a07)
|
|
537
546
|
|
|
538
|
-
|
|
547
|
+
findTile was previously deprecated on client and mergeTree, but was not on SharedString. Usage is mostly the same, with the exception that the parameter 'startPos' must be a number and cannot be undefined.
|
|
539
548
|
|
|
540
549
|
## 2.0.0-internal.7.1.0
|
|
541
550
|
|
|
542
551
|
### Minor Changes
|
|
543
552
|
|
|
544
|
-
-
|
|
553
|
+
- sequence: IntervalCollection.add's intervalType is now deprecated ([#17165](https://github.com/microsoft/FluidFramework/issues/17165)) [a8ea26c9d6](https://github.com/microsoft/FluidFramework/commits/a8ea26c9d61e4938f10c87a8757734f8772fbce6)
|
|
545
554
|
|
|
546
|
-
|
|
547
|
-
|
|
555
|
+
The `intervalType` parameter is being removed from `IntervalCollection.add`. The new usage requires calling add with an object containing each of the desired parameters.
|
|
556
|
+
Example: `add({start: 0, end: 1, props: { a: b }})`
|
|
548
557
|
|
|
549
|
-
|
|
550
|
-
|
|
551
|
-
|
|
552
|
-
|
|
558
|
+
The signature of `IntervalCollection.change` is also being updated to an object containing the desired parameters,
|
|
559
|
+
instead of the existing list of parameters. In addition, `changeProperties` will be removed, so in order to change the
|
|
560
|
+
properties of an interval, the `change` method (with the updated signature) will be used. The id of the interval is not
|
|
561
|
+
included in the object passed to `change`, but is instead passed as the first parameter to `change`.
|
|
553
562
|
|
|
554
|
-
|
|
563
|
+
Examples:
|
|
555
564
|
|
|
556
|
-
|
|
557
|
-
|
|
565
|
+
- Change interval endpoints: `change(intervalId, { start: 3, end: 4 })`
|
|
566
|
+
- Change interval properties: `change(intervalId, { props: { a: c } })`
|
|
558
567
|
|
|
559
|
-
-
|
|
568
|
+
- merge-tree: Deprecate IntervalType.Nest, internedSpaces, RangeStackMap, refGetRangeLabels, refHasRangeLabel, and refHasRangeLabels ([#17555](https://github.com/microsoft/FluidFramework/issues/17555)) [e4c11874ef](https://github.com/microsoft/FluidFramework/commits/e4c11874ef7c62b7cde7c282bc7997519d35fbbc)
|
|
560
569
|
|
|
561
|
-
|
|
562
|
-
|
|
570
|
+
The following classes and functions have been deprecated. The functionality has poor test coverage and is largely
|
|
571
|
+
unused. They will be removed in a future release.
|
|
563
572
|
|
|
564
|
-
|
|
565
|
-
|
|
566
|
-
|
|
567
|
-
|
|
568
|
-
|
|
569
|
-
|
|
573
|
+
- IntervalType.Nest
|
|
574
|
+
- internedSpaces
|
|
575
|
+
- RangeStackMap
|
|
576
|
+
- refGetRangeLabels
|
|
577
|
+
- refHasRangeLabel
|
|
578
|
+
- refHasRangeLabels
|
|
570
579
|
|
|
571
580
|
## 2.0.0-internal.7.0.0
|
|
572
581
|
|
|
573
582
|
### Major Changes
|
|
574
583
|
|
|
575
|
-
-
|
|
584
|
+
- sequence: New API for specifying spatial positioning of intervals [871b3493dd](https://github.com/microsoft/FluidFramework/commits/871b3493dd0d7ea3a89be64998ceb6cb9021a04e)
|
|
576
585
|
|
|
577
|
-
|
|
586
|
+
Previously intervals were specified with only an index. Now the model is a bit more nuanced in that you can specify positions that lie before or after a given index. This makes it more clear how interval endpoints should interact with changes to the sequence. See the docs for SequencePlace for additional context.
|
|
578
587
|
|
|
579
|
-
-
|
|
588
|
+
- sequence: IIntervalCollection.change must specify both endpoints [871b3493dd](https://github.com/microsoft/FluidFramework/commits/871b3493dd0d7ea3a89be64998ceb6cb9021a04e)
|
|
580
589
|
|
|
581
|
-
|
|
590
|
+
IIntervalCollection.change no longer allows an endpoint to be undefined. undefined can unintentionally result in end < start. To adapt to this change, simply use the current position of the endpoint that is not intended to change.
|
|
582
591
|
|
|
583
|
-
-
|
|
592
|
+
- Dependencies on @fluidframework/protocol-definitions package updated to 3.0.0 [871b3493dd](https://github.com/microsoft/FluidFramework/commits/871b3493dd0d7ea3a89be64998ceb6cb9021a04e)
|
|
584
593
|
|
|
585
|
-
|
|
594
|
+
This included the following changes from the protocol-definitions release:
|
|
586
595
|
|
|
587
|
-
|
|
588
|
-
|
|
589
|
-
|
|
590
|
-
|
|
591
|
-
|
|
592
|
-
|
|
596
|
+
- Updating signal interfaces for some planned improvements. The intention is split the interface between signals
|
|
597
|
+
submitted by clients to the server and the resulting signals sent from the server to clients.
|
|
598
|
+
- A new optional type member is available on the ISignalMessage interface and a new ISentSignalMessage interface has
|
|
599
|
+
been added, which will be the typing for signals sent from the client to the server. Both extend a new
|
|
600
|
+
ISignalMessageBase interface that contains common members.
|
|
601
|
+
- The @fluidframework/common-definitions package dependency has been updated to version 1.0.0.
|
|
593
602
|
|
|
594
|
-
-
|
|
603
|
+
- Server upgrade: dependencies on Fluid server packages updated to 2.0.1 [871b3493dd](https://github.com/microsoft/FluidFramework/commits/871b3493dd0d7ea3a89be64998ceb6cb9021a04e)
|
|
595
604
|
|
|
596
|
-
|
|
605
|
+
Dependencies on the following Fluid server package have been updated to version 2.0.1:
|
|
597
606
|
|
|
598
|
-
|
|
599
|
-
|
|
600
|
-
|
|
601
|
-
|
|
602
|
-
|
|
603
|
-
|
|
604
|
-
|
|
605
|
-
|
|
606
|
-
|
|
607
|
-
|
|
608
|
-
|
|
609
|
-
|
|
610
|
-
|
|
611
|
-
|
|
612
|
-
|
|
613
|
-
|
|
614
|
-
|
|
615
|
-
|
|
616
|
-
|
|
617
|
-
|
|
607
|
+
- @fluidframework/gitresources: 2.0.1
|
|
608
|
+
- @fluidframework/server-kafka-orderer: 2.0.1
|
|
609
|
+
- @fluidframework/server-lambdas: 2.0.1
|
|
610
|
+
- @fluidframework/server-lambdas-driver: 2.0.1
|
|
611
|
+
- @fluidframework/server-local-server: 2.0.1
|
|
612
|
+
- @fluidframework/server-memory-orderer: 2.0.1
|
|
613
|
+
- @fluidframework/protocol-base: 2.0.1
|
|
614
|
+
- @fluidframework/server-routerlicious: 2.0.1
|
|
615
|
+
- @fluidframework/server-routerlicious-base: 2.0.1
|
|
616
|
+
- @fluidframework/server-services: 2.0.1
|
|
617
|
+
- @fluidframework/server-services-client: 2.0.1
|
|
618
|
+
- @fluidframework/server-services-core: 2.0.1
|
|
619
|
+
- @fluidframework/server-services-ordering-kafkanode: 2.0.1
|
|
620
|
+
- @fluidframework/server-services-ordering-rdkafka: 2.0.1
|
|
621
|
+
- @fluidframework/server-services-ordering-zookeeper: 2.0.1
|
|
622
|
+
- @fluidframework/server-services-shared: 2.0.1
|
|
623
|
+
- @fluidframework/server-services-telemetry: 2.0.1
|
|
624
|
+
- @fluidframework/server-services-utils: 2.0.1
|
|
625
|
+
- @fluidframework/server-test-utils: 2.0.1
|
|
626
|
+
- tinylicious: 2.0.1
|
|
618
627
|
|
|
619
|
-
-
|
|
628
|
+
- Minimum TypeScript version now 5.1.6 [871b3493dd](https://github.com/microsoft/FluidFramework/commits/871b3493dd0d7ea3a89be64998ceb6cb9021a04e)
|
|
620
629
|
|
|
621
|
-
|
|
630
|
+
The minimum supported TypeScript version for Fluid 2.0 clients is now 5.1.6.
|
|
622
631
|
|
|
623
|
-
-
|
|
632
|
+
- sequence: Remove `compareStarts` and `compareEnds` from `IIntervalHelpers` [871b3493dd](https://github.com/microsoft/FluidFramework/commits/871b3493dd0d7ea3a89be64998ceb6cb9021a04e)
|
|
624
633
|
|
|
625
|
-
|
|
634
|
+
These methods are redudant with the functions `IInterval.compareStart` and `IInterval.compareEnd` respectively.
|
|
626
635
|
|
|
627
|
-
-
|
|
636
|
+
- sequence: Remove the mergeTreeUseNewLengthCalculations flag [871b3493dd](https://github.com/microsoft/FluidFramework/commits/871b3493dd0d7ea3a89be64998ceb6cb9021a04e)
|
|
628
637
|
|
|
629
|
-
|
|
638
|
+
The `mergeTreeUseNewLengthCalculations` flag has been removed, because the feature was enabled by default in 2.0.0-internal.6.0.0.
|
|
630
639
|
|
|
631
640
|
## 2.0.0-internal.6.4.0
|
|
632
641
|
|
|
@@ -636,53 +645,53 @@ Dependency updates only.
|
|
|
636
645
|
|
|
637
646
|
### Minor Changes
|
|
638
647
|
|
|
639
|
-
-
|
|
648
|
+
- deprecate compareStarts and compareEnds on IIntervalHelpers ([#17127](https://github.com/microsoft/FluidFramework/issues/17127)) [a830eca757](https://github.com/microsoft/FluidFramework/commits/a830eca7571cfb230abe5b9443ba5c5fc44671e0)
|
|
640
649
|
|
|
641
|
-
|
|
650
|
+
these functions will be removed in a future version. use the methods IInterval.compareStart and IInterval.compareEnd respectively instead
|
|
642
651
|
|
|
643
652
|
## 2.0.0-internal.6.2.0
|
|
644
653
|
|
|
645
654
|
### Minor Changes
|
|
646
655
|
|
|
647
|
-
-
|
|
656
|
+
- Deprecate getStackContext and associated NestBegin/End ([#16877](https://github.com/microsoft/FluidFramework/issues/16877)) [8e743fe1dd](https://github.com/microsoft/FluidFramework/commits/8e743fe1dde9adb3a1240971987d3abd51ab2fbe)
|
|
648
657
|
|
|
649
|
-
|
|
650
|
-
|
|
658
|
+
Deprecate SharedSegmentSequence.getStackContext and Client.getStackContext (and the enums ReferenceType.NestBegin and NestEnd they use).
|
|
659
|
+
This functionality is unused, poorly tested, and incurs performance overhead.
|
|
651
660
|
|
|
652
|
-
-
|
|
661
|
+
- Remove use of @fluidframework/common-definitions ([#16638](https://github.com/microsoft/FluidFramework/issues/16638)) [a8c81509c9](https://github.com/microsoft/FluidFramework/commits/a8c81509c9bf09cfb2092ebcf7265205f9eb6dbf)
|
|
653
662
|
|
|
654
|
-
|
|
655
|
-
|
|
663
|
+
The **@fluidframework/common-definitions** package is being deprecated, so the following interfaces and types are now
|
|
664
|
+
imported from the **@fluidframework/core-interfaces** package:
|
|
656
665
|
|
|
657
|
-
|
|
658
|
-
|
|
659
|
-
|
|
660
|
-
|
|
661
|
-
|
|
662
|
-
|
|
663
|
-
|
|
664
|
-
|
|
665
|
-
|
|
666
|
-
|
|
667
|
-
|
|
668
|
-
|
|
669
|
-
|
|
670
|
-
|
|
671
|
-
|
|
672
|
-
|
|
673
|
-
|
|
674
|
-
|
|
675
|
-
|
|
676
|
-
|
|
677
|
-
|
|
666
|
+
- interface IDisposable
|
|
667
|
+
- interface IErrorEvent
|
|
668
|
+
- interface IErrorEvent
|
|
669
|
+
- interface IEvent
|
|
670
|
+
- interface IEventProvider
|
|
671
|
+
- interface ILoggingError
|
|
672
|
+
- interface ITaggedTelemetryPropertyType
|
|
673
|
+
- interface ITelemetryBaseEvent
|
|
674
|
+
- interface ITelemetryBaseLogger
|
|
675
|
+
- interface ITelemetryErrorEvent
|
|
676
|
+
- interface ITelemetryGenericEvent
|
|
677
|
+
- interface ITelemetryLogger
|
|
678
|
+
- interface ITelemetryPerformanceEvent
|
|
679
|
+
- interface ITelemetryProperties
|
|
680
|
+
- type ExtendEventProvider
|
|
681
|
+
- type IEventThisPlaceHolder
|
|
682
|
+
- type IEventTransformer
|
|
683
|
+
- type ReplaceIEventThisPlaceHolder
|
|
684
|
+
- type ReplaceIEventThisPlaceHolder
|
|
685
|
+
- type TelemetryEventCategory
|
|
686
|
+
- type TelemetryEventPropertyType
|
|
678
687
|
|
|
679
|
-
-
|
|
688
|
+
- Deprecate SharedSequence, SubSequence, and IJSONRunSegment ([#16829](https://github.com/microsoft/FluidFramework/issues/16829)) [0cf2b6d909](https://github.com/microsoft/FluidFramework/commits/0cf2b6d9098c7ef4234b66c5d7d169192db40d15)
|
|
680
689
|
|
|
681
|
-
|
|
690
|
+
The types SharedSequence, SubSequence, and IJSONRunSegment are being deprecated and moved.
|
|
682
691
|
|
|
683
|
-
|
|
692
|
+
They are now, and will continue to be exposed from the @fluid-experimental/sequence-deprecated package.
|
|
684
693
|
|
|
685
|
-
|
|
694
|
+
New usages of these types should not be added, but they may be necessary for migration.
|
|
686
695
|
|
|
687
696
|
## 2.0.0-internal.6.1.0
|
|
688
697
|
|
|
@@ -692,59 +701,65 @@ Dependency updates only.
|
|
|
692
701
|
|
|
693
702
|
### Major Changes
|
|
694
703
|
|
|
695
|
-
-
|
|
704
|
+
- IntervalConflictResolver removed [8abce8cdb4](https://github.com/microsoft/FluidFramework/commits/8abce8cdb4e2832fb6405fb44e393bef03d5648a)
|
|
696
705
|
|
|
697
|
-
|
|
706
|
+
IntervalConflictResolver has been removed. Any lingering usages in application code can be removed as well. This change also marks APIs deprecated in #14318 as internal.
|
|
698
707
|
|
|
699
|
-
-
|
|
708
|
+
- Remove ISegment.parent [8abce8cdb4](https://github.com/microsoft/FluidFramework/commits/8abce8cdb4e2832fb6405fb44e393bef03d5648a)
|
|
700
709
|
|
|
701
|
-
|
|
710
|
+
This change removed the parent property on the ISegment interface. The property will still exist, but should not generally be used by outside consumers.
|
|
702
711
|
|
|
703
|
-
|
|
712
|
+
There are some circumstances where a consumer may wish to know if a segment is still in the underlying tree and were using the parent property to determine that.
|
|
704
713
|
|
|
705
|
-
|
|
714
|
+
Please change those checks to use the following `"parent" in segment && segment.parent !== undefined`
|
|
706
715
|
|
|
707
|
-
-
|
|
716
|
+
- Upgraded typescript transpilation target to ES2020 [8abce8cdb4](https://github.com/microsoft/FluidFramework/commits/8abce8cdb4e2832fb6405fb44e393bef03d5648a)
|
|
708
717
|
|
|
709
|
-
|
|
718
|
+
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.
|
|
710
719
|
|
|
711
720
|
## 2.0.0-internal.5.4.0
|
|
712
721
|
|
|
713
722
|
### Minor Changes
|
|
714
723
|
|
|
715
|
-
-
|
|
724
|
+
- Some interval-related APIs are deprecated ([#16573](https://github.com/microsoft/FluidFramework/issues/16573)) [82de148126](https://github.com/microsoft/FluidFramework/commits/82de14812617e4d305bdb621737a0d94a5392d25)
|
|
716
725
|
|
|
717
|
-
|
|
726
|
+
The following APIs are now deprecated from `IntervalCollection`:
|
|
718
727
|
|
|
719
|
-
|
|
720
|
-
|
|
721
|
-
|
|
728
|
+
- `findOverlappingIntervals` and `gatherIterationResults` - these functions are moved to
|
|
729
|
+
the `OverlappingIntervalsIndex`. Users are advised to independently attach the index to the collection and utilize the
|
|
730
|
+
API accordingly, for instance:
|
|
722
731
|
|
|
723
|
-
|
|
724
|
-
|
|
725
|
-
|
|
726
|
-
|
|
732
|
+
```typescript
|
|
733
|
+
const overlappingIntervalsIndex = createOverlappingIntervalsIndex(
|
|
734
|
+
client,
|
|
735
|
+
helpers,
|
|
736
|
+
);
|
|
737
|
+
collection.attachIndex(overlappingIntervalsIndex);
|
|
738
|
+
const result1 = overlappingIntervalsIndex.findOverlappingIntervals(
|
|
739
|
+
start,
|
|
740
|
+
end,
|
|
741
|
+
);
|
|
727
742
|
|
|
728
|
-
|
|
729
|
-
|
|
730
|
-
|
|
743
|
+
const result2 = [];
|
|
744
|
+
overlappingIntervalsIndex.gatherIterationResults(result2, true);
|
|
745
|
+
```
|
|
731
746
|
|
|
732
|
-
|
|
733
|
-
|
|
734
|
-
|
|
747
|
+
- `CreateBackwardIteratorWithEndPosition`, `CreateBackwardIteratorWithStartPosition`,
|
|
748
|
+
`CreateForwardIteratorWithEndPosition` and `CreateForwardIteratorWithStartPosition` - only the default iterator will be
|
|
749
|
+
supported in the future, and it will no longer preserve sequence order.
|
|
735
750
|
|
|
736
|
-
|
|
751
|
+
Equivalent functionality to these four methods is provided by `IOverlappingIntervalIndex.gatherIterationResults`.
|
|
737
752
|
|
|
738
|
-
|
|
739
|
-
|
|
753
|
+
- `previousInterval` and `nextInterval` - These functionalities are moved to the `EndpointIndex`. Users are advised to
|
|
754
|
+
independently attach the index to the collection and utilize the API accordingly, for instance:
|
|
740
755
|
|
|
741
|
-
|
|
742
|
-
|
|
743
|
-
|
|
756
|
+
```typescript
|
|
757
|
+
const endpointIndex = createEndpointIndex(client, helpers);
|
|
758
|
+
collection.attachIndex(endpointIndex);
|
|
744
759
|
|
|
745
|
-
|
|
746
|
-
|
|
747
|
-
|
|
760
|
+
const result1 = endpointIndex.previousInterval(pos);
|
|
761
|
+
const result2 = endpointIndex.nextInterval(pos);
|
|
762
|
+
```
|
|
748
763
|
|
|
749
764
|
## 2.0.0-internal.5.3.0
|
|
750
765
|
|
|
@@ -754,53 +769,53 @@ Dependency updates only.
|
|
|
754
769
|
|
|
755
770
|
### Minor Changes
|
|
756
771
|
|
|
757
|
-
-
|
|
772
|
+
- Deprecate ISegment.parent ([#16097](https://github.com/microsoft/FluidFramework/issues/16097)) [9486bec0ea](https://github.com/microsoft/FluidFramework/commits/9486bec0ea2f9f1dd3e40fc3b4c42af6b6a44697)
|
|
758
773
|
|
|
759
|
-
|
|
774
|
+
This change deprecates the parent property on the ISegment interface. The property will still exist, but should not generally be used by outside consumers.
|
|
760
775
|
|
|
761
|
-
|
|
776
|
+
There are some circumstances where a consumer may wish to know if a segment is still in the underlying tree and were using the parent property to determine that.
|
|
762
777
|
|
|
763
|
-
|
|
778
|
+
Please change those checks to use the following `"parent" in segment && segment.parent !== undefined`
|
|
764
779
|
|
|
765
|
-
-
|
|
780
|
+
- slide parameter in changeInterval event ([#16117](https://github.com/microsoft/FluidFramework/issues/16117)) [46f74fe568](https://github.com/microsoft/FluidFramework/commits/46f74fe5684e44df436ed28ea41c98ca146b03cc)
|
|
766
781
|
|
|
767
|
-
|
|
782
|
+
The changeInterval event listener has a new parameter "slide" that is true if the event was caused by the interval endpoint sliding from a removed range.
|
|
768
783
|
|
|
769
784
|
## 2.0.0-internal.5.1.0
|
|
770
785
|
|
|
771
786
|
### Minor Changes
|
|
772
787
|
|
|
773
|
-
-
|
|
788
|
+
- New APIs for interval querying by range ([#15837](https://github.com/microsoft/FluidFramework/issues/15837)) [2a4242e1b5](https://github.com/microsoft/FluidFramework/commits/2a4242e1b5f15442b13ae413124ec76315a4cc52)
|
|
774
789
|
|
|
775
|
-
|
|
790
|
+
SharedString now supports querying intervals whose start/end-points fall in a specified range.
|
|
776
791
|
|
|
777
792
|
## 2.0.0-internal.5.0.0
|
|
778
793
|
|
|
779
794
|
### Major Changes
|
|
780
795
|
|
|
781
|
-
-
|
|
782
|
-
|
|
783
|
-
|
|
796
|
+
- The following types have been removed: `IntervalCollection`, `CompressedSerializedInterval`, [8b242fdc79](https://github.com/microsoft/FluidFramework/commits/8b242fdc796714cf1da9ad3f90d02efb122af0c2)
|
|
797
|
+
`IntervalCollectionIterator`, and `ISerializedIntervalCollectionV2`. These types were deprecated in version
|
|
798
|
+
2.0.0-internal.4.4.0.
|
|
784
799
|
|
|
785
800
|
## 2.0.0-internal.4.4.0
|
|
786
801
|
|
|
787
802
|
### Minor Changes
|
|
788
803
|
|
|
789
|
-
-
|
|
790
|
-
|
|
791
|
-
|
|
792
|
-
-
|
|
793
|
-
-
|
|
794
|
-
|
|
795
|
-
-
|
|
804
|
+
- `IntervalCollection` has been deprecated in favor of an interface (`IIntervalCollection`) containing its public API. ([#15774](https://github.com/microsoft/FluidFramework/pull/15774)) [8c6e76ab75](https://github.com/microsoft/FluidFramework/commits/8c6e76ab753d4ec0cc43bdd6ed04db905391ef2e)
|
|
805
|
+
Several types transitively referenced by `IntervalCollection` implementation details have also been deprecated:
|
|
806
|
+
`CompressedSerializedInterval`, `IntervalCollectionIterator`, and `ISerializedIntervalCollectionV2`.
|
|
807
|
+
- New feature: Revertibles for SharedString and Interval provide undo-redo functionality. This includes all direct interval edits as well as string edits that indirectly affect intervals, wrapping merge-tree revertibles. ([#15778](https://github.com/microsoft/FluidFramework/pull/15778)) [6433cb2937](https://github.com/microsoft/FluidFramework/commits/6433cb2937d9a6bc39ac93b0eca2c073e6d5be52)
|
|
808
|
+
- Experimental feature: An initial implementation of "interval stickiness". This experimental feature can only be used by ([#15423](https://github.com/microsoft/FluidFramework/pull/15423)) [8ba75c508f](https://github.com/microsoft/FluidFramework/commits/8ba75c508ff2370f3de0c9f63390f90a12d9bca2)
|
|
809
|
+
enabling the feature flag "intervalStickinessEnabled".
|
|
810
|
+
- New feature: `IntervalCollection`s now have an `attachIndex` and `detachIndex` API for interval querying. ([#15683](https://github.com/microsoft/FluidFramework/pull/15683)) [f5db26a122](https://github.com/microsoft/FluidFramework/commits/f5db26a122735cf12dc0477b37d9297f7f3ae602)
|
|
796
811
|
|
|
797
812
|
## 2.0.0-internal.4.1.0
|
|
798
813
|
|
|
799
814
|
### Minor Changes
|
|
800
815
|
|
|
801
|
-
-
|
|
816
|
+
- IntervalConflictResolver deprecation ([#15089](https://github.com/microsoft/FluidFramework/pull-requests/15089)) [38345841a7](https://github.com/microsoft/FluidFramework/commits/38345841a75d68e94748823c3da5078a2fc57449)
|
|
802
817
|
|
|
803
|
-
|
|
804
|
-
|
|
805
|
-
|
|
806
|
-
|
|
818
|
+
In `SharedString`, interval conflict resolvers have been unused since [this
|
|
819
|
+
change](https://github.com/microsoft/FluidFramework/pull/6407), which added support for multiple intervals at the same
|
|
820
|
+
position. As such, any existing usages can be removed. Related APIs have been deprecated and will be removed in an
|
|
821
|
+
upcoming release.
|