@fluidframework/sequence 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 +506 -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 +19 -22
- 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,9 @@
|
|
|
1
1
|
# @fluidframework/sequence
|
|
2
2
|
|
|
3
|
+
## 2.31.0
|
|
4
|
+
|
|
5
|
+
Dependency updates only.
|
|
6
|
+
|
|
3
7
|
## 2.30.0
|
|
4
8
|
|
|
5
9
|
Dependency updates only.
|
|
@@ -16,57 +20,57 @@ Dependency updates only.
|
|
|
16
20
|
|
|
17
21
|
### Minor Changes
|
|
18
22
|
|
|
19
|
-
-
|
|
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)
|
|
20
24
|
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
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.
|
|
24
28
|
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
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.
|
|
28
32
|
|
|
29
33
|
## 2.20.0
|
|
30
34
|
|
|
31
35
|
### Minor Changes
|
|
32
36
|
|
|
33
|
-
-
|
|
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)
|
|
34
38
|
|
|
35
|
-
|
|
36
|
-
|
|
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)
|
|
37
41
|
|
|
38
|
-
|
|
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`.
|
|
39
43
|
|
|
40
|
-
|
|
44
|
+
For example, checking if a segment is not removed would change as follows:
|
|
41
45
|
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
+
```diff
|
|
47
|
+
- if(segment.removedSeq === undefined){
|
|
48
|
+
+ if(!segmentIsRemoved(segment)){
|
|
49
|
+
```
|
|
46
50
|
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
51
|
+
The following properties are removed from `ISegment` and its implementations:
|
|
52
|
+
|
|
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
|
|
70
74
|
|
|
71
75
|
## 2.13.0
|
|
72
76
|
|
|
@@ -76,42 +80,42 @@ Dependency updates only.
|
|
|
76
80
|
|
|
77
81
|
### Minor Changes
|
|
78
82
|
|
|
79
|
-
-
|
|
83
|
+
- Merge-Tree and SharedString ISegment Deprecations ([#23323](https://github.com/microsoft/FluidFramework/pull/23323)) [e8762e37cd](https://github.com/microsoft/FluidFramework/commit/e8762e37cd5edbad36b78b5a40d62a730522e18f)
|
|
80
84
|
|
|
81
|
-
|
|
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.
|
|
82
86
|
|
|
83
|
-
|
|
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`.
|
|
84
88
|
|
|
85
|
-
|
|
89
|
+
For example, checking if a segment is not removed would change as follows:
|
|
86
90
|
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
+
```diff
|
|
92
|
+
- if(segment.removedSeq === undefined){
|
|
93
|
+
+ if(!segmentIsRemoved(segment)){
|
|
94
|
+
```
|
|
91
95
|
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
96
|
+
The following properties are deprecated on ISegment and its implementations:
|
|
97
|
+
|
|
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
|
|
115
119
|
|
|
116
120
|
## 2.11.0
|
|
117
121
|
|
|
@@ -121,80 +125,80 @@ Dependency updates only.
|
|
|
121
125
|
|
|
122
126
|
### Minor Changes
|
|
123
127
|
|
|
124
|
-
-
|
|
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)
|
|
125
129
|
|
|
126
|
-
|
|
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.
|
|
127
131
|
|
|
128
|
-
|
|
132
|
+
Removed types:
|
|
129
133
|
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
134
|
+
- IMergeTreeTextHelper
|
|
135
|
+
- MergeNode
|
|
136
|
+
- ObliterateInfo
|
|
137
|
+
- PropertiesManager
|
|
138
|
+
- PropertiesRollback
|
|
139
|
+
- SegmentGroup
|
|
140
|
+
- SegmentGroupCollection
|
|
137
141
|
|
|
138
|
-
|
|
142
|
+
In addition to removing the above types, they are no longer exposed through the following interfaces and their implementations: `ISegment`, `ReferencePosition`, and `ISerializableInterval`.
|
|
139
143
|
|
|
140
|
-
|
|
144
|
+
Removed functions:
|
|
141
145
|
|
|
142
|
-
|
|
143
|
-
|
|
146
|
+
- addProperties
|
|
147
|
+
- ack
|
|
144
148
|
|
|
145
|
-
|
|
149
|
+
Removed properties:
|
|
146
150
|
|
|
147
|
-
|
|
148
|
-
|
|
151
|
+
- propertyManager
|
|
152
|
+
- segmentGroups
|
|
149
153
|
|
|
150
|
-
|
|
151
|
-
|
|
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)
|
|
152
156
|
|
|
153
|
-
-
|
|
157
|
+
- SharedString DDS annotateAdjustRange ([#22751](https://github.com/microsoft/FluidFramework/pull/22751)) [d54b9dde14](https://github.com/microsoft/FluidFramework/commit/d54b9dde14e9e0e5eb7999db8ebf6da98fdfb526)
|
|
154
158
|
|
|
155
|
-
|
|
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.
|
|
156
160
|
|
|
157
|
-
|
|
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.
|
|
158
162
|
|
|
159
|
-
|
|
163
|
+
### Key Features and Use Cases:
|
|
160
164
|
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
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.
|
|
164
168
|
|
|
165
|
-
|
|
169
|
+
### Configuration and Compatibility Requirements:
|
|
166
170
|
|
|
167
|
-
|
|
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.
|
|
168
172
|
|
|
169
|
-
|
|
173
|
+
### Usage Example:
|
|
170
174
|
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
175
|
+
```typescript
|
|
176
|
+
sharedString.annotateAdjustRange(start, end, {
|
|
177
|
+
key: { value: 5, min: 0, max: 10 },
|
|
178
|
+
});
|
|
179
|
+
```
|
|
176
180
|
|
|
177
|
-
-
|
|
181
|
+
- MergeTree `Client` Legacy API Removed ([#22697](https://github.com/microsoft/FluidFramework/pull/22697)) [2aa0b5e794](https://github.com/microsoft/FluidFramework/commit/2aa0b5e7941efe52386782595f96ff847c786fc3)
|
|
178
182
|
|
|
179
|
-
|
|
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.
|
|
180
184
|
|
|
181
|
-
|
|
185
|
+
The removed types were not meant to be used directly, and direct usage was not supported:
|
|
182
186
|
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
187
|
+
- AttributionPolicy
|
|
188
|
+
- IClientEvents
|
|
189
|
+
- IMergeTreeAttributionOptions
|
|
190
|
+
- SharedSegmentSequence
|
|
191
|
+
- SharedStringClass
|
|
188
192
|
|
|
189
|
-
|
|
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:
|
|
190
194
|
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
+
- SequenceInterval
|
|
196
|
+
- SequenceEvent
|
|
197
|
+
- SequenceDeltaEvent
|
|
198
|
+
- SequenceMaintenanceEvent
|
|
195
199
|
|
|
196
|
-
|
|
197
|
-
|
|
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)
|
|
198
202
|
|
|
199
203
|
## 2.5.0
|
|
200
204
|
|
|
@@ -204,24 +208,24 @@ Dependency updates only.
|
|
|
204
208
|
|
|
205
209
|
### Minor Changes
|
|
206
210
|
|
|
207
|
-
-
|
|
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)
|
|
208
212
|
|
|
209
|
-
|
|
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.
|
|
210
214
|
|
|
211
|
-
|
|
215
|
+
Most of these types are not meant to be used directly, and direct use is not supported:
|
|
212
216
|
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
217
|
+
- AttributionPolicy
|
|
218
|
+
- IClientEvents
|
|
219
|
+
- IMergeTreeAttributionOptions
|
|
220
|
+
- SharedSegmentSequence
|
|
221
|
+
- SharedStringClass
|
|
218
222
|
|
|
219
|
-
|
|
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:
|
|
220
224
|
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
+
- SequenceInterval
|
|
226
|
+
- SequenceEvent
|
|
227
|
+
- SequenceDeltaEvent
|
|
228
|
+
- SequenceMaintenanceEvent
|
|
225
229
|
|
|
226
230
|
## 2.3.0
|
|
227
231
|
|
|
@@ -231,14 +235,14 @@ Dependency updates only.
|
|
|
231
235
|
|
|
232
236
|
### Minor Changes
|
|
233
237
|
|
|
234
|
-
-
|
|
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)
|
|
235
239
|
|
|
236
|
-
|
|
237
|
-
|
|
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:
|
|
238
242
|
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
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.
|
|
242
246
|
|
|
243
247
|
## 2.1.0
|
|
244
248
|
|
|
@@ -248,286 +252,287 @@ Dependency updates only.
|
|
|
248
252
|
|
|
249
253
|
### Minor Changes
|
|
250
254
|
|
|
251
|
-
-
|
|
255
|
+
- Update to TypeScript 5.4 ([#21214](https://github.com/microsoft/FluidFramework/pull/21214)) [0e6256c722](https://github.com/microsoft/FluidFramework/commit/0e6256c722d8bf024f4325bf02547daeeb18bfa6)
|
|
252
256
|
|
|
253
|
-
|
|
257
|
+
Update package implementations to use TypeScript 5.4.5.
|
|
254
258
|
|
|
255
|
-
-
|
|
259
|
+
- sequence: Stop ISharedString extending SharedObject ([#21067](https://github.com/microsoft/FluidFramework/pull/21067)) [47465f4b12](https://github.com/microsoft/FluidFramework/commit/47465f4b12056810112df30a6dad89282afc7a2d)
|
|
256
260
|
|
|
257
|
-
|
|
261
|
+
ISharedString no longer extends SharedSegmentSequence and instead extends the new ISharedSegmentSequence, which may be missing some APIs.
|
|
258
262
|
|
|
259
|
-
|
|
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.
|
|
260
264
|
|
|
261
265
|
## 2.0.0-rc.4.0.0
|
|
262
266
|
|
|
263
267
|
### Minor Changes
|
|
264
268
|
|
|
265
|
-
-
|
|
269
|
+
- SharedString now uses ISharedObjectKind and does not export the factory [96872186d0](https://github.com/microsoft/FluidFramework/commit/96872186d0d0f245c1fece7d19b3743e501679b6)
|
|
266
270
|
|
|
267
|
-
|
|
268
|
-
|
|
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`.
|
|
269
273
|
|
|
270
|
-
-
|
|
274
|
+
- Deprecated members of IFluidHandle are split off into new IFluidHandleInternal interface [96872186d0](https://github.com/microsoft/FluidFramework/commit/96872186d0d0f245c1fece7d19b3743e501679b6)
|
|
271
275
|
|
|
272
|
-
|
|
273
|
-
|
|
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`.
|
|
274
278
|
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
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.
|
|
278
282
|
|
|
279
283
|
## 2.0.0-rc.3.0.0
|
|
280
284
|
|
|
281
285
|
### Major Changes
|
|
282
286
|
|
|
283
|
-
-
|
|
287
|
+
- Packages now use package.json "exports" and require modern module resolution [97d68aa06b](https://github.com/microsoft/FluidFramework/commit/97d68aa06bd5c022ecb026655814aea222a062ae)
|
|
284
288
|
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
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.
|
|
288
292
|
|
|
289
|
-
|
|
293
|
+
This means that using Fluid Framework packages require the following TypeScript settings in tsconfig.json:
|
|
290
294
|
|
|
291
|
-
|
|
292
|
-
|
|
295
|
+
- `"moduleResolution": "Node16"` with `"module": "Node16"`
|
|
296
|
+
- `"moduleResolution": "Bundler"` with `"module": "ESNext"`
|
|
293
297
|
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
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.
|
|
298
302
|
|
|
299
|
-
|
|
300
|
-
|
|
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.**
|
|
301
305
|
|
|
302
306
|
## 2.0.0-rc.2.0.0
|
|
303
307
|
|
|
304
308
|
### Minor Changes
|
|
305
309
|
|
|
306
|
-
-
|
|
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)
|
|
307
311
|
|
|
308
|
-
|
|
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.
|
|
309
313
|
|
|
310
314
|
## 2.0.0-rc.1.0.0
|
|
311
315
|
|
|
312
316
|
### Minor Changes
|
|
313
317
|
|
|
314
|
-
-
|
|
318
|
+
- Updated server dependencies ([#19122](https://github.com/microsoft/FluidFramework/issues/19122)) [25366b4229](https://github.com/microsoft/FluidFramework/commits/25366b422918cb43685c5f328b50450749592902)
|
|
315
319
|
|
|
316
|
-
|
|
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)
|
|
317
321
|
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
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
|
|
338
342
|
|
|
339
|
-
-
|
|
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)
|
|
340
344
|
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
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.
|
|
344
348
|
|
|
345
|
-
-
|
|
349
|
+
- Updated @fluidframework/protocol-definitions ([#19122](https://github.com/microsoft/FluidFramework/issues/19122)) [25366b4229](https://github.com/microsoft/FluidFramework/commits/25366b422918cb43685c5f328b50450749592902)
|
|
346
350
|
|
|
347
|
-
|
|
348
|
-
|
|
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)
|
|
349
353
|
|
|
350
|
-
-
|
|
354
|
+
- sequence: Remove the findTile API ([#18908](https://github.com/microsoft/FluidFramework/issues/18908)) [29b093e55c](https://github.com/microsoft/FluidFramework/commits/29b093e55cb2a7e98c9445b735783f463acfb3bb)
|
|
351
355
|
|
|
352
|
-
|
|
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.
|
|
353
357
|
|
|
354
|
-
-
|
|
358
|
+
- sequence: Unify the change and changeProperties methods ([#18981](https://github.com/microsoft/FluidFramework/issues/18981)) [31ce11010a](https://github.com/microsoft/FluidFramework/commits/31ce11010a9bd2be95e805544d84df9e21b6c9a7)
|
|
355
359
|
|
|
356
|
-
|
|
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.
|
|
357
361
|
|
|
358
|
-
|
|
362
|
+
The old functionality and signatures were deprecated in the internal.7.4.0 minor release.
|
|
359
363
|
|
|
360
|
-
-
|
|
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)
|
|
361
365
|
|
|
362
|
-
|
|
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.
|
|
363
367
|
|
|
364
368
|
## 2.0.0-internal.8.0.0
|
|
365
369
|
|
|
366
370
|
### Major Changes
|
|
367
371
|
|
|
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
|
-
|
|
470
|
-
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
|
|
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.
|
|
474
478
|
|
|
475
479
|
## 2.0.0-internal.7.4.0
|
|
476
480
|
|
|
477
481
|
### Minor Changes
|
|
478
482
|
|
|
479
|
-
-
|
|
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)
|
|
480
484
|
|
|
481
|
-
|
|
482
|
-
|
|
483
|
-
|
|
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.
|
|
484
488
|
|
|
485
|
-
|
|
486
|
-
|
|
487
|
-
|
|
488
|
-
|
|
489
|
-
|
|
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`.
|
|
490
494
|
|
|
491
|
-
|
|
495
|
+
The new usage of the change method is as follows:
|
|
492
496
|
|
|
493
|
-
|
|
497
|
+
Change interval endpoints: `change(id, { endpoints: { start: 1, end: 4 } });`
|
|
494
498
|
|
|
495
|
-
|
|
499
|
+
Change interval properties: `change(id { props: { a: 1 } });`
|
|
496
500
|
|
|
497
|
-
|
|
501
|
+
Change interval endpoints and properties: `change(id, { endpoints: { start: 1, end: 4 }, props: { a: 1 } });`
|
|
498
502
|
|
|
499
|
-
-
|
|
503
|
+
- sequence: Deprecated findOverlappingIntervals API ([#18036](https://github.com/microsoft/FluidFramework/issues/18036)) [52b864ea42](https://github.com/microsoft/FluidFramework/commits/52b864ea42759403771f2cbcb282b0ba19ce42f6)
|
|
500
504
|
|
|
501
|
-
|
|
502
|
-
|
|
503
|
-
|
|
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:
|
|
504
508
|
|
|
505
|
-
|
|
506
|
-
|
|
507
|
-
|
|
508
|
-
|
|
509
|
-
|
|
509
|
+
```typescript
|
|
510
|
+
const overlappingIntervalsIndex =
|
|
511
|
+
createOverlappingIntervalsIndex(sharedString);
|
|
512
|
+
collection.attachIndex(overlappingIntervalsIndex);
|
|
513
|
+
const result = overlappingIntervalsIndex.findOverlappingIntervals(start, end);
|
|
514
|
+
```
|
|
510
515
|
|
|
511
|
-
-
|
|
516
|
+
- sequence: Deprecated previousInterval and nextInterval APIs ([#18060](https://github.com/microsoft/FluidFramework/issues/18060)) [05fb45d26f](https://github.com/microsoft/FluidFramework/commits/05fb45d26f3065297e219a4bce5763e25bdcffc9)
|
|
512
517
|
|
|
513
|
-
|
|
514
|
-
|
|
515
|
-
|
|
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:
|
|
516
521
|
|
|
517
|
-
|
|
518
|
-
|
|
519
|
-
|
|
522
|
+
```typescript
|
|
523
|
+
const endpointIndex = createEndpointIndex(sharedString);
|
|
524
|
+
collection.attachIndex(endpointIndex);
|
|
520
525
|
|
|
521
|
-
|
|
522
|
-
|
|
523
|
-
|
|
526
|
+
const result1 = endpointIndex.previousInterval(pos);
|
|
527
|
+
const result2 = endpointIndex.nextInterval(pos);
|
|
528
|
+
```
|
|
524
529
|
|
|
525
|
-
-
|
|
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)
|
|
526
531
|
|
|
527
|
-
|
|
528
|
-
|
|
529
|
-
|
|
530
|
-
|
|
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.
|
|
531
536
|
|
|
532
537
|
## 2.0.0-internal.7.3.0
|
|
533
538
|
|
|
@@ -537,100 +542,100 @@ Dependency updates only.
|
|
|
537
542
|
|
|
538
543
|
### Minor Changes
|
|
539
544
|
|
|
540
|
-
-
|
|
545
|
+
- sequence: SharedString.findTile is now deprecated ([#17832](https://github.com/microsoft/FluidFramework/issues/17832)) [428234a2fb](https://github.com/microsoft/FluidFramework/commits/428234a2fb8c7a7c0bcdc9370a6632cd007c8a07)
|
|
541
546
|
|
|
542
|
-
|
|
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.
|
|
543
548
|
|
|
544
549
|
## 2.0.0-internal.7.1.0
|
|
545
550
|
|
|
546
551
|
### Minor Changes
|
|
547
552
|
|
|
548
|
-
-
|
|
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)
|
|
549
554
|
|
|
550
|
-
|
|
551
|
-
|
|
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 }})`
|
|
552
557
|
|
|
553
|
-
|
|
554
|
-
|
|
555
|
-
|
|
556
|
-
|
|
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`.
|
|
557
562
|
|
|
558
|
-
|
|
563
|
+
Examples:
|
|
559
564
|
|
|
560
|
-
|
|
561
|
-
|
|
565
|
+
- Change interval endpoints: `change(intervalId, { start: 3, end: 4 })`
|
|
566
|
+
- Change interval properties: `change(intervalId, { props: { a: c } })`
|
|
562
567
|
|
|
563
|
-
-
|
|
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)
|
|
564
569
|
|
|
565
|
-
|
|
566
|
-
|
|
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.
|
|
567
572
|
|
|
568
|
-
|
|
569
|
-
|
|
570
|
-
|
|
571
|
-
|
|
572
|
-
|
|
573
|
-
|
|
573
|
+
- IntervalType.Nest
|
|
574
|
+
- internedSpaces
|
|
575
|
+
- RangeStackMap
|
|
576
|
+
- refGetRangeLabels
|
|
577
|
+
- refHasRangeLabel
|
|
578
|
+
- refHasRangeLabels
|
|
574
579
|
|
|
575
580
|
## 2.0.0-internal.7.0.0
|
|
576
581
|
|
|
577
582
|
### Major Changes
|
|
578
583
|
|
|
579
|
-
-
|
|
584
|
+
- sequence: New API for specifying spatial positioning of intervals [871b3493dd](https://github.com/microsoft/FluidFramework/commits/871b3493dd0d7ea3a89be64998ceb6cb9021a04e)
|
|
580
585
|
|
|
581
|
-
|
|
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.
|
|
582
587
|
|
|
583
|
-
-
|
|
588
|
+
- sequence: IIntervalCollection.change must specify both endpoints [871b3493dd](https://github.com/microsoft/FluidFramework/commits/871b3493dd0d7ea3a89be64998ceb6cb9021a04e)
|
|
584
589
|
|
|
585
|
-
|
|
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.
|
|
586
591
|
|
|
587
|
-
-
|
|
592
|
+
- Dependencies on @fluidframework/protocol-definitions package updated to 3.0.0 [871b3493dd](https://github.com/microsoft/FluidFramework/commits/871b3493dd0d7ea3a89be64998ceb6cb9021a04e)
|
|
588
593
|
|
|
589
|
-
|
|
594
|
+
This included the following changes from the protocol-definitions release:
|
|
590
595
|
|
|
591
|
-
|
|
592
|
-
|
|
593
|
-
|
|
594
|
-
|
|
595
|
-
|
|
596
|
-
|
|
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.
|
|
597
602
|
|
|
598
|
-
-
|
|
603
|
+
- Server upgrade: dependencies on Fluid server packages updated to 2.0.1 [871b3493dd](https://github.com/microsoft/FluidFramework/commits/871b3493dd0d7ea3a89be64998ceb6cb9021a04e)
|
|
599
604
|
|
|
600
|
-
|
|
605
|
+
Dependencies on the following Fluid server package have been updated to version 2.0.1:
|
|
601
606
|
|
|
602
|
-
|
|
603
|
-
|
|
604
|
-
|
|
605
|
-
|
|
606
|
-
|
|
607
|
-
|
|
608
|
-
|
|
609
|
-
|
|
610
|
-
|
|
611
|
-
|
|
612
|
-
|
|
613
|
-
|
|
614
|
-
|
|
615
|
-
|
|
616
|
-
|
|
617
|
-
|
|
618
|
-
|
|
619
|
-
|
|
620
|
-
|
|
621
|
-
|
|
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
|
|
622
627
|
|
|
623
|
-
-
|
|
628
|
+
- Minimum TypeScript version now 5.1.6 [871b3493dd](https://github.com/microsoft/FluidFramework/commits/871b3493dd0d7ea3a89be64998ceb6cb9021a04e)
|
|
624
629
|
|
|
625
|
-
|
|
630
|
+
The minimum supported TypeScript version for Fluid 2.0 clients is now 5.1.6.
|
|
626
631
|
|
|
627
|
-
-
|
|
632
|
+
- sequence: Remove `compareStarts` and `compareEnds` from `IIntervalHelpers` [871b3493dd](https://github.com/microsoft/FluidFramework/commits/871b3493dd0d7ea3a89be64998ceb6cb9021a04e)
|
|
628
633
|
|
|
629
|
-
|
|
634
|
+
These methods are redudant with the functions `IInterval.compareStart` and `IInterval.compareEnd` respectively.
|
|
630
635
|
|
|
631
|
-
-
|
|
636
|
+
- sequence: Remove the mergeTreeUseNewLengthCalculations flag [871b3493dd](https://github.com/microsoft/FluidFramework/commits/871b3493dd0d7ea3a89be64998ceb6cb9021a04e)
|
|
632
637
|
|
|
633
|
-
|
|
638
|
+
The `mergeTreeUseNewLengthCalculations` flag has been removed, because the feature was enabled by default in 2.0.0-internal.6.0.0.
|
|
634
639
|
|
|
635
640
|
## 2.0.0-internal.6.4.0
|
|
636
641
|
|
|
@@ -640,53 +645,53 @@ Dependency updates only.
|
|
|
640
645
|
|
|
641
646
|
### Minor Changes
|
|
642
647
|
|
|
643
|
-
-
|
|
648
|
+
- deprecate compareStarts and compareEnds on IIntervalHelpers ([#17127](https://github.com/microsoft/FluidFramework/issues/17127)) [a830eca757](https://github.com/microsoft/FluidFramework/commits/a830eca7571cfb230abe5b9443ba5c5fc44671e0)
|
|
644
649
|
|
|
645
|
-
|
|
650
|
+
these functions will be removed in a future version. use the methods IInterval.compareStart and IInterval.compareEnd respectively instead
|
|
646
651
|
|
|
647
652
|
## 2.0.0-internal.6.2.0
|
|
648
653
|
|
|
649
654
|
### Minor Changes
|
|
650
655
|
|
|
651
|
-
-
|
|
656
|
+
- Deprecate getStackContext and associated NestBegin/End ([#16877](https://github.com/microsoft/FluidFramework/issues/16877)) [8e743fe1dd](https://github.com/microsoft/FluidFramework/commits/8e743fe1dde9adb3a1240971987d3abd51ab2fbe)
|
|
652
657
|
|
|
653
|
-
|
|
654
|
-
|
|
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.
|
|
655
660
|
|
|
656
|
-
-
|
|
661
|
+
- Remove use of @fluidframework/common-definitions ([#16638](https://github.com/microsoft/FluidFramework/issues/16638)) [a8c81509c9](https://github.com/microsoft/FluidFramework/commits/a8c81509c9bf09cfb2092ebcf7265205f9eb6dbf)
|
|
657
662
|
|
|
658
|
-
|
|
659
|
-
|
|
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:
|
|
660
665
|
|
|
661
|
-
|
|
662
|
-
|
|
663
|
-
|
|
664
|
-
|
|
665
|
-
|
|
666
|
-
|
|
667
|
-
|
|
668
|
-
|
|
669
|
-
|
|
670
|
-
|
|
671
|
-
|
|
672
|
-
|
|
673
|
-
|
|
674
|
-
|
|
675
|
-
|
|
676
|
-
|
|
677
|
-
|
|
678
|
-
|
|
679
|
-
|
|
680
|
-
|
|
681
|
-
|
|
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
|
|
682
687
|
|
|
683
|
-
-
|
|
688
|
+
- Deprecate SharedSequence, SubSequence, and IJSONRunSegment ([#16829](https://github.com/microsoft/FluidFramework/issues/16829)) [0cf2b6d909](https://github.com/microsoft/FluidFramework/commits/0cf2b6d9098c7ef4234b66c5d7d169192db40d15)
|
|
684
689
|
|
|
685
|
-
|
|
690
|
+
The types SharedSequence, SubSequence, and IJSONRunSegment are being deprecated and moved.
|
|
686
691
|
|
|
687
|
-
|
|
692
|
+
They are now, and will continue to be exposed from the @fluid-experimental/sequence-deprecated package.
|
|
688
693
|
|
|
689
|
-
|
|
694
|
+
New usages of these types should not be added, but they may be necessary for migration.
|
|
690
695
|
|
|
691
696
|
## 2.0.0-internal.6.1.0
|
|
692
697
|
|
|
@@ -696,59 +701,65 @@ Dependency updates only.
|
|
|
696
701
|
|
|
697
702
|
### Major Changes
|
|
698
703
|
|
|
699
|
-
-
|
|
704
|
+
- IntervalConflictResolver removed [8abce8cdb4](https://github.com/microsoft/FluidFramework/commits/8abce8cdb4e2832fb6405fb44e393bef03d5648a)
|
|
700
705
|
|
|
701
|
-
|
|
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.
|
|
702
707
|
|
|
703
|
-
-
|
|
708
|
+
- Remove ISegment.parent [8abce8cdb4](https://github.com/microsoft/FluidFramework/commits/8abce8cdb4e2832fb6405fb44e393bef03d5648a)
|
|
704
709
|
|
|
705
|
-
|
|
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.
|
|
706
711
|
|
|
707
|
-
|
|
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.
|
|
708
713
|
|
|
709
|
-
|
|
714
|
+
Please change those checks to use the following `"parent" in segment && segment.parent !== undefined`
|
|
710
715
|
|
|
711
|
-
-
|
|
716
|
+
- Upgraded typescript transpilation target to ES2020 [8abce8cdb4](https://github.com/microsoft/FluidFramework/commits/8abce8cdb4e2832fb6405fb44e393bef03d5648a)
|
|
712
717
|
|
|
713
|
-
|
|
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.
|
|
714
719
|
|
|
715
720
|
## 2.0.0-internal.5.4.0
|
|
716
721
|
|
|
717
722
|
### Minor Changes
|
|
718
723
|
|
|
719
|
-
-
|
|
724
|
+
- Some interval-related APIs are deprecated ([#16573](https://github.com/microsoft/FluidFramework/issues/16573)) [82de148126](https://github.com/microsoft/FluidFramework/commits/82de14812617e4d305bdb621737a0d94a5392d25)
|
|
720
725
|
|
|
721
|
-
|
|
726
|
+
The following APIs are now deprecated from `IntervalCollection`:
|
|
722
727
|
|
|
723
|
-
|
|
724
|
-
|
|
725
|
-
|
|
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:
|
|
726
731
|
|
|
727
|
-
|
|
728
|
-
|
|
729
|
-
|
|
730
|
-
|
|
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
|
+
);
|
|
731
742
|
|
|
732
|
-
|
|
733
|
-
|
|
734
|
-
|
|
743
|
+
const result2 = [];
|
|
744
|
+
overlappingIntervalsIndex.gatherIterationResults(result2, true);
|
|
745
|
+
```
|
|
735
746
|
|
|
736
|
-
|
|
737
|
-
|
|
738
|
-
|
|
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.
|
|
739
750
|
|
|
740
|
-
|
|
751
|
+
Equivalent functionality to these four methods is provided by `IOverlappingIntervalIndex.gatherIterationResults`.
|
|
741
752
|
|
|
742
|
-
|
|
743
|
-
|
|
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:
|
|
744
755
|
|
|
745
|
-
|
|
746
|
-
|
|
747
|
-
|
|
756
|
+
```typescript
|
|
757
|
+
const endpointIndex = createEndpointIndex(client, helpers);
|
|
758
|
+
collection.attachIndex(endpointIndex);
|
|
748
759
|
|
|
749
|
-
|
|
750
|
-
|
|
751
|
-
|
|
760
|
+
const result1 = endpointIndex.previousInterval(pos);
|
|
761
|
+
const result2 = endpointIndex.nextInterval(pos);
|
|
762
|
+
```
|
|
752
763
|
|
|
753
764
|
## 2.0.0-internal.5.3.0
|
|
754
765
|
|
|
@@ -758,53 +769,53 @@ Dependency updates only.
|
|
|
758
769
|
|
|
759
770
|
### Minor Changes
|
|
760
771
|
|
|
761
|
-
-
|
|
772
|
+
- Deprecate ISegment.parent ([#16097](https://github.com/microsoft/FluidFramework/issues/16097)) [9486bec0ea](https://github.com/microsoft/FluidFramework/commits/9486bec0ea2f9f1dd3e40fc3b4c42af6b6a44697)
|
|
762
773
|
|
|
763
|
-
|
|
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.
|
|
764
775
|
|
|
765
|
-
|
|
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.
|
|
766
777
|
|
|
767
|
-
|
|
778
|
+
Please change those checks to use the following `"parent" in segment && segment.parent !== undefined`
|
|
768
779
|
|
|
769
|
-
-
|
|
780
|
+
- slide parameter in changeInterval event ([#16117](https://github.com/microsoft/FluidFramework/issues/16117)) [46f74fe568](https://github.com/microsoft/FluidFramework/commits/46f74fe5684e44df436ed28ea41c98ca146b03cc)
|
|
770
781
|
|
|
771
|
-
|
|
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.
|
|
772
783
|
|
|
773
784
|
## 2.0.0-internal.5.1.0
|
|
774
785
|
|
|
775
786
|
### Minor Changes
|
|
776
787
|
|
|
777
|
-
-
|
|
788
|
+
- New APIs for interval querying by range ([#15837](https://github.com/microsoft/FluidFramework/issues/15837)) [2a4242e1b5](https://github.com/microsoft/FluidFramework/commits/2a4242e1b5f15442b13ae413124ec76315a4cc52)
|
|
778
789
|
|
|
779
|
-
|
|
790
|
+
SharedString now supports querying intervals whose start/end-points fall in a specified range.
|
|
780
791
|
|
|
781
792
|
## 2.0.0-internal.5.0.0
|
|
782
793
|
|
|
783
794
|
### Major Changes
|
|
784
795
|
|
|
785
|
-
-
|
|
786
|
-
|
|
787
|
-
|
|
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.
|
|
788
799
|
|
|
789
800
|
## 2.0.0-internal.4.4.0
|
|
790
801
|
|
|
791
802
|
### Minor Changes
|
|
792
803
|
|
|
793
|
-
-
|
|
794
|
-
|
|
795
|
-
|
|
796
|
-
-
|
|
797
|
-
-
|
|
798
|
-
|
|
799
|
-
-
|
|
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)
|
|
800
811
|
|
|
801
812
|
## 2.0.0-internal.4.1.0
|
|
802
813
|
|
|
803
814
|
### Minor Changes
|
|
804
815
|
|
|
805
|
-
-
|
|
816
|
+
- IntervalConflictResolver deprecation ([#15089](https://github.com/microsoft/FluidFramework/pull-requests/15089)) [38345841a7](https://github.com/microsoft/FluidFramework/commits/38345841a75d68e94748823c3da5078a2fc57449)
|
|
806
817
|
|
|
807
|
-
|
|
808
|
-
|
|
809
|
-
|
|
810
|
-
|
|
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.
|