@fluidframework/sequence 2.0.0-internal.7.1.1 → 2.0.0-internal.7.2.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 +8 -0
- package/api-extractor.json +1 -16
- package/api-report/sequence.api.md +2 -0
- package/dist/defaultMapInterfaces.d.ts +1 -0
- package/dist/defaultMapInterfaces.d.ts.map +1 -1
- package/dist/defaultMapInterfaces.js.map +1 -1
- package/dist/intervalCollection.d.ts +12 -2
- package/dist/intervalCollection.d.ts.map +1 -1
- package/dist/intervalCollection.js +2 -0
- package/dist/intervalCollection.js.map +1 -1
- package/dist/intervalIndex/endpointInRangeIndex.d.ts +4 -0
- package/dist/intervalIndex/endpointInRangeIndex.d.ts.map +1 -1
- package/dist/intervalIndex/endpointInRangeIndex.js +3 -0
- package/dist/intervalIndex/endpointInRangeIndex.js.map +1 -1
- package/dist/intervalIndex/endpointIndex.d.ts +6 -0
- package/dist/intervalIndex/endpointIndex.d.ts.map +1 -1
- package/dist/intervalIndex/endpointIndex.js +3 -0
- package/dist/intervalIndex/endpointIndex.js.map +1 -1
- package/dist/intervalIndex/idIntervalIndex.d.ts +6 -0
- package/dist/intervalIndex/idIntervalIndex.d.ts.map +1 -1
- package/dist/intervalIndex/idIntervalIndex.js +3 -0
- package/dist/intervalIndex/idIntervalIndex.js.map +1 -1
- package/dist/intervalIndex/intervalIndex.d.ts +1 -0
- package/dist/intervalIndex/intervalIndex.d.ts.map +1 -1
- package/dist/intervalIndex/intervalIndex.js.map +1 -1
- package/dist/intervalIndex/overlappingIntervalsIndex.d.ts +9 -0
- package/dist/intervalIndex/overlappingIntervalsIndex.d.ts.map +1 -1
- package/dist/intervalIndex/overlappingIntervalsIndex.js +6 -0
- package/dist/intervalIndex/overlappingIntervalsIndex.js.map +1 -1
- package/dist/intervalIndex/overlappingSequenceIntervalsIndex.d.ts +3 -0
- package/dist/intervalIndex/overlappingSequenceIntervalsIndex.d.ts.map +1 -1
- package/dist/intervalIndex/overlappingSequenceIntervalsIndex.js +6 -0
- package/dist/intervalIndex/overlappingSequenceIntervalsIndex.js.map +1 -1
- package/dist/intervalIndex/sequenceIntervalIndexes.d.ts +1 -0
- package/dist/intervalIndex/sequenceIntervalIndexes.d.ts.map +1 -1
- package/dist/intervalIndex/sequenceIntervalIndexes.js.map +1 -1
- package/dist/intervalIndex/startpointInRangeIndex.d.ts +4 -0
- package/dist/intervalIndex/startpointInRangeIndex.d.ts.map +1 -1
- package/dist/intervalIndex/startpointInRangeIndex.js +3 -0
- package/dist/intervalIndex/startpointInRangeIndex.js.map +1 -1
- package/dist/intervals/interval.d.ts +1 -0
- package/dist/intervals/interval.d.ts.map +1 -1
- package/dist/intervals/interval.js +1 -0
- package/dist/intervals/interval.js.map +1 -1
- package/dist/intervals/intervalUtils.d.ts +9 -1
- package/dist/intervals/intervalUtils.d.ts.map +1 -1
- package/dist/intervals/intervalUtils.js +4 -1
- package/dist/intervals/intervalUtils.js.map +1 -1
- package/dist/intervals/sequenceInterval.d.ts +2 -0
- package/dist/intervals/sequenceInterval.d.ts.map +1 -1
- package/dist/intervals/sequenceInterval.js +2 -0
- package/dist/intervals/sequenceInterval.js.map +1 -1
- 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 +7 -3
- package/dist/sequence.d.ts.map +1 -1
- package/dist/sequence.js +6 -3
- package/dist/sequence.js.map +1 -1
- package/dist/sequenceDeltaEvent.d.ts +4 -0
- package/dist/sequenceDeltaEvent.d.ts.map +1 -1
- package/dist/sequenceDeltaEvent.js +3 -0
- package/dist/sequenceDeltaEvent.js.map +1 -1
- package/dist/sequenceFactory.d.ts +3 -0
- package/dist/sequenceFactory.d.ts.map +1 -1
- package/dist/sequenceFactory.js +3 -0
- package/dist/sequenceFactory.js.map +1 -1
- package/dist/sharedIntervalCollection.d.ts +5 -0
- package/dist/sharedIntervalCollection.d.ts.map +1 -1
- package/dist/sharedIntervalCollection.js +2 -0
- package/dist/sharedIntervalCollection.js.map +1 -1
- package/dist/sharedSequence.d.ts +6 -3
- package/dist/sharedSequence.d.ts.map +1 -1
- package/dist/sharedSequence.js +4 -2
- package/dist/sharedSequence.js.map +1 -1
- package/dist/sharedString.d.ts +16 -1
- package/dist/sharedString.d.ts.map +1 -1
- package/dist/sharedString.js +14 -1
- package/dist/sharedString.js.map +1 -1
- package/lib/defaultMapInterfaces.d.ts +1 -0
- package/lib/defaultMapInterfaces.d.ts.map +1 -1
- package/lib/defaultMapInterfaces.js.map +1 -1
- package/lib/intervalCollection.d.ts +12 -2
- package/lib/intervalCollection.d.ts.map +1 -1
- package/lib/intervalCollection.js +2 -0
- package/lib/intervalCollection.js.map +1 -1
- package/lib/intervalIndex/endpointInRangeIndex.d.ts +4 -0
- package/lib/intervalIndex/endpointInRangeIndex.d.ts.map +1 -1
- package/lib/intervalIndex/endpointInRangeIndex.js +3 -0
- package/lib/intervalIndex/endpointInRangeIndex.js.map +1 -1
- package/lib/intervalIndex/endpointIndex.d.ts +6 -0
- package/lib/intervalIndex/endpointIndex.d.ts.map +1 -1
- package/lib/intervalIndex/endpointIndex.js +3 -0
- package/lib/intervalIndex/endpointIndex.js.map +1 -1
- package/lib/intervalIndex/idIntervalIndex.d.ts +6 -0
- package/lib/intervalIndex/idIntervalIndex.d.ts.map +1 -1
- package/lib/intervalIndex/idIntervalIndex.js +3 -0
- package/lib/intervalIndex/idIntervalIndex.js.map +1 -1
- package/lib/intervalIndex/intervalIndex.d.ts +1 -0
- package/lib/intervalIndex/intervalIndex.d.ts.map +1 -1
- package/lib/intervalIndex/intervalIndex.js.map +1 -1
- package/lib/intervalIndex/overlappingIntervalsIndex.d.ts +9 -0
- package/lib/intervalIndex/overlappingIntervalsIndex.d.ts.map +1 -1
- package/lib/intervalIndex/overlappingIntervalsIndex.js +6 -0
- package/lib/intervalIndex/overlappingIntervalsIndex.js.map +1 -1
- package/lib/intervalIndex/overlappingSequenceIntervalsIndex.d.ts +3 -0
- package/lib/intervalIndex/overlappingSequenceIntervalsIndex.d.ts.map +1 -1
- package/lib/intervalIndex/overlappingSequenceIntervalsIndex.js +6 -0
- package/lib/intervalIndex/overlappingSequenceIntervalsIndex.js.map +1 -1
- package/lib/intervalIndex/sequenceIntervalIndexes.d.ts +1 -0
- package/lib/intervalIndex/sequenceIntervalIndexes.d.ts.map +1 -1
- package/lib/intervalIndex/sequenceIntervalIndexes.js.map +1 -1
- package/lib/intervalIndex/startpointInRangeIndex.d.ts +4 -0
- package/lib/intervalIndex/startpointInRangeIndex.d.ts.map +1 -1
- package/lib/intervalIndex/startpointInRangeIndex.js +3 -0
- package/lib/intervalIndex/startpointInRangeIndex.js.map +1 -1
- package/lib/intervals/interval.d.ts +1 -0
- package/lib/intervals/interval.d.ts.map +1 -1
- package/lib/intervals/interval.js +1 -0
- package/lib/intervals/interval.js.map +1 -1
- package/lib/intervals/intervalUtils.d.ts +9 -1
- package/lib/intervals/intervalUtils.d.ts.map +1 -1
- package/lib/intervals/intervalUtils.js +4 -1
- package/lib/intervals/intervalUtils.js.map +1 -1
- package/lib/intervals/sequenceInterval.d.ts +2 -0
- package/lib/intervals/sequenceInterval.d.ts.map +1 -1
- package/lib/intervals/sequenceInterval.js +2 -0
- package/lib/intervals/sequenceInterval.js.map +1 -1
- 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 +7 -3
- package/lib/sequence.d.ts.map +1 -1
- package/lib/sequence.js +6 -3
- package/lib/sequence.js.map +1 -1
- package/lib/sequenceDeltaEvent.d.ts +4 -0
- package/lib/sequenceDeltaEvent.d.ts.map +1 -1
- package/lib/sequenceDeltaEvent.js +3 -0
- package/lib/sequenceDeltaEvent.js.map +1 -1
- package/lib/sequenceFactory.d.ts +3 -0
- package/lib/sequenceFactory.d.ts.map +1 -1
- package/lib/sequenceFactory.js +3 -0
- package/lib/sequenceFactory.js.map +1 -1
- package/lib/sharedIntervalCollection.d.ts +5 -0
- package/lib/sharedIntervalCollection.d.ts.map +1 -1
- package/lib/sharedIntervalCollection.js +2 -0
- package/lib/sharedIntervalCollection.js.map +1 -1
- package/lib/sharedSequence.d.ts +6 -3
- package/lib/sharedSequence.d.ts.map +1 -1
- package/lib/sharedSequence.js +4 -2
- package/lib/sharedSequence.js.map +1 -1
- package/lib/sharedString.d.ts +16 -1
- package/lib/sharedString.d.ts.map +1 -1
- package/lib/sharedString.js +14 -1
- package/lib/sharedString.js.map +1 -1
- package/package.json +23 -20
- package/src/defaultMapInterfaces.ts +1 -0
- package/src/intervalCollection.ts +12 -2
- package/src/intervalIndex/endpointInRangeIndex.ts +4 -0
- package/src/intervalIndex/endpointIndex.ts +6 -0
- package/src/intervalIndex/idIntervalIndex.ts +6 -0
- package/src/intervalIndex/intervalIndex.ts +1 -0
- package/src/intervalIndex/overlappingIntervalsIndex.ts +9 -0
- package/src/intervalIndex/overlappingSequenceIntervalsIndex.ts +6 -0
- package/src/intervalIndex/sequenceIntervalIndexes.ts +1 -0
- package/src/intervalIndex/startpointInRangeIndex.ts +4 -1
- package/src/intervals/interval.ts +1 -0
- package/src/intervals/intervalUtils.ts +9 -1
- package/src/intervals/sequenceInterval.ts +2 -0
- package/src/packageVersion.ts +1 -1
- package/src/sequence.ts +7 -3
- package/src/sequenceDeltaEvent.ts +4 -0
- package/src/sequenceFactory.ts +3 -0
- package/src/sharedIntervalCollection.ts +5 -0
- package/src/sharedSequence.ts +6 -3
- package/src/sharedString.ts +23 -1
- package/dist/sequence-alpha.d.ts +0 -1500
- package/dist/sequence-beta.d.ts +0 -1420
- package/dist/sequence-public.d.ts +0 -1420
- package/dist/sequence-untrimmed.d.ts +0 -1672
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@fluidframework/sequence",
|
|
3
|
-
"version": "2.0.0-internal.7.
|
|
3
|
+
"version": "2.0.0-internal.7.2.1",
|
|
4
4
|
"description": "Distributed sequence",
|
|
5
5
|
"homepage": "https://fluidframework.com",
|
|
6
6
|
"repository": {
|
|
@@ -35,36 +35,35 @@
|
|
|
35
35
|
"temp-directory": "nyc/.nyc_output"
|
|
36
36
|
},
|
|
37
37
|
"dependencies": {
|
|
38
|
-
"@fluid-internal/client-utils": ">=2.0.0-internal.7.
|
|
39
|
-
"@fluidframework/core-interfaces": ">=2.0.0-internal.7.
|
|
40
|
-
"@fluidframework/core-utils": ">=2.0.0-internal.7.
|
|
41
|
-
"@fluidframework/datastore-definitions": ">=2.0.0-internal.7.
|
|
42
|
-
"@fluidframework/merge-tree": ">=2.0.0-internal.7.
|
|
38
|
+
"@fluid-internal/client-utils": ">=2.0.0-internal.7.2.1 <2.0.0-internal.7.3.0",
|
|
39
|
+
"@fluidframework/core-interfaces": ">=2.0.0-internal.7.2.1 <2.0.0-internal.7.3.0",
|
|
40
|
+
"@fluidframework/core-utils": ">=2.0.0-internal.7.2.1 <2.0.0-internal.7.3.0",
|
|
41
|
+
"@fluidframework/datastore-definitions": ">=2.0.0-internal.7.2.1 <2.0.0-internal.7.3.0",
|
|
42
|
+
"@fluidframework/merge-tree": ">=2.0.0-internal.7.2.1 <2.0.0-internal.7.3.0",
|
|
43
43
|
"@fluidframework/protocol-definitions": "^3.0.0",
|
|
44
|
-
"@fluidframework/runtime-definitions": ">=2.0.0-internal.7.
|
|
45
|
-
"@fluidframework/runtime-utils": ">=2.0.0-internal.7.
|
|
46
|
-
"@fluidframework/shared-object-base": ">=2.0.0-internal.7.
|
|
47
|
-
"@fluidframework/telemetry-utils": ">=2.0.0-internal.7.
|
|
44
|
+
"@fluidframework/runtime-definitions": ">=2.0.0-internal.7.2.1 <2.0.0-internal.7.3.0",
|
|
45
|
+
"@fluidframework/runtime-utils": ">=2.0.0-internal.7.2.1 <2.0.0-internal.7.3.0",
|
|
46
|
+
"@fluidframework/shared-object-base": ">=2.0.0-internal.7.2.1 <2.0.0-internal.7.3.0",
|
|
47
|
+
"@fluidframework/telemetry-utils": ">=2.0.0-internal.7.2.1 <2.0.0-internal.7.3.0",
|
|
48
48
|
"uuid": "^9.0.0"
|
|
49
49
|
},
|
|
50
50
|
"devDependencies": {
|
|
51
|
-
"@fluid-internal/stochastic-test-utils": ">=2.0.0-internal.7.
|
|
52
|
-
"@fluid-internal/test-dds-utils": ">=2.0.0-internal.7.
|
|
51
|
+
"@fluid-internal/stochastic-test-utils": ">=2.0.0-internal.7.2.1 <2.0.0-internal.7.3.0",
|
|
52
|
+
"@fluid-internal/test-dds-utils": ">=2.0.0-internal.7.2.1 <2.0.0-internal.7.3.0",
|
|
53
53
|
"@fluid-tools/benchmark": "^0.48.0",
|
|
54
|
-
"@fluid-tools/build-cli": "^0.
|
|
55
|
-
"@fluidframework/build-common": "^2.0.
|
|
56
|
-
"@fluidframework/build-tools": "^0.
|
|
54
|
+
"@fluid-tools/build-cli": "^0.26.1",
|
|
55
|
+
"@fluidframework/build-common": "^2.0.3",
|
|
56
|
+
"@fluidframework/build-tools": "^0.26.1",
|
|
57
57
|
"@fluidframework/eslint-config-fluid": "^3.0.0",
|
|
58
|
-
"@fluidframework/mocha-test-setup": ">=2.0.0-internal.7.
|
|
58
|
+
"@fluidframework/mocha-test-setup": ">=2.0.0-internal.7.2.1 <2.0.0-internal.7.3.0",
|
|
59
59
|
"@fluidframework/sequence-previous": "npm:@fluidframework/sequence@2.0.0-internal.7.1.0",
|
|
60
|
-
"@fluidframework/test-runtime-utils": ">=2.0.0-internal.7.
|
|
60
|
+
"@fluidframework/test-runtime-utils": ">=2.0.0-internal.7.2.1 <2.0.0-internal.7.3.0",
|
|
61
61
|
"@microsoft/api-extractor": "^7.37.0",
|
|
62
62
|
"@types/diff": "^3.5.1",
|
|
63
63
|
"@types/mocha": "^9.1.1",
|
|
64
64
|
"@types/node": "^16.18.38",
|
|
65
65
|
"@types/random-js": "^1.0.31",
|
|
66
66
|
"c8": "^7.7.1",
|
|
67
|
-
"copyfiles": "^2.4.1",
|
|
68
67
|
"cross-env": "^7.0.3",
|
|
69
68
|
"diff": "^3.5.0",
|
|
70
69
|
"eslint": "~8.50.0",
|
|
@@ -86,7 +85,11 @@
|
|
|
86
85
|
}
|
|
87
86
|
},
|
|
88
87
|
"typeValidation": {
|
|
89
|
-
"broken": {
|
|
88
|
+
"broken": {
|
|
89
|
+
"ClassDeclaration_SharedString": {
|
|
90
|
+
"forwardCompat": false
|
|
91
|
+
}
|
|
92
|
+
}
|
|
90
93
|
},
|
|
91
94
|
"scripts": {
|
|
92
95
|
"build": "fluid-build . --task build",
|
|
@@ -97,7 +100,7 @@
|
|
|
97
100
|
"build:genver": "gen-version",
|
|
98
101
|
"build:test": "tsc --project ./src/test/tsconfig.json",
|
|
99
102
|
"ci:build:docs": "api-extractor run",
|
|
100
|
-
"clean": "rimraf --glob
|
|
103
|
+
"clean": "rimraf --glob dist lib \"*.tsbuildinfo\" \"*.build.log\" _api-extractor-temp nyc",
|
|
101
104
|
"eslint": "eslint --format stylish src",
|
|
102
105
|
"eslint:fix": "eslint --format stylish src --fix --fix-type problem,suggestion,layout",
|
|
103
106
|
"format": "npm run prettier:fix",
|
|
@@ -88,6 +88,7 @@ import {
|
|
|
88
88
|
* If a SequencePlace is the endpoint of a range (e.g. start/end of an interval or search range),
|
|
89
89
|
* the Side value means it is exclusive if it is nearer to the other position and inclusive if it is farther.
|
|
90
90
|
* E.g. the start of a range with Side.After is exclusive of the character at the position.
|
|
91
|
+
* @public
|
|
91
92
|
*/
|
|
92
93
|
export type SequencePlace = number | "start" | "end" | InteriorSequencePlace;
|
|
93
94
|
|
|
@@ -95,6 +96,7 @@ export type SequencePlace = number | "start" | "end" | InteriorSequencePlace;
|
|
|
95
96
|
* A sequence place that does not refer to the special endpoint segments.
|
|
96
97
|
*
|
|
97
98
|
* See {@link SequencePlace} for additional context.
|
|
99
|
+
* @public
|
|
98
100
|
*/
|
|
99
101
|
export interface InteriorSequencePlace {
|
|
100
102
|
pos: number;
|
|
@@ -105,6 +107,7 @@ export interface InteriorSequencePlace {
|
|
|
105
107
|
* Defines a side relative to a character in a sequence.
|
|
106
108
|
*
|
|
107
109
|
* @remarks See {@link SequencePlace} for additional context on usage.
|
|
110
|
+
* @public
|
|
108
111
|
*/
|
|
109
112
|
export enum Side {
|
|
110
113
|
Before = 0,
|
|
@@ -620,6 +623,9 @@ export function makeOpsMap<T extends ISerializableInterval>(): Map<
|
|
|
620
623
|
]);
|
|
621
624
|
}
|
|
622
625
|
|
|
626
|
+
/**
|
|
627
|
+
* @public
|
|
628
|
+
*/
|
|
623
629
|
export type DeserializeCallback = (properties: PropertySet) => void;
|
|
624
630
|
|
|
625
631
|
class IntervalCollectionIterator<TInterval extends ISerializableInterval>
|
|
@@ -657,6 +663,7 @@ class IntervalCollectionIterator<TInterval extends ISerializableInterval>
|
|
|
657
663
|
|
|
658
664
|
/**
|
|
659
665
|
* Change events emitted by `IntervalCollection`s
|
|
666
|
+
* @public
|
|
660
667
|
*/
|
|
661
668
|
export interface IIntervalCollectionEvent<TInterval extends ISerializableInterval> extends IEvent {
|
|
662
669
|
/**
|
|
@@ -724,6 +731,7 @@ const isSequencePlace = (place: any): place is SequencePlace => {
|
|
|
724
731
|
/**
|
|
725
732
|
* Collection of intervals that supports addition, modification, removal, and efficient spatial querying.
|
|
726
733
|
* Changes to this collection will be incur updates on collaborating clients (i.e. they are not local-only).
|
|
734
|
+
* @public
|
|
727
735
|
*/
|
|
728
736
|
export interface IIntervalCollection<TInterval extends ISerializableInterval>
|
|
729
737
|
extends TypedEventEmitter<IIntervalCollectionEvent<TInterval>> {
|
|
@@ -752,7 +760,7 @@ export interface IIntervalCollection<TInterval extends ISerializableInterval>
|
|
|
752
760
|
getIntervalById(id: string): TInterval | undefined;
|
|
753
761
|
/**
|
|
754
762
|
* Creates a new interval and add it to the collection.
|
|
755
|
-
* @deprecated
|
|
763
|
+
* @deprecated call IntervalCollection.add without specifying an intervalType
|
|
756
764
|
* @param start - interval start position (inclusive)
|
|
757
765
|
* @param end - interval end position (exclusive)
|
|
758
766
|
* @param intervalType - type of the interval. All intervals are SlideOnRemove. Intervals may not be Transient.
|
|
@@ -1204,7 +1212,7 @@ export class IntervalCollection<TInterval extends ISerializableInterval>
|
|
|
1204
1212
|
|
|
1205
1213
|
/**
|
|
1206
1214
|
* {@inheritdoc IIntervalCollection.add}
|
|
1207
|
-
* @deprecated
|
|
1215
|
+
* @deprecated call IntervalCollection.add without specifying an intervalType
|
|
1208
1216
|
*/
|
|
1209
1217
|
public add(
|
|
1210
1218
|
start: SequencePlace,
|
|
@@ -2024,6 +2032,7 @@ function setSlideOnRemove(lref: LocalReferencePosition) {
|
|
|
2024
2032
|
|
|
2025
2033
|
/**
|
|
2026
2034
|
* Information that identifies an interval within a `Sequence`.
|
|
2035
|
+
* @public
|
|
2027
2036
|
*/
|
|
2028
2037
|
export interface IntervalLocator {
|
|
2029
2038
|
/**
|
|
@@ -2041,6 +2050,7 @@ export interface IntervalLocator {
|
|
|
2041
2050
|
* @returns undefined if the reference position is not the endpoint of any interval (e.g. it was created
|
|
2042
2051
|
* on the merge tree directly by app code), otherwise an {@link IntervalLocator} for the interval this
|
|
2043
2052
|
* endpoint is a part of.
|
|
2053
|
+
* @public
|
|
2044
2054
|
*/
|
|
2045
2055
|
export function intervalLocatorFromEndpoint(
|
|
2046
2056
|
potentialEndpoint: LocalReferencePosition,
|
|
@@ -20,6 +20,7 @@ import { HasComparisonOverride, compareOverrideables, forceCompare } from "./int
|
|
|
20
20
|
* Collection of intervals.
|
|
21
21
|
*
|
|
22
22
|
* Provide additional APIs to support efficiently querying a collection of intervals whose endpoints fall within a specified range.
|
|
23
|
+
* @public
|
|
23
24
|
*/
|
|
24
25
|
export interface IEndpointInRangeIndex<TInterval extends ISerializableInterval>
|
|
25
26
|
extends IntervalIndex<TInterval> {
|
|
@@ -104,6 +105,9 @@ export class EndpointInRangeIndex<TInterval extends ISerializableInterval>
|
|
|
104
105
|
}
|
|
105
106
|
}
|
|
106
107
|
|
|
108
|
+
/**
|
|
109
|
+
* @public
|
|
110
|
+
*/
|
|
107
111
|
export function createEndpointInRangeIndex(
|
|
108
112
|
sharedString: SharedString,
|
|
109
113
|
): IEndpointInRangeIndex<SequenceInterval> {
|
|
@@ -15,6 +15,9 @@ import {
|
|
|
15
15
|
import { SharedString } from "../sharedString";
|
|
16
16
|
import { IntervalIndex } from "./intervalIndex";
|
|
17
17
|
|
|
18
|
+
/**
|
|
19
|
+
* @public
|
|
20
|
+
*/
|
|
18
21
|
export interface IEndpointIndex<TInterval extends ISerializableInterval>
|
|
19
22
|
extends IntervalIndex<TInterval> {
|
|
20
23
|
/**
|
|
@@ -79,6 +82,9 @@ export class EndpointIndex<TInterval extends ISerializableInterval>
|
|
|
79
82
|
}
|
|
80
83
|
}
|
|
81
84
|
|
|
85
|
+
/**
|
|
86
|
+
* @public
|
|
87
|
+
*/
|
|
82
88
|
export function createEndpointIndex(sharedString: SharedString): IEndpointIndex<SequenceInterval> {
|
|
83
89
|
const client = (sharedString as unknown as { client: Client }).client;
|
|
84
90
|
return new EndpointIndex<SequenceInterval>(client, sequenceIntervalHelpers);
|
|
@@ -9,6 +9,9 @@ import { IntervalIndex } from "./intervalIndex";
|
|
|
9
9
|
|
|
10
10
|
const reservedIntervalIdKey = "intervalId";
|
|
11
11
|
|
|
12
|
+
/**
|
|
13
|
+
* @public
|
|
14
|
+
*/
|
|
12
15
|
export interface IIdIntervalIndex<TInterval extends ISerializableInterval>
|
|
13
16
|
extends IntervalIndex<TInterval>,
|
|
14
17
|
Iterable<TInterval> {
|
|
@@ -51,6 +54,9 @@ class IdIntervalIndex<TInterval extends ISerializableInterval>
|
|
|
51
54
|
}
|
|
52
55
|
}
|
|
53
56
|
|
|
57
|
+
/**
|
|
58
|
+
* @public
|
|
59
|
+
*/
|
|
54
60
|
export function createIdIntervalIndex<
|
|
55
61
|
TInterval extends ISerializableInterval,
|
|
56
62
|
>(): IIdIntervalIndex<TInterval> {
|
|
@@ -13,6 +13,7 @@ import { ISerializableInterval } from "../intervals";
|
|
|
13
13
|
* - "find all intervals with start endpoint between these two points"
|
|
14
14
|
* - "find all intervals which overlap this range"
|
|
15
15
|
* etc.
|
|
16
|
+
* @public
|
|
16
17
|
*/
|
|
17
18
|
export interface IntervalIndex<TInterval extends ISerializableInterval> {
|
|
18
19
|
/**
|
|
@@ -17,6 +17,9 @@ import { SharedString } from "../sharedString";
|
|
|
17
17
|
import { SequencePlace, endpointPosAndSide } from "../intervalCollection";
|
|
18
18
|
import { IntervalIndex } from "./intervalIndex";
|
|
19
19
|
|
|
20
|
+
/**
|
|
21
|
+
* @public
|
|
22
|
+
*/
|
|
20
23
|
export interface IOverlappingIntervalsIndex<TInterval extends ISerializableInterval>
|
|
21
24
|
extends IntervalIndex<TInterval> {
|
|
22
25
|
/**
|
|
@@ -36,6 +39,9 @@ export interface IOverlappingIntervalsIndex<TInterval extends ISerializableInter
|
|
|
36
39
|
): void;
|
|
37
40
|
}
|
|
38
41
|
|
|
42
|
+
/**
|
|
43
|
+
* @public
|
|
44
|
+
*/
|
|
39
45
|
export class OverlappingIntervalsIndex<TInterval extends ISerializableInterval>
|
|
40
46
|
implements IOverlappingIntervalsIndex<TInterval>
|
|
41
47
|
{
|
|
@@ -170,6 +176,9 @@ export class OverlappingIntervalsIndex<TInterval extends ISerializableInterval>
|
|
|
170
176
|
}
|
|
171
177
|
}
|
|
172
178
|
|
|
179
|
+
/**
|
|
180
|
+
* @public
|
|
181
|
+
*/
|
|
173
182
|
export function createOverlappingIntervalsIndex(
|
|
174
183
|
sharedString: SharedString,
|
|
175
184
|
): IOverlappingIntervalsIndex<SequenceInterval> {
|
|
@@ -21,6 +21,9 @@ import { SharedString } from "../sharedString";
|
|
|
21
21
|
import { SequenceIntervalIndexes } from "./sequenceIntervalIndexes";
|
|
22
22
|
import { OverlappingIntervalsIndex } from "./overlappingIntervalsIndex";
|
|
23
23
|
|
|
24
|
+
/**
|
|
25
|
+
* @public
|
|
26
|
+
*/
|
|
24
27
|
class OverlappingSequenceIntervalsIndex
|
|
25
28
|
extends OverlappingIntervalsIndex<SequenceInterval>
|
|
26
29
|
implements SequenceIntervalIndexes.Overlapping
|
|
@@ -66,6 +69,9 @@ class OverlappingSequenceIntervalsIndex
|
|
|
66
69
|
}
|
|
67
70
|
}
|
|
68
71
|
|
|
72
|
+
/**
|
|
73
|
+
* @public
|
|
74
|
+
*/
|
|
69
75
|
export function createOverlappingSequenceIntervalsIndex(
|
|
70
76
|
sharedString: SharedString,
|
|
71
77
|
): SequenceIntervalIndexes.Overlapping {
|
|
@@ -10,6 +10,7 @@ import { IOverlappingIntervalsIndex } from "./overlappingIntervalsIndex";
|
|
|
10
10
|
/**
|
|
11
11
|
* This namespace contains specialiazations of indexes which support spatial queries
|
|
12
12
|
* specifically for `SequenceInterval`s.
|
|
13
|
+
* @public
|
|
13
14
|
*/
|
|
14
15
|
// eslint-disable-next-line @typescript-eslint/no-namespace
|
|
15
16
|
export namespace SequenceIntervalIndexes {
|
|
@@ -20,6 +20,7 @@ import { HasComparisonOverride, compareOverrideables, forceCompare } from "./int
|
|
|
20
20
|
* Collection of intervals.
|
|
21
21
|
*
|
|
22
22
|
* Provide additional APIs to support efficiently querying a collection of intervals whose startpoints fall within a specified range.
|
|
23
|
+
* @public
|
|
23
24
|
*/
|
|
24
25
|
export interface IStartpointInRangeIndex<TInterval extends ISerializableInterval>
|
|
25
26
|
extends IntervalIndex<TInterval> {
|
|
@@ -102,7 +103,9 @@ export class StartpointInRangeIndex<TInterval extends ISerializableInterval>
|
|
|
102
103
|
return results;
|
|
103
104
|
}
|
|
104
105
|
}
|
|
105
|
-
|
|
106
|
+
/**
|
|
107
|
+
* @public
|
|
108
|
+
*/
|
|
106
109
|
export function createStartpointInRangeIndex(
|
|
107
110
|
sharedString: SharedString,
|
|
108
111
|
): IStartpointInRangeIndex<SequenceInterval> {
|
|
@@ -16,6 +16,7 @@ import { SequencePlace, Side } from "../intervalCollection";
|
|
|
16
16
|
|
|
17
17
|
/**
|
|
18
18
|
* Basic interval abstraction
|
|
19
|
+
* @public
|
|
19
20
|
*/
|
|
20
21
|
export interface IInterval {
|
|
21
22
|
/**
|
|
@@ -80,10 +81,13 @@ export const IntervalOpType = {
|
|
|
80
81
|
POSITION_REMOVE: "positionRemove",
|
|
81
82
|
} as const;
|
|
82
83
|
|
|
84
|
+
/**
|
|
85
|
+
* @public
|
|
86
|
+
*/
|
|
83
87
|
export enum IntervalType {
|
|
84
88
|
Simple = 0x0,
|
|
85
89
|
/**
|
|
86
|
-
* @deprecated
|
|
90
|
+
* @deprecated this functionality is no longer supported and will be removed
|
|
87
91
|
*/
|
|
88
92
|
Nest = 0x1,
|
|
89
93
|
|
|
@@ -132,6 +136,9 @@ export interface ISerializedInterval {
|
|
|
132
136
|
properties?: PropertySet;
|
|
133
137
|
}
|
|
134
138
|
|
|
139
|
+
/**
|
|
140
|
+
* @public
|
|
141
|
+
*/
|
|
135
142
|
export interface ISerializableInterval extends IInterval {
|
|
136
143
|
/** Serializable bag of properties associated with the interval. */
|
|
137
144
|
properties: PropertySet;
|
|
@@ -194,6 +201,7 @@ export type CompressedSerializedInterval =
|
|
|
194
201
|
/**
|
|
195
202
|
* @sealed
|
|
196
203
|
* @deprecated The methods within have substitutions
|
|
204
|
+
* @public
|
|
197
205
|
*/
|
|
198
206
|
export interface IIntervalHelpers<TInterval extends ISerializableInterval> {
|
|
199
207
|
/**
|
|
@@ -100,6 +100,7 @@ function maxSide(sideA: Side, sideB: Side): Side {
|
|
|
100
100
|
* `mergeTreeReferencesCanSlideToEndpoint` feature flag set to true, the endpoints
|
|
101
101
|
* of the interval that are exclusive will have the ability to slide to these
|
|
102
102
|
* special endpoint segments.
|
|
103
|
+
* @public
|
|
103
104
|
*/
|
|
104
105
|
export class SequenceInterval implements ISerializableInterval {
|
|
105
106
|
/**
|
|
@@ -636,6 +637,7 @@ export function createSequenceInterval(
|
|
|
636
637
|
|
|
637
638
|
/**
|
|
638
639
|
* @deprecated The methods within have substitutions
|
|
640
|
+
* @public
|
|
639
641
|
*/
|
|
640
642
|
export const sequenceIntervalHelpers: IIntervalHelpers<SequenceInterval> = {
|
|
641
643
|
create: createSequenceInterval,
|
package/src/packageVersion.ts
CHANGED
package/src/sequence.ts
CHANGED
|
@@ -97,6 +97,7 @@ const contentPath = "content";
|
|
|
97
97
|
* - `event` - Various information on the segments that were modified.
|
|
98
98
|
*
|
|
99
99
|
* - `target` - The sequence itself.
|
|
100
|
+
* @public
|
|
100
101
|
*/
|
|
101
102
|
export interface ISharedSegmentSequenceEvents extends ISharedObjectEvents {
|
|
102
103
|
(
|
|
@@ -113,6 +114,9 @@ export interface ISharedSegmentSequenceEvents extends ISharedObjectEvents {
|
|
|
113
114
|
);
|
|
114
115
|
}
|
|
115
116
|
|
|
117
|
+
/**
|
|
118
|
+
* @public
|
|
119
|
+
*/
|
|
116
120
|
export abstract class SharedSegmentSequence<T extends ISegment>
|
|
117
121
|
extends SharedObject<ISharedSegmentSequenceEvents>
|
|
118
122
|
implements ISharedIntervalCollection<SequenceInterval>, MergeTreeRevertibleDriver
|
|
@@ -268,7 +272,7 @@ export abstract class SharedSegmentSequence<T extends ISegment>
|
|
|
268
272
|
}
|
|
269
273
|
|
|
270
274
|
/**
|
|
271
|
-
* @deprecated
|
|
275
|
+
* @deprecated The ability to create group ops will be removed in an upcoming release, as group ops are redundant with the native batching capabilities of the runtime
|
|
272
276
|
*/
|
|
273
277
|
public groupOperation(groupOp: IMergeTreeGroupMsg) {
|
|
274
278
|
this.guardReentrancy(() => this.client.localTransaction(groupOp));
|
|
@@ -395,7 +399,7 @@ export abstract class SharedSegmentSequence<T extends ISegment>
|
|
|
395
399
|
}
|
|
396
400
|
|
|
397
401
|
/**
|
|
398
|
-
* @deprecated
|
|
402
|
+
* @deprecated This method will no longer be public in an upcoming release as it is not safe to use outside of this class
|
|
399
403
|
*/
|
|
400
404
|
public submitSequenceMessage(message: IMergeTreeOp) {
|
|
401
405
|
if (!this.isAttached()) {
|
|
@@ -449,7 +453,7 @@ export abstract class SharedSegmentSequence<T extends ISegment>
|
|
|
449
453
|
}
|
|
450
454
|
|
|
451
455
|
/**
|
|
452
|
-
* @deprecated
|
|
456
|
+
* @deprecated this functionality is no longer supported and will be removed
|
|
453
457
|
*/
|
|
454
458
|
public getStackContext(startPos: number, rangeLabels: string[]): RangeStackMap {
|
|
455
459
|
return this.client.getStackContext(startPos, rangeLabels);
|
|
@@ -23,6 +23,7 @@ import {
|
|
|
23
23
|
* The properties of this object and its sub-objects represent the state of the sequence at the
|
|
24
24
|
* point in time at which the operation was applied.
|
|
25
25
|
* They will not take into any future modifications performed to the underlying sequence and merge tree.
|
|
26
|
+
* @public
|
|
26
27
|
*/
|
|
27
28
|
export abstract class SequenceEvent<
|
|
28
29
|
TOperation extends MergeTreeDeltaOperationTypes = MergeTreeDeltaOperationTypes,
|
|
@@ -105,6 +106,7 @@ export abstract class SequenceEvent<
|
|
|
105
106
|
* For group ops, each op will get its own event, and the group op property will be set on the op args.
|
|
106
107
|
*
|
|
107
108
|
* Ops may get multiple events. For instance, an insert-replace will get a remove then an insert event.
|
|
109
|
+
* @public
|
|
108
110
|
*/
|
|
109
111
|
export class SequenceDeltaEvent extends SequenceEvent<MergeTreeDeltaOperationType> {
|
|
110
112
|
/**
|
|
@@ -128,6 +130,7 @@ export class SequenceDeltaEvent extends SequenceEvent<MergeTreeDeltaOperationTyp
|
|
|
128
130
|
* The properties of this object and its sub-objects represent the state of the sequence at the
|
|
129
131
|
* point in time at which the operation was applied.
|
|
130
132
|
* They will not take into consideration any future modifications performed to the underlying sequence and merge tree.
|
|
133
|
+
* @public
|
|
131
134
|
*/
|
|
132
135
|
export class SequenceMaintenanceEvent extends SequenceEvent<MergeTreeMaintenanceType> {
|
|
133
136
|
constructor(
|
|
@@ -141,6 +144,7 @@ export class SequenceMaintenanceEvent extends SequenceEvent<MergeTreeMaintenance
|
|
|
141
144
|
|
|
142
145
|
/**
|
|
143
146
|
* A range that has changed corresponding to a segment modification.
|
|
147
|
+
* @public
|
|
144
148
|
*/
|
|
145
149
|
export interface ISequenceDeltaRange<
|
|
146
150
|
TOperation extends MergeTreeDeltaOperationTypes = MergeTreeDeltaOperationTypes,
|
package/src/sequenceFactory.ts
CHANGED
|
@@ -13,6 +13,9 @@ import { Marker, TextSegment } from "@fluidframework/merge-tree";
|
|
|
13
13
|
import { pkgVersion } from "./packageVersion";
|
|
14
14
|
import { SharedString, SharedStringSegment } from "./sharedString";
|
|
15
15
|
|
|
16
|
+
/**
|
|
17
|
+
* @public
|
|
18
|
+
*/
|
|
16
19
|
export class SharedStringFactory implements IChannelFactory {
|
|
17
20
|
// TODO rename back to https://graph.microsoft.com/types/mergeTree/string once paparazzi is able to dynamically
|
|
18
21
|
// load code (UPDATE: paparazzi is gone... anything to do here?)
|
|
@@ -33,6 +33,7 @@ const snapshotFileName = "header";
|
|
|
33
33
|
/**
|
|
34
34
|
* The factory that defines the SharedIntervalCollection.
|
|
35
35
|
* @deprecated `SharedIntervalCollection` is not maintained and is planned to be removed.
|
|
36
|
+
* @public
|
|
36
37
|
*/
|
|
37
38
|
export class SharedIntervalCollectionFactory implements IChannelFactory {
|
|
38
39
|
public static readonly Type = "https://graph.microsoft.com/types/sharedIntervalCollection";
|
|
@@ -74,12 +75,16 @@ export class SharedIntervalCollectionFactory implements IChannelFactory {
|
|
|
74
75
|
}
|
|
75
76
|
}
|
|
76
77
|
|
|
78
|
+
/**
|
|
79
|
+
* @public
|
|
80
|
+
*/
|
|
77
81
|
export interface ISharedIntervalCollection<TInterval extends ISerializableInterval> {
|
|
78
82
|
getIntervalCollection(label: string): IIntervalCollection<TInterval>;
|
|
79
83
|
}
|
|
80
84
|
|
|
81
85
|
/**
|
|
82
86
|
* @deprecated `SharedIntervalCollection` is not maintained and is planned to be removed.
|
|
87
|
+
* @public
|
|
83
88
|
*/
|
|
84
89
|
export class SharedIntervalCollection
|
|
85
90
|
extends SharedObject
|
package/src/sharedSequence.ts
CHANGED
|
@@ -15,14 +15,16 @@ import { SharedSegmentSequence } from "./sequence";
|
|
|
15
15
|
const MaxRun = 128;
|
|
16
16
|
|
|
17
17
|
/**
|
|
18
|
-
* @deprecated
|
|
18
|
+
* @deprecated IJSONRunSegment will be removed in a upcoming release. It has been moved to the fluid-experimental/sequence-deprecated package
|
|
19
|
+
* @public
|
|
19
20
|
*/
|
|
20
21
|
export interface IJSONRunSegment<T> extends IJSONSegment {
|
|
21
22
|
items: Serializable<T>[];
|
|
22
23
|
}
|
|
23
24
|
|
|
24
25
|
/**
|
|
25
|
-
* @deprecated
|
|
26
|
+
* @deprecated SubSequence will be removed in a upcoming release. It has been moved to the fluid-experimental/sequence-deprecated package
|
|
27
|
+
* @public
|
|
26
28
|
*/
|
|
27
29
|
export class SubSequence<T> extends BaseSegment {
|
|
28
30
|
public static readonly typeString: string = "SubSequence";
|
|
@@ -105,7 +107,8 @@ export class SubSequence<T> extends BaseSegment {
|
|
|
105
107
|
}
|
|
106
108
|
|
|
107
109
|
/**
|
|
108
|
-
* @deprecated
|
|
110
|
+
* @deprecated SharedSequence will be removed in a upcoming release. It has been moved to the fluid-experimental/sequence-deprecated package
|
|
111
|
+
* @public
|
|
109
112
|
*/
|
|
110
113
|
export class SharedSequence<T> extends SharedSegmentSequence<SubSequence<T>> {
|
|
111
114
|
constructor(
|
package/src/sharedString.ts
CHANGED
|
@@ -24,6 +24,7 @@ import { SharedStringFactory } from "./sequenceFactory";
|
|
|
24
24
|
|
|
25
25
|
/**
|
|
26
26
|
* Fluid object interface describing access methods on a SharedString
|
|
27
|
+
* @public
|
|
27
28
|
*/
|
|
28
29
|
export interface ISharedString extends SharedSegmentSequence<SharedStringSegment> {
|
|
29
30
|
/**
|
|
@@ -52,6 +53,9 @@ export interface ISharedString extends SharedSegmentSequence<SharedStringSegment
|
|
|
52
53
|
posFromRelativePos(relativePos: IRelativePosition): number;
|
|
53
54
|
}
|
|
54
55
|
|
|
56
|
+
/**
|
|
57
|
+
* @public
|
|
58
|
+
*/
|
|
55
59
|
export type SharedStringSegment = TextSegment | Marker;
|
|
56
60
|
|
|
57
61
|
/**
|
|
@@ -63,6 +67,7 @@ export type SharedStringSegment = TextSegment | Marker;
|
|
|
63
67
|
* used to store metadata at positions within the text, like the details of an
|
|
64
68
|
* image or Fluid object that should be rendered with the text.
|
|
65
69
|
*
|
|
70
|
+
* @public
|
|
66
71
|
*/
|
|
67
72
|
export class SharedString
|
|
68
73
|
extends SharedSegmentSequence<SharedStringSegment>
|
|
@@ -215,6 +220,7 @@ export class SharedString
|
|
|
215
220
|
/**
|
|
216
221
|
* Finds the nearest reference with ReferenceType.Tile to `startPos` in the direction dictated by `tilePrecedesPos`.
|
|
217
222
|
* Note that Markers receive `ReferenceType.Tile` by default.
|
|
223
|
+
* @deprecated Use `searchForMarker` instead.
|
|
218
224
|
* @param startPos - Position at which to start the search
|
|
219
225
|
* @param clientId - clientId dictating the perspective to search from
|
|
220
226
|
* @param tileLabel - Label of the tile to search for
|
|
@@ -233,6 +239,22 @@ export class SharedString
|
|
|
233
239
|
return this.client.findTile(startPos ?? 0, tileLabel, preceding);
|
|
234
240
|
}
|
|
235
241
|
|
|
242
|
+
/**
|
|
243
|
+
* Searches a string for the nearest marker in either direction to a given start position.
|
|
244
|
+
* The search will include the start position, so markers at the start position are valid
|
|
245
|
+
* results of the search.
|
|
246
|
+
* @param startPos - Position at which to start the search
|
|
247
|
+
* @param markerLabel - Label of the marker to search for
|
|
248
|
+
* @param forwards - Whether the desired marker comes before (false) or after (true) `startPos`
|
|
249
|
+
*/
|
|
250
|
+
public searchForMarker(
|
|
251
|
+
startPos: number,
|
|
252
|
+
markerLabel: string,
|
|
253
|
+
forwards = true,
|
|
254
|
+
): Marker | undefined {
|
|
255
|
+
return this.client.searchForMarker(startPos, markerLabel, forwards);
|
|
256
|
+
}
|
|
257
|
+
|
|
236
258
|
/**
|
|
237
259
|
* Retrieve text from the SharedString in string format.
|
|
238
260
|
* @param start - The starting index of the text to retrieve, or 0 if omitted.
|
|
@@ -309,7 +331,6 @@ interface ITextAndMarkerAccumulator {
|
|
|
309
331
|
* @param sharedString - String to retrieve text and markers from
|
|
310
332
|
* @param label - label to split on
|
|
311
333
|
* @returns Two parallel lists of text and markers, split by markers with the provided `label`.
|
|
312
|
-
*
|
|
313
334
|
* For example:
|
|
314
335
|
* ```typescript
|
|
315
336
|
* // Say sharedstring has contents "hello<paragraph marker 1>world<paragraph marker 2>missing".
|
|
@@ -318,6 +339,7 @@ interface ITextAndMarkerAccumulator {
|
|
|
318
339
|
* // parallelMarkers === [<paragraph marker 1 object>, <paragraph marker 2 object>]
|
|
319
340
|
* // Note parallelText does not include "missing".
|
|
320
341
|
* ```
|
|
342
|
+
* @public
|
|
321
343
|
*/
|
|
322
344
|
export function getTextAndMarkers(
|
|
323
345
|
sharedString: SharedString,
|