Skip to main content
Version: v1

@fluidframework/merge-tree Package

Interfaces

InterfaceDescription
AugmentedIntervalNode
BlockAction
BlockUpdateActions
ClientSeq
Comparer
Dictionary
ICombiningOp
IConsensusInfo
IConsensusValue
IHierBlock
IIntegerRangeA 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
IRelativePositionA position specified relative to a segment.
IRemovalInfo
ISegmentA 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

ClassAlertsDescription
BaseSegment
Client
CollaborationWindow
Heap
IncrementalMapState
IntervalTree
List
LocalReferenceDeprecated
LocalReferenceCollectionRepresents 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

EnumDescription
IncrementalExecOp
ReferenceType

Types

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

Functions

FunctionReturn TypeDescription
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 | undefinedCreates the op for annotating the markers with the provided properties
createAnnotateRangeOp(start, end, props, combiningOp)IMergeTreeAnnotateMsgCreates 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)IMergeTreeRemoveMsgCreates 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

VariableTypeDescription
clientSeqComparerComparer<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
UniversalSequenceNumberSequence 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

ParameterModifiersTypeDescription
oldPropsPropertySet | undefined
newPropsPropertySet
opoptionalICombiningOp
seqoptionalnumber

Returns

Return type: PropertySet

clone

Signature

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

Parameters

ParameterTypeDescription
extensionMapLike<T> | undefined

Returns

Return type: MapLike<T> | undefined

combine

Signature

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

Parameters

ParameterModifiersTypeDescription
combiningInfoICombiningOp
currentValueany
newValueany
seqoptionalnumber

Returns

Return type: any

compareReferencePositions

Signature

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

Parameters

ParameterTypeDescription
aReferencePosition
bReferencePosition

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

ParameterModifiersTypeDescription
markerMarkerThe marker to annotate
propsPropertySetThe properties to annotate the marker with
combiningOpoptionalICombiningOpOptional. 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

ParameterTypeDescription
startnumberThe inclusive start position of the range to annotate
endnumberThe exclusive end position of the range to annotate
propsPropertySetThe properties to annotate the range with
combiningOpICombiningOp | undefinedOptional. 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

ParameterTypeDescription
opsIMergeTreeDeltaOp[]The ops to group

Returns

Return type: IMergeTreeGroupMsg

createInsertOp

Signature

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

Parameters

ParameterTypeDescription
posnumber
segSpecany

Returns

Return type: IMergeTreeInsertMsg

createInsertSegmentOp

Signature

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

Parameters

ParameterTypeDescription
posnumberThe position to insert the segment at
segmentISegmentThe segment to insert

Returns

Return type: IMergeTreeInsertMsg

createMap

Signature

export declare function createMap<T>(): MapLike<T>;
Type Parameters
ParameterDescription
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

ParameterTypeDescription
startnumberThe inclusive start of the range to remove
endnumberThe 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
ParameterDescription
T

Parameters

ParameterModifiersTypeDescription
baseMapLike<T>
extensionMapLike<T> | undefined
combiningOpoptionalICombiningOp
seqoptionalnumber

Returns

Return type: MapLike<T>

extendIfUndefined

Signature

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

Parameters

ParameterTypeDescription
baseMapLike<T>
extensionMapLike<T> | undefined

Returns

Return type: MapLike<T>

internedSpaces

Signature

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

Parameters

ParameterTypeDescription
nnumber

Returns

Return type: string

ListMakeHead

Signature

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

Returns

Return type: List<U>

ListRemoveEntry

Signature

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

Parameters

ParameterTypeDescription
entryList<U>

Returns

Return type: List<U> | undefined

matchProperties

Signature

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

Parameters

ParameterTypeDescription
aPropertySet | undefined
bPropertySet | undefined

Returns

Return type: boolean

maxReferencePosition

Signature

export declare function maxReferencePosition<T extends ReferencePosition>(a: T, b: T): T;
Type Parameters
ParameterConstraintDescription
TReferencePosition

Parameters

ParameterTypeDescription
aT
bT

Returns

Return type: T

minReferencePosition

Signature

export declare function minReferencePosition<T extends ReferencePosition>(a: T, b: T): T;
Type Parameters
ParameterConstraintDescription
TReferencePosition

Parameters

ParameterTypeDescription
aT
bT

Returns

Return type: T

ordinalToArray

Signature

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

Parameters

ParameterTypeDescription
ordstring

Returns

Return type: number[]

refHasRangeLabel

Signature

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

Parameters

ParameterTypeDescription
refPosReferencePosition
labelstring

Returns

Return type: boolean

refHasRangeLabels

Signature

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

Parameters

ParameterTypeDescription
refPosReferencePosition

Returns

Return type: boolean

refHasTileLabel

Signature

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

Parameters

ParameterTypeDescription
refPosReferencePosition
labelstring

Returns

Return type: boolean

refHasTileLabels

Signature

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

Parameters

ParameterTypeDescription
refPosReferencePosition

Returns

Return type: boolean

refTypeIncludesFlag

Signature

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

Parameters

ParameterTypeDescription
refPosOrTypeReferencePosition | ReferenceType
flagsReferenceType

Returns

Return type: boolean

toRemovalInfo

Signature

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

Parameters

ParameterTypeDescription
maybePartial<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