Skip to main content
Version: v1

@fluidframework/merge-tree Package

Interfaces

Interface Description
AugmentedIntervalNode
BlockAction
BlockUpdateActions
ClientSeq
Comparer
Dictionary
ICombiningOp
IConsensusInfo
IConsensusValue
IHierBlock
IIntegerRange A range [start, end)
IInterval
IJSONMarkerSegment
IJSONSegment
IJSONTextSegment
IMarkerDef
IMarkerModifiedAction
IMergeBlock
IMergeNodeCommon
IMergeTreeAnnotateMsg
IMergeTreeClientSequenceArgs
IMergeTreeDelta
IMergeTreeDeltaCallbackArgs
IMergeTreeDeltaOpArgs
IMergeTreeGroupMsg
IMergeTreeInsertMsg
IMergeTreeMaintenanceCallbackArgs
IMergeTreeRemoveMsg
IMergeTreeSegmentDelta
IncrementalBlockAction
IncrementalSegmentAction
IncrementalSegmentActions
InsertContext
IRBAugmentation
IRBMatcher
IRelativePosition A position specified relative to a segment.
IRemovalInfo
ISegment A segment representing a portion of the merge tree.
ISegmentAction
ISegmentChanges
KeyComparer
LocalReferencePosition
LRUSegment
MapLike
MergeTreeStats
MinListener
NodeAction
Property
PropertyAction
ProxString
QProperty
RBNode
RBNodeActions
ReferencePosition
SearchResult
SegmentAccumulator
SegmentActions
SegmentGroup
SortedDictionary
TSTNode
TSTResult

Classes

Class Alerts Description
BaseSegment
Client
CollaborationWindow
Heap
IncrementalMapState
IntervalTree
List
LocalReference Deprecated
LocalReferenceCollection Represents a collection of ReferencePositions associated with one segment in a merge-tree.
Marker
MergeBlock
MergeNode
MergeTree
MergeTreeTextHelper
PropertiesManager
RedBlackTree
SegmentGroupCollection
SnapshotLegacy
SortedSegmentSet

Stores a unique and sorted set of segments, or objects with segments

This differs from a normal sorted set in that the keys are not fixed. The segments are sorted via their ordinals which can change as the merge tree is modified. Even though the values of the ordinals can change their ordering and uniqueness cannot, so the order of a set of segments ordered by their ordinals will always have the same order even if the ordinal values on the segments changes. This invariant allows ensure the segments stay ordered and unique, and that new segments can be inserted into that order.

Stack
TextSegment
TrackingGroup
TrackingGroupCollection
TST

Enumerations

Enum Description
IncrementalExecOp
ReferenceType

Types

TypeAlias Description
ConflictAction
IMergeNode
IMergeTreeDeltaOp
IMergeTreeOp
IntervalConflictResolver
IntervalNode
LocalReferenceMapper
MergeTreeDeltaCallback
MergeTreeDeltaOperationType
MergeTreeDeltaOperationTypes
MergeTreeDeltaType
MergeTreeMaintenanceCallback
MergeTreeMaintenanceType
PropertySet
RangeStackMap
RBColor

Functions

Function Return Type Description
addProperties(oldProps, newProps, op, seq) PropertySet
clone(extension) MapLike<T> | undefined
combine(combiningInfo, currentValue, newValue, seq) any
compareReferencePositions(a, b) number
createAnnotateMarkerOp(marker, props, combiningOp) IMergeTreeAnnotateMsg | undefined Creates the op for annotating the markers with the provided properties
createAnnotateRangeOp(start, end, props, combiningOp) IMergeTreeAnnotateMsg Creates the op for annotating the range with the provided properties
createGroupOp(ops) IMergeTreeGroupMsg
createInsertOp(pos, segSpec) IMergeTreeInsertMsg
createInsertSegmentOp(pos, segment) IMergeTreeInsertMsg
createMap() MapLike<T>
createRemoveRangeOp(start, end) IMergeTreeRemoveMsg Creates the op to remove a range
extend(base, extension, combiningOp, seq) MapLike<T>
extendIfUndefined(base, extension) MapLike<T>
internedSpaces(n) string
ListMakeHead() List<U>
ListRemoveEntry(entry) List<U> | undefined
matchProperties(a, b) boolean
maxReferencePosition(a, b) T
minReferencePosition(a, b) T
ordinalToArray(ord) number[]
refHasRangeLabel(refPos, label) boolean
refHasRangeLabels(refPos) boolean
refHasTileLabel(refPos, label) boolean
refHasTileLabels(refPos) boolean
refTypeIncludesFlag(refPosOrType, flags) boolean
toRemovalInfo(maybe) IRemovalInfo | undefined

