@fluidframework/sequence 2.91.0 → 2.93.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 +8 -0
- package/README.md +1 -1
- package/api-report/sequence.legacy.beta.api.md +2 -2
- package/dist/IntervalCollectionValues.d.ts +3 -3
- package/dist/IntervalCollectionValues.d.ts.map +1 -1
- package/dist/IntervalCollectionValues.js.map +1 -1
- package/dist/index.d.ts +10 -10
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/intervalCollection.d.ts +6 -5
- package/dist/intervalCollection.d.ts.map +1 -1
- package/dist/intervalCollection.js +10 -9
- package/dist/intervalCollection.js.map +1 -1
- package/dist/intervalCollectionMap.d.ts +4 -5
- package/dist/intervalCollectionMap.d.ts.map +1 -1
- package/dist/intervalCollectionMap.js +3 -3
- package/dist/intervalCollectionMap.js.map +1 -1
- package/dist/intervalCollectionMapInterfaces.d.ts +3 -3
- package/dist/intervalCollectionMapInterfaces.d.ts.map +1 -1
- package/dist/intervalCollectionMapInterfaces.js.map +1 -1
- package/dist/intervalIndex/endpointInRangeIndex.d.ts +2 -2
- package/dist/intervalIndex/endpointInRangeIndex.d.ts.map +1 -1
- package/dist/intervalIndex/endpointInRangeIndex.js.map +1 -1
- package/dist/intervalIndex/endpointIndex.d.ts +2 -2
- package/dist/intervalIndex/endpointIndex.d.ts.map +1 -1
- package/dist/intervalIndex/endpointIndex.js.map +1 -1
- package/dist/intervalIndex/index.d.ts +7 -7
- package/dist/intervalIndex/index.d.ts.map +1 -1
- package/dist/intervalIndex/index.js.map +1 -1
- package/dist/intervalIndex/overlappingIntervalsIndex.d.ts +3 -3
- package/dist/intervalIndex/overlappingIntervalsIndex.d.ts.map +1 -1
- package/dist/intervalIndex/overlappingIntervalsIndex.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 +2 -2
- package/dist/intervalIndex/startpointInRangeIndex.d.ts.map +1 -1
- package/dist/intervalIndex/startpointInRangeIndex.js.map +1 -1
- package/dist/intervalTree.d.ts +3 -2
- package/dist/intervalTree.d.ts.map +1 -1
- package/dist/intervalTree.js.map +1 -1
- package/dist/intervals/index.d.ts +2 -2
- package/dist/intervals/index.d.ts.map +1 -1
- package/dist/intervals/index.js.map +1 -1
- package/dist/intervals/intervalUtils.d.ts +2 -1
- package/dist/intervals/intervalUtils.d.ts.map +1 -1
- package/dist/intervals/intervalUtils.js +0 -1
- package/dist/intervals/intervalUtils.js.map +1 -1
- package/dist/intervals/sequenceInterval.d.ts +5 -3
- package/dist/intervals/sequenceInterval.d.ts.map +1 -1
- package/dist/intervals/sequenceInterval.js.map +1 -1
- package/dist/legacy.d.ts +1 -1
- package/dist/packageVersion.d.ts +1 -1
- package/dist/packageVersion.js +1 -1
- package/dist/packageVersion.js.map +1 -1
- package/dist/public.d.ts +1 -1
- package/dist/revertibles.d.ts +5 -4
- package/dist/revertibles.d.ts.map +1 -1
- package/dist/revertibles.js +26 -20
- package/dist/revertibles.js.map +1 -1
- package/dist/sequence.d.ts +8 -6
- package/dist/sequence.d.ts.map +1 -1
- package/dist/sequence.js +9 -10
- package/dist/sequence.js.map +1 -1
- package/dist/sequenceDeltaEvent.d.ts +2 -1
- package/dist/sequenceDeltaEvent.d.ts.map +1 -1
- package/dist/sequenceDeltaEvent.js +2 -2
- package/dist/sequenceDeltaEvent.js.map +1 -1
- package/dist/sequenceFactory.d.ts +3 -2
- package/dist/sequenceFactory.d.ts.map +1 -1
- package/dist/sequenceFactory.js +3 -2
- package/dist/sequenceFactory.js.map +1 -1
- package/dist/sharedSequence.d.ts +3 -2
- package/dist/sharedSequence.d.ts.map +1 -1
- package/dist/sharedSequence.js.map +1 -1
- package/dist/sharedString.d.ts +3 -2
- package/dist/sharedString.d.ts.map +1 -1
- package/dist/sharedString.js.map +1 -1
- package/eslint.config.mts +16 -4
- package/internal.d.ts +1 -1
- package/legacy.d.ts +1 -1
- package/lib/IntervalCollectionValues.d.ts +3 -3
- package/lib/IntervalCollectionValues.d.ts.map +1 -1
- package/lib/IntervalCollectionValues.js +1 -1
- package/lib/IntervalCollectionValues.js.map +1 -1
- package/lib/index.d.ts +10 -10
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js.map +1 -1
- package/lib/intervalCollection.d.ts +6 -5
- package/lib/intervalCollection.d.ts.map +1 -1
- package/lib/intervalCollection.js +10 -9
- package/lib/intervalCollection.js.map +1 -1
- package/lib/intervalCollectionMap.d.ts +4 -5
- package/lib/intervalCollectionMap.d.ts.map +1 -1
- package/lib/intervalCollectionMap.js +3 -3
- package/lib/intervalCollectionMap.js.map +1 -1
- package/lib/intervalCollectionMapInterfaces.d.ts +3 -3
- package/lib/intervalCollectionMapInterfaces.d.ts.map +1 -1
- package/lib/intervalCollectionMapInterfaces.js.map +1 -1
- package/lib/intervalIndex/endpointInRangeIndex.d.ts +2 -2
- package/lib/intervalIndex/endpointInRangeIndex.d.ts.map +1 -1
- package/lib/intervalIndex/endpointInRangeIndex.js +1 -1
- package/lib/intervalIndex/endpointInRangeIndex.js.map +1 -1
- package/lib/intervalIndex/endpointIndex.d.ts +2 -2
- package/lib/intervalIndex/endpointIndex.d.ts.map +1 -1
- package/lib/intervalIndex/endpointIndex.js.map +1 -1
- package/lib/intervalIndex/index.d.ts +7 -7
- package/lib/intervalIndex/index.d.ts.map +1 -1
- package/lib/intervalIndex/index.js.map +1 -1
- package/lib/intervalIndex/overlappingIntervalsIndex.d.ts +3 -3
- package/lib/intervalIndex/overlappingIntervalsIndex.d.ts.map +1 -1
- package/lib/intervalIndex/overlappingIntervalsIndex.js +1 -1
- package/lib/intervalIndex/overlappingIntervalsIndex.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 +2 -2
- package/lib/intervalIndex/startpointInRangeIndex.d.ts.map +1 -1
- package/lib/intervalIndex/startpointInRangeIndex.js +1 -1
- package/lib/intervalIndex/startpointInRangeIndex.js.map +1 -1
- package/lib/intervalTree.d.ts +3 -2
- package/lib/intervalTree.d.ts.map +1 -1
- package/lib/intervalTree.js +1 -1
- package/lib/intervalTree.js.map +1 -1
- package/lib/intervals/index.d.ts +2 -2
- package/lib/intervals/index.d.ts.map +1 -1
- package/lib/intervals/index.js.map +1 -1
- package/lib/intervals/intervalUtils.d.ts +2 -1
- package/lib/intervals/intervalUtils.d.ts.map +1 -1
- package/lib/intervals/intervalUtils.js +0 -1
- package/lib/intervals/intervalUtils.js.map +1 -1
- package/lib/intervals/sequenceInterval.d.ts +5 -3
- package/lib/intervals/sequenceInterval.d.ts.map +1 -1
- package/lib/intervals/sequenceInterval.js.map +1 -1
- package/lib/legacy.d.ts +1 -1
- package/lib/packageVersion.d.ts +1 -1
- package/lib/packageVersion.js +1 -1
- package/lib/packageVersion.js.map +1 -1
- package/lib/public.d.ts +1 -1
- package/lib/revertibles.d.ts +5 -4
- package/lib/revertibles.d.ts.map +1 -1
- package/lib/revertibles.js +26 -20
- package/lib/revertibles.js.map +1 -1
- package/lib/sequence.d.ts +8 -6
- package/lib/sequence.d.ts.map +1 -1
- package/lib/sequence.js +11 -12
- package/lib/sequence.js.map +1 -1
- package/lib/sequenceDeltaEvent.d.ts +2 -1
- package/lib/sequenceDeltaEvent.d.ts.map +1 -1
- package/lib/sequenceDeltaEvent.js +2 -2
- package/lib/sequenceDeltaEvent.js.map +1 -1
- package/lib/sequenceFactory.d.ts +3 -2
- package/lib/sequenceFactory.d.ts.map +1 -1
- package/lib/sequenceFactory.js +3 -2
- package/lib/sequenceFactory.js.map +1 -1
- package/lib/sharedSequence.d.ts +3 -2
- package/lib/sharedSequence.d.ts.map +1 -1
- package/lib/sharedSequence.js +1 -1
- package/lib/sharedSequence.js.map +1 -1
- package/lib/sharedString.d.ts +3 -2
- package/lib/sharedString.d.ts.map +1 -1
- package/lib/sharedString.js +1 -1
- package/lib/sharedString.js.map +1 -1
- package/lib/tsdoc-metadata.json +1 -1
- package/package.json +27 -32
- package/src/IntervalCollectionValues.ts +4 -6
- package/src/index.ts +25 -25
- package/src/intervalCollection.ts +25 -20
- package/src/intervalCollectionMap.ts +8 -8
- package/src/intervalCollectionMapInterfaces.ts +4 -4
- package/src/intervalIndex/endpointInRangeIndex.ts +7 -8
- package/src/intervalIndex/endpointIndex.ts +3 -2
- package/src/intervalIndex/index.ts +7 -7
- package/src/intervalIndex/overlappingIntervalsIndex.ts +8 -9
- package/src/intervalIndex/sequenceIntervalIndexes.ts +2 -2
- package/src/intervalIndex/startpointInRangeIndex.ts +7 -8
- package/src/intervalTree.ts +3 -3
- package/src/intervals/index.ts +6 -6
- package/src/intervals/intervalUtils.ts +2 -1
- package/src/intervals/sequenceInterval.ts +7 -6
- package/src/packageVersion.ts +1 -1
- package/src/revertibles.ts +35 -26
- package/src/sequence.ts +25 -26
- package/src/sequenceDeltaEvent.ts +6 -4
- package/src/sequenceFactory.ts +6 -4
- package/src/sharedSequence.ts +3 -7
- package/src/sharedString.ts +3 -5
package/src/index.ts
CHANGED
|
@@ -15,26 +15,26 @@
|
|
|
15
15
|
*
|
|
16
16
|
* @packageDocumentation
|
|
17
17
|
*/
|
|
18
|
-
export { SequenceOptions } from "./intervalCollectionMapInterfaces.js";
|
|
18
|
+
export type { SequenceOptions } from "./intervalCollectionMapInterfaces.js";
|
|
19
19
|
export {
|
|
20
|
-
IInterval,
|
|
20
|
+
type IInterval,
|
|
21
21
|
IntervalOpType,
|
|
22
22
|
IntervalType,
|
|
23
|
-
ISerializedInterval,
|
|
24
|
-
SequenceInterval,
|
|
25
|
-
SerializedIntervalDelta,
|
|
23
|
+
type ISerializedInterval,
|
|
24
|
+
type SequenceInterval,
|
|
25
|
+
type SerializedIntervalDelta,
|
|
26
26
|
IntervalStickiness,
|
|
27
27
|
} from "./intervals/index.js";
|
|
28
|
-
export {
|
|
28
|
+
export type {
|
|
29
29
|
DeserializeCallback,
|
|
30
30
|
ISequenceIntervalCollection,
|
|
31
31
|
ISequenceIntervalCollectionEvents,
|
|
32
32
|
} from "./intervalCollection.js";
|
|
33
33
|
export {
|
|
34
|
-
SequenceIntervalIndex,
|
|
35
|
-
SequenceIntervalIndexes,
|
|
36
|
-
ISequenceOverlappingIntervalsIndex,
|
|
37
|
-
IEndpointIndex,
|
|
34
|
+
type SequenceIntervalIndex,
|
|
35
|
+
type SequenceIntervalIndexes,
|
|
36
|
+
type ISequenceOverlappingIntervalsIndex,
|
|
37
|
+
type IEndpointIndex,
|
|
38
38
|
createOverlappingIntervalsIndex,
|
|
39
39
|
createEndpointIndex,
|
|
40
40
|
} from "./intervalIndex/index.js";
|
|
@@ -45,16 +45,16 @@ export {
|
|
|
45
45
|
appendIntervalPropertyChangedToRevertibles,
|
|
46
46
|
appendSharedStringDeltaToRevertibles,
|
|
47
47
|
discardSharedStringRevertibles,
|
|
48
|
-
IntervalRevertible,
|
|
48
|
+
type IntervalRevertible,
|
|
49
49
|
revertSharedStringRevertibles,
|
|
50
|
-
SharedStringRevertible,
|
|
50
|
+
type SharedStringRevertible,
|
|
51
51
|
} from "./revertibles.js";
|
|
52
52
|
export {
|
|
53
|
-
ISharedSegmentSequenceEvents,
|
|
53
|
+
type ISharedSegmentSequenceEvents,
|
|
54
54
|
SharedSegmentSequence,
|
|
55
|
-
ISharedSegmentSequence,
|
|
55
|
+
type ISharedSegmentSequence,
|
|
56
56
|
} from "./sequence.js";
|
|
57
|
-
export {
|
|
57
|
+
export type {
|
|
58
58
|
ISequenceDeltaRange,
|
|
59
59
|
SequenceDeltaEvent,
|
|
60
60
|
SequenceEvent,
|
|
@@ -63,28 +63,28 @@ export {
|
|
|
63
63
|
export { SharedString } from "./sequenceFactory.js";
|
|
64
64
|
export {
|
|
65
65
|
getTextAndMarkers,
|
|
66
|
-
ISharedString,
|
|
67
|
-
SharedStringSegment,
|
|
66
|
+
type ISharedString,
|
|
67
|
+
type SharedStringSegment,
|
|
68
68
|
SharedStringClass,
|
|
69
69
|
} from "./sharedString.js";
|
|
70
|
-
export { IJSONRunSegment, SharedSequence, SubSequence } from "./sharedSequence.js";
|
|
70
|
+
export { type IJSONRunSegment, SharedSequence, SubSequence } from "./sharedSequence.js";
|
|
71
71
|
|
|
72
72
|
export {
|
|
73
|
-
ISegment,
|
|
73
|
+
type ISegment,
|
|
74
74
|
Marker,
|
|
75
75
|
BaseSegment,
|
|
76
|
-
ReferencePosition,
|
|
76
|
+
type ReferencePosition,
|
|
77
77
|
ReferenceType,
|
|
78
|
-
PropertySet,
|
|
79
|
-
MapLike,
|
|
78
|
+
type PropertySet,
|
|
79
|
+
type MapLike,
|
|
80
80
|
TextSegment,
|
|
81
81
|
MergeTreeDeltaType,
|
|
82
82
|
reservedMarkerIdKey,
|
|
83
83
|
reservedTileLabelsKey,
|
|
84
84
|
reservedRangeLabelsKey,
|
|
85
85
|
TrackingGroup,
|
|
86
|
-
LocalReferencePosition,
|
|
86
|
+
type LocalReferencePosition,
|
|
87
87
|
Side,
|
|
88
|
-
InteriorSequencePlace,
|
|
89
|
-
SequencePlace,
|
|
88
|
+
type InteriorSequencePlace,
|
|
89
|
+
type SequencePlace,
|
|
90
90
|
} from "@fluidframework/merge-tree/internal";
|
|
@@ -6,25 +6,27 @@
|
|
|
6
6
|
/* eslint-disable no-bitwise */
|
|
7
7
|
|
|
8
8
|
import { TypedEventEmitter } from "@fluid-internal/client-utils";
|
|
9
|
-
import { IEvent } from "@fluidframework/core-interfaces";
|
|
9
|
+
import type { IEvent } from "@fluidframework/core-interfaces";
|
|
10
10
|
import {
|
|
11
11
|
assert,
|
|
12
12
|
DoublyLinkedList,
|
|
13
13
|
unreachableCase,
|
|
14
14
|
type ListNode,
|
|
15
15
|
} from "@fluidframework/core-utils/internal";
|
|
16
|
-
import { ISequencedDocumentMessage } from "@fluidframework/driver-definitions/internal";
|
|
17
|
-
import {
|
|
16
|
+
import type { ISequencedDocumentMessage } from "@fluidframework/driver-definitions/internal";
|
|
17
|
+
import type {
|
|
18
18
|
Client,
|
|
19
19
|
ISegment,
|
|
20
20
|
LocalReferencePosition,
|
|
21
21
|
PropertySet,
|
|
22
|
+
SequencePlace,
|
|
23
|
+
} from "@fluidframework/merge-tree/internal";
|
|
24
|
+
import {
|
|
22
25
|
ReferenceType,
|
|
23
26
|
getSlideToSegoff,
|
|
24
27
|
refTypeIncludesFlag,
|
|
25
28
|
reservedRangeLabelsKey,
|
|
26
29
|
Side,
|
|
27
|
-
SequencePlace,
|
|
28
30
|
endpointPosAndSide,
|
|
29
31
|
type ISegmentInternal,
|
|
30
32
|
createLocalReconnectingPerspective,
|
|
@@ -33,12 +35,12 @@ import {
|
|
|
33
35
|
import { LoggingError, UsageError } from "@fluidframework/telemetry-utils/internal";
|
|
34
36
|
import { v4 as uuid } from "uuid";
|
|
35
37
|
|
|
36
|
-
import {
|
|
38
|
+
import type {
|
|
39
|
+
IIntervalCollectionTypeOperationValue,
|
|
40
|
+
IntervalAddLocalMetadata,
|
|
41
|
+
IntervalChangeLocalMetadata,
|
|
37
42
|
IntervalMessageLocalMetadata,
|
|
38
43
|
SequenceOptions,
|
|
39
|
-
type IIntervalCollectionTypeOperationValue,
|
|
40
|
-
type IntervalAddLocalMetadata,
|
|
41
|
-
type IntervalChangeLocalMetadata,
|
|
42
44
|
} from "./intervalCollectionMapInterfaces.js";
|
|
43
45
|
import {
|
|
44
46
|
createIdIntervalIndex,
|
|
@@ -49,14 +51,16 @@ import {
|
|
|
49
51
|
type ISequenceOverlappingIntervalsIndex,
|
|
50
52
|
type SequenceIntervalIndex,
|
|
51
53
|
} from "./intervalIndex/index.js";
|
|
52
|
-
import {
|
|
54
|
+
import type {
|
|
53
55
|
CompressedSerializedInterval,
|
|
54
56
|
ISerializedInterval,
|
|
55
|
-
IntervalStickiness,
|
|
56
|
-
IntervalType,
|
|
57
57
|
SequenceInterval,
|
|
58
58
|
SequenceIntervalClass,
|
|
59
59
|
SerializedIntervalDelta,
|
|
60
|
+
} from "./intervals/index.js";
|
|
61
|
+
import {
|
|
62
|
+
IntervalStickiness,
|
|
63
|
+
IntervalType,
|
|
60
64
|
createPositionReferenceFromSegoff,
|
|
61
65
|
createSequenceInterval,
|
|
62
66
|
getSerializedProperties,
|
|
@@ -72,8 +76,8 @@ export interface ISerializedIntervalCollectionV2 {
|
|
|
72
76
|
}
|
|
73
77
|
|
|
74
78
|
function sidesFromStickiness(stickiness: IntervalStickiness) {
|
|
75
|
-
const startSide = (stickiness & IntervalStickiness.START)
|
|
76
|
-
const endSide = (stickiness & IntervalStickiness.END)
|
|
79
|
+
const startSide = (stickiness & IntervalStickiness.START) === 0 ? Side.Before : Side.After;
|
|
80
|
+
const endSide = (stickiness & IntervalStickiness.END) === 0 ? Side.After : Side.Before;
|
|
77
81
|
|
|
78
82
|
return { startSide, endSide };
|
|
79
83
|
}
|
|
@@ -853,8 +857,9 @@ export class IntervalCollection
|
|
|
853
857
|
}
|
|
854
858
|
break;
|
|
855
859
|
}
|
|
856
|
-
default:
|
|
860
|
+
default: {
|
|
857
861
|
unreachableCase(type);
|
|
862
|
+
}
|
|
858
863
|
}
|
|
859
864
|
}
|
|
860
865
|
|
|
@@ -903,8 +908,9 @@ export class IntervalCollection
|
|
|
903
908
|
);
|
|
904
909
|
break;
|
|
905
910
|
}
|
|
906
|
-
default:
|
|
911
|
+
default: {
|
|
907
912
|
unreachableCase(opName);
|
|
913
|
+
}
|
|
908
914
|
}
|
|
909
915
|
const pending = clearEmptyPendingEntry(this.pending, id);
|
|
910
916
|
|
|
@@ -962,8 +968,9 @@ export class IntervalCollection
|
|
|
962
968
|
this.removeIntervalById(id);
|
|
963
969
|
break;
|
|
964
970
|
}
|
|
965
|
-
default:
|
|
971
|
+
default: {
|
|
966
972
|
throw new Error("unknown ops should not be stashed");
|
|
973
|
+
}
|
|
967
974
|
}
|
|
968
975
|
}
|
|
969
976
|
|
|
@@ -1670,10 +1677,8 @@ export class IntervalCollection
|
|
|
1670
1677
|
op,
|
|
1671
1678
|
);
|
|
1672
1679
|
|
|
1673
|
-
if (interval) {
|
|
1674
|
-
|
|
1675
|
-
this.onDeserialize(interval);
|
|
1676
|
-
}
|
|
1680
|
+
if (interval && this.onDeserialize) {
|
|
1681
|
+
this.onDeserialize(interval);
|
|
1677
1682
|
}
|
|
1678
1683
|
|
|
1679
1684
|
this.emit("addInterval", interval, local, op);
|
|
@@ -4,11 +4,11 @@
|
|
|
4
4
|
*/
|
|
5
5
|
|
|
6
6
|
import { TypedEventEmitter } from "@fluid-internal/client-utils";
|
|
7
|
-
import { IFluidHandle } from "@fluidframework/core-interfaces";
|
|
8
|
-
import type { IEvent, IEventProvider } from "@fluidframework/core-interfaces";
|
|
7
|
+
import type { IEvent, IEventProvider, IFluidHandle } from "@fluidframework/core-interfaces";
|
|
9
8
|
import { assert } from "@fluidframework/core-utils/internal";
|
|
10
|
-
import { ISequencedDocumentMessage } from "@fluidframework/driver-definitions/internal";
|
|
11
|
-
import {
|
|
9
|
+
import type { ISequencedDocumentMessage } from "@fluidframework/driver-definitions/internal";
|
|
10
|
+
import type { IFluidSerializer } from "@fluidframework/shared-object-base/internal";
|
|
11
|
+
import { ValueType } from "@fluidframework/shared-object-base/internal";
|
|
12
12
|
|
|
13
13
|
import { makeSerializable } from "./IntervalCollectionValues.js";
|
|
14
14
|
import {
|
|
@@ -16,7 +16,7 @@ import {
|
|
|
16
16
|
type ISerializedIntervalCollectionV1,
|
|
17
17
|
type ISerializedIntervalCollectionV2,
|
|
18
18
|
} from "./intervalCollection.js";
|
|
19
|
-
import {
|
|
19
|
+
import type {
|
|
20
20
|
IIntervalCollectionTypeOperationValue,
|
|
21
21
|
ISerializableIntervalCollection,
|
|
22
22
|
SequenceOptions,
|
|
@@ -135,14 +135,14 @@ export class IntervalCollectionMap {
|
|
|
135
135
|
|
|
136
136
|
public serialize(serializer: IFluidSerializer): string {
|
|
137
137
|
const serializableMapData: IMapDataObjectSerializable = {};
|
|
138
|
-
this.data.
|
|
138
|
+
for (const [key, localValue] of this.data.entries()) {
|
|
139
139
|
serializableMapData[key] = makeSerializable(
|
|
140
140
|
localValue,
|
|
141
141
|
serializer,
|
|
142
142
|
this.handle,
|
|
143
143
|
this.options?.intervalSerializationFormat ?? "2",
|
|
144
144
|
);
|
|
145
|
-
}
|
|
145
|
+
}
|
|
146
146
|
return JSON.stringify(serializableMapData);
|
|
147
147
|
}
|
|
148
148
|
|
|
@@ -168,7 +168,7 @@ export class IntervalCollectionMap {
|
|
|
168
168
|
// "intervalCollections/". This would burden users trying to iterate the collection and
|
|
169
169
|
// access its value, as well as those trying to match a create message to its underlying
|
|
170
170
|
// collection. See https://github.com/microsoft/FluidFramework/issues/10557 for more context.
|
|
171
|
-
const normalizedKey = key.startsWith("intervalCollections/") ? key.
|
|
171
|
+
const normalizedKey = key.startsWith("intervalCollections/") ? key.slice(20) : key;
|
|
172
172
|
|
|
173
173
|
assert(
|
|
174
174
|
serializable.type !== ValueType[ValueType.Plain] &&
|
|
@@ -4,19 +4,19 @@
|
|
|
4
4
|
*/
|
|
5
5
|
|
|
6
6
|
import type { ListNode } from "@fluidframework/core-utils/internal";
|
|
7
|
-
import { ISequencedDocumentMessage } from "@fluidframework/driver-definitions/internal";
|
|
8
|
-
import { IMergeTreeOptions } from "@fluidframework/merge-tree/internal";
|
|
7
|
+
import type { ISequencedDocumentMessage } from "@fluidframework/driver-definitions/internal";
|
|
8
|
+
import type { IMergeTreeOptions } from "@fluidframework/merge-tree/internal";
|
|
9
9
|
|
|
10
10
|
import type {
|
|
11
11
|
IntervalCollection,
|
|
12
12
|
ISerializedIntervalCollectionV1,
|
|
13
13
|
ISerializedIntervalCollectionV2,
|
|
14
14
|
} from "./intervalCollection.js";
|
|
15
|
-
import {
|
|
15
|
+
import type {
|
|
16
16
|
ISerializedInterval,
|
|
17
17
|
IntervalDeltaOpType,
|
|
18
|
+
SequenceIntervalClass,
|
|
18
19
|
SerializedIntervalDelta,
|
|
19
|
-
type SequenceIntervalClass,
|
|
20
20
|
} from "./intervals/index.js";
|
|
21
21
|
|
|
22
22
|
export interface IntervalAddLocalMetadata {
|
|
@@ -3,18 +3,17 @@
|
|
|
3
3
|
* Licensed under the MIT License.
|
|
4
4
|
*/
|
|
5
5
|
|
|
6
|
-
import { PropertyAction
|
|
6
|
+
import type { PropertyAction } from "@fluidframework/merge-tree/internal";
|
|
7
|
+
import { RedBlackTree } from "@fluidframework/merge-tree/internal";
|
|
7
8
|
|
|
8
|
-
import { SequenceInterval
|
|
9
|
+
import type { SequenceInterval } from "../intervals/index.js";
|
|
10
|
+
import { createTransientIntervalFromSequence } from "../intervals/index.js";
|
|
9
11
|
import type { ISharedSegmentSequence } from "../sequence.js";
|
|
10
|
-
import { ISharedString } from "../sharedString.js";
|
|
12
|
+
import type { ISharedString } from "../sharedString.js";
|
|
11
13
|
|
|
12
14
|
import type { SequenceIntervalIndex } from "./intervalIndex.js";
|
|
13
|
-
import {
|
|
14
|
-
|
|
15
|
-
compareOverrideables,
|
|
16
|
-
forceCompare,
|
|
17
|
-
} from "./intervalIndexUtils.js";
|
|
15
|
+
import type { HasComparisonOverride } from "./intervalIndexUtils.js";
|
|
16
|
+
import { compareOverrideables, forceCompare } from "./intervalIndexUtils.js";
|
|
18
17
|
|
|
19
18
|
/**
|
|
20
19
|
* Collection of intervals.
|
|
@@ -5,9 +5,10 @@
|
|
|
5
5
|
|
|
6
6
|
import { RedBlackTree } from "@fluidframework/merge-tree/internal";
|
|
7
7
|
|
|
8
|
-
import {
|
|
8
|
+
import type { SequenceInterval } from "../intervals/index.js";
|
|
9
|
+
import { createTransientIntervalFromSequence } from "../intervals/index.js";
|
|
9
10
|
import type { ISharedSegmentSequence } from "../sequence.js";
|
|
10
|
-
import { ISharedString } from "../sharedString.js";
|
|
11
|
+
import type { ISharedString } from "../sharedString.js";
|
|
11
12
|
|
|
12
13
|
import type { SequenceIntervalIndex } from "./intervalIndex.js";
|
|
13
14
|
|
|
@@ -3,22 +3,22 @@
|
|
|
3
3
|
* Licensed under the MIT License.
|
|
4
4
|
*/
|
|
5
5
|
|
|
6
|
-
export { SequenceIntervalIndex } from "./intervalIndex.js";
|
|
7
|
-
export { IIdIntervalIndex, createIdIntervalIndex } from "./idIntervalIndex.js";
|
|
8
|
-
export { IEndpointIndex, createEndpointIndex, EndpointIndex } from "./endpointIndex.js";
|
|
6
|
+
export type { SequenceIntervalIndex } from "./intervalIndex.js";
|
|
7
|
+
export { type IIdIntervalIndex, createIdIntervalIndex } from "./idIntervalIndex.js";
|
|
8
|
+
export { type IEndpointIndex, createEndpointIndex, EndpointIndex } from "./endpointIndex.js";
|
|
9
9
|
export {
|
|
10
|
-
IEndpointInRangeIndex,
|
|
10
|
+
type IEndpointInRangeIndex,
|
|
11
11
|
createEndpointInRangeIndex,
|
|
12
12
|
EndpointInRangeIndex,
|
|
13
13
|
} from "./endpointInRangeIndex.js";
|
|
14
14
|
export {
|
|
15
|
-
IStartpointInRangeIndex,
|
|
15
|
+
type IStartpointInRangeIndex,
|
|
16
16
|
createStartpointInRangeIndex,
|
|
17
17
|
StartpointInRangeIndex,
|
|
18
18
|
} from "./startpointInRangeIndex.js";
|
|
19
|
-
export { SequenceIntervalIndexes } from "./sequenceIntervalIndexes.js";
|
|
19
|
+
export type { SequenceIntervalIndexes } from "./sequenceIntervalIndexes.js";
|
|
20
20
|
export {
|
|
21
21
|
createOverlappingIntervalsIndex,
|
|
22
22
|
OverlappingIntervalsIndex,
|
|
23
|
-
ISequenceOverlappingIntervalsIndex,
|
|
23
|
+
type ISequenceOverlappingIntervalsIndex,
|
|
24
24
|
} from "./overlappingIntervalsIndex.js";
|
|
@@ -3,16 +3,15 @@
|
|
|
3
3
|
* Licensed under the MIT License.
|
|
4
4
|
*/
|
|
5
5
|
|
|
6
|
-
import { SequencePlace
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
import {
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
} from "../intervals/index.js";
|
|
6
|
+
import type { SequencePlace } from "@fluidframework/merge-tree/internal";
|
|
7
|
+
import { endpointPosAndSide } from "@fluidframework/merge-tree/internal";
|
|
8
|
+
|
|
9
|
+
import type { IntervalNode } from "../intervalTree.js";
|
|
10
|
+
import { IntervalTree } from "../intervalTree.js";
|
|
11
|
+
import type { SequenceInterval, BaseSequenceInterval } from "../intervals/index.js";
|
|
12
|
+
import { createTransientIntervalFromSequence } from "../intervals/index.js";
|
|
14
13
|
import type { ISharedSegmentSequence } from "../sequence.js";
|
|
15
|
-
import { ISharedString } from "../sharedString.js";
|
|
14
|
+
import type { ISharedString } from "../sharedString.js";
|
|
16
15
|
|
|
17
16
|
import type { SequenceIntervalIndex } from "./intervalIndex.js";
|
|
18
17
|
|
|
@@ -3,9 +3,9 @@
|
|
|
3
3
|
* Licensed under the MIT License.
|
|
4
4
|
*/
|
|
5
5
|
|
|
6
|
-
import { ISegment } from "@fluidframework/merge-tree/internal";
|
|
6
|
+
import type { ISegment } from "@fluidframework/merge-tree/internal";
|
|
7
7
|
|
|
8
|
-
import { SequenceInterval } from "../intervals/index.js";
|
|
8
|
+
import type { SequenceInterval } from "../intervals/index.js";
|
|
9
9
|
|
|
10
10
|
import type { ISequenceOverlappingIntervalsIndex } from "./overlappingIntervalsIndex.js";
|
|
11
11
|
|
|
@@ -3,18 +3,17 @@
|
|
|
3
3
|
* Licensed under the MIT License.
|
|
4
4
|
*/
|
|
5
5
|
|
|
6
|
-
import { PropertyAction
|
|
6
|
+
import type { PropertyAction } from "@fluidframework/merge-tree/internal";
|
|
7
|
+
import { RedBlackTree } from "@fluidframework/merge-tree/internal";
|
|
7
8
|
|
|
8
|
-
import { SequenceInterval
|
|
9
|
+
import type { SequenceInterval } from "../intervals/index.js";
|
|
10
|
+
import { createTransientIntervalFromSequence } from "../intervals/index.js";
|
|
9
11
|
import type { ISharedSegmentSequence } from "../sequence.js";
|
|
10
|
-
import { ISharedString } from "../sharedString.js";
|
|
12
|
+
import type { ISharedString } from "../sharedString.js";
|
|
11
13
|
|
|
12
14
|
import type { SequenceIntervalIndex } from "./intervalIndex.js";
|
|
13
|
-
import {
|
|
14
|
-
|
|
15
|
-
compareOverrideables,
|
|
16
|
-
forceCompare,
|
|
17
|
-
} from "./intervalIndexUtils.js";
|
|
15
|
+
import type { HasComparisonOverride } from "./intervalIndexUtils.js";
|
|
16
|
+
import { compareOverrideables, forceCompare } from "./intervalIndexUtils.js";
|
|
18
17
|
|
|
19
18
|
/**
|
|
20
19
|
* Collection of intervals.
|
package/src/intervalTree.ts
CHANGED
|
@@ -3,15 +3,15 @@
|
|
|
3
3
|
* Licensed under the MIT License.
|
|
4
4
|
*/
|
|
5
5
|
|
|
6
|
-
import {
|
|
6
|
+
import type {
|
|
7
7
|
IRBAugmentation,
|
|
8
8
|
IRBMatcher,
|
|
9
9
|
RBNode,
|
|
10
10
|
RBNodeActions,
|
|
11
|
-
RedBlackTree,
|
|
12
11
|
} from "@fluidframework/merge-tree/internal";
|
|
12
|
+
import { RedBlackTree } from "@fluidframework/merge-tree/internal";
|
|
13
13
|
|
|
14
|
-
import { ISerializableInterval } from "./intervals/index.js";
|
|
14
|
+
import type { ISerializableInterval } from "./intervals/index.js";
|
|
15
15
|
|
|
16
16
|
export interface AugmentedIntervalNode {
|
|
17
17
|
minmax: ISerializableInterval;
|
package/src/intervals/index.ts
CHANGED
|
@@ -4,20 +4,20 @@
|
|
|
4
4
|
*/
|
|
5
5
|
|
|
6
6
|
export {
|
|
7
|
-
IInterval,
|
|
8
|
-
ISerializedInterval,
|
|
9
|
-
ISerializableInterval,
|
|
7
|
+
type IInterval,
|
|
8
|
+
type ISerializedInterval,
|
|
9
|
+
type ISerializableInterval,
|
|
10
10
|
IntervalOpType,
|
|
11
11
|
IntervalType,
|
|
12
12
|
IntervalDeltaOpType,
|
|
13
13
|
IntervalStickiness,
|
|
14
|
-
SerializedIntervalDelta,
|
|
15
|
-
CompressedSerializedInterval,
|
|
14
|
+
type SerializedIntervalDelta,
|
|
15
|
+
type CompressedSerializedInterval,
|
|
16
16
|
endReferenceSlidingPreference,
|
|
17
17
|
startReferenceSlidingPreference,
|
|
18
18
|
} from "./intervalUtils.js";
|
|
19
19
|
export {
|
|
20
|
-
SequenceInterval,
|
|
20
|
+
type SequenceInterval,
|
|
21
21
|
SequenceIntervalClass,
|
|
22
22
|
BaseSequenceInterval,
|
|
23
23
|
createSequenceInterval,
|
|
@@ -5,7 +5,8 @@
|
|
|
5
5
|
|
|
6
6
|
/* eslint-disable no-bitwise */
|
|
7
7
|
|
|
8
|
-
import { PropertySet
|
|
8
|
+
import type { PropertySet } from "@fluidframework/merge-tree/internal";
|
|
9
|
+
import { SlidingPreference, Side } from "@fluidframework/merge-tree/internal";
|
|
9
10
|
|
|
10
11
|
/**
|
|
11
12
|
* Basic interval abstraction
|
|
@@ -7,13 +7,16 @@
|
|
|
7
7
|
|
|
8
8
|
import type { IDisposable } from "@fluidframework/core-interfaces";
|
|
9
9
|
import { assert } from "@fluidframework/core-utils/internal";
|
|
10
|
-
import { ISequencedDocumentMessage } from "@fluidframework/driver-definitions/internal";
|
|
11
|
-
import {
|
|
10
|
+
import type { ISequencedDocumentMessage } from "@fluidframework/driver-definitions/internal";
|
|
11
|
+
import type {
|
|
12
12
|
Client,
|
|
13
13
|
ISegment,
|
|
14
14
|
LocalReferencePosition,
|
|
15
|
-
PropertiesManager,
|
|
16
15
|
PropertySet,
|
|
16
|
+
SequencePlace,
|
|
17
|
+
} from "@fluidframework/merge-tree/internal";
|
|
18
|
+
import {
|
|
19
|
+
PropertiesManager,
|
|
17
20
|
ReferenceType,
|
|
18
21
|
SlidingPreference,
|
|
19
22
|
compareReferencePositions,
|
|
@@ -24,7 +27,6 @@ import {
|
|
|
24
27
|
minReferencePosition,
|
|
25
28
|
refTypeIncludesFlag,
|
|
26
29
|
reservedRangeLabelsKey,
|
|
27
|
-
SequencePlace,
|
|
28
30
|
Side,
|
|
29
31
|
endpointPosAndSide,
|
|
30
32
|
addProperties,
|
|
@@ -37,9 +39,8 @@ import { v4 as uuid } from "uuid";
|
|
|
37
39
|
|
|
38
40
|
import type { ISharedSegmentSequence } from "../sequence.js";
|
|
39
41
|
|
|
42
|
+
import type { ISerializableInterval, ISerializedInterval } from "./intervalUtils.js";
|
|
40
43
|
import {
|
|
41
|
-
ISerializableInterval,
|
|
42
|
-
ISerializedInterval,
|
|
43
44
|
IntervalStickiness,
|
|
44
45
|
IntervalType,
|
|
45
46
|
computeStickinessFromSide,
|
package/src/packageVersion.ts
CHANGED