Variables

Variable Type Description
clientSeqComparer Comparer<ClientSeq>
compareNumbers (a: number, b: number) => number
compareStrings (a: string, b: string) => number
DetachedReferencePosition
integerRangeToString (range: IIntegerRange) => string
LocalClientId
MaxNodesInBlock
MergeTreeDeltaType { readonly INSERT: 0; readonly REMOVE: 1; readonly ANNOTATE: 2; readonly GROUP: 3; }
MergeTreeMaintenanceType { readonly APPEND: -1; readonly SPLIT: -2; readonly UNLINK: -3; readonly ACKNOWLEDGED: -4; }

Enum-like constant defining the types of "maintenance" events on a merge tree. Maintenance events correspond to structural segment changes or acks of pending segments.

Note: these values are assigned negative integers to avoid clashing with MergeTreeDeltaType.

NonCollabClient
RBColor { readonly RED: 0; readonly BLACK: 1; }
refGetRangeLabels (refPos: ReferencePosition) => string[] | undefined
refGetTileLabels (refPos: ReferencePosition) => string[] | undefined
reservedMarkerIdKey
reservedMarkerSimpleTypeKey
reservedRangeLabelsKey
reservedTileLabelsKey
TreeMaintenanceSequenceNumber
UnassignedSequenceNumber
UniversalSequenceNumber Sequence numbers for shared segments start at 1 or greater. Every segment marked with sequence number zero will be counted as part of the requested string.

Function Details

addProperties

Signature

export declare function addProperties(oldProps: PropertySet | undefined, newProps: PropertySet, op?: ICombiningOp, seq?: number): PropertySet;

Parameters

Parameter Modifiers Type Description
oldProps PropertySet | undefined
newProps PropertySet
op optional ICombiningOp
seq optional number

Returns

Return type: PropertySet

clone

Signature

export declare function clone<T>(extension: MapLike<T> | undefined): MapLike<T> | undefined;
Type Parameters
Parameter Description
T

Parameters

Parameter Type Description
extension MapLike<T> | undefined

Returns

Return type: MapLike<T> | undefined

combine

Signature

export declare function combine(combiningInfo: ICombiningOp, currentValue: any, newValue: any, seq?: number): any;

Parameters

Parameter Modifiers Type Description
combiningInfo ICombiningOp
currentValue any
newValue any
seq optional number

Returns

Return type: any

compareReferencePositions

Signature

export declare function compareReferencePositions(a: ReferencePosition, b: ReferencePosition): number;

Parameters

Parameter Type Description
a ReferencePosition
b ReferencePosition

Returns

Return type: number

createAnnotateMarkerOp

Creates the op for annotating the markers with the provided properties

Signature

export declare function createAnnotateMarkerOp(marker: Marker, props: PropertySet, combiningOp?: ICombiningOp): IMergeTreeAnnotateMsg | undefined;

Parameters

Parameter Modifiers Type Description
marker Marker The marker to annotate
props PropertySet The properties to annotate the marker with
combiningOp optional ICombiningOp Optional. Specifies how to combine values for the property, such as "incr" for increment.

Returns

The annotate op

Return type: IMergeTreeAnnotateMsg | undefined

createAnnotateRangeOp

Creates the op for annotating the range with the provided properties

Signature

export declare function createAnnotateRangeOp(start: number, end: number, props: PropertySet, combiningOp: ICombiningOp | undefined): IMergeTreeAnnotateMsg;

Parameters

Parameter Type Description
start number The inclusive start position of the range to annotate
end number The exclusive end position of the range to annotate
props PropertySet The properties to annotate the range with
combiningOp ICombiningOp | undefined Optional. Specifies how to combine values for the property, such as "incr" for increment.

Returns

The annotate op

Return type: IMergeTreeAnnotateMsg

createGroupOp

Signature

export declare function createGroupOp(...ops: IMergeTreeDeltaOp[]): IMergeTreeGroupMsg;

Parameters

Parameter Type Description
ops IMergeTreeDeltaOp[] The ops to group

Returns

Return type: IMergeTreeGroupMsg

createInsertOp

Signature

export declare function createInsertOp(pos: number, segSpec: any): IMergeTreeInsertMsg;

Parameters

Parameter Type Description
pos number
segSpec any

Returns

Return type: IMergeTreeInsertMsg

createInsertSegmentOp

Signature

export declare function createInsertSegmentOp(pos: number, segment: ISegment): IMergeTreeInsertMsg;

Parameters

Parameter Type Description
pos number The position to insert the segment at
segment ISegment The segment to insert

Returns

Return type: IMergeTreeInsertMsg

createMap

Signature

export declare function createMap<T>(): MapLike<T>;
Type Parameters
Parameter Description
T

Returns

Return type: MapLike<T>

createRemoveRangeOp

Creates the op to remove a range

Signature

export declare function createRemoveRangeOp(start: number, end: number): IMergeTreeRemoveMsg;

Parameters

Parameter Type Description
start number The inclusive start of the range to remove
end number The exclusive end of the range to remove

Returns

Return type: IMergeTreeRemoveMsg

extend

Signature

export declare function extend<T>(base: MapLike<T>, extension: MapLike<T> | undefined, combiningOp?: ICombiningOp, seq?: number): MapLike<T>;
Type Parameters
Parameter Description
T

Parameters

Parameter Modifiers Type Description
base MapLike<T>
extension MapLike<T> | undefined
combiningOp optional ICombiningOp
seq optional number

Returns

Return type: MapLike<T>

extendIfUndefined

Signature

export declare function extendIfUndefined<T>(base: MapLike<T>, extension: MapLike<T> | undefined): MapLike<T>;
Type Parameters
Parameter Description
T

Parameters

Parameter Type Description
base MapLike<T>
extension MapLike<T> | undefined

Returns

Return type: MapLike<T>

internedSpaces

Signature

export declare function internedSpaces(n: number): string;

Parameters

Parameter Type Description
n number

Returns

Return type: string

ListMakeHead

Signature

export declare function ListMakeHead<U>(): List<U>;
Type Parameters
Parameter Description
U

Returns

Return type: List<U>

ListRemoveEntry

Signature

export declare function ListRemoveEntry<U>(entry: List<U>): List<U> | undefined;
Type Parameters
Parameter Description
U

Parameters

Parameter Type Description
entry List<U>

Returns

Return type: List<U> | undefined

matchProperties

Signature

export declare function matchProperties(a: PropertySet | undefined, b: PropertySet | undefined): boolean;

Parameters

Parameter Type Description
a PropertySet | undefined
b PropertySet | undefined

Returns

Return type: boolean

maxReferencePosition

Signature

export declare function maxReferencePosition<T extends ReferencePosition>(a: T, b: T): T;
Type Parameters
Parameter Constraint Description
T ReferencePosition

Parameters

Parameter Type Description
a T
b T

Returns

Return type: T

minReferencePosition

Signature

export declare function minReferencePosition<T extends ReferencePosition>(a: T, b: T): T;
Type Parameters
Parameter Constraint Description
T ReferencePosition

Parameters

Parameter Type Description
a T
b T

Returns

Return type: T

ordinalToArray

Signature

export declare function ordinalToArray(ord: string): number[];

Parameters

Parameter Type Description
ord string

Returns

Return type: number[]

refHasRangeLabel

Signature

export declare function refHasRangeLabel(refPos: ReferencePosition, label: string): boolean;

Parameters

Parameter Type Description
refPos ReferencePosition
label string

Returns

Return type: boolean

refHasRangeLabels

Signature

export declare function refHasRangeLabels(refPos: ReferencePosition): boolean;

Parameters

Parameter Type Description
refPos ReferencePosition

Returns

Return type: boolean

refHasTileLabel

Signature

export declare function refHasTileLabel(refPos: ReferencePosition, label: string): boolean;

Parameters

Parameter Type Description
refPos ReferencePosition
label string

Returns

Return type: boolean

refHasTileLabels

Signature

export declare function refHasTileLabels(refPos: ReferencePosition): boolean;

Parameters

Parameter Type Description
refPos ReferencePosition

Returns

Return type: boolean

refTypeIncludesFlag

Signature

export declare function refTypeIncludesFlag(refPosOrType: ReferencePosition | ReferenceType, flags: ReferenceType): boolean;

Parameters

Parameter Type Description
refPosOrType ReferencePosition | ReferenceType
flags ReferenceType

Returns

Return type: boolean

toRemovalInfo

Signature

export declare function toRemovalInfo(maybe: Partial<IRemovalInfo> | undefined): IRemovalInfo | undefined;

Parameters

Parameter Type Description
maybe Partial<IRemovalInfo> | undefined

Returns

Return type: IRemovalInfo | undefined

Variable Details

clientSeqComparer

Signature

clientSeqComparer: Comparer<ClientSeq>

Type: Comparer<ClientSeq>

compareNumbers

Signature

compareNumbers: (a: number, b: number) => number

Type: (a: number, b: number) => number

compareStrings

Signature

compareStrings: (a: string, b: string) => number

Type: (a: string, b: string) => number

DetachedReferencePosition

Signature

DetachedReferencePosition = -1

integerRangeToString

Signature

integerRangeToString: (range: IIntegerRange) => string

Type: (range: IIntegerRange) => string

LocalClientId

Signature

LocalClientId = -1

MaxNodesInBlock

Signature

MaxNodesInBlock = 8

MergeTreeDeltaType

Signature

MergeTreeDeltaType: {
readonly INSERT: 0;
readonly REMOVE: 1;
readonly ANNOTATE: 2;
readonly GROUP: 3;
}

Type: { readonly INSERT: 0; readonly REMOVE: 1; readonly ANNOTATE: 2; readonly GROUP: 3; }

MergeTreeMaintenanceType

Enum-like constant defining the types of "maintenance" events on a merge tree. Maintenance events correspond to structural segment changes or acks of pending segments.

Note: these values are assigned negative integers to avoid clashing with MergeTreeDeltaType.

Signature

MergeTreeMaintenanceType: {
readonly APPEND: -1;
readonly SPLIT: -2;
readonly UNLINK: -3;
readonly ACKNOWLEDGED: -4;
}

Type: { readonly APPEND: -1; readonly SPLIT: -2; readonly UNLINK: -3; readonly ACKNOWLEDGED: -4; }

NonCollabClient

Signature

NonCollabClient = -2

RBColor

Signature

RBColor: {
readonly RED: 0;
readonly BLACK: 1;
}

Type: { readonly RED: 0; readonly BLACK: 1; }

refGetRangeLabels

Signature

refGetRangeLabels: (refPos: ReferencePosition) => string[] | undefined

Type: (refPos: ReferencePosition) => string[] | undefined

refGetTileLabels

Signature

refGetTileLabels: (refPos: ReferencePosition) => string[] | undefined

Type: (refPos: ReferencePosition) => string[] | undefined

reservedMarkerIdKey

Signature

reservedMarkerIdKey = "markerId"

reservedMarkerSimpleTypeKey

Signature

reservedMarkerSimpleTypeKey = "markerSimpleType"

reservedRangeLabelsKey

Signature

reservedRangeLabelsKey = "referenceRangeLabels"

reservedTileLabelsKey

Signature

reservedTileLabelsKey = "referenceTileLabels"

TreeMaintenanceSequenceNumber

Signature

TreeMaintenanceSequenceNumber = -2

UnassignedSequenceNumber

Signature

UnassignedSequenceNumber = -1

UniversalSequenceNumber

Sequence numbers for shared segments start at 1 or greater. Every segment marked with sequence number zero will be counted as part of the requested string.

Signature

UniversalSequenceNumber = 0